You are on page 1of 74

Li cm n Em xin gi li cm n chn thnh ti cc thy c gio ca khoa Cng Ngh Thng Tin, cc anh ch trong cng ty CSE, gia

n h v cc b n b, n h i t tn h gi p em trong sut qu trnh lm lun vn. Hn na em xin trn trng cm n s ch dn nhit tnh ca thy gio hng dn Tin S Nguyn nh Cng, v s trc tip ch bo ca anh Nguyn H Ch in cng vi s gi p n h i t tn h c a thy gio p hn b in Ph Tin S Trnh Nht Tin em hon thnh tt cun lun vn tt nghip. Em xin chn thnh cm n . H ni ngy 06 thng 06 nm 1999. Sinh vin ng Vn Hanh

Upload by Share-Book.com

Mc Lc
M u Chng i C s ton hc
1.L thuyt thng tin ............................................................................................. 6 1.1 Entropy ............................................................................................................. 6 1.2 Tc ca ngn ng. (Rate of Language)............................................ 7 1.3 An ton ca h thng m ho .................................................................... 8 2.L thuyt phc tp. ................................................................................... 10 3.L thuyt ton hc. .......................................................................................... 11 3.1 Modular s hc. ......................................................................................... 11 3.2 S nguyn t. ............................................................................................... 12 3.3 c s chung ln nht.............................................................................. 12 3.4 S nghch o Modulo. ............................................................................ 14 3.5 K hiu La grng (Legendre Symboy) ................................................ 15 3.6 K hiu Jacobi (Jacobi Symboy) ........................................................... 16 3.7 nh l phn d trung hoa. ..................................................................... 18 3.8 nh l Fermat. ........................................................................................... 19 4. Cc php kim tra s nguyn t................................................................ 19 4.1 Soloway-Strassen ....................................................................................... 19 4.2 Rabin-Miller................................................................................................. 20 4.3 Lehmann. ....................................................................................................... 21 4.4 Strong Primes. ............................................................................................. 21

Chng II Mt m
1. Khi nim c bn. ........................................................................................... 23 2. Protocol ................................................................................................................ 24 2.1 Gii thiu Protocol..................................................................................... 24 2.2 Protocol mt m. ......................................................................................... 25
Trang 2

Upload by Share-Book.com

2.3 Mc ch ca Protocol. ............................................................................. 26 2.4 Truyn thng s dng h mt m i xng. ...................................... 27 2.5 Truyn thng s dng h mt m cng khai. .................................... 28 3. Kho ...................................................................................................................... 31 3.1 di kho. ................................................................................................. 31 3.2 Qun l kho cng khai. .......................................................................... 32 4. M dng, m khi (CFB, CBC) ................................................................. 34 4.1 M hnh m ho khi. ............................................................................... 34 4.1.1 M hnh dy truyn khi m ho.
................................................ 34

4.1.2 M hnh m ho vi thng tin phn hi. .................................... 36 4.2 M hnh m ho dng. .............................................................................. 36 5. Cc h mt m i xng v cng khai ................................................... 38 5.1 H mt m i xng .................................................................................. 38 5.2 H mt m cng khai ................................................................................ 39 6. Cc cch thm m ........................................................................................... 41

Chng III H m ho RSA


1. Khi nim h mt m RSA .......................................................................... 46 2. an ton ca h RSA ................................................................................. 48 3. Mt s tnh cht ca h RSA ...................................................................... 49

Chng IV M hnh Client/Server


1.M hnh Client/Server .................................................................................... 52 2. M ho trong m hnh Client/Server. .................................................... 53

Chng V Xy dng hm th vin


1.Xy dng th vin lin kt ng CRYPTO.DLL ............................... 55 2.Chng trnh Demo th vin CRYPTO.DLL ..................................... 70

Trang 3

Upload by Share-Book.com

M u
Th k XXI th k cng ngh thng tin, thng tin v ang tc ng trc tip n mi mt hot ng kinh t x hi ca hu ht cc quc gia trn th gii. Thng tin c mt vai tr ht sc quan trng, bi vy chng ta phi lm sao m bo c tnh trong sut ca thng tin ngha l thng tin khng b sai lch, b thay i, b l trong qu trnh truyn t ni gi n ni nhn. Vi s pht trin rt nhanh ca cng ngh mng my tnh c bit l mng INTERNET th kh lng thng tin ngy cng chuyn ti nhiu hn. i Nhng tp on cng nghip, nhng cng ty a quc gia, th trng chng khon tin hnh x l v tru yn nhn nhng thng tin t gi, nhng phin giao dch hay mua bn c phiu, tri phiu u c tin hnh qua mng. Gi y vi s tng trng nhanh ca cc siu th in t, thng mi in t th hng ngy c mt khi lng tin rt ln c lu chuyn trn mng ton cu INTERNET, vn kh khn t ra l lm sao gi c thng tin b mt v gi cho tin n ng c a ch cn n. Bn s ra sao nu nh bn gi th cho mt ngi bn nhng li b mt k l mt no xem trm v sa i ni dung bc th tri vi ch ca bn, t hi hn na l khi bn k mt hp ng, gi thng qua mng v li b k xu sa i nhng iu khon trong , v s cn nhiu iu tng t nh vy na ... Hu qu s nh th no nh ? Bn b ngi khc hiu nhm v ni dung bc th b thay i, cn hp ng b ph v bi nhng iu khon khng cn nguyn v Nh vy l c tnh cm, tin bc ca bn v ni rng n. hn l c s nghip ca bn u b e da nu nh nhng thng tin m bn gi i khng m bo c tnh nguyn vn ca chng. M ho thng tin l mt trong cc phng php m bo c tnh trong sut ca thng tin. N c th gii quyt cc vn rc ri trn gip bn, mt khi thng tin c m ho v gi i th k xu rt kh hoc khng th gii m c.
Trang 4

Upload by Share-Book.com

Vi mong mun phc v nhng thng tin c truyn i trn mng c nguyn v trong cun lun vn ny em nghin cu mt s khi nim c n, bn v m ho thng tin, phng php m ho thng tin RSA v xy dng mt th vin cc hm m ho phc v trao i thng tin trong m hnh Client/Server. Nh ng phn trnh by trong lun vn ny bao gm vn chnh sau : Chng I Chng II
C s ton hc Mt m

Chng III H m ho RSA. Chng IV M hnh Client/Server Chng V


Xy dng hm th vin

Trang 5

Upload by Share-Book.com

Chng i C s ton hc
c nhng thut ton m ho tt, chng ta phi c nhng kin thc c bn v ton hc p ng cho yu cu, chng ny m t nhng khi nim c bn v l thuyt thng tin nh Entropy, tc ca ngn ng, hiu bit v phc tp ca thut ton, an ton ca thut ton, cng vi nhng kin thc ton hc: modulo s hc, s nguyn t, nh l phn d trung hoa, nh l Fermat . . . v cc ph ng php kim tra xem mt s c phi l nguyn t hay khng. Nhng vn chnh s c trnh by trong chng ny gm : L thuyt thng tin L thuyt phc tp L thuyt s hc.

1.L thuyt thng tin


M hnh l thuy thng tin c nh ngha ln u tin vo nm 1948 bi t Claude Elmwood Shannon. Trong phn ny chng ta ch cp ti mt s ch quan trng ca l thuyt thng tin.

1.1 Entropy
L thuyt thng tin c nh ngha l khi lng thng tin trong mt thng bo nh l s bt nh nht cn thit m ho tt c nhng ngha c th ca thng bo . V d, trng ngay_thang trong mt c s d liu cha khng qu 3 bt thng tin, bi v thng tin ti y c th m ho vi 3 bt. 000 = Sunday 001 = Monday 010 = Tuesday 011 = Wednesday 100 = Thursday 101 = Friday
Trang 6

Upload by Share-Book.com

110 = Saturday 111 is unused Nu thng tin ny c biu din bi chui k t ASCII tng ng, n s chim nhiu khng gian nh hn, nhng cng khng cha nhiu thng tin hn. Tng nh trng gioi_tinh ca mt c s d liu cha ch 1 bt t thng tin, n c th lu tr nh mt trong hai xu k t ASCII : Nam, N. Khi lng thng tin trong mt thng bo M l o bi Entropy ca thng bo , k hi u bi H(M). Entropy ca thng bo gioi_tinh ch ra l 1 bt, k hiu H(gioi_tinh) = 1, Entropy ca thng bo s ngy trong tun l nh hn 3bits. Trong trng h p tng qut, Entropy ca mt thng bo l log2n, vi n l s kh nng c th.
H(M) = log2n

1.2 Tc ca ngn ng. (Rate of Language)


i vi mt ngn ng, tc ca ngn ng l r = H(M)/N trong trng hp n y N l di ca thng bo. Tc ca ting Anh bnh thng c mt vi gi tr gia 1.0 bits/ch ci v 1.5 bits/ch ci, p dng vi gi tr N rt ln. Tc tuyt i ca ngn ng l s bits ln nht, chng c th m ho trong mi k t. Nu c L k t trong mt ngn ng, th tc tuyt i l : R = log2L y l s Entropy ln nht ca mi k t n l. i vi ting Anh gm 26 ch ci, tc tuyt i l log226 = 4.7bits/ch ci. S khng c iu g l
Trang 7

Upload by Share-Book.com

ngc nhin i vi tt c mi ngi rng thc t tc ca ting Anh nh hn nhiu so vi tc tuyt i.

1.3 An ton ca h thng m ho


Shannon nh ngha rt r rng, t m cc m hnh ton hc, iu c ngha l h thng m ho l an ton. Mc ch ca ngi phn tch l pht hin ra kho k, bn r p, hoc c hai th . Hn na h c th hi lng vi mt vi thng tin c kh nng v bn r p nu l m thanh s, nu n l vn bn ting c, nu n l bng tnh d liu, v. v . . . Trong hu ht cc ln phn tch m, ngi phn tch c mt vi thng tin c kh nng v bn r p trc khi bt u phn tch. H c th bit ngn ng c m ho. Ngn ng ny chc chn c s d tha kt hp vi chnh ngn ng . Nu n l mt thng bo gi ti Bob, n c th bt u vi "Dear Bob". Chc chn l "Dear Bob " s l mt kh nng c th hn l chui khng mang ngh g chng hn "tm*h&rf". Mc ch ca vic thm m l a sa nhng tp hp kh nng c th c ca bn m vi mi kh nng c th ca bn r. C mt iu ging nh h thng m ho, chng t c s b mt tuyt i. H thng m ho ny trong bn m khng mang li thng tin c th tm li bn r. Shannon pht trin l thuyt cho rng, h thng m ho ch an ton tuyt i nu nu s kho c th t nht l nhiu bng s thng bo c th. Hiu theo mt ngha khc, kho ti thiu di bng thng bo ca chnh n. Ngoi tr an ton tuyt i, bn m mang li mt vi thng tin ng vi bn r, iu ny l khng th trnh c. Mt thut ton mt m tt gi cho thng tin mc nh nht, mt ngi thm m tt khai thc nhng thng tin ny pht hin ra bn r.

Trang 8

Upload by Share-Book.com

Ngi phn tch m s dng s d tha t nhin ca ngn ng lm gim s kh nng c th ca bn r. Nhiu thng tin d tha ca ngn ng, s d dng hn cho s phn tch mt m. Chnh v l do ny m nhiu s thc hin m ho s dng chng trnh nn bn r gim kch thc vn bn trc khi m ho chng. Bi vy qu trnh nn lm gim s d th a ca thng bo. Entropy c h thng m ho l o kch thc ca khng gian kho a (keyspace). H(K) = log2(number of keys )

1.4 S ln xn v s rm r. (Confusion and Diffusion)


