You are on page 1of 325

Lêi nãi ®Çu

Trong sù ph¸t triÓn cña x· héi loµi ng−êi, kÓ tõ khi cã sù trao


®æi th«ng tin, an toµn th«ng tin trë thµnh mét nhu cÇu g¾n liÒn víi nã
nh− h×nh víi bãng. Tõ thña s¬ khai, an toµn th«ng tin ®−îc hiÓu ®¬n
gi¶n lµ gi÷ ®−îc bÝ mËt vµ ®iÒu nµy ®−îc xem nh− mét nghÖ thuËt chø
ch−a ph¶i lµ mét ngµnh khoa häc. Víi sù ph¸t triÓn cña khoa häc kü
thuËt vµ c«ng nghÖ, cïng víi c¸c nhu cÇu ®Æc biÖt cã liªn quan tíi an
toµn th«ng tin, ngµy nay c¸c kü thuËt chÝnh trong an toµn th«ng tin bao
gåm: Kü thuËt mËt m· (Cryptography), Kü thuËt nguþ trang
(Steganography), Kü thuËt t¹o bãng mê (Watermarking - hay x¨m ®iÖn
tö). Kü thuËt mËt m· nh»m ®¶m b¶o ba dÞch vô an toµn c¬ b¶n:BÝ mËt
(Confidential), X¸c thùc (Authentication), §¶m b¶o tÝnh toµn vÑn
(Integrity). Cã thÓ thÊy r»ng mËt m· häc lµ mét lÜnh vùc khoa häc réng
lín cã liªn quan rÊt nhiÒu ®Õn to¸n häc nh−: §¹i sè tuyÕn tÝnh, Lý
thuyÕt th«ng tin, Lý thuyÕt ®é phøc t¹p tÝnh to¸n….
N¾m b¾t ®−îc nhu cÇu t×m hiÓu vÒ mËt m· häc, Häc viÖn C«ng
nghÖ B−u chÝnh ViÔn th«ng phèi hîp víi Nhµ xuÊt b¶n B−u ®iÖn xuÊt
b¶n cuèn gi¸o tr×nh "MËt m· häc" do PGS.TS NguyÔn B×nh chñ biªn.
Cuèn gi¸o tr×nh nµy sÏ giíi thiÖu víi b¹n ®äc vÒ c¸c kiÕn thøc to¸n häc
c¬ b¶n nh−: lý thuyÕt sè, c¸c cÊu tróc ®¹i sè nh− vµnh nhãm, tr−êng...;
mét sè thuËt to¸n mËt m· cæ ®iÓn vµ hiÖn ®¹i; c¸c thñ tôc vµ c¸c chuÈn
øng dông trong thùc tÕ. Víi nhiÒu vÝ dô cô thÓ, cuèn s¸ch gióp cho b¹n
®äc thuËn tiÖn trong qu¸ tr×nh häc tËp nghiªn cøu ®Ó n©ng cao kiÕn thøc
vÒ mËt m· häc. §©y lµ gi¸o tr×nh phôc vô ®µo t¹o t¹i Häc viÖn C«ng
nghÖ B−u chÝnh ViÔn th«ng.
Hy väng cuèn s¸ch sÏ lµ tµi liÖu tham kh¶o h÷u Ých cho gi¶ng
viªn, sinh viªn c¸c tr−êng ®¹i häc vÒ kü thuËt vµ c«ng nghÖ.
Xin tr©n träng giíi thiÖu cïng b¹n ®äc.

Hµ Néi, ngµy 23 th¸ng 10 n¨m 2003


Häc viÖn c«ng nghÖ b−u chÝnh viÔn th«ng
thuËt ng÷ viÕt t¾t

DES Data Encryption Standard ChuÈn m· d÷ liÖu


LAN Local Area Network M¹ng côc bé
MDV M· dÞch vßng
MTT M· thay thÕ
MHV M· ho¸n vÞ
ECB Electronic Code Book ChÕ ®é quyÓn m· ®iÖn tö
CFB Cripher Feedback ChÕ ®é ph¶n håi m·
CBC Cripher Block Chaining ChÕ ®é liªn kÕt khèi m·
RSA Rivest - Shamir - Adleman
MAC Message Authentication Code M· x¸c thùc th«ng b¸o
OWHF Oneway Hash Funtion Hµm b¨m mét chiÒu
CRHF Collision Resistant hash function Hµm b¨m khã va ch¹m
MDC Manipulation Detection Code M· ph¸t hiÖn sù söa ®æi
LSB Least Signification Bit Bit thÊp nhÊt (cã gi¸ trÞ nhá
nhÊt
Header Tiªu ®Ò
IDEA International Data Encryption ThuËt to¸n m· hãa d÷ liÖu
Algorithm quèc tÕ
PGP Pretty Good Privacy ThuËt to¸n m· hãa PGP
SET Secure Electronic Transaction Giao dÞch ®iÖn tö an toµn
LFSR Linear Feedback Sequence Thanh ghi håi tiÕp tuyÕn tÝnh
Register
Firewall Bøc t−êng löa
Server M¸y chñ
Router Bé ®Þnh tuyÕn
PhÇn I

C¸c kiÕn thøc to¸n häc phô trî


bæ tóc vÒ lý thuyÕt sè

1.1. Sè nguyªn
TËp c¸c sè nguyªn {K, − 3, − 2, − 1, 0,1, 2, 3,K}= Z.

1.1.1. §Þnh nghÜa 1.1

Cho a, b ∈ Ζ

a lμ −íc cña b nÕu ∃c ∈ Z : b = a.c. Ký hiÖu lμ a b.

1.1.2. C¸c tÝnh chÊt chia hÕt


∀ a, b, c ∈ Ζ ta cã:

(i) a a.

(ii) NÕu a b vμ b c th× a c.

(iii) NÕu a b vμ a c th× a (bx + cy ) víi ∀x, y ∈ Z.

(iv) NÕu a b vμ b a th× a = ± b.

1.1.3. §Þnh nghÜa 1.2 (ThuËt to¸n chia ®èi víi c¸c sè nguyªn)

NÕu a vμ b lμ c¸c sè nguyªn víi b ≥ 1


th× a = qb + r; 0 ≤ r < b

q vμ r lμ nh÷ng gi¸ trÞ duy nhÊt.


10 Gi¸o tr×nh MËt m· häc

PhÇn d− cña phÐp chia a vμ b ®−îc ký hiÖu a mod b = r

Th−¬ng cña phÐp chia a vμ b ®−îc ký hiÖu a div b = q

⎡a ⎤ ⎡a ⎤
Ta cã a div b = ⎢ ⎥, a mod b = a − b⎢ ⎥.
⎣b⎦ ⎣b⎦

VÝ dô: a = 73, b = 17.


73 div 17 = 4, 73 mod 17 = 5.

1.1.4. §Þnh nghÜa 1.3 (¦íc chung)


c lμ −íc chung cña a vμ b nÕu c a & c b.

1.1.5. §Þnh nghÜa 1.4 (¦íc chung lín nhÊt (¦CLN))


Sè nguyªn d−¬ng d lμ ¦CLN cña c¸c sè nguyªn a vμ b (Ký
hiÖu d = (a, b)) nÕu:
(i) d lμ −íc chung cña a vμ b.
(ii) NÕu cã c a vμ c b th× c d .

Nh− vËy (a,b) lμ sè nguyªn d−¬ng lín nhÊt −íc cña c¶ a vμ b


kh«ng kÓ (0,0) = 0.
VÝ dô: C¸c −íc chung cña 12 vμ 18 lμ {± 1, ± 2, ± 3, ± 6}

(12,18) = 6

1.1.6. §Þnh nghÜa 1.5 (Béi chung nhá nhÊt (BCNN))


Sè nguyªn d−¬ng d lμ BCNN cña c¸c sè nguyªn a vμ b (Ký
hiÖu d = BCNN (a,b)) nÕu:
(i) a d, b d.

(ii) NÕu cã a c, b c th× d c.

Nh− vËy d lμ sè nguyªn d−¬ng nhá nhÊt lμ béi cña c¶ a vμ b.


Ch−¬ng 1: Bæ tóc vÒ lý thuyÕt sè 11

1.1.7. TÝnh chÊt


a.b
BCNN (a , b) =
(a , b)
VÝ dô: (12 ,18 ) = 6 ⇒ BCNN(12 ,18 ) =
12 .18
= 36 .
6

1.1.8. §Þnh nghÜa 1.6


Hai sè nguyªn d−¬ng a vμ b ®−îc gäi lμ nguyªn tè cïng nhau
nÕu: (a,b) = 1.

1.1.9. §Þnh nghÜa 1.7


Sè nguyªn p ≥ 2 ®−îc gäi lμ sè nguyªn tè nÕu c¸c −íc d−¬ng
cña nã chØ lμ 1 vμ p. Ng−îc l¹i p ®−îc gäi lμ hîp sè.

1.1.10. §Þnh lý c¬ b¶n cña sè häc


Víi mçi sè nguyªn n ≥ 2 ta lu«n ph©n tÝch ®−îc d−íi d¹ng
tÝch cña luü thõa cña c¸c sè nguyªn tè.

n = p1e1 pe22 K pekk

Trong ®ã pi lμ c¸c sè nguyªn tè kh¸c nhau vμ ei lμ c¸c sè


nguyªn d−¬ng. H¬n n÷a ph©n tÝch trªn lμ duy nhÊt.

1.1.11. §Þnh nghÜa 1.8


Víi n ≥ 2, hμm Φ(n ) ®−îc x¸c ®Þnh lμ sè c¸c sè nguyªn trong
kho¶ng [1 , n ] nguyªn tè cïng nhau víi n.

1.1.12. C¸c tÝnh chÊt cña hμm Φ(n)


(i) NÕu p lμ c¸c sè nguyªn tè th× Φ(p) = p – 1.
(ii) NÕu (m, n) = 1 th× Φ(m.n) = Φ(m). Φ(n).
12 Gi¸o tr×nh MËt m· häc

(iii) NÕu n = p1e1 pe22 K pekk lμ ph©n tÝch ra thõa sè nguyªn tè


cña n th×:
⎛ 1 ⎞⎛ 1 ⎞ ⎛ 1 ⎞
Φ (n ) = n⎜⎜1 − ⎟⎟ ⎜⎜1 − ⎟⎟ K ⎜⎜1 − ⎟⎟ .
⎝ p1 ⎠ ⎝ p2 ⎠ ⎝ pk ⎠

1.1.13. §Þnh lý 1.1


Víi ∀n ≥ 5 th×

Φ (n ) >
n
6 ln (ln n )

1.2. c¸c thuËt to¸n trong z


Cho a vμ b lμ c¸c sè nguyªn kh«ng ©m vμ nhá h¬n hoÆc b»ng
n. CÇn chó ý r»ng sè c¸c bit trong biÓu diÔn nhÞ ph©n cña n lμ
[lgn] + 1 vμ sè nμy xÊp xØ b»ng lgn. Sè c¸c phÐp to¸n bit ®èi víi
bèn phÐp to¸n c¬ b¶n trªn c¸c sè lμ céng, trõ, nh©n vμ chia sö
dông c¸c thuËt to¸n kinh ®iÓn ®−îc tãm l−îc trªn b¶ng 1.1. C¸c kü
thuËt tinh tÕ h¬n ®èi víi c¸c phÐp to¸n nh©n vμ chia sÏ cã ®é phøc
t¹p nhá h¬n.
B¶ng 1.1: §é phøc t¹p bit cña c¸c phÐp to¸n c¬ b¶n trong Z
PhÐp to¸n §é phøc t¹p bit
Céng a+b 0(lga + lgb) = 0(lgn)
Trõ a–b 0(lga + lgb) = 0(lgn)
Nh©n a.b 0((lga).(lgb)) = 0((lgn)2)
Chia a = qb + r 0((lga).(lgb)) = 0((lgn)2)

¦CLN cña 2 sè nguyªn a vμ b cã thÓ ®−îc tÝnh theo ®Þnh lý sau:

1.2.1. §Þnh lý 1.2


NÕu a = p1e1 pe22 K pekk , b = p1f1 p2f2 ...p fkk trong ®ã e i ≥ 0, fi ≥ 0

th× − CLN(a , b) = p1min (e1 , f1 ) p min


2
(e2 , f2 )
K pmin
k
(ek , fk )
Ch−¬ng 1: Bæ tóc vÒ lý thuyÕt sè 13

vμ BCNN (a , b) = p1max (e1 ,f1 ) pmax


2
(e2 ,f2 )
K pmax
k
(ek ,fk )
.
VÝ dô: Cho a = 4864 = 28.19; b = 3458 = 2.7.13.19. Khi ®ã:
− CLN(a , b) = (4864, 3458 ) = 2.19 = 38
BCNN(a , b) = (4864, 3458 ) = 28.7.13.19 = 442624 .

1.2.2. §Þnh lý 1.3


NÕu a vμ b lμ c¸c sè nguyªn d−¬ng víi a > b th× ¦CLN(a,b) =
¦CLN (b,a mod b). ThuËt to¸n Euclide sau sÏ cho ta c¸ch tÝnh
¦CLN rÊt hiÖu qu¶ mμ kh«ng cÇn ph¶i ph©n tÝch ra thõa sè
nguyªn tè.

1.2.3. ThuËt to¸n Euclide


TÝnh ¦CLN cña 2 sè nguyªn
Vμo : Hai sè nguyªn kh«ng ©m a vμ b víi a > b
Ra : ¦CLN cña a vμ b.
(1) While b ≠ 0 do
r ← a mod b, a ← b, b ← r

(2) Return (a).

1.2.4. §Þnh lý 1.4

ThuËt to¸n trªn cã thêi gian ch¹y chõng 0 ( (lg n ) ) c¸c phÐp
2

to¸n bit.
VÝ dô: Sau ®©y lμ c¸c b−íc chia cña thuËt to¸n trªn khi tÝnh:
(4864, 3458 ) = 38
4864 = 1.3458 + 1406
3458 = 2.1406 + 646
1406 = 2.646 + 76
646 = 5.114 + 38
76 = 2.38 + 0
14 Gi¸o tr×nh MËt m· häc

ThuËt to¸n trªn cã thÓ ®−îc më réng ®Ó kh«ng nh÷ng chØ


tÝnh ®−îc ¦CLN cña 2 sè nguyªn a vμ b mμ cßn tÝnh ®−îc c¸c sè
nguyªn x vμ y tho¶ m·n ax + by = d .

1.2.5. ThuËt to¸n Euclide më réng


Vμo : Hai sè nguyªn kh«ng ©m a vμ b víi a ≥ b
Ra : d = ¦CLN(a,b) vμ c¸c sè nguyªn x vμ y tháa m·n
ax + by = d .
(1) NÕu b= 0 th× ®Æt d ← a , x ← 1 , y ← 0 vμ return (d, x, y)
(2) §Æt x 2 ← 1, x1 ← 0, y 2 ← 0 , y1 ← 1
(3) While b > 0 do
(3.1) q ← ⎣a / b⎦ , r ← a − qb , x ← x 2 − qx1 , y ← y 2 − qy1

(3.2) a ← b, b ← r, x 2 ← x1 , x1 ← x, y 2 ← y1 , y1 ← y
(4) §Æt d ← a, x ← x 2 , y ← y 2 vμ vμ return (d, x, y).

1.2.6. §Þnh lý 1.5


ThuËt to¸n trªn cã thêi gian ch¹y cì 0((lgn)2) c¸c phÐp to¸n bit.
VÝ dô: B¶ng 1.2 sau chØ ra c¸c b−íc cña thuËt to¸n trªn víi
c¸c gi¸ trÞ vμo a = 4864 vμ b = 3458
B¶ng 1.2: ThuËt to¸n Euclide më réng
Q r x y a b x2 x1 y2 y1

− − − − 4864 3458 1 0 0 1

1 1406 1 −1 3458 1406 0 1 1 −1


2 646 −2 3 1406 646 1 −2 −1 3

2 114 5 −7 646 114 −2 5 3 7

5 76 −27 38 114 76 5 −27 −7 38

1 38 32 −45 76 38 −27 32 38 −45


2 0 −91 128 38 0 32 −91 −45 128
Ch−¬ng 1: Bæ tóc vÒ lý thuyÕt sè 15

Víi c¸c ®Çu vμo a = 4864 vμ b = 3458


Bëi vËy ta cã:
¦CLN(4864,3458) = 38 vμ (4864)(32) + (3458)(-45) = 38.

1.3. C¸c sè nguyªn modulo n

1.3.1. §Þnh nghÜa 1.9


NÕu a vμ b lμ c¸c sè nguyªn th× a ®−îc gäi lμ ®ång d− víi b
theo modulo (ký hiÖu lμ a = b mod n) nÕu n (a − b) .

Sè nguyªn n ®−îc gäi lμ modulo ®ång d−.


VÝ dô: 24 ≡ 9 mod 5 v× 24 – 9 = 3.5
− 11 ≡ 17 mod 7 v× − 11 − 17 = −4.7 .

1.3.2. C¸c tÝnh chÊt


§èi víi a, a1 , b, b1 , c ∈ Ζ ta cã:

(1) a ≡ b(mod n ) nÕu vμ chØ nÕu a vμ b còng cã phÇn d− khi


chia cho n.
(2) TÝnh ph¶n x¹: a ≡ a(mod n ) .

(3) TÝnh ®èi xøng: NÕu a ≡ b(mod n ) th× b ≡ a(mod n )

(4) TÝnh b¾c cÇu: NÕu a ≡ b(mod n ) vμ b ≡ c(mod n )


th× a ≡ c(mod n )

(5) NÕu a ≡ a1 (mod n ) vμ b ≡ b1 (mod n ) th×


a + b ≡ a1 + b1 (mod n ) vμ a.b ≡ a1 .b1 (mod n )

Líp t−¬ng ®−¬ng cña mét sè nguyªn a lμ tËp c¸c sè nguyªn


®ång d− víi a modulo n. Tõ c¸c tÝnh chÊt (2), (3) vμ (5) ë trªn ta cã
thÓ thÊy r»ng ®èi víi n cè ®Þnh, quan hÖ ®ång d− theo modulo n sÏ
ph©n ho¹ch Z thμnh c¸c líp t−¬ng ®−¬ng.
16 Gi¸o tr×nh MËt m· häc

NÕu a = qn + r víi 0 ≤ r ≤ n th× a ≡ r(mod n ) .

Bëi vËy mçi sè nguyªn a lμ ®ång d− theo modulo n víi mét sè


nguyªn duy nhÊt n»m trong kho¶ng tõ 0 tíi n - 1, sè nμy ®−îc gäi
lμ thÆng d− tèi thiÓu cña a mod n. Nh− vËy a vμ r cã thÓ ®−îc
dïng ®Ó biÓu thÞ cho líp t−¬ng ®−¬ng nμy.

1.3.3. §Þnh nghÜa 1.10


C¸c sè nguyªn modulo n (ký hiÖu Zn) lμ tËp (c¸c líp t−¬ng
®−¬ng) cña c¸c sè nguyªn {0,1, 2,K, n − 1}. C¸c phÐp céng, trõ, nh©n
trong Zn ®−îc thùc hiÖn theo modulo n.
VÝ dô: Z25 = {0,1,K, 24}. Trong Z 25 ta cã:

13 + 16 = 4 v× 13 + 16 = 29 ≡ 4 (mod 25 )

T−¬ng tù 13.16 = 8 trong Z25.

1.3.4. §Þnh nghÜa 1.11 (PhÇn tö nghÞch ®¶o)


Cho a ∈ Z n , PhÇn tö nghÞch ®¶o (ng−îc theo phÐp nh©n) cña
a mod n lμ mét sè nguyªn x ∈ Z n sao cho: ax ≡ 1(mod n )

NÕu x tån t¹i th× nã lμ duy nhÊt, a ®−îc gäi lμ kh¶ nghÞch.
PhÇn tö nghÞch ®¶o cña a ®−îc ký hiÖu lμ a−1.

1.3.5. §Þnh nghÜa 1.12


PhÐp chia cña a cho b mod n lμ tÝch cña a vμ b−1 mod n tÝch
nμy ®−îc x¸c ®Þnh nÕu b lμ phÇn tö kh¶ nghÞch

1.3.6. §Þnh lý 1.6


Cho a ∈ Z n , khi ®ã a lμ kh¶ nghÞch nÕu vμ chØ nÕu: (a, n ) = 1

VÝ dô: C¸c phÇn tö kh¶ nghÞch trong Z9 lμ 1, 2, 3, 4, 5, 7 vμ 8.


Ch¼ng h¹n 4 − 1 = 7 v× 4 . 7 ≡ 1 (mod 9 ) .
Ch−¬ng 1: Bæ tóc vÒ lý thuyÕt sè 17

1.3.7. §Þnh lý 1.7


Cho d = (a,n). Ph−¬ng tr×nh ®ång d− ax ≡ b(mod n ) cã nghiÖm
x nÕu vμ chØ nÕu d b , trong tr−êng hîp nμy cã ®óng d nghiÖm n»m
gi÷a 0 vμ n - 1, nh÷ng nghiÖm nμy lμ tÊt c¶ c¸c ®ång d− theo
modulo n d .

1.3.8. §Þnh lý 1.8 (PhÇn d− China)


NÕu c¸c sè nguyªn n1 , n 2 ,K, n k lμ nguyªn tè cïng nhau tõng
®«i mét th× hÖ c¸c ph−¬ng tr×nh ®ång d−:

x ≡ a 1 (mod n 1 )
x ≡ a 2 (mod n 2 )
.......... .......... ....
x ≡ a k (mod n k )

sÏ cã nghiÖm duy nhÊt theo modulo n (n = n 1 . n 2 K n k ) .

1.3.9. ThuËt to¸n Gausse


NghiÖm x cña hÖ ph−¬ng tr×nh ®ång d− trong ®Þnh lý phÇn
d− China cã thÓ ®−îc tÝnh b»ng:
k
x= ∑a N M
i =1
i i i mod n

Trong ®ã: N i = n / n i vμ M i = N i− 1 mod n i

C¸c tÝnh to¸n nμy cã thÓ ®−îc thùc hiÖn trong 0 ( (lg n ) ) c¸c
2

phÐp to¸n trªn bit.


VÝ dô: CÆp ph−¬ng tr×nh ®ång d− x ≡ 3 (mod 7 ), x ≡ 7 (mod 13 )
cã nghiÖm duy nhÊt x ≡ 59 (mod 91 ) .
18 Gi¸o tr×nh MËt m· häc

1.3.10. §Þnh lý 1.9


NÕu (n1 , n 2 ) = 1 th× cÆp ph−¬ng tr×nh ®ång d−.

x ≡ a (mod n 1 ) , x ≡ a (mod n 2 )

cã mét nghiÖm duy nhÊt x ≡ a (mod n 1 , n 2 ) .

1.3.11. §Þnh nghÜa 1.13

Nhãm nh©n cña Z n lμ Z *n = {a ∈ Z n (a, n ) = 1}

§Æc biÖt, nÕu n lμ sè nguyªn tè th× Z *n = {a 1 ≤ a ≤ n − 1}.

1.3.12. §Þnh nghÜa 1.14

CÊp cña Z *n lμ sè c¸c phÇn tö trong Z *n (ký hiÖu Z *n )

Theo ®Þnh nghÜa cña hμm Phi-Euler ta thÊy:

Z *n = Φ(n )

CÇn ®Ó ý r»ng nÕu a ∈ Z *n vμ b ∈ Z *n th× a, b ∈ Z *n vμ bëi vËy

Z *n lμ ®ãng ®èi víi phÐp nh©n.

1.3.13. §Þnh lý 1.10


Cho p lμ mét sè nguyªn tè:

(1) §Þnh lý Euler: NÕu a ∈ Z *n th× a Φ (n ) ≡ 1 (mod n ) .

(2) NÕu n lμ tÝch cña c¸c sè nguyªn kh¸c nhau vμ nÕu


r ≡ s (mod Φ (n )) th× a r ≡ as (mod n ) ®èi víi mäi sè nguyªn a. Nãi
mét c¸ch kh¸c khi lμm viÖc víi modulo n th× c¸c sè mò cã thÓ ®−îc
rót gän theo modulo Φ(n ).
Ch−¬ng 1: Bæ tóc vÒ lý thuyÕt sè 19

1.3.14. §Þnh lý 1.11


Cho p lμ mét sè nguyªn tè:

(1) §Þnh lý Ferma: NÕu (a, p) = 1 th× a p −1 ≡ 1 (mod p ) .

(2) NÕu r ≡ s (mod p − 1 ) th× a r ≡ a s (mod p ) ®èi víi mäi sè


nguyªn a. Nãi mét c¸ch kh¸c khi lμm viÖc víi modulo cña mét sè
nguyªn tè p th× c¸c luü thõa cã thÓ ®−îc rót gän theo modulo p - 1.

(3) §Æc biÖt a p ≡ a (mod p ) víi mäi sè nguyªn a.

1.3.15. §Þnh nghÜa 1.15

Cho a ∈ Z *n . CÊp cña a (ký hiÖu lμ ord(a ) ) lμ sè nguyªn d−¬ng

nhá nhÊt t sao cho a t ≡ 1 (mod n ) .

1.3.16. §Þnh nghÜa 1.16

Cho a ∈ Z *n , ord(a ) = t vμ a s ≡ 1 (mod n ) khi ®ã t lμ −íc cña


s. §Æc biÖt t Φ (n ) .

VÝ dô: Cho n = 21, khi ®ã


Z *21 = {1, 2, 4 , 5, 8 , 10 , 11 , 13 , 16 , 17 , 19 , 20 }

Chó ý r»ng Φ (21 ) = Φ (7 ) Φ (3 ) = 12 = Z *21 . CÊp cña c¸c

phÇn tö trong Z *21 ®−îc nªu trong b¶ng sau:

B¶ng 13: CÊp cña c¸c phÇn tö trong Z *21

a ∈ Z 21
* 1 2 4 5 8 10 11 13 16 17 19 20

Ord(a) 1 6 3 6 2 6 6 2 3 6 6 2
20 Gi¸o tr×nh MËt m· häc

1.3.17. §Þnh nghÜa 1.17

Cho α ∈ Z *n . NÕu cÊp cña α lμ Φ(n ) th× α ®−îc gäi lμ phÇn

tö sinh hay phÇn tö nguyªn thñy cña Z *n . NÕu Z *n cã mét phÇn tö

sinh th× Z *n ®−îc gäi lμ cyclic.

1.3.18. C¸c tÝnh chÊt cña c¸c phÇn tö sinh cña Z*n

(1) Z*n cã phÇn tö sinh nÕu vμ chØ nÕu n = 2, 4, p k hoÆc lμ

2p k , trong ®ã p lμ mét sè nguyªn tè lÎ vμ k ≥ 1 . §Æc biÖt, nÕu p lμ


*
mét sè nguyªn tè th× Z n cã phÇn tö sinh.

*
(2) NÕu α lμ mét phÇn tö sinh cña Z n th×:

Z *n = { α i mod n 0 ≤ i ≤ Φ(n ) − 1 }

(3) Gi¶ sö r»ng α lμ mét phÇn tö sinh cña Z*n , khi ®ã

b = α i mod n còng lμ mét phÇn tö sinh cña Z*n nÕu vμ chØ nÕu

(i, Φ(n )) = 1 . Tõ ®ã ta rót ra r»ng nÕu Z*n lμ cyclic th× sè c¸c phÇn
tö sinh lμ Φ(Φ(n )) .

(4) α ∈ Zn lμ mét phÇn tö sinh cña Z n nÕu vμ chØ nÕu


* *

α Φ (n ) / p ≠ 1(mod n ) ®èi víi mçi nguyªn tè p cña Φ(n ) .

VÝ dô: Z*21 kh«ng lμ cyclic v× nã kh«ng chøa mét phÇn tö cã


cÊp Φ(21) = 12 (Chó ý r»ng 21 kh«ng tháa m·n ®iÒu kiÖn (1) ë trªn).

Z *25 lμ cyclic vμ cã mét phÇn tö sinh α = 2 .


Ch−¬ng 1: Bæ tóc vÒ lý thuyÕt sè 21

1.3.19. §Þnh nghÜa 1.18


Cho a ∈ Z*n , a ®−îc gäi lμ thÆng d− bËc hai modulo n (hay
b×nh ph−¬ng cña modulo n) nÕu tån t¹i x ∈ Z*n sao cho
x 2 ≡ a(mod n ) . NÕu kh«ng tån t¹i x nh− vËy th× a ®−îc gäi lμ thÆng
d− kh«ng bËc hai mod n. TËp tÊt c¶ c¸c thÆng d− bËc hai modulo
n ®−îc ký hiÖu lμ Qn, cßn tËp tÊt c¶ c¸c thÆng d− kh«ng bËc hai
®−îc ký hiÖu lμ Q n . CÇn chó ý r»ng theo ®Þnh nghÜa 0 ∉ Z*n . Bëi
vËy 0 ∉ Q n vμ 0 ∉ Qn .

1.3.20. §Þnh lý 1.12


Cho p lμ mét sè nguyªn tè lÎ vμ α lμ mét phÇn tö sinh cña
Z*p . Khi ®ã a ∈ Z*p lμ mét thÆng d− bËc hai modulo p nÕu vμ chØ

nÕu a = α i mod p , trong ®ã i lμ mét sè nguyªn ch½n. Tõ ®ã rót ra

r»ng Q p =
(p − 1) vμ Q p =
(p − 1) , tøc lμ mét nöa sè phÇn tö trong
2 2
Z*p lμ c¸c thÆng d− bËc hai vμ nöa cßn l¹i thÆng d− kh«ng bËc hai.
*
VÝ dô: α = 6 lμ mét phÇn tö sinh cña Z13 . C¸c lòy thõa cña
α ®−îc liÖt kª ë b¶ng sau:
i 0 1 2 3 4 5 6 7 8 9 10 11

αi mod 13 1 6 10 8 9 2 12 7 3 5 4 11

Bëi vËy Q13 = { 1, 3, 4, 9, 10,12 }, Q13 = { 2, 5, 6, 7, 8,11 } .

1.3.21. §Þnh lý 1.13


Cho n lμ tÝch cña hai sè nguyªn tè lÎ kh¸c nhau q vμ p,
n = p.q, khi ®ã a ∈ Z*n lμ mét thÆng d− bËc hai modulo n nÕu vμ chØ

nÕu a ∈ Q p vμ a ∈ Q p . §iÒu ®ã dÉn tíi Q n = Q q . Q p =


(p − 1)(q − 1)
4
22 Gi¸o tr×nh MËt m· häc

3(p − 1)(q − 1)
vµ Qn =
4
VÝ dô: Cho n = 21. Khi ®ã
Q 21 = { 1, 4,16 } Q 21 = {2,5, 8,10,11,13,17,19, 20}

1.3.22. §Þnh nghÜa 1.19

Cho a ∈ Q n . NÕu x ∈ Z*n tháa m·n x 2 ≡ a(mod n ) th× x ®−îc gäi


lμ c¨n bËc hai cña a mod n.

1.3.23. §Þnh lý 1.14 (Sè c¸c c¨n bËc hai)


(1) NÕu p lμ mét sè nguyªn tè lÎ vμ a ∈ Q n th× a ®−îc gäi lμ
c¨n bËc hai theo modulo p.

(2) Tæng qu¸t h¬n, cho n = p1e1 pe22 K pekk , trong ®ã pi lμ c¸c sè
nguyªn tè lÎ ph©n biÖt vμ e i ≥ 1 . NÕu a ∈ Q n th× cã ®óng 2k c¨n bËc
hai kh¸c nhau theo modulo n.
VÝ dô: C¸c c¨n bËc 2 cña 12 mod 37 lμ 7 vμ 30. C¸c c¨n bËc 2
cña 121 mod 315 lμ 11, 74, 101, 151, 164, 214, 241 vμ 304.

1.4. C¸c thuËt to¸n trong Zn

Cho n lμ mét sè nguyªn d−¬ng. C¸c phÇn tö cña Zn sÏ ®−îc


biÓu thÞ bëi c¸c sè nguyªn Q 21 = {0,1, 2,..., n − 1}.

Ta thÊy r»ng, nÕu a, b ∈ Z n th×


a+b a+b<n
(a + b)mod n = ⎧⎨
⎩a + b − r a+b≥n

Bëi vËy phÐp céng (vμ trõ) theo modulo cã thÓ thùc hiÖn ®−îc
mμ kh«ng cÇn phÐp chia dμi. PhÐp nh©n modulo cña a vμ b cã thÓ
®−îc thùc hiÖn b»ng c¸ch nh©n c¸c sè nguyªn th«ng th−êng råi lÊy
Ch−¬ng 1: Bæ tóc vÒ lý thuyÕt sè 23

phÇn d− cña kÕt qu¶ sau khi chia cho n. C¸c phÇn tö nghÞch ®¶o
trong Zn cã thÓ ®−îc tÝnh b»ng c¸ch dïng thuËt to¸n Euclide më
réng ®−îc m« t¶ d−íi ®©y:

1.4.1. ThuËt to¸n (TÝnh c¸c nghÞch ®¶o trong Zn)


Vμo : a ∈ Zn .

Ra : a −1 mod n (nÕu tån t¹i).


(1) Dïng thuËt to¸n Euclide më réng ®Ó t×m c¸c sè nguyªn x
vμ y sao cho ax + ny = d trong ®ã d = (a,n).
(2) NÕu d > 1 th× a−1 mod n kh«ng tån t¹i. Ng−îc l¹i return (x).
PhÐp lòy thõa theo modulo cã thÓ ®−îc thùc hiÖn cã hiÖu qu¶
b»ng thuËt to¸n nh©n vμ b×nh ph−¬ng cã lÆp. §©y lμ mét thuËt
to¸n rÊt quan träng trong nhiÒu thñ tôc mËt m·. Cho biÓu diÔn
nhÞ ph©n cña k lμ:
t


i =0
k i 2 i trong ®ã mçi k i ∈ {0,1} khi ®ã

a k 2 i = (a 2 ) (a ) K (a )
t


0 k0 k1 kt
21 2t
a =
k i

i =0

1.4.2. ThuËt to¸n nh©n vμ b×nh ph−¬ng cã lÆp ®Ó lÊy luü


thõa trong Zn

Vμo: a ∈ Z n vμ sè nguyªn k, (0 ≤ k < n ) cã biÓu diÔn nhÞ ph©n:


t
k= ∑
i =0
k i 2i

Ra: ak mod n.
(1) §Æt b ← 1 . NÕu k = 0 th× return (b).
(2) §Æt A ← a .
24 Gi¸o tr×nh MËt m· häc

(3) NÕu k0 = 1 th× ®Æt b ← a .


(4) For i from 1 to t do
(4.1) §Æt A ← A 2 mod n
(4.2) NÕu k i = 1 th× ®Æt b ← A.b mod n
(5) Return (b).
VÝ dô: B¶ng 1.4 sau chØ ra c¸c b−íc tÝnh to¸n
5596 mod 1234 = 1013

B¶ng 1.4: TÝnh 5596 mod 1234


i 0 1 2 3 4 5 6 7 8 9

ki 0 0 1 0 1 0 1 0 0 1

A 5 25 625 681 1011 369 421 779 947 925

b 1 1 625 625 67 67 1059 1059 1059 1013

Sè c¸c phÐp to¸n bit ®èi víi phÐp to¸n c¬ b¶n trong Zn ®−îc
tãm l−îc trong b¶ng 1.5.
B¶ng 1.5: §é phøc t¹p bit cña c¸c phÐp to¸n c¬ b¶n trong Zn
PhÐp to¸n §é phøc t¹p bit

Céng modulo a+b 0(lgn)

Trõ modulo a-b 0(lgn)

Nh©n modulo a.b 0((lgn)2)

NghÞch ®¶o modulo a-1 mod n 0((lgn)2)

Lòy thõa modulo ak mod n, k < n 0((lgn)3)

1.5. c¸c ký hiÖu legendre vμ jacobi

Ký hiÖu Legendre lμ mét c«ng cô h÷u Ých ®Ó xem xÐt liÖu mét
sè nguyªn a cã lμ mét thÆng d− bËc hai theo modulo cña mét sè
nguyªn tè p hay kh«ng?
Ch−¬ng 1: Bæ tóc vÒ lý thuyÕt sè 25

1.5.1. §Þnh nghÜa 1.20


Cho p lμ mét sè nguyªn tè lÎ vμ a lμ mét sè nguyªn. Ký hiÖu
⎛a⎞
legendre ⎜⎜ ⎟⎟ ®−îc x¸c ®Þnh nh− sau:
⎝p⎠
⎧0 p a
⎛ a ⎞ ⎪⎪
⎜ ⎟ = ⎨1 a ∈ Qp
⎝p⎠ ⎪
⎪⎩− 1 a ∈ Qp

1.5.2. C¸c tÝnh chÊt cña ký hiÖu Legendre


Cho p lμ mét sè nguyªn tè lÎ vμ a, b ∈ Z . Khi ®ã ký hiÖu
Legendre cã c¸c tÝnh chÊt sau:
⎛a⎞ ⎛1⎞ ⎛ 1⎞
(1) ⎜⎜ ⎟⎟ ≡ a (p−1 ) / 2 (mod p ) . §Æc biÖt ⎜⎜ ⎟⎟ = 1 vμ ⎜⎜ − ⎟⎟ = (− 1)(p−1 ) / 2
⎝p⎠ ⎝p⎠ ⎝ p⎠
Bëi vËy − 1 ∈ Q p nÕu p ≡ 1(mod 4 ) vμ − 1 ∈ Q p nÕu p ≡ 3(mod 4 )

⎛ a.b ⎞ ⎛ a ⎞ ⎛ b ⎞ ⎛ a2 ⎞
(2) ⎜⎜ ⎟⎟ ≡ ⎜⎜ ⎟⎟ . ⎜⎜ ⎟⎟ . Bëi vËy nÕu a ∈ Z *p th× ⎜⎜ ⎟⎟ = 1 .
⎝ p ⎠ ⎝p⎠ ⎝p⎠ ⎝ p ⎠

⎛a⎞ ⎛ b⎞
(3) NÕu a ≡ b(mod p ) th× ⎜⎜ ⎟⎟ = ⎜⎜ ⎟⎟ .
⎝p⎠ ⎝p⎠

(4) ⎜⎜ ⎟⎟ = (− 1)(p −1)/ 8 . Bëi vËy ⎜⎜ ⎟⎟ = 1 nÕu p ≡ 1 hoÆc 7(mod 8)


⎛2⎞ 2 ⎛2⎞
⎝p⎠ ⎝p⎠
⎛2⎞
vμ ⎜⎜ ⎟⎟ = −1 nÕu p ≡ 3 hoÆc 5(mod 8).
⎝p⎠

(5) LuËt thuËn nghÞch bËc 2:


Gi¶ sö p lμ mét sè nguyªn tè lÎ kh¸c víi q, khi ®ã:
⎛p⎞ ⎛q⎞ (p−1 )(q −1) / 4
⎜⎜ ⎟⎟ = ⎜⎜ ⎟⎟ (− 1)
⎝q⎠ ⎝p⎠
26 Gi¸o tr×nh MËt m· häc

⎛p⎞ ⎛q⎞
Nãi mét c¸ch kh¸c ⎜⎜ ⎟⎟ = ⎜⎜ ⎟⎟ trõ phi c¶ p vμ q lμ ®ång d− víi
⎝q⎠ ⎝p⎠
⎛p⎞ ⎛q⎞
3(mod 4), trong tr−êng hîp nμy ⎜⎜ ⎟⎟ = − ⎜⎜ ⎟⎟ .
⎝q⎠ ⎝p⎠

DÊu hiÖu Jacobi lμ tæng qu¸t ho¸ cña ký hiÖu Legendre ®èi
víi c¸c sè nguyªn lÎ n kh«ng nhÊt thiÕt lμ mét sè nguyªn tè.

1.5.3. §Þnh nghÜa 1.21


Cho n ≥ 3 lμ c¸c sè nguyªn tè lÎ cã ph©n tÝch:

⎛a⎞
n = p1e1 . p e22 K p ekk . Khi ®ã ký hiÖu Jacobi ⎜ ⎟ ®−îc ®Þnh nghÜa
⎝n⎠
e1 e ek
⎛a⎞ ⎛ a ⎞ ⎛ a ⎞ 2 ⎛ a ⎞
lμ: ⎜ ⎟ = ⎜⎜ ⎟⎟ ⎜⎜ ⎟⎟ K ⎜⎜ ⎟⎟
⎝ n ⎠ ⎝ p1 ⎠ ⎝ p2 ⎠ ⎝ k⎠
p

Ta thÊy r»ng nÕu n lμ mét sè nguyªn tè th× ký hiÖu Jacobi


chÝnh lμ ký hiÖu Legendre.

1.5.4. C¸c tÝnh chÊt cña ký hiÖu Jacobi


Cho n ≥ 3 lμ c¸c sè nguyªn tè lÎ a, b ∈ Z . Khi ®ã ký hiÖu
Jacobi cã c¸c tÝnh chÊt sau:

⎛a⎞ ⎛a⎞
(1) ⎜ ⎟ = 0,1 hoÆc -1. H¬n n÷a ⎜ ⎟ = 0 nÕu vμ chØ nÕu
⎝n⎠ ⎝n⎠
¦CLN(a,n) ≠ 1.

⎛ a.b ⎞ ⎛ a ⎞ ⎛ b ⎞ ⎛ a2 ⎞
⎟ ≡ ⎜ ⎟ . ⎜ ⎟ . Bëi vËy a ∈ Z n th× ⎜⎜ ⎟⎟ = 1 .
*
(2) ⎜
⎝ n ⎠ ⎝n⎠ ⎝n⎠ ⎝ n ⎠

⎛ a ⎞ ⎛ a ⎞ ⎛a⎞
(3) ⎜⎜ ⎟⎟ ≡ ⎜ ⎟ . ⎜ ⎟ .
⎝ m.n ⎠ ⎝ m ⎠ ⎝ n ⎠
Ch−¬ng 1: Bæ tóc vÒ lý thuyÕt sè 27

⎛a⎞ ⎛b⎞
(4) NÕu a ≡ b(mod n) th× ⎜ ⎟ = ⎜ ⎟ .
⎝n⎠ ⎝n⎠

⎛1⎞
(5) ⎜ ⎟ = 1 .
⎝n⎠

⎛ 1⎞ ⎛ 1⎞
(6) ⎜ − ⎟ = (− 1)(n −1) / 2 . Bëi vËy ⎜ − ⎟ = 1 nÕu n ≡ 1(mod 4 )
⎝ n⎠ ⎝ n⎠

⎛ 1⎞
⎜ − ⎟ = − 1 nÕu n ≡ 3(mod 4 )
⎝ n⎠

(7) ⎜ ⎟ = (− 1)(n −1)/ 8 . Bëi vËy ⎜ ⎟ = 1 nÕu n ≡ 1 hoÆc 7(mod 8 )


⎛2⎞ 2 ⎛2⎞
⎝n⎠ ⎝n⎠

⎛2⎞
⎜ ⎟ = − 1 nÕu n ≡ 3 hoÆc 5(mod 8 )
⎝n⎠

⎛m⎞ ⎛ n ⎞
(8) ⎜ ⎟ = ⎜ ⎟ (− 1)(m −1)(n −1) / 4
⎝ n ⎠ ⎝m⎠

⎛m⎞ ⎛ n ⎞
Nãi mét c¸ch kh¸c ⎜ ⎟ = ⎜ ⎟ trõ phi c¶ hai sè m vμ n ®Òu
⎝ n ⎠ ⎝m⎠
⎛m⎞ ⎛n⎞
®ång d− víi 3(mod 4 ) , trong tr−êng hîp nμy ⎜ ⎟ = − ⎜ ⎟ .
⎝n⎠ ⎝m⎠

Tõ c¸c tÝnh chÊt cña ký hiÖu Jacobi ta thÊy r»ng n lÎ vμ a =


2ea1 trong ®ã a1 lμ mét sè lÎ th×:

⎛ a ⎞ ⎛⎜ 2 ⎞ ⎛ a1 ⎞ ⎛ 2 ⎞ e ⎛ n mod a1 ⎞
e
⎜ ⎟=⎜ ⎟⎜ ⎟ = ⎜ ⎟ ⎜ ⎟⎟ (− 1)(a1 −1)(n −1) / 4
⎝n⎠ ⎝ n ⎟⎝ n ⎠ ⎝ n ⎠ ⎜
⎠ ⎝ a1 ⎠

Tõ c«ng thøc nμy ta cã thÓ x©y dùng thuËt to¸n ®Ö quy sau
⎛a⎞
®Ó tÝnh ⎜ ⎟ mμ kh«ng cÇn ph¶i ph©n tÝch n ra c¸c thõa sè nguyªn tè.
⎝n⎠
28 Gi¸o tr×nh MËt m· häc

1.5.5. ThuËt to¸n tÝnh to¸n ký hiÖu Jacobi (vμ ký hiÖu


Legendre)
Jacobi (a, n)
Vμo : Sè nguyªn lÎ n ≥ 3 , sè nguyªn a, (0 ≤ a ≤ n )

⎛a⎞
Ra : Ký hiÖu Jacobi ⎜ ⎟ (SÏ lμ ký hiÖu Legendre khi n lμ sè
⎝n⎠
nguyªn tè)
(1) NÕu a = 0 th× return (0)
(2) NÕu a = 1 th× return (1)
(3) ViÕt a = 2ea1, trong ®ã a1 lμ mét sè lÎ
(4) NÕu e ch½n th× ®Æt s ← 1 . Ng−îc l¹i h·y ®Æt s ← 1 nÕu
n = 1 hoÆc 7(mod 8)
(5) NÕu n ≡ 3(mod 4 ) vμ a1 ≡ 3(mod 4 ) th× ®Æt s ← −s

(6) §Æt r1 ← n mod a1

(7) Return (s.JACOBI(n1 , a1 ))

ThuËt to¸n trªn cã thêi gian ch¹y chõng 0 ( (lg n ) ) c¸c phÐp
2

to¸n bit.

1.5.6. NhËn xÐt (t×m c¸c thÆng d− bËc hai theo modulo cña
sè nguyªn tè p)
Cho p lμ mét sè nguyªn tè lÎ. MÆc dï ®· biÕt r»ng mét nöa
*
c¸c phÇn tö trong Z p lμ c¸c thÆng d− kh«ng bËc hai theo modulo
p nh−ng kh«ng cã mét thuËt to¸n x¸c ®Þnh theo thêi gian ®a thøc
nμo ®−îc biÕt ®Ó t×m.
Mét thuËt to¸n ngÉu nhiªn t×m mét thÆng d− kh«ng bËc hai
lμ chän ngÉu nhiªn c¸c sè nguyªn a ∈ Z *p cho tíi khi sè ®ã tháa
Ch−¬ng 1: Bæ tóc vÒ lý thuyÕt sè 29

⎛a⎞
m·n ⎜⎜ ⎟⎟ = − 1 . PhÐp lÆp ®èi víi sè ®−îc chän tr−íc khi t×m ®−îc
⎝p⎠
mét thÆng d− bËc hai lμ 2 vμ bëi vËy thuËt to¸n ®−îc thùc hiÖn
theo thêi gian ®a thøc.

1.5.7. VÝ dô tÝnh to¸n ký hiÖu Jacobi


⎛ 158 ⎞
Cho a = 158 vμ n = 235. ThuËt to¸n trªn tÝnh ⎜ ⎟ nh− sau:
⎝ 235 ⎠
⎛ 158 ⎞ ⎛ 2 ⎞ ⎛ 79 ⎞ ⎛ 235 ⎞ ⎛ 77 ⎞
⎟ = (− 1)⎜ ⎟ (− 1)
78 . 234 / 4
⎜ ⎟=⎜ ⎟⎜ =⎜ ⎟
⎝ 235 ⎠ ⎝ 235 ⎠ ⎝ 235 ⎠ ⎝ 79 ⎠ ⎝ 79 ⎠
⎛ 77 ⎞ ⎛ 2 ⎞
= ⎜ ⎟ (− 1)
76 . 78 / 4
= ⎜ ⎟ = −1
⎝ 79 ⎠ ⎝ 77 ⎠

⎛a⎞
Kh¸c víi ký hiÖu Legendre, ký hiÖu Jacobi ⎜ ⎟ kh«ng cho
⎝n⎠
biÕt liÖu a cã ph¶i lμ mét thÆng d− bËc 2 theo modulo n hay kh«ng.
⎛a⎞ ⎛a⎞
Sù thùc lμ nÕu a ∈ Q n th× ⎜ ⎟ = 1 . Tuy nhiªn ⎜ ⎟ = 1 th× kh«ng cã
⎝n⎠ ⎝n⎠
nghÜa lμ a ∈ Q n .

1.5.8. VÝ dô (C¸c thÆng d− bËc 2 vμ kh«ng bËc 2)

B¶ng 1.6: C¸c ký hiÖu Jacobi cña c¸c phÇn tö trong Z*21
a ∈ Z 21
* 1 2 4 5 8 10 11 13 16 17 19 20

a2 mod n 1 4 16 4 1 16 16 1 4 16 4 1

⎛a⎞ 1 −1 1 −1 −1 1 −1 1 1 −1 1 −1
⎜ ⎟
⎝3⎠

⎛a⎞ 1 1 1 −1 1 −1 1 −1 1 −1 −1 −1
⎜ ⎟
⎝7⎠

⎛ a ⎞ 1 −1 1 1 −1 −1 −1 −1 1 1 −1 −1
⎜ ⎟
⎝ 21 ⎠
30 Gi¸o tr×nh MËt m· häc

*
B¶ng 1.6 liÖt kª c¸c phÇn tö trong Z 21 vμ c¸c ký hiÖu Jacobi
cña chóng. Tõ vÝ dô trong phÇn c ta cã Q 21 = { 1, 4,16 } . Ta thÊy

⎛ 5 ⎞
r»ng ⎜ ⎟ = 1 nh−ng 5 ∉ Q 21 .
⎝ 21 ⎠

1.5.9. §Þnh nghÜa 1.22

⎧ ⎛a⎞ ⎫
Cho n ≥ 3 lμ c¸c sè nguyªn tè lÎ vμ cho J n = ⎨a ∈ Z *n ⎜ ⎟ = 1⎬
⎩ ⎝n⎠ ⎭

tËp c¸c thÆng d− gi¶ bËc 3 theo modulo n (Ký hiÖu Q̂ n ) ®−îc ®Þnh
nghÜa lμ tËp J n − Q n .

1.5.10. §Þnh lý 1.15


Cho n = p.q lμ tÝch cña hai sè nguyªn tè lÎ kh¸c nhau. Khi ®ã

Q n = Q n = (p − 1)(q − 1) / 4 tøc lμ mét nöa c¸c phÇn tö trong J n lμ


~

c¸c thÆng d− gi¶ bËc hai.

1.6. C¸c sè nguyªn blum

1.6.1. §Þnh nghÜa 1.23


Sè nguyªn Blum lμ mét hîp sè cã d¹ng n = p.q , trong ®ã p
vμ q lμ c¸c sè nguyªn tè kh¸c nhau vμ tháa m·n:
p ≡ 3 mod 4
q ≡ 3 mod 4

1.6.2. §Þnh lý 1.16


Cho n = p.q lμ mét sè nguyªn Blum vμ cho a ∈ Q n . Khi ®ã a
cã ®óng 4 c¨n bËc hai modulo n vμ chØ cã mét sè n»m trong Qn.
Ch−¬ng 1: Bæ tóc vÒ lý thuyÕt sè 31

1.6.3. §Þnh nghÜa 1.24


Cho n lμ mét sè nguyªn Blum vμ cho a ∈ Q n . C¨n bËc hai duy
nhÊt cña a n»m trong Qn ®−îc gäi lμ c¨n bËc hai chÝnh a mod n.

1.6.4. VÝ dô (Sè nguyªn Blum)


§èi víi sè nguyªn Blum n = 21. Ta cã J n = {1, 4, 5,16,17, 20 } vμ
~
Q n = {5,17, 20 } . Bèn c¨n bËc 2 cña a = 4 lμ 2, 5, 16 vμ 19, trong ®ã
chØ cã 16 lμ còng n»m trong Qn. Bëi vËy 16 lμ c¨n bËc 2 chÝnh cña
4 mod 21.

1.6.5. §Þnh lý 1.17


NÕu n = p.q lμ mét sè nguyªn Blum th× ¸nh x¹.
f : Q n → Q n ®−îc x¸c ®Þnh bëi f (x ) = x 2 mod n lμ mét phÐp
ho¸n vÞ.
¸nh x¹ ng−îc cña f lμ: f −1 (x ) = x ((p−1)(q −1)+4 / 8 ) mod n .

Bμi tËp
1. Sö dông thuËt to¸n Euclide më réng ®Ó t×m −íc chung lín
nhÊt cña hai sè a = 1573, b = 308.
2. H·y tÝnh 322 mod 23 b»ng c¸ch dïng thuËt to¸n nh©n vμ
b×nh ph−¬ng cã lÆp.
3. H·y tÝnh c¸c c¨n bËc hai cña 12 mod 37.
*
4. T×m tÊt c¶ c¸c phÇn tö nguyªn thñy cña nhãm nh©n Z19 .

5. T×m phÇn tö nghÞch ®¶o cña 3 trong Z*31 .

6. Víi m, n, s ∈ N vμ p i lμ c¸c sè nguyªn tè. H·y chøng minh


c¸c tÝnh chÊt sau cña hμm ϕ -Euler
32 Gi¸o tr×nh MËt m· häc

( ) ⎛ 1⎞
a. ϕ p s = ps ⎜ 1 − ⎟ .
⎝ p⎠
b. ϕ ( m, n ) = ϕ ( m ) ϕ ( n ) nÕu ¦CLN (m,n) = 1.

⎛ ⎞ ⎛ ⎞
c. ϕ ( n ) = m ⎜ 1 − 1 ⎟ ... ⎜ 1 − 1 ⎟ trong ®ã m = p1e1 ...p er1 lμ
⎝ p1 ⎠ ⎝ pr ⎠
ph©n tÝch cña m thμnh tÝch cña thõa sè nguyªn tè.
7. H·y tÝnh ϕ(490) vμ ϕ(768).
8. Gi¶i hÖ ph−¬ng tr×nh ®ång d− sau:
5x ≡ 20 mod 6
5x ≡ 6 mod 5
4x ≡ 5 mod 77.
9. H·y dïng thuËt to¸n Euclide më réng ®Ó tÝnh c¸c phÇn tö
nghÞch ®¶o sau:
a. 17−1 mod 101
b. 357−1 mod 1234
c. 3125−1 mod 9987.
10. Ta nghiªn cøu mét sè tÝnh chÊt cña c¸c phÇn tö
nguyªn thñy:
a. 97 lμ mét sè nguyªn tè. H·y chøng minh r»ng x ≠ 0 lμ mét
phÇn tö nguyªn thuû theo modulo 97 khi vμ chØ khi:
x32 ≡ 1 mod 97 vμ x48 ≡ 1 mod 97
b. H·y dïng ph−¬ng ph¸p nμy ®Ó t×m phÇn tö nguyªn thñy
nhá nhÊt theo modulo 97.
c. Gi¶ sö p lμ mét sè nguyªn tè vμ p − 1 cã ph©n tÝch ra lòy
thõa cña c¸c nguyªn tè sau:
Ch−¬ng 1: Bæ tóc vÒ lý thuyÕt sè 33

n
p − 1 = ∏ p eii
i =1

ë ®©y pi lμ c¸c sè nguyªn tè kh¸c nhau. H·y chøng tá r»ng


x ≠ 0 lμ mét phÇn tö nguyªn thñy theo modulo p khi vμ chØ khi
x(
p −1) p i
≠ 1mod p víi 1 ≤ i ≤ n .
®¹i sè trõu t−îng

2.1. Nhãm
2.1.1. PhÐp to¸n hai ng«i
§Þnh nghÜa 2.1: PhÐp to¸n hai ng«i * trªn tËp S lμ mét ¸nh
x¹ tõ SxS vμo S. Tøc lμ * lμ mét quy t¾c g¸n mçi cÆp ®−îc s¾p
c¸c phÇn tö trong S víi mét phÇn tö cña S.

2.1.2. §Þnh nghÜa nhãm


Nhãm (G, *) chøa tËp G lμ mét phÐp to¸n hai ng«i * trong G
tho¶ m·n ba tiªn ®Ò sau:
(1) PhÐp to¸n nhãm kÕt hîp. Tøc lμ:
a * (b * c ) = (a * b) * c ∀a, b, c ∈ G .
(2) Cã mét phÇn tö 1 ∈ G ®−îc gäi lμ phÇn tö ®¬n vÞ tháa m·n.
a *1 = 1 * a ∀a ∈ G

(3) Víi mçi a ∈ G , tån t¹i mét phÇn tö a −1 ∈ G ®−îc gäi lμ


ng−îc cña a sao cho a * a −1 = a −1 * a = 1
(4) Nhãm ®−îc gäi lμ giao ho¸n (hay nhãm Abel) nÕu
a*b = b*a ∀a, b, ∈ G
CÇn chó ý r»ng kh¸i niÖm nhãm nh©n ®· ®−îc sö dông cho
phÐp to¸n nhãm ë trªn. NÕu phÐp to¸n nhãm lμ phÐp céng th×
nhãm ®−îc gäi lμ nhãm céng, phÇn tö ®¬n vÞ cña nhãm nμy ®−îc
ký hiÖu lμ 0, cßn phÇn tö ng−îc cña a ®−îc ký hiÖu lμ −a.
36 Gi¸o tr×nh MËt m· häc

2.1.3. Nhãm h÷u h¹n

§Þnh nghÜa 2.2: Nhãm G h÷u h¹n nÕu G lμ h÷u h¹n. Sè c¸c
phÇn tö cña nhãm G ®−îc gäi lμ cÊp cña nhãm.

VÝ dô vÒ nhãm:
- TËp c¸c sè nguyªn Z víi phÐp to¸n céng sÏ t¹o nªn mét
nhãm. PhÇn tö ®¬n vÞ cña nhãm nμy lμ 0, phÇn tö ng−îc cña mét
sè nguyªn a lμ sè nguyªn −a.
- TËp Zn víi phÐp céng modulo n t¹o nªn mét nhãm cÊp n.
TËp Z n víi phÐp to¸n nh©n theo modulo n kh«ng ph¶i lμ mét
nhãm v× kh«ng ph¶i mäi phÇn tö cña nhãm ®Òu cã nghÞch ®¶o
(phÇn tö ng−îc cña phÐp nh©n). Tuy nhiªn tËp Z*n sÏ lμ mét
nhãm cÊp Φ(n ) víi phÐp to¸n nh©n theo modulo n vμ cã phÇn tö
®¬n vÞ lμ 1.

2.1.4. Nhãm con


§Þnh nghÜa 2.3: Mét tËp con kh«ng trèng H cña nhãm G ®−îc
gäi lμ mét nhãm con cña G nÕu H lμ mét nhãm víi phÐp to¸n
nhãm t−¬ng øng trong G. NÕu H lμ mét nhãm con cña G vμ H ≠ G
th× H ®−îc gäi lμ nhãm con thùc sù cña nhãm G.

2.1.5. Nhãm Xyclic


2.1.5.1. §Þnh nghÜa 2.4: Nhãm G ®−îc gäi lμ nhãm xyclic nÕu tån
t¹i mét phÇn tö α ∈ G sao cho víi mçi b ∈ G cã mét sè nguyªn i víi
b = α i . PhÇn tö α nh− vËy ®−îc gäi lμ phÇn tö sinh cña G.

2.1.5.2. §Þnh lý 2.1:


NÕu G lμ mét nhãm vμ a ∈ G th× tËp tÊt c¶ c¸c lòy thõa cña a
sÏ t¹o nªn mét nhãm con xyclic cña G. Nhãm nμy ®−îc gäi lμ nhãm
con sinh bëi a vμ ®−îc ký hiÖu lμ a .
Ch−¬ng 2: §¹i sè trõu t−îng 37

2.1.6. CÊp cña mét phÇn tö


2.1.6.1. §Þnh nghÜa 2.5
Cho G lμ mét nhãm vμ a ∈ G . CÊp cña a ®−îc x¸c ®Þnh b»ng
sè nguyªn d−¬ng t nhá nhÊt ®¶m b¶o at = 1. NÕu kh«ng tån t¹i t
nh− vËy th× cÊp cña a ®−îc coi lμ ∞ .

2.1.6.2. §Þnh lý 2.2


Cho G lμ mét nhãm vμ a ∈ G lμ mét phÇn tö cã cÊp t h÷u
h¹n. Khi ®ã a (lùc l−îng cña nhãm con sinh bëi a) b»ng t.

2.1.6.3. §Þnh lý 2 (Lagrange)


NÕu G lμ mét nhãm h÷u h¹n vμ H lμ mét nhãm con cña G,
khi ®ã H lμ −íc cña G . Bëi vËy, nÕu a ∈ G th× cÊp cña a lμ −íc
cña G .

2.1.6.4. §Þnh lý 2.4


Mäi nhãm con cña mét nhãm xyclic ®Òu lμ nhãm xyclic. NÕu
G lμ mét nhãm xyclic cÊp n th× ®èi víi mçi −íc d−¬ng d cña n, G sÏ
chøa ®óng mét nhãm con cÊp d.

2.1.6.5. §Þnh lý
Cho G lμ mét nhãm.
(1) NÕu cÊp cña mét phÇn tö a ∈ G lμ t th× cÊp cña a k lμ
t/¦CLN(t,k).
(2) NÕu G lμ mét nhãm xyclic cÊp n vμ d n th× G cã ®óng
Φ (d ) phÇn tö cã cÊp d. §Æc biÖt G cã Φ (n ) phÇn tö sinh.
*
VÝ dô: XÐt nhãm nh©n Z19 = {1, 2, ...,18} cã cÊp 18. Nhãm nμy
lμ nhãm xyclic vμ cã mét phÇn tö sinh lμ α = 2 . C¸c nhãm con cña
*
Z19 vμ c¸c phÇn tö sinh cña chóng ®−îc liÖt kª ë b¶ng sau:
38 Gi¸o tr×nh MËt m· häc

*
B¶ng 2.1: C¸c nhãm con cña Z19
Nhãm con C¸c phÇn tö sinh CÊp
{1} 1 1
{1,18} 18 2
{1,7,11} 7,11 3
{1,7,8,11,12,18} 8,12 6
{1,4,5,6,7,9,11,16,17} 4,5,6,9,16,17 9
{1,2,3,...,18} 2,3,10,13,14,15 18

2.2. Vμnh
2.2.1. §Þnh nghÜa 2.6
Vμnh (R, +, ×) chøa tËp R víi hai phÐp to¸n hai ng«i (®−îc ký
hiÖu lμ + (céng) vμ × (nh©n)) trong R tháa m·n c¸c tiªn ®Ò sau:
(1) (R, + ) lμ mét nhãm Aben víi phÇn tö ®¬n vÞ 0.
(2) PhÐp to¸n × lμ kÕt hîp. Tøc lμ:
a × (b × c ) = (a × b)× c ∀a, b, c ∈ R
(3) Tån t¹i phÇn tö ®¬n vÞ cña phÐp nh©n (phÇn tö 1), víi
1 ≠ 0 sao cho:
1 × a = a ×1 = a ∀a ∈ R
(4) PhÐp × lμ ph©n phèi ®èi víi phÐp +. Tøc lμ:
a × (b + c ) = (a × b) + (a × c )
vμ (b + c )× a = (b × a ) + (c × a ) ∀a, b, c ∈R
Vμnh ®−îc gäi lμ giao ho¸n nÕu a × b = b × a ∀a, b∈ R .

2.2.2. C¸c vÝ dô
- TËp c¸c sè nguyªn Z víi c¸c phÐp to¸n céng vμ nh©n th«ng
th−êng lμ mét vμnh giao ho¸n.
Ch−¬ng 2: §¹i sè trõu t−îng 39

- TËp Zn víi phÐp céng vμ phÐp nh©n ®−îc thùc hiÖn theo
modulo n lμ mét vμnh giao ho¸n.
2.2.3. §Þnh nghÜa 2.7
Mét phÇn tö a ∈ R ®−îc gäi lμ mét phÇn tö kh¶ nghÞch nÕu cã
mét phÇn tö b thuéc R sao cho a × b = 1 .

2.2.4. §Þnh lý 2.6


TËp c¸c phÇn tö kh¶ nghÞch trong mét vμnh R sÏ t¹o nªn mét
nhãm víi phÐp nh©n ®−îc gäi lμ nhãm c¸c ®¬n vÞ cña R.
VÝ dô: Nhãm c¸c ®¬n vÞ cña vμnh Zn lμ Z*n .

2.3. Tr−êng
2.3.1. §Þnh nghÜa 2.8
Tr−êng lμ mét vμnh giao ho¸n trong ®ã mäi phÇn tö kh¸c
kh«ng ®Òu cã phÇn tö nghÞch ®¶o (ng−îc cña phÐp nh©n).
2.3.2. §Æc sè cña tr−êng
§Þnh nghÜa 2.9: §Æc sè cña mét tr−êng lμ 0 nÕu 11+42
1+K
4 43
4+1
m lÇ n

kh«ng b»ng 0 víi bÊt kú m ≥ 1 . Ng−îc l¹i, ®Æc sè cña tr−êng lμ sè


m
nguyªn d−¬ng nhá nhÊt m sao cho ∑1 = 0 .
i =1

VÝ dô: TËp c¸c sè nguyªn víi c¸c phÐp to¸n céng vμ nh©n
th«ng th−êng kh«ng ph¶i lμ mét tr−êng v× chØ cã c¸c sè nguyªn
kh¸c kh«ng 1 vμ −1 lμ cã nghÞch ®¶o. Tuy nhiªn, c¸c sè h÷u tû Q,
c¸c sè thùc R vμ c¸c sè phøc C l¹i lμ c¸c tr−êng cã ®Æc sè 0 víi c¸c
phÐp to¸n th«ng th−êng.
2.3.3. §Þnh lý 2.7
Zn lμ mét tr−êng (víi c¸c phÐp to¸n céng vμ nh©n theo
modulo n) nÕu vμ chØ nÕu n lμ sè nguyªn tè. NÕu n lμ mét sè
nguyªn tè th× Zn cã ®Æc sè n.
40 Gi¸o tr×nh MËt m· häc

2.3.4. §Þnh lý 2.8

NÕu ®Æc sè m cña tr−êng kh«ng b»ng kh«ng th× m ph¶i lμ sè


nguyªn tè.

2.3.5. §Þnh nghÜa 2.10


Mét tËp con F cña tr−êng E lμ mét tr−êng con cña E nÕu F lμ
mét tr−êng cïng víi c¸c phÐp to¸n trong E. Khi ®ã E ®−îc gäi lμ
tr−êng më réng cña F.

2.3.6. Tr−êng h÷u h¹n


2.3.6.1. §Þnh nghÜa 2.11
Tr−êng h÷u h¹n lμ mét tr−êng F cã chøa mét sè h÷u h¹n c¸c
phÇn tö. CÊp cña tr−êng F lμ sè c¸c phÇn tö trong F.

2.3.6.2. C¸c tÝnh chÊt c¬ b¶n


a. §Þnh lý 2.9: Sù tån t¹i vμ tÝnh duy nhÊt cña c¸c tr−êng h÷u h¹n.

- NÕu F lμ mét tr−êng h÷u h¹n th× F chøa pm phÇn tö víi p


lμ mét sè nguyªn tè nμo ®ã vμ m lμ mét sè nguyªn d−¬ng (m ≥ 1) .
- Víi mçi gi¸ trÞ pm tån t¹i duy nhÊt mét tr−êng h÷u h¹n

cÊp p m . Tr−êng nμy ®−îc ký hiÖu lμ GF (p m ) .


Hai tr−êng ®−îc gäi lμ ®¼ng cÊu nÕu chóng gièng nhau vÒ mÆt
cÊu tróc mÆc dï c¸ch biÓu diÔn c¸c phÇn tö cã thÓ lμ kh¸c nhau.
CÇn chó ý r»ng nÕu p lμ mét sè nguyªn tè th× Zp lμ mét
tr−êng vμ bëi vËy mäi tr−êng cÊp p ®Òu ®¼ng cÊu víi Zp.
b. §Þnh lý 2.10:
NÕu Fq lμ mét tr−êng h÷u h¹n cÊp q = pm , p - sè nguyªn tè,
th× ®Æc sè cña Fq lμ p. H¬n n÷a Fq chøa Zp lμ mét tr−êng con. Bëi
vËy Fq cã thÓ ®−îc xem lμ më réng tr−êng bËc m cña Zp.
Ch−¬ng 2: §¹i sè trõu t−îng 41

c. §Þnh lý 2.11: C¸c tr−êng con cña mét tr−êng h÷u h¹n
Cho Fq lμ mét tr−êng h÷u h¹n cÊp q = pm . Khi ®ã mçi tr−êng

con cña Fq cã cÊp pn víi n lμ −íc d−¬ng cña m. Ng−îc l¹i, nÕu n lμ
mét −íc d−¬ng cña m th× cã ®óng mét tr−êng con cña Fq cã cÊp

( )
pn , phÇn tö a ∈ Fq lμ n»m trong tr−êng con F pn nÕu vμ chØ nÕu
n
ap = a .

d. §Þnh nghÜa 2.12:


C¸c phÇn tö kh¸c kh«ng cña Fq t¹o nªn mét nhãm víi phÐp

nh©n ®−îc gäi lμ nhãm nh©n cña Fq vμ ®−îc ký hiÖu lμ Fq* .

e. §Þnh lý 2.12:
Fq* lμ nhãm nh©n cyclic cÊp q − 1 . Bëi vËy a q = a víi ∀a ∈ Fq .

f. §Þnh nghÜa 2.13:


PhÇn tö sinh cña nhãm cyclic Fq* ®−îc gäi lμ phÇn tö nguyªn
thñy hay phÇn tö sinh cña Fq .

g. §Þnh lý 2.13:
NÕu a , b ∈ Fq lμ mét tr−êng h÷u h¹n ®Æc sè p, khi ®ã:

(a + b)p
t t t
= a p + bp ∀t ≥ 0 .

2.4. Vμnh ®a thøc


2.4.1. §Þnh nghÜa ®a thøc
NÕu R lμ mét vμnh giao ho¸n th× mét ®a thøc cña biÕn x trªn
vμnh R lμ mét biÓu thøc cã d¹ng:

f (x ) = a n x n + K + a 2 x 2 + a1 x + a 0
42 Gi¸o tr×nh MËt m· häc

Trong ®ã a i ∈ R vμ n ≥ 0 . PhÇn tö a i ®−îc gäi lμ hÖ sè cña x i


trong f(x).
Sè nguyªn lín nhÊt m sao cho a m ≠ 0 ®−îc gäi lμ bËc cña f(x)
vμ ®−îc ký hiÖu lμ degf(x), a m ®−îc gäi lμ hÖ sè cao nhÊt cña f(x).
NÕu f(x) = a0 (®a thøc h»ng sè) vμ a 0 ≠ 0 th× f(x) cã bËc 0. NÕu tÊt
c¶ c¸c hÖ sè cña f(x) lμ 0 th× f(x) ®−îc gäi lμ ®a thøc kh«ng vμ bËc
cña nã (®Ó thuËn tiÖn vÒ mÆt to¸n häc) ®−îc x¸c ®Þnh b»ng − ∞ .
§a thøc f(x) ®−îc gäi lμ ®Þnh chuÈn nÕu hÖ sè cao nhÊt cña nã
b»ng 1.

2.4.2. Vμnh ®a thøc


- §Þnh nghÜa 2.14: NÕu R lμ mét vμnh giao ho¸n th× vμnh
®a thøc R[x] lμ mét vμnh ®−îc t¹o bëi tÊt c¶ c¸c ®a thøc cña biÕn
x cã c¸c hÖ sè trong R. Hai phÐp to¸n lμ phÐp céng ®a thøc vμ
nh©n ®a thøc th«ng th−êng víi sè häc c¸c hÖ sè ®−îc thùc hiÖn
trong vμnh R.
- VÝ dô vμnh ®a thøc:
Cho f (x ) = x3 + x + 1 vμ g (x ) = x 2 + x lμ c¸c phÇn tö cña vμnh
®a thøc Z2 [x ] . C¸c phÐp to¸n trong Z2 [x ] :

f (x ) + g (x ) = x 3 + x 2 + 1
f (x ). g (x ) = x5 + x 4 + x 3 + x

2.4.3. §a thøc bÊt kh¶ quy


§Þnh nghÜa 2.15: Cho f (x ) ∈ F[x ] víi deg f (x ) ≥ 1 . f(x) ®−îc
gäi lμ bÊt kh¶ quy trªn F nÕu nã kh«ng thÓ viÕt ®−îc b»ng tÝch cña
hai ®a thøc trong F[x ] ®Òu cã bËc d−¬ng.

2.4.4. ThuËt to¸n chia ®èi víi c¸c ®a thøc


NÕu g (x ), h(x ) ∈ F[x] víi h(x ) ≠ 0 th× phÐp chia ®a thøc th«ng
th−êng cña g(x) cho h(x) sÏ dÇn tíi c¸c ®a thøc q(x) vμ r(x ) ∈ F[x]
Ch−¬ng 2: §¹i sè trõu t−îng 43

tháa m·n: g (x ) = q (x ). h(x ) + r(x ) , trong ®ã deg r(x ) < deg h(x ) , q(x)
vμ r(x) lμ duy nhÊt q(x) ®−îc gäi lμ th−¬ng, r(x) ®−îc gäi lμ phÇn d−.
§«i khi r(x) ®−îc ký hiÖu g (x )mod h(x )
g(x) ®−îc ký hiÖu g (x ) div h(x )

VÝ dô: g (x ) = x6 + x5 + x3 + x 2 + x + 1

h(x ) = x 4 + x 3 + 1 lμ c¸c ®a thøc trong Z2 [x ] .

Ta cã (
g (x ) = x 2 h(x ) + x3 + x + 1 )
Bëi vËy g (x )mod h(x ) = x3 + x + 1 vμ g (x ) div h(x ) = x 2 .

2.4.5. ¦íc cña mét ®a thøc


2.4.5.1. §Þnh nghÜa 2.16
NÕu g (x ), h(x ) ∈ F[x] , khi ®ã h(x) lμ −íc cña g(x) (ký hiÖu
g (x ) h(x ) ) nÕu g (x )mod h(x ) = 0 .

Cho f(x) lμ mét ®a thøc x¸c ®Þnh trong F[x ] . T−¬ng tù nh−
tr−êng hîp c¸c sè nguyªn ta cã thÓ ®Þnh nghÜa c¸c líp ®ång d− cña
c¸c ®a thøc trong F[x ] dùa trªn phÐp chia cho f(x).

2.4.5.2. §Þnh nghÜa 2.17


NÕu g (x ), h(x ) ∈ F[x] , khi ®ã g(x) ®−îc gäi lμ ®ång d− víi
h(x) mod ulof(x) nÕu f (x ) [g (x ) − h(x )] . Ta ký hiÖu g (x ) ≡ h(x )mod f (x ) .

2.4.6. C¸c tÝnh chÊt cña ®ång d−


§èi víi c¸c ®a thøc g (x ), h(x ), g1 (x ), h1 (x ), s(x )∈ F[x] ta cã:
(1) g (x ) ≡ h(x ) (mod f (x )) nÕu vμ chØ nÕu g(x) vμ h(x) cã cïng
phÇn d− khi chia cho f(x).
(2) TÝnh chÊt ph¶n x¹: g (x ) ≡ g (x ) (mod f (x ))
(3) TÝnh chÊt ®èi xøng: NÕu g (x ) ≡ h(x ) (mod f (x )) th×
h(x ) ≡ g (x ) (mod f (x ))
44 Gi¸o tr×nh MËt m· häc

(4) TÝnh chÊt b¾c cÇu: NÕu g (x ) ≡ h(x ) (mod f (x )) vμ


h(x ) ≡ s(x ) (mod f (x )) th× g (x ) ≡ s (x ) (mod f (x ))

(5) NÕu g (x ) ≡ g1 (x ) (mod f (x )) vμ h(x ) ≡ h1 (x ) (mod f (x )) th×:


g (x ) + h(x ) ≡ (g 1 (x ) + h1 (x )) (mod f (x ))
g (x ). h(x ) ≡ (g 1 (x ). h1 (x )) (mod f (x ))

Cho f(x) lμ mét ®a thøc cè ®Þnh trong F[x ] , líp t−¬ng ®−¬ng
cña mét ®a thøc g (x ) ∈ F[x ] lμ tËp tÊt c¶ c¸c ®a thøc trong F[x ]
®ång d− víi g( x ) mod ulo f(x).
Tõ c¸c tÝnh chÊt b, c vμ d ë trªn ta thÊy r»ng quan hÖ ®ång
d− mod f (x ) sÏ ph©n ho¹ch F[x ] thμnh c¸c líp t−¬ng ®−¬ng.
NÕu g (x ) ∈ F[x] th× phÐp chia cho f(x) sÏ dÇn tíi mét cÆp ®a
thøc g (x ), r(x )∈F[x ] tháa m·n g (x ) = q (x ) f (x ) + r(x ) , trong ®ã
deg r(x ) < deg f (x ) . Bëi vËy mçi ®a thøc g(x) ®Òu ®ång d− theo
modulo f(x) víi mét ®a thøc duy nhÊt cã bËc nhá h¬n bËc cña f(x).
§a thøc r(x) sÏ ®−îc dïng lμm ®¹i biÓu cho líp t−¬ng ®−¬ng cña
c¸c ®a thøc (cã chøa g(x)).

2.4.7. Vμnh c¸c líp ®ång d−


2.4.7.1. §Þnh nghÜa 2.18
F[x ] / (f (x )) ®−îc ký hiÖu cho tËp c¸c líp t−¬ng ®−¬ng cña c¸c
®a thøc trong F[x ] cã bËc nhá h¬n n = deg f (x ) . PhÐp céng vμ phÐp
nh©n ®−îc thùc hiÖn theo mod f (x ) .

2.4.7.2. §Þnh lý 2.14


F[x ] / (f (x )) lμ mét vμnh giao ho¸n.

2.4.7.3. §Þnh lý 2.15


NÕu f(x) lμ bÊt kh¶ quy trªn F th× F[x] / (f (x)) lμ mét tr−êng.
Ch−¬ng 2: §¹i sè trõu t−îng 45

2.4.8. ThuËt to¸n Euclide ®èi víi c¸c ®a thøc


2.4.8.1. §a thøc ®Þnh chuÈn
§a thøc ®Þnh chuÈn lμ ®a thøc cã hÖ sè bËc cao nhÊt b»ng 1.

2.4.8.2. ¦íc chung lín nhÊt (¦CLN)


Cho g (x ), h(x )∈Z p [x ], c¸c ®a thøc nμy kh«ng ®ång thêi b»ng
kh«ng. Khi ®ã ¦CLN cña g(x) vμ h(x) (ký hiÖu ¦CLN (g(x), h(x)))
lμ mét ®a thøc ®Þnh chuÈn cã bËc lín nhÊt lμ −íc cña c¶ g(x) vμ h(x).
Theo ®Þnh nghÜa: ¦CLN (0, 0) = 0.

2.4.8.3. §Þnh lý 2.16

Mét ®a thøc kh¸c kh«ng f (x ) ∈ Z p [x ] cã thÓ ph©n tÝch d−íi d¹ng

f (x ) = af1 (x ) 1 f2 (x ) 2 K fk (x ) k
e e e

Trong ®ã fi (x) lμ c¸c ®a thøc bÊt kh¶ quy ®Þnh chuÈn kh¸c

nhau trong Zp [x], ei lμ c¸c sè nguyªn d−¬ng, a∈ Zp . Ph©n tÝch

nμy lμ duy nhÊt nÕu kh«ng kÓ tíi sù s¾p xÕp l¹i cña c¸c nh©n tö.

2.4.8.4. ThuËt to¸n Euclide trong Z p [x ]

Vμo : Hai ®a thøc g (x ), h(x )∈Z p [x ]

Ra : ¦CLN

(1) While h(x ) ≠ 0 do

r(x ) ← g (x )mod h(x ); g (x ) ← h(x ) , h(x ) ← r(x )

(2) Return (g(x)) .


46 Gi¸o tr×nh MËt m· häc

2.4.9. Sè häc cña c¸c ®a thøc


BiÓu diÔn ®a thøc lμ c¸ch biÓu diÔn th«ng dông nhÊt cho c¸c
phÇn tö cña tr−êng h÷u h¹n Fp víi q = pm vμ p lμ sè nguyªn tè.

2.4.9.1. §Þnh lý 2.17


Víi mçi gi¸ trÞ m ≥ 1 , tån t¹i mét ®a thøc bÊt kh¶ quy ®Þnh
chuÈn bËc m trªn Z p . Bëi vËy, mäi tr−êng h÷u h¹n ®Òu cã biÓu
diÔn ®a thøc.
( )
C¸c phÇn tö cña h÷u h¹n F pm sÏ ®−îc biÓu diÔn bëi c¸c ®a
thøc trong Z p [x ] cã bËc nhá h¬n m. NÕu g (x ), h(x )∈F pm th× phÐp( )
céng lμ phÐp céng th«ng th−êng cña c¸c ®a thøc trong Z p [x ] . TÝch
g(x).h(x) ®−îc thùc hiÖn b»ng c¸ch tr−íc tiªn nh©n c¸c ®a thøc g(x)
vμ h(x) theo c¸ch th«ng th−êng, sau ®ã lÊy phÇn d− sau khi chia
cho f(x).
C¸c phÇn tö nghÞch ®¶o cã thÓ ®−îc tÝnh b»ng c¸ch dïng
thuËt to¸n Euclide më réng cho vμnh ®a thøc Z p [x ] .

2.4.9.2. ThuËt to¸n Eulicde më réng trªn Z p [x ]

Vμo : Hai ®a thøc g (x ), h(x )∈Z p [x ]

Ra : ¦CLN (g(x), h(x)) vμ c¸c ®a thøc s(x ), t(x )∈Z p [x ]


tháa m·n s(x ). g (x ) + t (x ). h(x ) = d (x ) .

2.4.9.3. ThuËt to¸n tÝnh nghÞch ®¶o trong F pm ( )


( )
Vμo :§a thøc kh¸c kh«ng g (x )∈F pm (C¸c phÇn tö tr−êng
( )
F pm ®−îc biÓu diÔn b»ng c¸c ®a thøc trong Z p [x ] / (f (x )) , trong ®ã
f (x ) ∈ Z p [x ] lμ mét ®a thøc bÊt kh¶ quy bËc m trªn Z p ).
Ch−¬ng 2: §¹i sè trõu t−îng 47

Ra : g (x )−1 ∈F pm( )
(1) Dïng thuËt to¸n Euclide më réng ®èi víi c¸c ®a thøc ®Ó
t×m hai ®a thøc s(x ), t(x )∈Z p [x ] sao cho s(x ). g (x ) + t(x ). f (x ) = 1

(2) Return (s(x)).


2.4.9.4. §Þnh nghÜa 2.19
§a thøc bÊt kh¶ quy f (x ) ∈ Z p [x ] cã bËc m ®−îc gäi lμ ®a thøc

( )
nguyªn thuû nÕu x lμ phÇn tö sinh cña F * pm lμ nhãm nh©n gåm
( )
tÊt c¶ c¸c phÇn tö kh¸c kh«ng trong F pn = Z p [x ] / (f (x )) .

2.4.9.5. §Þnh lý 2.18


§a thøc bÊt kh¶ quy f (x ) ∈ Z p [x ] cã bËc m ®−îc gäi lμ ®a thøc

(
nguyªn thuû nÕu vμ chØ nÕu f(x) lμ −íc cña x k − 1 víi k = pm − 1 )
vμ kh«ng lμ −íc cña nhÞ thøc nμy víi sè nguyªn d−¬ng k nhá h¬n.

2.4.9.6. §Þnh lý 2.19


Víi mçi gi¸ trÞ m ≥ 1 , tån t¹i mét ®a thøc nguyªn thuû ®Þnh
(
chuÈn bËc m trªn Z p . Thùc sù cã ®óng Φ pm − 1 / m c¸c ®a thøc )
nh− vËy.

2.4.9.7. VÝ dô
Tr−êng h÷u h¹n F(24) cÊp 16

Cã thÓ thÊy r»ng f (x ) = x 4 + x + 1 lμ mét ®a thøc bÊt kh¶ quy


trªn Z 2 . Bëi vËy tr−êng h÷u h¹n F(24) cã thÓ ®−îc biÓu diÔn b»ng
tËp tÊt c¶ c¸c ®a thøc trªn F2 cã bËc nhá h¬n 4. Tøc lμ:

F(24 ) = { a3 x 3 + a 2 x 2 + a1 x + a 0 a i ∈ {0 ,1}}
48 Gi¸o tr×nh MËt m· häc

Sau ®©y lμ c¸c vÝ dô vÒ sè häc cña tr−êng:


- PhÐp céng : (1 0 11) + (1 0 0 1) = (0 0 1 0 )

- PhÐp nh©n : §Ó nhãm hai phÇn tö (11 0 1) vμ (1 0 0 1) ta


nh©n chóng nh− c¸c ®a thøc rêi lÊy phÇn d− khi chia tÝch nhËn
®−îc cho f(x).

(x 3
)(
+ x2 + 1 . x2 + 1 ) = x 6 + x5 + x 2 + 1 ≡ x 3 + x 2 + x + 1 (mod ƒ (x ))

Bëi vËy (11 0 1) + (1 0 0 1) = (1111)

- PhÇn tö ®¬n vÞ cña phÐp nh©n trong F 24 lμ (0 0 0 1) ( )


NghÞch ®¶o cña (1 0 11) lμ (0 1 0 1) . §Ó kiÓm tra ®iÒu nμy ta ®Ó
ý r»ng:

(x 3
)(
+ x2 + 1 . x2 + 1 ) = x 5 + x 2 + x + 1 ≡ 1(mod ƒ (x ))

Tõ ®ã (1 0 11). (0 1 0 1) = (0 0 0 1)
f(x)lμ mét ®a thøc nguyªn thñy hay phÇn tö x = (0 0 1 0 ) lμ
( )
phÇn tö sinh cña F 24 . Ta cã thÓ thÊy r»ng tÊt c¶ c¸c phÇn tö
kh¸c kh«ng trong F (2 ) cã thÓ nhËn ®−îc b»ng c¸c lòy thõa cña x.
4

Ta cã b¶ng sau:

B¶ng 2.2: C¸c lòy thõa cña x theo modulo f (x ) = x 4 + x + 1


i xi mod (x4 + x + 1) BiÓu diÔn vÐc t¬
0 1 (0001)
1 x (0010)
2
2 x (0100)
3
3 x (1000)
4 x+1 (0011)
5 x2 + x (0110)
6 x3 + x2 (1100)
7 x3 + x + 1 (1011)
Ch−¬ng 2: §¹i sè trõu t−îng 49

i xi mod (x4 + x + 1) BiÓu diÔn vÐc t¬


8 x2 + 1 (0101)
9 x3 + x (1010)
2
10 x + x +1 (0111)
3 2
11 x +x +x (1110)
3 2
12 x +x +x+1 (1111)
3 2
13 x +x +1 (1101)
3
14 x +1 (1001)

2.4.10. Nhãm nh©n xyclic trªn vμnh ®a thøc


2.4.10.1. CÊp cña mét ®a thøc
Ta xÐt vμnh ®a thøc Z 2 [x ] / x n + 1 .
- §Þnh nghÜa 2.20: §a thøc e(x) ®−îc gäi lμ ®a thøc lòy ®¼ng
nÕu e 2i (x ) = e i (x ) .

Cho a(x ) ∈ Z 2 [x ] / x n + 1 cÊp cña a(x) (ký hiÖu lμ ord(a(x )) ) lμ sè


nguyªn d−¬ng nhá nhÊt t sao cho: [a(x )]t +1 ≡ a(x )mod x n + 1 hay
[a(x )]t ≡ e i (x )mod x n + 1 . Trong ®ã e i (x ) lμ mét ®a thøc lòy ®¼ng
nμo ®ã trong vμnh.
- §Þnh lý 2.20: CÊp lín nhÊt cña mét ®a thøc trong vμnh
Z 2 [x ] / x n + 1 ®−îc x¸c ®Þnh nh− sau:

+ max ord(a(x )) = 2k víi n = 2k

+ max ord(a(x )) = 2m − 1 víi n lμ lÎ vμ ph©n tÝch cña x n + 1


thμnh tÝch cña c¸c ®a thøc bÊt kh¶ quy cã d¹ng x n + 1 = ∏ g (x )
i
i

víi m = max ord g i (x ) .


i

+ max ord(a(x )) = 2l 2m − 1 ( ) víi n = 2l u . Trong ®ã u lÎ vμ ph©n


tÝch cña x u + 1 cã d¹ng x u + 1 = ∏ g (x ) vμ m = max ord
i
i
i
g i (x ) .
50 Gi¸o tr×nh MËt m· häc

- VÝ dô: XÐt vμnh Z 2 [x ] / x5 + 1

(
Ta cã x5 + 1 = (1 + x ) 1 + x + x 2 + x 3 + x 4 )
VËy max ord(a(x )) = 24 − 1 = 15

CÊp cña mäi ®a thøc trong vμnh sÏ lμ 15 hoÆc −íc cña 15.

2.4.10.2. C¸c nhãm nh©n

Gäi I lμ sè c¸c ®a thøc bÊt kh¶ quy trong ph©n tÝch cña x n + 1
víi n lμ lÎ. Khi ®ã sè c¸c nhãm nh©n trong vμnh M ®−îc x¸c ®Þnh
theo bæ ®Ò sau:
- Bæ ®Ò 2.21:
Sè c¸c nhãm nh©n trong vμnh b»ng sè c¸c ®a thøc lòy ®¼ng
vμ b»ng: M = 2I − 1

- VÝ dô: XÐt vμnh Z2 [x] / x7 + 1

(
Ta cã x 7 + 1 = (1 + x ) 1 + x + x 3 1 + x 2 + x 3 )( )
M = 23 − 1 = 7
Cã 7 nhãm nh©n víi c¸c lòy ®¼ng sau:

6
e1 (x ) = 1 , e 2 (x ) = ∑x , e
i =1
i
3 = x + x 2 + x 4 , e 4 = 1 + x 3 + x5 + x6

6
e5 = 1 + x + x + x , e6 = x + x + x , e7 (x ) =
2 4 3 5 6

i =0
xi

- Bæ ®Ò: Nhãm nh©n víi lòy ®¼ng e 0 (x ) chØ cã mét phÇn tö lμ


e 0 (x ) . Mäi ®a thøc kh¸c 0 ®Òu n»m trong mét nhãm nh©n nμo ®ã.
C¸c nhãm nh©n xyclic trong c¸c nhãm nh©n cã cÊp lμ −íc cña
max ord(a(x )) .
Ch−¬ng 2: §¹i sè trõu t−îng 51

- VÝ dô: XÐt vμnh Z 2 [x ] / x 7 + 1 .

Mäi ®a thøc kh«ng n»m trong vμnh nμy (kh«ng kÓ c¸c lòy
®¼ng) ®Òu cã cÊp lμ 7.

2.4.11. C¸c thÆng d− bËc 2 vμ c¸c phÇn tö liªn hîp


2.4.11.1. §Þnh nghÜa 2.21

§a thøc f (x ) ∈ Z2 [x ] / x n + 1 ®−îc gäi lμ mét thÆng d− bËc 2


trong vμnh nÕu f (x ) ≠ 0 vμ tån t¹i g(x) sao cho:

g 2 (x ) ≡ f (x )mod x n + 1

Gäi Q lμ tËp hîp chøa c¸c thÆng d− bËc 2.

2.4.11.2. Bæ ®Ò 2.22

Víi n lÎ mäi f (x ) ≠ 0 ®Òu lμ thÆng d− bËc 2. Mçi f(x) ®Òu cã

mét c¨n bËc 2 duy nhÊt. Ta cã: Q = 2n − 1

2.4.11.3. Bæ ®Ò 2.23

Víi n ch½n, f (x ) ∈ Q khi vμ chØ khi f(x) lμ tæng cña c¸c ®¬n
n
thøc cã mò ch½n. Ta cã: Q = 2 2 − 1 .

2.4.11.4. Bæ ®Ò 2.24

Víi n ch½n, c¸c c¨n bËc 2 cña mét thÆng d− bËc hai ®−îc x¸c
®Þnh theo c«ng thøc sau:

⎛ n⎞
⎛ ⎞
g (x ) = 1 + x 2 ⎟ ⎜

⎜ ⎟⎜ ∑ x t ⎟ + ƒ (x )

⎝ ⎠ ⎝ t∈U ⎠
52 Gi¸o tr×nh MËt m· häc

⎧ n ⎫
Trong ®ã U lμ mét tËp con tuú ý trong tËp S = ⎨0 ,1 ,K, − 1⎬ .
⎩ 2 ⎭
n
Ta cã U = 22 . NÕu f (x ) = ∑f xi
2i
th× f (x ) = ∑f x
i
i
( f (x ) ®−îc gäi
lμ c¨n bËc 2 chÝnh cña f(x)).
C¸c g(x) ®−îc gäi lμ c¸c phÇn tö liªn hîp.
- VÝ dô: n = 8
C¸c c¨n bËc hai cña c¸c x 2i ®−îc cho trong b¶ng 2.3:
B¶ng 2.3
x2i
x2 x4 x6 x8 = 1
TT
1 (1) (2) (3) (4)

2 (014) (024) (034) (015)


3 (126) (125) (135) (016)
4 (137) (237) (236) (037)
5 (5) (6) (7) (4)
6 (045) (046) (047) (145)
7 (256) (156) (157) (246)
8 (257) (367) (267) (347)
9 (01246) (01245) (01345) (01256)
10 (01347) (02347) (02346) (01357)
11 (12367) (12357) (12356) (02367)
12 (02456) (01456) (01457) (12456)
13 (03457) (03467) (02467) (13457)
14 (23567) (13567) (12567) (23467)
15 (0123467) (0123457) (0123456) (0123567)
16 (0234567) (0134567) (0124567) (1234567)

Chó ý: Trong b¶ng trªn ta ký hiÖu c¸c ®a thøc nh− sau:


VÝ dô: (01246 ) ↔ 1 + x + x 2 + x 4 + x 6 .
Ch−¬ng 2: §¹i sè trõu t−îng 53

Bμi tËp

1. TÝnh tÊt c¶ c¸c c¨n bËc hai cña ®a thøc 1 + x2 + x 4 trong


vμnh ®a thøc Z2 [ x ] x8 + 1 .

2. X¸c ®Þnh nhãm nh©n xyclic sinh bëi phÇn tö a ( x ) = 1 + x + x2

trong vμnh ®a thøc Z 2 [ x ] x5 + 1 .

3. XÐt tËp S = {0,1,2,3} víi c¸c phÐp to¸n céng (+) vμ nh©n (.)

®−îc x¸c ®Þnh nh− sau:


+ 0 1 2 3 . 0 1 2 3
0 0 1 2 3 0 0 0 0 0
1 1 2 3 0 1 0 1 2 3
2 2 3 0 1 2 0 2 3 1
3 3 0 1 2 3 0 3 1 2
H·y chøng minh S lμ mét tr−êng?

4. Trong tr−êng 6F(4) ë bμi tËp 3, h·y gi¶i ph−¬ng tr×nh:


2x + y = 3
x + 2y = 3.
*
5. H·y x¸c ®Þnh cÊp cña phÇn tö 2 trong Z13 .

6. T×m tÊt c¶ c¸c c¨n bËc 2 cña c¸c ®¬n thøc 1, x 2 , x 4 trong

vμnh ®a thøc Z2 [ x ] x6 + 1

7. Trong tr−êng 6F(25 ) cã thÓ x©y dùng ®−îc theo


z2 [x ] /( x5 + x 2 + 1) .
54 Gi¸o tr×nh MËt m· häc

H·y thùc hiÖn c¸c phÐp tÝnh sau trªn tr−êng nμy:

( )( )
a. TÝnh x 4 + x 2 . x3 + x + 1 .

( )
−1
b. Sö dông thuËt to¸n Euclide më réng ®Ó tÝnh x3 + x 2

c. Sö dông thuËt to¸n nh©n vμ b×nh ph−¬ng ®Ó tÝnh x 25 .


8. Víi vμnh giao ho¸n R ®Æc sè pn nguyªn tè, h·y chøng tá r»ng:

( a1 + a 2 + K as )p n
= a1p n + a 2p n + K + a sp n .
PhÇn II

C¸c thuËt to¸n mËt m·


mËt m· cæ ®iÓn

Cã ba ph−¬ng ph¸p chÝnh trong mËt m· cæ ®iÓn (mËt m·


khãa riªng hay mËt m· khãa bÝ mËt):
- Ho¸n vÞ;
- Thay thÕ;
- Xö lý bit (chñ yÕu n»m trong c¸c ng«n ng÷ lËp tr×nh).
Ngoμi ra cßn cã ph−¬ng ph¸p hçn hîp thùc hiÖn kÕt hîp c¸c
ph−¬ng ph¸p trªn mμ ®iÓn h×nh lμ chuÈn m· d÷ liÖu (DES – Data
Encryption Standard) cña Mü.

3.1. S¬ ®å khèi mét hÖ truyÒn tin mËt

Th¸m m· (Oscar)

B¶n râ B¶n m· B¶n m· B¶n râ


Kªnh më NhËn tin
Nguån tin Bé m· hãa Bé gi¶i m·
(kh«ng an toµn)

(Alice) KE KD (Bob)
Kªnh an toµn

Nguån khãa

H×nh 3.1
58 Gi¸o tr×nh MËt m· häc

§Þnh nghÜa 3.1


Mét hÖ mËt lμ mét bé 5 (P, C, K, E, D) tháa m·n c¸c ®iÒu
kiÖn sau:
a) P lμ mét tËp h÷u h¹n c¸c b¶n râ cã thÓ
b) C lμ mét tËp h÷u h¹n c¸c b¶n m· cã thÓ
c) K lμ mét tËp h÷u h¹n c¸c khãa cã thÓ (kh«ng gian khãa)
d) §èi víi mçi k ∈ K cã mét quy t¾c m· e k ∈ E
ek : P → C

vμ mét quy t¾c gi¶i m· t−¬ng øng d k ∈ D


dk : C → P

sao cho: d k (e k (x )) = x víi ∀ x ∈ P .

3.2. MËt m· thay thÕ

3.2.1. MËt m· dÞch vßng (MDV)


Gi¶ sö P = C = K = Z26 víi 0 ≤ k ≤ 25 , ta ®Þnh nghÜa:
e k (x ) = x + k mod 26
d k (y ) = y − k mod 26
(x, y ∈ Z26 )
Ta sö dông MDV (víi modulo 26) ®Ó m· hãa mét v¨n b¶n
tiÕng Anh th«ng th−êng b»ng c¸ch thiÕt lËp sù t−¬ng øng gi÷a c¸c
ký tù vμ c¸c thÆng d− theo mod 26 nh− sau:

Ký tù A B C D E F G H I J K L M

M· t−¬ng øng 0 1 2 3 4 5 6 7 8 9 10 11 12

Ký tù N O P Q R S T U V W X Y Z

M· t−¬ng øng 13 14 15 16 17 18 19 20 21 22 23 24 25
Ch−¬ng 3: MËt m· cæ ®iÓn 59

VÝ dô 3.1:
Gi¶ sö khãa cho MDV lμ k = 5 vμ b¶n râ lμ meetmeatsunset.
Tr−íc tiªn, ta biÕn ®æi b¶n râ thμnh d·y c¸c sè nguyªn theo
b¶ng trªn:

12.4.4.19.12.4.0.19.18.20.13.18.4.19

Sau ®ã ta céng 5 vμo mçi gi¸ trÞ ë trªn vμ rót gän tæng theo
mod 26, ta ®−îc d·y sè sau:

17.9.9.24.17.9.5.24.23.25.18.23.9.24

Cuèi cïng, ta l¹i biÕn ®æi d·y sè nguyªn trªn thμnh c¸c ký tù
t−¬ng øng, ta cã b¶n m· sau:

RJJYRJFYXZSXJY

§Ó gi¶i m· cho b¶n m· nμy, tr−íc tiªn ta biÕn b¶n m· thμnh


d·y sè nguyªn råi trõ mçi gi¸ trÞ cho 5 (rót gän theo modulo 26), vμ
cuèi cïng lμ l¹i biÕn ®æi l¹i d·y sè nhËn ®−îc nμy thμnh c¸c ký tù.

NhËn xÐt:
- Khi k = 3, hÖ mËt nμy th−êng ®−îc gäi lμ m· Caesar ®·
tõng ®−îc Hoμng ®Õ Caesar sö dông.
- MDV (theo mod 26) lμ kh«ng an toμn v× nã cã thÓ bÞ th¸m
theo ph−¬ng ph¸p t×m khãa vÐt c¹n (th¸m m· cã thÓ dÔ dμng thö
mäi khãa d k cã thÓ cho tíi khi t×m ®−îc b¶n râ cã nghÜa). Trung
b×nh cã thÓ t×m ®−îc b¶n râ ®óng sau khi thö kho¶ng (26 2 ) = 13
quy t¾c gi¶i m·.
- Tõ vÝ dô trªn ta thÊy r»ng, ®iÒu kiÖn cÇn ®Ó mét hÖ mËt an
toμn lμ phÐp t×m khãa vÐt c¹n ph¶i kh«ng thÓ thùc hiÖn ®−îc. Tuy
nhiªn, mét kh«ng gian khãa lín vÉn ch−a ®ñ ®Ó ®¶m b¶o ®é mËt.
60 Gi¸o tr×nh MËt m· häc

3.2.2. M· thay thÕ (MTT)

Cho P = C = Z 26 . K chøa mäi ho¸n vÞ cã thÓ cã cña 26 ký tù


tõ 0 ®Õn 25. Víi mçi phÐp ho¸n vÞ π ∈ K , ta ®Þnh nghÜa:
e π (x ) = π(x )

vμ d π (y ) = π −1 (y )

trong ®ã π −1 lμ ho¸n vÞ ng−îc cña π .

Sau ®©y lμ mét vÝ dô vÒ phÐp ho¸n vÞ ngÉu nhiªn π t¹o nªn


mét hμm m· ho¸ (t−¬ng tù nh− trªn, c¸c ký tù cña b¶n râ ®−îc
viÕt b»ng ch÷ th−êng, cßn c¸c ký tù cña b¶n m· ®−îc viÕt b»ng
ch÷ in hoa).

Ký tù b¶n râ a b c d e f g h i j k l m

Ký tù b¶n m· X N Y A H P O G Z Q W B T

Ký tù b¶n râ n o p q r s t u v w x y z

Ký tù b¶n m· S F L R C V M U E K J D I

Nh− vËy, e π (a ) = X, e π (b) = N, ...


Hμm gi¶i m· lμ phÐp ho¸n vÞ ng−îc. §iÒu nμy ®−îc thùc hiÖn
b»ng c¸ch viÕt hμng thø hai lªn tr−íc råi s¾p xÕp theo thø tù ch÷
c¸i. Ta cã:

Ký tù b¶n m· a b c d e f g h i j k l m

Ký tù b¶n râ d l r y v o h e z x w p t

Ký tù b¶n m· n o p q r s t u v w x y z

Ký tù b¶n râ b g f j q n m u s k a c i

VÝ dô 3.2:
Víi phÐp thay thÕ trªn, tõ b¶n râ:
meetmeatsunset
Ch−¬ng 3: MËt m· cæ ®iÓn 61

ta thu ®−îc b¶n râ sau:


THHMTHXMVUSHM
Sö dông phÐp ho¸n vÞ ng−îc, ta dÔ dμng t×m l¹i ®−îc b¶n râ
ban ®Çu.
Mçi khãa cña m· thay thÕ lμ mét phÐp ho¸n vÞ cña 26 ký tù.
Sè c¸c ho¸n vÞ nμy lμ 26 ! > 4.1026 . §©y lμ mét sè rÊt lín nªn khã cã
thÓ t×m ®−îc khãa b»ng phÐp t×m khãa vÐt c¹n. Tuy nhiªn, b»ng
ph−¬ng ph¸p thèng kª, ta cã thÓ dÔ dμng th¸m ®−îc c¸c b¶n m·
lo¹i nμy.

3.2.3. MËt m· VigenÌre


Trong hai hÖ MDV vμ MTT ë trªn, mét khi khãa ®· ®−îc
chän th× mçi ký tù sÏ ®−îc ¸nh x¹ vμo mét ký tù duy nhÊt. V× vËy,
c¸c hÖ trªn cßn ®−îc gäi lμ c¸c hÖ thay thÕ ®¬n biÓu. Sau ®©y ta sÏ
tr×nh bμy mét hÖ thay thÕ ®a biÓu ®−îc gäi lμ hÖ mËt Vigenere.
Sö dông phÐp t−¬ng øng A ↔ 0, B ↔ 1, K, Z ↔ 25 m« t¶ ë
trªn, ta cã thÓ g¾n cho mçi khãa k mét chuçi ký tù cã ®é dμi m,
®−îc gäi lμ tõ khãa. MËt m· VigenÌre sÏ m· ho¸ ®ång thêi m ký
tù: mçi phÇn tö cña b¶n râ t−¬ng ®−¬ng víi m ký tù.
VÝ dô 3.3:
Gi¶ sö m = 6 vμ tõ khãa lμ CIPHER. Tõ khãa nμy t−¬ng øng
víi d·y sè k = (2, 8, 15, 7, 4, 17). Gi¶ sö b¶n râ lμ:
meetmeatsunset
Ta sÏ biÕn ®æi c¸c phÇn tö cña b¶n râ thμnh c¸c thÆng d−
theo mod 26, viÕt chóng thμnh c¸c nhãm 6 råi céng víi tõ khãa
theo modulo 26 nh− sau:

12 4 4 19 12 4 0 19 18 20 13 18 4 19 B¶n râ
2 8 15 7 4 17 2 8 15 7 4 17 2 8 Khãa
14 12 19 0 16 21 2 1 7 1 17 9 6 1 B¶n m·
62 Gi¸o tr×nh MËt m· häc

Nh− vËy, d·y ký tù t−¬ng øng víi x©u b¶n m· sÏ lμ:


OMTAQVCBHBRJGB
Ta cã thÓ m« t¶ mËt m· VigenÌre nh− sau:
Cho m lμ mét sè nguyªn d−¬ng cè ®Þnh nμo ®ã.

Ta ®Þnh nghÜa P = C = K = (Z 26 )n
Víi khãa k = (k 1 , k 2 , K, k m ) , ta x¸c ®Þnh:
e k (x1 , x 2 , K, x m ) = (x1 + k1 , x 2 + k 2 , K, x m + k m )

vμ d k (y1 , y 2 , K, y m ) = (y1 − k 1 , y 2 − k 2 , K, y m − k m )

trong ®ã tÊt c¶ c¸c phÐp to¸n ®−îc thùc hiÖn trong Z 26 .

Chó ý: §Ó gi¶i m·, ta cã thÓ dïng cïng tõ khãa nh−ng thay


cho céng, ta trõ nã theo modulo 26.
Ta thÊy r»ng, sè c¸c tõ khãa cã thÓ víi ®é dμi m trong mËt
m· Vigenere lμ 26 m . Bëi vËy, thËm chÝ víi m kh¸ nhá, ph−¬ng
ph¸p t×m kiÕm vÐt c¹n còng yªu cÇu thêi gian kh¸ lín. VÝ dô, víi
m = 6 th× kh«ng gian khãa còng cã kÝch th−íc lín h¬n 3.10 8 khãa.

3.3. MËt m· ho¸n vÞ (MHV)

Kh¸c víi MTT, ý t−ëng cña MHV lμ gi÷ c¸c ký tù cña b¶n râ
kh«ng thay ®æi nh−ng sÏ thay ®æi vÞ trÝ cña chóng b»ng c¸ch s¾p
xÕp l¹i c¸c ký tù nμy. ë ®©y kh«ng cã mét phÐp to¸n ®¹i sè nμo
cÇn thùc hiÖn khi m· ho¸ vμ gi¶i m·.

VÝ dô 3.4:
Gi¶ sö m = 6 vμ khãa lμ phÐp ho¸n vÞ sau:
1 2 3 4 5 6
3 5 1 6 4 2
Ch−¬ng 3: MËt m· cæ ®iÓn 63

Khi ®ã, phÐp ho¸n vÞ ng−îc sÏ lμ:


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

Gi¶ sö ta cã b¶n râ: asecondclasscarriageonthetrain


Tr−íc tiªn, ta nhãm b¶n râ thμnh c¸c nhãm 6 ký tù:
a sec on dclass carria geonth etrain

Sau ®ã, mçi nhãm 6 ch÷ c¸i l¹i ®−îc s¾p xÕp l¹i theo phÐp
ho¸n vÞ π , ta cã:

EOANCS LSDSAC RICARA OTGHNE RIENAT

Cuèi cïng, ta cã b¶n m· sau:

EOANCSLSDSACRICARAOTGHNERIENAT

Khi sö dông phÐp ho¸n vÞ ng−îc π −1 trªn d·y b¶n m· (sau


khi ®· nhãm l¹i theo c¸c nhãm 6 ký tù), ta sÏ nhËn l¹i ®−îc b¶n râ
ban ®Çu.
Tõ vÝ dô trªn, ta cã thÓ ®Þnh nghÜa MHV nh− sau:

Cho m lμ mét sè nguyªn d−¬ng x¸c ®Þnh nμo ®ã.

Cho P = C = (Z26 )m vμ cho K lμ tÊt c¶ c¸c ho¸n vÞ cã thÓ cã cña


{ 1, 2, K, m } .
§èi víi mét khãa π (tøc lμ mét phÐp ho¸n vÞ nμo ®ã), ta x¸c ®Þnh:
(
e π = (x1 , K , x m ) = x π(1 ), K , x π(m ) )
(
vμ d π = ( x1 , K , x m ) = y π −1 (1), K , y π −1 (m ) )
trong ®ã π −1 lμ phÐp ho¸n vÞ ng−îc cña π
64 Gi¸o tr×nh MËt m· häc

3.4. MËt m· Hill


Trong phÇn nμy sÏ m« t¶ mét hÖ mËt thay thÕ ®a biÓu kh¸c
®−îc gäi lμ mËt m· Hill. MËt m· nμy do Lester S.Hill ®−a ra n¨m
1929. Gi¶ sö m lμ mét sè nguyªn d−¬ng, ®Æt P = C = (Z26 )m . ý
t−ëng ë ®©y lμ lÊy m tæ hîp tuyÕn tÝnh cña m ký tù trong mét
phÇn tö cña b¶n râ ®Ó t¹o ra m ký tù ë mét phÇn tö cña b¶n m·.
VÝ dô nÕu m = 2 ta cã thÓ viÕt mét phÇn tö cña b¶n râ lμ
x = (x1 , x 2 ) vμ mét phÇn tö cña b¶n m· lμ y = (y1 , y2 ) . ë ®©y, y1

còng nh− y 2 ®Òu lμ mét tæ hîp tuyÕn tÝnh cña x1 vμ x 2 . Ch¼ng


h¹n, cã thÓ lÊy:

y1 = 11x1 + 3x 2
y 2 = 8 x1 + 7x 2

TÊt nhiªn cã thÓ viÕt gän h¬n theo ký hiÖu ma trËn nh− sau:

⎛11 8 ⎞
(y1 y2 ) = (x1 x2 )⎜⎜ ⎟⎟
⎝ 3 7⎠

Nãi chung, cã thÓ lÊy mét ma trËn k kÝch th−íc m × m lμm


khãa. NÕu mét phÇn tö ë hμng i vμ cét j cña k lμ k i, j th× cã thÓ
viÕt ( )
k = k i, j , víi x = (x1 , x 2 , K , x m ) ∈ P vμ k∈K , ta tÝnh
y = ek (x ) = (y1 , y2 , K , ym ) nh− sau :

⎛ k1,1 k1, 2 K k1, m ⎞


⎜ ⎟
(y1 , K, ym )(x1 , K, xm ) ⎜⎜ 2,1
k k 2, 2 K k 2, m ⎟
M M M ⎟
⎜ ⎟
⎜ k m,1 k m, 2 L k m, m ⎟⎠

Nãi c¸ch kh¸c, y = xk .


Ch−¬ng 3: MËt m· cæ ®iÓn 65

Chóng ta nãi r»ng b¶n m· nhËn ®−îc tõ b¶n râ nhê phÐp


biÕn ®æi tuyÕn tÝnh. Ta sÏ xÐt xem ph¶i thùc hiÖn gi¶i m· nh− thÕ
nμo, tøc lμ lμm thÕ nμo ®Ó tÝnh x tõ y. B¹n ®äc ®· lμm quen víi ®¹i
sè tuyÕn tÝnh sÏ thÊy r»ng ph¶i dïng ma trËn nghÞch ®¶o k −1 ®Ó
gi¶i m·. B¶n m· ®−îc gi¶i m· b»ng c«ng thøc x = yk −1 .

Sau ®©y lμ mét sè ®Þnh nghÜa vÒ nh÷ng kh¸i niÖm cÇn thiÕt
lÊy tõ ®¹i sè tuyÕn tÝnh. NÕu A = (x i, j ) lμ mét ma trËn cÊp l × m vμ

(
B = b l, k ) lμ mét ma trËn cÊp m × n th× tÝch ma trËn AB = (c l, k )

®−îc ®Þnh nghÜa theo c«ng thøc :

m
c l, k = ∑=
j 1
a i, j b j, k

víi 1 ≤ i ≤ l vμ 1 ≤ k ≤ l . Tøc lμ c¸c phÇn tö ë hμng i vμ cét thø


k cña AB ®−îc t¹o ra b»ng c¸ch lÊy hμng thø i cña A vμ cét thø k
cña B, sau ®ã nh©n t−¬ng øng c¸c phÇn tö víi nhau vμ céng l¹i.
CÇn ®Ó ý r»ng AB lμ mét ma trËn cÊp l × n .
Theo ®Þnh nghÜa nμy, phÐp nh©n ma trËn lμ kÕt hîp (tøc
(AB)C = A (BC) ) nh−ng nãi chung lμ kh«ng giao ho¸n (kh«ng ph¶i
lóc nμo AB = BA , thËm chÝ ®èi víi ma trËn vu«ng A vμ B).
Ma trËn ®¬n vÞ m × m (ký hiÖu lμ I m ) lμ ma trËn cÊp m × m

cã c¸c sè 1 n»m ë ®−êng chÐo chÝnh vμ c¸c sè 0 ë vÞ trÝ cßn l¹i. Nh−
vËy, ma trËn ®¬n vÞ 2 × 2 lμ:

⎛1 0⎞
I 2 = ⎜⎜ ⎟⎟
⎝0 1⎠
66 Gi¸o tr×nh MËt m· häc

I m ®−îc gäi lμ ma trËn ®¬n vÞ v× AI m = A víi mäi ma trËn


cÊp l × m vμ I m B = B víi mäi ma trËn cÊp m × n . Ma trËn nghÞch

®¶o cña ma trËn A cÊp m × m (nÕu tån t¹i) lμ ma trËn A −1 sao cho
AA −1 = A −1 A = I m . Kh«ng ph¶i mäi ma trËn ®Òu cã nghÞch ®¶o,
nh−ng nÕu tån t¹i th× nã duy nhÊt.
Víi c¸c ®Þnh nghÜa trªn, cã thÓ dÔ dμng x©y dùng c«ng thøc
gi¶i m· ®· nªu: V× y = xk , ta cã thÓ nh©n c¶ hai vÕ cña ®¼ng thøc

víi k −1 vμ nhËn ®−îc:

( )
yk −1 = (xk )k −1 = x kk −1 = xIm = x

(Chó ý: sö dông tÝnh chÊt kÕt hîp)


Cã thÓ thÊy r»ng, ma trËn m· ho¸ ë trªn cã nghÞch ®¶o trong
Z 26 :

−1
⎛11 8 ⎞ ⎛ 7 18 ⎞
⎜⎜ ⎟⎟ = ⎜⎜ ⎟⎟
⎝ 3 7⎠ ⎝ 23 11 ⎠


⎛12 8 ⎞⎛ 8 18 ⎞ ⎛11 × 7 + 8 × 23 11 × 18 + 8 × 11 ⎞
⎜⎜ ⎟⎟⎜⎜ ⎟⎟ = ⎜⎜ ⎟⎟
⎝ 3 7 ⎠⎝ 23 11 ⎠ ⎝ 3 × 7 + 7 × 23 3 × 18 + 7 × 11 ⎠

⎛ 261 286 ⎞ ⎛ 1 0 ⎞
= ⎜⎜ ⎟⎟ = ⎜⎜ ⎟⎟
⎝ 182 131 ⎠ ⎝ 0 1 ⎠

(H·y nhí r»ng mäi phÐp to¸n sè häc ®Òu ®−îc thùc hiÖn theo
modulo 26).
Sau ®©y lμ mét vÝ dô minh ho¹ cho viÖc m· ho¸ vμ gi¶i m·
trong hÖ mËt m· Hill.
Ch−¬ng 3: MËt m· cæ ®iÓn 67

VÝ dô 3.5:

⎛11 8 ⎞
Gi¶ sö khãa k = ⎜⎜ ⎟⎟
⎝ 3 7⎠

Tõ c¸c tÝnh to¸n trªn, ta cã:

⎛ 7 18 ⎞
k −1 = ⎜⎜ ⎟⎟
⎝ 23 11 ⎠

Gi¶ sö cÇn m· ho¸ b¶n râ "July". Ta cã hai phÇn tö cña b¶n


râ ®Ó m· ho¸: (9, 20 ) (øng víi Ju) vμ (11, 24 ) (øng víi ly). Ta tÝnh
nh− sau:

⎛11 8 ⎞
(9 20 )⎜⎜ ⎟⎟ = (99 + 60 72 + 140 ) = (3 4 )
⎝ 3 7⎠

⎛11 8 ⎞
(11 24 ) ⎜⎜ ⎟⎟ = (121 + 72 88 + 168 ) = (11 22)
⎝ 3 7⎠

Bëi vËy, b¶n m· cña July lμ DELW. §Ó gi¶i m·, Bob sÏ tÝnh:

(3 4 ).k −1 = (9 20 ) vμ (11 22).k −1 = (11 24 )

Nh− vËy, Bob ®· nhËn ®−îc b¶n ®óng.


Cho tíi lóc nμy, ta ®· chØ ra r»ng cã thÓ thùc hiÖn phÐp gi¶i
m· nÕu k cã mét nghÞch ®¶o. Trªn thùc tÕ, ®Ó phÐp gi¶i m· lμ cã
thÓ thùc hiÖn ®−îc, ®iÒu kiÖn cÇn lμ k ph¶i cã nghÞch ®¶o. (§iÒu
nμy dÔ dμng rót ra tõ ®¹i sè tuyÕn tÝnh s¬ cÊp, tuy nhiªn sÏ kh«ng
chøng minh ë ®©y). Bëi vËy, ta chØ quan t©m tíi c¸c ma trËn k
kh¶ nghÞch.
TÝnh kh¶ nghÞch cña mét ma trËn vu«ng phô thuéc vμo gi¸
trÞ ®Þnh thøc cña nã. §Ó tr¸nh sù tæng qu¸t ho¸ kh«ng cÇn thiÕt,
ta chØ giíi h¹n trong tr−êng hîp 2 × 2 .
68 Gi¸o tr×nh MËt m· häc

§Þnh nghÜa 3.2:


§Þnh thøc cña ma trËn A = (ai, j ) cÊp 2 × 2 lμ gi¸ trÞ

det A = a1,1a 2, 2 − a1, 2 a 2,1

NhËn xÐt: §Þnh thøc cña mét ma trËn vu«ng cÊp mm cã thÓ
®−îc tÝnh theo c¸c phÐp to¸n hμng s¬ cÊp (h·y xem mét gi¸o tr×nh
bÊt kú vÒ ®¹i sè tuyÕn tÝnh).
Hai tÝnh chÊt quan träng cña ®Þnh thøc lμ det I m = 1 vμ quy
t¾c nh©n det (AB ) = det A × det B .

Mét ma trËn thùc k lμ cã nghÞch ®¶o khi vμ chØ khi ®Þnh thøc
cña nã kh¸c 0. Tuy nhiªn, ®iÒu quan träng cÇn nhí lμ ta ®ang lμm
viÖc trªn Z 26 . KÕt qu¶ t−¬ng øng lμ ma trËn k cã nghÞch ®¶o theo
modulo 26 khi vμ chØ khi ¦CLN(det k, 26) = 1.
Sau ®©y sÏ chøng minh ng¾n gän kÕt qu¶ nμy.
Tr−íc tiªn, gi¶ sö r»ng ¦CLN(det k, 26) = 1. Khi ®ã det k cã
nghÞch ®¶o trong Z 26 . Víi 1 ≤ i ≤ m , 1 ≤ j ≤ m , ®Þnh nghÜa k i j lμ

ma trËn thu ®−îc tõ k b»ng c¸ch lo¹i bá hμng thø i vμ cét thø j. Vμ
®Þnh nghÜa ma trËn k * cã phÇn tö (i, j) cña nã nhËn gi¸ trÞ

(− 1)i+ j det k ji ( k * ®−îc gäi lμ ma trËn bï ®¹i sè cña k). Khi ®ã, cã

thÓ chøng tá r»ng:

k −1 = (det k ) k *
−1

Bëi vËy k lμ kh¶ nghÞch.

Ng−îc l¹i, k cã nghÞch ®¶o k −1 . Theo quy t¾c nh©n cña


®Þnh thøc:
Ch−¬ng 3: MËt m· cæ ®iÓn 69

( )
1 = det I = det k k −1 = det k det k −1

Bëi vËy det k cã nghÞch ®¶o trong Z 26 .

NhËn xÐt: C«ng thøc ®èi víi k −1 ë trªn kh«ng ph¶i lμ mét
c«ng thøc tÝnh to¸n cã hiÖu qu¶ trõ c¸c tr−êng hîp m nhá (ch¼ng
h¹n m = 2, 3). Víi m lín, ph−¬ng ph¸p thÝch hîp ®Ó tÝnh c¸c ma
trËn nghÞch ®¶o ph¶i dùa vμo c¸c phÐp to¸n hμng s¬ cÊp.

Trong tr−êng hîp 2 × 2 , ta cã c«ng thøc sau:

§Þnh lý 3.1:

Gi¶ sö A = (ai j ) lμ mét ma trËn cÊp 2 × 2 trªn Z 26 sao cho

det A = a1,1 a 2, 2 − a1, 2 a 2,1 cã nghÞch ®¶o. Khi ®ã:

−1 ⎛ a 2, 2 − a1, 2 ⎞
A −1 = (det A ) ⎜⎜ ⎟
⎝ − a 2,1 a1,1 ⎟⎠

Trë l¹i vÝ dô ®· xÐt ë trªn. Tr−íc hÕt ta cã:

⎛11 8 ⎞
det ⎜⎜ ⎟⎟ = 11 × 7 − 8 × 3 mod 2
⎝ 3 7⎠
= 77 − 24 mod 26 = 53 mod 26 = 1

V× 1 −1 mod 26 = 1 nªn ma trËn nghÞch ®¶o lμ:

−1
⎛11 8 ⎞ ⎛ 7 18 ⎞
⎜⎜ ⎟⎟ = ⎜⎜ ⎟⎟
⎝ 3 7⎠ ⎝ 23 11 ⎠

§©y chÝnh lμ ma trËn ®· cã ë trªn.

B©y giê ta sÏ m« t¶ chÝnh x¸c mËt m· Hill trªn Z26 (h×nh 3.2).
70 Gi¸o tr×nh MËt m· häc

Cho m lµ mét sè nguyªn d−¬ng cè ®Þnh. Cho P = C = (Z26)m vµ cho


K = { c¸c ma trËn kh¶ nghÞch cÊp m x n trªn Z26}
Víi mét khãa k ∈ K, ta x¸c ®Þnh:
ek(x) = xk
vµ dk(y) = yk-1
TÊt c¶ c¸c phÐp to¸n ®−îc thùc hiÖn trong Z26

H×nh 3.2: MËt m· Hill

3.5. HÖ mËt x©y dùng trªn c¸c cÊp sè nh©n xyclic

trªn vμnh ®a thøc

Trong phÇn nμy ta xÐt mét øng dông cña nhãm nh©n xyclic
trªn vμnh ®a thøc Z2 [x ] xn + 1 víi n = 2k . §©y lμ mét tr−êng hîp
®Æc biÖt kh«ng ®−îc xem xÐt tíi khi x©y dùng c¸c m· khèng chÕ
sai. Tuy nhiªn, tr−êng hîp nμy l¹i cã nh÷ng øng dông kh¸ lý thó
trong mËt m· [4].

3.5.1. Nhãm nh©n cña vμnh

Bæ ®Ò 3.1:

Trong vμnh Z2 [x ] xn + 1 víi n = 2k , tËp c¸c ®a thøc cã träng sè


lÎ sÏ t¹o nªn mét nhãm nh©n c¸c ®a thøc theo modulo xn + 1 .
Chøng minh:

( )
V× n = 2k nªn: xn + 1 = (1 + x )n .

Do ®ã, mäi ®a thøc a(x) cã träng sè lÎ ®Òu tháa m·n ®iÒu kiÖn:

(a(x), (1 + x) ) = 1
n
(3.1)

C¸c ®a thøc nμy sÏ t¹o nªn mét nhãm nh©n G cã lòy ®¼ng
e(x ) = 1 vμ cã cÊp b»ng: G = 2n −1 .
Ch−¬ng 3: MËt m· cæ ®iÓn 71

Bæ ®Ò 3.2:
Mäi phÇn tö trong nhãm nh©n G cã cÊp lμ 2k hoÆc cã cÊp lμ
−íc cña 2k .
Chøng minh:
§©y lμ mét tr−êng hîp riªng cña ®Þnh lý ë phÇn 2.4.10. Ta cã
thÓ chøng minh b»ng qui n¹p:
k = 1: vμnh nμy chøa nhãm nh©n cÊp 2 lμ nhãm nh©n xyclic
®¬n vÞ I.

k = i : Gi¶ sö A = {a(x ), a2 (x ), a3 (x ),K , an (x )} lμ mét nhãm

nh©n xyclic cÊp n trong vμnh ( n = 2i ).

k = i+1: B×nh ph−¬ng c¸c phÇn tö cña A ta cã nhãm nh©n


xyclic sau:

A 2 = {a2 (x ), a4 (x ), a6 (x ), K , a2n (x )}

Nhãm nh©n xyclic nμy hiÓn nhiªn lμ nhãm con cña nhãm
nh©n xyclic cÊp 2.2i = 2i +1 cã phÇn tö sinh lμ mét trong c¸c c¨n bËc
hai cña a (x ) .

Gäi Q lμ tËp c¸c thÆng d− bËc hai trong G. Ta cã bæ ®Ò sau:

Bæ ®Ò 3.3:
Sè c¸c thÆng d− bËc hai trong nhãm nh©n G cña vμnh ®−îc
x¸c ®Þnh theo biÓu thøc sau:
k −1
−1
Q = 22 (3.2)

Chøng minh: XÐt f (x ) ∈ Q . Gi¶ sö c¨n bËc hai cña f(x) lμ g(x ) ,
tøc lμ:
72 Gi¸o tr×nh MËt m· häc

g 2 (x ) = f (x ) mod xn + 1

NÕu g (x ) = ∑g x i
i
th× f (x ) = ∑g x i
2i
.

Tøc lμ f(x) (cã träng sè lÎ) chØ gåm mét sè lÎ c¸c ®¬n thøc cã
mò ch½n.
Sè l−îng c¸c ®a thøc nμy b»ng:

Q = C1n 2 + C3n 2 + K + Cn(n 22 )−1 = 2(n 2 )−1 .

3.5.2. C¸c phÇn tö cÊp n vμ c¸c nhãm nh©n xyclic cÊp n

XÐt a(x ) ∈ G . a(x ) = ∑ a x . Ta cã bæ ®Ò sau:


i
i

Bæ ®Ò 3.4:
§a thøc a(x) lμ phÇn tö cÊp n khi nã cã chøa mét sè lÎ c¸c
®¬n thøc cã mò lÎ cã cÊp n vμ mét sè ch½n c¸c ®¬n thøc cã mò
ch½n cã cÊp lμ −íc cña n. Sè c¸c ®a thøc cÊp n b»ng 2n −2 .
Chøng minh: V× a(x ) ∈ G nªn nã cã träng sè lÎ. Sè l−îng c¸c
®¬n thøc cã cÊp n lμ (n/2) vμ sè l−îng c¸c ®¬n thøc cßn l¹i lμ (n/2).
Nh− vËy, sè c¸c ®a thøc a(x) cã cÊp n b»ng:

⎛ ⎞⎛ ⎞

⎜ ∑ C2ni 2−1 ⎟⎜
⎟⎜ ∑ Cn2 j2 ⎟ = 2(n 2 )−12(n 2 )−1 = 2n − 2

⎝ i ⎠⎝ j ⎠

VÝ dô 3.6: n = 8

Cã tÊt c¶ 26 = 64 c¸c phÇn tö cÊp n.


Ta cã thÓ sö dông c¸c phÇn tö nμy ®Ó x©y dùng c¸c nhãm
nh©n xyclic cÊp n.
Ch−¬ng 3: MËt m· cæ ®iÓn 73

A i = { a i (x ), a2i (x ), a3i (x ), K ani −1 (x ), ani (x ) = a0i (x ) = 1 }

Cã tÊt c¶ 2n −2 c¸c nhãm nh©n xyclic cÊp n vμ nhãm nh©n I


còng thuéc vμo líp c¸c nhãm nh©n nμy. Ta gäi nã lμ nhãm nh©n
xyclic ®¬n vÞ.

3.5.3. HÖ mËt x©y dùng trªn c¸c cÊp sè nh©n xyclic

3.5.3.1. C¸c cÊp sè nh©n xyclic cÊp n

NÕu ta nh©n c¸c phÇn tö cña mét nhãm nh©n xyclic cÊp n víi
mét phÇn tö bÊt kú trong nhãm nhãm nh©n G cña vμnh ®a thøc ta
sÏ thu ®−îc mét cÊp sè nh©n xyclic cã c«ng béi lμ phÇn tö sinh cña
nhãm nh©n vμ cã sè h¹ng ban ®Çu lμ ®a thøc ®em nh©n.

Bæ ®Ò 3.5:

Sè c¸c cÊp sè nh©n xyclic cÊp n x©y dùng ®−îc trong G ®−îc
x¸c ®Þnh theo biÓu thøc sau:
k
−2 k
−2
N = 22 .22 (3.3)
VÝ dô 3.7:
n=8 N = 28 −1.28 − 2 = 213 = 8.192
n = 16 N = 216 −1.216 −2 = 229 = 65.011.712
n = 32 N = 232 −1.232 − 2 = 261
n = 64 N = 264 −1.264 − 2 = 2125
n = 128 N = 2128 −1.2128 − 2 = 2253

3.5.3.2. HÖ mËt x©y dùng trªn c¸c cÊp sè nh©n xyclic

Mçi cÊp sè nh©n xyclic cÊp n cã thÓ coi lμ mét phÐp biÕn ®æi
tuyÕn tÝnh cña vector m· ban ®Çu (®−îc coi lμ nhãm nh©n xyclic
®¬n vÞ I) .
74 Gi¸o tr×nh MËt m· häc

Gäi α lμ phÇn tö sinh cña mét nhãm nh©n xyclic cÊp n. Ta cã


bæ ®Ò sau:

Bæ ®Ò 3.6:
Tæng c¸c sè h¹ng cña mét cÊp sè nh©n xyclic cÊp n cã c«ng
béi α vμ sè h¹ng ®Çu β ®−îc x¸c ®Þnh theo biÓu thøc sau:

Sn = β⎢ ∏(
⎡ k −1 i ⎤
1 + α2 ⎥ ) (3.4)
⎣⎢ i = 0 ⎥⎦

HiÓn nhiªn lμ Sn ≠ 0 .

HÖ mËt x©y dùng trªn c¸c cÊp sè nh©n nμy cã thÓ ®−îc m« t¶
theo s¬ ®å khèi sau:

HÖ mËt
I A(α, β)
M· hãa
Vµo Ra
A(α, β)

Khãa α β

A(α, β) I
Gi¶i m·
Vµo Ra
A (α, β)

Khãa α β

H×nh 3.3
Mçi phÐp biÕn ®æi (m· ho¸) A cã thÓ ®−îc ®Æc tr−ng bëi mét
ma trËn vu«ng cÊp n cã d¹ng sau:
β.α
β.α 2
A=
M
β.α 0
Ch−¬ng 3: MËt m· cæ ®iÓn 75

A lμ mét ma trËn kh«ng suy biÕn vμ bëi vËy, lu«n tån t¹i A −1
tho¶ m·n:

A.A −1 = A −1 .A = I

TËp c¸c phÐp biÕn ®æi nμy lμ mét tËp kÝn ®èi víi phÐp tÝnh
(nh©n ma trËn) vμ t¹o nªn mét nhãm nh©n cã phÇn tö ®¬n vÞ lμ
phÐp biÕn ®æi ®ång nhÊt (ma trËn ®¬n vÞ I).
Nhãm nh©n trong vμnh c¸c ma trËn vu«ng nμy lμ nhãm
tuyÕn tÝnh ®Çy ®ñ vμ ®−îc ký hiÖu lμ GL(n, GF(2)).
ThuËt to¸n m· ho¸ kh¸ ®¬n gi¶n, chØ dùa trªn phÐp to¸n
(
nh©n vμ b×nh ph−¬ng mét ®a thøc a(x ) ∈ G theo modulo x n + 1 )
(a(x) cã cÊp n) víi mét ®a thøc b(x) bÊt kú ∈ G .

3.5.3.3. VÊn ®Ò gi¶i m·

§Ó gi¶i m· ta ph¶i t×m phÐp biÕn ®æi ng−îc A −1 lμ ma trËn


nghÞch ®¶o cña ma trËn A. Tuy nhiªn ta cã thÓ dÔ dμng thùc hiÖn
gi¶i m· dùa trªn bæ ®Ò sau:

Bæ ®Ò 3.7:

Ma trËn A cã cÊp (order) hoÆc lμ n, hoÆc lμ −íc cña n. Tøc lμ


ta lu«n cã:

An = I
2

Hay ⎜⎝( )
⎛ ⎛ 2 2 ⎞2 ⎞
⎜⎜ A ⎟ K⎟⎟
⎝1442⎠443 ⎠
k lÇn

ë ®©y, A ®−îc xem lμ phÇn tö sinh cña mét nhãm nh©n xyclic
cã cÊp b»ng n hoÆc b»ng −íc cña n.
76 Gi¸o tr×nh MËt m· häc

VÝ dô 3.8: n = 8
A, = { (012), (024 ), 01356, (4 ), (456 ), (046 ), (12457 ), (0 ) }

Ma trËn t−¬ng øng:

1 1 0 0 0 0 0 1
0 1 0 1 0 0 0 1
1 0 1 0 1 1 0 1
0 0 0 1 0 0 0 0
A=
0 0 0 1 1 1 0 0
0 0 0 1 0 1 0 1
1 1 0 1 1 0 1 0
0 0 0 0 0 0 0 1

A 2 = { (014 ), (2), (236 ), (4 ), (045 ), (6 ), (267 ), (0 ) }


A 3 = { (124 ), (024 ), (01235 ), (4 ), (046 ), (046 ), (14567 ), (0 ) } = A −1
A 4 = I = { (1), (2), (3 ), (4 ), (5 ), (6 ), (7 ), (0 ) }

Chó ý: ë ®©y ta biÓu diÔn c¸c ®a thøc qua c¸c sè mò cña c¸c
thμnh phÇn kh¸c kh«ng. VÝ dô: (012345 ) = 1 + x + x 2 + x 3 + x 5 .
Vμo M· hãa Ra Vμo Gi¶i m· Ra
I → A → A A → (A2)2 = I

VÝ dô 3.9:

XÐt cÊp sè nh©n cã c«ng béi (023) víi sè h¹ng ®Çu (023) (012) = (015).

B = {(015), (12457), (03467), (456), (145), (01356), (02347), (012)}

B2 = {(124), (136), (346), (035), (056), (257), (027), (147)}


B3 = {(02567), (047), (167), (23567), (12346), (034), (235), (12367)}

B4 ={(02456), (13567), (02467), (01357), (01246), (12357), (02346),


(13457)}
Ch−¬ng 3: MËt m· cæ ®iÓn 77

B5 = {(347), (12345), (01245), (146), (037), (01567), (012346), (013457)}


B6 = {(245), (123), (467), (345), (016), (567), (023), (017) }
B7 = {(24567), (236), (127), (01347), (01236), (267), (356), (03457)} = B−1
B8 = I = {(1), (2), (3), (4), (5), (6), (7), (0)}

( ) ⎞⎟⎠
2
I = ⎛⎜ B 2
2

ThuËt to¸n gi¶i m· chØ lμ mét thuËt to¸n lÆp cña thuËt to¸n
m· ho¸. Sè lÇn lÆp tèi ®a lμ k.

3.5.3.4. C¸c ma trËn lu©n hoμn


Khi sö dông cÊp sè nh©n cã c«ng béi x vμ cã sè h¹ng ®Çu lμ
mét ®a thøc a(x ) ∈ G ta sÏ cã mét líp c¸c biÕn ®æi ®Æc biÖt, ®−îc ®Æc
tr−ng bëi mét lo¹i ma trËn ®Æc biÖt, ®−îc gäi lμ ma trËn lu©n hoμn.

§Þnh nghÜa 3.3:


Ma trËn vu«ng A n×n trªn tr−êng F ®−îc gäi lμ ma trËn lu©n
hoμn nÕu nã cã d¹ng sau:
a(x ) a0 a1 K a n −1
xa(x ) a n −1 a 0 K a n −2
A= = a∈F
K M M M
x n −1 a(x ) a1 a2 K a0

Bæ ®Ò 3.8:
§¹i sè c¸c ma trËn lu©n hoμn cÊp n trªn tr−êng F ®¼ng cÊu
( )
víi ®¹i sè F[x ] x n − 1 ®èi víi phÐp ¸nh x¹ c¸c ma trËn lu©n hoμn
thμnh c¸c ®a thøc d¹ng:

n −1
a(x ) = ∑a x
i =0
i
i
78 Gi¸o tr×nh MËt m· häc

Bæ ®Ò 3.9:
Tæng vμ tÝch cña hai ma trËn lu©n hoμn lμ mét ma trËn
lu©n hoμn.
Ta cã: A.B = C

Trong ®ã: c(x ) = a(x ).b(x ) mod x n − 1 ( )


Bæ ®Ò 3.10:
Ma trËn lu©n hoμn A lμ kh¶ nghÞch khi vμ chØ khi ®a thøc
( )
a(x) lμ nguyªn tè cïng nhau víi x n − 1 . Ma trËn nghÞch ®¶o B nÕu
tån t¹i sÏ t−¬ng øng víi b(x) tháa m·n ®iÒu kiÖn:

(
a(x ).b(x ) ≡ 1 mod x 2 − 1
k
)
( )
Trong tr−êng hîp vμnh GF2 [x] x n + 1 vμ a(x ) ∈ G , ta lu«n cã:

(a(x), (x 2k
)
+ 1 = ⎛⎜ a(x ), (x + 1) ⎞⎟ = 1 .

2k

Bæ ®Ò 3.11:
TËp c¸c ma trËn lu©n hoμn A øng víi a(x ) ∈ G sÏ t¹o nªn mét
nhãm con nh©n Abel trong nhãm nh©n cña vμnh c¸c ma trËn
vu«ng. Trong nhãm nμy tån t¹i c¸c nhãm con lμ c¸c nhãm nh©n
xyclic cã cÊp b»ng n hoÆc −íc cña n.
Mèi quan hÖ gi÷a nhãm nh©n cña vμnh ®a thøc vμ nhãm nh©n
cña vμnh c¸c ma trËn vu«ng ®−îc m« t¶ trªn h×nh sau (h×nh 3.4).

Bæ ®Ò 3.12:
CÊp cña ma trËn lu©n hoμn A b»ng cÊp cña ®a thøc a(x)
t−¬ng øng cña nã.
Ch−¬ng 3: MËt m· cæ ®iÓn 79

Khi ord (a(x)) = 2 th× ma trËn lu©n hoμn A t−¬ng øng lμ mét
ma trËn tù nghÞch ®¶o.

Vµnh GF2 [x]/x2k + 1

Nhãm nh©n G

Nhãm nh©n
lu©n hoµn

Vµnh c¸c ma trËn vu«ng cÊp 2 k

Nhãm nh©n cña vµnh ma trËn

Nhãm nh©n c¸c ma trËn


lu©n hoµn cã a(x) G

Ma trËn ®¬n vÞ

H×nh 3.4: Quan hÖ gi÷a vµnh ®a thøc vµ vµnh ma trËn

Bæ ®Ò 3.13:

Sè c¸c ma trËn lu©n hoμn dïng ®Ó lËp m· b»ng sè c¸c phÇn


tö cña nhãm nh©n trong vμnh ®a thøc.
Trong tr−êng hîp ma trËn lu©n hoμn, thuËt to¸n m· ho¸ chØ
lμ mét phÐp céng víi n b−íc dÞch vßng.
80 Gi¸o tr×nh MËt m· häc

ThuËt to¸n gi¶i m· bao gåm mét phÐp tÝnh nghÞch ®¶o cña
( )
mét ®a thøc theo modulo x n + 1 vμ n b−íc dÞch vßng t−¬ng øng
cña phÇn tö nghÞch ®¶o nμy.
VÝ dô 3.10: a(x ) = 1 + x + x 2

A= { (012), (123), (234), (345), (456), (567) (670), (701)}


A2 = { (124), (135), (246), (357), (460), (571), (602), (713)}
A3 ={(01356), (12467), (23570), (34601), (45712), (56023), (67134),
(70245)}
A4 = {(4), (5), (6), (7), (0), (1), (2), (3)}
A5 = {(456), (567), (670), (701), (012), (123), (234), (345)}
A6 = {(460), (571), (602), (713), (024), (135), (246), (357)}
A7 = {(12457), (23560), (34671), (45702), (56031), (67124), (70235),
(01346)} = A−1.
A8 = {(1), (2), (3), (4), (5), (6), (7), (0) } = I.

Vµo
(7) (6) (5) (4) (3) (2) (1) (0)
(10110101)
(00001000)
Ra
A = {(0)', (1)',..., (7)'}

H×nh 3.5: S¬ ®å thiÕt bÞ m· ho¸

Vµo
(7)' (6)' (5)' (4)' (3)' (2)' (1)' (0)'
(00001000)
(10110101)
Ra
A = {(0), (1),..., (7)}

H×nh 3.6: S¬ ®å thiÕt bÞ gi¶i m·


Ch−¬ng 3: MËt m· cæ ®iÓn 81

a −1 (x ) = x + x 2 + x 4 + x 5 + x 7

Ta cã:
1 1 1 0 0 0 0 0 0 1 1 0 1 1 0 1
0 1 1 1 0 0 0 0 1 0 1 1 0 1 1 0
0 0 1 1 1 0 0 0 0 1 0 1 1 0 1 1
0 0 0 1 1 1 0 0 1 0 1 0 1 1 0 1
A.A −1 = ×
0 0 0 0 1 1 1 0 1 1 0 1 0 1 1 0
0 0 0 0 0 1 1 1 0 1 1 0 1 0 1 1
0 0 0 0 0 0 1 1 1 0 1 1 0 1 0 1
0 0 0 0 0 0 0 1 1 1 0 1 1 0 1 0

1 0 0 0 0 0 0 0
0 1 0 0 0 0 0 0
0 0 1 0 0 0 0 0
0 0 0 1 0 0 0 0
= =I
0 0 0 0 1 0 0 0
0 0 0 0 0 1 0 0
0 0 0 0 0 0 1 0
0 0 0 0 0 0 0 1

3.6. M· Affine

MDV lμ mét tr−êng hîp ®Æc biÖt cña MTT chØ gåm 26 trong
sè 26! c¸c ho¸n vÞ cã thÓ cña 26 phÇn tö. Mét tr−êng hîp ®Æc biÖt
kh¸c cña MTT lμ m· Affine ®−îc m« t¶ d−íi ®©y. Trong m· Affine,
ta giíi h¹n chØ xÐt c¸c hμm m· cã d¹ng:
e(x ) = ax + b mod 26

a, b ∈ Z 26 . C¸c hμm nμy ®−îc gäi lμ c¸c hμm Affine (chó ý r»ng khi

a = 1, ta cã MDV).
82 Gi¸o tr×nh MËt m· häc

§Ó viÖc gi¶i m· cã thÓ thùc hiÖn ®−îc, yªu cÇu cÇn thiÕt lμ
hμm Affine ph¶i lμ ®¬n ¸nh. Nãi c¸ch kh¸c, víi bÊt kú y ∈ Z 26 , ta
muèn cã ®ång nhÊt thøc sau:
ax + b ≡ y (mod 26 )

ph¶i cã nghiÖm x duy nhÊt. §ång d− thøc nμy t−¬ng ®−¬ng víi:
ax ≡ y − b (mod 26 )

V× y thay ®æi trªn Z 26 nªn y − b còng thay ®æi trªn Z 26 . Bëi


vËy, ta chØ cÇn nghiªn cøu ph−¬ng tr×nh ®ång d−:
ax ≡ y (mod 26 ) (y ∈ Z 26 )
Ta biÕt r»ng, ph−¬ng tr×nh nμy cã mét nghiÖm duy nhÊt ®èi
víi mçi y khi vμ chØ khi ¦CLN(a, 26) = 1 (ë ®©y hμm ¦CLN lμ −íc
chung lín nhÊt cña c¸c biÕn cña nã). Tr−íc tiªn ta gi¶ sö r»ng,
¦CLN(a, 26) = d > 1. Khi ®ã, ®ång d− thøc ax ≡ 0 (mod 26 ) sÏ cã Ýt
nhÊt hai nghiÖm ph©n biÖt trong Z 26 lμ x = 0 vμ x = 26/d. Trong

tr−êng hîp nμy, e(x ) = ax + b mod 26 kh«ng ph¶i lμ mét hμm ®¬n
¸nh vμ bëi vËy nã kh«ng thÓ lμ hμm m· ho¸ hîp lÖ.
VÝ dô 3.11: Do ¦CLN(4, 26) = 2 nªn 4 x + 7 kh«ng lμ hμm m·
ho¸ hîp lÖ: x vμ x + 13 sÏ m· ho¸ thμnh cïng mét gi¸ trÞ ®èi víi
bÊt k× x ∈ Z 26 .

Ta gi¶ thiÕt ¦CLN(a, 26) = 1. Gi¶ sö víi x1 vμ x 2 nμo ®ã


tháa m·n:
ax 1 ≡ ax 2 (mod 26 )

Khi ®ã:
a(x1 − x 2 ) ≡ 0 (mod 26 )
Ch−¬ng 3: MËt m· cæ ®iÓn 83

bëi vËy
26 a(x1 − x 2 )

B©y giê ta sÏ sö dông mét tÝnh chÊt cña phÐp chia sau: NÕu
¦CLN(a, b) = 1 vμ a bc th× a c. V× 26 a(x1 − x2 ) vμ

− CLN(a, 26 ) = 1 nªn ta cã:

26 (x1 − x2 )
tøc lμ
x1 ≡ x2 (mod 26 )

Tíi ®©y ta ®· chøng tá r»ng, nÕu ¦CLN(a, 26) = 1 th× mét


®ång d− thøc d¹ng ax ≡ y (mod 26 ) chØ cã (nhiÒu nhÊt) mét nghiÖm
trong Z 26 . Do ®ã, nÕu ta cho x thay ®æi trªn Z 26 th× ax mod 26 sÏ
nhËn ®−îc 26 gi¸ trÞ kh¸c nhau theo modulo 26 vμ ®ång d− thøc
ax ≡ y (mod 26 ) chØ cã mét nghiÖm y duy nhÊt.

Kh«ng cã g× ®Æc biÖt ®èi víi sè 26 trong kh¼ng ®Þnh nμy. Bëi
vËy, b»ng c¸ch t−¬ng tù, ta cã thÓ chøng minh ®−îc kÕt qu¶ sau:

§Þnh lý 3.2:

§ång d− thøc ax ≡ b mod m chØ cã mét nghiÖm duy nhÊt


x ∈ Zm víi mäi b ∈ Zm khi vμ chØ khi ¦CLN(a, m) = 1.

V× 26 = 2 × 13 nªn c¸c gi¸ trÞ a ∈ Z26 tháa m·n ¦CLN(a, 26) =


1 lμ a = 1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23 vμ 25. Tham sè b cã
thÓ lμ mét phÇn tö bÊt kú trong Z26. Nh− vËy, m· Affine cã
12 × 26 = 312 khãa cã thÓ (dÜ nhiªn, con sè nμy lμ qu¸ nhá ®Ó b¶o
®¶m an toμn).
84 Gi¸o tr×nh MËt m· häc

B©y giê, ta sÏ xÐt bμi to¸n chung víi modulo m. Ta cÇn mét
®Þnh nghÜa kh¸c trong lý thuyÕt sè.

§Þnh nghÜa 3.4:

Gi¶ sö a ≥ 1 vμ m ≥ 2 lμ c¸c sè nguyªn. ¦CLN(a, m) = 1 th×


ta nãi r»ng a vμ m lμ nguyªn tè cïng nhau. Sè c¸c sè nguyªn
trong Z m nguyªn tè cïng nhau víi m th−êng ®−îc ký hiÖu lμ φ(m )
(hμm nμy ®−îc gäi lμ hμm phi-Euler).
Mét kÕt qu¶ quan träng trong lý thuyÕt sè cho ta gi¸ trÞ cña
φ(m ) theo c¸c thõa sè trong phÐp ph©n tÝch theo lòy thõa c¸c sè
nguyªn tè cña m (Mét sè nguyªn p > 1 lμ sè nguyªn tè nÕu nã
kh«ng cã −íc d−¬ng nμo kh¸c ngoμi 1 vμ p). Mäi sè nguyªn m > 1
cã thÓ ph©n tÝch ®−îc thμnh tÝch cña c¸c lòy thõa c¸c sè nguyªn tè
theo c¸ch duy nhÊt. VÝ dô 60 = 23 × 3 × 5 vμ 98 = 2 × 72 ).
Ta sÏ ghi l¹i c«ng thøc cho φ(m ) trong ®Þnh lý sau:

§Þnh lý 3.3:
n
Gi¶ sö m = ∏
i =1
p ei i

Trong ®ã c¸c sè nguyªn tè p i kh¸c nhau vμ e i > 0, 1 ≤ i ≤ n .


Khi ®ã:

φ(m ) = ∏ (pei i
− p ei i −1 )
i =1

§Þnh lý nμy cho thÊy r»ng, sè khãa trong m· Affine trªn Zm


b»ng mφ(m ) , trong ®ã φ(m ) ®−îc cho theo c«ng thøc trªn (Sè c¸c
Ch−¬ng 3: MËt m· cæ ®iÓn 85

phÐp chän cña b lμ m vμ sè c¸c phÐp chän cña a lμ φ(m ) víi hμm
m· ho¸ lμ e(x ) = ax + b ).

VÝ dô, khi m = 60, φ(60 ) = 2 × 2 × 4 = 16 vμ sè c¸c khãa trong m·


Affine lμ 960.
B©y giê, ta sÏ xÐt xem c¸c phÐp to¸n gi¶i m· trong mËt m·
Affine víi modulo m = 26. Gi¶ sö ¦CLN(a, m) = 1. §Ó gi¶i m· cÇn
gi¶i ph−¬ng tr×nh ®ång d− y ≡ ax + b (mod 26 ) theo x. Tõ th¶o luËn
trªn thÊy r»ng, ph−¬ng tr×nh nμy cã mét nghiÖm duy nhÊt trong
Z26. Tuy nhiªn, ta vÉn ch−a biÕt mét ph−¬ng ph¸p h÷u hiÖu ®Ó t×m
nghiÖm. §iÒu cÇn thiÕt ë ®©y lμ cã mét thuËt to¸n h÷u hiÖu ®Ó
lμm viÖc ®ã. RÊt may lμ mét sè kÕt qu¶ tiÕp sau vÒ sè häc modulo
sÏ cung cÊp mét thuËt to¸n gi¶i m· h÷u hiÖu cÇn t×m.

§Þnh nghÜa 3.5:


Gi¶ sö a ∈ Zm . PhÇn tö nghÞch ®¶o (theo phÐp nh©n) cña a

lμ phÇn tö a −1 ∈ Zm sao cho a.a −1 = a −1 .a = 1 (mod m ) .

B»ng c¸c lý luËn t−¬ng tù nh− trªn, cã thÓ chøng tá r»ng a cã


nghÞch ®¶o theo modulo m khi vμ chØ khi ¦CLN(a, m) = 1 vμ nÕu
nghÞch ®¶o nμy tån t¹i th× nã ph¶i lμ duy nhÊt. Ta còng thÊy r»ng,
nÕu b = a −1 th× a = b−1 . NÕu p lμ sè nguyªn tè th× mäi phÇn tö
kh¸c kh«ng cña Zp ®Òu cã nghÞch ®¶o. Mét vμnh trong ®ã mäi

phÇn tö kh¸c 0 ®Òu cã nghÞch ®¶o ®−îc gäi lμ mét tr−êng.


Trong [3] cã mét thuËt to¸n h÷u hiÖu ®Ó tÝnh c¸c nghÞch ®¶o
cña Z m víi m tïy ý. Tuy nhiªn, trong Z 26 , chØ b»ng ph−¬ng ph¸p
thö vμ sai còng cã thÓ t×m ®−îc c¸c nghÞch ®¶o cña c¸c phÇn tö
nguyªn tè cïng nhau víi 26:
86 Gi¸o tr×nh MËt m· häc

1−1 = 1 , 3 −1 = 9, 5 −1 = 21, 7 −1 = 15, 11−1 = 19, 17 −1 = 23, 25 −1 = 25.

(Cã thÓ dÔ dμng kiÓm chøng l¹i ®iÒu nμy, vÝ dô:


7 × 5 = 105 ≡ 1 mod 26 , bëi vËy 7−1 = 15 ).

XÐt ph−¬ng tr×nh ®ång d− y ≡ ax + b (mod 26 ) . Ph−¬ng tr×nh


nμy t−¬ng ®−¬ng víi

ax ≡ y − b (mod 26 )

V× ¦CLN(a, 26) = 1 nªn a cã nghÞch ®¶o theo modulo 26.


Nh©n c¶ hai vÕ cña ®ång d− thøc víi a −1 , ta cã:

a −1 (ax ) ≡ a −1 (y − b) (mod 26 )

¸p dông tÝnh kÕt hîp cña phÐp nh©n modulo:

( )
a −1 (ax ) ≡ a −1 .a x = 1.x = x

KÕt qu¶ lμ x ≡ a −1 (y − b) (mod 26 ) . §©y lμ mét c«ng thøc


t−êng minh cho x. Nh− vËy hμm gi¶i m· lμ:

d(y ) = a −1 (y − b) mod 26

H×nh 3.7 cho m« t¶ ®Çy ®ñ vÒ m· Affine. Sau ®©y lμ mét vÝ


dô nhá.

VÝ dô 3.12:

Gi¶ sö k = (7, 3 ) . Nh− ®· nªu ë trªn, 7 −1 mod 26 = 15 . Hμm


m· ho¸ lμ:
Ch−¬ng 3: MËt m· cæ ®iÓn 87

e k (x ) = 7x + 3

Vμ hμm gi¶i m· t−¬ng øng lμ:

d k (x ) = 15(y − 3 ) = 15 y − 19

ë ®©y, tÊt c¶ c¸c phÐp to¸n ®Òu thùc hiÖn trªn Z 26 . Ta sÏ


kiÓm tra liÖu d k (e k (x )) = x víi mäi x ∈ Z 26 kh«ng? Dïng c¸c tÝnh
to¸n trªn Z 26 , ta cã:

d k (e k (x )) = d k (7x + 3 )
= 15(7x + 3 ) − 19
= x + 45 − 19
=x

Cho P = C = Z26 vµ gi¶ sö:


K = {(a, b) ∈ Z26 × Z26: ¦CLN(a, 26 = 1}
Víi k = (a, b) ∈ K, ta ®Þnh nghÜa:
ek(x) = ax + b mod 26
vµ dk(y) = a-1(y – b) mod 26

H×nh 3.7: M· Affine


§Ó minh häa, ta h·y m· ho¸ b¶n râ "hot". Tr−íc tiªn, biÕn
®æi c¸c ch÷ h, o, t thμnh c¸c thÆng d− theo modulo 26. Ta ®−îc c¸c
sè t−¬ng øng lμ 7, 14 vμ 19. B©y giê sÏ m· ho¸:
7 × 7 + 3 mod 26 = 52 mod 26 = 0
7 × 14 + 3 mod 26 = 101 mod 26 = 23
7 × 19 + 3 mod 26 = 136 mod 26 = 6

Bëi vËy, ba ký hiÖu cña b¶n m· lμ 0, 23 vμ 6, t−¬ng øng víi


x©u ký tù AXG. ViÖc gi¶i m· sÏ do b¹n ®äc thùc hiÖn nh− mét
bμi tËp.
88 Gi¸o tr×nh MËt m· häc

3.7. C¸C HÖ MËT M· TÝCH

Mét ph¸t minh kh¸c do Shannon ®−a ra trong bμi b¸o cña
m×nh n¨m 1949 lμ ý t−ëng kÕt hîp c¸c hÖ mËt b»ng c¸ch t¹o tÝch
cña chóng. ý t−ëng nμy cã tÇm quan träng to lín trong viÖc thiÕt
kÕ c¸c hÖ mËt hiÖn nay (ch¼ng h¹n, chuÈn m· d÷ liÖu - DES ).
§Ó ®¬n gi¶n, trong phÇn nμy chØ h¹n chÕ xÐt c¸c hÖ mËt
trong ®ã C = P : c¸c hÖ mËt lo¹i nμy ®−îc gäi lμ tù ®ång cÊu. Gi¶ sö
S1 = (P, P, K 1 , E1 , D1 ) vμ S 2 = (P, P, K 2 , E 2 , D 2 ) lμ hai hÖ mËt tù
®ång cÊu cã cïng c¸c kh«ng gian b¶n m· vμ râ. Khi ®ã, tÝch cña S1
vμ S2 (kÝ hiÖu lμ S1 × S 2 ) ®−îc x¸c ®Þnh lμ hÖ mËt sau:

(P, P, K 1 × K 2 , E, D)

Khãa cña hÖ mËt tÝch cã d¹ng k = (k1 , k 2 ) trong ®ã k1 ∈ K 1


vμ k 2 ∈ K 2 . C¸c quy t¾c m· vμ gi¶i m· cña hÖ mËt tÝch ®−îc x¸c
®Þnh nh− sau: Víi mçi k = (k1 , k 2 ) , ta cã mét quy t¾c m· e k x¸c
®Þnh theo c«ng thøc:

( )
e (k1 , k2 ) (x ) = e k2 e k1 (x )

vμ quy t¾c gi¶i m·:

(
d (k1 , k2 ) (y ) = d k1 d k2 (y ) )
NghÜa lμ, tr−íc tiªn ta m· ho¸ x b»ng e k1 råi m· l¹i b¶n kÕt

qu¶ b»ng e k2 . Qu¸ tr×nh gi¶i m· t−¬ng tù nh−ng thùc hiÖn theo

thø tù ng−îc l¹i:


Ch−¬ng 3: MËt m· cæ ®iÓn 89

( ) ( ( ))
d (k1 , k 2 ) e (k1 , k 2 ) (x ) = d (k1 , k 2 ) e k 2 e k1 (x )
= d k1 (d k (e k (e k (x ))))
(e k (x ))
2 2 1

= d k1 1

=x

Ta biÕt r»ng, c¸c hÖ mËt ®Òu cã c¸c ph©n bè x¸c suÊt øng víi
c¸c kh«ng gian khãa cña chóng. Bëi vËy, cÇn ph¶i x¸c ®Þnh ph©n
bè x¸c suÊt cho kh«ng gian khãa K cña hÖ mËt tÝch. HiÓn nhiªn
ta cã thÓ viÕt:

p K (k1 , k 2 ) = p K1 (k1 ) × p K 2 (k 2 )

Nãi mét c¸ch kh¸c, ta chän k1 cã ph©n bè pK1 råi chän mét

c¸ch ®éc lËp k 2 cã ph©n bè p K 2 (k 2 ) .

Sau ®©y lμ mét vÝ dô ®¬n gi¶n ®Ó minh häa kh¸i niÖm hÖ mËt
tÝch. Gi¶ sö ®Þnh nghÜa hÖ mËt m· nh©n nh− trong h×nh 3.8 sau.

Gi¶ sö P = C = Z26 vµ gi¶ sö:


k = {a, Z26: ¦CLN(a, 26) = 1}
Víi a ∈ K, ta x¸c ®Þnh: ea(x) = ax mod 26
vµ da(y) = a-1y mod 26
(x, y) ∈ Z

H×nh 3.8: M· nh©n

Cho M lμ mét hÖ m· nh©n (víi c¸c khãa ®−îc chän ®ång x¸c
suÊt) vμ S lμ MDV (víi c¸c khãa chän ®ång x¸c suÊt). Khi ®ã dÔ
dμng thÊy r»ng M × S chÝnh lμ hÖ m· Affine (cïng víi c¸c khãa
®−îc chän ®ång x¸c suÊt). Tuy nhiªn, viÖc chøng tá S × M còng lμ
hÖ m· Affine khã h¬n mét chót (còng víi c¸c khãa ®ång x¸c suÊt).
90 Gi¸o tr×nh MËt m· häc

Ta sÏ chøng minh c¸c kh¼ng ®Þnh nμy. Mét khãa dÞch vßng lμ
phÇn tö k ∈ Z26 vμ quy t¾c gi¶i m· t−¬ng øng lμ e k (x ) = x + k mod 26 .
Cßn khãa trong hÖ m· nh©n lμ phÇn tõ a ∈ Z 26 sao cho ¦CLN(a,
26) = 1. Quy t¾c m· t−¬ng øng lμ ea (x ) = a mod 26 . Bëi vËy, mét
khãa trong m· tÝch M × S cã d¹ng (a, k ) , trong ®ã

e (a, k ) (x ) = ax + k mod 26

§©y chÝnh lμ ®Þnh nghÜa vÒ khãa trong hÖ m· Affine. H¬n


n÷a, x¸c suÊt cña mét khãa trong hÖ m· Affine lμ:
1 312 = (1 12) × (1 26 ) . §ã lμ tÝch cña x¸c suÊt t−¬ng øng cña c¸c
khãa a vμ k. Bëi vËy M × S lμ hÖ m· Affine.
B©y giê ta sÏ xÐt S × M . Mét khãa nμy trong hÖ m· nμy cã
d¹ng (k, a ) , trong ®ã:

e (k, a ) (x ) = a(x + k ) = ax + ak mod 26

Nh− vËy, khãa (k, a ) cña m· tÝch S × M ®ång nhÊt víi khãa
(a, ak ) cña hÖ m· Affine. VÊn ®Ò cßn l¹i lμ ph¶i chøng tá r»ng mçi
khãa cña m· Affine xuÊt hiÖn víi cïng x¸c suÊt 1/312 nh− trong
m· tÝch S × M . NhËn thÊy r»ng ak = k1 khi vμ chØ khi k = a −1k1 ,
(h·y nhí l¹i r»ng ¦CLN(a, 26) = 1, bëi vËy a cã phÇn tö nghÞch
®¶o). Nãi c¸ch kh¸c, khãa (a, k1 ) cña hÖ m· Affine t−¬ng ®−¬ng

( )
víi khãa a −1k1 , a cña m· tÝch S × M . Bëi vËy, ta cã mét song ¸nh
gi÷a hai kh«ng gian khãa. V× mçi khãa lμ ®ång x¸c suÊt nªn cã thÓ
thÊy r»ng S× M thùc sù lμ m· Affine.
Ta chøng minh r»ng M × S = S × M . Bëi vËy, hai hÖ mËt lμ
giao ho¸n. Tuy nhiªn, kh«ng ph¶i mäi cÆp hÖ mËt ®Òu giao ho¸n;
Ch−¬ng 3: MËt m· cæ ®iÓn 91

cã thÓ t×m ra ®−îc c¸c cÆp ph¶n vÝ dô. MÆt kh¸c ta thÊy r»ng phÐp
tÝch lu«n kÕt hîp:

(S1 × S2 ) × S3 = S1 × (S2 × S3 )
NÕu lÊy tÝch cña mét hÖ mËt tù ®ång cÊu víi chÝnh nã th× ta
thu ®−îc hÖ mËt S × S (kÝ hiÖu lμ S2 ). NÕu lÊy tÝch n lÇn th× hÖ
mËt kÕt qu¶ lμ Sn . Ta gäi Sn lμ hÖ mËt lÆp.

Mét hÖ mËt S ®−îc gäi lμ lòy ®¼ng nÕu S2 = S . Cã nhiÒu hÖ


mËt ®· nghiªn cøu trong ch−¬ng 1 lμ hÖ mËt lòy ®¼ng. Ch¼ng h¹n
c¸c hÖ MDV, MTT, Affine, Hill, VigenÌre vμ ho¸n vÞ ®Òu lμ lòy
®¼ng. HiÓn nhiªn lμ nÕu hÖ mËt S lμ lòy ®¼ng th× kh«ng nªn sö
dông hÖ mËt tÝch S2 v× nã yªu cÇu l−îng khãa cùc lín mμ kh«ng cã
®é b¶o mËt cao h¬n.
NÕu mét hÖ mËt kh«ng ph¶i lμ lòy ®¼ng th× cã thÓ lμm t¨ng
®é mËt b»ng c¸ch lÆp nhiÒu lÇn. ý t−ëng nμy ®· ®−îc dïng trong
chuÈn m· d÷ liÖu (DES). Trong DES dïng 16 phÐp lÆp, tÊt nhiªn
hÖ mËt ban ®Çu ph¶i lμ hÖ mËt kh«ng lòy ®¼ng. Mét ph−¬ng ph¸p
cã thÓ x©y dùng c¸c hÖ mËt kh«ng lòy ®¼ng ®¬n gi¶n lμ lÊy tÝch
cña hai hÖ mËt ®¬n gi¶n kh¸c nhau.

NhËn xÐt:
Cã thÓ dÔ dμng chøng tá r»ng, nÕu c¶ hai hÖ mËt S1 vμ S2 lμ
lòy ®¼ng vμ giao ho¸n th× S1 vμ S2 còng lμ lòy ®¼ng. §iÒu nμy rót
ra tõ c¸c phÐp to¸n ®¹i sè sau:
(S1 × S2 ) × (S1 × S2 ) = S1 × (S2 × S1 ) × S2
= S1 × (S1 × S2 ) × S2
= (S1 × S1 ) × (S2 × S2 )
= S1 × S2
92 Gi¸o tr×nh MËt m· häc

(Chó ý: Dïng tÝnh chÊt kÕt hîp trong chøng minh trªn).
Bëi vËy, nÕu c¶ S1 vμ S2 ®Òu lμ lòy ®¼ng vμ ta muèn S1 × S 2
lμ kh«ng lòy ®¼ng th× ®iÒu kiÖn cÇn lμ S1 vμ S2 kh«ng giao ho¸n.

RÊt may m¾n lμ nhiÒu hÖ mËt ®¬n gi¶n tháa m·n ®iÒu kiÖn
trªn. Kü thuËt th−êng ®−îc sö dông trong thùc tÕ lμ lÊy tÝch c¸c
hÖ m· kiÓu thay thÕ vμ c¸c hÖ m· kiÓu ho¸n vÞ.

3.8. C¸c hÖ m· dßng


Trong c¸c hÖ mËt nghiªn cøu ë trªn, c¸c phÇn tö liªn tiÕp cña
b¶n râ ®Òu ®−îc m· ho¸ b»ng cïng mét khãa k. Tøc x©u b¶n m· y
nhËn ®−îc cã d¹ng:

y = y1 y 2 K = e k (x1 )e k (x 2 )K

C¸c hÖ mËt thuéc d¹ng nμy th−êng ®−îc gäi lμ c¸c m· khèi.
Mét quan ®iÓm sö dông kh¸c lμ mËt m· dßng. ý t−ëng c¬ b¶n ë
®©y lμ t¹o ra mét dßng khãa z = z1z 2 K vμ dïng nã ®Ó m· ho¸ mét
x©u b¶n râ x = x1 x 2 K theo quy t¾c:

y = y1 y 2 K = e z1 (x1 )e z2 (x 2 )K

M· dßng ho¹t ®éng nh− sau. Gi¶ sö k ∈ K lμ khãa vμ


x = x1 x 2 K lμ x©u b¶n râ. Hμm f i ®−îc dïng ®Ó t¹o z i ( z i lμ phÇn
tö thø i cña dßng khãa), trong ®ã f i lμ mét hμm cña khãa k vμ
i − 1 lμ ký tù ®Çu tiªn cña b¶n râ:

z i = fi (k, x1 , K, x i −1 )

PhÇn tö z i cña dßng khãa ®−îc dïng ®Ó m· x i t¹o ra


y i = e iz (x i ) . Bëi vËy, ®Ó m· ho¸ x©u b¶n râ x 1 x 2 K ta ph¶i tÝnh
liªn tiÕp z1 , y1 , z 2 , y 2 , K
Ch−¬ng 3: MËt m· cæ ®iÓn 93

ViÖc gi¶i m· x©u b¶n m· y 1 y 2 K cã thÓ ®−îc thùc hiÖn b»ng


c¸ch tÝnh liªn tiÕp z1 , x 1 , z 2 , x 2 , K

Sau ®©y lμ ®Þnh nghÜa d−íi d¹ng to¸n häc:

§Þnh nghÜa 3.6

MËt m· dßng lμ mét bé (P, C, K , L, F, E, D ) tho¶ m·n c¸c


®iÒu kiÖn sau:
1. P lμ mét tËp h÷u h¹n c¸c b¶n râ cã thÓ.
2. C lμ tËp h÷u h¹n c¸c b¶n m· cã thÓ.
3. K lμ tËp h÷u h¹n c¸c khãa cã thÓ (kh«ng gian khãa).
4. L lμ tËp h÷u h¹n c¸c bé ch÷ cña dßng khãa.
5. F = (f1 f2 K) lμ bé t¹o dßng khãa . Víi i ≥ 1

fi : K × P i −1 → L

6. Víi mçi z ∈ L cã mét quy t¾c m· e z ∈ E vμ mét quy t¾c


gi¶i m· t−¬ng øng d z ∈ D . e z : P → C vμ d z : C → P lμ c¸c hμm
tho¶ m·n d z (e z (x )) = x víi mäi b¶n râ x ∈ P .

Ta cã thÓ coi m· khèi lμ mét tr−êng hîp ®Æc biÖt cña m·


dßng, trong ®ã dïng khãa kh«ng ®æi: Z i = k víi mäi i ≥ 1 .

Sau ®©y lμ mét sè d¹ng ®Æc biÖt cña m· dßng cïng víi c¸c vÝ
dô minh häa. M· dßng ®−îc gäi lμ ®ång bé nÕu dßng khãa kh«ng
phô thuéc vμo x©u b¶n râ, tøc lμ nÕu dßng khãa ®−îc t¹o ra chØ lμ
hμm cña khãa k. Khi ®ã, ta coi k lμ mét "mÇm" ®Ó më réng thμnh
dßng khãa z1z 2 K

Mét hÖ m· dßng ®−îc gäi lμ tuÇn hoμn víi chu kú d nÕu


z i + d = z i víi mäi sè nguyªn i ≥ 1 . M· VigenÌre víi ®é dμi tõ khãa
94 Gi¸o tr×nh MËt m· häc

m cã thÓ coi lμ m· dßng tuÇn hoμn víi chu kú m. Trong tr−êng hîp
nμy, khãa lμ k = (k1 , K, k m ) . B¶n th©n k sÏ t¹o m phÇn tö ®Çu tiªn
cña dßng khãa: z i = k i , 1 ≤ i ≤ m . Sau ®ã, dßng khãa sÏ tù lÆp l¹i.
NhËn thÊy r»ng, trong m· dßng t−¬ng øng víi mËt m· VigenÌre,
c¸c hμm m· vμ gi¶i m· ®−îc dïng gièng nh− c¸c hμm m· vμ gi¶i
m· ®−îc dïng trong MDV:

e z (x ) = x + z vμ d z (y ) = y − z

C¸c m· dßng th−êng ®−îc m« t¶ trong c¸c bé ch÷ nhÞ ph©n


tøc lμ P = C = L = Z 2 . Trong tr−êng hîp nμy, c¸c phÐp to¸n m· vμ
gi¶i m· lμ phÐp céng theo modulo 2.

e z (x ) = x + z mod 2 vμ d z (y ) = y − z mod 2

NÕu ta coi "0" biÓu thÞ gi¸ trÞ "sai" vμ "1" biÓu thÞ gi¸ trÞ
"®óng" trong ®¹i sè Boolean th× phÐp céng theo modulo 2 sÏ øng
víi phÐp hoÆc cã lo¹i trõ. Bëi vËy, phÐp m· (vμ gi¶i m· ) dÔ dμng
thùc hiÖn b»ng m¹ch cøng.
Ta xem xÐt mét ph−¬ng ph¸p t¹o mét dßng khãa (®ång bé)
kh¸c. Gi¶ sö b¾t ®Çu víi (k1 , K, k m ) vμ z i = k i , 1 ≤ i ≤ m (còng
gièng nh− tr−íc ®©y), tuy nhiªn b©y giê ta t¹o dßng khãa theo mét
quan hÖ ®Ö quy tuyÕn tÝnh cÊp m:
m −1
zi +m = ∑
j= 0
c jz i + j mod 2

trong ®ã c 0 , K , c m −1 ∈ Z 2 lμ c¸c h»ng sè cho tr−íc.

NhËn xÐt:
PhÐp ®Ö quy ®−îc nãi lμ cã bËc m v× mçi sè h¹ng phô thuéc
vμo m sè h¹ng ®øng tr−íc. PhÐp ®Ö quy nμy lμ tuyÕn tÝnh bëi v×
Ch−¬ng 3: MËt m· cæ ®iÓn 95

Z i + m lμ mét hμm tuyÕn tÝnh cña c¸c sè h¹ng ®øng tr−íc. Chó ý ta
cã thÓ lÊy c 0 = 1 mμ kh«ng lμm mÊt tÝnh tæng qu¸t. Trong tr−êng
hîp ng−îc l¹i, phÐp ®Ö quy sÏ cã bËc m - 1.
ë ®©y khãa k gåm 2m gi¸ trÞ k1 , K, k m , c 0 , K, c m−1 . NÕu
(k1 , K, k m ) = (0, K, 0) th× dßng khãa sÏ chøa toμn c¸c sè 0. DÜ
nhiªn ph¶i tr¸nh ®iÒu nμy v× khi ®ã b¶n m· sÏ ®ång nhÊt víi b¶n
râ. Tuy nhiªn, nÕu chän thÝch hîp c¸c h»ng sè c 0 , K , c m −1 th× mét
vector khëi ®Çu bÊt k× kh¸c (k1 , K, k m ) sÏ t¹o nªn mét dßng khãa

cã chu kú 2 m − 1 . Bëi vËy, mét khãa ng¾n sÏ t¹o nªn mét dßng
khãa cã chu kú rÊt lín. §©y lμ mét tÝnh chÊt rÊt ®¸ng l−u t©m v×
ta sÏ thÊy ë phÇn sau, mËt m· VigenÌre cã thÓ bÞ th¸m nhê tËn
dông yÕu tè dßng khãa cã chu kú ng¾n.
Sau ®©y lμ mét vÝ dô minh häa:
VÝ dô 3.13:
Gi¶ sö m = 4 vμ dßng khãa ®−îc t¹o b»ng quy t¾c:

z i +4 = z i + z i +1 mod 2

NÕu dßng khãa b¾t ®Çu mét vector bÊt kú kh¸c víi vector
(0, 0, 0, 0) th× ta thu ®−îc dßng khãa cã chu kú 15. VÝ dô b¾t ®Çu
b»ng vector (1, 0, 0, 0 ) , dßng khãa sÏ lμ:

1, 0, 0, 0, 1, 0, 0, 1, 1, 0, 1, 0, 1, 1, 1

Mét vector khëi ®Çu kh¸c kh«ng bÊt kú kh¸c sÏ t¹o mét ho¸n
vÞ vßng (cyclic) cña cïng dßng khãa.
Mét h−íng ®¸ng quan t©m kh¸c cña ph−¬ng ph¸p t¹o dßng
khãa hiÖu qu¶ b»ng phÇn cøng lμ sö dông bé ghi dÞch håi tiÕp
96 Gi¸o tr×nh MËt m· häc

tuyÕn tÝnh (hay LFSR). Ta dïng mét bé ghi dÞch cã m tÇng.


Vector (k1 , K, k m ) sÏ ®−îc dïng ®Ó khëi t¹o (®Æt c¸c gi¸ trÞ ban
®Çu) cho thanh ghi dÞch. ë mçi ®¬n vÞ thêi gian, c¸c phÐp to¸n sau
sÏ ®−îc thùc hiÖn ®ång thêi.
1. k 1 ®−îc tÝnh ra dïng lμm bit tiÕp theo cña dßng khãa.

2. k 2 , K, k m sÏ ®−îc dÞch mét tÇng vÒ phÝa tr¸i.

3. Gi¸ trÞ míi cña k m sÏ ®−îc tÝnh b»ng:

m −1


j= 0
c jk j + 1

(®©y lμ håi tiÕp tuyÕn tÝnh).


Ta thÊy r»ng, thao t¸c tuyÕn tÝnh sÏ ®−îc tiÕn hμnh b»ng
c¸ch lÊy tÝn hiÖu ra tõ mét sè tÇng nhÊt ®Þnh cña thanh ghi (®−îc
x¸c ®Þnh bëi c¸c h»ng sè c j cã gi¸ trÞ "1") vμ tÝnh tæng theo modulo

2 (lμ phÐp hoÆc lo¹i trõ). H×nh 3.9 cho m« t¶ cña LFSR dïng ®Ó
t¹o dßng khãa cho vÝ dô 3.13.

k1 k2 k3 k4

H×nh 3.9: Thanh ghi dÞch håi tiÕp tuyÕn tÝnh (LFSR)
Mét vÝ dô vÒ m· dßng kh«ng ®ång bé lμ m· khãa tù sinh
®−îc cho ë h×nh 3.10. Cã nhiÒu kh¶ n¨ng mËt m· nμy do
VigenÌre ®Ò xuÊt.
Ch−¬ng 3: MËt m· cæ ®iÓn 97

Cho P = C = k = L = Z26
Cho z1 = k vµ zi = xi-1 (i ≥ 2)
Víi 0 ≤ z ≤ 25, ta x¸c ®Þnh
ez(x) = x + z mod 26
dz(y) = y - z mod 26
(x, y) ∈ Z26

H×nh 3.10: MËt m· khãa tù sinh

Lý do sö dông thuËt ng÷ "khãa tù sinh" lμ ë chç b¶n râ ®−îc


dïng lμm khãa (ngoμi "khãa khëi thñy" ban ®Çu k).

Sau ®©y lμ mét vÝ dô minh häa.

VÝ dô 3.14:

Gi¶ sö khãa lμ k = 8 vμ b¶n râ lμ rendezvous. Tr−íc tiªn, ta


biÕn ®æi b¶n râ thμnh d·y c¸c sè nguyªn:

17 4 13 3 4 25 21 14 20 18

Dßng khãa nh− sau:

8 17 4 13 3 4 25 21 14 20

B©y giê ta céng c¸c phÇn tö t−¬ng øng råi rót gän theo
modulo 26:

25 21 17 16 7 3 20 9 8 12

B¶n m· ë d¹ng ký tù lμ: ZVRQHDUJIM.

B©y giê ta xem Alice gi¶i m· b¶n m· nμy nh− thÕ nμo. Tr−íc
tiªn, Alice biÕn ®æi x©u ký tù thμnh d·y sè:

25 21 17 16 7 3 20 9 8 12
98 Gi¸o tr×nh MËt m· häc

Sau ®ã c« ta tÝnh:
x1 = d 8 (25 ) = 25 − 8 mod 26 = 17

vμ x 2 = d17 (21) = 21 − 17 mod 26 = 4

vμ cø tiÕp tôc nh− vËy. Mçi khi Alice nhËn ®−îc mét ký tù
cña b¶n râ, c« ta sÏ dïng nã lμm phÇn tö tiÕp theo cña dßng khãa.
DÜ nhiªn lμ m· dïng khãa tù sinh lμ kh«ng an toμn do chØ cã
26 khãa.

3.9. ChuÈn m· d÷ liÖu

3.9.1. Më ®Çu

Ngμy 15/5/1973. ñy ban Tiªu chuÈn quèc gia Mü ®· c«ng bè


mét khuyÕn nghÞ cho c¸c hÖ mËt trong Hå s¬ qu¶n lý cña Liªn
bang. §iÒu nμy cuèi cïng ®· dÉn ®Õn sù ph¸t triÓn cña ChuÈn m·
d÷ liÖu (DES) vμ nã ®· trë thμnh mét hÖ mËt ®−îc sö dông réng
r·i nhÊt trªn thÕ giíi. DES ®−îc IBM ph¸t triÓn vμ ®−îc xem nh−
mét c¶i biªn cña hÖ mËt LUCIPHER. DES ®−îc c«ng bè lÇn ®Çu
tiªn trong Hå s¬ Liªn bang vμo ngμy 17/3/1975. Sau nhiÒu cuéc
tranh luËn c«ng khai, DES ®· ®−îc chÊp nhËn chän lμm chuÈn
cho c¸c øng dông kh«ng ®−îc coi lμ mËt vμo ngμy 5/01/1977. KÓ tõ
®ã cø 5 n¨m mét lÇn, DES l¹i ®−îc ñy ban Tiªu chuÈn Quèc gia
xem xÐt l¹i. LÇn ®æi míi gÇn ®©y nhÊt cña DES lμ vμo th¸ng
01/1994 vμ tiÕp lμ n¨m 1998. Vμo n¨m 2001 chuÈn mËt m· tiªn
tiÕn (AES) ®· ®−îc chÊp nhËn ®Ó thay thÕ cho DES.

3.9.2. M« t¶ DES
M« t¶ ®Çy ®ñ cña DES ®−îc nªu trong C«ng bè sè 46 vÒ c¸c
chuÈn xö lý th«ng tin Liªn bang (Mü) vμo ngμy 15/01/1977. DES
Ch−¬ng 3: MËt m· cæ ®iÓn 99

m· ho¸ mét x©u bit x cña b¶n râ ®é dμi 64 b»ng mét khãa 54 bit.
B¶n m· nhËn ®−îc còng lμ mét x©u bit cã ®é dμi 64. Tr−íc hÕt ta
m« t¶ ë møc cao vÒ hÖ thèng.
ThuËt to¸n tiÕn hμnh theo 3 giai ®o¹n:
1. Víi b¶n râ cho tr−íc x, mét x©u bit x 0 sÏ ®−îc x©y dùng
b»ng c¸ch ho¸n vÞ c¸c bit cña x theo phÐp ho¸n vÞ cè ®Þnh ban ®Çu
IP. Ta viÕt:
x0 = IP(x) = L0R0, trong ®ã L0 gåm 32 bit ®Çu vμ R0 lμ 32 bit cuèi.
2. Sau ®ã tÝnh to¸n 16 lÇn lÆp theo mét hμm x¸c ®Þnh. Ta sÏ
tÝnh L i R i , 1 ≤ i ≤ 16 theo quy t¾c sau:

L i = R i −1
R i = L i −1 ⊕ f (R i −1 , k i )

trong ®ã ⊕ kÝ hiÖu phÐp hoÆc lo¹i trõ cña hai x©u bit (céng
theo modulo 2). f lμ mét hμm mμ ta sÏ m« t¶ ë sau, cßn
k1 , k 2 , K, k16 lμ c¸c x©u bit ®é dμi 48 ®−îc tÝnh nh− hμm cña khãa
k (trªn thùc tÕ mçi k i lμ mét phÐp chän ho¸n vÞ bit trong k).

k1 , k 2 , K, k16 sÏ t¹o thμnh b¶ng khãa. Mét vßng cña phÐp m·


ho¸ ®−îc m« t¶ trªn h×nh 3.9.

Li-1 R i-1

f Ki

Li Ri

H×nh 3.11: Mét vßng cña DES


100 Gi¸o tr×nh MËt m· häc

3. ¸p dông phÐp ho¸n vÞ ng−îc IP −1 cho x©u bit R16 L16 , ta

thu ®−îc b¶n m· y. Tøc lμ y = IP −1 (R16 L 16 ) . H·y chó ý thø tù ®·


®¶o cña L 16 vμ R16 .

Hμm f cã hai biÕn vμo: biÕn thø nhÊt A lμ x©u bit ®é dμi 32,
biÕn thø hai J lμ mét x©u bit ®é dμi 48. §Çu ra cña f lμ mét x©u bit
®é dμi 32. C¸c b−íc sau ®−îc thùc hiÖn:
1. BiÕn thø nhÊt A ®−îc më réng thμnh mét x©u bit ®é dμi
48 theo mét hμm më réng cè ®Þnh E.(EA) gåm 32 bit cña A (®−îc
ho¸n vÞ theo c¸ch cè ®Þnh) víi 16 bit xuÊt hiÖn hai lÇn.
2. TÝnh E(A ) ⊕ J vμ viÕt kÕt qu¶ thμnh mét chuçi 8 x©u mçi
x©u lμ 6 bit = B1B 2 B 3 B 4 B 5 B 6 B 7 B 8 .

3. B−íc tiÕp theo dïng 8 b¶ng S1 , S 2 , K, S8 (®−îc gäi lμ c¸c


hép S). Víi mçi Si lμ mét b¶ng 4×16 cè ®Þnh cã c¸c hμng lμ c¸c sè
nguyªn tõ 0 ®Õn 15. Víi x©u bit cã ®é dμi 6 (kÝ hiÖu
Bi = b1b 2 b 3 b 4 b 5 b 6 ), ta tÝnh S j (B j ) nh− sau: hai bit b1b 6 x¸c ®Þnh
biÓu diÔn nhÞ ph©n cña hμng r cña S j (0 ≤ r ≤ 3 ) vμ bèn bit

(b 2 b3b 4 b5 ) x¸c ®Þnh biÓu diÔn nhÞ ph©n cña cét c cña
S j (0 ≤ c ≤ 15 ) . Khi ®ã, S j (B j ) sÏ x¸c ®Þnh phÇn tö S j (r, c ) ; phÇn tö

nμy viÕt d−íi d¹ng nhÞ ph©n lμ mét x©u bit cã ®é dμi 4. (Bëi vËy,
mçi S j cã thÓ ®−îc coi lμ mét hμm m· mμ ®Çu vμo lμ mét x©u bit

cã ®é dμi 2 vμ mét x©u bit cã ®é dμi 4, cßn ®Çu ra lμ mét x©u bit cã
®é dμi 4). B»ng c¸ch t−¬ng tù tÝnh c¸c C j = S j (B j ), 1 ≤ j ≤ 8 .

4. X©u bit C = C1C 2 KC8 cã ®é dμi 32 ®−îc ho¸n vÞ theo phÐp


ho¸n vÞ cè ®Þnh P. X©u kÕt qu¶ lμ P (C) ®−îc x¸c ®Þnh lμ f (A, J ) .
Ch−¬ng 3: MËt m· cæ ®iÓn 101

A J

E(A)

B1 B2 B3 B4 B5 B6 B7 B8

S1 S2 S3 S4 S5 S6 S7 S8

c1 c2 c3 c4 c5 c6 c7 c8

f(A, J)

H×nh 3.12: Hµm f cña DES

Hμm f ®−îc m« t¶ trong h×nh 3.12. Chñ yÕu nã gåm mét phÐp
thÕ (sö dông hép S), tiÕp sau ®ã lμ phÐp ho¸n vÞ P. 16 phÐp lÆp
cña f sÏ t¹o nªn mét hÖ mËt tÝch nªu nh− ë phÇn 2.5.
Trong phÇn cßn l¹i cña môc nμy, ta sÏ m« t¶ hμm cô thÓ
®−îc dïng trong DES. PhÐp ho¸n vÞ ban ®Çu IP nh− sau:

IP
58 50 42 34 26 18 10 2
60 52 44 36 28 20 12 4
62 54 46 38 30 22 14 6
64 56 48 40 32 24 16 8
57 49 41 33 25 17 9 1
59 51 43 35 27 19 11 3
61 53 45 37 29 21 13 5
63 55 47 39 31 23 15 7
102 Gi¸o tr×nh MËt m· häc

B¶ng nμy cã nghÜa lμ bit thø 58 cña x lμ bit ®Çu tiªn cña
IP(x); bit thø 50 cña x lμ bit thø hai cña IP(x),...

PhÐp ho¸n vÞ ng−îc IP −1 lμ:


IP -1
40 8 48 16 56 24 64 32
39 7 47 15 55 23 63 31
38 6 46 14 54 22 62 30
37 5 45 13 53 21 61 29
36 4 44 12 52 20 60 28
35 3 43 11 51 19 59 27
34 2 42 10 50 18 58 26
33 1 41 9 49 17 57 25

Hμm më réng E ®−îc x¸c ®Þnh theo b¶ng sau:

B¶ng chän E bit


32 1 2 3 4 5
4 5 6 7 8 9
8 9 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 1

T¸m hép S lμ:

S1
14 4 13 1 2 15 11 8 3 10 6 12 5 9 0 7
0 15 7 4 14 2 13 1 10 6 12 11 9 5 3 8
4 1 14 8 13 6 2 11 15 12 9 7 3 10 5 0
15 12 8 2 4 9 1 7 5 11 3 14 10 0 6 13
Ch−¬ng 3: MËt m· cæ ®iÓn 103

S2
15 1 8 14 6 11 3 4 9 7 2 13 12 0 5 10
3 13 4 7 15 2 8 14 12 0 1 10 6 9 11 5
0 14 7 11 10 4 13 1 5 8 12 6 9 3 2 15
13 8 10 1 3 15 4 2 11 6 7 12 0 5 14 9

S3
10 0 9 14 6 3 15 5 1 13 12 7 11 4 2 8
13 7 0 9 3 4 6 10 2 8 5 14 12 11 15 1
13 6 4 9 8 15 3 0 11 1 2 12 5 10 14 7
1 10 13 0 6 9 8 7 4 15 14 3 11 5 2 12

S4
7 13 14 3 0 6 9 10 1 2 8 5 11 12 4 15
13 8 11 5 6 15 0 3 4 7 2 12 1 10 14 9
10 6 9 0 12 11 7 13 15 1 3 14 5 2 8 4
3 15 0 6 10 1 13 8 9 4 5 11 12 7 2 14

S5
2 12 4 1 7 10 11 6 8 5 3 15 13 0 14 9
14 11 2 12 4 7 13 1 5 0 15 10 3 9 8 6
4 2 1 11 10 13 7 8 15 9 12 5 6 3 0 14
11 8 12 7 1 14 2 13 6 15 0 9 10 4 5 3

S6
12 1 10 15 9 2 6 8 0 13 3 4 14 7 15 11
10 15 4 2 7 12 9 5 6 1 13 14 0 11 3 8
9 14 15 5 2 8 12 3 7 0 4 10 1 13 11 6
4 3 2 12 9 5 15 10 11 14 1 7 6 0 8 13

S7
4 11 2 14 15 0 8 13 3 12 9 7 5 10 6 1
13 0 11 7 4 9 1 10 14 3 5 12 2 15 8 6
1 4 11 13 12 3 7 14 10 15 6 8 0 5 9 2
6 11 13 8 1 4 10 7 9 5 0 15 14 2 3 12
104 Gi¸o tr×nh MËt m· häc

S8
13 2 8 4 6 15 11 1 10 9 3 14 5 0 12 7
1 15 13 8 10 3 7 4 12 5 6 11 0 14 9 2
7 11 4 1 9 12 14 2 0 6 10 13 15 3 5 8
2 1 14 7 4 10 8 13 15 12 9 0 3 5 6 11

Vμ phÐp ho¸n vÞ P cã d¹ng:

P
16 7 20 21
29 12 28 17
1 15 23 26
5 18 31 10
32 27 3 9
19 13 30 6
22 11 4 25

Cuèi cïng, ta cÇn m« t¶ viÖc tÝnh to¸n b¶ng khãa tõ khãa k.


Trªn thùc tÕ, k lμ mét x©u bit ®é dμi 64, trong ®ã 56 bit lμ khãa vμ
8 bit ®Ó kiÓm tra tÝnh ch½n lÎ nh»m ph¸t hiÖn sai. C¸c bit ë c¸c vÞ
trÝ 8, 16,..., 64 ®−îc x¸c ®Þnh sao cho mçi byte chøa mét sè lÎ c¸c
sè "1". Bëi vËy, mét sai sãt ®¬n lÎ cã thÓ ph¸t hiÖn ®−îc trong
mçi nhãm 8 bit. C¸c bit kiÓm tra bÞ bá qua trong qu¸ tr×nh tÝnh
b¶ng khãa.

1. Víi mét khãa k = 64 bit cho tr−íc, ta lo¹i bá c¸c bit kiÓm
tra tÝnh ch½n lÎ vμ ho¸n vÞ c¸c bit cßn l¹i cña k theo phÐp ho¸n vÞ
cè ®Þnh PC-1. Ta viÕt:

PC − 1(k ) = C 0 D0

2. Víi i thay ®æi tõ 1 ®Õn 16:


Ch−¬ng 3: MËt m· cæ ®iÓn 105

Ci = LSi (C i −1 )
D i = LSi (D i −1 )

ViÖc tÝnh b¶ng khãa ®−îc m« t¶ trªn h×nh 3.13.

PC - 1

C0 D0

LS1 LS1

C0 D0 PC - 2 K1

LS16 LS16

C16 D16 PC - 2 K16

H×nh 3.13: TÝnh b¶ng khãa DES

C¸c ho¸n vÞ PC-1 vμ PC-2 ®−îc dïng trong b¶ng khãa lμ:
PC-1
57 49 41 33 25 17 9
1 58 50 42 34 26 18
10 2 59 51 43 35 27
19 11 3 60 52 44 36
63 55 47 39 31 23 15
7 62 54 46 38 30 22
14 6 61 53 45 37 29
21 13 5 28 20 12 4
106 Gi¸o tr×nh MËt m· häc

PC-2
14 17 11 24 1 5
3 28 15 6 21 10
23 19 12 4 26 8
16 7 27 20 13 2
41 52 31 37 47 55
30 40 51 45 33 48
44 49 39 56 34 53
46 42 50 36 29 32

B©y giê ta sÏ ®−a ra b¶ng khãa kÕt qu¶. Nh− ®· nãi ë trªn,
mçi vßng sö dông mét khãa 48 bit gåm 48 bit n»m trong K. C¸c
phÇn tö trong c¸c b¶ng d−íi ®©y biÓu thÞ c¸c bit trong K trong c¸c
vßng khãa kh¸c nhau.

Vßng 1
10 51 34 60 49 17 33 57 2 9 19 42
3 35 26 25 44 58 59 1 36 27 18 41
22 28 39 54 37 4 47 30 5 53 23 29
61 21 38 63 15 20 45 14 13 62 55 31

Vßng 2
2 43 26 52 41 9 25 49 59 1 11 34
60 27 18 17 36 50 51 58 57 19 10 33
14 20 31 46 29 63 39 22 28 45 15 21
53 13 30 55 7 12 37 6 5 54 47 23

Vßng 3
51 27 10 36 25 58 9 33 43 50 60 18
44 11 2 1 49 34 35 42 41 3 59 17
61 4 15 30 13 47 23 6 12 29 62 5
37 28 14 39 54 63 21 53 20 38 31 7
Ch−¬ng 3: MËt m· cæ ®iÓn 107

Vßng 4
35 11 59 49 9 42 58 17 27 34 44 2
57 60 51 50 33 18 19 26 25 52 43 1
45 55 62 14 28 31 7 53 63 13 46 20
21 12 61 23 38 47 5 37 4 22 15 54

Vßng 5
19 60 43 33 58 26 42 1 11 18 57 51
41 44 35 34 17 2 3 10 9 36 27 50
29 39 46 61 12 15 54 37 47 28 30 4
5 63 45 7 22 31 20 21 55 6 62 38

Vßng 6
3 44 27 17 42 10 26 50 60 2 41 35
25 57 19 18 1 51 52 59 58 49 11 34
13 23 30 45 63 62 38 21 31 12 14 55
20 47 29 54 6 15 4 5 39 53 46 22

Vßng 7
52 57 11 1 26 59 10 34 44 51 25 19
9 41 3 2 50 35 36 43 42 33 60 18
28 7 14 29 47 46 22 5 15 63 61 39
4 31 13 38 53 62 55 20 23 37 30 6

Vßng 8
36 41 60 50 10 43 59 18 57 35 9 3
58 25 52 51 34 19 49 27 26 17 44 2
12 54 61 13 31 30 6 20 62 47 45 23
55 15 28 22 37 46 39 4 7 21 14 53

Vßng 9
57 33 52 42 2 35 51 10 49 27 1 60
50 17 44 43 26 11 41 19 18 9 36 59
4 46 53 5 23 22 61 12 54 39 37 15
47 7 20 14 29 38 31 63 62 13 6 45
108 Gi¸o tr×nh MËt m· häc

Vßng 10
41 17 36 26 51 19 35 59 33 11 50 44
34 1 57 27 10 60 25 3 2 58 49 43
55 30 37 20 7 6 45 63 38 23 21 62
31 54 4 61 13 22 15 47 46 28 53 29

Vßng 11
25 1 49 10 35 3 19 43 17 60 34 57
18 50 41 11 59 44 9 52 51 42 33 27
39 14 21 4 54 53 29 47 22 7 5 46
15 38 55 45 28 6 62 31 30 12 37 13

Vßng 12
9 50 33 59 19 52 3 27 1 44 18 41
2 34 25 60 43 57 58 36 35 26 17 11
23 61 5 55 38 37 13 31 6 54 20 30
62 22 39 29 12 53 46 15 14 63 21 28

Vßng 13
58 34 17 43 3 36 52 11 50 57 2 25
51 18 9 44 27 41 42 49 19 10 1 60
7 45 20 39 22 21 28 15 53 38 4 14
46 6 23 13 63 37 30 62 61 47 5 12

Vßng 14
42 18 1 27 52 49 36 60 34 41 51 9
35 2 58 57 11 25 26 33 3 59 50 44
54 29 4 23 6 5 12 62 37 22 55 61
30 53 7 28 47 21 14 46 45 31 20 63

Vßng 15
26 2 50 11 36 33 49 44 18 25 35 58
19 51 42 41 60 9 10 17 52 43 34 57
38 13 55 7 53 20 63 46 21 6 39 45
14 37 54 12 31 5 61 30 29 15 4 47
Ch−¬ng 3: MËt m· cæ ®iÓn 109

Vßng 16

18 59 42 3 57 25 41 36 10 17 27 50
11 43 34 33 52 1 2 9 44 35 26 49
30 5 47 62 45 12 55 38 13 61 31 37
6 29 46 4 23 28 53 22 21 7 63 39

PhÐp gi¶i m· ®−îc thùc hiÖn nhê dïng cïng thuËt to¸n nh−
phÐp m· nÕu ®Çu vμo lμ y nh−ng dïng b¶ng khãa theo thø tù
ng−îc l¹i K16,...K1. §Çu ra cña thuËt to¸n sÏ lμ b¶n râ x.

3.9.2. Mét vÝ dô vÒ DES

Sau ®©y lμ mét vÝ dô vÒ phÐp m· DES. Gi¶ sö ta m· b¶n râ


(ë d¹ng m· hexa - hÖ ®Õm 16):

0123456789ABCDEF

B»ng c¸ch dïng khãa

123457799BBCDFF1

Khãa ë d¹ng nhÞ ph©n (kh«ng chøa c¸c bit kiÓm tra) lμ:

00010010011010010101101111001001101101111011011111
111000

Sö dông IP, ta thu ®−îc L 0 vμ R 0 (ë d¹ng nhÞ ph©n) nh− sau:

L0 = 11001100000000001100110011111111
L1 = R0 = 11110000101010101111000010101010

Sau ®ã thùc hiÖn 16 vßng cña phÐp m· nh− sau:


110 Gi¸o tr×nh MËt m· häc

E(R0) = 011110100001010101010101011110100001010101010101
K1 = 000110110000001011101111111111000111000001110010
E(R0) ⊕ K1 = 011000010001011110111010100001100110010100100111
S-box outputs 01011100100000101011010110010111
f(R0,K1) = 00100011010010101010100110111011
L2 = R1 = 11101111010010100110010101000100

E(R1) = 011101011110101001010100001100001010101000001001
K2 = 011110011010111011011001110110111100100111100101
E(R1) ⊕ K2 = 000011000100010010001101111010110110001111101100
S-box outputs 11111000110100000011101010101110
f(R1,K2) = 00111100101010111000011110100011
L3 = R2 = 11001100000000010111011100001001

E(R2) = 111001011000000000000010101110101110100001010011
K3 = 010101011111110010001010010000101100111110011001
E(R2) ⊕ K3 = 101100000111110010001000111110000010011111001010
S-box outputs 00100111000100001110000101101111
f(R2,K3) = 01001101000101100110111010110000
L4 =R3 = 10100010010111000000101111110100

E(R3) =01010000010000101111100000000101011111111010100
K4 = 011100101010110111010110110110110011010100011101
E(R3) ⊕ K4 = 001000101110111100101110110111100100101010110100
S-box outputs 00100001111011011001111100111010
f(R3,K4) = 10111011001000110111011101001100
L5 = R4 = 01110111001000100000000001000101

E(R4) = 101110101110100100000100000000000000001000001010
K5 = 011111001110110000000111111010110101001110101000
E(R4) ⊕ K5 = 110001100000010100000011111010110101000110100010
S-box outputs 01010000110010000011000111101011
f(R4,K5) = 00101000000100111010110111000011
L6 = R5 = 10001010010011111010011000110111
Ch−¬ng 3: MËt m· cæ ®iÓn 111

E(R5) = 110001010100001001011111110100001100000110101111
K6 = 011000111010010100111110010100000111101100101111
E(R5) ⊕ K6 =101001101110011101100001100000001011101010000000
S-box outputs 01000001111100110100110000111101
f(R5,K6) = 10011110010001011100110100101100
L7 = R6 = 11101001011001111100110101101001

E(R6) = 111101010010101100001111111001011010101101010011
K7 = 111011001000010010110111111101100001100010111100
E(R6) ⊕ K7 = 000110011010111110111000000100111011001111101111
S- box outputs 00010000011101010100000010101101
f(R6,K7) = 10001100000001010001110000100111
L8 = R7 = 00000110010010101011101000010000

E(R7) = 000000001100001001010101010111110100000010100000
K8 = 111101111000101000111010110000010011101111111011
E(R7) ⊕ K8 = 111101110100100001101111100111100111101101011011
S-box outputs 01101100000110000111110010101110
f(R7,K8) = 00111100000011101000011011111001
L9 = R8 = 11010101011010010100101110010000

E(R8) = 011010101010101101010010101001010111110010100001
K9 = 111000001101101111101011111011011110011110000001
E(R8) ⊕ K9 = 100010100111000010111001010010001001101100100000
S-box outputs 00010001000011000101011101110111
f(R8,K9) = 00100010001101100111110001101010
L10 = R9 = 00100100011111001100011001111010

E(R9) = 000100001000001111111001011000001100001111110100
K10 = 101100011111001101000111101110100100011001001111
E(R9) ⊕ K10 = 101000010111000010111110110110101000010110111011
S-box outputs 11011010000001000101001001110101
f(R9,K10) = 01100010101111001001110000100010
L11 = R10 = 10110111110101011101011110110010
112 Gi¸o tr×nh MËt m· häc

E(R10) = 010110101111111010101011111010101111110110100101
K11 = 001000010101111111010011110111101101001110000110
E(R10) ⊕ K11 = 011110111010000101111000001101000010111000100011
S-box outputs 01110011000001011101000100000001
f(R10,K11) = 11100001000001001111101000000010
L12 = R11 = 11000101011110000011110001111000

E(R11) = 011000001010101111110000000111111000001111110001
K12 = 011101010111000111110101100101000110011111101001
E(R11) ⊕ K12 = 000101011101101000000101100010111110010000011000
S-box outputs 01110011000001011101000100000001
f(R11,K12) = 11000010011010001100111111101010
L13 = R12 = 01110101101111010001100001011000

E(R12) = 001110101011110111111010100011110000001011110000
K13 = 100101111100010111010001111110101011101001000001
E(R12) ⊕ K13 = 101011010111100000101011011101011011100010110001
S-box outputs 10011010110100011000101101001111
f(R12,K13) = 11011101101110110010100100100010
L14 = R13 = 00011000110000110001010101011010

E(R13) = 000011110001011000000110100010101010101011110100
K13 = 010111110100001110110111111100101110011100111010
E(R13) ⊕ K14 = 010100000101010110110001011110000100110111001110
S-box outputs 01100100011110011001101011110001
f(R13,K14) = 10110111001100011000111001010101
L15 = R14 = 11000010100011001001011000001101

E(R14) = 111000000101010001011001010010101100000001011011
K15 = 101111111001000110001101001111010011111100001010
E(R14) ⊕ K15 = 010111111100010111010100011101111111111101010001
S-box outputs 10110010111010001000110100111100
f(R14,K15) = 01011011100000010010011101101110
R15 = 01000011010000100011001000110100
Ch−¬ng 3: MËt m· cæ ®iÓn 113

E(R15) = 001000000110101000000100000110100100000110101000
K16 = 110010110011110110001011000011100001011111110101
E(R15) ⊕ K16 = 111010110101011110001111000101000101011001011101
S-box outputs 10100111100000110010010000101001
f(R15,K16) = 11001000110000000100111110011000
R16 = 00001010010011001101100110010101

Cuèi cïng, ¸p dông IP −1 vμo L16 , R16 ta nhËn ®−îc b¶n m·


hexa lμ:
85E813540F0AB405

3.9.3. Mét sè ý kiÕn th¶o luËn vÒ DES


Khi DES ®−îc ®Ò xuÊt nh− mét chuÈn mËt m·, ®· cã rÊt
nhiÒu ý kiÕn phª ph¸n. Mét lý do ph¶n ®èi DES cã liªn quan ®Õn
c¸c hép S. Mäi tÝnh to¸n liªn quan ®Õn DES ngo¹i trõ c¸c hép S
®Òu tuyÕn tÝnh, tøc viÖc tÝnh phÐp hoÆc lo¹i trõ cña hai ®Çu ra
còng gièng nh− phÐp hoÆc lo¹i trõ cña hai ®Çu vμo råi tÝnh to¸n
®Çu ra. C¸c hép S - chøa ®ùng thμnh phÇn phi tuyÕn cña hÖ mËt
lμ yÕu tè quan träng nhÊt ®èi víi ®é mËt cña hÖ thèng (Ta ®· thÊy
lμ c¸c hÖ mËt tuyÕn tÝnh - ch¼ng h¹n nh− Hill - cã thÓ dÔ dμng bÞ
th¸m m· khi bÞ tÊn c«ng b»ng b¶n râ ®· biÕt). Tuy nhiªn, tiªu
chuÈn x©y dùng c¸c hép S kh«ng ®−îc biÕt ®Çy ®ñ. Mét sè ng−êi
®· gîi ý lμ c¸c hép S ph¶i chøa c¸c "cöa sËp" ®−îc giÊu kÝn, cho
phÐp Côc An ninh Quèc gia Mü (NSA) gi¶i m· ®−îc c¸c th«ng b¸o
nh−ng vÉn gi÷ ®−îc møc ®é an toμn cña DES. DÜ nhiªn ta kh«ng
thÓ b¸c bá ®−îc kh¼ng ®Þnh nμy, tuy nhiªn kh«ng cã mét chøng cí
nμo ®−îc ®−a ra ®Ó chøng tá r»ng trong thùc tÕ cã c¸c cöa sËp
nh− vËy.
N¨m 1976 NSA ®· kh¼ng ®Þnh r»ng, c¸c tÝnh chÊt sau cña
hép S lμ tiªu chuÈn thiÕt kÕ:
114 Gi¸o tr×nh MËt m· häc

- Mçi hμng trong mçi hép S lμ mét ho¸n vÞ cña c¸c sè nguyªn
0, 1, ... , 15.
- Kh«ng mét hép S nμo lμ mét hμm Affine hoÆc lμ hμm tuyÕn
tÝnh c¸c ®Çu vμo cña nã.
- ViÖc thay ®æi mét bit vμo cña S ph¶i t¹o nªn sù thay ®æi Ýt
nhÊt lμ hai bit ra.
- §èi víi hép S bÊt k× vμ víi ®Çu vμo x bÊt k× S(x ) vμ
S(x ⊕ 001100 ) ph¶i kh¸c nhau tèi thiÓu lμ hai bit (trong ®ã x lμ
x©u bit ®é dμi 6).
Hai tÝnh chÊt kh¸c nhau sau ®©y cña c¸c hép S cã thÓ coi lμ
®−îc rót ra tõ tiªu chuÈn thiÕt kÕ cña NSA.
- Víi hép S bÊt k×, ®Çu vμo x bÊt k× vμ víi
e, f ∈ { 0, 1 } : S(x ) ≠ S(x ⊕ 11ef 00 ) .

- Víi hép S bÊt k×, nÕu cè ®Þnh mét bit vμo vμ xem xÐt gi¸ trÞ
cña mét bit ®Çu ra cè ®Þnh th× c¸c mÉu vμo ®Ó bit ra nμy b»ng 0 sÏ
xÊp xØ b»ng sè mÉu ra ®Ó bit ®ã b»ng 1. (Chó ý r»ng, nÕu cè ®Þnh
gi¸ trÞ bit vμo thø nhÊt hoÆc bit vμo thø 6 th× cã 16 mÉu vμo lμm
cho mét bit ra cô thÓ b»ng 0 vμ cã 16 mÉu vμo lμm cho bit nμy
b»ng 1. Víi c¸c bit vμo tõ bit thø hai ®Õn bit thø 5 th× ®iÒu nμy
kh«ng cßn ®óng n÷a. Tuy nhiªn, ph©n bè kÕt qu¶ vÉn gÇn víi
ph©n bè ®Òu. ChÝnh x¸c h¬n, víi mét hép S bÊt k×, nÕu ta cè ®Þnh
gi¸ trÞ cña mét bit vμo bÊt k× th× sè mÉu vμo lμm cho mét bit ra
cè ®Þnh nμo ®ã cã gi¸ trÞ 0 (hoÆc 1) lu«n n»m trong kho¶ng tõ 13
®Õn 19).
Ng−êi ta kh«ng biÕt râ lμ liÖu cã cßn mét chuÈn thiÕt kÕ nμo
®Çy ®ñ h¬n ®−îc dïng trong viÖc x©y dùng hép S hay kh«ng.
Ch−¬ng 3: MËt m· cæ ®iÓn 115

Sù ph¶n ®èi x¸c ®¸ng nhÊt vÒ DES chÝnh lμ kÝch th−íc cña
kh«ng gian khãa: 256 lμ qu¸ nhá ®Ó ®¶m b¶o an toμn thùc sù.
NhiÒu thiÕt bÞ chuyªn dông ®· ®−îc ®Ò xuÊt nh»m phôc vô cho
viÖc tÊn c«ng víi b¶n râ ®· biÕt. PhÐp tÊn c«ng nμy chñ yÕu thùc
hiÖn t×m khãa theo ph−¬ng ph¸p vÐt c¹n. Tøc víi b¶n râ x 64 bit
vμ b¶n m· y t−¬ng øng, mçi khãa ®Òu cã thÓ ®−îc kiÓm tra cho tíi
khi t×m ®−îc mét khãa k tháa m·n e k (x ) = y . (CÇn chó ý lμ cã thÓ
cã nhiÒu h¬n mét khãa k nh− vËy).
Ngay tõ n¨m 1977, Diffie vμ Hellman ®· gîi ý r»ng cã thÓ
x©y dùng mét chip VLSI (m¹ch tÝch hîp mËt ®é lín) cã kh¶ n¨ng
kiÓm tra ®−îc 106 khãa/gi©y. Mét m¸y cã thÓ t×m toμn bé kh«ng
gian khãa cì 106 trong kho¶ng 1 ngμy.
Trong cuéc héi th¶o t¹i héi nghÞ CRYPTO'93, Michael
Wiener ®· ®−a ra mét thiÕt kÕ rÊt cô thÓ vÒ m¸y t×m khãa. M¸y
nμy x©y dùng trªn mét chip t×m khãa, cã kh¶ n¨ng thùc hiÖn ®ång
thêi 16 phÐp m· vμ tèc ®é tíi 5×107 khãa/gi©y. Víi c«ng nghÖ hiÖn
nay, chi phÝ chÕ t¹o kho¶ng 10,5USD/chip. Gi¸ cña mét khung
m¸y chøa 5760 chip vμo kho¶ng 100.000USD vμ nh− vËy nã cã
kh¶ n¨ng t×m ra mét khãa cña DES trong kho¶ng 1,5 ngμy. Mét
thiÕt bÞ dïng 10 khung m¸y nh− vËy cã gi¸ chõng 1.000.000USD
sÏ gi¶m thêi gian t×m kiÕm khãa trung b×nh xuèng cßn 3,5 giê.

3.9.4. DES trong thùc tÕ

MÆc dï viÖc m« t¶ DES kh¸ dμi dßng song ng−êi ta cã thÓ


thùc hiÖn DES rÊt h÷u hiÖu b»ng c¶ phÇn cøng lÉn phÇn mÒm.
C¸c phÐp to¸n duy nhÊt cÇn ®−îc thùc hiÖn lμ phÐp hoÆc lo¹i trõ
c¸c x©u bit. Hμm më réng E, c¸c hép S, c¸c ho¸n vÞ IP vμ P vμ viÖc
116 Gi¸o tr×nh MËt m· häc

tÝnh to¸n c¸c gi¸ trÞ K 1 , K, K 16 ®Òu cã thÓ thùc hiÖn ®−îc cïng lóc
b»ng tra b¶ng (trong phÇn mÒm) hoÆc b»ng c¸ch nèi cøng chóng
thμnh mét m¹ch.
C¸c øng dông phÇn cøng hiÖn thêi cã thÓ ®¹t ®−îc tèc ®é m·
ho¸ cùc nhanh. C«ng ty Digital Equipment ®· th«ng b¸o t¹i héi
nghÞ CRYPTO'92 r»ng hä ®· chÕ t¹o mét chip cã 50 ngμn
tranzistor cã thÓ m· ho¸ víi tèc ®é 1 Gbit/s b»ng c¸ch dïng xung
nhÞp cã tèc ®é 250 MHz. Gi¸ cña chip nμy vμo kho¶ng 300USD.
Tíi n¨m 1991 ®· cã 45 øng dông phÇn cøng vμ ch−¬ng tr×nh c¬ së
cña DES ®−îc ñy ban Tiªu chuÈn Quèc gia Mü (NBS) chÊp thuËn.
Mét øng dông quan träng cña DES lμ trong giao dÞch ng©n
hμng Mü - (ABA) DES ®−îc dïng ®Ó m· ho¸ c¸c sè ®Þnh danh c¸
nh©n (PIN) vμ viÖc chuyÓn tμi kho¶n b»ng m¸y thñ quü tù ®éng
(ATM). DES còng ®−îc HÖ thèng chi tr¶ gi÷a c¸c nhμ b¨ng cña
Ng©n hμng hèi ®o¸i (CHIPS) dïng ®Ó x¸c thùc c¸c giao dÞch vμo
kho¶ng trªn 1,5 ngh×n tû USD/tuÇn. DES cßn ®−îc sö dông réng
r·i trong c¸c tæ chøc chÝnh phñ. Ch¼ng h¹n nh− Bé n¨ng l−îng,
Bé T− ph¸p vμ HÖ thèng dù tr÷ liªn bang.

3.9.4.1. C¸c chÕ ®é ho¹t ®éng cña DES


Cã 4 chÕ ®é lμm viÖc ®· ®−îc ph¸t triÓn cho DES: ChÕ ®é
quyÓn m· ®iÖn tö (ECB), chÕ ®é ph¶n håi m· (CFB), chÕ ®é liªn
kÕt khèi m· (CBC) vμ chÕ ®é ph¶n håi ®Çu ra (OFB). ChÕ ®é ECB
t−¬ng øng víi c¸ch dïng th«ng th−êng cña m· khèi: víi mét d·y
c¸c khèi b¶n râ cho tr−íc x 1 , x 2 , K (mçi khèi cã 64 bit), mçi x i sÏ
®−îc m· ho¸ b»ng cïng mét khãa k ®Ó t¹o thμnh mét chuçi c¸c
khèi b¶n m· y1 , y 2 , K theo quy t¾c y i = e k (y i −1 ⊕ x i ), i ≥ 1 . ViÖc sö
dông chÕ ®é CBC ®−îc m« t¶ trªn h×nh 3.14.
Ch−¬ng 3: MËt m· cæ ®iÓn 117

Trong c¸c chÕ ®é OFB vμ CFB dßng khãa ®−îc t¹o ra sÏ ®−îc
céng mod 2 víi b¶n râ (tøc lμ nã ho¹t ®éng nh− mét hÖ m· dßng,
xem phÇn 3.8). OFB thùc sù lμ mét hÖ m· dßng ®ång bé: dßng
khãa ®−îc t¹o bëi viÖc m· lÆp vector khëi t¹o 64 bit (vector IV). Ta
x¸c ®Þnh z 0 = IV vμ råi tÝnh dßng khãa z1 , z 2 , K theo quy t¾c
z i = e k (z i −1 ), i ≥ 1 . D·y b¶n râ x1 , x 2 , K sau ®ã sÏ ®−îc m· ho¸
b»ng c¸ch tÝnh y i = x i ⊕ z i , i ≥ 1 .

x1 x2

IV = y0

M· hãa
(Encrypt) ek ek

y1 y2

y1 y2

IV = y0

Gi¶i m·
(Decrypt) ek ek

x1 x2

H×nh 3.14: ChÕ ®é CBC

Trong chÕ ®é CFB, ta b¾t ®Çu víi y 0 = IV (lμ mét vector khëi
t¹o 64 bit) vμ t¹o phÇn tö z i cña dßng khãa b»ng c¸ch m· ho¸
khèi b¶n m· tr−íc ®ã. Tøc z i = e k (y i −1 ), i ≥ 1 . Còng nh− trong chÕ
118 Gi¸o tr×nh MËt m· häc

®é OFB: y i = x i ⊕ z i , i ≥ 1 . ViÖc sö dông CFB ®−îc m« t¶ trªn


h×nh 3.15 (chó ý r»ng hμm m· DES e k ®−îc dïng cho c¶ phÐp m·
vμ phÐp gi¶i m· ë c¸c chÕ ®é CFB vμ OFB).

x1 x2

IV = y0 ek ek

M· hãa
(Encrypt) y1 y2

y1 y2

IV = y0 ek ek

M· hãa
(Encrypt) x1 x2

H×nh 3.15: ChÕ ®é CFB

Còng cßn mét sè biÕn tÊu cña OFB vμ CFB ®−îc gäi lμ c¸c
chÕ ®é ph¶n håi k bit (1 < k < 64 ) . ë ®©y, ta ®· m« t¶ c¸c chÕ ®é
ph¶n håi 64 bit. C¸c chÕ ®é ph¶n håi 1 bit vμ 8 bit th−êng ®−îc
dïng trong thùc tÕ cho phÐp m· ho¸ ®ång thêi 1 bit (hoÆc byte)
sè liÖu.

Bèn chÕ ®é c«ng t¸c cã nh÷ng −u, nh−îc ®iÓm kh¸c nhau. ë
chÕ ®é ECB vμ OFB, sù thay ®æi cña mét khèi b¶n râ x i 64 bit sÏ
lμm thay ®æi khèi b¶n m· y i t−¬ng øng, nh−ng c¸c khèi b¶n m·
kh¸c kh«ng bÞ ¶nh h−ëng. Trong mét sè t×nh huèng, ®©y lμ mét
tÝnh chÊt ®¸ng mong muèn. VÝ dô, chÕ ®é OFB th−êng ®−îc dïng
®Ó m· hãa khi truyÒn vÖ tinh.
Ch−¬ng 3: MËt m· cæ ®iÓn 119

MÆt kh¸c ë c¸c chÕ ®é CBC vμ CFB, nÕu mét khèi b¶n râ x i
bÞ thay ®æi th× y i vμ tÊt c¶ c¸c khèi b¶n m· tiÕp theo sÏ bÞ ¶nh
h−ëng. Nh− vËy c¸c chÕ ®é CBC vμ CFB cã thÓ ®−îc sö dông rÊt
hiÖu qu¶ cho môc ®Ých x¸c thùc. §Æc biÖt h¬n, c¸c chÕ ®é nμy cã
thÓ ®−îc dïng ®Ó t¹o m· x¸c thùc b¶n tin (MAC - message
authentication code). MAC ®−îc g¾n thªm vμo c¸c khèi b¶n râ ®Ó
thuyÕt phôc Bob tin r»ng, d·y b¶n râ ®ã thùc sù lμ cña Alice mμ
kh«ng bÞ Oscar gi¶ m¹o. Nh− vËy MAC ®¶m b¶o tÝnh toμn vÑn
(hay tÝnh x¸c thùc) cña mét b¶n tin (nh−ng tÊt nhiªn lμ MAC
kh«ng ®¶m b¶o ®é mËt).
Ta sÏ m« t¶ c¸ch sö dông chÕ ®é BCB ®Ó t¹o ra mét MAC. Ta
b¾t ®Çu b»ng vector khëi t¹o IV chøa toμn sè 0. Sau ®ã dïng chÕ
®é CBC ®Ó t¹o c¸c khèi b¶n m· y1 , K, y n theo khãa K. Cuèi cïng
ta x¸c ®Þnh MAC lμ yn. Alice sÏ ph¸t ®i d·y c¸c khèi b¶n râ
x1 , K, x n cïng víi MAC. Khi Bob thu ®−îc x1. . .xn anh ta sÏ kh«i
phôc l¹i y1 , K, y n b»ng khãa K bÝ mËt vμ x¸c minh xem liÖu y n cã
gièng víi MAC mμ m×nh ®· thu ®−îc hay kh«ng?
NhËn thÊy Oscar kh«ng thÓ t¹o ra mét MAC hîp lÖ do anh ta
kh«ng biÕt khãa K mμ Alice vμ Bob ®ang dïng. H¬n n÷a Oscar
thu chÆn ®−îc d·y khèi b¶n râ x1 , K, x n vμ thay ®æi Ýt nhiÒu néi
dung th× th× ch¾c ch¾n lμ Oscar kh«ng thÓ thay ®æi MAC ®Ó ®−îc
Bob chÊp nhËn.
Th«ng th−êng ta muèn kÕt hîp c¶ tÝnh x¸c thùc lÉn ®é b¶o
mËt. §iÒu ®ã cã thÓ thùc hiÖn nh− sau: Tr−íc tiªn Alice dïng khãa
K1 ®Ó t¹o MAC cho x1 , K, x n . Sau ®ã Alice x¸c ®Þnh x n +1 lμ MAC
råi m· ho¸ d·y x1 , K , x n +1 b»ng khãa thø hai K2 ®Ó t¹o ra b¶n
120 Gi¸o tr×nh MËt m· häc

m· y 1 , K, y n +1 . Khi Bob thu ®−îc y1 , K, y n +1 , tr−íc tiªn Bob sÏ


gi¶i m· (b»ng K 2 ) vμ kiÓm tra xem x n +1 cã ph¶i lμ MAC ®èi víi
d·y x1 , K, x n dïng K1 hay kh«ng.

Ng−îc l¹i, Alice cã thÓ dïng K1 ®Ó m· ho¸ x1 , K, x n vμ t¹o ra


®−îc y1 , K, y n , sau ®ã dïng K 2 ®Ó t¹o MAC y n +1 ®èi víi d·y
y1 , K, y n . Bob sÏ dïng K 2 ®Ó x¸c minh MAC vμ dïng K1 ®Ó gi¶i
m· y1 , K, y n .

3.9.4.2. M· nguån DES (Xem phô lôc 3)

Bμi tËp
1. Th¸m m· thu ®−îc b¶n m· sau:
PSZI QIERW RIZIV LEZMRK XS WEC CSY EVI WSVVC
BiÕt r»ng ®©y lμ b¶n m· cña mËt Xeda víi khãa k ch−a biÕt.
H·y dïng ph−¬ng ph¸p t×m khãa vÐt c¹n ®Ó t×m ®−îc b¶n râ tiÕng
Anh t−¬ng øng.
Ghi chó: Ph−¬ng ph¸p t×m khãa vÐt c¹n lμ ph−¬ng ph¸p thö
gi¶i m· b»ng mäi khãa cã thÓ cã.
2. D−íi ®©y lμ 4 b¶n m· thu ®−îc tõ m· thay thÕ. Mét b¶n
thu ®−îc tõ m· VigenÌre, mét tõ mËt m· Affine vμ mét b¶n ch−a
x¸c ®Þnh. NhiÖm vô ë ®©y lμ x¸c ®Þnh b¶n râ trong mçi tr−êng hîp.
H·y m« t¶ c¸c b−íc cÇn thùc hiÖn ®Ó gi¶i m· mçi b¶n m· (bao
gåm tÊt c¶ c¸c ph©n tÝch thèng kª vμ c¸c tÝnh to¸n cÇn thùc hiÖn).
Hai b¶n râ ®Çu lÊy tõ cuèn "The Diary of Samuel
Marchbanks" cña Robertson Davies, Clack Iriwin,1947; b¶n râ thø
Ch−¬ng 3: MËt m· cæ ®iÓn 121

t− lÊy tõ "Lake Wobegon Days" cña Garrison Keillor, Viking


Penguin, 1985.
a. M· thay thÕ

EMGLOSUDCGDNCUSWYSFHNSFCYKDPUMLWGYICO|
XYSIPJCK

QPKUGKMGOUCGINCGACKSNISACYKZSCKXEOCKSH
YSXCG
OIDPKZCNKSHICGIWYGKKGKGOLDSILKGOIUSIGLED
SPWZU

GFZCCNDGYYSFUSZCNXEOJNCGYEOWEUPXEZGACG
NFGLKNS
ACIGOIYCKXOUOUZCFZCCNDGYYSFEUEKUZCSOCFZ
CCNC

IACZEJNCSHFZEJZEGMXCYHCIUMGKUSY

ChØ dÉn: F sÏ gi¶i m· thμnh w.

b. HÖ m· VigenÌre

KCCPKBGUFDPHQTYAVINRRTMVGRKDNBVF§ETDGIL
TXRGUD

DKOTFMBPVGEGLTGCKQRACQCWDNAWCRXLZAKFTL
EWRPTVC

QKYVXCHKFTPONCQQRHJVAJUWETMCMSPKQDYHJV
DAHCTRL

SVSKCGCZQäDZXGSFRLSWCWSJTBHAFSLASPRJAHKJ
RJUMV
122 Gi¸o tr×nh MËt m· häc

GKMITZHFPDLSPZLVLGWTFPLKKEBDPGCEBSHCTJR
WXBAFS

PEZQNRWXCVYCGAONWDDKACKAWBBIKFTLOVKCG
GHJVLNHI

FFSQESVYCLACNVRWBBIREPBBVFEXOSCDYGZWPFD
TKFQLY

CWHJVTNHIQ/BTKH/VNPIST
c. HÖ m· Affine

KQEREJEBCPPCJCRKIEACUZBKRVPKRBCIBQCARBJC
VFCUP

KRLOFKPACUZQEPBKRXPEIIEABDKPBCPFCDCCAFIE
AB§KP

BCPFEQPKAZBKRHALBKAPCCIBURCCDKDCCJC/DFUI
XPAFF

ERBICZDFKABICBBENEFCUPLCVKABPCYDCCDPKBC
OCPERK
IVKSCPICBRKLJPKABL

d. HÖ m· ch−a x¸c ®Þnh ®−îc

BNVSNSIHQCEELSSKKYERIFJKXUMBGVKAMQLJTYA
VFBKVT
DVBPVVRJYYLAOKYMPQSCGDLFSRLLPROYGESEBUU
ALRWXM

MASAZLGLE§FJBZAVVPXWI
CGJXASCBYEHOSNMULKCEAHTQ
Ch−¬ng 3: MËt m· cæ ®iÓn 123

OKMFLEBKFXLRRFDTZXCIWBJSICBGAWDVYDHAVFJ
XZIBKC

GJIWEAHTTOEWTUHKRQVVRGZBXYIREMMASCSPBN
LHJMBLR

FFJELHWEYLWISTFVVYFJCMHYUYRUFSFMGESIGRL
WALSVVM

NUHSIMYYITCCQPZSICEHBCCMZFEGVJYOCDEMMPG
HVAAUM

ELCMOEHVLTIPSUYILVGFLMVWDVYDBTHFRAYISYS
GKVSUU

HYHGGCKTMBLRX

3. a. Cã bao nhiªu ma trËn kh¶ nghÞch cÊp 2 × 2 trªn Z26.

b. Gi¶ sö p lμ sè nguyªn tè. H·y chøng tá sè c¸c ma trËn


kh¶ nghÞch cÊp 2 × 2 trªn Zp lμ (p2 – 1)(p2 – p).

ChØ dÉn V× p lμ sè nguyªn tè nªn Z p lμ mét tr−êng. H·y sö

dông kh¼ng ®Þnh sau: Mét ma trËn trªn mét tr−êng lμ kh¶ nghÞch
khi vμ chØ khi c¸c hμng cña nã lμ c¸c vÐc t¬ ®éc lËp tuyÕn tÝnh (tøc
kh«ng tån t¹i mét tæ hîp tuyÕn tÝnh c¸c hμng kh¸c 0 mμ tæng cña
chóng lμ mét vÐc t¬ toμn sè 0).

c. Víi p lμ sè nguyªn tè vμ m lμ mét sè nguyªn m ≥ 2. H·y


t×m c«ng thøc tÝnh sè c¸c ma trËn kh¶ nghÞch cÊp m×m trªn Zp.

4. Gi¶ sö ta ®· biÕt r»ng b¶n râ "conversation" sÏ t¹o nªn b¶n


m· "HIARRTNUYTUS" (®−îc m· theo hÖ m· Hill nh−ng ch−a
x¸c ®Þnh ®−îc m). H·y x¸c ®Þnh ma trËn m· ho¸.
124 Gi¸o tr×nh MËt m· häc

5. HÖ m· Affine - Hill lμ hÖ m· Hill ®−îc söa ®æi nh− sau:


Gi¶ sö m lμ mét sè nguyªn d−¬ng vμ P = C = ( Z 26 )m . Trong hÖ mËt
nμy, khãa K gåm c¸c cÆp (L,b), trong ®ã L lμ mét ma trËn kh¶
nghÞch cÊp mxm trªn Z26 vμ b ∈ ( Z 26 )m theo c«ng thøc y = xL + b .

Bëi vËy, nÕu L = ( l ij ) vμ b = ( b1 ,K, b m ) th×:

⎡ l1,1 l1,2 K l1,m ⎤


⎢l l2,2 K l2,m ⎥⎥
( y1,K, y m ) = ( x1,K, x m ) ⎢⎢ 2,1 . . K . ⎥
+ ( b1,K, b m )
⎢ ⎥
⎣⎢ l m,1 l m,2 K l m,m ⎦⎥

Gi¶ sö Oscar ®· biÕt b¶n râ 1μ "adisplayedequation" vμ b¶n


m· t−¬ng øng lμ "DSRMSIOPLXLJBZULLM". Oscar còng biÕt
m = 3. H·y tÝnh khãa vμ chØ ra tÊt c¶ c¸c tÝnh to¸n cÇn thiÕt.
6. Sau ®©y lμ c¸ch th¸m m· hÖ m· Hill sö dông ph−¬ng ph¸p
tÊn c«ng chØ víi b¶n m·. Gi¶ sö ta biÕt m = 2. Chia c¸c b¶n m·
thμnh c¸c khèi cã ®é dμi 2 kÝ tù (c¸c bé ®«i). Mçi bé ®«i nμy lμ b¶n
m· cña mét bé ®«i cña b¶n râ nhê dïng mét ma trËn m· ho¸ ch−a
biÕt. H·y nhÆt ra c¸c bé ®«i th−êng gÆp nhÊt trong b¶n m· vμ coi
r»ng ®ã lμ m· cña mét bé ®«i th−êng gÆp trong danh s¸ch ë b¶ng
1.1 (vÝ dô TH vμ ST). Víi mçi gi¶ ®Þnh, h·y thùc hiÖn phÐp tÊn
c«ng víi b¶n râ ®· biÕt cho tíi khi t×m ®−îc ma trËn gi¶i m· ®óng.
Sau ®©y lμ mét vÝ dô vÒ b¶n m· ®Ó b¹n gi¶i m· theo ph−¬ng
ph¸p ®· nªu:
LMQETXYEAGTXCTUIEWNCTXLZEWUAISPZYVAPEWL
MGQWVA
XFTGMSQCADAGTXLMDXNXSNPJQSYVAPRIQSMHNO
CVAXFV.
Ch−¬ng 3: MËt m· cæ ®iÓn 125

7. Ta sÏ m« t¶ mét tr−êng hîp ®Æc biÖt cña m· ho¸n vÞ. Gi¶


sö m, n lμ c¸c sè nguyªn d−¬ng. H·y viÕt b¶n râ theo thμnh tõng
hμng thμnh mét h×nh ch÷ nhËt m x n. Sau ®ã t¹o ra b¶n m· b»ng
c¸ch lÊy c¸c cét cña h×nh ch÷ nhËt nμy VÝ dô, nÕu m = 4, n = 3
th× ta sÏ m· ho¸ b¶n râ "cryptography" b»ng c¸ch x©y dùng h×nh
ch÷ nhËt :
cryp
togr
aphy
B¶n m· sÏ lμ: "CTAROPYGHPRY"
a. H·y m« t¶ c¸ch Bob gi¶i m· mét b¶n m· (víi m, n ®· biÕt).
b. H·y gi¶i m· b¶n m· sau: (nhËn ®−îc theo ph−¬ng ph¸p
®· nªu):
MYAMRARUYIQTENCTORAHROYW§SOYEOUARRG§E
RNOGW
8. H·y chøng minh r»ng phÐp gi¶i m· DES cã thÓ thùc hiÖn
b»ng c¸ch ¸p dông thuËt to¸n m· ho¸ DES cho b¶n râ víi b¶ng
khãa ®¶o ng−îc.
9. Cho DES(x,K) lμ phÐp m· ho¸ DES cña b¶n râ x víi khãa
K. Gi¶ sö y = DES ( x, K ) vμ y ' = DES ( c ( x ) , c ( K ) ) trong ®ã c(.) kÝ

hiÖu lμ phÇn bï theo c¸c bit cña biÕn. H·y chøng minh r»ng
y ' = c ( y ) (tøc lμ nÕu lÊy phÇn bï cña b¶n râ vμ khãa th× b¶n m· kÕt

qu¶ còng lμ phÇn bï cña b¶n m· ban ®Çu). Chó ý r»ng kÕt qu¶
trªn cã thÓ chøng minh ®−îc chØ b»ng c¸ch sö dông m« t¶ "møc
cao" cña DES - cÊu tróc thùc tÕ cña c¸c hép S vμ c¸c thμnh phÇn
kh¸c cña hÖ thèng kh«ng ¶nh h−ëng tíi kÕt qu¶ nμy.
126 Gi¸o tr×nh MËt m· häc

10. M· kÐp lμ mét c¸ch ®Ó lμm m¹nh thªm cho DES: víi hai
khãa K1 vμ K 2 cho tr−íc, ta x¸c ®Þnh y = eK2(eK1(x)) (dÜ nhiªn ®©y

chÝnh lμ tÝch cña DES víi chÝnh nã). NÕu hμm m· ho¸ eK2 gièng

nh− hμm gi¶i m· d K1 th× K1 vμ K 2 ®−îc gäi lμ c¸c khãa ®èi ngÉu

(®©y lμ tr−êng hîp kh«ng mong muèn ®èi víi phÐp m· kÐp v× b¶n
m· kÕt qu¶ l¹i trïng víi b¶n râ). Mét khãa ®−îc gäi lμ tù ®èi ngÉu
nÕu nã ®èi ngÉu víi chÝnh nã.

a. H·y chøng minh r»ng nÕu C 0 gåm toμn c¸c sè 0 hoÆc gåm

toμn c¸c sè 1 vμ D 0 còng vËy th× K lμ tù ®èi ngÉu.

b. H·y tù chøng minh r»ng c¸c khãa sau ( cho ë d¹ng hexa)
lμ tù ®èi ngÉu;
0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
F E E F E F E F E F E F E F E F
1 F 1 F 1 F 1 F 0 F 0 F 0 F 0 F
E 0 E 0 E 0 E 0 F 1 F 1 F 1 F 1
c. H·y chøng tá r»ng nÕu C 0 = 0101K 01 hoÆc 1010K10

(ë d¹ng nhÞ ph©n) th× XOR c¸c x©u bit Ci vμ C17-i lμ 111K11 , víi 1
≤ i ≤ 16 (kh¼ng ®Þnh t−¬ng tù còng ®óng ®èi víi Di).

d. H·y chøng tá c¸c cÆp khãa sau lμ ®èi ngÉu:


E0 0 1 E0 0 1 F1 0 1 F1 0 1
FE1 FFE1 FF0 EFE0 E
E0 1 FE0 1 FFF 1 0 FF1 0
0 1 E0 0 1 E0 0 1 F1 0 1 F1
1 FFE1 FFE0 EFE0 EFE
1 FE0 1 FE0 0 EF1 0 EF1
mËt m· khãa c«ng khai

4.1. gIíI THIÖU VÒ MËT M· KHãa C¤NG KHAI

Trong m« h×nh mËt m· cæ ®iÓn tr−íc ®©y mμ hiÖn nay ®ang


®−îc nghiªn cøu Alice (ng−êi göi) vμ Bob (ng−êi nhËn) chän mét
c¸ch bÝ mËt khãa K. Sau ®ã dïng K ®Ó t¹o luËt m· hãa ek vμ luËt
gi¶i m· dk. Trong hÖ mËt nμy dk hoÆc gièng ek hoÆc dÔ dμng nhËn
®−îc tõ nã (vÝ dô trong hÖ DES qu¸ tr×nh gi¶i m· hoμn toμn t−¬ng
tù nh− qu¸ tr×nh m· nh−ng thñ tôc khãa ng−îc l¹i). C¸c hÖ mËt
thuéc lo¹i nμy ®−îc gäi lμ hÖ khãa bÝ mËt, nÕu ®Ó lé ek th× lμm cho
hÖ thèng mÊt an toμn.

Nh−îc ®iÓm cña hÖ mËt nμy lμ nã yªu cÇu ph¶i cã th«ng tin
tr−íc vÒ khãa K gi÷a Alice vμ Bob qua mét kªnh an toμn tr−íc khi
göi mét b¶n m· bÊt kú. Trªn thùc tÕ ®iÒu nμy rÊt khã ®¶m b¶o.
Ch¼ng h¹n khi Alice vμ Bob ë c¸ch xa nhau vμ hä chØ cã thÓ liªn
l¹c víi nhau b»ng th− tÝn ®iÖn tö (Email). Trong t×nh huèng ®ã
Alice vμ Bob kh«ng thÓ t¹o mét kªnh b¶o mËt víi gi¸ ph¶i ch¨ng.

ý t−ëng x©y dùng mét hÖ mËt khãa c«ng khai (hay dïng
chung) lμ t×m mét hÖ mËt kh«ng cã kh¶ n¨ng tÝnh to¸n ®Ó x¸c
®Þnh d k khi biÕt ek. NÕu thùc hiÖn ®−îc nh− vËy th× quy t¾c m· ek

cã thÓ ®−îc c«ng khai b»ng c¸ch c«ng bè nã trong mét danh b¹
128 Gi¸o tr×nh MËt m· häc

(bëi vËy nªn cã thuËt ng÷ hÖ mËt khãa c«ng khai). ¦u ®iÓm cña hÖ
mËt khãa c«ng khai lμ ë chç Alice (hoÆc bÊt kú ai) cã thÓ göi mét
b¶n tin ®· m· cho Bob (mμ kh«ng cÇn th«ng tin tr−íc vÒ khãa
mËt) b»ng c¸ch dïng mËt m· c«ng khai ek. Ng−êi nhËn A sÏ lμ
ng−êi duy nhÊt cã thÓ gi¶i ®−îc b¶n m· nμy b»ng sö dông luËt
gi¶i bÝ mËt dk cña m×nh.
Cã thÓ h×nh dung hÖ mËt nμy t−¬ng tù nh− sau. Alice ®Æt
mét vËt vμo mét hép kim lo¹i vμ råi khãa nã l¹i b»ng mét khãa sè
do Bob ®Ó l¹i. ChØ cã Bob lμ ng−êi duy nhÊt cã thÓ më ®−îc hép v×
chØ cã anh ta míi biÕt tæ hîp m· cña khãa sè cña m×nh.

ý t−ëng vÒ mét hÖ mËt khãa c«ng khai ®−îc Diffie vμ


Hellman ®−a ra vμo n¨m 1976. Cßn viÖc hiÖn thùc ho¸ nã th× do
Rivesrt, Shamir vμ Adleman ®−a ra lÇn ®Çu tiªn vμo n¨m 1977,
hä ®· t¹o nªn hÖ mËt næi tiÕng RSA (sÏ ®−îc nghiªn cøu trong
ch−¬ng nμy). KÓ tõ ®ã ®· c«ng bè mét sè hÖ, ®é mËt cña chóng dùa
trªn c¸c bμi tÝnh to¸n kh¸c nhau. Trong ®ã, quan träng nhÊt lμ c¸c
hÖ mËt khãa c«ng khai sau:
- HÖ mËt RSA:
§é b¶o mËt cña hÖ RSA dùa trªn ®é khã cña viÖc ph©n tÝch
ra thõa sè nguyªn lín. HÖ nμy sÏ ®−îc m« t¶ trong phÇn 4.2.
- HÖ mËt xÕp ba l« Merkle - Hellman:
HÖ nμy vμ c¸c hÖ liªn quan dùa trªn tÝnh khã gi¶i cña bμi
to¸n tæng c¸c tËp con (bμi to¸n nμy lμ bμi to¸n NP ®Çy ®ñ - lμ mét
líp kh¸ lín c¸c bμi to¸n kh«ng cã gi¶i thuËt ®−îc biÕt trong thêi
gian ®a thøc). Tuy nhiªn tÊt c¶ c¸c hÖ mËt xÕp ba l« kh¸c nhau
®Òu ®· bÞ chøng tá lμ kh«ng mËt (ngo¹i trõ hÖ mËt Chor-Rivest).
Ch−¬ng 4: MËt m· khãa c«ng khai 129

- HÖ mËt McEliece:
HÖ nμy dùa trªn lý thuyÕt m· ®¹i sè vμ vÉn cßn ®−îc coi lμ
an toμn. HÖ mËt McEliece dùa trªn bμi to¸n gi¶i m· cho c¸c m·
tuyÕn tÝnh (còng lμ mét bμi to¸n NP ®Çy ®ñ). HÖ mËt McEliece
®−îc tr×nh bμy ë phÇn 4.6.
- HÖ mËt ElGamal:
HÖ mËt ElGamal dùa trªn tÝnh khã gi¶i cña bμi to¸n
logarithm rêi r¹c trªn c¸c tr−êng h÷u h¹n.
- HÖ mËt Chor-Rivest:
HÖ mËt Chor-Rivest còng ®−îc xem nh− mét hÖ mËt xÕp ba
l«. Tuy nhiªn nã vÉn ®−îc coi lμ an toμn.
- HÖ mËt trªn c¸c ®−êng cong Elliptic:
C¸c hÖ mËt nμy lμ biÕn t−íng cña c¸c hÖ mËt kh¸c (ch¼ng h¹n
nh− hÖ mËt ElGamal), chóng lμm viÖc trªn c¸c ®−êng cong Elliptic
chø kh«ng ph¶i lμ trªn c¸c tr−êng h÷u h¹n. HÖ mËt nμy ®¶m b¶o
®é mËt víi sè khãa nhá h¬n c¸c hÖ mËt khãa c«ng khai kh¸c.
Mét chó ý quan träng lμ mét hÖ mËt khãa c«ng khai kh«ng
bao giê cã thÓ ®¶m b¶o ®−îc ®é mËt tuyÖt ®èi (an toμn v« ®iÒu
kiÖn). Së dÜ nh− vËy v× ®èi ph−¬ng khi nghiªn cøu mét b¶n m·, y
cã thÓ m· lÇn l−ît c¸c b¶n tin râ b»ng luËt m· ho¸ c«ng khai e k
cho tíi khi anh ta t×m ®−îc b¶n râ duy nhÊt x ®¶m b¶o y = e k (x ) .
B¶n râ nμy chÝnh lμ kÕt qu¶ gi¶i m· cña y. Bëi vËy, ta chØ nghiªn
cøu ®é mËt vÒ mÆt tÝnh to¸n cña c¸c hÖ mËt nμy.
Mét kh¸i niÖm cã Ých khi nghiªn cøu hÖ mËt khãa c«ng khai
lμ kh¸i niÖm vÒ hμm cöa sËp mét chiÒu. Ta sÏ ®Þnh nghÜa kh¸i
niÖm nμy mét c¸ch kh«ng h×nh thøc.
130 Gi¸o tr×nh MËt m· häc

Hμm m· khãa c«ng khai e k cña Bob ph¶i lμ mét hμm dÔ tÝnh
to¸n. Song viÖc t×m hμm ng−îc (hμm gi¶i m·) rÊt khã kh¨n (®èi
víi bÊt kú ai kh«ng ph¶i lμ Bob). §Æc tÝnh dÔ tÝnh to¸n hμm ng−îc
th−êng ®−îc gäi lμ ®Æc tÝnh mét chiÒu. Bëi vËy ®iÒu kiÖn cÇn thiÕt
lμ e k ph¶i lμ hμm mét chiÒu.

C¸c hμm mét chiÒu ®ãng vai trß quan träng trong mËt m·
häc, chóng rÊt quan träng trong c¸c hÖ mËt khãa c«ng khai vμ
trong nhiÒu lÜnh vùc kh¸c. §¸ng tiÕc lμ mÆc dï cã rÊt nhiÒu hμm
®−îc coi lμ hμm mét chiÒu nh−ng cho ®Õn nay vÉn kh«ng tån t¹i
mét hμm nμo cã thÓ chøng minh ®−îc lμ hμm mét chiÒu.
Sau ®©y lμ mét vÝ dô vÒ mét hμm ®−îc coi lμ hμm mét chiÒu.
Gi¶ sö n lμ tÝch cña hai sè nguyªn tè lín p vμ q, gi¶ sö b lμ mét sè
nguyªn d−¬ng. Khi ®ã ta x¸c ®Þnh ¸nh x¹ f : Z n → Z n lμ
f (x ) = x b mod n (víi b vμ n ®· ®−îc chän thÝch hîp th× ®©y chÝnh lμ
hμm m· RSA, sau nμy ta sÏ nãi nhiÒu h¬n vÒ nã).
§Ó x©y dùng mét hÖ mËt khãa c«ng khai th× viÖc t×m ®−îc
mét hμm mét chiÒu vÉn ch−a ®ñ. Ta kh«ng muèn e k lμ hμm mét
chiÒu ®èi víi Bob v× anh ta ph¶i cã kh¶ n¨ng gi¶i m· c¸c b¶n tin
nhËn ®−îc mét c¸ch hiÖu qu¶. §iÒu cÇn thiÕt lμ Bob ph¶i cã mét
cöa sËp chøa th«ng tin bÝ mËt cho phÐp dÔ dμng t×m hμm cña e k .
Nh− vËy Bob cã thÓ gi¶i m· mét c¸ch h÷u hiÖu v× anh ta cã mét
hiÓu biÕt tuyÖt mËt nμo ®ã vÒ K. Bëi vËy mét hμm ®−îc gäi lμ cöa
sËp mét chiÒu nÕu nã lμ mét hμm mét chiÒu vμ nã trë nªn dÔ tÝnh
ng−îc nÕu biÕt mét cöa sËp nhÊt ®Þnh.

4.2. hÖ mËt rsa

4.2.1. ThuËt to¸n 1: T¹o khãa


Tãm l−îc: Mçi ®Çu cÇn t¹o mét khãa c«ng khai vμ mét khãa
riªng t−¬ng øng theo c¸c b−íc sau:
Ch−¬ng 4: MËt m· khãa c«ng khai 131

(1) T¹o 2 sè nguyªn tè lín ngÉu nhiªn vμ kh¸c nhau p vμ q, p


vμ q cã ®é lín xÊp xØ nhau.
(2) TÝnh n = p . q vμ Φ (n ) = (p − 1)(q − 1) .

(3) Chän mét sè nguyªn ngÉu nhiªn e, 1 < e < Φ , sao cho
(e , Φ ) = 1 .
(4) Sö dông thuËt to¸n Euclide më réng ®Ó tÝnh mét sè
nguyªn d duy nhÊt, 1 < d < Φ tháa m·n ed ≡ 1(mod Φ ) .

(5) Khãa c«ng khai lμ cÆp sè (n , e ) . Khãa riªng bÝ mËt lμ d.

4.2.2. §Þnh nghÜa


C¸c sè nguyªn d vμ e trong thuËt to¸n t¹o khãa RSA ®−îc gäi
lμ sè mò m· ho¸ vμ sè mò gi¶i m·. Sè n ®−îc gäi lμ modulus.

4.2.3. ThuËt to¸n 2: M· hãa c«ng khai RSA


Tãm l−îc: B m· hãa mét th«ng b¸o m ®Ó göi cho A b¶n m·
cÇn gi¶i.

4.2.3.1. M· hãa
B ph¶i thùc hiÖn:
(1) Thu nhËn khãa c«ng khai (n , e ) cña A.

(2) BiÓu diÔn b¶n tin d−íi d¹ng mét sè nguyªn m trong
kho¶ng [0 , n − 1]

(3) TÝnh c = m e mod n .

(4) Göi b¶n m· c cho A.

4.2.3.3. Gi¶i m·
Kh«i phôc b¶n râ m tõ c. A ph¶i thùc hiÖn phÐp tÝnh sau
b»ng c¸ch dïng khãa riªng m = c d mod n
132 Gi¸o tr×nh MËt m· häc

Chøng minh ho¹t ®éng gi¶i m·:


V× ed ≡ 1(mod Φ ) nªn lu«n tån t¹i mét sè nguyªn k sao cho
ed = 1 + kΦ . B©y giê nÕu (m , p) = 1 theo ®Þnh lý Ferma ta
cã: m p−1 ≡ 1(mod p ) . Lòy thõa c¶ hai vÕ cña ®ång d− thøc trªn víi sè
mò k(q − 1) vμ råi nh©n c¶ hai vÕ víi m ta cã:

m1+k (q −1)(p−1 ) ≡ m(mod p )

MÆt kh¸c nÕu ¦CLN(m, p) = p th× ®ång d− thøc cuèi cïng ë


trªn vÉn ®óng v× mçi vÕ ®Òu ®ång d− víi 0 mod p. Bëi vËy, trong
mäi tr−êng hîp ta ®Òu cã:
m ed ≡ m(mod p )

B»ng lËp luËn t−¬ng tù ta l¹i cã: m ed ≡ m(mod q )


Cuèi cïng v× p vμ q lμ c¸c sè nguyªn tè kh¸c nhau nªn
( )
m ed ≡ m(mod n ) vμ bëi vËy c d ≡ m e
d
≡ m(mod n ) .

4.2.4. VÝ dô
4.2.4.1. T¹o khãa
A chän c¸c sè nguyªn tè p = 2357, q = 2551 vμ tÝnh
n = p . q = 6012707 vμ Φ = (p − 1)(q − 1) = 6007800 . A chän e = 3674911
vμ dïng thuËt to¸n Euclide më réng ®Ó t×m ®−îc d = 422191 tháa
m·n ed ≡ 1(mod Φ ) . Khãa c«ng khai cña A lμ cÆp sè (n = 6012707,
e = 3674911), khãa bÝ mËt cña A lμ d = 422191.

4.2.4.2. M· hãa
§Ó m· hãa th«ng b¸o m = 5234673, B sö dông thuËt to¸n lÊy
lòy thõa theo modulo ®Ó tÝnh.
c = m e mod n = 5234673 3674911 mod 6012707 = 3650502

råi göi c cho A.


Ch−¬ng 4: MËt m· khãa c«ng khai 133

4.2.4.3. Gi¶i m·
§Ó gi¶i m· b¶n m· c, A tÝnh:
c d mod n = 3650502 422191 mod 6012707 = 5234673

4.2.4.4. Chó ý (Sè mò v¹n n¨ng)


Sè λ = BCNN(p − 1, q − 1) ®«i khi ®−îc gäi lμ sè mò v¹n n¨ng
cña n, λ cã thÓ ®−îc dïng thay cho Φ = (p − 1)( q − 1) khi t¹o khãa
RSA. CÇn chó ý r»ng λ lμ −íc thùc sù cña Φ . Sö dông λ cã thÓ
thu ®−îc sè mò gi¶i m· d nhá h¬n (lμm cho gi¶i m· nhanh h¬n).
Tuy nhiªn, nÕu p vμ q ®−îc chän ngÉu nhiªn th× ¦CLN(p - 1, q - 1)
sÏ kh¸ nhá vμ bëi vËy Φ vμ λ sÏ lμ c¸c sè cã kÝch th−íc xÊp xØ.

4.3. hÖ mËt rabin

4.3.1. ThuËt to¸n 1: T¹o khãa


Tãm l−îc: Mçi ®Çu t¹o mét khãa c«ng khai vμ mét khãa bÝ
mËt t−¬ng øng theo c¸c b−íc sau:
(1) T¹o 2 sè nguyªn tè lín, ngÉu nhiªn vμ ph©n biÖt p vμ q cã
kÝch th−íc xÊp xØ nhau.
(2) TÝnh n = p.q.
(3) Khãa c«ng khai lμ n, khãa bÝ mËt lμ c¸c cÆp sè (p, q).

4.3.2. ThuËt to¸n 2: M· hãa c«ng khai Rabin

4.3.2.1. M· hãa
B ph¶i thùc hiÖn c¸c b−íc sau:
(1) NhËn khãa c«ng khai cña A: n.
(2) BiÓu thÞ b¶n tin d−íi d¹ng mét sè nguyªn m n»m trong
d¶i [0 , n − 1] .
134 Gi¸o tr×nh MËt m· häc

(3) TÝnh c = m2 mod n.


(4) Göi b¶n m· c cho A.

4.3.2.2. Gi¶i m·:


§Ó kh«i phôc b¶n râ m tõ c, A ph¶i thùc hiÖn c¸c b−íc sau:
T×m 4 c¨n bËc hai cña c mod n lμ m1, m2, m3 hoÆc m4.

(1) Th«ng b¸o cho ng−êi göi lμ mét trong 4 gi¸ trÞ m1, m2, m3
hoÆc m4. B»ng mét c¸ch nμo ®ã A sÏ quyÕt ®Þnh m lμ gi¸ trÞ nμo.

4.3.3. Chó ý
T×m c¸c c¨n bËc 2 cña c mod n , n = p . q khi p ≡ q ≡ 3(mod 4 ) .
Trong tr−êng hîp nμy, viÖc t×m 4 c¨n bËc 2 cña c mod n ®−îc thùc
hiÖn kh¸ ®¬n gi¶n nh− sau:
(1) Sö dông thuËt to¸n Euclide më réng ®Ó t×m c¸c sè nguyªn
a vμ b tho¶ m·n ap + bq = 1 . Chó ý r»ng a vμ b cã thÓ ®−îc tÝnh
trong giai ®o¹n t¹o khãa.
(2) TÝnh r = c (p+1) / 4 mod p .

(3) TÝnh s = c (q +1) / 4 mod q .


(4) TÝnh x = (aps + bqr )mod n .
(5) TÝnh y = (aps − bqr ) mod n .

(6) Bèn gi¸ trÞ c¨n bËc 2 cña c mod n lμ x, − x mod n , y vμ


− y mod n .

4.3.4. VÝ dô

4.3.4.1. T¹o khãa


A chän c¸c sè nguyªn tè p = 277 vμ q = 331. A tÝnh n = p.q
= 91687. Khãa c«ng khai cña A lμ 91687. Khãa bÝ mËt cña A lμ cÆp
sè (p = 277, q = 331).
Ch−¬ng 4: MËt m· khãa c«ng khai 135

4.3.4.2. M· hãa
Gi¶ sö r»ng 6 bit cuèi cïng cña b¶n tin gèc ®−îc lÆp l¹i tr−íc
khi thùc hiÖn m· hãa. ViÖc thªm vμo ®é thõa nμy nh»m gióp cho
bªn gi¶i m· nhËn biÕt ®−îc b¶n m· ®óng.
§Ó m· ho¸ b¶n tin 10 bit m = 1001111001 , B sÏ lÆp l¹i 6 bit
cuèi cïng cña m ®Ó cã ®−îc b¶n tin 16 bit sau: m =
1001111001111001, biÓu diÔn thËp ph©n t−¬ng øng lμ m = 40596.

Sau ®ã B tÝnh c = m2 mod n = 405962 mod 91687 = 62111 råi göi


c cho A.

4.3.4.3. Gi¶i m·

§Ó gi¶i m· b¶n m· c, A tÝnh bèn gi¸ trÞ c¨n bËc 2 cña


c mod n :

m1 = 69654, m 2 = 22033, m 3 = 40596, m 4 = 51118

BiÓu diÔn nhÞ ph©n t−¬ng øng cña c¸c sè trªn lμ:
m1 = 1000100000 0010110, m 2 = 1010110000 10001
m 3 = 1001111001 111001, m 4 = 1100011110 101110

V× chØ cã m3 míi cã ®é thõa cÇn thiÕt nªn A sÏ gi¶i m· c b»ng


m3 vμ kh«i phôc l¹i b¶n tin gèc lμ m = 1001111001 .

4.3.4.4. §¸nh gi¸ hiÖu qu¶

ThuËt to¸n m· hãa Rabin lμ mét thuËt to¸n cùc nhanh v× nã


chØ cÇn thùc hiÖn mét phÐp b×nh ph−¬ng modulo ®¬n gi¶n. Trong
khi ®ã, ch¼ng h¹n víi thuËt to¸n RSA cã e = 3 ph¶i cÇn tíi mét
phÐp nh©n modulo vμ mét phÐp b×nh ph−¬ng modulo. ThuËt to¸n
gi¶i m· Rabin cã chËm h¬n thuËt to¸n m· ho¸, tuy nhiªn vÒ mÆt
tèc ®é nã còng t−¬ng ®−¬ng víi thuËt to¸n gi¶i m· RSA.
136 Gi¸o tr×nh MËt m· häc

4.4. hÖ mËt elgamal


4.4.1. ThuËt to¸n t¹o khãa
Tãm l−îc: Mçi ®Çu liªn l¹c t¹o mét khãa c«ng khai vμ mét
khãa bÝ mËt t−¬ng øng:
(1) T¹o 1 sè nguyªn tè p lín vμ mét phÇn tö sinh α cña
nhãm nh©n Z *p cña c¸c sè nguyªn mod p .

(2) Chän mét sè nguyªn ngÉu nhiªn a, 1 ≤ a ≤ p − 2 vμ tÝnh


α a mod p .

( )
(3) Khãa c«ng khai lμ bé 3 sè p , α , α a , khãa bÝ mËt lμ a.

4.4.2. ThuËt to¸n m· hãa c«ng khai ElGamal


Tãm l−îc: B m· hãa mét th«ng tin b¸o m ®Ó göi cho A b¶n
m· cÇn göi.

4.4.2.1. M· hãa
B ph¶i thùc hiÖn c¸c b−íc sau:
(
(1) NhËn khãa c«ng khai p , α , α a cña A. )
(2) BiÓu thÞ b¶n tin d−íi d¹ng mét sè nguyªn m trong d¶i
{0 ,1 ,K, p − 1}.
(3) Chän sè nguyªn ngÉu nhiªn k, 1 ≤ k ≤ p − 2 .

(4) TÝnh γ = α k mod p vμ δ = m α a ( ) k


mod p .
(5) Göi b¶n m· c = (α , δ) cho A.

4.4.2.2. Gi¶i m·
§Ó kh«i phôc b¶n râ m tõ c, A ph¶i thùc hiÖn c¸c b−íc sau:
(1) Sö dông khãa riªng a ®Ó tÝnh γ p−1−a mod p

(Chó ý γ p−1−a = γ −a = γ −ak )


Ch−¬ng 4: MËt m· khãa c«ng khai 137

( )
(2) Kh«i phôc b¶n râ b»ng c¸ch tÝnh γ −a δ mod p .

Chøng minh ho¹t ®éng gi¶i m·:

ThuËt to¸n trªn cho phÐp A thu ®−îc b¶n râ v×:

γ −a δ ≡ α −a k .m α a k ≡ m mod p .

4.4.3. VÝ dô
4.4.3.1. T¹o khãa

A chän p = 2357 vμ mét phÇn tö sinh α = 2 cña Z *2357 . A chän

khãa bÝ mËt a = 1751 vμ tÝnh α a mod p = 21751 mod 2357 = 1185 .

(
Kho¸ c«ng khai cña A lμ p = 2357, α = 2 , α a = 1185 . )
4.4.3.2. M· hãa

§Ó m· hãa b¶n tin m = 2035, B sÏ chän mét sè nguyªn ngÉu


nhiªn k = 1520 vμ tÝnh:

γ = 21520 mod 2357 = 1430

vμ δ = 2035.1185 1520 mod 2357 = 697

Sau ®ã B göi c = (1430 , 697 ) cho A.

4.4.3.3. Gi¶i m·

§Ó gi¶i m· A ph¶i tÝnh:

γ p−1−a = 1430 605 mod 2357 = 872

Sau ®ã kh«i phôc b¶n râ m b»ng c¸ch tÝnh:

m = 872.697 mod 2357 = 2035.


138 Gi¸o tr×nh MËt m· häc

4.5. hÖ mËt merkle - hellman

4.5.1. §Þnh nghÜa d·y siªu t¨ng


§Þnh nghÜa: D·y c¸c sè nguyªn d−¬ng (a1 , a 2 ,K, a n ) ®−îc gäi
i −1
lμ d·y siªu t¨ng nÕu a i > ∑=
j 1
aj víi ∀i , 2 ≤ i ≤ n .

4.5.2. Bμi to¸n xÕp bal«


Cho mét ®èng c¸c gãi cã c¸c träng l−îng kh¸c nhau, liÖu cã
thÓ xÕp mét sè gãi nμy vμo ba l« ®Ó ba l« cã mét träng l−îng cho
tr−íc hay kh«ng. VÒ mÆt h×nh thøc ta cã thÓ ph¸t biÓu bμi to¸n
trªn nh− sau:
Cho tËp c¸c gi¸ trÞ M1 , M 2 ,K, M n vμ mét tæng S. H·y tÝnh
c¸c gi¸ trÞ bi ®Ó:
S = b1 M1 + b 2 M 2 + K + b n M n

víi b i ∈ {0 ,1}
bi = 1: Cã nghÜa lμ gãi Mi ®−îc xÕp vμo ba l«.
bi = 0: Cã nghÜa lμ gãi Mi kh«ng ®−îc xÕp vμo ba l«.

4.5.3. Gi¶i bμi to¸n xÕp ba l« trong tr−êng hîp d·y siªu t¨ng
Trong tr−êng hîp M = {M1 , M 2 ,K, M n } lμ mét d·y siªu t¨ng
th× viÖc t×m b = (b1 , b 2 ,K, b n ) t−¬ng ®−¬ng nh− bμi to¸n t×m biÓu
diÔn nhÞ ph©n cña mét sè S. BiÓu diÔn nμy sÏ t×m ®−îc sau tèi ®a
lμ n b−íc.
ThuËt to¸n gi¶i:

Vμo: d·y siªu t¨ng M = {M1 , M 2 ,K, M n } vμ mét sè nguyªn S


lμ tæng cña mét tËp con trong M.
Ch−¬ng 4: MËt m· khãa c«ng khai 139

n
Ra : (b1 , b 2 ,K, b n ) trong ®ã b i ∈ {0 ,1} sao cho: ∑b M
i =1
i i =S

(1) i ← n
(2) Chõng nμo i ≥ 1 h·y thùc hiÖn
a. NÕu S ≥ M i th× : x i ← 1 vμ S ← S − M i ng−îc l¹i: x i ← 0
b. i ← i − 1
(3) Return (b)
NÕu M kh«ng ph¶i lμ d·y siªu t¨ng th× lêi gi¶i cña bμi to¸n
lμ mét trong 2n ph−¬ng ¸n cã thÓ. §©y lμ mét bμi to¸n khã gi¶i nÕu
n lín.

4.5.4. ThuËt to¸n t¹o khãa


Tãm l−îc: Mçi ®Çu liªn l¹c t¹o cho m×nh mét khãa c«ng khai
vμ mét khãa bÝ mËt t−¬ng øng.
Chän mét sè nguyªn x¸c ®Þnh n ®−îc xem lμ mét tham sè
chung cña hÖ thèng.
Mçi ®Çu liªn l¹c ph¶i thùc hiÖn c¸c b−íc sau:
(1) Chän mét d·y siªu t¨ng (M1 , M 2 , K , M n ) vμ mét modulo
M sao cho M > M1 , M 2 , K , M n .
(2) Chän mét sè nguyªn ngÉu nhiªn W, 1 ≤ W ≤ M − 1 sao cho
(W , M ) = 1 .
(3) Chän mét phÐp ho¸n vÞ ngÉu nhiªn π cña c¸c sè nguyªn
{1 , 2 ,K, n}.
(4) TÝnh a i = WM π(i ) mod M víi i = 1 , 2 ,K, n .
(5) Khãa c«ng khai lμ tËp c¸c sè (a1 , a 2 ,K, a n )
Khãa bÝ mËt lμ (π, M, W (M1 , M 2 , K , M n )) .

4.5.5. ThuËt to¸n m· c«ng khai Merkle-Hellman


Tãm l−îc: B m· hãa b¶n tin m ®Ó göi cho A b¶n m· cÇn gi¶i
m·.
140 Gi¸o tr×nh MËt m· häc

4.5.5.1. M· hãa
B ph¶i thùc hiÖn c¸c b−íc sau:
(1) NhËn khãa c«ng khai cña A: (a1 , a 2 ,K, a n )
(2) BiÓu thÞ b¶n tin m nh− mét chuçi nhÞ ph©n cã ®é dμi n
m = m1 , m 2 ,K, m n .

(3) TÝnh sè nguyªn c = m1a1 + m 2 a 2 + K + m n a n


(4) Göi b¶n m· c cho A.
4.5.5.2. Gi¶i m·
§Ó kh«i phôc b¶n râ m tõ c, A ph¶i thùc hiÖn c¸c b−íc sau:

(1) TÝnh d = W −1c mod M

(2) Sö dông thuËt gi¶i xÕp ba l« trong tr−êng hîp d·y siªu
t¨ng ®Ó t×m c¸c sè nguyªn r1 , r2 ,K, rn , ri ∈ {0 ,1} sao cho:
d = r1 M1 + r2 M 2 + K + rn M n

(3) C¸c bit cña b¶n râ lμ m i = rπ(i ) , i = 1 , 2 ,K, n

Chøng minh: ThuËt to¸n trªn cho phÐp A thu ®−îc b¶n râ v×:
n n
d ≡ W -1c ≡ W-1 ∑
i =1
m ia i ≡ ∑ m M ( ) mod M
i =1
i πi

n
V× 0 ≤ d < M , d = ∑
i =1
m i M π(i ) mod M , bëi vËy nghiÖm cña bμi

to¸n xÕp ba l« ë b−íc (b) sÏ cho ta c¸c bit cña b¶n râ sau khi sö
dông phÐp ho¸n vÞ π .

4.5.6. VÝ dô

4.5.6.1. T¹o khãa


Cho n = 6. A chän d·y siªu t¨ng sau: (12, 17, 33, 74, 157,
316), M = 737, W = 635 tháa m·n (W, M) = 1.
Ch−¬ng 4: MËt m· khãa c«ng khai 141

PhÐp ho¸n vÞ π cña {1, 2, 3, 4, 5, 6} ®−îc x¸c ®Þnh nh− sau:

π(1) = 3 , π(2) = 6 , π(3 ) = 1 , π(4 ) = 2 , π(5 ) = 5 , π(6 ) = 4 .

Khãa c«ng khai cña A lμ tËp (319, 196, 250, 477, 200, 559).
Khãa bÝ mËt cña A lμ (π, M, W (12 ,17 , 33 , 74 ,157 , 316 )) .

4.5.6.2. M· hãa
§Ó m· hãa b¶n tin m = 101101, B tÝnh:

c = 319 + 250 + 477 + 559 = 1605

vμ göi c cho A.

4.5.6.3. Gi¶i m·

(
§Ó gi¶i m· A ph¶i tÝnh: W −1 = −224 = 513 )
d = W −1 c mod M = 136
vμ gi¶i bμi to¸n xÕp ba l« trong tr−êng hîp d·y siªu t¨ng sau:
136 = 12r1 + 17r2 + 33r3 + 74 r4 + 157r5 + 316r6

vμ nhËn ®−îc 136 = 12 + 17 + 33 + 74

Bëi vËy r1 = r2 = r3 = r4 = 1, r5 = r6 = 0 .

Sö dông phÐp ho¸n vÞ π sÏ t×m ®−îc c¸c bit cña b¶n râ nh− sau:

m1 = r3 = 1 , m 2 = r6 = 0 , m 3 = r1 = 1 , m 4 = r2 = 1 , m 5 = r5 = 0,
m 6 = r4 = 1

VËy b¶n râ m = 101101.

4.6. hÖ mËt chor-rivest (cr)

HÖ mËt CR lμ hÖ mËt khãa c«ng khai xÕp ba l« duy nhÊt hiÖn


nay kh«ng sö dông phÐp nh©n modulo ®Ó ngôy trang bμi to¸n
tæng tËp con.
142 Gi¸o tr×nh MËt m· häc

4.6.1. ThuËt to¸n t¹o khãa


Tãm l−îc: Mçi bªn liªn l¹c t¹o mét khãa c«ng khai vμ mét
khãa riªng t−¬ng øng. A thùc hiÖn c¸c b−íc sau:
(1) Chän mét tr−êng h÷u h¹n Fq cã ®Æc sè q, trong ®ã q = ph,

p ≥ h vμ ®èi víi nã bμi to¸n logarit rêi r¹c lμ khã gi¶i.


(2) Chän mét ®a thøc bÊt kh¶ quy ®Þnh chuÈn ngÉu nhiªn
f (x ) bËc h trªn Z p . C¸c phÇn tö cña Fq sÏ ®−îc biÓu diÔn b»ng c¸c

®a thøc trong Z p [x ] cã bËc nhá h¬n h víi phÐp nh©n ®−îc thùc
hiÖn theo mod f (x ) .

(3) Chän mét phÇn tö nguyªn thuû ngÉu nhiªn g (x ) cña Fq .

(4) Víi mçi phÇn tö cña tr−êng c¬ së i ∈ Z P , t×m logarit rêi


r¹c a i = log g (x ) (x + i ) cña c¸c phÇn tö x + i theo c¬ sè g (x ) .

(5) Chän mét phÐp ho¸n vÞ ngÉu nhiªn π trªn c¸c sè nguyªn
{1, 2 , K , p − 1} .
(6) Chän mét sè nguyªn ngÉu nhiªn d, 0 ≤ d ≤ p h − 2

( )
(7) TÝnh C i = (a π(i ) + d )mod p h − 1 , 0 ≤ i ≤ p − 1 .

(8) Khãa c«ng khai cña A lμ ((C 0 , C1 ,K, C p−1 ), p , h )

Khãa riªng cña A lμ ( f (x ), g (x ), π , d ) .

4.6.2. ThuËt to¸n m· hãa


Tãm l−îc: B m· ho¸ th«ng b¸o m ®Ó göi cho A.

4.6.2.1. M· hãa
B thùc hiÖn c¸c b−íc sau:
a) NhËp khãa c«ng khai cña A ((C 0 , C1 ,K, C p−1 ), p , h )
Ch−¬ng 4: MËt m· khãa c«ng khai 143

⎡ ⎛ p ⎞⎤
b) BiÓu diÔn th«ng b¸o nh− mét x©u bit cã ®é dμi ⎢lg ⎜⎜ ⎟⎟⎥
⎣ ⎝ h ⎠⎦
⎛p⎞ p!
trong ®ã ⎜⎜ ⎟⎟ = .
⎝ h ⎠ h ! (p − h )!

c) Xem m nh− lμ biÓu diÔn nhÞ ph©n cña mét sè nguyªn. BiÕn
®æi sè nguyªn nμy thμnh m«t vÐct¬ nhÞ ph©n
M = (M 0 , M1 ,K, M p−1 ) cã ®é dμi p vμ cã ®óng h con sè 1 nh− sau:

i. §Æt l ← h
ii. For i from 1 to n do:

⎛P − i⎞ ⎛p − i⎞
NÕu m ≥ ⎜⎜ ⎟⎟ th× ®Æt M i −1 ← 1, m ← m − ⎜⎜ ⎟⎟ , l ← l − 1 .
⎝ l ⎠ ⎝ l ⎠
NÕu kh«ng th× ®Æt:
⎛ ⎛n⎞
Mi −1 ← 0 ⎜⎜ CY : ⎜⎜ ⎟⎟ = 1 víi n ≥ 0
⎝ ⎝0⎠
⎛0⎞ ⎞
⎜⎜ ⎟⎟ = 0 víi l ≥ 1 ⎟⎟
⎝l⎠ ⎠
p −1
c) TÝnh c = ∑ Mi ci mod (p h − 1) .
i =1

d) Göi b¶n m· c cho A.

4.6.6.2. Gi¶i m·

§Ó kh«i phôc b¶n m· râ m tõ c, A ph¶i thùc hiÖn c¸c b−íc


lÖnh sau:

(
a) TÝnh r = (c − hd )mod p h − 1 . )
b) TÝnh u (x ) = g r (x ) mod ƒ (x ) .
144 Gi¸o tr×nh MËt m· häc

c) TÝnh s(x ) = u(x ) + f (x ) lμ mét ®a thøc ®Þnh chuÈn h trªn Z p .

d) Ph©n tÝch s(x ) thμnh c¸c nh©n tö bËc nhÊt trªn Z p .


h
s(x ) = ∏ (x + t ) trong ®ã t
j−1
j j ∈ Zp .

e) C¸c thμnh phÇn cã gi¸ trÞ 1 cña vÐct¬ M cã c¸c chØ sè lμ


π (t j ) víi 1 ≤ j ≤ h .
−1

C¸c thμnh phÇn cßn l¹i b»ng 0


f) Th«ng b¸o m ®−îc kh«i phôc l¹i tõ M nh− sau:
i. §Æt m ← 0 , l ← h

ii. For i from 1 to p do:


⎛p − i⎞
NÕu M i −1 = 1 th× ®Æt m ← m + ⎜⎜ ⎟⎟ , l ← l − 1 .
⎝ l ⎠
Chøng minh ho¹t ®éng gi¶i m·:
Ta thÊy

u(x ) = g 2 (x )mod f (x )
⎛ p −1 ⎞
≡ [g (x )] ≡ [g (x )]
c − hd ⎜ ∑ M i c i ⎟ − hd
⎜ ⎟
⎝ i =0 ⎠
⎛ p −1 ⎞
≡ [g (x )]
(
⎜ ∑ M i a π (i ) +d

)⎟⎟−hd
⎝ i =0 ⎠
p −1

≡ [g (x )]i∑ mod f (x )
M i a π (i )
=0

∏ [g (x ) ]
p −1 Mi p −1 Mi

u(x ) ≡
i =0
a π (i )
≡ ∏ (x + π(i ))
i =0
(mod ƒ (x ))

p −1 Mi

V× ∏ (x + π(i )) vμ s(x ) lμ c¸c ®a thøc ®Þnh chuÈn bËc h vμ


i =0

®ång d− víi nhau theo modulo f (x ) nªn


Ch−¬ng 4: MËt m· khãa c«ng khai 145

p −1 Mi

s(x ) = u(x ) + f (x ) = ∏ (x + π(i ))


i =0

Bëi vËy tÊt c¶ c¸c c¨n bËc h cña s(x ) ®Òu n»m trong Z p vμ ¸p

dông π −1 ®èi víi c¸c c¨n nμy ta sÏ cã c¸c to¹ ®é cña M lμ 1.

4.6.3. VÝ dô

4.6.3.1. T¹o khãa:

A thùc hiÖn c¸c b−íc sau:


(1) Chän p = 7 vμ h = 4 .

(2) Chän ®a thøc bÊt kh¶ quy f (x ) = x 4 + 3x 3 + 5x 2 + 6x + 2 cã


bËc 4 trªn Z 7 . C¸c phÇn tö cña tr−êng h÷u h¹n F74 ®−îc biÓu diÔn

b»ng c¸c ®a thøc trong Z 7 [x ] .

(3) Chän phÇn tö nguyªn thñy ngÉu nhiªn g (x ) = 3x 3 + 3x 2 + 6 .

(4) TÝnh c¸c logarit rêi r¹c sau:


a 0 = log g (x ) (x ) = 1028
a1 = log g (x ) (x + 1) = 1935
a 2 = log g (x ) (x + 2) = 2054
a 3 = log g (x ) (x + 3 ) = 1008
a 4 = log g (x ) (x + 4 ) = 379
a 5 = log g (x ) (x + 5 ) = 1780
a 6 = log g (x ) (x + 6 ) = 223

(5) Chän phÐp ho¸n vÞ ngÉu nhiªn trªn {0 ,1 , 2 , 3 , 4 ,5 , 6} nh− sau:


π(0 ) = 6 π(3 ) = 2 π(5 ) = 5
π(1) = 4 π(4 ) = 1 π(6 ) = 3
π(2) = 0
146 Gi¸o tr×nh MËt m· häc

(6) Chän sè nguyªn ngÉu nhiªn d = 1702


(7) TÝnh:
C 0 = (a 6 + d )mod 2400 = 1925
C1 = (a 4 + d )mod 2400 = 2081
C 2 = (a 0 + d )mod 2400 = 330
C 3 = (a 2 + d )mod 2400 = 1356
C 4 = (a 1 + d ) mod 2400 = 1237
C5 = (a 5 + d )mod 2400 = 1082
C 6 = (a 3 + d )mod 2400 = 310

(8) Khãa c«ng khai cña A lμ:


((C0 , C1 , C2 , C3 , C4 , C5 , C6 ), p = 7 , h = 4 )
Khãa bÝ mËt cña A lμ ( f (x ), g (x ), π , d ) .

4.6.3.2. M· hãa
§Ó m· hãa b¶n tin m = 22 göi cho A, B lμm nh− sau:
(1) NhËn khãa c«ng khai cña A.
(2) BiÓu diÔn m nh− mét x©u bit ®é dμi 5: m = 1 0 11 0 (Chó ý
⎡ ⎛ 7 ⎞⎤
r»ng ⎢lg ⎜⎜ ⎟⎟⎥ = 5 )
⎣ ⎝ 4 ⎠⎦
(3) Dïng ph−¬ng ph¸p ®· nªu ë trªn b−íc c trong thuËt to¸n
trªn ®Ó biÕn ®æi m thμnh vÐct¬ nhÞ ph©n M cã ®é dμi M:
M = (1, 0,1,1, 0, 0,1)

(4) TÝnh C = (C 0 + C 2 + C 3 + C 6 )mod 2400 = 1521


(5) Göi C = 1521 cho A.

4.6.3.3. Gi¶i m·
(1) TÝnh r = (c − hd )mod 2400 = 1913

(2) TÝnh u(x ) = g (x )1913 mod ƒ (x ) = x 3 + 3x 2 + 2x + 5


Ch−¬ng 4: MËt m· khãa c«ng khai 147

(3) TÝnh g (x ) = u(x ) + f (x ) = x 4 + 4 x 3 + x 2 + x

(4) Ph©n tÝch s(x ) = x(x + 2)(x + 3 )(x + 6 )

(Do ®ã t 1 = 0, t 2 = 2 , t 3 = 3 , t 4 = 6 )

(5) C¸c thμnh phÇn cña M b»ng 1 cã c¸c chØ sè

π −1 (0 ) = 2 π −1 (2) = 3 π −1 (3 ) = 6 π −1 (6 ) = 0

Bëi vËy M = (1, 0,1,1, 0, 0,1)

(6) Sö dông b−íc f trong thuËt to¸n gi¶i m· ®Ó biÕn ®æi M


thμnh sè nguyªn m = 22 vμ nh− vËy kh«i phôc ®−îc b¶n râ ban ®Çu.

4.6.4. Chó ý
- HÖ mËt nμy ®−îc xem lμ an toμn nÕu kh«ng bÞ lé khãa bÝ mËt.
- Cã thÓ më réng hÖ mËt nμy cho tr−êng hîp Z p víi p lμ luü

thõa cña mét sè nguyªn tè.


- §Ó lμm cho bμi to¸n logarit rêi r¹c lμ dÔ gi¶i, c¸c tham sè p
vμ h ph¶i chän sao cho q = p h − 1 chØ cã c¸c nh©n tö cã gi¸ trÞ nhá.

- Trong thùc tÕ, kÝch th−íc khuyÕn nghÞ cña c¸c tham sè lμ
p ≈ 200 , h ≈ 25 (VÝ dô p = 197 vμ h = 24 ).

- Trë ng¹i lín nhÊt cña thuËt to¸n lμ khãa c«ng khai víi kÝch
th−íc chõng p . h log p bit lμ qu¸ lín. VÝ dô víi p = 197 vμ h = 24
khãa c«ng khai cã chõng 36.000 bit.

4.7. hÖ mËt McElice

HÖ mËt McEliece sö dông nguyªn lý t−¬ng tù nh− hÖ mËt


Merkle-Hellman. PhÐp gi¶i m· lμ mét tr−êng hîp ®Æc biÖt cña bμi
to¸n NP ®Çy ®ñ nh−ng nã ®−îc ngôy trang gièng nh− tr−êng hîp
148 Gi¸o tr×nh MËt m· häc

chung cña bμi to¸n. Trong hÖ thèng nμy bμi to¸n NP ®−îc ¸p dông
ë ®©y lμ bμi to¸n gi¶i m· cho mét m· söa sai (nhÞ ph©n) tuyÕn
tÝnh nãi chung. Tuy nhiªn, ®èi víi nhiÒu líp m· ®Æc biÖt ®Òu tån
t¹i c¸c thuËt to¸n gi¶i m· víi thêi gian ®a thøc. Mét trong nh÷ng
líp m· nμy lμ m· Goppa, chóng ®−îc dïng lμm c¬ së cho hÖ mËt
McEliece.

4.7.1. §Þnh nghÜa 1


Gi¶i sö k, n lμ c¸c sè nguyªn d−¬ng, k ≤ n . M· C[n , k ] lμ mét

kh«ng gian k chiÒu cña (Z 2 )n (kh«ng gian vÐct¬ cña tÊt c¶ c¸c
vÐct¬ nhÞ ph©n n chiÒu).
Ma trËn sinh cña m· C[n , k ] lμ ma trËn nhÞ ph©n k× n , c¸c
hμng cña ma trËn nμy t¹o nªn c¬ së cña C.

Gi¶ sö x , y ∈ (Z 2 )n , trong ®ã x = (x1 ,K, x n ) vμ y = (y1 ,K, y n ) .


Ta x¸c ®Þnh kho¶ng c¸ch Hamming: d(x , y ) = {i : 1 ≤ i ≤ n , x i ≠ y i }
tøc lμ sè c¸c to¹ ®é mμ ë ®ã x vμ y kh¸c nhau.
Kho¶ng c¸ch m· C ®−îc ®Þnh nghÜa nh− sau:
d(C) = min{d (x , y ) : x , y ∈ C , x ≠ y}

M· [n , k ] cã kho¶ng c¸ch d ®−îc ký hiÖu lμ m· [n , k , d ] .

M· söa sai ®−îc dïng ®Ó söa c¸c sai ngÉu nhiªn x¶y ra khi
truyÒn sè liÖu (nhÞ ph©n) qua kªnh cã nhiÔu. §iÒu ®ã ®−îc thùc
hiÖn nh− sau: Gi¶ sö G lμ mét ma trËn sinh ®èi víi m· [n , k , d ] , x
lμ vÐct¬ nhÞ ph©n k chiÒu cÇn truyÒn ®i. Ng−êi göi Alice sÏ m· ho¸
x thμnh mét vÐct¬ n chiÒu y = x G råi truyÒn y qua kªnh.

Gi¶ sö Bob nhËn ®−îc vÐct¬ n chiÒu r kh«ng gièng y, Bob sÏ


gi¶i m· r b»ng chiÕn thuËt gi¶i m· "ng−êi l¸ng giÒng gÇn nhÊt".
Ch−¬ng 4: MËt m· khãa c«ng khai 149

Theo chiÕn thuËt nμy, Bob sÏ t×m thÊy tõ y' cã kho¶ng c¸ch tíi r
nhá nhÊt. Sau ®ã anh ta gi¶i m· r thμnh y', råi x¸c ®Þnh vÐct¬ k
chiÒu x' sao cho y' = x' G . Bob hy väng y' = y vμ bëi vËy x' = x (tøc
lμ Bob tin r»ng c¸c sai sè trªn ®−êng truyÒn ®· ®−îc söa).
DÔ dμng thÊy r»ng, nÕu sai sè trªn ®−êng truyÒn nhiÒu nhÊt
lμ (d − 1) / 2 th× trªn thùc tÕ chiÕn thuËt nμy sÏ söa ®−îc tÊt c¶
c¸c sai.
Ta xÐt trªn thùc tÕ, thuËt to¸n gi¶i m· nμy ®−îc thùc hiÖn
nh− thÕ nμo? V× C = 2 k nªn Bob so s¸nh r víi mçi tõ m· anh ta

ph¶i kiÓm tra 2 k vÐct¬ lμ mét sè lín theo hμm mò so víi k. Nãi
c¸ch kh¸c, thuËt to¸n nμy kh«ng ph¶i lμ thuËt to¸n ch¹y trong
thêi gian ®a thøc.
Mét biÖn ph¸p kh¸c (t¹o c¬ së cho nhiÒu thuËt to¸n gi¶i m·
thùc tÕ) dùa trªn kh¸i niÖm vÒ syndrom. Ma trËn kiÓm tra tÝnh
ch½n lÎ cña m· C[n , k , d ] (cã ma trËn sinh G) lμ mét m· trËn nhÞ
ph©n (n − k )× n chiÒu (ký hiÖu lμ H). C¸c hμng cña H sÏ t¹o c¬ së
cho c¸c phÇn bï trùc giao cña C (ký hiÖu lμ C ⊥ ) vμ ®−îc gäi lμ m·
®èi ngÉu víi C. Nãi c¸ch kh¸c, c¸c hμng cña H lμ nh÷ng vÐct¬ ®éc
lËp tuyÕn tÝnh, cßn G H ⊥ lμ mét ma trËn kh«ng cÊp k × (n – k).

Cho vÐct¬ r ∈ (Z 2 )n , ta x¸c ®Þnh syndrom cña r lμ H r ⊥ .


Syndrom H r ⊥ lμ mét vÐct¬ cét cã (n − k ) thμnh phÇn.

4.7.2. §Þnh lý 2
Gi¶ sö C lμ mét m· [n , k ] cã ma trËn sinh G vμ ma trËn kiÓm

tra tÝnh ch½n lÎ H. Khi ®ã x ∈ (Z 2 )n lμ mét tõ m· khi vμ chØ khi

H x T = [0 0 K 0] .
T
150 Gi¸o tr×nh MËt m· häc

H¬n n÷a nÕu x ∈ C , e ∈ (Z 2 )n vμ r = x + e th× H x T = H e T .

Ta coi e lμ vÐct¬ sai xuÊt hiÖn trong qu¸ tr×nh truyÒn tõ m·


x. Khi ®ã r biÓu diÔn vÐct¬ thu ®−îc. §Þnh lý trªn ph¸t biÓu r»ng
syndrom chØ phô thuéc vμo c¸c sai sè mμ kh«ng phô thuéc vμo tõ
m· cô thÓ nμo ®−îc truyÒn ®i.
§iÒu nμy gîi ý tíi mét c¸ch gi¶i m· gäi lμ gi¶i m· theo
syndrom. Tr−íc tiªn tÝnh s = H r T nÕu s lμ mét vÐct¬ kh«ng, th× ta
gi¶i m· r thμnh r. NÕu kh«ng th× ta sÏ lÇn l−ît t¹o tÊt c¶ c¸c vÐct¬
sai cã träng sè 1. Víi mçi vÐct¬ nμy, ta tÝnh H e T . NÕu cã mét

vÐct¬ e nμo ®ã tháa m·n H e T = s th× ta gi¶i m· r thμnh r − e .


Ng−îc l¹i, l¹i tiÕp tôc t¹o c¸c vÐct¬ sai cã träng sè 2, 3,K, [(d − 1) / 2] .

Theo thuËt to¸n nμy, cã thÓ gi¶i m· cho mét vÐct¬ nhËn ®−îc
⎛ n ⎞
⎛n⎞ ⎜ ⎟
trong nhiÒu nhÊt 1 + ⎜⎜ ⎟⎟ + K + ⎜ d − 1 ⎟ b−íc.
⎝1⎠ ⎜ 2 ⎟
⎝ ⎠

Ph−¬ng ph¸p nμy lμm viÖc trªn mét m· tuyÕn tÝnh bÊt kú.
§èi víi mét sè lo¹i m· ®Æc biÖt, thñ tôc gi¶i m· cã thÓ nhanh
chãng h¬n. Tuy nhiªn, trªn thùc tÕ, c¸ch gi¶i quyÕt nμy cho chiÕn
thuËt gi¶i m· "ng−êi l¸ng giÕng gÇn nhÊt" vÉn lμ mét bμi to¸n NP
®Çy ®ñ. Nh− vËy, vÉn ch−a cã mét thuËt to¸n gi¶i trong thêi gian
®a thøc ®· biÕt nμo cho bμi to¸n gi¶i m· theo "ng−êi l¸ng giÒng
gÇn nhÊt" tæng qu¸t. (Khi sè c¸c sai sè kh«ng bÞ giíi h¹n bëi
[(d − 1) / 2] ).
Còng gièng nh− bμi to¸n tæng tËp con, cã thÓ chØ ra mét
tr−êng hîp ®Æc biÖt "dÔ", sau ®ã ngôy trang sao cho nã gièng víi
bμi to¸n chung "khã". §Ó ®−a ra lý thuyÕt sÏ rÊt dμi dßng, bëi vËy
Ch−¬ng 4: MËt m· khãa c«ng khai 151

ta sÏ chØ tãm l−îc c¸c kÕt qu¶ ë ®©y. Mét tr−êng hîp kh¸ dÔ ®−îc
McEliece ®Ò nghÞ lμ dïng mét m· trong líp c¸c m· Goppa. Trªn
thùc tÕ, c¸c m· nμy cã mét thuËt to¸n gi¶i m· h÷u hiÖu. H¬n n÷a
c¸c, c¸c m· nμy rÊt dÔ t¹o vμ cã mét sè l−îng lín c¸c m· Goppa
t−¬ng ®−¬ng cã cïng tham sè.

C¸c tham sè cña m· Goppa cã d¹ng n = 2 m , d = 2t + 1 vμ


k = n − mt . §Ó ¸p dông trong thùc tÕ cho mét hÖ mËt khãa c«ng
khai, McEliece ®Ò nghÞ chän m = 10 vμ t = 50 . §iÒu nμy øng víi
m· Goppa [1024 , 524 ,101]. Mçi b¶n râ lμ mét vÐct¬ nhÞ ph©n cÊp
524 vμ mçi b¶n m· lμ mét vÐct¬ nhÞ ph©n cÊp 1024. Kho¸ c«ng
khai lμ mét ma trËn nhÞ ph©n cÊp 524 × 1024. H×nh 4.1 sÏ m« t¶
hÖ mËt McEliece.

Cho G lµ mét ma trËn sinh cña mét m· Goppa C[n, k, d], trong ®ã
n = 2m, d = 2t + 1 vµ k = n - mt. Cho s lµ mét ma trËn kh¶ nghÞch cÊp k × k trªn
Z2. Gi¶ sö P lµ mét ma trËn ho¸n vÞ cÊp n × n, ta ®Æt G' = SGP. Cho P = (Z2)2,
C = (Z2)n vµ ký hiÖu: K = {(G, S, P, G')}
Trong ®ã G, S, P ®−îc x©y dùng nh− m« t¶ ë trªn vµ ®−îc gi÷ kÝn, cßn G'
®−îc c«ng khai. Víi K = (G, S, P, G'), ta ®Þnh nghÜa: ek(x, e) = xG' + e. ë ®©y, e
∈ (Z2)n lµ mét vÐct¬ ngÉu nhiªn cã träng sè t.
Bob gi¶i m· b¶n m· y ∈ (Z2)n theo c¸c b−íc sau:
1. TÝnh y1 = yP-1.
2. Gi¶i m· (Decode) y1, Bob t×m ®−îc y1 = x1 + e1, x1 ∈ C.
3. TÝnh x0 ∈ (Z2)k sao cho x0G = x1.
4. TÝnh x = x0S-1.

H×nh 4.1: HÖ mËt McEliece


§Ó minh häa cho c¸c thñ tôc m· vμ gi¶i m· (code and
decode), xÐt vÝ dô sau:
152 Gi¸o tr×nh MËt m· häc

VÝ dô 1: Ma trËn:
⎛1 0 0 0 1 1 0⎞
⎜ ⎟
⎜0 1 0 0 1 0 1⎟
G=⎜
0 0 1 0 0 1 1⎟
⎜ ⎟
⎜0 0 0 1 1 1 1 ⎟⎠

lμ ma trËn sinh cña m· Hamming [7 , 4 , 3] . Gi¶ sö Bob chän
ma trËn S vμ ma trËn P nh− sau:
⎛0 1 0 0 0 0 0⎞
⎜ ⎟
⎜0 0 0 1 0 0 0⎟
⎛1 1 0 1⎞ ⎜0
⎜ ⎟ 0 0 0 0 0 1⎟
⎜1 0 0 1⎟ ⎜ ⎟
S=⎜ vμ P = ⎜1 0 0 0 0 0 0⎟
0 1 1 1⎟ ⎜ ⎟
⎜ ⎟
⎜1 0 0 ⎟⎠ ⎜0 0 1 0 0 0 0⎟
⎝ 1
⎜0 0 0 0 0 1 0⎟
⎜ ⎟
⎝0 0 0 0 1 0 0⎠

Khi ®ã ma trËn sinh c«ng khai lμ:


⎛1 1 1 1 0 0 0⎞
⎜ ⎟
⎜1 1 0 0 1 0 0⎟
G' = ⎜
1 0 0 1 1 0 1⎟
⎜ ⎟
⎜0 1 0 1 1 1 0 ⎟⎠

B©y giê gi¶ sö Alice m· hãa b¶n râ x = (1, 1, 0, 1) b»ng c¸ch
dïng mét vÐct¬ sai ngÉu nhiªn träng sè 1 cã d¹ng: e = (0, 0, 0, 1, 0, 0)
B¶n m· tÝnh ®−îc lμ:
y = x G' + e
⎛1 1 1 1 0 0 0⎞
⎜ ⎟
⎜1 1 0 0 1 0 0⎟
= (1, 1, 0, 1)⎜ + (0, 0, 0, 0, 1, 0, 0 )
1 0 0 1 1 0 1⎟
⎜ ⎟
⎜0 1 0 1 1 1 0⎟
⎝ ⎠
= (0, 1, 1, 0, 0, 1, 0 ) + (0, 0, 0, 0, 1, 0, 0 )
= (0, 1, 1, 0, 1, 1, 0 )
Ch−¬ng 4: MËt m· khãa c«ng khai 153

Khi Bob nhËn ®−îc b¶n m· y, tr−íc hÕt anh ta tÝnh

⎛0 0 0 1 0 0 0⎞
⎜ ⎟
⎜1 0 0 0 0 0 0⎟
⎜0 0 0 0 1 0 0⎟
⎜ ⎟
y 1 = y P −1 = (0, 1, 1, 0, 1, 1, 0 )⎜ 0 1 0 0 0 0 0⎟
⎜ ⎟
⎜0 0 0 0 0 0 1⎟
⎜0 0 0 0 0 1 0⎟
⎜ ⎟
⎝0 0 1 0 0 0 0⎠
= (1, 0, 0, 0, 1, 1, 1)

TiÕp theo Bob gi¶i m· y1 ®Ó nhËn ®−îc x1 = (1, 0, 0, 0, 1, 1, 0 )

(CÇn ®Ó ý lμ e1 ≠ e do phÐp nh©n víi P −1 )

Sau ®ã anh ta lËp x 0 = (1, 0, 0, 0 ) (bèn thμnh phÇn ®Çu tiªn


cña x1 ).

Cuèi cïng Bob tÝnh:

⎛1 1 0 1⎞
⎜ ⎟
⎜1 1 0 0⎟
−1
x = S x0 = ⎜ (1, 0, 0, 0) = (1, 1, 0, 1)
0 1 1 1⎟
⎜ ⎟
⎜1 0 0 1 ⎟⎠

§©y chÝnh lμ b¶n râ m· Alice ®· m·.

4.8. c¸c hμm b¨m vμ tÝnh toμn vÑn cña d÷ liÖu

4.8.1. Më ®Çu

C¸c hμm b¨m ®ãng vai trß c¬ b¶n trong mËt m· hiÖn ®¹i.
Hμm b¨m sÏ t¹o ra mét ®Çu ra tõ b¶n tin ®Çu vμo. §Çu ra nμy
®−îc ®Þnh nghÜa lμ m· b¨m (kÕt qu¶ b¨m, gi¸ trÞ b¨m).
154 Gi¸o tr×nh MËt m· häc

Nãi mét c¸ch chÝnh x¸c h¬n, hμm b¨m h sÏ t¹o ra ¸nh x¹
c¸c x©u bit cã ®é dμi h÷u h¹n tuú ý thμnh c¸c x©u bit cã ®é dμi n
cè ®Þnh.
Hμm b¨m h lμ mét ¸nh x¹ cã ®é dμi n cè ®Þnh h : D → R vμ
D > R ®iÒu nμy cã nghÜa lμ kh«ng thÓ tr¸nh khái c¸c va ch¹m

(tøc lμ cïng mét gi¸ trÞ ®Çu ra cã thÓ cã nhiÒu bé gi¸ trÞ vμo kh¸c
nhau). NÕu hμm h lμ ngÉu nhiªn theo nghÜa tÊt c¶ c¸c ®Çu ra lμ
®ång x¸c suÊt th× cã chõng 2 t − n c¸c ®Çu vμo ¸nh x¹ tíi mçi ®Çu ra
(t: sè bit ®Çu vμo, n: sè bit ®Çu ra, t > n) vμ 2 ®Çu vμo ®−îc chän
ngÉu nhiªn sÏ cã cïng ®Çu ra víi x¸c suÊt 2 −n (kh«ng phô thuéc
vμo t).

ý t−ëng c¬ b¶n cña viÖc sö dông c¸c hμm b¨m trong mËt m·
lμ sö dông chóng nh− mét ¶nh biÓu diÔn rót gän (®«i khi cßn ®−îc
gäi lμ vÕt, dÊu tay sè hay tãm l−îc th«ng b¸o) cña mét x©u vμo vμ
cã thÓ ®−îc dïng nh− thÓ nã chÝnh lμ x©u vμo ®ã.
C¸c hμm b¨m ®−îc dïng cho c¸c s¬ ®å ch÷ ký sè kÕt hîp víi
viÖc ®¶m b¶o tÝnh toμn vÑn cña d÷ liÖu, khi ®ã b¶n tin tr−íc hÕt
®−îc b¨m vμ råi gi¸ trÞ b¨m (®−îc xem nh− ®¹i diÖn cho b¶n tin)
sÏ ®−îc ký thay cho vÞ trÝ b¶n tin gèc.
Mét líp c¸c hμm b¨m ®−îc gäi lμ c¸c m· x¸c thùc th«ng b¸o
(MAC - Message Authentication Codes) sÏ cho phÐp x¸c thùc
th«ng b¸o b»ng kü thuËt ®èi xøng (mËt m· cæ ®iÓn).
C¸c thuËt to¸n MAC sö dông 2 ®Çu vμo (bao gåm b¶n tin vμ
mét khãa bÝ mËt) ®Ó t¹o ra mét ®Çu ra cã kÝch cì cè ®Þnh (n bit) víi
ý ®å ®¶m b¶o r»ng nÕu kh«ng biÕt khãa th× viÖc t¹o ra cïng mét
Ch−¬ng 4: MËt m· khãa c«ng khai 155

®Çu ra lμ kh«ng kh¶ thi. MAC cã thÓ ®−îc dïng ®Ó ®¶m b¶o tÝnh
toμn vÑn cña d÷ liÖu, x¸c thùc tÝnh nguyªn b¶n cña sè liÖu còng
nh− ®Þnh danh trong s¬ ®å mËt m· cæ ®iÓn.
Mét øng dông ®iÓn h×nh cña hμm b¨m (kh«ng dïng khãa) ®Ó
®¶m b¶o tÝnh toμn vÑn cña d÷ liÖu cã thÓ ®−îc m« t¶ nh− sau:
Gi¸ trÞ b¨m t−¬ng øng víi mét b¶n tin riªng x sÏ ®−îc tÝnh ë
thêi ®iÓm T1. TÝnh toμn vÑn cña gi¸ trÞ b¨m nμy (chø kh«ng ph¶i
lμ b¶n th©n b¶n tin) sÏ ®−îc b¶o vÖ theo mét c¸ch nμo ®ã. ë thêi
®iÓm tiÕp theo sau T2, phÐp kiÓm tra sau sÏ ®−îc tiÕn hμnh ®Ó x¸c
®Þnh xem liÖu th«ng b¸o cã bÞ söa ®æi hay kh«ng, tøc lμ xem liÖu
b¶n tin x ' cã gièng b¶n tin gèc hay kh«ng. Gi¸ trÞ b¨m cña x ' sÏ
®−îc tÝnh to¸n vμ so s¸nh víi gi¸ trÞ b¨m ®· ®−îc b¶o vÖ, nÕu
chóng b»ng nhau th× bªn thu sÏ chÊp nhËn r»ng x vμ x ' lμ nh−
nhau vμ nh− vËy cã nghÜa lμ b¶n tin ®· kh«ng bÞ söa ®æi. Nh− vËy
vÊn ®Ò ®¶m b¶o tÝnh vÑn toμn cña mét b¶n tin lín sÏ ®−îc göi vÒ
®¶m b¶o cho mét gi¸ trÞ b¨m cã kÝch cì cè ®Þnh (vμ nhá).

øng dông trªn th−êng ®−îc gäi lμ m· ph¸t hiÖn sù söa ®æi
(MDC - Manipulation Detection Codes).

4.8.2. C¸c ®Þnh nghÜa vμ tÝnh chÊt c¬ b¶n

4.8.2.1. §Þnh nghÜa hμm b¨m

Hμm b¨m lμ mét hμm h cã Ýt nhÊt hai tÝnh chÊt sau:


a) TÝnh chÊt nÐn: h sÏ ¸nh x¹ mét ®Çu vμo x cã ®é dμi bit h÷u
h¹n tïy ý tíi mét ®Çu ra h(x) cã ®é dμi bit n h÷u h¹n.
b) TÝnh chÊt dÔ dμng tÝnh to¸n: Víi h cho tr−íc vμ mét ®Çu
vμo x, cã thÓ dÔ dμng tÝnh ®−îc h(x).
156 Gi¸o tr×nh MËt m· häc

4.8.2.2. Mét sè tÝnh chÊt cña c¸c hμm b¨m kh«ng cã khãa
Gi¶ sö h lμ mét hμm b¨m kh«ng cã khãa, x vμ x ' lμ c¸c ®Çu
vμo y vμ y' lμ c¸c ®Çu ra. Ngoμi hai tÝnh chÊt c¬ b¶n trªn ta cßn cã
3 tÝnh chÊt sau:
a) TÝnh khã tÝnh to¸n nghÞch ¶nh:
§èi víi hÇu hÕt c¸c ®Çu ra ®−îc x¸c ®Þnh tr−íc, kh«ng cã kh¶
n¨ng tÝnh to¸n ®Ó t×m mét ®Çu vμo bÊt kú mμ khi b¨m sÏ cho ra
®Çu ra t−¬ng øng (Tøc lμ t×m mét nghÞch ¶nh x' sao cho h(x') = y
víi y cho tr−íc vμ kh«ng biÕn ®Çu vμo t−¬ng øng).
b) TÝnh khã t×m nghÞch ¶nh thø hai:
Kh«ng cã kh¶ n¨ng tÝnh to¸n ®Ó t×m mét ®Çu vμo ®· cho
tr−íc (Tøc lμ víi x cho tr−íc ph¶i t×m x' ≠ x sao cho h(x ) = h(x') ).

c) TÝnh khã va ch¹m


Kh«ng cã kh¶ n¨ng vÒ tÝnh to¸n ®Ó t×m hai ®Çu vμo kh¸c
nhau bÊt kú x vμ x ' ®Ó h(x ) = h(x') .

4.8.2.3. §Þnh nghÜa hμm b¨m mét chiÒu (OWHF - oneway


hash function)
OWHF lμ mét hμm b¨m (cã hai tÝnh chÊt c¬ b¶n) cã tÝnh chÊt
bæ sung lμ :
- Khã t×m nghÞch ¶nh
- Khã t×m nghÞch ¶nh thø hai.

4.8.2.4. §Þnh nghÜa hμm b¨m khã va ch¹m (CRHF: Collision


resistant HF)
CRHF lμ mét hμm b¨m (cã hai tÝnh chÊt c¬ b¶n) cã tÝnh chÊt
bæ sung lμ:
Ch−¬ng 4: MËt m· khãa c«ng khai 157

- Khã t×m nghÞch ¶nh thø hai


- Khã vμ ch¹m.

4.8.2.5. Chó ý vÒ c¸c thuËt ng÷

Khã t×m nghÞch ¶nh ≡ Mét chiÒu.


Khã t×m nghÞch ¶nh thø hai ≡ Khã va ch¹m yÕu.
Khã va ch¹m ≡ Khã va ch¹m m¹nh.
OWHF ≡ Hμm b¨m mét chiÒu yÕu.
CRHF ≡ Hμm b¨m mét chiÒu m¹nh.

4.8.2.6. VÝ dô
r bit kiÓm tra cña mét m· xyclic (n , k ) víi k > r cã thÓ coi lμ
mét hμm b¨m tho¶ m·n hai tÝnh chÊt c¬ b¶n (dÔ tÝnh to¸n vμ
nÐn). Tuy nhiªn nã kh«ng tho¶ m·n tÝnh chÊt khã t×m nghÞch ¶nh
thø hai.

4.2.8.7. §Þnh nghÜa thuËt to¸n m· x¸c thùc th«ng b¸o (MAC)
ThuËt to¸n MAC lμ mét hä c¸c hμm h k (®−îc tham sè hãa
b»ng mét khãa bÝ mËt k) cã c¸c tÝnh chÊt sau:
(1) DÔ dμng tÝnh to¸n: Víi h k ®· biÕt vμ gi¸ trÞ k cho tr−íc vμ
mét ®Çu vμo x, h k (x ) cã thÓ ®−îc tÝnh dÔ dμng ( h k (x ) ®−îc gäi lμ
gi¸ trÞ MAC hay MAC).
(2) NÐn: h k ¸nh x¹ mét ®Çu vμo x cã ®é dμi bit h÷u h¹n tuú
tíi mét ®Çu ra h k (x ) cã ®é dμi bit n cè ®Þnh.

(3) Khã tÝnh to¸n: Víi c¸c cÆp gi¸ trÞ (x i , h k (x i )) kh«ng cã kh¶
n¨ng tÝnh mét cÆp (x , h k (x )) víi x ≠ x i (kÓ c¶ cã kh¶ n¨ng
h k (x ) = h k (x i ) víi mét i nμo ®ã).
158 Gi¸o tr×nh MËt m· häc

NÕu tÝnh chÊt c kh«ng tháa m·n th× thuËt to¸n ®−îc coi lμ
gi¶ m¹o MAC.

4.8.2.8. Ph©n lo¹i c¸c hμm b¨m mËt m· vμ øng dông

Hµm b¨m

Kh«ng cã khãa Cã khãa

MDC C¸c øng dông kh¸c C¸c øng dông kh¸c MDC

OWHF CRHF

H×nh 4.2

4.8.3. C¸c hμm b¨m kh«ng cã khãa

(C¸c hμm b¨m dùa trªn mËt m· khèi).

4.8.3.1. §Þnh nghÜa 1

MËt m· khèi (n, r) lμ mét m· khèi x¸c ®Þnh mét hμm kh¶
nghÞch tõ c¸c b¶n râ n bit sang c¸c b¶n râ n bit b»ng c¸ch sö dông
mét khãa r bit. NÕu E lμ mét phÐp m· ho¸ nh− vËy th× E k (x ) ký

hiÖu cho phÐp m· ho¸ x b»ng khãa k.

4.8.3.2. §Þnh nghÜa 2

Cho h lμ mét hμm b¨m cã lÆp ®−îc x©y dùng tõ mét mËt m·
khèi víi hμm nÐn f thùc hiÖn s phÐp m· ho¸ khèi ®Ó xö lý tõng
khèi b¶n tin n bit. Khi ®ã tèc ®é cña h lμ 1/s.
Ch−¬ng 4: MËt m· khãa c«ng khai 159

4.8.3.3. MDC ®é dμi ®¬n

Ba s¬ ®å d−íi ®©y cã liªn quan chÆt chÏ víi c¸c hμm b¨m ®é
dμi ®¬n, x©y dùng trªn c¸c mËt m· khèi. C¸c s¬ ®å nμy cã sö dông
c¸c thμnh phÇn ®−îc x¸c ®Þnh tr−íc nh− sau:
- Mét mËt m· khèi n bit khëi sinh E k ®−îc tham sè hãa b»ng
mét khãa ®èi xøng k.
- Mét hμm g ¸nh x¹ n bit vμo thμnh khãa k sö dông cho E
(NÕu c¸c khãa cho E còng cã ®é dμi n th× g cã thÓ lμ hμm ®ång nhÊt).
- Mét gi¸ trÞ ban ®Çu cè ®Þnh IV thÝch hîp ®Ó dïng víi E.

xi Hi-1 xi

xi Hi-1
g E E g E
Hi-1

Hi Hi Hi

Matyas - Mayer - Oseas Davies - Mayer Miyaguchi - Preneel

H×nh 4.3

4.8.3.3.1. ThuËt to¸n b¨m Matyas - Mayer - Oseas

Vμo: X©u bit x.

Ra : M· b¨m n bit cña x.

(1) §Çu vμo x ®−îc ph©n chia thμnh c¸c khèi n bit vμ ®−îc
®én nÕu cÇn thiÕt nh»m t¹o khèi cuèi cïng hoμn chØnh. Ta ®−îc t
khèi n bit: x1 x 2 K x t . Ph¶i x¸c ®Þnh tr−íc mét gi¸ trÞ ban ®Çu n

bit (ký hiÖu IV).


160 Gi¸o tr×nh MËt m· häc

(2) §Çu ra lμ H t ®−îc x¸c ®Þnh nh− sau:


H 0 = IV, H i = E g (Hi −1 ) (x i ) ⊕ x i , 1 ≤ i ≤ t .

4.8.3.3.2. ThuËt to¸n b¨m Davies - Mayer

Vμo: X©u bit x

Ra : M· b¨m n bit cña x


(1) §Çu vμo x ®−îc ph©n thμnh c¸c khèi k bit (k lμ kÝch th−íc
khãa) vμ ®−îc ®én nÕu cÇn thiÕt ®Ó t¹o khèi cuèi cïng hoμn chØnh.
BiÓu thÞ th«ng b¸o ®· ®én thμnh t khèi n bit: x1 x 2 K x t . X¸c
®Þnh tr−íc mét gi¸ trÞ ban ®Çu n bit (ký hiÖu IV).
(2) §Çu ra lμ H t ®−îc x¸c ®Þnh nh− sau:

H 0 = IV, H i = E xi (H i −1 ) ⊕ H i −1 , 1 ≤ i ≤ t .

4.8.3.3.3. ThuËt to¸n b¨m Miyaguchi - Preneel


S¬ ®å nμy t−¬ng tù nh− C1 ngo¹i trõ H i −1 (®Çu ra ë giai
®o¹n tr−íc) ®−îc céng mod 2 víi tÝn hiÖu ra ë giai ®o¹n hiÖn thêi.
Nh− vËy:
H 0 = IV, H i = E g (Hi −1 ) (x i ) ⊕ x i ⊕ H i −1 , 1 ≤ i ≤ t .

NhËn xÐt: S¬ ®å D_M cã thÓ coi lμ s¬ ®å ®èi ngÉu víi s¬ ®å


M - M - O theo nghÜa x i vμ H i −1 ®æi lÉn vai trß.

4.8.3.4. MDC ®é dμi kÐp: MDC - 2 vμ MDC - 4


MDC -2 vμ MDC - 4 lμ c¸c m· ph¸t hiÖn sù söa ®æi yªu cÇu
t−¬ng øng lμ 2 vμ 4 phÐp to¸n m· ho¸ khèi trªn mçi khèi ®Çu vμo
hμm b¨m. Chóng sö dông 2 hoÆc 4 phÐp lÆp cña s¬ ®å M - D - O ®Ó
t¹o ra hμm b¨m cã dé dμi kÐp. Khi dïng DES chóng sÏ t¹o ra m·
b¨m 128 bit. Tuy nhiªn trong cÊu tróc tæng qu¸t cã thÓ dïng c¸c
Ch−¬ng 4: MËt m· khãa c«ng khai 161

hÖ mËt m· khèi kh¸c MDC-2 vμ MDC4 sö dông c¸c thμnh phÇn


x¸c ®Þnh nh− sau:
- DES ®−îc dïng lμm mËt m· khèi Ek cã ®Çu vμo/ra 64 bit vμ
®−îc tham sè ho¸ b»ng khãa k 56 bit.
- Hai hμm g vμ ~
g ¸nh x¹ c¸c gi¸ trÞ 64 bit U thμnh c¸c khãa
DES 56 bit nh− sau:
Cho U = u1 u 2 K u 64 , xãa mäi bit thø 8 b¾t ®Çu tõ u8 vμ ®Æt
c¸c bit thø 2 vμ thø 3 vÒ "10" ®èi víi g vμ "01" ®èi víi ~
g.
g (U ) = u1 1 0 u 4 u 5 u 6 u 7 u 9 u10 K u 63
g (U ) = u 0 1 u u u u u u K u
~
1 4 5 6 7 9 10 63

§ång thêi ®iÒu nμy còng ph¶i ®¶m b¶o r»ng chóng kh«ng
ph¶i lμ c¸c khãa DES yÕu hoÆc nöa yÕu v× c¸c khãa lo¹i nμy cã bit
thø hai b»ng bit thø ba. §ång thêi ®iÒu nμy còng ®¶m b¶o yªu cÇu
b¶o mËt lμ g (IV ) ≠ ~
g (IV ) .

ThuËt to¸n MDC - 2 cã thÓ ®−îc m« t¶ theo s¬ ®å sau:

xi
int 1 int 2

Hi-1 Hi-1
g E E g
int 3 int 4

A B A B

A D A D
out 1 out 2
Hi Hi

H×nh 4.4
162 Gi¸o tr×nh MËt m· häc

4.8.3.4.1. ThuËt to¸n MDC - 2

Vμo: X©u bit x cã ®é dμi r = 64t víi t ≥ 2 .

Ra : M· b¨m 128 bit cña x


(1) Ph©n x thμnh c¸c khèi 64 bit x i : x1 x 2 K x t .
~
(2) Chän c¸c h»ng sè kh«ng bÝ mËt IV vμ IV tõ mét tËp c¸c
gi¸ trÞ khuyÕn nghÞ ®· ®−îc m« t¶ tr−íc. TËp ngÇm ®Þnh c¸c gi¸
trÞ cho tr−íc nμy lμ (ë d¹ng HEXA):
IV = 0x52 52 52 52 52 52 52 52
~
IV = 0x25 25 25 25 25 25 25 25

(3) Ký hiÖu⎟⎟ lμ phÐp ghÐp vμ CiL , CiR lμ c¸c nöa 32 bit ph¶i
vμ tr¸i cña Ci

§Çu ra h(x ) = H t H t ®−îc x¸c ®Þnh nh− sau: (víi 1 ≤ i ≤ t )


~

H 0 = IV, k i = g (H i −1 ), C i = E ki (x i ) ⊕ x i , H i = C Li C R
~
i
~ ~ ~
H 0 = IV, k i = ~
~
( )
g H i −1 , C i = E ~ki (x i ) ⊕ x i , H i = C Li C R
~ ~ ~
i

ThuËt to¸n MDC - 4 cã thÓ ®−îc m« t¶ theo s¬ ®å sau:


xi
int 1 int 2
Gi-1 Gi-1
MDC - 2

Hi int 2
int 1 Gi-1 Gi-1
int 3 int 4 H i
MDC - 2

out 1 out 2
Gi Gi

H×nh 4.5
Ch−¬ng 4: MËt m· khãa c«ng khai 163

4.8.4.C¸c hμm b¨m cã khãa (MAC)


C¸c hμm b¨m cã khãa ®−îc sö dông ®Ó x¸c thùc th«ng b¸o vμ
th−êng ®−îc gäi lμ c¸c thuËt to¸n t¹o m· x¸c thùc th«ng b¸o
(MAC).
MAC dùa trªn c¸c mËt m· khèi.
ThuËt to¸n
Vμo: D÷ liÖu x, mËt m· khèi E, khãa MAC bÝ mËt k cña E.
Ra : n bit MAC trªn x (n lμ ®é dμi khèi cña E)
(1) §én vμ chia khèi: §én thªm c¸c bit vμo x nÕu cÇn. Chia
d÷ liÖu ®· ®én thμnh tõng khèi n bit : x1 x 2 K x t .

(2) Xö lý theo chÕ ®é CBC.


Ký hiÖu E k lμ phÐp m· hãa E víi khãa k.
TÝnh khèi H t nh− sau:
H1 ← E k (x 1 )
H i ← K k (H i −1 ⊕ x i ); 2 ≤ i ≤ t.
(3) Xö lý thªm ®Ó t¨ng søc m¹nh cña MAC
Dïng mét khãa bÝ mËt thø hai k' ≠ k . TÝnh
( )
H 't ← E k−1' (H t ), H t = E k H 't
(4) KÕt thóc: MAC lμ khèi n bit Ht.
xt
x1 x2 x3

IV = 0 H1 H2 H3
K
E
Ht
k k K'
E E E Xö E
lý H't
thªm K
E
Ht

H×nh 4.6: ThuËt to¸n MAC dïng CBC


164 Gi¸o tr×nh MËt m· häc

4.8.5. TÝnh toμn vÑn cña d÷ liÖu vμ x¸c thùc th«ng b¸o

4.8.5.1. §Þnh nghÜa 1


TÝnh toμn vÑn cña d÷ liÖu lμ tÝnh chÊt ®¶m b¶o d÷ liÖu kh«ng
bÞ söa ®æi mét c¸ch bÊt hîp ph¸p kÓ tõ khi d÷ liÖu ®−îc t¹o ra,
®−îc ph¸t hoÆc ®−îc l−u gi÷ bëi mét nguån ®−îc x¸c ®Þnh.

4.8.5.2. §Þnh nghÜa 2


X¸c thùc tÝnh nguyªn b¶n cña d÷ liÖu lμ mét kiÓu x¸c thùc
®¶m b¶o mét bªn liªn l¹c ®−îc chøng thùc lμ nguån thùc sù t¹o ra
d÷ liÖu ®ã ë mét thêi ®iÓm nμo ®ã trong qu¸ khø.
X¸c thùc th«ng b¸o lμ mét thuËt ng÷ ®−îc dïng t−¬ng ®−¬ng
víi x¸c thùc nguyªn gèc cña d÷ liÖu.
Cã ba ph−¬ng ph¸p cung cÊp tÝnh toμn vÑn cña d÷ liÖu b»ng
c¸ch dïng c¸c hμm b¨m.
- ChØ dïng MAC
Khãa bÝ mËt
Th«ng b¸o ThuËt to¸n MAC

Kªnh kh«ng an toµn


Th«ng b¸o MAC

H×nh 4.7
- Dïng MDC vμ m· hãa
Khãa bÝ mËt
Th«ng b¸o ThuËt to¸n MDC

Th«ng b¸o ThuËt to¸n


MDC
m· hãa

Kªnh kh«ng an toµn


Th«ng b¸o MDC

H×nh 4.8
Ch−¬ng 4: MËt m· khãa c«ng khai 165

- Sö dông MDC vμ kªnh tin cËy

Th«ng b¸o ThuËt to¸n MDC

Kªnh tin cËy


MDC

Kªnh kh«ng an toµn

H×nh 4.9

4.8.5.6. C¸c ph−¬ng ph¸p ®¶m b¶o x¸c thùc tÝnh nguyªn vÑn
cña d÷ liÖu

- Dïng MAC.

- Dïng c¸c s¬ ®å ch÷ ký sè.

- G¾n (tr−íc khi m· hãa) mét gi¸ trÞ thÎ x¸c thùc bÝ mËt vμo
v¨n b¶n ®−îc m·.

4.8.6. Trao ®æi vμ tháa thuËn khãa

Gi¶ sö A vμ B muèn liªn l¹c sö dông hÖ mËt khãa bÝ mËt. §Ó


tho¶ thuËn mËt khãa K chung cho c¶ hai bªn qua mét kªnh kh«ng
an toμn mμ kh«ng ai kh¸c cã thÓ biÕt ®−îc, A vμ B cã thÓ dïng thñ
tôc tháa thuËn khãa Diffie –Hellman sau:

(1) Chän tr−íc mét sè nguyªn tè p thÝch hîp vμ mét phÇn tö


sinh α cña Z *p (2 ≤ α ≤ p − 2) . C¸c gi¸ trÞ p vμ α ®−îc c«ng khai.

(2) A göi cho B gi¸ trÞ α x mod p . (2.1)

B göi cho A gi¸ trÞ α y mod p . (2.2)

(3) Thùc hiÖn c¸c b−íc sau mçi khi cÇn cã khãa chung:
166 Gi¸o tr×nh MËt m· häc

a) A chän mét sè nguyªn bÝ mËt x: 1 ≤ x ≤ p − 2 vμ göi cho B


th«ng b¸o (2.1).
b) B chän mét sè nguyªn bÝ mËt y: 1 ≤ y ≤ p − 2 vμ göi cho A
th«ng b¸o (2.2).

c) B thu ®−îc α x vμ tÝnh khãa chung k: k = α x ( ) mod p y

d) A thu ®−îc α y vμ tÝnh khãa chung k: k = (α ) mod p y x

VÝ dô: Gi¶ sö A vμ B chän p = 11 vμ α = 2

Nhãm nh©n xyclic sinh bëi α:

{α i
}
, i = 0 , 9 = {1 , 2 , 4 , 8 , 5 ,10 , 9 , 7 , 3 , 6}

(C¸c phÇn tö sinh cña nhãm nμy bao gåm c¸c phÇn tö sau:
α = 2 , α 3 = 8 , α 7 = 7 , α 9 = 6 ).

Gi¶ sö A chän gi¸ trÞ ngÉu nhiªn x = 4 vμ göi cho B gi¸ trÞ
2 4 mod 11 = 5 .

Gi¶ sö B chän gi¸ trÞ ngÉu nhiªn y = 7 vμ göi cho A gi¸ trÞ
27 mod 11 = 7 .

B nhËn ®−îc 5 vμ tÝnh khãa chung k = 5 7 mod 11 = 3 .

A nhËn ®−îc 7 vμ tÝnh khãa chung k = 7 4 mod 11 = 3 .

4.8.7. Ch÷ ký sè

Ch÷ ký sè ®−îc x©y dùng trªn c¬ së kÕt hîp m· ho¸ khãa


c«ng khai víi hμm b¨m.
C¸c b−íc t¹o ch÷ ký vμ kiÓm tra ch÷ ký ®−îc m« t¶ trªn
h×nh sau:
Ch−¬ng 4: MËt m· khãa c«ng khai 167

Hîp ®ång ThuËt to¸n


kinh tÕ a3edbf5...
b¨m
...
Tãm l−îc th«ng b¸o

B¶n tin gèc M· hãa


3408scj...
khãa c«ng khai

Tãm l−îc th«ng b¸o Khãa bÝ mËt


®· m· hãa cña ng−êi göi

3408scj...
Hîp ®ång ®· ®−îc ký
Hîp ®ång b»ng ch÷ ký sè
kinh tÕ
...

H×nh 4.10: T¹o mét th«ng b¸o cã ký b»ng ch÷ ký sè

3408scj... Gi¶i m· a3edbf5...

Tãm l−îc th«ng b¸o Tãm l−îc th«ng b¸o


®· m· hãa Khãa c«ng khai ®· ®−îc phôc håi
cña ng−êi göi

Hîp ®ång ThuËt to¸n


kinh tÕ a3edbf5...
b¨m
...
Tãm l−îc th«ng b¸o

H×nh 4.11: C¸c b−íc kiÓm tra mét th«ng b¸o ®· ký

VÝ dô: S¬ ®å ch÷ ký sè RSA

Cã thÓ coi bμi to¸n x¸c thùc lμ bμi to¸n "®èi ngÉu" víi bμi
to¸n b¶o mËt. V× vËy, sö dông ng−îc thuËt to¸n RSA ta cã thÓ cã
®−îc mét s¬ ®å ch÷ ký sè RSA nh− sau:
168 Gi¸o tr×nh MËt m· häc

Gi¶ sö n = p.q , trong ®ã p vμ q lμ c¸c sè nguyªn tè lín cã kÝch


th−íc t−¬ng ®−¬ng.

{
K = (n , e , d ) : d ∈ Z *n , ed ≡ 1 mod 4(n ) }
Víi K = (n , e , d ) ta cã D = d lμ khãa bÝ mËt, E = (n , e ) lμ
khãa c«ng khai, m lμ b¶n tin cÇn ký.

T¹o ch÷ ký : S = sig D (m ) = m d mod n

KiÓm tra ch÷ ký : verE (m , s ) = ®óng ⇔ m ≡ S e mod n .

Ho¹t ®éng cña s¬ ®å ch÷ ký RSA cã thÓ m« t¶ nh− sau:

a) Tr−êng hîp b¶n tin râ m kh«ng cÇn bÝ mËt (H×nh 4.12)


A ký b¶n tin m vμ göi cho B.
B kiÓm tra ch÷ ký cña A.
Göi (m, SA ) cho B
A B
C«ng bè E B
EA = (eB, nB )
DA = dA DB = dB
EA = (eA, nA )
C«ng bè EA LÊy EA
dA eA
Ký: SA = m mod nA KiÓm tra: m = SA mod nA

H×nh 4.12: S¬ ®å ch÷ ký sè RSA (kh«ng bÝ mËt b¶n tin)


Gi¶ sö A muèn göi cho B b¶n tin râ m cã x¸c thùc b»ng ch÷
ký sè cña m×nh. Tr−íc tiªn A tÝnh ch÷ ký sè

S A = sig DA (m ) = m d A mod n A

Sau ®ã A göi cho B bé ®«i (m , S A ) . B nhËn ®−îc (m , S A ) vμ

kiÓm tra xem ®iÒu kiÖn m ≡ SA


eA
mod n A cã tho¶ m·n kh«ng. NÕu
tho¶ m·n, th× khi ®ã B kh¼ng ®Þnh r»ng verE A (m , S A ) nhËn gi¸ trÞ

§óng vμ chÊp nhËn ch÷ ký cña A trªn m.


Ch−¬ng 4: MËt m· khãa c«ng khai 169

b) Tr−êng hîp b¶n tin râ m cÇn gi÷ bÝ mËt (h×nh 4.13)


Göi M cho B
A B
LÊy E B C«ng bè E B
EA = (eB, n B )
DA = dA DB = dB
EA = (eA, nA )
C«ng bè EA LÊy EA

i. SA = mdA mod nA i. X = mdB mod nB


ii. X = m SA ii. X = m SA
eB eA
iii. M = X mod nB iii. KiÓm tra: m = SA mod nA

H×nh 4.13: S¬ ®å ch÷ ký sè RSA (cã bÝ mËt b¶n tin)

A ký b¶n tin râ m ®Ó ®−îc ch÷ ký S A . Sau ®ã A dïng khãa


m· c«ng khai E B cña B ®Ó lËp b¶n m· M = E B (m , S A ) råi göi ®Õn
B. Khi nhËn d−îc b¶n m· M, B dïng khãa bÝ mËt D B cña m×nh ®Ó
gi¶i m· cho M vμ thu ®−îc m , S A . TiÕp ®ã dïng thuËt to¸n kiÓm
tra verE A ®Ó x¸c nhËn ch÷ ký cña A.

4.8.8. HÖ mËt dùa trªn ®Þnh danh

4.8.8.1. ý t−ëng c¬ b¶n


HÖ mËt dùa trªn ®Þnh danh do Shamin ®Ò xuÊt [16] lμ mét hÖ
mËt bÊt ®èi xøng trong ®ã th«ng tin ®Þnh danh cña thùc thÓ (tªn
riªng) ®ãng vai trß khãa c«ng khai cña nã. Trung t©m x¸c thùc T
®−îc sö dông ®Ó tÝnh khãa riªng t−¬ng øng cña thùc thÓ nμy.
Trong c¸c hÖ mËt khãa c«ng khai th«ng th−êng mçi ng−êi sö dông
cã mét cÆp khãa (s, P) trong ®ã s lμ khãa bÝ mËt (chØ cã ng−êi dïng
nμy biÕt) cßn P lμ khãa c«ng khai mμ mäi ng−êi ®Òu cã thÓ biÕt.
Nh− vËy, c¸c khãa c«ng khai kh«ng cÇn ph¶i gi÷ kÝn mμ cÇn c«ng
bè réng r·i. Tuy nhiªn tÝnh c«ng khai nμy l¹i trë thμnh ®èi t−îng
cho c¸c tÊn c«ng tÝch cùc nh− viÖc thay khãa c«ng khai gi¶ vμo vÞ
trÝ khãa c«ng khai thùc trong danh b¹. Bëi vËy, ngoμi cÆp khãa
170 Gi¸o tr×nh MËt m· häc

(s, P) ta cÇn ph¶i cã chuçi ®Þnh danh I vμ kh«ng mét dÊu hiÖu ®¶m
b¶o G ®Ó biÕt r»ng P thùc sù lμ khãa c«ng khai cña ng−êi dïng I
vμ kh«ng ph¶i lμ mét kÎ gi¶ m¹o. Khi ta sö dông c¸c hÖ mËt
dùa trªn ®Þnh danh, khãa c«ng khai sÏ t−¬ng ®−¬ng víi ®Þnh danh
(P = I). Cßn dÊu hiÖu ®¶m b¶o sÏ t−¬ng ®−¬ng víi khãa bÝ mËt (tøc
lμ G = s). HÖ thèng nμy cã nhiÒu ®Æc tÝnh tèt do kh«ng ph¶i l−u
tr÷ chøng chØ ®Ó kiÓm tra.
Sau khi tÝnh khãa riªng cña mét ng−êi dïng T sÏ chuyÓn
khãa riªng cho ng−êi dïng ®ã trªn mét kªnh riªng an toμn. khãa
riªng nμy ®−îc tÝnh kh«ng chØ tõ th«ng tin ®Þnh danh cña thùc thÓ
mμ cßn ph¶i lμ mét hμm cña mét th«ng tin riªng nμo ®ã chØ cã T
míi biÕt (khãa riªng cña T). §©y lμ ®iÒu cÇn thiÕt nh»m tr¸nh gi¶
m¹o vμ b¾t ch−íc. §iÒu chñ yÕu lμ chØ T míi cã kh¶ n¨ng t¹o c¸c
khãa riªng hîp lÖ phï hîp víi th«ng tin ®Þnh danh.

4.8.8.2. S¬ ®å trao ®æi khãa Okamoto-Tanaka

PhÇn nμy m« t¶ tãm l−îc s¬ ®å trao ®æi khãa Okamoto-


Tanaka [17] lμ mét hÖ thèng ph©n phèi khãa dùa trªn ®Þnh danh.
S¬ ®å nμy gåm 3 pha sau:

a) Pha chuÈn bÞ

Trung t©m x¸c thùc tin cËy chän 2 sè nguyªn tè p vμ q vμ


®−a c«ng khai c¸c gi¸ trÞ n, g vμ e, trong ®ã n = p.q, g lμ phÇn tö
sinh cña c¶ Z *q vμ Z *q , cßn e ∈ Z*λ( n ) . ë ®©y, hμm Carmichael cña n

®−îc x¸c ®Þnh nh− sau:

λ(n) = BCNN(p – 1, q – 1)
Ch−¬ng 4: MËt m· khãa c«ng khai 171

Cho d ∈ Z*λ( n ) lμ khãa bÝ mËt cña trung t©m tháa m·n ®iÒu kiÖn:

ed ≡ 1(modλ(n))

Trung t©m T

Ng−êi dïng Ng−êi dïng


Alice Bob

xA = sA .grA xB = sB .grB

r r
WKAB = (IDB xeB ) A WKBA = (IDA xeA ) B

H×nh 4.14: S¬ ®å trao ®æi khãa Okamoto-Tanaka

b) Pha tham gia cña ng−êi dïng


Cho IDi lμ th«ng tin ®Þnh danh cña ng−êi dïng thø i (i = A,
B, C,...). Cho si lμ khãa bÝ mËt cña ng−êi dïng i tháa m·n:

si ≡ IDi−d (mod n )

Sau ®ã trung t©m T sÏ c«ng bè (e, n, g, IDi) vμ ph©n ph¸t


si tíi mçi ng−êi dïng i qua mét kªnh an toμn (hoÆc b»ng c¸ch
dïng thÎ).

c. Pha t¹o khãa chung


Ta gi¶ sö ë ®©y r»ng hai ng−êi dïng Alice vμ Bob muèn chia
sÎ mét khãa chung (ch¼ng h¹n ®Ó dïng cho mét hÖ mËt khãa bÝ mËt).

Tr−íc tiªn Alice t¹o mét sè ngÉu nhiªn rA vμ tÝnh:

x A ≡ sA g rA ( mod n )

vμ göi nã cho Bob.


172 Gi¸o tr×nh MËt m· häc

T−¬ng tù, Bob t¹o mét sè ngÉu nhiªn rB vμ tÝnh:

x B ≡ sB grB ( mod n )

vμ göi nã cho Alice.


TiÕp theo, Alice tÝnh:

( )
rA
WK AB = ID B x eB ( mod n )
T−¬ng tù, Bob tÝnh

( )
rB
WK BA = ID A x eA ( mod n )
WKAB vμ WKBA sÏ dïng lμm khãa chung v×:

( )
rA
WK AB = ID B .x eB
rA

( ) ⎟⎠
e⎞
= ⎜ ID B sB .g rB

r

( ) ⎞A
e
= ⎜ ID B ID B− d .g rB e ⎟
⎝ ⎠
= g e.rB .rA
= WK BA ( mod n )

bμi tËp

1. VÝ dô vÒ hÖ mËt RSA. Cho p = 7 vμ q = 17.


a. TÝnh n.
b. Cho e (sè mò m· hãa) b»ng 5. H·y tÝnh sè mò gi¶i m· d.
c. H·y m· hãa vμ gi¶i m· cho c¸c sè 49 vμ 12.
2. Ng−êi ta biÕt r»ng ®èi víi hÖ mËt RSA, tËp c¸c b¶n râ b»ng tËp
c¸c b¶n m·. Tuy nhiªn b¹n cã cho r»ng mét sè gi¸ trÞ trong kh«ng
gian th«ng b¸o (b¶n râ) lμ kh«ng mong muèn?
Ch−¬ng 4: MËt m· khãa c«ng khai 173

3. Trong hÖ mËt Rabin, gi¶ sö p = 199, q = 211.


a. X¸c ®Þnh 4 c¨n bËc hai cña 1 mod n, trong ®ã n = p.q.
b. TÝnh b¶n m· cña 32767.
c. X¸c ®Þnh 4 b¶n gi¶i m· cã thÓ cña b¶n m· trªn.
4. XÐt tr−êng hîp ®¬n gi¶n cña hÖ mËt Merkle-Hellman sö dông
phÐp to¸n ho¸n vÞ ®ång nhÊt. Gi¶ sö d·y siªu t¨ng ®−îc chän lμ (2,
3. 6, 13, 27, 52) gi¸ trÞ ngÉu nhiªn w ®−îc chän lμ 31, modulo M
®−îc chän lμ 105.
a. H·y x¸c ®Þnh khãa bÝ mËt.
b. B¶n tin ë d¹ng nhÞ ph©n cã d¹ng 011000_110101_101110.
H·y tÝnh b¶n m· vμ h·y gi¶i m· ®Ó t×m l¹i b¶n tin ban ®Çu.
5. §©y lμ mét vÝ dô vÒ hÖ mËt ElGamal ¸p dông trong GF 33 . §a ( )
thøc x3 + x2 + 1 lμ mét ®a thøc bÊt kh¶ quy trªn Z3 [ x ] vμ bëi vËy

(
Z3 [ x ] x3 + x 2 + 1 ) chÝnh lμ GF(33). Ta cã thÓ g¾n 26 ch÷ c¸i cña

b¶ng ch÷ c¸i tiÕng Anh víi 26 phÇn tö kh¸c kh«ng cña tr−êng vμ
nh− vËy cã thÓ m· hãa mét v¨n b¶n th«ng th−êng theo c¸ch
truyÒn thèng. Ta sÏ dïng thø tù theo tõ ®iÓn cña c¸c ®a thøc kh¸c
kh«ng ®Ó thiÕt lËp sù t−¬ng øng.
A ↔1 B↔2 C↔x
D ↔ x +1 E ↔ x+2 F ↔ 2x
G ↔ 2x + 1 H ↔ 2x + 2 I ↔ x2
J ↔ x2 + 1 K ↔ x2 + 2 L ↔ x2 + x
M ↔ x2 + x + 1 N ↔ x2 + x + 2 O ↔ x 2 + 2x
P ↔ x 2 + 2x + 1 Q ↔ x 2 + 2x + 2 R ↔ 2x 2
S ↔ 2x 2 + 1 T ↔ 2x 2 + 2 U ↔ 2x 2 + x
V ↔ 2x 2 + x + 1 W ↔ 2x 2 + x + 2 X ↔ 2x 2 + 2x
Y ↔ 2x2 + 2x + 1 Z ↔ 2x 2 + 2x + 2
174 Gi¸o tr×nh MËt m· häc

Gi¶ sö Bob dïng α = x vμ a = 11 trong hÖ mËt ElGamal, khi


®ã α a = x + 2 . H·y chØ ra c¸ch mμ Bob sÏ gi¶i m· cho b¶n m· sau:
(K, H) (P,X) (N,K) (H, R) (T, F) (V, Y) (E, H) (F, A) (T, W) (J,
D) (V, J).
6. M· BCH (15, 7, 5) cã ma trËn kiÓm tra sau:

⎛1 0 0 0 1 0 0 1 1 0 1 0 1 1 1⎞
⎜ ⎟
⎜0 1 0 0 1 1 0 1 0 1 1 1 1 0 0⎟
⎜0 0 1 0 0 1 1 0 1 0 1 1 1 1 0⎟
⎜ ⎟
H=⎜
0 0 0 1 0 0 1 1 0 1 0 1 1 1 1⎟
⎜1 0 0 0 1 1 0 0 0 1 1 0 0 0 1⎟
⎜ ⎟
⎜0 0 0 1 1 0 0 0 1 1 0 0 0 1 1⎟
⎜0 0 1 1 0 0 0 1 1 0 0 1 1 1 0⎟
⎜⎜ ⎟
⎝0 1 1 1 1 0 1 1 1 1 0 1 1 1 1 ⎟⎠

H·y gi¶i m· cho c¸c vÐct¬ nh©n ®−îc sau b»ng ph−¬ng ph¸p
gi¶i m· theo syndrom:
a. r = (1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)
b. r = (1, 1, 0, 1, 1, 1, 1, 0, 1, 0, 1, 1, 0, 0, 0)
c. r = (1, 0, 1, 0, 1, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0).

7. Gi¶ sö p = 25307 cßn α = 2 lμ c¸c tham sè c«ng khai dïng cho


thñ tôc tho¶ thuËn khãa Diffie-Hellman.
Gi¶ sö A chän x = 3578 vμ B chän y = 19956. H·y tÝnh khãa
chung cña A vμ B.
PhÇn III

C¸c thñ tôc vμ øng dông


c¸c thñ tôc vμ c¸c chó ý trong
thùc tÕ khi sö dông m· hãa

Trong ch−¬ng 3 vμ 4 ta ®· xem xÐt c¸c vÝ dô vÒ c¸c hÖ thèng


mËt m· ®−îc coi lμ mËt. Cã hμng tr¨m ph−¬ng ph¸p m· hãa kh¸c
nhau ngoμi DES vμ RSA lμ hai hÖ mËt khãa c«ng khai vμ khãa bÝ
mËt ®−îc thõa nhËn réng r·i nhÊt trong thùc tÕ.
Tuy nhiªn chØ ®¬n gi¶n lμ cã vμ sö dông mét hÖ mËt m¹nh lμ
ch−a ®ñ ®Ó ®¶m b¶o mäi giao dÞch sö dông hÖ mËt ®ã ®−îc ®¶m
b¶o an toμn. Cã nh÷ng c¸ch thøc ®óng hoÆc kh«ng ®óng khi sö
dông c¸c ph−¬ng ph¸p m· hãa. H¬n n÷a c¸c thuËt to¸n nμy cã thÓ
®−îc dïng ®Ó gi¶i quyÕt c¸c vÊn ®Ò mμ bÝ mËt hoÆc x¸c thùc chØ lμ
mét phÇn cña nã. Trong ch−¬ng nμy ta sÏ nghiªn cøu vμ ®¸nh gi¸
c¸c kü thuËt sö dông m· hãa ®Ó thiÕt lËp mét kªnh liªn l¹c mËt
gi÷a hai ng−êi dïng. Ta còng khai th¸c c¸c c¸ch thÝch hîp ®Ó sö
dông m· hãa.

5.1. C¸c thñ tôc: hμnh vi cã thø tù

C¸c hÖ thèng m· hãa lμ mét c«ng cô quan träng trong an


toμn m¸y tÝnh, chóng cho phÐp b¹n ph¸t th«ng tin ë d¹ng ®−îc
che dÊu. Chóng ®−îc dïng ®Ó ph¸t c¸c tμi liÖu vμ sè liÖu trªn mét
kªnh cã thÓ bÞ thu chÆn. B»ng c¸ch sö dông c¸c quy −íc ®−îc thiÕt
178 Gi¸o tr×nh MËt m· häc

lËp gi÷a hai bªn víi hÖ mËt cã thÓ ®−îc dïng cho nh÷ng môc ®Ých
kh¸c víi viÖc liªn l¹c an toμn. C¸c quy −íc nμy ®−îc gäi lμ c¸c thñ
tôc, chóng sÏ lμ chñ ®Ò cña phÇn sau:

5.1.1. §Þnh nghÜa thñ tôc


Mét thñ tôc lμ mét d·y c¸c b−íc cã thø tù mμ hai bªn (hoÆc
nhiÒu h¬n) ph¶i thùc hiÖn ®Ó hoμn tÊt mét c«ng viÖc nμo ®ã. C¸c
bªn sö dông thñ tôc ph¶i nhÊt trÝ hoμn tÊt thñ tôc tr−íc khi dïng
nã. Thø tù cña c¸c b−íc còng quan träng nh− ho¹t ®éng cña mçi
b−íc. Ng−êi ta sö dông c¸c thñ tôc ®Ó ®iÒu chØnh hμnh vi vμ
quyÒn lîi chung.
Sö dông ®iÖn tho¹i lμ mét vÝ dô ®¬n gi¶n cña mét thñ tôc.
Ng−êi quay sè sÏ nghe c¶ ©m chu«ng vμ tiÕng nhÊc m¸y khi kÕt
nèi ®−îc thiÕt lËp. Trong thùc tÕ, thñ tôc ë ®©y lμ ng−êi nhËn sÏ
nãi tr−íc (ch¼ng h¹n “xin chμo”, hoÆc “t«i nghe ®©y”). Ng−êi ta sÏ
tr¶ lêi b»ng mét lêi chμo giíi thiÖu b¶n th©n. Hai bªn sau ®ã sÏ
lÇn l−ît trao ®æi. Kh«ng cã thñ tôc nμy c¶ hai bªn cã thÓ nãi cïng
mét lóc khi kÕt nèi ®−îc thiÕt lËp vμ kh«ng mét ai cã thÓ nghe
®−îc ng−êi kh¸c.
T−¬ng tù nh− vÝ dô trªn ta cã thÓ thÊy r»ng mét thñ tôc tèt
sÏ cã c¸c ®Æc tÝnh sau:
- §−îc thiÕt lËp tr−íc: Thñ tôc ®−îc thiÕt kÕ hoμn chØnh tr−íc
khi nã ®−îc sö dông.
- Cã sù thèng nhÊt chung: Mäi thμnh viªn nhÊt trÝ tu©n thñ
c¸c b−íc trong thñ tôc theo thø tù.
- Kh«ng nhËp nh»ng: Kh«ng mét ai cã thÓ thùc hiÖn sai mét
b−íc do kh«ng hiÓu nã.
Ch−¬ng 5: C¸c thñ tôc vµ c¸c chó ý trong thùc tÕ khi sö dông m· hãa 179

- Hoμn chØnh: §èi víi mäi t×nh huèng cã thÓ x¶y ra ®Òu ph¶i
cã mét hμnh ®éng ®−îc m« t¶ tr−íc cÇn thùc hiÖn.
C¸c thñ tôc còng ®−îc dïng trong liªn l¹c gi÷a m¸y tÝnh víi
m¸y tÝnh. Mét m¸y tÝnh cÇn ph¶i biÕt khi nμo “nãi” vμ “nghe” víi
m¸y ®ang liªn l¹c víi nã vμ liÖu nã ®· nhËn ®ñ th«ng tin ch−a…
HiÓn nhiªn lμ c¶ hai m¸y tÝnh ph¶i tu©n theo cïng mét thñ tôc.

5.1.2. C¸c lo¹i thñ tôc


C¸c nhiÖm vô nhÊt ®Þnh, ch¼ng h¹n nh− tháa thuËn hîp
®ång, bÇu cö, ph©n phèi th«ng tin vμ thËm chÝ lμ ch¬i bμi ®Òu lμ
c¸c ho¹t ®éng cña con ng−êi. Tuy nhiªn nhiÒu nhiÖm vô kiÓu nμy
phô thuéc vμo ng−êi lμm chøng ®Ó ®¶m b¶o sù c«ng b»ng. LiÖu
b¹n cã tin vμo mét ng−êi nãi r»ng anh ta sÏ xãc c¸c qu©n bμi mμ
kh«ng nh×n vμo chóng vμ ®−a cho b¹n? LiÖu b¹n cã tin vμo mét
ng−êi nÕu b¹n kh«ng quen biÕt vμ nÕu sè tiÒn ®Æt c−îc cao?
X· héi hiÖn ®¹i ®ßi hái viÖc sö dông m¸y tÝnh vμ liªn l¹c nh−
nh÷ng c«ng cô th−¬ng m¹i. NhiÒu ng−êi sö dông m¸y tÝnh kh«ng
cã sù quen biÕt c¸ nh©n ®èi víi ng−êi qu¶n lý vμ nh÷ng ng−êi sö
dông kh¸c trong hÖ thèng. Trong nhiÒu tr−êng hîp viÖc liªn l¹c
m¸y tÝnh ®−îc thùc hiÖn trªn nh÷ng kho¶ng c¸ch lín. Do tÝnh v«
danh vμ do kho¶ng c¸ch ng−êi dïng sÏ kh«ng tin vμo c¸c nhμ
qu¶n lý vμ nh÷ng ng−êi dïng kh¸c trong hÖ thèng. §Ó sö dông
m¸y tÝnh mét c¸ch hiÖu qu¶ ta ph¶i ph¸t triÓn c¸c thñ tôc mμ nhê
chóng hai ng−êi ®a nghi cã thÓ giao tiÕp víi nhau vμ tin vμo sù
c«ng b»ng.
H¬n n÷a ®Ó ®iÒu chØnh hμnh vi, c¸c thñ tôc cßn phôc vô cho
mét môc ®Ých rÊt quan träng kh¸c lμ c¸c thñ tôc ph¶i t¸ch qu¸
180 Gi¸o tr×nh MËt m· häc

tr×nh hoμn tÊt mét nhiÖm vô khái c¬ chÕ thùc thi nã. Mét thñ tôc
sÏ chØ x¸c ®Þnh c¸c quy t¾c cña hμnh vi. B»ng c¸ch nμy ta cã thÓ
kiÓm tra mét thñ tôc ®Ó tin r»ng nã ®¹t kÕt qu¶ mong muèn. Ta sÏ
kiÓm tra tÝnh ®óng ®¾n cña qu¸ tr×nh ë møc cao.
Sau khi ®· tin vμo tÝnh ®óng ®¾n cña thiÕt kÕ ta cã thÓ ¸p
dông thñ tôc b»ng c¸ch dïng mét c¬ chÕ nμo ®ã (tøc lμ dïng mét
ng«n ng÷ riªng nμo ®ã hoÆc mét hÖ thèng m· hãa). ¸p dông ph¶i
t¸ch khái thiÕt kÕ. Bëi vËy ta chØ cÇn kiÓm tra r»ng c¬ chÕ sÏ ph¶n
¶nh thiÕt kÕ ®óng ®¾n, ta kh«ng cÇn kiÓm tra l¹i r»ng øng dông
sÏ gi¶i quyÕt vÊn ®Ò mμ thñ tôc ®−îc thiÕt kÕ cho nã. H¬n n÷a,
sau nμy ta cã thÓ thay ®æi øng dông mμ kh«ng ¶nh h−ëng tíi thiÕt
kÕ. ViÖc t¸ch rêi thiÕt kÕ khái c¸c øng dông lμ mét −u ®iÓm quan
träng trong viÖc dïng c¸c thñ tôc.

5.1.3. C¸c thñ tôc cã träng tμi


Träng tμi lμ mét bªn thø ba v« t− ®−îc tin cËy ®Ó hoμn tÊt
mét giao dÞch gi÷a hai bªn kh«ng tin cËy nhau. NÕu b¹n b¸n mét
chiÕc xe cho mét ng−êi l¹ vμ anh ta ®−a cho b¹n mét tÊm sÐc th×
b¹n kh«ng cã c¸ch nμo ®Ó biÕt r»ng tÊm sÐc nμy cã gi¸ trÞ kh«ng.
B¹n muèn göi tÊm sÐc nμy vμ gi÷ xe l¹i trong Ýt ngμy cho tíi khi
b¹n tin ch¾c r»ng sÐc kh«ng cã vÊn ®Ò g×. Mét ng−êi mua ®a nghi
sÏ kh«ng chÞu nh− vËy v× b¹n l¹i cã c¶ xe vμ sÐc vμ biÕt ®©u b¹n cã
thÓ chuån khái thμnh phè víi chóng?
Gi¶i ph¸p ë ®©y lμ sö dông mét bªn thø ba ®−îc tÝn nhiÖm
ch¼ng h¹n mét chñ nhμ b¨ng hoÆc mét luËt s− lμm träng tμi. B¹n
trao chøng nhËn së h÷u xe vμ ch×a khãa xe cho träng tμi vμ ng−êi
mua xe ®−a sÐc cho träng tμi. B¹n cã mét sù ®ång ý tay ba vμo thêi
®iÓm sÐc ®−îc x¸c nhËn. Träng tμi sÏ göi sÐc vμo tμi kho¶n cña
Ch−¬ng 5: C¸c thñ tôc vµ c¸c chó ý trong thùc tÕ khi sö dông m· hãa 181

b¹n. NÕu trong mét thêi h¹n x¸c ®Þnh sÐc ®−îc x¸c nhËn th× träng
tμi sÏ chuyÓn xe cña b¹n cho ng−êi mua. NÕu sÐc kh«ng ®−îc x¸c
nhËn th× träng tμi sÏ tr¶ xe vÒ cho b¹n. Trong mét thñ tôc m¸y
tÝnh, träng tμi lμ mét bªn thø ba tin cËy ®ñ ®¶m b¶o sù c«ng b»ng.
Träng tμi cã thÓ lμ mét ng−êi, mét ch−¬ng tr×nh hoÆc mét m¸y
tÝnh. VÝ dô trong mét m¹ng, träng tμi cã thÓ lμ mét ch−¬ng tr×nh
ch¹y trªn mét m¸y trong m¹ng. Ch−¬ng tr×nh sÏ nhËn vμ göi c¸c
th«ng b¸o gi÷a c¸c ng−êi dïng. Ng−êi dïng tin r»ng khi träng tμi
göi tíi mét th«ng b¸o nãi r»ng nã tíi tõ A th× th«ng b¸o thùc sù
®−îc göi tõ ng−êi dïng A. Kh¸i niÖm träng tμi lμ mét kh¸i niÖm c¬
b¶n ®èi víi lo¹i thñ tôc an toμn ®−îc gäi lμ thñ tôc cã träng tμi.

C¸c thñ tôc m¸y tÝnh cã träng tμi cã mét sè nh−îc ®iÓm:
- Hai bªn kh«ng cã kh¶ n¨ng t×m mét bªn thø ba v« t− mμ c¶
hai ®Òu tin t−ëng. Nh÷ng ng−êi dïng ®a nghi cã lý khi hä kh«ng
tin vμo mét träng tμi kh«ng ®−îc biÕt trªn m¹ng.
- ViÖc duy tr× ho¹t ®éng cña träng tμi sÏ lμm t¨ng chi phÝ cho
nh÷ng ng−êi sö dông hoÆc m¹ng chi phÝ nμy cã thÓ rÊt lín.
- Träng tμi sÏ g©y nªn thêi gian gi÷ chËm khi liªn l¹c v× bªn
thø ba ph¶i thu, xem xÐt vμ råi míi göi ®i ®èi víi mçi giao dÞch.
- NÕu dÞch vô träng tμi ®−îc dïng qu¸ nÆng nÒ th× nã cã thÓ
trë thμnh mét “nót cæ chai” trong m¹ng v× nhiÒu ng−êi dïng ®Òu
muèn cã träng tμi riªng.
- TÝnh bÝ mËt trë nªn dÔ bÞ tæn th−¬ng v× träng tμi ph¶i truy
nhËp tíi nhiÒu th«ng tin nh¹y c¶m.
V× nh÷ng lý do trªn mμ ng−êi ta th−êng tr¸nh dïng thñ tôc
nμy nÕu cã thÓ.
182 Gi¸o tr×nh MËt m· häc

5.1.4. C¸c thñ tôc cã ph¸n xÐt


T−¬ng tù nh− träng tμi lμ ý t−ëng sö dông quan tßa. Quan
tßa lμ mét bªn thø ba cã thÓ ph¸n xÐt liÖu mét giao dÞch cã ®−îc
thùc hiÖn mét c¸ch c«ng b»ng hay kh«ng. VÝ dô c«ng chøng viªn lμ
mét bªn thø ba v« t− ®−îc tin cËy sÏ chøng thùc r»ng mét tμi liÖu
®· ®−îc ký mét c¸ch tù nguyÖn vμ x¸c nhËn r»ng anh ta cã ®Çy ®ñ
lý do ®Ó x¸c ®Þnh r»ng ng−êi ký lμ cã thÈm quyÒn. Ch÷ ký cña
c«ng chøng viªn th−êng cÇn thiÕt ®èi víi nh÷ng t− liÖu hîp lÖ mμ
tÝnh x¸c thùc cña nã sau nμy cã thÓ bÞ nghi ngê. C«ng chøng viªn
kh«ng thªm mét tý g× vμo giao dÞch ngoμi viÖc lμ mét ng−êi lμm
chøng - mét ng−êi sau nμy cã thÓ kiÓm tra khi cã sù nghi ngê.
Mét sè thñ tôc m¸y tÝnh sö dông mét kiÓu t−¬ng tù c«ng
chøng viªn ®Ó x©y dùng b»ng chøng c«ng b»ng. Víi mét thñ tôc cã
kh¶ n¨ng ph¸n xÐt, sè liÖu ®ñ lμ cÇn thiÕt ®Ó bªn thø ba v« t−
ph¸n xÐt ®−îc tÝnh c«ng b»ng dùa trªn b»ng chøng. Bªn thø ba
kh«ng chØ cã thÓ x¸c ®Þnh liÖu hai bªn tranh chÊp cã xö sù ®óng
kh«ng (tøc lμ n»m trong c¸c quy t¾c cña thñ tôc) mμ cßn cã thÓ
x¸c ®Þnh ®−îc ai lμ ng−êi gian lËn.
C¸c thñ tôc cã ph¸n xÐt sÏ xoay quanh c¸c dÞch vô cña bªn
thø ba chØ trong tr−êng hîp cã tranh chÊp. Bëi vËy c¸c thñ tôc nμy
cã chi phÝ thÊp h¬n c¸c thñ tôc cã träng tμi. Tuy nhiªn chóng chØ
x¸c ®Þnh ®−îc sai sãt sau khi sai sãt x¶y ra.

5.1.5. C¸c thñ tôc tù rμng buéc


Mét thñ tôc tù rμng buéc lμ mét thñ tôc ®¶m b¶o sù c«ng
b»ng. NÕu mét bªn nμo ®ã cè g¾ng gian lËn th× ®iÒu nμy ph¶i ®−îc
bªn kia thÊy râ. Kh«ng cÇn bÊt cø mét ng−êi ngoμi nμo ®Ó ®¶m
b¶o sù c«ng b»ng. HiÓn nhiªn lμ c¸c thñ tôc tù rμng buéc ®−îc −a
thÝch h¬n c¶. Tuy nhiªn, kh«ng cã mét thñ tôc tù rμng buéc ®èi víi
mäi t×nh huèng.
Ch−¬ng 5: C¸c thñ tôc vµ c¸c chó ý trong thùc tÕ khi sö dông m· hãa 183

Nh− vËy cã ba møc c¸c thñ tôc:


- C¸c thñ tôc cã träng tμi trong ®ã mét bªn thø ba tin cËy sÏ
tham gia vμo mçi giao dÞch ®Ó ®¶m b¶o r»ng c¶ hai bªn ®Òu xö sù
®óng ®¾n.
- C¸c thñ tôc cã sù ph¸n xÐt trong ®ã mét bªn thø ba cã thÓ
ph¸n xÐt liÖu c¶ hai bªn cã xö sù ®óng ®¾n hay kh«ng vμ nÕu
kh«ng th× bªn nμo lμ gian lËn.
- C¸c thñ tôc tù rμng buéc trong ®ã nh÷ng m−u toan gian lËn
cña mét bªn nμo ®ã sÏ bÞ bªn kh¸c hiÖn.
C¸c lo¹i thñ tôc nμy ®−îc m« t¶ ë h×nh h×nh 5.1.

b
Träng tµi

b
a. C¸c thñ tôc cã träng tµi
B

A ®· ch¬i ®Ñp

b
A b B b Quan tßa

B»ng chøng B»ng chøng


b. C¸c thñ tôc cã ph¸n xÐt

A ®ang gian lËn

b
A b B

c. C¸c thñ tôc rµng buéc

H×nh 5.1: C¸c lo¹i thñ tôc


184 Gi¸o tr×nh MËt m· häc

Sau ®©y ta sÏ h−íng mèi quan t©m vμo viÖc sö dông c¸c thñ
tôc ®Ó gi¶i quyÕt c¸c bμi to¸n trong an toμn m¹ng m¸y tÝnh.

5.2. C¸c thñ tôc ®Ó gi¶i quyÕt c¸c vÊn ®Ò

B©y giê ta sÏ nghiªn cøu viÖc sö dông c¸c thñ tôc trªn nh÷ng
bμi to¸n thùc tÕ. Râ rμng lμ khi hai ng−êi tiÕp xóc trùc tiÕp hä sÏ
lμm kh¸c víi khi cã mét m¸y tÝnh gi÷a hä. MÆc dï cã thÓ cã nh÷ng
kh¸c biÖt vÒ quan ®iÓm nh−ng chóng t«i vÉn muèn ®−a ra nh÷ng
thñ tôc cho mét m«i tr−êng tù ®éng mμ nhê nã con ng−êi cã thÓ
tiÕn hμnh c¸c c«ng viÖc hμng ngμy nh− ký c¸c hîp ®ång, chi tr¶
c¸c hãa ®¬n, bá phiÕu bÇu còng an toμn nh− c¸c giao tiÕp gi÷a
ng−êi víi ng−êi. Ta còng nghiªn cøu mét sè vÊn ®Ò mμ cã c¸c thñ
tôc an toμn cho chóng.

5.2.1. Ph©n phèi khãa

Thay ®æi khãa m· hãa lμ mét vÊn ®Ò quan träng nh−ng


kh«ng dÔ. Cã thÓ thÊy r»ng th¸m m· sÏ cμng cã c¬ may thμnh
c«ng nÕu cã cμng nhiÒu b¶n m·. B¶n m· tõ c¸c khãa kh¸c nhau cã
thÓ gióp cho viÖc x¸c ®Þnh cÊu tróc cña mét thuËt to¸n bÝ mËt
hoÆc c¸c khãa bÝ mËt nh−ng b¶n m· tõ còng “mét khãa” l¹i gióp
cho viÖc t×m gi¸ trÞ cña khãa. Nh− vËy, trªn thùc tÕ cÇn thay ®æi
khãa mét c¸ch ®Þnh kú ®Ó ®¶m b¶o l−îng b¶n m· t¹o tõ mét khãa
bÊt kú kh«ng gióp Ých ®¸ng kÓ cho th¸m m·.
Tuy nhiªn ta h·y xem xÐt mét viÖc sö dông m· hãa cho c¸c
ch÷ ký sè trªn c¸c hîp ®ång. NÕu b¹n ®−a ra hoÆc thu nhËn mét
hîp ®ång ®· ®−îc ký b»ng ch÷ ký sè th× b¹n muèn gi÷ hîp ®ång
lμm b»ng chøng cho tíi khi mäi tranh chÊp cã thÓ cã ®· ®−îc gi¶i
Ch−¬ng 5: C¸c thñ tôc vµ c¸c chó ý trong thùc tÕ khi sö dông m· hãa 185

quyÕt. §iÒu nμy cã thÓ lμ ph¶i nhiÒu n¨m sau khi hîp ®ång ®·
®−îc thùc hiÖn . Ng−êi göi vμ ng−êi nhËn cÇn ph¶i gi÷ mäi khãa
cÇn thiÕt ®Ó kiÓm chøng gi¸ trÞ c¸c ch÷ ký cña hîp ®ång. NÕu
ng−êi göi thay ®æi c¸c khãa m· hãa hμng ngμy hoÆc thËm chÝ lμ
hμng th¸ng th× vÉn ph¶i l−u gi÷ hμng tr¨m hoÆc hμng ngh×n khãa.
Vμ nh÷ng khãa nμy ph¶i ®−îc l−u gi÷ mét c¸ch an toμn. §iÒu nμy
cho thÊy kh«ng nªn thay ®æi khãa th−êng xuyªn h¬n møc cÇn
thiÕt. MÆt kh¸c, nÕu mét khãa bÞ mÊt hoÆc bÞ lé th× cμng dïng Ýt
khãa nguy c¬ nμy cμng Ýt. Bëi vËy viÖc chän mét tÇn suÊt thay ®æi
khãa thÝch hîp kh«ng ph¶i lμ mét c«ng viÖc dÔ dμng.
Mét sè thñ tôc ®· ®−îc ph¸t triÓn cho viÖc ph©n phèi khãa.
C¸c thñ tôc nμy phô thuéc vμo møc ®é chia sÎ th«ng tin gi÷a
ng−êi göi vμ ng−êi nhËn.

5.2.1.1. Trao ®æi khãa ®èi xøng kh«ng cã m¸y chñ (Server)

Gi¶ sö r»ng hai ng−êi sö dông ®Òu cã mét b¶n sao cña khãa
m· hãa ®èi xøng (bÝ mËt) K mμ chØ cã hä biÕt. Khi l−îng th«ng b¸o
kh«ng lín l¾m hoÆc nÕu kh«ng cã nguy c¬ x©m nhËp ®¸ng kÓ th×
hä cã thÓ dïng K ®Ó trao ®æi c¸c th«ng b¸o.
Tuy nhiªn nÕu hai ng−êi muèn an toμn h¬n hä cã thÓ ®ång ý
thay ®æi khãa th−êng kú thËm chÝ lμ dïng khãa kh¸c nhau ®èi víi
mçi th«ng b¸o. §Ó lμm ®−îc ®iÒu nμy mét trong hai ng−êi cã thÓ
t¹o mét khãa míi (®−îc gäi lμ Knew) råi m· hãa nã b»ng K vμ göi
E (Knew, K) tíi ng−êi cßn l¹i. Trong mét sè hÖ mËt K ®−îc gäi lμ
khãa chñ hay m· hãa khãa vμ Knew ®−îc gäi lμ khãa phiªn hay
khoa l−u chuyÓn.
186 Gi¸o tr×nh MËt m· häc

Nh−îc ®iÓm cña ph−¬ng ph¸p nμy lμ hai ng−êi dïng ph¶i
cïng chia sÎ mét khãa duy nhÊt cña hä. C¸c cÆp ng−êi dïng khãa
còng cÇn c¸c khãa duy nhÊt vμ nãi chung n ng−êi dïng ph¶i cÇn
tíi n(n+1)/2 khãa.

5.2.1.2. Trao ®æi khãa ®èi xøng cã m¸y chñ (Server)

Mét ph−¬ng ph¸p kh¸c lμ sö dông dÞch vô ph©n phèi khãa


trung t©m cho 2 ng−êi dïng. ë thñ tôc nμy sè khãa sÏ gi¶m nh−ng
tÝnh mÒm dÎo cña gi¶i ph¸p còng gi¶m ®i mét møc nμo ®ã.
Gi¶ sö Pablo vμ R¬nª muèn cã mét khãa bÝ mËt dïng ®Ó trao
®æi c¸c th«ng b¸o nh−ng hä kh«ng cã khãa chung. Tuy nhiªn ta
còng coi r»ng cã mét kho chøa khãa trung t©m sao cho Pablo vμ
kho nμy cã mét khãa chung KP, R¬nª vμ kho cã mét khãa chung
kh¸c KR . Nh− ®· nªu trong [8], tr−íc tiªn Pablo sÏ göi tíi kho (P,
R, IP) b¸o danh tÝnh cña m×nh (P), danh tÝnh cña ng−êi nhËn (R)
vμ mét ®Þnh danh IP ®Ó ®¸nh dÊu kÕt qu¶, kho sÏ göi trë l¹i th«ng
tin cña Pablo (gi¶ sö r»ng Pablo cã thÓ göi nhiÒu yªu cÇu tíi kho
vμ cÇn mét ®Þnh danh ®Ó ph©n biÖt) vμ ®Ó tr¸nh c¸c tÊn c«ng theo
kiÓu ph¸t l¹i (c¸c tÊn c«ng d¹ng nμy cã thÓ buéc Pablo vμ R¬nª
dïng l¹i khãa tr−íc). Th«ng tin nμy kh«ng cÇn ph¶i m· hãa v×:
- NÕu th«ng b¸o ®−îc ®äc bëi mét ng−êi ngoμi (Ch¼ng h¹n
Octavia) th× viÖc biÕt r»ng Pablo vμ R¬nª muèn trao ®æi th«ng b¸o
riªng còng ch¼ng g©y tæn h¹i g×.
- NÕu th«ng b¸o bÞ thu chÆn vμ bÞ söa ®æi th× tr−êng hîp xÊu
nhÊt cã thÓ x¶y ra lμ yªu cÇu sÏ bÞ thay ®æi tõ yªu cÇu Pablo/ R¬nª
sang yªu cÇu Pablo/ Octavia, v× vËy sù thay ®æi nμy sÏ ®−îc ph¸t
hiÖn ngay ë b−íc sau.
Ch−¬ng 5: C¸c thñ tôc vµ c¸c chó ý trong thùc tÕ khi sö dông m· hãa 187

- NÕu th«ng b¸o bÞ Octavia thu chÆn vμ kh«ng ph¸t ®i th×


Pablo sÏ nhËn thÊy kh«ng cã tr¶ lêi vμ sÏ cã hμnh ®éng ®èi phã.

- NÕu th«ng b¸o bÞ Octavia thu chÆn vμ gi¶ m¹o t¹o mét c©u
tr¶ lêi th× Pablo sÏ nhËn thÊy r»ng c©u tr¶ lêi kh«ng ®−îc m· hãa
®óng ë b−íc tiÕp.

Trung t©m ph©n phèi khãa sÏ t¹o mét khãa m· hãa míi cho
Pablo vμ R¬nª ®Ó sö dông (ta gäi lμ KPR). Trung t©m ph©n phèi sÏ
göi cho Pablo.

E((IP, R, KPR, E((KPR, P), KR)), KP)

Trong phÇn giao dÞch nμy Pablo sÏ nhËn 4 tin sau ®−îc m·
hãa b»ng KP:

- §Þnh danh th«ng b¸o IP.

- TÝnh danh cña R¬nª R.

- Khãa liªn l¹c KPR.

- Mét x©u bao gåm tÝnh danh cña anh ta vμ còng khãa ®ã
®−îc m· b»ng khãa cña trung t©m ph©n phèi chung víi R¬nª,
E((KPR, P), KR).

Pablo kh«ng thÓ gi¶i m· th«ng tin cuèi cïng nμy nh−ng anh
ta cã thÓ göi nã cho R¬nª. Mét lÇn n÷a, c¸c tÊn c«ng cña Octavia
còng kh«ng thμnh c«ng v×:

- NÕu Octavia thay R b»ng O trong th«ng b¸o gèc cña Pablo
®Ó thay ®æi tÝnh danh cña m×nh vμo vÞ trÝ cña R¬nª th× trong tr¶
lêi tõ trung t©m ph©n phèi Pablo sÏ nhËn thÊy r»ng tÝnh danh cña
R¬nª ®· bÞ thay ®æi thμnh tÝnh danh cña Octavia.
188 Gi¸o tr×nh MËt m· häc

- NÕu Octavia thay P b»ng O trong th«ng b¸o gèc cña Pablo
®Ó thay tÝnh danh cña m×nh vμo vÞ trÝ tÝnh danh cña Pablo. Khi ®ã
Octavia (chø kh«ng ph¶i lμ Pablo) sÏ thu ®−îc tr¶ lêi, cßn vÒ phÇn
m×nh R¬nª sÏ x¸c ®Þnh r»ng Octavia (chø kh«ng ph¶i lμ Pablo) lμ
ng−êi muèn liªn l¹c víi m×nh (qua th«ng b¸o ®−îc m· b»ng khãa
chØ cã trung t©m ph©n phèi vμ R¬nª ®−îc biÕt).
- NÕu Octavia thu chÆn th«ng b¸o tõ trung t©m ph©n phèi
th× toμn bé th«ng b¸« ®−îc m· b»ng khãa KP nªn Octavia kh«ng
thÓ biÕt ®−îc vμ còng kh«ng thÓ thay ®æi nã mét c¸ch logic.
Cuèi cïng Pablo sÏ göi cho R¬nª E((KPR, P), KR), khãa ®−îc
x¸c nhËn vμ ®−îc ký bëi trung t©m ph©n phèi lμ khãa dïng ®Ó liªn
l¹c víi Pablo. Thñ tôc nμy ®−îc chØ ra trªn h×nh 5.2.

Trung t©m
ph©n phèi (1) H·y trao cho
t«i khãa ®Ó liªn
l¹c víi R¬nª
(2) §©y lµ khãa
cho b¹n vµ mét
b¶n sao cho R¬nª

c b
(3) R¬nª, trung t©m ph©n phèi ®· cho t«i
khãa nµy dïng ®Ó liªn l¹c gi÷a hai ta

H×nh 5.2: Ph©n phèi khãa qua trung t©m ph©n phèi khãa

Thñ tôc ®−îc ®−a ra ë ®©y ®ßi hái ph¶i lu«n cã trung t©m
ph©n phèi khãa. ViÖc thªm vμo trung t©m nμy cã thÓ g©y ra hiÖn
t−îng t¾c nghÏn (do nhiÒu ng−êi yªu cÇu khãa), nã còng lμ mét
môc tiªu rÊt hÊp dÉn ®Ó qua mÆt t¹i sao Octavia l¹i ph¶i mÊt thêi
gian ®Ó thu chÆn vμ thay ®æi c¸c th«ng b¸o riªng nÕu nh− c« ta
Ch−¬ng 5: C¸c thñ tôc vµ c¸c chó ý trong thùc tÕ khi sö dông m· hãa 189

cã thÓ qua mÆt, gi¶ m¹o hoÆc lμm mÊt hiÖu lùc cña trung t©m
ph©n phèi.
Tuy nhiªn s¬ ®å nμy tèt khi më réng v× khi thªm mét ng−êi
dïng míi chØ cÇn thªm mét khãa chung víi trung t©m ph©n phèi
khãa. H¬n n÷a, ng−êi dïng cã thÓ thay ®æi khãa th−êng xuyªn
theo mong muèn b»ng c¸ch ®−a ra yªu cÇu khãa míi cho trung
t©m ph©n phèi. Thñ tôc nμy còng thÝch hîp khi Pablo vμ R¬nª
kh«ng cÇn trao ®æi liªn l¹c tr−íc nÕu hä ®· ®−îc ghi nhËn ë trung
t©m ph©n phèi.

5.2.1.3. Trao ®æi khãa kh«ng ®èi xøng kh«ng cã m¸y chñ
(Server)

Sö dông m· hãa kh«ng ®èi xøng (khãa c«ng khai) sÏ lμm


gi¶m nhu cÇu ®èi víi c¸c khãa riªng vμ còng kh«ng lμm gi¶m kh¶
n¨ng dÔ bÞ tÊn c«ng cña kho chøa trung t©m. Gi¶ sö Pablo vμ
R¬nª muèn trao ®æi mét th«ng b¸o, mçi ng−êi ®Òu cã mét cÆp khãa
riªng vμ khãa c«ng khai vμ mçi ng−êi ®Òu cã thÓ truy nhËp ®−îc
vμo khãa c«ng khai cña ng−êi kh¸c. Ta ký hiÖu c¸c khãa riªng vμ
khãa c«ng khai cña Pablo lμ EP vμ DP, c¸c khãa t−¬ng øng nμy cña
R¬nª lμ ER vμ DR.
Pablo cã thÓ göi trùc tiÕp ER(M) tíi R¬nª. Tuy nhiªn c¸c
thuËt to¸n m· hãa c«ng khai ®iÓn h×nh thùc hiÖn chËm h¬n h¼n so
víi c¸c thuËt to¸n m· hãa ®èi xøng (th−êng kÐm tíi mét vμi bËc).
Bëi vËy, trong khi b¶n th©n viÖc m· hãa lμ mét g¸nh nÆng ®èi víi
tèc ®é liªn l¹c th× m· hãa khãa c«ng khai l¹i lμ mét g¸nh nÆng tíi
møc kh«ng thÓ chÊp nhËn ®−îc. V× lý do ®ã, Pablo vμ R¬nª cã thÓ
190 Gi¸o tr×nh MËt m· häc

kh«ng muèn sö dông thuËt to¸n khãa c«ng khai ®Ó b¶o vÖ tæng
thÓ qu¸ tr×nh liªn l¹c.
Pablo cã thÓ chän mét khãa m· hãa KPR cña mét thuËt to¸n
®èi xøng S ®Ó sö dông víi R¬nª. nÕu Pablo göi ER(KPR) tíi R¬nª th×
chØ cã R¬nª míi cã thÓ ®äc ®−îc nã v× chØ cã R¬nª míi cã khãa
riªng DR ®Ó gi¶i ra khãa. H¬n n÷a viÖc sö dông m· hãa khãa c«ng
khai cho c«ng viÖc nμy chØ trong mét thêi gian ng¾n kh«ng ¶nh
h−ëng nhiÒu tíi viÖc sö dông c¸c tμi nguyªn tÝnh to¸n. Tuy nhiªn
R¬nª kh«ng thÓ ®¶m b¶o ®−îc r»ng khãa nμy thùc sù tíi tõ Pablo
ngay c¶ khi anh ta göi ER(P, KPR). Nh÷ng th«ng b¸o nμy cã thÓ bÞ
gi¶ m¹o bëi Octavia.
Pablo cã thÓ göi ER(DP (KPR)) tíi R¬nª. ChØ cã R¬nª míi cã thÓ
gi¶i m· ®−îc líp ngoμi, bëi vËy R¬nª ®−îc ®¶m b¶o vÒ tÝnh bÝ mËt
cña th«ng b¸o. T−¬ng tù, chØ cã Pablo míi cã thÓ ¸p dông m· hãa
líp trong (DP ( )), do ®ã R¬nª ®−îc ®¶m b¶o vÒ tÝnh x¸c thùc cña
nã. Bëi vËy th«ng b¸o nμy sÏ chuyÓn mét khãa x¸c thùc vμ tin cËy.
Tuy nhiªn b»ng viÖc trao ®æi khãa ®èi xøng hai bªn còng trao
®æi mét th«ng b¸o kiÓm tra ®Ó chøng tá r»ng mçi bªn ®· nhËn
®óng mét khãa míi (tøc lμ kh«ng ph¶i mét khãa ®−îc dïng l¹i).
Sau khi thu khãa cña Pablo, R¬nª ph¶i gi÷ mét sè ngÉu nhiªn ®·
m· n, Pablo sÏ gi¶i m· sè nμy vμ ®Ó chøng tá r»ng m×nh ®· lμm
viÖc ®ã anh ta sÏ göi tr¶ l¹i b¶n m· cña sè (n + 1). Thñ tôc nμy
®−îc m« t¶ trªn h×nh 5.3.
Thñ tôc nμy tr¶ lêi cho c©u hái Pablo vμ R¬nª ph¶i lμm thÕ
nμo ®Ó nhËn ®−îc c¸c khãa c«ng khai cña nhau mét c¸ch bÝ mËt.
Ta sÏ xÐt c©u tr¶ lêi nμy trong tr−êng hîp cã trung t©m ph©n
phèi khãa.
Ch−¬ng 5: C¸c thñ tôc vµ c¸c chó ý trong thùc tÕ khi sö dông m· hãa 191

(1) ER (D P (K))

b c
Pablo göi khãa míi ®−îc
®¶m b¶o bÝ mËt vµ x¸c thùc
(2) S(n, K)
R¬nª göi sè ngÉu nhiªn
®−îc m· hãa R¬nª
Pablo
(3) S(n + 1, K)
Pablo tr¶ lêi

H×nh 5.3: Thñ tôc trao ®æi khãa ®èi xøng

5.2.1.4. Trao ®æi khãa kh«ng ®èi xøng cã m¸y chñ (Server)

Thñ tôc nμy lμ sù më réng trùc tiÕp cña thñ tôc sö dông
trung t©m ph©n phèi khãa ®èi xøng. Pablo sÏ göi mét th«ng b¸o
tíi trung t©m ph©n phèi nãi r»ng anh ta muèn liªn l¹c víi R¬nª
(P/R). Nh− ®· nãi ë trªn, th«ng b¸o nμy cã thÓ sö dông ë d¹ng râ.
Trung t©m ph©n phèi sÏ tr¶ lêi b»ng DD(ER, R) (khãa c«ng khai
cña R¬nª vμ tÝnh danh cña c« ta). Th«ng b¸o nμy ®−îc m· b»ng
khãa riªng cña trung t©m ph©n phèi. Kh«ng cã bÝ mËt nμo chøa
trong th«ng b¸o nμy ngoμi tÝnh toμn vÑn. Bëi vËy, bÊt cø ai cã
khãa c«ng khai cña trung t©m ph©n phèi ®Òu cã thÓ ®äc nã nh−ng
chØ cã trung t©m ph©n phèi míi cã thÓ t¹o ra ®−îc th«ng b¸o nμy.
Pablo b©y giê ®· cã khãa c«ng khai cña R¬nª vμ cã thÓ b¾t ®Çu
liªn l¹c trùc tiÕp víi R¬nª nh−ng thñ tôc ch−a kÕt thóc. NÕu Pablo
göi mét th«ng b¸o b»ng khãa c«ng khai cña R¬nª th× anh ta tin
r»ng chØ cã R¬nª míi cã thÓ ®äc ®−îc nã. Tuy nhiªn R¬nª kh«ng cã
khãa dïng ®Ó tr¶ lêi ngay c¶ khi Pablo göi khãa c«ng khai cña
m×nh kÌm theo th«ng b¸o, R¬nª ch¼ng cã lý do nμo ®Ó tin r»ng ®ã
lμ khãa cña Pablo chø kh«ng ph¶i lμ cña Octavia.
192 Gi¸o tr×nh MËt m· häc

Pablo sÏ göi ER(P, IP) tíi R¬nª chøa tÝnh danh cña anh ta vμ
mét th«ng tin phô dïng cho th«ng b¸o tr¶ lêi cña R¬nª. B©y giê
R¬nª sÏ liªn l¹c víi trung t©m ph©n phèi theo c¸ch m· Pablo ®·
lμm ®Ó nhËn ®−îc khãa cña anh ta. R¬nª göi (R, P) vμ nhËn trë l¹i
DD(EP, P). C« ta göi cho Pablo EP(IP, IR) ®Ó cho Pablo biÕt r»ng c«
ta ®· thu ®−îc th«ng b¸o cña anh ta, ®· nhËn ®−îc khãa c«ng khai
cña anh ta vμ ®ang s½n sμng liªn l¹c. IP b¸o cho Pablo biÕt r»ng
th«ng b¸o nμy tíi tõ R¬nª (bëi v× anh ta ®· göi nã cho R¬nª sau
khi ®· m· nã b»ng m· c«ng khai cña R¬nª). Pablo sÏ hoμn tÊt thñ
tôc b»ng viÖc göi cho R¬ne th«ng b¸o M vμ göi IR ®Ó chøng tá r»ng
th«ng b¸o nμy thËt sù lμ tõ Pablo, tøc lμ nã cã sau khi c« ta ®· cã
khãa c«ng khai cña Pablo nhËn tõ trung t©m. Tãm l¹i, Pablo sÏ
göi cho R¬nª ER(M, IR) (Th«ng th−êng M lμ mét khãa m· hãa ®èi
xøng cho c¶ hai ng−êi sö dông. NÕu kh«ng, hä cã thÓ tiÕp tôc göi
c¸c tÝnh danh I ®Ó tiÕp tôc ®¶m b¶o tÝnh x¸c thùc). Thñ tôc nμy cã
7 b−íc nh− ®−îc m« t¶ trªn h×nh 5.4.

Trung t©m ph©n phèi


(1) Xin h·y trao
(4) Xin h·y trao
cho t«i khãa c«ng
cho t«i khãa c«ng
khai cña R¬nª
khai cña Pablo (5) §©y lµ (2) §©y lµ
khãa c«ng khãa c«ng
khai cña Pablo khai cña R¬nª

(3) T«i lµ Pablo, ta nãi chuyÖn víi nhau nhÐ

(6) R¬nª ®©y, cã chuyÖn g× vËy?

(7) å t«i ®· quªn

H×nh 5.4: Thñ tôc trao ®æi khãa kh«ng ®èi xøng
Ch−¬ng 5: C¸c thñ tôc vµ c¸c chó ý trong thùc tÕ khi sö dông m· hãa 193

Trung t©m ph©n phèi lμm thÕ nμo ®Ó cã ®−îc c¸c khãa?
Trung t©m ph©n phèi cã thÓ c«ng bè khãa c«ng khai cña m×nh mét
c¸ch réng r·i vμ bÊt kú ai muèn ghi nhËn vμo trung t©m nμy chØ
cÇn ®−a khãa vμ tÝnh danh ®· ®−îc m· b»ng khãa cña trung t©m.
Do hiÖu n¨ng, ®é tin cËy vμ kÝch cì mμ cã thÓ cã nhiÒu trung t©m
ph©n phèi. ë c¸c b−íc 2 vμ 5, nÕu trung t©m ph©n phèi kh«ng cã
c¸c khãa ®−îc yªu cÇu th× nã cã thÓ dμn xÕp víi c¸c trung t©m
kh¸c ®Ó thu nhËn vμ ph©n phèi l¹i c¸c khãa. Ng−êi dïng kh«ng
cÇn biÕt qu¸ tr×nh tháa thuËn nμy. Hai hoÆc nhiÒu trung t©m cã
thÓ dïng nh− bé phËn dù phßng cña trung t©m kh¸c ®Ó nÕu mét
trung t©m bÞ qu¸ t¶i hoÆc háng th× trung t©m kh¸c cã thÓ cung cÊp
c¸c gi¸ trÞ khãa nh− vËy. Còng nh− vËy, mét khi Pablo vμ R¬nª cã
khãa c«ng khai cña nhau th× hä cã thÓ tù l−u tr÷ khãa nμy, chØ khi
mét bªn muèn thay ®æi khãa c«ng khai th× míi ph¶i yªu cÇu tíi
trung t©m ph©n phèi.
Trung t©m ph©n phèi khãa lμ mét kh©u quyÕt ®Þnh trong thñ
tôc: nã ph¶i ho¹t ®éng bÊt cø khi nμo cã nhu cÇu vÒ khãa. Tuy
nhiªn, cÇn chó ý lμ trung t©m ph©n phèi sÏ göi cho R¬nª DD(EP, P)
bao gåm khãa vμ tÝnh danh cña Pablo ®Ó ®¶m b¶o r»ng khãa nμy
thùc sù tíi tõ trung t©m ph©n phèi (bëi v× ®©y lμ kÕt qu¶ ®−îc m·
hãa b»ng DD lμ khãa riªng cña trung t©m ph©n phèi). Pablo cã thÓ
yªu cÇu khãa riªng cña m×nh ë bÊt cø thêi ®iÓm thÝch hîp nμo vμ
sÏ nhËn ®−îc kÕt qu¶ t−¬ng tù tõ trung t©m ph©n phèi. Sau ®ã
anh ta cã thÓ chuyÓn c¸c b¶n sao cña kiÓu x¸c thùc nμy ®èi víi
khãa cña m×nh tíi bÊt cø ai mμ anh ta muèn thiÕt lËp liªn l¹c.
Theo c¸ch nμy, tÝnh kh¶ dông liªn tôc cña trung t©m ph©n phèi
kh«ng cßn quan träng n÷a.
194 Gi¸o tr×nh MËt m· häc

C©u hái cßn l¹i lμ ®iÒu g× lμm cho ta tin r»ng c¸c khãa lμ x¸c
thùc, tøc lμ c¸c khãa nμy lμ ®óng cña ng−êi cã tÝnh danh t−¬ng
øng. LiÖu Octavia cã thÓ ®−a ra khãa c«ng khai cña m×nh mμ
tuyªn bè r»ng ®ã lμ khãa cña R¬nª kh«ng? §iÒu cÇn nãi ë ®©y lμ ta
ph¶i lμm thÕ nμo ®Ó rμng buéc mét c¸ch ch¾c ch¾n tÝnh danh vμ
khãa c«ng khai theo mét c¸ch thùc sù tin cËy? C©u hái nμy ®−îc
gäi lμ chøng thùc.

5.2.1.5. Chøng thùc

Còng nh− mäi ng−êi chóng ta sÏ thiÕt lËp sù tin cËy ë mäi
lóc. Víi con ng−êi, ta th−êng x¸c ®Þnh hä qua c¸c ®Æc ®iÓm nh−
giäng nãi, khu«n mÆt hoÆc ch÷ viÕt. Tuy nhiªn, ®«i khi ta tr¶ lêi
®iÖn tho¹i vμ nghe thÊy nh÷ng c©u ®¹i lo¹i: "T«i lμ ®¹i diÖn cña
chÝnh quyÒn ®Þa ph−¬ng..." hoÆc "T«i thay mÆt tæ chøc tõ thiÖn...".
Tïy theo néi dung cña cuéc gäi mμ ta quyÕt ®Þnh liÖu cã nªn tin
vμo ng−êi gäi hay ph¶i t×m mét c¸ch kiÓm tra ®éc lËp ch¼ng h¹n
nh− nhê c¶nh s¸t kiÓm tra sè m¸y ®· gäi ®Õn trong danh b¹ ®iÖn
tho¹i. Ta còng cã thÓ t×m kiÕm th«ng tin phô tõ ng−êi gäi: VÝ dô
nh− ("C« ta mÆc ¸o mμu g×"). Ta cã thÓ hμnh ®éng ®Ó ng¨n chÆn
kÎ lîi dông ("T«i sÏ göi sÐc trùc tiÕp tíi tæ chøc tõ thiÖn cña b¹n").
Tuy nhiªn ®èi víi nh÷ng c«ng viÖc giao tiÕp kiÓu nμy ta ®Òu cã
mét ng−ìng tin cËy nμo ®ã, mét møc ®é ®Ó ta cã thÓ s½n lßng tin
t−ëng vμo mét ng−êi ch−a ®−îc biÕt. §èi víi liªn l¹c ®iÖn tö ta cÇn
ph¶i x©y dùng nh÷ng ph−¬ng ph¸p ®Ó hai bªn thiÕt lËp ®−îc sù
tin cËy mμ kh«ng ph¶i gÆp gì. Trong th−¬ng m¹i rÊt cÇn nh÷ng
øng dông nμy. C«ng ty chÕ t¹o m¸y Acorn göi tíi cho c«ng ty thÐp
Big mét ®¬n ®Æt hμng 10.000 tÊm thÐp cÇn ®−îc ®ãng hμng xong
Ch−¬ng 5: C¸c thñ tôc vµ c¸c chó ý trong thùc tÕ khi sö dông m· hãa 195

trong mét tuÇn vμ sÏ tr¶ tiÒn trong vßng 10 ngμy. §¬n ®Æt hμng
®−îc in theo mÉu cña Acorn vμ ®−îc ký bëi mét ng−êi cã tªn lμ
Helen Smudge - ®¹i diÖn th−¬ng m¹i. Big cã thÓ b¾t ®Çu chuÈn bÞ
thÐp. Big cã thÓ kiÓm tra møc ®é tμi kho¶n cña Acorn, ®Ó quyÕt
®Þnh xem cã nªn göi hμng mμ kh«ng ®−îc tr¶ tiÒn tr−íc hay
kh«ng. NÕu nghi ngê, Big cã thÓ ®iÖn tho¹i cho Acorn vμ yªu cÇu
nãi chuyÖn víi bμ Smudge ë bé phËn th−¬ng m¹i. Tuy nhiªn
th−êng lμ Big sÏ ®ãng hμng mμ kh«ng cÇn biÕt ai sÏ lμ bμ Smudge,
liÖu bμ ta cã ph¶i lμ ®¹i diÖn th−¬ng m¹i kh«ng vμ liÖu bμ ta cã
thÈm quyÒn ®Ó ®Æt nh÷ng hîp ®ång cã tÇm cì nh− vËy hay kh«ng.
§«i khi nh÷ng giao dÞch kiÓu nμy ®−îc thùc hiÖn qua Fax nªn Big
thËm chÝ còng kh«ng cã c¶ ch÷ ký gèc trªn tμi liÖu. C¸c giao dÞch
kiÓu nμy th−êng xuyªn x¶y ra. ë ®©y sù tin cËy ®−îc dùa trªn tÝnh
x¸c thùc (khu«n d¹ng b¶n in, ch÷ ký), th«ng tin phô (b¸o c¸o tμi
chÝnh) vμ møc ®é khÈn cÊp (Acorn yªu cÇu cã thÐp nhanh).
TÊt c¶ chóng ta ®· tõng cho b¹n bÌ vay mét thø g× ®ã. Gi¶ sö
b¹n gÆp mét ng−êi ë mét b÷a tiÖc, ng−êi ®ã nãi r»ng c« ta lμ b¹n
cña mét ng−êi b¹n vμ c« ta yªu cÇu b¹n vay tiÒn. B¹n trao ®æi víi
c« ta mét sè chi tiÕt vμ b¹n cã thÓ hμi lßng biÕt r»ng c« ta cã biÕt
®«i chót vÒ ng−êi b¹n nμy. Dùa trªn mèi quan hÖ ®ã b¹n cã thÓ
quyÕt ®Þnh cho c« ta vay tiÒn. Sù tin t−ëng ë ®©y lμ dùa vμo vÎ
ngoμi ®¸ng tin cËy cña c« ta vμ sù quen biÕt cña c« ta víi ng−êi
b¹n cña b¹n. C©u chuyÖn t−¬ng tù cã thÓ tiÕp tôc víi mét sè ng−êi
b¹n cña mét ng−êi b¹n ("T«i sèng c¹nh Anand vμ anh ta th−êng
nãi vÒ Clara lμ ng−êi l¸ng giÒng cña anh, anh cã biÕt c« Êy
kh«ng?"). B¹n cã thÓ cho mét ng−êi b¹n cña mét ng−êi b¹n vay
196 Gi¸o tr×nh MËt m· häc

tiÒn nÕu b¹n c¶m thÊy ®ñ tin cËy víi chuçi t×nh b¹n nμy. Mèi
quan hÖ "b¹n cña" kh«ng dÔ dμng chuyÓn b¾c cÇu nh− vËy.

Tuy nhiªn, trong thùc tÕ cã thÓ thÊy ®−îc mét sè ®iÒu ®¶m
b¶o trong c¸c vÝ dô trªn. C¶nh s¸t sÏ ®¶m b¶o tÝnh x¸c thùc cña
ng−êi gäi. C«ng ty Acorn sÏ ®¶m b¶o r»ng bμ Smudge lμ ®¹i diÖn
th−¬ng m¹i cña hä (b»ng c¸ch chuyÓn cuéc gäi tíi bμ ta ë bé phËn
th−¬ng m¹i) vμ theo mét nghÜa nμo ®ã, c«ng ty ®iÖn tho¹i sÏ ®¶m
b¶o tÝnh x¸c thùc cña bé phËn c¶nh s¸t hoÆc cña Acorn qua danh
s¸ch cu¶ hä trong danh b¹ ®iÖn tho¹i. Nh÷ng "®¶m b¶o" nμy cã
thÓ ®−îc dïng lμ c¬ së ®Ó tin cËy trong c¸c quan hÖ th−¬ng m¹i mμ
hai bªn kh«ng biÕt nhau.
Mét c«ng ty lín cã thÓ cã mét vμi bé phËn, mçi bé phËn cã thÓ
cã mét sè phßng, mçi phßng cã thÓ cã mét vμi ®Ò ¸n vμ mçi mét ®Ò
¸n cã thÓ cã mét sè nhãm t¸c nghiÖp (víi nh÷ng kh¸c biÖt vÒ tªn,
sè møc vμ cÊp ®é hoμn chØnh cña cÊu tróc). Ng−êi ®iÒu hμnh cao
nhÊt cã thÓ kh«ng biÕt tªn vμ mÆt cña mçi nh©n viªn trong c«ng ty
nh−ng tr−ëng nhãm t¸c nghiÖp ph¶i biÕt tÊt c¶ c¸c thμnh viªn
trong nhãm m×nh vμ l·nh ®¹o dù ¸n ph¶i biÕt tÊt c¶ c¸c tr−ëng
nhãm t¸c nghiÖp…
Xem xÐt c¬ cÊu tæ chøc cña mét c«ng ty cã thÓ cho ta thÊy sù
tin cËy ®−îc x©y dùng ra sao. Gi¶ sö Ann vμ Bob gÆp nhau. Bob
nãi r»ng anh ta còng lμm trong c«ng ty víi Ann.
Trong c«ng ty cña hä Andrew vμ Betty lμ hai tr−ëng nhãm
t¸c nghiÖp trong cïng mét dù ¸n mμ Camilla lμ gi¸m ®èc vμ Ann
lμm viÖc cho Andrew, Bob lμm viÖc cho Betty. C¸c yÕu tè nμy cã
thÓ gióp cho Ann vμ Bob tin cËy nhau (C¸c quan hÖ vÒ mÆt tæ chøc
®−îc chØ ra ë h×nh 5.5).
Ch−¬ng 5: C¸c thñ tôc vµ c¸c chó ý trong thùc tÕ khi sö dông m· hãa 197

Camilla

Andrew Betty

Ann Bob

H×nh 5.5: Tæ chøc trong mét c«ng ty gi¶ ®Þnh

Ann sÏ hái Andrew: Bob lμ ai, Andrew hoÆc hái Betty nÕu
anh ta biÕt Betty, nÕu kh«ng anh ta sÏ hái Camilla, Camilla hái
Betty, Betty tr¶ lêi Bob lμm viÖc cho m×nh. C©u tr¶ lêi nμy sÏ ®i
theo con ®−êng ng−îc víi c¸c c©u hái. Tuy nhiªn nÕu Bob n»m
trong t¸c nghiÖp kh¸c th× cã thÓ cÇn ph¶i leo cao h¬n theo c©y tæ
chøc nμy cho tíi khi t×m thÊy ®iÓm chung.

Camilla

D¹ng D¹ng D¹ng 632a cña Andrew


632a cña 632a cña (3)
Camilla Betty

D¹ng 632a cña Camilla


(2)
Andrew

D¹ng D¹ng
Betty 632a cña
632a cña
Betty Betty

(1)

(4)
Bob
Ann

H×nh 5.6: Bob chuyÓn khãa cho Ann


198 Gi¸o tr×nh MËt m· häc

Ta cã thÓ sö dông mét qu¸ tr×nh t−¬ng tù ®Ó trao ®æi khãa


mËt m·. NÕu Bob vμ Ann muèn liªn l¹c, Bob cã thÓ trao khãa c«ng
khai cña m×nh cho Betty vμ Betty lμ ng−êi sÏ chuyÓn nã cho
Camilla hoÆc trao trùc tiÕp cho Andrew - lμ ng−êi trao nã cho Ann.
Tuy nhiªn c¸ch thøc trong thùc tÕ kh«ng diÔn ra ®óng nh− vËy,
khãa ph¶i ®−îc g¾n thªm mét ghi chó nãi r»ng nã lμ tõ Bob ë d¹ng
th«ng tin trong danh b¹ ®iÖn tho¹i hoÆc ë d¹ng 947 cña Hå s¬ c¸
nh©n (t−¬ng tù nh− mÉu 2a/TCTW Hå s¬ c«ng chøc ViÖt Nam). Vμ
nÕu d¹ng 947 ®−îc sö dông th× Betty ph¶i g¾n thªm th«ng tin d¹ng
632a. Camilla còng sÏ g¾n thªm mét th«ng tin d¹ng 632a kh¸c vμ
cuèi cïng lμ Andrew còng lμm nh− vËy (xem h×nh 5.6).
Chuçi c¸c th«ng tin d¹ng 632a nμy muèn nãi r»ng "T«i lμ
Betty, t«i ®· nhËn khãa nμy vμ cã g¾n kÌm hå s¬ c¸ nh©n cña mét
ng−êi mμ t«i biÕt lμ Bob". "T«i lμ Camilla vμ t«i ®· nhËn khãa nμy
cã g¾n kÌm hå s¬ c¸ nh©n vμ trÝch lôc d¹ng 632a tõ mét ng−êi mμ
t«i biÕt lμ Betty" vμ cø nh− vËy. Khi Ann nhËn ®−îc khãa c« ta cã
thÓ xem l¹i chuçi b»ng chøng nμy vμ kÕt luËn víi mét ®¶m b¶o
hîp lý lμ khãa nμy thùc sù ®· tíi tõ Bob. Thñ tôc nμy lμ mét c¸ch
®Ó thu ®−îc mét khãa c«ng khai cã chøng thùc (kÕt hîp gi÷a khãa
vμ mét tÝnh danh tin cËy). M« h×nh nμy lμm viÖc tèt trong mét
c«ng ty v× lu«n cã mét ng−êi nμo ®ã lμ chung ®èi víi hai nh©n viªn
bÊt kú, thËm chÝ nÕu hai nh©n viªn n»m ë c¸c bé phËn kh¸c nhau
tíi møc mμ ng−êi chung lμ Gi¸m ®èc c«ng ty.
Tuy nhiªn qu¸ tr×nh nμy sÏ gÆp trë ng¹i do mçi khi Ann vμ
Bob muèn liªn l¹c th× c¶ Ann, Andrew, Camilla, Betty vμ Bob ®Òu
ph¶i tham gia. NÕu Betty ®i c«ng t¸c hoÆc Andrew bÞ èm th× thñ
tôc sÏ chuÖch cho¹c. Thñ tôc nμy còng kh«ng lμm viÖc tèt nÕu
gi¸m ®èc kh«ng thÓ lμm ®−îc bÊt cø mét viÖc quan träng nμo do
ph¶i mÊt thêi gian vμo viÖc t¹o c¸c biÓu 632a.
Ch−¬ng 5: C¸c thñ tôc vµ c¸c chó ý trong thùc tÕ khi sö dông m· hãa 199

§Ó kh¾c phôc vÊn ®Ò thø nhÊt Bob cã thÓ yªu cÇu ®−îc cung
cÊp ®Çy ®ñ c¸c mÉu biÓu 632a tõ gi¸m ®èc xuèng anh ta. Sau ®ã
Bob cã thÓ trao b¶n sao cña chóng tíi bÊt kú ai trong c«ng ty cÇn
tíi khãa cña m×nh. Thay cho ph¶i lμm tõ ë ®¸y tíi ®iÓm chung,
Bob sÏ b¾t ®Çu tõ ®Ønh vμ nhËn chuçi ®Çy ®ñ c¸c mÉu biÓu cña
m×nh. Anh ta sÏ nhËn c¸c ch÷ ký cÇn thiÕt vμo bÊt cø lóc nμo mμ
c¸c cÊp trªn cña anh ta rçi viÖc, nh− vËy hä kh«ng nhÊt thiÕt ph¶i
cã mÆt khi anh ta muèn trao khãa c«ng khai ®· ®−îc chøng thùc
cña m×nh. Thay cho viÖc b¾t ®Çu tõ ë ®¸y (tõ c¸c nh©n viªc t¸c
nghiÖp) vμ lμm viÖc dÇn tíi ®Ønh cña c©y (Gi¸m ®èc) ta sÏ b¾t ®Çu
tõ ®Ønh. Nh− vËy, Bob sÏ cã mét khãa ®· ®−îc chøng thùc tr−íc ®Ó
cã thÓ sö dông ®−îc kh«ng h¹n chÕ trong t−¬ng lai. Ta sÏ më réng
cÊu tróc cña c«ng ty gi¶ ®Þnh tõ gi¸m ®èc tíi c¸c møc (xem h×nh 5.7).

Gi¸m ®èc Edward

Gi¸m ®èc bé phËn Diana - Gi¸m ®èc bé phËn Andrew - Gi¸m ®èc bé phËn

Debbi - Tr−ëng phßng Delwyn - Tr−ëng phßng

Mekesh Mary
Qu¶n lý dù ¸n Qu¶n lý dù ¸n

Charles - Tr−ëng nhãm Camilla - Tr−ëng nhãm

Andrew Betty
Tr−ëng nhãm t¸c nghiÖp Tr−ëng nhãm t¸c nghiÖp

Ann - Nh©n viªn Bob - Nh©n viªn

H×nh 5.7: CÊu tróc c«ng ty më réng


200 Gi¸o tr×nh MËt m· häc

Gi¸m ®èc c«ng ty sÏ viÕt mét bøc th− cho mçi gi¸m ®èc bé
phËn nãi r»ng: "T«i lμ Edward - Chñ tÞch c«ng ty. T«i chøng nhËn
cho Diana lμ gi¸m ®èc bé phËn, ®©y lμ ng−êi mμ t«i biÕt râ vμ t«i
trao cho Diana quyÒn chøng nhËn cho c¸c thuéc cÊp cña m×nh".
T−¬ng tù mçi gi¸m ®èc sÏ sao l¹i th− nμy vμ kÌm theo th− cña
m×nh… Bob sÏ nhËn ®−îc mét tËp th− tõ chñ tÞch xuèng tíi
tr−ëng nhãm t¸c nghiÖp cña m×nh, mçi th− ®−îc kÕt nèi theo tªn
tíi th− tiÕp. NÕu mçi nh©n viªn trong c«ng ty ®Òu cã mét tËp th−
nh− vËy th× hai nh©n viªn bÊt kú muèn trao ®æi c¸c khãa ®· chøng
thùc th× hä chØ cÇn so s¸nh c¸c tËp th− nμy cña nhau: c¶ hai tËp
th− sÏ cã Ýt nhÊt mét ng−êi chung lμ Edward. Ch¼ng h¹n Bob vμ
Ann sau khi so s¸nh thÊy r»ng c¸c th− nμy lμ nh− nhau sau
Camilla cßn phÇn cßn l¹i ë bªn d−íi th× Bob biÕt r»ng phÇn cña
Ann ®· ®−îc Camilla chøng thùc v× nã gièng nh− phÇn cña anh ta
vμ Ann còng biÕt nh− vËy. Mçi ng−êi ®Òu biÕt phÇn cßn l¹i lμ ®óng
v× nã ®−îc g¾n víi nhau b»ng mét d·y liªn tôc c¸c tªn vμ ch÷ ký.

Thñ tôc nμy vÒ mÆt ®iÖn tö cã thÓ biÓu thÞ dÔ h¬n trªn giÊy.
Víi giÊy tê th× ph¶i ®¶m b¶o chèng gi¶ m¹o nh»m tr¸nh ®Ó mét
th− nμo ®ã trong tËp th− bÞ thay thÕ vμ ®Ó ®¶m b¶o r»ng khãa
c«ng khai ë ®¸y ®−îc g¾n kÕt víi d·y nμy. VÒ mÆt ®iÖn tö th× toμn
bé c¸c c«ng viÖc nμy ®−îc lμm th«ng qua c¸c ch÷ ký sè vμ c¸c hμm
b¨m (hash). Cã thÓ coi Kohnfelder lμ ng−êi ®Çu tiªn ®−a ra ý
t−ëng nμy vμ sau ®ã Merkle ®· më réng nã trong bμi b¸o cña m×nh
vμ gÇn ®©y h¬n lμ trong chuÈn quèc tÕ X.509.
Ch−¬ng 5: C¸c thñ tôc vµ c¸c chó ý trong thùc tÕ khi sö dông m· hãa 201

Khãa c«ng khai vμ tÝnh danh cña ng−êi dïng ®−îc g¾n víi
nhau thμnh mét chøng chØ vμ råi nã l¹i ®−îc ký bëi mét ng−êi nμo
®ã ®Ó chøng thùc tÝnh ®óng ®¾n cña mèi liªn kÕt nμy. Tr−íc tiªn
Edward chän mét cÆp khãa c«ng khai vμ ®Æt phÇn c«ng khai ë n¬i
mμ mäi ng−êi trong c«ng ty cã thÓ nhËn ®−îc nã vμ gi÷ l¹i phÇn bÝ
mËt cña m×nh. Sau ®ã mét gi¸m ®èc bé phËn (ch¼ng h¹n Diana) sÏ
t¹o cÆp khãa c«ng khai cña m×nh råi ®Æt khãa c«ng khai trong mét
th«ng b¸o cïng víi tÝnh danh vμ chuyÓn nã mét c¸ch an toμn tíi
Edward. Edward sÏ ký nã b»ng c¸ch t¹o ra mét gi¸ trÞ b¨m cña
th«ng b¸o (tãm l−îc th«ng b¸o) vμ råi m· hãa th«ng b¸o vμ hμm
b¨m nμy b»ng khãa riªng cña m×nh. B»ng c¸ch ký th«ng b¸o nh−
vËy Edward sÏ kh¼ng ®Þnh r»ng khãa c«ng khai (cña Diana) vμ
tÝnh danh (còng cña Diana) trong th«ng b¸o lμ cña cïng mét
ng−êi. Th«ng b¸o nμy ®−îc gäi lμ chøng chØ cña Diana. C¸c tr−ëng
phßng cña Diana ®Òu t¹o c¸c th«ng b¸o b»ng khãa c«ng khai cña
hä. Diana sÏ ký vμ tãm l−îc (b¨m) chóng råi chuyÓn l¹i ®ång thêi
g¾n thªm vμo mét b¶n sao chøng chØ mμ m×nh ®· nhËn ®−îc tõ
Edward. B»ng c¸ch nμy mäi ng−êi cã thÓ kiÓm tra chøng chØ cña
ng−êi phô tr¸ch b»ng c¸ch xuÊt ph¸t tõ khãa c«ng khai ®· biÕt
cña Edward ®Ó gi¶i m· chøng chØ cña Diana nh»m thu ®−îc khãa
c«ng khai (vμ tÝnh danh) cña Diana vμ dïng khãa nμy ®Ó gi¶i m·
cho chøng chØ cña ng−êi phô tr¸ch. H×nh 5.8 chØ ra c¸ch t¹o c¸c
chøng chØ cho Diana vμ Delwyn. Qu¸ tr×nh nμy cø tiÕp tôc nh−
vËy cho tíi Ann vμ Bob. H×nh 5.9 ta thÊy r»ng chøng chØ cña Bob
lμ chøng chØ riªng cña anh ta kÌm theo tÊt c¶ c¸c chøng chØ cña
c¸c l·nh ®¹o tõ ng−êi phô tr¸ch trùc tiÕp cho tíi «ng gi¸m ®èc
c«ng ty.
202 Gi¸o tr×nh MËt m· häc

§−îc m· b»ng khãa riªng cña Betty Tªn: Bob Gi¸ trÞ
Chøc vô: Nh©n viªn b¨m
§−îc m· b»ng khãa riªng cña Camilla Khãa c«ng khai: 7013F82A… 60206

Tªn: Betty Gi¸ trÞ


§−îc m· b»ng khãa riªng cña Mukesh
Chøc vô: Tr−ëng nhãm b¨m
Khãa c«ng khai: 206A6CD... 00002
§−îc m· b»ng khãa riªng cña Delwyn
Tªn: Camilla Gi¸ trÞ
§−îc m· b»ng khãa riªng cña Diana Chøc vô: Tr−ëng ban b¨m
Khãa c«ng khai:
§−îc m· b»ng khãa riªng cña Edward
Tªn: Mukesh Gi¸ trÞ
Chøc vô: Gi¸m ®èc dù ¸n b¨m
Khãa c«ng khai: 47F0F0008 16802

Tªn: Delwyn Gi¸ trÞ


Chøc vô: Tr−ëng phßng b¨m
Khãa c«ng khai: 3AB3882C 48CFA

Tªn: Diana Gi¸ trÞ


Chøc vô: Gi¸m ®èc bé phËn b¨m
Khãa c«ng khai: 17EF83CA 128C4

H×nh 5.8: C¸c chøng chØ cã ký


Trong vÝ dô nμy, c¸c chøng chØ ®−îc ®−a ra theo tuyÕn qu¶n
lý. Tuy nhiªn kh«ng nhÊt thiÕt ph¶i cã hoÆc tu©n theo cÊu tróc
qu¶n lý ®Ó sö dông viÖc ký chøng thùc. BÊt cø mét ai ®−îc coi lμ
cã thÈm quyÒn ®Òu cã thÓ ký mét chøng chØ. VÝ dô, nÕu b¹n muèn
x¸c ®Þnh xem bËc mét ng−êi nμo ®ã coi ®óng lμ cã b»ng ®¹i häc
hay kh«ng th× b¹n kh«ng cÇn gÆp gi¸m ®èc hoÆc viÖn tr−ëng, thay
vμo ®ã b¹n chØ cÇn ®i tíi c¬ quan l−u tr÷. §Ó kiÓm tra c«ng viÖc
cña mét ng−êi nμo ®ã b¹n ph¶i göi tíi c¬ quan nh©n sù hoÆc ng−êi
phô tr¸ch nh©n sù. Vμ ®Ó kiÓm tra xem liÖu mét ng−êi nμo ®ã cã
sèng ë mét ®Þa chØ x¸c ®Þnh th× b¹n cã thÓ hái c¬ quan l−u tr÷
hμnh chÝnh c«ng céng. Mét c«ng chøng viªn sÏ chøng nhËn tÝnh
hîp ph¸p cña mét ch÷ ký trªn mét tμi liÖu cña mét sè c«ng ty cã c¬
quan an ninh, mét sè c«ng ty cã mét c¬ quan nh©n sù t¸ch biÖt ®èi
Ch−¬ng 5: C¸c thñ tôc vµ c¸c chó ý trong thùc tÕ khi sö dông m· hãa 203

víi mçi bé phËn hoÆc mçi mét nhμ m¸y. C¸c c¸n bé phô tr¸ch cña
bé phËn nμy cã thÓ ký x¸c nhËn cho nh÷ng ng−êi trong ph¹m vi
qu¶n lý cña hä. C¸c ph©n cÊp tù nhiªn tån t¹i trong x· héi vμ c¸c
ph©n cÊp t−¬ng tù còng cã thÓ ®−îc sö dông ®Ó t¹o hiÖu lùc cho
c¸c chøng chØ. VÊn ®Ò duy nhÊt trong cÊu tróc ph©n cÊp lμ cÇn
ph¶i tr«ng cËy vμo møc ®Ønh. Toμn bé chuçi x¸c thùc lμ an toμn v×
mçi chøng chØ sÏ chøa khãa ph¶i m· cho chøng chØ tiÕp sau ngo¹i
trõ møc ®Ønh. Trong mét c«ng ty viÖc ®Æt niÒm tin vμo gi¸m ®èc lμ
mét ®iÒu hîp lý. Tuy nhiªn nÕu c¸c chøng chØ trë nªn ®−îc sö
dông réng r·i trong th−¬ng m¹i ®iÖn tö th× mäi ng−êi ph¶i cã kh¶
n¨ng trao ®æi c¸c chøng chØ mét c¸ch an toμn qua c¸c c«ng ty, c¸c
tæ chøc vμ c¸c quèc gia.

§−îc m· b»ng khãa riªng cña Betty Tªn: Bob Gi¸ trÞ
Chøc vô: Nh©n viªn b¨m
§−îc m· b»ng khãa riªng cña Camilla Khãa c«ng khai: 7013F82A… 60206

Tªn: Camilla Gi¸ trÞ


§−îc m· b»ng khãa riªng cña Mukesh
Chøc vô: Tr−ëng nhãm b¨m
Khãa c«ng khai: 206A6CD... 00002
§−îc m· b»ng khãa riªng cña Delwyn
Tªn: Camilla Gi¸ trÞ
§−îc m· b»ng khãa riªng cña Diana Chøc vô: Tr−ëng ban b¨m
Khãa c«ng khai:
§−îc m· b»ng khãa riªng cña Edward
Tªn: Mukesh Gi¸ trÞ
Chøc vô: Gi¸m ®èc dù ¸n b¨m
Khãa c«ng khai: 47F0F0008 16802

Tªn: Delwyn Gi¸ trÞ


Chøc vô: Tr−ëng phßng b¨m
Khãa c«ng khai: 3AB3882C 48CFA

Tªn: Diana Gi¸ trÞ


Chøc vô: Gi¸m ®èc bé phËn b¨m
Khãa c«ng khai: 17EF83CA 128C4

H×nh 5.9: Chuçi c¸c chøng chØ


204 Gi¸o tr×nh MËt m· häc

Internet lμ mét tËp hîp réng lín cña c¸c m¹ng dïng trong
liªn l¹c bªn ngoμi c¸c c«ng ty, c¸c tæ chøc vμ quèc tÕ (còng nh−
bªn trong c¸c c«ng ty, c¸c tæ chøc vμ mét ®Êt n−íc). Internet ®−îc
ho¹t ®éng (nãi mét c¸ch chÝnh x¸c h¬n lμ ®−îc phèi hîp) bëi mét
nhãm nhá ®−îc gäi lμ Céng ®ång Internet. Céng ®ång Internet ®·
®Ò nghÞ r»ng nã lμ ng−êi ký cho c¸c chøng chØ víi khãa c«ng khai
cho liªn l¹c Internet. Céng ®ång nμy sÏ ký c¸c chøng chØ cho Nhμ
chøc tr¸ch chøng thùc cña c¶nh s¸t vμ c¬ quan nμy l¹i chøng thùc
cho c¸c chøng chØ cho c¸c c¬ quan nhμ n−íc, c¸c doanh nghiÖp, c¸c
nhμ tr−êng, c¸c tæ chøc kh¸c vμ cho c¸c c¸ nh©n. Quan ®iÓm nμy
cã lÏ lμ mét quan ®iÓm ®óng ®¾n nhÊt.
B©y giê ta sÏ l−ít qua mét sè quan ®iÓm vÒ ph©n phèi khãa
tõ ph©n phèi qua trao ®æi trùc tiÕp tíi ph©n phèi qua trung t©m
ph©n phèi cã chøng thùc. Mçi lo¹i ®Òu cã −u nh−îc ®iÓm riªng.
Nh÷ng ®iÓm cÇn nhí trong c¸c thñ tôc nμy (còng nh− nh÷ng ®iÓm
kh¸c mμ ta sÏ nghiªn cøu) lμ:
- Cã nh÷ng h¹n chÕ ho¹t ®éng nμo? Ch¼ng h¹n thñ tôc cã cÇn
mét ph−¬ng tiÖn kh¶ dông liªn tôc vÝ nh− trung t©m ph©n phèi
khãa hay kh«ng?
- Cã nh÷ng yªu cÇu tin cËy nμo? Ai vμ nh÷ng thùc thÓ nμo
ph¶i ®−îc tin cËy ®Ó ho¹t ®éng ®óng?
- Cã nh÷ng g× ®Ó b¶o vÖ tr¸nh khái nh÷ng trôc trÆc? LiÖu
mét kÎ bªn ngoμi cã thÓ gi¶ m¹o mét thùc thÓ nμo ®ã trong thñ tôc
vμ g©y tæn h¹i tíi tÝnh an toμn? LiÖu cã mét kÎ ®ång lâa nμo ®ã
trong thñ tôc thùc hiÖn lõa ®¶o mμ kh«ng bÞ ph¸t hiÖn?
- HiÖu qu¶ cña thñ tôc ra sao? Mét thñ tôc yªu cÇu mét sè
b−íc ®Ó thiÕt lËp mét khãa m· hãa sÏ ®−îc sö dông nhiÒu lÇn lμ
Ch−¬ng 5: C¸c thñ tôc vµ c¸c chó ý trong thùc tÕ khi sö dông m· hãa 205

mét vÊn ®Ò, mét vÊn ®Ò kh¸c lμ ph¶i qua mét sè b−íc mÊt rÊt
nhiÒu thêi gian ®Ó cã mét khãa sö dông mét lÇn.
- Sö dông mét thñ tôc cã dÔ dμng kh«ng? CÇn chó ý r»ng ®é
phøc t¹p trong c¸c øng dông m¸y tÝnh cã thÓ kh¸c víi ®é phøc t¹p
trong c¸c øng dông thñ c«ng. Ta sÏ ®−a ra mét sè m« t¶ cho mét
vμi thñ tôc, mét sè thñ tôc sÏ ®−îc ®−a ra trong c¸c vÝ dô cuèi
ch−¬ng. B¹n cÇn ph¶i ghi nhí nh÷ng ®iÓm nμy khi nghiªn cøu
nh÷ng thñ tôc cßn l¹i trong ch−¬ng nμy.

5.2.2. C¸c ch÷ ký sè


Ta sÏ nghiªn cøu mét øng dông ®iÓn h×nh trong m¸y tÝnh thÓ
hiÖn mét nhu cÇu th«ng th−êng cña con ng−êi. LÖnh chuyÓn tiÒn
tõ mét ng−êi nμy tíi mét ng−êi kh¸c. VÒ c¨n b¶n ®©y lμ mét d¹ng
sÐc ®· ®−îc m¸y tÝnh hãa. Theo truyÒn thèng ta ®· hiÓu giao dÞch
nμy sÏ ®−îc thùc hiÖn nh− thÕ nμo ë d¹ng giÊy tê.
- SÐc lμ mét ®èi t−îng x¸c ®Þnh cã t− c¸ch giao dÞch th−¬ng m¹i.
- Ch÷ ký trªn sÐc sÏ x¸c nhËn tÝnh x¸c thùc bëi v× ch¾c ch¾n
chØ cã ng−êi ký hîp ph¸p míi cã thÓ t¹o ®−îc ch÷ ký nμy.
- Trong tr−êng hîp cã sù gi¶ m¹o bÊt hîp ph¸p th× mét bªn
thø ba cã thÓ ®−îc gäi vμ ®Ó ph¸n xÐt tÝnh x¸c thùc.
- SÐc bÞ hñy ®Ó nã kh«ng thÓ sö dông l¹i.
- SÐc giÊy kh«ng thÓ thay ®æi ®−îc hay hÇu hÕt c¸c kiÓu thay
®æi ®Òu cã thÓ dÔ dμng ph¸t hiÖn ®−îc.
ViÖc giao dÞch th−¬ng m¹i b»ng sÐc phô thuéc vμo c¸c ®èi
t−îng x¸c ®Þnh ë d¹ng ®−îc m« t¶ tr−íc.
§èi víi c¸c giao dÞch trªn m¸y tÝnh kh«ng tån t¹i c¸c ®èi
t−îng x¸c ®Þnh (sÐc). Bëi vËy viÖc chÊp nhËn chi tr¶ b»ng m¸y
206 Gi¸o tr×nh MËt m· häc

tÝnh ®ßi hái mét m« h×nh kh¸c. Ta sÏ xem xÐt c¸c yªu cÇu trong
mét t×nh thÕ t−¬ng tù tõ phÝa nhμ b¨ng vμ phÝa ng−êi sö dông.
Sandy göi cho ng©n hμng cña m×nh mét th«ng b¸o cho phÐp
ng©n hμng chuyÓn 100 USD cho Tim. Ng©n hμng cña Sandy ph¶i
cã kh¶ n¨ng kiÓm tra vμ chøng tá ®−îc r»ng th«ng b¸o thùc sù
®Õn tõ Sandy nÕu sau ®ã c« ta kh«ng nhËn lμ m×nh ®· göi nã.
Ng©n hμng còng muèn biÕt r»ng toμn bé th«ng b¸o nμy lμ cña
Sandy vμ nã kh«ng thÓ söa ®æi. VÒ phÇn m×nh, Sandy còng muèn
ch¾c ch¾n r»ng ng©n hμng cña c« ta kh«ng thÓ gi¶ m¹o nh÷ng
th«ng b¸o ®ã lμ th«ng b¸o míi, kh«ng ph¶i lμ mét th«ng b¸o tr−íc
®ã ®· ®−îc sö dông l¹i vμ nã ph¶i kh«ng bÞ söa ®æi trong khi
truyÒn. ViÖc sö dông c¸c tÝn hiÖu ®iÖn tö thay cho giÊy sÏ lμm
phøc t¹p thªm giao dÞch nμy.
Ch÷ ký sè lμ mét thñ tôc t¹o ra mét hiÖu qu¶ t−¬ng tù nh−
ch÷ ký thùc. Nã lμ mét dÊu hiÖu mμ chØ cã ng−êi göi míi cã thÓ t¹o
ra nh−ng nh÷ng ng−êi kh¸c cã thÓ dÔ nhËn thÊy ®−îc r»ng nã lμ
cña ng−êi göi. Gièng nh− ch÷ ký thùc, ch÷ ký sè ®−îc dïng ®Ó x¸c
nhËn néi dung cña mét th«ng b¸o.
C¸c ch÷ ký ph¶i tháa m·n 2 ®iÒu kiÖn c¬ b¶n sau:
- Kh«ng thÓ gi¶ m¹o. NÕu P ký th«ng b¸o M b»ng ch÷ ký S(P,
M) th× kh«ng mét ai cã thÓ t¹o ®−îc cÆp [M, S(M, P )] .

- X¸c thùc. NÕu R nhËn ®−îc cÆp [M, S(M, P )] ®−îc coi lμ cña P
th× R cã thÓ kiÓm tra ®−îc r»ng ch÷ ký cã thùc sù lμ cña P hay
kh«ng? ChØ cã P míi cã thÓ t¹o ®−îc ch÷ ký nμy vμ ch÷ ký ®−îc
"g¾n chÆt" víi M. Hai yªu cÇu ®Çu tiªn nμy lμ nh÷ng trë ng¹i
chÝnh trong giao dÞch qua m¸y tÝnh. Hai tÝnh chÊt bæ trî sau lμ
Ch−¬ng 5: C¸c thñ tôc vµ c¸c chó ý trong thùc tÕ khi sö dông m· hãa 207

nh÷ng tÝnh chÊt mong muèn ®èi víi giao dÞch ®−îc hoμn tÊt nhê
ch÷ ký sè:
- Kh«ng thÓ thay ®æi. Sau khi ®−îc ph¸t M kh«ng thÓ thay
®æi bëi S, R hoÆc bëi mét kÎ thu trém nμo.
- Kh«ng thÓ sö dông l¹i. Mét th«ng b¸o tr−íc ®ã ®−îc ®−a ra
sÏ ngay lËp tøc bÞ R ph¸t hiÖn.
Tr−íc tiªn ta sÏ tr×nh bμy mét c¬ chÕ tháa m·n hai yªu cÇu
®Çu tiªn, sau ®ã ta sÏ thªm vμo ®ã gi¶i ph¸p ®Ó tháa m·n ®−îc c¸c
yªu cÇu kh¸c.

5.2.2.1. C¸c ch÷ ký sè khãa ®èi xøng


Víi hÖ thèng m· hãa riªng viÖc gi÷ bÝ mËt khãa sÏ ®¶m b¶o
tÝnh x¸c thùc cña th«ng b¸o còng nh− ®é mËt cña nã. NÕu Sandy
vμ ng©n hμng cã mét khãa m· hãa chung th× Sandy cã thÓ m· hãa
yªu cÇu chuyÓn tiÒn cña m×nh. Ng©n hμng cã thÓ tin vμo tÝnh x¸c
thùc cña th«ng b¸o v× kh«ng mét ai ngoμi Sandy cã khãa nμy.

b KÎ gi¶ m¹o A
Cã thÓ x¸c thùc
(b¶o vÖ cho B)

b A
Ch÷ ký sè

b B

b C
Kh«ng thÓ gi¶ m¹o

H×nh 5.10: Nh÷ng yªu cÇu ®èi víi ch÷ ký sè


Tuy nhiªn hÖ thèng m· víi khãa ®èi xøng truyÒn thèng
kh«ng tr¸nh khái ®−îc sù gi¶ m¹o: Ng©n hμng cã thÓ t¹o ra th«ng
208 Gi¸o tr×nh MËt m· häc

b¸o nh− vËy v× ng©n hμng còng cã khãa nμy. Bëi vËy ng©n hμng cã
thÓ tin ch¾c vμo tÝnh x¸c thùc cña th«ng b¸o, nh−ng ng©n hμng
kh«ng cã sù b¶o vÖ chèng l¹i sù chèi bá (kh«ng thõa nhËn viÖc göi
th«ng b¸o). V× c¶ Sandy vμ ng©n hμng ®Òu cã cïng mét khãa nªn
c¶ Sandy vμ ng©n hμng ®Òu cã thÓ t¹o mét th«ng b¸o bÊt kú. Khi
Sandy nhËn mét th«ng b¸o tõ ng©n hμng, c« ta tin vμo tÝnh x¸c
thùc cña nã nh−ng c« ta cã thÓ tin vμo bÊt cø mét ai kh¸c. X¸c
thùc nh−ng kh«ng thÓ lμ kh«ng chèi bá lμ mét ®Æc ®iÓm cña m·
hãa ®èi xøng. Víi c¸c hÖ mËt ®èi xøng nh− chuÈn m· d÷ liÖu
(DES) cÇn ph¶i cã mét träng tμi ®Ó tr¸nh khái viÖc gi¶ m¹o.
Sau ®©y lμ mét ph¸c th¶o cña thñ tôc ch÷ ký sè. Gi¶ sö S lμ
ng−êi göi (Sandy), A lμ träng tμi vμ R lμ ng−êi nhËn (Ng©n hμng).
S cã khãa KS chung víi A vμ R cã khãa KR chung víi A. Gi¶ sö S vμ
R ®· tháa thuËn tr−íc vÒ khu«n d¹ng cho mét ch÷ ký sè. S muèn
göi mét th«ng b¸o M cho R víi c¸c yªu cÇu phô trî lμ th«ng b¸o
nμy kh«ng thÓ gi¶ m¹o vÒ tÝnh x¸c thùc cña nã cã thÓ kiÓm tra ®−îc.
Nh− trªn h×nh 5.11, tr−íc tiªn S sÏ göi E(M, K S ) tíi träng tμi
A. A sÏ göi ra M b»ng c¸ch dïng KS. Sau khi kiÓm tra thÊy r»ng
th«ng b¸o nμy thùc sù lμ tõ S (v× träng tμi cã thÓ gi¶i nã b»ng
khãa KS cña Sandy), A sÏ göi E((M, S, E(M, K S )),K S ) tíi R. R sÏ thu
toμn bé th«ng b¸o M ®· ®−îc m· b»ng khãa KR ®Ó R cã thÓ gi¶i m·
vμ xö sù theo néi dung cña th«ng b¸o. R còng thu th«ng b¸o S cña
A, th«ng b¸o nμy nãi r»ng A chøng thùc lμ th«ng b¸o tíi tõ S. R
còng thu ®−îc E (M, K S ) , ®©y lμ th«ng b¸o mμ R kh«ng thÓ gi¶i m·
v× nã ®−îc m· b»ng khãa KS. Tuy nhiªn R sÏ gi÷ l¹i mét b¶n sao
cña M vμ E(M, K S ) phßng tr−êng hîp cã sù tranh chÊp sau nμy. ë
®©y ®iÒu kiÖn x¸c thùc ®−îc tháa m·n v× R tin t−ëng vμo träng tμi
Ch−¬ng 5: C¸c thñ tôc vµ c¸c chó ý trong thùc tÕ khi sö dông m· hãa 209

(lμ ng−êi nãi r»ng th«ng b¸o tíi tõ S). TÝnh chÊt kh«ng thÓ gi¶
m¹o còng ®−îc tháa m·n v× nÕu sau ®ã S tuyªn bè r»ng ®ã lμ b¶n
gi¶ m¹o th× S sÏ ®−a ra M vμ E(M, K S ) . Träng tμi cã thÓ m· hãa l¹i
M b»ng KS vμ x¸c nhËn r»ng chØ cã S (hoÆc träng tμi - ng−êi mμ ta
coi lμ trung thùc) míi cã thÓ t¹o ®−îc E(M, K S ) v× nã ®−îc m· b»ng
KS. Bëi vËy träng tμi cã thÓ chøng thùc r»ng S (hoÆc mét ai ®ã cã
khãa KS) ®· göi M.

Ng−êi göi S
(1) S göi M ®· ®−îc g¾n kÝn tíi träng tµi

KS
Träng tµi
M
(2) Träng tµi kh«i phôc M
l¹i b¶n tin râ M tõ S

KR

KS

M S M

(3) Träng tµi g¾n l¹i b¶n tin ®· ®−îc g¾n kÝn
cña M, tÝnh danh cña S vµ b¶n sao cña
b¶n râ M. Sau ®ã göi toµn bé tíi R
Ng−êi nhËn S

H×nh 5.11: Ch÷ ký sè khãa ®èi xøng cã träng tµi

Thñ tôc nμy sÏ t¹o ra mét hÖ thèng thùc sù m¹nh h¬n yªu
cÇu, th«ng b¸o ®· ®−îc ph¸t ë d¹ng ®· m· hãa ngay c¶ khi kh«ng
cÇn ph¶i bÝ mËt trong mäi t×nh huèng. Nh− ta ®· thÊy, mét sè
thuËt to¸n m· hãa tiªu tèn kh¸ nhiÒu thêi gian vμ sö dông nã sÏ
210 Gi¸o tr×nh MËt m· häc

lμm gi¶m tèc ®é truyÒn th«ng b¸o. Bëi vËy ta muèn cã mét thñ tôc
kh¸c kh«ng cÇn ph¶i m· hãa toμn bé th«ng b¸o.

5.2.2.2. C¸c ch÷ ký sè kh«ng cã m· hãa


NÕu S vμ R kh«ng quan t©m tíi ®é mËt th× hä cã thÓ tháa
thuËn dïng hμm niªm phong mËt m· nh− mét ch÷ ký. Niªm
phong lμ mét con tem, con dÊu hoÆc mét nh·n g¾n cè ®Þnh vμo t−
liÖu ®Ó chøng tá tÝnh x¸c thùc cña nã. Hμm niªm phong lμ mét
hμm to¸n häc chÞu t¸c ®éng bëi mäi bit ®Çu vμo cña nã. VÝ dô, c¸c
byte cña mét th«ng b¸o cã thÓ ®−îc dïng nh− c¸c sè vμ tæng cña
tÊt c¶ c¸c byte cña mét th«ng b¸o cã thÓ tÝnh to¸n ®−îc. Tæng nμy
lμ duy nhÊt ®èi víi mét th«ng b¸o v× bÊt kú mét sù thay ®æi nμo
cña th«ng b¸o còng ®Òu g©y nªn sù thay ®æi cña tæng nμy. Hμm
niªm phong cã thÓ lμ mét hμm b¨m hoÆc mét hμm m· hãa mét
chiÒu, hoÆc nã còng cã thÓ lμ mét hμm kh¸c phô thuéc vμo toμn bé
®Çu vμo vμ dÔ tÝnh to¸n.
Gi¶ sö S vμ R ®Òu ®¨ng ký mét hμm niªm phong cña m×nh
víi träng tμi: gi¶ sö f S vμ f R lμ hai hμm nμy. Sau ®ã, S göi M vμ
fS (M ) tíi A.A còng tÝnh fS (M ) theo b¶n sao cña M ®· nhËn ®−îc
tõ S . NÕu hai gi¸ trÞ nμy cña f S (M ) trïng nhau th× th«ng b¸o tõ
S ®−îc coi lμ x¸c thùc. Sau ®ã, A göi M, S, fS (M ) vμ f R (M, S) cho
R.R kh«ng thÓ hiÓu ®−îc fS (M ) , nh−ng R sÏ gi÷ l¹i nã lμm b»ng
chøng b¸o r»ng S ®· göi th«ng b¸o M. S sÏ kiÓm tra tÝnh ®óng
®¾n cña fR (M, S) ®Ó biÕt tÝnh x¸c thùc cña th«ng b¸o.

5.2.2.3. Ng¨n chÆn sö dông l¹i hoÆc biÕn ®æi


C¶ hai gi¶i ph¸p trªn ®Òu tháa m·n c¸c ®ßi hái vÒ tÝnh x¸c
thùc vμ chèng gi¶ m¹o. Bëi vËy, chóng ®Òu lμ c¸c thñ tôc ch÷ ký
Ch−¬ng 5: C¸c thñ tôc vµ c¸c chó ý trong thùc tÕ khi sö dông m· hãa 211

sè chÊp nhËn ®−îc. Tuy nhiªn, ta cßn muèn tr¸nh ®−îc viÖc sö
dông l¹i hoÆc biÕn ®æi mét th«ng b¸o cò. MÆc dï R kh«ng thÓ t¹o
c¸c th«ng b¸o míi b»ng K S hoÆc f S nh−ng bªn thu cã thÓ sö dông
l¹i c¸c th«ng b¸o cò. VÝ dô, bªn thu cã thÓ l−u lÖnh cò tr¶ cho Tim
100 USD hμng th¸ng. H¬n n÷a, biÕt kü thuËt m· hãa nh−ng
kh«ng biÕt khãa bªn thu vÉn cã thÓ c¾t c¸c mÈu tõ c¸c th«ng b¸o
cò vμ d¸n chóng víi nhau ®Ó t¹o nªn mét th«ng b¸o míi. ViÖc
kiÓm tra giÊy tê sÏ gi¶i quyÕt vÊn ®Ò nμy nh− sau: ng©n hμng sÏ
®ãng dÊu huû sÐc vμ tr¶ nã l¹i cho ng−êi göi ®Ó ng−êi göi biÕt
kh«ng thÓ sö dông l¹i sÐc nμy. Ta cÇn cã mét c¸ch ®Ó t¹o mét ch÷
ký m¸y tÝnh tù huû t−¬ng tù ®Ó kh«ng thÓ sö dông l¹i ®−îc.
§Ó minh chøng viÖc sö dông mét th«ng b¸o, ta ph¶i t¹o mét
phÇn cña ch÷ ký vμo mét nh·n thêi gian. VÝ dô, nÕu th«ng b¸o cña
Sandy cã ghi ngμy th¸ng vμ thêi gian göi th× ng©n hμng kh«ng thÓ
t¹o l¹i th«ng b¸o t−¬ng tù vμo tuÇn sau mμ kh«ng bÞ Sandy vμ
nh÷ng ng−êi kh¸c ph¸t hiÖn ra sù gi¶ m¹o. Nh·n thêi gian kh«ng
ph¶i lμ thêi gian vμ ngμy th¸ng theo nghÜa ®en mμ lμ mét m· bÊt
kú kh«ng lÆp l¹i, ch¼ng h¹n nh− t¨ng sè lo¹t. §iÒu nμy sÏ g©y khã
kh¨n cho viÖc t¹o l¹i.
§Ó tr¸nh viÖc c¾t th«ng b¸o thμnh nhiÒu mÈu vμ sö dông l¹i
mét mÈu nμo ®ã, Sandy cã thÓ lμm cho mçi mÈu ®Òu phô thuéc
nh·n thêi gian. VÝ dô, víi DES (thuËt to¸n nμy sÏ m· c¸c khèi v¨n
b¶n 64 bit thμnh mét ®Çu ra 64 bit). Sandy cã thÓ m· thêi gian vμ
ngμy th¸ng ë 8 bit ®Çu cña mçi khèi vμ chØ ®Ó 56 bit lμm néi dung
cña th«ng b¸o. V× tÊt c¶ 64 bit cña mçi khèi ra ®Òu phô thuéc vμo
toμn bé 64 bit vμo nªn ng©n hμng kh«ng thÓ g¾n 56 bit th«ng b¸o
víi mét nh·n thêi gian 8 bit kh¸c. Qu¸ tr×nh nμy ®−îc chØ ra trªn
212 Gi¸o tr×nh MËt m· häc

h×nh 5.12. Nh− sÏ thÊy ë cuèi ch−¬ng, chÕ ®é liªn kÕt khèi m· cña
DES còng lμ mét ph−¬ng ph¸p kh¸c nh»m tr¸nh viÖc sö dông l¹i
mét khèi cña mét th«ng b¸o vμo mét th«ng b¸o kh¸c.

ZM
1
4
ZM

ZM
2
3
ZM

ZM
2

3
ZM

ZM
A
M

4
1

S
ZM
M

S
ZM
M

1
S

ZM
R

2
ZM
3
ZM
4
R

H×nh 5.12: Ch÷ ký sè khãa ®èi xøng


Nh÷ng gi¶i ph¸p trªn lμ kh¸ phøc t¹p. Chóng yªu cÇu ph¶i
lu«n cã mét träng tμi trong mçi giao dÞch vμ ®Ó ®¶m b¶o bÝ mËt th×
th«ng b¸o ph¶i ®−îc m· hai lÇn. RÊt may lμ thñ tôc khãa c«ng
khai sÏ cho ta t¹o mét ph−¬ng ph¸p ®¬n gi¶n h¬n.

5.2.2.4. Thñ tôc khãa c«ng khai


C¸c hÖ thèng khãa c«ng khai lμ c¸c hÖ thèng thÝch hîp nhÊt
cho ch÷ ký sè. §Ó ®¬n gi¶n vÒ ký hiÖu, ta gi¶ sö r»ng E(M, KU) lμ
m· hãa khãa c«ng khai cho ng−êi dïng U vμ phÐp biÕn ®æi khãa
riªng cho U ®−îc ký hiÖu lμ D(M, K U ) . Ta còng cã thÓ coi E lμ
phÐp biÕn ®æi riªng (v× chØ cã U míi cã thÓ gi¶i m· nã) vμ coi D lμ
mét phÐp biÕn ®æi x¸c thùc (v× chØ cã U míi cã thÓ t¹o ra nã). Tuy
nhiªn, cÇn nhí r»ng víi mét sè thuËt to¸n kh«ng ®èi xøng (nh−
RSA), D vμ A lμ giao ho¸n. Bëi vËy:

D(E(M, − ), − ) = M = E(D(M, − ), − )
Ch−¬ng 5: C¸c thñ tôc vµ c¸c chó ý trong thùc tÕ khi sö dông m· hãa 213

NÕu S muèn göi M cho R th× S sÏ dïng phÐp biÕn ®æi x¸c
thùc ®Ó t¹o D(M, K S ) . Sau ®ã S göi D(M, K S ) cho R . R sÏ gi¶i
m· th«ng b¸o b»ng phÐp biÕn ®æi khãa c«ng khai cña S (tÝnh
E(D(M, K S ), K S ) = M [xem h×nh 5.13]). V× chØ cã S míi cã thÓ t¹o
ra mét th«ng b¸o cã nghÜa d−íi d¹ng E (−, K S ) nªn th«ng b¸o nμy
ph¶i thùc sù lμ tõ S . PhÐp kiÓm tra nμy tháa m·n yªu cÇu vÒ tÝnh
x¸c thùc.
R sÏ l−u gi÷ D(M, K S ) . NÕu sau ®ã S kh¼ng ®Þnh r»ng
th«ng b¸o nμy lμ gi¶ m¹o (kh«ng ph¶i tõ S) th× R chØ cÇn ®−a ra
M vμ E (M, K S ) . BÊt kú ai còng cã thÓ kiÓm tra ®−îc r»ng v×
D(M, K S ) ®−îc chuyÓn thμnh M nhê dïng phÐp biÕn ®æi khãa
c«ng khai cña S nh−ng chØ cã S míi cã thÓ t¹o ra D(M, K S ) nªn

D(M, K S ) ph¶i lμ tõ S. PhÐp kiÓm tra nμy tháa m·n yªu cÇu
kh«ng thÓ gi¶ m¹o.
Gi¶i ph¸p khãa c«ng khai hiÓn nhiªn lμ Ýt phøc t¹p h¬n
nhiÒu so víi gi¶i ph¸p khãa riªng. Mét nh−îc ®iÓm cña gi¶i ph¸p
nμy lμ: th«ng b¸o lμ x¸c thùc nh−ng kh«ng ®¶m b¶o tÝnh bÝ mËt.
Tøc lμ, bÊt cø ai biÕt khãa c«ng khai cña S ®Òu cã thÓ dÞch ®−îc
th«ng b¸o nμy. Ta cã thÓ kh¾c phôc nh−îc ®iÓm nμy b»ng c¸ch m·
hãa 2 lÇn.
V× S cÇn ph¶i göi M cho R nªn tÝnh x¸c thùc cã thÓ ®−îc
®¶m b¶o b»ng c¸ch dïng khãa riªng cña S, cßn tÝnh bÝ mËt cã thÓ
®−îc ®¶m b¶o b»ng khãa c«ng khai cña R. VÝ dô, S cã thÓ göi
E(D(M, K S ), K R ) tíi R (nh− ®−îc chØ ra trªn h×nh 5.13). V× chØ cã
S míi cã thÓ t¹o ra D(−, K S ) nªn th«ng b¸o nμy ph¶i tõ S. Nh−ng
214 Gi¸o tr×nh MËt m· häc

v× chØ cã R míi cã thÓ gi¶i m· cho E (−, K R ) nªn néi dung cña
th«ng b¸o vÉn ®−îc gi÷ bÝ mËt cho tíi khi R gi¶i nã. Nh− vËy, víi
hai phÐp m· hãa, ta sÏ cã mét thñ tôc ®¶m b¶o c¶ tÝnh riªng t− vμ
tÝnh x¸c thùc.
D : KS
§Ó x¸c thùc kh«ng - Gi¶i ra
M - L−u l¹i mét b¶n sao ®Ó D : KS
thÓ gi¶ m¹o
S R tr¶ lêi cho c¸c tranh chÊp
trong t−¬ng lai M

H×nh 5.13: Ch÷ ký sè kh«ng ®èi xøng

- Gi¶i m· D : KS
(b¶o mËt) M
D : KS
§Ó x¸c thùc kh«ng - Gi¶i m·
M
M thÓ gi¶ m¹o (x¸c thùc)
- L−u mét b¶n sao ®Ó
D : KS
S R tr¶ lêi cho nh÷ng tranh
chÊp trong t−¬ng lai M

H×nh 5.14: Sö dông hai phÐp m· hãa trong ch÷ ký sè kh«ng ®èi xøng
Nh− ®· nªu ë trªn, c¸c nh·n thêi gian cã thÓ ®−îc dïng ®Ó
®¶m b¶o chèng l¹i viÖc sö dông l¹i. Mét hμm niªm phong còng cã
thÓ kh¾c phôc ®−îc viÖc thay thÕ c¸c mÈu trong b¶n m·.

5.2.3. Giao kÌo vÒ khãa

Gi¶ sö b¹n lμm mÊt ch×a khãa nhμ.Víi ®«i chót bÊt tiÖn, b¹n
cã thÓ gäi mét thî khãa ®Ó më khãa cho b¹n vμ thËm chÝ cã thÓ
lμm cho b¹n mét ch×a khãa kh¸c. B¹n cÇn ph¶i thuyÕt phôc ng−êi
thî khãa ®Ó b¹n vμo nhμ. Tuy nhiªn, nÕu b¹n cã mét giÊy tê x¸c
nhËn nμo ®ã, hoÆc nh÷ng ng−êi l¸ng giÒng ®¶m b¶o cho thÈm
quyÒn cña b¹n th× b¹n kh«ng cÇn ph¶i thuyÕt phôc ng−êi thî khãa.
Ch−¬ng 5: C¸c thñ tôc vµ c¸c chó ý trong thùc tÕ khi sö dông m· hãa 215

NÕu b¹n mÊt khãa cña kÐt b¹c th× vÊn ®Ò sÏ phøc t¹p h¬n ®«i
chót vμ ng−êi thî khãa ph¶i mÊt nhiÒu thêi gian h¬n. Tuy nhiªn,
trong mét thêi gian t−¬ng ®èi ng¾n, b¹n vÉn cã thÓ më ®−îc. Së dÜ
nh− vËy v× c¸c lo¹i khãa nhμ vμ khãa kÐt b¹c ®−îc thiÕt kÕ chØ ®Ó
chèng l¹i c¸c kiÓu tÊn c«ng trong mét kho¶ng thêi gian ng¾n: mét
hoÆc tèi ®a hai ngμy. An toμn vÒ vËt lý ®ãng mét phÇn vai trß
quan träng trong viÖc ®¶m b¶o an toμn cho c¸c ng«i nhμ vμ c¸c
c«ng së. Ta mong muèn cã thÓ ng¨n chÆn mét cuéc tÊn c«ng kÐo
dμi trong nhiÒu giê.
B¶n m· kh«ng cã tÝnh an toμn vÒ mÆt vËt lý. Trªn thùc tÕ, nã
®−îc dïng ®Ó liªn l¹c trªn c¸c kªnh kh«ng an toμn, n¬i mμ c¸c
th¸m m· cã thÓ thu ®−îc c¸c b¶n m· vμ ph©n tÝch nã trong nhiÒu
giê, nhiÒu ngμy, nhiÒu tuÇn vμ thËm chÝ lμ hμng n¨m. Bëi vËy, c¸c
thuËt to¸n m· hãa ph¶i ®ñ m¹nh ®Ó chèng chäi ®−îc víi c¸c kiÓu
tÊn c«ng. Do ®ã, kh«ng cã mét "ng−êi thî khãa" nμo cã thÓ t×m
®−îc c¸c khãa bÞ mÊt hoÆc bÞ quªn. NÕu b¹n lμm viÖc trong mét
c«ng ty vμ b¹n ®· m· hãa c¸c tÖp (file) cña m×nh th× vÉn cã ng−êi
cã nhu cÇu chÝnh ®¸ng ®Ó truy nhËp vμo khi b¹n rêi khái c¬ quan
trong mét chuyÕn c«ng t¸c hay trong c¸c ngμy nghØ, hoÆc khi b¹n
èm hay khi b¹n kh«ng cßn ë c«ng ty n÷a. B¹n còng cã thÓ quªn
mÊt khãa cña b¹n. §©y lμ mét trong c¸c −u ®iÓm cña giao kÌo
khãa vμ t¹i sao nã l¹i thÝch hîp trong nh÷ng t×nh huèng nh− vËy:
giao kÌo khãa sÏ cung cÊp mét ph−¬ng tiÖn ®Ó ®¶m b¶o an toμn sè
liÖu ë mét møc ®é thÝch hîp nh−ng vÉn cho phÐp nh÷ng ng−êi
dïng hîp ph¸p kh¸c truy nhËp vμo.

5.2.3.1. Giao kÌo khãa Clipper


Quan ®iÓm Clipper lμ mét vÝ dô vÒ mét thñ tôc giao kÌo
khãa. B¶n chÊt cña thuËt to¸n nμy lμ chia mét khãa thμnh n mÈu
216 Gi¸o tr×nh MËt m· häc

råi giao cho n ®èi t−îng sao cho k ng−êi nμo trong sè nμy ®Òu cã
thÓ gi¶i m· nh−ng kh«ng cã (k − 1) ng−êi nμo cã thÓ gi¶i m· ®−îc.
Thñ tôc nμy ®−îc gäi lμ thñ tôc k trong n. §èi víi thñ tôc Clipper,
k = n = 2 (Tr−êng hîp tæng qu¸t h¬n khi n > 2 ®· ®−îc Shamir
nghiªn cøu, «ng ®· ®−a ra mét gi¶i ph¸p dùa trªn viÖc t×m c¸c
nghiÖm cña mét ®a thøc bËc n. Tuy nhiªn, Blakley ®· ®éc lËp gi¶i
quyÕt vÊn ®Ò trªn theo mét ph−¬ng ph¸p kh¸c; ch−¬ng 9 trong [9]
cña Simon ®· cã mét tæng quan kh¸ hay vÒ c¸c s¬ ®å kh¸c).
Nh÷ng yªu cÇu ®èi víi mét thñ tôc giao kÌo khãa bao gåm:
- Liªn l¹c ph¶i x¸c ®Þnh ®−îc nguån m· hãa cña nã.

- TÝnh danh chØ cho biÕt ®¬n vÞ m· hãa mμ kh«ng ®Ó lé khãa


m· hãa riªng.

- Cã thÓ phôc håi ®−îc khãa nhê thñ tôc k trong n.


Thñ tôc m· hãa Clipper tháa m·n ®−îc c¸c yªu cÇu trªn. Víi
thñ tôc Clipper, ®¬n vÞ m· hãa xuÊt ph¸t sÏ t¹o ngÉu nhiªn mét
khãa phiªn 80 bit. Nã sÏ m· hãa khãa 80 bit nμy b»ng mét khãa
duy nhÊt cña mçi ®¬n vÞ vËt lý cô thÓ cã g¾n sè lo¹t ®èi víi mçi
®¬n vÞ vËt lý vμ m· hãa c¶ hai b»ng mét khãa ®−îc chia sÎ bëi tÊt
c¶ c¸c thiÕt bÞ t−¬ng tù; nhãm ®−îc m· hãa nμy ®−îc gäi lμ LEAF
(nhãm truy nhËp hîp lÖ).

Nã còng sö dông thñ tôc trao ®æi khãa riªng cña m×nh ®Ó
chuyÓn khãa nμy tíi n¬i thu. TÊt c¶ c¸c ®¬n vÞ Clipper ®· ®−îc lËp
tr×nh tr−íc tõ nhμ m¸y víi mét khãa m· hãa ®èi xøng ®−îc chia xÎ
(gäi lμ khãa gia ®×nh). Clipper sö dông mét thñ tôc trao ®æi khãa 3
giai ®o¹n ®Ó trao ®æi khãa. Bμi to¸n nμy cã nh÷ng ®ßi hái sau:
- C¸c khãa m· hãa chØ ®−îc ph¸t ë d¹ng ®· m· hãa.
Ch−¬ng 5: C¸c thñ tôc vµ c¸c chó ý trong thùc tÕ khi sö dông m· hãa 217

- ViÖc trao ®æi gi÷a c¸c ®¬n vÞ Clipper ph¶i chèng ®−îc viÖc
sö dông l¹i.
- Hai ®¬n vÞ Clipper trong trao ®æi ph¶i x¸c thùc nhau.
ThuËt to¸n cÇn 3 b−íc ®Ó trao ®æi khãa céng thªm 4 b−íc ®Ó
x¸c thùc nhau. ThuËt to¸n nμy do Bellovin vμ Merritt ®−a ra [10].
Bªn göi S vμ bªn nhËn R chia sÎ mét mËt khÈu chung P, ngoμi ra
chóng cã mét thuËt to¸n m· hãa kh«ng ®èi xøng E vμ mét thuËt
to¸n m· hãa ®èi xøng chung Y.
1. S t¹o mét khãa c«ng khai ngÉu nhiªn E S . S m· hãa E S
b»ng YP vμ göi YP (E S ) cho R .

2. R biÕt P vμ dïng nã ®Ó gi¶i m· vμ nhËn ®−îc E S . R sÏ


t¹o mét khãa phiªn ngÉu nhiªn X . R chuyÓn X cho S b»ng c¸ch
m· hãa kÐp b»ng YP vμ E S : R göi E S (YP (X )) .

3. S dïng E S vμ P ®Ó thu ®−îc X . Lóc nμy, viÖc trao ®æi


khãa ®· hoμn tÊt. B©y giê, S vμ R ph¶i ®¶m b¶o r»ng hä ®· cã
khãa míi X ®Ó sö dông.
4. S t¹o mét x©u ngÉu nhiªn M vμ göi E X (M ) cho R.

5. R gi¶i m· th«ng b¸o nμy ®Ó thu ®−îc M.R chän mét x©u
ngÉu nhiªn N kh¸c vμ chuyÓn tr¶ l¹i cho S x©u ghÐp ®· ®−îc m·
hãa b»ng khãa X : E X ((M, N )) .

6. S gi¶i m· th«ng b¸o nμy ®Ó thu ®−îc (M, N). NÕu phÇn
®Çu M chÝnh lμ x©u mμ S ®· göi th× R ®· ®−îc x¸c thùc ®èi víi
S . S göi tr¶ E X (N ) cho R .
7. NÕu R thu ®−îc N ®· göi ë b−íc 4 th× S ®· ®−îc x¸c thùc
®èi víi R . Sau khi Clipper ®· hoμn thμnh viÖc trao ®æi khãa, nã
b¾t ®Çu l−u chuyÓn th«ng b¸o víi bªn thu (mçi th«ng b¸o cã kÌm
218 Gi¸o tr×nh MËt m· häc

theo LEAF). Nh− ®−îc m« t¶ trªn h×nh 5.15, mét th«ng b¸o cã
kÌm theo LEAF sÏ cho phÐp bªn nhËn hîp thøc thu ®−îc khãa
®−îc dïng ®Ó m· hãa.
B»ng thñ tôc nμy, c¸c ®èi t¸c hîp thøc thu chÆn th«ng b¸o cã
thÓ dïng khãa gia ®×nh F ®Ó gi¶i m· ®o¹n cuèi cïng cña
E ((E (K , U ) + ID), F) vμ thu ®−îc ID lμ sè cña thiÕt bÞ ®· t¹o ra
khãa m· hãa th«ng b¸o. Hä cã thÓ ®Ö tr×nh lªn mét "toμ ¸n" ®Ó
nhËn ®−îc U mμ tõ nã, hä cã thÓ thu ®−îc K tõ E(K, U).

Ng−êi göi: chän khãa phiªn K

K
: göi tíi ng−êi nhËn b»ng mét thñ tôc trao ®æi khãa
K K
: t¹o th«ng b¸o

: t¹o LEAF tõ khãa vµ ID cña thiÕt bÞ K ID

: göi th«ng b¸o vµ LEAF M K ID M K ID


®−îc m· b»ng khãa
K
U
F

H×nh 5.15: Trao ®æi th«ng b¸o Clipper

Tuy nhiªn, thñ tôc nμy cã mét sè ®iÓm kh«ng mong muèn.
Tr−íc hÕt lμ, mét khi c¸c ®èi t¸c hîp thøc ®· nhËn ®−îc U tõ "toμ
¸n" th× gi¸ trÞ nμy sÏ cho phÐp hä truy nhËp tíi mäi th«ng b¸o ®·
®−îc göi bëi thiÕt bÞ nμy (trong qu¸ khø hoÆc trong t−¬ng lai),
thËm chÝ c¶ khi thiÕt bÞ nμy ®· ®−îc mua hoÆc b¸n mét c¸ch hîp
ph¸p cho mét ng−êi kh¸c. Còng vËy, mét khi c¸c ®èi t¸c hîp thøc
®· cã U th× hä cã thÓ t¹o c¸c th«ng b¸o mang danh ng−êi göi, bëi
v× E lμ mét thuËt to¸n kh«ng ®èi xøng. Tuy nhiªn, nh÷ng ng−êi
sö dông cã thÓ tr¸nh ®−îc t×nh huèng nμy nÕu dïng m· hãa béi:
Ch−¬ng 5: C¸c thñ tôc vµ c¸c chó ý trong thùc tÕ khi sö dông m· hãa 219

c¸c ®èi t¸c hîp thøc chØ cã thÓ gi¶i m· E (M, K ) ®Ó t×m ra c¸i mμ
ng−êi göi ®· m· (lμ M ) tr−íc khi chuyÓn nã tíi Clipper ®Ó m·.
Tøc lμ, M ph¶i lμ E ' (M, K ') ®èi víi mét phÐp m· hãa E' kh¸c
hoÆc mét khãa K ' kh¸c. CÇn chó ý r»ng, viÖc ®Æt phÐp m· hãa
Skipjack chØ ë trong phÇn cøng nh»m chèng tr¶ cã hiÖu qu¶ viÖc
th¸m m· b»ng øng dông mËt m·.

5.2.3.2. Giao kÌo khãa b»ng phÇn mÒm


C¸c øng dông mËt m· b»ng phÇn mÒm cã c¶ −u vμ nh−îc
®iÓm so víi øng dông phÇn cøng. Chóng dÔ söa ®æi hoÆc dÔ lμm
phï hîp theo c¸c yªu cÇu cña c¸c øng dông riªng biÖt. Chóng cã
thÓ ®−îc g¾n vμo hoÆc ®−îc tÝch hîp vμo c¸c øng dông cã thÓ ®−îc
cμi ®Æt hoÆc ch¹y trªn mét m¸y tÝnh bÊt kú. C¸c sai sãt nÕu cã cã
thÓ dÔ dμng ®−îc söa vμ chi phÝ ®Ó söa kh«ng ®¸ng kÓ. Tuy nhiªn,
kh¶ n¨ng thay ®−îc còng lμ mét bÊt lîi lín nhÊt: chóng cã thÓ bÞ
thay ®æi bëi mét sù cè hoÆc bëi mét ch−¬ng tr×nh ¸c ý nμo ®ã n»m
trªn ph−¬ng tiÖn l−u tr÷ chóng, trªn bé nhí hoÆc khi thùc hiÖn
ch−¬ng tr×nh. Ta còng ®· tõng thÊy r»ng chØ mét thay ®æi rÊt nhá,
thËm chÝ chØ lμ 1 bit còng cã thÓ g©y nªn hËu qu¶ nghiªm träng
®èi víi søc m¹nh cña thuËt to¸n mËt m·. Tuy vËy, tÝnh mÒm dÎo
cña phÇn mÒm vÉn lμm cho nã cã thÓ sö dông ®−îc trong mét sè
t×nh huèng.
ViÖc m· hãa cã giao kÌo khãa dùa trªn phÇn mÒm còng ho¹t
®éng t−¬ng tù nh− giao kÌo khãa Clipper. Mét c¬ quan giao kÌo sÏ
lËp tr×nh tr−íc mét øng dông mËt m· (phÇn mÒm) víi mét khãa
gia ®×nh vμ mét ID cña thiÕt bÞ. øng dông nμy sÏ ®−îc b¸n cho mét
nhμ chÕ t¹o phÇn mÒm ®Ó g¾n nã vμo mét s¶n phÈm phÇn mÒm.
Mçi b¶n sao cña phÇn mÒm (t−¬ng tù nh− ®èi víi mét thiÕt bÞ
phÇn cøng riªng) ph¶i cã ID riªng cña nã. S¶n phÈm sÏ nhËn vμo
220 Gi¸o tr×nh MËt m· häc

b¶n râ vμ mét khãa m· hãa, t¹o ra b¶n m· vμ mét LEAF. PhÇn


mÒm thu sÏ kiÓm tra sù tån t¹i cña LEAF vμ gi¶i m·. Ng−êi ta
thÊy r»ng sö dông m· hãa khãa c«ng khai trong thñ tôc giao kÌo
khãa lμ thÝch hîp h¬n c¶. Denning vμ Branstad [11] ®· tr×nh bμy
mét sè kÕt qu¶ nghiªn cøu lý thó vÒ c¸c thñ tôc giao kÌo khãa
b»ng phÇn mÒm.

5.2.4. Ch¬i bμi qua th− tÝn


Trong phÇn nμy, ta sÏ xem xÐt mét t×nh huèng t−¬ng tù khi
cÇn ®¶m b¶o c¶ bÝ mËt lÉn x¸c thùc. Ta xÐt mét trß ch¬i bμi mμ
nh÷ng ng−êi tham gia kh«ng nh×n thÊy nhau (ch¼ng h¹n, ch¬i bμi
qua th− tÝn). Ngay c¶ khi viÖc ch¬i bμi qua th− tÝn kh«ng ph¶i lμ
mét c«ng viÖc quan träng th× thñ tôc ch¬i vÉn cã nh÷ng øng dông
quan träng. PhÇn khã kh¨n nhÊt cña viÖc ch¬i bμi qua th− tÝn lμ
viÖc ®¶m b¶o r»ng c¸c qu©n bμi ph¶i ®−îc chia vμ ph©n phèi mét
c¸ch c«ng b»ng. Trong phÇn sau, ta sÏ sö dông thñ tôc nμy ®Ó
ph©n phèi c¸c khãa m· hãa, trong tr−êng hîp nμy, c¸c qu©n bμi
chÝnh lμ c¸c khãa. ViÖc ®Æt qu©n bμi sÏ dÔ h¬n cho viÖc gi¶i thÝch
thñ tôc.
Gi¶ sö Ann vμ Bill quyÕt ®Þnh ch¬i bμi qua th− tÝn. Ann lμ
ng−êi chia vμ xãc c¸c qu©n bμi. (§Ó ®¬n gi¶n, gi¶ sö chØ cã 10 qu©n
bμi vμ mçi bªn ch¬i bμi nhËn 5 qu©n. Thñ tôc nμy cã thÓ dÔ dμng
më réng cho bé bμi truyÒn thèng 52 qu©n).

5.2.4.1. Thñ tôc ph©n phèi


§Ó x¸o bμi, Ann sÏ ®Æt chóng theo mét thø tù tuú ý vμ ®Æt
mçi qu©n bμi vμo mét hép kh«ng ®¸nh dÊu s½n råi khãa tõng hép
l¹i. Sau ®ã, Ann sÏ göi 10 hép cho Bill. V× c¸c hép ®Òu nh− nhau
nªn Bill sÏ chän 5 hép vμ ®Æt thªm mét khãa thø hai vμo c¸c hép
nμy. 5 hép nμy lμ lùa chän cña Bill vμ Bill kh«ng ®éng ch¹m ®Õn 5
Ch−¬ng 5: C¸c thñ tôc vµ c¸c chó ý trong thùc tÕ khi sö dông m· hãa 221

hép cßn l¹i (chØ cã khãa cña Ann trªn ®ã). Sau ®ã, Bill sÏ göi tr¶
l¹i Ann c¶ 10 hép.
Theo c¸c hép ®· nhËn, Ann cã thÓ x¸c ®Þnh ®−îc Bill cã xö sù
®óng ®¾n kh«ng: anh ta ®· chØ chän 5 hép vμ kh«ng ®ông ch¹m tíi
c¸c qu©n bμi (v× c¸c khãa cña Ann vÉn cßn nguyªn). Ann sÏ më c¶
10 khãa cña m×nh. Khi ®ã, Ann cã 5 qu©n bμi mμ Bill kh«ng ®éng
tíi (®©y lμ nh÷ng qu©n bμi mμ Ann ®· chän).
Ann sÏ göi tr¶ 5 hép cßn l¹i vÉn cßn khãa cña Bill. Bill sÏ më
khãa cho 5 hép nμy. Ann kh«ng biÕt c¸c qu©n bμi nμy v× Ann
kh«ng ®−îc më c¸c khãa cña Bill. Bill (tin vμo sù c«ng minh cña
viÖc x¸o bμi) sÏ tiÕp tôc ch¬i.
Qu¸ tr×nh trªn ®−îc m« t¶ trªn h×nh 5.16.

A 2 3 4 5 6 7 8 9 10 J Q K A 2 3 4
♥ ♥ ♥ ♥ ♣ ♣ ♣ ♣

A A
A

A
a) Ann giÊu 10 qu©n bµi trong 10 hép
B

A A b) Bill thªm khãa cña m×nh vµo 5 hép

6♥

B c) Ann më khãa cña m×nh vµ më 5 hép

H×nh 5.16: Thñ tôc ch¬i bµi


222 Gi¸o tr×nh MËt m· häc

5.2.4.2. ¸p dông khãa ®èi xøng

Thñ tôc nμy lμm viÖc dÔ dμng víi c¸c hÖ thèng m· hãa truyÒn
thèng. §Ó kh¸i qu¸t hãa, ta sö dông thuËt ng÷ "th«ng b¸o" thay
cho "qu©n bμi" trong thñ tôc. Thñ tôc nμy ®−îc m« t¶ trªn h×nh 5.17.
Q 3 K 10 K
E(CJ,KA) ♠ ♥ ♠ ♠ ♥
K 3 A J J
♣ ♠ ♠ ♣

E(CJ,KA)

E(-,K B)

E(E(CJ ,KA ),KB)

Q 3 K 10 K
♠ ♥ ♠ ♠ ♥
K 3 A J J
E(CJ,KB)
♣ ♠ ♠ ♣
Q A K 10 J
♠ ♠ ♠ ♠ ♠

H×nh 5.17: Thñ tôc ch¬i bµi víi phÐp m· hãa


Ann sÏ "x¸o" c¸c th«ng b¸o vμ m· hãa chóng b»ng khãa KA
(khãa cña Ann). Sau ®ã, Ann sÏ göi 10 th«ng b¸o ®· m· nμy cho
Bill. Khi nhËn ®−îc chóng, Bill sÏ chän ngÉu nhiªn 5 c¸i. Bill
kh«ng thÓ x¸c ®Þnh ®−îc c¸c th«ng b¸o nμy v× chóng ®· ®−îc m·
b»ng khãa cña Ann. Bill sÏ göi tr¶ l¹i cho Ann nh÷ng th«ng b¸o
kh«ng ®−îc chän.
Bill sÏ nhËn 5 th«ng b¸o cßn l¹i (ta ký hiÖu chóng lμ
B1 , K B5 ). Bill sÏ göi E(B1 , K B ), K, E(B 5 , K B ) cho Ann. Chó ý r»ng
Ch−¬ng 5: C¸c thñ tôc vµ c¸c chó ý trong thùc tÕ khi sö dông m· hãa 223

Ann ®· göi c¸c th«ng b¸o ®· m· cho Bill, c¸c Bi , chÝnh lμ


E(c j , K A ) (th«ng b¸o c j ®−îc m· b»ng khãa cña Ann). Bëi vËy,

trªn thùc tÕ Bill ®· göi E(E(c j , K A ), K B ) cho Ann. PhÐp m· hãa víi

khãa cña Bill sÏ t¹o nªn mét khãa kÐp trªn c¸c th«ng b¸o nμy ®Ó
®¶m b¶o r»ng Bill sÏ nhËn trë l¹i nh÷ng th«ng b¸o nμy vμ Ann
kh«ng thÓ biÕt néi dung cña chóng.
B©y giê Ann ®· nhËn ®−îc 5 th«ng b¸o ®−îc m· mét lÇn
E(c j , K A ) vμ 5 th«ng b¸o ®−îc m· b»ng hai khãa E(E(c j , K A ), K B ) .

Ann sÏ më khãa 5 th«ng b¸o cÇn gi÷ b»ng c¸ch gi¶i m· 5 th«ng
( )
b¸o E c j , K A . C« ta còng gi¶i m· cho 5 th«ng b¸o mμ Bill ®·

chän b»ng c¸ch t¹o ra D(E(E(c j , K A ), K B ), K A ) . NÕu phÐp m· hãa

vμ gi¶i m· lμ giao hãan th×:


D(E(E(c j , K A ), K B ), K A ) = E(D(E(c j , K A ), K A ), K B ) = E(c j , K B )

Nh− vËy, c¸c th«ng b¸o nμy b©y giê chØ cßn ®−îc "g¾n" bëi
khãa cña Bill. Sau ®ã, Ann sÏ göi l¹i nh÷ng th«ng b¸o nμy cho Bill
®Ó gi¶i chóng vμ tiÕp tôc trß ch¬i. Trªn h×nh 5.17, c¸c th«ng b¸o
®−îc xem lμ nh÷ng qu©n bμi. (Trªn thùc tÕ, thñ tôc nμy cã mét
yÕu ®iÓm nÕu Ann chØ cung cÊp cho Bill 10 th«ng b¸o ®Ó lùa chän.
H·y xem c¸c bμi tËp ë cuèi ch−¬ng ®Ó thÊy râ).

5.2.4.3. ¸p dông khãa c«ng khai

Ta sö dông D( ) ®Ó ký hiÖu cho phÐp biÕn ®æi riªng (bÝ mËt)


vμ E( ) ®Ó ký hiÖu cho phÐp biÕn ®æi chung (c«ng khai). Tr−íc
tiªn, Ann sÏ "khãa" c¸c th«ng b¸o b»ng phÐp biÕn ®æi c«ng khai;
sau ®ã Bill sÏ khãa tiÕp c¸c th«ng b¸o ®−îc chän b»ng phÐp biÕn
224 Gi¸o tr×nh MËt m· häc

®æi c«ng khai cña m×nh. Ann sÏ më khãa c«ng khai cña m×nh ®Ó
thu ®−îc th«ng b¸o ®−îc chän.

5.2.4.4. Ph©n phèi khãa: Mét øng dông cña thñ tôc
Thñ tôc kh«ng bÞ h¹n chÕ bëi t×nh huèng kh¸ phi thùc tÕ lμ
ph©n phèi c¸c qu©n bμi b»ng m¸y tÝnh. Thay vμo ®ã, ta xÐt mét hÖ
thèng m· hãa yªu cÇu c¸c khãa ®Æc biÖt ®Ó kh«ng ph¶i bÊt cø sè
nμo còng lμ mét khãa chÊp nhËn ®−îc. (Mét sè øng dông cña DES
®ßi hái mçi bit thø 8 cña khãa ph¶i lμ bit kiÓm tra ch½n cña 7 bit
®øng tr−íc. §iÒu nμy dÔ dμng ®−îc thùc hiÖn víi mét khãa 56 bit
bÊt kú. Tuy nhiªn, ®iÒu nμy kh¸c víi ®iÒu mét sè nhÞ ph©n 56 bit
bÊt kú cã thÓ lμ khãa. Nh− ®· m« t¶ trong ch−¬ng 4, c¸c thuËt
to¸n RSA, Merkle - Hellman vμ ElGamal ®Òu yªu cÇu mét cÆp
khãa ®Æc biÖt chØ cã thÓ do ng−êi sö dông thuËt to¸n x¸c ®Þnh).
Nh×n chung, nh÷ng ng−êi sö dông kh«ng thÓ hoÆc kh«ng
muèn tù m×nh t¹o khãa. Bëi vËy, viÖc cung cÊp khãa cho ng−êi
dïng còng lμ mét vÊn ®Ò. Mét gi¶i ph¸p lμ ph¶i cã mét trung t©m
®Ó t¹o vμ ph©n phèi c¸c khãa. Tuy nhiªn, l¹i cã nh÷ng lo l¾ng x¸c
®¸ng vÒ viÖc gi÷ bÝ mËt cho c¸c kho gi÷ vμ g¸n c¸c khãa.
CÇn ph¶i cã mét thñ tôc cho phÐp ng−êi dïng nhËn ®−îc mét
khãa míi trong khi kh«ng mét ai (kÓ c¶ kho l−u tr÷) biÕt ®−îc
khãa mμ ng−êi dïng ®· nhËn lμ khãa nμo. ë ®©y cã hai vÊn ®Ò:
- Kh«ng mét ai cã thÓ x¸c ®Þnh ®−îc khãa riªng cña ng−êi
dïng cho ra khãa c«ng khai cña m×nh. Ta kh«ng thÓ xuÊt b¶n mét
"th− môc khãa" vμ cho phÐp mäi ng−êi chän khãa ngÉu nhiªn. NÕu
cã mét danh b¹ nh− vËy th× ng−êi ta cã thÓ t×m mét khãa riªng
phï hîp víi mét khãa c«ng khai ngay khi mét ng−êi sö dông chän
Ch−¬ng 5: C¸c thñ tôc vµ c¸c chó ý trong thùc tÕ khi sö dông m· hãa 225

mét cÆp khãa vμ ®−a ra khãa c«ng khai. Bëi vËy, tÝnh riªng t− cña
mét khãa riªng ph¶i ®−îc ®¶m b¶o khi ng−êi sö dông lùa chän
mét khãa míi.
- Trung t©m ph©n phèi khãa ph¶i kh«ng biÕt khãa mμ ng−êi
dïng ®· chän lμ khãa nμo? Trung t©m kh«ng chØ ®¬n gi¶n lμ ph©n
phèi mét cÆp khãa cho mét ng−êi dïng, ng−êi dïng ph¶i cã mét sù
lùa chän nμo ®ã ®Ó trung t©m kh«ng thÓ biÕt ch¾c khãa nμo lμ
khãa mμ ng−êi dïng ®· chän. §iÒu quan träng lμ ta muèn trung
t©m ph©n phèi khãa ®Æt c¸c khãa trong c¸c "phong b×" ®−îc g¾n
kÝn trong mét "thïng chøa" vμ ®Ó cho mçi ng−êi dïng nhÆt mét
phong b×.
Mét trung t©m ph©n phèi khãa tèt ph¶i lμ mét nguån trung
t©m t¹o ra vμ m· hãa c¸c khãa (gièng nh− Ann trong vÝ dô tr−íc).
Ann sÏ ®−a ra mét dßng liªn tôc c¸c khãa m· hãa ®· ®−îc m·.
V× c¸c khãa ®Òu ®−îc m· nªn kh«ng ai cã thÓ x¸c ®Þnh ®−îc c¸c
khãa nμy.
Mét ng−êi sö dông riªng muèn cã mét khãa míi (gièng nh−
Bill) sÏ cho phÐp mét Ýt khãa ®· m· hãa cña Ann chuyÓn tíi vμ råi
chän ngÉu nhiªn mét khãa E (k i , K A ) . Sau ®ã (sau khi ®· cã ®ñ sè
khãa ®Ó Ann kh«ng thÓ biÕt ®−îc khãa mμ Bill ®· chän), Bill sÏ
m· hãa khãa ®· chän ®Ó t¹o ra E (E (k i , K A ), K B ) . Bill sÏ göi khãa
®· ®−îc m· hãa hai lÇn nμy cho Ann. Ann sÏ gi¶i m· khãa nμy ®Ó
b©y giê nã chØ cßn ®−îc m· bëi khãa cña Bill vμ göi nã trë l¹i cho
Bill. Cuèi cïng, Bill sÏ gi¶i m· ®Ó sö dông khãa nμy. Qu¸ tr×nh
nμy t−¬ng tù nh− thñ tôc ch¬i bμi ®· ®−îc m« t¶ ë h×nh 5.18. CÇn
chó ý r»ng ®èi víi hÖ thèng m· khãa c«ng khai, mçi khãa tõ Ann
thùc sù lμ mét cÆp khãa E ((k P∪B , k PRIV ), K A ) .
226 Gi¸o tr×nh MËt m· häc

Trung t©m
t¹o khãa kn kn-1 kj k2 k1

PhÐp m· ban ®Çu Chän ®−îc


®−îc gi¶i m· mét khãa råi
kj kj
m· hãa kÐp

Ng−êi sö dông
gi¶i m· ®èi víi phÐp
kj
m· hãa thø hai

H×nh 5.18: Thñ tôc ph©n phèi khãa mËt

5.2.5. Bá phiÕu b»ng m¸y tÝnh

Mét vÊn ®Ò t−¬ng tù xoay quanh viÖc ph¸t mét th«ng b¸o x¸c
thùc nh−ng kh«ng x¸c ®Þnh ®−îc dÊu vÕt. Ch¼ng h¹n, cho phÐp
mét ng−êi (tham gia vμo mét thÝ nghiÖm) tr¶ lêi mét c©u hái kÝn
theo c¸ch v« danh tÝnh. Trong mét tr−êng hîp kh¸c, c¸c cö tri cã
thÓ ph¶i ®−îc lËp danh s¸ch b»ng m¸y tÝnh. Mét vÝ dô thø ba cã
liªn quan ®Õn c¸c giao dÞch riªng t− tù ®éng (ch¼ng h¹n nh− c¸c
tμi kho¶n trong ng©n hμng Thôy Sü), trong ®ã viÖc chuyÓn tiÒn lμ
x¸c thùc nh−ng kh«ng thÓ truy t×m trë l¹i ®−îc ng−êi t¹o giao dÞch.
Trong c¶ ba tr−êng hîp nμy ta cÇn cã mét thñ tôc ®Ó ®¶m b¶o
bÝ mËt vμ hîp thøc. Mçi th«ng b¸o trong hÖ thèng ph¶i xuÊt ph¸t
tõ mét ng−êi sö dông hîp ph¸p nh−ng kh«ng mét ng−êi sö dông
nμo cã thÓ g¾n kÕt ®−îc víi mét th«ng b¸o riªng mét khi nã ®−îc
ph¸t. C¸c yªu cÇu bÝ mËt cña thñ tôc nμy bao gåm:
- ChØ cã nh÷ng ng−êi dïng hîp ph¸p míi cã thÓ ph¸t c¸c
th«ng b¸o.
Ch−¬ng 5: C¸c thñ tôc vµ c¸c chó ý trong thùc tÕ khi sö dông m· hãa 227

- ë mét thêi ®iÓm, mçi ng−êi dïng chØ cã thÓ ph¸t mét
th«ng b¸o.
- Kh«ng mét ai cã thÓ x¸c ®Þnh ®−îc ai lμ ng−êi ®· göi mét
th«ng b¸o riªng.
Demilo vμ Merritt ®· thiÕt kÕ mét thñ tôc nh− vËy. §Ó chØ râ
ho¹t ®éng cña mét thñ tôc, ta sÏ xÐt mét vÝ dô bá phiÕu. Gi¶ sö cã
ba cö tri lμ Jan, Keith vμ Lee bá phiÕu "Cã" hoÆc "Kh«ng" cho mét
vÊn ®Ò tranh c·i nμo ®ã. Gi¶ sö mçi cö tri cã hai hμm m· hãa khãa
c«ng khai. Hμm thø nhÊt E lμ mét hμm m· hãa c«ng khai th«ng
th−êng nh−ng hμm thø hai, R, sÏ g¾n th«ng b¸o trong mét x©u
ngÉu nhiªn vμ råi m· hãa kÕt qu¶. D lμ hμm gi¶i m· cho E, cßn Q
lμ hμm gi¶i m· cho R. V× cã nhiÒu líp hμm nªn ta sÏ ký hiÖu E U
lμ phÐp biÕn ®æi cña c¸ nh©n U.
Hai ng−êi cã thÓ cã phiÕu bÇu nh− nhau. Thñ tôc nμy ph¶i
cho phÐp mçi ng−êi dïng biÕt ®−îc phiÕu bÇu cña m×nh nh−ng
kh«ng thÓ biÕt ®−îc phiÕu bÇu cña c¸c cö tri kh¸c cho dï cã cïng ý
kiÕn. PhÐp m· hãa R víi x©u ngÉu nhiªn ph¶i cung cÊp ®é b¶o
mËt mong muèn vμ kh¶ n¨ng ph©n biÖt. VÒ h×nh thøc, c¸c phiÕu
bÇu ®−îc göi kÝn vÝ hai phiÕu nh− nhau ®Òu ®−îc g¾n víi c¸c x©u
ngÉu nhiªn kh¸c nhau. Tuy nhiªn, mçi cö tri ®Òu cã thÓ x¸c ®Þnh
®óng phiÕu bÇu cña m×nh. V× mçi phÐp gi¶i m· R cña mçi ng−êi lμ
cña riªng tõng ng−êi nªn chØ cã ng−êi göi míi cã thÓ x¸c nhËn
r»ng phiÕu cña m×nh cã n»m trong sè phiÕu ®−îc tÝnh hay kh«ng?

5.2.5.1. Thñ tôc bá phiÕu


Mçi cö tri chän mét phiÕu v vμ tÝnh:
R J (R K (R L (E J (E K (E L (v ))))))
228 Gi¸o tr×nh MËt m· häc

B»ng c¸ch dïng c¸c phÐp m· hãa khãa c«ng khai. TÊt c¶ c¸c
phiÕu ®· m· hãa sÏ ®−îc göi cho cö tri thø nhÊt lμ Jan. Jan sÏ
kiÓm tra xem l¸ phiÕu cña m×nh cã n»m trong sè c¸c phiÕu ®·
nhËn hay kh«ng? Jan sÏ gi¶i m· cho møc m· hãa ®Çu tiªn cho tÊt
c¶ c¸c l¸ phiÕu:

Q J (R J (R K (R L (E J (E K (E L (v ))))))) = R K (R L (E J (E K (E L (v )))))

v× Q J (R J (x )) = x

B©y giê Jan sÏ göi c¸c l¸ phiÕu tíi Keith. Keith sÏ kiÓm tra l¸
phiÕu cña m×nh vμ gi¶i m· møc mét ®Ó t¹o ra:

Q K (R K (R L (E J (E K (E L (v )))))) = R L (E J (E K (E L (v ))))

Keith sÏ göi kÕt qu¶ nμy cho Lee. Lee sÏ göi E J (E K (E L (v )))
cña tÊt c¶ c¸c v cho Jan. Lee còng ký c¸c biÓu quyÕt b»ng mét
ch÷ ký sè vμ göi ch÷ ký nμy cho Jan vμ Keith.
Jan sÏ gi¶i m· thªm mét møc n÷a vμ kiÓm tra ®Ó thÊy r»ng
biÓu quyÕt cña m×nh lμ vÉn cßn n»m trong tËp. Jan sÏ göi c¸c l¸
phiÕu cho Keith vμ göi c¸c ch÷ ký sè cña c¸c l¸ phiÕu cho Keith vμ
Lee. Keith sÏ thu ®−îc E K (E L (v )) tõ Jan. Tõ ®ã, Keith sÏ gi¶i m·
®Ó t¹o ra E L (v ) cho Lee. Lee sÏ gi¶i m· E L vμ c«ng bè c¸c kÕt qu¶.

Thñ tôc nμy sÏ lμm viÖc v× qu¸ tr×nh ph©n tÝch lμ mçi chuçi 6
liªn kÕt: J → K → L → J → K → L . C¸c kÕt qu¶ ë mçi kÕt nèi cña
chuçi cã thÓ ®−îc lμm c«ng khai mμ kh«ng ph¸ huû tÝnh v« danh
tÝnh cña mét l¸ phiÕu bÊt kú. H¬n n÷a, trong ba liªn kÕt cuèi cña
chuçi, bÊt cø ai còng cã thÓ ®i "ng−îc" trë l¹i nh−ng chØ cã mét
ng−êi cã thÓ ®i "xu«i". Tøc lμ, gi¶ sö Jan biÕn ®æi c¸c l¸ phiÕu vμ
chuyÓn chóng cho Keith. ChØ cã Jan míi cã thÓ thùc hiÖn phÐp
biÕn ®æi nμy. Nh−ng Keith hoÆc bÊt cø mét ai kh¸c cã thÓ thùc
Ch−¬ng 5: C¸c thñ tôc vµ c¸c chó ý trong thùc tÕ khi sö dông m· hãa 229

hiÖn phÐp biÕn ®æi ng−îc (J ← K ) ®Ó xem liÖu c¸i mμ Jan ®·


chuyÓn cho Keith cã phï hîp víi c¸i mμ Jan ®· b¾t ®Çu xö lý.
§iÒu nμy nh»m kiÓm tra c«ng viÖc cña nhau vμ ng¨n chÆn sù gian
lËn cña bÊt cø ai.
Cö tri PhiÕu bÇu M· hãa b»ng E M· hãa b»ng E vµ R
J 1 1 1110 1 1 0
K 0 0 0101 0 01
L 1 1 0 111 1 11

RL RK
RJ
EJ (EK (EL(V)))

J, K vµ L tÝnh c¸c phiÕu ®· m· hãa cña hä; K vµ L göi c¸c l¸ phiÕu cña m×nh cho J.

J nhËn 1110 1 0 01 0101 C 01 0 111 1 0 1

J gì bá Rj , x¸o trén c¸c phiÕu vµ göi chóng cho K

K nhËn 101 C 01 11 1 10 111 1 11

K gì bá RK , x¸o trén c¸c phiÕu vµ göi chóng cho L

L nhËn 101 C 111 1 110 1

L gì bá RL, x¸o trén c¸c phiÕu vµ göi chóng cho J

J nhËn C 1 1

J gì bá E, ký tÊt c¶ c¸c phiÕu vµ göi chóng cho K vµ L

Tíi K vµ L C J ký C 1 J ký 1 1 J ký 1

K gì bá E, ký tÊt c¶ c¸c phiÕu vµ göi chóng cho J vµ L

Tíi J vµ L C K ký 1 K ký 1 K ký

Gì bá E, ký tÊt c¶ c¸c phiÕu vµ göi chóng cho J vµ K


C«ng khai 0 1 1
Tíi J vµ K 0 L ký 1 L ký 1 L ký

H×nh 5.19: Thñ tôc bá phiÕu


230 Gi¸o tr×nh MËt m· häc

5.2.5.2. Ph©n tÝch thñ tôc


Ta sÏ ph©n tÝch mçi b−íc trong thñ tôc nμy. Tr−íc tiªn, ta
thÊy kh«ng cã th«ng tin nμo ®Ó g¾n mét l¸ phiÕu víi mét c¸ nh©n
nμo vμ nh− vËy, c¸c l¸ phiÕu vÉn gi÷ ®−îc bÝ mËt. Thø hai lμ mçi
c¸ nh©n chØ cã thÓ bá phiÕu ®−îc mét lÇn v× chØ cã 3 l¸ phiÕu vμ
mäi ng−êi sÏ chøng thùc ë vßng ®Çu tiªn lμ l¸ phiÕu cña m×nh n»m
trong 3 l¸ phiÕu nμy. Cuèi cïng, kh«ng mét ai ngoμi 3 ng−êi cã thÓ
bá phiÕu ®−îc v× mét trong 3 cö tri sÏ thÊy ®−îc r»ng m×nh ®· bÞ
mÊt phiÕu.
Gi¶ sö ë vßng thø hai cã mét ng−êi nμo ®ã quyÕt ®Þnh can
thiÖp bÊt chÝnh vμo mét l¸ phiÕu. Mét khi kÕt qu¶ ®· ®−îc c«ng bè
th× 3 cö tri cã thÓ gi¶i m· c¸c phiÕu kÕt qu¶ b»ng R ®Ó kiÓm tra
r»ng c¸c phiÕu nμy phï hîp víi tËp ®· göi ban ®Çu. Bëi v× mçi mét
cö tri ®Òu ký cho tËp c¸c l¸ phiÕu cÇn ®−îc chuyÓn tiÕp nªn cã thÓ
x¸c ®Þnh ®−îc ai ®· bãp mÐo c¸c kÕt qu¶.
H×nh 5.19 m« t¶ mét vÝ dô vÒ thñ tôc nμy. §Ó ®¬n gi¶n c¸c
phÐp m· hãa kiÓu E ®−îc m« t¶ b»ng c¸c v¹ch trùc tiÕp cßn c¸c
phÐp m· hãa kiÓu R ®−îc m« t¶ b»ng c¸ch Jan thªm vμo 1 bit
ngÉu nhiªn vÒ phÝa tr¸i, Keith thªm vμo 2 bit ngÉu nhiªn vÒ phÝa
ph¶i vμ Lee thªm vμo 3 bit ngÉu nhiªn vÒ phÝa tr¸i.

5.2.6. ChuyÓn giao kh«ng nhí


Thñ tôc sau ®©y lμ mét c«ng cô sÏ ®−îc sö dông trong nhiÒu
thñ tôc phøc t¹p h¬n sau nμy. ë ®©y, bμi to¸n xoay quanh viÖc göi
mét trong hai th«ng b¸o víi mét h¹n chÕ lμ kh«ng mét ai (kÓ c¶
ng−êi göi vμ ng−êi nhËn) biÕt ®−îc th«ng b¸o nμo ®· ®−îc göi. Mét
vÝ dô cña bμi to¸n nμy lμ viÖc gieo ®ång tiÒn tõ xa. Mét ng−êi
(ng−êi göi) sÏ tung ®ång tiÒn vμ viÕt kÕt qu¶ (sÊp hoÆc ngöa).
Ch−¬ng 5: C¸c thñ tôc vµ c¸c chó ý trong thùc tÕ khi sö dông m· hãa 231

Ng−êi kh¸c (ng−êi thu) sÏ viÕt ra dù b¸o kÕt qu¶. Sau ®ã hai ng−êi
sÏ gÆp nhau vμ trao ®æi c¸c biªn b¶n. Khi ®ã, nÕu c¸c kÕt qu¶ trªn
c¸c biªn b¶n gièng nhau th× ng−êi thu sÏ th¾ng, ng−îc l¹i lμ ng−êi
göi sÏ th¾ng.
Gi¶ sö r»ng hai ng−êi kh«ng thÓ gÆp nhau ®Ó trao ®æi c¸c
biªn b¶n. H·y thö h×nh dung t×nh h×nh sau: Pete vμ Nancy rñ
nhau ®i ch¬i vμo buæi tèi. Trªn ®iÖn tho¹i. Pete ®Ò nghÞ tung mét
®ång tiÒn, nÕu xuÊt hiÖn mÆt ngöa th× Pete sÏ tr¶ tiÒn ¨n vμ tiÒn
vÐ xem phim, nÕu xuÊt hiÖn mÆt sÊp th× Nancy sÏ tr¶. Nancy tr¶
lêi r»ng ý kiÕn ®ã rÊt hay ®èi víi c« ta. Pete biÕt r»ng nÕu Nancy
tung ®ång tiÒn th× c« ta sÏ b¸o r»ng "mÆt ngöa xuÊt hiÖn" bÊt
chÊp kÕt qu¶ ra sao; Pete biÕt ®iÒu ®ã v× anh ta còng sÏ xö sù nh−
vËy. Tuy nhiªn, hä ®· quyÕt ®Þnh qua ®iÖn tho¹i ®Ó ng−êi cßn l¹i
ph¶i ra ng©n hμng nhËn tiÒn cho buæi tèi.
VÊn ®Ò nμy ®−îc gäi lμ vÊn ®Ò chuyÓn giao kh«ng nhí. Pete
muèn göi mét trong hai th«ng b¸o tíi Nancy víi x¸c suÊt nhËn
cña mçi th«ng b¸o lμ 0,5. Th«ng b¸o ®Çu tiªn cña Pete cã thÓ lμ
"T«i sÏ tr¶. Pete". NÕu Nancy chØ cho anh ta th«ng b¸o nμy th× anh
ta sÏ cã tr¸ch nhiÖm chi tr¶, th«ng b¸o kh¸c mμ Nancy cã thÓ
nhËn lμ mét sù bãp mÐo v« nghÜa, trong tr−êng hîp nμy c« ta sÏ
ph¶i chi tr¶. NÕu x¸c suÊt nhËn ®−îc cña mçi mét trong c¸c th«ng
b¸o cña Pete lμ 0,5 th× nã t−¬ng ®−¬ng víi viÖc tung ®ång tiÒn mét
c¸ch th«ng minh.

5.2.6.1. Thñ tôc chuyÓn


Thñ tôc ban ®Çu do Blum ®−a ra [12]. Gi¶i ph¸p cña Even
[13] ®−a ra rÊt dÔ hiÓu, mÆc dï nã cÇn cã mét sè khãa m· hãa. Sau
®©y lμ c¸c b−íc cña thñ tôc:
232 Gi¸o tr×nh MËt m· häc

1. Pete chän hai cÆp khãa m· hãa c«ng khai (tæng céng lμ 4
khãa). Ta ký hiÖu c¸c khãa nμy lμ E i , D i , E j vμ D j . E i lμ mét phÐp

biÕn ®æi c«ng khai víi khãa i vμ Di lμ phÐp biÕn ®æi riªng t−¬ng
øng cña nã. (Tøc lμ D i (E i (M )) = M víi th«ng b¸o M bÊt kú).

2. Nancy chän mét khãa K N cho mét thuËt to¸n m· hãa ®èi
xøng S.

3. Pete göi c¶ hai khãa c«ng khai (E i , E j ) cho Nancy vμ gi÷

l¹i c¸c khãa riªng.

4. Nancy chän ngÉu nhiªn mét khãa vμ göi E h (K N ) cho


Pete, tøc lμ c« ta m· hãa khãa ®èi xøng K N cña m×nh b»ng mét
khãa c«ng khai E h .

5. Pete chän ngÉu nhiªn hoÆc i hoÆc j (gi¶ sö Pete chänj),


Pete tÝnh P = D j (E h (K N )) . §èi víi Pete th× ®©y lμ mét kh©u nhÞ

ph©n, bëi vËy anh ta kh«ng thÓ biÕt liÖu j cã ph¶i lμ gi¸ trÞ m·
Nancy ®· chän hay kh«ng? NÕu h = j th× P lμ khãa K N cña
Nancy, ng−îc l¹i th× P lμ mét kh©u nhÞ ph©n v« nghÜa.

6. Pete tÝnh S ("T«i sÏ tr¶. Pete", P ) råi göi cho Nancy, cïng
víi gi¸ trÞ j.

7. Nancy gi¶i m· th«ng b¸o cña Pete b»ng K N . C« ta ®· chän


h vμ Pete ®· chän j. NÕu h = j th× c« ta th¾ng, khi gi¶i m· ®óng
th«ng b¸o cña Pete, c« ta sÏ göi M vμ h cho Pete ®Ó chøng thùc
r»ng c« ta ®· chän ®óng. NÕu h ≠ j th× c« ta thua, kÕt qu¶ gi¶i m·
chØ lμ mét x©u bit v« nghÜa.
Ch−¬ng 5: C¸c thñ tôc vµ c¸c chó ý trong thùc tÕ khi sö dông m· hãa 233

8. Sau khi ng−êi th¾ng cuéc ®· ®−îc x¸c ®Þnh, Pete sÏ trao
c¸c khãa riªng lμ Di vμ D j cho Nancy. Tõ c¸c khãa nμy, c« ta cã

thÓ kiÓm tra xem h ®· chän lμ i hay j vμ xem liÖu j mμ Pete ®·


dïng cã ph¶i lμ mét trong hai gi¸ trÞ nμy hay kh«ng? NÕu h = j vμ
c« ta kh«ng nhËn ®−îc th«ng b¸o th× c« ta cã thÓ kÕt luËn r»ng
Pete ®· ¨n gian.
C¸c b−íc cña thñ tôc nμy ®−îc m« t¶ trªn h×nh h×nh 5.20.

Pete Nancy

B¾t ®Çu víi B¾t ®Çu víi


Ei , Di , E j , D KN

Göi Ei , E j
Chän E h = E i hoÆc Ej
mét c¸ch ngÉu nhiªn
TÝnh Dj (Eh(KN)) = P Göi Eh(KN)
(P = KN hoÆc v« nghÜa)
-1
Göi S(M, P) TÝnh S (S(M, P), KN)
gi¸ trÞ nµy hoÆc b»ng M
hoÆc kh«ng cã nghÜa

H×nh 5.20: ChuyÓn kh«ng nhí

5.2.6.2. Ph©n tÝch thñ tôc

Thñ tôc nμy sÏ lμm viÖc nh− thÕ nμo? Tr−íc tiªn, Nancy chän
mét trong c¸c khãa cña Pete, c« ta sÏ "ngôy trang" nã vμ tr¶ l¹i
cho Pete. Pete kh«ng biÕt khãa mμ Nancy ®· chän bëi v× anh ta
kh«ng thÓ biÕt K N . Bëi vËy, khi anh ta chän j th× c¬ may ®Ó anh

ta chän ®óng khãa mμ Nancy ®· chän chØ lμ 1 trong 2. Anh ta sÏ


m· hãa th«ng b¸o mμ Nancy ph¶i gi¶i ®óng ®Ó thuyÕt phôc anh ta
lμ anh ta ®· chän ®óng khãa cña c« ta. NÕu hä cïng chän mét
khãa th× khãa K N cña Nancy sÏ gi¶i m· ®−îc th«ng b¸o, ng−îc l¹i
234 Gi¸o tr×nh MËt m· häc

th× K N sÏ t¹o ra mét kh©u v« nghÜa. Sau ®ã, khi gÆp nhau hä cã

thÓ trao ®æi c¸c khãa vμ kiÓm tra ®−îc mçi bªn cã tu©n theo ®óng
c¸c quy t¾c cña thñ tôc hay kh«ng?
DÜ nhiªn lμ viÖc tung ®ång tiÒn qua ®iÖn tho¹i kh«ng ph¶i lμ
mét c«ng viÖc rÊt quan träng. Tuy nhiªn, thñ tôc nμy lμ c¬ së cho 2
thñ tôc mμ ta sÏ xem xÐt d−íi ®©y.

5.2.7. Ký tháa thuËn

Gi¶ sö r»ng Charles vμ Diane cïng thèng nhÊt víi nhau vÒ


mét vÊn ®Ò nμo ®ã vμ muèn ký mét tháa thuËn ®Ó x¸c nhËn sù
®ång ý cña hä. C¶ hai ph¶i cam kÕt thùc hiÖn mét c«ng viÖc nμo ®ã
theo tháa thuËn nh−ng ng−êi nμo còng chØ muèn cam kÕt khi
ng−êi kh¸c còng lμm nh− vËy. VÝ dô, Charles cam kÕt b¸n xe cña
anh ta cho Diane nÕu Diane ®ång ý trao cho anh ta mét cæ phÇn
trong viÖc kinh doanh b¸n b¸nh pizza cña c« Êy.
Charles ë California vμ Diane ë NewYork. Charles sÏ kh«ng
ký tháa thuËn tr−íc vμ göi nã cho Diane, bëi v× ®iÒu ®ã sÏ ®Æt sè
phËn cña anh ta vμo bμn tay cña Diane: anh ta ®· ®ång ý b¸n xe,
bëi vËy anh ta ph¶i ®−a nã ra khái gian hμng. Tuy nhiªn, Diane cã
thÓ xÐ b¶n tháa thuËn ®Ó mÆc Charles víi chiÕc xe; mÆt kh¸c
Diane cã thÓ ký tháa thuËn b¾t buéc Charles ph¶i s¶n xuÊt xe.
Charles sÏ bÞ rμng buéc bëi tháa thuËn ngay khi anh ta ký. Tuy
nhiªn, anh ta kh«ng biÕt liÖu Diane cã ký hay kh«ng, bëi vËy,
c« ta kh«ng bÞ rμng buéc bëi b¶n tháa thuËn. T×nh h×nh còng
t−¬ng tù nÕu Diane ký tr−íc: c« ta sÏ bÞ rμng buéc cßn Charles
th× kh«ng.
Ch−¬ng 5: C¸c thñ tôc vµ c¸c chó ý trong thùc tÕ khi sö dông m· hãa 235

Trong thùc tÕ, ®iÒu nμy ®−îc kh¾c phôc khi c¶ hai bªn cïng
ký. ë ®©y chóng ta muèn thiÕt lËp mét thñ tôc ®Ó ký c¸c tháa
thuËn b»ng m¸y tÝnh. Gi¶i ph¸p nμy nh»m tr¸nh ph¶i gÆp gì
nhau vμ ký trªn giÊy.
Cã mét gi¶i ph¸p ph¶i nhê tíi mét bªn thø 3 tin cËy: Charles
vμ Diane, mçi ng−êi ph¶i ký vμo mét b¶n sao cña b¶n tháa thuËn
®Ó göi cho mét ng−êi thø 3 tin cËy, ng−êi nμy sÏ gi÷ hai b¶n sao cã
mét ch÷ ký nμy. §©y lμ b»ng chøng chøng tá r»ng hä ®Òu muèn ký
tháa thuËn. Khi bªn thø 3 c«ng bè r»ng anh ta ®· nhËn ®−îc c¸c
b¶n sao ®−îc ký tõ mçi bªn th× Charles sÏ ký mét b¶n sao kh¸c ®Ó
göi cho Diane vμ Diane còng ký vμo mét b¶n sao kh¸c ®Ó göi cho
Charles. Charles vμ Diane ph¶i b¸o cho bªn thø 3 biÕt vμ bªn thø
ba sÏ huû c¸c tháa thuËn chØ cã mét ch÷ ký. Tuy vËy, ta vÉn muèn
kh«ng ph¶i sö dông tíi bªn thø 3 nÕu cã thÓ.
Bëi vËy, mét thñ tôc tháa thuËn cÇn cã hai ®iÒu:
- Cam kÕt. Sau mét thêi ®iÓm nhÊt ®Þnh, c¶ hai bªn sÏ bÞ
rμng buéc bëi b¶n tháa thuËn cho tíi mét thêi ®iÓm nμo ®ã.
- TÝnh kh«ng thÓ gi¶ m¹o. C¸c ch÷ ký trªn b¶n tháa thuËn
ph¶i chøng tá ®−îc lμ x¸c thùc. Tøc lμ mçi bªn ph¶i cã kh¶ n¨ng
chøng minh r»ng ch÷ ký cña bªn cßn l¹i lμ x¸c thùc.
Thñ tôc ph¶i cã kh¶ n¨ng thu ®−îc hai vÊn ®Ò nªu trªn mét
c¸ch gi¸n tiÕp, kh«ng cÇn ph¶i mÆt ®èi mÆt. Mét thñ tôc gi¸n tiÕp
lμ thÝch hîp trong t×nh huèng ®· ®−îc m¸y tÝnh hãa.

5.2.7.1. Víi giÊy vμ bót


Mét thñ tôc gi¸n tiÕp cã thÓ ho¹t ®éng theo c¸ch sau. Thñ tôc
nμy cã thÓ kh«ng ®−îc sö dông trªn thùc tÕ, nh−ng nã t−¬ng tù víi
236 Gi¸o tr×nh MËt m· häc

mét thñ tôc m¸y tÝnh ®−îc m« t¶ ë phÇn sau. Charles vμ Diane sÏ
chuyÓn tíi lui Ýt nhÊt 3 b¶n tháa thuËn. Mçi ng−êi gi÷ mét b¶n
lμm b»ng chøng vÒ sù viÖc ®· x¶y ra cßn mét b¶n ®ang ®−îc
chuyÓn. ViÖc ai gi÷ b¶n sao nμo cho ai ®Ó gi÷ mét b¶n lμm b»ng
chøng lμ rÊt râ rμng, bëi vËy ta sÏ kh«ng m« t¶ c¸c b¶n sao kh¸c
nhau l−u chuyÓn tíi lui.
Charles sÏ viÕt ch÷ c¸i ®Çu tiªn trong tªn cña m×nh lªn b¶n
tháa thuËn lμ ch÷ "C" vμ göi nã cho Diane. C« ta sÏ viÕt ch÷ "D"
vμ göi trë l¹i. Charles sÏ viÕt mét ch÷ c¸i tiÕp theo trong tªn cña
m×nh "h" vμ cø nh− vËy hä tiÕp tôc thùc hiÖn trao ®æi b»ng c¸ch
mçi lÇn g¾n thªm mét ch÷ c¸i trong ch÷ ký. ChØ víi ch÷ "C" trªn
b¶n tháa thuËn, Charles biÕt r»ng kh«ng mét ai cã thÓ yªu cÇu
anh ta thùc hiÖn b¶n tháa thuËn. Tuy nhiªn, mçi ch÷ c¸i lμ mét
hμnh ®éng chøng tá sù trung thùc mμ anh ta muèn tá cho Diane
thÊy. Diane còng sÏ ®¸p øng b»ng nh÷ng hμnh ®éng t−¬ng tù.
Sau mét vμi ch÷ c¸i trªn mçi ch÷ ký, Diane biÕt r»ng c« ta cã
thÓ thuyÕt phôc Quan tßa lμ Charles thùc sù ®· bÞ rμng buéc bëi
b¶n tháa thuËn. C« ta gi¶i thÝch c¸c t×nh huèng vμ hy väng r»ng
Quan toμ sÏ ®ång ý. ë ®©y vÉn cßn cã mét ®é bÊt ®Þnh: Charles
kh«ng bÞ rμng buéc bëi c¸c ch÷ c¸i "C' mμ anh ta chØ bÞ rμng buéc
bëi ch÷ ký ®Çy ®ñ cña m×nh. Tuy nhiªn, thêi ®iÓm mμ anh ta b¾t
®Çu bÞ rμng buéc lμ kh«ng râ rμng: khi cã 1 , 2 hay 3 sè ch÷ c¸i
2 3 4

trong ch÷ ký?


Bëi v× hä kh«ng biÕt ch¾c ®óng vμo thêi ®iÓm nμo hä bÞ rμng
buéc nªn c¶ hai ®Òu lo ng¹i hä sÏ bÞ rμng buéc ë mçi lÇn, bëi vËy
hä kh«ng cã lý do nμo ®Ó kh«ng tiÕp tôc thñ tôc. Hä còng biÕt r»ng
cμng tiÕp tôc th× x¸c suÊt chøng tá r»ng bªn kia còng bÞ rμng buéc
Ch−¬ng 5: C¸c thñ tôc vµ c¸c chó ý trong thùc tÕ khi sö dông m· hãa 237

cμng lín, bëi vËy mèi quan t©m lín nhÊt cña hä lμ ph¶i tiÕp tôc
c«ng viÖc. Ngoμi ra, c¶ hai ®Òu muèn ký tháa −íc b»ng bÊt cø c¸ch
nμo nh−ng ph¶i ®¶m b¶o hä bÞ rμng buéc cïng lóc. TÝnh kh«ng
ch¾c ch¾n cña ®iÓm cam kÕt lμ c¬ së cña gi¶i ph¸p m¸y tÝnh.

5.2.7.2. Tãm l−îc vÒ thñ tôc gi¸n tiÕp


Thñ tôc m¸y tÝnh lμm viÖc kh¸ gièng c¸ch trªn. C¸c bªn trao
®æi th«ng b¸o tháa thuËn theo c¸c mÈu b»ng c¸ch sö dông thñ tôc
chuyÓn kh«ng nhí. CÇn nhí l¹i lμ viÖc chuyÓn kh«ng nhí lμ c¸ch
ph¸t mét trong hai th«ng b¸o ®Ó kh«ng mét ai (c¶ ng−êi ph¸t lÉn
ng−êi nhËn) biÕt ch¾c th«ng b¸o nμo ®· ®−îc ph¸t. Bëi vËy, kh«ng
mét bªn nμo biÕt ®−îc mét nöa th«ng b¸o ®· ®−îc ph¸t bëi v× víi
viÖc chuyÓn kh«ng nhí, kh«ng mét ai biÕt chÝnh x¸c c¸i mμ ng−êi
kh¸c ®· nhËn ®−îc.
Gi¶ sö mçi ch÷ ký cña mçi ng−êi ®−îc chia thμnh 4 khèi vμ
kh«ng thÓ ghi nhËn ch÷ ký b»ng c¸ch nh×n vμo nã. Charles vμ
Dianne thùc hiÖn viÖc chuyÓn kh«ng nhí mçi ng−êi 8 lÇn Charles
sÏ göi mçi khèi mét lÇn theo i vμ mét lÇn theo j. Diane còng lμm
nh− vËy.
Trong 3 lÇn ®Çu, Charles c¶m thÊy an toμn v× Diane kh«ng
cã ®ñ 4 khèi trong ch÷ ký cña anh ta. Charles sÏ göi khèi thø 4.
Víi khèi nμy, Diane cã thÓ cã mét ch÷ ký ®Çy ®ñ nh−ng c« ta
kh«ng thÓ biÕt ®iÒu ®ã. Trªn thùc tÕ, x¸c suÊt ®Ó c« ta nhËn ®ñ 4
khèi cña ch÷ ký lμ kh¸ thÊp (nhá h¬n 0,02). NÕu c« ta dõng l¹i th×
Charles cã thÓ ®· cã 3/4 ch÷ ký cña c« ta vμ cã thÓ thuyÕt phôc
Quan toμ r»ng Diane ®· ph¶n béi l¹i tháa thuËn. Diane kh«ng cã
sù lùa chän nμo kh¸c ngoμi viÖc tiÕp tôc. Khi hä tiÕp tôc c«ng viÖc,
hä sÏ ngμy cμng tiÕn gÇn h¬n tíi viÖc ®¶m b¶o tháa thuËn.
238 Gi¸o tr×nh MËt m· häc

ë mét thêi ®iÓm bÊt kú sau 4 vßng kh«ng mét ai cã thÓ dõng
l¹i, bëi v× c« ta hoÆc anh ta cã thÓ ®· ph¸t ®i mét ch÷ ký ®Çy ®ñ vμ
bëi vËy, ®· bÞ rμng buéc bëi b¶n tháa thuËn. Do ®ã, ®iÒu quan t©m
lín nhÊt cña c¶ hai lμ ph¶i tiÕp tôc c«ng viÖc cho tíi khi kÕt thóc,
lμ khi c¸c ch÷ ký ®Çy ®ñ ®· ®−îc trao ®æi hoμn toμn x¸c ®Þnh.

5.2.7.3. Thñ tôc ký tháa thuËn gi¸n tiÕp


Sau ®©y lμ thñ tôc do Even vμ c¸c céng sù ®−a ra [13].
1. Charles chän ngÉu nhiªn 2n khãa cña mét hÖ mËt khãa ®èi
xøng (ch¼ng h¹n, DES). Ta ký hiÖu chóng lμ c1 , c 2 , K, c 2n . C¸c
khãa ®−îc gom thμnh c¸c cÆp sau (c1 , c n +1 ) , (c 2 , c n + 2 ) ,... §©y chØ lμ
mét c¸ch ký hiÖu chø kh«ng cã sù ph©n biÖt nμo gi÷a ci vμ c n + i .
2. Víi mçi khãa, Charles tÝnh C i = E(S, c i ) ®èi víi mét th«ng
b¸o chuÈn nμo ®ã mμ néi dung cña nã lμ kh«ng cã liªn quan.
Charles sÏ göi C1 tíi C 2 n cho Diane. Tøc lμ Diane cã d¹ng ®· m·
hãa cña th«ng b¸o chuÈn d−íi mçi khãa.
3. Charles nhÊt trÝ r»ng anh ta sÏ bÞ rμng buéc bëi b¶n tháa
thuËn nÕu Diane cã thÓ ®−a ra c¶ hai khãa ci vμ c n + i víi i bÊt kú.
(Chó ý: theo m« t¶ cña Even, mçi C i ®−îc gäi lμ mét th¸ch ®è S vμ
khãa (c i , c n + i ) ®−îc gäi lμ gi¶i ph¸p).
4. Diane lÆp l¹i 3 b−íc nμy theo c¸ch t−¬ng tù víi c¸c khãa
d i vμ c¸c th«ng b¸o ®· m· D i .
5. Charles sÏ göi mçi cÆp ci vμ c n + i , 1 ≤ i ≤ n cho Diane qua
thñ tôc chuyÓn kh«ng nhí. Tøc lμ, Charles sÏ göi hoÆc ci , hoÆc
c n + i cho Diane nh−ng c¶ Charles lÉn Diane ®Òu kh«ng biÕt ch¾c
khãa ®· nhËn ®−îc. Diane còng lμm t−¬ng tù víi tÊt c¶ c¸c d i vμ
d n + i víi 1 ≤ i ≤ n . Tíi lóc nμy, Charles vμ Diane mçi ng−êi ®· cã
mét nöa bÝ mËt cña ng−êi kh¸c.
Ch−¬ng 5: C¸c thñ tôc vµ c¸c chó ý trong thùc tÕ khi sö dông m· hãa 239

6. Gäi l lμ ®é dμi cña mçi c i hoÆc d i .

For 1 ≤ j ≤ l

Begin

Charles ph¸t bit thø j cña tÊt c¶ c¸c ci , 1 ≤ i ≤ n cho Diane

Diane ph¸t bit thø j cña tÊt c¶ c¸c d i , 1 ≤ i ≤ n cho Charles

End

7. Gi¶ sö r»ng kh«ng mét ai kÕt thóc sím, ë cuèi th− môc c¶
hai ®Òu cã tÊt c¶ l bit cña tÊt c¶ c¸c bÝ mËt cña nhau vμ tháa
thuËn ®· ®−îc ký.
Khi b−íc 6 b¾t ®Çu, c¶ hai bªn Charles vμ Diane ®Òu cã mét
nöa bÝ mËt cña ng−êi kh¸c, tuy nhiªn Diane vÉn kh«ng x¸c ®Þnh
®−îc khãa ci tõ th«ng b¸o ®· m· Ci cña nã cho dï Diane ®· cã
c n + i . V× b−íc nμy ®ang tiÕp diÔn nªn Diane sÏ nhËn ®−îc 1 bit cña
ci , råi bit tiÕp theo, råi bit tiÕp n÷a... NÕu Diane sö dông mét
phÐp tÊn c«ng m¹nh ®Ó x¸c ®Þnh ci th× mçi bit c« ta nhËn ®−îc sÏ
lμm gi¶m nhÑ c«ng viÖc cña c« ta ®i mét nöa.

ë thêi ®iÓm mμ c« ta nghÜ r»ng c«ng viÖc cÇn lμm cßn l¹i lμ
®ñ dÔ dμng ®Ó c« ta cã thÓ x¸c ®Þnh ®−îc ci víi i nμo ®ã. Bëi vËy c«
ta cã thÓ ngõng viÖc göi c¸c bit cho Charles. Còng vμo lóc ®ã,
Charles còng cã mét l−îng th«ng tin t−¬ng ®−¬ng vÒ mçi d i . NÕu
Diane cã thÓ dÔ dμng x¸c ®Þnh ®−îc ci th× Charles còng cã thÓ dÔ
dμng x¸c ®Þnh ®−îc d k víi k nμo ®ã. Bëi vËy, thêi gian mμ Diane
cÇn ®Ó gian lËn còng cho Charles thêi gian ®Ó t×m ra gi¶i ph¸p cña
c« ta ®Ó c¶ hai ®Òu bÞ rμng buéc vμo b¶n tháa thuËn.
240 Gi¸o tr×nh MËt m· häc

5.2.8. Th− tÝn ®−îc chøng thùc


ViÖc göi th− tÝn cã chøng thùc lμ vÊn ®Ò cuèi cïng mμ ta sÏ
ph¸t triÓn mét gi¶i ph¸p thñ tôc. Gi¶ sö Gina muèn göi mét th«ng
b¸o cho Hal nh−ng c« ta muèn chøng tá r»ng Hal ®· nhËn ®−îc
th«ng b¸o. C« ta kh«ng muèn ®Ó l¹i th«ng b¸o cho Hal mμ kh«ng
nhËn ®−îc phóc ®¸p. DÜ nhiªn lμ Hal sÏ kh«ng ký phóc ®¸p cho tíi
khi anh ta thùc sù cã th«ng b¸o. C¸c b−u t¸ vμ träng tμi cã thÓ
gi¶i quyÕt ®−îc vÊn ®Ò nμy. Tuy nhiªn, nh− th−êng lÖ, ta muèn cã
mét gi¶i ph¸p kh«ng cÇn cã träng tμi. Gi¶i ph¸p nμy rÊt gièng víi
thñ tôc ký tháa thuËn mμ ta vÉn nªu. Trªn thùc tÕ, gi¶i ph¸p nμy
còng do Even vμ c¸c céng sù ®−a ra [13].
Gi¶ sö th«ng b¸o mμ Gina chuyÓn tíi Hal lμ M. C« ta sÏ ph¸t
M cho Hal ë d¹ng ®−îc m· hãa vμ sÏ chØ trao cho Hal khãa m· hãa
khi c« ta ®· nhËn ®−îc mét th«ng tin x¸c nhËn thÝch hîp tõ Hal
b¸o vÒ viÖc anh ta ®· nhËn ®−îc M. Hal chØ biÕt ®−îc M khi anh ta
nhËn ®−îc khãa cho phÐp anh ta thu ®−îc b¶n râ M.
1. Gina chän ngÉu nhiªn n + 1 khãa cña mét hÖ mËt ®èi xøng
(ch¼ng h¹n DES). Ta ký hiÖu chóng lμ g 0 , g 1 , K, g n . C« ta còng
tÝnh g n + i = g 0 ⊕ g i víi 1 ≤ i ≤ n (dÊu ⊕ chØ phÐp hoÆc lo¹i trõ -
hay phÐp céng theo modulo 2).
2. Gina tÝnh G = E(M, g 0 ) (m· hãa th«ng b¸o M b»ng khãa
g 0 ). C« ta göi G cho Hal. V× víi mçi i:

g n+i = g 0 ⊕ g i
g n+i + g i = g 0 ⊕ g i ⊕ g i
= g0 ⊕ 0 = g0

Bëi vËy Hal cã thÓ x¸c ®Þnh ®−îc M nÕu biÕt mét cÆp
(g i , g n + i ) bÊt kú.
Ch−¬ng 5: C¸c thñ tôc vµ c¸c chó ý trong thùc tÕ khi sö dông m· hãa 241

3. Gina tÝnh vμ göi cho Hal G i = E(S, g i ) víi 1 ≤ i ≤ 2n trong


®ã S lμ mét th«ng b¸o chuÈn nμo ®ã mμ néi dung cña nã lμ kh«ng
quan träng. Vμo lóc nμy Hal ®· cã th«ng b¸o ®· m· G vμ mét
th«ng b¸o tiªu chuÈn S ®−îc m· b»ng 2b khãa kh¸c nhau cña Gina.

4. Hal chän 2n khãa h1, h2,..., h2n. Hal tÝnh H i = E(S, h i ) víi
1 ≤ i ≤ 2n. Hal göi H i cho Gina.

5. Hal göi mét th«ng b¸o cho Gina nãi r»ng anh ta sÏ b¸o
viÖc nhËn b¶n vÏ cña G nÕu Gina cã thÓ t¹o ra mét trong c¸c cÆp
cña Hal ( h i vμ h n + i ) vμ tÊt c¶ c¸c g j víi 1 ≤ j ≤ 2n.

Khi nãi ®iÒu nμy, Hal nãi r»ng nÕu Gina cã thêi gian ®Ó x¸c
®Þnh mét trong c¸c cÆp khãa cña anh ta ( h i vμ h n + i ) th× anh ta
còng cã thêi gian ®Ó x¸c ®Þnh mét trong c¸c cÆp khãa cña c« ta
( g m vμ g n + m ). Chõng nμo cã ®−îc mét cÆp khãa, Hal cã thÓ tÝnh
®−îc khãa m· hãa g 0 vμ thu ®−îc th«ng b¸o M = D(G , g 0 ) .

§iÒu kiÖn thø hai trong tuyªn bè cña Hal ®¶m b¶o r»ng Gina
®· xö sù c«ng minh, tøc lμ mçi cÆp ®Òu dÉn ra ®−îc g 0 .

6. Còng nh− trong thñ tôc ký tháa thuËn. Gina vμ Hal sÏ


trao ®æi c¸c cÆp (g 1 , g n +1 ) , (g 2 , g n + 2 ) ,... vμ (h1 , h n +1 ) , (h 2 , h n +2 ) ,...
theo thñ tôc chuyÓn kh«ng nhí. Tøc lμ, Hal sÏ nhËn, hoÆc g1 , hoÆc
g n +1 nh−ng c¶ Hal lÉn Gina ®Òu kh«ng biÕt lμ gi¸ trÞ nμo? Gina sÏ
nhËn mét nöa trong mçi cÆp (h i , h n +i ) mμ kh«ng biÕt gi¸ trÞ nμo.

7. Còng nh− trong thñ tôc ký tháa thuËn, gi¶ sö l lμ ®é dμi


cña mçi khãa gi.
For j = 1 to l

Begin
242 Gi¸o tr×nh MËt m· häc

Gina göi cho Hal bit thø j cña mçi g i víi 1 ≤ i ≤ 2n.

Hal göi cho Gina bit thø j cña mçi h i víi 1 ≤ i ≤ 2n.

end
Khèi l−îng c«ng viÖc cÇn lμm ®Ó ph¸ m· cña ng−êi kh¸c còng
gièng nh− trong viÖc ký tháa thuËn. Theo tháa thuËn, mÆc dï c¶
hai thñ tôc ký tháa thuËn vμ th− tÝn cã chøng thùc lμ kh¸ phøc
t¹p ®èi víi con ng−êi nh−ng chóng l¹i dÔ dμng thÝch hîp trong liªn
l¹c m¸y tÝnh.

5.3. Sö dông m· hãa nh− thÕ nμo


Trong nh÷ng phÇn tr−íc, ta ®· nghiªn cøu mét sè vÝ dô vÒ
c¸c thñ tôc ®Ó sö dông trong m¸y tÝnh. Ta ®· coi c¸c thñ tôc lμ c¸c
d·y cã thø tù cña c¸c b−íc ®Ó giao tiÕp gi÷a hai bªn. C¸c ph−¬ng
ph¸p ®· ®−a ra c¸c c¸ch th«ng minh trong khi vÉn gi÷ ®−îc tÝnh
bÝ mËt, tÝnh v« danh tÝnh hoÆc tÝnh riªng t−.
C¸c thñ tôc sö dông m· hãa nh− mét c«ng cô ®Ó thu ®−îc
tÝnh bÝ mËt, tÝnh x¸c thùc hoÆc tÝnh toμn vÑn, mÆc dï träng t©m lμ
n»m ë trªn thñ tôc vμ c¸c ®Æc tÝnh an toμn cÇn ®¹t ®−îc chø
kh«ng ph¶i ë b¶n th©n phÐp m· hãa. C¸c thñ tôc (kh«ng phô
thuéc vμo mét thuËt to¸n m· hãa riªng nμo) chØ gi¶ ®Þnh sù tån t¹i
cña mét kiÓu m· hãa (®èi xøng hoÆc kh«ng ®èi xøng) cã thÓ cã mét
tÝnh chÊt chung (ch¼ng h¹n nh− tÝnh giao hãan).
Trong phÇn nμy ta sÏ nghiªn cøu viÖc sö dông c¸c phÐp m·
hãa trong thùc tiÔn. MÆc dï c¸c øng dông thùc tiÔn nμy kh«ng
h×nh thøc nh− c¸c thñ tôc nh−ng chóng sÏ h−íng dÉn ta trong
viÖc sö dông c¸c phÐp m· hãa ®Ó thùc hiÖn c¸c nhiÖm vô trªn m¸y
tÝnh. Mét sè t×nh huèng trong m¸y tÝnh chØ liªn quan tíi mét
ng−êi sö dông. ë ®©y ch¼ng cÇn tíi mét quy t¾c nμo v× kh«ng cã
mét sù kh«ng nhÊt trÝ nμo vÒ tÝnh ®óng ®¾n hoÆc vÒ sù tu©n thñ
Ch−¬ng 5: C¸c thñ tôc vµ c¸c chó ý trong thùc tÕ khi sö dông m· hãa 243

®èi víi mét quy t¾c. Trong nh÷ng tr−êng hîp nμy, tÝnh bÝ mËt vμ
tÝnh x¸c thùc lμ nh÷ng vÊn ®Ò quan träng. Nh÷ng t×nh huèng nμy
®−îc gäi lμ c¸c thùc tÕ m· hãa hay c¸c kü thuËt m· hãa. Chóng lμ
chñ ®Ò cña phÇn cßn l¹i trong ch−¬ng nμy.
Chóng ta ph¶i th«ng th¹o vÒ c¸c ®Æc tÝnh, c¸c −u nh−îc ®iÓm
cña thuËt to¸n m· hãa. Khi ®ã ta cã thÓ chän c¸c thuËt to¸n mét
c¸ch ®óng ®¾n vμ sö dông nh÷ng ph−¬ng ph¸p m· hãa thÝch hîp.
Trong phÇn nμy ta sÏ xem xÐt c¸c tiªu chuÈn ®Ó ph¸n xÐt c¸c hÖ
thèng m· hãa riªng. Hai s¬ ®å chñ yÕu cÇn xem xÐt lμ RSA vμ
DES. Ta còng nghiªn cøu nh÷ng h¹n chÕ chung cña c¸c hÖ thèng
khãa ®èi xøng vμ khãa kh«ng ®èi xøng.
Ta biÕt r»ng, Shannon ®· ®Ò xuÊt c¸c tiªu chuÈn chung cho
c¸c hÖ thèng m· hãa. MÆc dï c¸c tiªu chuÈn nμy ®· ®−îc x©y dùng
tr−íc khi phæ cËp c¸c m¸y tÝnh - modem nh−ng chóng vÉn cßn cã
kh¶ n¨ng ¸p dông vμo nh÷ng vÊn ®Ò cÇn quan t©m cho tíi ngμy
nay. Ta sÏ nh¾c l¹i c¸c tiªu chuÈn nμy:
- Møc ®é bÝ mËt cÇn thiÕt sÏ x¸c ®Þnh khèi l−îng c«ng viÖc
thÝch hîp ®Ó m· hãa vμ gi¶i m·.
- TËp c¸c khãa kh«ng liªn quan tíi ®é phøc t¹p.
- øng dông ph¶i ®¬n gi¶n nh− cã thÓ ®−îc.
- C¸c sai sãt trong m· hãa ph¶i kh«ng lan truyÒn vμ g©y nªn
ng−ng trÖ nh÷ng th«ng tin tiÕp sau trong th«ng b¸o.
- KÝch th−íc cña b¶n m· ph¶i kh«ng lín h¬n kÝch th−íc cña
th«ng b¸o gèc.
Tiªu chuÈn ®Çu tiªn lμ c¬ së cña c¸c hÖ mËt. Tiªu chuÈn thø
hai lμ quan träng h¬n khi c¸c khãa (vμ toμn bé hÖ thèng m· hãa)
®−îc tÝnh b»ng tay. Víi c¸c m¸y tÝnh ®Ó thùc hiÖn mét c«ng viÖc
phøc t¹p hay tÎ nh¹t th× ®é phøc t¹p cña viÖc chän khãa kh«ng
ph¶i lμ vÊn ®Ò. Trªn thùc tÕ, víi c¸c thuËt to¸n to¸n häc nh− RSA
244 Gi¸o tr×nh MËt m· häc

hay ElGamal th× c¸c khãa lμ rÊt phøc t¹p theo nghÜa chØ cã nh÷ng
sè nguyªn hoÆc nh÷ng cÆp sè nguyªn nhÊt ®Þnh míi cã thÓ lμ
khãa. Tuy nhiªn, khi viÖc trao ®æi khãa lμ cÇn thiÕt hoÆc mong
muèn th× viÖc ph©n phèi khãa tíi nh÷ng ng−êi sö dông còng lμ
mét khã kh¨n. øng dông mét s¬ ®å m· hãa vÉn cÇn thiÕt ph¶i ®¬n
gi¶n. Tuy nhiªn, víi viÖc sö dông m¸y tÝnh, c¸c thuËt to¸n tr−íc
kia kh«ng cã kh¶ n¨ng thùc hiÖn th× nay ®· trë nªn cã thÓ øng
dông. ViÖc lan truyÒn sai ®−îc m« t¶ trong tiªu chuÈn thø t− vÉn
cßn ph¶i l−u t©m. Cuèi cïng, tiªu chuÈn vÒ kÝch th−íc b¶n m·
kh«ng cßn quan träng n÷a.
Ta sÏ xem xÐt c¸c tiªu chuÈn nμy chi tiÕt h¬n trong phÇn sau.

5.3.1. Møc ®é b¶o mËt


Cuéc tranh luËn liªn quan tíi viÖc x¸c nhËn l¹i DES lμ mét
vÝ dô tèt cho sù thÝch øng cña b¶o mËt ngμy nay. ViÖc DES cã thÓ
bÞ th¸m nÕu cã ®ñ thêi gian vμ tμi nguyªn tÝnh to¸n vÉn ch−a ®ñ
®Ó ng−êi ta lo¹i bá nã (Cã thÓ coi DES chÝnh thøc bÞ lo¹i vμo cuèi
n¨m 1998, Triple - DES t¹m thêi thay cho DES trong khi chê ®îi
chuÈn míi AES ra ®êi (AES - Advanced Eneryption Standard -
ChuÈn mËt m· tiªn tiÕn) dù kiÕn ®−a ra vμo n¨m 2001, c¸c th¶o
luËn trªn m¹ng ®ang thóc tiÕn viÖc x©y dùng AES cã khãa 256 bit,
ch¼ng h¹n nh− c¸c thuËt to¸n RC-6, CAST-256,...).
Tõ 1979, Hellman ®· chøng tá r»ng mét th¸m m· cã chñ ®Ých
cã thÓ gi¶i m· mét th«ng b¸o ®−îc m· b»ng DES. MÆc dï gi¸ c¸c
chip gi¶i m· ngμy cμng rÎ nh−ng chi phÝ ®Ó x©y dùng mét m¸y gi¶i
m· DES vÉn cßn lín tíi møc khã cã thÓ cã mét c«ng ty t− nh©n
nμo, hoÆc thËm chÝ mét tæ chøc téi ph¹m d¸m bá ra. Mét sè ng−êi
sö dông m· hãa chØ cÇn gi÷ ®−îc bÝ mËt ®èi víi nh÷ng th¸m m·
t×nh cê chø kh«ng nhÊt thiÕt gi÷ ®−îc bÝ mËt ®èi víi c¸c th¸m m·
thùc sù muèn ph¸. VÝ dô, mét c«ng ty cã thÓ m· hãa c¸c d÷ liÖu cã
Ch−¬ng 5: C¸c thñ tôc vµ c¸c chó ý trong thùc tÕ khi sö dông m· hãa 245

liªn quan tíi mét dßng s¶n phÈm míi ®Ó duy tr× −u thÕ c¹nh
tranh. C¸c ng©n hμng m· hãa c¸c th«ng b¸o ®Ó chuyÓn c¸c tμi
kho¶n nh»m tr¸nh c¸c söa ®æi bÊt hîp ph¸p vμ ®Ó x¸c ®Þnh viÖc
truyÒn gi¶ m¹o c¸c sai chø kh«ng nh»m b¶o vÖ tÝnh riªng t−. Mét
ng−êi sö dông m· hãa tÖp (file) chøa ch−¬ng tr×nh nguån nh»m
tr¸nh c¸c söa ®æi bÊt hîp ph¸p.
Trong nh÷ng tr−êng hîp nμy vμ trong nhiÒu tr−êng hîp
kh¸c, gi¸ trÞ cña th«ng tin ®−îc m· hãa ph¶i ®−îc c©n nh¾c víi chi
phÝ th¸m m·. Khi ®ã, DES vÉn ®−îc coi lμ ®ñ møc an toμn. §èi víi
hÖ mËt RSA, t×nh h×nh còng t−¬ng tù nh− vËy. KÓ tõ khi ®−îc ®−a
vμo n¨m 1978 tíi nay, vÉn ch−a cã mét th¸ch ®è nghiªm träng nμo
®−îc ®−a ra ®èi víi tÝnh an toμn cña nã.
Tãm l¹i, tÝnh b¶o mËt cña mét hÖ mËt m· ph¶i thÝch hîp víi
møc ®é quan träng cña d÷ liÖu cÇn b¶o vÖ. Ng−êi sö dông c¸c hÖ
thèng mËt m· ph¶i xem xÐt gi¸ trÞ cña d÷ liÖu cÇn b¶o vÖ khi chän
mét hÖ thèng mËt m·.

5.3.2. Qu¶n lý khãa


§èi víi c¸c hÖ thèng m· hãa phøc t¹p h¬n, c¸c khãa kh«ng
thÓ chØ ®−îc chän ®¬n gi¶n mét c¸ch ngÉu nhiªn. C¸c hÖ thèng
khãa c«ng khai th−êng cÇn 2 khãa trong mét cÆp ®−îc x¸c ®Þnh
rÊt cÈn thËn. Ngay c¶ ®èi víi c¸c thuËt to¸n ®èi xøng, viÖc tån t¹i
c¸c khãa yÕu còng kh«ng cho phÐp t¹o khãa hoμn toμn ngÉu
nhiªn. V× c¸c lý do nμy nªn c¸c khãa th−êng ®−îc t¹o tõ mét trung
t©m t¹o khãa.
Khi xem xÐt tíi vÊn ®Ò trªn, viÖc ph©n phèi khãa cã thÓ lμ
mét nhiÖm vô chÝnh. Khi tíi lóc cÇn thay ®æi khãa, mçi mét chñ së
h÷u khãa ph¶i ®−îc th«ng b¸o vÒ viÖc thay ®æi khãa vμ tÊt c¶
nh÷ng ng−êi dïng ph¶i b¾t ®Çu sö dông khãa míi ®ång thêi (®Ó
tr¸nh cã mét sè th«ng b¸o l¹i ®−îc m· hãa b»ng khãa cò thay v×
b»ng khãa míi vμ nh»m ph©n biÖt gi÷a chóng).
246 Gi¸o tr×nh MËt m· häc

ViÖc thay thÕ khãa còng lμ mét vÊn ®Ò v× c¸c khãa cò ph¶i
®−îc l−u gi÷ ®Ó cho phÐp gi¶i m· c¸c th«ng b¸o (®−îc m· b»ng c¸c
khãa cò) ®−îc l−u l¹i.

5.3.3. C¸c khãa bÞ mÊt (bÞ lé)


C¶ hai hÖ thèng khãa ®èi xøng vμ kh«ng ®èi xøng ®Òu nh¹y
c¶m ®èi víi viÖc mÊt khãa, lé khãa hoÆc bÞ ®¸nh c¾p khãa. C¸ch xö
lý duy nhÊt ®−îc biÕt lμ ph¶i kiÓm tra ®Þnh kú. Ng−êi sö dông
ph¶i biÕt khi nμo mét khãa cã thÓ bÞ tæn h¹i. NÕu ®iÒu ®ã x¶y ra
th× ng−êi sö dông ph¶i b¸o cho kho trung t©m hoÆc cho tÊt c¶
nh÷ng ai cã thÓ nhËn c¸c th«ng b¸o tõ hä r»ng khãa cã kh¶ n¨ng
®· bÞ lé. TÊt c¶ nh÷ng n¬i thu nhËn c¸c th«ng b¸o tõ ng−êi sö
dông nμy ph¶i ®−îc biÕt r»ng hä ph¶i nghi ngê mäi th«ng b¸o
nhËn ®−îc sau ngμy b¸o. Hä còng ph¶i biÕt r»ng hä kh«ng ®−îc
göi bÊt kú mét th«ng b¸o nμo n÷a ®−îc m· hãa b»ng khãa c«ng
khai cña ng−êi ®· bÞ lé khãa.
Thñ tôc nμy (kh«ng thùc sù lμ mét thñ tôc tèi −u) lμ mét
thñ tôc kh¸ h÷u dông. Mét ng−êi dïng muèn rót l¹i mét tháa
thuËn ®· ký chØ cÇn tuyªn bè ®· lé khãa riªng ë thêi ®iÓm tr−íc
ngμy ký tháa thuËn. Bëi v× khãa riªng ®· ®−îc coi lμ lé nªn bÊt cø
ai còng cã thÓ lμm nh− ng−êi dïng (®· bÞ mÊt khãa).

5.3.4. §é phøc t¹p m· hãa


Ta sÏ xem xÐt tiÕp tíi tÝnh phøc t¹p ®Ó thùc hiÖn mét phÐp
m· hãa. Cã hai vÊn ®Ò chÝnh ë ®©y lμ ®é trÔ tr−íc khi thuËt to¸n
m· hãa cã thÓ b¾t ®Çu t¹o ra b¶n m· vμ ®é chËm cña b¶n th©n
thuËt to¸n m· hãa.

5.3.4.1. §é trÔ tr−íc khi m· hãa


§é trÔ tr−íc khi m· hãa b¾t ®Çu phô thuéc vμo lo¹i m· lμ m·
khèi hay m· dßng vμ kÝch th−íc cña khèi. Nh− ®· m« t¶ trong
ch−¬ng 2, c¸c m· dßng lμ thÝch hîp ®Ó thuËt to¸n m· hãa cã thÓ
Ch−¬ng 5: C¸c thñ tôc vµ c¸c chó ý trong thùc tÕ khi sö dông m· hãa 247

m· hãa ngay mçi khi cã mét ký tù xuÊt hiÖn. KÐm thÝch hîp h¬n
mét chót lμ c¸c m· dßng lμm viÖc trªn c¸c khèi. Mçi ký tù kh«ng
thÓ ®−îc m· hãa ngay khi nã xuÊt hiÖn nh−ng c¸c ký tù míi sÏ
®−îc gi÷ cho tíi khi nhËn ®−îc mét khèi (vÝ dô 8 ký tù 8 bit hay 64
bit ®èi víi DES). C¸c hμm m· hãa Ýt thÝch hîp nhÊt lμ c¸c hμm m·
toμn bé th«ng b¸o râ ph¶i ®−îc nhËn tr−íc khi cã thÓ b¾t ®Çu viÖc
m· hãa.
NhiÒu thuËt to¸n mËt m· th«ng th−êng (bao gåm RSA,
Merkle - Hellman, ElGamal, DES vμ Skipjack) lμ c¸c mËt m·
khèi. Víi DES, mét khèi gåm 64 bit. Víi RSA, kh«ng cã ®é dμi
khèi b¾t buéc (mÆc dï c¸c khèi ng¾n sÏ cã ®é mËt h¹n chÕ). §é dμi
khèi lín nhÊt còng lμ mét tham sè lùa chän ®èi víi ng−êi ¸p dông.
C¸c nhμ nghiªn cøu ph¸t triÓn RSA khuyÕn nghÞ ®é dμi khèi
nªn tõ 100 tíi 200 bit. C¸c ®é dμi khèi cña DES vμ RSA thÝch hîp
cho c¸c øng dông trong th−¬ng m¹i.

5.3.4.2. Tèc ®é m· hãa


Mét sè thuËt to¸n m· hãa thùc hiÖn mét khèi l−îng c«ng viÖc
kh«ng ®æi ®èi víi mét ký tù ®−îc m· (Ch¼ng h¹n, víi c¸c mËt m·
thay thÕ, tÊt c¶ c«ng viÖc chñ yÕu lμ qu¸ tr×nh tra cøu b¶ng). DES,
Skipjack, RSA, Merkle - Hellman vμ ElGamal mÆc dï lμ c¸c thuËt
to¸n phøc t¹p h¬n nhiÒu nh−ng ®Òu thùc hiÖn cïng mét l−îng
tÝnh to¸n ®èi víi mét khèi. TÊt c¶ c¸c thuËt to¸n nμy ho¹t ®éng
theo mét thêi gian tØ lÖ víi kÝch th−íc cña b¶n râ, chØ cã h»ng sè tØ
lÖ lμ kh¸c nhau.
Tèc ®é m· hãa lμ mét tham sè quan träng v× nã ®¶m b¶o r»ng
nÕu mét thuËt to¸n m· hãa cã thÓ m· hãa xong mét khèi tr−íc khi
nhËn ®−îc khèi thø hai th× thuËt to¸n nμy sÏ kh«ng lμm gi¶m tèc
®é cña øng dông. Lu«n cã c¸c øng dông phÇn cøng (chip) ®èi víi
hÇu hÕt c¸c thuËt to¸n th«ng dông ®¶m b¶o lμm viÖc víi c¸c tèc ®é
hîp lý.
248 Gi¸o tr×nh MËt m· häc

C¸c thuËt to¸n khãa c«ng khai chËm h¬n rÊt nhiÒu so víi c¸c
thuËt to¸n khãa ®èi xøng. C¸c thuËt to¸n ®èi xøng ®Òu dùa trªn
c¸c phÐp to¸n h÷u hiÖu nh− c¸c phÐp tra cøu b¶ng, dÞch, chuyÓn
vÞ vμ c¸c phÐp logic (nh− vμ, hoÆc, céng mod 2...). TÊt c¶ c¸c
phÐp to¸n nμy ®Òu cã c¸c chøc n¨ng phÇn cøng tiªu chuÈn. C¸c
thuËt to¸n kh«ng ®èi xøng ®Òu x©y dùng trªn c¸c bμi to¸n khã.
Víi c¸c khãa cã ®é dμi cμng lín th× ®é phøc t¹p tÝnh to¸n cμng
t¨ng theo tØ lÖ hμm m·. C¸c sè liÖu trong b¶ng 5.1 cho ta thÊy
r»ng m· hãa ®èi xøng thùc hiÖn nhanh h¬n tõ 1000 tíi 5000 lÇn
so víi mËt m· khãa c«ng khai.

B¶ng 5.1: Tèc ®é m· hãa


ThuËt to¸n PhÇn cøng (bit/s) PhÇn mÒm (bit/s./MIPS)
M· hãa RSA 220K 0.5
M· hãa RSA 220K 32K
MD4 220K 1300K
9
DES 1,26 (1,2. 10 ) 400K

5.3.5. Lan truyÒn sai


C¸c sai trong truyÒn dÉn lμ chñ yÕu vμ g©y t¸c h¹i nghiªm
träng. Ta còng biÕt r»ng c¸c m¹ng côc bé hoÆc c¸c m¹ng ë xa
th−êng chÞu c¸c sai truyÒn dÉn. C¸c sai nμy cã thÓ kh«ng b¸o cho
ta biÕt cã kÎ thu chÆn. C¸c thuËt to¸n m· hãa lý t−ëng ph¶i kh«ng
bÞ ¶nh h−ëng cña c¸c sai cña m¹ng. Th«ng th−êng, m¹ng sÏ chÞu
tr¸ch nhiÖm x¸c ®Þnh c¸c cuéc liªn l¹c bÞ sai vμ ph¸t l¹i c¸c th«ng
b¸o cã lçi sao cho ng−êi dïng kh«ng ph¶i quan t©m ®Õn.

Mét sai thùc sù (do sù thay ®æi cña th¸m m·) ph¶i thÓ hiÖn
râ trªn b¶n m· sao cho mét sù thay ®æi bÊt kú ®Òu dÔ dμng thÊy
®−îc. Kh«ng cã mét thuËt to¸n th«ng dông nμo cã c¬ chÕ chèng
x©m nhËp. Nhê c¸c c¬ chÕ nμy, thuËt to¸n m· hãa sÏ bÞ bãp mÐo
Ch−¬ng 5: C¸c thñ tôc vµ c¸c chó ý trong thùc tÕ khi sö dông m· hãa 249

tíi møc thËm chÝ chØ cÇn thay ®æi 1 bit ®Çu ra còng sÏ dÉn tíi
th«ng b¸o ®−îc gi¶i m· bÞ bãp mÐo nghiªm träng. NÕu b¶n râ lμ
mét ®o¹n v¨n th× sù thay ®æi sÏ ®−îc thÊy rÊt râ. NÕu b¶n râ lμ d÷
liÖu nhÞ ph©n th× sù thay ®æi cã thÓ kh«ng bÞ ph¸t hiÖn.

5.3.6. KÝch th−íc b¶n m·


KÝch th−íc cña b¶n m· ®−îc t¹o thμnh còng lμ mét tham sè
quan träng. Trong mét sè tr−êng hîp, b¶n m· cã thÓ n»m trong
cïng mét kh«ng gian víi b¶n râ. Khi ®ã, viÖc t¨ng mét chót vÒ
kÝch th−íc còng lμ ®iÒu kh«ng thÓ chÊp nhËn ®−îc. CÇn chó ý
r»ng c¸c mËt m· khèi ph¶i m· hãa ®ång thêi mét khèi ®Çy ®ñ.
MÆc dï cã thÓ dÔ dμng ®én thªm vμo khèi cuèi cïng kh«ng ®Çy ®ñ
®Ó t¨ng kÝch th−íc nh−ng viÖc ®én thªm nμy sÏ lμm t¨ng kÝch
th−íc cña v¨n b¶n ë ®Çu ra. DES vμ Skipjack t¹o ra mét ®Çu ra cã
kÝch th−íc ®óng b»ng kÝch th−íc ®Çu vμo hoÆc h¬i lín h¬n mét
chót. (Mét vector khëi t¹o hoÆc c¸c bit ®én lμm ®Çy ®ñ cho khèi
cuèi cïng sÏ lμm t¨ng tèi ®a lμ mét hoÆc hai khèi). Trong c¸c
thuËt to¸n c«ng khai, ®Çu ra cã quan hÖ víi kÝch th−íc ®Çu vμo
nh−ng kh«ng nhÊt thiÕt ph¶i tØ lÖ víi kÝch th−íc nμy.

5.4. C¶i thiÖn ®é mËt cña hÖ mËt

DES vμ RSA ®−îc xem lμ c¸c thuËt to¸n m· hãa an toμn qua
nhiÒu n¨m nghiªn cøu cña c¸c nhμ th¸m m·. C¸c thuËt to¸n
Skipjack vμ ElGamal còng ®−îc coi lμ an toμn mÆc dï chóng ch−a
®−îc thö th¸ch l©u nh− DES vμ RSA. MÆc dï th¸m m· khã cã thÓ
t×m ®−îc néi dung cña c¸c th«ng b¸o ®−îc m· b»ng c¸c thuËt to¸n
trªn nh−ng viÖc m« t¶ nh÷ng tÊn c«ng cã kh¶ n¨ng ®èi víi mét hÖ
mËt sÏ chøa ®ùng nhiÒu yÕu ®iÓm tiÒm n¨ng h¬n viÖc ph¸ bÝ mËt
cña mét th«ng b¸o. Trong phÇn nμy, ta sÏ xem xÐt mét sè ph−¬ng
ph¸p tÊn c«ng nμy.
250 Gi¸o tr×nh MËt m· häc

5.4.1. Ng¨n ngõa vμ ph¸t hiÖn sai


Trong DES, mçi khãa lμ mét thùc thÓ. Mét th¸m m· ®· n¾m
®−îc khu«n d¹ng cña c¸c th«ng b¸o cña ng−êi göi cã thÓ söa ®æi
c¸c th«ng b¸o mμ kh«ng cÇn ph¶i ph¸ m·.

5.4.1.1. LÆp l¹i khèi


VÝ dô, ta xÐt t×nh huèng sau. Hai ng©n hμng tháa thuËn trao
®æi ®iÖn tö c¸c th«ng tin vÒ chuyÓn tiÒn trao ®æi gi÷a hai ng©n
hμng. §Ó b¶o mËt, hä sö dông c¸c sè liÖu ®−îc m· hãa. Hä tháa
thuËn ph¸t c¸c b¶n ghi cã khu«n d¹ng x¸c ®Þnh nh− sau:
Chñ tµi kho¶n Sè tµi kho¶n L−îng tiÒn chuyÓn
24 byte 8 byte 8 byte

C¸c b¶n ghi nμy gåm 40 byte = 320 bit = 5 khèi 64 bit (xem
h×nh 5.21).

Khèi 1 Khèi 2 Khèi 3 Khèi 4 Khèi 5

§· m· hãa Tªn Tµi kho¶n Sè l−îng


c¸c byte 1 24 25 32 33 40

H×nh 5.21
Gi¶ sö John cã thÓ thu trém kªnh d÷ liÖu gi÷a hai ng©n
hμng. Ngμy ®Çu tiªn, John víi t− c¸ch chñ tμi kho¶n sÏ chuyÓn
100 USD tõ mét ng©n hμng nμy sang mét ng©n hμng kh¸c. Ngμy
tiÕp theo anh ta còng lμm nh− vËy. ë c¶ hai ngμy, anh ta vÉn ®Òu
thu chÆn vμ ghi l¹i qu¸ tr×nh truyÒn dÉn tõ ng©n hμng nμy tíi
ng©n hμng kh¸c. Gi¶ sö r»ng c¶ hai lÇn truyÒn dÉn ®Òu ®−îc göi
b»ng cïng mét khãa m· hãa vμ c¶ hai lÇn ®Òu b¾t ®Çu b»ng mét
b¶n ghi. John biÕt r»ng c¶ hai lÇn truyÒn ®Òu cã 3 khèi biÓu thÞ
tªn cña m×nh, mét khèi biÓu thÞ sè tμi kho¶n vμ mét khèi biÓu thÞ
l−îng tiÒn chuyÓn. John còng biÕt r»ng 5 khèi nμy ë c¶ hai ngμy
®Òu nh− nhau. ViÖc x¸c ®Þnh d÷ liÖu trong c¸c tr−êng nμy chØ lμ
Ch−¬ng 5: C¸c thñ tôc vµ c¸c chó ý trong thùc tÕ khi sö dông m· hãa 251

mét qu¸ tr×nh t×m kiÕm hai phÇn gièng nhau. C«ng viÖc tÎ nh¹t
nμy cã thÓ thùc hiÖn dÔ dμng b»ng m¸y tÝnh.

Ngμy tiÕp theo, John kiÓm tra gi¶ ®Þnh cña m×nh b»ng c¸ch
göi qua mét giao dÞch kh¸c víi mét l−îng tiÒn kh¸c. John l¹i t×m
kiÕm 4 khèi gièng víi 4 khèi tr−íc ®ã, tuy nhiªn c¸c b¶n ghi nμy sÏ
kh¸c nhau ë khèi thø 5. NÕu chØ cã mét tËp c¸c khèi phï hîp víi
mÉu nμy th× John cã d¹ng ®· m· tªn, sè tμi kho¶n cña anh ta.
B»ng c¸ch chÌn thªm c¸c sè liÖu vμo ®−êng truyÒn thay cho
viÖc ®äc c¸c th«ng b¸o tõ nã, John b©y giê cã thÓ thay thÕ mét
ng−êi bÊt kú vμ sè tμi kho¶n cña anh ta b»ng tªn vμ sè tμi kho¶n
cña m×nh, riªng sè l−îng tiÒn th× kh«ng ®ông ch¹m tíi. John
kh«ng cÇn biÕt ai lμ ng−êi nhËn tiÒn vμ l−îng tiÒn ®−îc nhËn lμ
bao nhiªu, anh ta chØ ®¬n gi¶n lμ thay vμo tªn vμo tªn vμ sè tμi
kho¶n cña m×nh vμ quan s¸t ng©n s¸ch trong tμi kho¶n cña m×nh
t¨ng tr−ëng. Kü thuËt nμy ®−îc gäi lμ kü thuËt lÆp l¹i khèi. Trong
kü thuËt nμy, c¸c khèi ®· m· tõ mét lÇn truyÒn dÉn sÏ ®−îc göi l¹i
ë lÇn truyÒn dÉn thø hai. §Ó sö dông kü thuËt nμy, ng−êi thu
chÆn kh«ng cÇn ph¶i ph¸ m·.

ë cuèi mçi lÇn truyÒn, c¸c ng©n hμng th−êng göi tæng c¸c
chuyÓn kho¶n nh−ng John sÏ kh«ng can thiÖp vμo, bëi vËy, tæng
sè sÏ c©n b»ng. NÕu John may m¾n th× Ýt nhÊt lμ mét trong nh÷ng
lÇn truyÒn ®· söa ®æi sÏ lμm anh ta giμu to. C¸c kh¸ch hμng cã
thÓ kh«ng nhËn thÊy thiÕu mét lÇn chuyÓn (khi John chuyÓn sang
tμi kho¶n cña m×nh) tíi mét th¸ng sau khi John b¾t ®Çu can
thiÖp. John sÏ tiÕp tôc trß ch¬i nμy trong vßng tèi ®a 1 th¸ng vμ
rót tiÒn mÆt ra khái tμi kho¶n cña m×nh.
John cã thÓ coi lμ ng−êi trong cuéc theo nghÜa anh ta biÕt
khu«n d¹ng truyÒn, tÇn suÊt thay ®æi khãa, c¸c truyÒn dÉn nμy
th−êng x¶y ra nh− thÕ nμo... John còng biÕt c¸ch ®¶m b¶o an toμn
khi cã sù cè. Kü thuËt ®−îc dïng ë ®©y ®· ®¬n gi¶n hãa ®«i chót
252 Gi¸o tr×nh MËt m· häc

nh»m lμm cho viÖc gi¶i thÝch dÔ dμng h¬n vμ tr¸nh c¸c h−íng dÉn
chi tiÕt cho kÎ xÊu lîi dông.
Do c¸ch xö lý mçi khèi cña b¶n râ lμ ®éc lËp nªn DES vμ c¸c
mËt m· khèi kh¸c ®Òu bÞ ¶nh h−ëng bëi lo¹i tÊn c«ng nμy. RÊt
may lμ cã mét gi¶i ph¸p kh¾c phôc dÔ dμng, ®−îc gäi lμ gi¶i ph¸p
xÝch khèi.

5.4.1.2. Gi¶i ph¸p xÝch khèi


Ta biÕt r»ng khi céng mod 2 mét x©u nhÞ ph©n víi chÝnh nã
th× kÕt qu¶ sÏ b»ng 0 vμ phÐp "hoÆc cã lo¹i trõ" nμy lμ mét phÐp
to¸n giao hãan. Bëi vËy, víi 2 x©u bÊt kú a vμ b , ta cã:
(a ⊕ b ) ⊕ a = (a ⊕ a ) ⊕ b
= 0⊕b
=b

B1 E
E(B1) = C1
Khãa K DES

B2 E
E(B2 C1) = C2
Khãa K DES

B3 E
E(B3 C2 ) = C3
Khãa K DES

E(B3 E(B2 E(B1)))


Bi E
E(Bi C i-1) = Ci
Khãa K DES

H×nh 5.22: VÝ dô vÒ gi¶i ph¸p xÝch khèi


Víi gi¶i ph¸p xÝch khèi, mçi khèi cÇn ph¸t sÏ ®−îc kÕt hîp
b»ng phÐp céng mod 2 víi c¸c khèi tr−íc. NÕu c¸c khèi lμ B1, B2,
B3 vμ c¸c hμm m· hãa lμ E( ) th× c¸c khèi sau sÏ ®−îc ph¸t:
Ch−¬ng 5: C¸c thñ tôc vµ c¸c chó ý trong thùc tÕ khi sö dông m· hãa 253

C1 = E(B1 )
C 2 = E(E(B1 ) ⊕ B 2 ) = E(C1 + B 2 )
C3 = E(E(E(B1 ) ⊕ B 2 ) ⊕ B 3 ) = E(C 2 + B 3 )

Qu¸ tr×nh nμy ®−îc m« t¶ trªn h×nh h×nh 5.22.


Bªn nhËn sÏ gi¶i m· khèi ®Çu tiªn nhËn ®−îc C1 nh− th«ng
th−êng. Bªn nhËn sÏ gi¶i m· khèi thø hai nhËn ®−îc (chÝnh lμ
C 2 = E(C1 + B 2 ) ) vμ thu ®−îc C1 + B 2 . Tõ C1 ®· nhËn ®−îc tr−íc
kia, bªn thu sÏ tÝnh (C1 ⊕ B 2 ) ⊕ C1 . Ta cã:

(C1 ⊕ B 2 ) ⊕ C1 = (C1 ⊕ C1 ) ⊕ B 2 = 0 ⊕ B2 = B2

§©y lμ gi¸ trÞ râ cña khèi thø hai. C¸c khèi tiÕp sau còng
®−îc xö lý t−¬ng tù.
Nh− ®· nªu ra trªn h×nh 5.23, ta thÊy r»ng c¸c khèi b¶n râ
nh− nhau ®−îc ph¸t t¸ch biÖt hoÆc ®−îc ph¸t trong cïng mét lÇn
truyÒn kh«ng nhÊt thiÕt t¹o ra cïng mét b¶n m·. Cã sù kh¸c nhau
nh− vËy v× mçi khèi sÏ phô thuéc vμo tÊt c¶ c¸c khèi ë phÇn tr−íc.
V× vËy, th¸m m· kh«ng thÓ lÆp l¹i c¸c khèi nhÊt ®Þnh tõ mét
®−êng truyÒn nμy sang mét lÇn truyÒn kh¸c hoÆc thËm chÝ lμ chØ
t×m c¸c khèi xuÊt ph¸t tõ cïng mét b¶n râ.
C i-1
Bi = B j E
E(Bi Ci-1) = Ci
DES
Khãa K
Bi = Bj Ci = C j trõ phi
C j-1 C i-1 = C j-1
Bj = Bi E
E(Bj Cj-1) = Cj
DES
Khãa K

H×nh 5.23: M· hãa c¸c khèi b¶n râ nh− nhau

§èi víi DES, mét khèi kh«ng lμm lé khèi kh¸c v×:
E(C1 ⊕ B 2 ) ≠ E(C1 ) ⊕ E(B 2 )
254 Gi¸o tr×nh MËt m· häc

ThËm chÝ nÕu th¸m m· biÕt r»ng C 2 = E(C1 ⊕ B 2 ) vμ ®· nhËn


®−îc C1 th× th«ng tin nμy còng kh«ng bÞ ®Ó lé B2 hoÆc thËm chÝ
chØ lμ E(B 2 ) .

5.4.1.3. Gi¸ trÞ ban ®Çu


ChÕ ®é xÝch khèi sÏ che giÊu c¸c khèi nh− nhau. Tuy nhiªn,
®èi víi mét sè th«ng b¸o mét sè khèi ®Çu tiªn cã thÓ l¹i tu©n theo
mét khu«n d¹ng ®Þnh tr−íc. Víi cïng mét khãa m· hãa, tÊt c¶ c¸c
th«ng b¸o d¹ng nμy sÏ l¹i t¹o ra cïng mét b¶n m· ë ®Çu ra.
NÕu ®iÒu nμy kh«ng thÓ chÊp nhËn ®−îc th× ta cã thÓ dïng
mét gi¸ trÞ ban ®Çu ®Ó n©ng cao ®é an toμn. Gi¸ trÞ nμy lμ mét x©u
ngÉu nhiªn nμo ®ã ®−îc dïng nh− khèi khëi ®Çu. Ch¼ng h¹n, x©u
nμy cã thÓ lμ thêi gian, ngμy th¸ng hiÖn thêi hoÆc lμ mét khèi
ngÉu nhiªn. X©u nμy ph¶i kh¸c nhau ®èi víi mçi th«ng b¸o ®−îc
m· hãa. C¶ bªn göi vμ bªn nhËn ®Òu ph¶i gi¶i m· khèi nμy nh−ng
chØ dïng nã ®Ó gi¶i m· cho c¸c khèi tiÕp theo (khèi nμy kh«ng
chøa d÷ liÖu).
B»ng c¸ch sö dông mét vÐct¬ khëi t¹o, th«ng b¸o B1B 2 B 3 K
sÏ trë thμnh th«ng b¸o IB1 B 2 B 3 K , khèi ®Çu tiªn ®−îc göi lμ E(I ) ,
trong ®ã I lμ gi¸ trÞ ban ®Çu. Khèi tiÕp theo ®−îc göi lμ
E(E(I ) ⊕ B1 ) . ThËm chÝ, nÕu hai khèi gièng nhau n»m trong c¸c
th«ng b¸o kh¸c nhau (vÝ dô B1 ) th× chóng còng kh«ng t¹o ra c¸c
b¶n m· gièng nhau (bëi v× I lμ kh¸c nhau ®èi víi mçi th«ng b¸o
nªn E(E(I ) ⊕ B1 ) sÏ lu«n kh¸c nhau).

5.4.2. M· hãa mét chiÒu


Mét sè phÐp m· hãa phô thuéc vμo mét hμm khã tÝnh to¸n.
VÝ dô, xÐt hμm lËp ph−¬ng y = x 3 . Cã thÓ dÔ dμng tÝnh x 3 b»ng
tay. Hμm ng−îc 3 y khã tÝnh to¸n h¬n nhiÒu. Hμm y = x 2 kh«ng
cã hμm ng−îc v× cã hai kh¶ n¨ng ®èi víi 2 y lμ + x vμ − x . C¸c
Ch−¬ng 5: C¸c thñ tôc vµ c¸c chó ý trong thùc tÕ khi sö dông m· hãa 255

hμm nh− vËy (dÔ tÝnh h¬n nhiÒu so víi c¸c hμm ng−îc cña chóng)
®−îc gäi lμ c¸c hμm mét chiÒu.

5.4.2.1. Sö dông m· hãa mét chiÒu


C¸c hμm mét chiÒu ®Æc biÖt h÷u Ých trong x¸c thùc. C¸c mËt
khÈu th−êng ®−îc dïng ®Ó kiÓm tra xem mét ng−êi sö dông ®ang
cè g¾ng ®¨ng nhËp cã ph¶i lμ mét ng−êi dïng hîp lÖ hay kh«ng?
ViÖc ®−a ra c«ng khai b¶ng mËt khÈu cña c¸c ng−êi dïng lμ nguy
hiÓm ®èi víi hÖ thèng m¸y tÝnh, bëi vËy nhiÒu hÖ thèng ®· sö
dông hμm mét chiÒu ®Ó m· hãa b¶ng mËt khÈu. HÖ thèng sÏ l−u
f (pw ) khi ng−êi sö dông nhËn ®−îc mËt khÈu míi pw, trong ®ã f
lμ hμm mét chiÒu. Khi cã mét ng−êi sö dông ®¨ng nhËp th× hÖ
thèng sÏ hái mËt khÈu. Ng−êi sö dông ®−a vμo vμ hÖ thèng sÏ l−u
mËt khÈu ®−îc m· b»ng khãa lμ chÝnh mËt khÈu ®ã.
HÖ thèng mËt khÈu lμ an toμn v× kh«ng thÓ kh«ng cã kh¶
n¨ng tÝnh ®−îc f −1 . Th¸m m· ph¶i t×m b¶ng mËt khÈu cña ng−êi
dïng lμ f (pw ) . Tuy nhiªn, th«ng tin nμy kh«ng cho phÐp th¸m m·
suy ra pw . H¬n n÷a, th¸m m· cã thÓ thö c¸c mËt khÈu kh¸c nhau
cho ®Õn khi t×m thÊy mét tõ w sao cho f (w ) = f (pw ) . Víi c¸c mËt
khÈu cã ®é dμi lín ®−îc chän tõ mét bé ký tù lín th× kiÓu tÊn c«ng
nμy ®−îc xem lμ kh«ng kh¶ thi.

5.4.2.2. Niªm phong mËt m·


Mét tÝnh chÊt h÷u dông kh¸c cña mËt m· lμ cã kh¶ n¨ng b¶o
vÖ d÷ liÖu khái nh÷ng can thiÖp bÊt hîp ph¸p. VÝ dô, trong mét
tÖp (file) d÷ liÖu th«ng th−êng, mét d÷ liÖu nμo ®ã, mét b¶n ghi
nμo ®ã hoÆc toμn bé tÖp cã thÓ bÞ söa ®æi mμ kh«ng bÞ ph¸t hiÖn. ë
®©y, ta chØ xem xÐt tíi c¸c tÖp mÆc dï nh÷ng t×nh huèng t−¬ng tù
còng cã thÓ ¸p dông ®èi víi mét b¶n ghi, mét tr−êng hoÆc mét
byte riªng lÎ.
256 Gi¸o tr×nh MËt m· häc

M· hãa th−êng dïng ®Ó b¶o mËt. Tuy nhiªn, trong mét sè


tr−êng hîp, tÝnh toμn vÑn l¹i lμ mét yÕu tè quan träng h¬n. VÝ dô,
trong mét hÖ thèng trÝch xuÊt d÷ liÖu, ®iÒu quan träng lμ ph¶i biÕt
r»ng b¶n sao ®−îc trÝch xuÊt lμ ®óng víi t− liÖu ®· l−u tr÷. T−¬ng
tù, trong mét hÖ thèng liªn l¹c an toμn, nhu cÇu truyÒn dÉn c¸c
th«ng b¸o ®óng cã thÓ cßn v−ît trªn c¸c nhu cÇu vÒ bÝ mËt. M·
hãa cã thÓ ®¶m b¶o ®−îc tÝnh toμn vÑn còng nh− tÝnh bÝ mËt.
Trong hÇu hÕt c¸c tÖp th−êng kh«ng cã sù rμng buéc nμo
gi÷a c¸c yÕu tè, tøc lμ mçi byte, mçi bit hay mçi ký tù lμ ®éc lËp
víi nhau trong tÖp. ViÖc thay ®æi mét mét gi¸ trÞ sÏ ¶nh h−ëng tíi
tÝnh toμn vÑn cña tÖp, tuy nhiªn ®iÒu nμy rÊt khã ph¸t hiÖn ®−îc.
MËt m· cã thÓ ®−îc dïng ®Ó niªm phong mét tÖp (gièng nh−
bao nã b»ng mét vá chÊt dÎo) sao cho bÊt kú mét sù thay ®æi nμo
®Òu bÞ ph¸t hiÖn. Mét trong nh÷ng kü thuËt nμy lμ tÝnh mét hμm
mËt m· cña tÖp (th−êng ®−îc gäi lμ hμm b¨m (hask) hay tæng
kiÓm tra). Trong ch−¬ng 4, ta ®· nghiªn cøu mét sè thuËt to¸n
b¨m. Hμm nμy ph¶i phô thuéc vμo tÊt c¶ c¸c bit cña tÖp cÇn niªm
phong sao cho bÊt kú mét sù thay ®æi nμo thËm chÝ chØ lμ mét bit
riªng lÎ còng lμm thay ®æi kÕt qu¶ tæng kiÓm tra.
Gi¸ trÞ tæng kiÓm tra ®−îc l−u cïng víi tÖp. Sau ®ã, mçi khi
tÖp ®−îc sö dông th× tæng kiÓm tra sÏ ®−îc tÝnh l¹i. NÕu tæng kiÓm
tra tÝnh ®−îc phï hîp víi gi¸ trÞ ®· l−u th× ®iÒu ®ã cã nghÜa lμ tÖp
®· kh«ng bÞ söa ®æi.
Mét hμm mËt m· (ch¼ng h¹n DES) lμ ®Æc biÖt thÝch hîp cho
viÖc niªm phong cho c¸c gi¸ trÞ v× c¸c th¸m m· kh«ng thÓ biÕt
ph¶i thay ®æi gi¸ trÞ ®−îc l−u nh− thÕ nμo ®Ó phï hîp víi d÷ liÖu
cÇn söa ®æi. Nh− ®· m« t¶ ë trªn, chÕ ®é xÝch khèi cña DES sÏ t¹o
ra mét ®Çu ra mμ mçi khèi sÏ phô thuéc vμo gi¸ trÞ cña c¸c khèi
tr−íc. Tæng kiÓm tra mËt m· cña tÖp cã thÓ lμ khèi cuèi cïng
trong phÐp m· hãa DES ë chÕ ®é xÝch khèi v× r»ng khèi nμy sÏ phô
thuéc vμo tÊt c¶ c¸c khèi kh¸c.
Ch−¬ng 5: C¸c thñ tôc vµ c¸c chó ý trong thùc tÕ khi sö dông m· hãa 257

5.4.2.3. X¸c thùc


Ta nhí l¹i mét c©u chuyÖn cæ kÓ vÒ hai ng−êi c¾t mét ®ång
tiÒn lμm ®«i, mçi ng−êi gi÷ mét nöa vμ råi ra ®i. Anh ta nãi r»ng:
"NÕu cã mét ng−êi ®−a tin mang ®Õn cho b¹n mét c¸i g× ®ã kÌm
theo nöa ®ång tiÒn nμy th× b¹n sÏ biÕt r»ng ®ã lμ cña t«i". Víi m·
hãa, ta cã thÓ lμm t−¬ng tù. Trong giao tiÕp c¸ nh©n, khi nãi vÒ
mét ng−êi mμ chóng ta biÕt, ta cã nhiÒu c¸ch ®Ó ®¶m b¶o r»ng
ng−êi mμ chóng ta nãi chÝnh lμ ng−êi mμ ta ®· biÕt. Ta ghi nhËn
giäng nãi, phong c¸ch, c¸c mÉu ng÷ ®iÖu. Trong giao tiÕp m¸y
tÝnh, ta kh«ng cã nhiÒu chøng cø ®Ó ®¶m b¶o cho ta viÖc nhËn d¹ng.
Ph−¬ng thøc x¸c thùc chñ yÕu lμ mét mËt khÈu: ®ã lμ mét tõ
hoÆc mét x©u mμ chØ cã mét ng−êi biÕt. HÖ thèng m¸y tÝnh sÏ coi
r»ng mét ng−êi nμo ®ã biÕt mËt khÈu sÏ chÝnh lμ ng−êi cã mËt
khÈu ®ã. Nh− ta sÏ thÊy sau nμy, c¸c mËt khÈu cã thÓ coi lμ an
toμn, mÆc dï nÕu ®−îc sö dông kh«ng ®óng th× chóng chØ b¶o vÖ
®−îc chót Ýt.
M· hãa lμ mét d¹ng kh¸c cña x¸c thùc. NÕu b¹n nhËn ®−îc
mét th«ng b¸o ®· m· hãa mμ b¹n cã thÓ gi¶i m· b»ng khãa chØ cã
b¹n vμ ng−êi kh¸c biÕt th× th«ng b¸o lμ x¸c thùc. Trõ phi s¬ ®å m·
hãa ®· bÞ khãa hoÆc m· ®· bÞ lé, cßn kh«ng th× th«ng b¸o chØ cã
thÓ ®−îc t¹o bëi ng−êi cã khãa.
Kh¼ng ®Þnh nμy cã thÓ më réng cho toμn bé th«ng b¸o. Víi
mét thuËt to¸n m· hãa m¹nh th× kh«ng ai cã thÓ thay thÕ mét c©u
nμo ®ã trong th«ng b¸o vμ còng kh«ng thÓ d¸n c¸c mÈu th«ng b¸o
cò víi nhau. Ch¼ng h¹n, chÕ ®é xÝch khèi mËt m· ®· xÐt ë trªn
kh«ng cho phÐp thay bÊt kú mét khèi nμo trong th«ng b¸o. Th«ng
b¸o ®· nhËn lμ ®−îc göi bëi mét ng−êi ®· biÕt vμ kh«ng thÓ bÞ söa
®æi tr−íc khi thu nã.

5.4.2.4. C¸c nh·n thêi gian


Mét vÊn ®Ò an toμn kh¸c cÇn ®Æt ra lμ cã thÓ cã mét th«ng
b¸o ®· bÞ thu chÆn vμ b©y giê ®ang ®−îc ph¸t l¹i. (T×nh huèng nμy
258 Gi¸o tr×nh MËt m· häc

t−¬ng tù nh− viÖc ®æi tiÒn b»ng mét b¶n sao cña sÐc mμ ng−êi göi
kh«ng biÕt ®ã lμ mét b¶n sao). Trong t×nh huèng nμy, ng−êi göi vμ
ng−êi nhËn cã thÓ g¾n víi mçi th«ng b¸o mét nh·n thêi gian hoÆc
mét sè th«ng b¸o.
Sè th«ng b¸o lμ mét con sè ®−îc g¾n vμo mét th«ng b¸o.
Th¸m m· kh«ng cã c¸ch nμo ®Ó biÕt ®−îc c¸c bit cña sè nμy n»m ë
vÞ trÝ nμo trong th«ng b¸o hoÆc kh«ng thÓ biÕt c¸ch thay ®æi c¸c
bit ®Ó t¹o ra d¹ng m· hãa cña sè tiÕp sau hoÆc kh«ng thÓ biÕt c¸ch
thay ®æi c¸c bit nμy mμ kh«ng lμm gi¸n ®o¹n viÖc gi¶i m· phÇn
cßn l¹i cña th«ng b¸o. C¸c sè th«ng b¸o nμy kh«ng thÓ bÞ thay thÕ,
thay ®æi hoÆc gi¶ m¹o. Ng−êi nhËn ph¶i duy tr× viÖc ®Õm c¸c sè
th«ng b¸o ®· nhËn ®−îc. NÕu hai ng−êi sö dông mét tËp c¸c sè th×
ng−êi nhËn cã thÓ ngay lËp tøc biÕt ®−îc liÖu cã th«ng b¸o nμo
tr−íc th«ng b¸o hiÖn thêi ®· bÞ mÊt hoÆc bÞ chËm trÔ v× sè ®−îc m·
hãa cña th«ng b¸o hiÖn thêi ph¶i lín h¬n sè ®−îc m· hãa cña
th«ng b¸o tr−íc.
NÕu ng−êi göi cã nhiÒu th«ng b¸o th× cã thÓ gÆp ph¶i vÊn ®Ò
sè th«ng b¸o qu¸ dμi. V× lý do nμy, ng−êi ta th−êng ®Æt l¹i bé ®Õm
sè th«ng b¸o khi nã ®¹t tíi gi¸ trÞ qu¸ lín (th−êng lμ sau khi ®é
dμi cña sè th«ng b¸o v−ît qu¸ 30 bit). Trong tr−êng hîp nμy, tÊt
c¶ c¸c bªn thu ph¶i ®−îc th«ng b¸o r»ng sè th«ng b¸o ®−îc göi
tiÕp theo sÏ ®−îc ®Æt l¹i vÒ mét sè nhá (ch¼ng h¹n lμ 0).
Cßn mét vÊn ®Ò kh¸c lμ víi mçi cÆp ng−êi göi - ng−êi nhËn
ph¶i cã mét bé ®Õm riªng. Th«ng th−êng, ng−êi göi hoÆc ng−êi
nhËn ph¶i duy tr× nhiÒu bé ®Õm kh¸c nhau cho nhiÒu ®èi t−îng
kh¸c nhau.
Cã mét vÊn ®Ò n÷a lμ mét ng−êi göi sÏ cã mét bé t¹o sè th«ng
b¸o duy nhÊt cho c¸c th«ng b¸o tíi mäi ®èi t−îng. NÕu ng−êi göi
göi th«ng b¸o cho hai ng−êi A vμ B th× th«ng b¸o 1 cã thÓ ®i tíi A,
th«ng b¸o 2 tíi B, c¸c th«ng b¸o 3 vμ 4 tíi A, th«ng b¸o 5 tíi B ...
Ch−¬ng 5: C¸c thñ tôc vµ c¸c chó ý trong thùc tÕ khi sö dông m· hãa 259

Kh«ng mét bªn thu nμo cã thÓ biÕt ®−îc th«ng b¸o nμo ®· bÞ
mÊt v× c¸c sè th«ng b¸o chØ lμ mét d·y t¨ng chø kh«ng nhÊt thiÕt
ph¶i lμ tÊt c¶ c¸c sè trong mét d¶i nμo ®ã. Tuy nhiªn, bÊt cø lóc
nμo, bªn thu còng cã thÓ yªu cÇu ph¸t l¹i th«ng b¸o tr−íc. Sè
th«ng b¸o cÇn ph¶i ®−îc m· hãa hoÆc ph¶i ®−îc b¶o vÖ b»ng mét
c¸ch nμo ®ã ®Ó ng¨n chÆn viÖc söa ®æi.
C¸c nh·n thêi gian vμ ngμy th¸ng cã thÓ xem lμ mét c¸ch
mÒm dÎo h¬n ®«i chót. Chóng lμ c¸c dÊu hiÖu vÒ thêi gian vμ ngμy
th¸ng mμ th«ng b¸o ®−îc göi víi møc chÝnh x¸c ®ñ ®Ó cho kh«ng
cã hai th«ng b¸o nμo cã cïng mét dÊu hiÖu. C¸c nh·n nμy kh«ng
ph¶i ®Æt l¹i.
Bªn thu ph¶i ®ång bé vÒ thêi gian rÊt chÆt chÏ víi bªn göi.
Khi truyÒn nhanh, nÕu c¸c ®ång bé cña bªn thu vμ bªn ph¸t
kh«ng ®ång bé th× nh·n thêi gian cña ng−êi göi cã thÓ chËm h¬n
thêi gian hiÖn thêi cña bªn nhËn. Cã thÓ cho phÐp cã mét sai lÖch
nhá ®èi víi thêi gian ®ång bé hoÆc ph¶i ghi nhËn r»ng c¸c nh·n
thêi gian cña bªn göi lu«n nhanh h¬n mét chót.
B©y giê, chóng ta sÏ nghiªn cøu c¸c khÝa c¹nh kh¸c nhau cña
DES trong c¸c øng dông riªng trong viÖc ®¶m b¶o tÝnh toμn vÑn,
tr¸nh sö dông l¹i vμ ®¶m b¶o bÝ mËt. C¸c øng dông nμy cã thÓ thu
®−îc tõ nhiÒu hÖ thèng m· khãa kh¸c bëi v× chóng chØ phô thuéc
vμo nh÷ng tÝnh chÊt chung cña phÐp m· hãa.

5.5. C¸c chÕ ®é m· hãa


B©y giê chóng ta nghiªn cøu mét sè ph−¬ng ph¸p kh¸c nhau
mμ phÐp m· hãa cã thÓ sö dông. C¸c nguyªn t¾c chung ë ®©y cã
thÓ ¸p dông cho hÇu hÕt c¸c thuËt to¸n m· hãa th«ng th−êng (kÓ
c¶ ®èi xøng vμ kh«ng ®èi xøng). Mét d¹ng sö dông DES ®· ®−îc
tr×nh bμy trong ch−¬ng 3, ®−îc gäi lμ chÕ ®é quyÓn m· ®iÖn tö
(ECB). Trong nh÷ng phÇn sau ta sÏ tr×nh bμy c¸c chÕ ®é sö dông
DES kh¸c.
260 Gi¸o tr×nh MËt m· häc

5.5.1. ChÕ ®é xÝch khèi mËt m· (CBC)


Nh− ®· nªu ë trªn, chÕ ®é CBC b¾t ®Çu b»ng mét vector khëi
t¹o ngÉu nhiªn (IV), vector nμy ®−îc m· hãa vμ ®−îc göi nh− khèi
1. Sau ®ã, vector nμy sÏ ®−îc céng mod 2 víi khèi b¶n râ ®Çu tiªn
(E(p1 ⊕ IV, k )) . KÕt qu¶ nμy sÏ ®−îc m· lμm khèi 2. Sau ®ã, khèi
b¶n m· thø hai nμy sÏ ®−îc céng mod 2 víi khèi b¶n râ tiÕp theo
trong th«ng b¸o nh»m kh«ng thÓ thay thÕ khèi b¶n m· b»ng mét
khèi kh¸c mμ kh«ng bÞ ph¸t hiÖn. ChÕ ®é CBC ®· ®−îc chØ ra trªn
h×nh 5.24.
ChÕ ®é CBC còng cã tÝnh chÊt tù söa sao cho mét sù thay ®æi
trong khèi ci chØ ¶nh h−ëng tíi viÖc gi¶m m· cho c¸c khèi p i vμ
p i +1 . Tuy nhiªn, c¸c khèi p i + 2 vμ tiÕp theo sÏ kh«ng bÞ t¸c ®éng.
Sau hai khèi hμm céng mod 2 sÏ huû bÊt kú mét sai nμo. (CÇn nhí
r»ng, ®èi víi mét kh©u bÊt kú x , x ⊕ x = 0 ). TÝnh chÊt tù söa lμ
thuËn tiÖn v× mét sai sè trong truyÒn dÉn hoÆc m· hãa sÏ kh«ng
ph¸ huû mét l−îng lín b¶n m·.

5.5.2. ChÕ ®é håi tiÕp mËt m· (CFB)


B¶n chÊt ®Þnh h−íng theo khèi cña DES lμ kh«ng thuËn tiÖn
víi 2 lý do sau.
- Thø nhÊt lμ khèi cuèi cïng ph¶i ®−îc ®én thªm. Bëi vËy,
kÝch th−íc cña b¶n m· kÕt qu¶ cã thÓ lín h¬n mét chót so víi b¶n
râ t−¬ng øng.
- Thø hai lμ kh«ng thÓ thùc hiÖn viÖc m· hãa nÕu ch−a nhËn
®ñ 64 bit cña mét khèi. Bëi vËy, tèc ®é m· hãa cho mét ký tù cã
thÓ phô thuéc vμo tèc ®é nhËn cña mét vμi ký tù tiÕp sau. Cã mét
sè øng dông ®ßi hái ph¶i m· hãa ngay tõng ký tù. VÝ dô, trong
mét m«i tr−êng m¹ng an toμn, ng−êi dïng ph¶i ph¸t mçi ký tù
nh− nã ®−îc ®−a vμo tõ ®Çu cuèi.
Ch−¬ng 5: C¸c thñ tôc vµ c¸c chó ý trong thùc tÕ khi sö dông m· hãa 261

Håi tiÕp vÒ khèi tiÕp sau


Bi E
DES E(Bj C j-1)
Khãa K M· hãa

a) M· hãa

Håi tiÕp tõ khèi tr−íc


C j-1
Ci E
DES Bj
Khãa K Gi¶i m·

b) Gi¶i m·

H×nh 5.24: ChÕ ®é CBC


ChÕ ®é CFB ho¹t ®éng trªn mét hμng ®îi 64 bit. Ban ®Çu,
hμng ®îi ®−îc lμm ®Çy b»ng vector khëi t¹o (gièng nh− vector IV
trong chÕ ®é CBC). Hμng ®îi nμy sÏ ®−îc m· hãa vμ 8 bit tËn cïng
bªn tr¸i cña kÕt qu¶ sÏ ®−îc céng mod 2 víi ký tù ®Çu tiªn cÇn m·
hãa. 8 bit ®−îc m· hãa nμy sÏ ®−îc ph¸t ®i. 8 bit nμy còng ®−îc
chuyÓn vμo vÞ trÝ 8 bit tËn cïng bªn ph¶i cña hμng ®îi. TÊt c¶ c¸c
bit kh¸c sÏ ®−îc chuyÓn sang tr¸i 8 bit vμ 8 bit tËn cïng bªn tr¸i
sÏ bÞ lo¹i bá. Qu¸ tr×nh t−¬ng tù còng ®−îc thùc hiÖn ë ®Çu thu.
Thñ tôc nμy ®−îc chØ ra trªn h×nh 5.25.
¦u ®iÓm cña chÕ ®é CFB lμ cã thÓ m· hãa ngay lËp tøc mét
ký tù. Còng nh− trong chÕ ®é CBC, mçi ký tù còng ¶nh h−ëng tíi
tÊt c¶ c¸c ký tù tiÕp sau sao cho mét sù thay ®æi tíi mét ký tù bÊt
kú trong qu¸ tr×nh truyÒn còng t¸c ®éng tíi c¸c ký tù kÕ tiÕp. Mét
sai trong qu¸ tr×nh m· hãa sÏ t¸c ®éng tíi ký tù ®ang ®−îc chuyÓn
vμ còng t¸c ®éng tíi 8 ký tù tiÕp theo bëi v× nã sÏ n»m trong hμng
®îi ë 8 phÐp m· hãa ký tù sau ®ã cho tíi khi ký tù sai ®−îc ®Èy ra
khái « tËn cïng bªn tr¸i trong hμng ®îi.
Hai chÕ ®é nμy më réng c¬ b¶n tÝnh hiÖu qu¶ cña DES.
Chóng kh¾c phôc ®−îc 2 h¹n chÕ chñ yÕu cña DES: h¹n chÕ khi
262 Gi¸o tr×nh MËt m· häc

m· hãa c¸c b¶n râ lÆp l¹i vμ sù gi÷ chËm ®Ó ®îi m· hãa ®ång thêi
mét khèi v¨n b¶n. Kh«ng cã nh÷ng h¹n chÕ nμy, DES cã chÊt
l−îng t−¬ng ®−¬ng víi c¸c thuËt to¸n m· hãa dßng.
Thanh ghi dÞch Thanh ghi dÞch

ci ci

8 byte cuèi 8 byte cuèi


E E
DES DES
Khãa K M· hãa Khãa K Gi¶i m·

Byte tËn cïng tr¸i c i-1 Byte tËn cïng tr¸i c i-1

Byte bi bi ci ci bi

a) M· hãa b) Gi¶i m·

H×nh 5.25: ChÕ ®é CFB

5.5.3. Hai khãa cho hiÖu qu¶ t−¬ng ®−¬ng mét khãa 112 bit
MÆc dï ®é dμi khãa cña DES ®−îc coi lμ ®ñ dμi nh−ng mét sè
ng−êi vÉn kh«ng tin t−ëng vμo ®é dμi 56 bit cña nã. Sau ®©y lμ
mét ph−¬ng ph¸p nh»m t¨ng ®é dμi hiÖu qu¶ cña khãa. Ph−¬ng
ph¸p nμy kh«ng ®ßi hái ph¶i thay ®æi b¶n th©n thuËt to¸n, nã
thÝch hîp trong tr−êng hîp thuËt to¸n ®−îc ¸p dông bëi thiÕt bÞ
phÇn cøng hoÆc trong tr−êng hîp phÇn mÒm cã nh÷ng ®o¹n kh«ng
thÓ söa ®æi.
Do ®· cã nh÷ng kh¶o s¸t vÒ ®é mËt cña mét khãa 56 bit nªn
hîp lý h¬n c¶ lμ nªn xem xÐt viÖc sö dông 2 khãa. NÕu b»ng mét
c¸ch nμo ®ã, mét phÐp t×m kiÕm vÐt c¹n ®· t×m ®−îc mét khãa th×
cÇn ph¶i thêi gian gÊp ®«i ®Ó ph¸ khãa thø hai. §¸ng tiÕc lμ ®iÒu
nμy kh«ng ®¬n gi¶n nh− vËy. Merkle [14] ®· chøng tá r»ng hai
khãa 56 bit dïng liªn tiÕp cã thÓ bÞ ph¸ b»ng phÐp tÊn c«ng theo
b¶n râ chän läc trong 257 phÐp thö chø kh«ng ph¶i lμ trong 2112
Ch−¬ng 5: C¸c thñ tôc vµ c¸c chó ý trong thùc tÕ khi sö dông m· hãa 263

phÐp thö nh− mong muèn. Bëi vËy, phÐp m· hãa lÇn hai hÇu nh−
kh«ng lμm t¨ng ®é mËt.
Tuchman [15] tÝnh r»ng hai khãa ®−îc dïng theo mét c¸ch
®Æc biÖt sÏ lμm t¨ng ®é mËt. Tuchman sö dông mét kü thuËt ®−îc
gäi lμ DES béi ba (Triple DES) do Matyas vμ Mayer ®−a ra. TDES
®−îc IBM sö dông khi m· hãa c¸c khãa chñ trong mét sè hÖ thèng
m· hãa cña hä. Víi hai khãa ( K 1 vμ K 2 ), ng−êi göi sÏ m· hãa
b»ng K 1 , gi¶i m· b»ng K 2 vμ l¹i m· hãa b»ng K1 . Bªn thu sÏ gi¶i
m· b»ng K1 , m· hãa b»ng K 2 vμ l¹i gi¶i m· b»ng K 1 .
Quan ®iÓm nμy rÊt ®¸ng xem xÐt trong sö dông víi mét thiÕt
bÞ m· hãa tù ®éng (cã thÓ b»ng phÇn cøng hoÆc phÇn mÒm). NÕu
thiÕt bÞ cÇn hai khãa vμ ng−êi dïng chØ muèn dïng mét khãa th×
ng−êi dïng sÏ cung cÊp K1 ba lÇn. ThiÕt bÞ sÏ m· hãa b»ng K 1 ,
gi¶i m· b»ng K 1 (trë vÒ b¶n râ ban ®Çu) vμ cuèi cïng l¹i m· hãa
b»ng K 1 . Theo c¸ch nμy, mét thiÕt bÞ cã thÓ dïng cho c¶ c¸c phÐp
m· hãa ®¬n vμ kÐp.

5.6. Tãm l−îc vÒ c¸c thñ tôc vμ c¸c øng dông thùc tÕ
Trong ch−¬ng nμy, chóng ta ®· xem xÐt mét sè vÊn ®Ò quan
träng trong sö dông c¸c hÖ thèng liªn l¹c vμ c¸c hÖ thèng m¸y
tÝnh. Ta ®· nghiªn cøu c¸c thñ tôc mμ cã thÓ t¸ch biÖt mét c¸ch cã
hiÖu qu¶ gi÷a thiÕt kÕ cña mét gi¶i ph¸p víi øng dông cña gi¶i
ph¸p ®ã.
Chóng ta còng ®· x¸c ®Þnh nh÷ng nhiÖm vô ®èi víi chóng,
c¸c thñ tôc ph¶i ®−îc thiÕt kÕ. C¸c nhiÖm vô nμy cã øng dông
trong th−¬ng m¹i ®iÖn tö, liªn l¹c c¸ nh©n vμ nh÷ng ho¹t ®éng
th«ng th−êng kh¸c mμ ta muèn tù ®éng thùc hiÖn. C¸c nhiÖm vô
nμy lμ:
- Ký b»ng ch÷ ký sè;
- Ch¬i bμi b»ng t©m linh (ph©n phèi khãa);
264 Gi¸o tr×nh MËt m· häc

- Giao kÌo khãa;


- Bá phiÕu;
- ChuyÓn kh«ng nhí (tung ®ång tiÒn);
- Ký tháa thuËn;
- Th− tÝn cã chøng thùc.
C¸c thñ tôc ®· gi¶i quyÕt nh÷ng vÊn ®Ò th−êng ®ßi hái khi
giao tiÕp ®èi mÆt gi÷a con ng−êi. Tuy nhiªn, b»ng c¸ch thiÕt kÕ
cÈn thËn, ta ®· cã thÓ ®¶m b¶o ®−îc tÝnh bÝ mËt vμ x¸c thùc trong
khi vÉn gi÷ ®−îc tuyÖt ®èi trung thùc.
Nh− ®· nãi ë trªn, viÖc t¸ch biÖt thiÕt kÕ ra khái øng dông lμ
®iÒu ®¸ng mong muèn. C¸c thñ tôc (cã thÓ ph©n tÝch vμ kiÓm tra
®−îc) lμ mét ph−¬ng tiÖn thiÕt kÕ tèt bëi v× tÝnh ®óng ®¾n cña mét
thñ tôc cã thÓ ®−îc x¸c ®Þnh kh«ng liªn quan tíi bÊt kú mét øng
dông riªng nμo cña nã.
§èi víi mçi thñ tôc, tr−íc tiªn ta khai th¸c ®−îc vÊn ®Ò cÇn
gi¶i quyÕt. Sau ®ã, ta x¸c ®Þnh nh÷ng yªu cÇu b¶o mËt cÇn ph¶i
tháa m·n víi thñ tôc. TiÕp theo, ta thiÕt kÕ mét thñ tôc tháa m·n
®−îc c¸c yªu cÇu b¶o mËt. Cuèi cïng, chóng ta thùc hiÖn viÖc
ph©n tÝch thñ tôc ®Ó kh¼ng ®Þnh r»ng nã ®· tháa m·n ®−îc c¸c
yªu cÇu.
Chóng ta còng xem xÐt nh÷ng øng dông thùc tÕ thÝch hîp
khi sö dông m· hãa. ChØ sö dông m· hãa th× kh«ng ®ñ ®¶m b¶o
®−îc ®é mËt, tÝnh riªng t− hoÆc x¸c thùc. Tuy vËy, b»ng c¸ch sö
dông ®óng phÐp m· hãa sÏ mang l¹i cho ta nh÷ng kÕt qu¶ ®ã. Ta
còng ®¸nh gi¸ c¸c hÖ thèng m· hãa DES vμ RSA theo c¸c tiªu
chuÈn kinh ®iÓn cña Shannon vμ c¸c tiªu chuÈn b¶o mËt kh¸c.
Cuèi cïng, ta nghiªn cøu c¸c kü thuËt mËt m· nh»m h¹n chÕ c¸c
sai sãt kh«ng bÞ ph¸t hiÖn (ch¼ng h¹n nh− sö dông l¹i) th«ng qua
c¸c kü thuËt nh− nh·n thêi gian...
Ch−¬ng 5: C¸c thñ tôc vµ c¸c chó ý trong thùc tÕ khi sö dông m· hãa 265

bμi tËp
1. T¹i sao ng−êi ta kh«ng muèn cã träng tμi trong mét thñ
tôc trao ®æi bÝ mËt?
2. Cho mét vÝ dô vÒ mét thñ tôc tù rμng buéc trong ®êi sèng
thùc tÕ?
3. Hμm niªm phong mËt m· tr−íc tiªn ®−îc ®Ò xuÊt (Tæng
gi¸ trÞ sè cña tÊt c¶ c¸c byte trong mét th«ng b¸o) cã mét yÕu ®iÓm
nghiªm träng: viÖc trao ®æi vÞ trÝ cña hai byte trong th«ng b¸o sÏ
kh«ng ®−îc ph¸t hiÖn bëi hμm nμy. H·y ®Ò xuÊt mét hμm kh¸c
kh«ng cã yÕu ®iÓm nμy.
4. PhÐp m· hãa xÕp ba l« cña Merkler Hellman kh«ng ph¶i lμ
mét ¸nh x¹ "vμo", tøc lμ cã mét sè nhÞ ph©n nμo ®ã kh«ng ph¶i lμ
kÕt qu¶ ¸p dông phÐp m· hãa xÕp ba l« lªn mét ®o¹n b¶n râ. Víi
nh÷ng thñ tôc nμo th× ®Æc tÝnh nμy sÏ g©y ra vÊn ®Ò? H·y gi¶i
thÝch?
5. Cã mét yÕu ®iÓm trong c¬ chÕ niªm phong mËt m· ®−îc
nªu ë ®©y. NÕu R cã thÓ tÝnh fS ®Ó kiÓm tra xem t− liÖu M ®· nhËn
®−îc cã ph¶i lμ t− liÖu ®· ph¸t hay kh«ng th× R còng cã thÓ tÝnh
fS ®Ó gi¶ m¹o mét ch÷ ký sè. H·y ®Ò xuÊt mét gi¶i ph¸p cho vÊn
®Ò nμy.
6. H·y m« t¶ mét thñ tôc trao ®æi c¸c bÝ mËt mét c¸ch c«ng
b»ng theo c¸ch thiÕt lËp cña con ng−êi (kh«ng ph¶i theo kiÓu m¸y
tÝnh). Hai ng−êi muèn trao ®æi th«ng tin bÝ mËt nh−ng kh«ng mét
ai muèn ®−a mét bÝ mËt mμ kh«ng nhËn ®−îc mét bÝ mËt tõ phÝa
bªn kia.
a. C¸c yªu cÇu bÝ mËt cña t×nh huèng nμy lμ g×?
b. ThÕ nμo lμ mét thñ tôc trao ®æi bÝ mËt c«ng b»ng?
7. H·y liÖt kª c¸c yªu cÇu cña mét s¬ ®å ch÷ ký sè khãa bÝ
mËt. Cã thÓ cã mét yªu cÇu nμo trong c¸c yªu cÇu nμy cÇn tháa
266 Gi¸o tr×nh MËt m· häc

m·n víi mét thñ tôc cã träng tμi? T¹i sao cã, t¹i sao kh«ng? Cã thÓ
cã mét yªu cÇu nμy cÇn tháa m·n trong mét thñ tôc rμng buéc?
T¹i sao cã, t¹i sao kh«ng?
8. H·y tr×nh bμy mét thñ tôc ch÷ ký sè sö dông m· hãa ®èi
xøng sao cho ng−êi göi vμ ng−êi nhËn kh«ng ph¶i ®Ó lé néi dung
th«ng b¸o cña hä cho träng tμi.
9. H·y gi¶i thÝch t¹o sao thñ tôc ch÷ ký sè dïng m· hãa khãa
c«ng khai sÏ c¶n trë bªn thu gi¶ m¹o th«ng b¸o tõ ng−êi göi b»ng
c¸ch sö dông khãa c«ng khai cña ng−êi göi.
10. H·y chØ ra r»ng hÖ mËt RSA cã c¶ hai tÝnh chÊt sau: võa
lμ ¸nh x¹ giao ho¸n, võa lμ ¸nh x¹ "vμo". T¹i sao hai tÝnh chÊt nμy
l¹i cÇn thiÕt ®èi víi mét thñ tôc ch÷ ký sè khãa c«ng khai?
11. Mét hμm b¨m (hash) sÏ rót gän mét khèi sè liÖu (lín)
thμnh mét tãm l−îc (nhá h¬n). §iÒu nμy cã nghÜa lμ kh«ng ph¶i
mäi söa ®æi cã thÓ cã ®èi víi sè liÖu gèc ®Òu ®−îc ph¸t hiÖn bëi
hμm b¨m. Tuy nhiªn, mét thuËt to¸n nÐn v¨n b¶n còng rót gän sè
liÖu lín thμnh d¹ng ®−îc nÐn nhá h¬n. LiÖu mét thuËt to¸n nÐn cã
kh¶ n¨ng ph¸t hiÖn ®−îc tÊt c¶ nh÷ng thay ®æi trong v¨n b¶n gèc?
T¹i sao cã, t¹i sao kh«ng? LiÖu mét thuËt to¸n nÐn v¨n b¶n cã thÓ
sö dông nh− mét hμm b¨m hay kh«ng? T¹i sao cã, t¹i sao kh«ng?
Ch−¬ng 6: C¸c chuÈn vµ ¸p dông 267

c¸c chuÈn vμ ¸p dông

6.1. B¶o mËt th− ®iÖn tö sö dông Pretty Good


Privacy (PGP)

6.1.1. Më ®Çu
PGP lμ mét hiÖn t−îng næi bËt. PGP chñ yÕu ®−îc kiÕn t¹o
bëi Phil Zimmerman. PGP cung cÊp dÞch vô x¸c thùc vμ bÝ mËt cã
thÓ dïng cho E-mail vμ cho viÖc l−u tr÷ tÖp. VÒ c¬ b¶n Phil
Zimmerman ®· lμm ®−îc c¸c c«ng viÖc sau:
- Chän ®−îc c¸c thuËt to¸n mËt m· tèt ®Ó t¹o dùng c¸c m«-®un.
- TÝch hîp c¸c thuËt to¸n nμy vμo mét øng dông ®éc lËp víi
hÖ ®iÒu hμnh vμ bé xö lý. øng dông nμy sö dông mét tËp nhá c¸c
lÖnh dÔ dïng.
- T¹o gãi phÇn mÒm víi ®Çy ®ñ tμi liÖu kÓ c¶ m· nguån cung
cÊp miÔn phÝ trªn m¹ng Internet.
- Tháa thuËn víi mét c«ng ty (ViaCrypt - HiÖn nay lμ
Network Associates) ®Ó cung cÊp phiªn b¶n th−¬ng m¹i víi gi¸ rÎ.
PGP ®· ph¸t triÓn m¹nh mÏ vμ hiÖn nay ®ang ®−îc sö dông
réng r·i (®−îc xem nh− mét chuÈn b¶o mËt E-mail cho céng ®ång
Internet).
Mét sè lý do thóc ®Èy sù ph¸t triÓn cña PGP:
- Cã nhiÒu phiªn b¶n miÔn phÝ cã thÓ ch¹y ®−îc trªn nhiÒu
hÖ ®iÒu hμnh nh−: DOS/Windows, UNIX, Macintosh... Ngoμi ra
268 Gi¸o tr×nh MËt m· häc

cßn cã mét s¶n phÈm th−¬ng m¹i cã sù trî gióp ®Çy ®ñ cho
kh¸ch hμng.
- PGP dùa trªn c¸c thuËt to¸n ®· ®−îc xem xÐt kü vμ ®−îc coi
lμ cùc mËt nh−:
+ C¸c thuËt to¸n m· hãa c«ng khai RSA, DSS, Diffie-
Hellman.
+ CAST-128, IDEA, TDEA cho mËt m· ®èi xøng.
+ Hμm b¨m SHA-1
- Cã lùc l−îng ®«ng ®¶o nh÷ng ng−êi dïng tõ c¸c c«ng ty tíi
c¸c c¸ nh©n muèn giao tiÕp an toμn víi c¸c ng−êi kh¸c bªn ngoμi
thÕ giíi qua Internet vμ qua c¸c m¹ng kh¸c.
- Kh«ng bÞ khèng chÕ vμ rμng buéc bëi bÊt kú mét chÝnh phñ
nμo hoÆc bëi bÊt cø mét c¬ quan tiªu chuÈn nμo.

6.1.1. Ký hiÖu
- Ks : Khãa phiªn ®−îc dïng cho m· hãa ®èi xøng.
- KRa : Khãa riªng cña user A ®−îc dïng trong s¬ ®å m·
hãa c«ng khai.
- KUa : Khãa c«ng khai cña user A ®−îc dïng trong s¬ ®å
m· hãa c«ng khai.
- EP : M· hãa c«ng khai.
- DP : Gi¶i m· khãa c«ng khai.
- EC : M· hãa khãa ®èi xøng.
- DC : Gi¶i m· khãa ®èi xøng.
-H : Hμm b¨m.
- ⎢⎢ : PhÐp ghÐp.
-Z : NÐn dïng thuËt to¸n ZIP.
- R64 : BiÕn ®æi sang khu«n d¹ng ASCII c¬ sè 64.
Ch−¬ng 6: C¸c chuÈn vµ ¸p dông 269

- Chó ý :
+ ThuËt ng÷ khãa bÝ mËt lμ khãa cïng cÆp víi khãa c«ng
khai trong mËt m· hãa c«ng khai.
+ ThuËt ng÷ khãa riªng lμ khãa cña mËt m· ®èi xøng.

6.1.3. M« t¶ ho¹t ®éng


Kh«ng kÓ tíi viÖc qu¶n lý khãa th× ho¹t ®éng cña PGP gåm 5
dÞch vô: X¸c thùc, bÝ mËt, nÐn, t−¬ng thÝch E-mail vμ ph©n ®o¹n.

B¶ng 6.1: Tãm l−îc c¸c dÞch vô cña PGP


C¸c thuËt
Chøc n¨ng M« t¶
to¸n ®−îc dïng
Ch÷ ký sè DSS/SHA hoÆc M· b¨m cña th«ng b¸o ®−îc t¹o b»ng c¸ch dïng
RSA/SHA SHS-L. Tãm l−îc th«ng b¸o nµy ®−îc m· b»ng
DSS hoÆc RSA víi khãa riªng cña ng−êi göi vµ
®−îc kÌm víi th«ng b¸o
M· hãa CAST hoÆc IDEA Th«ng b¸o ®−îc m· b»ng CAST-128/IDEA/ 3DES
th«ng b¸o hoÆc TDEA víi víi khãa phiªn mét lÇn ®−îc t¹o bëi ng−êi göi.
3 khãa víi Diffie- Khãa phiªn ®−îc m· b»ng Diffie-Hellman hoÆc
Hellman hoÆc RSA RSA víi khãa c«ng khai cña bªn thu vµ ®−îc göi
kÌm víi th«ng b¸o.
NÐn ZIP Th«ng b¸o cã thÓ ®−îc nÐn (®Ó l−u gi÷ hoÆc ®Ó
truyÒn) b»ng ZIP
T−¬ng thÝch BiÕn ®æi c¬ sè 64 §Ó cung cÊp tÝnh trong suèt ®èi víi c¸c øng dông
E-mail th− ®iÖn tö, th«ng b¸o ®· m· cã thÓ ®−îc biÕn ®æi
thµnh 1 x©u ASCII sö dông phÐp biÕn ®æi c¬ sè 64
Ph©n ®o¹n §Ó phï hîp víi h¹n chÕ vÒ kÝch th−íc lín nhÊt cña
th«ng b¸o, PGP sÏ thùc hiÖn viÖc ph©n ®o¹n vµ
s¾p xÕp l¹i.

6.1.3.1. X¸c thùc


- Ng−êi göi t¹o mét th«ng b¸o.
- ThuËt to¸n SHA-1 ®−îc dïng ®Ó t¹o mét m· b¨m 160 bit
cña th«ng b¸o.
- M· b¨m ®−îc m· hãa b»ng RSA sö dông khãa riªng cña
ng−êi göi vμ kÕt qu¶ ®−îc g¾n vμo th«ng b¸o.
- Bªn thu sö dông RSA víi khãa c«ng khai cña ng−êi göi ®Ó
gi¶i m· vμ kh«i phôc l¹i m· b¨m.
270 Gi¸o tr×nh MËt m· häc

- Bªn thu t¹o mét m· b¨m míi do th«ng b¸o vμ so s¸nh nã


víi m· b¨m ®· ®−îc gi¶i m·. NÕu hai m· nμy phï hîp th× th«ng
b¸o ®−îc coi lμ x¸c thùc.
ViÖc kÕt hîp SHA-1 vμ RSA t¹o nªn mét s¬ ®å ch÷ ký cã hiÖu
qu¶. Nhê ®é mËt cña RSA bªn thu ®−îc ®¶m b¶o r»ng chØ cã ng−êi
chñ cña khãa bÝ mËt t−¬ng øng míi cã thÓ t¹o ra ch÷ ký.
Nhê thuËt to¸n b¨m SHA-1 bªn thu còng ®¶m b¶o r»ng
kh«ng mét ai cã thÓ t¹o ®−îc mét th«ng b¸o míi mμ th«ng b¸o ®ã
l¹i cã cïng m· b¨m. Cßn mét tïy chän kh¸c lμ sö dông DSS/SHA-1.

6.1.3.2. BÝ mËt
BÝ mËt lμ mét dÞch vô kh¸c cña PGP. Nã thùc hiÖn m· hãa
c¸c th«ng b¸o cÇn ph¸t hoÆc cÇn ®−îc l−u gi÷ t¹i chç nh− mét tÖp.
Trong c¶ hai tr−êng hîp cã thÓ dïng mét trong c¸c ph−¬ng ph¸p
m· hãa CAST-128, IDEA hoÆc TDEA. ChÕ ®é håi tiÕp khèi m· 64
bit ®−îc sö dông.
Trong PGP mçi khãa riªng chØ ®−îc dïng mét lÇn. Tøc lμ mét
khãa míi sÏ ®−îc t¹o ra nh− mét sè ngÉu nhiªn 128 bit. Bëi nh−
vËy mÆc dï trong tμi liÖu khãa nμy ®−îc gäi lμ khãa phiªn nh−ng
thùc sù nã kh«ng chØ ®−îc dïng mét lÇn. V× chØ ®−îc dïng mét lÇn
nªn khãa phiªn ®−îc g¾n vμo th«ng b¸o vμ ®−îc truyÒn cïng
th«ng b¸o. §Ó b¶o vÖ khãa, nã ®−îc m· hãa b»ng khãa c«ng khai
cña ng−êi nhËn.
Qu¸ tr×nh nμy ®−îc m« t¶ nh− sau:
- Ng−êi göi t¹o mét th«ng b¸o vμ mét sè ngÉu nhiªn 128 bit
®−îc dïng lμm khãa phiªn cho chÝnh th«ng b¸o nμy.
- Th«ng b¸o ®−îc m· hãa b»ng CAST-128 (hoÆc IDEA/TDEA)
víi khãa phiªn nμy.
- Khãa phiªn ®−îc m· b»ng RSA nhê dïng khãa c«ng khai
cña ng−êi nhËn vμ ®−îc g¾n vμo th«ng b¸o.
- Bªn thu dïng RSA víi khãa bÝ mËt cña m×nh ®Ó gi¶i m· vμ
kh«i phôc l¹i khãa phiªn.
- Khãa phiªn ®−îc dïng ®Ó gi¶i m· th«ng b¸o.
Ch−¬ng 6: C¸c chuÈn vµ ¸p dông 271

KUa
EKRa[H(M)]
KRa
"Th«ng DP
M
H EP Z b¸o ®· Z -1 M So s¸nh
nÐn"
H

a) X¸c thùc

KUb
EKUb [KS ] KRb
KS EP
DP
M Z EC DC Z -1 M

b) BÝ mËt

KUb KRb
EKUb [KS ] KUa
KRa KS EP EKRa[H(M)]
DP
DP
H EP Z EC
M DC Z -1 M So s¸nh
H
c) BÝ mËt vµ x¸c thùc

H×nh 6.1: C¸c chøc n¨ng cña PGP


6.1.3.3. BÝ mËt vμ x¸c thùc
Cã thÓ sö dông c¶ hai dÞch vô nμy cho cïng mét th«ng b¸o.
Tr−íc tiªn mét ch÷ ký ®−îc t¹o ra ®èi víi mét th«ng b¸o râ vμ
®−îc g¾n vμo th«ng b¸o. Sau ®ã th«ng b¸o râ vμ ch÷ ký sÏ ®−îc m·
b»ng CAST-128 (hoÆc IDEA/TDEA) vμ khãa phiªn ®−îc m· b»ng
RSA (hoÆc ElGamal) theo khãa c«ng khai cña ng−êi nhËn.
6.1.3.4. NÐn
Theo ngÇm ®Þnh, PGP sÏ nÐn th«ng b¸o sau khi ký nh−ng
tr−íc khi m·. §iÒu nμy nh»m tiÕt kiÖm bé nhí ®Ó truyÒn th− ®iÖn
tö hoÆc ®Ó l−u tr÷ tÖp. Ngoμi ra, ®iÒu nμy cßn thuËn tiÖn cho khi
cÇn kiÓm tra.
Chó ý: Z: nÐn, Z−1: Gi¶i nÐn.
272 Gi¸o tr×nh MËt m· häc

6.1.3.5. T−¬ng thÝch E-mail


NhiÒu ch−¬ng tr×nh E-mail chØ cho phÐp dïng c¸c khèi chøa
c¸c v¨n b¶n ASCII Nh»m phï hîp víi h¹n chÕ nμy PGP cã cung
cÊp dÞch vô biÕn ®æi dßng bit chøa c¸c d·y 8 bit tïy ý thμnh dßng
bit gåm c¸c ký tù ASCII. S¬ ®å ®−îc dïng cho phÐp biÕn ®æi nμy lμ
s¬ ®å biÕn ®æi c¬ sè 64, mçi nhãm 3 byte d÷ liÖu nhÞ ph©n ®−îc
biÕn ®æi thμnh 4 ký tù ASCII.
24 bit

6 bit 6 bit 6 bit 6 bit

R64 R64 R64 R64

8 bit 8 bit 8 bit 8 bit


4 ký tù = 32 bit

H×nh 6.2
B¶ng 6.2: M· hãa c¬ sè 64
Gi¸ trÞ M∙ ho¸ Gi¸ trÞ M∙ ho¸ Gi¸ trÞ M∙ ho¸ Gi¸ trÞ M∙ ho¸
6 bit ký tù 6 bit ký tù 6 bit ký tù 6 bit ký tù
0 A 16 Q 32 g 48 w
1 B 17 R 33 h 49 x
2 C 18 S 34 i 50 y
3 D 19 T 35 j 51 z
4 E 20 U 36 k 52 0
5 F 21 V 37 l 53 1
6 G 22 W 38 m 54 2
7 H 23 X 39 n 55 3
8 I 24 Y 40 o 56 4
9 J 25 Z 41 p 57 5
10 K 26 a 42 q 58 6
11 L 27 b 43 r 59 7
12 M 28 c 44 s 60 8
13 N 29 d 45 t 61 9
14 O 30 e 46 u 62 +
15 P 31 f 47 v 63 /
(pad) =
Ch−¬ng 6: C¸c chuÈn vµ ¸p dông 273

Sö dông phÐp biÕn ®æi c¬ sè 64 nμy sÏ lμm më réng th«ng b¸o


chõng 33%. Tuy nhiªn do phÇn khãa phiªn vμ ch÷ ký kh«ng lín,
mÆt kh¸c th«ng b¸o râ ®· ®−îc nÐn. Trªn thùc tÕ qu¸ tr×nh nÐn ®·
d− søc bï cho phÇn më réng nμy.
VÝ dô: Khi dïng ZIP, tû sè nÐn vμo kho¶ng 2 lÇn. NÕu ta bá
qua c¸c thμnh phÇn khãa vμ ch÷ ký t−¬ng ®èi nhá th× hiÖu qu¶
chung cña c¶ nÐn vμ më réng ®èi víi 1 tÖp cã ®é dμi X lμ:
1,33.0,5.X = 0,665.X.
Nh− vËy tÖp kÕt qu¶ vÉn ®−îc nÐn 33% (1/3).

6.1.3.6. Ph©n ®o¹n vμ s¾p xÕp l¹i


C¸c ch−¬ng tr×nh E-mail th−êng h¹n chÕ ®é dμi lín nhÊt cña
th«ng b¸o (Ch¼ng h¹n 50.000 byte).
Mét th«ng b¸o dμi h¬n ph¶i ®−îc ph©n ®o¹n thμnh c¸c ®o¹n
nhá h¬n, mçi ®o¹n ph¶i ®−îc göi t¸ch biÖt.
§Ó phï hîp víi h¹n chÕ nμy PGP sÏ tù ®éng chia mét th«ng
b¸o qu¸ lín thμnh c¸c ®o¹n ®ñ nhá ®Ó göi qua E-mail.
ViÖc ph©n ®o¹n ®−îc thùc hiÖn sau tÊt c¶ qu¸ tr×nh kh¸c (bao
gåm c¶ phÐp biÕn ®æi c¬ sè 64). Bëi vËy thμnh phÇn khãa phiªn vμ
thμnh phÇn ch÷ ký chØ xuÊt hiÖn mét lÇn ë ®Çu cña ®o¹n ®Çu trªn.
ë phÝa thu, PGP ph¶i t¸ch ra tÊt c¶ c¸c tiªu ®Ò (header) cña
E-mail vμ l¾p r¸p l¹i toμn bé khèi ban ®Çu tr−íc khi thùc hiÖn c¸c
c«ng ®o¹n cßn l¹i.

6.2. giao dÞch ®iÖn tö an toμn - SET


6.2.1. Më ®Çu
SET lμ mét ®Æc t¶ vÒ m· hãa vμ an toμn ®−îc x©y dùng nh»m
b¶o vÖ c¸c giao dÞch b»ng thÎ tÝn dông trªn Internet.
Phiªn b¶n hiÖn thêi SETv1 ®−îc ph¸t triÓn víi sù tham gia
cña c¸c c«ng ty IBM, Microsoft, Netscape, RSA, Terisa vμ
Verisign. Tíi n¨m 1998, c¸c phÇn mÒm t−¬ng thÝch víi SET ®·
xuÊt hiÖn. B¶n th©n SET kh«ng ph¶i lμ mét hÖ thèng chi tr¶. Nã
274 Gi¸o tr×nh MËt m· häc

lμ mét tËp c¸c thñ tôc an toμn vμ c¸c khu«n d¹ng an toμn cung
cÊp cho nh÷ng ng−êi sö dông h¹ tÇng chi tr¶ b»ng thÎ tÝn dông
hiÖn thêi trªn m¹ng më (Internet) theo mét c¸ch an toμn.
VÒ c¬ b¶n SET cung cÊp 3 dÞch vô:
- Cung cÊp mét kªnh liªn l¹c an toμn gi÷a c¸c bªn thùc hiÖn
giao dÞch.
- Cung cÊp x¸c thùc nhê sö dông c¸c chøng chØ sè X509v.3.
- §¶m b¶o tÝnh riªng t− v× th«ng tin chØ kh¶ dông ®èi víi c¸c
bªn vμo lóc cÇn thiÕt vμ ë n¬i cÇn thiÕt.
SET ®−îc m« t¶ trong 3 cuèn s¸ch ®· ®−îc xuÊt b¶n n¨m 1997:
- Q1: M« t¶ th−¬ng m¹i (80 trang).
- Q2: H−íng dÉn cho lËp tr×nh viªn (629 trang)
- Q3: §Þnh nghÜa thñ tôc h×nh thøc (262 trang).

6.2.2. M« t¶ SET
6.2.2.1. C¸c yªu cÇu th−¬ng m¹i
Q1 m« t¶ c¸c yªu cÇu th−¬ng m¹i cho qu¸ tr×nh chi tr¶ an
toμn vμ c¸c thÎ tÝn dông trªn Internet vμ c¸c m¹ng kh¸c.
- Cung cÊp sù bÝ mËt cho c¸c th«ng tin ®Æt hμng vμ chi tr¶.
§iÒu cÇn thiÕt lμ ph¶i ®¶m b¶o cho ng−êi së h÷u thÎ tÝn dông
r»ng th«ng tin nμy lμ an toμn vμ chØ cã bªn nhËn hîp ph¸p míi cã
thÓ truy nhËp ®−îc. TÝnh bÝ mËt nμy còng lμm gi¶m nguy c¬ gian
tr¸ cña bªn thùc hiÖn giao dÞch kh¸c hoÆc cña bªn thø ba ¸c ý.
SET sö dông m· hãa ®Ó cung cÊp kh¶ n¨ng nμy.
- §¶m b¶o tÝnh toμn vÑn cña tÊt c¶ c¸c d÷ liÖu ®· ph¸t
Tøc lμ ph¶i ®¶m b¶o r»ng kh«ng thÓ x¶y ra bÊt cø mét sù
thay ®æi nμo trong néi dung khi truyÒn c¸c th«ng b¸o SET.
ë ®©y ch÷ ký sè ®−îc dïng ®Ó cung cÊp tÝnh toμn vÑn.
- Cung cÊp sù x¸c thùc r»ng chñ së h÷u thÎ tÝn dông (card) lμ
ng−êi sö dông hîp ph¸p cña tμi kho¶n.
Ch−¬ng 6: C¸c chuÈn vµ ¸p dông 275

Mét c¬ chÕ kÕt nèi chñ së h÷u thÎ tíi mét sè tμi kho¶n riªng
lμm gi¶m kh¶ n¨ng gian lËn.
C¸c ch÷ ký sè vμ c¸c chøng chØ ®−îc dïng ®Ó kiÓm tra r»ng
chñ thÎ lμ ng−êi dïng hîp ph¸p cña mét tμi kho¶n hîp lÖ.
- Cung cÊp sù x¸c thùc r»ng ng−êi b¸n (nhμ bu«n) cã thÓ
chÊp nhËn c¸c giao dÞch dïng thÎ qua mèi quan hÖ cña nã víi mét
c¬ quan tμi chÝnh. Chñ thÎ ph¶i cã kh¶ n¨ng x¸c ®Þnh c¸c nhμ
bu«n mμ hä thùc hiÖn c¸c giao dÞch.
L¹i mét lÇn n÷a ë ®©y SET sö dông c¸c ch÷ ký sè vμ c¸c
chøng chØ.
- §¶m b¶o sö dông c¸c kü thuËt thiÕt kÕ hÖ thèng tèt nhÊt vμ
c¸c thùc tÕ an toμn tèt nhÊt ®Ó b¶o vÖ c¸c bªn hîp ph¸p tham gia
giao dÞch th−¬ng m¹i ®iÖn tö.
SET lμ mét ®Æc t¶ ®· ®−îc kiÓm tra kü dùa trªn c¸c thuËt
to¸n vμ c¸c thñ tôc mËt m· an toμn cao.
- T¹o mét thñ tôc vμ c¸c khu«n d¹ng cña SET lμ ®éc lËp víi
phÇn cøng, hÖ ®iÒu hμnh vμ phÇn mÒm Web.

6.2.2.2. C¸c ®Æc ®iÓm chñ chèt cña SET


- TÝnh bÝ mËt cña th«ng tin
Tμi kho¶n cña chñ thÎ vμ th«ng tin chi tr¶ ph¶i ®−îc bÝ mËt.
Mét ®iÓm quan träng vμ thó vÞ cña SET lμ nã tr¸nh cho nhμ bu«n
khái ph¶i biÕt sè thÎ tÝn dông, sè nμy chØ dïng cho ng©n hμng.
DES ®−îc dïng ®Ó ®¶m b¶o tÝnh bÝ mËt
- TÝnh toμn vÑn cña d÷ liÖu
Th«ng tin chi tr¶ ®−îc göi tõ chñ thÎ tíi nhμ bu«n bao gåm:
th«ng tin ®Æt hμng, sè liÖu c¸ nh©n vμ c¸c lÖnh chi tr¶.
SET ®¶m b¶o r»ng c¸c néi dung th«ng b¸o nμy kh«ng bÞ biÕn
®æi trong khi truyÒn. C¸c ch÷ ký sè RSA sö dông c¸c m· b¨m
SHA-1 cung cÊp tÝnh toμn vÑn cho th«ng b¸o.
276 Gi¸o tr×nh MËt m· häc

Mét sè th«ng b¸o còng ®−îc b¶o vÖ b»ng HMAC dïng SHA-1.
- X¸c thùc tμi kho¶n cña chñ thÎ
SET cho phÐp nhμ bu«n kiÓm tra r»ng chñ thÎ cã ph¶i lμ
ng−êi dïng hîp ph¸p kh«ng vμ sè tμi kho¶n cã hîp lÖ kh«ng.
SET dïng c¸c chøng chØ sè X509v3 víi c¸c ch÷ ký sè RSA cho
môc ®Ých nμy.
- X¸c thùc nhμ bu«n SET cung cÊp cho chñ thÓ cã thÓ kiÓm
tra ®−îc r»ng nhμ bu«n cã quan hÖ víi c¬ quan tμi chÝnh cho phÐp
chÊp nhËn c¸c thÎ chi tr¶.

6.2.2.3. C¸c bªn tham gia giao dÞch trong SET


- Chñ thÎ tÝn dông
Trong m«i tr−êng ®iÖn tö c¸c kh¸ch hμng sÏ giao tiÕp víi c¸c
nhμ bu«n tõ m¸y tÝnh c¸ nh©n trªn Internet. Chñ thÎ tÝn dông lμ
chñ nh©n hîp ph¸p cña thÎ chi tr¶ (ch¼ng h¹n Master card vμ
Visa card).
- Nhμ bu«n: lμ mét ng−êi hoÆc mét tæ chøc cã hμng hãa hoÆc
c¸c dÞch vô ®Ó b¸n cho c¸c chñ thÎ tÝn dông. C¸c hμng hãa vμ c¸c
dÞch vô nμy ®−îc mêi chμo trªn trang Web hoÆc qua th− ®iÖn tö.
Mét nhμ bu«n chÊp nhËn c¸c thÎ chi tr¶ ph¶i cã mèi quan hÖ
víi mét ng©n hμng (kho b¹c).
- Nhμ ph¸t hμnh: §©y lμ mét c¬ quan tμi chÝnh (ch¼ng h¹n
ng©n hμng) cung cÊp thÎ tÝn dông. Nhμ ph¸t hμnh ph¶i chÞu tr¸ch
nhiÖm ®èi víi viÖc chi tr¶ c¸c kho¶n cña nhμ bu«n.
- Cæng chi tr¶: §©y lμ chøc n¨ng ®−îc ®iÒu hμnh bëi kho b¹c.
Cæng chi tr¶ sÏ thùc hiÖn giao tiÕp gi÷a SET vμ c¸c m¹ng chi tr¶.
Nhμ bu«n sÏ trao ®æi c¸c th«ng b¸o SET víi cæng chi tr¶ qua
Internet, cßn cæng chi tr¶ sÏ cã mét sè kÕt nèi m¹ng hoÆc kÕt nèi
trùc tiÕp tíi hÖ thèng xö lý tμi chÝnh cña kho b¹c.
- M¸y chñ chøng thùc: §©y lμ mét thùc thÓ tin cËy ®−a ra c¸c
chøng chØ khãa c«ng khai cho c¸c chñ thÎ tÝn dông, cho c¸c nhμ
bu«n vμ cho c¸c cæng chi tr¶. Sù thμnh c«ng cña SET sÏ tïy thuéc
vμo sù tån t¹i cña h¹ tÇng m¸y chñ chøng thùc nμy.
Ch−¬ng 6: C¸c chuÈn vµ ¸p dông 277

B©y giê chóng ta sÏ m« t¶ mét c¸ch ng¾n gän d·y c¸c biÕn
cè cÇn cã cho mét giao dÞch:
- Kh¸ch hμng më mét tμi kho¶n: Kh¸ch hμng sÏ nhËn mét tμi
kho¶n cho thÎ tÝn dông.
- Kh¸ch hμng nhËn mét chøng chØ: Sau phÐp kiÓm tra vÒ tÝnh
danh, kh¸ch hμng sÏ nhËn mét chøng chØ sè ®−îc ký bëi ng©n
hμng. Chøng chØ sÏ kiÓm tra khãa c«ng khai RSA cña kh¸ch hμng
vμ ngμy hÕt h¹n cña nã. Nã còng thiÕt lËp mét quan hÖ (®−îc ®¶m
b¶o bëi ng©n hμng) gi÷a cÆp khãa cña ng©n hμng vμ thÎ tÝn dông
cña anh ta.
- C¸c nhμ bu«n cã c¸c chøng chØ cña riªng hä: Mét nhμ bu«n
chÊp nhËn mét lo¹i card chi tr¶ nhÊt ®Þnh ph¶i cã hai chøng chØ
cho hai khãa c«ng khai mμ nhμ bu«n cã: Mét ®Ó ký nhËn c¸c th«ng
b¸o vμ mét ®Ó trao ®æi khãa. Nhμ bu«n cÇn cã mét ®¶m b¶o chøng
chØ khãa c«ng khai cña cæng chi tr¶.
- Kh¸ch hμng ®Æt mét ®¬n hμng: Tr−íc tiªn kh¸ch hμng vμo
trang Web cña nhμ bu«n ®Ó chän hμng vμ x¸c ®Þnh gi¸. Sau ®ã
kh¸ch hμng sÏ göi mét danh s¸ch c¸c h¹ng môc cÇn mua tíi nhμ
bu«n. Nhμ bu«n sÏ göi trë l¹i mét ®¬n hμng chøa danh s¸ch c¸c
mÆt hμng, gi¸ cña chóng, gi¸ tæng céng vμ sè cña ®¬n hμng.
- Nhμ bu«n ®−îc kiÓm tra thªm vμo ®¬n hμng: Nhμ bu«n sÏ
göi mét b¶n sao chøng chØ cña nã ®Ó kh¸ch hμng cã thÓ kiÓm tra
®−îc lμ anh ta lμm viÖc víi mét kho hμng hîp ph¸p.
- §¬n hμng chi tr¶ ®−îc göi: Kh¸ch hμng sÏ göi c¶ th«ng tin
vÒ ®¬n hμng vμ th«ng tin chi tr¶ tíi nhμ bu«n cïng víi chøng chØ
cña m×nh. §¬n hμng sÏ x¸c nhËn viÖc mua c¸c mÆt hμng trong ®¬n
hμng, th«ng tin chi tr¶ ®−îc m· hãa theo c¸ch mμ nhμ bu«n kh«ng
thÓ ®äc ®−îc. Chøng chØ cña kh¸ch hμng sÏ lμm cho nhμ bu«n cã
thÓ kiÓm tra ®−îc kh¸ch hμng.
- Nhμ bu«n yªu cÇu quyÒn chi tr¶: Nhμ bu«n göi th«ng tin chi
tr¶ tíi cæng chi tr¶ ®ßi hái quyÒn nhËn mét kho¶n tÝn dông thÝch
hîp cña kh¸ch hμng ®ñ cho vô mua b¸n ®ã...
278 Gi¸o tr×nh MËt m· häc

- Nhμ bu«n x¸c nhËn ®¬n hμng: Nhμ bu«n sÏ göi x¸c nhËn vÒ
®¬n hμng cho kh¸ch hμng.
- Nhμ bu«n cung cÊp hμng hãa vμ dÞch vô: Nhμ bu«n vËn
chuyÓn hμng hãa hoÆc cung cÊp dÞch vô cho kh¸ch hμng.
- Nhμ bu«n ®ßi hái chi tr¶: §ßi hái nμy sÏ ®−îc göi ®Õn cæng
chi tr¶ lμ n¬i khèng chÕ toμn bé qu¸ tr×nh chi tr¶.

6.2.2.4. Ch÷ ký kÐp


Môc ®Ých cña ch÷ ký kÐp lμ liªn kÕt 2 th«ng b¸o göi cho hai
bªn nhËn kh¸c nhau. Trong tr−êng hîp nμy kh¸ch hμng muèn göi
th«ng tin ®Æt hμng (OI) tíi nhμ bu«n vμ th«ng tin chi tr¶ (PI) tíi
ng©n hμng.
Nhμ bu«n kh«ng cÇn biÕt sè thÎ tÝn dông cña kh¸ch hμng vμ
ng©n hμng kh«ng cÇn biÕt chi tiÕt ®¬n hμng cña kh¸ch hμng.
Kh¸ch hμng cÇn gi÷ hai th«ng tin nμy t¸ch biÖt nh−ng hai
môc nμy ph¶i kÕt nèi theo c¸ch ®Ó cã thÓ ®−îc dïng ®Ó gi¶i quyÕt
c¸c tranh chÊp khi cÇn. KÕt nèi nμy cÇn thiÕt ®Ó kh¸ch hμng cã
thÓ chøng tá r»ng chi tr¶ nμy lμ cho ®¬n hμng ®ã chø kh«ng ph¶i
cho c¸c hμng hãa hoÆc dÞch vô kh¸c. §Ó thÊy râ h¬n ta ph¶i gi¶ sö
r»ng: kh¸ch hμng ph¶i cho nhμ bu«n hai th«ng b¸o: OI cã ký vμ PI
cã ký. Vμ nhμ bu«n göi PI tíi ng©n hμng. NÕu nhμ bu«n cã gi÷ mét
OI kh¸c cña kh¸ch hμng th× nhμ bu«n cã thÓ tuyªn bè r»ng ®ã lμ
OI ®i kÌm víi PI nμy chø kh«ng ph¶i lμ OI thùc sù. Mèi kÕt nèi sÏ
tr¸nh ®−îc sù nhËp nhÌm ®ã.

DS = E KR C ⎡⎣ H ( H ( PI ) // H ( OI ) ) ⎤⎦

KRC : Khãa ch÷ ký riªng cña kh¸ch hμng.


B©y giê gi¶ sö r»ng nhμ bu«n cã ch÷ ký kÐp (PS), cã OI vμ
tãm l−îc th«ng b¸o cña PI (PIMD). Nhμ bu«n còng cã khãa c«ng
khai cña kh¸ch hμng lÊy tõ chøng chØ cña kh¸ch hμng. Sau ®ã nhμ
bu«n cã thÓ tÝnh hai ®¹i l−îng sau:
H ( PIM // H ( OI ) ) vμ D KUC ( DS)
Ch−¬ng 6: C¸c chuÈn vµ ¸p dông 279

KUC : Khãa ch÷ ký c«ng khai cña kh¸ch hμng.


NÕu hai ®¹i l−îng nμy b»ng nhau th× nhμ bu«n ®· kiÓm tra
®−îc ch÷ ký.

T−¬ng tù, nÕu ng©n hμng cã ⎧⎨


DS, PI, OIMD
⎩ KU C
Khi ®ã ng©n hμng cã thÓ tÝnh: H(H(PI)//OIMD) vμ
D KUC ( DS ) .
NÕu hai ®¹i l−îng nμy b»ng nhau th× ng©n hμng ®· kiÓm tra
®−îc ch÷ ký.
PI
PIMD
H KRC
POMD
H E
OI
OIMD Ch÷ ký kÐp
H

PI : Th«ng tin chi tr¶ PIMD : Tãm l−îc th«ng b¸o cña PI
OI : Th«ng tin ®Æt hµng OIMD : Tãm l−îc th«ng b¸o cña OI
H : Hµm b¨m POMD : Tãm l−îc th«ng b¸o cña lÖnh chi tr¶
|| : PhÐp ghÐp E : PhÐp m· hãa (RSA)
KRC : Khãa ch÷ ký riªng cña kh¸ch hµng.

H×nh 6.3: CÊu tróc cña ch÷ ký kÐp

6.3. øng dông x¸c thùc - kerberos

6.3.1. Më ®Çu
Kerberos lμ mét dÞch vô x¸c thùc ®−îc x©y dùng tõ dù ¸n
Athena cña MIT. VÊn ®Ò mμ Kerberos muèn gi¶i quyÕt lμ: Trong
mét m«i tr−êng ph©n t¸n më, ë ®ã c¸c tr¹m lμm viÖc muèn truy
nhËp c¸c dÞch vô trªn c¸c m¸y chñ ph©n t¸n qua m¹ng. Ta muèn
c¸c m¸y chñ cã kh¶ n¨ng h¹n chÕ truy nhËp ®èi víi c¸c ng−êi
dïng hîp lÖ vμ cã thÓ x¸c thùc c¸c yªu cÇu ®èi víi mäi dÞch vô.
280 Gi¸o tr×nh MËt m· häc

Trong m«i tr−êng nμy mét tr¹m lμm viÖc kh«ng thÓ tù x¸c ®Þnh
®−îc ®óng c¸c ng−êi dïng cña nã cho c¸c dÞch vô m¹ng.
Trªn thùc tÕ cã ba nguy c¬ sau:
- Ng−êi sö dông cã thÓ sö dông mét tr¹m lμm viÖc nμo ®ã vμ
gi¶ m¹o lμ mét ng−êi dïng kh¸c.
- Ng−êi sö dông (user) cã thÓ thay ®æi ®Þa chØ m¹ng cña mét
tr¹m lμm viÖc ®Ó c¸c yªu cÇu ®−îc göi tõ tr¹m nμy xuÊt hiÖn nh−
thÓ tõ tr¹m m¹o danh.
- User cã thÓ "nghe trém" c¸c trao ®æi vμ sö dông kiÓu tÊn
c«ng sö dông l¹i ®Ó truy nhËp vμo mét m¸y chñ hoÆc ph¸ vì
ho¹t ®éng.
Trong c¸c tr−êng hîp nμy ng−êi dïng bÊt hîp ph¸p cã thÓ
truy nhËp ®−îc tíi c¸c dÞch vô vμ d÷ liÖu mμ anh ta kh«ng ®−îc
phÐp truy nhËp. Kh¸c víi viÖc x©y dùng c¸c thñ tôc x¸c thùc ë mçi
m¸y chñ, Kerberos cung cÊp mét dÞch vô x¸c thùc tËp trung cã
nhiÖm vô x¸c thùc c¸c ng−êi sö dông (user) ®èi víi m¸y chñ
(server) vμ ng−îc l¹i. CÇn chó ý r»ng Kerberos chØ sö dông mËt
m· ®èi xøng mμ kh«ng dïng mËt m· khãa c«ng khai.
Cã hai phiªn b¶n Kerberos lμ Kv.4 vμ Kv.5. Kv.5 ®−îc ®Ö
tr×nh xem nh− mét chuÈn ®−îc khuyÕn nghÞ cho Internet.
C¸c yªu cÇu chÝnh ®Æt ra cho Kerberos:
- An toμn: KÎ thu trém trªn m¹ng kh«ng cã kh¶ n¨ng thu
®−îc th«ng tin cÇn thiÕt ®Ó m¹o danh. H¬n n÷a, Kerberos ph¶i ®ñ
m¹nh ®Ó ®èi ph−¬ng m¹nh kh«ng thÓ t×m thÊy ®−îc c¸c yÕu ®iÓm.
- Tin cËy: §èi víi mäi dÞch vô khèng chÕ truy nhËp cã sö
dông Kerberos, viÖc thiÕu tÝnh s½n sμng cña dÞch vô Kerberos
còng cã nghÜa lμ thiÕu tÝnh s½n sμng cña c¸c dÞch vô ®−îc trî gióp.
Bëi vËy Kerberos ph¶i rÊt tin cËy vμ ph¶i sö dông kiÕn tróc m¸y
chñ ph©n t¸n cã hÖ thèng dù phßng.
- Trong suèt: VÒ mÆt lý t−ëng khi ng−êi dïng ®−a ra mËt khÈu
vμo hä kh«ng thÓ biÕt ®−îc r»ng qu¸ tr×nh x¸c thùc ®ang x¶y ra.
Ch−¬ng 6: C¸c chuÈn vµ ¸p dông 281

- Cã kh¶ n¨ng më réng: Kerberos ph¶i cã kh¶ n¨ng phôc vô


mét sè l−îng lín c¸c m¸y chñ vμ m¸y tr¹m. Bëi vËy Kerberos ph¶i
cã kiÕn tróc ph©n t¸n vμ m«-®un.

6.3.2. Kerberos V.4


(2) AS kiÓm tra quyÒn truy nhËp
(1) Ng−êi sö dông cña ng−êi sö dông trong CSDL t¹o
®¨ng nhËp vµ yªu Mét lÇn thÎ cÊp thÎ vµ khãa phiªn
cÇu dÞch vô víi mçi phiªn
Kerberos
®èi víi m¸y chñ. ®¨ng nhËp Yªu cÇu thÎ cÊp thÎ
M¸y chñ
ThÎ vµ khãa phiªn CSDL
x¸c thùc (AS)
Yªu cÇu thÎ cÊp dÞch vô
M¸y chñ C¬ së
d÷ liÖu
Mét lÇn ThÎ vµ khãa phiªn cÊp thÎ (TGS)
(3) Tr¹m lµm víi mçi
viÖc nh¾c nhë lo¹i dÞch vô KÕt qu¶ lµ mét khãa sö dông ®−îc
ng−êi dïng ®−a vµo m· ph¸t sinh tõ mËt khÈu cña ng−êi dïng.
mËt khÈu ®Ó gi¶i (2) TGS gi¶i m· thÎ vµ chøng chØ x¸c thùc,
m· th«ng tin tíi råi göi thÎ kiÓm tra yªu cÇu råi t¹o thÎ cho m¸y chñ
vµ chøng chØ x¸c thùc cã ®−îc yªu cÇu
chøa tªn ng−êi sö dông, Mét lÇn

u

®Þa chØ m¹ng víi mçi (6) M¸y chñ kiÓm tra sù

u

vµ thêi gian tíi TGS phiªn dÞch vô phï hîp cña thÎ vµ
dÞc
h

chøng chØ x¸c thùc råi



C

un ùc
c

cÊp quyÒn truy nhËp vµo


g
th

cÊ ¸y

dÞch vô. NÕu cã yªu cÇu


p
m

(5) Tr¹m lµm viÖc göi thÎ vµ Server


th chñ

x¸c thùc lÉn nhau m¸y


Î

chøng chØ x¸c thùc tíi m¸y chñ chñ sÏ göi mét chøng chØ
x¸c thùc

H×nh 6.4: Tãm l−îc c¸c trao ®æi th«ng b¸o cña Kv.4.

a) Trao ®æi dÞch vô x¸c thùc: §Ó thu nhËn thÎ cÊp thÎ
(1) C → AS : IDC//IDtgs//TS1 (Nhabx thêi gian).
(2) AS → C: EKc [KC, tgs // IDtgs // TS2 // LT2 (thêi gian sèng) // ThÎ tgs]
ThÎ tgs = EKtgs [KC, tgs // IDC // ADC // IDtgs // TS2 // LT2 ]
282 Gi¸o tr×nh MËt m· häc

b) Trao ®æi dÞch vô cÊp thÎ: §Ó thu nhËn thÎ cung cÊp dÞch vô
(3) C → TGS : IDV ThÎ tgs // Authenticator C. (IDV : ID cña dÞch vô yªu cÇu)
(4) TGS → C : EK,tgs [KC, V // IDV // TS2 // ThÎ V]
ThÎ tgs = EKtgs [KC, tgs // IDC // ADC // IDtgs // TS2 // LT2 ]
ThÎV = EKv [KC, v // IDC // ADC // IDV // TS2 // LT4 ]
Authenticator C = EK,tgs [IDC // ADC // TS 3]

c) Trao ®æi x¸c thùc M¸y tr¹m/ m¸y chñ: §Ó thu nhËn dÞch vô
(5) C → V : ThÎ V // Authenticator C.
(6) V → C : EKc,v [TS5 H] (®Ó x¸c thùc lÉn nhau)
ThÎV = EKv [KC, v // IDC // ADC // IDV // TS2 // LT4 ]
Authenticator C = EK,tgs [IDC // ADC // TS 5]

B¶ng trªn cho ta thÊy kü thuËt ph©n phèi kho¸ phiªn.


Tr−íc hÕt kh¸ch hμng (client) göi mét th«ng b¸o tíi AS yªu
cÇu truy nhËp vμo TGS. AS tr¶ lêi b»ng mét th«ng b¸o ®−îc m·
b»ng khãa trÝch xuÊt tõ mËt khÈu cña ng−êi dïng (KC) cã chøa
thÎ. Th«ng b¸o nμy còng chøa mét b¶n sao cña kho¸ phiªn KC,tgs
cho C vμ TGS, v× khãa phiªn nμy n»m bªn trong th«ng b¸o ®−îc
m· b»ng KC nªn chØ cã m¸y tr¹m cña ng−êi dïng míi cã thÓ ®äc
®−îc nã. Khãa phiªn nμy còng n»m trong ThÎ tgs mμ TGS cã thÓ
®äc ®−îc. Nh− vËy khãa phiªn ®· ®−îc ph©n phèi an toμn cho C vμ
TGS. CÇn chó ý r»ng mét sè th«ng tin phô ®· ®−îc thªm vμo pha
héi tho¹i ®Çu tiªn. Th«ng b¸o (1) chøa nh·n thêi gian TS 1 ®Ó AS
biÕt r»ng th«ng b¸o lμ ®óng lóc. Th«ng b¸o (2) chøa mét sè yÕu tè
cña thÎ ë d¹ng mμ C cã thÓ truy nhËp. §iÒu nμy cho phÐp C x¸c
nhËn r»ng th− nμy lμ cña TGS vμ biÕt ®−îc thêi gian hÕt h¹n
cña nã.
Khi cã thÎ vμ khãa phiªn C ®· cã thÓ truy nhËp vμo TGS.
Tr−íc hÕt C göi tíi TGS mét th«ng b¸o chøa thÎ + IDV (®Þnh
danh cña dÞch vô yªu cÇu) (th«ng b¸o (3)). H¬n n÷a, C còng ph¸t
mét thÎ x¸c thùc Authenticator bao gåm IDC vμ ADC (®Þa chØ cña
ng−êi dïng C) vμ mét nh·n thêi gian TS 3. Kh«ng gièng nh− thÎ cã
Ch−¬ng 6: C¸c chuÈn vµ ¸p dông 283

thÓ dïng l¹i, thÎ x¸c thùc chØ dïng mét lÇn vμ cã thêi gian sèng
ng¾n. TGS cã thÓ gi¶i m· thÎ b»ng khãa mμ nã chia sÎ víi AS. ThÎ
nμy b¸o r»ng ng−êi dïng C ®· ®−îc cung cÊp khãa phiªn K c,tgs .
Thùc ra, thÎ nμy b¸o r»ng "Ng−êi sö dông khãa K c,tgs ph¶i lμ C".

TGS dïng khãa phiªn ®Ó gi¶i m· thÎ x¸c thùc. Sau ®ã TGS
cã thÓ kiÓm tra tªn vμ ®Þa chØ tõ thÎ x¸c thùc tõ néi dung cña thÎ
vμ tõ ®Þa chØ m¹ng cña th«ng b¸o tíi. NÕu mäi ®iÒu lμ phï hîp th×
TGS ®· ®−îc ®¶m b¶o r»ng ng−êi göi thÎ thùc sù lμ chñ nh©n cña
thÎ. Thùc ra thÎ nμy b¸o r»ng "ë thêi ®iÓm TS3 t«i sö dông K c,tgs ".
CÇn chó ý r»ng thÎ kh«ng chøng minh ®Þnh danh cña bÊt cø ai
nh−ng lμ mét ph−¬ng ph¸p ®Ó ph©n phèi c¸c khãa mét c¸ch an
toμn. ChÝnh thÎ x¸c thùc sÏ chøng minh ®Þnh danh cña client. V×
thÎ x¸c thùc chØ dïng mét lÇn vμ cã thêi gian dïng ng¾n nªn ®èi
ph−¬ng khã lßng cã thÓ ¨n c¾p thÎ vμ thÎ x¸c thùc ®Ó dïng l¹i.
TGS tr¶ lêi b»ng th«ng b¸o (4) cã d¹ng nh− th«ng b¸o (2).
Th«ng b¸o ®−îc m· b»ng khãa phiªn chia sÎ gi÷a TGS vμ C,
nã chøa mét khãa phiªn cÇn chia sÎ gi÷a C vμ m¸y chñ V, ®Þnh
danh cña V; IDV, nh·n thêi gian cña thÎ. B¶n th©n thÎ còng chøa
khãa phiªn nμy.
Lóc nμy C cã thÎ cÊp dÞch vô cã thÓ dïng l¹i ®èi víi V. Khi C
tr×nh thÎ nμy trong th«ng b¸o (5) nã còng göi kÌm theo mét thÎ
x¸c thùc (Authentication)
M¸y chñ V cã thÓ gi¶i m· thÎ, kh«i phôc khãa phiªn vμ gi¶i
m· thÎ x¸c thùc khi cÇn x¸c thùc lÉn nhau, m¸y chñ cã thÓ tr¶ lêi
nh− th«ng b¸o (6). M¸y chñ tr¶ l¹i gi¸ trÞ nh·n thêi gian lÊy tõ
thÎ x¸c thùc ®−îc t¨ng thªm 1 vμ ®−îc m· b»ng khãa phiªn. C cã
thÓ gi¶i m· th«ng b¸o nμy ®Ó kh«i phôc l¹i nh·n thêi gian ®· ®−îc
t¨ng. V× th«ng b¸o ®−îc m· b»ng khãa phiªn nªn C ®−îc ®¶m b¶o
r»ng nã chØ cã thÓ ®−îc t¹o bëi V. Néi dung cña th«ng b¸o ®¶m b¶o
víi C r»ng th«ng b¸o nμy kh«ng ph¶i lμ dïng l¹i th«ng b¸o cò.
Cuèi cïng, ë cuèi qu¸ tr×nh, client vμ server cïng chia sÎ mét khãa
284 Gi¸o tr×nh MËt m· häc

bÝ mËt. Khãa nμy cã thÓ ®−îc dïng ®Ó m· hãa c¸c th«ng b¸o trong
t−¬ng lai cho hai bªn hoÆc ®Ó trao ®æi khãa phiªn ngÉu nhiªn míi.
Gi¶i thÝch c¸c yÕu tè trong thñ tôc Kv.4
a) Trao ®æi dÞch vô x¸c thùc
Th«ng b¸o (1) Client yªu cÇu thÎ cÊp thÎ.
IDC B¸o cho AS ®Þnh danh cña ng−êi dïng tõ client nµy
IDtgs B¸o cho AS biÕt r»ng ng−êi dïng yªu cÇu truy nhËp TGS
TS 1 Cho phÐp AS kiÓm tra r»ng ®ång hå cña client ®−îc ®ång bé víi AS
Th«ng b¸o (2) AS tr¶ vÒ thÎ cÊp thÎ

EK C,v M· hãa dùa trªn mËt khÈu cña ng−êi dïng, cho phÐp AS vµ client
kiÓm tra mËt khÈu vµ b¶o vÖ néi dung cña th«ng b¸o (2)
KC, tgs B¶n sao cña khãa phiªn ®−îc t¹o bëi AS mµ client cã thÓ sö dông ®Ó
thùc hiÖn trao ®æi bÝ mËt gi÷a client vµ TGS (kh«ng yªu cÇu chóng
ph¶i chia sÎ mét khãa cè ®Þnh)
IDtgs X¸c nhËn r»ng thÎ nµy lµ cho TGS

TS 2 B¸o cho client vÒ thêi gian mµ thÎ nµy ®Ö tr×nh.


LT 2 B¸o cho client vÒ thêi gian sèng cña thÎ nµy

ThÎ tgs ThÎ cÇn ®−îc client sö dông ®Ó truy nhËp TGS

b) Trao ®æi dÞch vô cÊp thÎ


Th«ng b¸o (3) Client yªu cÇu thÎ cÊp dÞch vô
IDV B¸o cho TGS r»ng ng−êi dïng yªu cÇu truy nhËp tíi m¸y chñ V.
ThÎ tgs §¶m b¶o cho TGS r»ng ng−êi dïng nµy ®−îc x¸c thùc bëi AS.

AuthenticatorC §−îc t¹o bëi client ®Ó x¸c nhËn tÝnh hîp lÖ cho thÎ.
Th«ng b¸o (4) TGS tr¶ vÒ thÎ cÊp dÞch vô.
EK C,tgs Khãa ®−îc chia sÎ gi÷a C vµ TGS dïng b¶o vÖ néi dung cña th«ng
b¸o (4)
K C,tgs B¶n sao cña kho¸ phiªn ®−îc t¹o bëi AS.

IDV X¸c nhËn r»ng thÎ nµy lµ cho m¸y chñ V


TS 4 B¸o cho client vÒ thêi gian mµ thÎ nµy ®−îc ®Ö tr×nh.
ThÎ V ThÎ ®−îc dïng bëi client ®Ó truy nhËp vµo m¸y chñ V.
ThÎ tgs Cã kh¶ n¨ng dïng l¹i ®Ó ng−êi dïng kh«ng ph¶i vµo l¹i mËt khÈu.

EKtgs ThÎ ®−îc m· hãa b»ng khãa chØ cã AS vµ TGS biÕt nh»m tr¸nh
ph¸ rèi (thu trém)
Ch−¬ng 6: C¸c chuÈn vµ ¸p dông 285

KC, tgs B¶n sao cña khãa phiªn mµ TGS cã thÓ truy nhËp ®−îc dïng ®Ó gi¶i
m· thÎ x¸c thùc nhê ®ã x¸c thùc thÎ
IDC B¸o chñ së h÷u hîp lÖ cña thÎ nµy
ADC Tr¸nh viÖc dïng thÎ tõ mét tr¹m lµm viÖc kh¸c víi tr¹m ®· yªu
cÇu thÎ
IDtgs §¶m b¶o cho m¸y chñ r»ng nã ®· gi¶i m· ®óng cho thÎ.
TS 2 B¸o cho TGS vÒ thêi gian mµ thÎ nµy ®−îc ®Ö tr×nh.
LT 2 Tr¸nh dïng l¹i sau khi thÎ ®· hÕt h¹n.
AuthenticatorC §¶m b¶o cho TGS r»ng ng−êi tr×nh thÎ ®óng lµ client mµ thÎ ®· ®−îc
tr×nh cho nã, cã thêi gian sèng ng¾n ®Ó tr¸nh dïng l¹i.

E K C ,tgs ThÎ x¸c thùc ®−îc m· b»ng khãa chØ cã client vµ TGS biÕt nh»m
tr¸nh thu trém.
ID C Ph¶i phï hîp víi ID trong thÎ ®Ó x¸c thùc thÎ.
AD C Ph¶i phï hîp víi ®Þa chØ trong thÎ ®Ó x¸c thùc thÎ
TS 2 B¸o cho TGS vÒ thêi gian mµ thÎ x¸c thùc nµy ®−îc t¹o ra.
c) Trao ®æi x¸c thùc M¸y tr¹m/ m¸y chñ (Client/Server)
Th«ng b¸o (5) Client yªu cÇu dÞch vô.
ThÎ V §¶m b¶o víi m¸y chñ r»ng ng−êi dïng nµy ®· ®−îc AS x¸c nhËn.
AuthenticatorC §−îc t¹o bëi client ®Ó x¸c nhËn tÝnh hîp lÖ cho thÎ.
Th«ng b¸o (6) X¸c thùc (tïy chän) cña server ®èi víi client.

EK C, v §¶m b¶o cho C r»ng th«ng b¸o nµy lµ tõ V.

TS 5+1 §¶m b¶o cho C r»ng ®©y kh«ng ph¶i lµ sù dïng l¹i cña håi ®¸p cò.
ThÎ V Cã thÓ dïng l¹i ®Ó client kh«ng cÇn yªu cÇu thÎ míi tõ TGS ®èi víi
mçi truy nhËp tíi cïng m¸y chñ.

EKv ThÎ ®−îc m· hãa b»ng khãa chØ cã TGS vµ server biÕt nh»m tr¸nh
thu trém.

KC, V B¶n sao cña khãa phiªn mµ client cã thÓ truy nhËp, ®−îc dïng ®Ó
gi¶i m· thÎ x¸c thùc nh»m x¸c thùc thÎ.

IDC B¸o chñ së h÷u hîp lÖ cña thÎ nµy.

ADC Tr¸nh viÖc dïng thÎ tõ mét tr¹m lµm viÖc kh¸c víi tr¹m ®· yªu cÇu
thÎ.

IDV §¶m b¶o cho server r»ng nã ®· gi¶i m· ®óng cho thÎ.

TS 4 B¸o cho server vÒ thêi gian mµ thÎ nµy ®−îc ®Ö tr×nh.

LT 4 Tr¸nh dïng l¹i sau khi thÎ ®· hÕt h¹n.


286 Gi¸o tr×nh MËt m· häc

AuthenticatorC §¶m b¶o cho server r»ng ng−êi tr×nh thÎ ®óng lµ client mµ thÎ ®·
®−îc ®−a cho nã, cã thêi gian sèng ng¾n ®Ó tr¸nh dïng l¹i.

EK C, v ThÎ x¸c thùc ®−îc m· b»ng khãa chØ cã server vµ client biÕt nh»m
tr¸nh thu trém.
IDC Ph¶i phï hîp víi ID trong thÎ ®Ó x¸c thùc thÎ.
ADC Ph¶i phï hîp víi ®Þa chØ trong thÎ ®Ó x¸c thùc thÎ.
TS5 B¸o cho server vÒ thêi gian mµ thÎ x¸c thùc nµy ®−îc t¹o.

Bμi tËp

1. Nªu ý t−ëng thiÕt kÕ mét hÖ mËt b¶o vÖ c¸c tÖp d÷ liÖu


trªn c¬ së ph©n tÝch PGP?
2. CÊu t¹o cña ch÷ ký kÐp? ý nghÜa cña ch÷ ký kÐp trong
th−¬ng m¹i ®iÖn tö?
3. Vai trß cña m¸y chñ x¸c thùc trong Kenberos?
4. H·y m« t¶ qu¸ tr×nh trao ®æi dÞch vô x¸c thùc trong K.V.4?
PhÇn phô lôc
PhÇn Phô lôc 289

Phô lôc 1
Lý thuyÕt th«ng tin trong c¸c hÖ mËt

N¨m 1949, Claude Shannon ®· c«ng bè mét bμi b¸o cã nhan


®Ò " Lý thuyÕt th«ng tin trong c¸c hÖ mËt" trªn t¹p chÝ "The Bell
System Technical Journal". Bμi b¸o ®· cã ¶nh h−ëng lín ®Õn viÖc
nghiªn cøu khoa häc mËt m·. Trong ch−¬ng nμy ta sÏ th¶o luËn
mét vμi ý t−ëng trong lý thuyÕt cña Shannon.

PL 1.1. ®é mËt hoμn thiÖn


Cã hai quan ®iÓm c¬ b¶n vÒ ®é an toμn cña mét hÖ mËt.
§é an toμn tÝnh to¸n:
§é ®o nμy liªn quan ®Õn nh÷ng nç lùc tÝnh to¸n cÇn thiÕt ®Ó
ph¸ mét hÖ mËt. Mét hÖ mËt lμ an toμn vÒ mÆt tÝnh to¸n nÕu mét
thuËt to¸n tèt nhÊt ®Ó ph¸ nã cÇn Ýt nhÊt N phÐp to¸n, N lμ sè rÊt
lín nμo ®ã. VÊn ®Ò lμ ë chç, kh«ng cã mét hÖ mËt thùc tÕ ®· biÕt
nμo cã thÓ ®−îc chøng tá lμ an toμn theo ®Þnh nghÜa nμy. Trªn
thùc tÕ, ng−êi ta gäi mét hÖ mËt lμ "an toμn vÒ mÆt tÝnh to¸n" nÕu
cã mét ph−¬ng ph¸p tèt nhÊt ph¸ hÖ nμy nh−ng yªu cÇu thêi gian
lín ®Õn møc kh«ng chÊp nhËn ®−îc (§iÒu nμy tÊt nhiªn lμ rÊt
kh¸c víi viÖc chøng minh vÒ ®é an toμn).
Mét quan ®iÓm chøng minh vÒ ®é an toμn tÝnh to¸n lμ quy ®é
an toμn cña mét hÖ mËt vÒ mét bμi to¸n ®· ®−îc nghiªn cøu kü vμ
bμi to¸n nμy ®−îc coi lμ khã. VÝ dô, ta cã thÓ chøng minh mét
kh¼ng ®Þnh cã d¹ng " Mét hÖ mËt ®· cho lμ an toμn nÕu kh«ng thÓ
ph©n tÝch ra thõa sè mét sè nguyªn n cho tr−íc". C¸c hÖ mËt lo¹i
nμy ®«i khi gäi lμ " an toμn chøng minh ®−îc". Tuy nhiªn cÇn ph¶i
hiÓu r»ng, quan ®iÓm nμy chØ cung cÊp mét chøng minh vÒ ®é an
toμn cã liªn quan ®Õ mét bμi to¸n kh¸c chø kh«ng ph¶i lμ mét
290 Gi¸o tr×nh MËt m· häc

chøng minh hoμn chØnh vÒ ®é an toμn (T×nh h×nh nμy còng t−¬ng
tù nh− viÖc chøng minh mét bμi to¸n lμ NP ®Çy ®ñ: Cã thÓ chøng
tá bμi to¸n ®· cho chÝ Ýt còng khã nh− mét bμi to¸n NP ®Çy ®ñ
kh¸c, song kh«ng ph¶i lμ mét chøng minh hoμn chØnh vÒ ®é khã
tÝnh to¸n cña bμi to¸n).
§é an toμn kh«ng ®iÒu kiÖn
§é ®o nμy liªn quan ®Õn ®é an toμn cña c¸c hÖ mËt khi
kh«ng cã mét h¹n chÕ nμo ®−îc ®Æt ra vÒ khèi l−îng tÝnh to¸n mμ
Oscar ®−îc phÐp thùc hiÖn. Mét hÖ mËt ®−îc gäi lμ an toμn kh«ng
®iÒu kiÖn nÕu nã kh«ng thÓ bÞ ph¸ thËm chÝ víi kh¶ n¨ng tÝnh
to¸n kh«ng h¹n chÕ.
Khi th¶o luËn vÒ ®é an toμn cña mét hÖ mËt, ta còng ph¶i chØ
ra kiÓu tÊn c«ng ®ang ®−îc xem xÐt. Trong ch−¬ng 3 ®· cho thÊy
r»ng, kh«ng mét hÖ mËt nμo trong c¸c hÖ m· dÞch vßng, m· thay
thÕ vμ m· VigenÌre ®−îc coi lμ an toμn vÒ mÆt tÝnh to¸n víi
ph−¬ng ph¸p tÊn c«ng chØ víi b¶n m· (Víi khèi l−îng b¶n m·
thÝch hîp).
§iÒu mμ ta sÏ lμm trong phÇn nμy lμ ®Ó ph¸t triÓn lý thuyÕt
vÒ c¸c hÖ mËt cã ®é an toμn kh«ng ®iÒu kiÖn víi ph−¬ng ph¸p tÊn
c«ng chØ víi b¶n m·. NhËn thÊy r»ng, c¶ ba hÖ mËt nªu trªn ®Òu
lμ c¸c hÖ mËt an toμn v« ®iÒu kiÖn chØ khi mçi phÇn tö cña b¶n râ
®−îc m· ho¸ b»ng mét kho¸ cho tr−íc.
Râ rμng lμ ®é an toμn kh«ng ®iÒu kiÖn cña mét hÖ mËt kh«ng
thÓ ®−îc nghiªn cøu theo quan ®iÓm ®é phøc t¹p tÝnh to¸n v× thêi
gian tÝnh to¸n cho phÐp kh«ng h¹n chÕ. ë ®©y lý thuyÕt x¸c suÊt
lμ nÒn t¶ng thÝch hîp ®Ó nghiªn cøu vÒ ®é an toμn kh«ng ®iÒu
kiÖn. Tuy nhiªn ta chØ cÇn mét sè kiÕn thøc s¬ ®¼ng trong x¸c
suÊt; c¸c ®Þnh nghÜa chÝnh sÏ ®−îc nªu d−íi ®©y.
§Þnh nghÜa 1.1
Gi¶ sö X vμ Y lμ c¸c biÕn ngÉu nhiªn. KÝ hiÖu x¸c suÊt ®Ó X
nhËn gi¸ trÞ x lμ p(x) vμ ®Ó Y nhËn gi¸ trÞ y lμ p(y). X¸c suÊt ®ång
PhÇn Phô lôc 291

thêi p(x, y) lμ x¸c suÊt ®Ó X nhËn gi¸ trÞ x vμ Y nhËn gi¸ trÞ y. X¸c
suÊt cã ®iÒu kiÖn p(x⏐y) lμ x¸c suÊt ®Ó X nhËn gi¸ trÞ x víi ®iÒu
kiÖn Y nhËn gi¸ trÞ y. C¸c biÕn ngÉu nhiªn X vμ Y ®−îc gäi lμ ®éc
lËp nÕu p(x, y) = p(x)p(y) víi mäi gi¸ trÞ cã thÓ x cña X vμ y cña Y.
Quan hÖ gi÷a x¸c suÊt ®ång thêi vμ x¸c suÊt cã ®iÒu kiÖn
®−îc biÓu thÞ theo c«ng thøc:
p ( x, y ) = p ( x y ) p ( y )

§æi chç x vμ y ta cã:


p ( x, y ) = p ( y x ) p ( x )

Tõ hai biÓu thøc trªn ta cã thÓ rót ra kÕt qu¶ sau: (®−îc gäi
lμ ®Þnh lý Bayes)
§Þnh lý 1.1: (§Þnh lý Bayes)
NÕu p ( y ) > 0 th×:

p (x) p (y x)
p (x y) =
p (y)

HÖ qu¶ 1.2
X vμ Y lμ c¸c biÕn ®éc lËp khi vμ chØ khi: p ( x y ) = p ( x ) víi
mäi x,y.
Trong phÇn nμy ta gi¶ sö r»ng, mét kho¸ cô thÓ chØ dïng cho
mét b¶n m·. Gi¶ sö cã mét ph©n bè x¸c suÊt trªn kh«ng gian b¶n
râ P. KÝ hiÖu x¸c suÊt tiªn nghiÖm ®Ó b¶n râ xuÊt hiÖn lμ pP (x).
Còng gi¶ sö r»ng, khãa K ®−îc chän (bëi Alice vμ Bob) theo mét
ph©n bè x¸c suÊt x¸c ®Þnh nμo ®ã. (Th«ng th−êng kho¸ ®−îc chän
ngÉu nhiªn, bëi vËy tÊt c¶ c¸c kho¸ sÏ ®ång kh¶ n¨ng, tuy nhiªn
®©y kh«ng ph¶i lμ ®iÒu b¾t buéc). KÝ hiÖu x¸c suÊt ®Ó khãa K ®−îc
chän lμ pK(K). CÇn nhí r»ng khãa ®−îc chän tr−íc khi Alice biÕt
b¶n râ. Bëi vËy cã thÓ gi¶ ®Þnh r»ng kho¸ K vμ b¶n râ x lμ c¸c sù
kiÖn ®éc lËp.
292 Gi¸o tr×nh MËt m· häc

Hai ph©n bè x¸c suÊt trªn P vμ K sÏ t¹o ra mét ph©n bè x¸c


suÊt trªn C. ThËt vËy, cã thÓ dÔ dμng tÝnh ®−îc x¸c suÊt pP(y) víi y
lμ b¶n m· ®−îc göi ®i. Víi mét kho¸ K ∈ K, ta x¸c ®Þnh:
C ( K ) = {eK ( x ) : x ∈P }

ë ®©y C(K) biÓu thÞ tËp c¸c b¶n m· cã thÓ nÕu K lμ khãa. Khi
®ã víi mçi y ∈ C, ta cã :
pC ( y ) = ∑ pK ( K ) pP ( d K ( y ) )
{K:y∈C ( K )}
NhËn thÊy r»ng, víi bÊt k× y ∈ C vμ x ∈ P, cã thÓ tÝnh ®−îc
x¸c suÊt cã ®iÒu kiÖn pC ( y x ) . (Tøc lμ x¸c suÊt ®Ó y lμ b¶n m· víi
®iÒu kiÖn b¶n râ lμ x):
pC ( y x ) = ∑ pK ( K )
{K:x = dK ( y )}
B©y giê ta cã thÓ tÝnh ®−îc x¸c suÊt cã ®iÒu kiÖn pP ( x y ) (tøc
x¸c suÊt ®Ó x lμ b¶n râ víi ®iÒu kiÖn y lμ b¶n m·) b»ng c¸ch dïng
®Þnh lý Bayes. Ta thu ®−îc c«ng thøc sau:
pP ( x ) = ∑ pK ( K )
{K:x = dK ( y )}
pP ( y x ) =
∑ pK ( K ) pP ( d K ( y ) )
{K:y∈c( K )}
C¸c phÐp tÝnh nμy cã thÓ thùc hiÖn ®−îc nÕu biÕt ®−îc c¸c
ph©n bè x¸c suÊt.
Sau ®©y sÏ tr×nh bμy mét vÝ dô ®¬n gi¶n ®Ó minh häa viÖc
tÝnh to¸n c¸c ph©n bè x¸c suÊt nμy.
VÝ dô 1.1
Gi¶ sö P = {a, b} víi pP ( a ) = 1 4 , pP ( b ) = 3 4 . Cho
K = {K1, K 2 , K 3 } víi pK ( K1 ) = 1 2 , pK ( K 2 ) = pK ( K 3 ) = 1 4 . Gi¶ sö
PhÇn Phô lôc 293

C = {1,2,3, 4} vμ c¸c hμm m· ®−îc x¸c ®Þnh lμ eK1(a) = 1, eK2(b) = 2,


eK2(a) = 2, eK2(b) = 3, eK3(a) = 3, eK3(a) = 4. HÖ mËt nμy ®−îc biÓu
thÞ b»ng ma trËn m· ho¸ sau:
a b
K1 1 2
K2 2 3
K3 2 4

TÝnh ph©n bè x¸c suÊt pC ta cã:


pC (1) = 1/8
pC (2) = 3/8 + 1/16 = 7/16
pC (3) = 3/16 + 1/16 = 1/4
pC (4) = 3/16
B©y giê ta ®· cã thÓ c¸c ph©n bè x¸c suÊt cã ®iÒu kiÖn trªn
b¶n râ víi ®iÒu kiÖn ®· biÕt b¶n m·. Ta cã:
pP(a | 1) = 1 pP(b | 1) = 0 pP(a | 2) = 1/7 pP(b | 2) = 6/7
pP(a | 3) = 1/4 pP(b | 3) = 3/4 pP(a | 4) = 0 pP(b | 4) = 1
B©y giê ta ®· cã ®ñ ®iÒu kiÖn ®Ó x¸c ®Þnh kh¸i niÖm vÒ ®é
mËt hoμn thiÖn. Mét c¸ch kh«ng h×nh thøc, ®é mËt hoμn thiÖn cã
nghÜa lμ Oscar víi b¶n m· trong tay kh«ng thÓ thu ®−îc th«ng tin
g× vÒ b¶n râ. ý t−ëng nμy sÏ ®−îc lμm chÝnh x¸c b»ng c¸ch ph¸t
biÓu nã theo c¸c thuËt ng÷ cña c¸c ph©n bè x¸c suÊt ®Þnh nghÜa ë
trªn nh− sau:
§Þnh nghÜa 1.2
Mét hÖ mËt cã ®é mËt hoμn thiÖn nÕu pP ( x y ) = pP ( x ) víi mäi
x ∈ P , y ∈ C Tøc x¸c suÊt hËu nghiÖm ®Ó b¶n râ lμ x víi ®iÒu kiÖn
®· thu ®−îc b¶n m· y lμ ®ång nhÊt víi x¸c suÊt tiªn nghiÖm ®Ó
b¶n râ lμ x.
Trong vÝ dô 2.1 chØ cã b¶n m· 3 míi tháa m·n tÝnh chÊt ®é
mËt hoμn thiÖn, c¸c b¶n m· kh¸c kh«ng cã tÝnh chÊt nμy.
294 Gi¸o tr×nh MËt m· häc

Sau ®©y sÏ chøng tá r»ng, MDV cã ®é mËt hoμn thiÖn. VÒ


mÆt trùc gi¸c, ®iÒu nμy d−êng nh− qu¸ hiÓn nhiªn. Víi m· dÞch
vßng, nÕu ®· biÕt mét phÇn tö bÊt kú cña b¶n m· y ∈ Z26, th× mét
phÇn tö bÊt kú cña b¶n râ x ∈ Z26 còng cã thÓ lμ b¶n m· ®· gi¶i
cña y tuú thuéc vμo gi¸ trÞ cña kho¸. §Þnh lý sau cho mét kh¼ng
®Þnh h×nh thøc hãa vμ ®−îc chøng minh theo c¸c ph©n bè x¸c suÊt.
§Þnh lý 1.3
Gi¶ sö 26 khãa trong MDV cã x¸c suÊt nh− nhau vμ
b»ng1/26.Khi ®ã MDV sÏ cã ®é mËt hoμn thiÖn víi mäi ph©n bè
x¸c suÊt cña b¶n râ.
Chøng minh: Ta cã P = C = K = Z26 vμ víi 0 ≤ K ≤ 25, quy t¾c
m· ho¸ eK lμ eK ( x ) = x + K mod 26 (x ∈ 26). Tr−íc tiªn tÝnh ph©n bè
PC . Gi¶ sö y ∈ Z26, khi ®ã:
pC ( y ) = ∑ pK ( K ) pP ( d K ( y ) )
K∈Z 26

= ∑ 1 26 pP ( y − K )
K∈Z 26

= 1 26 ∑ pP ( y − K )
K∈Z 26

XÐt thÊy víi y cè ®Þnh, c¸c gi¸ trÞ y − K mod 26 sÏ t¹o thμnh
mét ho¸n vÞ cña Z26 vμ pP lμ mét ph©n bè x¸c suÊt. Bëi vËy ta cã:

∑ pP ( y − K ) = ∑ pP ( y ) = 1
K∈Z 26 K∈Z 26

Do ®ã pC ( y ) = 1 26 víi bÊt kú y ∈ Z26.

TiÕp theo ta cã:


pC ( y x ) = pK ( y − x mod 26 ) = 1 26

Víi mäi x,y v× víi mçi cÆp x,y, khãa duy nhÊt K (khãa ®¶m
b¶o eK(x) = y) lμ khãa K = y-x mod 26. B©y giê sö dông ®Þnh lý
Bayes, ta cã thÓ dÔ dμng tÝnh:
PhÇn Phô lôc 295

pP ( x ) pC ( y x )
pC ( x y ) =
pC ( y )
pP ( x ) . (1 26 )
=
(1 26 )
= pP ( x )

Bëi vËy, MDV cã ®é mËt hoμn thiÖn.


Nh− vËy, m· dÞch vßng lμ hÖ mËt kh«ng ph¸ ®−îc miÔn lμ chØ
dïng mét kho¸ ngÉu nhiªn ®Ó m· ho¸ mçi ký tù cña b¶n râ.
Sau ®©y sÏ nghiªn cøu ®é mËt hoμn thiÖn trong tr−êng hîp
chung. Tr−íc tiªn thÊy r»ng, (sö dông ®Þnh lý Bayes) ®iÒu kiÖn ®Ó
pP (x | y) = pP (x) víi mäi x∈P , y∈P lμ t−¬ng ®−¬ng víi pC (y | x) =
pC (y) víi mäi x∈P , y∈P .
Gi¶ sö r»ng pC (y) > 0 víi mäi y∈C (pC (y) = 0 th× b¶n m· sÏ
kh«ng ®−îc dïng vμ cã thÓ lo¹i khái C ). Cè ®Þnh mét gi¸ trÞ nμo
®ã x∈P. Víi mçi y∈C ta cã pC (y | x) = pC (y) > 0. Bëi vËy, víi mçi
y∈C ph¶i cã Ýt nhÊt mét kho¸ K sao cho eK(x) = y. §iÒu nμy dÉn
®Õn |K | ≥ | C |. Trong mét hÖ mËt bÊt kú ta ph¶i cã |C | ≥ | P | v× mçi
quy t¾c m· ho¸ lμ mét ®¬n ¸nh. Trong tr−êng hîp giíi h¹n, |K | =
|C | = | P |, ta cã ®Þnh lý sau (Theo Shannon).

§Þnh lý 1.4
Gi¶ sö (P,C, K, E, D) lμ mét hÖ mËt, trong ®ã |K | = | C | = | P |.
Khi ®ã, hÖ mËt cã ®é mËt hoμn thiÖn khi vμ mçi khi khãa K ®−îc
dïng víi x¸c suÊt nh− nhau b»ng 1/|K | , vμ mçi x ∈ P, mçi y ∈ C
cã mét khãa duy nhÊt K sao cho eK(x) = y.
Chøng minh
Gi¶ sö hÖ mËt ®· cho cã ®é mËt hoμn thiÖn. Nh− ®· thÊy ë
trªn, víi mçi x ∈P vμ y ∈C , ph¶i cã Ýt nhÊt mét kho¸ K sao cho
eK(x) = y. Bëi vËy ta cã bÊt ®¼ng thøc:
296 Gi¸o tr×nh MËt m· häc

C = {e K ( x ) : K ∈ C } = K

Tuy nhiªn, ta gi¶ sö r»ng |C | = |K | . Bëi vËy ta ph¶i cã:

{e K ( x ) : K ∈ C } = K
Tøc lμ ë ®©y kh«ng tån t¹i hai kho¸ K1 vμ K2 kh¸c nhau ®Ó
e K1 ( x ) = e K2 ( x ) = y . Nh− vËy ta ®· chøng tá ®−îc r»ng, víi bÊt kú
x ∈P vμ y ∈C cã ®óng mét khãa K ®Ó eK(x) = y.
Ký hiÖu n = |K | . Gi¶ sö P = {xi: 1 ≤ i ≤ n} vμ cè ®Þnh mét gi¸
trÞ y ∈C. Ta cã thÓ ký hiÖu c¸c kho¸ K1, K2,. . ., Kn sao cho eKi (xi ) =
yi, 1 ≤ i ≤ n. Sö dông ®Þnh lý Bayes ta cã:
pC ( y x i ) pP ( x i )
pP ( x i y ) =
pC ( y )
pK ( K1 ) . ( pP ( x i ) )
=
pC ( y )

XÐt ®iÒu kiÖn ®é mËt hoμn thiÖn pP ( x i y ) = pP ( x i ) §iÒu kiÖn


nμy kÐo theo pK ( K i = pC ( y ) ) víi 1 ≤ i ≤ n. Tøc lμ kho¸ ®−îc dïng
víi x¸c suÊt nh− nhau (chÝnh b»ng pC(y)). Tuy nhiªn v× sè kho¸ lμ
|K | nªn ta cã pK(K) =1/ |K | víi mçi K ∈K .
Ng−îc l¹i, gi¶ sö hai ®iÒu gi¶ ®Þnh ®Òu tho¶ m·n. Khi ®ã dÔ
dμng thÊy ®−îc hÖ mËt cã ®é mËt hoμn thiÖn víi mäi ph©n bè x¸c
suÊt bÊt kú cña b¶n râ (t−¬ng tù nh− chøng minh ®Þnh lý 2.3). C¸c
chi tiÕt dμnh cho b¹n ®äc xem xÐt.
MËt m· kho¸ sö dông mét lÇn cña Vernam (One-Time-
Pad:OTP) lμ mét vÝ dô quen thuéc vÒ hÖ mËt cã ®é mËt hoμn
thiÖn. Gillbert Vernam lÇn ®Çu tiªn m« t¶ hÖ mËt nμy vμo n¨m
1917. HÖ OTP dïng ®Ó m· vμ gi¶i m· tù ®éng c¸c b¶n tin ®iÖn
b¸o. §iÒu thó vÞ lμ trong nhiÒu n¨m OTP ®−îc coi lμ mét hÖ mËt
kh«ng thÓ bÞ ph¸ nh−ng kh«ng thÓ chøng minh cho tíi khi
Shannon x©y dùng ®−îc kh¸i niÖm vÒ ®é mËt hoμn thiÖn h¬n 30
n¨m sau ®ã.
PhÇn Phô lôc 297

M« t¶ vÒ hÖ mËt dïng mét lÇn nªu trªn h×nh PL 1.1.


Gi¶ sö n ≥ 1 lµ sè nguyªn vµ P = C = K = (Z2)n. Víi K (Z2)n , ta x¸c ®Þnh eK(x)
lµ tæng vÐc t¬ theo modulo 2 cña K vµ x (hay t−¬ng ®−¬ng víi phÐp hoÆc lo¹i
trõ cña hai d·y bit t−¬ng øng). Nh− vËy, nÕu x = (x1,..., xn ) vµ K = (K1,..., Kn )
th×:
e K(x) = (x1 + K1,..., xn + Kn) mod 2.
PhÐp m· ho¸ lµ ®ång nhÊt víi phÐp gi¶i m·. NÕu y = (y1,..., yn ) th×:
d K(y) = (y1 + K1,..., yn + Kn) mod 2.

H×nh PL 1.1: HÖ mËt sö dông kho¸ mét lÇn (OTP)


Sö dông ®Þnh lý 2.4, dÔ dμng thÊy r»ng OTP cã ®é mËt hoμn
thiÖn. HÖ thèng nμy rÊt hÊp dÉn do dÔ thùc hiÖn m· vμ gi¶i m·.
Vernam ®· ®¨ng ký ph¸t minh cña m×nh víi hy väng r»ng nã
sÏ cã øng dông th−¬ng m¹i réng r·i. §¸ng tiÕc lμ cã nh÷ng nh−îc
®iÓm quan träng ®èi víi c¸c hÖ mËt an toμn kh«ng ®iÒu kiÖn,
ch¼ng h¹n nh− OTP. §iÒu kiÖn |K | ≥ | P | cã nghÜa lμ l−îng khãa
(cÇn ®−îc th«ng b¸o mét c¸ch bÝ mËt) còng lín nh− b¶n râ. VÝ dô,
trong tr−êng hîp hÖ OTP, ta cÇn n bit khãa ®Ó m· ho¸ n bit cña
b¶n râ. VÊn ®Ò nμy sÏ kh«ng quan träng nÕu cã thÓ dïng cïng mét
kho¸ ®Ó m· ho¸ c¸c b¶n tin kh¸c nhau; tuy nhiªn, ®é an toμn cña
c¸c hÖ mËt an toμn kh«ng ®iÒu kiÖn l¹i phô thuéc vμo mét thùc tÕ
lμ mçi kho¸ chØ ®−îc dïng cho mét lÇn m·. VÝ dô OTP kh«ng thÓ
®øng v÷ng tr−íc tÊn c«ng chØ víi b¶n râ ®· biÕt v× ta cã thÓ tÝnh
®−îc K b»ng phÐp hoÆc lo¹i trõ x©u bÝt bÊt kú x vμ eK(x). Bëi vËy,
cÇn ph¶i t¹o mét khãa míi vμ th«ng b¸o nã trªn mét kªnh b¶o mËt
®èi víi mçi b¶n tin tr−íc khi göi ®i. §iÒu nμy t¹o ra khã kh¨n cho
vÊn ®Ò qu¶n lý kho¸ vμ g©y h¹n chÕ cho viÖc sö dông réng r·i
OTP. Tuy nhiªn OTP vÉn ®−îc ¸p dông trong lÜnh vùc qu©n sù vμ
ngo¹i giao, ë nh÷ng lÜnh vùc nμy ®é an toμn kh«ng ®iÒu kiÖn cã
tÇm quan träng rÊt lín.
LÞch sö ph¸t triÓn cña mËt m· häc lμ qu¸ tr×nh cè g¾ng t¹o
c¸c hÖ mËt cã thÓ dïng mét kho¸ ®Ó t¹o mét x©u b¶n m· t−¬ng ®èi
298 Gi¸o tr×nh MËt m· häc

dμi (tøc cã thÓ dïng mét khãa ®Ó m· nhiÒu b¶n tin) nh−ng chÝ Ýt
vÉn cßn gi÷ ®−îc ®é an toμn tÝnh to¸n. ChuÈn m· d÷ liÖu (DES) lμ
mét hÖ mËt thuéc lo¹i nμy.

PL 1.2. ENTROPI
Trong phÇn tr−íc ta ®· th¶o luËn vÒ kh¸i niÖm ®é mËt hoμn
thiÖn vμ ®Æt mèi quan t©m vμo mét tr−êng hîp ®Æc biÖt, khi mét
kho¸ chØ ®−îc dïng cho mét lÇn m·. B©y giê ta sÏ xÐt ®iÒu sÏ x¶y
ra khi cã nhiÒu b¶n râ ®−îc m· b»ng cïng mét kho¸ vμ b»ng c¸ch
nμo mμ th¸m m· cã thÓ thùc hiÖn cã kÕt qu¶ phÐp tÊn c«ng chØ víi
b¶n m· trong thêi gian ®ñ lín.
C«ng cô c¬ b¶n trong nghiªn cøu bμi to¸n nμy lμ kh¸i niÖm
entropi. §©y lμ kh¸i niÖm trong lý thuyÕt th«ng tin do Shannon
®−a ra vμo n¨m 1948. Cã thÓ coi entropi lμ ®¹i l−îng ®o th«ng tin
hay cßn gäi lμ ®é bÊt ®Þnh. Nã ®−îc tÝnh nh− mét hμm ph©n bè
x¸c suÊt.
Gi¶ sö ta cã mét biÕn ngÉu nhiªn X nhËn c¸c gi¸ trÞ trªn mét
tËp h÷u h¹n theo mét ph©n bè x¸c suÊt p(X). Th«ng tin thu nhËn
®−îc bëi mét sù kiÖn x¶y ra tu©n theo mét ph©n bè p(X) lμ g×?.
T−¬ng tù, nÕu sù kiÖn cßn ch−a x¶y ra th× c¸i g× lμ ®é bÊt ®Þnh vμ
kÕt qu¶? §¹i l−îng nμy ®−îc gäi lμ entropi cña X vμ ®−îc kÝ hiÖu
lμ H(X).
C¸c ý t−ëng nμy cã vÎ nh− kh¸ tr×u t−îng, bëi vËy ta sÏ xÐt
mét vÝ dô cô thÓ h¬n. Gi¶ sö biÕn ngÉu nhiªn X biÓu thÞ phÐp tung
®ång xu. Ph©n bè x¸c suÊt lμ: p(mÆt sÊp) = p(mÆt ngöa) = 1/2. Cã
thÓ nãi r»ng, th«ng tin (hay entropi) cña phÐp tung ®ång xu lμ mét
bit v× ta cã thÓ m· ho¸ mÆt sÊp b»ng 1 vμ mÆt ngöa b»ng 0. T−¬ng
tù entropi cña n phÐp tung ®ång tiÒn cã thÓ m· ho¸ b»ng mét x©u
bÝt cã ®é dμi n.
XÐt mét vÝ dô phøc t¹p h¬n mét chót. Gi¶ sö ta cã mét biÕn
ngÉu nhiªn X cã 3 gi¸ trÞ cã thÓ lμ x1, x2, x3 víi c¸c x¸c suÊt t−¬ng
PhÇn Phô lôc 299

øng b»ng 1/2, 1/4, 1/4. C¸ch m· hiÖu qu¶ nhÊt cña 3 biÕn cè nμy lμ
m· ho¸ x1 lμ 0, m· cña x2 lμ 10 vμ m· cña x3 lμ 11. Khi ®ã sè bÝt
trung b×nh trong phÐp m· ho¸ nμy lμ:
1/2 × 1 +1/4 × 2 + 1/4 × 2 = 3/2.
C¸c vÝ dô trªn cho thÊy r»ng, mét biÕn cè x¶y ra víi x¸c suÊt
−n
2 cã thÓ m· ho¸ ®−îc b»ng mét x©u bÝt cã ®é dμi n. Tæng qu¸t
h¬n, cã thÓ coi r»ng, mét biÕn cè x¶y ra víi x¸c suÊt p cã thÓ m·
ho¸ b»ng mét x©u bÝt cã ®é dμi xÊp xØ − log 2 p . NÕu cho tr−íc ph©n
bè x¸c suÊt tuú ý p1, p2,. . ., pn cña biÕn ngÉu nhiªn X, khi ®ã ®é ®o
th«ng tin lμ träng sè trung b×nh cña c¸c l−îng − log 2 p i . §iÒu nμy
dÉn tíi ®Þnh nghÜa h×nh thøc ho¸ sau.
§Þnh nghÜa 1.3
Gi¶ sö X lμ mét biÕn ngÉu nhiªn lÊy c¸c gi¸ trÞ trªn mét tËp
h÷u h¹n theo ph©n bè x¸c suÊt p(X). Khi ®ã entropy cña ph©n bè
x¸c suÊt nμy ®−îc ®Þnh nghÜa lμ l−îng:
n
H ( X ) = −∑ p i log2 Pi
i =1

NÕu c¸c gi¸ trÞ cã thÓ cña X lμ xi, 1 ≤ i ≤ n th× ta cã:


n
H ( X ) = −∑ p ( X = x i ) log2 P ( X = x i )
i =1

NhËn xÐt:
NhËn thÊy r»ng, log2 pi kh«ng x¸c ®Þnh nÕu pi = 0. Bëi vËy ®«i
khi entropi ®−îc ®Þnh nghÜa lμ tæng t−¬ng øng trªn tÊt c¶ c¸c x¸c
suÊt kh¸c 0. V× lim x log2 x = 0 nªn trªn thùc tÕ còng kh«ng cã trë
x→0
ng¹i g× nÕu cho pi = 0 víi gi¸ trÞ i nμo ®ã. Tuy nhiªn ta sÏ tu©n
theo gi¶ ®Þnh lμ khi tÝnh entropy cña mét ph©n bè x¸c suÊt pi, tæng
trªn sÏ ®−îc lÊy trªn c¸c chØ sè i sao cho pi ≠ 0. Ta còng thÊy r»ng
viÖc chän c¬ sè cña logarit lμ tuú ý; c¬ sè nμy kh«ng nhÊt thiÕt
300 Gi¸o tr×nh MËt m· häc

ph¶i lμ 2. Mét c¬ sè kh¸c sÏ chØ lμm thay ®æi gi¸ trÞ cña entropy ®i
mét h»ng sè.
Chó ý r»ng, nÕu pi = 1/n víi 1 ≤ i ≤ n th× H(X) = log2n. Còng
dÔ dμng thÊy r»ng H(X) ≥ 0 vμ H(X) = 0 khi vμ chØ khi pi = 1 víi
mét gi¸ trÞ i nμo ®ã vμ pj = 0 víi mäi j ≠ i.
XÐt entropi cña c¸c thμnh phÇn kh¸c nhau cña mét hÖ mËt.
Ta cã thÓ coi kho¸ lμ mét biÕn ngÉu nhiªn K nhËn c¸c gi¸ trÞ tu©n
theo ph©n bè x¸c suÊt pK vμ bëi vËy cã thÓ tÝnh ®−îc H(K). T−¬ng
tù ta cã thÓ tÝnh c¸c entropi H(P) vμ H(C) theo c¸c ph©n bè x¸c
suÊt t−¬ng øng cña b¶n m· vμ b¶n râ.
VÝ dô 1.1: (tiÕp)
Ta cã:
H ( P ) = − 1 4 log2 1 4 − 3 4 log2 3 4
= − 1 4 ( −2 ) − − 3 4 ( log2 3 − 2 )
= 2 − 3 4 log2 3
≈ 0,81
b»ng c¸c tÝnh to¸n t−¬ng tù, ta cã H(K) = 1,5 vμ H(C) ≈1,85.

PL 1.3. C¸c tÝnh chÊt cña entropi


Trong phÇn nμy sÏ chøng minh mét sè kÕt qu¶ quan träng
liªn quan ®Õn entropi. Tr−íc tiªn ta sÏ ph¸t biÓu bÊt ®¼ng thøc
Jensen. §©y lμ mét kÕt qu¶ c¬ b¶n vμ rÊt h÷u Ých. BÊt ®¼ng thøc
Jensen cã liªn quan ®Õn hμm låi cã ®Þnh nghÜa nh− sau.
§Þnh nghÜa 1.4
Mét hμm cã gi¸ trÞ thùc f lμ låi trªn kho¶ng I nÕu:
⎛ x + y ⎞ f (x) + f (y)
f⎜ ⎟≥
⎝ 2 ⎠ 2
víi mäi x,y ∈ I. f lμ hμm låi thùc sù trªn kho¶ng I nÕu:
PhÇn Phô lôc 301

⎛ x + y ⎞ f (x) + f (y)
f⎜ ⎟>
⎝ 2 ⎠ 2
víi mäi x,y ∈ I,x ≠ y.
Sau ®©y ta sÏ ph¸t biÓu mμ kh«ng chøng minh bÊt ®¼ng thøc
Jensen.

§Þnh lý 1.5 (BÊt ®¼ng thøc Jensen)


Gi¶ sö h lμ mét hμm låi thùc sù vμ liªn tôc trªn kho¶ng l,
n
∑ ai = 1
i =1

vμ ai >0,1 ≤ i ≤ n. Khi ®ã:


n ⎛ n ⎞
∑ ai f (xi ) ≤ f ⎜⎜ ∑ ai xi ⎟⎟
i =1 ⎝ i =1 ⎠
trong ®ã xi ∈ I,1 ≤ i ≤ n. Ngoμi ra dÊu "=" chØ x¶y ra khi vμ
chØ khi x1=. . . = xn.
B©y giê ta sÏ ®−a ra mét sè kÕt qu¶ vÒ entropi. Trong ®Þnh lý
sau sÏ sö dông kh¼ng ®Þnh: hμm log2x lμ mét hμm låi thùc sù
trong kho¶ng (0, ∞) (§iÒu nμy dÔ dμng thÊy ®−îc tõ nh÷ng tÝnh
to¸n s¬ cÊp v× ®¹o hμm cÊp 2 cña hμm logarith lμ ©m trªn kho¶ng
(0, ∞)).

§Þnh lý 1.6
Gi¶ sö X lμ biÕn ngÉu nhiªn cã ph©n bè x¸c suÊt p1, p2,... , pn,
trong ®ã pi > 0 , 1 ≤ i ≤ n. Khi ®ã H(X) ≤ log2n. DÊu "=" chØ x¶y ra
khi vμ chØ khi pi = 1 n , 1 ≤ i ≤ n.

Chøng minh:
¸p dông bÊt ®¼ng thøc Jensen, ta cã:
302 Gi¸o tr×nh MËt m· häc

n n
H(X ) = −∑ pi log2 pi = ∑ pi log2 (1 / pi )
i =1 i =1
n
≤ log2 ∑ ( pi × 1 / pi )
i =1
= log2 n

Ngoμi ra, dÊu "=" chØ x¶y ra khi vμ chØ khi pi = 1/n, 1 ≤ i ≤ n.
§Þnh lý 1.7
H(X,Y) ≤ H(X) + H(Y)
§¼ng thøc (dÊu "=") chØ x¶y ra khi vμ chØ khi X vμ Y lμ c¸c
biÕn cè ®éc lËp
Chøng minh:
Gi¶ sö X nhËn c¸c gi¸ trÞ xi,1 ≤ i ≤ m;Y nhËn c¸c gi¸ trÞ yj,
1 ≤ j ≤ n. KÝ hiÖu: pi = p(X= xi), 1 ≤ i ≤ m vμ qj = p(Y = yj ), 1≤ j ≤ n.
KÝ hiÖu ri j = p(X = xi ,Y = yj ), 1 ≤ i ≤ m, 1 ≤ j ≤ n (§©y lμ ph©n bè
x¸c suÊt hîp).
NhËn thÊy r»ng:
n
pi = ∑ rij (1 ≤ i ≤ m)
j =1

m
vμ q j = ∑ rij (1 ≤ j ≤ n)
i =1

Ta cã:
m n
H(X ) + H(Y) = −(∑ pi log2 pi + ∑ q j log2 q j )
i =1 j =1
m n n m
= −(∑ ∑ rij log2 pi + ∑ ∑ rij log2 q j )
i =1 j =1 j =1 i =1
m n
= −∑ ∑ rij log2 pi q j
i =1 j =1
PhÇn Phô lôc 303

m n
MÆt kh¸c H(X ,Y ) = −∑ ∑ rij log2 rij
i =1 j =1

KÕt hîp l¹i ta thu ®−îc kÕt qu¶ sau:


m n m n
H(X ,Y ) − H(X ) − H(Y ) = ∑ ∑ rij log2 (1 / rij ) + ∑ ∑ rij log2 pi q j
i =1 j =1 i =1 j =1
m n
≤ log2 ∑ ∑ pi q j
i =1 j =1
= log2 1
=0
(ë ®©y ®· ¸p dông bÊt ®¼ng thøc Jensen khi biÕt r»ng c¸c rjj
t¹o nªn mét ph©n bè x¸c suÊt).
Khi ®¼ng thøc x¶y ra, cã thÓ thÊy r»ng ph¶i cã mét h»ng sè c
sao cho pjj / rjj = c víi mäi i, j. Sö dông ®¼ng thøc sau:
m n
= ∑ ∑ rij log2 ( pi q j / rij )
i =1 j =1
n m n m
∑ ∑ rij = ∑ ∑ pi q j = 1
j =1 i =1 j =1 i =1

§iÒu nμy dÉn ®Õn c = 1. Bëi vËy ®¼ng thøc (dÊu "=") sÏ x¶y ra
khi vμ chØ khi rjj = pjqj, nghÜa lμ:
p(X = xj, Y = yj ) = p(X = xj )p(Y = yj )
víi 1 ≤ i ≤ m, 1 ≤ j ≤ n. §iÒu nμy cã nghÜa lμ X vμ Y ®éc lËp.
TiÕp theo ta sÏ ®−a ra kh¸i niÖm entropi cã ®iÒu kiÖn

§Þnh nghÜa 1.5


Gi¶ sö X vμ Y lμ hai biÕn ngÉu nhiªn. Khi ®ã víi gi¸ trÞ x¸c
®Þnh bÊt kú y cña Y, ta cã mét ph©n bè x¸c suÊt cã ®iÒu kiÖn
p(X|y). Râ rμng lμ:
304 Gi¸o tr×nh MËt m· häc

H(X | y) = −∑ p(x | y) log2 p(x | y)


x

Ta ®Þnh nghÜa entropi cã ®iÒu kiÖn H(X|Y) lμ trung b×nh cã


träng sè (øng víi c¸c x¸c suÊt p(y)) cña entropi H(X|y) trªn mäi gi¸
trÞ cã thÓ y. H(X|y) ®−îc tÝnh b»ng:
H(X | Y) = −∑ ∑ p(y) p(x | y)log2 p(x | y)
y x

Entropi cã ®iÒu kiÖn ®o l−îng th«ng tin trung b×nh vÒ X do Y


mang l¹i.
Sau ®©y lμ hai kÕt qu¶ trùc tiÕp (B¹n ®äc cã thÓ tù chøng minh).
§Þnh lý 1.8
H(X,Y) = H(Y) + H(X | Y)
HÖ qu¶ 1.9
H(X |Y) ≤ H(X)
DÊu b»ng chØ x¶y ra khi vμ chØ khi X vμ Y ®éc lËp.

PL 1.4. C¸c khãa gi¶ vμ kho¶ng duy nhÊt


Trong phÇn nμy chóng ta sÏ ¸p dông c¸c kÕt qu¶ vÒ entropi ë
trªn cho c¸c hÖ mËt. Tr−íc tiªn sÏ chØ ra mét quan hÖ c¬ b¶n gi÷a
c¸c entropi cña c¸c thμnh phÇn trong hÖ mËt. Entropi cã ®iÒu kiÖn
H(K|C) ®−îc gäi lμ ®é bÊt ®Þnh vÒ kho¸. Nã cho ta biÕt vÒ l−îng
th«ng tin vÒ kho¸ thu ®−îc tõ b¶n m·.
§Þnh lý 1.10
Gi¶ sö (P, C, K, E, D) lμ mét hÖ mËt. Khi ®ã:
H(K|C) = H(K) + H(P) - H(C)
Chøng minh:
Tr−íc tiªn ta thÊy r»ng H ( K, P,C ) = H ( C K, P ) + H ( K, P ) . Do
y = eK(x) nªn kho¸ vμ b¶n râ sÏ x¸c ®Þnh b¶n m· duy nhÊt. §iÒu
nμy cã nghÜa lμ H ( C K, P ) = 0 . Bëi vËy H ( K, P,C ) = H ( K, P ) . Nh−ng
K vμ P ®éc lËp nªn H ( K, P ) = H ( K ) + H ( P ) . V× thÕ:
PhÇn Phô lôc 305

H ( K, P,C ) + H ( K, P ) = H ( K ) + H ( P )

T−¬ng tù v× kho¸ vμ b¶n m· x¸c ®Þnh duy nhÊt b¶n râ (tøc


x = dK(y)) nªn ta cã H(P | K,C) = 0 vμ bëi vËy H(K,P,C) = H(K,P).
B©y giê ta sÏ tÝnh nh− sau:
H ( K ,C ) = H ( K,C ) − H ( C )
= H ( K, P,C ) − H ( C )
= H ( K) + H ( P ) − H (C )
§©y lμ néi dung cña ®Þnh lý.
Ta sÏ quay l¹i vÝ dô 2.1 ®Ó minh häa kÕt qu¶ nμy.
VÝ dô 1.1 (tiÕp)
Ta ®· tÝnh ®−îc H(P) ≈ 0,81, H(K) = 1,5 vμ H(C) ≈1,85. Theo
®Þnh lý 2.10 ta cã H ( K ,C ) ≈ 1,5 + 0,85 ≈ 0, 46 . Cã thÓ kiÓm tra l¹i
kÕt qu¶ nμy b»ng c¸ch ¸p dông ®Þnh nghÜa vÒ entropi cã ®iÒu kiÖn
nh− sau. Tr−íc tiªn cÇn ph¶i tÝnh c¸c x¸c suÊt xuÊt p(Kj | j),
1 ≤ i ≤ 3, 1 ≤ j ≤ 4. §Ó thùc hiÖn ®iÒu nμy cã thÓ ¸p dông ®Þnh lý
Bayes vμ nhËn ®−îc kÕt qu¶ nh− sau:
P(K1 | 1) = 1 p(K2 | 1) = 0 p(K3 | 1) = 0
P(K1 | 2) = 6/7 p(K2 | 2) = 1/7 p(K3 | 2) = 0
P(K1 | 3) = 0 p(K2 | 3) = 3/4 p(K3 | 3) = 1/4
P(K1 | 4) = 0 p(K2 | 4) = 0 p(K3 | 4) = 1
B©y giê ta tÝnh:
H(K | C) = 1/8 × 0 +7/16 × 0,59 + 1/4 × 0,81 + 3/16 × 0 = 0,46
Gi¸ trÞ nμy b»ng gi¸ trÞ ®−îc tÝnh theo ®Þnh lý 2.10.
Gi¶ sö (P, C, K, E, D) lμ hÖ mËt ®ang ®−îc sö dông. Mét x©u
cña b¶n râ x1x2 . . .xn sÏ ®−îc m· ho¸ b»ng mét kho¸ ®Ó t¹o ra b¶n
m· y1y2... yn. Nhí l¹i r»ng, môc ®Ých c¬ b¶n cña th¸m m· lμ ph¶i
x¸c ®Þnh ®−îc kho¸. Ta xem xÐt c¸c ph−¬ng ph¸p tÊn c«ng chØ víi
b¶n m· vμ coi Oscar cã kh¶ n¨ng tÝnh to¸n v« h¹n. Ta còng gi¶ sö
306 Gi¸o tr×nh MËt m· häc

Oscar biÕt b¶n râ lμ mét v¨n b¶n theo ng«n ng÷ tù nhiªn (ch¼ng
h¹n v¨n b¶n tiÕng Anh). Nãi chung Oscar cã kh¶ n¨ng rót ra mét
sè kho¸ nhÊt ®Þnh (c¸c kho¸ cã thÓ hay c¸c kho¸ chÊp nhËn ®−îc)
nh−ng trong ®ã chØ cã mét kho¸ ®óng, c¸c kho¸ cã thÓ cßn l¹i (c¸c
kho¸ kh«ng ®óng) ®−îc gäi lμ c¸c kho¸ gi¶.
VÝ dô, gi¶ sö Oscar thu ®−îc mét x©u b¶n m· WNAJW m·
b»ng ph−¬ng ph¸p m· dÞch vßng. DÔ dμng thÊy r»ng, chØ cã hai
x©u b¶n râ cã ý nghÜa lμ river vμ arena t−¬ng øng víi c¸c kho¸ F(=
5) vμ W(= 22). Trong hai kho¸ nμy chØ cã mét kho¸ ®óng, kho¸ cßn
l¹i lμ kho¸ gi¶. (Trªn thùc tÕ, viÖc t×m mét b¶n m· cña MDV cã ®é
dμi 5 vμ 2 b¶n gi¶i m· cã nghÜa kh«ng ph¶i qu¸ khã kh¨n, b¹n ®äc
cã thÓ t×m ra nhiÒu vÝ dô kh¸c). Môc ®Ých cña ta lμ ph¶i t×m ra giíi
h¹n cho sè trung b×nh c¸c kho¸ gi¶. Tr−íc tiªn, ph¶i x¸c ®Þnh gi¸
trÞ nμy theo entropi (cho mét kÝ tù) cña mét ng«n ng÷ tù nhiªn L
(kÝ hiÖu lμ HL). HL lμ l−îng th«ng tin trung b×nh trªn mét kÝ tù
trong mét x©u cã nghÜa cña b¶n râ. (Chó ý r»ng, mét x©u ngÉu
nhiªn c¸c kÝ tù cña b¶ng ch÷ c¸i sÏ cã entropi trªn mét kÝ tù b»ng
log2 26 ≈ 4,76). Ta cã thÓ lÊy H(P) lμ xÊp xØ bËc nhÊt cho HL. Trong
tr−êng hîp L lμ Anh ng÷, ta tÝnh ®−îc H(P) ≈ 4,19.
DÜ nhiªn c¸c kÝ tù liªn tiÕp trong mét ng«n ng÷ kh«ng ®éc lËp
víi nhau vμ sù t−¬ng quan gi÷a c¸c kÝ tù liªn tiÕp sÏ lμm gi¶m
entropi. VÝ dô, trong Anh ng÷, ch÷ Q lu«n kÐo theo sau lμ ch÷ U.
§Ó lμm xÊp xØ bËc hai, tÝnh entropi cña ph©n bè x¸c suÊt cña tÊt
c¶ c¸c bé ®«i råi chia cho 2. Mét c¸ch tæng qu¸t, ta ®Þnh nghÜa Pn
lμ biÕn ngÉu nhiªn cã ph©n bè x¸c suÊt cña tÊt c¶ c¸c bé n cña b¶n
râ. Ta sÏ sö dông tÊt c¶ c¸c ®Þnh nghÜa sau:
§Þnh nghÜa 1.6
Gi¶ sö L lμ mét ng«n ng÷ tù nhiªn. Entropi cña L ®−îc x¸c
®Þnh lμ ®¹i l−îng sau:
H(P n )
H L = lim
n →∞ n
PhÇn Phô lôc 307

§é d− cña L lμ: RL = l - (HL / log2 | P | )


NhËn xÐt: HL ®o entropi trªn mçi kÝ tù cña ng«n ng÷ L. Mét
ng«n ng÷ ngÉu nhiªn sÏ cã entropi lμ log2 |P | . Bëi vËy ®¹i l−îng
RL ®o phÇn "kÝ tù v−ît tréi" lμ phÇn d−.
Trong tr−êng hîp Anh ng÷, dùa trªn b¶ng chøa mét sè lín
c¸c bé ®«i vμ c¸c tÇn sè, ta cã thÓ tÝnh ®−îc H(P2). ¦íc l−îng theo
( )
c¸ch nμy, ta tÝnh ®−îc H P 2 ≈ 3,90 . Cø tiÕp tôc nh− vËy b»ng c¸ch

lËp b¶ng c¸c bé ba v.v... ta thu ®−îc −íc l−îng cho HL. Trªn thùc
tÕ, b»ng nhiÒu thùc nghiÖm kh¸c nhau, ta cã thÓ ®i tíi kÕt qu¶ sau
1,0 ≤ HL ≤1,5. Tøc lμ l−îng th«ng tin trung b×nh trong tiÕng Anh
vμo kho¶ng 1 bÝt tíi 1,5 bÝt trªn mçi kÝ tù!.
Gi¶ sö lÊy 1,25 lμ gi¸ trÞ −íc l−îng cña gi¸ trÞ cña HL. Khi ®ã
®é d− vμo kho¶ng 0,75. Tøc lμ tiÕng Anh cã ®é d− vμo kho¶ng 75%!
(§iÒu nμy kh«ng cã nghÜa lo¹i bá tuú ý 3 trªn 4 kÝ tù cña mét v¨n
b¶n tiÕng Anh mμ vÉn cã kh¶ n¨ng ®äc ®−îc nã. Nã chØ cã nghÜa lμ
t×m ®−îc mét phÐp m· Huffman cho c¸c bé n víi n ®ñ lín, phÐp
m· nμy sÏ nÐn v¨n b¶n tiÕng Anh xuèng cßn 1/4 ®é dμi cña b¶n gèc).
Víi c¸c ph©n bè x¸c suÊt ®· cho trªn K vμ Pn. Cã thÓ x¸c ®Þnh
ph©n bè x¸c suÊt trªn C n lμ tËp c¸c bé n cña b¶n m·. (Ta ®· lμm
®iÒu nμy trong tr−êng hîp n =1). Ta ®· x¸c ®Þnh P n lμ biÕn ngÉu
nhiªn biÓu diÔn bé n cña b¶n râ. T−¬ng tù C n lμ biÕn ngÉu nhiªn
biÓu thÞ bé n cña b¶n m·.
Víi y ∈ Cn, ®Þnh nghÜa:

{ }
K ( y ) = K ∈ K; ∃x ∈ P n , pP n ( x ) > 0, e K ( x ) = y nghÜa lμ K(y) lμ tËp

c¸c kho¸ K sao cho y lμ b¶n m· cña mét x©u b¶n râ ®é dμi n cã
nghÜa, tøc lμ tËp c¸c kho¸ "cã thÓ" víi y lμ b¶n m· ®· cho. NÕu y lμ
d·y quan s¸t ®−îc cña b¶n m· th× sè kho¸ gi¶ sÏ lμ K ( y ) 0 − 1 v× chØ
308 Gi¸o tr×nh MËt m· häc

cã mét kho¸ lμ kho¸ ®óng trong sè c¸c kho¸ cã thÓ. Sè trung b×nh
c¸c kho¸ gi¶ (trªn tÊt c¶ c¸c x©u b¶n m· cã thÓ ®é dμi n) ®−îc kÝ
hiÖu lμ s n vμ nã ®−îc tÝnh nh− sau:

sn = ∑ p ( y ) ( K ( y ) − 1)
y∈C n

= ∑ p (y) K (y) − ∑ p (y)


y∈C n y∈C n

= ∑ p (y) K (y) − 1
y∈C n

Tõ ®Þnh lý 1.10 ta cã:

( )
H K Cn = H (K) + H Pn − H Cn ( ) ( )
Cã thÓ dïng −íc l−îng sau:

( )
H P n ≈ nH L = n (1 − R L ) log2 P

víi ®iÒu kiÖn n ®ñ lín. HiÓn nhiªn lμ:

( )
H C n ≤ n log 2 C

Khi ®ã nÕu P = C th×:

( )
H K C n ≥ H ( K ) − nR L log2 P (1.1)

TiÕp theo xÐt quan hÖ cña l−îng H(K | Cn) víi sè khãa gi¶
sn. Ta cã:

(
H K Cn =) ∑ p (y)( K y)
y∈C n

≤ ∑ p ( y ) log2 K ( y )
y∈C n

≤ ∑ p (y) K (y)
y∈C n

(
= log2 s n + 1 )
PhÇn Phô lôc 309

ë ®©y ta ¸p dông bÊt ®¼ng thøc Jensen (®Þnh lý 1.5) víi f(x) =
log2x. Bëi vËy ta cã bÊt ®¼ng thøc sau:

H(K C n ) ≤ log2 (s n + 1) (1.2)

KÕt hîp hai bÊt ®¼ng thøc (1.1) vμ (1.2), ta cã :


log2 (s n + 1) ≥ H(K) − nR L log2 P

Trong tr−êng hîp c¸c kho¸ ®−îc chän ®ång x¸c suÊt (Khi ®ã
H(K) cã gi¸ trÞ lín nhÊt) ta cã kÕt qu¶ sau.
§Þnh lý 1.11
Gi¶ sö (P, C, K, E, D ) lμ mét hÖ mËt trong ®ã |C | = |P|vμ c¸c
kho¸ ®−îc chän ®ång x¸c suÊt. Gi¶ sö RL lμ ®é d− cña ng«n ng÷
gèc. Khi ®ã víi mét x©u b¶n m· ®é dμi n cho tr−íc (n lμ sè ®ñ lín),
sè trung b×nh c¸c kho¸ gi¶ sn tho¶ m·n bÊt ®¼ng thøc nh− sau:

{ ( P nRL )} − 1
sn ≥ K

L−îng K ( P nRL ) − 1 tiÕn tíi 0 theo hμm mò khi n t¨ng. ¦íc


l−îng nμy cã thÓ kh«ng chÝnh x¸c víi c¸c gi¸ trÞ n nhá. §ã lμ do
H(Pn)/ n kh«ng ph¶i lμ mét −íc l−îng tèt cho HL nÕu n nhá.
Ta ®−a ra ®©y mét kh¸i niÖm n÷a
§Þnh nghÜa 1.7
Kho¶ng duy nhÊt cña mét hÖ mËt ®−îc ®Þnh nghÜa lμ gi¸ trÞ
cña n mμ øng víi gi¸ trÞ nμy, sè kho¸ gi¶ trung b×nh b»ng 0 (kÝ
hiÖu gi¸ trÞ nμy lμ n0). §iÒu ®ã cã nghÜa lμ n0 lμ ®é dμi trung b×nh
cÇn thiÕt cña b¶n m· ®Ó th¸m m· cã thÓ tÝnh to¸n kho¸ mét c¸ch
duy nhÊt víi thêi gian ®ñ lín.
NÕu ®Æt sn = 0 trong ®Þnh lý 1.11 vμ gi¶i theo n ta sÏ nhËn
®−îc −íc l−îng cho kho¶ng duy nhÊt:
n 0 ≈ log2 K R L log2 P
310 Gi¸o tr×nh MËt m· häc

VÝ dô víi MTT, ta cã |P| = 26 vμ |K| =26 !. NÕu lÊy RL =0,75


th× ta nhËn ®−îc −íc l−îng cho kho¶ng duy nhÊt b»ng:
n0 ≈ 88,4/ (0,75 ×4,7) ≈ 25
§iÒu ®ã cã nghÜa lμ th«ng th−êng nÕu m· th¸m cã ®−îc x©u
b¶n m· víi ®é dμi tèi thiÓu lμ 25, anh ta cã thÓ nhËn ®−îc b¶n gi¶i
m· duy nhÊt.
PhÇn Phô lôc 311

Phô lôc 2

T¹o sè gi¶ ngÉu nhiªn

Trong c¸c sè ngÉu nhiªn, c¸c x©u bit ngÉu nhiªn lμ mét vÊn
®Ò quan träng trong nhiÒu bμi to¸n cña mËt m· häc. VÝ dô c¸c
kho¸ mËt cÇn ®−îc t¹o mét c¸ch ngÉu nhiªn tõ mét kh«ng gian
kho¸ x¸c ®Þnh; nhiÒu giao thøc yªu cÇu ph¶i t¹o ®−îc c¸c sè ngÉu
nhiªn trong qu¸ tr×nh thùc hiÖn. T¹o c¸c sè ngÉu nhiªn b»ng c¸ch
tung ®ång xu hoÆc b»ng c¸c qu¸ tr×nh vËt lý ®ßi hái nhiÒu thêi
gian vμ chi phÝ. Bëi thÕ trong thùc tÕ ng−êi ta th−êng dïng c¸c bé
t¹o bÝt gi¶ ngÉu nhiªn. (kÝ hiÖu lμ PRBG). PRBG b¾t ®Çu b»ng
mét x©u bit ng¾n (®−îc gäi lμ mÇm) vμ sÏ më réng nã thμnh mét
x©u bit "cã vÎ ngÉu nhiªn" dμi h¬n nhiÒu rÊt cÇn cho c¸c øng dông.
Sau ®©y ta sÏ ®−a ra mét ®Þnh nghÜa h×nh thøc h¬n.
§Þnh nghÜa
Cho k, l lμ c¸c sè nguyªn d−¬ng sao cho l ≥ k+1 (trong ®ã l lμ
mét hμm ®a thøc x¸c ®Þnh cña k). Mét bé t¹o bit gi¶ ngÉu nhiªn
(k,l) (kÝ hiÖu lμ (k,l) - PRBG) lμ mét hμm f: (Z2)k Æ (Z2)l, hμm nμy
cã thÓ tÝnh ®−îc trong thêi gian ®a thøc (nh− mét hμm cña k). Gi¸
trÞ ®Çu vμo s0 ∈ (Z2)k ®−îc gäi lμ mÇm vμ ®Çu ra f(s0) ∈ (Z2)l ®−îc
gäi lμ x©u bit gi¶ ngÉu nhiªn.
Hμm f lμ mét hμm tÊt ®Þnh, bëi vËy x©u bit f(s0) chØ phô
thuéc vμo mÇm. Víi ®iÒu kiÖn mÇm ®−îc chän ngÉu nhiªn, môc
®Ých ®Æt ra lμ ph¶i t¹o ®−îc x©u bit gi¶ ngÉu nhiªn f(s0) gièng nh−
c¸c x©u bit ngÉu nhiªn thùc sù. RÊt khã ®−a ra mét ®Þnh nghÜa
chÝnh x¸c, bëi vËy trong phÇn nμy ta sÏ cè g¾ng nªu ra mét m« t¶
trùc gi¸c cho kh¸i niÖm nμy.
Sau ®©y lμ mét vÝ dô cã vai trß thóc ®Èy viÖc nghiªn cøu c¸c
PRBG thuéc d¹ng nμy. Ta h·y nhí l¹i kh¸i niÖm vÒ ®é mËt hoμn
thiÖn ®· ®−îc nghiªn cøu trong phô lôc 1. Mét thÓ hiÖn cña ®é
312 Gi¸o tr×nh MËt m· häc

mËt hoμn thiÖn lμ hÖ kho¸ dïng mét lÇn OTP trong ®ã b¶n râ vμ
kho¸ lμ hai x©u bit cã ®é dμi x¸c ®Þnh vμ b¶n m· ®−îc t¹o ra b»ng
c¸ch céng modulo 2 b¶n râ vμ kho¸ theo tõng bit. Khã kh¨n trªn
thùc tÕ cña OTP lμ kho¸ (ph¶i ®−îc t¹o mét c¸ch ngÉu nhiªn vμ
®−îc truyÒn ®i trªn mét kªnh b¶o mËt) ph¶i dμi nh− b¶n râ ®Ó b¶o
®¶m ®é mËt hoμn thiÖn. C¸c PRBG cho mét ph−¬ng ph¸p kh¶ dÜ
®Ó gi¶i quyÕt vÊn ®Ò nμy. Gi¶ sö Alice vμ Bob tho¶ thuËn sö dông
mét PRBG vμ th«ng b¸o mÇm kho¸ trªn mét kªnh b¶o mËt. Sau
®ã Alice vμ Bob ®Òu cïng tÝnh mét x©u bit gi¶ ngÉu nhiªn, x©u
nμy ®−îc dïng nh− mét OTP. Nh− vËy, mÇm kho¸ cã chøc n¨ng
nh− mét kho¸ vμ PRBG cã thÓ coi lμ mét bé t¹o dßng kho¸ cho hÖ
m· dßng.
Sau ®©y ta sÏ m« t¶ mét sè PRBG quen thuéc ®Ó gi¶i thÝch vμ
minh häa mét sè kh¸i niÖm. Tr−íc hÕt ta thÊy r»ng, mét bé ghi
dÞch ph¶n håi tuyÕn tÝnh (®· m« t¶ ë phÇn 3.8) cã thÓ xem nh−
mét PRBG. Víi mét mÇm kho¸ k bit, mét bé ghi dÞch ph¶n håi
tuyÕn tÝnh (LFSR) bËc k cã thÓ ®−îc dïng ®Ó t¹o ra 2k-k-1 bit tiÕp
sau tr−íc khi lÆp l¹i. PRBG nhËn ®−îc tõ mét bé ghi dÞch ph¶n
håi tuyÕn tÝnh rÊt kh«ng an toμn. PhÇn PL 1.4 cho thÊy r»ng, viÖc
biÕt 2k bit liªn tiÕp bÊt k× ®ñ ®Ó x¸c ®Þnh mÇm kho¸ vμ bëi vËy m·
th¸m cã thÓ t¸i t¹o l¹i toμn bé d·y kho¸ (mÆc dï ta vÉn cßn ch−a
nãi vÒ ®é mËt cña mét PRBG nh−ng râ rμng lμ phÐp tÊn c«ng nμy
còng cho ta biÕt r»ng bé t¹o kiÓu nμy kh«ng an toμn).
Mét PRBG kh¸c (còng kh«ng an toμn) ®−îc gäi lμ bé t¹o ®ång
d− tuyÕn tÝnh (LCG) ®−îc m« t¶ trªn h×nh PL 2.1.

Cho M ≥ 2 lµ mét sè nguyªn vµ cho 1 ≤a,b≤ M-1. §Æt k = ⎣log2M⎦ vµ


cho k+1 ≤ l ≤ M-1.
Víi mét mÇm s0, trong ®ã 0 ≤ s0 ≤ M-1, ta x¸c ®Þnh:
si = (a si-1+b) mod M
víi 1 ≤ i ≤ l vµ x¸c ®Þnh:
f(s0) = (z1, z2, . . . , zl)
trong ®ã zi = si mod 2
1 ≤ i ≤ l . Khi ®ã f lµ bé t¹o ®ång d− tuyÕn tÝnh (k,l)- (LCG)

H×nh PL 2.1: Bé t¹o ®ång d− tuyÕn tÝnh


PhÇn Phô lôc 313

Sau ®©y lμ mét vÝ dô nhá ®Ó minh häa.


VÝ dô 2.1
Ta cã thÓ thu ®−îc (5,10) - PRBG b»ng c¸ch lÊy M = 31,
a = 3 vμ b = 5 trong LCG. NÕu xÐt ¸nh x¹ s Æ 3s+5 mod 31 th×
13Æ13 vμ 30 thÆng d− kh¸c sÏ ®−îc ho¸n vÞ trong mét chu tr×nh
cã ®é dμi 30, cô thÓ lμ 0, 5, 20, 3, 14, 16, 22, 9, 1, 8, 29, 30, 2, 11, 7,
26, 21, 6, 23, 12, 10, 4, 17, 25, 18, 28, 27, 24, 15, 19. NÕu mÇm
kh«ng ph¶i lμ 13 th× mÇm sÏ x¸c ®Þnh ®iÓm xuÊt ph¸t trong chu
tr×nh nμy vμ 10 phÇn tö tiÕp theo khi ®−îc rót gän theo modulo 2
sÏ t¹o nªn d·y gi¶ ngÉu nhiªn.
31 x©u bit gi¶ ngÉu nhiªn cã thÓ cã ®−îc t¹o bëi bé t¹o nμy
®−îc ®−a ra trªn b¶ng PL 2.1.
Cã thÓ sö dông mét sè kh¸i niÖm ®· x©y dùng ë c¸c phÇn
tr−íc ®Ó t¹o ra c¸c PRBG. VÝ dô, chÕ ®é OFB cña DES cã thÓ xem
nh− mét PRBG, h¬n n÷a nã tá ra lμ cã ®é an toμn vÒ mÆt tÝnh to¸n.
Mét quan ®iÓm kh¸c trong viÖc x©y dùng c¸c PRBG tèc ®é
cao lμ kÕt hîp c¸c LFSR theo mét c¸ch nμo ®ã ®Ó ®Çu ra Ýt tuyÕn
tÝnh h¬n. Mét ph−¬ng ph¸p nh− vËy (do Copersmith, Krawczyk vμ
Mansour ®−a ra) ®−îc gäi lμ bé t¹o kiÓu co rót (Shrinking
generator). Gi¶ sö cã hai bé LFSR, mét bé cã bËc k1, mét bé kh¸c
cã bËc k2. Ta cÇn (k1 + k2) bit lμm mÇm ®Ó khëi t¹o c¶ hai LFSR.
LFSR thø nhÊt sÏ t¹o ra mét d·y bit a1, a2,... vμ LFSR thø hai sÏ
t¹o ra d·y bit b1, b2,... Sau ®ã ta x¸c ®Þnh d·y bit gi¶ ngÉu nhiªn
z1, z2,... theo quy t¾c:
zi = aik,
trong ®ã ik lμ vÝ trÞ cña sè “1” thø k trong d·y b1, b2, . . . C¸c
bit gi¶ ngÉu nhiªn nμy lμ mét d·y con cña c¸c bit ®−îc t¹o bëi
LFSR thø nhÊt. Ph−¬ng ph¸p t¹o bit gi¶ ngÉu nhiªn nμy rÊt
nhanh vμ lμ mét ph−¬ng ph¸p ®· ®−îc chøng tá lμ an toμn.
314 Gi¸o tr×nh MËt m· häc

B¶ng PL 2.1: C¸c x©u bit ®−îc t¹o ra tõ mét bé t¹o ®ång d− tuyÕn tÝnh
MÇm d·y
0 1010001101
1 0100110101
2 1101010001
3 0001101001
4 1100011010
5 0100011010
6 1000110010
7 0101000110
8 1001101010
9 1010011010
10 0110010110
11 1101000110
12 0011001011
13 1111111111
14 0011010011
15 1010100011
16 0110100110
17 1001011010
18 0101101010
19 0101000110
20 1000110100
21 0100011001
22 1101001101
23 0001100101
24 1101010001
25 0010110101
26 1010001100
27 0110101000
28 1011010100
29 0011010100
30 0110101000

H×nh PL 2.2 m« t¶ mét PRBG x©y dùng trªn hμm m· RSA.


Cho p, q lµ hai sè nguyªn tè (k/2) bit. Ta x¸c ®Þnh n = p.q. Cho b ®−îc chän sao
cho UCLN(b,φ(n)) = 1. Theo th«ng lÖ n vµ b ®−îc ®em c«ng khai cßn p vµ q ®−îc
gi÷ kÝn.
MÇm lµ mét phÇn tö bÊt k× s0 ∈ Zn* sao cho s0 cã k bit. Víi i ≥ 0, ta ®Þnh nghÜa
si+1 = sib mod n
vµ f(s0) = (z1, z2,... zl)
trong ®ã
zi = si mod 2
1 ≤ i ≤ l. Khi ®ã f lµ mét bé t¹o RSA -(k,l).

H×nh PL 2.2: Bé t¹o kiÓu RSA


PhÇn Phô lôc 315

D−íi ®©y lμ mét vÝ dô vÒ bé t¹o RSA.


VÝ dô 2.2
Gi¶ sö n = 91261 = 263 × 347, b = 1547 vμ s0 = 75364. 20 bit
®Çu tiªn t¹o bëi bé t¹o RSA ®−îc tÝnh theo b¶ng PL 2.2. Bëi vËy
x©u bit t¹o tõ mÇm khãa nμy lμ:
10000111011110011000
B¶ng PL 2.2: C¸c bit ®−îc t¹o bëi bé t¹o RSA
i si zi
0 75634
1 31483 1
2 31283 0
3 51968 0
4 39796 0
5 28761 0
6 14089 1
7 5923 1
8 44891 1
9 62284 0
10 11889 1
11 43467 1
12 71215 1
13 10401 1
14 77444 0
15 56794 0
16 78147 1
17 72137 1
18 89592 0
19 29022 0
20 13356 0
316 Gi¸o tr×nh MËt m· häc

Phô lôc 3

M· nguån DES

#define EN0 0 /* MODE == encrypt */


#define DE1 1 /* MODE == decrypt */

typedef struct {
unsigned long ek[32];
unsigned long dk[32];
} des_ctx;

extern void deskey(unsigned char *, short);


/* hexkey[8] MODE
* Sets the internal key register according to the hexadecimal
* key contained in the 8 bytes of hexkey, according to the DES,
* for encryption or decryption according to MODE.
*/

extern void usekey(unsigned long *);


/* cookedkey[32]
* Loads the internal key register with the data in cookedkey.
*/

extern void cpkey(unsigned long *);


/* cookedkey[32]
* Copies the contents of the internal key register into the storage
* located at &cookedkey[0].
*/

extern void des(unsigned char *, unsigned char *);


/* from[8] to[8]
* Encrypts/Decrypts (according to the key currently loaded in the
* internal key register) one block of eight bytes at address `from'
* into the block at address `to'. They can be the same.
*/
PhÇn Phô lôc 317

static void scrunch(unsigned char *, unsigned long *);


static void unscrun(unsigned long *, unsigned char *);
static void desfunc(unsigned long *, unsigned long *);
static void cookey(unsigned long *);

static unsigned long KnL[32] = { 0L };


static unsigned long KnR[32] = { 0L };
static unsigned long Kn3[32] = { 0L };
static unsigned char Df_Key[24] = {
0#01,0x23,0x45,0x67,0x89,0xab,0xcd,0xef,
0xfe,0xdc,0xba,0x98,0x76,0x54,0x32,0x10,
0x89,0xab,0xcd,0xef,0#01,0x23,0x45,0x67 };

static unsigned short bytebit[8] = {


0200, 0100, 040, 020, 010, 04, 02, 01 };

static unsigned long bigbyte[24] = {


0x800000L, 0x400000L, 0x200000L, 0x100000L,
0x80000L, 0x40000L, 0x20000L, 0x10000L,
0x8000L, 0x4000L, 0x2000L, 0x1000L,
0x800L, 0x400L, 0x200L, 0x100L,
0x80L, 0x40L, 0x20L, 0x10L,
0x8L, 0x4L, 0x2L, 0x1L };

/* Use the key schedule specified in the Standard (ANSI X3.92-1981). */

static unsigned char pc1[56] = {


56, 48, 40, 32, 24, 16, 8, 0, 57, 49, 41, 33, 25, 17,
9, 1, 58, 50, 42, 34, 26, 18, 10, 2, 59, 51, 43, 35,
62, 54, 46, 38, 30, 22, 14, 6, 61, 53, 45, 37, 29, 21,
13, 5, 60, 52, 44, 36, 28, 20, 12, 4, 27, 19, 11, 3 };

static unsigned char totrot[16] = {


1,2,4,6,8,10,12,14,15,17,19,21,23,25,27,28 };

static unsigned char pc2[48] = {


13, 16, 10, 23, 0, 4, 2, 27, 14, 5, 20, 9,
22, 18, 11, 3, 25, 7, 15, 6, 26, 19, 12, 1,
40, 51, 30, 36, 46, 54, 29, 39, 50, 44, 32, 47,
43, 48, 38, 55, 33, 52, 45, 41, 49, 35, 28, 31 };
318 Gi¸o tr×nh MËt m· häc

void deskey(key, edf) /* Thanks to James Gillogly & Phil Karn! */


unsigned char *key;
short edf;
{
register int i, j, l, m, n;
unsigned char pc1m[56], pcr[56];
unsigned long kn[32];

for ( j = 0; j < 56; j++ ) {


l = pc1[j];
m = l & 07;
pc1m[j] = (key[l >> 3] & bytebit[m]) ? 1 : 0;
}
for( i = 0; i < 16; i++ ) {
if( edf == DE1 ) m = (15 - i) << 1;
else m = i << 1;
n = m + 1;
kn[m] = kn[n] = 0L;
for( j = 0; j < 28; j++ ) {
l = j + totrot[i];
if( l < 28 ) pcr[j] = pc1m[l];
else pcr[j] = pc1m[l - 28];
}
for( j = 28; j < 56; j++ ) {
l = j + totrot[i];
if( l < 56 ) pcr[j] = pc1m[l];
else pcr[j] = pc1m[l - 28];
}
for( j = 0; j < 24; j++ ) {
if( pcr[pc2[j]] ) kn[m] |= bigbyte[j];
if( pcr[pc2[j+24]] ) kn[n] |= bigbyte[j];
}
}
cookey(kn);
return;
}

static void cookey(raw1)


register unsigned long *raw1;
{
register unsigned long *cook, *raw0;
unsigned long dough[32];
register int i;

cook = dough;
for( i = 0; i < 16; i++, raw1++ ) {
PhÇn Phô lôc 319

raw0 = raw1++;
*cook = (*raw0 & 0#00fc0000L) << 6;
*cook |= (*raw0 & 0#00000fc0L) << 10;
*cook |= (*raw1 & 0#00fc0000L) >> 10;
*cook++ |= (*raw1 & 0#00000fc0L) >> 6;
*cook = (*raw0 & 0#0003f000L) << 12;
*cook |= (*raw0 & 0#0000003fL) << 16;
*cook |= (*raw1 & 0#0003f000L) >> 4;
*cook++ |= (*raw1 & 0#0000003fL);
}
usekey(dough);
return;
}

void cpkey(into)
register unsigned long *into;
{
register unsigned long *from, *endp;
from = KnL, endp = &KnL[32];
while( from < endp ) *into++ = *from++;
return;
}

void usekey(from)
register unsigned long *from;
{
register unsigned long *to, *endp;
to = KnL, endp = &KnL[32];
while( to < endp ) *to++ = *from++;
return;
}

void des(inblock, outblock)


unsigned char *inblock, *outblock;
{
unsigned long work[2];

scrunch(inblock, work);
desfunc(work, KnL);
unscrun(work, outblock);
return;
}

static void scrunch(outof, into)


register unsigned char *outof;
register unsigned long *into;
{
320 Gi¸o tr×nh MËt m· häc

*into = (*outof++ & 0xffL) << 24;


*into |= (*outof++ & 0xffL) << 16;
*into |= (*outof++ & 0xffL) << 8;
*into++ |= (*outof++ & 0xffL);
*into = (*outof++ & 0xffL) << 24;
*into |= (*outof++ & 0xffL) << 16;
*into |= (*outof++ & 0xffL) << 8;
*into |= (*outof & 0xffL);
return;
}

static void unscrun(outof, into)


register unsigned long *outof;
register unsigned char *into;
{
*into++ = (*outof >> 24) & 0xffL;
*into++ = (*outof >> 16) & 0xffL;
*into++ = (*outof >> 8) & 0xffL;
*into++ = *outof++ & 0xffL;
*into++ = (*outof >> 24) & 0xffL;
*into++ = (*outof >> 16) & 0xffL;
*into++ = (*outof >> 8) & 0xffL;
*into = *outof & 0xffL;
return;
}
static unsigned long SP1[64] = {
0#01010400L, 0#00000000L, 0#00010000L, 0#01010404L,
0#01010004L, 0#00010404L, 0#00000004L, 0#00010000L,
0#00000400L, 0#01010400L, 0#01010404L, 0#00000400L,
0#01000404L, 0#01010004L, 0#01000000L, 0#00000004L,
0#00000404L, 0#01000400L, 0#01000400L, 0#00010400L,
0#00010400L, 0#01010000L, 0#01010000L, 0#01000404L,
0#00010004L, 0#01000004L, 0#01000004L, 0#00010004L,
0#00000000L, 0#00000404L, 0#00010404L, 0#01000000L,
0#00010000L, 0#01010404L, 0#00000004L, 0#01010000L,
0#01010400L, 0#01000000L, 0#01000000L, 0#00000400L,
0#01010004L, 0#00010000L, 0#00010400L, 0#01000004L,
0#00000400L, 0#00000004L, 0#01000404L, 0#00010404L,
0#01010404L, 0#00010004L, 0#01010000L, 0#01000404L,
0#01000004L, 0#00000404L, 0#00010404L, 0#01010400L,
0#00000404L, 0#01000400L, 0#01000400L, 0#00000000L,
0#00010004L, 0#00010400L, 0#00000000L, 0#01010004L };

static unsigned long SP2[64] = {


0x80108020L, 0x80008000L, 0#00008000L, 0#00108020L,
0#00100000L, 0#00000020L, 0x80100020L, 0x80008020L,
0x80000020L, 0x80108020L, 0x80108000L, 0x80000000L,
PhÇn Phô lôc 321

0x80008000L, 0#00100000L, 0#00000020L, 0x80100020L,


0#00108000L, 0#00100020L, 0x80008020L, 0#00000000L,
0x80000000L, 0#00008000L, 0#00108020L, 0x80100000L,
0#00100020L, 0x80000020L, 0#00000000L, 0#00108000L,
0#00008020L, 0x80108000L, 0x80100000L, 0#00008020L,
0#00000000L, 0#00108020L, 0x80100020L, 0#00100000L,
0x80008020L, 0x80100000L, 0x80108000L, 0#00008000L,
0x80100000L, 0x80008000L, 0#00000020L, 0x80108020L,
0#00108020L, 0#00000020L, 0#00008000L, 0x80000000L,
0#00008020L, 0x80108000L, 0#00100000L, 0x80000020L,
0#00100020L, 0x80008020L, 0x80000020L, 0#00100020L,
0#00108000L, 0#00000000L, 0x80008000L, 0#00008020L,
0x80000000L, 0x80100020L, 0x80108020L, 0#00108000L };

static unsigned long SP3[64] = {


0#00000208L, 0#08020200L, 0#00000000L, 0#08020008L,
0#08000200L, 0#00000000L, 0#00020208L, 0#08000200L,
0#00020008L, 0#08000008L, 0#08000008L, 0#00020000L,
0#08020208L, 0#00020008L, 0#08020000L, 0#00000208L,
0#08000000L, 0#00000008L, 0#08020200L, 0#00000200L,
0#00020200L, 0#08020000L, 0#08020008L, 0#00020208L,
0#08000208L, 0#00020200L, 0#00020000L, 0#08000208L,
0#00000008L, 0#08020208L, 0#00000200L, 0#08000000L,
0#08020200L, 0#08000000L, 0#00020008L, 0#00000208L,
0#00020000L, 0#08020200L, 0#08000200L, 0#00000000L,
0#00000200L, 0#00020008L, 0#08020208L, 0#08000200L,
0#08000008L, 0#00000200L, 0#00000000L, 0#08020008L,
0#08000208L, 0#00020000L, 0#08000000L, 0#08020208L,
0#00000008L, 0#00020208L, 0#00020200L, 0#08000008L,
0#08020000L, 0#08000208L, 0#00000208L, 0#08020000L,
0#00020208L, 0#00000008L, 0#08020008L, 0#00020200L };

static unsigned long SP4[64] = {


0#00802001L, 0#00002081L, 0#00002081L, 0#00000080L,
0#00802080L, 0#00800081L, 0#00800001L, 0#00002001L,
0#00000000L, 0#00802000L, 0#00802000L, 0#00802081L,
0#00000081L, 0#00000000L, 0#00800080L, 0#00800001L,
0#00000001L, 0#00002000L, 0#00800000L, 0#00802001L,
0#00000080L, 0#00800000L, 0#00002001L, 0#00002080L,
0#00800081L, 0#00000001L, 0#00002080L, 0#00800080L,
0#00002000L, 0#00802080L, 0#00802081L, 0#00000081L,
0#00800080L, 0#00800001L, 0#00802000L, 0#00802081L,
0#00000081L, 0#00000000L, 0#00000000L, 0#00802000L,
322 Gi¸o tr×nh MËt m· häc

0#00002080L, 0#00800080L, 0#00800081L, 0#00000001L,


0#00802001L, 0#00002081L, 0#00002081L, 0#00000080L,
0#00802081L, 0#00000081L, 0#00000001L, 0#00002000L,
0#00800001L, 0#00002001L, 0#00802080L, 0#00800081L,
0#00002001L, 0#00002080L, 0#00800000L, 0#00802001L,
0#00000080L, 0#00800000L, 0#00002000L, 0#00802080L };

static unsigned long SP5[64] = {


0#00000100L, 0#02080100L, 0#02080000L, 0x42000100L,
0#00080000L, 0#00000100L, 0x40000000L, 0#02080000L,
0x40080100L, 0#00080000L, 0#02000100L, 0x40080100L,
0x42000100L, 0x42080000L, 0#00080100L, 0x40000000L,
0#02000000L, 0x40080000L, 0x40080000L, 0#00000000L,
0x40000100L, 0x42080100L, 0x42080100L, 0#02000100L,
0x42080000L, 0x40000100L, 0#00000000L, 0x42000000L,
0#02080100L, 0#02000000L, 0x42000000L, 0#00080100L,
0#00080000L, 0x42000100L, 0#00000100L, 0#02000000L,
0x40000000L, 0#02080000L, 0x42000100L, 0x40080100L,
0#02000100L, 0x40000000L, 0x42080000L, 0#02080100L,
0x40080100L, 0#00000100L, 0#02000000L, 0x42080000L,
0x42080100L, 0#00080100L, 0x42000000L, 0x42080100L,
0#02080000L, 0#00000000L, 0x40080000L, 0x42000000L,
0#00080100L, 0#02000100L, 0x40000100L, 0#00080000L,
0#00000000L, 0x40080000L, 0#02080100L, 0x40000100L };

static unsigned long SP6[64] = {


0x20000010L, 0x20400000L, 0#00004000L, 0x20404010L,
0x20400000L, 0#00000010L, 0x20404010L, 0#00400000L,
0x20004000L, 0#00404010L, 0#00400000L, 0x20000010L,
0#00400010L, 0x20004000L, 0x20000000L, 0#00004010L,
0#00000000L, 0#00400010L, 0x20004010L, 0#00004000L,
0#00404000L, 0x20004010L, 0#00000010L, 0x20400010L,
0x20400010L, 0#00000000L, 0#00404010L, 0x20404000L,
0#00004010L, 0#00404000L, 0x20404000L, 0x20000000L,
0x20004000L, 0#00000010L, 0x20400010L, 0#00404000L,
0x20404010L, 0#00400000L, 0#00004010L, 0x20000010L,
0#00400000L, 0x20004000L, 0x20000000L, 0#00004010L,
0x20000010L, 0x20404010L, 0#00404000L, 0x20400000L,
0#00404010L, 0x20404000L, 0#00000000L, 0x20400010L,
0#00000010L, 0#00004000L, 0x20400000L, 0#00404010L,
0#00004000L, 0#00400010L, 0x20004010L, 0#00000000L,
0x20404000L, 0x20000000L, 0#00400010L, 0x20004010L };
PhÇn Phô lôc 323

static unsigned long SP7[64] = {


0#00200000L, 0#04200002L, 0#04000802L, 0#00000000L,
0#00000800L, 0#04000802L, 0#00200802L, 0#04200800L,
0#04200802L, 0#00200000L, 0#00000000L, 0#04000002L,
0#00000002L, 0#04000000L, 0#04200002L, 0#00000802L,
0#04000800L, 0#00200802L, 0#00200002L, 0#04000800L,
0#04000002L, 0#04200000L, 0#04200800L, 0#00200002L,
0#04200000L, 0#00000800L, 0#00000802L, 0#04200802L,
0#00200800L, 0#00000002L, 0#04000000L, 0#00200800L,
0#04000000L, 0#00200800L, 0#00200000L, 0#04000802L,
0#04000802L, 0#04200002L, 0#04200002L, 0#00000002L,
0#00200002L, 0#04000000L, 0#04000800L, 0#00200000L,
0#04200800L, 0#00000802L, 0#00200802L, 0#04200800L,
0#00000802L, 0#04000002L, 0#04200802L, 0#04200000L,
0#00200800L, 0#00000000L, 0#00000002L, 0#04200802L,
0#00000000L, 0#00200802L, 0#04200000L, 0#00000800L,
0#04000002L, 0#04000800L, 0#00000800L, 0#00200002L };

static unsigned long SP8[64] = {


0x10001040L, 0#00001000L, 0#00040000L, 0x10041040L,
0x10000000L, 0x10001040L, 0#00000040L, 0x10000000L,
0#00040040L, 0x10040000L, 0x10041040L, 0#00041000L,
0x10041000L, 0#00041040L, 0#00001000L, 0#00000040L,
0x10040000L, 0x10000040L, 0x10001000L, 0#00001040L,
0#00041000L, 0#00040040L, 0x10040040L, 0x10041000L,
0#00001040L, 0#00000000L, 0#00000000L, 0x10040040L,
0x10000040L, 0x10001000L, 0#00041040L, 0#00040000L,
0#00041040L, 0#00040000L, 0x10041000L, 0#00001000L,
0#00000040L, 0x10040040L, 0#00001000L, 0#00041040L,
0x10001000L, 0#00000040L, 0x10000040L, 0x10040000L,
0x10040040L, 0x10000000L, 0#00040000L, 0x10001040L,
0#00000000L, 0x10041040L, 0#00040040L, 0x10000040L,
0x10040000L, 0x10001000L, 0x10001040L, 0#00000000L,
0x10041040L, 0#00041000L, 0#00041000L, 0#00001040L,
0#00001040L, 0#00040040L, 0x10000000L, 0x10041000L };

static void desfunc(block, keys)


register unsigned long *block, *keys;
{
register unsigned long fval, work, right, leftt;
register int round;

leftt = block[0];
right = block[1];
work = ((leftt >> 4) ^ right) & 0#0f0f0f0fL;
right ^= work;
leftt ^= (work << 4);
324 Gi¸o tr×nh MËt m· häc

work = ((leftt >> 16) ^ right) & 0#0000ffffL;


right ^= work;
leftt ^= (work << 16);
work = ((right >> 2) ^ leftt) & 0x33333333L;
leftt ^= work;
right ^= (work << 2);
work = ((right >> 8) ^ leftt) & 0#00ff00ffL;
leftt ^= work;
right ^= (work << 8);
right = ((right << 1) | ((right >> 31) & 1L)) & 0xffffffffL;
work = (leftt ^ right) & 0xaaaaaaaaL;
leftt ^= work;
right ^= work;
leftt = ((leftt << 1) | ((leftt >> 31) & 1L)) & 0xffffffffL;

for( round = 0; round < 8; round++ ) {


work = (right << 28) | (right >> 4);
work ^= *keys++;
fval = SP7[ work & 0x3fL];
fval |= SP5[(work >> 8) & 0x3fL];
fval |= SP3[(work >> 16) & 0x3fL];
fval |= SP1[(work >> 24) & 0x3fL];
work = right ^ *keys++;
fval |= SP8[ work & 0x3fL];
fval |= SP6[(work >> 8) & 0x3fL];
fval |= SP4[(work >> 16) & 0x3fL];
fval |= SP2[(work >> 24) & 0x3fL];
leftt ^= fval;
work = (leftt << 28) | (leftt >> 4);
work ^= *keys++;
fval = SP7[ work & 0x3fL];
fval |= SP5[(work >> 8) & 0x3fL];
fval |= SP3[(work >> 16) & 0x3fL];
fval |= SP1[(work >> 24) & 0x3fL];
work = leftt ^ *keys++;
fval |= SP8[ work & 0x3fL];
fval |= SP6[(work >> 8) & 0x3fL];
fval |= SP4[(work >> 16) & 0x3fL];
fval |= SP2[(work >> 24) & 0x3fL];
right ^= fval;
}

right = (right << 31) | (right >> 1);


work = (leftt ^ right) & 0xaaaaaaaaL;
leftt ^= work;
right ^= work;
leftt = (leftt << 31) | (leftt >> 1);
PhÇn Phô lôc 325

work = ((leftt >> 8) ^ right) & 0#00ff00ffL;


right ^= work;
leftt ^= (work << 8);
work = ((leftt >> 2) ^ right) & 0x33333333L;
right ^= work;
leftt ^= (work << 2);
work = ((right >> 16) ^ leftt) & 0#0000ffffL;
leftt ^= work;
right ^= (work << 16);
work = ((right >> 4) ^ leftt) & 0#0f0f0f0fL;
leftt ^= work;
right ^= (work << 4);
*block++ = right;
*block = leftt;
return;
}
/* Validation sets:
*
* Single-length key, single-length plaintext -
* Key : 0123 4567 89ab cdef
* Plain : 0123 4567 89ab cde7
* Cipher : c957 4425 6a5e d31d
*
**********************************************************************/

void des_key(des_ctx *dc, unsigned char *key){


deskey(key,EN0);
cpkey(dc->ek);
deskey(key,DE1);
cpkey(dc->dk);
}
/* Encrypt several blocks in ECB mode. Caller is responsible for
short blocks. */
void des_enc(des_ctx *dc, unsigned char *data, int blocks){
unsigned long work[2];
int i;
unsigned char *cp;
cp = data;
for(i=0;iek);
unscrun(work,cp);
cp+=8;
}
}

void des_dec(des_ctx *dc, unsigned char *data, int blocks){


unsigned long work[2];
int i;
326 Gi¸o tr×nh MËt m· häc

unsigned char *cp;

cp = data;
for(i=0;idk);
unscrun(work,cp);
cp+=8;
}
}
void main(void){
des_ctx dc;
int i;
unsigned long data[10];
char *cp,key[8] = {0#01,0x23,0x45,0x67,0x89,0xab,0xcd,0xef};
char x[8] = {0#01,0x23,0x45,0x67,0x89,0xab,0xcd,0xe7};

cp = x;

des_key(&dc,key);
des_enc(&dc,cp,1);
printf("Enc(0..7,0..7) = ");
for(i=0;i<8;i++) printf("%02x ", ((unsigned int) cp[i])&0#00ff);
printf("\n");

des_dec(&dc,cp,1);

printf("Dec(above,0..7) = ");
for(i=0;i<8;i++) printf("%02x ",((unsigned int)cp[i])&0#00ff);
printf("\n");

cp = (char *) data;
for(i=0;i<10;i++)data[i]=i;

des_enc(&dc,cp,5); /* Enc 5 blocks. */


for(i=0;i<10;i+=2) printf("Block %01d = %08lx %08lx.\n",
i/2,data[i],data[i+1]);

des_dec(&dc,cp,1);
des_dec(&dc,cp+8,4);
for(i=0;i<10;i+=2) printf("Block %01d = %08lx %08lx.\n",
i/2,data[i],data[i+1]);
}
thuËt ng÷ viÕt t¾t

DES Data Encryption Standard ChuÈn m· d÷ liÖu


LAN Local Area Network M¹ng côc bé
MDV M· dÞch vßng
MTT M· thay thÕ
MHV M· ho¸n vÞ
ECB Electronic Code Book ChÕ ®é quyÓn m· ®iÖn tö
CFB Cripher Feedback ChÕ ®é ph¶n håi m·
CBC Cripher Block Chaining ChÕ ®é liªn kÕt khèi m·
RSA Rivest - Shamir - Adleman
MAC Message Authentication Code M· x¸c thùc th«ng b¸o
OWHF Oneway Hash Funtion Hµm b¨m mét chiÒu
CRHF Collision Resistant hash function Hµm b¨m khã va ch¹m
MDC Manipulation Detection Code M· ph¸t hiÖn sù söa ®æi
LSB Least Signification Bit Bit thÊp nhÊt (cã gi¸ trÞ nhá
nhÊt
Header Tiªu ®Ò
IDEA International Data Encryption ThuËt to¸n m· hãa d÷ liÖu
Algorithm quèc tÕ
PGP Pretty Good Privacy ThuËt to¸n m· hãa PGP
SET Secure Electronic Transaction Giao dÞch ®iÖn tö an toµn
LFSR Linear Feedback Sequence Thanh ghi håi tiÕp tuyÕn tÝnh
Register
Firewall Bøc t−êng löa
Server M¸y chñ
Router Bé ®Þnh tuyÕn
tμi liÖu tham kh¶o

[1] A. J. Menezes, P. C. Van Oorschot, S. A. Vanstone.


Handbook of applied cryptography. CRC Press 1998.
[2] B. Schneier. Applied Cryptography. John Wiley Press 1996.
[3] D. R. Stinson. Cryptography. Theory and Practice. CRC Press
1995.
[4] Nguyen Binh. Crypto-system based on Cyclic Goemetric
Progresssions over polynomial ring (Part 1). Circulant crypto-
system over polynomial ring (Part 2) 8th VietNam Conference on
Radio and Electronics, 11-2002
[5] M. R. A. Huth. Secure Communicating Systems. Cambridge
University Press 2001.
[6] W. Stallings. Network Security Essentials. Applications and
Standards. Prentice Hall. 2000.
[7] C. Pfleeger. Security in Computing. Prentice Hall. 1997.
[8] R. Needham, M. Schroeder. Using Encryption for
Authentication in large Networks of Computers. Comm ACM,
v21 n12, Dec 1978.
[9] G. Simmons. Contemporary Cryptology. IEEE Press 1992.
[10] S. Bellovir, M. Merritt. Encrypted Key Exchange.
Proc. IEEE Symp. Security and Privacy
IEEE Comp Soc Press 1992.
[11] D. Denning, D. Branstad. A Taxonomy of Key Escrow
Encryption Systems. Comm ACM, v39 n3, Mar 1996.
[12] M. Blum. Coin flipping by Telephone. SIGACT News, 1981.
[13] S. Even. A Randomizing Protocol for Signing Contracts. Comm
ACM, v28 n6, Jun 1985.
[14] R. Merkle, M. Hellman. On the security of Multiple Encryption.
Comm ACM, v24 n7, July 1981.
[15] W. Tuchman, Hellman Presents No Shortcut Solutions to the
DES.
IEEE Spectrum, v16 n7, Jun 1979.
[16] A.Shamir. Identity-based cryptorytions and signature schemes.
Advanced in Cryptology - CRYPTO'84, LNCS196
Springer_Verlag, pp.47-53, 1985
[17] E.Okamoto, K.Tanaka. Key distribution system based on
identification information.
IEEE J.Selected Areas in communications, Vol.7,pp.481-485,
1989.
Môc lôc

Lêi nãi ®Çu ................................................................................................ 5


PhÇn I. C¸c kiÕn thøc to¸n häc phô trî
Ch−¬ng 1: Bæ tóc vÒ lý thuyÕt sè.......................................................... 9
1.1. Sè nguyªn ....................................................................................... 9
1.2. C¸c thuËt to¸n trong Z ................................................................. 12
1.3. C¸c sè nguyªn modulo n .............................................................. 15
1.4. C¸c thuËt to¸n trong Zn ............................................................... 22
1.5. C¸c ký hiÖu Legendre vμ Jacobi .................................................. 24
1.6. C¸c sè nguyªn Blum..................................................................... 30
Bμi tËp ................................................................................................. 31

Ch−¬ng 2: §¹i sè trõu t−îng ............................................................... 35


2.1. Nhãm .............................................................................................. 35
2.2. Vμnh ............................................................................................... 38
2.3. Tr−êng ............................................................................................ 39
2.4. Vμnh ®a thøc.................................................................................. 41
Bμi tËp ................................................................................................... 53

PhÇn II. C¸c thuËt to¸n mËt m·


Ch−¬ng 3: MËt m· cæ ®iÓn .................................................................. 57
3.1. S¬ ®å khèi mét hÖ truyÒn tin mËt ................................................. 57
3.2. MËt m· thay thÕ ............................................................................ 58
3.3. MËt m· ho¸n vÞ .............................................................................. 62
3.4. MËt m· Hill .................................................................................... 64
3.5. HÖ mËt x©y dùng trªn c¸c cÊp sè nh©n xyclic
trªn vμnh ®a thøc .......................................................................... 70
3.6. M· Affine ........................................................................................ 81
3.7. C¸c hÖ mËt m· tÝch ........................................................................ 88
3.8. C¸c hÖ m· dßng .............................................................................. 92
3.9. ChuÈn m· d÷ liÖu .......................................................................... 98
Bμi tËp ................................................................................................ 120
Ch−¬ng 4: MËt m· kho¸ c«ng khai .................................................. 127
4.1. Giíi thiÖu vÒ mËt m· kho¸ c«ng khai ......................................... 127
4.2. HÖ mËt RSA ................................................................................. 130
4.3. HÖ mËt Rabin .............................................................................. 133
4.4. HÖ mËt El Gamal......................................................................... 136
4.5. HÖ mËt Merkle - Hellman ........................................................... 138
4.6. HÖ mËt Chor - Rivest................................................................... 141
4.7. HÖ mËt Mc Elice .......................................................................... 147
4.8. C¸c hμm b¨m vμ tÝnh toμn vÑn cña d÷ liÖu................................ 153
Bμi tËp ................................................................................................. 172

PhÇn III. C¸c thñ tôc vμ øng dông


Ch−¬ng 5: C¸c thñ tôc vμ c¸c chó ý trong thùc tÕ
khi sö dông m· ho¸ ....................................................... 177
5.1. C¸c thñ tôc: hμnh vi vμ thø tù ................................................... 177
5.2. C¸c thñ tôc ®Ó gi¶i quyÕt vÊn ®Ò ................................................ 184
5.3. Sö dông m· ho¸ nh− thÕ nμo...................................................... 242
5.4. C¶i thiÖn ®é mËt cña hÖ mËt ...................................................... 249
5.5. C¸c chÕ ®é m· ho¸ ....................................................................... 259
5.6. Tãm l−îc vÒ c¸c thñ tôc vμ c¸c øng dông thùc tÕ ...................... 263
Bμi tËp ................................................................................................. 265

Ch−¬ng 6: C¸c chuÈn vμ ¸p dông..................................................... 267


6.1. B¶o mËt th− ®iÖn tö sö dông PGP ............................................. 267
6.2. Giao dÞch ®iÖn tö an toμn (set) ................................................... 273
6.3. øng dông x¸c thùc - Kerberos .................................................... 279
Bμi tËp ................................................................................................. 286

PhÇn phô lôc


Phô lôc 1: Lý thuyÕt th«ng tin trong c¸c hÖ mËt .......................... 289
Phô lôc 2: T¹o sè gi¶ ngÉu nhiªn ................................................... 311
Phô lôc 3: M· nguån DES .............................................................. 316
ThuËt ng÷ viÕt t¾t ................................................................................ 327
Tμi liÖu tham kh¶o .............................................................................. 329
gi¸o tr×nh

mËt m· häc

ChÞu tr¸ch nhiÖm xuÊt b¶n


L−u §øc V¨n

ChÞu tr¸ch nhiÖm b¶n th¶o


häc viÖn c«ng nghÖ b−u chÝnh viÔn th«ng

Biªn tËp : §μo thÞ minh - bïi ®øc kh¸nh


ChÕ b¶n : Vò Hång Nhung
Söa b¶n in : bïi ®øc kh¸nh
Tr×nh bµy b×a : Bïi ngäc khoa

(Gi¸o tr×nh nµy ®−îc ban hµnh theo QuyÕt ®Þnh sè 219/Q§-QLNCKH
ngµy 29/4/2003 cña Gi¸m ®èc Häc viÖn C«ng nghÖ B−u chÝnh ViÔn th«ng)

nhμ xuÊt b¶n b−u ®iÖn

Trô së : 18 NguyÔn Du, TP. Hµ Néi


§iÖn tho¹i : 04-9431283, 04-9432438 Fax: 04-9431285
E-mail : bientap@hn.vnn.vn
Chi nh¸nh : 27 NguyÔn BØnh Khiªm, QuËn I, TP. Hå ChÝ Minh
§iÖn tho¹i : 08-9100925 Fax: 08-9100924
E-mail : chinhanh-nxbbd@hcm.vnn.vn
M∙ sè: HV 01 HM 04

M∙ sè: HV 01 HM 04

M∙ sè: HV 01 HM 04

In 700 cuèn, khæ 16 x 24 cm t¹i C«ng ty In Khoa häc kü thuËt


Sè xuÊt b¶n: 1783/521/XB-QLXB do Côc XuÊt b¶n cÊp ngµy 19/12/2003
In xong vµ nép l−u chiÓu th¸ng 02 n¨m 2004.

You might also like