Công nghệ lượng tử sẽ thay đổi tương lai thế nào? PHẦN 2: CƠ BẢN NÊN ĐỌC

Kiến thức lượng tử vỡ lòng (tiếp)

Khái niệm nên biết

Kiến thức phần này vẫn cơ bản, nhưng không bắt buộc phải biết nếu chỉ muốn nghe hiểu tin tức hàng ngày. Tuy nhiên, để không bị "lùa gà", tôi vẫn khuyên bạn nên đọc qua.

(8) Cổng lượng tử (quantum gate)

Cổng lượng tử có thể hiểu nôm na là "ngôn ngữ" để lập trình máy tính lượng tử.

Nếu qubit là kim la bàn trên quả cầu Bloch, thì cổng lượng tử là các thao tác xoay kim đó - xoay lên, xoay ngang, xoay theo góc bất kỳ. Mỗi cổng tương ứng một phép xoay cụ thể. Lập trình máy tính lượng tử thực chất là thiết kế chuỗi phép xoay sao cho cuối cùng kim "chỉ" vào đáp án đúng với xác suất cao nhất.


Máy tính truyền thống là một chuỗi các cổng biến đổi thông tin. Có 3 cổng cơ bản (AND, OR, NOT) và 4 cổng phức do kết hợp từ 3 cổng cơ bản (NAND, NOR, XOR, XNOR). 


Các cổng này có thể làm biến đổi bit (NOT), hoặc mất thông tin (AND, OR). Đầu vào 1 hoặc nhiều, nhưng chỉ có duy nhất một đầu ra.

Cổng truyền thống cũng có 1 quy tắc chung là: không thể đảo nghịch (Irreversible) - nghĩa là không thể suy ngược lại chính xác trạng thái của các đầu vào nếu chỉ biết kết quả ở đầu ra. Ví dụ với cổng AND truyền thống: Giả sử đầu ra của cổng AND là 0. Bạn sẽ không thể biết đầu vào ban đầu là cặp nào trong 3 khả năng: (0, 0), (0, 1), hoặc (1, 0). Thông tin ban đầu đã bị xóa bỏ hoàn toàn và biến thành nhiệt năng. Do đó, đây là quy trình một chiều, không thể chạy ngược lại.

Máy tính lượng tử cũng dùng các cổng lượng tử để biến đổi thông tin. Có 4 cổng cơ bản (QI, QNOT, QZERO, QONE) và các cổng quan trọng khác (cổng H - Hadamard, CNOT, cổng Z - Pauli Z: ba cổng này đủ để xây dựng mọi phép toán cho 1 máy tính lượng tử). Thông thường, người ta dùng X, Y, Z (tương tự các cổng logic cổ điển NOT, AND, OR). Mỗi cổng tương ứng với một phép quay quanh một trục cụ thể trên hình cầu Bloch. Ví dụ, cổng X thực hiện phép quay 180 độ quanh trục x, đảo ngược trạng thái của qubit (tương tự như cổng NOT cổ điển). Các cổng Y và Z cũng quay quanh trục y và trục z, nhưng tác dụng của chúng bao gồm cả việc đảo ngược trạng thái của qubit và thay đổi pha của nó.

Các cổng lượng tử hoạt động dựa trên các phép biến đổi toán học mang tính Unitary (Ma trận đơn tử). Về mặt vật lý, chúng tuân theo luật cơ học lượng tử, nơi năng lượng và thông tin được bảo toàn. Nếu bạn biết trạng thái đầu ra của một cổng lượng tử, bạn luôn luôn suy ngược lại được 100% trạng thái đầu vào ban đầu. Để không làm mất thông tin, các cổng lượng tử bắt buộc phải có số lượng qubit đầu vào bằng chính xác số lượng qubit đầu ra.

Ví dụ cổng lượng tử Toffoli: nó nhận vào 3 qubit (x, y, z) và xuất ra 3 qubit (x, y, đảo ngược z). Vì số lượng đầu vào bằng đầu ra, bạn chỉ cần chạy ngược mạch là hệ thống khôi phục lại nguyên vẹn trạng thái ban đầu.

Các cổng lượng tử luôn có thể cho chạy ngược về gốc (reversible). Không một cổng lượng tử nào được phép "xóa" thông tin.

Cách đọc mạch lượng tử: đọc từ trái qua phải, từ trên xuống dưới; mỗi dây là 1 qubit, mỗi hộp là một cổng.
Ví dụ: mạch tạo trạng thái Bell vướng víu 2 qubit như hình dưới.

Trạng thái Bell 2 qubit