Theo nh khoa h Shannon, c hai k thut c bn che d u s d tha c thng tin trong thng bo g l : s ln xn v s rm r. c K thut ln xn (Confusion) che du mi quan h gia bn r v bn gc. K thut ny lm tht bi s c gng nghin cu bn m tm kim thng tin d th v thng k mu. Phng php d nht thc hin iu a ny l thng qua k thut thay th. Mt h m ho thay th n gin, chng hn h m dch vng Caesar, da trn nn tng ca s thay th cc ch ci, ngha l ch ci ny c thay th bng ch ci khc. S tn ti ca mt ch ci trong bn m, l do vic dch chuyn i k v tr ca ch ci trong bn r. K thut rm r (Diffusion) lm m i s d tha ca bn r bng t b rng ca n vt qu bn m (ngha l bn m kch thc nh hn bn r). Mt ngi phn tch tm kim s d tha s c mt thi gian rt kh khn tm ra chng. Cch n gin nht to ra s rm r l thng qua vic i ch (hay cn gi l hon v).

Trang 9

Upload by Share-Book.com

2.L thuyt phc tp.


L thuyt phc tp cun g cp mt phng php phn tch phc tp tnh ton c thut ton v cc k thut m ho khc nhau. N so snh cc a thut ton m ho, k thut v pht hin ra an ton ca cc thut ton . L thuyt thng tin cho chng ta bit rng mt thut ton m ho c th b bi l. Cn l thuyt phc tp cho bit nu liu chng c th b bi l trc khi v tr xp hay khng. phc tp thi gian ca thut ton l hm s vi di u vo. Thut ton c phc tp thi gian f(n) i vi mi n v di u vo n, ngha l s thc hin ca thut ton ln hn f(n) bc. phc tp thi gian thut ton ph thuc vo m hnh ca cc thut ton, s cc bc nh hn nu cc hot ng c tp chung nhiu trong mt bc. Cc lp ca thut ton, thi gian ch c ch r nh hm s m ca u y vo l "khng c kh nng thc hin c". Cc thut ton c phc tp ging nhau c phn loi vo trong cc lp tng ng. V d tt c cc thut ton c phc tp l n3 c phn vo trong lp n3 v k hi u bi O(n3). C hai lp tng qut s c ch dn l lp P v lp NP. Cc thut ton thuc lp P c phc tp l hm a thc ca u vo. Nu mi bc tip theo ca thut ton l duy nht th thut ton gi l n nh. Tt c thut ton thuc lp P n nh c thi gian gii hn l P_time, iu ny cho bit chng s thc hin trong thi gian a thc, tng ng vi phc tp a thc trong di u vo. Thut ton m bc tip theo s tnh ton phi la chn gii php t nhng gii hn gi tr ca hot ng gi l khng n nh. L thuyt phc tp s dng cc my c bit m t c im bng cch a ra kt lun bi cc chun. My Turingl mt my c bit, my hot ng trong thi gian ri rc, ti mt thi im n nm trong khong trng thi y s ca
Trang 10

Upload by Share-Book.com

tt c cc trng thi c th l hu hn. Chng ta c th nh ngha hm phc tp thi gian kt hp vi my Turing A. fA(n) = max{m/A kt thc sau m bc vi u vo w = n 3 } Chng ta gi s rng A l trng thi kt thc i vi tt c cc u vo, vn s tr nn kh khn hn nu cc trng thi khng nm trong P . My Turing khng n nh hot ng trong thut ton NP. My Turing khng n nh c th c mt vi trng thi chnh xc. S(w) l trng thi o s thnh cng ngn nht ca thut ton, (Ngha l s tnh ton dn n trng thi cui cng) Hm s phc tp thi gian ca my Turing khng n nh A c nh ngha : fA(n)=max{1,m/s(w) c m bc i vi w/w=n}, mi bc my Turing khng n nh b tr nhiu bn sao ca chnh n nh c mt vi gii php v tnh ton c lp vi mi li gii. Cc thut ton thuc lp NP l khng n nh v c th tnh ton trn my Turing khng n nh trong thi gian P.

3.L thuyt ton hc. 3.1 Modular s hc.


V c bn a b(mod n) nu a = b+kn trong k l mt s nguyn. Nu a v b dng v a nh hn n, bn c th ngh rng a l phn d ca b khi chia cho n. Ni chung a v b l phn d khi chia cho n. i khi b gi l thng d u ca a, modulo n, i khi a gi l ng d ca b, modulo n. Tp hp cc s nguyn t 0 n n-1 cn c gi l tp hp thng d hon ton modulo n. i ny c ngha l, vi mi s nguyn a, th thng d u modulo n l mt s t 0 n n -1.

Trang 11

Upload by Share-Book.com

Modulo s hc cng ging nh s hc bnh thng, bao gm cc php giao hon, kt hp v phn phi. Mt khc gim mi gi tr trung gian trong sut qu trnh tnh ton. (a+b) mod n = ((a mod n) + (b mod n)) mod n (a- b) mod n = ((a mod n) - (b mod n)) mod n (ab) mod n = ((a mod n) (b mod n)) mod n (a(b + c)) mod n = (((a b) mod n) + ((a c) mod n)) mod n H thng m ho s dng nhiu s tnh ton modulo n, bi v vn ny ging nh tnh ton logarithm ri rc v din tch hnh vung l kh khn. Mt khc n lm vic d hn, bi v n b gii hn trong tt c gi tr trung gian v kt qu. V d : a l mt s k bits, n l kt qu trung gian ca php cng, tr, nhn s khng vt qu 24 bits. Nh vy chng ta c th thc hin hm m trong modulo s hc m khng cn sinh ra kt qu trung gian s.

3.2 S nguyn t.
S nguyn t l mt s ln hn 1, nhng ch chia ht cho 1 v chnh n, ngoi ra khng cn s no n c th chia ht na. S 2 l mt s nguyn t. Do vy 7, 17, 53, 73, 2521, 2365347734339 cng l s nguyn t. S lng s nguyn t l v tn. H mt m thng s dng s nguyn t ln c 512 bits v thm ch ln hn nh vy.

3.3 c s chung ln nht.


Hai s gi l cp s nguyn t khi m chng khn g c th s chung no a khc 1, hay ni mt cch khc, nu c s chung ln nht ca a v n l bng 1. Chng ta c th vit nh sau : gcd(a,n)=1 S 15 v 28 l mt cp s nguyn t, nhng 15 v 27 th khng phi cp s nguyn t do c c s chu ng l 1 v 3, d dng thy 13 v 500 cng l mt
Trang 12

Upload by Share-Book.com

cp s nguyn t. Mt s nguyn t l mt cp s nguyn t vi tt c nhng s khc loi tr nhng s l bi s. Mt cch d nht tnh ton ra c s chung ln nht ca hai s l nh vo thut ton Euclid. Knuth m t thut ton v mt vi m hnh ca thut ton c sa i. Di y l on m ngun trong ngn ng C. /* Thut ton tm c s chung ln nht ca x v y, gi s x,y>0 */
int { int g; gcd(int x, int y)

if(x<0) x=-x; if(y<0) y=-y ; g=y; while(x>0){ g=x; x=y%x; y=g; } return g; }

Thut ton sau y c th sinh ra v tr li c s chung ln nht ca mt mng m s.


int multiple gcd ( int m, int *x) { size int t, i ; g;

if(m<1) return(0);
Trang 13

Upload by Share-Book.com

g = x[0]; for(i=1;i<m;++i){ g=gcd(g,x[i]); if(g==1) return 1; } return g; }

3.4 S nghch o Modulo.


S nghch o ca 10 l 1/10, bi v 10 1/10=1. Trong s hc modulo th vn nghch o phc tp hn. 4 x 1 mod 7 Phng trnh trn tng ng vi tm x v k sao cho 4x = 7k+1 vi iu kin l c x v k u l s nguyn. Vn chung t ra ti y l tm x sao cho 1 = (a x) mod n c th vit li nh sau : a-1 x(mod n ) S thu nh vn Modulo l rt kh gii quyt. i khi n l mt vn , nhng i khi li khng phi vy. V d : nghch o ca 5 modulo 14 l 3 bi 5 3 = 15 1 (mod 14). Trong trng hp chung a -1 x (mod n) ch c duy nht mt gii php nu a v n l mt cp s nguyn t. Nu a v n khng phi l cp s nguyn t, th gi a-1 x (mod n) khng c i php no. Thut ton Euclid c th tn h ra c s nghch o ca s Modulo n, i khi thut ton ny cn gi l thut ton Euclid m r ng. Sau y thut ton c m t trong ngn ng C.
Trang 14

Upload by Share-Book.com

static void Update(int *un,int *vn, int q) { int tn;

tn = *un-vn*q; *un = *vn; *vn = tn; }

int extended euclidian(int u,int v,int u1_out,int u2_out) { int u1=1; int u3=u; int v1=0; int v3=v; int q;

while(v3>0){ q=u3/v3; Update(&u1,&v1,q); Update(&u3,&v,q); } *u1_out=u1; *u2_out=(u3-u1*u)/v; return u3; }

3.5 K hiu La grng (Legendre Symboy)


K hi u L(a,p) c nh ngha khi a l mt s nguyn v p l m t s nguyn t ln hn 2. N nhn ba gi tr 0, 1, -1 :

Trang 15

Upload by Share-Book.com

L(a,p) = 0 nu a chia ht cho p. L(a,p) = 1 nu a l thng d bc 2 mod p. L(a,p) = -1 nu a khng thng d mod p. Mt phng php d dng tnh ton ra L(a,p) l : L(a,p) = a (p-1)/2 mod p

3.6 K hiu Jacobi (Jacobi Symboy)


K hiu Jacobi c vit J(a,n), n l s khi qut ho ca k hiu Lagrng, n nh ngha cho bt k cp s nguyn a v n. K hiu Jacobi l mt chc nng trn p hp s thn g d thp ca c s n v c th tnh ton theo t cng thc sau:

Nu n l s nguyn t, th J(a,n) = 1 vi iu kin a l thng d bc hai modulo n . Nu n l s nguyn t, th J(a,n) = -1 vi iu kin a khng l thng d bc hai modulo n . Nu n khng phi l s nguyn t th Jacobi J(a,n)=J(h,p1) J(h,p2) . . . J(h,pm) vi p1,p2. . .,pm l cc tha s ln nht ca n.

Thut ton ny tnh ra s Jacobi tun hon theo cng thc sau : 1. J(1,k) = 1 2. J(ab,k) = J(a,k) J(b,k) 3. J(2,k) =1 Nu (k2-1)/8 l chia ht J(2,k) =-1 trong cc trng hp khc. 4. J(b,a) = J((b mod a),a) 5. Nu GCD(a,b)=1 : a. J(a,b) J(b,a) = 1 nu (a-1)(b-1)/4 l chia ht. b. J(a,b) J(b,a) = -1 nu (a-1)(b-1)/4 l cn d.
Trang 16

Upload by Share-Book.com

Sau y l thut ton trong ngn ng C :


int jacobi(int a,int b) { int a1,a2; if(a>=b) a%=b; if(a==0) return 0; if(a==1) return 1; if(a==2) if(((b*b-1)/8)%2==0) return 1; else return -1; if(a&b&1) (c a v b u l s d) return +jacobi(b,a); else return -jacobi(b,a); if(gcd(a,b)==1) if(((a-1)*(b-1)/4)%2==0) return +jacobi(b,a); else return -jacobi(b,a); factor2(a,&a1,&a2); return jacobi(a1,b) * jacobi(a2,b); }

if(((a-1)*(b-1)/4)%2==0)

Nu p l s nguyn t c cch tt hn tnh s Jacobi nh di y : 1. Nu a=1 th J(a/p)=1 2. Nu a l s chai ht, th J(a,p)=J(a/2,p) (-1)(p^2 1)/8 3. Nu a l s d khc 1 th J(a,p)=J(p mod a, a) (-1)(a-1)(p-1)/4
Trang 17

Upload by Share-Book.com

