You are on page 1of 148

B GIAO THNG VN TI

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

TN HC PHN : An ton v bo mt Thng tin


M HC PHN : 17212
TRNH O TO : I HC CHNH QUY
DNG CHO SV NGNH : CNG NGH THNG TIN

HI PHNG - 2008

Tn hc phn: An toan bao m t thng tin


B mn ph trch ging dy: Khoa hc my tnh.
Khoa ph trch: Cng ngh thng tin
M hc phn:
TS tit
75

L thuyt
45

Thc hnh/ Xemina


30

T hc
0

Loi hc phn: II
Tng s TC: 3
Bi tp ln
0

n mn hc
0

iu kin tin quyt:


Sinh vin c n ho c xong cac ho c ph n :
-

L p trinh hng i t ng

C u truc d li u

Phn tich, thi t k va anh gia thu t toan.

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.

Phn phi s tit


TS

LT

Xemine

BT

KT

1
1

Chng II. Mt s phng php m ha c in.

13

2.1. Phng php m n gin.


2.1.1. M hon v trong bng Alphabet.
2.1.2. Mt m cng tnh.
2.2.3. Mt m nhn tnh.
2.1.4. Phn tch m theo phng php thng k.
2.2. Phng php m bng phng th tn xut.
2.2.1. M vi bng th ng m.
2.2.2. M a bng th: gii thut m Vigenre v One time
pad.
2.2.3. L thuyt v s b mt tuyt i.
2.2.4. nh gi mc bo mt ca mt phng php
m ha.
Ki m tra
Chng III. Mt m khi.

4.1. Khi nim kha cng khai.


4.1.1. c trng v ng dng ca h m kha cng khai.
4.1.2. Nguyn tc cu to h kha cng khai
4.2. Gii thiu mt s gii thut PKC ph bin.
4.1.1. H m Trapdoor Knapsack.
4.1.2. H m RSA

1
16

3.1. Khi nim.


3.1.1. iu kin an ton cho mt m khi
3.1.2. Nguyn tc thit k.
3.2. Chu n ma hoa d li u DES
3.2.1. Lch s ca DES
3.2.2. Cu trc vng lp DES.
3.2.3. Thut ton sinh kha con
3.2.4. Cu trc hm lp.
3.2.5. Thut ton gii m DES.
3.2.6. nh gi mc an ton bo mt ca DES.
3.2.7. TripleDES
3.3. Chu n ma hoa cao c p AES
3.3.1. Gii thi u v AES
3.3.2. Thu t toan ma hoa
3.3.3. Thu t toan giai ma
3.3.4. Ci t AES
3.4 Mt s ch s dng m khi.
3.4.1. Ch bng tra m in t
3.4.2. Ch m mc xch
3.4.3. Ch m phn hi
Chng IV. H thng m vi kha cng khai.

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

7.1. Khi nim giao thc mt m


7.1.1. nh ngha giao thc mt m
7.1.2. Mc ch giao thc mt m.
7.1.3. Cc bn tham gia vo giao thc mt m
7.2. Tm hiu thit k cc giao thc mt m in hnh
7.2.1. Mt s dng tn cng i vi giao thc mt m.
7.2.2. Gii thiu mt s giao thc mt m.
7.3. Kim tra.

0,5

3
2

0,5

3
1,5
1,5
8

6.1. Qun l kha i vi h SKC


6.1.1. Gii thiu phng php qun l kha.
6.2. Qun l kha trong cc h PKC
6.2.1. Giao thc trao chuyn kha Needham Schoeder
6.2.2. Giao thc trao i khoa Diffie-Hellman
6.2.3. Giao thc Kerberos
Chng VII. Giao thc mt m

1
1
1
1

1
2

Nhim v ca sinh vin: Ln lp y v chp hnh mi quy nh ca Nh trng.


Ti liu hc tp:
1. Phan nh Diu. L thuyt mt m v An ton thng tin. i hc Quc Gia H
Ni.
2. Douglas R. Stinson. Cryptography Theory and practice. CRC Press. 1995.
3. A. Menezes, P. VanOorschot, and S. Vanstone. Handbook of Applied
Cryptography. CRC Press. 1996.

4. William Stallings. Cryptography and Network Security Principles and Practices,


Fourth Edition. Prentice Hall. 2005.
5. MichaelWelschenbach. Cryptography in C and C++. Apress. 2005.
Hnh thc v tiu chun nh gi sinh vin:
- Sinh vin phi lm cc bi kim tra trong qu trnh hc v thc hnh. Thi vn p.
- Sinh vin phi bo m cc iu kin theo Quy ch ca Nh trng v ca B.
Thang im : Thang im 10.
im nh gi hc phn: Z = 0,3 X + 0,7 Y.

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

2.4. Triple DES (3DES)............................................................................................ 52


2.5. Chu n ma hoa cao c p AES ............................................................................. 54
2.6. Cac c ch, hnh thc s dung cua ma ha khi (Mode of Operation) ............. 68
3. Bai tp ..................................................................................................................... 72
CHNG IV: CAC H MA MT KHOA CNG KHAI...................................................... 77
1. Khai nim h ma mt kha cng khai ...................................................................... 77
2. Nguyn t c c u tao cua cac h ma mt khoa cng khai .......................................... 78
3. Mt s h ma khoa cng khai .................................................................................. 78
3.1. H ma knapsack ............................................................................................... 78
3.2. H ma RSA....................................................................................................... 79
3.3. H ma El Gamal ............................................................................................... 83
3.4. Cac h ma mt da trn cac ng cong Elliptic ............................................. 85
4. Bai tp ..................................................................................................................... 96
CHNG V: CH KY IN T VA HAM BM............................................................ 101
1. Ch ky in t....................................................................................................... 101
1.1. Khai nim v ch ky in t ........................................................................... 101
1.2. H ch ky RSA ............................................................................................... 102
1.3. H ch ky ElGammal ...................................................................................... 103
1.4. Chun ch ky in t (Digital Signature Standard) ......................................... 106
1.5. M hinh ng dung cua ch ky in t ................................................................ 108
2. Ham Bm (Hash Function) .................................................................................... 109
2.1. Khai nim ....................................................................................................... 109
2.2. c tinh cua ham Bm ................................................................................... 109
2.3. Birthday attack ................................................................................................ 110
2.4. Mt s ham Bm ni ting .............................................................................. 111
2.5. Mt s ng dung cua ham Bm ...................................................................... 118
3. Bai tp ................................................................................................................... 119
CHNG VI: QUAN LY KHOA..................................................................................... 120
1. Quan ly khoa trong cac mang truyn tin ................................................................ 120
2. Mt s h phn phi khoa ..................................................................................... 120
2.1. S phn phi khoa Blom ........................................................................... 120
2.2. H phn phi khoa Kerberos .......................................................................... 122
2.3. H phn phi khoa Diffe-Hellman ................................................................... 123
3. Trao i khoa va thoa thun khoa ......................................................................... 124
3.1. Giao thc trao i khoa Diffie-Hellman ........................................................... 124
3.2. Giao thc trao i khoa Diffie-Hellman c chng ch xac nhn ....................... 125
3.3. Giao thc trao i khoa Matsumoto-Takashima-Imai...................................... 126
3.4. Giao thc Girault trao i khoa khng chng ch ............................................ 127
4.Bai tp .................................................................................................................... 128
CHNG VII: GIAO THC MT MA ........................................................................... 130
1. Giao thc .............................................................................................................. 130
2. Muc ich cua cac giao thc ................................................................................... 130
3. Cac bn tham gia vao giao thc (the players in protocol) ...................................... 131
4. Cac dang giao thc ............................................................................................... 132
4.1. Giao thc c trong tai ..................................................................................... 132
4.2. Giao thc c ngi phn x ........................................................................... 133
4.3. Giao thc t phn x ..................................................................................... 134
5. Cac dang tn cng i vi giao thc ..................................................................... 134
TAI LIU THAM KHAO.................................................................................................. 136

Danh mc hnh v

DANH MUC HINH VE


Hnh 1.1: M hnh c ban cua truyn tin bao mt .............................................................. 5
Hnh 3.1: Chu n ma hoa d liu DES ............................................................................. 36
Hnh 3.2: S ma hoa DES .......................................................................................... 38
Hnh 3.3: S mt vng DES ....................................................................................... 39
Hnh 3.4: S tao khoa con cua DES .......................................................................... 41
Hnh 3.5: S ham f ..................................................................................................... 43
Hnh 3.6: S ham m rng (E) ................................................................................... 44
Hnh 3.7: Triple DES ....................................................................................................... 53
Hnh 3.8: Cac trang thai cua AES .................................................................................... 56
Hnh 3.9: Thut toan ma ha va giai ma cua AES ........................................................... 59
Hnh 3.10: Ham ShifftRows() ........................................................................................... 62
Hnh 3.11: Ham MixColumns cua AES ............................................................................ 63
Hnh 3.12: Ham AddRoundKey cua AES ......................................................................... 63
Hnh 3.13: Ham InvShiftRows() cua AES ......................................................................... 66
Hnh 3.14: C ch ECB ................................................................................................... 69
Hnh 3.15: Ch CBC ................................................................................................... 70
Hnh 3.16: Ch CFB ................................................................................................... 71
Hnh 4.1: M hinh s dung 1 cua cac h ma kha cng khai PKC .................................. 78
Hnh 4.2: M hinh s dung 2 cua cac h ma kha cng khai PKC .................................. 78
Hnh 4.3: M hin
h ng dung lai ghep RSA vi cac h ma kh i ........................................ 83
Hnh 4.4: Cac ng cong Elliptic trn trng s th c ................................................... 87
Hnh 4.5: Hnh biu din E 24(g4, 1) .................................................................................. 92
Hnh 4.6: Phng phap trao i khoa Diffie-Hellman d a trn ECC................................ 94
Hnh 5.1: M hinh ng dung cua ch ky in t ........................................................... 108
Hnh 5.2: S ch ky s dung ham Bm ................................................................... 109
Hnh 5.3: S vng lp chinh cua MD5 ...................................................................... 112
Hnh 5.4: S mt vng lp MD5 ............................................................................... 113
Hnh 5.5: S mt vng lp cua SHA ......................................................................... 117

Danh mc bng

DANH MUC BANG


Bang 2.1: Bang bc cua cac phn t trn Z*21 ................................................................. 19
Bang 2.2: Bang luy tha trn Z13 ..................................................................................... 20
Bang 3.1: Bang anh s cac ch cai ting Anh ............................................................... 29
Bang 3.2: Ma hoa thay i vi tri ct ................................................................................. 32
Bang 3.3: Ma ha theo mu hnh hoc .............................................................................. 33
Bang 3.4: Vi du ma ha theo mu hnh hoc .................................................................... 33
Bang 3.5: Ma ha hoan vi theo chu ky ............................................................................ 34
Bang 3.6: Bang hoan vi IP ............................................................................................... 39
Bang 3.7: Bang hoan vi ngc IP-1 ................................................................................. 39
Bang 3.8: Bang PC-1 ...................................................................................................... 41
Bang 3.9: Bang dich bit tai cac vng lp cua DES ........................................................... 42
Bang 3.10: Bang PC-2 .................................................................................................... 42
Bang 3.11: Bang m ta ham m rng E .......................................................................... 44
Bang 3.12: Hp S1........................................................................................................... 45
Bang 3.13: Hp S2........................................................................................................... 45
Bang 3.14: Hp S3........................................................................................................... 45
Bang 3.15: Hp S4........................................................................................................... 46
Bang 3.16: Hp S5........................................................................................................... 46
Bang 3.17: Hp S6........................................................................................................... 46
Bang 3.18: Hp S7........................................................................................................... 46
Bang 3.19: Hp S8........................................................................................................... 46
Bang 3.20: Bang hoan vi P .............................................................................................. 47
Bang 3.21: Vi du v cac bc thc hin cua DES .......................................................... 50
Bang 3.22: Cac kha yu cua DES ................................................................................. 51
Bang 3.23: Cac kha na yu cua DES .......................................................................... 51
Bang 3.24: Qui c mt s t vi t t t va thut ng cua AES .......................................... 54
Bang 3.25: Bang biu din cac xu 4 bit ......................................................................... 56
Bang 3.26: Bang dai kha cua AES ............................................................................ 57
Bang 3.27: Bang th S-Box cua AES .............................................................................. 61
Bang 3.28: Bang th cho ham InvSubBytes() .................................................................. 66
Bang 4.1: T c cua thut toan Brent-Pollard ................................................................ 81
Bang 4.2: Bi u din cua tp E23(1, 1) ............................................................................. 89
Bang 4.3: Bang so sanh cac h ma ECC vi h ma RSA................................................ 95

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

Chng I: Gii thi u


CHNG I: GII THIU
1. An toan bao m t thng tin va m t ma hoc
Trai qua nhiu th ky hang loat cac giao thc (protocol) va cac c ch (mechanism)
a c tao ra ap ng nhu c u an toan bao mt thng tin khi ma no c truy n tai
trn cac phng tin vt ly (gi y, sach, bao ). Thng thi cac muc tiu cua an toan bao
mt thng tin khng th at c n u chi n thu n d a vao cac thut toan toan hoc va
cac giao thc, ma at c iu nay i hi cn c cac ky thut mang tinh thu tuc va
s tn trong cac i u lut . Ch ng han s bi mt cua cac bc th tay la do s phn phat
cac la th a c ng du bi mt dich vu th tin a c chp nhn . Tinh an toan v
mt vt ly cua cac la th la han ch (n c th bi xem trm ) nn am bao s bi m t
cua bc th phap lut a a ra qui inh : vic xem th ma khng c s ng y cua
chu nhn hoc nhng ngi c thm quyn la pham phap va s bi trng phat
. i khi
muc ich cua an toan bao mt th ng tin lai at c nh chinh phng tin vt ly mang
chng, ch ng han nh ti n gi y oi hoi phai c in b ng loai m c va gi y t t khng
bi lam gia.
V mt y tng vic lu gi thng tin la khng co nhi u thay i ang k qua thi
gian. Ngay xa thng tin thng c lu va vn chuyn trn giy t , trong khi gi y
chng c lu di dang s ha va c vn chuyn bng cac h thng vin thng
hoc cac h th ng khng dy . Tuy nhin s thay i ang k n y chinh la kha
nng sao chep va thay i thng tin. Ngi ta co th tao ra hang ngan m u tin gi ng nhau
va khng th phn bit c n vi ban gc . Vi cac tai liu lu tr va vn chuy n trn
gi y i u nay kho khn hn nhi u. Va iu cn thit i vi mt xa hi ma thng tin hu
h t c lu tr va vn chuy n trn cac phng tin in t chin
h la cac phng tin
am bao an toan bao mt thng tin c lp vi cac phng tin lu tr va vn chuyn vt
ly cua n . Phng tin o chinh la mt ma hoc , mt nganh khoa hoc co lich
s lu i
d a trn n n tang cac thut toan toan hoc, s hoc, xac sut va cac mn khoa hoc khac.
2. Khi nim h thng va tai sn cua h thng
Khai nim h thng : H th ng la mt tp h p cac may tinh g m cac thanh ph n
ph n cng, ph n m m va d liu lam vic c tich luy qua thi gian.
Tai san cua h thng bao gm:

Ph n cng

Ph n m m

D liu

Cac truyn thng gia cac may tinh cua h thng

Mi trng lam vic

Con ngi

3. Cc mi e doa i vi mt h thng va cc bin php ngn chn


Co 3 hinh thc chu yu e doa i vi h thng:

Chng I: Gii thi u

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

Cac e doa i vi mt h thng thng tin c th n t nhiu ngun va c thc


hin bi cac i t ng khac nhau . Chng ta c th chia thanh 3 loai i tng nh sau :
cac i tng t ngay bn trong h thng (insider), y la nhng ngi co quy n truy cp
h p phap i vi h th ng , nhng i t ng bn ngoai h th ng
(hacker, cracker),
thng cac i t ng nay t n cng qua nhng ng k t n i vi h th ng nh Internet
ch ng han, va th ba la cac ph n m m (ch ng han nh spyware, adware ) chay trn h
th ng.
Cc bin php ngn chn:
Thng co 3 bin phap ngn chn:

i u khi n thng qua ph n m m : d a vao cac c ch an toan bao mt cua h


th ng n n (h i u hanh), cac thut toan mt ma hoc

i u khi n thng qua ph n cng : cac c ch bao mt , cac thut toan mt ma


hoc c cng ha s dung

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

Hai nguyn t c cua an toan bao mt thng tin:

Chng I: Gii thi u

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

Ma ha: nghin cu cac thut toan va phng thc am ba o tinh bi mt va


xac thc cua thng tin (thng la di dang ca c vn ban lu tr trn may tinh ). Cac san
ph m cua linh
v c nay la cac h ma mt , cac ham bm , cac h ch ky in t , cac c
ch phn ph i, quan ly kha va cac giao thc mt 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 thay th la phng thc ma hoa ma tng ky t gc hay


mt nhm ky t gc cua ban r c thay th bi cac t, cac ky hiu khac hay kt hp
vi nhau cho ph hp vi mt phng thc nht inh va khoa.

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)

P l khng gian bn r: l tp hu hn cc bn r co th co.

2)

C l khng gian bn ma: l tp hu hn cc bn ma co th co.

3)

K l kkhng gian kho: l tp hu hn cc kho co th co.

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]

Chng I: Gii thi u


Thng thi khng gian cac ban ro va khng gian cac ban ma la cac vn ban c
tao thanh t mt b ch cai A nao . o co th la b ch cai ti ng Anh , b ma ASCII, b
ma Unicode hoc n gian nht la cac bit 0 va 1.
Tinh cht 4 la tinh cht quan trong nht cua ma hoa. Ni dung cua n ni rng nu
ma hoa bng ek va ban ma nhn c sau c giai ma bng ham dk th kt qua nhn
c phai la ban r ban u x. R rang trong trng hp nay, ham ek(x) phai la mt n
anh, nu khng th ta s khng giai ma c. V nu tn tai x1 v x2 sao cho y = ek(x1) =
ek(x2) th khi nhn c ban ma y ta khng bit n c ma t x1 hay x2.
Trong mt h mt bt ky ta lun c |C| |P| v mi quy tc ma hoa la mt n anh.
Khi |C| = |P| th mi ham ma hoa la mt hoan vi.
7. M hin
h truy n tin c ban cua m t ma hoc va lut Kirchoff
M hin
h truy n tin thng thng : Trong m hin
h truy n tin thng thng thng tin
c truy n (vn chuy n) t ngi gi n ngi nhn c th c hin nh mt knh vt
ly (ch ng han nh vic gi th) c coi la an toan.
M hnh truy n tin c ban cua mt ma hoc:

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 .

Chng I: Gii thi u


Qua trnh ma ha va giai ma yu cu cac qua trnh bin i d liu t dang nguyn
thuy thanh in put cho vic ma hoa va chuy n output cua qua trinh giai ma thanh ban ro .
Cac qua trnh nay la cac qua trnh bin i khng kha va c goi la cac qua trnh
encode va decode.
Theo lut Kirchoff (1835 - 1903) (mt nguyn t c c ban trong m ho) th: ton b
c ch ma/gii ma tr kho l khng bi mt i vi k ch [5]. R rang khi i phng
khng bit c h ma mt ang s dung thut toan ma hoa gi th vic tham ma s rt
kh khn. Nhng chng ta khng th tin vao an toan cua h ma mt ch da vao mt
gia thit khng chc chn la i phng khng bit thut toan ang s dung . V vy, khi
trnh bay mt h mt bt ky , chng ta u gia thit h mt c trnh bay di lut
Kirchoff.
Y nghia cua lut Kirchoff : s an toan cua cac h ma mt khng phai da vao s
phc tap cua thut toan ma hoa s dung.
8. S lc v lich
s m t ma hoc
Mt ma hoc la mt nganh khoa hoc co mt lich
s khoang
4000 nm. Cac c vt
cua nganh khao c hoc thu c a cho th y i u nay . Nhng ngi Ai cp c ai a s
dung cac ch tng hnh nh la mt dang ma ha n gian nht trn cac bia m cua ho .
Cac tai liu vit tay khac cung cho thy cac phng phap ma ha n gian u tin ma
loai ngi a s dung la cua ngi Ba T c va ngi Do Thai c.
Tuy vy co th chia lich
s mt ma hoc thanh hai thi ky nh sau:
Thi ky ti n khoa hoc : T trc cng nguyn cho ti nm 1949. Trong giai oan
nay mt ma hoc c coi la mt ngh thut nhiu hn la mt mn khoa hoc mc d a
c ng dung trong th c t .
Lich s cua mt ma hoc c anh du vao nm 1949 khi Claude Shannon a ra
ly thuyt thng tin . Sau thi ky nay mt loat cac nghin cu quan trong cua nghanh mt
ma hoc a c thc hin chng han nh cac nghin cu v ma khi , s ra i cua cac
h ma mt khoa cng khai va ch ky in t.
Qua nhi u th ky phat tri n cua mt ma hoc chu y u c phuc vu cho cac muc
ich qun s (gian ip , ngoai giao , chi n tranh ). Mt vi du i n hinh la 2000 nm
trc y hoang La ma Julius Caesar a tng s dung mt thut toan thay th n
gian ma ngay nay c mang tn ng trong cuc chin tranh Gallic.
Tac phm A manuscript on Deciphering Cryptography Messages cua Abu al -Kindi
c vit vao th ky th 9 c tim th y tai Istabul vao nm 1987 a cho th y nhng nha
khoa hoc A rp la nhng ngi u tin a phat tri n cac phng phap tham ma d a vao
phn tic
h t n s xu t hin cua cac ky t i vi cac h ma thay th n m (mt phng
phap c s dung rng rai trong thi ky Trung c do n gian va kha hiu qua).
chu u thi ky Trung c la mt khoang thi gian u am va tm ti cua lich s nn
khng co nhi u phat tri n manh v vn hoa noi chung va mt ma hoc noi ring . Mt vai
s kin c ghi lai bi cac vi linh muc nhng ch c Roger Bacon la ngi thc s a
vit v mt ma hoc trong tac phm Secret Work of Art and the Nullity of Magic vao gia
nhng nm 1200. Vao thi Trung c mt trong nhng cai tn ni ting nht la Chaucer,
ngi a a ra cac cng trnh nghin cu nghim tc u tin v mt ma hoc trong cac
6

Chng I: Gii thi u


tac phm cua mnh chng han nh Treatise on the Astrolabe. Trong thi ky Trung c
phng Ty cun sach cua Blaise De Vegenere (ngi phat minh ra thut t oan ma ha
thay th a m ti t ) c xem nh la mt tng kt cac kin thc v mt ma hoc cho ti
thi im by gi, bao gm ca thut toan thay th a m tit va mt vai s kha t
ng.
Blaise De Vegenere cung la tac gia cua h ma mang t n ng, h ma nay a tng
c xem la an toan tuyt i va c s dung trong mt thi gian dai, tuy nhin Charles
Babbages a thc hin tham ma thanh cng vao nm 1854 nhng iu nay c gi bi
mt. Mt thut toan tham ma c phat hin c lp bi mt nha khoa hoc ngi Ph
(thuc nc c ngay nay ) c tn l Friedrich Kasiski . Tuy vy do vic thiu cac thit bi
cai tin nn cac bin th cua thut toan ma ha nay vn cn c s dung trong nhng
nm u cua th ky 20 ma tiu biu nht la vic tham ma thanh cng may in tin
Zimmermann cua qun c (mt trong cac s kin tiu bi u cua mt ma hoc ) trong th
chin th nht va kt qua la s tham gia cua My vao cuc chin.
Vi s xu t hin cua cac h th ng may tinh ca nhn va mang may tinh cac thng tin
vn ban ngay cang c lu tr va x ly nhi u hn trn cac may tinh do o nay sinh yu
c u v an toan bao mt i vi cac thng tin c lu tr , x ly va truy n gia cac may
tinh.
Vao u nhng nm 1970 la s phat trin cua cac thut toan ma ha khi u tin :
Lucipher v DES . DES sau o a co mt s phat tri n ng dung r c r cho ti u
nhng nm 90.
Vao cui nhng nm 1970 chng kin s phat trin cua cac thut ton m ha
kha cng khai sau khi Whitfield Diffie va Martin Hellman cng b bai bao New Directions
in Cryptography lam nn tang cho s ra i cua cac h ma kha cng khai va cac h
ch ky in t.
Do nh c i m cua cac h ma mt khoa cng khai la chm nn cac h ma kh i vn
ti p tuc c phat tri n vi cac h ma kh i mi ra i thay th cho DES vao cu i th
ky 20 nh IDEA, AES hoc 3DES (mt cai ti n cua DES).
G n y nh t la cac s kin lin quan ti cac ham bm MD 5 (mt ham bm thuc
ho MD do Ron Rivest phat trin ) va SHA 1. Mt nhom cac nha khoa hoc ngi Trung
Qu c (Xiaoyun Wang, Yiqun Lisa Yin, Hongbo Yu) a phat tri n cac phng phap cho
phep phat hin ra cac ung cua cac ham bm c s dung rng rai nht trong s cac
ham bm nay. y la mt s kin ln i vi nganh mt ma hoc do s ng dung rng rai
va c th xem la cn quan trong hn ban thn cac h ma mt cua cac ham bm . Do s
kin nay cac hang vi t ph n m m ln (nh Microsoft) va cac nha mt ma hoc a khuyn
cao cac lp trnh vin s dung cac ham bm manh hn (nh SHA-256, SHA-512) trong
cac ng dung.
Bruce Schneier (mt trong nhng nha mt ma hoc hang u , tac gia cua h ma
Blowfish) a tng noi r ng cac hin
h thc t n cng i vi cac h ma mt noi ring va t n
cng i vi cac h th ng may tin
r nn hoan thin hn
h noi chung se ngay cang t
Attacks always get better ; they never get worse . va lich
s phat tri n cua mt ma hoc
chinh la lich s phat trin cua cac hnh thc tn cng i vi cac h ma mt ang c
s dung.

Chng I: Gii thi u


9. Phn loai cac thu t toan m t ma hoc
C nhiu cach khac nhau chng ta c th phn loai cac thut toan mt ma hoc
s c hoc trong chng trnh . y chng ta s phn loai cac thut toan mt ma hoc
d a vao hai loai tiu chi .
Tiu chi th nh t la d a vao cac dich
vu an toan bao mt ma cac thut toan cung
c p, d a vao s l ng khoa s dung (0, 1, 2) chng ta c cac thut toan ma ha sau:
1. Cac thut toan ma ha kha bi mt tng ng vi cac h ma mt kha bi mt
hay khoa i xng SKC (Symmetric Key Cryptosytems), do vai tro cua ngi nhn va
ngi gi la nh nhau , ca hai u c th ma ha va giai ma thng ip , nh Caesar ,
DES, AES Khoa s dung cho cac thut toan nay la 1 kha cho ca vic ma ha va giai
ma.
2. Cac thut toan ma ha kha cng khai tng ng vi cac h ma kha cng
khai PKC (Public Key Cryptosystems). i khi cac h ma nay cn c goi la cac h ma
kha bt i xng (Asymmetric Key Cryptosytems). Kha s dung cho cac thut toan nay
la 2 kha, mt cho vic ma hoa va mt cho vic giai ma , kha ma ha c cng khai
ha.
3. Cac thut toa n tao ch ky in t
(Digital Signature Algorithms). Cac thut
toan tao ch ky in t tao thanh cac h ch ky in t . Thng thng mi h ch ky
in t co cung c s ly thuy t vi mt h ma mt khoa cng khai nhng
vi cach ap
dung khac nhau . Trong chng trinh hoc chung ta se hoc mt s h ch ky in t ph
bi n la RSA, ElGammma
4. Cac ham bm (Hash functions). Cac ham bm la cac thut toan ma ha khng
kha hoc c kha va thng c s dung trong cac h ch ky in t hoc cac h ma
kha cng khai.
Tiu chi th hai phn loai cac thut toan ma hoa d a trn cach thc x ly input cua
thut toan (tc la ban ro ), d a trn tiu chi nay chung ta co hai loai thut toan ma hoa
sau:
1. Cac thut toan ma ha khi (ch ng han nh DES , AES ) x ly ban ro di
cac n vi c ban la cac khi c kich thc ging nhau.
2.

Cac thut toan ma ha dng (RC4 ) coi ban ro la mt lu ng bit, byte lin tuc.

10. Mt s ng dung cua m t ma hoc


Ngay nay kh c th tm thy cac ng dung trn may tinh lai khng s dung ti cac
thut toan va cac giao thc mt ma hoc . T cac ng dung cho cac may tinh ca nhn
(Desktop Applications ) cho ti cac chng trinh h th ng nh cac h i u hanh
(Operating Systems) hoc cac ng dung mang nh Yahoo Messenger hoc cac h c s
d liu u co s dung cac thut toan ma hoa mt kh u ng
i dng bng mt h ma
hoc mt ham bm nao o . c bit vi s phat trin manh m cua thng mai in t
cac m hnh ch ky in t ngay cang ng vai tr tich cc cho mt mi trng an toan
cho ngi dung. Tuy vy chng ta vn c th chia cac lnh vc ng dung cua mt ma hoc
thanh cac lnh vc nh nh sau:

Chng I: Gii thi u

Bao mt (Confidentiality): che d u ni dung cua cac thng ip c trao i


trong mt phin truy n thng hoc giao dich
hoc cac thng ip trn mt h th ng may
tinh (cac file, cac d liu trong mt c s d liu ).

Xac thc ha (Authentication): am bao ngu n g c cua mt thng ip , ngi

dng.

Toan ven (Integrity): am bao chi co cac t chc a c xac th c hoa mi co


th thay i cac tai san cua h th ng cung nh cac thng tin trn ng truy n.

Dich vu khng th chi t


(Non-Repudiation): Cac bn a c xac thc
khng th phu nhn vic tham gia vao mt giao dich hp l.

Ngoai ra cn cac dich vu quan trong khac chng han nh ch ky in t , dich


vu chng thc danh tinh (Identification) cho phep thay th hinh thc xac th c hoa ngi
dng d a trn cac mt kh u b ng cac ky thut manh hn hoc dich
vu thng mai in
t cho phep ti n hanh cac giao dich
an toan trn cac knh truy n thng khng an toan
nh Internet.

Chng II: C s ton hoc


CHNG II: C S TOAN HOC
hi u c nhng thut toan s dung trong cac h ma mt , trong cac h ch ky
in t cung nh cac giao thc mt ma , chng ta phai c nhng kin thc n n tang c
ban v toan hoc, ly thuyt thng tin c s dung trong mt ma hoc. Chng nay trin
h
bay nhng khai nim c ban v ly thuy t thng tin nh Entropy , t c cua ngn ng
(Rate of Language), phc tap cua thut toan , an toan cua thut toan , va mt s
ki n thc toan hoc: ng d s hoc (modulo), s nguyn t , inh
ly ph n d trung hoa ,
inh
ly Fermat . . . va cac thut toan ki m tra s nguyn t . Nhng v n chin
h se c
trnh bay trong chng nay gm :
Ly thuyt thng tin
Ly thuyt phc tap
Ly thuyt s hoc.
1. Ly thuyt thng tin
Nhng khai nim m u cua ly thuyt thng tin c a ra l n u tin vao nm
1948 bi Claude Elmwood Shannon (mt nha khoa hoc c coi la cha cua ly thuy t
thng tin). Trong ph n nay chung ta chi cp ti mt s chu quan trong cua ly thuy t
thng tin.
1.1. Entropy
Ly thuyt thng tin inh ngha kh i l ng thng tin trong mt thng bao la s bit nh
nh t c n thi t ma hoa t t ca nhng nghia co th cua thng bao o.
Vi du, trng ngay_thang trong mt c s d liu cha khng qua 3 bit thng tin,
bi vi thng tin ngay c th ma hoa vi 3 bit d liu:
000 = Sunday
001 = Monday
010 = Tuesday
011 = Wednesday
100 = Thursday
101 = Friday
110 = Saturday
111 is unused
N u thng tin nay c bi u din bi chui ky t ASCII tng ng , n s chim
nhi u khng gian nh hn , nhng cung khng cha nhi u thng tin hn . Tng t nh
trng gioi_tinh cua mt c s d liu ch cha 1 bit thng tin, n c th lu tr nh mt
trong hai xu ky t ASCII : Nam, N.
Kh i l ng thng tin trong mt thng bao M o bi Entropy cua thng bao o, ky
hiu la H(M). Entropy cua thng bao gioi _tinh la 1 bit, ky hiu H (gioi_tinh) = 1, Entropy
cua thng bao s ngay trong tun la nh hn 3 bits.

10

Chng II: C s ton hoc


Trong trng h p t ng quat, Entropy cua mt thng bao la log 2n, vi n la s kha
nng co th (y ngha) cua thng bao.

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

D = 1 - .28 = .72 letters/letter


D = 4.7 1.3 = 3.4 bits/letter
Nh vy mi ch cai co 1.3 bit nghia va 3.4 bit d tha (x p xi 72%).
1.3. Tinh an toan cua h th ng ma hoa
Shannon inh
nghia r t ro rang , t m cac m hnh toan hoc anh gia an toan
cua cac h ma mt s dung . Muc ich cua ngi tham ma la phat hin ra khoa s dung
cua h ma (K-Key), ban r (P-PlainText), hoc ca hai . Hn na ho co th hai long vi
mt vai thng tin co kha nng v ban ro P ch ng han nh o la m thanh dang s , hoc
la mt vn ban ti ng c, hoc la mt bang tinh d liu, v. v . . .
Trong h u h t cac l n tham ma, ngi tham ma thng c g ng thu thp mt s
thng tin co kha nng v ban r P trc khi b t u. Ho c th bit ngn ng a c s
dung ma hoa. Ngn ng nay ch c ch n co s d tha k t h p vi chin
h ngn ng o.
N u no la mt thng bao gi ti Bob, n c th bt u vi "Dear Bob". oan vn ban

11

Chng II: C s ton hoc


"Dear Bob" s la mt kha nng c th hn la mt chui khng mang y nghia gi ch ng han
"tm*h&rf". Muc ich cua vic tham ma la sa nhng tp h p kha nng co th co cua ban
ma (C-CipherText) vi mi kha nng co th cua ban ro.
Shannon phat tri n ly thuy t cho r ng , h th ng ma hoa chi an toan tuyt i n u
n u s kho a c th s dung it nht phai b ng s thng bao co th . Hi u theo mt nghia
khac, khoa ti thiu cua h ma phai dai bng thng bao cua h ma o.
Ngoai tr cac h ma an toan tuyt i , cac ban ma thng cha mt s thng tin
ung vi ban ro , i u nay la khng th tranh c . Mt thut toan mt ma t t gi cho
thng tin bi tit l mc nh nht va mt ngi tham ma gioi se khai thac t t nhng
thng tin nay phat hin ra ban r.
Ngi tham ma s dung s d tha t nhin cua ngn ng lam giam s kha
nng co th c cua ban r . Nhi u thng tin d tha cua ngn ng , s d dang hn cho
qua trnh tham ma. Chinh v ly do nay ma nhiu m hin h ma hoa s dung thut toan nen
ban r giam kich thc vn ban trc khi ma hoa chng. V qua trnh nen lam giam s
d tha cua thng bao . Entropy cua mt h ma mt la kich thc cua khng gian khoa
(Keyspace).
H(K) = log2(number of keys )
Shannon cung a ra mt khai nim goi la Unicity Distance (ky hiu la U ) anh
gia an toan cua mt h ma mt. i vi mt h ma mt U cua n la:
U = H(K)/D
y la s nho nh t cac ban ma c n thi t co th ti n hanh tham ma theo cach th
t t ca cac khoa co th (brute-force attack) thanh cng. Ch ng han i vi h ma thay th
n m (nh Caesar) trn bang ch cai ti ng Anh ta se co:
H(K)= log226! = 87. D = 3.4 suy ra U = 25.5.
i u nay co nghia la n u chung ta co khoang 25 ch cai ban ma chung ta chi co th
th khp vi mt ban ro.
Khai nim Unicity Distance la mt khai nim mang tinh xac sut n cho chng ta
bi t s l ng it nht cac ban ma cn c c th xac inh duy nht 1 ban ma ch khng
phai la s ban ma u tin hanh tham ma (ch c ch n thanh cng ). N u chung ta co s
ban ma it hn s U th khng th ni la d oan (phep th) cua chng ta la ng . D a
vao cng thc nay chng ta thy nu nh d tha cua ngn ng cang gn 0 th cang
kh tham ma mc d c th la mt h ma rt n gian . Cung da vao cng thc nay
suy ra tng tinh an toan cua h ma co th tng khng gian khoa cua no.
1.4. Ky thut ln xn va rm ra (Confusion and Diffusion)
Theo Shannon, c hai ky thut c ban che du s d tha thng tin trong thng
bao gc, o la: s ln xn va s rm ra.
Ky thut ln xn (Confusion): che d u m i quan h gia ban ro va ban g c . Ky
thut nay lam th t bai cac c g ng nghin cu ban ma tm kim thng tin d tha va
th ng k mu . Phng phap d nh t t h c hin i u nay la thng qua ky thut thay
th . Mt h ma hoa thay th n gian , ch ng han h ma dich
vong Caesar , d a trn n n

12

Chng II: C s ton hoc


tang cua s thay th cc ch cai cua ban r, ngha la ch cai nay c thay th bng
ch cai khac
Ky thut rm ra (Diffusion): lam mt i s d tha cua ban r bng cach tng
s phu ban ma vao ban r (va kha). Cng vic tim ki m s d tha cua ngi tham ma
s rt mt thi gian va phc tap. Cach n gian nht tao ra s rm ra la thng qua vic
i ch (hay con goi la ky thut hon vi).
Thng thng cac h ma hin ai thng k t h p ca hai ky thut thay th va hoan
vi tao ra cac thut toan ma ha c an toan cao hn.
2. Ly thuyt phc tap
Ly thuyt phc tap cung cp mt phng phap phn tich phc tap tinh
toan cua thut toan va cac ky thut ma hoa khac nhau . N so sanh cac thut toan ma
hoa, ky thut va phat hin ra an toan cua cac thut toan . Ly thuyt thng tin a cho
chung ta bit rng mt thut ton ma ho co th b bi l . Cn ly thuyt phc tap cho
bi t kha nng bi tham ma cua mt h ma mt.
phc tap thi gian cua thut toan la mt ham cua kich thc d liu input cua
thut toan o . Thut toan co phc tap thi gian f (n) i vi moi n va kich thc input
n, ngha la s bc th c hin cua thut toan ln hn f(n) bc.
phc tap thi gian thu t toan phu thuc vao m hnh cua cac thut toan , s cac
bc nho hn n u cac hoat ng c tp trung trong mt bc (ch ng han nh cac
vng lp, cac li goi ham ).
Cac lp cua thut toan, vi phc tap thi gian la mt ham mu i vi kic h thc
input c coi la "khng co kha nng th c hin ". Cac thut toan c phc tap ging
nhau c phn loai vao trong cac lp tng ng . Vi du tt ca cac thut toan c
phc tap la n3 c phn vao trong lp n 3 va ky hiu bi O(n3). C hai lp tng quat s
c la lp P (Polynomial) va lp NP (NonPolynomial).
Cac thut toan thuc lp P c phc tap la ham a thc cua
kich thc input .
N u mi bc ti p theo cua thut toan la duy nh t thi thut toan goi la n inh

. 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

Chng II: C s ton hoc


thai chinh xac. S(w) la trang thai o s thanh cng ngn nht cua thut toan, (Ngha la s
tinh toan dn n trang thai cui cng)
Ham s phc tap thi gian cua may Turing khng n inh A c inh ngha :
fA(n)=max{1,m/s(w) co m bc i vi w/w=n}
mi bc may Turing khng n inh b tri nhiu ban sao cua
mt vai giai phap va tin
h toan c lp vi moi li giai.

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

Chng II: C s ton hoc


x vi iu kin Y nhn gia tri y. Cac bin X va Y c goi la c lp nu p(x, y) = p(x)p(y)
vi moi gia tri c th c cua X va Y.
inh ly Bayes:
Nu p(y) 0 th ta co:

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

Va xac sut c iu kin pC(y/x) la xac sut y la ban ma vi iu kin ban r la x


c tinh theo cng thc sau:

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

Lc nay, ta c th inh ngha khai nim v mt hoan thin. Ni mt cach khng


hnh thc, mt hoan thin ngha la i phng vi ban ma trong tay cung khng th
thu nhn c thng tin g v ban r. Tuy nhin ta s nu inh ngha chinh xac v mt
hon thin nh sau:
inh nghia:
Mt h mt hon thin nu pP(x/y) = pP(x) vi mi x P v mi y C. Tc l xc sut
hu nghim thu c bn r l x vi iu kin a thu c bn ma l y ng nht vi
xc sut tin nghim bn r l x. [5]

15

Chng II: C s ton hoc


Hay ni cach khac, mt hoan thin cung tng ng vi pC(y/x)= pC(y)).
inh ly Shannon:
Gi s (P, C, K, E, D) l mt h mt, khi o h mt t c mt hon thin khi
v ch khi |K| |C|. Trong trng hp |K| = |C| = |P|, h mt t mt hon thin khi v
ch khi mi kho K c dng vi xc sut bng nhau, bng 1/|K| v vi mi x P, mi y
C co mt kho K duy nht sao cho eK(x) = y. [5]
Nh vy ta thy at hoan thin i hi khoa phai rt dai, do vy rt kh khn
trong vic chuyn giao khoa gia hai bn truyn tin. V vy trong thc t, chng ta khng
th c an toan khng iu kin ma chng ta ch cn an toan thc t, tc la phu thuc vao
thng tin va thi gian cn bao mt bng cach s dung cac h mt khac nhau vi bao
mt khac nhau.
3.3. H mt tich
Mt y tng khac c Shannon a ra la y tng tao ra cac h mt mi da trn
cac h mt cu bng cach tao tich cua chng. y la mt y tng quan trong trong vic
thit k cac h mt hin ai ngay nay.
n gian, y chng ta ch xet cac h mt trong C = P, cac h mt loai nay
goi la t ng cu. Gia s S1 = (P, C, K1, E1, D1) va S2 = (P, C, K2, E2, D2) la cac h
mt t ng cu c cng khng gian ban r va ban ma. Khi h mt tich c inh
ngha la h mt S = (P, C, K1 K2 ,E ,D). Khoa cua h mt tich K = (K1, K2) trong K1
K1, K2 K2. Cac ham ma hoa va giai ma c xac inh nh sau:

e( K1 , K2 ) ( x) eK2 (eK1 ( x))


d ( K1 , K2 ) ( x) d K1 (eK2 ( x))
Nu chng ta ly tich cua S vi chinh n, ta c h mt (SS) (ky hiu S2). Nu ly
tich n ln th kt qua la Sn. Ta goi Sn la mt h mt lp. Nu S2 = S th ta goi h mt la
luy ng. Nu S la luy ng th khng nn ly tich lp v bao mt khng tng ln ma
khng gian khoa lai ln hn. ng nhin nu S khng luy ng th ta c th lp lai S
nhiu ln tng bao mt. y nay sinh mt vn la lam th nao c mt h
mt khng luy ng?
Ta bit rng nu S1 va S2 la luy ng va giao hoan th S1S2 cung luy ng, n
gian v:

(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

Chng II: C s ton hoc


3. Ly thuyt ton hoc
3.1. Modulo s hoc
V c ban a b(mod n ) n u a = b+kn trong o k la mt s nguyn . N u a va b
dng va a nho hn n, chng ta c th goi a la ph n d cua b khi chia cho n. Ni chung a
va b u la ph n d khi chia cho n . Ngi ta con go b la thng d cua a theo modulo n,
va a la ng d cua b theo modulo n.
Modulo s hoc cung gi ng nh s hoc binh thng , bao g m cac phep giao hoan ,
k t h p va phn ph i. Mt khac giam mi gia tri trung gian trong su t qua trnh tinh toan.
(a+b) mod n = ((a mod n) + (b mod n)) mod n
(a- b) mod n = ((a mod n) - (b mod n)) mod n
(ab) mod n = ((a mod n) (b mod n)) mod n
(a(b + c)) mod n = (((a b) mod n) + ((a c) mod n)) mod n
Cac phep tinh trong cac h ma mt h u h t u th c hin i vi mt modulo N nao
o.
3.2. S nguyn t
S nguyn t la mt s ln hn 1, nhng chi chia h t cho 1 va chinh n , ngoai ra
khng con s nao no co th chia h t na . S 2 la mt s ng uyn t u tin va la s
nguyn t chn duy nh t . Do vy 7, 17, 53, 73, 2521, 2365347734339 cung la s nguyn
t . S l ng s nguyn t la v tn . H mt ma thng s dung s nguyn t ln c 512
bits va thm chi ln hn nh vy.
3.3. c s chung ln nht
Hai s a va n c goi la hai s nguyn t cng nhau nu chng khng c tha s
chung nao khac 1, hay noi mt cach khac, n u c s chung ln nh t cua a va n la b ng
1. Chng ta c th vi t nh sau :

GCD(a,n)=1, (GCD-Greatest Common Divisor)


S 15 va 28 la hai s nguyn t cung nhau, nhng 15 va 27 th khng phai la hai s
nguyn t cng nhau do co c s chung la 1 va 3, d dang th y 13 va 500 cung la mt
cp s nguyn t cng nhau. Mt s nguyn t se la nguyn t cung nhau vi t t ca cac
s nguyn khac tr cac bi s cua no.
Mt cach d nh t tinh toan ra c s chung ln nh t cua hai s la nh vao thut
toan Euclid. Knuth m ta thut toan va mt vai m hinh cua thut toan a c sa i.
Di y la oan ma ngu n trong ngn ng C:
/* Thut toan tim
c s chung ln nh t cua x va y, gia s x,y>0 */
int gcd(int x, int y)
{
int g;
if(x<0)

17

Chng II: C s ton hoc


x=-x;
if(y<0)
y= -y;
g=y;
while(x>0){
g=x;
x=y%x;
y=g;
}
return g;
}
3.4. Vanh ZN (vanh ng d module N)
Tp cac s nguyn ZN = {0, 1, , N-1} trong o N la mt s t nhin dng vi
hai phep toan cng (+) va nhn (.) c inh
nghia nh sau tao thanh mt vanh ng d
modulo N (hay con goi la tp thng d y u theo modulo N):
Phep cng:
a, b ZN: a+b = (a+b) mod N.
Phep nhn:
a, b ZN: a . b = (a * b) mod N.
Theo tin
h ch t cua modulo s hoc chung ta d dang nhn th y Z N la mt vanh giao
hoan va kt hp. H u h t cac tin
h toan trong cac h ma mt u c th c hin trn mt
vanh ZN nao .
Trn vanh Z N s 0 la phn t trung ha v a + 0 = 0 + a = a, a ZN, s 1 c goi
la phn t n vi v a . 1 = 1 . a = a a ZN.
3.5. Ph n t nghich
ao
Trn trng s th c R , s nghich
ao cua 5 la 1/5, bi vi 5 1/5=1. Cn trn mt
vanh s nguyn ZN ngi ta a ra khai nim v s nghich
ao cua mt s nh sau:
Gia s a ZN va tn tai b ZN sao cho a.b = (a*b) mod N = 1. Khi o b c goi la
ph n t nghich
ao cua a trn ZN va ky hiu la a-1 = b.
Vic tim
ao cua mt s a ZN cho trc th c ch t tng ng
ph n t nghich
vi vic tim
hai s b va k sao cho: a.b = k.N + 1 trong o b, k ZN. Hay vi t gon lai la:
a-1 b (mod N )
inh
ly v s t n tai cua ph n t nghich
ao : N u GCD(a, N) = 1 th tn tai duy
nh t 1 s b ZN la phn t nghich ao cua a, ngha la tha man a.b = (a*b) mod N = 1.

18

Chng II: C s ton hoc


3.6. Ham phi le
Vi mi s nguyn N , gia tri cua ham phi le cua N la tng s tt ca cac s
nguyn ZN va nguyn t cng nhau vi N . Ch ng han n u P la mt s nguyn thi gia tri
ham phi le cua P: (P) = P 1 hoc n u N = p*q trong o p va q la hai s nguyn t thi
(N) = (p-1)*(q-1).
Trong trng h p t ng quat n u dang phn tich ra tha s nguyn t cua N la:

N p11 p22 ... pk k


trong o p i la cac s nguyn t cn i la cac s nguyn dng th gia tri cua ham
phi le c tin
h nh sau:

( 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

chinh la gia tri nghich ao cua a trn ZN.


Mt trng h p ring cua inh ly le chinh la inh ly Fermat nh : N u P la mt s

nguyn t thi a Z*P ta co


cua s hoc.

a P1 1(mod P) . y la mt trong nhng i nh ly ep nh t

Vi mi s nguyn N vanh Z *N g m cac ph n t thuc Z N va nguyn t cng nhau


vi N, hay noi cach khac: Z*N = {x: xZN, (x, N) = 1} = {x: xZN, x ( N ) 1 }.
Vi mi ph n t a ZN, bc t cua a (ky hiu la ord (a)) la s nh nht sao cho : at =
1. Theo inh
ly le ta suy ra (N) chia h t cho t.
Cu th vi N = 21 ta co bang sau:
aZ*21

10

11

13

16

17

19

20

Ord(a)

Bang 2.1: Bang bc cua cac phn t trn Z*21


N u bc cua a Z*N b ng (N) th a c goi la phn t sinh hay phn t nguyn thuy
cua tp Z*N. Va nu tp Z*N ch c mt phn t sinh th n c goi la mt cyclic.
3.7. Thng d b c hai
Gia s a Z*N, khi o a c goi la thng d bc 2 theo modulo N n u t n tai x
Z*N sao cho x2 = a (mod N). Tp cac ph n t thng d theo modulo N c ky hiu la Q N,
tp cac ph n t khng thng d theo modulo N c goi la bt thng d theo modulo N
va ky hiu la Q N .

19

Chng II: C s ton hoc


inh
ly: n u p la mt s nguyn t le va la mt phn t sinh cua Z *N, khi o a la
mt thng d bc 2 theo modulo N khi va chi khi a = i mod p, trong o i la s nguyn le .
T inh
ly nay suy ra Q N ( p 1) / 2 QN .
Vi du vi p = 13, = 6 Z13 ta co bang sau:
i

10

11

i mod 13

10

12

11

Bang 2.2: Bang luy tha trn Z13


Do o Q13 = {1, 3, 4, 9, 10, 12} va Q13 = {2, 5, 6, 7, 8, 11}.
Vi a QN. N u x Z*N tha man x 2 = a (mod N) th a c goi la cn bc hai cua
x theo modulo N.
3.8. Thu t toan luy tha nhanh
c th tm phn t nghich ao cua mt s nguyn a trn mt vanh Z N cho trc
chng ta c th s dung inh ly le tinh gia tri luy tha cua a vi s mu la gia tri ham
phi le cua N . Tuy nhin co th nhanh chong t inh c gia tri luy tha nay chng ta
c n co mt thut toan hiu qua va mt trong cac thut toan o (cn nhiu thut toan khac
phc tap hn ) la thut toan luy tha nhanh . Thut toan nay do Chivers a ra vao nm
1984. Cac bc cua thut toan nh sau:
Input: a, m, N.
Output: am mod N.
Begin
Phn tic
h m thanh dang nhi phn m = bkbk-1b0.
j = 0, kq = a;
while (k>=j)
{
if (bj==1)
kq = (kq * a) mod N;
a = (a * a) mod N;
j = j + 1;
}
return kq;
end
Mt cai t khac b ng ngn ng C nh sau:
long modexp(long a, long x, long n)
{
20

Chng II: C s ton hoc


long r = 1;
while (x > 0){
if (x % 2 == 1) /* is x odd? */
r = (r * a) % n;
a = (a*a) % n;
x /= 2;
}
return r;
}
Thut toan nay chay khng qua log2(m+1) bc.
3.9. Thu t toan clit m rng
Trong ph n 3.3 chng ta a bit thut toan clit c dng tm c s chung
ln nh t cua ha i s nguyn va trong ph n 3.7 chng ta a bit cach tm mt phn t
nghich ao cua m t s b ng cach s dung thut toan luy tha nhanh tuy nhin vn co
mt thut toan hiu qu a khac tm phn t nghich ao goi la thut tan clit m rng
(do d a trn thut toan clit). Cac bc cua thut toan nh sau:
input: a, N vi GCD(a, N) = 1
output: a-1
begin
g0=n, g1 = a, u0 = 1, u1 = 0, v0 = 0, v1 = 1, i = 1;
while (gi <>0 )
{
y = gi-1 div gi;
gi+1 = gi-1 y*gi;
ui+1 = ui-1 y*ui;
vi+1 = vi-1 v*ui;
i = i + 1;
}
x = vi-1;
if(x>0) then
return x;
else
return (N+x);
end;

21

Chng II: C s ton hoc


3.10. Phng trinh ng d b c nh t 1 n
Phng trinh ng d bc nh t 1 n la phng trnh c dang:
ax b (mod N) trong o a, b ZN la cac h s cn x la n s.
N u nh GCD(a, N) = 1 chng ta c th tm a -1 sau o nhn vao 2 v cua phng
trnh va tm ra nghim mt cach d dang tuy nhin nu g = GCD(a, N) la mt gia tri khac 1
th sao ? Khi o bai toan co th v nghim hoc co nhi u nghim . Chng ta xet inh
ly
sau:
Gia s g = GCD(a, N) va nu b chia ht cho g th phng trnh ng d bc nht 1
n:
ax b (mod N)
s c g nghim c dang
x ((b/g)x0 + t(n/g)) (mod N) trong o t = 0, , g-1,
va x0 la nghim cua phng trnh (a/g)x 1 (mod N/g).
3.11. inh
ly ph n d Trung Hoa.
inh
ly ph n d Trung Hoa la m t inh ly quan trong cua s hoc c cac nha
toan hoc Trung Quc kham pha ra vao th ky th nht. inh
ly phat bi u nh sau:
N u d 1, d2, , dk la cac s nguy n i mt nguyn t cung nhau va N = d1d2dk
th h phng trnh ng d:
x xi (mod di), i=1, 2, , k
s c mt nghim thuc vao ZN. Nghim cua h co tinh theo cng thc sau:
k

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

Chng II: C s ton hoc


{
n+=u[i]*modexp(modulus/m[i],totient(m[i]),m[i]);
n%=modulus;
}
return n;
}
4. Cc thu t toan ki m tra s nguyn t .
Ham mt phia (one-way functions) la mt khai nim c ban cua ma hoa cng
khai. Vic nhn hai s nguyn t la mt vi du v ham mt phia , nhn cac s nguyn t
ln tao thanh mt h p s la d , nhng cng vic ng c lai phn tic h mt s nguyn
ln thanh dang tha s nguyn t lai la mt bai toan kh (cha co mt thut toan t t).
Cac thut toan ma hoa kha cng khai u c n phai s dung cac s nguyn t . C
mt s phng phap sinh ra s nguyn t va hu ht chng u da trn cac thut
toan kim tra tinh nguyn t cua mt s nguyn . Tuy nhin co mt s v n c t ra
i vi s nguyn t nh sau
Trong mt h th ng co th am bao hai ngi dung se c s dung hai s
nguyn t khac nhau hay khng ? Cu tra li la co th vi co ti 10150 s nguyn t co
dai 512 bits hoc nho hn.
Kha nng hai ngi dng s la chon cng mt s nguyn t la bao nhiu . Vi s
l a chon t 10150 s nguyn t , i u ky xay ra vi xac xu t nho hn so vi s t b c chay
cua may tinh.
Cac loai thut toan kim tra s nguyn t c chia lam hai loai : thut toan t t inh

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

Chng II: C s ton hoc


4.1.2. Ky hiu Jacobi (Jacobi Symbol)
Ky hiu Jacobi c vit la J (a,n), n la s khai quat hoa cua ky hiu Lagrng , n
inh
nghia cho b t ky cp s nguyn a va n nao. Ky hiu Jacobi la mt chc nng trn
tp h p s thng d th p cua c s n va co th tinh toan theo cng thc sau:

N u n la s nguyn t , th J(a,n) = 1 n u a la thng d bc hai modulo n .

N u n la s nguyn t , th J(a,n) = -1 n u a khng la thng d bc hai modulo


n.

N u n khn g phai la s nguyn t thi Jacobi (a,n) s c tinh theo cng thc
sau:

J(a,n)=J(h,p1) J(h,p2) . . . J(h,pm)

vi p1,p2. . .,pm la cac tha s ln nht cua n.


Thut toan nay tin
h ra s Jacobi tu n hoan theo cng thc sau :
1.

J(1,k) = 1

2.

J(ab,k) = J(a,k) J(b,k)

3.

J(2,k) =1 N u (k2-1)/8 la chia ht va J(2,k) = -1 trong cac trng h p khac.

4.

J(b,a) = J((b mod a),a)

5.

N u GCD(a,b)=1 :

a.

J(a,b) J(b,a) = 1 n u (a-1)(b-1)/4 la chia ht.

b.

J(a,b) J(b,a) = -1 n u (a-1)(b-1)/4 la cn d.

Sau y la thut toan trong ngn ng C :


int jacobi(int a,int b)
{
int a1,a2;
if(a>=b)
a%=b;
if(a==0)
return 0;
if(a==1)
return 1;
if(a==2)
if(((b*b-1)/8)%2==0)
return 1;
else
return -1;

24

Chng II: C s ton hoc


if(a&b&1) (ca a va b u la s d)
if(((a-1)*(b-1)/4)%2==0)
return +jacobi(b,a);
else
return -jacobi(b,a);
if(gcd(a,b)==1)
if(((a-1)*(b-1)/4)%2==0)
return +jacobi(b,a);
else
return -jacobi(b,a);
return jacobi(a1,b) * jacobi(a2,b);
}
Trn th c t co th tin
h c ky hiu Jacobi mt cach thun l i hn n u d a vao 1
trong cac tin
h ch t sau, gia s m, n la cac s nguyn le, a, b Z:
(i) J(a*b, n) = J(a, n) * J(b, n) do o J(a2, n) = 1.
(ii) J(a, m*n) = J(a, m) * J(a, n).
(iii) n u a b (mod n) th J(a, n) = J(b, n).
(iv) J(1, n) = 1.
(v) J(-1, n) = (-1)(n-1)/2
(vi) J(m, n) = J(n, m) * (-1)(m-1)*(n-1)/4
4.2. Thu t toan Soloway-Strassen
Soloway va Strassen a phat tri n thut toan co th ki m tra s nguyn t
toan nay s dung ham Jacobi.

. Thut

Thut toan ki m tra s p la s nguyn t :


1.

Chon ngu nhin mt s a nh hn p.

2.

N u c s chung ln nh t gcd(a,p) 1 th p la hp s.

3.

Tinh j = a(p-1)/2 mod p.

4.

Tinh s Jacobi J(a,p).

5.

N u j J(a,p), th p khng phai la s nguyn t.

6.

N u j = J(a,p) th ni p c th la s nguyn t vi chc chn 50%.

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

Chng II: C s ton hoc


4.3. Thu t toan Rabin-Miller
Thut toan nay c phat tri n bi Rabin , d a trn mt ph n y tng cua Miller .
Th c t nhng phin ban cua thut toan a c gii thiu tai NIST . (National Institute of
Standards and Technology).
u tin la chon ngu nhin mt s p kim tra. Vi t p di dang p = 1+2bm trong
o m la mt s le.
Sau y la thut toan :
1.

Chon mt s ngu nhin a, va gia s a nh hn p.

2.

t j=0 va z=am mod p.

3.

N u z=1, hoc z=p-1 th p a qua bc kim tra va c th la s nguyn t .

4.

N u j > 0 va z=1 th p khng phai la s nguyn t.

5.

t j = j+1. N u j < b va z p-1 th t z=z2 mod p va tr lai bc 4.

6. N u j = b va z p-1, th p khng phai la s nguyn t.


4.4. Thu t toan Lehmann.
Mt phng phap n gian hn ki m tra s nguyn t c phat tri n c lp bi
Lehmann. Sau y la thut toan vi s bc lp la 100.
1.

Chon ngu nhin mt s n kim tra.

2.

Ch c ch n r ng n khng chia h t cho cac s nguyn t nho nh 2,3,5,7 va 11.

3.

Chon ngu nhin 100 s a1, a2, . . . , a100 gia 1 va n-1.

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.

N u ai(n-1)/2 = 1 (mod n) vi moi i, th n c th la hp s.


N u ai(n-1)/2 1 hoc -1 (mod n) vi i b t ky, th n la hp s.
N u ai(n-1)/2 = 1 hoc -1 (mod n) vi moi i 1, th n la s nguyn t.

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

Chng II: C s ton hoc


Bai tp 2.7: Vi t chng trinh cai t th vin s nguyn ln vi cac thao tac tinh
toan c ban: nhn, chia, cng tr, l y modulo.
Bai tp 2.8: S dung th vin s ln ( bai tp 2.5 hoc mt th vin ma ngu n
m) cai t cac thut toan kim tra s nguyn t c trnh bay trong phn 4 cua chng
2.

27

Chng III: Cc h ma khoa bi mt

CHNG III: CAC H MA KHOA BI MT


1. Cc h ma c in
1.1. H ma hoa thay th (substitution cipher)
H ma hoa thay th la h ma hoa trong o mi ky t cua ban ro c thay th b ng
ky t khac trong ban ma (c th la mt ch cai, mt s hoc mt ky hiu).
C 4 ky thut thay th sau y:
1. Thay th n (A simple substitution cipher): la h trong mt ky t cua ban r
c thay b ng mt ky t tng ng trong ban ma. Mt anh xa 1-1 t ban ro ti
ban ma c s dung ma hoa toan b thng ip.
2. Thay th ng m (A homophonic substitution cipher ): gi ng nh h th ng ma
hoa thay th n , ngoai tr mt ky t cua ban r c th c anh xa ti mt
trong s mt vai ky t cua ban ma : s anh xa 1-n (one-to-many). Vi du, A
c th tng ng vi 5, 13, 25, hoc 56, B co th tng ng vi 7, 19, 31,
hoc 42, v.v.
3. Thay th a mu t (A polyalphbetic substitution cipher): c tao nn t nhi u
thut toan ma hoa thay th n . Anh xa 1-1 nh trong trng h p thay th n,
nhng co th thay i trong pham vi mt thng ip . Vi du, c th c nm thut
toan ma hoa n khac nhau c s dung ; c bit thut toan ma hoa n
c s dung thay i theo vi tri cua mi ky t trong ban ro.
4. Thay th a s (A polygram substitution cipher ): la thut toan trong cac
kh i ky t c ma hoa theo nhom . y la thut toan t ng quat nh t , cho phe p
thay th cac nhom ky t cua vn ban g c . Vi du , ABA co th tng ng vi
RTQ, ABB co th tng ng vi SLL, v.v.
1.2. H ma Caesar
H ma Caesar la mt h ma hoa thay th n m lam vic trn bang ch cai ting
Anh 26 ky t (A, B, ... , Z). y la h ma c i n va n gian nh t a tng c dung
trong th c t bi hoang La ma Caesar nn c t theo tn cua vi hoang nay.
Khng gian cac ban ro P la cac thng ip c tao t bang ch cai A ( tin trnh
bay chng ta xem y la mt bang ch cai tng quat). Tng t khng gian cac ban ma C
P. Gia s s phn t cua bang ch cai |A| = N.
ma hoa ngi ta anh s cac ch ca i t 0 ti N-1. Khng gian khoa K = ZN. Vi
mi khoa K K ham ma ha va giai ma mt ky t c s th t la i s c thc hin nh
sau:
Ma ha: EK(i) = (i + k) mod N.
Giai ma: DK(i) = (i k) mod N.
H ma Caesar vi bang ch cai ti ng Anh se co N = 26 ch cai, bang ch cai c
anh s nh sau:

28

Chng III: Cc h ma khoa bi mt


A

...

...

...

11

12

13

...

22

23

23

25

Bang 3.1: Bang anh s cac ch cai ting Anh


Cac phep tinh toan s hoc c th c hin trn vanh Z 26, s khoa co th s dung
la 26 nhng trn th c t chi co 25 kha c ich.
Vi du: vi k=3 (trng h p a c hoang Caesar s dung), ky t A c thay
b ng D, B c thay b ng E , ... , W c thay b ng Z , ... , X c thay b ng A , Y c
thay b ng B, va Z c thay bng C.
Bang ch cai gc:
A B C D E F

G H I

K L

M N O P Q R S T

U V W X Y Z

Bang ch cai dng ma hoa:


D E F

G H I

K L

M N O P Q R S T

U V W X Y Z

A B C

Do o ch ng han xu ANGLES se c ma hoa thanh DQJOHV.


H ma Caesar s dung phng phap thay th n m nn co hin t ng goi la
phu thuc tn sut xut hin cua ngn ng t nhin. Trong ngn ng t nhin mt s ch
cai xut hin nhiu hn so vi cac ch cai khac (ch ng han trong ti ng Anh cac ch cai
xu t hin nhi u la e, t, i, h ) nn cac ch cai dung thay th cho chung cung xu t hin
nhi u. i u nay co th dn ti h qua la ngi tham ma c th s dung phng phap th
thay th cac ky t xu t hin nhi u trong ban ma b ng cac ky t xu t hin nhi u trn cac
vn ban th c t .
Trn th c t h ma Caesar co s khoa it nn hoan toan c th tham ma bng cach
th t t ca cac khoa co th (ki u t n cng Brute force).
1.3. H ma Affine
Khng gian cac ban ro va ban ma cua h ma la cac xu c hinh thanh t mt
bang ch cai A, gia s |A| = N. Khi o khng gian khoa cua h ma c xac inh
nh sau:
K = { (a, b): a, b ZN, (a, N) = 1}
ma hoa ngi ta anh s cac ch cai cua bang ch cai t
hanh ma ha, giai ma tng ky t (thay th ) theo cac cng thc sau:

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

Chng III: Cc h ma khoa bi mt


DK(y) = a*(y - b) mod N. Ky t ban ma c s th t la y s c thay th bng ky t
c s th t la a*(y - b) mod N trong bang ch cai.
C th thy rng i vi mt h ma Affine th s kha c th s dung s la:
|K| = (N) * N. Vi du vi N = 26 tng ng vi bang ch cai ti ng Anh chung ta se
c (26) * 26 = 12 * 26 = 312 kha. Con s nay la tng i nho.
1.4. H ma Vigenere
H ma nay c t theo tn cua mt nha mt ma
Vigenre (1523-1596).

hoc ngi Phap Blaise de

i vi h ma nay khng gian cac ban ma va ban r cung la cac thng ip c


tao thanh t mt bang ch cai A nh trong h ma Caesar, cac ch cai c anh s t 0
ti N-1 trong o N la s ph n t cua bang ch cai.
Khng gian khoa K c xac inh
nh sau:
Vi mi s nguyn dng M , kha c dai M la mt xu ky t c dai M , K =
k1k2kM.
ma hoa mt ban ro P ngi ta chia P thanh cac oan dai M va chuyn thanh
s th t tng ng cu a chung trong bang ch cai , ch ng han X = x1x2xM. Khi o vic
ma ha va giai ma c thc hin nh sau:
EK(X) = (x1 + k1, x2 + k2, , xM + kM) mod N
DK(Y) = (y1 - k1, y2 - k2, , yM - kM) mod N vi N la s ph n t cua bang ch cai va Y
= y1y2yM la ban ma.
Vi du: xet A la bang ch cai ting Anh , ta co N = 26 gia s kha c dai 6 va K =
CIPHER, ban r P = THIS CRYPTOSYSTEM IS NOT SECURE . Ta co K = 2 8 15 7 4
17, P = 19 7 8 18 2 17 | 24 15 19 14 18 23 | 18 19 4 12 8 18 | 13 14 19 18 4 2 | 20 17 4.
Qua trnh ma ha thc hin nh sau:
P = 19 7 8 18 2 17 | 24 15 19 14 18 23 | 18 19 4 12 8 18 | 13 14 19 18 4 2 | 20 17 4
K = 2 8 15 7 4 17 | 2 8 15 7 4 17 | 2 8 15 7 4 17 | 2 8 15 7 4 17 | 2 8 15
C = 21 15 23 25 6 8 | 0 23 8 21 22 14 | 20 1 19 19 12 9 | 15 22 8 25 8 19 | 22 25 19
Vy ban ma la C = VPXZGI AXIVWO UBTTMJ PWIZIT WZT.
V th c ch t h ma nay la k t h p cua nhi u ma Caesar
, trong h ma Caesar
chng ta thay th tng ky t n le th trong h ma Vigenere nay thay th tng b M ky
t lin ti p. Vi mi M chung ta co s khoa co th s dung la N M, cu th la vi bang ch
cai ting Anh s c 26M kha c th s dung.
1.5. H ma Hill
H ma hoa nay d a trn ly thuy t v ai s tuy n tin
h do Lester S .Hill a ra nm
1929.
Ca khng gian ban r va ban ma u la
cai A nh trong h ma Vigenere.

cac xu c thanh lp t mt bang ch

30

Chng III: Cc h ma khoa bi mt


Vi mi s nguyn M khoa cua h ma la mt ma trn K vung kich thc MxM g m
cac phn t la c ac s nguyn thuc Z N trong o N la s ph n t cua bang ch cai . i u
kin ma trn K co th s dung lam khoa cua h ma la K phai la mt ma trn khng suy
bi n trn ZN hay noi cach khac la t n tai ma trn nghich
ao cua ma trn K trn ZN.
Cac ky t cua bang ch cai cung c anh s t 0 ti N-1.
ma hoa mt ban ro ngi ta cung chia ban ro o thanh cac xu co dai M
,
chuy n cac xu nay thanh s th t cua cac ch cai trong bang ch cai di dang mt
vect hang M chi u va ti n hanh ma hoa, giai ma theo cng thc sau:
Ma ha:
C = P * K.
Giai ma:
P = C * K-1.
Vi du: cho h ma Hill co M = 2 (kha la cac ma trn vung cp 2) va bang ch cai la
bang ch cai ting Anh, tc la N = 26. Cho khoa

3
2

K =

Hay ma ha xu P = HELP va giai ma ng c lai ban ma thu c.


ma hoa chung ta chia xu ban r thanh hai vecto hang 2 chi u HE (7 4) va LP
(11 15) va tin hanh ma ha ln lt.

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

Vy ban ma thu c la C = DPLE.


giai ma ta tinh khoa giai ma la ma trn nghich
ao
theo cng thc sau:

k11
k 21

Vi K =

cua ma trn kha trn Z

26

k12
va det(K) = (k11*k22 k21*k12) mod N la mt ph n t co ph n t
k 22

nghich ao trn ZN (ky hiu la det(K)-1) th kha giai ma s la

k 22 -k12

-k 21 k11

K-1 = det(K)-1*

31

Chng III: Cc h ma khoa bi mt


Ap dung vao trng hp trn ta c det(K) = (15 - 6) mod 26 = 9. GCD(9, 26) =1 nn
ap dung thut toan clit m rng tm c det

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

Giai ma C = DP = ( 3 15 ), P = C * K-1 = (3 15) *

Tng t giai ma xu C = LE kt qua s c ban r P = LP.


Ch y la trong vi du trn chng ta s dung kha K c kich thc nh nn d dang
tm c kha giai ma cn trong trng hp tng quat iu nay la khng d dang.
1.6. H ma i ch (transposition cipher)
Mt h ma hoa i ch la h ma hoa trong o cac ky t cua ban ro vn c gi
nguyn, nhng th t cua chung c i ch cho nhau.
Vi du mt h ma hoa i ch ct n gian , ban r c vit theo hang ngang trn
trang gi y vi dai c inh,
va ban ma c oc theo hang doc.
Ban r: COMPUTER GRAPHICS MAY BE SLOW BUT AT LEAST ITS EXPENSIVE
COMPUTERGR
APHICSMAYB
ESLOWBUTAT
LEASTITSEX
PENSIVE
Ban ma: CAELPOPSEEMHLANPIOSSUCWTITSBIUEMUTERATSGYAERBTX
Bang 3.2: Ma hoa thay i vi tri ct
Phng phap nay co cac ky thut sau:
1. ao ngc toan b ban ro : ngha la ban r c vit theo th t ngc lai
tao ra ban ma . y la phng phap ma hoa n gian nh t vi vy khng am
bao an toan.
Vi du : ban r TRANSPOSITION CIPHER c ma hoa thanh
REHPICNOITISOPSNART.
2. Ma ho theo mu hinh hoc : ban r c sp xp lai theo mt
nao , thng la mt mang hoc mt ma trn hai chi u.
Vi du : ban r LIECHTENSTEINER c vit thanh ma trn

mu hinh hoc

35 theo hang nh

sau:
Ct

Ban r

32

Chng III: Cc h ma khoa bi mt

Bang 3.3: Ma ha theo mu hnh hoc


N u l y cac ky t ra theo s th t ct
IEICSELTEENNHTR.

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

Bang 3.4: Vi du ma ha theo mu hnh hoc


V c 5 ct nn chung co th c s p lai theo 5!=120 cach khac nhau. tng
an toan co th chon mt trong cac cach sp xp lai .
N u ta chuy n vi cac ct theo th t
3, 5, 2, 4, 1 r i l y cac ky t ra theo hang
ngang ta se c ban ma la DCAINAHIEGUXBNACYADY HZTIM . Lu y r ng cac ky t
cach c b i.
Han ch cua phng phap nay la toan b cac ma trn ky t phai c sinh ma
hoa va giai ma.
3. Hon vi cc ky t cua bn ro theo chu ky c inh d : N u ham f la mt hoan
vi cua mt khi gm d ky t th khoa ma hoa c biu din bi K(d,f).
Do vy, ban r:
M = m1m2...mdmd+1...m2d
Vi mi la cac ky t , va ban ro se c ma hoa thanh
Ek(M) = mf(1)mf(2)...mf(d)mf(d)+1...md+f(d)
Trong o mf(1)mf(2)...mf(d) la mt hoan vi cua m1m2...md.
Vi du: gia s d=5 va f hoan vi day i=12345 thanh f(i)=35142
Vi tri u

Vi tri hoan vi

Ma hoa

33

Chng III: Cc h ma khoa bi mt

Bang 3.5: Ma ha hoan vi theo chu ky


Theo bang trn, ky t u trong khi 5 ky t c chuy n ti vi tri th 3, ky t th
hai c chuy n ti vi tri th
5, ... Ch ng han t g c GROUP c ma hoa thanh
OPGUR. B ng cach o , ban r I LOVE BEETHOVENS MUSIC s c chuyn thanh
OEIVLEHBTEESONVSCMIU.
H ma ADFGV cua c , c s dung trong su t chi n tranh th gii l n th I , la
mt h ma hoa i ch (c s dung phng phap thay th n gian). N c coi la mt
thut toan ma hoa phc tap vao thi y nhng no a
bi pha bi Georges Painvin , mt
nha tham ma ngi Phap . Trn th c t c rt nhiu h thng ma hoa s dung phng
phap i ch, nhng chng r t r c r i v thng i hi khng gian nh ln.
2. Cc h ma khi
Trong ph n nay chung ta se hoc v cac h ma kh i i n hin
h la chu n ma hoa d
liu DES (Data Encryption Standard), mt trong s cac h ma kh i c s dung rng rai
nh t va la n n tang cho r t nhi u cac h ma kh i khac.
Chu n ma hoa d liu DES la mt chu n ma hoa c cng b bi Uy ban Tiu
chun quc gia Hoa Ky vao 15/02/1977. H ma nay c xy dng da trn mt h ma
kh i ph bin c tn la LUCIFER va c phat trin bi IBM.
DES co nhi u u i m (nhanh, thut toan cng khai , d cai t ) va a tng c
s dung trn th c t trong mt thi gian r t dai (cho n trc u nhng nm 90) tuy
nhin theo thi gian nng l c cua cac may tinh phat tri n cung vi cac ky thut tham ma
mi c a ra a cho th y nhu c u v mt h ma kh i manh hn
va chun ma ha
cao cp AES a ra i . Chu n nay ra i d a trn mt cuc thi v thi t k mt h ma
kh i an toan hn (vao nm 1997) thay th cho DES cua U y ban Tiu chu n qu c gia cua
Hoa Ky (NIST). C rt nhiu h ma a c gi n lam ng c vin cho AES nhng
cu i cung h ma Rijndael cua hai tac gia ngi Bi la ti n si Joan Daemen va ti n si
Vincent Rijmen (vao nm 2001).
2.1. Mt ma khi
Cac h ma c in ma chng ta xem xet phn u chng nay u c c im
chung la tng ky t cua ban r c ma hoa tach bit. iu nay lam cho vic pha ma tr
nn d dang hn. Chinh v vy, trn thc t ngi ta hay dng mt kiu mt ma khac,
trong tng khi ky t cua ban r c ma hoa cng mt lc nh la mt n vi ma hoa
ng nht. Trong kiu ma hoa nay, cac tham s quan trong la kich thc ( dai) cua mi
khi va kich thc khoa.
iu kin ma hoa khi an toan:

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

Chng III: Cc h ma khoa bi mt

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.

Khi thit k mt h ma khi, phai am bao hai yu cu sau:

S hn loan (confusion): s phu thuc gia ban r va ban ma phai thc s


phc tap gy kh khn i vi vic tm quy lut tham ma. Mi quan h nay
tt nht la phi tuyn.

S khuch tan (diffusion): Mi bit cua ban r va kha phai anh hng ln cang
nhiu bit cua ban ma cang tt.

Trong khi s hn loan (confusion) c tao ra bng ky thu t thay th th s khuch


tn (diffusion) c tao ra bng cac ky thut hoan vi. Cac h ma khi ma chng ta xem
xet trong phn nay u tha man cac yu cu .
Ngoai cac h ma khi c trnh bay trong phn nay cn rt nhiu cac h ma khi
khac a phat trin q ua thi gian (tai cac quc gia khac nhau va ng dung trong cac lnh
v c khac nhau), c th k ra y mt s h ma ni ting nh: Lucifer (1969), DES (1977),
Madryga (1984), NewDES (1985), FEAL, REDOC, LOKI (1990), Khufu and Khafre (1990),
RC2, RC4, IDEA (1990), MMB, CA-1.1, Shipjack, GOST, CAST, Blowfish, SAFER, 3Way, Crab, SXAL8/MBAL, SAFER, RC5, RC6 ...
c im chung cua cac h ma khi la qua trnh ma ha lam vic vi cac khi d
liu (thng dang xu bit) c kich thc khac nhau (ti thiu la 64 bit), kha cua h ma
cung la mt xu bit c dai c inh (56 bit vi DES, cac h ma khac la 128, 256, hoc
thm chi 512 bit). Tt ca cac h ma nay u da trn ly thuyt cua Shannon a ra nm
1949 va nu mang ma ha hai ban r ging nhau s thu c cng mt ban ma. Hoat
ng cua cac h ma khi thng c thc hin qua mt s ln lp, mi ln s s dung
mt kha con c sinh ra t kha chinh.
2.2. Chun ma ho d liu DES (Data Encryption Standard)
Vao cui thp nin 60, h ma Lucifer a c a ra bi Horst Feistel. H ma nay
g n li n vi hang IBM n i ti ng. Sau o Uy ban Tiu chun Hoa Ky a dan x p vi IBM
thut toan ma ha nay thanh min phi va phat trin n thanh chun ma ha d liu va
cng b vao ngay 15/02/1977.
2.2.1. M t s ma ho DES
M ta t ng quan:
DES la thut toa n ma hoa vi input la kh i 64 bit, output cung la kh i 64 bit. Kha
ma ha c dai 56 bit, th c ra chin
h xac hn phai la 64 bit vi cac bit vi tri chia h t
cho 8 c th s dung la cac bit kim tra tinh chn le . S kha cua khng gian kha K la
256.

35

Chng III: Cc h ma khoa bi mt


Hnh 3.1: Chu n ma hoa d liu DES
Thut toan th c hin 16 vng. T khoa input K , 16 kha con 48 bit Ki s c sinh
ra, mi khoa cho mt vong th c hin trong qua trinh ma hoa . Trong mi vong , 8 anh xa
thay th 6 bit thanh 4 bit Si (cn goi la hp S i) c chon l a ky cang va c inh
, ky hiu
chung la S se c s dung. Ban r 64 bit se c s dung chia thanh hai na L 0 va R0.
Cac vng c chc nng ging nhau , nhn input la L i-1 va R i-1 t vong trc va sinh ra
output la cac xu 32 bit Li va Ri nh sau:
Li = Ri-1; (1)
Ri = Li-1 f(Ri-1, Ki) trong o f(Ri-1, Ki) = P( S( E(Ri-1) Ki ) ); (2)
Trong :

la ky hiu cua phep tuyn loai tr (XOR) cua hai xu bit theo modulo 2.

Ham f la mt ham phi tuyn.

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:

Y = IP-1 f16 T f15 T ... f2 T f1 IP(x)


Trong :

T m ta phep hoan vi cua cac khi LiRi (1 i 15).

fi m ta vic dng ham f vi khoa Ki (1 i 16).

Thu t toan chi ti t:


Input: ban r M = m1m2m64, kha 64 bit K = k1k2k64 (bao g m ca 8 bit chn le ,
vic thm bit chn le sao cho cac oan khoa 8 bit co s bit 1 la le)
36

Chng III: Cc h ma khoa bi mt


Output: ban ma 64 bit C = c1c2c64
1.

Sinh khoa con. Tinh cac kha con theo thut toan sinh kha con bn di

2. (L0,R0) IP(m1m2m64) (S dung bang hoan vi IP hoan vi cac bit , k t qua


nhn c chia thanh hai na la L0 = m58m50m8, R0 = m57m49m7.)
3.

(16 vng) for i = 1 to 16

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.

32 bit cua T = t1t2t32

4.

b1b2b64 (R16, L16) ( i vi tri cac kh i cu i cung L16, R16

5.

C IP-1(b1b2b64) (Bi n i s dung IP-1, C = b40b8b25)

S 16 vng lp cua DES:

37

Chng III: Cc h ma khoa bi mt

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

Ri = Li-1 f(Ri-1, Ki)

Li = Ri-1

K15 (48 bit)


f

R15 = L14 f(R14, K15)

L15 = R14

K16 (48 bit)


f

L16 = L15 f(R15, K16)

R16 = L15

IP-1

Bn m (64 bit)
Hnh 3.2: S ma hoa DES

38

Chng III: Cc h ma khoa bi mt


2.2.2. Hon vi IP va hon vi ngc IP-1
Bang hoan vi IP c a ra trong bang di y:
58

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

Bang 3.6: Bang hoan vi IP


Bang hoan vi ngc IP-1:
40

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

Bang 3.7: Bang hoan vi ng c IP-1


Hai hoan vi IP v IP-1 khng c y ngha g v mt mt ma ma hoan toan nhm tao
iu kin cho vic chip hoa thut toan DES.
S cu trc mt vng DES:

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

Hnh 3.3: S mt vng DES

39

Chng III: Cc h ma khoa bi mt


2.2.3. Thu t toan sinh khoa con
Mi sau vng lp cua DES chay cng thut toan nh nhau nhng vi 16 kho con
khc nhau. Cac kho con u c sinh ra t khoa chinh cua DES bng mt thut toan
sinh khoa con. Khoa chinh K (64 bit) i qua 16 bc bin i, tai mi bc bin i nay
mt khoa con c sinh ra vi dai 48 bit.
C th m ta thut toan sinh cac kha con chi tit nh sau:
Input: kha 64 bit K = k1k2...k64 (bao g m ca 8 bit ki m tra tin
h chn le)
Output: 16 kha con 48 bit Ki, 1 i 16.
1) inh
nghia v i, 1 i 16 nh sau: vi = 1 i vi i {1,2,9,16}; vi = 2 cho cac
trng h p khac (y la cac gia tri dich
trai cho cac quay vng 28 bit bn di).
2) T PC1(K); bi u din T thanh cac na 28 bit (C0, D0) (S dung bang PC1
chon cac bit t K: C0 = k57k49...k36, D0 = k63k55...k4.)
3) For i from 1 to 16, tinh cac K i nh sau: Ci (Ci-1 vi), Di (Di-1 vi), Ki
PC2(Ci, Di). (S dung bang PC 2 chon 48 bit t xu ghep b 1b2...b56 cua C i va D i: Ki =
b14b17...b32. la ky hiu dich
vong trai.)
S sinh cac khoa con cua DES:

40

Chng III: Cc h ma khoa bi mt

Kho chnh (64 bit)

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

K16 (48 bit)

LS2

Ci (28 bit)

Di (28 bit)

LS1

LS1

C16 (28 bit)

D16 (28 bit)

Hnh 3.4: S tao khoa con cua DES


64 bit u vao s giam xung cn 56 bit bng cach b i 8 bit ( cac vi tri chia ht
cho 8), cac bit nay dng kim tra bit chn le. Sau 56 bit nay lai c trich ly 48 bit
sinh ra cho 16 vng khoa cua DES.
Bang trt t khoa (PC-1):
57

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

Bang 3.8: Bang PC-1


u tin 56 bit khoa c chia ra thanh hai na 28 bit. Sau , hai n a 28 bit ny
c dich vng trai hoc 1 hoc 2 bit phu thuc vao s bit dich
tng ng vi vng .
S bit dich cua cac vng (LS):
Vng lp

10

11

12

13

14

15

16

41

Chng III: Cc h ma khoa bi mt


S bit dich

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

Bang 3.10: Bang PC-2


Vi du nh chng ta c th nhn thy bit vi tri 33 cua khoa s dich sang vi tri 35 ra
ngoai, cn bit vi tri 18 cua khoa s bi b qua. Chinh vic dich vng nay, tao nn mt tp
hp con cua khoa c s dung trong mi t hp khoa. Mi bit c s dung khoang 14
ln trong tng s 16 t hp khoa, d khng phai tt ca cac bit c s dung mt cach
chinh xac cng mt lc trong mi ln s dung.
2.2.4. M t ham f
Hm f(Ri-1,Ki) la mt ham c hai bi n vao: bin th nht Ri-1 la mt xu bit c dai
32 bit, bin th hai khoa Ki la mt xu bit c dai 48 bit. u ra cua f la mt xu bit c
dai 32 bit. Ham f c th la ham bt ky tuy nhin v ngun gc sc manh cua DES
nm trong ham f nn vic chon ham f phai cn thn tranh bi pha ma mt cach d dang.
Thng thng ham f c chon thng la ham c tinh cht f = f-1, tc f(f(x)) = x.
Trong s m ta ma hoa cua DES c cng b bi Uy ban Tiu chun Quc gia
Hoa Ky (The Untied States Nation Bureau of Standard), ham f thc hin cac vic sau:

Bin th nht Ri-1 c m rng thanh mt xu bit c dai 48 bit theo mt


