You are on page 1of 64

Ch¬ng 2 - MËt m· khãa bÝ mËt

Ch¬ng 2: MËt m· khãa bÝ mËt

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

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

Th¸m m· (Oscar)

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


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

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

Nguån kho¸

§Þnh nghÜa 2.1:


Mét hÖ mËt lµ mét bé 5  P, C, K, E, D  tho¶ m·n c¸c ®iÒu kiÖn sau:
a) P lµ mét tËp h÷u h¹n c¸c b¶n râ cã thÓ
b) C lµ mét tËp h÷u h¹n c¸c b¶n m· cã thÓ
c) K lµ mét tËp h÷u h¹n c¸c kho¸ cã thÓ (kh«ng gian kho¸)
d) §èi víi mçi k  K cã mét quy t¾c m· e k  E
ek : P  C
vµ mét quy t¾c gi¶i m· t¬ng øng d k  D
dk : C  P

sao cho: d k  e k  x    x víi  x  P .

2.2. MËt m· thay thÕ

26
Ch¬ng 2 - MËt m· khãa bÝ mËt

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

Gi¶ sö P  C  K  Z 26 víi 0  k  25 , ta ®Þnh nghÜa:


e k  x   x  k mod 26
d k  y   y  k mod 26
 x, y  Z 26 

Ta sö dông MDV (víi modulo 26) ®Ó m· ho¸ mét v¨n b¶n tiÕng Anh th«ng th-
êng b»ng c¸ch thiÕt lËp sù t¬ng øng gi÷a c¸c ký tù vµ c¸c thÆng d theo mod 26 nh
sau:

Ký tù A B C D E F G H I J K L M
M· t¬ng øng 0 1 2 3 4 5 6 7 8 9 10 11 12
Ký tù N O P Q R S T U V W X Y Z
M· t¬ng øng 13 14 15 16 17 18 19 20 21 22 23 24 25

VÝ dô 2.1:
Gi¶ sö kho¸ cho MDV lµ k  5 vµ b¶n râ lµ meetmeatsunset.
Tríc tiªn, ta biÕn ®æi b¶n râ thµnh d·y c¸c sè nguyªn theo b¶ng trªn:
12.4.4.19.12.4.0.19.18.20.13.18.4.19
Sau ®ã ta céng 5 vµo mçi gi¸ trÞ ë trªn vµ rót gän tæng theo mod 26, ta ®îc d·y sè sau:
17.9.9.24.17.9.5.24.23.25.18.23.9.24
Cuèi cïng, ta l¹i biÕn ®æi d·y sè nguyªn trªn thµnh c¸c ký tù t¬ng øng, ta cã b¶n m·
sau:
RJJYRJFYXZSXJY
§Ó gi¶i m· cho b¶n m· nµy, tríc tiªn ta biÕn b¶n m· thµnh d·y sè nguyªn råi trõ mçi
gi¸ trÞ cho 5 (rót gän theo modulo 26), vµ cuèi cïng lµ l¹i biÕn ®æi l¹i d·y sè nhËn
®îc nµy thµnh c¸c ký tù.
NhËn xÐt:
- Khi k  3 , hÖ mËt nµy thêng ®îc gäi lµ m· Caesar ®· tõng ®îc Hoµng ®Õ
Caesar sö dông.
- MDV (theo mod 26) lµ kh«ng an toµn v× nã cã thÓ bÞ th¸m theo ph¬ng ph¸p
t×m kho¸ vÐt c¹n (th¸m m· cã thÓ dÔ dµng thö mäi kho¸ 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 kho¸ vÐt c¹n ph¶i kh«ng thÓ thùc hiÖn ®îc. Tuy nhiªn, mét kh«ng gian
kho¸ Plín vÉn
Cho C  Zcha ®ñ ®Ó ®¶m b¶m ®é mËt.
26 . K chøa mäi ho¸n vÞ cã thÓ cã cña 26 ký tù tõ 0 ®Õn 25.

2.2.2.VíiM· thay
mçi thÕ
phÐp (MTT).
ho¸n vÞ π  K , ta ®Þnh nghÜa:
e π  x   π x 
vµ d π  y   π 1  y 
27
trong ®ã π 1 lµ ho¸n vÞ ngîc cña π
Ch¬ng 2 - MËt m· khãa bÝ mËt

Sau ®©y lµ mét vÝ dô vÒ phÐp ho¸n vÞ ngÉu nhiªn π t¹o nªn mét hµm m·
ho¸ (t¬ng tù nh trªn, c¸c ký tù cña b¶n râ ®îc viÕt b»ng ch÷ thêng, cßn c¸c ký tù cña
b¶n m· ®îc viÕt b»ng ch÷ in hoa).

Ký tù b¶n râ a b c d e f g h i j k l m
Ký tù b¶n m· X N Y A H P O G Z Q W B T
Ký tù b¶n râ n o p q r s t u v w x y z
Ký tù b¶n m· S F L R C V M U E K J D I

Nh vËy, e π  a   X, e π  b   N, ...
Hµm gi¶i m· lµ phÐp ho¸n vÞ ngîc. §iÒu nµy ®îc thùc hiÖn b»ng c¸ch viÕt hµng
thø hai lªn tríc råi s¾p xÕp theo thø tù ch÷ c¸i. Ta cã:

Ký tù b¶n m· a b c d e f g h i j k l m
Ký tù b¶n râ d l r y v o h e z x w p t
Ký tù b¶n m· n o p q r s t u v w x y z
Ký tù b¶n râ b g f j q n m u s k a c i

VÝ dô 2.2:
Víi phÐp thay thÕ trªn, tõ b¶n râ:
meetmeatsunset
ta thu ®îc b¶n m· sau:
THHMTHXMVUSHM
Sö dông phÐp ho¸n vÞ ngîc, ta dÔ dµng t×m l¹i ®îc b¶n râ ban ®Çu.
Mçi kho¸ cña m· thay thÕ lµ mét phÐp ho¸n vÞ cña 26 ký tù. Sè c¸c ho¸n vÞ
nµy lµ 26 ! 4.10 26 . §©y lµ mét sè rÊt lín nªn khã cã thÓ t×m ®îc kho¸ b»ng phÐp
t×m kho¸ vÐt c¹n. Tuy nhiªn, b»ng ph¬ng ph¸p thèng kª, ta cã thÓ dÔ dµng th¸m ®-
îc c¸c b¶n m· lo¹i nµy.

2.2.3. MËt m· VigenÌre


Trong hai hÖ MDV vµ MTT ë trªn, mét khi kho¸ ®· ®îc chän th× mçi ký tù sÏ
®îc ¸nh x¹ vµo mét ký tù duy nhÊt. V× vËy, c¸c hÖ trªn cßn ®îc gäi lµ c¸c hÖ thay

28
Ch¬ng 2 - MËt m· khãa bÝ mËt

thÕ ®¬n biÓu. Sau ®©y ta sÏ tr×nh bµy mét hÖ thay thÕ ®a biÓu ®îc gäi lµ hÖ
mËt Vigenere.
Sö dông phÐp t¬ng øng A  0, B  1, ..., Z  25 m« t¶ ë trªn, ta cã thÓ g¾n
cho mçi kho¸ k mét chuçi ký tù cã ®é dµi m, ®îc gäi lµ tõ kho¸. MËt m· VigenÌre sÏ
m· ho¸ ®ång thêi m ký tù: mçi phÇn tö cña b¶n râ t¬ng ®¬ng víi m ký tù.

VÝ dô 2.3:
Gi¶ sö m = 6 vµ tõ kho¸ lµ CIPHER. Tõ kho¸ nµy t¬ng øng víi d·y sè k = (2, 8, 15,
7, 4, 17). Gi¶ sö b¶n râ lµ:
meetmeatsunset
Ta sÏ biÕn ®æi c¸c phÇn tö cña b¶n râ thµnh c¸c thÆng d theo mod 26, viÕt chóng
thµnh c¸c nhãm 6 råi céng víi tõ kho¸ theo modulo 26 nh sau:

12 4 4 19 12 4 0 19 18 20 13 18 4 19 B¶n râ
2 8 15 7 4 17 2 8 15 7 4 17 2 8 Kho¸
14 12 19 0 16 21 2 1 7 1 17 9 6 1 B¶n m·
Nh vËy, d·y ký tù t¬ng øng víi x©u b¶n m· sÏ lµ:
OMTAQVCBHBRJGB
Ta cã thÓ m« t¶ mËt m· VigenÌre nh sau:

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


Ta ®Þnh nghÜa P  C  K   Z 26  n
Víi kho¸ k   k 1 , k 2 , ..., k m  , ta x¸c ®Þnh:
e k  x1 , x 2 , ..., x m    x 1  k1 , x 2  k 2 , ..., x m  k m 
vµ d k  y1 , y 2 , ..., y m    y1  k1 , y 2  k 2 , ..., y m  k m 
trong ®ã tÊt c¶ c¸c phÐp to¸n ®îc thùc hiÖn trong Z 26 .

Chó ý: §Ó gi¶i m·, ta cã thÓ dïng cïng tõ kho¸ nhng thay cho céng, ta trõ nã theo
modulo 26.
Ta thÊy r»ng, sè c¸c tõ kho¸ cã thÓ víi ®é dµi m trong mËt m· Vigenere lµ
26 .Bëi vËy, thËm chÝ víi m kh¸ nhá, ph¬ng ph¸p t×m kiÕn vÐt c¹n còng yªu cÇu
m

thêi gian kh¸ lín. VÝ dô, víi m = 6 th× kh«ng gian kho¸ còng cã kÝch thíc lín h¬n
3.108 kho¸.
2.3. MËt m· ho¸n vÞ (MHV)
Kh¸c víi MTT, ý tëng cña MHV lµ gi÷ c¸c ký tù cña b¶n râ kh«ng thay ®æi
nhng 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·.

29
Ch¬ng 2 - MËt m· khãa bÝ mËt

VÝ dô 2.4:
Gi¶ sö m = 6 vµ kho¸ lµ phÐp ho¸n vÞ sau:

1 2 3 4 5 6
3 5 1 6 4 2
Khi ®ã, phÐp ho¸n vÞ ngîc sÏ lµ:

1 2 3 4 5 6
3 6 1 5 2 4
Gi¶ sö ta cã b¶n râ: asecondclasscarriageonthetrain
Tríc tiªn, ta nhãm b¶n râ thµnh c¸c nhãm 6 ký tù:
a sec on dclass carria geonth etrain

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

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


EOANCSLSDSACRICARAOTGHNERIENAT
Khi sö dông phÐp ho¸n vÞ ngîc π 1 trªn d·y b¶n m· (sau khi ®· nhãm l¹i theo
c¸c nhãm 6 ký tù), ta sÏ nhËn l¹i ®îc b¶n râ ban ®Çu.
Tõ vÝ dô trªn, ta cã thÓ ®Þnh nghÜa MHV nh sau:

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


Cho P  C   Z 26  m vµ cho K lµ tÊt c¶ c¸c ho¸n vÞ cã thÓ cã cña
 1, 2, ..., m .
§èi víi mét kho¸ π (tøc lµ mét phÐp ho¸n vÞ nµo ®ã), ta x¸c
®Þnh:

e    x 1 , ..., x m   x 1 , ..., x  m  
vµ d   x1 , ..., xm    y

1
 1
, ..., y

1

 m  

trong ®ã  1 lµ phÐp ho¸n vÞ ngîc cña 

2.4. MËt m· Hill


Trong phÇn nµy sÏ m« t¶ mét hÖ mËt thay thÕ ®a biÓu kh¸c ®îc gäi lµ mËt
m· Hill. MËt m· nµy do Lester S.Hill ®a ra n¨m 1929. Gi¶ sö m lµ mét sè nguyªn d-

30
Ch¬ng 2 - MËt m· khãa bÝ mËt

¬ng, ®Æt P  C   Z26  m . ý tëng ë ®©y lµ lÊy m tæ hîp tuyÕn tÝnh cña m ký tù
trong mét phÇn tö cña b¶n râ ®Ó t¹o ra m ký tù ë mét phÇn tö cña b¶n m·.
VÝ dô nÕu m  2 ta cã thÓ viÕt mét phÇn tö cña b¶n râ lµ x   x1 , x 2  vµ
mét phÇn tö cña b¶n m· lµ y   y1 , y 2  . ë ®©y, y1 còng nh y 2 ®Òu lµ mét tæ
hîp tuyÕn tÝnh cña x1 vµ x 2 . Ch¼ng h¹n, cã thÓ lÊy:
y1  11x1  3x 2
y 2  8 x1  7 x 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 y 2    x1 x 2   
 3 7
Nãi chung, cã thÓ lÊy mét ma trËn k kÝch thíc m  m lµm kho¸. NÕu mét
phÇn tö ë hµng i vµ cét j cña k lµ k i, j th× cã thÓ viÕt k   k i, j  , víi
x   x 1 , x 2 , ..., x m   P vµ k  K , ta tÝnh y  e k  x    y1 , y 2 , ..., y m  nh sau :
 k 1,1 k 1, 2 ... k 1, m 
 
k k 2, 2 ... k 2, m 
 y1 , ..., y m  x1 , ..., x m   2,1   
 
 k m,1 k m, 2 ... k m, m 
 
Nãi c¸ch kh¸c, y  xk .
Chóng ta nãi r»ng b¶n m· nhËn ®îc tõ b¶n râ nhê phÐp biÕn ®æi tuyÕn
tÝnh. Ta sÏ xÐt xem ph¶i thùc hiÖn gi¶i m· nh thÕ nµo, tøc lµ lµm thÕ nµo ®Ó
tÝnh x tõ y. B¹n ®äc ®· lµm quen víi ®¹i sè tuyÕn tÝnh sÏ thÊy r»ng ph¶i dïng ma
trËn nghÞch ®¶o k 1 ®Ó gi¶i m·. B¶n m· ®îc gi¶i m· b»ng c«ng thøc x  yk 1 .
Sau ®©y lµ mét sè ®Þnh nghÜa vÒ nh÷ng kh¸i niÖm cÇn thiÕt lÊy tõ ®¹i sè
tuyÕn tÝnh. NÕu A   x i, j  lµ mét ma trËn cÊp l  m vµ B   b l, k  lµ mét ma trËn
cÊp m  n th× tÝch ma trËn AB   c l, k  ®îc ®Þnh nghÜa theo c«ng thøc :
m
c l, k  a
j 1
i, j b j, k

víi 1  i  l vµ 1  k  l . Tøc lµ c¸c phÇn tö ë hµng i vµ cét thø k cña AB ®îc t¹o ra
b»ng c¸ch lÊy hµng thø i cña A vµ cét thø k cña B, sau ®ã nh©n t¬ng øng c¸c phÇn
tö víi nhau vµ céng l¹i. CÇn ®Ó ý r»ng AB lµ mét ma trËn cÊp l  n .
Theo ®Þnh nghÜa nµy, phÐp nh©n ma trËn lµ kÕt hîp (tøc  AB C  A BC )
nhng nãi chung lµ kh«ng giao ho¸n (kh«ng ph¶i lóc nµo AB  BA , thËm chÝ ®èi
víi ma trËn vu«ng A vµ B).
Ma trËn ®¬n vÞ m  m (ký hiÖu lµ I m ) lµ ma trËn cÊp m  m cã c¸c sè 1
n»m ë ®êng chÐo chÝnh, vµ c¸c sè 0 ë vÞ trÝ cßn l¹i. Nh vËy, ma trËn ®¬n vÞ
2  2 lµ:
1 0
I 2   
0 1 

31
Ch¬ng 2 - MËt m· khãa bÝ mËt

I m ®îc gäi lµ ma trËn ®¬n vÞ v× AI m  A víi mäi ma trËn cÊp l  m vµ I m B  B


víi mäi ma trËn cÊp m  n . Ma trËn nghÞch ®¶o cña ma trËn A cÊp m  m (nÕu
tån t¹i) lµ ma trËn A 1 sao cho AA 1  A 1A  I m . Kh«ng ph¶i mäi ma trËn ®Òu
cã nghÞch ®¶o, nhng nÕu tån t¹i th× nã duy nhÊt.
Víi c¸c ®Þnh nghÜa trªn, cã thÓ dÔ dµng x©y dùng c«ng thøc gi¶i m· ®· nªu:
V× y  xk , ta cã thÓ nh©n c¶ hai vÕ cña ®¼ng thøc víi k 1 vµ nhËn ®îc:
 
yk 1   xk  k 1  x kk 1  xI m  x
(Chó ý: sö dông tÝnh chÊt kÕt hîp)
Cã thÓ thÊy r»ng, ma trËn m· ho¸ ë trªn cã nghÞch ®¶o trong Z 26 :
1
11 8  7 18 

3   
 7

 23
 11 


12 8  8 18  11  7  8  23 11  18  8  11 
   
3 7  23 11   3  7  7  23 3  18  7  11 
 261 286   1 0
   
 182 131   0 1 
(H·y nhí r»ng mäi phÐp to¸n sè häc ®Òu ®îc thùc hiÖn theo modulo 26).
Sau ®©y lµ mét vÝ dô minh ho¹ cho viÖc m· ho¸ vµ gi¶i m· trong hÖ mËt m·
Hill.

VÝ dô 2.5:
11 8
Gi¶ sö kho¸ k   
3 7 
Tõ c¸c tÝnh to¸n trªn, ta cã:
 7 18 
k 1   
 23 11 
Gi¶ sö cÇn m· ho¸ b¶n râ "July" . Ta cã hai phÇn tö cña b¶n râ ®Ó m· ho¸:
 9, 20  (øng víi Ju) vµ 11, 24 (øng víi ly). Ta tÝnh nh sau:
11 8 
9 20      99  60 72  140    3 4
 3 7
11 8
11 24     121  72 88  168  11 22 
3 7 
Bëi vËy, b¶n m· cña July lµ DELW. §Ó gi¶i m·, Bob sÏ tÝnh
3 4 .k 1   9 20 vµ 11 22 .k 1  11 24 

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


Cho tíi lóc nµy, ta ®· chØ ra r»ng cã thÓ thùc hiÖn phÐp gi¶i m· nÕu k cã
mét nghÞch ®¶o. Trªn thùc tÕ, ®Ó phÐp gi¶i m· lµ cã thÓ thùc hiÖn ®îc, ®iÒu
kiÖn cÇn lµ k ph¶i cã nghÞch ®¶o. (§iÒu nµy dÔ dµng rót ra tõ ®¹i sè tuyÕn tÝnh
s¬ cÊp, tuy nhiªn sÏ kh«ng chøng minh ë ®©y). Bëi vËy, ta chØ quan t©m tíi c¸c
ma trËn k kh¶ nghÞch.

32
Ch¬ng 2 - MËt m· khãa bÝ mËt

TÝnh kh¶ nghÞch cña mét ma trËn vu«ng phô thuéc vµo gi¸ trÞ ®Þnh thøc
cña nã. §Ó tr¸nh sù tæng qu¸t ho¸ kh«ng cÇn thiÕt, ta chØ giíi h¹n trong trêng hîp
2 2 .

§Þnh nghÜa 2.2:


§Þnh thøc cña ma trËn A   a i, j  cÊp 2  2 lµ gi¸ trÞ
det A  a1,1a 2, 2  a1, 2 a 2,1

NhËn xÐt: §Þnh thøc cña mét ma trËn vu«ng cÊp m x m 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
UCLN 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 UCLN 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 j i ( k * ®îc gäi lµ ma trËn bï ®¹i sè cña k). Khi ®ã,
cã thÓ chøng tá r»ng:
k 1   det k  1 k *

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


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

 
1  det I  det k k 1  det k det k 1

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


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

§Þnh lý 2.1:
Gi¶ sö  
A  ai j lµ mét ma trËn cÊp 2 2 trªn Z 26 sao cho
det A  a1,1a 2, 2  a1, 2 a 2,1 cã nghÞch ®¶o. Khi ®ã:

33
Ch¬ng 2 - MËt m· khãa bÝ mËt

 a 2, 2  a1, 2 
A 1   det A  1  
  a 2, 1 a1,1 

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


11 8 
det    11  7  8  3 mod 2
 3 7
 77  24 mod 26  53 mod 26
1
V× 11 mod 26  1 nªn ma trËn nghÞch ®¶o lµ:
1
11 8  7 18 

3   
 7

 23
 11 

§©y chÝnh lµ ma trËn ®· cã ë trªn.
B©y giê ta sÏ m« t¶ chÝnh x¸c mËt m· Hill trªn Z 26 (h×nh 2.1).

Cho m lµ mét sè nguyªn d­¬ng cè ®Þnh. Cho vµ cho


K = { c¸c ma trËn kh¶ nghÞch cÊp trªn }
Víi mét kho¸ , ta x¸c ®Þnh:


TÊt c¶ c¸c phÐp to¸n ®­îc thùc hiÖn trong

H×nh 2.1: MËt m· Hill

2.5. HÖ mËt x©y dùng trªn c¸c cÊp sè nh©n xyclic trªn vµnh ®a thøc.

Trong phÇn nµy ta xÐt mét øng dông cña nhãm nh©n xyclic trªn vµnh ®a
thøc Z 2  x  x n  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].

