You are on page 1of 24

Bo co cui k

H m ha cng khai RSA

Ti liu ny DungCoi chm t thng bn cng phng mi lm bo co. Tn bn y


l : Nguyn Minh Tho, SV nm 3, i hc Cng ngh Thng tin H Ch Minh.
y l bi bo co cui k 1 mn ca Tho.
Mnh ch xin ghi vi dng ghi nhn ti liu ny ca cu y, cn trong bn gc
khng c ci trang ny :>

H m ha cng khai RSA

Trang 1

Bo co cui k

H m ha cng khai RSA

Tm ni dung bo co
Gii thiuTrang 2
H m ha cng khai..Trang 3
Chun b ton hc....Trang 5
H m ha cng khai RSA..Trang 7
1. Gii thiu
2. Cch to kha
3. M ha
4. Gii m
5. Tnh bo mt
6. Qu trnh to kha
7. Tc
8. Cc cch xm nhp
V.
Ch k in tTrang 15
VI.
Chng trnh ci t thut ton.Trang 16
VII. Nhn xt nh gi..Trang 23
VIII. Ti liu tham kho.Trang 23
I.
II.
III.
IV.

H m ha cng khai RSA

Trang 2

Bo co cui k

H m ha cng khai RSA

I.Gii thiu
Trong mi lnh vc kinh t, chnh tr, x hi, qun s lun c nhu cu
trao i thng tin gia cc c nhn, cc cng ty, t chc, hoc gia cc
quc gia vi nhau. Ngy nay, vi s pht trin ca cng ngh thng tin
t bit l mng internet th vic truyn ti thng tin d dng v nhanh
chng hn.

1.1 M hnh trao i thng tin qua mng theo cch thng thng.
V vn t ra l tnh bo mt trong qu trnh truyn ti thng tin, t
bit quan trng i vi nhng thng tin lin quan n chnh tr, qun s,
hp ng kinh t V vy nghnh khoa hc nghin cu v m ha thng
tin c pht trin. Vic m ha l lm cho thng tin bin sang mt dng
khc khi ch c bn gi v bn nhn mi c c, cn ngi ngoi
d nhn c thng tin nhng cng khng th hiu c ni dung.

1.2 M hnh trao i thng tin theo phng php m ha.

H m ha cng khai RSA

Trang 3

Bo co cui k

H m ha cng khai RSA

Nh chng ta thy m hnh 1.1: Vic trao i thng tin c thc hin
qua cc bc sau:
- To ra thng tin cn gi i.
- Gi thng tin ny cho i tc.
m hnh 1.2: Vic trao i thng tin c thc hin:
-

To thng tin cn gi
M ha v gi thng tin c m ha i.
i tc nhn v gii m thng tin
i tc c c thng tin ban u ca ngi gi.

Vi 2 thao tc m ha v gii m ta m bo thng tin c gi an


ton v chnh xc.
Chng ta c nhiu phng php m ha thng tin: y ta tm hiu
v h m ha cng khai RSA.

II. H m ha cng khai


1. Tm hiu v h m ha cng khai:
a.

Phn bit m ha b mt v m ha cng khai:

M ha b mt: thng tin s c m ha theo mt phng php ng vi


mt key, key ny dng lp m v ng thi cng gii m. V vy
key phi c gi b mt, ch c ngi lp m v ngi nhn bit c,
nu key b l th ngi ngoi s d dng gii m v c c thng tin.

M ha b mt
M ha cng khai: s dng 2 key public key private key.
Public key: c s dng m ho nhng thng tin m ta mun
chia s vi bt c ai. Chnh v vy ta c th t do phn pht n cho bt c
ai m ta cn chia s thng tin dng m ho.
H m ha cng khai RSA

Trang 4

Bo co cui k

H m ha cng khai RSA

Privite key: ng nh ci tn, Key ny thuc s hu ring t ca


bn(ng vi public key) v n c s dng gii m thng tin. Ch
mnh bn s hu n, Key ny khng c php v khng ln phn pht
cho bt c ai.
Ngha l mi ngi s gi 2 key 1 dng m ha, key ny c cng
b rng ri, 1 dng gii m, key ny gi kn.
Khi ai c nhu cu trao i thng tin vi bn, s dng public key m
bn cng b m ha thng tin v gi cho bn, khi nhn c bn dng
private key gii m. Nhng ngi khc d c nhn c thng tin
nhng khng bit c private key th cng khng th gii m v c
c thng tin.

M hnh m ha cng khai


b. C s l thuyt cho hnh thc m ha cng khai:

Hm mt pha.
Mt hm mt pha l hm m d dng tnh ton ra quan h mt chiu
nhng rt kh tnh ngc li. V nh : bit gi thit x th c th d
dng tnh ra f(x), nhng nu bit f(x) th rt kh tnh ra c x.
Trong trng hp ny kh c ngha l tnh ra c kt qu th phi
mt hng triu nm tnh ton, thm ch tt c my tnh trn th gii
ny u tnh ton cng vic .
Vy th hm mt pha tt nhng g ? Chng ta khng th s dng
chng cho s m ho. Mt thng bo m ho vi hm mt pha l khng
hu ch, bt k ai cng khng gii m c. i vi m ho chng
ta cn mt vi iu gi l ca sp hm mt pha.(kha)
Hp th l mt v d rt tuyt v hm mt pha cng nh hnh thc m
ha ny. Bt k ai cng c th b th vo thng. B th vo thng l
mt hnh ng cng cng. M thng th khng phi l hnh ng cng
H m ha cng khai RSA