3.7 nh l phn d trung hoa.


Nu bn bit cch tm tha s nguyn t ca mt s n, th bn c th s dng, mt s iu gi l nh l phn d trung hoa gii quyt trong sut h phng trnh. Bn dch c bn ca inh l ny c khm ph bi ton hc Trung Hoa vo th k th nht. Gi s, s phn tch tha s ca n=p1p2. . .pt th h phng trnh (X mod pi) = ai , vi i=1,2,. . .t c duy nht mt cch gii, ti x nh hn n. Bi vy, vi a,b tu sao cho a < p v b < q (p,q l s nguyn t) th tn ti duy nht a,x ,khi x nh hn pq th x a (mod p), v x b (mod q) tm ra x u tin s dng thut ton Euclid tm u, v d : u q 1 (mod p) Khi cn tnh ton : x=((( a-b)u) mod p ) q + b Di y l on m nh l phn d trung hoa trong ngn ng C :
Int chinese remainder(size t r, int *m, int *u) { size t i; int modulus; int n; modulus = 1; for ( i=0; i<r:++i ) modulus *=m[i]; n=0; for ( i=0; i<r:++i ) { n+=u[i]*modexp(modulus/m[i],totient(m[i]),m[i]);

Trang 18

Upload by Share-Book.com

n%=modulus; } return n; }

3.8 nh l Fermat.
Nu m l s nguyn t, v a khng phi l bi s ca m th nh l Fermat pht biu : am-1 1(mod m)

4. Cc php kim tra s nguyn t.


Hm mt pha l mt khi nim c bn ca m ho cng khai, vic nhn hai s nguyn t c phng on nh l hm mt pha, n rt d dng nhn cc s to ra mt s ln, nhng rt kh khn phn tch s ln ra thnh cc tha s l hai s nguyn t ln. Thut ton m ho cng khai cn thit ti nhng s nguyn t. Bt k mng kch thc th no cng cn mt s lng ln s nguyn t. C mt vi phng php sinh ra s nguyn t. Tuy nhin c mt s vn c t ra i vi s nguyn t nh sau :

Nu mi ngi cn n nhng s nguyn t khc nhau, chng ta s khng t c iu ng khng. Khng ng, bi v trong thc t c ti 10150 s nguyn t c di 512 bits hoc nh hn. iu g s xy ra nu c hai ngi ngu nhin chn cng mt s nguyn t?. Vi s chn la t s lng 10150 s nguyn t, iu k quc ny xy ra l xc xut nh hn so vi s t bc chy ca my tnh. Vy n khng c g l ng lo ngi cho bn ht.

4.1 Soloway-Strassen
Soloway v Strassen pht tri n thut ton c th kim tra s nguyn t. Thut ton ny s dng hm Jacobi.

Trang 19

Upload by Share-Book.com

Thut ton kim tra s p l s nguyn t : 1. Chn ngu nhin mt s a nh hn p. 2. Nu c s chung ln nht gcd(a,p) 1 th p l hp s. 3. Tnh j = a(p-1)/2 mod p. 4. Tnh s Jacobi J(a,p). 5. Nu j J(a,p), th p khng phi l s nguyn t. 6. Nu j = J(a,p) th ni p c th l s nguyn t vi chc chn 50%. Lp li cc bc ny n ln, vi nhng n l gi tr ngu nhin khc nhau ca a. Phn d ca hp s vi n php th l khng qu 2n. Thc t khi thc hin chng trnh, thut ton chy vi tc nhanh.

4.2 Rabin-Miller
Thut to n ny c pht trin b i Rabin, d a trn m t phn tn g ca Miller. Thc t nhng phin bn ca thut ton c gii thiu ti NIST. (National Institute of Standards and Technology). u tin l chn ngu nhin mt s p kim tra. Tnh b, vi b l s m ca 2 chia cho p-1. Tip theo tnh m tng t nh n = 1+2bm. Sau y l thut ton : 1. Chn mt s ngu nhin a, v gi s a nh hn p. 2. t j=0 v z=am mod p. 3. Nu z=1, hoc z=p-1 th p qua b c kim tra v c th l s nguyn t. 4. Nu j > 0 v z=1 th p khng phi l s nguyn t. 5. t j = j+1. Nu j < b v z p-1 th t z=z2 mod p v tr li bc 4. 6. Nu j = b v z p-1, th p khng phi l s nguyn t.

Trang 20

Upload by Share-Book.com

4.3 Lehmann.
Mt phng php n gin hn kim tra s nguyn t c pht trin c lp bi Lehmann. Sau y l thut ton vi s bc lp l 100. 1. Chn ngu nhin mt s n kim tra. 2. Chc chn rng n khng chia ht cho cc s nguyn t nh nh 2,3,5,7 v 11. 3. Chn ngu nhin 100 s a1, a2, . . . , a100 gia 1 v n-1. 4. Tnh ai(n-1)/2 (mod n) cho t c a i = a1. . . a100 . Dng li nu bn t tm thy a i sao cho php kim tra l sai. 5. Nu ai(n-1)/2 = 1 (mod n) vi mi i, th n c th l hp s. Nu ai(n-1)/2 1 hoc -1 (mod n) vi i bt k, th n l hp s. Nu ai(n-1)/2 = 1 hoc -1 (mod n) vi mi i 1, th n l s nguyn t.

4.4 Strong Primes.


Strong Primes th n g s d n g cho hai s p v q , ch n gl hai s c nguyn t vi cc thuc tnh chc chn rng c th tm c tha s bng phng php phn tch tha s. Trong s cc thuc tnh t c bao gm + c s chung ln nht ca p-1 v q-1 l nh. + Hai s p -1 v q-1 nn c th s nguyn t ln, o hm ring p' a v q' + Hai s p' -1 v q'-1 nn c th s ngu yn t ln, o hm ring p'' a v q'' + C (p-1)/2 v (q-1)/2 nn l s nguyn t. Trong bt c trng hp no Strong Primes rt cn thit l i tng trong cc bui tranh lun. Nhng thuc tnh c thit k cn tr mt vi thut ton phn tch th s. Hn na, nhng thut ton phn tch tha s nhanh a nht c c hi tt t cc tiu chun.
Trang 21

Upload by Share-Book.com

Trang 22

Upload by Share-Book.com

Chng II Mt m
Trong chng tr chng ta nu ra cc khi nim c bn v l thuyt c thng tin, v phc tp ca thut ton, v nhng khi nim c bn v ton hc cn thit. Chng ny s m t mt cch tng quan v m ho, bao gm nhng khi nim v m ho thng tin, mt h thng m ho bao gm nhng thnh phn no, khi nim protocol, cc loi protocol. M ho dng l g, m ho khi l g, th no l h thng m ho c in, th no l h thng m ho cng khai. V cu i cng l b nhng cch no k ch tn cng h ng thng m ho. Nhng vn s c cp trong chng ny: Khi nim c bn ca m ho. Protocol M dng , m khi (CFB, CBC) Cc h mt m i xng v cng khai Cc cch thm m

1. Khi nim c bn.


-Bn r (plaintext or cleartext) Cha cc xu k t gc, thng tin trong bn r l thng tin cn m ho gi b mt. -Bn m (ciphertext) Cha cc k t sau khi c m ho, m ni dung c gi b mt. -Mt m hc (Crytography) L ngh thut v khoa hc gi thng tin c an ton. -S m ho (Encryption) Qu trnh che d thng tin bng phng php no l m n ni u dung bn trong gi l s m ho. -S gii m (Decryption) Qu trnh bin i tr li bn m bn thnh bn r gi l gii m.

Trang 23

Upload by Share-Book.com

Qu trnh m ho v gii m c th hin trong s sau:

Bn r M ho

Bn m Gii m

Bn r gc

-H mt m : l mt h bao gm 5 thnh phn (P, C, K, E, D) tho mn cc tnh cht sau P (Plaintext) l tp hp hu hn cc bn r c th. C (Ciphertext) l tp hp hu hn cc bn m c th. K (Key) l tp hp cc bn kho c th. E (Encrytion) l tp hp cc qui tc m ho c th. D (Decrytion) l tp hp cc qui tc gii m c th. Chng ta bi t mt thng bo thng c t chc di dng bn r. Ngi gi s lm nhim v m ho bn r, kt qu thu c gi l bn m. Bn m ny c gi i trn mt ng truyn ti ngi nhn sau khi nhn c bn m ngi nhn gii m n tm hiu ni dung. D dng thy c cng vic trn khi s dng nh ngha h mt m :

EK( P) = C v DK( C ) = P

2. Protocol 2.1 Gii thiu Protocol


Trong sut c qu trnh ca h thng mt m l gii quyt cc vn , nhng vn ca h bao gm: gii quyt cng vic xung quanh s b mt, tnh

Trang 24

Upload by Share-Book.com

khng tin cy v nhng k bt lng. Bn c th hc mi iu v thut ton cng nh cc k thut, nhng c mt iu rt ng quan tm l Protocol. Protocol l mt lot cc bc, bao gm hai hoc nhiu ngi, thit k hon thnh nhi m v . Mt lot cc bc ngha l Protocol thc hin theo mt tun t, t kh i b t u ch o ti lc k t th c. M i bc p hi c thc hin tun t v khng c bc no c thc hin trc khi bc trc hon thnh. Bao g m hai hay n h i u n g n g h a l cn t n ht hai i ngi hon thnh protocol, mt ngi khng th to ra c mt Protocol. V chc chn rng mt ng i c th thc hin mt lot cc bc hon thnh nhi m v, nhng khng phi l Protocol. Cui cng thit k hon thnh nhim v ngha l mi Protocol phi lm mt vi iu g . Protocol c mt vi thuc tnh khc nh sau : 1. Mi ngi cn phi trong mt Protocol, phi bit protocol v tun theo tt c mi bc trong s pht trin. 2. Mi ngi cn phi trong mt Protocol, v phi ng tun theo n. 3. Mt Protocol phi r rng, mi bc phi c nh ngha tt v phi khng c c hi hiu nhm. 4. Protocol phi c hon thnh, phi c nhng hnh ng ch r cho mi trng hp c th.

2.2 Protocol mt m.
Protocol mt m l protocol s dng cho h thng mt m. Mt nhm c th gm nhng ngi bn b v nhng ngi hon ton tin cy khc hoc h c th l ch th hoc nhng ngi khng tin cy mt cht no ht. Mt iu hin nhin l protocol m ho phi bao gm mt s thut ton m ho,

Trang 25

Upload by Share-Book.com

nhng mc ch chung ca protocol l mt iu g xa hn l iu b mt n gin.

2.3 Mc ch ca Protocol.
Trong cuc sng hng ngy, c rt nhiu nghi thc thn mt cho hu ht tt c mi iu nh gi in thoi, chi bi, bu c. Khng c g trong s chng li khng c protocol, chng tin trin theo thi gian, mi ngi u bit s dng chng nh th no v lm vic vi chng. Hn na by gi mi ngi giao tip vi nhau qua mng my tnh thay cho s gp mt thng thng. My tnh cn thit mt nghi thc chun lm nhng vic ging nhau nh con ng khng phi suy ngh. Nu bn i t i mt a im ny ti a im khc, thm ch t quc gia ny ti quc gia khc, bn thy mt trm in thoi cng cng khc hon ton so vi ci bn s dng, bn d dng p ng. Nhng my tnh th khng mm do nh vy. Tht ngy th khi bn tin rng mi ngi trn mng my tnh l chn tht, v cng tht ngy th khi tin tng rng ngi qun tr mng, ngi thit k mng l chn tht. Hu ht s l chn tht, nhng n s l khng chn khi bn cn n s an ton tip theo. Bng nhng protocol chnh thc, chng ta c th nghin cu nhng cch m nhng k khng trung thc c th la o v pht trin protocol nh bi nhng k la o . Protocol rt ha ch bi v h tru tng ho tin trnh hon thnh nhim v t k thut, nh vy nhim v c hon thnh. S giao tip gia hai my tnh ging nh mt my tnh l IBM PC, my kia l VAX hoc loi my tng t. Khi nim tru tng ny cho php chng ta nghin c nhng c tnh tt ca protocol m khng b xa ly vo s u thc hin chi tit. Khi chng ta tin rng chng ta c mt protocol tt, th

