1. Trang chủ
  2. » Giáo Dục - Đào Tạo

(LUẬN văn THẠC sĩ) một số phương pháp mã hóa lượng tử và mô phỏng trên máy tính

112 6 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 112
Dung lượng 1,51 MB

Nội dung

ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜ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 TIEU LUAN MOI download : skknchat@gmail.com ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜ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 HÀ NỘI - 2006 TIEU LUAN MOI download : skknchat@gmail.com MỤC LỤC LỜI CẢM ƠN Danh mục từ viết tắt Danh mục hình vẽ Mở đầu Chƣơng Các khái niệm 10 1.1 Ký hiệu Bra-Ket 10 1.2 Nguyên lý học lƣợng tử 11 1.3 Qubit ghi lƣợng tử 13 1.3.1 Khái niệm Qubit 13 1.3.2 Khái niệm ghi lƣợng tử 14 1.3.3 Phép biến đổi Unita 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ý chép (No-Cloning Theorem) 18 1.7 Mạch Cổng logic lƣợng tử 20 1.7.1 Cổng qubit 21 1.7.2 Cổng qubit 23 1.7.3 Cổng qubit 25 1.7.4 Cổng phổ dụng 26 Chƣơng Một số thuật toán lƣợng tử 28 TIEU LUAN MOI download : skknchat@gmail.com 2.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 QFFT cổng lƣợng tử 37 2.4 Thuật tốn phân tích thừa số nguyên tố Peter Shor 38 Chƣơng 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 khố 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 giao thức phân phối khoá lƣợng tử BB84 54 3.1.4 Về độ an toàn giao thức phân phối khoá BB84 55 3.2 Kết luận mã hoá lƣợng tử thám mã lƣợng tử 58 Chƣơng IV Xây dựng công cụ mô 59 4.1 Hƣớng giải 59 4.2 Thƣ viện cốt lõi cho mơ tính tốn lƣợng tử 62 4.2.1 Một số vấn đề phải giải lập trình mơ 62 4.2.2 Xây dựng lớp 63 4.3 Ngôn ngữ Q – Ngơn ngữ lập trình lƣợng tử 74 4.3.1 Cấu trúc chƣơng trình viết ngơn ngữ Q 75 TIEU LUAN MOI download : skknchat@gmail.com 4.3.2 Sơ lƣợc 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 YACC/Bison 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 tốn Peter Shor viết 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ố hình kết chƣơng trình 110 PHỤ LỤC D Thƣ đồng ý tác giả Bernhard Ömer 111 TIEU LUAN MOI download : skknchat@gmail.com Danh mục từ viết tắt Chữ viết tắt Mơ tả B92 Giao thức phân phối khóa lƣợng tử B92 BB84 Giao thức phân phối khóa lƣợng tử BB84 CGI Giao diện cổng lập trình chung (Common Gateway Interface) FFT Phép biến đổi Fourier nhanh (Fast Fourier Transform) FT Phép biến đổi Fourier (Fourier Transform) ISAPI Internet Server Application Programming Interface LALR Look-Ahead LR parsers QFFT Phép biến đổi Fourier nhanh lƣợng tử (Quantum Fast Fourier Transform) qubit Bit lƣợng tử (Quantum bit) qureg Thanh ghi lƣợng tử (Quantum Register) RSA Mã hóa cơng khai RSA STL Thƣ viện khuôn mẫu chuẩn (Standard Template Library) TIEU LUAN MOI download : skknchat@gmail.com Danh mụ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 thuật tốn Deutch-Jozsa 33 Hình 2.2 Biểu diễn cổng quay góc 37 Hình 2.3 Phép biến đổi Fourier lƣợng tử 38 Hình 3.1 Sơ đồ giao thức BB84 49 Hình 4.1 Mơ hình xử lý trình biên dịch Q 75 Hình 4.2 Sơ đồ biểu diễn thuật tốn lƣợng tử đƣợc xử lý ngôn ngữ Q 76 TIEU LUAN MOI download : skknchat@gmail.com Mở đầu Hiện nay, kết hợp vật lý lƣợng tử sở tốn học đại tạo móng cho việc xây dựng máy tính lƣợng tử tƣơng lai Theo dự báo máy tính lƣợng tử xuất vào khoảng năm 2010-2020 Isaac L Chuang, ngƣời đứng đầu nhóm nghiên cứu IBM máy tính lƣợng tử khẳng định ―Máy tính lượng tử bắt đầu định luật Moore kết thúc – vào khoảng năm 2020, mạch dự báo đạt đến kích cỡ nguyên tử 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‖ http://domino.watson.ibm.com/comm/pr.nsf/pages/news.20000815_quantum.html) Với khả xử lý song song tốc độ tính tốn nhanh, mơ hình máy tính lƣợng tử đặt vấn đề lĩnh vực CNTT Vào năm 1994, Peter Shor đƣa thuật tốn phân tích số thừa số ngun tố máy tính lƣợng tử với độ phức tạp thời gian đa thức [45,46,47,48] Nhƣ máy tính lƣợng tử xuất dẫn đến hệ mã đƣợc coi an tồn nhƣ RSA [51] khơng cịn an tồn Điều đặt vấn đề nghiên cứu hệ mật [21,40,43,44,55,58] để đảm bảo an tồn máy tính lƣợng tử xuất Đồng thời, máy tính lƣợng tử xuất phịng thí nghiệm, nhu cầu mơ thuật tốn lƣợng tử máy tính thơng thƣờng tất yếu Ở Việt Nam nay, nhà toán học bƣớc đầu có nghiên cứu tính tốn lƣợng tử mơ tính tốn lƣợng tử máy tính thơng thƣờng Ví dụ nhƣ nhóm Quantum trƣờng Đại học Bách Khoa Hà Nội [5] Tuy nhiên nhiều vấn đề để mở, việc cần có đầu tƣ thích đáng, tìm tịi, thực nghiệm sở thành tựu lý thuyết kinh nghiệm sẵn có giới, đồng thời áp dụng vào thực tế TIEU LUAN MOI download : skknchat@gmail.com Mục đích, đối tượng nội dung luận văn Trong khuôn khổ luận văn này, sở thành tựu có giới nƣớc tơi trình bày tổng quan nghiên cứu lý thuyết tính tốn lƣợng tử, đồng thời xây dựng công cụ mô tính tốn lƣợng tử thuật tốn lƣợng tử Luận văn gồm có phần mở đầu, kết luận 04 chƣơng đề cập tới nội dung nhƣ sau:  Chương 1: Các khái niệm nghiên cứu sở lý thuyết tính tốn lƣợng tử, khái niệm nhƣ qubit, ghi lƣợng tử, cổng mạch lƣợng tử nhƣ ngun lý tính tốn lƣợng tử nhƣ nguyên lý song song lƣợng tử, nguyên lý chép…  Chương 2: Một số thuật toán lượng tử nghiên cứu 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ử quan trọng thuật tốn Peter Shor tìm chu kỳ hàm số từ dẫn đến tốn phân tích số thừa số nguyên tố Thuật toán Peter Shor cho thấy sức mạnh tính tốn lƣợng tử so với tính tốn máy tính cổ điển  Chương 3: Mã hố lượng tử Do có khả tính tốn bùng nổ theo cấp luỹ thừa tính tốn lƣợng tử dẫn đến việc phải nghiên cứu phƣơng pháp mã hố sử dụng tính tốn lƣợng tử để chống lại khả thám mã sử dụng tính tốn lƣợng tử Mục đích chƣơng đề cập đến ví dụ mã hố lƣợng tử thám mã lƣợng tử hệ mã lƣợng tử đơn giản phân phối khoá lƣợng tử BB84  Chương 4: Xây dựng công cụ mô Trên sở nghiên cứu lý thuyết tính tốn lƣợng tử thuật tốn lƣợng tử trên, phần trình bày chi tiết phƣơng pháp xây dựng mơ hình mơ tính tốn lƣợng tử máy tính cổ điển xây dựng trình biên dịch Q TIEU LUAN MOI download : skknchat@gmail.com dựa tảng mã nguồn mở có hỗ trợ cú pháp tiếng Việt nhằm mơ chƣơng trình lƣợng tử Ý nghĩa khoa học thực tiễn đề tài: Bảo mật đã, tiếp tục vấn đề sôi động lĩnh vực nghiên cứu khoa học nhƣ ứng dụng thực tế Không lĩnh vực quan cần đến bảo mật mà ứng dụng dân cần phải có đảm bảo bảo mật an toàn liệu Đặc biệt ứng dụng thƣơng mại điện tử ngày phát triển nhƣ bảo mật vấn đề sống cịn ứng dụng Các hệ mã hố cơng khai (nhƣ RSA) hay bí mật (nhƣ AES) giao thức chia bí mật phần thiếu ứng dụng ngày Nhƣng máy tính lƣợng tử xuất hệ mã hố đƣợc coi an tồn sử dụng rộng rãi nhƣ RSA không cịn đảm bảo an tồn Do việc nghiên cứu tính tốn lƣợng tử hệ mã dựa tính tốn lƣợng tử vấn đề cấp thiết nhằm đáp ứng nhu cầu tƣơng lai gần, mà máy tính lƣợng tử đƣợc thƣơng mại hố Điều không đảm bảo cho ứng dụng dân mà cịn đảm bảo an tồn cho ứng dụng quân sự, nơi an toàn liệu đƣợc đặt lên hàng đầu Do đó, việc nghiên cứu tính tốn lƣợng tử có ý nghĩa thực tế, tiền đề xây dựng ứng dụng tính tốn lƣợng tử, khơng lĩnh vực bảo mật mà cịn mở rộng lĩnh vực khác Đặc biệt bối cảnh ―đi tắt đón đầu‖ Việt Nam, việc nghiên cứu tính tốn lƣợng tử góp phần giúp CNTT nƣớc nhà tiếp cận với công nghệ cao giới TIEU LUAN MOI download : skknchat@gmail.com 97 sDefList* DEFLIST; string* STRING; } %type %type %type %type %type %type %type %type objlist obj eof expr exprlist stmt stmtlist block bodystm arg constdef vardef functdef quopdef procdef qufundef deflist arglist bodydef %token %token %token %token %token %token %token %token %token tokTYPE tokTENSOR tokID 402 tokCONS tokBASEFUNCT tokLISTFUNCT tokINCLUDE tokSET tokIDCALL 408 %token %token %token %token %token %token %token %token %token %token %token %token %token %token %token %token %token %token %token %token %token %token tokCONST tokCOND tokEXTERN tokOP tokPROC tokQUFUN tokFOR tokTO tokWHILE tokUNTIL tokBREAK tokRETURN tokIF tokELSE tokRANGE_LENGTH tokRANGE_END tokSTEP tokINPUT tokPRINT tokEXIT tokMEASURE tokRESET %token tokNEU %token tokTHI 400 401 403 404 405 406 407 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 550 551 TIEU LUAN MOI download : skknchat@gmail.com 98 %token tokNGUOCLAI %token tokBATDAULAP %token tokCHODENKHI 552 553 554 %token %token %token %token %token %token 601 tokDUMP tokINSPECT 602 tokLOAD tokSAVE tokPLOT tokSHELL %token tokEOF %token tokERROR %nonassoc %left %left %left %nonassoc %left %left %left %left %left %left 603 604 605 606 900 901 tokTRANS tokINVTRANS tokSWAP tokOR tokXOR tokAND tokNOT tokEQ tokLEEQ tokGREQ tokNOTEQ '' '+' '-' '&' tokMOD '*' '/' tokNEG '^' '#' %% objlist: obj { $$ = YYNEW(objlist); YYTRY($$->push_back($1)); } | eof { yyObjList = $$ = YYNEW(objlist); YYACCEPT; } | objlist obj { YYTRY($1->push_back($2)); $$=$1; } | objlist eof { yyObjList = $$ = $1; YYACCEPT; } ; eof: tokEOF | ';' eof { $$ = 0; } { $$ = 0; } ; obj: | | | | | | functdef quopdef qufundef procdef vardef constdef stmt { { { { { { $$ $$ $$ $$ $$ $$ = $1; = $1; = $1; = $1; = $1; = $1; { $$ } } } } } } = $1; } TIEU LUAN MOI download : skknchat@gmail.com 99 | block { $$ = $1; } | tokINCLUDE ';'{ $$ = YYNEW(sInclude(*$1)); } | ';' obj { $$ = $2; } ; functdef: tokTYPE tokIDCALL arglist ')' bodydef bodystm { $$ = YYNEW(sFunctDef(tType($1),$2,$3,$5,$6)); } | tokTYPE tokTENSOR tokIDCALL arglist ')' bodydef bodystm $$ = YYNEW(sFunctDef(tType($1,$2),$3,$4,$6,$7)); } ; quopdef: tokOP tokIDCALL arglist ')' bodydef bodystm { $$ = YYNEW(sQuOpDef($2,$3,$5,$6)); } | tokEXTERN tokOP tokIDCALL arglist ')' ';' { $$ = YYNEW(sQuOpDef($3,$4,0,0,0,1)); } | tokCOND tokOP tokIDCALL arglist ')' bodydef bodystm $$ = YYNEW(sQuOpDef($3,$4,$6,$7,1)); } | tokEXTERN tokCOND tokOP tokIDCALL arglist ')' ';' { $$ = YYNEW(sQuOpDef($4,$5,0,0,1,1)); } ; { { qufundef: tokQUFUN tokIDCALL arglist ')' bodydef bodystm { $$ = YYNEW(sQuFunDef($2,$3,$5,$6)); } | tokEXTERN tokQUFUN tokIDCALL arglist ')' ';' { $$ = YYNEW(sQuFunDef($3,$4,0,0,0,1)); } | tokCOND tokQUFUN tokIDCALL arglist ')' bodydef bodystm { $$ = YYNEW(sQuFunDef($3,$4,$6,$7,1)); } | tokEXTERN tokCOND tokQUFUN tokIDCALL arglist ')' ';' { $$ = YYNEW(sQuFunDef($4,$5,0,0,1,1)); } | tokQUFUN tokOP tokIDCALL arglist ')' bodydef bodystm { $$ = YYNEW(sQuFunDef($3,$4,$6,$7)); YYTRY($$->setFlag(flagFUNOP)); } | tokCOND tokQUFUN tokOP tokIDCALL arglist ')' bodydef bodystm { $$ = YYNEW(sQuFunDef($4,$5,$7,$8,1)); YYTRY($$->setFlag(flagFUNOP)); } ; procdef: tokPROC tokIDCALL arglist ')' bodydef bodystm { $$ = YYNEW(sProcDef($2,$3,$5,$6)); } | tokPROC tokIDCALL ')' bodydef bodystm { $$ = YYNEW(sProcDef($2,new sDefList(),$4,$5)); } ; vardef: tokTYPE tokID ';' { $$ = YYNEW(sVarDef(tType($1),$2)); } | tokTYPE tokID '[' expr ']' ';' { $$ YYNEW(sVarDef(tType($1),$2,$4,0)); } | tokTYPE tokTENSOR tokID '[' expr ']' ';' { $$ YYNEW(sVarDef(tType($1,$2),$3,$5,0)); } TIEU LUAN MOI download : skknchat@gmail.com = = 100 | tokTYPE tokID '=' expr ';' { YYNEW(sVarDef(tType($1),$2,0,$4)); } | tokTYPE tokTENSOR tokID '=' expr ';' YYNEW(sVarDef(tType($1,$2),$3,0,$5)); } | tokTYPE tokID '=' tokCOND ';' { $$ = YYNEW(sVarDef(tType($1),$2,0,new tId(CONDID)))); YYTRY($$->setFlag(flagCONDDEF)); } ; $$ { $$ = = sVar(new constdef: tokCONST tokID '=' expr ';' { $$ = YYNEW(sConstDef($2,$4)); }; block: '{' stmtlist '}' { $$ = $2; } | '{' '}' { $$ = YYNEW(sStmtList()); } ; bodydef: '{' deflist { $$ = $2; } | '{' { $$ = YYNEW(sDefList()); } ; bodystm: stmtlist '}' { $$ = $1; } | '}' { $$ = YYNEW(sStmtList()); } ; deflist: vardef { $$ = | constdef { $$ = | deflist vardef { | deflist constdef ; arg: YYNEW(sDefList()); YYTRY($$->append($1)); } YYNEW(sDefList()); YYTRY($$->append($1)); } YYTRY($1->append($2)); $$=$1; } { YYTRY($1->append($2)); $$=$1; } tokTYPE tokID { $$ = YYNEW(sArgDef(tType($1),$2)); } | tokTYPE tokTENSOR tokID { $$ = YYNEW(sArgDef(tType($1,$2),$3)); } ; arglist: arg { $$ = YYNEW(sDefList()); YYTRY($$->append($1)); } | arglist ',' arg { YYTRY($1->append($3)); $$=$1; } ; stmtlist: stmt { $$ = YYNEW(sStmtList()); YYTRY($$->append($1)); } | stmtlist stmt { YYTRY($1->append($2)); $$=$1; } ; stmt: tokIDCALL exprlist ')' ';' { $$ = YYNEW(sCall($1,$2)); } | tokIDCALL ')' ';' { $$ = YYNEW(sCall($1,new sExprList())); } | '!' tokIDCALL exprlist ')' ';' { $$ = YYNEW(sCall($2,$3,1)); } | tokID '=' expr ';' { $$ = YYNEW(sAssign(new sVar($1),$3)); } TIEU LUAN MOI download : skknchat@gmail.com 101 | tokID '[' exprlist ']' '=' expr ';' { $$ = YYNEW(sAssign(new sVar($1),$6,$3)); } | expr tokSWAP expr ';' { $$ = YYNEW(sCall(new tId(SWAPID),new sExprList($1,$3))); } | expr tokTRANS expr ';' { $$ = YYNEW(sCall(new tId(FANOUTID),new sExprList($1,$3))); } | expr tokINVTRANS expr ';' { $$ = YYNEW(sCall(new tId(FANOUTID),new sExprList($1,$3),1)); } | tokFOR tokID '=' expr tokTO expr block { $$ = YYNEW(sFor(new sVar($2),$4,$6,$7)); } | tokFOR tokID '=' expr tokTO expr tokSTEP expr block { $$ = YYNEW(sFor(new sVar($2),$4,$6,$9,$8)); } | tokIF expr block { $$ = YYNEW(sIf($2,$3)); } | tokIF expr block tokELSE block { $$ = YYNEW(sIf($2,$3,$5)); } | tokNEU expr tokTHI block { $$ = YYNEW(sIf($2,$4)); } | tokNEU expr tokTHI block tokNGUOCLAI block { $$ = YYNEW(sIf($2,$4,$6)); } | tokWHILE expr block { $$ = YYNEW(sWhile($2,$3)); } | block tokUNTIL expr ';' { $$ = YYNEW(sUntil($3,$1)); } | tokBATDAULAP block tokCHODENKHI expr ';' { $$ = YYNEW(sUntil($4,$2)); } | tokBREAK ';' { $$ = YYNEW(sBreak()); } | tokRETURN expr ';' { $$ = YYNEW(sReturn($2)); } | tokINPUT tokID ';' { $$ = YYNEW(sInput(new sVar($2),0)); } | tokINPUT expr ',' tokID ';' { $$ = YYNEW(sInput(new sVar($4),$2)); } | tokPRINT ';' { $$ = YYNEW(sPrint(new sExprList())); } | tokPRINT exprlist ';' { $$ = YYNEW(sPrint($2)); } | tokEXIT ';' { $$ = YYNEW(sExit(0)); } | tokEXIT expr ';' { $$ = YYNEW(sExit($2)); } | tokMEASURE expr ';' { $$ = YYNEW(sMeasure($2,0)); } | tokMEASURE expr ',' tokID ';' { $$ = YYNEW(sMeasure($2,new sVar($4))); } | tokRESET ';' { $$ = YYNEW(sReset()); } | tokDUMP ';' { $$ = YYNEW(sDump(0)); } | tokDUMP expr ';' { $$ = YYNEW(sDump($2)); } | tokPLOT ';' { $$ = YYNEW(sPlot()); } | tokPLOT expr ';' { $$ = YYNEW(sPlot($2)); } | tokPLOT expr ',' expr ';' { $$ = YYNEW(sPlot($2,$4)); } | tokINSPECT ';' { $$ = YYNEW(sInspect(0)); } | tokINSPECT exprlist ';' { $$ = YYNEW(sInspect($2)); } | tokLOAD ';' { $$ = YYNEW(sLoad(0)); } | tokLOAD expr ';' { $$ = YYNEW(sLoad($2)); } | tokSAVE ';' { $$ = YYNEW(sSave(0)); } | tokSAVE expr ';' { $$ = YYNEW(sSave($2)); } | tokSHELL ';' { $$ = YYNEW(sShell()); } | tokSET ';' { $$ = YYNEW(sSet(*$1,0)); } | tokSET expr ';' { $$ = YYNEW(sSet(*$1,$2)); } TIEU LUAN MOI download : skknchat@gmail.com 102 ; exprlist: expr { $$ = YYNEW(sExprList()); YYTRY($$->append($1)); } | exprlist ',' expr { YYTRY($1->append($3)); $$=$1; } ; expr: tokCONS { $$ = $1; } | tokID { $$ = YYNEW(sVar($1)); } | tokID '[' exprlist ']' { $$ = YYNEW(sSubscript(new sVar($1),$3)); } | tokID '[' expr tokRANGE_LENGTH expr ']' { $$ = YYNEW(sSubRange(new sVar($1),$3,$5,SUBRANGE_LENGTH)); } | tokID '[' expr tokRANGE_END expr ']' { $$ = YYNEW(sSubRange(new sVar($1),$3,$5,SUBRANGE_END)); } | tokIDCALL exprlist ')' { $$ = YYNEW(sFunctCall($1,$2)); } | '-' expr %prec tokNEG { $$ = YYNEW(sNeg($2)); } | tokNOT expr { $$ = YYNEW(sNot($2)); } | '#' expr { $$ = YYNEW(sLength($2)); } | expr tokOR expr { $$ = YYNEW(sOr($1,$3)); } | expr tokXOR expr { $$ = YYNEW(sXor($1,$3)); } | expr tokAND expr { $$ = YYNEW(sAnd($1,$3)); } | expr tokEQ expr { $$ = YYNEW(sEqual($1,$3)); } | expr tokLEEQ expr { $$ = YYNEW(sLeEq($1,$3)); } | expr tokGREQ expr { $$ = YYNEW(sLeEq($3,$1)); } | expr tokNOTEQ expr { $$ = YYNEW(sNotEq($1,$3)); } | expr '' expr { $$ = YYNEW(sLess($3,$1)); } | expr '+' expr { $$ = YYNEW(sAdd($1,$3)); } | expr '-' expr { $$ = YYNEW(sSub($1,$3)); } | expr '&' expr { $$ = YYNEW(sConcat($1,$3)); } | expr tokMOD expr { $$ = YYNEW(sMod($1,$3)); } | expr '*' expr { $$ = YYNEW(sMult($1,$3)); } | expr '/' expr { $$ = YYNEW(sDiv($1,$3)); } | expr '^' expr { $$ = YYNEW(sPow($1,$3)); } | '(' expr ')' { $$ = $2; } | tokBASEFUNCT expr ')' { $$ = YYNEW(sBaseFunct($1,$2)); } | tokLISTFUNCT exprlist ')' { $$ = YYNEW(sListFunct($1,$2)); } | tokLISTFUNCT ')' { $$ = YYNEW(sListFunct($1,new sExprList())); } ; TIEU LUAN MOI download : skknchat@gmail.com 103 PHỤ LỤC B Thuật toán Peter Shor viết ngôn ngữ Q B1 File shor.q thu vien ngoai "tinhtoansonguyen.q"; thu vien ngoai "biendoifourier.q"; thu tuc petershor(songuyen number) { songuyen width=ceil(log(number,2)); thanhghiluongtu thanhghi1[2*width]; thanhghiluongtu thanhghi2[width]; songuyen qmax=2^width; songuyen factor; songuyen m; sothuc c; songuyen x; songuyen p; songuyen q; songuyen a; songuyen b; songuyen e; // size of number in bits // first register // second register // e=x^(q/2) mod number neu number mod == thi { hienthi "so phai la so le"; thoat; } neu kiemtranguyento(number) thi { hienthi "So nhan vao la so nguyen to"; thoat; } neu kiemtraluythuanguyento(number) thi { hienthi "So nhan vao la luy thua cua so nguyen"; thoat;}; bat dau lap { bat dau lap { x=floor(random()*(number-3))+2; } cho den gcd(x,number)==1; hien thi "chon ngau nhien x =",x; H(thanhghi1); expn(x,number,thanhghi1,thanhghi2); ghi thanhghi2; dft(thanhghi1); ghi thanhghi1,m; lam sach; neu m==0 thi { hien thi "Do duoc gia tri tai ghi thu nhat Thu lai "; } nguoc lai { c=m*0.5^(2*width); q=timphanso(c,qmax); p=floor(q*c+0.5); hien thi "Do duoc tai bit thu", m,"voi xac suat", c,", xap xi cua ",c,"la",p,"/",q; TIEU LUAN MOI download : skknchat@gmail.com 104 neu q mod 2==1 va 2*q1 va factor1 thi { CNot(sum[1],sum[0] & s & e); } CNot(sum[0],s & e); neu a0 thi { Not(s); } } nguoc lai { neu a0 va a1 thi { neu #sum>1 thi { CNot(sum[1],sum[0] & e); } CNot(sum[0],e); } }; neu #sum>1 thi { CNot(sum[1],b & sum[0]); } CNot(sum[0],b); // a0 and a1 dneufer? // write a into sect qubit // set carry neu available // add a // restore sect qubit // set carry neu available // add a // Add qubit b // set carry neu available // add b } // conditional multiplexed binary adder for one of integers // and thanhghiluongtu No output carry cond qufunct muxadd(int a0,int a1,hangsoluongtu sel,hangsoluongtu b,quvoid sum) { int i; lap i=0 toi #b-2 { // fulladd first #b-1 bits muxaddbit(bit(a0,i),bit(a1,i),sel,b[i],sum[i:i+1]); } // half add last bit muxaddbit(bit(a0,#b-1),bit(a1,#b-1),sel,b[#b-1],sum[#b-1]); } // Comparison operator flag is toggled neu bMSB(b) disable further comparison neu MSB(a)b[i] neu still undecided (j[0]=1) result is LSB(a)>LSB(b) } // conditional addition mod n for integer and thanhghiluongtu // flag is set neu a+b (a+sum) mod n cond qufunct oaddn(int a,int n,thanhghiluongtu sum) { thanhghiluongtu j[#sum]; thanhghiluongtu f[1]; hangsoluongtu e=cond; // explicit enable register TIEU LUAN MOI download : skknchat@gmail.com 107 neu e thi { addn(a,n,sum,f,j); } // junk -> a+b mod n Swap(sum,j); // swap junk and sum CNot(f,e); // toggle flag neu e thi { !addn(n-a,n,sum,f,j); } // uncompute b to zero } // Conditional Multiplication thanhghiluongtu b, // prod ab mod n cond qufunct omuln(int a,int n,thanhghiluongtu b) { thanhghiluongtu j[#b]; neu gcd(a,n)>1thi { thoat "omuln: a and n have to be relativly prime"; } muln(a,n,b,j); !muln(invmod(a,n),n,j,b); cxor(j,b); cxor(b,j); } // Modular exponentiation: b -> x^a mod n cond qufunct expn(int a,int n,hangsoluongtu b,quvoid ex) { int i; Not(ex[0]); lap i=0 toi #b-1 { neu b[i] thi { omuln(powmod(a,2^i,n),n,ex); } } // start with // ex -> ex*a^2^i mod n } TIEU LUAN MOI download : skknchat@gmail.com 108 set library 0; TIEU LUAN MOI download : skknchat@gmail.com 109 B3 File biendoifourier.q set library 1; // pseudo classic operator to swap bit order cond qufunct flip(qureg q) { songuyen i; // declare loop counter lap i=0 toi #q/2-1 { // swap symmetric bits Swap(q[i],q[#q-i-1]); } } // discrete Fourier transform (Coppersmith) operator dft(thanhghiluongtu q) { // main operator hangso n=#q; // set n to length of input songuyen i; songuyen j; // declare loop counters lap i=1 toi n { lap j=1 toi i-1 { // apply conditional phase gates V(pi/2^(i-j),q[n-i] & q[n-j]); } H(q[n-i]); // qubit rotation } flip(q); // swap bit order of the output } set library 0; TIEU LUAN MOI download : skknchat@gmail.com 110 PHỤ LỤC C Một số hình kết chương trình Kết chạy thuật tốn Peter Shor phân tích số 15: Kết chạy thuật tốn Peter Shor phân tích số 21: TIEU LUAN MOI download : skknchat@gmail.com 111 PHỤ LỤC D Thư đồng ý tác giả Bernhard Ömer From: Bernhard Oemer [mailto:bernhard.oemer@arcs.ac.at] Sent: Mon 12/4/2006 4:17 PM To: Pham Viet Hung Subject: Re: Licence of QCL On Mon, 2006-12-04 at 10:24 +0700, Pham Viet Hung wrote: > I'm Pham Viet Hung, come from Vietnamese > Now I a master thesis in Computer Science about Quantum Computation > and simulate in Quantum Computer > I download your program and see that your program (QCL) is free > software under the terms of the GNU General Public Licence (GPL) > version or higher > So can I use your program in my thesis? > Another, I already port your program to Windows, change program to > allow coding (programming) in Vietnamese language Can I use my > porting in my thesis as example for simulating program? Sure you can! Remember, however, that the GPL requires, among other things, that - all derived work (such as ports, extentions, etc.) also has to be covered by the GPL [ie enclose the COPYING file with all distributions of the derived code] - you must not claim authorship over the original code [i.e leave the original copyright notices in place] But this should not be a problem For usage in an academic work, such as your thesis, you will also have to give proper references, e.g Bernhard Oemer "A Procedural Formalism for Quantum Computing", master thesis technical physics, TU Vienna, 1998, URL: http://tph.tuwien.ac.at/~oemer/qcl.html Bernhard Oemer."Structured Quantum Programming", PhD thesis, TU Vienna, 2003, URL: http://tph.tuwien.ac.at/~oemer/qcl.html cu Bernhard Ömer TIEU LUAN MOI download : skknchat@gmail.com ... TRƯỜ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... tích số thừa số nguyên tố Thuật toán Peter Shor cho thấy sức mạnh tính tốn lƣợng tử so với tính tốn máy tính cổ điển  Chương 3: Mã hố lượng tử Do có khả tính tốn bùng nổ theo cấp luỹ thừa tính. .. lƣợng tử dẫn đến việc phải nghiên cứu phƣơng pháp mã hố sử dụng tính tốn lƣợng tử để chống lại khả thám mã sử dụng tính tốn lƣợng tử Mục đích chƣơng đề cập đến ví dụ mã hố lƣợng tử thám mã lƣợng tử