Trang 5

Bo co cui k

H m ha cng khai RSA

cng. N l vic kh khn, khi bn khng c cha kha ng vi thng


th. Hn na nu bn c iu b mt (cha kho), n tht d dng m
hp th. H m ho cng khai c rt nhiu iu ging nh vy.

III. Chun b ton hc:


Trc ht, chng ta s nhc li nhng khi nim ton hc c bn cn thit
cho vic hiu RSA.

1- S nguyn t (prime)
s nguyn t l nhng s nguyn ch chia chn c cho 1 v cho chnh
n m thi.
V d : 2, 3, 5, 7, 11, 13, 17, 23...

2- Khi nim nguyn t cng nhau (relatively prime or


coprime)
Vi hai s nguyn dng a v b . Ta k hiu
GCD (a,b) : c chung ln nht ca a v b ( Greatest Common Divisor)
n gin ta k hiu
GCD(a,b) =(a,b)
V d : (4,6)=2
(5,6)=1
Hai s a v b gi l nguyn t cng nhau khi (a,b)=1
V d :
9 v 10 nguyn t cng nhau v (9,10)=1

3-Khi nim modulo


Vi m l mt s nguyn dng .Ta ni hai s nguyn a va b l ng d
vi nhau
modulo m nu m chia ht hiu a-b ( Vit l m|(a-b) )
K hiu a b ( mod m)
Nh vy a b (mod m ) khi v ch khi tn ti s nguyn k sao cho a = b
+km
V d :
13 3 ( mod 10 ) v 13= 3 + 1*10

H m ha cng khai RSA

Trang 6

Bo co cui k

H m ha cng khai RSA

4-Phi Hm EULER
nh ngha : Phi Hm Euler (n) c gi tr ti n bng s cc s khng
vt qu n v nguyn t cng nhau vi n
V d :
(5) = 4 , (6) = 2 ,(10) = 4

5-Mt s nh l c bn
nh l Euler : nu m l s nguyn dng v P nguyn t cng nhau vi
m th
P^(m) 1 (mod m )
Vy nu m v p nguyn t cng nhau . Ta t s = (m) th
P^s 1 (mod m)
Suy ra vi a= 1 + k*s
Ta c :
P^a P*(P^s)^k P*1^k(mod m) P (mod m)
vi e l s nguyn dng nguyn t cng nhau vi s ,tc l (e,s)=1
Khi tn ti mt nghch o d ca e modulo s
tc l e*d 1 (mod s) e*d = 1 + k*s
t E(P) C P^e(mod m)
t D(C) C^d (mod m)
Ta thy D(C) C^d P^e*d P^(1 + k*s ) P (mod m)
V d :
m = 10 , P = 9 ta c (10,9)=1
s = (10) = 4
e = 7 ta c (7,4) = 1
nghch o ca 7 modulo 4 la d = 3 v 7*3 =1 + 5*4
Lc ta c
E(P) C P^e 9 ^ 7 4.782.969 9 (mod 10) => C=9
D(C) C^d 9^3 729 9(mod 10)
Vy D chnh la hm ngc ca E
y l c s cho vic xy dng thut ton RSA m chng ta s bn k
phn sau

H m ha cng khai RSA

Trang 7

Bo co cui k

H m ha cng khai RSA

Tnh (m ) khi bit m . Chng ta c nh l sau y :


Gi s m = p1^a1*p2^a2* *pk^ak .Khi
(m) =( p1^a1 p1^(a1-1) )* * (pk^ak pk^(ak-1) )
V d :
m= 10
Ta phn tch 10 =2*5
=> (10) =( 2^1 2^0) *(5^1 5^0) = 1*4 = 4

IV. H m ha RSA:
1. Gii thiu
RSA c Rivest, Shamir v Adleman pht trin, l mt thun ton mt
m ha kha cng khai. N nh du mt s tin ha vt bc ca lnh
vc mt m hc trong vic s dng kha cng khai. RSA ang c s
dng ph bin trong thng mi in t v c cho l m bo an ton
vi iu kin di kha ln.
Thut ton c Ron Rivest, Adi Shamir v Len Adleman m t ln u
tin vo nm 1977 ti Hc vin Cng ngh Massachusetts (MIT). Tn ca
thut ton ly t 3 ch ci u ca tn 3 tc gi.
Trc , vo nm 1973, Clifford Cocks, mt nh ton hc ngi Anh
lm vic ti GCHQ, m t mt thut ton tng t. Vi kh nng tnh
ton ti thi im th thut ton ny khng kh thi v cha bao gi
c thc nghim. Tuy nhin, pht minh ny ch c cng b vo nm
1997 v c xp vo loi tuyt mt.
RSA l mt th d in hnh v mt ti ton hc tru tng li c th
p dng thc tin vo i sng thng nht . Khi nghin cu v cc s
nguyn t, t c ai ngh rng khi nim s nguyn t li c th hu dng
vo lnh vc truyn thng.