ham m rng c inh E. Thc cht ham m rng E(Ri-1) la mt hoan vi c lp trong lp
lai 16 bit cua Ri-1.

Tnh E(Ri-1) Ki va vit kt qua thanh 8 xu 6 bit B1B2B3B4B5B6B7B8.

a 8 khi Bi vao 8 bang S1, S2, ..., S8 (c goi la cac hp S-Box). Mi hp


S-Box la mt bang 4*16 c inh c cac ct t 0 n 15 va cac hang t 0 n 3. Vi mi
xu 6 bit Bi = b1b2b3b4b5b6, ta tinh c Si(Bi) nh sau: hai bit b1b6 xac inh hang r trong
hp Si, bn bit b2b3b4b5 xac inh ct c trong hp Si. Khi , Si(Bi) s xac inh phn t Ci =
Si(r,c), phn t nay vit di dang nhi phn 4 bit. Nh vy, 8 khi 6 bit Bi (1 i 8) s
cho ra 8 khi 4 bit Ci vi (1 i 8).

Xu bit C = C1C2C3C4C5C6C7C8 c dai 32 bit c hoan vi theo phep hoan


vi P (hp P-Box). Kt qua P(C) s la kt qua cua ham f(Ri-1, Ki), va cung chinh la Ri cho
vng sau.
Ham f cung c th m ta bng hnh v sau:

42

Chng III: Cc h ma khoa bi mt

Ri-1 (32 bit)

Hm m rng (E)

Kho Ki (48 bit)


48 bit
48 bit
86 bit

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

Chng III: Cc h ma khoa bi mt

12

54

56

98

10 11 12

13 14 15 16

32

32

9 10 11 12 1312 1314 15 16 1716

Hnh 3.6: S ham m rng (E)


i khi n c goi la ham E-Box, mi 4 bit cua khi vao, bit th nht va bit th t
tng ng vi 2 bit cua u ra, trong khi bit th 2 va 3 tng ng vi 1 bit u ra. Bang
sau y miu ta vi tri cua bit ra so vi bit vao.
Bang m ta ham m rng (E):
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

Bang 3.11: Bang m ta ham m rng E


Vi du nh bit vi tri s 3 cua khi vao s di chuyn n vi tri s 4 cua khi ra va bit
vi tri 21 u vao s di chuyn n vi tri 30 va 32 u ra.
2.2.6. M t hp S - Box
i vi s ma hoa DES, moi tinh toan u la tuyn tinh, tc la vic tinh phep
tuyn loai tr XOR cua hai u ra cung ging vi phep tuyn loai tr XOR cua hai u
vao ri tinh toan u ra. Ch duy nht c cac tinh toan vi hp S la phi tuyn. Chinh v vy
cc hp S-Box (cha ng cac thanh phn phi tuyn cua h mt) la quan trong nht i
vi mt cua h ma, chinh cac hp S tao nn s hn loan (confusion) va s khuch tan
(diffusion) cua DES. Nm 1976, NSA a a ra tiu chun thit k hp S nh sau:

Mi hang trong mi hp S la mt hoan vi cua cac s nguyn t 0 n 15.

Khng c hp S nao la ham Affine hay tuyn tinh i vi cac u vao cua n.

S thay i cua mt bit u vao s dn n s thay i it nht hai bit u ra.

44

Chng III: Cc h ma khoa bi mt

i vi hp S bt ky va vi u vao x (mt xu bit c dai bng 6) bt ky, th


S(x) v S(x 001100) phai khac nhau it nht la 2 bit.
NSA cung tit l 3 thuc tinh cua hp S, nhng thuc tinh nay am bao tinh
confusion va diffusion cua thut toan:

Cac bit vao lun phu thuc khng tuyn tinh vi cac bit ra.

Sa i mt bit vao lam thay i it nht la hai bit ra.

Khi mt bit vao c gi c inh va 5 bit cn lai cho thay i th hp S th hin


mt tinh cht c goi la phn b ng nht: so sanh s lng bit s 0 va 1 cac u
ra lun mc cn bng. Tinh cht nay khin cho vic phn tich theo ly thuyt thng k
tm cach pha hp S la v ich.
Sau khi cng modulo vi khoa K, kt qua thu c chui 48 bit chia lam 8 khi a
vao 8 hp S-Box. Mi hp S-Box c 6 bit u vao va 4 bit u ra (tng b nh yu cu
cho 8 hp S-Box chun DES la 256 bytes). Kt qua thu c la mt chui 32 bit tip tuc
vao hp P-Box.
Ta c th xy dng cac hp S cua ring mnh, tuy nhin cung c th dng cac hp
S chun a c cng b:
14

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

Chng III: Cc h ma khoa bi mt


10

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

Chng III: Cc h ma khoa bi mt


Bang m ta hp P-Box (P):
16

20

21

29

12

28

17

15

23

26

18

31

10

24

14

32

27

19

13

30

22

11

25

Bang 3.20: Bang hoan vi P


Vi du nh bit 21 s dich chuyn n bit th 4, trong khi bit th 4 lai dich chuyn n
bit 31. Kt qua cui cng cua hp P-Box lai c XOR vi n a trai cua khi 64 bit cua
chinh n (tc Li-1 tao ra Ri ) va sau na trai va n a phai ao cho nhau va bt u
mt vng khac.
2.2.8. Vi d v ma ho DES
c th hiu r hn v phng phap ma hoa DES, chng ta hay xet vi du sau:

Mt ban r mang ni dung: 0123456789ABCDEF.

S dung khoa ( dang thp phn): 133457799BBCDFFI. Khoa nay dang


nhi phn la mt chui bit nh sau (khng c bit kim tra):
00010010011010010101101111001001101101111011011111111000

Chuyn i IP, chng ta ly ra L0 v R0:

L0 = 11001100000000001100110011111111
L0 = R0 = 11110000101010101111000010101010

16 vng ma hoa c thc hin nh sau:


E(R0)

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

Chng III: Cc h ma khoa bi mt


E(R2)

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

Chng III: Cc h ma khoa bi mt


L8=R7

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

Chng III: Cc h ma khoa bi mt


u ra S-Box

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

Bang 3.21: Vi du v cac bc thc hin cua DES


Cui cng, chuyn i IP-1, ta thu c ban ma ( dang Hecxa):
85E813540F0AB405.

50

Chng III: Cc h ma khoa bi mt


2.3. Cc yu im cua DES
2.3.1. Tnh b
Nu ta ky hiu u la phn b cua u (vi du nh: 0100101 la phn b cua 1011010) th
DES c tinh cht sau:
y = DES(x,k) y = DES( x , k )
Cho nn nu ta bit ma y c ma hoa t thng tin x vi khoa K th ta suy ra c
ban ma y c ma hoa t ban r x vi khoa k . Tinh cht nay chinh la mt yu im
cua DES bi v qua i phng c th loai b i mt s khoa phai th khi tin hanh
th giai ma theo kiu vet can.
2.3.2. Kho yu
Khoa yu la cac khoa ma theo thut toan sinh khoa con th tt ca 16 khoa con u
nh nhau:
K1 = K2 = ... = K15 = K16
iu khin cho vic m ha va giai ma i vi khoa yu la ging ht nhau.
C tt ca 4 khoa yu sau:
Kho yu (Hex)
0101

0101

0101

C0
0101

D0

{0}28 {0}28

FEFE FEFE FEFE FEFE {1}28 {1}28


1F1F

1F1F

0E0E 0E0E {0}28 {1}28

E0E0

E0E0

F1F1

F1F1 {1}28 {0}28

Bang 3.22: Cac kha yu cua DES


ng thi cn c 6 cp khoa na yu (semi-weak key) khac vi thuc tinh nh sau:
y = DES(x,k1) v y = DES(x,k2)
ngha la vi 2 khoa khac nhau nhng ma hoa ra cng mt ban ma t cng mt ban
r:

C0

D0

Semi-weak key (Hex)

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

Chng III: Cc h ma khoa bi mt


2.3.3. DES co cu trc ai s
Vi 64 bit khi ban r c th c anh xa ln tt ca vi tri cua 64 bit khi ban ma
trong 264 cach. Trong thut toan DES, vi 56 bit khoa, c th cho chng ta 256 (khoang
1017) vi tri anh xa. Vi vic a ma hoa th khng gian anh xa cn ln hn. Tuy nhin iu
nay ch ng nu vic ma hoa DES la khng c cu trc.
Vi DES c cu trc ai s th vic a ma hoa s c xem ngang bng vi vic
n ma hoa. Vi du nh c hai khoa bt ky K1 v K2 th s lun c khoa th K3 nh sau:
EK2(EK1(x)) = EK3(x)
Ni mt cach khac, vic ma hoa DES mang tich cht nhm, u tin ma hoa ban
r bng khoa K1 sau la khoa K2 s ging vi vic ma hoa khoa K3. iu nay thc s
quan trong nu s dung DES trong a ma hoa. Nu mt nhm c phat vi cu trc
ham qua nh th tinh an toan s giam.
2.3.4. Khng gian khoa K
DES c 256 = 1017 khoa. Nu chng ta bit c mt cp tin/ma th chng ta c
th th tt ca 1017 kha nng nay tm ra khoa cho kt qua khp nht. Gia s nh mt
phep th mt 10-6s, th chng s mt 1011s, tc 7300 nm. Nhng vi cac may tinh c
ch tao theo x ly song song. Chng han vi 107 con chipset ma DES chay song song th
by gi mi mt con chipset ch phai chiu trach nhim tinh toan vi 1010 phep th.
Chipset m DES ngy nay c th x ly tc 4.5107 bit/s tc c th lam c hn 105
phep ma DES trong mt giy.
Vao nm 1976 va 1977, Diffie va Hellman a c lng rng c th ch tao c
mt may tinh chuyn dung vet can khng gian khoa DES trong ngay vi cai gia 20
triu la. Nm 1984, chipset ma hoa DES vi tc ma hoa 256000 ln/giy. Nm
1987, a tng ln 512000 ln/giy. Vao nm 1993, Michael Wiener a thit k mt may
tinh chuyn dung vi gia 1 triu la s dung phng phap vet can giai ma DES
trung bnh trong vng 3,5 gi (va chm nht la 7 gi).
n nm 1990, hai nha toan hoc ngi Do Thai - Biham v Shamir - a phat minh
ra phng phap pha ma vi sai (diferential cryptanalyis), y la mt ky thut s dung
nhng phng oan khac nhau trong ban r a ra nhng thng tin trong ban ma. Vi
phng phap nay, Biham va Shamir a chng minh rng n hiu qua hn ca phng
phap vet can.
Pha ma vi sai la thut toan xem xet nhng cp ma hoa khac nhau, y la nhng
cp ma hoa ma ban r cua chng la khac bit. Ngi ta s phn tich tin trnh bin i
cua nhng cp ma nay thng qua cac vng cua DES khi chng c ma hoa vi cng
mt khoa K. Sau s chon hai ban r khac nhau mt cach ngu nhin hp ly nht. S
dung s khac nhau cua kt qua ma hoa va gan cho nhng kho khc nhau mt cach ph
hp nht. Khi phn tch nhiu hn nhng cp ban ma, chng ta s tm ra mt khoa c
xem la ng nht.
2.4. Triple DES (3DES)
Nh a trin
h bay cac ph n trn , h ma DES (hay chu n ma hoa d liu ) vi
khng gian kha ven ven c 254 kha nn th c t hin nay c th bi tham ma trong

52

Chng III: Cc h ma khoa bi mt


khoang thi gian vai gi ng h . V vy vic tm kim cac h ma khac thay th cho DES
la mt iu cn thit . Mt trong nhng cach thc c xem xet u tin la tn dung DES
nhng s dung ma hoa nhi u l n . Cach th nht la s dung hai kha ma ha hai ln
nh sau:
C = EK2(EK1(P))
Cach nay goi la double DES hay 2DES, kha cua h ma theo m hnh nay la 112
bit, c ve an toan hn so vi DES , it nht la trn nguyn tc . Tuy nhin cac chng minh
v mt ly thuy t (khng n m trong pham vi cua tai liu nay ) a cho th y r ng h ma nay
khng h an toan hn DES (thut toan tham ma theo ki u vet can brute-force yu c u s
phep tinh gp i tham ma 2DES so vi DES).
Cach thc th hai va hin nay ang c s dung rng rai la ma ha DES ba ln ,
cach nay goi la Triple DES (TDES) hay 3DES, hoc mt cach chu n m c h n la TDEA
(Triple Data Encryption Algorithm). M hinh s dung n gian nh t cua Triple DES la ma
ha 3 l n s dung 3 kha K1, K2, K3 nh hinh minh hoa sau:

Hnh 3.7: Triple DES


Ban ma C = DESK3(DESK2(DESK1(M)), m hinh nay goi la EEE vi ca ba bc s
dung ba kha y u s dung thut toan ma ha chun cua DES , mt bi n th khac
cua m hnh nay goi la EDE vi bc gia s dung thut toan giai ma cua DES:
C = DESK3( DES K12 (DESK1(M)).
Vic l a chon ma hoa hay giai ma bc th hai khng lam thay i tinh an toan
cua Triple DES. Kha cua Triple DES la 168 bit, mt s bi n th cua Triple DES s dung
kha c dai 112 bit (K1=K3) nhng khac vi double DES , khi o phng phap nay co
tn goi la Two key Triple DES . Cac chng minh v mt ly thuyt va cac tn cng i vi
Triple DES cho th y h ma nay vn se con c s dung trong mt tng lai d
ai na
mc du trn trn th c t no chm hn so vi AES 6 l n.

53

Chng III: Cc h ma khoa bi mt


2.5. Chu n ma hoa cao c p AES
2.5.1. Gii thi u
Chu n ma hoa d liu cao c p AES la mt h ma khoa bi mt co tn la Rijndael (Do
hai nha mt ma hoc ngi Bi la Joan Daemen va Vincent Rijmen a ra va tr thanh
chu n t nm 2002) cho phep x ly cac kh i d liu input co kich thc 128 bit s dung
cac kha c dai 128, 192 hoc 256 bit. H ma Rijndael c thi t k co th l am
vic vi cac khoa va cac kh i d liu co dai ln hn tuy nhin khi c chon la mt
chu n do Uy ban tiu chu n cua Hoa Ky a ra vao nm 2001, n c qui inh ch lam
vic vi cac kh i d liu 128 bit va cac kho a co dai 128, 192 hoc 256 bit (do o con
t cho no cac tn AES-128, AES-192, AES-256 tng ng vi dai khoa s dung).
2.5.2. Cc khi nim va inh nghia (Definitions)
2.5.2.1. Cc khi nim va ky hiu
Cac khai nim va inh
nghia c s dung trinh bay v chu n ma hoa cao c p:
Chu n ma hoa cao c p
Phep bin i bao gm mt phep nhn vi mt ma trn
Bi n i Affine
sau o la mt phep cng cua mt vect
Bit
Mt s nhi phn nhn gia tri 0 hoc 1
Mt day cac bit nhi phn tao thanh input , output, trang
thai (state) va cac kha s dung tai cac vng lp (Round
Block
Key) cua h ma . dai cua day (kh i) la s lng cac
bit ma no cha . Cac kh i cung co th c xem la mt
day cac byte
Byte
Mt nhom 8 bit
Cipher
Thut toan ma hoa
Kha cua h ma , c th c biu din di dang mt
Cipher Key
mang 2 chi u g m 4 hang va Nk ct
Ciphertext
Ban ma
Inverse Cipher
Thut toan giai ma
Thu tuc c s dung sinh ra cac kha s dung tai
Thu tuc sinh kha (Key
cac vng lp cua thut toan ma ha , giai ma t kha
Expansion)
chinh ban u
La cac gia tri sinh ra t kh a chinh bng cach s dung
Round Key
thu tuc sinh kha . Cac kha nay c s dung tai cac
vng lp cua thut toan
Cac gia tri ma ha trung gian c th biu din di dang
Trang thai (State)
mt mang 2 chi u g m 4 hang va Nb ct
Mt bang th phi tuy n c s dung trong thu tuc sinh
S-box
kha va trong cac bin i thay th cac byte thc
hin cac thay th 1-1 i vi mt gia tri 1 byte
Mt nhom 32 bit co th c xem nh 1 n vi tinh toan
Word
c lp hoc la mt mang 4 byte
AES

Bang 3.24: Qui c mt s t vi t t t va thut ng cua AES


2.5.2.2. Cc ham, ky hiu va cc tham s cua thut ton
Cac tham s thut toan , cac ky hiu va cac ham c s dung trong

m ta thut

toan:
AddRoundKey()

Ham bin i c s dung trong thut toan ma ha va giai


ma trong thc hin phep toan XOR bit gia mt trang
54

Chng III: Cc h ma khoa bi mt

InvMixColumns()
InvShiftRows()
InvSubBytes()
K
MixColumns()
Nb
Nk
Nr
Rcon[]
RotWord()
ShiftRows()

SubBytes()

SubWord()
XOR

thai tr ung gian (State) va mt kha cua vng lp (Round


Key). Kich thc cua mt Round Key bng kich thc cua
trang thai (ch ng han vi Nb = 4 dai cua mt Round Key
s la 128 bit hay 16 byte)
Ham bin i c s dung trong thut toan giai ma, la ham
ng c cua ham MixColumns()
Ham bin i trong thut toan giai ma , la ham ngc cua
ham ShiftRows()
Ham bin i trong thut toan giai ma , la ham ngc cu a
ham SubBytes()
Kha ma ha
Ham bin i trong thut toan ma ha nhn tt ca cac ct
cua mt trang thai (State) va trn vi d liu cua n (khng
phu thuc ln nhau) nhn c mt ct mi
S l ng cac ct (la cac word 32 bit) tao thanh mt trang
thai, Nb = 4)
S l ng cac word 32 bit tao thanh khoa ma hoa K (Nk = 4,
6, hoc 8)
S l ng cac vong lp cua thut toan , la mt ham cua Nk
va Nb (la cac gia tri c inh
) ( Nr = 10, 12 hoc 14 tng
ng vi cac gia tri khac nhau cua Nk)
Mang word hng s s dung trong cac vng lp
Ham s dung trong thu tuc sinh kha nhn mt word 4-byte
va thc hin mt hoan vi vng
Ham s dung trong qua trnh ma ha , x ly cac trang thai
b ng cach dich
vong ba hang cu i cua trang thai vi s l n
dich khac nhau
Ham bin i s dung trong qua trnh ma ha , x ly mt
trang thai b ng cach s dung mt bang th phi tuy n cac
byte (S-box) thao tac trn mi byte mt cach c lp
Ham s dung trong thu tuc sinh kha nhn mt word input
4-byte va s dung mt S -box trn mi gia tri 4-byte nay
thu c 1 word output
Phep or bit tuyt i
Phep or bit tuyt i
Phep nhn 2 a thc (bc nho hn 4) theo modulo (x4 + 1)
Phep nhn trn trng hu han

2.5.3. Cc ky hiu va qui c


2.5.3.1. Input va Output
Input va Output cua chu n ma hoa cao c p u la cac day 128 bit, cn goi la cac
kh i (block), dai cua mi kh i nay la s bit d liu ma n cha. Kha cua chun ma
ha cao cp la mt day c dai 128, 192 hoc 256 bit. Chu n ma hoa d liu cao c p
khng lam vic vi cac gia tri input, output va khoa co cac dai khac (mc du thut toan
c s cua no cho phep i u nay).
Cac bit cua input, output va khoa cua h ma c anh s t 0.
2.5.3.2. n vi Byte
n vi c ban x ly trong AES la mt byte tc la mt day 8 bit c xem nh la
mt i t ng n. Cac gia tri input, output va khoa cua h ma ( c qui inh
trong ph n
3.1) c xem la mt mang cac byte. Cac gia tri input, output va khoa cua h ma c ky

55

Chng III: Cc h ma khoa bi mt


hiu bi tn mang a va bi u din di dang a n hoc a[n] trong o n nhn cac gia tri trong
cac khoang sau:
N u dai khoa b ng 128 bit: 0 n < 16;
N u dai khoa b ng 192 bit: 0 n < 24;
N u dai khoa b ng 256 bit: 0 n < 32;
T t ca cac gia tri Byte s dung trong thut toan cua AES u c bi u din di
dang mt day cac bit 0 hoc 1 theo inh
dang {b7, b6, b5, b4, b3, b2, b1, b0}. Cac Byte nay
sau c hi u la cac ph n t trn trng hu han b ng cach s dung bi u din thanh
dang a thc:
7

b7x7 + b6x6 + b5x5 + b4x4 + b3x3 + b2x2 + b1x1 + b0x0 =

b x
i 0

Ch ng han gia tri {01100011} tng ng vi ph n t trn trng hu han x


5
x + x + 1.

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

Hnh 3.8: Cac trang thai cua AES


trong o cac gia tri cua mang s va mang output c tinh nh sau:
s[r, c] = in[r + 4c] 0 r, c < 4

56

Chng III: Cc h ma khoa bi mt


out[r + 4c] = s[r, c] 0 r, c < 4
2.5.3.5. Bi u din cua trang thai
B n ct cua mang trang thai cua thut toan tao thanh
c bi u din nh sau:
w0 = s0,0 s1,0 s2,0 s3,0

w1 = s0,1 s1,1 s2,1 s3,1

w2 = s0,2 s1,2 s2,2 s3,2

w3 = s0,3 s1,3 s2,3 s3,3

4 word 32-bit w0, w1, , w3

2.5.4. Thu t toan


dai cua input , output va cac trang thai (state) cua chun ma ha cao cp AES la
128 bit tng ng vi gia tri cua Nb = 4 (la s lng cac word 32-bit va cung la s ct
cua mi trang thai ). Kha cua AES c dai la 128, 192 hoc 256 bit tng ng vi cac
gia tri cua Nk la 4, 6, hoc 8 va cung la s ct cua kha ma ha.
Tng ng vi dai cua khoa s dung s vong lp cua thut toan Nr nhn cac gia
tri 10 (Nk = 4), 12 (Nk = 6) hoc 14 (Nk = 8). Chng ta c th minh hoa qua bang sau:
AES-128
AES-192
AES-256

dai kha (Nk)


4
6
8

Kich thc khi (Nb)


4
4
4

S l n lp (Nr)
10
12
14

Bang 3.26: Bang dai kha cua AES


Ca qua trnh ma hoa va giai ma AES s dung mt ham lp la k t h p cua b n ham
bi n i (n vi x ly la byte) sau: 1) bi n i thay th byte s dung mt bang th (S-box),
2) dich cac hang cua mang trang thai vi s ln dich c ua mi hang la khac nhau , 3) k t
h p d liu cua mi ct trong mang trang thai va 4) cng mt khoa Round Key vao trang
thai. Cac bin i nay (va cac ham ngc cua chng ) c m ta trong cac ph n 4.1.14.1.4 va 4.3.1-4.3.4.
2.5.4.1. Thu t toan ma hoa
B t u thut toan ban ro (input) c copy vao mang trang thai s dung cac qui
c c m ta trong phn 3.4. Sau khi cng vi khoa Round Key khi tao mang trang
thai c bin i bng cac thc hin mt ham vng (round function) Nr l n (10, 12, hoc
14 phu thuc vao dai kha ) trong o l n cu i cung th c hin khac cac l n trc o .
Trang thai sau ln lp cui cng s c chuyn thanh output cua thu t toan theo qui t c
c m ta trong ph n 3.4.
Ham vng c tham s ha s dung mt (key schedule) day cac kha c biu
din nh la mt mang 1 chi u cua cac word 4-byte c sinh ra t thu tuc sinh khoa (Key
Expansion) c m ta trong ph n 5.2.
Chng ta c th thy tt ca cac vng u thc hin cac cng vic ging nhau da
trn 4 ham (theo th t ) SubBytes(), ShiftRows(), MixColumns() va AddRoundKey() tr
vng cui cng b qua vic thc hin ham MixColumns().
Thut toan c m ta chi ti t qua oan gia ma lnh sau:
Cipher(byte in[4*Nb], byte out[4*Nb], word w[Nb*(Nr+1)])

57

Chng III: Cc h ma khoa bi mt


begin
byte state[4,Nb]
state = in
AddRoundKey(state, w[0, Nb-1]) // See Sec. 5.1.4
for round = 1 step 1 to Nr1
SubBytes(state) // See Sec. 5.1.1
ShiftRows(state) // See Sec. 5.1.2
MixColumns(state) // See Sec. 5.1.3
AddRoundKey(state, w[round*Nb, (round+1)*Nb-1])
end for
SubBytes(state)
ShiftRows(state)
AddRoundKey(state, w[Nr*Nb, (Nr+1)*Nb-1])
out = state
end
S thut toan:

58

Chng III: Cc h ma khoa bi mt

Add round key

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]

Add round key

Inverse mix cols


Add round key
Inverse sub bytes

Round 9

Round 1

Shift rows

Inverse shift row

Shift rows
Mix Columns
Add round key

Inverse mix cols


w[36,39]

Inverse sub bytes

Round 10

Substitute bytes

Inverse shift row

Shift rows
Add round key

Add round key


Round 1

Round 9

Substitute bytes

w[40, 43]

Plaintext
(a) M ha

Add round key

Ciphertext
(b) Giai ma

Hnh 3.9: Thut toan ma hoa va giai ma cua AES


2.5.4.1.1 Ham SubBytes()
Ham SubBytes () th c hin phep thay th cac byte cua mang trang thai bng cach
s dung mt bang th S -box, bang th nay la kha nghich va c xy dng bng cach
k t h p hai bi n i sau:
1. Nhn nghich
ao trn trng hn han GF (28) (m ta trong ph n 4.2), ph n t
{00} c anh xa thanh chinh n
2. Ap dung bin i Affine sau (trn GF(2)):

59

Chng III: Cc h ma khoa bi mt

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

S-box co th c bi u di n di dang ma trn

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

Bang th S -box c s dung trong ham SubBytes () c th c biu din di


dang hexa nh sau:

60

Chng III: Cc h ma khoa bi mt

Bang 3.27: Bang th S-Box cua AES


trong o ch ng han n u s 1,1 = {53} c ngha la gia tri thay th s c xac inh
b ng giao cua hang co chi s 5 vi ct co chi s 3 trong bang trn i u nay tng ng
vi vic s1,1 = {ed}.
2.5.4.1.2. Ham ShiftRows()
Trong ham nay cac byte trong 3 hang cui cua mang trang thai s c dich vng
vi s l n dich
(hay s byte bi dich)
khac nhau. Hang u tin r = 0 khng bi dich.

Cu th ham nay s tin hanh bin i sau:

sr' ,c sr ,(c shift ( r , Nb ))mod Nb ( Nb 4)

trong o gia tri dich


shift

(r, Nb) phu

thuc vao s hang r nh sau:


shift(1, 4) = 1, shift(2, 4) = 2, shift(3, 4) = 3.
Thao tac nay se chuy n cac byte ti cac vi tri th p hn trong cac hang
, trong khi
cac byte thp nh t se c chuy n ln u cua hang . T t cac cac m ta trn co th minh
hoa qua hnh v sau:
ShiftRows()

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

Chng III: Cc h ma khoa bi mt


Hnh 3.10: Ham ShifftRows()
2.5.4.1.3. Ham MixColumns()
Ham nay lam vic trn cac ct cua bang trang thai , n coi mi ct cua mang trang
thai nh la mt a thc gm 4 hang t nh c m ta trong phn 4.3. Cac ct s c
xem nh la cac a thc trn GF (28) va c nhn theo modulo x4 + 1 vi mt a thc c
inh
a(x):
a(x) = {03}x3 + {01}x2 + {01}x + {02}
Nh a m ta trong ph n 4.3 i u nay co th bi u din b ng mt phep nhn ma
trn:
s(x) = a(x)s(x):

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:

s0,' c ({02} s0,c ) ({03} s1,c ) s2,c s3,c


s1,' c s0,c ({02} s1,c ) ({03} s2,c ) s3,c
s2,' c s0,c s1,c ({02} s2,c ) ({03} s3,c )

s3,' c ({03} s0,c ) s1,c s2,c ({02} s3,c )


C th minh hoa vic thc hin cua ham nay bng hnh v sau:

62

Chng III: Cc h ma khoa bi mt


Hnh 3.11: Ham MixColumns cua AES
2.5.4.1.4. Ham AddRoundKey()
Trong ham nay mt khoa vong (Round Key ) s c cng vao mang trang thai
b ng mt thao tac XOR bit . Mi khoa vong g m Nb word c sinh ra bi thu tuc sinh
kha (ph n 5.2). Cac word nay s c cng vao mi ct cua mang trang thai nh sau:

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.

Hnh 3.12: Ham AddRoundKey cua AES


2.5.4.2. Thu t toan sinh khoa (Key Expansion)
Thut toan sinh khoa cua AES nhn m t khoa ma hoa K sau o th c hin mt thu
tuc sinh kha sinh mt day cac kha cho vic ma ha . Thu tuc nay s sinh tng s
Nb*(Nr+1) word, thu tuc s dung mt tp khi tao Nb word va mi mt ln lp trong s Nr
l n se c n ti Nb word cua d liu khoa . Day kha kt qua la mt mang tuy n tin
h cac
word 4-byte c ky hiu la [wi] trong o 0 i < Nb(Nr+1).
S m rng khoa thanh day khoa c m ta qua oan gia ma sau:
KeyExpansion(byte key[4*Nk], word w[Nb*(Nr+1)], Nk)
begin
word temp
i=0
while (i < Nk)