Trang 26

Upload by Share-Book.com

chng ta c th thc hin n trong mi iu t mt my tnh n in thoi, hay n mt l nng bnh thng minh.

2.4 Truyn thng s dng h mt m i xng.


Hai my thc hin vic truyn thng an ton nh th no ? Chng s m ho s truyn thng , ng nhin ri. hon thnh mt protocol l phc tp hn vic truyn thng. Chng ta hy cng xem xtiu g s xy ra nu my Client mun gi thng bo m ho ti cho Server. 1. Client v Server ng s dng mt h m ha. 2. Client v Server thng nht kho vi nhau. 3. Client ly bn r v m ho s dng thut to n m ho v kho. Sau bn m c to ra. 4. Client gi bn m ti cho Server. 5. Server gii m bn m vi cng mt thut ton v kho, sau c c bn r. iu g s xy ra i vi k nghe trm cuc truyn thng gia Client v Server trong protocol trn. Nu nh k nghe trm ch nghe c s truyn i bn m trong bc 4, chng s c gng phn tch bn m. Nhng k nghe trm chng khng ngu rt, chng bit rng nu c th nghe trm t bc 1 n bc 4 th chc chn s thnh cng. Chng s bit c thut ton v kho nh vy chng s bit c nhiu nh Server. Khi m thng bo c truyn i trn knh truyn thng trong bc th 4, th k nghe trm s gii m bng chnh nhng iu bit. y l l do t i sao qun l kho li l vn quan trng trong h thng m ho. Mt h thng m ho tt l mi s an ton ph thuc vo kho v khng ph thuc vo thut ton. Vi thut ton i xng, Client v Server c th thc hin bc 1 l cng khai, nhng phi thc hin bc 2 b mt.

Trang 27

Upload by Share-Book.com

Kho phi c gi b mt trc, trong khi, v sau protocol, mt khc thng bo s khng gi an ton trong thi gian di. Tm li, h mt m i xng c mt vi vn nh sau :

Nu kho b tn thng (do nh cp, d on ra, khm ph, h l) th i i th l ngi c kho, anh ta c th gii m tt c thng bo vi kho . Mt iu rt quan trng l thay i kho tun t gim thiu vn ny. Nhng kho phi c tho lun b mt. Chng c th c gi tr hn bt k thng bo no c m ho, t s hiu bit v kho c ngha l hiu bit v thng bo. S dng kho ring bit cho mi cp ngi dng trn mng vy th tng s kho tng ln rt nhanh ging nh s tng ln ca s ngi dng. iu ny c th gii quyt bng cch gi s ngi dng mc nh, nhng iu ny khng phi l lun lun c th.

2.5 Truyn thng s dng h mt m cng khai.


Hm mt pha (one way function) Khi nim hm mt pha l trung tm ca h m h o cng khai. Khng c mt Protocol cho chnh n, hm mt pha l khi xy dng c bn cho hu ht cc m t protocol. 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 n bit f(x) th rt kh tnh ra c x. Trong trng hp ny u 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,

Trang 28

Upload by Share-Book.com

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. Ca sp hm mt pha l mt kiu c bit ca hm mt pha vi ca sp b mt. N d dng tnh ton t mt iu kin ny nhng kh khn tnh ton t mt iu kin khc. Nhng nu bn bit iu b mt, bn c th d dng tnh ton ra hm iu kin khc. V d : tnh f(x) d dng t x, rt kh t khn tnh ton x ra f(x). Hn na c mt vi thng tin b mt, y ging nh f(x) v y n c thtnh ton d dng ra x. Nh vy vn c th c gii quyt. Hp th l mt v d rt tuyt v ca sp hm mt pha. Bt k ai cng c th b th vo thng. B th vo thng l mt hnh ng cng cng. M thng th khng ph i l hnh ng cng cng. N l kh khn, bn s cn n m hn ph hoc nhng cng c khc. 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. Hm bm mt pha. Hm bm mt pha l mt khi xy dng khc cho nhiu loi protocol. Hm bm mt pha tng c s dng cho khoa hc tnh ton trong mt thi gian di. Hm bm l m hm ton hc hoc loi khc, n ly chui u t vo v chuyn i thnh kch thc c nh cho chui u ra. Hm bm m pha l mt hm bm n s dng hm mt pha. N rt d t dng tnh ton gi tr bm t xu k t vo, nhng rt kh tnh ra mt chui t gi tr n l a vo. C hai kiu chnh ca hm bm mt pha, hm bm vi kho v khng kho. Hm bm mt pha khng kho c th tnh ton bi mi ngi gi tr bm l hm ch c n c chui a vo. Hm bm mt pha vi kho l hm c

Trang 29

Upload by Share-Book.com

hai th chui vo v kho, ch mt vi ngi c kho mi c th tnh ton gi tr bm. H m ho s dng kho cng khai. Vi nhng s m t trn c th ngh rng thut ton i xng l an ton. Kho l s kt hp, mt vi ngi no vi s kt hp c th m s an ton ny, a thm ti li vo, v ng n li. Mt ngi no khc vi u s kt hp c th m c v ly i ti liu . Nm 1976 Whitfied v Martin Hellman thay i vnh vin m hnh ca h thng m ho. Chng c m t l h m ho s dng kho cng khai. Thay cho mt kho nh trc, h bao gm hai kho khc nhau, mt kho l cng khai v m t kho kia l kho b mt. Bt k ai vi kho cn g khai cng c th m ho thng bo nhng khng th gii m n. Ch mt ngi vi kho b mt mi c th gii m c. Trn c s ton hc, tin trnh ny ph thuc vo ca sp hm mt pha c trnh by trn. S m ho l ch th d dng. Li ch dn cho s m ho l kho cng khai, b k ai cng c th m ho. S gii m l mt c h t th kh khn. N to ra kh khn mt ngi s dng my tnh Cray phi mt hng ngn nm mi c th gii m. S b mt hay ca sp chnh l kho ring. Vi s b mt, s gii m s d dng nh s m ho. Chng ta hy cng xem xt khi my Client gi thng bo ti Server s dng h m ho cng khai. 1. Client v Server nht tr s dng h m ha cng khai. 2. Server gi cho Client kho cng khai ca Server. 3. Client ly bn r v m ho s dng kho cng khai ca Server. Sau gi bn m ti cho Server. 4. Server gii m bn m s dng kho ring ca mnh.

Trang 30

Upload by Share-Book.com

Ch r ng h thng m ho cng khai gii quyt vn chnh ca h m ho i xng, bng cch phn phi kho. Vi h thng m ho i xng qui c, Client v Server phi nht tr vi cng mt kho. Client c th chn ngu nhin mt kho, nhng n vn phi thng bo kho ti Server, iu ny gy lng ph i gian. i vi h thng m ho cng khai, th y th khng phi l vn .

3. Kho 3.1 di kho.


an ton ca thut ton m ho c in ph thuc vo hai iu l di ca thut ton v di ca kho. Nhng di ca kho d b l hn. Gi s rng di ca thut ton l l tng, kh khn ln lao ny c th t c trong thc hnh. Hon ton c ngha l khng c cch no b gy c h thng m ho tr khi c gng th vi mi kho. Nu kho di 8 bits th c 28 = 256 kho c th. Nu kho di 56 bits, th c 2 56 kho c th. Gi s rng siu my tnh c th thc hin 1 triu php tnh mt giy, n cng s cn ti 2000 nm tm ra kho thch hp. Nu kho di 64 bits, th vi my tnh tng t cng cn ti xp x 600,000 nm tm ra kho trong s 2 64 kho c th Nu kho di 128 bits, n cn ti 10 25 nm , trong khi v tr . ca chng ta ch tn ti c 1010 nm. Nh vy vi 10 25 nm c th l di. Trc khi bn gi i pht minh h m ho vi 8 Kbyte di kho, bn nn nh rng mt na khc cng khng km phn quan trng l thut ton phi an ton ngha l khng c cch no b gy tr khi tm c kho thch hp. iu ny khng d dng nhn thy c, h thng m ho n nh mt ngh thut huyn o. Mt im quan trng khc l an ton ca h thng m ho nn ph thuc vo kho, khng nn ph thuc v o chi tit ca thut ton. Nu di ca h thng m ho mi tin rng trong thc t k tn cng khng th bit ni dung

Trang 31

Upload by Share-Book.com

bn trong c thut ton. Nu bn tin rng gi b mt ni dung ca thut a ton, tn dng an ton ca h thng hn l phn tch nhng l thuyt s hu chung th bn nhm. V tht ngy th hn khi ngh rng mt ai khng th g tung m ngun ca bn hoc o ngc li thut ton. Gi s rng mt vi k thm m c th bit ht tt c chi tit v thut ton ca bn. Gi s rng h c rt nhiu bn m, nh h mong mun. Gi s h c mt khi lng bn r tn cng vi rt nhiu d liu cn thit. Thm ch gi s rng h c th la chn bn r tn cng. Nu nh h thng m ho ca c th d tha an ton trong tt c mi mt, th bn c an ton bn cn. Tm li cu hi t ra trong mc ny l : Kho nn di bao nhiu. Tr li cu hi ny ph thuc vo chnh nhng ng dng c th ca bn. D liu cn an ton ca bn di bao nhiu ? D liu ca bn tr gi bao nhiu ? ... Thm ch bn c th ch ch r nhng an ton cn thit theo cch sau. di kho phi l mt trong 232 kho tng ng vi n l k tn cng phi tr 100.000.000 $ b gy h thng.

3.2 Qun l kho cng khai.


Trong thc t, qun l kho l vn kh nht ca an ton h m ho. thit k an ton thut ton m ho v protocol l mt vic l khng phi l d dng nhng to v lu tr kho b mt l mt iu kh hn. K thm m thng tn cng c hai h m ho i xng v cng khai thng qua h qun l kho ca chng. i vi h m ho cng khai vic qun l kho d hn i vi h m ho i xng, nhng n c mt vn ring duy nht. Mi ngi ch c mt kho cng khai, b k s ng i trn mng l bao nhiu. Nu Eva mun t gi thng bo n cho Bob, th c y cn c kho cng khai ca Bob. C mt vi phng php m Eva c th ly kho cng khai ca Bob :
Trang 32

Upload by Share-Book.com

Eva c th ly n t Bob. Eva c th ly t trung tm c s d liu. Eva c th ly t c s d liu ring ca c y.

Chng nhn kho cng khai :


Chng nhn kho cng khai l xc nh kho thuc v mt ai , c qun l bi mt ngi ng tin cy. Chng nhn s dng vo vic cn tr s cng gng thay th mt kho ny bng mt kho khc. Chng nhn ca Bob, trong s s d liu kho cng khai, lu tr nhiu thng tin hn ch khng ch l kho cng khai. N lu tr thng tin v Bob nh tn, a ch, ... v n c vit bi ai m Eva tin tng, ngi thng gi l CA(certifying authority). Bng cch xc nhn c kho v thng tin v Bob. CA xc nhn thng tin v Bob l ng v kho cng khai thuc quyn s hu ca Bob. Eva kim tra li cc du hiu v sau c y c th s dng kho cng khai, s an ton cho Bob v khng mt ai khc bit. Chng nhn ng mt vai tr rt quan trng trong protocol ca kho cng khai.

Qun l kho phn phi :