2.

Cch to kha:

H m ha cng khai RSA

Trang 8

Bo co cui k

H m ha cng khai RSA

Chng ta cn to ra mt cp kha lp m v gii m theo phng


php sau:
1.
2.
3.
4.
5.

Chn 2 s nguyn t ln
nhin v c lp.
Tnh:
.
Tnh: gi tr hm s le
Chn mt s t nhin e sao cho
cng nhau vi
.
Tnh: d sao cho

v vi

, la chn ngu
.
v l s nguyn t

Mt s lu :

Cc s nguyn t thng c chn bng phng php th xc


sut.
Cc bc 4 v 5 c th c thc hin bng gii thut Euclid m
rng (xem thm: s hc mun).
Bc 5 c th vit cch khc: Tm s t nhin sao cho
cng l s t nhin. Khi s dng gi
tr
.
T bc 3, PKCS#1 v2.1 s dng
thay
cho
).

Kha cng khai bao gm:

n, mun, v
e, s m cng khai (cng gi l s m m ha).

Kha b mt bao gm:

n, mun, xut hin c trong kha cng khai v kha b mt, v


d, s m b mt (cng gi l s m gii m).

Mt dng khc ca kha b mt bao gm:

p and q, hai s nguyn t chn ban u,


d mod (p-1) v d mod (q-1) (thng c gi l dmp1 v dmq1),
(1/q) mod p (thng c gi l iqmp)

H m ha cng khai RSA

Trang 9

Bo co cui k

H m ha cng khai RSA

Dng ny cho php thc hin gii m v k nhanh hn vi vic s dng


nh l s d Trung Quc (ting Anh: Chinese Remainder Theorem CRT). dng ny, tt c thnh phn ca kha b mt phi c gi b
mt.
y, p v q gi vai tr rt quan trng. Chng l cc phn t ca n v
cho php tnh d khi bit e. Nu khng s dng dng sau ca kha b mt
(dng CRT) th p v q s c xa ngay sau khi thc hin xong qu trnh
to kha.

*Chuyn i thng tin:


Trc khi thc hin m ha, ta phi thc hin vic chuyn i thng tin
(chuyn i t M sang m) sao cho khng c gi tr no ca M to ra vn
bn m khng an ton. Nu khng c qu trnh ny, RSA s gp phi mt
s vn sau:

Nu m = 0 hoc m = 1 s to ra cc bn m c gi tr l 0 v 1
tng ng
Khi m ha vi s m nh (chng hn e = 3) v m cng c gi tr
nh, gi tr me cng nhn gi tr nh (so vi n). Nh vy php
mun khng c tc dng v c th d dng tm c m bng cch
khai cn bc e ca c (b qua mun).
RSA l phng php m ha xc nh (khng c thnh phn ngu
nhin) nn k tn cng c th thc hin tn cng la chn thng tin
bng cch to ra mt bng tra gia thng tin v bn m. Khi gp
mt bn m, k tn cng s dng bng tra tm ra thng tin tng
ng.

Trn thc t, ta thng gp 2 vn u khi gi cc bn tin ASCII ngn


vi m l nhm vi k t ASCII. Mt on tin ch c 1 k t NULL s
c gn gi tr m = 0 v cho ra bn m l 0 bt k gi tr ca e v N.
Tng t, mt k t ASCII khc, SOH, c gi tr 1 s lun cho ra bn m
l 1. Vi cc h thng dng gi tr e nh th tt c k t ASCII u cho
kt qu m ha khng an ton v gi tr ln nht ca m ch l 255 v 2553
nh hn gi tr n chp nhn c. Nhng bn m ny s d dng b ph
m.
trnh gp phi nhng vn trn, RSA trn thc t thng bao gm
mt hnh thc chuyn i ngu nhin ha m trc khi m ha. Qu trnh
chuyn i ny phi m bo rng m khng ri vo cc gi tr khng an
ton. Sau khi chuyn i, mi thng tin khi m ha s cho ra mt trong s
kh nng trong tp hp bn m. iu ny lm gim tnh kh thi ca
H m ha cng khai RSA

Trang 10

Bo co cui k

H m ha cng khai RSA

phng php tn cng la chn thng tin (mt thng tin s c th tng
ng vi nhiu bn m tu thuc vo cch chuyn i).
Mt s tiu chun, chng hn nh PKCS, c thit k chuyn i
thng tin trc khi m ha bng RSA. Cc phng php chuyn i ny
b sung thm bt vo M. Cc phng php chuyn i cn c thit k
cn thn trnh nhng dng tn cng phc tp tn dng kh nng bit
trc c cu trc ca thng tin. Phin bn ban u ca PKCS dng mt
phng php c ng (ad-hoc) m v sau c bit l khng an ton
trc tn cng la chn thng tin thch ng (adaptive chosen ciphertext
attack). Cc phng php chuyn i hin i s dng cc k thut nh
chuyn i m ha bt i xng ti u (Optimal Asymmetric Encryption
Padding - OAEP) chng li tn cng dng ny. Tiu chun PKCS cn
c b sung cc tnh nng khc m bo an ton cho ch k RSA
(Probabilistic Signature Scheme for RSA - RSA-PSS).

