Giới thiệu
Mật mã khóa công khai (PKC), còn được gọi là mật mã không đối xứng, là một khuôn khổ sử dụng cả khóa riêng tư và khóa công khai, trái ngược với khóa đơn được sử dụng trong mật mã đối xứng. Việc sử dụng các cặp khóa mang lại cho PKC một tập hợp các đặc điểm và khả năng duy nhất có thể được sử dụng để giải quyết các thách thức vốn có trong các kỹ thuật mật mã khác. Đây là hình thức mật mã đã trở thành một yếu tố quan trọng của bảo mật máy tính hiện đại, cũng như một thành phần quan trọng của phát triển cryptocurrency hệ sinh thái.
Mật mã khóa công khai hoạt động như thế nào?
Trong lược đồ PKC, khóa công khai được người gửi sử dụng để mã hóa thông tin, trong khi khóa riêng tư được người nhận sử dụng để giải mã. Vì hai khóa khác nhau nên khóa công khai có thể được chia sẻ một cách an toàn mà không ảnh hưởng đến tính bảo mật của khóa riêng tư. Mỗi cặp khóa bất đối xứng là duy nhất, đảm bảo rằng một thông báo được mã hóa bằng khóa công khai chỉ có thể được đọc bởi người sở hữu khóa cá nhân tương ứng.
Bởi vì các thuật toán mã hóa bất đối xứng tạo ra các cặp khóa được liên kết về mặt toán học, độ dài khóa của chúng dài hơn nhiều so với độ dài khóa được sử dụng trong mật mã đối xứng. Độ dài dài hơn này – thường từ 1,024 đến 2,048 bit – khiến việc tính toán khóa riêng tư từ đối tác công khai trở nên cực kỳ khó khăn. Một trong những thuật toán phổ biến nhất cho mã hóa bất đối xứng được sử dụng ngày nay được gọi là RSA.
Trong lược đồ RSA, các khóa được tạo bằng cách sử dụng một mô-đun có được bằng cách nhân hai số (thường là hai số nguyên tố lớn). Về cơ bản, mô-đun tạo ra hai khóa (một khóa công khai có thể được chia sẻ và một khóa riêng tư nên được giữ bí mật). Thuật toán RSA lần đầu tiên được mô tả vào năm 1977 bởi Rivest, Shamir và Adleman (do đó, RSA) và vẫn là một thành phần chính của hệ thống mật mã khóa công khai.
PKC như một công cụ mã hóa
Mật mã khóa công khai giải quyết một trong những vấn đề lâu dài của thuật toán đối xứng, đó là giao tiếp của khóa được sử dụng cho cả mã hóa và giải mã. Gửi khóa này qua một kết nối không an toàn có nguy cơ làm lộ khóa cho các bên thứ ba, những người sau đó có thể đọc bất kỳ tin nhắn nào được mã hóa bằng khóa chia sẻ. Mặc dù các kỹ thuật mật mã (chẳng hạn như giao thức trao đổi khóa Diffie-Hellman-Merkle) tồn tại để giải quyết vấn đề này, chúng vẫn dễ bị tấn công. Ngược lại, trong mật mã khóa công khai, khóa được sử dụng để mã hóa có thể được chia sẻ một cách an toàn qua bất kỳ kết nối nào. Do đó, các thuật toán bất đối xứng cung cấp mức độ bảo vệ cao hơn khi so sánh với các thuật toán đối xứng.
Tạo chữ ký điện tử
Một ứng dụng khác của thuật toán mật mã không đối xứng là xác thực dữ liệu thông qua việc sử dụng chữ ký số. Nói một cách cơ bản, chữ ký điện tử là một hàm băm được tạo ra bằng cách sử dụng dữ liệu trong một tin nhắn. Khi tin nhắn đó được gửi đi, người nhận có thể kiểm tra chữ ký bằng khóa công khai của người gửi. Bằng cách này, họ có thể xác thực nguồn của tin nhắn và đảm bảo rằng nó không bị giả mạo. Trong một số trường hợp, chữ ký điện tử và mã hóa được áp dụng cùng nhau, có nghĩa là bản thân hàm băm có thể được mã hóa như một phần của thông báo. Tuy nhiên, cần lưu ý rằng không phải tất cả các lược đồ chữ ký số đều sử dụng các kỹ thuật mã hóa.
Hạn chế
Mặc dù nó có thể được sử dụng để tăng cường bảo mật máy tính và cung cấp xác minh tính toàn vẹn của thư, PKC có một số hạn chế. Do các phép toán phức tạp liên quan đến mã hóa và giải mã, các thuật toán bất đối xứng có thể khá chậm khi buộc phải xử lý một lượng lớn dữ liệu. Loại mật mã này cũng phụ thuộc nhiều vào giả định rằng khóa riêng sẽ vẫn là bí mật. Nếu khóa riêng tư vô tình bị chia sẻ hoặc bị lộ, tính bảo mật của tất cả các thư đã được mã hóa bằng khóa công khai tương ứng của nó sẽ bị xâm phạm. Người dùng cũng có thể vô tình làm mất khóa cá nhân của mình, trong trường hợp đó, họ sẽ không thể truy cập vào dữ liệu được mã hóa.
Các ứng dụng của mật mã khóa công khai
Loại mật mã này được nhiều hệ thống máy tính hiện đại sử dụng để cung cấp bảo mật cho thông tin nhạy cảm. Ví dụ, email có thể được mã hóa bằng kỹ thuật mật mã khóa công khai để giữ bí mật nội dung của chúng.
Giao thức lớp cổng bảo mật (SSL) giúp kết nối an toàn đến các trang web có thể thực hiện được cũng sử dụng mật mã không đối xứng. Hệ thống PKC thậm chí còn được khám phá như một phương tiện cung cấp một môi trường bỏ phiếu điện tử an toàn có khả năng cho phép cử tri tham gia bầu cử từ máy tính tại nhà của họ.
PKC cũng có tính năng nổi bật trong blockchain và cryptocurrency công nghệ. Khi một ví tiền thuật toán mới được thiết lập, một cặp khóa sẽ được tạo (khóa công khai và khóa riêng tư). Địa chỉ ví được tạo bằng khóa công khai và có thể được chia sẻ một cách an toàn với những người khác. Mặt khác, khóa riêng được sử dụng để tạo chữ ký điện tử và xác minh các giao dịch, do đó, phải được giữ bí mật.
Khi một giao dịch đã được xác minh bằng cách xác nhận hàm băm có trong chữ ký điện tử, giao dịch đó có thể được thêm vào sổ cái blockchain. Hệ thống xác minh chữ ký số này đảm bảo rằng chỉ người có khóa cá nhân được liên kết với ví tiền thuật toán tương ứng mới có thể chuyển tiền.
Cần lưu ý rằng mật mã bất đối xứng được sử dụng trong các ứng dụng tiền thuật toán khác với mật mã được sử dụng cho mục đích bảo mật máy tính. Ví dụ, Bitcoin và Ethereum sử dụng một thuật toán cụ thể để xác minh các giao dịch, được gọi là Thuật toán Chữ ký Kỹ thuật số Đường cong Elliptic (ECDSA). Ngoài ra, ECDSA tạo ra chữ ký điện tử mà không cần sử dụng mã hóa. Điều này có nghĩa là blockchain không cần mã hóa, không giống như nhiều người thường tin.
Từ bảo mật máy tính đến xác minh các giao dịch tiền thuật toán, mật mã khóa công khai đóng một vai trò quan trọng trong việc bảo mật các hệ thống kỹ thuật số hiện đại. Bằng cách sử dụng các khóa công khai và khóa riêng được ghép nối, các thuật toán mật mã không đối xứng giải quyết các mối quan tâm cơ bản về bảo mật được trình bày bởi mật mã đối xứng. Mặc dù PKC đã được sử dụng trong nhiều năm, các ứng dụng và cách sử dụng mới vẫn thường xuyên được phát triển cho nó, đặc biệt là trong không gian blockchain và tiền thuật toán.