chukykochoibo_ungdung_0043

Embed Size (px)

Citation preview

B GIO DC V O TO TRNG I HC DN LP HI PHNG ---------- o0o ----------

CH K KHNG CHI B C V NG DNG

N TT NGHIP I HC H CHNH QUY Ngnh: Cng Ngh Thng Tin

Gio vin hng dn : Sinh vin thc hin : M s sinh vin:

TS. L Ph Nguyn Vn Tn 10416

HI PHNG - 2007

n tt nghip

Cc ch k khng chi b c v ng dng

MC LCT VN ................................................................................................. 4 Chng 1 : C S L THUYT .................................................................. 6 1. C s ton hc: .......................................................................................... 6 1.1. Php chia ht: ........................................................................................... 6 1.2. Khng chia ht: ........................................................................................ 6 1.3. c s: ..................................................................................................... 6 1.4. Nguyn t cng nhau: .............................................................................. 6 1.5. S nguyn t:............................................................................................ 6 1.6. nh ngha hm phi Euler: ....................................................................... 6 1.7. ng d : .................................................................................................. 7 1.8. S nghch o: .......................................................................................... 7 1.9. Nhm nhn(thng d thu gn): ................................................................ 7 1.10. Cp ca nhm nhn: ............................................................................... 7 1.11. Cp ca mt s thuc Z*n : ..................................................................... 7 1.12 nh ngha nhm Cyclic : ....................................................................... 7 1.13 nh ngha thng d bc 2: ..................................................................... 8 1.14 S Blum: .................................................................................................. 8 2. Tm hiu mt m ....................................................................................... 8 2.1. Gii thiu:................................................................................................. 8 2.2. S h thng mt m ............................................................................. 8 2.3. Mt m kha i xng ............................................................................. 9 2.4. M kha cng khai: .................................................................................. 15 Chng 2 : CH K S ................................................................................ 19 I. Ch k s .................................................................................................... 19 1. Gii thiu chung v ch k s: ................................................................... 19 2. nh ngha lc ch k:......................................................................... 20 2.1. Lc ch k RSA: .............................................................................. 20 2.2. Lc ch k ElGamal: ........................................................................ 21Sinh vin thc hin: Nguyn Vn Tn -2Lp: CT702

n tt nghip

Cc ch k khng chi b c v ng dng

II. Hm Hash ................................................................................................. 23 1. Gii thiu:.................................................................................................... 23 2. nh ngha: .................................................................................................. 23 2.1. Mt s hm Hash s dng trong ch k s: ............................................ 24 2.2. Cc hm Hash m rng: ........................................................................... 25 Chng 3 : CH K CHNG CHI B ..................................................... 27 1. Gii thiu: ................................................................................................... 27 2. Lc chng chi b: .............................................................................. 27 3. Cc nh l: ................................................................................................. 29 Chng 4: CH K NGI XC NHN C CH NH ................... 34 1. Gii thiu:.................................................................................................... 34 2. H thng c s: ........................................................................................... 35 3. Giao thc k: ............................................................................................... 36 4. Giao thc nhn: ........................................................................................... 38 5. Giao thc chuyn i: ................................................................................. 38 6. Tng qut: ................................................................................................... 39 Chng 5: CH K NGI XC NHN KHNG TH CHI B ......... 40 1.Gii thiu:..................................................................................................... 40 2. M hnh ca ch k ngi xc nhn khng th chi b: ............................ 41 3. Cc lc ch k v php chng minh tng tc: .................................. 42 4. Cu trc lc ch k ngi xc nhn khng th chi b: ..................... 44 5. Php phn tch an ton: ............................................................................... 45 6. Ch k ngi xc nhn khng th chi b m qung v cc ng dng ..... 48 CHNG TRNH..50 KT LUN ..................................................................................................... 62 TI LIU THAM KHO ............................................................................... 63

Sinh vin thc hin: Nguyn Vn Tn

-3-

Lp: CT702

n tt nghip

Cc ch k khng chi b c v ng dng

T VN Khi ng dng trn mng my tnh cng tr ln ph bin, thun li v quan trng th yu cu v an ton mng, an ninh d liu mng ngy cng tr ln cp bch v cn thit. Ngun ti nguyn mng rt d b nh cp hoc ph hng nu khng c mt c ch bo mt cho chng hoc s dng nhng c ch bo mt qu lng lo. Thng tin trn mng, d ang truyn hay c lu tr u cn c bo v. Cc thng tin y phi c gi b mt; Cho php ngi ta kim tra tin tng rng chng khng b sa i so vi dng nguyn thy ca mnh v chng ng l ca ngi nhn gi n cho ta. Mng my tnh c c im l nhiu ngi s dng, nhiu ngi cng khai thc kho ti nguyn, c bit l ti nguyn thng tin v ngi s dng thng phn tn v mt a l. Cc im ny th hin li ch to ln ca mng thng tin my tnh ng thi cng l iu kin thun li cho nhng k mun ph hoi an ton thng tin trn mng my tnh. Do cch tt nht bo v thng tin l m ha thng tin trc khi gi i. Mc tiu c bn ca mt m l cho php hai ngi, gi s l A v B, lin lc qua knh khng an ton theo cch m i th O (c ni n nh ngi thm m) kh c th hiu ci g ang c ni. Knh ny c th l ng in thoi hoc mng my tnh. Thng tin A mun gi n B s c gi l bn r (plaintext), c th l bt k ti liu no c cu trc ty . A s m bn r bng kha xc nh trc, v gi bn m thu c qua knh khng an ton. O d thu trm c bn m trn knh nhng kh c th hiu bn m l g nhng B l ngi bit kha m nn c th gii m v thit lp li bn r. C hai loi h mt gm h mt m kha b mt v h mt m kha cng khai. Trong h mt m kha cng khai, hai ngi mun trao i thng tin vi nhau phi tha thun vi nhau mt cch b mt kha k. Trong h mt ny c hai hm lp m ek v hm gii m dk . Nu tit l kha k s lm cho h thng khng an ton. Trong thc t, an ton h thng chnh l an ton tnh ton. Mt h mt l an ton tnh ton nu phng php tt nht bit ph n yu cu mt s ln khng hp l thi gian tnh ton, ngha l qu trnh thc hin tnh ton cc k phc tp, phc tp n mc ta coi khng th c. H m kha cng khai p ng c yu cu . tng ca h m kha cng khai l ch n c th tm ra mt h m kh c th tnh ton xc nh dk khi bit ek. quy tc m ek c th cng khai. Hm m ha cng khai ek phi d dng tnh ton nhng vic gii m phi kh i vi bt k ngi no ngoi ngi lp m. Tnh cht d tnh ton v kh o ngc ny thng c gi l tnh cht mt chiu. iu ny bo m tnh b mt cao.Sinh vin thc hin: Nguyn Vn Tn -4Lp: CT702

n tt nghip

Cc ch k khng chi b c v ng dng

Nh chng ta bit, trong cch thc giao dch truyn thng, thng bo c truyn i trong giao dch thng di dng vit tay hoc nh my km theo ch k(vit tay) ca ngi gi bn di vn bn. Ch k l bng chng xc nhn thng bo ng l ca ngi k, tc l ch th giao dch. Ch k vit tay c nhiu u im l d kim th, khng sao chp c ch k ca mt ngi l ging nhau trn nhiu vn bn Ngy nay, cng vi s pht trin ca khoa hc v cng ngh thng tin c bit l s bng n ca mng my tnh th nhu cu trao i thng tin trn mng ngy cng ph bin. Khi chng ta chuyn sang cch thc truyn tin bng cc phng tin hin i, cc thng bo c truyn i trn cc mng truyn tin s ha, bn thn cc thng bo cng biu din dui dng s ha tc l di dng bt nh phn, ch k nu c cng di dng cc dy bit, th cc mi quan h t nhin k trn khng cn gi c na. Chng hn, ch k ca mt ngi gi trn nhng vn bn khc nhau phi th hin c s gn kt trch nhim ca ngi gi i vi tng vn bn th tt yu phi khc nhau ch khng th l nhng on bit ging nhau nh cc ch k ging nhau trn cc vn bn thng thng. Ch k vit tay c th c kim th bng cch so snh vi nguyn mu, nhng ch k in t th khng th c nguyn mu m so snh, vic kim th phi c thc hin bng nhng thut ton c bit. Mt vn na l ch k in t c th sao chp ty kh c th phn bit c bn sao v bn gc nn c th c nguy c dng li nhiu ln. Vy lm th no ngn chn nguy c v lm th no c th ngn cn c ngi k chi b ch k ca mnh hoc ngi kim tra chi b vic mnh nhn c thng bo. Trc nhng yu cu , nng cao tnh an ton ca ch k in t v nng cao trch nhim ca ngi k v ngi kim tra, i hi ngi ta phi a ra mt lc ch k s dng cc giao thc c th khc phc c nhng nhc im ca ch k s. l l do em chn ti Cc Ch k khng chi b c v ng dnglm ti nghin cu ca mnh. Trong n ny em i su tm hiu v lc ch k khng chi b, lc ch k chng chi b c ngi xc nhn v ngi xc nhn khng th chi b. C ngha l ch k c th c kim tra m khng cn s cng tc ca ngi k m l mt ngi th ba l ngi xc nhn.

Sinh vin thc hin: Nguyn Vn Tn

-5-

Lp: CT702

n tt nghip

Cc ch k khng chi b c v ng dng

Chng 1

C S L THUYT1. C s ton hc: 1.1. Php chia ht: - N: cho a,b Z a. Ta ni a chia ht cho b nu s c sao cho a = b.c ; K hiu: b|a - Tnh cht: a,b,c Z a|a a|b , b|c a|c a|b , a|c a|(x.b+y.c) x,y Z a|b , b|a a b 1.2. Khng chia ht: - N: Php chia gi l khng chia ht nu tn ti s r (0 < r < b) sao cho: a = b.q + r Vi: q l phn nguyn r l phn d 1.3. c s: - N: c s ca a v b l c nu c|a v c|b - c s chung ln nht : L s ln nht m a v b chia ht K hiu : c = gcd(a,b) ; (great common divisor) - Bi s chung nh nht : d l BSCNN ca a v b nu c m a|c , b|c d|c K hiu: d = lcm(a,b) ; (least common multiple) - Tnh cht: lcm(a,b) = a.b/gcd(a,b) 1.4. Nguyn t cng nhau: - N: a,b gi l hai nguyn t cng nhau khi gcd(a,b) = 1 n gin (a,b) = 1 1.5. S nguyn t: - N: S nguyn t l s ch chia ht cho 1 v chnh n - Tnh cht: Gi s p l s nguyn t v p|a.b th p|a hoc p|b hoc c hai u chia ht cho p. C v s s nguyn t. 1.6. nh ngha hm phi Euler: - N : Vi n1 chng ta gi (n) l tp cc s nguyn t cng nhau vi n nm trong khong [1,n] - Tnh cht : Nu p l s nguyn t (p) = p-1Sinh vin thc hin: Nguyn Vn Tn -6Lp: CT702

n tt nghip

Cc ch k khng chi b c v ng dng

Nu p=m.n , gcd(m,n)=1 (p)= (m). (n) Nu n = p1e1.p2e2.p3e3... (n)=n.(1-1/p1).(1-1/p2).(1-1/p3)... 1.7. ng d : - N : Cho n l s nguyn dng, ta ni hai s nguyn a v b l ng d vi nhau theo modulo n nu n|(a-b) K hiu : ab(modn) - Tnh cht : aa(modn) ab(modn) ba(modn) ab(modn) , bc(modn) ac(modn) aa1(modn) , bb1(modn) a+ba1+b1(modn) a.ba1.b1(modn) 1.8. S nghch o: - N: Cho a Zn. Mt s nguyn x Zn gi l nghch o ca a theo modn nu a.x1modn. Nu c s x nh vy th n l duy nht v ta ni a l kh nghch, nghch o ca a k hiu l a-1. -Tnh cht: a Zn, a kh nghch khi v ch khi gcd(a,n)=1. 1.9. Nhm nhn(thng d thu gn): - N: Nhm nhn ca Zn k hiu l Z*n l tp hp cc phn t sao cho gcd(a,n)=1 Vi n l s nguyn t th Z*n={ a Zn | 1an-1} 1.10. Cp ca nhm nhn: - N : Cp ca Z*n l s phn t ca Z*n , |Z*n| = (n) 1.11. Cp ca mt s thuc Z*n : - N : Cho a Zn khi cp ca a k hiu l ord(a) l mt s nguyn dng t nh nht sao cho at = 1(modn) 1.12 nh ngha nhm Cyclic : - N : Cho Z*n nu cp ca l (n) khi gi l phn t sinh hay phn t nguyn thu ca Z*n, v nu Z*n tn ti mt phn t sinh th n s c gi l Cyclic - Tnh cht : Nu l phn t sinh ca Z*n th Z*n = { i modn | 0 i (n)} l phn t sinh ca tp Z*n khi b= i modn cng l phn t sinh ca Z*n khi v ch khi gcd(i, (n))=1. Nu p l s nguyn t th Z*p chc chn c phn t sinh

Sinh vin thc hin: Nguyn Vn Tn

-7-

Lp: CT702

n tt nghip

Cc ch k khng chi b c v ng dng