Trong mt vi trng hp, trung tm qun l kho c th khng lm vic. C l khng c mt CA (certifying authority) no m Eva v Bob tin tng. C l h ch tin tng bn b thn thit hoc h khng tin tng bt c ai. Qun l kho phn phi, s dng trong nhng chng trnh min cng khai, gii quyt vn ny vi ngi gii thiu (introducers). Ngi gii thiu l mt trong nhng ngi dng khc ca h thng anh ta l ngi nhn ra kho cng khai ca bn anh ta. V d : Khi Bob sinh ra kho cng khai, anh ta a n copy cho bn anh y l Bin b v Dave. H u bit Bob, v vy h c kho ca Bob v a cho cc d u hiu ca anh ta. By gi Bob a ra kho cng khai ca anh ta cho ngi l,
Trang 33

Upload by Share-Book.com

gi s l Eva, Bob a ra kho cng vi cc du hiu ca hai ngi gii thiu. Mt khc nu Eva bit Bin hoc Dave, khi c ta c l do tin rng kho ca Bob l ng. N Eva khng bit Bin hoc Dave th c y u khng c l do tin tng kho ca Bob l ng. Theo thi gian, Bob s tp hp c nhiu ngi gii thiu nh vy kho ca anh ta s c bit n rng ri hn. Li ch ca k thut ny l khng cn ti trung tm phn phi kho, mi ngi u c s tn nhim, khi m Eva nhn kho cng khai ca Bob, s khng c s bo m no rng c y s bit bt k iu g ca ngi gii thiu v hn na khng c s m bo no l c y s tin vo s ng n ca kho.

4. M dng, m kh i (CFB, CBC) 4.1 M hnh m ho kh i.


M ho s dng cc thut ton khi gi l m ho khi, thng thng kch thc ca khi l 64 bits. Mt s thut t on m ho kh s c trnh i by sau y. 4.1.1 M hnh dy truyn khi m ho. Dy truyn s dng k thut thng tin phn hi, bi v kt qu ca khi m ho trc li a vo khi m ho hin thi. Ni mt cch khc khi trc s dng sa i s m ho ca khi tip theo. Mi khi m ho khng ph thuc hon ton vo khi ca bn r. Trong dy truy khi m ho (Cipher Block Chaining Mode), bn r n c XOR vi khi m ho k trc trc khi n c m ho. Hnh 4.1.1 th hin cc bc trong dy truyn khi m ho. Sau khi khi bn r c m ho, kt qu ca s m ho c lu tr trong thanh ghi thng tin phn hi. Trc khi khi tip theo ca bn r c m ho, n s XOR vi thanh ghi thng tin phn hi tr t hnh u vo cho tuyn m ho tip theo. Kt qu ca s m ho tip tc c lu tr trong
Trang 34

Upload by Share-Book.com

thanh ghi thng tin ph hi, v tip tc XOR vi khi bn r tip theo, tip n tc nh vy cho ti kt thc thng bo. S m ho ca mi khi ph thuc vo tt c cc khi trc .
IO P1 K M ho E(P1 I0)

C1

P2 K

M ho

E(P2 C1)

C21

P3 K

M ho

E(P3 C2)

C31

Hnh 4.1.1 S m hnh dy chuyn khi m ho . S gii m l cn i r rng. Mt khi m ho gii m bnh thng v mt khc c ct gi trong thanh ghi thng tin phn hi. Sau khi khi tip theo c gii m n XOR vi kt qu ca thanh ghi phn hi. Nh vy khi m ho tip theo c la tr trong thanh ghi thng tin phn hi, tip tc nh vy cho ti khi kt thc thng bo. Cng thc ton hc ca qu trnh trn nh sau : Ci = EK(Pi XOR Ci-1) Pi = Ci-1 XOR DK(Ci)

Trang 35

Upload by Share-Book.com

4.1.2 M hnh m ho vi thng tin phn hi. Trong m hnh dy truykhi m ho(CBC_Cipher Block Chaining n Mode), s m ha khng th bt u cho ti khi hon thnh nhn c mt khi d liu. y th c s l vn tron g m t vi mn g n g dng. V d, trong mi tr ng mng an ton, mt thit b u cui phi truyn mi k t ti my trm nh n c a vo. Khi d liu phi x l nh mt khc kch thc byte, th m hnh dy truyn khi m ho l khng tho ng. Ti m hnh CFB d liu l c m ha trong mt n v nh hn l kch thc ca khi. V d s m ho mt k t ASCII ti mt thi im (cn gi l m hnh 8 bits CFB) nh ng khng c g l bt kh khng v s 8. Bn c th m ho 1 bit d liu ti mt thi im, s dng thut ton 1 bit CFB.

4.2 M hnh m ho dng.


M ha dng l thu t ton, chuyn i bn r sang bn m l 1 bit ti mi thi im. S thc hin n gin nht ca m ho dng c th hin trong hnh 4.2

Trang 36

Upload by Share-Book.com

B sinh B sinh kho dng kho dng Kho dng Kho dng Bn r Bn r
Pi Ki Ki

B sinh B dng kho sinh kho dng Kho dng Kho dng Bn m Bn m
Ci Ci Gii m Gii m Ki

Bn r gc Bn r gc
Pi Pi

M ho M ho

Hnh 4.2 M ho dng. B sinh kho dng l u ra mt dng cc bits : k1, k2, k3, . . . ki. y l kho dng c XOR vi mt dng bits ca bn r, p 1, p2, p3, . . pi, a ra dng bits m ho. ci = pi XOR ki Ti im kt thc ca s gii m, cc bits m ho c XOR vi kho dng tr li cc bits bn r. pi = ci XOR ki T lc pi XOR ki XOR ki = pi l mt cng vic t m. an ton ca h thng ph thuc hon ton vo bn trong b sinh kho dng. Nu u ra b sinh kho dng v n bng 0, th khi bn r bng t bn m v c qu trnh hot ng s l v dng. Nu b sinh kho dng sinh ra s lp li 16 bits mu, th thut ton s l n gin vi an ton khng ng k. Nu b sinh kho dng l v tn ca dng ngu nhin cc bits, bn s c mt vng m (one time-pad) v an ton tuyt i. Thc t m ho dng n nm u gia XOR n gin v mt vng m. B sinh kho dng sinh ra mt dng bits ngu nhin, thc t iu ny quyt nh thut ton c th hon thin ti thi im gii m. u ra ca b sinh kho dng l ng nhin, nh vy ngi phn tch m s kh khn hn khi u
Trang 37

Upload by Share-Book.com

b gy kho. Nh bn on ra c rng, to mt b sinh kho dng m sn phm u ra ngu nhin l mt vn khng d dng.

5. Cc h mt m i xng v cng khai 5.1 H mt m i xng


Thut ton i xng hay cn gi thut ton m ho c in l thut ton m ti kho m ho c th tnh ton ra c t kho gii m. Trong rt nhiu trng hp, kho m ho v kho gii m l ging nhau. Thut ton ny cn c nhiu tn gi khc nh thut ton kho b mt, thut ton kho n gin, thut ton mt kho. Thut ton ny yu cu ngi gi v ngi nhn phi tho thun mt kho trc khi thng bo c gi i, v kho ny phi c ct gi b mt. an ton ca thut ton ny vn ph thuc v kho, nu l ra kho ny ngha l bt k ngi no cng c th m ho v gii m thng bo trong h thng m ho. S m ho v gii m ca thut ton i xng biu th bi : EK( P ) = C DK( C ) = P

K1 Bn r M ho Bn m

K2 Bn r gc M ho

Hnh 5.1 M ho v gii m vi kho i xng . Trong hnh v trn th : K1c th trng K2, hoc
Trang 38

Upload by Share-Book.com

K1 c th tnh ton t K2, hoc K2 c th tnh ton t K1.

Mt s nhc im ca h m ho c in

Cc phng m ho c in i hi ngi m ho v ngi gii m phi cng chung m kho. Khi kho phi c gi b mt tuyt i, do t vy ta d dng xc nh mt kho nu bit kho kia. H m ho i xng khng bo v c s an ton nu c xc sut cao kho ngi gi b l. Trong h kho phi c gi i trn knh an ton nu k ch tn cng trn knh ny c th pht hin ra kho. Vn qun l v phn phi kho l kh khn v phc tp khi s dng h m ho c in. Ngi gi v ngi nhn lun lun thng nht vi nhau v vn kho. Vic thay i kho l rt kh v d b l. Khuynh h ng cung cp kho di m n phi c thay i thng xuyn cho m ngi trong khi vn duy tr c tnh an ton ln hiu qu i chi ph s cn tr rt nhiu ti vic pht trin h mt m c in.

5.2 H mt m cng khai


Vo nhng nm 1970 Diffie v Hellman pht minh ra mt h m ho mi c gi l h m ho cng khai hay h m ho phi i xng.

Trang 39

Upload by Share-Book.com

Thut ton m ho cng khai l khc bit so vi thut ton i xng. Chng c thit k sao cho kho s d n g vo v ic m ho l khc so vi kho
K1 Bn r M ho Bn m Gii m K2 Bn r gc

gii m. Hn na kho gii m khng th tnh ton c t kho m ho. Chng c gi vi tn h thng m ho cng khai bi v kho m ho c th cng khai, mt ngi bt k c th s dng kho cng khai m ho thng bo, nhng ch mt vi ngi c ng kho gii m th mi c kh nng gi i m. Trong nhiu h thng, kho m ho gi l kho cng khai (public key), kho gii m thng c gi l kho ring (private key). Hnh 5.2 M ho v gii m vi hai kho . Trong hnh v trn th : K1 khng th trng K2, hoc K2 khng th tnh ton t K1. c trng ni bt ca h m ho cng khai l c kho cng khai(public key) v bn tin m ho (ciphertext) u c th gi i trn mt knh thng tin khng an ton.

Diffie v Hellman xc inh r cc iu kin ca mt h m ho cng khai nh sau :


1. Vic tnh ton ra cp kho cng khai KB v b mt kB da trn c s cc iu kin b an u phi c thc h in m t cch d d n g, ngha l thc hin trong thi gian a thc.

Trang 40

Upload by Share-Book.com

2. Ngi gi A c c kho cng khai ca ngi nhn B v c bn tin P cn gi i th c th d dng to ra c bn m C. C = EKB (P) = EB (P) Cng vic ny cng trong thi gian a thc. 3. Ngi nhn B khi nhn c bn tin m ha C vi kho b mt k B th c th gii m bn tin trong thi gian a thc. P = DkB (C) = DB[EB(M)] 4. Nu k ch bit kho cng khai KB c gng tnh ton kho b mt th khi chng ph ng u vi trng hp nan gii, trng i hp ny i hi nhiu yu cu khng kh thi v thi gian. 5. Nu k ch bit c cp (KB,C) v c gng tnh ton ra bn r P th gii quyt bi ton kh vi s php th l v cng ln, do khng kh thi.

6. Cc cch thm m
C su phng php chung phn tch tn cng, di y l danh sch theo th t kh nng ca tng phng php. Mi phng php trong s chng gi s rng k thm m hon ton c hiu bit v thut ton m ho c s dng. 1. Ch c bn m. Trong trng hp ny, ngi phn tch ch c mt vi bn tin ca bn m, tt c trong s chng u c m ho v cng s dng chung mt thut ton. Cng vic ca ngi phn tch l tm i c bn r ca nhiu bn m c th hoc tt hn l na l suy lun ra c kho s dng m ho, v s dng gii m nhng bn m khc vi cng kho ny. Gi thit : C1 = Ek(P1), C2= Ek(P2), . . .Ci = Ek(Pi) Suy lun : Mi P 1,P2, . . Pi, k hoc thut ton kt lun Pi+1 t
Trang 41

Upload by Share-Book.com