2.5.1 Nhãm nh©n cña vµnh.


Bæ ®Ò 2.1:
Trong vµnh Z 2  x  x n  1 víi n  2k , tËp c¸c ®a thøc cã träng sè lÎ sÏ t¹o nªn mét
nhãm nh©n c¸c ®a thøc theo modulo x n  1 .
Chøng minh:
V× n  2k nªn :  x n  1  1  x  n .
Do ®ã, mäi ®a thøc a  x  cã träng sè lÎ ®Òu tho¶ m·n ®iÒu kiÖn:

34
Ch¬ng 2 - MËt m· khãa bÝ mËt

 a  x  , 1  x    1
n
(2.1)
C¸c ®a thøc nµy sÏ t¹o nªn mét nhãm nh©n G cã luü ®¼ng e x   1 vµ cã cÊp
b»ng: G  2 n 1 .
Chó ý: §a thøc e x  ®îc gäi lµ lòy ®¼ng nÕu e 2  x   e x 

Bæ ®Ò 2.2:
Mäi phÇn tö trong nhãm nh©n G cã cÊp lµ 2 k hoÆc cã cÊp lµ íc cña 2 k .
Chøng minh:
Ta cã thÓ chøng minh b»ng qui n¹p:
k = 1: vµnh nµy chøa nhãm nh©n cÊp 2 lµ nhãm nh©n xyclic ®¬n vÞ I.
k = i : Gi¶ sö A  {a  x  , a 2  x  , a 3  x  , ..., a n  x } lµ mét nhãm nh©n xyclic cÊp n
trong vµnh ( n  2i ).
k = i+1: B×nh ph¬ng c¸c phÇn tö cña A ta cã nhãm nh©n xyclic sau:
A 2  {a 2  x  , x 4  x  , a 6  x  , ..., a 2n  x }

Nhãm nh©n xyclic nµy hiÓn nhiªn lµ nhãm con cña nhãm nh©n xyclic cÊp
2.2i  2i1 cã phÇn tö sinh lµ mét trong c¸c c¨n bËc hai cña a  x  .
Gäi Q lµ tËp c¸c thÆng d bËc hai trong G. Ta cã bæ ®Ò sau :

Bæ ®Ò 2.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
Q  2 2 1 (2.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µ:
g 2  x   f  x  mod x n  1

NÕu g x    g i x th× g 2  x   g i x 2i .
i

Tøc lµ f  x  (cã träng sè lÎ) chØ gåm mét sè lÎ c¸c ®¬n thøc cã mò ch½n.
Sè lîng c¸c ®a thøc nµy b»ng.
Q  C1n 2  C 3
 n 2  1  2  n 2  1
n 2  ...  C n 2

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

XÐt a  x   G . a  x    a i x . Ta cã bæ ®Ò sau:
i

Bæ ®Ò 2.4:

35
Ch¬ng 2 - MËt m· khãa bÝ mËt

§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 2 n 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:
  

 C 2i 1
n 2

 C 2j
n 2
  2  n 2  12  n 2  1  2 n 2

 i  j 

VÝ dô 2.6: n = 8
Cã tÊt c¶ 26  64 c¸c phÇn tö cÊp n.
Ta cã thÓ sö dông c¸c phÇn tö nµy ®Ó x©y dùng c¸c nhãm nh©n xyclic cÊp
n.
A i  { a i  x  , a i2  x  , a 3i  x  ,  a in 1  x  , a in  x   a i0  x   1}
Cã tÊt c¶ 2 n 2 c¸c nhãm nh©n xyclic cÊp n vµ nhãm nh©n I còng thuéc vµo
líp c¸c nhãm nh©n nµy. Ta gäi nã lµ nhãm nh©n xyclic ®¬n vÞ.

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


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

Bæ ®Ò 2.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:
(2.3)
k k
2 2
N  22 .2 2

VÝ dô 2.7:
n=8 N  281.282  213  8.192
n = 16 N  2161.2162  2 29  65.011 .712
n = 32 N  2321.232 2  2 61
n = 64 N  2 641.2 642  2125
n = 128 N  21281.21282  2 253

36
Ch¬ng 2 - MËt m· khãa bÝ mËt

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


Mçi cÊp sè nh©n xyclic cÊp n cã thÓ coi lµ mét phÐp biÕn ®æi tuyÕn tÝnh
cña vector m· ban ®Çu (®îc coi lµ nhãm nh©n xyclic ®¬n vÞ I) .
Gäi α lµ phÇn tö sinh cña mét nhãm nh©n xyclic cÊp n. Ta cã bæ ®Ò sau:

Bæ ®Ò 2.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:

 
 k 1 i 
Sn  β  1  α2  (2.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:

I
HÖ mËt A α, β 
M· ho¸
A α, β 
Vµo Ra

Kho¸ β

A α, β  I
Gi¶i m·
A 1  α, β 
Vµo Ra

Kho¸ β

Mçi phÐp biÕn ®æi (m· ho¸) A cã thÓ ®îc ®Æc trng bëi mét ma trËn vu«ng
cÊp n cã d¹ng sau:
β.α
β.α 2
A

β.α 0

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

37
Ch¬ng 2 - MËt m· khãa bÝ mËt

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 .

2.5.3.3.VÊn ®Ò gi¶i m·
§Ó gi¶i m· ta ph¶i t×m phÐp biÕn ®æi ngîc A 1 lµ ma trËn nghÞch ®¶o cña
ma trËn A. Tuy nhiªn ta cã thÓ dÔ dµng thùc hiÖn gi¶i m· dùa trªn bæ ®Ò sau:

Bæ ®Ò 2.7:
Ma trËn A cã cÊp (order) hoÆc lµ n, hoÆc lµ íc cña n. Tøc lµ ta lu«n cã:
An  I
 
2

 
2
2 2
 A 
Hay      
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.

VÝ dô 2.8: n=8
A,  {  012  ,  024 , 01356,  4  ,  456 ,  046 , 12457  ,  0  }
Ma trËn t¬ng øng:
1 1 0 0 0 0 0 1
0 1 0 1 0 0 0 1
1 0 1 0 1 1 0 1
0 0 0 1 0 0 0 0
A
0 0 0 1 1 1 0 0
0 0 0 1 0 1 0 1
1 1 0 1 1 0 1 0
0 0 0 0 0 0 0 1

A 2    014 ,  2  ,  236 ,  4  ,  045 ,  6  ,  267 ,  0  


A   124 ,  024 ,  01235 ,  4  ,  046 ,  046 , 14567 ,  0 
3
  A 1
A 4  I   1 ,  2  ,  3 ,  4  ,  5 ,  6  ,  7  ,  0  
Chó ý: ë ®©y ta biÓu diÔn c¸c ®a thøc qua c¸c sè mò cña c¸c thµnh phÇn
kh¸c kh«ng. VÝ dô:  012345  1  x  x 2  x 3  x 5 .

Vµo M· ho¸ Ra Vµo Gi¶i m· Ra


I  A  A A  (A2)2 = I

38
Ch¬ng 2 - MËt m· khãa bÝ mËt

VÝ dô 2.9:
XÐt cÊp sè nh©n cã c«ng béi (023) víi sè h¹ng ®Çu (023) (012) = (015).
B = { (015), (12457), (03467), (456), (145), (01356), (02347), (012) }
B2 = { (124), (136), (346), (035), (056), (257), (027), (147) }
B3 = { (02567), (047), (167), (23567), (12346), (034), (235), (12367) }
B4 ={ (02456), (13567), (02467), (01357), (01246), (12357), (02346),
(13457)}
B5 = { (347), (12345), (01245), (146), (037), (01567), (012346), (013457) }
B6 = { (245), (123), (467), (345), (016), (567), (023), (017) }
B7 = { (24567), (236), (127), (01347), (01236), (267), (356), (03457) } = B-1
B8 = I = { (1), (2), (3), (4), (5), (6), (7), (0) }

I  B2  
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.

2.5.3.4.C¸c ma trËn lu©n hoµn


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

§Þnh nghÜa 2.3:


Ma trËn vu«ng A nn trªn trêng F ®îc gäi lµ ma trËn lu©n hoµn nÕu nã cã d¹ng
sau:
a x  a0 a1  a n 1
xa  x  a a0  a n 2
A   n 1 aF
   
x a x 
n 1
a1 a2  a0

Bæ ®Ò 2.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

Bæ ®Ò 2.9:
Tæng vµ tÝch cña hai ma trËn lu©n hoµn lµ mét ma trËn lu©n hoµn.
Ta cã: A.B = C
Trong ®ã: c x   a  x  .b x  mod  x n  1

39
Ch¬ng 2 - MËt m· khãa bÝ mËt

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

a  x  .b x   1 mod x 2  1
k

Trong trêng hîp vµnh GF2  x   x n  1 vµ a  x   G , ta lu«n cã:
a  x  ,  x 2k
 
 1  a  x  ,  x  1
2k
 1

Bæ ®Ò 2.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 2.2).

Bæ ®Ò 2.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ã.
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.

Bæ ®Ò 2.13:
Sè c¸c ma trËn lu©n hoµn dïng ®Ó lËp m· b»ng sè c¸c phÇn tö cña nhãm
nh©n trong vµnh ®a thøc.
Trong trêng hîp ma trËn lu©n hoµn, thuËt to¸n m· ho¸ chØ lµ mét phÐp céng
víi n bíc dÞch vßng.
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ô 2.10: a x   1  x  x 2
A= { (012), (123), (234), (345), (456), (567) (670), (701) }
A2 = { (124), (135), (246), (357), (460), (571), (602), (713) }
A3 ={(01356), (12467), (23570), (34601), (45712), (56023), (67134), (70245)}
A4 = { (4), (5), (6), (7), (0), (1), (2), (3) }
A5 = { (456), (567), (670), (701), (012), (123), (234), (345) }
A6 = { (460), (571), (602), (713), (024), (135), (246), (357) }

40
Ch¬ng 2 - MËt m· khãa bÝ mËt

A7 = {(12457), (23560), (34671), (45702), (56031), (67124), (70235), (01346)}


= A-1.
A8 = { (1), (2), (3), (4), (5), (6), (7), (0) } = I.

Vµnh

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

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

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


trËn
Nhãm nh©n c¸c ma trËn
lu©n hoµn cã

Ma trËn ®¬n

H×nh 2.2: Quan hÖ gi÷a vµnh ®a thøc vµ vµnh ma


trËn
Vµo (7) (6) (5) (4) (3) (2) (1) (0)
(10110101)

 (00001000)
Ra
H×nh 2.3: S¬ ®å thiÕt bÞ m· A    0 ' , 1 ' ,  , 41
 7 '
ho¸
Ch¬ng 2 - MËt m· khãa bÝ mËt

Vµo
(7)’ (6)’ (5)’ (4)’ (3)’ (2)’ (1)’ (0)’
(00001000)

  (10110101)
Ra

a 1  x   x  x 2  x 4  x 5  x 7 A    0, 1,  ,  7 
Ta cã: H×nh 2.4: S¬ ®å thiÕt bÞ m·
1 1 1 ho¸
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

2.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).
§Ó 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 

42
Ch¬ng 2 - MËt m· khãa bÝ mËt

V× y thay ®æi trªn Z 26 nªn y  b còng thay ®æi trªn Z 26 . Bëi vËy, ta chØ
cÇn nghiªn cøu ph¬ng tr×nh ®ång d:
ax  y  mod 26  y  Z 26 