1.13 nh ngha thng d bc 2: - N: Cho a Z*n gi a l thng d bc 2 theo modulo n nu tn ti x Z*n sao cho x2a(modn) v nu khng tn ti th gi a l bt thng d bc 2 theo modulo n. Tp cc thng d bc 2 k hiu l Qn v cc tp bt thng d bc 2 k hiu l Qn . 1.14 S Blum: - N: S Blum l mt hp t n=p.q nu p,q l hai s nguyn t khc nhau v ng d vi 3mod4. 2. Tm hiu mt m 2.1. Gii thiu: Mt m c s dng t rt sm, khi con ngi bit trao i thng tin cho nhau v tri qua bao nhiu nm n c pht trin t nhng hnh thc s khai cho n hin i v tinh vi. Mt m c s dng trong rt nhiu lnh vc ca con ngi v cc quc gia, c bit trong cc lnh vc qun s, chnh tr, ngoi giao v thng mi. Mc ch ca mt m l to ra kh nng trao i thng tin trn mt knh thng tin chung cho nhng i tng cng tham gia trao i thng tin v khng mun mt i tng th ba khc bit c nhng thng tin m h trao i. Khi mt i tng A mun gi mt thng ip cho nhng ngi nhn, A s phi m ha thng ip v gi i, nhng ngi nhn c thng ip m ha mun bit c ni dung th phi gii m thng ip m ha. Cc i tng trao i thng tin cho nhau phi tha thun vi nhau v cch thc m ha v gii m, quan trng hn l kha mt m s dng trong qu trnh m ha v gii m, n phi tuyt i c gi b mt. Mt i tng th ba mc d c bit c nhng s khng bit c ni dung thng ip m ha. C hai phng php m ha d liu l M ha kha i xng v M ha kha cng khai. 2.2. S h thng mt m L mt b nm (P, C, K, E, D) trong : + P l mt tp hu hn cc bn r. + C l mt tp hu hn cc bn m. + K l mt tp hu hn cc kho. + Vi mi k K, c mt hm lp m e Ek

e :PCk

v mt hm gii m d Dk

d : C P sao cho d (e (x)) = x vi mi x Pk k k

Sinh vin thc hin: Nguyn Vn Tn

-8-

Lp: CT702

n tt nghip

Cc ch k khng chi b c v ng dng

2.3. Mt m kha i xng Phng php m ha i xng (symmetric cryptography) cn c gi l m ha kha b mt (secret key cryptography). Vi phng php ny, ngi gi v ngi nhn s dng chung mt kha m ha v gii m thng ip. Trc khi m ha thng ip gi i, hai bn gi v nhn phi c kha chung v phi thng nht thut ton dng m ha v gii m. C nhiu thut ton ng dng cho m ha kha b mt DES - Data Encrytion Standard, 3DES - triple-strength DES, RC2 - Rons Cipher 2 v RC4, v.v... v s khai nht l cc h mt m c in. Nhc im chnh ca phng php ny l kha c truyn trn knh an ton nn chi ph tn km v khng kip thi. u im l tc m ha v gii m rt nhanh. Mt s h mt m c in 2.3.1. M dch chuyn: nh ngha: M dch chuyn: (P, C, K, E, D) P = C = K = Z vi k K, nh ngha e (x) = (x + k) mod 26 d (y) = (y k) mod 2626 k k

(x, y Z )26

V d: Dng kho k = 9 m ho dng th: toinaydichoi dng th tng ng vi dng s t 19 o 14 i 89

n 12

a 0

y 24

d 3

i 8

c 2

h 7

o 14

i 8

qua php m ho e s c:

2 c

23 x

17 r

22 w

9 j

7 h

12 m

17 r

11 l

16 q

23 x

17 r

bn m s l: qnwcxrcqdkjh Nhn c bn m , dng d nhn c bn r.9

Cch y 2000 nm m dch chuyn c Julius Ceasar s dng, vi kho k=3 m ch chuyn c gi l m Ceasar.Sinh vin thc hin: Nguyn Vn Tn -9Lp: CT702

n tt nghipm

Cc ch k khng chi b c v ng dng

Tp kho ph thuc vo Z vi m l s kho c th. Trong ting Anh tp kho ch c 26 kho c th, vic thm m c th c thc hin bng cch duyt tun t 26 kho , v vy an ton ca m dch chuyn rt thp. 2.3.2. M thay th: nh ngha M thay th: (P, C, K, E, D) P = C = Z , K = S (Z ) Vi mi K, tc l mt hon v trn Z , ta xc nh26 26 26

e (x) = (x)

d(y) = (y) vi x, y Z , l nghch o ca 26 -1

-1

V d: c cho bi ( y ta vit ch ci thay cho cc con s thuc Z ):26

bn r: toinaydichoi s c m ho thnh bn m (vi kho ): mfzsxdazygfz D xc nh c , v do t bn m ta tm c bn r. M thay th c tp hp kho kh ln - bng s cc hon v trn bng ch ci, tc s cc hon v trn Z , hay l 26! > 4.10 . Vic duyt ton b cc hon v thm m26 26 -1

l rt kh, ngay c i vi my tnh. Tuy nhin, bng phng php thng k, ta c th d dng thm c cc bn m loi ny, v do m thay th cng khng th c xem l an ton. 2.3.3. M Anffine: nh ngha M Anffine: (P, C, K, E, D) P = C = Z , K = { (a, b) Z x Z : (a, 26) = 1 }26 26 26

vi mi k = (a, b) K ta nh ngha:Sinh vin thc hin: Nguyn Vn Tn -10Lp: CT702

n tt nghip

Cc ch k khng chi b c v ng dng

e (x) = ax + b mod 26k

d (y) = a (y b) mod 26k

-1

trong x, y Z

26

V d: Ly k = (5, 6). Bn r: toinaydichoi t x 19 o 14 i 8 n 13 a 0 y 14 d 3 i 8 c 2 h 7 o 14 i 8

y=5x + 6 mod 26 y 23 x 24 y 20 u 19 t 6 g 24 y 21 v 20 u 16 q 15 p 24 y 20 u

Bn m: xyutgyvuqpyu Thut ton gii m trong trng hp ny c dng: d (y) = 21(y 6) mod 26k

Vi m Apphin, s cc kho c th c bng (s cc s 26 v nguyn t vi 26) 26, tc l 12 26 = 312. Vic th tt c cc kho thm m trong trng hp ny tuy kh mt th gi nu tnh bng tay, nhng khng kh khn g nu dng my tnh. Do vy, m Apphin cng khng phi l m an ton. 2.3.4. M Vigenre: nh ngha M Vigenere: (P, C, K, E, D) Cho m l s nguyn dng. P = C = K = Z26m vi mi kho k = (k , k ,,k ) K c:1 2 m

e (x , x ,, x ) = (x + k , x + k ,, x + k )k 1 2 m 1 1 2 2 m m

Sinh vin thc hin: Nguyn Vn Tn

-11-

Lp: CT702

n tt nghipk 1 2 m

Cc ch k khng chi b c v ng dng

d (y , y ,, y ) = (y k , y k ,, y k )1 1 2 2 m m

cc php cng php tr u ly theo modulo 26 V d: Gi s m = 6 v kho k l t CIPHER - tc k=(2, 8, 15, 7, 4, 17). Bn r: toinaydichoi t x k y 19 2 21 v Bn m vwxuepfqrosz T bn m , dng php gii m d tng ng, ta li thu c bn r.k

o 14 8 22 w

i 8 15 23 x

n 13 7 20 u

a 0 4 4 e

y 24 17 15 p

d 3 2 5 f

i 8 8 16 q

c 2 15 17 r

h 7 7 14 o

o 14 4 18 s

i 8 17 25 z

Ch : M Vigenere vi m = 1 s tr thnh m Dch chuyn. Tp hp cc kho trong m Vigenere mi m 1 c tt c l 26 kho c th c. Vi m = 6, s kho l 308.915.776, duyt ton b chng y kho thm m bng tnh tay th kh, nhng vi my tnh th vn l iu d dng. 2.3.5. M Hill: nh ngha M Hill: (P, C, K, E, D) Cho m l s nguyn dng. P = C = Z26m K = { k Z26mxm : (det(k), 26) = 1 } vi mi k K nh ngha: e (x , x ,, x ) = (x , x ,, x ).kk 1 2 m 1 2 m -1 m

d (y , y ,, y ) = (y , y ,,y ).kk 1 2 m 1 2 m

Sinh vin thc hin: Nguyn Vn Tn

-12-

Lp: CT702

n tt nghip

Cc ch k khng chi b c v ng dng

V d: Ly m = 2, v k = Vi b 2 k t (x , x ), ta c m l (y , y ) = (x , x ). k c tnh bi1 2 1 2 1 2

y = 11.x + 3.x1 2 1

2

y = 8.x + 7.x1

2

Gi s ta c bn r: tudo, tch thnh tng b 2 k t, v vit di dng s ta c 19 20 | 03 14 , lp bn m theo quy tc trn, ta c bn m di dng s l: 09 06 | 23 18, v di dng ch l fgxs. Ch : n gin cho vic tnh ton, thng thng chn ma trn vung 22. Khi c th tnh ma trn nghch o theo cch sau : Gi s ta c

Ta c ma trn nghch o

V c tnh nh sau

Mt ch l php chia lun thc hin c trn tp Z th nht thit nh thc ca k : det(k) = (ad bc) phi c phn t nghch o trn Z , ngha l (ad bc) phi l26 26

mt trong cc gi tr : 1, 3, 5, 7, 9, 11, 15, 17, 19, 21, 23, hoc 25. y cng l iu kin ma trn k tn ti ma trn nghch o. Khi : k .k = I l ma trn n v (ng cho chnh bng 1)-1

Sinh vin thc hin: Nguyn Vn Tn

-13-

Lp: CT702

n tt nghip

Cc ch k khng chi b c v ng dng

nh thc ca

L 11*7 8*3 = 1 1 mod 26 Khi

2.3.6. M hon v: nh ngha M hon v: (P, C, K, E, D) Cho m l s nguyn dng. P=C=Z ,K=S26 m

vi mi k = S , ta cm

trong l hon v nghch o ca V d: Gi s m = 6, v kho k c cho bi php hon v 1 3 Khi php hon v nghch o l: 1 3 2 6 3 1 4 5 5 2 6 4-1

-1

2 5

3 1

4 6

5 4

6 2

Sinh vin thc hin: Nguyn Vn Tn

-14-

Lp: CT702

n tt nghip

Cc ch k khng chi b c v ng dng

Bn r: toinaydichoi

t vt vt 1

o 2

i 3

n 4

a 5

y 6

d 1

i 2

c 3

h 4

o 5

i 6

1->3 2->5 3->1 4->6 5->4 6->2 1->3 2->5 3->1 4->6 5->4 6->2 3 i Bn m: iatynocodihi Dng hon v nghch o, t bn mt m ta li thu c bn r. Ch : 5 a 1 t 6 y 4 n 2 o 3 c 5 o 1 d 6 i 4 h 2 i

M hon v l mt trng hp ring ca m Hill. Thc vy, cho php hon v ca {1, 2,, m}, ta c th xc nh ma trn K =(k ), vi ij

Th d thy rng m Hill vi kho K trng vi m hon v vi kho .

Vi m cho trc, s cc kho c th c ca m hon v l m! D nhn thy vi m = 26 ta c s kha 26! (m Thay th). 2.4. M kha cng khai: Phng php m ha kha cng khai (public key cryptography) cn c gi l m ha bt i xng (asymmetric cryptography) gii quyt c vn ca phng php m ha kha b mt (i xng) l s dng hai kha: kha b mt (private key) v (public key). Kha b mt c gi kn, trong khi c gi cng khai bi v tnh cht kh tnh c kha b mt t kha cng khai. Kha cng khai v kha b mt c vai tr tri ngc nhau, mt kha dng m ha v kha kia s dng gii m. Hin nay cc h mt m kha cng khai u da trn hai bi ton kh l bi ton logarith ri rc trn trng hu hn v bi ton tm c s nguyn t.Sinh vin thc hin: Nguyn Vn Tn Lp: CT702

-15-

n tt nghip

Cc ch k khng chi b c v ng dng

Phng php cho php trao i kha mt cch d dng v tin li. Nhng tc m ha kh chm hn rt nhiu so vi phng php m ha kha i xng rt nhiu, Tuy nhin, h mt m kha cng khai c mt u im ni bt l cho php to ch k in t. Mt s h mt m kha cng khai 2.4.1. M RSA: H mt ny s dng tnh ton trong Zn, trong n l tch ca 2 s nguyn t phn bit p v q. Ta thy rng (n) = (p 1).(q 1). nh ngha Cho n = p.q trong p v q l cc s nguyn t. t P = C = Zn v nh ngha: K = {(n, p, q, a, b): n = p.q; p, q l cc s nguyn t, a.b 1 mod (n)} Vi K = (n, p, q, a, b) ta xc nh: eK = xb mod n v dK = ya mod n (x, y Zn) Cc gi tr n v b c cng khai v cc gia tr p, q, a c gi kn V d: Chn p = 2, q = 5. Tnh n = p.q = 2*5 = 10 (n)= (p 1).(q 1) = 1*4 = 4 Do UCLN((n), b) = 1 nn chn b = 3 a.b 1 mod (n) nn chn a = 7 Gi s G mun gi bn r x = 3 ti N, G phi tnh: y = eK = xb mod n = 33 mod 10 = 7 Khi N nhn c bn m y = 1, anh ta s dng s m a mt tnh: x = dK = ya mod n = 77 mod 10 = 3 chnh l bn r m G m ho. mt ca h RSA c da trn gi thit l hm m eK = xb mod n l hm mt chiu. Bi vy thm m s kh c kh nng v mt tnh ton gii m mt bn m. Ca sp cho php N chnh l thng tin v php phn tch tha s n (n = p.q). V N bit php phn tch ny nn anh ta c th tnh (n) = (p 1).(q 1) v ri tnh s m gii m a bng cch s dng thut ton Eculide m rng.