Ngày đăng: 27/06/2022, 09:15

HÌNH ẢNH LIÊN QUAN

Hình 1.1. Biểu diễn cổng NOT - (LUẬN văn THẠC sĩ) một số phương pháp mã hóa lượng tử và mô phỏng trên máy tính
Hình 1.1. Biểu diễn cổng NOT (Trang 23)
Hình 1.3. Biểu diễn cổng Hadamard - (LUẬN văn THẠC sĩ) một số phương pháp mã hóa lượng tử và mô phỏng trên máy tính
Hình 1.3. Biểu diễn cổng Hadamard (Trang 24)
Hình 1.4. Biểu diễn cổng CNOT - (LUẬN văn THẠC sĩ) một số phương pháp mã hóa lượng tử và mô phỏng trên máy tính
Hình 1.4. Biểu diễn cổng CNOT (Trang 25)
Hình 1.6. Biểu diễn cổng dịch pha có điểu khiển - (LUẬN văn THẠC sĩ) một số phương pháp mã hóa lượng tử và mô phỏng trên máy tính
Hình 1.6. Biểu diễn cổng dịch pha có điểu khiển (Trang 26)
Hình 1.8. Biểu diễn cổng Toffoli - (LUẬN văn THẠC sĩ) một số phương pháp mã hóa lượng tử và mô phỏng trên máy tính
Hình 1.8. Biểu diễn cổng Toffoli (Trang 27)
Hình 1.7. Biểu diễn cổng Toffoli - (LUẬN văn THẠC sĩ) một số phương pháp mã hóa lượng tử và mô phỏng trên máy tính
Hình 1.7. Biểu diễn cổng Toffoli (Trang 27)
Hình 2.1. Sơ đồ mạch của thuật toán Deutch-Jozsa - (LUẬN văn THẠC sĩ) một số phương pháp mã hóa lượng tử và mô phỏng trên máy tính
Hình 2.1. Sơ đồ mạch của thuật toán Deutch-Jozsa (Trang 34)
Hình 2.2. Biểu diễn cổng quay một góc - (LUẬN văn THẠC sĩ) một số phương pháp mã hóa lượng tử và mô phỏng trên máy tính
Hình 2.2. Biểu diễn cổng quay một góc (Trang 38)
Hình 2.3. Phép biến đổi Fourier lƣợng tử - (LUẬN văn THẠC sĩ) một số phương pháp mã hóa lượng tử và mô phỏng trên máy tính
Hình 2.3. Phép biến đổi Fourier lƣợng tử (Trang 39)
Trong trƣờng hợp của hình 2.4, các vector có xu hƣớng triệt tiêu lẫn nhau, chính  vì  vậy  khi  lấy  tổng  chúng  sẽ  làm  giảm  biên  độ  củaK  - (LUẬN văn THẠC sĩ) một số phương pháp mã hóa lượng tử và mô phỏng trên máy tính
rong trƣờng hợp của hình 2.4, các vector có xu hƣớng triệt tiêu lẫn nhau, chính vì vậy khi lấy tổng chúng sẽ làm giảm biên độ củaK (Trang 44)
Trong trƣờng hợp của hình 2.3, các vector có xu hƣớng tăng cƣờng lẫn nhau. Do đó nó sẽ làm cho biên độ của K  tăng lên rất nhiều - (LUẬN văn THẠC sĩ) một số phương pháp mã hóa lượng tử và mô phỏng trên máy tính
rong trƣờng hợp của hình 2.3, các vector có xu hƣớng tăng cƣờng lẫn nhau. Do đó nó sẽ làm cho biên độ của K tăng lên rất nhiều (Trang 44)
Hình 3.1. Sơ đồ của giao thức BB84 Ta sẽ xem xét từng giai đoạn.  - (LUẬN văn THẠC sĩ) một số phương pháp mã hóa lượng tử và mô phỏng trên máy tính
Hình 3.1. Sơ đồ của giao thức BB84 Ta sẽ xem xét từng giai đoạn. (Trang 50)
Bảng chữ Bob chọn z - (LUẬN văn THẠC sĩ) một số phương pháp mã hóa lượng tử và mô phỏng trên máy tính
Bảng ch ữ Bob chọn z (Trang 53)
Ta xây dựng bảng tham chiếu sau: - (LUẬN văn THẠC sĩ) một số phương pháp mã hóa lượng tử và mô phỏng trên máy tính
a xây dựng bảng tham chiếu sau: (Trang 58)
Dựa vào bảng tham chiếu trên, ta xây dựng hàm đơn trị Sk =f ( jk ), k= 1, 2, 3, 4,  j k là một trong bốn trạng thái sử dụng trong BB84 - (LUẬN văn THẠC sĩ) một số phương pháp mã hóa lượng tử và mô phỏng trên máy tính
a vào bảng tham chiếu trên, ta xây dựng hàm đơn trị Sk =f ( jk ), k= 1, 2, 3, 4, j k là một trong bốn trạng thái sử dụng trong BB84 (Trang 58)
Hình 4.1. Mô hình xử lý của trình biên dịch Q - (LUẬN văn THẠC sĩ) một số phương pháp mã hóa lượng tử và mô phỏng trên máy tính
Hình 4.1. Mô hình xử lý của trình biên dịch Q (Trang 76)
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 - (LUẬN văn THẠC sĩ) một số phương pháp mã hóa lượng tử và mô phỏng trên máy tính
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 (Trang 77)
PHỤ LỤC C. Một số màn hình kết quả chương trình - (LUẬN văn THẠC sĩ) một số phương pháp mã hóa lượng tử và mô phỏng trên máy tính
t số màn hình kết quả chương trình (Trang 111)
PHỤ LỤC C. Một số màn hình kết quả chương trình - (LUẬN văn THẠC sĩ) một số phương pháp mã hóa lượng tử và mô phỏng trên máy tính
t số màn hình kết quả chương trình (Trang 111)

TRÍCH ĐOẠN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w