Mã hóa bằng khóa công khai (PKC) cũng được gọi là mã hóa không đối xứng, là một khuôn khổ sử dụng một khóa công khai và một khóa riêng, trái ngược với một khóa duy nhất được sử dụng trong mã hóa đối xứng. Việc sử dụng các cặp khóa của PKC mang lại một tập hợp các thuộc tính và khả năng độc đáo có thể được sử dụng để giải quyết những thách thức trong các kỹ thuật mã hóa khác. Loại mã hóa này đã trở thành một phần quan trọng trong an ninh máy tính hiện đại, cũng như là một yếu tố quan trọng trong hệ sinh thái của các loại tiền số đang nổi lên.


Cách hoạt động của mã hóa bằng khóa công khai là gì?

Trong hệ thống mã hóa bằng khóa công khai, 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 được người nhận sử dụng để giải mã. Bởi vì hai khóa hoàn toàn khác nhau, khóa công khai có thể được chia sẻ một cách an toàn mà không làm ảnh hưởng đến sự an toàn của khóa riêng. Mỗi cặp khóa không đối xứng là duy nhất, đảm bảo rằng thông điệp đượ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 riêng tương ứng.

Bởi vì các thuật toán mã hóa không đối xứng tạo ra các cặp khóa liên kết với toán học, chiều dài của chúng thường dài hơn nhiều so với chiều dài được sử dụng trong mã hóa đối xứng. Chiều dài này thường dao động từ 1.024 đến 2.048 bits. Điều này làm cho việc tính toán khóa riêng từ khóa 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 không đối xứng hiện nay được gọi là RSA. Trong sơ đồ RSA, các khóa được tạo ra bằng cách nhân hai số (thường là hai số nguyên tố lớn). Nói cách khác, tiêu chuẩn tạo ra hai khóa (một khóa công khai có thể chia sẻ và một khóa riêng phải 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 đó RSA là chữ cái đầu của tên của mỗi người tham gia) và vẫn là một thành phần chính trong các hệ thống mã hóa bằng khóa công khai.


PKC như một công cụ mã hóa

Mã hóa bằng khóa công khai giải quyết một trong những vấn đề lâu dài của các thuật toán đối xứng, đó là việc chia sẻ khóa được sử dụng cho cả mã hóa và giải mã. Việc gửi khóa này qua một kết nối không an toàn có thể dẫn đến việc nó bị lộ cho bên thứ ba, và từ đó họ có thể đọc bất kỳ thông điệp nào được mã hóa bằng khóa chung. Mặc dù có các kỹ thuật mã hóa (như giao thức trao đổi khóa Diffie-Hellman-Merkle) để giải quyết vấn đề này, nhưng chúng vẫn dễ bị tấn công. Ngược lại, trong mã hóa bằng khóa công khai, khóa được sử dụng để mã hóa có thể được chia sẻ an toàn qua bất kỳ kết nối nào. Do đó, các thuật toán không đố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.


Sử dụng nó để tạo chữ ký số

Một ứng dụng khác của các thuật toán mã hóa 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 giản, chữ ký số là một hàm băm được tạo ra bằng cách sử dụng dữ liệu trong thông điệp. Khi gửi thông điệp này, chữ ký có thể được người nhận xác minh bằng cách sử dụng khóa công khai của người gửi như một phương pháp xác thực nguồn gốc của thông điệp và để đảm bảo rằng nó không bị can thiệp. Trong một số trường hợp, chữ ký số và mã hóa được áp dụng cùng nhau, nơi có thể mã hóa chính hàm băm như một phần của thông điệp. Tuy nhiên, không phải tất cả các sơ đồ chữ ký số đều sử dụng các kỹ thuật mã hóa.


Giới hạn

Mặc dù nó có thể được sử dụng để cải thiện an ninh máy tính và cung cấp xác minh tính toàn vẹn của thông điệp, nhưng mã hóa bằng khóa công khai có một số giới hạn. Do các phép toán toán học phức tạp liên quan đến mã hóa và giải mã, các thuật toán không đối xứng có thể khá chậm khi phải xử lý một lượng lớn dữ liệu. Loại mã hóa này cũng phụ thuộc rất lớn vào giả định rằng khóa riêng sẽ vẫn được giữ bí mật. Nếu khóa riêng bị chia sẻ hoặc vô tình bị lộ, an ninh của tất cả các thông điệp được mã hóa bằng khóa công khai 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 họ, và trong trường hợp đó, họ sẽ không thể truy cập dữ liệu đã được mã hóa.


Các ứng dụng của mã hóa bằng khóa công khai.

Loại mã hóa này được sử dụng trong nhiều hệ thống máy tính hiện đại để cung cấp an ninh cho thông tin nhạy cảm. Ví dụ, các email có thể được mã hóa bằng các kỹ thuật mã hóa khóa công khai để giữ cho nội dung của chúng được bảo mật. Giao thức Secure Sockets Layer (SSL) cũng sử dụng một phương pháp mã hóa không đối xứng để tạo ra các kết nối an toàn với các trang web. Hệ thống PKC đã đượ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 cho phép cử tri tham gia trong các cuộc bầu cử từ máy tính cá nhân của họ.

Mã hóa bằng khóa công khai cũng đặc biệt nổi bật trong công nghệ blockchain và tiền số. Khi thiết lập một ví tiền số mới, một cặp khóa (khóa công khai và khóa riêng) được tạo ra. Địa chỉ công khai được tạo ra bằng khóa công khai và có thể được chia sẻ an toàn với người khác. Ngược lại, khóa riêng được sử dụng để tạo ra chữ ký số và xác minh giao dịch, do đó cần phải giữ bí mật. Khi giao dịch được xác minh bằng cách xác nhận hàm băm trong chữ ký số, giao dịch này có thể được thêm vào sổ cái blockchain công khai. Hệ thống này đảm bảo tính hợp lệ của chữ ký số, rằng chỉ người sở hữu khóa riêng liên kết với ví tiền số mới có thể rút tiền ra. Cần lưu ý rằng các khóa không đối xứng được sử dụng trong các ứng dụng tiền số khác với các khóa được sử dụng cho mục đích an ninh máy tính. Ví dụ, Bitcoin và Ethereum sử dụng một phương pháp mã hóa chuyên dụng được gọi là Thuật toán chữ ký số cong (ECDSA) để xác minh các giao dịch.

Từ an ninh máy tính đến xác minh giao dịch mã hóa, mã hóa bằng khóa công khai đóng một vai trò quan trọng trong việc bảo vệ các hệ thống số hiện đại. Bằng cách sử dụng các khóa công khai và riêng được ghép đôi, các thuật toán mã hóa không đối xứng giải quyết các vấn đề an ninh cơ bản mà các khóa đối xứng đặt ra. Mặc dù mã hóa bằng khóa công khai đã được sử dụng trong nhiều năm, nhưng việc phát triển sử dụng và ứng dụng mới cho nó đang diễn ra thường xuyên. Đặc biệt trong lĩnh vực blockchain và tiền số.