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

Báo cáo đề tài hệ mã hóa công khai RSA

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 (2.03 MB, 26 trang )

Thuyết trình đề tài

“HỆ MÃ HÓA KHÓA CÔNG KHAI
RSA”

Họ Tên

Họ Tên

Th.s : Lê Xuân Bằng

Phan Thanh Hiếu

Th.s : Trịnh Quang Kiên

Đỗ Tiến Hướng
Nguyễn Quyết Chiến


LỜI NÓI ĐẦU
 Ngày nay, xu thế trao đổi thông tin của mọi người ngày càng lớn

và diễn ra trên khắp mọi nơi. Yêu cầu đối với quá trình trao đổi
phải đảm bảo tin cậy và an toàn cao.
 Ứng dụng mật hóa trong mã hóa dữ liệu để trao đổi thông tin đã
diễn ra từ rất lâu. Với nhiều các phương pháp mã hóa, bảo mật
khác nhau cùng với mức độ bảo mật. Trong đó mật hóa bằng cách
sử dụng hệ mã hóa công khai RSA được sử dụng tương đối phổ
biến và rộng rãi để đảm bảo an toàn trong trao đổi thông tin.
 Từ ứng dụng to lớn của hệ mã RSA trong thực tế đồng thời được
sự hướng dẫn và gợi ý của Thầy giáo Th.s Trịnh Quang Kiên


chúng tôi đã chọn đề tài “HỆ MÃ HÓA KHÓA CÔNG KHAI
RSA”.


MỤC TIÊU ĐỀ TÀI
Nghiên cứu chi tiết về thuật toán mã
RSA
Xây dựng và thiết kế khối mã hóa,
giải mã RSA trên ngôn ngữ mô tả
phần cứng VHDL

Hiện thực hóa và kiểm tra thiết kế
trên FPGA


A. NGHIÊN CỨU
CHI TIẾT VỀ
THUẬT TOÁN MÃ
HÓA RSA.


I. TỔNG QUAN VỀ MẬT MÃ
Hệ mã hóa đối xứng: còn được gọi là hệ mã khóa
đơn(chỉ sử dụng 1 key trao cho người mã hóa và
giải mã). Đối với hệ mã hóa này có ưu điểm là tốc
độ mã hóa và giả mã nhanh nhưng dễ dàng bị
người khác giải mã khi biết được khóa.
Hệ mã hóa bất đối xứng: sử dụng 2 khóa khác nhau để mã
hóa và giải mã. Hệ mã này có ưu điểm là có khả năng thay
đổi khóa dễ dàng, tính bảo mật cao do sử dụng key mã hóa

và giải mã khác nhau, được sử dụng rộng rãi trong hệ thống
nhiều người dùng, tuy nhiên tốc độ mã hóa và giải mã
chậm.


II.THUẬT TOÁN MÃ HÓA RSA
1. Đặc điểm của thuật toán mã hóa RSA:
Có độ bảo mật cao.
 Quá trình mã hóa và giải mã nhanh, tốn ít tài nguyên.
 Có nhiều ứng dụng rộng rãi.


2. Mô tả mã RSA.
Thuật toán RSA có 2 khóa:

+ Khóa công khai: được công bố rộng rãi cho mọi
người và được dùng để mã hóa.
+ Khóa bí mật: chỉ có người nhận mới được biết và
được sử dụng để giải mã.


II. THUẬT TOÁN MÃ HÓA RSA
3. Mô tả hoạt động

Bản rõ A

Chọn p,q nguyên tố
Tính M =p*q
e


c = Ae mod M

Tính Φ(M) = (p-1)(q-1)
Chọn khóa công khai e
(0< e < Φ(M)) &
(e,Φ(M)=1)

Chọn khóa riêng d
de = 1 (mod Φ(M) )

Bản mã C

d

A = cd mod M
Bản rõ gốc A


III. Tính bảo mật
 Độ an toàn của hệ thống RSA dựa trên bài toán phân tích ra

thừa số nguyên tố các số nguyên lớn. Do đó khi số càng lớn thì
thời gian phân tích càng lâu.
 . Bảng thời gian phân tích(số liệu năm 2005):

Số các chữ số
trong số được
phân tích

Số bit


Thời gian phân
tích

50
75

400
600

4 giờ
104 giờ

100
200
300

800
1600
2400

74 năm
4000 năm
500.000 năm


IV. ỨNG DỤNG
 Được sử dụng trong chữ kí điện tử.
 Thiết bị phát sinh mã để giao dịch trong ngân hàng.
 RSA Access Manager: quản lý truy cập Web cho mạng nội


bộ, cổng thông tin,…
 RSA BSAFE: bảo mật các sản phẩm phần mềm, đáp ứng
các mục tiêu an ninh trên phạm vi rộng.
 RSA enVision: đưa ra các cảnh báo, phân tích các dữ liệu
đăng nhập cho các tổ chức để đơn giản hóa các thủ tục và
đáp ứng sự bảo mật cao.
…


B. Xây dựng và thiết kế
khối mã hóa, giải mã
RSA trên ngôn ngữ mô
tả phần cứng VHDL.


TỔNG QUAN
 Thao tác chính của thuật toán RSA là mã hóa và giải mã

theo biểu thức:

B = Ae mod M (*)
Trong đó :
- B là bản gốc đối với quá trình giả mã hoặc bản mã
đối với quá trình mã hóa.
- e là khóa công khai đối với mã hóa, là khóa bí mật
đối với quá trình giả mã .
- M là tích của 2 số nguyên tố p và q.



 Để xác định giá trị của biểu thức(*) ta có nhiều cách khác

nhau. Nhưng đối với nhưng giá trị lớn thì quá trình tính
đòi hỏi thời gian tính phải nhanh, tốn ít tài nguyên sử
dụng của hệ thống. Do đó ta sử dụng thuật toán
Montgomery.
 Cơ sở toán học thuật toán Montgomery.

MontABM (A,B,M) = A.B.2-n mod M
MonExp (A,e,M) = Ae mod M


MonExp(A,e,M)
{
C = 22n mod M;
A = MontABM (C,A,M);
(Mapping)
R = MontABM (C,1,M);
For i=k-1 downto 0 do
R = MontABM (A,A,M);
(Square)
if (ei =1) then
R = MontABM (A,R,M);
(Multiply)
end if
End for
R = MontABM (1,R,M);
(Re-Mapping)
Return R;
}



MontABM (A, B, M)
{
S-1 := 0;
For I = 0 to n - 1 do
Qi = (Si-1 + bi) Mod 2 (LSB of Sum)
Si = (Si-1 + qi M + biA)/2
End for
If (S > M) then
return (S-M)
Else return S
}


SƠ ĐỒ KHỐI RSA


Khối MontABM(A,B,M)


Khối MonExp(A,e,M)


C. Mô phỏng trên phần
mềm modelsim và hiện thực
hóa trên mạch FPGA.


I. Mô phỏng bằng phần mềm modelsim.

 Ta tiến hành nạp đầu vào cho chương trình chạy mô phỏng với






giá trị đầu vào như sau: thực hiện với số 128 bít.
P = x” 86C9A6DA21E7093B”
Q = x” ADF83C5D34149EA7”
M = x” 5B98F8E36202876C1B43B946A056F7D”
D = x” 460B91265A01EF156F8C25745A9E111D”


Kết quả mô phỏng trên modelsim
Giá trị đầu vào

Kết quả
Chân báo hiệu
thực hiện
xong


 Kết quả thu được :

B = x"243224B8014FD9D2FE0E5C78DFDD3ED6"
 Tổng thời gian từ khi bit R_St = „1‟ cho đến khi có kết quả
đầu ra R_Do = „1‟ là 1755600 ns tương ứng 17556 xung
nhịp.
 Tốc độ mã hóa : 17556/128 = 137 clk/bit

 Với clk=10 MHz tốc độ mã đạt 73 Kb/s
 Trên thực tế khi kết hợp với khối UART 9600, tốc độ mã
hóa lớn hơn nhiều lần tốc độ khối UART do đó tốc độ mã
hóa toàn hệ thống chủ yếu phụ thuộc vào tốc độ dữ liệu
đầu vào khối mã hóa RSA.
 Với đầu vào đã chọn trước ta tiến hành xác định trước
bằng các phép tính số học để xác định được kết quả.
  Khối đã làm việc đảm bảo đúng yêu cầu bài toán.


II. Hiện thực hóa trên FPGA.
• Thực hiện chạy chương trình, kiểm tra hoạt động của toàn

khối. Tại đầu ra ta thu được kết quả sau khi chạy. Kiểm tra
kết quả ra này với kết quả đã tính trước ta thấy kết quả
đúng.


 Kết quả tổ hợp trên FPGA với n = 384 bit
Device Utilization Summary
Logic Utilization

Used

[-]

Available

Utilization


Note(s)

Number of Slice Flip Flops

4,526

9,312

48%

Number of 4 input LUTs

4,290

9,312

46%

Number of occupied Slices

4,334

4,656

93%

Number of Slices containing
only related logic

4,334


4,334

100%

Number of Slices containing
unrelated logic

0

4,334

0%

Total Number of 4 input LUTs

5,170

9,312

55%

Number used as logic
Number used as a route-thru

4,258
880

Number used for Dual Port
RAMs


32

Number of bonded IOBs

11

158

6%

Number of BUFGMUXs

2

24

8%

Average Fanout of Non-Clock
Nets

3.13


Tham số thời gian mạch


KẾT LUẬN
 Trong phạm vi đề tài đã cho ta cách nhìn tổng quan nhất


về mã mật nói chung và mã RSA nói riêng. Phạm vi đề tài
đã nghiên cứu chi tiết về cách thức tạo khóa, thuật toán
mã hóa và giải mã RSA.
 Như vậy thực hiện thuật toán mã hóa RSA với thuật toán
đã xây dựng cho ta kết quả đúng như yêu cầu bài toán đặt
ra.


×