Sinh vin thc hin: Nguyn Vn Tn

-16-

Lp: CT702

n tt nghip

Cc ch k khng chi b c v ng dng

2.4.2. M Elgamal: M t h m Elgamal H mt m ElGamal c T. ElGamal xut nm 1985, da vo phc tp ca bi ton tnh lgarit ri rc, v sau nhanh chng c s dng rng ri khng nhng trong vn bo mt truyn tin m cn trong cc vn xc nhn v ch k in t. Bi ton logarithm ri rc trong Zp l i tng trong nhiu cng trnh nghin cu v c xem l bi ton kh nu p c chn cn thn. C th l khng c mt thut ton thi gian a thc no cho bi ton logarithm ri rc. gy kh khn cho cc phng php tn cng bit, p phi c t nht 150 ch s v (p 1) phi c t nht mt tha s nguyn t ln H mt Elgamal l mt h mt khng tt nh v bn m ph thuc vo c bn r x ln gi tr ngu nhin k do G chn. Bi vy s c nhiu bn m c m t cng mt bn r. Bi ton logarithm ri rc trong Zp: c trng ca bi ton: I = (p, , ) trong p l s nguyn t, Zp l phn t nguyn thu (hay phn t sinh), Zp* Mc tiu: Hy tm mt s nguyn duy nht a, 0 a p 2 sao cho: a (mod p) Ta s xc nh s nguyn a bng log . nh ngha m kha cng khai Elgamal trong Zp*: Cho p l s nguyn t sao cho bi ton logarithm ri rc trong Zp l kh gii Cho Zp* l phn t nguyn thu. Gi s P = Zp*, C = Zp* x Zp*. Ta nh ngha K = {(p, , a, ): a (mod p)} Cc gi tr p, , c cng khai, cn a gi kn. Vi K =(p, , a, ) v mt s ngu nhin b mt k Zp 1, ta xc nh: eK(x, k) = (y1, y2). Trong : y1 = k mod p y2 = x. k mod p vi y1, y2 Zp* ta xc nh: dK(y1, y2) = y2(y1a) 1 mod p

Sinh vin thc hin: Nguyn Vn Tn

-17-

Lp: CT702

n tt nghip

Cc ch k khng chi b c v ng dng

V d: Chn p = 7 Zp* l phn t nguyn thu nn = 3 Chn a sao cho 0 a p 2 nn a = 2 Khi : = a mod p = 32 mod 7 = 2 Chn mt s ngu nhin b mt k Zp 1, chn k =3 Gi s G mun gi thng bo x = 3 cho N, G phi tnh: eK(x, k) = (y1, y2) trong : y1 = k mod p = 33 mod 7 = 6 y2 = x. k mod p = 3*23 mod 7 = 3 Khi N thu c bn m (y1, y2) = (6, 3), anh ta s tnh: x = dK(y1, y2) = y2(y1a)-1 mod p = 3*(62)-1 mod 7 = 3 chnh l bn r m G m ho.

Sinh vin thc hin: Nguyn Vn Tn

-18-

Lp: CT702

n tt nghip

Cc ch k khng chi b c v ng dng

Chng 2

CH K SI. Ch k s 1. Gii thiu chung v ch k s: Nh chng ta bit, ch k vit tay thng l gn vi ti liu c dng ch ra ngi k n. Ch k c s dng hng ngy nh vit th, k hp ng y chng ta tm hiu v ch k hon ton khc l ch k s. N l phng php k thng bo c lu di dng in t v thng bo c k c th truyn trn mng my tnh. Ch k tay v ch k s d c chung nhim v l k nhng c s khc bit c bn gia chng. Th nht, v vic k ti liu: vi ch k tay th ch k l b phn vt l ca ti liu c k. Tuy nhin, ch k s khng mt cch vt l vi thng bo c k m c gn vi thng bo theo logic, do thut ton c dng phi tri ch k vi thng bo theo mt cch no . Th hai, v vic kim tra: ch k tay c kim tra bng cch so snh n vi nhng ci khc nhng ch k c xc thc. V d, mt ngi k mt tm sc mua hng, ngi bn hng phi so snh ch k trn tm sc vi ch k nm sau th tn dng kim tra. Tuy nhin, phng php ny khng an ton lm v n tng i d nh la bi ch k ca ngi khc. Khc vi ch k tay, ch k s c th c kim tra bng cch dng thut ton kim tra cng khai bit. V vy bt k ngi no u c th kim tra ch k s, v vic s dng lc k an ton s ngn chn kh nng nh la. iu khc nhau c bn gia ch k tay v ch k s l bn sao thng bo s c k l ng nht vi bn gc. Trong khi , bn sao ti liu giy k thng l khc vi bn gc. iu ny c ngha l phi cn thn ngn chn thng mt thng bo k s b s dng li. V d, nu A k thng bo s cho B rt 1000$ t ti khon trong ngn hng ca mnh, A ch mun B lm iu 1 ln. Do , thng bo phi cha thng tin ngn chn B lm li vic nhiu ln. Lc ch k gm hai thnh phn: mt thut ton k v mt thut ton kim tra. A c th k thng bo x nh thut ton k(b mt) Sig. Ch k thu c Sig(x) sau c th c kim tra bng thut ton kim tra cng khai Ver. Khi cho cp(x,y) thut ton kim tra tr li ng hoc sai ph thuc vo vic k c ch thc khng?

Sinh vin thc hin: Nguyn Vn Tn

-19-

Lp: CT702

n tt nghip

Cc ch k khng chi b c v ng dng

2. nh ngha lc ch k: Lc ch k l mt b nm phn t (P,A,K,S,V) tha mn cc iu kin sau: 1. P _ l mt tp hu hn cc thng bo. 2. A _ tp hu cc ch k c th. 3. K _ tp hu hn cc kha, khng gian kha. 4. Vi mi k K, sigk S v verk V Mi sigk: P A, verk: P * A {true, false}l nhng hm sao cho mi bc in x P v mi ch k y A tha mn: Ver(x,y) = true, false, khi khi y = sig ( x ) . y sig (x )

Yu cu: - Vi mi k K, cc hm sigk v verk l cc hm thi gian a thc - Verk l hm cng khai, sigk l hm b mt trnh trng hp mt ngi B no c th gi mo ch k ca ch th A k thng bo. Vi mi x ch duy nht A tnh c ch k y sao cho: Ver(x,y)= True Lc ch k phi an ton. Bi v ngi thm m B c th kim tra tt c cc kh nng ca ch k y nh thut ton kim tra cng khai Ver cho ti khi t c yu cu tc l tm c ch k ng. Do , nu thi gian cn thit th B c th gi mo c ch k ca A. V vy, mc ch ca chng ta l tm cc lc ch k sao cho B khng thi gian thc t th nh th. 2.1. Lc ch k RSA: Lc ch k RSA c nh ngha nh sau: To kha: S ch k cho bi b nm (P,A,K,S,V) Cho n=p.q; vi mi p,q l cc s nguyn t ln khc nhau (n) = (p - 1)(q - 1). Cho P = A = Zn v nh ngha: K l tp cc kha, K=(K,K); vi K=a; K=(n,b) a,b Zn*, tha mn ab 1mod (n). Cc gi tr n,b l cng khai, cc gi tr p,q,a l cc gi tr b mt. To ch k: Vi mi K=(n.p,q,a,b) xc nh: SigK(x)= xa mod n Kim tra ch k: VerK(x,y)= true x yb mod n; x, y Zn. Gi s A mun gi thng bo x, A s tnh ch k y bng cch : y=sigK(x)= xa mod n (a l tham s b mt ca A)Sinh vin thc hin: Nguyn Vn Tn -20Lp: CT702

n tt nghip

Cc ch k khng chi b c v ng dng

A gi cp (x,y) cho B. Nhn c thng bo x, ch k s y, B bt u tin hnh kim tra ng thc x= yb mod(n) (b l kha cng khai A) Nu ng, B cng nhn y l ch k trn x ca A. Ngc li, B s coi x khng phi ca A gi cho mnh (ch k khng tin cy). Ngi ta c th gi mo ch k ca A nh sau: chn y sau tnh x= verK(y), khi y= sigK(x). Mt cch khc phc kh khn ny l vic yu cu x phi c ngha. Do ch k gi mo thnh cng vi xc sut rt nh. Ta c th kt hp ch k vi m ha lm cho an ton tng thm. Gi s trn mng truyn tin cng cng, ta c hai h mt m kha cng khai 1 v h xc nhn ch k 2. Gi s B c b kha mt m K=(K,K) vi K=(n,e) v K=d trong h 1, v A c b kha ch k Ks=(Ks,Ks) vi Ks= a v Ks=(n,b) trong h 2. A c th gi n B mt thng bo va bo mt va c ch k xc nhn nh sau: A tnh ch k ca mnh l: y= sigA(x), v sau m ha c x v y bng cch s dng mt m cng khai eB ca B, khi A nhn c z= eB(x,y), bn m z s c gi ti B. khi nhn c z vic trc tin B phi gii m bng hm dB nhn c (x,y). Sau B s dng hm kim tra cng khai ca A kim tra xem verA(x,y)= true? Tc l kim tra xem ch k c ng l ca A?. V d: A dng lc ch k s RSA vi n=247,(p=13,q=19); (n) = 12.18 = 216. Kha cng khai ca A l b=7. a = 7-1mod216 = 31. A cng khai (n,b) = (247,7) A k trn thng bo x=100 vi ch k: y = xa modn = 10031 mod247 = 74. A gi cp (x,y) = (100,74) cho B, B kim tra bng cch s dng kha cng khai ca A nh sau: x = yb modn = 747 mod247 = 100 = x. B chp nhn y=74 l ch k tin cy. 2.2. Lc ch k ElGamal: Lc ch k ElGamal c gii thiu nm 1985 v c Vin tiu chun v Cng ngh quc gia M sa i thnh chun ch k s. Lc ch k ElGammal khng tt nh cng ging nh h m ha ElGamal. iu ny c ngha l c nhiu ch k hp l cho mt thng bo bt k. Thut ton kim tra phi c kh nng kh nng chp nhn bt k ch k hp l no khi xc minh.

Sinh vin thc hin: Nguyn Vn Tn

-21-

Lp: CT702

n tt nghip

Cc ch k khng chi b c v ng dng

Lc ch k ElGamal c nh ngha nh sau: To kha: Cho p l s nguyn t sao cho bi ton logarit ri rc trong Zp l kh v gi s * Z p l phn t nguyn thy Cho P = Z *p , A = Z *p Zp-1 v nh ngha K = {(p, a, , ): = a modp }. Cc gi tr p, , l cng khai, a l b mt. To ch k Vi K = (p, a, , ) v vi s ngu nhin k Z *p 1 , nh ngha sigk(, ), trong : = k modp v = (x - a) k -1mod(p - 1). Kim tra ch k s Vi x, Z *p v Zp-1 , ta nh ngha : Ver (x, , ) = True . x modp. Chng minh: Nu ch k c thit lp ng th hm kim tra s thnh cng v: a. r. modp x modp ( v a + r x mod(p - 1)). A tnh ch k bng cch dng c gi tr b mt a( l mt phn ca kha ) ln s ngu nhin b mt k ( dng k trn x). Vic kim tra c th thc hin duy nht bng thng tin cng khai. V d: Gi s p=467, = 2, a = 127 Khi : = a modp = 2127mod467 = 132 Gi s A c thng bo x=100 v A chn ngu nhin k=213 v (213,466)=1 v 213-1 mod466 = 431, A k trn x nh sau: = k modp = 2213mod467 = 29 V = (x - a)k-1 mod(p -1) = (100 127. 29).431 mod466 = 51. Ch k ca A trn x= 100 l (29,51). Bt k ngi no cng c th kim tra ch k bng cch: 13229 . 2951 189 mod 467 2100 189 mod 467 Do , ch k l tin cy.

Sinh vin thc hin: Nguyn Vn Tn

-22-

Lp: CT702

n tt nghip

Cc ch k khng chi b c v ng dng

II. Hm Hash 1. Gii thiu: i vi xc thc v ch k s ta thy rng cc thut ton thng nhn u vo l cc dng bit c di rt ngn (61.128.160 bit) v c tc thc hin chm. Mt khc, cc thng bo k thng c di khc nhau v trong trng hp chng c di ln c vi Kilbyte hoc v Megabyte. Do vy, mun k trn mt thng bo di ta phi ct thng bo ra nhiu on c di hu hn v c nh ri tin hnh k c lp tng on v gi tng on i, khi li xut hin mt vn nh: - Tc s chm v phi k trn qu nhiu on. - D xy ra trng hp khng sp xp c thng bo theo ng trt t ban u. - C th b mt cc on ring bit trong qu trnh truyn tin. gii quyt vn ny ta dng hm Hash. Hm Hash chp nhn mt thng bo c di bt k lm u vo, Hm Hash s bin i thng bo ny thnh mt thng bo rt gn, sau s s dng lc ch k k trn thng bo rt gn. Ta c m hnh chung nh sau: Thng bo x di ty

