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

(Tiểu luận) bảo mật thông tin thuật toán mã hóa 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 (1.32 MB, 17 trang )

BẢO MẬT THƠNG TIN

Thuật Tốn Mã Hóa
RSA
GVHD: Tống Thanh Văn
Nhóm 11:
Ngơ Gia Băng
Đinh Phúc Thọ
Phạm Chí Phương
h


Lịch Sử

Thuật tốn được Ron Rivest, Adi Shamir và Len Adleman mơ tả lần đầu tiên vào
năm 1977 tại Học viện Cơng nghệ Massachusetts (MIT). Tên của thuật tốn lấy từ 3
chữ cái đầu của tên 3 tác giả (R.S.A).
Trước đó, vào năm 1973, Clifford Cocks, một nhà tốn học người Anh làm việc
tại GCHQ, đã mơ tả một thuật tốn tương tự.
Nhưng tại thời điểm đó thì thuật tốn này khơng khả thi và chưa bao giờ được
thực nghiệm.

h


Lý Thuyết Số

h


Phép chia Modulo


 Phép chia modulo là một pháp chia lấy phần dư:
Ví dụ: 55 mod 8 = 7 tức là 55 : 8 dư 7

 Tổng quát a mod n = r với a >= 0; n>0; 0
<=r
h


Phép chia Modulo
 Phép chia modulo là một pháp chia lấy phần dư:
Ví dụ: 55 mod 8 = 7 tức là 55 : 8 dư 7

 Tổng quát a mod n = r với a >= 0; n>0; 0
<=r
h


Một số tính chất của modulo

a)

a+b) mod n = [(a mod n) + (b mod n)] mod n

b)

(a-b) mod n = [(a mod n) - (b mod n)] mod n

c)


(a x b) mod n = [(a mod n) x (b mod n)] mod n

h


Định Lý Fermat
Định lý:

Nếu p là số nguyên tố và a là số ngun tố khơng chia
hết cho p thì 1 mod p

Ví Dụ:
p = 5 , a= 9 => = 6561 = 1 mod 5
p = 5 , a= 11 => = 14641 = 1 mod 5

h


Phép Logarit Rời Rạc

Ta định nghĩa phép lũy thừa modulo như sau: để
tính y từ a(với x, n là các số nguyên):
y = mod n  y = (a.a.a….) mod n
Ví Dụ:

h


Mã Khóa Cơng Khai

RSA

h


Sơ lược về RSA
RSA được sử dụng rộng rãi trong cơng tác mã hố và cơng nghệ chữ ký
điện tử. Trong hệ mã hóa này, public key có thể chia sẻ công khai cho tất cả
mọi người. Hoạt động của RSA dựa trên 4 bước chính: sinh khóa, chia sẻ
key, mã hóa và giải mã

h


Mơ Tả Hoạt Động


Thuật tốn RSA có hai khóa:


Khóa cơng khai (Public key): 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 (Private key): những thơng tin được mã
hóa bằng khóa cơng khai chỉ có thể được giải mã
bằng khóa bí mật tương ứng. Nói cách khác, mọi
người đều có thể mã hóa nhưng chỉ có người biết

khóa cá nhân (bí mật) mới có thể giải mã được.

h


Khởi Tạo Khóa RSA
 Bước 1: chọn 2 nguyên tố lớn ngẫu nhiên và độc lập p và q.
 Bước 2: tính n= pq.  
 Bước 3: tính giá trị hàm số ɸ(n)= (p-1)(q-1) . 
 Bước 4: chọn 1 số tự nhiên e sao cho 1 Bước 5: tính d= e-1 bằng cách dung thuật tốn Euclide, tìm số tự nhiên x
sao cho d= (x*(p-1)*(q-1)+1)/ e.  
 Bước 6: n và e làm khóa cơng khai, n và d làm khóa bí mật. 

h


Mã Hóa và Giải Mã 


Bước 1: A nhận khóa cơng khai của B  



Bước 2: A biểu diễn thông tin cần gửi
thành số m (0tố cùng nhau  




Bước 3: tính c= me mod n  



Bước 4: gửi giá trị c cho B  



Bước 5: giải mã m= cd mod n  

Sơ đồ quá trình
h


Ví Dụ Minh Họa 
Thủ tục tạo khóa:






Chọn 2 số ngun tố p = 2 và q = 11 (giữ bí mật hoặc hủy sau khi tạo khóa)  
n = pq = 2.11 = 22 ( công khai )  
 ɸ(n) = (p-1)(q-1) = 10  
Chọn e sao cho 0 < e < 10 và e và ϕ(n) là số nguyên tố cùng nhau. Chọn e = 3 ( số mũ cơng
khai).  
Tính d biết (d,e) = 1 ( mod ϕ(n) )  
d.e = k.ϕ(n) + 1  
3d - 1 = 10k  

d = (10 k + 1) / 3    




d = 7 ( k = 2 ) ( số mũ bí mật)  
Khóa cơng khai (10;3)  
Khóa bí mật (7)

h


Mã hóa và giải mã:



Giả sử ta cần mã hóa và giải mã văn bản có giá trị m = 4.  
Mã hóa:
Tính c ( c là văn bản mã) :  
c = me mod n = 43 mod 22 = 20  
=> c = 20 



Giải mã:
m = cd mod n = 207 mod 22 = 4  
=> m = 4 

h



Độ An Tồn Của Mã Hóa RSA
 Độ an tồn của hệ thống RSA dựa trên 2 vấn đề: bài tốn phân tích ra số
ngun tố các số ngun lớn và bài toán RSA. Nếu 2 bài toán trên là khó
(khơng tìm được thuật tốn hiệu quả để giải chúng) thì khơng thể thực hiện
được việc phá mã tồn bộ đối với RSA.
 Vì vậy muốn xây dựng hệ RSA an tồn thì n=p*q phải là một số đủ lớn, để
khơng có khả năng phân tích nó về mặt tính tốn. Để đảm bảo an tồn nên
chọn các số ngun tố p và q từ 100 chữ số trở lên.

h


Ứng Dụng Của Hệ Mã Hóa RSA
1. Độ bảo mật cao (nghĩa là để giải mã ddược mà không biết kháo thì phải tốn
hàng triệu năm)
2. Thao tác nhanh (thao tác mã hóa và giải mã ít tốn thời gian)
3. Dùng chung được
4. Có ứng dụng rộng rãi
5. Có thể dùng để xác định chủ nhân (dùng làm chữ ký điện tử)
 Vì vậy mà thuật tốn RSA được sử dụng rộng rãi trong cơng tác mã hố và
cơng nghệ chữ ký điện tử: truyền dẫn quỹ điện tử chuyển đổi thư điện tử, giao
dịch tiền điện tử, thương mại điện tử, tài chính- ngân hàng...

h



×