Công nghệ lượng tử sẽ thay đổi tương lai như thế nào? PHẦN 4: MÃ HÓA HẬU LƯỢNG TỬ

Nếu đã đọc xong PHẦN 2 - CƠ BẢN NÊN ĐỌC hoặc bạn đã có sẵn kiến thức cơ bản về lượng tử, hẳn bạn đã hiểu tại sao các thuật toán lượng tử đặc biệt nguy hiểm với bảo mật. Và thế giới đã chuẩn bị ráo riết tìm các biện pháp chống lại mối đe dọa từ máy tính lượng tử.

Mốc thời gian liên quan:

1994: Peter Shor công bố thuật toán Shor.

2010 - nay: nhiều chính phủ triển khai mạng QKD.

16/8/2016: Trung Quốc phóng vệ tinh Micius - vệ tinh lượng tử đầu tiên trên thế giới (QKD).

12/2016: NIST (Viện Tiêu chuẩn và Công nghệ Quốc gia Hoa Kỳ) chọn PQC và bắt đầu thi tuyển PQC.

NIST quan trọng ở đây, vì dù là cơ quan quy định các tiêu chuẩn cho Mỹ, nhưng sau đó gần như cả thế giới bắt chước theo.

2024: NIST công bố 3 chuẩn PQC.

2030: Toàn bộ chính phủ Mỹ hoàn thành chuyển đổi hết sang PQC.


QKD và PQC

RSA và ECC bảo vệ mọi thứ hiện nay. Thuật toán Shor sẽ phá chúng khi có đủ qubit. QKD và PQC là hai hướng điển hình cho các giải pháp xử lý vấn đề mật mã kháng lượng tử hiện tại.
Còn một số hướng khác cũng kháng lượng tử, như hàm băm (SHA-3, SHA-256), mô hình lai (kết hợp thuật toán cổ điển với PQC), chuỗi bí mật dùng một lần (OTP) - vốn là các phương pháp đã biết. Tôi sẽ không đề cập ở đây nữa.

QKD (Quantum Key Distribution - Kỹ thuật phân phối khóa lượng tử)

QKD dùng vật lý để bảo mật.

Nguyên lý: Dùng photon để trao đổi khóa bí mật (private keys) qua kênh lượng tử. 
QKD không mã hóa tin nhắn, nó chỉ tạo ra và phân phối khóa bí mật một cách an toàn, rồi dùng khóa đó với mã hóa thông thường.
Tốc độ chậm vì bị giới hạn bởi photon.

Hạ tầng cần thiết: Cáp quang đặc biệt cho lượng tử (100km) hoặc vệ tinh lượng tử (toàn cầu). Chi phí triển khai rất cao vì cần một hạ tầng vật lý mới hoàn toàn.

Quy trình hoạt động:
  • Tại Alice (người gửi): Gửi photon (kèm thông tin lượng tử) qua kênh lượng tử.
  • Tại Bob (người nhận): Bộ lọc ngẫu nhiên đo photon.
  • Sàng lọc - So sánh qua kênh công khai để giữ lại các thông tin hợp lệ: Đúng khóa bí mật => kết quả khớp. Sai khóa bí mật (tỷ lệ lỗi > 11%) => hủy khóa và thử lại.
  • Ước lượng và sửa lỗi: phát hiện can thiệp từ bên ngoài và hiệu chỉnh các sai sót.
  • Khuếch đại private: loại bỏ hoàn toàn thông tin rò rỉ (nếu có) và tạo khóa bảo mật cuối cùng.