M ha
Gi s c on thng tin M cn gi. u tin chuyn M thnh mt s
m<n theo mt hm c th o ngc (t m c th xc nh li M) c
tha thun trc.
Lc ny ta c m v bit n cng nh e ca ngi nhn. Ta s tnh c l bn
m ha ca m theo cng thc:

Hm trn c th tnh d dng s dng phng php tnh hm m (theo


mun) bng (thut ton bnh phng v nhn) Cui cng Ta gi c cho
i tc.

Gii m
Khi i tc nhn c t ta. i tc s dng kha b mt d tm c m t c
theo cng thc sau:

Bit m, i tc tm li M theo phng php tha thun trc. Qu trnh


gii m hot ng v ta c
.

H m ha cng khai RSA

Trang 11

Bo co cui k

H m ha cng khai RSA

Do ed 1 (mod p-1) v ed 1 (mod q-1), (theo nh l Fermat nh) nn:

Do p v q l hai s nguyn t cng nhau, p dng nh l s d Trung


Quc, ta c:
.
hay:
.

S ca qu trnh
H m ha cng khai RSA

Trang 12

Bo co cui k

H m ha cng khai RSA

Tnh bo mt
an ton ca h thng RSA da trn 2 vn ca ton hc: bi ton
phn tch ra tha s nguyn t cc s nguyn ln v bi ton RSA. Nu 2
bi ton trn l kh (khng tm c thut ton hiu qu gii chng)
th khng th thc hin c vic ph m ton b i vi RSA.
Bi ton RSA l bi ton tnh cn bc e mun n (vi n l hp s): tm s
m sao cho me=c mod n, trong (e, n) chnh l kha cng khai v c l
bn m. Hin nay phng php trin vng nht gii bi ton ny l phn
tch n ra tha s nguyn t. Khi thc hin c iu ny, k tn cng s
tm ra s m b mt d t kha cng khai v c th gii m theo ng quy
trnh ca thut ton. Nu k tn cng tm c 2 s nguyn t p v q sao
cho: n = pq th c th d dng tm c gi tr (p-1)(q-1) v qua xc
nh d t e. Cha c mt phng php no c tm ra trn my tnh
gii bi ton ny trong thi gian a thc (polynomial-time). Tuy nhin
ngi ta cng cha chng minh c iu ngc li (s khng tn ti
ca thut ton). Xem thm phn tch ra tha s nguyn t v vn ny.
Ti thi im nm 2005, s ln nht c th c phn tch ra tha s
nguyn t c di 663 bt vi phng php phn tn trong khi kha ca
RSA c di t 1024 ti 2048 bt. Mt s chuyn gia cho rng kha
1024 bt c th sm b ph v (cng c nhiu ngi phn i vic ny).
Vi kha 4096 bt th hu nh khng c kh nng b ph v trong tng
lai gn. Do , ngi ta thng cho rng RSA m bo an ton vi iu
kin n c chn ln. Nu n c di 256 bt hoc ngn hn, n c
th b phn tch trong vi gi vi my tnh c nhn dng cc phn mm
c sn. Nu n c di 512 bt, n c th b phn tch bi vi trm my
tnh ti thi im nm 1999. Mt thit b l thuyt c tn l TWIRL do
Shamir v Tromer m t nm 2003 t ra cu hi v an ton ca
kha 1024 bt. V vy hin nay ngi ta khuyn co s dng kha c
di ti thiu 2048 bt.
Nm 1993, Peter Shor cng b thut ton Shor ch ra rng: my tnh
lng t (trn l thuyt) c th gii bi ton phn tch ra tha s trong
thi gian a thc. Tuy nhin, my tnh lng t vn cha th pht trin
c ti mc ny trong nhiu nm na.

H m ha cng khai RSA

Trang 13

Bo co cui k

H m ha cng khai RSA

Qu trnh to kha
Vic tm ra 2 s nguyn t ln p v q thng c thc hin bng
cch th xc sut cc s ngu nhin c ln ph hp (dng php kim
tra nguyn t cho php loi b hu ht cc hp s).
p v q cn cn c chn khng qu gn nhau phng trng hp phn
tch n bng phng php phn tch Fermat. Ngoi ra, nu p-1 hoc q-1 c
tha s nguyn t nh th n cng c th d dng b phn tch v v th p
v q cng cn c th trnh kh nng ny.
Bn cnh , cn trnh s dng cc phng php tm s ngu nhin m
k tn cng c th li dng bit thm thng tin v vic la chn (cn
dng cc b to s ngu nhin tt). Yu cu y l cc s c la
chn cn ng thi ngu nhin v khng d on c. y l cc yu
cu khc nhau: mt s c th c la chn ngu nhin (khng c kiu
mu trong kt qu) nhng nu c th d on c d ch mt phn th
an ninh ca thut ton cng khng c m bo. Mt v d l bng cc
s ngu nhin do tp on Rand xut bn vo nhng nm 1950 c th rt
thc s ngu nhin nhng k tn cng cng c bng ny. Nu k tn cng
on c mt na ch s ca p hay q th chng c th d dng tm ra
na cn li (theo nghin cu ca Donald Coppersmith vo nm 1997)
Mt im na cn nhn mnh l kha b mt d phi ln. Nm 1990,
Wiener ch ra rng nu gi tr ca p nm trong khong q v 2q (kh ph
bin) v d < n1/4/3 th c th tm ra c d t n v e.
Mc d e tng c gi tr l 3 nhng hin nay cc s m nh khng cn
c s dng do c th to nn nhng l hng ( cp phn chuyn
i vn bn r). Gi tr thng dng hin nay l 65537 v c xem l
ln v cng khng qu ln nh hng ti vic thc hin hm m.

