Mật mã hóa khóa công khai
Mật mã hóa khóa công khai (bất đối xứng) sử dụng các cặp khóa liên kết toán học — một khóa công khai để mã hóa hoặc xác minh chữ ký và một khóa riêng tư để giải mã hoặc ký — cho phép các bên chưa từng gặp nhau có thể giao tiếp an toàn.
Definition
Mật mã hóa khóa công khai là một nhánh của mật mã học, trong đó mỗi bên giữ một cặp khóa — một khóa công khai có thể được chia sẻ tự do và một khóa riêng tư được giữ bí mật — sao cho các thao tác được thực hiện bằng một khóa sẽ được đảo ngược hoặc xác minh bằng khóa kia.
Scope
Lĩnh vực này bao gồm mật mã hóa dựa trên cặp khóa mà tính bảo mật của nó dựa trên các giả định về độ khó tính toán như phân tích thừa số nguyên và bài toán logarit rời rạc. Nó bao gồm mã hóa khóa công khai (RSA, ElGamal), thiết lập khóa (Diffie-Hellman), mật mã đường cong elliptic và chữ ký số. Nó đề cập đến cấu trúc cửa sập (trapdoor) và một chiều mà các lược đồ này dựa vào, cũng như các mục tiêu bảo mật tiêu chuẩn (bảo mật ngữ nghĩa, không thể giả mạo). Nó không bao gồm các nguyên thủy đối xứng và cơ sở hạ tầng chứng chỉ và tin cậy phân phối khóa công khai (được đề cập trong bảo mật hệ thống và mạng).
Sub-topics
Core questions
- Làm thế nào hai bên có thể giao tiếp an toàn mà không cần chia sẻ bí mật trước?
- Những vấn đề tính toán nào (phân tích thừa số, logarit rời rạc) khiến các lược đồ khóa công khai khó bị phá vỡ?
- Hàm một chiều cửa sập là gì, và làm thế nào nó cho phép mã hóa khóa công khai?
- Chữ ký số cung cấp tính xác thực và không thể chối bỏ như thế nào?
- Tại sao mật mã hóa khóa công khai được kết hợp với mật mã đối xứng trong thực tế?
Key concepts
- cặp khóa công khai và riêng tư
- hàm một chiều cửa sập
- bài toán phân tích thừa số nguyên
- bài toán logarit rời rạc
- RSA
- trao đổi khóa Diffie-Hellman
- mật mã đường cong elliptic
- chữ ký số
- mã hóa lai
Key theories
- Các hàm một chiều cửa sập
- Mã hóa khóa công khai dựa vào các hàm dễ tính toán nhưng khó đảo ngược nếu không có thông tin 'cửa sập' bí mật; phép lũy thừa modulo của RSA chỉ dễ đảo ngược đối với người biết phân tích thừa số của modulo.
- Ý tưởng khóa công khai và trao đổi khóa
- Diffie và Hellman đã chỉ ra rằng hai bên có thể thống nhất một bí mật chung qua một kênh công khai bằng cách sử dụng các hàm một chiều, và đề xuất chia khóa mật mã thành các phần công khai và riêng tư — khởi đầu lĩnh vực mật mã hóa khóa công khai.
- Các giả định về độ khó
- Bảo mật bất đối xứng là có điều kiện: các lược đồ được chứng minh là an toàn tương đối với tính bất khả thi giả định của các vấn đề cơ bản như phân tích thừa số nguyên, bài toán RSA và logarit rời rạc trong các trường hữu hạn hoặc nhóm đường cong elliptic.
Clinical relevance
Mật mã hóa khóa công khai là nền tảng cho hầu hết mọi giao tiếp internet an toàn: TLS sử dụng nó để xác thực máy chủ và thiết lập khóa phiên, ký mã và cập nhật phần mềm dựa vào chữ ký số, email an toàn (PGP, S/MIME) và SSH sử dụng các cặp khóa, và các tổ chức cấp chứng chỉ liên kết danh tính với khóa công khai. Tiền điện tử sử dụng chữ ký khóa công khai để ủy quyền giao dịch. Trong thực tế, nó được kết hợp với mật mã đối xứng nhanh trong các lược đồ lai.
Evidence & guidelines
RSA, Diffie-Hellman và các biến thể đường cong elliptic (ECDH, ECDSA, EdDSA) đã được chuẩn hóa (PKCS, NIST SP 800-56, FIPS 186). NIST khuyến nghị ít nhất RSA/DH 2048-bit hoặc đường cong elliptic 224-bit cho bảo mật cổ điển. Vì thuật toán Shor đe dọa tất cả các thuật toán này trên máy tính lượng tử, NIST đã chuẩn hóa các thay thế hậu lượng tử (được đề cập riêng).
History
Mật mã hóa khóa công khai được Diffie và Hellman công bố vào năm 1976 (và độc lập, trong công trình mật, bởi Ellis, Cocks và Williamson tại GCHQ). Hệ mật mã RSA ra đời sau đó vào năm 1977-1978, cung cấp lược đồ mã hóa và chữ ký khóa công khai thực tế đầu tiên. ElGamal (1985) đã xây dựng mã hóa và chữ ký dựa trên logarit rời rạc, và Koblitz và Miller độc lập đề xuất mật mã đường cong elliptic vào năm 1985, cho phép sử dụng các khóa nhỏ hơn.
Key figures
- Whitfield Diffie
- Martin Hellman
- Ralph Merkle
- Ronald Rivest
- Adi Shamir
- Leonard Adleman
Related topics
Seminal works
- diffie1976
- rivest1978
- katz2020
Frequently asked questions
- Tại sao mật mã hóa khóa công khai không được sử dụng cho tất cả các mã hóa?
- Các hoạt động khóa công khai chậm hơn nhiều so với các hoạt động đối xứng và làm tăng chi phí dữ liệu mã hóa. Các hệ thống thực tế chỉ sử dụng mật mã khóa công khai để xác thực các bên và thống nhất một khóa phiên đối xứng, sau đó mã hóa dữ liệu lớn một cách đối xứng — một phương pháp lai.
- Máy tính lượng tử có phá vỡ được mật mã hóa khóa công khai không?
- Một máy tính lượng tử quy mô lớn chạy thuật toán Shor sẽ phá vỡ RSA, Diffie-Hellman và mật mã đường cong elliptic bằng cách phân tích thừa số và tính toán logarit rời rạc một cách hiệu quả. Đây là lý do tại sao các lược đồ hậu lượng tử dựa trên các vấn đề khó khác đang được chuẩn hóa và triển khai.