Ta biÕt r»ng, ph¬ng tr×nh nµy cã mét nghiÖm duy nhÊt ®èi víi mçi y khi vµ
chØ khi UCLN a , 26  1 (ë ®©y hµm UCLN lµ íc chung lín nhÊt cña c¸c biÕn
cña nã). Tríc tiªn ta gi¶ sö r»ng, UCLN a , 26   d  1 . Khi ®ã, ®ång d thøc
ax  0  mod 26  sÏ cã Ýt nhÊt hai nghiÖm ph©n biÖt trong Z 26 lµ x  0 vµ
x  26 d . Trong trêng hîp nµy, e x   ax  b mod 26 kh«ng ph¶i lµ mét hµm ®¬n

¸nh vµ bëi vËy nã kh«ng thÓ lµ hµm m· ho¸ hîp lÖ.

VÝ dô 2.11: Do UCLN 4, 26   2 nªn 4 x  7 kh«ng lµ hµm m· ho¸ hîp lÖ: x vµ


x  13 sÏ m· ho¸ thµnh cïng mét gi¸ trÞ ®èi víi bÊt k× x  Z 26 .

Ta gi¶ thiÕt UCLN a , 26  1 . Gi¶ sö víi x1 vµ x 2 nµo ®ã tho¶ m·n:


ax1  ax 2  mod 26
Khi ®ã:
a  x1  x 2   0  mod 26 
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 USLN a , b   1 vµ
a bc th× a c . V× 26 a  x1  x 2  vµ UCLN a , 26   1 nªn ta cã:
26  x1  x 2 
tøc lµ
x1  x 2  mod 26 
Tíi ®©y ta ®· chøng tá r»ng, nÕu UCLN a , 26   1 th× mét ®ång d thøc d¹ng
ax  y  mod 26  chØ cã (nhiÒu nhÊt) mét nghiÖm trong Z 26 . Do ®ã, nÕu ta cho x

thay ®æi trªn Z 26 th× ax mod 26 sÏ nhËn ®îc 26 gi¸ trÞ kh¸c nhau theo modulo 26
vµ ®ång d thøc ax  y  mod 26 chØ cã mét nghiÖm y duy nhÊt.
Kh«ng cã g× ®Æc biÖt ®èi víi sè 26 trong kh¼ng ®Þnh nµy. Bëi vËy, b»ng
c¸ch t¬ng tù, ta cã thÓ chøng minh ®îc kÕt qu¶ sau:

§Þnh lý 2.2:
§ång d thøc ax  b mod m chØ cã mét nghiÖm duy nhÊt x  Z m víi mäi b  Z m khi
vµ chØ khi UCLN a , m   1 .

43
Ch¬ng 2 - MËt m· khãa bÝ mËt

V× 26  2  13 nªn c¸c gi¸ trÞ a  Z 26 tho¶ m·n UCLN a , 26  1 lµ a = 1, 3,


5, 7, 9, 11, 13, 15, 17, 19, 21, 23 vµ 25. Tham sè b cã thÓ lµ mét phÇn tö bÊt kú
trong Z 26 . Nh vËy , m· Affine cã 12  26  312 kho¸ cã thÓ (dÜ nhiªn, con sè nµy
lµ qu¸ nhá ®Ó b¶o ®¶m an toµn).
B©y giê, ta sÏ xÐt bµi to¸n chung víi modulo m. Ta cÇn mét ®Þnh nghÜa
kh¸c trong lý thuyÕt sè.

§Þnh nghÜa 2.4:


Gi¶ sö a  1 vµ m  2 lµ c¸c sè nguyªn. UCLN a , m   1 th× ta nãi r»ng a vµ m
lµ nguyªn tè cïng nhau . Sè c¸c sè nguyªn trong Z m nguyªn tè cïng nhau víi m th-
êng ®îc ký hiÖu lµ  m  (hµm nµy ®îc gäi lµ hµm phi-Euler) .
Mét kÕt qu¶ quan träng trong lý thuyÕt sè cho ta gi¸ trÞ cña  m  theo c¸c
thõa sè trong phÐp ph©n tÝch theo luü thõa c¸c sè nguyªn tè cña m. (Mét sè nguyªn
p  1 lµ sè nguyªn tè nÕu nã kh«ng cã íc d¬ng nµo kh¸c ngoµi 1 vµ p). Mäi sè
nguyªn m  1 cã thÓ ph©n tÝch ®îc thµnh tÝch cña c¸c luü thõa c¸c sè nguyªn tè
theo c¸ch duy nhÊt. VÝ dô 60  2 3  3  5 vµ 98  2  7 2 ).
Ta sÏ ghi l¹i c«ng thøc cho  m  trong ®Þnh lÝ sau:

§Þnh lý 2.3:
n

Gi¶ sö m
p
i 1
ei
i

Trong ®ã c¸c sè nguyªn tè p i kh¸c nhau vµ e i  0, 1  i  n . Khi ®ã :

 m  
 p
i 1
ei
i  p ie i 1 
§Þnh lý nµy cho thÊy r»ng, sè kho¸ trong m· Affine trªn Z m b»ng m m  ,
trong ®ã  m  ®îc cho theo c«ng thøc trªn. (Sè c¸c phÐp chän cña b lµ m vµ sè
c¸c phÐp chän cña a lµ  m  víi hµm m· ho¸ lµ e x   ax  b ).
VÝ dô, khi m  60,  60  2  2  4  16 vµ sè c¸c kho¸ trong m· Affine lµ 960.
B©y giê, ta sÏ xÐt xem c¸c phÐp to¸n gi¶i m· trong mËt m· Affine víi modulo
m = 26. Gi¶ sö UCLN a , 26   1 . §Ó gi¶i m· cÇn gi¶i ph¬ng tr×nh ®ång d
y  ax  b  mod 26  theo x. Tõ th¶o luËn trªn thÊy r»ng, ph¬ng tr×nh nµy cã mét
nghiÖm duy nhÊt trong Z 26 . Tuy nhiªn, ta vÉn cha biÕt mét ph¬ng ph¸p h÷u hiÖu
®Ó t×m nghiÖm. §iÒu cÇn thiÕt ë ®©y lµ cã mét thuËt to¸n h÷u hiÖu ®Ó lµm
viÖc ®ã. RÊt may lµ mét sè kÕt qu¶ tiÕp sau vÒ sè häc modulo sÏ cung cÊp mét
thuËt to¸n gi¶i m· h÷u hiÖu cÇn t×m.
§Þnh nghÜa 2.5:

44
Ch¬ng 2 - MËt m· khãa bÝ mËt

Gi¶ sö a  Z m . PhÇn tö nghÞch ®¶o (theo phÐp nh©n) cña a lµ phÇn tö


1
a  Zm sao cho a.a 1
a 1
.a  1  mod m  .
B»ng c¸c lý luËn t¬ng tù nh trªn, cã thÓ chøng tá r»ng a cã nghÞch ®¶o theo
modulo m khi vµ chØ khi UCLN a , m   1 , vµ nÕu nghÞch ®¶o nµy tån t¹i th× nã
ph¶i lµ duy nhÊt. Ta còng thÊy r»ng, nÕu b  a 1 th× a  b 1 . NÕu p lµ sè nguyªn
tè th× mäi phÇn tö kh¸c kh«ng cña Z p ®Òu cã nghÞch ®¶o. Mét vµnh trong ®ã
mäi phÇn tö kh¸c 0 ®Òu cã nghÞch ®¶o ®îc gäi lµ mét trêng.
Trong [3] cã mét thuËt to¸n h÷u hiÖu ®Ó tÝnh c¸c nghÞch ®¶o cña Z m víi m
tuú ý. Tuy nhiªn, trong Z 26 , chØ b»ng ph¬ng ph¸p thö vµ sai còng cã thÓ t×m ®îc
c¸c nghÞch ®¶o cña c¸c phÇn tö nguyªn tè cïng nhau víi 26: 11  1 ,
3 1  9, 5 1  21, 7 1  15, 111  19, 17 1  23, 25 1  25 . (Cã thÓ dÔ dµng kiÓm

chøng l¹i ®iÒu nµy, vÝ dô: 7  5  105  1 mod 26 , bëi vËy 7 1  15 ).


XÐt ph¬ng tr×nh ®ång d y  ax  b  mod 26  . Ph¬ng tr×nh nµy t¬ng ®¬ng víi
ax  y  b  mod 26 

V× UCLN a , 26   1 nªn a cã nghÞch ®¶o theo modulo 26. Nh©n c¶ hai vÕ cña
®ång d thøc víi a 1 , ta cã:
a 1  ax   a 1  y  b   mod 26 

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


 
a 1  ax   a 1.a x  1.x  x

KÕt qu¶ lµ x  a 1  y  b   mod 26 . §©y lµ mét c«ng thøc têng minh cho x.
Nh vËy hµm gi¶i m· lµ:
d  y   a 1  y  b  mod 26

H×nh 2 .5 cho m« t¶ ®Çy ®ñ vÒ m· Affine. Sau ®©y lµ mét vÝ dô nhá.

VÝ dô 2.12:
Gi¶ sö k   7, 3 . Nh ®· nªu ë trªn, 7 1 mod 26  15 . Hµm m· ho¸ lµ:
ek  x   7x  3
Vµ hµm gi¶i m· t¬ng øng lµ:
d k  x   15 y  3  15y  19

ë ®©y, tÊt c¶ c¸c phÐp to¸n ®Òu thùc hiÖn trªn Z 26 . Ta sÏ kiÓm tra liÖu
Cho vµ gi¶ sö:
d k  e k  x    x víi mäi x  Z 26 kh«ng?. Dïng c¸c tÝnh to¸n trªn Z 26 , ta cã:
d k  e k  x    d k  7 x  3
Víi , ta ®Þnh nghÜa:
 15 7 x  3  19
 x  45  19
vµ x

45

H×nh 2.5: M· Affine


Ch¬ng 2 - MËt m· khãa bÝ mËt

§Ó minh ho¹, ta h·y m· ho¸ b¶n râ "hot". Tríc tiªn, biÕn ®æi c¸c ch÷ h, o, t
thµnh c¸c thÆng d theo modulo 26. Ta ®îc c¸c sè t¬ng øng lµ 7, 14 vµ 19. B©y giê
sÏ m· ho¸:
7  7  3 mod 26  52 mod 26  0

7  14  3 mod 26  101 mod 26  23

7  19  3 mod 26  136 mod 26  6

Bëi vËy, ba ký hiÖu cña b¶n m· lµ 0, 23 vµ 6, t¬ng øng víi x©u ký tù AXG.
ViÖc gi¶i m· sÏ do b¹n ®äc thùc hiÖn nh mét bµi tËp.

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


Mét ph¸t minh kh¸c do Shannon ®a ra trong bµi b¸o cña m×nh n¨m 1949 lµ ý
tëng kÕt hîp c¸c hÖ mËt b»ng c¸ch t¹o tÝch cña chóng. ý tëng nµy cã tÇm quan
träng to lín trong viÖc thiÕt kÕ c¸c hÖ mËt hiÖn nay (ch¼ng h¹n, chuÈn m· d÷
liÖu - DES ).
§Ó ®¬n gi¶n, trong phÇn nµy chØ h¹n chÕ xÐt c¸c hÖ mËt trong ®ã C  P :
c¸c hÖ mËt lo¹i nµy ®îc gäi lµ tù ®ång cÊu. Gi¶ sö S1   P, P, K1 , 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µ S 2 (kÝ hiÖu lµ S1  S 2 ) ®îc x¸c ®Þnh lµ hÖ mËt
sau:
 P, P, K 1  K 2 , E , D 
Kho¸ cña hÖ mËt tÝch cã d¹ng k   k1 , k 2  trong ®ã k1  K1 vµ k 2  K 2 . C¸c

quy t¾c m· vµ gi¶i m· cña hÖ mËt tÝch ®îc x¸c ®Þnh nh sau: Víi mçi k   k1 , k 2  ,
ta cã mét quy t¾c m· e k x¸c ®Þnh theo c«ng thøc:

e k1 , k 2   x   ek 2 ek1  x  
vµ quy t¾c gi¶i m·:

46
Ch¬ng 2 - MËt m· khãa bÝ mËt


d  k1 , k 2   y  d k1 d k 2  y 
NghÜa lµ, tríc tiªn ta m· ho¸ x b»ng e k 1 råi m· l¹i b¶n kÕt qu¶ b»ng e k 2 . Qu¸
tr×nh gi¶i m· t¬ng tù nhng thùc hiÖn theo thø tù ngîc l¹i:
   
d  k1 , k 2  e k1 , k 2   x   d  k1 , k 2  e k 2 e k1  x  
  
 d k1 d k 2 e k 2 e k1  x  
 d k e k  x  
1 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
kho¸ 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
kho¸ K cña hÖ mËt tÝch. HiÓn nhiªn ta cã thÓ viÕt:
p K  k 1 , k 2   p K 1  k1   p K 2  k 2 

Nãi mét c¸ch kh¸c, ta chän k1 cã ph©n bè p K 1 råi chän mét c¸ch ®éc lËp k 2
cã ph©n bè p K 2  k 2  .
Sau ®©y lµ mét vÝ dô ®¬n gi¶n ®Ó minh ho¹ kh¸i niÖm hÖ mËt tÝch. Gi¶
sö ®Þnh nghÜa hÖ mËt m· nh©n nh trong h×nh 2.6 sau.

Gi¶ sö vµ gi¶ sö:

Víi , ta x¸c ®Þnh:


H×nh 2.6: M· nh©n

Cho M lµ mét hÖ m· nh©n (víi c¸c kho¸ ®îc chän ®ång x¸c suÊt) vµ S lµ
MDV ( víi c¸c kho¸ 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 kho¸ ®î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).
Ta sÏ chøng minh c¸c kh¼ng ®Þnh nµy. Mét kho¸ dÞch vßng lµ phÇn tö
k  Z 26 vµ quy t¾c gi¶i m· t¬ng øng lµ e k  x   x  k mod 26 . Cßn kho¸ trong hÖ
m· nh©n lµ phÇn tõ a  Z 26 sao cho UCLN a , 26   1 . Quy t¾c m· t¬ng øng lµ
e a  x   a mod 26 . Bëi vËy, mét kho¸ trong m· tÝch M  S cã d¹ng  a , k  , trong
®ã
e  a , k   x   ax  k mod 26

47
Ch¬ng 2 - MËt m· khãa bÝ mËt

§©y chÝnh lµ ®Þnh nghÜa vÒ kho¸ trong hÖ m· Affine. H¬n n÷a, x¸c suÊt
cña mét kho¸ trong hÖ m· Affine lµ: 1 312  1 12   1 26  . §ã lµ tÝch cña x¸c suÊt
t¬ng øng cña c¸c kho¸ a vµ k. Bëi vËy M  S lµ hÖ m· Affine.
B©y giê ta sÏ xÐt S  M . Mét kho¸ nµy trong hÖ m· nµy cã d¹ng  k , a  ,
trong ®ã :
e  k , a   x   a  x  k   ax  ak mod 26

Nh vËy, kho¸  k , a  cña m· tÝch S  M ®ång nhÊt víi kho¸  a , ak  cña hÖ


m· Affine. VÊn ®Ò cßn l¹i lµ ph¶i chøng tá r»ng mçi kho¸ 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 UCLN a , 26  1 , bëi vËy a cã phÇn tö
nghÞch ®¶o). Nãi c¸ch kh¸c, kho¸  a , k1  cña hÖ m· Affine t¬ng ®¬ng víi kho¸
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
kho¸. V× mçi kho¸ 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; cã thÓ t×m ta ®î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µ S 2 ). NÕu lÊy tÝch n lÇn th× hÖ mËt kÕt qu¶ lµ S n . Ta
gäi S n lµ hÖ mËt lÆp.
Mét hÖ mËt S ®îc gäi lµ luü ®¼ng nÕu S 2  S . Cã nhiÒu hÖ mËt ®· nghiªn
cøu trong ch¬ng 1 lµ hª mËt luü ®¼ng. Ch¼ng h¹n c¸c hÖ MDV, MTT, Affine,
Hill, VigenÌre vµ ho¸n vÞ ®Òu lµ luü ®¼ng. HiÓn nhiªn lµ nÕu hÖ mËt S lµ luü
®¼ng th× kh«ng nªn sö dông hÖ mËt tÝch S 2 v× nã yªu cÇu lîng kho¸ lín h¬n mµ
kh«ng cã ®é b¶o mËt cao h¬n.
NÕu mét hÖ mËt kh«ng ph¶i lµ luü ®¼ng th× cã thÓ lµm t¨ng ®é mËt b»ng
c¸ch lÆp nhiÒu lÇn. ý tëng nµy ®· ®îc dïng trong chuÈn m· d÷ liÖu (DES). Trong
DES dïng 16 phÐp lÆp, tÊt nhiªn hÖ mËt ban ®Çu ph¶i lµ hÖ mËt kh«ng luü
®¼ng. Mét ph¬ng ph¸p cã thÓ x©y dùng c¸c hÖ mËt kh«ng luü ®¼ng ®¬n gi¶n lµ
lÊy tÝch cña hai hÖ mËt ®¬n gi¶n kh¸c nhau.
NhËt xÐt:
Cã thÓ dÔ dµng chøng tá r»ng, nÕu c¶ hai hÖ mËt S1 vµ S 2 lµ luü ®¼ng
vµ giao ho¸n th× S1 vµ S 2 còng lµ luü ®¼ng. §iÒu nµy rót ra tõ c¸c phÐp to¸n
®¹i sè sau:

48
Ch¬ng 2 - MËt m· khãa bÝ mËt

 S1  S2    S1  S2   S1   S2  S1   S2
 S1   S1  S2   S 2
  S1  S1    S 2  S 2 
 S1  S2
(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µ S 2 ®Òu lµ luü ®¼ng vµ ta muèn S1  S 2 lµ kh«ng
luü ®¼ng th× ®iÒu kiÖn cÇn lµ S1 vµ S 2 kh«ng giao ho¸n.
RÊt may m¾n lµ nhiÒu hÖ mËt ®¬n gi¶n tho¶ 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Þ.

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


Trong c¸c hÖ mËt nghiªn cøu ë trªn, c¸c phÇn tö liªn tiÕp cña b¶n râ ®Òu ®îc
m· ho¸ b»ng cïng mét kho¸ k. Tøc x©u b¶n m· y nhËn ®îc cã d¹ng:
y  y1y 2   e k  x1  e k  x 2  
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 kho¸ z  z1z 2 
vµ dïng nã ®Ó m· ho¸ mét x©u b¶n râ x  x1x 2  theo quy t¾c:
y  y1y 2   e z1  x1  e z 2  x 2  
M· dßng ho¹t ®éng nh sau. Gi¶ sö k  K lµ kho¸, vµ x  x1x 2  lµ x©u b¶n
râ. Hµm f i ®îc dïng ®Ó t¹o z i ( z i lµ phÇn tö thø i cña dßng kho¸), trong ®ã f i
lµ mét hµm cña kho¸ k vµ i  1 ký tù ®Çu tiªn cña b¶n râ:
z i  f i  k , x1 ,  , x i 1 
PhÇn tö z i cña dßng kho¸ ®îc dïng ®Ó m· x i t¹o ra yi  eiz  x i  . Bëi vËy, ®Ó
m· ho¸ x©u b¶n râ x1x 2  ta ph¶i tÝnh liªn tiÕp z1 , y1 , z 2 , y 2 , 
ViÖc gi¶i m· x©u b¶n m· y1y 2  cã thÓ ®îc thùc hiÖn b»ng c¸ch tÝnh liªn
tiÕp z1 , x1 , z 2 , x 2 , 
Sau ®©y lµ ®Þnh nghÜa díi d¹ng to¸n häc:

§Þnh nghÜa 2.6.


MËt m· dßng lµ mét bé  P, C, K, L, F, E, D  tho¶ m·n c¸c ®iÒu kiÖn sau:

1. P lµ mét tËp h÷u h¹n c¸c b¶n râ cã thÓ.


2. C lµ tËp h÷u h¹n c¸c b¶n m· cã thÓ.
3. K lµ tËp h÷u h¹n c¸c kho¸ cã thÓ (kh«ng gian kho¸)
4. L lµ tËp h÷u h¹n c¸c bé ch÷ cña dßng kho¸.
5. F   f1f 2  lµ bé t¹o dßng kho¸ . Víi i  1

49
Ch¬ng 2 - MËt m· khãa bÝ mËt

f i : K  P i 1  L
6. Víi mçi z  L cã mét quy t¾c m· e z  E vµ mét quy t¾c gi¶i m· t¬ng øng
d z  D . e z : P  C vµ d z : C  P lµ c¸c hµm tho¶ m·n d z  e z  x    x víi mäi
b¶n râ x  P .
Ta cã thÓ coi m· khèi lµ mét trêng hîp ®Æc biÖt cña m· dßng, trong ®ã dïng
kho¸ kh«ng ®æi: Zi  k víi mäi i  1 .
Sau ®©y lµ mét sè d¹ng ®Æc biÖt cña m· dßng cïng víi c¸c vÝ dô minh ho¹.
M· dßng ®îc gäi lµ ®ång bé nÕu dßng kho¸ kh«ng phô thuéc vµo x©u b¶n râ, tøc
lµ nÕu dßng kho¸ ®îc t¹o ra chØ lµ hµm cña kho¸ k. Khi ®ã, ta coi k lµ mét
"mÇm" ®Ó më réng thµnh dßng kho¸ z1z 2 
Mét hÖ m· dßng ®îc gäi lµ tuÇn hoµn víi chu kú d nÕu z i  d  z i víi mäi sè
nguyªn i  1 . M· VigenÌre víi ®é dµi tõ kho¸ m cã thÓ coi lµ m· dßng tuÇn hoµn
víi chu kú m. Trong trêng hîp nµy, kho¸ lµ k   k1 ,  , k m  . B¶n th©n k sÏ t¹o m
phÇn tö ®Çu tiªn cña dßng kho¸: z i  k i , 1  i  m . Sau ®ã, dßng kho¸ sÏ tù lÆp l¹i.
NhËn thÊy r»ng, trong m· dßng t¬ng øng víi mËt m· VigenÌre, c¸c hµm m· vµ gi¶i
m· ®îc dïng gièng nh c¸c hµm m· vµ gi¶i m· ®îc dïng trong MDV:
e z  x   x  z vµ d z  y   y  z
C¸c m· dßng thêng ®îc m« t¶ trong c¸c bé ch÷ nhÞ ph©n tøc lµ P  C  L  Z 2
. Trong trêng hîp nµy, c¸c phÐp to¸n m· vµ gi¶i m· lµ phÐp céng theo modulo 2.
e z  x   x  z mod 2 vµ d z  y   y  z mod 2
NÕu ta coi "0" biÓu thÞ gi¸ trÞ "sai" vµ "1" biÓu thÞ gi¸ trÞ "®óng" trong ®¹i
sè Boolean th× phÐp céng theo modulo 2 sÏ øng víi phÐp hoÆc cã lo¹i trõ. Bëi
vËy, phÐp m· (vµ gi¶i m· ) dÔ dµng thùc hiÖn b»ng m¹ch cøng.
Ta xem xÐt mét ph¬ng ph¸p t¹o mét dßng kho¸ (®ång bé) kh¸c. Gi¶ sö b¾t
®Çu víi  k1 ,  , 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 kho¸ theo mét quan hÖ ®Ö quy tuyÕn tÝnh cÊp m:
m 1
zi m  c z
j 0
j i j mod 2

trong ®ã c 0 ,  , c m 1  Z 2 lµ c¸c h»ng sè cho tríc.

NhËn xÐt:
PhÐp ®Ö quy ®îc nãi lµ cã bËc m v× mçi sè h¹ng phô thuéc vµo m sè h¹ng
®øng tríc. PhÐp ®Ö quy nµy lµ tuyÕn tÝnh bëi v× Zi  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Ï lµ cã bËc m- 1.
ë ®©y kho¸ k gåm 2m gi¸ trÞ k1 ,  , k m , c 0 ,  , c m 1 . NÕu  k1 ,  , k m  
 0,  , 0  th× dßng kho¸ 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è

50
Ch¬ng 2 - MËt m· khãa bÝ mËt

c 0 ,  , c m 1 th× mét vector khëi ®Çu bÊt k× kh¸c  k1 ,  , k m  sÏ t¹o nªn mét dßng
kho¸ cã chu kú 2 m  1 . Bëi vËy, mét kho¸ ng¾n sÏ t¹o nªn mét dßng kho¸ cã chu kú
rÊt lín. §©y lµ mét tÝnh chÊt rÊt ®¸ng lu 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 kho¸ cã chu kú ng¾n.
Sau ®©y lµ mét vÝ dô minh ho¹:

VÝ dô 2.13:
Gi¶ sö m = 4 vµ dßng kho¸ ®îc t¹o b»ng quy t¾c:
z i  4  z i  z i 1 mod 2
NÕu dßng kho¸ b¾t ®Çu mét vector bÊt kú kh¸c víi vector  0, 0, 0, 0  th× ta thu
®îc dßng kho¸ cã chu kú 15 . VÝ dô b¾t ®Çu b»ng vector 1, 0, 0, 0  , dßng kho¸
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 kho¸.
Mét híng ®¸ng quan t©m kh¸c cña ph¬ng ph¸p t¹o dßng kho¸ hiÖu qu¶ b»ng
phÇn cøng lµ sö dông bé ghi dÞch håi tiÕp tuyÕn tÝnh (hay LFSR). Ta dïng mét
bé ghi dÞch cã m tÇng. Vector  k1 ,  , k m  sÏ ®îc dïng ®Ó khëi t¹o (®Æt c¸c gi¸
trÞ ban ®Çu) cho thanh ghi dÞch. ë mçi ®¬n vÞ thêi gian, c¸c phÐp to¸n sau sÏ ®îc
thùc hiÖn ®ång thêi.
1. k1 ®îc tÝnh ra dïng lµm bit tiÕp theo cña dßng kho¸.
2. k 2 ,  , k m sÏ ®îc dÞch mét tÇng vÒ phÝa tr¸i.
3. Gi¸ trÞ míi cña k m sÏ ®îc tÝnh b»ng:
m 1

c k
j 0
j j 1

(®©y lµ håi tiÕp tuyÕn tÝnh).

Ta thÊy r»ng, thao t¸c tuyÕn tÝnh sÏ ®îc tiÕn hµnh b»ng c¸ch lÊy tÝn hiÖu
ra tõ mét sè tÇng nhÊt ®Þnh cña thanh ghi (®îc x¸c ®Þnh bëi c¸c h»ng sè c j cã gi¸
trÞ "1") vµ tÝnh tæng theo modulo 2 (lµ phÐp hoÆc lo¹i trõ). H×nh 2.7 cho m« t¶
cña LFSR dïng ®Ó t¹o dßng kho¸ cho vÝ dô 2.13.

k1 k2 k3 k4

51
H×nh 2.7: Thanh ghi dÞch håi tiÕp tuyÕn tÝnh
(LFSR)
Ch¬ng 2 - MËt m· khãa bÝ mËt

Mét vÝ dô vÒ m· dßng kh«ng ®ång bé lµ m· kho¸ tù sinh ®îc cho ë h×nh 3.8.
H×nh nh mËt m· nµy do VigenÌre ®Ò xuÊt.

Cho
Cho vµ
Víi , ta x¸c ®Þnh

H×nh 2.8: MËt m· kho¸ tù sinh


Lý do sö dông thuËt ng÷ "kho¸ tù sinh" lµ ë chç b¶n râ ®îc dïng lµm kho¸
(ngoµi "kho¸ khëi thuû" ban ®Çu k).
Sau ®©y lµ mét vÝ dô minh ho¹.

VÝ dô 2.14:
Gi¶ sö kho¸ lµ k = 8 vµ b¶n râ lµ rendezvous. Tríc tiªn, ta biÕn ®æi b¶n râ
thµnh d·y c¸c sè nguyªn:
17 4 13 3 4 25 21 14 20 18
Dßng kho¸ nh sau:
8 17 4 13 3 4 25 21 14 20
B©y giê ta céng c¸c phÇn tö t¬ng øng råi rót gän theo modulo 26:
25 21 17 16 7 3 20 9 8 12

B¶n m· ë d¹ng ký tù lµ: ZVRQHDUJIM .


B©y giê ta xem Alice gi¶i m· b¶n m· nµy nh thÕ nµo. Tríc tiªn, Alice biÕn ®æi
x©u kÝ tù thµnh d·y sè:

25 21 17 16 7 3 20 9 8 12
Sau ®ã c« ta tÝnh:
x1  d 8  25  25  8 mod 26  17
vµ x 2  d17  21  21  17 mod 26  4
vµ cø tiÕp tôc nh vËy. Mçi khi Alice nhËn ®îc mét ký tù cña b¶n râ, c« ta sÏ dïng
nã lµm phÇn tö tiÕp theo cña dßng kho¸.
DÜ nhiªn lµ m· dïng kho¸ tù sinh lµ kh«ng an toµn do chØ cã 26 kho¸.

52
Ch¬ng 2 - MËt m· khãa bÝ mËt

2.9. ChuÈn m· d÷ liÖu


2.9.1. Më ®Çu
Ngµy 15.5.1973. Uû ban tiªu chuÈn quèc gia Mü ®· c«ng bè mét khuyÕn
nghÞ cho c¸c hÖ mËt trong Hå s¬ qu¶n lý liªn bang. §iÒu nµy cuèi cïng ®· dÉn
®Õn sù ph¸t triÓn cña ChuÈn m· d÷ liÖu (DES) vµ nã ®· trë thµnh mét hÖ mËt ®-
îc sö dông réng r·i nhÊt trªn thÕ giíi. DES ®îc IBM ph¸t triÓn vµ ®îc xem nh mét
c¶i biªn cña hÖ mËt LUCIPHER. DES ®îc c«ng bè lÇn ®Çu tiªn trong Hå s¬ Liªn
bang vµo ngµy 17.3.1975. Sau nhiÒu cuéc tranh luËn c«ng khai, DES ®· ®îc chÊp
nhËn chän lµm chuÈn cho c¸c øng dông kh«ng ®îc coi lµ mËt vµo 5.1.1977. KÓ tõ
®ã cø 5 n¨m mét lÇn, DES l¹i ®îc Uû ban Tiªu chuÈn Quèc gia xem xÐt l¹i. LÇn
®æi míi gÇn ®©y nhÊt cña DES lµ vµo th¸ng 1.1994 vµ sau lµ 1998. Tíi th¸ng
10.2000 DES ®· kh«ng cßn lµ chuÈn m· d÷ liÖu n÷a.

2.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 15.1.1977. DES m· ho¸ mét x©u bit x cña b¶n râ ®é
dµi 64 b»ng mét kho¸ 56 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:
x 0  IP x   L 0 R 0 , trong ®ã L 0 gåm 32 bit ®Çu vµ R 0 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:
Li  R i 1
R i  Li 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 ,  , k16 lµ c¸c x©u bit ®é dµi 48 ®îc
tÝnh nh hµm cña kho¸ k. ( trªn thùc tÕ mçi k i lµ mét phÐp chän ho¸n vÞ bit trong
k).
k1 , k 2 ,  , k16 sÏ t¹o thµnh b¶ng kho¸.
L i 1Mét
R vßng cña phÐp m· ho¸ ®îc m« t¶ trªn
i 1
h×nh 2.9.

f Ki

Li R i
53
H×nh 2.9: Mét vßng cña DES
Ch¬ng 2 - MËt m· khãa bÝ mËt

3. ¸p dông phÐp ho¸n vÞ ngîc IP 1 cho x©u bit R16 L16 , ta thu ®îc b¶n m·
y. Tøc lµ y  IP 1  R16 L16  . H·y chó ý thø tù ®· ®¶o cña L16 vµ R16 .
Hµm f cã hai biÕn vµo: biÕn thø nhÊt A lµ x©u bit ®é dµi 32, biÕn thø hai J
lµ mét x©u bit ®é dµi 48. §Çu ra cña f lµ mét x©u bit ®é dµi 32. C¸c b íc sau ®îc
thùc hiÖn:
1. BiÕn thø nhÊt A ®îc më réng thµnh mét x©u bit ®é dµi 48 theo mét
hµm më réng cè ®Þnh E. E  A  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 6 bit = B1B 2 B3
B4 B5 B6 B7 B8 .
3.Bíc tiÕp theo dïng 8 b¶ng S1 , S2 ,  , S8 ( ®îc gäi lµ c¸c hép S ). Víi mçi
Si lµ mét b¶ng 416 cè ®Þnh cã c¸c hµng lµ c¸c sè nguyªn tõ 0 ®Õn 15. Víi x©u
bit cã ®é dµi 6 (kÝ hiÖu Bi  b1b 2 b3b 4 b5 b 6 ), ta tÝnh S j  B j  nh sau: hai bit b1b 6
x¸c ®Þnh biÓu diÔn nhÞ ph©n cña hµng r cña S j  0  r  3 vµ bèn bit  b 2 b 3b 4 b 5 
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öAS j  r , c  ; phÇn tö nµy viÕt díi d¹ng
J 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 2Evµ mét x©u bit cã ®é dµi 4, cßn ®Çu ra lµ mét x©u bit cã ®é dµi
4). B»ng c¸ch t¬ng tù tÝnh c¸c C j  S j  B j , 1  j  8 .
4. X©u bit C  C1C 2  C8 cã ®é dµi 32 ®îc ho¸n vÞ theo phÐp ho¸n vÞ cè
kÕt qu¶ lµ P C  ®îc x¸c ®Þnh lµ +f  A, J  .
E(A)
®Þnh P. X©u