Tc
RSA c tc thc hin chm hn ng k so vi DES v cc thut ton
m ha i xng khc. Trn thc t, Bob s dng mt thut ton m ha
i xng no m ha vn bn cn gi v ch s dng RSA m
ha kha gii m (thng thng kha ngn hn nhiu so vi vn bn).
Phng thc ny cng to ra nhng vn an ninh mi. Mt v d l cn
phi to ra kha i xng tht s ngu nhin. Nu khng, k tn cng
(thng k hiu l Eve) s b qua RSA v tp trung vo vic on kha
i xng.
H m ha cng khai RSA

Trang 14

Bo co cui k

H m ha cng khai RSA

8. Cc dng tn cng
a. Phn phi kha
Cng ging nh cc thut ton m ha khc, cch thc phn phi kha
cng khai l mt trong nhng yu t quyt nh i vi an ton ca
RSA. Qu trnh phn phi kha cn chng li c tn cng ng gia
(man-in-the-middle attack). Gi s k xu(C) c th gi cho Ngi gi
thng tin(A) mt kha bt k v khin (A) tin rng l kha (cng khai)
ca i tc(B). ng thi (C) c kh nng c c thng tin trao i
gia (A) v (B). Khi , (C) s gi cho (A) kha cng khai ca chnh
mnh (m (A) ngh rng l kha ca (B)). Sau , (C) c tt c vn
bn m ha do (A) gi, gii m vi kha b mt ca mnh, gi 1 bn copy
ng thi m ha bng kha cng khai ca (B) v gi cho (B). V
nguyn tc, c (A) v (B) u khng pht hin ra s can thip ca ngi
th ba. Cc phng php chng li dng tn cng ny thng da trn
cc chng thc kha cng khai (digital certificate) hoc cc thnh phn
ca h tng kha cng khai (public key infrastructure - PKI).

b. Tn cng da trn thi gian


Vo nm 1995, Paul Kocher m t mt dng tn cng mi ln RSA: nu
k tn cng nm thng tin v phn cng thc hin m ha v xc nh
c thi gian gii m i vi mt s bn m la chn th c th nhanh
chng tm ra kha d. Dng tn cng ny c th p dng i vi h thng
ch k in t s dng RSA. Nm 2003, Dan Boneh v David Brumley
chng minh mt dng tn cng thc t hn: phn tch tha s RSA dng
mng my tnh (My ch web dng SSL). Tn cng khai thc thng
tin r r ca vic ti u ha nh l s d Trung quc m nhiu ng dng
thc hin.
chng li tn cng da trn thi gian l m bo qu trnh gii m
lun din ra trong thi gian khng i bt k vn bn m. Tuy nhin,
cch ny c th lm gim hiu sut tnh ton. Thay vo , hu ht cc
ng dng RSA s dng mt k thut gi l che mt. K thut ny da
trn tnh nhn ca RSA: thay v tnh cd mod n, Alice u tin chn mt s
ngu nhin r v tnh (rec)d mod n. Kt qu ca php tnh ny l rm mod n
v tc ng ca r s c loi b bng cch nhn kt qu vi nghch o
ca r. i vi mi vn bn m, ngi ta chn mt gi tr ca r. V vy,
thi gian gii m s khng cn ph thuc vo gi tr ca vn bn m.

H m ha cng khai RSA

Trang 15

Bo co cui k

H m ha cng khai RSA

c. Tn cng bng phng php la chn thch nghi bn m


Nm 1981, Daniel Bleichenbacher m t dng tn cng la chn thch
nghi bn m (adaptive chosen ciphertext attack) u tin c th thc hin
trn thc t i vi mt vn bn m ha bng RSA. Vn bn ny c
m ha da trn tiu chun PKCS #1 v1, mt tiu chun chuyn i bn
r c kh nng kim tra tnh hp l ca vn bn sau khi gii m. Do
nhng khim khuyt ca PKCS #1, Bleichenbacher c th thc hin mt
tn cng ln bn RSA dng cho giao thc SSL (tm c kha phin). Do
pht hin ny, cc m hnh chuyn i an ton hn nh chuyn i m
ha bt i xng ti u (Optimal Asymmetric Encryption Padding) c
khuyn co s dng. ng thi phng nghin cu ca RSA cng a ra
phin bn mi ca PKCS #1 c kh nng chng li dng tn cng ni
trn.