Ci+1 = Ek(Pi+1) 2. Bit bn r. Ngi phn tch khng ch truy cp c mt vi bn m mt khc cn bit c bn r. Cng vic l suy lun ra kho s dng gii m hoc thut ton gii m gii m cho bt k bn m no khc vi cng kho nh vy. Gi thit : P1, C1 = Ek(P1), P2, C2= Ek(P2), . . . Pi, Ci = Ek(Pi) Suy lun : Mi k hoc thut ton kt lun P i+1 t Ci+1 = Ek(Pi+1) 3. La chn bn r. Ngi phn tch khng ch truy cp c bn m v k hp b n r cho mt vi b n tin, n h g mt khc la t n chn bn r m ho. Phng php ny t ra c kh nng hn phng php bit bn r bi v ngi phn tch c th chn c th khi bn r cho m ho, mt iu khc c th l sn lng thng tin v kho nhiu hn. Gi thit : P1, C1 = Ek(P1), P2, C2= Ek(P2), . . . Pi, Ci = Ek(Pi) ti y ngi phn tch chn P 1, P2,. . . Pi Suy lun : Mi k hoc thut ton kt lun P i+1 t Ci+1 = Ek(Pi+1) 4. M phng la chn bn r. y l tr ng hp c bit ca la chn bn r. Khng ch c th la chn bn r m ho, nhng h cn c th sa i s la chn c bn kt qu ca s m ho ln trc. Trong trng la chn bn m ngi phn tch c th chn mt khi ln bn r m ho, nhng trong trng hp ny c th chn mt khi nh hn v chn cn c khc trn kt qu ca ln u tin. 5. La chn bn m. Ngi phn tch c th chn bn m khc nhau c m ho v truy cp bn r gii m. Trong v d khi mt ngi phn tch c mt hp chng c xo chn khng th t ng gii m, cng vic l suy lun ra kho.

Trang 42

Upload by Share-Book.com

Gi thit : C1, P1 = Dk(C1), C2, P2= Dk(C2), . . . Ci, Pi = Dk(Ci) ti Suy lun : k 6. La chn kho. y khng phi l mt cch tn cng khi m bn c kho. N khng phi l thc hnh thm m m ch l s gii m thng thng, bn ch cn la chn kho cho ph hp vi bn m. Mt im ng ch khc l a s cc k thut thm m u dng phng php thng k tn sut xut hin ca cc t, cc k t trong bn m. Sau thc hin vic th thay th vi cc ch ci c tn sut xut hin tng ng trong ngn ng t nhin. Ti y chng ta ch xem xt i vi ngn ng thng dng nht hin nay l ting Anh. Vic thng k tn sut xut hin ca cc k t trong trng hp ny c tin hnh da trn cc bi bo, sch, tp ch v cc vn bn cng vi mt s loi khc ... Sau y l b ng thng k tn sut xut hin ca 26 ch ci trong bng ch ci ting Anh theo ti liu ca Beker v Piper.

K t
A B C D E F G H I

Xc Sut
0.082 0.015 0.028 0.043 0.127 0.022 0.020 0.061 0.070

K t
J K L M N O P Q R

Xc sut
0.002 0.008 0.040 0.024 0.067 0.075 0.019 0.001 0.060

K t
S T U V W X Y Z

Xc sut
0.063 0.091 0.028 0.010 0.023 0.001 0.020 0.001

Trang 43

Upload by Share-Book.com

Cng v vic thng k c c tn xut ca cc k t trong ting Anh, vic i thng k tn sut xut hin thng xuyn ca cc dy gm 2 hoc 3 k t lin tip nhau cng c mt vai tr quan trng trong cng vic thm m. Sysu Deck a ra 30 b i xut hin thng xuyn ca ting Anh c sp theo th t gim dn nh sau : Tnh hu dng ca cc php thng k k t v cc dy k t c ngi phn tch m khai thc tri t trong nhng ln thm m. Khi thc hin vic thm m ngi phn tch thng k cc k t trong bn m, t so snh vi bn thng k mu v a ra cc k t phng on tng t. Phng php ny c s dng thng xuyn v em li hiu qu kh cao.

Trang 44

Upload by Share-Book.com

Cp ch TH HE IN ER RE ON AN EN AT ES

Tn sut 10.00 9.50 7.17 6.65 5.92 5.70 5.63 4.76 4.72 4.24

Cp ch ED TE TI OR ST AR ND TO NT IS

Tn sut 4.12 4.04 4.00 3.98 3.81 3.54 3.52 3.50 3.44 3.43

Cp ch OF IT AL AS HA NG CO SE ME DE

Tn sut 3.38 3.26 3.15 3.00 3.00 2.92 2.80 2.75 2.65 2.65

Trang 45

Upload by Share-Book.com

Chng III H m ho RSA.


Vi ti xy dng th vin cc hm m ho dng cho vic bo mt thng tin trao i trong m hnh Client/Server, th cn thit mt phng php m ho p dng, thut ton m ho cng khai RSA c la chn cho gii php ny. Phng php ny c nhng u im, nhc im, c tnh g l phn s trnh by trong chng ny Khi nim h mt m RSA Phn phi kho cng kkai trong RSA an ton ca h RSA Mt s tnh cht ca h RSA

1. Khi nim h mt m RSA


Khi ni m h mt m RSA c ra i nm 1976 bi cc tc gi R.Rivets, A.Shamir, v L.Adleman. H m ho ny da trn c s ca hai bi ton : + Bi ton Logarithm ri rc (Discrete logarith) + Bi ton phn tch thnh tha s. Trong h m ho RSA cc bn r, cc bn m v cc kho (public key v private key) l thuc tp s nguyn Z N = {1, . . . , N-1}. Trong tp Z N vi N=pq l cc nguyn t khc nhau cng vi php cng v php nhn s Modulo N to ra modulo s hc N. i Kho m ho EKB l cp s nguyn (N,K B) v kho gi m D Cc phng php m ho v gii m l rt d dng. Cng vi c m ho l s bin b r P (Plaintext) thn h b m C i n n (Ciphertext) da trn cp kho cng khai K B v bn r P theo cng thc sau y : C = EKB(P) = EB(P) = PKB (mod N) . (1)
Trang 46
kb

l cp s

nguyn (N,kB), cc s l rt ln, s N c th ln ti hng trm ch s.

Upload by Share-Book.com

Cng vic gii m l s bin i ngc li bn m C thnh bn r P da trn cp kho b mt kB , modulo N theo cng thc sau : P = DkB(C) = DB(C) = CkB (mod N) . (2) D thy rng, bn r ban u cn c bin i mt cch thch hp thnh bn m, sau c th ti to li bn r ban u t chnh bn m : P = DB(EB(P)) Thay th (1) vo (2) ta c : (PKB)kB = P (mod N ) (4) (3)

Trong ton h chng minh c rng, nu N l s nguyn t th cng c thc (4) s c li gii khi v ch khi KB.kB = 1 (mod N-1), p dng thut ton ta thy N=pq vi p, q l s nguyn t, do vy (4) s c li gii khi v ch khi : KB.kB 1 (mod (N)) trong (N) = LCM(p-1,q-1) . LCM (Lest Common Multiple) l b s chung nh nht. i Ni mt cch khc, u tin ngi nhn B la chn mt kho cng khai K B mt cch ngu nhin. Khi kho b mt kB c tnh ra bng cng thc (5). iu ny hon ton tnh c v khi B bit c cp s nguyn t (p,q) th s tnh c (N). (5)

Trang 47

Upload by Share-Book.com

Chn p v q

Tnh N=pq

Tnh (N) KB Chn kho KB

Bn r P

C = PKB (mod N)

Bn m C kB Chn kho KB P = CkB ( mod N )

Bn r gc P

Hnh 1.1 S cc bc thc hin m ho theo thut ton RSA.

2. an ton ca h RSA
Mt nhn nh chung l tt c cc cuc tn cng gii m u mang mc ch khng t. Tron g phn an to n c a h m ho RSA s cp n t mt vi phng thc tn cng in hnh ca k ch nhm gii m trong thut ton ny. Chng ta xt n trng hp khi k ch no bit c modulo N, kho cng khai KB v bn tin m ho C, kh i k ch s tm ra b n tin gc (Plaintext) nh th no. lm c iu k ch thng tn vo h thng mt m bng hai phng thc sau y:

Trang 48

Upload by Share-Book.com

Phng thc th nht :

Trc tin da vo phn tch tha s modulo N. Tip theo sau chng s tm cch tnh ton ra hai s nguyn t p v q, v c kh nng thnh cng khi s tnh c (N) v kho b m k B. Ta thy N cn phi l tch ca hai s t nguyn t, v nu N l tch ca hai s nguyn t th thut ton phn tch tha s n gin cn ti a
N bc, bi v c mt s nguyn t nh hn N.

Mt khc, nu N l tch ca n s nguyn t, th thut ton phn tch tha s n gin cn ti a N 1/n bc. Mt thut ton phn tch tha s c th thnh phc tp hn, cho php phn tch mt s N ra thnh tha s trong O( P ) bc, trong p l s chia nh nht ca N, vic chn hai s nguyn t l cho thut ton tng hiu qu.

Phng thc th hai :

Phng thc tn cng th hai vo h m ho RSA l c th khi u bng cch gii quyt trng hp thch hp ca bi ton logarit ri rc. Trng hp ny k ch c trong tay bn m C v kho cng khai KB tc l c cp (KB,C) C hai phng thc tn cng u cn mt s bc c bn, l : O(exp
lnNln(lnN) ), trong N l s modulo.

3. Mt s tnh cht ca h RSA

Trong cc h mt m RSA, mt bn tin c th c m ho trong thi gian tuyn tnh.

i vi cc b n tin d i, di ca cc s c dng cho cc kho c th c coi nh l h ng. Tng t nh vy, nng mt s ln lu tha c thc hin trong thi gian hng, cc s khng c php di hn mt di hng. Thc ra tham s ny che du nhiu chi tit ci t c lin quan n vic tnh ton vi cc con s di, chi ph ca cc php ton thc s l mt yu t ngn cn s ph bin ng dng ca phng php ny. Phn quan
Trang 49

Upload by Share-Book.com

trng nht ca vic tnh ton c lin quan n vic m ho bn tin. Nhng chc chn l s khng c h m ho no ht nu khng tnh ra c cc kho ca chng l cc s ln.

Cc kho cho h m ho RSA c th c to ra m khng phi tnh ton qu nhiu.

Mt ln na, ta li ni n cc phng php kim tra s nguyn t. Mi s nguyn t ln c th c pht sinh bng cch u tin to ra mt s ngu nhin ln, sau kim tra cc s k tip cho ti khi tm c mt s nguyn t. Mt phng php n gin thc hin mt php tnh trn mt con s ngu nhin, v xc sut 1/2 s chng minh rn g s c kim tra khn g phi i nguyn t. Bc cui cng l tnh p da vo thut ton Euclid. Nh ph trn trnh by trong h m ho cng khai th kho gii m n (private key) kB v cc tha s p,q l c gi b mt v s thnh cng ca phng php l tu thuc vo k ch c kh nng tm ra c gi tr ca k B hay khng n cho trc N v K B. Rt kh c th tm ra c k B t KB cn u bit v p v q, nh vy cn phn tch N ra thnh tha s tnh p v q. Nhng vic phn tch ra tha s l mt vic lm tn rt nhiu thi gian, vi k thut hin i ngy nay th cn ti hng triu nm phn tch mt s c 200 ch s ra tha s. an ton ca thut ton RSA da trn c s nhng kh khn ca vic xc nh cc tha s nguyn t ca mt s ln. Bng di y cho bit cc thi gian d on, gi s rng mi php ton thc hin trong mt micro giy.

Trang 50

Upload by Share-Book.com

S cc ch s trong s c phn tch 50 75 100 200 300 500 4

Thi gian phn tch

gi gi nm nm nm nm

104 74 4.000.000 51015 41025

Trang 51

Upload by Share-Book.com

Chng IV M hnh Client/Server