Trình tự đọc sẽ như sau: 
- qubit 0 qua cổng H tạo chồng chất.
- sau đó lại cho qua tiếp cổng CNOT để lan truyền chồng chất sang qubit 1. Đã tạo được vướng víu cho 2 qubit.
- Đo qubit 0 và qubit 1. Đo tại qubit 0 thấy kết quả có thể là 0 hoặc 1 (ngẫu nhiên), nhưng đo tại qubit 1 luôn cho kết quả giống qubit 0.

Một chỉ số liên quan cổng và mạch lượng tử hay được báo chí nhắc tới là circuit depth - độ sâu mạch (số lượng cổng logic cần để thực thi mạch từ đầu vào tới đầu ra). Depth càng cao mạch chạy càng lâu. Máy lượng tử siêu dẫn của IBM đang chạy depth tầm 7.500-10.000 cổng.


(9) Sửa lỗi lượng tử (quantum error correction)

Trong máy tính truyền thống, nếu bit bị lỗi (như 0 bị biến thành 1 hay ngược lại) thì dễ phát hiện và sửa. Giải pháp hay xài nhất là sao chép ba lần (Triple Modular Redundancy - TMR). Phương pháp này sử dụng 3 bản sao độc lập cùng thực hiện một tác vụ hoặc lưu trữ cùng một dữ liệu. Kết quả của cả 3 bản sao sẽ được đưa qua một mạch bỏ phiếu (Voter). Nếu cả 3 kết quả giống nhau, hệ thống xuất ra kết quả bình thường. Nếu 1 trong 3 bản sao bị lỗi bit và cho kết quả khác biệt, mạch sẽ bỏ phiếu theo đa số (2/3) để loại bỏ kết quả sai và tự động khôi phục dữ liệu gốc chính xác.

Nhưng với máy tính lượng tử, bạn không thể làm tương tự được. Vì bạn không thể đọc qubit. Nếu đọc (đo), hàm sóng sụp đổ, thông tin đang tính toán sẽ bị hủy. Bạn cũng không thể sao chép trạng thái lượng tử (định luật No-cloning). Lỗi trong qubit có thể là bất kỳ góc nào, chứ không chỉ có 0 hay 1. Giống như bạn không thể kiểm tra xem trứng có hỏng không mà không đập vỡ nó.

Năm 1995, Peter Shor đã phát minh ra giải pháp sửa lỗi lượng tử - được coi là một trong những ý tưởng thiên tài nhất thế kỷ 20. Đây là một phép đo gián tiếp, đo "triệu chứng" thay vì đo bệnh. Thay vì hỏi "qubit này là 0 hay 1?" (đập vỡ trứng), ta hỏi "qubit A và qubit B có đồng ý với nhau không?" - câu trả lời không tiết lộ giá trị của chúng, chỉ tiết lộ có lỗi hay không.

Hãy tưởng tượng bạn cần truyền một tin nhắn bí mật qua một căn phòng ồn ào, nhiều người chen lấn. Thay vì thì thầm một lần (dễ bị nghe nhầm), bạn chia tin nhắn ra thành nhiều mảnh, gửi qua nhiều người, và có người kiểm tra chéo xem mảnh nào bị méo. Sửa lỗi lượng tử làm đúng điều đó — nhưng với quy tắc bổ sung: bạn không được hỏi thẳng nội dung mỗi mảnh, chỉ được hỏi "hai mảnh này có khớp nhau không?"


Lỗi qubit dù vô cùng phong phú, nhưng được phân thành 3 loại:

- Lỗi lật bit - bit flip (ví dụ: cực Bắc lật xuống cực Nam)

- Lỗi lật pha - phase flip (tức pha đảo mà vị trí không đổi)

- Lỗi chung - general rotation: xoay bất kỳ, không phải 0 hay 1 mà bất kỳ góc nào.

Điều vi diệu nhất trong sửa lỗi lượng tử là: dù lỗi xoay bất kỳ góc nào, khi đo "triệu chứng", lỗi lập tức bị "rời rạc hóa" thành bit flip hay phase flip, nên đều có thể sửa được.

Ý tưởng nền tảng trong giải pháp của Shor là trải thông tin ra nhiều qubit - không sao chép, mà dùng vướng víu để trải thông tin. Mỗi qubit logic sẽ được mã hóa và sao bằng vướng víu sang nhiều qubit vật lý. Sau đó sẽ đo các qubit vật lý này. Nếu phát hiện qubit lỗi, áp dụng sửa lỗi vào qubit đó.

Giải pháp sửa lỗi của Shor

