Professional Documents
Culture Documents
TRNG I HC DN LP HI PHNG
---------- o0o ----------
CH K KHNG CHI B C
V NG DNG
TS. L Ph
Nguyn Vn Tn
10416
HI PHNG - 2007
n tt nghip
MC LC
T 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: ........................................................................ 21
Sinh vin thc hin: Nguyn Vn Tn
-2-
Lp: CT702
n tt nghip
-3-
Lp: CT702
n tt nghip
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
-4-
Lp: CT702
n tt nghip
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.
-5-
Lp: CT702
n tt nghip
Chng 1
C S L THUYT
1. 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-1
Sinh vin thc hin: Nguyn Vn Tn
-6-
Lp: CT702
n tt nghip
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
-7-
Lp: CT702
n tt nghip
e :PC
k
v mt hm gii m d D
k
-8-
Lp: CT702
n tt nghip
(x, y Z )
26
19
14
12
24
14
qua php m ho e s c:
9
23
17
22
12
17
11
16
23
17
bn m s l:
qnwcxrcqdkjh
Nhn c bn m , dng d nhn c bn r.
9
-9-
Lp: CT702
n tt nghip
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 nh
26
26
26
e (x) = (x)
-1
d(y) = (y)
-1
vi x, y Z , l nghch o ca
26
bn r:
toinaydichoi
s c m ho thnh bn m (vi kho ):
mfzsxdazygfz
-1
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
26
s cc hon v trn Z , hay l 26! > 4.10 . Vic duyt ton b cc hon v thm m
26
26
26
vi mi k = (a, b) K ta nh ngha:
Sinh vin thc hin: Nguyn Vn Tn
-10-
Lp: CT702
n tt nghip
e (x) = ax + b mod 26
k
-1
d (y) = a (y b) mod 26
k
trong x, y Z
26
V d: Ly k = (5, 6).
Bn r:
toinaydichoi
19
14
13
14
14
y=5x + 6 mod 26
y
23
24
20
19
24
21
20
16
15
24
20
Bn m:
xyutgyvuqpyu
Thut ton gii m trong trng hp ny c dng:
d (y) = 21(y 6) mod 26
k
e (x , x ,, x ) = (x + k , x + k ,, x + k )
k
-11-
Lp: CT702
n tt nghip
d (y , y ,, y ) = (y k , y k ,, y k )
k
19
14
13
24
14
15
17
15
17
21
22
23
20
15
16
17
14
18
25
Bn m
vwxuepfqrosz
T bn m , dng php gii m d tng ng, ta li thu c bn r.
k
d (y , y ,, y ) = (y , y ,,y ).k
k
-1
-12-
Lp: CT702
n tt nghip
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 bi
1
y = 11.x + 3.x
1
y = 8.x + 7.x
2
Ta c ma trn nghch o
V c tnh nh sau
ca k : det(k) = (ad bc) phi c phn t nghch o trn Z , ngha l (ad bc) phi l
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.
-1
-13-
Lp: CT702
n tt nghip
nh thc ca
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=S
26
vi mi k = S , ta c
m
-1
-1
-14-
Lp: CT702
n tt nghip
Bn r:
toinaydichoi
vt
1->3 2->5 3->1 4->6 5->4 6->2 1->3 2->5 3->1 4->6 5->4 6->2
vt
Bn m:
iatynocodihi
Dng hon v nghch o, t bn mt m ta li thu c bn r.
Ch :
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
-15-
Lp: CT702
n tt nghip
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.
-16-
Lp: CT702
n tt nghip
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
-17-
Lp: CT702
n tt nghip
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.
-18-
Lp: CT702
n tt nghip
Chng 2
CH K S
I. 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?
-19-
Lp: CT702
n tt nghip
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:
true,
false,
Ver(x,y) =
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
-20-
Lp: CT702
n tt nghip
-21-
Lp: CT702
n tt nghip
-22-
Lp: CT702
n tt nghip
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
Thng bo rt gn
di ty
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 kh
Sinh vin thc hin: Nguyn Vn Tn
-23-
Lp: CT702
n tt nghip
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:
b11
b12
b1n
Khi 2:
b21
b22
b2n
Khi m:
bm1
bm2
bmn
M Hash:
C1
C2
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
-24-
Lp: CT702
n tt nghip
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
-25-
Lp: CT702
n tt nghip
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.
-26-
Lp: CT702
n tt nghip
Chng 3
CH K CHNG CHI B
1. 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
-27-
Lp: CT702
n tt nghip
-28-
Lp: CT702
n tt nghip
-29-
Lp: CT702
n tt nghip
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 modp1
1
d ye 1 .a . e 2 .a .a modp
Do vy :
(d.-e 2 )f 1 (ye 1 .a .e 2 .a
.a
.-e 2 )f 1 modp
-30-
Lp: CT702
n tt nghip
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)
1
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 xmodp
Sinh vin thc hin: Nguyn Vn Tn
-31-
Lp: CT702
n tt nghip
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.
-32-
Lp: CT702
n tt nghip
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 .
-33-
Lp: CT702
n tt nghip
Chng 4
CH K NGI XC NHN
C CH NH
1. 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
-34-
Lp: CT702
n tt nghip
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 theo
Sinh vin thc hin: Nguyn Vn Tn
-35-
Lp: CT702
n tt nghip
-36-
Lp: CT702
n tt nghip
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.
-37-
Lp: CT702
n tt nghip
-38-
Lp: CT702
n tt nghip
-39-
Lp: CT702
n tt nghip
Chng 5
CH K NGI XC NHN
KHNG TH CHI B
1.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.
-40-
Lp: CT702
n tt nghip
-41-
Lp: CT702
n tt nghip
-42-
Lp: CT702
n tt nghip
ux
g v2 y u2 = g v2 (g 2x )u = g v+
= g r2
2
Vy: u = H(my1y2g1g2g 1r g r2 )
log g (y1) log g (y2) hoc chng minh log g (y1) log g (y2). Giao thc ca Fujioka
1
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 q
a = g 1u y 1v modp
a
k, k, w R Z q
r1 = g 1k ; r2 = g k2
'
r 1' = g 1k ; r '2 = g k2
'
r ,r ' ,r ,r ' , w
1 1 2 2
u,v
a = g 1u y 1v mod p?
z = k (v + w) c
z = k (v + w) k
'
z ,z
g 1z y 1v + w = r1
'
g 1z r 1v + w = r 1'
'
g 2z r v2+ w = r '2
'
-43-
Lp: CT702
n tt nghip
a = g 1u y 1v 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?
g 1z y 1v + w = r1
'
g 1z r 1v + w = r 1'
'
g 2z r v2+ w = r '2
= ( g2z y v2+ w r2)
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
-44-
Lp: CT702
n tt nghip
-45-
Lp: CT702
n tt nghip
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 rs + c = g(s+c)r 1 , s = gsr 2
1
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 +2 , sau A phi bit r1, r2s v kha b mt s. V vy ch
1
-46-
Lp: CT702
n tt nghip
-47-
Lp: CT702
n tt nghip
, ,
, w , w ,W
s
s+c
2 1
= 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
u = v/p
u
v1 = r1 u(r)
v2 = r2 u(rs)
v1 ,v2
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),
-48-
Lp: CT702
n tt nghip
-49-
Lp: CT702
n tt nghip
CHNG TRNH
#include<stdio.h>
#include<conio.h>
#include<math.h>
#include <stdlib.h>
#include<string.h>
//==========================================
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
}
//================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
chuky[sl]=delta; //gia tri ky tren tung ky tu.
sl++;
}
}
fclose(f);
}
//============Ham kiem thu chu ky=================
int Kiemthu()
{
Sinh vin thc hin: Nguyn Vn Tn
-51-
Lp: CT702
n tt nghip
char *tep,*tep1;
char c;
int d;
long int so;
FILE *f,*f1;
printf("Nhap ten tep can kiem thu:");fflush(stdin);
gets(tep);
printf("Nhap ten tep chua chu ky can kiem thu:");fflush(stdin);
gets(tep1);
f=fopen(tep,"rt");
f1=fopen(tep1,"rt");
int kt=1;
fscanf(f1,"%2d",&sl);
fscanf(f1,"%2d\n",&gamma);
int i=1;
while(i<sl-1)
{
fscanf(f,"%c",&c);
so=roso(c);
fscanf(f1,"%3d",&d);
if((a*gamma+k*d)%(p-1)!=so)
{ kt=0;
return kt;}
i++;
}
fclose(f1);
fclose(f);
return kt;
}
//===========Tinh Kha nghich ================
long int kha_nghich(long int b, long int n)
{
long int n0, b0;
long int t, t0, temp, q, r;
n0=n; b0=b; t0=0; t=1;
q=floor(n0/b0);
r=n0-q*b0;
Sinh vin thc hin: Nguyn Vn Tn
-52-
Lp: CT702
n tt nghip
while(r>0){
temp=t0-q*t;
if (temp < 0)
temp = n- ((-temp) % n);
else
temp = temp % n;
t0=t;
t=temp;
n0=b0;
b0=r;
q=floor(n0/b0);
r=n0-q*b0;
}
if(b0!=1)
{
printf("Khong co a"); return 0;}
else return(t%n);
}
//===================================================
void output()
{
char c;
char *tep;
FILE *f;
printf("Nhap ten tep can luu chu ky:");fflush(stdin);
gets(tep);
f=fopen(tep,"wt");
if(f==NULL)
{
printf("\nLoi mo tep!!!!!!");
getch();
exit(0);
}
fprintf(f,"%d",sl);
fprintf(f," %d\n",chuky[0]);
for(int i=1;i<sl;i++)
{
Sinh vin thc hin: Nguyn Vn Tn
-53-
Lp: CT702
n tt nghip
fprintf(f," %2d",chuky[i]);
}
fclose(f);
}
//=============Ham chinh==============================
void Elgamal()
{
printf("\n\n =====* CHU KY ELGAMAL *======");
long int x,y;
int ch;
char *tep,*tep1;
FILE *f,*f1;
char c;
printf("\n\nNhap so nguyen to p:");scanf("%ld",&p);
printf("Nhap a:");scanf("%ld",&a);
printf("Nhap alpha:");scanf("%ld",&alpha);
printf("Nhap khoa k:");scanf("%ld",&k);
beta=exp_mod(a,alpha,p);
gamma=exp_mod(k,alpha,p);
k1=kha_nghich(k,p-1);
while(1)
{
printf("\n\nCAC LUA CHON CHO CHU KY SO ELGAMAL\n");
printf("[1].Ky \n");
printf("[2].Hien thi \n");
printf("[3].Kiem thu\n");
printf("[0].Thoat!!\n");
printf("\n\nMoi ban chon:");scanf("%d",&ch);
switch(ch)
{
case 1:{
printf("Nhap ten tep:");fflush(stdin);
gets(tep);
kyvb(tep);
output();
}break;
case 2:{
Sinh vin thc hin: Nguyn Vn Tn
-54-
Lp: CT702
n tt nghip
-55-
Lp: CT702
n tt nghip
{
long a = 1l, s = x;
while (b != 0) {
if (b & 1l) a = (a * s) % n;
b >>= 1;
if (b != 0) s = (s * s) % n;
}
if (a < 0) a += n;
return a;
}
//============= Tinh theo Euclidean mo rong ===========
long Extended_Euclidean(long b, long n)
{
long b0 = b, n0 = n, t = 1, t0 = 0, temp, q, r;
q = n0 / b0;
r = n0 - q * b0;
while (r > 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
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
-58-
Lp: CT702
n tt nghip
}
//=============================================================
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
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<b<phi_N) sao cho gcd(b,phi_N)==1\n\n b=");
scanf("%ld",&b);
if(Ktra_ngto_cungnhau(b,phi_N)!=1)goto b;
a=kha_nghich(b,phi_N);
printf("\n\n
LAP CHU KI ");
printf("\nKhoa bi mat dung de tao chu ki la K1(a)=%ld",a);
printf("\nNhap vao so de lap chu ki so x=");scanf("%ld",&x);
Ki=exp_mod(x,a,n);
printf("\nVoi so x ta tao duoc ra chu Ki la :%d",Ki);
Kthuocvb=Kitep(Ki);
printf("\nVan ban da duoc ki!");
printf("\n\n
KIEM THU CHU KI ");
printf("\nKiem thu voi khoa cong khai la K2(b,n)=(%ld,%ld)",b,n);
Kiem_thu=Doctep(Kthuocvb);
printf("\nChu ki duoc lay tu tep la:%d",Kiem_thu);
printf("\nKiem thu chu ki so ta duoc x=%d ",exp_mod(Kiem_thu,b,n));
if(exp_mod(Kiem_thu,b,n)==x)
printf("\n\n
CHU KI TREN LA DUNG!");
else
printf("\n\n
KHONG PHAI LA CHU KI!");
Sinh vin thc hin: Nguyn Vn Tn
-60-
Lp: CT702
n tt nghip
getch();
}
//=============================================================
void menu()
{
int c;
while(1)
{
clrscr();
printf("\n\n=====* CHUONG TRINH CHU KY SO *=======");
printf("\n\n[1].CHU KY RSA");
printf("\n[2].CHU KY ELGAMAL");
printf("\n[3].GIAO THUC CHOI BO");
printf("\n[4].Thoat khoi chuong trinh");
printf("\n\n Moi ban chon:");scanf("%d",&c);
switch(c)
{
case 3:
chaum();
break;
case 4:
return;
case 2:
Elgamal();
break;
case 1:
Ky_RSA();
break;
}
}
}
//===========================================
void main()
{clrscr();
menu();
}
Sinh vin thc hin: Nguyn Vn Tn
-61-
Lp: CT702
n tt nghip
KT LUN
Ngy nay, cng vi s pht trin ca khoa hc cng ngh hin i v Cng ngh
thng tin, ngnh mt m c nhng bc pht trin mnh m, t c nhiu kt qu
l thuyt su sc v to c s cho vic pht trin cc gii php bo mt, an ton thng
tin trong mi lnh vc hot ng ca con ngi. c bit l nhng u im ca ch k
s. Ch k s c bit n khi s trao i thng tin ngy cng ph bin trn cc mng
truyn thng ni m ch k tay khng th pht huy tc dng. Nhng bn cnh nhng
u im ca ch k s mang li n cn bc l nhng hn ch nht l i vi cc ch
k t xc thc (RSA, Elgamal), l kh nng bo v ch k, an ton v xc
thc ch k
Trong n ny, ti i su tm hiu v lc ch k khng th chi b, lc
ch k ngi xc nhn c ch nh v lc ch k ngi xc nhn khng th
chi b. Mi lc l s hon thin v tng bc nng cao s an ton v tin cy
ca ch k s.
Vi lc ch k chng chi b n gii quyt c yu cu ca ch k s
l kh nng bo v ch k chng s sao chp khng hp php. V ch k chng chi
b ch c th c kim tra khi c s cng tc ca ngi k thng qua giao thc hi
p. Tuy nhin, vi lc ny li c mt vn na l nu ngi k khng cng tc
trong vic xc thc ch k th ch k s khng c kim tra hoc ngi k khng
thc hin ng giao thc khi h mun chi b ch k ca mnh.
Vi lc ch k ngi xc nhn c ch nh gii quyt c yu im ca
lc k khng chi b c. Trong lc ny c s tham gia ca ba bn l
ngi k, ngi xc nhn, v ngi kim tra ch k. Ngi xc nhn thng qua php
chng minh tng tc c th chng minh vi mt ngi bt k rng ch k ca ch th
k l ng tin cy nhng n cng ngn cn vic ngi nhn ch k dng sai mc ch
l ngi nhn ch k c th dng ch k i thuyt phc ngi khc.
Lc ch k ngi xc nhn khng th chi b l s bin i kho lo ca lc
k ngi xc nhn c ch nh, n c ng dng nhiu trong cc h thng thanh
ton trc tuyn.
Lun vn tp chung vo nghin cu c s l thuyt v xy dng chng trnh v
ch k s.Tuy cn nhiu im cn phi nghin cu v hon thin nhng do thi gian
v trnh cn hn ch nn khng th trnh khi nhng nhc im, rt mong c s
gp ca cc Thy, C v cc bn.
Cui cng em xin cm n thy gio TS. L Ph thy tn tnh ch bo gip
em hon thnh n ny.
-62-
Lp: CT702
n tt nghip
-63-
Lp: CT702