63

Chng III: Cc h ma khoa bi mt


w[i] = word(key[4*i], key[4*i+1], key[4*i+2], key[4*i+3])
i = i+1
end while
i = Nk
while (i < Nb * (Nr+1)]
temp = w[i-1]
if (i mod Nk = 0)
temp = SubWord(RotWord(temp)) xor Rcon[i/Nk]
else if (Nk > 6 and i mod Nk = 4)
temp = SubWord(temp)
end if
w[i] = w[i-Nk] xor temp
i=i+1
end while
end
SubWord() la mt ham nhn mt input 4-byte va ap dung bang th S -box ln input
nhn c mt word output . Ham RotWord() nhn mt word input [a0, a1, a2, a3] th c
hin mt hoan vi vng va tra v [a1, a2, a3, a0]. Cac phn t cua mang hng s Rcon [i]
cha cac gia tri nhn c bi [xi-1, {00}, {00}, {00}] trong o x i-1 la mu ha cua x (x c
bi u din di dang {02} trn GF(28) va i bt u t 1).
Theo oan gia ma trn chung ta co th nhn th y r ng Nk word cua khoa k t qua se
c i n bi khoa ma hoa . Cac word sau w [i] s bng XOR vi word ng trc n
w[i-1] vi w[i-Nk]. Vi cac word vi tri chia h t cho Nk mt bi n i se c th c hin vi
w[i-1] trc khi th c hin phep XOR bit , sau o la phep XOR vi mt h ng s Rcon [i].
Bi n i nay g m mt phep dich
vong cac byte cua mt word (RotWord()), sau o la ap
dung mt bang tra ln tt ca 4 byte cua word (SubWord()).
Ch y la thu tuc m rng kha i vi cac kha c dai 256 hi khac so vi thu
tuc cho cac kha c dai 128 hoc 192. N u Nk = 8 va i 4 la mt bi s cua Nk th
SubWord() s c ap dung cho w[i-1] trc khi th c hin phep XOR bit.
2.5.4.3. Thu t toan giai ma
Thut toan giai ma kha gi ng vi thut toan ma hoa v mt c u truc nhng 4 ham
c ban s dung la cac ham ng c cua cac ham trong thut toan giai ma . oan gia ma
cho thut toan giai ma nh sau:
InvCipher(byte in[4*Nb], byte out[4*Nb], word w[Nb*(Nr+1)])
begin
byte state[4,Nb]
state = in
64

Chng III: Cc h ma khoa bi mt


AddRoundKey(state, w[Nr*Nb, (Nr+1)*Nb-1]) // See Sec. 5.1.4
for round = Nr-1 step -1 downto 1
InvShiftRows(state) // See Sec. 5.3.1
InvSubBytes(state) // See Sec. 5.3.2
AddRoundKey(state, w[round*Nb, (round+1)*Nb-1])
InvMixColumns(state) // See Sec. 5.3.3
end for
InvShiftRows(state)
InvSubBytes(state)
AddRoundKey(state, w[0, Nb-1])
out = state
end
2.5.4.3.1. Ham InvShiftRows()
Ham nay la ham ngc cua ham ShiftRows () . Cac byte cua ba hang cui cua
mang trang thai s c dich vng vi cac vi tri dich khac nhau . Hang u tin khng bi
dich, ba hang cu i bi dich
i Nb shift(r, Nb) byte trong o cac gia tri shift (r, Nb) phu
thuc vao s hang nh trong ph n 5.1.2.
Cu th ham nay tin hanh x ly sau:

sr' ,(c shift ( r , Nb ))mod Nb sr ,c0 r 4,0 c Nb( Nb 4)


Hnh minh hoa:

65

Chng III: Cc h ma khoa bi mt


Hnh 3.13: Ham InvShiftRows() cua AES
2.5.4.3.2. Ham InvSubBytes()
Ham nay la ham ngc cua ham SubBytes (), ham s dung nghich ao cua bin i
Affine b ng cach th c hin nhn nghich
ao trn GF(28).
Bang th c s dung trong ham la:

Bang 3.28: Bang th cho ham InvSubBytes()


2.5.4.3.3. Ham InvMixColumns()
Ham nay la ham ngc cua ham MixColumns (). Ham lam vic trn cac ct cua
mang trang thai , coi mi ct nh la mt a thc 4 hang t c m ta trong phn 4.3.
Cac ct c xem la cac a thc trn GF (28) va c nhn theo modulo x 4+1 vi mt a
thc c inh
la a-1(x):
a-1(x) = {0b}x3 + {0d}x2 + {09}x + {0e}
Va c th m ta bng phep nhn ma trn nh sau:
s(x) = a-1(x)s(x):

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:

s0,' c ({0e} s0,c ) ({0b} s1,c ) ({0d} s2,c ) ({09} s3,c )


s1,' c ({09} s0,c ) ({0e} s1,c ) ({0b} s2,c ) ({0d} s3,c )
66

Chng III: Cc h ma khoa bi mt

s2,' c ({0d} s0,c ) ({09} s1,c ) ({0e} s2,c ) ({0b} s3,c )


s3,' c ({0b} s0,c ) ({0d} s1,c ) ({09} s2,c ) ({0e} s3,c )
2.5.4.3.4. Ham nghich o cua ham AddRoundKey()
Tht thu vi la ham nay t ban thn no la nghich
ao cua chin
h no la do ham chi co
phep toan XOR bit.
2.5.4.3.5. Thu t toan gii ma tng ng
Trong thut toan giai ma c trinh bay trn chung ta th y th t cua cac ham
bi n i c ap dung khac so vi thut toan ma hoa trong khi dang cua danh sach khoa
cho ca 2 thut toan vn gi nguyn. Tuy vy mt s c i m cua AES cho phep chung ta
c mt thut toan giai ma tng ng c th t ap dung cac ham bin i ging vi
thut toan ma hoa (t t nhin la thay cac bi n i b ng cac ham ng c cua chung ). i u
nay at c bng cach thay i danh sach kha.
Hai thuc tinh sau cho phep chung ta co mt thut toan giai ma tng ng:
1. Cac ham SubBytes () va ShiftRows() hoan i cho nhau ; c ngha la mt bin
i SubBytes () theo sau bi mt bi n i ShiftRows () tng ng vi mt bi n i
ShiftRows() theo sau bi mt bi n i SubBytes (). i u nay cung ung vi cac ham
ng c cua chung
2. Cac ham trn ct MixColumns() va InvMixColumns () la cac ham tuyn tinh
i vi cac ct input, c ngha la:
InvMixColumns(state XOR
InvMixColumns(Round Key).

Round

Key)

InvMixColumns(state)

XOR

Cac c im nay cho phep th t cua cac ham InvSubBytes() va InvShiftRows() c


th i ch . Th t cua cac ham AddRoundKey() va InvMixColumns() cung c th i ch
min la cac ct cua danh sach khoa giai ma phai c thay i b ng cach s dung ham
InvMixColumns().
Thut toan giai ma tng ng c th c hin b ng cach ao ngc th t cua
ham InvSubBytes () va InvShiftRows (), va thay i th t cua AddRoundKey
() va
InvMixColumns() trong cac l n lp sau khi thay i khoa cho gia tri round = 1 to Nr-1 b ng
cach s dung bin i InvMixColumns (). Cac word u tin va cu i cung cua danh sach
kha khng bi thay i khi ta ap dung phng phap nay.
Thut toan giai ma tng ng cho mt c u truc hiu qua hn so vi thut toan
giai ma trc .
oan gia ma cho thut toan giai ma tng ng:
EqInvCipher(byte in[4*Nb], byte out[4*Nb], word dw[Nb*(Nr+1)])
begin
byte state[4,Nb]

67

Chng III: Cc h ma khoa bi mt


state = in
AddRoundKey(state, dw[Nr*Nb, (Nr+1)*Nb-1])
for round = Nr-1 step -1 downto 1
InvSubBytes(state)
InvShiftRows(state)
InvMixColumns(state)
AddRoundKey(state, dw[round*Nb, (round+1)*Nb-1])
end for
InvSubBytes(state)
InvShiftRows(state)
AddRoundKey(state, dw[0, Nb-1])
out = state
end
Cac thay i sau cn thc hin trong thut toan sinh kha thut toan trn c th
hoat ng c:
for i = 0 step 1 to (Nr+1)*Nb-1
dw[i] = w[i]
end for
for round = 1 step 1 to Nr-1
InvMixColumns(dw[round*Nb, (round+1)*Nb-1]) // note change of type
end for
2.6. Cc c ch, hinh thc s dng cua ma hoa khi (Mode of Operation)
2.6.1. Cc hinh thc s dng
Nh chung ta a bi t c ac ma ha khi ma ha cac khi thng tin c dai c inh,
chng han DES vi cac khi bit 64, s dung kha la xu bit c dai bng 56. Tuy nhin
s dung cac h ma nay trn thc t vn cn c
mt qui inh
v qui cach s dung
chng ma ha cac d liu cn ma ha. Cach thc s dung mt thut toan ma ha khi
trong thc t c goi la Mode of Use hay Mode Of Operation. C 4 hnh thc s dung
cac h ma khi c inh ngha trong cac chun ANSI (vi du ANSI X3.106-1983 danh
cho DES). D a vao vic x ly d liu input cua h ma ngi ta chia thanh hai loai c ch
s dung cac h ma khi sau:
1. Cc ch khi (Block Mode): x ly cac thng ip theo cac khi (ECB, CBC)
2. Cc ch lung, dng (Stream Modes): x ly cac thng ip nh la mt
lung bit/byte (CFB, OFB).
Cac ch khi thng c s dung ma ha cac d liu ma ch
ng ta bit
trc v vi tri , ln trc khi ma hoa (ch ng han nh cac file , cac email trc khi cn

68

Chng III: Cc h ma khoa bi mt


gi i ) trong khi cac ch lu ng thng c s dung cho vic ma hoa cac d liu
khng c bi t trc v ln c ung nh vi tri chng han nh cac tin hiu gi v t v
tinh hoc cac tin
hiu do mt b cam bi n oc t bn ngoai vao.
Ch : DES, 3DES, AES (hay bt k mt thut ton ma hoa khi no khc) to
thnh mt khi xy dng c bn. Tuy nhin s dng chung trong thc t, chung ta
thng cn lm vic vi cc khi lng d liu khng th bit trc c, co th chung l
mt khi d liu sn sng ngay cho vic ma hoa(khi o vic s dng ma hoa theo c ch
khi l ph hp), hoc co th ch c mt vi bit, byte ti mt thi im (khi o s dng
ch dng l ph hp). V th cc c ch s dng ma khi c trnh by trong phn
ny l ring cho DES nhng cung c ap dung tng t cho cac h ma kh i khac.
2.6.2. C ch bang tra ma i n t ECB (Electronic CodeBook Book)
Thng ip c n ma hoa c chia thanh cac khi c lp m ha, mi kh i ban
ma la kt qua cua vic ma ha ring bit khi ban r tng ng vi n va c lp vi khi
khac. Cach lam vic nay ging nh chng ta thay th cac khi ban ma bng cac khi ban
r tng ng nn c tn goi la bang tra ma in t.
P = P1P2PN
Ma ha: Ci = DESK(Pi), k t qua ban ma la C = C1C2..CN. Qua trnh giai ma tin hanh
ng c lai: Pi = DES-1K(Ci).
P

P1

P2

C1

C2

C
Pn

Ma ha

Cn
C

C1

C2

P1

P2

Cn
Giai ma

D
Pn

Hnh 3.14: C ch ECB


ECB la ch s dung n gian va d cai t nht, c s dung khi ch mt khi
n thng tin cn c gi i (chng han nh mt kha session c ma ha bng cach
dng mt kha chinh).
Do trong ECB cac khi ban r c ma ha c lp nn lam nay sinh mt s nhc
i m sau: cac lp lai cua thng ip c th c th hin trn ban ma, ngha la nu c
cac ban r ging nhau th tng ng cac ban ma ging nhau , i u nay c bit th hin
r vi cac d liu lp lai nhiu chng han nh cac d liu hnh anh. Vic l tinh lp lai
cua ban r c th dn ti cac tn cng theo phng phap phn tich thng k . Hn na
cac ban ma c th bi gia mao bng cach thm mt s khi ban ma gia vao kt qua ma
ha, bn nhn se khng phat hin ra s gia mao nay . Bn canh o vic ma ha cac khi
thng ip la c lp lam suy yu DES. Trn th c t ECB ch thc s c ich khi gi mt
khi d liu nh.

69

Chng III: Cc h ma khoa bi mt


2.6.3. C ch ma moc xich CBC - Cipher Block Chaining
vt qua cac vn v s lp lai va yu cu c lp trong ECB , chng ta cn
mt vai cach lam cho ban ma phu thuc vao tt ca cac khi trc n . o nay chinh la
iu ma CBC cung cp cho chng ta bng cach kt hp khi ban r trc vi khi thng
ip hin tai trc khi ma ha.
Cung ging nh c ch EBC trong c ch CBC ban ro se c chia thanh cac khi
nhng s c lin kt vi nhau trong qua trinh m ha tao thanh ban r . Chinh v
cac khi ban ma c mc xich vi ban r va v th ch nay c tn la CBC
CBC s dung mt vector khi tao IV (Initial Vector) bt u:
C0 = IV, P = P1P2..PN
Ma ha: Ci = DESK (Pi Ci-1), C = C1C2..CN
Giai ma: Pi = DES-1K(Ci) Ci-1, P = P1P2..PN.

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

Ch CBC ph hp vi cac yu cu cn gi cac lng ln d liu mt cach an


toan (chng han nh FTP, EMAIL, WEB)
Trong CBC mi khi ban ma la phu thuc vao tt ca cac khi thng ip ng trc
nn vic sai lch mt kh i ban ro hoc ban ma nao o cung lam sai lch k t qua ma
ha va giai ma tng ng . Kh khn nht trong vic s dung CBC chinh la quan ly cac
gia tri IV s dung , thng thi ca hai bn nhn va gi u bit (ch ng han nh b ng 0)
hoc se c khi tao b ng cac gia tri mi va gi cho bn nhn trc khi ma hoa . Tuy
nhin nu IV bi tit l ke tn cng c th lam thay i cac bit khi u tin, v th c th
IV la mt gia tri c inh hoc c gi i sau khi a ma ha bng ECB.
2.6.4. Ch ma phn hi CFB (Cipher Feedback) va ch ma phn hi u ra
OFB (Output Feedback)
Cac ch lung CFB va OFB c s dung ma ha cac
d liu c cung
c p ri rac , thng la cac tin
hiu nhn c t v tinh hoc do mt b cam bi n nao o
truy n v . Chinh v d liu c cung cp ri rac nn tai mt thi im chng ta khng
th bi t trc ln va vi tri d liu s c ma ha . Do o i vi cac ch lu ng

70

Chng III: Cc h ma khoa bi mt


input cho thut toan ma hoa c xem la mt lu ng cac bit cua ban ro c l n l t theo
thi gian.
Trong ch OFB va CFB dng khoa c tao ra s c cng modulo 2 vi ban
r. OFB thc s la mt h ma ng b: dng khoa c thanh lp bi vic tao lp cac
vector khi tao 64 bit (vector IV). Ta xac inh z0 = IV v tnh dng kho z1z2 ... zn theo quy
tc zi = ek(zi-1) vi i 1. Sau day ban r x1x2 ... xn s c ma hoa bng cach tinh yi =
xi zi vi i 1.
Trong ch CFB, ta bt u vi y0 = IV (vector khi tao 64 bit) va tao phn t zi
cua dng khoa bng cach ma hoa khi ban ma trc . Tc la zi = ek(yi-1) vi i1 va yi =
xi zi vi i1. Vic s dung CFB c m ta bng s sau (ek trong trng hp nay
c s dung cho ca ma hoa va giai ma):

x1

x2

M ho
IV=y0

ek

ek

y1

y2

y1

y2

Gii m
IV=y0

ek

ek

x1

x2

Hnh 3.16: Ch CFB


Cung c mt vai dang khac cua OFB va CFB c goi la ch phan hi k-bit (1<
k < 64). y ta a m ta ch phan hi 64 bit. Cac ch phan hi 1-bit v 8-bit
thng c s dung cho phep ma hoa ng thi 1 bit (hay byte) d liu. Ky thut c
ban c s dung y la mt thanh ghi dich 64 bit va mi bc dich c k-bit lm
u vao cho ma hoa. K-bit bn trai cua u vao ham ma hoa c XOR vi n vi u
cua block ban r tip theo a ra mt n vi ban ma truyn i va n vi nay c
a lai vao k-bit bn phai cua thanh ghi dich. Qua trnh x ly tip tuc cho ti khi tt ca
n vi ban r u c ma hoa. im khac nhau gia CFB va OFB la k-bit hi tip cho
b ghi dich c ly t trc hay sau b XOR (nu ly sau b XOR th d liu a ma hoa
ng vi CFB, cn ly phia trc th la OFB).
Nhn chung , bn ch cua DES u c nhng u nhc im ring. ch
ECB va OFB, s thay i cua mt khi ban r xi 64 bit s lam thay i khi ban ma yi
tng ng, nhng cac khi ban khac th khng bi anh hng. Trong mt s tnh hung,

71

Chng III: Cc h ma khoa bi mt


y la mt tinh cht ang mong mun. Vi du nh ch OFB thng c dng ma
hoa trong vic truyn tin hiu qua v tinh.
Mt khac, ch CBC va CFB, nu mt khi ban r xi bi thay i th yi va cac khi
tip theo s bi anh hng. Nh vy ch CBC va CFB c th c s dung rt hiu
qua trong muc ich xac thc. Cung v ly do nn CFB thng c dung ma hoa
trong cac trng h p ma ng truy n t t, tin hiu it nhiu. c bit hn, cac ch nay
dng tao ma xac thc ban tin (MAC Message Authentication Code). MAC c gn
thm vao cac khi ban r thuyt phuc R (receiver) rng y chinh la day ban r c
gi t S (sender) ma khng phai mt ai khac gia mao. Nh vy MAC am bao tinh xac
thc cua ban tin.
Ta s m ta cach s dung ch CBC tao MAC. Ta bt u bng vector khi
tao IV cha toan s 0. Sau dng ch CBC tao cac khi ban ma y1y2...yn vi khoa
K. Cui cng ta xac inh MAC la yn. Ngi gi S (sender) s phat i khi ban r x1x2 ... xn
cng vi MAC. Khi ngi nhn R (receiver) thu c x1x2 ... xn, anh ta s khi phuc lai y1,
y2, yn bng khoa bi mt K va xac minh liu yn c ging MAC cua mnh thu c hay
khng. Nu mt ngi th ba E (enemy) thu chn c ban r x1x2 ... xn r rng E khng
th tao ra MAC hp l nu khng bit khoa bi mt K ma S va R ang dng. Hn na, nu
E thay i it nhiu ni dung th chc chn E khng th thay i c MAC c R
chp nhn.
Thng thng ta mun kt hp ca tinh xac thc ln bao mt. iu c thc
hin nh sau: trc tin S dng khoa K1 tao MAC cho day ban r x1x2... xn, sau S
xac inh xn+1 la MAC, ri ma hoa day x1x2 ... xnxn+1 bng kho K2 tao day ban ma y1y2 ...
ynyn+1. Khi R nhn c y1y2...ynyn+1, R s giai ma bng khoa K2 va sau kim tra xem
xn+1 c phai la MAC (bng khoa K1) cua day ban r x1x2 ... xn hay khng.
3. Bai tp
Bai tp 3.1: Hay giai ma ban ma c ma ha bng h ma Caesar sau (s dung bang
ch cai ti ng Anh): WKXPEVXS.
Bai tp 3.2 (kho): Thng ip bi mt n sau oan vn ban ti ng Anh sau la gi:
The supply of game for London is going steadily
up. Head keeper Hudson, we believe, has been
now told to receive all orders for fly paper and for
preservations of your hen-pheasant's life.
Trich trong tac phm The Gloria Scott.
Bai tp 3.3: S dung bang sau (h ma Freemason) giai ma thng ip:

Bang ma cac ky t:
A B C
D E F
G H I

72

Chng III: Cc h ma khoa bi mt

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

Greetings to all at Oxford. Many thanks for your


letter and for the Summer examination package.
All Entry Forms and Fees Forms should be ready
for final dispatch to the Syndicate by Friday
20th or at the very least, Im told, by the 21st.
Admin has improved here, though theres room
for improvement still; just give us all two or three
more years and well really show you! Please
dont let these wretched 16+ proposals destroy
your basic O and A pattern. Certainly this
sort of change, if implemented immediately,
would bring chaos.
Bai tp 3.5: Cho h ma Affine c cai t trn Z99. Khi kha la cac cp (a, b) trong
a, b Z99 vi (a, 99) = 1. Ham ma ha EK (x) = (a * x + b) mod 99 va ham giai ma DK
(x) = a-1 * (x b) mod 99.
a) Hay xac inh s kha c th c s dung cho h ma nay.
b) Nu nh kha giai ma la K-1 = (16, 7), hay thc hin ma ha xu m =
DANGER.
Bai tp 3.6: Cho h ma Affine c cai t trn Z39. Khi kha la cac cp (a, b) trong
a, b Z39 vi (a, 39) = 1. Ham ma ha EK (x) = (a * x + b) mod 39 va ham giai ma DK
(x) = a-1 * (x b) mod 39.
a) Hay xac inh s kha c th c s dung cho h ma nay.
b) Nu nh kha giai ma la K-1 = (23, 7), hay thc hin ma ha xu m = ATTACK.
Bai tp 3.7: Cho h ma Affine c cai t trn Z55. Khi kha la cac cp (a, b) trong
a, b Z55 vi (a, 55) = 1. Ham ma ha EK (x) = (a * x + b) mod 55 va ham giai ma DK
(x) = a-1 * (x b) mod 55.
a) Hay xac inh s kha c th c s dung cho h ma nay.

73

Chng III: Cc h ma khoa bi mt


b) Kha giai ma la K-1 = (13, 17), hay xac inh kha ma ha.
Bai t p 3.8: Gia s h ma Affine c cai t trn Z99.
a) Hay xac inh s kha c th c cua h ma.
b) Gia s kha ma ha la (16, 7), hay xac inh kha giai ma.
Bai t p 3.9: Gia s h ma Affine c cai t trn Z126.
a) Hay xac inh s kha c th c cua h ma.
b) Gia s kha ma ha la (23, 7), hay xac inh kha giai ma.
Bai tp 3.10: Cho h ma Hill c M = 2.

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 =

Bai tp 3.11: Cho h ma Hill c M = 2.

5 3
c s dung lam kha cho h ma trn. Hay tm tt ca cac
11 a

a) Ma trn A =

kha c th s dung cua h ma trn.


b) Gia s ngi ta s dung h ma trn ma ha ban r P = EASY va thu c
ban ma la UMQA. Hay thc hin giai ma vi ban ma la C = MCDZUZ va a
ra ban r.
Bai tp 3.12: Cho h ma Hill c M = 2.

15 13
c s dung lam kha cho h ma trn. Hay tm tt ca
7 a

a) Ma trn A =

cac kha c th s dung cua h ma trn.


b) Gia s ngi ta s dung h ma trn ma ha ban r P = MARS va thu c
ban ma la YARH. Hay thc hin giai ma vi ban ma la C = MANNTF va a
ra ban r.
Bai tp 3.13: Cho h ma Vigenere c M = 6, K = CIPHER.
a) Hay thc hin ma ha xu P = THIS IS MY TEST.
b) Hay thc hin giai ma xu M = EICJIC RTPUEI GBGLEK CBDUGV.
Bai tp 3.14: Cho h ma Vigenere c M = 6. Ma ha xu P = THIS IS MY TEST ngi
ta thu c ban ma la LLKJML ECVVWM.
a) Hay tm kha ma ha a dng cua h ma trn.
b) Dng kha tm c phn trn hay giai ma ban ma C = KLGZWT
OMBRVW.

74

Chng III: Cc h ma khoa bi mt


Bai tp 3.15: Cho h ma Vigenere c M = 6. Ma ha xu P = SPIRIT ngi ta thu c
ban ma la OXHRZW.
a) Hay tm kha ma ha a dng cua h ma trn.
b) Dng kha tm c phn trn hay giai ma ban ma C = BQETYH HMBEEW.
Bai tp 3.16: Cho h ma Vigenere c M = 6. Giai ma xu C = RANJLV ngi ta thu
c ban r la CIPHER.
a) Tm kha a s dung cua h ma trn.
b) Dng kha tm c phn trn hay hay giai ma xu M = PLDKCI DUJQJO.
Bai tp 3.17: Phng phap ma hoa thay th n gian
oan vn ban sau c ma hoa b ng cach s dung mt phng phap ma hoa thay
th n gian. Ban r la mt phn cua mt vn ban ting Anh vit hoa, b qua cac du
cu. Hay s dung bang thng k tn sut xut hin cua cac ch cai trong ting Anh
giai ma ban ma a cho.
ODQSOCL OW GIU BOEE QRROHOCS QV GIUR KIA QF Q DQCQSLR WIR
ICL IW CQFQF EIYQE YIDJUVLR FGFVLDF GIU SLV OCVI GIUR
IWWOYL IC VXQV DICPQG DIRCOCS VI WOCP VXL JXICLF ROCSOCS
LHLRG YQEELR OF Q POFVRQUSXV YICWUFLP CQFQ BIRMLR QCP
LHLRG YQEELR QFFURLF GIU VXQV XOF IR XLR WOEL IR
QYYIUCVOCS RLYIRP IR RLFLQRYX JRIKLYV LHLRG ICL IW BXOYX
OF DOFFOCS WRID VXL YIDJUVLR FGFVLD OF QAFIEUVLEG HOVQE
Bang thng k tn sut xut hin cua cac ch cai trong ti ng Anh:
Ch cai

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 %

Bai t p 3.18: Cho ban ma sau:


EYMHP GZYHH PTIAP QIHPH YIRMQ EYPXQ FIQHI AHYIW ISITK MHXQZ PNMQQ
XFIKJ MKXIJ RIKIU XSSXQ ZEPGS ATIHP PSXZY H

75

Chng III: Cc h ma khoa bi mt


Bi t r ng bang ch cai s dung la ti ng Anh, hay thc hin cac yu cu sau:
a) Hay a ra bang phn phi tn sut cua cac ch cai trong ban ma trn.
b) Gia s ban ma trn nhn c bng cach s dung phng phap ma ha i ch
hoc thay th n m, hay da vao bang phn ph i t n su t ph n a xac inh

xem kha nng nao la cao hn (h ma i ch hay thay th n m)?


c) Hay xac inh ban r nu nh phn bt u cua ban r la What ought .
d) Giai thich cach thanh lp kha cua h ma.
Bai tp 3.19 (kho):
Hay giai ma ban ma c ma ha bng h ma Vigenere sau , xac inh kha s
dung bit rng ban r gm cac ch cai trong bang ma ting Anh.
IGDLK MJSGC FMGEP PLYRC IGDLA TYBMR KDYVY XJGMR TDSVK ZCCWG ZRRIP
UERXY EEYHE UTOWS ERYWC QRRIP UERXJ QREWQ FPSZC ALDSD ULSWF FFOAM
DIGIY DCSRR AZSRB GNDLC ZYDMM ZQGSS ZBCXM OYBID APRMK IFYWF MJVLY
HCLSP ZCDLC NYDXJ QYXHD APRMQ IGNSU MLNLG EMBTF MLDSB AYVPU TGMLK
MWKGF UCFIY ZBMLC DGCLY VSCXY ZBVEQ FGXKN QYMIY YMXKM GPCIJ HCCEL
PUSXF MJVRY FGYRQ

S dung mt trong cac ngn ng lp trin


h C, C++, Java hoc C# lam cac bai tp sau:
Bai tp 3.20: Vi t chng trinh m tn s xut hin cua cac ch cai ting Anh trong mt
vn ban ti ng Anh dang file text.
Bai tp 3.21: Vi t chng trinh m tn s xut hin cua cac ch cai ting Vit trong mt
vn ban ti ng Vit dang file RTF.
Bai tp 3.22: Vi t chng trinh cai t thut toan ma ha va giai ma cua h ma Ceasar.
Bai tp 3.23: Vi t chng trin
h cai t thut toan ma hoa va giai ma cua h ma Affine.
Bai tp 3.24: Vi t chng trinh tinh inh
thc cua ma trn vung c p N (N < 20).
Bai tp 3.25: Vi t chng trinh cai t thut toan ma hoa va giai ma cua h ma Hill.
Bai tp 3.26: Vi t chng trin
h cai t thut toan ma hoa va giai ma cua h ma Vigenere.
Bai tp 3.27: Vi t chng trin
h ma hoa va giai ma file theo h
ma ha ECB, CBC.

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

Chng IV: Cc h ma mt khoa cng khai

