RSA là tờn viết tắt của ba tỏc giả Rivest, Sharmir, Adleman của trƣờng MIT đó đề ra hệ mật mó cụng khai. Hệ mật này đƣợc đề xuất năm 1977, dựa trờn cơ sở tớnh cỏc lũy thừa trong số học. Độ an toàn của hệ mật dựa trờn độ khú của việc phõn tớch thành thừa số nguyờn tố của cỏc số nguyờn lớn.
Dựa vào ƣu điểm của hệ mật mó RSA, nếu thiết lập đƣợc sơ đồ chữ kớ dựa trờn bài toỏn phõn tớch ra thừa số nguyờn tố thỡ độ an toàn của chữ kớ sẽ rất cao. Việc thiết lập sơ đồ xỏc thực chữ kớ RSA rất đơn giản, ta chỉ cần đảo ngƣợc hàm mó húa và giải mó. Giả sử Alice và Bob cần trao đổi thụng tin bớ mật thụng qua một kờnh khụng an toàn (vớ dụ nhƣ Internet). Với thuật toỏn RSA, Alice đầu tiờn cần tạo ra cho mỡnh cặp khúa gồm khúa cụng khai và khúa bớ mật. Sau đõy là sơ đồ chữ kớ RSA.
a. Thuật toỏn tạo khúa
Bước 1: Alice (ngƣời nhận) tạo hai số nghuyờn tố lớn ngẫu nhiờn p và q (p <>q)
Bước 2: Alice tớnh n = p*q và Φ(n) = (p-1)(q-1)
Bước3: Alice chọn một số ngẫy nhiờn e (0<e< Φ(n)) sao cho Gcd(b, Φ(n)) = 1
Bước 4: Alice tớnh d = e-1 bằng cỏch dựng thuật toỏn Euclide
Bước 5: Alice cụng bố n và e trong danh bạ làm khúa cụng khai (public key), cũn d làm khúa bớ mật (private key).
- Cỏc số nguyờn tố thƣờng đƣợc chọn bằng phƣơng phỏp thử xỏc suất. - Cỏc bƣớc 3 và 4 cú thể đƣợc thực hiện bằng giải thuật Euclid mở rộng - Bƣớc 5 cú thể viết cỏch khỏc: Tỡm số tự nhiờn x sao cho
cũng là số tự nhiờn Khi đú sử dụng giỏ trị dmod (p-1)(q-1)
Số húa bởi Trung tõm Học liệu http://www.lrc-tnu.edu.vn/
b. Thuật toỏn kớ
giả sử Bob muốn gửi một thụng điệp M đó kớ cho Alice. Đầu tiờn Bob chuyển M thành một số m < n theo một hàm cú thể đảo ngƣợc (từ m cú thể xỏc định lại M) đƣợc thỏa thuận trƣớc. Lỳc này Bob cú m và biết n cũng nhƣd là khúa bớ mật của Bob. Bob sẽ tớnh c là bản mó húa của m theo cụng thức: c = md (mod n)
Hàm trờn cú thể tớnh dễ dàng sử dụng phƣơng phỏp tớnh hàm mũ (theo modulo) bằng thuật toỏn bỡnh phƣơng và nhõn. Cuối cựng Bob gửi c cho Alice.
+ c là thụng bỏo + d là khúa kớ
+ Cụng bố: n, e (Public Key)
+ Giữ bớ mật: p, q và d (Private key) c. Thuật toỏn xỏc minh chữ kớ số
Alice nhận c từ Bob và biết khúa cụng khai của Bob là e. Alice cú thể tỡm đƣợc
m từ c theo cụng thức sau: m = ce (mod n)
Chứng minh hệ mật RSA
- Cần chứng minh: m = (md mod n)e mod n p, q là số nguyờn tố, n = pq, Φ(n) = (p-1)(q-1) Nờn ta cú m Φ(n) = 1 (mod n)
Mặt khỏc, do ed = 1 (mod Φ(n)) nờn ed = k Φ(n) + 1 Theo định lý Euler ta cú
x Φ(n) = 1 mod n
(mdmod n)e mod n = med mod n
= m k. Φ(n) mod n
= m1 mod m = m (dpcm)