Tại sao không thể nghe lén mà không bị phát hiện?
Photon mang thông tin ở trạng thái lượng tử. Đo photon sẽ làm thay đổi photon đó (nguyên lý bất định). Cũng không thể sao chép photon (nguyên lý no-cloning). Cho nên nghe lén luôn để lại dấu vết.
Hãy tưởng tượng bạn và người bạn ở hai đầu thành phố muốn trao đổi khóa bí mật. Thay vì gửi khóa qua bưu điện (có thể bị photocopy), bạn gửi khóa dưới dạng photon - hạt ánh sáng. Bất kỳ ai chặn đường và đọc photon đó đều phá vỡ trạng thái lượng tử của nó, để lại dấu vết rõ ràng. Bạn và người bạn so sánh một phần kết quả - nếu có sai lệch bất thường, biết ngay có người nghe lén và hủy khóa đó đi. Đây là bảo mật dựa trên quy luật vật lý, không phải độ khó toán học - về lý thuyết là tuyệt đối an toàn.

Các giao thức QKD: Có hai nhóm chính

  • Phân phối khóa rời rạc: Mã hóa thông tin trên các trạng thái lượng tử rời rạc, chẳng hạn như trạng thái phân cực của các photon đơn.
    • Giao thức BB84 (Bennett và Brassard phát minh năm 1984): đây là giao thức QKD đầu tiên và phổ biến nhất. Các photon được phân cực ngẫu nhiên theo 4 trạng thái (dọc/ngang hoặc hai đường chéo).
    • Giao thức E91 (Artur Ekert phát minh năm 1991): Cặp hạt vướng víu được phát ra. Alice và Bob mỗi người nhận một hạt và đo lường chúng.
    • Giao thức B92 (Bennett đề xuất, là phiên bản đơn giản hóa của BB84): Sử dụng hai trạng thái lượng tử không trực giao (non-orthogonal) để mã hóa 0 và 1.
    • Giao thức DI (Device Independent): Dựa trên đo lường các trạng thái rời rạc (phân cực của photon...), nó dùng để kiểm tra bất đẳng thức Bell, không cần tin tưởng vào thiết bị.
    • Giao thức MDI (Measurement-Device Independent): Cả hai bên gửi photon tới một bên thứ ba (không cần tin cậy). Phương pháp này đảm bảo an toàn tuyệt đối dù thiết bị có bị xâm nhập hay không tin cậy.
  • Phân phối khóa liên tục: Mã hóa thông tin trên các đại lượng vật lý biến thiên liên tục của trường ánh sáng (như biên độ và pha), tương tự như truyền thông quang học cổ điển.
    • Giao thức GMCS: đây là giao thức được dùng nhiều. Phía Alice điều chế ngẫu nhiên các trạng thái kết hợp của laser theo phân phối Gaussian. Phía Bob sử dụng kỹ thuật tách sóng đồng pha (homodyne) hoặc đa pha (heterodyne) để đo các đại lượng bậc thang (quadratures) của ánh sáng.
    • Giao thức DMCS
    • Giao thức MDI: giao thức này xài được cả cho phân phối khóa rời rạc lẫn liên tục.
QKD bảo mật tuyệt đối về mặt lý thuyết, nhưng khó triển khai diện rộng.

Triển khai thực tế: QKD mới chỉ được một số chính phủ giàu có triển khai thật sự.

Năm 2003 - 2007 (Mạng đầu tiên): Mạng QKD đa điểm đầu tiên trên thế giới được xây dựng bởi DARPA (thuộc Bộ quốc phòng Hoa Kỳ) tại Massachusetts, Mỹ, dài 10 km.

Năm 2004 (Thương mại hóa): Hệ thống QKD thương mại đầu tiên - của ID Quantique (Canada) - xuất hiện trên thị trường.

Năm 2010: Nhật Bản triển khai Tokyo QKD Network. Toshiba và NTT cũng thương mại hóa hệ thống QKD của riêng mình.

Năm 2016 - 2021 (Quy mô lớn): Trung Quốc triển khai tuyến cáp quang lượng tử Bắc Kinh - Thượng Hải dài hơn 2.000 km và tích hợp vệ tinh lượng tử để tạo thành mạng diện rộng 4.600 km. Nếu tính tổng toàn bộ các nút đô thị và không gian, nhiều tờ báo cho rằng, con số này phải lên tới hơn 12.000 km.