V. ch k in t:
H m RSA c tnh an ton rt cao . Nhng nhc im ln l tc m
ha chm (nht l so vi cc h m i xng c cng an ton ) . Bi
vy n ch c s dng vi cc vn bn ngn , v thng dng trong
giao thc xc nhn ch th(ch k in t)
Ch k in t m bo khi ngi nhn c c mt th th bit chc
chn ai l tc gi bc th . V cng m bo vic khng ai c th mo
danh ngi khc gi th.
Ch k in t v ch k tay c chung t im l rt kh xy ra trng
hp trng.
lm c iu , khi anh U mun gi bc th P cho anh V . u
tin anh U dng kha lp m Ev ( c cng khai ca anh V ) m ha
P thu c Ev ( P ) . Sau dng kha gii m ca mnh l Du ( b mt )
tnh Du (Ev ( P )) = C v gi i .
Sau khi nhn c mt th C , anh V s dng kha lp m ca anh U l
Eu ( cng khai ) tnh Eu (C) = Eu (Du (Ev ( P ))) = Ev ( P ) ( do Eu l
hm ngc ca Du ) Cui cng dng kha gii m b mt Dv tnh ra
Dv (Ev ( P )) = P chnh l bc th ban u .

H m ha cng khai RSA

Trang 16

Bo co cui k

H m ha cng khai RSA

R rng vi cch ny chng ta ch c th p dng vi nhng vn bn


ngn ,cn khi vn bn di chng ta phi p dng mt phng php bin
th t phng php trn , l s dng hm bm .
l mt hm c cng khai trn ton h thng . Khi cn gi vn bn ,
ngi ta s gi km theo bn gi tr bm ca vn bn , sau khi nhn c
ngi ta s bm vn bn li ln na v so snh vi gi tr bm ca bn
gi , nu trng khp th c th khng nh vn bn khng b thay i
trn ng i

M hnh ch k in t

VI. Chng trnh hin thc thut ton M


ha RSA:
2 tc v chnh ca chng trnh l tnh, to ra cp kha ca h RSA, v
thc hin m ha mt on vn bn ngn theo phng thc ny:

I.To cp kha (e,n) v (d,n):


Cc s liu cn pht sinh l p,q,e:
Cc hm cn xy dng:

H m ha cng khai RSA

Trang 17

Bo co cui k

H m ha cng khai RSA

Hm kim tra s nguyn t:


public bool kt_SNT(int number)
{
if (number == 1 || number == 2)
return true;
else
{
int tam = (int)Math.Sqrt(number);
for (int i = 2; i <= tam; i++)
{
if (number % i == 0)
return false;
}
}
return true;
}

Hm tm c s chung ln nht:

public int USCLN(int a, int b)


{
if (b == 0)
return a;
else
return USCLN(b, a % b);
}

Hm kim tra 2 s c phi l nguyn t cng nhau khng:


public bool kt_NTCN(int a, int b)
{
if (USCLN(a, b) == 1)
return true;
else
return false;
}

3 hm trn s dng cho vic pht sinh cc s p,q,e theo ng Thut ton
m ha RSA:
Hm tnh d,n theo p,q,e:
public void tinhkey()
{

n = p * q;
//// tim d
int i = 1;
int temp;
do
{
temp = 1 + i * delta;
d = (1 + i * delta) / ei;
i++;
} while (!(d * ei == temp));
}

H m ha cng khai RSA

Trang 18

Bo co cui k

H m ha cng khai RSA

II. M ha mt on vn bn:
Vic m ha mt on text ngn s c thc hin nh sau:
Gi s ta c on text ABCD
Trc tin ta thc hin chuyn on text v dng s theo nguyn tt sau:
Ta quy nh cc k t s tng ng vi cc s nh sau (ta ch xt k t
thng)
a
01
n
14
b
02
o
15
c
03
p
16
d
04
q
17
e
05
r
18
f
06
s
19
g
07
t
20
h
08
u
21
i
09
v
22
J
10
w
23
k
11
x
24
l
12
y
25
m
13
z
26
space
27
Kt qu:
ABCD

s chuyn thnh : 01 02 03 04:

Sau khi chuyn cc ch ci trong vn bn thnh cc ch s tip theo


nhm chng li thnh tng khi nh sau :
0102 0304
( lu l khi khi cui cng ch c mt ch ci ta thm vo mt ch ci
khc sao cho khng gy s hiu lm , thng ta thm vo ch k t
space)
V by gi ta tin hnh m ha theo tng khi:
m ha tng khi P ta thc hin

H m ha cng khai RSA

Trang 19

Bo co cui k

H m ha cng khai RSA

C= (P ^e) mod n
Gii m:
P = (C^d) mod n
V d ta c p =61, q = 53, e =17 tnh c, n = 3233, d = 2753,
Trong gi tr trung gian tnh d (n) = 3120.

Lu : chn e v khi tin P


