Khóa luận Các phương pháp tấn công RSA

ĐẠI HC QUC GIA HÀ NI  
TRƯỜNG ĐẠI HC CÔNG NGHỆ  
---------<>---------  
Bùi Tun Anh  
CÁC PHƯƠNG PHÁP TN CÔNG RSA  
KHOÁ LUN TT NGHIP ĐẠI HC HCHÍNH QUY  
Ngành : Công NghThông Tin  
HÀ NI – 2009  
ĐẠI HC QUC GIA HÀ NI  
TRƯỜNG ĐẠI HC CÔNG NGHỆ  
---------<>---------  
Bùi Tun Anh  
CÁC PHƯƠNG PHÁP TN CÔNG RSA  
KHOÁ LUN TT NGHIP ĐẠI HC HCHÍNH QUY  
Ngành : Công NghThông Tin  
Cán bhướng dn: TS. HVăn Canh  
HÀ NI – 2009  
LI CÁM ƠN  
Để thc hin hoàn thành lun văn “ Các phương pháp tn công RSA” em đã  
nhn được shướng dn và giúp đỡ nhit tình ca nhiu tp thvà cá nhân  
Trước hết, em xin bày tlòng biết ơn chân thành đến ban lãnh đạo cùng quý  
thy cô trong khoa Công nghthông tin - Trường Đại hc Công ngh, Đại hc quc  
gia Hà Ni đã tn tình dy d, truyn đạt kiến thc, kinh nghim quý báu và to điu  
kin thun li cho em trong sut thi gian hc tp và thc hin đề tài.  
Đặc bit, em xin bày tlòng biết ơn sâu sc đến thy hướng dn TS. HVăn  
Canh, người đã tn tình hướng dn, giúp đỡ em trong sut quá trình thc hin đề tài.  
Xin trân trng gi đến gia đình, bn bè và người thân nhng tình cm tt đẹp  
nht đã giúp đỡ động viên em trong sut quá trình hc tp cũng như thc hin và  
hoàn thành lun văn.  
Hà Ni, ngày 15/05/2009  
Sinh viên  
Bùi Tun Anh  
TÓM TT NI DUNG  
Hmt RSA được phát minh bi Ron Rivest, Adi Shamir, và Len Adleman,  
công bln đầu vào tháng 8 năm 1977. Hmt sdng trong lĩnh vc đảm bo tính  
riêng tư và cung cp cơ chế xác thc ca dliu s. Ngày nay, RSA đã được phát  
trin ng dng rng rãi trong thương mi đin tđặc bit nó là ht nhân ca hệ  
thng thanh toán đin t.  
Ngay tkhi được công bln đầu, hRSA đã được phân tích hsan toàn bi  
nhiu nhà nghiên cu. Mc dù đã tri qua nhiu năm nghiên cu và đã có mt scuc  
tn công n tượng nhưng không mang li kết qulà phá hu. Đa phn hmi chra  
được nhng mi nguy him tim n ca RSA mà khi sdng RSA người dùng cn ci  
thin.  
Thc tế vn đề thám mã đối vi hmt RSA hin ti đang được các nhà nghiên  
cu tp trung khai thác các sơ hca RSA như: tn công vào smũ công khai hoc số  
mũ bí mt thp, tn công vào các tham snguyên tp, q bé hoc cách xa nhau ln,  
hoc tp trung vào vic phân tích nhân tsn(modul ca RSA).  
Lun văn ca em strình bày các phương pháp tn công RSA trong vòng 20  
năm trli đây và la chn môt phương pháp tn công phbiến để demo.  
Mc lc  
MỞ ĐẦU ................................................................................................................. 1  
Chương 1. CÁC KHÁI NIM CƠ BN............................................................. 2  
1.1 Mt skhái nim toán hc........................................................................ 2  
1.1.1 Snguyên tvà nguyên tcùng nhau................................................. 2  
1.1.2 Đồng dư thc ...................................................................................... 2  
*
1.1.3 Không gian Zn và Zn ........................................................................... 3  
1.1.4 Phn tnghch đảo............................................................................. 3  
1.1.5 Khái nim nhóm, nhóm con, nhóm Cyclic .......................................... 4  
1.1.6 Hàm Ф Euler....................................................................................... 4  
1.1.7 Các phép toán cơ bn trong không gian modulo................................ 5  
1.1.8 Độ phc tp tính toán ......................................................................... 5  
1.1.9 Hàm mt phía và hàm mt phía có ca sp........................................ 6  
1.2 Vn đề mã hóa............................................................................................ 7  
1.2.1 Gii thiu vmã hóa........................................................................... 7  
1.2.2 Hmã hóa........................................................................................... 7  
1.2.3 Nhng tính năng ca hmã hóa......................................................... 8  
Chương 2. TNG QUAN VMÃ HOÁ CÔNG KHAI MÃ THÁM................ 9  
2.1 Mã hoá khoá công khai ............................................................................. 9  
2.1.1 Đặc đim ca Hmã khoá công khai ................................................. 9  
2.1.2 Nơi sdng Hmã hóa khoá công khai.......................................... 10  
2.2 Các bài toán liên quan đến hmã hoá khoá công khai...................... 10  
2.2.1 Bài toán phân tích snguyên thành tha snguyên t................... 11  
2.2.2 Bài toán RSA (Rivest-Shamir-Adleman).......................................... 11  
2.2.3 Bài toán thng dư bc hai................................................................ 11  
2.2.4 Bài toán tìm căn bc hai mod n ....................................................... 12  
2.2.5 Bài toán lôgarit ri rc.................................................................... 13  
2.2.6 Bài toán lôgarit ri rc suy rng..................................................... 13  
2.2.7 Bài toán Diffie-Hellman................................................................... 13  
2.2.8 Bài toán gii mã đối vi mã tuyến tính............................................ 14  
2.3 Vn đề thám mã....................................................................................... 16  
Chương 3. TNG KT NHNG KT QUTN CÔNG VÀO HMT RSA  
TRONG NHNG NĂM QUA ............................................................................ 19  
3.1 Mt sgithiết ngm định ..................................................................... 19  
3.2 Phân tích các snguyên ln................................................................... 19  
3.3 Các tn công cơ bn ............................................................................... 20  
3.3.1 Modul chung ..................................................................................... 20  
3.3.2 Mù (Blinding)................................................................................... 21  
3.4 Smũ riêng bé (Low Private Exponnent)............................................ 21  
3.4.1 Độ ln e............................................................................................. 22  
3.4.2 Sdng CRT .................................................................................... 22  
3.5 Smũ công khai bé (Low public Exponent) ........................................ 23  
3.5.1 Hastad's Broadcast Attack............................................................... 23  
3.5.2 Franklin-Reiter Related Message Attack......................................... 24  
3.6 Thành phn công khai bé....................................................................... 24  
3.6.1 Coppersmith's Short Pad Attack. ..................................................... 25  
3.6.2 Tn công bng khóa riêng. .............................................................. 25  
3.7 Cài đặt các tn công. .............................................................................. 26  
3.7.1 Tn công da trên thi gian. ............................................................ 27  
3.7.2 Tn công da trên các li ngu nhiên. ............................................ 28  
3.8 Mt stn công bng nhân thóa sN vi sN ln.......................... 29  
3.8.1 Tìm nhân tln nht thnht N ............................................... 29  
3.8..2 Phân tích thhai............................................................................. 30  
3.8.3 Phân tích thba............................................................................... 31  
3.8.4 Thut toán Pollard (p-1)................................................................... 32  
3.9 Kết lun ................................................................................................... 33  
Chương 4. THƯ VIN TÍNH TOÁN SLN................................................. 34  
4.1 Biu din sln........................................................................................ 34  
4.2 Các phép toán trong sln..................................................................... 35  
4.2.1 So sánh hai s................................................................................... 35  
4.2.2 Cng hai sln dương...................................................................... 36  
4.2.3 Trhai sln dương ........................................................................ 36  
4.2.4 Phép nhân hai sln. ....................................................................... 37  
4.2.5 Phép chia hai sln dương. ............................................................. 38  
4.2.6 Lũy tha ............................................................................................ 40  
4.2.7 Ước chung ln nht........................................................................... 41  
4.2.8 Phép nhân theo module p.................................................................. 42  
4.2.9 Tìm phn tnghch đảo theo module p ............................................ 42  
4.2.10 Phép cng có du............................................................................ 43  
4.2.11 Phép trcó du............................................................................... 44  
4.3.12 Phép nhân có du............................................................................ 44  
Chương 5. PHƯƠNG PHÁP TN CÔNG BNG............................................ 45  
NHÂN THOÁ SN SDNG ĐỊNH LÝ FERMAT................................. 45  
5.1 Bổ đề 1....................................................................................................... 45  
5.2 Định lý Fermat........................................................................................... 45  
KT LUN........................................................................................................... 48  
MỞ ĐẦU  
Hmt mã khoá công khai RSA được sdng phbiến trong lĩnh vc đảm bo  
tính riêng tư và cung cp cơ chế xác thc ca dliu s. Ngày nay RSA được phát trin  
ng dng rng rãi trong thương mi đin t, được sdng trong vic to khoá và xác  
thc ca mail, trong truy cp txa, và đặc bit nó là ht nhân ca hthng thanh toán  
đin t. RSA được ng dng rng rãi trong các lĩnh vc nơi mà an ninh an toàn thông tin  
được đòi hi.  
Chính vì lý do được sdng rng rãi trong thương mi đin tcũng như độ an  
toàn cao mà đã có rt nhiu snhòm ngó cũng như các cuc tn công nhm phá vsan  
toàn ca hmt RSA. Ngay tkhi được công bln đầu, hRSA đã được phân tích hệ  
san toàn bi nhiu nhà nghiên cu. Mc dù tri qua nhiu năm nghiên cu và đã có mt  
scuc tn công n tượng nhưng không mang li kết qulà phá hu. Đa phn hmi chỉ  
ra được nhng mi nguy him tim n ca RSA.  
Để phc vcho vic phân tích các tính cht ca hmt RSA, em đã trình bày các khái  
nim cơ bn liên quan đến toán hc, mt mã và thám mã , trình bày tng quan vhmã  
hoá khoá công khai, các bài toán liên quan đến hmã hoá khoá công khai  
Trên cơ shiu các khái nim cơ bn, các cơ stoán hc, để có cái nhìn tng quan  
vvn đề thám mã đối vi hmt RSA trong nhng năm qua, em đã tng kết li các  
phương pháp tn công vào hmt RSA và kết quthu được trong nhng năm qua. Trong  
chương này em đã trình bày chi tiết các thut toán tn công vào hmt RSA như: các tn  
công cơ bn - modul chung, mù, tn công vào smũ công khai hoc smũ bí mt thp,  
tn công da trên thi gian hay da vào các li ngu nhiên. Ngoài ra, em cũng trình bày  
các thut toán tn công RSA bng nhân thoá sN vi sN ln như thut toán Pollard,  
tuy nhiên các thut toán được gii thiu ở đây mi chgii quyết cho modul N ca RSA  
độ dài hn chế, còn mudul N có độ dài ln thì cho đến nay chưa có phương pháp khả  
thi nào được công b.  
1
Chương 1 - CÁC KHÁI NIM CƠ BN  
1.1 Mt skhái nim toán hc  
1.1.1 Snguyên tvà nguyên tcùng nhau  
Snguyên tlà snguyên dương chchia hết cho 1 và chính nó.  
Ví d: 2, 3, 5, 7, 11, 17, …  
Hmt mã thường sdng các snguyên tít nht là ln hơn 10150.  
Hai sm và n được gi là nguyên tcùng nhau, nếu ước schung ln nht ca chúng  
bng Ký hiu: gcd (m, n) = 1.  
Ví d: 9 và 14 là hai snguyên tcùng nhau.  
1.1.2 Đồng dư thc  
Cho a b là các snguyên n là snguyên dương. Khi đó a được gi là đồng dư vi b  
theo modulo n, ký hiu là a b (mod n), nếu a, b chia cho n có cùng sdư. n được gi là  
modulo ca đồng dư.  
Kí hiu: a b (mod n)  
Ví d: 5 7 mod 2 vì: 5 mod 2 = 1 và 7 mod 2 = 1  
Tính cht ca đồng dư:  
Cho a, a1, b, b1, c Z. Ta có các tính cht sau:  
-
-
-
-
-
a b mod n nếu và chnếu a và b có cùng sdư khi chia cho n  
Tính phn x: a a mod n  
Tính đối xng: Nếu a b mod n thì b a mod n  
Tính giao hoán: Nếu a b mod n b c mod n thì a c mod n  
Nếu a a1 mod n, b b1 mod n  
thì a + b (a1+b1) mod n ab a1 b1 mod n  
Lp tương đương:  
Lp tương đương ca snguyên a là tp hp các snguyên đồng dư vi a theo modulo n.  
2
Cho n cố định đồng dư vi n trong không gian Z vào các lp tương đương. Nếu a = qn +  
r, trong đó 0 r n thì a r mod n. Vì vy mi snguyên a là đồng dư theo modulo  
n vi duy nht mt snguyên trong khong t0 đến n-1 được gi là thng dư nhỏ  
nht ca a theo modulo n. Cũng vì vy, a và r cùng thuc mt lp tương đương. Do  
đó r có thể đơn gin được sdng để thhin lp tương đương.  
*
1.1.3 Không gian Zn và Zn  
Không gian Zn (các snguyên theo modulo n)  
Không gian các snguyên theo modulo n: Zn là tp hp các snguyên không âm nhhơn  
n.  
Tc  
là:  
Zn  
=
{0,  
1,  
2,  
n-1}.  
Tt ccác phép toán trong Zn đều được thc hin theo modulo n.  
Ví d: Z11 = {0, 1, 2, 3, …, 10}  
Trong Z11: 6 + 7 = 2, bi vì 6 + 7 = 13 2 (mod 11).  
*
Không gian Zn  
Là tp hp các snguyên p Zn, nguyên tcùng n.  
*
*
Tc là: Zn = { p Zn | gcd (n, p) = 1}, Ф(n) là sphn tca Zn  
*
Nếu n là mt snguyên tthì: Zn = { p Zn | 1 p n – 1}  
*
Ví d: Z2 = {0, 1} thì Z2 = {1} vì gcd (1, 2) = 1.  
1.1.4 Phn tnghch đảo  
Định nghĩa:  
Cho a Zn. Nghch đảo ca a theo modulo n là snguyên x Zn sao cho ax 1(mod  
n). Nếu x tn ti thì đó là giá trduy nht, và a được gi là khnghch.  
Nghch đảo ca a ký hiu là a-1.  
Tính cht:  
Cho a, b Zn. Phép chia a cho b theo modulo n là tích ca a và b theo modulo  
n, và chỉ được xác định khi b có nghch đảo theo modulo n.  
Cho a Zn, a là khnghch khi và chkhi gcd (a, n) = 1.  
3
Gisd = gcd (a, n). Phương trình đồng dư ax = b mod n có nghim x nếu và  
chnếu d chia hết cho b, trong trường hp các nghim d nm trong khong 0  
đến  
n
1
thì các nghim đồng dư theo modulo n/d.  
Ví d: 4-1 = 7 (mod 9) vì 4.7 1 (mod 9)  
1.1.5 Khái nim nhóm, nhóm con, nhóm Cyclic  
Nhóm là bcác phn t(G, *) tha mãn các tính cht sau:  
Tính cht kết hp: ( x * y ) * z = x * s ( y * z )  
Tính cht tn ti phn ttrung gian e G: e * x = x * e = x , x G  
Tính cht tn ti phn tnghch đảo x’ G: x’ * x = x * x’ = e  
Nhóm con là bcác phn t(S, *) là nhóm tha mãn các tính cht sau:  
S G, phn ttrung gian e S  
x, y S Î x * y S  
Nhóm Cyclic: Là nhóm mà mi phn tx ca nó được sinh ra tmt phn tử đặc bit g  
G. Phn tnày được gi là phn tnguyên thy, tc là:  
Vi x G: n N mà gn = x.  
Ví d: (Z+, *) là mt nhóm cyclic có phn tsinh là 1  
1.1.6 Hàm Ф Euler  
Định nghĩa: Cho n 1. Ф (n) được định nghĩa là các snguyên trong khong t[1, n]  
nguyên tcùng nhau vi n. Hàm Ф được gi là hàm phi Euler.  
Tính cht:  
- Nếu p là snguyên tthì Ф (n) = p - 1.  
- Hàm phi Euler là hàm có tính nhân:  
- Nếu (m, n) = 1 thì Ф (m*n) = Ф (m) Ф (n).  
e1 e2  
- Nếu n = p1 p2 …pkek là tha snguyên tca n thì :  
⎞ ⎛  
1
1
1
⎟ ⎜  
⎟ ⎜  
Ф(n) = n 1−  
1−  
1−  
p1  
p2  
pn  
⎠ ⎝  
4
1.1.7 Các phép toán cơ bn trong không gian modulo  
Cho n là snguyên dương. Như trước, các phn ttrong Zn được thhin bi các số  
nguyên {0, 1, 2,…, n - 1}. Nhn xét rng: nếu a, b Zn thì:  
a + b  
if a + b < n  
(a + b) mod n =  
a + b n if a + b n  
Vì vy, phép cng modulo (và phép trmodulo) có thể được thc hin mà không  
cn thc hin các phép chia dài.  
Phép nhân modulo ca a và b được thc hin bng phép nhân thông thường a vi b như  
các snguyên bình thường, sau đó ly phn dư ca kết qusau khi chia cho n.  
Phép tính nghch đảo trong Zn có thể được thc hin nhsdng thut toán Euclidean  
mrng như mô tsau:  
Nếu b=0 thì đặt d: =a; x: =1; y: =0; return (d; x; y) ;  
Đặt x2 :=1; x1 :=0 ; y2 : =0 ; y1 : =1 ;  
Khi b>0 thc hin:  
q: = [a/b]; r = a-qb; x: = x2-px1; y: = y2 - py1 ;  
a : =b; r: =b; x1:=x2; x1:=x; y2:=y1; y1:=y ;  
d:=a ; x:=x2 ; y:=y2 ; return(d, x, y) ;  
1.1.8 Độ phc tp tính toán  
Lý thuyết thut toán và các hàm tính được ra đời tnhng năm 30 ca thế k20 đã  
đặt nn móng cho vic nghiên cu các vn đề tính được”, “gii được” trong toán hc.  
Tuy nhiên tcái “tính được” đến vic tính toán thc tế là mt khong cách rt ln. Có rt  
nhiu vn đề được chng minh là có th“tính được” nhưng không tính được trong thc tế  
cho dù có shtrca máy tính. Vào nhng năm 1960, lý thuyết độ phc tp tính toán  
được hình thành và phát trin mt cách nhanh chóng, cung cp nhiu hiu biết sâu sc  
vbn cht phc tp ca các thut toán và các bài toán, tnhng bài toán thun túy  
lý thuyết đến nhng bài toán thường gp trong thc tế.  
Độ phc tp tính toán (vkhông gian hay thi gian) ca mt tiến trình tính toán là  
sô nhớ được dùng hay scác phép toán sơ cp được thc hin trong tiến trình tính toán  
5
đó. Dliu đầu vào đối vi mt thut toán thường được biu din qua các ttrong mt  
bng ký tnào đó. Độ dài ca mt tlà ský ttrong từ đó.  
Cho mt thut toán A trên bng ký tZ (tc là có các đầu vào là các ttrong Z).  
Độ phc tp tính toán ca thut toán A được hiu như mt hàm sfa(n) sao cho vi mi  
sn thì fa(n) là sô nh, hay sphép toán sơ cp ti đa mà A cn để thc hin tiến trình  
tính toán ca mình trên các dliu vào có độ dài nhhơn hoc bng n. Ta nói: thut toán  
A có độ phc tp thi gian đa thc, nếu có mt đa thc P(n) sao cho vi mi n đủ ln ta  
có:  
fa(n) p(n), trong đó fa(n) là độ phc tp tính toán theo thi gian ca A.  
Bài toán P được gi là “gii được” nếu tn ti thut toán để gii nó, tc là thut  
toán làm vic có kết thúc trên mi dliu đầu vào ca bài toán. Bài toán P được gi là  
“gii được trong thi gian đa thc” nếu có thut toán gii nó vi độ phc tp thi gian đa  
thc.  
1.1.9 Hàm mt phía và hàm mt phía có ca sp  
Hàm mt phía:  
Mt hàm mt phía là hàm mà ddàng tính toán ra quan hmt chiu nhưng rt  
khó để tính ngược li. Ví như : Biết githiết x thì có thddàng tính ra f(x), nhưng nếu  
biết f(x) thì rt khó tính ra được x. Trong trường hp này “khó” có nghĩa là để tính ra  
được kết quthì phi mt rt nhiu thi gian để tính toán.  
Ví d:  
Tính y = f(x) = αx mod p là dnhưng tính ngược li x = logα y là bài toán “khó”  
(bài toán logarit ri rc)  
Hàm mt phía có ca sp:  
F(x) được gi là hàm mt phía có ca sp nếu tính xuôi y = f (x) thì dnhưng tính  
ngược x = f - 1(y) thì khó tuy nhiên nếu có “ca sp” thì vn đề tính ngược trnên dễ  
dàng. Ca sp ở đây là mt điu kin nào đó giúp chúng ta ddàng tính ngược.  
Ví d:  
6
y = f (x) = xb mod n tính xuôi thì dnhưng tính ngược x = ya mod n thì khó vì phi biết a  
vi a * b 1 (mod (Ф (n)) trong đó Ф(n) = (p-1)(q-1). Nhưng nếu biết ca sp p, q thì  
vic tính n = p * q và tính a trnên ddàng.  
Hp thư là mt ví dkhác vhàm mt phía có ca sp. Bt kai cũng có thbỏ  
thư vào thùng. Bthư vào thùng là mt hành động công cng. Mthùng thư không phi  
là hành động công cng. Nó là khó khăn, bn scn đến mhàn để phá hoc nhng  
công ckhác. Tuy nhiên, nếu bn có “ca sp” (trong trường hp này là chìa khóa ca  
hòm thư) thì công vic mhòm thư tht ddàng.  
1.2 Vn đề mã hóa  
1.2.1 Gii thiu vmã hóa  
Chúng ta biết rng thông tin truyn đi trên mng rt dbtrm cp. Để đảm bo vic  
truyn tin an toàn, người ta thường mã hóa thông tin trước khi truyn đi. Vic mã hóa cn  
theo quy tc nht định gi là hmt mã. Hin nay có hai loi mt mã: hmt mã khóa bí  
mt và hmt mã khóa công khai. Hmt mã khóa bí mt (còn gi là hmt mã đối  
xng hay hmt mã cổ đin) dhiu, dthc thi nhưng độ an toàn không cao. Vì gii  
hn tính toán chthc hin trong phm vi bng chcái sdng văn bn cn mã hóa (ví  
dZ26 nếu dùng các chcái tiếng anh, Z256 nếu dùng chcái ASCII…). Vi các hmã  
khóa bí mt, nếu biết khóa lp mã hay thut toán lp mã, người ta có thtìm thy ngay  
được bn rõ. Ngược li, các hmt mã khóa công khai (còn gi là hmt mã phi đối  
xng) cho biết khóa lp mã K và hàm lp mã ek, thì cũng rt khó tìm được cách gii mã.  
Và vic thám mã là rt khó khăn do độ phc tp tính toán ln.  
1.2.2 Hmã hóa  
Hmã hóa là hbao gm 5 thành phn (P, C, K, E, D) tha mã các tính cht sau:  
P (Plaitext): là tp hp hu hn các bn rõ có th:  
C (Ciphertext): là mt tp hu hn các bn mã có th.  
K (Key): là mt tp hu hn các khóa có th.  
E (Encrytion): là tp các hàm lp mã.  
D (Decrytion): là tp các hàm gii mã.  
7
Chúng ta đã biết mt thông báo thường được xem là bn rõ. Người gi scó nhim vụ  
mã hóa bn rõ đó, kết quthu được gi là bn mã. Và bn mã này sẽ được gi đi trên  
đường truyn ti người nhn. Người nhn gii mã bn mã để tìm hiu ni dung ca bn  
rõ.  
Vi mi k K, có mt hàm lp mã ek E, ek : P ÆC , và mt hàm gii mã  
dk D, dk : C Æ P sao cho: dx(ek(x)) = x, xP  
1.2.3 Nhng tính năng ca hmã hóa  
- Cung cp mt mc cao vtính toán bo mt, toàn vn, chng chi bvà xác thc.  
- Tính bo mt: Bo đảm bí mt cho các thông báo và dliu bng vic che giu  
thông tin nhcác kthut mã hóa.  
- Tính toàn vn: Bo đảm vi các bên rng bn tin không bthay đổi trên đường  
truyn tin.  
- Chng chi b: Có thxác nhn rng tài liu đã đến tai đó, ngay ckhi hcố  
gng tchi nó.  
- Tính xác thc: Cung cp hai dch v:  
o Nhn dng ngun gc ca mt thông báo, đảm bo rng nó là đúng sthc.  
o Kim tra định danh ca người đang đăng nhp hthng, tiếp tc kim tra đặc đim  
ca htrong trường hp ai đó cgng kết ni và gidanh là người sdng hp  
pháp.  
8
Chương 2 - TNG QUAN VMÃ HOÁ CÔNG KHAI VÀ MÃ THÁM  
2.1 Mã hoá khoá công khai  
Hmã hóa khóa bt đối xng( hmã hoá khoá công khai) là Hmã hóa có khóa lp  
mã và khóa gii mã khác nhau (ke kd), biết được khóa này cũng “khó” tính được khóa  
kia.  
Hmã hóa này còn được gi là Hmã hoá khóa công khai, vì:  
Khoá lp mã cho công khai, gi là khoá công khai (Public key).  
Khóa gii mã gibí mt, còn gi là khóa riêng (Private key) hay khóa bí mt.  
Mt người bt kcó thdùng khoá công khai để mã hoá bn tin, nhưng chngười nào có  
đúng khoá gii mã thì mi có khnăng đọc được bn rõ.  
Hmã hóa khoá công khai hay Hmã hó bt đối xng do Diffie và Hellman  
minh vào nhng năm 1970.  
phát  
2.1.1 Đặc đim ca Hmã khoá công khai  
Ưu đim:  
1). Hmã hóa khóa công khai có ưu đim chyếu sau:  
Thut toán được viết mt ln, công khai cho nhiu ln dùng, cho nhiu người dùng,  
hchcn gibí mt khóa riêng ca mình.  
2). Khi biết các tham sban đầu ca hmã hóa, vic tính ra cp khoá công khai  
và bí mt phi là “d”, tc là trong thi gian đa thc.  
Người gi có bn rõ P và khoá công khai, thì “d” to ra bn mã C.  
Người nhn có bn mã C và khoá bí mt, thì “d” gii được thành bn rõ P.  
3). Người mã hoá dùng khóa công khai, người gii mã gikhóa bí mt. Khả  
năng lkhóa bí mt khó hơn vì chcó mt người gigìn.  
Nếu thám mã biết khoá công khai, cgng tìm khoá bí mt, thì chúng phi  
đương đầu vi bài toán “khó”.  
4). Nếu thám mã biết khoá công khai và bn mã C, thì vic tìm ra bn rõ P cũng  
là bài toán “khó”, sphép thlà vô cùng ln, không khthi.  
9
Hn chế:  
Hmã hóa khóa công khai: mã hóa và gii mã chm hơn hmã hóa khóa đối  
xng.  
2.1.2 Nơi sdng Hmã hóa khoá công khai  
Hmã hóa khóa công khai thường được sdng chyếu trên các mng công  
khai như Internet, khi mà vic trao chuyn khoá bí mt tương đối khó khăn.  
Đặc trưng ni bt ca hmã hoá công khai là khoá công khai (public key) và bn  
mã (ciphertext) đều có thgi đi trên mt kênh truyn tin không an toàn.  
Có biết ckhóa công khai và bn mã, thì thám mã cũng không dkhám phá  
được bn rõ.  
Nhưng vì có tc độ mã hóa và gii mã chm, nên hmã hóa khóa công khai chỉ  
dùng để mã hóa nhng bn tin ngn, ví dnhư mã hóa khóa bí mt gi đi.  
Hmã hóa khóa công khai thường được sdng cho cp người dùng tha thun  
khóa bí mt ca Hmã hóa khóa riêng.  
2.2 Các bài toán liên quan đến hmã hoá khoá công khai  
Sra đời ca khái nim hmã bt đối xng là mt tiến bcó tính cht bước ngot trong  
lch smt mã nói chung, gn lin vi sphát trin ca khoa hc tính toán hin đại. Mã  
hóa bt đối xng là mt dng mt mã hóa cho phép người sdng trao đổi các thông tin  
mt mà không cn phi trao đổi các khóa chung bí mt trước đó. Điu này được thc hin  
bng cách sdng mt cp khóa có quan htoán hc vi nhau là khóa công khai và khóa  
cá nhân (hay khóa bí mt). Trong mã bt đối xng, khóa cá nhân phi được gibí mt  
trong khi khóa công khai được phbiến công khai. Trong 2 khóa, mt dùng để mã hóa và  
khóa còn li dùng để gii mã. Điu quan trng đối vi hthng là không thtìm ra khóa  
bí mt nếu chbiết khóa công khai. Hthng mã bt đối xng có thsdng vi các mc  
đích như:  
Mã hóa: gibí mt thông tin và chcó người có khóa bí mt mi gii mã được.  
To chký s: cho phép kim tra mt văn bn có phi đã được to vi mt khóa  
bí mt nào đó hay không.  
10  
Tha thun khóa: cho phép thiết lp khóa dùng để trao đổi thông tin mt gia 2  
bên.  
Các kthut mã bt đối xng đòi hi khi lượng tính toán nhiu hơn các kthut mã hóa  
khóa đối xng nhưng nhng li đim mà chúng mang li khiến cho chúng được áp dng  
trong nhiu ng dng. Các hmã bt đối xng da trên tính cht ca các bài toán cơ bn  
như:  
2.2.1 Bài toán phân tích snguyên thành tha snguyên tố  
Cho snguyên dương n , tìm tt ccác ước snguyên tca nó, hay là tìm dng  
phân tích chính tc ca n = p1α1 .p2α2 ...pkαk , trong đó pi là các snguyên ttng cp khác  
nhau và các αi 1.  
Bài toán này có liên hmt thiết vi các bài toán thtính nguyên thay thtính  
hp sca mt snguyên, nhưng vi nhng gì mà ta biết đến nay, nó dường như khó  
hơn nhiu so vi hai bài toán thtính nguyên tvà tính hp s.  
2.2.2 Bài toán RSA (Rivest-Shamir-Adleman)  
Cho snguyên dương n là tích ca hai snguyên tlkhác nhau, mt snguyên  
dương e sao cho gcd(e,φ (n)) =1, và mt snguyên c ; tìm mt snguyên m sao cho  
me c(mod n).  
Điu kin gcd(e,φ (n)) =1 bo đảm cho vic vi mi snguyên c ∈ {0,1,...,n -1}  
đúng mt sm ∈ {0,1,...,n -1} sao cho me c(mod n).  
Dthy rng nếu biết hai tha snguyên tca n, tc là biết n =p.q thì sbiết φ  
(n) = (p -1)(q -1), và từ đó, do gcd(e,φ (n)) =1 stìm được d =e -1modφ (n), và do đó sẽ  
tìm được m =c d modn. Như vy, bài toán RSA có thqui dn trong thi gian đa thc về  
bài toán phân tích snguyên.  
2.2.3 Bài toán thng dư bc hai  
Cho mt snguyên ln là hp s, và mt snguyên a Jn , tp tt ccác sa có  
ký hiu Jacobi. Hãy quyết định xem a có là thng dư bc hai theo modn hay không?  
Trong lý thuyết mt mã, bài toán này cũng thường được xét vi trường hp n là  
snguyên Blum, tc n là tích ca hai snguyên tp q , n =p.q. Ta chú ý rng trong  
11  
trường hp này, nếu a Jn , thì a là thng dư bc hai theo modn, điu này có ththử  
được ddàng vì nó tương đương vi điu kin a (p -1)/21 (modp). Như vy, trong trường  
hp này, bài toán thng dư bc hai có thqui dn trong thi gian đa thc vbài toán phân  
tích snguyên. Mt khác, nếu không biết cách phân tích n thành tha snguyên tthì  
cho đến nay, không có cách nào gii được bài toán thng dư bc hai trong thi gian đa  
thc. Điu đó cng cthêm nim tin rng bài toán thng dư bc hai và bài toán phân tích  
snguyên là có độ khó tương đương nhau.  
2.2.4 Bài toán tìm căn bc hai mod n  
Cho mt snguyên ln là hp sBlum, và mt sa Qn , tc a là mt thng dư  
bc hai theo modn . Hãy tìm mt căn bc hai ca a theo modn, tc tìm x sao cho x 2a  
(modn).  
Nếu biết phân tích n thành tha snguyên t, n =p.q , thì bng cách gii các  
phương trình x 2a theo các modp và modq, ri sau đó kết hp các nghim ca chúng li  
theo định lý sdư Trung quc ta sẽ được nghim theo modn , tc là căn bc hai ca a  
2
theo modn cn tìm. Vì mi phương trình x a theo modp và modq có hai nghim  
(tương ng theo modp và modq ), nên kết hp li ta được bn nghim, tc bn căn bc  
hai ca a theo modn. Người ta đã tìm được mt sthut toán tương đối đơn gin (trong  
thi gian đa thc) gii phương trình x 2a (modp) vi p là snguyên t. Như vy, bài  
toán tìm căn bc hai modn có thqui dn trong thi gian đa thc vbài toán phân tích số  
nguyên. Ngược li, nếu có thut toán Α gii bài toán tìm căn bc hai modn thì cũng có  
thxây dng mt thut toán gii bài toán phân tích snguyên như sau: Chn ngu nhiên  
mt sx vi gcd(x,n) =1, và tính a =x2modn. Dùng thut toán Α cho a để tìm mt căn bc  
hai modn ca a. Gi căn bc hai tìm được đó là y. Nếu y ≡ ±x (modn), thì phép thcoi  
như tht bi, và ta phi chn tiếp mt sx khác. còn nếu y !≡ ±x (modn), thì gcd(x-y, n)  
chc chn là mt ước skhông tm thường ca n, cthp hay là q. Vì n có 4 căn bc  
hai modn nên xác sut ca thành công mi ln thlà 1/2, và do đó strung bình (kỳ  
vng toán hc) các phép thử để thu được mt tha sp hayq ca n là 2, từ đó ta thu được  
mt thut toán gii bài toán phân tích snguyên (Blum) vi thi gian trung bình đa thc.  
Tóm li, theo mt nghĩa không cht chlm, ta có thxem hai bài toán phân tích số  
nguyên và tìm căn bc hai modn là khó tương đương nhau.  
12  
2.2.5 Bài toán lôgarit ri rc  
Cho snguyên tp, mt phn tnguyên thuα theo modp (hay α là phn tử  
nguyên thuca Zp ), và mt phn tβ Zp .Tìm snguyên x (0x p - 2) sao cho α x ≡  
β (modp).  
Ta đã biết rng trong trường hp chung, cho đến nay chưa có mt thut toán nào  
gii bài toán này trong thi gian đa thc. Bài toán này cũng được suy rng cho các nhóm  
cyclic hu hn như sau:  
2.2.6 Bài toán lôgarit ri rc suy rng  
Cho mt nhóm cyclic hu hn G cp n, mt phn tsinh (nguyên thu) α ca G,  
và mt phn tβ G. Tìm snguyên x (0x n - 1) sao cho α x = β.  
Các nhóm được quan tâm nhiu nht trong lý thuyết mt mã là: nhóm nhân ca  
trường hu hn GF (p) - đẳng cu vi nhóm Zp ca trường Zp ,nhóm nhân F2m ca  
trường hu hn GF (2m), nhóm nhân:  
Z= a :0 a n 1,gcd(a,n) =1  
{
}
n
ca trường Zn vi n là hp s, nhóm gm các đim trên mt đường cong elliptic xác định  
trên mt trường hu hn, v.v...  
2.2.7 Bài toán Diffie-Hellman  
Cho snguyên tp, mt phn tnguyên thuα theo modp (tc phn tsinh ca Zp ), và  
các phn tαa mod p αb mod p .  
Hãy tìm giá trαab mod p .  
Có thchng minh được rng bài toán Diffie-Hellman qui dn được vbài toán lôgarit  
ri rc trong thi gian đa thc. Thc vy, giscó thut toán Α gii bài toán lôgarit ri  
rc. Khi đó, cho mt bdliu vào ca bài toán Diffie-Hellman gm p, α ,αa mod p và  
αb mod p ; trước hết dùng thut toán Α cho (p, α ,αa mod p ) ta tìm được a , và sau đó tính  
được :  
αab mod p =(αb )a mod p.  
13  
Người ta cũng chng minh được hai bài toán lôgarit ri rc và Diffie-Hellman là tương  
đương vmt tính toán trong mt strường hp, ví dp -1 là B-mn vi B = O ((lnp)c ),c  
là hng s.  
Tương tnhư vi bài toán lôgarit ri rc, ta cũng có thể định nghĩa các bài toán Diffie-  
Hellman suy rng cho các nhóm cyclic hu hn khác.  
2.2.8 Bài toán gii mã đối vi mã tuyến tính  
Mã tuyến tính là mt lp mã truyn tin có tính cht tsa sai được sdng trong  
kthut truyn tin shoá. Ta phát biu bài toán gii mã đối vi mã tuyến tính như sau:  
Cho mt ma trn cp n xm A=(aij) gm các thành phn là 0 hoc 1, mt vectơ y  
=(y1,y2,...,ym) các giá tr0 và 1, và mt snguyên dương K. Hi: có hay không mt vectơ  
x =(x1,x2,...,xn) gm các s0 hoc 1 và có không nhiu hơn K s1 sao cho vi mi j (1j  
m):  
n
x .a y (mod 2) ?  
i
ij  
j
i=1  
Chú ý rng ở đây, x là vectơ thông tin, và y là vectơ mã, phép gii mã là tìm li x  
khi nhn được y, bài toán này tiếc thay li là mt bài toán khó; Berlekamp, McEliece và  
Tilborg năm 1978 đã chng minh nó thuc lp các bài toán Np đầy đủ !  
Da trên các bài toán shc nêu trên, nhiu hmã bt đối xng đã ra đời, trong  
khuôn khlun văn này chúng ta đi sâu nghiên cu hmt RSA. Hmt RSA được phát  
minh bi Ron Rivest, Adi Shamir, và Len Adleman [18], được đưa ra công khai ln đầu  
tiên vào tháng 8 năm 1977 trên tp chí khoa hc M. Hmt thường sdng cho vic  
cung cp sriêng tư và bo đảm tính xác thc ca dliu s. Sơ đồ chung ca hmã  
khoá công khai được cho bi :  
S = (P , C , K , E , D )  
trong đó P là tp ký tbn rõ, C là tp ký tbn mã, K là tp các khoá K , mi khoá K  
gm có hai phn K =(K’,K''), K' là khoá công khai dành cho vic lp mt mã, còn K'' là  
khoá bí mt dành cho vic gii mã. Vi mi ký tbn rõ xP , thut toán lp mã E cho  
ta ký tmã tương ng y =E (K', x) C , và vi ký ty thut toán gii mã D scho ta  
li ký tbn rõ x : D (K'', y) = D (K'', E (K', x)) =x.  
14  
Để xây dng mt hmã khoá công khai RSA, ta chn trước mt snguyên n  
=p.q là tích ca hai snguyên tln, chn mt se sao cho gcd(e, φ (n)) =1, và tính sd  
sao cho  
e.d 1(modφ (n)).  
Mi cp K =(K’,K''), vi K' =(n,e) và K'' = d slà mt cp khoá ca mt hmt mã RSA  
cthcho mt người tham gia.  
Như vy, sơ đồ chung ca hmt mã RSA được định nghĩa bi danh sách (1), trong đó:  
P = C = Zn , trong đó n là mt snguyên Blum, tc là tích  
nguyên t;  
ca hai số  
K = {K =(K’,K''): K' =(n,e) và K'' = d, gcd(e, φ (n)) =1,  
e.d 1(modφ (n))};  
E D được xác định bi:  
E (K', x) = xe modn, vi mi x P ,  
D (K'', y) = yd modn, vi mi y C .  
Để chng tỏ định nghĩa trên là hp thc, ta phi chng minh rng vi mi cp khoá K  
=(K' ,K'' ), và mi x P , ta đều có  
D (K'', E (K', x)) = x .  
Thc vy, do e.d 1(modφ (n)) ta có thviết e.d = t .φ (n) +1. Nếu x nguyên tố  
vi n , thì dùng định lý Euler (xem 2.1.3) ta có  
D (K'', E (K', x)) = xed xtφ(n)+1 xtφ(n).x(mod n) = x.  
Nếu x không nguyên tvi n , thì do n =p.q , hoc x chia hết cho p và nguyên tố  
vi q, hoc x chia hết cho q và nguyên tvi p, và  
φ (n) =(p -1).(q -1),trong chai trường hp ta đều có  
xtφ(n)+1 x(mod p),  
xtφ(n)+1 x(mod q);  
từ đó suy ra xtφ(n)+1 x(mod n), tc D (K'', E (K', x)) =x.  
15  
Tính bo mt ca RSA có độ khó tương đương vi bài toán phân tích số  
nguyên (Blum) thành tha snguyên t. Do đó, gituyt mt khoá bí mt d, hay giữ  
tuyt mt các tha sp,q , là có ý nghĩa rt quyết định đến vic bo vtính an toàn ca hệ  
mt mã RSA.  
2.3 Vn đề thám mã  
Mc tiêu ca thám mã (phá mã) là tìm nhng đim yếu hoc không an toàn trong  
phương thc mt mã hóa. Thám mã có thể được thc hin bi nhng ktn công ác ý,  
nhm làm hng hthng; hoc bi nhng người thiết kế ra hthng (hoc nhng người  
khác) vi ý định đánh giá độ an toàn ca hthng. Có rt nhiu loi hình tn công thám  
mã, và chúng có thể được phân loi theo nhiu cách khác nhau. Mt trong nhng đặc  
đim liên quan là nhng người tn công có thbiết và làm nhng gì để hiu được thông  
tin bí mt. Ví d, nhng người thám mã chtruy cp được bn mã hay không? hay anh ta  
có biết hay đoán được mt phn nào đó ca bn rõ? hoc thm chí: Anh ta có chn la  
các bn rõ ngu nhiên để mt mã hóa? Các kch bn này tương ng vi tn công bn mã,  
tn công biết bn rõ và tn công chn la bn rõ.  
Trong khi công vic thám mã thun túy sdng các đim yếu trong các thut  
toán mt mã hóa, nhng cuc tn công khác li da trên sthi hành, được biết đến như là  
các tn công side-channel. Nếu người thám mã biết lượng thi gian mà thut toán cn để  
mã hóa mt lượng bn rõ nào đó, anh ta có thsdng phương thc tn công thi gian  
để phá mt mã. Người tn công cũng có thnghiên cu các mu và độ dài ca thông đip  
để rút ra các thông tin hu ích cho vic phá mã; điu này được biết đến như thám mã  
lưu thông  
Nếu như hthng mã sdng khóa xut phát tmt khu, chúng có nguy cơ bị  
tn công kiu duyt toàn b(brute force), vì kích thước không đủ ln cũng như thiếu tính  
ngu nhiên ca các mt khu. Thám mã tuyến tính và Thám mã vi phân là các phương  
pháp chung cho mã hóa khóa đối xng. Khi mã hóa da vào các vn đề toán hc như độ  
khó NP, ging như trong trường hp ca thut toán khóa bt đối xng, các thut toán như  
phân tích ra tha snguyên ttrthành công ctim năng cho thám mã. lun văn này,  
ta tp trung nghiên cu vn đề thám mã vi RSA. Tkhi được công bln đầu, hRSA  
đã được phân tích hsan toàn bi nhiu nhà nghiên cu. Mc du vi nhiu năm  
nghiên cu và đã có mt scuc tn công n tượng nhưng không mang lai kết qu(phá  
16  
hy). Chúng ta chra nhng mi nguy him ca người sdng RSA cn ci thin. Mc  
đích ca chúng ta là nghiên cu, cài đặt tn công và mô tcác công ctoán hc mà  
chúng ta sdng.  
Quá trình nghiên cu ca chúng ta tuân theo chun ngm định và sdng Alice  
và Bob để biu thcho hai phía mun truyn thông ln nhau. Chúng ta coi Marvin là kẻ  
gian mun tn công nghe lén hay ly trm trm thông tin gia Alice và Bob. Ta bt đầu  
mô tmt phiên bn được đơn gin hóa ca hmt RSA: GisN=pq là tích ca hai số  
nguyên tln cùng kích thước (mi sn/2 bít). SN vi kích thc 1024 bit, nghĩa là 309  
sthp phân. Mi mt nhân tlà 512 bit. Gise, d là hai snguyên tha mãn ed = 1  
mod ϕ (N) vi điu kin ϕ (N) = (p 1)(q 1) là cp ca nhóm nhân trên Z* . Chúng ta  
N
gi N là modul RSA, e là smũ mã hóa và d là smũ gii mã. Cp (N,e) là khóa công  
khai. Cp (N,d) được gi là khóa bí mt hay còn gi là khóa riêng và chcó người nhn  
mi được biết. Khóa bí mt dùng để gii mã bn mã.  
Mt thông đip (message) là mt snguyên M Z* . Để mã hóa M, mt phép  
N
tính C=Me mod N. Để gii mã bn mã, cn tính Cd mod N. Tc là:  
Cd = Med = M (mod N)  
Ở đây phương trình cui cùng được chra bi định lý Euler. Người ta xác định  
(hay định nghĩa) hàm RSA là mt ánh xf: x α xe mod N. Nếu d cho trước, hàm đó có  
thddàng nghch đảo được bng cách dùng phương trình trên. Chúng ta coi d như là  
mt ca sp (trapdoor) để nghch đảo hàm f. Bn cht ca vic tn công là nghiên cu độ  
khó ca hàm ngược (nghch đảo) RSA khi không cho trước ca sp d. Nói chính xác hơn,  
cho trước b3 (N,e,C), chúng ta mun biết được độ khó ca vic tìm căn bc e ca C  
*
theo mod N (N = p.q) như thế nào khi chưa biết nhân tca N. Vì ZN là mt tp hp hu  
hn nên người ta có thlit kê (đếm) được tt ccác phn tca Z* cho đến khi tìm  
N
được đúng snguyên (bc thông đip) M cn tìm. Rt tiếc là thi gian thc hin ca  
thut toán để tìm được đúng sM có cp N, nghĩa là kích cỡ đầu vào có cp smũ thì  
thi gian chy có cp log2N. Chúng ta quan tâm đến thut toán có thi gian bé hơn, tính  
bc ca nc điu kin n=log2N và c là mt hng snh(bé hơn 5), thc tế thut toán tt  
hay không phthuc vào kích thước đầu vào. Trong lun văn này chúng ta quan tâm đến  
thut toán được coi là có hiu qu. Chúng ta tp trung chyếu vào nghiên cu hàm  
ngược ca RSA để tn công vào RSA. Vic khó khăn ca tính hàm ngược RSA chính là  
17  
từ đầu vào ngu nhiên, được cho bi (N,e,C), mt ktn công không thtìm ra bn rõ M.  
Nếu cho trước (N,e,C), rt khó để tìm ra thông tin vM. Điu này được biết trong lý  
thuyết an ninh an toàn. Chúng ta chra rng RSA được mô tả ở trên là không an toàn: nếu  
cho (N,e,C), chúng ta có thddàng suy din ra mt vài thông tin ca bn rõ M (ví d,  
ký tJacobi ca M trên N được ddàng suy ra tC). RSA có thể được an toàn ngnghĩa  
bng vic thêm các bít ngu nhiên vào quá trình xlý mã hóa. Hàm RSA x α xe mod N  
là mt ví dvhàm ca sp mt chiu (trapdoor one-way function). Nó có thể được tính  
toán ddàng, nhưng như chúng ta đã biết không thtính ngược hiu qunếu không có  
(ca sp) d ngoi trmt vài trường hp đặc bit.  
18  
Chương 3 - TNG KT NHNG KT QUTN CÔNG VÀO HMT RSA  
TRONG NHNG NĂM QUA  
3.1 Mt sgithiết ngm định  
1) N – RSA modulus  
2) e – smũ mã hóa (encryption exponent)  
3) d – smũ gii mã (decryption exponent)  
4) M – Thông đip snguyên (message integer), M Z*  
N
5) Alice, Bob là đại din hai bên truyn thông đip cho nhau, Marvin là kẻ  
tn công (attacker)  
6) Hàm RSA là mt ánh xf: x α xe mod N. Nếu d cho trước, hàm đó có  
thddàng nghch đảo được bng cách dùng phương trình trên. Chúng ta coi d như là  
mt ca sp (trapdoor) để nghch đảo hàm f.  
7) Chúng ta nghiên cu độ khó ca hàm ngược (nghch đảo) RSA khi  
không cho trước ca sp d và nghiên cu phương pháp tn công RSA trong trường hp  
này.  
8) Chúng ta quan tm đến thut toán hu hiu có thi gian bé, tính bc ca  
nc điu kin n=log2N và c là mt hng snh(bé hơn 5).  
9) Vmt lý thuyết, nếu cho trước (N,e,C), rt khó để tìm ra thông tin về  
M.  
10) Tn công vét cn (brute-force attack) bng cách phân tích các modulus,  
thi gian chy vi snguyên n-bít là exp((c + o(1))n1/3log2/3n) trong đó c < 2 .  
3.2 Phân tích các snguyên ln  
Vn đề phân tích mt snguyên tln thành tích các snguyên tkhác nhau là  
bài toán rt hp dn và đã được nhiu nhà toán hc quan tâm nghiên cu; chng hn [1],  
[2], [3] tuy nhiên trong phm vi ca mt lun văn cao hc, em chtp trung nghiên cu  
trong trường hp N là tích ca hai snguyên tphân bit. sau đây là mt smnh đề  
quan trng phc vvic tn công cơ bn:  
Mnh đề 1:  
19  
GisN là mt stnhiên không chính phương (perfect square), tc N không phi là  
bình phương đúng ca mt snguyên t, tha mãn điu kin:  
N – 1 > ϕ (N) > N – N2/3  
Khi đó N là tích ca 2 snguyên tphân bit.  
Chng minh:  
Tht vy, rõ ràng N không phi là snguyên tvì nếu N là snguyên tthì  
ϕ (N) = N-1, trái vi githiết. Do githiết N không phi là bình phương ca mt số  
nguyên t. Như vy nếu N không phi là tích ca 2 snguyên tphân bit thì nó phi là  
tích ca nhiu hơn 2 snguyên t(không cn phân bit). Gisp là snguyên tnhỏ  
nht ca tích; Khi đó p N 1/3 do đó chúng ta có  
1
ϕ (N) N(1- ) N(1 – N-1/3) = N – N2/3  
p
Điu này mâu thun vi githiết. Vy N = p.q trong đó p,q là 2 snguyên tl, phân  
bit.  
Chú ý: Mnh đề đảo ca mnh đề 1 cũng đúng.  
Mnh đề 2:  
Vi (N,e) là khóa công khai ca RSA. Cho trước khóa riêng d, người ta có thể  
phân tích thành nhân tmôdul N=pq mt cách hiu qu. Ngược li cho các tha sca  
N, người ta có thkhôi phc được d mt cách có hiu qu.  
Tcác mnh đề ở trên người ta đã đưa ra mt stn công vào RSA sau đây:  
3.3 Các tn công cơ bn  
3.3.1 Modul chung  
Để tránh vic phân tích modul N = pq khác nhau cho các người dùng khác nhau,  
chúng ta ly N chung cho tt c. Cùng mt N được sdung cho tt cngười sdng.  
Trung tâm xác thc có thcung cp cho người sdng i vi mt cp ei, di và người sử  
dng i có mt khóa công khai là (N,ei) và khóa riêng là (N,di).  
Ban đầu chúng ta có: mt bn mã C = Mea mod N cung cp cho Alice không  
được mã hóa bi Bob, vì Bob không có da. Tuy nhiên điu này là nhm ln và kết qulà  
20  
hthng không an toàn. Bng mnh đề 1 (trên) Bob có thsdng các thành phn eb  
và db ca mình để nhân thóa N. N bnhân thóa bi Bob có thly được khóa riêng da  
ca Alice tkhóa công khai ea ca cô y. Vi cách tiếp cn này, theo Simmons chra  
rng mt modul RSA không nên sdng quá mt thc th.  
3.3.2 Mù (Blinding)  
Marvin chn ngu nhiên mt sr Z* đặt M’ = re M mod N. Sau đó anh ta  
N
nhBob ký lên M’. Bob có thcung cp chký ca mình là S’ lên M’. Nhưng tcách  
tính S’= (M’)d mod N, Marvin có thể đơn gin tính S = S’/r mod N để được chký  
ca Bob là S trên M.  
Se = (S’)e/re = (M’)ed/re = M’/re = M/(mod N)  
3.4 Smũ riêng bé (Low Private Exponnent)  
Trong thc tế, để gii mã nhanh đòi hi sd nhđiu này để llhng mà ktn  
công có ththc hin như sau. Trước hết ta nghiên cu định lý Wiener  
Định lý 1 (M. Wiener): Cho N = pq vi q < p< 2q. Gisd < 1/3N1/4. Cho trước (N,e)  
vi ed = 1 mod ϕ (N), Marvin có thtìm được d hiu qu.  
Vic chng minh định lý trên da trên xp xhóa phân sliên tc như sau:  
Khi ed = 1 mod ϕ (N), tn ti mt sk tha mãn ed - kϕ (N) = 1  
Vì thế:  
e
k
1
=
ϕ(N)  
d
dϕ(N)  
k
e
Do đó,  
là xp xca  
. Mc dù Marvin không biết ϕ (N), anh ta có thsử  
d
ϕ(N)  
dng N để xp xnó. Hơn na, tϕ (N) = N- p- q +1 và p + q-1< 3 N , chúng ta có | N -  
ϕ (N) | < 3 N .  
Sdng N thay vào ϕ (N), chúng ta có:  
e
k
ed kϕ(N) kN + kϕ(N)  
=
N
d
Nd  
21  
1k(N ϕ(N)) 3k N  
3k  
=
=
Nd  
Nd  
d N  
1
Bây gi, kϕ (N) = ed – 1 < ed. Te < ϕ (N), chúng ta thy rng k < d < N1/4. Vì thế ta  
3
có:  
e
k
1
1
<
dN1/ 4 2d 2  
N
d
k
e
Đây là hthc xp xcổ đin. Phân số  
vi d < N là xp xca  
nên bị  
d
N
chn ti log2N. Trong thc tế, tt ccác nhân tthu được tphân tích đều hi tti kết  
e
trin khai mrng phân số  
[12, Th, 177]. Tt ckết quả đó đều thu được tvic tính  
N
e
k
toán logN hi tca vic tính toán phân s. Mt trong nhng kết quả đó slà . Khi  
N
d
k
đó ed - kϕ (N) = 1, chúng ta có gcd(k,d) = 1, và vì thế  
là rút gn phân s. Thut toán  
d
tìm khóa riêng d là thut toán có thi gian tuyến tính.  
3.4.1 Độ ln e  
Thay vì rút gn e trong ϕ (N), ta sdng (N,e’) cho khóa công khai tha mãn e’ = e +  
t.ϕ (N) trong đó st ln. Rõ ràng có thsdng e’ thay thế e để mã hóa thông đip. Tuy  
nhiên, khi se có giá trln, theo chng minh trên thì sk không thnhhơn. Mt tính  
toán đơn gin chra rng nếu e’ > N1.5 thì skhông có vn đề gì xy ra mc dù sd nhỏ  
và tn công trên không ththc hin được. Nhưng điu bt tin là se ln slà tăng  
thi gian mã hóa.  
3.4.2 Sdng CRT  
Mt cách tiếp cn khác là sdng định lý đồng dư trung hoa (Chinese  
Remainder Theorem - CRT). Ta chn mt sd sao cho cdp = d mod (p - 1) và dp =d  
mod (q - 1) đều nh128 bits. Để gii mã nhanh bn C ta có thtiến hành: Trước hết ta  
22  
tính Mp = Cdp mod p và Mq = Cdq mod q . Sau đó sdng CRT để tính giá trM ZN  
tha mãn M = Mp mod p và M = Mq mod q. Kết quM phi tha mãn M = Cd mod N là  
bt buc. Mc du dp và dq là nhsong giá trd mod ϕ (N) có thln, tùy thuc vào  
ϕ (N). Theo kết qu, stn công ca định lý 2 không được áp dng. Chúng ta lưu ý rng  
nếu (N,e) được biết thì kẻ địch có thtn công N trong thi gian O(min( dp , dq )), vì  
thdp và dq không thquá nh.  
Mt khác ta không thbiết được điu gì xy ra đối vi vn đề an ninh này.  
Chúng ta chbiết thông qua tn công hu hiu ca Wiener. Định lý 1 gn đây đã được ci  
thin bi Boneh và Durfee [4], hchra rng svi d < N0.292, ktn công có thtính  
được d t(N,e). Kết qunày chra ranh gii ca Wiener là không rõ ràng. Nó có vnhư  
là d< N0.5, đây là mt bài toán m.  
0.5  
Bài toán m: Cho N = pq và d < N . Nếu Marvin biết (N,e) vi ed = 1 mod  
ϕ (N) và e < ϕ (N), anh ta có thtìm được d không ?  
3.5 Smũ công khai bé (Low public Exponent)  
Định lý 2 (Coppersmith): Cho N là mt snguyên và f Z[x] là mt đa thc mà có độ  
đo là d. Đặt X = N1/d-e cho e 0. Sau đó biết (N,f) Marvin có thtìm tt csnguyên |x0|  
< X tha mãn f(x0) = 0 mod N. Thi gian chy phthuc vào thi gian chy thut toán  
LLL vi trên mt lưới có khong cách là O(ω ) vi ω = min(1/e, log2 N).  
Định lý cung cp mt thut toán có thtìm kiếm hiu qutt cgc f ca N ít  
hơn X = N1/d. Vi X nhhơn, thi gian chy thut toán cũng gim. Sc mnh ca thut  
toán là có thtìm được gc ca N trong thi gian đa thc. Định lý Coppersmith làm vic  
rt hiu quvi mt snguyên t.  
3.5.1 Hastad's Broadcast Attack.  
Để đơn gin ta coi ei là thành phn công khai bng 3. Marvin tìm ra M rt đơn gin nếu k  
3. Thc vy, Marvin có được C1, C2, C3, tha mãn:  
C1 = M3 mod N1, C2 = M3 mod N2, C3 = M3 mod N3.  
Nên vi e = 3, gi các thông đip ging nhau đến 3 người nhn là không an toàn. Gii  
pháp chng tn công này chúng ta gn các thông đip trước khi mã hóa vi đa thc ?  
23  

Tải về để xem bản đầy đủ

pdf 57 trang yennguyen 13/05/2025 170
Bạn đang xem 30 trang mẫu của tài liệu "Khóa luận Các phương pháp tấn công RSA", để tải tài liệu gốc về máy hãy click vào nút Download ở trên.

File đính kèm:

  • pdfkhoa_luan_cac_phuong_phap_tan_cong_rsa.pdf