Trong thc t, m hnh Client/Server tr nn rt ph bin trong h thng mng im ti im, v chng c p dng hu ht cho nhng my tnh truyn thng ngy nay. Kin trc m hnh Client/Server v khi no cn m ho thng tin truyn trong Client/Server l ch s c trnh by trong chng ny.

1.M hnh Client/Server


Ni chung, m ng dng khi to truyn thng t im ti im c gi t l client. Ngi dng cui thng xuyn gi phn mm client khi h cn ti nhng dch v trn mng. M hnh Client/Server c gng t chc li cc my PC, trn m c b, thch hp vi cc my tnh ln mainframe, ng tng tnh thchng, tnh hiu qu ca h thng. Mc d c s thay i rt ln cc quan im v m hnh Client/Server, nhng chng c mt vi c tnh di y.

My Client l cc my PC hay l cc workstations, truyvo p c mng v s dng cc ti nguyn trn mng. Giao din ngi s dng vi Client, ni chung s dng giao din ngi dng ho (GUI), v nh Microsoft Windowns Trong h thng Client/Server c mt vi Client, vi mi Client s dng giao din ring ca mnh. Cc Client s dng cc ti nguyn c chia s bi Server. Server c th l mt workstation ln, nh mainframe, minicomputer, hoc cc thit b mng LAN. Client c th gi cc truy vn hoc cc lnh ti Server, nhng thc hin tin trnh ny khng phi l Client. Server tr li kt qu trn mn hnh ca Client.

Trang 52

Upload by Share-Book.com

Cc loi Server thng thng l : database server, file server, print server, image-processing server, computing server v communication server. Server khng th khi to bt k cng vic no, nhng n thc hin cc yu cu to ln ca Client. Nhim v chia l hai phn : phn mt trc thc hin bi client, v phn mt sau thc hin bi Server. Server thc hin vic chia s File, lu tr v tm ra cc thng tin, mng v qun l ti liu, qun l th in t, bng thng bo v vn bn video.

2. M ho trong m hnh Client/Server.


Trong m hnh Client/Server vi trao i thng tin din ra thng xuyn c nn rt d b k xu li dng, bi vy bo v thng tin trn ng truyn l v cng quan trng, chng m bo thng tin trn ng truyn l ng n. Ti m hnh ny mi khi nhng yu cu c gi t Client n Server hoc khi Server g tr li kt qu cho Client th nhng thng tin ny u c i m ho trong khi truyn.

Trang 53

Upload by Share-Book.com

Chng V Xy dng hm th vin


Xu hng trn th gii hin nay l phn mm c bn v phn phi dng cc modul phn mm. Cc hnh thc ca modul ph thuc vo cc gi phn mm c th v cc ngn ng m ngi s dng dng. V d bn c th to cc th vin tnh vi cc file c phn m rng .LIB hoc b n c th to mt iu khin ActiveX vi phn m rng OCX, hoc hn na bn c th to cc th vin lin kt ng vi cc file .DLL . Cc ngn ng lp trnh hin nay c tnh modul c lp rt cao, ngha l bn c th to ra cc ng dng bng cch kt hp nhiu modul phn mm c lp nhau thnh mt ng dng c th. Thng thng khi thit k mt phn mm ng dng thuc loi phc tp, bn s tm kim cc modul c th s dng c gim chi ph, gim thi gian thit k v tp chung nhiu hn cho nhng phn ng dng t bn vit ra. Mt cu hi t ra ti y l v sao chng ta li khng to ra cc hm thc hin cc cng vic chuyn bit v phn phi n cho ngi s dng, c mt vi l do sau y khng cho php thc hin iu ny :

Ngi dng c th v tnh thay i lm xo trn cc lnh trong chng trnh. Bn khng mun ngi dng bit "b quyt" ca bn m ch mun h s dng kt qu bn to ra.

Trong chng ny c cun lun vn trnh by th vin lin kt ng l g, a v chng thc hin nh th no. Th vin lin kt ng DLL (Dynamic Link Library) l m t tp tin th v in cha cc hm. Ngi lp trn h c th g i mt tp tin DLL vo trong chng trnh ca h v s dng cc hm trong DLL . DLL l mt th vin lin kt ng vi cc chng trnh s dng n, ngha l khi bn to ra tp tin EXE ca chng trnh m khng cn lin kt tp tin DLL v ch g trn h ca b n. Tp tin DLL s lin k t n g vi i n c
Trang 54

Upload by Share-Book.com

chng trnh trong thi gian thi hnh chng trnh. Bi vy khi vit mt ng dng c s dng DLL, bn phi phn phi tp tin DLL cng vi tp tin EXE ca chng trnh bn vit.

1.Xy dng th vin lin kt ng CRYPTO.DLL


Th vin crypto.dll c xy dng di y cung cp cho cc bn cc hm cn thit phc v cho vic m ho thng tin, chng bao gm int enciph(char *, char *) : hm m ho. int deciph(char *, char *) : hm gi i m.
Hm Enciph.c

Cc bn c th s dng hm ny thc hin cc thao tc m ho vi xu k t, bng cch a vo mt xu k t (bn r) u ra bn s nhn c mt xu k t c m ho (bn m). Vi bn m ny cc bn c th yn tm v ni dng thng tin s rt kh b l. Hm thc hin c s dng kho cng khai ly vo t File PUBLIC.KEY.
//============================= // Ham Enciph.c #include <stdio.h> #include <conio.h> #include <miracl.h> #include <stdlib.h> #include <string.h>

/* #define RSA */ int enciph(char { /* *sin,char *sout) */

encipher using public key

big x,ke; FILE *ifile;


Trang 55

Upload by Share-Book.com

int ch,i,leng; long seed; miracl *mip=mirsys(100,0); x=mirvar(0); ke=mirvar(0); mip->IOBASE=60;

if ((ifile=fopen("public.key","r"))==NULL) { return 1; } cinnum(ke,ifile); fclose(ifile); seed=123456789; irand(seed); bigrand(ke,x); leng=strlen(sin); for(i=0; i <= (leng-1); i++) { /* encipher character by character */ #ifdef RSA power(x,3,ke,x); #else mad(x,x,x,ke,ke,x); #endif ch=*(sin+i); ch^=x[1]; sout[i]=ch; } return 0; } //============================= miracl *mirsys(int nd,mr_small nb) { /* Initialize MIRACL system to
Trang 56

/* XOR with last byte of x */

Upload by Share-Book.com

* *

use numbers to base nb, and

nd digits or (-nd) bytes long */

int i; mr_small b; mr_mip=(miracl *)mr_alloc(1,sizeof(miracl)); mr_mip->depth=0; mr_mip->trace[0]=0; mr_mip->depth++; mr_mip->trace[mr_mip->depth]=25; if (MIRACL>=MR_IBITS) mr_mip->TOOBIG =(1<<(MR_IBITS-2)); else mr_mip->TOOBIG =(1<<(MIRACL-1));

#ifdef MR_FLASH mr_mip->BTS=MIRACL/2; if (mr_mip->BTS==MR_IBITS) mr_mip->MSK=(-1); else #endif mr_mip->MSK=(1<<(mr_mip->BTS))-1;

#ifdef MR_NO_STANDARD_IO mr_mip->ERCON=TRUE; #else mr_mip->ERCON=FALSE; #endif mr_mip->N=0; mr_mip->MSBIT=((mr_small)1<<(MIRACL-1)); mr_mip->OBITS=mr_mip->MSBIT-1; mr_mip->user=NULL; mr_set_align(0);

#ifdef MR_NOFULLWIDTH if (nb==0) {


Trang 57

Upload by Share-Book.com

mr_berror(MR_ERR_BAD_BASE); mr_mip->depth--; return mr_mip; } #endif if (nb==1 || nb>MAXBASE) { mr_berror(MR_ERR_BAD_BASE); mr_mip->depth--; return mr_mip; } mr_setbase(nb); b=mr_mip->base; mr_mip->lg2b=0; mr_mip->base2=1; if (b==0) { mr_mip->lg2b=MIRACL; mr_mip->base2=0; } else while (b>1) { b/=2; mr_mip->lg2b++; mr_mip->base2*=2; } if (nd>0) mr_mip->nib=(nd-1)/mr_mip->pack+1; else mr_mip->nib=(mr_mip->lg2b-8*nd-1)/mr_mip->lg2b; if (mr_mip->nib<2) mr_mip->nib=2; #ifdef MR_FLASH mr_mip->workprec=mr_mip->nib;
Trang 58

Upload by Share-Book.com

mr_mip->stprec=mr_mip->nib; while(mr_mip->stprec>2 && mr_mip->stprec> MR_FLASH/ mr_mip->lg2b) mr_mip->stprec=(mr_mip->stprec+1)/2; if (mr_mip->stprec<2) mr_mip->stprec=2; mr_mip->pi=NULL; #endif mr_mip->check=ON; mr_mip->IOBASE=10; mr_mip->ERNUM=0; mr_mip->RPOINT=OFF; mr_mip->NTRY=6; mr_mip->EXACT=TRUE; mr_mip->TRACER=OFF; mr_mip->INPLEN=0; mr_mip->PRIMES=NULL; mr_mip->IOBUFF=mr_alloc(MR_IOBSIZ+1,1); for (i=0;i<NK;i++) mr_mip->ira[i]=0L; irand(0L); mr_mip->nib=2*mr_mip->nib+1; #ifdef MR_FLASH if (mr_mip->nib!=(mr_mip->nib&(mr_mip->MSK)) || mr_mip>nib > mr_mip->TOOBIG) #else if(mr_mip->nib!=(mr_mip->nib&(mr_mip->OBITS)) || mr_mip->nib>mr_mip->TOOBIG) #endif { mr_berror(MR_ERR_TOO_BIG); mr_mip->nib=(mr_mip->nib-1)/2; mr_mip->depth--; return mr_mip; } mr_mip->modulus=NULL;
Trang 59

Upload by Share-Book.com

mr_mip->A=NULL; mr_mip->B=NULL; mr_mip->fin=FALSE; mr_mip->fout=FALSE; mr_mip->active=ON; mr_mip->w0=mirvar(0); /* w0 is double length mr_mip->nib=(mr_mip->nib-1)/2; #ifdef MR_KCM mr_mip->big_ndash=NULL; mr_mip->ws=mirvar(0); #endif mr_mip->w1=mirvar(0); /* initialize workspace */ mr_mip->w2=mirvar(0); mr_mip->w3=mirvar(0); mr_mip->w4=mirvar(0); mr_mip->nib=2*mr_mip->nib+1; mr_mip->w5=mirvar(0); mr_mip->w6=mirvar(0); mr_mip->w7=mirvar(0); mr_mip->nib=(mr_mip->nib-1)/2; mr_mip->w5d=&(mr_mip->w5[mr_mip->nib+1]); mr_mip->w6d=&(mr_mip->w6[mr_mip->nib+1]); mr_mip->w7d=&(mr_mip->w7[mr_mip->nib+1]); */

mr_mip->w8=mirvar(0); mr_mip->w9=mirvar(0); mr_mip->w10=mirvar(0); mr_mip->w11=mirvar(0); mr_mip->w12=mirvar(0); mr_mip->w13=mirvar(0); mr_mip->w14=mirvar(0); mr_mip->w15=mirvar(0); mr_mip->depth--;


Trang 60

Upload by Share-Book.com

return mr_mip; } //============================= flash mirvar(int iv) { /* initialize big/flash number */ flash x; if (mr_mip->ERNUM) return NULL; mr_mip->depth++; mr_mip->trace[mr_mip->depth]=23; if (mr_mip->TRACER) mr_track(); if (!(mr_mip->active)) { mr_berror(MR_ERR_NO_MIRSYS); mr_mip->depth--; return NULL; } x=(mr_small *)mr_alloc(mr_mip->nib+1,sizeof(mr_small)); if (x==NULL) { mr_berror(MR_ERR_OUT_OF_MEMORY); mr_mip->depth--; return x; } convert(iv,x); mr_mip->depth--; return x; } //============================= int cinnum(flash x,FILE *filep) { /* convert from string to flash x */ int n; if (mr_mip->ERNUM) return 0; mr_mip->depth++;
Trang 61

Upload by Share-Book.com

mr_mip->trace[mr_mip->depth]=14; if (mr_mip->TRACER) mr_track(); mr_mip->infile=filep; mr_mip->fin=TRUE; n=cinstr(x,NULL); mr_mip->fin=FALSE; mr_mip->depth--; return n; } //============================= void power(flash x,int n,flash w) { copy(x,mr_mip->w8); zero(w); if (mr_mip->ERNUM || size(mr_mip->w8)==0) return; convert(1,w); if (n==0) return; mr_mip->depth++; mr_mip->trace[mr_mip->depth]=51; if (mr_mip->TRACER) mr_track(); if (n<0) { n=(-n); frecip(mr_mip->w8,mr_mip->w8); } if (n==1) { copy(mr_mip->w8,w); mr_mip->depth--; return; } forever {
Trang 62