Ta phi chn e sao cho 2 ^ e > n . ( => P^e > n vi mi P ) . V Nu P^e < n th C =
P^e ( vi e cng khai ). Nh vy gii m , ta ch cn tnh cn bc e ca C ( tnh
theo cch thng thng ) .
Cng v l do , ta cng nn chn cch nhm sao cho P ln . Nhng P khng
c vt qu n v nu P > n th :
Khi gii m mt khi C : ta c D(C) P(mod n) P1 ( mod n) ( vi P1 < n < P )
Ta khng tm c gi tr P ban u

V d: Ta thc hin m ha:


aw
Trc tin ta thc hin chuyn aw -> 0123:
Sau m ha n theo cng thc trnh by trn ta c:
(0123 ^ 17) mod 3233 = 855
Vy 855 l thng tin dng m, c c ta cn gi m n:
(855 ^ 2735) mod 3233 = 123:
Khi nhn c thng tin gc dng s ta a n v ng format:
123 -> 0123
Sau chuyn v dng k t:
0123 -> aw
y chng ta m ha on vn bn theo tng khi, Vn bn dc chia
nh v m ha theo th t, Khi gii m ta cng thc hin gi m theo
tng khi v ng th t.
Mt im cn lu : trong qu trnh tnh ton ta gp
(855^2735) mod 3233
855^2735 l mt s rt ln:
H m ha cng khai RSA

Trang 20

Bo co cui k

H m ha cng khai RSA

855^2735 =
50432888958416068734422899127394466631453878360035509315554967564501
05562861208255997874424542811005438349865428933638 493024645144150785
17209179665478263530709963803538732650089668607477 182974582295034295
04079035818459409563779385865989368838083602840132 509768620766977396
67533250542826093475735137988063256482639334453092 594385562429233017
51977190016924916912809150596019178760171349725439 279215696701789902
13430714646897127961027718137839458696772898693423 652403116932170892
69617643726521315665833158712459759803042503144006 837883246101784830
71758547454725206968892599589254436670143220546954 317400228550092386
36942444855973333063051607385302863219302913503745 471946757776713579
54965202919790505781532871558392070303159585937493 663283548602090830
63550704455658896319318011934122017826923344101330 116480696334024075
04695258866987658669006224024102088466507530263953 870526631933584734
81094876156227126037327597360375237388364148088948 438096157757045380
08107946980066734877795883758289985132793070353355 127509043994817897
90548993381217329458535447413268056981087263348285 463816885048824346
58897839333466254454006619645218766694795528023088 412465948239275105
77049113329025684306505229256142730389832089007051 511055250618994171
23177795157979429711795475296301837843862913977877 661298207389072796
76720235011399271581964273076407418989190486860748 124549315795374377
12441601438765069145868196402276027766869530903951 314968319097324505
45234594477256587887692693353918692354818518542420 923064996406822184
49011913571088542442852112077371223831105455431265 307394075927890822
60604317113339575226603445164525976316184277459043 201913452893299321
61307440532227470572894812143586831978415597276496 357090901215131304
15756920979851832104115596935784883366531595132734 467524394087576977
78908490126915322842080949630792972471304422194243 906590308142893930
29158483087368745078977086921845296741146321155667 865528338164806795
45594189100695091965899085456798072392370846302553 545686919235546299
57157358790622745861957217211107882865756385970941 907763205097832395
71346411902500470208485604082175094910771655311765 297473803176765820
58767314028891032883431850884472116442719390374041 315564986995913736
51621084511374022433518599576657753969362812542539 006855262454561419
25880943740212888666974410972184534221817198089911 953707545542033911
96453936646179296816534265223463993674233097018353 390462367769367038
05342644821735823842192515904381485247388968642443 703186654199615377
91396964900303958760654915244945043600135939277133 952101251928572092
59788751160195962961569027116431894637342650023631 004555718003693586
05526491000090724518378668956441716490727835628100 970854524135469660
84481161338780654854515176167308605108065782936524 108723263667228054
00387941086434822675009077826512101372819583165313 969830908873174174
74535988684298559807185192215970046508106068445595 364808922494405427
66329674592308898484868435865479850511542844016462 352696931799377844
30217857019197098751629654665130278009966580052178 208139317232379013
23249468260920081998103768484716787498919369499791 482471634506093712
56541225019537951668976018550875993133677977939527 822273233375295802
63122665358948205566515289466369032083287680432390 611549350954590934
06676402258670848337605369986794102620470905715674 470565311124286290
H m ha cng khai RSA

Trang 21

Bo co cui k

H m ha cng khai RSA