CHNG IV: CAC H MA MT KHOA CNG KHAI


Trong cac h ma mt khoa bi mt n u chung ta bi t khoa va ham ma hoa chung ta
c th tm c kha va ham giai ma mt cach nhanh chng (thi gian a thc).
Mt h ma mt khoa bi mt la mt h ma mt ma tt ca moi ngi u bit ham ma
ha va kha ma ha nhng khng tn tai mt thut toan thi gian a thc c th tinh
c khoa giai ma t cac thng tin o.
1. Khi nim h ma mt khoa cng khai
Cac h ma c trnh bay trong cac chng trc c goi la cac h ma khoa bi
mt, kha i xng, hay cac h ma truy n th ng (conventional).
Cac h ma nay c cac im yu sau y:

N u s l ng ngi s dung ln th s kha s tng r t nhanh, ch ng han vi n


ngi s dung thi s khoa se la n *(n-1)/2 do o r t kho quan ly , phc tap va
khng an toan.

D a trn cac h ma nay khng th xy d ng cac khai nim va dich


vu nh ch
ky in t, dich vu xac thc ha ngi dng cho cac ng dung thng mai in
t.

Vao nm 1975 Diffie va Hellman trong mt cng trin


h cua min
h (mt bai bao) a
xu t ra cac y tng cho phep xy d ng ln cac h ma hoat ng theo cac nguyn t
c
mi g n li n vi cac bn truy n tin ch khng g n vi cac cp truy n tin.
Nguyn t c hoat ng cua cac h ma la mi bn tham gia truy n tin se co
2 kha,
mt khoa goi la khoa bi mt va mt khoa c goi la khoa cng khai. Kha bi mt la kha
dng giai ma va c gi bi mt (KS), kha cng khai la kha dng sinh ma c
cng khai hoa b t c ai cung co th s dung khoa nay gi tin cho ngi chu cua h
ma (KP). Ngay nay chng ta c th thy rt r nguyn tc nay trong vic gi email , moi
ngi u co th gi email ti mt ia chi email nao o , nhng chi co ngi chu s hu
cua ia ch email mi c th oc c ni dung c ua bc th , cn nhng ngi khac
th khng . Vi cac h ma khoa cng khai vic phn ph i khoa se tr nn d dang hn
qua cac knh cung c p khoa cng cng , s l ng khoa h th ng quan ly cung se it hn
(la n kha cho n ngi dung). Cac dich vu mi nh ch ky in t , tha thun kha cung
c xy d ng d a trn cac h ma nay.
Cac yu cu cua loai h ma nay:
- Vic sinh KP, KS phai d dang
- Vic tinh E(KP, M) la d dang
- N u co C = E(KP, M) va KS th vic tm ban r cung la d
- N u bi t KP th vic d tm KS la kh
- Vic khi phuc ban ro t ban ma la r t kho
Khi A mu n truy n tin cho B , A se s dung khoa K P cua B ma ha tin tc va
truy n ban ma ti cho B, B se s dung khoa bi mt cua minh giai ma va oc tin:

77

Chng IV: Cc h ma mt khoa cng khai

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

Chng IV: Cc h ma mt khoa cng khai


Cho M, N va A1, A2, ...., AN la cac s nguyn dng tm cac s xi khng m sao cho:
N

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.

Xy d ng Vecto A = (a1, a2, ..., aN) trong o ai = (ai * u) mod M

3.

Kha: KP = (A, M), KS = (u, u-1)

4.

Khng gian cac ban ro la khng gian moi day N bit


P = (x1, x2, ..., xn).
N

Ma ha: C = (

a * x )mod M
i 1

Giai ma: tinh C = C * u-1 mod M sau o giai bai toan x p ba l


tm c P = (x1, x2, ..., xn).

0/1 vi A , C t o

Vi du 1: Cho h ma Knapsack co A = (2, 3, 6, 12, 25), N = 5, M = 53, u = 46, u-1 =


15.
a) Hay tm cac kha cua h ma trn
b) Ma ha va giai ma ban ma tng ng cua ban r M = 01001.
3.2. H ma RSA
H ma RSA c t tn d a theo cac ch cai u cua
3 tac gia cua h ma la
Rivest, Shamir va Adleman. y la thut toan ma ha ni ting nht va cung la thut toan
c ng dung thc t nht.
cai t RSA ban u mi ngi dng sinh kha cng khai v kha bi mt cua
mnh bng cach:

79

Chng IV: Cc h ma mt khoa cng khai

chon hai s nguyn t ln ngu nhin (c gn 100 ch s) khac nhau p v q

tnh N = p*q

chon mt s e nh hn N va (e, (N)) = 1, e c goi la s mu lp ma

tm phn t ngc cua e trn vanh module (N), d la s mu giai ma

kha cng khai l KP = (e, N)

kha bi mt la KS = K-1P = (d, 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 mt thng ip M: C = Me (mod N) (0<= M < N)

giai ma: M = Cd (mod N)

Thut toan ma ha RSA lam vic c bi v n da trn c s toan hoc la s tng


quat inh ly Ferma nh cua clit: X(N) = 1 (mod N). Trong thut toan RSA chng ta chon
e v d l nghich ao cua nhau trn vanh Z(N) vi e c chon trc.
Do chng ta s c e.d 1 mod (N), suy ra:
M = Cd = M e.d = M1+q.(N) = M . (M(N))q = M mod N
Cng thc nay am bao vic giai ma s cho kt qua ng la ban r ban u (ch y
la iu nay ch ng khi p khac q).
Vi du 1: Cho h ma RSA c N = p*q = 11 * 47 = 517, e = 3.

Hy tm cc kha cng khai va bi mt cua h ma trn

Ma ha ban r M = 26.

u tin ta tinh c (N) = 460 = 10 * 46, do (3,460) = 1 nn ap dung thut toan


clit m rng ta tm c d = 307.
Vy kha cng khai cua h ma KP = (e, N) = (3, 517), kha bi mt la KS = (d, p, q) =
(307, 11, 47).
M ha M = 26 ta c C = Me mod N = 263 mod 517 = 515.
an toan cua RSA
an toan cua RSA phu thuc vao kh cua vic tinh (N) va iu nay i hi
chng ta cn phn tich N ra tha s nguyn t. Thut toan phn tich s nguyn t hiu
qua nht hin nay la Brent-Pollard, chng ta hay xem xet bang thng k sau thy c
tc hoat ng cua n:
S ch s trong h thp phn cua N

S cc thao tc Bit phn tich N

80

Chng IV: Cc h ma mt khoa cng khai

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

Kt hp cac h s hnh thanh nn tich cua hai s ban u

Bin i Fourier ri rac, va ly thuyt chp c th c s dung tng tc


cua qua trnh ni suy.

81

Chng IV: Cc h ma mt khoa cng khai


Mt cach khac na tng tc vic nhn cac s ln trong h ma RSA la s dung
cac phn cng chuyn dung vi cac thut toan song song.
Nh a trnh bay phn trc khi m ha chng ta thng chon e nh y
nhanh qua trnh ma ha nhng iu nay cung ng ngha la vic giai ma s chm do s
mu ln. Mt cai tin ang k trong tc giai ma RSA c th nhn c bng cach s
dung inh ly phn d Trung Hoa lam vic vi modulo p va q tng ng thay v N. V p v
q ch bng mt na cua N nn tinh toan s nhanh hn nhiu.
inh ly phn d Trung Hoa c s dung trong RSA bng cach tao ra hai phng
trnh t vic giai ma M = Cd (mod N) nh sau:
M1 = M mod p = (C mod p)d mod (p-1)
M2 = M mod q = (C mod q)d mod (q-1)
Sau ta giai h:
M = M1 mod p
M = M2 mod q
H nay c nghim duy nht theo inh ly phn d Trung Hoa
M = [(M2 + q M1)u mod q] p + M1
Trong p.u mod q = 1
Vic s dung inh ly phn d Trung Hoa la mt phng phap c s dung rng
rai va ph bin tng tc giai ma cua RSA.
Hi n tng l ban ro
Mt hin t ng c n lu y khi s dung cac h ma RSA la hin t ng l ban ro . Ta
hay xet h ma RSA c N = p*q = 5*7, e = 17, khi o vi M = 6 ta co C = 617 mod N = 6.
Tng t vi h ma RSA co N
mod N = M.

= p*q = 109*97, e = 865, vi moi M ta u co M

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

Chng IV: Cc h ma mt khoa cng khai

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

Hnh 4.3: M hinh ng dung lai ghep RSA vi cac h ma kh i


3.3. H ma El Gamal
H ma El Gamal la mt bin th cua s phn phi khoa Diffie Hellman. H ma
ny c El Gamal a ra vao nm 1985. Ging nh s phn phi kha Diffie
Hellman tinh an toan cua n da trn tinh kh giai cua bai toan logarit ri rac. Nhc
im chinh cua n la kich thc thng tin sau khi ma ha gi i s tng gp i so vi
thng tin gc.
Tuy nhin so vi RSA, El Gamal khng c nhiu rc ri v vn ban quyn s
dung.
Ban u ngi ta s chon mt s nguyn t ln p va hai s nguyn tuy y nh hn p
l a (a la mt ph n t nguyn thuy cua Z*P) va x (x la cua ngi nhn, bi mt) sau tinh:
y = ax mod p
ma ha mt thng ip M (la mt s nguyn trn ZP) thanh ban ma C ngi gi
chon mt s ngu nhin k nh hn p va tinh kha ma ha K:
K = yk mod p
Sau tinh cp ban ma:

C1 = ak mod p

C2 = K.M mod p

Va gi ban ma C = (C1, C2) i (ch y la sau k s bi huy).


giai ma thng ip u tin ta cn tinh lai kha ma ha thng ip K:
K = C1x mod p = ak.x mod p
Sau tinh M bng cach giai phng trnh sau y:
M = C2 . K-1 mod p
Vic giai ma bao gm vic tinh lai kha tam thi K (rt ging vi m hnh cua Diffie
Hellman a ra). Kha cng khai cua h ma la (p, a, y), kha bi mt la x.
Vi du: Cho h ma El Gamal c P = 97, a = 5, x = 58.
83

Chng IV: Cc h ma mt khoa cng khai

Tm kha cua h ma trn.

Ma ha ban r M = 3 vi k c chon bng 36.

Trc ht ta tinh y = 558 mod 97 = 44, t suy ra KP = (P, a, y) = (97, 5, 44) v KS


= (58).
ma ha thng ip M = 3 ta tnh kha K = 4436 mod 97 = 75 sau tinh:

C1 = 536 = 50 mod 97

C2 = 75.3 mod 97 = 31 mod 97

Vy ban ma thu c la C = (50, 31).


Vn i vi cac h ma kha cng khai ni chung va El Gamal ni ring la tc
(do phai lam vic vi cac s nguyn ln), bn canh dung lng b nh danh cho vic
lu tr cac kha cung ln. Vi h ma El Gamal chng ta cn gp i b nh cha ban
ma so vi cac h ma khac. Ngoai ra do vic s dung cac s nguyn t nn vic sinh kha
va quan ly kha cung kh khn hn vi cac h ma khi. Trn thc t cac h ma kha
cng khai thng c s dung kt hp vi cac h ma khi (ma ha kha cua h ma)
hoc ma ha cac thng tin c dung lng nh va la mt phn quan trong cua mt
phin truyn tin nao .
Thm ma i vi h ma El Gamal
th c hin tham ma h ma El Gamal chung ta c n giai bai toan Logaritm ri rac .
y chng ta s xem xet hai thut toan c th ap dung giai bai toa
n nay , vi
phc tap va kha nng ap dung khac nhau.
Thu t toan Shank
Thut toan nay con co tn khac la thut toan cn b ng thi gian
b nh (TimeMemory Trade Off), c ngha la nu chng ta c u b nh th c th s dung b nh
lam giam thi gian thc hin cua thut toan xung.
*
Input: s nguyn t p, ph n t nguyn thuy a cua Z p , s nguyn y.

Output: c n tim x sao cho ax mod p = y.


Thut toan:
Goi m = [(p-1)1/2] (l y ph n nguyn).
Bc 1: Tinh amj mod p vi 0 j m-1.
Bc 2: S p x p cac cp (j, amj mod p) theo amj mod p va lu vao danh sach L1.
Bc 3: Tinh ya-i mod p vi 0 i m-1.
Bc 4: S p x p cac cp (i, ya-i mod p) theo amj mod p va lu vao danh sach L2.
Bc 5: Tm trong hai danh sach L 1 va L2 xem co t n tai cp (j, amj mod p) va (i, ya-i
mod p) nao ma amj mod p = ya-i mod p (toa th hai cua hai cp bng nhau).
Bc 6: x = (mj + i) mod (p-1). K t qua nay c th kim chng t cng thc amj mod
p = ya-i mod p => amj + i mod p = y mod p => x = (mj + i) mod (p-1).

84

Chng IV: Cc h ma mt khoa cng khai


phc tap cua thut toan phu thuc vao m = [(p-1)1/2], vi gia tri cua m , chng ta
c n tinh cac ph n t thuc hai danh sach L 1 va L 2, u la cac phep toan luy tha phu
thuc vao j va i , i va j lai phu thuc vao m nn co th nhn th y la thut toan nay chi co
th ap dung trong nhng trng h p ma p nho.
Thu t toan Pohlig-Hellman
C nhng trng hp c bit ma bai toan Logarithm ri rac c th giai quyt vi
phc tap nho hn O(p1/2), ch ng han nh khi p 1 ch c cac c nguyn t nh . Mt
thut toan lam vic vi cac trng h p nh vy a c Pohlig va Hellman a ra vao
nm 1978.
Gia s p 1 = 2n.
*
Goi a la phn t nguyn thuy cua Z p , p la mt s le va a (p-1)/2 mod p = -1. Goi m la

s nguyn thuc khoang [0, p-2] ma chng ta cn tm y = am mod p. Gia s m c


bi u din thanh dang nhi phn m = m0 + 2m1 + 4m2 + + 2n-1mn-1. Khi o:

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

Vic tinh y (p-1)/2 m t nhi u nh t 2[log2p] bc va se cho ta m 0. Khi xac inh


c y 1
= ya 0, ta lp lai thao tac tng t tinh m1:
-m

c1

p 1
4

(a

m1 2 m2 ... 2n2 mn1

p 1
2

m1

p 1
2

1 nu m1 0

1 nu m1 1

Qua trnh tinh toan c th tip din cho ti khi chng ta tm c m


cua thut toan la: n(2[log2p] + 2) ~ O((log2p)2).
3.4. Cc h ma mt da trn cc ng cong Elliptic

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

Chng IV: Cc h ma mt khoa cng khai


3.4.1. Nhom Abel
Nhm Abel G , thng c ky hiu la {G, } la mt tp hp vi mt phep toan hai
ngi ky hiu la , k t qua th c hin cua phep toan vi hai phn t a , b G, ky hiu la (a
b) cung la mt phn t thuc G, tinh cht nay goi la ng i vi tp G . i vi phep toan
cac mnh sau u thoa man:
(A1): a, b G thi (a b) G, tinh ng (Closure)
(A2): a, b, c G thi a (b c) = (a b) c, tinh kt hp (Associate)
(A3): T n tai e G: e a = a e = a a G, e c goi la ph n t n vi cua tp
G.
(A4): a G, lun a G: a a = a a = e, a la phn t nghich ao cua a.
(A5): a, b G: a b = b a, tinh giao hoan (Commutative).
R t nhi u cac h ma khoa cng khai d a trn cac nhom Abel. Ch ng han, giao thc
trao i khoa Diffie -Hellman lin quan ti vic nhn cac c p s nguyn khac khng theo
modulo q (nguyn t ). Cac kha c sinh ra bi phep tinh luy tha trn nhm.
i vi cac h ma ECC, phep toan cng trn cac ng cong Elliptic c s dung
la phep toan c ban . Phep nhn c inh ngha la s lp lai cua nhiu phep cng : a x k
= (a + a + + a). Vic tham ma lin quan ti vic xac inh
gia tri cua k vi cac thng tin
cng khai la a va (a x k).
Mt ng cong Elliptic la mt phng trinh vi hai bi n va cac h s . Cac ng
cong s dung cho cac h ma mt co cac bi n va cac h th ng la cac ph n t thuc v
mt trng hu han , i u nay tao thanh mt nhom Abel . Trc h t chung ta se xem xet
cac ng cong Elliptic trn trng s th c.
3.4.2. Cc ng cong Elliptic trn trng s thc
Cac ng cong Elliptic khng phai la cac ng Ellipse
. Tn goi ng cong
Elliptic c t vi loai ng cong nay c m ta bi cac phng trin
h bc ba, tng
t nh cac phng trinh c dung tinh chu vi cua mt Ellipse . dang chung nht
phng trinh bc 3 bi u din mt ng cong Elliptic co dang:
y2 + axy + by = x3 + cx2 + dx + e.
Trong o a , b, c, d, e la cac s th c , x va y la cac bin thuc trng s thc . Vi
muc ich hiu v cac h ma ECC chng ta ch xet cac dang ng cong Elliptic c
dang:
y2 = x3 + ax + y (phng trin
h 1)
Cac phng trnh nay c goi la cac phng trnh bc ba, trn cac ng cong
Elliptic chung ta inh
nghia mt i m c bit goi la i m O hay i m tai v cung (point at
infinity). ve ng cong Elliptic chung ta c n tinh cac gia tri theo phng trinh:

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

Chng IV: Cc h ma mt khoa cng khai

Hnh 4.4: Cac ng cong Elliptic trn trng s thc


Chng ta xem xet tp im E (a, b) cha t t ca cac im (x, y) tha man phng
trnh 1, cng vi im O. S dung cac cp (a, b) khac nhau chung ta co cac tp E (a, b)
khac nhau. S dung ky hiu nay ta co hinh ve minh hoa trn la bi u din cua hai tp h p
E(1, 0) va E(1, 1) tng ng.
3.4.3. M ta hinh hoc cua phep cng trn cac ng cong Elliptic
Vi mi cp (a, b) cu th chng ta c th thanh lp mt nhm trn tp E (a, b) vi
cac iu kin sau:

4a3 27b2 0 (i u kin 1).

87

Chng IV: Cc h ma mt khoa cng khai


Vi i u kin b sung nay ta inh
nghia phep cng trn ng cong Elliptic , m ta
v mt hi nh hoc nh sau: n u ba i m trn mt ng cong Elliptic tao thanh mt ng
th ng thi t ng cua chung b ng O. Vi inh
nghia nay cac lut cua phep cng trn ng
cong Elliptic nh sau:
1.
O la phn t trung ha cua phep cng . P E(a, b): P + O= P. Trong cac
mnh sau chung ta gia s P, Q O.
2.
P = (x, y) th phn t i cua P, ky hiu la P, s la (x, -y) va P + (P) = P P =
O. P va P n m trn mt ng th ng ng
3.
cng hai i m P va Q khng co cng hoang x , v mt ng thng
n i chung va tim giao i m R . D dang nhn th y chi co mt i m R nh vy , t ng cua P
va Q la im i xng vi R qua ng thng y = 0.
4.
Giao i m cua ng th ng n i P vi i cua P, tc P, c xem nh c t
ng cong tai i m v c c va o chin
h la O.
5.
nhn i mt i m Q, ta ve mt ti p tuy n tai Q vi ng cong va tim
giao i m S: Q + Q = 2Q = S.
Vi 5 i u kin nay E(a, b) la mt nhm Abel.
3.4.4. M ta ai s v phep cng
Trong ph n nay chung ta se trin
h bay mt s k t qua cho phep tin
h toan trn cac
ng cong Elliptic. Vi hai i m phn bit P = (xP, yP) va Q = (xQ, yQ) khng phai la i
cua nhau , d c cua ng n i l gia chung la = (yQ, yP). C chinh xac mt im
khac ma l giao vi ng cong , va chinh la i cua tng gia P va Q . Sau mt s
phep toan ai s chng ta c th tinh ra R = P + Q nh sau:

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

3.4.5. Cc ng cong Elliptic trn ZP


Cac h ma ECC s dung cac ng cong Elliptic vi cac bin va cac h s gii han
thuc v mt trng hu han . C hai ho cac ng cong Elliptic c th s dung vi cac
h ma ECC: cac ng cong nguyn t trn Z P va cac ng cong nhi phn trn GF(2m).
Mt ng cong nguyn t trn Z P, chng ta s dung phng trnh bc ba ma cac bin
va cac h s cua n u la cac gia tri nguyn nm t
0 ti p-1 va cac phep tinh c
th c hin theo modulo P . Trn ng cong nhi phn , cac bin va cac h s la cac gia tri
trn GF(2n). va cac tinh toan c thc hin trn GF (2n). Cac nghin cu v ly thuyt a
cho th y cac ng cong nguyn t la phu h p nh t cho cac ng dung ph n m m vi
nhng phc tap trong tinh toan i vi cac ng cong nhi phn, nhng i vi cac ng
dung phn cng th vic s dung cac ng cong nhi phn lai tt hn v c ch lam vic
cua cac mach, cac con chip rt ph hp vi cac tinh toan trn trng nhi phn.

88

Chng IV: Cc h ma mt khoa cng khai


Vi cac ng cong Elliptic trn ZP chng ta inh ngha lai phng trnh biu din
nh sau:
y2 mod p = (x3 + ax + y) mod p. (phng trin
h 2)
Ch ng han cac gia tri a = 1, b = 1, x = 9, y = 9, y = 7, p = 23 tha man phng trnh
trn.
Cac gia tri h s a, b va cac bi n s x , y u thuc Z P. Tp E P(a, b) g m t t ca cac
cp (x, y) tha man phng trnh phng trnh 2.
Vi du vi p = 23, a = b = 1, ta co tp E23(1, 1):

(0, 1)

(6, 4)

(12, 19)

(0, 22) (6, 19)

(13, 7)

(1, 7)

(13, 16)

(7, 11)

(1, 16) (7, 12)

(17, 3)

(3, 10) (9, 7)

(17, 20)

(3, 13) (9, 16)

(18, 3)

(4, 0)

(11, 3)

(18, 20)

(5, 4)

(11, 20) (19, 5)

(5, 19) (12, 4)

(19, 18)

Bang 4.2: Bi u din cua tp E23(1, 1)


89

Chng IV: Cc h ma mt khoa cng khai


Cac qui tc v phep cng cung c inh ngha tng t i vi cac ng cong
Elliptic nguyn t :
i u kin: (4a3 + 27b2) mod p 0.
1.
P+O=P
2.
N u P = (xP, yP) th P +(xP, yP) = O, i m (xP, yP) c goi la i cua P , ky
hiu la P. Ch ng han trn E23(1, 1), P = (13, 7) ta co P = (13, 7) nhng 7 mod 23 = 16 nn
P = (13, 16), cung thuc E23(1, 1).
3.
Vi hai i m phn bit P = (xP, yP) va Q = (xQ, yQ), R = P + Q = (xR, yR)
c inh
nghia nh sau:

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:

p 1 2 p N p 1 2 p , con s nay x p xi b ng s ph n t cua ZP (b ng p).


3.4.6. Cc ng cong Elliptic da trn cc trng hu han GF(2m)
S ph n t cua trng hu han GF (2m) la 2m, cac phep toan c trang bi trn
GF(2m) la phep toan cng va phep toan nhn c thc hin vi cac a thc . i vi cac
ng cong Elliptic d a trn GF (2m), chng ta s dung mt phng trnh bc ba vi cac
bi n va cac tham s co gia tri thuc GF (2m), cac phep tinh c thc hin tun theo cac
phep toan trn GF(2m).
1.

Phng trin
h bi u din

90

Chng IV: Cc h ma mt khoa cng khai


So vi cac h ma mt d a trn cac ng cong trn Z P, dang biu din cua cac h
ma da trn GF(2m) tng i khac:
y2 + xy = x3 + ax2 + b (phng trinh 3)
Trong o cac bi n x, y va cac h s a, b la cac ph n t cua GF(2m) va cac phep tinh
toan c thc hin tun theo cac qui tc trn GF(2m).
Chng ta ky hiu E 2m(a, b) la tt ca cac cp s nguyn (x, y) tha man phng trnh
phng trinh 3 va im v cng O.
Vi du: chng ta c th s dung GF(24) vi a thc b t kha qui f(x) = x4 + x + 1. Ph n
t sinh cua GF(24) la g tha man f(g) = 0, g4 = g + 1, hay dang nhi phn la 0010. Chng
ta co bang luy tha cua g nh sau:

g0 = 0001 g4 = 0011 g8 = 0101

g12 = 1111

g1 = 0010 g5 = 0110 g9 = 1010

g13 = 1101

g2 = 0100 g6 = 1100 g10 = 0111 g14 = 1001


g3 = 1000 g7 = 1011 g11 = 1110 g15 = 0001
Ch ng han g5 = g4 g = (g+1)g = g2 + g = 0110.
Xet ng cong Elliptic y 2 + xy = x3 + g4x2 + 1, trong trng h p nay a = g4 va b =
g0 = 1. Mt i m n m trn ng cong la (g5, g3):
(g3)2 + (g5)(g3) = (g5)3 + (g4)(g5)2 + 1
g6 + g8 = g15 + g14 + 1
1100 + 0101 = 0001 + 1001 + 0001
1001 = 1001
Bang sau la cac im trn E24(g4, 1):

(0, 1)

(g5, g3)

(g9, g13)

(1, g6)

(g5, g11) (g10, g)

(1, g13)

g6, g8)

(g3, g8)

(g6, g14) (g12,0)

(g10, g8)

(g3, g13) (g9, g10) (g12, g12)


Hnh biu din tng ng:

91

Chng IV: Cc h ma mt khoa cng khai

Hnh 4.5: Hnh biu din E24(g4, 1)


Mt nhom Abel co th inh
nghia d a trn E 2m(a, b) vi i u kin b0. Cac lut thc
hin vi phep cng, a, b E2m(a, b):
1.
P+O=P
2.
N u P = (xP, yP) th P + (xP, xP + yP) = O. i m (xP, xP + yP) la im i cua
P, ky hiu la P.
3.
N u P = (xP, yP) va Q = (xQ, yQ) va PQ, PQ th R = P + Q = (xR, yR) c
xac inh bng cac cng thc sau:

xR 2 xP xQ a
yR ( xP xR ) xR yP a
Trong o:

yQ yP
xQ xP

4.

N u P = (xP, yP) th R = 2P = (xR, yR) c xac inh


b ng cac cng thc

sau:

xR 2 a
yR xP2 ( 1) xR
Trong o:

xP

yP
xP

92

Chng IV: Cc h ma mt khoa cng khai


3.4.7. H ma m t da trn cac ng cong Elliptic
Phep toan cng trn ng cong Elliptic tng ng vi phep nhn theo modulo
trong h ma RSA , cn phep toan nhn (cng nhi u l n ) trn ng cong Ellipti c tng
ng vi phep luy tha theo modulo trong h ma RSA . Tng t nh bai toan c s cua
h ma RSA la bai toan phn tic
h ra dang tha s nguyn t cua mt s nguyn ln , cac
h ma d a trn cac ng cong Elliptic cung co cac bai toan c s la mt bai toan kh
giai, goi la bai toan Logarithm trn ng cong Elliptic:
Xet phng trnh Q = kP trong o P, Q EP(a, b) va k < p. Vic tin
h Q n u bi t P va
k la mt bai toan d (th c hin theo cac cng thc). Nhng vic xac inh
k vi gia tri P, Q
cho trc lai la bai toan kho.
Chng ta xem xet vi du (Certicom Website www.certicom.com): E23(9, 17) c xac
inh
bi phng trinh y2 mod 23 = (x3 + 9x + 17) mod 23.
Vi Q = (4, 5) va P = (16, 5) th k tha man Q = kP se b ng bao nhiu ? Phng
phap n gian nht la nhn P ln nhiu ln cho ti khi bng Q:
P = (16, 5), 2P = (20, 20), 3P = P = (16, 5); 2P = (20, 20); 3P = (14, 14); 4P = (19,
20); 5P = (13, 10); 6P = (7, 3); 7P = (8, 7); 8P (12, 17); 9P = (4, 5).
Nh vy k = 9. Trn th c t cac h ma se am bao gia tri k la u ln phng
phap vet can nh trn la khng th thc hin c.
3.4.8. Phng phap trao i khoa Diffie-Hellman da trn cac ng cong Elliptic
Ban u ngi ta chon mt s nguyn ln q , c th la mt s nguyn t p hay c
dang 2m tng ng vi cac phng trin
h bi u din va cac tham s a , b. Vic l a chon
nay cho chng ta tp hp E q(a, b). Ti p theo chon mt i m G = (x1, y1) EP(a, b) c bc
n r t ln, bc n cua i m G la s nguyn nho nh t thoa man nG = O. Eq(a, b) va G la cac
tham s cng khai cho h ma mt d a trn ng cong Elliptic tng ng vi cac tham
s p, a, b.
Phng phap trao i khoa gia hai ngi dung A va B co th th c hin nh sau:
1.
A chon mt s nguyn n A nh hn n. o chin
h la khoa ring cua A . Sau o
sinh khoa cng khai PA = nA x G, kha nay la mt im trn Eq(a, b).
2.
Tng t B cung chon mt khoa ring nB va tinh kha cng khai PB.
3.
A sinh mt khoa bi mt K = nA x PB. B sinh khoa bi mt K = nB x PA.
D dang ki m chng cac khoa bi mt cua A va B tinh c u bng nhau : nA x PB
= nA x (nB x G) = nB x (nA x G) = nB x PA.
Hnh minh hoa cac bc:

93

Chng IV: Cc h ma mt khoa cng khai

Hnh 4.6: Phng phap trao i khoa Diffie-Hellman d a trn ECC


t n cng phng phap trao i khoa trn , ke tn cng cn phai tinh c gia tri
k vi cac gia tri cng khai la G va kG, va y chinh la bai toan Logarithm trn ng cong
Elliptic, mt bai toan kho.
2
3
Vi du: p = 211, E211(0, 4) tng ng vi phng trin
h bi u din y = x + 4, ta chon
G = (2, 2). Do 240G = O nn n = 240. A chon khoa ring la n A = 121, kha cng khai
tng ng cua A se la P A = 121(2, 2) = (115, 48). Kha ring cua B la n B = 203 nn khoa
cng khai cua B la P B = 203(2, 2) = ( 130, 203). Kha bi mt (chia se ) gia A va B la
121(130, 203) = 203(115, 48) = (161, 69).

3.4.9. Thu t toan ma hoa va giai ma


C nhiu cach ma ha /giai ma a c nghin cu vi cac h ma trn cac ng
cong Elliptic, y chng ta s xem xet cach n gian nh t . Thut toan ma hoa ban u
s thc hin phep bin i tin x ly t input la mt ban r m thanh dang mt im P m.
i m Pm s c ma ha thanh ban ma va sau giai ma . Th c ch t vic ti n x ly nay
khng n gian vi khng phai t t ca cac toa co dang
(x, y) u thuc E P(a, b). C
94

Chng IV: Cc h ma mt khoa cng khai


nhi u cach khac nhau cho vic ti n x ly nay , chng ta khng ban ky ti chng y
nhng th c t la co mt vai cach d hi u th c hin vic o.
Gi ng nh i vi h trao i khoa , chng ta cn mt im G va mt nhm Elliptic
Eq(a, b) lam tham s . Mi ngi dung A l a chon mt khoa ring n A va sinh mt kha
cng khai PA = nA x G.
ma ho a mt thng ip P m gi ti cho B , A se chon mt s nguyn dng
ngu nhin k va sinh ban ma Cm g m mt cp i m:
Cm = {kG, Pm + kPB}.
Ch y la y A s dung kha cng khai cua B . giai ma ban ma , B se nhn
i m th nh t vi khoa bi mt cua B va l y k t qua nhn c tr i i m th hai:
Pm + kPB nB(kG) = Pm + k(nBG) nB(kG) = Pm.
A a che i gia tri cua P m b ng cach cng kP B vao P m. Ch c duy nht A bit gia tri
k, nn thm chi bi t kh a cng khai P B, khng ai co th loai bo mt na kP B tm ra P m.
Tuy nhin gia tri cua C m cung gm mt u mi B (ngi duy nh t gi khoa ring n B)
c th da vao u mi ma tm ra Pm.
2
3
Vi du: p = 751, EP(1, 188) tng ng vi phng trin
h y = x + x + 188, G = (0,
376). Gia s A mun gi mt thng ip tng ng vi Pm = (562, 201) va A la chon k =
386, kha cng khai cua B la P B = (201, 5). Chng ta c 386(0, 376) = (676, 558) va (562,
201) + 386(201, 5) = (385, 328). Ban ma s la Cm = {(676, 558), (385, 328)}.

3.4.10. an toan cua cc h ma mt da trn cc ng cong Elliptic


an toan cua cac h ma ECC phu thuc vao vic xac inh c gia tri cua k da
trn cac gia tri kP va P. Bai toan nay c goi la bai toan Logarithm trn cac ng cong
Elliptic. Thut toan nhanh nh t giai bai toan nay la thut toan cua Pollard . Bang sau
cho chung ta s so sanh tng quan gia cac h ma:
Symmetric Scheme ECC-Based Scheme RSA/DSA (modulus
(key size in bits)
(size of n in bits)
size in bits)
56

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

Chng IV: Cc h ma mt khoa cng khai


C th thy la so vi RSA , cac h ma ECC c u th hn v dai kha s dung ,
c bit la khi chung ta s dung cac khoa co dai nho thi ECC con co u th v t c
(s phep tinh) x ly trong ma hoa va giai ma.
4. Bai tp
Bai tp 4.1: Cho N = 1517. Hy tnh 131435 mod N.
Bai tp 4.2: Trong h ma RSA c N = p * q = 103 * (219 1) th c th s dung ti a la
bao nhiu gia tri cua e lam kha ma ha, giai thich.
Bai tp 4.3: Trong h ma RSA c N = p*q = 103 * 113 s c bao nhiu trng hp l ban
r.
Bai tp 4.4: Trong h ch ky in t ElGamma c p = 231 1 khi ky ln mt vn ban c
th s dung ti a bao nhiu gia tri k, giai thich.
Bai tp 4.5: Cho h ma ElGamma c p = 31, a = 11 va x = 6. ma ha M = 18 ngi ta
chon k = 7. Hay thc hin tinh toan va a ra ban ma kt qua.
Bai tp 4.6: Cho h RSA c n = 1363, bit phi(n) = 1288 hay ma ha ban r M = 2007.
Bai tp 4.7: Tng t Cu 1 vi n = 215629 v phi(n) = 214684 hay giai ma ban ma M =
2007.
Bai t p 4.8: Gia s c 4 t chc s dung 4 h ma RSA truyn thng vi nhau. Goi N 1,
N2, N3, N4 ln lt la cac tham s tng ng ma ho s dung va (Ni, Nj) = 1 i j v i, j
Z5/{0}. Ca bn h RSA nay u c s mu lp ma la e = 3. Mt thng ip m sau khi ma
ha bng 4 h ma trn nhn c 4 ban ma tng ng la C1, C2, C3, C4. Hy tm m.
Bai tp 4.9: Cho h ma Knapsack c A = {11, 15, 30, 60}, M = 150 va u = 77.
a) Hy tm kha cng khai KP, v kha bi mt KS cua h ma trn.
b) ma ha cac thng ip vit bng ting Anh ngi ta dng mt ham chuyn
i t cac ky t thanh cac xu nhi phn nh sau:
Ky t Xu bt Ky t Xu bt Ky t Xu bt Ky t Xu bt
A
00000 H
00111 O
01110 V
10101
B
00001 I
01000 P
01111 W
10110
C
00010 J
01001 Q
10000 X
10111
D
00011 K
01010 R
10001 Y
11000
E
00100 L
01011 S
10010 Z
11001
F
00101 M
01100 T
10011
G
00110 N
01101 U
10100
Khi vi du xu ABCD s c chuyn thanh 00000 00001 00010 00011 va ct
thanh cac xu c dai 4 thc hin ma ha. Kt qua thu c ban ma la mt day cac
s ZM. Hay thc hin ma ha xu P = ANTI.
c) Gia s ban ma thu c la C = <120, 105, 105, 0, 60, 75, 30, 22, 22, 30>. Hy
thc hin giai ma ban ma trn thu c thng ip ban u.
Bai tp 4.10: Cho h ma Knapsack c A = {7, 13, 31, 53}, M = 173 va u = 97.
a) Hy tm kha cng khai KP, va kha bi mt KS cua h ma trn.