Năm 2023: Châu Âu triển khai mạng QKD có tên EuroQCI trị giá 1 tỷ euro, kết nối 27 nước thành viên toàn EU. Hiện tại mới chỉ triển khai cục bộ cho từng quốc gia. Dự kiến đẩy mạnh dự án từ 2026, tích hợp đồng bộ vào mạng không gian IRIS² của EU.

Singapore, Hàn Quốc, Thụy Sỹ cũng là quốc gia đã xây dựng mạng QKD quốc gia.

PQC (Post-Quantum Cryptography - Mật mã hậu lượng tử)

PQC dùng toán học mới để bảo mật.

Nguyên lý: Sử dụng bài toán khó hơn mà cả máy tính cổ điển lẫn máy tính lượng tử đều không thể giải được nhanh.

RSA dựa trên bài toán "phân tích số nguyên tố" - nhưng Shor phá được. Giờ đổi bài toán khác mà Shor không giải được. Ví dụ: bài toán "tìm vector ngắn nhất trong lưới 1.000 chiều" - không có thuật toán lượng tử nào biết cách giải nhanh bài này. 

Ba nền tảng của PQC:
  • Lattice-based (bài toán lưới): ví dụ, trong lưới 1000+ chiều, tìm vector ngắn nhất.
  • Hash-based (hàm băm): ví dụ, giá trị hàm băm SHA-256 của từ "hello" là 2cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e73043362938b9824
  • Code-based (mã sửa lỗi): dựa trên bài toán giải mã tổng quát của hệ mật mã McEliece 1978 với các mã Goppa nhị phân cổ điển - đến nay vẫn chưa bị phá hoàn toàn.
Hạ tầng cần thiết: Phần mềm (xài luôn internet hiện tại). Không giới hạn khoảng cách. Chi phí triển khai thấp. Đây là ưu điểm lớn nhất (triển khai chỉ cần cập nhật phần mềm, không cần thay cáp quang hay mua thiết bị mới).
Tốc độ nhanh như mã hóa hiện tại.

Quy trình hoạt động: Các thuật toán PQC hiếm khi thay thế hoàn toàn thuật toán cũ ngay lập tức. Các tổ chức thường dùng Giao thức kết hợp (Hybrid Protocols) như X25519MLKEM768 (kết hợp Diffie-Hellman cổ điển với Kyber/ML-KEM) trong các giao thức cốt lõi như TLS 1.3 để bảo vệ hệ thống khỏi các cuộc tấn công thu thập dữ liệu giải mã trong tương lai.

Các giao thức PQC:
  • Giao thức trao đổi khóa: để thiết lập kênh liên lạc an toàn.
    • ML-KEM: dùng bài toán khó của lý thuyết lưới (lattice-based). Đây là tiêu chuẩn vàng để chống lại máy tính lượng tử.
    • HQC: dựa trên hàm băm.
  • Giao thức chữ ký số: để xác thực danh tính.
    • ML-DSA: dùng bài toán của lý thuyết lưới, nên được coi là giải pháp hoàn hảo.
    • SLH-DSA: chữ ký số không trạng thái dựa trên hàm băm.
    • FN-DSA: chữ ký số dựa trên lưới đa thức.
PQC bảo mật dựa trên các giả thuyết toán học (chưa được kiểm chứng cho đến khi máy tính lượng tử fault-tolerant thật sự ra đời), nhưng dễ triển khai hơn.

Triển khai thực tế:
Tin vui là PQC đã ở trong tay bạn. PQC đang được áp dụng rộng rãi. Nếu bạn dùng Chrome cập nhật, iMessage trên iPhone, hoặc bất kỳ dịch vụ Cloudflare nào - bạn đã được bảo vệ một phần bởi PQC rồi. Quá trình chuyển đổi đang diễn ra âm thầm mà không cần người dùng làm gì.