B1 B 2 B3 B 4 B5 B6 B7 B8

S1 S2 S3 S4 S5 S6 S7 S8

c1 c 2 c 3 c 4 c 5 c 6 c 7 c8

f(A, J)
54

H×nh 2.10: Hµm f cña DES


Ch¬ng 2 - MËt m· khãa bÝ mËt

Hµm f ®îc m« t¶ trong h×nh 2.10. 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

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  , .v.v . . .
PhÐp ho¸n vi ngîc IP 1 lµ:

IP -1
40 8 48 16 56 24 64 32
39 7 47 15 55 23 63 31
38 6 46 14 54 22 62 30
37 5 45 13 53 21 61 29
36 4 44 12 52 20 60 28
35 3 43 11 51 19 59 27
34 2 42 10 50 18 58 26
33 1 41 9 49 17 57 25

55
Ch¬ng 2 - MËt m· khãa bÝ mËt

Hµm më réng E ®îc x¸c ®inh theo b¶ng sau:

B¶ng chän E bit


32 1 2 3 4 5
4 5 6 7 8 9
8 9 10 11 12 13
12 13 14 15 16 17
16 17 18 19 20 21
20 21 22 23 24 25
24 25 26 27 28 29
28 29 30 31 32 1
T¸m hép S lµ:

S1
14 4 13 1 2 15 11 8 3 10 6 12 5 9 0 7
0 15 7 4 14 2 13 1 10 6 12 11 9 5 3 8
4 1 14 8 13 6 2 11 15 12 9 7 3 10 5 0
15 12 8 2 4 9 1 7 5 11 3 14 10 0 6 13

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

56
Ch¬ng 2 - MËt m· khãa bÝ mËt

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

S8
13 2 8 4 6 15 11 1 10 9 3 14 5 0 12 7
1 15 13 8 10 3 7 4 12 5 6 11 0 14 9 2
7 11 4 1 9 12 14 2 0 6 10 13 15 3 5 8
2 1 14 7 4 10 8 13 15 12 9 0 3 5 6 11

Vµ phÐp ho¸n vÞ P cã d¹ng:

P
16 7 20 21
29 12 28 17
1 15 23 26
5 18 31 10
32 27 3 9
19 13 30 6
22 11 4 25

Cuèi cïng, ta cÇn m« t¶ viÖc tÝnh to¸n b¶ng kho¸ tõ kho¸ k. Trªn thùc tÕ, k lµ
mét x©u bit ®é dµi 64, trong ®ã 56 bit lµ kho¸ vµ 8 bit ®Ó kiÓm tra tÝnh ch½n lÎ
nh»m ph¸t hiÖn sai. C¸c bit ë c¸c vÞ trÝ 8,16, . . ., 64 ®îc x¸c ®Þnh sao cho mçi
byte chøa mét sè lÎ c¸c sè "1". Bëi vËy, mét sai sãt ®¬n lÎ cã thÓ ph¸t hiÖn ®îc
trong mçi nhãm 8 bit. C¸c bit kiÓm tra bÞ bá qua trong qu¸ tr×nh tÝnh b¶ng kho¸.

57
Ch¬ng 2 - MËt m· khãa bÝ mËt

1. Víi mét kho¸ 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 D 0
2. Víi i thay ®æi tõ 1 ®Õn 16:
C i  LSi  C i 1 
D i  LSi  D i 1 
ViÖc tÝnh b¶ng kho¸ ®îc m« t¶ trªn h×nh 2.11

PC - 1

LS1 LS1

PC - 2 K1

LS16 LS16

PC - 2 K16

H×nh 2.11: TÝnh b¶ng kho¸ DES


C¸c ho¸n vÞ PC-1 vµ PC-2 ®îc dïng trong b¶ng kho¸ 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

PC-2

58
Ch¬ng 2 - MËt m· khãa bÝ mËt

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 kho¸ kÕt qu¶. Nh ®· nãi ë trªn, mçi vßng sö dông
mét kho¸ 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 kho¸ 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

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

59
Ch¬ng 2 - MËt m· khãa bÝ mËt

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

60
Ch¬ng 2 - MËt m· khãa bÝ mËt

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

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 nhng dïng b¶ng kho¸ theo thø tù ngîc l¹i K16,...K1. §Çu ra cña thuËt to¸n sÏ
lµ b¶n râ x.

2.9.2. Mét vÝ dô vÒ DES.


Sau ®©y lµ mét vÝ dô vÒ phÐp m· DES. Gi¶ sö ta m· b¶n râ (ë d¹ng m·
hexa- hÖ ®Õm 16):
0123456789ABCDEF
B»ng c¸ch dïng kho¸
123457799BBCDFF1
Kho¸ ë d¹ng nhÞ ph©n ( kh«ng chøa c¸c bit kiÓm tra) lµ:
00010010011010010101101111001001101101111011011111111000
Sö dông IP, ta thu ®îc L 0 vµ R 0 (ë d¹ng nhÞ ph©n) nh sau:

L0 = 11001100000000001100110011111111
L1 =R0 = 11110000101010101111000010101010

61
Ch¬ng 2 - MËt m· khãa bÝ mËt

Sau ®ã thùc hiÖn 16 vßng cña phÐp m· nh sau:

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

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

62
Ch¬ng 2 - MËt m· khãa bÝ mËt

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

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
Sbox outputs 10011010110100011000101101001111
f(R12,K13) = 11011101101110110010100100100010
L14 = R13 = 00011000110000110001010101011010

E(R13) = 000011110001011000000110100010101010101011110100
K13 = 010111110100001110110111111100101110011100111010
E(R13)  K14 = 010100000101010110110001011110000100110111001110
S-box outputs 01100100011110011001101011110001

63
Ch¬ng 2 - MËt m· khãa bÝ mËt

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

E(R15) = 001000000110101000000100000110100100000110101000
K16 = 110010110011110110001011000011100001011111110101
E(R15)  K16 = 111010110101011110001111000101000101011001011101
S-box outputs 10100111100000110010010000101001
f(R15,K16) = 11001000110000000100111110011000
R16 = 00001010010011001101100110010101

Cuèi cïng, ¸p dông IP 1 vµo L16 , R 16 ta nhËn ®îc b¶n m· hexa lµ:

85E813540F0AB405

2.9.3. Mét sè ý kiÕn th¶o luËn vÒ DES.


Khi DES ®îc ®Ò xuÊt nh mét chuÈn mËt m·, ®· cã rÊt nhiÒu ý kiÕn phª
ph¸n. Mét lý do ph¶n ®èi DES cã liªn quan ®Õn c¸c hép S. Mäi tÝnh to¸n liªn quan
®Õn DES ngo¹i trõ c¸c hép S ®Òu tuyÕn tÝnh, tøc viÖc tÝnh phÐp hoÆc lo¹i trõ
cña hai ®Çu ra còng gièng nh phÐp hoÆc lo¹i trõ cña hai ®Çu vµo råi tÝnh to¸n
®Çu ra. C¸c hép S - chøa ®ùng thµnh phÇn phi tuyÕn cña hÖ mËt lµ yÕu tè quan
trong nhÊt ®èi víi ®é mËt cña hÖ thèng (Ta ®· thÊy lµ c¸c hÖ mËt tuyÕn tÝnh -
ch¼ng h¹n nh Hill - cã thÓ dÔ dµng bÞ m· th¸m khi bÞ tÊn c«ng b»ng b¶n râ ®·
biÕt). Tuy nhiªn, tiªu chuÈn x©y dùng c¸c hép S kh«ng ®îc biÕt ®Çy ®ñ. Mét sè
ngêi ®· gîi ý lµ c¸c hép S ph¶i chøa c¸c "cöa sËp" ®îc dÊu kÝn, cho phÐp Côc An
ninh Quèc gia Mü (NSA) gi¶i m· ®îc c¸c th«ng b¸o nhng vÉn gi÷ ®îc møc ®é an
toµn cña DES. DÜ nhiªn ta kh«ng thÓ b¸c bá ®îc kh¼ng ®Þnh nµy, tuy nhiªn
kh«ng cã mét chøng cí nµo ®îc ®a ra ®Ó chøng tá r»ng trong thùc tÕ cã c¸c cöa
sËp nh vËy.
N¨m 1976 NSA ®· kh¼ng ®Þnh r»ng, c¸c tÝnh chÊt sau cña hép S lµ tiªu
chuÈn thiÕt kÕ:
- 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 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).

