Mật mã hậu lượng tử
RSA và ECC dựa vào một bài toán toán học khó. Mật mã hậu lượng tử thay bằng những bài toán khó hơn. Mật mã khóa lượng tử bỏ hẳn toán học và để vật lý canh giữ bí mật.
Nền tảng
Mật mã dùng để làm gì, các bài toán khó nó dựa vào, và vì sao máy tính lượng tử thay đổi bức tranh.
Mật mã là lớp thầm lặng bên dưới gần như mọi hệ thống số: nó bảo vệ dữ liệu khi truyền và khi lưu, chứng minh bạn đang nói chuyện với ai, và làm cho mọi sự can thiệp bị phát hiện.
| Mục tiêu | Câu hỏi nó trả lời | Công cụ điển hình |
|---|---|---|
| Tính bí mật | Chỉ bên được chỉ định mới đọc được không? | AES-GCM, ChaCha20-Poly1305, trao đổi khóa |
| Tính toàn vẹn | Nó có bị thay đổi trên đường đi không? | MAC (HMAC), thẻ AEAD, giá trị băm |
| Xác thực | Ai gửi nó, tôi đang nói chuyện với ai? | Chữ ký số, chứng thư, MAC |
| Chống chối bỏ | Người ký về sau có thể chối bỏ không? | Chữ ký số với dấu thời gian tin cậy |
Nó nằm ở đâu trong hạ tầng thực
| Hệ thống | Mật mã bên trong | Phần dễ bị lượng tử tấn công |
|---|---|---|
| HTTPS / TLS | Trao đổi khóa ECDHE, chữ ký chứng thư, AES-GCM | Trao đổi khóa, chữ ký |
| SSH, VPN (IPsec, WireGuard) | Diffie–Hellman, khóa máy chủ và người dùng, đường hầm đối xứng | Trao đổi khóa, khóa xác thực |
| PKI và ký mã | Phân cấp CA, chữ ký RSA/ECDSA trên chứng thư và phần mềm | Mọi chữ ký |
| Thanh toán, thẻ thông minh, eSIM | Khóa đối xứng trong phần tử bảo mật, RSA/ECC để cấp phát | Cấp phát và xác thực thẻ |
| Mã hóa đĩa và cơ sở dữ liệu | AES với khóa được bọc bởi các khóa khác | Chỉ khi bọc khóa dùng RSA/ECC |
| DNSSEC, email (S/MIME, PGP) | Chữ ký, mã hóa khóa công khai | Chữ ký và mã hóa |
Từ cổ điển đến hiện đại
- Thời cổ đại – thế kỷ 19: mật mã thay thế và hoán vị (Caesar, Vigenère). Độ an toàn đến từ việc giữ bí mật phương pháp.
- 1883: Nguyên lý Kerckhoffs — hệ thống phải an toàn ngay cả khi mọi thứ trừ khóa đều công khai.
- 1920s–1940s: các máy rotor như Enigma; việc chúng bị phá cho thấy quản lý khóa yếu và thói quen của người vận hành đánh bại được cả máy mạnh.
- 1949: Lý thuyết thông tin về bí mật của Shannon: sổ dùng một lần an toàn tuyệt đối, nhưng cần khóa dài bằng thông điệp.
- 1976–1977: Trao đổi khóa Diffie–Hellman và RSA tạo ra mật mã khóa công khai; DES trở thành chuẩn mã hóa công khai đầu tiên.
- 1984–1985: Phân phối khóa lượng tử BB84; mật mã đường cong elliptic được Koblitz và Miller đề xuất.
- 1994–1996: Các thuật toán lượng tử của Shor và Grover cho thấy máy tính lượng tử sẽ phá RSA/ECC và làm yếu khả năng chống vét cạn.
- 2001: AES thay thế DES. 2015: SHA-3 được chuẩn hóa.
- 2016–2024: Cuộc thi PQC công khai của NIST; FIPS 203, 204 và 205 công bố tháng 8/2024.
Mô hình đối xứng và bất đối xứng
| Đối xứng | Bất đối xứng (khóa công khai) | |
|---|---|---|
| Khóa | Một khóa bí mật dùng chung | Một cặp khóa công khai và khóa riêng |
| Tốc độ | Rất nhanh, được phần cứng tăng tốc (hàng gigabyte mỗi giây) | Chậm hơn nhiều; dùng cho giá trị nhỏ |
| Nhiệm vụ chính | Mã hóa và xác thực dữ liệu khối lượng lớn | Thiết lập khóa, ký, xác thực |
| Phân phối khóa | Khó: khóa phải được chia sẻ bí mật trước | Dễ: khóa công khai có thể công bố |
| Số khóa cần cho N người dùng | N(N−1)/2 khóa theo cặp | N cặp khóa |
| Ví dụ | AES, ChaCha20, HMAC, SHA-2/3 | RSA, ECDH, ECDSA, ML-KEM, ML-DSA |
| Tác động lượng tử | Grover giảm một nửa độ mạnh hiệu dụng — hãy dùng khóa 256 bit | Shor phá RSA/ECC — thay bằng PQC |
Quy trình thực tế kết hợp cả hai. Mật mã bất đối xứng thiết lập hoặc xác thực một bí mật ngắn; mật mã đối xứng chở dữ liệu:
Xây dựng một phép trao đổi khóa
Diffie–Hellman cho phép hai hệ thống thống nhất một bí mật qua mạng công khai. Hai bên thống nhất một số nguyên tố p và phần tử sinh g; mỗi bên chọn một số riêng, công bố g^private mod p, và nâng giá trị của bên kia lên số riêng của mình. Cả hai đều đi tới g^(ab) mod p. Kẻ nghe lén thấy p, g, A, B — khôi phục a hoặc b là bài toán logarit rời rạc.
Mô phỏng trao đổi khóa giữa hai hệ thống
Thay đổi các khóa riêng. Bí mật chung sau đó được đưa vào hàm dẫn xuất khóa (ở đây là SHA-256 thật, như bên trong HKDF) để tạo khóa phiên 128 bit.
Các bài toán toán học khó
Mật mã khóa công khai cần hàm một chiều có cửa sập: dễ tính, khó đảo ngược, lại dễ nếu có bí mật.
| Bài toán | Được dùng bởi | Tấn công cổ điển tốt nhất | Tình trạng trước lượng tử |
|---|---|---|---|
| Phân tích số nguyên ra thừa số | RSA | Sàng trường số tổng quát, dưới hàm mũ | Shor: đa thức |
| Logarit rời rạc mod p | Diffie–Hellman, DSA | Sàng trường số, dưới hàm mũ | Shor: đa thức |
| Logarit rời rạc trên đường cong elliptic | ECDH, ECDSA, EdDSA | Rho của Pollard, hoàn toàn hàm mũ (√ kích thước nhóm) | Shor: đa thức |
| Module-LWE, Module-SIS | ML-KEM, ML-DSA | Rút gọn lưới (BKZ), hàm mũ | Không có tăng tốc đã biết nào ngoài các hệ số nhỏ |
| Giải mã hội chứng | Classic McEliece, HQC | Giải mã tập thông tin, hàm mũ | Chỉ tăng tốc kiểu Grover |
| Tiền ảnh / va chạm hàm băm | SLH-DSA, LMS, XMSS | Tìm kiếm tổng quát | Grover: chỉ tăng tốc căn bậc hai |
RSA và ECC thực sự giả định điều gì
- Giả định RSA: tính căn bậc e modulo n là khó. Phân tích được n thì phá được nó; việc phá nó có nhất thiết cần phân tích thừa số hay không thì chưa được chứng minh.
- Các giả định Diffie–Hellman: tính gab từ ga, gb (CDH) — và thậm chí phân biệt nó với ngẫu nhiên (DDH) — là khó. Cả hai quy về logarit rời rạc, nhưng có thể dễ hơn nó.
- Giả định về tham số: số nguyên tố ngẫu nhiên và lớn, đường cong được chọn tốt, tính ngẫu nhiên tốt. Phần lớn vụ phá thật vi phạm những điều này chứ không phải toán học.
Lý thuyết độ phức tạp trong bảo mật mật mã
| Lớp | Ý nghĩa | Mức liên quan |
|---|---|---|
| P | Giải được trong thời gian đa thức trên máy tính cổ điển | Bên phòng thủ làm gì: mã hóa, ký, kiểm chứng |
| NP | Lời giải kiểm chứng được trong thời gian đa thức | Phân tích thừa số và logarit rời rạc thuộc NP, nhưng không được tin là NP-đầy đủ |
| BQP | Giải được trong thời gian đa thức trên máy tính lượng tử | Chứa phân tích thừa số và logarit rời rạc (Shor) — gốc rễ của mối đe dọa lượng tử |
- Không có độ an toàn nào được chứng minh tuyệt đối. Ta thậm chí không biết hàm một chiều có tồn tại không (điều đó sẽ kéo theo P ≠ NP). An toàn nghĩa là "chưa biết tấn công hiệu quả nào sau nhiều năm soi xét công khai".
- Phép quy dẫn: một lược đồ "an toàn có chứng minh" nếu phá nó đồng nghĩa với giải được một bài toán khó đã được nghiên cứu kỹ. Chứng minh chỉ tốt bằng bài toán và mô hình.
- Trường hợp trung bình mới quan trọng: mật mã cần những bài toán khó với ngẫu nhiên trường hợp ngẫu nhiên, không chỉ trường hợp xấu nhất. Bài toán lưới đặc biệt ở chỗ: Ajtai và Regev đã liên kết LWE trường hợp trung bình với bài toán lưới trường hợp xấu nhất.
- Mức an toàn: "Bảo mật 128 bit" nghĩa là cuộc tấn công tốt nhất đã biết cần khoảng 2¹²⁸ phép toán.
Chi phí tấn công tăng theo kích thước khóa ra sao
Khối lượng công việc xấp xỉ (log₂ số phép toán) để phá RSA bằng sàng trường số cổ điển, so với số cổng xấp xỉ bậc ba của thuật toán Shor. Kéo để chọn kích thước khóa.
Chi phí cổ điển tăng dưới hàm mũ, nên nhân đôi khóa thêm rất nhiều bảo mật. Chi phí của Shor chỉ tăng theo đa thức, nên khóa RSA lớn hơn gần như vô ích khi đã có máy tính lượng tử lớn. Các con số là ước lượng bậc độ lớn.
Mô phỏng tấn công phân tích thừa số trên khóa kiểu RSA
Nhập modulus công khai n và số mũ e. Kẻ tấn công phân tích n bằng thuật toán rho của Pollard, dựng lại khóa riêng, và giải mã. Thử n = 3233 (61 × 53), rồi các giá trị lớn hơn như 1000000016000000063.
Các thất bại mật mã và bài học
| Sự cố | Điều gì đã sai | Bài học |
|---|---|---|
| Debian OpenSSL (2008) | Một lần dọn mã đã xóa mất entropy; suốt hai năm chỉ có ~32.768 khóa khả dĩ được sinh ra | Tính ngẫu nhiên là điểm hỏng duy nhất |
| Sony PS3 (2010) | Các chữ ký ECDSA dùng lại cùng một nonce, làm lộ khóa ký riêng của máy chơi game | Nonce không bao giờ được lặp; ưu tiên ký tất định hoặc ký có rào chắn |
| Heartbleed (2014) | Thiếu kiểm tra giới hạn trong OpenSSL làm lộ bộ nhớ máy chủ, kể cả khóa riêng | Lỗi cài đặt vượt qua toán học vững chắc |
| Logjam, FREAK (2015) | Máy chủ có thể bị hạ cấp xuống DH và RSA yếu "cấp xuất khẩu" | Loại bỏ các tùy chọn yếu; chống hạ cấp |
| ROCA (2017) | Một thư viện thẻ thông minh sinh số nguyên tố RSA có cấu trúc, khiến hàng triệu khóa bị phân tích được | Việc sinh khóa cần được thẩm định không kém thuật toán |
| SHAttered (2017) | Va chạm SHA-1 thực tế đầu tiên, sau các cảnh báo từ năm 2005 | Chuyển đổi khi điểm yếu xuất hiện, không đợi tới khi tấn công trở nên rẻ |
| Dual_EC_DRBG (2013) | Một bộ sinh ngẫu nhiên được chuẩn hóa bị cho là chứa cửa hậu | Đòi hỏi lựa chọn tham số minh bạch |
| SIKE (2022) | Một ứng viên chung kết PQC bị phá trong khoảng một giờ trên laptop bằng một tấn công toán học mới | Giả định mới cần nhiều năm soi xét; giữ phương án lai và linh hoạt mật mã |
Quy luật lặp lại: thuật toán hiếm khi hỏng đầu tiên. Tính ngẫu nhiên, cài đặt, cấu hình và chuyển đổi chậm mới hỏng. Việc chuyển sang PQC sẽ được đánh giá theo đúng những bài học này.
Mật mã đối xứng
Một khóa dùng chung, rất nhanh — con ngựa thồ thực sự mã hóa dữ liệu của thế giới.
Mật mã cổ điển
| Mật mã | Cách hoạt động | Nó bị phá thế nào |
|---|---|---|
| Caesar | Dịch mỗi chữ cái một khoảng cố định | Chỉ 25 khóa — thử hết, hoặc dùng tần suất chữ cái |
| Thay thế đơn bảng | Mọi ánh xạ chữ-sang-chữ cố định (26! khóa) | Phân tích tần suất, được biết từ al-Kindi ở thế kỷ 9 |
| Vigenère | Một từ khóa chọn độ dịch khác nhau cho mỗi vị trí | Phép thử Kasiski và Friedman tìm độ dài khóa, rồi mỗi cột là một mã Caesar |
| Enigma | Các rotor đổi phép thay thế sau mỗi lần gõ phím | Bản rõ đã biết ("cribs"), sai sót quy trình, và các máy bombe điện cơ ở Bletchley Park |
| Sổ dùng một lần | XOR với một khóa thực sự ngẫu nhiên dài bằng thông điệp, dùng một lần | Không thể phá — trừ khi khóa bị dùng lại (như trong các bản chặn thu Venona) |
Bài học đằng sau tất cả: không gian khóa khổng lồ là chưa đủ. Bản mã không được để lộ cấu trúc thống kê của bản rõ.
Mã hóa, rồi phá, một mật mã cổ điển
Gõ một thông điệp và chọn một mật mã. Kẻ tấn công tự động phá Caesar bằng cách so tần suất chữ cái với tiếng Anh (phép thử khi bình phương).
Mã khối và mã dòng
Mật mã đối xứng hiện đại theo hai nguyên lý của Shannon: tính hỗn loạn (mỗi bit đầu ra phụ thuộc vào khóa một cách phức tạp) và tính khuếch tán (mỗi bit đầu vào ảnh hưởng tới nhiều bit đầu ra).
AES (mã khối)
Mã hóa khối 128 bit với khóa 128, 192 hoặc 256 bit, qua 10, 12 hoặc 14 vòng. Mỗi vòng: SubBytes (thay thế qua S-box), ShiftRows, MixColumns và AddRoundKey. Được chuẩn hóa năm 2001 (FIPS 197); hầu hết CPU có lệnh AES.ChaCha20 (mã dòng)
Tạo dòng khóa từ khóa 256 bit, một nonce và một bộ đếm chỉ bằng phép cộng, xoay và XOR. Nhanh và chạy thời gian hằng trong phần mềm, nên được ưa dùng trên thiết bị không có phần cứng AES. Đi cặp với Poly1305 để xác thực.| Thuật toán | Tình trạng |
|---|---|
| AES-128 / AES-256 | Được khuyến nghị — AES-256 cho dữ liệu dài hạn và biên an toàn hậu lượng tử |
| ChaCha20 | Được khuyến nghị |
| 3DES | Đã ngừng dùng — khối 64 bit gục trước tấn công ngày sinh Sweet32; bị NIST cấm sau 2023 |
| DES | Đã bị phá — khóa 56 bit bị vét cạn năm 1998 |
| RC4 | Đã bị phá — dòng khóa bị lệch; bị cấm khỏi TLS (RFC 7465) |
Các chế độ hoạt động
Mã khối chỉ mã hóa một khối. Một chế độ cho biết cách nối các khối với nhau — và chế độ sai sẽ làm lộ cấu trúc.
| Chế độ | Ý tưởng | Kết luận |
|---|---|---|
| ECB | Mỗi khối được mã hóa độc lập | Không bao giờ dùng — các khối giống nhau cho bản mã giống nhau |
| CBC | XOR mỗi khối với bản mã trước đó | Cũ — cần IV ngẫu nhiên và MAC; tấn công padding oracle |
| CTR | Mã hóa một bộ đếm để tạo dòng khóa | Cần một MAC — nonce không bao giờ được lặp lại |
| GCM | Mã hóa CTR cộng một MAC đa thức (GHASH) | AEAD mặc định — thảm họa nếu nonce bị lặp |
| XTS | Chế độ có tham số tinh chỉnh cho các sector đĩa | Mã hóa đĩa |
Xem vì sao ECB làm lộ
Cùng bức hình, được mã hóa bằng một mã khối đồ chơi 16 bit. Mỗi ô 4×4 là một khối, và mỗi khối bản mã được vẽ bằng một màu. ECB cho các ô giống nhau cùng một màu, nên đường viền vẫn còn; CTR biến nó thành nhiễu.
Bản rõ
ECB
CTR
Hàm băm
Hàm băm ánh xạ mọi đầu vào thành một dấu vân tay kích thước cố định. Hàm băm mật mã cần ba tính chất:
| Tính chất | Ý nghĩa | Chi phí tấn công tổng quát (hàm băm n bit) |
|---|---|---|
| Kháng tiền ảnh | Cho một giá trị băm, không thể tìm đầu vào tạo ra nó | 2ⁿ (Grover: 2ⁿᐟ²) |
| Kháng tiền ảnh thứ hai | Cho một đầu vào, không thể tìm đầu vào khác có cùng giá trị băm | 2ⁿ |
| Kháng va chạm | Không thể tìm được hai đầu vào bất kỳ có cùng giá trị băm | 2ⁿᐟ² (nghịch lý ngày sinh) |
SHA-2 (SHA-256, SHA-512) dùng cấu trúc Merkle–Damgård, cho phép tấn công mở rộng độ dài — đó là lý do HMAC tồn tại. SHA-3 (Keccak) dùng cấu trúc bọt biển (sponge) và miễn nhiễm. MD5 và SHA-1 đã bị phá về va chạm; BLAKE2 và BLAKE3 là các lựa chọn hiện đại nhanh.
Hiệu ứng thác lũ
SHA-256 thật. Đổi một ký tự trong ô thứ hai: khoảng một nửa trong 256 bit đầu ra bị lật.
Nghịch lý ngày sinh
Cần bao nhiêu giá trị băm ngẫu nhiên trước khi có hai cái trùng nhau? Xác suất có ít nhất một va chạm trong k giá trị của hàm băm n bit ≈ 1 − e−k²/2ⁿ⁺¹.
Mẹo: 23 người cho khả năng 50% có hai người trùng ngày sinh; hàm băm 128 bit cho 50% sau khoảng 2⁶⁴ giá trị.
MAC và mã hóa xác thực
Riêng mã hóa không ngăn được can thiệp: lật một bit bản mã ở chế độ CTR sẽ lật đúng bit đó của bản rõ. Một mã xác thực thông điệp thêm một thẻ mà chỉ người giữ khóa mới tính được.
- HMAC (RFC 2104): H((K ⊕ opad) ‖ H((K ⊕ ipad) ‖ m)). An toàn với SHA-256 dù có tấn công mở rộng độ dài.
- Poly1305, GHASH: MAC dùng một lần rất nhanh, dùng bên trong các chế độ AEAD.
- AEAD (mã hóa xác thực kèm dữ liệu liên kết): AES-GCM, ChaCha20-Poly1305, AES-GCM-SIV (chống dùng sai nonce). Mã hóa và xác thực trong một bước, đồng thời bảo vệ các tiêu đề không mã hóa.
- So sánh thẻ xác thực trong thời gian hằng. So sánh dừng sớm làm lộ số byte đã khớp.
Dẫn xuất khóa và băm mật khẩu
| Công cụ | Mục đích | Ghi chú |
|---|---|---|
| HKDF | Biến một bí mật chung thành nhiều khóa độc lập | Trích xuất-rồi-mở rộng; dùng trong TLS 1.3, Signal, Noise |
| Argon2id | Lưu mật khẩu | Tốn bộ nhớ; thắng Cuộc thi Băm mật khẩu 2015; mặc định được khuyến nghị |
| scrypt, bcrypt | Lưu mật khẩu | Vẫn chấp nhận được; bcrypt cắt đầu vào ở 72 byte |
| PBKDF2 | Lưu mật khẩu, suy ra khóa | Được FIPS chấp thuận nhưng không tốn bộ nhớ; cần số vòng lặp rất cao |
| SHA-256 hoặc MD5 trần | — | Không bao giờ dùng cho mật khẩu: GPU thử hàng tỉ lần mỗi giây |
Luôn thêm một giá trị ngẫu nhiên duy nhất muối cho mỗi mật khẩu, để các mật khẩu giống nhau cho giá trị băm khác nhau và bảng cầu vồng tính sẵn trở nên vô dụng. Một giá trị bí mật tiêu (pepper) giữ bên ngoài cơ sở dữ liệu thêm một lớp phòng thủ nếu cơ sở dữ liệu bị lộ.
Mật khẩu này sống sót được bao lâu?
Ước lượng thời gian bẻ khóa ngoại tuyến sau khi lộ cơ sở dữ liệu, giả sử mật khẩu được chọn ngẫu nhiên từ tập ký tự của nó. Mật khẩu do người chọn yếu hơn nhiều — kẻ tấn công thử từ điển trước. Tốc độ đoán là bậc độ lớn thô cho một GPU.
Không có gì bạn gõ rời khỏi trang này.
Tính ngẫu nhiên
Mọi khóa, nonce và muối đều bắt đầu từ các bit ngẫu nhiên — và các thất bại của Debian và PS3 cho thấy điều gì xảy ra khi không như vậy. Hãy dùng bộ sinh an toàn mật mã của hệ điều hành (getrandom(), /dev/urandom, crypto.getRandomValues()), không bao giờ Math.random(). Các chuẩn như NIST SP 800-90A/B/C mô tả bộ sinh tất định (Hash_DRBG, CTR_DRBG) và các nguồn entropy cấp mầm cho chúng; một QRNG có thể là một nguồn như vậy.
Phân tích mật mã
| Kỹ thuật | Ý tưởng |
|---|---|
| Vét cạn | Thử mọi khóa. 2¹²⁸ vượt xa mọi máy tính; Grover chỉ giảm một nửa số mũ. |
| Phân tích mật mã vi sai | Theo dõi sự khác biệt đầu vào lan qua các vòng ra sao (Biham–Shamir, 1990). Các S-box của DES đã được bí mật thiết kế để chống lại nó. |
| Phân tích mật mã tuyến tính | Tìm các xấp xỉ tuyến tính giữa các bit bản rõ, bản mã và khóa (Matsui, 1993). |
| Gặp nhau ở giữa | Vì sao DES đôi chẳng hơn DES bao nhiêu, và vì sao 3DES dùng ba khóa. |
| Kênh kề | Thời gian, công suất, bức xạ điện từ, truy cập bộ nhớ đệm (kiểu Spectre), gây lỗi. |
| Các mô hình tấn công | Chỉ có bản mã, biết bản rõ, chọn bản rõ, chọn bản mã — mật mã hiện đại phải chịu được mô hình mạnh nhất. |
Mục tiêu an toàn được phát biểu dưới dạng trò chơi: IND-CPA (kẻ tấn công có thể mã hóa cũng không phân biệt được thông điệp nào trong hai thông điệp đã được mã hóa) và IND-CCA2 (kể cả khi có oracle giải mã). AEAD và ML-KEM nhắm tới mức CCA.
RSA
Mã hóa bằng một khóa; chỉ khóa kia mới giải mã được.
RSA là một nền móng của mật mã khóa công khai: hai bên có thể trao đổi dữ liệu an toàn mà chưa từng chia sẻ bí mật nào. Rivest, Shamir và Adleman công bố nó năm 1977.
Với mật mã đối xứng như AES, hai bên dùng cùng một khóa — nhanh, nhưng cần một cách an toàn để trao khóa đó. Mật mã khóa công khai giải quyết điều này bằng một cặp khóa liên kết toán học: khóa công khai có thể chia sẻ tự do, khóa riêng không bao giờ rời chủ sở hữu.
Hãy hình dung một đống hộp có ổ khóa đang mở để ở nơi công cộng. Ai cũng bấm khóa lại được, nhưng chỉ bạn giữ chìa mở nó. Ổ khóa là khóa công khai, khóa là khóa riêng, và cả hai đều được làm từ toán học.
Khóa công khai
Chia sẻ với mọi người. Dùng để mã hóa thông điệp gửi bạn, hoặc kiểm chứng chữ ký của bạn.Khóa riêng
Chỉ bạn giữ. Dùng để giải mã hoặc ký.Dễ theo một chiều, khó theo chiều kia
Nhân hai số nguyên tố thì nhanh. Khôi phục hai thừa số từ tích của chúng trở nên vô cùng tốn kém khi số dài hàng nghìn bit.
Tạo một cặp khóa
- Chọn hai số nguyên tố: p = 3, q = 11.
- Tính modulus: n = p·q = 33.
- Tính hàm phi Euler: φ(n) = (p−1)(q−1) = 2·10 = 20.
- Chọn số mũ công khai e = 3, vì gcd(3, 20) = 1.
- Tìm số mũ riêng d = 7, vì 3·7 = 21 ≡ 1 (mod 20).
Kết quả: khóa công khai (33, 3), khóa riêng (33, 7). Trên thực tế p và q mỗi số dài ít nhất 1024 bit, lấy từ bộ sinh số ngẫu nhiên mật mã, và e thường là 65537.
d là nghịch đảo modulo của e modulo φ(n). Đó là điều làm phép lũy thừa modulo khả nghịch.
Mã hóa và giải mã
Người gửi chỉ cần khóa công khai. Với thông điệp m = 4:
Người nhận dùng khóa riêng. Vì 31 ≡ −2 (mod 33):
Vì sao hai phép toán triệt tiêu nhau?
Bởi vì ed = 21 = 1 + φ(n), ta được med = m · m20. Theo định lý Euler, khi gcd(m, 33) = 1, m20 ≡ 1, nên med ≡ m (mod 33). Trường hợp m có chung một thừa số với n vẫn hoạt động, nhờ định lý số dư Trung Hoa.
Thử RSA với số nhỏ
Thay đổi p, q, e hoặc thông điệp. Kết quả cập nhật khi bạn gõ.
Chỉ là mô hình dạy học — hoàn toàn không an toàn cho dữ liệu thật.
Mã hóa không phải là ký
Mã hóa
Người gửi dùng khóa công khai của người nhận; người nhận giải mã bằng khóa riêng của mình. Mục tiêu: giữ nội dung bí mật.Chữ ký số
Người ký dùng khóa riêng của chính họ; ai cũng kiểm chứng được bằng khóa công khai. Mục tiêu: chứng minh nguồn gốc và phát hiện giả mạo.- Alice băm tài liệu và ký giá trị băm bằng khóa riêng của mình theo RSA-PSS.
- Alice gửi tài liệu và chữ ký cho Bob.
- Bob kiểm chứng bằng khóa công khai của Alice. Kết quả hợp lệ nghĩa là tài liệu không bị sửa và đã được ký bởi người giữ khóa riêng tương ứng.
Tự chữ ký không chứng minh danh tính ngoài đời thực. Cần PKI và chứng thư để gắn khóa công khai với đúng người hoặc tổ chức.
Mã hóa lai
RSA chậm và chỉ mã hóa được lượng dữ liệu nhỏ, nên các hệ thống thật kết hợp hai lớp:
- Tạo một khóa AES ngẫu nhiên.
- Mã hóa dữ liệu bằng AES-GCM — nhanh, và phát hiện được can thiệp.
- Mã hóa khóa AES bằng RSA-OAEP dưới khóa công khai của người nhận.
- Gửi cả hai. Người nhận mở khóa AES bằng khóa riêng của mình, rồi giải mã dữ liệu.
TLS 1.3 không còn dùng RSA để chuyển khóa phiên; thay vào đó nó dùng trao đổi khóa (EC)DHE. RSA nay chủ yếu xuất hiện dưới dạng chữ ký trong chứng thư.
Ký một thông điệp, rồi sửa nó
Khóa RSA đồ chơi n = 3233, e = 17, d = 2753. Thông điệp được băm bằng SHA-256 thật, rút gọn mod n, và ký bằng khóa riêng. Sửa bản nhận được để thấy kiểm chứng thất bại.
Với n nhỏ như vậy, nhiều thông điệp có chung giá trị băm mod n, nên ở đây giả mạo rất dễ. RSA-PSS thật dùng toàn bộ giá trị băm và modulus từ 2048 bit trở lên.
RSA an toàn đến đâu?
Bất kỳ ai phân tích được n = pq có thể tính φ(n) và suy ra d. Tuy nhiên trên thực tế, hệ thống thường hỏng ở chỗ khác: sinh số nguyên tố yếu, lộ khóa, tấn công kênh kề, hoặc padding cũ.
| Lược đồ | Dùng cho | Ghi chú |
|---|---|---|
| RSA-OAEP | Mã hóa | Padding ngẫu nhiên hóa; lựa chọn mặc định |
| RSA-PSS | Chữ ký | Padding ngẫu nhiên hóa; lựa chọn mặc định |
| PKCS#1 v1.5 | Mã hóa (cũ) | Bị tấn công Bleichenbacher; chỉ giữ lại vì tương thích |
Đường cong elliptic
Cùng mức an toàn cổ điển như RSA, với khóa nhỏ hơn nhiều lần.
Mật mã đường cong elliptic (ECC) làm việc với các điểm trên một đường cong trên trường hữu hạn. Dù tên gọi vậy, đường cong elliptic không phải hình elip. Dạng Weierstrass rút gọn:
"Trường hữu hạn" nghĩa là mọi phép tính quay vòng theo modulo một số nguyên tố p. Các điểm của đường cong, cộng thêm một điểm ở vô cực, tạo thành một nhóm, và phép toán cốt lõi là cộng điểm lặp lại — gọi là phép nhân vô hướng.
- G là điểm sinh công khai, cố định cho mỗi đường cong chuẩn.
- d là khóa riêng: một số ngẫu nhiên trong khoảng cho phép.
- Q là khóa công khai: G cộng với chính nó d lần.
Điện toán Q từ d thì nhanh (nhân đôi-và-cộng mất khoảng log₂d bước). Khôi phục d từ G và Q là bài toán logarit rời rạc trên đường cong elliptic (ECDLP) — được thiết kế để bất khả thi với đường cong tốt và tham số đủ lớn.
Cộng hai điểm
Với hai điểm phân biệt P = (x₁, y₁) và R = (x₂, y₂):
"Phép chia" trong trường hữu hạn nghĩa là nhân với nghịch đảo modulo. Khi nhân đôi một điểm (P = R), hệ số góc trở thành s = (3x₁² + a) / 2y₁. Các bản cài đặt thật còn phải xử lý trường hợp đặc biệt và kiểm tra rằng các điểm nằm trên đường cong.
Thử ECC trên một đường cong đồ chơi
Đường cong y² = x³ + 2x + 2 (mod 17), điểm sinh G = (5, 1). Chọn khóa riêng d và xem khóa công khai Q = dG rơi vào đâu.
Mỗi chấm là một nghiệm (x, y) trong trường hữu hạn, không phải một đường cong liên tục. Đường nối lần lượt G, 2G, 3G… — nó nhảy lung tung có vẻ ngẫu nhiên, và đó chính là lý do đi ngược từ Q về d rất khó. Nhóm này quá nhỏ để an toàn.
RSA và ECC
| RSA | ECC | |
|---|---|---|
| Bài toán khó | Phân tích số nguyên ra thừa số | Logarit rời rạc trên đường cong elliptic |
| Khóa công khai | Modulus và số mũ | Một điểm trên đường cong, cộng các tham số đường cong |
| Các lược đồ phổ biến | RSA-OAEP để mã hóa, RSA-PSS để ký | ECDH / X25519 để thỏa thuận khóa, ECDSA / Ed25519 để ký |
| Kích thước khóa cho ~128 bit an toàn | 3072 bits | 256 bits |
| Các lỗi cài đặt điển hình | Padding oracle, số nguyên tố yếu, rò rỉ thời gian | Dùng lại nonce khi ký, tấn công đường cong không hợp lệ, thiếu kiểm tra điểm |
| Trước máy tính lượng tử | Bị Shor phá | Bị Shor phá |
ECC thường cho khóa nhỏ hơn và phép toán hiệu quả, nhưng "nhỏ hơn" không tự động có nghĩa là "nhanh hơn" hay "an toàn hơn" trong mọi trường hợp. Lựa chọn đúng phụ thuộc vào giao thức, phần cứng, khả năng tương tác và chất lượng cài đặt.
Mật mã khóa công khai trong thực tế
Mã hóa lai
Khóa công khai chỉ thiết lập một khóa đối xứng ngắn hạn. Dữ liệu được mã hóa bằng AES-GCM hoặc ChaCha20-Poly1305.Chứng thư và niềm tin
Chứng thư gắn một khóa công khai với một danh tính và được CA ký. Máy khách phải kiểm tra chuỗi chứng thư, tên máy chủ, thời hạn hiệu lực và chính sách.Một kết nối HTTPS hiện đại (TLS 1.3), về mặt khái niệm:
- Hai bên thống nhất một bí mật phiên bằng Diffie–Hellman tạm thời, thường là ECDHE với X25519.
- Máy chủ chứng minh danh tính bằng chữ ký từ khóa chứng thư của nó (RSA-PSS, ECDSA hoặc Ed25519).
- Từ bí mật chung, hai bên suy ra khóa lưu lượng bằng KDF.
- Dữ liệu được mã hóa bằng mã hóa xác thực (AEAD).
Đây không phải bắt tay TLS đầy đủ. Hãy luôn dùng thư viện TLS được duy trì; không bao giờ tự cài đặt giao thức.
Mối đe dọa lượng tử với cả RSA và ECC
Một máy tính lượng tử lớn, có sửa lỗi, chạy Thuật toán Shor sẽ phân tích số nguyên và giải logarit rời rạc trong thời gian đa thức. Điều đó phá vỡ RSA, Diffie-Hellman và ECC cùng một lúc. Máy hiện nay chưa làm được điều này với kích thước khóa thật, nhưng có hai lý do để chuẩn bị ngay:
Thu thập bây giờ, giải mã sau
Kẻ tấn công có thể ghi lại lưu lượng mã hóa hôm nay và chờ máy tính lượng tử. Dữ liệu phải giữ bí mật 10–20 năm đã gặp rủi ro.Chuyển đổi diễn ra chậm
Thay thuật toán trên khắp giao thức, chứng thư, phần cứng và thiết bị nhúng thường mất một thập kỷ.Thuật toán Grover chỉ tăng tốc căn bậc hai cho tìm kiếm vét cạn, nên mật mã đối xứng bị ảnh hưởng khác: khóa dài hơn là đủ — AES-256 và SHA-384 vẫn an toàn. Vấn đề là mật mã khóa công khai, và có hai lời giải: thay toán học (PQC) hoặc thay bằng vật lý (mật mã khóa lượng tử, QKC).
Máy tính lượng tử tấn công RSA như thế nào
- Qubit có thể ở trạng thái chồng chập của 0 và 1; n qubit mô tả 2ⁿ biên độ cùng lúc. Phép đo chỉ trả về một kết quả, nên muốn tăng tốc phải có giao thoa khuếch đại đáp án đúng.
- Thuật toán Shor biến phân tích thừa số thành tìm chu kỳ: chọn một a, tìm chu kỳ r của aˣ mod n bằng biến đổi Fourier lượng tử, rồi gcd(a^(r/2) ± 1, n) thường làm lộ một thừa số. Chỉ bước tìm chu kỳ mới cần máy tính lượng tử.
- ECC gục trước một biến thể của cùng ý tưởng, và cần ít qubit hơn RSA ở mức an toàn cổ điển tương đương.
- Thuật toán Grover tìm trong N khả năng với khoảng √N bước, và các bước không song song hóa hiệu quả được — nên AES-128 bị yếu đi về lý thuyết, còn AES-256 an toàn thoải mái.
- Qubit vật lý và qubit logic: qubit ngày nay có nhiễu. Sửa lỗi gộp hàng trăm tới hàng nghìn qubit vật lý thành một qubit logic đáng tin cậy. Ước tính năm 2025 của Craig Gidney cho thấy RSA-2048 nằm trong tầm của dưới một triệu qubit vật lý có nhiễu chạy khoảng một tuần — vượt xa máy hiện nay, nhưng giảm mạnh so với ước tính 20 triệu trước đó.
Mật mã hậu lượng tử
Toán học mới, chạy trên những máy tính ta đã có.
Mật mã hậu lượng tử (PQC) là tập hợp các thuật toán chạy trên máy tính thông thường nhưng dựa trên các bài toán được tin là khó với cả máy cổ điển lẫn máy lượng tử. Không cần phần cứng mới — chỉ cần cập nhật phần mềm và giao thức.
| Họ | Bài toán khó | Các thuật toán |
|---|---|---|
| Lưới | Module-LWE, NTRU: tìm vectơ ngắn, gỡ nhiễu trong không gian nhiều chiều | ML-KEM, ML-DSA, FN-DSA |
| Dựa trên hàm băm | Chỉ dựa vào độ an toàn của hàm băm | SLH-DSA, XMSS, LMS |
| Dựa trên mã | Giải mã một mã sửa lỗi tuyến tính ngẫu nhiên | HQC, Classic McEliece |
Các chuẩn NIST
| Thuật toán | Chuẩn | Vai trò | Tình trạng |
|---|---|---|---|
| ML-KEM (Kyber) | FIPS 203 | Đóng gói khóa, thay cho trao đổi khóa RSA/ECDH | Bản cuối, 8/2024 |
| ML-DSA (Dilithium) | FIPS 204 | Chữ ký số, lựa chọn mặc định | Bản cuối, 8/2024 |
| SLH-DSA (SPHINCS+) | FIPS 205 | Chữ ký dự phòng chỉ dựa trên hàm băm | Bản cuối, 8/2024 |
| FN-DSA (Falcon) | FIPS 206 | Chữ ký gọn | Bản nháp, dự kiến bản cuối cuối 2026 – đầu 2027 |
| HQC | — | KEM dự phòng trên nền tảng toán học khác ML-KEM | Được chọn 3/2025, đang chuẩn hóa |
KEM thay cho "mã hóa bằng khóa công khai"
PQC không mã hóa thông điệp trực tiếp như RSA. Thay vào đó, một cơ chế đóng gói khóa (KEM) cho cả hai bên một bí mật chung:
- Bob tạo một cặp khóa (ek, dk) và công bố ek.
- Alice chạy Encaps(ek), nhận được một bí mật chung K và một bản mã ct, và gửi ct.
- Bob chạy Decaps(dk, ct) và cũng nhận được K. Cả hai dùng K làm khóa AES.
Trực giác về Learning With Errors
Ma trận A là công khai, vectơ s là bí mật, và e là nhiễu nhỏ. Không có nhiễu, việc tìm s chỉ là giải hệ phương trình tuyến tính. Thêm nhiễu vào, bài toán trở nên cực kỳ khó — kể cả với máy tính lượng tử, theo hiểu biết hiện nay.
FIPS 203 định nghĩa ba bộ tham số: ML-KEM-512, ML-KEM-768 và ML-KEM-1024, mang lại các đánh đổi khác nhau giữa bảo mật và hiệu năng. Lớn hơn không phải "tốt hơn trong mọi trường hợp" — hãy chọn theo hồ sơ giao thức chuẩn. Trong một kết nối đầy đủ, bí mật KEM đi qua KDF để thành khóa lưu lượng, và AES-GCM hoặc ChaCha20-Poly1305 mã hóa dữ liệu.
Trực giác cho lưới: hãy hình dung một lưới điểm lặp lại đều đặn trong hàng trăm chiều. Ai giữ khóa bí mật thì "biết lối tắt" để gỡ bỏ nhiễu; kẻ tấn công chỉ thấy một bài toán được tin là khó. "Kháng lượng tử" nghĩa là được thiết kế để chịu được các tấn công lượng tử đã biết dưới các giả định đã nêu — không phải đã được chứng minh là không thể phá.
Cái giá: kích thước
| Thuật toán | Khóa công khai | Bản mã hoặc chữ ký |
|---|---|---|
| X25519 | 32 B | 32 B |
| RSA-3072 | 384 B | 384 B |
| ML-KEM-768 | 1,184 B | 1,088 B |
| ML-DSA-65 | 1,952 B | 3,309 B |
| SLH-DSA-128s | 32 B | 7,856 B |
PQC thường nhanh, nhưng khóa và chữ ký lớn hơn nhiều — ảnh hưởng tới băng thông, chuỗi chứng thư và thiết bị nhúng.
Mã hóa một bit bằng Learning With Errors
Một phiên bản đồ chơi của lược đồ Regev năm 2005, tổ tiên của ML-KEM: n = 8 số bí mật, q = 97, 16 mẫu công khai. Tăng nhiễu và xem việc giải mã bắt đầu thất bại.
Cách hoạt động: khóa công khai là nhiều phương trình có nhiễu bᵢ = ⟨aᵢ, s⟩ + eᵢ (mod q). Để gửi một bit, cộng một tập con ngẫu nhiên của chúng, rồi cộng ⌊q/2⌋ nếu bit là 1. Bên nhận trừ đi ⟨u, s⟩; phần còn lại là độ lệch của bit cộng với tổng của các sai số nhỏ. Nếu nhiễu đó nhỏ hơn q/4, phép làm tròn khôi phục được bit. Các lược đồ thật chọn tham số sao cho xác suất thất bại nhỏ tới mức thiên văn.
Bên trong ML-KEM
- Module-LWE: thay vì số thường, các phần tử là đa thức trong Z₃₃₂₉[X]/(X²⁵⁶+1), sắp xếp thành các ma trận k×k nhỏ (k = 2, 3, 4 cho ML-KEM-512, 768, 1024). Cấu trúc này làm khóa gọn và tính toán nhanh.
- Biến đổi lý thuyết số (NTT): một người họ hàng của FFT trên trường hữu hạn, nhân các đa thức đó rất nhanh. Đó là lý do ML-KEM thường nhanh hơn X25519 trong phần mềm.
- Phép biến đổi Fujisaki–Okamoto: lớp mã hóa bên trong chỉ an toàn trước kẻ tấn công thụ động. Phép biến đổi FO mã hóa lại trong lúc giải đóng gói và kiểm tra kết quả, nâng cấp lên mức IND-CCA2 trước kẻ tấn công chủ động. Khi không khớp, nó trả về một khóa giả ngẫu nhiên (từ chối ngầm) thay vì báo lỗi, nên kẻ tấn công không biết được gì.
- Lỗi giải mã: như bản đồ chơi ở trên, ML-KEM về nguyên tắc có thể thất bại, nhưng xác suất dưới 2⁻¹³⁸ với mọi bộ tham số — khó xảy ra hơn nhiều so với lỗi phần cứng.
Bên trong ML-DSA
- Fiat–Shamir với hủy bỏ: người ký cam kết một vectơ che ngẫu nhiên, suy ra thách thức từ giá trị băm của thông điệp, và tính phản hồi.
- Lấy mẫu loại bỏ: nếu phản hồi có thể làm lộ thông tin về khóa bí mật, người ký vứt bỏ nó và thử lại. Trung bình một chữ ký cần vài lần thử.
- Ký có rào chắn: FIPS 204 trộn tính ngẫu nhiên mới với một mầm tất định, bảo vệ trước cả RNG kém lẫn tấn công gây lỗi.
Chữ ký dựa trên hàm băm: không trạng thái và có trạng thái
SLH-DSA (không trạng thái) có thể ký mà không cần nhớ gì, đổi lại chữ ký lớn. LMS và XMSS (NIST SP 800-208) là có trạng thái: nhỏ và nhanh hơn, đã được chấp thuận cho ký firmware, nhưng mỗi khóa một lần chỉ được dùng một lần. Dùng lại trạng thái — sau khi khôi phục snapshot máy ảo hay chuyển đổi dự phòng HSM — có thể cho phép kẻ tấn công giả mạo chữ ký. Chúng hợp với máy chủ ký được kiểm soát chặt, không dùng chung chung.
Mức an toàn và kích thước
NIST xếp các bộ tham số PQC theo các hạng gắn với những mốc quen thuộc: hạng 1 khó phá ít nhất như AES-128, hạng 3 như AES-192, hạng 5 như AES-256.
| Bộ tham số | Hạng mục | Khóa công khai | Bản mã / chữ ký |
|---|---|---|---|
| ML-KEM-512 | 1 | 800 B | 768 B |
| ML-KEM-768 | 3 | 1,184 B | 1,088 B |
| ML-KEM-1024 | 5 | 1,568 B | 1,568 B |
| ML-DSA-44 | 2 | 1,312 B | 2,420 B |
| ML-DSA-65 | 3 | 1,952 B | 3,309 B |
| ML-DSA-87 | 5 | 2,592 B | 4,627 B |
| SLH-DSA-128s / 128f | 1 | 32 B | 7,856 / 17,088 B |
| SLH-DSA-256s | 5 | 64 B | 29,792 B |
| FN-DSA-512 (bản nháp) | 1 | 897 B | ≈ 666 B |
| Classic McEliece 348864 | 1 | 261,120 B | 96 B |
So sánh kích thước
Số byte truyền đi, thang log. Chuyển giữa trao đổi khóa và chữ ký.
Chữ ký hậu lượng tử
Chữ ký trả lời một câu hỏi khác với trao đổi khóa: ai đã tạo ra thông điệp này, và nó có bị sửa không? Chữ ký bảo vệ bản cập nhật phần mềm, chứng thư và tài liệu — nhưng không mã hóa nội dung, và không chứng minh nội dung là đúng.
| Thuật toán | Cơ sở | Điểm mạnh | Đánh đổi |
|---|---|---|---|
| ML-DSA | Lưới | Chữ ký đa dụng; ứng viên mặc định cho các triển khai mới | Khóa và chữ ký lớn hơn ECDSA; kiểm tra hỗ trợ của giao thức |
| SLH-DSA | Dựa trên hàm băm, không trạng thái | Một nền tảng toán học hoàn toàn khác với lưới — đa dạng hóa rủi ro | Chữ ký lớn; tốc độ ký thay đổi nhiều theo bộ tham số |
Dùng nhiều thuật toán tránh phụ thuộc vào một họ toán học, nhưng mỗi nhánh thêm cần cài đặt, kiểm thử, quản lý khóa và giám sát. Đừng thêm một cái "cho chắc".
Các họ khác
Classic McEliece (dựa trên mã) được nghiên cứu từ năm 1978 và có thiết kế thận trọng, nhưng khóa công khai lên tới hàng trăm KB — bất tiện cho các giao thức hạn chế băng thông. Đa biến và dựa trên isogeny cũng có các lược đồ được đề xuất; những ứng viên nổi bật như Rainbow và SIKE đã bị phá năm 2022. Bài học: nhãn "kháng lượng tử" không thay thế được nhiều năm phân tích mật mã công khai và chuẩn hóa.
Chữ ký hậu lượng tử đơn giản nhất
Chữ ký dùng một lần của Leslie Lamport năm 1979 là tổ tiên của SLH-DSA, LMS và XMSS. Nó chỉ cần một hàm băm — nên độ an toàn của nó sống sót qua máy tính lượng tử.
- Khóa riêng: 256 cặp giá trị ngẫu nhiên 32 byte — mỗi cặp cho một bit của bản tóm SHA-256.
- Khóa công khai: giá trị băm SHA-256 của cả 512 giá trị.
- Ký: băm thông điệp; với mỗi bit của bản tóm, tiết lộ giá trị thứ nhất của cặp nếu bit là 0, giá trị thứ hai nếu bit là 1.
- Kiểm chứng: băm từng giá trị được tiết lộ và kiểm tra nó khớp với nửa tương ứng của khóa công khai.
Chữ ký Lamport, chạy thật
SHA-256 thật và ngẫu nhiên thật. Mỗi ô là một bit của bản tóm: xanh lục nghĩa là bí mật thứ nhất được tiết lộ, tím là bí mật thứ hai. Sửa thông điệp nhận được để xem bit nào hết khớp.
Vì sao chỉ dùng một lần? Mỗi chữ ký lộ một nửa khóa riêng. Ký thông điệp thứ hai lộ thêm các nửa khác, và kẻ tấn công có thể trộn chúng để giả mạo. SPHINCS+/SLH-DSA xây một cây khổng lồ gồm các khóa dùng vài lần, để một khóa công khai ký được nhiều thông điệp mà không cần giữ trạng thái.
Bạn đang giải bài toán nào?
Chọn một tình huống để xem nên bắt đầu từ đâu.
Hiểu lầm thường gặp
| Hiểu lầm | Thực tế |
|---|---|
| PQC nghĩa là dùng máy tính lượng tử | PQC chạy trên máy tính thông thường; nó chỉ được thiết kế để chống tấn công lượng tử. |
| ML-KEM mã hóa toàn bộ dữ liệu của tôi | Nó chỉ tạo một bí mật chung; mã hóa đối xứng có xác thực mới bảo vệ dữ liệu. |
| Một thuật toán PQC làm cả hệ thống an toàn lượng tử | Giao thức, chữ ký, chứng thư, danh tính, điểm cuối, lưu trữ khóa và sao lưu đều tính. |
| Ta có thể đợi tới khi có máy tính lượng tử | Chuyển đổi mất nhiều năm, và dữ liệu bị thu hôm nay có thể bị giải mã sau này. |
| Thiết kế lai lúc nào cũng an toàn hơn | Chỉ khi cách kết hợp đã được chuẩn hóa và cài đặt đúng. Đừng tự chế bộ kết hợp. |
Chi phí kỹ thuật cần đo
- Độ trễ: đo toàn bộ quá trình bắt tay và độ trễ đuôi, không chỉ điểm chuẩn của một nguyên thủy.
- Băng thông: chứng thư, chữ ký, bản mã KEM, và trường hợp phân mảnh gói tin xấu nhất.
- Bộ nhớ và phần cứng: RAM đỉnh, kích thước mã, hỗ trợ HSM hoặc phần tử bảo mật, mức tiêu thụ điện.
- Khả năng tương tác: cả hai đầu, các thiết bị trung gian và hạ tầng chứng thư phải hỗ trợ cùng một giao thức chuẩn.
- Hành vi khi thất bại: chống hạ cấp, đầu vào sai định dạng, hết thời gian chờ, thử lại và dự phòng an toàn.
Nơi PQC đã chạy
| Hệ thống | Điều gì đã thay đổi |
|---|---|
| Web (TLS 1.3) | Chrome, Firefox, Edge và Cloudflare mặc định thương lượng phương án lai X25519MLKEM768; một phần lớn lưu lượng trình duyệt đã hậu lượng tử ở khâu trao đổi khóa. |
| OpenSSH | Trao đổi khóa hậu lượng tử lai là mặc định từ phiên bản 9.0 (2022); phiên bản 10.0 (2025) đặt mlkem768x25519-sha256 làm mặc định. |
| OpenSSL | Phiên bản 3.5 (2025) đã thêm ML-KEM, ML-DSA và SLH-DSA. |
| Nhắn tin | Signal thêm giao thức bắt tay PQXDH (2023); iMessage của Apple chuyển sang giao thức PQ3 (2024). |
| Chứng thư | Phần lớn vẫn là cổ điển. Chứng thư hậu lượng tử và chứng thư phức hợp (cổ điển + PQC) đang được IETF chuẩn hóa; kích thước chữ ký là trở ngại chính. |
Hãy để ý quy luật: trao đổi khóa chuyển đổi trước, vì "thu thập bây giờ, giải mã sau" chỉ đe dọa tính bí mật. Chữ ký có thể thay sau, miễn là trước khi máy tính lượng tử ra đời — không thể giả mạo hồi tố một chữ ký cho một phiên đã qua.
Các cạm bẫy cài đặt đã từng gặp
- Rò rỉ thời gian: "KyberSlash" (2023–24) cho thấy một lệnh chia trong nhiều bản cài đặt Kyber làm lộ thời gian phụ thuộc bí mật. Mã chạy thời gian hằng quan trọng không kém so với RSA và ECC.
- Kênh kề và gây lỗi: phân tích công suất và bơm lỗi trên thẻ thông minh và vi điều khiển là các hướng nghiên cứu sôi động với lược đồ lưới.
- Tính ngẫu nhiên: Sinh khóa và đóng gói của ML-KEM vẫn cần RNG tốt.
Hạn chót
| Ai | Lập kế hoạch |
|---|---|
| NIST IR 8547 (Mỹ, bản nháp) | RSA, ECDSA, ECDH và DH trường hữu hạn ở mức an toàn 112 bit bị phản đối sau 2030, bị cấm sau 2035. Chế độ lai với một thuật toán PQC được chấp thuận vẫn được phép. |
| NSA CNSA 2.0 (các hệ thống an ninh quốc gia Mỹ) | Mua sắm mới phải kháng lượng tử từ 2027; mọi hệ thống an ninh quốc gia trước 2035. |
| Lộ trình phối hợp của EU (6/2025) | Lộ trình PQC quốc gia và các bước đầu tiên trước cuối 2026; các trường hợp rủi ro cao chuyển đổi trước cuối 2030; toàn bộ trước cuối 2035. |
| NCSC Anh | Khám phá và lập kế hoạch trước 2028; di chuyển ưu tiên cao trước 2031; hoàn tất trước 2035. |
Tôi đã muộn chưa? Bất đẳng thức Mosca
Quy tắc kinh nghiệm của Michele Mosca: nếu thời gian dữ liệu phải giữ bí mật (x) cộng thời gian cần để chuyển đổi (y) dài hơn thời gian tới khi có máy tính lượng tử đủ sức phá mã (z), bạn đã bị phơi nhiễm.
Không ai biết z. Khảo sát chuyên gia trải từ dưới một thập kỷ tới không bao giờ — vì thế người lập kế hoạch chọn giá trị thận trọng.
Kế hoạch chuyển đổi
Quá trình chuyển đổi dùng lai chế độ: ghép một thuật toán cổ điển với một thuật toán PQC, như X25519MLKEM768 trong TLS 1.3 — đã bật mặc định trong các trình duyệt lớn và tại Cloudflare. Kẻ tấn công sẽ phải phá cả hai. Chuyển đổi là một chương trình kiểm kê và kỹ thuật, không phải đổi tên.
- Khám phá: tìm mọi nơi dùng mật mã — chứng thư, TLS, VPN, ký mã, cập nhật phần mềm, danh tính thiết bị, dữ liệu lưu trữ, HSM, thư viện của nhà cung cấp.
- Ưu tiên: bí mật dài hạn, hệ thống dễ bị chặn thu, thiết bị khó cập nhật, gốc tin cậy và chuỗi cung ứng phần mềm.
- Thử nghiệm: dùng thư viện chuẩn được duy trì, thử KEM lai ở nơi giao thức hỗ trợ, đo kích thước, độ trễ, CPU và bộ nhớ.
- Triển khai và giám sát: giao người chịu trách nhiệm, theo dõi lộ trình nhà cung cấp, ghi lại ngoại lệ và hạn chót, kiểm thử lại sau mỗi lần nâng cấp.
Ví dụ về sắp xếp ưu tiên
| Tài sản | Thời gian cần giữ bí mật | Độ khó chuyển đổi | Hành động |
|---|---|---|---|
| Kho lưu trữ nhạy cảm | Dài | Trung bình | Đánh giá rủi ro "thu thập bây giờ, giải mã sau"; lập kế hoạch mã hóa lại |
| Dịch vụ TLS công cộng | Tùy trường hợp | Trung bình | Kiểm kê thư viện và chứng thư; thử các KEM lai được hỗ trợ |
| Hạ tầng ký mã | Niềm tin dài hạn | Cao | Lập kế hoạch chữ ký PQC, thay đổi điểm neo tin cậy, giới hạn firmware |
| Thiết bị nhúng hiếm khi được cập nhật | Tùy trường hợp | Cao | Bắt đầu sớm; thử bộ nhớ, băng thông, kích thước bản cập nhật |
Danh sách kiểm tra triển khai
Đánh dấu những việc đã xong.
Mật mã khóa lượng tử
Kẻ nghe lén không thể nhìn mà không chạm vào.
Mật mã khóa lượng tử (QKC) — thường gọi tắt là mật mã lượng tử — là họ công cụ mật mã có độ an toàn đến, toàn bộ hoặc một phần, từ cơ học lượng tử thay vì từ các bài toán toán học khó. Nó dựa trên một vài sự thật vật lý:
| Hiệu ứng lượng tử | Nó mang lại gì cho mật mã |
|---|---|
| Nhiễu loạn do phép đo | Đọc một trạng thái chưa biết làm thay đổi nó, nên do thám luôn để lại dấu vết |
| Không sao chép | Không thể sao chép trạng thái lượng tử chưa biết — không có "ghi bây giờ, đọc sau" trên kênh lượng tử |
| Tính ngẫu nhiên nội tại | Kết quả đo thực sự không thể đoán trước, không chỉ là khó đoán |
| Vướng víu và tính phi định xứ Bell | Các tương quan có thể chứng nhận bảo mật ngay cả khi không tin thiết bị |
Thành viên đầu tiên và trưởng thành nhất là phân phối khóa lượng tử (QKD), nên phần lớn chương này nói về QKD. Phần các phần sau bao quát phần còn lại của bộ công cụ: ngẫu nhiên lượng tử, chữ ký, chia sẻ bí mật, truyền thông trực tiếp, tính toán ủy thác — và những nhiệm vụ mà vật lý lượng tử đã được chứng minh là không thể bảo mật được.
QKD, cốt lõi của QKC
Phân phối khóa lượng tử (QKD) dùng photon đơn để hai bên tạo ra một khóa bí mật chung. Độ an toàn của nó đến từ các định luật vật lý, không phải độ khó tính toán — nên không máy tính lượng tử nào, dù mạnh đến đâu, giúp được kẻ tấn công.
Phép đo gây nhiễu loạn
Đo một photon sai cơ sở làm thay đổi trạng thái của nó. Lấy thông tin luôn để lại dấu vết.Không sao chép
Định lý không sao chép: không ai có thể sao chép hoàn hảo một trạng thái lượng tử chưa biết, nên Eve không thể "chụp ảnh" một photon rồi đo sau.Chỉ QKD tạo khóa. Dữ liệu vẫn được mã hóa bằng AES, hoặc bằng sổ dùng một lần nếu tốc độ khóa đủ cao. Phân tích bảo mật của QKD dựa trên cơ học lượng tử cùng với các giả định tường minh về thiết bị, cài đặt và một kênh cổ điển đã xác thực.
QKD có thể
- Cấp cho hai đầu mút cùng một vật liệu khóa ngẫu nhiên.
- Phát hiện một số kiểu nghe lén thông qua tỉ lệ lỗi tăng lên.
- Mang lại một nền tảng an toàn hoàn toàn khác với độ khó tính toán.
QKD không thể
- Tự mình mã hóa dữ liệu ứng dụng.
- Bỏ qua xác thực kênh cổ điển.
- Bảo vệ các điểm cuối bị xâm phạm hoặc phần cứng lỗi.
- Thay thế toàn bộ mật mã khóa công khai.
Giao thức BB84
Do Bennett và Brassard đề xuất năm 1984. Mỗi bit được mã hóa vào phân cực của một photon, theo một trong hai cơ sở:
| Cơ sở | Bit 0 | Bit 1 |
|---|---|---|
| Thẳng ( + ) | ↕ | ↔ |
| Chéo ( × ) | ⤢ | ⤡ |
- Alice chọn một bit và một cơ sở ngẫu nhiên cho mỗi photon rồi gửi đi.
- Bob đo mỗi photon trong một cơ sở ngẫu nhiên. Cùng cơ sở nghĩa là anh đọc đúng bit; khác cơ sở cho kết quả 50/50.
- Qua một được xác thực kênh cổ điển, họ công bố cơ sở (không công bố bit) và chỉ giữ các vị trí trùng khớp — khoảng một nửa.
- Họ so sánh công khai một mẫu để tính tỉ lệ lỗi QBER. Nếu Eve chặn và gửi lại mọi photon, QBER tăng lên khoảng 25%.
- Nếu QBER dưới ngưỡng (khoảng 11% với BB84), họ sửa lỗi và khuếch đại bảo mật để xóa mọi thứ Eve có thể biết. Trên ngưỡng, họ hủy.
Mô phỏng BB84
Kéo thanh trượt Eve lên và xem tỉ lệ lỗi tăng. Với nhiều photon, QBER ≈ 25% × tỉ lệ photon bị chặn.
Còn lại bao nhiêu khóa?
Không phải bit đã sàng lọc nào cũng thành khóa. Hai khoản chi phí được trừ từ đó:
- Sửa lỗi (ví dụ mã Cascade hoặc LDPC) làm lộ khoảng f · h(Q) bit cho mỗi bit qua kênh công khai, trong đó h là entropy nhị phân và f ≥ 1 là hệ số kém hiệu quả của mã.
- Khuếch đại bảo mật băm rút gọn kết quả khoảng h(Q) nữa, loại bỏ mọi thứ Eve có thể biết.
Với sửa lỗi hoàn hảo (f = 1) đây là kết quả Shor–Preskill (2000), r = 1 − 2h(Q), bằng 0 tại Q ≈ 11% — ngưỡng hủy đã dùng ở trên.
Tỉ lệ khóa bí mật
Tỉ lệ các bit đã sàng lọc trở thành khóa bí mật, cho một đường truyền BB84 photon đơn lý tưởng (giới hạn tiệm cận).
Phần cứng
| Phần | Lựa chọn phổ biến | Ghi chú |
|---|---|---|
| Nguồn | Xung laser suy giảm với trạng thái mồi; cặp photon vướng víu từ tinh thể phi tuyến (SPDC) | Nguồn photon đơn thực sự có trong phòng thí nghiệm nhưng chưa thực dụng. Laser đôi khi phát 2 photon trở lên — vì thế cần trạng thái mồi. |
| Mã hóa | Phân cực, pha, time-bin; biên độ và cầu phương cho CV-QKD | Pha và time-bin bền vững trong cáp quang, nơi phân cực bị trôi; phân cực hợp với không gian tự do và vệ tinh. |
| Kênh | Cáp quang viễn thông ở 1550 nm; quang học không gian tự do | Có thể dùng chung cáp quang với dữ liệu cổ điển nhờ ghép kênh bước sóng, nhưng tán xạ Raman từ ánh sáng cổ điển mạnh gây thêm nhiễu. |
| Máy dò | Điốt quang thác InGaAs; máy dò dây nano siêu dẫn (SNSPD) | SNSPD đạt hiệu suất rất cao và nhiễu thấp nhưng cần làm lạnh cryo; chúng cho phép đường truyền dài nhất và tốc độ cao nhất. |
| Phía cổ điển | Hậu xử lý bằng FPGA, kênh xác thực, hệ thống quản lý khóa | Thường là nút cổ chai của tốc độ khóa, và là nơi tập trung phần lớn bề mặt tấn công phần mềm. |
Các hệ thống thực địa điển hình cho tốc độ khóa từ vài kilobit tới vài megabit mỗi giây ở khoảng cách đô thị (hàng chục km); kỷ lục phòng thí nghiệm đạt hàng chục megabit mỗi giây qua khoảng 10 km.
Tấn công thiết bị lượng tử
Các chứng minh QKD giả định thiết bị hoạt động đúng như mô hình. Các tấn công nhắm vào khoảng cách giữa mô hình và phần cứng:
| Tấn công | Cách hoạt động | Biện pháp đối phó |
|---|---|---|
| Tách số photon | Eve giữ một photon từ các xung nhiều photon và cho phần còn lại đi qua | Trạng thái mồi |
| Làm mù máy dò | Ánh sáng mạnh ép máy dò vào chế độ cổ điển mà Eve điều khiển được; đã được trình diễn với các hệ thống thương mại năm 2010 | Giám sát máy dò; MDI-QKD đưa máy dò ra khỏi ranh giới tin cậy |
| Dịch thời gian | Khai thác sự chênh lệch hiệu suất giữa các máy dò ở các thời điểm tới khác nhau | Ngẫu nhiên hóa thời gian, hiệu chuẩn, MDI-QKD |
| Ngựa thành Troy | Eve chiếu ánh sáng vào thiết bị của Alice và đọc thiết lập bộ điều biến từ ánh sáng phản xạ | Bộ cách ly quang, bộ lọc, bộ giám sát công suất |
| Gieo laser, ánh xạ lại pha | Thao túng nguồn hoặc bộ điều biến từ bên ngoài | Cách ly, giám sát nguồn, chứng nhận bảo mật (ISO/IEC 23837) |
Mỗi tấn công được phát hiện đều đã được vá, và các biến thể giao thức ở phần tiếp theo nhằm loại bỏ cả một lớp tấn công. Bài học giống mật mã cổ điển: chứng minh bảo vệ mô hình, kỹ thuật bảo vệ thiết bị.
Các giao thức sau BB84
| Giao thức | Ý tưởng | Nó giải quyết gì |
|---|---|---|
| Trạng thái mồi | Trộn ngẫu nhiên các xung "mồi" có cường độ khác nhau | Chặn tấn công tách số photon khi laser thỉnh thoảng phát nhiều photon. Là tiêu chuẩn trong các hệ thống thương mại. |
| Sáu trạng thái (1998) | Thêm cơ sở thứ ba vào BB84 | Thống kê lỗi đối xứng hơn; chịu được QBER tới khoảng 12,6%, đổi lại tỉ lệ sàng lọc thấp hơn. |
| BBM92 (1992) | Phiên bản BB84 dựa trên vướng víu; nguồn có thể đặt ở giữa | Không cần tin nguồn; được dùng trong thí nghiệm vệ tinh. |
| COW, DPS | Mã hóa vào thời điểm xung hoặc hiệu pha giữa các xung kề nhau | Phần cứng đơn giản, bền bỉ cho cáp quang; dùng trong sản phẩm thương mại. |
| E91 (Ekert, 1991) | Dùng các cặp photon vướng víu; kiểm tra bất đẳng thức Bell | Phát hiện nghe lén qua mức độ vi phạm Bell — nền tảng cho QKD độc lập thiết bị. |
| MDI-QKD | Alice và Bob cùng gửi photon tới một trạm trung gian không tin cậy, nơi đo | Loại bỏ mọi tấn công vào máy dò — điểm yếu lớn nhất trên thực tế. |
| Trường đôi (TF-QKD) | Giao thoa trường quang của hai bên tại một trạm trung gian | Tốc độ khóa giảm theo √η thay vì η, vượt giới hạn PLOB; thí nghiệm đã đạt khoảng 1.000 km cáp quang. |
| CV-QKD | Mã hóa vào biên độ và pha của ánh sáng, đo bằng phát hiện kết hợp | Dùng linh kiện viễn thông tiêu chuẩn, rẻ hơn, nhưng tầm ngắn hơn. |
| DI-QKD | Chứng minh an toàn chỉ từ thống kê Bell, không cần tin thiết bị | Mức bảo đảm cao nhất; vẫn chỉ trong phòng thí nghiệm với tốc độ rất thấp. |
Khoảng cách là kẻ thù
Cáp quang suy hao khoảng 0,2 dB mỗi km — mất một nửa số photon sau mỗi 15 km. Tín hiệu lượng tử không thể khuếch đại như tín hiệu thường, vì khuếch đại nghĩa là sao chép. Do đó tốc độ khóa giảm theo hàm mũ với khoảng cách.
Tốc độ khóa theo khoảng cách
Mô hình lý tưởng hóa, suy hao 0,2 dB/km, tốc độ tương đối mỗi xung (thang log). Kéo để đọc giá trị ở từng khoảng cách.
PLOB (Pirandola và cộng sự, 2017) là mức tối đa mà mọi giao thức điểm-điểm không có bộ lặp đạt được. TF-QKD vượt nó nhờ trạm trung gian, nhưng khoảng cách thực sự dài vẫn cần bộ lặp lượng tử — một công nghệ vẫn đang trong nghiên cứu.
Mạng QKD ngày nay
- Mạng trục Bắc Kinh–Thượng Hải (Trung Quốc, 2017): hơn 2.000 km cáp quang, nối bằng một chuỗi nút tin cậy.
- Vệ tinh Micius (2016): phân phối khóa từ quỹ đạo xuống mặt đất, và năm 2017 cho phép một cuộc gọi video mã hóa bằng khóa lượng tử giữa Bắc Kinh và Vienna.
- EuroQCI: sáng kiến của Liên minh châu Âu xây dựng hạ tầng truyền thông lượng tử trên mặt đất và trong không gian.
- Các chuẩn: ETSI (nhóm GS QKD), loạt ITU-T Y.3800, ISO/IEC 23837 về đánh giá bảo mật thiết bị QKD.
QRNG — người anh em dễ hơn
Bộ sinh số ngẫu nhiên lượng tử (QRNG) dùng hiệu ứng lượng tử để tạo số ngẫu nhiên thực sự. Nó không thay thế QKD hay PQC, nhưng có thể cấp entropy cho việc sinh khóa và đã có trong một số chip và điện thoại.
Ngoài phân phối khóa
QKD chỉ trả lời câu hỏi "hai bên lấy khóa chung bằng cách nào?". Mật mã lượng tử có đề xuất cho nhiều nhiệm vụ khác, với mức trưởng thành rất khác nhau:
| Nguyên thủy | Nó làm gì | Mức trưởng thành |
|---|---|---|
| QKD | Hai bên cùng tạo ra một khóa bí mật chung | Thương mại |
| QRNG | Số ngẫu nhiên từ phép đo lượng tử | Thương mại |
| Ngẫu nhiên được chứng nhận | Một máy tính lượng tử từ xa chứng minh đầu ra của nó là ngẫu nhiên mới | Trình diễn đầu tiên 2025 |
| Chữ ký số lượng tử | Chữ ký có tính không thể giả mạo dựa trên vật lý | Trình diễn trong phòng thí nghiệm |
| Chia sẻ bí mật lượng tử | Chia một bí mật để chỉ khi đủ số bên cùng góp lại mới khôi phục được | Trình diễn trong phòng thí nghiệm |
| Truyền thông trực tiếp an toàn lượng tử | Gửi chính thông điệp qua kênh lượng tử, không qua bước tạo khóa | Trình diễn trong phòng thí nghiệm |
| Điện toán lượng tử mù | Chạy một phép tính trên máy tính lượng tử của người khác mà không tiết lộ nó | Trình diễn trong phòng thí nghiệm |
| Tiền lượng tử | Tiền giấy không thể làm giả vì không thể sao chép trạng thái | Lý thuyết |
Bộ sinh số ngẫu nhiên lượng tử
QRNG đo một quá trình lượng tử — một photon tại bộ tách chùm, nhiễu chân không, thời điểm photon tới — và biến kết quả thành các bit ngẫu nhiên. Đây là thành phần QKC được triển khai rộng nhất: đã có chip nhỏ, và một số điện thoại (ví dụ dòng Galaxy Quantum của Samsung tại Hàn Quốc) có tích hợp. Nó không thay thế QKD hay PQC, nhưng có thể cấp entropy tốt cho cả hai.
Chữ ký số lượng tử
Do Gottesman và Chuang đề xuất năm 2001. Người ký phân phát các "khóa công khai" lượng tử; vì chúng không thể sao chép, người nhận có thể kiểm tra chữ ký và chuyển tiếp mà không giả mạo được. Các lược đồ hiện tại chỉ ký thông điệp ngắn với tốc độ thấp, và khóa chỉ dùng một lần — nên hiện nay chữ ký PQC (ML-DSA, SLH-DSA) là lựa chọn thực tế.
Chia sẻ bí mật lượng tử
Được Hillery, Bužek và Berthiaume giới thiệu năm 1999 dùng trạng thái vướng víu: một người chia bí mật cho nhiều bên sao cho không nhóm nào dưới ngưỡng biết được gì, và người gian lận bị phát hiện.
Truyền thông trực tiếp an toàn lượng tử
QSDC, được đề xuất từ 2002, gửi thông điệp trực tiếp qua kênh lượng tử và kiểm tra nghe lén trước khi bất kỳ thông tin nào bị lộ. Nó bỏ qua bước "tạo khóa rồi mã hóa", nhưng cần bộ nhớ lượng tử hoặc kiểm tra cẩn thận từng khối và vẫn còn ở mức thực nghiệm.
Điện toán lượng tử mù và kiểm chứng được
Broadbent, Fitzsimons và Kashefi (2009) chứng minh rằng một máy khách có thể chuẩn bị các trạng thái lượng tử đơn giản có thể chạy tính toán trên máy chủ lượng tử từ xa mà vẫn giấu được đầu vào, thuật toán và đầu ra — phiên bản lượng tử của tính toán trên dữ liệu mã hóa.
Tiền lượng tử
Ý tưởng của Stephen Wiesner từ khoảng năm 1970 (công bố 1983): tiền giấy mang photon ở các cơ sở bí mật, không sao chép được nhờ định lý không sao chép. Nó chưa bao giờ thực dụng — trạng thái lượng tử phân rã nhanh — nhưng "mã hóa liên hợp" đằng sau nó đã trực tiếp truyền cảm hứng cho BB84.
Khám phá bộ công cụ QKC
Chọn một nguyên thủy để xem nền tảng an toàn của nó, nó cần gì, và hôm nay nên dùng gì thay thế.
Những gì vật lý lượng tử không thể bảo mật
Mật mã lượng tử không phải phép màu. Một số nhiệm vụ đã được chứng minh là không thể bảo mật vô điều kiện, ngay cả với trạng thái lượng tử:
| Nhiệm vụ | Kết quả |
|---|---|
| Cam kết bit | Được Mayers và Lo cùng Chau (1997) chứng minh là bất khả một cách vô điều kiện. Chỉ khả thi với giả định bổ sung như bộ nhớ lượng tử hạn chế hoặc có nhiễu. |
| Truyền không để lộ, tính toán hai bên an toàn | Cũng bất khả một cách vô điều kiện; các mô hình bộ nhớ giới hạn hoặc có nhiễu tương tự cứu được chúng. |
| Mật mã dựa trên vị trí | Chứng minh vị trí của bạn chỉ bằng tín hiệu lượng tử nói chung là bất khả (Buhrman và cộng sự, 2011) nếu kẻ tấn công có thể chia sẻ đủ vướng víu. |
| Xác thực từ con số không | Mọi giao thức QKC đều cần một kênh đã xác thực hoặc bí mật chung ban đầu. Vật lý lượng tử không thể tạo niềm tin từ con số không. |
QKC trong một hệ thống thật
Một đường truyền mật mã lượng tử đã triển khai có nhiều lớp, và chỉ lớp dưới cùng là lượng tử:
- Lớp lượng tử: nguồn photon, cáp quang hoặc đường truyền không gian tự do, máy dò photon đơn; chạy BB84, trạng thái mồi hoặc CV-QKD.
- Hậu xử lý: sàng lọc, ước lượng lỗi, sửa lỗi, khuếch đại bảo mật — qua một kênh cổ điển đã xác thực.
- Quản lý khóa: lưu khóa và giao cho ứng dụng; ETSI GS QKD 014 định nghĩa giao diện chuẩn để cấp khóa.
- Ứng dụng: VPN hoặc bộ mã hóa đường truyền dùng khóa với AES, thường trộn với một khóa PQC (lai) để đường truyền vẫn an toàn nếu một trong hai thất bại.
Chip, vệ tinh và di động
Phần cứng QKC thời đầu chiếm cả tủ rack và cần cáp quang ổn định từ đầu đến cuối. Nghiên cứu đang thu nhỏ nó:
- Chip quang tử: bộ phát và bộ thu trên chip silicon hoặc indium phosphide, nhắm tới sản xuất hàng loạt và giá thấp hơn. Các nhà nghiên cứu Đại học Bristol, hợp tác với Nokia, đã trình diễn một giao thức trên chip được thiết kế để chịu được đường truyền nhiễu, mở hướng cho dùng cầm tay và không dây.
- Không gian tự do và vệ tinh: Micius chứng minh được đường truyền mặt đất–quỹ đạo; nhiều cơ quan vũ trụ và EU (EuroQCI) đang lên kế hoạch vệ tinh QKD để nối những khoảng cách cáp quang không vươn tới.
- Thiết bị cầm tay tầm ngắn: các nguyên mẫu cho phép một thiết bị cỡ điện thoại trao đổi khóa bằng quang học với một thiết bị đầu cuối, ví dụ ở máy ATM.
Dù vậy, QKC trên điện thoại thường ngày vẫn là mục tiêu nghiên cứu. Với thiết bị đại trà, PQC mới là thứ thực sự được triển khai.
Giới hạn của QKC
| Giới hạn | Vì sao điều này quan trọng |
|---|---|
| Vẫn cần xác thực | Kênh cổ điển phải được xác thực, nếu không sẽ gục trước tấn công kẻ đứng giữa. Điều đó cần một khóa chia sẻ trước hoặc chữ ký số — thường là PQC. |
| Tầm xa và nút tin cậy | Mỗi chặng cáp quang thường vài trăm km; xa hơn thì phải tin các nút trung gian hoặc dùng vệ tinh. |
| Phần cứng chuyên dụng | Cần nguồn photon, máy dò photon đơn, thường cả cáp quang riêng. Nó không chạy qua Internet hay bộ định tuyến thông thường. |
| Lý thuyết và cài đặt | Thiết bị thật đã bị tấn công: làm mù máy dò, khai thác thời gian, bơm ánh sáng ngược. |
| Từ chối dịch vụ | Chỉ cần làm nhiễu đường truyền là QBER tăng và phiên bị hủy. |
Vì những lý do này, các cơ quan an ninh như NSA (Mỹ), NCSC (Anh) và ANSSI (Pháp) khuyến nghị ưu tiên PQC cho phần lớn hệ thống, chỉ coi QKD và các công cụ QKC khác là phần bổ sung cho các đường truyền chuyên biệt.
Giao thức
Nguyên thủy là những viên gạch. Giao thức là tòa nhà — và phần lớn các vụ phá thật xảy ra ở đây.
PKI và chứng thư
Khóa công khai chỉ hữu ích nếu bạn biết nó là của ai. Hạ tầng khóa công khai trả lời điều đó bằng chứng thư đã ký.
- CA gốc: một chứng thư tự ký đi kèm trình duyệt và hệ điều hành (kho tin cậy). Được giữ ngoại tuyến.
- CA trung gian: do CA gốc ký; cấp chứng thư hằng ngày.
- Chứng thư lá (X.509): gắn một tên miền với một khóa công khai, có thời hạn hiệu lực, được ký bởi CA trung gian.
- Kiểm tra hợp lệ: máy khách kiểm tra từng chữ ký lên theo chuỗi, tên máy chủ, ngày tháng và trạng thái thu hồi.
- Minh bạch chứng thư (Certificate Transparency): mọi chứng thư được tin cậy công khai đều được ghi vào nhật ký công khai chỉ-ghi-thêm, nên chứng thư cấp sai có thể bị phát hiện.
- Thu hồi: CRL và OCSP tồn tại nhưng hoạt động kém; ngành đang chuyển sang chứng thư ngắn hạn (CA/Browser Forum đã biểu quyết rút thời hạn tối đa xuống 47 ngày vào năm 2029).
- ACME / Let's Encrypt: việc cấp phát tự động đã khiến HTTPS gần như phổ cập.
- Tác động của PQC: một chuỗi mang nhiều chữ ký và khóa công khai, nên kích thước ML-DSA bị nhân lên. Vì thế chứng thư chuyển đổi sau trao đổi khóa.
Bắt tay TLS 1.3
Một vòng truyền trước khi dữ liệu mã hóa bắt đầu chảy (RFC 8446):
- ClientHello: các bộ mã được hỗ trợ, một giá trị ngẫu nhiên, và một phần khóa — ngày nay thường là phương án lai X25519MLKEM768.
- ServerHello: bộ mã đã chọn và phần khóa của máy chủ. Hai bên giờ tính được bí mật chung; mọi thứ sau đó đều được mã hóa.
- EncryptedExtensions, Certificate: chuỗi chứng thư của máy chủ.
- CertificateVerify: một chữ ký trên toàn bộ bản ghi bắt tay bằng khóa riêng của chứng thư — đây là thứ ngăn kẻ đứng giữa.
- Hoàn tất (cả hai phía): MAC trên bản ghi trao đổi, xác nhận không ai can thiệp vào quá trình thương lượng.
- Dữ liệu ứng dụng: được bảo vệ bằng AES-GCM hoặc ChaCha20-Poly1305 dưới các khóa suy ra bằng HKDF.
TLS 1.3 đã loại bỏ việc chuyển khóa bằng RSA, chế độ CBC, RC4, SHA-1 và Diffie–Hellman tĩnh, nên mọi kết nối đều có bí mật chuyển tiếp: đánh cắp khóa dài hạn của máy chủ về sau không giải mã được các phiên đã qua. Tùy chọn nối lại 0-RTT tiết kiệm một vòng truyền nhưng có thể bị phát lại, nên chỉ được mang các yêu cầu lũy đẳng.
Nhắn tin an toàn
- Giao thức Signal: X3DH (nay là PQXDH) để bắt đầu phiên với một liên hệ đang ngoại tuyến, rồi Double Ratchet: một khóa mới cho mỗi thông điệp, mang lại bí mật chuyển tiếp và bảo mật sau xâm phạm (cuộc trò chuyện tự lành sau khi lộ khóa). Được Signal, WhatsApp và các ứng dụng khác sử dụng.
- MLS (Messaging Layer Security, RFC 9420): một chuẩn IETF cho mã hóa đầu cuối hiệu quả trong nhóm các cuộc trò chuyện nhóm bằng một cây khóa.
- Mã hóa đầu cuối và mã hóa đường truyền: TLS bảo vệ đường truyền tới máy chủ; mã hóa đầu cuối ngăn chính máy chủ đọc được tin nhắn.
- Siêu dữ liệu — ai nói với ai, khi nào — khó giấu hơn nhiều so với nội dung.
SSH, VPN và các kênh an toàn khác
| Giao thức | Mật mã học |
|---|---|
| SSH | Diffie–Hellman (nay mặc định lai ML-KEM trong OpenSSH), khóa máy chủ được tin ở lần dùng đầu, khóa người dùng Ed25519 |
| WireGuard | Khung giao thức Noise: Curve25519, ChaCha20-Poly1305, BLAKE2s; mã nguồn rất nhỏ; khóa chia sẻ trước tùy chọn thêm một lớp hậu lượng tử |
| IPsec / IKEv2 | Bộ thuật toán cấu hình được; RFC 9370 thêm các trao đổi khóa bổ sung cho IKE hậu lượng tử lai |
| DNSSEC | Ký các bản ghi DNS (RSA, ECDSA, Ed25519) để câu trả lời không thể bị giả mạo; không mã hóa |
| DNS qua HTTPS / TLS | Mã hóa truy vấn DNS tới máy phân giải |
| Wi-Fi WPA3 | Trao đổi khóa xác thực bằng mật khẩu SAE (Dragonfly), chống tấn công từ điển ngoại tuyến |
Mật khẩu, MFA và passkey
- Mật khẩu là bí mật chung mà người dùng dùng lại và trang lừa đảo đánh cắp. Chỉ lưu chúng bằng Argon2id hoặc tương tự.
- Mã dùng một lần: TOTP (RFC 6238) là HMAC trên thời gian hiện tại; còn hơn không, nhưng có thể bị lừa đảo.
- Passkeys (FIDO2 / WebAuthn): thiết bị tạo một cặp khóa cho mỗi trang web, giữ khóa riêng trong phần cứng an toàn, và ký một thách thức. Chữ ký gắn với tên miền của trang, nên trang lừa đảo trông giống hệt cũng không nhận được gì dùng được.
- PAKEs như OPAQUE cho phép máy chủ kiểm chứng mật khẩu mà không bao giờ thấy nó.
Ứng dụng xác thực tạo mã như thế nào
TOTP (RFC 6238): HMAC của một bí mật chung và bước thời gian 30 giây hiện tại, cắt còn 6 chữ số. Điện thoại của bạn và máy chủ tính độc lập. Bản trình diễn này dùng HMAC-SHA256, được RFC cho phép; đa số ứng dụng dùng SHA-1.
Quản lý khóa
"Mật mã học biến một bài toán bảo mật thành một bài toán quản lý khóa." Phần lớn thất bại vận hành xảy ra ở đây.
- Tạo khóa bằng CSPRNG bên trong phần cứng được bảo vệ khi có thể.
- Lưu trữ chúng trong HSM, KMS đám mây, TPM hoặc vùng bảo mật của điện thoại, để không thể sao chép ra ngoài.
- Dùng mã hóa phong bì: khóa dữ liệu mã hóa dữ liệu; một khóa chủ trong KMS mã hóa các khóa dữ liệu.
- Xoay vòng theo lịch và sau mọi nghi ngờ bị xâm phạm.
- Thu hồi và hủy khóa cũ, và lưu nhật ký kiểm toán cho mọi lần sử dụng.
Các chuẩn: NIST SP 800-57 (quản lý khóa), FIPS 140-3 (thẩm định mô-đun mật mã).
Dữ liệu lưu trữ
- Mã hóa toàn bộ đĩa (BitLocker, FileVault, LUKS) dùng AES-XTS với khóa được bảo vệ bởi TPM hoặc cụm mật khẩu. Nó bảo vệ thiết bị bị mất, không bảo vệ thiết bị đang chạy.
- Mã hóa cơ sở dữ liệu và cấp trường bảo vệ các cột cụ thể; mã thông báo hóa thay số thẻ bằng token vô nghĩa.
- Bản sao lưu phải được mã hóa bằng khóa lưu riêng — nếu không chúng là mục tiêu dễ nhất.
- Ghi chú lượng tử: dữ liệu lưu dưới AES-256 là an toàn; hãy kiểm tra khóa của nó có được bọc bằng RSA hay ECC không.
Mật mã nâng cao
Tính toán trên bí mật, chứng minh mà không tiết lộ, và không tin vào một bên duy nhất.
Chia sẻ bí mật
Lược đồ năm 1979 của Adi Shamir chia một bí mật thành n phần chia sao cho bất kỳ k trong số đó khôi phục được nó và k−1 tiết lộ không gì cả. Bí mật là số hạng tự do của một đa thức ngẫu nhiên bậc k−1; mỗi phần chia là một điểm trên nó. Hai điểm xác định một đường thẳng, ba điểm một parabol, và cứ thế — dựng lại đa thức bằng nội suy Lagrange và đọc ra bí mật.
Dùng để sao lưu khóa gốc, nghi thức khóa gốc của DNSSEC, ví tiền mã hóa, và làm khối xây dựng cho chữ ký ngưỡng và MPC.
Chia và khôi phục một bí mật
Số học modulo số nguyên tố 7919. Đánh dấu các phần chia muốn dùng, rồi xem chúng có dựng lại được bí mật không.
Bằng chứng không tiết lộ
Bằng chứng không tiết lộ thuyết phục người kiểm chứng rằng một mệnh đề là đúng mà không tiết lộ vì sao. Câu chuyện kinh điển là hang động với cánh cửa thần: Peggy chứng minh mình biết mật khẩu bằng cách đi ra từ đúng phía Victor gọi, lặp đi lặp lại. Người không biết mật khẩu chỉ qua được mỗi vòng với xác suất ½.
Hang động với cánh cửa thần
Chạy các vòng với người chứng minh trung thực (biết mật khẩu) hoặc kẻ gian (đoán phía nào để vào).
- Định danh Schnorr chứng minh hiểu biết về một logarit rời rạc; với phép biến đổi Fiat–Shamir nó trở thành chữ ký Schnorr (và EdDSA).
- zk-SNARKs (Groth16, PLONK) cho các bằng chứng rất nhỏ về những phép tính tùy ý; nhiều lược đồ dựa vào pairing và không hậu lượng tử.
- zk-STARKs chỉ dùng hàm băm — bằng chứng lớn hơn, nhưng thiết lập minh bạch và có lẽ hậu lượng tử.
- Ứng dụng: thanh toán riêng tư (Zcash), rollup trên chuỗi khối, thông tin xác thực ẩn danh và kiểm tra tuổi mà không lộ ngày sinh.
Mã hóa đồng cấu
Mã hóa đồng cấu cho phép tính toán trên dữ liệu trong khi nó vẫn được mã hóa. RSA dạng sách giáo khoa tình cờ đồng cấu với phép nhân: E(a)·E(b) = E(a·b).
Nhân hai số mà không cần giải mã
Khóa RSA đồ chơi n = 3233, e = 17, d = 2753. "Đám mây" chỉ thấy bản mã.
| Kiểu | Vận hành | Ví dụ |
|---|---|---|
| Đồng cấu một phần | Chỉ phép nhân hoặc chỉ phép cộng | RSA (×), ElGamal (×), Paillier (+) |
| Một phần / theo mức | Cả hai, tới một độ sâu cố định | BGV, BFV |
| Đồng cấu hoàn toàn (FHE) | Mọi phép tính, dùng bootstrapping để làm mới nhiễu (Gentry, 2009) | TFHE, CKKS (số học xấp xỉ cho học máy) |
FHE hiện đại dựa trên lưới — cùng ý tưởng nhiễu như ML-KEM — nên cũng được tin là hậu lượng tử. Nó vẫn chậm hơn tính toán trên dữ liệu rõ hàng nghìn tới hàng triệu lần, nhưng đã thực dụng cho một số bài toán phân tích và suy luận riêng tư.
Tính toán nhiều bên và mật mã ngưỡng
- Tính toán nhiều bên an toàn (MPC): nhiều bên cùng tính một hàm của các đầu vào riêng và chỉ biết kết quả — bài toán triệu phú của Yao (1982) hỏi ai giàu hơn mà không lộ tài sản. Kỹ thuật: mạch rối, số học trên phần chia bí mật.
- Giao tập hợp riêng tư: hai bên chỉ biết những mục họ cùng có, dùng cho khám phá danh bạ và đo lường quảng cáo.
- Chữ ký ngưỡng (FROST cho Schnorr, ECDSA ngưỡng): k trong n bên phải hợp tác để ký; khóa riêng đầy đủ không bao giờ tồn tại ở một nơi. NIST đang kêu gọi đề xuất các lược đồ ngưỡng nhiều bên.
- Sinh khóa phân tán: các bên tạo khóa chung mà không cần người chia tin cậy.
Thêm các nguyên thủy
| Nguyên thủy | Nó làm gì |
|---|---|
| Cam kết | Niêm phong một giá trị bây giờ, tiết lộ sau; ràng buộc (không thể đổi) và che giấu (không thể nhìn trộm). Ví dụ: cam kết Pedersen. |
| Chữ ký mù | Ký một thông điệp mà không nhìn thấy nó (Chaum, 1982) — nền tảng của tiền số ẩn danh và token Privacy Pass. |
| Chữ ký vòng và chữ ký nhóm | Chứng minh "một trong những người này đã ký" mà không nói là ai. |
| Mã hóa dựa trên danh tính và thuộc tính | Mã hóa tới một địa chỉ email hoặc một chính sách ("bác sĩ VÀ tim mạch") thay vì một khóa công khai. |
| Hàm ngẫu nhiên kiểm chứng được | Đầu ra trông ngẫu nhiên kèm bằng chứng đúng đắn; dùng trong đề xuất DNSSEC NSEC5 và xổ số trên chuỗi khối. |
| RAM không để lộ, truy xuất thông tin riêng tư | Giấu việc bạn truy cập dữ liệu nào, không chỉ bản thân dữ liệu. |
| Mã hóa hàm, làm rối mã | Chỉ giải mã ra một hàm của dữ liệu; hiện nay chủ yếu là lý thuyết. |
| Mật mã hạng nhẹ | Ascon, được NIST chuẩn hóa (SP 800-232, 2025), cho các thiết bị IoT tí hon. |
Mật mã trong chuỗi khối
- Giá trị băm nối các khối với nhau và vận hành bằng chứng công việc (Bitcoin dùng SHA-256 kép).
- Cây Merkle cho phép một máy khách nhẹ kiểm chứng giao dịch bằng một bằng chứng ngắn.
- Chữ ký (ECDSA trên secp256k1, Schnorr trong Taproot, Ed25519 ở nơi khác) cho phép chi tiêu — và bị Shor đe dọa khi khóa công khai lộ trên chuỗi.
- Bằng chứng không tiết lộ cho phép giao dịch riêng tư và các rollup nén hàng nghìn giao dịch thành một bằng chứng.
Dựng một cây Merkle
Tám giao dịch, được băm theo cặp lên tới một gốc duy nhất bằng SHA-256 thật (hiện 8 chữ số hex đầu). Sửa một giao dịch: mọi giá trị băm trên đường lên gốc đều đổi. Chọn một lá để xem bằng chứng bao hàm — chỉ 3 giá trị băm cho 8 lá, khoảng 20 cho một triệu.
Luật, chính sách và đạo đức
- Kiểm soát xuất khẩu: mật mã mạnh từng bị xếp vào loại vũ khí ở Mỹ ("cuộc chiến mật mã" thập niên 1990); phần lớn kiểm soát được nới lỏng quanh năm 2000, còn sót lại các quy định cấp phép.
- Tranh luận về truy cập hợp pháp: chính phủ định kỳ đòi quyền truy cập đặc biệt vào dữ liệu mã hóa; các nhà mật mã cảnh báo rằng mọi cửa hậu đều làm yếu an ninh của tất cả mọi người (chip Clipper thập niên 1990, Dual_EC_DRBG).
- Chuẩn và niềm tin: các cuộc thi mở (AES, SHA-3, PQC) và phân tích mật mã công khai xây dựng niềm tin tốt hơn thiết kế bí mật.
- Tuân thủ: FIPS 140-3, Common Criteria, PCI DSS, GDPR và các quy định ngành xác định mật mã mà các hệ thống bị quản lý phải dùng.
Đặt cạnh nhau
| RSA và ECC | PQC | QKC (QKD) | |
|---|---|---|---|
| Nền tảng an toàn | Phân tích thừa số, logarit rời rạc | Các bài toán lưới, mã và hàm băm | Các định luật vật lý lượng tử |
| Trước máy tính lượng tử | Bị Shor phá | Được tin là an toàn | An toàn về lý thuyết |
| Phần cứng | Máy tính thông thường | Máy tính thông thường | Thiết bị quang học chuyên dụng |
| Tầm với | Toàn cầu, qua Internet | Toàn cầu, qua Internet | Điểm-điểm, tầm hạn chế |
| Chữ ký số | Có | Có | Không, chỉ tạo khóa |
| Chi phí | Thấp | Thấp, chủ yếu là cập nhật phần mềm | Cao |
| Phù hợp nhất | Hệ thống cũ, đang bị loại dần | Mặc định cho đa số hệ thống | Đường truyền giá trị rất cao giữa các địa điểm cố định |
PQC và QKC bổ sung cho nhau chứ không loại trừ nhau: QKD cần PQC để xác thực, và PQC là con đường thực tế để bảo vệ Internet ở quy mô lớn.
Cả ba đều tạo ra thứ dễ làm khi có khóa và cực kỳ khó đảo ngược khi không có. RSA và PQC đặt niềm tin vào toán học, QKC đặt vào vật lý — và cả ba chỉ an toàn khi được cài đặt đúng.
Điều gì có thể hỏng?
| Thất bại | Hệ quả |
|---|---|
| RSA sách giáo khoa | Mã hóa tất định, thông điệp đoán được. Hãy dùng RSA-OAEP. |
| Tính ngẫu nhiên yếu | Giá trị sinh khóa bị lặp lại hoặc đoán được làm lộ khóa riêng. |
| Kênh kề | Hành vi về thời gian, công suất, bộ nhớ đệm hay lỗi làm lộ bí mật ngay cả khi toán học vững chắc. |
| Dùng lại nonce trong ECDSA | Hai chữ ký cùng nonce là đủ để tính ra khóa ký riêng. |
| Không kiểm chứng khóa | Không có chứng thư và kiểm tra danh tính, kẻ tấn công thay khóa công khai của chính họ vào. |
| Máy tính lượng tử | Đe dọa cả RSA lẫn ECC thông dụng; PQC dựa trên các giả định khác. |
| Con người và vận hành | Thiết bị bị đánh cắp, bản sao lưu bị lộ, kiểm soát truy cập kém, mất khóa riêng. |
Kiểm tra kiến thức
Nguồn và đọc thêm
- RFC 8017 — PKCS #1: RSA, bao gồm OAEP và PSS
- NIST FIPS 186-5 — Chuẩn chữ ký số, chữ ký RSA và đường cong elliptic
- NIST SP 800-56A Rev. 3, thiết lập khóa dựa trên logarit rời rạc
- RFC 7748 — X25519 and X448
- RFC 8032 — EdDSA
- RFC 8446 — TLS 1.3
- FIPS 197 — AES, FIPS 202 — SHA-3, SP 800-38D — GCM
- RFC 9106 — Argon2, RFC 5869 — HKDF, RFC 9420 — MLS
- NIST SP 800-57 — Quản lý khóa
- W3C WebAuthn
- FIPS 203 — ML-KEM, FIPS 204 — ML-DSA, FIPS 205 — SLH-DSA
- NIST — Mật mã hậu lượng tử
- NIST IR 8547 (bản nháp) — Chuyển đổi sang các chuẩn PQC
- EU — Lộ trình phối hợp triển khai PQC
- NIST SP 800-208 — Chữ ký dựa trên hàm băm có trạng thái
- ETSI — Phân phối khóa lượng tử
- NCSC — Các công nghệ bảo mật lượng tử
Tài liệu giáo dục, không thay thế cho việc thẩm định thiết kế mật mã. Tiêu chuẩn và hướng dẫn luôn thay đổi; hãy kiểm tra phiên bản hiện hành trước khi triển khai.
Thuật ngữ
65 thuật ngữ dùng trong toàn bộ tài liệu.
- AEAD
- Mã hóa xác thực kèm dữ liệu liên kết: mã hóa và xác thực trong một bước (AES-GCM, ChaCha20-Poly1305).
- AES
- Chuẩn mã hóa nâng cao: mã khối 128 bit được dùng gần như khắp nơi (FIPS 197).
- Argon2
- Hàm băm mật khẩu tốn bộ nhớ; Argon2id là biến thể được khuyến nghị.
- Mật mã bất đối xứng
- Dùng một cặp khóa công khai/riêng; còn gọi là mật mã khóa công khai.
- BB84
- Giao thức phân phối khóa lượng tử đầu tiên (Bennett và Brassard, 1984).
- Giới hạn ngày sinh
- Va chạm trong giá trị n bit xuất hiện sau khoảng 2^(n/2) mẫu.
- Mã khối
- Mã hóa các khối kích thước cố định dưới một khóa; cần một chế độ hoạt động.
- CA
- Tổ chức chứng thực: ký các chứng thư gắn tên với khóa công khai.
- Minh bạch chứng thư (Certificate Transparency)
- Nhật ký công khai chỉ-ghi-thêm của mọi chứng thư TLS được tin cậy.
- ChaCha20
- Mã dòng phần mềm nhanh, thường đi cặp với Poly1305.
- Bản mã
- Dạng đã mã hóa của một thông điệp.
- Va chạm
- Hai đầu vào khác nhau có cùng giá trị băm.
- Linh hoạt mật mã
- Thiết kế hệ thống để có thể thay thuật toán mà không phải thiết kế lại.
- CRQC
- Máy tính lượng tử đủ sức phá mã: đủ lớn để phá RSA/ECC.
- Trạng thái mồi
- Kỹ thuật QKD chặn tấn công tách số photon.
- Diffie–Hellman
- Thỏa thuận khóa trong đó mỗi bên kết hợp giá trị riêng của mình với giá trị công khai của bên kia.
- Chữ ký số
- Bằng chứng, kiểm chứng được bằng khóa công khai, rằng người giữ khóa riêng đã chấp thuận một thông điệp.
- ECB
- Chế độ sổ mã điện tử; làm lộ mẫu và không bao giờ nên dùng.
- ECC
- Mật mã đường cong elliptic, dựa trên bài toán logarit rời rạc trên đường cong elliptic.
- ECDLP
- Bài toán logarit rời rạc trên đường cong elliptic: tìm d từ G và Q = dG.
- Entropy
- Độ khó đoán, đo bằng bit; thứ mà khóa và mật khẩu cần.
- FHE
- Mã hóa đồng cấu hoàn toàn: tính toán tùy ý trên dữ liệu đã mã hóa.
- FIPS
- Các chuẩn xử lý thông tin liên bang Mỹ, như FIPS 203 (ML-KEM).
- Bí mật chuyển tiếp
- Đánh cắp khóa dài hạn về sau không giải mã được các phiên đã qua.
- Fujisaki–Okamoto
- Phép biến đổi làm một lược đồ an toàn thụ động trở nên an toàn trước tấn công chọn bản mã.
- Thuật toán Grover
- Tìm kiếm lượng tử tăng tốc căn bậc hai; giảm một nửa độ mạnh khóa đối xứng.
- Thu thập bây giờ, giải mã sau
- Ghi lại lưu lượng mã hóa hôm nay để giải mã bằng máy tính lượng tử tương lai.
- Hàm băm
- Ánh xạ mọi đầu vào thành bản tóm kích thước cố định; phải kháng tiền ảnh và va chạm.
- HKDF
- Hàm dẫn xuất khóa dựa trên HMAC (RFC 5869).
- HMAC
- Mã xác thực thông điệp dựa trên hàm băm (RFC 2104).
- HSM
- Mô-đun bảo mật phần cứng: thiết bị chống can thiệp để lưu và sử dụng khóa.
- Lai
- Kết hợp một thuật toán cổ điển và một thuật toán hậu lượng tử để phải phá được cả hai.
- IND-CCA2
- An toàn trước kẻ tấn công còn có thể yêu cầu giải mã.
- KEM
- Cơ chế đóng gói khóa: tạo một bí mật chung và một bản mã để gửi nó.
- KDF
- Hàm dẫn xuất khóa: biến một bí mật thành một hoặc nhiều khóa.
- Lưới
- Lưới điểm đều đặn trong nhiều chiều; nền tảng của ML-KEM và ML-DSA.
- LWE
- Learning With Errors: giải hệ phương trình tuyến tính bị che bởi nhiễu nhỏ.
- MAC
- Mã xác thực thông điệp: một thẻ có khóa chứng minh tính toàn vẹn và nguồn gốc.
- Cây Merkle
- Cây các giá trị băm cho phép chứng minh ngắn gọn rằng một mục có trong tập.
- ML-DSA
- Thuật toán chữ ký số trên lưới module, FIPS 204 (trước đây là Dilithium).
- ML-KEM
- Cơ chế đóng gói khóa trên lưới module, FIPS 203 (trước đây là Kyber).
- MPC
- Tính toán nhiều bên an toàn: cùng tính mà không tiết lộ đầu vào.
- Định lý không sao chép
- Không thể sao chép hoàn hảo một trạng thái lượng tử chưa biết.
- Nonce
- Số chỉ dùng một lần; lặp lại nó có thể gây thảm họa (GCM, ECDSA).
- OAEP
- Padding mã hóa bất đối xứng tối ưu cho mã hóa RSA.
- Sổ dùng một lần
- XOR với một khóa thực sự ngẫu nhiên, dùng một lần, dài bằng thông điệp; bí mật tuyệt đối.
- Passkey
- Một thông tin xác thực FIDO2/WebAuthn: cặp khóa riêng cho từng trang, chống lừa đảo.
- PKI
- Hạ tầng khóa công khai: CA, chứng thư và các quy tắc gắn kết chúng.
- Giới hạn PLOB
- Tốc độ khóa tối đa của mọi đường truyền lượng tử điểm-điểm không có bộ lặp.
- PQC
- Mật mã hậu lượng tử: các thuật toán cổ điển được thiết kế để chống tấn công lượng tử.
- Khuếch đại bảo mật
- Bước QKD băm rút gọn khóa để loại bỏ mọi thứ Eve có thể biết.
- PSS
- Lược đồ chữ ký xác suất: padding được khuyến nghị cho chữ ký RSA.
- QBER
- Tỉ lệ lỗi bit lượng tử: tỉ lệ các bit đã sàng lọc không khớp.
- QKC
- Mật mã khóa lượng tử: mật mã có độ an toàn dựa trên vật lý lượng tử.
- QKD
- Phân phối khóa lượng tử: tạo khóa chung bằng trạng thái lượng tử.
- QRNG
- Bộ sinh số ngẫu nhiên lượng tử.
- Muối
- Giá trị ngẫu nhiên lưu cùng giá trị băm mật khẩu để các mật khẩu giống nhau cho giá trị băm khác nhau.
- Thuật toán Shor
- Thuật toán lượng tử phân tích thừa số và giải logarit rời rạc trong thời gian đa thức.
- Kênh kề
- Rò rỉ qua thời gian, công suất, bộ nhớ đệm hay lỗi thay vì qua toán học.
- SLH-DSA
- Chuẩn chữ ký dựa trên hàm băm không trạng thái, FIPS 205 (trước đây là SPHINCS+).
- Mật mã đối xứng
- Cả hai bên dùng cùng một khóa bí mật.
- TLS
- Transport Layer Security, giao thức đằng sau HTTPS.
- Nút tin cậy
- Một trạm chuyển tiếp QKD nơi khóa tồn tại ở dạng cổ điển và phải được tin cậy.
- X.509
- Định dạng chứng thư chuẩn dùng trong TLS và hầu hết PKI.
- Bằng chứng không tiết lộ
- Thuyết phục người kiểm chứng rằng một mệnh đề đúng mà không tiết lộ gì khác.