Điểm chính
Mật mã khóa công khai (PKC), còn được gọi là mật mã bất đối xứng, sử dụng một cặp khóa liên kết toán học (một công khai, một riêng) để bảo mật dữ liệu và xác thực danh tính.
Khóa công khai có thể được chia sẻ tự do; khóa riêng phải giữ bí mật. Dữ liệu được mã hóa bằng khóa công khai chỉ có thể được giải mã bằng khóa riêng tương ứng.
RSA là thuật toán PKC được triển khai rộng rãi nhất. Các tiêu chuẩn hiện tại yêu cầu độ dài khóa tối thiểu là 2.048 bit; 3.072 bit hoặc dài hơn được khuyến nghị cho các hệ thống cần giữ an toàn vượt qua năm 2030.
PKC là nền tảng của hầu hết cơ sở hạ tầng an ninh của internet, bao gồm TLS/HTTPS, mã hóa email và ví tiền điện tử.
Vào tháng 8 năm 2024, NIST đã hoàn thiện ba tiêu chuẩn mật mã hậu lượng tử được thiết kế để vẫn an toàn trước máy tính lượng tử, báo hiệu một sự chuyển dịch lâu dài khỏi RSA và ECDSA.
Giới thiệu
Mỗi khi bạn kết nối với một trang web an toàn, gửi một email được mã hóa, hoặc ký một giao dịch tiền điện tử, mật mã khóa công khai đang hoạt động ở phía sau. Đây là một trong những tiến bộ quan trọng nhất trong an ninh hiện đại, và hầu hết mọi người tương tác với nó mỗi ngày mà không hề biết.
Mật mã khóa công khai (PKC), còn được gọi là mật mã bất đối xứng hoặc mã hóa bất đối xứng, là một hệ thống sử dụng hai khóa có liên kết toán học để mã hóa dữ liệu, xác thực danh tính và xác thực tin nhắn. Khác với mã hóa đối xứng, sử dụng một khóa chia sẻ duy nhất, PKC tách biệt chức năng mã hóa và giải mã qua một cặp khóa, cho phép giao tiếp an toàn giữa các bên chưa từng gặp.
Mật mã Khóa Công khai Hoạt động Như Thế Nào?
Mỗi người dùng trong hệ thống PKC tạo ra một cặp khóa: một khóa công khai, có thể được chia sẻ công khai với bất kỳ ai, và một khóa riêng, phải được giữ bí mật mọi lúc. Hai khóa này được liên kết bởi một hàm toán học một chiều. Việc suy ra khóa công khai từ khóa riêng là dễ dàng, nhưng việc đảo ngược quá trình là không khả thi về mặt tính toán.
Khi ai đó muốn gửi cho bạn một tin nhắn được mã hóa, họ sử dụng khóa công khai của bạn để mã hóa nó. Chỉ có khóa riêng của bạn (mà chỉ bạn nắm giữ) mới có thể giải mã nó. Điều này giải quyết vấn đề trung tâm của mã hóa khóa đối xứng: thách thức của việc phân phối một bí mật chia sẻ một cách an toàn qua một kênh không được bảo vệ.
RSA: Thuật toán PKC phổ biến nhất
RSA, được giới thiệu vào năm 1977 bởi Rivest, Shamir và Adleman, vẫn là một trong những thuật toán bất đối xứng được triển khai rộng rãi nhất. Nó hoạt động bằng cách nhân hai số nguyên tố lớn để tạo ra một mô-đun công khai làm cơ sở cho khóa công khai, trong khi khóa riêng tương ứng được suy ra từ các số nguyên tố đó. Phân tích mô-đun trở lại thành các thành phần nguyên tố của nó là không khả thi về mặt tính toán ở các độ dài khóa đủ lớn (độ khó đó là điều tạo nên sự an toàn của RSA).
Các tiêu chuẩn bảo mật hiện tại yêu cầu độ dài khóa RSA tối thiểu là 2.048 bit. Đối với các hệ thống cần giữ an toàn vượt qua năm 2030, NIST khuyến nghị 3.072 bit hoặc dài hơn. Các độ dài khóa 1.024 bit, trước đây phổ biến, không còn được coi là đủ.
Mật mã Đường cong Elip (ECC)
Mật mã Đường cong Elip đạt được mức bảo mật tương đương với RSA với độ dài khóa ngắn hơn đáng kể. Một khóa ECC 256-bit cung cấp mức bảo vệ tương đương với khóa RSA 3.072-bit. Hiệu suất này làm cho ECC trở thành lựa chọn ưu tiên cho các ứng dụng nhạy cảm với hiệu suất như mạng blockchain, thiết bị di động và các cuộc bắt tay TLS.
Chữ ký Kỹ thuật số và Xác thực
PKC cũng cung cấp chữ ký số, là một cách để chứng minh rằng một tin nhắn hoặc tài liệu xuất phát từ một bên cụ thể và không bị thay đổi. Quá trình này hoạt động ngược lại với mã hóa: người gửi sử dụng khóa riêng của họ để ký một tin nhắn, và bất kỳ ai có khóa công khai của người gửi có thể xác minh chữ ký đó.
Trên thực tế, việc ký kết liên quan đến việc tính toán một băm mật mã của tin nhắn (một dấu vân tay có độ dài cố định của nội dung), và mã hóa băm đó bằng khóa riêng. Người nhận giải mã băm bằng khóa công khai của người gửi và tính toán độc lập băm của tin nhắn nhận được. Nếu hai băm khớp nhau, chữ ký là hợp lệ: tin nhắn là xác thực và không bị thay đổi.
Ứng dụng của Mật mã Khóa Công khai
An ninh Internet: TLS và HTTPS
Bảo mật Giao thông (TLS) — thay thế cho Giao thức Đường dẫn Bảo mật (SSL) đã lỗi thời — sử dụng PKC để thiết lập kết nối an toàn giữa trình duyệt và máy chủ web. Trong quá trình bắt tay TLS, máy chủ trình bày một chứng chỉ chứa khóa công khai của nó. Khách hàng sử dụng điều này để thương lượng một khóa phiên, sau đó cả hai bên chuyển sang mã hóa đối xứng nhanh hơn cho phần còn lại của phiên. Cách tiếp cận lai này kết hợp sự an toàn của việc trao đổi khóa bất đối xứng với hiệu suất của mã hóa đối xứng.
Mã hóa email
Các tiêu chuẩn như PGP (Mật mã Tốt Đẹp) và S/MIME sử dụng mật mã khóa công khai để mã hóa nội dung email và xác thực người gửi. Người nhận công bố khóa công khai của họ; người gửi mã hóa tin nhắn bằng nó; chỉ có khóa riêng của người nhận mới có thể giải mã chúng.
Ví tiền điện tử và blockchain
PKC là nền tảng cho cách mà các mạng tiền điện tử xác lập quyền sở hữu và ủy quyền giao dịch. Khi một ví được tạo ra, một cặp khóa được sinh ra: khóa công khai được chuyển đổi (thông qua băm) thành địa chỉ ví có thể chia sẻ, trong khi khóa riêng được sử dụng để ký giao dịch. Bitcoin và Ethereum sử dụng Thuật toán Chữ ký Số Đường cong Elip (ECDSA), tạo ra các chữ ký nhỏ gọn, có thể xác minh mà các nút mạng có thể xác thực chỉ bằng khóa công khai tương ứng.
Quy tắc quan trọng: chỉ có người nắm giữ khóa riêng mới có thể ủy quyền cho quỹ di chuyển từ một ví. Nếu khóa riêng bị mất, quyền truy cập vào các quỹ đó là vĩnh viễn và không thể đảo ngược.
Danh tính kỹ thuật số và bỏ phiếu an toàn
Các nguyên tắc PKC cũng đang được áp dụng cho các hệ thống danh tính kỹ thuật số (nơi mà một khóa riêng chứng minh danh tính mà không tiết lộ dữ liệu cá nhân), và cho các giao thức bỏ phiếu điện tử yêu cầu cả khả năng xác minh và bí mật lá phiếu.
Mật mã Hậu lượng tử
Bảo mật của RSA và ECDSA phụ thuộc vào các vấn đề toán học (phân tích số nguyên và bài toán logarit rời rạc) mà máy tính cổ điển khó khăn nhưng về lý thuyết lại dễ bị tấn công bởi máy tính lượng tử chạy thuật toán Shor. Một máy tính lượng tử đủ quy mô có thể phá vỡ các mô hình PKC hiện tại.
Vào tháng 8 năm 2024, NIST đã hoàn thiện ba tiêu chuẩn mật mã hậu lượng tử (PQC) được thiết kế đặc biệt để chống lại các cuộc tấn công lượng tử:
FIPS 203 (ML-KEM): Cơ chế Bao bọc Khóa Dựa trên Mô-đun-Lattice, thay thế cho trao đổi khóa dựa trên RSA
FIPS 204 (ML-DSA): Thuật toán Chữ ký Số Dựa trên Mô-đun-Lattice, thay thế cho ECDSA
FIPS 205 (SLH-DSA): Thuật toán Chữ ký Số Dựa trên Băm Không Trạng thái, một lựa chọn thay thế dựa trên băm cho các chữ ký
Bộ Thuật toán An ninh Quốc gia Thương mại 2.0 (CNSA 2.0) của NSA yêu cầu rằng các hệ thống mới áp dụng các thuật toán an toàn trước lượng tử vào tháng 1 năm 2027, với việc chuyển đổi cơ sở hạ tầng hoàn toàn được yêu cầu trước năm 2035. Các tổ chức xử lý dữ liệu nhạy cảm lâu dài được khuyên nên bắt đầu kế hoạch chuyển đổi ngay bây giờ, vì kẻ thù có thể đã thu thập dữ liệu được mã hóa ngày hôm nay để giải mã khi phần cứng lượng tử phát triển — một chiến lược được gọi là "thu hoạch ngay, giải mã sau."
Hạn chế của Mật mã Khóa Công khai
PKC có một số hạn chế thực tế:
Hiệu suất: Mã hóa bất đối xứng chậm hơn đáng kể so với mã hóa đối xứng do các phép toán toán học liên quan. Hầu hết các hệ thống thực tế chỉ sử dụng PKC cho việc trao đổi khóa hoặc xác thực, sau đó chuyển sang các mã hóa đối xứng để truyền tải dữ liệu lớn.
Quản lý khóa: Tạo ra, lưu trữ, phân phối và thu hồi khóa một cách an toàn ở quy mô lớn là phức tạp. Các cơ quan chứng nhận (CAs) được tin cậy để xác minh rằng một khóa công khai thực sự thuộc về thực thể đang yêu cầu (một điểm tập trung với những rủi ro riêng của nó).
Bảo mật khóa riêng: Toàn bộ hệ thống phụ thuộc vào việc khóa riêng giữ bí mật. Việc mất hoặc đánh cắp khóa riêng làm suy yếu tất cả các đảm bảo mà PKC cung cấp, và trong bối cảnh tiền điện tử, không có cơ chế phục hồi nào.
Các Câu Hỏi Thường Gặp (FAQ)
Sự khác biệt giữa khóa công khai và khóa riêng là gì?
Khóa công khai là một định danh có thể chia sẻ mà người khác sử dụng để mã hóa tin nhắn hoặc xác minh chữ ký của bạn. Khóa riêng là một giá trị bí mật mà chỉ bạn có, được sử dụng để giải mã tin nhắn được mã hóa bằng khóa công khai của bạn hoặc để ký dữ liệu. Hai khóa này có liên kết toán học: việc suy ra khóa riêng từ khóa công khai là không khả thi bằng công nghệ hiện tại.
Tại sao độ dài khóa RSA lại quan trọng?
Khóa RSA dài hơn làm tăng gấp bội nỗ lực tính toán cần thiết để phá vỡ mã hóa bằng cách phân tích mô-đun của khóa. Một khóa 1.024 bit không còn được coi là an toàn. Mức tối thiểu hiện tại trong ngành là 2.048 bit; 3.072 bit hoặc dài hơn được khuyến nghị cho dữ liệu cần được bảo vệ vào những năm 2030 và xa hơn. Các khóa dài hơn đi kèm với một sự đánh đổi: tăng chi phí tính toán trong quá trình tạo khóa và hoạt động mã hóa.
TLS sử dụng mật mã khóa công khai như thế nào?
Trong quá trình bắt tay TLS, máy chủ trình bày một chứng chỉ số chứa khóa công khai của nó. Khách hàng sử dụng khóa công khai đó để đồng ý một cách an toàn về một khóa phiên đối xứng (bằng cách mã hóa một giá trị ngẫu nhiên hoặc thông qua một trao đổi khóa Diffie-Hellman). Khi khóa phiên được thiết lập, cả hai bên chuyển sang mã hóa đối xứng để tăng hiệu quả. PKC xử lý việc xác thực ban đầu và trao đổi khóa; mã hóa đối xứng xử lý phần lớn việc truyền tải dữ liệu.
Mật mã hậu lượng tử là gì và tại sao điều đó quan trọng?
Mật mã hậu lượng tử đề cập đến các thuật toán bất đối xứng được thiết kế để vẫn an toàn trước cả máy tính cổ điển và máy tính lượng tử. Các tiêu chuẩn hiện tại như RSA và ECDSA dựa vào các vấn đề mà máy tính lượng tử chạy thuật toán Shor có thể giải quyết nhanh hơn nhiều so với máy tính cổ điển. NIST đã hoàn thiện ba tiêu chuẩn hậu lượng tử đầu tiên của mình (ML-KEM, ML-DSA, SLH-DSA) vào tháng 8 năm 2024. Các tổ chức và chính phủ hiện đang bắt đầu các chương trình chuyển đổi trước khi máy tính lượng tử có khả năng mật mã trở nên sẵn có.
Ví tiền điện tử sử dụng mật mã khóa công khai như thế nào?
Khi bạn tạo một ví crypto, một cặp khóa PKC được sinh ra. Khóa công khai của bạn (hoặc một biến thể được băm của nó) trở thành địa chỉ ví của bạn — có thể chia sẻ với bất kỳ ai muốn gửi bạn quỹ. Khóa riêng của bạn ủy quyền cho các giao dịch: nó ký các chuyển khoản ra đi và mạng xác minh các chữ ký đó với khóa công khai của bạn. Nếu khóa riêng của bạn bị mất hoặc bị đánh cắp, quyền truy cập vào các quỹ trong ví đó không thể được phục hồi.
Suy nghĩ cuối cùng
Mật mã khóa công khai là một trong những nền tảng của an ninh kỹ thuật số. Bằng cách tách biệt mã hóa và giải mã thông qua một cặp khóa có liên kết toán học, nó cho phép giao tiếp an toàn giữa các bên chưa từng gặp nhau, thúc đẩy cơ sở hạ tầng tin cậy của internet và là nền tảng cho quyền sở hữu trong các hệ thống tài chính phi tập trung.
Lĩnh vực này hiện đang ở một điểm chuyển giao. Việc chính thức hóa các tiêu chuẩn hậu lượng tử vào năm 2024 cho thấy ngành công nghiệp phải bắt đầu chuyển đổi khỏi RSA và ECDSA. Không phải vì chúng đã bị phá vỡ hôm nay, mà để chuẩn bị cho một tương lai mà phần cứng lượng tử có thể làm cho chúng trở nên lỗi thời. Hiểu cách PKC hoạt động là bước đầu tiên để hiểu những gì sẽ đến tiếp theo.
Đọc thêm
Mã hóa Đối xứng so với Mã hóa Bất đối xứng
Lịch sử của Mật mã
Mật mã Cuối đến Cuối (E2EE) là gì?
Giải thích về Các loại Ví Crypto
Bằng Chứng Không Biết (Zero-Knowledge Proof) là gì?
Tuyên bố miễn trừ trách nhiệm: Nội dung này được trình bày cho bạn trên cơ sở "như hiện tại" chỉ để thông tin chung và mục đích giáo dục, không có đại diện hay bảo đảm nào. Nó không nên được hiểu là tư vấn tài chính, pháp lý hay chuyên nghiệp khác, cũng không có ý định khuyến nghị việc mua bất kỳ sản phẩm hoặc dịch vụ cụ thể nào. Bạn nên tìm kiếm lời khuyên từ các cố vấn chuyên nghiệp thích hợp. Khi nội dung được đóng góp bởi một bên thứ ba, xin lưu ý rằng những quan điểm đó thuộc về bên thứ ba và không nhất thiết phản ánh quan điểm của Binance Academy. Giá trị của tài sản kỹ thuật số có thể dao động. Giá trị đầu tư của bạn có thể giảm hoặc tăng và bạn có thể không lấy lại được số tiền đã đầu tư. Bạn hoàn toàn chịu trách nhiệm cho các quyết định đầu tư của mình và Binance Academy không chịu trách nhiệm cho bất kỳ khoản lỗ nào bạn có thể gặp phải. Để biết thêm thông tin, vui lòng xem Điều khoản Sử dụng, Cảnh báo Rủi ro và Điều khoản của Binance Academy.