64
Ch¬ng 2 - MËt m· khãa bÝ mËt

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.
Sù ph¶n ®èi x¸c ®¸ng nhÊt vÒ DES chÝnh lµ kÝch thíc cña kh«ng gian kho¸:
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 kho¸ 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 kho¸ ®Òu cã thÓ ®îc kiÓm tra cho tíi khi t×m ®îc mét
kho¸ k tho¶ m·n e k  x   y . (CÇn chó ý lµ cã thÓ cã nhiÒu h¬n mét kho¸ 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 106kho¸/gi©y. Mét m¸y
cã thÓ t×m toµn bé kh«ng gian kho¸ cì 10 6 trong kho¶ng 1 ngµy. Hä íc tÝnh chi
phÝ ®Ó t¹o mét m¸y nh vËy kho¶ng 2.107$.

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 kho¸. M¸y nµy x©y dùng trªn mét chip t×m kho¸,
cã kh¶ n¨ng thùc hiÖn ®ång thêi 16 phÐp m· vµ tèc ®é tíi 5107 kho¸/gi©y. Víi
c«ng nghÖ hiÖn nay, chi phÝ chÕ t¹o kho¶ng 10,5$/chip. Gi¸ cña mét khung m¸y
chøa 5760 chip vµo kho¶ng 100.000$ vµ nh vËy nã cã kh¶ n¨ng t×m ra mét kho¸
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 106 $ sÏ gi¶m thêi gian t×m kiÕm kho¸ trung b×nh xuèng cßn 3,5 giê.
MÆc dï viÖc m« t¶ DES kh¸ dµi dßng song ngêi ta cã thÓ thùc hiÖn DES rÊt
h÷u hiÖu b»ng c¶ phÇn cøng lÉn phÇn mÒm. C¸c phÐp to¸n duy nhÊt cÇn ®îc
thùc hiÖn lµ phÐp hoÆc lo¹i trõ c¸c x©u bit. Hµm më réng E, c¸c hép S, c¸c ho¸n
vÞ IP vµ P vµ viÖc tÝnh to¸n c¸c gi¸ tri K1 ,  , K16 ®Ò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.

65
Ch¬ng 2 - MËt m· khãa bÝ mËt

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
nhÞp cã tèc ®é 250MHz. Gi¸ cña chip nµy vµo kho¶ng 300$. 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 Uû 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1012 USA/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.

2.9.4. C¸c chÕ ®é ho¹t ®éng cña DES


Cã 4 chÕ ®é lµm viÖc ®· ®îc ph¸t triÓn cho DES: ChÕ ®é quyÓn m· ®iÖn
tö (ECB), chÕ ®é ph¶n håi m· (CFB), chÕ ®é liªn kÕt khèi m· (CBC) vµ chÕ ®é
ph¶n håi ®Çu ra (OFB). ChÕ ®é ECB t¬ng øng víi c¸ch dïng th«ng thêng cña m·
khèi: víi mét d·y c¸c khèi b¶n râ cho tríc x1 , x 2 ,  ( mçi khèi cã 64 bit), mçi x i sÏ
®îc m· ho¸ b»ng cïng mét kho¸ k ®Ó t¹o thµnh mét chuçi c¸c khèi b¶n m·
y1 , y 2 ,  theo quy t¾c y i  e k  y i 1  x i  , i  1 . ViÖc sö dông chÕ ®é CBC ®îc
m« t¶ trªn h×nh 2.12.
Trong c¸c chÕ ®é OFB vµ CFB dßng kho¸ ®î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ßngxkho¸ 1 ®îc t¹o bëix viÖc
2 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 kho¸ z1 , z 2 ,  theo quy t¾c
z i  e k  z i 1IV
 , i 1 .yD·y b¶n râ x1+, x 2 ,  sau ®ã+sÏ ®îc m· ho¸ b»ng c¸ch tÝnh
0
yi  x i  z i , i  1 .
M· ho¸
(Encrypt)
ek ek

y1 y2

y1 y2

dk dk

IV  y 0 + +

Gi¶i m·
(Decrypt) x1 x2
66
H×nh 2.12: ChÕ ®é
Ch¬ng 2 - MËt m· khãa bÝ mËt

x1 x2

IV  y 0 ek + ek +

M· ho¸
(Encrypt)
y1 y2

y1 y2

IV  y 0 ek + ek +

M· ho¸
(Encrypt)
x1 x2

H×nh 2.13: ChÕ ®é


CFB

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 kho¸ b»ng c¸ch m· ho¸ khèi b¶n m· tríc ®ã. Tøc
z i  e k  yi 1  , i  1 . Còng nh trong chÕ ®é OFB: yi  x i  z i , i  1 . ViÖc sö dông
CFB ®îc m« t¶ trªn h×nh 2.13 (chó ý r»ng hµm m· DES e k ®îc dïng cho c¶ phÐp
m· vµ phÐp gi¶i m· ë c¸c chÕ ®é CFB vµ OFB).
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.

67
Ch¬ng 2 - MËt m· khãa bÝ mËt

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, nhng 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· khi truyÒn vÖ tinh.
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 (nhng tÊt nhiªn
lµ MAC kh«ng ®¶m b¶o ®é mËt).
Ta sÏ m« t¶ c¸ch sö dông chÕ ®é CBC ®Ó 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 ,  , y n theo kho¸ K. Cuèi cïng ta x¸c ®Þnh MAC lµ y n . Alice sÏ ph¸t ®i
d·y c¸c khèi b¶n râ x1 ,  , x n cïng víi MAC. Khi Bob thu ®îc x1. . .xn anh ta sÏ
kh«i phôc l¹i y1 ,  , y n b»ng kho¸ 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
kho¸ 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 ,  , 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 kho¸ K1 ®Ó t¹o MAC cho x1 ,  , x n .
Sau ®ã Alice x¸c ®Þnh x n 1 lµ MAC råi m· ho¸ d·y x1 ,  , x n 1 b»ng kho¸ thø
hai K2 ®Ó t¹o ra b¶n m· y1 ,  , y n 1 . Khi Bob thu ®îc y1 ,  , y n 1 , tríc tiªn Bob
sÏ gi¶i m· (b»ng K 2 ) vµ kiÓm tra xem x n 1 cã ph¶i lµ MAC ®èi víi d·y

DESK1   DESK 2  
x1 , M, x n dïng K1 hay kh«ng. C
Ngîc
B¶n râ l¹i, Alice cã thÓ dïng K1 ®Ó m· ho¸ 1x ,  , x n vµ t¹o raB¶n y1 ,  , y n ,
®îcm·
sau ®ã dïng K 2 ®Ó t¹o MAC y n 1 ®èi víi d·y y1 ,  , y n . Bob sÏ dïng K 2 ®Ó
x¸c minh MAC vµ dïng KK11 ®Ó gi¶i m· y1,  , y n . K 2
a. M· hãa DES béi hai
2.9.5. Mét sè biÕn thÓ cña DES

DES K11  
2.9.5.1 DES béi hai (Double DES).

DES K12  
C M
S¬ ®å DES béi hai cho trªn H.
B¶n m· B¶n râ

K2 K1
68 b. Gi¶i m· DES béi hai

H×nh 2.14: M· hãa vµ gi¶i m· DES béi hai


Ch¬ng 2 - MËt m· khãa bÝ mËt

M· hãa: C  DESK 2  DESK1  M  



Gi¶i m·: M  DESK1 DESK 2  C 
1 1

MÆc dï cã 2 56 sù lùa chän cho khãa K1 vµ 2 56 sù lùa chän ®èi víi khãa K 2
. §iÒu nµy dÉn tíi cã 2112 sù lùa chän cho cÆp khãa  K1 , K 2  nhng søc m¹nh cña
DES béi hai kh«ng lín tíi møc nh vËy.

2.9.5.2. DES béi ba (Triple DES – TDES)


DES béi hai cã thÓ bÞ tÊn c«ng b»ng c¸ch th¸m m· tõ hai phÝa theo ®Ò xuÊt
cña Diffie – Hellman. §Ó kh¾c phôc yÕu ®iÓm nµy ngêi ta ®· x©y dùng TDES

DESK1     DESK1  
víi hai khãa K1 vµ K 2 nh sau:
1 C
M
B¶n râ
DESK1 B¶n m·

K
M· hãa: C  DESK1
1
DESK12 
 DES  M  K
K1 K1
2
 
Gi¶i m·: M  DESK1 DESK 2 DESK1  C 
1 1

a. M· hãa TDES víi hai khãa

C
B¶n m·
DESK11   DESK 2   DESK1 
1
 M
B¶n râ

K1 K2 K1
b. Gi¶i m· TDES víi hai khãa 69
H×nh 2.15: M· hãa vµ gi¶i m· TDES víi hai khãa
Ch¬ng 2 - MËt m· khãa bÝ mËt

Víi TDES viÖc t×m kiÕm vÐt c¹n yªu cÇu kho¶ng 2112  5,1923.1033 phÐp
tÝnh TDES, bëi vËy trªn thùc tÕ khã cã thÓ th¸m m· thµnh c«ng.

2.9.5.3. DES víi c¸c khãa con ®éc lËp.


Cã thÓ sö dông DES víi 16 khãa con ®éc lËp ®Ó t¨ng ®é mËt. NÕu 16
vÐct¬ 48 bÝt ®îc dïng cho c¸c vßng m· hãa cña DES th× ngêi ta ph¶i t¹o mét khãa
k cã ®é dµi 768 bÝt. C¸ch tÊn c«ng t×m kiÕm vÐt c¹n yªu cÇu t×m kiÕm trong
kh«ng gian khãa cã kÝch thíc 2768 . C¸ch tÊn c«ng tõ hai phÝa cã thÓ gi¶m kh«ng
gian t×m kiÕm xuèng 2 384 , gi¸ trÞ nµy vÉn cßn rÊt lín trong thùc tÕ. Tuy nhiªn
b»ng c¸ch sö dông th¸m m· vi sai hÖ mËt nµy cã thÓ bÞ ph¸ víi 261 b¶n râ ®îc
chän.

2.9.5.4. DES tæng qu¸t (Generalize DES - GDES).


Vµo n¨m 1981 Johanmuller – Bilch ®· ®a ra GDES nh»m t¨ng tèc ®é m· hãa.
ThuËt to¸n GDES ®îc m« t¶ trªn H. 2.15
Thay cho viÖc sö dông c¸c khèi th«ng b¸o 64 bÝt trong DES, GDES chia
th«ng b¸o thµnh q khèi 32 bÝt. Gi¶ sö m lµ th«ng b¸o ®îc dïng ®Ó m· hãa b»ng
GDES.

Trong ®ã M i  mi1 , mi 2 , ... mi32


ë vßng lÆp ®Çu tiªn GDES sÏ m· hãa khèi con 32 bÝt cuèi cïng:
 
B0q  M q  m q1 , m q 2 , ... m q 32

70
Ch¬ng 2 - MËt m· khãa bÝ mËt

b»ng 1 khãa con 48 bÝt K 1



f B0 , K1  S K1  E B0q 
 q
   
  q
Trong ®ã S K1  E B0   biÓu thÞ phÐp thay thÕ trªn vÐct¬ 48 bÝt

K1  E B0   .
q

 q
 
VÐct¬ 32 bÝt kÕt qu¶ f B0 , K1 sau ®ã ®îc céng mod 2 theo tõng bÝt víi
c¸c néi dung cña  q  1 thanh ghi 32 bÝt cßn l¹i:

B1 2   f B0q  , K1  B01 
B   f  B
1
3
0
q 
, K   B
1 0
2

….. 
B1
 q 1
 q
 f B0 , K1  B0   q 2

 q
B1  f B0 , K1  B0 q
  q 1
….
 q
C¸c néi dung tríc ®ã cña thanh ghi B0 sÏ ®îc lu vµo thanh ghi tËn cïng bªn
tr¸i B11  B0q 

f B0q , K1
 

…. ….

….

  
….

   
f B nq1 , K n 
….

….

….. H×nh 2.13: ChÕ ®é


CFB

B¶n m· GDES
71
H×nh 2.15: ThuËt to¸n m· hãa GDES
Ch¬ng 2 - MËt m· khãa bÝ mËt

2.10. Th¸m m· vi sai vµ th¸m m· tuyÕn tÝnh.


Ph¬ng ph¸p th¸m m· truyÒn thèng ®èi víi c¸c mËt m· khèi (ch¼ng h¹n DES)
víi b¶n râ ®· biÕt lµ t×m kiÕm, vÐt c¹n trªn toµn bé kh«ng gian khãa. Tuy nhiªn
ph¬ng ph¸p tÊn c«ng tæng lùc nµy kh«ng thÓ ¸p dông ®îc víi DES béi ®«i vµ DES
béi ba. C¸c ph¬ng ph¸p tÊn c«ng tinh tÕ h¬n ®· ®îc ®Ò xuÊt trong nh÷ng n¨m
gÇn ®©y nh»m lµm gi¶m ®é phøc t¹p tÝnh to¸n cho th¸m m·. Sau ®©y lµ 2 ph-
¬ng ph¸p quan träng nhÊt.

2.10.1. Th¸m m· vi sai (th¸m m· dùa trªn sù kh¸c biÖt).


Th¸m m· vi sai ®îc ®Ò xuÊt tõ 1990 ®Ó th¸m c¸c mËt m· khèi nh PES,
LUCIFER …
Th¸m m· vi sai xoay quanh viÖc ph©n tÝch ph©n bè cña sù kh¸c biÖt (céng
mod 2 theo tõng bÝt) gi÷a hai b¶n râ X1 vµ X 2 vµ hai b¶n m· Y1 vµ Y2 .
ë ®©y c¸c b¶n râ X1 vµ X 2 lµ c¸c néi dung 32 bÝt cña thanh ghi dÞch ph¶i
tríc phÐp ho¸n vÞ më réng E(X) trong 1 vßng DES. Hai b¶n m· Y1 vµ Y2 ®Çu ra
32 bÝt tõ phÐp ho¸n vÞ P(C) sau c¸c hép thay thÕ.

72
Ch¬ng 2 - MËt m· khãa bÝ mËt

H×nh 2.16 m« t¶ mét vßng DES. Gi¶ sö X lµ hiÖu cña hai b¶n râ ®· biÕt
X1 vµ X 2 :
X  X1  X 2

ë ®©y X1  X 2 biÓu thÞ phÐp céng mod 2 theo tõng bÝt cña hai vÐct¬ b¶n
râ. Trong c¸ch tÊn c«ng b¶n râ cã lùa chän, hai b¶n râ X1 vµ X 2 ®îc chän sao cho
cã X mong muèn.
V× X  X1  X 2 vµ A  E X  ®¬n gi¶n lµ mét phÐp ho¸n vÞ më réng cña
c¸c bÝt cña b¶n râ A nªn ta còng biÕt ®îc A .
A  A  A
Thanh ghi dÞch
1 ph¶i
2
A  E  X1   E  X 2 
A  E  X 
X
ë mçi vßng cña DES, khãa con 48 bÝt K i ®îc céng vµo vÐct¬ A 48 bÝt ë
Ho¸n
®Çu ra cña hép ho¸n vÞvÞ
mëmë réng
réng:
B1  A1  K i
B2  A 2  K i
K
i cha biÕt. Tuy nhiªn ta l¹i biÕt ®îc
V× K i lµ cha biÕt nªn B1 vµ B 2 còng
hiÖu cña chóng:
B  B  B
Bé céng modulo
1 2
-2 Ho¸n vÞ lùa chän PC 2
B   A1  K i    A 2  K i 
víi ë vßng lÆp thø i
B  A1  A 2
ë vßng lÆp thø i
B  A
B  E X 

Bëi vËy b»ng c¸ch chän X1 vµ X 2 (t¬ng øng lµ X ) ta cã thÓ t×m ®îc c¸c
®Çu vµo cña 8 hép thay thÕ ngay c¶ khi kh«ng biÕt khãa con.
B
S1S2S3S4S5S6S7S8 8 hép thay thÕ

C
Ho¸n vÞ

Y
L
Bé céng modulo - 2
Thanh ghi dÞch tr¸i
víi

X' 73
H×nh 2.16: Th¸m m· vi sai cña mét vßng DES
Ch¬ng 2 - MËt m· khãa bÝ mËt

Tõ c¸c b¶n m· ®· biÕt Y1 vµ Y2 thu ®îc tõ viÖc m· hãa c¸c b¶n râ X1 vµ


X2 ta còng x¸c ®Þnh ®îc hiÖu Y cña chóng:
Y  Y1  Y2

C¶ hai vÐct¬ Y1 vµ Y2 ®Òu lµ c¸c ho¸n vÞ cña c¸c ®Çu ra 32 bÝt C1 vµ


C2 cña c¸c hép thay thÕ.
Y1  P C1 
Y2  P C 2 

Ta cã thÓ biÓu thÞ c¸c ®Çu ra C1 vµ C 2 cña c¸c hép thay thÕ nh c¸c hµm
cña Y1 vµ Y2 :
C1  P 1  Y1 
C 2  P 1  Y2 

Nh vËy sù kh¸c biÖt ë ®Çu ra cña c¸c hép thay thÕ C lµ:
C  C1  C 2
  
C  P 1  Y1   P 1  Y2  
C  P 1  Y 

74
Ch¬ng 2 - MËt m· khãa bÝ mËt

Th¸m m· vi sai sÏ so s¸nh ph©n bè cña X ®èi víi c¸c cÆp b¶n râ X1 vµ
X2 víi ph©n bè cña Y ®èi víi c¸c cÆp b¶n m· Y1 vµ Y2 t¬ng øng. Trong c¸ch
tÊn c«ng víi cÆp râ - m· ®îc chän, b¶n râ ®îc chän sao cho t¹o ®îc X mong
muèn. Cã mét thùc tÕ lµ c¸c sai kh¸c cña b¶n râ X vµ c¸c sai kh¸c cña b¶n m·
Y lµ kh«ng nh nhau. Mét sè sai kh¸c trong c¸c cÆp b¶n râ cã x¸c suÊt g©y nªn sù
kh¸c biÖt trong c¸c cÆp b¶n m· lín h¬n.
Víi mçi bé 8 hép thay thÕ cña DES ta cã thÓ t¹o nªn mét b¶ng cho mèi quan
hÖ gi÷a X vµ Y (Xem b¶ng 2.1)
p ij trong b¶ng biÓu thÞ sè c¸c trêng hîp mµ X i t¹o nªn Yj

Y1  Y j 
X1 p11  p1 j 
    
X i p i1  p ij 
    
B¶ng 2.1
Biham vµ Shamin ®· tr×nh diÔn mét th¸m m· DES16 vßng dïng 2 47 cÆp râ -
m· ®îc chän hoÆc 255 cÆp râ - m· ®· biÕt víi 237 phÐp to¸n DES. §iÒu nµy
chøng tá r»ng c¸c th¸m m· nµy víi DES còng cha ®îc hiÖu qu¶.

2.10.2. Th¸m m· tuyÕn tÝnh (TMTT).


ý tëng c¬ b¶n cña ph¬ng ph¸p nµy lµ cè g¾ng biÓu thÞ (xÊp xØ) mét vßng
cña DES b»ng mét phÐp biÕn ®æi tuyÕn tÝnh. H×nh 2.17 biÓu thÞ c¸ch mµ th¸m
m· tuyÕn tÝnh cã thÓ dïng trªn mét vßng cña DES.
Trong c¸ch tÊn c«ng víi b¶n râ ®· biÕt ta biÕt ®îc b¶n râ M vµ b¶n m· C t¬ng
øng. V× ®Çu ra IP(M) sau phÐp ho¸n vÞ ban ®Çu ®· biÕt nªn ta còng biÕt ®îc néi
dung cña c¸c thanh ghi dÞch tr¸i vµ ph¶i.
Gi¶ sö X  x1 , x 2 , ... x 32 lµ néi dung cña thanh ghi dÞch ph¶i. 32 bÝt nµy sÏ
qua mét phÐp ho¸n vÞ më réng A  E X  : vÐct¬ 48 bÝt kÕt qu¶ A  a1, a 2 , ... a 48
sÏ ®îc céng mod 2 theo tõng bÝt víi khãa con 48 bÝt K i  k i1 , k i 2 , ... k i 48 ë vßng
lÆp thø i lÊy ra tõ phÐp biÕn ®æi ho¸n vÞ lùa chän PC 2.
VÐct¬ 48 bÝt B  b1 , b 2 , ... b 48 sÏ ®îc ®a qua 8 hép thay thÕ Sk  k 1,,48 . ë
®ã mçi vÐct¬ vµo 6 bÝt  b1, b 2 , b3 , b 4 , b5 , b 6  sÏ ®îc thay thÕ b»ng mét vÐct¬ ra
4 bÝt  c1 , c 2 , c3 , c 4  . VÐct¬ 32 bÝt C  c1 , c 2 , ... c32 l¹i ®îc biÕn ®æi qua mét
phÐp ho¸n vÞ P vµ vÐct¬ 32 bÝt.
Y  y1 , y 2 , ... y32 sÏ ®îc céng víi néi dung cña thanh ghi dÞch tr¸i. Thanh ghi
dÞch ph¶i ®îc cËp nhËt b»ng vÐct¬ 32 bÝt kÕt qu¶ nµy.

75
Ch¬ng 2 - MËt m· khãa bÝ mËt

Y  P C 
CP
1
 Y
Tõ h×nh 2.17 ta thÊy r»ng nÕu biÕt ®Çu vµo X (b¶n râ sau phÐp ho¸n vÞ
ban ®Çu IP) th× ®Çu ra cña phÐp ho¸n vÞ më réng A  E X  còng ®· biÕt. Tuy
nhiªn v× khãa con K i  k ij víi j  1, 2, ... 48 ë vßng lÆp thø i (ta cã thÓ b¾t ®Çu
víi i = 1) lµ cha biÕt nªn ta kh«ng thÓ x¸c ®Þnh ®îc tæng ë ®Çu ra cña c¸c bé céng
moduo 2: b j  a i  k ij víi 1  j  48 .

C¸c bÝt ë ®Çu ra c¸c bé céng   b  j  1, 2, ... 48 lµ c¸c bÝt vµo cña 8 hép
j

thay thÕ Sk . Thanh ghi dÞch ph¶i


B©y giê ta quay trë l¹i néi dung cña thanh ghi dÞch tr¸i L vµ néi dung tríc ®ã
x x
cña thanh thanh ghi dÞch ph¶i X ' (trªn thùc tÕ: Thanh ghi dÞch t¹m thêi TEMP 32
1 32
tõ vßng lÆp tríc cña DES), ta cã thÓ x¸c ®Þnh ®îc vÐct¬ 32 bÝt Y. V× Y lµ kÕt
qu¶ cña phÐp ho¸nHo¸n vÞ më P
vÞ chuÈn réng
cña ®Çu ra tõ c¸c hép thay thÕ:
C  P 1  Y  a 48

a1 k i, j

Bé céng modulo - 2 Ho¸n vÞ lùa chän PC 2


víi ë vßng lÆp thø i
ë vßng lÆp thø i

b1
S1S2S3S4S5S6S7S8 8 hép thay thÕ
c1 c 32
Ho¸n vÞ

