Professional Documents
Culture Documents
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
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
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.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
Upload by Share-Book.com
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 )
Trang 9
Upload by Share-Book.com
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.
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.
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; }
if(m<1) return(0);
Trang 13
Upload by Share-Book.com
Upload by Share-Book.com
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;
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
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
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
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)
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.
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
Trang 23
Upload by Share-Book.com
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
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
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.
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.
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 .
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.
Upload by Share-Book.com
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.
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.
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.
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
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.
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.
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
l cp 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
Bn r P
C = PKB (mod N)
Bn r gc P
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
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 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.
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.
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
gi gi nm nm nm nm
Trang 51
Upload by Share-Book.com
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.
Trang 53
Upload by Share-Book.com
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.
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>
Upload by Share-Book.com
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
Upload by Share-Book.com
* *
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_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);
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]); */
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);
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>
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 */
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
//============================= 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 */
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
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--; }
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 !
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