Thng bo rt gn

z = h(x)

160 bit

320 bit Ch k y = sigK(x) Ta s gi cp (x,y) cho ngi nhn. Nu cn gi b mt x th ta m ha x thnh x ri sau gi cp (x,y). 2. nh ngha: Hm Hash l hm tnh ton c hiu qu khi nh x cc dng nh phn c di ty thnh nhng dng nh phn c di c nh no . - Hm Hash yu: hm Hash gi l yu nu cho mt thng bo x th v mt tnh ton khng tm ra c thng bo x khc x sao cho: h(x) = h(x) - Hm Hash mnh: hm Hash c gi l mnh nu v mt tnh ton khng tm ra c hai thng bo x v x sao cho: x1 x2 v h(x1) = h(x2) Ni cch khc, tm hai vn bn khc nhau c cng mt i din l cc k khSinh vin thc hin: Nguyn Vn Tn -23Lp: CT702

n tt nghip

Cc ch k khng chi b c v ng dng

Hm Hash phi l hm mt pha, ngha l cho x tnh z = h(x) th d, nhng ngc li, bit z tnh x l cng vic cc kh. Hm Hash yu lm cho ch k tr ln tin cy ging nh vic k trn ton thng bo. Hm Hash mnh c tc dng chng li k gi mo to ra hai bn thng bo c ni dung khc nhau, sau thu nhn ch k hp php cho mt bn thng bo d c xc nhn ri ly n gi mo lm ch k ca thng bo th 2 hay ni cch khc tm 2 vn bn khc nhau c cng mt i din l cc k kh. 2.1. Mt s hm Hash s dng trong ch k s: 2.1.1. Cc hm Hash n gin: Tt c cc hm Hash u c thc hin theo quy tc chung l: u vo c biu din di dng mt dy cc khi n bit, cc khi n bit ny c x l theo cng mt kiu v lp i lp li cui cng cho u ra c s bit c nh. Hm Hash n gin nht l thc hin php ton XOR tng bit mt ca mi khi. N c biu din nh sau: Ci = b1i b2i bmi Trong : Ci : l bit th i ca m Hash, i = 1, n m : l s cc khi u vo bji : l bit th i trong khi th j : l php cng modulo 2 S hm Hash s dng php XOR.Khi 1: Khi 2: Khi m: M Hash: b11 b21 bm1 C1 b12 b22 bm2 C2 b1n b2n bmn Cn

Ci l bit kim tra tnh chn l cho v tr th i khi ta chia tp d liu thnh tng khi, mi khi con v tr. N c tc dng nh s kim tra tng th tnh ton vn ca d liu. Khi m ha mt thng bo di th ta s dng mode CBC (The Cipher Block Chaining), thc hin nh sau: Gi s thng bo X c chia thnh cc khi 64 bit lin tip X= X1X2 Xn Khi m Hash C s l: C = XNH = X1 X2 Xn

Sinh vin thc hin: Nguyn Vn Tn

-24-

Lp: CT702

n tt nghip

Cc ch k khng chi b c v ng dng

Sau m ha ton b thng bo ni vi m Hash theo mode CBC sn sinh ra bn m. Y1Y2 YN+1 2.1.2. K thut khi xch : Ngi ta u tin xut k thut mt m xch chui nhng khng c kha b mt l Rabin. K thut ny c thc hin nh sau : Chia thng bo M thnh cc khi c c c nh l M1, M2, , MN, s dng h m thun tin nh DES tnh m Hash nh sau : H0 = gi tr ban u Hi = EMi(Hi-1), i = 1, N G = HN 2.2. Cc hm Hash m rng: trn, ta cp n hm Hash c nhiu u vo hu hn. Tip theo ta s cp ti loi hm Hash mnh vi u vo v hn thu c do m rng mt hm Hash mnh c u vo di hu hn. Hm ny s cho php k cc thng bo c di ty . Gi s h: (Z2 )m (Z2 )t l mt hm Hash mnh, trong m t + 1 ta s xy dng mt hm Hash mnh : h*: X (Z2 )t, trong X = (Z2 )ii =m

Xt trng hp m t + 2 Gi s x X, vy th tn ti n x (Z2 )n, n m. K hiu : |x| l di ca x tnh theo bit. Khi , |x| = n. K hiu : x || y l dy bit thu c do ni x vi y. Gi s |x| = n m. Ta c th biu din x nh sau: x = x1 x2 xk Trong x1 = x 2 = = x k 1 = m t 1 v x k = m t 1 d, 0dmt2 x k 1 v m t 1 1, k 2. Khi : k = +1 m t 1 Thut ton xy dng h thnh h* c m t nh sau : 1. Cho i = 1 ti k-1 gn yi = xi ; 2. yk = xk || 0d (0d l dy c d s 0. Khi yk di m-t-1) 3. yk+1 l biu din nh phn ca d (|yk+1| = m-t-1) 4. g1 = h( 0t+1 y1) ( g1 = t, 0t+1 y1 di m)Sinh vin thc hin: Nguyn Vn Tn

n

-25-

Lp: CT702

n tt nghip

Cc ch k khng chi b c v ng dng

5. Cho i=1 ti k thc hin gi+1 = h( gi 1yi+1 ) a. h*(x) = gk+1 K hiu y(x) = y1 || y2 || || yk+1 Ta thy rng y(x) y(x) nu x x Xt trng hp m=t+1 Cng nh trn, ta gi s |x| = n >m Ta xc nh f nh sau: f(0) = 0; f(1) = 01; Thut ton xy dng h* khi m=t+1 nh sau : 1. Cho y= y1,y2, , yk =11 || f(x1) || f(x2) f(xn) (x1 l mt bit) 2. g1 = h( 0t y1) ( y1 = m t ) 3. Cho i=1 ti k -1 thc hin gi+1 = h( gi yi+1 ) ( y i = m t - 1) 4. h*(x) = gk* Ngoi ra cn c mt s hm Hash khc nh hm Hash MD4 v hm Hash MD5.

Sinh vin thc hin: Nguyn Vn Tn

-26-

Lp: CT702

n tt nghip

Cc ch k khng chi b c v ng dng

Chng 3

CH K CHNG CHI B1. Gii thiu: Ch k khng chi b c cng b bi Chaum v Van Antverpen vo nm 1989. N c mt nt ring mi l v th v. Quan trng nht trong s l ch k khng th kim tra khi khng c s cng tc ca ngi k, A(gi s ngi k l A). S bo v ny ca A phng kh nng ch k trong ti liu ca anh ta b sao chp v phn b bi thit b in t m khng c s ng ca anh ta. V d: A c mt phn mm v ch k km theo c to ra nh thut ton ca ch k s thng thng. Nh vy, s khng trnh khi trng hp phn mm b sao chp m B khng bit. Ngi mua s kim tra ch k km theo nh thut ton kim tra cng khai Ver v cng nhn ch k l ng. V nh chng ta bit bn sao ca ch k s ng nht vi bn gc. ng nhin nh vy A s b mt bn quyn. trnh iu bt tin A dng ch k khng chi b. S kim tra s thnh cng khi thc hin giao thc hi - p. Lc ch k chng chi b gm 3 phn: thut ton k, giao thc kim tra, giao thc chi b. 2. Lc chng chi b: 2.1. Thut ton k: * To kha: Cho p,q l cc s nguyn t l sao cho p=2q+1 v bi ton ri rc trn Zp l kh. Ly Zp* l mt phn t bc q( Nu 0 l phn t nguyn thy ca Zp th = 0(p -1)/q modp) ly 1 a q-1 v xc nh: = a modp. Ly G l phn nhm nhn ca Z*p bc q (G bao gm cc thng d bc hai theo modun p). Ly P=A=G, xc nh: K = { (p, , a, ): = a modp} Cc gi tr p, , l cng khai, a l b mt. * To ch k: Vi K= (p, , a, ) v x G, xc nh ch k y trn thng bo x: y = sigk(x) = xa modp

Sinh vin thc hin: Nguyn Vn Tn

-27-

Lp: CT702

n tt nghip

Cc ch k khng chi b c v ng dng

2.2 Giao thc kim tra : Vi x, y G, s kim tra c tin hnh theo giao thc sau : 1. A chn e1,e2 ngu nhin, e1, e2 Zp*. 2. A tnh c = y e e modp gi n cho B. 3. B tnh d= c a mod q modp v gi n cho A. 4. A chp nhn ch ng khi v ch khi : (*) d x e e modp. * Vai tr ca p, q trong lc : Lc nm trong Zp; tuy nhin chng ta cn tnh ton trong phn nhm nhn G ca Zp* ca bc nguyn t l. c bit, chng ta cn tnh phn t nghch o theo modun |G|, iu ny l gii ti sao |G| nn l nguyn t l. N thun tin ly p=2q+1 vi q l s nguyn t l. Trong trng hp ny, phn nhm G tn ti. V d: gi s ta ly p = 467, t 2 l cn nguyn thy => 22 = 4 l thng d bc hai theo modun 267 v 4 l phn t sinh ca G, ly = 4. Gi s a=101, ta c: = amodp = 4101 mod467 = 449 A s k thng bo x=119 vi ch k: y = xa modp = 119101 mod467 = 129 Gi s B mun kim tra ch k y, B chn ngu nhin e1 = 38,e2 = 397. Ta c: c = y e e modp = 12938 449397 mod467 = 13 B gi c=13 cho A v A tnh d theo: d = c a mod q modp 1 d = 13101 mod233 mod467 (q = (p - 1)/2 = (467 1 )/2 = 233) d=9 B mun kim tra ch k y theo bc 4. C: x e e modp = 11938 4397 mod467 = 9 d x e e modp => B chp nhn ch k l ng 2.3. Giao thc chi b Mt vn t ra, nu s cng tc ca ch th k l cn thit trong vic kim tra ch k th iu g ngn cn anh ta trong vic t chi ch k do anh ta to ra. Tt nhin, anh ta c th cho rng ch k ng l gi mo v t chi kim tra n hoc anh ta thc hin mt giao thc m theo ch k s khng c kim tra. V vy, mt lc ch k chng chi b c kt hp cht ch vi mt giao thc chi b v nh iu ch th k c th chng minh c ch k l gi mo. (Nu anh ta t chi thc hin 1 phn trong giao thc chi b, iu ng ngha vi du hiu chng minh ch k l ca anh ta v anh ta ang c gng t chi ch k ca mnh). Giao thc chi b gm hai tin trnh ca giao thc kim tra v c cc bc sau:1 21 1 2 1 2 1 1 2 1 2

Sinh vin thc hin: Nguyn Vn Tn

-28-

Lp: CT702

n tt nghip

Cc ch k khng chi b c v ng dng

B chn e1, e2 ngu nhin, e1, e2 Zq*. B tnh c = y e e modp v gi n cho A A tnh d = c a mod q modp v gi n cho B B kim tra d x e e modp. B chn f1,f2 ngu nhin, f1, f2 Zq*. B tnh C = y f f modp v gi n cho A A tnh D = c a mod q modp v gi n cho B B kim tra D x f f modp B kt lun rng y l ch k gi mo khi v ch khi (d e ) f (D f ) e modp V d: Ly p=467, = 4, a = 101, = 449. K trn thng bo x=286 vi ch k y= 83 (l gi mo). A mun thuyt phc B rng ch k l khng ng. Vy phi thc hin nh sau: Chn ngu nhin e1 = 45, e2 = 237. B tnh c=305 v A tr li vi d= 109. B tnh 45 286 . 4237mod467 = 149. V 149 109 nn ta phi thc hin giao thc chi b B chn tip f1 = 125, f2 = 9, ngu nhin, B tnh C=270 v A tr li vi D=68. B tnh: 125 9 286 .4 mod467 = 25. V 25 68 nn B thc hin tip bc cui cng ca giao thc l thc hin kim tra tnh chnh xc. Ta c: 109.4-237)125 188 mod467 v (68.4-9)45 188 mod467 ; (d e ) f (D f ) e modp Vy B tin chc rng l ch k khng ng By gi vn t ra l: - A c thuyt phc c B rng ch k khng ng l gi mo - A khng th lm cho B b thuyt phc rng ch k ng l gi mo ngoi tr xc sut rt nh. 3. Cc nh l: 3.1.nh l 1: Nu y xa modp B s chp nhn y nh l mt ch k ng ca x vi xc sut 1/q. Chng minh: Trc tin, ta nhn xt rng mi yu cu c s xy ra tng ng chnh xc vi mt cp (e1,e2) bc q. (Bi v y v u l phn t thuc nhm nhn G c bc nguyn t l q). Khi A nhn yu cu c, A khng bit B dng cp (e1,e2) no xy dng c. Chng ta cn phi chng minh rng, nu y xamodp th cc cu tr li ca A d G c th ng duy nht mt cp (e1,e2) trong cc cp (e1, e2) bc q. 1. 2. 3. 4. 5. 6. 7. 8. 9.1 2 1 1 2 1 2 1 1 2 2 1 2 1 2 1 2 1

Sinh vin thc hin: Nguyn Vn Tn

-29-

Lp: CT702

n tt nghip

Cc ch k khng chi b c v ng dng