y1 y 32
l1
Bé céng modulo - 2
Thanh ghi dÞch tr¸i
víi

x1
' ' l 32
76
x 32
H×nh 2.17: Th¸m m· tuyÕn tÝnh cña mét vßng
Ch¬ng 2 - MËt m· khãa bÝ mËt

VÐct¬ 32 bÝt C  c1 , c 2 , ... c32 ë ®Çu ra cña c¸c hép thay thÕ còng ®îc x¸c
®Þnh.
C¸c hép thay thÕ Sk  k 1,,48 ph¶i ngÉu nhiªn vµ kh«ng chÖch. Víi mét ®Çu
vµo 6 bÝt bÊt kú b1 , b 2 , b3 , b 4 , b5 vµ b6 , c¸c bÝt ra ph¶i cã ph©n bè chuÈn ®Òu.
B©y giê b»ng cÊu t¹o cña b¶ng cña tÊt c¶ 64 vÐct¬ vµo cña mçi hép thay thÕ, mçi
bÝt vµo bi  0 ë mét nöa sè lÇn vµ b i  1 ë mét nöa sè lÇn kh¸c. Nãi mét c¸ch
1
kh¸c, ta cã thÓ nãi r»ng mçi mét bÝt vµo (trong 6 bÝt) b»ng 0 víi x¸c suÊt p 
2
1
vµ mçi mét bÝt ra (trong 4 bÝt) b»ng 0 víi x¸c suÊt p  .
2
Tuy nhiªn ta cã thÓ suy ra ®Çu vµo cña mét hép thay thÕ nÕu cã thÓ khai
th¸c ®îc mèi quan hÖ gi÷a c¸c ®Çu vµo vµ c¸c ®Çu ra cña nã. Ch¼ng h¹n nÕu ta
quan s¸t 4 bÝt c1 , c 2 , c3 vµ c 4 ë ®Çu ra cña mét hép thay thÕ Sk vµ céng chóng
víi nhau theo modulo 2 th× ®èi víi 64 vÐct¬ vµo kh¸c nhau b1 , ..., b 6 , kÕt qu¶ sÏ
lµ c1  c 2  c3  c 4  0 víi mét nöa sè trêng hîp (32 trêng hîp) vµ
c1  c 2  c3  c 4  1 víi mét nöa sè trêng hîp cßn l¹i. (Mçi mét gi¸ trÞ trong 16
vÐct¬ ra sÏ xuÊt hiÖn 4 lÇn trong b¶ng thay thÕ).
Ta cã thÓ thÊy r»ng quan hÖ vµo – ra cña c¸c hép thay thÕ kh«ng hoµn toµn
kh«ng chÖch. Ch¼ng h¹n, hép thay thÕ S5 lµ chÖch nhÊt trong c¸c hép thay thÕ
vµ ta cã thÓ khai th¸c nã ®Ó suy ra khãa. B¶ng 2.2 chØ ra quan hÖ gi÷a 6 bÝt vµo
b 25 , b 26 , b 27 , b 28 , b 29 vµ b30 vµ 4 bÝt ra c17 , c18 , c19 vµ c 20 trong hép thay thÕ
S5 . Tõ b¶ng 2.2 ta cã thÓ thÊy r»ng ngay c¶ khi bÝt vµo b 26  0 trong mét nöa sè
1
trêng hîp (tøc lµ víi x¸c suÊt p  ) vµ tæng c1  c 2  c3  c 4  0
2

77
Ch¬ng 2 - MËt m· khãa bÝ mËt

1
Víi x¸c suÊt p  th× ph¬ng tr×nh sau:
2
b 26  c1  c 2  c 3  c 4
12 3
chØ ®óng cã 12 lÇn trong sè 62 lÇn (®óng víi x¸c suÊt p   ) 12 tr-
64 16
êng hîp nµy ®îc chØ ra ë cét kiÓm tra trong b¶ng 2.2.

6 bÝt vµo 4 bÝt ra


b1 b2 b3 b4 b5 b6 Ra c1 c2 c3 c4 KiÓm tra
b 25 b 26 b 27 b 28 b 29 b 30 c17 c18 c19 c 20
0 0 0 0 0 0 2 0 0 1 0
0 0 0 0 0 1 14 1 1 1 0
0 0 0 0 1 0 12 1 1 0 0 b 26  c1  c 2  c 3  c 4
0 0 0 0 1 1 11 1 0 1 1
0 0 0 1 0 0 4 0 1 0 0
0 0 0 1 0 1 2 0 0 1 0
0 0 0 1 1 0 1 0 0 0 1
0 0 0 1 1 1 12 1 1 0 0 b 26  c1  c 2  c 3  c 4
0 0 1 0 0 0 7 0 1 1 1
0 0 1 0 0 1 4 0 1 0 0
0 0 1 0 1 0 10 1 0 1 0 b 26  c1  c 2  c 3  c 4
0 0 1 0 1 1 7 0 1 1 1
0 0 1 1 0 0 11 1 0 1 1
0 0 1 1 0 1 13 1 1 0 1
0 0 1 1 1 0 6 0 1 1 0 b 26  c1  c 2  c 3  c 4
0 0 1 1 1 1 1 0 0 0 1
0 1 0 0 0 0 8 1 0 0 0 b 26  c1  c 2  c 3  c 4
0 1 0 0 0 1 5 0 1 0 1
0 1 0 0 1 0 5 0 1 0 1
0 1 0 0 1 1 0 0 0 0 0
0 1 0 1 0 0 3 0 0 1 1
0 1 0 1 0 1 15 1 1 1 1
0 1 0 1 1 0 15 1 1 1 1
0 1 0 1 1 1 10 1 0 1 0
0 1 1 0 0 0 13 1 1 0 1 b 26  c1  c 2  c 3  c 4
0 1 1 0 0 1 3 0 0 1 1
0 1 1 0 1 0 0 0 0 0 0
0 1 1 0 1 1 9 1 0 0 1
0 1 1 1 0 0 14 1 1 1 0 b 26  c1  c 2  c 3  c 4
0 1 1 1 0 1 8 1 0 0 0 b 26  c1  c 2  c 3  c 4
0 1 1 1 1 0 9 1 0 0 1
0 1 1 1 1 1 6 0 1 1 0

78
Ch¬ng 2 - MËt m· khãa bÝ mËt

B¶ng 2.2: Quan hÖ vµo ra trong hép thay thÕ S5 (b¾t ®Çu)

6 bÝt vµo 4 bÝt ra


b1 b2 b3 b4 b5 b6 Ra c1 c2 c3 c4 KiÓm tra
b 25 b 26 b 27 b 28 b 29 b 30 c17 c18 c19 c 20
1 0 0 0 0 0 4 0 1 0 0
1 0 0 0 0 1 11 1 0 1 1
1 0 0 0 1 0 2 0 0 1 0
1 0 0 0 1 1 8 1 0 0 0
1 0 0 1 0 0 1 0 0 0 1
1 0 0 1 0 1 12 1 1 0 0 b 26  c1  c 2  c 3  c 4
1 0 0 1 1 0 11 1 0 1 1
1 0 0 1 1 1 7 0 1 1 1
1 0 1 0 0 0 10 1 0 1 0 b 26  c1  c 2  c 3  c 4
1 0 1 0 0 1 1 0 0 0 1
1 0 1 0 1 0 13 1 1 0 1
1 0 1 0 1 1 14 1 1 1 0
1 0 1 1 0 0 7 0 1 1 1
1 0 1 1 0 1 2 0 0 1 0
1 0 1 1 1 0 8 1 0 0 0
1 0 1 1 1 1 13 1 1 0 1
1 1 0 0 0 0 15 1 1 1 1
1 1 0 0 0 1 6 0 1 1 0
1 1 0 0 1 0 9 1 0 0 1
1 1 0 0 1 1 15 1 1 1 1
1 1 0 1 0 0 12 1 1 0 0
1 1 0 1 0 1 0 0 0 0 0
1 1 0 1 1 0 5 0 1 0 1
1 1 0 1 1 1 9 1 0 0 1
1 1 1 0 0 0 6 0 1 1 0
1 1 1 0 0 1 10 1 0 1 0
1 1 1 0 1 0 3 0 0 1 1
1 1 1 0 1 1 4 0 1 0 0 b 26  c1  c 2  c 3  c 4
1 1 1 1 0 0 0 0 0 0 0
1 1 1 1 0 1 5 0 1 0 1
1 1 1 1 1 0 14 1 1 1 0 b 26  c1  c 2  c 3  c 4
1 1 1 1 1 1 3 0 0 1 1

B¶ng 2.3: Quan hÖ vµo ra trong hép thay thÕ S5 (kÕt thóc)

79
Ch¬ng 2 - MËt m· khãa bÝ mËt

3
Ta cã thÓ thÊy r»ng x¸c suÊt ®Ó cã b 26  c1  c 2  c 3  c 4 lµ sÏ ®îc dïng
16
3
®Ó trî gióp cho viÖc ph¸ DES. Khi ®ã víi x¸c suÊt p 
16
b 26  c1  c 2  c 3  c 4
a 26  k i 26  c1  c 2  c 3  c 4

Nhng v× A  E X  nªn a 26  x17 .


T¬ng tù viÖc biÕt ¸nh x¹ cña hµm ho¸n vÞ chuÈn Y  P C  gióp ta cã thÓ
thay c17 , c18 , c19 vµ c 20 b»ng c¸c gi¸ trÞ cña b¶n m· ®· biÕt y 3 , y 8 , y14 vµ y 25 .
3
Bëi vËy, víi x¸c suÊt p 
16
k i 26  a 26  c1  c 2  c 3  c 4
k i 26  a 26  c17  c18  c19  c 20
k i 26  x17  y 3  y 8  y14  y 25

V× cÆp b¶n râ X vµ b¶n m· Y ë mét vßng ®· biÕt nªn ®iÒu nµy cung cÊp
chøng cø ®Ó coi bÝt k i 26 lµ phÇn bï cña x17  y3  y8  y14  y 25 .
Ph©n tÝch mét vßng nµy sÏ ®îc tæng qu¸ hãa lªn cho 16 vßng cña DES. §iÒu
nµy cã thÓ thùc hiÖn ®îc v× c¸c néi dung cña thanh ghi ph¶i ë vßng lÆp thø hai lµ
mét hµm cña c¸c kÕt qu¶ ë vßng lÆp thø nhÊt.
Th¸m m· tuyÕn tÝnh ®èi víi DES vÉn cßn khã kh¶ thi v× nã cÇn tíi 2 47 cÆp
râ - m· ®· biÕt ®Ó t×m mét bÝt khãa riªng lÎ. BÝt khãa thø hai cã thÓ t×m ®îc.
Ngêi ta ®· chØ ra r»ng sö dông phÐp xÊp xØ tuyÕn tÝnh cho DES 14 vßng
vµ ®¸nh gi¸ (ph¸n ®o¸n) 6 bÝt khãa con k i 25 , k i 26 , k i 27 , k i 28 , k i 29 vµ k i 30 theo 6
bÝt vµo cña hép thay thÕ S5 cho c¸c vßng 2 vµ 14, ®iÒu nµy t¬ng ®¬ng víi viÖc
thùc hiÖn 212 phÐp ph©n tÝch tuyÕn tÝnh song song vµ sÏ t¹o ra 26 bÝt khãa.
§iÒu nµy sÏ lµm gi¶m kh«ng gian khãa cÇn t×m kiÕm tõ 2 56 (khi t×m kiÕm vÐt
c¹n) xuèng cßn 230  1.073.741.824 .

2.11. ChuÈn m· d÷ liÖu tiªn tiÕn (AES)

Vµo 1997, ViÖn tiªu chuÈn vµ c«ng nghÖ quèc gia (NIST) Cña Mü ®· ph¸t
®éng cuéc thi nh»m x©y dùng mét chuÈn m· d÷ liÖu míi thay thÕ cho chuÈn m·
d÷ liÖu cò DES ®· ®îc ®a ra n¨m 1974. Qua qu¸ tr×nh tuyÓn chän vµo th¸ng 10
n¨m 2000, NIST ®· c«ng bè chuÈn m· d÷ liÖu míi ®îc lùa chän lµ thuËt to¸n
Rijndael. §©y lµ mét mËt m· khèi ®èi xøng víi ba kÝch thíc khãa cã thÓ lùa chän
(128 bÝt, 192 bÝt vµ 256 bÝt). Sau ®©y ta sÏ m« t¶ thuËt to¸n AES nµy.

2.11.1. C¬ së to¸n häc cña AES

80
Ch¬ng 2 - MËt m· khãa bÝ mËt

Trong AES c¸c phÐp to¸n céng vµ nh©n ®îc thùc hiÖn trªn c¸c byte trong trêng
8
 
h÷u h¹n GF 2 .

PhÐp céng:
PhÐp céng gi÷a hai phÇn tö (c¸c byte) trong trêng h÷u h¹n ®îc thùc hiÖn b»ng
c¸ch céng theo mo®ulo 2 c¸c bÝt t¬ng øng trong biÓu diÔn cña c¸c byte nµy. PhÐp
céng c¸c byte A vµ B víi:
A   a1 a 2 a3 a4 a5 a 6 a7 a8 
B   b1 b 2 b3 b4 b5 b6 b7 b8 

lµ C  A  B víi C   c1 c2 c3 c 4 c5 c 6 c7 c8 

trong ®ã Ci  a i  bi mod 2 víi i  1,8


C¸c phÇn tö cña trêng h÷u h¹n cßn cã thÓ ®îc biÓu diÔn díi d¹ng ®a thøc. VÝ
dô tæng cña A  73H vµ B  4E H (viÕt díi d¹ng c¬ sè 16 - hexa) lµ:
73H  4E H  3D H
ViÕt díi d¹ng nhÞ ph©n:
01110011  01001110  00111101
ViÕt díi d¹ng ®a thøc:

 x6  x5  x 4  x  1   x 6  x3  x 2  x    x5  x 4  x3  x 2  1
PhÐp nhËn:
8
 
PhÐp nh©n ®îc thùc hiÖn trªn GF 2 b»ng c¸ch nh©n hai ®a thøc rót gän

theo mo®ulo cña mét ®a thøc bÊt kh¶ quy m  x  .

Trong AES ®a thøc bÊt kh¶ quy nµy lµ m  x   x 8  x 4  x 3  x  1

VÝ dô: A  C3H , B  85H t¬ng øng víi:

a  x   x 7  x 6  x  1 vµ b  x   x 7  x 2  1
Khi ®ã C = A.B

81
Ch¬ng 2 - MËt m· khãa bÝ mËt


c  x   a  x  .b  x  mod x 8  x 4  x 3  x  1
c  x   x 7  x5  x3  x 2  x

hay C  AE H  10101110

2.11.2. ThuËt to¸n AES.


AES m· hãa mét khèi b¶n râ M 128 bÝt thµnh mét khèi b¶n m· C 128 bÝt b»ng
c¸ch dïng mét khãa m· K cã ®é dµi 128 bÝt (hoÆc 192 hoÆc 256 bÝt) t¬ng øng
víi AES  128 (hoÆc AES  192 hoÆc AES  256 ). ThuËt to¸n thùc hiÖn trªn
c¸c byte vµ kÝch thíc khèi ®èi víi ®Çu vµo ®Çu ra vµ khãa ®îc biÓu thÞ b»ng c¸c
tõ 32 bÝt (4 byte).
AES sÏ thùc hiÖn mét sè vßng m· hãa N r phô thuéc vµo ®é dµi khãa ®îc sö
dông (Xem b¶ng 2.4)
§é dµi ®Çu vµo/®Çu
ThuËt to¸n AES §é dµi khãa N k Sè vßng N r
ra
AES  128 4 tõ 4 tõ 10 vßng
AES  192 4 tõ 6 tõ 12 vßng
AES  256 4 tõ 8 tõ 14 vßng

B¶ng 2.4: Sè c¸c vßng m· hãa cña AES


M· hãa AES:
Mâi vßng gåm 4 phÐp biÕn ®æi mËt m· theo byte
- Thay thÕ byte
- DÞch c¸c hµng cña m¶ng tr¹ng th¸i (State Array)
- Trén d÷ liÖu trong mét cét cña State Array
- Céng khãa vßng vµo State Array

PhÐp thay thÕ byte: SubBytes( )


