Bài giảng Lý thuyết mật mã và an toàn thông tin - 5
Bài tập: Xét hệ mật mã RSA với p = 3, q = 7. • Hỏi có thể chọn e = 3 được không? • Hãy mã hóa chữ cái đầu tên của em với e = 5.
Bạn đang xem nội dung tài liệu Bài giảng Lý thuyết mật mã và an toàn thông tin - 5, để tải tài liệu về máy bạn click vào nút DOWNLOAD ở trên
RSA CRYPTOSYSTEM
4.3 Mật mã RSA
• RSA : Ron Rivest, Adi Shamir và Len
Adleman (Leonard Max Adleman) năm
1977 Massachusetts.
Mô hình mã hóa và giải mã bản mã
điện tử:
Bản tin rõ
A
Mã hóa
Bản tin mới
Mạng
Bản tin mới Bản tin rõ
B
Giải mã
Khóa công khai của
người nhận
Khóa riêng của
người nhận
Mô tả sơ lược
• Thuật toán RSA có hai khóa, khóa công
khai (public) và khóa bí mật (private). Mỗi
khóa là những số cố định sử dụng trong
quá trình giải mã và mã hó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
Tạo khóa
• Hệ mật mã này được tính toán trên vành
số nguyên Zn.
• Đầu tiên, ta chọn 2 số nguyên tố lớn ngẫu
nhiên và khác nhau p và q
• Tính n = p*q
• Tính giá trị hàm số Ơle Φ(n) = (p-1)(q-1)
• Tìm một số ngẫu nhiên e thỏa mãn điều
kiện sau: 1< e <Φ(n) và gcd(e, Φ(n)) =1.
• Tính d sao cho de ≡ 1(mod Φ(n))
Tạo khóa
• Khóa công khai bao gồm n và e: n -
modun và e - số mũ công khai (số mũ mã
hóa)
• Khóa bí mật là d: d - số mũ bí mật (khóa
giải mã).
Mã hóa và giải mã
• Giả sử B muốn gửi đoạn thông điệp P cho
A. Đầu tiên, B chuyển P thành một số P<n
theo một hàm có thể đảo ngược (từ P có
thể xác định P) đã được thỏa thuận trước.
• Ví dụ: A -> 01, B -> 02, ; z ->26.
• Gọi E và D lần lượt là các hàm mã hóa và
giải mã.
Mã hóa và giải mã
• Thao tác mã hóa:
C là bản mã hóa của m theo công thức:
C = Pe (mod n)
• Thao tác giải mã:
A nhận C từ B và biết khóa bí mật d. A sẽ
tìm được P từ C theo công thức sau:
P = Cd mod n.
Ví dụ
• Lấy p=61 (Số nguyên tố thứ nhất)
• q= 53 (Số nguyên tố thứ hai)
• n = pq = 3233 (mô đun công bố công khai)
• Φ(n) = 3120
• e = 17 (Số mũ công khai) được chọn sao
cho nguyên tố cùng nhau Φ(n) = 3120
• d = 2753 (Số mũ bí mật) (chọn d sao cho
de ≡ 1(modΦ(n)) d ≡ e-1 mod Φ(n), tính
theo giải thuật Ơclit mở rộng).
Ví dụ (tiếp)
• Khóa công khai (e,n). Khóa bí mật là d
• Hàm mã hóa E(m) = me (mod n) = m17
(mod 3233)
• Hàm giải mã là D(m) = cd mod n = c2753
(mod 3233)
Ví dụ
• Chẳng hạn: để mã hóa văn bản P=AW
có giá trị 0123 (A=01, W=23), ta thực hiện
phép tính:
• Mã hóa E(m) = 12317 (mod 3233) = 855
• Giải mã: D(m) = 8552753 (mod 3233) = 123
• (Thủ thuật tính 123.123. . 123, ta thực
hiện ngay phép lấy số dư của 123.123
trong phép chia cho 3233 )
Tính bảo mật của RSA
• Bài toán : Cho trước n, phân tích n thành
tích các số nguyên tố chưa có thuật toán
tốt (với thời gian tính toán đa thức) để giải
nó.
• Vì vậy, biết khóa công khai (n,e) rất khó
tính ra khóa giải mã d.
Chữ ký điện tử và vấn đề chống
mạo danh
Giả sử A gửi cho B văn bản P kèm theo chữ
ký K của A.
Cơ chế;
A mã hóa P bằng khóa lập mã (nB, eB) và
---------- K bởi (nA, dA).
B giải mã bản mã bằng khóa (nB, dB) và
---------- K bởi (nA, eA).
Tính khóa giải mã d
• Procedure Euclid_E(a,m) int, y0=0,y1:=1;
• While a>0 do
• { r:= m mod a
• if r=0 then Break
• q:= m div a
• y:= y0-y1*q
• m:=a; a:=r y0:=y1 y1:=y }
• If a>1 Then Return "A không khả nghịch
theo mođun m"
• else Return " Nghịch đảo modulo m của a
là y"
Bài tập:
Xét hệ mật mã RSA với p = 3, q = 7.
• Hỏi có thể chọn e = 3 được không?
• Hãy mã hóa chữ cái đầu tên của em với
e = 5.
• Gợi ý:
• e = 3 không thể
Ví dụ mã hóa H với e = 5:
• H được số hóa thành 08,
• e(H) = 85 = ? (mod 21)
• Do 82 = 64 = 1 (mod 21), suy ra
• 85 = (82)28 = 1.8 = 8 (mod 21)
Các file đính kèm theo tài liệu này:
- mon_mat_ma_an_toan_thong_tin_5_rsa_8738.pdf