T phn t sinh ca nhm G, chng ta c th vit c mt s phn t ca G nh l mt kh nng ca vi s m xc nh duy nht theo modun ca q. Nh vy, ta c th vit c = i, d = j, x = k, y = l vi i, j, k, l Zp v tt c tnh theo modun ca p. Ta xt 2 ng d sau: c ye 1 e 2 modp (1) d xe 1 e 2 modp (2) (1) i l .e 1 .e 2 modp Vi = amodp i l .e 1 . a.e 2 modp i l .e 1 + a .e 2 modp i l.e1 + a.e2 modq (3) (2) j k .e 1 . e 2 modp j k .e 1 + e 2 modp j k.e1 + e2 modq (4) T (3) v (4) ta c h: i l.e1 + a.e2 modq j k.e1 + e2 modq Xt D=lk a1 = l a.k (5) mt khc: y xa modp (gt) l k .amodp l a.k modq (6) T (5) v (6) => D 0 V h s ma trn ca h ng d theo modulo q 0 nn h c 1 nghim duy nht ngha l tm c duy nht mt cp (e1, e2) i, j, k, l Zp. Do , d G l cu tr li th tt c cc cu tr li ch ng vi 1 cp (e1, e2) trong cc cp (e1, e2) bc q. Vy xc sut A a cho B cu tr li d m s c kim tra 1/q, ng ngha vi vic B chp nhn y l ch k ca A vi xc sut 1/q. 3.2. nh l 2: Khi A v B thc hin giao thc chi b. Nu y xamodp th (d-e 2 )f 1 (D-f 2 )e 1 modp.

Chng minh:

Ta c: d ca modp M c ye 1 e 2 modp 1 1 d ye 1 .a .e 2 .a modp Mt khc: a modp 1 1 d ye 1 .a . e 2 .a .a modp Do vy : (d.-e 2 )f 1 (ye 1 .a .e 2 .a1 1

1

.a

.-e 2 )f 1 modp-30Lp: CT702

Sinh vin thc hin: Nguyn Vn Tn

n tt nghip

Cc ch k khng chi b c v ng dng

ye 1 .a .f 1 .e 2 .f 1 e 2 .f 1 modp 1 ye 1 .a .f 1 modp (1) Tng t nh trn ta tnh c : 1 (D.-f 2 )e 1 ye 1 .a .f 1 modp (2) Vi D Ca modp C yf 1 f 2 modp a modp T (1) v (2) (d-e 2 )f 1 (D-f 2 )e 1 modp. V vy, nu y l ch k gi mo th A c th thuyt phc c B tin ch k l gi mo. 3.3. nh l 3: Gi s y xamodp B thc hin giao thc chi b. Nu d xe 1 e 2 modp, D xf 1 f 2 modp th kh nng (d-e 2 )f 1 (D-f 2 )e 1 modp c xc sut l 1-1/q. y ta xt trng hp A c th t chi ch k ng ca anh ta. Trong trng hp ny, chng ta c th khng gi nh A lm theo giao thc ngha l A khng xy dng d v D nh l thuyt bi giao thc, chng ta ch gi nh A to ra 2 gi tr d v D tha mn iu kin bc 4, 8, 9 ca giao thc chi b. Gi thuyt chng ta c. y xamodp d xe 1 e 2 modp D xf 1 f 2 modp (d-e 2 )f 1 (D-f 2 )e 1 modp T (d-e 2 )f 1 (D-f 2 )e 1 modp c: 1 (d-e 2 )f 1 .e 1 D.-f 2 modp 1 (d-e 2 )f 1 .e 1 .f 2 D modp 1 1 D (de 1 -e 2 .e 1 )f 1 . f 2 modp 1 1 t d0 = de 1 -e 2 .e 1 modp, d0 ch ph thuc vo bc 1-4 ca giao thc. D d0f 1 .f 2 modp 1 1 T d0 = de 1 .-e 2 .e 1 modp d0e 1 = d-e 2 .modp d = d0e 1 .e 2 modp p dng nh l 1, chng ta kt lun y ng l ch k ca d0 vi xc sut 1-1/q. Nhng chng ta ang gi nh y l ch k ng ca x. Do , vi xc sut cao chng ta c: xa d0a modp x = d0 (1) Mt khc: d xe 1 e 2 modp (gt) d.-e 2 xe 1 modp 1 (d.-e 2 )e 1 xmodpSinh vin thc hin: Nguyn Vn Tn1

1

-31-

Lp: CT702

n tt nghip1

Cc ch k khng chi b c v ng dng

x d e 1 .-e 2 . e 1 modp 1 1 m d0 = d e 1 -e 2 . e 1 modp (theo trn) x d0 (2) Ta thy (1) v (2) mu thun. V vy, (d-e 2 )f 1 (D-f 2 )e 1 modp vi d xe 1 e 2 modp v D xf 1 f 2 modp th xc sut xy ra l rt cao 1-1/q. Ngha l A c th la B trong trng hp ny c xc sut rt nh 1/q. 3.4. Vn cn gii quyt: Ba nh l trong phn ny u mi ch cp ti mt kha cnh l A chp nhn hay chi b ch k ca mnh cha ni n mt kha cnh khc l B c th chi b vic mnh c thng bo do A gi. Ta gi nh rng, nu A gi cho B mt thng bo i n nhng B cha mun tr hoc khng mun tr th anh ta s l i coi nh cha nhn hay cha c thng bo . Vy A c th lm cch no chng minh B m thng bo? gii quyt vn c A v B thc hin theo giao thc sau: Trc tin, A v B phi xy dng kha K theo lc trao i kha Diffie- Hellman. Giao thc nh sau: Gi s p l s nguyn t, l cn nguyn thy ca Zp*; , p l cng khai cuc trao i kha gia A v B din ra nh sau: 1. A chn ngu nhin aA : 0 aA p-2. 2. A tnh a A mod p ri gi n cho B. 3. 4. 5. 6. B chn ngu nhin aB : 0 aB p-2. B tnh a B v gi n cho A. A tnh K = (a B ) a A mod p. B tnh K = (a B ) a A mod p.

1

Sau , A tip tc xy dng mt kha K1, K1 b mt. A c th xy dng K1 theo h mt i xng (DES, AES l mt h kha. Cc kha lp m v gii m l nh nhau hay d dng xc nh ln nhau. Cc h mt kha cung cp mt cch tuyt vi cho vic m ha cc tp ring ca ngi dng). Av B tin hnh theo cc bc sau y: 1. A dng K1 m ha thng bo x v ch k km theo: y = sigA(x) i = eK 1 (x, y) A gi i cho B 2. B gi li thng bo x1 km theo ch k y1 = sigB(x1) v m y1 bng K: j=eK(y1) ri gi cho A. Trong x1 cha ngy, gi, li yu cu v cha c i. 3. A tnh i1 = eK(K1) v gi n cho B.

Sinh vin thc hin: Nguyn Vn Tn

-32-

Lp: CT702

n tt nghip

Cc ch k khng chi b c v ng dng

Khi A v B tin hnh theo giao thc trn, mun c c thng th B phi gi li mt thng bo ( c m ha bng kha K) ti A, yu cu A gi kha K1 cho mnh, bi v K1 ch mnh A bit. A kim tra thng bo ca B theo thut ton kim tra cng khai Bver xc nh thng bo c ng l ca B gi hay khng? Nu ng, anh ta gi K1 cho B m K1 c m ha theo K. A thc hin theo cch trn s c chng c chng minh trc ta rng B c m v c thng bo anh ta gi ti bng cch a ra thng bo c km theo ch k ca B v c ngy, gi B c thng bo .

Sinh vin thc hin: Nguyn Vn Tn

-33-

Lp: CT702

n tt nghip

Cc ch k khng chi b c v ng dng

Chng 4

CH K NGI XC NHN C CH NH1. Gii thiu: Php chng minh tri thc khng l php chng minh dng thuyt phc bn nhn tin nhng iu ngi chng minh a ra l ng n nhng khng cho php bn nhn i thuyt phc ngi khc. y l php chng minh rt th v trong h thng chng minh tng tc. H thng chng minh ny ch c 2 ngi tham gia, gi s l Peggy v Vic. Peggy l ngi chng minh v Vic l ngi kim tra. Peggy bit mt vi iu trong thc t v c y mun chng minh vi Vic rng c y ng. Ban u c Paggy v Vic u c u vo x. Pegyy thuyt phc Vic rng x c mt vi c tnh nh r nhng cui giao thc Vic vn khng bit cch chng minh x c nhng c tnh nh th no. Ch k t xc thc (v d: ch k RSA, Elgamal ) l cc i lp vi php chng minh tri thc khng. Ch k s t xc thc khng ch cho php bn nhn thuyt phc ngi khc mt cch n gin m bng cch cung cp mt bn copy ca ch k m cn cho php ngi bt k b thuyt phc i thuyt phc ngi khc. iu ny c ngha l bt k ngi no cng c kh nng kim tra ch k. Ch k chng chi b c mt v tr c bit, n mt ni gia cc cc ny, bo v c nhng li ch ring ca ngi k trong vic bo m rng cc ch k khng b bn nhn dng sai mc ch cng nh cc vic lm ca bn nhn thuyt phc ngi khc sau ny. Bn nhn ch k chng chi b b thuyt phc rng tt c nhng ngi no gi n u c th thch thc ngi k khng th tr li sai. Bi ngi k lun lun c th thuyt phc mt ngi bt k no rng mt ch k tin cy l tin cy v ch k khng tin cy l khng tin cy. Nh vy ngi nhn c th yn tm rng ngi k khng th t chi mt ch k tin cy. i vi bn nhn, cc ch k chng chi b c u th hn so vi tri thc khng ch bn nhn nm gi iu g m sau ny trong nhng hon cnh nht nh, c th dng thuyt phc ngi khc. V d: Bob k mt thng bo cho php Alice rt 1000$ t ti khon ca Bob bng ch k chng chi b. Alice mun rt c tin th phi chng minh ch k trn thng bo ng l ca Bob. Nhng trong nhiu ng dng thc t s bo v ny l qu yu. N da trn ngi k cng tc trong vic tip tc xc nhn ch k. Nu ngi k khng th p ng y cc iu kin trong giao thc hi p hoc ngi k t chi hp tc th bn nhn khng th s dng ch k (nu Bob xy dng cu

Sinh vin thc hin: Nguyn Vn Tn

-34-

Lp: CT702

n tt nghip

Cc ch k khng chi b c v ng dng

tr li d khng ng theo giao thc hoc Bob t chi tham gia kim tra ch k th Alice khng th s dng ch k rt tin). V d 1: ng gim c cng ty no gi mt thng bo, c km ch k ca ng ta, ti nhn vin trong cng ty trn mng my tnh. Ni dung thng bo mun cng ty thanh ton mt ha n mua hng, thc ra l ha n khng. Anh nhn vin thc hin theo ng ha n. Nhng khi thanh tra kim tra v pht hin ha n gi, ng Gim c mun trng ti nn ng ta ph nhn ch k in t trn thng bo gi cho anh nhn vin. V d 2: ng gim c cng ty phn mm bn phn mm, c km theo ch k in t ca ng ta c to ra theo thut ton k ca lc k chng chi b, trn mng my tnh. Khch hng mun kim tra tin cy ca ch k trn phn mm th cn phi c s cng tc ca ngi k. iu ny khng th thc hin thng xuyn i vi mt ng Gim c. Vy phi gii quyt vn ny nh th no? C s giao thc ngi xc nhn c ch nh gii quyt im yu ny ca ch k chng chi b. N li cun 3 pha cng tham gia: l bn nhn ch k, ngi k v ngi xc nhn. Bn nhn ch k t tn l Rita, l pha khng cn kha cng khai. Ngi k t tn l Simon, v ngi xc nhn t tn l Colin, mi ngi c kha cng khai c php chp nhn bi Rita. Giao thc k gm tng tc gia Simon v Rita. N lm cho Rita b thuyt phc rng Simon a cho c y mt ch k ngi xc nhn c ch nh, i vi thng bo c tha thun, s dng kha ring ca Simon v kha cng khai ca Colin. Giao thc xc nhn sau bi Colin ph thuc vo vic anh ta tit l nh th no c th l tri thc khng, ngi xc nhn c ch nh hoc t xc thc. 2. H thng c s: Ta xy dng mt v tr n gin cho giao thc ngi xc nhn c ch nh c s nh sau: Simon a cho Rita ch k s t xc thc trn thng bo tha thun c k bi kha ring ca anh ta tr vic ch k l khng y theo ngha n ty thuc vo s tin cy ca ch k chng chi b bt k. Ch k chng chi b ny c to bi Simon nh th c k bi Colin v n tng ng mt cch tin cy vi kha cng khai ca Colin. Simon sau chng minh vi Rita rng ch k chng chi b l tin cy. Rita khng th chng minh iu g v bn sao s hp tc ca c y vi Simon, tr khi c y nhn c s gip . Nhng Colin vi kha ring ca mnh lun lun c th gip Rita bng cch chng minh vi ngi bt k rng ch k chng chi b m Simon l tin cy, do thuyt phc h v s tin cy ca ch k gc khng y ca Simon.V vy, Colin c th chng minh iu bng nhiu cch khc nhau. S kho lo ca tip cn cu trc trn l cch to ch k t xc thc ty thuc v ch k chng chi b. iu ny c hai kha cnh. Mt mt, nu ch k chng chi b l khng tin cy c th c chn t do th ch k t xc thc s khng c gi tr theoSinh vin thc hin: Nguyn Vn Tn

-35-

Lp: CT702

n tt nghip

Cc ch k khng chi b c v ng dng