PhÐp biÕn ®æi AES ®Çu tiªn lµ mét phÐp thay thÕ byte phi tuyÕn gäi lµ
phÐp biÕn ®æi SubBytes( ), nã ho¹t ®éng ®éc lËp trªn mçi byte. Tríc tiªn nã sÏ
8
 
tÝnh nghÞch ®¶o cña phÐp nh©n trong GF 2 , sau ®ã sö dông mét phÐp biÕn

®æi afin trªn nghÞch ®¶o nµy.

82
Ch¬ng 2 - MËt m· khãa bÝ mËt

 b'0 
  1 0 0 0 1 1 1 1   b0  1 
 b1'  
 '  1 1 0 0 0 1 1 1   b1  1 
  
 b 2  1 1 1 0 0 0 1 1   b 2  0 
 '     
 b3   1 1 1 1 0 0 0 1   b3   0 

 b'  1 1 1 1 1 0 0 0   b 4  0 
 4     
 b'  0 1 1 1 1 1 0 0   b5  1 
 5  0 0 1 1 1 1 1 0   b6  1 
 b'6      
 '  0 0 0 1 1 1 1 1   b7  0 
 b7 

trong ®ã bi biÓu thÞ bÝt thø i cña byte b

DÞch c¸c hµng cña State Array; PhÐp biÕn ®æi ShiftRows( )
PhÐp biÕn ®æi tiÕp theo cña AES lµ dÞch c¸c hµng cña State Array. Lîng
dÞch Shift  r, N b  phô thuéc vµo sè hµng r. C¸c khèi ®Çu vµo (b¶n râ) vµo c¸c
khoãi ®Çu ra (b¶n m·) lµ c¸c khèi 128 bÝt gåm N b  4 tõ 32 bÝt
PhÐp biÕn ®æi ShiftRows( ) ®îc biÓu thÞ nh sau:

s'r,c =s r  c+shift  r, N b   mod N b

trong ®ã 0  c  N b

Hµng ®Çu tiªn sÏ kh«ng dÞch, tøc lµ shift  0, N b  4   0


Víi c¸c hµng cßn l¹i lîng dÞch sÏ tïy theo sè hµng
shift  0,4   0
shift  1,4   1
shift  2,4   2
shift  3,4   3

Trén d÷ liÖu trong mét cét State Array: PhÐp biÕn ®æi Mixcolumns( )
PhÐp biÕn ®æi Mixcolumns( ) ®îc dïng ®Ó trén d÷ liÖu trong mét cét cña ma
8
trËn tr¹ng th¸i. C¸c cét ®îc xem nh c¸c ®a thøc trong GF 2 . §Çu ra cña  

83
Ch¬ng 2 - MËt m· khãa bÝ mËt

Mixcolumns( ) lµ s '  x  ®îc t¹o b»ng c¸ch nh©n cét víi s  x  víi ®a thøc a  x  vµ

4

rót gän theo mod X  1 
 
s'  x   a  x  .s  x  mod X 4  1

trong ®ã: a  x   03H x 3  01H x  02H

ë d¹ng ma trËn phÐp biÕn ®æi nµy cã thÓ viÕt nh sau:


s '0,c  02
   H 03H 01H 01H  s0,c 
  01H  
01H   s1,c 
'
 s1,c 02H 03H
 '  
s 2,c   01H 01H 02H 03H  s 2,c 
 '   03H  
01H 01H 02H   s3,c 
 s3,c 
ë ®©y 0  c  N b

Më réng khãa AES: KeyExpansion( )


ThuËt to¸n AES sÏ t¹o tõ khãa m· 128 bÝt (hoÆc 192 hoÆc 256 bÝt) mét tËp
khëi t¹o N b tõ 32 bÝt vµ N b tõ 32 bÝt cho mçi vßng bao gåm N b  N r  1 tõ 32
bÝt . Ch¬ng tr×nh gi¶i m· KeyExpansion( ) chøa c¸c SubWord( ) vµ RotWord( ).
Hµm SubWord( ) lµ mét phÐp thay thÕ (hép S) mét tõ vµo 4 byte b»ng mét tõ
ra 4 byte.
Hµm RotWord( ) thùc hiÖn phÐp ho¸n vÞ vßng c¸c byte trong mét tõ 4 byte
(32 bÝt) Wi :

RotWord  a 0 ,a1,a 2 ,a 3    a1,a 2 ,a 3 ,a 0 


KeyExpansion byte key  4* N k  , word w  N b*  N r  1  , N k 
Begin
i0
while  i  N k 

w  i   word key  4*i  ,key  4*i  1 ,key  4*i  2  ,key  4*i  3 


i  i 1
end while

84
Ch¬ng 2 - MËt m· khãa bÝ mËt

i N k

while  i  N b*  N r  1 

word temp  w  i  1

if  i mod N k  0 

temp  SubWord  RotWord  temp   xor Rconw  i N k 

else if  N k  8 and i mod N k  4 

temp  SubWord  temp 


end if
w  i  w  i  N k   xor temp
i  i 1
end while
end
(nguån trÝch dÉn: §Æc t¶ th« AES: http://csrc.nist.gov/encryption/aes/ )

Ch¬ng tr×nh gi¶i m· cña AES


Cipher bytein  4* N b  ,byteout  4* N b  , word w  N b*  N r  1  
Begin byte state  4, N b  state = in AddRoundKey(state,w)

for round = 1 step 1 to N r  1


SubBytes (state), ShifRows (state),
Mixcolumns(state), AddRoundKey(state,w+round * N b )
end for
SubBytes (state), ShifRows (state)
AddRoundKey(state,w+N r*N b )
out = state
end
(nguån trÝch dÉn: §Æc t¶ th« AES: http://csrc.nist.gov/encryption/aes/ )

85
Ch¬ng 2 - MËt m· khãa bÝ mËt

2.12. 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 kho¸ k cha biÕt. H·y dïng ph¬ng
ph¸p t×m kho¸ vÐt c¹n ®Ó t×n ®îc b¶n râ tiÕng Anh t¬ng øng.
Ghi chó: Ph¬ng ph¸p t×m kho¸ vÐt c¹n lµ ph¬ng ph¸p thö gi¶i m· b»ng mäi
kho¸ 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 cha 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ø t lÊy tõ " Lake Wobegon Days"
cña Garrison Keillor, Viking Penguin, 1985.
a. M· thay thÕ.
EMGLOSUDCGDNCUSWYSFHNSFCYKDPUMLWGYICOXYSIPJCK
QPKUGKMGOUCGINCGACKSNISACYKZSCKXEOCKSHYSXCG
OIDPKZCNKSHICGIWYGKKGKGOLDSILKGOIUSIGLEDSPWZU
GFZCCNDGYYSFUSZCNXEOJNCGYEOWEUPXEZGACGNFGLKNS
ACIGOIYCKXOUOUZCFZCCNDGYYSFEUEKUZCSOCFZCCNC
IACZEJNCSHFZEJZEGMXCYHCIUMGKUSY
ChØ dÉn: F sÏ gi¶i m· thµnh w.
b. HÖ m· VigenÌre
KCCPKBGUFDPHQTYAVINRRTMVGRKDNBVF§ETDGILTXRGUD
DKOTFMBPVGEGLTGCKQRACQCWDNAWCRXLZAKFTLEWRPTVC
QKYVXCHKFTPONCQQRHJVAJUWETMCMSPKQDYHJVDAHCTRL
SVSKCGCZQäDZXGSFRLSWCWSJTBHAFSLASPRJAHKJRJUMV
GKMITZHFPDLSPZLVLGWTFPLKKEBDPGCEBSHCTJRWXBAFS
PEZQNRWXCVYCGAONWDDKACKAWBBIKFTLOVKCGGHJVLNHI
FFSQESVYCLACNVRWBBIREPBBVFEXOSCDYGZWPFDTKFQLY
CWHJVTNHIQ/BTKH/VNPIST

c. HÖ m· Affine.
KQEREJEBCPPCJCRKIEACUZBKRVPKRBCIBQCARBJCVFCUP
KRLOFKPACUZQEPBKRXPEIIEABDKPBCPFCDCCAFIEAB§KP
BCPFEQPKAZBKRHALBKAPCCIBURCCDKDCCJC/DFUIXPAFF
ERBICZDFKABICBBENEFCUPLCVKABPCYDCCDPKBCOCPERK
IVKSCPICBRKLJPKABL

86
Ch¬ng 2 - MËt m· khãa bÝ mËt

d. HÖ m· cha x¸c ®Þnh ®îc.


BNVSNSIHQCEELSSKKYERIFJKXUMBGVKAMQLJTYAVFBKVT
DVBPVVRJYYLAOKYMPQSCGDLFSRLLPROYGESEBUUALRWXM
MASAZLGLE§FJBZAVVPXWI CGJXASCBYEHOSNMULKCEAHTQ
OKMFLEBKFXLRRFDTZXCIWBJSICBGAWDVYDHAVFJXZIBKC
GJIWEAHTTOEWTUHKRQVVRGZBXYIREMMASCSPBNLHJMBLR
FFJELHWEYLWISTFVVYFJCMHYUYRUFSFMGESIGRLWALSVVM
NUHSIMYYITCCQPZSICEHBCCMZFEGVJYOCDEMMPGHVAAUM
ELCMOEHVLTIPSUYILVGFLMVWDVYDBTHFRAYISYSGKVSUU
HYHGGCKTMBLRX

3. a. Cã bao nhiªu ma trËn kh¶ nghÞch cÊp 2x2 trªn Z 26 .


a. Gi¶ sö p lµ sè nguyªn tè. H·y chøng tá sè c¸c ma trËn kh¶ nghÞch cÊp 2x2


2 2

trªn Z p lµ p  1 p  p . 
ChØ dÉn V× p lµ sè nguyªn tè nªn Z p lµ mét trêng. H·y sö dông kh¼ng
®Þnh sau: Mét ma trËn trªn mét trêng lµ kh¶ nghÞch khi vµ chØ khi c¸c hµng
cña nã lµ c¸c vÐc t¬ ®éc lËp tuyÕn tÝnh (tøc kh«ng tån t¹i mét tæ hîp tuyÕn
tÝnh c¸c hµng kh¸c 0 mµ tæng cña chóng lµ mét vÐc t¬ toµn sè 0).
b. Víi p lµ sè nguyªn tè vµ m lµ mét sè nguyªn m  2 . H·y t×m c«ng thøc tÝnh
sè c¸c ma trËn kh¶ nghÞch cÊp mxm trªn Z p .

4. Gi¶ sö ta ®· biÕt r»ng b¶n râ "conversation" sÏ t¹o nªn b¶n m·


"HIARRTNUYTUS" (®îc m· theo hÖ m· Hill nhng cha x¸c ®Þnh ®îc m). H·y
x¸c ®Þnh ma trËn m· ho¸.

5. HÖ m· Affine - Hill lµ hÖ m· Hill ®îc söa ®æi nh sau: Gi¶ sö m lµ mét sè


nguyªn d¬ng vµ P = C =  Z 26  m . Trong hÖ mËt nµy, kho¸ K gåm c¸c cÆp (L,b),

trong ®ã L lµ mét ma trËn kh¶ nghÞch cÊp mxm trªn Z 26 vµ b   Z 26  m

 
theo c«ng thøc y  xL  b . Bëi vËy, nÕu L  l ij vµ b   b1, , b m  th×:
 l1,1 l1,2  l1,m 
l l 2,2  l 2,m 
 y1, , y m    x1, ,x m     b1, , b m 
2,1
 . .  . 
 
 l m,1 l m,2  l m,m 

87
Ch¬ng 2 - MËt m· khãa bÝ mËt

Gi¶ sö Oscar ®· biÕt b¶n râ 1µ "adisplayedequation" vµ b¶n m· t¬ng øng lµ


"DSRMSIOPLXLJBZULLM". Oscar còng biÕt m =3. H·y tÝnh kho¸ vµ chØ ra
tÊt c¶ c¸c tÝnh to¸n cÇn thiÕt.

6. Sau ®©y lµ c¸ch th¸m m· hÖ m· Hill sö dông ph¬ng ph¸p tÊn c«ng chØ víi b¶n
m·. Gi¶ sö ta biÕt m = 2. Chia c¸c b¶n m· thµnh c¸c khèi cã ®é dµi 2 kÝ tù (c¸c
bé ®«i). Mçi bé ®«i nµy lµ b¶n m· cña mét bé ®«i cña b¶n râ nhê dïng mét ma
trËn m· ho¸ cha biÕt. H·y nhÆt ra c¸c bé ®«i thêng gÆp nhÊt trong b¶n m· vµ
coi r»ng ®ã lµ m· cña mét bé ®«i thêng gÆp trong danh s¸ch ë b¶ng 1.1 (vÝ dô
TH vµ ST). Víi mçi gi¶ ®Þnh, h·y thùc hiÖn phÐp tÊn c«ng víi b¶n râ ®· biÕt
cho tíi. khi t×m ®îc ma trËn gi¶i m· ®óng.
Sau ®©y lµ mét vÝ dô vÒ b¶n m· ®Ó b¹n gi¶i m· theo ph¬ng ph¸p ®· nªu:
LMQETXYEAGTXCTUIEWNCTXLZEWUAISPZYVAPEWLMGQWVA
XFTGMSQCADAGTXLMDXNXSNPJQSYVAPRIQSMHNOCVAXFV.
7. Ta sÏ m« t¶ mét trêng hîp ®Æc biÖt cña m· ho¸n vÞ. Gi¶ sö m, n lµ c¸c sè
nguyªn d¬ng. H·y viÕt b¶n râ theo thµnh tõng hµng thµnh mét h×nh ch÷ nhËt
m x n. Sau ®ã t¹o ra b¶n m· b»ng c¸ch lÊy c¸c cét cña h×nh ch÷ nhËt nµy VÝ
dô, nÕu m = 4, n = 3 th× ta sÏ m· ho¸ b¶n râ "cryptography" b»ng c¸ch x©y
dùng h×nh ch÷ nhËt :
cryp
togr
aphy
B¶n m· sÏ lµ: "CTAROPYGHPRY"
a. H·y m« t¶ c¸ch Bob gi¶i m· mét b¶n m· (víi m, n ®· biÕt).
b. H·y gi¶i m· b¶n m· sau: (nhËn ®îc theo ph¬ng ph¸p ®· nªu):
MYAMRARUYIQTENCTORAHROYW§SOYEOUARRG§ERNOGW
8. H·y chøng minh r»ng phÐp gi¶i m· DES cã thÓ thùc hiÖn b»ng c¸ch ¸p dông
thuËt to¸n m· ho¸ DES cho b¶n râ víi b¶ng kho¸ ®¶o ngîc.

9. Cho DES(x,K) lµ phÐp m· ho¸ DES cña b¶n râ x víi kho¸ K. Gi¶ sö
y  DES  x, K  vµ y '  DES  c  x  , c  K   trong ®ã c(.) kÝ hiÖu lµ phÇn bï

theo c¸c bÝt 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µ kho¸ 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.

88
Ch¬ng 2 - MËt m· khãa bÝ mËt

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  e K2  e k1  x   (dÜ nhiªn ®©y chÝnh lµ tÝch cña DES víi
chÝnh nã). NÕu hµm m· ho¸ e K2 gièng nh hµm gi¶i m· d K1 th× K1 vµ K 2 ®îc
gäi lµ c¸c kho¸ ®è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 kho¸ ®î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 C0 gåm toµn c¸c sè 0 hoÆc gåm toµn c¸c sè 1 vµ
D 0 còng vËy th× K lµ tù ®èi ngÉu.
b. H·y tù chøng minh r»ng c¸c kho¸ 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øag tá r»ng nÕu C0  0101 01 hoÆc 1010 10 (ë d¹ng nhÞ ph©n)
th× XOR c¸c x©u bÝt C i vµ C17  i lµ 111 11 , víi 1  i  16 (kh¼ng ®Þnh
t¬ng tù còng ®óng ®èi víi D i ).
d. H·y chøng tá c¸c cÆp kho¸ sau lµ ®èi ngÉu:
E 0 0 1 E 0 0 1 F 1 0 1 F 1 0 1 0 1 E 0 0 1 E 0 0 1 F 1 0 1 F 1
F E1 F F E1F F 0 EF E 0 E 1 F F E1F F E 0E F E0E FE
E 0 1F E 0 1 FF F 1 0 F F 1 0 1 FE 0 1F E 0 0E F 1 0E F 1

89

You might also like