Cụ thể, năm 2023, Google đã áp dụng X25519Kyber768 cho hàng tỷ kết nối.

Năm 2024, Apple triển khai PQ3 cho iMessage.

Các dịch vụ cloud lớn như AWS, Microsoft Azure, Google Cloud, Cloudflare đều đã và đang tích hợp PQC cho hạ tầng của họ.

Nhóm ngành tài chính ngân hàng, an ninh mạng và công nghiệp toàn cầu đã và đang triển khai PQC - vì đây là nhóm ngành bắt buộc phải chuyển đổi.

IETF cũng đang hoàn thiện lại các chuẩn internet (TLS, SSH...) để PQC trở thành nền tảng bảo mật tiêu chuẩn toàn cầu.
 X25519Kyber768 
Chính phủ Mỹ - khác với nhiều cường quốc khác, dù đã thử nghiệm QKD đầu tiên, nhưng lại không theo đuổi giải pháp QKD triển khai diện rộng, chỉ tập trung một số thử nghiệm nhỏ QKD cho năng lượng và quốc phòng. Mỹ ưu tiên PQC, và dự kiến toàn bộ hệ thống của chính phủ sẽ chuyển hết sang PQC vào năm 2030.

QKD hay PQC tốt hơn?

Các nhà khoa học đã đánh giá và cho rằng cần cả hai. 

QKD bảo mật hoàn hảo cho ít người. PQC bảo mật tốt cho mọi người.

QKD hoàn hảo về lý thuyết nhưng bị giới hạn bởi vật lý - photon đi qua cáp quang chỉ tốt đến khoảng 100km trước khi tín hiệu suy yếu, và cần hạ tầng riêng biệt đắt tiền. PQC không hoàn hảo tuyệt đối như QKD (vẫn dựa trên giả định toán học), nhưng có thể triển khai ngay hôm nay trên toàn internet hiện có. 

Trong thực tế, các tổ chức bảo mật cao (ngân hàng trung ương, quân sự) sẽ dùng QKD cho liên lạc quan trọng nhất, còn toàn bộ internet sẽ chuyển sang PQC.

Harvest Now, Decrypt Later (HNDL)

Sự ra đời của thuật toán Shor khiến giới tình báo (lẫn tội phạm) tăng cường thu thập thông tin hơn bao giờ hết - dù chưa đọc được. Chỉ cần máy tính lượng tử đủ mạnh ra đời, dữ liệu bí mật sẽ đọc được hết.

Các thông tin nhạy cảm (bí mật quốc gia, hồ sơ y tế, tài chính, hợp đồng pháp lý, v.v.) vẫn giữ nguyên giá trị trong nhiều năm hoặc nhiều thập kỷ. Kẻ tấn công đánh cắp chúng lúc đang được mã hóa và cất đi, thay vì cố gắng phá khóa ngay tại thời điểm đó. Nguy cơ từ máy tính lượng tử không nằm ở thời điểm chiếc máy đó được chế tạo thành công, mà bắt đầu ngay từ lúc dữ liệu bị đánh cắp.

Nên việc chuyển sang PQC ngay bây giờ được giới chức an ninh nhiều quốc gia khuyến cáo.
NIST 

Ba chuẩn mật mã PQC được NIST công bố tháng 8/2024

Đây là nền tảng bảo mật của internet trong 30-50 năm tới. NIST đã chọn ra 3 giải pháp này từ 82 ứng cử viên sau 8 năm phân tích. 

Tại sao cần tới 3 chuẩn? Vì chuẩn RSA hiện tại đang làm 2 việc: trao đổi khóa (KEM) và chữ ký số (DSA). Chuyển sang PQC, hai việc này được tách ra ứng với 3 chuẩn chuyên biệt. 

1. CRYSTALS-Kyber (ML-KEM)