ngha l bt k ngi no cng c th d dng to ra n. Mt khc, nu ch k chng chi b l tin cy th ai b thuyt phc v s tin cy ca n th h s b thuyt phc v s tin cy ca ch k t xc thc. Cc tnh cht ny c th c hon thnh vi cc lc ch k xc thc da trn hm mt chiu. Mt dng in hnh ca ch k l ni u ra ca hm mt chiu c dng xc nh ci s l thch thc ca chng minh tri thc khng. Lc ch k nh th c sa i sao cho vic xc nh hm mt chiu bao gm ch k chng chi b theo cch thch hp. Chng hn, u ra ca hm mt chiu mi c th c xc nh nh u ra ca hm gc c XOR vi ch k chng chi b. Nh vy, s t do hon ton trong la chn ci g l ch k chng chi b cho php s t do hon ton trong vic chn u ra ca hm mt chiu mi, nhng s la chn c gii hn ca ch k chng chi b c ngha l nhng rng buc trn u ra ca hm mt chiu mi. 3. Giao thc k: Giao thc ny nhm cho Simon k thng bo v thuyt phc Rita rng ch k l tin cy. n gin, Simon s s dng lc ch k RSA vi modun kha cng khai n v s m 3. Kha cng khai ca Colin s l: h=gz, trong z l kha ring ca Colin, g l cn nguyn thy (c bc cao nht) ca n. Kha cng khai ny v tt c nhng tnh ton trong giao thc l trong nhm bc nguyn t m bi ton logarit ri rc c gi thit l kh. 3.1. To kha: Simon chn n = p.q vi p,q l cc s nguyn t ln khc nhau, (n) = (p - 1)(q - 1). Cho P = A = Zn v xc nh: K = {(n, p, q, 3-1, 3): n = p.q; p,q nguyn t: 3-1.3 1 mod((n))} Cc gi tr n,3 cng khai; cc gi tr p, q, 3-1 b mt. 3.2. To ch k: Simon tin hnh k thng bo m nh sau: 1. Simon chn x ngu nhin v tnh: a = gx b = hx 2. Vi K = (n, p, q, 3-1, 3) Simon tnh ch k RSA trn H(a,b) F(m) = (H(a, b) F(m)) 3 modn Trong H(a, b) l hm t hp kh cu trc nhn nhng li rt d dng tnh ngc; F l hm Hash thch hp. Sau Simon gi a, b, cho Rita. giao thc ny, Simon to ra ch k chng chi b nh th c k bi Colin. Ta d dng chng minh c iu ny.1

Sinh vin thc hin: Nguyn Vn Tn

-36-

Lp: CT702

n tt nghip

Cc ch k khng chi b c v ng dng

Ta c: a = gx b = hx m h = gz b = (gz)x = (gx)z = az Mt khc: z l kha ring ca Colin. Do : b = (gx)z l ch k chng chi b ca Colin, vi g l cn nguyn thy c bc cao nht ca n v z l kha b mt. 3.3. Giao thc kim tra: y ta gi thit ngi k tham gia vo giao thc kim tra, cha cn s c mt ca ngi xc nhn. Giao thc kim tra din ra vi s cng tc ca Simon (ngi k) v Rita (ngi nhn). Giao thc tin hnh nh sau: 1. Rita chn s, t ngu nhin v tnh c = gsht, ri gi c cho Simon. 2. Simon chn q ngu nhin v tnh: d = g q ; e = (c.d)x Simon gi d,e cho Rita. 3. Rita gi s,t cho Simon 4. Simon kim tra gsht = c th Simon gi q cho Rita 5. Rita kim tra nu d = g q , e.a q = asbt, H(a, b) F(m) = 3 modn th ch k l tin cy. Ngc li, ch k l khng tin cy. Trong bc 5, Rita kim tra ng thc e.a q = asbt tc l kim tra b = az. Tht vy: asbt = e.a q T bt = e.a q .a-s (1) m e = (c.d)x c = gsht d = gq e = (gs.ht.g q )x = gs.x.ht.x.g q .x = (gx)s.ht.x.(gx) q = as.htx.a q (2) T (1) v (2) bt = as.htx.a q . a q .a-s = ht.x b = hx = (gz)x = (gx)z = az. iu ny thuyt phc Rita rng ch k ny do Simon to ra v c th c kim tra bi Colin. Nhng Rita khng th dng kt qu ny chng minh n vi nhng ngi khc.

Sinh vin thc hin: Nguyn Vn Tn

-37-

Lp: CT702

n tt nghip

Cc ch k khng chi b c v ng dng

4. Giao xc thc nhn: Giao thc ny cho ngi kim tra b thuyt phc rng ch k l ph hp nhng cng khng cho php ngi kim tra i thuyt phc ngi khc. Giao thc nh sau: 1. Ngi kim tra Veron chn u, v ngu nhin v tnh: k = gu .av . Ri gi k cho Colin. 2. Colin chn p ngu nhin v tnh: l = g p , n = (k.l)z. Ri gi l, n cho Veron. 3. Ngi kim tra gi u, v cho Colin. 4. Colin kim tra nu k= gu .av th Colin gi q cho ngi kim tra Veron. 5. Ngi kim tra Veron s kim tra nu g p = l v n.h p = hu.bv th ch k l tin cy. Ngc li, ch k l khng tin cy. bc 5, ngi kim tra Veron kim tra ng thc: n.h p = hu.bv cng chnh l kim tra b = az. Ta c: n.h p = hu.bv bv = n. h p . h-u (1) Mt khc: n = (k.l)z k = gu.av l=gp n = (gu.av.g p )z (2) T (1) v (2) bv = (gu.av.g p )z. h p . h-u = guz.avz.g z p .g-uz.g z p bv = av.z b = az. 5. Giao thc chuyn i: y l mt giao thc xc nhn khc ca Colin, giao thc ny l cch Colin chuyn ch k ngi xc nhn c ch nh thnh ch k s t xc thc. y, Colin lp nn mt chng minh khng tng tc rng mt ngi no bit cch biu din b nh ly tha ca a. tng c bn ca s chuyn i ny l phi bit cch biu din b nh ly tha ca a thnh lp cp (r, y) sao cho ay = r.bF(a,r), trong F l hm mt chiu thch hp. Ta thy rng kha cng khai h ca Colin khng xut hin y, h ch xut hin trong giao thc k. Do vy, sau khi Colin thc hin giao thc chuyn i th bt k ngi no cng c th kim tra ch k m khng cn s c mt ca ngi k hay ngi xc nhn. Giao thc tin hnh nh sau: 1. Colin chn ngu nhin w ri tnh: r = aw y = w + z.F(a, r).Sinh vin thc hin: Nguyn Vn Tn

-38-

Lp: CT702

n tt nghip

Cc ch k khng chi b c v ng dng

Sau gi r, y cho ngi kim tra Veron. 2. Ngi kim tra Veron kim tra nu ay = r. bF(a, r) th ch k l tin cy. Ngc li l ch k khng tin cy. Chng minh: ay = r. bF(a, r) th ch k l tin cy. Ta c: ay = r. bF(a, r) aw + z.F(a, r) = aw.bF(a, r) aw.az.F(a, r) = aw.bF(a, r) az.F(a, r) = bF(a, r) az = b hay b = az ch k l tin cy. 6. Tng qut: Lc ch k c s c th c tng qut ha bng cch bao gm nhiu ngi xc nhn. Hn mt kha cng khai ca ngi xc nhn c th c t hp trong ch k chng chi b (nh ly tch ca kha cng khai), sao cho s cng tc ca tt c nhng ngi xc nhn s l cn thit cho s xc nhn bt k. Cng yu cu nhiu ngi xc thc th cng kh khn nhn s xc thc v theo mt ngha trc quan th lc ch k cng tip cn gn hn vi giao thc tri thc khng.

Sinh vin thc hin: Nguyn Vn Tn

-39-

Lp: CT702

n tt nghip

Cc ch k khng chi b c v ng dng

Chng 5

CH K NGI XC NHN KHNG TH CHI B1.Gii thiu: cc chng trc chng ta lm quen vi khi nim v ch k chng chi b v ch k ngi xc nhn. Lc ch k ngi xc nhn gii quyt c mt s yu im ca lc ch k chng chi b. Trong lc ch k chng chi b gm 2 thnh phn tham gia l ngi k v ngi xc nhn (hoc ngi kim tra). Do vy, nu ngi k t chi cng tc ng nghi vi ch k khng c kim tra. Trong lc ch k ngi xc nhn, kh nng kim tra cc ch k l ngi i din c thm vo thc th gi l ngi xc nhn. S kim tra ca ngi xc nhn chnh xc hn ca ngi k, c ta (anh ta) c kh nng xc nhn hoc t chi tin cy ca ch k nhng c ta (anh ta) khng c kh nng gi mo ch k. Trong nhiu lc ch k ngi xc nhn, ngi k khng th xc nhn ch k ca mnh l tin cy. Nu ngi xc nhn t chi cng tc dn n ch k khng th kim tra. Trong thc t, s tin cy ca nhng ngi tham gia gi vai tr rt quan trng, v vy gim tnh trng rc ri ca bt k ngi tham gia no l mong mun cao da vo c cc l do k thut v cc l do tit kim. iu ny c thc hin nu ch k c th kim tra vi s cng tc ca ngi k hoc ngi xc nhn. Sau ngi s dng c th tr li ngi k s kim tra ch k. Nh mt s bo v an ton, ngi xc nhn cn c th kim tra ch k nu ngi k cng tc. Chng ny gii thiu lc ch k ngi xc nhn khng th chi b, a ra chc nng kim tra ch k ca ngi k v ngi xc nhn. Lc ny l s bin i ca ch k ngi xc nhn. Lc cung cp mt cch linh hot i vi ngi k v ngi s dng cng nh bao hm cc bin i ca ngi xc nhn c ch nh ngi thng c tin tng trong thc t. S b sung vo lc nhm mc ch nh lc hng ngha l cc ch k ngi xc nhn khng th chi b c th sinh ra vi mc ch nh la. Cc ch k ngi xc nhn khng th chi b m qung c li ch trong nhiu ng dng nh cc h thng tr tin trc vi mng ln ca cc dch v ni m quyn ring t ca mi ngi s dng mng nn c bo v trong khi kim duyt s mua bn.

Sinh vin thc hin: Nguyn Vn Tn

-40-

Lp: CT702

n tt nghip

Cc ch k khng chi b c v ng dng

2. M hnh ca ch k ngi xc nhn khng th chi b: Phn ny cung cp mt kiu c trng ca cc ch k ngi xc nhn khng th chi b. N cung cp s nh ngha khng i cho cc giao thc gii m, s dng cc khi nim chun ca my Turing tng tc, h thng chng minh tng tc v tri thc khng. n gin, chng ta dng S ch ngi k, C ch ngi nhn v V l ngi kim tra. Lc ch k ngi xc nhn khng th chi b bao gm cc thut ton v cc giao thc sau: - Thut ton to kha: To 2 kha GENS v GENC nhn 1l l u vo ( 11 ngha l mt dy s c mt s 1), trong 1 l tham s an ton v ln lt 2 cp u ra (SS, PS) v (SC, PC). Thut ton GENS thc hin bi S, GENC thc hin bi C. (SS, PS), (SC, PC) ln lt l cc cp kha b mt v cng khai ca S v C. Kha b mt S c s dng to ra ch k. Ngoi ra SS, SC c ln lt s dng bi ngi k v ngi xc nhn trong giao thc xc nhn trong v giao thc chi b. - Thut ton k a thc theo xc sut SIGN nhn kha b mt SS, thng bo m v cc u ra ca ch k . - Giao thc kim tra ch k tng tc (CVer , VVer). y l cp u vo ca my Turing thi gian a thc tng tc gia ngi xc nhn v ngi kim tra: ( CVer (SC), VVer ())(m, , PS, PC) v u vo chung gm thng bo m, ch k , 2 kha cng khai PS, PC. Ngi xc nhn c SC l u vo ring. S tr v ca giao thc l gi tr logic v. Nu u ra l 1 ngha l ch k tin cy trn thng bo m, u ra l 0 th ngc li. - Giao thc kim tra ch k tng tc (SVer , VVer). y l cp u vo ca my Turing thi gian a thc tng tc gia ngi k v ngi kim tra: (SVer(SS), VVer())(m, , PS, PC) v u vo chung gm thng bo m, ch k v 2 kha cng khai PS, PC. Ngi k c SS l u vo ring. S tr v ca giao thc l gi tr logic v. Nu u ra l 1 c ngha l ch k tin cy trn thng bo m, u ra l 0 th ngc li. + Cc yu cu trong giao thc: Tnh khng th phn bit ca ch k: Ch k m phng SIGNsim c to bng thut ton thi gian a thc theo xc sut, n nhn thng bo m, 2 kha cng khai PS, PC l u vo cho ra mt phn t c gi l ch k m phng trong khng gian k. Ch k m phng ny khng th phn bit so vi ch k thc vi bt k ngi no m ch cn hiu cc thng tin cng khai. Da vo mt thng bo v mt ch k c ngha, mt ngi no khng th t mnh xc nh c ch k l tin cy. Tnh khng th gi mo ca ch k: Khng tn ti thut ton thi gian a thc nhn kha cng khai PS ca ngi k; kha b mt SC, kha cng PC ca ngi nhn vSinh vin thc hin: Nguyn Vn Tn

-41-

Lp: CT702

n tt nghip