96

Chng IV: Cc h ma mt khoa cng khai


b) ma ha cac thng ip vit bng ting Anh ngi ta dng mt ham chuyn
i t cac ky t thanh cac xu nhi phn nh sau:
Ky t
A
B
C
D
E
F
G

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

Khi vi du xu ABCD s c chuyn thanh 00000 00001 00010 00011 va ct


thanh cac xu c dai 4 thc hin ma ha. Kt qua thu c ban ma la mt day cac
s ZM. Hay thc hin ma ha xu P = AUNT.
c) Gia s ban ma thu c la C = < 67,160, 66, 66, 0, 116, 4, 111, 0, 17>. Hy
thc hin giai ma ban ma trn thu c thng ip ban u.
Bai tp 4.11: Cho h ma Knapsack c A = {2, 3, 7, 13, 29, 57}, M = 151 va u = 71.
a) Hy tm kha cng khai KP, va kha bi mt KS cua h ma trn.
b) ma ha cac thng ip vit bng ting Anh ngi ta dng mt ham chuyn
i t cac ky t thanh cac xu nhi phn nh sau:
Ky t
A
B
C
D
E
F
G

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

Khi vi du xu ABCDEF s c chuyn thanh 00000 00001 00010 00011


00100 00101 va ct thanh cac xu c dai 6 thc hin ma ha. Kt qua thu c
ban ma la mt day cac s ZM. Hay thc hin ma ha xu P = ANSWER.
c) Gia s ban ma thu c la C = <44, 40, 121, 104, 0>. Hay thc hin giai ma
ban ma trn thu c thng ip ban u.
Bai tp 4.12: Cho h ma 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) ma ha cac thng ip c vit bng ting Anh ngi ta dng mt ham
chuyn i cac ky t thanh cac s thp phn c hai ch s nh sau:
Ky t
M ha
Ky t
M ha

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

Chng IV: Cc h ma mt khoa cng khai


Khi vi du xu ABC s c chuyn thanh 00 01 02 va sau ct thanh cac s
c 3 ch s 000 (bng 0) va 102 ma ha. Ban ma thu c la mt tp cac s ZN.
Hay thc hin ma ha xu P = SERIUS.
c) Gia s ban ma thu c la C = <201, 793, 442, 18> hay thc hin giai ma
tm ra thng ip ban r ban u.
Bai tp 4.13: Cho h ma RSA c p = 29, q = 43, e = 11.
a) Hy tm kha cng khai KP, va kha bi mt KS cua h ma trn.
b) ma ha cac thng ip c vit bng ting Anh ngi ta dng mt ham
chuyn i cac ky t thanh cac s thp phn c hai ch s nh sau:
Ky t
M ha
Ky t
M ha

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

Khi vi du xu ABC s c chuyn thanh 00 01 02 va sau ct thanh cac s


c 3 ch s 000 (bng 0) va 102 ma ha. Ban ma thu c la mt tp cac s ZN.
Hay thc hin ma ha xu P = TAURUS.
c) Gia s ban ma thu c la C = <1, 169, 1206, 433> hay thc hin giai ma
tm ra thng ip ban r ban u.
Bai tp 4.14: Cho h ma RSA c n = 1363, e = 57.
a) Hy tm kha cng khai KP, va kha bi mt KS cua h ma trn.
b) Gia s ban r P = 102 hay ma ha va a ra ban ma C.
c) Gia s h ma trn c dng lam h ch ky in t, hay tinh ch ky vi thng
ip M = 201.
Bai tp 4.15: Cho h ma ElGamma c p = 83, a = 5 la mt phn t nguyn thuy cua Z P*,
x = 37.
a) Hy tm kha cng khai KP, va kha bi mt KS cua h ma trn.
b) ma ha ban r P = 72 ngi ta chon k = 23, hay ma ha va a ra ban ma.
c) Hay tm tt ca cac phn t nguyn thuy cua ZP*.
Bai tp 4.16: Cho h ma mt ElGamma c p = 1187, a = 79 la mt phn t nguyn thuy
cua ZP*, x = 113.
a) Hy tm kha cng khai KP, va kha bi mt KS cua h ma trn.
b) ma ha cac thng ip c vit bng ting Anh ngi ta dng mt ham
chuyn i cac ky t thanh cac s thp phn c hai ch s nh sau:
Ky t
M ha
Ky t
M ha

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

Chng IV: Cc h ma mt khoa cng khai


Khi vi du xu ABC s c chuyn thanh 00 01 02 va sau ct thanh cac s
c 3 ch s 000 (bng 0) va 102 ma ha. Ban ma thu c la mt tp cac cp s (C1,
C2) ZP. Hay thc hin ma ha xu m = TAURUS vi cac gia tri 13 < k < 19.
c) Gia s thu c ban ma la mt tp cac cp (C1, C2) la <(358, 305), (1079,
283), (608, 925),(786, 391)>. Hay giai ma va a ra thng ip ban u.
Bai tp 4.17: Cho ban ma nhn c b ng cach s dung mt h ma RSA nh sau:
11437

6198 16611

2405 18636 2679 12205 24142

6375

16611

2405

7260

762

5206 16683

9529

5359 10888

374

15470

1339 10420 18051 23125 7747


1379

4667 24027

4168 3536 23229 20351 15580

7977

13199 15176

6525

7834 15094

4287 14402

527 12887 21628 11884


135 22007 20049

2134
5878
6704
9402
9984

8313 19574 7989 22869

406 10057 21758

3918 23991 14237

7989

5601

3527

7601 13282 21160

6291 15994 7785

3045

6596 16796

3947 19529 15728


8982

4663

2405 20302 11929 17125 14533 21001

11040

8687

6704

3330

7200

8351 11571 22082

5630 19650 13024

Kha cng khai c n = 24637 va e = 3.


a) Hay xac inh p, q va d.
b) Giai ma ban ma nhn c ban r (la cac s trn Z24637).
c) Chuy n ban ro nhn c thanh dang vn ban ti ng Anh
, bi t r ng mi s
nguyn trn Z24637 bi u din mt b 3 ch cai theo qui t c sau:
DOG

3 262 + 14 26 + 6 = 2398

CAT

2 262 + 0 26 + 19 = 1371

ZZZ

25 262 + 25 26 + 25 = 17575

Bai tp 3.18: Cho h ma ElGamal co p = 71 va a = 7.


a) Gia s kha cng khai cua B la Y B = 3 va A chon s ngu nhin k = 2, hay xac
inh
ban ma tng ng vi ban ma M = 30.
b) Gia s A chon mt gia tri ngu nhin k khac va ban ma tng ng vi M = 30
by gi la C = (59, C2). Hay xac inh C 2?
Bai tp 3.19: Cho h ma d a trn ng cong Elliptic co cac tham s la E
(2, 7). Kha bi mt cua B la nB = 7.

11(1,

6) va G =

a) Hay xac inh kha cng khai cua B?


b) Gia s cn ma ha ban r P m = (10, 9) va s ngu nhin k = 3. Hay xac inh
ban ma Cm.
c) Minh hoa qua trinh giai ma vi Cm nhn c ph n b.
S dung mt trong cac ngn ng lp trinh C, C++, Java hoc C# lam cac bai tp sau:

99

Chng IV: Cc h ma mt khoa cng khai


Bai tp 3.20: Vi t ch ng trinh cai t thut toan ma hoa va giai ma cua h ma
Knapsack.
Bai tp 3.21: Vi t chng trinh cai t thut toan ma hoa va giai ma cua h ma RSA.
Bai tp 3.22: Vi t chng trin
h cai t thut toan ma hoa va giai
Gammal.

ma cua h ma El

Bai tp 3.23: Vi t chng trin


h ma hoa va giai ma File vi thut toan ma hoa va giai ma
RSA.
Bai tp 3.24: Vi t chng trin
h truy n file qua h th ng mang s dung thut toan ma hoa
RSA.
Bai tp 3.25: Vi t chng trin
h chia se file trn mang cuc b s dung h ma RSA.
Bai tp 3.26: Vi t chng trinh phn ph i khoa d a trn h ma RSA.

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:

La mt inh danh in t c tao ra bi may tinh c cac t chc s dung


nhm at c tinh hiu qua va c hiu lc nh la cac ch ky tay.

La mt c ch xac thc ha cho phep ngi tao ra thng ip inh km mt ma


s vao thng ip ging nh la vic ky mt ch ky ln mt vn ban bnh
thng.
101

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.

Ch rng ai c th gia mao ch ky cua B trn mt bc in ngu


nhin x bng cach tinh x = eK(y) vi y nao ; khi y = sigK(x). Mt bin phap
xung quanh vn kh khn nay la yu cu cac bc in cha u phn d
ch ky gia mao kiu nay khng ph hp vi toan b ni dung cua bc in x tr
mt xac sut rt nh. C th dng cac ham Bm (hash function) nh MD4, MD5
trong vic tinh kt ni cac s ch ky in t s loai tr phng phap gia mao
ny (s trnh bay trong cac phn sau cua tai liu).
1.2. H ch ky RSA
Da vao u im cua h ma RSA, nu thit lp c s ch ky da trn bai
toan phn tich ra tha s nguyn t th an toan cua ch ky s rt cao. Vic thit lp s
xac thc ch ky RSA rt n gian, ta ch cn ao ngc ham ma hoa va giai ma. Sau
y la s ch ky RSA.
Cho n = p*q, trong o p, q l cc s nguyn t. t P = A = Zn v nh ngha:
K = {(n, p, q, a, b): n=p*q, p v q l cc s nguyn t, ab 1 (mod (n))}.
Cc gi tr n v b l cng khai; cn p, q, a l bi mt.
Vi K = (n, p, q, a, b), ta xc nh:

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

= (x - a*)k-1 mod (p 1).


Vi x, Zp* v Zp-1, nh ngha:
ver(x, , ) = TRUE x (mod p). [5]

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

Cui cng, ta c: x k (mod p). V UCLN(, p) = 1 nn ta c:


= ()-1 mod p
Nh vy, gia tri k s c xac inh nh sau:

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)

Chn mt s nguyn t q vi 2159 < q < 2160.

2) Chn t sao cho 0 t 8 v chn mt s nguyn t p, trong o 2511+64t < p <


2512+64t v q phi chia ht (p-1) (hay q la mt c nguyn t ca p-1).
3)

By gi, to ra mt s duy nht cho q trong trng Zp*.

Chn mt gi tr g Zp* v tinh = g(p-1)/q mod p.

Nu = 1 th quay li bc trn. (chn li gi tr g cho ph hp)

4)

Chn mt s nguyn ngu nhin a 1 a q-1.

5)

Tinh y = a mod p.

6)

Nh vy , kho ky l (p, q, , y) c cng khai v a l kho bi mt.

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)

Nu UCLN(x + , p - 1) = 1 th s tn tai -1 mod (p - 1), do (6.1) s bin i


thnh:
1

x (mod p).

(1.4.2.2)

y chinh la s i mi cua DSS. Chng ta cho q la mt s nguyn t 160-bit sao


cho q | (p-1), va la mt s th q cua 1 mod p, th va cung la s th q cua 1 mod p.
Do , va c th c ti gian trong modulo p ma khng anh hng g n vic xac
minh ch ky. S thut toan nh sau:
Cho p l mt s nguyn t 512-bit trong trng logarit ri rc Zp; q l mt s nguyn
t 160-bit v q chia ht (p-1). Cho Zp*; P = Zp*, A = Zq*Zq, v nh ngha:
K = {(p, q, , a, ) : a (mod p)}
trong o gi tr p, q, v l cng khai, cn a l bi mt.
Vi K = (p, , a, ) v chn mt s ngu nhin k (1 k q-1), nh ngha:
sigK(x, k) = (, )
trong o: = (k mod p) mod q

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

Hnh 5.1: M hin


h ng dung cua ch ky in t

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

. Do , xac sut xay ra ung it

. Gia s goi xac sut trn la ta co:

(*)

2
Suy ra : k k 2n log

1
1
, suy ra: k 2n log
(**)
1
1

Theo cng thc (**) nay khi gia tri e rt gn vi 1 th log


t l vi

1
vn kha nho nn k la
1

n . Vi = 0.5 ta co k1.1774 n (***).

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

Hnh 5.3: S vng lp chinh cua MD5

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

Sau tt ca nhng bc nay a, b, c va d ln lt c cng vi A, B, C va D cho


kt qua u ra; va thut toan tip tuc vi khi d liu 512-bit tip theo cho n ht bc
in. u ra cui cng la mt khi 128-bit cua A, B, C va D, y chinh la ham Bm nhn
c.
b. Tinh bo mt trong MD5:
Ron Rivest a phac hoa nhng cai tin cua MD5 so vi MD4 nh sau:

Vng th 4 c thm vao (cn MD4 ch c 3 vng).

Mi bc c cng thm mt hng s duy nht.

Ham G vng 2 thay i t ((X Y) (X Z) (Y Z)) thnh ((X Z) (Y


(Z))) nhm giam tinh i xng cua G (giam tinh tuyn tnh).

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.

S lng lng bit dich trai cua mi vng c ti u va cac bc dich mi


vng l khc nhau.
Nm 1993, den Boer va Bosselaers a tm ra ung trong vic s dung ham nen
(vng 2 va 3) cua MD5. iu nay pha v quy lut thit k MD5 la chng lai s ung ,
nhng MD5 vn la ham Bm c s dung rng rai hin nay.
2.4.2. SHA (Secure Hash Algorithm)
Nm 1995, t chc NIST cng NSA a thit k ra thut toan ham Bm an toan
(SHA) s dung cho chun ch ky in t DSS. SHA c thit k da trn nhng
nguyn tc cua MD4/MD5, tao ra 160-bit gia tri Bm.
a. Miu t SHA:

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

Hnh 5.5: S mt vng lp cua SHA


Nu goi W t la biu din cua khi con th t cua bc in c m rng, va <<<s la
biu din dich trai s bit, th vng lp chinh cua SHA nh sau:
a = A, b = B, c = C, D = D, e = E,
for t = 0 to 79
{
TEMP = (a <<< 5) + ft(b, c, d) + e +Wt + Kt,
e = d,
d = c,
c = b <<< 30,
b = a,
a = TEMP,
}
A = A + a, B = B + b, C = C + c, D = D + d, E = E + e,
Thut toan tip tuc vi khi 512-bit tip theo cho ti khi ht bc in, va kt qua sau
cng trong 4 thanh ghi A, B, C, D va E chinh la ham Bm SHA 160-bit.
b. Tinh bo mt trong SHA:
hiu r hn v tinh bao mt cua SHA, ta hay so sanh SHA vi MD5 c th
tm ra nhng im khac nhau cua hai ham Bm nay:

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

MD5 s dung mi hng s duy nht cho mi bc bin i, SHA s dung mi


hng s cho mi vng bin i, hng s dich nay la mt s nguyn t i vi
ln cua word (ging vi MD4).

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

Trong MD5 vi mi bc c cng kt qua cua bc trc . S khac bit


i vi SHA la ct th 5 c cng (khng phai b, c hay d nh trong MD5), iu
nay lam cho phng phap tn cng cua Boer-Bosselaers i vi SHA bi tht bai
(den Boer va Bosselaers la hai ngi a pha thanh cng 2 vng cui trong
MD4).

Cho n nay, cha c mt cng b nao c a ra trong vic tn cng SHA, bi


v dai cua ham Bm SHA la 160-bit, n c th chng lai phng phap tn cng bng
vet can (k ca birthday attack) tt hn so vi ham Bm MD5 128-bit.
2.5. Mt s ng dung cua ham Bm
Nh a trinh bay ph n u chng , ng dung chinh cua cac ham bm la s
dung vi cac h ch ky in t , trong o thay vi ky tr c ti p ln cac vn ban , thng ip
(ma trong a s trng hp la rt ln, t c chm) ngi ta se ky ln gia tri bm ai din
cho toan b vn ban o . i u nay c bit quan trong va hiu qua bi vi chung ta bi t
r ng cac h ch ky in t u lam vic vi cac phep tinh s hoc s ln nn ban thn
chng a tng i chm, vic s dung gia tri bm thay cho toan b vn ban la giai phap
toan din khc phuc c yu im nay cua cac h ch ky in t . Ngoai vic x dung
vi cac h ch ky in t ham bm con c s dung vao cac muc ich khac nh : xac
th c hoa thng ip, xac thc ha ngi dng.
i vi cac ng dung khng cn gi bi mt thng ip ma ch cn am bao thng
ip khng bi thay i trn ng truy n ngi ta se s dung ham bm cho muc ic
h xac
th c tinh nguyn ven cua thng ip o . Ch ng han chung ta co mt ph n m m ma
ngu n m dang setup mu n phn ph i cho ngi dung , r rang vic gi phn mm
ti may tin
h cua ng i dung la khng c n phai ma hoa , tuy nhin n u nh ph n m m o
bi thay i trn ng truyn (ch ng han nh bi g n thm cac spyware , virus ) th s
r t nguy hi m . am bao chung ta se cung c p gia tri bm cua ph n m m (khi o
ph n m m chinh la thng ip ). Ngi dung se download ca ph n m m va gia tri bm
nhn c , sau o ti n hanh bm lai , i sanh gia tri bm nhn c vi gia tri bm
c cung c p cung vi ph n m m , n u hai gi a tri nay khp nhau th c th am bao
ph n m m khng bi sa i trn ng truy n . Hin nay a s cac ph n m m ma ngu n
m u c phn ph i theo cach nay.
Trong cac h th ng yu c u co xac th c ngi dung nh cac h quan tri c s d
liu, h i u hanh , cac ng dung web , ng dung dang desktop application , lu mt
kh u ngi dung ngi ta cung s dung cac ham bm hoc cac h ma trong cac vai tro
cua ham bm (khng s dung khoa ). Khi o mi tai khoan cua ngi dung thay vi lu
di dang tn truy cp (username) va mt khu (password) s c lu di dang : tn
ngi dung, gia tri bm cua mt khu . Khi mt ngi dung ng nhp vao h th ng , h
th ng se l y tn truy cp , mt kh u ho nhp vao , ki m tra xem co tn truy cp nao nh
vy hay khng . N u co se ti n hanh bm gia tri mt kh u do ngi dung nhp vao , i

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

Chng VI: Qun ly khoa

CHNG VI: QUAN LY KHOA


1. Qun ly kho trong cc mang truyn tin
Trong cac chng trc, ta a lam quen vi cac phng phap lp ma va cac bai
toan quan trong khac lin quan n vic truyn tin bao mt trn cac mang truyn tin cng
cng ni chung. Ta cung a thy rng cac h mt ma khoa cng khai cng khai c nhiu
u vit hn cac h mt ma i xng trong vic lam nn tang cho cac giai phap an toan
thng tin, va c bit i vi cac h ma khoa i xng th vic thc hin i hi nhng
knh bi mt chuyn khoa hoc trao i khoa gia cac i tac, th v nguyn tc, i
vi cac h ma hoa vi khoa cng khai khng cn c nhng knh bi mt nh vy, v cac
khoa cng khai c th c truyn hay trao i cho nhau mt cach cng khai qua cac
knh truyn tin cng cng. Tuy nhin, trn thc t, bao am cho cac hoat ng thng
tin c tht s an toan, khng phai bt c thng tin nao v cac khoa cng khai cua mt
h ma, cua mt thut toan kim tra ch ky, cua mt giao thc xac nhn thng bao hay
xac nhn danh tinh cung phat cng khai mt cach tran lan trn mang cng cng, mc
d la cng khai nhng ngi ta cung mun la nhng ai cn bit th mi nn bit ma thi.
Do , mc d s dung cac h c khoa cng khai, ngi ta cung mun c nhng giao
thc thc hin vic trao i khoa gia cac i tac thc s c nhu cu giao lu thng tin
vi nhau, k ca trao i khoa cng khai. Vic trao i khoa gia cac chu th trong mt
cng ng nao c th c thit lp mt cach t do gia bt c hai ngi nao khi c
nhu cu trao i thng tin, hoc c th c thit lp mt cach tng i lu dai trong
thi gian nao trong ca cng ng vi s iu phi cua mt c quan c uy thac TA.
Vic trao i khoa trong trng hp th nht ta goi n gian la thoa thun khoa, cn
trong trng hp th hai ta goi la phn phi khoa; TA la ni thc hin vic phn phi,
cung la ni quan ly khoa. Vic thoa thun khoa ni chung khng cn c s tham gia cua
mt TA nao va ch c th xay ra khi cac h bao mt ma ta s dung la h c khoa cng
khai, cn vic phn phi khoa th c th xay ra i vi cac trng hp s dung cac h
khoa i xng cung nh cac h c khoa cng khai. Vic phn phi khoa vi vai tr quan
tri khoa cua mt TA la mt vic bnh thng, a tn tai rt lu trc khi c cac h mt ma
kho cng khai . Ta s bt u vi mt vai h phn phi khoa nh vy, sau o s gii
thiu mt s h phn phi hoc trao i khoa khi dng cac s an toan va bao mt vi
kho cng khai.
2. Mt s h phn phi kho
2.1. S phn phi kho Blom
Gia s ta c mt mang gm c n ngi dng va mi ngi dng u c nhu cu
trao i thng tin bi mt vi moi ngi trong mang. Gia s s mt ma c s dung
la mt s mt ma khoa i xng (chng han nh DES). Toan b mang cn c

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

Chng VI: Qun ly khoa


Nm 1985, Blom nghi mt s phn ph i khoa , ma sau y ta goi la s
Blom, trong trng h p n gian nh t c m ta nh sau:

TA chon mt s nguyn t p n, va chon cho mi ngi dng A mt s rA Z p


. S p va cac s rA c cng b cng khai.

Sau , TA chon ba s ngu nhin a, b, c Z p va lp a thc:

f ( x, y) a b( x y) cxy mod p