ML-KEM là viết tắt của Module-Lattice-Based Key-Encapsulation Mechanism. Nó có tên gốc là CRYSTALS-Kyber, viết tắt của Cryptographic Suite for Algebraic Lattices (Bộ công cụ mật mã học cho mạng đại số), được tạo ra bởi một nhóm các nhà mật mã học quốc tế đến từ các trường đại học và viện nghiên cứu hàng đầu tại châu Âu (như IBM Research, Ruhr University Bochum, và Radboud University), trong dự án CRYSTALS.

Nó bảo vệ kênh trao đổi khóa bí mật (KEM), thay thế RSA/ECC/ECDH trong HTTPS, TLS, SSH, VPN. 

Thuật toán này sử dụng bài toán lưới (lattice-based): Học có lỗi trên mạng module tinh thể (Module Learning With Errors).

Cho A và b = A·s + e, tìm s

Trong đó: b công khai - là đa thức tuyến tính lớn, A - ma trận đa chiều lớn công khai, s - khóa bí mật, e - nhiễu.

Khóa công khai: A, b. Khóa bí mật: s.

Khi không có nhiễu, có thể giải ngay bằng đại số tuyến tính. Nhưng nếu có nhiễu, không có thuật toán hiệu quả nào để tìm s, kể cả máy lượng tử. Dù máy lượng tử có thể tính căn bậc n, cũng quá chậm để giải.

Thuật toán CRYSTALS-Kyber có lợi thế: nhanh (tổng thời gian tạo khóa, mã hóa, giải mã dưới 1ms), kích thước khóa nhỏ (1.184 byte với Kyber768), hiệu suất tương đương RSA.

Bất lợi của thuật toán này là nó còn mới. Do mới, nên chưa có nhiều thời gian để được phân tích chuyên sâu bởi cộng đồng khoa học và đặc biệt giới mã hóa. Nếu lưới tinh thể (lattice) bị phá, thì toàn bộ thuật toán bị phá. Nó cũng cần một trình sinh số ngẫu nhiên đủ tốt.

Google Chrome đã áp dụng chuẩn này từ năm 2023.

2. CRYSTALS-Dilithium (ML-DSA)

ML-DSA là viết tắt của Module-Lattice-Based Digital Signature Algorithm. Tên gốc của nó là CRYSTALS-Dilithium, được phát triển bởi 1 nhóm các nhà mật mã học hàng đầu thế giới hiện nay trong dự án CRYSTALS (Cryptographic Suite for Algebraic Lattices). Các tác giả chính bao gồm:

  • Vadim Lyubashevsky (IBM Research)
  • Damien Stehlé (ENS Lyon)
  • Léo Ducas (CWI Amsterdam)
  • Chris Peikert (Đại học Michigan / Algorand)
  • Eike KiltzPeter Schwabe (Đại học Ruhr Bochum)
  • Sébastien Bai (TNO)

Nó dùng cho Chữ ký số (DSA) - bảo vệ tính xác thực và toàn vẹn của dữ liệu - làm sao Alice chứng minh "tôi đã ký văn bản này". Nó thay thế RSA/ECDSA trong certificate TLS, code signing.

Thuật toán này cũng sử dụng bài toán lưới (lattice-based), tận dụng độ khó của việc tìm vector rất ngắn trong một cấu trúc lưới tinh thể đa chiều: 

Bài toán 1 (Bảo vệ khóa bí mật khi ký): Học có lỗi trên mạng module tinh thể (Module Learning With Errors).

Cho A·s + e = t (công khai) → Tìm s (bí mật ký)

Trong đó: A - ma trận đa chiều lớn công khai, t - ma trận đa chiều công khai, e - nhiễu, s - vector bí mật.

Chừng nào không giải được thì khóa bí mật s vẫn an toàn.

Bài toán 2 (Xác thực, giả mạo chữ ký): Module Shortest Integer Solution.

