Mật mã khóa công khai (PKC), còn được gọi là mật mã bất đối xứng, là một khuôn khổ sử dụng khóa chung và khóa riêng, trái ngược với các khóa đơn được sử dụng trong hệ thống mật mã đối xứng. Việc sử dụng các cặp khóa cung cấp 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ã hóa khác. Hình thức mã hóa này đã trở thành một yếu tố quan trọng của bảo mật máy tính hiện đại, đồng thời là một thành phần quan trọng của hệ sinh thái tiền điện tử đang phát triển.
Mật mã khóa công khai hoạt động như thế nào?
Trong hệ thống PKC, khóa chung được người gửi sử dụng để mã hóa thông tin, trong khi khóa riêng được người nhận sử dụng để giải mã thông tin đó. Vì hai khóa này khác nhau nên khóa chung có thể được chia sẻ tự do mà không ảnh hưởng đến tính bảo mật của khóa riêng. Mỗi cặp khóa bất đối xứng là duy nhất, đảm bảo rằng tin nhắn được mã hóa bằng khóa chung chỉ có thể được đọc bởi người có khóa riêng tương ứng.
Bởi vì 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 nên độ dài của các khóa này lớn hơn nhiều so với độ dài được tìm thấy trong thuật toán mã hóa đối xứng. Độ dài dài hơn này - thường là từ 1024 đến 2048 bit - khiến việc tính toán khóa riêng sử dụng khóa chung làm cơ sở trở nên cực kỳ khó khăn. Một trong những thuật toán phổ biến nhất để mã hóa bất đối xứng được sử dụng ngày nay được gọi là RSA. Trong sơ đồ RSA, các khóa được tạo bằng mô-đun thu đượ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ư phải được giữ bí mật). Thuật toán RSA được mô tả lần đầu tiên vào năm 1977 bởi Rivest, Shamir và Adleman (do đó là RSA) và vẫn là một thành phần quan trọng 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 đề tồn tại lâu dài của thuật toán đối xứng, đó là việc truyền đạt khóa được sử dụng cho cả mã hóa và giải mã cùng một lúc. Việc gửi khóa này qua kết nối không an toàn có thể làm lộ khóa này cho bên thứ ba, những người có thể đọc bất kỳ tin nhắn nào được mã hóa bằng khóa chung. Mặc dù các kỹ thuật mã hóa (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 nhưng chúng vẫn dễ bị tấn công. Mặt khác, 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 mọi kết nối. Kết quả là, các thuật toán bất đối xứng cung cấp mức độ bảo vệ cao hơn so với các thuật toán đối xứng.
Sử dụng trong tạo chữ ký số
Một ứng dụng khác của thuật toán mã hóa bất đối xứng là xác thực dữ liệu thông qua việc sử dụng chữ ký số. Về cơ bản, chữ ký số là một hàm băm được tạo bằng dữ liệu từ tin nhắn. Khi tin nhắn này được gửi đi, người nhận có thể xác minh chữ ký bằng cách sử dụng khóa chung của người gửi để xác thực nguồn gốc 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ý số và mã hóa được áp dụng cùng nhau vì bản thân hàm băm có thể được mã hóa như một phần của tin nhắn. Tuy nhiên, cần lưu ý rằng không phải tất cả các sơ đồ chữ ký số đều sử dụng kỹ thuật mã hóa.
Hạn chế
Mặc dù nó có thể được sử dụng để cải thiện tính bảo mật của máy tính và cung cấp khả năng kiểm tra tính toàn vẹn của tin nhắn nhưng PKC vẫn 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ý lượng lớn dữ liệu. Kiểu mã hóa này cũng phụ thuộc rất nhiều vào giả định rằng khóa riêng sẽ được giữ bí mật. Nếu khóa riêng vô tình bị chia sẻ hoặc bị lộ, tính bảo mật của tất cả các tin nhắn được mã hóa bằng khóa chung tương ứng sẽ bị xâm phạm. Người dùng cũng có thể vô tình làm mất khóa riêng của mình, trong trường hợp đó không thể truy cập dữ liệu được mã hóa.
Ứng dụng của mật mã khóa công khai
Kiểu mã hóa 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 bí mật. Ví dụ: email có thể được mã hóa bằng kỹ thuật mã hóa 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), cho phép kết nối an toàn tới các trang web, cũng sử dụng mã hóa bất đối xứng. Hệ thống PKC thậm chí còn được khám phá như một cách để cung cấp một môi trường an toàn cho bỏ phiếu điện tử, có khả năng cho phép cử tri tham gia bầu cử từ máy tính ở nhà của họ.
PKC cũng nổi bật trong thế giới Blockchain và tiền điện tử. Khi một ví tiền điện tử mới được thiết lập, một cặp khóa (công khai và riêng tư) sẽ được tạo. Địa chỉ công khai được tạo bằng khóa chung và có thể được chia sẻ an toàn với người khác. Mặt khác, khóa riêng được dùng để tạo chữ ký số và xác minh các giao dịch nên phải được giữ bí mật. Sau khi giao dịch được xác minh bằng cách xác nhận hàm băm có trong chữ ký số, 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 riêng được liên kết với ví tiền điện tử tương ứng mới có thể giải ngân tiền từ 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 điện tử 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ã hóa chuyên dụng được gọi là Thuật toán chữ ký số đường cong Elliptic (ECDSA) để xác minh các giao dịch.
Từ bảo mật máy tính đến xác minh các giao dịch tiền điện tử, mật mã khóa công khai đóng vai trò quan trọng trong việc bảo vệ các hệ thống kỹ thuật số hiện đại. Sử dụng cặp khóa chung và khóa riêng, thuật toán mã hóa bất đối xứng giải quyết các vấn đề bảo mật cơ bản do mật mã đối xứng đưa ra. Mặc dù PKC đã tồn tại được nhiều năm nhưng các ứng dụng và ứng 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 điện tử.
