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êuCâu hỏi nó trả lờiCông cụ điển hình
Tính bí mậtChỉ bên được chỉ định mới đọc được không?AES-GCM, ChaCha20-Poly1305, trao đổi khóa
Tính toàn vẹnNó có bị thay đổi trên đường đi không?MAC (HMAC), thẻ AEAD, giá trị băm
Xác thựcAi 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ốngMật mã bên trongPhần dễ bị lượng tử tấn công
HTTPS / TLSTrao đổi khóa ECDHE, chữ ký chứng thư, AES-GCMTrao đổ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ứngTrao đổ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ềmMọi chữ ký
Thanh toán, thẻ thông minh, eSIMKhóa đối xứng trong phần tử bảo mật, RSA/ECC để cấp phátCấp phát và xác thực thẻ
Mã hóa đĩa và cơ sở dữ liệuAES với khóa được bọc bởi các khóa khácChỉ khi bọc khóa dùng RSA/ECC
DNSSEC, email (S/MIME, PGP)Chữ ký, mã hóa khóa công khaiChữ ký và mã hóa

Từ cổ điển đến hiện đại

  1. 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.
  2. 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.
  3. 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.
  4. 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.
  5. 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.
  6. 1984–1985: Phân phối khóa lượng tử BB84; mật mã đường cong elliptic được Koblitz và Miller đề xuất.
  7. 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.
  8. 2001: AES thay thế DES. 2015: SHA-3 được chuẩn hóa.
  9. 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ứngBất đối xứng (khóa công khai)
KhóaMột khóa bí mật dùng chungMộ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ínhMã hóa và xác thực dữ liệu khối lượng lớnThiết lập khóa, ký, xác thực
Phân phối khóaKhó: khóa phải được chia sẻ bí mật trướcDễ: khóa công khai có thể công bố
Số khóa cần cho N người dùngN(N−1)/2 khóa theo cặpN cặp khóa
Ví dụAES, ChaCha20, HMAC, SHA-2/3RSA, 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 bitShor 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:

1. Trao đổi khóaECDH / ML-KEM
bí mật chung
2. Suy ra khóaHKDF
khóa phiên
3. Mã hóa dữ liệuAES-GCM

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.

DH không xác thực dễ bị tấn công kẻ đứng giữa. Mallory có thể chạy một phiên trao đổi với Alice và một phiên khác với Bob. Vì thế TLS ký phiên trao đổi bằng khóa chứng thư của máy chủ. DH thật dùng nhóm 2048 bit trở lên hoặc đường cong elliptic (X25519) — và cả hai đều gục trước thuật toán Shor, nên ML-KEM đang thay thế chúng.

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ởiTấn công cổ điển tốt nhấtTình trạng trước lượng tử
Phân tích số nguyên ra thừa sốRSASàng trường số tổng quát, dưới hàm mũShor: đa thức
Logarit rời rạc mod pDiffie–Hellman, DSASàng trường số, dưới hàm mũShor: đa thức
Logarit rời rạc trên đường cong ellipticECDH, ECDSA, EdDSARho của Pollard, hoàn toàn hàm mũ (√ kích thước nhóm)Shor: đa thức
Module-LWE, Module-SISML-KEM, ML-DSARú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ứngClassic McEliece, HQCGiả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ămSLH-DSA, LMS, XMSSTìm kiếm tổng quátGrover: 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ĩaMức liên quan
PGiải được trong thời gian đa thức trên máy tính cổ điểnBên phòng thủ làm gì: mã hóa, ký, kiểm chứng
NPLời giải kiểm chứng được trong thời gian đa thứcPhân tích thừa số và logarit rời rạc thuộc NP, nhưng không được tin là NP-đầy đủ
BQPGiả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ì đã saiBà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 raTí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 gameNonce 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êngLỗ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 đượcViệ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 2005Chuyể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ớiGiả đị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.

← vatlyluongtu.com