Cc ch k khng chi b c v ng dng

truy cp n ch k ngi tin cy SIGN, cho ra mt thng bo ch k (m, ) khng c to bi SIGN vi xc sut ng k. Tnh chnh xc ca s kim tra: khng lu ti s dnh lu ca mt trong 2 ngi k hoc ngi xc nhn, cc giao thc kim tra l nht qun. Ngoi tr xc sut khng ng k, giao thc kim tra tr v 1 nh l u ra ca ngi kim tra nu gp thng bo ch k (m, ) tin cy, hoc 0 nu (m, ) l khng tin cy. 3. Cc lc ch k v php chng minh tng tc: 3.1. K hiu: + K hiu || biu th s ni ca 2 dy nh phn. + Ly p, q l cc s nguyn t ln v xem rng p 1 chia ht cho q. + Cho g l phn t sinh ca nhm nhn G ca Z*p bc q. + Hm Hash chu ng s va chm mnh H: {0, 1}* Z*p (k = | q |, k > 160). 3.2. Lc ch k Schnorr: nh ngha: Cho y = gx mod p, ch k Schnorr trn thng bo m kim tra s dng kha cng khai (g, y) l cp (u, v) Z * Z * tha mn q q u = H(myggvyu). Ch k nh vy c th c tnh nu bit kha b mt x bng cch chn r R Z * q (chn r ngu nhin thuc Z*p ) ri tnh: u = H(m ||y ||g ||gr ) v v = r ux mod q. n gin, ta dng S(x, y)(m) biu th ch k Schnorr trn thng bo m c to vi kha b mt x v c kim tra vi kha cng khai y. 3.3. Ch k Chaum Petersen da vo ng thc ton ri rc: nh ngha 2: Cho y1 = gx1 v y2 = gx2, ch k Chaum Petersen da vo ng thc ca thut ton ri rc y1, y2 vi c s l g1, g2 trn thng bo m l cp (u, v) Z * q Z * tha mn: qv u u = H(my1y2g1g2g 1 y 1 g v y u ) 2 2

Di m hnh Oracle ngu nhin, ch k nh th c th c thnh lp nu bit kha b mt x tha mn y1 = g1x v y2 = g 2x . Ch k sai c tnh bng cch chn r R Z * , tnh: qv u u = H(my1y2g1g2g 1 y 1 g v y u ) 2 2

v r = r ux mod q. Ta c th vit li nh sau: T v = r ux mod q => r = v + ux mod q. Theo gi thit : y1 = g1x v u v v+ r g 1 y 1 = g 1 (g 1x )u = g 1 ux = g 1 x Tng t: y2 = g 2Sinh vin thc hin: Nguyn Vn Tn Lp: CT702

-42-

n tt nghip

Cc ch k khng chi b c v ng dng

x g v y u = g v (g 2 )u = g v+ux = g r 2 2 2 2 2 r Vy: u = H(my1y2g1g2g 1 g r ) 2

n gin, ta dng CP(x, y1, y2, g1, g2 )( m ) biu th ch k Chaum Petersen trn thng bo m c to ra vi kha b mt x tha mn ng thc ca thut ton ri rc y1, y2 vi c s ln lt l g1, g2. 3.4. Php chng minh tng tc Fujioka Okamoto Ohta ng thc: Php chng minh ng thc log g (y1) log g (y2) l giao thc hoc chng minh1 2

log g (y1) log g (y2) hoc chng minh log g (y1) log g (y2). Giao thc ca Fujioka 1 2 1 2

Okamoto Ohta chng minh ng thc (hoc khng l ng thc) ca thut ton ri rc y1, y2 vi c s ln lt l g1, g2. Giao thc nh sau: V (Ngi kim tra) C (Ngi xc nhn) u, v R Z qu v a = g 1 y 1 modp

a

k, k, w R Z qk r1 = g 1 ; r2 = g k 2' k r 1 = g 1 ; r '2 = g k 2' '

1 2 2 1 u,v

r ,r ' ,r ,r ' , w

u v a = g 1 y 1 mod p?

z = k (v + w) c z = k (v + w) kz ,z v g 1z y 1 + w = r1 v ' g 1z r 1 + w = r 1 z g 2 r v + w = r '2 2 = ( g2z y v + w r2) 2'

'

'

Ta c th din gii giao thc trn thnh cc bc sau: 1. Ngi kim tra V chn u,v ngu nhin Zq v tnh u v a = g 1 y 1 modp, ri gi a cho ngi xc nhn C 2. Ngi xc nhn C chn k, k, ngu nhin Zq v tnh k ' k r1 = g 1 ; r2 = g k ; r 1 = g 1 ; r '2 = g k 2 2' '

Sau gi r1, r2, r1, r2 cho V 3. Khi nhn c r1, r2, r1, r2 do C gi, V gi li hai gi tr u, v 4. Ngi xc nhn, nhn c u, v th kim tra ng thcSinh vin thc hin: Nguyn Vn Tn

-43-

Lp: CT702

n tt nghip

Cc ch k khng chi b c v ng dngu v a = g 1 y 1 modp.

Nu ng, C gi li cho V hai gi tr z, z c tnh nh sau: z = k (v + w) c z = k (v + w) k 5. Ngi kim tra V s kim tra xem cc ng thc sau c xy ra hay khng? v g 1z y 1 + w = r1v ' g 1z r 1 + w = r 1 z g 2 r v + w = r '2 2 = ( g2z y v + w r2) 2 Kt thc giao thc u ra ca ngi kim tra l . Php chng minh tr v 1 nu log g (y1) log g (y2) v tr v 0 nu log g (y1) log g (y2).1 2 1 2 ' '

Giao thc c k hiu nh sau: Bi Proof[log g (y1) log g (y2)]1 2

Ch : y y1, y2 c tnh nh sau: y1 = g1c mod p, y2 = g2c mod p 4. Cu trc lc ch k ngi xc nhn khng th chi b: 4.1. To kha: + Ngi k chn s R Z q , thit lp cp kha b mt v cng khai (SS, PS) vi SS = s, PS = gs mod p. + Ngi xc nhn chn c R Z q , thit lp cp kha b mt v cng khai (SC, PC) vi SC = c, PS = gc mod p. 4.2. To ch k: to ch k trn thng bo m, ngi k S chn r R Z q , to: : = gr, s : = P r , s+c : = (PSPC) r , gs : = PS, gs+c : =PSPC S Sau tnh 1 = CP(r, , s+c, g, gs+c)(m) v 2 = S(sr, g, s)(1). => Ch k ca ngi k trn thng bo m l: = (1, 2). 4.3. Kim tra ch k: u tin ngi kim tra s kim tra tin cy ca (1, 2) vi 1 l ch k Chaum Petersen ng thc ca thut ton ri rc tin cy trn thng bo m v 2 l ch k Schnorr tin cy trn 1. Ngi kim tra dng nu mi s kim tra u dn n kt qu khng tin cy. Ngc li, ngi kim tra tip tc kim tra ch k nh sau: - i vi ngi k: u ra v ca ngi kim tra ca (SVer (SS), VVer())(m, , PS, PC) c tnh: v = Bi-Proof [log (s) logg(gs)]Sinh vin thc hin: Nguyn Vn Tn

-44-

Lp: CT702

n tt nghip

Cc ch k khng chi b c v ng dng

Trong giao thc ny ngi k ng vai tr ngi chng minh. - i vi ngi xc nhn: u ra v ca ngi kim tra ca (CVer(SC), VVer())(m, , PS, PC) c tnh: v = Bi-Proof [logg (gc ) log (c)] Trong giao thc php chng minh k ny, ngi xc nhn gi nhim v nh ngi chng minh v c = s+c /s. Trong c 2 s kim tra ca ngi k v ngi xc nhn, ngi kim tra chp nhn ch k khi v ch khi v = 1. 4.4. Gii thch cu trc bng trc gic: Ta thy rng trong cc cu trc ny, ngi k c kha b mt s, kha cng khai g, ngi xc nhn c kh b mt c, kha cng khai gc. Gi tr gs+c c tnh: gs+c = PS . PC = gsgc (v gs = PS, gc = PC ) Ch k ngi xc nhn khng th chi b gm 2 ch k l 1, 2. Trong 1 l ch k Chaum Petersen c to vi kha b mt r1 = r, kim tra vi kha cng khai = gr v s+c = g r + c ; 2 l ch k Schnorr c to vi kha b mt s r2 = rs, kim tra vi kha cng khai s = g r . s Bng trc gic thy rng, ch k l lun chng ca tri thc kha b mt. Nh vy, nu mt ngi no c th to ra 1, 2 th ngi phi c tri thc ca r1, r2. Nu ngi c th chng minh rng r2 = r1s ngha l ch k l tin cy. C 2 cch chng minh r2 = r1s nh sau: * Cch 1: Chng minh rng: logg(gs) log (s). Cch ny yu cu tri thc ca logg(gs), v vy ch c th thc hin bi ngi k. * Cch 2: Chng minh rng: logg(gc ) = log (s+c /s). Cch ny yu cu tri thc logg(gc ), v vy ch c th thc hin bi ngi xc nhn. 5. Php phn tch an ton: ch ra rng cu trc l an ton, chng ta gi s rng lc ch k Schnorr v ch k Chaum Petersen da vo ng thc ca thut ton ri rc l an ton. Php chng minh k tng tc Fujioka Okamoto Ohta ca ng thc l an ton, ng n v chng c khng phn bit c. Php chng minh an ton ny c th c chng minh trong m hnh Oracle ngu nhin. Di y l cc chng minh ch ra rng cu trc ca ch k ngi xc nhn khng th chi b l khng gi mo, khng th phn bit c v s kim tra ch k l nht qun. 5.1. Ch k khng th gi mo: nh ngha: c tnh khng th gi mo ch k vng chc. Ngoi tr vi xc sut khng ng k, khng tn ti thut ton trong thi gian a thc theo xc sut A m c th sinh ra ch k trn thng bo c bit m, kim tra viSinh vin thc hin: Nguyn Vn Tn

-45-

Lp: CT702

n tt nghip

Cc ch k khng chi b c v ng dng