73548884929899835609996360921411284977458614696040 287029670701478179
49024828290748416008368045866685507604619225209434 980471574526881813
18508591501948527635965034581536416565493160130613 304074344579651083
80304062240278898042825189094716292266898016684480 963645198090510905
79651307570379245958074479752371266761011473878742 144149154813591743
92799496956415653866883891715446305611805369728343 470219206348999531
91764016110392490439179803398975491765395923608511 807653184706473318
01578207412764787592739087492955716853665185912666 373831235945891267
87095838000224515094244575648744840868775308453955 217306366938917023
94037184780362774643171470855830491959895146776294 392143100245613061
11429937000557751339717282549110056008940898419671 319709118165542908
76109008324997831338240786961578492341986299168008 677495934077593066
02207814943807854996798945399364063685722697422361 858411425048372451
24465580270859179795591086523099756519838277952945 756996574245578688
38354442368572236813990212613637440821314784832035 636156113462870198
51423901842909741638620232051039712184983355286308 685184282634615027
44187358639504042281512399505995983653792227285847 422071677836679451
34363807086579774219853595393166279988789721695963 455346336497949221
13017661316207477266113107012321403713882270221723 233085472679533015
07998062253835458948024820043144726191596190526034 069061930939290724
10284948700167172969517703467909979440975063764929 635675558007116218
27727603182921790350290486090976266285396627024392 536890256337101471
68327404504583060228676314215815990079164262770005 461232291921929971
69907690169025946468104141214204472402661658275680 524166861473393322
65959127006456304474160852916721870070451446497932 266687321463467490
41185886760836840306190695786990096521390675205019 744076776510438851
51941619318479919134924388152822038464729269446084 915299958818598855
19514906630731177723813226751694588259363878610724 302565980914901032
78384821401136556784934102431512482864529170314100 400120163648299853
25166349056053794585089424403855252455477792240104 614890752745163425
13992163738356814149047932037426337301987825405699 619163520193896982
54478631309773749154478427634532593998741700138163 198116645377208944
00285485000269685982644562183794116702151847721909 339232185087775790
95933267631141312961939849592613898790166971088102 766386231676940572
95932538078643444100512138025081797622723797210352 196773268441946486
16402961059899027710532570457016332613431076417700 043237152474626393
99011899727845362949303636914900881060531231630009 010150839331880116
68215163893104666659513782749892374556051100401647 771682271626727078
37012242465512648784549235041852167426383189733332 434674449039780017
84689726405462148024124125833843501704885320601475 687862318094090012
63241969092252022679880113408073012216264404133887 392600523096072386
15855496515800103474611979213076722454380367188325 370860671331132581
99227975522771848648475326124302804177943090938992 370938053652046462
55147267884961527773274119265709116613580084145421 487687310394441054
79639308530896880365608504772144592172500126500717 068969428154627563
70458838904219177398190648731908014828739058159462 227867277418610111
02763247972904122211994117388204526335701759090678 628159281519982214
57652796853892517218720090070389138562840007332258 507590485348046564
54349837073287625935891427854318266587294608072389 652291599021738887
95773647738726574610400822551124182720096168188828 493894678810468847

H m ha cng khai RSA

Trang 22

Bo co cui k

H m ha cng khai RSA

31265541726209789056784581096517975300873063154649 030211213352818084
76122990409576427857316364124880930949770739567588 422963171158464569
84202455109029882398517953684125891446352791897307 683834073696131409
74522985638668272691043357517677128894527881368623 965066654089894394
95161912002160777898876864736481837825324846699168 307281220310791935
64666840159148582699993374427677252275403853322196 852298590851548110
40229657916338257385513314823459591633281445819843 614596306024993617
53097925561238039014690665163673718859582772525683 119989984646027216
46279764077057074816406450769779869955106180046471 937808223250148934
07851137833251073753823403466269553292608813843895 784099804170410417
77608463062862610614059615207066695243018438575031 762939543026312673
77406936404705896083462601885911184367532529845888 040849710922999195
65539701911191919188327308603766775339607722455632 113506572191067587
51186812786344197572392195263333856538388240057190 102564949233944519
65959203992392217400247234147190970964562108299547 746193228981181286
05556588093851898811812905614274085809168765711911 224763288658712755
38928438126611991937924624112632990739867854558756 652453056197509891
14578114735771283607554001774268660965093305172102 723066635739462334
13638045914237759965220309418558880039496755829711 258361621890140359
54234930424749053693992776114261796407100127643280 428706083531594582
305946326827861270203356980346143245697021484375

Kt qu l mt s vi 8072 ch s
Khng c kiu d liu no lu c tnh ton: V vy ta khng th tnh
trc tip: trong trng hp ny ta tnh php ton chia d nh sau:
V d ta tnh (17^4) mod 30
Ta thc hin ((((((17 mod 30) *17)mod 30)*17)mod 30)* 17) mod 30
on code tnh nh sau :
C = (m^e) mod n
c = m % n;
for (int f = 1; f < e; f++)
{
c = (c * m) % n;
}

H m ha cng khai RSA

Trang 23

Bo co cui k

H m ha cng khai RSA

VII.Nhn xt nh gi:
Bi bo co thc hin vic tm hiu c bn v h m ha cng khai :
phn hin thc thut ton: Chng trnh ch thc hin hn ch cc s
nguyn t nh:
Cn thc t vic m ha thc hin trn nhng s rt ln m bo tnh
bo mt.

VIII. Ti liu tham kho:


Trong qu trnh lm bo co em tham kho nhng ti liu sau:
-www.wikipedia.com
-Quyn Ton hc ri rc ng dng trong tin hc. Tc gi
Kenneth H.Rosen . NXB Thng k
-Quyn RSA Tn cng V Phng th TG Nguyn Thnh Nhn. NXB
Thanh Nin

H m ha cng khai RSA

Trang 24

You might also like