You are on page 1of 63

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 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

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

-4-

Lp: 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 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

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 E
k

e :PC
k

v mt hm gii m d D
k

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


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 26
26

(x, y Z )
26

V d: Dng kho k = 9 m ho dng th: toinaydichoi dng th tng ng vi


dng s
t

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

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

-9-

Lp: CT702

n tt nghip

Cc ch k khng chi b c v ng dng

Tp kho ph thuc vo Z vi m l s kho c th.


m

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

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
-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

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

-10-

Lp: CT702

n tt nghip

Cc ch k khng chi b c v ng dng

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

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

e (x , x ,, x ) = (x + k , x + k ,, x + k )
k

Sinh vin thc hin: Nguyn Vn Tn

-11-

Lp: CT702

n tt nghip

Cc ch k khng chi b c v ng dng

d (y , y ,, y ) = (y k , y k ,, y k )
k

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

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

Ch : M Vigenere vi m = 1 s tr thnh m Dch chuyn.


m

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 ).k
k

d (y , y ,, y ) = (y , y ,,y ).k
k

Sinh vin thc hin: Nguyn Vn Tn

-1

-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 bi
1

y = 11.x + 3.x
1

y = 8.x + 7.x
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


26

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

Khi : k .k = I l ma trn n v (ng cho chnh bng 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=S
26

vi mi k = S , ta c
m

-1

trong l hon v nghch o ca


V d: Gi s m = 6, v kho k c cho bi php hon v
1

-1

Khi php hon v nghch o l:

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

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

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

-15-

Lp: CT702

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 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?

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:
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

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

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

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:

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

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 )i


i =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

-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 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

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

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.

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 modp1
1
d ye 1 .a . e 2 .a .a modp
Do vy :

(d.-e 2 )f 1 (ye 1 .a .e 2 .a

Sinh vin thc hin: Nguyn Vn Tn

.a

.-e 2 )f 1 modp
-30-

Lp: CT702

n tt nghip

Cc ch k khng chi b c v ng dng


1

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

Cc ch k khng chi b c v ng dng


1

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.

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 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

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 theo
Sinh 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 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.

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 v
Sinh 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 *q Z *q tha mn
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 *q tha mn:
u = H(my1y2g1g2g 1v y 1u g v2 y u2 )
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 *q , tnh:
u = H(my1y2g1g2g 1v y 1u g v2 y u2 )
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
g 1v y 1u = g 1v (g 1x )u = g 1v+ux = g 1r
Tng t: y2 = g 2x
Sinh vin thc hin: Nguyn Vn Tn

-42-

Lp: CT702

n tt nghip

Cc ch k khng chi b c v ng dng

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

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 minh
1

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

= ( g2z y v2+ w r2)


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
a = g 1u y 1v modp, ri gi a cho ngi xc nhn C
2. Ngi xc nhn C chn k, k, ngu nhin Zq v tnh
r1 = g 1k ; r2 = g k2 ; r 1' = g 1k ; r '2 = g k2
'

'

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 thc
Sinh vin thc hin: Nguyn Vn Tn

-43-

Lp: CT702

n tt nghip

Cc ch k khng chi b c v ng dng

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

Giao thc c k hiu nh sau:


Bi Proof[log g (y1) log g (y2)]
1

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 rS , s+c : = (PSPC) r , gs : = PS, gs+c : =PSPC
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 rs + c ; 2 l ch k Schnorr c to vi kha b mt
r2 = rs, kim tra vi kha cng khai s = g rs .
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 vi
Sinh 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 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

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 +2 . Gi s A t c 1+ , +2 hnh thnh t ch k * =
( 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 *2 . iu ny mu thun vi c tnh khng th gi
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* , *2 ) trn thng bo m c
tnh:

1* = CP(x, X, Xy+c, g, gy+c) v *2 = S(z, g, yz)( 1* )

Trong c, gc l kha b mt v cng khai ca ngi xc nhn, X = gx, Xy+c = g xy + c v


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 *2 , ch k
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 *q ) l X.
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 rs + c
w2 = g r
w1 = g r
W1 = g rs+ c
1

, ,

, 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),

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<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

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
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

Cc ch k khng chi b c v ng dng

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

Cc ch k khng chi b c v ng dng

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

Cc ch k khng chi b c v ng dng

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

Cc ch k khng chi b c v ng dng

printf("Nhap ten can hien thi:");fflush(stdin);


gets(tep);
printf("Nhap tep ten chua chu ky tuong ung:");fflush(stdin);
gets(tep1);
f=fopen(tep,"r+t");
int d;
printf("\n\n VAN BAN\n\n");
while(!feof(f))
{
fscanf(f,"%c",&c);
printf("%c",c);
}
f1=fopen(tep1,"r+t");
printf("\n\n CHU KY\n\n");
fscanf(f1,"%d",&sl);
fscanf(f1,"%d",&gamma);
printf("do dai xau:%2d" "gia tri gamma:%2d\n",sl,gamma);
for(int i=0;i<sl-1;i++)
{
fscanf(f1,"%d",&d);
printf(" %2d",d);
}
fclose(f1);
fclose(f1);
}break;
case 3:{
if(Kiemthu()==1)printf("Chu ky dung!!");
else printf("Chu ky gia!!");
}
case 0:break;
}
if(ch==0) break;
}
getch();
}
//=========== Tinh Mod ============
long exp_mod(long x, long b, long n)
Sinh vin thc hin: Nguyn Vn Tn

-55-

Lp: CT702

n tt nghip

Cc ch k khng chi b c v ng dng

{
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

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;i<=(long)sqrt(pq);i++)
if(pq%i==0)
{
printf("\n\n Khong phai so nguyen to!\n\nMoi ban nhap lai!");
return 0;
}
return 1;
}
//=============================================================
long USCLN(long n,long m)
{
while(m!=0&&n!=0)
if(n>m) 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<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

Cc ch k khng chi b c v ng dng

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

Cc ch k khng chi b c v ng dng

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.

Sinh vin thc hin: Nguyn Vn Tn

-62-

Lp: CT702

n tt nghip

Cc ch k khng chi b c v ng dng

TI LIU THAM KHO


1.
2.
3.
4.
5.
6.

L thuyt mt m v an ton thng tin Phan nh Diu(NXB HQGHN).


Bi ging an ton thng tin TS. Nguyn Ngc Cng.
Cryptography Theory and Practice DR. Stnon.
Designated Confirmer Signatures David Chaum.
Khanh Nguyen, Yi Mu, Vijay Varadharajan - Undeniable Confirmer Signature.
Invisible Designated Confirmer Signatures without Random Oracles - Victor K.
Wei.
7. Efficie Convertible Uderniable Signature Schemes .

Sinh vin thc hin: Nguyn Vn Tn

-63-

Lp: CT702

You might also like