Cho A (công khai), tìm vector z nhỏ sao cho A·z = 0 (mod q)

Trong đó: A - ma trận đa chiều lớn công khai, z - vector bí mật.

Nếu không giải được thì không thể giả mạo chữ ký.

Trong khi ứng dụng thuật toán này, còn có bước rejection sampling - nếu chữ ký trông có vẻ liên quan tới khóa bí mật, sẽ bị hủy và cho ký lại để đảm bảo chữ ký không rò rỉ thông tin khóa bí mật. Đây là điểm khác biệt so với RSA. Nhờ khả năng này, thuật toán có thể bảo vệ khỏi các cuộc tấn công từ các kênh phụ.

Thuật toán này cũng có ưu điểm khác là: thời gian kiểm tra nhỏ (dưới 0,05ms), khối lượng chữ ký nhỏ (2,4KB), cùng nền tảng với ML-KEM.

Bất lợi là khối lượng chữ ký vẫn lớn hơn ECDSA (64B) nhiều. Và do là bài toán mới,  dựa trên lưới tinh thể, nên nếu lattice bị phá thì thuật toán cũng bị phá hoàn toàn.

3. SPHINCS+(SLH-DSA)

SLH-DSA là viết tắt của Stateless Hash-Based Digital Signature Algorithm. Thuật toán này được phát triển bởi một nhóm các nhà mật mã học quốc tế vào năm 2015, bao gồm: Jean-Philippe Aumasson, Daniel J. Bernstein, Ward Beullens, Christoph Dobraunig, Maria Eichlseder, Scott Fluhrer, Stefan-Lukas Gazdag, Andreas Hülsing, Panos Kampanakis, Stefan Kölbl, Tanja Lange, Martin M. Lauridsen, Florian Mendel, Ruben Niederhagen, Christian Rechberger, Joost Rijneveld, Peter Schwabe và Bas Westerbaan.

Nó dùng làm dự phòng cho chữ ký số (vì cả ML-KEM và ML-DSA đều dựa trên lattice, nếu lattice bị phá, cả hai cùng sụp đổ, cần phải có 1 phương pháp độc lập khác đảm bảo).

Thuật toán này thay thế RSA/ECDSA trong certificate.

Dùng hàm băm (hash-based) - tức là bài toán 1 chiều, không thể đảo ngược, vốn an toàn với cả máy tính cổ điển lẫn máy tính lượng tử nếu đầu ra đủ dài.

Ví dụ: hàm băm SHA-256 cho từ "Hello World" là chuỗi

h=a591a6d40bf420404a011733cfb7b190d62c65bf0bcda32b57b277d9ad9f146e

Cho h. Tìm từ gốc của chuỗi đó.

Khi xây dựng chữ ký từ hash, thuật toán chạy theo cây Merkle.

Một chữ ký từ SLH-DSA (tài liệu hướng dẫn của NIST)

Ưu điểm của thuật toán là chỉ dựa trên hàm băm - đã được minh chứng là an toàn lâu nhất với máy cổ điển. Với máy lượng tử, thuật toán Shor cũng bó tay (vì hàm băm không có cấu trúc toán học để Shor khai thác), thuật toán Grover tìm kiếm dù giảm một nửa (2^128) thì vẫn là con số rất lớn.

Bất lợi của nó là kích thước chữ ký lớn 7,8-49,9KB, thời gian lâu (1-100ms).

<< Phần 3: BỨC TRANH LỚN

Phần 5 >>


Nhận xét

Popular Posts

Kỹ năng quan trọng nhất không ai dạy bạn - Zat Rana

Mark Manson: Qui tắc của Kant

Những lời chúc khai trương cửa hàng, doanh nghiệp hay nhất

Dành cho người khởi nghiệp: Sức mạnh của việc Không Làm Gì

Machine Learning cho mọi người - 5: Học tăng cường (Reinforcement Learning)