Phân tích cơ chế bảo mật RSA đa số nguyên tố ( RSA CRT ) và cài đặt thuật toán RSA CRT trên FPGA

11 703 1
Phân tích cơ chế bảo mật RSA đa số nguyên tố ( RSA CRT ) và cài đặt thuật toán RSA CRT trên FPGA

Đ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

Đề cương luận văn - Phạm Xuân Khánh – 01405310 GVHD : PGS.TS Lê Tiến Thường _________________________________________________________________________________________ ĐỀ CƯƠNG LUẬN VĂN Giáo viên hướng dẫn: PGS.TS Lê Tiến Thường Học viên: Phạm Xuân Khánh, MSHV: 01405310 Tên đề tài: Phân tích cơ chế bảo mật RSA đa số nguyên tố ( RSA CRT ) và cài đặt thuật toán RSA CRT trên FPGA MULTI-PRIME RSA CRYPTOSYSTEM AND ITS FPGA IMPLEMENTATION MỤC LỤC 1. Giới thiệu Thuật toán RSA được đề nghị bởi 3 nhà toán học Rivest , Shamir và Adleman, là một trong những cơ chế bảo mật được sử dụng rộng rãi nhất, đặc biệt trong hạ tầng khoá công cộng PKI (Public Key Infrastructure). Quá trình mã hoá/giải mã của cơ chế bảo mật RSA dựa trên phép toán modulo mũ số nguyên rất lớn. Để có thể đẩy nhanh tốc độ giải mã của cơ chế RSA, cơ chế RSA đa số nguyên tố (RSA CRT Chinese Remainder Theorem) thường được áp dụng để thay thế cơ chế RSA thông thường với các tính toán song song modulo mũ số nhỏ hơn. Và đặc trưng nhất cho cơ chế RSA CRT là trường hợp 2 số nguyên tố. Hoạt động CRT đối với cơ chế RSA 2 số nguyên tố đơn giản hơn rất nhiều so với trường hợp nhiều số nguyên tố. Vì thế việc nghiên cứu cơ chế RSA 2 số nguyên tố rất quan trọng và được sử dụng rất nhiều trong thực tế. Trước đây đã có một số đề tài thực hiện mã hoá/giải mã RSA thông thường trên kit FPGA [4]. Trong đề tài này tiếp tục mở rộng module giải mã RSA theo phương pháp CRT (2 số nguyên tố và có thể phát triển lên nhiều số nguyên tố nếu thời gian cho phép) và thực hiện module phát sinh cặp khoá public/private key ngay trên kit VirtexII Pro. Thông qua kết quả mô phỏng chúng ta có thể rút ra một số _________________________________________________________________________________________ - 1 - Đề cương luận văn - Phạm Xuân Khánh – 01405310 GVHD : PGS.TS Lê Tiến Thường _________________________________________________________________________________________ kết luận về ưu điểm của phương phát giải mã RSA CRT so với phương pháp RSA thông thường. 2. Cơ sở toán học về cơ chế RSA và RSA CRT [6] Cơ chế bảo mật RSA bao gồm có 3 khối cơ bản như sau : • Phát sinh cặp khoá public/private key  Phát sinh hai số nguyên tố lớn p và q, với độ dài xấp xỉ bằng nhau và tích n = p*q có chiều dài tính theo bit phải là một số cố định cho trước, chẳng hạn là 1024 bit  Tính toán n = p*q và phi = (p - 1)*(q - 1)  Chọn một số nguyên e, 1<e<phi, sao cho USCLN(e,phi)= 1  Tìm thông số d,1<d<phi, sao cho (e*d)mod phi = 1  Ta có public key là (n,e) và private key (n,d). Các giá trị n, p, q là những thông số bí mật • Mã hoá / giải mã  Mã hoá  Giả sử bên gửi A sử dụng public key của bên nhận B  Bên gửi A muốn gửi một bản tin được đặc trưng bởi số nguyên m  Tính toán chuỗi mã hoá nmc e mod =  Gửi bản tin mã hoá c cho bên nhận B  Giải mã  Bên nhận B sử dụng private key (n,d) để tính toán ncm d mod =  Bên nhận B sẽ thu được bản tin gốc m • Ký điện tử / Kiểm tra chữ ký điện tử _________________________________________________________________________________________ - 2 - Đề cương luận văn - Phạm Xuân Khánh – 01405310 GVHD : PGS.TS Lê Tiến Thường _________________________________________________________________________________________  Ký điện tử  Bên gửi A tạo ra một bản tin digest được đặc trưng bởi số nguyên m, 0<m< n – 1  Sử dụng private key (n,d) để ký được kết quả nms e mod =  Sử chữ ký s qua cho bên nhận B  Kiểm tra chữ ký điện tử  Bên nhận B sử dụng public key (n,e) để tính toán số nguyên nsv e mod =  Bên B thu được bản tin digest từ số nguyên v  Tính toán độc lập bản tin digest mà bên gửi đã ký  Nếu hai bản tin digest này giống nhau thì chữ ký hợp lệ Để giải quyết bài toán nxy e mod = ta phân tích e thành chuỗi số nhị phân như sau 0121 eeeee kk −− = Và ta có các bước tính toán sau : y = x for bit j = k – 2 downto 0 begin y = y * y mod n if 1 == j e then y = y * x mod n end return y Thời gian tính toán biểu thức này tỷ lệ thuận với số bit 1 trong số e. Trong quá trình mã hoá, để giảm khối lượng tính toán chúng ta thường chọn e = 3 (0b11), 17 (0x11) hoặc 65537 (0x10001). Như ta thấy , số bit 1 trong số nguyên e chỉ là 2 nên số lượng tính toán trong quá trình mã hoá rất ít. Tuy nhiên, với thông số d, số bit 1 trong thông số này rất lớn làm cản trở cho việc tính toán biểu thức trên nếu theo phương pháp bình thường. Để giảm khối lượng tính toán, có một phương _________________________________________________________________________________________ - 3 - Đề cương luận văn - Phạm Xuân Khánh – 01405310 GVHD : PGS.TS Lê Tiến Thường _________________________________________________________________________________________ pháp thay thế hoàn hảo là sử dụng đặc trưng mới cho private key theo phương pháp CRT (Chinese Remainder Theorem) . • RSA CRT public key [2] RSA CRT public key bao gồm 2 thông số, đó là modulus n và public exponent e. Thông số modulus n là tích của u số nguyên tố i r , i = 1 , … , u với 2 ≥ u ., và thông số public exponent e là môt số nguyên có giá trị nằm giữa 3 và n – 1 thoả mãn USCLN(e, ( ) n λ ) = 1 với ( ) )1, ,1( 1 −−= u rrBSCNNn λ , với hai số nguyên tố đầu tiên 1 r và 2 r lần lượt là p và q. • RSA CRT private key [2] Private key không còn là (n,d) mà bao gồm một quintuple (p,q,dP, dQ,qInv) và một (hoặc là không có) chuỗi các triple ( ) iii tdr ,, , I = 3 , … , u. Thông số modulus n trong private key là tích của u số nguyên tố i r , i = 1 , … , u với 2 ≥ u . Thông số d là một số nguyên dương nhỏ hơn n thỏa mãn 1)(mod)*( = nde λ . Các thành phần dP và dQ là những số nguyên dương nhỏ hơn p và q thoả mãn: 1)1mod()*( =− pdPe 1)1mod()*( =− qdQe và thông số qInv là số nguyên dương nhỏ hơn p thoả mãn: 1mod)*( = pqInvq Nếu u > 2, thì chúng ta sẽ biểu diễn thêm các thành phần triple ( ) iii tdr ,, , i = 3, … , u. Thông số i r là thành phần nhân trong tích tạo ra modulus n . Mỗi exponent i d ( i = 3, … , u ) thoả mãn: 1)1mod()*( =− ii rde Mỗi thông số i t ( I = 3 , … , u ) là một số nguyên dương nhỏ hơn i r thoả mãn : 1mod)*( = iii rtR _________________________________________________________________________________________ - 4 - Đề cương luận văn - Phạm Xuân Khánh – 01405310 GVHD : PGS.TS Lê Tiến Thường _________________________________________________________________________________________ với 121 − = ii rrrR • Mã hoá Tính toán tương tự như quá trình mã hoá trong cơ chế bảo mật RSA thông thường • Giải mã  Tính pcm dP mod 1 = và qcm dQ mod 2 =  Nếu u > 2, tính r d i rcm i mod = , I = 3 , … , u  Tính pqInvmmh mod)( 21 −=  Tính qhmm += 2  Nếu u > 2, đặt 1 rR = và for I = 3 to u do  Tính 1 − = i RrR  Tính iii rtmmh mod)( −=  Tính hmm R 2 += 3. Nội dung luận văn Thông qua một số nghiên cứu về thuật toán RSA , đặc biệt là của phòng nghiên cứu RSA với website www.rsasecurity.com, nội dung luận văn tập trung nghiên cứu một số phương pháp mã hoá/giải mã RSA (nhấn mạnh quá trình quá trình giải mã). Các module của cơ chế bảo mật RSA sẽ được cài đặt trên FPGA. Đối với phương pháp giải mã RSA CRT, trước mắt đề tài chỉ thực hiện cài đặt cơ chế 2 số nguyên tố, nếu thời gian cho phép có thể phát triển đề tài lên thành cài đặt cơ chế giải mã nhiều số nguyên tố. Ngoài ra, đề tài phải thực hiện việc hoàn thành một software trên PC (có thể viết bằng Visual C#/Java ) đóng vài trò giao tiếp dữ liệu với kit FPGA. • Cài đặt cơ chế bảo mật trên FPGA Trong đề tài này, chúng ta sẽ cài đặt thuật toán RSA 1024/2048 bit vào FPGA. Trong đó thực hiện hai module phát sinh cặp khóa public/private và module mã hóa/giải mã trên cặp khóa phát sinh đó. Đối với module giải mã, chúng ta sẽ cài đặt hai phương pháp RSA và RSA CRT để có thể thấy rõ được ưu điểm của phương pháp RSA CRT. Cơ sở toán học cho việc phát sinh cặp khoá public/private key là các hàm USCLN, hàm kiểm tra số nguyên tố và hàm phát sinh số ngẫu nhiên _________________________________________________________________________________________ - 5 - Đề cương luận văn - Phạm Xuân Khánh – 01405310 GVHD : PGS.TS Lê Tiến Thường _________________________________________________________________________________________  Hàm kiểm tra số nguyên tố là một phần rất quan trọng trong quá trình phát sinh cặp khoá RSA, chúng ta sử dụng định luật Fermat phát biểu rằng “n là số nguyên tố nếu 1mod 1 = − na n ”. Giải thuật Miller-Rabin kiểm tra số nguyên tố như sau : TestPrime(n) Tìm 2 số nguyên k và q với k > 0 , q lẻ để qn k 21 =− Chọn một số nguyên ngẫu nhiên a , 1 < a < n-1 if 1mod 1 = − na n or n-1 then return “không phải số nguyên tố” end if for j=1 to k-1 if 1mod 2 −= nna j q then return “không phải số nguyên tố” end if end for return “đây là số nguyên tố”  Chúng ta sẽ xây dựng hàm USCLN dựa trên giải thuật Euclidean mở rộng hoặc Euclidean đơn giản mở rộng như sau : EE_USCLN(m.b) ( A1 , A2 , A3 ) <= ( 1, 0, m ) ; ( B1 , B2 , B3 ) <= ( 0 , 1 , b ) ; Loop : if B3=0 then return A3 = EE_USCLN(m.b) end if if B3=1 then return B3 = EE_USCLN(m.b);B2 = mb mod 1 − end if       <= 3 3 B A Q ( ) ( ) 3*3,2*2,1*13,2,1 BQABQABQATTT −−−<= ( ) ( ) 3,2,13,2,1 BBBAAA <= ( ) ( ) 3,2,13,2,1 TTTBBB <= goto loop SEE_USCLN(m.b) start : ( A2 , A3 ) <= ( 0, m ) ; ( B2 , B3 ) <= (1 , b ) ; Loop : if B3=0 then b<=fetch_new_b goto start end if if B3=1 then return(B2,B3) end if       <= 3 3 B A Q 3mod33 BAT <= 2*22 BQAT +<= ( ) ( ) 3,23,2 BBAA <= _________________________________________________________________________________________ - 6 - Đề cương luận văn - Phạm Xuân Khánh – 01405310 GVHD : PGS.TS Lê Tiến Thường _________________________________________________________________________________________ ( ) ( ) 3,23,2 TTBB <= goto loop Hàm toán học hạt nhân cho việc mã hoá/giải mã trong cơ chế bảo mật RSA là MXZ E mod = Chúng ta có thể phân tích { } 1,0,2 1 0 ∈= ∑ − = i n i i i eeE và Z được tính toán như sau : 1;1 00 == PZ for i = 0 to n – 1 do MPP ii mod 2 1 = + if ( ) 1 = i e then MPZZ iii mod 1 = + else ii ZZ = + 1 end for Để có thể giải quyết bài toán trên, về cơ bản ta phải giải quyết bài toán tiếp theo MABZ mod = Ta có thể sử dụng phương pháp Montgomery, phân tích các phần tử A , B , M như sau: { } 1,0,2 1 0 ∈= ∑ − = i n i i i aaA ; { } 1,0,2 1 0 ∈= ∑ − = i n i i i bbB ; { } 1,0,2 1 0 ∈= ∑ − = i n i i i mmM Và có hàm nhân Montgomery như sau: MontProd(A,B,M) 0 1 = − S for i=0 to n-1 do ( ) 2mod 1 AbSq iii += − ( ) 2 1 AbMqS S iii i ++ = − end for return 1 − n S Với hàm nhân Montgomery, ta có một phương pháp khác để tính toán MXZ E mod = _________________________________________________________________________________________ - 7 - Đề cương luận văn - Phạm Xuân Khánh – 01405310 GVHD : PGS.TS Lê Tiến Thường _________________________________________________________________________________________ MontExp(X,E,M) MNr n mod2 2 = ),,1(Pr 0 MNrodMontZ = ),,(Pr 0 MNrXodMontP = for i=0 to n-1 do ),,(Pr 1 MPPodMontP iii = + if ( ) 1 = i e then ),,(Pr 1 MPZodMontZ iii = + else ii ZZ = + 1 end for ),,1(Pr MZodMontZ nn = return n Z Kiến trúc sơ lược của cơ chế RSA trên kit FPGA [4]  Module phát sinh số ngẫu nhiên: sử dụng LFSR (Linear Feedback Shift Register) để phát sinh số giả ngẫu nhiên 512/1024 bit  Module Random FIFO: đây là một dãy các register có kích thước cố định để lưu trữ số ngẫu nhiên theo cơ chế FIFO. Nếu FIFO đầy, module phát số ngẫu nhiên sẽ dừng hoạt động để tiết kiệm năng lượng.  Module kiểm tra số nguyên tố: có nhiệm vụ nhận số ngẫu nhiên từ Random FIFO và kiểm tra đó có phải là số nguyên tố hay không. Nếu không phải thì tiếp tục nhận số ngẫu nhiên khác và kiểm tra lại cho đến khi đúng thì thôi. Sau đó đặt số nguyên tố vào input của Prime FIFO.  Module Prime FIFO: đây là một dãy các register có kích thước cố định để lưu trữ số nguyên tố theo cơ chế FIFO. Nếu FIFO đầy, module kiểm tra số nguyên tố sẽ dừng hoạt động để tiết kiệm năng lượng. Số nguyên tố được lưu trữ có thể được sử dụng ngay lập tức cho module phát sinh cặp khoá public/private key _________________________________________________________________________________________ - 8 - Đề cương luận văn - Phạm Xuân Khánh – 01405310 GVHD : PGS.TS Lê Tiến Thường _________________________________________________________________________________________  Module ( ) pqpqn ϕ , = sẽ nhận hai số nguyên tố p và q và tính toán được n và ϕ  Module GCD ( e , ϕ ): nhận số ngẫu nhiên từ module Random FIFO và tính toán e và d theo giải thuật Euclide mở rộng. • Kiểm tra Trong quá trình cài đặt kiểm tra một PC, được cài đặt sẵn một software RSA, được kết nối trực tiếp đến kit FPGA. Sau khi thu được KU từ kit FPGA, RSA software sẽ mã hoá bản tin m sử dụng KU và gửi ( ) mE KU đế kit FPGA. Kit FPGA sẽ giải mã ( ) mE KU sử dụng KR và gửi ( )( ) mEE KUKR về PC. PC sẽ so sánh ( )( ) mEE KUKR với m để có thể xác định cơ chế RSA trên kit FPGA có phát sinh đúng cặp khoá hay không. 4. Nhiệm vụ luận văn • Trình bày cơ sở toán học cho việc phát sinh cặp khoá public/private key, mã hoá/giải mã với phương pháp RSA thông thường và RSA CRT (nhấn mạnh cơ chế RSA 2 số nguyên tố) • Tổng quan về FPGA và lập trình VHDL trên FPGA • Viết mã VHDL giả lặp giải thuật RSA (CRT) trên kit VirtexII Pro • Viết chương trình giao tiếp với kit FPGA (Visual C#/Java) để phát và nhận kết quả mô phỏng • Đánh giá kết quả, nhận xét, nêu bật lên ưu điểm của phương pháp giải mã RSA CRT và hướng phát triển đề tài 5. Sơ lược về thời gian thực hiện • Tuần 1 – 6: Phân tích cơ sở toán học của cơ chế bảo mật RSA, xây dựng một số thuật toán xử lý toán học (Fermat, Montgomery, Euclide …) để có thể cài đặt RSA lên kit FPGA. Đánh giá sơ bộ về các giải thuật RSA trên cơ sở lý thuyết toán học. • Tuần 7 – 12: Nghiên cứu về cấu trúc kit VirtexII Pro và ngôn ngữ VHDL _________________________________________________________________________________________ - 9 - Đề cương luận văn - Phạm Xuân Khánh – 01405310 GVHD : PGS.TS Lê Tiến Thường _________________________________________________________________________________________ • Tuần 13 – 24: Xây dựng mô hình xử lý cơ chế bảo mật RSA trên kit VirtexII Pro và viết software để trao đổi dữ liệu với kit FPGA. Đây là phần hạt nhân của đề tài với thời gian chi tiết như sau:  Tuần 13 – 15: thiết kế module cộng và phát sinh số ngẫu nhiên  Tuần 16 – 18: thiết kế module FIFO và modulo mũ  Tuần 19 – 21: thiết kế một software tính toán RSA trên PC có thể bằng ngôn ngữ Visual C#/Java  Tuần 22 – 24: simulate và debug từng module • Tuần 25 – 27: Mô phỏng, ghi nhận kết quả rút ra các đánh giá, nhận xét và kết luận • Tuần 28 – 30: Viết hoàn chỉnh báo cáo, làm slide 6. Những trở ngại và hướng phát triển đề tài Luận văn đặt ra nhiều vấn đề khó khăn phải vượt qua. Việc thấu hiểu các giải thuật RSA đòi hỏi sự nghiên cứu thấu đáo thuật toán vì tính chất lý thuyết toán học của đề tài nên không tránh những khỏi những khó khăn với hàng loạt những công thức tính toán thuần túy mang tính lý thuyết tư duy phức tạp và trừu tượng. Với quỹ thời gian tương đối hẹp và nhiều công việc phải đạt được, đây thực sự là một khó khăn không nhỏ. Việc thực hiện giả lập trên kit FPGA đòi hỏi rất nhiều công sức và thời gian do phải xây dựng mã VHDL cho mô hình giả lập xử lý. Thêm nữa, để có thể sử dụng thành thạo và tối ưu kit FPGA, cần phải dành một lượng thời gian cho việc nghiên cứu ngôn ngữ VHDL và tài liệu hướng dẫn của kit FPGA. Ước tính thời gian cần thiết cho việc giả lập trên FPGA tối thiểu là 12 tuần. Nếu việc thực hiện cài đặt trên kit FPGA thực hiện nhanh và quỹ thời gian cho phép, có thể phát triển đề tài lên cơ chế giải mã RSA CRT nhiều hơn hai số nguyên tố để có thể thấy rõ hơn ưu điểm của phương pháp RSA CRT. 7. Tài liệu tham khảo • [1] “RSA Speedup with Chinese Remainder Theorem Immune against Hardware Fault Cryptanalysis”, IEEE Transactions on computers , vol.52 , pp.461-472 , Apr 2003 • [2] “PKCS # 1 v2.1 : RSA Encryption Standard” , RSA Laboratories , June 2002 ftp://ftp.rsasecurity.com/pub/pkcs/pkcs-1/pkcs-1v2-1.pdf • [3] “A method for obtaining digital signatures and public key cryptoystems” , Communications of the ACM , vol.21 , pp.120-126 , Feb 1978 • [4] “Implementing a 1024-bit RSA on FPGA” , Reconfigurable Network Group , Applied Research Lab , Department of Computer Science and Engineering , Washington University in St.Louis http://www.arl.wustl.edu/~jl1/education/cs502/course_project.htm • [5] “RSA and public key cryptography in FPGA” , Altera Corporation _________________________________________________________________________________________ - 10 - [...]... • [7] FPGA- based Implementation of a serial RSA processor”, A Mazzeo, L Romano, G P Saggese - Universita’ degli Studi di Napoli “Federico II”, N Mazzocca - Seconda Universita’ degli Studi di Napoli • [8] “High Speed RSA Implement”, Cetin Kaya Koc, RSA Laboratories, RSA Data Security, Inc • High-Speed RSA Implementation High-Speed RSA Implementation High-Speed RSA Implementation High-Speed RSA Implementation... Cetin Kaya Koc, RSA Laboratories, RSA Data Security, Inc • High-Speed RSA Implementation High-Speed RSA Implementation High-Speed RSA Implementation High-Speed RSA Implementation [9] “Parallel FPGA Implementation of RSA with Residue Number Systems”, Mathieu Ciet, Michael Neve, Eric Peeters & Jean-Jacques Quisquater • _ - 11 - . Phân tích cơ chế bảo mật RSA đa số nguyên tố ( RSA CRT ) và cài đặt thuật toán RSA CRT trên FPGA MULTI-PRIME RSA CRYPTOSYSTEM AND ITS FPGA IMPLEMENTATION MỤC LỤC 1. Giới thiệu Thuật toán RSA. của cơ chế bảo mật RSA dựa trên phép toán modulo mũ số nguyên rất lớn. Để có thể đẩy nhanh tốc độ giải mã của cơ chế RSA, cơ chế RSA đa số nguyên tố (RSA CRT Chinese Remainder Theorem) thường. thế cơ chế RSA thông thường với các tính toán song song modulo mũ số nhỏ hơn. Và đặc trưng nhất cho cơ chế RSA CRT là trường hợp 2 số nguyên tố. Hoạt động CRT đối với cơ chế RSA 2 số nguyên tố

Ngày đăng: 03/05/2015, 17:45

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan