MÃ HểA VÀ XÁC THỰC TRONG VPN 3.1 Giới thiệu
3.2.2. Giải thuật RSA
RSA do Rivest, Shamir và Adleman phỏt triển năm 1977. Sơ đồ RSA là sơ đồ mó húa từng khối, với mỗi khối cú giỏ trị nhỏ hơn n. Việc mó húa và giải mó theo hỡnh thức sau, cho khối văn bản M và khối bảo mật C:
C = Me mod n
M = Cd mod n = (Me)d mod n = Mde mod n
Cả người gửi và nhận phải biết giỏ trị n, người gửi biết e và chỉ cú người nhận biết d. Cho nờn đõy là giải thuật mó húa với khúa cụng khai KU = [e,n] và khúa bớ mật KR = [d,n]. Vỡ giải thuật này thỏa giải thuật mó khúa cụng khai nờn cỏc yờu cầu sau phải được đỏp ứng:
Cú thể tỡm thấy giỏ trị d, e, n để: M = Mde mod n với mọi M<n hay khụng? Một cỏch tương đối dễ dàng tớnh Me và Cd với mọi M<n hay khụng? Khụng thể xỏc định d khi biết e và n.
Theo lý thuyết Euler: cho 2 số nguyờn p và q, 2 số nguyờn n và m (n=p*q, 0<m<n) và số nguyờn k. Ta cú:
mkθ(n)+1mod n= mk(p-1)(q-1)+1 mod n= m mod n θ(n)=θ(pq)=(p-1)(q-1)
Do đú:
Nếu: de = kθ(n) + 1 và gcd(θ(n),e)=1 (gcd: ước số chung lớn nhất) Thỡ: de mod θ(n) = 1 và d mod θ(n) = e- 1
Sơ đồ RSA:
• Giả sử user A đó cụng bố khúa cụng khai e của nú và user B muốn gửi đoạn tin M tới A. Khi đú B tớnh C=Me mod n và truyền C. Khi nhận được đoạn tin C này, user A giải mó bằng cỏch tớnh Cd mod n. Cú thể thấy rằng M=Cd mod n vỡ:
de mod θ(n) = 1 hay de = kθ(n)+1
→ Mkθ(n)+1mod n = Mk(p-1)(q-1)+1mod n=M mod n=(Mde mod n) modn=Mde mod n Cd mod n = (Me)dmod n = Mde mod n = M
Cú thể túm tắt giải thuật RSA như bảng sau:
Bảng 3.2: Túm tắt giải thuật RSA và độ phức tạp
Tạo khúa Độ phức tạp
Tạo 2 số nguyờn tố lớn p và q Tớnh n = p*q, θ(n) = (p-1)*(q-1)
Chọn 1 số ngẫu nhiờn 1<e<θ(n): gcd (θ(n),e) = 1 Tớnh d: d=e-1mod θ(n) (giải thuật Euclidean mở rộng) Khúa cụng khai KU=[e,n]
Khúa bớ mật KR=[d,n]
θ((log n)2) θ(log(0(n))2) θ((log n)3)
Vớ dụ về quỏ trỡnh mật mó và giải mó của thuật toỏn RSA: Chọn p = 3, q = 11. Khi đú ta cú n = pq = 33 và (p-1)(q-1) = 20 = 2*5*5. Giỏ trị e được chọn phải quan hệ nguyờn tố với 20 , nghĩa là khụng chứa cỏc ước số 2,5 và e < 20. Ta chọn e = 3, d = 7. Khi đú ta cú: Phớa mật mó: Giả sử cú bản tin: M = {10, 9, 5, 20} → M3={1000, 729, 125, 8000} và C=M3 mod 33={10, 3, 26, 14}. Phớa giải mó: C7 ={107, 2187, 267, 147} M=C7 mod 33{10, 9, 5, 20}
Kớch thước khúa RSA: tựy thuộc vào tớnh bảo mật và thời gian sống của khúa mà khúa cú chiều dài thớch hợp:
• Loại Export: : 512 bớt. • Loại Personnal : 768 bit. • Loại Commercial : 1024 bit. • Loại Militery : 2048 bit.
Trờn đõy là những nội dung chớnh của thuật toỏn mật mó RSA. Thực tế, để thực hiện được cỏc thuật toỏn với kớch thước khúa lớn đũi hỏi một lượng tớnh toỏn rất lớn liờn quan đến vấn đề lý thuyết số như thuật toỏn Euclide để tỡm UCLN của hai số nguyờn hay thuật toỏn Miller-Rabin để kiểm tra tớnh nguyờn tố của cỏc số tự nhiờn này.