Có một số phương pháp hiện thực hóa giải pháp của Shor, trong đó Mã bề mặt (Surface code) là giải pháp tốt nhất hiện nay, đang được cả IBM và Google xài. Ý tưởng là dùng Qubit đo (ancilla) liên tục kiểm tra sự tương quan giữa các qubit dữ liệu, từ đó phát hiện lỗi mà không đo trực tiếp.

Surface code mô phỏng bằng lưới qubit vật lý 5x5

Ngưỡng lỗi (error threshold): nếu tỷ lệ lỗi vật lý dưới 1%, thêm 1 qubit sẽ giảm lỗi, tức là sửa lỗi hiệu quả (Google Willow 2024 là máy tính lượng tử đầu tiên đạt được mốc này). Ngược lại, sửa lỗi thất bại, thêm qubit là thêm lỗi.

Rõ ràng bạn đã nhìn ra chi phí sửa lỗi thực tế. Chúng ta cần qubit logic (ổn định, tỷ lệ lỗi cực thấp, coherence time tính bằng giờ/ngày) để chạy thuật toán thật. Nhưng hiện tại, qubit vật lý rất dễ hỏng, tỷ lệ lỗi 0,1-1%, coherence time đang ở µs đến ms. Nên để có 1 qubit logic, cần khoảng 1.000 qubit vật lý.
Hiện tại IBM và Google mới có khoảng hơn 1.000 qubit vật lý.

Các nhà khoa học đưa ra dự báo rằng, để xử lý bài toán tạo thuốc mới (xử lý phân tử), cần 1.000 qubit logic, tức khoảng 1 triệu qubit vật lý. Để phá mã RSA-2048, cần 4.000 qubit logic, tức 4 triệu qubit vật lý.

Google đang hướng tới 1 triệu qubit vật lý vào năm 2029. IBM dự định có 100.000 qubit vật lý sửa lỗi đầy đủ vào năm 2033. Microsoft hay IonQ đang dùng qubit bằng vật liệu khác, chưa chứng minh được kết quả nào đáng tin cậy.

Tóm lại, sửa lỗi là một bài toán cũng "khoai" không kém trong lượng tử. Và thế giới vừa mới bắt đầu làm được điều này (tính từ mốc Google Willow 2024). 


(10) Quantum supremacy vs quantum advance. Thang đo.

Đây là hai từ được xài nhiều, và xài nhầm, đặc biệt trên báo chí. 

Năm 2019, Google giới thiệu máy tính lượng tử Sycamore với tuyên bố đây là Quantum Supremacy gây chấn động thế giới. Sycamore 53 qubit siêu dẫn, giải bài toán lấy mẫu ngẫu nhiên từ mạch lượng tử trong 200 giây. Và Google cho rằng siêu máy tính mạnh nhất thế giới khi đó - Summit của IBM 148,6 petaFLOP/s - ước tính giải bài toán đó trong 10.000 năm. IBM phản bác: nếu dùng đủ bộ nhớ, Summit chỉ cần 2,5 ngày. Vấn đề thực sự ở đây là: bài toán Google chọn là bài toán nhân tạo, không ai cần giải nó. Cho nên Sycamore chỉ chứng minh rằng các qubit có thể làm việc được với nhau về mặt kỹ thuật, chứ chưa chứng minh được máy tính lượng tử đã "đánh bại" siêu máy tính trong công việc thực tế.


Máy tính lượng tử Sycamore (ảnh từ Google)

Năm 2024, Google lại giới thiệu Willow giải được bài toán mà siêu máy tính cần 10 tỷ tỷ tỷ tỷ tỷ năm (10^75 năm, trong khi tuổi vũ trụ là 10^10 năm). Thông tin này lại khiến báo chí thế giới rối loạn. Tuy nhiên, bài toán Willow giải là bài toán gì? Random Circuit Sampling - lại là một bài toán nhân tạo. Lẽ ra, báo chí phải nhấn mạnh vào vấn đề cốt lõi: Willow đã giải được 1 vấn đề kỹ thuật hóc búa then chốt trong lượng tử - sửa lỗi vượt ngưỡng 1%, thêm qubit lỗi giảm, lần đầu chứng minh surface code hoạt động, đây là nền tảng bước đầu mở đường cho fault-tolerant thực sự.

Bài toán nhân tạo là bài toán được con người thiết kế để lượng tử thắng.

Các nhà khoa học đưa ra một thang đo để đánh giá mức độ phát triển của máy tính lượng tử như sau:

Mức 1 - Quantum Supremacy (Vượt trội lượng tử): Máy tính lượng tử làm nhanh hơn máy tính cổ điển, dù bài toán đó KHÔNG CÓ ứng dụng thực tế. Giống như một vận động viên chạy nước rút 100m phá kỷ lục thế giới - nhưng trên đường chạy được thiết kế đặc biệt cho anh ta, không ai khác được dùng đường đó. Ấn tượng? Có. Chứng minh anh ta là người chạy nhanh nhất trong mọi tình huống? Chưa. Sycamore 2019 nằm ở đây.

Mức 2 - Quantum Advance (Lợi thế lượng tử): Máy tính lượng tử làm nhanh hơn cho bài toán CÓ ứng dụng thực tế, nhưng chưa thực dụng hay hữu ích. Willow 2024 nằm ở đây.

Mức 3 - Quantum Utility (Hữu ích lượng tử): Máy tính lượng tử giải được bài toán thực dụng, hữu ích. Đây là khi doanh nghiệp thực sự trả tiền để xài. Máy tính lượng tử đầu tiên đạt được cột mốc này dự đoán sẽ xuất hiện vào năm 2027.

Mức 4 - Fault-Tolerant Quantum Computing (Máy tính lượng tử hoàn chỉnh): Máy tính lượng tử ổn định, có sửa lỗi đầy đủ, chạy được thuật toán Shor/Grove thực sự. Máy tính lượng tử đầu tiên đạt mốc này dự đoán sẽ xuất hiện khoảng năm 2030-2035.

Nhân loại đang ở ranh giới mức 1 và 2, đang bắt đầu chạm tới mức 3.


"Supremacy" nghĩa đen là "thống trị tuyệt đối" - nghe rất to tát. Nhưng bản thân John Preskill, người đặt ra từ này năm 2012, sau đó đề nghị đổi thành "quantum advantage" vì "supremacy" nghe quá hùng hổ và gây hiểu lầm về mức độ thực tế. Hiện nay nhiều nhà khoa học tránh dùng từ supremacy và dùng advantage thay thế.

Bạn cũng có thể thấy từ "NISQ" (Noisy Intermediate-Scale Quantum) hay được dùng trên báo chí Mỹ - cũng là thuật ngữ do John Preskill (Caltech) đặt ra năm 2018 để mô tả giai đoạn chúng ta đang ở. Noisy - nhiễu lớn. Intermediate-Scale là quy mô trung bình, ~1000+ qubit vật lý, đủ để làm gì đó, nhưng chưa đủ để làm gì lớn. Quantum - đã thể hiện được tính chất lượng tử trong một thời gian ngắn.

Những con số so sánh với tuổi vũ trụ hoặc số thiên văn thường là bài toán nhân tạo.

Nếu không thấy tin tức ghi rõ số qubit logic là bao nhiêu, thì con số qubit đưa ra chỉ là qubit vật lý.

Do đó, khi đọc tin tức về lượng tử, chúng ta rất dễ bị choáng. Có rất nhiều "đột phá" được thông cáo báo chí rầm rộ, sau đó phải rút lại (ví dụ: Microsoft, IBM). Cần nắm rõ và luôn hoài nghi để không bị lừa.


(11) Thuật toán lượng tử cơ bản

Đây là phần vô cùng thú vị, và cũng là lý do các chính phủ trên thế giới đang chi hàng tỷ đô la vào lượng tử. Bạn nên tham khảo thêm nếu có thời gian. Ở đây tôi chỉ nói sơ lược để đảm bảo bạn hiểu nó là cái gì.

Tại sao thuật toán lượng tử mạnh hơn thuật toán cổ điển? 

Không phải vì máy tính lượng tử nhanh hơn, mà vì nó giải theo cách hoàn toàn khác.

Với máy tính cổ điển, nó sẽ thử lần lượt từng khả năng: 1, 2, 3, ... N. Giống như có một ổ khóa với 1 triệu chìa. Nó sẽ thử từng chìa một.

Nhưng máy tính lượng tử sẽ kiểm tra tất cả các khả năng cùng một lúc, rồi khuếch đại đáp án đúng. Giống tìm chìa khóa. Nó sẽ thử 1 triệu chìa cùng lúc, rồi sáng lên chìa đúng.


Thuật toán lượng tử dùng kỹ thuật gì để làm được điều đó?

Đó là hai kỹ thuật cốt lõi nhất: giao thoa lượng tử và khuếch đại biên độ. 

Giao thoa lượng tử: các đường sai triệt tiêu nhau, các đường đúng cộng hưởng nhau. Đáp án nổi lên rất tự nhiên.

