Professional Documents
Culture Documents
TRNG I HC HNG HI
B MN: KHOA HOC MA Y TI NH
KHOA: CNG NGH THNG TIN
Gio trnh
AN TON V BO MT THNG TIN
HI PHNG - 2008
L thuyt
45
T hc
0
Loi hc phn: II
Tng s TC: 3
Bi tp ln
0
n mn hc
0
L p trinh hng i t ng
C u truc d li u
Mc ch ca hc phn:
Truyn t cho sinh vin nhng kin thc c bn v cc lnh vc ring trong an
ton bo mt my tnh:
- Cc gii thut m ha trong truyn tin.
- Cc thut ton to hm bm v ch k in t.
- Cc m hnh trao chuyn kha.
- Cc m hnh chng thc v cc giao thc mt m.
Ni dung ch yu:
G m 2 ph n:
- Ph n ly thuy t : cung c p cac ly thuy t v thu t toan ma hoa , cc giao thc.
- Ph n l p trinh: ci t cc h m, vi t cac ng du ng s du ng cac h ma m t
Ni dung chi tit ca hc phn:
Tn chng mc
Chng I. Gii thiu nhim v ca an ton v bo
mt thng tin.
1.1. Cc khi nim m u.
1.1.1. Thnh phn ca mt h thng thng tin
1.1.2. Nhng mi e da v thit hi i vi h thng
thng tin.
1.1.3. Gii php iu khin kim sot an ton bo mt
1.2. Mc tiu v nguyn tc chung ca ATBM.
1.2.1. Ba mc tiu.
1.2.2. Hai nguyn tc
1.3. Gii thiu chung v cc m hnh mt m.
1.3.1. M hnh c bn trong truyn tin v lut Kirchoff.
1.3.2. Nhng giai on pht trin ca l thuyt m ha.
LT
Xemine
BT
KT
1
1
13
1
16
0,5
0,5
16
2
1
2
1
3
4.1.3. H m ElGamal
Kim tra
Chng V. Ch k in t v hm bm.
1
12
5.1. Ch k in t.
5.1.1. nh ngha.
5.1.2. ng dng ca ch k in t
5.2. Gii thi u m t s h ch ky i n t
5.2.1. H ch ky i n t RSA
5.2.2. H ch ky i n t ElGamal
5.2.3. Chu n ch ky i n t DSA
5.3. Hm bm.
5.3.1. nh ngha.
5.3.2. Sinh ch k in t vi hm bm
5.4. M t s ham bm thng du ng
5.4.1. Hm bm MD5
5.4.2. Hm bm SHA1
Chng VI. Qun l kha trong h thng mt m
0,5
3
2
0,5
3
1,5
1,5
8
1
1
1
1
1
2
MUC LUC
LI NOI U .................................................................................................................... 1
CHNG I: GII THIU .................................................................................................. 2
1. An toan bao mt thng tin va mt ma hoc ................................................................. 2
2. Khai nim h thng va tai san cua h thng .............................................................. 2
3. Cac mi e doa i vi mt h thng va cac bin phap ngn chn ........................... 2
4. Muc tiu va nguyn tc chung cua an toan bao mt thng tin ................................... 3
5. Mt ma hoc (cryptology) ............................................................................................ 4
6. Khai nim h ma mt (CryptoSystem) ....................................................................... 4
7. M hinh truy n tin c ban cua mt ma hoc va lut Kirchoff ....................................... 5
8. S l c v lich
s mt ma hoc.................................................................................. 6
9. Phn loai cac thut toan mt ma hoc ......................................................................... 8
10. Mt s ng dung cua mt ma hoc ........................................................................... 8
CHNG II: C S TOAN HOC ................................................................................... 10
1. Ly thuyt thng tin ................................................................................................... 10
1.1. Entropy ............................................................................................................. 10
1.2. T c cua ngn ng. (Rate of Language) ....................................................... 11
1.3. Tinh an toan cua h thng ma hoa ................................................................... 11
1.4. Ky thut ln xn va rm ra (Confusion and Diffusion)..................................... 12
2. Ly thuyt phc tap .............................................................................................. 13
2.1. an toan tinh toan ......................................................................................... 14
2.2. an toan khng iu kin .............................................................................. 14
3.3. H mt tich ....................................................................................................... 16
3. Ly thuyt toan hoc ................................................................................................... 17
3.1. Modulo s hoc .................................................................................................. 17
3.2. S nguyn t .................................................................................................... 17
3.3. c s chung ln nh t ..................................................................................... 17
3.4. Vanh ZN (vanh ng d module N) ................................................................... 18
3.5. Ph n t nghich
ao .......................................................................................... 18
3.6. Ham phi le ..................................................................................................... 19
3.7. Thng d bc hai.............................................................................................. 19
3.8. Thut toan luy tha nhanh ................................................................................ 20
3.9. Thut toan clit m rng .................................................................................. 21
3.10. Phng trinh ng d bc nh t 1 n .............................................................. 22
3.11. inh
ly ph n d Trung Hoa. ............................................................................ 22
4. Cac thut toan kim tra s nguyn t. ..................................................................... 23
4.1. Mt s ky hiu toan hoc .................................................................................... 23
4.2. Thut toan Soloway-Strassen ........................................................................... 25
4.3. Thut toan Rabin-Miller..................................................................................... 26
4.4. Thut toan Lehmann. ........................................................................................ 26
5. Bai tp ..................................................................................................................... 26
CHNG III: CAC H MA KHOA BI MT ...................................................................... 28
1. Cac h ma c in................................................................................................... 28
1.1. H ma hoa thay th (substitution cipher)........................................................... 28
1.2. H ma Caesar .................................................................................................. 28
1.3. H ma Affine ..................................................................................................... 29
1.4. H ma Vigenere ................................................................................................ 30
1.5. H ma Hill ......................................................................................................... 30
1.6. H ma i ch (transposition cipher)................................................................. 32
2. Cac h ma khi ....................................................................................................... 34
2.1. Mt ma khi ...................................................................................................... 34
2.2. Chun ma hoa d liu DES (Data Encryption Standard) .................................. 35
2.3. Cac yu im cua DES ..................................................................................... 51
Danh mc hnh v
Danh mc bng
Li noi u
LI NOI U
T trc cng nguyn con ngi a phai quan tm ti vic lam th nao am
bao an toan bi mt cho cac tai liu, vn ban quan trong, c bit la trong lnh vc qun
s, ngoai giao. Ngay nay vi s xut hin cua may tinh, cac tai liu vn ban giy t va
cac thng tin quan trong u c s ha va x ly trn may tinh, c truyn i trong
mt mi trng ma mc inh la khng an ton. Do yu cu v vic c mt c ch, giai
phap bao v s an toan va bi mt cua cac thng tin nhay cam, quan trong ngy cng
tr nn cp thit. Mt ma hoc chinh la nganh khoa hoc am bao cho muc ich nay. Kh
c th thy mt ng dung Tin hoc c ch no lai khng s dung cac thut toan ma ha
thng tin. Tai liu nay da trn nhng kinh nghim va nghin cu ma tac gia a c rt,
thu thp trong qua trnh giang day mn hoc An toan va Bao mt Thng tin tai khoa Cng
ngh Thng tin, ai hoc Hang hai Vit nam. Vi bay chng c chia thanh cac chu
khac nhau t c s toan hoc cua mt ma hoc cho ti cac h ma, cac giao thc mt ma,
hy vong s cung cp cho cac em sinh vin, cac ban c gia mt tai liu b ich. Mc d a
rt c gng song vn khng tranh khi mt s thiu st, hy vong s c cac ban b
ng nghip, cc em sinh vin, cac ban c gia gp y chn thanh ti c th hoan thin
hn na cu n sach ny.
Xin gi li cam n chn thanh ti cac ban b ng nghip , nhng ngi thn a
lun ng vin, gp y cho ti trong qua trnh bin soan . Xin gi li cam n ti Thac sy
Nguyn in
h Dng , ngi a oc va cho nhng nhn xet , gp y qui bau cho phn vit
v h ma khoa cng khai d a trn cac ng cong Elliptic. Xin gi li cam n su s c ti
Thac sy Pham Tun at , ngi a hiu inh mt cach ky cang va cho r t nhi u nhn xet
c gia tri cho ban thao cua cun sach nay . Cu i cung xin gi li cam n ti Ban chu
nhim khoa Cng ngh Thng tin, c bit la Ti n sy L Qu c inh
chu nhim khoa, a
lun tao iu kin t t nh t, gip cu n sach nay c th hoan thanh.
Hi phng, thng 12 nm 2007
Tc gi
Nguyn Hu Tun
Ph n cng
Ph n m m
D liu
Con ngi
Pha hoai: ke th pha hng thit bi phn cng hoc phn mm hoat ng trn h
th ng.
Sa i: Tai san cua h thng bi sa i trai phep . i u nay thng lam cho h
th ng khng lam ung chc nng cua no . Ch ng han nh thay i mt kh u ,
quy n ngi dung trong h th ng lam ho khng th truy cp vao h th ng
lam vic.
Can thip : Tai san bi truy cp bi nhng ngi khng c thm quyn
truy n thng th c hin trn h th ng bi ngn chn, sa i.
. Cac
i u khi n thng qua cac chinh sach cua t chc : ban hanh cac qui inh
cua t
chc nh m am bao tin
h
an
toa
n
ba
o
m
t
cu
a
h
th
ng.
Trong mn hoc nay chung ta tp trung xem xet cac thut toan mt ma hoc nh la
mt phng tin c ban, chu yu am bao an toan cho h thng.
4. Mc tiu va nguyn t c chung cua an toan bao m t thng tin
Ba muc tiu cua an toan bao mt thng tin:
Tinh bi mt: Tai san cua h thng ch c truy cp bi nhng ngi c thm
quy n. Cac loai truy cp gm c : oc (reading), xem (viewing), in n (printing), s dung
chng trinh, hoc hi u bi t v s t n tai cua mt i t ng trong t chc .Tinh bi mt c
th c bao v nh vic ki m soat truy cp (theo nhi u ki u khac nhau ) hoc nh cac
thut toan ma ha d liu. Ki m soat truy cp chi co th c th c hin vi cac h th ng
ph n cng vt ly . Cn i vi cac d liu cng cng th thng phng phap hiu qua la
cac phng phap cua mt ma hoc.
Tinh toan ven d liu: tai san cua h thng ch c thay i bi nhng ngi
c thm quyn.
quy n.
Tinh sn dng: tai san lun sn sang c s dung bi nhng ngi c thm
Vic th m i n
h v bao mt pha i la kho va c n tinh ti t t ca cac tinh hu ng
kha nng tn cng c th c thc hin.
Tai san c bao v cho ti khi ht gia tri s dung hoc ht y ngha bi mt.
5. M t ma hoc (cryptology)
Mt ma hoc bao gm hai lnh vc
(cryptanalysis-codebreaking) trong o:
: ma ha
(cryptography) va tham ma
Tham ma: Nghin cu cac phng phap pha ma hoc tao ma gia . San phm
cua lnh vc nay la cac phng phap tham ma , cac phng phap gia mao ch ky , cac
phng phap t n cng cac ham bm va cac giao thc mt ma.
Trong gii han cua mn hoc nay chung ta chu y u tp trung vao tim hi u cac v n
ma ha vi cac h ma mt, cac ham bm, cac h ch ky in t, cac giao thc mt ma.
Ma hoa (cryptography) l mt ngnh khoa hc ca cc phng php truyn tin bo
mt. Trong ting Hy Lp, Crypto (krypte) co ngha l che du hay o ln, cn Graphy
(grafik) co ngha l t. [3]
Ngi ta quan nim rng : nhng t, nhng ky t cua ban vn ban gc c th hiu
c s cu thanh nn ban r (P-Plaintext), thng thi y la cac oan vn ban trong
mt ngn ng nao o ; cn nhng t, nhng ky t dang bi mt khng th hiu c th
c goi la ban ma (C-Ciphertext).
C 2 phng thc ma hoa c ban: thay th va hoan vi:
Phng thc ma hoa hoan vi la phng thc ma hoa ma cac t ma cua ban
r c sp xp lai theo mt phng thc nht inh.
Cac h ma mt thng s dung k t h p ca hai ky thut nay.
6. Khi nim h ma mt (CryptoSystem)
Mt h ma mt l b 5 (P, C, K, E, D) tho man cc iu kin sau:
1)
2)
3)
4)
i vi mi k K, co mt quy tc ma ho ek E v mt quy tc gii ma
tng ng dk D. Vi mi ek: P C v dk: C P l nhng hm m dk(ek(x)) = x cho mi
bn r x P. Hm gii ma dk chinh l nh x ngc ca hm ma hoa ek [5]
K1
Sender
K2
Encrypt
Insecured
Channel
Decrypt
Receiver
Enemy
Hnh 1.1: M hnh c ban cua truyn tin bao mt
y la m hnh c ban cua truyn tin bao mt. Khac vi truyn tin thng thng, c
cac yu t mi c thm vao nh khai nim ke ich (E-Enemy), cc kho m ho v
giai ma K am bao tin
h bao mt cua thng tin cn truyn i.
Trong m hinh nay ngi gi S (Sender) mun gi mt thng ip X (Message la
mt ban ro ) ti ngi nhn R (Receiver) qua mt knh truyn khng an toan (Insecured
Channel), ke ich E (Enemy) c th nghe trm, hay sa i thng tin X. V vy, S s dung
phep bin i, tc ma hoa (E-Encryption) ln thng tin X dang oc c (Plaintext)
tao ra mt oan vn ban c m ho Y (C-Ciphertext) khng th hi u c theo mt
quy lut thng thng s dung mt thng tin bi mt c goi la khoa K1 (Key), kho K1
chinh la thng s iu khin cho phep bin i t ban ro X sang ban m Y (ch cc bn
tham gia truyn tin S va R mi c th bi t khoa nay). Giai ma (D-Decryption) l qu trnh
ngc lai cho phep ngi nhn thu c thng tin X ban u t oan ma hoa Y s dung
kha giai ma K 2 (ch y la kha giai ma va kha ma ha c th khac nhau hoc la mt ty
thuc vao h ma s dung).
Cac phep bin i c s dung trong m hnh truyn tin trn thuc v mt h ma
mt (Cryptosytem) nao .
Cac thut toan ma ha dng (RC4 ) coi ban ro la mt lu ng bit, byte lin tuc.
dng.
10
H(M) = log2n
1.2. T c cua ngn ng. (Rate of Language)
i vi mt ngn ng, t c th c t (actual rate) cua ngn ng la:
r = H(M)/N
trong trng h p nay N la dai cua thng bao va M la mt thng ip c dai N.
T c cua ti ng Anh binh thng la 0.28 do o mi ch cai ti ng Anh co 1.3 bit ngha.
T c tuyt i (absolute rate) cua mt ngn ng la s bits ln nh t c n thi t
ma ha cac ky t cua ngn ng . N u co L ky t t rong mt ngn ng , th tc tuyt
i la :
R = log2L
y la s Entropy ln nh t cua mi ky t n le . i vi ting Anh gm 26 ch cai,
t c tuyt i la log 226 = 4.7bits/ch cai. S khng c iu g la ngac nhin i vi t t
ca moi ngi rng thc t tc cua ting Anh nh hn nhi u so vi t c tuyt i , va
chng ta vn thy rng i vi mt thng bao bng ting Anh c th loai b mt s
ch
cai nhng ngi oc vn c th hi u c . Hin t ng nay c goi la d tha cua
ngn ng (Redundancy) t nhin.
Khng chi i vi ti ng Anh ma vi h u h t cac ngn ng t nhin , do c u truc cua
ngn ng , do vic s dung ngn ng dn ti co m t s ch cai c s dung vi tn
su t khng ng u hoc chi co th xu t hin vi mt c u truc nao o lam cho chung ta
vn co th oan c nghia cua cac thng bao n u loai bo cac ch cai nay.
d tha (Redundancy) cua mt ngn ng ky hiu la D va D
ti ng Anh:
= R r. i vi
11
12
. T t ca
thut toan thuc lp P n inh
co thi gian gii han la P _time, i u nay cho bi t chung
s thc hin trong thi gian a thc , tng ng vi phc tap a thc cua kich
thc input.
Thut t oan ma bc tip theo vic tinh toan phai la chon giai phap t nhng
gii han gia tri cua hoat ng goi la khng n inh
. Ly thuyt phc tap s du ng cac
may c bit m ta c im bng cach a ra kt lun bi cac chun
. My Turing la
mt may c bit , may hoat ng trong thi gian ri rac , tai mt thi im n nm trong
khoang trang thai y u s cua tt ca cac trang thai c th la hu han . Chng ta c th
inh
nghia ham phc tap thi gian k t h p vi may Turing A.
fA(n) = max{m/A k t thuc sau m bc vi u vao w = n3 }
y c hng ta gia s rng A la trang thai kt thc i vi tt ca cac u vao , v n
s tr nn kh khn hn nu cac trang thai khng n m trong P . May Turing k hng
n inh
hoat ng vi thut toan NP. May Turing khng n inh c th c mt vai trang
13
chinh n nh c
Cac thut toan thuc lp NP la khng n inh va c th tinh toan trn may Turing
khng n inh
trong thi gian P.
Tuy nhin khng phai thut toan ma ha cang c phc tap ln th h ma mt s
dung thut toan s cang an toan theo nh phat bi u cua lut Kierchoff.
Vy co th anh gia an toan cua mt h ma mt nh th nao ? V n nay a
c Claude Shannon tra li vi cac khai nim v an toan cu a cac h ma mt trong
mt bai bao c tiu Ly thuyt thng tin cua cac h thng bao mt (1949).
2.1. an toan tinh ton
inh nghia:
Mt h mt c gi l an ton v mt tinh ton nu co mt thut ton tt nht
ph no th cn it nht N php ton, vi N l mt s rt ln no o. [10]
Tuy nhin trong thc t, khng c mt h mt nao chng t la an toan theo inh
ngha trn. V vy, trn thc t, ngi ta goi h mt la an toan tinh toan nu c mt
thut toan pha n nhng i hi thi gian ln n mc khng chp nhn c (thut
toan c phc tap ham mu hoc thuc lp cac bai toan c phc tap NP).
Mt cach tip cn khac v an toan tinh toan la quy n v mt bai toan a c
nghin cu ky va c coi la kh. Vi du nh bai toan phn tich ra tha s nguyn t cua
mt s n cho trc c coi la bai toan kh vi n ln, v vy ta c th coi mt h mt
da trn bai toan phn tich ra tha s nguyn t la an toan (tt nhin y ch la an
toan da vao chng minh mt bai toan khac ch khng phai chng minh hoan chnh v
an toan cua h mt).
2.2. an toan khng iu kin
inh nghia 1:
Mt h mt c coi l an ton khng iu kin khi no khng th b ph ngay c vi
kh nng tinh ton khng hn ch. [10]
R rang la an toan khng iu kin khng th nghin cu theo quan im
phc tap tinh toan v thi gian tinh toan la khng han ch. V vy, y ly thuyt xac sut
s c cp nghin cu v an toan khng iu kin.
inh nghia 2:
Gia s bin X va Y la cac bin ngu nhin. Ky hiu xac sut X nhn gia tri x la
p(x) va Y nhn gia tri y la p(y). Xac sut ng thi p(x, y) la xac sut ng thi X
nhn gia tri x va Y nhn gia tri y. Xac sut c iu kin p(x/y) la xac sut X nhn gia tri
14
p( x / y )
p ( x) p ( y / x)
p( y )
H qu:
X, Y l bin c lp khi v ch khi p(x/y) = p(x) vi mi x, y. [5]
y, ta gia thit rng mt khoa cu th ch c dng cho mt ban ma. Ky hiu
xac sut tin nghim ban r xut hin la pp(x). Cung gia thit rng khoa K c chon
theo mt phn b xac sut nao (thng thng khoa K c chon ngu nhin nn cac
khoa s ng kha nng). Ky hiu xac sut khoa K c chon la pk(K).
Gia thit rng khoa K va ban r x la cac bin c lp. Hai phn b xac sut trn P
v K s tao ra mt phn b xac sut trn C . Ky hiu C(K) la tp cac ban ma c th nu
K l kho.
C (K) = { eK(x): x P }
Khi vi mi y C, ta c:
pC ( y)
K , yC ( K )
pK ( K ). p p (d K ( y ))
pC ( y / x)
K
K , xd K ( y )
(K )
By gi ta c th tinh xac sut c iu kin pP(x/y) la xac sut x la ban r khi ban
ma la y theo inh ly Bayes:
p ( x) pC ( y / x)
pP ( x / y ) P
pC ( y )
pP ( x )
K , yC ( K )
K , xdK ( y )
pK ( K )
pK ( K ) pP (d K ( y ))
15
(S1S2)(S1S2) = S1(S2S1)S2
= S1(S1S2)S2
= (S1S1)(S2S2)
= (S1S2)
Vy nu mun (S1S2) khng luy ng th cn phai c S1 va S2 khng giao hoan.
iu nay c th d dang thc hin bng cach ly tich cua mt h mt theo kiu thay th
va mt h mt theo kiu hoan vi. y la ky thut c dng thit k cac h ma hin
ai nh ma DES.
16
17
18
( N ) ( p 1 1) p1 1 ( p 2 1) p2 1...( p k 1) pk
1
Lin quan ti khai nim v ham phi le chng ta c inh ly le phat biu nh sau:
a Z*N = ZN {0} va GCD(a, N) = 1 ta co
a ( N )
a ( N ) 1(mod N ) . C ngha la
10
11
13
16
17
19
20
Ord(a)
19
10
11
i mod 13
10
12
11
21
x ( N / di ) yi xi (mod N )
i 1
trong o yi la cac nghim cua cac phng trnh ng d (N/di) yi 1(mod di).
Di y la oan ma inh
ly ph n d trung hoa trong ngn ng C :
int chinese_remainder(int r, int *m, int *u)
{
int i;
int modulus;
int n;
modulus = 1;
for ( i=0; i<r:++i )
modulus *=m[i];
n=0;
for ( i=0; i<r:++i )
22
va thut toan xac sut. Cac thut toan tt inh cho chng ta bit chinh xac cu tr a li mt
s nguyn co phai la mt s nguyn t hay khng con mt thut toan
xac sut cho bi t
xac sut cua mt s nguyn la mt s nguyn t la bao nhiu . Trong ph n nay se trinh
bay mt s thut toan kim tra s nguyn t ph bi n.
4.1. Mt s ky hi u toan hoc
4.1.1. Ky hiu Lagrng (Legendre Symbol)
Ky hiu L(a,p) c inh
nghia vi a la mt s nguyn va p la mt s nguyn t ln
hn 2. N nhn ba gia tri 0, 1, -1 :
L(a,p) = 0 n u a chia h t cho p.
L(a,p) = 1 n u a QN (a la thng d bc 2 modulo p).
L(a,p) = -1 n u a Q N (a khng la thng d bc 2 modulo p).
Mt phng phap d dang tinh toan ra L(a,p) la :
L(a,p) = a (p-1)/2 mod p
23
N u n khn g phai la s nguyn t thi Jacobi (a,n) s c tinh theo cng thc
sau:
J(1,k) = 1
2.
3.
4.
5.
N u GCD(a,b)=1 :
a.
b.
24
. Thut
2.
N u c s chung ln nh t gcd(a,p) 1 th p la hp s.
3.
4.
5.
6.
Lp lai cac bc nay n l n , mi l n vi mt gia tri ngu nhin khac nhau cua a .
Ph n d cua h p s vi n phep th la khng qua 2n.
Th c t khi th c hin chng trin
h, thut toan chay vi t c kha nhanh.
25
2.
3.
4.
5.
2.
3.
4. Tinh ai(n-1)/2 (mod n) cho t t ca ai = a1. . . a100 . Dng lai n u ban tim
th y a i sao
cho phep ki m tra la sai.
5.
5. Bai tp
Bai tp 2.1: hy tnh 1753 mod 29, hi cn dng it nht la bao nhiu phep nhn
tm ra kt qua.
Bai tp 2.2: Tnh 876611 mod 899.
S dung mt trong cac ngn ng lp trin
h C, C++, Java hoc C# lam cac bai tp sau:
Bai tp 2.3: Vi t chng trinh cai t thut toan tim ph n t nghich
ao.
Bai tp 2.4: Vi t chng trinh cai t thut toan luy tha nhanh.
Bai tp 2.5: Vi t chng trin
h giai h phng trin
h ng d bc nh t hai n.
Bai tp 2.6: Vi t chng trin
h cai t thut toan ki m tra s nguyn t vi input la
mt s nguyn nh hn 2000000000.
26
27
28
...
...
...
11
12
13
...
22
23
23
25
G H I
K L
M N O P Q R S T
U V W X Y Z
G H I
K L
M N O P Q R S T
U V W X Y Z
A B C
0 ti N 1 va tin
Ma ha:
EK(x) = (a*x + b) mod N. Ky t ban r c s th t la x s c chuyn thanh ky t
c s th t la (a*x+b) mod N trong bang ch cai.
giai ma ta c n tim a -1 (do (a, N) = 1 nn lun tim c ) va tin hanh cng thc
giai ma sau:
29
30
3
2
K =
3
2
Vi P1 = (7 4) ta co C1 = P1 * K = 7 4
3
= 3 15 = D P
5
3
2
Vi P2 = (11 15) ta co C2 = P2 * K = 11 15
3
= 11 4 = L E
5
k11
k 21
Vi K =
26
k12
va det(K) = (k11*k22 k21*k12) mod N la mt ph n t co ph n t
k 22
k 22 -k12
-k 21 k11
K-1 = det(K)-1*
31
23
5
=
3
24
(K)-1 = 3. Vy K -1 = 3 *
15 17
.
20 9
Qua trnh giai ma tin hanh ging nh qua trnh ma ha vi kha ma ha thay bng
kha giai ma.
15 17
= 3 15 = HE.
20 9
mu hinh hoc
35 theo hang nh
sau:
Ct
Ban r
32
2, 4, 1, 3, 5 th s c ban ma
i ch ct: u tin i ch cac ky t trong ban r thanh dang hnh ch nht theo
ct, sau o cac ct c s p x p lai va cac ch cai c l y ra theo hang ngang
Vi du: ban r gc la NGAY MAI BAT DAU CHIEN DICH XYZ c vit di dang
ma trn 55 theo ct nh sau:
Ct
Ban r
Vi tri hoan vi
Ma hoa
33
Kch thc khi phai u ln chng lai phng an tn cng bng phng
phap thng k. Tuy nhin iu nay s dn n thi gian ma hoa s tng ln.
34
Khng gian khoa, tc chiu dai khoa phai u ln chng lai phng an tn
cng bng vet can. Tuy nhin khoa phai u ngn vic tao khoa, phn phi va
lu tr khoa c d dang.
S khuch tan (diffusion): Mi bit cua ban r va kha phai anh hng ln cang
nhiu bit cua ban ma cang tt.
35
la ky hiu cua phep tuyn loai tr (XOR) cua hai xu bit theo modulo 2.
E la hoan vi m rng anh xa R i-1 t 32 bit thanh 48 bit (i khi t t ca cac bit se
c s dung hoc mt bit se c s dung hai l n).
P la hoan vi c inh
khac cua 32 bit.
Mt hoan vi bit khi u (IP) c s dung cho vong u tin ; sau vong cu i cu ng
na trai va phai se c i cho nhau va cu i cung xu k t qua se c hoan vi bit l n
cu i bi hoan vi ng c cua IP (IP-1).
Qua trnh giai ma din ra tng t nhng vi cac khoa con ng dung vao cac vng
trong theo th t ng c lai.
C th hnh dung n gian la phn bn phai trong mi vng (sau khi m rng input
32 bit thanh 8 ky t 6 bit xu 48 bit) s thc hin mt tinh toan thay th phu thuc khoa
trn mi mt ky t trong xu 48 bit, va sau s dung mt phep chuyn bit c inh
phn b lai cac bit cua cac ky t k t qua hinh thanh nn output 32 bit.
Cac khoa con Ki (cha 48 bit cua K) c tin
h b ng cach s dung cac bang PC1 va
PC2 (Permutation Choice 1 va 2). Trc tin 8 bit (k8, k16,,k64) cua K bi b i (ap dung
PC1). 56 bit con lai c hoan vi va gan cho hai bi n 28 bit C va D , va sau trong 16
vng lp ca C va D s c quay 1 hoc 2 bit, va cac kha con 48 bit Ki c chon t k t
qua cua vic ghep hai xu vi nhau.
Nh vy, ta c th m ta toan b thut toan sinh ma DES di dang cng thc nh
sau:
Sinh khoa con. Tinh cac kha con theo thut toan sinh kha con bn di
Tinh cac Li va Ri theo cac cng thc (1) va (2), vic tinh
f(Ri-1, Ki) = P( S( E(Ri-1) Ki ) ) c th c hin nh sau:
a) M rng R i-1 = r1r2r32 t 32 bit thanh 48 bit b ng cach s dung hoan vi m
rng E.
T E(Ri-1). (V th T = r32r1r2r32r1)
b) T T Ki. Bi u din T nh la cac xu g m 8 ky t 6 bit T = (B1,,B8)
c) T (S1(B1), S2(B2),,S8(B8)). Trong o Si(Bi) anh xa b 1b2b6 thanh cac xu 4
bit cua ph n t thuc hang r va ct c cua cac bang S i (S box) trong o r = 2 * b1
+ b6 va c = b2b3b4b5 la mt s nhi phn t 0 ti 15. Ch ng han S 1(011011) s
cho r = 1 va c = 13 va kt qua la 5 bi u din di dang nhi phn la 0101.
d) T P(T) trong o P la hoan vi c inh
hoan vi
sinh ra t16t7t25.
4.
5.
37
Bn r (64 bit)
IP
L0(32 bit)
R0(32 bit)
K1 (48 bit)
f
R1 = L0 f(R0, K1)
L1 = R0
Ki (48 bit)
f
Li = Ri-1
L15 = R14
R16 = L15
IP-1
Bn m (64 bit)
Hnh 3.2: S ma hoa DES
38
50
42
34
26
18
10
60
52
44
36
28
20
12
62
54
46
38
30
22
14
64
56
48
40
32
24
16
57
49
41
33
25
17
59
51
43
35
27
19
11
61
53
45
37
29
21
13
63
55
47
39
31
23
15
48
16
56
24
64
32
39
47
15
55
23
63
31
38
46
14
54
22
62
30
37
45
13
53
21
61
29
36
44
12
52
20
60
28
35
43
11
51
19
59
27
34
42
10
50
18
58
26
33
41
49
17
57
25
Li-1
Kho
Ri-1
Vng dch
Hm m
rng (E)
Vng dch
Trt t nn
(PC-2)
S-Box
P-Box
Hm f
Li
Ri
Kho
Kho K
39
40
PC-1
C0 (28 bit)
D0 (28 bit)
LS1
LS1
C1 (28 bit)
D1(28 bit)
LS2
PC-2
K1 (48 bit)
PC-2
Ki (48 bit)
PC-2
LS2
Ci (28 bit)
Di (28 bit)
LS1
LS1
49
41
33
25
17
58
50
42
34
26
18
10
59
51
43
35
27
19
11
60
52
44
36
63
55
47
39
31
23
15
62
54
46
38
30
22
14
61
53
45
37
29
21
13
28
20
12
10
11
12
13
14
15
16
41
Bang 3.9: Bang dich bit tai cac vng lp cua DES
Sau khi dich vng, mt bang chon 48 bit c s dung. V cach hoan vi nay cua
cac bit c chon nh mt t hp con cua cac bit nn c goi la hoan vi nen hay trt
t nen.
Bang trt t nen(PC-2):
14
17
11
24
28
15
21
10
23
19
12
26
16
27
20
13
41
52
31
37
47
55
30
40
51
45
33
48
44
49
39
56
34
53
46
42
50
36
29
32
42
Hm m rng (E)
S1
S2
S3
S4
S5
S6
S7
S8
84 bit
32 bit
P
32 bit
Ri (32 bit)
Hnh 3.5: S ham f
2.2.5. Hm (nh xa) m rng (E)
Ham m rng (E) s tng dai cua Ri t 32 bit ln 48 bit bng cach thay i cac
th t cua cac bit cung nh lp lai cac bit. Vic thc hin nay nhm hai muc ich:
Lam dai cua Ri cng c vi khoa K thc hin vic cng modulo XOR.
Cho kt qua dai hn c th c nen trong sut qua trnh thay th.
Tuy nhin, ca hai muc ich nay u nhm mt muc tiu chinh la bao mt d liu.
Bng cach cho phep 1 bit c th chn vao hai vi tri thay th, s phu thuc cua cac bit u
ra vi cac bit u vao s trai rng ra. DES c thit k vi iu kin la mi bit cua ban
ma phu thuc vao mi bit cua ban r va khoa.
S ham m rng:
43
12
54
56
98
10 11 12
13 14 15 16
32
32
10
11
12
13
12
13
14
15
16
17
16
17
18
19
20
21
20
21
22
23
24
25
24
25
26
27
28
29
28
29
30
31
32
Khng c hp S nao la ham Affine hay tuyn tinh i vi cac u vao cua n.
44
Cac bit vao lun phu thuc khng tuyn tinh vi cac bit ra.
13 1
15
15 12
15 11
10
12
4 14
13
10
12 11
14 8 13
11 15 12
10 5
14 10
11
6 13
Bang 3.12: Hp S1
15
14
11
13 12 0
13
15
14 12 0
10
14
11 10
13
8 12
13
10
15
11 6
10
9 11
15
12
5 14
11
Bang 3.13: Hp S2
10
14 6
3 15 5
13 12
13
14 12 11 15
13
8 15 3
11
12 15 10 14
10 13
15 14
11
12
6 10
Bang 3.14: Hp S3
7
13 14 3
10
11 12 4 15
13
15
12
11 5
10 14 9
45
0 12 11
13 15
14
15
6 10
13
11 12
2 14
15 13
0 14 9
Bang 3.15: Hp S4
2
12
10 11
14 11
2 12 4
13
15 10
1 11 10 13
15
12
0 14
11
12 7
13
15
10
5 11
14
Bang 3.16: Hp S5
12
10 15
10 15 9
13
14
12
13 14
11 3
14 15 5
12
10
13 11 6
2 12 9
15 10 11 14
8 13
Bang 3.17: Hp S6
4
11
14 15
13
12
10
13
11
10 14
12
15
11 13 12
14 10 15
11 13
10
15 14
12
Bang 3.18: Hp S7
13
15 11
10
14
12
15 13
10
12
11
14
11
12 14
10 13 15
14
10
13 15 12
11
Bang 3.19: Hp S8
Vi d:
Gia s u vao cua hp S6 la chui bit 110011 t 31 n 36 . Bit u tin va bit cui
cng kt hp lai thanh 11 tng ng vi hang 3 cua hp S6. Bn bit gia c gia tri 1001,
tng ng vi ct 9. Nh vy, gia tri nhn c la 14 (s m cua ct, hang bt u t
0) va gia tri 1110 c thay th cho gia tri 110110 u ra.
2.2.7. Hp P-Box
Vic hoan vi nay mang tinh n anh, ngha la mt bit u vao s cho mt bit u
ra, khng bit nao c s dung hai ln hay bi b qua. Hp P-Box thc cht ch lam chc
nng sp xp n thun theo bang sau:
46
20
21
29
12
28
17
15
23
26
18
31
10
24
14
32
27
19
13
30
22
11
25
L0 = 11001100000000001100110011111111
L0 = R0 = 11110000101010101111000010101010
011110100001010101010101011110100001010101010101
K1
000110110000001011101111111111000111000001110010
E(R0) K1
011000010001011110111010100001100110010100100111
u ra S-Box
01011100100000101011010110010111
f(R0,K1)
00100011010010101010100110111011
L2=R1
11101111010010100110010101000100
E(R1)
011101011110101001010100001100001010101000001001
K2
011110011010111011011001110110111100100111100101
E(R1) K2
000011000100010010001101111010110110001111101100
u ra S-Box
11111000110100000011101010101110
f(R1,K2)
00111100101010111000011110100011
L3=R2
11001100000000010111011100001001
47
111001011000000000000010101110101110100001010011
K3
010101011111110010001010010000101100111110011001
E(R2) K3
101100000111110010001000111110000010011111001010
u ra S-Box
00100111000100001110000101101111
f(R2,K3)
01001101000101100110111010110000
L4=R3
10100010010111000000101111110100
E(R3)
010100000100001011111000000001010111111110101001
K4
011100101010110111010110110110110011010100011101
E(R3) K4
001000101110111100101110110111100100101010110100
u ra S-Box
00100001111011011001111100111010
f(R3,K4)
10111011001000110111011101001100
L5=R4
01110111001000100000000001000101
E(R4)
101110101110100100000100000000000000001000001010
K5
011111001110110000000111111010110101001110101000
E(R4) K5
110001100000010100000011111010110101000110100010
u ra S-Box
01010000110010000011000111101011
f(R4,K5)
00101000000100111010110111000011
L6=R5
10001010010011111010011000110111
E(R5)
110001010100001001011111110100001100000110101111
K6
011000111010010100111110010100000111101100101111
E(R5) K6
101001101110011101100001100000001011101010000000
u ra S-Box
01000001111100110100110000111101
F(R5,K6)
10011110010001011100110100101100
L7=R6
11101001011001111100110101101001
E(R6)
111101010010101100001111111001011010101101010011
K7
111011001000010010110111111101100001100010111100
E(R6) K7
000110011010111110111000000100111011001111101111
u ra S-Box
00010000011101010100000010101101
F(R6,K7)
10001100000001010001110000100111
48
00000110010010101011101000010000
E(R7)
000000001100001001010101010111110100000010100000
K8
111101111000101000111010110000010011101111111011
E(R7) K8
111101110100100001101111100111100111101101011011
u ra S-Box
01101100000110000111110010101110
F(R7,K8)
00111100000011101000011011111001
L9=R8
11010101011010010100101110010000
E(R8)
011010101010101101010010101001010111110010100001
K9
111000001101101111101011111011011110011110000001
E(R8) K9
100010100111000010111001010010001001101100100000
u ra S-Box
00010001000011000101011101110111
F(R8,K9)
00100010001101100111110001101010
L10=R9
00100100011111001100011001111010
E(R9)
000100001000001111111001011000001100001111110100
K10
101100011111001101000111101110100100011001001111
E(R9) K10
101000010111000010111110110110101000010110111011
u ra S-Box
11011010000001000101001001110101
F(R9,K10)
01100010101111001001110000100010
L11=R10
10110111110101011101011110110010
E(R10)
010110101111111010101011111010101111110110100101
K11
001000010101111111010011110111101101001110000110
E(R10) K11
011110111010000101111000001101000010111000100011
u ra S-Box
01110011000001011101000100000001
f(R10,K11)
11100001000001001111101000000010
L12=R11
11000101011110000011110001111000
E(R11)
011000001010101111110000000111111000001111110001
K12
011101010111000111110101100101000110011111101001
E(R11) K12
000101011101101000000101100010111110010000011000
49
01111011100010110010011000110101
f(R11,K12)
11000010011010001100111111101010
L13=R12
01110101101111010001100001011000
E(R12)
001110101011110111111010100011110000001011110000
K13
100101111100010111010001111110101011101001000001
E(R12) K13
101011010111100000101011011101011011100010110001
u ra S-Box
10011010110100011000101101001111
f(R12,K13)
11011101101110110010100100100010
L14=R13
00011000110000110001010101011010
E(R13)
000011110001011000000110100010101010101011110100
K14
010111110100001110110111111100101110011100111010
E(R13) K14
010100000101010110110001011110000100110111001110
u ra S-Box
01100100011110011001101011110001
f(R13,K14)
10110111001100011000111001010101
L15=R14
11000010100011001001011000001101
E(R14)
111000000101010001011001010010101100000001011011
K15
101111111001000110001101001111010011111100001010
E(R14) K15
010111111100010111010100011101111111111101010001
u ra S-Box
10110010111010001000110100111100
f(R14,K15)
01011011100000010010011101101110
L16=R15
01000011010000100011001000110100
E(R15)
001000000110101000000100000110100100000110101000
K16
110010110011110110001011000011100001011111110101
E(R15) K16
111010110101011110001111000101000101011001011101
u ra S-Box
10100111100000110010010000101001
f(R15,K16)
11001000110000000100111110011000
R16
00001010010011001101100110010101
50
0101
0101
C0
0101
D0
{0}28 {0}28
1F1F
E0E0
E0E0
F1F1
C0
D0
C0
D0
{01}14 {01}14 01FE 01FE 01FE 01FE FE01 FE01 FE01 FE01 {10}14 {10}14
{01}14 {10}14 1FE0 1FE0 0EF1 0EF1 E01F E01F F10E F10E {10}14 {01}14
{01}14 {0}28
01E0 01E0 01F1 01F1 E001 E001 F101 F101 {10}14 {0}28
{01}14 {1}28 1FFE 1FFE 0EFE 0EFE FE1F FE1F FE0E FE0E {10}14 {1}28
{0}28 {01}14 011F 011F 010E 010E 1F01 1F01 0E01 0E01
{0}28 {10}14
{1}28 {01}14 E0FE E0FE F1FE F1FE FEE0 FEE0 FEF1 FEF1 {1}28 {10}14
Bang 3.23: Cac kha na yu cua DES
51
52
53
m ta thut
toan:
AddRoundKey()
InvMixColumns()
InvShiftRows()
InvSubBytes()
K
MixColumns()
Nb
Nk
Nr
Rcon[]
RotWord()
ShiftRows()
SubBytes()
SubWord()
XOR
55
b x
i 0
thun tin , cac gia tri Byte c biu din s dung cac ky hiu cua h Hexa ,
s dung 4 bit cho mt ky t va hai ky t cho mt Byte nh bang sau:
Bit Ky t
Bit Ky t
Bit Ky t
Bit Ky t
0000 0
0100 4
1000 8
1100 c
0001 1
0101 5
1001 9
1101 d
0010 2
0110 6
1010 a
1110 e
0011 3
0111 7
1011 b
1111
f
Bang 3.25: Bang biu din cac xu 4 bit
Khi o cac Byte (8 bit) s c biu din bng hai ky t , ch ng han {01100011}
s c biu din thanh {63}.
2.5.3.4. Trang thi (State)
Cac thao tac bn trong cua AES c thc hin trn mt mang
2 chi u cac byte
c goi la trang thai . Mt trang thai g m b n hang cac byte , mi hang co Nb byte trong
o Nb la kich thc cua kh i chia cho 32. Mang trang thai ky hiu la s trong mi byte
cua mang c 2 ch s hang r va ct c (0 r, c < 4).
Tai thi im bt u input cua thut toan mang cac byte in 0, in1, , in15 c
copy vao mang trang thai theo qui t c c minh hoa b ng hnh v:
input bytes
in0 in4 in8 in12
in1 in5 in9 in13
in2 in6 in10 in14
in3 in7 in11 in15
State array
S0,0 S0,1 S0,2 S0,3
S1,0 S1,1 S1,2 S1,3
S2,0 S2,1 S2,2 S2,3
S3,0 S3,1 S3,2 S3,3
out0
out1
out2
out3
output bytes
out4 out8 out12
out5 out9 out13
out6 out10 out14
out7 out11 out15
56
S l n lp (Nr)
10
12
14
57
58
Key
w[0, 3]
Plaintext
Add round key
Inverse sub bytes
Substitute bytes
Expand key
Inverse shift row
Round 10
Plaintext
Mix Columns
w[4, 7]
Round 9
Round 1
Shift rows
Shift rows
Mix Columns
Add round key
Round 10
Substitute bytes
Shift rows
Add round key
Round 9
Substitute bytes
w[40, 43]
Plaintext
(a) M ha
Ciphertext
(b) Giai ma
59
bi' bi b(i 4)mod8 b(i 5)mod8 b(i 6)mod8 b(i 7)mod8 ci trong o 0 i <8 la bit th i
cua byte b tng ng va ci la bit th i cua byte c vi gia tri {63} hay {01100011}.
Cac phn t bin i affine cua
nh sau:
b0' 1
'
b1 1
b2' 1
'
b3 1
b ' 1
4'
b5 0
b ' 0
6
b7' 0
0
1
1
1
1
1
0
0
0
0
1
1
1
1
1
0
0
0
0
1
1
1
1
1
1
0
0
0
1
1
1
1
1
1
0
0
0
1
1
1
1 b0 1
1 b1 1
1 b2 0
1 b3 0
0 b4 0
0 b5 1
0 b6 1
1 b7 0
1
1
1
0
0
0
1
1
Hnh sau minh hoa kt qua cua vic ap dung ham bin i SubBytes () i vi mang
trang thai:
S0,0
S1,0
S0,1
S r ,c
S-Box
'
S0,0
S0,2
S0,3
S1,2
S1,3
'
S1,0
'
2,0
S 2,0
S 2,1
S 2,2
S 2,3
S3,0
S3,1
S3,2
S3,3
'
S3,0
'
S0,1
'
S0,2
'
S0,3
' S1,2
r ,c
'
'
S1,3
'
2,1
'
S 2,2
'
S 2,3
'
S3,1
'
S3,2
'
S3,3
S
S
60
S0,0
S0,1
S0,2
S0,3
S0,0
S0,1
S0,2
S0,3
S0,0
S0,1
S0,2
S0,3
S0,0
S0,1
S0,2
S0,3
S1,0
S1,1
S1,2
S1,3
S1,1
S1,2
S1,3
S1,0
S 2,0
S 2,1
S 2,2
S 2,3
S 2,2
S 2,3
S 2,0
S2,31
S3,0
S3,1
S3,2
S3,3
S3,3
S3,0
S3,1
S3,2
61
S0,' c 02
'
S1,c 01
S2,' c 01
'
S3,c 03
03
02
01
01
01
03
02
01
01 S0,c
01 S1,c
03 S2,c
02 S3,c
vi moi 0 c < Nb = 4.
K t qua la bn byte trong mi ct s c thay th theo cng thc sau:
62
s0,' c , s1,' c , s2,' c , s3,' c s0,c , s1,c , s2,c , s3,c wround *Nb c 0 c Nb 4
trong o [wi] la cac word cua kha c m ta trong phn 5.2 va round la ln lp
tng ng vi qui c 0 round Nr. Trong thut toan ma hoa phep cng khoa vong
khi tao xay ra vi round = 0 trc khi cac vong lp cua thut toan c th c hin . Ham
AddRoundKey() c th c hin trong thut toan ma hoa khi 1 round Nr.
Vic th c hin cua ham nay co th minh hoa qua hinh ve tring o l
ia chi byte trong cac word cua day khoa c m ta trong ph n 3.1.
= round * Nb.
63
65
S0,' c 0e 0b 0d 09 S0,c
'
S1,c 09 0e 0b 0d S1,c
S2,' c 0d 09 0e 0b S2,c
'
S3,c 0b 0d 09 0e S3,c
trong o 0 c < Nb.
K t qua la b n byte trong mi ct se c thay th theo cng thc sau:
Round
Key)
InvMixColumns(state)
XOR
67
68
P1
P2
C1
C2
C
Pn
Ma ha
Cn
C
C1
C2
P1
P2
Cn
Giai ma
D
Pn
69
x1
x2
IV=y0
IV=y0
ek
ek
y1
y2
y1
y2
dk
dk
x1
x2
Gii m
M ho
Hnh 3.15: Ch CBC
70
x1
x2
M ho
IV=y0
ek
ek
y1
y2
y1
y2
Gii m
IV=y0
ek
ek
x1
x2
71
Bang ma cac ky t:
A B C
D E F
G H I
72
J
K
M
N O P
Q R S
T U V
W
X
Z
G i y: y la mt h ma thay th t ng hinh.
Bai tp 3.4: Hay tm thng ip bi mt n gi u trong oan vn ban sau:
Dear George,
3rd March
73
5 3
c th c s dung lam kha cho h ma trn khng giai
13 17
a) Ma trn A =
thch.
12 5
hay thc hin ma ha va giai ma vi xu S = HARD.
3 7
b) Cho A =
5 3
c s dung lam kha cho h ma trn. Hay tm tt ca cac
11 a
a) Ma trn A =
15 13
c s dung lam kha cho h ma trn. Hay tm tt ca
7 a
a) Ma trn A =
74
T n su t
Ch cai
T n su t
Ch cai
T n su t
8.2 %
0.2 %
6.3 %
1.5 %
08 %
9.1 %
2.8 %
4.0 %
2.8 %
4.3 %
2.4 %
1.0 %
12.7 %
6.7 %
2.3 %
2.2 %
7.5 %
0.1 %
2.0 %
1.9 %
2.0 %
6.1 %
0.1 %
0.1 %
7.0 %
6.0 %
75
ma DES vi cac c ch
Bai tp 3.28: Vi t chng trinh ma hoa va giai ma file theo h ma AES vi cac c ch ma
ha ECB, CBC.
76
77
Plaintext
A
Kha cng
khai (KP)
Kha b mt
(KS)
M ha
Plaintext
B
Gii m
Ciphertext
Hnh 4.1: M hinh s dung 1 cua cac h ma kha cng khai PKC
Ciphertext = E(KP,Plaintext) ,Plantext = D(KS, E(KP,Plaintext)) (1)
Plaintext
A
Kha b mt
(KS)
Kha cng
khai (KP)
M ha
Plaintext
Gii m
Signed Message
Hnh 4.2: M hinh s dung 2 cua cac h ma kha cng khai PKC
Ciphertext = D(KS, Plaintext), Plaintext = E(KP, D(KS, Plaintext)) (2)
M hin
(1) c s
h (2) c s dung c ho cac h ch ky in t con m hin
h
dung cho cac h ma mt . Cac h ma nay c goi la cac h ma kha cng khai
PKC
(Public Key Cryptosystems) hay cac h ma b t i xng
(Asymmetric Encryption
Scheme).
2. Nguyn t c c u tao cua cac h ma m t khoa cng khai
Cac h ma kha cng khai c xy dng da trn cac ham c goi la cac ham 1
phia hay ham 1 chi u (oneway functions).
Ham mt chiu f : X Y lam mt ham ma n u bi t x X ta co th d dang tin
h
c y = f(x). Nhng vi y b t ky Y vic tim x X sao cho y = f(x) la kh. C ngha la
-1
vic tim
ham ng c f la rt kh.
Vi du nu chng ta c cac s nguyn t P 1, P2, ..., Pn th vic tinh N = P1 * P2 * ... *
Pn la d nhng nu c N th vic phn tich ngc lai la mt bai toan kh vi N ln.
thun tin cac ham mt phia c s dung trong cac h ma PKC thng c
trang bi cac ca by (trapdoor) gip cho vic tim x thoa ma y = f(x) la d dang nu chng
ta bi t c ca by nay.
Ham cua by (trapdoor function): la mt ham mt chiu trong vic tinh f -1 la rt
nhanh khi chung ta bi t c ca by cua ham . Vi du vic tm nghim cua bai toan x p
bal 0/1 trong h ma x p bal Knapsack ma chung ta se hoc trong ph n ti p theo la mt
ham mt phia (vic ma hoa r t nhanh va d dang nhng tim vect nghim tng ng la
kh) nhng n u ta bi t ca b y (Vect x p bal siu tng A ) th vic giai bai toan lai rt
d dang.
3. Mt s h ma khoa cng khai
3.1. H ma knapsack
Bai toan xp ba l tng quat:
78
M=
x *A
i 1
Vecto A = (A1, A2, ..., AN) c goi la vecto x p bal con vect X = (x1, x2, , xN) la
vect nghim.
Mt trng h p ring ang quan tm cua bai toan x p ba l t ng quat la trng
h p ma xi {0, 1}. Khi o ta co bai toan x p ba l 0, 1.
Vecto x p ba l siu tng : Trong trng h p vecto (A1, A2, ..., AN) c s p lai
thanh (A1, A2, ..., AN) sao cho:
i ta co:
A
j i
'
j < Ai th vecto (A1, A2, ..., AN) c goi la vecto x p balo siu tng.
Khi (A1, A2, ..., AN) la mt vecto xp balo siu tng ta co ngay tinh ch t: M >= Ai i.
Do o vic giai bai toan x p ba l 0/1 tr nn d dang hn r t nhi u.
H ma knapsack do Merkle va Hellman a ra vao nm 1978.
Cch xy dng:
1.
Chon 1 vecto siu tng A = (a1, a2, ..., aN), chon 1 s M > 2 * aN, chon ngu
nhin 1 s u < M va (u, M) = 1
2.
3.
4.
Ma ha: C = (
a * x )mod M
i 1
0/1 vi A , C t o
79
tnh N = p*q
Vic thit lp kha nay c thc hin 1 ln khi mt ngi dng thit lp (thay th)
kha cng khai cua ho. Mu e thng la kha nh ( ma ha nhanh), va phai la nguyn t
cng nhau vi (N). Cac gia tri thng c chon cho e la 3 hoc 216 1 = 65535. Tuy
nhin khi e nho thi d se tng i ln . Khoa bi mt la (d, p, q). Cac s p va q thng c
gia tri xp x nhau nhng khng c bng nhau . Ch y la vic l mt trong cac thanh
phn trn s lam cho h ma ha tr thanh khng an toan.
S dung RSA
Ma ha ban r M = 26.
80
20
7.20e+03
40
3.11e+06
60
4.63e+08
80
3.72e+10
100
1.97e+12
120
7.69e+13
140
2.35e+15
160
5.92e+16
180
1.26e+18
200
2.36e+19
Bang 4.1: T c cua thut toan Brent-Pollard
Cac nghin cu v vn phn tich cac s nguyn ln hin nay tin trin rt chm,
cac tin b ln nht cung ch la cac cai tin v thut toan va c th ni rng tr khi c cac
t pha trong vic phn tich cac s 1024 bit, RSA la an toan trong thi im hin nay.
Cac nha mt ma hoc phat minh ra h ma RSA a a ra mt giai thng tri gia 100
$ vao nm 1977. la mt h ma vi s N c 129 ch s, thach thc nay a c pha.
Trn thc t cai t RSA cn phai thc hin cac thao tac modulo vi cac s 300
ch s (hay 1024 bit) ma hin nay cac may tinh mi ch thao tac vi cac s nguyn 64 bit,
iu nay dn n nhu cu cn cac th vin s hoc nhn chinh xac lam vic vi cac s
nguyn ln nay. Ngoai ra vic s dung RSA cn ti cac s nguyn t ln nn chng ta
cung phai c mt c s d liu cac s nguyn t.
tng tc cho RSA chng ta c th s dung mt s phng phap khac chng han
nh cai tin cac phep tinh toan nhn hai s ln hoc tng tc vic tm ban ma, ban r.
i vi phep nhn 2 s n bit thng thng chng ta cn thc hin O(n2) php tnh
bit. Thut toan nhn cac s nguyn Schonhage Strassen cho phep chng ta thc hin
phep nhn 2 s vi phc tap la O(n log n) vi cac bc nh sau:
Chia mi s nguyn thanh cac khi, s dung cac khi nay nh cac h s cua
mt a thc.
Tinh cac a thc nay tai mt s cac im thich hp, va nhn cac kt qua thu
c.
Ni suy cac kt qua nay hnh thanh cac h s cua a thc tich
81
Theo tin
h toan thi vi mt h ma RSA co N = p*q va e b t ky , s l ng ban ro se bi
l khi ma hoa se la (1 + (e-1, p-1))*(1 + (e-1, q-1)).
Trong s cac h ma khoa cng khai thi co le h ma RSA (cho ti thi i m hin tai )
la h ma c s dung rng rai nht.Tuy nhin do khi lam vic vi d liu u vao (thng
ip ma hoa , ban r) ln thi kh i l ng tinh toan r t ln nn trn th c t ngi ta hay
dng h ma nay ma ha cac d liu c kich thc nh , hoc co yu c u bao mt cao ,
ch ng han nh cac khoa phin (session key) trong cac phin truy n tin . Khi o h ma
RSA se c s dung k t h p vi mt h ma kh i khac , ch ng han nh AES , theo m
hnh lai ghep nh sau:
82
Kha cng
khai cua B
Kha bi mt
cua B
C1
Kha
phin K
C1
RSA
AES
A - ngi gi
RSA
C2
C2
AES
Kha
phin K
B - ngi nhn
C1 = ak mod p
C2 = K.M mod p
C1 = 536 = 50 mod 97
84
p 1
2
(a m )
p 1
2
(a m0 2 m1 2 m2 ... 2
2
n1
mn1
p 1
2
m0
p 1
2
1 nu m0 0
1 nu m0 1
c1
p 1
4
(a
p 1
2
m1
p 1
2
1 nu m1 0
1 nu m1 1
i.
phc ta p
H u h t cac san ph m va cac chu n s dung cac h ma khoa cng khai ma hoa
va ch ky in t hin nay u s dung
h ma RSA . Tuy nhin vi s phat tri n cua
nganh tham ma va nng lc ngay cang tng nhanh chng cua cac h thng may tinh ,
dai kha am bao an toan cho h ma RSA cung ngay cang tng nhanh chng
, i u
nay lam gia m ang k hiu nng cua cac h th ng s dung h ma RSA , c bit la vi
cac ng dung thng mai in t trc tuyn hay cac h thng realtime i hi thi gian
x ly nhanh chong . G n y mt h ma mi a xu t hin va c kha nng thay th cho
RSA, o la cac h ma khoa cng khai d a trn cac ng cong Elliptic
ECC (Elliptic
Curve Cryptography).
i m h p dn nh t cua cac h ma d a trn cac ng cong Elliptic la no cho
phep at c tinh an toan tng ng vi RSA trong khi kic h thc khoa s dung lai
nh hn rt nhiu, lam giam s phep tinh s dung khi ma ha, giai ma va do at c
hiu nng va t c c n thi t . Trn ly thuy t tinh an toan cua ECC khng cao b ng so vi
RSA va cung kho giai thich mt cach d hi u hn so vi RSA hay Diffie -Hellman. C s
toan hoc y u cua cac h ma da trn ng cong Elliptic vt ra ngoai pham vi cua
tai liu nay , trong ph n nay ch ng ta s ch xem xet cac vn c ban cua cac ng
cong Elliptic va cac h ma ECC.
85
y x3 ax b
Vi mi gia tri cu th cua a va b , s cho chng ta hai gia tri cua y (mt m va mt
dng) tng ng vi mt gia tri cua x , cac ng cong dang nay lun i xng qua
ng th ng y = 0. Vi du v hnh anh cua mt ng cong Elliptic:
86
87
xR 2 yP xQ
yR yP ( xP yR )
Phep toan nhn i i vi P c tinh nh sau:
xR (
3xP2 a 2
) 2 xP
2 yP
yR (
3xP2 a
)( xP xR ) yP
2 yP
88
(0, 1)
(6, 4)
(12, 19)
(13, 7)
(1, 7)
(13, 16)
(7, 11)
(17, 3)
(17, 20)
(18, 3)
(4, 0)
(11, 3)
(18, 20)
(5, 4)
(19, 18)
xR ( 2 xP xQ ) mod p
yR ( ( xP xR ) yP ) mod p
Trong o:
yQ yP
) mod p, ( P Q)
(
xQ xP
2
( 3xP a ) mod p, () p Q)
2y
P
4.
Phep nhn c inh ngha la tng cua cac phep cng , ch ng han 4P = P
+ P + P + P. Vi du vi P = (3, 10) va Q = (9, 7) trn E23(1, 1) ta co:
7 10
3
1
) mod 23 ( ) mod 23 ( ) mod 23 11 nn
93
6
2
xR = (112 - 3 - 9 ) mod 23 = 17
yR = (11(3 - 17) - 10) mod 23 = 20. Nn P + Q = (17, 20).
tim 2P ta tinh:
3(32 ) 1
5
1
) mod 23 ( ) mod 23 ( ) mod 23 6
2 10
20
4
Ch y la thc hin phep tinh cui cng ta ly phn t nghich ao cua 4 trn Z23
sau o nhn vi t s la 1.
xR=(62(3 - 7) - 10) mod 23 = 30 mod 23 = 7
yR = (6(3 - 7) - 10) mod 23 = 34 mod 23 = 12
K t lun: 2P = (7, 12).
xac inh
an toan cua cac h ma mt d a trn cac ng cong Elliptic , ngi
ta thng d a trn mt con s la s ph n i m trn m t nhom Abel hu han , goi la N ,
c inh
nghia trn mt ng cong Elliptic . Trong trng h p nhom hu han E P(a, b),
ta co cac cn cua N la:
Phng trin
h bi u din
90
g12 = 1111
g13 = 1101
(0, 1)
(g5, g3)
(g9, g13)
(1, g6)
(1, g13)
g6, g8)
(g3, g8)
(g10, g8)
91
xR 2 xP xQ a
yR ( xP xR ) xR yP a
Trong o:
yQ yP
xQ xP
4.
sau:
xR 2 a
yR xP2 ( 1) xR
Trong o:
xP
yP
xP
92
93
112
512
80
160
1024
112
224
2048
128
256
3072
92
384
7680
256
512
15360
Ngu n: Certicom
Bang 4.3: Bang so sanh cac h ma ECC vi h ma RSA
95
96
Xu bt
00000
00001
00010
00011
00100
00101
00110
Ky t
H
I
J
K
L
M
N
Xu bt
00111
01000
01001
01010
01011
01100
01101
Ky t
O
P
Q
R
S
T
U
Xu bt
01110
01111
10000
10001
10010
10011
10100
Ky t
V
W
X
Y
Z
Xu bt
10101
10110
10111
11000
11001
Xu bt
00000
00001
00010
00011
00100
00101
00110
Ky t
H
I
J
K
L
M
N
Xu bt
00111
01000
01001
01010
01011
01100
01101
Ky t
O
P
Q
R
S
T
U
Xu bt
01110
01111
10000
10001
10010
10011
10100
Ky t
V
W
X
Y
Z
Xu bt
10101
10110
10111
11000
11001
A
00
N
13
B
01
O
14
C
02
P
15
D
03
Q
16
E
04
R
17
F
05
S
18
G
06
T
19
H
07
U
20
I
08
V
21
J
09
W
22
K
10
X
23
L
11
Y
24
M
12
Z
25
97
A
00
N
13
B
01
O
14
C
02
P
15
D
03
Q
16
E
04
R
17
F
05
S
18
G
06
T
19
H
07
U
20
I
08
V
21
J
09
W
22
K
10
X
23
L
11
Y
24
M
12
Z
25
A
00
N
13
B
01
O
14
C
02
P
15
D
03
Q
16
E
04
R
17
F
05
S
18
G
06
T
19
H
07
U
20
I
08
V
21
J
09
W
22
K
10
X
23
L
11
Y
24
M
12
Z
25
98
6198 16611
6375
16611
2405
7260
762
5206 16683
9529
5359 10888
374
15470
4667 24027
7977
13199 15176
6525
7834 15094
4287 14402
2134
5878
6704
9402
9984
7989
5601
3527
3045
6596 16796
4663
11040
8687
6704
3330
7200
3 262 + 14 26 + 6 = 2398
CAT
2 262 + 0 26 + 19 = 1371
ZZZ
25 262 + 25 26 + 25 = 17575
11(1,
6) va G =
99
ma cua h ma El
100
Chng V: Ch ky i n t va ham bm
CHNG V: CH KY IN T VA HAM BM
1. Ch ky i n t
1.1. Khi nim v ch ky in t
K t khi con ngi phat minh ra ch vit, cac ch ky thng lun c s dung
hang ngay, chng han nh ky mt bin nhn trn mt bc th nhn tin t ngn hang, ky
hp ng hay mt vn ban bt ky nao . Ch ky vit tay thng thng trn tai liu
thng c dng xac inh ngi ky n.
S ch ky in t la mt phng phap ky mt vn ban hay lu bc in di
dang in t. Chng han mt bc in c ch ky c lu hanh trn mang may tinh.
Ch ky in t t khi ra i a c nhiu ng dung rng rai trong cac giao dich thng
mai, t vic xac minh ch ky cho n cac the tin dung, cac s inh danh va cac s
chia se bi mt ... Sau y, chng ta s tm hiu mt s s ch ky quan trong. Song
trc ht, chng ta s thao lun mt vai im khac bit c ban gia ch ky thng thng
va ch ky in t.
u tin la vn ky mt tai liu. Vi ch ky thng thng n la mt phn vt ly
cua tai liu. Tuy nhin, mt ch ky in t khng gn theo kiu vt ly vao bc in nn
thut toan c dng phai la khng nhn thy theo cach nao trn bc in.
Th hai la vn kim tra. Ch ky thng thng c kim tra bng cach so sanh
n vi cac ch ky xac thc khac. Vi du, ai ky mt tm sec mua hang, ngi ban s
so sanh ch ky trn manh giy vi ch ky nm mt sau the tin dung kim tra.
Mt khac, ch ky s c th kim tra bng mt thut toan kim tra mt cach cng khai.
Nh vy, bt ky ai cung c th kim tra c ch ky in t. Vic s dung mt s ky
an toan c th ngn chn c kha nng gia mao.
S khac bit c ban gia ch ky in t va ch ky thng thng la ch: mt ban
copy tai liu c ch ky c ng nht vi ban gc. Ni cach khac, tai liu c ch ky trn
giy thng c th khac bit vi ban gc iu nay ngn chn mt bc in c ky
khi bi dng lai. Vi du, nu B ky mt bc in xac minh cho A rt 100$ t tai khoan cua
mnh, anh ta ch mun A c kha nng lam iu mt ln. V th, ban thn bc in phai
cha thng tin khi bi dng lai, chng han nh dng dich vu gan nhan thi gian (Time
Stamping Service).
Mt s ch ky in t thng cha hai thanh phn: thut toan ky sig() va thut
toan xac minh ver(). B c th ky mt bc in x dng thut toan ky an toan (bi mt). Kt
qua ch ky y = sig(x) nhn c c th c kim tra bng thut toan xac minh cng
khai ver(y). Khi cho trc cp (x, y), thut toan xac minh cho gia tri TRUE hay FALSE tuy
thuc vao vic ch ky c xac thc nh th nao.
Vy th nao la ch ky in t? Chng ta c mt s inh ngha nh sau:
Chng V: Ch ky i n t va ham bm
Cac ch ky in t c sinh va s dung bi cac h ch ky (s ) in t, di
y la inh ngha mt h ch ky in t.
inh nghia:
Mt s ch ky in t l b 5 (P, A, K, S, V) tho man cc iu kin di
y:
1) P l tp hu hn cc bc in (thng ip, bn r) co th.
2) A l tp hu hn cc ch ky co th.
3) K l tp khng gian kho (tp hu hn cc kho co th).
4) Vi mi kho K K tn ti mt thut ton ky sigK S v mt thut ton xc
minh verK V. Mi sigk: P A v verK: P x A {TRUE, FALSE} l nhng hm sao cho
mi bc in x P v mi ch ky y A tho man phng trnh di y:
TRUE
nu
y = sig(x)
FALSE
nu
y sig(x). [5]
Ver (x, y) =
Vi mi K K, hm sigK v verK la cac ham a thc thi gian. Ham verK s la ham
cng khai cn hm sigK la bi mt. Khng th d dang tinh toan gia mao ch ky cua B
trn bc in x, ngha la vi x cho trc ch c B mi c th tinh c y ver(x, y) =
TRUE. Mt s ch ky khng th an toan v iu kin v mt ngi C nao c th
kim tra tt ca ch s y trn bc in x nh dng thut toan ver() cng khai cho ti khi
anh ta tm thy ch ky ng. V th, nu c u thi gian, C lun c th gia mao ch ky
cua B. Nh vy muc ich cua chng ta la tm cac s ch ky in t an toan v mt
tnh ton.
102
Chng V: Ch ky i n t va ham bm
sigK(x) = xa mod n
v
verK(x,y) = TRUE x yb (mod n) vi x, y Zn. [5]
Thng thng, ch ky c kt hp vi ham ma hoa cng khai. Gia s A mun gi
mt bc in a c ma hoa va a c ky n cho B. Vi ban r x cho trc, A s
tinh toan ch ky cua mnh y = sigA(x) va sau ma hoa ca x va y s dung khoa cng khai
eB cua B, kt qua nhn c la z = eB(x, y). Ban ma z s c gi ti B, khi B nhn c
z, u tin anh ta giai ma vi ham giai ma dB cua mnh nhn c (x, y). Sau anh
ta dng ham xac minh cng khai cua A kim tra xem verA(x,y) = TRUE hay khng.
Song nu u tin A ma hoa x , ri sau mi ky ln ban ma nhn c th sao?
Khi , A s tinh:
y = sigA(eB(x))
A s truyn cp (z, y) ti B, B s giai ma z va nhn c x, sau xac minh ch ky
y trn x nh dng verA. Mt vn nay sinh nu A truyn (x, y) kiu nay th mt ngi th
ba C c th thay ch ky y cua A bng ch ky cua chinh mnh:
y = sigC(eB(x))
Ch y rng, C c th ky ln ban ma eB(x) ngay ca khi anh ta khng bit ban r x. Khi
nu C truyn (z, y) n B, ch ky cua C c B xac minh bng ver C va do , B cho
rng ban r x xut phat t C. Do kh khn nay, hu ht ngi s dung c khuyn nghi
ky trc khi ma.
1.3. H ch ky ElGammal
H ch ky ElGammal c a ra vao 1985. Mt phin ban sa i h nay c
Hoc vin Quc gia tiu chun va ky thut (NIST) a ra nh mt chun cua ch ky in
t. H ch ky ElGammal c thit k ring bit cho muc ich ch ky, trai ngc vi
RSA thng c s dung cho ca muc ich ma hoa cng khai va ch ky. H ch ky
ElGammal la khng xac inh, ngha la c rt nhiu gia tri ch ky cho cng mt bc in
cho trc. Thut toan xac minh phai c kha nng nhn bt ky gia tri ch ky nao nh la
vic xac thc. S ch ky ElGammal c miu ta nh sau:
Cho p l mt s nguyn t nh l bi ton logarit ri rc trong Z p, Zp* l mt
phn t nguyn t v P = Zp*, A = (Zp*)*Zp-1, v nh ngha:
K = {(p, , a, ) : a (mod p)}
trong o gi tr p, v l cng khai, cn a l bi mt.
Vi K = (p, , a, ) v chn mt s ngu nhin k Zp-1*, nh ngha:
sigK(x, k) = (, )
trong o: = k mod p
103
Chng V: Ch ky i n t va ham bm
Nu ch ky la ng th vic xac nhn thanh cng khi:
ak (mod p)
x (mod p).
trong : a + k x (mod p -1).
B s tinh toan ch ky bng vic s dung ca gia tri bi mt a (mt phn cua khoa) va
s bi mt ngu nhin k (gia tri ky bc in). Vic xac minh c th thc hin c ch
vi cac thng tin c cng khai:
Vi d:
Chng ta chon p = 467, = 2, a = 127. Ta tnh: = a mod p = 2127 mod 467 = 132.
By gi B mun ky ln bc in x = 100 va anh ta chon mt gia tri ngu nhin k =
213 (ch l UCLN(213, 466) = 1 v 213-1 mod 466 = 431). Sau tinh:
= 2213 mod 467 = 29
= (100 127*29)431 mod 466 = 51.
Bt c ai cung c th kim tra ch ky nay bng cach tinh:
132292951 189 (mod 467)
2100 189 (mod 467).
Gia s ke th ba C mun gia mao ch ky cua B trn bc in x ma khng bit s bi
mt a. Nu C chon mt gia tri va c gng tm , anh ta phai tinh mt ham logarit ri rac
logx-. Mt khac, nu u tin anh ta chon c gng tm th anh ta phai tinh =
x (mod p). Ca hai vic nay u khng th thc hin c.
Tuy nhin c mt ly thuyt ma C c th ky ln mt bc in ngu nhin bng cach
chon ng thi , va x. Cho i, j la s nguyn vi 0 i, j p - 2, v UCLN(j, p - 1) = 1. Sau
tinh:
= ij mod p
= - j-1 (mod p-1)
x = - ij-1 (mod p-1).
Nh vy, ta xem (, ) la gia tri ch ky cho bc in x. Vic xac minh s thc hin
nh sau:
( i j )
i
ij
i
ij
i j
1 i
j 1
(mod p)
(mod p)
i
(mod p)
ij
(mod p)
x (mod p).
V d:
Nh vi du trn, ta chon p = 467, = 2, = 132. K th ba C s chon i = 99 va j =
179. Anh ta s tinh:
104
Chng V: Ch ky i n t va ham bm
= 299132179 mod 467 = 117
= -117*151 mod 466 = 41
x = 99*44 mod 466 = 331
Cp gia tri (117, 41) la gia tri ch ky cho bc in 331. Vic xac minh c thc
hin nh sau:
13211711741 303 (mod 467)
2331 303 (mod 467).
Mt phng phap th hai c th gia mao ch ky la s dung lai ch ky cua bc in
trc , ngha la vi cp (, ) la gia tri ch ky cua bc in x, n s c C ky cho
nhiu bc in khac. Cho h, i va j la cac s nguyn, trong 0 i, j, h p-2 v UCLN(h j, p-1) = 1.
= hij mod p
= (h - j)-1 mod (p-1)
x = (hx + i)(h - j)-1 mod (p-1).
Ta c th kim tra: = x mod p. Va do , (, ) la cp gia tri ch ky cua bc
in x.
iu th ba la vn sai lm cua ngi ky khi s dung cng mt gia tri k trong vic
k hai bc in khac nhau. Cho (, 1) la ch ky trn bc in x1 v (, 2) la ch ky trn
bc in x2. Vic kim tra s thc hin:
1 x1 (mod p)
2 x 2 (mod p).
Do : x1 x2 1 2 (mod p) .
t = k, khi : x1 - x2 = k(1 - 2) (mod p-1).
By gi t d = UCLN(1 - 2, p - 1). V d | (1 - 2) v d | (p - 1) nn n cung chia ht
cho (x1 - x2). Ta t tip:
x =
=
p =
x 1 x2
d
1 2
d
p 1
d
105
Chng V: Ch ky i n t va ham bm
k = x (mod p) = x + ip (mod p)
Vi 0 i d-1, ta c th tm c gia tri k duy nht bng ham kim tra:
k mod p.
1.4. Chun ch ky in t (Digital Signature Standard)
1.4.1. Thut ton ch ky in t (Digital Signature Algorithm)
Thang 8/1991, NIST a a ra thut toan ch ky in t (DSA) la c s cho chun
ch ky in t. y la mt bin th cua thut toan ElGammal.
1)
4)
5)
Tinh y = a mod p.
6)
1.4.2. Chun ch ky in t
Chun ch ky in t (DSS) c sa i t h ch ky ElGammal. N c cng
b tai hi nghi Tiu chun x ly thng tin Lin Bang (FIPS) vao 19/05/1994 va tr thanh
chun vao 01/12/1994. DSS s dung mt khoa cng khai kim tra tinh toan ven cua
d liu nhn c va ng nht vi d liu cua ngi gi. DSS cung c th s dung bi
ngi th ba xac inh tinh xac thc cua ch ky va d liu trong n. u tin chng ta
hay tm hiu ng c cua s thay i nay, sau s tm hiu thut toan cua DSS.
Trong rt nhiu trng hp, mt bc in c th c ma hoa va giai ma mt ln,
v vy n ap ng cho vic s dung cua bt ky h thng bao mt nao c bit la an
toan lc bc in c ma hoa. Ni cach khac, mt bc in c ky am nhim chc
nng nh mt vn ban hp phap, chng han nh cac ban hp ng, v vy n cung
ging nh vic cn thit xac minh ch ky sau rt nhiu nm bc in c ky. iu
nay rt quan trong cho vic phng nga v an toan cua ch ky c a ra bi mt
h thng bao mt. V h ch ky ElGammal khng am nhn c iu nay, vic thc
hin nay cn mt gia tri ln modulo p. Tt nhin p nn c it nht 512-bit, va nhiu ngi
cho rng dai cua p nn la 1024-bit nhm chng lai vic gia mao trong tng lai.
Tuy nhin, ngay ca mt thut toan modulo 512-bit dng ky cung phai thc hin
vic tinh toan n 1024-bit. Cho ng dung tim nng nay, c rt nhiu card thng minh
c a ra, nhm thc hin mt ch ky ngn hn nh mong mun. DSS a sa i h
ch ky ElGammal cho ph hp theo cach nay mt cach kheo leo, mi 160-bit bc in
c ky s dung mt ch ky 320-bit, nhng vic tinh toan c thc hin vi 512-bit
modulo p. Cach nay c thc hin nh vic chia nh Zp* thanh cac trng c kich
thc 2160. Vic thay i nay s lam thay i gia tri :
106
Chng V: Ch ky i n t va ham bm
= (x + )k-1 mod(p - 1).
iu nay cung lam cho gia tri kim tra cung thay i:
x (mod p).
(1.4.2.1)
x (mod p).
(1.4.2.2)
= (x + a*)k-1 mod q.
Vi x Zp* v , Zq, vic xc minh c thc hin bng cch tinh:
e1 = x-1 mod q
e2 = -1 mod q
ver(x, , ) = TRUE ( e1 e2 mod p) mod q = . [5]
Ch y rng, vi DSS th 0 (mod q) v gia tri: -1 mod q cn cho vic xac minh ch
ky (iu nay cung tng t nh vic yu cu UCLN(, p-1) = 1 (1.4.2.1) (1.4.2.2)).
Khi B tinh mt gia tri 0 (mod q) trong thut toan ky, anh ta nn b n i va chon mt s
ngu nhin k mi.
Vi d:
Chng ta chon q = 101 v p = 78*q + 1 = 7879 v g = 3 la mt nguyn t trong
Z7879. V vy , ta c th tinh:
= 378 mod 7879 = 170.
Chon a = 75, do : = a mod 7879 = 4567.
By gi, B mun ky mt bc in x = 1234, anh ta chon mt s ngu nhin k = 50.
V vy :
k-1 mod 101 = 99.
107
Chng V: Ch ky i n t va ham bm
Tip : = (17050 mod 7879) mod 101 = 2518 mod 101 = 94
= (1234 + 75*94)99 mod 101 = 97.
Cp ch ky (94, 97) cho bc in 1234 c xac thc nh sau:
-1 = 97-1 mod 101 = 25
e1 = 1234*25 mod 101 = 45
e2 = 94*25 mod 101 = 27
(17045456727 mod 7879) mod 101 = 2518 mod 101 = 94.
K t khi DSS c xut vao nm 1991, a c nhiu ph bnh a ra. Chng
han nh kich c cua moduloe p bi c inh 512-bit, iu ma nhiu ngi khng mun. V
vy, NIST a thay i chun nay c th thay i kich thc moduloe (chia bi 64)
thanh mt day t 512 n 1024-bit.
Ngoai ra, mt s ph bnh khac v DSS la ch ky c tao ra nhanh hn so vi
vic xac minh n. Trai ngc vi h ch ky RSA th vic xac minh cng khai la rt nhanh
chng (ma ta bit trong thng mai in t vic xac minh la rt quan trong va i hi thi
gian thc hin phai nhanh chng).
1.5. M hin
h ng dung cua ch ky i n t
Khac vi ch ky thng thng trn th c t , cac ch ky in t la mt thng tin
dang s h a c tao ra t vn ban s dung h ch ky in t va khng phai la mt
ph n cua vn ban . Do o sau khi c tao ra , ch ky in t se c gi i cung vi
thng ip , ngi nhn nhn c thng ip va ch ky tng ng s thc hin thut
toan kim tra xem ch ky c ng la ch ky cua ngi gi ln vn ban nhn c hay
khng. M hin
h ng dung nay co th c minh hoa qua hin
h ve sau:
Kha cng
khai cua B
Kha
phin K
RSA
P, S
AES
Kha bi mt
cua B
C1
C1
C2
C2
Kha bi mt
cua A
P
A - ngi gi
Ky
RSA
Kha
phin K
AES
P, S
Kha cng
khai cua B
S
Kim tra
ch ky
B - ngi nhn
108
Chng V: Ch ky i n t va ham bm
2. Ham Bm (Hash Function)
2.1. Khi nim
Ta thy rng cac h ch ky c miu ta trn ch cho phep ky cac bc in ngn.
Vi du nh trong DSS, 160-bit bc in c ky vi 320-bit. Nh vy vi nhng bc in
hang Megabyte th chng ta phai lam th nao!
Mt cach n gian giai quyt vn nay la chia bc in ln thanh nhng oan
nh 160-bit, va sau ky ln mi oan nh , iu nay cung tng t nh ma hoa mt
chui dai ban r bng vic ma hoa tng ky t ban r s dung cng mt khoa.
Nhng c mt vai vn trong vic tao ch ky in t. u tin la vi mt bc in
dai, chng ta s kt thc vi mt lng ch ky khng l. Ngoai ra, iu bt tin la hu ht
cac h ch ky u rt chm. Nghim trong hn la vi rt nhiu oan c ky nh vy s
dn n khi sp xp lai va c th mt vai oan bi b i (mt i tinh toan ven).
giai quyt tt ca cac rc ri nay, ngi ta s dung ham Bm (hash function).
inh nghia:
Mt ham Bm H s ly u vao mt thng tin X c kich thc bin thin va sinh
kt qua la mt chui c dai c inh, c goi la ct cua bc in (message digest).
Vi du nh khi B mun ky mt bc in x ( dai bt ky), u tin anh ta tinh ct cua
bc in z = h(x) ( dai c inh) va sau ky y = sigK(z). Anh ta phat cp (x,y) ln knh
truyn, by gi vic kim tra c th thc hin bng vic tinh lai ct cua bc in z = h(x),
sau kim tra verK(z,y) c bng TRUE hay khng.
z = h(x)
y = sigK(z)
x.y
verK(y)
0: true
x.y
1: false
z = h(x)
Hnh 5.2: S ch ky s dung ham Bm
2.2. c tinh cua ham Bm
Mt vn cn ban y la tinh ung cua ham Bm. Theo nguyn ly Diricle:
nu co n+1 con th c b vo n ci chung th phi tn ti it nht mt ci chung m
trong o co it nht l hai con th chung [9]. R rang vi khng gian gia tri Bm nh hn
rt nhiu so vi khng gian tin v mt kich thc th chc chn s tn tai ung , ngha
l c hai tin x x ma gia tri Bm cua chng la ging nhau, tc h(x) = h(x).
Sau y chng ta s xet cac dang tn cng c th c, t rt ra cac tinh cht cua
ham Bm:
109
Chng V: Ch ky i n t va ham bm
Dang tn cng th nht la ngi C bt u vi mt bc in c ky c gia tri (x,
y), trong y = sigK(h(x)) (cp (x, y) c th la bt ky bc in trc ma B a ky). Sau
, C tinh z = h(x) va c gng tm x x h(x) = h(x). Nu C lam c iu nay th cp
(x, y) s la mt bc in c ky c gia tri (mt bc in gia mao c gia tri). ngn can
vic nay, ham Bm h phai thoa man tinh cht sau:
Tinh cht 1:
Mt hm Bm h co tinh phi ng cao khi vi mt bc in x cho trc , khng
tm ra mt bc in x x sao cho h(x) = h(x). [5]
Mt dang tn cng khac ma ngi C c th lam la: u tin anh ta tm 2 bc in x
x sao cho h(x) = h(x). Sau C a bc in x cho B va thuyt phuc B ky vao ct bc
in h(x); va v vy, anh ta tm c y. Nh vy, cp (x, y) la mt cp ch ky gia c gi
tri. iu nay la nguyn nhn ma vic thit k ham Bm phai thoa man tinh cht 2 nh
sau:
Tinh cht 2:
Mt hm Bm h co tinh ng cao khi khng th tm ra nhng bc in x v x
sao cho x x v h(x) = h(x). [5]
Dang tn cng th 3 la chon mt gia tri ct z ngu nhin. Ngi C s tinh mt ch
ky vi mt gia tri ngu nhin z, sau anh ta tm mt bc in x sao cho z = h(x). Nu
anh ta lam c iu nay th cp (x, y) la cp ch ky gia c gia tri. Nh vy mt tinh cht
na ma h cn thoa man la tinh mt chiu:
Tinh cht 3:
Mt hm Bm h co tinh mt chiu khi vi ct ca mt bc in z cho trc khng
th tm c mt bc in x sao cho h(x) = z. [5]
2.3. Birthday attack
Nh a bit, mt dang tn cng c kha nng i vi cac h ch ky in t c dng
ham Bm la tm cach tao ra nhng vn ban x va x c ni dung khac nhau (mt c li va
mt la bt li cho bn ky) ma gia tri Bm ging nhau. Ke ich c th tm cach tao ra mt
s lng rt ln cac vn ban c ni dung khng thay i nhng khac nhau v biu din
nhi phn (n gian la vic thm bt khoang trng hay dng nhiu t ng ngha thay
th ...), sau s dung mt chng trnh may tinh tinh gia tri Bm cua cac vn ban
va em so sanh vi nhau hi vong tm ra mt cp vn ban ung (s dung phng
phap thng k).
Nhng vic nay i hi s vn ban cn c tinh gia tri Bm phai ln hn kich
thc khng gian Bm rt nhiu. Chng han nh nu ham Bm c khng gian Bm 64bit th s lng vn ban cn c em ra nap vao chng trnh phai it nht 2 64 (vi mt
may tinh c th thc hin vic Bm 1 triu bc in trong 1 giy, th phai mt 6000.000
nm tinh toan [6])
Tuy nhin nu ke ich th vi lng vn ban it hn nhiu, trong pham vi c th tinh
c th xac sut tm c ung s nh th nao? Cu tra li la c th thc hin
c. Ban cht cua hin tng nay c minh hoa r thng qua phat biu sau, thng
c goi la nghich ly ngay sinh (birthday paradox):
110
Chng V: Ch ky i n t va ham bm
Trong mt nhom co 23 ngi bt k , xc sut co hai ngi co cng ngy sinh
nht it nht l . [5]
Mt cach tng quat, gia s mt ham Bm c n gia tri Bm khac nhau, nu chng ta
c k gia tri Bm t k thng tin khac nhau c chon ngu nhin, th xac sut khng
xay ra ung la:
(1-
1
2
k 1
)(1- ) ... (1)=
n
n
n
i
1 , th
n
Vi
nht la 1 e
1 e
k ( k 1)
2n
k ( k 1)
2n
k 1
(1 n ) .
i 1
k 1
i
en e
(
1
n
i 1
i 1
k 1
k ( k 1)
2n
(*)
2
Suy ra : k k 2n log
1
1
, suy ra: k 2n log
(**)
1
1
1
vn kha nho nn k la
1
Vi d:
Vi k = 23 la s ngi, n = 365 la s ngay trong nm th xac xut tn tai hai ngi
c cng sinh nht s la = 1 2,7-0,7 0,5075. Va y chinh la nghich ly ngay sinh a
phat biu trn. Hoc chung ta co th thay n = 365 vao cng thc (***) s nhn c k =
22.49 23.
Nghich ly ngay sinh hay cng thc (*) cho phep chung ta d oan c chn di
cua s lng phep th cn thc hin tm ra ung cua mt ham bm . Mt ham bm
40-bit se la khng an toan vi chi c n th 220 (khoang 1 t) phep th chng ta a c xac
su t ung la 50%.
Tng t , vi mt ham Bm c khng gian Bm 64-bit nu trn th s phep th
c xac sut ung la 50% s la 232, iu nay la c kha nng thc hin c. Vi du vi
loai may tinh nu trn ch mt khoang 1 gi tinh toan.
Ham bm c coi la an toan la cac ham bm 128 bit (nh MD5 ..) v khi s
l ng phep th se la 264. Tuy nhin hin nay vi s phat tri n cua cac thut toan tham
ma ham bm mi c phat hin cac ham bm 128 cung c khuyn nghi la khng nn
s dung trong cac h th ng bao mt mi . Cac ham bm c khuyn nghi thay th cho
MD5 la cac ham bm 164 bit nh DSS, SHA2.
2.4. Mt s ham Bm ni ting
2.4.1. MD5 (Message Digest)
Ronald Rivest la ngi a phat minh ra cac ham Bm MD2, MD4 (1990) va MD5
(1991). Do tinh cht tng t cua cac ham Bm nay, sau y chung ta se xem xet hm
111
Chng V: Ch ky i n t va ham bm
Bm MD5, y la mt cai tin cua MD4 va la ham Bm c s dung rng rai nht,
nguyn t c thi t k cua ham bm nay cung la nguyn t c chung cho r t nhi u cac ham
bm khac.
a. Miu t MD5:
u vao la nhng khi 512-bit, c chia cho 16 khi con 32-bit. u ra cua thut
toan la mt thit lp cua 4 khi 32-bit tao thanh mt ham Bm 128-bit duy nht.
u tin, ta chia bc in thanh cac khi 512-bit, vi khi cui cng (t la x va x <
512-bit) cua bc in, chng ta cng thm mt bit 1 vao cui cua x, theo sau la cac bit
0 c dai cn thit (512 bit). Kt qua la bc in vao la mt chui M c dai
chia ht cho 512; v vy ta c th chia M ra thanh cac N word 32-bit (N word nay s chia
ht cho 16).
By gi, ta bt u tm ct cua bc in vi 4 khi 32-bit A, B, C va D (c xem
nh thanh ghi) :
A = 0x01234567
B = 0x89abcdef
C = 0xfedcba98
D = 0x76543210.
ngi ta thng goi A, B, C, D la cac chui bin s (chaining variables).
Bc in c chia ra thanh nhiu khi 512-bit, mi khi 512-bit lai c chia ra 16
khi 32-bit i vao bn vng lp cua MD5. Gia s ta t a, b, c va d thay cho A, B, C va D
i vi khi 512-bit u tin cua bc in. Bn vng lp trong MD5 u c cu trc ging
nhau. Mi vng thc hin 16 ln bin i: thc hin vi mt ham phi tuyn cua 3 trong 4
gia tri a, b, c va d; sau n cng kt qua n gia tri th 4, tip cng vi mt khi con
32-bit va mt hng s. Sau , n dich trai mt lng bit thay i va cng kt qua vao
mt trong 4 gia tri a, b, c hay d. Kt qua cui cng la mt gia tri mi c thay th mt
trong 4 gia tri a, b, c hay d.
Khi ca bc
in
A
B
C
D
Vng
1
Vng
2
Vng
3
Vng
4
A
B
C
D
112
Chng V: Ch ky i n t va ham bm
Mj
ti
Hm phi
tuyn
<<< s
d
Hnh 5.4: S mt vng lp MD5
C bn ham phi tuyn, mi ham nay c s dung cho mi vng:
F(X,Y,Z ) = (X Y) ((X) Z)
G(X,Y,Z ) = ((X Z) (Y (Z)))
H(X,Y,Z ) = X Y Z
I(X,Y,Z ) = Y (X (Z)).
trong : l XOR, l AND, l OR, v l NOT.
Nhng ham nay c thit k sao cho cac bit tng ng cua X, Y va Z la c lp
va khng u tin, va mi bit cua kt qua cung c lp va ngang bng nhau.
Nu Mj la mt biu din cua khi con th j (j = 16) va <<<s la phep dich trai cua s
bit, th cac vng lp c th biu din nh sau:
FF(a,b,c,d,Mj,s,ti) c biu din a = b + ((a + F(b,c,d) + Mj + ti) <<< s)
GG(a,b,c,d,Mj,s,ti) c biu din a = b + ((a + G(b,c,d) + Mj + ti) <<< s)
HH(a,b,c,d,Mj,s,ti) c biu din a = b + ((a + H(b,c,d) + Mj + ti) <<< s)
II(a,b,c,d,Mj,s,ti) c biu din a = b + ((a + I(b,c,d) + Mj + ti) <<< s).
Bn vng (64 bc) s thc hin nh sau:
Vng 1:
FF (a, b, c, d, M0, 7, 0x76aa478)
FF (d, a, b, c, M1, 12, 0xe8c7b756)
FF (c, d, a, b, M2, 17, 0x242070db)
FF (b, c, d, a, M3, 22, 0xc1bdceee)
FF (a, b, c, d, M4, 7, 0xf57c0faf)
FF (d, a, b, c, M5, 12, 0x4787c62a)
FF (c, d, a, b, M6, 17, 0xa8304613)
FF (b, c, d, a, M7, 22, 0xfd469501)
FF (a, b, c, d, M8, 7, 0x698098d8)
FF (d, a, b, c, M9, 12, 0x8b44f7af)
113
Chng V: Ch ky i n t va ham bm
FF (c, d, a, b, M10, 17, 0xffff5bb1)
FF (b, c, d, a, M11, 22, 0x895cd7be)
FF (a, b, c, d, M12, 7, 0x6b901122)
FF (d, a, b, c, M13, 12, 0xfd987193)
FF (c, d, a, b, M14, 17, 0xa679438e)
FF (b, c, d, a, M15, 22, 0x49b40821).
Vng 2:
GG (a, b, c, d, M1, 5, 0x61e2562)
GG (d, a, b, c, M6, 9, 0xc040b340)
GG (c, d, a, b, M11, 14, 0x265e5a51)
GG (b, c, d, a, M0, 20, 0xe9b6c7aa)
GG (a, b, c, d, M5, 5, 0xd62f105d)
GG (d, a, b, c, M10, 9, 0x02441453)
GG (c, d, a, b, M15, 14, 0xd8a1e681)
GG (b, c, d, a, M4, 20, 0xe7d3fbc8)
GG (a, b, c, d, M9, 5, 0x21e1cde6)
GG (d, a, b, c, M14, 9, 0xc33707d6)
GG (c, d, a, b, M3, 14, 0xf4d50d87)
GG (b, c, d, a, M8, 20, 0x455a14ed)
GG (a, b, c, d, M13, 5, 0xa9e3e905)
GG (d, a, b, c, M2, 9, 0xfcefa3f8)
GG (c, d, a, b, M7, 14, 0x676f02d9)
GG (b, c, d, a, M12, 20, 0x8d2a4c8a).
Vng 3:
HH (a, b, c, d, M5, 4, 0xfffa3942)
HH (d, a, b, c, M8, 11, 0x8771f681)
HH (c, d, a, b, M11, 16, 0x6d9d6122)
HH (b, c, d, a, M14, 23, 0xfde5380c)
HH (a, b, c, d, M1, 4, 0xa4beea44)
HH (d, a, b, c, M4, 11, 0x4bdecfa9)
HH (c, d, a, b, M7, 16, 0xf6bb4b60)
HH (b, c, d, a, M10, 23, 0xbebfbc70)
HH (a, b, c, d, M13, 4, 0x289b7ec6)
HH (d, a, b, c, M0, 11, 0xeaa127fa)
HH (c, d, a, b, M3, 16, 0xd4ef3085)
HH (b, c, d, a, M6, 23, 0x04881d05)
HH (a, b, c, d, M9, 4, 0xd9d4d039)
HH (d, a, b, c, M12, 11, 0xe6db99e5)
HH (c, d, a, b, M15, 16, 0x1fa27cf8)
HH (b, c, d, a, M2, 23, 0xc4ac5665).
Vng 4:
II (a, b, c, d, M0, 6, 0xf4292244)
II (d, a, b, c, M7, 10, 0x432aff97)
114
Chng V: Ch ky i n t va ham bm
II (c, d, a, b, M14, 15, 0xab9423a7)
II (b, c, d, a, M5, 21, 0xfc93a039)
II (a, b, c, d, M12, 6, 0x655b59c3)
II (d, a, b, c, M3, 10, 0x8f0ccc92)
II (c, d, a, b, M10, 15, 0xffeff47d)
II (b, c, d, a, M1, 21, 0x85845dd1)
II (a, b, c, d, M8, 6, 0x6fa87e4f)
II (d, a, b, c, M15, 10, 0xfe2ce6e0)
II (c, d, a, b, M6, 15, 0xa3013414)
II (b, c, d, a, M13, 21, 0x4e0811a1)
II (a, b, c, d, M4, 6, 0xf7537e82)
II (d, a, b, c, M11, 10, 0xbd3af235)
II (c, d, a, b, M2, 15, 0x2ad7d2bb)
II (b, c, d, a, M9, 21, 0xeb86d391).
Nhng hng s ti c chon theo quy lut sau: bc th i gia tri ti la phn nguyn
cua 2 *abs(sin(i)), trong i = [0..63] c tinh theo radian.
32
Mi bc c cng kt qua cua bc trc n, lam cac qua trnh c tinh lin
kt, phu thuc ln nhau.
Vic cac khi con bi thay i khi vao vng 2 va vng 3 lam cho khun dang
cu trc vng lp thay i theo.
115
Chng V: Ch ky i n t va ham bm
Cung ging vi MD5, bc in c cng thm mt bit 1va cac bit 0 cui bc
in bc in c th chia ht cho 512. SHA s dung 5 thanh ghi dich:
A = 0x67452301
B = 0xefcdab89
C = 0x98badcfe
D = 0x10325476
E = 0xc3d2e1f0
Bc in c chia ra thanh nhiu khi 512-bit. Ta cung t la a, b, c, d va e thay
cho A, B, C, D va E i vi khi 512-bit u tin cua bc in. SHA c bn vng lp chinh
vi mi vng thc hin 20 ln bin i: bao gm thc hin vi mt ham phi tuyn cua 3
trong 5 gia tri a, b, c, d va e; sau cung c cng va dich nh trong MD5.
SHA xac lp bn ham phi tuyn nh sau:
ft(X,Y,Z) = (X Y) ((X) Z) vi 0 t 19
ft(X,Y,Z) = X Y Z vi 20 t 39
ft(X,Y,Z) = (X Y) (X Z) (Y Z) vi 40 t 59
ft(X,Y,Z) = X Y Z vi 60 t 79.
Bn hng s s dung trong thut toan la:
Kt = 21/2 /4 = 0x5a827999 vi 0 t 19
Kt = 31/2 /4 = 0x6ed9eba1 vi 20 t 39
Kt = 51/2 /4 = 0x8f1bbcdc vi 40 t 59
Kt = 101/2 /4 = 0xca62c1d6 vi 60 t 79.
Cc khi bc in c m rng t 16 word 32-bit (M0 n M15) thnh 80 word 32bit (W 0 n W 79) bng vic s dung thut toan m rng:
Wt = Mt vi 0 t 15
Wt = (Wt-3 Wt-8 Wt-14 Wt-16) vi 16 t 79.
Ta c th miu ta mt vng lp cua SHA nh sau:
116
Chng V: Ch ky i n t va ham bm
Wt
Kt
ei-1
ei
di-1
di
ci-1
Hm phi
tuyn
bi-1
ai-1
ci
<<< 30
<<< 5
bi
ai
MD5 v SHA u cng thm cac bit gia tao thanh nhng khi chia ht cho
512-bit, nhng SHA s dung cng mt ham phi tuyn f cho ca bn vng.
117
Chng V: Ch ky i n t va ham bm
Trong ham phi tuyn th 2 cua MD5 c s cai tin so vi MD4, SHA th s dung
lai ham phi tuyn cua MD4, tc (X Y) (X Z) (Y Z).
118
Chng V: Ch ky i n t va ham bm
sanh vi gia tri bm tng ng lu trong c s d liu (c th dang file text , xml, hay
file c s d liu cua mt h quan tri c s d liu nao o ). N u k t qua i sanh la khp
th ngi dng la hp l , ng c lai n u khng khp co nghia la sai mt kh u . Hin
nay t t ca cac h quan tri c s d liu u c trang bi cac ham bm cho phep
ngi dung tao ra cac gia tri bm cua mt kh u ngi dung va lu lai cac gia tri bm nay.
Vic lu cac gia tri bm am bao chung ta khn g bi l mt kh u do mt kh u c lu
dang nguyn ban trn ma y tinh hoc khi truy n qua h th ng mang . H i u hanh Unix
s dung nguyn t c lu mt kh u nh trn vi ham bm la h ma DES c lp lai
25
l n, mt kh u cua ngi dng c s dung nh kha cua h ma, ban r em ma ha la
xu 64 bit 0.
Ngay nay vi s phat trin manh m cua thng mai in t
, cac giao dich u
c th c hin t xa, trn cac h th ng mang nn vic ng dung cua cac h ch ky in
t va i kem vi o la cac ham bm ngay cang tr nn quan trong . Moi thng tin trong
cac giao dich thng mai in t u cn c bao v bng cac ch ky , ham bm. V
th co th noi r ng i khi cac ham bm con quan trong hn ca cac h ma mt.
3. Bai tp
Bai tp 5.1: Cho h ch ky in t ElGamma c p = 1019, a = 191 la mt phn t
nguyn thuy cua ZP*, x = 37.
a) Hy tm kha cng khai KP, va kha bi mt KS cua h ch ky trn.
b) ky ln ban r M = 102 ngi ta chon k = 143, hay thc hin ky a ra ch ky
tng ng.
c) Kim tra xem cp (K, S) = (251, 507) c la ch ky ln vn ban M = 127 hay
khng.
Bai tp 5.2: Cho h ch ky in t RSA c p = 31, q = 41, e = 271.
a) Hy tm kha cng khai KP, va kha bi mt KS cua h ma trn.
b) Hay tinh ch ky cho thng ip M = 100.
Bai tp 5.3: Cho thut toan ch ky in t DSA co q = 11, p = 67, = 9, = 62, kha bi
mt a = 4, ky ln vn ban M = 8, ngi ta chon k = 2. Hay xac inh ch ky ln vn ban
M.
Bai tp 5.4: Cho h ch ky in t RSA co p = 47, q = 71, e= 79. Hay xac inh ch ky
cua h ma ln thng ip M = 688.
S dung mt trong cac ngn ng lp trinh C, C++, Java hoc C# lam cac bai tp sau:
Bai tp 5.5: Cai t h ch ky in t RSA.
Bai t p 5.6: Cai t h ch ky in t El Gammal.
Bai tp 5.7: Cai t ham bm MD5.
Bai tp 5.8: Cai t ham bm SHA.
Gi y: C th s dung cac th vin s ln nh MIRACL hoc cac th vin ma ngu n m
nh Crypto++ (chi ti t tai ia chi website : http://www.cryptopp.com/), Cryptolib ( chi ti t tai
ia chi website http://www.cs.auckland.ac.nz/~pgut001/cryptlib).
119
n(n 1)
khoa khac nhau cho chng y cp ngi dng khac nhau trong mang. Mt c
2
quan uy thac TA quan ly chng y khoa va phai chuyn cho mi ngi dng (n-1) kho
chung vi (n-1) ngi cn lai trong mang; nh vy TA phai truyn bng nhng knh bi
mt tt ca la n(n-1) lt khoa n tt ca n ngi dng.
120
f ( x, y) a b( x y) cxy mod p
a b(rA rB ) crA rB
a
brC
b
crC
aC
bC
1 rA rB
1
rC
0
1
rA rB
0 (rC rA )(rC rB ),
rC
Theo gia thit chon cac s r, inh thc khac 0, do h phng trnh lun c
nghim (a, b, c), tc vic chp nhn la gia tri cua KA,B la hoan toan c th. Bt ky gia tri
121
a brC
b
a brD
b
crC
crD
aC
bC
aD
bD
f ( x, y ) aij x i y j mod p,
i 0 j 0
3)
A.
va ID(A), T. Nu thy hai gia tri cua ID(A) va cua T trng nhau th B tinh tip m 4 = eK(T +
1) va gi m4 cho A.
122
kh. Cac s p va c cng b cng khai cho moi ngi tham gia trong mang. Ngoai
ra, TA c mt s ch ky vi thut toan ky bi mt sigTA va thut toan kim tra cng khai
verTA.
Mt thanh vin bt ky A vi danh tinh ID(A) tuy y chon mt s a A (0 aA p-2) v
tnh bA aA mod p . A gi bi mt aA va ng ky cac thng tin (ID(A), bA) vi TA. TA cp
cho A chng ch:
C(A) = (ID(A), bA, sigTA(ID(A), bA)).
Cac chng ch cua cac thanh vin trong mang c th c lu gi trong mt c s
d liu cng khai hoc uy thac cho TA lu gi va cung cp cng khai cho cac thanh vin
mi khi cn n.
Khi hai thanh vin A va B trong mang cn c mt khoa bi mt chung truyn tin
bao mt cho nhau th A dng thng tin cng khai bB c trong C(B) kt hp vi s bi mt
cua mnh la aA tao nn khoa.
123
cho B .
2)
va gi bB cho A.
3)
x y 2 ( k ) 1 mod p.
124
Giao thc la khng an toan i vi vic tn cng chu ng bng cach anh
trao gia ng.
Ngha la mt ngi th ba C c th anh trao cac thng tin trao i gia A va B.
Chng han, C thay aA ma A inh gi cho B bi a' A v thay aB ma B inh gi cho A
bi a'B . Nh vy, sau khi thc hin giao thc trao i khoa, A a lp mt khoa chung
Mt cach khc phuc kiu tn cng nay la lam sao A va B c kim th xac
nhn tinh ng n cua cac khoa cng khai bA v bB. Ngi ta a vao giao thc trao i
kho Diffie-Hellman thm vai tr iu phi cua mt TA c mt h phn phi khoa
Diffie-Hellman nh mt cach khc phuc nhc im nay. Trong h phn phi khoa DiffieHellman, s can thip cua TA la rt yu, thc ra TA ch lam mi vic la cp chng ch xac
nhn khoa cng khai cho tng ngi dng ch khng i hi bit thm bt c mt bi mt
nao cua ngi dng. Tuy nhin, nu cha thoa man vi vai tr han ch cua TA th c
th cho TA mt vai tr xac nhn yu hn, khng lin quan g n khoa, chng han nh
xac nhn thut toan kim th ch ky cua ngi dng, cn ban thn cac thng tin v khoa
(ca bi mt ln cng khai) th do cac ngi dng trao i trc tip vi nhau. Vi cach khc
phuc c vai tr ht sc han ch cua TA, ta c giao thc sau y:
3.2. Giao thc trao i kho Diffie-Hellman co chng ch xc nhn
Mi ngi dng A c mt danh tinh ID(A) va mt s ch ky vi thut toan ky sigA
va thut toan kim th verA. TA cung c mt vai tr xac nhn, nhng khng phai xac nhn
bt ky thng tin nao lin quan n vic tao khoa mt ma cua ngi dng (d la khoa bi
mt hay khoa cng khai), ma ch la xac nhn mt thng tin it quan h khac nh thut toan
kim th ch ky cua ngi dng. Cn ban thn cac thng tin lin quan n vic tao khoa
mt ma th cac ngi dng s trao i trc tip vi nhau. TA cung c mt s ch ky
cua mnh, gm mt thut toan ky sigTA va mt thut toan kim th cng khai verTA. Chng
ch ma TA cp cho mi ngi A s la:
C(A) = (ID(A), verA, sigTA(ID(A), verA)).
R rang trong chng ch TA khng xac nhn bt ky iu g lin quan n vic tao
khoa cua A ca. Vic trao i khoa gia hai ngi dng A va B c thc hin theo giao
thc sau y:
1)
2)
125
3)
4)
1)
cho B.
2)
cho A.
3)
C(A), r ' A
C(A), rA
C(B), r 'B
C(B), rB
126
s' B
r 'B
K 2 r ' A aB rB aA mod p.
Hai gia tri K1 v K2 nay khac nhau nn khng gip A va B truyn tin c cho nhau,
nhng C khng c kha nng tinh c gia tri nao trong hai gia tri (v khng bit a A v
aB) nn khac vi giao thc Diffie-Hellman, y C ch c th pha ri, ch khng th anh
cp thng tin c.
3.4. Giao thc Girault trao i kho khng chng ch
Giao thc Girault c xut nm 1991. Trong giao thc nay, ngi s dung A
khng cn dng chng ch C(A) ma thay bng mt khoa cng khai t chng thc c
cp trc bi mt TA. Phng phap nay s dung kt hp cac c tinh cua bai toan RSA
va logarit ri rac.
Gia s n la tich cua hai s nguyn t ln p va q, n = p*q, p va q c dang p = 2p 1+1,
q = 2q1+1, trong p1 v q1 cung la cac s nguyn t. Nhm nhn Z n* ng cu vi tich
Z *p xZ q* . Cp cao nht cua mt phn t trong Z n* la bi chung be nht cua p-1 v q-1, tc
la bng 2p1q1. Gia s la mt phn t cp 2p1q1 cua Z n* . Nhm tun hoan sinh bi
c ky hiu la G, bai toan tinh logarit ri rac theo c s trong G c gia thit la rt
kh.
Cac s n va la cng khai. Ch TA bit p, q. TA chon s mu cng khai e vi
UCLN(e, (n) ) = 1, va gi bi mt d e 1 mod (n).
Mi ngi dng A c mt danh tinh ID(A), chon ngu nhin mt s a A G , gi bi
mt aA v tnh bA aA mod n , ri gi aA, bA cho TA. TA th lai iu kin bA aA mod n
, ri cp cho A mt khoa cng khai t chng thc pA = (bA-ID(A))d mod n. Trong kho
cng khai pA khng c thng tin v aA nhng TA cn bit aA th iu kin
bA aA mod n .
Giao thc Girault trao i khoa gia hai ngi dng A va B c thc hin bi cac
bc sau y:
1)
A chon ngu nhin rA G , tnh s A rA mod n va gi cho B cac gia tri (ID(A),
pA, sA).
2)
B chon ngu nhin rB G , tnh s B rB mod n va gi cho B cac gia tri (ID(B),
pB, sB).
3)
a
r
A tnh kho K s BA ( p Be ID(V )) A mod n,
127
(ID)A, pA, rA
(ID)B, pB, rB
(ID)B, pB, rB
129
Cac bn tham gia phai hiu cach thc va cac bc thc hin mt giao thc khi
tham gia thc hin.
Giao thc phai r rang, tt ca cac bc phai c vit tng minh, khng c
ch nao gy nn kha nng hiu nhm.
Giao thc mt ma la mt giao thc c vn dung cac kin thc cua ly thuyt mt ma
at c cac muc tiu v mt an toan va bao mt cho h thng. Cac thanh phn tham
gia c th la ban b tin tng ln nhau, nhng cung c th la nhng ke ich cua nhau.
Mt giao thc mt ma c lin quan n cac thut toan cua mt ma nhng thng thng
muc ich cua n i xa hn la tinh bao mt thun tuy. Cac bn c th tham d vao vic
chia se cac phn cua mt bi mt c dng chit xut ra mt thng tin nao , c th
cng kt hp phat ra mt chui s ngu nhin, c th chng minh danh tinh cua mnh
cho bn kia hay ng thi ky vao mt vn ban hp ng. Toan b vn cua ly thuyt
mt ma y la lam sao d ra va chng lai cac kha nng nghe trm hay la di.
Nguyn tc thit k giao thc: phai lam sao khng ai, khng bn nao c th
thu c nhiu hn, bit c nhiu hn nhng g ma thit k ban u gia inh.
2. Mc ich cua cc giao thc
Ngay nay, vi s phat trin vu bao cua h thng may tinh toan cu i n tng h
gia nh, vic a cac nghi thc thu tuc lam n bnh thng cua ngi ta thc hin qua
mang cung la khng bao xa. Nh vy cn phai thit k nhng thu tuc lam vic tng ng
cho may tinh c th thay th cho cac thu tuc trong i thng. im khac bit c
trng y la by gi ngi lam vic vi nhau thng qua cac may tinh ma khng cn
thy mt nhau na. Hn na may tinh khng phai la ngi, n khng th d dang thich
nghi vi thay i nh chng ta y. V vy cn tinh n moi tnh hung, moi kha nng c
th cua giao thc.
130
mt
131
Khng c quyn li ring trong giao thc va khng thin vi cho mt bn nao.
Cac bn tham gia c quyn li trong giao thc u tin tng vao trong tai rng
bt ky cai g ma anh ta ni va lam u la ng va chinh xac, ng thi tin tng anh ta s
hoan thanh trach nhim cua mnh trong giao thc.
Nh vy trong tai c th ng ra gip hoan thanh cac giao thc gia nhng bn
tham gia khng tin tng ln nhau.
V d 1:
Alice mun ban mt chic xe cho mt ngi la la Bob. Bob mun tra bng sec, tuy
nhin Alice lai khng c cach nao bit c sec c gia tri tht s hay khng. Do
vy, c ta ch mun c chuyn sec trc khi giao xe cho Bob va y chinh la mu
thun b tc v Bob cung chng tin g Alice nn anh ta s khng a sec trc khi nhn
c chic xe.
Cach giai quyt s thng qua Trent (ngi ma ca Bob va Alice u tin tng) va
mt giao thc s din ra nh sau am bao tinh trung thc:
i mt khoang thi gian nht inh n khi sec a chuyn xong, Trent s giao
hang cho Bob. Nu t sec khng hp l th Alice s bao cho Trent bit vi bng chng cu
th va Trent s giao tra lai hang cho c ta.
Trong giao thc nay:
Alice tin tng rng Trent s khng trao hang cho Bob tr khi sec c
chuyn xong va s chuyn lai hang cho c ta nu sec khng c gia tri.
Bob tin tng Trent s gi hang trong thi gian sec c chuyn va s giao
n cho anh ta mt khi c chuyn xong.
Trent khng quan tm n vic t sec c gia tri tht s va c chuyn c hay
khng, anh ta lam phn vic cua mnh trong ca hai trng hp c th xay ra ng nh
giao thc qui inh, n gian v anh ta s c tra tin cng trong ca hai trng hp.
Vi d 2:
Nha bng cung c th ng ra lam trong tai cho ALice va Bob. Bob s dung mt cai
sec c chng nhn cua nha bng mua ban vi Alice:
Sau khi cm mt s tin t tai khoan cua Bob bng gia tri cua t sec, nha bng
ky chng nhn ln sec va chuyn tra lai cho Bob.
132
Alice giao xe cho Bob cng lc Bob a Alice t sec c chng nhn cua nha
bng.
Giao thc nay thc hin c bi v Alice tin tng vao chng nhn cua nha bng,
tin rng nha bng cm gi s tin cua Bob cho c ta ma khng s dung n vao u t
bt c u.
T tng nay c em ap dung vao th gii may tinh, tuy nhin y xut hin
mt s vn nht inh i vi h thng my tnh:
ti no.
Mang may tinh phai tn thm chi phi quan ly va bao tr may tinh trong tai.
Lun lun c nhng khoang tr vn gn lin vi bt ky mt giao thc c trong
Trong tai phai tham gia vao moi giao dich trn mang, iu c ngha s
tr nn mt im tht nt c chai (bottleneck), d tc trn mang mt khi giao thc a
c trin khai cho mt ng dung rng rai. Tng cng s trong tai c th gip tranh b
tc nay nhng lai lam tng thm chi phi quan ly bao tr nhng may tinh c trong tai .
Mt la mt giao thc khng cn n trong tai, thc hin bt ky khi nao mun
tin hanh giao dich.
Hai la mt arbitrated giao thc ch c s dung khi Alice va Bob cai nhau v
mun c ngi phn x.
V th trong trng hp nay ta khng dng khai nim ngi trong tai (arbitrated) vi
ngha la ngi phai trc tip tham gia vao giao thc, ma s dung ngi phn x
(adjudicator), bao ham y ngha ngi nay khng cn phai c mt khi Alice va Bob tin
hanh giao dich ma ch c mi n khi Alice va Bob yu cu giai quyt tranh cai.
Cung ging nh trong tai, ngi phn x phai khng c quyn li lin can n giao
dich cua Alice va Bob, va c ca hai ngi nay tin tng. Anh ta khng tham gia trc
tip vao giao dich nh trong tai nhng s ng ra xac inh xem la giao dich c c
tin hanh ng khng va xac inh bn sai bn ng nu nh c tranh cai.Nhng im
khac bit gia trong tai va ngi phn x la ngi phn x khng phai lun lun cn
thit, nu c tranh cai th mi cn ngi phn x (khng c tranh cai th thi).
133
Alice ky hp ng.
Bob ky hp ng.
Y tng dng ngi phn x nay c th em vao ap dung trn may tinh. Trong
nhng giao thc th nay nu c mt bn tham gia ma khng trung thc th d liu lu
c t giao thc s cho phep ngi phn x sau nay phat hin c ai la ngi a la
di. Nh vy thay v ngn chn trc s la ao, giao thc ngi phn x s phat hin
c la di nu xay ra, thc t nay khi c ph bin rng rai s c tac dung ngn
chn, lam li bc nhng ke c y inh la ao.
4.3. Giao thc t phn x
Giao thc t phn x la loai tt nht trong s cac giao thc. Loai giao thc nay t
ban thn n c th am bao c tinh cng bng, khng cn n trong tai hay mt thm
phan phn x khi tranh cai. Ngha la giao thc loai nay c ch ra sao cho khng th
c cac k h cho tranh cai nay sinh. Nu c bn nao c y sai lut th tin trnh s cho
phep phia bn kia phat hin ra ngay va giao thc dng lai ngay lp tc. iu mong mun
cho tt ca cac giao thc u nn ch tao nh th, nhng ang tic la khng phai lc nao
cung c giao thc loai nay cho moi tnh hung.
5. Cc dang tn cng i vi giao thc
Nu nh giao thc c coi nh mt nghi thc giao tip cac bn lam vic vi
nhau th i vi cryptography giao thc, bn di cai v ngoai giao la cac ky thut,
cac thut toan mt ma c vn dung, cai t trong cac bc cu th cua giao thc. Cac
tn cng cua ke pha hoai nhm pha hoai tinh an ninh cua h thng cung nh xm pham
tinh bi mt ring t cua thng tin, c th hng vao mt trong cac yu t sau: cac x ly
ky thut, cac thut toan mt ma hay la chinh ban thn giao thc.
Trong phn nay, chng ta hay gac lai kha nng th nht - gia s rng cac ky thut
va thut toan mt ma u la an toan; chng ta ch xem xet kha nng th hai, tc la phn
tich cac dang tn cng c th, trong ke th li dung cac ke h logic kim li hay
pha hoai. Cac dang tn cng c th phn thanh hai loai chinh nh sau:
134
Vi dang tn cng thu ng: ke ich ch ng ngoai nghe trm ch khng can
thip hay anh hng g n giao thc. Muc ich cua n la c gng quan sat va thu lm
thng tin. Tuy nhin thng tin nghe trm c ch dang ma hoa, do ke ich cn phai
bit cach phn tich, giai ma th mi dng c (cipher only attack). Mc d hnh thc tn
cng nay khng manh nhng rt kh phat hin v ke ich khng gy ng.
135
136
1:
12 5
Cu 2 : Cho kho a K =
v tin gc l July xc nh trn trng Z
3 7
Tm tin m theo gii thut Hill cipher.
26.
Cu 2 : Cho vec t siu tng A = (1, 2, 4, 8, 16, 32, 64, 128), m = 301, u =
31, v tin gc (bn r) l 10. Tm tin m (bn m) theo giai thu t Knapsack.
Cu 3: Cc mnh sau ng hay sai, gii thch?
1. Trong ch m mc xch thng ip c chia thnh n khi, nu nh
khi th i b li trc khi em m ha th s lm nh hng ti cc khi
m ha sau .
2. Cho N = 2000, khi gi tr hm le ca N: (N) = 800.
3. Giao thc 3 bc Shamir l giao thc trao i thng tin khng cn trao i
kha.
4. Cc h ch k in t hot ng theo 3 bc: sinh ch k, gi ch k v
kim tra ch k.
5. Cc h m mt SKC v PKC u cho php s dng trong m hnh ch k
in t.
6. C ch m mc xch an ton hn c ch bng tra m in t.
4:
Cu 1 : V lc gii t hu t sinh ma DES va giai thic h cac cng thc c
dng.
Cu 2 : Cho vec t siu tng a = (1, 2, 4, 8, 16, 32, 64, 128), m = 300, w = 29,
v tin gc l 16. Tm tin m theo gii thut Knapsack.
Cu 3: Cc mnh sau ng hay sai, gii thch?
1. T lut Kierchoff suy ra mun tng an ton ca mt h m mt cn s
dng thut ton m ha cng phc tp cng tt.
2. So vi kiu tn cng th ng kiu tn cng ch ng kh pht hin hn
v nguy him hn.
3. Giao thc 3 bc Shamir l giao thc trao i thng tin khng cn trao i
kha.
4. Mt trong cc yu im chnh ca h Knapsack l vic lu kha cn b
nh ln.
5. iu kin giao thc 3 bc Shamir hot ng l:
EZ2-1(EZ1(EZ2 ( X ))) = EZ2 (X).
6. Cc h m mt kha cng khai thng c gi l PKC trong PKC c
ngha l Private Key Cryptography.
5:
Cu 1 : V lc sinh kha t kha chnh ca DES v gii thch cc cng
thc c dung.
Cu 2 : Cho p = 13, q = 23, e = 173, v tin m l 122. Tm tin gc theo gii
thu t RSA.
138
139