15
Đề 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............................................. 1 2. Cơ sở toán học về cơ chế RSA và RSA CRT................2 3. Nội dung luận văn...................................... 5 4. Nhiệm vụ luận văn...................................... 9 5. Sơ lược về thời gian thực hiện........................10 6. Những trở ngại và hướng phát triển đề tài.............10 7. Tài liệu tham khảo....................................10 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 ___________________________________________________________________________________ - 1 -

De Cuong Luan Van v1

Embed Size (px)

Citation preview

Page 1: De Cuong Luan Van v1

Đề 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ườngHọc viên: Phạm Xuân Khánh, MSHV: 01405310Tê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......................................................................................................12. Cơ sở toán học về cơ chế RSA và RSA CRT............................................23. Nội dung luận văn........................................................................................54. Nhiệm vụ luận văn.......................................................................................95. Sơ lược về thời gian thực hiện.................................................................106. Những trở ngại và hướng phát triển đề tài..............................................107. Tài liệu tham khảo......................................................................................10

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ế.

__________________________________________________________________________________________- 1 -

Page 2: De Cuong Luan Van v1

Đề cương luận văn - Phạm Xuân Khánh – 01405310 GVHD : PGS.TS Lê Tiến Thường__________________________________________________________________________________________

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ố 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á

Gửi bản tin mã hoá c cho bên nhận B

Giải mã

__________________________________________________________________________________________- 2 -

Page 3: De Cuong Luan Van v1

Đề cương luận văn - Phạm Xuân Khánh – 01405310 GVHD : PGS.TS Lê Tiến Thường__________________________________________________________________________________________

Bên nhận B sử dụng private key (n,d) để tính toán

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ử

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ả

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

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 ta phân tích e thành chuỗi số nhị phân như sau

Và ta có các bước tính toán sau :

y = xfor bit j = k – 2 downto 0beginy = y * y mod nif theny = y * x mod nendreturn 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),

__________________________________________________________________________________________- 3 -

Page 4: De Cuong Luan Van v1

Đề cương luận văn - Phạm Xuân Khánh – 01405310 GVHD : PGS.TS Lê Tiến Thường__________________________________________________________________________________________

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 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 = 1 , … , u với ., 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, ) = 1 với

, với hai số nguyên tố đầu tiên và 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 , I = 3 , … , u.

Thông số modulus n trong private key là tích của u số nguyên tố , i = 1 , … , u với . Thông số d là một số nguyên dương nhỏ hơn n thỏa mãn

.

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:

và thông số qInv là số nguyên dương nhỏ hơn p thoả mãn:

Nếu u > 2, thì chúng ta sẽ biểu diễn thêm các thành phần triple , i

= 3, … , u. Thông số là thành phần nhân trong tích tạo ra modulus n . Mỗi exponent ( i = 3, … , u ) thoả mãn:

Mỗi thông số ( I = 3 , … , u ) là một số nguyên dương nhỏ hơn thoả mãn :

__________________________________________________________________________________________- 4 -

Page 5: De Cuong Luan Van v1

Đề cương luận văn - Phạm Xuân Khánh – 01405310 GVHD : PGS.TS Lê Tiến Thường__________________________________________________________________________________________

với

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 và

Nếu u > 2, tính , I = 3 , … , u

Tính Tính Nếu u > 2, đặt và for I = 3 to u do

Tính Tính Tính

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.

__________________________________________________________________________________________- 5 -

Page 6: De Cuong Luan Van v1

Đề cương luận văn - Phạm Xuân Khánh – 01405310 GVHD : PGS.TS Lê Tiến Thường__________________________________________________________________________________________

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

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 ”. 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ẻ để Chọn một số nguyên ngẫu nhiên a , 1 < a < n-1if or n-1 then return “không phải số nguyên tố” end iffor j=1 to k-1

if then return “không phải số nguyên tố”

end ifend forreturn “đâ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 ifif B3=1 then return B3 = EE_USCLN(m.b);B2 =end if

goto loop

SEE_USCLN(m.b)start : ( A2 , A3 ) <= ( 0, m ) ; ( B2 , B3 ) <= (1 , b ) ;Loop : if B3=0 then

b<=fetch_new_bgoto startend ifif B3=1 then return(B2,B3)end if

__________________________________________________________________________________________- 6 -

Page 7: De Cuong Luan Van v1

Đề cương luận văn - Phạm Xuân Khánh – 01405310 GVHD : PGS.TS Lê Tiến Thường__________________________________________________________________________________________

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à

Chúng ta có thể phân tích

và Z được tính toán như sau :

for i = 0 to n – 1 do

if then

else 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

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:

; ;

Và có hàm nhân Montgomery như sau:

MontProd(A,B,M)

for i=0 to n-1 do

end forreturn

__________________________________________________________________________________________- 7 -

Page 8: De Cuong Luan Van v1

Đề cương luận văn - Phạm Xuân Khánh – 01405310 GVHD : PGS.TS Lê Tiến Thường__________________________________________________________________________________________

Với hàm nhân Montgomery, ta có một phương pháp khác để tính toán

MontExp(X,E,M)

for i=0 to n-1 do

if then

else end for

return

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ố

__________________________________________________________________________________________- 8 -

Page 9: De Cuong Luan Van v1

Đề cương luận văn - Phạm Xuân Khánh – 01405310 GVHD : PGS.TS Lê Tiến Thường__________________________________________________________________________________________

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

Module 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 đế

kit FPGA. Kit FPGA sẽ giải mã sử dụng KR và gửi về

PC. PC sẽ so sánh 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ể

__________________________________________________________________________________________- 9 -

Page 10: De Cuong Luan Van v1

Đề cương luận văn - Phạm Xuân Khánh – 01405310 GVHD : PGS.TS Lê Tiến Thường__________________________________________________________________________________________

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 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__________________________________________________________________________________________

- 10 -

Page 11: De Cuong Luan Van v1

Đề cương luận văn - Phạm Xuân Khánh – 01405310 GVHD : PGS.TS Lê Tiến Thường__________________________________________________________________________________________

[5] “RSA and public key cryptography in FPGA” , Altera Corporation [6] “A Method for Obtaining Digital Signatures and Public-Key Cryptosystems”, R.L. Rivest, A. Shamir, and L. Adleman, MIT Laboratory for Computer Science and Department of Mathematics [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 ImplementationHigh-Speed RSA ImplementationHigh-Speed RSA ImplementationHigh-Speed RSA Implementation

[9] “Parallel FPGA Implementation of RSA with Residue Number Systems”, Mathieu Ciet, Michael Neve, Eric Peeters & Jean-Jacques Quisquater

__________________________________________________________________________________________- 11 -