Học viện công nghệ BƯu chính viễn thông


 Hệ mật mã khoá công khai



tải về 0.7 Mb.
Chế độ xem pdf
trang8/16
Chuyển đổi dữ liệu15.04.2023
Kích0.7 Mb.
#54553
1   ...   4   5   6   7   8   9   10   11   ...   16
luan van nghien cuu dam bao an toan thong tin trong moi truong web su dung ky th

2.3. Hệ mật mã khoá công khai
2.3.1. Giới thiệu về mật mã khóa công khai 
Năm 1976 Diffie và Hellman đã đưa ra hệ mã hoá công khai 
hay hệ mã hoá phi đối xứng, khoá sử dụng vào việc mã hoá là khác 
so với khoá giải mã và khoá giải mã không thể tính toán được từ 
khoá mã hoá. Người gửi A có được khoá công khai của người nhận 
B và có bản tin P cần gửi đi thì có thể dễ dàng tạo ra được bản mã C.
C = E
KB
(P) = E
B
(P) 
Người nhận B khi nhận được bản tin mã hóa C với khoá bí mật 
k
B
thì có thể giải mã bản tin trong thời gian đa thức.
P = D
kB
(C) = D
B
[E
B
(M)] 
Một số hệ mật khoá công khai quan trọng gồm: Hệ mật RSA, 
Hệ mật xếp ba lô Merkle - Hellman, Hệ mật McEliece, Hệ mật 
ElGamal, Hệ mật Chor-Rivest, Hệ mật trên các đường cong Elliptic. 
2.3.2. Hệ mật RSA 
2.3.2.1. Mở đầu 
Hệ mật RSA được mô tả như sau: Ta có sơ đồ chung của hệ mật 
mã khoá công khai được cho bởi: 
S=(P, C, K, E, D)
(1) 
Trong đó P là tập ký tự bản rõ, C là tập ký tự bản mã, K là tập 
các khoá k, mỗi khoá k gồm có hai phần k=(k', k''), k' là khoá công 
khai dành cho việc lập mật mã, còn k'' là khoá bí mật dành chi việc 
giải mã. Với mỗi ký tự bản rõ xP, thuật toán lập mã E cho ta ký tự 
mã tương ứng y=E(k', x)C, và với ký tự mã y thuật toán giải mã D 
sẽ cho ta lại ký tự bản rõ x: D(k'', y)=D(k'', E(k', x))=x. 
Để xây dựng một hệ mật mã khoá công khai RSA, ta chọn trước 
một số nguyên n=p.q là tích của hai số nguyên tố lớn, chọn một số e 
sao cho gcd(e,(n))=1, và tính số d sao cho: e.d1(mod((n)) 
Mỗi cặp k=(k',k''), với k'=(n,e) và k''=d sẽ là một cặp khoá của 
một hệ mật mã RSA cụ thể cho một người tham gia. 


- 14 - 
Như vậy, sơ đồ chung của hệ mật mã RSA được định nghĩa bởi 
danh sách (1), trong đó: 
P=C=Z
n
, trong đó n là một số nguyên Blum, tức là tích của hai 
số nguyên tố; 
K={k=(k', k''): k'=(n, e) và k''=d, gcd(e,
(n))=1, e.d  
1(mod(n))}; 
E và D được xác định bởi: 
E(k', x) = x
e
mod n, với mọi x  P 
D(k'', y) = y
d
mod n, với mọi y  C 
2.3.2.2. Thực hiện hệ mật mã RSA 
Để thực hiện hệ mật mã RSA cho một mạng truyền tin bảo mật, 
ngoài việc xây dựng các chương trình tính toán hàm E (với tham biến 
đầu vào là n, e và x) và hàm D (với tham biến đầu vào là n, d và y), 
ta còn phải chọn cho mỗi người tham gia một bộ (n,e,d) để tạo các 
khoá công khai k' và khoá bí mật k''. Hệ mã của mỗi người tham gia 
chỉ có khả năng bảo mật khi n=p.q là số nguyên rất lớn (và do đó p, q 
cũng phải là những số nguyên tố rất lớn); rất lớn có nghĩa là p, q phải 
có biểu diễn thập phân cỡ hơn 100 chữ số, do đó n có cỡ hơn 200 
chữ số thập phân, hay n10
200

2.3.2.3. Tính bảo mật của mật mã RSA 
Bài toán thám mã (khi chỉ biết bản mã) đối với mật mã RSA là: 
biết khoá công khai k'=(n,e), biết bản mã y=x
e
mod n, tìm x. Với bài 
toán này có độ khó tương đương với bài toán phân tích số nguyên 
(Blum) thành thừa số nguyên tố. Do đó, giữ tuyệt mật d, hay giữ 
tuyệt mật các thừa số p, q là có ý nghĩa rất quyết định đến việc bảo 
vệ tính an toàn của hệ mật mã RSA. 
Bên cạnh đó có một số sơ hở mà người thám mã có thể lợi dụng 
để tấn công như: dùng môđun n chung, dùng số mũ lập mã e nhỏ, lợi 
dụng tính nhân của hàm lập mã, tấn công bằng cách lặp phép mã. 
2.3.2.4. Ứng dụng của RSA 
Hệ mã hóa RSA được ứng dụng rộng rãi chủ yếu cho web và 


- 15 - 
các chương trình email, các công nghệ bảo mật sử dụng cho thương 
mại điện tử.

tải về 0.7 Mb.

Chia sẻ với bạn bè của bạn:
1   ...   4   5   6   7   8   9   10   11   ...   16




Cơ sở dữ liệu được bảo vệ bởi bản quyền ©hocday.com 2024
được sử dụng cho việc quản lý

    Quê hương