Professional Documents
Culture Documents
NHÓM 11
Thành viên:
1. Bùi Mạnh Chung
2. Tô Lê Trung Hiếu
3. Phạm Từ Thiện Tâm
Thuật toán RSA:
Thuật toán RSA: mật mã khối, kích thước 1024(2048), thông tin gốc được
xử lý như là số nguyên, => số nguyên 0-2^1024-1, tương đương số thập
phân 309 chữ số, đây là số cực lớn=> cần sử dụng cấu trúc dữ liệu mới
(các phép toán trên số nguyên lớn)
Tạo cặp khóa:
Chọn hai số nguyên tố p và q đủ lớn. Gọi N là tích của p và q (N = pq).
Chọn số nguyên e sao cho e với (n) =(p-1)(q-1) là cặp số nguyên tố cùng
nhau.
Chọn số nguyên d sao cho ed = 1 (mod (p-1)(q-1)).
PU là tổ hợp (N, e), PR là tổ hợp (N, d)
Mã hóa:
C = Me mod N (với M < N)
Giải mã:
M = Cd mod N
BÀI TẬP RSA
Bài 1: p=7,q=17,e=11
Tính cặp khóa công khai, khóa cá nhân.
Mã hóa thông điệp M=20 và sau đó giải mã?
Bài 2: p=17,q=31,e=7, M=12
Bài 3: p=5,q=11,e=7, M=26
BÀI TẬP 1
◦ Cho p=7,q=17,e=11, M=20 =>N=119
◦ (p-1)(q-1) = 96
◦ E=11 chọn d=15 sao cho ed=1 [mod (p-1)(q-1)]
◦ 11d=1 (mod 96)
◦ PU=(119,11), PR(119,15)
◦ Mã hóa:
◦ C = 2011 mod 119 = 41
◦ Giải mã:
◦ M= 4115 mod 119 =
Thuật tóan Diffie-Hellman
Dựa trên phép logarit rời rạc:
Là thuật tóan trao đổi khóa, được dùng để phân phối khóa trong các thuật
tóan mật mã đối xứng.
Cho trước g và x = gk, => k = logg(x)
Cho trước g, p và x = gk mod p, không thể tính được k!!!
Họat động của Diffie-Hellman
Cho p là một số nguyên tố và g là cơ số sinh (generator) thỏa đk với
mọi x [1, 2, .., p-1], luôn tìm được n thỏa x = gn mod p.
p và g được phổ biến công khai
User A tạo ra số bí mật Xa < p, tính Ya = (gXa mod p) và gởi cho B. B
cũng tạo ra Xb và Yb = (gXb mod p).
Khóa bí mật: KB=(Ya)Xbmod p và KA=(Yb)Xamod p đều bằng (gXaXb
mod p) nên A, B trao đổi khóa thành công
Demo Thuật tóan Diffie-Hellman
Cho p = 353, g = 3
User A User B
• Chọn Xa = 97 • Chọn Xb = 233