Professional Documents
Culture Documents
Tailieuxanh 1 2 6231
Tailieuxanh 1 2 6231
1.1. Sè nguyªn
TËp c¸c sè nguyªn {K, − 3, − 2, − 1, 0,1, 2, 3,K}= Z.
Cho a, b ∈ Ζ
(i) a a.
1.1.3. §Þnh nghÜa 1.2 (ThuËt to¸n chia ®èi víi c¸c sè nguyªn)
⎡a ⎤ ⎡a ⎤
Ta cã a div b = ⎢ ⎥, a mod b = a − b⎢ ⎥.
⎣b⎦ ⎣b⎦
(12,18) = 6
Φ (n ) >
n
6 ln (ln n )
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
(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).
− − − − 4864 3458 1 0 0 1
13 + 16 = 4 v× 13 + 16 = 29 ≡ 4 (mod 25 )
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.
x ≡ a 1 (mod n 1 )
x ≡ a 2 (mod n 2 )
.......... .......... ....
x ≡ a k (mod n k )
C¸c tÝnh to¸n nμy cã thÓ ®−îc thùc hiÖn trong 0 ( (lg n ) ) c¸c
2
x ≡ a (mod n 1 ) , x ≡ a (mod n 2 )
Z *n = Φ(n )
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.18. C¸c tÝnh chÊt cña c¸c phÇn tö sinh cña Z*n
*
(2) NÕu α lμ mét phÇn tö sinh cña Z n th×:
Z *n = { α i mod n 0 ≤ i ≤ Φ(n ) − 1 }
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 )) .
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
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}
(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.
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:
∑
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
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
ki 0 0 1 0 1 0 1 0 0 1
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
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
⎛ 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⎠
⎛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è.
⎛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
⎛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⎠
⎛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⎠
⎛ 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
⎛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
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.
⎛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 .
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 ⎠
⎧ ⎛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 .
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 .
( ) ⎛ 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
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.
§Þ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.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.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
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
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 .
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 .
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 .
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
f (x ) + g (x ) = x 3 + x 2 + 1
f (x ). g (x ) = x5 + x 4 + x 3 + x
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
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 .
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).
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)).
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
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ö.
Ra : ¦CLN
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
( )
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 )) .
(
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.7. VÝ dô
Tr−êng h÷u h¹n F(24) cÊp 16
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
(x 3
)(
+ x2 + 1 . x2 + 1 ) = x 6 + x5 + x 2 + 1 ≡ x 3 + x 2 + x + 1 (mod ƒ (x ))
(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:
(
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.
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
(
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
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.
g 2 (x ) ≡ f (x )mod x n + 1
2.4.11.2. Bæ ®Ò 2.22
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)
Bμi tËp
3. XÐt tËp S = {0,1,2,3} víi c¸c phÐp to¸n céng (+) vμ nh©n (.)
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
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
( a1 + a 2 + K as )p n
= a1p n + a 2p n + K + a sp n .
PhÇn II
Th¸m m· (Oscar)
(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
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
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
vμ d π (y ) = π −1 (y )
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
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
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
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 )
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
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ã:
EOANCSLSDSACRICARAOTGHNERIENAT
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⎠
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 )
m
c l, k = ∑=
j 1
a i, j b j, k
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
®¶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
( )
yk −1 = (xk )k −1 = x kk −1 = xIm = x
−1
⎛11 8 ⎞ ⎛ 7 18 ⎞
⎜⎜ ⎟⎟ = ⎜⎜ ⎟⎟
⎝ 3 7⎠ ⎝ 23 11 ⎠
v×
⎛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⎠
⎛ 7 18 ⎞
k −1 = ⎜⎜ ⎟⎟
⎝ 23 11 ⎠
⎛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:
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ã
k −1 = (det k ) k *
−1
( )
1 = det I = det k k −1 = det k det k −1
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.
§Þnh lý 3.1:
−1 ⎛ a 2, 2 − a1, 2 ⎞
A −1 = (det A ) ⎜⎜ ⎟
⎝ − a 2,1 a1,1 ⎟⎠
⎛11 8 ⎞
det ⎜⎜ ⎟⎟ = 11 × 7 − 8 × 3 mod 2
⎝ 3 7⎠
= 77 − 24 mod 26 = 53 mod 26 = 1
−1
⎛11 8 ⎞ ⎛ 7 18 ⎞
⎜⎜ ⎟⎟ = ⎜⎜ ⎟⎟
⎝ 3 7⎠ ⎝ 23 11 ⎠
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
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].
Bæ ®Ò 3.1:
( )
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.
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 ) .
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:
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
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
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
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 .
Bæ ®Ò 3.7:
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 ) }
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
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).
( ) ⎞⎟⎠
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.
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
(
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.
Nhãm nh©n G
Nhãm nh©n
lu©n hoµn
Ma trËn ®¬n vÞ
Bæ ®Ò 3.13:
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
Vµo
(7) (6) (5) (4) (3) (2) (1) (0)
(10110101)
(00001000)
Ra
A = {(0)', (1)',..., (7)'}
Vµo
(7)' (6)' (5)' (4)' (3)' (2)' (1)' (0)'
(00001000)
(10110101)
Ra
A = {(0), (1),..., (7)}
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 )
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 .
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μ
26 (x1 − x2 )
tøc lμ
x1 ≡ x2 (mod 26 )
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:
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 lý 3.3:
n
Gi¶ sö m = ∏
i =1
p ei i
φ(m ) = ∏ (pei i
− p ei i −1 )
i =1
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 ).
ax ≡ y − b (mod 26 )
a −1 (ax ) ≡ a −1 (y − b) (mod 26 )
( )
a −1 (ax ) ≡ a −1 .a x = 1.x = x
d(y ) = a −1 (y − b) mod 26
VÝ dô 3.12:
e k (x ) = 7x + 3
d k (x ) = 15(y − 3 ) = 15 y − 19
d k (e k (x )) = d k (7x + 3 )
= 15(7x + 3 ) − 19
= x + 45 − 19
=x
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)
( )
e (k1 , k2 ) (x ) = e k2 e k1 (x )
(
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
( ) ( ( ))
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
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.
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
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.
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Þ.
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
z i = fi (k, x1 , K, x i −1 )
fi : K × P i −1 → L
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 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
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
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
m −1
∑
j= 0
c jk j + 1
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
VÝ dô 3.14:
17 4 13 3 4 25 21 14 20 18
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©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μ 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.1. Më ®Çu
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).
Li-1 R i-1
f Ki
Li Ri
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 .
(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 .
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μ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),...
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
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
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
Ci = LSi (C i −1 )
D i = LSi (D i −1 )
PC - 1
C0 D0
LS1 LS1
C0 D0 PC - 2 K1
LS16 LS16
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.
0123456789ABCDEF
123457799BBCDFF1
Khãa ë d¹ng nhÞ ph©n (kh«ng chøa c¸c bit kiÓm tra) lμ:
00010010011010010101101111001001101101111011011111
111000
L0 = 11001100000000001100110011111111
L1 = R0 = 11110000101010101111000010101010
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
- 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ê.
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.
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
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
x1 x2
IV = y0 ek ek
M· hãa
(Encrypt) y1 y2
y1 y2
IV = y0 ek ek
M· hãa
(Encrypt) x1 x2
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
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
EMGLOSUDCGDNCUSWYSFHNSFCYKDPUMLWGYICO|
XYSIPJCK
QPKUGKMGOUCGINCGACKSNISACYKZSCKXEOCKSH
YSXCG
OIDPKZCNKSHICGIWYGKKGKGOLDSILKGOIUSIGLED
SPWZU
GFZCCNDGYYSFUSZCNXEOJNCGYEOWEUPXEZGACG
NFGLKNS
ACIGOIYCKXOUOUZCFZCCNDGYYSFEUEKUZCSOCFZ
CCNC
IACZEJNCSHFZEJZEGMXCYHCIUMGKUSY
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
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
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).
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
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).
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.
- 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.
(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 Φ ) .
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]
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
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
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.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
(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 .
4.3.4. VÝ dô
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.
4.3.4.3. Gi¶i m·
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
( )
(3) Khãa c«ng khai lμ bé 3 sè p , α , α a , khãa bÝ mËt lμ a.
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.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
( )
(2) Kh«i phôc b¶n râ b»ng c¸ch tÝnh γ −a δ mod p .
γ −a δ ≡ α −a k .m α a k ≡ m mod p .
4.4.3. VÝ dô
4.4.3.1. T¹o khãa
(
Kho¸ c«ng khai cña A lμ p = 2357, α = 2 , α a = 1185 . )
4.4.3.2. M· hãa
4.4.3.3. Gi¶i m·
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:
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.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 .
(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
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ô
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:
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
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
®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 ) .
(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 .
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
4.6.6.2. Gi¶i m·
(
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
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
p −1 Mi
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
4.6.3. VÝ 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.6.3.3. Gi¶i m·
(1) TÝnh r = (c − hd )mod 2400 = 1913
(Do ®ã t 1 = 0, t 2 = 2 , t 3 = 3 , t 4 = 6 )
π −1 (0 ) = 2 π −1 (2) = 3 π −1 (3 ) = 6 π −1 (6 ) = 0
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ü
- 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.
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.
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.
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.
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).
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
H x T = [0 0 K 0] .
T
150 Gi¸o tr×nh MËt m· häc
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è.
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.
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⎠
⎛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)
⎛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 ⎟⎠
⎝
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.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') ).
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.
Hµm b¨m
MDC C¸c øng dông kh¸c C¸c øng dông kh¸c MDC
OWHF CRHF
H×nh 4.2
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ý
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
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
H×nh 4.3
(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
H 0 = IV, H i = E xi (H i −1 ) ⊕ H i −1 , 1 ≤ i ≤ t .
§å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 ) .
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
(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
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
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
IV = 0 H1 H2 H3
K
E
Ht
k k K'
E E E Xö E
lý H't
thªm K
E
Ht
4.8.5. TÝnh toμn vÑn cña d÷ liÖu vμ x¸c thùc th«ng b¸o
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
H×nh 4.8
Ch−¬ng 4: MËt m· khãa c«ng khai 165
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.
- 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·.
(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
{α 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 .
4.8.7. Ch÷ ký sè
3408scj...
Hîp ®ång ®· ®−îc ký
Hîp ®ång b»ng ch÷ ký sè
kinh tÕ
...
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
{
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ý.
S A = sig DA (m ) = m d A mod n A
(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.
a) Pha chuÈn bÞ
λ(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
xA = sA .grA xB = sB .grB
r r
WKAB = (IDB xeB ) A WKBA = (IDA xeA ) B
si ≡ IDi−d (mod n )
x A ≡ sA g rA ( mod n )
x B ≡ sB grB ( mod n )
( )
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
(
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
⎛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).
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:
- 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.
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.
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
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
A b B
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.
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.
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.
- 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.
Trong phÇn giao dÞch nμy Pablo sÏ nhËn 4 tin sau ®−îc m·
hãa b»ng KP:
- 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)
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
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.
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.
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
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
Betty 632a cña
632a cña
Betty Betty
(1)
(4)
Bob
Ann
§Ó 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 bé phËn Diana - Gi¸m ®èc bé phËn Andrew - Gi¸m ®èc bé phËn
Mekesh Mary
Qu¶n lý dù ¸n Qu¶n lý dù ¸n
Andrew Betty
Tr−ëng nhãm t¸c nghiÖp Tr−ëng nhãm t¸c nghiÖp
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
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
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.
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.
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
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
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.
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
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
- 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·.
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.
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ã.
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 .
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).
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
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·.
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
6♥
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)
Q 3 K 10 K
♠ ♥ ♠ ♠ ♥
K 3 A J J
E(CJ,KB)
♣ ♠ ♠ ♣
Q A K 10 J
♠ ♠ ♠ ♠ ♠
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 ®·
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â).
®æ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
Ng−êi sö dông
gi¶i m· ®èi víi phÐp
kj
m· hãa thø hai
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?
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
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 C 1 1
Tíi K vµ L C J ký C 1 J ký 1 1 J ký 1
Tíi J vµ L C K ký 1 K ký 1 K ký
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.
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.
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.
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ã
Pete Nancy
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
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
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.
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.
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
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.
ë 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.
For 1 ≤ j ≤ l
Begin
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
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
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 .
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.
®è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.
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·.
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.
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.
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.
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.
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
C¸c b¶n ghi nμy gåm 40 byte = 320 bit = 5 khèi 64 bit (xem
h×nh 5.21).
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.
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
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 )
(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
§è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
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.
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.
a) M· hãa
b) Gi¶i m·
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
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·
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
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
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.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.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
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.
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¶.
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¶.
DS = E KR C ⎡⎣ H ( H ( PI ) // H ( OI ) ) ⎤⎦
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.
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
®Þa chØ m¹ng víi mçi (6) M¸y chñ kiÓm tra sù
cÇ
u
vµ thêi gian tíi TGS phiªn dÞch vô phï hîp cña thÎ vµ
dÞc
h
cÊ ¸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]
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
ThÎ tgs ThÎ cÇn ®−îc client sö dông ®Ó truy nhËp TGS
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.
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.
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Î.
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Î.
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
Phô lôc 1
Lý thuyÕt th«ng tin trong c¸c hÖ mËt
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 )
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
ë ®©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
= ∑ 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
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 )
§Þ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
{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 )
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
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.
⎛ 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.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
§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
H ( K, P,C ) + H ( K, P ) = H ( K ) + H ( P )
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
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) − 1
y∈C n
( )
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
( )
H C n ≤ n log 2 C
( )
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:
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
Phô lôc 2
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.
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
Phô lôc 3
M· nguån DES
typedef struct {
unsigned long ek[32];
unsigned long dk[32];
} des_ctx;
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;
}
scrunch(inblock, work);
desfunc(work, KnL);
unscrun(work, outblock);
return;
}
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
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_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
mËt m· häc
(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)
M∙ sè: HV 01 HM 04
M∙ sè: HV 01 HM 04