kha cng khai y khi truy cp n ch k Oracle ca tt c kha cng khai y* cho tt c cc thng bo cn truy cp n y c thng bo m. y khi mi thng bo m*, ch k Oracle ca kha cng khai y* sinh ra ch k * ca m* kim tra vi y*. Bng trc gic, c tnh khng th gi mo ch k vng chc c ngha rng khi truy cp n ch k Oracle ca tt c cc ch k cng khai tin cy cho tt c cc thng bo cn ch k mong mun, n l khng th sinh ra di kha cng khai mong mun, trn thng bo mong mun m. nh ngha ny thuyt phc hn khi nim ch k an ton chun. N l bn sao tng ng ca an ton i lp vi cc la chn thch hp c tnh tn cng vn bn mt m ca lc gii m. Do , lc ch k l khng th gi mo vng chc nu n tha mn c tnh khng th gi mo ch k vng chc. B : Ch k = (1, 2) l ch k qua c s kim tra ch nu 1 = CP(r, , s+c, g, gs+c)(m), 2 = S(sr, g, s)(1) v r1 = r2. Chng minh: Nu l tin cy, (1 v 2 c thnh lp l 1 = CP(r, , s+c, g, gs+c)(m), 2 = S(sr, g, s)(1). Cn li chng t r1 = r2. Chng ta gi s rng s khc 0. Ch k c coi l tin cy nu n tri qua mt trong hai bc th kim tra, l kim tra i vi ngi xc thc v kim tra i vi ngi k. Kim tra i vi ngi xc nhn phi thc hin php chng minh k Bi Proof [logg(gc) log (c)]. Do n ch ra rng c = c hoc c = s+c/ s. Hn na 1, 2 l ng => tn ti r1 v sr2, xem rng:s+c =g r + c = g(s+c)r 1 , s = gsr 2 s1

c = g cr = g ( s + c ) r / g sr g sr =g sr V s 0 r1 = r2. Vi trng hp kim tra i vi ngi k tng t nh trn. nh l: Trong m hnh Oracle ngu nhin, ch k ngi xc nhn khng th chi b l khng th gi mo. Chng minh: Theo b trn, ch k + l tin cy nu +1 = CP(r1, , s+c, g, gs+c)(m), +2 = S(sr2, g, s)(+1) v r1 = r2. iu ny c ngha rng nu tn ti thi gian a thc i th + A thnh cng to ra c 1 v + , sau A phi bit r1, r2s v kha b mt s. V vy ch 21 1 2 1 2

c mt vin cnh rng A c th gi mo + m khng cn truy cp n kha b mt s + + t c hoc 1 hoc + . Gi s A t c 1 , + hnh thnh t ch k * = 2 2 + * * + ( 1 , 2 ). Theo b trn, iu ny c ngha l 2 , 2 c to ra cng mt kha b mt r2s => A bit b mt to * . iu ny mu thun vi c tnh khng th gi 2 mo vng chc ca 2.

Sinh vin thc hin: Nguyn Vn Tn

-46-

Lp: CT702

n tt nghip

Cc ch k khng chi b c v ng dng

5.2. Ch k khng th phn bit: nh ngha 4: (ch k b gi mo) * Cho x, gy = gy v gz = gz, ch k gi mo * = ( 1 , * ) trn thng bo m c 2 tnh:* * 1 = CP(x, X, Xy+c, g, gy+c) v * = S(z, g, yz)( 1 ) 2

Trong c, gc l kha b mt v cng khai ca ngi xc nhn, X = gx, Xy+c = g x + c v y gy+c = gygc. Ch k nh trn c t di m hnh Oracle ngu nhin. Phn u ca ch k l * 1 c th lun lun c thnh lp khi bit x. Phn tip theo ca ch k l * , ch k 2 Schnorr kim tra dng kha cng khai gz = gz. Ch k Schnorr (u, v) c gi mo trong m hnh Oracle ngu nhin. iu ny thc hin bng cch chn u, v ngu nhin v Oracle ngu nhin gi mo trong cch m n c cc u ra u vi u vo (m || y || g || gvyu). nh l: Trong m hnh Oracle ngu nhin, nu tn ti ngi gi mo A m c th phn bit ch k tin cy t ch k gi mo c to ra dng nh ngha trn trong thi gian a thc theo xc sut th c mt thut ton gii quyt vn Diffie Hellman trong thi gian a thc theo xc sut. Chng minh: Gi s c mt i th A m c th phn bit ch k tin cy t ch k gi mo * dng thng tin cng khai. K hiu tp hp ca tt c (a, gb, gcab = c) l D v ( a, gb, gc aR Z * ) l X. q Ly t* = (x1, gy, gz ) D, t+ = (x2, gy, gz ) X. Theo nh ngha ca ch k gi mo, A c th to ra 2 ch k gi mo *, + ln lt t t*, t+. y kha cng khai ca ngi k l gy. Theo b trong phn [VI.5.1 ], l ch k tin cy, + l ch k khng tin cy. Ngoi ra s thun li ca A trong phn bit * t + l khng ng k hn phn bit gia t* v t+. V vy nu A c kh nng nhn bit ch k chnh xc t * v +, chng ta ni rng t* hoc t+ hnh thnh t D. A gii quyt c vn ca Diffie Hellman. 5.3. Tnh nht qun ca kim tra ch k: Theo b phn [ VI.5.1 ], ch k l tin cy ch khi hoc s+c /s = c hoc s = s. N khng phc tp ch ra s tng quan i lp, ni cch khc nu t c hoc s+c /s = c hoc s = s th 1 l php chng minh hp l ca tri thc v ng thc, 2 l ch k tin cy, l ch k ng. V vy tnh nht qun ca s kim tra ch k tun theo tnh ng v hp l ca php chng minh k ca tri thc.

Sinh vin thc hin: Nguyn Vn Tn

-47-

Lp: CT702

n tt nghip

Cc ch k khng chi b c v ng dng

6. Ch k ngi xc nhn khng th chi b m qung v cc ng dng 6.1. Cu trc: Giao thc ch k ngi xc nhn khng th chi b m qung gm c th ca ch k Schnorr m qung v c th ca ch k Chaum Petersen ca ng thc m qung thc hin song song vi nhau. Cu trc nh sau: Ngi nhn Ngi k r, r1, r2 R Z q p, r1, r2 R Z q = gr s = gsr s+c = g r + c s w2 = g r w1 = g r W1 = g r c s+1 2

2

s +c 2 s 11

, ,

, w , w ,W

= p s = sp s + c = sp+ c

w2 = w2p. g r w1 = w1p. g r 1 = W1p. g r v = H(m s s +c w2w1 1 )2 1 1

u = v/pu

v1 = r1 u(r) v2 = r2 u(rs)v1 ,v 2

1 = v1p + r1 2 = v2p + r2 + 1 = (v, 1 , , s +c , w1, 1)

+2 = (v, 2 , s , w2) Trong cu trc ny, ch k ngi xc nhn khng th chi b m qung l = (+1, +2), chng ta nh lc hng mt c th tng tc ca giao thc to ch k t to 1 = CP(r, , s+c, g, gs+c)(m), 2 = S(sr, g, s)(1) to +1 = CP(rp, , s+c, g, gs+c)(m),

Sinh vin thc hin: Nguyn Vn Tn

-48-

Lp: CT702

n tt nghip

Cc ch k khng chi b c v ng dng

+2 = S(srp, g, s)(+1) trong = p , s = sp v s+c = sp+ c . Ngi trung gian tc ngi nhn ch k trong giao thc bit gi tr p. iu ny khng phc tp kim tra +1 l ch k Chaum Petersen tin cy trn thng bo m v +2 l ch k Schnorr tin cy trn thng bo ( m || +1) . Do = (+1, +2) l ch k ngi xc nhn khng th chi b tin cy. 6.2. Lc tr trc c th leo thang: Chng ta cng kh quen vi cc h thng tr tin trc mua mt sn phm no nh t mua tp ch, truyn hnh cp . . . Hin nay, cng vi s pht trin mnh m ca cng ngh thng tin v s giao lu thng tin ngy cng tr ln ph bin trn cc mng truyn thng th ngi ra cng ngh ti cc hot ng kinh doanh trn mng Internet i hi phi nhanh v c cc phng thc tr tin t hiu qu cao. Gii php ph bin l micropayment ngha l ngi s dng tr mt s tin nh cho tng sn phm mua trc tuyn. Gii php la chn l tr trc, ngi s dng tr trc vi dch v mt s tin c nh gi l l ph hng nm. Ngi s dng sau c cp mt giy chng nhn tr trc m cho php truy cp n mi sn phm ca dch v. S thun li ca dch v tr trc trn micropayment l n gim mt lng ln qu trnh tin hnh cng vic mua bn ca s giao dch khi mua mt sn phm nh gi nh. Trong thc t, khng xy ra vic ngi cung cp dch v c th cung cp tt c cc dch v mong mun ti ngi s dng. Ngoi ra n bt tin vi ngi s dng khi phi gi m s ca giy chng nhn tr trc, nu mi sn phm ngi s dng phi gi mt giy chng nhn tr tin trc th iu ny s gy phin toi cho ngi s dng. Gii php mong mun l s lin hip cc cng ty ln ca nhng ngi cung cp dch v cung cp nhiu loi khc nhau ca dch v trc tuyn. Trong th t truy cp n cc dch v ny, mi ngi s dng ch cn mt giy chng nhn t trc vi ci m anh ta tr tin l ph c nh hng nm. Khi ngi s dng c th truy cp n tt c cc dch v cung cp bi bt k thnh phn no trong lin hip cc cng ty. Ch k m c th dng thit k mt h thng tr tin trc vi quyn ring t ca ngi s dng. Trong m hnh ny, giy chng nhn tr trc l a ra ch k ngi xc nhn khng th chi b m bi ngi qun l ca lin hip cc cng ty. truy cp ti cc dch v trc tuyn, ngi s dng chng t giy chng nhn tr trc tin cy vi ngi cung cp dch v, ngi c vai tr ngi xc nhn trong lc ch k. Thun li chnh trong cch ny l gim trch nhim mt lng qu ln qu trnh tin hnh cng vic mua bn, thm ch cung cp c quyn ring t cho ngi s dng.

Sinh vin thc hin: Nguyn Vn Tn

-49-

Lp: CT702

n tt nghip

Cc ch k khng chi b c v ng dng

CHNG TRNH#include #include #include #include #include //========================================== int roso(char s); char rochu(int s); void kyvb(char *tep); int Kiemthu(); long int kha_nghich(long int b, long int n); void output(); void Elgamal(); long exp_mod(long x, long b, long n); long Extended_Euclidean(long b, long n); int kiemtra_ngto(long pq); long USCLN(long n,long m); long Ktra_ngto_cungnhau(long b,long phi_N); long Kitep(int Ki); long Doctep(long n); void Ky_RSA(); void chaum(); //=========================================== long int p,a,alpha,k,beta,k1; long int delta,gamma; int chuky[500],sl; //=========================================== int roso(char s) { return s; } char rochu(int s) { return s;Sinh vin thc hin: Nguyn Vn Tn

-50-

Lp: CT702

n tt nghip

Cc ch k khng chi b c v ng dng

} //================ky cao van ban============== void kyvb(char *tep) { clrscr(); char c,c1; long int so; int so1,so2,l,i; FILE *f,*f1; char *tep1; char *s; sl=1; chuky[0]=gamma; f=fopen(tep,"a+t"); if(f==NULL) { printf("Loi mo tep!!!"); getch(); exit(0); } while(!feof(f)) { fscanf(f,"%c",&c); //doc tung ky tu trong tep. if(c!=10) { so=roso(c); //lay gia tri so cua tung ky tu c. delta=((so-a*gamma)*k1)%(p-1); //tinh gia tri ky la gamma. delta=delta+(p-1); //vi delta 0) { temp = t0 - q * t; if (temp >= 0) temp = temp % n; else temp = n - (- temp % n); t0 = t; t = temp; n0 = b0; b0 = r; q = n0 / b0; r = n0 - q * b0; } if (b0 != 1) return 0; else return t % n; } //====================================================== void chaum() { printf("\n\n =====* GIAO THUC CHOI BO *====="); long a = 101, alpha = 4, beta = 449, e1 = 46; long e2 = 123, f1 = 198, f2 = 11, i, j, p = 467; long q, x = 157, y = 25, c, d, C, D, r, s, t;Sinh vin thc hin: Nguyn Vn Tn

-56-

Lp: CT702

n tt nghip

Cc ch k khng chi b c v ng dng

q = (p - 1) >> 1; printf("a = %ld\n", a); printf("alpha = %ld\n", alpha); printf("beta = %ld\n", beta); printf("e1 = %ld\n", e1); printf("e2 = %ld\n", e2); printf("f1 = %ld\n", f1); printf("f2 = %ld\n", f2); printf("p = %ld\n", p); printf("q = %ld\n", q); printf("x = %ld\n", x); printf("y = %ld\n", y); i = Extended_Euclidean(a, q); c = (exp_mod(y, e1, p) * exp_mod(beta, e2, p)) % p; d = exp_mod(c, i, p); printf("Alice Tinh c = %ld va gui cho Bob\n", c); printf("Bob Tinh d = %ld va gui lai cho Alice\n", d); if (d != (exp_mod(x, e1, p) * exp_mod(alpha, e2, p)) % p) printf("d != x ^ e1 * alpha ^ e2 mod p\n"); else printf("d == x ^ e1 * alpha ^ e2 mod p\n"); C = (exp_mod(y, f1, p) * exp_mod(beta, f2, p)) % p; D = exp_mod(C, i, p); printf("Alice Tiep tuc tinh C = %ld va gui cho Bob\n", C); printf("Bob Tinh D = %ld va gui cho Alice\n", D); if (D != (exp_mod(x, f1, p) * exp_mod(alpha, f2, p)) % p) printf("D != x ^ f1 * alpha ^ f2 mod p\n"); else printf("D == x ^ f1 * alpha ^ f2 mod p\n"); i = q - e2; if (i < 0) i += q; j = q - f2; if (j < 0) j += q; r = (d * exp_mod(alpha, i, p)) % p; s = exp_mod(r, f1, p); r = (D * exp_mod(alpha, j, p)) % p;Sinh vin thc hin: Nguyn Vn Tn

-57-

Lp: CT702

n tt nghip

Cc ch k khng chi b c v ng dng

t = exp_mod(r, e1, p); if (s == t) printf("Alice Chap nhan chu ky y la chu ky dang tin cay\n"); else printf("Alice Cho rang chu ky y la khong tin cay \n"); getch(); } //============================================================= int kiemtra_ngto(long pq) { for(long i=2;im) n=n-m; else m=m-n; if(n==0) return m; else return n; } //============================================================= long Ktra_ngto_cungnhau(long b,long phi_N) { if(USCLN(b,phi_N)!=1) { printf("\n\nb khong phai la nguyen to cung nhau voi phi_N\n\n moi chon lai b!"); return 0; } else return 1;Sinh vin thc hin: Nguyn Vn Tn

-58-

Lp: CT702

n tt nghip

Cc ch k khng chi b c v ng dng

} //============================================================= long Kitep(int Ki) { FILE *f; char *tentep; long n; mt:printf("\n\nNhap vao ten tep can Ki:");fflush(stdin);gets(tentep); f=fopen(tentep,"a+t"); if(f==NULL) { printf("\n\nTep %s khong ton tai! Moi nhap lai!",tentep); getch(); goto mt; } fseek(f,0,SEEK_END); n=ftell(f); fseek(f,n,SEEK_SET); fprintf(f,"%d",Ki); fclose(f); return n; } //============================================================= long Doctep(long n) { FILE *f; char *tentep; mt:printf("\n\nNhap vao ten tep can mo:");fflush(stdin);gets(tentep); f=fopen(tentep,"a+t"); if(f==NULL) { printf("\n\nTep %s khong ton tai! Moi nhap lai!",tentep); goto mt; } long ki; fseek(f,n,SEEK_SET); fscanf(f,"%ld",&ki);Sinh vin thc hin: Nguyn Vn Tn

-59-

Lp: CT702

n tt nghip

Cc ch k khng chi b c v ng dng

fclose(f); return ki; } //============================================================= void Ky_RSA() { clrscr(); long x,a,b,n,phi_N,p,q; long Kthuocvb; int Ki,Kiem_thu; printf("\n=====* CHU KY RSA *======"); p:printf("\nNhap so nguyen to p=");scanf("%ld",&p); if(kiemtra_ngto(p)!=1)goto p; q:printf("\nNhap so nguyen to q=");scanf("%ld",&q); if(kiemtra_ngto(q)!=1)goto q; n=p*q; phi_N=(p-1)*(q-1); b:printf("\nMoi ban chon so b (1