Tải bản đầy đủ (.pdf) (11 trang)

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

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (214.9 KB, 11 trang )

Đề 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


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
=


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
/>• [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
/>• [5] “RSA and public key cryptography in FPGA” , Altera Corporation
_________________________________________________________________________________________
- 10 -
Đề cương luận văn - Phạm Xuân Khánh – 01405310 GVHD : PGS.TS Lê Tiến Thường
_________________________________________________________________________________________
• [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 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 -

×