Upload by Share-Book.com

if (n%2!=0) fmul(w,mr_mip->w8,w); n/=2; if (mr_mip->ERNUM || n==0) break; fmul(mr_mip->w8,mr_mip->w8,mr_mip->w8); } mr_mip->depth--; } //============================= void mad(big x,big y,big z,big w,big q,big r) { if (mr_mip->ERNUM) return; mr_mip->depth++; mr_mip->trace[mr_mip->depth]=24; if (mr_mip->TRACER) mr_track(); mr_mip->check=OFF; if (w==r) { mr_berror(MR_ERR_BAD_PARAMETERS); mr_mip->depth--; return; } multiply(x,y,mr_mip->w0); if (x!=z && y!=z)add(mr_mip->w0,z,mr_mip->w0);

divide(mr_mip->w0,w,q); if (q!=r) copy(mr_mip->w0,r); mr_mip->check=ON; mr_mip->depth--; } //=============================

Hm Deciph.c

Trang 63

Upload by Share-Book.com

Hm s dng thc hin cc thao tc gii m ho vi xu k t c m ho bng hm enciph.c trn, bng cch a vo mt xu k t m ho (bn m) u ra bn s nhn li mt xu k t ban u (bn r gc). Hm thc hin c s dng kho b mt ly vo t File PRIVATE.KEY. Hai File PUBLIC.KEY v PRIVATE.KEY chng cng sinh ra do chng trnh c genkey, chng c quan h mt th it vi nhau v khng th tch ri, nu c kho cng khai m khng c kho b m th cng khng th gii m c, t cn nu c kho b mt m khng c kho cng khai th cng chng ch li g.
//============================= //Deciph.c #include <stdio.h> #include <miracl.h> #include <stdlib.h> #include <string.h>

int deciph(char *strinputde, char *stroutputde) { /* decipher using private key */

big x,y,ke,p,q,n,a,b,alpha,beta,t; FILE *ifile; int ch,i,leng; long ipt; miracl *mip=mirsys(100,0); x=mirvar(0); ke=mirvar(0); p=mirvar(0); q=mirvar(0); n=mirvar(0); y=mirvar(0);

Trang 64

Upload by Share-Book.com

alpha=mirvar(0); beta=mirvar(0); a=mirvar(0); b=mirvar(0); t=mirvar(0); mip->IOBASE=60; if ((ifile=fopen("private.key","r"))==NULL) { return 1; } cinnum(p,ifile); cinnum(q,ifile); fclose(ifile); multiply(p,q,ke); leng=strlen(strinputde); cinstr(x,strinputde); xgcd(p,q,a,b,t); lgconv(leng,n); /* first recover "one-time pad" */

#ifdef RSA decr(p,1,alpha); premult(alpha,2,alpha); incr(alpha,1,alpha); subdiv(alpha,3,alpha); #else incr(p,1,alpha); subdiv(alpha,4,alpha); #endif decr(p,1,y); powmod(alpha,n,y,alpha); #ifdef RSA decr(q,1,beta); premult(beta,2,beta);
Trang 65

Upload by Share-Book.com

incr(beta,1,beta); subdiv(beta,3,beta); #else incr(q,1,beta); subdiv(beta,4,beta); #endif decr(q,1,y); powmod(beta,n,y,beta); copy(x,y); divide(x,p,p); divide(y,q,q); powmod(x,alpha,p,x); powmod(y,beta,q,y); mad(x,q,q,ke,ke,t); mad(t,b,b,ke,ke,t); mad(y,p,p,ke,ke,x); mad(x,a,a,ke,ke,x); add(x,t,x); divide(x,ke,ke); if (size(x)<0) add(x,ke,x);

for (i=0;i<leng;i++) { /* decipher character by character */ ch=*(strinputde+i); ch^=x[1]; /* XOR with last byte of x */

stroutputde[i]=ch; #ifdef RSA power(x,3,ke,x); #else mad(x,x,x,ke,ke,x); #endif } return 0;


Trang 66

Upload by Share-Book.com

} //============================= void multiply(big x,big y,big z) { /* multiply two big numbers: z=x.y */

int i,xl,yl,j,ti; mr_small carry,sz; big w0; #ifdef MR_NOASM mr_large dble; #endif if (mr_mip->ERNUM) return; if (y[0]==0 || x[0]==0) { zero(z); return; } w0=mr_mip->w0; mr_mip->depth++; mr_mip->trace[mr_mip->depth]=5; if (mr_mip->TRACER) mr_track(); #ifdef MR_FLASH if (mr_notint(x) || mr_notint(y)) { mr_berror(MR_ERR_INT_OP); mr_mip->depth--; return; } #endif sz=((x[0]&mr_mip->MSBIT)^(y[0]&mr_mip->MSBIT)); xl=(int)(x[0]&mr_mip->OBITS); yl=(int)(y[0]&mr_mip->OBITS); zero(w0); if (mr_mip->check && xl+yl>mr_mip->nib)
Trang 67

/* local pointer */

Upload by Share-Book.com

{ mr_berror(MR_ERR_OVERFLOW); mr_mip->depth--; return; }

//============================= void mad(big x,big y,big z,big w,big q,big r) { if (mr_mip->ERNUM) return; mr_mip->depth++; mr_mip->trace[mr_mip->depth]=24; if (mr_mip->TRACER) mr_track(); mr_mip->check=OFF; if (w==r) { mr_berror(MR_ERR_BAD_PARAMETERS); mr_mip->depth--; return; } multiply(x,y,mr_mip->w0); if (x!=z && y!=z)add(mr_mip->w0,z,mr_mip->w0);

divide(mr_mip->w0,w,q); if (q!=r) copy(mr_mip->w0,r); mr_mip->check=ON; mr_mip->depth--; } //============================= int cinstr(flash x,unsigned char *string) { /* input big number in base IOBASE */

mr_small newb,oldb,b,lx; int ipt;


Trang 68

Upload by Share-Book.com

if (mr_mip->ERNUM) return 0; mr_mip->depth++; mr_mip->trace[mr_mip->depth]=78; if (mr_mip->TRACER) mr_track(); newb=mr_mip->IOBASE; oldb=mr_mip->apbase; mr_setbase(newb); /* temporarily change base ... */ b=mr_mip->base; mr_mip->check=OFF; ipt=instr(mr_mip->w5,string); /* ... and get number mr_mip->check=ON; lx=(mr_mip->w5[0]&mr_mip->OBITS); #ifdef MR_FLASH if ((int)(lx&mr_mip->MSK)>mr_mip->nib || */

(int)((lx>>mr_mip->BTS)&mr_mip->MSK)>mr_mip->nib) #else if ((int)lx>mr_mip->nib) #endif { /* numerator or denominator too big */ mr_berror(MR_ERR_OVERFLOW); mr_mip->depth--; return 0; } mr_setbase(oldb); cbase(mr_mip->w5,b,x); mr_mip->depth--; return ipt; } //============================= void incr(big x,int n,big z) { /* add int to big number: z=x+n */ if (mr_mip->ERNUM) return; mr_mip->depth++;
Trang 69

/* restore original base */

Upload by Share-Book.com

mr_mip->trace[mr_mip->depth]=7; if (mr_mip->TRACER) mr_track(); convert(n,mr_mip->w0); select(x,PLUS,mr_mip->w0,z); mr_mip->depth--; } //============================= void decr(big x,int n,big z) { /* subtract int from big number: z=x-n */ if (mr_mip->ERNUM) return; mr_mip->depth++; mr_mip->trace[mr_mip->depth]=8; if (mr_mip->TRACER) mr_track(); convert(n,mr_mip->w0); select(x,MINUS,mr_mip->w0,z); mr_mip->depth--; }

2.Chng trnh Demo th vin CRYPTO.DLL


Phn ny xy dng mt ng dng n gin Demo th vin CRYPTO.DLL, chng trnh xy dng nhp vo mt xu ri m ho, gii m v tr li kt qu ban u.

Trang 70

Upload by Share-Book.com

Trang 71

Upload by Share-Book.com

kt lun.
Qua qu trnh lm lun vn, em hiu bit thm kin thc v s an ton ca thng tin trn mng, mt s thut ton v phng php m ho. so snh, nh gi m thut ton m ho cn da vo mt s yu t c bn nh t phc tp thut ton, thi gian m ho v vn phn phi kho trong mi trng nhiu ngi s dng. D nhn thy rng cc phng php m ho c in nh phng php i ch v thay th l n gin v d thc hin, tuy nhin an ton khng cao do khng t c phc tp cn thit, ng thi kho cng rt d b l do kho ca ngi gi v ngi nhn l ging nhau. i vi cc thut ton m kho cng khai khc phc c vn phn phi kho, kho m ho c th cng khai v bt k ngi no c kho cng khai u c th m ho bn tin ca mnh, nhng ch duy nht ngi c kho b mt mi c th gii m c. Phng php m ho cng khai s dng thut ton RSA kh chm chp do yu cu nhng s nguyn t ln sinh ra kho cng khai v kho b mt nhng m khc n rt hu ch v cho ti nay cha c thut ton no phn t tch nhanh mt s ln thnh cc tha s l cc s nguyn t. Vi ti "Xy dng th vin cc hm m ho phc v bo mt thng tin trong m hnh Client/Server" em hon thnh xy ng th vin d ng CRYPTO.DLL vi hai hm m ho v hm gii m s dng thut ton RSA, bn cnh cha hon thnh phn vic xy dng mt ng dng Demo th vi n trn m hnh Client/Server. Tuy nhin do qu thi gian hn hp, trnh cn hn ch nn khng trnh khi thiu xt, rt mong c s ch bo, gp nhit tnh ca cc thy.

Trang 72

Upload by Share-Book.com

Trong tng lai n iu kin thi gian v k thut khng b hn ch em s u xy dng th vin vi cc hm y hn nh, hm kim tra mt s c phi nguyn t khng, hm sinh k ho, hm tnh giai tha . . . Em xin chn thnh cm n !

H Ni, Ngy 06 thng 06 nm 1999.


Ngi thc hin. ng Vn Hanh

Trang 73

Upload by Share-Book.com

Ti liu tham kho : BRASSARD, Modern Cryptology. Lecture Notes in Computer Science, Vol. 325. SpringerVerlag 1988. BRUCE SCHNEIER, APPLIED CRYPTOGRAPHY, Protocol, Algorithms, and Source Code in C, John Wiley & Sons 1994 COMBA, Exponentiation Cryptosystems on the IBM PC. IBM Phm Vn t, K thut lp trnh C, c s v nng cao Nh xut bn gio dc 1997. Xun Nguyt v Phng Kim Hong, hc Visual C++ 5 trong 21 ngy. Nh xut bn Mi c mau 1998.

Trang 74

You might also like