Khuếch đại biên độ: Xác suất của đáp án đúng sẽ được tăng lên qua từng bước. Cho nên khi đo, hầu như ra ĐÚNG.


Trong phần này, tôi chỉ đề cập đến hai thuật toán cơ bản: Shor và Grover. 

Thuật toán Shor được nhà toán học thiên tài ở MIT là Peter Shor phát minh năm 1994. Nó giải bài toán phân tích số nguyên tố - nền tảng của RSA.

Nhắc qua về thuật toán mã hóa khóa công khai phổ biến nhất thế giới hiện nay - RSA. RSA là viết tắt của chữ cái đầu tên ba nhà khoa học máy tính đã tạo ra nó vào năm 1977 - họ là các giáo sư tại MIT: Ron Rivest, Shamir (Adi Shamir), Adleman (Leonard Adleman). 

Cho số N = p × q.

Tìm p và q là 2 số nguyên tố. 

Bạn cứ xài N công khai cho mật khẩu, ngân hàng, bảo hiểm, an ninh... trong khi giữ bí mật p và q. Ai muốn gửi gì bí mật cho bạn, cứ xài N để mã hóa. Muốn phá được khóa, kẻ gian phải biết p và q để giải mã.

Ví dụ: N = 3.233 → p = 53, q = 61

RSA-256 nghĩa là độ dài của khóa là 256 bit. Mỗi số 128 bit (tức độ lớn của q, p tới 2^128-1 chữ số).

Đa số hiện nay các hệ thống xài RSA-2048 - độ dài khóa 2048 bit. Mỗi số khoảng 1024 bit (tức độ lớn p, q tới 2^1024-1 chữ số).

Máy tính truyền thống muốn phá 1 mã RSA-2048 thì phải mất khoảng ~10⁶¹⁷ phép chia, tức hàng triệu tỷ năm. Quá khó.

Dùng thuật toán Shor, với khoảng 4.000 qubit logic, chỉ mất vài giờ đến vài ngày.

Cách Shor hoạt động (sơ lược): 

- Tạo hàm tuần hoàn từ N

- Dùng QFT tìm chu kỳ hàm (QFT: biến đổi Fourier lượng tử - đây là trái tim của thuật toán Shor).

- Tính GCD từ chu kỳ ra p, q

- Kết quả: N = pxq. Phá được RSA.

Như vậy, nếu có một máy tính lượng tử đủ mạnh thì RSA, hay những thứ như HTTPS, TLS, PGP, ECC, Bitcoin, toàn bộ PKI... đều bị phá hết.


Thuật toán Grover (do Lov Grover ở Bell Labs phát minh ra năm 1996) giải bài toán tìm kiếm trong cơ sở dữ liệu không có thứ tự. 

Tìm kiếm mục X trong N mục không có thứ tự.

Với máy tính truyền thống dùng thuật toán cổ điển: cần trung bình N/2 bước. 1 triệu mục sẽ cần 500.000 bước.

Với thuật toán Grover, cần √N. 1 triệu mục sẽ cần 1.000 bước.

Kỹ thuật khuếch đại biên độ chính là cốt lõi (trái tim) của Grover.

Grover tác động đến bảo mật như thế nào?

Ví dụ, mã AES-128 cần 2^128 bước. Xài Grover, số bước chỉ còn 2^64, giảm đi một nửa.

Cách đơn giản để chống lại thuật toán Grover là tăng độ dài khóa lên gấp đôi.


Tất nhiên, sau khi Shor và Grover công bố thuật toán, thế giới đã có chuẩn bị. Các quốc gia lớn và giới khoa học chạy đua tạo mật mã hậu lượng tử. 

Năm 2024, NIST (Viện Tiêu chuẩn công nghệ quốc gia Mỹ) đã công bố 3 chuẩn mật mã hậu lượng tử có thể đối phó thuật toán Shor và Grover: 

- CRYSTALS-Kyber: trao đổi khóa thay thế RSA/ECC trong HTTPS  ~10⁶¹⁷

- CRYSTALS-Dilithium: chữ ký số, thay thế RSA/ECDSA trong xác thực

- SPHINCS+: chữ ký bằng hash, không dùng lattice.

Tôi sẽ nói những cái này sau.


Máy NISQ hiện tại chạy được mạch khoảng 100–1.000 cổng trước khi lỗi tích lũy làm hỏng kết quả. Thuật toán Shor phá RSA-2048 cần hàng tỷ cổng. Khoảng cách đó - từ nghìn đến tỷ - chính là khoảng cách giữa NISQ và fault-tolerant, và là lý do thế giới chưa cần lo về phá mã ngay hôm nay.

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)