Upload by Share-Book.com
Trang 46
Chương III Hệ mã hoá RSA.
Với đề i xây dựng tviện các m mã hoá dùng cho việc bảo mật thông
tin trao đổi trong hình Client/Server, thì cần thiết một phương pháp
hoá để áp dụng, thuật toán hoá công khai RSA đã được lựa chọn cho giải
pháp y. Pơng pp y có những ưu điểm, nhược đim, đặc tính đó
phn s trình y trong cơng y
Ki nim hmật mã RSA
Pn phối khoá công kkai trong RSA
Độ an toàn của hRSA
Một số tính chất của hệ RSA
1. Khái niệm hệ mật mã RSA
Ki niệm hệ mật RSA đã được ra đời năm 1976 bởi các tác giả
R.Rivets, A.Shamir, và L.Adleman. Hhnày dựa trên sở của hai
bài tn :
+i tn Logarithm ri rạc (Discrete logarith)
+i tn pn tích tnh thừa số.
Trong hhoá RSA các bản rõ, các bản mã các khoá (public key
private key) là thuộc tập snguyên Z N = {1, . . . , N-1}. Trong đó tập ZN vi
N=p×q là các s nguyên tố khác nhau cùng với phép cộng và phép nhân
Modulo N to ra modulo số học N.
Khoá mã hoá EKB cặp số nguyên (N,KB) và khoá gii D kb cặp s
nguyên (N,kB), các số là rất lớn, số N có thể lên tới hàng trăm chữ số.
Các phương pp mã hoá và giải mã là rất dễ dàng.
Công vi
c mã h là s biến đổi bản rõ P (Plaintext) thành bản mã C
(Ciphertext) dựa trên cặp khoá ng khai KB bn P theo ng thức sau
đây :
C = EKB(P) = EB(P) = PKB (mod N) . (1)
Upload by Share-Book.com
Trang 47
Công việc giải là sbiến đổi ngược lại bản mã C thành bản rõ P dựa trên
cặp khoá bí mật kB , modulo N theo công thc sau :
P = DkB(C) = DB(C) = CkB (mod N) . (2)
D thy rng, bản rõ ban đầu cn đưc biến đổi một cách tch hợp tnh
bản mã, sau đó để có thể tái tạo li bản rõ ban đầu từ chính bản mã đó :
P = DB(EB(P)) (3)
Thay thế (1) vào (2) ta có :
(PKB)kB = P (mod N ) (4)
Trong toán học đã chứng minh được rằng, nếu N số nguyên tố t công
thức (4) s có lời gii khi chỉ khi KB.kB = 1 (mod N-1), áp dụng thuật toán
ta thy N=p×q vi p, q snguyên tố, do vậy (4) sẽ lời giải khi chỉ
khi :
KB.kB 1 (mod γ(N)) (5)
trong đó γ(N) = LCM(p-1,q-1) .
LCM (Lest Common Multiple) bội số chung nhỏ nhất.
Nói một cách kc, đầu tiên ngưi nhn B lựa chọn một khoá công khai KB
mt cách ngẫu nhiên. Khi đó khoá bí mật kB được tính ra bằng ng thức
(5). Điu này hoàn toàn tính được khi B biết được cặp snguyên tố (p,q)
thì sẽ tính được γ(N).
Upload by Share-Book.com
Trang 48
Hình 1.1 Sơ đồ các bước thực hiện mã hoá theo thut toán RSA.
2. Độ an toàn của hệ RSA
Một nhận định chung tất cả các cuộc tấn công giải mã đều mang mục
đích không t
ốt. Trong phn độ an tn của h mã h RSA s đề cp đến
mt i phương thức tấn ng điển hình của kẻ địch nhằm giải trong
thut toán này.
Chúng ta xét đến trường hợp khi kẻ đch nào đó biết được modulo N, khoá
công khai KB và bn tin mã h C, khi đó kẻ đch s tìm ra bản tin gc
(Plaintext) như thế nào. Để làm được điu đó kẻ địch thường tấn vào h
thống mật mã bằng hai phương thức sau đây:
Chn p và q
Tính N=p×q
Tính γ(N)
Chn khoá KB
C = PKB (mod N)
P = CkB ( mod N )
Chn khoá KB
KB
kB
Bn rõ P
Bn mã C
Bn rõ gc P
Upload by Share-Book.com
Trang 49
Phương thức thứ nht :
Trưc tiên dựa vào phân ch thừa số modulo N. Tiếp theo sau chúng s tìm
cách tính toán ra hai snguyên tp q, khả năng thành ng khi đó
s tính đưc λ(N) và khoá bí mật k B. Ta thy N cn phải là tích của hai s
nguyên tố, nếu N là tích của hai số nguyên tố thì thuật toán phân tích thừa
sđơn giản cần tối đa N bước, bởi một số nguyên tố nhỏ n
N
.
Mặt khác, nếu N tích của n số nguyên tố, thì thuật tn phân tích thừa s
đơn gin cần tối đa N1/n ớc.
Một thut tn phân tích tha số có th tnh phc tạp n, cho pp pn
tích một số N ra thành tha số trong O(
P
) ớc, trong đó p số chia nhỏ
nhất ca N, việc chọn hai số nguyên tố là cho thut toán ng hiu quả.
Phương thức thứ hai :
Pơng thc tn công thứ hai o hệ hoá RSA có thể khởi đầu bằng
cách gii quyết trường hợp thích hợp của bài toán logarit rời rạc. Trường
hợp này kẻ đch đã trong tay bản mã C khoá ng khai KB tức
cặp (KB,C)
Cả hai phương thức tấn công đều cần một số bước cơ bản, đó là :
O(exp
lnNln(lnN)
), trong đó N là smodulo.
3. Một số tính chất của hệ RSA
Trong các h mật mã RSA, một bản tin có th đưc mã htrong thời
gian tuyến tính.
Đối vi các bản tin i, độ i của các số được dùng cho các khthể
được coi như hng. Tương t như vậy, ng một số lên luỹ thừa được
thc hin trong thời gian hng, các số không được phép i hơn một độ i
hằng. Thực ra tham số này che dấu nhiều chi tiết cài đặt có liên quan đến
việc tính toán vi các con số i, chi pcủa các phép toán thực smột
yếu t ngăn cn s phổ biến ng dụng của pơng pp y. Phần quan
Upload by Share-Book.com
Trang 50
trọng nhất của việc tính toán liên quan đến việc hoá bản tin. Nng
chc chắn sẽ khônghệ mã hoá nào hết nếu không tính ra được các khoá
ca chúng là các số lớn.
Các khoá cho hmã hoá RSA thể được tạo ra không phải tính
toán quá nhiều.
Một ln nữa, ta lại i đến các phương pháp kiểm tra snguyên tố. Mỗi s
nguyên tlớn có thể được phát sinh bằng cách đầu tiên tạo ra một số ngẫu
nhiên ln, sau đó kiểm tra các số kế tiếp cho tới khi tìm được một số nguyên
tố. Một phương pháp đơn giản thực hiện một phép tính trên một con số ngấu
nhiên, vi xác suất 1/2 sẽ chứng minh rng số đưc kim tra không phi
nguyên tố. ớc cuối cùng là tính p dựa vào thuật toán Euclid.
Như phn trên đã trình y trong hệ mã hoá ng khai t khoá giải
(private key) kB và các thừa số p,q được giữ mật sự thành ng của
phương pp tu thuộc vào kẻ địch có kh năng tìm ra được giá tr của kB
hay kng nếu cho trưc N và KB. Rt khó có th tìm ra đưc kB tKB cn
biết v p và q, như vậy cần phân tích N ra thành thừa số để tính p q.
Nhưng việc phân tích ra thừa số là một vic m tốn rt nhiu thời gian, với
kthut hin đại ngày nay t cn ti ng triệu m để pn tích một scó
200 ch số ra thừa số.
Độ an tn ca thut tn RSA da trên cơ sở những khó khăn ca vic xác
định các thừa snguyên tố của một slớn. Bảng ới đây cho biết các thời
gian dự đoán, giả sử rằng mỗi phép toán thực hiện trong một micro giây.