Giới thiệu
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 cả khóa riêng và khóa chung, trái ngược với khóa duy nhất đượ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 vấn đề cố hữu trong các phương pháp mã hóa khác. Hình thức mật mã 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 sơ đồ PKC, người gửi sử dụng khóa chung để mã hóa thông tin và 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 sử dụng 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. 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.
Do 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 quan về mặt toán học nên độ dài khóa của chúng lớn hơn nhiều so với mật mã đối xứng. Độ dài lớn này, thường từ 1024 đến 2048 bit, khiến việc tính toán khóa riêng từ đối tác công khai của nó trở nên cực kỳ khó khăn. Một trong những thuật toán mã hóa bất đối xứng phổ biến nhất được sử dụng hiện 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). Nói một cách đơn giả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ư cần đượ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à thành phần cốt lõi của các hệ thống mật mã khóa công khai.
PKC là một công cụ mã hóa
Mật mã khóa riêng giải quyết một trong những vấn đề lâu đời của thuật toán đối xứng, đó là việc truyền khóa được sử dụng cho cả mã hóa và giải mã. Việc gửi khóa này qua kết nối không an toàn có thể làm lộ nó cho 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 chung. Mặc dù có các phương pháp mã hóa (chẳng hạn 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ật mã khóa riêng, khóa được sử dụng để mã hóa có thể được truyền một cách an toàn qua bất kỳ kết nối nào. 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 các thuật toán đối xứng.
Tạo chữ ký số
Một ứng dụng khác của thuật toán mật mã bất đối xứng là xác thực dữ liệu bằng chữ ký số. Về cơ bản, chữ ký số là hàm băm được tạo bằng dữ liệu trong 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 khóa chung của người gửi. Bằng cách này, họ có thể xác định 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 sử dụng cùng nhau, nghĩa là 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 phương pháp mã hóa.
giới hạn
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 làm việc với khối lượng dữ liệu lớn. Loại mật mã này cũng phụ thuộc vào giả định rằng khóa riêng sẽ luôn được giữ bí mật. Nếu khóa riêng vô tình được chia sẻ hoặc tiết 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 riêng 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 và họ sẽ không thể truy cập dữ liệu được mã hóa.
Ứng dụng 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 để đảm bảo an toàn 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 để bảo vệ tính bảo mật của nội dung 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ật mã bất đối xứng. Hệ thống PKC thậm chí còn được coi là phương tiện cung cấp 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 đóng một vai trò quan trọng trong công nghệ blockchain và tiền điện tử. Khi thiết lập ví tiền điện tử mới, một cặp khóa (công khai và riêng tư) sẽ được tạo. Địa chỉ ví đượ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 sử dụng để tạo chữ ký số và xác minh các giao dịch nên cần được giữ bí mật.
Khi giao dịch đã được xác minh bằng cách xác minh 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ể 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 đ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ột thuật toán đặc biệt để xác minh các giao dịch được gọi là "Thuật toán chữ ký số đường cong Elliptic (ECDSA)". ECDSA cũng tạo chữ ký số 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.
Kết quả
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ố ngày nay, từ bảo mật máy tính đến xác minh các giao dịch tiền điện tử. Bằng cách 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 chính liên quan đến mật mã đối xứng. Mặc dù PKC đã được sử dụng trong 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à về blockchain và tiền điện tử.
