Luận văn gồm có phần mở đầu, kết luận và 04 chương đề cập tới các nội dung chính như sau: Chương 1: Các khái niệm cơ bản nghiên cứu các cơ sở của lý thuyết tính toán lượng tử, các khá
Trang 1TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
PHẠM VIỆT HÙNG
MỘT SỐ PHƯƠNG PHÁP MÃ HÓA LƯỢNG TỬ
VÀ MÔ PHỎNG TRÊN MÁY TÍNH
LUẬN VĂN THẠC SĨ
HÀ NỘI - 2006
Trang 2TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
PHẠM VIỆT HÙNG
MỘT SỐ PHƯƠNG PHÁP MÃ HÓA LƯỢNG TỬ
VÀ MÔ PHỎNG TRÊN MÁY TÍNH
Ngành: Công nghệ thông tin
Mã số: 1.01.10
LUẬN VĂN THẠC SĨ
NGƯỜI HƯỚNG DẪN KHOA HỌC:
PGS.TS Phan Trung Huy
Trang 3MỤC LỤC
LỜI CẢM ƠN 4
Danh mục các từ viết tắt 5
Danh mục các hình vẽ 6
Mở đầu 7
Chương 1 Các khái niệm cơ bản 10
1.1 Ký hiệu Bra-Ket 10
1.2 Nguyên lý cơ bản của cơ học lượng tử 11
1.3 Qubit và thanh ghi lượng tử 13
1.3.1 Khái niệm Qubit 13
1.3.2 Khái niệm thanh ghi lượng tử 14
1.3.3 Phép biến đổi Unita và phép đo 16
1.4 Nguyên lý rối lượng tử (Nguyên lý Entanglement) 17
1.5 Nguyên lý song song lượng tử 18
1.6 Nguyên lý không thể sao chép (No-Cloning Theorem) 18
1.7 Mạch và Cổng logic lượng tử 20
1.7.1 Cổng 1 qubit 21
1.7.2 Cổng 2 qubit 23
1.7.3 Cổng 3 qubit 25
1.7.4 Cổng phổ dụng 26
Chương 2 Một số thuật toán lượng tử 28
Trang 42.1 Thuật toán lượng tử 28
2.2 Thuật toán Deutsch-Jozsa 29
2.3 Biến đổi Fourier lượng tử 34
2.3.1 Phép biến đổi Fourier rời rạc 34
2.3.2 Phép biến đổi Fourier lượng tử 35
2.3.3 Phép biến đổi nhanh Fourier lượng tử 36
2.3.4 Sự thực hiện QFFT bởi các cổng lượng tử 37
2.4 Thuật toán phân tích thừa số nguyên tố của Peter Shor 38
Chương 3 Mã hoá lượng tử 47
3.1 Giao thức phân phối khoá lượng tử BB84 48
3.1.1 Giao thức phân phối khoá lượng tử BB84 trường hợp không nhiễu 48
3.1.2 Giao thức phân phối khoá lượng tử BB84 trường hợp có nhiễu 52
3.1.3 Một số nhược điểm của giao thức phân phối khoá lượng tử BB84 54
3.1.4 Về độ an toàn của giao thức phân phối khoá BB84 55
3.2 Kết luận về mã hoá lượng tử và thám mã lượng tử 58
Chương IV Xây dựng bộ công cụ mô phỏng 59
4.1 Hướng giải quyết 59
4.2 Thư viện cốt lõi cho mô phỏng tính toán lượng tử 62
4.2.1 Một số vấn đề phải giải quyết khi lập trình mô phỏng 62
4.2.2 Xây dựng các lớp cơ bản 63
4.3 Ngôn ngữ Q – Ngôn ngữ lập trình lượng tử 74
Trang 54.3.2 Sơ lược về ngôn ngữ Q 76
KẾT LUẬN 81
TÀI LIỆU THAM KHẢO 83
Tài liệu tiếng Việt 83
Tài liệu tiếng Anh 84
PHỤ LỤC A File Lex/Flex và YACC/Bison của ngôn ngữ Q 89
A1 File q.lex (File định nghĩa phân tích từ vựng) 89
A2 File q.y (File định nghĩa phân tích cú pháp) 96
PHỤ LỤC B Thuật toán Peter Shor viết bằng ngôn ngữ Q 103
B1 File shor.q 103
B2 File tinhtoansonguyen.q 104
B3 File biendoifourier.q 109
PHỤ LỤC C Một số màn hình kết quả chương trình 110
PHỤ LỤC D Thư đồng ý của tác giả Bernhard Ömer 111
Trang 6Danh mục các từ viết tắt
Interface)
Fourier Transform)
Trang 7Danh mục các hình vẽ
Hình 1.1 Biểu diễn cổng NOT 22
Hình 1.2 Biểu diễn cổng Z 22
Hình 1.3 Biểu diễn cổng Hadamard 23
Hình 1.4 Biểu diễn cổng CNOT 24
Hình 1.5 Biểu diễn cổng Swap 24
Hình 1.6 Biểu diễn cổng dịch pha có điểu khiển 25
Hình 1.7 Biểu diễn cổng Toffoli 26
Hình 1.8 Biểu diễn cổng Toffoli 26
Hình 2.1 Sơ đồ mạch của thuật toán Deutch-Jozsa 33
Hình 2.2 Biểu diễn cổng quay một góc 37
Hình 2.3 Phép biến đổi Fourier lƣợng tử 38
Hình 3.1 Sơ đồ của giao thức BB84 49
Hình 4.1 Mô hình xử lý của trình biên dịch Q 75
Hình 4.2 Sơ đồ biểu diễn một thuật toán lƣợng tử đƣợc xử lý trong ngôn ngữ Q 76
Trang 8Mở đầu
Hiện nay, sự kết hợp của vật lý lượng tử và cơ sở toán học hiện đại đã tạo nền móng cho việc xây dựng máy tính lượng tử trong tương lai Theo các dự báo thì máy tính lượng tử sẽ xuất hiện vào khoảng những năm 2010-2020 Isaac L Chuang, người đứng đầu nhóm nghiên cứu của IBM về máy tính lượng tử cũng đã khẳng
định ―Máy tính lượng tử sẽ bắt đầu khi định luật Moore kết thúc – vào khoảng năm
2020, khi mạch được dự báo là đạt đến kích cỡ của nguyên tử và phân tử‖ (nguyên
văn ―Quantum computing begins where Moore's Law ends about the year 2020,
when circuit features are predicted to be the size of atoms and molecules‖ -
Ở Việt Nam hiện nay, các nhà toán học cũng bước đầu có những nghiên cứu
về tính toán lượng tử và mô phỏng tính toán lượng tử trên máy tính thông thường
Ví dụ như nhóm Quantum của trường Đại học Bách Khoa Hà Nội [5] Tuy nhiên vẫn còn nhiều vấn đề để mở, và việc này cần có sự đầu tư thích đáng, tìm tòi, thực nghiệm trên cơ sở những thành tựu về lý thuyết và kinh nghiệm sẵn có trên thế giới, đồng thời áp dụng vào thực tế
Trang 9Mục đích, đối tượng và nội dung của luận văn
Trong khuôn khổ luận văn này, trên những cơ sở những thành tựu đã có trên thế giới và trong nước tôi sẽ trình bày tổng quan các nghiên cứu lý thuyết về tính toán lượng tử, đồng thời xây dựng một bộ công cụ mô phỏng tính toán lượng tử và các thuật toán lượng tử Luận văn gồm có phần mở đầu, kết luận và 04 chương đề cập tới các nội dung chính như sau:
Chương 1: Các khái niệm cơ bản nghiên cứu các cơ sở của lý thuyết
tính toán lượng tử, các khái niệm cơ bản như qubit, thanh ghi lượng tử, cổng và mạch lượng tử cũng như các nguyên lý cơ bản của tính toán lượng tử như nguyên lý song song lượng tử, nguyên lý không thể sao chép…
Chương 2: Một số thuật toán lượng tử nghiên cứu một số thuật toán
lượng tử quan trọng như thuật toán Deutsch-Jozsa (thuật toán lượng tử đầu tiên), biến đổi Fourier lượng tử và quan trọng nhất là thuật toán Peter Shor về tìm chu kỳ của hàm số từ đó dẫn đến bài toán phân tích số ra thừa số nguyên tố Thuật toán Peter Shor cho thấy sức mạnh của tính toán lượng tử so với tính toán hiện nay trên máy tính cổ điển
Chương 3: Mã hoá lượng tử Do có khả năng tính toán bùng nổ theo
cấp luỹ thừa của tính toán lượng tử dẫn đến việc phải nghiên cứu các phương pháp mã hoá mới sử dụng tính toán lượng tử để chống lại khả năng thám mã sử dụng tính toán lượng tử Mục đích của chương này là
đề cập đến một ví dụ về mã hoá lượng tử và thám mã lượng tử đối với một hệ mã lượng tử đơn giản là phân phối khoá lượng tử BB84
Chương 4: Xây dựng bộ công cụ mô phỏng Trên cơ sở các nghiên cứu
lý thuyết về tính toán lượng tử và các thuật toán lượng tử ở trên, phần này trình bày chi tiết về phương pháp xây dựng mô hình mô phỏng tính toán lượng tử trên máy tính cổ điển và xây dựng một trình biên dịch Q
Trang 10dựa trên nền tảng mã nguồn mở có hỗ trợ cú pháp tiếng Việt nhằm mô phỏng các chương trình lượng tử
Ý nghĩa khoa học và thực tiễn của đề tài:
Bảo mật đã, đang và sẽ tiếp tục là một vấn đề sôi động trong lĩnh vực nghiên cứu khoa học cũng như ứng dụng trong thực tế Không chỉ lĩnh vực quan sự mới cần đến bảo mật mà các ứng dụng dân sự cũng cần phải có sự đảm bảo về bảo mật
và an toàn dữ liệu Đặc biệt khi các ứng dụng thương mại điện tử càng ngày càng phát triển như hiện nay thì bảo mật là vấn đề sống còn đối với các ứng dụng đó Các
hệ mã hoá công khai (như RSA) hay bí mật (như AES) và các giao thức chia sẽ bí mật đã là một phần không thể thiếu của các ứng dụng ngày nay
Nhưng khi máy tính lượng tử xuất hiện thì các hệ mã hoá được coi là an toàn
và sử dụng rộng rãi hiện nay như RSA sẽ không còn đảm bảo an toàn Do đó việc nghiên cứu tính toán lượng tử và các hệ mã dựa trên tính toán lượng tử là một vấn
đề cấp thiết nhằm đáp ứng nhu cầu của tương lai gần, khi mà máy tính lượng tử được thương mại hoá Điều này không chỉ đảm bảo cho các ứng dụng dân sự mà còn đảm bảo an toàn cho các ứng dụng quân sự, nơi an toàn dữ liệu được đặt lên hàng đầu
Do đó, việc nghiên cứu tính toán lượng tử rất có ý nghĩa thực tế, là tiền đề xây dựng và ứng dụng tính toán lượng tử, không chỉ trong lĩnh vực bảo mật mà còn
có thể mở rộng ra các lĩnh vực khác Đặc biệt trong bối cảnh ―đi tắt đón đầu‖ của
Việt Nam, việc nghiên cứu tính toán lượng tử góp phần giúp CNTT nước nhà tiếp cận với nền công nghệ cao của thế giới
Trang 11
Chương 1 Các khái niệm cơ bản
1.1 Ký hiệu Bra-Ket
Trong luận văn này, tôi sẽ sử dụng ký hiệu Bra-ket, được đưa ra bởi Paul Dirac (do vậy còn được gọi là ký hiệu Dirac) (tham khảo chi tiết tại [20, 23] hoặc tại địa chỉ http://en.wikipedia.org/wiki/Dirac_notation) Ký hiệu Bra-ket là ký hiệu chuẩn được sử dụng rộng rãi trong vật lý lượng tử, dùng để mô tả trạng thái lượng
tử trong lý thuyết cơ học lượng tử
Trong cơ học lượng tử, trạng thái của một hệ vật lý được mô tả bởi một
vector trong không gian Hilbert phức (sẽ nói rõ hơn ở phần sau), mỗi vector đó được gọi là ket và ký hiệu là (đọc là psi ket)
Ứng với mỗi ket có một bra và ký hiệu là (đọc là psi bra) là ánh xạ tuyến tính liên tục từ không gian Hilbert phức tới không gian số phức được định nghĩa bởi | ( , ) với mọi ket Trong đó ( , ) là tích vô hướng trong không gian Hilbert Trong ngôn ngữ ma trận, bra là ma trận chuyển
vị liên hợp với ket và ngược lại
Ký hiệu | được gọi là tích bra-ket (hay bracket)
Tính chất của bra-ket:
- Tính tuyến tính của bra và ket: với c 1 và c 2 là các số phức, ta có
o c11 c2 2 c1 | 1 c2 | 2
o c1 1 c2 2 c1 1| c2 2|
Trang 12- Cho ket 1 và 2 bất kỳ, c 1 và c 2 là các số phức, từ tính chất của tích vô hướng ta có c11 c2 2 là vector đối ngẫu với
c c trong đó c1* và c2* là các số phức liên hợp với c 1 và c 2
- Cho bra và ket bất kỳ, từ tính chất của tích vô hướng trong không gian Hilbert ta có | | *
1.2 Nguyên lý cơ bản của cơ học lượng tử
Trong cơ học cổ điển (hay cơ học Newton), trạng thái của một hệ n phần tử tại thời điểm t0 được xác định bởi vị trí {x1(t0), x2(t0), …, xn(t0)} và vận tốc của hệ là đạo hàm bậc nhất của các phần tử {x1’(t0), x2’(t0), …, xn’(t0)} Nếu trạng thái khởi đầu được xác định, nhờ các định luật về cơ học cổ điển của Newton, chúng ta có thể
hoàn toàn xác định (ít nhất là về mặt nguyên lý) trạng thái của hệ tại bất cứ thời
điểm t nào
Tuy nhiên, cơ học lượng tử hoàn toàn dựa trên một nền tảng toán học hoàn toàn khác so với cơ học cổ điển Dưới đây, tôi sẽ đề cập đến một số tiên đề cơ sở của cơ học lượng tử
Tiên đề 1 Trạng thái của một hệ vật lý S được mô tả bằng một vector đơn vị
|, được gọi là vector trạng thái hoặc hàm sóng, nằm trong một không gian Hilbert S gắn liền với hệ vật lý
Sự tiến triển theo thời gian của vector trạng thái | của hệ tuân theo phương trình Schrödinger
trong đó H là toán tử tự liên hợp của hệ thống (còn gọi là toán tử Hamiltonian) và ħ là hằng số Planck-Dirac (hay còn gọi là hằng số Planck đơn
Trang 13giản), ħ=h/2π, với h là hằng số Planck Giá trị của h ≈ 6.626x10 -34 J.s (J là Joule
và s là giây) được xác định bằng thực nghiệm
Như ta thấy ở trên, phương trình Schrödinger là phương trình vi phân tuyến
tính bậc nhất Do đó ta có thể áp dụng nguyên lý siêu trạng thái (Superposition
principle): Nếu |1(t) và |2(t) là nghiệm của phương trình Schrödinger, khi đó siêu trạng thái |(t) = α|1(t) + β|2(t) (với α β là số phức) cũng là nghiệm của phương trình Do vậy toán tử phát triển theo thời gian của hệ sẽ là:
|(t) = U (t, t0) |(t0)
và U là toán tử tuyến tính
Theo [3, 11]U sẽ là toán tử Unita Chính vì vậy trong mô hình toán học cho
cơ học lượng tử, chúng ta sẽ sử dụng các phép biến đổi Unita
Tiên đề 2 Trạng thái của một hệ vật lý S được mô tả bằng một vector đơn vị
|, được gọi là vector trạng thái hoặc hàm sóng, nằm trong một không gian Hilbert HS gắn liền với hệ vật lý
Nguyên lý bất định Heisenberg Cho A và B là hai toán tử Hermiltian gắn
liền với các quan sát, A B là hai toán tử không giao hoán và | là hàm sóng gắn liền với trạng thái lượng tử Khi đó bất đẳng thức sau luôn thoả mãn:
Nguyên lý Heisenberg cho ta biết rằng khi đo một trạng thái lượng tử theo
hai đại lượng (như vị trí và vận tốc của hạt cơ bản), ta không thể đo chính xác được
đồng thời cả hai giá trị đó Nguyên lý Heisenberg được ứng dụng trong các hệ phân phối khoá lượng tử như BB84 mà chúng ta sẽ xem xét ở phần sau
Trang 141.3 Qubit và thanh ghi lượng tử
1.3.1 Khái niệm Qubit
Trước hết ta xét cách quan niệm mới về bit - đơn vị thông tin cơ bản trong
mô hình mới này: đó là qubit
Như ta đã biết: 1 bit cổ điển có thể biểu diễn một trong hai trạng thái: 0 hoặc
1 (ở tại một thời điểm xác định) Do đó, n bit có thể biểu diễn 2 n trạng thái khác
nhau Nhưng theo cách quan niệm cổ điển, nếu một thanh ghi được tạo nên từ n bit
cổ điển, tại một thời điểm, nó chỉ có thể biểu đúng một giá trị nguyên trong khoảng
từ 02n 1
Theo quan niệm mới về mô hình tính toán lượng tử dựa trên nền tảng vật lý lượng tử, chúng ta thấy rằng tại một thời điểm một thanh ghi lượng tử có thể chứa được tổ hợp nhiều giá trị
Xét theo mô hình vật lý, qubit là một vi hạt có hai trạng thái, nó có thể là: spin hạt nhân trong phân tử, ion bị bẫy (trapped ions), … Chúng ta quan tâm đến hai trạng thái đặc biệt được ký hiệu là 0 & 1 , được coi là hai trạng thái cơ sở tính toán
Theo mô hình toán học, xét không gian Hilbert 2 ( là trường số phức)
Nó có cơ sở trực giao là (1, 0) và (0, 1), ta ký hiệu tương ứng là 0 & 1 Qubit cơ
sở bao gồm hai dạng 0 hoặc 1 Khi đó, một 1-qubit tổng quát biểu diễn một vector đơn vị trong không gian 2
, trong đó trạng thái 0 ứng với vector (1, 0), còn trạng thái 1 sẽ ứng với vector (0, 1) đồng thời thoả mãn điều kiện chuẩn hoá
về xác suất Như vậy, dạng tổng quát của một 1-qubit là:
Trang 15Đối với qubit có trạng thái tổng quát là 0 1 , chúng ta có thể tiến
hành đo (sẽ nói rõ hơn ở phần sau) trạng thái của qubit Khi đó, theo các nguyên lý
của cơ học lượng tử thì xác suất để nhận được trạng thái 0 là α2, xác suất để nhận được trạng thái 1 là β2, do đó α, β phải thoả mãn điều kiện xác suất α2 + β2 = 1
Như vậy sử dụng 0 & 1 ta có thể biểu diễn trạng thái của một qubit, cũng giống như 0 & 1 biểu diễn trạng thái của bit cổ điển
Để đi đến khái niệm thanh ghi lượng tử (quantum register), người ta mở rộng không gian trạng thái bằng cách sử dụng tích tensor [6,23] của các không gian 2
1.3.2 Khái niệm thanh ghi lượng tử
Định nghĩa: Một thanh ghi lượng tử (quantum register) biểu diễn một vector
trong không gian Hilbert = ( 2) n
n i
i i
Trang 16X có toạ độ trong không gian Hilbert là (c 0, c1, c2, …, cn)
Trạng thái lượng tử được biểu diễn một thanh ghi được gọi là một siêu trạng
thái (Superposition) Ta cũng thấy rằng một quantum register có thể lưu trữ đồng
thời 2n thông tin khác nhau: 02n 1
Tồn tại siêu trạng thái của thanh ghi có thể mô tả bởi:
biến đổi Unita, các phép đo chỉ làm thay đổi trạng thái của hệ thống con mà không làm ảnh hưởng đến các hệ thống còn lại Ví dụ, khi tiến hành đo qubit thứ nhất được giá trị 0 hay 1 thì qubit thứ hai luôn đo được kết quả 0 Có thể so sánh với trạng thái rối lượng tử ở mục sau
Trang 171.3.3 Phép biến đổi Unita và phép đo
Đối với tính toán lượng tử, có 2 loại phép biến đổi cơ bản là phép biến đổi Unita và phép biến đổi không Unita Đối với lớp phép biến đổi không Unita chỉ có phép đo
Các phép biến đổi Unita là các phép biến đổi không mất năng lượng Do vậy các phép biến đổi Unita là các phép biến đổi khả nghịch Về mặt toán học có thể coi
là các ánh xạ trong các không gian Hilbert đẳng cấu
U:'
trong đó và ’ là hai không gian Hilbert có cùng số chiều (ở đây chúng ta chỉ xét đến không gian Hilbert hữu hạn chiều, với các không gian Hilbert vô hạn chiều, sẽ có cách tiếp cận khác không được đề cập đến trong luận văn này)
Còn phép đo là phép biến đổi mất năng lượng, do đó phép đo là phép biến đổi bất khả nghịch Về mặt toán học có thể coi là phép đo là phép ánh xạ về không gian Hilbert có số chiều ít hơn
U:'
trong đó và ’ là hai không gian Hilbert, ’ có số chiều nhỏ hơn Đối với hệ lượng tử, khi áp dụng phép đo thì ta sẽ không thể tiên đoán độ xác định của kết quả (nguyên lý bất định Heisenberg) Kết quả thu được phụ thuộc vào xác suất của các trạng thái được biểu diễn bởi hệ lượng tử Đồng thời theo các nguyên lý của cơ học lượng tử, ngay sau khi đo lập tức hệ lượng tử sẽ sụp đổ về giá trị đo được
Ví dụ: Trong trường hợp tổng quát, một n-qubit X đang ở trạng thái lượng tử:
Trang 18
2 1 0
n i
i i
q sẽ sụp đổ về trạng thái 0
1.4 Nguyên lý rối lượng tử (Nguyên lý Entanglement)
Nguyên lý rối lƣợng tử là một trong những nguyên lý quan trọng của tính toán lƣợng tử Nguyên lý rối lƣợng tử cho phép việc tính toán diễn ra một cách đồng thời trên các thành phần của qubit đầu vào khi nó ở trạng thái rối lƣợng tử
Trang 19Nếu kết quả là1 thì trạng thái qubit còn lại là 1
Suy ra: giữa hai hệ thống con có mối quan hệ nào đó Người ta gọi những
trạng thái như vậy là rối lượng tử hay vướng lượng tử (Quantum Entanglement)
Trạng thái này của hệ 2-qubit không thể phân tích thành tích tensor của hai hệ thống con 1-qubit
1.5 Nguyên lý song song lượng tử
Thanh ghi lượng tử cùng một lúc có thể lưu trữ nhiều trạng thái đơn lẻ khác nhau nhưng có một đặc điểm đáng chú ý là: bất kỳ một phép tác động nào lên một thanh ghi lượng tử thì nó sẽ tác động lên đồng thời toàn bộ các trạng thái mà thanh ghi đó lưu trữ (ta không thể tách rời các trạng thái để thao tác trên chúng một cách riêng lẻ)
đây ta có thể thấy sức mạnh của tính toán lượng tử vì nếu trong tính toán cổ điển để
thực hiện được phép biến đổi trên, chúng ta cần nhân ma trận ma trận C = (c 0, c1, c2,
…, cn ) với ma trận U cỡ 2 n x 2n còn trong tính toán lượng tử, chúng ta chỉ cần một
phép biến đổi Unita (có thể biểu diễn bằng một cổng lượng tử, xem 1.7) Tức là độ
phức tạp có thể giảm theo cấp luỹ thừa
1.6 Nguyên lý không thể sao chép (No-Cloning Theorem)
Trong tính toán cổ điển, có một tính chất của bit cổ điển là chúng ta có thể dễ dàng tạo một bản sao chứa cùng thông tin Tuy nhiên, đối với tính toán lượng tử, trạng thái của qubit tổng quát nói chung không thể sao chép
Định lý: Không thể tạo ra một máy thực hiện các phép biến đổi Unita có khả
năng sao chép hoàn hảo trạng thái của một qubit bất kỳ
Chứng minh:
Trang 20Thực vậy, giả sử ta có đƣợc một máy sao chép hoàn hảo Khi đó xét hệ bao gồm hai qubit (qubit đƣợc sao chép, qubit sao chép) và máy sao chép trạng thái
Qubit đƣợc sao chép ở trạng thái tổng quát:
Khi đó máy sao chép sẽ tác động phép biến đổi Unita U lên hệ:
i f 0 1 0 1 f
trong đó trạng thái cuối cùng của máy sao chép A f sẽ phụ thuộc vào trạng thái của qubit thứ nhất
Chúng ta sẽ chứng minh phép biến đổi Unita trên không thể tồn tại
Thực vậy, nếu trạng thái của qubit thứ nhất là 0 , phép biến đổi Unita U sẽ
Trang 21Ta thấy trạng thái (1.6.4) này khác hoàn toàn so với trạng thái (1.6.1) chúng
ta mong muốn, suy ra điều cần phải chứng minh
Ở đây, định lý này muốn khẳng định không tồn tại một máy sao chép trạng thái bất kỳ, tuy nhiên với một số trạng thái lượng tử đặc biệt như 0 hay 1 thì ta
có thể tạo được máy sao chép
1.7 Mạch và Cổng logic lượng tử
Trong mô hình máy tính cổ điển, các nhà khoa học đã mô hình hoá toán học bằng các mô hình như cổng và mạch logic cổ điển, máy tính Turing Tương tự vậy, trong tính toán lượng tử, các nhà khoa học cũng được xây dựng các mô hình như
mô hình cổng và mạch logic lượng tử, máy tính Turing lượng tử Yao đã chỉ ra rằng với mỗi máy Turing lượng tử, tồn tại mô hình mạch logic lượng tử mô phỏng máy Turing lượng tử đó với thời gian đa thức [14] Do đó chúng ta chỉ cần nghiên cứu một mô hình cổng và mạch logic lượng tử, do mô hình này đơn giản và gần gũi với cách thiết kế máy tính lượng tử Từ đó dẫn đến kết quả tương tự trong mô hình máy Turing lượng tử
Một cách tương tự như máy tính cổ điển, được xây dựng dựa trên các cổng logic cơ bản như AND, OR, NOT, … trong mô hình tính toán lượng tử, chúng ta cũng xây dựng các cổng lượng tử
Do yêu cầu của cơ học lượng tử là các phép biến đổi hệ lượng tử bắt buộc là Unita [3,11] do đó trong mô hình toán học của tính toán lượng tử, chúng ta sử dụng các toán tử Unita
Định nghĩa: Một cổng logic lượng tử qubit được sử dụng để biến đổi
n-qubit được biểu về mặt toán học bởi một phép biến đổi Unita tác động lên
Trang 22vector siêu trạng thái của n-qubit đó Ma trận biến đổi Unita tác động lên n-qubit là ma trận 2 n x2 n
Định nghĩa: Mạch lôgic lượng tử là một tập các cổng lôgic lượng tử liên
kết theo một đồ thị có hướng không chu trình, trong đó đầu ra của cổng này có thể là đầu vào của cổng kia
Dưới đây là một số cổng logic lượng tử cơ bản
Trang 230 12( ,0,0,0)
1 0
Biểu diễn trong mạch:
Hình 1.1 Biểu diễn cổng NOT
Trang 241 11
Biểu diễn trong mạch:
Hình 1.3 Biểu diễn cổng Hadamard
1.7.2 Cổng 2 qubit
i/ Controlled NOT (CNOT)
Cổng CNOT này thực hiện tương tự phép toán XOR trong tính toán cổ điển Thực hiện:
a b
b giữ nguyên nếu a = 0
b đảo bit nếu a = 1
Trang 25Hình 1.4 Biểu diễn cổng CNOT
ii/ Cổng hoán vị hai bit (Cổng Swap)
Ứng dụng cổng CNOT: hoán vị hai bit
Hình 1.5 Biểu diễn cổng Swap
iii/ Cổng dịch pha có điều khiển (Controlled phase shift gate)
Cổng dịch pha có điều khiển là cổng không có cổng tương tự trong tính toán
Biểu diễn trong mạch:
Bit điều khiển Bit đích
Trang 26Hình 1.6 Biểu diễn cổng dịch pha có điểu khiển
Trang 27Hình 1.7 Biểu diễn cổng Toffoli Cổng Toffoli áp dụng cổng Not lên qubit cuối cùng nên ta có thể biểu diễn dưới dạng mạch như sau:
Hình 1.8 Biểu diễn cổng Toffoli Chúng ta có thể sử dụng cổng Toffoli và cổng CNOT để biểu diễn mạch cộng nhị phân có nhớ như sau:
Hình 1.9 Biểu diễn cổng cộng nhị phân có nhớ
1.7.4 Cổng phổ dụng
Trên thực tế, chúng ta muốn xây dựng và sử dụng chỉ một số cổng cơ bản tác
động lên một số lượng nhỏ qubit (độc lập với số lượng n qubit cần xử lý, n có thể
Trang 28rất lớn) nhưng phải đảm bảo yêu cầu có thể tính được một hàm bất kỳ Các cổng đó
được gọi là cổng phổ dụng Trong tính toán cổ điển, ta đã biết được cổng NOT và
AND là cổng phổ dụng Tương tự, trong tính toán lượng tử, chúng ta sẽ định nghĩa
về cổng phổ dụng
Định nghĩa: Một tập cổng lượng tử G được gọi là phổ dụng nếu > 0
và mọi ma trận Unita U tác động trên số bít bất kì, U có thể được xấp xỉ với độ chính xác > 0 bằng một dãy cổng của G Nói cách khác nhóm con tạo nên bởi G là trù mật trong nhóm nhóm các toán tử Unita, n
Tức là U, 0, U' được tạo nên bằng tích các cổng của G sao cho
'
U U
Deutsch là người đầu tiên chỉ ra một cổng lượng tử phổ dụng 3 qubit
Đó là cổng Toffoli dạng tổng quát [34 trang 24,25] Sau đó, Di Vincenzo chỉ
ra những cổng 2 qubit là phổ dụng Cho đến nay, có rất nhiều tập cổng phổ dụng đã được đưa ra Một ví dụ về tập cổng phổ dụng là tập cổng CNOT, Hadamard, các cổng dịch pha [32] Chi tiết về tập cổng phổ dụng có thể xem tại [20,23,31,32]
Trang 29Chương 2 Một số thuật toán lượng tử
2.1 Thuật toán lượng tử
Giải thuật lượng tử về mặt toán học không có sự khác biệt so với khái niệm giải thuật cổ điển Ta có thể xây dựng khái niệm thuật toán lượng tử trên cơ sở mô hình máy Turing lượng tử, tuy nhiên về bản chất, để ngắn gọn, ta có thể chia làm hai dạng của thuật toán lượng tử:
- Thuật toán lượng tử dạng đơn giản: bao gồm một dãy các thao tác Unita, thường kết thúc bằng một phép đo Có thể ví dụ như thuật toán lượng tử Deutsch-Jozsa Trong thuật toán lượng tử dạng đơn giản chỉ
có một phép đo, thông thường là khi kết thúc thuật toán
- Thuật toán lượng tử dạng phức tạp: bao gồm một dãy các thuật toán lượng tử dạng đơn giản đi liền nhau Thuật toán lượng tử dạng phức tạp có thể có nhiều phép đo, đầu vào của bước tiếp theo là kết quả đo của bước trước Có thể ví dụ như thuật toán lượng tử Peter Shor
Điểm khác biệt của thuật toán lượng tử là đã sử dụng những ưu điểm, đặc điểm riêng biệt của máy tính lượng tử Nhờ sự áp dụng đó mà giải thuật lượng tử thật sự đã làm được những việt tưởng như không thể đối với những giải thuật cổ điển Ưu điểm chủ yếu được sử dụng ở đây là tính chất song song của tính toán lượng tử: việc cổng lượng tử tác động lên một siêu trạng thái n-qubit có nghĩa là nó
đã tác động đồng thời lên 2 n trạng thái riêng rẽ Do vậy khi thiết kế các thuật toán lượng tử chúng ta cần tuân thủ nguyên lý song song lượng tử
Công cụ toán học được sử dụng nhiều nhất trong những giải thuật lượng tử hiện nay là phép biển đổi Fourier rời rạc Phép biến đổi Fourier (FT) thực sự đã đưa lại nhiều lợi ích trong lĩnh vực của tính toán lượng tử Để hiểu rõ vai trò của FT trong những giải thuật lượng tử, chúng ta cần xem xét sơ đồ tổng quát của một giải thuật lượng tử dạng đơn giản
Trang 30B1: Xác định trạng thái khởi đầu: S0
B2: Xác định một phép biến đổi Unita U thích hợp sao cho:U S0 S f là một siêu trạng thái lượng tử thoả mãn điều kiện nào đó (tuỳ thuộc vào từng vấn đề
cụ thể)
B3: Thực hiện ―đo‖ Sf để thu được kết quả mong muốn
Việc xác định S0 và U là phụ thuộc vào từng bài toán, từng vấn đề cụ thể Toán tử Unita U chính là chìa khoá của mỗi giải thuật
Trong sơ đồ tổng quát này, vai trò của FT sẽ nằm ở B1 và trong phép biến đổi U nhằm thu được Sf thoả mãn điều kiện nào đó Đối với một thanh ghi trạng thái khởi đầu thường là 0
n
Để tạo ra S0, chúng ta thường dùng FT Phép biến đổi Unita về cơ bản là một phép toán khả đảo, nhưng để đạt được Sf , chúng ta cần áp dụng FT một cách thích hợp Bản chất của FT ở đây là phép chiếu một vector lên một không gian nhiều chiều để thu được Sf mà ở đó hệ số của các toạ độ của Sf
trong không gian đó có một mối tương quan nhất định nào đó Nhờ mối tương quan
đó, sau phép đo Sf ta sẽ thu được những thông tin cần thiết để đưa ra kết luận về lời giải của vấn đề
Để làm sáng tỏ ý trên, chúng ta sẽ cùng đi vào giải thuật lượng tử được coi là đơn giản nhất
2.2 Thuật toán Deutsch-Jozsa
a Bài toán:
Cho N 2 (n n ) và hàm số f : 1, , N 0;1
Như vậy f là hàm lôgic và giả sử rằng chỉ có 2 trường hợp xảy ra:
Trang 31+ Trường hợp ―hằng số‖: tức là: f i 0 i 1, N
+ Trường hợp ―cân bằng‖: tức là: trong tập f (1), , ( ) f N có một nửa là giá trị 1; nửa còn lại là 0
Câu hỏi đặt ra là phân biệt f trong hai trường hợp trên?
b Hướng giải quyết cổ điển:
Với giải thuật thuần tuý, chúng ta cần xác định giá trị của f x( ) tại ít nhất
2
k
N Vậy xác suất để xảy ra lỗi là:
Trang 32C C
Như vậy, giải thuật xác suất có thể giải quyết bài toán tương đối tốt
c Hướng giải quyết dùng lý thuyết tính toán lượng tử:
Dùng giải thuật lượng tử, chúng ta có thể giải quyết bài toán trên chỉ với một vài lệnh (cho mọi giá trị của N)
Giải thuật của Deutch và Jozsa cần dùng 2 thanh ghi lượng tử Thanh ghi thứ
nhất gồm n-qubit lưu trữ các số từ 0 N 1 (có thể coi giả thuyết là
f N ) Thanh ghi thứ hai chỉ gồm 1-qubit lưu giá trị của hàm f
gồm hai giá trị 0,1 Trạng thái ban đầu của thanh ghi thứ nhất n-qubit là 0
n
, trạng thái ban đầu của thanh ghi thứ hai 1-qubit là 1
B1: Trạng thái khởi đầu 1 1 1 1
N
Trang 33Để tạo đƣợc S0 ta tác động phép biến đổi Fourier (FT) (sẽ nói ở mục 2.3) vào
trạng thái nguyên thuỷ 0
0 1 0
0
1 ( )0
i N i
i N
(Do tính chất của tích Tensor: a b a b)
Sau đó áp dụng FT vào thanh ghi thứ nhất
Trang 34B3: Đo thanh ghi thứ nhất: nếu kết quả là 0
n
thì f là ―hằng số‖; ngược lại
f sẽ là ―cân bằng‖
Hình 2.1 Sơ đồ mạch của thuật toán Deutch-Jozsa
Ta sẽ chỉ ra rằng trong trường hợp ngược lại f luôn là ―cân bằng‖: tức là sẽ
( ) 1
0
1 ( 1)
N
f i i
Trang 35+ Qua giải thuật trên, chúng ta có thể thấy được vai trò của FT trong tính toán lượng tử Nhờ tác động của FT, các siêu trạng thái lượng tử được biến đổi qua các trạng thái khác nhau Dựa vào tính chất của FT, ở đây là tính khả đảo, ta sẽ rút
ra được tính chất của hàm f x( )
+ Giải thuật trên đòi hỏi 4 phép biến đổi và 1 phép đo Nó chưa nói lên được sức mạnh của tính toán lượng tử so với tính toán thông thường Tuy nhiên, về mặt lịch sử, giải thuật của Deutch và Jozsa là giải thuật lượng tử đầu tiên Nó đã được khẳng định khả năng ứng dụng thực tế của tính toán lượng tử, mở đường cho sự phát triển sau này
2.3 Biến đổi Fourier lượng tử
Trong các công cụ toán học được áp dụng vào lý thuyết tính toán lượng tử, phép biến đổi Fourier đóng một vai trò quan trọng Khả năng áp dụng phép biến đổi Fourier trên những nhóm có số phần tử cỡ luỹ thừa là một đặc điểm vô cùng thuận lợi và thích hợp trong lý thuyết tính toán lượng tử
2.3.1 Phép biến đổi Fourier rời rạc
Kí hiệu Q là nhóm cộng các số nguyên modulo Q (với Q*)
1ˆ( ) Q iab Q ( )
Trang 36Cho trước một hàm: f : Q
Để tính được ˆf , thực chất ta cần xác định các hệ số 1 2 iab Q/
e Q
( 1)ˆ( 1)
Q
f f
Như vậy khối lượng tính toán sẽ là (Q2) Tuy nhiên trong trường hợp đặc
biệt, Q=2 n , cũng là những trường mà ta chỉ cần quan tâm trong tính toán lượng tử,
chúng ta có giải thuật biến đổi Fourier nhanh Giải thuật này cần khối lượng tính
toán là (Q.log(Q)) Rõ ràng khi Q lớn thì giải thuật này rút ngắn được rất nhiều
thời gian tính Xét về sự phân lớp giải thuật, phép biến đổi Fourier bình thường
cũng như phép biến đổi Fourier nhanh đều thuộc lớp P, là những giải thuật hiệu
quả
2.3.2 Phép biến đổi Fourier lượng tử
Trong lý thuyết về tính toán lượng tử, một hàm số f : Q có thể được
biểu diễn bởi duy nhất một siêu trạng thái:
1 0
Trang 37(Ở đây ta chỉ xét những hàm f thoả mãn
1 2 0
Nhận xét: Trong máy tính lượng tử, một hàm f trên tập Q phần tử như trên
có thể biểu diễn rất gọn trong thanh ghi lượng tử duy nhất với log(Q) qubit
Bây giờ ta hãy xét đánh việc áp dụng phép biến đổi Fourier lượng tử trên một siêu trạng thái tổng quát Để làm được điều này, ta chỉ cần xét trên những trạng thái
cơ bản là đủ vì các trạng thái cơ bản lập nên một cơ sở trong không gian các siêu trạng thái:
Xét trạng thái cơ bản a ; phép biến đổi lượng tử được ký hiệu là QFT:
1
:
Q iab Q
Q a b
2.3.3 Phép biến đổi nhanh Fourier lượng tử
Do Q=2 n nên 0 a 2n1 Do đó a có thể được biểu diễn dưới dạng nhị phân: a a1, , ,2 a n(2); tức là:
Trang 38a=a1.2 m-1 + a2.2 m-2 + + am-1.2 + am với a i 0;1 với mọi i = 0,1, ,n
Khi đó ta sẽ có công thức sau:
2 0, 2 0, 1 2 0, 1 ,
2.3.4 Sự thực hiện QFFT bởi các cổng lượng tử
Để thực hiện QFFT chúng ta chỉ cần hai loại cổng: thứ nhất là cổng
Hadamard trên một qubit (xem 1.7.1) Cổng thứ hai là cổng dịch chuyển pha có điều
khiển tác động trên hai qubit:
Hình 2.2 Biểu diễn cổng quay một góc
Tính chất của hai cổng trên:
Trang 39+ Cổng R k: cổng R k chỉ tác động vào dây thứ hai khi trạng thái dây thứ nhất là 1
lượng tử là thực hiện được phép biến đổi Fourier lượng tử đối với m qubit Đây là
độ phức tạp đa thức nên rất hiệu quả trong cài đặt
2.4 Thuật toán phân tích thừa số nguyên tố của Peter Shor
Hiện nay, thuật toán tốt nhất được công bố về bài toán phân tích số ra thừa số nguyên tố là thuật toán sàng trường số tổng quát (GNFS - General number field sieve) có độ phức tạp tính toán là
(log ) (log )
vào n có log(n) bit thì đây là độ phức tạp hàm mũ Người ta tin rằng bài toán phân
tích số ra thừa số nguyên tố không có thuật toán thời gian đa thức trên máy tính cổ
điển (nhưng chưa có chứng minh) Trong khi đó, thuật toán phân tích của Peter
Trang 40Shor có độ phức tạp tính toán là O(log ) (log log )(log log log )n 2 n n trên máy tính
lượng tử và thời gian xử lý đa thức (cỡ O(log n)) trên máy tính cổ điển [38] Đây là
độ phức tạp đa thức Điều này nói lên được tính ưu việt của tính toán lượng tử so với tính toán cổ điển
Bài toán phân tích một số ra thừa số nguyên tố có thể quy dẫn từ bài toán tìm chu kỳ của hàm ( ) mod x
f x a N trong đó N là số cần phân tích và a<N được chọn
ngẫu nhiên Phép quy dẫn này có thể thực hiện hiệu quả trên máy tính cổ điển
Thuật toán của Peter Shor thực chất là tìm chu kỳ r của hàm f x( ), tức là tìm
n
n x
Hai thanh ghi đó tạo thành trạng thái 2 1
0
1
( )2
n
n x
x f x
Vấn đề tìm bậc của số tự nhiên x theo module n, với x, n là những số cho
trước chính là chìa khoá để phá hệ mã RSA Ta phát biểu lại bài toán như sau:
Bài toán: cho N là số tự nhiên lẻ không là số nguyên tố cũng như không là
luỹ thừa của một số nguyên tố, Y là số tự nhiên bất kì nằm trong khoảng [1; N – 1] Hãy tìm số nguyên dương r nhỏ nhất sao cho: Y r 1 (mod )n
Giải thuật:
Giải thuật của Peter Shor dùng 2 thanh ghi lượng tử: thanh ghi thứ nhất lưu
một số nằm giữa 0 và (Q – 1), trong đó Q là một luỹ thừa của 2, Q = 2 m và thoả
2.
N Q N (việc chọn Q như vậy là đảm bảo tính duy nhất vì khi biểu diễn