Vi mi ngi dng A, TA tinh g A ( x) f ( x, rA ) a A bA x mod p , trong

aA a brA mod p , bA b crA mod p . TA chuyn bi mt cp s (aA, bA) cho


A. Nh vy, A bit g A ( x) aA bA x .
So vi vic TA phai truyn bi mt n(n-1) lt khoa trn th vi s Blom, TA ch
phai truyn n lt cac cp s (aA, bA) m thi.
Sau khi a thc hin xong cac cng vic chun bi , by gi nu hai ngi dng A
va B mun tao khoa chung truyn tin bng mt ma cho nhau th khoa chung KA,B s
l:

K A, B g A (rB ) g B (rA ) f (rA , rB ),


ma mi ngi A va B tinh c bng nhng thng tin mnh a c.
Nh vy, theo s phn phi nay, TA phn phi cho moi ngi dng mt phn bi
mt cua khoa, hai ngi dng bt ky phi hp phn bi mt cua ring mnh vi phn cng
khai cua ngi kia cng tao nn khoa bi mt chung cho hai ngi. S nay la an
toan theo ngha sau y: bt ky mt ngi thc ba C nao (k ca C la mt ngi tham gia
trong mang) c th c phat hin c khoa bi mt ring cua hai ngi A va B. Thc
vy, d C c la ngi tham gia trong mang i na, th cai ma C bit nhiu lm la hai s
aC, bC do TA cp cho. Ta chng minh rng vi nhng g ma C bit th bt ky gia tri Z p
nao cung c th c chp nhn la KA,B. Nhng g ma C bit , k ca chp nhn K A, B ,
c th hin thnh:

a b(rA rB ) crA rB
a
brC
b
crC


aC
bC

Nu xem a, b, c la n s, ta c inh thc cac h s v phai la:

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

Chng VI: Qun ly khoa

Z p nao cung c th c C chp nhn la KA,B, iu ng ngha vi vic C khng


bit KA,B la s nao.
Tuy nhin, nu c hai ngi tham gia C va D (khac A, B) lin minh vi nhau phat
hin KA,B th lai rt d dang, v ca C va D bit:

a brC
b
a brD
b

crC
crD

aC
bC
aD
bD

bn phng trnh u xac inh (a, b, c) t tm c KA,B.


Ta c th m rng s Blom ni trn c mt s Blom tng quat, trong
moi khoa chung KA,B cua hai ngi dng A va B la bi mt hoan toan i vi bt ky lin
minh nao gm k ngi ngoai A va B, nhng khng cn la bi mt i vi moi lin minh
gm k+1 ngi tham gia trong mang. Mun vy, ta ch cn thay a thc f(x, y) ni trn
bng mt a thc i xng bc 2k sau y:
k

f ( x, y ) aij x i y j mod p,
i 0 j 0

trong aij Z p ,0 i, j k , aij a ji vi moi i, j.


2.2. H phn phi kho Kerberos
Kerberos la tn cua mt h dich vu phn phi (hay cp phat) khoa phin (sesion
key) cho tng phin truyn tin bao mt theo yu cu cua ngi dng trong mt mang
truyn tin. H mt ma c s dung thng la h c khoa i xng chng han nh DES.
thc hin h nay, trc ht c quan c uy thac (hay trung tm iu phi) TA
cn chia se mt khoa DES bi mt KA vi mi thanh vin A trong mang. Sau , mi ln A
c nhu cu truyn tin bao mt vi mt thanh vin khac B th yu cu TA cp mt khoa
phin cho ca A va B. Vic cp phat s c thc hin bng mt giao thc phn phi
khoa nh sau:
1) TA chon ngu nhin mt khoa phin K, xac inh mt tem thi gian T va thi
gian sng L (nh th c ngha la khoa phin K c gia tri s dung trong khoang thi gian
t T n T+L).
2)

TA tnh m1 eK A ( K , ID( B), T , L), m2 eK B ( K , ID( A), T , L) va gi (m1, m2) n

3)

A dng ham giai ma d K A cho m1 thu c K, T, L, ID(B). Sau tinh

A.

m3 eK ( ID( A), T ), va gi (m3, m2) cho B.


4)

B dng cac ham giai ma d K B cho m2 v dK cho m3 thu c K, T, L, ID(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

Chng VI: Qun ly khoa


5) A dng ham giai ma dK cho m4 va th xem kt qua thu c c ng la T+1
hay khng.
Trong giao thc ni trn, cac ky hiu ID(A) va ID(B) la ch danh tinh cua A va cua B,
cac thng tin la cng khai.
Hoan thanh giao thc gm 5 bc ni trn, TA (cng vi A va B) a thc hin xong
vic cp phat mt khoa phin K cho hai ngi dng A va B truyn tin mt ma cho
nhau. Tt ca cac vic trao i cac thng tin trong giao thc u c thc hin trn
cac knh cng cng, d khoa K vn la bi mt (ch A, B va TA la c bit ma thi). Ngoai
vic cp phat khoa, giao thc cn thc hin c vic xac nhn khoa: B va A u tin
chc c rng i tac cua mnh a thc s c khoa K do kt qua cua vic thc hin cac
phep th bc 4 va 5. Thm na, ca A va B cn bit c thi han c hiu lc cua
kho.
Phn phi khoa bi mt theo giao thc Kerberos c tin cy cao, tuy nhin trong
thc t, vic s dung n cung i hi tn nhiu thi gian nn ngay nay cung ch c
dng trong nhng trng hp han ch.
2.3. H phn phi khoa Diffe-Hellman
H phn phi khoa Diffe-Hellman khng i hi TA phai bit va chuyn bt ky thng
tin mt nao v khoa cua cac ngi tham gia trong mang ho thit lp c khoa chung
bi mt cho vic truyn tin vi nhau.
Trong mt h phn phi khoa Diffe-Hellman, TA ch vic chon mt s nguyn t ln
*
p va mt phn t nguyn thuy theo mod p sao cho bi ton tnh loga trong Z p la rt

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.

K A, B bBaA mod p aB a A mod p.


Khoa chung B cung tao ra c t cac thng tin cng khai bA cua A va s bi mt
aB cua mnh:

K A, B bBaB mod p a AaB mod p.

123

Chng VI: Qun ly khoa


bao am c cac thng tin v bB v bA la chinh xac, A va B c th dng thut
ton verTA kim tra ch ky xac nhn cua TA trong cac chng ch C(B) va C(A) tng
ng.
C s ly thuy t am b ao cho s an toan cua cac phng phap trao i kha da
trn h phn ph i khoa Diffie -Hellman la bai toan Logarithm ri rac , c th tham khao
thm trong ph n 3.3 chng IV bi t thm.
3. Trao i kho va tho thun kho
3.1. Giao thc trao i kho Diffie-Hellman
H phn phi khoa Diffie-Hellman ni trong muc trc c th d dang bin i
thanh mt giao thc trao i (hay thoa thun) khoa trc tip gia cac ngi s dung ma
khng cn c s can thip cua mt TA lam nhim vu iu hanh hoc phn phi khoa. Mt
nhm bt ky ngi s dung c th thoa thun cng dng chung mt s nguyn t ln p
va mt phn t nguyn thuy theo mod p, hai ngi bt ky trong nhm A va B mi khi
mun truyn tin bao mt cho nhau c th cng thc hin giao thc sau y trao i
kho:
1)

A chon ngu nhin s aA (0 aA p-2) bi mt, tinh bA aA mod p va gi bA

cho B .
2)

Tng t, B chon ngu nhin s aB (0 aB p-2) bi mt, tinh bB aB mod p

va gi bB cho A.
3)

A va B cng tinh c khoa chung:

K A, B bBaA mod p bAaB mod p ( aA aB mod p).


Giao thc trao i khoa Diffie-Hellman c cac tinh cht sau:

Giao thc la an toan i vi vic tn cng thu ng, ngha la mt ngi th ba


d bit bA v bB s kh ma bit c KA,B.
Chng ta bit rng bai toan bit bA v bB tm KA,B chinh la bai toan Diffie-Hellman,
bai toan nay tng ng vi bai toan pha ma ElGammal. By gi ta s chng minh iu
ny.
Phep mt ma ElGammal vi khoa K = ( p, , a, ), trong a mod p cho ta t
mt ban r x va mt s ngu nhin k Z p 1 lp c mt ma eK(x, k) = (y1, y2) vi

y1 k mod p , y 2 x k mod p. Va phep giai ma c cho bi y1 k mod p .


Gia s ta c thut toan A giai bai toan Diffie-Hellman. Ta s dng A pha ma
ElGammal nh sau:
Cho mt ma (y1, y2). Trc tin, dung A cho y1 k mod p v a mod p, ta
c A( y1 , B) ka k mod p . Sau , ta thu c ban r x t k v y2 nh sau:

x y 2 ( k ) 1 mod p.

124

Chng VI: Qun ly khoa


Ngc lai, gia s c mt thut toan khac la B dng pha ma ElGammal, tc

B( p, , , y1 , y 2 ) x y 2 ( y1a ) 1 mod p. Ap dung B cho bA , y1 = bB, y2 =1, ta c


B( p, , bA , bB ,1) 1 (1.(bBaA ) 1 ) 1 aA aB mod p, tc giai c bai toan Diffie-Hellman.

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

vi C ma vn tng la vi B; ng thi B cung lp mt khoa chung a' A aB vi C


ma vn tng la vi A. C c th gia ma moi thng bao ma A tng nhm la mnh gi n
B cung nh moi thng bao ma B tng nhm la mnh gi n A.
A a 'B

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)

A chon ngu nhin s aA (0 aA p-2), tnh bA aA mod p va gi bA cho B.

2)

B chon ngu nhin s aB (0 aB p-2),

tnh bB aB mod p tinh tip

K bAaB mod p, y B sig B (bB , bA ), va gi (C(A), bB, yB) cho A.

125

Chng VI: Qun ly khoa


A tnh K bBa A mod p, dng verB kim th yB, dng verTA kim th C(B),

3)

sau tinh yA = sigA(bA, bB) va gi (C(A), yA) cho B.


B dng verA kim th yA v dng verTA kim th C(A).

4)

Nu tt ca cac bc c thc hin va cac phep kim th u cho kt qua ng


n th giao thc c kt thc, va ca A va B u c c khoa chung K. Do vic dng
cac thut toan kim th nn A bit chc gia tri bB la cua B va B bit chc gia tri bA cua A,
loai tr kha nng mt ngi C nao khac anh trao cac gia tri gia ng.
3.3. Giao thc trao i kho Matsumoto-Takashima-Imai
Giao thc trnh bay trong muc trn dng ba ln chuyn tin qua lai thit lp mt
khoa chung. Cac tac gia Nht Matsumoto, Takashima va Imai nghi mt cai tin ch
dng mt giao thc gm hai ln chuyn tin (mt t A n B va mt t B n A) thoa
thun khoa nh sau:
Ta gia s rng trc khi thc hin giao thc, TA a ky cp chng ch cho mi
ngi dng A theo cach trong giao thc trao i DH:
C(A) = (ID(A), bA, sigTA(ID(A), bA)).
va thut toan kim th ch ky verTA la cng khai. Trong giao thc nay, cac bA khng
trc tip tao nn cac khoa mt ma cho truyn tin, ma vi mi phin truyn tin bao mt,
khoa phin (sesion key) s c tao ra cho tng phin theo giao thc.
Giao thc trao i khoa phin MTI gm ba bc (trong c hai ln chuyn tin)
nh sau:
A chon ngu nhin s rA (0 rA p-2), tnh s A rA mod p, va gi (C(A), sA)

1)
cho B.

B chon ngu nhin s rB (0 rB p-2), tnh s B rB mod p, va gi (C(B), sB)

2)
cho A.

A tnh K s BaA .bBrA mod p, vi gia tri bB thu c t C(B)

3)

B tnh K s AaB .bBrB mod p, vi gia tri bB thu c t C(A).


Hai cach tinh cho cng mt gia tri K rAaB rB aA mod p.
Giao thc nay cung c kha nng gi bi mt khoa K nh i vi giao thc DiffieHellman trc s tn cng thu ng. Tuy nhin, v khng c chng ch i vi cac gia tri
sA, sB nn vn c nguy c cua s tn cng tich cc bng vic anh trao gia ng bi
mt ngi C nao theo kiu sau y:

C(A), r ' A

C(A), rA

C(B), r 'B

C(B), rB

L ra A gi n B cp (C(A), sA) th C anh trao bng cach (C(A), sA) va gi n B


gia tri (C(A), sA) vi s' A r ' A mod p . Va ngc lai, ang l B gi n A gia tri (C(B), sB)

126

Chng VI: Qun ly khoa


th C anh trao bng cach nhn (C(B), sB)

s' B

r 'B

va gi n A gia tri (C(B), sB) vi

mod p . Khi A tinh c khoa:

K1 rAaB r 'B aA mod p,


va B tinh c khoa:

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,

B tnh kho K s AaB ( p Ae ID( A)) rB mod n.

127

Chng VI: Qun ly khoa


Ca hai gia tri cua K u bng nhau va bng K rAaB rB aA mod n. .
Bng cac lp lun tng t nh muc trc, ta d thy rng mt ngi th ba C
kh ma tao ra cac thng tin gia mao gi n A hoc B, nu tn cng bng cach anh
trao gia ng th c th pha ri ngn can A va B tao lp khoa chung nhng khng
th anh cp thng tin trao i gia A va B.
Cn lai vn : tai sao TA cn bit aA va th iu kin bA aA mod n trc khi
cp pA cho A! Ta gia s rng TA khng bit aA va cp pA = (bA-ID(A))d mod n cho A , v
th xem c th xay ra chuyn g?
Mt ngi th ba C c th chon mt gia tri aA v tnh b' A a 'A mod n , ri tinh bC =
bA - ID(A) ID(C) va a (ID(C), bC) cho TA. TA s cp cho C mt khoa cng khai t
chng thc:
pC = (bC ID(C))d mod n.
V bC ID(C) = bA ID(A) nn thc t C a c cp:
pC = pA = (bA ID(A))d mod n.
By gi gia s A va B thc hin giao thc trao i khoa va C xen vao gia. Nh
vy, A gi cho B ( ID( A), p A , rA mod n) , nhng do C anh trao nn B s nhn c

( ID( A), p' A , r ' A mod n) . Do , B va C tinh c cng mt khoa:


K ' r ' A aB rB a 'A mod n s Ba ' A ( p Be ID( B)) r ' A mod n,
cn A tinh c khoa K rAaB rB aA mod n.

(ID)A, p'A, r ' A

(ID)A, pA, rA

(ID)B, pB, rB

(ID)B, pB, rB

B va C c cng mt khoa khac vi khoa cua A nhng B vn ngh rng mnh c


chung khoa vi A. V th, C c th giai ma moi thng bao ma B gi cho A, tc anh cp
thng tin t B n A. Vic TA bit aA va th iu kin bA aA mod n trc khi cp pA
cho A la loai tr kha nng anh trao nh vy cua mt ke tn cng C.
4.Bai tp
Bai tp 6.1: Gia s A va B s dung ky thut phn phi kha Diffie -Hellman truy n tin
cho nhau vi s nguyn t c chon la p = 71 va phn t nguyn thuy = 7.
a) N u khoa bi mt cua A la XA = 5 th kha cng khai cua A la g?
b) N u khoa bi mt cua B la XB = 12 th kha cng khai cua B la g?
c) Cho bi t khoa bi mt dung truy n tin?
Bai tp 6.2: A va B s dung ky thut phn ph i khoa
nhau vi p = 11 va phn t nguyn thuy = 2.

Diffie-Hellman truy n tin cho

a) Hay chng minh rng = 2 ung la ph n t nguyn thuy cua Z*11.


b) N u khoa cng khai cua A la YA = 9 th kha bi mt cua A la bao nhiu?
128

Chng VI: Qun ly khoa


c) Gia s B c kha cng khai la Y
gia A va B.

= 3, hay tm kha bi mt dng truyn tin

129

Chng VII: Giao thc m t ma


CHNG VII: GIAO THC MT MA
1. Giao thc
inh nghia:
Mt giao thc (protocol) ch n gin l mt chui cc bc thc hin trong o co it
nht 2 bn tham d, c thit k thc hin mt nhim v no o.[2]
inh ngha nay n gian nhng cht ch: mt chui cac bc ngha la mt day
cac bc c th t, c u c cui, bc trc phai c kt thc trc khi thc hin
bc sau. C it nht hai bn tham gia ngha la c th c nhiu ngi cng tham gia
thc hin chui bc nay, do nu mt ngi thc hin mt chui cac bc th khng
th goi la mt giao thc c. Va cui cng mt giao thc phai c thit k nhm at
c ti mt kt qua nao .
Mt giao thc c nhng c tinh nh sau:

Cac bn tham gia phai hiu cach thc va cac bc thc hin mt giao thc khi
tham gia thc hin.

Cac bn phai ng y tuyt i tun thu cac bc.

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 phai y u, tt ca cac tnh hung bin i u phai c a ra.

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

Chng VII: Giao thc m t ma


Rt nhiu cac thu tuc lam n hang ngay cua chng ta c tin tng da trn s
c mt cng nhau cua cac bn i tac, chinh v th nn vic xy dng nhng giao thc
trn may tinh la khng cn n gian nh cac thu tuc i thng ma n thay th. Ban c
t hi xem ngi ta c th trao mt chng tin mt cho mt ngi la nh mua hang c
c khng? Hay th hi xem ban c dam gi th cho chinh phu vi phiu bu cua ban
ma khng c cac thu tuc am bao v vic giu tn. Tht la ngy th nu tin rng moi
ngi lam vic trn mang may tinh u trung thc. Va cung tht la ca tin nu cho rng
cac nha quan tri mang, hay thm chi ngay ca cac nha thit k ra cac mang nay la trung
thc n cng. D hu ht la nh th nhng ch cn mt thiu s nhng ngi khng
trung thc cung u ngy ra thit hai nu chng ta khng c cac bin phap am bao.
Vi phng phap hnh thc hoa, chng ta c th th thit k cac giao thc ri tm
hiu, kim tra kha nng cua n c vng hay khng trc moi kiu xm pham cua cac ke
khng trung thc; t ma cai tin, phat trin ln chng lai cac kiu tn cng . Bng
cach ma ngi ta a xy dng cac giao thc cho cac may tinh giai quyt c cac
nhim vu, cac bai toan i sng hang ngay.
Hn na giao thc may tinh la mt hnh thc tru tng hoa va khng quan tm
n vic cai t cu th. Mt giao thc la ging nhau d n c cai t trn bt c h
iu hanh nao. V th mt khi chng a c th khng inh c tin cy cua giao thc
ta c th ap dung n bt c u, d la cho may tinh, cho in thoai hay cho mt l vi
sng thng minh ...
3. Cc bn tham gia vao giao thc (the players in protocol)
c th tip cn thng nht vi tt ca cac giao thc th mt iu cn thit la c
mt qui inh thng nht cach goi tn tt ca cac bn tham gia va dinh liu c th c trong
giao thc: [6]
Alice bn th nht trong cac giao thc.
Bob

bn th hai trong cac giao thc.

Carol bn tham gia th ba trong cac giao thc.


Dave bn tham gia th t trong cac giao thc.
Eve
Mallory

ke nghe trm (eavesdropper).


ke tn cng chu ng c nhiu quyn lc trn mang va rt nguy him
(malicious active attacker).

Trent trong tai (trusted arbitrator).


Walter

ngi canh gac (warden), c th ng canh gac Alice va Bob trong


s giao thc .

mt

Peggy ngi chng minh (prover).


ngi thm tra (verifier), Peggy cn phai chng minh vi Victor v mt
quyn s hu nao chng han nh danh tinh cua anh ta khai la ng
Victor
hay anh ta ng la ke c thm quyn c truy nhp vao mt ni
quan trong ...

131

Chng VII: Giao thc m t ma


4. Cc dang giao thc
4.1. Giao thc co trong tai
Ngi trong tai la ngi thoa man cac iu kin sau:

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:

Alice chuyn vt cn ban cho Trent

Bob a t sec cho Alice.

Alice chuyn sec vao tai khoan cua c ta ngn hang.

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:

Bob vit mt sec va chuyn cho nha bng.

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

Chng VII: Giao thc m t ma

Alice giao xe cho Bob cng lc Bob a Alice t sec c chng nhn cua nha

Alice chuyn sec vao nha bng.

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:

C th d dang tm thy va t lng tin vao mt bn th ba trung gian (trong


tai) nu ta bit va c th nhn tn mt ho. Tuy nhin nu hai bn tham gia giao thc a
nghi ng nhau th vic cng t lng tin vao mt bn th ba nao nm u khut
din trn mang may tinh cung tr nn c th ang ng.

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 .

Bi v tt ca moi ngi trn mang u tin trong tai, d gy ra y mt im


nhay cam chiu ap lc tn cng tp trung t cac ke rnh rp pha h thng.
4.2. Giao thc co ngi phn x
yn tm giao dich, Alice va Bob cn mi mt trong tai c uy tin cao, tuy nhin
y s nay sinh vn v vic phai tra s tin xng ang cho ngi nay, r rang la
khng phai khng ang k. V vy ngi ta a nay sinh y ngh chia giao thc c trong ti
tham d (arbitrated protocol) thanh hai phn giao thc (subprotocol) hai cp di:

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

Chng VII: Giao thc m t ma


Cac thm phan la nhng ngi phn x chuyn nghip. Khac vi cng chng vin,
mt thm phan - ngi ma s ch c bit n hp ng nay khi nao mt trong hai
ngi Alice hay Bob li ngi kia ra toa. Giao thc dng cho ky kt hp ng nay c th
c hnh thc hoa nh sau:
Vi d:
Tai moi thi im:

Alice va Bob thoa thun cac iu khoan trong hp ng.

Alice ky hp ng.

Bob ky hp ng.

Khi c tranh cai cn giai quyt:

Alice va Bob n gp quan toa nh phn x.

Alice a ra chng c cua c ta.

Bob trnh bay cac chng c cua anh ta.

Quan toa xem xet cac chng c va phan quyt.

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

Chng VII: Giao thc m t ma

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.

Vi dang tn cng chu ng (active attack): ke ich la mt th lc trong mang,


nm nhiu kha nng va phng tin c th chu ng tn cng can thip, gy anh
hng phc tap n giao thc. N c th ng gia vi mt cai tn khac can thip vao
giao thc bng nhng thng bao kiu mi, xoa b nhng thng bao ang phat trn
ng truyn, thay th thng bao tht bng thng bao gia, ngt ngang cac knh thng tin
hay sa cha vao cac kho thng tin trn mang. Cac kha nng khac nhau nay la phu thuc
vao t chc mang va vai tr cua ke ich trn mang.
Ke tn cng trong tn cng thu ng (Eve) ch c gng thu lm thng tin t cac
bn tham gia giao thc, thng qua thu nhp cac thng bao truyn tin gia cac bn
phn tich giai ma. Trong khi , ke tn cng chu ng (Mallory) c th gy ra cac tac hai
rt phc tap a dang. Ke tn cng c th c muc ich n thun la tm c tin ma n
quan tm, nhng ngoai ra n c th gy ra cac pha hoai khac nh pha hoai ng truyn
truy nhp vao nhng h thng thng tin ma ch danh cho nhng ngi c u thm quyn.
Ke ich trong tn cng chu ng tht s rt nguy him, c bit la trong cac giao
thc ma cac bn khac nhau khng nht thit phai tin nhau. Hn na phai nh rng ke
ich khng phai ch c th la nhng ke xa la bn ngoai ma n c th la mt ca nhn hp
phap trong h thng, thm chi ngay chinh la ngi quan tri mang. Ngoai ra cn c th c
nhiu ca nhn lin kt vi nhau thanh mt nhm ke ich, lam tng ln s nguy him cho
giao thc.
Mt iu cung c th xay ra la Mallory lai chinh la i tac trong giao thc. Anh ta c
th c hanh ng la di hoc la khng chiu tun theo giao thc. Loai ke ich nay c
la ke la ao (cheater). Ke la ao thuc loai thu ng th c th lam ng theo giao thc
nhng lai c tnh thu nht thm thng tin t cac bn i tac hn la c phep theo qui
inh. Ke la ao chu ng th pha v giao thc trong mt c gng la di. Rt kh gi
an toan cho mt giao thc nu nh phn ln cac bn tham gia u la nhng ke la ao
chu ng, tuy nhin i khi ngi ta cung c cac bin phap cac bn hp phap c th
d ra c s la ao ang din ra. Tt nhin cac giao thc cung cn phai c bao v
chng lai nhng ke la ao loai thu ng.

135

Tai liu tham kho

TAI LIU THAM KHAO


[1] Nik Goots, Boris Izotov, Alex Moldovyan and Nik Moldovyan, Modern CryptographyProtect Your Data with Fast Block Ciphers, A-LIST Publishing , 2003.
[2] Whitfield Diffie, Martin E. Hellman, New Directions in Cryptography, IEEE
transactions on information theory, Vol. IT-22, No. 6, November 1976.
[3] Randy Nichols (LANAKI), Classical cryptography course, 1995.
http://www.forturecity.com/course/LANAKI.html
[4] A.Menezes, P. van Oorchot, and S.Vanstone, Hand book of Applied Cryptography,
CRC Press, 1996. http://www.cacr.math.uwaterloo.ca/hac
[5] Douglas R.Stinson, Cryptography: theory and practice, CRC Press,
1995.http://www.mindspring.com/~pate/stinson/
[6] Bruce Schneier, Applied Cryptography, Second Edition: Protocols, Algorthms, and
Source Code in C (cloth), MIST Press, 1996.
[7] Gil Held, Learn Encryption Techniques with BASIC and C++, CRC Press, 1998.
[8] FIPS 186 - (DSS)http://www.itl.nist.gov/fipspubs/fip186.htm
[9] Jean Berstel, Dominique, Theory of code, Academic Press Inc, 1985.
[10] C. Shannon, Communication theory of secret systems (tap chi khoa hoc), 1949.
[11] RSA library. www.fpt.rsa.org/PKI
[12] System and Network Security. http://www.cs.ncl.ac.uk/old/modules/200001/csc331/notes/
[13] Cryptography and Computer Security.
http://www.cs.adfa.edu.au/teaching/studinfo/csc/lectures/
[14] http://www.securitydynamics.com/rsalabs/changelenges/factoring/rsa155.html.
[15] Data security and cryptography. http://www.islab.oregonestate.edu/koc/ece575
[16] OPT8 Advanced Cryptography.
http://www.isg.rhul.ac.uk/msc/teaching/opt8/macs.pdf

136

thi tham khao

1:

12 5

Cu 1 : Cho h m Hill c M = 2 v ma trn kha A =


hy thc hin
3 7
m ha vi xu S = HARD.
Cu 2 : V m hnh qun l kha da vo h m kha cng khai. Gii thch
r cc chc nng v cc bc thc hin.
Cu 3: Cc mnh sau ng hay sai, gii thch?
1. So vi tn cng ch ng tn cng th ng nguy him hn.
2. Giao thc 3 bc Shamir h tr kh nng xc thc ha ngun gc thng
ip.
3. C ch m mc xch an ton hn c ch bng tra m in t
4. Mt trong cc yu im ca cc h m mt kha cng khai l chm.
5. Giao thc 3 bc Shamir l giao thc trao i thng tin khng cn trao i
kha.
6. Cc h m m t RSA , ElGamma, Knapsack c go i la cac h ma m t
kha cng khai v kha ca chng u c cng khai ha.
2:

Cu 1 : V lc ch s dng m khi mc xch CBC . M ta thu t toan


sinh va giai ma.
11 8

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 3: Cc mnh sau ng hay sai, gii thch?


1. Tt c c 4 loi hm bm: cc hm bm da vo cc h m khi (chng
hn nh DES), cc hm bm da vo cc php tnh s hc, cc hm bm
c bit v cc hm bm da vo cc h m kha cng khai.
2. Mt trong cc yu im chnh ca h Knapsack l vic lu kha cn b
nh ln.
3. Chun m ha d liu (DES) khng cn an ton nn khng cn c dng
trong thc t.
4. tng tnh bo mt cho DES c th m ha nhiu ln vi cc kha khc
nhau.
5. Trong h m ElGamma lun xut hin hin tng l bn r.
6. s dng c ch bng tra m in t (EBC) khi ci t khng cn c
mt ga tr khi to IV.
3:
Cu 1 : V lc ch s dng m khi phn hi CFB . M ta thu t toan
sinh va giai ma.
137

thi tham khao

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

thi tham khao

Cu 3: Cc mnh sau ng hay sai, gii thch?


1. C ch CBC l c ch s dng m khi n gin nht v d dng nht.
2. Trong c ch ECB nu mt khi no b hng trc khi a vo m ha
s lm nh hng ti tt c cc khi m ha ng trc n.
3. Kha m ha ca chun m ha d liu c di bng 56 bit.
4. Cc ch s dng m khi u s dng cc n v khi d liu 64 bit..
5. Trong h m ElGamma lun xut hin hin tng l bn r.
6. C ch m mc xch an ton hn c ch bng tra m in t.

139

You might also like