1
§¹i häc quèc gia hµ néi
Khoa c«ng nghÖ
Phan §×nh DiÖu
Lý thuyÕt mËt m·
&
an toµn th«ng tin
NXB ®¹i häc quèc gia hµ néi - 2002
2
Lý thuyÕt mËt m·
&
An toµn th«ng tin
3
Lý thuyÕt mËt m·
&
An toµn th«ng tin
Phan §×nh DiÖu
§¹i häc Quèc gia Hµ Néi
Khoa C«ng nghÖ- §HQG Hµ néi
1
Néi dung
Lêi më ®Çu.................................................................4
Ch−¬ng 1
Giíi thiÖu chung vÒ mËt m·......8
1.1. S¬ lùoc lÞch sö vÒ khoa mËt m·.......................................... 8
1.2. HÖ thèng mËt m·. M· theo khèi vµ m· theo dßng ........ 12
1.3. MËt m· khãa ®èi xøng vµ mËt m· cã khãa c«ng khai.... 15
1.4. C¸c bµi to¸n an toµn th«ng tin ........................................... 16
1.5. Th¸m m· vµ tÝnh an toµn cña c¸c hÖ mËt m·................... 18
Ch−¬ng 2.
C¬ së to¸n häc cña lý thuyÕt mËt m·................20
2.1.Sè häc c¸c sè nguyªn.ThuËt to¸n Euclide.......................... 20
2.2. X¸c suÊt vµ thuËt to¸n x¸c suÊt......... ............................... 31
2.3. §é phøc t¹p tÝnh to¸n......................................................... 36
2.4.Sè nguyªn tè. Ph©n tÝch thµnh thõa sè.L«garit rêi r¹c.... 42
2
Ch−¬ng 3
C¸c hÖ mËt m· kho¸ ®èi xøng ...... 55
3.1. C¸c hÖ mËt m· cæ ®iÓn........................................................ 55
3.2. Th¸m m· ®èi víi c¸c hÖ mËt m· cæ ®iÓn ......................... 63
3.3. MËt m· theo dßng vµ c¸c d·y sè gi¶ ngÉu nhiªn ...........72
3.4. HÖ mËt m· chuÈn DES ........................................ 80
Ch−¬ng 4
C¸c hÖ mËt m· kho¸ c«ng khai ...........92
4.1. Giíi thiÖu më ®Çu.................................................................92
4.1. HÖ mËt m· kho¸ c«ng khai RSA ........................................97
4.2. HÖ mËt m· kho¸ c«ng khai Rabin.................................... 101
4.3. HÖ mËt m· kho¸ c«ng khai ElGamal................................103
4.4. C¸c hÖ mËt m· dùa trªn c¸c bµi to¸n NP-®Çy ®ñ............107
4.5. C¸c hÖ mËt m· x¸c suÊt kho¸ c«ng khai...........................111
Ch−¬ng 5
Bµi to¸n x¸c nhËn vµ Ch÷ ký ®iÖn tö......115
5.1. Bµi to¸n x¸c nhËn vµ s¬ ®å ch÷ ký................................ 115
5.2. S¬ ®å ch÷ ký ElGamal vµ chuÈn ch÷ ký ®iÖ tö.......... 118
5.3. Hµm b¨m vµ ch÷ ký......................................................... 122
5.4. Mét sè s¬ ®å ch÷ ký kh¸c............................................... 127
5.5.Ch÷ ký kh«ng phñ ®Þnh ®−îc&kh«ng chèi bá ®−îc 131
3
Ch−¬ng 6
C¸c s¬ ®å x−ng danh vµ x¸c nhËn danh tÝnh 136
6.1. VÊn ®Ò x−ng danh..............................................................136
6.2. S¬ ®å x−ng danh Schnorr..................................................137
6.3. S¬ ®å x−ng danh Okamoto................................................140
6.4. S¬ ®å x−ng danh Guillou-Quisquater..............................142
6.5. Giao thøc Feige-Fiat-Shamir...............................................145
6.6. PhÐp chøng minh kh«ng lé tri thøc..................................147
Ch−¬ng 7
VÊn ®Ò ph©n phèi kho¸ vµ tho¶ thuËn kho¸ 152
7.1. Qu¶n trÞ kho¸ trong c¸c m¹ng truyÒn tin.........................152
7.2. Mét sè hÖ ph©n phèi kho¸................................................153
7.3. Trao ®æi kho¸ vµ tho¶ thuËn kho¸....................................157
Chó dÉn vÒ tµi liÖu tham kh¶o..................................................163
4
Lêi më ®Çu
Tõ khi con ng−êi cã nhu cÇu trao ®æi th«ng tin, th− tõ cho
nhau th× nhu cÇu gi÷ bÝ mËt vµ b¶o vÖ tÝnh riªng t− cña nh÷ng th«ng
tin, th− tõ ®−îc trao ®æi ®ã còng nÈy sinh. H×nh thøc th«ng tin ®−îc
trao ®æi phæ biÕn vµ sím nhÊt lµ d−íi d¹ng c¸c v¨n b¶n, ®Ó gi÷ bÝ
mËt cña th«ng tin ng−êi ta ®· sím nghÜ ®Õn c¸ch che dÊu néi dung
c¸c v¨n b¶n b»ng c¸ch biÕn d¹ng c¸c v¨n b¶n ®ã ®Ó ng−êi ngoµi
kh«ng ®äc hiÓu ®−îc, ®ång thêi cã c¸ch kh«i phôc l¹i nguyªn d¹ng
ban ®Çu ®Ó ng−êi trong cuéc vÉn ®äc hiÓu ®−îc; theo c¸ch gäi ngµy
nay th× d¹ng biÕn ®æi cña v¨n b¶n ®−îc gäi lµ mËt m· cña v¨n b¶n,
c¸ch lËp mËt m· cho mét v¨n b¶n ®−îc gäi lµ phÐp lËp mËt m·, cßn
c¸ch kh«i phôc l¹i nguyªn d¹ng ban ®Çu cña v¨n b¶n tõ b¶n mËt m·
®−îc gäi lµ phÐp gi¶i m·. PhÐp lËp mËt m· vµ phÐp gi¶i m· ®−îc
thùc hiÖn nhê mét ch×a kho¸ riªng nµo ®ã mµ chØ nh÷ng ng−êi trong
cuéc ®−îc biÕt, sau ®©y ta sÏ gäi lµ kho¸ mËt m·. Ng−êi ngoµi cuéc
kh«ng ®−îc biÕt kho¸ mËt m·, nªn dï cã "¨n c¾p" ®−îc b¶n mËt m·
trªn ®−êng truyÒn tin, vÒ nguyªn t¾c còng kh«ng thÓ gi¶i m· ®Ó
hiÓu ®−îc néi dung cña v¨n b¶n truyÒn ®i.
HiÓn nhiªn, tiªu chuÈn cña mét b¶n mËt m· lµ t¹o ®−îc tÝnh
bÝ mËt cho v¨n b¶n; v× vËy kh¸i niÖm bÝ mËt lµ kh¸i niÖm cèt lâi nhÊt
®èi víi mét lý thuyÕt vÒ mËt m·. Cã thÓ cã mét ®Þnh nghÜa khoa häc
cho kh¸i niÖm bÝ mËt hay kh«ng? §· cã nhiÒu c¸ch tiÕp cËn ®Ó t×m
hiÓu néi dung cña kh¸i niÖm bÝ mËt, nh−ng mét ®Þnh nghÜa khoa
häc, hay h¬n n÷a, mét ®Þnh nghÜa to¸n häc cho kh¸i niÖm ®ã th×
ch−a cã. Mét c¸ch tiÕp cËn kh¸ phæ biÕn lµ g¾n kh¸i niÖm bÝ mËt víi
kh¸i niÖm "ngÉu nhiªn", nÕu mét v¨n b¶n râ cã mét néi dung x¸c
®Þnh th× ®iÒu ta mong muèn lµ b¶n mËt m· cña nã ph¶i lµ mét b¶n
gåm c¸c ký tù ®−îc s¾p xÕp hçn ®én, cã vÎ nh− ngÉu nhiªn khiÕn
5
ng−êi ngoµi nh×n vµo kh«ng thÓ x¸c ®Þnh ®−îc néi dung cña v¨n
b¶n gèc. Tuy nhiªn, nÕu "bÝ mËt" lµ kh¸i niÖm ch−a ®Þnh nghÜa
®−îc, th× kh¸i niÖm "ngÉu nhiªn", hay cô thÓ h¬n, kh¸i niÖm "d·y bit
ngÉu nhiªn", còng khã ®Þnh nghÜa nh− vËy, ta ch−a qui ®Þnh ®−îc
mét tiªu chuÈn to¸n häc ®Ó x¸c ®Þnh mét d·y bit cã lµ "ngÉu nhiªn"
hay kh«ng, mµ chØ míi t×m hiÓu ®−îc mét sè thuéc tÝnh gÇn víi
"ngÉu nhiªn", dïng lµm c¨n cø ®Ó t¹m x¸c ®Þnh mét d·y bit cã lµ
"gi¶ ngÉu nhiªn" theo nghÜa cã c¸c thuéc tÝnh ®ã hay kh«ng mµ th«i.
Tõ mÊy thËp niªn gÇn ®©y, b−íc vµo kû nguyªn m¸y tÝnh,
còng nh− ®èi víi nhiÒu lÜnh vùc kh¸c, lÜnh vùc mËt m· còng ®· cã
nh÷ng chuyÓn biÕn to lín tõ giai ®o¹n mËt m· truyÒn thèng sang
giai ®o¹n mËt m· m¸y tÝnh; m¸y tÝnh ®iÖn tö ®−îc sö dông ngµy
cµng phæ biÕn trong viÖc lËp mËt m·, gi¶i mËt m·, vµ nh÷ng chuyÓn
biÕn ®ã ®· kÝch thÝch viÖc nghiªn cøu c¸c gi¶i ph¸p mËt m·, biÕn
viÖc nghiªn cøu mËt m· thµnh mét khoa häc cã ®èi t−îng ngµy cµng
réng lín vµ ®−îc sö dông cã hiÖu qu¶ trong nhiÒu ph¹m vi ho¹t
®éng cña cuéc sèng. V× c¸c nghiÖp vô chñ yÕu cña mËt m· ®−îc
thùc hiÖn b»ng m¸y tÝnh, nªn c¸c kh¸i niÖm bÝ mËt, ngÉu nhiªn còng
dÇn ®−îc "m¸y tÝnh ho¸", vµ víi sù ra ®êi cña Lý thuyÕt vÒ ®é phøc
t¹p tÝnh to¸n vµo gi÷a nh÷ng n¨m 1960, c¸c kh¸i niÖm ®ã t×m ®−îc
mét néi dung chung cã thÓ ®−îc nghiªn cøu mét c¸ch to¸n häc lµ
tÝnh phøc t¹p. B©y giê ta cã thÓ nãi, mét b¶n mËt m· ®èi víi anh lµ
bÝ mËt, nÕu tõ b¶n mËt m· ®ã ®Ó t×m ra b¶n râ anh ph¶i thùc hiÖn
mét tiÕn tr×nh tÝnh to¸n mµ ®é phøc t¹p cña nã v−ît qu¸ mäi n¨ng
lùc tÝnh to¸n (kÓ c¶ mäi m¸y tÝnh) cña anh; mét d·y bit cã thÓ xem lµ
ngÉu nhiªn , nÕu dùa vµo mét ®o¹n bit ®· biÕt ®Ó t×m mét bit tiÕp
theo cña d·y anh còng ph¶i thùc hiÖn mét tiÕn tr×nh tÝnh to¸n cã ®é
phøc t¹p cùc lín t−¬ng tù nh− nãi trªn.
ViÖc chuyÓn sang giai ®o¹n mËt m· m¸y tÝnh tr−íc hÕt ®· cã
t¸c dông ph¸t triÓn vµ hiÖn ®¹i ho¸ nhiÒu hÖ thèng mËt m· theo kiÓu
truyÒn thèng, lµm cho c¸c hÖ thèng ®ã cã c¸c cÊu tróc tinh tÕ h¬n,
®ßi hái lËp mËt m· vµ gi¶i m· phøc t¹p h¬n, do ®ã hiÖu qu¶ gi÷ bÝ
mËt cña c¸c gi¶i ph¸p mËt m· ®−îc n©ng cao h¬n tr−íc rÊt nhiÒu.
Tuy nhiªn, mét b−íc chuyÓn cã tÝnh chÊt c¸ch m¹ng mµ mËt m·
m¸y tÝnh mang l¹i lµ viÖc ph¸t minh ra c¸c hÖ mËt m· cã kho¸ c«ng
khai, b¾t ®Çu tõ cuèi nh÷ng n¨m 1970, c¬ së lý thuyÕt cña c¸c ph¸t
6
minh ®ã lµ sù tån t¹i cña c¸c hµm mét phÝa (one-way function), tøc
lµ nh÷ng hµm sè sè häc y = f (x) mµ viÖc tÝnh theo phÝa thuËn tõ x
tÝnh y lµ t−¬ng ®èi dÔ, nh−ng viÖc tÝnh theo phÝa ng−îc tõ y t×m l¹i
x (x = f--1
(y)) lµ cùc kú phøc t¹p. C¸c hÖ mËt m· cã kho¸ c«ng khai ®·
lµm thay ®æi vÒ b¶n chÊt viÖc tæ chøc c¸c hÖ truyÒn th«ng b¶o mËt,
lµm dÔ dµng cho viÖc b¶o mËt trªn c¸c hÖ truyÒn th«ng c«ng céng,
vµ do tÝnh chÊt ®Æc biÖt ®ã chóng ®· lµ c¬ së cho viÖc ph¸t triÓn
nhiÒu giao thøc an toµn th«ng tin kh¸c khi sö dông m¹ng truyÒn
th«ng c«ng céng, ch¼ng h¹n c¸c lo¹i giao thøc vÒ x¸c nhËn nguån tin
vµ ®Þnh danh ng−êi göi, ch÷ ký ®iÖn tö, c¸c giao thøc x¸c nhËn
kh«ng ®Ó lé th«ng tin g× kh¸c ngoµi viÖc x¸c nhËn, c¸c giao thøc trao
®æi kho¸ trong tæ chøc truyÒn tin b¶o mËt vµ trong x¸c nhËn, v.v...,
vµ gÇn ®©y trong viÖc ph¸t triÓn nhiÒu giao thøc ®Æc thï kh¸c trong
c¸c giao dÞch ng©n hµng vµ th−¬ng m¹i ®iÖn tö, ph¸t hµnh vµ mua
b¸n b»ng tiÒn ®iÖn tö,... Còng cÇn nãi thªm lµ lý thuyÕt mËt m· hiÖn
®¹i, tøc lµ mËt m· m¸y tÝnh trªn c¬ së lý thuyÕt vÒ ®é phøc t¹p tÝnh
to¸n tuy cã nhiÒu øng dông ®Æc s¾c vµ cã triÓn väng to lín, nh−ng
còng míi ®ang trong giai ®o¹n ph¸t triÓn b−íc ®Çu, cßn ph¶i kh¾c
phôc nhiÒu khã kh¨n vµ t×m kiÕm thªm nhiÒu c¬ së v÷ng ch¾c míi
®Ó tiÕp tôc hoµn thiÖn vµ ph¸t triÓn. Ch¼ng h¹n, nh− trªn ®· nãi,
mét c¬ së quan träng cña lý thuyÕt mËt m· hiÖn ®¹i lµ sù tån t¹i cña
c¸c hµm mét phÝa, nh−ng ngay cã thËt tån t¹i c¸c hµm mét phÝa hay
kh«ng còng cßn lµ mét bµi to¸n ch−a cã c©u tr¶ lêi! Ta chØ míi ®ang
cã mét sè hµm mét phÝa theo sù hiÓu biÕt cña con ng−êi hiÖn nay,
nh−ng ch−a chøng minh ®−îc cã mét hµm cô thÓ nµo ®ã ch¾c ch¾n
lµ hµm mét phÝa! Tuy nhiªn, nÕu theo quan ®iÓm khoa häc hiÖn ®¹i,
ta kh«ng xem môc ®Ých khoa häc lµ ®i t×m nh÷ng ch©n lý ch¾c ch¾n
tuyÖt ®èi, mµ lµ ®i t×m nh÷ng c¸ch gi¶i quyÕt vÊn ®Ò (problem
solving) gÆp trong thùc tiÔn, th× ta vÉn cã thÓ tin vµo nh÷ng gi¶i
ph¸p "t−¬ng ®èi" rÊt cã hiÖu qu¶ mµ lý thuyÕt hiÖn ®¹i vÒ mËt m·
®ang cèng hiÕn cho con ng−êi hiÖn nay.
TËp gi¸o tr×nh Lý thuyÕt mËt m· vµ an toµn th«ng tin nµy
®−îc so¹n ®Ó phôc vô cho viÖc häc tËp cña sinh viªn c¸c líp theo
ch−¬ng tr×nh ®¹i häc hoÆc cao häc thuéc ngµnh C«ng nghÖ th«ng tin
cña §¹i häc Quèc gia Hµ néi. Trong kho¶ng m−¬i n¨m gÇn ®©y, trªn
thÕ giíi ®· xuÊt hiÖn nhiÒu s¸ch vµ tµi liÖu cã tÝnh chÊt gi¸o khoa
7
hoÆc tham kh¶o vÒ lý thuyÕt mËt m· hiÖn ®¹i vµ øng dông. Ng−êi
viÕt tËp gi¸o tr×nh nµy chØ cã cè g¾ng lùa chän vµ s¾p xÕp mét sè néi
dung mµ m×nh nghÜ lµ cÇn thiÕt vµ thÝch hîp nhÊt ®Ó trong mét
ph¹m vi h¹n chÕ vÒ thêi gian (vµ kh«ng gian) tr×nh bµy vµ giíi thiÖu
®−îc cho ng−êi häc mét c¸ch t−¬ng ®èi hÖ thèng nh÷ng kiÕn thøc
c¬ b¶n vÒ lý thuyÕt mËt m· hiÖn ®¹i, bao gåm c¶ mét sè kiÕn thøc
to¸n häc cÇn thiÕt. Gi¸o tr×nh nµy ®· ®−îc gi¶ng d¹y cho sinh viªn
c¸c kho¸ cao häc vÒ C«ng nghÖ th«ng tin thuéc §¹i häc B¸ch khoa
Hµ néi vµ khoa C«ng nghÖ §¹i häc Quèc gia Hµ néi tõ n¨m 1997
®Õn 2004. Ng−êi viÕt ch©n thµnh c¶m ¬n c¸c b¹n ®ång nghiÖp vµ
ng−êi ®äc chØ cho nh÷ng chç thiÕu sãt ®Ó cã thÓ kÞp thêi söa ch÷a
cho nh÷ng lÇn in sau, nÕu cã.
Th¸ng 12 n¨m 2002
Phan §×nh DiÖu
8
CH¦¥NG I
Giíi thiÖu chung vÒ mËt m·
1.1. S¬ l−îc lÞch sö vÒ mËt m·.
Nh− ®· giíi thiÖu trong Lêi më ®Çu, nhu cÇu sö dông mËt
m· ®· xuÊt hiÖn tõ rÊt sím, khi con ng−êi biÕt trao ®æi vµ truyÒn
®−a th«ng tin cho nhau, ®Æc biÖt khi c¸c th«ng tin ®ã ®· ®−îc thÓ
hiÖn d−íi h×nh thøc ng«n ng÷, th− tõ. LÞch sö cho ta biÕt, c¸c h×nh
thøc mËt m· s¬ khai ®· ®−îc t×m thÊy tõ kho¶ng bèn ngh×n n¨m
tr−íc trong nÒn v¨n mÞnh Ai cËp cæ ®¹i. Tr¶i qua hµng ngh×n n¨m
lÞch sö, mËt m· ®· ®−îc sö dông réng r·i trªn kh¾p thÕ giíi tõ §«ng
sang T©y ®Ó gi÷ bÝ mËt cho viÖc giao l−u th«ng tin trong nhiÒu lÜnh
vùc ho¹t ®éng gi÷a con ng−êi vµ c¸c quèc gia, ®Æc biÖt trong c¸c
lÜnh vùc qu©n sù, chÝnh trÞ, ngo¹i giao. MËt m· tr−íc hÕt lµ mét lo¹i
ho¹t ®éng thùc tiÔn, néi dung chÝnh cña nã lµ ®Ó gi÷ bÝ mËt th«ng
tin (ch¼ng h¹n d−íi d¹ng mét v¨n b¶n) tõ mét ng−êi göi A ®Õn mét
ng−êi nhËn B, A ph¶i t¹o cho v¨n b¶n ®ã mét b¶n m· mËt t−¬ng
øng, vµ thay v× göi v¨n b¶n râ th× A chØ göi cho B b¶n m· mËt, B
nhËn ®−îc b¶n m· mËt vµ sÏ cã c¸ch tõ ®ã kh«i phôc l¹i v¨n b¶n râ
®Ó hiÓu ®−îc th«ng tin mµ A muèn göi cho m×nh. V× b¶n göi ®i
th−êng ®−îc chuyÓn qua c¸c con ®−êng c«ng khai nªn ng−êi ngoµi
cã thÓ "lÊy trém" ®−îc, nh−ng do ®ã lµ b¶n mËt m· nªn kh«ng ®äc
hiÓu ®−îc, cßn A cã thÓ t¹o ra b¶n m· mËt vµ B cã thÓ gi¶i b¶n m·
mËt thµnh b¶n râ ®Ó hiÓu ®−îc lµ do gi÷a hai ng−êi ®· cã mét tháa
thuËn vÒ mét ch×a khãa chung, chØ víi ch×a khãa chung nµy th× A
míi t¹o ®−îc b¶n m· mËt tõ b¶n râ, vµ B míi tõ b¶n m· mËt kh«i
phôc l¹i ®−îc b¶n râ. Sau nµy ta sÏ gäi ®¬n gi¶n ch×a khãa chung ®ã
lµ khãa mËt m·. TÊt nhiªn ®Ó thùc hiÖn ®−îc mét phÐp mËt m·, ta
9
cßn cÇn cã mét thuËt to¸n biÕn b¶n râ, cïng víi khãa mËt m·, thµnh
b¶n m· mËt, vµ mét thuËt to¸n ng−îc l¹i, biÕn b¶n m· mËt, cïng víi
khãa mËt m·, thµnh b¶n râ. C¸c thuËt to¸n ®ã ®−îc gäi t−¬ng øng lµ
thuËt to¸n lËp mËt m· vµ thuËt to¸n gi¶i mËt m·. C¸c thuËt to¸n nµy
th−êng kh«ng nhÊt thiÕt ph¶i gi÷ bÝ mËt, mµ c¸i cÇn ®−îc gi÷ tuyÖt
mËt lu«n lu«n lµ khãa mËt m·. Trong thùc tiÔn, ®· cã ho¹t ®éng b¶o
mËt th× còng cã ho¹t ®éng ng−îc l¹i lµ kh¸m ph¸ bÝ mËt tõ c¸c b¶n
m· mËt "lÊy trém" ®−îc, ta th−êng gäi ho¹t ®éng nµy lµ m· th¸m,
ho¹t ®éng nµy quan träng kh«ng kÐm g× ho¹t ®éng b¶o mËt! V× c¸c
thuËt to¸n lËp mËt m· vµ gi¶i mËt m· kh«ng nhÊt thiÕt lµ bÝ mËt, nªn
m· th¸m th−êng ®−îc tËp trung vµo viÖc t×m khãa mËt m·, do ®ã
còng cã ng−êi gäi c«ng viÖc ®ã lµ ph¸ khãa.
Suèt mÊy ngh×n n¨m lÞch sö, c¸c th«ng b¸o, th− tõ ®−îc
truyÒn ®−a vµ trao ®æi víi nhau th−êng lµ c¸c v¨n b¶n, tøc lµ cã
d¹ng c¸c d·y ký tù trong mét ng«n ng÷ nµo ®ã; v× vËy, c¸c thuËt
to¸n lËp mËt m· th−êng còng ®¬n gi¶n lµ thuËt to¸n x¸o trén, thay
®æi c¸c ký tù ®−îc x¸c ®Þnh bëi c¸c phÐp chuyÓn dÞch, thay thÕ hay
ho¸n vÞ c¸c ký tù trong b¶ng ký tù cña ng«n ng÷ t−¬ng øng; khãa
mËt m· lµ th«ng tin dïng ®Ó thùc hiÖn phÐp lËp mËt m· vµ gi¶i mËt
m· cô thÓ, thÝ dô nh− sè vÞ trÝ ®èi víi phÐp chuyÓn dÞch, b¶ng x¸c
®Þnh c¸c cÆp ký tù t−¬ng øng ®èi víi phÐp thay thÕ hay ho¸n vÞ,...
MËt m· ch−a ph¶i lµ mét khoa häc, do ®ã ch−a cã nhiÒu kiÕn thøc
s¸ch vë ®Ó l¹i, tuy nhiªn ho¹t ®éng b¶o mËt vµ th¸m m· trong lÞch
sö c¸c cuéc ®Êu tranh chÝnh trÞ, ngo¹i giao vµ qu©n sù th× hÕt søc
phong phó, vµ mËt m· ®· cã nhiÒu t¸c ®éng rÊt quan träng ®−a ®Õn
nh÷ng kÕt qu¶ l¾m khi cã ý nghÜa quyÕt ®Þnh trong c¸c cuéc ®Êu
tranh ®ã. Do trong mét thêi gian dµi, b¶n th©n ho¹t ®éng mËt m·
còng ®−îc xem lµ mét bÝ mËt, nªn c¸c tµi liÖu kü thuËt vÒ mËt m·
®−îc phæ biÕn ®Õn nay th−êng chØ ghi l¹i c¸c kiÕn thøc kinh nghiÖm,
thØnh tho¶ng míi cã mét vµi "ph¸t minh" nh− c¸c hÖ mËt m·
VigenÌre vµo thÕ kû 16 hoÆc hÖ mËt m· Hill ra ®êi n¨m 1929 lµ c¸c
hÖ m· thùc hiÖn phÐp chuyÓn dÞch (®èi víi m· VigenÌre) hay phÐp
thay thÕ (m· Hill) ®ång thêi trªn mét nhãm ký tù chø kh«ng ph¶i
trªn tõng ký tù riªng rÏ. VÊn ®Ò th¸m m·, ng−îc l¹i, khi thµnh c«ng
th−êng ®−a ®Õn nh÷ng cèng hiÕn næi tréi vµ Ên t−îng trong nh÷ng
10
t×nh huèng gay cÊn cña c¸c cuéc ®Êu tranh, vµ còng th−êng ®ßi hái
nhiÒu tµi n¨ng ph¸t hiÖn víi nh÷ng kinh nghiÖm vµ suy luËn tinh tÕ
h¬n, nªn ®Ó l¹i nhiÒu chuyÖn hÊp dÉn h¬n. NhiÒu c©u chuyÖn kú thó
cña lÞch sö th¸m m· ®· ®−îc thuËt l¹i trong quyÓn s¸ch næi tiÕng
cña David Kahn The Codebreakers . The Story of Secret Writing ,
xuÊt b¶n n¨m 1967 (s¸ch ®· ®−îc dÞch ra nhiÒu thø tiÕng, cã b¶n
dÞch tiÕng ViÖt Nh÷ng ng−êi m· th¸m, 3 tËp, xuÊt b¶n t¹i Hµ néi
n¨m 1987).
B−íc sang thÕ kû 20, víi nh÷ng tiÕn bé liªn tôc cña kü thuËt
tÝnh to¸n vµ truyÒn th«ng, ngµnh mËt m· còng ®· cã nh÷ng tiÕn bé
to lín. Vµo nh÷ng thËp niªn ®Çu cña thÕ kû, sù ph¸t triÓn cña c¸c kü
thuËt biÓu diÔn, truyÒn vµ xö lý tÝn hiÖu ®· cã t¸c ®éng gióp cho c¸c
ho¹t ®éng lËp vµ gi¶i mËt m· tõ thñ c«ng chuyÓn sang c¬ giíi hãa
råi ®iÖn tö hãa. C¸c v¨n b¶n, c¸c b¶n mËt m· tr−íc ®©y ®−îc viÕt
b»ng ng«n ng÷ th«ng th−êng nay ®−îc chuyÓn b»ng kü thuËt sè
thµnh c¸c d·y tÝn hiÖu nhÞ ph©n, tøc c¸c d·y bit, vµ c¸c phÐp biÕn ®æi
trªn c¸c d·y ký tù ®−îc chuyÓn thµnh c¸c phÐp biÕn ®æi trªn c¸c d·y
bit, hay c¸c d·y sè, viÖc thùc hiÖn c¸c phÐp lËp m·, gi¶i m· trë
thµnh viÖc thùc hiÖn c¸c hµm sè sè häc. To¸n häc vµ kü thuËt tÝnh
to¸n b¾t ®Çu trë thµnh c«ng cô cho viÖc ph¸t triÓn khoa häc vÒ mËt
m·. Kh¸i niÖm trung t©m cña khoa häc mËt m· lµ kh¸i niÖm bÝ mËt.
§ã lµ mét kh¸i niÖm phæ biÕn trong ®êi sèng, nh−ng liÖu cã thÓ cho
nã mét néi dung cã thÓ ®Þnh nghÜa ®−îc mét c¸ch to¸n häc kh«ng?
Nh− ®· l−îc qua trong Lêi më ®Çu, kh¸i niÖm bÝ mËt tho¹t ®Çu
®−îc g¾n víi kh¸i niÖm ngÉu nhiªn, råi vÒ sau trong nh÷ng thËp
niªn gÇn ®©y, víi kh¸i niÖm phøc t¹p, cô thÓ h¬n lµ kh¸i niÖm ®é
phøc t¹p tÝnh to¸n. ViÖc sö dông lý thuyÕt x¸c suÊt vµ ngÉu nhiªn
lµm c¬ së ®Ó nghiªn cøu mËt m· ®· gióp C.Shannon ®−a ra kh¸i
niÖm bÝ mËt hoµn toµn cña mét hÖ mËt m· tõ n¨m 1948, khëi ®Çu
cho mét lý thuyÕt x¸c suÊt vÒ mËt m·. Trong thùc tiÔn lµm mËt m·,
c¸cd·y bit ngÉu nhiªn ®−îc dïng ®Ó trén víi b¶n râ (d−íi d¹ng mét
d·y bit x¸c ®Þnh) thµnh ra b¶n mËt m·. Lµm thÕ nµo ®Ó t¹o ra c¸c
d·y bit ngÉu nhiªn? Cã thÓ t¹o ra b»ng ph−¬ng ph¸p vËt lý ®¬n gi¶n
nh− sau: ta tung ®ång xu lªn, nÕu ®ång xu r¬i xuèng ë mÆt sÊp th× ta
ghi bit 0, ë mÆt ngöa th× ta ghi bit 1; tung n lÇn ta sÏ ®−îc mét d·y n
11
bit, d·y bit thu ®−îc nh− vËy cã thÓ ®−îc xem lµ d·y bit ngÉu nhiªn.
Nh−ng t¹o ra theo c¸ch nh− vËy th× khã cã thÓ sö dông mét c¸ch
phæ biÕn, v× kh«ng thÓ t×m ra qui luËt ®Ó theo ®ã mµ sinh ra d·y bit
ngÉu nhiªn ®−îc. ë ®©y ta gÆp mét khã kh¨n cã tÝnh b¶n chÊt: nÕu
cã qui luËt th× ®· kh«ng cßn lµ ngÉu nhiªn n÷a råi! Nh− vËy, nÕu ta
muèn t×m theo qui luËt, th× kh«ng bao giê cã thÓ t×m ra c¸c d·y bit
ngÉu nhiªn, mµ cïng l¾m còng chØ cã thÓ ®−îc c¸c d·y bit gÇn ngÉu
nhiªn, hay gi¶ ngÉu nhiªn, mµ th«i. Tõ nhiÒu chôc n¨m nay, ng−êi
ta ®· nghiªn cøu ®Ò xuÊt nhiÒu thuËt to¸n to¸n häc ®Ó sinh ra c¸c
d·y bit gi¶ ngÉu nhiªn, vµ còng ®· ®−a ra nhiÒu thuéc tÝnh ®Ó ®¸nh
gi¸ mét d·y bit gi¶ ngÉu nhiªn cã ®¸ng ®−îc xem lµ "gÇn" ngÉu
nhiªn hay kh«ng. Mét vµi thuéc tÝnh chñ yÕu mµ ng−êi ta ®· ®Ò xuÊt
lµ: cho mét d·y bit X = (x1,x2,.....,xn,...); d·y ®ã ®−îc xem lµ gi¶ ngÉu
nhiªn "tèt" nÕu x¸c suÊt xuÊt hiÖn bit 0 hay bit 1 trong toµn d·y ®ã
còng nh− trong mäi d·y con bÊt kú cña nã ®Òu b»ng 1/2; hoÆc mét
tiªu chuÈn kh¸c: nÕu mäi ch−¬ng tr×nh sinh ra ®−îc ®o¹n ®Çu n bit
cña d·y ®Òu ph¶i cã ®é phøc t¹p (hay ®é dµi) cì n ký tù ! VÒ sau
nµy, khi lý thuyÕt vÒ ®é phøc t¹p tÝnh to¸n ®· ®−îc ph¸t triÓn th×
tiªu chuÈn vÒ ngÉu nhiªn còng ®−îc qui vÒ tiªu chuÈn phøc t¹p tÝnh
to¸n, cô thÓ mét d·y bit X ®−îc xem lµ gi¶ ngÉu nhiªn "tèt" nÕu mäi
thuËt to¸n t×m ®−îc bit thø n (xn) khi biÕt c¸c bit tr−íc ®ã (x1,,...,xn-1)
víi x¸c suÊt ®óng > 1/2 ®Òu ph¶i cã ®é phøc t¹p tÝnh to¸n thuéc líp
NP-khã!
Lý thuyÕt vÒ ®é phøc t¹p tÝnh to¸n ra ®êi tõ gi÷a nh÷ng n¨m
1960 ®· cho ta mét c¸ch thÝch hîp ®Ó qui yªu cÇu bÝ mËt hoÆc ngÉu
nhiªn vÒ mét yªu cÇu cã thÓ ®Þnh nghÜa ®−îc lµ yªu cÇu vÒ ®é phøc
t¹p tÝnh to¸n. B©y giê ta cã thÓ nãi: mét gi¶i ph¸p mËt m· lµ b¶o
®¶m bÝ mËt, nÕu mäi thuËt to¸n th¸m m·, nÕu cã, ®Òu ph¶i ®−îc
thùc hiÖn víi ®é phøc t¹p tÝnh to¸n cùc lín! Cùc lín lµ bao nhiªu?
Lµ v−ît qu¸ giíi h¹n kh¶ n¨ng tÝnh to¸n (bao gåm c¶ m¸y tÝnh) mµ
ng−êi th¸m m· cã thÓ cã. VÒ lý thuyÕt, cã thÓ xem ®ã lµ nh÷ng ®é
phøc t¹p tÝnh to¸n víi tèc ®é t¨ng v−ît qu¸ hµm mò, hoÆc thuéc lo¹i
NP-khã. Tuy nhiªn, lý thuyÕt ®é phøc t¹p tÝnh to¸n kh«ng chØ cèng
hiÕn cho ta mét kh¸i niÖm ®Ó gióp chÝnh x¸c hãa tiªu chuÈn bÝ mËt
cña c¸c gi¶i ph¸p mËt m·, mµ cßn më ra mét giai ®o¹n míi cña
ngµnh mËt m·, biÕn ngµnh mËt m· thµnh mét khoa häc cã néi dung
12
lý luËn phong phó vµ cã nh÷ng øng dông thùc tiÔn quan träng
trong nhiÒu lÜnh vùc cña ®êi sèng hiÖn ®¹i. B−íc ngoÆt cã tÝnh c¸ch
m¹ng trong lÞch sö khoa häc mËt m· hiÖn ®¹i xÈy ra vµo n¨m 1976
khi hai t¸c gi¶ Diffie vµ Hellman ®−a ra kh¸i niÖm vÒ mËt m· khãa
c«ng khai vµ mét ph−¬ng ph¸p trao ®æi c«ng khai ®Ó t¹o ra mét
khãa bÝ mËt chung mµ tÝnh an toµn ®−îc b¶o ®¶m bëi ®é khã cña
mét bµi to¸n to¸n häc cô thÓ (lµ bµi to¸n tÝnh "l«garit rêi r¹c"). Hai
n¨m sau, n¨m 1978, Rivest, Shamir vµ Adleman t×m ra mét hÖ mËt
m· khãa c«ng khai vµ mét s¬ ®å ch÷ ký ®iÖn tö hoµn toµn cã thÓ
øng dông trong thùc tiÔn, tÝnh b¶o mËt vµ an toµn cña chóng ®−îc
b¶o ®¶m b»ng ®é phøc t¹p cña mét bµi to¸n sè häc næi tiÕng lµ bµi
to¸n ph©n tÝch sè nguyªn thµnh c¸c thõa sè nguyªn tè. Sau ph¸t
minh ra hÖ mËt m· ®ã (mµ nay ta th−êng gäi lµ hÖ RSA), viÖc nghiªn
cøu ®Ó ph¸t minh ra c¸c hÖ mËt m· khãa c«ng khai kh¸c, vµ øng
dông c¸c hÖ mËt m· khãa c«ng khai vµo c¸c bµi to¸n kh¸c nhau cña
an toµn th«ng tin ®· ®−îc tiÕn hµnh réng r·i, lý thuyÕt mËt m· vµ an
toµn th«ng tin trë thµnh mét lÜnh vùc khoa häc ®−îc ph¸t triÓn
nhanh trong vµi ba thËp niªn cuèi cña thÕ kû 20, l«i cuèn theo sù
ph¸t triÓn cña mét sè bé m«n cña to¸n häc vµ tin häc. Trong c¸c
ch−¬ng vÒ sau cña tËp gi¸o tr×nh nµy ta sÏ lÇn l−ît lµm quen víi mét
sè thµnh qu¶ chñ yÕu cña lý thuyÕt ®ã.
1.2. C¸c hÖ thèng mËt m·.
1.2.1. S¬ ®å hÖ thèng mËt m·.
MËt m· ®−îc sö dông ®Ó b¶o vÖ tÝnh bÝ mËt cña th«ng tin khi
th«ng tin ®−îc truyÒn trªn c¸c kªnh truyÒn th«ng c«ng céng nh− c¸c
kªnh b−u chÝnh, ®iÖn tho¹i, m¹ng truyÒn th«ng m¸y tÝnh, m¹ng
Internet, v.v... Gi¶ thö mét ng−êi göi A muèn göi ®Õn mét ng−êi
nhËn B mét v¨n b¶n (ch¼ng h¹n, mét bøc th−) p, ®Ó b¶o mËt A lËp
cho p mét b¶n mËt m· c, vµ thay cho viÖc göi p, A göi cho B b¶n mËt
m· c, B nhËn ®−îc c vµ "gݶi m·" c ®Ó l¹i ®−îc v¨n b¶n p nh− A
®Þnh göi. §Ó A biÕn p thµnh c vµ B biÕn ng−îc l¹i c thµnh p , A vµ B
ph¶i tháa thuËn tr−íc víi nhau c¸c thuËt to¸n lËp m· vµ gi¶i m·, vµ
®Æc biÖt mét khãa mËt m· chung K ®Ó thùc hiÖn c¸c thuËt to¸n ®ã.
Ng−êi ngoµi, kh«ng biÕt c¸c th«ng tin ®ã (®Æc biÖt, kh«ng biÕt khãa
13
K), cho dï cã lÊy trém ®−îc c trªn kªnh truyÒn th«ng c«ng céng,
còng kh«ng thÓ t×m ®−îc v¨n b¶n p mµ hai ng−êi A, B muèn göi cho
nhau. Sau ®©y ta sÏ cho mét ®Þnh nghÜa h×nh thøc vÒ s¬ ®å mËt m·
vµ c¸ch thøc thùc hiÖn ®Ó lËp mËt m· vµ gi¶i mËt m·.
§Þnh nghÜa 1.2.1. Mét s¬ ®å hÖ thèng mËt m· lµ mét bé n¨m
S = (P , C , K , E , D ) (1)
tháa m·n c¸c ®iÒu kiÖn sau ®©y:
P lµ mét tËp h÷u h¹n c¸c ký tù b¶n râ,
C lµ mét tËp h÷u h¹n c¸c ký tù b¶n m·,
K lµ mét tËp h÷u h¹n c¸c khãa,
E lµ mét ¸nh x¹ tõ KxP vµo C , , ®−îc gäi lµ phÐp lËp mËt m·;
vµ D lµ mét ¸nh x¹ tõ KxC vµo P , ®−îc gäi lµ phÐp gi¶i m·. Víi
mçi K∈K , ta ®Þnh nghÜa eK : P →C , dK :C →P lµ hai hµm cho bëi :
⎠x εP : eK(x) = E (K,x) ; ⎠yε C : dK(y) = D (K,y).
eK vµ dK ®−îc gäi lÇn l−ît lµ hµm lËp m· vµ hµm gi¶i m· øng víi
khãa mËt m· K. C¸c hµm ®ã ph¶i tháa m·n hÖ thøc:
⎠x ε P : dK(eK(x)) = x.
VÒ sau, ®Ó thuËn tiÖn ta sÏ gäi mét danh s¸ch (1) tho¶ m·n c¸c
tÝnh chÊt kÓ trªn lµ mét s¬ ®å hÖ thèng mËt m· , cßn khi ®· chän cè
®Þnh mét kho¸ K, th× danh s¸ch (P , C , eK , dK) lµ mét hÖ mËt m·
thuéc s¬ ®å ®ã.
Trong ®Þnh nghÜa nµy, phÐp lËp mËt m· (gi¶i m·) ®−îc ®Þnh
nghÜa cho tõng ký tù b¶n râ (b¶n m·). Trong thùc tÕ, b¶n râ cña mét
th«ng b¸o th−êng lµ mét d·y ký tù b¶n râ, tøc lµ phÇn tö cña tËp P *,
vµ b¶n mËt m· còng lµ mét d·y c¸c ký tù b¶n m·, tøc lµ phÇn tö cña
tËp C *, viÖc më réng c¸c hµm eK vµ dK lªn c¸c miÒn t−¬ng øng P *
vµ C * ®Ó ®−îc c¸c thuËt to¸n lËp mËt m· vµ gi¶i m· dïng trong thùc
tÕ sÏ ®−îc tr×nh bµy trong tiÕt sau. C¸c tËp ký tù b¶n râ vµ b¶n m·
th−êng dïng lµ c¸c tËp ký tù cña ng«n ng÷ th«ng th−êng nh− tiÕng
ViÖt, tiÕng Anh (ta ký hiÖu tËp ký tù tiÕng Anh lµ A tøc A =
{a,b,c,...,x,y,z } gåm 26 ký tù; tËp ký tù nhÞ ph©n B chØ gåm hai ký tù
0 vµ 1; tËp c¸c sè nguyªn kh«ng ©m bÐ h¬n mét sè n nµo ®ã (ta ký
hiÖu tËp nµy lµ Zn tøc Zn = {0,1,2,...., n- 1}). Chó ý r»ng cã thÓ xem B
= Z2. §Ó thuËn tiÖn, ta còng th−êng ®ång nhÊt tËp ký tù tiÕng Anh A
víi tËp gåm 26 sè nguyªn kh«ng ©m ®Çu tiªn Z26 = {0,1,2,...., 24,25}
víi sù t−¬ng øng sau ®©y:
a b c d e f g h i j k l m n o p q r s t u v w x y z
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25.
§«i khi ta còng dïng víi t− c¸ch tËp ký tù b¶n râ hay b¶n m· lµ c¸c
tËp tÝch cña c¸c tËp nãi trªn, ®Æc biÖt lµ c¸c tËp Am
, Bm
, Zn
m
.
1.2.2. M· theo khèi vµ m· theo dßng.
Nh− nãi ë trªn, b¶n râ cña th«ng b¸o mµ ta muèn göi ®i
th−êng lµ mét d·y ký tù, trong khi theo ®Þnh nghÜa cña s¬ ®å mËt
m·, hµm lËp mËt m· vµ hµm gi¶i m· ®−îc ®Þnh nghÜa cho tõng ký
tù. Tõ c¸c ®Þnh nghÜa cña hµm lËp mËt m· vµ hµm gi¶i m·, ta më
réng thµnh thuËt to¸n lËp m· (vµ gi¶i m·) x¸c ®Þnh cho mäi b¶n râ
(b¶n m·) nh− sau:
Theo c¸ch m· theo khèi (block cipher), tr−íc hÕt ta x¸c ®Þnh
mét ®é dµi khèi (ch¼ng h¹n lµ k), tiÕp ®ã më réng kh«ng gian khãa
tõ K thµnh Kk
, vµ víi mçi K =K1...Kk ε Kk
, ta më réng eK vµ dK
thµnh c¸c thuËt to¸n eK : P k
→ C k
vµ dK : C k
→P k
nh− sau: víi mäi
x1...xk ∈P k
vµ y1...yk ∈C k
ta cã
14
e x x e x e x
1
1 1
( .... ) ( ).... ( );
k
K k K K k
= 1
1 1
( .... ) ( ).... ( )
k
K k K K k
d y y d y d y
= .
Gi¶ thö b¶n râ mµ ta muèn lËp mËt m· cho nã lµ d·y ký tù X∈ P *
.Ta c¾t X thµnh tõng khèi, mçi khèi cã ®é dµi k, khèi cuèi cïng cã
thÓ cã ®é dµi <k, ta lu«n cã thÓ gi¶ thiÕt lµ cã thÓ bæ sung vµo phÇn
cuèi cña khèi mét sè ký tù qui −íc nµo ®ã ®Ó nã còng cã ®é dµi k.
Do ®ã ta cã thÓ gi¶ thiÕt X = X1....Xm , trong ®ã mçi X1,...,Xm lµ mét
khèi cã ®é dµi k. Vµ ta ®Þnh nghÜa b¶n mËt m· cña X lµ:
eK(X) = eK(X1....Xm ) = eK(X1)....eK(Xm).
§Æt Y = eK(X1)....eK(Xm), ta cã thÓ viÕt Y = Y1....Ym víi Yi =eK(Xi), vµ do
®ã cã
dK(Y) = dK(Y1)....dK(Ym) = X1....Xm = X.
C¸ch m· theo khèi ®¬n gi¶n vµ th«ng dông nhÊt lµ khi ta chän ®é
dµi khèi k =1. Khi ®ã víi mäi b¶n râ X = x1...xm ∈ P * ta cã
eK(X) = eK(x1....xm ) = eK(x1)....eK(xm).
Víi c¸ch m· theo dßng (stream cipher), tr−íc hÕt ta ph¶i x¸c
®Þnh mét dßng khãa, tøc lµ mét phÇn tö K = K1...Km ∈ K *
, víi dßng
khãa ®ã ta x¸c ®Þnh víi mäi b¶n râ X = x1...xm ∈ P * b¶n m· t−¬ng
øng lµ
eK(X) = 1
1 1
( ... ) ( )... ( ).
m
K m K K m
e x x e x e x
=
Gi¶i m· Y = eK(X) ta ®−îc
dK(Y) = .
1 1 1 1
( ( )).... ( ( )) ....
m m
K K K K m m
d e x d e x x x X
= =
§Ó sö dông c¸ch lËp mËt m· theo dßng, ngoµi s¬ ®å mËt m·
gèc ta cßn ph¶i cã mét dßng khãa, tøc lµ mét d·y cã ®é dµi tïy ý c¸c
ký tù khãa. §ã th−êng lµ c¸c d·y c¸c ký tù khãa ®−îc sinh ra bëi
mét bé "t¹o d·y ngÉu nhiªn" nµo ®ã xuÊt ph¸t tõ mét "mÇm" chän
tr−íc. Trong c¸c øng dông thùc tÕ, ng−êi ta th−êng dïng c¸ch m·
theo dßng cã s¬ ®å mËt m· gèc lµ s¬ ®å Vernam víi
P = C = K = {0,1}
vµ c¸c hµm lËp m· vµ gi¶i m· ®−îc x¸c ®Þnh bëi
eK(x) = x + K mod 2, dK(y) = y +K mod 2 (K = 0 hoÆc 1);
dßng khãa lµ d·y bit ngÉu nhiªn ®−îc sinh ra bëi mét bé t¹o d·y bit
ngÉu nhiªn nµo ®ã.
1.3. MËt m· khãa ®èi xøng vµ mËt m· cã khãa c«ng khai.
Theo ®Þnh nghÜa 1.2.1 vÒ s¬ ®å mËt m·, cø mçi lÇn truyÒn tin
b¶o mËt, c¶ ng−êi göi A vµ ng−êi nhËn B ph¶i cïng tháa thuËn
tr−íc víi nhau mét khãa chung K, sau ®ã ng−êi göi dïng eK ®Ó lËp
mËt m· cho th«ng b¸o göi ®i, vµ ng−êi nhËn dïng dK ®Ó gi¶i m·
b¶n mËt m· nhËn ®−îc. Ng−êi göi vµ ng−êi nhËn cïng cã mét khãa
15
16
chung K, ®−îc gi÷ nh− bÝ mËt riªng cña hai ng−êi, dïng c¶ cho lËp
mËt m· vµ gi¶i m·, ta gäi nh÷ng hÖ mËt m· víi c¸ch sö dông ®ã lµ
mËt m· khãa ®èi xøng, ®«i khi còng gäi lµ mËt m· truyÒn thèng, v×
®ã lµ c¸ch ®· ®−îc sö dông tõ hµng ngµn n¨m nay.
Tuy nhiªn, vÒ nguyªn t¾c hai hµm lËp m· vµ gi¶i m· lµ kh¸c
nhau, kh«ng nhÊt thiÕt ph¶i phô thuéc cïng mét khãa. NÕu ta x¸c
®Þnh mçi khãa K gåm cã hai phÇn K = (K' , K'' ), K' dµnh cho viÖc lËp
mËt m· (vµ ta cã hµm lËp m· eK' ), K'' dµnh cho viÖc gi¶i m· (vµ cã
hµm gi¶i m· dK'' ), c¸c hµm lËp m· vµ gi¶i m· tháa m·n hÖ thøc
dK'' (eK' (x)) = x víi mäi x ∈P ,
th× ta ®−îc mét hÖ mËt m· khãa phi ®èi xøng. Nh− vËy, trong mét
hÖ mËt m· khãa phi ®èi xøng, c¸c khãa lËp m· vµ gi¶i m· (K' vµ K''
) lµ kh¸c nhau, nh−ng tÊt nhiªn cã quan hÖ víi nhau. Trong hai khãa
®ã, khãa cÇn ph¶i gi÷ bÝ mËt lµ khãa gi¶i m· K'' , cßn khãa lËp m· K'
cã thÓ ®−îc c«ng bè c«ng khai; tuy nhiªn ®iÒu ®ã chØ cã ý nghÜa thùc
tiÔn khi viÖc biÕt K' t×m K'' lµ cùc kú khã kh¨n ®Õn møc hÇu nh−
kh«ng thÓ thùc hiÖn ®−îc. Mét hÖ mËt m· khãa phi ®èi xøng cã tÝnh
chÊt nãi trªn, trong ®ã khãa lËp mËt m· K' cña mçi ng−êi tham gia
®Òu ®−îc c«ng bè c«ng khai, ®−îc gäi lµ hÖ mËt m· khãa c«ng khai.
Kh¸i niÖm mËt m· khãa c«ng khai míi ®−îc ra ®êi vµo gi÷a nh÷ng
n¨m 1970, vµ ngay sau ®ã ®· trë thµnh mét kh¸i niÖm trung t©m cña
khoa häc mËt m· hiÖn ®¹i. Ta sÏ dµnh phÇn lín néi dung gi¸o tr×nh
nµy cho c¸c hÖ mËt m· ®ã vµ nh÷ng øng dông cña chóng vµo c¸c
vÊn ®Ò an toµn th«ng tin.
1.4. C¸c bµi to¸n vÒ an toµn th«ng tin.
Chóng ta ®ang sèng trong mét thêi ®¹i bïng næ th«ng tin.
Nhu cÇu trao ®æi th«ng tin vµ c¸c ph−¬ng tiÖn truyÒn ®−a th«ng tin
ph¸t triÓn mét c¸ch nhanh chãng. Vµ cïng víi sù ph¸t triÓn ®ã, ®ßi
hái b¶o vÖ tÝnh bÝ mËt vµ an toµn cña th«ng tin còng cµng ngµy cµng
to lín vµ cã tÝnh phæ biÕn. Cã nhiÒu bµi to¸n kh¸c nhau vÒ yªu cÇu
an toµn th«ng tin tïy theo nh÷ng t×nh huèng kh¸c nhau, nh−ng tùu
17
trung cã mét sè bµi to¸n chung nhÊt mµ ta th−êng gÆp trong thùc
tiÔn lµ nh÷ng bµi to¸n sau ®©y:
- b¶o mËt : gi÷ th«ng tin ®−îc bÝ mËt ®èi víi tÊt c¶ mäi
ng−êi, trõ mét Ýt ng−êi cã thÈm quyÒn ®−îc ®äc, biÕt th«ng tin ®ã;
- toµn vÑn th«ng tin : b¶o ®¶m th«ng tin kh«ng bÞ thay ®æi
hay xuyªn t¹c bëi nh÷ng kÎ kh«ng cã thÈm quyÒn hoÆc b»ng nh÷ng
ph−¬ng tiÖn kh«ng ®−îc phÐp;
- nhËn thùc mét thùc thÓ : x¸c nhËn danh tÝnh cña mét thùc
thÓ, ch¼ng h¹n mét ng−êi, mét m¸y tÝnh cuèi trong m¹ng, mét thÎ
tÝn dông,... ;
- nhËn thùc mét th«ng b¸o : x¸c nhËn nguån gèc cña mét
th«ng b¸o ®−îc göi ®Õn ;
- ch÷ ký : mét c¸ch ®Ó g¾n kÕt mét th«ng tin víi mét thùc thÓ,
th−êng dïng trong bµi to¸n nhËn thùc mét th«ng b¸o còng nh−
trong nhiÒu bµi to¸n nhËn thùc kh¸c ;
- ñy quyÒn : chuyÓn cho mét thùc thÓ kh¸c quyÒn ®−îc ®¹i
diÖn hoÆc ®−îc lµm mét viÖc g× ®ã ;
- cÊp chøng chØ : cÊp mét sù x¸c nhËn th«ng tin bëi mét thùc
thÓ ®−îc tÝn nhiÖm ;
- b¸o nhËn : x¸c nhËn mét th«ng b¸o ®· ®−îc nhËn hay mét
dÞch vô ®· ®−îc thùc hiÖn ;
- lµm chøng : kiÓm thö viÖc tån t¹i mét th«ng tin ë mét thùc
thÓ kh¸c víi ng−êi chñ së h÷u th«ng tin ®ã ;
- kh«ng chèi bá ®−îc : ng¨n ngõa viÖc chèi bá tr¸ch nhiÖm
®èi víi mét cam kÕt ®· cã (thÝ dô ®· ký vµo mét v¨n b¶n) ;
- Èn danh : che giÊu danh tÝnh cña mét thùc thÓ tham gia
trong mét tiÕn tr×nh nµo ®ã (th−êng dïng trong giao dÞch tiÒn ®iÖn
tö) ;
- thu håi : rót l¹i mét giÊy chøng chØ hay ñy quyÒn ®· cÊp;
- v©n v©n........
C¬ së cña c¸c gi¶i ph¸p cho c¸c bµi to¸n kÓ trªn lµ c¸c ph−¬ng ph¸p
mËt m·, ®Æc biÖt lµ mËt m· khãa c«ng khai, ta sÏ xem xÐt kü mét vµi
bµi to¸n ®ã trong c¸c ch−¬ng tiÕp theo.
18
1.5. Th¸m m· vµ tÝnh an toµn cña c¸c hÖ mËt m·.
1.5.1. VÊn ®Ò th¸m m·.
MËt m· ®−îc sö dông tr−íc hÕt lµ ®Ó b¶o ®¶m tÝnh bÝ mËt cho
c¸c th«ng tin ®−îc trao ®æi, vµ do ®ã bµi to¸n quan träng nhÊt cña
th¸m m· còng lµ bµi to¸n ph¸ bá tÝnh bÝ mËt ®ã, tøc lµ tõ b¶n mËt
m· cã thÓ thu ®−îc dÔ dµng (trªn c¸c kªnh truyÒn tin c«ng céng)
ng−êi th¸m m· ph¶i ph¸t hiÖn ®−îc néi dung th«ng tin bÞ che giÊu
trong b¶n mËt m· ®ã, mµ tèt nhÊt lµ t×m ra ®−îc b¶n râ gèc cña b¶n
mËt m· ®ã. T×nh huèng th−êng gÆp lµ b¶n th©n s¬ ®å hÖ thèng mËt
m·, kÓ c¶ c¸c phÐp lËp m· vµ gi¶i m· (tøc c¸c thuËt to¸n E vµ D ),
kh«ng nhÊt thiÕt lµ bÝ mËt, do ®ã bµi to¸n qui vÒ viÖc t×m ch×a khãa
mËt m· K, hay ch×a khãa gi¶i m· K'', nÕu hÖ mËt m· cã khãa phi ®èi
xøng. Nh− vËy, ta cã thÓ qui −íc xem bµi to¸n th¸m m· c¬ b¶n lµ bµi
to¸n t×m khãa mËt m· K (hay khãa gi¶i m· K''). §Ó gi¶i bµi to¸n ®ã,
gi¶ thiÕt ng−êi th¸m m· biÕt th«ng tin vÒ s¬ ®å hÖ mËt m· ®−îc
dïng, kÓ c¶ c¸c phÐp lËp m· vµ gi¶i m· tæng qu¸t E vµ D . Ngoµi
ra, ng−êi th¸m m· cã thÓ biÕt thªm mét sè th«ng tin kh¸c, tïy theo
nh÷ng th«ng tin ®−îc biÕt thªm nµy mµ ta cã thÓ ph©n lo¹i bµi to¸n
th¸m m· thµnh c¸c bµi to¸n cô thÓ nh− sau:
- bµi to¸n th¸m m· chØ biÕt b¶n m· : lµ bµi to¸n phæ biÕn nhÊt,
khi ng−êi th¸m m· chØ biÕt mét b¶n mËt m· Y;
- bµi to¸n th¸m m· khi biÕt c¶ b¶n râ : ng−êi th¸m m· biÕt
mét b¶n mËt m· Y cïng víi b¶n râ t−¬ng øng X;
- bµi to¸n th¸m m· khi cã b¶n râ ®−îc chän : ng−êi th¸m m·
cã thÓ chän mét b¶n râ X, vµ biÕt b¶n mËt m· t−¬ng øng Y . §iÒu
nµy cã thÓ xÈy ra khi ng−êi th¸m m· chiÕm ®−îc (t¹m thêi) m¸y lËp
m·;
- bµi to¸n th¸m m· khi cã b¶n m· ®−îc chän : ng−êi th¸m m·
cã thÓ chän mét b¶n mËt m· Y, vµ biÕt b¶n râ t−¬ng øng X. §iÒu nµy
cã thÓ xÈy ra khi ng−êi th¸m m· chiÕm ®−îc t¹m thêi m¸y gi¶i m·.
1.5.2. TÝnh an toµn cña mét hÖ mËt m·.
19
TÝnh an toµn cña mét hÖ thèng mËt m· phô thuéc vµo ®é khã
kh¨n cña bµi to¸n th¸m m· khi sö dông hÖ mËt m· ®ã. Ng−êi ta ®·
®Ò xuÊt mét sè c¸ch hiÓu cho kh¸i niÖm an toµn cña hÖ thèng mËt
m·, ®Ó trªn c¬ së c¸c c¸ch hiÓu ®ã nghiªn cøu tÝnh an toµn cña nhiÒu
hÖ mËt m· kh¸c nhau, sau ®©y ta giíi thiÖu vµi c¸ch hiÓu th«ng
dông nhÊt:
- An toµn v« ®iÒu kiÖn : gi¶ thiÕt ng−êi th¸m m· cã ®−îc
th«ng tin vÒ b¶n m·. Theo quan niÖm lý thuyÕt th«ng tin, nÕu nh÷ng
hiÓu biÕt vÒ b¶n m· kh«ng thu hÑp ®−îc ®é bÊt ®Þnh vÒ b¶n râ ®èi
víi ng−êi th¸m m·, th× hÖ mËt m· lµ an toµn v« ®iÒu kiÖn, hay theo
thuËt ng÷ cña C. Shannon, hÖ lµ bÝ mËt hoµn toµn. Nh− vËy, hÖ lµ an
toµn v« ®iÒu kiÖn, nÕu ®é bÊt ®Þnh vÒ b¶n râ sau khi ng−êi th¸m m·
cã ®−îc c¸c th«ng tin (vÒ b¶n m·) b»ng ®é bÊt ®Þnh vÒ b¶n râ tr−íc
®ã. TÝnh an toµn v« ®iÒu kiÖn ®· ®−îc nghiªn cøu cho mét sè hÖ mËt
m· khãa ®èi xøng mµ ta sÏ tr×nh bµy trong ch−¬ng 3.
- An toµn ®−îc chøng minh : mét hÖ thèng mËt m· ®−îc xem
lµ cã ®é an toµn ®−îc chøng minh nÕu ta cã thÓ chøng minh ®−îc lµ
bµi to¸n th¸m m· ®èi víi hÖ thèng ®ã khã t−¬ng ®−¬ng víi mét bµi
to¸n khã ®· biÕt, thÝ dô bµi to¸n ph©n tÝch mét sè nguyªn thµnh tÝch
c¸c thõa sè nguyªn tè, bµi to¸n t×m l«garit rêi r¹c theo mét m«®uyn
nguyªn tè, v.v... (khã t−¬ng ®−¬ng cã nghÜa lµ nÕu bµi to¸n nµy gi¶i
®−îc th× bµi to¸n kia còng gi¶i ®−îc víi cïng mét ®é phøc t¹p nh−
nhau).
- An toµn tÝnh to¸n : hÖ mËt m· ®−îc xem lµ an toµn (vÒ mÆt)
tÝnh to¸n, nÕu mäi ph−¬ng ph¸p th¸m m· ®· biÕt ®Òu ®ßi hái mét
nguån n¨ng lùc tÝnh to¸n v−ît mäi kh¶ n¨ng (kÓ c¶ ph−¬ng tiÖn
thiÕt bÞ) tÝnh to¸n cña mét kÎ thï gi¶ ®Þnh. An toµn theo nghÜa nµy,
nãi theo ng«n ng÷ cña lý thuyÕt vÒ ®é phøc t¹p tÝnh to¸n, lµ bao
hµm c¶ kh¸i niÖm an toµn theo nghia "®−îc chøng minh" nãi trªn.
TÝnh an toµn theo nghÜa ®−îc chøng minh hay tÝnh to¸n ®−îc
sö dông nhiÒu trong viÖc nghiªn cøu c¸c hÖ thèng mËt m· hiÖn ®¹i,
®Æc biÖt lµ c¸c hÖ thèng mËt m· khãa c«ng khai, ta sÏ tr×nh bµy riªng
cho tõng hÖ mËt m· ®−îc tr×nh bµy trong c¸c ch−¬ng vÒ sau. ë môc
20
1,4 ta ®· giíi thiÖu mét sè bµi to¸n vÒ an toµn th«ng tin nãi chung.
C¸c bµi to¸n ®ã ®Òu cã h¹t nh©n lµ tÝnh an toµn cña mét hÖ mËt m·
nµo ®ã, cho nªn viÖc nghiªn cøu tÝnh an toµn cña c¸c hÖ mËt m·
còng gãp phÇn gi¶i quyÕt c¸c vÊn ®Ò an toµn th«ng tin kÓ trªn.
CH¦¥NG II
C¬ së to¸n häc cña lý
thuyÕt mËt m·
2.1. Sè häc c¸c sè nguyªn. ThuËt to¸n Euclide.
Ta ký hiÖu Z lµ tËp hîp c¸c sè nguyªn, Z = {.....,-2,-1,0,1,2,....},
vµ Z+
lµ tËp hîp c¸c sè nguyªn kh«ng ©m, Z+
= {0,1,2,.....}. Trong môc
nµy ta sÏ nh¾c l¹i mét sè kiÕn thøc vÒ sè häc cña c¸c sè nguyªn cÇn
cho viÖc tr×nh bµy lý thuyÕt mËt m·. V× ®Ó tËp gi¸o tr×nh kh«ng qu¸
dµi dßng, c¸c kiÕn thøc sÏ ®−îc nh¾c ®Õn chñ yÕu lµ c¸c kh¸i niÖm,
c¸c mÖnh ®Ò sÏ ®−îc sö dông, v.v..., cßn c¸c phÇn chøng minh sÏ
®−îc l−îc bá, b¹n ®äc nµo muèn t×m hiÓu kü h¬n cã thÓ tham kh¶o
c¸c s¸ch chuyªn vÒ Sè häc.
2.1.1. TÝnh chia hÕt cña c¸c sè nguyªn.
TËp hîp Z lµ ®ãng kÝn ®èi víi c¸c phÐp céng, trõ vµ nh©n,
nh−ng kh«ng ®ãng kÝn ®èi víi phÐp chia: chia mét sè nguyªn cho
mét sè nguyªn kh«ng ph¶i bao giê còng ®−îc kÕt qu¶ lµ mét sè
nguyªn! V× vËy, tr−êng hîp chia hÕt, tøc khi chia sè nguyªn a cho sè
nguyªn b ®−îc th−¬ng lµ mét sè nguyªn q , a = b.q, cã mét ý nghÜa
®Æc biÖt. Khi ®ã, ta nãi a chia hÕt cho b, b chia hÕt a, a lµ béi sè cña b,
b lµ −íc sè cña a, vµ ký hiÖu lµ b⏐a. DÔ thÊy ngay r»ng sè 1 lµ −íc
sè cña mäi sè nguyªn bÊt kú, sè 0 lµ béi sè cña mäi sè nguyªn bÊt
kú, mäi sè nguyªn a lµ −íc sè, ®ång thêi lµ béi sè, cña chÝnh nã.
Cho hai sè nguyªn bÊt kú a vµ b , b > 1. Thùc hiÖn phÐp chia a cho b
ta sÏ ®−îc hai sè q vµ r sao cho
a = b.q + r , 0 < r < b .
Sè q ®−îc gäi lµ sè th−¬ng cña phÐp chia a cho b, ký hiÖu a divb, vµ
sè r ®−îc gäi lµ sè d− cña phÐp chia a cho b, ký hiÖu a modb. ThÝ
dô: 25 div 7 = 3 vµ 25 mod 7 = 4, -25 div 7 = -4 vµ -25 mod 7 = 3.
Mét sè nguyªn d ®−îc gäi lµ −íc sè chung cña hai sè nguyªn a vµ b
nÕu d ⏐a vµ d ⏐b. Sè nguyªn d ®−îc gäi lµ −íc sè chung lín nhÊt
cña a vµ b nÕu d > 0, d lµ −íc sè chung cña a vµ b, vµ mäi −íc sè
chung cña a vµ b ®Òu lµ −íc sè cña d . Ta ký hiÖu −íc sè chung lín
nhÊt cña a vµ b lµ gcd(a,b). ThÝ dô gcd(12,18) = 6, gcd(-18, 27) = 3.
DÔ thÊy r»ng víi mäi sè nguyªn d−¬ng a ta cã gcd(a,0) = a , ta còng
sÏ qui −íc xem r»ng gcd(0, 0) = 0.
Mét sè nguyªn a > 1 ®−îc gäi lµ sè nguyªn tè, nÕu a kh«ng cã −íc
sè nµo ngoµi 1 vµ chÝnh a ; vµ ®−îc gäi lµ hîp sè , nÕu kh«ng ph¶i lµ
nguyªn tè. ThÝ dô c¸c sè 2 ,3 , 5, 7 lµ sè nguyªn tè; c¸c sè 4, 6, 8, 10,
12, 14, 15 lµ hîp sè. Hai sè a vµ b ®−îc gäi lµ nguyªn tè víi nhau,
nÕu chóng kh«ng cã −íc sè chung nµo kh¸c 1, tøc lµ nÕu gcd(a,b) =
1. Mét sè nguyªn n > 1 bÊt kú ®Òu cã thÓ viÕt d−íi d¹ng:
1 2
1 2
. ... k
k
n p p pα
α α
=
trong ®ã p1 , p2 ,..., pk lµ c¸c sè nguyªn tè kh¸c nhau, α1 , α2 ,..., αk lµ
c¸c sè mò nguyªn d−¬ng. NÕu kh«ng kÓ thø tù c¸c thõa sè nguyªn
tè, th× d¹ng biÓu diÔn ®ã lµ duy nhÊt, ta gäi ®ã lµ d¹ng khai triÓn
chÝnh t¾c cña n . ThÝ dô d¹ng khai triÓn chÝnh t¾c cña 1800 lµ 23
32
52
.
C¸c sè nguyªn tè vµ c¸c vÊn ®Ò vÒ sè nguyªn tè cã mét vai trß quan
träng trong sè häc vµ trong øng dông vµo lý thuyÕt mËt m·, ta sÏ xÐt
riªng trong mét môc sau.
§Þnh lý 2.1.1. NÕu b > 0 vµ b ⏐a th× gcd(a ,b) = b.
21
NÕu a = bq + r th× gcd(a,b) = gcd(b,r).
Mét sè nguyªn m ®−îc gäi lµ béi sè chung cña a vµ b nÕu a ⏐m vµ
b⏐m. Sè m ®−îc gäi lµ béi sè chung bÐ nhÊt cña a vµ b , vµ ®−îc ký
hiÖu lµ lcm(a ,b), nÕu m > 0, m lµ béi sè chung cña a vµ b , vµ mäi
béi sè chung cña a vµ b ®Òu lµ béi cña m . ThÝ dô lcm(14,21) = 42.
Víi hai sè nguyªn d−¬ng a vµ b bÊt kú ta cã quan hÖ
lcm(a,b).gcd(a,b) = a.b.
Tõ ®Þnh lý 2.1.1 ta suy ra thuËt to¸n sau ®©y thùc hiÖn viÖc
t×m −íc sè chung lín nhÊt cña hai sè nguyªn bÊt kú:
ThuËt to¸n Euclide t×m −íc sè chung lín nhÊt :
INPUT: hai sè nguyªn kh«ng ©m a vµ b , víi a ≥b .
OUTPUT: −íc sè chung lín nhÊt cña a vµ b.
1. Trong khi cßn b > 0, thùc hiÖn:
1.1. ®Æt r ←a modb , a ←b , b ← r.
2. Cho ra kÕt qu¶ (a).
ThÝ dô: Dïng thuËt to¸n Euclide t×m gcd( 4864, 3458), ta lÇn
l−ît ®−îc c¸c gi¸ trÞ g¸n cho c¸c biÕn a, b vµ r nh− sau:
22
4864 = 1. 3458 + 1406
3458 = 2. 1406 + 646
1406 = 2. 646 + 114
646 = 5. 114 + 76
114 = 1. 76 + 38
76 = 2. 38 + 0
a b r
4864
3458
1406
646
114
76
38
3458
1406
646
114
76
38
0
1406
646
114
76
38
0
23
Vµ thuËt to¸n cho ta kÕt qu¶: gcd(4864, 3458) = 38.
Ta biÕt r»ng nÕu gcd(a,b) = d, th× ph−¬ng tr×nh bÊt ®Þnh
a.x + b.y = d
cã nghiÖm nguyªn (x,y), vµ mét nghiÖm nguyªn (x,y) nh− vËy cã thÓ
t×m ®−îc bëi thuËt to¸n Euclide më réng nh− sau:
ThuËt to¸n Euclide më réng :
INPUT: hai sè nguyªn kh«ng ©m a vµ b víi a ≥b.
OUTPUT: d = gcd(a,b) vµ hai sè x,y sao cho a.x + b.y = d.
1. NÕu b = 0 th× ®Æt d← a , x ←1, y ← 0, vµ cho ra (d,x,y).
2. §Æt x2 = 1, x1 = 0 , y2 = 0 , y1 = 1.
3. Trong khi cßn b >0, thùc hiÖn:
3.1. q←a divb, r ← a modb , x ← x2 − qx1 , y ← y2 − qy1.
3.2. a ←b, b ←r , x2 ← x1 , x1← x , y2← y1 vµ y1←y.
4. §Æt d ← a, x ←x2 , y ← y2 , vµ cho ra kÕt qu¶ (d,x,y).
ThÝ dô: Dïng thuËt to¸n Euclide më réng cho c¸c sè a = 4864 vµ b =
3458, ta lÇn l−ît ®−îc c¸c gi¸ trÞ sau ®©y cho c¸c biÕn a, b, q, r, x, y,
x1 , x2 , y1 , y2 (sau mçi chu tr×nh thùc hiÖn hai lÖnh 3.1 vµ 3.2) :
a b
q
r x y
x1 x2 y1 y2
4864 3458 0 1 1 0
3458 1406 1 1406 1 -1 1 0 -1 1
1406 646 2 646 -2 3 -2 1 3 -1
646 114 2 114 5 -7 5 -2 -7 3
114 76 5 76 -27 38 -27 5 38 -7
24
76 38 1 38 32 -45 32 -27 -45 38
38 0 2 0 -91 128 -91 32 128 -45
Ta dÔ thö l¹i r»ng sau mçi lÇn thùc hiÖn chu tr×nh gåm hai lÖnh 3.1
vµ 3.2, c¸c gi¸ trÞ x,y,r thu ®−îc lu«n tho¶ m·n 4864.x + 3458.y = r ,
vµ do ®ã khi kÕt thóc c¸c vßng lÆp (øng víi gi¸ trÞ b = 0), thùc hiÖn
tiÕp lÖnh 4 ta ®−îc kÕt qu¶ d = 38, x = 32 vµ y = -45, cÆp sè (32,-45)
tho¶ m·n: 4864.32 + 3458. (-45) = 38.
2.1.2. §ång d− vµ ph−¬ng tr×nh ®ång d− tuyÕn tÝnh.
Cho n lµ mét sè nguyªn d−¬ng. Ta nãi hai sè nguyªn a vµ b
lµ ®ång d− víi nhau theo m«®uyn n , vµ viÕt a ≡ b (modn ), nÕu n ⏐
a−b (tøc còng lµ nÕu a − b chia hÕt cho n , hay khi chia a vµ b cho n
ta ®−îc cïng mét sè d− nh− nhau).
ThÝ dô: 23 ≡ 8 (mod 5 ), v× 23 − 8 = 5.3, -19 ≡ 9 (mod 7) v× -19 − 9
= -4 . 7.
Quan hÖ ®ång d− (theo mét m«®uyn n ) trªn tËp hîp c¸c sè
nguyªn cã c¸c tÝnh chÊt ph¶n x¹, ®èi xøng vµ b¾c cÇu,tøc lµ mét
quan hÖ t−¬ng ®−¬ng, do ®ã nã t¹o ra mét ph©n ho¹ch trªn tËp hîp
tÊt c¶ c¸c sè nguyªn Z thµnh ra c¸c líp t−¬ng ®−¬ng: hai sè nguyªn
thuéc cïng mét líp t−¬ng ®−¬ng khi vµ chØ khi chóng cho cïng mét
sè d− nÕu chia cho n. Mçi líp t−¬ng ®−¬ng nh− vËy ®−îc ®¹i diÖn
bëi mét sè duy nhÊt trong tËp hîp Zn = {0, 1, 2, 3,...., n -1}, lµ sè d−
chung khi chia c¸c sè trong líp ®ã cho n. V× vËy, ta cã thÓ ®ång nhÊt
Zn víi tËp hîp tÊt c¶ c¸c líp t−¬ng ®−¬ng c¸c sè nguyªn theo modn ;
trªn tËp ®ã ta cã thÓ x¸c ®Þnh c¸c phÐp tÝnh céng, trõ vµ nh©n theo
modn.
ThÝ dô: Z25 = {0, 1, 2, ..., 24}. Trong Z25 , 15 + 14 = 4, v× 15 + 14 = 29 =
4 (mod 25). T−¬ng tù, 15.14 = 10 trong Z25 .
25
Cho a ∈Zn . Mét sè nguyªn x ∈ Zn ®−îc gäi lµ nghÞch ®¶o
cña a theo mod n , nÕu a.x ≡ 1 (modn). NÕu cã sè x nh− vËy th× ta
nãi a lµ kh¶ nghÞch, vµ ký hiÖu x lµ a-1
modn. ThÝ dô 22-1
mod25 = 8,
v× 22 .8 = 176 ≡ 1 (mod25). Tõ ®Þnh nghÜa ta cã thÓ suy ra r»ng a lµ
kh¶ nghÞch theo modn khi vµ chØ khi gcd(a,n ) = 1, tøc lµ khi a vµ n
nguyªn tè víi nhau.
Ta ®Þnh nghÜa phÐp chia trong Zn nh− sau: a : b (mod n) = a.b-
1
modn. PhÐp chia chØ thùc hiÖn ®−îc khi b lµ kh¶ nghÞch theo
modn. ThÝ dô 15 : 22 (mod25) = 15.22-1
mod 25 = 20.
B©y giê ta xÐt c¸c ph−¬ng tr×nh ®ång d− tuyÕn tÝnh.
Ph−¬ng tr×nh ®ång d− tuyÕn tÝnh cã d¹ng
a.x ≡ b (modn ), (1)
trong ®ã a, b, n lµ c¸c sè nguyªn, n > 0, x lµ Èn sè. Ph−¬ng tr×nh ®ã
cã nghiÖm khi vµ chØ khi d = gcd(a,n )⏐b, vµ khi ®ã nã cã ®óng d
nghiÖm theo modn. Thùc vËy, ®Æt a‘ = a/d , b = b/d , n = n/d ,
ta thÊy ph−¬ng tr×nh ®ång d− (1) t−¬ng ®−¬ng víi ph−¬ng tr×nh
a .x ≡ b (modn ),
V× gcd(a ,n ) = 1, nªn ph−¬ng tr×nh nµy cã mét nghiÖm theo
modn :
x = x0 ≡ b .a -1
(modn ),
vµ do ®ã ph−¬ng tr×nh (1) cã d nghiÖm theo modn lµ :
x = x0 , x0 + n , .... , x0 + (d − 1)n (modn).
TÊt c¶ d nghiÖm ®ã kh¸c nhau theo modn , nh−ng cïng ®ång d− víi
nhau theo modn .
B©y giê ta xÐt hÖ thèng c¸c ph−¬ng tr×nh ®ång d− tuyÕn tÝnh.
Mét hÖ nh− vËy cã thÓ ®−a vÒ d¹ng
1 1 1
2 2 2
(mod )
(mod )
........................
(mod )
k k k
x a n
x a n
x a n
⎧ ≡
⎪
⎪
⎪
⎪ ≡
⎪
⎪
⎨
⎪
⎪
⎪
⎪ ≡
⎪
⎪
⎩
(2)
Ta ký hiÖu: n = n1.n2....nk , Ni = n/ni . Ta cã ®Þnh lý sau ®©y:
§Þnh lý 2.2.1 (®Þnh lý sè d− Trung quèc). Gi¶ sö c¸c sè
nguyªn n1, n2,....,nk lµ tõng cÆp nguyªn tè víi nhau. Khi ®ã, hÖ
ph−¬ng tr×nh ®ång d− tuyÕn tÝnh (2) cã mét nghiÖm duy nhÊt theo
modn.
NghiÖm duy nhÊt nãi trong ®Þnh lý 2.2.1 ®−îc cho bëi biÓu thøc:
x = 1
. . mod ,
k
i i i
i
a N M n
=
∑
trong ®ã Mi = Ni
-1
modni (cã Mi v× Ni vµ ni nguyªn tè víi nhau).
ThÝ dô: CÆp ph−¬ng tr×nh x ≡ 3 (mod7) vµ x ≡ 7 (mod13) cã mét
nghiÖm duy nhÊt x ≡ 59 (mod91).
NÕu (n1 , n2) = 1, th× cÆp ph−¬ng tr×nh x ≡ a (modn1) vµ x ≡ a
(modn2) cã nghiÖm duy nhÊt x ≡ a (modn) theo modn víi n = n1n2 .
2.1.3.ThÆng d− thu gän vµ phÇn tö nguyªn thuû.
TËp Zn = { 0,1,2,..., n −1} th−êng ®−îc gäi lµ tËp c¸c thÆng d− ®Çy ®ñ
theo modn, v× mäi sè nguyªn bÊt kú ®Òu cã thÓ t×m ®−îc trong Zn
mét sè ®ång d− víi m×nh (theo modn ). TËp Zn lµ ®ãng ®èi víi c¸c
phÐp tÝnh céng, trõ vµ nh©n theo modn , nh−ng kh«ng ®ãng ®èi víi
phÐp chia, v× phÐp chia cho a theo modn chØ cã thÓ thùc hiÖn ®−îc
khi a vµ n nguyªn tè víi nhau, tøc khi gcd( a ,n ) =1.
26
B©y giê ta xÐt tËp Zn
*
= { a ∈ Zn : gcd( a ,n ) = 1} , tøc Zn
*
lµ tËp con
cña Zn bao gåm tÊt c¶ c¸c phÇn tö nguyªn tè víi n. Ta gäi tËp ®ã lµ
tËp c¸c thÆng d− thu gän theo modn. Mäi sè nguyªn nguyªn tè víi
n ®Òu cã thÓ t×m thÊy trong Zn
*
mét ®¹i diÖn ®ång d− víi m×nh
theo modn . Chó ý r»ng nÕu p lµ mét sè nguyªn tè th× Zp
*
= {1,2,...,p-
1}.
TËp Zn
*
lËp thµnh mét nhãm con ®èi víi phÐp nh©n cña Zn , v× trong
Zn
*
phÐp chia theo modn bao giê còng thùc hiÖn ®−îc, ta sÏ gäi Zn
*
lµ nhãm nh©n cña Zn .
Theo ®¹i sè häc, ta gäi sè c¸c phÇn tö trong mét nhãm lµ cÊp cña
nhãm ®ã. Ta ký hiÖu φ(n) lµ sè c¸c sè nguyªn d−¬ng bÐ h¬n n vµ
nguyªn tè víi n. Nh− vËy, nhãm Zn
*
cã cÊp φ(n) , vµ nÕu p lµ sè
nguyªn tè th× nhãm Zp
*
cã cÊp p -1.
Ta nãi mét phÇn tö g ∈Zn
*
cã cÊp m , nÕu m lµ sè nguyªn d−¬ng bÐ
nhÊt sao cho gm
=1 trong Zn
*
. Theo mét ®Þnh lý trong §¹i sè, ta cã
m ⏐ φ(n) . V× vËy, víi mäi b ∈Zn
*
ta lu«n cã b φ(n )
≡ 1 modn .
NÕu p lµ sè nguyªn tè, th× do φ(p) = p − 1, ta cã víi mäi b ∈Zp
*
:
27
p (3)
1
1 (mod )
p
b −
≡
NÕu b cã cÊp p - 1, tøc p - 1 lµ sè mò bÐ nhÊt tho¶ m·n c«ng thøc (3),
th× c¸c phÇn tö b, b2
,...., b P-1
®Òu kh¸c nhau vµ theo modp, chóng lËp
thµnh Zp
*
. Theo thuËt ng÷ ®¹i sè, khi ®ã ta nãi Zp
*
lµ mét nhãm
cyclic vµ b lµ mét phÇn tö sinh, hay phÇn tö nguyªn thuû cña nhãm
®ã. Trong lý thuyÕt sè, ng−êi ta ®· chøng minh ®−îc c¸c tÝnh chÊt
sau ®©y cña c¸c phÇn tö nguyªn thuû:
1. Víi mäi sè nguyªn tè p, Zp
*
lµ nhãm cyclic, vµ cã φ(p-1) phÇn
tö nguyªn thuû.
2. NÕu 1 2
1 2
1 . .... s
s
p p p pα
α α
− = lµ khai triÓn chÝnh t¾c cña p -1, vµ
nÕu
1
1
1
1(mod ),....., 1(mod ),
s
p
p
p
p
a p a p
−
−
≡ ≡
th× a lµ phÇn tö nguyªn thuû theo modp (tøc cña Zp
*
).
3. NÕu g lµ phÇn tö nguyªn thuû theo modp , th× β = g modp
víi mäi i mµ gcd(i, p -1) = 1, còng lµ phÇn tö nguyªn thuû theo
modp .
i
n
Ba tÝnh chÊt ®ã lµ c¬ së gióp ta t×m c¸c phÇn tö nguyªn thuû theo
modp , víi p lµ sè nguyªn tè bÊt kú. Ngoµi ra, ta còng chó ý mét sè
tÝnh chÊt sau ®©y, cã thÓ ®−îc sö dông nhiÒu trong c¸c ch−¬ng sau:
a) NÕu p lµ sè nguyªn tè vµ gcd(a,p) =1, th× ap -1
≡ 1 (modp) (®Þnh lý
Fermat ).
b) NÕu a∈Zn
*
, th× . NÕu
th× (®Þnh lý Euler).
( )
1(mod )
n
aφ
≡ (mod ( ))
r s n
φ
≡
(mod )
r s
a a n
≡
2.1.4. Ph−¬ng tr×nh ®ång d− bËc hai vµ thÆng d− bËc hai.
Ta xÐt ph−¬ng tr×nh ®ång d− bËc hai cã d¹ng ®¬n gi¶n sau ®©y:
2
(mod )
x a n
≡ ,
trong ®ã n lµ mét sè nguyªn d−¬ng, a lµ sè nguyªn víi gcd(a,n) =1,
vµ x lµ Èn sè. Ph−¬ng tr×nh ®ã kh«ng ph¶i bao giê còng cã nghiÖm,
khi nã cã nghiÖm th× ta nãi a lµ mét thÆng d− bËc hai modn ; nÕu
kh«ng th× nãi a lµ mét bÊt thÆng d− bËc hai modn. TËp c¸c sè
nguyªn nguyªn tè víi n ®−îc ph©n ho¹ch thµnh hai tËp con: tËp Qn
c¸c thÆng d− bËc hai modn , vµ tËp n
Q c¸c bÊt thÆng d− modn.
Khi n = p lµ sè nguyªn tè, ta cã tiªu chuÈn Euler sau ®©y: Sè a lµ
thÆng d− bËc hai modp nÕu vµ chØ nÕu . Tiªu
chuÈn ®ã ®−îc chøng minh nh− sau:
( 1)/2
1(mod )
p
a p
−
≡
Gi¶ sö cã x sao cho 2
(mod )
x a
≡ p
p
, khi ®ã ta còng sÏ cã
.
( 1)/2 2 ( 1)/2 1
( ) 1(mod )
p p p
a x x
− − −
≡ ≡ ≡
28
Ng−îc l¹i, gi¶ sö . Khi ®ã . LÊy b lµ mét
phÇn tö nguyªn thuû modp , ¾t cã mét sè i nµo ®ã sao cho
.Tõ ®ã,
( 1)/2
1(mod )
p
a p
−
≡ *
p
a Z
∈
mod
i
a b p
=
29
p
( 1)/2 ( 1)/ 2
1(mod ).
p i p
a b
− −
≡ ≡
PhÇn tö b cã cÊp p - 1, do ®ã (p - 1) chia hÕt i(p - 1)/2, i ph¶i lµ sè
ch½n, i = 2j , vµ a cã c¨n bËc hai lµ ±b j
modp.
Cho p lµ mét sè nguyªn tè lÎ. Víi mäi a ≥ 0 ta ®Þnh nghÜa
ký hiÖu Legendre
a
p
⎛ ⎞
⎟
⎜ ⎟
⎜ ⎟
⎜ ⎟
⎜
⎝ ⎠
nh− sau:
0 , 0(mod );
1 , ;
1, .
p
p
khi a p
a
khi a Q
p
khi a Q
⎧
⎪ ≡
⎪
⎛ ⎞ ⎪
⎪
⎟
⎜
⎜
⎜
⎜
⎟= ∈
⎨
⎟
⎟ ⎪
⎝ ⎠ ⎪
⎪− ∉
⎪
⎩
i i Ø
Tõ ®Þnh nghÜa ta suy ra ngay a lµ thÆng d− bËc ha modp kh vµ ch
khi
a
p
⎛ ⎞
⎟
⎜ ⎟
⎜ ⎟
⎜ ⎟
⎜
⎝ ⎠
= 1. Vµ theo tiªu chuÈn Euler nãi trªn, víi mäi a ≥ 0, ta cã:
( 1)/2
(mod ).
p
a
a p
p
−
⎛ ⎞
⎟
⎜
⎜
⎜
⎜
⎟≡
⎟
⎟
⎝ ⎠
B©y giê ta më réng ký hiÖu Legendre ®Ó ®−îc ký hiÖu Jacobi ®èi víi
mäi sè nguyªn lÎ n ≥1 vµ mäi sè nguyªn a ≥ 0, còng ®−îc ký hiÖu
bëi
a
n
⎛ ⎞
⎟
⎜ ⎟
⎜ ⎟
⎜
⎝ ⎠
vµ ®−îc ®Þnh nghÜa nh− sau: Gi¶ sö a cã khai triÓn chÝnh t¾c
thµnh thõa sè nguyªn tè lµ th×
1 2
1 2
. .... k
k
n p p pα
α α
=
1 2
1 2
. .... .
k
k
a a a a
n p p p
α
α α
⎛ ⎞
⎛ ⎞ ⎛ ⎞
⎛ ⎞ ⎟
⎟ ⎟ ⎜
⎜ ⎜
⎟
⎜ ⎟
⎟ ⎟
= ⎜
⎜ ⎜
⎟
⎜ ⎟
⎟ ⎟
⎟ ⎜
⎜ ⎜
⎜ ⎟ ⎟ ⎟
⎜ ⎜ ⎜
⎝ ⎠ ⎝ ⎠ ⎝ ⎠ ⎝ ⎠
Khi n = p lµ sè nguyªn tè th× gi¸ trÞ cña c¸c ký hiÖu Legendre vµ
Jacobi lµ nh− nhau. ViÖc tÝnh ký hiÖu Legendre cã thÓ phøc t¹p khi p
rÊt lín, trong khi viÖc tÝnh ký hiÖu Jacobi cã thÓ thuËn lîi h¬n do cã
thÓ sö dông c¸c tÝnh chÊt 1-4 sau ®©y:
1. NÕu , th×
1 2 (mod )
m m n
≡ 1 2
m m
n n
⎛ ⎞ ⎛ ⎞
⎟ ⎟
⎜ ⎜
=
⎟ ⎟
⎜ ⎜
⎟ ⎟
⎜ ⎜
⎝ ⎠ ⎝ ⎠
.
2.
1, 1(mod8),
2
1, 3(mod8).
khi n
khi n
n
⎧ ≡ ±
⎛ ⎞ ⎪
⎪
⎟
⎜ =
⎟ ⎨
⎜ ⎟
⎜ ⎪
⎝ ⎠ − ≡±
⎪
⎩
3. 1 2 1 2
.
. .
m m m m
n n n
⎛ ⎞ ⎛ ⎞ ⎛
⎟ ⎟
⎜ ⎜ ⎜
=
⎟ ⎟
⎜ ⎜ ⎜
⎟ ⎟
⎜ ⎜ ⎜
⎝ ⎠ ⎝ ⎠ ⎝
⎞
⎟
⎟
⎟
⎠
4. NÕu m vµ n ®Òu lµ sè lÎ, th×
, 3(mod 4) & 3(mod 4),
, 1(mod 4) 1(mod 4).
n
khi m n
m
m
n n
khi m n
m
⎧ ⎛ ⎞
⎪ ⎟
⎪ ⎜
− ≡ ≡
⎟
⎪ ⎜ ⎟
⎜
⎪ ⎝ ⎠
⎛ ⎞ ⎪
⎟
⎜ =
⎟ ⎨
⎜ ⎟
⎜ ⎪
⎝ ⎠ ⎛ ⎞
⎪ ⎟
⎜ ≡ ∨ ≡
⎪ ⎟
⎜ ⎟
⎪ ⎜
⎝ ⎠
⎪
⎩
ThÝ dô: Dïng c¸c tÝnh chÊt ®ã, ta tÝnh ®−îc:
4
3
7411 9283 1872 2 117
.
9283 7411 7411 7411 7411
117 7411 40 2 5
.
7411 117 117 117 117
5 117
117 5
⎛ ⎞ ⎛ ⎞ ⎛ ⎞ ⎛ ⎞ ⎛ ⎞
⎟ ⎟ ⎟ ⎟ ⎟
⎜ ⎜ ⎜ ⎜ ⎜
= = = =
⎟ ⎟ ⎟ ⎟ ⎟
⎜ ⎜ ⎜ ⎜ ⎜
⎟ ⎟ ⎟ ⎟ ⎟
⎜ ⎜ ⎜ ⎜ ⎜
⎝ ⎠ ⎝ ⎠ ⎝ ⎠ ⎝ ⎠ ⎝ ⎠
⎛ ⎞ ⎛ ⎞ ⎛ ⎞ ⎛ ⎞ ⎛ ⎞
⎟ ⎟ ⎟ ⎟
⎜ ⎜ ⎜ ⎜ ⎜
=− =− =− =
⎟ ⎟ ⎟ ⎟
⎜ ⎜ ⎜ ⎜ ⎜
⎟ ⎟ ⎟ ⎟
⎜ ⎜ ⎜ ⎜ ⎜
⎝ ⎠ ⎝ ⎠ ⎝ ⎠ ⎝ ⎠ ⎝ ⎠
⎛ ⎞ ⎛
⎟
⎜ ⎜
=
⎟
⎜ ⎟
⎜
⎝ ⎠ ⎝
⎟
⎟
⎟
2
1.
5
⎞ ⎛ ⎞
⎟ ⎟
⎜
= =−
⎟ ⎟
⎜ ⎜
⎟ ⎟
⎜ ⎜
⎠ ⎝ ⎠
9283 lµ mét sè nguyªn tè. Do ®ã, gi¸ trÞ -1 cña ký hiÖu Jacobi
7411
9283
⎛ ⎟
⎜ ⎟
⎜ ⎟
⎜
⎝ ⎠
⎞
còng lµ gi¸ trÞ cña cïng ký hiÖu Legendre ®ã, vµ ta kÕt luËn
®−îc r»ng 7411 lµ bÊt thÆng d− bËc hai mod 9283 , hay ph−¬ng tr×nh
2
7411(mod9283)
x ≡
30
lµ v« nghiÖm.
B©y giê ta xÐt viÖc gi¶i ph−¬ng tr×nh ®ång d− bËc hai
2
(mod )
x a
≡ n
p
(4)
trong mét tr−êng hîp ®Æc biÖt khi n = p lµ sè nguyªn tè cã d¹ng p
= 4m +3, tøc p ®ång d− víi 3 theo mod4, vµ a lµ mét sè nguyªn
nguyªn tè víi p. Theo tiªu chuÈn Euler ta biÕt ph−¬ng tr×nh (4) cã
nghiÖm khi vµ chØ khi . Khi ®ã ta cã:
( 1)/2
1(mod )
p
a −
≡
1
1
2
2( 1)
(mod ),
(mod ),
p
m
a a
a a
−
+
+
≡
≡
p
p
do ®ã x ≡ ±am +1
(modp) lµ hai nghiÖm cña ph−¬ng tr×nh (4).
2.2. X¸c suÊt vµ thuËt to¸n x¸c suÊt.
2.2.1. Kh¸i niÖm x¸c suÊt.
Ta xÐt mét tËp hîp Ω , ®−îc gäi lµ kh«ng gian c¸c sù kiÖn s¬ cÊp
(hay kh«ng gian mÉu). C¸c phÇn tö cña Ω, tøc c¸c sù kiÖn s¬ cÊp hay
c¸c mÉu, cã thÓ ®−îc xem nh− c¸c kÕt qu¶ cã thÓ cã (vµ lo¹i trõ lÉn
nhau) cña mét thùc nghiÖm nµo ®ã. VÒ sau ta chØ xÐt c¸c kh«ng gian
rêi r¹c, tøc tËp Ω lµ h÷u h¹n, gi¶ sö .
{ }
1 2
, ,..., n
s s s
Ω=
Mét ph©n bè x¸c suÊt P trªn Ω ®−îc ®Þnh nghÜa lµ mét tËp c¸c sè
thùc kh«ng ©m P = { p1, p2,...,pn} cã tæng ∑pi = 1. Sè pi ®−îc coi lµ
x¸c suÊt cña sù kiÖn s¬ cÊp si .
Mét tËp con E ⊆ Ω ®−îc gäi lµ mét sù kiÖn . X¸c suÊt cña sù kiÖn E
®−îc ®Þnh nghÜa bëi p (E ) = ( )
s E
p s
∈
∑ .
Gi¶ sö E lµ mét sù kiÖn trong kh«ng gian x¸c suÊt Ω. Ta ®Þnh nghÜa
sù kiÖn bï cña E, ký hiÖu E , lµ sù kiÖn gåm tÊt c¶ c¸c sù kiÖn s¬ cÊp
31
trong Ω mµ kh«ng thuéc E . Dïng c¸c thuËt ng÷ cña lý thuyÕt tËp
hîp, ta cã thÓ ®Þnh nghÜa c¸csù kiÖn hîp E 1 ∪E 2 vµ sù kiÖn giao E 1
∩E 2 cña hai sù kiÖn E 1 vµ E 2 bÊt kú. Vµ ta cã:
1) Gi¶ sö E lµ mét sù kiÖn. Khi ®ã 0 ≤ p (E ) ≤ 1 vµ p( E ) = 1 - p (E ).
Ngoµi ra, p (Ω) = 1 vµ p (∅) = 0.
2) Gi¶ sö E 1 vµ E 2 lµ hai sù kiÖn. NÕu E 1 ⊆E 2 th× p (E 1) ≤ p (E 2) .
Vµ cã p (E 1∪E 2) + p (E 1 ∩E 2) =p (E 1) + p (E 2) . Do ®ã p (E 1∪E 2) =p
(E 1) + p (E 2) khi vµ chØ khi E 1 ∩E 2 = ∅, tøc lµ khi E 1 vµ E 2 lµ hai sù
kiÖn lo¹i trõ lÉn nhau.
Cho E 1 vµ E 2 lµ hai sù kiÖn, víi p (E 2) > 0. Ta ®Þnh nghÜa x¸c suÊ cã
®iÒu kiÖn cña E
t
1 khi cã E 2 , ký hiÖu ( 1 2
p E E ), lµ
1 2
1 2
2
( )
( )
( )
p E E
p E E
p E
.
∩
=
Tõ ®Þnh nghÜa ta suy ra c«ng thøc Bayes :
( )
( ) ( )
( )
1 2 1
1 2
2
.
.
p E p E E
p E E
p E
= .
Ta nãi hai sù kiÖn E1 vµ E 2 lµ ®éc lËp víi nhau, nÕu p (E 1 ∩E 2) =
p(E1).p(E2). Khi ®ã ta cã: ( ) ( )
1 2 1
p E E p E
= vµ 2 1 2
( ) ( ).
p E E p E
=
Gi¶ sö Ω lµ mét kh«ng gian mÉu víi mét ph©n bè x¸c suÊt P . Ta gäi
mét ®¹i l−îng ngÉu nhiªn ξ trªn Ω lµ mét ¸nh x¹ g¸n cho mçi s ∈Ω
mét sè thùc ξ (s ). HiÓn nhiªn, nÕu ξ vµ η lµ c¸c ®¹i l−îng ngÉu
nhiªn trªn Ω, th× ξ+η , ξ.η ®−îc ®Þnh nghÜa bëi :
32
∀s ∈Ω: (ξ+η ) (s ) = ξ (s) + η (s ) , (ξ.η ) (s) = ξ (s).η (s).
còng lµ c¸c ®¹i l−¬ng ngÉu nhiªn trªn Ω .
Gi¶ sö ξ lµ mét ®¹i l−îng ngÉu nhiªn trªn kh«ng gian mÉu Ω. §iÒu
®ã cã nghÜa lµ víi mäi s ∈Ω, ξ lÊy gi¸ trÞ b»ng ξ (s ) víi x¸c suÊt p(s).
Ta ®Þnh nghÜa gi¸ trÞ kú väng (hay trung b×nh, hay kú väng to¸n
häc) cña ξ lµ
33
p s .
( ) ( ). ( )
s
E s
ξ ξ
∈Ω
=∑
Ph−¬ng sai cña ®¹i l−îng ngÉu nhiªn ξ cã gi¸ trÞ trung b×nh µ ®−îc
®Þnh nghÜa lµ Var (ξ ) = E ((ξ − µ )2
).
C¨n bËc hai kh«ng ©m cña Var (ξ )®−îc gäi lµ ®é lÖch chuÈn cña ξ .
2.2.2. TÝnh bÝ mËt hoµn toµn cña mét hÖ mËt m·.
N¨m 1949, C. Shannon c«ng bè c«ng tr×nh Lý thuyÕt truyÒn
th«ng cña c¸c hÖ bÝ mËt , ®−a ra nhiÒu quan niÖm lµm c¬ së cho viÖc
®¸nh gi¸ tÝnh bÝ mËt cña c¸c hÖ mËt m·, trong ®ã cã kh¸i niÖm tÝnh
bÝ mËt hoµn toµn cña mét hÖ mËt m· ®−îc ®Þnh nghÜa nh− sau: Cho
hÖ mËt m· S = (P , C , K , E , D ) . Gi¶ thö trªn c¸c tËp P , C vµ K ®−îc
x¸c ®Þnh t−¬ng øng c¸c ph©n bè x¸c suÊt pP(.), pC(.) vµ pK(.). Nh−
vËy, víi mäi x ∈P , y ∈ C vµ K ∈K , pP(x), pC(y) vµ pK(K) t−¬ng øng
lµ c¸c x¸c suÊt ®Ó ký tù b¶n râ lµ x, ký tù b¶n m· lµ y vµ kho¸ lµ K.
X¸c suÊt cã ®iÒu kiÖn, ch¼ng h¹n, x¸c suÊt cña viÖc b¶n râ lµ x khi
b¶n m· lµ y, ®−îc ký hiÖu lµ pP(x⏐y). Mét hÖ mËt m· ®−îc gäi lµ bÝ
mËt hoµn toµn, nÕu víi mäi x ∈P , y ∈ C cã pP(x⏐y) = pP(x). §iÒu ®ã
cã nghÜa lµ viÖc biÕt x¸c suÊt b¶n râ lµ x lµ nh− nhau dï biÕt hay
kh«ng biÕt b¶n m· lµ y ; nãi c¸ch kh¸c, cã th«ng tin vÒ b¶n m·
kh«ng cho ta biÕt g× thªm vÒ b¶n râ; b¶n râ vµ b¶n m·, víi t− c¸ch
c¸c biÕn ngÉu nhiªn, lµ ®éc lËp víi nhau. Ta cã ®Þnh lý sau ®©y:
§Þnh lý 2.2.1. Gi¶ sö S = (P , C , K , E , D ) lµ mét hÖ mËt m· víi
®iÒu kiÖn ⏐P ⏐ = ⏐C ⏐ = ⏐K ⏐ , tøc c¸c tËp P , C , K cã sè c¸c phÇn tö b»ng
nhau. Khi ®ã, hÖ lµ bÝ mËt hoµn toµn nÕu vµ chØ nÕu mçi kho¸ K ∈K
®−îc dïng víi x¸c suÊt b»ng nhau lµ 1/⏐K ⏐ , vµ víi mäi x ∈P , y ∈ C
cã mét kho¸ duy nhÊt K ∈K sao cho eK (x ) = y.
Chøng minh. a) Gi¶ thö hÖ S lµ bÝ mËt hoµn toµn. Khi ®ã, víi mäi x
∈P vµ y ∈ C cã pP(x⏐y) = pP(x). Ngoµi ra ta cã thÓ gi¶ thiÕt pC(y) > 0
víi mäi y ∈ C . Tõ ®ã theo c«ng thøc Bayes ta cã pC(y⏐x ) = pC(y) > 0 .
§iÒu ®ã cã nghÜa lµ cã Ýt nhÊt mét kho¸ K sao cho eK (x ) = y . V× vËy,
nÕu cè ®Þnh mét x ∈P th× ta cã
⏐C ⏐ = ⏐{ eK(x ): K ∈K }⏐ ≤ ⏐K ⏐ .
Theo gi¶ thiÕt cña ®Þnh lý, ⏐C ⏐ = ⏐K ⏐ , do ®ã
⏐{ eK(x ): K ∈K }⏐ = ⏐K ⏐ .
Nh−ng ®iÒu nµy l¹i cã nghÜa lµ kh«ng thÓ cã hai kho¸ K1 ≠ K2 sao
cho VËy ta ®· chøng minh ®−îc víi mäi x ∈P vµ y ∈ C
cã ®óng mét kho¸ K sao cho e
1 2
( ) ( ).
K K
e x e x
=
K (x ) = y .
Ký hiÖu n = ⏐K ⏐ vµ ®Æt K = {K1,..., Kn }. Cè ®Þnh mét y ∈ C vµ gi¶ thö
víi P = {x
( )
i
K i
e x y
= 1,....., xn }, 1≤ i ≤ n. Dïng c«ng thøc Bayes ta l¹i
cã
( ). ( ) ( ). ( )
( )
( ) ( )
C i P i
.
K i P i
P i
C C
p y x p x p K p x
p x y
p y p y
= =
34
Do gi¶ thiÕt hÖ lµ bÝ mËt hoµn toµn, ta cã pP(xi ⏐y) = pP(xi ). Tõ ®ã suy
ra víi mäi i , 1≤ i ≤ n, pK (Ki ) = pC (y). VËy c¸c pK (Ki ) (1≤ i ≤ n )
®Òu b»ng nhau, vµ do ®ã ®Òu b»ng 1/⏐K ⏐ .
b) B©y giê ta chøng minh ®iÒu ng−îc l¹i. Gi¶ thiÕt pK(K) = 1/⏐K ⏐ víi
mäi K ∈K , vµ víi mäi x ∈P , y ∈ C cã ®óng mét kho¸ K∈K sao cho
eK (x ) = y . Ta tÝnh:
1
( ) ( ). ( ( )) ( ( ))
1
( ( )).
C K P K P K
K K
P K
K
p y p K p d y p d y
p d y
∈ ∈
∈
= = =
=
∑ ∑
∑
K K
K
K
K
Khi K ch¹y qua tËp kho¸ K th× dK (y ) ch¹y qua tËp P , do ®ã
( ( )) ( ) 1
P K P
K x
p d y p x
∈ ∈
,
= =
∑ ∑
K P
vµ ta ®−îc pC (y ) = 1/⏐K ⏐ víi mäi y ∈ C .
MÆt kh¸c, gäi K lµ kho¸ duy nhÊt mµ eK (x ) = y , ta cã
pC(y ⏐x) = pK(K) = 1/⏐K ⏐ .
Dïng c«ng thøc Bayes ta l¹i ®−îc víi mäi x ∈P , y ∈ C :
( ). ( ) ( ).1/
( ) ( )
( ) 1/
P C P
P P
C
p x p y x p x
p x y p x
p y
= = =
K
K
.
VËy hÖ lµ bÝ mËt hoµn toµn. §Þnh lý ®−îc chøng minh.
2.2.3. ThuËt to¸n x¸c suÊt:
35
36
Kh¸i niÖm thuËt to¸n mµ ta th−êng hiÓu lµ thuËt to¸n tÊt ®Þnh,
®ã lµ mét tiÕn tr×nh thùc hiÖn c¸c phÐp to¸n trªn d÷ liÖu ®Çu vµo vµ
cho kÕt qu¶ ë ®Çu ra. Theo D.E. Knuth, thuËt to¸n cã 5 thuéc tÝnh c¬
b¶n: tÝnh h÷u h¹n, thuËt to¸n lu«n kÕt thóc sau mét sè h÷u h¹n
b−íc; tÝnh x¸c ®Þnh, mçi b−íc cña thuËt to¸n ph¶i ®−îc x¸c ®Þnh
mét c¸ch chÝnh x¸c; tËp hîp ®Çu vµo vµ ®Çu ra cña mçi thuËt to¸n
còng ®−îc x¸c ®Þnh râ rµng; vµ tÝnh hiÖu qu¶, mäi phÐp to¸n trong
thuËt to¸n ph¶i lµ c¬ b¶n, cã thÓ ®−îc thùc hiÖn chÝnh x¸c trong mét
thêi gian x¸c ®Þnh. ThuËt to¸n lµ kh¸i niÖm c¬ b¶n ®èi víi viÖc lËp
tr×nh trªn m¸y tÝnh, vµ ®· ®−îc sö dông rÊt phæ biÕn. Nh−ng nh− ta
biÕt, ®èi víi nhiÒu bµi to¸n trong thùc tÕ, kh«ng ph¶i bao giê ta còng
t×m ®−îc thuËt to¸n gi¶i chóng víi ®é phøc t¹p tÝnh to¸n chÊp nhËn
®−îc (ta sÏ xÐt qua vÊn ®Ò nµy trong mét tiÕt sau). V× vËy, cïng víi
c¸c thuËt to¸n tÊt ®Þnh, ®èi víi mét sè bµi to¸n ta sÏ xÐt thªm c¸c
thuËt to¸n x¸c suÊt, ®ã lµ nh÷ng thuËt to¸n mµ cïng víi d÷ liÖu ®Çu
vµo ta bæ sung thªm gi¸ trÞ cña mét ®¹i l−îng ngÉu nhiªn t−¬ng øng
nµo ®ã, th−êng lµ c¸c sè ngÉu nhiªn.
C¸c thuËt to¸n x¸c suÊt th−êng ®−îc x©y dùng cho c¸c bµi to¸n
quyÕt ®Þnh, tøc c¸c bµi to¸n x¸c ®Þnh trªn mét tËp hîp d÷ liÖu sao
cho øng víi mçi d÷ liÖu bµi to¸n cã mét tr¶ lêi cã hoÆc kh«ng .
Ng−êi ta chia c¸c thuËt to¸n x¸c suÊt thµnh hai lo¹i: lo¹i thuËt to¸n
Monte Carlo vµ lo¹i thuËt to¸n Las Vegas . ThuËt to¸n Monte Carlo
lu«n kÕt thóc víi kÕt qu¶ cã hoÆc kh«ng ®èi víi mäi d÷ liÖu ®Çu vµo
bÊt kú; cßn thuËt to¸n Las Vegas tuy còng kÕt thóc víi mäi d÷ liÖu,
nh−ng cã thÓ kÕt thóc víi mét th«ng b¸o kh«ng cã tr¶ lêi cã hoÆc
kh«ng. ThuËt to¸n Monte Carlo ®−îc gäi lµ thiªn vÒ cã, nÕu nã cho
tr¶ lêi cã th× tr¶ lêi ®ã ch¾c ch¾n lµ ®óng, cßn nÕu nã cho tr¶ lêi
kh«ng th× tr¶ lêi ®ã cã thÓ sai víi mét x¸c suÊt ε nµo ®ã. T−¬ng tù,
mét thuËt to¸n Monte Carlo ®−îc gäi lµ thiªn vÒ kh«ng, nÕu nã cho
tr¶ lêi kh«ng th× tr¶ lêi ®ã ch¾c ch¾n lµ ®óng, cßn nÕu nã cho tr¶ lêi
cã th× tr¶ lêi ®ã cã thÓ sai víi mét x¸c suÊt ε nµo ®ã. Cßn víi thuËt
to¸n Las Vegas, nÕu nã kÕt thóc víi tr¶ lêi cã hoÆc kh«ng , th× tr¶ lêi
®ã ch¾c ch¾n ®óng, vµ nã cã thÓ kÕt thóc víi th«ng b¸o kh«ng cã tr¶
37
lêi víi mét x¸c suÊt ε nµo ®ã. Trong tiÕt 2.8 sau ®©y ta sÏ cho vµi thÝ
dô cô thÓ vÒ mét sè thuËt to¸n x¸c suÊt thuéc c¶ hai lo¹i ®ã.
2.3. §é phøc t¹p tÝnh to¸n.
2.3.1. Kh¸i niÖm vÒ ®é phøc t¹p tÝnh to¸n.
Lý thuyÕt thuËt to¸n vµ c¸c hµm sè tÝnh ®−îc ra ®êi tõ
nh÷ng n¨m 30 cña thÕ kû 20 ®· ®Æt nÒn mãng cho viÖc nghiªn cøu
c¸c vÊn ®Ò “tÝnh ®−îc”, “gi¶i ®−îc” trong to¸n häc, ®−a ®Õn nhiÒu
kÕt qu¶ rÊt quan träng vµ lý thó. Nh−ng tõ c¸i “tÝnh ®−îc” mét c¸ch
trõu t−îng, hiÓu theo nghÜa tiÒm n¨ng,®Õn viÖc tÝnh ®−îc trong thùc
tÕ cña khoa häc tÝnh to¸n b»ng m¸y tÝnh ®iÖn tö, lµ c¶ mét kho¶ng
c¸ch rÊt lín. BiÕt bao nhiªu thø ®−îc chøng minh lµ tÝnh ®−îc mét
c¸ch tiÒm n¨ng, nh−ng kh«ng tÝnh ®−îc trong thùc tÕ, dï cã sù hç
trî cña nh÷ng m¸y tÝnh ®iÖn tö ! VÊn ®Ò lµ do ë chç nh÷ng ®ßi hái
vÒ kh«ng gian vËt chÊt vµ vÒ thêi gian ®Ó thùc hiÖn c¸c tiÕn tr×nh
tÝnh to¸n nhiÒu khi v−ît qu¸ xa nh÷ng kh¶ n¨ng thùc tÕ. Tõ ®ã, vµo
kho¶ng gi÷a nh÷ng n¨m 60 (cña thÕ kû tr−íc), mét lý thuyÕt vÒ ®é
phøc t¹p tÝnh to¸n b¾t ®Çu ®−îc h×nh thµnh vµ ph¸t triÓn nhanh
chãng, cung cÊp cho chóng ta nhiÒu hiÓu biÕt s©u s¾c vÒ b¶n chÊt
phøc t¹p cña c¸c thuËt to¸n vµ c¸c bµi to¸n, c¶ nh÷ng bµi to¸n thuÇn
tuý lý thuyÕt ®Õn nh÷ng bµi to¸n th−êng gÆp trong thùc tÕ. Sau ®©y
ta giíi thiÖu s¬ l−îc mét sè kh¸i niÖm c¬ b¶n vµ vµi kÕt qu¶ sÏ ®−îc
dïng ®Õn cña lý thuyÕt ®ã.
Tr−íc hÕt, ta hiÓu ®é phøc t¹p tÝnh to¸n (vÒ kh«ng gian hay vÒ thêi
gian) cña mét tiÕn tr×nh tÝnh to¸n lµ sè « nhí ®−îc dïng hay sè c¸c
phÐp to¸n s¬ cÊp ®−îc thùc hiÖn trong tiÕn tr×nh tÝnh to¸n ®ã.
D÷ liÖu ®Çu vµo ®èi víi mét thuËt to¸n th−êng ®−îc biÓu diÔn qua
c¸c tõ trong mét b¶ng ký tù nµo ®ã. §é dµi cña mét tõ lµ sè ký tù
trong tõ ®ã.
38
Cho mét thuËt to¸n A trªn b¶ng ký tù Σ (tøc cã ®Çu vµo lµ c¸c tõ
trong Σ ) . §é phøc t¹p tÝnh to¸n cña thuËt to¸n A ®−îc hiÓu lµ mét
hµm sè fA(n ) sao cho víi mçi sè n , fA(n ) lµ sè « nhí, hay sè phÐp
to¸n s¬ cÊp tèi ®a mµ A cÇn ®Ó thùc hiÖn tiÕn tr×nh tÝnh to¸n cña
m×nh trªn c¸c d÷ liÖu vµo cã ®é dµi ≤ n . Ta nãi thuËt to¸n A cã ®é
phøc t¹p thêi gian ®a thøc , nÕu cã mét ®a thøc P (n ) sao cho víi
mäi n ®ñ lín ta cã fA(n) ≤ P(n ), trong ®ã fA(n ) lµ ®é phøc t¹p tÝnh
to¸n theo thêi gian cña A.
VÒ sau khi nãi ®Õn c¸c bµi to¸n, ta hiÓu ®ã lµ c¸c bµi to¸n quyÕt ®Þnh
, mçi bµi to¸n P nh− vËy ®−îc x¸c ®Þnh bëi:
- mét tËp c¸c d÷ liÖu vµo I (trong mét b¶ng ký tù Σ nµo ®ã),
- mét c©u hái Q trªn c¸c d÷ liÖu vµo, sao cho víi mçi d÷ liÖu
vµo x ∈ I , c©u hái Q cã mét tr¶ lêi ®óng hoÆc sai.
Ta nãi bµi to¸n quyÕt ®Þnh P lµ gi¶i ®−îc , nÕu cã thuËt to¸n
®Ó gi¶i nã, tøc lµ thuËt to¸n lµm viÖc cã kÕt thóc trªn mäi d÷ liÖu vµo
cña bµi to¸n, vµ cho kÕt qu¶ ®óng hoÆc sai tuú theo c©u hái Q trªn
d÷ liÖu ®ã cã tr¶ lêi ®óng hoÆc sai. Bµi to¸n P lµ gi¶i ®−îc trong thêi
gian ®a thøc , nÕu cã thuËt to¸n gi¶i nã víi ®é phøc t¹p thêi gian ®a
thøc. Sau ®©y lµ vµi thÝ dô vÒ c¸c bµi to¸n quyÕt ®Þnh:
Bµi to¸n SATISFIABILITY (viÕt t¾t lµ SAT ):
- mçi d÷ liÖu vµo lµ mét c«ng thøc F cña l«gich mÖnh ®Ò,
®−îc viÕt d−íi d¹ng héi chuÈn t¾c, tøc d¹ng héi cña mét sè c¸c
“clause”.
- C©u hái lµ: c«ng thøc F cã tho¶ ®−îc hay kh«ng ?
Bµi to¸n CLIQUE :
- mçi d÷ liÖu vµo lµ mét graph G vµ mét sè nguyªn k .
- C©u hái lµ: Graph G cã mét clique víi ≥ k ®Ønh hay kh«ng ?
(mét clique cña G lµ mét graph con ®Çy ®ñ cña G ).
Bµi to¸n KNAPSACK :
- mçi d÷ liÖu lµ mét bé n +1 sè nguyªn d−¬ng I = (s1,...,sn ; T ).
- C©u hái lµ: cã hay kh«ng mét vect¬ Boole (x1,...,xn) sao cho
1
. ?
n
i i
i
x s T
=
=
∑
(vect¬ boole lµ vect¬ cã c¸c thµnh phÇn lµ 0 hoÆc 1).
Bµi to¸n thÆng d− bËc hai :
- mçi d÷ liÖu gåm hai sè nguyªn d−¬ng (a , n ).
- C©u hái lµ: a cã lµ thÆng d− bËc hai theo modn hay kh«ng ?
Bµi to¸n hîp sè :
- mçi d÷ liÖu lµ mét sè nguyªn d−¬ng N.
- C©u hái: N lµ hîp sè hay kh«ng ? Tøc cã hay kh«ng hai sè
m, n >1 sao cho N =m . n ?
T−¬ng tù, nÕu ®Æt c©u hái lµ “N lµ sè nguyªn tè hay kh«ng?” th× ta
®−îc bµi to¸n sè nguyªn tè .
§èi víi tÊt c¶ c¸c bµi to¸n kÓ trªn, trõ bµi to¸n hîp sè vµ sè
nguyªn tè, cho ®Õn nay ng−êi ta ®Òu ch−a t×m ®−îc thuËt to¸n gi¶i
chóng trong thêi gian ®a thøc.
2.3.2. Líp phøc t¹p.
Ta xÐt mét vµi líp c¸c bµi to¸n ®−îc x¸c ®Þnh theo ®é phøc
t¹p tÝnh to¸n cña chóng. Tr−íc hÕt, ta ®Þnh nghÜa P lµ líp tÊt c¶ c¸c
bµi to¸n cã thÓ gi¶i ®−îc bëi thuËt to¸n trong thêi gian ®a thøc.
Gi¶ sö cho hai bµi to¸n P1 vµ P2 víi c¸c tËp d÷ liÖu trong hai b¶ng ký
tù t−¬ng øng lµ Σ1 vµ Σ2 . Mét thuËt to¸n ®−îc gäi lµ
mét phÐp qui dÉn bµi to¸n P
*
1
:
f Σ → Σ*
2
1 vÒ bµi to¸n P2 , nÕu nã biÕn mçi d÷
liÖu x cña bµi to¸n P1 thµnh mét d÷ liÖu f (x ) cña bµi to¸n P2 , vµ sao
cho c©u hái cña P1 trªn x cã tr¶ lêi ®óng khi vµ chØ khi c©u hái cña P2
trªn f (x ) còng cã tr¶ lêi ®óng. Ta nãi bµi to¸n P1 qui dÉn ®−îc vÒ
bµi to¸n P2 trong thêi gian ®a thøc , vµ ký hiÖu P1 ∝ P2 , nÕu cã thuËt
to¸n f víi ®é phøc t¹p thêi gian ®a thøc qui dÉn bµi to¸n P1 vÒ bµi
to¸n P2 .Ta dÔ thÊy r»ng, nÕu P1 ∝ P2 vµ P2 ∈ P , th× còng cã P1 ∈ P .
Mét líp quan träng c¸c bµi to¸n ®· ®−îc nghiªn cøu nhiÒu lµ
líp c¸c bµi to¸n kh¸ th−êng gÆp trong thùc tÕ nh−ng cho ®Õn nay
39
40
ch−a cã kh¶ n¨ng nµo chøng tá lµ chóng cã thÓ gi¶i ®−îc trong thêi
gian ®a thøc. §ã lµ líp c¸c bµi to¸n NP-dÇy ®ñ mµ ta sÏ ®Þnh nghÜa
sau ®©y:
Cïng víi kh¸i niÖm thuËt to¸n tÊt ®Þnh th«ng th−êng (cã thÓ
m« t¶ chÝnh x¸c ch¼ng h¹n bëi m¸y Turing tÊt ®Þnh), ta xÐt kh¸i
niÖm thuËt to¸n kh«ng ®¬n ®Þnh víi mét Ýt thay ®æi nh− sau: nÕu
®èi víi m¸y Turing tÊt ®Þnh, khi m¸y ®ang ë mét tr¹ng th¸i q vµ
®ang ®äc mét ký tù a th× cÆp (q,a ) x¸c ®Þnh duy nhÊt mét hµnh
®éng kÕ tiÕp cña m¸y, cßn ®èi víi m¸y Turing kh«ng ®¬n ®Þnh, ta
qui −íc r»ng (q,a) x¸c ®Þnh kh«ng ph¶i duy nhÊt mµ lµ mét tËp h÷u
h¹n c¸c hµnh ®éng kÕ tiÕp; m¸y cã thÓ thùc hiÖn trong b−íc kÕ tiÕp
mét trong c¸c hµnh ®éng ®ã. Nh− vËy, ®èi víi mét d÷ liÖu vµo x ,
mét thuËt to¸n kh«ng ®¬n ®Þnh (®−îc x¸c ®Þnh ch¼ng h¹n bëi mét
m¸y Turing kh«ng ®¬n ®Þnh) kh«ng ph¶i chØ cã mét tiÕn tr×nh tÝnh
to¸n duy nhÊt, mµ cã thÓ cã mét sè h÷u h¹n nh÷ng tiÕn tr×nh tÝnh
to¸n kh¸c nhau. Ta nãi thuËt to¸n kh«ng ®¬n ®Þnh A chÊp nhËn d÷
liÖu x , nÕu víi d÷ liÖu vµo x thuËt to¸n A cã Ýt nhÊt mét tiÕn tr×nh
tÝnh to¸n kÕt thóc ë tr¹ng th¸i chÊp nhËn (tøc víi kÕt qu¶ ®óng).
Mét bµi to¸n P ®−îc gäi lµ gi¶i ®−îc bëi thuËt to¸n kh«ng ®¬n ®Þnh
trong thêi gian ®a thøc nÕu cã mét thuËt to¸n kh«ng ®¬n ®Þnh A
vµ mét ®a thøc p(n ) sao cho víi mäi d÷ liÖu vµo x cã ®é dµi n , x ∈P
(tøc c©u hái cña P cã tr¶ lêi ®óng trªn x ) khi vµ chØ khi thuËt to¸n A
chÊp nhËn x bëi mét tiÕn tr×nh tÝnh to¸n cã ®é phøc t¹p thêi gian ≤
p(n ). Ta ký hiÖu líp tÊt c¶ c¸c bµi to¸n gi¶i ®−îc bëi thuËt to¸n
kh«ng ®¬n ®Þnh trong thêi gian ®a thøc lµ NP.
Ng−êi ta ®· chøng tá ®−îc r»ng tÊt c¶ nh÷ng bµi to¸n trong
c¸c thÝ dô kÓ trªn vµ rÊt nhiÒu c¸c bµi to¸n tæ hîp th−êng gÆp kh¸c
®Òu thuéc líp NP, dï r»ng hÇu hÕt chóng ®Òu ch−a ®−îc chøng tá
lµ thuéc P. Mét bµi to¸n P ®−îc gäi lµ NP.-®Çy ®ñ, nÕu P ∈NP vµ
víi mäi Q ∈NP ®Òu cã Q ∝ P .
Líp NP cã mét sè tÝnh chÊt sau ®©y:
41
1) P ⊆ NP,
2) NÕu P1 ∝ P2 vµ P2 ∈NP , th× P1 ∈ NP .
3) NÕu P1 ,P2 ∈NP , P1 ∝ P2 , vµ P1 lµ NP-®Çy ®ñ, th× P2 còng
lµ NP -®Çy ®ñ.
4) NÕu cã P sao cho P lµ NP-®Çy ®ñ vµ P ∈ P , th× P = NP.
Tõ c¸c tÝnh chÊt ®ã ta cã thÓ xem r»ng trong líp NP , P lµ líp
con c¸c bµi to¸n “ dÔ ” nhÊt, cßn c¸c bµi to¸n NP-®Çy ®ñ lµ c¸c bµi
to¸n “ khã ” nhÊt; nÕu cã Ýt nhÊt mét bµi to¸n NP-®Çy ®ñ ®−îc
chøng minh lµ thuéc P , th× lËp tøc suy ra P = NP , dï r»ng cho ®Õn
nay tuy ®· cã rÊt nhiÒu cè g¾ng nh−ng to¸n häc vÉn ch−a t×m ®−îc
con ®−êng nµo hy väng ®i ®Õn gi¶i quyÕt vÊn ®Ò [P = NP ?], thËm
chÝ vÊn ®Ò ®ã cßn ®−îc xem lµ mét trong 7 vÊn ®Ò khã nhÊt cña to¸n
häc trong thiªn niªn kû míi!
2.3.3. Hµm mét phÝa vµ cöa sËp mét phÝa.
Kh¸i niÖm ®é phøc t¹p tÝnh to¸n cung cÊp cho ta mét c¸ch
tiÕp cËn míi ®èi víi vÊn ®Ò bÝ mËt trong c¸c vÊn ®Ò b¶o mËt vµ an
toµn th«ng tin. Dï ngµy nay ta ®· cã nh÷ng m¸y tÝnh ®iÖn tö cã tèc
®é tÝnh to¸n cì hµng tû phÐp tÝnh mét gi©y ®ång hå, nh−ng víi
nh÷ng thuËt to¸n cã ®é phøc t¹p tÝnh to¸n cì f (n ) = 2n
, th× ngay víi
nh÷ng d÷ liÖu cã ®é dµi kho¶ng n = 1000, viÖc thùc hiÖn c¸c thuËt
to¸n ®ã ®· kh«ng thÓ xem lµ kh¶ thi, v× nã ®ßi hái thùc hiÖn kho¶ng
10300
phÐp tÝnh! Nh− vËy, mét gi¶i ph¸p mËt m· ch¼ng h¹n cã thÓ
xem lµ cã ®é b¶o mËt cao, nÕu ®Ó gi¶i m· cÇn ph¶i thùc hiÖn mét
tiÕn tr×nh tÝnh to¸n cã ®é phøc t¹p rÊt lín. Do ®ã, viÖc ph¸t hiÖn vµ
sö dông c¸c hµm sè cã ®é phøc t¹p tÝnh to¸n rÊt lín lµ cã ý nghÜa hÕt
søc quan träng ®èi víi viÖc x©y dùng c¸c gi¶i ph¸p vÒ mËt m· vµ an
toµn th«ng tin.
Hµm sè sè häc y = f (x ) ®−îc gäi lµ hµm mét phÝa (one-way
function), nÕu viÖc tÝnh thuËn tõ x ra y lµ “dÔ”, nh−ng viÖc tÝnh
ng−îc tõ y t×m l¹i x lµ rÊt “khã”, ë ®©y c¸c tÝnh tõ “dÔ” vµ “khã”
kh«ng cã c¸c ®Þnh nghÜa chÝnh x¸c mµ ®−îc hiÓu mét c¸ch thùc
hµnh, ta cã thÓ hiÓu ch¼ng h¹n dÔ lµ tÝnh ®−îc trong thêi gian ®a
thøc (víi ®a thøc bËc thÊp), cßn khã lµ kh«ng tÝnh ®−îc trong thêi
gian ®a thøc! Thùc tÕ th× cho ®Õn hiÖn nay, viÖc t×m vµ chøng minh
mét hµm sè nµo ®ã lµ kh«ng tÝnh ®−îc trong thêi gian ®a thøc cßn lµ
viÖc rÊt khã kh¨n, cho nªn “khã” th−êng khi chØ ®−îc hiÓu mét c¸ch
®¬n gi¶n lµ ch−a t×m ®−îc thuËt to¸n tÝnh nã trong thêi gian ®a
thøc! Víi c¸ch hiÓu t−¬ng ®èi nh− vËy vÒ “dÔ” vµ “khã”, ng−êi ta ®·
®−a ra mét sè thÝ dô sau ®©y vÒ c¸c hµm mét phÝa:
ThÝ dô 1. Cho p lµ mét sè nguyªn tè, vµ α lµ mét phÇn tö nguyªn
thuû modp. Hµm sè y = αx
modp (tõ *
p
Z vµo *
p
Z ) lµ mét hµm mét
phÝa, v× hµm ng−îc cña nã, tÝnh tõ y t×m x mµ ta ký hiÖu
log ( )
x y
α
= , lµ mét hµm cã ®é phøc t¹p tÝnh to¸n rÊt lín.
ThÝ dô 2. Cho n =p.q lµ tÝch cña hai sè nguyªn tè lín. Hµm sè y = x2
modn (tõ Zn vµo Zn ) còng ®−îc xem lµ mét hµm mét phÝa.
ThÝ dô 3. Cho n =p.q lµ tÝch cña hai sè nguyªn tè lín, vµ a lµ mét sè
nguyªn sao cho gcd(a , φ(n)) =1. Hµm sè y = x a
modn (tõ Zn vµo Zn
) còng lµ mét hµm mét phÝa, nÕu gi¶ thiÕt lµ biÕt n nh−ng kh«ng biÕt
p,q .
Hµm y = f (x ) ®−îc gäi lµ hµm cöa sËp mét phÝa (trapdoor
one-way function), nÕu viÖc tÝnh thuËn tõ x ra y lµ “dÔ”, viÖc tÝnh
ng−îc tõ y t×m l¹i x lµ rÊt “khã”, nh−ng cã mét cöa sËp z ®Ó víi sù
trî gióp cña cöa sËp z th× viÖc tÝnh x tõ y vµ z l¹i trë thµnh dÔ.
ThÝ dô 4 (tiÕp tôc thÝ dô 3). Hµm sè y = x a
modn khi biÕt p vµ q lµ
hµm cöa sËp mét phÝa. Tõ x tÝnh y lµ dÔ, tõ y t×m x (nÕu chØ biÕt n , a
) lµ rÊt khã, nh−ng v× biÕt p vµ q nªn biÕt φ(n) = (p -1)(q -1), vµ dïng
thuËt to¸n Euclide më réng t×m ®−îc b sao cho a.b ≡ 1 (modφ(n)) ,
tõ ®ã dÔ tÝnh ®−îc x = yb
modn . ë ®©y, cã thÓ xem b lµ cöa sËp.
42
2.4. Sè nguyªn tè. Ph©n tÝch thµnh thõa sè. Logarit rêi
r¹c.
Trong tiÕt nµy ta sÏ xÐt ba bµi to¸n cã vai trß quan träng trong
lý thuyÕt mËt m·, ®ã lµ ba bµi to¸n: thö tÝnh nguyªn tè cña mét sè
nguyªn, ph©n tÝch mét sè nguyªn thµnh tÝch cña c¸c thõa sè nguyªn
tè, vµ tÝnh logarit rêi r¹c cña mét sè theo mét m«®uyn nguyªn tè.
2.4.1. Thö tÝnh nguyªn tè cña mét sè.
Bµi to¸n ®Æt ra rÊt ®¬n gi¶n: Cho mét sè nguyªn d−¬ng n bÊt
kú. H·y thö xem n cã lµ sè nguyªn tè hay kh«ng? Bµi to¸n ®−îc ®Æt
ra tõ nh÷ng buæi ®Çu cña sè häc, vµ tr¶i qua h¬n 2000 n¨m ®Õn nay
vÉn lµ mét bµi to¸n ch−a cã ®−îc nh÷ng c¸ch gi¶i dÔ dµng. B»ng
nh÷ng ph−¬ng ph¸p ®¬n gi¶n nh− ph−¬ng ph¸p sµng EuratosthÌne,
tõ rÊt sím ng−êi ta ®· x©y dùng ®−îc c¸c b¶ng sè nguyªn tè ®Çu
tiªn, råi tiÕp tôc b»ng nhiÒu ph−¬ng ph¸p kh¸c t×m thªm ®−îc nhiÒu
sè nguyªn tè lín. Tuy nhiªn, chØ ®Õn giai ®o¹n hiÖn nay cña lý
thuyÕt mËt m· hiÖn ®¹i, nhu cÇu sö dông c¸c sè nguyªn tè vµ thö
tÝnh nguyªn tè cña c¸c sè míi trë thµnh mét nhu cÇu to lín vµ phæ
biÕn, ®ßi hái nhiÒu ph−¬ng ph¸p míi cã hiÖu qu¶ h¬n. Trong môc
nµy ta sÏ l−îc qua vµi tÝnh chÊt cña sè nguyªn tè, sau ®ã giíi thiÖu
m«t vµi ph−¬ng ph¸p thö tÝnh nguyªn tè cña mét sè nguyªn bÊt kú.
Ta ®· biÕt mét sè tÝnh chÊt sau ®©y cña c¸c sè nguyªn tè vµ hîp sè
(trong c¸c ph¸t biÓu d−íi ®©y, ký hiÖu A chØ cho sè phÇn tö cña tËp
hîp A ):
1. Tiªu chuÈn Euler-Solovay-Strassen:
a) NÕu n lµ sè nguyªn tè, th× víi mäi sè nguyªn d−¬ng a [ n -1:
( 1)/ 2
mod
n
a
a n
n
−
⎛ ⎞
⎟
⎜ ≡
⎟
⎜ ⎟
⎜
⎝ ⎠
.
b) NÕu n lµ hîp sè , th×
43
( 1)/ 2 1
:1 1, mod .
2
n
a n
a a n a n
n
−
⎧ ⎫
⎛ ⎞ −
⎪ ⎪
⎪ ⎪
⎟
⎜
≤ ≤ − ≡ ≤
⎟
⎨ ⎬
⎜ ⎟
⎜
⎪ ⎪
⎝ ⎠
⎪ ⎪
⎩ ⎭
2. Tiªu chuÈn Solovay-Strassen-Lehmann :
a) NÕu n lµ sè nguyªn tè, th× víi mäi sè nguyªn d−¬ng a [ n -1:
( 1)/ 2
1(mod ).
n
a n
−
≡±
b) NÕu n lµ hîp sè, th×
{ }
( 1)/ 2 1
:1 1, 1mod .
2
n n
a a n a n
− −
≤ ≤ − ≡ ± ≤
3. Tiªu chuÈn Miller-Rabin :
a) Cho n lµ sè nguyªn lÎ, ta viÕt n - 1 = 2e
.u, víi u lµ sè lÎ. NÕu n lµ
sè nguyªn tè, th× víi mäi sè nguyªn d−¬ng a [ n -1:
2 .
( 1mod ) ( 1mod
k
u u
a n k e a
≡ ∨∃ < ≡− ).
n
b) NÕu n lµ hîp sè, th×
{ }
2 . 1
:1 1,( 1mod ) ( 1mod )
4
k
u u n
a a n a n k e a n
−
≤ ≤ − ≡ ∨∃ < ≡− ≤ .
C¸c tiªu chuÈn kÓ trªn lµ c¬ së ®Ó ta x©y dùng c¸c thuËt to¸n x¸c
suÊt kiÓu Monte-Carlo thö tÝnh nguyªn tè (hay hîp sè) cña c¸c sè
nguyªn. Ch¼ng h¹n, tõ tiªu chuÈn thø nhÊt ta cã thuËt to¸n Euler-
Solovay-Strassen sau ®©y:
D÷ liÖu vµo: sè nguyªn d−¬ng n vµ t sè ngÉu nhiªn a1,...,at
(1[ai[n -1),
1. for i = 1 to t do
2. if ( 1)/2
mod
n
i
i
a
a n
n
−
⎛ ⎞
⎟
⎜ ≡
⎟
⎜ ⎟
⎜
⎝ ⎠
, then
3. answer “n lµ sè nguyªn tè ”
4. else
5. answer “n lµ hîp sè ” and quit
44
ThuËt to¸n nµy nÕu cho tr¶ lêi “n lµ hîp sè ” th× ®óng n lµ hîp sè,
nh−ng nÕu nã cho tr¶ lêi “n lµ sè nguyªn tè ” th× tr¶ lêi ®ã cã thÓ sai
víi mét x¸c suÊt ε nµo ®ã. Nh− vËy, thuËt to¸n ®ã lµ mét thuËt to¸n
x¸c suÊt Monte-Carlo thiªn vÒ cã nÕu xem nã lµ thuËt to¸n thö tÝnh
lµ hîp sè ; cßn nã lµ mét thuËt to¸n x¸c suÊt thiªn vÒ kh«ng nÕu
xem nã lµ thuËt to¸n thö tÝnh nguyªn tè cña c¸c sè nguyªn.
T−¬ng tù nh− vËy, dùa vµo c¸c tiªu chuÈn 2 vµ 3 ta còng cã
thÓ x©y dùng c¸c thuËt to¸n x¸c suÊt Solovay-Strassen-Lehmann vµ
Miller-Rabin kiÓu Monte-Carlo ®Ó thö tÝnh nguyªn tè (hay lµ hîp sè)
cña c¸c sè nguyªn. Hai thuËt to¸n ®ã chØ kh¸c thuËt to¸n Euler-
Solovay-Strassen kÓ trªn ë chç c«ng thøc trong hµng lÖnh thø 2 cÇn
®−îc thay t−¬ng øng bëi
( 1)/2
1mod
n
a n
−
≡±
hay
45
n
trong ®ã u vµ e ®−îc x¸c ®Þnh bëi: n - 1 = 2
2 .
( 1mod ) ( 1mod )
k
u u
a n k e a
≡ ∨∃ < ≡−
e
.u , u lµ sè lÎ.
X¸c suÊt sai lÇm ε khi nhËn ®−îc kÕt qu¶ “n lµ sè nguyªn tè ”
trong c¸c thuËt to¸n ®ã ®−îc tÝnh nh− sau: Gi¶ sö n lµ mét sè lÎ
trong kho¶ng N vµ 2N , tøc N <n < 2N . Gäi A lµ sù kiÖn “n lµ hîp
sè ”, vµ B lµ sù kiÖn “thuËt to¸n cho kÕt qu¶ tr¶ lêi n lµ sè nguyªn tè
”. Ta ph¶i tÝnh x¸c suÊt ε =p (A⏐ B). Theo tÝnh chÊt b) cña tiªu chuÈn
Euler-Solovay-Strassen, nÕu n lµ hîp sè, th× sù kiÖn
( 1)/ 2
mod
n
a
a n
n
−
⎛ ⎞
⎟
⎜ ≡
⎟
⎜ ⎟
⎜
⎝ ⎠
®èi víi mçi a ngÉu nhiªn (1[a [n - 1) cã x¸c suÊt [ 1/2, v× vËy ta cã
( )
1
.
2t
p B A ≤
Theo c«ng thøc Bayes ta cã
( )
( ) ( )
( ) ( )
. ( ) . ( )
.
( ) . ( ) . ( )
p B A p A p B A p A
p A B
p B p B A p A p B A p A
= =
+
Theo ®Þnh lý vÒ sè nguyªn tè, sè c¸c sè nguyªn tè gi÷a N vµ 2N
xÊp xØ ,
ln ln
N n
N n
≈ sè c¸c sè lÎ lµ ,
2 2
N n
≈ do ®ã
2
( ) ,
ln
p A
n
≈ vµ
2
( ) 1 .
ln
p A
n
≈ − DÜ nhiªn ta cã ( ) 1.
p B A = Thay c¸c gi¸ trÞ ®ã vµo
c«ng thøc trªn, ta ®−îc
( ) 1
2
2 (1 )
ln 2
ln
2 2 ln 2 2
2 (1 )
ln ln
t
t
t
n
n
p A B
n
n n
−
+
−
−
−
≤ =
− +
− +
. (5)
§¸nh gi¸ ®ã còng ®óng ®èi víi thuËt to¸n Solovay-Strassen-
Lehmann, cßn ®èi víi thuËt to¸n Miler-Rabin th× ta ®−îc mét ®¸nh
gi¸ tèt h¬n, cô thÓ lµ
( ) 2 1
ln 2
.
ln 2 2 t
n
p A B
n +
−
=
− +
(6)
Chó ý r»ng khi t =50 th× ®¹i l−îng ë vÕ ph¶i cña (5) , vµ
vÕ ph¶i cña (6) ; do ®ã nÕu chän cho d÷ liÖu vµo thªm
kho¶ng 50 sè ngÉu nhiªn a
13
10−
≈
28
10−
≈
i th× c¸c thuËt to¸n Euler-Solovay-
Strassen vµ Solovay-Strassen-Lehmann sÏ thö cho ta mét sè lµ
nguyªn tè víi x¸c suÊt sai lÇm [ 10-13
vµ thuËt to¸n Miller-Rabin víi
x¸c suÊt sai lÇm [ 10-28
!
Ta cã thÓ tÝnh ®−îc r»ng ®é phøc t¹p tÝnh to¸n vÒ thêi gian
cña c¸c thuËt to¸n x¸c suÊt kÓ trªn lµ vµo cì ®a thøc cña logn , tøc lµ
®a thøc cña ®é ®µi biÓu diÔn cña d÷ liÖu vµo (lµ sè n ), tuy nhiªn c¸c
thuËt to¸n ®ã chØ cho ta thö tÝnh nguyªn tè cña mét sè víi mét x¸c
suÊt sai lÇm ε nµo ®ã, dï ε lµ rÊt bÐ. Trong nhiÒu øng dông, ta muèn
cã ®−îc nh÷ng sè nguyªn tè víi ®é ch¾c ch¾n 100% lµ sè nguyªn tè.
Do ®ã, dï ®· cã c¸c thuËt to¸n x¸c suÊt nh− trªn, ng−êi ta vÉn
kh«ng ngõng t×m kiÕm nh÷ng thuËt to¸n tÊt ®Þnh ®Ó thö tÝnh
nguyªn tè víi ®é chÝnh x¸c tuyÖt ®èi. Trong mÊy chôc n¨m gÇn ®©y,
46
mét sè thuËt to¸n ®· ®−îc ®Ò xuÊt, trong ®ã cã nh÷ng thuËt to¸n
®Æc s¾c nh− thuËt to¸n thö tæng Jacobi, ®−îc ph¸t hiÖn bëi Adleman,
Pomerance vµ Rumely, sau ®ã ®−îc ®¬n gi¶n ho¸ bëi Cohen vµ
Lenstra; thuËt to¸n thö b»ng ®−êng cong elliptic, ®−îc ®Ò xuÊt bëi
Goldwasser, Kilian, Adleman vµ Huang, ®−îc tiÕp tôc hoµn thiÖn
bëi Atkin vµ Morain, c¸c thuËt to¸n nµy ®· ®−îc dïng ®Ó t×m nhiÒu
sè nguyªn tè rÊt lín, thÝ dô dïng thuËt to¸n Atkin-Morain ®· chøng
tá ®−îc sè (23539
+ 1)/3 cã 1065 ch÷ sè thËp ph©n lµ sè nguyªn tè. GÇn
®©y, vµo th¸ng 8/2002, c¸c nhµ to¸n häc ¢n ®é Agrawal, Kayal vµ
Saxena ®· ®−a ra mét thuËt to¸n tÊt ®Þnh míi thö tÝnh nguyªn tè cã
®é phøc t¹p tÝnh to¸n thêi gian ®a thøc kh¸ ®¬n gi¶n, thuËt to¸n ®ã
®−îc m« t¶ nh− sau:
ThuËt to¸n Agrawal-Kayal-Saxena:
Input: integer n > 1
1. if (n is of the form ab
, b > 1 ) ouput COMPOSITE;
2. r =2;
3. while (r < n ) {
4. if (gcd(n , r )≠ 1) ouput COMPOSITE;
5. if (r is prime )
6. let q be the largest prime factor of r - 1;
7. if ( 4 log )
q r n
≥ and
1
r−
( 1(mod ))
q
n r
≠
8. break;
9. r ← r + 1;
10. }
11. for a = 1 to 2 log
r n
12. if (( ) ( )(mod 1, ))
n n r
x a x a x n
− ≠ − − ouput
COMPOSITE;
13. output PRIME;
47
48
ThuËt to¸n nµy ®· ®−îc mét sè nhµ to¸n häc kiÓm nghiÖm ,
®¸nh gi¸ cao vµ xem lµ mét thuËt to¸n ®Ñp, cã thÓ dïng cho viÖc
kiÓm thö tÝnh nguyªn tè cña c¸c sè nguyªn.
Trong thùc tiÔn x©y dùng c¸c gi¶i ph¸p mËt m·, th−êng cã
nhu cÇu cã c¸c sè nguyªn tè rÊt lín. §Ó t×m ®−îc c¸c sè nh− vËy,
ng−êi ta th−êng chän ngÉu nhiªn mét sè rÊt lín, råi dïng tr−íc cho
nã mét thuËt to¸n x¸c suÊt ch¼ng h¹n nh− thuËt to¸n Miller-Rabin;
nÕu thuËt to¸n cho ta kÕt qu¶ “lµ sè nguyªn tè” víi mét x¸c suÊt sai ε
nµo ®ã, th× sau ®ã ta dïng tiÕp mét thuËt to¸n tÊt ®Þnh (ch¼ng h¹n
nh− thuËt to¸n trªn ®©y) ®Ó b¶o ®¶m ch¾c ch¾n 100% r»ng sè ®ã lµ
sè nguyªn tè. ThuËt to¸n Agrawal-Kayal-Saxena trªn ®©y ®−îc
chøng tá lµ cã ®é phøc t¹p thêi gian ®a thøc cì O((logn)12
) khi thö
trªn sè n ; vµ nÕu sè nguyªn tè ®−îc thö cã d¹ng Sophie Germain,
tøc d¹ng 2p +1, th× ®é phøc t¹p thêi gian sÏ chØ lµ cì O((logn)6
).
2.4.2. Ph©n tÝch thµnh thõa sè nguyªn tè.
Bµi to¸n ph©n tÝch mét sè nguyªn > 1 thµnh thõa sè nguyªn tè
còng ®−îc xem lµ mét bµi to¸n khã th−êng ®−îc sö dông trong lý
thuyÕt mËt m·. BiÕt mét sè n lµ hîp sè th× viÖc ph©n tÝch n thµnh
thõa sè míi lµ cã nghÜa; do ®ã th−êng khi ®Ó gi¶i bµi to¸n ph©n tÝch
n thµnh thõa sè, ta thö tr−íc n cã lµ hîp sè hay kh«ng (ch¼ng h¹n
b»ng mét trong c¸c thuËt to¸n ë môc tr−íc); vµ bµi to¸n ph©n tÝch n
thµnh thõa sè cã thÓ dÉn vÒ bµi to¸n t×m mét −íc sè cña n, v× khi
biÕt mét −íc sè d cña n th× tiÕn tr×nh ph©n tÝch n ®−îc tiÕp tôc thùc
hiÖn b»ng c¸ch ph©n tÝch d vµ n/d.
Bµi to¸n ph©n tÝch thµnh thõa sè, hay bµi to¸n t×m −íc sè cña mét
sè nguyªn cho tr−íc, ®· ®−îc nghiªn cøu nhiÒu, nh−ng còng ch−a
cã mét thuËt to¸n hiÖu qu¶ nµo ®Ó gi¶i nã trong tr−êng hîp tæng
qu¸t; do ®ã ng−êi ta cã khuynh h−íng t×m thuËt to¸n gi¶i nã trong
nh÷ng tr−êng hîp ®Æc biÖt, ch¼ng h¹n khi n cã mét −íc sè nguyªn
tè p víi
p -1 lµ B-mÞn víi mét cËn B >0 nµo ®ã, hoÆc khi n lµ sè Blum, tøc lµ
sè cã d¹ng tÝch cña hai sè nguyªn tè lín nµo ®ã (n =p.q ).
Ta xÐt tr−êng hîp thø nhÊt víi (p -1)-thuËt tãan Pollard nh− sau:
Mét sè nguyªn n ®−îc gäi lµ B-mÞn, nÕu tÊt c¶ c¸c −íc sè nguyªn tè
cña nã ®Òu ≤B. ý chÝnh chøa trong (p-1)- thuËt to¸n Pollard lµ nh−
sau: Gi¶ sö n lµ B-mÞn. Ký hiÖu Q lµ béi chung bÐ nhÊt cña tÊt c¶ c¸c
luü thõa cña c¸c sè nguyªn tè ≤B mµ b¶n th©n chóng ≤n. NÕu q l
≤n th× l lnq ≤ lnn , tøc
ln
ln
n
l
q
⎢ ⎥
⎢ ⎥
≤
⎢ ⎥
⎣ ⎦
( x
⎢ ⎥
⎣ ⎦ lµ sè nguyªn bÐ nhÊt lín h¬n x ).
Ta cã
ln /ln
,
n q
q B
Q q
⎢ ⎥
⎣ ⎦
≤
= ∏
trong ®ã tÝch lÊy theo tÊt c¶ c¸c sè nguyªn tè kh¸c nhau q ≤B . NÕu
p lµ mét thõa sè nguyªn tè cña n sao cho p -1 lµ B-mÞn, th× p -1⏐Q, vµ
do ®ã víi mäi a bÊt kú tháa m·n gcd(a,p) = 1, theo ®Þnh lý Fermat
ta cã
a Q
≡ 1 (modp ). V× vËy, nÕu lÊy d =gcd(aQ
- 1, n ) th× p ⏐d. NÕu d = n
th× coi nh− thuËt to¸n kh«ng cho ta ®iÒu mong muèn, tuy nhiªn ®iÒu
®ã ch¾c kh«ng xÈy ra nÕu n cã Ýt nhÊt hai thõa sè nguyªn tè kh¸c
nhau. Tõ nh÷ng lËp luËn ®ã ta cã:
(p - 1)-thuËt to¸n Pollard ph©n tÝch thµnh thõa sè :
INPUT: mét hîp sè n kh«ng ph¶i lµ luü thõa cña mét sè nguyªn tè.
OUTPUT: mét thõa sè kh«ng tÇm th−êng cña n .
1. Chän mét cËn cho ®é mÞn B.
2. Chän ngÉu nhiªn mét sè nguyªn a , 2≤ a ≤ n - 1, vµ tÝnh d
= gcd(a,n ). NÕu d ≥ 2 th× cho ra kÕt qu¶ (d ).
3. Víi mçi sè nguyªn tè q ≤ B thùc hiÖn:
3.1 TÝnh
ln
.
ln
n
l
q
⎢ ⎥
⎢ ⎥
=
⎢ ⎥
⎣ ⎦
3.2 TÝnh mod .
l
q
a a n
←
49
50
4. TÝnh d = gcd(a -1, n).
5. NÕu 1< d < n th× cho ra kÕt qu¶ (d ). NÕu ng−îc l¹i th×
thuËt to¸n coi nh− kh«ng cã kÕt qu¶.
ThÝ dô: Dïng thuËt to¸n cho sè n = 19048567. Ta chän B =19,
vµ a =3, vµ tÝnh ®−îc gcd(3,n ) =1. ChuyÓn sang thùc hiÖn b−íc 3 ta
®−îc b¶ng sau ®©y (mçi hµng øng víi mét gi¸ trÞ cña q ) :
q l a
2
3
5
7
11
13
17
19
24
15
10
8
6
6
5
5
2293244
13555889
16937223
15214586
9685355
13271154
11406961
554506
Sau ®ã ta tÝnh d =gcd(554506-1,19048567) = 5281. VËy ta ®−îc mét
thõa sè p = 5281, vµ do ®ã mét thõa sè n÷a lµ q = n/p = 3607. C¶ hai
thõa sè ®ã ®Òu lµ nguyªn tè.
Chó ý r»ng ë ®©y p -1 = 5280 = 25
.3.5.11 , cã tÊt c¶ c¸c −íc sè nguyªn
tè ®Òu ≤ 19, do ®ã ch¾c ch¾n thuËt to¸n sÏ kÕt thóc cã kÕt qu¶. ThuËt
to¸n sÏ kÕt thóc kh«ng cã kÕt qu¶ khi ®é mÞn B ®−îc chän qu¸ bÐ ®Ó
kh«ng mét thõa sè nguyªn tè p nµo cña n mµ p -1 chØ chøa c¸c −íc
sè nguyªn tè ≤ B. Nh− vËy, cã thÓ xem (p -1)-thuËt to¸n Pollard
ph©n tÝch n thµnh thõa sè nguyªn tè lµ cã hiÖu qu¶ ®èi víi nh÷ng sè
nguyªn n lµ B-mÞn, ng−êi ta tÝnh ®−îc thêi gian cÇn ®Ó thùc hiÖn
thuËt to¸n ®ã lµ cì O(B lnn /lnB ) phÐp nh©n theo m«®uyn.
B©y giê ta xÐt tr−êng hîp c¸c sè nguyªn Blum, tøc lµ c¸c sè cã
d¹ng n = p.q , tÝch cña hai sè nguyªn tè lín. Tr−íc hÕt ta chó ý r»ng
nÕu ta biÕt hai sè nguyªn kh¸c nhau x vµ y sao cho 2 2
(mod )
x y n
≡
th× ta dÔ t×m ®−îc mét thõa sè cña n . Thùc vËy, tõ 2 2
(mod )
x y n
≡ ta
cã 2 2
( )( )
x y x y x y
− = + − chia hÕt cho n , do n kh«ng lµ −íc sè cña x
+ y hoÆc x - y, nªn gcd(x - y, n) ph¶i lµ mét −íc sè cña n, tøc b»ng p
hoÆc q .
Ta biÕt nÕu n = p.q lµ sè Blum, th× ph−¬ng tr×nh ®ång d−
2 2
(mod )
x a n
≡
cã 4 nghiÖm, hai nghiÖm tÇm th−êng lµ x = a vµ x = -a . Hai nghiÖm
kh«ng tÇm th−êng kh¸c lµ ±b , chóng lµ nghiÖm cña hai hÖ ph−¬ng
tr×nh ®ång d− bËc nhÊt sau ®©y:
( )
(mod )
(mod )
mod
(mod )
x a p
x a p
x a q
x a q
⎧
⎧ ≡−
⎪
≡
⎪
⎪ ⎪
⎨ ⎨
⎪ ⎪ ≡
≡−
⎪
⎩ ⎪
⎩
B»ng lËp luËn nh− trªn, ta thÊy r»ng nÕu n lµ sè Blum, a lµ mét sè
nguyªn tè víi n, vµ ta biÕt mét nghiÖm kh«ng tÇm th−êng cña
ph−¬ng tr×nh 2 2
(mod )
x a
≡ n , tøc biÕt mét x ≠ ±a sao cho
2 2
(mod )
x a
≡ n th× gcd(x - a , n ) sÏ lµ mét −íc sè cña n . Nh÷ng ®iÒu
trªn ®©y lµ c¨n cø cho mét sè ph−¬ng ph¸p t×m −íc sè nguyªn tè
cña mét sè nguyªn d¹ng Blum; ý chung cña c¸c ph−¬ng ph¸p ®ã lµ
dÉn vÒ viÖc t×m mét nghiÖm kh«ng tÇm th−êng cña mét ph−¬ng
tr×nh d¹ng 2 2
(mod )
x a
≡ n , ch¼ng h¹n nh− ph−¬ng tr×nh
2
1(mod )
x n
≡ .
Mét tr−êng hîp kh¸ lý thó trong lý thuyÕt mËt m· lµ khi ta biÕt hai
sè a ,b lµ nghÞch ®¶o cña nhau theo modφ (n ) (nh−ng kh«ng biÕt φ
(n ) ), vµ t×m mét ph©n tÝch thµnh thõa sè cña n. Bµi to¸n ®−îc ®Æt ra
cô thÓ lµ: BiÕt n cã d¹ng Blum, biÕt a vµ b sao cho ab ≡ 1(modφ (n )).
H·y t×m mét −íc sè nguyªn tè cña n , hay t×m mét nghiÖm kh«ng
tÇm th−êng cña ph−¬ng tr×nh 2
1(mod )
x n
≡ . Ta gi¶ thiÕt ab - 1 = 2s
. r
víi r lµ sè lÎ. Ta ph¸t triÓn mét thuËt to¸n x¸c suÊt kiÓu Las Vegas
nh− sau: Ta chän mét sè ngÉu nhiªn v (1≤ v ≤ n - 1). NÕu may m¾n
v lµ béi sè cña p hay q, th× ta ®−îc ngay mét −íc sè cña n lµ gcd(v,n
). NÕu v nguyªn tè víi n , th× ta tÝnh c¸c b×nh ph−¬ng liªn tiÕp kÓ tõ
v r
, ®−îc cho ®Õn khi ®−îc víi mét t nµo
2 4
, , ,...
r r r
v v v (
2 .
1 mod
t
r
v n
≡ )
51
52
)
n
®ã. Sè t nh− vËy bao giê còng ®¹t ®−îc, v× cã 2s
. r ≡ 0 (modφ(n ))
nªn cã Nh− vËy, ta ®· t×m ®−îc mét sè
(
2 .
1 mod .
s
r
v ≡
1
2 .
t
r
x v
−
= sao
cho 2
1(mod )
x n
≡ . TÊt nhiªn cã x≠ 1 modn . NÕu còng cã x≠ -1
(modn ) th× x lµ nghiÖm kh«ng tÇm th−êng cña 2
1(mod )
x n
≡ , tõ ®ã
ta cã thÓ t×m −íc sè cña n . NÕu kh«ng th× thuËt to¸n coi nh− thÊt
b¹i, cho ta kÕt qu¶ kh«ng ®óng. Ng−êi ta cã thÓ −íc l−îng x¸c suÊt
cho kÕt qu¶ kh«ng ®óng víi mét lÇn thö víi mét sè v lµ < 1/2, do
®ã nÕu ta thiÕt kÕ thuËt to¸n víi m sè ngÉu nhiªn v1,...vm , th× sÏ cã
thÓ ®¹t ®−îc x¸c suÊt cho kÕt qu¶ kh«ng ®óng lµ < 1/2m
!
2.4.3. TÝnh logarit rêi r¹c theo m«®uyn nguyªn tè.
Cho p lµ mét sè nguyªn tè, vµ α lµ mét phÇn tö nguyªn thuû theo
modp, tøc lµ phÇn tö nguyªn thuû cña nhãm *
p
Z . Bµi to¸n tÝnh
logarit rêi r¹c theo modp lµ bµi to¸n t×m, víi mçi sè β ∈ *
p
Z ,mét sè a (
1≤ a ≤ p -1) sao cho β = αa
modp , tøc lµ a = logαβ (modp -1). Mét
thuËt to¸n tÇm th−êng ®Ó gi¶i bµi to¸n nµy lµ thuËt to¸n duyÖt toµn
bé c¸c sè a tõ 1 ®Õn p - 1, cho ®Õn khi t×m ®−îc a tho¶ m·n β = αa
modp . TÊt nhiªn, thuËt to¸n nµy lµ kh«ng hiÖu qu¶ nÕu p lµ sè
nguyªn tè rÊt lín. Mét biÕn d¹ng cña thuËt to¸n ®ã víi Ýt nhiÒu hiÖu
qu¶ h¬n lµ thuËt to¸n Shanks sau ®©y:
§Æt 1
m p
⎡ ⎤
= −
⎢ ⎥
⎣ ⎦
. Ta t×m a d−íi d¹ng
Râ rµng β = α
,0 , 1.
a mj i j i m
= + ≤ ≤ − a
modp khi vµ chØ khi
(mod )
mj i
p
α βα
≡ . Ta lËp hai danh s¸ch gåm c¸c cÆp ( , vµ c¸c
cÆp víi j vµ i ch¹y tõ 0 ®Õn m - 1. Khi ph¸t hiÖn ra cã hai
cÆp tõ hai danh s¸ch ®ã cã hai phÇn tö thø hai b»ng nhau lµ ta ®−îc
kÕt qu¶ ®ã chÝnh lµ gi¸ trÞ log
)
m j
j α
( , )
i
i βα−
,
a mj i
= + αβ mµ ta cÇn t×m. ThuËt
to¸n Shanks cã ®é phøc t¹p cì O(m) phÐp to¸n nh©n vµ O(m) bé
nhí (ch−a kÓ O(m2
) phÐp so s¸nh).
Mét thuËt to¸n kh¸c, thuËt to¸n Polig-Hellman, th−êng ®−îc
dïng cã hiÖu qu¶ trong tr−êng hîp p -1 chØ cã c¸c thõa sè nguyªn tè
bÐ, cã néi dung nh− sau: Gi¶ thiÕt r»ng p - 1 cã d¹ng ph©n tÝch chÝnh
t¾c lµ
1
1 .
i
k
c
i
i
p p
=
− =∏
§Ó t×m a = logαβ (modp -1), ta t×m c¸c sè ai sao cho
víi i = 1,...,k. Sau khi t×m ®−îc c¸c a
mod i
c
i i
a a p
≡
i nh− vËy, th× hÖ ph−¬ng tr×nh
mod ( 1,..., )
i
c
i i
x a p i
≡ = k
−
k
−
,®−îc gi¶i theo ®Þnh lý sè d− Trung quèc, sÏ
cho ta lêi gi¶i cÇn t×m. VËy, vÊn ®Ò lµ x¸c ®Þnh c¸c
. VÊn ®Ò nµy ®−îc ph¸t biÓu l¹i nh− sau: Gi¶ sö
q lµ mét −íc sè nguyªn tè cña p - 1, vµ q
(mod 1)
x a p
≡
mod ( 1,..., )
i
c
i i
a p i =
c
⏐ p - 1 nh−ng kh«ng cßn q
c + 1
⏐ p - 1 . Ta cÇn t×m x = a modq c
. Ta biÓu diÔn x d−íi d¹ng sè q -
ph©n nh− sau:
1
0
(0 1).
c
i i i
i
x x q x q
−
=
= ≤ ≤
∑
V× x = a modq c
nªn a viÕt ®−îc d−íi d¹ng a = x + q c.
. s , vµ v×
1
1(mod )
p
p
α −
≡ , nªn ta cã
0
( 1)
1 1
1
( ) (mod
a
q
p x
p p
a
p
q q q
p
β α α α
−
− −
−
≡ ≡ ≡ ).
Ta ®Æt , vµ tÝnh lÇn l−ît , ®ång thêi so s¸nh
víi
( 1)/
p q
γ α −
= 0 1 2
, , ,...
γ γ γ
( 1)/
mod ,
p q
p
β −
ta sÏ t×m ®−îc i sao cho ( 1)/
mod .
i p q
p
γ β −
≡ Ta
lÊy sè i ®ã lµ x0, tøc x0 = i . NÕu c = 1 th× x = x0 , ta t×m xong x .
NÕu c >1 th× b»ng c¸ch ®Æt vµ
0
' x
β βα−
= ' log 'mod c
x q
α β
= ta dÔ
thÊy r»ng
1
1
'
c
i i
i
x x q
−
=
=∑ .
Tõ ®ã ta suy ra
2
1
( 1) /
( 1)/
' m
p x q
p q
od .
p
β α −
−
≡
T−¬ng tù nh− ë b−íc trªn, tÝnh lÇn l−ît , ®ång thêi so
s¸nh víi ta sÏ t×m ®−îc x
0 1 2
, , ,...
γ γ γ
2
( 1)/
' p q
β −
, 1.
53
Cø lµm nh− vËy, ta sÏ t×m ®−îc dÇn tÊt c¶ c¸c gi¸ trÞ xi víi i =
0,1,...,c -1, tøc lµ tÝnh ®−îc x. Sau khi t×m ®−îc tÊt c¶ c¸c gi¸ trÞ x
øng víi mäi −íc sè nguyªn tè q cña p , th× theo mét nhËn xÐt ë
trªn, chØ cÇn gi¶i tiÕp mét hÖ ph−¬ng tr×nh ®ång d− bËc nhÊt theo
c¸c m«®uyn tõng cÆp nguyªn tè víi nhau (b»ng ph−¬ng ph¸p sè
d− Trung quèc), ta sÏ t×m ®−îc sè a cÇn t×m, a = logαβ theo
modp.
ThÝ dô: Cho p = 29 vµ α = 2. H·y tÝnh a =log 218 theo mod29.
Ta cã p - 1 = 28 = 22
. 71
. Theo thuËt to¸n Polig-Hellman, ta t×m
lÇn l−ît a mod 4 vµ a mod 7. Theo c¸c b−íc tÝnh to¸n nh− m« t¶
ë trªn, ta sÏ t×m ®−îc a mod 4 = 3 vµ a mod 7 =4 .Tõ ®ã gi¶i hÖ
ph−¬ng tr×nh
3(mod 4),
4(mod7)
x
x
⎧ ≡
⎪
⎪
⎨
⎪ ≡
⎪
⎩
ta ®−îc nghiÖm x ≡ 11 (mod28), tøc ®−îc 11 = log 218 theo
mod29. ThuËt to¸n Polig-Hellman cho ta mét c¸ch tÝnh logarit rêi
r¹c kh¸ hiÖu qu¶, nh−ng chØ khi p -1 chØ cã c¸c thõa sè nguyªn tè
bÐ. V× vËy, nÕu p -1 cã Ýt nhÊt mét thõa sè nguyªn tè lín th× thuËt
to¸n ®ã khã ®−îc thùc hiÖn cã hiÖu qu¶, tøc trong tr−êng hîp ®ã
bµi to¸n tÝnh logarit rêi r¹c theo modp vÉn lµ mét bµi to¸n khã.
Mét líp c¸c sè nguyªn tè p mµ p - 1 cã Ýt nhÊt mét −íc sè nguyªn
tè lín lµ líp c¸c sè nguyªn tè d¹ng p = 2q + 1, trong ®ã q lµ
nguyªn tè. Nh÷ng sè nguyªn tè d¹ng ®ã ®−îc gäi lµ sè nguyªn
tè Sophie Germain, cã vai trß quan träng trong viÖc x©y dùng
mét líp kh¸ th«ng dông c¸c hÖ mËt m· cã kho¸ c«ng khai.
Ng−êi ta còng ®· nghiªn cøu ph¸t triÓn nhiÒu thuËt to¸n kh¸c, c¶
thuËt to¸n tÊt ®Þnh, c¶ thuËt to¸n x¸c suÊt, ®Ó tÝnh logarit rêi r¹c,
nh−ng ch−a cã thuËt to¸n nµo ®−îc chøng tá lµ cã ®é phøc t¹p
tÝnh to¸n víi thêi gian ®a thøc.
54
55
55
CH¦¥NG III
C¸c hÖ mËt m· khãa ®èi xøng
3.1. Mét sè hÖ mËt m· cæ ®iÓn.
Trong ch−¬ng nµy ta sÏ giíi thiÖu mét sè hÖ mËt m· cã khãa
®èi xøng, tøc lµ nh÷ng hÖ mËt m· mµ khãa lËp mËt m· vµ khãa gi¶i
mËt m· lµ tròng nhau, vµ v× vËy khãa mËt m· chung ®ã ph¶i ®−îc
gi÷ bÝ mËt, chØ riªng hai ®èi t¸c (ng−êi lËp mËt m· ®Ó göi ®i vµ
ng−ên nhËn mËt m· göi ®Õn) ®−îc biÕt mµ th«i. Trong suèt mét thêi
kú lÞch sö dµi tõ thêi cæ ®¹i cho ®Õn vµi ba thËp niªn gÇn ®©y, c¸c
ph−¬ng ph¸p mËt m· ®−îc sö dông trong thùc tÕ ®Òu lµ mËt m·
kho¸ ®èi xøng, tõ hÖ mËt m· Ceasar ®· ®−îc dïng h¬n ngh×n n¨m
tr−íc cho ®Õn c¸c hÖ mËt m· ®−îc sö dông víi sù trî gióp cña kü
thuËt m¸y tÝnh hiÖn ®¹i trong thêi gian gÇn ®©y. Tr−íc hÕt ta h·y b¾t
®Çu víi mét sè hÖ mËt m· cæ ®iÓn.
3.1.1. M· chuyÓn dÞch (shift cipher)
C¸c hÖ mËt m· dïng phÐp chuyÓn dÞch nãi trong môc nµy
còng nh− nhiÒu hÖ mËt m· tiÕp sau ®Òu cã b¶ng ký tù b¶n râ vµ
b¶ng ký tù b¶n m· lµ b¶ng ký tù cña ng«n ng÷ viÕt th«ng th−êng. V×
b¶ng ký tù tiÕng ViÖt cã dïng nhiÒu dÊu phô lµm cho c¸ch x¸c ®Þnh
ký tù khã thèng nhÊt, nªn trong tµi liÖu nµy ta sÏ lÊy b¶ng ký tù
tiÕng Anh ®Ó minh ho¹, b¶ng ký tù nµy gåm cã 26 ký tù, ®−îc ®¸nh
sè tõ 0 ®Õn 25 nh− tr×nh bµy ë tiÕt 1.2.1, ta cã thÓ ®ång nhÊt nã víi
tËp Z26. Nh− vËy, s¬ ®å c¸c hÖ mËt m· chuyÓn dÞch ®−îc ®Þnh nghÜa
nh− sau:
S = (P , C , K , E , D ) ,
trong ®ã P = C = K = Z26 , c¸c ¸nh x¹ E vµ D ®−îc cho bëi:
56
víi mäi K, x , y ∈ Z26 : E (K, x) = x +K mod26,
D (K, y) = y - K mod26.
C¸c hÖ mËt m· ®−îc x¸c ®Þnh nh− vËy lµ ®óng ®¾n, v× víi
mäi K, x , y ∈ Z26 ta ®Òu cã:
dK(eK(x)) = (x +K ) - K mod26 = x.
C¸c hÖ mËt m· chuyÓn dÞch ®· ®−îc sö dông tõ rÊt sím,
theo truyÒn thuyÕt, hÖ m· ®ã víi K =3 ®· ®−îc dïng bëi J. Caesar tõ
thêi ®Õ quèc La m·, vµ ®−îc gäi lµ hÖ m· Caesar.
ThÝ dô: Cho b¶n râ hengapnhauvaochieuthubay, chuyÓn d·y
ký tù ®ã thµnh d·y sè t−¬ng øng ta ®−îc:
x = 7 4 13 6 0 15 13 7 0 20 21 0 14 2 7 8 4 20 19 7 20 1 0 24.
NÕu dïng thuËt to¸n lËp mËt m· víi kho¸ K = 13, ta ®−îc b¶n m· lµ:
y = 20 17 0 19 13 2 0 20 13 7 8 13 1 15 20 21 17 7 6 20 7 14 13 11,
chuyÓn d−íi d¹ng ký tù th«ng th−êng ta ®−îc b¶n mËt m· lµ:
uratncaunhinbpuv rhguhonl .
§Ó gi¶i b¶n mËt m· ®ã, ta chØ cÇn chuyÓn nã l¹i d−íi d¹ng sè (®Ó
®−îc d·y y), råi thùc hiÖn thuËt to¸n gi¶i m·, tøc trõ tõng sè h¹ng
víi 13 (theo m«®uyn 26), ®−îc l¹i d·y x, chuyÓn thµnh d·y ký tù lµ
®−îc b¶n râ ban ®Çu.
C¸c hÖ mËt m· chuyÓn dÞch tuy dÔ sö dông, nh−ng viÖc th¸m
m· còng kh¸ dÔ dµng, sè c¸c kho¸ cã thÓ cã lµ 26; nhËn ®−îc mét
b¶n m·, ng−êi th¸m m· chØ cÇn thö dïng lÇn l−ît tèi ®a lµ 26 kho¸
®ã ®Ó gi¶i m·, ¾t sÏ ph¸t hiÖn ra ®−îc kho¸ ®· dïng vµ c¶ b¶n râ!
3.1.2. M· thay thÕ (substitution cipher).
S¬ ®å c¸c hÖ mËt m· thay thÕ ®−îc ®Þnh nghÜa nh− sau:
S = (P , C , K , E , D ) ,
trong ®ã P = C = Z26 , K lµ tËp hîp tÊt c¶ c¸c phÐp ho¸n vÞ trªn Z26
c¸c ¸nh x¹ E vµ D ®−îc cho bëi:
víi mäi x ∈ P , y ∈ C , π ∈ K lµ mét phÐp ho¸n vÞ trªn Z
1
( ) ( ),
( ) ( ),
e x x
d y y
π
π
π
π −
=
=
26 .
Ta th−êng ®ång nhÊt Z26 víi b¶ng ký tù tiÕng Anh, do ®ã
phÐp ho¸n vÞ trªn Z26 còng ®−îc hiÓu lµ mét phÐp ho¸n vÞ trªn tËp
hîp c¸c ký tù tiÕng Anh, thÝ dô mét phÐp ho¸n vÞ π ®−îc cho bëi
b¶ng :
a b c d e f g h i j k l m n o p q r
x n y a h p o g z q w b t s f l r c
s t u v w x y z
v m u e k j d i
Víi hÖ mËt m· thay thÕ cã kho¸ π, b¶n râ
x = hengapnhauvaochieuthubay
sÏ ®−îc chuyÓn thµnh b¶n mËt m·
y = ghsoxlsgxuexfygzhumgunxd .
ThuËt to¸n gi¶i m· víi kho¸ π, ng−îc l¹i sÏ biÕn y thµnh b¶n râ x.
S¬ ®å hÖ mËt m· cã sè kho¸ cã thÓ b»ng sè c¸c phÐp ho¸n vÞ
trªn tËp Z26 , tøc lµ 26! kho¸, ®ã lµ mét sè rÊt lín (26!> 4.1026
). Do ®ã,
viÖc duyÖt lÇn l−ît tÊt c¶ c¸c kho¸ cã thÓ ®Ó th¸m m· lµ kh«ng thùc
tÕ, ngay c¶ dïng m¸y tÝnh. Tuy vËy, cã nh÷ng ph−¬ng ph¸p th¸m
m· kh¸c hiÖu qu¶ h¬n, lµm cho c¸c hÖ mËt m· thay thÕ kh«ng thÓ
®−îc xem lµ an toµn.
3.1.3. M· apphin.
S¬ ®å c¸c hÖ mËt m· apphin ®−îc ®Þnh nghÜa nh− sau:
57
58
S = (P , C , K , E , D ) ,
trong ®ã P = C = Z26 , K = { (a,b) ∈ Z26 x Z26 ⏐ gcd(a, 26) = 1} ,
c¸c ¸nh x¹ E vµ D ®−îc cho bëi:
eK(x ) = ax + b mod26,
dK(y ) = a-1
(y - b) mod26,
víi mäi x ∈ P , y ∈ C , K = (a, b) ∈ K .
Cã ®iÒu kiÖn gcd (a, 26) = 1 lµ ®Ó b¶o ®¶m cã phÇn tö nghÞch
®¶o a-1
mod26 cña a , lµm cho thuËt to¸n gi¶i m· dK lu«n thùc hiÖn
®−îc. Cã tÊt c¶ φ(26) = 12 sè a ∈ Z26 nguyªn tè víi 26, ®ã lµ c¸c sè
1, 3, 5, 7 ,9, 11, 15, 17, 19, 21, 23, 25,
vµ c¸c sè nghÞch ®¶o theo mod26 t−¬ng øng cña chóng lµ
1, 9, 21, 15, 3, 19, 7, 23, 11, 5, 17, 25.
ThÝ dô víi b¶n râ hengapnhauvaochieuthubay, cã d·y sè
t−¬ng øng lµ:
x = 7 4 13 6 0 15 13 7 0 20 21 0 14 2 7 8 4 20 19 7 20 1 0 24.
NÕu dïng hÖ mËt m· apphin víi kho¸ K=(5, 6) ta sÏ ®−îc b¶n mËt
m·
y = 15 0 19 10 6 3 19 15 6 2 7 6 24 16 15 20 0 2 23 15 2 11 6 22,
chuyÓn sang dßng ký tù tiÕng Anh ta ®−îc b¶n mËt m· d−íi d¹ng
patkgdtpgchgyqpuacxpclgw .
V× cã 12 sè thuéc Z26 nguyªn tè víi 26, nªn sè c¸c kho¸ cã thÓ
cã (do ®ã , sè c¸c hÖ mËt m· apphin) lµ b»ng 12x26 =312, mét con sè
kh«ng lín l¾m nÕu ta sö dông m¸y tÝnh ®Ó thùc hiÖn viÖc th¸m m·
b»ng c¸ch duyÖt lÇn l−ît tÊt c¶ c¸c kho¸ cã thÓ; nh− vËy, m· apphin
còng kh«ng cßn ®−îc xem lµ m· an toµn !
3.1.4. M· VigenÌre.
S¬ ®å mËt m· nµy lÊy tªn cña Blaise de VigenÌre, sèng vµo
thÕ kû 16. Kh¸c víi c¸c hÖ mËt m· ®· kÓ tr−íc, c¸c hÖ mËt m·
VigenÌre kh«ng thùc hiÖn trªn tõng ký tù mét, mµ ®−îc thùc hiÖn
trªn tõng bé m ký tù (m lµ sè nguyªn d−¬ng).
S¬ ®å c¸c hÖ mËt m· VigenÌre ®−îc ®Þnh nghÜa nh− sau:
S = (P , C , K , E , D ) ,
trong ®ã P = C = K = 26
m
Z , c¸c ¸nh x¹ E vµ D ®−îc cho bëi:
eK(x1,..., xm ) = ( x1+k1,...., xm+km ) mod26
dK(y1,..., ym ) = ( y1-k1 ,..., ym-km ) mod26
víi mäi x =(x1,..., xm ) ∈ P , y =(y1,..., ym ) ∈ C , K = (k1,...,km)∈ K .
S¬ ®å m· VigenÌre cã thÓ ®−îc xem lµ më réng cña s¬ ®å m·
chuyÓn dÞch, nÕu m· chuyÓn dÞch thùc hiÖn viÖc chuyÓn dÞch tõng
ký tù mét th× m· VigenÌre thùc hiÖn ®ång thêi tõng bé m ký tù liªn
tiÕp. ThÝ dô lÊy m = 6 vµ K = (2, 8, 15, 7, 4, 17). §Ó lËp mËt m· cho
b¶n râ
hengapnhauvaochieuthubay,
ta còng chuyÓn nã thµnh d·y sè vµ t¸ch thµnh tõng ®o¹n 6sè liªn
tiÕp:
x = 7 4 13 6 0 15⏐ 13 7 0 20 21 0⏐ 14 2 7 8 4 20 ⏐19 7 20 1 0 24.
(nÕu ®é dµi cña x kh«ng ph¶i lµ béi sè cña 6, ta cã thÓ qui −íc thªm
vµo ®o¹n cuèi cña x mét sè phÇn tö nµo ®ã, ch¼ng h¹n lµ c¸c sè 0, ®Ó
bao giê còng cã thÓ xem lµ x t¸ch ®−îc thµnh c¸c ®o¹n cã 6 sè liªn
tiÕp). Céng theo mod26 c¸c sè trong tõng ®o¹n ®ã víi c¸c sè t−¬ng
øng trong kho¸ K ta sÏ ®−îc b¶n mËt m·
y = 9 12 2 13 4 6 ⏐15 15 15 1 25 17⏐ 16 10 22 15 8 11⏐ 21 15 9 8 4
15
chuyÓn sang d·y ký tù ta ®−îc b¶n m· lµ
jmcnegpppbzrqkwpilvpjiep .
59
Tõ b¶n m· ®ã, dïng thuËt to¸n gi¶i m· t−¬ng øng ta l¹i thu ®−îc
b¶n râ ban ®Çu.
TËp K cã tÊt c¶ lµ 26m
phÇn tö, do ®ã víi mçi m cã tÊt c¶ lµ
26m
hÖ mËt m· VigenÌre kh¸c nhau (víi m = 6 th× sè ®ã lµ
308,915,776), duyÖt toµn bé chõng Êy kho¸ ®Ó th¸m m· b»ng tÝnh
thñ c«ng th× khã, nh−ng nÕu dïng m¸y tÝnh ®ñ m¹nh th× còng
kh«ng ®Õn nçi khã l¾m!
3.1.5. M· Hill.
S¬ ®å mËt m· nµy ®−îc ®Ò xuÊt bëi Lester S. Hill n¨m 1929.
Còng gièng nh− s¬ ®å m· VigenÌre, c¸c hÖ m· nµy ®−îc thùc hiÖn
trªn tõng bé m ký tù liªn tiÕp, ®iÒu kh¸c lµ mçi ký tù cña b¶n m·
®−îc x¸c ®Þnh bëi mét tæ hîp tuyÕn tÝnh (trªn vµnh Z26) cña m ký tù
trong b¶n râ. Nh− vËy, kho¸ sÏ ®−îc cho bëi mét ma trËn cÊp m, tøc
lµ mét phÇn tö cña K ∈ Z m xm
. §Ó phÐp biÕn ®æi tuyÕn tÝnh x¸c ®Þnh
bëi ma trËn K cã phÐp nghÞch ®¶o, b¶n th©n ma trËn K còng ph¶i cã
ma trËn nghÞch ®¶o K -1
theo mod26; mµ ®iÒu kiÖn cÇn vµ ®ñ ®Ó K cã
nghÞch ®¶o lµ ®Þnh thøc cña nã, ký hiÖu detK, nguyªn tè víi 26. VËy,
s¬ ®å mËt m· Hill ®−îc ®Þnh nghÜa lµ s¬ ®å
S = (P , C , K , E , D ) ,
trong ®ã P = C = 26
m
Z , K = { }
26 : gcd(det ,26) 1
m m
K Z K
×
∈ = ,
c¸c ¸nh x¹ E vµ D ®−îc cho bëi:
eK(x1,..., xm ) = (x1,..., xm ).K mod26,
dK(y1,..., ym ) = (y1,..., ym ). K -1
mod26
víi mäi x =(x1,..., xm ) ∈ P , y =(y1,..., ym ) ∈ C , K ∈ K .
ThÝ dô : Chän m = 2, vµ K = .
11 8
3 7
⎛ ⎞
⎜ ⎟
⎝ ⎠
60
Víi bé hai ký tù x = (x1 ,x2) ta cã m· y = (y1 , y2).K ®−îc tÝnh bëi:
y1 = 11x1 + 3x2 mod26
y2 = 8x1 + 7x2 mod26 .
Ta lÊy l¹i b¶n râ hengapnhauvaochieuthubay, ta còng chuyÓn nã
thµnh d·y sè vµ t¸ch thµnh tõng ®o¹n 2 sè liªn tiÕp:
x = 7 4 ⏐13 6⏐ 0 15⏐ 13 7 ⏐0 20⏐ 21 0⏐ 14 2 ⏐7 8⏐ 4 20 ⏐19 7⏐ 20 1⏐ 0 24.
LËp mËt m· cho tõng ®o¹n hai sè liªn tiÕp, råi nèi ghÐp l¹i ta ®−îc
y = 11 6⏐5 16⏐ 19 1⏐8 21⏐8 2⏐23 12⏐4 22⏐23 8⏐0 16⏐22 19⏐15 11⏐20 12.
Vµ tõ ®ã ta ®−îc b¶n mËt m· d−íi d¹ng d·y ký tù lµ
lgfqtbivicxmewxiaqwtplum .
Chó ý r»ng
61
⎞
⎟
⎠
K -1
= ,
1
11 8 7 18
(mod 26)
3 7 23 11
−
⎛ ⎞ ⎛
=
⎜ ⎟ ⎜
⎝ ⎠ ⎝
vµ gi¶i m· b»ng c¸ch nh©n tõng ®o¹n hai sè liªn tiÕp cña y víi K -1
ta
sÏ ®−îc l¹i d·y x, vµ tõ ®ã ®−îc l¹i b¶n râ.
Víi mçi sè m cho tr−íc, sè c¸c kho¸ cã thÓ cã lµ b»ng sè c¸c ma trËn
K cã detK nguyªn tè víi 26. Ta kh«ng cã c«ng thøc ®Ó tÝnh con sè
®ã, tuy biÕt r»ng khi m lín th× sè ®ã còng lµ rÊt lín, vµ tÊt nhiªn viÖc
th¸m m· b»ng c¸ch duyÖt lÇn l−ît toµn bé c¸c hÖ m· Hill cã cïng sè
m lµ kh«ng kh¶ thi. MÆc dï vËy, tõ l©u ng−êi ta còng ®· t×m ®−îc
nh÷ng ph−¬ng ph¸p th¸m m· kh¸c ®èi víi hÖ m· Hill mét c¸ch kh¸
hiÖu qu¶ mµ ta sÏ giíi thiÖu trong mét phÇn sau.
3.1.6. M· ho¸n vÞ.
C¸c hÖ m· ho¸n vÞ còng ®−îc thùc hiÖn trªn tõng bé m ký tù
liªn tiÕp, nh−ng b¶n mËt m· chØ lµ mét ho¸n vÞ cña c¸c ký tù trong
tõng bé m ký tù cña b¶n râ. Ta ký hiÖu Sm lµ tËp hîp tÊt c¶ c¸c phÐp
ho¸n vÞ cña tËp hîp { 1,2, ... ,m }. S¬ ®å c¸c phÐp m· ho¸n vÞ ®−îc
cho bëi
S = (P , C , K , E , D ) ,
trong ®ã P = C = 26
m
Z , K = Sm , c¸c ¸nh x¹ E vµ D ®−îc cho bëi:
eK(x1,..., xm ) = (1) ( )
( ,..., ),
m
x x
π π
dK(y1,..., ym ) =
víi mäi x =(x
1 1
(1) ( )
( ,..., ),
m
y y
π π
− −
1,..., xm ) ∈ P , y =(y1,..., ym ) ∈ C , K = π ∈ Sm , π-1
lµ ho¸n
vÞ nghÞch ®¶o cña π .
ThÝ dô: Chän m = 6 vµ phÐp ho¸n vÞ π ∈S6 ®−îc cho bëi:
i = 1 2 3 4 5 6
( π (i) = 3 5 1 6 4 2 .
Khi ®ã phÐp ho¸n vÞ π -1
sÏ lµ
j = 1 2 3 4 5 6
π π -1
(j ) = 3 6 1 5 2 4 .
Víi b¶n râ hengapnhauvaochieuthubay, tøc còng lµ víi
x = 7 4 13 6 0 15⏐ 13 7 0 20 21 0⏐ 14 2 7 8 4 20 ⏐19 7 20 1 0 24.
ta sÏ cã b¶n m· t−¬ng øng lµ:
y = 13 0 7 15 6 4 0 21 13 0 20 7 7 4 14 20 8 2 20 0 19 24 1 7
chuyÓn thµnh d·y ký tù lµ nahpgeavnauhheouicuatybh . Dïng cho
tõng bé 6 ký tù liªn tiÕp cña b¶n mËt m· nµy (tøc lµ cña y) phÐp gi¶i
m· dK ta sÏ thu l¹i ®−îc x vµ b¶n râ ban ®Çu.
Chó ý r»ng m· ho¸n vÞ lµ mét tr−êng hîp riªng cña m· Hill.
Thùc vËy, cho phÐp ho¸n vÞ π trªn {1,2,...,m } , ta x¸c ®Þnh ma trËn
Kπ = (ki j ) víi ki j = 1 nÕu i = π(j ), vµ = 0 nÕu ng−îc l¹i, th× dÔ thÊy
r»ng m· Hill víi kho¸ Kπ cho cïng mét phÐp mËt m· nh− m· lo¸n
vÞ víi kho¸ π. Víi mçi m cho tr−íc, sè c¸c hÖ mËt m· ho¸n vÞ cã thÓ
cã lµ m !
62
3.2. Th¸m m· ®èi víi c¸c hÖ mËt m· cæ ®iÓn.
3.2.1. Mét vµi nhËn xÐt chung.
Nh− ®· tr×nh bµy trong tiÕt 1.5 ch−¬ng 1, môc ®Ých cña viÖc
th¸m m· lµ dùa vµo th«ng tin vÒ b¶n mËt m· cã thÓ thu thËp ®−îc
trªn ®−êng truyÒn tin mµ ph¸t hiÖn l¹i ®−îc b¶n râ cña th«ng b¸o.
V× s¬ ®å cña hÖ mËt m· ®−îc sö dông th−êng khã mµ gi÷ ®−îc bÝ
mËt, nªn ta th−êng gi¶ thiÕt th«ng tin xuÊt ph¸t cña bµi to¸n th¸m
m· lµ s¬ ®å hÖ mËt m· ®−îc sö dông vµ b¶n mËt m· cña th«ng b¸o,
nhiÖm vô cña th¸m m· lµ t×m b¶n râ cña th«ng b¸o ®ã. Ngoµi c¸c
th«ng tin xuÊt ph¸t ®ã, tuú tr−êng hîp cô thÓ, cßn cã thÓ cã thªm
c¸c th«ng tin bæ sung kh¸c, v× vËy bµi to¸n th¸m m· ®−îc ph©n
thµnh c¸c lo¹i bµi to¸n kh¸c nhau nh−: th¸m m· chØ dùa vµo b¶n m·,
th¸m m· khi biÕt c¶ b¶n râ, th¸m m· khi cã b¶n râ ®−îc chän, th¸m
m· khi cã b¶n m· ®−îc chän (xem môc 1.5, ch−¬ng 1).
63
m
Trong tiÕt nµy ta sÏ tr×nh bµy mét vµi ph−¬ng ph¸p th¸m m·
®èi víi c¸c hÖ mËt m· cæ ®iÓn m« t¶ trong tiÕt tr−íc. Vµ ta còng gi¶
thiÕt c¸c b¶n râ còng nh− b¶n m· ®Òu ®−îc x©y dùng trªn b¶ng ký
tù tiÕng Anh, vµ h¬n n÷a c¸c th«ng b¸o lµ c¸c v¨n b¶n tiÕng Anh.
Nh− vËy, ta lu«n cã P = C = Z26 hay 26
Z , vµ cã thªm th«ng tin lµ
c¸c b¶n râ tu©n theo c¸c qui t¾c tõ ph¸p vµ có ph¸p cña ng«n ng÷
tiÕng Anh. §©y lµ mét c¨n cø quan träng cña c¸c ph−¬ng ph¸p th¸m
m· ®èi víi c¸c hÖ mËt m· cæ ®iÓn. TiÕc lµ viÖc dïng mËt m· ®Ó
truyÒn ®−a th«ng tin tiÕng ViÖt kh«ng ®Ó l¹i cho ta nhiÒu t− liÖu ®Ó
nghiªn cøu, vµ nh÷ng nghiªn cøu vÒ tõ ph¸p vµ có ph¸p còng ch−a
cho ta nh÷ng qui t¾c thèng kª x¸c suÊt ®ñ tin cËy, nªn trong tµi liÖu
nµy ta ch−a tr×nh bµy ®−îc trªn c¸c thÝ dô mËt m· b»ng ng«n ng÷
ViÖt, ta ®µnh t¹m m−în c¸c thÝ dô b»ng v¨n b¶n tiÕng Anh ®Ó minh
ho¹, mong ®−îc b¹n ®äc bæ sung sau. C¸c kÕt qu¶ chñ yÕu ®−îc sö
dông nhiÒu nhÊt trong th¸m m· lµ c¸c qui t¾c thèng kª tÇn suÊt xuÊt
hiÖn c¸c ký tù hay c¸c bé ®«i, bé ba,...ký tù liªn tiÕp trong c¸c v¨n
b¶n tiÕng Anh. Trªn c¬ së ph©n tÝch c¸c sè liÖu thèng kª tõ mét
l−îng rÊt lín c¸c v¨n b¶n th− tõ, s¸ch vë, b¸o chÝ, v.v... ng−êi ta ®·
64
thu ®−îc nh÷ng kÕt qu¶ mµ c¸c t¸c gi¶ Beker vµ Piper ®· tæng hîp
l¹i nh− sau:
Ph©n bè x¸c suÊt xuÊt hiÖn cña c¸c ký tù ®−îc s¾p xÕp theo
thø tù: 1. Ký tù e cã x¸c suÊt xuÊt hiÖn cao nhÊt lµ 0. 127,
2. C¸c ký tù t, a, o, i, n, s, h, r cã x¸c suÊt tõ 0. 060 ®Õn 0. 090,
3. C¸c ký tù d , l cã x¸c suÊt kho¶ng 0. 04,
4. C¸c ký tù c, u, m,w, f, g, y, p, b cã x¸c suÊt tõ 0. 015 ®Õn 0.028,
5. C¸c ký tù v, k, j, x, q, z cã x¸c suÊt d−íi 0. 01.
Ba m−¬i bé ®«i ký tù cã x¸c suÊt xuÊt hiÖn cao nhÊt lµ (kÓ tõ cao
xuèng): th, he, in, er, an, re, ed, on, es, st, en, at, to, nt, ha, nd, ou, ea,
ng, as, or, ti, is, et, it, ar, te, se, hi, of.
M−êi hai bé ba ký tù cã x¸c suÊt xuÊt hiÖn cao nhÊt lµ: the, ing, and,
her, ere, ent, tha, nth, was, eth, for, dth.
Sau ®©y lµ b¶ng ph©n bè x¸c suÊt cña tÊt c¶ c¸c ký tù:
A (0) 0.082 B (1) 0.015 C (2) 0.028 D (3) 0.043
E (4) 0.127 F (5) 0. 022 G (6) 0.020 H (7) 0. 061
I (8) 0.070 J (9) 0.002 K (10) 0.008 L (11) 0.040
M (12) 0.024 N (13) 0.067 O (14) 0.075 P (15) 0.019
Q (16) 0.001 R (17) 0.060 S (18) 0.063 T (19) 0.091
U (20) 0.028 V (21) 0.010 W (22) 0.023 X (23) 0.001
Y (24) 0.020 Z (25) 0.001.
3.2.2. Th¸m m· ®èi víi m· apphin.
Kho¸ m· apphin cã d¹ng K = (a,b) víi a, b ∈ Z26 vµ
gcd(a,26)=1. Ký tù m· y vµ ký tù b¶n râ x t−¬ng øng cã quan hÖ
y = a.x + b mod 26.
Nh− vËy, nÕu ta biÕt hai cÆp (x, y) kh¸c nhau lµ ta cã ®−îc hai
ph−¬ng tr×nh tuyÕn tÝnh ®Ó tõ ®ã t×m ra gi¸ trÞ hai Èn sè a,b, tøc lµ
t×m ra K.
65
ThÝ dô: Ta cã b¶n mËt m·:
fmxvedkaphferbndkrxrsrefmorudsdkdvshvufedkaprkdlyevlrhhrh .
H·y t×m kho¸ mËt m· vµ b¶n râ t−¬ng øng.
Ta thÊy trong b¶n mËt m· nãi trªn, r xuÊt hiÖn 8 lÇn, d 7 lÇn, e, k, h
mçi ký tù 5 lÇn, f, s, v mçi ký tù 4 lÇn, v.v...; vËy cã thÓ ph¸n ®o¸n r
lµ m· cña e , d lµ m· cña t, khi ®ã cã
4a + b = 17 mod26,
19a + b = 3 mod26,
gi¶i ra ®−îc a = 6 , b = 19. V× gcd(a, 26) = 2 ≠ 1, nªn (a, b) kh«ng thÓ
lµ kho¸ ®−îc, ph¸n ®o¸n trªn kh«ng ®óng. Ta l¹i thö chon mét ph¸n
®o¸n kh¸c: r lµ m· cña e, h lµ m· cña t . Khi ®ã cã:
4 4a + b = 17 mod26,
19a + b = 7 mod26,
ta gi¶i ra ®−îc a = 3, b = 5. V× (a, 26) = 1 nªn K = (3,5) cã thÓ lµ khãa
cÇn t×m. Khi ®ã phÐp lËp mËt m· lµ eK(x ) = 3x +5 mod26, vµ phÐp
gi¶i m· t−¬ng øng lµ dK (y) = 9) = 9y - 19 mod26. Dïng phÐp gi¶i m·
®ã cho b¶n m· ta sÏ ®−îc (d−íi d¹ng ký tù) b¶n râ lµ:
algorithmsarequitegeneraldefinitionsofarithmeticprocesses .
Ta cã thÓ kÕt luËn kho¸ ®óng lµ K = (3, 5) vµ dßng trªn lµ b¶n râ cÇn
t×m.
3.2.3. Th¸m m· ®èi víi m· VigenÌre.
M· VigenÌre cã thÓ coi lµ m· chuyÓn dÞch ®èi víi tõng bé m
ký tù. Kho¸ m· lµ mét bé K = (k1,..., km) gåm m sè nguyªn mod 26.
ViÖc th¸m m· gåm hai b−íc: b−íc thø nhÊt x¸c ®Þnh ®é dµi m, b−íc
thø hai x¸c ®Þnh c¸c sè k1,..., km.
Cã hai ph−¬ng ph¸p ®Ó x¸c ®Þnh ®é dµi m : phÐp thö Kasiski
vµ ph−¬ng ph¸p dïng chØ sè trïng hîp.
PhÐp thö Kasiski (®Ò xuÊt tõ 1863). PhÐp thö dùa vµo nhËn
xÐt r»ng hai ®o¹n trïng nhau cña b¶n râ sÏ ®−îc m· ho¸ thµnh hai
®o¹n trïng nhau cña b¶n m·, nÕu kho¶ng c¸ch cña chóng trong v¨n
b¶n râ (kÓ tõ ký tù ®Çu cña ®o¹n nµy ®Õn ký tù ®Çu cña ®o¹n kia) lµ
béi sè cña m. MÆt kh¸c, nÕu trong b¶n m·, cã hai ®o¹n trïng nhau
vµ cã ®é dµi kh¸ lín (≥ 3 ch¼ng h¹n) th× rÊt cã kh¶ n¨ng chóng lµ m·
cña hai ®o¹n trïng nhau trong b¶n râ. V× vËy, ta thö t×m mét ®o¹n
m· (cã ba ký tù trë lªn) xuÊt hiÖn nhiÒu lÇn trong b¶n m·, tÝnh
kho¶ng c¸ch cña c¸c lÇn xuÊt hiÖn ®ã, ch¼ng h¹n ®−îc d1,d2...,dt ; khi
®ã ta cã thÓ ph¸n ®o¸n m = d = gcd(d1, d2,..., dt )- −íc sè chung lín
nhÊt cña d1, d2..., dt ; hoÆc m lµ −íc sè cña d.
Ph−¬ng ph¸p dïng chØ sè trïng hîp: (®Þnh nghÜa chØ sè trïng
hîp do W.Friedman ®−a ra n¨m 1920).
§Þnh nghÜa 3.1. Cho x = x1, x2... xn lµ mét d·y gåm n ký tù. X¸c suÊt
cña viÖc hai phÇn tö cña x trïng nhau ®−îc gäi lµ chØ sè trïng hîp
cña x , ký hiÖu lµ IC(x).
Ký hiÖu f0, f1,..., f25 lÇn l−ît lµ tÇn suÊt xuÊt hiÖn cña a, b, ... ,z trong x,
ta cã:
( )
( )
25
0
25
2
0
2
( 1
( )
( 1)
i
i
f i i
i
C n
f f
I x
n n
= =
)
+
∑
= =
+
∑
.
Gi¶ sö x lµ mét d·y ký tù (tiÕng Anh). Ta cã thÓ hy väng r»ng:
IC(x) ≈
25
2
0
i
i
p
=
∑ = 0,065 ,
trong ®ã pi lµ x¸c suÊt cña ký tù øng víi sè hiÖu i cho bëi b¶ng ph©n
bè x¸c suÊt c¸c ký tù (trang 61)
NÕu x lµ mét d·y ký tù hoµn toµn ngÉu nhiªn th× ta cã:
IC ≈ 26. (1/26)2
= 1/26 = 0,038 .
66
67
(
Dùa vµo c¸c ®iÒu nãi trªn, ta cã ph−¬ng ph¸p ®o¸n ®é dµi m
cña m· VigenÌre nh− sau: Cho b¶n m· y = y1y2..., yn. Ta viÕt l¹i y
theo b¶ng cã m (m ≥ 1) hµng nh− sau:
y = y1 ym+1..... ytm+1
y2 ym+2..... ytm+2
.
..........................
ym yem..... y(tm+1)m
nghÜa lµ viÕt lÇn l−ît theo c¸c cét m ký tù cho ®Õn hÕt. Ta ký hiÖu y1,
y2,..., ym lµ c¸c x©u ký tù theo m hµng trong b¶ng ®ã. Chó ý r»ng c¸c
ký tù ë mçi hµng yi ®Òu thu ®−îc tõ c¸c ký tù ë v¨n b¶n gèc b»ng
cïng mét phÐp dÞch chuyÓn nÕu m ®óng lµ ®é dµi cña kho¸, do ®ã
nÕu m lµ ®é dµi cña kho¸ th× ta cã thÓ hy väng r»ng víi mäi i, 1 ≤ i ≤
m:
IC yi) ≈ 0,065 .
§Ó ®o¸n ®é dµi m, ta lÇn l−ît chia y theo c¸ch trªn thµnh m =
1, 2, 3... hµng, vµ tÝnh c¸c IC(yi) (1 ≤ i ≤ m), cho ®Õn khi nµo ®−îc mét
sè m mµ víi mäi i, 1 ≤ i ≤ m, ®Òu cã IC(yi) ≈ 0,065 th× ta cã thÓ ch¾c m
lµ ®é dµi cña kho¸.
ThÝ dô: Cho b¶n m·
chreevoahmaeratbiaxxwtnxbeeophbsbqmqeqerbwrvxuoakxa
osxxweahbwgjmmqmnkgrfvgxwtrzxwiaklxfpskautemndemg
tsxmxbtuiadngmgpsrelxnjelxvrvprtulhdnqwtwdtygbphxtfalj
hasvbfxngllchrzbwelekmsjiknbhwrignmgjsglxfeyphagnbieqjt
mrvlcrremndglxrrimgnsnrwchrqhaeyevtaqebbipeewevkakoe
wadremxmtbhhchrtkdnvrzchrclqohpwqaiiwxnrmgwoiifkee.
Dïng phÐp thö Kasiski, ta nhËn thÊy r»ng chr xuÊt hiÖn 5 lÇn,
kho¶ng c¸ch cña c¸c lÇn xuÊt hiÖn liªn tiÕp lµ 165, 70, 50, 10. ¦íc sè
chung cña c¸c sè ®ã lµ 5. VËy ta cã thÓ ph¸n ®o¸n ®é dµi kho¸ m· lµ
5.
Dïng ph−¬ng ph¸p chØ sè trïng hîp, víi m = 1 ta cã mét chØ sè
trïng hîp lµ 0,045; víi m = 2 cã hai chØ sè lµ 0,046 vµ 0,041; víi m = 3
cã ba chØ sè lµ 0,043; 0,050 vµ 0,047 ; víi m = 4 cã bèn chØ sè lµ 0,042;
0,039; 0,046 vµ 0,043; víi m = 5, ta thu ®−îc n¨m chØ sè lµ 0,063;
0,068; 0,069; 0,061 vµ 0,072, ®Òu kh¸ gÇn víi 0,065. VËy cã thÓ ph¸n
®o¸n ®é dµi kho¸ lµ 5. C¶ hai ph−¬ng ph¸p cho kÕt qu¶ nh− nhau.
B©y giê ®Õn b−íc thø hai lµ x¸c ®Þnh c¸c gi¸ trÞ k1, k2,...km. Ta
cÇn mét kh¸i niÖm míi lµ chØ sè trïng hîp t−¬ng hç, ®−îc ®Þnh
nghÜa nh− sau:
§Þnh nghÜa 3.2. Gi¶ sö x = x1x2... xn vµ y = y1y2... yn lµ hai d·y ký tù cã
®é dµi n vµ n'. ChØ sè trïng hîp t−¬ng hç cña x vµ y, ký hiÖu
MIC(x,y), ®−îc ®Þnh nghÜa lµ x¸c suÊt cña viÖc mét phÇn tö cña x
trïng víi mét phÇn tö cña y.
Ký hiÖu 0 1 25
, ,...,
f f f vµ ' ' '
0 1 25
, ,...,
f f f lµ tÇn suÊt xuÊt hiÖn cña a, b,...,z
trong x vµ y t−¬ng øng. Khi ®ã, ta cã:
MIC(x,y) =
25
'
0
.
. '
i i
i
f f
n n
=
∑
.
B©y giê víi m ®· x¸c ®Þnh, ta viÕt b¶n m· y lÇn l−ît theo tõng cét ®Ó
®−îc m hµng y1,...ym nh− ë phÇn trªn. Ta t×m kho¸ m· K =
(k1,k2,...km).
Gi¶ sö x lµ b¶n râ vµ x1,...,xm lµ c¸c phÇn b¶n râ t−¬ng øng víi
y1,...,ym. Ta cã thÓ xem ph©n bè x¸c suÊt cña c¸c ký tù trªn x, vµ còng
trªn c¸c x1,..., xm lµ xÊp xØ víi ph©n bè x¸c suÊt cña c¸c ký tù trªn v¨n
b¶n tiÕng Anh nãi chung. Do ®ã, x¸c suÊt cña viÖc mét ký tù ngÉu
68
nhiªn cña yi b»ng a lµ i
k
p− , b»ng b lµ 1 i
k
p − , v.v... Vµ ta cã thÓ ®¸nh
gi¸
25 25
0 0
( , ) . . .
i j i
C i j h k h k h h k k
h h
MI y y p p p p
− − + −
= =
≈ =
∑ ∑ j
§¹i l−îng ®ã chØ phô thuéc vµo ki - kj, ta gäi lµ dÞch chuyÓn t−¬ng
®èi cña yi vµ yj. Ta chó ý r»ng biÓu thøc:
25
0
.
h h l
h
p p +
=
∑
cã gi¸ trÞ lín nhÊt khi l = 0 lµ 0,065, vµ cã gi¸ trÞ biÕn thiªn gi÷a 0,031
vµ 0,045 víi mäi l > 0 .
NhËn xÐt r»ng yj ph¶i dÞch chuyÓn l = ki - kj b−íc (hay dÞch chuyÓn l
ký tù trong b¶ng ch÷ c¸i) ®Ó ®−îc yi , nªn nÕu ký hiÖu yj
g
lµ dÞch
chuyÓn g b−íc cña yj , th× ta cã hy väng khi tÝnh lÇn l−ît c¸c ®¹i
l−îng MIC(yi,yj
g
) víi 0 ≤ g ≤ 25, ta sÏ ®¹t ®−îc mét gi¸ trÞ xÊp xØ
0,065 víi g = l, vµ c¸c gi¸ trÞ kh¸c ®Òu ë kho¶ng gi÷a 0,031 vµ 0,045.
§iÒu ®ã cho ta mét ph−¬ng ph¸p ®Ó −íc l−îng c¸c dÞch chuyÓn ki -
kj , tøc lµ ®−îc mét sè ph−¬ng tr×nh d¹ng ki - kj = l, tõ ®ã gióp ta
tÝnh ra c¸c gi¸ trÞ k1, k2,..., km.
Trong thÝ dô cña b¶n m· ®ang xÐt, ta tÝnh ®−îc c¸c gi¸ trÞ
MIC(yi , yj
g
) víi 1 ≤ i ≤ j ≤ 5, 0 ≤ g ≤ 25, nh− trong b¶ng ë trang sau
®©y (trong b¶ng ®ã, ë bªn ph¶i mçi cÆp (i, j ) lµ mét ng¨n gåm cã 26
gi¸ trÞ cña MIC(yi , yj
g
) øng víi c¸c gi¸ trÞ cña g = 0,1,2,..., 25).
Nh×n b¶ng ®ã, ta thÊy c¸c gi¸ trÞ MIC(yi , yj
g
) xÊp xØ 0.065 (nh−
®−îc in ®Ëm vµ g¹ch d−íi ë trong b¶ng) øng víi c¸c bé gi¸ trÞ (i, j,g )
lÇn l−ît b»ng (1,2,9), (1,5,16), (2,3,13), (2,5,7), (3,5,20) vµ (4,5,11).
69
70
i j Gi¸ trÞ cña MIC(yi , yj
g
)
1 2
.028 .027 .028 .034 .039 .037 .026 .025 .052 .068 .044 .026 .037
.043 .037 .043 .037 .028 .041 .041 .034 .037 .051 .045 .042 .036
1 3
.039 .033 .040 .034 .028 .053 .048 .033 .029 .056 .050 .045 .039
.040 .036 .037 .032 .027 . 037 .036 .031 .037 .055 .029 .024 .037
1 4 .034 .043 .025 .027 .038 .049 .040 .032 .029 .034 .039 .044 .044
.034 .039 .045 .044 .037 .055 .047 .032 .027 .039 .037 .039 .035
1 5 .043 .033 .028 .046 .043 .044 .039 .031 .026 .030 .036 .040 .041
.024 .019 .048 .070 .044 .028 .038 .044 .043 .047 .033 .026 .046
2 3 .046 .048 .041 .032 .036 .035 .036 030 .024 .039 .034 .029 .040
.067 .041 .033 .037 .045 .033 .033 .027 .033 .045 .052 .042 .030
2 4 .046 .034 .043 .044 .034 .031 .040 .045 040 .048 .044 .033 .024
.028 .042 .039 .026 .034 .050 .035 ,032 .040 .056 .043 .028 .028
2 5 .033 .033 .036 .046 .026 .018 .043 .080 .050 .029 .031 .045 .039
.037 .027 .026 .031 .039 .040 .037 .041 .046 .045 .043 .035 .030
3 4 .038 .036 .040 .033 .036 .060 .035 .041 .029 .058 .035 .035 .034
.053 .030 .032 .035 .036 .036 .028 .046 .032 .051 .032 .034 .030
3 5 .035 .034 .034 .036 .030 .043 .043 .050 .025 .041 .051 .050 .035
.032 .033 .033 .052 .031 .027 .030 .072 .035 .034 .032 .043 .027
4 5 .052 .038 .033 .038 .041 .043 .037 .048 .028 .028 .036 .061 .033
.033 .032 .052 .034 .027 .039 .043 .033 .027 .030 .039 .048 .035
Tõ ®ã ta cã c¸c ph−¬ng tr×nh (theo mod26):
k1 - k2 = 9 k2 - k5 = 7
k1 - k5 = 16 k3 - k5 = 20
k2 - k3 = 13 k4 - k5 = 11 .
HÖ ph−¬ng tr×nh ®ã chØ cã 4 ph−¬ng tr×nh ®éc lËp tuyÕn tÝnh, mµ cã
5 Èn sè, nªn lêi gi¶i phô thuéc mét tham sè, ta chän lµ k1, vµ ®−îc
(k1, k2, k3, k4, k5) = (k1, k1 + 17, k1 + 4, k1 + 21, k1 + 10)mod26.
Thö víi c¸c gi¸ trÞ cã thÓ cña k1 (0 ≤ k1 ≤ 26), cuèi cïng ta cã thÓ t×m
®−îc b¶n râ nh− sau ®©y víi kho¸ lµ JANET (k1 = 9):
the almond tree was in tentative blossom the days were longer often
ending with magnificent evenings of corrugated pink skies the
hunting season was over with hounds and guns put away for six
months the vineyards were busy again as the well organized
farmers treated their vines and the more lackadaisical neighbors
hurried to do the pruning they should have done in november.
3.2.4. Th¸m m· ®èi víi m· Hill.
MËt m· Hill khã bÞ kh¸m ph¸ bëi viÖc th¸m m· chØ dùa vµo
b¶n m·, nh−ng l¹i lµ dÔ bÞ kh¸m ph¸ nÕu cã thÓ sö dông phÐp th¸m
m· kiÓu biÕt c¶ b¶n râ. Tr−íc hÕt ta gi¶ thiÕt lµ ®· biÕt gi¸ trÞ m. Môc
®Ých cña th¸m m· lµ ph¸t hiÖn ®−îc kho¸ mËt m· K, trong tr−êng
hîp m· Hill lµ mét ma trËn cÊp m cã c¸c thµnh phÇn trong Z26.
Ta chän mét b¶n râ cã chøa Ýt nhÊt m bé m kh¸c nhau c¸c ký tù:
71
m
1 11 1 1
( ,..., ),....., ( ,..., ),
m m m m
x x x x x x
= =
vµ gi¶ thiÕt biÕt m· t−¬ng øng cña chóng lµ:
1 11 1 1
( ,..., ),...., ( ,..., ).
m m m m
y y y y y y m
= =
Ta ký hiÖu X vµ Y lµ hai ma trËn cÊp m , X=(xi j ), Y= (yi j ). Theo ®Þnh
nghÜa m· Hill, ta cã ph−¬ng tr×nh Y =X.K. NÕu c¸c xi ®−îc chän sao
cho ma trËn X cã nghÞch ®¶o X-1
th× ta t×m ®−îc K = X-1
.Y , tøc lµ t×m
®−îc kho¸ cña hÖ m· ®−îc sö dông.
ThÝ dô: Gi¶ sö m· Hill ®−îc sö dông cã m =2, vµ ta biÕt b¶n râ
friday cïng b¶n m· t−¬ng øng pqcfku. Nh− vËy ta biÕt
eK(5,17) =(15,16), eK(8,3) =(2,5), vµ eK(0,24) =(10,20).
Tõ hai ph−¬ng tr×nh ®Çu ta ®−îc
15 16 5 17
. ,
2 5 8 3
K
⎛ ⎞ ⎛ ⎞
=
⎜ ⎟ ⎜ ⎟
⎝ ⎠ ⎝ ⎠
72
⎟
i
tõ ®ã ®−îc K = . Víi K ®ã ph−¬ng tr×nh thø ba còng nghiÖm
®óng.
7 19
8 3
⎛ ⎞
⎜
⎝ ⎠
Trë l¹i víi vÊn ®Ò x¸c ®Þnh m. NÕu m kh«ng qua lín, ta cã
thÓ thö c¸ch trªn lÇn l−ît víi m = 2,3,4,... cho ®Õn khi t×m ®−îc kho¸,
vµ kho¸ K xem lµ t×m ®−îc nÕu ngoµi m cÆp bé m (x1,y1),..., (xm , ym)
dïng ®Ó t×m kho¸, K vÉn nghiÖm ®óng víi c¸c cÆp bé m kh¸c mµ ta
cã thÓ chän ®Ó thö.
3.3. MËt m· theo dßng vµ c¸c d·y sè gi¶ ngÉu nhiªn.
3.3.1. MËt m· theo dßng.
C¸c hÖ mËt m· ®−îc xÐt trong c¸c tiÕt trªn ®Òu thuéc lo¹i mËt
m· theo khèi, v¨n b¶n râ ®−îc chia thµnh tõng khèi vµ viÖc lËp mËt
m· cho v¨n b¶n ®ã ®−îc thùc hiÖn cho tõng khèi råi sau ®ã nèi
ghÐp l¹i, lËp mËt m· cho tÊt c¶ c¸c khèi ®Òu theo cïng mét kho¸
chung K. Víi c¸ch lËp mËt m· theo dßng, theo m« t¶ trong tiÕt 1.2,
c¸c khoa dïng cho c¸c khèi v¨n b¶n nãi trªn cã thÓ kh¸c nhau, do
®ã, cïng víi s¬ ®å mËt m· gèc, ta cßn cÇn cã mét bé s nh dßng kho¸
®Ó víi mçi mÇm kho¸ s cho tr−íc nã sinh ra mét dßng kho¸
K1K2K3..., mçi Ki dïng ®Ó lËp mËt m· cho khèi xi cña v¨n b¶n. Mçi
tõ kho¸ Ki , ngoµi viÖc phô thuéc vµo mÇm kho¸ s cßn cã thÓ phô
thuéc vµo ®o¹n tõ kho¸ K1...Ki-1 ®· ®−îc sinh ra tr−íc ®ã vµ c¶ vµo
c¸c yÕu tè kh¸c, ch¼ng h¹n nh− ®o¹n v¨n b¶n x1...xi-1 ®· ®−îc lËp
mËt m· tr−íc ®ã. Nh− vËy, ta cã thÓ ®Þnh nghÜa l¹i nh− sau: Mét s¬
®å hÖ mËt m· theo dßng ®−îc cho bëi mét bé
S = (P , C , R, K , F, E , D ) (1)
73
f
f
tháa m·n c¸c ®iÒu kiÖn sau ®©y:
P lµ mét tËp h÷u h¹n c¸c ký tù b¶n râ,
C lµ mét tËp h÷u h¹n c¸c ký tù b¶n m·,
R lµ mét tËp h÷u h¹n c¸c mÇm kho¸,
K lµ mét tËp h÷u h¹n c¸c khãa,
F = { f1, f 2,....}lµ bé sinh dßng kho¸, trong ®ã mçi i lµ mét ¸nh
x¹ tõ R 3K i- 1
3P i- 1
vµo K ,
E lµ mét ¸nh x¹ tõ K3P vµo C , , ®−îc gäi lµ phÐp lËp mËt m·;
vµ D lµ mét ¸nh x¹ tõ K 3C vµo P , ®−îc gäi lµ phÐp gi¶i m·. Víi
mçi KεK , ta ®Þnh nghÜa eK : P →C , dK :C →P lµ hai hµm cho bëi :
⎠x εP : eK(x) = E (K,x) ; ⎠yε C : dK(y) = D (K,y).
eK vµ dK ®−îc gäi lÇn l−ît lµ hµm lËp m· vµ hµm gi¶i m· øng víi
khãa mËt m· K. C¸c hµm ®ã ph¶i tháa m·n hÖ thøc:
⎠x ε P : dK(eK(x)) = x.
Khi cho tr−íc mÇm kho¸ r εR , víi mçi b¶n râ x = x1x2....xm ∈
P *
, ta cã b¶n mËt m· t−¬ng øng lµ y = y1 y2.... ym , víi
yi = E (Ki ,xi ) , trong ®ã Ki = fi (r, K1,...,Ki- 1, x1x2....xi- 1), (i =1,2,...,m).
§iÒu ®ã cã nghÜa lµ tõ mÇm kho¸ r vµ b¶n râ x sinh ra ®−îc dßng
kho¸ K1K2...Km , vµ víi dßng kho¸ ®ã lËp ®−îc b¶n mËt m· y theo
tõng ký tù mét.
NÕu bé sinh dßng kho¸ kh«ng phô thuéc vµo v¨n b¶n râ, tøc
lµ nÕu mçi i lµ mét ¸nh x¹ tõ R 3K i- 1
vµo K , th× ta gäi bé sinh dßng
kho¸ ®ã lµ ®ång bé ; dßng kho¸ chØ phô thuéc vµo mÇm kho¸ vµ lµ
nh− nhau ®èi víi mäi v¨n b¶n râ. Mét dßng khãa K =K1K2K3.. ®−îc
gäi lµ tuÇn hoµn víi chu kú d nÕu cã sè nguyªn N sao cho Ki+d = Ki
víi mäi i ≥ N . Chó ý r»ng m· VigenÌre víi ®é dµi khãa m cã thÓ
®−îc coi lµ m· dßng víi dßng kho¸ cã chu kú m, vµ cã c¸c phÐp lËp
m· vµ gi¶i m· theo m· chuyÓn dÞch.
§èi víi c¸c hÖ m· theo dßng, ®é b¶o mËt th−êng ®−îc quyÕt
®Þnh bëi ®é ngÉu nhiªn cña dßng kho¸, tøc lµ tÝnh ngÉu nhiªn cña
viÖc xuÊt hiÖn c¸c ký tù trong dßng kho¸, mµ Ýt phô thuéc vµo b¶n
th©n phÐp lËp mËt m·, do ®ã c¸c phÐp lËp mËt m· eK (vµ c¶ phÐp
gi¶i m· dK ) ®Òu cã thÓ ®−îc chän lµ c¸c phÐp ®¬n gi¶n; trong c¸c
øng dông thùc tÕ, ng−êi ta th−êng dïng hÖ m· víi P = C = K = Z2 ,
vµ víi c¸c phÐp lËp m· vµ gi¶i m· ®−îc cho bëi
( ) mod 2,
(2)
( ) mod 2
K
K
e x x K
d y y K
= + ⎫
⎬
= + ⎭
3.3.2. M· dßng víi dßng kho¸ sinh bëi hÖ thøc truy to¸n.
74
)
C¸c hÖ mËt m· dßng víi dßng kho¸ sinh bëi hÖ thøc truy to¸n
lµ c¸c hÖ m· theo s¬ ®å (1) víi P = C = K = Z2 , R = , mçi
mÇm kho¸ r = r
2 ( 1
m
Z m ≥
1....rm t¹o ra mét dßng kho¸ ®ång bé K = z1z2....zi....
víi
1 1
,( 1,..., )
... mod 2,( 1),
i i
i i m m i
z r i m
z c z c z i m
− −
= =
⎧
⎨
= + + ≥ +
⎩
(3)
trong ®ã c1 ,..., cm lµ c¸c h»ng sè thuéc Z2 ; c¸c phÐp lËp mËt m· vµ
gi¶i m· cho tõng ký tù ®−îc cho bëi c¸c c«ng thøc (2).
C¸c dßng kho¸ sinh bëi hÖ thøc truy to¸n nh− trªn lµ c¸c
dßng kho¸ tuÇn hoµn, ta cã thÓ chän mÇm sao cho ®¹t ®−îc dßng
kho¸ cã chu kú lín nhÊt lµ 2m
-1.
HÖ t¹o sinh c¸c dßng kho¸ bëi hÖ thøc truy to¸n cã thÓ ®−îc
thùc hiÖn bëi mét thiÕt bÞ kü thuËt ®¬n gi¶n b»ng c¸ch dïng mét
thanh ghi chuyÓn dÞch ph¶n håi tuyÕn tÝnh (linear feedback shift
register); vµ nh− vËy chØ cÇn thªm mét bé céng mod2 n÷a lµ ta cã
®−îc mét m¸y lËp mËt m· vµ gi¶i m· tù ®éng; do ®ã c¸c m¸y mËt
m· kiÓu nµy ®· ®−îc sö dông kh¸ phæ biÕn trong mét giai ®o¹n
tr−íc ®©y.
ThÝ dô: chän m = 4 vµ hÖ thøc truy to¸n
zi = zi - 4 + zi - 3 mod2 (i >4)
ta sÏ ®−îc víi mäi mÇm K = z1z2z3z4 ≠ 0000 mét dßng kho¸ tuÇn
hoµn cã chu kú 15. Ch¼ng h¹n, víi r = 1000 ta sÏ ®−îc dßng kho¸:
10001001101011110001001........
Dßng kho¸ ®ã ®−îc sinh bëi thanh ghi chuyÓn dÞch ph¶n håi tuyÕn
tÝnh sau ®©y:
3.3.3. M· dßng víi dßng kho¸ lµ d·y sè gi¶ ngÉu nhiªn.
Nh− ®· xÐt trong c¸c môc trªn, s¬ ®å m· theo dßng cã thÓ
®−îc xem lµ bao gåm hai bé phËn: mét s¬ ®å mËt m· nÒn (cho viÖc
lËp mËt m· vµ gi¶i m· trªn tõng ký tù),vµ mét c¬ chÕ t¹o dßng khãa.
T−¬ng tù nh− víi hÖ m· dßng cã dßng kho¸ sinh bëi thanh ghi
chuyÓn dÞch trong môc trªn, ta sÏ xÐt s¬ ®å mËt m· nÒn lµ s¬ ®å
S = (P , C , K , E , D ) ,
trong ®ã P = C = K = Z2 , E vµ D ®−îc cho bëi:
E (K, x ) = x + K mod2 , D (K, y ) = y + K mod2 .
75
) vµ
C¬ chÕ t¹o dßng kho¸ cã thÓ xem lµ mét ¸nh x¹ ϕ : R XZ→ K , x¸c
®Þnh víi mçi mÇm kho¸ r ∈R = mçi sè nguyªn i ≥ 0,
mét sè h¹ng z
2 ( 1
m
Z m ≥
i = ϕ (r ,i ) ∈ K cña dßng kho¸ ®ång bé K = z1z2....zi.....
Mét hÖ mËt m· dßng lµ cã ®é b¶o mËt cao, nÕu b¶n th©n s¬ ®å
mËt m· nÒn cã ®é b¶o mËt cao (ch¼ng h¹n, lµ bÝ mËt hoµn toµn theo
®Þnh nghÜa Shannon), vµ c¬ chÕ t¹o dßng kho¸ t¹o ra ®−îc c¸c dßng
kho¸ lµ c¸c d·y bit ngÉu nhiªn. DÔ thÊy r»ng, s¬ ®å mËt m· nÒn m«
t¶ ë trªn tho¶ m·n c¸c ®iÒu kiÖn cña ®Þnh lý 2.2.1 , do ®ã nã lµ bÝ mËt
hoµn toµn; v× vËy ®Ó cã ®−îc c¸c hÖ m· dßng víi ®é b¶o mËt cao ta
chØ cÇn chän ®−îc c¸c c¬ chÕ t¹o dßng kho¸ b¶o ®¶m sinh ra c¸c d·y
bit ngÉu nhiªn. Mét d·y bit z1z2....zi..... ®−îc xem lµ ngÉu nhiªn, nÕu
mçi zi lµ mét biÕn ngÉu nhiªn víi p(zi = 0) = p(zi = 1) = 0.5, vµ c¸c
biÕn ngÉu nhiªn zi vµ zj (i≠ j ) lµ ®éc lËp víi nhau. Víi nghÜa ®ã, ta
kh«ng cã c¸ch nµo ®Ó ®o¸n nhËn mét d·y bit cho tr−íc cã lµ ngÉu
nhiªn hay kh«ng, v¶ ch¨ng mét d·y bit, nÕu ®· ®−îc sinh ra bëi mét
sè h÷u h¹n qui t¾c nµo ®ã, th× kh«ng cßn cã thÓ xem lµ ngÉu nhiªn
®−îc n÷a. V× vËy, thay cho ®ßi hái ph¶i t¹o ra c¸c d·y bit ngÉu
nhiªn, th−êng ta chØ yªu cÇu t¹o ra ®−îc c¸c d·y bit gi¶ ngÉu nhiªn,
tøc lµ cã mét tÝnh chÊt nµo ®ã gÇn víi ngÉu nhiªn, mµ th«i. Yªu cÇu
th«ng dông nhÊt ®èi víi tÝnh gi¶ ngÉu nhiªn cña mét d·y bit
z1z2....zi..... lµ “biÕt tr−íc mét ®o¹n ®Çu z1z2....zi- 1 khã mµ ®o¸n ®−îc
bit tiÕp theo zi ”. Ta thö chÝnh x¸c ho¸ ý t−ëng nµy nh− sau:
76
)
Kh«ng gian c¸c mÇm kho¸ R = cã tÊt c¶ lµ 2
2 ( 1
m
Z m ≥ m
mÇm
kho¸ kh¸c nhau, gi¶ sö tÊt c¶ chóng ®Òu cã x¸c suÊt xuÊt hiÖn nh−
nhau, tøc lµ b»ng 1/2m
. Ta xÐt tËp hîp tÊt c¶ c¸c dßng kho¸ cã thÓ cã
víi ®é dµi l (l >m), tøc lµ tËp Z l
, vµ trªn tËp ®ã ta x¸c ®Þnh mét ph©n
bè x¸c suÊt p1 sao cho p1(z1....zl) =1/2m
nÕu z1....zl lµ mét dßng kho¸
sinh ra ®−îc tõ mét mÇm kho¸ r ∈R nµo ®ã, vµ p1(z1....zl) = 0 nÕu
ng−îc l¹i. Ta nãi ph©n bè x¸c suÊt p1 ®ã trªn Z l
lµ ®−îc c¶m sinh tõ
ph©n bè x¸c suÊt ®Òu trªn kh«ng gian c¸c mÇm kho¸ R . Cßn chÝnh
ph©n bè x¸c suÊt ®Òu trªn Zl
sÏ ®−îc ký hiÖu lµ p0.
Gi¶ sö ϕ : R XZ→ K lµ c¬ chÕ t¹o dßng kho¸ cña mét hÖ mËt m·
dßng, vµ r ∈R . Ta nãi B lµ mét thuËt to¸n ®o¸n bit tiÕp theo (®èi víi
ϕ vµ r ) nÕu víi mäi sè nguyªn i (0≤ i ≤ l )vµ mäi tõ z1...zi-1∈Z i -1
, ta
cã : B (i, z1...zi- 1) = ϕ (r ,i ). Râ rµng nÕu ta muèn c¬ chÕ ϕ t¹o ra c¸c
dßng kho¸ gi¶ ngÉu nhiªn tèt th× ta kh«ng mong cã thuËt to¸n ®o¸n
bit tiÕp theo lµm viÖc cã hiÖu qu¶ (ch¼ng h¹n tÝnh to¸n ®−îc trong
thêi gian ®a thøc). Gi¶m nhÑ yªu cÇu “®o¸n ®óng bit tiÕp theo”, ta sÏ
nãi thuËt to¸n B lµ ε-®o¸n bit tiÕp theo (®èi víi ϕ vµ r ) nÕu cã
1
1 1
1 1 1 1 1
...
1
( ... ). ( ( , ... ) ( , )) .
2
i
i
i i
z z Z
p z z p B i z z r i
ϕ ε
−
−
− −
∈
= ≥ +
∑ (4)
(chó ý r»ng biÓu thøc ë vÕ tr¸i lµ kú väng to¸n häc cña viÖc ®o¸n
®óng bit thø i tiÕp theo cña c¸c dßng kho¸ gåm i -1 bit).
Nh− vËy, ta cã thÓ xem mét c¬ chÕ t¹o dßng kho¸ ϕ lµ an toµn
®Ó sö dông cho c¸c hÖ mËt m· theo dßng, nÕu víi mäi mÇm kho¸ r
vµ mäi ε > 0 bÊt kú, kh«ng thÓ cã thuËt to¸n ε-®o¸n bit tiÕp theo lµm
viÖc trong thêi gian ®a thøc.
D−íi ®©y, ta sÏ dùa vµo c¸c hµm sè häc mét phÝa ®Ó x©y dùng
mét sè c¬ chÕ t¹o c¸c d·y sè gi¶ ngÉu nhiªn c¬ hå cã thÓ dïng lµm
c¬ chÕ ®Ó t¹o dßng kho¸ cho c¸c hÖ mËt m· theo dßng mµ ta ®ang
xÐt.
T¹o bit gi¶ ngÉu nhiªn RSA.
C¬ chÕ t¹o d·y bit gi¶ ngÉu nhiªn RSA ®−îc m« t¶ nh− sau :
Chän sè nguyªn n =p.q lµ tÝch cña hai sè nguyªn tè p vµ q cã biÓu
diÔn nhÞ ph©n víi ®é dµi cì m/2 bit (nh− vËy n cã biÓu diÔn nhÞ
ph©n cì m bit), vµ mét sè b sao cho gcd(b,φ (n)) = 1. LÊy R = n
Z∗
, vµ
víi mçi r ∈R x¸c ®Þnh d·y sè s0, s1, s2,.... nh− sau:
0
1
,
mod ,
b
i i
s r
s s n
+
=
⎧
⎪
⎨
=
⎪
⎩
vµ sau ®ã ®Þnh nghÜa zi =ϕ (r ,i ) = si mod2, tøc zi lµ bit thÊp nhÊt
trong biÓu diÔn nhÞ ph©n cña sè si. D·y K = z1z2....zi.... lµ dßng bit
®ång bé ®−îc t¹o ra bëi mÇm r.
ThÝ dô : LÊy n = 91261 = 263.347, b =1547, r =75634. Cã thÓ tÝnh c¸c
sè s1,...,s20 lÇn l−ît lµ:
31483, 31238, 51968, 39796, 28716, 14089, 5923, 44891,
62284, 11889, 43467, 71215, 10401, 77444, 56794, 78147,
72137, 89592, 29022, 13356.
Vµ 20 bit ®Çu tiªn cña dßng bit gi¶ ngÉu nhiªn ®−îc sinh ra lµ:
77
z1...z20 = 10000111011110011000.
T¹o bit gi¶ ngÉu nhiªn BBS (Blum-Blum-Shub) :
C¬ chÕ t¹o bit gi¶ ngÉu nhiªn BBS ®−îc m« t¶ nh− sau : Chän
n =p.q lµ tÝch cña hai sè nguyªn tè d¹ng 4m +3, tøc p ≡ 3(mod4) vµ
q ≡ 3 (mod4). Gäi QR(n ) lµ tËp c¸c thÆng d− bËc hai theo modn. LÊy
R =QR(n ) , vµ víi mçi r ∈R x¸c ®Þnh d·y sè s0, s1, s2,.... nh− sau:
0
2
1
,
mod ,
i i
s r
s s n
+
=
⎧
⎪
⎨
=
⎪
⎩
vµ sau ®ã ®Þnh nghÜa zi =ϕ (r ,i ) = si mod2, tøc zi lµ bit thÊp nhÊt
trong biÓu diÔn nhÞ ph©n cña sè si. D·y K = z1z2....zi.... lµ dßng bit
®ång bé ®−îc t¹o ra bëi mÇm r.
ThÝ dô : LÊy n = 192649 = 383.503, r = 20749 (= 1013552
modn). Cã
thÓ tÝnh 20 sè ®Çu cña d·y s1,...,s20,... lÇn l−ît lµ:
143135, 177671, 97048, 89992, 174051, 80649, 45663,
69442, 186894, 177046, 137922, 123175, 8630, 114386,
14863, 133015, 106065, 45870, 137171, 18460.
Vµ 20 bit ®Çu cña dßng bit gi¶ ngÉu nhiªn ®−îc sinh ra lµ:
z1...z20 = 11001110000100111010.
T¹o bit gi¶ ngÉu nhiªn dùa vµo bµi to¸n logarit rêi r¹c :
Chän p lµ mét sè nguyªn tè lín, vµ α lµ mét phÇn tö nguyªn
thuû theo modp. TËp c¸c mÇm kho¸ lµ R = p
Z∗
. Víi mçi mÇm kho¸
r ∈R ta x¸c ®Þnh d·y sè s0,...,si .... bëi :
0
1
,
mod .
i
s
i
s r
s p
α
+
=
=
78
79
s
Sau ®ã ®Þnh nghÜa zi = ϕ (r ,i )(i =1,2,....) nh− sau: zi = 1 nÕu si > p/2,
vµ zi = 0 nÕu i < p/2. Vµ K =z1....zi...... lµ dßng kho¸, tøc dßng bit gi¶
ngÉu nhiªn, ®−îc t¹o ra.
Trªn ®©y lµ mét vµi c¬ chÕ t¹o dßng kho¸, vµ ®Ó c¸c dßng
kho¸ ®−îc t¹o ra ®ã lµ nh÷ng dßng bit gi¶ ngÉu nhiªn tèt , ta ®· cè ý
dùa vµo mét sè bµi to¸n sè häc khã theo nghÜa lµ ch−a t×m ®−îc
nh÷ng thuËt to¸n lµm viÖc trong thêi gian ®a thøc ®Ó gi¶i chóng,
nh− c¸c bµi to¸n RSA, bµi to¸n thÆng d− bËc hai vµ bµi to¸n l«garit
rêi r¹c. C¸c c¬ chÕ t¹o dßng kho¸ ®ã ®−îc xem lµ an toµn nÕu ta
chøng minh ®−îc r»ng kh«ng thÓ cã c¸c thuËt to¸n ε-®o¸n bit tiÕp
theo ®èi víi chóng; hay mét c¸ch kh¸c, nÕu cã thuËt to¸n ε-®o¸n bit
tiÕp theo ®èi víi chóng th× còng sÏ cã thuËt to¸n (tÊt ®Þnh hoÆc x¸c
suÊt) gi¶i c¸c bµi to¸n sè häc t−¬ng øng. TiÕc thay, ®Õn nay ta ch−a
chøng minh ®−îc mét kÕt qu¶ nµo theo h−íng mong muèn ®ã; tuy
nhiªn còng ®· cã mét vµi kÕt qu¶ yÕu h¬n, thÝ dô, ®èi víi bé t¹o bit
gi¶ ngÉu nhiªn BBS ng−êi ta ®· chøng minh ®−îc r»ng : nÕu víi mäi
ε > 0 cã thuËt to¸n ε- ®o¸n bit cã tr−íc (®èi víi ϕ vµ r ) th× víi mäi δ
> 0 còng cã thÓ x©y dùng mét thuËt to¸n x¸c suÊt gi¶i bµi to¸n thÆng
d− bËc hai víi x¸c suÊt tr¶ lêi sai lµ < δ (§Þnh nghÜa cña thuËt to¸n
ε- ®o¸n bit cã tr−íc t−¬ng tù nh− víi thuËt to¸n ε- ®o¸n bit tiÕp
theo, chØ kh¸c lµ thay c«ng thøc (4) bëi c«ng thøc sau ®©y
1
1 1
1 1 1 1 1 0
...
1
( ... ). ( ( , ... ) ) .
2
i
i
i i
z z Z
p z z p B i z z z ε
−
−
− −
∈
= ≥ +
∑
trong ®ã z0 = s0 mod2 lµ bit cã tr−íc d·y z1...zi-1).
Trong thùc tiÔn, c¸c hÖ m· dßng víi dßng kho¸ lµ d·y bit
ngÉu nhiªn ®· ®−îc sö dông tõ l©u vµ cßn ®−îc sö dông cho ®Õn
ngµy nay, víi dßng bit ngÉu nhiªn ®−îc t¹o ra mét c¸ch c¬ häc nh−
viÖc tung ®ång xu liªn tiÕp vµ ghi liªn tiÕp c¸c kÕt qu¶ “sÊp, ngöa”
cña c¸c lÇn tung. C¸c hÖ m· dßng víi dßng kho¸ ngÉu nhiªn vµ víi
s¬ ®å mËt m· nÒn cho bëi c¸c hÖ thøc (2) cã thÓ ®−îc xem lµ “bÝ mËt
hoµn toµn” theo nghÜa Shannon, do ®ã rÊt ®−îc −a chuéng trong
øng dông thùc tÕ, chóng th−êng ®−îc gäi lµ c¸c hÖ ®Öm mét lÇn
(one-time pad), ®−îc m« t¶ vµ sö dông ®Çu tiªn bëi Gilbert Vernam
n¨m 1917. Tuy nhiªn, viÖc t¹o c¸c dßng bit ngÉu nhiªn mét c¸ch thñ
c«ng lµ kh«ng hiÖu qu¶, viÖc gi÷ bÝ mËt c¸c dßng kho¸ nh− vËy l¹i
80
cµng khã h¬n, nªn kh«ng thÓ sö dông mét c¸ch phæ biÕn ®−îc, do
®ã ngµy nay c¸c hÖ m· nh− vËy chØ cßn ®−îc sö dông trong nh÷ng
tr−êng hîp thËt ®Æc biÖt.
3.4. HÖ mËt m· chuÈn DES.
3.4.1. Giíi thiÖu hÖ m· chuÈn.
B−íc sang kû nguyªn m¸y tÝnh, viÖc sö dông m¸y tÝnh nhanh
chãng ®−îc phæ cËp trong mäi ho¹t ®éng cña con ng−êi, vµ tÊt
nhiªn viÖc dïng m¸y tÝnh trong truyÒn tin b¶o mËt ®· ®−îc hÕt søc
chó ý. C¸c hÖ mËt m· víi c¸c thuËt to¸n lËp mËt m· vµ gi¶i m· thùc
hiÖn b»ng m¸y tÝnh ®−îc ph¸t triÓn nhanh chãng, ®ång thêi c¸c lÜnh
vùc truyÒn tin cÇn sö dông mËt m· còng ®−îc më réng sang nhiÒu
®Þa h¹t kinh tÕ x· héi ngoµi c¸c ®Þa h¹t truyÒn thèng. Vµo ®Çu thËp
niªn 1970, tr−íc t×nh h×nh ph¸t triÓn ®ã ®· nÈy sinh nhu cÇu ph¶i
chuÈn ho¸ c¸c gi¶i ph¸p mËt m· ®−îc sö dông trong x· héi, ®Ó mét
mÆt, h−íng dÉn c¸c thµnh viªn trong x· héi thùc hiÖn quyÒn truyÒn
tin b¶o mËt hîp ph¸p cña m×nh, mÆt kh¸c, b¶o ®¶m sù qu¶n lý vµ
gi¸m s¸t cña nhµ n−¬c ®èi víi c¸c ho¹t ®éng b¶o mËt ®ã. Do ®ã, t¹i
Hoa kú, ngµy 15/5/1973, V¨n phßng quèc gia vÒ ChuÈn (NBS -
National Bureau of Standards) c«ng bè mét yªu cÇu c«ng khai x©y
dùng vµ ®Ò xuÊt mét thuËt to¸n mËt m· chuÈn, ®¸p øng c¸c ®ßi hái
chñ yÕu lµ:
- ThuËt to¸n ph¶i ®−îc ®Þnh nghÜa ®Çy ®ñ vµ dÔ hiÓu;
- ThuËt to¸n ph¶i cã ®é an toµn cao, ®é an toµn ®ã ph¶i kh«ng
phu thuéc vµo sù gi÷ bÝ mËt cña b¶n th©n thuËt to¸n, mµ chØ n»m ë
sù gi÷ bÝ mËt cña kho¸;
- ThuËt to¸n ph¶i ®−îc s½n sµng cung cÊp cho mäi ng−êi dïng;
- ThuËt to¸n ph¶i thÝch nghi ®−îc víi viÖc dïng cho c¸c øng
dông kh¸c nhau;
- ThuËt to¸n ph¶i cµi ®Æt ®−îc mét c¸ch tiÕt kiÖm trong c¸c
thiÕt bÞ ®iÖn tö;
- ThuËt to¸n ph¶i sö dông ®−îc cã hiÖu qu¶;
- ThuËt to¸n ph¶i cã kh¶ n¨ng ®−îc hîp thøc ho¸;
- ThuËt to¸n ph¶i xuÊt khÈu ®−îc.
Vµo thêi ®iÓm NBS ®−a ra yªu cÇu nãi trªn, ch−a cã mét c¬
quan nµo ®Ò xuÊt ®−îc mét gi¶i ph¸p ®¸p øng tÊt c¶ c¸c ®ßi hái ®ã.
Mét n¨m sau, ngµy 27/4/1974, yªu cÇu ®ã l¹i ®−îc nh¾c l¹i; vµ lÇn
nµy h·ng IBM chÊp nhËn dù tuyÓn víi s¶n phÈm sÏ ®−îc ®Ö tr×nh lµ
mét thuËt to¸n c¶i tiÕn tõ mét thuËt to¸n ®· ®−îc ph¸t triÓn tr−íc ®ã
lµ LUCIFER. KÕt qu¶ lµ, s¶n phÈm DES (Data Encryption Standard)
®−îc c«ng bè, lÇn ®Çu tiªn vµo ngµy 17/3/1975. Sau nhiÒu tranh
luËn, cuèi cïng DES ®−îc chÊp nhËn nh− mét chuÈn liªn bang vµo
ngµy 23/11/1976, vµ ®−îc c«ng bè ngµy 15/1/1977; ®Õn n¨m 1980
l¹i c«ng bè thªm «c¸c c¸ch dïng DES», cho phÐp ng−êi dïng cã thÓ
sö dông DES theo nhiÒu c¸ch kh¸c nhau. Tõ ®ã, DES ®−îc cµi ®Æt
s½n vµo c¸c thiÕt bÞ cøng thµnh c¸c m¸y m·, hoÆc ®−îc cµi ®Æt nh−
mét phÇn mÒm trong c¸c thiÕt bÞ tÝnh to¸n ®a dông, vµ ®· ®−îc sö
dông réng r·i trong c¸c lÜnh vùc qu¶n lý hµnh chÝnh, kinh tÕ, th−¬ng
m¹i, ng©n hµng, v.v... kh«ng nh÷ng ë Hoa kú mµ cßn ë nhiÒu quèc
gia kh¸c. Theo qui ®Þnh cña NBS, v¨n phßng quèc gia vÒ chuÈn cña
Hoa kú, cø kho¶ng 5 n¨m DES l¹i ph¶i ®−îc xem xÐt l¹i mét lÇn ®Ó
®−îc c¶i tiÕn vµ bæ sung. Sau khi c¸c hÖ mËt m· cã kho¸ c«ng khai
®−îc ph¸t triÓn vµ sö dông réng r·i, còng ®· cã nhiÒu ý kiÕn ®Ò nghÞ
thay ®æi chuÈn míi cho c¸c hÖ mËt m·, nh−ng trªn thùc tÕ, DES vÉn
cßn ®−îc sö dông nh− mét chuÈn cho ®Õn ngµy nay trong nhiÒu
lÜnh vùc ho¹t ®éng.
3.4.2. M« t¶ hÖ mËt m· chuÈn DES.
S¬ ®å kh¸i qu¸t. D−íi ®©y ta sÏ tr×nh bµy s¬ ®å cña thuËt
to¸n lËp mËt m· DES. HÖ mËt m· DES lµ mét hÖ mËt m· theo khèi,
mçi khèi b¶n râ lµ mét tõ 64 bit, tøc lµ mét phÇn tö thuéc 64
2
Z , vµ c¸c
khèi b¶n m· còng lµ c¸c tõ 64 bit, nh− vËy P = C = 64
2
Z . DES cã tËp
kho¸ K = 56
2
Z , tøc mçi kho¸ lµ mét tõ 56 bit. Víi mçi kho¸ K vµ b¶n
râ x, qu¸ tr×nh lËp mËt m· diÔn ra nh− sau: Tho¹t ®Çu, dïng mét
phÐp ho¸n vÞ ban ®Çu IP, tõ x 64 bit sÏ biÕn thµnh mét tõ míi IP (x ),
tõ nµy ®−îc chia thµnh hai nöa L0 vµ R0 , mçi nöa lµ mét tõ 32 bit.
Tõ ®©y, sÏ dïng 15 lÇn nh÷ng phÐp to¸n gièng nhau ®Ó liªn tiÕp
®−îc c¸c cÆp (L1,R1 ),...., (L15 ,R15 ), sau ®ã dïng phÐp ho¸n vÞ nghÞch
81
82
®¶o IP -1
cho tõ ®¶o ng−îc R15L15 ta sÏ ®−îc b¶n m· y t−¬ng øng. S¬
®å kh¸i qu¸t cña phÐp lËp mËt m· ®−îc cho bëi h×nh vÏ sau ®©y:
K1
K2
K16
L0 R0
f
L1 R1
f
L15 R15
f
R16 L16
+
+
IP -1
ThuËt to¸n
G t¹o
c¸c kho¸
K1,....., K16
tõ
kho¸ K
I
+
P
B¶n râ x
Kho¸ K
B¶n m· y
S¬ ®å kh¸i qu¸t cña thuËt to¸n lËp mËt m· DES
§Ó hoµn chØnh s¬ ®å thuËt to¸n lËp mËt m·, ta cßn ph¶i tr×nh bµy
c¸c thuËt to¸n IP ( vµ do ®ã, c¶ IP -1
), thuËt to¸n f , vµ thuËt to¸n G
t¹o ra c¸c kho¸ K1,...,K16 .
IP lµ mét phÐp ho¸n vÞ vÞ trÝ cña c¸c ký tù trong mçi tõ 64 bit,
tõ vÞ trÝ thø 1 ®Õn vÞ trÝ thø 64. B¶ng d−íi ®©y cho ta phÐp ho¸n vÞ
IP, víi c¸ch hiÓu lµ bit thø nhÊt cña IP (x ) lµ bit thø 58 cña tõ x (cã
82
64 bit), bit thø hai cña IP (x) lµ bit thø 50 cña x, v.v... B¶ng cña phÐp
ho¸n vÞ IP -1
còng ®−îc hiÓu t−¬ng tù.
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
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
S¬ ®å hµm f : Hµm f lÊy ®Çu vµo lµ hai tõ : R cã 32 bit vµ K cã 48 bit,
vµ cã kÕt qu¶ ë ®Çu ra lµ tõ f (R,K ) cã 32 bit, ®−îc x¸c ®Þnh bëi s¬
®å sau ®©y:
R (32 bit)
E (R) 48 bit
E
+
K (48 bit)
Mçi Bi lµ mét tõ 6 bit
B1 B2 B3 B4 B5 B6 B7 B8
Mçi Ci lµ mét tõ
4 bit
S
1
S
2
S
3
S
4
S
5
S
6
S
8
S
8
C1 C2 C3 C4 C5 C6 C7 C8
P
83
f (R,K ) 32 bit
Trong s¬ ®å ë trªn cña hµm f , E lµ mét phÐp ho¸n vÞ “më réng”
theo nghÜa lµ nã biÕn mçi tõ R 32 bit thµnh tõ E (R ) b»ng c¸ch ho¸n
vÞ 32 bit cña R nh−ng cã mét sè cÆp bit ®−îc lÆp l¹i ®Ó E (R ) thµnh
mét tõ cã 48 bit, cô thÓ phÐp ho¸n vÞ “më réng” ®ã ®−îc cho bëi
b¶ng sau ®©y :
PhÐp ho¸n vÞ “më réng” E
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
Theo ®Þnh nghÜa ®ã, mçi tõ R = a1a2a3......a32 sÌ biÕn thµnh tõ
E (R ) = a32 a1a2a3a4a5a4a5a6a7a8a9a8a9 .......a32a1 .
Sau khi thùc hiÖn E, E (R ) sÏ ®−îc céng (tõng bit theo mod2) víi K ,
®−îc mét tõ 48 bit, chia thµnh 8 ®o¹n B1, ..., B8 . Mçi hép S i (i =
1,...,8) lµ mét phÐp thay thÕ, biÕn mçi tõ Bj 6 bit thµnh mét tõ Cj 4
bit; c¸c hép Si ®−îc cho bëi c¸c b¶ng d−íi ®©y víi c¸ch hiÓu nh−
sau: mçi tõ Bj = b1b2b3b4b5b6 øng víi mét vÞ trÝ (r,s) ë hµng thø r vµ
cét thø s trong b¶ng, c¸c hµng ®−îc ®¸nh sè tõ thø 0 ®Õn thø 3 øng
víi biÓu diÔn nhÞ ph©n b1b6 vµ c¸c cét ®−îc ®¸nh sè tõ thø 0 ®Õn
thø 15 øng víi biÓu diÔn nhÞ ph©n b2b3b4b5 . Gi¸ trÞ cña Si (Bj )= Cj =
c1c2c3c4 lµ mét tõ 4 bit, biÓu diÔn nhÞ ph©n cña sè t¹i hµng r cét s
trong b¶ng. ThÝ dô ta cã S1(101110) = 0101, S2(011000) = 1110, v.v...
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
84
S4
7 13 14 3 0 6 9 10 1 2 8 5 11 12 4 15
13 8 11 5 6 15 0 3 4 7 2 12 1 10 14 9
10 6 9 0 12 11 7 13 15 1 3 14 5 2 8 4
3 15 0 6 10 1 13 8 9 4 5 11 12 7 2 14
S5
2 12 4 1 7 10 11 6 8 5 3 15 13 0 14 9
14 11 2 12 4 7 13 1 5 0 15 10 3 9 8 6
4 2 1 11 10 13 7 8 15 9 12 5 6 3 0 14
11 8 12 7 1 14 2 13 6 15 0 9 10 4 5 3
S6
12 1 10 15 9 2 6 8 0 13 3 4 14 7 5 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
PhÐp ho¸n vÞ P trong s¬ ®å cña hµm f ®−îc cho bëi b¶ng ë trang
sau ®©y. Nh− vËy, hµm f ®· ®−îc x¸c ®Þnh hoµn toµn. Chó ý r»ng
c¸c hép S1,..., S8 lµ phÇn quan träng nhÊt trong viÖc b¶o ®¶m tÝnh bÝ
mËt cña hÖ m· DES.
P
16 7 20 21
29 12 28 17
1 15 23 26
5 18 31 10
2 8 24 14
32 27 3 9
19 13 30 6
22 11 4 25
85
S¬ ®å thuËt to¸n G t¹o c¸c tõ kho¸ K1,...,K16 :
S¬ ®å thuËt to¸n G
Kho¸ K
PC-1
C0 D0
LS1 LS1
............................................ ............... ..............
K1
PC2
C1 D1
K2
PC2
C2 D2
K16
PC2
LS16
C16 D16
LS2
LS16
LS2
ThuËt to¸n G t¹o ra c¸c tõ kho¸ K1,...,K16 tõ kho¸ mËt m· K ®−îc
thùc hiÖn theo s¬ ®å thuËt to¸n m« t¶ ë trªn. Kho¸ mËt m· K lµ mét
tõ 56 bit, ta chia thµnh 8 ®o¹n, mçi ®o¹n 7 bit, ta thªm cho mçi ®o¹n
7 bit ®ã mét bit thö tÝnh ch½n lÎ vµo vÞ trÝ cuèi ®Ó ®−îc mét tõ 64
bit, ta vÉn ký hiÖu lµ K , tõ míi K nµy lµ tõ xuÊt ph¸t cho qu¸ tr×nh
tÝnh to¸n cña thuËt to¸n G (nh− sÏ thÊy vÒ sau, c¸c bit thö tÝnh ch½n
lÎ mµ ta thªm vµo chØ ®−îc dïng ®Ó ph¸t hiÖn sai trong tõng ®o¹n
bit cña kho¸ chø thùc tÕ kh«ng tham gia vµo chÝnh qu¸ tr×nh tÝnh
to¸n cña G ).
86
Tr−íc tiªn, thuËt to¸n PC-1 biÕn K thµnh mét tõ 56 bit mµ ta
chia thµnh hai nöa C0D0 , mçi nöa cã 28 bit. PhÐp ho¸n vÞ PC-1 ®−îc
x¸c ®Þnh bëi b¶ng sau ®©y (chó ý lµ trong b¶ng kh«ng cã c¸c sè
8,16,24,32,40,48,56,64 lµ vÞ trÝ cña nh÷ng bit ®−îc thªm vµo khi h×nh
thµnh tõ míi K ). Nhí r»ng theo qui −íc cña phÐp ho¸n vÞ, bit thø
nhÊt cña PC-1(x ) lµ bit thø 57 cña x , bit thø hai cña
PC-1(x ) lµ bit thø 49 cña x , v.v...
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
Víi mçi i = 1,2,...16, LSi lµ phÐp chuyÓn dÞch vßng sang tr¸i, chuyÓn
dÞch mét vÞ trÝ nÕu i = 1,2,9,16, vµ chuyÓn dÞch hai vÞ trÝ víi nh÷ng
gi¸ trÞ i cßn l¹i.
Cuèi cïng, phÐp ho¸n vÞ PC-2 biÕn mçi tõ 56 bit CiDi (i =1,2,...16)
thµnh tõ 48 bit Ki theo b¶ng d−íi ®©y:
PC-2
14 17 11 24 1 5
3 28 15 6 21 10
23 19 12 4 26 8
16 7 27 20 13 2
41 52 31 37 47 55
30 40 51 45 33 48
44 49 39 56 34 53
46 42 50 36 29 32
Nh− vËy, ta ®· m« t¶ ®Çy ®ñ qu¸ tr×nh tÝnh to¸n cña thuËt to¸n G
®Ó tõ khoa m· ban ®Çu K thu ®−îc c¸c tõ kho¸ K1 ,..., K16 cung cÊp
cho thuËt to¸n f, vµ tõ ®ã cho toµn bé thuËt to¸n lËp mËt m· DES.
Ta chó ý r»ng mçi Ki cã 48 bit ®Òu do ho¸n vÞ 56 bit (cã bá bít 8 bit)
cña K mµ thµnh, do ®ã cã thÓ cho trùc tiÕp b»ng c¸ch cho c¸c b¶ng
m« t¶ c¸c phÐp ho¸n vÞ ®ã. B¹n ®äc cã thÓ t×m ®äc 16 b¶ng øng víi
16 Ki ®ã trong s¸ch cña D.R. Stinson (cã trong phÇn S¸ch tham
kh¶o).
Víi viÖc tr×nh bµy s¬ ®å kh¸i qu¸t cïng víi c¸c b¶ng, c¸c s¬
®å cña c¸c thuËt to¸n phô, ta ®· hoµn thµnh viÖc giíi thiÖu thuËt
87
to¸n lËp mËt m· E cña hÖ mËt m· DES , cho ta y = E (K,x ) víi
mèi kho¸ K vµ b¶n râ x.
ThuËt to¸n gi¶i m· D, cho ta x =D (K ,y ), ®−îc thùc hiÖn
b»ng cïng mét qu¸ tr×nh tÝnh to¸n nh− qu¸ tr×nh lËp m·, chØ kh¸c lµ
thø tù dïng c¸c Ki ®−îc ®¶o ng−îc l¹i theo thø tù K16,K15,...,K1.
Cã thÓ thùc hiÖn thö c¸c thuËt to¸n lËp m· vµ gi¶i m· kÓ trªn
víi thÝ dô sau ®©y: Cho K vµ x lµ
K = 12695BC9B7B7F8
x = 0123456789ABCDEF,
ë ®©y c¸c sè ®−îc viÕt theo c¬ sè 16 (hexadecimal), mçi ký tù thay
cho 4 bit. B¶n m· y t−¬ng øng sÏ lµ
y = 85E813540F0AB405.
3.4.3. C¸c c¸ch dïng DES.
N¨m 1981, NBS c«ng bè c¸c chuÈn xö lý th«ng tin liªn bang
cã liªn quan ®Õn DES, trong ®ã ®· hîp thøc ho¸ bèn c¸ch dïng DES
trong thùc tÕ lµ c¸c c¸ch: ECB (electronic codebook mode), CFB
(cipher feedback mode), CBC ( cipher block chaining mode) vµ OFB
(output feedback mode).
ECB lµ c¸ch sö dông th«ng th−êng vµ ®¬n gi¶n cña DES. Víi
c¸ch sö dông ®ã, ta chia b¶n râ (lµ mét d·y bit) thµnh tõng khèi 64
bit x = x1x2....xn , vµ dïng cïng mét kho¸ K ®Ó m· c¸c khèi ®ã råi
ghÐp l¹i ®Ó ®−îc b¶n m· y = y1y2... yn , trong ®ã yi = eK (xi ).
Víi c¸ch dïng CFB, ®Ó ®−îc khèi m· yi ta dïng DES cho
kh«ng ph¶i xi mµ lµ cho xi⊕yi -1 ,tøc lµ cã yi = eK (xi⊕yi -1) víi mäi
i > 1.
Trong hai c¸ch CBC vµ OFB, ta dïng DES ®Ó t¹o ra mét dßng
tõ kho¸ z1...zi....., råi sau ®ã lËp m· yi = xi ⊕ zi (i ≥ 1). Dßng kho¸
z1...zi..... trong c¸ch CBC ®−îc x¸c ®Þnh bëi
z0 = K* (lµ mét tõ 64 bit ®−îc chän tõ kho¸ K),
zi = eK (zi -1);
cßn trong c¸ch OFB ®−îc x¸c ®Þnh bëi
y0 = K*
zi = eK (yi -1)
yi = xi ⊕ zi (i ≥1).
Trong thùc tÕ, c¸c c¸ch ECB vµ CBC ®−îc nhiÒu ng©n hµng dïng
lµm chuÈn mËt m· cña m×nh, cßn c¸c c¸ch CFB vµ ßB th−êng ®−îc
dïng c¶ víi c¸c môc ®Ých x¸c nhËn.
3.4.4. VÒ tÝnh an toµn vµ viÖc th¸m m· ®èi víi DES.
88
1.VÒ tÝnh an toµn b¶o mËt cña DES. Sau khi DES ®−îc c«ng
bè nh− mét chuÈn chÝnh thøc cho truyÒn tin b¶o mËt cña quèc gia,
nhiÒu vÊn ®Ò vÒ tÝnh an toµn vµ kh¶ n¨ng b¶o mËt cña DES ®−îc
®Æt ra vµ nhiÒu biÖn ph¸p th¸m m· còng ®−îc nghiªn cøu, trong
suèt h¬n hai m−¬i n¨m qua vµ cho ®Õn nay.
Ta chó ý r»ng trong cÊu tróc cña thuËt to¸n DES, ë mçi vßng
lÆp ®Òu cã c¸c phÐp chuyÓn dÞch vµ thay thÕ xen kÏ liªn tiÕp nhau,
cã t¸c dông t¨ng thªm ®é b¶o mËt cña mËt m·. ThuËt to¸n DES nãi
chung ®¸p øng c¸c yªu cÇu mµ NBS ®Ò ra tõ ®Çu cho mét chuÈn
mËt m·, vµ do ®ã yÕu tè b¶o mËt chñ yÕu tËp trung vµo viÖc gi÷ bÝ
mËt cña kho¸, hay nãi c¸ch kh¸c, th¸m m· chñ yÕu ph¶i lµ ph¸t hiÖn
kho¸ ®−îc sö dông. Trong c¸c kh©u cña s¬ ®ß DES th× c¸c yÕu tè
phi tuyÕn duy nhÊt n»m ë c¸c hép S1,..., S8. Ng−êi ta kh«ng biÕt
ng−êi thiÕt kÕ c¸c hép ®ã ®· chä chóng theo nh÷ng tiªu chuÈn nµo,
vµ Côc an ninh quèc gia NSA cã cµi vµo ®ã nh÷ng “cöa sËp” nµo
kh«ng; nh−ng sau nhiÒu cè g¾ng th¸m m· kh«ng thµnh c«ng, ng−êi
ta ®· c«ng bè mét sè c¸c tiªu chuÈn chon c¸c hép S1,..., S8 nh− sau:
1. Mçi hµng cña mét hép Si ph¶i lµ mét ho¸n vÞ cña 0,1,...,15;
2. Kh«ng mét hép Si nµo lµ mét hµm tuyÕn tÝnh hay apphin
®èi víi c¸c ®Çu vµo cña nã;
3. Víi mçi hép Si , viÖc thay ®æi mét bit ë ®Çu vµo g©y ra sù
thay ®æi Ýt nhÊt hai bit ë ®Çu ra cña nã;
4. NÕu hai tõ vµo cña mét hép Si gièng nhau ë hai bit ®Çu
vµ hai bit cuèi, th× hai tõ ra ph¶i kh¸c nhau ë hai bit;
5. NÕu hai tõ vµo cña mét hép Si kh¸c nhau ë hai bit ®Çu vµ
gièng nhau ë hai bit cuèi, th× hai tõ ra ph¶i kh¸c nhau;
6. Víi mçi hép Si , nÕu ta cè ®Þnh gi¸ trÞ mét bit vµo vµ xÐt
gi¸ trÞ cña bit ra ë mét vÞ trÝ nµo ®ã, th× sè c¸c tõ vµo t¹o ra gi¸ trÞ 0
vµ sè c¸c tõ vµo t¹o ra gi¸ trÞ 1 ë cïngvÞ trÝ ®ã ph¶i xÊp xØ b»ng
nhau.
Nãi chung, ®é b¶o mËt cña DES ®· ®−îc thö th¸ch qua h¬n
hai m−¬i n¨m sö dông vµ ®−îc chøng tá lµ tin cËy. C¸c ph−¬ng
ph¸p th¸m m·, tuy ®· ®−îc t×m kiÕm kh¸ nhiÒu, nh−ng gÇn nh−
kh«ng tr¸nh ®−îc ®é phøc t¹p cña c¸ch tÇm th−êng lµ duyÖt toµn
bé, mµ theo c¸ch nµy th× dï lµ th¸m m· theo kiÓu “biÕt c¶ b¶n râ” ta
còng ph¶i duyÖt qua 256
kho¸ cã thÓ cã, ®iÒu ®ã ®ßi hái mét l−îng
tÝnh to¸n khæng lå khã mµ kh¾c phôc næi !
VÒ viÖc th¸m m· ®èi víi DES.
HÖ m· chuÈn DES cã thÓ xem lµ hÖ m· ®Çu tiªn ®−îc dïng
phæ biÕn mét c¸ch réng r·i kh«ng chØ trong mét quèc gia mµ c¶ trªn
ph¹m vi toµn thÕ giíi, toµn bé cÊu tróc thuËt to¸n ®−îc c«ng bè
c«ng khai, c¶ phÐp lËp m· vµ gi¶i m·, thËm chÝ c¸c s¶n phÈm phÇn
cøng còng nh− phÇn mÒm cña nã ®−îc th−¬ng m¹i ho¸; do ®ã bÝ
mËt cña th«ng tin ®−îc truyÒn ®i chØ cßn n»m ë ch×a kho¸ ®−îc
89
chon, ®ã lµ mét tõ 56 bit. ViÖc th¸m m· ®èi víi DES d· hÊp dÉn
nhiÒu nhµ to¸n häc vµ chuyªn gia mËt m· nghiªn cøu, ®Ò xuÊt
nhiÒu ph−¬ng ph¸p kh¸c nhau. Ngoµi ph−¬ng ph¸p “duyÖt toµn
bé” nh− nãi trªn, ng−êi ta ®· ®Ò xuÊt mét sè ph−¬ng ph¸p kh¸c,
nh−:
- ph−¬ng ph¸p ph©n tÝch ®é chªnh lÖch (differential analysis)
do Biham vµ Shamir ®Ò xuÊt n¨m 1990,
- ph−¬ng ph¸p ph©n tÝch liªn quan ®Õn kho¸, do Biham ®Ò
xuÊt vµo khaáng 1992-1994,
- ph−¬ng ph¸p ph©n tÝch tuyÕn tÝnh, do Matsui ®−a ra n¨m
1993-1994,
- ph−¬ng ph¸p ph©n tÝch chªnh lÖch-tuyÕn tÝnh, do Langfort
vµ Hellman ®−a ra n¨m 1994,
- v.v...
C¸c ph−¬ng ph¸p nµy ®Òu chøa ®ùng nhiÒu ý t−ëng s©u s¾c
vµ tinh tÕ, nh−ng vÉn ®ßi hái nh÷ng khèi l−îng tÝnh to¸n rÊt lín,
nªn trong thùc tÕ vÉn chØ dõng l¹i ë nh÷ng minh ho¹ t−¬ng ®èi ®¬n
gi¶n chø ch−a ®−îc sö dông thùc sù.
90
CH¦¥NG IV
C¸c hÖ mËt m· kho¸ c«ng khai
4.1. Giíi thiÖu më ®Çu.
4.1.1. Sù ra ®êi cña mËt m· kho¸ c«ng khai.
Trong ch−¬ng I ta ®· giíi thiÖu qua ®Þnh nghÜa cña c¸c kh¸i
niÖm hÖ mËt m· kho¸ ®èi xøng vµ hÖ mËt m· kho¸ c«ng khai. Sù ra
®êi cña kh¸i niÖm hÖ mËt m· kho¸ c«ng khai lµ mét tiÕn bé cã tÝnh
chÊt b−íc ngoÆt trong lÞch sö mËt m· nãi chung, g¾n liÒn víi sù
ph¸t triÓn cña khoa häc tÝnh to¸n hiÖn ®¹i. Ng−êi ta cã thÓ xem thêi
®iÓm khëi ®Çu cña b−íc ngoÆt ®ã lµ sù xuÊt hiÖn ý t−ëng cña W.
Diffie vµ M.E. Hellman ®−îc tr×nh bµy vµo th¸ng s¸u n¨m 1976 t¹i
Héi nghÞ quèc gia hµng n¨m cña AFIPS (Hoa kú) trong bµi
Multiuser cryptographic techniques. Trong bµi ®ã, cïng víi ý
t−ëng chung, hai t¸c gi¶ còng ®· ®−a ra nh÷ng thÝ dô cô thÓ ®Ó
thùc hiÖn ý t−ëng ®ã, vµ mÆc dï c¸c thÝ dô ch−a cã ý nghÜa thuyÕt
phôc ngay ®èi víi t¸c gi¶, th× ý t−ëng vÒ c¸c hÖ mËt m· kho¸ c«ng
khai còng ®· rÊt râ rµng vµ cã søc hÊp dÉn ®èi víi nhiÒu ng−êi. Vµ
ngay sau ®ã, c«ng viÖc t×m kiÕm nh÷ng thÓ hiÖn cô thÓ cã kh¶ n¨ng
øng dông trong thùc tÕ ®· b¾t ®Çu thu hót sù quan t©m cña nhiÒu
chuyªn gia. Mét n¨m sau, n¨m 1977, R.L. Rivest, A. Shamir vµ L.M.
Adleman ®Ò xuÊt mét hÖ cô thÓ vÒ mËt m· kho¸ c«ng khai mµ ®é
an toµn cña hÖ dùa vµo bµi to¸n khã “ph©n tÝch sè nguyªn thµnh
thõa sè nguyªn tè”, hÖ nµy vÒ sau trë thµnh mét hÖ næi tiÕng vµ
mang tªn lµ hÖ RSA, ®−îc sö dông réng r·i trong thùc tiÔn b¶o mËt
vµ an toµn th«ng tin. Còng vµo thêi gian ®ã, M.O. Rabin còng ®Ò
xuÊt mét hÖ mËt m· kho¸ c«ng khai dùa vµo cïng bµi to¸n sè häc
khã nãi trªn. Liªn tiÕp sau ®ã, nhiÒu hÖ mËt m· khãa c«ng khai
®−îc ®Ò xuÊt, mµ kh¸ næi tiÕng vµ ®−îc quan t©m nhiÒu lµ c¸c hÖ:
hÖ McEliece ®−îc ®−a ra n¨m 1978 dùa trªn ®é NP-khã cña bµi
to¸n gi¶i m· ®èi víi c¸c hÖ m· cyclic tuyÕn tÝnh, hÖ Merkle-
Hellman dùa trªn tÝnh NP- ®Çy ®ñ cña bµi to¸n xÕp ba l«(knapsack
problem), hÖ mËt m· næi tiÕng ElGamal dùa trªn ®é khã cña bµi
to¸n l«garit rêi r¹c, hÖ nµy vÒ sau ®−îc më réng ®Ó ph¸t triÓn nhiÒu
92
hÖ t−¬ng tù dùa trªn ®é khã cña c¸c bµi to¸n t−¬ng tù l«garit rêi r¹c
trªn c¸c cÊu tróc nhãm cyclic h÷u h¹n, nhãm c¸c ®iÓm nguyªn trªn
®−êng cong eliptic, v.v... §Ó t¨ng ®é b¶o mËt, hÖ mËt m· ElGamal
cßn dïng víi t− c¸ch ®Çu vµo cho thuËt to¸n lËp mËt m· cña m×nh,
ngoµi kho¸ c«ng khai vµ b¶n râ, mét yÕu tè ngÉu nhiªn ®−îc chän
tuú ý, ®iÒu ®ã lµm cho hÖ mËt m· trë thµnh mét hÖ mËt m· x¸c suÊt
kho¸ c«ng khai. Mét sè hÖ mËt m· x¸c suÊt kho¸ c«ng khai còng
®−îc ph¸t triÓn sau ®ã bëi Goldwasser-Micali vµ Blum-
Goldwasser. TÊt c¶ c¸c hÖ mËt m· kho¸ c«ng khai kÓ trªn sÏ ®−îc
tr×nh bµy trong ch−¬ng nµy cïng víi mét sè tÝnh chÊt liªn quan cña
chóng.
4.1.2. Mét sè bµi to¸n c¬ b¶n.
Sau ®©y ta sÏ nh¾c l¹i mét sè bµi to¸n sè häc ®−îc sö dông
®Õn khi x©y dùng c¸c hÖ mËt m· kho¸ c«ng khai nh− nãi ë trªn.
C¸c bµi to¸n nµy phÇn lín ®· ®−îc tr×nh bµy trong ch−¬ng II, mét
sè ®−îc ph¸t triÓn thªm cho c¸c øng dông trùc tiÕp khi x©y dùng
c¸c hÖ m· cô thÓ, ta liÖt kª d−íi ®©y mét lÇn ®Ó thuËn tiÖn cho c¸c
chØ dÉn vÒ sau.
Bµi to¸n ph©n tÝch sè nguyªn (thµnh thõa sè nguyªn tè):
Cho sè nguyªn d−¬ng n , t×m tÊt c¶ c¸c −íc sè nguyªn tè cña
nã, hay lµ t×m d¹ng ph©n tÝch chÝnh t¾c cña n = 1 2
1 2
. ... k
k
p p pα
α α
, trong
®ã pi lµ c¸c sè nguyªn tè tõng cÆp kh¸c nhau vµ c¸c αi ≥ 1.
Bµi to¸n nµy cã liªn hÖ mËt thiÕt víi c¸c bµi to¸n thö tÝnh
nguyªn tè hay thö tÝnh hîp sè cña mét sè nguyªn, nh−ng víi
nh÷ng g× mµ ta biÕt ®Õn nay, nã d−êng nh− khã h¬n nhiÒu so víi
hai bµi to¸n thö tÝnh nguyªn tè vµ tÝnh hîp sè.
Trong lý thuyÕt mËt m·, bµi to¸n nµy th−êng ®−îc sö dông
víi c¸c d÷ liÖu n lµ sè nguyªn Blum, tøc c¸c sè nguyªn d−¬ng cã
d¹ng tÝch cña hai sè nguyªn tè lín nµo ®ã.
Bµi to¸n RSA (Rivest-Shamir-Adleman) :
Cho sè nguyªn d−¬ng n lµ tÝch cña hai sè nguyªn tè lÎ kh¸c
nhau, mét sè nguyªn d−¬ng e sao cho gcd(e,φ (n)) =1, vµ mét sè
nguyªn c ; t×m mét sè nguyªn m sao cho .
(mod )
e
m c n
≡
§iÒu kiÖn gcd(e,φ (n)) =1 b¶o ®¶m cho viÖc víi mçi sè
nguyªn c ∈ {0,1,...,n -1} cã ®óng mét sè m ∈ {0,1,...,n -1} sao cho
.
(mod )
e
m c n
≡
DÔ thÊy r»ng nÕu biÕt hai thõa sè nguyªn tè cña n, tøc lµ biÕt
n =p.q th× sÏ biÕt φ (n) = (p -1)(q -1), vµ tõ ®ã, do gcd(e,φ (n)) =1 sÏ
93
t×m ®−îc d =e -1
modφ (n), vµ do ®ã sÏ t×m ®−îc m =c d
modn. Nh−
vËy, bµi to¸n RSA cã thÓ qui dÉn trong thêi gian ®a thøc vÒ bµi to¸n
ph©n tÝch sè nguyªn. Tuy r»ng cho ®Õn nay ch−a cã mét chøng
minh nµo cho viÖc qui dÉn ng−îc l¹i nh−ng nhiÒu ng−êi vÉn tin
r»ng hai bµi to¸n ®ã lµ t−¬ng ®−¬ng víi nhau vÒ ®é phøc t¹p tÝnh
to¸n.
Bµi to¸n thÆng d− bËc hai :
Cho mét sè nguyªn lÎ n lµ hîp sè, vµ mét sè nguyªn a ∈Jn ,
tËp tÊt c¶ c¸c sè a cã ký hiÖu Jacobi
a
n
⎛
⎜
⎜
⎜
=1. H·y quyÕt ®Þnh xem a cã
lµ thÆng d− bËc hai theo modn hay kh«ng?
⎞
⎟
⎟
⎟
⎝ ⎠
Trong lý thuyÕt mËt m·, bµi to¸n nµy còng th−êng ®−îc xÐt
víi tr−êng hîp n lµ sè nguyªn Blum, tøc n lµ tÝch cña hai sè nguyªn
tè p vµ q , n =p.q. Ta chó ý r»ng trong tr−êng hîp nµy, nÕu a ∈Jn ,
th× a lµ thÆng d− bËc hai theo modn khi vµ chØ khi
a
p
⎛ ⎞
⎟
⎜ ⎟
⎜ ⎟
⎜ ⎟
⎜
⎝ ⎠
=1, ®iÒu kiÖn
nµy cã thÓ thö ®−îc dÔ dµng v× nã t−¬ng ®−¬ng víi ®iÒu kiÖn a (p -
1)/2
≡ 1 (modp). Nh− vËy, trong tr−êng hîp nµy, bµi to¸n thÆng d−
bËc hai cã thÓ qui dÉn trong thêi gian ®a thøc vÒ bµi to¸n ph©n tÝch
sè nguyªn. MÆt kh¸c, nÕu kh«ng biÕt c¸ch ph©n tÝch n thµnh thõa
sè nguyªn tè th× cho ®Õn nay, kh«ng cã c¸ch nµo gi¶i ®−îc bµi to¸n
thÆng d− bËc hai trong thêi gian ®a thøc. §iÒu ®ã cñng cè thªm
niÒm tin r»ng bµi to¸n thÆng d− bËc hai vµ bµi to¸n ph©n tÝch sè
nguyªn lµ cã ®é khã t−¬ng ®−¬ng nhau.
Bµi to¸n t×m c¨n bËc hai modn :
Cho mét sè nguyªn lÎ n lµ hîp sè Blum, vµ mét sè a ∈Qn ,
tøc a lµ mét thÆng d− bËc hai theo modn . H·y t×m mét c¨n bËc hai
cña a theo modn, tøc t×m x sao cho x2
≡ a (modn).
NÕu biÕt ph©n tÝch n thµnh thõa sè nguyªn tè, n =p.q , th×
b»ng c¸ch gi¶i c¸c ph−¬ng tr×nh x 2
≡ a theo c¸c modp vµ modq, råi
sau ®ã kÕt hîp c¸c nghiÖm cña chóng l¹i theo ®Þnh lý sè d− Trung
quèc ta sÏ ®−îc nghiÖm theo modn , tøc lµ c¨n bËc hai cña a theo
modn cÇn t×m. V× mçi ph−¬ng tr×nh x 2
≡ a theo modp vµ modq cã
hai nghiÖm (t−¬ng øng theo modp vµ modq ), nªn kÕt hîp l¹i ta
®−îc bèn nghiÖm, tøc bèn c¨n bËc hai cña a theo modn. Ng−êi ta
®· t×m ®−îc mét sè thuËt to¸n t−¬ng ®èi ®¬n gi¶n (trong thêi gian
®a thøc) gi¶i ph−¬ng tr×nh x 2
≡ a (modp) víi p lµ sè nguyªn tè.
94
Nh− vËy, bµi to¸n t×m c¨n bËc hai modn cã thÓ qui dÉn trong thêi
gian ®a thøc vÒ bµi to¸n ph©n tÝch sè nguyªn. Ng−îc l¹i, nÕu cã
thuËt to¸n  gi¶i bµi to¸n t×m c¨n bËc hai modn th× còng cã thÓ x©y
dùng mét thuËt to¸n gi¶i bµi to¸n ph©n tÝch sè nguyªn nh− sau:
Chän ngÉu nhiªn mét sè x víi gcd(x,n) =1, vµ tÝnh a =x2
modn.
Dïng thuËt to¸n  cho a ®Ó t×m mét c¨n bËc hai modn cña a. Gäi
c¨n bËc hai t×m ®−îc ®ã lµ y. NÕu y ≡ ±x (modn), th× phÐp thö coi
nh− thÊt b¹i, vµ ta ph¶i chän tiÕp mét sè x kh¸c. cßn nÕu y ≢ ±x
(modn), th× gcd(x-y, n) ch¾c ch¾n lµ mét −íc sè kh«ng tÇm th−êng
cña n, cô thÓ lµ p hay lµ q. V× n cã 4 c¨n bËc hai modn nªn x¸c suÊt
cña thµnh c«ng ë mçi lÇn thö lµ 1/2, vµ do ®ã sè trung b×nh (kú
väng to¸n häc) c¸c phÐp thö ®Ó thu ®−îc mét thõa sè p hayq cña n
lµ 2, tõ ®ã ta thu ®−îc mét thuËt to¸n gi¶i bµi to¸n ph©n tÝch sè
nguyªn (Blum) víi thêi gian trung b×nh ®a thøc. Tãm l¹i, theo mét
nghÜa kh«ng chÆt chÏ l¾m, ta cã thÓ xem hai bµi to¸n ph©n tÝch sè
nguyªn vµ t×m c¨n bËc hai modn lµ khã t−¬ng ®−¬ng nhau.
Bµi to¸n l«garit rêi r¹c :
Cho sè nguyªn tè p, mét phÇn tö nguyªn thuû α theo modp
(hay α lµ phÇn tö nguyªn thuû cña p
Z∗
), vµ mét phÇn tö β ∈ p
Z∗
.T×m
sè nguyªn x (0≤ x ≤ p - 2) sao cho αx
≡ β (modp).
Trong môc 2.4.3 ta ®· giíi thiÖu qua bµi to¸n nµy, vµ biÕt
r»ng trong tr−êng hîp chung, cho ®Õn nay ch−a cã mét thuËt to¸n
nµo gi¶i bµi to¸n nµy trong thêi gian ®a thøc.
Bµi to¸n nµy còng ®−îc suy réng cho c¸c nhãm cyclic h÷u
h¹n nh− sau:
Bµi to¸n l«garit rêi r¹c suy réng :
Cho mét nhãm cyclic h÷u h¹n G cÊp n, mét phÇn tö sinh
(nguyªn thuû) α cña G, vµ mét phÇn tö β ∈G. T×m sè nguyªn x (0≤
x ≤ n - 1) sao cho αx
= β.
C¸c nhãm ®−îc quan t©m nhiÒu nhÊt trong lý thuyÕt mËt m·
lµ: nhãm nh©n cña tr−êng h÷u h¹n GF (p) - ®¼ng cÊu víi nhãm p
Z∗
cña tr−êng Zp ,nhãm nh©n 2m
∗
F cña tr−êng h÷u h¹n GF (2m
), nhãm
nh©n { }
:0 1,gcd( , ) 1
n
Z a a n a n
∗
= ≤ ≤ − = cña tr−êng Zn víi n lµ hîp sè,
nhãm gåm c¸c ®iÓm trªn mét ®−êng cong elliptic x¸c ®Þnh trªn mét
tr−êng h÷u h¹n, v.v...
Bµi to¸n Diffie-Hellman :
Cho sè nguyªn tè p, mét phÇn tö nguyªn thuû α theo modp
(tøc phÇn tö sinh cña p
Z∗
), vµ c¸c phÇn tö mod
a
p
α vµ mod
b
p
α .
95
H·y t×m gi¸ trÞ mod
ab
p
α .
Cã thÓ chøng minh ®−îc r»ng bµi to¸n Diffie-Hellman qui
dÉn ®−îc vÒ bµi to¸n l«garit rêi r¹c trong thêi gian ®a thøc. Thùc
vËy, gi¶ sö cã thuËt to¸n  gi¶i bµi to¸n l«garit rêi r¹c. Khi ®ã, cho
mét bé d÷ liÖu vµo cña bµi to¸n Diffie-Hellman gåm p, α , mod
a
p
α
vµ mod
b
p
α ; tr−íc hÕt dïng thuËt to¸n  cho (p, α , mod
a
p
α ) ta
t×m ®−îc , vµ sau ®ã tÝnh ®−îc
a mod ( ) mod .
ab b a
p p
α α
= Ng−êi ta
còng chøng minh ®−îc hai bµi to¸n l«garit rêi r¹c vµ Diffie-
Hellman lµ t−¬ng ®−¬ng vÒ mÆt tÝnh to¸n trong mét sè tr−êng hîp,
vÝ dô p -1 lµ B-mÞn víi B = O ((lnp)c
),c lµ h»ng sè.
T−¬ng tù nh− víi bµi to¸n l«garit rêi r¹c, ta còng cã thÓ ®Þnh
nghÜa c¸c bµi to¸n Diffie-Hellman suy réng cho c¸c nhãm cyclic
h÷u h¹n kh¸c.
Bµi to¸n tæng tËp con (hay bµi to¸n KNAPSACK) :
{ }
1 2
, ,..., n
a a a
Cho mét tËp c¸c sè nguyªn d−¬ng vµ mét sè
nguyªn d−¬ng s. H·y x¸c ®Þnh xem cã hay kh«ng mét tËp con c¸c aj
mµ tæng cña chóng b»ng s. Mét c¸ch t−¬ng ®−¬ng, h·y x¸c ®Þnh
xem cã hay kh«ng c¸c xi ∈{0,1} (1≤ i ≤ n) sao cho 1
.
n
i i
i
a x s
=
=
∑
Bµi to¸n nµy lµ mét bµi to¸n NP- ®Çy ®ñ, tøc lµ thuéc líp
nh÷ng bµi to¸n khã mµ cho ®Õn nay ch−a t×m ®−îc thuËt to¸n gi¶i
chóng trong thêi gian ®a thøc !
Bµi to¸n gi¶i m· ®èi víi m· tuyÕn tÝnh :
M· tuyÕn tÝnh lµ mét líp m· truyÒn tin cã tÝnh chÊt tù söa
sai ®−îc sö dông trong kü thuËt truyÒn tin sè ho¸. Kh«ng ®i vµo
chi tiÕt cña líp m· nµy, ta cã thÓ ph¸t biÓu trùc tiÕp bµi to¸n gi¶i m·
®èi víi m· tuyÕn tÝnh nh− sau:
Cho mét ma trËn cÊp n xm A=(aij) gåm c¸c thµnh phÇn lµ 0
hoÆc 1, mét vect¬ y =(y1,y2,...,ym) c¸c gi¸ trÞ 0 vµ 1, vµ mét sè nguyªn
d−¬ng K. Hái: cã hay kh«ng mét vect¬ x =(x1,x2,...,xn) gåm c¸c sè 0
hoÆc 1 vµ cã kh«ng nhiÒu h¬n K sè 1 sao cho víi mäi j (1≤ j ≤ m):
?
1
. (mod
n
i ij j
i
x a y
=
≡
∑ 2)
Chó ý r»ng ë ®©y, x lµ vect¬ th«ng tin, vµ y lµ vect¬ m·, phÐp gi¶i
m· lµ t×m l¹i x khi nhËn ®−îc y, bµi to¸n nµy tiÕc thay l¹i lµ mét bµi
to¸n khã; Berlekamp, McEliece vµ Tilborg n¨m 1978 ®· chøng minh
nã thuéc líp c¸c bµi to¸n NP- ®Çy ®ñ !
96
4.2. HÖ mËt m· kho¸ c«ng khai RSA.
4.2.1. M« t¶ hÖ mËt m· RSA.
S¬ ®å chung cña hÖ mËt m· kho¸ c«ng khai ®−îc cho bëi
S = (P , C , K , E , D ) (1)
trong ®ã P lµ tËp ký tù b¶n râ, C lµ tËp ký tù b¶n m·, K lµ tËp c¸c
kho¸ K , mçi kho¸ K gåm cã hai phÇn K =(K’,K''), K' lµ kho¸ c«ng
khai dµnh cho viÖc lËp mËt m·, cßn K'' lµ kho¸ bÝ mËt dµnh cho viÖc
gi¶i m·. Víi mçi ký tù b¶n râ x∈P , thuËt to¸n lËp m· E cho ta ký
tù m· t−¬ng øng y =E (K', x) ∈ C , vµ víi ký tù m· y thuËt to¸n gi¶i
m· D sÏ cho ta l¹i ký tù b¶n râ x : D (K'', y) = D (K'', E (K', x)) =x.
§Ó x©y dùng mét hÖ mËt m· kho¸ c«ng khai RSA, ta chän
tr−íc mét sè nguyªn n =p.q lµ tÝch cña hai sè nguyªn tè lín, chän
mét sè e sao cho gcd(e, φ (n)) =1, vµ tÝnh sè d sao cho
e.d ≡ 1(modφ (n)).
Mçi cÆp K =(K’,K''), víi K' =(n,e) vµ K'' = d sÏ lµ mét cÆp kho¸ cña
mét hÖ mËt m· RSA cô thÓ cho mét ng−êi tham gia.
Nh− vËy, s¬ ®å chung cña hÖ mËt m· RSA ®−îc ®Þnh nghÜa
bëi danh s¸ch (1), trong ®ã:
P = C = Zn , trong ®ã n lµ mét sè nguyªn Blum, tøc lµ tÝch
cña hai sè nguyªn tè;
K = {K =(K’,K''): K' =(n,e) vµ K'' = d, gcd(e, φ (n)) =1,
e.d ≡ 1(modφ (n))};
E vµ D ®−îc x¸c ®Þnh bëi:
E (K', x) = xe
modn, víi mäi x ∈P ,
D (K'', y) = yd
modn, víi mäi y ∈C .
§Ó chøng tá ®Þnh nghÜa trªn lµ hîp thøc, ta ph¶i chøng minh r»ng
víi mäi cÆp kho¸ K =(K' ,K'' ), vµ mäi x ∈P , ta ®Òu cã
D (K'', E (K', x)) = x .
Thùc vËy, do e.d ≡ 1(modφ (n)) ta cã thÓ viÕt e.d = t .φ (n) +1. NÕu x
nguyªn tè víi n , th× dïng ®Þnh lý Euler (xem 2.1.3) ta cã
D (K'', E (K', x)) = ( ) 1 ( )
. (mod ) .
ed t n t n
x x x x n
φ φ
+
x
≡ ≡ =
NÕu x kh«ng nguyªn tè víi n , th× do n =p.q , hoÆc x chia hÕt cho p
vµ nguyªn tè víi q, hoÆc x chia hÕt cho q vµ nguyªn tè víi p, vµ
φ (n) =(p -1).(q -1),trong c¶ hai tr−êng hîp ta ®Òu cã
( ) 1
( ) 1
(mod ),
(mod );
t n
t n
x x p
x x q
φ
φ
+
+
≡
≡
97
tõ ®ã suy ra ( ) 1
(mod ),
t n
x x n
φ +
≡ tøc D (K'', E (K', x)) =x.
ThÝ dô: Gi¶ sö chän n =p.q = 2357.2551 = 6012707, ta sÏ cã φ (n) =
(p -1).(q -1)=2356.2550 = 6007800. Chän e = 3674911, vµ tÝnh ®−îc
d = 422191 sao cho e.d ≡ 1(modφ (n)). Mét ng−êi dïng A cã thÓ
chän kho¸ c«ng khai lµ K' =(n =6012707, e = 3674911) vµ gi÷ kho¸ bÝ
mËt K'' =d =422191. Mét ®èi t¸c B muèn göi cho A mét th«ng b¸o
x =5234673, sÏ dïng kho¸ c«ng khai ®Ó t¹o b¶n mËt m· y =xe
=
52346733674911
mod6012707 = 3650502. A nhËn ®−îc y, gi¶i m· sÏ
®−îc b¶n râ x =3650502422191
mod 6012707 =5234673.
4.2.2. Thùc hiÖn hÖ mËt m· RSA.
§Ó thùc hiÖn hÖ mËt m· RSA cho mét m¹ng truyÒn tin b¶o
mËt, ngoµi viÖc x©y dùng c¸c ch−¬ng tr×nh tÝnh to¸n hµm E (víi
tham biÕn ®Çu vµo lµ n ,e vµ x) vµ hµm D (víi tham biÕn ®Çu vµo lµ
n ,d vµ y), ta cßn ph¶i chän cho mçi ng−êi tham gia mét bé (n,e,d)
®Ó t¹o c¸c kho¸ c«ng khai K' vµ kho¸ bÝ mËt K'' . HÖ m· cña mçi
ng−êi tham gia chØ cã kh¶ n¨ng b¶o mËt khi n =p.q lµ sè nguyªn rÊt
lín (vµ do ®ã p,q còng ph¶i lµ nh÷ng sè nguyªn tè rÊt lín); rÊt lín
cã nghÜa lµ p,q ph¶i cã biÓu diÔn thËp ph©n cì h¬n 100 ch÷ sè, do
®ã n cã cì h¬n 200 ch÷ sè thËp ph©n, hay n ≥ 10200
!
TÝnh to¸n c¸c sè e,d , hay thùc hiÖn c¸c hµm E , D , ®Òu chñ
yÕu lµ thùc hiÖn c¸c phÐp tÝnh sè häc trªn c¸c sè nguyªn rÊt lín; vÒ
vÊn ®Ò nµy trong mÊy chôc n¨m qua, khoa lËp tr×nh m¸y tÝnh ®· ®Ò
xuÊt nhiÒu ch−¬ng tr×nh m¸y tÝnh lµm viÖc rÊt cã hiÖu qu¶, ta cã thÓ
tham kh¶o ®Ó sö dông khi thùc thi c¸c hÖ mËt m· RSA còng nh−
nhiÒu hÖ mËt m· kh¸c.
4.2.3. TÝnh b¶o mËt cña mËt m· RSA.
Bµi to¸n th¸m m· (khi chØ biÕt b¶n m·) ®èi víi mËt m· RSA
lµ: biÕt kho¸ c«ng khai K' =(n,e), biÕt b¶n m· y =x e
modn, t×m x. Bµi
to¸n nµy chÝnh lµ bµi to¸n RSA ®−îc tr×nh bµy trong môc 4.1.2.
Trong môc ®ã ta ®· chøng tá r»ng nÕu biÕt hai thõa sè p,q cña n th×
dÔ t×m ®−îc x tõ y, vµ nãi chung cã b»ng chøng ®Ó coi r»ng bµi to¸n
RSA (hay bµi to¸n th¸m m· RSA) lµ cã ®é khã t−¬ng ®−¬ng víi bµi
to¸n ph©n tÝch sè nguyªn (Blum) thµnh thõa sè nguyªn tè. Do ®ã,
gi÷ tuyÖt mËt kho¸ bÝ mËt d , hay gi÷ tuyÖt mËt c¸c thõa sè p,q , lµ
cã ý nghÜa rÊt quyÕt ®Þnh ®Õn viÖc b¶o vÖ tÝnh an toµn cña hÖ mËt
m· RSA.
Mét m¹ng truyÒn tin b¶o mËt sö dông s¬ ®å c¸c hÖ mËt m·
RSA ®−îc xem lµ an toµn, nÕu tu©n thñ c¸c ®iÒu kiÖn c¬ b¶n: mçi
98
ng−êi tham gia ph¶i ®éc lËp lùa chän c¸c tham sè n, e,d cña riªng
m×nh, chän n còng cã nghÜa lµ chän c¸c thõa sè p,q cña n (n =p.q),
vµ do cã p,q nªn tÝnh ®−îc φ (n) = (p -1).(q -1), vµ tõ ®ã t×m ®−îc
e,d t−¬ng ®èi dÔ dµng; nh−ng còng chÝnh v× vËy mµ sau khi ®·
chän th× mçi ng−êi tham gia ph¶i gi÷ tuyÖt ®èi bÝ mËt c¸c gi¸ trÞ
p,q,d , chØ c«ng bè kho¸ c«ng khai (n,e) mµ th«i.
Tuy nhiªn, ®ã lµ ®iÒu kiÖn chung, cßn trong thùc tÕ vÉn cã
thÓ cßn nhiÒu s¬ hë mµ ng−êi th¸m m· cã thÓ lîi dông ®Ó tÊn c«ng
vµo tÝnh b¶o mËt cña c¸c hÖ m· RSA khã mµ l−êng tr−íc hÕt ®−îc;
sau ®©y lµ mét sè tr−êng hîp ®¬n gi¶n ®· biÕt mµ ta cÇn chó ý:
1.Dïng m«®uyn n chung. Gi¶ sö cã hai ng−êi tham gia A vµ
B cïng sö dông mét m«®uyn chung n trong kho¸ c«ng khai cña
m×nh, ch¼ng h¹n A chän kho¸ c«ng khai (n,e) vµ gi÷ kho¸ bÝ mËt d,
B chän kho¸ c«ng khai (n,a) vµ gi÷ kho¸ bÝ mËt b. Mét ng−êi tham
gia thø ba C göi mét v¨n b¶n cÇn b¶o mËt x ®Õn c¶ A vµ B th× dïng
c¸c kho¸ c«ng khai nãi trªn ®Ó göi ®Õn A b¶n mËt m· y =x e
modn
vµ göi ®Õn B b¶n mËt m· z = mod
a
x n . Ta sÏ chøng tá r»ng mét
ng−êi th¸m m· O cã thÓ dùa vµo nh÷ng th«ng tin n,e,a,y,z trªn
®−êng c«ng khai mµ ph¸t hiÖn ra b¶n râ x nh− sau:
a. TÝnh c = e-1
moda,
b. Sau ®ã tÝnh h = (ce -1)/a ,
c. Vµ ta ®−îc x = yc
(zh
)-1
modn.
Thùc vËy, theo ®Þnh nghÜa trªn, ce -1 chia hÕt cho a, vµ tiÕp theo ta
cã: yc
(zh
)-1
modn = xec
. ( 1)/ 1 1 1
( ) mod .( ) mod
a ce a ce ce
x n x x n x
− − − −
= = . Nh−
vËy, trong tr−êng hîp nµy viÖc truyÒn tin b¶o mËt kh«ng cßn an
toµn n÷a. V× vËy, ta cÇn nhí khi dïng c¸c hÖ RSA ®Ó tæ chøc m¹ng
truyÒn tin b¶o mËt, cÇn tr¸nh dïng m«®uyn n chung cho c¸c ng−êi
tham gia kh¸c nhau!
2. Dïng sè mò lËp m· e bÐ. §Ó cho viÖc tÝnh to¸n hµm lËp
m· ®−îc hiÖu qu¶, ta dÔ cã xu h−íng chän sè mò e cña hµm lËp m·
lµ mét sè nguyªn bÐ, ch¼ng h¹n e =3. Tuy nhiªn, nÕu trong mét
m¹ng truyÒn tin b¶o mËt dïng c¸c hÖ mËt m· RSA, nÕu cã nhiÒu
ng−êi cïng chän sè mò lËp m· e bÐ gièng nhau th× sÏ cã nguy c¬ bÞ
tÊn c«ng bëi viÖc th¸m m· nh− sau : Gi¶ sö cã ba ng−êi tham gia
chän ba kho¸ c«ng khai lµ (n1, e), (n2, e), (n3, e) víi cïng sè mò e =3.
Mét ng−êi tham gia A muèn göi mét th«ng b¸o x cho c¶ ba ng−êi
®ã, vµ ®Ó b¶o mËt, göi b¶n m· ci = x3
modni cho ng−êi thø i. Ba
m«®uyn ni lµ kh¸c nhau, vµ cã phÇn ch¾c lµ tõng cÆp nguyªn tè víi
nhau. Mét ng−êi th¸m m· cã thÓ dïng ®Þnh lý sè d− Trung quèc ®Ó
t×m mét sè m (0≤ m ≤ n1n2n3) tho¶ m·n
99
1 1
2 2
3 3
mod
mod
mod
m c n
m c n
m c n
≡
⎧
⎪
≡
⎨
⎪ ≡
⎩
V× x ≤ ni , nªn x 3
≤ n1n2n3 , do ®ã ¾t cã m =x 3
. VËy lµ ta ®· ®−a ®−îc
bµi to¸n t×m c¨n bËc ba theo nghÜa ®ång d− modni vÒ bµi to¸n t×m
c¨n bËc ba theo nghÜa sè häc th«ng th−êng: t×m c¨n bËc ba cña m ta
®−îc x, tøc ®−îc b¶n râ!
Víi nh÷ng lý do kh¸c, ng−êi ta ®· cã nh÷ng b»ng chøng ®Ó
chøng tá r»ng hÖ RSA còng kh«ng b¶o ®¶m an toµn nÕu ta dïng
c¸c kho¸ cã sè mò gi¶i m· d lµ sè nguyªn bÐ, dï r»ng khi ®ã thuËt
to¸n gi¶i m· cã lµm viÖc hiÖu qu¶ h¬n. V× thÕ, khi sö dông c¸c hÖ
mËt m· RSA, ®Ó b¶o ®¶m an toµn ta nªn chän c¸c sè mò e vµ d lµ
nh÷ng sè nguyªn lín, cã kÝch cì lín gÇn nh− b¶n th©n sè n.
3. Lîi dông tÝnh nh©n cña hµm lËp m·. Ta chó ý r»ng hµm
lËp m· f (x) = x e
modn cã tÝnh nh©n (multiplicative property), nghÜa
lµ f (x.y) = f (x).f (y). Dùa vµo tÝnh chÊt ®ã, ta thÊy r»ng nÕu c lµ mËt
m· cña b¶n râ x, th× . mod
e
c c u n
= sÏ lµ mËt m· cña b¶n râ xu. Do
®ã, khi lÊy ®−îc b¶n mËt m· c , ®Ó ph¸t hiÖn b¶n râ x ng−êi th¸m
m· cã thÓ chän ngÉu nhiªn mét sè u råi t¹o ra b¶n m· c ,vµ nÕu
ng−êi th¸m m· cã kh¶ n¨ng th¸m m· theo kiÓu « cã b¶n m· ®−îc
chän » (xem 1.5.1), tøc cã kh¶ n¨ng víi c ®−îc chän t×m ra b¶n râ
t−¬ng øng lµ x =xu ,th× b¶n râ gèc cÇn ph¸t hiÖn sÏ lµ x
= 1
. mod
x u−
n . TÊt nhiªn, kh¶ n¨ng ng−êi th¸m m· cã n¨ng lùc gi¶i
quyÕt bµi to¸n th¸m m· theo kiÓu cã b¶n m· ®−îc chän lµ rÊt hiÕm,
nh−ng dÇu sao ®Êy còng lµ mét tr−êng hîp mµ vÊn ®Ò b¶o mËt dÔ
bÞ tÊn c«ng, ta kh«ng thÓ kh«ng tÝnh ®Õn ®Ó t×m c¸ch tr¸nh!
4. TÊn c«ng b»ng c¸ch lÆp phÐp m·. Ta còng chó ý r»ng hµm
lËp m· f (x) = xe
modn lµ mét phÐp ho¸n vÞ trªn tËp Zn ={0,1,...,n -1},
do ®ã víi mäi c ∈Zn nÕu ta thùc hiÖn lÆp phÐp lËp m· ®Ó ®−îc
2
0 1 2
, mod , mod ,..., mod ,...
i
e e e
i
c c c c n c c n c c n
= = = =
¾t sÏ t×m ®−îc sè k ≥ 1 sao cho mod
k
e
k
c c n c
= = . NÕu c lµ b¶n m·
cña mét b¶n râ x nµo ®ã, c =xe
modn, th× ng−êi th¸m m· cã thÓ xuÊt
ph¸t tõ c thùc hiÖn lÆp phÐp lËp m· nh− trªn sÏ t×m ®−îc sè k ≥ 1
bÐ nhÊt sao cho ck =c . Vµ khi ®ã ta sÏ cã sè h¹ng tr−íc ®ã ck -1=x, lµ
b¶n râ cÇn ph¸t hiÖn. ThuËt to¸n vÒ h×nh thøc lµ kh¸ ®¬n gi¶n,
nh−ng hiÖu qu¶ thùc hiÖn kh«ng ®¸ng hy väng l¾m, v× sè phÐp lÆp
cÇn thùc hiÖn nãi chung cã thÓ lµ rÊt lín, cì b»ng sè c¸c phÐp ho¸n
vÞ trªn Zn , tøc lµ b»ng n !, víi sè n cã kho¶ng 200 ch÷ sè thËp ph©n.
Trªn thùc tÕ, pháng theo thuËt to¸n nãi trªn ta cã thÓ dÔ dµng cã
mét thuËt to¸n ph©n tÝch n thµnh thõa sè nguyªn tè, mµ mét thuËt
100
to¸n nh− vËy lµm viÖc cã hiÖu qu¶ thiÕt thùc, nh− ®· tr×nh bµy
trong mét phÇn trªn, lµ ch−a cã! V× vËy, nguy c¬ bÞ th¸m m· b»ng
thuËt to¸n ®¬n gi¶n nãi trªn ®èi víi tÝnh an toµn cña hÖ mËt m·
RSA lµ kh«ng ®¸ng ng¹i l¾m.
5. VÒ kh¶ n¨ng che giÊu cña b¶n mËt m·. MËt m·, së dÜ nã
gi÷ ®−îc bÝ mËt, lµ do kh¶ n¨ng che giÊu th«ng tin cña nã, tøc lµ
biÕt b¶n m· y khã lßng t×m ®−îc th«ng tin nµo ®Ó ph¸t hiÖn ra b¶n
râ x. Mét c¸ch th« thiÓn, ta nãi b¶n râ x lµ kh«ng che giÊu ®−îc qua
phÐp lËp mËt m· RSA eK (x) =x e
modn, nÕu eK (x) =x. Nãi c¸ch
kh¸c, x lµ kh«ng che giÊu ®−îc nÕu b¶n m· cña x còng chÝnh lµ x.
TiÕc r»ng víi bÊt kú hÖ mËt m· RSA nµo còng cã nh÷ng b¶n râ
kh«ng che giÊu ®−îc, ®ã lµ nh÷ng b¶n râ x = -1, 0, 1 modn (v× sè
mò e lu«n lu«n lµ sè lÎ). Ng−êi ta chøng minh ®−îc r»ng nÕu n
=p.q, th× sè c¸c b¶n râ x ∈Zn kh«ng che giÊu ®−îc lµ b»ng
(1+gcd(e -1, p -1)).(1+gcd(e -1, q -1)).
V× e -1, p -1, q -1 lµ c¸c sè ch½n, nªn sè ®ã Ýt nhÊt lµ 9, nªn mçi hÖ
RSA cã Ýt nhÊt 9 b¶n râ kh«ng che giÊu ®−îc. Tuy nhiªn, th−êng n,
vµ do ®ã c¶ p vµ q, ®Òu rÊt lín, nªn tû lÖ c¸c b¶n râ kh«ng che giÊu
®−îc nãi chung lµ bÐ kh«ng ®¸ng kÓ, vµ do ®ã kh¶ n¨ng gÆp c¸c
b¶n râ kh«ng che giÊu ®−îc kh«ng t¹o nªn mét nguy c¬ ®¸ng kÓ
nµo ®èi víi viÖc dïng c¸c hÖ mËt m· RSA.
4.3. HÖ mËt m· kho¸ c«ng khai Rabin.
4.3.1. M« t¶ hÖ mËt m· Rabin.
S¬ ®å hÖ mËt m· kho¸ c«ng khai Rabin ®−îc cho bëi
S = (P , C , K , E , D ),
trong ®ã: P =C = Zn , trong ®ã n lµ mét sè nguyªn Blum, n =p.q, víi
p vµ q lµ hai sè nguyªn tè cã tÝnh chÊt p ≡ 3(mod4), q ≡ 3(mod4),
K = {K = (K', K'') : K' =(n,B), K'' =(p,q), 0≤B ≤ n –1},
c¸c thuËt to¸n E vµ D ®−îc x¸c ®Þnh bëi
E (K' ,x) = x (x +B) modn ,
D (K'',y) =
2
mod .
4 2
B B
y n
+ −
(ký hiÖu c¨n bËc hai sÏ ®−îc gi¶i thÝch sau).
101
Trong mét m¹ng truyÒn tin b¶o mËt víi s¬ ®å mËt m· Rabin,
mçi ng−êi tham gia chän cho m×nh c¸c yÕu tè n,B,p,q ®Ó lËp nªn
kho¸ c«ng khai vµ kho¸ bÝ mËt cña m×nh.
Ta chó ý r»ng víi mçi bé kho¸ K, c¸c thuËt to¸n K
e ′ = E (K' ,.)
vµ K
d ′′ = D (K'',.) kh«ng lËp thµnh mét cÆp song ¸nh, cô thÓ lµ K
e ′
kh«ng ph¶i lµ mét ®¬n ¸nh, v× nÕu w lµ mét c¨n bËc hai cña 1 theo
modn th× K
e ′ (w(x +
2
B
) -
2
B
) = K
e ′ (x), mµ ta cã ®Õn 4 c¨n bËc hai cña
1 theo modn ,tøc lµ ta cã 4 gi¸ trÞ kh¸c nhau cña ®èi sè x cho cïng
mét gi¸ trÞ K
e ′ (x).
B©y giê nãi ®Õn thuËt to¸n gi¶i m· K
d ′′ = D (K'',.). §Æt C =
B 2
/4 +y, ta cã K
d ′′ (y) = / 2 mod
C B n
− , do ®ã ®Ó cã K
d ′′ (y), ta cÇn
tÝnh C modn, tøc cÇn gi¶i ph−¬ng tr×nh z 2
≡ C modn . Ph−¬ng
tr×nh ®ã t−¬ng ®−¬ng víi hÖ thèng gåm hai ph−¬ng tr×nh sau ®©y:
(2)
2
2
mod ,
mod .
z C p
z C q
⎧ ≡
⎪
⎨
≡
⎪
⎩
V× p vµ q lµ c¸c sè nguyªn tè nªn ta cã
1
2
1mod
p
C p
−
≡ ,
1
2
1mod
q
C q
−
≡ .
Theo gi¶ thiÕt, p ≡ 3(mod4) vµ q ≡ 3(mod4), nªn
1
4 4
p q 1
+ +
va` lµ c¸c
sè nguyªn; vµ ta cã
1 1
2 2
4 4
( ) (mod ), ( ) (mod ).
p q
C C p C C
+ +
± ≡ ± ≡ q
Do ®ã,ph−¬ng tr×nh z 2
≡ C modn , hay hÖ ph−¬ng tr×nh (2), cã 4
nghiÖm theo modn , t−¬ng øng víi 4 hÖ ph−¬ng tr×nh sau ®©y :
( 1)/ 4 ( 1)/ 4
( 1)/ 4 ( 1)/ 4
(mod ) (mod )
(mod ) (mod )
p p
q q
z C p z C p
z C q z C q
+ +
+ +
⎧ ⎧
≡ ≡
⎪ ⎪
⎨ ⎨
≡ ≡−
⎪ ⎪
⎩ ⎩
( 1)/ 4 ( 1)/ 4
( 1)/ 4 ( 1)/ 4
(mod ) (mod )
(mod ) (mod )
p p
q q
z C p z C p
z C q z C q
+ +
+ +
⎧ ⎧
≡− ≡−
⎪ ⎪
⎨ ⎨
≡ ≡−
⎪ ⎪
⎩ ⎩
C¶ 4 nghiÖm cña 4 hÖ ph−¬ng tr×nh ®ã theo modn ®Òu ®−îc viÕt
chung d−íi mét ký hiÖu lµ C modn, vµ v× vËy thuËt to¸n gi¶i m·
K
d ′′ (y) thùc tÕ sÏ cho ta 4 gi¸ trÞ kh¸c nhau theo modn mµ b¶n râ lµ
mét trong 4 gi¸ trÞ ®ã. ViÖc chän gi¸ trÞ nµo trong 4 gi¸ trÞ t×m ®−îc
lµm b¶n râ lµ tuú thuéc vµo nh÷ng ®Æc tr−ng kh¸c cña b¶n râ mµ
ng−êi gi¶i m· nhËn biÕt (thÝ dô b¶n râ d−íi d¹ng sè ph¶i cã biÓu
diÔn nhÞ ph©n lµ m· cña mét v¨n b¶n tiÕng Anh th«ng th−êng).
102
ThÝ dô : Gi¶ sö n =77 = 7.11, B =9 (ë ®©y p =7, q =11). Ta cã
K
e ′ (x) = x2
+ 9x mod77,
K
d ′′ (y) = 1 43mod77
y
+ − ,
v× 2-1
=39mod77, 9.2-1
=9.39 =43mod77, B2
=4mod77, B2
/4 =1mod 77.
Víi x =44 ta cã K
e ′ (x) = 442
+9.44 =2332 =22mod77, b¶n m· t−¬ng
øng víi x lµ y = 22. B©y giê gi¶i m· víi b¶n m· y =22, b»ng thñ tôc
nãi trªn ta cã thÓ t×m ®−îc 4 gi¸ trÞ cña 1 1 22
y
+ = + = 23 theo
mod77 lµ 10,67,32,45, tõ ®ã 4 gi¸ trÞ cã thÓ cã cña K
d ′′ (y) lµ
K
d ′′ (y) = 44, 24, 66, 2.
B¶n râ n»m trong 4 gi¸ trÞ ®ã, trong tr−êng hîp nµy lµ 44.
4.3.2. TÝnh an toµn cña hÖ mËt m· Rabin.
Trong ®Þnh nghÜa cña hÖ mËt m· Rabin, kho¸ c«ng khai lµ
(n,B), kho¸ bÝ mËt lµ (p,q) tøc lµ cÆp thõa sè nguyªn tè cña n . Nh−
vËy, tÝnh an toµn cña hÖ mËt m· n»m ë viÖc gi÷ bÝ mËt c¸c thõa sè p
vµ q. §Þnh nghÜa cña phÐp gi¶i m· còng cho ta thÊy r»ng yÕu tè cã
ý nghÜa quyÕt ®Þnh trong phÐp gi¶i m· lµ viÖc tÝnh c¨n bËc hai cña
mét sè theo modn. Trong môc 4.1.2 bµi to¸n t×m c¨n bËc hai theo
modn (víi n lµ hîp sè Blum) ®· ®−îc chøng tá lµ cã ®é khã t−¬ng
®−¬ng víi bµi to¸n ph© n tÝch n thµnh thõa sè nguyªn tè. V× vËy,
bµi to¸n gi¶i m· ®èi víi hÖ mËt m· Rabin, còng lµ bµi to¸n gi÷ bÝ
mËt kho¸ bÝ mËt (p,q), vµ bµi to¸n ph©n tÝch sè nguyªn thµnh thõa
sè nguyªn tè lµ cã ®é khã t−¬ng ®−¬ng nhau. Vµ ®ã còng lµ yÕu tè
b¶o ®¶m tÝnh an toµn cña hÖ mËt m· Rabin !
4.4. HÖ mËt m· kho¸ c«ng khai ElGamal.
4.4.1. M« t¶ hÖ mËt m· ElGamal.
HÖ mËt m· ElGamal ®−îc T. ElGamal ®Ò xuÊt n¨m 1985, dùa
vµo ®é phøc t¹p cña bµi to¸n tÝnh l«garit rêi r¹c, vµ sau ®ã ®·
nhanh chãng ®−îc sö dông réng r·i kh«ng nh÷ng trong vÊn ®Ò b¶o
mËt truyÒn tin mµ cßn trong c¸c vÊn ®Ò x¸c nhËn vµ ch÷ ký ®iÖn tö.
S¬ ®å hÖ mËt m· kho¸ c«ng khai ElGamal ®−îc cho bëi
S = (P , C , K , E , D ),
trong ®ã: P = p
Z∗
, C = p p
Z Z
∗ ∗
× , víi p lµ mét sè nguyªn tè;
K ={K = (K', K'') : K' =(p,α ,β) , K'' = a , β ≡ α a
modp},
103
ë ®©y α lµ mét phÇn tö nguyªn thuû theo modp, tøc cña p
Z∗
.
C¸c thuËt to¸n lËp m· K
e ′ = E (K' ,.) vµ gi¶i m· K
d ′′ = D (K'',.)
®−îc x¸c ®Þnh nh− sau: Víi mçi x∈P = p
Z∗
, ®Ó lËp mËt m· cho x
tr−íc hÕt ta chän thªm mét sè ngÉu nhiªn k ∈ Zp -1 råi tÝnh:
K
e ′ (x,k ) = (y1, y2), víi 1
2
mod ,
. mod
k
k
y p
y x p
α
β
⎧ =
⎪
⎨
=
⎪
⎩ .
Víi mäi sè ngÉu nhiªn k bÊt kú, ta ®Òu xem K
e ′ (x,k ) lµ mËt m· cña
x. Vµ thuËt to¸n gi¶i m· ®−îc x¸c ®Þnh bëi
K
d ′′ (y1, y2) = 1
2 1
.( ) mod .
a
y y p
−
C¸c phÐp lËp mËt m· vµ gi¶i m· ®−îc x¸c ®Þnh nh− vËy lµ
hîp thøc, v× ta cã víi mäi x∈P = p
Z∗
vµ mäi k ∈ Zp -1 :
K
d ′′ ( K
e ′ (x,k )) = . 1
. .( ) mod . . mod
k k a k k
.
x p x p x
β α β β
− −
= =
Ta chó ý r»ng trong mét m¹ng truyÒn th«ng b¶o mËt víi
viÖc dïng s¬ ®å mËt m· ElGamal, mçi ng−êi tham gia tù chän cho
m×nh c¸c tham sè p,α, a, råi tÝnh β, sau ®ã lËp vµ c«ng bè kho¸ c«ng
khai K' =(p,α ,β), nh−ng ph¶i gi÷ tuyÖt mËt kho¸ bÝ mËt K'' = a. Bµi
to¸n biÕt kho¸ c«ng khai t×m ra kho¸ bÝ mËt chÝnh lµ bµi to¸n tÝnh
l«garit rêi r¹c ®−îc kÓ ®Õn trong môc 4.1.2, mét bµi to¸n khã cho
®Õn nay ch−a cã mét thuËt to¸n nµo lµm viÖc trong thêi gian ®a
thøc gi¶i ®−îc nã.
ThÝ dô : Chän p = 2579, α =2, a =765, ta tÝnh ®−îc β = 2765
= 949
mod2579. Ta cã kho¸ c«ng khai (2579, 2, 949) vµ kho¸ bÝ mËt 765.
Gi¶ sö ®Ó lËp mËt m· cho x =1299, ta chän ngÉu nhiªn k =853, sÏ cã
K
e ′ (1299, 853) = (2853
, 1299. 949853
)mod2579
= (453, 2396).
Vµ gi¶i m· ta ®−îc l¹i
K
d ′′ (453, 2396) = 2396. (453765
)-1
mod2579 = 1299.
4.4.2. TÝnh an toµn cña hÖ mËt m· ElGamal.
Nh− ®· tr×nh bµy ë trªn, nÕu ta xem tÝnh an toµn cña hÖ mËt
m· ElGamal lµ ë viÖc gi÷ tuyÖt mËt kho¸ bÝ mËt K'', th× ta cã thÓ yªn
t©m v× bµi to¸n ph¸t hiÖn kho¸ bÝ mËt cã ®é khã t−¬ng ®−¬ng víi
bµi to¸n tÝnh l«garit rêi r¹c, mµ bµi to¸n nµy th× nh− ë c¸c môc 4.1.2
vµ 2.4.3 ®· chøng tá, cho ®Õn nay ch−a cã mét thuËt to¸n nµo lµm
viÖc trong thêi gian ®a thøc gi¶i ®−îc nã. Cã mét ®iÒu c¶nh b¸o lµ
nªn chó ý chän m«®uyn p lµ sè nguyªn tè sao cho p -1 cã Ýt nhÊt
mét −íc sè nguyªn tè lín (xem 2.4.3). §iÒu ®ã lµ thùc hiÖn ®−îc
104
nÕu sè nguuyªn tè p ®−îc chän lµ sè nguyªn tè Sophie Germain
(tøc cã d¹ng 2q +1, víi q còng lµ sè nguyªn tè lín).
Ngoµi ra, cßn cã kh¶ n¨ng kho¸ bÝ mËt K'' = a bÞ lé do cÈu th¶
trong viÖc sö dông sè ngÉu nhiªn k, ®Æc biÖt lµ khi ®Ó lé sè k ®−îc
dïng. Thùc vËy, nÕu ®Ó lé sè k, th× kho¸ bÝ mËt a ®−îc tÝnh ra ngay
theo c«ng thøc sau ®©y:
1
2 1
( ) mod( 1).
a x ky y p
−
= − −
Nh− vËy,mét ng−êi th¸m m· cã kh¶ n¨ng tÊn c«ng theo kiÓu
“biÕt c¶ b¶n râ” (xem 1.5.1) cã thÓ ph¸t hiÖn ra kho¸ a nÕu biÕt k .
Mét tr−êng hîp kh¸c lµm mÊt tÝnh an toµn cña hÖ mËt m·
ElGamal lµ viÖc dïng cïng mét sè k cho nhiÒu lÇn lËp mËt m·.
Thùc vËy, gi¶ sö dïng cïng mét sè ngÉu nhiªn k cho hai lÇn lËp
m·, mét lÇn cho x1 , mét lÇn cho x2 , vµ ®−îc c¸c b¶n m· t−¬ng øng
(y1,y2) vµ (z1,z2). V× cïng dïng mét sè k nªn y1=z1. Vµ do ®ã theo
c«ng thøc lËp m· ta cã z2/y2 = x2/x1, tøc lµ x2 = x1.z2/y2. Nh− vËy,
mét ng−êi th¸m m·, mét lÇn “biÕt c¶ b¶n râ” dÔ dµng ph¸t hiÖn
®−îc b¶n râ trong c¸c lÇn sau.
4.4.3. C¸c hÖ mËt m· t−¬ng tù ElGamal.
HÖ mËt m· ElGamal ®−îc x©y dùng dùa trªn c¸c yÕu tè :
mét nhãm h÷u h¹n cyclic ( p
Z∗
), mét phÇn tö nguyªn thuû (α ∈ p
Z∗
)
sao cho bµi to¸n tÝnh l«garit rêi r¹c (tÝnh a = logαβ , tøc cho β t×m a
sao cho β = α a
modp) lµ rÊt khã thùc hiÖn. V× vËy, nÕu cã ®ñ c¸c
yÕu tè ®ã th× ta cã thÓ x©y dùng c¸c hÖ mËt m· t−¬ng tù ElGamal.
Nh− vËy, s¬ ®å cña mét hÖ mËt m· t−¬ng tù ElGamal ®−îc cho bëi
S = (P , C , K , E , D ),
trong ®ã: P =G, C =G G
× , víi G lµ mét nhãm cyclic h÷u h¹n;
K ={K = (K', K'') : K' =(G,α ,β) , K'' = a , β = α a
},
ë ®©y α lµ mét phÇn tö nguyªn thuû cña nhãm G.
C¸c thuËt to¸n lËp m· K
e ′ = E (K' ,.) vµ gi¶i m· K
d ′′ = D (K'',.)
®−îc x¸c ®Þnh nh− sau: Víi mçi x∈P =G, ®Ó lËp mËt m· cho x tr−íc
hÕt ta chän thªm mét sè ngÉu nhiªn k (0 )
k G
≤ ≤ råi tÝnh:
K
e ′ (x,k ) = (y1, y2), víi 1
2 .
k
k
y
y x
α
β
⎧ =
⎪
⎨
=
⎪
⎩
Víi mäi sè ngÉu nhiªn k bÊt kú, ta ®Òu xem K
e ′ (x,k ) lµ mËt m· cña
x. Vµ thuËt to¸n gi¶i m· ®−îc x¸c ®Þnh bëi
K
d ′′ (y1, y2) = 1
2 1
.( ) mod .
a
y y p
−
PhÐp nh©n trong c¸c biÓu thøc nãi trªn ®Òu lµ phÐp nh©n cña G.
105
Cã hai líp nhãm th−êng ®−îc sö dông ®Ó x©y dùng c¸c hÖ
mËt m· t−¬ng tù ElGamal lµ nhãm nh©n cña tr−êng Galois GF(pn
)
vµ nhãm céng cña mét ®−êng cong elliptic x¸c ®Þnh trªn mét
tr−êng h÷u h¹n.
1. Nhãm nh©n cña tr−êng Galois GF(pn
) : Tr−êng Galois
GF(pn
) lµ tr−êng cña c¸c ®a thøc víi hÖ sè trong Zp lÊy theo
m«®uyn lµ mét ®a thøc bËc n bÊt kh¶ qui; víi phÐp céng vµ phÐp
nh©n lµ phÐp céng vµ phÐp nh©n ®a thøc theo m«®uyn ®ã. Tr−êng
cã pn
phÇn tö, cã thÓ xem mçi phÇn tö lµ mét ®a thøc bËc n -1 víi
hÖ sè thuéc Zp = {0,1,2,...,p -1}, thËm chÝ lµ mét vect¬ n chiÒu mµ c¸c
thµnh phÇn lµ c¸c hÖ sè cña ®a thøc ®ã. TËp tÊt c¶ c¸c ®a thøc kh¸c
0 lËp thµnh nhãm nh©n cña tr−êng GF (pn
),vµ ng−êi ta chøng minh
®−îc r»ng nhãm nh©n ®ã lµ cyclic.
Nh− vËy, nhãm G = GF (pn
) {0} lµ nhãm cyclic cÊp pn
-1. ta
cã thÓ chän mét phÇn tö nguyªn thuû cña nhãm ®ã, vµ thiÕt lËp bµi
to¸n l«garit rêi r¹c t−¬ng øng, tõ ®ã x©y dùng ®−îc hÖ mËt m·
t−¬ng tù ElGamal.
2. Nhãm céng cña ®−êng cong elliptic : Gi¶ sö p lµ mét sè
nguyªn tè  3. §−êng cong e p c y
lli ti
;
2
=x3
+a.x+b trªn Zp , trong ®ã
a,b ∈Zp lµ c¸c h»ng sè tho¶ m·n 4a3
+27b2
≢ 0 (modp), ®−îc ®Þnh
nghÜa lµ tËp hîp tÊt c¶ c¸c ®iÓm (x,y)∈ Zp × Zp tho¶ m·n ph−¬ng
tr×nh
y2
≡ x3
+a.x+b (modp),
cïng víi mét phÇn tö ®Æc biÖt mµ ta ký hiÖu lµ O . TËp hîp ®ã
®−îc ký hiÖu lµ E. Trªn tËp E ta x¸c ®Þnh mét phÐp céng nh− sau :
Gi¶ sö P =(x1, y1) vµ Q = (x2, y2) lµ hai ®iÓm cña E. NÕu x1=x2 vµ
y1= -y2 th× ta ®Þnh nghÜa P +Q =O ; nÕu kh«ng th× P +Q = (x3, y3),
trong ®ã
x3 = λ2
-x1-x2 , y3 = λ (x1-x3) - y1 ,
víi
2 1 2 1
2
1 1
( ) /( ),
(3 ) / 2 , .
y y x x khi P Q
x a y khi P Q
λ
− − ≠
⎧
⎪
=⎨
+ =
⎪
⎩
Ngoµi ra, ta ®Þnh nghÜa thªm : P +O = O+P = P.
TËp E víi phÐp to¸n céng ®ã lËp thµnh mét nhãm. NÕu ⎢E ⎢=q lµ sè
nguyªn tè th× nhãm céng ®ã lµ nhãm cyclic, vµ mäi phÇn tö kh¸c
kh«ng (≠O ) ®Òu lµ phÇn tö nguyªn thuû. Ta nhí r»ng trong tr−êng
hîp nµy, phÇn tö nghÞch ®¶o lµ phÇn tö ®èi, phÐp n©ng lªn luü
thõa n lµ phÐp nh©n víi sè n , phÐp l«garit t−¬ng øng víi mét kiÓu
phÐp chia. Ta cã thÓ xuÊt ph¸t tõ nhãm E nµy ®Ó x©y dùng hÖ mËt
m· t−¬ng tù ElGamal.
106
4.5. C¸c hÖ mËt m· dùa trªn c¸c bµi to¸n NP-®Çy ®ñ.
4.5.1. Nguyªn t¾c chung.
Nh− ®· giíi thiÖu trong ch−¬ng II, c¸c bµi to¸n NP-®Çy ®ñ lµ
c¸c bµi to¸n mµ cho ®Õn nay ch−a t×m ®−îc mét thuËt to¸n víi ®é
phøc t¹p tÝnh to¸n ®a thøc nµo ®Ó gi¶i chóng. Vµ tÝnh « khã» cña
c¸c bµi to¸n ®ã l¹i ®−îc b¶o ®¶m b»ng sù kiÖn lµ chØ cÇn cã mét
thuËt to¸n víi ®é phøc t¹p ®a thøc gi¶i mét bµi to¸n NP-®Çy ®ñ
nµo ®ã th× lËp tøc mäi bµi to¸n NP-®Çy ®ñ ®Òu gi¶i ®−îc trong thêi
gian ®a thøc.
§èi víi mét sè bµi to¸n NP-®Çy ®ñ, tuy kh«ng cã thuËt to¸n
víi ®é phøc t¹p ®a thøc ®Ó gi¶i ®èi víi mäi d÷ liÖu cña bµi to¸n,
nh−ng cã thÓ cã mét líp c¸c d÷ liÖu mµ ®èi víi chóng cã thuËt to¸n
®Ó gi¶i víi thêi gian chÊp nhËn ®−îc. Víi nh÷ng bµi to¸n nh− vËy
ta cã thÓ sö dông ®Ó x©y dùng c¸c hÖ mËt m· kho¸ c«ng khai víi
nguyªn t¾c chung nh− sau : HÖ mËt m· sÏ cã phÐp gi¶i m· t−¬ng
®−¬ng víi viÖc t×m lêi gi¶i cho bµi to¸n NP-®Çy ®ñ ®ã; tuy nhiªn cã
mét thñ tôc ®Ó biÕn mét d÷ liÖu nãi chung cña bµi to¸n NP-®Çy ®ñ
®ã thµnh mét d÷ liÖu thuéc líp ®Æc biÖt mµ ®èi víi nã cã thÓ gi¶i
®−îc bëi mét thuËt to¸n víi ®é phøc t¹p thêi gian chÊp nhËn ®−îc.
Nh− vËy, ta ®· biÕn ®−îc phÐp lËp m· thµnh mét hµm « cöa sËp
mét phÝa », vµ ®ã lµ c¬ së ®Ó x©y dùng hÖ mËt m· kho¸ c«ng khai
t−¬ng øng.
Ta sÏ xÐt sau ®©y hai tr−êng hîp x©y dùng ®−îc c¸c hÖ mËt
m· kho¸ c«ng khai theo c¸ch nh− vËy : mét lµ hÖ mËt m· Merkle-
Hellman dùa trªn bµi to¸n s¾p ba l« (hay bµi to¸n tæng tËp con), vµ
hai lµ hÖ mËt m· Mc-Eliece dùa trªn bµi to¸n gi¶i m· tuyÕn tÝnh tù
söa sai.
4.5.2. HÖ mËt m· Merkle-Hellman.
Bµi to¸n s¾p ba l« (tøc bµi to¸n KNAPSACK, còng ®−îc gäi
lµ bµi to¸n tæng tËp con) ®−îc ®Æt ra nh− sau: Cho mét tËp c¸c sè
nguyªn d−¬ng { }
1 2
, ,..., n
a a a vµ mét sè nguyªn d−¬ng s. H·y x¸c
®Þnh xem cã hay kh«ng mét tËp con c¸c aj mµ tæng cña chóng b»ng
s. Mét c¸ch t−¬ng ®−¬ng, h·y x¸c ®Þnh xem cã hay kh«ng c¸c xi
∈{0,1} (1≤ i ≤ n) sao cho 1
.
n
i i
i
a x s
=
=
∑
107
Bµi to¸n nµy lµ NP-®Çy ®ñ, tuy nhiªn nÕu ta h¹n chÕ bµi to¸n
trªn c¸c d÷ liÖu I =({ }
1 2
, ,..., n
a a a ,T ), trong ®ã { }
1 2
, ,..., n
a a a lµ d·y
siªu t¨ng, tøc lµ d·y tho¶ m·n ®iÒu kiÖn
1
1
2,3,..., : ,
j
j i
i
j n a
−
=
∀ = a
∑

th× viÖc t×m tr¶ lêi lµ kh¸ dÔ dµng, ch¼ng h¹n cã thÓ b»ng thuËt to¸n
®¬n gi¶n d−íi ®©y:
1. for i =n downto 1 do
if T  ai then T = T – ai , xi = 1, else xi = 0
2. if
1
.
n
i i
i
x a T
=
=
∑ then 1
( ,..., )
n
X x x
= is the solution of problem,
else there is no solution.
B©y giê, ®Ó chuÈn bÞ x©y dùng mét s¬ ®å mËt m· Merkle-Hellman,
ta chän tr−íc mét sè nguyªn d−¬ng n vµ mét sè nguyªn tè p ®ñ
lín. Víi mçi ng−êi tham gia sÏ ®−îc chän mét bé kho¸ K = (K', K''),
trong ®ã kho¸ bÝ mËt K'' = (A, p, a) gåm mét d·y siªu t¨ng A=
{ }
1 2
, ,..., n
a a a tho¶ m·n vµ mét sè a, 1 a  p ; kho¸ c«ng
khai K' = {b
1
,
n
i
i
a p
=
∑ 
1,...,bn} víi bi = a.ai modp.
S¬ ®å hÖ mËt m· Merkle-Hellman ®−îc ®Þnh nghÜa bëi
S = (P , C , K , E , D ),
trong ®ã P = {0,1}n
, C ={0,1,...,n(p -1)}, K lµ tËp c¸c bé kho¸ K =
(K', K'') nh− ®−îc x©y dùng ë trªn. C¸c thuËt to¸n lËp mËt m· vµ
gi¶i m· ®−îc x¸c ®Þnh bëi:
Víi mäi 1
( ,..., )
n
x x x
= ∈ P thuËt to¸n lËp m· cho ta
E (K', x) =
1
.
n
i i
i
x b
=
∑ ;
vµ víi mäi y∈C , ta tÝnh z =a-1
.y modp, råi sau ®ã gi¶i bµi to¸n s¾p
bal« ®èi víi d÷ liÖu I =({ }
1 2
, ,..., n
a a a ,z ) ta sÏ ®−îc lêi gi¶i 1
( ,..., )
n
x x ,
lêi gi¶i ®ã lµ gi¸ trÞ cña D (K'', y).
ThÝ dô: Chän n =6, kho¸ bÝ mËt cã p = 737, A={12, 17, 33, 74, 157,
316}, a =635. TÝnh ®−îc kho¸ c«ng khai lµ {250, 477, 319, 559, 200,
196}. Víi b¶n râ x = 101101 ta cã b¶n m· t−¬ng øng lµ y = 1324. §Ó
gi¶i m·, tr−íc hÕt tÝnh z = a-1
.y modp = 635-1
.1324 mod737 = 435, sau
®ã gi¶i bµi to¸n s¾p bal« víi d·y siªu t¨ng A vµ z ta ®−îc
435 = 12 + 33 + 74 + 316,
tøc ®−îc lêi gi¶i x = (1,0,1,1,0,1).
108
HÖ mËt m· Merkle-Hellman ®−îc ®Ò xuÊt kh¸ sím, tõ n¨m
1978, ®Õn n¨m 1985 Shamir t×m ®−îc mét ph−¬ng ph¸p th¸m m·
trong thêi gian ®a thøc dùa vµo mét thuËt to¸n cña Lenstra gi¶i bµi
to¸n qui ho¹ch ®éng. Tuy nhiªn, sau ®ã, vµo n¨m 1988, Chor vµ
Rivest cã ®−a ra mét c¸ch kh¸c x©y dùng hÖ mËt m· còng dùa vµo
bµi to¸n s¾p bal«, cho ®Õn nay vÉn gi÷ ®−îc an toµn.
4.5.3. HÖ mËt m· McEliece.
HÖ mËt m· McEliece ®−îc x©y dùng dùa vµo tÝnh NP-®Çy
®ñ cña bµi to¸n gi¶i m· tuyÕn tÝnh tù söa sai (trong lý thuyÕt truyÒn
tin). Bµi to¸n ®−îc ®Æt ra nh− sau: gi¶ sö nguån tin lµ tËp c¸c tõ k
bit nhÞ ph©n, tøc tËp hîp {0,1}k
, ®−îc truyÒn ®i trªn mét kªnh cã
nhiÔu, tøc lµ nÕu truyÒn trùc tiÕp c¸c d·y tõ k bit th× th«ng tin mµ ta
nhËn ®−îc cã thÓ bÞ sai lÖch vµ ta kh«ng nhËn ®−îc ®óng th«ng tin
®−îc truyÒn ®i. §Ó kh¾c phôc nh÷ng sai lÖch ®ã ng−êi ta t×m c¸ch
m· ho¸ nguån tin gèc b»ng c¸ch thªm cho mçi tõ k bit mang th«ng
tin mét sè bit dïng ®Ó tù hiÖu chØnh, tøc lµ thùc hiÖn mét phÐp m·
ho¸ biÕn mçi tõ k bit ban ®Çu thµnh mét tõ n bit, víi n  k, ®−îc
gäi lµ tõ m·. PhÐp m· ho¸ tuyÕn tÝnh lµ phÐp m· ho¸ ®−îc thùc
hiÖn b»ng c¸ch nh©n tõ k bit ban ®Çu x víi mét ma trËn G cÊp k×n
®Ó ®−îc tõ m· n bit y, y =x.G (c¸c phÐp to¸n céng vµ nh©n ®−îc
thùc hiÖn theo mod2). Ta ®Þnh nghÜa kho¶ng c¸ch Hamming gi÷a
hai tõ m· n bit lµ sè c¸c vÞ trÝ mµ t¹i ®ã hai tõ m· cã gi¸ trÞ kh¸c
nhau; kho¶ng c¸ch d cña hÖ m· lµ kho¶ng c¸ch Hamming bÐ nhÊt
gi÷a hai tõ m· bÊt kú. Nh− vËy, mét hÖ m· tuyÕn tÝnh ®−îc x¸c
®Þnh bëi mét ma trËn G (gäi lµ ma trËn sinh), vµ ®−îc ®Æc tr−ng bëi
ba sè [n,k,d ]. NÕu d = 2t +1, th× hÖ m· cã kh¶ n¨ng tù söa sai ®Õn t
sai ngÉu nhiªn nhiÔm ph¶i do nhiÔu cña kªnh truyÒn. Tuy nhiªn,
viÖc tù söa sai (tøc lµ khi nhËn ®−îc tõ m· cã thÓ cã ®Õn t sai ta t×m
l¹i ®−îc ®óng tõ k bit th«ng tin ban ®Çu) cña c¸c hÖ m· tuyÕn tÝnh
nh− vËy nãi chung kh¸ phøc t¹p, vµ bµi to¸n gi¶i m· tuyÕn tÝnh tù
söa sai ®· ®−îc chøng minh lµ mét bµi to¸n NP-khã, tøc cho ®Õn
nay ch−a biÕt cã thuËt to¸n nµo lµm viÖc trong thêi gian ®a thøc
gi¶i ®−îc nã. MÆc dÇu vËy, ng−êi ta ®· t×m ®−îc mét sè líp riªng
c¸c hÖ m· tuyÕn tÝnh mµ ®èi víi chóng cã thÓ x©y dùng ®−îc
nh÷ng thuËt to¸n gi¶i m· tù söa sai lµm viÖc cã hiÖu qu¶, c¸c hÖ m·
Goppa lµ mét líp nh− vËy. HÖ m· Goppa lµ mét lo¹i hÖ m· tuyÕn
tÝnh cã c¸c ®Æc tr−ng n = 2m
, d =2t +1, k =n -mt , cã ma trËn sinh G
cÊp k×n ®−îc x©y dùng dùa trªn mét sè tÝnh chÊt ®¹i sè cña tr−êng
GF(2n
)-mµ ë ®©y ta kh«ng ®i vµo c¸c chi tiÕt.
§Ó cã mét hÖ mËt m· McEliece, tr−íc hÕt ta chän mét hÖ m·
Goppa víi ma trËn sinh G vµ c¸c ®Æc tr−ng trªn, sau ®ã dïng mét
109
ma trËn S kh¶ nghÞch cÊp k×k trªn Z2 vµ mét ma trËn ho¸n vÞ P cÊp
n ×n (còng cã c¸c phÇn tö trong Z2) ®Ó biÕn hÖ m· Goppa víi ma
trËn sinh G thµnh mét hÖ m· tuyÕn tÝnh “phæ biÕn” víi ma trËn
sinh G* =SGP; vËy lµ ®· biÕn hÖ m· Goppa cã thuËt to¸n gi¶i m·
hiÖu qu¶ thµnh mét hÖ m· tuyÕn tÝnh nãi chung mµ ta chØ biÕt viÖc
gi¶i m· tù söa sai ®èi víi nã lµ NP-khã. HÖ mËt m· mµ ta x©y
dùng sÏ cã thuËt to¸n gi¶i m· lµ “dÔ” ®èi víi ng−êi trong cuéc nh−
gi¶i m· Goppa, vµ lµ “khã” ®èi víi ng−êi ngoµi nh− gi¶i m· tuyÕn
tÝnh nãi chung!
Nh− vËy, mét hÖ mËt m· kho¸ c«ng khai McEliece ®−îc x¸c
®Þnh bëi
S = (P , C , K , E , D ),
trong ®ã P ={0,1}k
, C = {0,1}n
, K lµ tËp hîp c¸c bé kho¸ K = (K', K''),
víi kho¸ bÝ mËt K'' = (G,S,P ) gåm mét ma trËn sinh G cña mét hÖ
m· Goppa, mét ma trËn kh¶ nghÞch S cÊp k×k trªn Z2 vµ mét ma
trËn ho¸n vÞ P cÊp n ×n ; kho¸ c«ng khai K' = G* lµ ma trËn “®·
®−îc biÕn ®æi” nãi trªn.
ThuËt to¸n lËp mËt m· E (K',.): P →C ®−îc x¸c ®Þnh bëi
E (K', x) = x. G* + e ,
trong ®ã e ∈ {0,1}n
lµ mét vect¬ ngÉu nhiªn cã träng sè t , tøc cã t
thµnh phÇn lµ 1. ThuËt to¸n gi¶i m· D (K'',.) ®−îc thùc hiÖn theo ba
b−íc nh− sau víi mäi y ∈C = {0,1}n
:
1. TÝnh y1 = y.P –1
,
2. Gi¶i m· Goppa ®èi víi y1, gi¶ sö ®−îc x1.
3. TÝnh D (K'', y) = x1. S -1
.
DÔ thö l¹i r»ng c¸c thuËt to¸n lËp mËt m· vµ gi¶i m· x¸c
®Þnh nh− trªn lµ hîp thøc, v× víi mäi x ∈ P ={0,1}k
, ta ®Òu cã
D (K'', E (K', x)) = x ,
§¼ng thøc ®ã ®óng víi mäi vect¬ e bÊt kú cã träng sè ≤ t . HÖ mËt
m· nµy còng t−¬ng tù nh− hÖ mËt m· ElGamal ë chç khi lËp mËt
m· ta cã thÓ chän thªm cho d÷ liÖu vµo mét yÕu tè ngÉu nhiªn; vÒ
sau ta sÏ gäi nh÷ng hÖ mËt m· nh− vËy lµ hÖ mËt m· x¸c suÊt.
YÕu tè chñ yÕu b¶o ®¶m tÝnh an toµn cña c¸c hÖ mËt m·
McEliece lµ ë chç tõ kho¸ c«ng khai G* khã ph¸t hiÖn ra kho¸ bÝ
mËt (G,S,P ) vµ ë tÝnh NP-khã cña bµi to¸n gi¶i m· tuyÕn tÝnh tù
söa sai nãi chung. Còng cÇn nhí r»ng ®é an toµn cßn phô thuéc
vµo viÖc chän c¸c tham sè k,n,t ®ñ lín; theo gîi ý cña c¸c nghiªn
cøu thùc nghiÖm th× ®ñ lín cã nghÜa lµ n ≈ 1024, k ≈ 644, t ≈ 38. Víi
nh÷ng ®ßi hái ®ã th× kÝch cì cña c¸c ma trËn G, S, P vµ G* sÏ qu¸
110
lín, kh¸ bÊt tiÖn cho viÖc thùc thi trong thùc tÕ, v× vËy mµ c¸c hÖ
mËt m· McEliece ch−a ®−îc sö dông phæ biÕn l¾m.
4.6. C¸c hÖ mËt m· x¸c suÊt kho¸ c«ng khai.
4.6.1. §Æt vÊn ®Ò vµ ®Þnh nghÜa.
MËt m· x¸c suÊt lµ mét ý t−ëng ®−îc ®Ò xuÊt bëi Goldwasser
vµ Micali tõ n¨m 1984, xuÊt ph¸t tõ yªu cÇu gi¶i quyÕt mét vÊn ®Ò
sau ®©y: Gi¶ thiÕt ta cã mét hÖ mËt m· kho¸ c«ng khai, vµ ta muèn
lËp mËt m· cho b¶n râ chØ gåm mét bit. §iÒu ®ã th−êng gÆp khi ta
muèn bÝ mËt truyÒn ®i mét th«ng tin chØ cã néi dung lµ cã hoÆc
kh«ng, tøc lµ mét th«ng tin ®Æc biÖt quan träng nh−ng chØ gåm mét
bit. NÕu ta dïng mét hÖ mËt m· kho¸ c«ng khai th«ng th−êng, th×
b¶n mËt m· ®−îc truyÒn ®i sÏ lµ K
e ′ (0) hoÆc K
e ′ (1), mét ng−êi th¸m
m· cã thÓ kh«ng biÕt c¸ch gi¶i m·, nh−ng l¹i hoµn toµn cã thÓ tÝnh
tr−íc c¸c gi¸ trÞ K
e ′ (0) vµ K
e ′ (1), vµ khi lÊy ®−îc b¶n m· truyÒn ®i
trªn kªnh truyÒn tin c«ng céng, chØ cÇn so s¸nh b¶n m· nhËn ®−îc
®ã víi hai b¶n K
e ′ (0) vµ K
e ′ (1) ®· ®−îc tÝnh s½n lµ ®ñ biÕt ®−îc
th«ng tin mËt ®−îc truyÒn ®i lµ 0 hay lµ 1. C¸c hÖ mËt m· kho¸
c«ng khai së dÜ cã ®−îc tÝnh b¶o mËt lµ v× tõ th«ng tin vÒ b¶n m·
khã lßng khai th¸c ®−îc th«ng tin g× vÒ b¶n râ, nh−ng râ rµng ®iÒu
®ã kh«ng cßn ®−îc b¶o ®¶m nÕu sè c¸c b¶n râ lµ rÊt Ýt, ch¼ng h¹n
nh− khi c¸c b¶n râ cã ®é dµi cùc ng¾n, hay nh− tr−êng hîp trªn, sè
c¸c b¶n râ chØ lµ hai, cô thÓ lµ 0 vµ 1.
Môc ®Ých cña viÖc x©y dùng mËt m· x¸c suÊt lµ ®Ó b¶o ®¶m
kh«ng mét th«ng tin nµo vÒ b¶n râ cã thÓ khai th¸c ®−îc (trong
thêi gian ®a thøc) tõ b¶n m·; ®iÒu nµy, ®èi víi c¸c hÖ mËt m· kho¸
c«ng khai, cã thÓ ®−îc thùc hiÖn b»ng c¸ch t¹o cho mét b¶n râ
nhiÒu b¶n m· kh¸c nhau thu ®−îc mét c¸ch ngÉu nhiªn víi viÖc sö
dông c¸c sè ngÉu nhiªn trong tiÕn tr×nh lËp m·. Sau ®©y lµ ®Þnh
nghÜa vÒ mét hÖ mËt m· x¸c suÊt kho¸ c«ng khai:
§Þnh nghÜa. Mét hÖ mËt m· x¸c suÊt kho¸ c«ng khai ®−îc
x¸c ®Þnh bëi mét bé
S = (P , C , K , E , D, R ),
trong ®ã P , C , K ®−îc hiÓu nh− ®èi víi c¸c hÖ mËt m· kho¸ c«ng
khai th«ng th−êng, R lµ mét tËp c¸c phÇn tö ngÉu nhiªn, vµ víi
mçi K = (K', K'')∈K , thuËt to¸n lËp mËt m· K
e ′ = E (K' ,.): P ×R →C
vµ gi¶i m· K
d ′′ = D (K'',.): C →P tho¶ m·n ®¼ng thøc:
víi mäi x ∈P , r ∈R , K
d ′′ ( K
e ′ (x,r )) = x.
Ngoµi ra, ta mong muèn mét ®iÒu kiÖn an toµn nh− trong
®Þnh nghÜa sau ®©y ®−îc tho¶ m·n: ta ký hiÖu pK,x lµ ph©n bè x¸c
111
suÊt trªn tËp C , trong ®ã pK,x(y) lµ x¸c suÊt cña viÖc y lµ b¶n m· khi
biÕt K lµ kho¸ vµ x lµ b¶n râ (x¸c suÊt ®−îc tÝnh cho tÊt c¶ r ∈R ). Ta
nãi hai ph©n bè x¸c suÊt p1 vµ p2 trªn C lµ ε-ph©n biÖt ®−îc nÕu cã
mét thuËt to¸n ε-ph©n biÖt hai ph©n bè x¸c suÊt ®ã, tøc lµ mét thuËt
to¸n A : C → {0,1} tho¶ m·n tÝnh chÊt
⎢EA(p1) - EA(p2)⎢≥ ε,
trong ®ã
EA(pi) = ( ). ( ( ) 1)
i
y
p y p A y
∈
=
∑
C
.
B©y giê ®iÒu kiÖn an toµn ®−îc ph¸t biÓu nh− sau: HÖ mËt m· x¸c
suÊt kho¸ c«ng khai S lµ an toµn nÕu cã ε0 sao cho víi mäi K ∈K
vµ mäi x ≠ x' , c¸c ph©n bè x¸c suÊt pK,x vµ ,
,
K x
p lµ kh«ng ε-ph©n biÖt
®−îc.
4.6.2. HÖ mËt m· x¸c suÊt Goldwasser-Micali.
Sau ®©y lµ m« t¶ s¬ ®å cña hÖ mËt m· x¸c suÊt kho¸ c«ng
khai trªn tËp v¨n b¶n mét bit do Goldwasser vµ Micali ®Ò xuÊt n¨m
1984. Mét hÖ nh− vËy ®−îc cho bëi mét danh s¸ch
S = (P , C , K , E , D, R ),
trong ®ã P ={0,1}, C = R = n
Z∗
, n =p.q lµ tÝch cña hai sè nguyªn tè
lín, K lµ tËp hîp c¸c bé kho¸ K = (K', K''), trong ®ã kho¸ c«ng khai
K' = (n ,m) víi m ∈ j
n n
Q J Qn
= − lµ mét gi¶ thÆng d− bËc hai modn,
vµ kho¸ bÝ mËt K'' = (p,q ). C¸c thuËt to¸n lËp mËt m· vµ gi¶i m·
®−îc x¸c ®Þnh bëi
K
e ′ (x,r ) = mx
.r 2
modn ,
K
d ′′ (y) =
0,
1,
n
n
khi y Q
khi y Q
∈
⎧
⎪
⎨
∈
⎪
⎩
víi mäi x ∈P , r ∈R , y ∈C .
HÖ mËt m· Goldwasser-Micali lËp mËt m· cho b¶n râ mét
bit: mËt m· cña bit 0 lu«n lu«n lµ mét thÆng d− bËc hai modn , vµ
mËt m· cña bit 1 lµ mét gi¶ thÆng d− bËc hai modn . ViÖc gi¶i m· lµ
kh¸ dÔ dµng khi ta biÕt kho¸ bÝ mËt K'' = (p,q ). Thùc vËy, víi mäi
y∈ n
Q Q
∪ n ta cã 1.
y
n
⎛ ⎞
=
⎜ ⎟
⎝ ⎠
V× biÕt K'' = (p,q ), nªn ta tÝnh ®−îc
1
2
mod ,
p
y
y p
p
−
⎛ ⎞
=
⎜ ⎟
⎝ ⎠
vµ do ®ã dÔ thö ®−îc 1,
n
y
y Q
p
⎛ ⎞
∈ ⇔ =
⎜ ⎟
⎝ ⎠
vµ tÝnh ®−îc K
d ′′ (y).
112
4.6.3.HÖ mËt m· x¸c suÊt Blum-Goldwasser.
HÖ mËt m· x¸c suÊt kho¸ c«ng khai Blum-Goldwasser ®−îc
x©y dùng trªn nÒn cña c¸c hÖ mËt m· theo dßng víi dßng kho¸ lµ
d·y sè gi¶ ngÉu nhiªn Blum-Blum-Shub (xem 3.3.3), yÓu tè ngÉu
nhiªn r ∈R ë ®©y sÏ ®−îc sö dông nh− mÇm sinh ra d·y sè gi¶
ngÉu nhiªn cña dßng kho¸ ®ã. S¬ ®å cña hÖ mËt m· x¸c suÊt kho¸
c«ng khai Blum-Goldwasser ®−îc cho bëi danh s¸ch
S = (P , C , K , E , D, R ),
trong ®ã P = 2 ,
Z∗
C = 2 ,
n
Z Z
∗
× R = , n = p.q lµ tÝch cña hai sè
nguyªn tè lín víi
n
Q
3mod 4;
p q
≡ ≡ K lµ tËp hîp c¸c bé kho¸ K = (K',
K''), trong ®ã kho¸ c«ng khai K' = n, vµ kho¸ bÝ mËt K'' = (p,q ).
ThuËt to¸n lËp m· K
e ′ = E (K' ,.) : P ×R →C ®−îc tÝnh theo
c¸c b−íc sau:
1. Cho x =(x1,...,xl)∈P vµ r ∈R . Tõ mÇm r theo thuËt to¸n
Blum-Blum-Shub tÝnh d·y sè (s0 ,s1,...,sl +1) theo c«ng thøc
0
2
1
,
mod ,
i i
s r
s s n
+
=
⎧
⎪
⎨
=
⎪
⎩
sau ®ã tÝnh d·y sè gi¶ ngÉu nhiªn (z1,...,zl) bëi zi =si mod2.
2.TÝnh y =(y1,...,yl) víi yi = xi +zi mod2 (1≤ i ≤ l ).
3. B¶n m· lµ K
e ′ (x ,r ) = (y, sl+1) =(y1,...,yl ;sl+1).
ThuËt to¸n gi¶i m· K
d ′′ = D (K'',.): C →P ®−îc thùc hiÖn theo
c¸c b−íc sau ®©y sau khi nhËn ®−îc b¶n m· (y1,...,yl ;sl+1) :
1. TÝnh
1
1
1
2
(( 1)/ 4) mod( 1),
(( 1)/ 4) mod( 1).
l
l
a p p
a q q
+
+
= + −
= + −
2. TÝnh 1 2
1 1 2 1
mod , mod .
a a
l l
b s p b s q
+ +
= =
3. T×m s0 =r b»ng c¸ch gi¶i hÖ ph−¬ng tr×nh
0 1
0 2
mod
mod
s b
s b q
≡
⎧
⎨
≡
⎩
p
4. Víi s0 theo thuËt to¸n BBS ta t×m l¹i ®−îc d·y bit (z1,...,zl).
5. Cuèi cïng ta ®−îc
K
d ′′ (y1,...,yl ;sl+1) = (x1,...,xl), víi xi = yi +zi mod2 (1≤ i ≤ l ).
Nh− vËy lµ hÖ mËt m· Blum-Goldwasser ®· ®−îc ®Þnh
nghÜa ®Çy ®ñ. Ta chó ý r»ng nÕu b¶n râ x gåm l bit th× trong b¶n
m· t−¬ng øng, ngoµi c¸c bit m· y1,...,yl ta ph¶i göi thªm sè sl+1, sè
113
®ã ®−îc sö dông trong c¸c b−íc 1-3 cña thuËt to¸n gi¶i m· ®Ó t×m
l¹i mÇm s0 cÇn thiÕt cho viÖc t×m dßng kho¸ ngÉu nhiªn (z1,...,zl).
Ta chøng minh r»ng sè s0 tÝnh ®−îc theo thuËt to¸n gi¶i m·
®óng lµ mÇm s0 mµ ta cÇn t×m. Thùc vËy, theo ®Þnh nghÜa, ta cã víi
mäi i =0,1,...,l +1, si ®Òu lµ thÆng d− bËc hai, vµ víi mäi i =0,...,l , si
®Òu lµ c¨n bËc hai cña si+1 theo modn ; ®iÒu ®ã còng ®óng ®èi víi
modp vµ modq. V× p ≡ 3 mod4, nªn mçi thÆng d− bËc hai x theo
modp ®Òu cã duy nhÊt mét c¨n bËc hai modp còng lµ thÆng d− bËc
hai modp, ®ã lµ x(p+1)/4
modp. Thùc vËy, v× x(p+1)/2
≡ x modp, nªn
±x(p+1)/4
modp lµ c¨n bËc hai theo modp cña x ; mÆt kh¸c ta l¹i cã
( 1)/ 4
( 1)/ 4
1
p
p
x x
p p
+
+
⎛ ⎞ ⎛ ⎞
=
⎜ ⎟ ⎜ ⎟
⎝ ⎠
⎝ ⎠
= , nªn x(p+1)/4
modp còng lµ mét thÆng d− bËc
hai modp. Tõ nhËn xÐt ®ã ta suy ra víi mäi i (i = 0,1,..,l ):
( 1)/ 4
1 (mod ),
p
i i
s s p
+
+
≡
do ®ã,
1
1
(( 1)/ 4)
0 1 1
mod mod .
l
a
p
l l
s s p s p
+
+
+ +
= =
XÐt t−¬ng tù ®èi víi q, ta còng ®−îc
2
0 1 mod .
a
l
s s q
+
=
VËy sè s0 tÝnh theo c¸c b−íc 1-3 cña thuËt to¸n gi¶i m· ®óng lµ
mÇm s 0=r mµ ta cÇn t×m. C¸c thuËt to¸n lËp mËt m· vµ gi¶i m· nh−
®−îc ®Þnh nghÜa ë trªn lµ hîp thøc.
ThÝ dô : Chän n = 192649 = 383.503.
Cho b¶n râ x = 11010011010011101101. (l = 20)
Gi¶ sö chän ngÉu nhiªn s0=r = 20749. Ta tÝnh ®−îc d·y z :
z = 11001110000100111010.
Ta tÝnh thªm ®−îc s21=94739, vµ b¶n m· ®−îc göi ®i lµ
K
e ′ (x ,r ) = (y, sl+1) = (y, 94739),
trong ®ã y = 00011101010111010111.
§Ó gi¶i m·, tr−íc hÕt ta t×m s0 tõ s21 = 94739. Ta cã
(p +1)/4 =96, (q +1)/4 =126.
Theo thuËt to¸n gi¶i m·:
a1 = 9621
mod382 =266,
a 2 = 12621
mod502 = 486.
Tõ ®ã tÝnh ®−îc
b1 = 94739266
mod383 =67,
b 2 = 94739486
mod503 = 126.
Gi¶i hÖ ph−¬ng tr×nh ®ång d−:
( )
0
0
67 mod383
126(mod503)
s
s
⎧ ≡
⎪
⎨
≡
⎪
⎩
114
ta ®−îc s 0=20749, tõ ®ã tÝnh l¹i ®−îc d·y z, céng mod2 tõng bit víi
y ta l¹i thu ®−îc b¶n râ x .
115
CH¦¥NG V
Bµi to¸n x¸c nhËn vµ
ch÷ ký ®iÖn tö
5.1. Bµi to¸n x¸c nhËn vµ s¬ ®å ch÷ ký.
5.1.1. §Æt vÊn ®Ò.
Trong ch−¬ng I, tiÕt 1.3, ta ®· liÖt kª mét sè bµi to¸n chñ yÕu
vÒ an toµn th«ng tin, trong ®ã ngoµi bµi to¸n quan träng nhÊt lµ b¶o
mËt th«ng tin th× c¸c bµi to¸n kÕ tiÕp lµ: x¸c nhËn th«ng b¸o vµ x¸c
nhËn ng−êi göi (cïng víi th«ng b¸o), x−ng danh vµ x¸c nhËn danh
tÝnh cña mét chñ thÓ giao dÞch, v.v... Bµi to¸n b¶o mËt ®−îc ®¸p
øng b»ng c¸c gi¶i ph¸p mËt m· ®· lµ néi dung cña c¸c ch−¬ng III
vµ IV, trong ch−¬ng nµy vµ ch−¬ng sau ta sÏ ®Ò cËp ®Õn c¸c bµi
to¸n x¸c nhËn vµ nhËn thøc kÓ trªn, ch−¬ng V nµy sÏ dµnh cho bµi
to¸n x¸c nhËn th«ng b¸o vµ ng−êi göi th«ng b¸o, ch−¬ng VI tiÕp
theo sÏ xÐt bµi to¸n x−ng danh vµ x¸c nhËn danh tÝnh.
Trong c¸ch thøc truyÒn thèng, th«ng b¸o ®−îc truyÒn ®i
trong giao dÞch th−êng d−íi d¹ng c¸c v¨n b¶n viÕt tay hoÆc ®¸nh
m¸y ®−îc kÌm thªm ch÷ ký (viÕt tay) cña ng−êi göi ë bªn d−íi v¨n
b¶n. Ch÷ ký ®ã lµ b»ng chøng x¸c nhËn th«ng b¸o ®óng lµ cña
ng−êi ký, tøc lµ cña chñ thÓ giao dÞch, vµ nÕu tê giÊy mang v¨n b¶n
kh«ng bÞ c¾t, d¸n, tÈy, xo¸, th× tÝnh toµn vÑn cña th«ng b¸o còng
®−îc chøng thùc bëi ch÷ ký ®ã. Ch÷ ký viÕt tay cã nhiÒu −u ®iÓm
quen thuéc nh− dÔ kiÓm thö, kh«ng sao chÐp ®−îc, ch÷ ký cña mét
ng−êi lµ gièng nhau trªn nhiÒu v¨n b¶n, nh−ng mçi ch÷ ký g¾n liÒn
víi mét v¨n b¶n cô thÓ, v.v...
Khi chuyÓn sang c¸ch thøc truyÒn tin b»ng ph−¬ng tiÖn hiÖn
®¹i, c¸c th«ng b¸o ®−îc truyÒn ®i trªn c¸c m¹ng truyÒn tin sè ho¸,
b¶n th©n c¸c th«ng b¸o còng ®−îc biÓu diÔn d−íi d¹ng sè ho¸, tøc
d−íi d¹ng c¸c d·y bit nhÞ ph©n, “ch÷ ký” nÕu cã còng ë d−íi d¹ng
c¸c d·y bit, th× c¸c mèi quan hÖ tù nhiªn kÓ trªn kh«ng cßn gi÷
®−îc n÷a. Ch¼ng h¹n, “ch÷ ký” cña mét ng−êi göi trªn nh÷ng v¨n
b¶n kh¸c nhau ph¶i thÓ hiÖn ®−îc sù g¾n kÕt tr¸ch nhiÖm cña
115
ng−êi göi ®èi víi tõng v¨n b¶n ®ã th× tÊt yÕu ph¶i kh¸c nhau chø
kh«ng thÓ lµ nh÷ng ®o¹n bit gièng nhau nh− c¸c ch÷ ký gièng
nhau trªn c¸c v¨n b¶n th«ng th−êng. Ch÷ ký viÕt tay cã thÓ ®−îc
kiÓm thö b»ng c¸ch so s¸nh víi nguyªn mÉu, nh−ng “ch÷ ký” ®iÖn
tö th× kh«ng thÓ cã “nguyªn mÉu” ®Ó mµ so s¸nh, viÖc kiÓm thö
ph¶i ®−îc thùc hiÖn b»ng nh÷ng thuËt to¸n ®Æc biÖt. Mét vÊn ®Ò
n÷a lµ viÖc sao chÐp mét v¨n b¶n cïng ch÷ ký. NÕu lµ v¨n b¶n cïng
ch÷ ký viÕt tay th× dÔ ph©n biÖt b¶n gèc víi b¶n sao, do ®ã khã mµ
dïng l¹i ®−îc mét v¨n b¶n cã ch÷ ký thËt. Cßn víi v¨n b¶n ®iÖn tö
cïng ch÷ ký ®iÖn tö th× cã thÓ nh©n b¶n sao chÐp tuú thÝch, khã mµ
ph©n biÖt ®−îc b¶n gèc víi b¶n sao, cho nªn nguy c¬ dïng l¹i
nhiÒu lÇn lµ cã thùc, do ®ã cÇn cã nh÷ng biÖn ph¸p ®Ó tr¸nh nguy
c¬ ®ã.
Mét “ch÷ ký”, nÕu muèn thÓ hiÖn ®−îc tr¸ch nhiÖm cña
ng−êi göi trªn toµn v¨n b¶n, th× ph¶i mang ®−îc mét chót g¾n bã
nµo ®ã víi tõng bit th«ng tin cña v¨n b¶n, v× vËy, theo h×nh dung
ban ®Çu, ®é dµi cña ch÷ ký còng ph¶i dµi theo ®é dµi cña v¨n b¶n;
®Ó cã ®−îc “ch÷ ký ng¾n” nh− trong tr−êng hîp viÕt tay ng−êi ta
ph¶i dïng mét kü thuËt riªng gäi lµ hµm b¨m mµ ta sÏ tr×nh bµy ë
cuèi ch−¬ng. B©y giê, tr−íc hÕt ta sÏ giíi thiÖu ®Þnh nghÜa vÒ s¬ ®å
ch÷ ký (®iÖn tö).
5.1.2. §Þnh nghÜa s¬ ®å ch÷ ký.
§Þnh nghÜa 5.1. Mét s¬ ®å ch÷ ký S lµ mét bé n¨m
S = (P, A, K, S, V ),
trong ®ã: P lµ mét tËp h÷u h¹n c¸c th«ng b¸o cã thÓ cã,
A lµ mét tËp h÷u h¹n c¸c ch÷ ký cã thÓ cã,
K lµ mét tËp h÷u h¹n c¸c kho¸, mçi kho¸ K ∈ K gåm cã
hai phÇn K =(K’,K''), K' lµ kho¸ bÝ mËt dµnh cho viÖc ký, cßn K'' lµ
kho¸ c«ng khai dµnh cho viÖc kiÓm thö ch÷ ký.
Víi mçi K =(K’,K''), trong S cã mét thuËt to¸n ký P → A , vµ
trong Vcã mét thuËt to¸n kiÓm thö P ×A →{®óng,sai} tho¶
m·n ®iÒu kiÖn sau ®©y ®èi víi mäi th«ng b¸o x∈P vµ mäi ch÷ ký
y∈A :
' :
K
sig
 :
K
ver

K
ver (x, y) = ®óng ⇔ y = '
K
sig (x ).
Víi s¬ ®å trªn, mçi chñ thÓ së h÷u mét bé kho¸ K =(K’,K''), c«ng bè
c«ng khai kho¸ K'' ®Ó mäi ng−êi cã thÓ kiÓm thö ch÷ ký cña m×nh,
vµ gi÷ bÝ mËt kho¸ K’ ®Ó thùc hiÖn ch÷ ký trªn c¸c th«ng b¸o mµ
116
m×nh muèn göi ®i. C¸c hµm 
K
ver vµ '
K
sig (khi biÕt K’ ) ph¶i tÝnh
®−îc mét c¸ch dÔ dµng (trong thêi gian ®a thøc), tuy nhiªn hµm
y = '
K
sig (x ) lµ khã tÝnh ®−îc nÕu kh«ng biÕt K’ - ®iÒu ®ã b¶o ®¶m
bÝ mËt cho viÖc ký, còng tøc lµ b¶o ®¶m chèng gi¶ m¹o ch÷ ký.
Bµi to¸n x¸c nhËn víi ch÷ ký ®iÖn tö, theo mét nghÜa nµo ®ã,
cã thÓ xem lµ « ®èi ngÉu » víi bµi to¸n b¶o mËt b»ng mËt m·, nh−
®−îc minh ho¹ bëi thÝ dô s¬ ®å ch÷ ký RSA, ®èi ngÉu víi s¬ ®å
mËt m· RSA, d−íi ®©y :
5.1.3. S¬ ®å ch÷ ký RSA.
S¬ ®å ch÷ ký RSA ®−îc cho bëi bé n¨m
S = (P, A, K, S, V ),
trong ®ã P =A =Zn , víi n =p.q lµ tÝch cña hai sè nguyªn tè lín p,q,
K lµ tËp c¸c cÆp kho¸ K =(K’,K''), víi K’ = a vµ K'' = (n,b), a vµ b lµ
hai sè thuéc n
Z∗
tho¶ m·n a.b ≡ 1(modφ(n)). C¸c hµm '
K
sig vµ

K
ver ®−îc x¸c ®Þnh nh− sau:
'
K
sig (x) = xa
modn ,
K
ver ′′ (x,y ) = ®óng ⇔ x ≡ yb
(modn ).
DÔ chøng minh ®−îc r»ng s¬ ®å ®−îc ®Þnh nghÜa nh− vËy lµ hîp
thøc, tøc lµ víi mäi x∈P vµ mäi ch÷ ký y∈A:

K
ver (x, y) = ®óng ⇔ y = '
K
sig (x ).
Chó ý r»ng tuy hai vÊn ®Ò x¸c nhËn vµ b¶o mËt theo s¬ ®å
RSA lµ cã bÒ ngoµi gièng nhau, nh−ng néi dung cña chóng lµ hoµn
toµn kh¸c nhau: Khi A göi th«ng b¸o x cho B, ®Ó B cã c¨n cø x¸c
nhËn ®ã ®óng thùc lµ th«ng b¸o do A göi, A ph¶i göi kÌm theo ch÷
ký '
K
sig (x), tøc lµ A göi cho B (x, '
K
sig (x)), trong c¸c th«ng tin göi
®i ®ã, th«ng b¸o x hoµn toµn kh«ng ®−îc gi÷ bÝ mËt. Còng t−¬ng
tù nh− vËy, nÕu dïng s¬ ®å mËt m· RSA, khi mét chñ thÓ A nhËn
®−îc mét b¶n mËt m· K
e ′ (x) tõ B th× A chØ biÕt r»ng th«ng b¸o x
®−îc b¶o mËt, chø kh«ng cã g× ®Ó x¸c nhËn x lµ cña B.
NÕu ta muèn hÖ truyÒn tin cña ta võa cã tÝnh b¶o mËt võa cã
tÝnh x¸c nhËn, th× ta ph¶i sö dông ®ång thêi c¶ hai hÖ mËt m· vµ
x¸c nhËn (b»ng ch÷ ký). Gi¶ sö trªn m¹ng truyÒn tin c«ng céng, ta
cã c¶ hai hÖ mËt m· kho¸ c«ng khai S1 vµ hÖ x¸c nhËn b»ng ch÷ ký
S2. Gi¶ sö B cã bé kho¸ mËt m· K = (K', K'') víi K' = (n, e) vµ K'' = d
trong hÖ S1, vµ A cã bé kho¸ ch÷ ký ( , )
s s s
K K K
′ ′′
= víi vµ
trong hÖ S
s
K a
′ =
( , )
K n b
′′=
s 2. A cã thÓ göi ®Õn B mét th«ng b¸o võa b¶o
117
mËt võa cã ch÷ ký ®Ó x¸c nhËn nh− sau: A ký trªn th«ng b¸o x
tr−íc, råi thay cho viÖc göi ®Õn B v¨n b¶n cïng ch÷ ký (x, s
K
sig ′ (x))
th× A sÏ göi cho B b¶n mËt m· cña v¨n b¶n ®ã ®−îc lËp theo kho¸
c«ng khai cña B, tøc lµ göi cho B K
e ′ ((x, s
K
sig ′ (x)). NhËn ®−îc v¨n
b¶n mËt m· ®ã B sÏ dïng thuËt to¸n gi¶i m· K
d ′′ cña m×nh ®Ó thu
®−îc (x, s
K
sig ′ (x)), sau ®ã dïng thuËt to¸n kiÓm thö ch÷ ký c«ng
khai s
K
ver ′′ cña A ®Ó x¸c nhËn ch÷ ký s
K
sig ′ (x) ®óng lµ cña A trªn x.
5.2. S¬ ®å ch÷ ký ElGamal vµ chuÈn ch÷ ký ®iÖn tö.
5.2.1. S¬ ®å ch÷ ký ElGamal.
S¬ ®å ch÷ ký ElGamal ®−îc ®Ò xuÊt n¨m 1985, gÇn nh−
®ång thêi víi s¬ ®å hÖ mËt m· ElGamal, còng dùa trªn ®é khã cña
bµi to¸n l«garit rêi r¹c. S¬ ®å ®−îc thiÕt kÕ ®Æc biÖt cho môc ®Ých
ký trªn c¸c v¨n b¶n ®iÖn tö, ®−îc m« t¶ nh− mét hÖ
S = (P, A, K, S, V),
trong ®ã P = ,
p
Z∗
A = 1
p p
Z Z
∗
−
× , víi p lµ mét sè nguyªn tè sao cho
bµi to¸n tÝnh l«garit rêi r¹c trong p
Z∗
lµ rÊt khã. TËp hîp K gåm c¸c
cÆp kho¸ K =(K’,K''), víi K’ = a lµ mét sè thuéc p
Z∗
, K'' =(p, α, β ), α
lµ mét phÇn tö nguyªn thuû cña p
Z∗
, vµ β = α a
modp. K’ lµ kho¸ bÝ
mËt dïng ®Ó ký, vµ K'' lµ kho¸ c«ng khai dïng ®Ó kiÓm thö ch÷ ký.
C¸c thuËt to¸n ký vµ kiÓm thö ch÷ ký ®−îc x¸c ®Þnh nh− sau: Víi
mçi th«ng b¸o x, ®Ó t¹o ch÷ ký trªn x ta chän thªm m«t sè ngÉu
nhiªn k ∈ 1
p
Z∗
− , råi tÝnh
'
K
sig (x,k ) = ( , ),
γ δ víi
k
γ α
= modp,
1
( ).
x a k
δ γ −
= − mod(p -1).
ThuËt to¸n kiÓm thö ®−îc ®Þnh nghÜa bëi:

K
ver (x,( , )
γ δ ) = ®óng ⇔ β γ
.γδ
≡ α x
(modp).
DÔ thÊy r»ng s¬ ®å ch÷ ký ®−îc ®Þnh nghÜa nh− trªn lµ hîp
thøc. Thùc vËy, nÕu '
K
sig (x,k ) = ( , ),
γ δ th× ta cã :
β γ
.γδ
≡ αaγ
.αkδ
modp
≡ α x
modp,
v× kδ +aγ ≡ x mod(p -1). Do ®ã, 
K
ver (x,( , )
γ δ ) = ®óng.
118
ThÝ dô: Gi¶ sö p = 467, α = 2, a = 127. Khi ®ã β = 2127
mod467=132.
Cho x =100; ta chän ngÉu nhiªn k =213 (∈ 466
Z∗
) vµ ®−îc k -1
mod466
=431. Ch÷ ký trªn v¨n b¶n x =100 víi sè ngÉu nhiªn k =213 lµ (γ, δ),
trong ®ã γ =2213
mod467 = 29 vµ δ = (100 - 127.29).431mod466 =51.
§Ó kiÓm thö ta tÝnh :
β γ
.γδ
= 13229
.2951
≡ 189 (mod467),
α x
= 2100
≡ 189 (mod467),
hai gi¸ trÞ ®ã ®ång d− víi nhau theo mod467, ch÷ ký(γ, δ)=(29,51)
®−îc x¸c nhËn lµ ®óng.
5.2.2. TÝnh an toµn cña s¬ ®å ch÷ ký ElGamal.
S¬ ®å ch÷ ký ElGamal ®−îc xem lµ an toµn, nÕu viÖc ký trªn
mét v¨n b¶n lµ kh«ng thÓ gi¶ m¹o ®−îc, nãi c¸ch kh¸c, kh«ng thÓ
cã mét ng−êi nµo ngoµi chñ thÓ hîp ph¸p cã thÓ gi¶ m¹o ch÷ ký
cña chñ thÓ hîp ph¸p ®ã trªn mét v¨n b¶n bÊt kú. V× vËy, viÖc gi÷
bÝ mËt kho¸ dïng ®Ó t¹o ch÷ ký lµ cã ý nghÜa quyÕt ®Þnh ®èi
víi viÖc b¶o ®¶m tÝnh an toµn cña ch÷ ký. Cã thÓ ®Ó lé kho¸ bÝ mËt
trong nh÷ng tr−êng hîp nµo, vµ cã thÓ kh«ng ®Ó lé
mµ vÉn gi¶ m¹o ch÷ ký ®−îc kh«ng? Ta sÏ xÐt sau ®©y mét vµi
tr−êng hîp ®¬n gi¶n :
K′ = a
a
K′ = K a
′ =
1) Kh¶ n¨ng ®Ó lé kho¸ K a
′ = : Còng nh− ®èi víi s¬ ®å hÖ
mËt m· ElGamal, kho¸ bÝ mËt a cã thÓ bÞ ph¸t hiÖn trong tr−êng
hîp ®Ó lé sè ngÉu nhiªn k ë mét lÇn ký nµo ®ã, hoÆc sö dông cïng
mét sè ngÉu nhiªn k ë hai lÇn ký kh¸c nhau.
NÕu sè ngÉu nhiªn k ®−îc sö dông khi ký trªn v¨n b¶n x bÞ
lé, th× kho¸ bÝ mËt K a
′ = ®−îc tÝnh theo c«ng thøc sau ®©y:
a = (x - kδ ). γ -1
mod(p –1).
B©y giê ta xÐt tr−êng hîp dïng cïng mét sè ngÉu nhiªn k
cho hai lÇn ký kh¸c nhau, ch¼ng h¹n cho x1 vµ x2. Khi ®ã ta cã ch÷
ký trªn x1 lµ (γ ,δ 1), trªn x2 lµ (γ ,δ 2), víi thµnh phÇn thø nhÊt b»ng
nhau (vµ b»ng γ =αk
modp), vµ c¸c ch÷ ký ®ã tho¶ m·n
1
. x
δ
γ 1
β γ α
≡ (modp),
2
. x
δ
γ 2
β γ α
≡ (modp).
Tõ ®ã ta cã
1 2 1 2 1 2
(
x x k )
δ δ δ
α γ α
− − −
≡ ≡ δ
(modp),
®iÒu ®ã t−¬ng ®−¬ng víi
x1 - x2 ≡ k (δ1 - δ2) (mod(p -1)).
§Æt d = gcd(δ1 - δ 2, p -1). C¶ ba sè δ1 - δ 2, p -1 vµ x 1 - x2 ®Òu chia hÕt
cho d, ta ®Æt
119
1 2 1 2 1
, ,
x x p
x p .
δ δ
δ
− − −
′ ′ ′
= = =
d d d
Khi ®ã ®ång d− thøc ë trªn trë thµnh
.
x k δ
′ ′
≡ (mod p′).
V× gcd( , )
p
δ′ ′ =1, nªn cã thÓ tÝnh 1
ε δ −
′
= mod p′, vµ sau ®ã gi¸ trÞ k
theo mod : k =
p′ .
x ε
′ mod p′, tøc lµ
k = . .
x i p
ε
′ ′
+ mod(p -1)
víi i lµ mét gi¸ trÞ nµo ®ã, 0≤ i ≤ d –1. Thö lÇn l−ît ®iÒu kiÖn
k
γ α
= modp
víi c¸c gi¸ trÞ ®ã cña i , ta sÏ t×m ®−îc k ;sau ®ã tõ k tÝnh ®−îc a cÇn
t×m.
2) Kh¶ n¨ng gi¶ m¹o ch÷ ký trªn mét v¨n b¶n cho tr−íc :
Gi¶ sö chñ thÓ A chän s¬ ®å ch÷ ký ElGamal víi cÆp kho¸ K
=(K’,K''), trrong ®ã K a
′ = lµ kho¸ bÝ mËt. Mét ng−êi ngoµi O kh«ng
biÕt kho¸ bÝ mËt K a
′ = mµ muèn gi¶ m¹o ch÷ ký cña A trªn mét
v¨n b¶n x th× ph¶i cã kh¶ n¨ng t¹o ra ®−îc ch÷ ký (γ,δ ) mµ kh«ng
cÇn biÕt a. Cã hai c¸ch : hoÆc chän tr−íc γ råi t×m δ t−¬ng øng, hoÆc
ng−îc l¹i, chän tr−íc δ råi t×m γ t−¬ng øng.
NÕu chän tr−íc γ råi t×m δ , th× δ ph¶i lµ
1
( )
x a k
δ γ −
= − mod(p -1) = (( )log
x a γ
γ α
− mod(p -1)
= log ( ).log log
x x
γ γ
α γ γ
α β α α β
− −
= mod(p -1);
®ã lµ mét bµi to¸n tÝnh l«garit rêi r¹c, mµ ta biÕt r»ng rÊt khã.
NÕu chän tr−íc δ råi t×m γ th× ph¶i gi¶i ph−¬ng tr×nh
. x
γ δ
β γ α
≡ modp
víi Èn sè γ . Ta ch−a biÕt cã c¸ch gi¶i h÷u hiÖu nµo kh«ng, nh−ng
ch¾c lµ kh«ng dÔ h¬n bµi to¸n tÝnh l«garit rêi r¹c.
Nh− vËy, ta cã thÓ tin r»ng kh¶ n¨ng gi¶ m¹o ch÷ ký trªn
mét v¨n b¶n cho tr−íc khi kh«ng biÕt kho¸ bÝ mËt lµ rÊt Ýt,
do ®ã kh«ng cã ¶nh h−ëng ®¸ng kÓ ®Õn tÝnh an toµn cña s¬ ®å ch÷
ký.
K′ = a
3)Gi¶ m¹o ch÷ ký cïng víi v¨n b¶n ®−îc ký :
Cã mét kh¶ n¨ng gi¶ m¹o kh¸c lµ gi¶ m¹o c¶ v¨n b¶n göi ®i
x cïng víi ch÷ ký (γ,δ ) trªn x. Kh¶ n¨ng ®ã xÈy ra khi kÎ gi¶ m¹o
chän ®−îc x vµ (γ,δ ) tho¶ m·n ®iÒu kiÖn kiÓm thö, cô thÓ khi chän
®−îc x,γ,δ cã d¹ng sau ®©y :
.
i j
γ α β
= modp,
120
1
.j
δ γ −
= − mod(p -1),
1
. .
x i j
γ −
= − mod(p -1),
trong ®ã i, j lµ c¸c sè nguyªn sao cho 0≤ i, j ≤ p –2, gcd(j, p –1) = 1, vµ
j –1
®−îc tÝnh theo mod(p –1). Thùc vËy, khi ®ã ta cã
1
.
. ( )
i j j
γ δ γ γ
β γ β α β
−
−
≡ modp
1
. .
i j
γ γ γ
β α β
−
− −
≡ modp
x
α
≡ modp ,
tøc ®iÒu kiÖn kiÓm thö ®−îc tho¶ m·n, (γ,δ ) cã thÓ ®−îc x¸c nhËn
hîp thøc lµ ch÷ ký trªn x.
Cã thÓ cã mét c¸ch gi¶ m¹o kh¸c n÷a, nÕu kÎ gi¶ m¹o sö
dông ch÷ ký ®óng (γ,δ ) trªn mét v¨n b¶n x cã tõ tr−íc ®Ó t¹o ra
mét ch÷ ký ( , )
λ µ míi cho mét v¨n b¶n “míi” x′ nh− sau:
. .
h i j
λ γ α β
= modp,
1
(h j )
µ δλ γ δ −
= − mod(p -1),
1
( )( )
x hx i h j
λ δ γ δ −
′= + − mod(p -1).
Cã thÓ thö l¹i r»ng ®iÒu kiÖn kiÓm thö ®óng ®èi víi “ch÷ ký”
( , )
λ µ vµ “v¨n b¶n” x′ , tøc lµ
. x
λ µ
β λ α ′
≡ modp.
C¶ hai c¸ch gi¶ m¹o nãi trªn ®Òu cho ch÷ ký tho¶ m·n ®iÒu
kiÖn kiÓm thö ®èi víi v¨n b¶n t−¬ng øng, tuy nhiªn v¨n b¶n ®ã
kh«ng ph¶i lµ v¨n b¶n ®−îc chän theo ý muèn cña ng−êi gi¶ m¹o,
cho nªn kh¶ n¨ng sö dông c¸c c¸ch gi¶ m¹o ®ã trong thùc tÕ còng
kh«ng cã gi¸ trÞ , do ®ã kh«ng thÓ g©y nguy h¹i ®¸ng kÓ cho tÝnh an
toµn cña s¬ ®å ch÷ ký nãi chung.
5.2.3. ChuÈn ch÷ ký sè (Digital Signature Standard).
ChuÈn ch÷ ký sè (DSS) ®−îc ®Ò xuÊt tõ n¨m 1991 vµ ®−îc
chÊp nhËn vµo cuèi n¨m 1994 ®Ó sö dông trong mét sè lÜnh vùc
giao dÞch ®iÖn tö t¹i Hoa kú. DSS dùa vµo s¬ ®å ch÷ ký ElGamal,
víi mét vµi söa ®æi. §Ó b¶o ®¶m an toµn , sè nguyªn tè p cÇn ph¶i
®ñ lín, biÓu diÔn nhÞ ph©n cña p ph¶i cã tõ 512 bit trë lªn (cô thÓ tõ
512 ®Õn 1024 bit, sè bit lµ mét béi cña 64). Tuy nhiªn, ®é dµi ch÷ ký
theo s¬ ®å ElGamal lµ gÊp ®«i sè bit cña p, mµ trong nhiÒu øng
dông ng−êi ta l¹i mong muèn cã ch÷ ký ®é dµi ng¾n, nªn gi¶i ph¸p
söa ®æi ®−îc ®Ò xuÊt lµ: trong khi vÉn dïng p lín víi ®é dµi biÓu
diÔn 512 bit trë lªn, th× sÏ h¹n chÕ ®é dµi cña γ vµ δ trong ch÷ ký
(γ,δ ) vµo kho¶ng 160 bit (nh− vËy c¶ ch÷ ký sÏ cã ®é dµi kho¶ng
320 bit); ®iÒu nµy ®−îc thùc hiÖn b»ng c¸ch dïng mét nhãm con
cyclic q
Z∗
cña p
Z∗
thay cho chÝnh b¶n th©n p
Z∗
, do ®ã mäi tÝnh to¸n
121
vÉn ®−îc thùc hiÖn nh− trong p
Z∗
nh−ng c¸c d÷ liÖu vµ thµnh phÇn
ch÷ ký l¹i thuéc q
Z∗
. Ta ®−îc s¬ ®å chuÈn ch÷ ký sè DSS nh− m«
t¶ sau ®©y:
Chän p lµ mét sè nguyªn tè lín cã ®é dµi biÓu diÔn ≥ 512 bit
sao cho bµi to¸n tÝnh logarit rêi r¹c trong Zp lµ khã, q lµ mét −íc sè
nguyªn tè cña p -1, cã ®é dµi biÓu diÔn cì 160 bit. Gäi α ∈ p
Z∗
lµ mét
c¨n bËc q cña 1 theo modp.
§Æt P = p
Z∗
, A = q
Z∗
× q
Z∗
. Chän q
a Z∗
∈ vµ tÝnh a
β α
≡ modp.
X¸c ®Þnh kho¸ K =(K’,K''), trong ®ã kho¸ bÝ mËt K’ = a, vµ kho¸
c«ng khai K'' = (p,q,α,β). ThuËt to¸n ký vµ thuËt to¸n kiÓm thö ®−îc
®Þnh nghÜa nh− sau: Víi x ∈ P = p
Z∗
, ta chän thªm mét sè ngÉu
nhiªn k (0≤k ≤ q -1), vµ ®Þnh nghÜa ch÷ ký
'
K
sig (x,k ) = ( , ),
γ δ trong ®ã
( k
γ α
= modp) modq,
1
( ).
x a k
δ γ −
= + modq.
ThuËt to¸n kiÓm thö ®−îc ®Þnh nghÜa bëi:

K
ver (x,( , )
γ δ ) = ®óng ⇔ 1
( .
e e2
α β modp)modq = γ ,
trong ®ã 1
1 .
e xδ −
= modq vµ 1
2 .
e γ δ −
= modq.
Chó ý r»ng ta ph¶i cã δ ≠ 0 modq ®Ó cã thÓ tÝnh ®−îc δ -1
modq
dïng trong thuËt to¸n kiÓm thö, v× vËy nÕu chän k mµ ®−îc δ ≡ 0
modq th× ph¶i chän l¹i sè k kh¸c ®Ó cã ®−îc δ ≠ 0 modq.
5.3. Hµm b¨m vµ ch÷ ký.
5.3.1. Hµm b¨m (hash function).
Trong c¸c phÇn trªn, ta ®· giíi thiÖu mét vµi s¬ ®å ch÷ ký
®iÖn tö. Theo c¸c s¬ ®å ®ã, ch÷ ký ®−îc x¸c ®Þnh cho tõng khèi cña
v¨n b¶n, vµ nÕu v¨n b¶n gåm nhiÒu khèi th× ch÷ ký cho toµn v¨n
b¶n còng ph¶i do ghÐp ch÷ ký trªn tõng khèi l¹i víi nhau mµ
thµnh; mµ ch÷ ký trªn tõng khèi v¨n b¶n th−êng cã ®é dµi b»ng
(hoÆc thËm chÝ gÊp ®«i) ®é dµi cña khèi v¨n b¶n, do ®ã ch÷ ký
chung còng cã ®é dµi t−¬ng ®−¬ng víi ®é dµi v¨n b¶n. §ã lµ mét
®iÒu bÊt tiÖn. Ta mong muèn, nh− trong tr−êng hîp viÕt tay, ch÷
ký chØ cã ®é dµi ng¾n vµ h¹n chÕ cho dï v¨n b¶n cã thÓ dµi bao
nhiªu còng ®−îc. §èi víi ch÷ ký ®iÖn tö, v× ch÷ ký ph¶i ®−îc “ký”
cho tõng bit cña v¨n b¶n, nªn muèn cã ch÷ ký ®é dµi h¹n chÕ trªn
v¨n b¶n cã ®é dµi tuú ý th× ph¶i t×m c¸ch rót ng¾n ®é dµi v¨n b¶n.
Nh−ng b¶n th©n v¨n b¶n kh«ng thÓ rót ng¾n ®−îc, nªn chØ cßn
c¸ch lµ t×m cho mçi v¨n b¶n mét b¶n “tãm l−îc” cã ®é dµi h¹n chÕ,
råi thay cho viÖc ký trªn toµn bé v¨n b¶n, ta ký trªn b¶n tãm l−îc
122
®ã, xem ch÷ ký trªn b¶n tãm l−îc cã t− c¸ch lµ ch÷ ký trªn v¨n b¶n.
Gi¶ sö Σ lµ tËp hîp tÊt c¶ c¸c v¨n b¶n cã thÓ cã (tÊt nhiªn, trong mét
lÜnh vùc nµo ®ã), vµ ∆ lµ tËp hîp tÊt c¶ c¸c b¶n “tãm l−îc” cã thÓ
®−îc sö dông. ViÖc t×m cho mçi v¨n b¶n mét b¶n tãm l−îc t−¬ng
øng x¸c ®Þnh mét hµm h : Σ → ∆. Mét hµm h nh− vËy ng−êi ta gäi
lµ mét hµm b¨m (hash function). Th«ng th−êng, Σ lµ tËp hîp c¸c
d·y bit cã ®é dµi tuú ý, vµ ∆ lµ tËp hîp c¸c d·y bit cã mét ®é dµi n
cè ®Þnh, nªn ng−êi ta còng ®Þnh nghÜa hµm b¨m lµ c¸c hµm h : Σ →
∆ víi c¸c tËp hîp Σ vµ ∆ ®ã (tøc c¸c hµm h : { } { }
0,1 0,1
n
∗
→ ).
Dïng hµm b¨m h , ta xem z = h(x) lµ “tãm l−îc” cña x , ®¹i
diÖn cho x, vµ ta sÏ xem ch÷ ký trªn z lµ ch÷ ký trªn v¨n b¶n x ; v× z
cã ®é dµi h¹n chÕ, nªn ch÷ ký trªn x còng cã ®é dµi h¹n chÕ.
Mét vÊn ®Ò ®−îc ®Æt ra lµ: vËy hµm h : Σ → ∆ ph¶i tho¶ m·n
nh÷ng ®iÒu kiÖn g× ®Ó h(x) xøng ®¸ng ®−îc xem lµ ®¹i diÖn cña x
trong viÖc t¹o lËp ch÷ ký ? Hai ®iÒu kiÖn sau ®©y th−êng ®−îc
ng−êi ta xem lµ hai ®iÒu kiÖn chñ yÕu cho mét hµm b¨m:
1. Hµm b¨m ph¶i lµ hµm mét phÝa, nghÜa lµ cho x tÝnh z = h(x)
lµ viÖc dÔ, nh−ng ng−îc l¹i, biÕt z tÝnh x lµ viÖc cùc khã (cã thÓ qui
−íc dÔ hay khã theo nghÜa tÝnh ®−îc trong thêi gian ®a thøc hay
kh«ng).
2. Hµm b¨m ph¶i lµ hµm kh«ng va ch¹m m¹nh theo nghÜa sau
®©y: kh«ng cã thuËt to¸n tÝnh ®−îc trong thêi gian ®a thøc gi¶i bµi
to¸n “ t×m x1 vµ x2 thuéc Σ sao cho x1 ≠ x2 vµ h (x1) =h (x2)”; nãi c¸ch
kh¸c, t×m hai v¨n b¶n kh¸c nhau cã cïng mét ®¹i diÖn lµ cùc kú
khã.
(Cßn cã mét kh¸i niÖm kh«ng va ch¹m yÕu ®−îc ®Þnh nghÜa
nh− sau: Cho x ∈Σ. Hµm h lµ kh«ng va ch¹m yÕu ®èi víi x nÕu rÊt
khã t×m ®−îc ∈Σ,
x′ x′ ≠ x vµ h ( x′ ) = h (x )).
Ta mong muèn ®é dµi cña ch÷ ký lµ ng¾n, tøc lµ ®é dµi cña
c¸c tãm l−îc còng ng¾n. Nh−ng ng¾n bao nhiªu lµ võa? Ng¾n bao
nhiªu th× cã thÓ b¶o ®¶m tÝnh kh«ng va ch¹m m¹nh? Vµ ë ®©y ta
gÆp mét kiÓu “tÊn c«ng”, th−êng ®−îc gäi lµ “tÊn c«ng ngµy sinh”
cã liªn quan ®Õn kh¶ n¨ng va ch¹m m¹nh, nãi r»ng trong mét
nhãm gåm 23 ng−êi ®−îc chän mét c¸ch ngÉu nhiªn th× Ýt nhÊt cã
hai ng−êi cã cïng ngµy sinh (tøc cã va ch¹m m¹nh!). Mét c¸ch tæng
qu¸t, ng−êi ta chøng minh ®−îc r»ng: NÕu cã tÊt c¶ n b¶n tãm l−îc,
vµ
1
2 ln ,
1
k n
ε
≈
−
th× trong k v¨n b¶n ®−îc chän ngÉu nhiªn cã Ý
nhÊt mét va ch¹m m¹nh (tøc cã
t
x′ ≠ x vµ h ( x′ ) = h (x )) víi x¸c suÊt
ε.
123
Khi
1
2
ε = , ta cã 1,17
k ≈ n . Trong tr−êng hîp ngµy sinh, ta
cã n =365, do ®ã 22,3 23.
k ≈ ≈
Trë l¹i víi vÊn ®Ò chän ®é dµi (cña biÓu diÔn nhÞ ph©n) cho
c¸c tãm l−îc, nÕu ta lÊy ch¼ng h¹n ®é dµi 40 bit, th× n = 240
, vµ do
®ã tõ k ≈ 220
(kho¶ng mét triÖu) v¨n b¶n sÏ cã mét va ch¹m m¹nh
víi x¸c suÊt 1/2, nh− vËy khã b¶o ®¶m ®−îc an toµn. Nh−ng nÕu ta
lÊy dé dµi cña b¶n tãm l−îc lµ 128, tøc n =2128
, th× va ch¹m m¹nh cã
thÓ xÈy ra víi x¸c suÊt 1/2 khi sè c¸c v¨n b¶n cã thÓ lµ k ≈ 264
, mét
con sè kh¸ lín (so víi sè v¨n b¶n cã thÓ nÈy sinh trong thùc tÕ), do
®ã hy väng tÝnh an toµn sÏ ®−îc b¶o ®¶m. Cã thÓ v× vËy mµ trong
chuÈn DSS ng−êi ta chän ®é dµi cña c¸c tãm l−îc lµ 160 bit.
5.3.2. Hµm b¨m Chaum-van Heijst-Pfitzmann.
D−íi ®©y ta sÏ giíi thiÖu mét thÝ dô cô thÓ vÒ mét hµm b¨m
®−îc x©y dùng dùa trªn tÝnh khã cña bµi to¸n l«garit rêi r¹c, do c¸c
t¸c gi¶ Chaum, van Heijst vµ Pfitzmann ®Ò xuÊt n¨m 1992. Hµm
b¨m ®ã ®−îc x©y dùng nh− sau:
Gi¶ sö p lµ mét sè nguyªn tè lín d¹ng Sophie Germain, tøc
cã d¹ng p = 2q +1, trong ®ã q còng lµ sè nguyªn tè. Chän α vµ β lµ
hai phÇn tö nguyªn thuû cña p
Z∗
. ViÖc tÝnh logα β , khi biÕt α vµ β ,
lµ rÊt khã. Hµm b¨m { }
: q q p
h Z Z Z
× → − 0 ®−îc ®Þnh nghÜa nh− sau:
víi mäi 1 2
, q
x x Z
∈ ta cã
1
1 2
( , ) .
x x
h x x 2
α β
= modp.
Ta gäi hµm b¨m h ®−îc ®Þnh nghÜa nh− vËy lµ hµm b¨m
Chaum-van Heijst-Pfitzmann. Hµm b¨m ®ã cã c¸c tÝnh chÊt lµ hµm
mét phÝa vµ kh«ng va ch¹m m¹nh nh− yªu cÇu ®èi víi mét hµm
b¨m. TÝnh mét phÝa cña hµm ®ã ®−îc suy ra tõ tÝnh mét phÝa cña
hµm l«garit rêi r¹c. Cßn tÝnh kh«ng va ch¹m m¹nh cña h ®−îc
chøng minh bëi ®Þnh lý sau ®©y : NÕu biÕt mét va ch¹m m¹nh ®èi
víi h th× cã thÓ tÝnh ®−îc logα β mét c¸ch cã hiÖu qu¶.
Gi¶ sö cã mét va ch¹m
1 2 3 4
( , ) ( , ),
h x x h x x
=
trong ®ã (x1,x2) ≠ (x3,x4). Nh− vËy ta cã
3
1 2
. x
x x x4
.
α β α β
≡ (modp),
tøc lµ
1 3 4 2
x x x x
α β
− −
≡ (modp).
§Æt d =gcd(x4 - x2, p -1). V× p -1 = 2q vµ q lµ sè nguyªn tè, nªn ta cã
d ∈ {1,2,q, p -1}. Ta xÐt lÇn l−ît bèn kh¶ n¨ng ®ã cña d.
Gi¶ sö d =1. Khi ®ã, ®Æt y = (x4 - x2)-1
mod(p -1), ta cã
124
(modp)
4 2
( )
x x y
β β −
≡
(modp),
1 3
( )
x x y
α −
≡
vµ ta cã thÓ tÝnh logarit rêi r¹c logα β nh− sau :
logα β = (x1 - x3)(x4 - x2)-1
mod(p –1).
B©y giê gi¶ sö d = 2. V× p -1 = 2q vµ q lµ sè lÎ, ta ph¶i cã
gcd(x4 - x2, q) =1. Còng ®Æt y = (x4 - x2)-1
modq, ta cã
(x4 - x2)y = kq +1
víi k lµ mét sè nguyªn nµo ®ã, vµ ta cã
4 2
( ) 1
x x y kq
β β
− +
≡ (modp)
( 1)k
β
≡ − (modp) (v× (modp))
1
q
β ≡ −
β
≡ ± (modp).
Nh− vËy ta cã
(modp)
1 3
4 2 ( )
( ) x x y
x x y
β α −
−
≡
β
≡ ± (modp).
Tõ ®ã suy ra
1 3
log ( )
x x y
α β = − mod(p -1)
hay lµ 1 3
log ( )
x x y
α β = − +q mod(p -1).
Cã thÓ thö ®Ó x¸c ®Þnh gi¸ trÞ nµo trong hai gi¸ trÞ ®ã ®óng lµ
logα β .
B©y giê ta xÐt trr−êng hîp d =q. V× 0 ≤ x2 , x4 ≤ q -1, nªn
-(q -1) ≤ x4 - x2 ≤ q -1.
Do ®ã kh«ng thÓ cã gcd(x4 - x2, p -1) = q, tr−êng hîp nµy kh«ng thÓ
xÈy ra.
Cuèi cïng lµ tr−êng hîp d = p -1. §iÒu nµy chØ xÈy ra nÕu x2
= x4. Nh−ng khi ®ã ta cã
3
1 2 2
x
x x x
α β α β
≡ (modp)
3
1 x
x
α α
≡ (modp)
vµ x1=x3. Nh− vËy (x1, x2) = (x3, x4), m©u thuÉn víi gi¶ thiÕt. VËy
tr−êng hîp nµy còng kh«ng thÓ xÈy ra. §Þnh lý nãi trªn ®−îc
chøng minh. Hµm b¨m Chaum-van Heijst-Pfitzmann lµ kh«ng va
ch¹m m¹nh.
Chó ý r»ng nÕu p cã ®é dµi biÓu diÔn nhÞ ph©n lµ t bit, tøc Zp
lµ tËp con cña ∆ ={0,1}t
, th× q cã ®é dµi t -1 bit, vµ Zq×Zq lµ tËp con
cña Σ = {0,1}m
víi m =2(t -1). Hµm b¨m h ®−îc ®Þnh nghÜa ë trªn cã
thÓ xem lµ hµm h : Σ → ∆. Víi môc ®Ých ch÷ ký, ta muèn cã nh÷ng
hµm b¨m h : Σ → ∆ víi ∆ lµ tËp c¸c tõ cã sè bit h¹n chÕ, nh−ng Σ l¹i
lµ tËp c¸c tõ cã ®é dµi tuú ý. Muèn vËy, ta ph¶i cã kh¶ n¨ng më
réng hµm b¨m; ®Þnh lý sau ®©y cho ta kh¶ n¨ng ®ã.
125
5.3.3. Më réng hµm b¨m.
B©y giê gi¶ sö h : 2
m
2
t
Z Z
→ (ë ®©y Z2 ={0,1}) lµ mét hµm b¨m
kh«ng va ch¹m m¹nh tho¶ m·n m ≥ t +1 (hµm b¨m trong môc trªn
tho· m·n ®iÒu kiÖn ®ã). Ta sÏ dïng h ®Ó x©y dùng mét hµm b¨m
nh− sau :
2
: t
h Z Z
∗ ∗
→ 2
Gi¶ sö x ∈ 2
Z∗
, ta c¾t x thµnh c¸c ®o¹n cã cïng ®é dµi l bit,
trong ®ã l = m-t-1, nÕu ®o¹n cuèi cïng ch−a cã ®ñ l bit, th× ta bæ
sung thªm c¸c bit 0 cho ®ñ, vµ ®Ó ghi nhí sù bæ sung ®ã (ch¼ng h¹n
lµ d bit) ta thªm cho x mét ®o¹n cuèi xk +1 lµ biÓu diÔn nhÞ ph©n l bit
cña sè d . Nh− vËy mçi x ∈ 2
Z∗
®−îc viÕt l¹i d−íi d¹ng
x = x1x2....xkxk +1,
trong ®ã víi mäi i =1,2,...,k, k +1, xi 2
l
Z
∈ (ta chó ý r»ng nÕu biÕt x
d−íi d¹ng nµy ta sÏ kh«i phôc l¹i ®−îc x ë d¹ng gèc ban ®Çu). Ta
®Þnh nghÜa mét c¸ch ®Ö qui d·y tõ g1, g2,..., gk +1 2
t
Z
∈ vµ hµm h∗
nh− sau :
g1 = h (0t +1
x1),
gi+1=h (gi1xi+1) (i =1,...,k)
h∗
(x) = gk+1 .
Nh− vËy, gi¸ trÞ cña hµm b¨m h∗
lµ mét tõ cã ®é dµi t bit.
Ng−êi ta chøng minh ®−îc ®Þnh lý sau ®©y : NÕu hµm b¨m h cã
tÝnh chÊt kh«ng va ch¹m m¹nh th× hµm b¨m më réng còng cã
tÝnh chÊ kh«ng va ch¹m m¹nh.
h∗
t
5.3.4. X©y dùng hµm b¨m tõ c¸c hÖ mËt m·.
Cã mét ph−¬ng ph¸p chung ®Ó x©y dùng hµm b¨m lµ sö
dông c¸c hÖ mËt m· kho¸ ®èi xøng. Gi¶ sö (P , C , K , E , D ) lµ mét hÖ
mËt m· kho¸ ®èi xøng mµ ®é an toµn ®· ®−îc thö nghiÖm. §Ó tiÖn
tr×nh bµy, ta cã thÓ gi¶ thiÕt r»ng P =C =K = 2
n
Z . Nªn chän n kh¸
lín, cì n ≥ 128 ®Ó tr¸nh kiÓu “tÊn c«ng ngµy sinh”. Ch¼ng h¹n, cã
thÓ chän hÖ mËt m· ®ã lµ hÖ DES (cã thÓ víi nh÷ng ®iÒu chØnh cÇn
thiÕt ®Ó cã ®é dµi c¸c ký tù trong P , C , K thÝch hîp). XuÊt ph¸t tõ
hµm lËp mËt m· E ta x¸c ®Þnh mét hµm f : 2
n
Z × 2
n
Z → 2
n
Z sao cho víi
mäi (x ,y) ∈ 2
n
Z × 2
n
Z , gi¸ trÞ cña f(x, y) ®−îc tÝnh theo x, y vµ hµm E .
B©y giê gi¶ sö cho x ∈ 2
Z∗
. Nh− trong môc trªn, ta cã thÓ viÕt
x d−íi d¹ng ghÐp nèi liªn tiÕp cña k ®o¹n ký tù, mçi ®o¹n cã n bit :
x = x1x2....xk .
TiÕp ®ã, ta chän mét gi¸ trÞ ban ®Çu g0∈ 2
n
Z , vµ x©y dùng tiÕp
g1, g2,...,gk theo qui t¾c
126
gi = f (xi , gi -1) víi i =1,2,...,k.
Vµ cuèi cïng, ta ®Þnh nghÜa gi¸ trÞ hµm b¨m h (x ) = gk . Hµm b¨m h
®−îc ®Þnh nghÜa nh− vËy lµ mét hµm ¸nh x¹ 2
Z∗
vµo 2
n
Z ; trong
tr−êng hîp chung cã thÓ kh«ng b¶o ®¶m tÝnh an toµn, nh−ng ng−êi
ta ®· chøng tá ®−îc r»ng nã lµ an toµn trong c¸c tr−êng hîp hµm f
®−îc chän nh− sau:
f (x, y) = x ⊕ E (y,x),
f (x, y) = x ⊕ y ⊕E (y,x),
f (x, y) = x ⊕ E (y,x ⊕ y),
f (x, y) = x ⊕ y ⊕E (y,x ⊕ y) ,
trong ®ã ⊕ lµ phÐp céng mod2 tõng cÆp bit mét cña hai tõ cã sè bit
b»ng nhau.
5.4. Mét sè s¬ ®å ch÷ ký kh¸c.
5.4.1. S¬ ®å ch÷ ký Rabin.
T−¬ng t− nh− s¬ ®å ch÷ ký RSA, s¬ ®å ch÷ ký Rabin còng sö
dông sè nguyªn n lµ tÝch cña hai sè nguyªn tè lín p vµ q, n =p.q ,
víi hµm mét phÝa ë ®©y lµ hµm lÊy b×nh ph−¬ng cña mét sè
nguyªn theo modn, cã hµm ng−îc lµ hµm t×m c¨n bËc hai theo
modn, mét hµm kh«ng tÝnh ®−îc mét c¸ch dÔ dµng nÕu kh«ng biÕt
c¸c thõa sè p ,q cña n.
Nh− vËy, mét c¸ch ®¹i thÓ, s¬ ®å ch÷ ký Rabin cã thÓ ®−îc
m« t¶ lµ mét bé
S = (P, A, K, S, V),
trong ®ã P= Qn , A = Zn , K lµ tËp c¸c cÆp kho¸ K =(K’,K''), trong ®ã
K'' = n lµ kho¸ c«ng khai dïng ®Ó kiÓm thö ch÷ ký,n lµ tÝch cña hai
sè nguyªn tè lín p vµ q, n =p.q , víi p ≡ q ≡ 3 (mod4), cßn K’ = d
víi d = (n -p -q +5)/8 lµ kho¸ bÝ mËt dïng ®Ó ký. C¸c hµm '
K
sig vµ

K
ver ®−îc x¸c ®Þnh nh− sau:
'
K
sig (x) = xd
modn ,
K
ver ′′ (x,y ) = ®óng ⇔ x ≡ y 2
(modn ).
Ta chó ý r»ng nÕu p vµ q ®−îc chän víi tÝnh chÊt nãi trªn th× víi
mäi x ∈P =Qn , xd
modn lµ mét c¨n bËc hai cña x theo modn, v×
( 1)( 1) 4 ( 1)( 1)
2 1
8 4
p q p q
x x x
− − + − −
+
≡ ≡
2d
x
≡ (modn) ;
vµ c¸c hµm '
K
sig vµ 
K
ver ®−îc ®Þnh nghÜa nh− trªn lµ hîp thøc.
Y t−ëng c¬ b¶n vÒ mét s¬ ®å ch÷ ký Rabin chØ ®¬n gi¶n lµ
nh− thÕ, tuy nhiªn ®Ó cã mét s¬ ®å ch÷ ký dïng ®−îc trong thùc tÕ,
127
ng−êi ta muèn tËp c¸c v¨n b¶n P kh«ng h¹n chÕ trong Qn , mµ
réng r·i h¬n, lµ Zn ch¼ng h¹n, nh−ng ®Ó ®−îc nh− vËy, ta ph¶i
dïng thªm mét hµm R ®Ó chuyÓn mét x ∈P ban ®Çu vÒ mét gi¸ trÞ
m nµo ®ã cã quan hÖ gÇn gòi víi mét thÆng d− bËc hai theo modn
®Ó s¬ ®å ch÷ ký theo ý t−ëng nãi trªn cã thÓ vËn hµnh ®−îc. §Ó
thùc hiÖn ®−îc mét s¬ ®å ch÷ ký söa ®æi nh− vËy, ng−êi ta sÏ dïng
mét bæ ®Ò to¸n häc sau ®©y:
Bæ ®Ò 5.4.1. Gi¶ sö p vµ q lµ c¸c sè nguyªn tè kh¸c nhau
cïng ®ång d− víi 3 theo mod4, vµ n = p.q. Khi ®ã ta cã:
1) NÕu gcd(x,n) =1, th× ( 1)( 1)/ 2
1
p q
x − −
≡ (modn)
2) NÕu n
x Q
∈ , th× modn lµ mét c¨n bËc hai cña x
theo modn.
( 5
n p q
x − − + )/8
3) NÕu x lµ sè nguyªn cã 1,
x
n
⎛ ⎞
=
⎜ ⎟
⎝ ⎠
vµ d =(n -p -q +5)/8, th×
2
x d
modn =
, ,
, .
n
n
x khi x Q
n x khi x Q
∈
⎧
⎨
− ∉
⎩
4) NÕu p ≠ q (mod8) th×
2
1.
n
⎛ ⎞
= −
⎜ ⎟
⎝ ⎠
Do ®ã, nh©n mét sè
nguyªn x bÊt kú víi 2 hay víi 2-1
modn ®Òu ®¶o ng−îc ký
hiÖu Jacobi cña x.
Ng−êi ®äc cã thÓ tù chøng minh lÊy bæ ®Ò trªn.
B©y giê mét s¬ ®å ch÷ ký Rabin söa ®æi cã thÓ ®−îc x©y dùng nh−
sau : Tr−íc hÕt ta x¸c ®Þnh cho mçi thùc thÓ tham gia mét cÆp kho¸
K =(K’,K''), víi kho¸ c«ng khai K’ = n, kho¸ bÝ mËt K'' = (p,q) hay = d
= (n -p -q +5)/8,trong ®ãp vµ q lµ hai sè nguyªn tè cã tÝnh chÊt p ≡
3(mod8) vµ q ≡ 7(mod8),n =p.q ;p vµ q ®−îc chän vµ gi÷ bÝ mËt.
Thùc thÓ A cã kho¸ K =(K’,K'') sÏ t¹o ch÷ ký trªn mét v¨n
b¶n x (x∈Zn , x ≤ (n -6)/16) b»ng c¸c b−íc sau ®©y :
a. TÝnh m =R(x) =16x +6.
b. TÝnh ký hiÖu Jacobi .
m
J
n
⎛ ⎞
= ⎜ ⎟
⎝ ⎠
c. NÕu J =1 th× tÝnh s =md
modn,
nÕu J = -1 th× tÝnh s =(m/2)d
modn.
d. s lµ ch÷ ký cña A trªn x.
ViÖc kiÓm thö ch÷ ký s cña A b»ng c¸ch dïng khãa c«ng
khai n ®−îc thùc hiÖn bëi c¸c b−íc sau ®©y:
a. TÝnh m*=s2
modn
b. NÕu m*≡ 6(mod8), th× lÊy m =m*,
nÕu m*≡ 3(mod8), th× lÊy m =2m*,
nÕu m*≡ 7(mod8), th× lÊy m =n -m*,
128
nÕu m*≡ 2(mod8), th× lÊy m =2(n -m *).
c. Thö ®iÒu kiÖn m ≡ 6 (mod16), nÕu sai th× b¸c bá ch÷ ký.
d. NÕu ®iÒu kiÖn trªn ®óng th× lÊy x = R -1
(m) = (m -6)/16.
(Theo ®Þnh nghÜa cña phÐp kiÓm thö th× ta cã thÓ viÕt ®iÒu d lµ:
thuËt to¸n kiÓm thö x¸c nhËn s lµ ch÷ ký cña A trªn v¨n b¶n x nÕu x
= R -1
(m) = (m -6)/16).
Ta cã thÓ chøng minh tÝnh hîp thøc cña c¸c thuËt to¸n ký vµ
kiÓm thö nh− sau: C¸c b−íc t¹o ch÷ ký b-c cho ta ch÷ ký Rabin cña
v =m hay v =m/2 tuú theo ký hiÖu Jacobi b»ng 1 hay kh«ng. Theo
®iÒu 4 cña bæ ®Ò 5.4.1, cã ®óng mét kh¶ n¨ng hoÆc m, hoÆc m/2 cã
gi¸ trÞ ký hiÖu Jacobi b»ng 1. Gi¸ trÞ v ®−îc ký lµ ≡ 3 hoÆc ≡ 6
(mod8). Theo ®iÒu 3 cña bæ ®Ò ®ã, s 2
modn =v hoÆc = n -v lµ tuú
theo v∈Qn hay kh«ng. V× n ≡ 5 (mod8), cã thÓ x¸c ®Þnh mét c¸ch
duy nhÊt mét trong hai tr−êng hîp ®ã.
ThÝ dô: Gi¶ thö chän p =19, q =31, do ®ã n =589 vµ d =68. A cã kho¸
c«ng khai n =589 vµ kho¸ bÝ mËt d =68. Kh«ng gian ký gåm c¸c gi¸
trÞ cña m øng víi c¸c gi¸ trÞ x = 0,1,2,...,32,33 cïng víi c¸c gi¸ trÞ cña
ký hiÖu Jacobi t−¬ng øng ®−îc cho bëi b¶ng sau ®©y:
m
589
m
⎛ ⎞
⎜ ⎟
⎝ ⎠
6 22 54 70 86 102 118 134 150
-1 1 -1 -1 1 1 1 1 -1
m
589
m
⎛ ⎞
⎜ ⎟
⎝ ⎠
166 182 198 214 230 246 262 278 294
1 -1 1 1 1 1 -1 1 -1
m
589
m
⎛
⎜ ⎟
⎝ ⎠
⎞
326 358 374 390 406 422 438 454 470
-1 -1 -1 -1 -1 1 1 1 -1
m
589
m
⎛
⎜ ⎟
⎝ ⎠
⎞
486 502 518 534 550 566 582
-1 1 -1 -1 1 -1 1
Ta t¹o ch÷ ký víi th«ng b¸o x =12. TÝnh m = R(12) =198,
198
1,
589
m
n
⎛ ⎞ ⎛ ⎞
=
⎜ ⎟ ⎜ ⎟
⎝ ⎠ ⎝ ⎠
= vµ s = 19868
mod589 = 102. Ch÷ ký lµ s =102.
Dïng thuËt to¸n kiÓm thö ta cã: m* = s 2
modn = 1022
mod589
=391. V× m* ≡ 7 (mod8), ta lÊy m =n -m*= 589-391=198. Cuèi cïng,
tÝnh x = R -1
(m) = (198-6)/16 =12, vµ ch÷ ký ®−îc x¸c nhËn.
129
5.4.2. S¬ ®å ch÷ ký Fiat-Shamir.
Mçi s¬ ®å ch÷ ký Fiat-Shamir sö dông mét hµm b¨m h :
2
k
2
Z Z
∗
→ ,biÕn mäi d·y ký tù nhÞ ph©n x ®é dµi tuú ý thµnh mét d·y
cã ®é dµi k bit, ®−îc gäi lµ “tãm l−îc” cña x .
Mçi thùc thÓ A t¹o cho m×nh cÆp kho¸ K =(K’,K'') b»ng c¸ch:
chän hai sè nguyªn tè kh¸c nhau p vµ q, vµ ®Æt n =p.q ; sau ®ã chän
ngÉu nhiªn k sè nguyªn kh¸c nhau s1,..., sk ∈ n
Z∗
, vµ tÝnh víi mçi j
(1≤ j ≤ k) 2
j j
v s−
= modn. X¸c ®Þnh kho¸ bÝ mËt K’ lµ bé k (s1,..., sk ),
vµ kho¸ c«ng khai K'' lµ gåm bé k (v1,...,vk) vµ m«®uyn n.
LÊy P = 2
Z∗
, A = 2
k
n
Z Z
× , vµ x¸c ®Þnh c¸c thuËt to¸n ký vµ
kiÓm thö nh− sau:
§Ó t¹o ch÷ ký trªn v¨n b¶n x ∈P = 2
Z∗
, A chän ngÉu nhiªn
mét sè nguyªn d−¬ng r ∈Zn , tÝnh u =r 2
modn , tÝnh e =(e1,..., ek ) =
h(x u), trong ®ã x u lµ d·y ký tù nhÞ ph©n thu ®−îc b»ng c¸ch
nèi ghÐp biÓu diÕn nhÞ ph©n cña sè u tiÕp sau biÓu diÔn nhÞ ph©n
cña sè x. Ch÷ ký cña A trªn x ®−îc ®Þnh nghÜa lµ (e,s ), trong ®ã
 
1
. j
k e
j
j
s r s
=
= ∏ modn.
§Ó kiÓm thö (e,s ) cã ®óng lµ ch÷ ký cña A trªn x hay kh«ng,
ta dïng kho¸ c«ng khai (v1,...,vk) vµ m«®uyn n ®Ó tÝnh
2
1
. j
k e
j
j
w s v
=
= ∏ modn ,
råi tÝnh e’ = h(x w); vµ x¸c nhËn (e,s ) ®óng lµ ch÷ ký cña A trªn x
khi vµ chØ khi e = e’ .

DÔ chøng minh r»ng nÕu (e,s ) lµ ch÷ ký cña A trªn x th×
e = e’, vµ ng−îc l¹i, tøc c¸c thuËt to¸n ký vµ kiÓm thö x¸c ®Þnh nh−
trªn lµ hîp thøc.
5.4.3. S¬ ®å ch÷ ký Schnorr.
S¬ ®å ch÷ ký Schnorr còng ®−îc x©y dùng t−¬ng tù nh− s¬
®å Fiat-Shamir, nh−ng ë ®©y ta dïng mét hµm b¨m mét phÝa dùa
trªn bµi to¸n khã tÝnh l«garit rêi r¹c.
Mçi thùc thÓ A t¹o cho m×nh cÆp kho¸ K =(K’,K'') b»ng c¸ch:
Chän mét sè nguyªn tè lín p, mét sè nguyªn tè q lµ −íc sè cña
p -1, mét phÇn tö α cÊp q cña p
Z∗
, vµ mét sè a , 1≤ a ≤ q -1. Gi÷ K’=a
lµ kho¸ bÝ mËt , vµ c«ng bè kho¸ c«ng khai K'' = (p,q,α,r), trong ®ã r
=αa
modp.
Chän mét hµm b¨m h : 2 q
Z Z
∗
→ . LÊy P = 2
Z∗
vµ A = q q
Z Z
× .
130
§Ó ký trªn mét th«ng b¸o x ∈P = 2
Z∗
A chän thªm mét sè
ngÉu nhiªn k ∈ Zq vµ tÝnh y =α k
modp, e = vµ s = ae+k
modq. Ch÷ ký cña A trªn x ®−îc x¸c ®Þnh lµ cÆp sè (s, e).
( )
h x y

§Ó kiÓm thö xem cÆp sè (s, e) cã ®óng lµ ch÷ ký cña A trªn x
hay kh«ng, ta dïng kho¸ c«ng khai K'' = (p,q,α,r) ®Ó tÝnh
s e
v r
α −
= modp vµ ( )
e h x v
′ =  ,
vµ x¸c nhËn (s, e) ®óng lµ ch÷ ký cña A trªn x khi vµ chØ khi .
e e
′ =
Ta cã thÓ chøng minh r»ng c¸c thuËt to¸n ký vµ kiÓm thö x¸c
®Þnh nh− Ëy lµ hîp thøc. Thùc vËy, nÕu ch÷ ký(s, e) ®−îc ký bëi A
trªn x, th×
s e
v r
α −
= modp = s ae
α α −
modp = k
α modp =y,
do ®ã = =e. Ng−îc l¹i, còng dÔ chøng tá r»ng
nÕu th× (s, e) ®óng lµ ch÷ ký cña A trªn x.
( )
e h x v
′ =  (
h x y
 )
e e
′ =
5.5.Ch÷ ký kh«ng phñ ®Þnh ®−îc vµ kh«ng chèi bá ®−îc
5.5.1. §Æt vÊn ®Ò. Trong c¸c phÇn tr−íc ta ®· tr×nh bµy
mét vµi s¬ ®å ch÷ ký ®iÖn tö ; trong c¸c s¬ ®å ®ã, viÖc kiÓm thö tÝnh
®óng ®¾n cña ch÷ kýlµ do ng−êi nhËn thùc hiÖn. Nh− vËy, c¶ v¨n
b¶n cïng ch÷ ký cã thÓ ®−îc sao chÐp vµ t¸n ph¸t cho nhiÒu ng−êi
mµ kh«ng ®−îc phÐp cña ng−êi göi. §Ó tr¸nh kh¶ n¨ng ®ã, ng−êi
ta ®−a ra c¸c s¬ ®å ch÷ ký kh«ng phñ ®Þnh ®−îc víi mét yªu cÇu
lµ ch÷ ký kh«ng thÓ ®−îc kiÓm thö nÕu kh«ng cã sù hîp t¸c cña
ng−êi ký. Sù hîp t¸c ®ã ®−îc thùc hiÖn th«ng qua mét giao thøc
mêi hái vµ tr¶ lêi gi÷a ng−êi nhËn vµ ng−êi göi (còng lµ ng−êi ký),
gäi lµ giao thøc kiÓm thö. Khi ch÷ ký ®ßi hái ®−îc x¸c nhËn b»ng
mét giao thøc kiÓm thö th× mét vÊn ®Ò kh¸c l¹i nÈy sinh lµ lµm thÕ
nµo ®Ó ng¨n c¶n ng−êi ký chèi bá mét ch÷ ký mµ anh ta ®· ký b»ng
c¸ch tuyªn bè r»ng ch÷ ký ®ã lµ gi¶ m¹o? §Ó ®¸p øng yªu cÇu ®ã,
cÇn cã thªm mét giao thøc chèi bá, th«ng qua giao thøc nµy ng−êi
ký cã thÓ chøng minh mét ch÷ ký kh«ng ph¶i cña m×nh ®óng thùc
lµ gi¶ m¹o. NÕu anh ta tõ chèi kh«ng tham gia giao thøc ®ã th× cã
b»ng chøng ®Ó chøng tá r»ng anh ta kh«ng chøng minh ®−îc ®ã lµ
ch÷ ký gi¶ m¹o, tøc kh«ng chèi bá ®−îc ch÷ ký cña m×nh!
Nh− vËy, mét s¬ ®å ch÷ ký kh«ng phñ ®Þnh ®−îc sÏ gåm ba
phÇn : mét thuËt to¸n ký, mét giao thøc kiÓm thö vµ mét giao thøc
chèi bá.
5.5.2. S¬ ®å ch÷ ký Chaum-van Antverpen.
S¬ ®å ch÷ ký kh«ng phñ ®Þnh ®−îc ®Çu tiªn ®−îc Chaum vµ
van Antverpen ®Ò xuÊt n¨m 1989. Mét chñ thÓ A chän mét sè
nguyªn tè d¹ng Sophie Germain p =2q +1, trong ®ã q còng lµ sè
131
nguyªn tè; chän p
Z
α ∗
∈ lµ mét phÇn tö cÊp q . Gäi G lµ nhãm con
(theo phÐp nh©n) cÊp q sinh bëi α cña p
Z∗
. S¬ ®å ch÷ ký Chaum -
van Antverpen cña A gåm cã: P =A =G, cÆp kho¸ K =(K’,K'') gåm
cã kho¸ bÝ mËt K’ = a vµ kho¸ c«ng khai K'' = (p,α, a, β), trong ®ã α
lµ mét sè nguyªn d−¬ng  p -1, vµ β = α a
modp.
ThuËt to¸n ký: A ký trªn v¨n b¶n x ∈P =G víi ch÷ ký
y = ( ) a
K
sig x x
′ = modp.
Giao thøc kiÓm thö : Víi v¨n b¶n x vµ ch÷ ký y ng−êi nhËn B cïng
ng−êi ký A thùc hiÖn giao thøc kiÓm thö sau ®©y:
1. B chän ngÉu nhiªn hai sè 1 2
, ,
q
e e Z∗
∈ tÝnh 1
.
e e
c y 2
β
= modp
vµ göi c cho A,
2. A tÝnh
1
a
d c
−
= q
mod
modp vµ göi d cho B.
3. B chÊp nhËn y lµ ch÷ ký cña A trªn x nÕu
1 2
. mod
e e
d x α
≡ p .
Giao thøc chèi bá: gåm c¸c b−íc sau ®©y:
1. B chän ngÉu nhiªn hai sè 1 2
, ,
q
e e Z∗
∈ tÝnh 1
.
e e
c y 2
β
= modp vµ
göi c cho A,
2. A tÝnh
1
a
d c
−
= q
mod
modp vµ göi d cho B,
3. B thö ®iÒu kiÖn d ≢ 1 2
. (mod
e e
x α p .
)
4.B chän tiÕp hai sè 1 2
, ,
q
f f Z∗
∈ tÝnh 1
. 2
f f
C y β
= modp vµ göi C
cho A,
5. A tÝnh
1
mod
a
D C
−
= q
modp vµ göi D cho B,
6. B thö ®iÒu kiÖn D ≢ .
1 2
. (mod
f f
x α p)
)
7. B kÕt luËn y lµ ch÷ ký gi¶ m¹o, nÕu
(modp).
2 1 2 1
( ) (
e f f e
d D
α α
− −
≡
5.5.3. TÝnh hîp thøc cña c¸c giao thøc.
Ta sÏ chøng minh hai ®Þnh lý sau ®©y ®Ó chøng tá tÝnh hîp
thøc cña c¸c giao thøc kiÓm thö vµ chèi bá cña s¬ ®å ch÷ ký
Chaum-van Antverpen.
§Þnh lý 5.5.1. a)NÕu y ®óng lµ ch÷ ký cña A trªn x, tøc y
≡x a
modp,th× viÖc B chÊp nhËn y lµ ch÷ ký cña A trªn x theo giao
thøc kiÓm thö lµ ®óng.
b) NÕu y ≢x a
(modp), tøc y kh«ng ph¶i lµ ch÷ ký cña A trªn
x, th× viÖc B, theo giao thøc kiÓm thö, chÊp nhËn y lµ ch÷ ký cña A
trªn x, cã thÓ xÈy ra víi x¸c suÊt 1/q.
Chøng minh. a) Gi¶ sö y ≡x a
modp. Khi ®ã,
(chó ý r»ng tÊt c¶ c¸c sè mò ®Òu ®−îc tÝnh theo modq). Ta còng cã
1
(mod .
a
y x
−
≡ p)
132
1
(mod .
a
β α
−
≡ p) Do ®ã,
1 1
1
1 2 1
e a e a e e
a
d c y x 2
β α
− −
−
≡ ≡ ≡ (modp),
vµ theo giao thøc kiÓm thö, B chÊp nhËn y lµ ch÷ ký cña A trªn x,
viÖc chÊp nhËn ®ã lµ ®óng.
b)B©y giê gi¶ thö y ≢x a
(modp). Tr−íc hªt ta chó ý r»ng mçi
lêi mêi hái c t−¬ng øng víi ®óng q cÆp (e1, e2), v× y vµ β lµ c¸c phÇn
tö cña nhãm nh©n G cÊp q. Khi A nhËn ®−îc c©u hái c , A kh«ng cã
c¸ch g× ®Ó biÕt lµ B ®· dïng cÆp (e1, e2) nµo trong q cÆp cã thÓ ®ã. Ta
chøng minh r»ng, do y ≢x a
(modp), nªn trong q cÆp ®ã chØ cã ®óng
mét cÆp tho¶ m·n ®ång d− thøc 1 2
e e
d x α
≡ (modp). Thùc vËy, ta cã
thÓ ®Æt , , ,
i j k
c d x y l
α α α
= = = = α víi i, j, k, l ∈ Zq ,v× α lµ phÇn tö
sinh cña G ,vµ hai ®ång d− thøc vµ
1 2
(
e e
c y β
≡ p
mod )
1 2
e e
d x α
≡ (modp) t−¬ng ®−¬ng víi hai ph−¬ng tr×nh
1 2
1 2
(
(
i le ae
e e
≡ +
≡ +
q
j k q .
mod )
mod )
)
−
)
)
)
Tõ gi¶ thiÕt y ≢x a
(modp) suy ra l – ak ≢ 0 (modq), tøc ®Þnh thøc cña
hÖ ph−¬ng tr×nh nãi trªn (víi c¸c Èn sè e1, e2) lµ ≢ 0 (modq). Nh−
vËy, mçi d ∈G lµ c©u tr¶ lêi ®óng (theo giao thøc kiÓm thö) chØ víi
mét cÆp (e1, e2) trong q cÆp cã thÓ. V× vËy, nÕu y ≢x a
(modp) , th×
x¸c suÊt ®Ó B chÊp nhËn y lµ ch÷ ký cña A trªn x (theo giao thøc) lµ
b»ng 1/q. §Þnh lý ®−îc chøng minh.
§èi víi giao thøc chèi bá, ta cã ®Þnh lý sau ®©y :
§Þnh lý 5.5.2. a) NÕu y ≢x a
(modp), vµ c¶ A,B ®Òu tu©n
theo giao thøc chèi bá, th× (modp), tøc giao thøc
cho kÕt qu¶ chÝnh x¸c.
2 1 2 1
( ) (
e f f e
d D
α α
−
≡
b) NÕu y ≡xa
modp, A vµ B ®Òu tu©n theo giao thøc, vµ cã
d ≢ .
1 2
. (mod
e e
x α p
D ≢ .
1 2
. (mod
f f
x α p
Khi ®ã, ®ång d− thøc (modp) ®óng víi x¸c suÊt
1/q , tøc nÕu y ®óng lµ ch÷ ký cña A trªn x, th× theo giao thøc, B cã
thÓ kÕt luËn r»ng nã lµ gi¶ m¹o (mét c¸ch sai lÇm) víi x¸c suÊt 1/q.
2 1 2 1
( ) (
e f f e
d D
α α
− −
≡
Chøng minh. a) Gi¶ thö y ≢ (mod
a
x p), vµ A,B cïng thùc
hiÖn giao thøc chèi bá. Do y kh«ng lµ ch÷ ký cña A trªn x nªn B sÏ
kiÓm thö ®óng c¸c bÊt ®ång d− thøc trong c¸c b−íc 3 vµ 6 cña giao
thøc. V× a
β α
≡ (modp), nªn ta cã
(modp)
1
2 1 1 2 2 1
( ) (( )
e f e e e f
a
d y
α β α
−
− −
≡ )
133
(modp)
1 1
1 1 2 1 2 1
a e f e a f e f
y β α
− −
−
≡
(modp).
1
1 1
e a f
y
−
≡
T−¬ng tù, ta còng cã
1
2 1 1 1
( )
f e e a
D y
α
−
−
≡ f
(modp).
Nh− vËy, ®ång d− thøc ë ®iÓm 7 cña giao thøc ®−îc nghiÖm ®óng,
vµ kÕt luËn y lµ ch÷ ký gi¶ m¹o cña A trªn x lµ chÝnh x¸c, kh«ng thÓ
b¸c bá ®−îc.
b) B©y giê gi¶ thiÕt a
y x
≡ (modp), vµ A, B cïng thùc hiÖn
giao thøc chèi bá. §Æt modp , ta cã
1 2
1/ /
0
e e e
x d α−
= 1
/ /
0 .
a e ae e
a
x d α−
≡ 1 2 1 2 1
/ /
( )
e e a e ae e a
≢
1 2 1
x x y
α α−
≡ ≡ (modp).
Theo ®iÓm b) trong ®Þnh lý 5.5.1, B cã thÓ chÊp nhËn y lµ ch÷ ký cña
A trªn x0 , tøc lµ cã ®ång d− thøc
1 2
0
f f
D x α
≡ (modp),
víi x¸c suÊt 1/q. Nh−ng ®ång d− thøc ®ã t−¬ng ®−¬ng víi ®ång
d− thøc
(modp),
2 1 2 1
( ) (
e f f e
d D
α α
−
≡ )
−
tøc ®ång d− thøc nµy còng cã thÓ xÈy ra víi x¸c suÊt 1/q. §Þnh lý
®−îc chøng minh.
Ta chó ý r»ng trong giao thøc chèi bá, cÆp (e1, e2) ®−îc sö
dông ®Ó t¹o ra x0 víi 0
a
x ≢y(modp); cßn cÆp (f1, f2) ®−îc dïng ®Ó
kiÓm thö xem y cã lµ ch÷ ký cña A trªn x0 hay kh«ng.
ThÝ dô minh ho¹. Chän p = 467, q =233 (p = 2q +1), α =4 lµ
phÇn tö sinh cña mét nhãm con G cÊp 233 cña 467
Z∗
. Chän a =101,
khi ®ã ta cã β =α a
modp = 4101
mod467 =449.
A cã cÆp kho¸ K =(K’,K'') víi K’ =101, vµ K'' = (467, 4, 449).
Gi¶ thö A ký trªn v¨n b¶n x =119 víi ch÷ ký
y = 119101
mod467 =129.
1)B cã thÓ dïng giao thøc kiÓm thö ®Ó biÕt y cã ®óng lµ ch÷
ký cña A trªn x hay kh«ng nh− sau: B chän ngÉu nhiªn e1=38,
e2=397, vµ tÝnh c =13; A sÏ tr¶ lêi l¹i b»ng d =9. B thö ®iÒu kiÖn
,
1 2
. mod
e e
d x α
≡ p
tøc lµ 9 ≡ 11938
.4397
(mod467).
§ång d− thøc ®ã ®óng. B chÊp nhËn 129 ®óng lµ ch÷ ký cña A trªn
v¨n b¶n 119.
2) B©y giê ta thö thùc hiÖn giao thøc chèi bá. Gi¶ thö A göi
v¨n b¶n x =286 víi ch÷ ký y = 83. B chän ngÉu nhiªn e1=45, e2=237,
råi tÝnh c =305 vµ göi cho A; A tr¶ lêi l¹i b»ng d =109. B thö ®iÒu
kiÖn d≢ , ®iÒu kiÖn ®ã ®−îc tho¶ m·n v×
1 2
. (mod
e e
x α p)
134
109≠149(=28645
.4237
mod467). B l¹i tiÕp tôc phÇn sau cña giao thøc
b»ng c¸ch chän ngÉu nhiªn f1 =125, f2 =9, vµ tÝnh C =270, göi cho A,
A tr¶ lêi l¹i b»ng D =68. B l¹i thö ®iÒu kiÖn D≢ , ®iÒu
kiÖn nµy còng ®−îc tho¶ m·n v× 68≠25(=286
1 2
. (mod
f f
x α p)
125
.49
mod467). B©y giê B
l¹i thö ®iÒu kiÖn cuèi cïng cña giao thøc b»ng c¸ch tÝnh
2 1
2 1
237) 125
9 45
( ) (109.4 ) 188(mod 467)
( ) (68.4 ) 188(mod 467)
e f
f e
d
D
α
α
− −
− −
≡ ≡
≡ ≡
Hai gi¸ trÞ ®ã b»ng nhau. B cã thÓ kÕt luËn y kh«ng ph¶i lµ ch÷ ký
cña A trªn x víi x¸c suÊt sai lÇm lµ 1/233!
ThÝ dô nµy ®−îc tr×nh bµy víi môc ®Ých minh ho¹, nªn chØ
sö dông c¸c sè nguyªn tè p, q bÐ cho dÔ tÝnh. Trong thùc tÕ øng
dông, ®Ó b¶o ®¶m tÝnh an toµn, ta ph¶i dïng c¸c sè p, q rÊt lín,
ch¼ng h¹n ph¶i lµ c¸c sè cã biÓu diÔn nhÞ ph©n cì 512 bit, khi ®ã ta
cã q ≥ 2510
, tøc lµ 1/q ≤ 2-510
, mét x¸c suÊt rÊt bÐ, cã thÓ bá qua; vµ v×
vËy, c¸c yªu cÇu ®èi víi c¸c giao thøc kiÓm thö vµ giao thøc chèi bá
nh− ®Ò cËp ®Õn trong phÇn ®Æt vÊn ®Ò (5.5.1) cã thÓ xem lµ ®−îc
tho¶ m·n.
135
CH¦¥NG VI
C¸c s¬ ®å x−ng danh vµ
x¸c nhËn danh tÝnh
6.1. VÊn ®Ò x−ng danh.
Trong ch−¬ng tr−íc ta ®· thÊy c¸c kü thuËt mËt m· cã thÓ
®−îc øng dông ®Ó x©y dùng nhiÒu gi¶i ph¸p an toµn cho vÊn ®Ò
x¸c nhËn c¸c th«ng b¸o cïng víi ng−êi göi trªn c¸c m¹ng truyÒn
tin c«ng céng. Trong ch−¬ng nµy ta sÏ xÐt viÖc øng dông còng c¸c
kü thuËt ®ã cho bµi to¸n x©y dùng c¸c s¬ ®å x−ng danh vµ x¸c nhËn
danh tÝnh, còng lµ mét bµi to¸n quan träng vµ th−êng gÆp trong
mäi ho¹t ®éng giao l−u th«ng tin, ®Æc biÖt giao l−u qua m¹ng. ViÖc
x−ng danh vµ x¸c nhËn danh tÝnh cña mét ng−êi th−êng lµ cÇn
thiÕt trong nh÷ng t×nh huèng nh−:
- §Ó rót tiÒn tõ c¸c m¸y rót tiÒn tù ®éng (ATM), ta cÇn x−ng
danh b»ng c¸ch dïng mét thÎ rót tiÒn cïng víi mét sè PIN (sè
x−ng danh c¸ nh©n) cña m×nh
- §Ó mua hµng hoÆc thanh to¸n mét kho¶n tiÒn qua m¹ng
®iÖn tho¹i, ta cÇn th«ng b¸o sè thÎ tÝn dông (cïng ngµy hÕt h¹n)
cña m×nh.
- §Ó truy nhËp vµo mét m¸y tÝnh trªn mét m¹ng, ta cÇn khai
b¸o tªn ng−êi dïng cïng mËt hiÖu (password) cña m×nh.
- v.v...
Trong thùc tÕ cuéc sèng, viÖc x−ng danh theo thãi quen
th−êng kh«ng ®ßi hái tÝnh an toµn, ch¼ng h¹n c¸c sè PIN, mËt khÈu
th−êng kh«ng cã g× ®Ó b¶o ®¶m lµ ®−îc gi÷ kÝn, ng−êi ngoµi kh«ng
biÕt ®−îc. Tuy nhiªn, cuéc sèng cµng ngµy cµng ®−îc tin häc ho¸,
phÇn lín c¸c giao dÞch ®−îc thùc hiÖn trªn c¸c m¹ng tin häc, viÖc
xem th−êng c¸c yªu cÇu vÒ an toµn trong c¸c kh©u x−ng danh vµ
x¸c nhËn danh tÝnh lµ kh«ng thÓ tiÕp tôc ®−îc; cÇn ph¶i cã nh÷ng
gi¶i ph¸p b¶o ®¶m tÝnh an toµn cho c¸c ho¹t ®éng ®ã.
Môc tiªu an toµn cña viÖc x−ng danh lµ b¶o ®¶m sao cho khi
“nghe” mét chñ thÓ A x−ng danh víi mét chñ thÓ B, bÊt kú mét ai
136
kh¸c A còng kh«ng thÓ sau ®ã m¹o mhËn m×nh lµ A, kÓ c¶ chÝnh B
còng kh«ng thÓ m¹o x−ng m×nh lµ A sau khi ®−îc A x−ng danh víi
m×nh. Nãi c¸ch kh¸c, A muèn chøng minh ®Ó ®−îc ®èi t¸c x¸c
nhËn danh tÝnh cña m×nh mµ kh«ng ®Ó lé bÊt cø th«ng tin nµo vÒ
viÖc chøng minh danh tÝnh ®ã.
ViÖc x−ng danh th−êng ph¶i th«ng qua mét giao thøc hái-
®¸p nµo ®ã, qua giao thøc ®ã, ®Ó B cã thÓ x¸c nhËn danh tÝnh cña
A, B ®Æt cho A mét c©u hái; A ph¶i tr¶ lêi, trong tr¶ lêi ®ã A ph¶i
chøng tá cho B biÕt lµ A cã së h÷u mét bÝ mËt riªng A míi cã, ®iÒu
®ã thuyÕt phôc B tin ch¾c r»ng ng−êi tr¶ lêi ®óng lµ A vµ do ®ã x¸c
nhËn danh tÝnh cña A. VÊn ®Ò khã ë ®©y lµ A ph¶i lµm cho B biÕt lµ
A cã së h÷u mét bÝ mËt chØ riªng A míi cã, nh−ng l¹i kh«ng ®−îc
lé cho B biÕt c¸i bÝ mËt riªng A míi cã ®ã lµ c¸i g×. MÆt kh¸c, ®Ó
cho viÖc “A cã së h÷u mét bÝ mËt cña riªng A” ®ã lµ ®¸ng tin (dï lµ
kh«ng biÕt) th× cÇn ®−îc chøng thùc bëi mét bªn thø ba nµo
®ã,ch¼ng h¹n bëi mét c¬ quan ®−îc uû th¸c (trusted authority). TÊt
nhiªn c¬ quan ®−îc uû th¸c nµy còng kh«ng biÕt b¶n th©n bÝ mËt
cña A, nh−ng biÕt vµ chøng nhËn A lµ chñ së h÷u cña mét yÕu tè
c«ng khai mµ viÖc A sö dông nã chøng tá A cã c¸i bÝ mËt nãi trªn.
Trong tiÕt ngay sau ®©y ta sÏ giíi thiÖu mét s¬ ®å x−ng danh
®iÓn h×nh ®Ó minh ho¹ c¸c ý t−ëng nãi trªn.
6.2. S¬ ®å x−ng danh Schnorr.
Trong s¬ ®å x−ng danh nµy cã sù tham gia cña mét c¬ quan
®−îc uû th¸c mµ ta ký hiÖu lµ TA. TA sÏ chän c¸c tham sè cho s¬
®å x−ng danh nh− sau:
- mét sè nguyªn tè lín p sao cho bµi to¸n tÝnh l«garit rêi r¹c
theo modp lµ rÊt khã; vµ mét −íc sè nguyªn tè q cña p -1 (ng−êi ta
khuyªn nªn chän p ≥ 2512
vµ q ≥ 2140
).
- mét phÇn tö p
Z
α ∗
∈ cã cÊp q (mét phÇn tö α nh− vËy cã thÓ
lÊy lµ mét luü thõa bËc (p -1)/q cña mét phÇn tö nguyªn thuû theo
modp.
- mét tham sè an toµn t sao cho q ≥ 2t
. Cã thÓ lÊy t =40.
- TA chän cho m×nh mét s¬ ®å ch÷ ký gåm mét thuËt to¸n
ký(bÝ mËt) sigTA vµ mét thuËt to¸n kiÓm thö (c«ng khai)verTA.
- mét hµm b¨m an toµn (mét phÝa vµ kh«ng va ch¹m m¹nh).
Ta gi¶ thiÕt lµ mäi th«ng tin ®Òu ®−îc “tãm l−îc” bëi hµm b¨m
tr−íc khi ®−îc ký; tuy nhiªn trong m« t¶ sau ®©y ®Ó cho ®¬n gi¶n
ta sÏ bá qua c¸c b−íc sö dông hµm b¨m.
C¸c tham sè p, q, α, thuËt to¸n kiÓm thö verTA vµ hµm b¨m
®Òu cã thÓ ®−îc c«ng bè c«ng khai.
137
B©y giê, mét chñ thÓ A cÇn x−ng danh sÏ yªu cÇu TA cÊp
cho m×nh mét chøng chØ. Thñ tôc cÊp chøng chØ cho A ®−îc tiÕn
hµnh nh− sau:
1.TA x¸c lËp c¸c th«ng tin vÒ danh tÝnh cña A nh− hä,tªn,
ngµy sinh, sè chøng minh hoÆc hé chiÕu, v.v... d−íi d¹ng mét d·y
ký tù mµ ta ký hiÖu lµ IA hay ID(A).
2. A chän bÝ mËt mét sè ngÉu nhiªn a (0≤ a ≤ q-1), tÝnh
mod
a
v α−
= p
vµ chuyÓn sè v cho TA.
3. TA t¹o ch÷ ký s =sigTA(IA, v) vµ cÊp cho A chøng chØ
C(A) = (ID(A), v, s ).
Nh− vËy, chøng chØ mµ TA cÊp cho A gåm (IA, v) vµ ch÷ ký cña TA
trªn th«ng tin (IA, v) ®ã. Chó ý r»ng TA cÊp chøng chØ cho A mµ
hoµn toµn kh«ng biÕt g× vÒ th«ng tin bÝ mËt cña A lµ sè a.
B©y giê, víi chøng chØ C(A) ®ã, A cã thÓ x−ng danh víi bÊt
kú ®èi t¸c B nµo b»ng c¸ch cïng B thùc hiÖn mét giao thøc x¸c nhËn
danh tÝnh nh− sau:
1. A chän thªm mét sè ngÉu nhiªn k (0≤ k ≤ q-1), tÝnh
k
γ α
= p
mod ,
vµ göi cho B c¸c th«ng tin C(A) vµ γ.
2. B kiÓm thö ch÷ ký cña TA trong chøng chØ C(A) bëi hÖ
thøc verTA(ID(A), v, s) =®óng. KiÓm thö xong, B chän mét sè ngÉu
nhiªn r (1≤ r ≤ 2t
) vµ göi r cho A.
3. A tÝnh y =k +ar modq vµ göi y cho B.
4. B thö ®iÒu kiÖn
y r
v
γ α
≡ (modp)
vµ nÕu ®iÒu kiÖn ®ã ®−îc tho¶ m·n th× x¸c nhËn danh tÝnh cña A.
Thùc hiÖn giao thøc ®ã, A sÏ chøng minh ®−îc danh tÝnh
cña m×nh, v×
y r k ar r k ar ar k
v v
α α α α
+ + −
α
≡ ≡ ≡ (modp)
≡ γ (modp),
tøc ®iÒu kiÖn mµ B cÇn thö lµ ®óng.
S¬ ®å x−ng danh cïng víi giao thøc x¸c nhËn danh tÝnh nh−
m« t¶ ë trªn cã c¸c tÝnh chÊt ®¸p øng c¸c yªu cÇu nh− ®Ò ra tõ phÇn
®Æt vÊn ®Ò ë tiÕt 6.1. §iÒu võa chøng minh ë trªn chøng tá r»ng
nÕu A tu©n thñ giao thøc th× B x¸c nhËn danh tÝnh cña A lµ ®óng (B
tin r»ng A qu¶ thùc cã së h÷u mét bÝ mËt a, dï B còng kh«ng biÕt
c¸i bÝ mËt a ®ã lµ sè nµo).
B©y giê ta xÐt kh¶ n¨ng mét ng−êi O muèn gi¶ danh A ®Ó
giao dÞch víi B. Kh¶ n¨ng thø nhÊt lµ O t¹o ra mét chøng chØ gi¶
m¹o víi danh tÝnh cña A, mét chøng chØ nh− vËy cã d¹ng
138
C’(A) = (ID(A), v , s’),
trong ®ã v ≠ v. §Ó t¹o ra mét chøng chØ nh− vËy th× O ph¶i t¹o ra
®−îc s lµ ch÷ ký cña TA trªn (ID(A), v ), O kh«ng biÕt thuËt to¸n
ký sigTA nªn kh«ng thÓ t¹o ra ch÷ ký ®óng cña TA ®−îc, vµ nÕu lÊy
s’ lµ mét ch÷ ký gi¶ m¹o, th× khi thùc hiÖn ®iÓm 2 cña giao thøc x¸c
nhËn danh tÝnh thÓ nµo B còng ph¸t hiÖn ra. Kh¶ n¨ng thø hai lµ O
vÉn dïng chøng chØ thËt C(A) cña A, tù chän mét sè k vµ tÝnh sè γ
t−¬ng øng theo ®iÓm 1 cña giao thøc x¸c nhËn danh tÝnh. VÊn ®Ò ë
®©y lµ khi B göi ®Õn sè r , O ph¶i tr¶ lêi l¹i b»ng mét sè y sao cho
®iÒu kiÖn (modp) ®−îc nghiÖm ®óng. §iÒu nµy xem ra lµ
rÊt khã, Ýt nhÊt còng khã nh− lµ O biÕt bÝ mËt vÒ sè a cña A vËy.
Thùc vËy, gi¶ sö O cã kh¶ n¨ng nãi trªn, khi ®ã ta cho hai lÇn hái r
y r
v
γ α
≡
1
vµ r2 O sÏ cã hai tr¶ lêi y1 vµ y2, vµ ta cã
1 1 2 2
mod )
y r y r
v v
γ α α
≡ ≡ p
( ,
tõ ®ã suy ra
modp).
1 2 2 1
(
y y r r
v
α − −
≡
V× v = α -a
, ta cã
y1 – y2 ≡ a(r2 – r1) (modq).
V× q lµ sè nguyªn tè  2t
vµ 0 ⎟r2 - r1⎟  2t
, nªn gcd(r2 - r1, q) =1, vµ
O cã thÓ tÝnh ®−îc 1
1 2 2 1
( )(
a y y r r )−
= − − modq .
ThÝ dô : LÊy p =88667, q = 1031 vµ t =10. PhÇn tö α = 70322 cã cÊp q
trong p
Z∗
. Gi¶ sö A chän sè mò bÝ mËt lµ a = 755, khi ®ã v = 13136.
A vµ B cã thÓ thùc hiÖn giao thøc x¸c ®Þnh danh tÝnh nh− sau: A
chän k = 543, vµ tÝnh γ =70322543
mod88667 =84109 råi göi γ cho B.
Gi¶ sö B göi r =1000 cho A, A tr¶ lêi l¹i b»ng y =k +ar modq =
=543+755.1000mod1031 = 851. B thö ®iÒu kiÖn (modp),
trong tr−êng hîp nµy lµ:
y r
v
γ α
≡
84109 ≡ 70322851
131361000
(mod 88667),
®ã lµ ®ång d− thøc ®óng. B x¸c nhËn danh tÝnh cña A.
B©y giê vÉn víi c¸c tham sè trªn, gi¶ thiÕt O cã kh¶ n¨ng tr¶
lêi ®óng hai c©u hái r1=1000 vµ r2=19 cña B b»ng y1=851 vµ y2=454.
Khi ®ã O cã thÓ tÝnh ®−îc
1
1 2 2 1
( )(
a y y r r )−
= − − modq
= (851-454)(19-1000)-1
mod1031 = 755,
®óng lµ sè bÝ mËt cña A.
S¬ ®å x−ng danh Schnorr, víi giao thøc x¸c nhËn danh tÝnh
nh− ®Þnh nghÜa ë trªn, lµ cã tÝnh chÊt ®Çy ®ñ (viÖc cã bÝ mËt a b¶o
®¶m A chøng minh ®−îc danh tÝnh cña m×nh), vµ ®óng ®¾n ( viÖc
gi¶ danh A thµnh c«ng còng khã nh− biÕt bÝ mËt cña A); tuy nhiªn
nh− võa tr×nh bµy trong thÝ dô trªn, s¬ ®å ®ã ch−a ph¶i lµ an toµn,
139
viÖc gi¶ danh lµ khã nÕu O kh«ng hÒ biÕt g× vÒ s¬ ®å x−ng danh ®ã,
chø nÕu, ch¼ng h¹n, O ®· ®−îc A x−ng danh víi Ýt nhÊt hai lÇn (tøc
hai lÇn biÕt ®−îc hai cÆp sè (r1, y1) vµ (r2, y2)) th× cã kh¶ n¨ng O ph¸t
hiÖn ®−îc bÝ mËt cña A, nh− vËy viÖc x−ng danh cña A kh«ng cßn
an toµn n÷a!
§Ó kh¾c phôc ®iÓm yÕu ®ã cña s¬ ®å Schnorr, Okamoto ®·
®Ò xuÊt mét söa ®æi lµm cho s¬ ®å trë nªn an toµn, söa ®æi nµy dùa
trªn tÝnh khã cña mét bµi to¸n ®Æc biÖt vÒ tÝnh l«garit rêi r¹c. Ta
tr×nh bµy trong tiÕt sau ®©y s¬ ®å ®−îc söa ®æi ®ã.
6.3. S¬ ®å x−ng danh Okamoto.
Còng nh− ®èi víi s¬ ®å Schnorr, s¬ ®å x−ng danh Okamoto
cÇn cã mét c¬ quan uû th¸c TA ®Ó cÊp chøng chØ cho c¸c ng−êi
tham gia.
TA chä tr−íc c¸c sè nguyªn tè p vµ q nh− ®èi víi s¬ ®å
Schnorr. Sau ®ã, TA chän hai sè 1 2
, ,
p
Z
α α ∗
∈ cïng cã cÊp q . Gi¸ trÞ
1 2
log
c α α
= (tøc gi¸ trÞ c sao cho 1
c
2
α α
= ) ®−îc gi÷ tuyÖt mËt ®èi
víi mäi ng−êi tham gia, kÓ c¶ A; nãi c¸ch kh¸c, ta gi¶ thiÕt r»ng
viÖc tÝnh ra c lµ cùc kú khã ®èi víi bÊt kú ai (ch¼ng h¹n, A,O, hoÆc
thËm chÝ liªn minh cña A vµ O,...).
Thñ tôc cÊp chøng chØ cho A ®−îc tiÕn hµnh nh− sau:
1. TA x¸c lËp c¸c th«ng tin vÒ danh tÝnh cña A d−íi d¹ng
mét d·y ký tù mµ ta ký hiÖu lµ IA hay ID(A).
2. A chän bÝ mËt hai sè ngÉu nhiªn a1, a2 (0≤ a1, a2 ≤ q-1), tÝnh
1 2
1 2 mod
a a
v α α
− −
= p ,
vµ chuyÓn sè v cho TA.
3. TA t¹o ch÷ ký s =sigTA(IA, v) vµ cÊp cho A chøng chØ
C(A) = (ID(A), v, s ).
B©y giê, víi chøng chØ C(A) ®ã, A cã thÓ x−ng danh víi bÊt
kú ®èi t¸c B nµo b»ng c¸ch cïng B thùc hiÖn mét giao thøc x¸c nhËn
danh tÝnh nh− sau:
1. A chän thªm hai sè ngÉu nhiªn k1,k2 (0≤ k1,k2 ≤ q-1), tÝnh
1 2
1 2
k k
γ α α
= p
mod ,
vµ göi cho B c¸c th«ng tin C(A) vµ γ.
2. B kiÓm thö ch÷ ký cña TA trong chøng chØ C(A) bëi hÖ
thøc verTA(ID(A), v, s) =®óng. KiÓm thö xong, B chän mét sè ngÉu
nhiªn r (1≤ r ≤ 2t
) vµ göi r cho A.
3. A tÝnh y1 =k1 +a1r modq ,
y2 =k2 +a2r modq ,
vµ göi y1,y2 cho B.
4. B thö ®iÒu kiÖn
140
1 2
1 2
y y r
v
γ α α
≡ (modp)
vµ nÕu ®iÒu kiÖn ®ã ®−îc tho¶ m·n th× x¸c nhËn danh tÝnh cña A.
Thùc hiÖn giao thøc ®ã, A sÏ chøng minh ®−îc danh tÝnh
cña m×nh, v×
(modp)
1 2 1 1 2 2 1 2
1 2 1 2 1 2
y y k a r k a r a r a r
r
v
α α α α α α
+ + − −
≡
1 2
1 2
k k
α α
≡ (modp)
≡ γ (modp)
tøc ®iÒu kiÖn mµ B cÇn thö lµ ®óng. Nh− vËy, do biÕt cÆp sè bÝ mËt
(a1, a2), nªn A cã thÓ thùc hiÖn th«ng suèt giao thøc x¸c nhËn ®Ó
chøng minh danh tÝnh cña m×nh.
Ng−îc l¹i, mét ng−êi kh¸c A, do kh«ng biÕt cÆp sè bÝ mËt
(a1, a2), nªn khã cã kh¶ n¨ng tÝnh ®óng ®−îc (y1,y2) ®Ó tr¶ lêi B ë
b−íc 3 cña giao thøc, tøc lµ kh«ng v−ît qua ®−îc sù kiÓm thö cña
giao thøc ®Ó m¹o nhËn m×nh lµ A.
B©y giê gi¶ sö cã mét ng−êi O cã thÓ thùc hiÖn th«ng suèt
giao thøc x¸c nhËn ®Ó cã thÓ ®−îc m¹o nhËn lµ A, ch¼ng h¹n Ýt nhÊt
hai lÇn. §iÒu ®ã cã nghÜa lµ O biÕt ®−îc hai sè r ≠ s vµ hai cÆp sè
(y1,y2), (z1,z2) sao cho
(modp).
1 2 1 2
1 2 1 2
y y z z
r
v
γ α α α α
≡ ≡ s
v
§Æt
1
1 1 1
1
2 2
( )( ) mod
( )( )
b y z r s
y z r s
−
−
= − −
= − −
2
q,
b q
mod ,
ta sÏ ®−îc
1
1 2
b b
v 2
α α
− −
≡ (modp),
do ®ã
1 2 1
1 2 1 2
b b a a2
α α α α
− − − −
≡ (modp),
tøc lµ
1
1 2
1 2
a b b a
α α
− 2
−
≡ (modp).
Gi¶ thiÕt r»ng O vµ A liªn minh víi nhau, khi ®ã biÕt ®−îc c¶ c¸c sè
a1, a2, b1, b2. NÕu gi¶ thiÕt (a1, a2) ≠ (b1, b2) th× a2 ≠ b2 , vµ
(b2 - a2)-1
modq tån t¹i, vµ l«garit rêi r¹c c ®−îc tÝnh bëi
1
1
2 1 1 2 2
log ( )( )
c a b b
α α a −
= = − − modq.
Nh− vËy, nÕu O cã thÓ thùc hiÖn th«ng suèt giao thøc x¸c nhËn ®Ó
®−îc m¹o nhËn lµ A th× khi O vµ A liªn minh víi nhau cã thÓ t×m
®−îc kh¸ dÔ dµng l«garit rêi r¹c c. Nh−ng tõ ®Çu ta ®· gi¶ thiÕt
viÖc t×m ra c lµ cùc kú khã ®èi víi bÊt kú ai (lµ A, lµ O, thËm chÝ lµ
liªn minh cña A vµ O,...), nªn còng sÏ cùc kú khã ®Ó O thùc hiÖn
®−îc th«ng suèt giao thøc x¸c nhËn víi môc ®Ých m¹o x−ng lµ A.
VËy lµ ta ®· chøng minh ®−îc tÝnh an toµn cña s¬ ®å x−ng danh
141
Okamoto víi giao thøc x¸c nhËn danh tÝnh nh− m« t¶ ë trªn. Trong
chøng minh ®ã cßn mét sè chç tinh tÕ cÇn ®uîc bæ sung thªm,
ch¼ng h¹n nh− v× sao cã thÓ gi¶ thiÕt (a1, a2) ≠ (b1, b2), thùc ra ng−êi
ta ®· chøng minh ®−îc r»ng x¸c suÊt cña kh¶ n¨ng (a1, a2) = (b1, b2)
lµ rÊt bÐ, kh«ng ®¸ng kÓ. Tuy nhiªn, ®Ó ®¬n gi¶n tr×nh bµy, xin
phÐp ®−îc bá qua mét vµi chi tiÕt chøng minh tinh tÕ ®ã.
6.4. S¬ ®å x−ng danh Guillou-Quisquater.
S¬ ®å Guillou-Quisquater còng ®−îc x©y dùng theo cïng
mét c¸ch thøc nh− c¸c s¬ ®å Schnorr vµ Okamoto kÓ trªn, nh−ng
bµi to¸n khã mµ ta dùa vµo ë ®©y kh«ng ph¶i lµ bµi to¸n tÝnh
l«garit rêi r¹c mµ lµ bµi to¸n RSA.
S¬ ®å còng cÇn cã sù tham gia cña mét c¬ quan uû th¸c TA
®Ó cÊp chøng chØ cho c¸c ng−êi tham gia. TA chän hai sè nguyªn tè
lín p vµ q vµ tÝnh tÝch n =pq, gi÷ bÝ mËt p ,q vµ c«ng khai n. C¸c
tham sè ®ã ®−îc chän sao cho bµi to¸n ph©n tÝch n thµnh thõa sè lµ
rÊt khã. TA còng chän thªm mét sè b lµ sè nguyªn tè cã ®é lín
kho¶ng 240
nh− lµ mét tham sè an toµn. Sè b còng ®−îc xem lµ sè
mò tho¶ m·n ®iÒu kiÖn RSA, nghÜa lµ viÖc tÝnh v =ub
modn lµ dÔ,
nh−ng viÖc tÝnh ng−îc u tõ v lµ rÊt khã, nÕu kh«ng biÕt p,q.
Thñ tôc cÊp chøng chØ cho mét ng−êi tham gia A ®−îc tiÕn
hµnh nh− sau:
1.TA x¸c lËp c¸c th«ng tin vÒ danh tÝnh cña A d−íi d¹ng mét
d·y ký tù mµ ta ký hiÖu lµ IA hay ID(A).
2. A chän bÝ mËt mét sè ngÉu nhiªn u (0≤ u ≤ n-1), tÝnh
,
1
( ) mod
b
v n
−
= u
vµ chuyÓn sè v cho TA.
3. TA t¹o ch÷ ký s =sigTA(IA, v) vµ cÊp cho A chøng chØ
C(A) = (ID(A), v, s ).
Nh− vËy, chøng chØ mµ TA cÊp cho A gåm (IA, v) vµ ch÷ ký cña TA
trªn th«ng tin (IA, v) ®ã. Chó ý r»ng TA cÊp chøng chØ cho A mµ cã
thÓ kh«ng biÕt g× vÒ th«ng tin bÝ mËt cña A lµ sè u.
B©y giê, víi chøng chØ C(A) ®ã, A cã thÓ x−ng danh víi bÊt
kú ®èi t¸c B nµo b»ng c¸ch cïng B thùc hiÖn mét giao thøc x¸c nhËn
danh tÝnh nh− sau:
1. A chän thªm mét sè ngÉu nhiªn k (0≤ k ≤ n-1), tÝnh
b
k
γ = n
mod ,
vµ göi cho B c¸c th«ng tin C(A) vµ γ.
2. B kiÓm thö ch÷ ký cña TA trong chøng chØ C(A) bëi hÖ
thøc verTA(ID(A), v, s) =®óng. KiÓm thö xong, B chän mét sè ngÉu
nhiªn r (1≤ r ≤ b -1 ) vµ göi r cho A.
142
3. A tÝnh y =k.u r
modn vµ göi y cho B.
4. B thö ®iÒu kiÖn
r b
v y
γ ≡ (modn)
vµ nÕu ®iÒu kiÖn ®ã ®−îc tho¶ m·n th× x¸c nhËn danh tÝnh cña A.
Còng nh− c¸c tr−êng hîp tr−íc, viÖc chøng minh tÝnh ®Çy
®ñ cña s¬ ®å lµ rÊt ®¬n gi¶n:
( ) ( ) (mod )
(mod )
(mod ).
r b b r r b
br b br
b
v y k
k
k γ
−
−
≡
≡
≡ ≡
u u
u u n
n
n
Mét ng−êi kh¸c A, do kh«ng biÕt sè bÝ mËt u , nªn kh«ng thÓ
tÝnh ®óng ®−îc sè y ë b−íc 3 cña giao thøc ®Ó ®−îc B x¸c nhËn
(nh− lµ A) ë b−íc 4, tøc kh«ng thÓ m¹o nhËn m×nh lµ A; ®ã lµ tÝnh
®óng ®¾n cña s¬ ®å.
Gi¶ sö cã mét ng−êi O cã thÓ thùc hiÖn th«ng suèt giao thøc
x¸c nhËn ®Ó cã thÓ ®−îc m¹o nhËn lµ A, ch¼ng h¹n Ýt nhÊt hai lÇn.
§iÒu ®ã cã nghÜa lµ O biÕt ®−îc hai sè r1 ≠ r2 vµ hai sè y1, y2 sao cho
1 2
1 2 (mod )
r r
b b
v y v y
γ ≡ ≡ n .
Gi¶ thiÕt r1  r2, khi ®ã ta cã
1 2
2 1
( / ) (mod )
r r b
v y y
−
≡ .
n
Do 0 r1 -r2 b vµ b lµ sè nguyªn tè nªn gcd(r1 -r2, b) =1, cã thÓ tÝnh
®−îc dÔ dµng t =(r1 -r2)-1
modb , vµ cã
(modn).
1 2
( )
2 1
( / )
r r t bt
v y y
−
≡
Do t =(r1 -r2)-1
modb nªn ta cã
(r1 -r2)t =lb +1
víi l lµ mét sè nguyªn d−¬ng nµo ®ã, v× vËy,
(modn),
1
2 1
( / )
lb bt
v y y
+
≡
hay lµ
(modn).
1
2 1
( / ) ( )
bt lb
v y y v−
≡
N©ng c¶ hai vÒ lªn luü thõa bËc b-1
modφ (n), ta ®−îc
1 1
2 1
( / ) ( ) (mod ).
t l
y y v
− −
≡
u n
cuèi cïng, tÝnh nghÞch ®¶o cña hai vÕ theo modn ta ®−îc
u = modn .
1 2
( / )t l
y y v
Nh− vËy, O tÝnh ®−îc sè bÝ mËt u trong thêi gian ®a thøc! Theo gi¶
thiÕt, ®iÒu ®ã kh«ng thÓ xÈy ra, v× vËy, gi¶ thiÕt vÒ viÖc O cã thÓ
thùc hiÖn th«ng suèt giao thøc x¸c nhËn ®Ó ®−îc m¹o nhËn danh
tÝnh lµ A lµ kh«ng ®óng; s¬ ®å x−ng danh ®−îc chøng minh lµ an
toµn.
143
ThÝ dô: Gi¶ sö TA chän p =467, q =479, nh− vËy n =223693, TA
còng chän thªm b =503.
Gi¶ sö A chän sè bÝ mËt u =101576, vµ tÝnh
v =(101576-1
)503
mod223693
= 89888.
TA t¹o ch÷ ký s =sigTA(ID(A), v) vµ cÊp cho A chøng chØ
C(A) = (ID(A),v,s).
Gi¶ thiÕt A muèn x−ng danh víi B, A chän k =187485, vµ göi
cho B gi¸ trÞ γ =187485503
mod223693 =24412. B dïng thuËt to¸n
kiÓm thö verTA ®Ó thö ®iÒu kiÖn verTA(ID(A),v,s) = ®óng, sau ®ã göi
®Õn A c©u hái r = 375. A sÏ tr¶ lêi l¹i b»ng
y =187485.101576375
mod223693
= 93725.
B thö ®iÒu kiÖn (modn), trong tr−êng hîp nµy lµ
r b
v y
γ ≡
24412 ≡ 89888375
. 93725503
(mod 223693),
®ång d− thøc ®ã ®óng. VËy B x¸c nhËn danh tÝnh cña A.
B©y giê ta l¹i gi¶ thiÕt lµ O biÕt ®−îc hai sè r1=401, r2=375 vµ
c¸c sè t−¬ng øng y1=103386 vµ y2=93725. O biÕt r»ng
v401
.103386b
≡ v 375
. 93725b
(modn).
O sÏ tÝnh
t =(r1- r2)-1
modb = (401-375)-1
mod503 =445,
sau ®ã tÝnh ®−îc
1 2
( ) 1 (401 375)445 1
23
503
r r t
l
b
− − − −
= = = .
Cuèi cïng, O sÏ t×m ®−îc gi¸ trÞ bÝ mËt u lµ
modn
1 2
( / )t l
y y v
=
u
= (103386/93725)445
.8988823
mod 223693
= 101576,
lµ sè bÝ mËt cña A.
Chó ý: S¬ ®å x−ng danh Guillou-Quisquater, còng nh− c¸c s¬ ®å
Schnorr vµ Okamoto tr−íc ®ã, ®Òu cÇn cã chøng chØ cña TA cho
mçi ng−êi tham gia. Ta cã thÓ thay ®æi chót Ýt ®Ó biÕn s¬ ®å x−ng
danh ®ã thµnh mét s¬ ®å x−ng danh dùa vµo danh tÝnh mµ kh«ng
cÇn cã chøng chØ nh− sau: S¬ ®å dïng mét hµm b¨m c«ng khai h ,
vµ thay cho viÖc cÊp chøng chØ C(A) cho ng−êi tham gia A, TA sÏ
cÊp cho A danh tÝnh ID(A) cïng mét sè u ®−îc tÝnh bëi c«ng thøc
u =(h(ID(A))-1
)a
modn .
(a lµ mét sè mò bÝ mËt cña TA). Sè u ®−îc A gi÷ riªng cho m×nh.
Khi A cÇn x−ng danh víi B, A vµ B cïng thùc hiÖn mét giao thøc
x¸c nhËn danh tÝnh sau ®©y:
1. A chän mét sè ngÉu nhiªn k, 0≤ k ≤ n -1, vµ tÝnh
γ = k b
modn ,
144
råi göi ID(A) vµ γ cho B.
2. B tÝnh v =h(ID(A)); chän mét sè ngÉu nhiªn r (0≤ r ≤1) vµ
göi r cho A.
3. A tÝnh y =kur
modn vµ göi y cho B.
4. B thö ®iÒu kiÖn γ ≡ v y
r b
(modn) ®Ó x¸c nhËn danh tÝnh cña
A.
Khi x−ng danh theo giao thøc nãi trªn víi B, A chØ cÇn biÕt
gi¸ trÞ u lµ mét gi¸ trÞ ®−îc tÝnh bëi TA (vµ chØ TA tÝnh ®−îc gi¸ trÞ
®ã). O kh«ng thÓ gi¶ m¹o danh tÝnh cña A v× O kh«ng biÕt gi¸ trÞ u.
6.5. Giao thøc Feige-Fiat-Shamir.
Giao thøc x−ng danh Feige-Fiat-Shamir mµ ta sÏ giíi thiÖu
trong tiÕt nµy th−êng ®−îc xem lµ mét giao thøc ®iÓn h×nh, trong
®ã mét chñ thÓ tù x−ng danh b»ng c¸ch chøng minh lµ m×nh biÕt
mét bÝ mËt víi viÖc dïng mét kiÓu chøng minh mµ ta sÏ gäi lµ
chøng minh kh«ng lé tri thøc (zero-knowledge proof), tøc lµ trong
chøng minh ®ã kh«ng tiÕt lé bÊt cø mét th«ng tin dï nhá nµo liªn
quan ®Õn gi¸ trÞ bÝ mËt cña chñ thÓ x−ng danh. ë ®©y,thuËt ng÷ “tri
thøc” chØ ®−îc dïng víi mét nghÜa rÊt h¹n chÕ ®Ó nãi vÒ viÖc biÕt
mét bÝ mËt cña mét chñ thÓ, mµ c¸i biÕt nµy th−êng khi chØ lµ biÕt
mét bit (0 hoÆc 1, ®óng hoÆc sai), kh«ng lé tri thøc lµ kh«ng tiÕt lé
c¸i biÕt vÒ mét bit ®ã. Trong tiÕt sau ta sÏ ®Ò cËp ®Õn c¸c “chøng
minh kh«ng lé tri thøc” víi mét nghÜa réng h¬n, khi ®ã “tri thøc” sÏ
cã nghÜa lµ biÕt chøng minh cña mét bµi to¸n, vµ chøng minh
kh«ng lé tri thøc sÏ cã nghÜa lµ thuyÕt phôc mét ®èi t¸c tin r»ng
m×nh biÕt c¸ch chøng minh cña bµi to¸n ®ã, vµ ngoµi viÖc bÞ thuyÕt
phôc ®ã ra th× ®èi t¸c kh«ng khai th¸c ®−îc bÊt cø th«ng tin g× kh¸c
®Ó cã thÓ lÆp l¹i chøng minh ®ã c¶.
B©y giê ta trë l¹i víi viÖc tr×nh bµy giao thøc x−ng danh
Feige-Fiat-Shamir.
ë b−íc chuÈn bÞ, trung t©m ®−îc uû th¸c (TA) c«ng bè mét
m«®uyn chung n =pq cho mäi ng−êi tham gia, sau khi ®· chän vµ
gi÷ bÝ mËt hai sè nguyªn tè lín p vµ q , mçi sè nµy ®Òu ®ång d− víi
3 theo mod4. Bµi to¸n ph©n tÝch n thµnh thõa sè ®−îc gi¶ thiÕt lµ
cùc khã. Mét sè nguyªn n nh− trªn lµ sè nguyªn Blum, víi -1 lµ
mét gi¶ thÆng d− bËc hai theo modn (tøc lµ mét bÊt thÆng d− bËc
hai cã ký hiÖu Jacobi b»ng +1).
Mçi ng−êi tham gia thùc hiÖn c¸c viÖc chuÈn bÞ nh− sau:
- Chän k sè nguyªn ngÉu nhiªn s1, s2,...,sk trong tËp {1,...,n -1},
vµ k bit ngÉu nhiªn b1, b2,..., bk .
- TÝnh 2 1
( 1) ( ) mod
i
b
i i
v s −
= − n víi mäi 1 ≤ i ≤ k .
145
- Mçi chñ thÓ A ®¨ng ký víi TA kho¸ c«ng khai (v1,..., vk ; n)
cña m×nh, vµ gi÷ cho riªng m×nh kho¸ bÝ mËt (s1 ,...,sk ).
Ho¹t ®éng cña giao thøc x−ng danh sÏ gåm viÖc thùc hiÖn t
vßng hái-®¸p sau ®©y; B sÏ chÊp nhËn danh tÝnh cña A nÕu tÊt c¶ t
vßng ®ã ®Òu thµnh c«ng. Gi¶ thiÕt B cã kho¸ c«ng khai cña A. Mçi
vßng gåm c¸c b−íc :
(a) A chän sè nguyªn ngÉu nhiªn r (1≤ r ≤ n –1), vµ mét bit ngÉu
nhiªn b , tÝnh x = (-1)b
.r2
mod n ; vµ göi x cho B nh− mét b»ng chøng.
(b) B göi cho A mét vect¬ gåm k bit ngÉu nhiªn (e1,..., ek ) nh− mét
c©u hái hay lêi th¸ch ®è.
(c) A tÝnh vµ göi cho B y = 1
. j
k e
j
j
r s
=
∏ modn , nh− c©u tr¶ lêi.
(d) B tÝnh 2
1
. j
k e
j
j
z y v
=
= ∏ modn , vµ thö ®iÒu kiÖn z =±x vµ z≠ 0 .
Chó ý r»ng trong giao thøc trªn ®©y,c¸c sè k vµ t lµ c¸c tham sè an
toµn nh− sÏ ®−îc gi¶i thÝch trong mét ®o¹n sau.
ThÝ dô : Gi¶ sö trung t©m TA chän p =683 vµ q =811, vµ c«ng
bè n = pq = 553913. Chän c¸c tham sè k =3, t =1.
Gi¶ sö A chän s1 =157, s2 =43215, s3 =4646, vµ 3 bit b1=1, b2=0,
b3=1. TÝnh ra v1=441845, v2=338402, v3=124423.
Kho¸ c«ng khai cña A lµ (441845, 338402, 124423; 553913),
kho¸ bÝ mËt lµ (157, 43215, 4646).
Giao thøc x−ng danh cña A cã thÓ ®−îc thùc hiÖn nh− sau:
a) A chän r =1279, b =1, tÝnh ®−îc x =25898, vµ göi cho B,
b) B ra lêi th¸ch ®è (e1, e2, e3)=(0,0,1).
c) A tr¶ lêi l¹i b»ng y=rs3 modn = 403104.
d) B tÝnh z = y2
v3modn = 25898 vµ thö ®óng z =+x vµ z≠ 0 .
Do ®ã B chÊp nhËn danh tÝnh cña A.
§èi víi giao thøc Feige-Fiat-Shamir, ng−êi ta chøng minh ®−îc
r»ng kh¶ n¨ng thµnh c«ng cña viÖc m¹o x−ng danh tÝnh cã x¸c suÊt
nhiÒu l¾m lµ 2-kt
, do ®ã nÕu chän k vµ t sao cho kt =20 ch¼ng h¹n th×
x¸c suÊt ®ã lµ kho¶ng 1 phÇn triÖu, vµ nÕu kt =40 th× x¸c suÊt ®ã lµ
kho¶ng 1 phÇn triÖu triÖu, cã thÓ coi lµ kh«ng thÓ xÈy ra. TÝnh an
toµn cña giao thøc dùa trªn ®é khã cña bµi to¸n khai c¨n bËc hai
theo m«®uyn lµ mét hîp sè lín khã ph©n tÝch thµnh thõa sè. Giao
thøc còng cã tÝnh chÊt lµ mét chøng minh kh«ng lé tri thøc theo
nghÜa lµ nhê biÕt kho¸ bÝ mËt mµ A thùc hiÖn viÖc tr¶ lêi trong c¸c
vßng hái-®¸p mét c¸ch tr«i ch¶y, nh−ng toµn bé c¸c tr¶ lêi cña A
kh«ng ®Ó lé bÊt kú mét chót bÝ mËt nµo ®Ó ng−êi kh¸c (kÓ c¶ B) cã
thÓ khai th¸c nh»m ph¸t hiÖn (kho¸) bÝ mËt cña A.
6.6. PhÐp chøng minh kh«ng lé tri thøc.
146
(zero-knowledge proof)
Nh− ®· giíi thiÖu trong phÇn më ®Çu 6.1, bµi to¸n x−ng
danh vµ x¸c nhËn danh tÝnh ®ãng mét vai trß cã ý nghÜa to lín
trong mäi ho¹t ®éng giao dÞch cña x· héi. §Ó viÖc x−ng danh ®−îc
an toµn, mét yªu cÇu quan träng lµ cÇn chèng ®−îc viÖc m¹o x−ng
danh tÝnh cña ng−êi kh¸c trong giao dÞch. Khi viÖc giao dÞch ®−îc
®iÖn tö ho¸ mét c¸ch réng r·i, yªu cÇu an toµn ®Æt ra nhiÒu vÊn ®Ò
cÇn ®−îc gi¶i quyÕt b»ng nh÷ng gi¶i ph¸p khoa häc. Nh÷ng gi¶i
ph¸p ®¬n gi¶n vµ th« s¬ nh− tr×nh tªn tuæi, mËt hiÖu (password),...
kh«ng cßn an toµn, v× khã gi÷ ®−îc bÝ mËt lµm cho ng−êi kh¸c cã
thÓ dÔ dµng b¾t ch−íc ®Ó m¹o x−ng. Trong c¸c phÇn trªn cña
ch−¬ng nµy, ta ®· tr×nh bµy mét sè s¬ ®å x−ng danh dùa vµo c¸c
giao thøc hái-®¸p, ng−êi kiÓm thö ®−a ra c¸c c©u hái, vµ ng−êi
x−ng danh tr¶ lêi, dùa trªn c¸c tr¶ lêi ®ã ng−êi kiÓm thö hoÆc ®−a
thªm nh÷ng c©u hái míi, hoÆc chÊp nhËn (hay b¸c bá) danh tÝnh
cña ng−êi x−ng danh. PhÇn lín c¸c giao thøc hái-®¸p trong c¸c s¬
®å x−ng danh ®ã ®Òu cã Ýt nhiÒu tÝnh chÊt cña mét chøng minh
kh«ng lé tri thøc, dï tri thøc mµ ta ®Ò cËp ®Õn chØ lµ viÖc biÕt hay
kh«ng biÕt mét bÝ mËt (cña kho¸ x−ng danh). Kh¸i niÖm chøng
minh kh«ng lé tri thøc ban ®Çu xuÊt ph¸t tõ viÖc nghiªn cøu c¸c s¬
®å x−ng danh, vÒ sau ®· ®−îc më réng cho nhiÒu lo¹i bµi to¸n
kh¸c.
C¸c bµi to¸n mµ ta sÏ t×m kiÕm cho chóng nh÷ng “chøng
minh kh«ng lé tri thøc” th−êng lµ nh÷ng bµi to¸n quyÕt ®Þnh, ®ã lµ
nh÷ng bµi to¸n ®−îc x¸c ®Þnh bëi mét tËp d÷ liÖu Σ vµ mét tÝnh
chÊt Π, vµ néi dung cña bµi to¸n lµ xÐt xem víi mçi x ∈ Σ, x cã tÝnh
chÊt Π hay kh«ng. Mét sè líp c¸c bµi to¸n quyÕt ®Þnh nh− vËy ®·
®−îc xÐt ®Õn khi ta nghiªn cøu vÒ ®é phøc t¹p tÝnh to¸n trong
ch−¬ng II. Tham gia vµo mét giao thøc chøng minh gåm cã hai
ng−êi: mét lµ ng−êi chøng minh (ký hiÖu lµ P-prover) vµ mét lµ
ng−êi kiÓm thö (ký hiÖu V- verifier). Giao thøc gåm c¸c c©u hái-
®¸p gi÷a V vµ P, th−êng lµ V ®−a ra c¸c c©u hái hay th¸ch ®è, vµ V
®−a ra c¸c c©u tr¶ lêi. Gi¶ thö P biÕt ch¾c ch¾n r»ng x cã tÝnh chÊt
Π, P cã thÓ dïng mét giao thøc chøng minh ®Ó thuyÕt phôc V tin
r»ng x cã tÝnh chÊt Π, vµ mét giao thøc chøng minh ®−îc gäi lµ
kh«ng lé tri thøc, nÕu ngoµi viÖc thuyÕt phôc ®−îc V tin lµ x cã tÝnh
chÊt Π ra, P kh«ng ®Ó lé bÊt cø mét th«ng tin nµo cã thÓ gióp ng−êi
kh¸c (kÓ c¶ V) dïng ®Ó chøng minh x cã tÝnh chÊt Π. Tr−íc khi ®−a
ra ®−îc c¸c ®Þnh nghÜa to¸n häc vÒ c¸c kh¸i niÖm ®ã, ta h·y xÐt mét
thÝ dô vÒ mét bµi to¸n quen thuéc lµ bµi to¸n ®¼ng cÊu graph, víi
tËp d÷ liÖu Σ lµ tËp c¸c cÆp graph (G1, G 2), vµ néi dung bµi to¸n lµ
c©u hái: hai graph G1 vµ G 2 cã ®¼ng cÊu víi nhau kh«ng. Trong lý
147
thuyÕt vÒ ®é phøc t¹p tÝnh to¸n, bµi to¸n nµy cã mét vai trß ®Æc
biÖt, v× lµ mét bµi to¸n ch−a biÕt cã thuËt to¸n nµo víi thêi gian ®a
thøc gi¶i nã hay kh«ng, nh−ng còng ch−a cã chøng minh nµo
chøng tá nã lµ NP-®Çy ®ñ .
D−íi ®©y lµ s¬ ®å t−¬ng t¸c chøng minh kh«ng lé tri thøc
cña bµi to¸n ®¼ng cÊu graph:
Gi¶ sö cho hai graph G1 vµ G2 cã tËp ®Ønh {1, 2,...,n}. Gi¶ sö P
biÕt G1 vµ G 2 ®¼ng cÊu víi nhau (ch¼ng h¹n do biÕt mét ho¸n vÞ σ
trªn tËp {1, 2,...,n} sao cho G1 lµ ¶nh cña G2 qua ho¸n vÞ ®ã).
S¬ ®å t−¬ng t¸c chøng minh “G1 vµ G 2 ®¼ng cÊu” gåm m vßng hái-
®¸p, mçi vßng cã 4 b−íc sau ®©y:
1. P chän mét ho¸n vÞ ngÉu nhiªn π cña {1, 2,...,n}, lËp graph
H lµ ¶nh cña G1 qua ho¸n vÞ π, vµ göi H cho V.
2. V chän sè ngÉu nhiªn i ∈ {1, 2} vµ göi nã cho P.
3. P tÝnh mét ho¸n vÞ ρ trªn {1, 2,...,n} sao cho H lµ ¶nh cña
G i qua ρ (cô thÓ, nÕu i =1 th× lÊy ρ =π , nÕu i =2 th× lÊyρ =π .σ ), råi
göi ρ cho V.
4. V thö xem H cã lµ ¶nh cña Gi qua ρ hay kh«ng.
V sÏ chÊp nhËn chøng minh cña P nÕu V thö ®óng ®iÒu kiÖn
4 ë tÊt c¶ m vßng hái-®¸p ®ã.
ThÝ dô: Ta minh ho¹ ho¹t ®éng cña giao thøc t−¬ng t¸c ®Ó
chøng minh sù ®¼ng cÊu cña hai graph b»ng thÝ dô d−íi ®©y:
Gi¶ sö G1 = (V, E1) vµ G 2 = (V,E 2) lµ hai graph víi tËp ®Ønh
V ={1, 2, 3, 4} vµ c¸c tËp c¹nh E1 ={12,13,14,34}, E2={12,13,23,24}. Gi¶
sö P biÕt G2 ®¼ng cÊu víi G1 qua ho¸n vÞ σ = {4 1 3 2}.
2 4 1 2 2 4
π σ
3 1 4 3 1 3
H G1 G2
Mét vßng cña giao thøc cã thÓ xÈy ra nh− sau:
1. P chän ngÉu nhiªn ho¸n vÞ π = {2 4 1 3}. Graph H sÏ cã tËp
c¹nh {12,13,23,24}, lµ ¶nh cña G1 qua π . P göi H cho V.
2. V chän i =2 vµ göi cho P nh− mét c©u hái.
3. P thö thÊy ho¸n vÞ ρ =π .σ ={3 2 1 4} ¸nh x¹ G 2 thµnh H
vµ do ®ã göi ρ cho V.
4. V thö ®óng H lµ ¶nh cña G 2 qua ho¸n vÞ ρ. Ta kÕt luËn
vßng hái-®¸p nµy ®· thµnh c«ng.
Toµn bé giao thøc gåm cã m = log2n vßng.
148
Nh− vËy, nÕu G 1 ®¼ng cÊu víi G 2 (hay chÝnh x¸c h¬n, nÕu A
biÕt G 1 ®¼ng cÊu víi G 2 ) vµ mäi qui ®Þnh ®−îc t«n träng, th× giao
thøc thµnh c«ng, vµ x¸c suÊt cña viÖc V chÊp nhËn chøng minh ®ã
lµ 1. §ã lµ tÝnh ®Çy ®ñ cña giao thøc.
MÆt kh¸c, nÕu G1 vµ G 2 kh«ng ®¼ng cÊu víi nhau, th× c¸ch
duy nhÊt ®Ó P lõa V chÊp nhËn theo giao thøc lµ ë mçi vßng hái-
®¸p, P ®o¸n tr−íc ®óng ®−îc c©u hái (sè i) mµ V sÏ ®−a ra ë b−íc
2, vµ do ®ã ë b−íc 1, P chän ngÉu nhiªn mét ho¸n vÞ π vµ göi cho
V graph H lµ ¶nh cña Gi qua π , råi ë b−íc 3 ®Ó tr¶ lêi c©u hái (lµ sè
i ) cña V, P sÏ ®¸p l¹i b»ng phÐp ho¸n vÞ ρ =π . Râ rµng lµ V chÊp
nhËn c©u tr¶ lêi ®ã lµ ®óng, vµ vßng hái-®¸p ®ã thµnh c«ng. Nh−
vËy, P ®· lõa ®−îc V mét vßng, vµ x¸c suÊt thµnh c«ng ®ã b»ng x¸c
suÊt P ®o¸n tr−íc ®óng c©u hái mµ V sÏ ®−a ra, tøc lµ kh«ng lín
h¬n 1/2. VËy nÕu G1 vµ G 2 kh«ng ®¼ng cÊu víi nhau th× kh¶ n¨ng
V bÞ lõa mµ tin r»ng G1 vµ G 2 ®¼ng cÊu lµ cã x¸c suÊt kh«ng qóa 2-m
= 2-logn
= 1/n , mét gi¸ trÞ kh«ng ®¸ng kÓ cã thÓ bá qua v× n rÊt lín.
§iÒu ®ã còng nãi r»ng nÕu P kh«ng biÕt G1 vµ G 2 ®¼ng cÊu víi
nhau th× P còng kh«ng thÓ lîi dông giao thøc ®ã mµ lõa V r»ng P
biÕt G1 vµ G2 ®¼ng cÊu. §ã lµ tÝnh ®óng ®¾n cña giao thøc.
B©y giê ta nãi ®Õn tÝnh kh«ng lé tri thøc cña giao thøc nãi
trªn. Ta thÊy r»ng thùc hiÖn mçi vßng hái-®¸p cña giao thøc, tÊt c¶
nh÷ng g× mµ P ®−a ®Õn cho V lµ mét b¶n sao H ®¼ng cÊu víiG1 vµ
G 2, vµ mét ho¸n vÞ ρ thùc hiÖn sù ®¼ng cÊu tõ G1 tíi H hoÆc tõ G 2
tíi H (nh−ng kh«ng ph¶i c¶ hai !). Tõ c¸c th«ng tin ®ã kh«ng ®ñ ®Ó
V thiÕt lËp ®−îc ngay mét phÐp ®¼ng cÊu cña G1 vµ G 2 (ta chó ý
ho¸n vÞ ρ mµ P chuyÓn cho V lµ ρ =π hoÆc ρ =π .σ , tõ ®ã kh«ng dÔ
g× t×m ®−îc σ ). Mét c¸ch trùc gi¸c, ®iÒu ®ã chøng tá lµ giao thøc
kh«ng lé tri thøc. §Ó cã mét ®Þnh nghÜa to¸n häc cho kh¸i niÖm
kh«ng lé tri thøc, ta xÐt kü h¬n lËp luËn trªn ®©y.
Ta h·y xem qua mét chøng minh t−¬ng t¸c nh− trªn P vµ
V®Ó l¹i nh÷ng th«ng tin g×. Ngoµi th«ng tin vÒ hai graph G1 vµ G 2,
ë mçi vßng hái-®¸p, P vµ V ®· trao ®æi c¸c th«ng tin vÒ mét graph
H, mét c©u hái i , vµ mét tr¶ lêi ρ. Nh− vËy, ta cã thÓ ®Þnh nghÜa
mét b¶n ghi T cña mét chøng minh t−¬ng t¸c lµ
T = ((G1 ,G2); (H1,i1,ρ1) ;....; (Hm,im ,ρm)).
Th«ng tin vÒ mét chøng minh t−¬ng t¸c ®−îc chøa ®ùng ®Çy ®ñ
trong mét b¶n ghi T . B©y giê ta chó ý r»ng mét b¶n ghi còng cã thÓ
®−îc t¹o ra mét c¸ch gi¶ m¹o. Thùc vËy, ta cã thÓ chän ngÉu nhiªn
mét sè i ∈ {1, 2}, mét ho¸n vÞ ρ, sau ®ã tÝnh H lµ ¶nh ®¼ng cÊu cña
149
Gi qua ρ. Thùc hiÖn m lÇn nh− vËy, ta ®−îc m bé ba (H,i,ρ), vµ
cïng víi (G1 ,G 2) ta sÏ t¹o ®−îc mét b¶n ghi gi¶ m¹o, v× ®ã kh«ng
ph¶i lµ mét b¶n ghi trung thùc theo viÖc thùc hiÖn thùc mét chøng
minh ®óng theo giao thøc t−¬ng t¸c, nh−ng kh«ng cã c¸ch nµo ®Ó
ph©n biÖt mét giao thøc hîp thøc víi mét giao thøc gåm c¸c b¶n
ghi gi¶ m¹o. ThuËt to¸n t¹o ra cac b¶n ghi gi¶ m¹o ®−îc gäi lµ mét
m« pháng. B©y giê ta ®· cã thÓ ®−a ra mét ®Þnh nghÜa cho kh¸i
niÖm kh«ng lé tri thøc nh− sau:
Gi¶ sö cã mét hÖ chøng minh t−¬ng t¸c ®èi víi bµi to¸n
quyÕt ®Þnh Π, vµ mét m« pháng S 1
, vµ x lµ mét d÷ liÖu cña bµi to¸n
cã tr¶ lêi “®óng” ®èi víi c©u hái Π. Ký hiÖu T(x) lµ tËp tÊt c¶ c¸c
b¶n ghi hîp thøc cã thÓ cã, vµ F(x) lµ tËp hîp tÊt c¶ c¸c b¶n ghi gi¶
m¹o cã thÓ sinh ra bëi S. Gi¶ thiÕt r»ng T(x) =F(x). Víi mçi T ∈T(x)
ký hiÖu pT(T ) lµ x¸c suÊt cña viÖc T lµ b¶n ghi sinh ra tõ mét chøng
minh t−¬ng t¸c, vµ pF (T ) lµ x¸c suÊt cña viÖc T lµ mét b¶n ghi gi¶
m¹o sinh ra bëi m« pháng S . NÕu pT(T ) = pF (T ) víi mäi T ∈T(x) ,
tøc lµ c¸c ph©n bè x¸c suÊt trªn T(x) vµ F(x) lµ trïng nhau, th× ta nãi
r»ng hÖ chøng minh t−¬ng t¸c cña ta lµ kh«ng lé tri thøc hoµn h¶o
(perfect zero-knowledge) ®èi víi V.
§èi víi bµi to¸n ®¼ng cÊu hai graph vµ víi s¬ ®å chøng
minh t−¬ng t¸c kÓ trªn, ng−êi ta chøng minh ®−îc r»ng hai ph©n
bè x¸c suÊt trªn T(x) vµ F(x) trïng nhau, do ®ã, víi ®Þnh nghÜa cña
kh¸i niÖm kh«ng lé tri thøc hoµn h¶o, ta cã thÓ kÕt luËn : §èi víi
bµi to¸n ®¼ng cÊu hai graph, cã mét s¬ ®å t−¬ng t¸c chøng minh
kh«ng lé tri th−c hoµn h¶o.
B©y giê ta giíi thiÖu thªm d−íi ®©y mét s¬ ®å t−¬ng t¸c
chøng minh kh«ng lé tri thøc ®èi víi bµi to¸n thÆng d− bËc hai, lµ
mét bµi to¸n NP-®Çy ®ñ.
Cho mét sè nguyªn n lµ tÝch cña hai sè nguyªn tè lín p vµ q
®−îc gi÷ bÝ mËt. Gi¶ thiÕt P biÕt x lµ mét thÆng d− bËc hai theo
modn, vµ u lµ mét c¨n bËc hai cña nã (tøc u 2
≡ x (modn)).S¬ ®å
chøng minh t−¬ng t¸c gåm m vßng, mçi vßng gåm 4 b−íc sau ®©y:
1. P chän ngÉu nhiªn mét sè v n
Z∗
∈ , tÝnh y =v 2
modn , vµ göi
y cho V.
2. V chän ngÉu nhiªn mét sè i∈{0, 1} vµ göi cho P.
1
Th«ng th−êng ng−êi ta gi¶ thiÕt lµ ng−êi kiÓm thö V, còng nh− bé m« pháng V,
®Òu lµ c¸c thuËt to¸n cã kh¶ n¨ng tÝnh to¸n trong thêi gian ®a thøc.
150
3. P tÝnh z = ui
v modn, vµ göi z cho V.
4. V thö ®iÒu kiÖn (modn) .
2 i
z x
≡ y
NÕu qua m vßng, V ®Òu thö ®óng ®iÒu kiÖn trªn th× V chÊp
nhËn chøng minh cña P r»ng x lµ thÆng d− bËc hai theo modn.
Giao thøc chøng minh t−¬ng t¸c nµy còng cã c¸c tÝnh chÊt
®Çy ®ñ, ®óng ®¾n, vµ lµ kh«ng lé tri thøc, nh−ng ch−a ph¶i lµ
kh«ng lé tri thøc hoµn h¶o. ViÖc nghiªn cøu c¸c s¬ ®å t−¬ng t¸c
chøng minh kh«ng lé tri thøc lµ mét chñ ®Ò ®−îc nhiÒu ng−êi quan
t©m trong vµi thËp niªn võa qua, vµ ®· thu ®−îc nhiÒu kÕt qu¶ lý
thó, trong ®ã lý thó nhÊt cã lÏ lµ c¸c kÕt qu¶ liªn quan ®Õn c¸c bµi
to¸n NP-®Çy ®ñ. Ng−êi ta ®· chøng tá r»ng kh«ng cã c¸c chøng
minh kh«ng lé tri thøc hoµn h¶o ®èi víi c¸c bµi to¸n NP-®Çy ®ñ;
tuy nhiªn, nÕu kh«ng ®ßi hái chÆt chÏ ®iÒu kiÖn “kh«ng lé tri thøc
hoµn h¶o”, mµ chØ ®ßi hái mét ®iÒu kiÖn nhÑ h¬n chót Ýt vÒ “kh«ng
lé tri thøc tÝnh to¸n” (computational zero-knowledge), th× ng−êi ta
chøng minh ®−îc r»ng ®èi víi nhiÒu bµi to¸n NP-®Çy ®ñ nh− bµi
to¸n thÆng d− bËc hai theo modn ë trªn hay bµi to¸n t« ba mÇu mét
graph lµ cã thÓ x©y dùng t−¬ng øng c¸c s¬ ®å t−¬ng t¸c chøng
minh kh«ng lé tri thøc tÝnh to¸n. Råi tõ ®ã, do mäi bµi to¸n trong
líp NP ®Òu cã thÓ qui dÉn trong thêi gian ®a thøc vÒ mét bµi to¸n
NP-®Çy ®ñ, ch¼ng h¹n bµi to¸n t« ba mµu mét graph, nªn cã thÓ
chøng minh ®−îc lµ ®èi víi mäi bµi to¸n trong líp NP®Òu cã mét
s¬ ®å t−¬ng t¸c chøng minh kh«ng lé tri thøc (tÝnh to¸n).
Kh¸i niÖm kh«ng lé tri thøc tÝnh to¸n chØ kh¸c kh¸i niÖm
kh«ng lé tri thøc hoµn h¶o ë mét ®iÓm lµ nÕu trong ®Þnh nghÜa cña
“kh«ng lé tri thøc hoµn h¶o” ta ®ßi hái hai ph©n bè x¸c suÊt trªn
T(x) vµ F(x) trïng nhau, th× ®èi víi kh¸i niÖm “kh«ng lé tri thøc
tÝnh to¸n”, ta chØ ®ßi hái hai ph©n bè x¸c suÊt ®ã lµ “kh«ng ph©n
biÖt ®ù¬c” theo mét nghÜa t−¬ng tù nh− “kh«ng ε-ph©n biÖt ®−îc”
mµ ta ®· xÐt ®Õn trong môc 4.6.1, ch−¬ng IV.
151
CH¦¥NG VII
VÊn ®Ò ph©n phèi kho¸
vµ tho¶ thuËn kho¸
7.1. Qu¶n trÞ kho¸ trong c¸c m¹ng truyÒn tin.
Trong c¸c ch−¬ng tr−íc, ta ®· lµm quen víi c¸c ph−¬ng
ph¸p lËp mËt m· vµ c¸c bµi to¸n quan träng kh¸c liªn quan ®Õn
viÖc truyÒn tin b¶o mËt trªn c¸c m¹ng truyÒn tin c«ng céng nãi
chung. Ta còng ®· thÊy r»ng c¸c hÖ mËt m· kho¸ c«ng khai cã
nhiÒu −u viÖt h¬n c¸c hÖ mËt m· kho¸ ®èi xøng trong viÖc lµm nÒn
t¶ng cho c¸c gi¶i ph¸p an toµn th«ng tin, vµ ®Æc biÖt nÕu ®èi víi
c¸c hÖ mËt m· kho¸ ®èi xøng viÖc thùc hiÖn ®ßi hái nh÷ng kªnh bÝ
mËt ®Ó chuyÓn kho¸ hoÆc trao ®æi kho¸ gi÷a c¸c ®èi t¸c, th× vÒ
nguyªn t¾c, ®èi víi c¸c hÖ mËt m· kho¸ c«ng khai, kh«ng cÇn cã
nh÷ng kªnh bÝ mËt nh− vËy, v× c¸c kho¸ c«ng khai cã thÓ ®−îc
truyÒn hoÆc trao ®æi cho nhau mét c¸ch c«ng khai qua c¸c kªnh
truyÒn tin c«ng céng. Tuy nhiªn, trªn thùc tÕ, ®Ó b¶o ®¶m cho c¸c
ho¹t ®éng th«ng tin ®−îc thËt sù an toµn, kh«ng ph¶i bÊt cø th«ng
tin nµo vÒ c¸c kho¸ c«ng khai cña mét hÖ mËt m·, cña mét thuËt
to¸n kiÓm thö ch÷ ký, cña mét giao thøc x¸c nhËn th«ng b¸o hay
x¸c nhËn danh tÝnh, v.v... còng ph¸t c«ng khai mét c¸ch trµn lan
trªn m¹ng c«ng céng, mµ dÉu lµ c«ng khai nh−ng ng−êi ta còng
mong muèn lµ nh÷ng ai cÇn biÕt th× míi nªn biÕt mµ th«i. Do ®ã,
dÉu lµ dïng c¸c hÖ cã kho¸ c«ng khai, ng−êi ta còng muèn cã
nh÷ng giao thøc thùc hiÖn viÖc trao ®æi kho¸ gi÷a nh÷ng ®èi t¸c
thùc sù cã nhu cÇu giao l−u th«ng tin víi nhau, kÓ c¶ trao ®æi kho¸
c«ng khai. ViÖc trao ®æi kho¸ gi÷a c¸c chñ thÓ trong mét céng ®ång
nµo ®ã cã thÓ ®−îc thiÕt lËp mét c¸ch tù do gi÷a bÊt cø hai ng−êi
nµo khi cã nhu cÇu trao ®æi th«ng tin, hoÆc cã thÓ ®−îc thiÕt lËp
mét c¸ch t−¬ng ®èi l©u dµi trong mét thêi h¹n nµo ®ã trong c¶ céng
®ång víi sù ®iÒu phèi cña mét c¬ quan ®−îc uû th¸c (mµ ta ký hiÖu
lµ TA-trusted authority). ViÖc trao ®æi kho¸ trong tr−êng hîp thø
nhÊt ta gäi ®¬n gi¶n lµ tho¶ thuËn kho¸, cßn trong tr−êng hîp thø
hai ta gäi lµ ph©n phèi kho¸ , TA lµ n¬i thùc hiÖn viÖc ph©n phèi,
còng tøc lµ n¬i qu¶n trÞ kho¸. ViÖc tho¶ thuËn kho¸ nãi chung
kh«ng cÇn cã sù tham gia cña mét TA nµo vµ chØ cã thÓ xÈy ra khi
152
c¸c hÖ b¶o mËt mµ ta sö dông lµ hÖ cã kho¸ c«ng khai, cßn viÖc
ph©n phèi kho¸ th× cã thÓ xÈy ra ®èi víi c¸c tr−êng hîp sö dông
c¸c hÖ kho¸ ®èi xøng còng nh− c¸c hÖ cã kho¸ c«ng khai. ViÖc ph©n
phèi kho¸ víi vai trß qu¶n trÞ kho¸ cña mét TA lµ mét viÖc b×nh
th−êng, ®· tån t¹i tõ rÊt l©u tr−íc khi cã c¸c hÖ mËt m· kho¸ c«ng
khai. Ta sÏ b¾t ®Çu víi viÖc giíi thiÖu mét vµi hÖ ph©n phèi kho¸
nh− vËy, råi tiÕp sau sÏ giíi thiÖu mét sè hÖ ph©n phèi hoÆc trao
®æi kho¸ khi dïng c¸c s¬ ®å an toµn vµ b¶o mËt cã kho¸ c«ng khai.
7. 2. Mét sè hÖ ph©n phèi kho¸.
7. 2.1. S¬ ®å ph©n phèi kho¸ Blom.
Gi¶ sö ta cã mét m¹ng gåm cã n ng−êi dïng, vµ mçi ng−êi
dïng ®ã ®Òu cã nhu cÇu trao ®æi th«ng tin bÝ mËt víi mäi ng−êi
trong m¹ng. Gi¶ sö s¬ ®å mËt m· ®−îc sö dông lµ mét s¬ ®å mËt
m· kho¸ ®èi xøng (ch¼ng h¹n, DES). Toµn bé m¹ng cÇn cã
( 1
2
n n − )
kho¸ kh¸c nhau cho chõng Êy cÆp ng−êi dïng kh¸c nhau trong
m¹ng. Mét c¬ quan ®−îc uû th¸c TA qu¶n lý chõng Êy kho¸ vµ
ph¶i chuyÓn cho mçi ng−êi dïng n -1 kho¸ chung víi n -1 ng−êi
cßn l¹i trong m¹ng, nh− vËy TA ph¶i truyÒn b»ng nh÷ng kªnh bÝ
mËt tÊt c¶ lµ n (n -1) l−ît kho¸ ®Õn cho tÊt c¶ n ng−êi dïng.
Blom (1985) ®Ò nghÞ mét s¬ ®å ph©n phèi kho¸, mµ sau ®©y
ta gäi lµ s¬ ®å Blom, trong tr−êng hîp ®¬n gi¶n nhÊt ®−îc m« t¶
nh− sau:
TA chän mét sè nguyªn tè p ≥ n, vµ chän cho mçi ng−êi
dïng A mét sè rA∈Zp . Sè p vµ c¸c sè rA ®−îc c«ng bè c«ng khai.
Sau ®ã, TA chän ba sè ngÉu nhiªn a,b,c ∈ Zp , vµ lËp ®a thøc
( , ) ( )
f x y a b x y cxy
= + + + modp.
Víi mçi ng−êi dïng A, TA tÝnh ( ) ( , )
A A A A
g x f x r a b x
= = + modp,
trong ®ã . TA chuyÓn bÝ mËt
cÆp sè
mod , mod
A A A A
a a br b b cr
= + = +
p p
( , )
A A
a b cho A; nh− vËy, A biÕt ( )
A A A
g x a b x
= + . So víi viÖc
TA ph¶i truyÒn bÝ mËt n (n -1) l−ît kho¸ kÓ trªn th× víi s¬ ®å Blom,
TA chØ ph¶i truyÒn n l−ît c¸c cÆp sè ( , )
A A
a b mµ th«i.
Sau khi ®· thùc hiÖn xong c¸c c«ng viÖc chuÈn bÞ ®ã, b©y giê
nÕu hai ng−êi dïng A vµ B muèn t¹o kho¸ chung ®Ó truyÒn tin
b»ng mËt m· cho nhau, th× kho¸ chung KA,B ®ã sÏ lµ :
, ( ) ( ) ( , ),
A B A B B A A B
K g r g r f r r
= = =
mµ mçi ng−êi A vµ B tÝnh ®−îc b»ng nh÷ng th«ng tin m×nh ®· cã.
153
Nh− vËy, theo s¬ ®å ph©n phèi nµy, TA ph©n phèi cho mçi
ng−êi dïng mét phÇn bÝ mËt cña kho¸, hai ng−êi dïng bÊt kú phèi
hîp phÇn bÝ mËt cña riªng m×nh víi phÇn c«ng khai cña ng−êi kia
®Ó cïng t¹o nªn kho¸ bÝ mËt chung cho hai ng−êi. S¬ ®å nµy lµ an
toµn theo nghÜa sau ®©y: BÊt kú mét ng−êi thø ba C nµo (kÓ c¶ C lµ
mét ng−êi tham gia trong m¹ng) cã thÓ ph¸t hiÖn ®−îc kho¸ bÝ mËt
riªng cña hai ng−êi A vµ B. Thùc vËy, dï C cã lµ ng−êi tham gia
trong m¹ng ®i n÷a, th× c¸i mµ C biÕt nhiÒu l¾m lµ hai sè do
TA cÊp cho. Ta chøng minh r»ng víi nh÷ng g× mµ C biÕt th× bÊt kú
gi¸ trÞ l ∈ Z
,
C C
a b
p nµo còng cã thÓ ®−îc chÊp nhËn lµ K A,B . Nh÷ng g× mµ
C biÕt, kÓ c¶ viÖc chÊp nhËn l = KA,B , ®−îc thÓ hiÖn thµnh
( )
A B A B
C C
C C
a b r r cr r l
a br a
b cr b
+ + + =
+ =
+ =
HÖ thèng ph−¬ng tr×nh ®ã, nÕu xem a,b,c lµ Èn sè, cã ®Þnh thøc c¸c
hÖ sè ë vÕ ph¶i lµ
1
1 0 ( )( )
0 1
A B A B
C C A C
C
r r r r
r r r r
r
+
B
r
= − − ,
theo gi¶ thiÕt chän c¸c sè r , ®Þnh thøc ®ã kh¸c 0, do ®ã hÖ ph−¬ng
tr×nh lu«n cã nghiÖm (a,b,c), tøc viÖc chÊp nhËn l lµ gi¸ trÞ cña K A,B
lµ hoµn toµn cã thÓ. BÊt kú gi¸ trÞ l ∈ Zp nµo còng cã thÓ ®−îc C
chÊp nhËn lµ KA,B , ®iÒu ®ã ®ång nghÜa víi viÖc C kh«ng biÕt KA,B lµ
sè nµo!
Tuy nhiªn, nÕu cã hai ng−êi tham gia C vµ D, kh¸c A,B, liªn
minh víi nhau ®Ó ph¸t hiÖn K A,B , th× l¹i rÊt dÔ dµng, v× c¶ C vµ D
biÕt
C C
C C
D D
D D
a br a
b cr b
a br a
b cr b
+ =
+ =
+ =
+ =
Bèn ph−¬ng tr×nh ®ã ®ñ ®Ó x¸c ®Þnh (a,b,c), tõ ®ã t×m ®−îc KA,B .
Ta cã thÓ më réng s¬ ®å Blom nãi trªn ®Ó ®−îc mét s¬ ®å
Blom tæng qu¸t, trong ®ã mäi kho¸ chung K A,B cña hai ng−êi dïng
A vµ B lµ bÝ mËt hoµn toµn ®èi víi bÊt kú liªn minh nµo gåm k
ng−êi ngoµi A vµ B, nh−ng kh«ng cßn lµ bÝ mËt ®èi víi mäi liªn
minh gåm k +1 ng−êi tham gia trong m¹ng. Muèn vËy, ta chØ cÇn
154
thay ®a thøc f (x,y ) nãi trªn b»ng mét ®a thøc ®èi xøng bËc 2k sau
®©y :
0 0
( , ) mod ,
k k
i j
ij
i j
f x y a x y
= =
= ∑∑ p
trong ®ã víi mäi i, j.
,0 , ,
i p i
a Z i j k a a
∈ ≤ ≤ =
j ji
j
7.2.2. HÖ ph©n phèi kho¸ Kerberos.
Kerberos lµ tªn cña mét hÖ dÞch vô ph©n phèi (hay cÊp ph¸t)
kho¸ phiªn (session key) cho tõng phiªn truyÒn tin b¶o mËt theo
yªu cÇu cña ng−íi dïng trong mét m¹ng truyÒn tin. HÖ mËt m·
®−îc sö dông th−êng lµ hÖ cã kho¸ ®èi xøng, ch¼ng h¹n DES.
§Ó thùc hiÖn hÖ nµy, tr−íc hÕt, c¬ quan ®−îc uû th¸c (hay
trung t©m ®iÒu phèi) TA cÇn chia sÎ mét kho¸ DES bÝ mËt KA víi
mçi thµnh viªn A trong m¹ng. Sau ®ã, mçi lÇn A cã nhu cÇu truyÒn
tin b¶o mËt víi mét thµnh viªn kh¸c B th× yªu cÇu TA cÊp mét kho¸
phiªn cho c¶ A vµ B. ViÖc cÊp ph¸t ®ã sÏ ®−îc thùc hiÖn b»ng mét
giao thøc ph©n phèi kho¸ nh− sau:
1. TA chän ngÉu nhiªn mét kho¸ phiªn K, x¸c ®Þnh mét tem
thêi gian T vµ mét thêi gian sèng L (nh− thÕ cã nghÜa lµ kho¸
phiªn K cã gi¸ trÞ sö dông trong kho¶ng thêi gian tõ T ®Õn T +L).
2. TA tÝnh
1
2
( , ( ), , ),
( , ( ), , ).
A
B
K
K
m e K ID B T L
m e K ID A T L
=
=
vµ göi ( ) ®Õn A.
1 2
,
m m
3. A dïng hµm gi¶i m· A
K
d cho ®Ó thu ®−îc K, T,L,ID(B).
Sau ®ã tÝnh
1
m
3 ( ( ),
K
m e ID A T)
= ,
vµ göi cho B.
3 2
( ,
m m )
4. B dïng c¸c hµm gi¶i m· B
K
d cho m2 vµ dK cho m3 ®Ó thu
®−îc K ,T, L,ID(A) vµ ID(A),T . NÕu thö thÊy hai gi¸ trÞ cña ID(A)
vµ cña T trïng nhau, th× B tÝnh tiÕp
m4 = eK (T +1)
vµ göi m4 cho A.
5. A dïng hµm gi¶i m· dK cho m4, vµ thö xem kÕt qu¶ thu
®−îc cã ®óng lµ T +1 hay kh«ng.
155
Trong giao thøc kÓ trªn, c¸c ký hiÖu ID(A) vµ ID(B) lµ chØ cho
danh tÝnh cña A vµ cña B, c¸c th«ng tin ®ã lµ c«ng khai.
Hoµn thµnh giao thøc gåm 5 b−íc nãi trªn, TA (cïng víi A
vµ B) ®· thùc hiÖn xong viÖc cÊp ph¸t mét kho¸ phiªn K cho hai
ng−êi dïng A vµ B ®Ó truyÒn tin mËt m· cho nhau. TÊt c¶ c¸c viÖc
trao ®æi th«ng tin cña giao thøc ®ã ®Òu ®−îc thùc hiÖn trªn c¸c
kªnh c«ng céng, dï kho¸ K vÉn lµ bÝ mËt, chØ A, B (vµ TA) lµ ®−îc
biÕt mµ th«i. Ngoµi viÖc cÊp ph¸t kho¸, giao thøc ®ã cßn thùc hiÖn
®−îc viÖc x¸c nhËn kho¸: B vµ A ®Òu tin ch¾c ®−îc r»ng ®èi t¸c cña
m×nh ®· thùc sù cã kho¸ K do kÕt qu¶ cña viÖc thùc hiÖn c¸c phÐp
thö ë b−íc 4 vµ 5; thªm n÷a, c¶ A vµ B cßn biÕt ®−îc thêi h¹n cã
hiÖu lùc cña kho¸.
Ph©n phèi kho¸ bÝ mËt theo giao thøc Kerberos lµ cã ®é tin
cËy cao, tuy nhiªn trong thùc tÕ, viÖc sö dông nã còng ®ßi hái tèn
nhiÒu thêi gian, nªn ngµy nay còng chØ ®−îc dïng trong nh÷ng
tr−êng hîp h¹n chÕ.
7. 2.3. HÖ ph©n phèi kho¸ Diffie-Hellman.
HÖ ph©n phèi kho¸ Diffie-Hellman kh«ng ®ßi hái TA ph¶i
biÕt vµ chuyÓn bÊt kú th«ng tin bÝ mËt nµo vÒ kho¸ cña c¸c ng−êi
tham gia trong m¹ng ®Ó hä thiÕt lËp ®−îc kho¸ chung bÝ mËt cho
viÖc truyÒn tin víi nhau.
Trong mét hÖ ph©n phèi kho¸ Diffie-Hellman, TA chØ viÖc
chän mét sè nguyªn tè lín p vµ mét phÇn tö nguyªn thuû α theo
modp, sao cho bµi to¸n tÝnh logα trong p
Z∗
lµ rÊt khã. C¸c sè p vµ α
®−îc c«ng bè c«ng khai cho mäi ng−êi tham gia trong m¹ng. Ngoµi
ra, TA cã mét s¬ ®å ch÷ ký víi thuËt to¸n ký (bÝ mËt) sigTA vµ thuËt
to¸n kiÓm thö (c«ng khai) verTA.
Mét thµnh viªn bÊt kú A víi danh tÝnh ID(A) tuú ý chän mét
sè vµ tÝnh . A gi÷ bÝ mËt
(0 2)
A A
a a p
≤ ≤ − mod
A
a
A
b α
= p A
a vµ ®¨ng
ký c¸c th«ng tin (ID(A), A
b ) víi TA. TA cÊp cho A chøng chØ
C(A) = (ID(A), A
b , sigTA(ID(A), A
b )).
C¸c chøng chØ cña c¸c thµnh viªn trong m¹ng cã thÓ ®−îc
l−u gi÷ trong mét c¬ së d÷ liÖu c«ng khai, hoÆc uû th¸c cho TA l−u
gi÷ vµ cung cÊp c«ng khai cho c¸c thµnh viªn mçi khi cÇn ®Õn.
Khi hai thµnh viªn A vµ B trong m¹ng cÇn cã mét kho¸ bÝ
mËt chung ®Ó truyÒn tin b¶o mËt cho nhau, th× A dïng th«ng tin
c«ng khai cã trong C(B) kÕt hîp víi sè bÝ mËt cña m×nh lµ
B
b A
a ®Ó
t¹o nªn kho¸
156
, mod mod
A B A
a a a
A B B
K b α
= =
p p.
Kho¸ chung ®ã B còng t¹o ra ®−îc tõ c¸c th«ng tin c«ng khai A
b cña
A vµ sè bÝ mËt cña m×nh:
B
a
, mod mod
B A B
a a a
A B A
K b α
= =
p p.
§Ó b¶o ®¶m ®−îc c¸c th«ng tin vÒ vµ
B
b A
b lµ chÝnh x¸c, A
vµ B cã thÓ dïng thuËt to¸n verTA ®Ó kiÓm thö ch÷ ký x¸c nhËn cña
TA trong c¸c chøng chØ C(B) vµ C(A) t−¬ng øng.
§é an toµn cña hÖ ph©n phèi kho¸ Diffie-Hellman ®−îc b¶o
®¶m bëi ®iÒu sau ®©y: BiÕt A
b vµ ®Ó tÝnh K
B
b A,B chÝnh lµ bµi to¸n
Diffie-Hellman mµ ta ®· ®Ò cËp tíi trong môc 4.1, ch−¬ng IV: biÕt
mod
a
p
α vµ mod
b
p
α , tÝnh mod
ab
p
α . §©y lµ mét bµi to¸n khã
t−¬ng ®−¬ng bµi to¸n tÝnh l«garit rêi r¹c hay bµi to¸n ph¸ mËt m·
ElGamal.
7.3. Trao ®æi kho¸ vµ tho¶ thuËn kho¸.
7.3.1. Giao thøc trao ®æi kho¸ Diffie-Hellman.
HÖ ph©n phèi kho¸ Diffie-Hellman nãi trong môc tr−íc cã
thÓ dÔ dµng biÕn ®æi thµnh mét giao thøc trao ®æi (hay tho¶ thuËn)
kho¸ trùc tiÕp gi÷a c¸c ng−êi sö dông mµ kh«ng cÇn cã sù can
thiÖp cña mét TA lµm nhiÖm vô ®iÒu hµnh hoÆc ph©n phèi kho¸.
Mét nhãm bÊt kú ng−êi sö dông cã thÓ tho¶ thuËn cïng dïng
chung mét sè nguyªn tè lín p vµ mét phÇn tö nguyªn thuû α theo
modp , hai ng−êi bÊt kú trong nhãm A vµ B mçi khi muèn truyÒn
tin b¶o mËt cho nhau cã thÓ cïng thùc hiÖn giao thøc say ®©y ®Ó
trao ®æi kho¸:
1. A chän ngÉu nhiªn sè aA (0≤ aA≤ p -2), gi÷ bÝ mËt aA, tÝnh
vµ göi b
mod
A
a
A
b α
= p
p
p
i i i
A cho B.
2. T−¬ng tù, B chän ngÉu nhiªn sè aB (0≤ aB ≤ p -2), gi÷ bÝ mËt
aB , tÝnh vµ göi b
mod
B
a
B
b α
= B cho B.
3. A vµ B cïng tÝnh ®−îc kho¸ chung
.
, mod mod ( mod )
A B A B
a a a a
A B B A
K b p b p α
= = =
Giao thøc trao ®æi kho¸ Diffie-Hellman cã c¸c tÝnh chÊt sau:
1. G ao thøc lµ an toµn ®è víi v Öc tÊn c«ng thô ®éng, nghÜa lµ
mét ng−êi thø ba, dï biÕt bA vµ bB sÏ khã mµ biÕt ®−îc KA,B .
Ta biÕt r»ng bµi to¸n “biÕt bA vµ bB t×m KA,B” chÝnh lµ bµi to¸n
Diffie-Hellman, vµ trong môc 7.2.3 ta cã nãi r»ng bµi to¸n ®ã t−¬ng
157
®−¬ng víi bµi to¸n ph¸ mËt m· ElGamal. B©y giê ta chøng minh
®iÒu nµy. PhÐp mËt m· ElGamal víi kho¸ K = (p,α,a ,β ), trong ®ã
mod
a
p
β α
= , cho ta tõ mét b¶n râ x vµ mét sè ngÉu nhiªn 1
p
k Z −
∈
lËp ®−îc mËt m· 1 2
( , ) ( , ),
K
e x k y y
=
trong ®ã 1 2
mod , mod .
k k
y p y x
α β
= = p
Vµ phÐp gi¶i m· ®−îc cho bëi
1
1 2 2 1
( , ) ( ) mod .
a
K
d y y y y p
−
=
Gi¶ sö ta cã thuËt to¸n A gi¶i bµi to¸n Diffie-Hellman. Ta sÏ
dïng A ®Ó ph¸ m· ElGamal nh− sau: Cho mËt m· . Tr−íc
hÕt, dïng A cho vµ
1 2
( , )
y y
1 mod
k
y p
α
= mod
a
p
β α
= , ta ®−îc
A(y1,β) = mod ,
ka k
p
α β
=
vµ sau ®ã ta thu ®−îc b¶n râ x tõ βk
vµ y2 nh− sau :
1
2 ( ) mod
k
.
x y p
β −
=
Ng−îc l¹i, gi¶ sö cã thuËt to¸n B ph¸ m· ElGamal, tøc
B .
1
1 2 2 1
( , , , , ) ( ) mod
a
p y y x y y
α β −
= = p
1
¸p dông B cho 1 2
, ,
A B
b y b y
β = = = , ta ®−îc
B 1 1 1
( , , , ,1) (1.( ) ) mod ,
A A B
a a a
A B B
p b b b p
α α
− − −
= =
tøc lµ gi¶i ®−îc bµi to¸n Diffie-Hellman.
2. Giao thøc lµ kh«ng an toµn ®èi víi viÖc tÊn c«ng chñ ®éng
b»ng c¸ch ®¸nh tr¸o gi÷a ®−êng, nghÜa lµ mét ng−êi thø ba C cã
thÓ ®¸nh tr¸o c¸c th«ng tin trao ®æi gi÷a A vµ B, ch¼ng h¹n, C
thay A
a
α mµ A ®Þnh göi cho B bëi A
a
α ′
,vµ thay B
a
α mµ B ®Þnh göi cho
A bëi B
a
α ′
, nh− vËy, sau khi thùc hiÖn giao thøc trao ®æi kho¸, A
®· lËp mét kho¸ chung A B
a a
α ′
víi C mµ vÉn t−ëng lµ víi B, ®ång thêi
B ®· lËp mét kho¸ chung A B
a a
α ′
víi C mµ vÉn t−ëng lµ víi A; C cã
thÓ gi¶i m· mäi th«ng b¸o mµ A t−ëng nhÇm lµ m×nh göi ®Õn B,
còng nh− mäi th«ng b¸o mµ B t−ëng nhÇm lµ m×nh göi ®Õn A !
Mét c¸ch kh¾c phôc kiÓu tÊn c«ng chñ ®éng nãi trªn lµ lµm
sao ®Ó A vµ B cã thÓ kiÓm thö ®Ó x¸c nhËn tÝnh ®óng ®¾n cña c¸c
kho¸ c«ng khai bA vµ bB .§−a vµo giao thøc trao ®æi kho¸ Diffie-
Hellman thªm vai trß ®iÒu phèi cña mét TA ®Ó ®−îc mét hÖ ph©n
phèi kho¸ Diffie-Hellman nh− ë môc 7.2.3 lµ mét c¸ch kh¾c phôc
nh− vËy. Trong hÖ ph©n phèi kho¸ Diffie-Hellman, sù can thiÖp cña
TA lµ rÊt yÕu, thùc ra TA chØ lµm mçi mét viÖc lµ cÊp chøng chØ x¸c
nhËn kho¸ c«ng khai cho tõng ng−êi dïng chø kh«ng ®ßi hái biÕt
thªm bÊt cø mét bÝ mËt nµo cña ng−êi dïng. Tuy nhiªn, nÕu ch−a
158
tho¶ m·n víi vai trß h¹n chÕ ®ã cña TA, th× cã thÓ cho TA mét vai
trß x¸c nhËn yÕu h¬n, kh«ng liªn quan g× ®Õn kho¸, ch¼ng h¹n nh−
x¸c nhËn thuËt to¸n kiÓm thö ch÷ kü cña ng−êi dïng, cßn b¶n th©n
c¸c th«ng tin vÒ kho¸ (c¶ bÝ mËt vµ c«ng khai) th× do c¸c ng−êi
dïng trao ®æi trùc tiÕp víi nhau. Víi c¸ch kh¾c phôc cã vai trß rÊt
h¹n chÕ ®ã cña TA, ta ®−îc giao thøc sau ®©y:
7.3.2. Giao thøc trao ®æi kho¸ DH cã chøng chØ x¸c nhËn.
Mçi ng−êi dïng A cã mét danh tÝnh ID(A) vµ mét s¬ ®å ch÷
ký víi thuËt to¸n ký sigA vµ thuËt to¸n kiÓm thö verA. TA còng cã
mét vai trß x¸c nhËn, nh−ng kh«ng ph¶i x¸c nhËn bÊt kú th«ng tin
nµo liªn quan ®Õn viÖc t¹o kho¸ mËt m· cña ng−êi dïng (dï lµ
kho¸ bÝ mËt hay lµ kho¸ c«ng khai), mµ chØ lµ x¸c nhËn mét th«ng
tin Ýt quan hÖ kh¸c nh− thuËt to¸n kiÓm thö ch÷ ký cña ng−êi dïng.
Cßn b¶n th©n c¸c th«ng tin liªn quan ®Õn viÖc t¹o kho¸ mËt m· th×
c¸c ng−êi dïng sÏ trao ®æi trùc tiÕp víi nhau. TA còng cã mét s¬
®å ch÷ ký cña m×nh, gåm mét thuËt to¸n ký sigTA vµ mét thuËt to¸n
kiÓm thö (c«ng khai) verTA. Chøng chØ mµ TA cÊp cho mçi ng−êi
dïng A sÏ lµ
C(A) = (ID(A), verA , sigTA(ID(A), verA)).
Râ rµng trong chøng chØ ®ã TA kh«ng x¸c nhËn bÊt kú ®iÒu g× liªn
quan ®Õn viÖc t¹o kho¸ cña A c¶. ViÖc trao ®æi kho¸ gi÷a hai ng−êi
dïng A vµ B ®−îc thùc hiÖn theo giao thøc sau ®©y:
1.A chän ngÉu nhiªn sè (0 2),
A A
a a p
≤ ≤ − tÝnh
vµ göi b
mod ,
A
a
A
b p
α
=
A cho B.
2. B chän ngÉu nhiªn sè (0 2),
B B
a a p
≤ ≤ − tÝnh
tÝnh tiÕp
mod ,
B
a
B
b p
α
=
mod ,
B
a
A
K b p
=
( , ),
B B B A
y sig b b
=
vµ göi (C(B),bB , yB) cho A.
3. A tÝnh K = mod ,
A
a
B
b p
dïng verB ®Ó kiÓm thö yB , dïng verTA ®Ó kiÓm thö C(B), sau ®ã tÝnh
yA = sigA(bA , bB ),
vµ göi (C(A), yA) cho B.
4.B dïng verA ®Ó kiÓm thö yA ,vµ dïng verTA ®Ó kiÓm thö C(A).
NÕu tÊt c¶ c¸c b−íc ®ã ®−îc thùc hiÖn vµ c¸c phÐp kiÓm thö
®Òu cho kÕt qu¶ ®óng ®¾n, th× giao thøc kÕt thóc, vµ c¶ A vµ B ®Òu
cã ®−îc kho¸ chung K . Do viÖc dïng c¸c thuËt to¸n kiÓm thö nªn
A biÕt ch¾c gi¸ trÞ bB lµ cña B vµ B biÕt ch¾c gi¸ trÞ bA lµ cña A, lo¹i
159
trõ kh¶ n¨ng mét ng−êi C nµo kh¸c ®¸nh tr¸o c¸c gi¸ trÞ ®ã gi÷a
®−êng.
7.3.3. Giao thøc trao ®æi kho¸ Matsumoto-Takashima-
Imai.
Giao thøc tr×nh bµy trong môc trªn cÇn dïng ba lÇn chuyÓn
tin qua l¹i ®Ó thiÕt lËp mét kho¸ chung. C¸c t¸c gi¶ NhËt
Matsumoto, Takashima vµ Imai ®Ò nghÞ mét c¶i tiÕn ®Ó chØ dïng
mét giao thøc gåm hai lÇn chuyÓn tin (mét tõ A ®Õn B vµ mét tõ B
®Õn A) ®Ó tho¶ thuËn kho¸ nh− sau:
Ta gi¶ thö r»ng tr−íc khi thùc hiÖn giao thøc, TA ®· ký cÊp
chøng chØ cho mçi ng−êi dïng A theo c¸ch lµm ë môc 7.2.3:
C(A) = (ID(A), A
b , sigTA(ID(A), A
b )),
vµ thuËt to¸n kiÓm thö ch÷ ký verTA cña TA lµ c«ng khai. Trong
giao thøc nµy, c¸c bA kh«ng trùc tiÕp t¹o nªn c¸c kho¸ mËt m· cho
truyÒn tin, mµ víi mçi phiªn truyÒn tin b¶o mËt, kho¸ phiªn (sesion
key) sÏ ®−îc t¹o ra cho tõng phiªn theo giao thøc.
Giao thøc trao ®æi kho¸ phiªn MTI gåm ba b−íc (trong ®ã cã
hai lÇn chuyÓn tin) nh− sau:
1. A chän ngÉu nhiªn sè (0 2),
A A
r r p
≤ ≤ − tÝnh
vµ göi (C(A), s
mod ,
A
r
A
s p
α
=
A ) cho B.
2. B chän ngÉu nhiªn sè (0 2),
B B
r r p
≤ ≤ − tÝnh mod ,
B
r
B
s p
α
=
vµ göi (C(B),sB ) cho A.
3. A tÝnh . mod
A A
a r
B B ,
K s b p
= víi gi¸ trÞ bB thu ®−îc tõ C(B),
B tÝnh . mod
B B
a r
A A ,
K s b p
= víi gi¸ trÞ bA thu ®−îc tõ C(A).
Hai c¸ch tÝnh ®ã ®Òu cho cïng mét gi¸ trÞ mod .
A B B A
r a r a
K p
α +
=
Giao thøc nµy còng cã kh¶ n¨ng gi÷ bÝ mËt kho¸ K nh− ®èi víi
giao thøc Diffie-Hellman tr−íc sù tÊn c«ng thô ®éng. Tuy nhiªn, v×
kh«ng cã chøng chØ ®èi víi c¸c gi¸ trÞ sA , sB nªn vÉn cã nguy c¬ cña
sù tÊn c«ng tÝch cùc b»ng viÖc ®¸nh tr¸o gi÷a ®−êng bëi mét C nµo
®ã theo kiÓu sau ®©y:
C(A), A
r
α C(A), A
r
α ′
A C(B), B
r
α ′
C C(B), B
r
α B
§¸ng lÏ A göi ®Õn B (C(A),sA) th× C ®¸nh tr¸o b»ng c¸ch nhËn
(C(A),sA) vµ göi ®Õn B ( ( ), ),
A
C A s′ víi , vµ ng−îc l¹i,
mod
A
r
A
s α
′
′ = p
160
®¸ng lÏ B göi ®Õn A (C(B), sB) th× C ®¸nh tr¸o b»ng c¸ch nhËn (C(B),
sB) vµ göi ®Õn A ( ( ), )
B
C B s′ , víi . Khi ®ã, A tÝnh ®−îc
kho¸
mod
B
r
B
s α ′
′ = p
1 mod
A B B A
r a r a
K p
α ′
+
= ,
vµ B tÝnh ®−îc kho¸
2 mod .
A B B A
r a r a
K p
α ′ +
=
Hai gi¸ trÞ K1 vµ K2 nµy kh¸c nhau, nªn kh«ng gióp A vµ B truyÒn
tin ®−îc cho nhau, nh−ng C kh«ng cã kh¶ n¨ng tÝnh ®−îc gi¸ trÞ
nµo trong hai gi¸ trÞ ®ã (v× kh«ng biÕt aA vµ aB ), nªn kh¸c víi giao
thøc Diffie-Hellman ë môc 7.2.3, ë ®©y C chØ cã thÓ ph¸ rèi, chø
kh«ng thÓ ®¸nh c¾p th«ng tin ®−îc.
7.3.4. Giao thøc Girault trao ®æi kho¸ kh«ng chøng chØ.
Giao thøc Girault ®−îc ®Ò xuÊt n¨m 1991. Trong giao thøc
nµy, ng−êi sö dông A kh«ng cÇn dïng chøng chØ C(A), mµ thay
b»ng mét kho¸ c«ng khai tù chøng thùc , ®−îc cÊp tr−íc bëi mét
TA. Ph−¬ng ph¸p nµy sö dông kÕt hîp c¸c ®Æc tÝnh cña c¸c bµi
to¸n RSA vµ l«garit rêi r¹c.
Gi¶ thö n lµ tÝc cña hai sè nguyªn tè lín p vµ q, n =p.q , p vµ
q cã d¹ng p =2p1+1, q =2q1+1, trong ®ã p1 vµ q1 còng lµ c¸c sè
nguyªn tè. Nhãm nh©n n
Z∗
®¼ng cÊu víi tÝch p q
Z Z
∗ ∗
× . CÊp cao nhÊt
cña mét phÇn tö trong n
Z∗
lµ béi chung bÐ nhÊt cña p -1 vµ q -1, tøc
lµ b»ng 2p1q1. Gi¶ sö α lµ mét phÇn tö cÊp 2p1q1 cña n
Z∗
. Nhãm
cyclic sinh bëi α ®−îc ký hiÖu lµ G, bµi to¸n tÝnh l«garit rêi r¹c theo
c¬ sè α trong G ®−îc gi¶ thiÕt lµ rÊt khã.
C¸c sè n vµ α lµ c«ng khai. ChØ TA biÕt p ,q . TA chän sè mò
c«ng khai e , víi gcd(e, φ (n ))=1,vµ gi÷ bÝ mËt d =e-1
modφ (n ).
Mçi ng−êi dïng A cã mét danh tÝnh ID(A), chän ngÉu nhiªn
mét sè aA ∈ G, gi÷ bÝ mËt aA vµ tÝnh bA= , råi göi a
mod
A
a
n
α A ,bA cho
TA. TA thö l¹i ®iÒu kiÖn bA= , råi cÊp cho A mét kho¸
c«ng khai tù chøng thùc p
mod
A
a
n
α
A = (bA- ID(A))d
modn . Trong kho¸ c«ng
khai pA kh«ng cã th«ng tin vÒ aA , nh−ng TA cÇn biÕt aA ®Ó thö ®iÒu
kiÖn bA= .
mod
A
a
n
α
Giao thøc Girault trao ®æi kho¸ gi÷a hai ng−êi dïng A vµ B
®−îc thùc hiÖn bëi c¸c b−íc sau ®©y:
1. A chän ngÉu nhiªn rA∈G, tÝnh vµ göi cho B
(ID(A),p
mod ,
A
r
A
s α
= n
A , sA).
161
2. B chän ngÉu nhiªn rB ∈G , tÝnh vµ göi cho A
(ID(B), p
mod ,
B
r
B
s α
= n
d ,
B , sB).
3. A tÝnh kho¸ ( ( )) mo
A A
a r
e
B B
K s p ID V n
= +
B tÝnh kho¸ ( ( )) mo
B B
a r
e
A A d .
K s p ID A n
= +
C¶ hai gi¸ trÞ ®ã cña K ®Òu b»ng nhau vµ b»ng
mod .
A B B A
r a r a
K n
α +
=
B»ng c¸c lËp luËn nh− trong môc tr−íc, ta dÔ thÊy r»ng mét
ng−êi thø ba C khã mµ t¹o ra c¸c th«ng tin gi¶ m¹o ®Ó göi ®Õn A
hoÆc B, nÕu tÊn c«ng b»ng c¸ch ®¸nh tr¸o gi÷a ®−êng th× cã thÓ ph¸
rèi ®Ó ng¨n c¶n A vµ B t¹o lËp kho¸ chung, nh−ng kh«ng thÓ ®¸nh
c¾p th«ng tin trao ®æi gi÷a A vµ B.
Cßn l¹i mét vÊn ®Ò: T¹i sao TA cÇn biÕt aA vµ thö ®iÒu kiÖn
bA= tr−íc khi cÊp p
mod
A
a
n
α A cho A? Ta gi¶ thö r»ng TA kh«ng
biÕt aA vµ cÊp pA= (bA- ID(A))d
modn cho A, vµ thö xem cã thÓ xÈy
ra chuyÖn g×?
Mét ng−êi thø ba C cã thÓ chän mét gi¸ trÞ rëm ,
A
a′ vµ tÝnh
råi tÝnh b b
mod ,
A
a
A
b α ′
′ = n ID A ID C
( ) ( ),
C A
′ ′
= − − )
vµ ®−a ( ( ), C
ID C b′
cho TA. TA sÏ cÊp cho C mét “kho¸ c«ng khai tù chøng thùc”
( ( )) mo
d
C C
p b ID C
′ ′
= − d .
n
d .
n
V× nªn thùc tÕ C ®· ®−îc cÊp
( ) ( ),
C A
b ID C b ID A
′ ′
− = −
( ( )) mo
d
C A A
p p b ID A
′ ′ ′
= = −
B©y giê gi¶ sö A vµ B thùc hiÖn giao thøc trao ®æi kho¸, vµ C xen
vµo ë gi÷a, nh− vËy, A göi ®Õn B ( ( ), , mod ),
A
r
A
ID A p n
α nh−ng do bÞ
C ®¸nh tr¸o nªn B l¹i nhËn ®−îc ( ( ), , mod ),
A
r
A
ID A p n
α ′
′ do ®ã B vµ C
tÝnh ®−îc cïng mét kho¸
mod ( ( )) mod ,
A B B A A A
r a r a a r
e
B B
K n s p ID B n
α ′ ′ ′ ′
+
′ = = +
cßn A tÝnh ®−îc kho¸
mod .
A B B A
r a r a
K n
α +
=
ID(A), pA, A
r
α ID(A), A
p′ , A
r
α ′
A ID(B),pB , B
r
α C ID(B),pB, B
r
α B
B vµ C cã cïng mét kho¸ kh¸c víi kho¸ cña A, nh−ng B vÉn
nghÜ r»ng m×nh cã chung kho¸ víi A. V× thÕ, C cã thÓ gi¶i m· mäi
th«ng b¸o mµ B göi cho A, tøc ®¸nh c¾p c¸c th«ng tin tõ B ®Õn A.
ViÖc TA biÕt aA vµ thö ®iÒu kiÖn bA= tr−íc khi cÊp p
mod
A
a
n
α A cho
A lµ ®Ó lo¹i trõ kh¶ n¨ng ®¸nh tr¸o nh− vËy cña mét kÎ tÊn c«ng C.
162
Chó dÉn vÒ s¸ch tham kh¶o
S¸ch b¸o vÒ Khoa häc mËt m· tuy míi ®−îc c«ng khai xuÊt
b¶n tõ kho¶ng ba thËp niªn gÇn ®©y, nh−ng do nhu cÇu nghiªn cøu
vµ øng dông rÊt lín nªn ®· ph¸t triÓn rÊt nhanh chãng, trong ®ã cã
c¶ nh÷ng tµi liÖu gi¸o khoa do c¸c tr−êng §¹i häc xuÊt b¶n còng
nh− c«ng tr×nh nghiªn cøu ®¨ng t¶i trªn c¸c t¹p chÝ khoa häc vµ c¸c
tËp c«ng tr×nh cña c¸c héi nghÞ khoa häc quèc tÕ hµng n¨m vÒ MËt
m·. §ã lµ nguån tµi liÖu hÕt søc phong phó vµ quÝ gi¸ cho tÊt c¶
nh÷ng ai quan t©m ®Õn viÖc häc tËp vµ nghiªn cøu vÒ khoa häc mËt
m·. TËp gi¸o tr×nh nµy ®−îc biªn so¹n chñ yÕu dùa vµo mét sè
s¸ch chuyªn kh¶o ®· trë thµnh gi¸o khoa cho nhiÒu tr−êng §¹i häc
trªn thÕ giíi, ®−îc xuÊt b¶n trong nh÷ng n¨m gÇn ®©y:
1. Douglas R. Stinson. Cryptography. Theory and Practice, CRC
Press,1995.
2.A.J. Menezes, P.C. van Oorschot, S.A. Vanstone. Handbook of
Applied Cryptography, CRC Press, 1997.
3.Bruce Schneier. Applied Cryptography. Protocols, Algorithms
and Source Code in C. John Wiley Son,Inc, 1996.
4. S. Goldwasser, M. Bellare. Lecture Notes on Cryptography. MIT
Laboratory of Computer Science, 2001.
5.J.Seberry, J. Pieprzyk. Cryptography. An introduction to
Computer Security. Prentice Hall, 1989.
6.Vitor Shoup. A computational Introduction to Number Theory
and Algebra, New York University, 2003.
163

An toanbaomatthongtin

  • 1.
    1 §¹i häc quècgia hµ néi Khoa c«ng nghÖ Phan §×nh DiÖu Lý thuyÕt mËt m· & an toµn th«ng tin NXB ®¹i häc quèc gia hµ néi - 2002
  • 2.
    2 Lý thuyÕt mËtm· & An toµn th«ng tin
  • 3.
    3 Lý thuyÕt mËtm· & An toµn th«ng tin Phan §×nh DiÖu §¹i häc Quèc gia Hµ Néi Khoa C«ng nghÖ- §HQG Hµ néi
  • 4.
    1 Néi dung Lêi më®Çu.................................................................4 Ch−¬ng 1 Giíi thiÖu chung vÒ mËt m·......8 1.1. S¬ lùoc lÞch sö vÒ khoa mËt m·.......................................... 8 1.2. HÖ thèng mËt m·. M· theo khèi vµ m· theo dßng ........ 12 1.3. MËt m· khãa ®èi xøng vµ mËt m· cã khãa c«ng khai.... 15 1.4. C¸c bµi to¸n an toµn th«ng tin ........................................... 16 1.5. Th¸m m· vµ tÝnh an toµn cña c¸c hÖ mËt m·................... 18 Ch−¬ng 2. C¬ së to¸n häc cña lý thuyÕt mËt m·................20 2.1.Sè häc c¸c sè nguyªn.ThuËt to¸n Euclide.......................... 20 2.2. X¸c suÊt vµ thuËt to¸n x¸c suÊt......... ............................... 31 2.3. §é phøc t¹p tÝnh to¸n......................................................... 36 2.4.Sè nguyªn tè. Ph©n tÝch thµnh thõa sè.L«garit rêi r¹c.... 42
  • 5.
    2 Ch−¬ng 3 C¸c hÖmËt m· kho¸ ®èi xøng ...... 55 3.1. C¸c hÖ mËt m· cæ ®iÓn........................................................ 55 3.2. Th¸m m· ®èi víi c¸c hÖ mËt m· cæ ®iÓn ......................... 63 3.3. MËt m· theo dßng vµ c¸c d·y sè gi¶ ngÉu nhiªn ...........72 3.4. HÖ mËt m· chuÈn DES ........................................ 80 Ch−¬ng 4 C¸c hÖ mËt m· kho¸ c«ng khai ...........92 4.1. Giíi thiÖu më ®Çu.................................................................92 4.1. HÖ mËt m· kho¸ c«ng khai RSA ........................................97 4.2. HÖ mËt m· kho¸ c«ng khai Rabin.................................... 101 4.3. HÖ mËt m· kho¸ c«ng khai ElGamal................................103 4.4. C¸c hÖ mËt m· dùa trªn c¸c bµi to¸n NP-®Çy ®ñ............107 4.5. C¸c hÖ mËt m· x¸c suÊt kho¸ c«ng khai...........................111 Ch−¬ng 5 Bµi to¸n x¸c nhËn vµ Ch÷ ký ®iÖn tö......115 5.1. Bµi to¸n x¸c nhËn vµ s¬ ®å ch÷ ký................................ 115 5.2. S¬ ®å ch÷ ký ElGamal vµ chuÈn ch÷ ký ®iÖ tö.......... 118 5.3. Hµm b¨m vµ ch÷ ký......................................................... 122 5.4. Mét sè s¬ ®å ch÷ ký kh¸c............................................... 127 5.5.Ch÷ ký kh«ng phñ ®Þnh ®−îc&kh«ng chèi bá ®−îc 131
  • 6.
    3 Ch−¬ng 6 C¸c s¬®å x−ng danh vµ x¸c nhËn danh tÝnh 136 6.1. VÊn ®Ò x−ng danh..............................................................136 6.2. S¬ ®å x−ng danh Schnorr..................................................137 6.3. S¬ ®å x−ng danh Okamoto................................................140 6.4. S¬ ®å x−ng danh Guillou-Quisquater..............................142 6.5. Giao thøc Feige-Fiat-Shamir...............................................145 6.6. PhÐp chøng minh kh«ng lé tri thøc..................................147 Ch−¬ng 7 VÊn ®Ò ph©n phèi kho¸ vµ tho¶ thuËn kho¸ 152 7.1. Qu¶n trÞ kho¸ trong c¸c m¹ng truyÒn tin.........................152 7.2. Mét sè hÖ ph©n phèi kho¸................................................153 7.3. Trao ®æi kho¸ vµ tho¶ thuËn kho¸....................................157 Chó dÉn vÒ tµi liÖu tham kh¶o..................................................163
  • 7.
    4 Lêi më ®Çu Tõkhi con ng−êi cã nhu cÇu trao ®æi th«ng tin, th− tõ cho nhau th× nhu cÇu gi÷ bÝ mËt vµ b¶o vÖ tÝnh riªng t− cña nh÷ng th«ng tin, th− tõ ®−îc trao ®æi ®ã còng nÈy sinh. H×nh thøc th«ng tin ®−îc trao ®æi phæ biÕn vµ sím nhÊt lµ d−íi d¹ng c¸c v¨n b¶n, ®Ó gi÷ bÝ mËt cña th«ng tin ng−êi ta ®· sím nghÜ ®Õn c¸ch che dÊu néi dung c¸c v¨n b¶n b»ng c¸ch biÕn d¹ng c¸c v¨n b¶n ®ã ®Ó ng−êi ngoµi kh«ng ®äc hiÓu ®−îc, ®ång thêi cã c¸ch kh«i phôc l¹i nguyªn d¹ng ban ®Çu ®Ó ng−êi trong cuéc vÉn ®äc hiÓu ®−îc; theo c¸ch gäi ngµy nay th× d¹ng biÕn ®æi cña v¨n b¶n ®−îc gäi lµ mËt m· cña v¨n b¶n, c¸ch lËp mËt m· cho mét v¨n b¶n ®−îc gäi lµ phÐp lËp mËt m·, cßn c¸ch kh«i phôc l¹i nguyªn d¹ng ban ®Çu cña v¨n b¶n tõ b¶n mËt m· ®−îc gäi lµ phÐp gi¶i m·. PhÐp lËp mËt m· vµ phÐp gi¶i m· ®−îc thùc hiÖn nhê mét ch×a kho¸ riªng nµo ®ã mµ chØ nh÷ng ng−êi trong cuéc ®−îc biÕt, sau ®©y ta sÏ gäi lµ kho¸ mËt m·. Ng−êi ngoµi cuéc kh«ng ®−îc biÕt kho¸ mËt m·, nªn dï cã "¨n c¾p" ®−îc b¶n mËt m· trªn ®−êng truyÒn tin, vÒ nguyªn t¾c còng kh«ng thÓ gi¶i m· ®Ó hiÓu ®−îc néi dung cña v¨n b¶n truyÒn ®i. HiÓn nhiªn, tiªu chuÈn cña mét b¶n mËt m· lµ t¹o ®−îc tÝnh bÝ mËt cho v¨n b¶n; v× vËy kh¸i niÖm bÝ mËt lµ kh¸i niÖm cèt lâi nhÊt ®èi víi mét lý thuyÕt vÒ mËt m·. Cã thÓ cã mét ®Þnh nghÜa khoa häc cho kh¸i niÖm bÝ mËt hay kh«ng? §· cã nhiÒu c¸ch tiÕp cËn ®Ó t×m hiÓu néi dung cña kh¸i niÖm bÝ mËt, nh−ng mét ®Þnh nghÜa khoa häc, hay h¬n n÷a, mét ®Þnh nghÜa to¸n häc cho kh¸i niÖm ®ã th× ch−a cã. Mét c¸ch tiÕp cËn kh¸ phæ biÕn lµ g¾n kh¸i niÖm bÝ mËt víi kh¸i niÖm "ngÉu nhiªn", nÕu mét v¨n b¶n râ cã mét néi dung x¸c ®Þnh th× ®iÒu ta mong muèn lµ b¶n mËt m· cña nã ph¶i lµ mét b¶n gåm c¸c ký tù ®−îc s¾p xÕp hçn ®én, cã vÎ nh− ngÉu nhiªn khiÕn
  • 8.
    5 ng−êi ngoµi nh×nvµo kh«ng thÓ x¸c ®Þnh ®−îc néi dung cña v¨n b¶n gèc. Tuy nhiªn, nÕu "bÝ mËt" lµ kh¸i niÖm ch−a ®Þnh nghÜa ®−îc, th× kh¸i niÖm "ngÉu nhiªn", hay cô thÓ h¬n, kh¸i niÖm "d·y bit ngÉu nhiªn", còng khã ®Þnh nghÜa nh− vËy, ta ch−a qui ®Þnh ®−îc mét tiªu chuÈn to¸n häc ®Ó x¸c ®Þnh mét d·y bit cã lµ "ngÉu nhiªn" hay kh«ng, mµ chØ míi t×m hiÓu ®−îc mét sè thuéc tÝnh gÇn víi "ngÉu nhiªn", dïng lµm c¨n cø ®Ó t¹m x¸c ®Þnh mét d·y bit cã lµ "gi¶ ngÉu nhiªn" theo nghÜa cã c¸c thuéc tÝnh ®ã hay kh«ng mµ th«i. Tõ mÊy thËp niªn gÇn ®©y, b−íc vµo kû nguyªn m¸y tÝnh, còng nh− ®èi víi nhiÒu lÜnh vùc kh¸c, lÜnh vùc mËt m· còng ®· cã nh÷ng chuyÓn biÕn to lín tõ giai ®o¹n mËt m· truyÒn thèng sang giai ®o¹n mËt m· m¸y tÝnh; m¸y tÝnh ®iÖn tö ®−îc sö dông ngµy cµng phæ biÕn trong viÖc lËp mËt m·, gi¶i mËt m·, vµ nh÷ng chuyÓn biÕn ®ã ®· kÝch thÝch viÖc nghiªn cøu c¸c gi¶i ph¸p mËt m·, biÕn viÖc nghiªn cøu mËt m· thµnh mét khoa häc cã ®èi t−îng ngµy cµng réng lín vµ ®−îc sö dông cã hiÖu qu¶ trong nhiÒu ph¹m vi ho¹t ®éng cña cuéc sèng. V× c¸c nghiÖp vô chñ yÕu cña mËt m· ®−îc thùc hiÖn b»ng m¸y tÝnh, nªn c¸c kh¸i niÖm bÝ mËt, ngÉu nhiªn còng dÇn ®−îc "m¸y tÝnh ho¸", vµ víi sù ra ®êi cña Lý thuyÕt vÒ ®é phøc t¹p tÝnh to¸n vµo gi÷a nh÷ng n¨m 1960, c¸c kh¸i niÖm ®ã t×m ®−îc mét néi dung chung cã thÓ ®−îc nghiªn cøu mét c¸ch to¸n häc lµ tÝnh phøc t¹p. B©y giê ta cã thÓ nãi, mét b¶n mËt m· ®èi víi anh lµ bÝ mËt, nÕu tõ b¶n mËt m· ®ã ®Ó t×m ra b¶n râ anh ph¶i thùc hiÖn mét tiÕn tr×nh tÝnh to¸n mµ ®é phøc t¹p cña nã v−ît qu¸ mäi n¨ng lùc tÝnh to¸n (kÓ c¶ mäi m¸y tÝnh) cña anh; mét d·y bit cã thÓ xem lµ ngÉu nhiªn , nÕu dùa vµo mét ®o¹n bit ®· biÕt ®Ó t×m mét bit tiÕp theo cña d·y anh còng ph¶i thùc hiÖn mét tiÕn tr×nh tÝnh to¸n cã ®é phøc t¹p cùc lín t−¬ng tù nh− nãi trªn. ViÖc chuyÓn sang giai ®o¹n mËt m· m¸y tÝnh tr−íc hÕt ®· cã t¸c dông ph¸t triÓn vµ hiÖn ®¹i ho¸ nhiÒu hÖ thèng mËt m· theo kiÓu truyÒn thèng, lµm cho c¸c hÖ thèng ®ã cã c¸c cÊu tróc tinh tÕ h¬n, ®ßi hái lËp mËt m· vµ gi¶i m· phøc t¹p h¬n, do ®ã hiÖu qu¶ gi÷ bÝ mËt cña c¸c gi¶i ph¸p mËt m· ®−îc n©ng cao h¬n tr−íc rÊt nhiÒu. Tuy nhiªn, mét b−íc chuyÓn cã tÝnh chÊt c¸ch m¹ng mµ mËt m· m¸y tÝnh mang l¹i lµ viÖc ph¸t minh ra c¸c hÖ mËt m· cã kho¸ c«ng khai, b¾t ®Çu tõ cuèi nh÷ng n¨m 1970, c¬ së lý thuyÕt cña c¸c ph¸t
  • 9.
    6 minh ®ã lµsù tån t¹i cña c¸c hµm mét phÝa (one-way function), tøc lµ nh÷ng hµm sè sè häc y = f (x) mµ viÖc tÝnh theo phÝa thuËn tõ x tÝnh y lµ t−¬ng ®èi dÔ, nh−ng viÖc tÝnh theo phÝa ng−îc tõ y t×m l¹i x (x = f--1 (y)) lµ cùc kú phøc t¹p. C¸c hÖ mËt m· cã kho¸ c«ng khai ®· lµm thay ®æi vÒ b¶n chÊt viÖc tæ chøc c¸c hÖ truyÒn th«ng b¶o mËt, lµm dÔ dµng cho viÖc b¶o mËt trªn c¸c hÖ truyÒn th«ng c«ng céng, vµ do tÝnh chÊt ®Æc biÖt ®ã chóng ®· lµ c¬ së cho viÖc ph¸t triÓn nhiÒu giao thøc an toµn th«ng tin kh¸c khi sö dông m¹ng truyÒn th«ng c«ng céng, ch¼ng h¹n c¸c lo¹i giao thøc vÒ x¸c nhËn nguån tin vµ ®Þnh danh ng−êi göi, ch÷ ký ®iÖn tö, c¸c giao thøc x¸c nhËn kh«ng ®Ó lé th«ng tin g× kh¸c ngoµi viÖc x¸c nhËn, c¸c giao thøc trao ®æi kho¸ trong tæ chøc truyÒn tin b¶o mËt vµ trong x¸c nhËn, v.v..., vµ gÇn ®©y trong viÖc ph¸t triÓn nhiÒu giao thøc ®Æc thï kh¸c trong c¸c giao dÞch ng©n hµng vµ th−¬ng m¹i ®iÖn tö, ph¸t hµnh vµ mua b¸n b»ng tiÒn ®iÖn tö,... Còng cÇn nãi thªm lµ lý thuyÕt mËt m· hiÖn ®¹i, tøc lµ mËt m· m¸y tÝnh trªn c¬ së lý thuyÕt vÒ ®é phøc t¹p tÝnh to¸n tuy cã nhiÒu øng dông ®Æc s¾c vµ cã triÓn väng to lín, nh−ng còng míi ®ang trong giai ®o¹n ph¸t triÓn b−íc ®Çu, cßn ph¶i kh¾c phôc nhiÒu khã kh¨n vµ t×m kiÕm thªm nhiÒu c¬ së v÷ng ch¾c míi ®Ó tiÕp tôc hoµn thiÖn vµ ph¸t triÓn. Ch¼ng h¹n, nh− trªn ®· nãi, mét c¬ së quan träng cña lý thuyÕt mËt m· hiÖn ®¹i lµ sù tån t¹i cña c¸c hµm mét phÝa, nh−ng ngay cã thËt tån t¹i c¸c hµm mét phÝa hay kh«ng còng cßn lµ mét bµi to¸n ch−a cã c©u tr¶ lêi! Ta chØ míi ®ang cã mét sè hµm mét phÝa theo sù hiÓu biÕt cña con ng−êi hiÖn nay, nh−ng ch−a chøng minh ®−îc cã mét hµm cô thÓ nµo ®ã ch¾c ch¾n lµ hµm mét phÝa! Tuy nhiªn, nÕu theo quan ®iÓm khoa häc hiÖn ®¹i, ta kh«ng xem môc ®Ých khoa häc lµ ®i t×m nh÷ng ch©n lý ch¾c ch¾n tuyÖt ®èi, mµ lµ ®i t×m nh÷ng c¸ch gi¶i quyÕt vÊn ®Ò (problem solving) gÆp trong thùc tiÔn, th× ta vÉn cã thÓ tin vµo nh÷ng gi¶i ph¸p "t−¬ng ®èi" rÊt cã hiÖu qu¶ mµ lý thuyÕt hiÖn ®¹i vÒ mËt m· ®ang cèng hiÕn cho con ng−êi hiÖn nay. TËp gi¸o tr×nh Lý thuyÕt mËt m· vµ an toµn th«ng tin nµy ®−îc so¹n ®Ó phôc vô cho viÖc häc tËp cña sinh viªn c¸c líp theo ch−¬ng tr×nh ®¹i häc hoÆc cao häc thuéc ngµnh C«ng nghÖ th«ng tin cña §¹i häc Quèc gia Hµ néi. Trong kho¶ng m−¬i n¨m gÇn ®©y, trªn thÕ giíi ®· xuÊt hiÖn nhiÒu s¸ch vµ tµi liÖu cã tÝnh chÊt gi¸o khoa
  • 10.
    7 hoÆc tham kh¶ovÒ lý thuyÕt mËt m· hiÖn ®¹i vµ øng dông. Ng−êi viÕt tËp gi¸o tr×nh nµy chØ cã cè g¾ng lùa chän vµ s¾p xÕp mét sè néi dung mµ m×nh nghÜ lµ cÇn thiÕt vµ thÝch hîp nhÊt ®Ó trong mét ph¹m vi h¹n chÕ vÒ thêi gian (vµ kh«ng gian) tr×nh bµy vµ giíi thiÖu ®−îc cho ng−êi häc mét c¸ch t−¬ng ®èi hÖ thèng nh÷ng kiÕn thøc c¬ b¶n vÒ lý thuyÕt mËt m· hiÖn ®¹i, bao gåm c¶ mét sè kiÕn thøc to¸n häc cÇn thiÕt. Gi¸o tr×nh nµy ®· ®−îc gi¶ng d¹y cho sinh viªn c¸c kho¸ cao häc vÒ C«ng nghÖ th«ng tin thuéc §¹i häc B¸ch khoa Hµ néi vµ khoa C«ng nghÖ §¹i häc Quèc gia Hµ néi tõ n¨m 1997 ®Õn 2004. Ng−êi viÕt ch©n thµnh c¶m ¬n c¸c b¹n ®ång nghiÖp vµ ng−êi ®äc chØ cho nh÷ng chç thiÕu sãt ®Ó cã thÓ kÞp thêi söa ch÷a cho nh÷ng lÇn in sau, nÕu cã. Th¸ng 12 n¨m 2002 Phan §×nh DiÖu
  • 11.
    8 CH¦¥NG I Giíi thiÖuchung vÒ mËt m· 1.1. S¬ l−îc lÞch sö vÒ mËt m·. Nh− ®· giíi thiÖu trong Lêi më ®Çu, nhu cÇu sö dông mËt m· ®· xuÊt hiÖn tõ rÊt sím, khi con ng−êi biÕt trao ®æi vµ truyÒn ®−a th«ng tin cho nhau, ®Æc biÖt khi c¸c th«ng tin ®ã ®· ®−îc thÓ hiÖn d−íi h×nh thøc ng«n ng÷, th− tõ. LÞch sö cho ta biÕt, c¸c h×nh thøc mËt m· s¬ khai ®· ®−îc t×m thÊy tõ kho¶ng bèn ngh×n n¨m tr−íc trong nÒn v¨n mÞnh Ai cËp cæ ®¹i. Tr¶i qua hµng ngh×n n¨m lÞch sö, mËt m· ®· ®−îc sö dông réng r·i trªn kh¾p thÕ giíi tõ §«ng sang T©y ®Ó gi÷ bÝ mËt cho viÖc giao l−u th«ng tin trong nhiÒu lÜnh vùc ho¹t ®éng gi÷a con ng−êi vµ c¸c quèc gia, ®Æc biÖt trong c¸c lÜnh vùc qu©n sù, chÝnh trÞ, ngo¹i giao. MËt m· tr−íc hÕt lµ mét lo¹i ho¹t ®éng thùc tiÔn, néi dung chÝnh cña nã lµ ®Ó gi÷ bÝ mËt th«ng tin (ch¼ng h¹n d−íi d¹ng mét v¨n b¶n) tõ mét ng−êi göi A ®Õn mét ng−êi nhËn B, A ph¶i t¹o cho v¨n b¶n ®ã mét b¶n m· mËt t−¬ng øng, vµ thay v× göi v¨n b¶n râ th× A chØ göi cho B b¶n m· mËt, B nhËn ®−îc b¶n m· mËt vµ sÏ cã c¸ch tõ ®ã kh«i phôc l¹i v¨n b¶n râ ®Ó hiÓu ®−îc th«ng tin mµ A muèn göi cho m×nh. V× b¶n göi ®i th−êng ®−îc chuyÓn qua c¸c con ®−êng c«ng khai nªn ng−êi ngoµi cã thÓ "lÊy trém" ®−îc, nh−ng do ®ã lµ b¶n mËt m· nªn kh«ng ®äc hiÓu ®−îc, cßn A cã thÓ t¹o ra b¶n m· mËt vµ B cã thÓ gi¶i b¶n m· mËt thµnh b¶n râ ®Ó hiÓu ®−îc lµ do gi÷a hai ng−êi ®· cã mét tháa thuËn vÒ mét ch×a khãa chung, chØ víi ch×a khãa chung nµy th× A míi t¹o ®−îc b¶n m· mËt tõ b¶n râ, vµ B míi tõ b¶n m· mËt kh«i phôc l¹i ®−îc b¶n râ. Sau nµy ta sÏ gäi ®¬n gi¶n ch×a khãa chung ®ã lµ khãa mËt m·. TÊt nhiªn ®Ó thùc hiÖn ®−îc mét phÐp mËt m·, ta
  • 12.
    9 cßn cÇn cãmét thuËt to¸n biÕn b¶n râ, cïng víi khãa mËt m·, thµnh b¶n m· mËt, vµ mét thuËt to¸n ng−îc l¹i, biÕn b¶n m· mËt, cïng víi khãa mËt m·, thµnh b¶n râ. C¸c thuËt to¸n ®ã ®−îc gäi t−¬ng øng lµ thuËt to¸n lËp mËt m· vµ thuËt to¸n gi¶i mËt m·. C¸c thuËt to¸n nµy th−êng kh«ng nhÊt thiÕt ph¶i gi÷ bÝ mËt, mµ c¸i cÇn ®−îc gi÷ tuyÖt mËt lu«n lu«n lµ khãa mËt m·. Trong thùc tiÔn, ®· cã ho¹t ®éng b¶o mËt th× còng cã ho¹t ®éng ng−îc l¹i lµ kh¸m ph¸ bÝ mËt tõ c¸c b¶n m· mËt "lÊy trém" ®−îc, ta th−êng gäi ho¹t ®éng nµy lµ m· th¸m, ho¹t ®éng nµy quan träng kh«ng kÐm g× ho¹t ®éng b¶o mËt! V× c¸c thuËt to¸n lËp mËt m· vµ gi¶i mËt m· kh«ng nhÊt thiÕt lµ bÝ mËt, nªn m· th¸m th−êng ®−îc tËp trung vµo viÖc t×m khãa mËt m·, do ®ã còng cã ng−êi gäi c«ng viÖc ®ã lµ ph¸ khãa. Suèt mÊy ngh×n n¨m lÞch sö, c¸c th«ng b¸o, th− tõ ®−îc truyÒn ®−a vµ trao ®æi víi nhau th−êng lµ c¸c v¨n b¶n, tøc lµ cã d¹ng c¸c d·y ký tù trong mét ng«n ng÷ nµo ®ã; v× vËy, c¸c thuËt to¸n lËp mËt m· th−êng còng ®¬n gi¶n lµ thuËt to¸n x¸o trén, thay ®æi c¸c ký tù ®−îc x¸c ®Þnh bëi c¸c phÐp chuyÓn dÞch, thay thÕ hay ho¸n vÞ c¸c ký tù trong b¶ng ký tù cña ng«n ng÷ t−¬ng øng; khãa mËt m· lµ th«ng tin dïng ®Ó thùc hiÖn phÐp lËp mËt m· vµ gi¶i mËt m· cô thÓ, thÝ dô nh− sè vÞ trÝ ®èi víi phÐp chuyÓn dÞch, b¶ng x¸c ®Þnh c¸c cÆp ký tù t−¬ng øng ®èi víi phÐp thay thÕ hay ho¸n vÞ,... MËt m· ch−a ph¶i lµ mét khoa häc, do ®ã ch−a cã nhiÒu kiÕn thøc s¸ch vë ®Ó l¹i, tuy nhiªn ho¹t ®éng b¶o mËt vµ th¸m m· trong lÞch sö c¸c cuéc ®Êu tranh chÝnh trÞ, ngo¹i giao vµ qu©n sù th× hÕt søc phong phó, vµ mËt m· ®· cã nhiÒu t¸c ®éng rÊt quan träng ®−a ®Õn nh÷ng kÕt qu¶ l¾m khi cã ý nghÜa quyÕt ®Þnh trong c¸c cuéc ®Êu tranh ®ã. Do trong mét thêi gian dµi, b¶n th©n ho¹t ®éng mËt m· còng ®−îc xem lµ mét bÝ mËt, nªn c¸c tµi liÖu kü thuËt vÒ mËt m· ®−îc phæ biÕn ®Õn nay th−êng chØ ghi l¹i c¸c kiÕn thøc kinh nghiÖm, thØnh tho¶ng míi cã mét vµi "ph¸t minh" nh− c¸c hÖ mËt m· VigenÌre vµo thÕ kû 16 hoÆc hÖ mËt m· Hill ra ®êi n¨m 1929 lµ c¸c hÖ m· thùc hiÖn phÐp chuyÓn dÞch (®èi víi m· VigenÌre) hay phÐp thay thÕ (m· Hill) ®ång thêi trªn mét nhãm ký tù chø kh«ng ph¶i trªn tõng ký tù riªng rÏ. VÊn ®Ò th¸m m·, ng−îc l¹i, khi thµnh c«ng th−êng ®−a ®Õn nh÷ng cèng hiÕn næi tréi vµ Ên t−îng trong nh÷ng
  • 13.
    10 t×nh huèng gaycÊn cña c¸c cuéc ®Êu tranh, vµ còng th−êng ®ßi hái nhiÒu tµi n¨ng ph¸t hiÖn víi nh÷ng kinh nghiÖm vµ suy luËn tinh tÕ h¬n, nªn ®Ó l¹i nhiÒu chuyÖn hÊp dÉn h¬n. NhiÒu c©u chuyÖn kú thó cña lÞch sö th¸m m· ®· ®−îc thuËt l¹i trong quyÓn s¸ch næi tiÕng cña David Kahn The Codebreakers . The Story of Secret Writing , xuÊt b¶n n¨m 1967 (s¸ch ®· ®−îc dÞch ra nhiÒu thø tiÕng, cã b¶n dÞch tiÕng ViÖt Nh÷ng ng−êi m· th¸m, 3 tËp, xuÊt b¶n t¹i Hµ néi n¨m 1987). B−íc sang thÕ kû 20, víi nh÷ng tiÕn bé liªn tôc cña kü thuËt tÝnh to¸n vµ truyÒn th«ng, ngµnh mËt m· còng ®· cã nh÷ng tiÕn bé to lín. Vµo nh÷ng thËp niªn ®Çu cña thÕ kû, sù ph¸t triÓn cña c¸c kü thuËt biÓu diÔn, truyÒn vµ xö lý tÝn hiÖu ®· cã t¸c ®éng gióp cho c¸c ho¹t ®éng lËp vµ gi¶i mËt m· tõ thñ c«ng chuyÓn sang c¬ giíi hãa råi ®iÖn tö hãa. C¸c v¨n b¶n, c¸c b¶n mËt m· tr−íc ®©y ®−îc viÕt b»ng ng«n ng÷ th«ng th−êng nay ®−îc chuyÓn b»ng kü thuËt sè thµnh c¸c d·y tÝn hiÖu nhÞ ph©n, tøc c¸c d·y bit, vµ c¸c phÐp biÕn ®æi trªn c¸c d·y ký tù ®−îc chuyÓn thµnh c¸c phÐp biÕn ®æi trªn c¸c d·y bit, hay c¸c d·y sè, viÖc thùc hiÖn c¸c phÐp lËp m·, gi¶i m· trë thµnh viÖc thùc hiÖn c¸c hµm sè sè häc. To¸n häc vµ kü thuËt tÝnh to¸n b¾t ®Çu trë thµnh c«ng cô cho viÖc ph¸t triÓn khoa häc vÒ mËt m·. Kh¸i niÖm trung t©m cña khoa häc mËt m· lµ kh¸i niÖm bÝ mËt. §ã lµ mét kh¸i niÖm phæ biÕn trong ®êi sèng, nh−ng liÖu cã thÓ cho nã mét néi dung cã thÓ ®Þnh nghÜa ®−îc mét c¸ch to¸n häc kh«ng? Nh− ®· l−îc qua trong Lêi më ®Çu, kh¸i niÖm bÝ mËt tho¹t ®Çu ®−îc g¾n víi kh¸i niÖm ngÉu nhiªn, råi vÒ sau trong nh÷ng thËp niªn gÇn ®©y, víi kh¸i niÖm phøc t¹p, cô thÓ h¬n lµ kh¸i niÖm ®é phøc t¹p tÝnh to¸n. ViÖc sö dông lý thuyÕt x¸c suÊt vµ ngÉu nhiªn lµm c¬ së ®Ó nghiªn cøu mËt m· ®· gióp C.Shannon ®−a ra kh¸i niÖm bÝ mËt hoµn toµn cña mét hÖ mËt m· tõ n¨m 1948, khëi ®Çu cho mét lý thuyÕt x¸c suÊt vÒ mËt m·. Trong thùc tiÔn lµm mËt m·, c¸cd·y bit ngÉu nhiªn ®−îc dïng ®Ó trén víi b¶n râ (d−íi d¹ng mét d·y bit x¸c ®Þnh) thµnh ra b¶n mËt m·. Lµm thÕ nµo ®Ó t¹o ra c¸c d·y bit ngÉu nhiªn? Cã thÓ t¹o ra b»ng ph−¬ng ph¸p vËt lý ®¬n gi¶n nh− sau: ta tung ®ång xu lªn, nÕu ®ång xu r¬i xuèng ë mÆt sÊp th× ta ghi bit 0, ë mÆt ngöa th× ta ghi bit 1; tung n lÇn ta sÏ ®−îc mét d·y n
  • 14.
    11 bit, d·y bitthu ®−îc nh− vËy cã thÓ ®−îc xem lµ d·y bit ngÉu nhiªn. Nh−ng t¹o ra theo c¸ch nh− vËy th× khã cã thÓ sö dông mét c¸ch phæ biÕn, v× kh«ng thÓ t×m ra qui luËt ®Ó theo ®ã mµ sinh ra d·y bit ngÉu nhiªn ®−îc. ë ®©y ta gÆp mét khã kh¨n cã tÝnh b¶n chÊt: nÕu cã qui luËt th× ®· kh«ng cßn lµ ngÉu nhiªn n÷a råi! Nh− vËy, nÕu ta muèn t×m theo qui luËt, th× kh«ng bao giê cã thÓ t×m ra c¸c d·y bit ngÉu nhiªn, mµ cïng l¾m còng chØ cã thÓ ®−îc c¸c d·y bit gÇn ngÉu nhiªn, hay gi¶ ngÉu nhiªn, mµ th«i. Tõ nhiÒu chôc n¨m nay, ng−êi ta ®· nghiªn cøu ®Ò xuÊt nhiÒu thuËt to¸n to¸n häc ®Ó sinh ra c¸c d·y bit gi¶ ngÉu nhiªn, vµ còng ®· ®−a ra nhiÒu thuéc tÝnh ®Ó ®¸nh gi¸ mét d·y bit gi¶ ngÉu nhiªn cã ®¸ng ®−îc xem lµ "gÇn" ngÉu nhiªn hay kh«ng. Mét vµi thuéc tÝnh chñ yÕu mµ ng−êi ta ®· ®Ò xuÊt lµ: cho mét d·y bit X = (x1,x2,.....,xn,...); d·y ®ã ®−îc xem lµ gi¶ ngÉu nhiªn "tèt" nÕu x¸c suÊt xuÊt hiÖn bit 0 hay bit 1 trong toµn d·y ®ã còng nh− trong mäi d·y con bÊt kú cña nã ®Òu b»ng 1/2; hoÆc mét tiªu chuÈn kh¸c: nÕu mäi ch−¬ng tr×nh sinh ra ®−îc ®o¹n ®Çu n bit cña d·y ®Òu ph¶i cã ®é phøc t¹p (hay ®é dµi) cì n ký tù ! VÒ sau nµy, khi lý thuyÕt vÒ ®é phøc t¹p tÝnh to¸n ®· ®−îc ph¸t triÓn th× tiªu chuÈn vÒ ngÉu nhiªn còng ®−îc qui vÒ tiªu chuÈn phøc t¹p tÝnh to¸n, cô thÓ mét d·y bit X ®−îc xem lµ gi¶ ngÉu nhiªn "tèt" nÕu mäi thuËt to¸n t×m ®−îc bit thø n (xn) khi biÕt c¸c bit tr−íc ®ã (x1,,...,xn-1) víi x¸c suÊt ®óng > 1/2 ®Òu ph¶i cã ®é phøc t¹p tÝnh to¸n thuéc líp NP-khã! Lý thuyÕt vÒ ®é phøc t¹p tÝnh to¸n ra ®êi tõ gi÷a nh÷ng n¨m 1960 ®· cho ta mét c¸ch thÝch hîp ®Ó qui yªu cÇu bÝ mËt hoÆc ngÉu nhiªn vÒ mét yªu cÇu cã thÓ ®Þnh nghÜa ®−îc lµ yªu cÇu vÒ ®é phøc t¹p tÝnh to¸n. B©y giê ta cã thÓ nãi: mét gi¶i ph¸p mËt m· lµ b¶o ®¶m bÝ mËt, nÕu mäi thuËt to¸n th¸m m·, nÕu cã, ®Òu ph¶i ®−îc thùc hiÖn víi ®é phøc t¹p tÝnh to¸n cùc lín! Cùc lín lµ bao nhiªu? Lµ v−ît qu¸ giíi h¹n kh¶ n¨ng tÝnh to¸n (bao gåm c¶ m¸y tÝnh) mµ ng−êi th¸m m· cã thÓ cã. VÒ lý thuyÕt, cã thÓ xem ®ã lµ nh÷ng ®é phøc t¹p tÝnh to¸n víi tèc ®é t¨ng v−ît qu¸ hµm mò, hoÆc thuéc lo¹i NP-khã. Tuy nhiªn, lý thuyÕt ®é phøc t¹p tÝnh to¸n kh«ng chØ cèng hiÕn cho ta mét kh¸i niÖm ®Ó gióp chÝnh x¸c hãa tiªu chuÈn bÝ mËt cña c¸c gi¶i ph¸p mËt m·, mµ cßn më ra mét giai ®o¹n míi cña ngµnh mËt m·, biÕn ngµnh mËt m· thµnh mét khoa häc cã néi dung
  • 15.
    12 lý luËn phongphó vµ cã nh÷ng øng dông thùc tiÔn quan träng trong nhiÒu lÜnh vùc cña ®êi sèng hiÖn ®¹i. B−íc ngoÆt cã tÝnh c¸ch m¹ng trong lÞch sö khoa häc mËt m· hiÖn ®¹i xÈy ra vµo n¨m 1976 khi hai t¸c gi¶ Diffie vµ Hellman ®−a ra kh¸i niÖm vÒ mËt m· khãa c«ng khai vµ mét ph−¬ng ph¸p trao ®æi c«ng khai ®Ó t¹o ra mét khãa bÝ mËt chung mµ tÝnh an toµn ®−îc b¶o ®¶m bëi ®é khã cña mét bµi to¸n to¸n häc cô thÓ (lµ bµi to¸n tÝnh "l«garit rêi r¹c"). Hai n¨m sau, n¨m 1978, Rivest, Shamir vµ Adleman t×m ra mét hÖ mËt m· khãa c«ng khai vµ mét s¬ ®å ch÷ ký ®iÖn tö hoµn toµn cã thÓ øng dông trong thùc tiÔn, tÝnh b¶o mËt vµ an toµn cña chóng ®−îc b¶o ®¶m b»ng ®é phøc t¹p cña mét bµi to¸n sè häc næi tiÕng lµ bµi to¸n ph©n tÝch sè nguyªn thµnh c¸c thõa sè nguyªn tè. Sau ph¸t minh ra hÖ mËt m· ®ã (mµ nay ta th−êng gäi lµ hÖ RSA), viÖc nghiªn cøu ®Ó ph¸t minh ra c¸c hÖ mËt m· khãa c«ng khai kh¸c, vµ øng dông c¸c hÖ mËt m· khãa c«ng khai vµo c¸c bµi to¸n kh¸c nhau cña an toµn th«ng tin ®· ®−îc tiÕn hµnh réng r·i, lý thuyÕt mËt m· vµ an toµn th«ng tin trë thµnh mét lÜnh vùc khoa häc ®−îc ph¸t triÓn nhanh trong vµi ba thËp niªn cuèi cña thÕ kû 20, l«i cuèn theo sù ph¸t triÓn cña mét sè bé m«n cña to¸n häc vµ tin häc. Trong c¸c ch−¬ng vÒ sau cña tËp gi¸o tr×nh nµy ta sÏ lÇn l−ît lµm quen víi mét sè thµnh qu¶ chñ yÕu cña lý thuyÕt ®ã. 1.2. C¸c hÖ thèng mËt m·. 1.2.1. S¬ ®å hÖ thèng mËt m·. MËt m· ®−îc sö dông ®Ó b¶o vÖ tÝnh bÝ mËt cña th«ng tin khi th«ng tin ®−îc truyÒn trªn c¸c kªnh truyÒn th«ng c«ng céng nh− c¸c kªnh b−u chÝnh, ®iÖn tho¹i, m¹ng truyÒn th«ng m¸y tÝnh, m¹ng Internet, v.v... Gi¶ thö mét ng−êi göi A muèn göi ®Õn mét ng−êi nhËn B mét v¨n b¶n (ch¼ng h¹n, mét bøc th−) p, ®Ó b¶o mËt A lËp cho p mét b¶n mËt m· c, vµ thay cho viÖc göi p, A göi cho B b¶n mËt m· c, B nhËn ®−îc c vµ "gݶi m·" c ®Ó l¹i ®−îc v¨n b¶n p nh− A ®Þnh göi. §Ó A biÕn p thµnh c vµ B biÕn ng−îc l¹i c thµnh p , A vµ B ph¶i tháa thuËn tr−íc víi nhau c¸c thuËt to¸n lËp m· vµ gi¶i m·, vµ ®Æc biÖt mét khãa mËt m· chung K ®Ó thùc hiÖn c¸c thuËt to¸n ®ã. Ng−êi ngoµi, kh«ng biÕt c¸c th«ng tin ®ã (®Æc biÖt, kh«ng biÕt khãa
  • 16.
    13 K), cho dïcã lÊy trém ®−îc c trªn kªnh truyÒn th«ng c«ng céng, còng kh«ng thÓ t×m ®−îc v¨n b¶n p mµ hai ng−êi A, B muèn göi cho nhau. Sau ®©y ta sÏ cho mét ®Þnh nghÜa h×nh thøc vÒ s¬ ®å mËt m· vµ c¸ch thøc thùc hiÖn ®Ó lËp mËt m· vµ gi¶i mËt m·. §Þnh nghÜa 1.2.1. Mét s¬ ®å hÖ thèng mËt m· lµ mét bé n¨m S = (P , C , K , E , D ) (1) tháa m·n c¸c ®iÒu kiÖn sau ®©y: P lµ mét tËp h÷u h¹n c¸c ký tù b¶n râ, C lµ mét tËp h÷u h¹n c¸c ký tù b¶n m·, K lµ mét tËp h÷u h¹n c¸c khãa, E lµ mét ¸nh x¹ tõ KxP vµo C , , ®−îc gäi lµ phÐp lËp mËt m·; vµ D lµ mét ¸nh x¹ tõ KxC vµo P , ®−îc gäi lµ phÐp gi¶i m·. Víi mçi K∈K , ta ®Þnh nghÜa eK : P →C , dK :C →P lµ hai hµm cho bëi : ⎠x εP : eK(x) = E (K,x) ; ⎠yε C : dK(y) = D (K,y). eK vµ dK ®−îc gäi lÇn l−ît lµ hµm lËp m· vµ hµm gi¶i m· øng víi khãa mËt m· K. C¸c hµm ®ã ph¶i tháa m·n hÖ thøc: ⎠x ε P : dK(eK(x)) = x. VÒ sau, ®Ó thuËn tiÖn ta sÏ gäi mét danh s¸ch (1) tho¶ m·n c¸c tÝnh chÊt kÓ trªn lµ mét s¬ ®å hÖ thèng mËt m· , cßn khi ®· chän cè ®Þnh mét kho¸ K, th× danh s¸ch (P , C , eK , dK) lµ mét hÖ mËt m· thuéc s¬ ®å ®ã. Trong ®Þnh nghÜa nµy, phÐp lËp mËt m· (gi¶i m·) ®−îc ®Þnh nghÜa cho tõng ký tù b¶n râ (b¶n m·). Trong thùc tÕ, b¶n râ cña mét th«ng b¸o th−êng lµ mét d·y ký tù b¶n râ, tøc lµ phÇn tö cña tËp P *, vµ b¶n mËt m· còng lµ mét d·y c¸c ký tù b¶n m·, tøc lµ phÇn tö cña tËp C *, viÖc më réng c¸c hµm eK vµ dK lªn c¸c miÒn t−¬ng øng P * vµ C * ®Ó ®−îc c¸c thuËt to¸n lËp mËt m· vµ gi¶i m· dïng trong thùc tÕ sÏ ®−îc tr×nh bµy trong tiÕt sau. C¸c tËp ký tù b¶n râ vµ b¶n m· th−êng dïng lµ c¸c tËp ký tù cña ng«n ng÷ th«ng th−êng nh− tiÕng ViÖt, tiÕng Anh (ta ký hiÖu tËp ký tù tiÕng Anh lµ A tøc A = {a,b,c,...,x,y,z } gåm 26 ký tù; tËp ký tù nhÞ ph©n B chØ gåm hai ký tù
  • 17.
    0 vµ 1;tËp c¸c sè nguyªn kh«ng ©m bÐ h¬n mét sè n nµo ®ã (ta ký hiÖu tËp nµy lµ Zn tøc Zn = {0,1,2,...., n- 1}). Chó ý r»ng cã thÓ xem B = Z2. §Ó thuËn tiÖn, ta còng th−êng ®ång nhÊt tËp ký tù tiÕng Anh A víi tËp gåm 26 sè nguyªn kh«ng ©m ®Çu tiªn Z26 = {0,1,2,...., 24,25} víi sù t−¬ng øng sau ®©y: a b c d e f g h i j k l m n o p q r s t u v w x y z 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25. §«i khi ta còng dïng víi t− c¸ch tËp ký tù b¶n râ hay b¶n m· lµ c¸c tËp tÝch cña c¸c tËp nãi trªn, ®Æc biÖt lµ c¸c tËp Am , Bm , Zn m . 1.2.2. M· theo khèi vµ m· theo dßng. Nh− nãi ë trªn, b¶n râ cña th«ng b¸o mµ ta muèn göi ®i th−êng lµ mét d·y ký tù, trong khi theo ®Þnh nghÜa cña s¬ ®å mËt m·, hµm lËp mËt m· vµ hµm gi¶i m· ®−îc ®Þnh nghÜa cho tõng ký tù. Tõ c¸c ®Þnh nghÜa cña hµm lËp mËt m· vµ hµm gi¶i m·, ta më réng thµnh thuËt to¸n lËp m· (vµ gi¶i m·) x¸c ®Þnh cho mäi b¶n râ (b¶n m·) nh− sau: Theo c¸ch m· theo khèi (block cipher), tr−íc hÕt ta x¸c ®Þnh mét ®é dµi khèi (ch¼ng h¹n lµ k), tiÕp ®ã më réng kh«ng gian khãa tõ K thµnh Kk , vµ víi mçi K =K1...Kk ε Kk , ta më réng eK vµ dK thµnh c¸c thuËt to¸n eK : P k → C k vµ dK : C k →P k nh− sau: víi mäi x1...xk ∈P k vµ y1...yk ∈C k ta cã 14 e x x e x e x 1 1 1 ( .... ) ( ).... ( ); k K k K K k = 1 1 1 ( .... ) ( ).... ( ) k K k K K k d y y d y d y = . Gi¶ thö b¶n râ mµ ta muèn lËp mËt m· cho nã lµ d·y ký tù X∈ P * .Ta c¾t X thµnh tõng khèi, mçi khèi cã ®é dµi k, khèi cuèi cïng cã thÓ cã ®é dµi <k, ta lu«n cã thÓ gi¶ thiÕt lµ cã thÓ bæ sung vµo phÇn cuèi cña khèi mét sè ký tù qui −íc nµo ®ã ®Ó nã còng cã ®é dµi k. Do ®ã ta cã thÓ gi¶ thiÕt X = X1....Xm , trong ®ã mçi X1,...,Xm lµ mét khèi cã ®é dµi k. Vµ ta ®Þnh nghÜa b¶n mËt m· cña X lµ: eK(X) = eK(X1....Xm ) = eK(X1)....eK(Xm). §Æt Y = eK(X1)....eK(Xm), ta cã thÓ viÕt Y = Y1....Ym víi Yi =eK(Xi), vµ do ®ã cã
  • 18.
    dK(Y) = dK(Y1)....dK(Ym)= X1....Xm = X. C¸ch m· theo khèi ®¬n gi¶n vµ th«ng dông nhÊt lµ khi ta chän ®é dµi khèi k =1. Khi ®ã víi mäi b¶n râ X = x1...xm ∈ P * ta cã eK(X) = eK(x1....xm ) = eK(x1)....eK(xm). Víi c¸ch m· theo dßng (stream cipher), tr−íc hÕt ta ph¶i x¸c ®Þnh mét dßng khãa, tøc lµ mét phÇn tö K = K1...Km ∈ K * , víi dßng khãa ®ã ta x¸c ®Þnh víi mäi b¶n râ X = x1...xm ∈ P * b¶n m· t−¬ng øng lµ eK(X) = 1 1 1 ( ... ) ( )... ( ). m K m K K m e x x e x e x = Gi¶i m· Y = eK(X) ta ®−îc dK(Y) = . 1 1 1 1 ( ( )).... ( ( )) .... m m K K K K m m d e x d e x x x X = = §Ó sö dông c¸ch lËp mËt m· theo dßng, ngoµi s¬ ®å mËt m· gèc ta cßn ph¶i cã mét dßng khãa, tøc lµ mét d·y cã ®é dµi tïy ý c¸c ký tù khãa. §ã th−êng lµ c¸c d·y c¸c ký tù khãa ®−îc sinh ra bëi mét bé "t¹o d·y ngÉu nhiªn" nµo ®ã xuÊt ph¸t tõ mét "mÇm" chän tr−íc. Trong c¸c øng dông thùc tÕ, ng−êi ta th−êng dïng c¸ch m· theo dßng cã s¬ ®å mËt m· gèc lµ s¬ ®å Vernam víi P = C = K = {0,1} vµ c¸c hµm lËp m· vµ gi¶i m· ®−îc x¸c ®Þnh bëi eK(x) = x + K mod 2, dK(y) = y +K mod 2 (K = 0 hoÆc 1); dßng khãa lµ d·y bit ngÉu nhiªn ®−îc sinh ra bëi mét bé t¹o d·y bit ngÉu nhiªn nµo ®ã. 1.3. MËt m· khãa ®èi xøng vµ mËt m· cã khãa c«ng khai. Theo ®Þnh nghÜa 1.2.1 vÒ s¬ ®å mËt m·, cø mçi lÇn truyÒn tin b¶o mËt, c¶ ng−êi göi A vµ ng−êi nhËn B ph¶i cïng tháa thuËn tr−íc víi nhau mét khãa chung K, sau ®ã ng−êi göi dïng eK ®Ó lËp mËt m· cho th«ng b¸o göi ®i, vµ ng−êi nhËn dïng dK ®Ó gi¶i m· b¶n mËt m· nhËn ®−îc. Ng−êi göi vµ ng−êi nhËn cïng cã mét khãa 15
  • 19.
    16 chung K, ®−îcgi÷ nh− bÝ mËt riªng cña hai ng−êi, dïng c¶ cho lËp mËt m· vµ gi¶i m·, ta gäi nh÷ng hÖ mËt m· víi c¸ch sö dông ®ã lµ mËt m· khãa ®èi xøng, ®«i khi còng gäi lµ mËt m· truyÒn thèng, v× ®ã lµ c¸ch ®· ®−îc sö dông tõ hµng ngµn n¨m nay. Tuy nhiªn, vÒ nguyªn t¾c hai hµm lËp m· vµ gi¶i m· lµ kh¸c nhau, kh«ng nhÊt thiÕt ph¶i phô thuéc cïng mét khãa. NÕu ta x¸c ®Þnh mçi khãa K gåm cã hai phÇn K = (K' , K'' ), K' dµnh cho viÖc lËp mËt m· (vµ ta cã hµm lËp m· eK' ), K'' dµnh cho viÖc gi¶i m· (vµ cã hµm gi¶i m· dK'' ), c¸c hµm lËp m· vµ gi¶i m· tháa m·n hÖ thøc dK'' (eK' (x)) = x víi mäi x ∈P , th× ta ®−îc mét hÖ mËt m· khãa phi ®èi xøng. Nh− vËy, trong mét hÖ mËt m· khãa phi ®èi xøng, c¸c khãa lËp m· vµ gi¶i m· (K' vµ K'' ) lµ kh¸c nhau, nh−ng tÊt nhiªn cã quan hÖ víi nhau. Trong hai khãa ®ã, khãa cÇn ph¶i gi÷ bÝ mËt lµ khãa gi¶i m· K'' , cßn khãa lËp m· K' cã thÓ ®−îc c«ng bè c«ng khai; tuy nhiªn ®iÒu ®ã chØ cã ý nghÜa thùc tiÔn khi viÖc biÕt K' t×m K'' lµ cùc kú khã kh¨n ®Õn møc hÇu nh− kh«ng thÓ thùc hiÖn ®−îc. Mét hÖ mËt m· khãa phi ®èi xøng cã tÝnh chÊt nãi trªn, trong ®ã khãa lËp mËt m· K' cña mçi ng−êi tham gia ®Òu ®−îc c«ng bè c«ng khai, ®−îc gäi lµ hÖ mËt m· khãa c«ng khai. Kh¸i niÖm mËt m· khãa c«ng khai míi ®−îc ra ®êi vµo gi÷a nh÷ng n¨m 1970, vµ ngay sau ®ã ®· trë thµnh mét kh¸i niÖm trung t©m cña khoa häc mËt m· hiÖn ®¹i. Ta sÏ dµnh phÇn lín néi dung gi¸o tr×nh nµy cho c¸c hÖ mËt m· ®ã vµ nh÷ng øng dông cña chóng vµo c¸c vÊn ®Ò an toµn th«ng tin. 1.4. C¸c bµi to¸n vÒ an toµn th«ng tin. Chóng ta ®ang sèng trong mét thêi ®¹i bïng næ th«ng tin. Nhu cÇu trao ®æi th«ng tin vµ c¸c ph−¬ng tiÖn truyÒn ®−a th«ng tin ph¸t triÓn mét c¸ch nhanh chãng. Vµ cïng víi sù ph¸t triÓn ®ã, ®ßi hái b¶o vÖ tÝnh bÝ mËt vµ an toµn cña th«ng tin còng cµng ngµy cµng to lín vµ cã tÝnh phæ biÕn. Cã nhiÒu bµi to¸n kh¸c nhau vÒ yªu cÇu an toµn th«ng tin tïy theo nh÷ng t×nh huèng kh¸c nhau, nh−ng tùu
  • 20.
    17 trung cã métsè bµi to¸n chung nhÊt mµ ta th−êng gÆp trong thùc tiÔn lµ nh÷ng bµi to¸n sau ®©y: - b¶o mËt : gi÷ th«ng tin ®−îc bÝ mËt ®èi víi tÊt c¶ mäi ng−êi, trõ mét Ýt ng−êi cã thÈm quyÒn ®−îc ®äc, biÕt th«ng tin ®ã; - toµn vÑn th«ng tin : b¶o ®¶m th«ng tin kh«ng bÞ thay ®æi hay xuyªn t¹c bëi nh÷ng kÎ kh«ng cã thÈm quyÒn hoÆc b»ng nh÷ng ph−¬ng tiÖn kh«ng ®−îc phÐp; - nhËn thùc mét thùc thÓ : x¸c nhËn danh tÝnh cña mét thùc thÓ, ch¼ng h¹n mét ng−êi, mét m¸y tÝnh cuèi trong m¹ng, mét thÎ tÝn dông,... ; - nhËn thùc mét th«ng b¸o : x¸c nhËn nguån gèc cña mét th«ng b¸o ®−îc göi ®Õn ; - ch÷ ký : mét c¸ch ®Ó g¾n kÕt mét th«ng tin víi mét thùc thÓ, th−êng dïng trong bµi to¸n nhËn thùc mét th«ng b¸o còng nh− trong nhiÒu bµi to¸n nhËn thùc kh¸c ; - ñy quyÒn : chuyÓn cho mét thùc thÓ kh¸c quyÒn ®−îc ®¹i diÖn hoÆc ®−îc lµm mét viÖc g× ®ã ; - cÊp chøng chØ : cÊp mét sù x¸c nhËn th«ng tin bëi mét thùc thÓ ®−îc tÝn nhiÖm ; - b¸o nhËn : x¸c nhËn mét th«ng b¸o ®· ®−îc nhËn hay mét dÞch vô ®· ®−îc thùc hiÖn ; - lµm chøng : kiÓm thö viÖc tån t¹i mét th«ng tin ë mét thùc thÓ kh¸c víi ng−êi chñ së h÷u th«ng tin ®ã ; - kh«ng chèi bá ®−îc : ng¨n ngõa viÖc chèi bá tr¸ch nhiÖm ®èi víi mét cam kÕt ®· cã (thÝ dô ®· ký vµo mét v¨n b¶n) ; - Èn danh : che giÊu danh tÝnh cña mét thùc thÓ tham gia trong mét tiÕn tr×nh nµo ®ã (th−êng dïng trong giao dÞch tiÒn ®iÖn tö) ; - thu håi : rót l¹i mét giÊy chøng chØ hay ñy quyÒn ®· cÊp; - v©n v©n........ C¬ së cña c¸c gi¶i ph¸p cho c¸c bµi to¸n kÓ trªn lµ c¸c ph−¬ng ph¸p mËt m·, ®Æc biÖt lµ mËt m· khãa c«ng khai, ta sÏ xem xÐt kü mét vµi bµi to¸n ®ã trong c¸c ch−¬ng tiÕp theo.
  • 21.
    18 1.5. Th¸m m·vµ tÝnh an toµn cña c¸c hÖ mËt m·. 1.5.1. VÊn ®Ò th¸m m·. MËt m· ®−îc sö dông tr−íc hÕt lµ ®Ó b¶o ®¶m tÝnh bÝ mËt cho c¸c th«ng tin ®−îc trao ®æi, vµ do ®ã bµi to¸n quan träng nhÊt cña th¸m m· còng lµ bµi to¸n ph¸ bá tÝnh bÝ mËt ®ã, tøc lµ tõ b¶n mËt m· cã thÓ thu ®−îc dÔ dµng (trªn c¸c kªnh truyÒn tin c«ng céng) ng−êi th¸m m· ph¶i ph¸t hiÖn ®−îc néi dung th«ng tin bÞ che giÊu trong b¶n mËt m· ®ã, mµ tèt nhÊt lµ t×m ra ®−îc b¶n râ gèc cña b¶n mËt m· ®ã. T×nh huèng th−êng gÆp lµ b¶n th©n s¬ ®å hÖ thèng mËt m·, kÓ c¶ c¸c phÐp lËp m· vµ gi¶i m· (tøc c¸c thuËt to¸n E vµ D ), kh«ng nhÊt thiÕt lµ bÝ mËt, do ®ã bµi to¸n qui vÒ viÖc t×m ch×a khãa mËt m· K, hay ch×a khãa gi¶i m· K'', nÕu hÖ mËt m· cã khãa phi ®èi xøng. Nh− vËy, ta cã thÓ qui −íc xem bµi to¸n th¸m m· c¬ b¶n lµ bµi to¸n t×m khãa mËt m· K (hay khãa gi¶i m· K''). §Ó gi¶i bµi to¸n ®ã, gi¶ thiÕt ng−êi th¸m m· biÕt th«ng tin vÒ s¬ ®å hÖ mËt m· ®−îc dïng, kÓ c¶ c¸c phÐp lËp m· vµ gi¶i m· tæng qu¸t E vµ D . Ngoµi ra, ng−êi th¸m m· cã thÓ biÕt thªm mét sè th«ng tin kh¸c, tïy theo nh÷ng th«ng tin ®−îc biÕt thªm nµy mµ ta cã thÓ ph©n lo¹i bµi to¸n th¸m m· thµnh c¸c bµi to¸n cô thÓ nh− sau: - bµi to¸n th¸m m· chØ biÕt b¶n m· : lµ bµi to¸n phæ biÕn nhÊt, khi ng−êi th¸m m· chØ biÕt mét b¶n mËt m· Y; - bµi to¸n th¸m m· khi biÕt c¶ b¶n râ : ng−êi th¸m m· biÕt mét b¶n mËt m· Y cïng víi b¶n râ t−¬ng øng X; - bµi to¸n th¸m m· khi cã b¶n râ ®−îc chän : ng−êi th¸m m· cã thÓ chän mét b¶n râ X, vµ biÕt b¶n mËt m· t−¬ng øng Y . §iÒu nµy cã thÓ xÈy ra khi ng−êi th¸m m· chiÕm ®−îc (t¹m thêi) m¸y lËp m·; - bµi to¸n th¸m m· khi cã b¶n m· ®−îc chän : ng−êi th¸m m· cã thÓ chän mét b¶n mËt m· Y, vµ biÕt b¶n râ t−¬ng øng X. §iÒu nµy cã thÓ xÈy ra khi ng−êi th¸m m· chiÕm ®−îc t¹m thêi m¸y gi¶i m·. 1.5.2. TÝnh an toµn cña mét hÖ mËt m·.
  • 22.
    19 TÝnh an toµncña mét hÖ thèng mËt m· phô thuéc vµo ®é khã kh¨n cña bµi to¸n th¸m m· khi sö dông hÖ mËt m· ®ã. Ng−êi ta ®· ®Ò xuÊt mét sè c¸ch hiÓu cho kh¸i niÖm an toµn cña hÖ thèng mËt m·, ®Ó trªn c¬ së c¸c c¸ch hiÓu ®ã nghiªn cøu tÝnh an toµn cña nhiÒu hÖ mËt m· kh¸c nhau, sau ®©y ta giíi thiÖu vµi c¸ch hiÓu th«ng dông nhÊt: - An toµn v« ®iÒu kiÖn : gi¶ thiÕt ng−êi th¸m m· cã ®−îc th«ng tin vÒ b¶n m·. Theo quan niÖm lý thuyÕt th«ng tin, nÕu nh÷ng hiÓu biÕt vÒ b¶n m· kh«ng thu hÑp ®−îc ®é bÊt ®Þnh vÒ b¶n râ ®èi víi ng−êi th¸m m·, th× hÖ mËt m· lµ an toµn v« ®iÒu kiÖn, hay theo thuËt ng÷ cña C. Shannon, hÖ lµ bÝ mËt hoµn toµn. Nh− vËy, hÖ lµ an toµn v« ®iÒu kiÖn, nÕu ®é bÊt ®Þnh vÒ b¶n râ sau khi ng−êi th¸m m· cã ®−îc c¸c th«ng tin (vÒ b¶n m·) b»ng ®é bÊt ®Þnh vÒ b¶n râ tr−íc ®ã. TÝnh an toµn v« ®iÒu kiÖn ®· ®−îc nghiªn cøu cho mét sè hÖ mËt m· khãa ®èi xøng mµ ta sÏ tr×nh bµy trong ch−¬ng 3. - An toµn ®−îc chøng minh : mét hÖ thèng mËt m· ®−îc xem lµ cã ®é an toµn ®−îc chøng minh nÕu ta cã thÓ chøng minh ®−îc lµ bµi to¸n th¸m m· ®èi víi hÖ thèng ®ã khã t−¬ng ®−¬ng víi mét bµi to¸n khã ®· biÕt, thÝ dô bµi to¸n ph©n tÝch mét sè nguyªn thµnh tÝch c¸c thõa sè nguyªn tè, bµi to¸n t×m l«garit rêi r¹c theo mét m«®uyn nguyªn tè, v.v... (khã t−¬ng ®−¬ng cã nghÜa lµ nÕu bµi to¸n nµy gi¶i ®−îc th× bµi to¸n kia còng gi¶i ®−îc víi cïng mét ®é phøc t¹p nh− nhau). - An toµn tÝnh to¸n : hÖ mËt m· ®−îc xem lµ an toµn (vÒ mÆt) tÝnh to¸n, nÕu mäi ph−¬ng ph¸p th¸m m· ®· biÕt ®Òu ®ßi hái mét nguån n¨ng lùc tÝnh to¸n v−ît mäi kh¶ n¨ng (kÓ c¶ ph−¬ng tiÖn thiÕt bÞ) tÝnh to¸n cña mét kÎ thï gi¶ ®Þnh. An toµn theo nghÜa nµy, nãi theo ng«n ng÷ cña lý thuyÕt vÒ ®é phøc t¹p tÝnh to¸n, lµ bao hµm c¶ kh¸i niÖm an toµn theo nghia "®−îc chøng minh" nãi trªn. TÝnh an toµn theo nghÜa ®−îc chøng minh hay tÝnh to¸n ®−îc sö dông nhiÒu trong viÖc nghiªn cøu c¸c hÖ thèng mËt m· hiÖn ®¹i, ®Æc biÖt lµ c¸c hÖ thèng mËt m· khãa c«ng khai, ta sÏ tr×nh bµy riªng cho tõng hÖ mËt m· ®−îc tr×nh bµy trong c¸c ch−¬ng vÒ sau. ë môc
  • 23.
    20 1,4 ta ®·giíi thiÖu mét sè bµi to¸n vÒ an toµn th«ng tin nãi chung. C¸c bµi to¸n ®ã ®Òu cã h¹t nh©n lµ tÝnh an toµn cña mét hÖ mËt m· nµo ®ã, cho nªn viÖc nghiªn cøu tÝnh an toµn cña c¸c hÖ mËt m· còng gãp phÇn gi¶i quyÕt c¸c vÊn ®Ò an toµn th«ng tin kÓ trªn. CH¦¥NG II C¬ së to¸n häc cña lý thuyÕt mËt m· 2.1. Sè häc c¸c sè nguyªn. ThuËt to¸n Euclide. Ta ký hiÖu Z lµ tËp hîp c¸c sè nguyªn, Z = {.....,-2,-1,0,1,2,....}, vµ Z+ lµ tËp hîp c¸c sè nguyªn kh«ng ©m, Z+ = {0,1,2,.....}. Trong môc nµy ta sÏ nh¾c l¹i mét sè kiÕn thøc vÒ sè häc cña c¸c sè nguyªn cÇn cho viÖc tr×nh bµy lý thuyÕt mËt m·. V× ®Ó tËp gi¸o tr×nh kh«ng qu¸ dµi dßng, c¸c kiÕn thøc sÏ ®−îc nh¾c ®Õn chñ yÕu lµ c¸c kh¸i niÖm, c¸c mÖnh ®Ò sÏ ®−îc sö dông, v.v..., cßn c¸c phÇn chøng minh sÏ ®−îc l−îc bá, b¹n ®äc nµo muèn t×m hiÓu kü h¬n cã thÓ tham kh¶o c¸c s¸ch chuyªn vÒ Sè häc. 2.1.1. TÝnh chia hÕt cña c¸c sè nguyªn. TËp hîp Z lµ ®ãng kÝn ®èi víi c¸c phÐp céng, trõ vµ nh©n, nh−ng kh«ng ®ãng kÝn ®èi víi phÐp chia: chia mét sè nguyªn cho mét sè nguyªn kh«ng ph¶i bao giê còng ®−îc kÕt qu¶ lµ mét sè nguyªn! V× vËy, tr−êng hîp chia hÕt, tøc khi chia sè nguyªn a cho sè nguyªn b ®−îc th−¬ng lµ mét sè nguyªn q , a = b.q, cã mét ý nghÜa ®Æc biÖt. Khi ®ã, ta nãi a chia hÕt cho b, b chia hÕt a, a lµ béi sè cña b, b lµ −íc sè cña a, vµ ký hiÖu lµ b⏐a. DÔ thÊy ngay r»ng sè 1 lµ −íc
  • 24.
    sè cña mäisè nguyªn bÊt kú, sè 0 lµ béi sè cña mäi sè nguyªn bÊt kú, mäi sè nguyªn a lµ −íc sè, ®ång thêi lµ béi sè, cña chÝnh nã. Cho hai sè nguyªn bÊt kú a vµ b , b > 1. Thùc hiÖn phÐp chia a cho b ta sÏ ®−îc hai sè q vµ r sao cho a = b.q + r , 0 < r < b . Sè q ®−îc gäi lµ sè th−¬ng cña phÐp chia a cho b, ký hiÖu a divb, vµ sè r ®−îc gäi lµ sè d− cña phÐp chia a cho b, ký hiÖu a modb. ThÝ dô: 25 div 7 = 3 vµ 25 mod 7 = 4, -25 div 7 = -4 vµ -25 mod 7 = 3. Mét sè nguyªn d ®−îc gäi lµ −íc sè chung cña hai sè nguyªn a vµ b nÕu d ⏐a vµ d ⏐b. Sè nguyªn d ®−îc gäi lµ −íc sè chung lín nhÊt cña a vµ b nÕu d > 0, d lµ −íc sè chung cña a vµ b, vµ mäi −íc sè chung cña a vµ b ®Òu lµ −íc sè cña d . Ta ký hiÖu −íc sè chung lín nhÊt cña a vµ b lµ gcd(a,b). ThÝ dô gcd(12,18) = 6, gcd(-18, 27) = 3. DÔ thÊy r»ng víi mäi sè nguyªn d−¬ng a ta cã gcd(a,0) = a , ta còng sÏ qui −íc xem r»ng gcd(0, 0) = 0. Mét sè nguyªn a > 1 ®−îc gäi lµ sè nguyªn tè, nÕu a kh«ng cã −íc sè nµo ngoµi 1 vµ chÝnh a ; vµ ®−îc gäi lµ hîp sè , nÕu kh«ng ph¶i lµ nguyªn tè. ThÝ dô c¸c sè 2 ,3 , 5, 7 lµ sè nguyªn tè; c¸c sè 4, 6, 8, 10, 12, 14, 15 lµ hîp sè. Hai sè a vµ b ®−îc gäi lµ nguyªn tè víi nhau, nÕu chóng kh«ng cã −íc sè chung nµo kh¸c 1, tøc lµ nÕu gcd(a,b) = 1. Mét sè nguyªn n > 1 bÊt kú ®Òu cã thÓ viÕt d−íi d¹ng: 1 2 1 2 . ... k k n p p pα α α = trong ®ã p1 , p2 ,..., pk lµ c¸c sè nguyªn tè kh¸c nhau, α1 , α2 ,..., αk lµ c¸c sè mò nguyªn d−¬ng. NÕu kh«ng kÓ thø tù c¸c thõa sè nguyªn tè, th× d¹ng biÓu diÔn ®ã lµ duy nhÊt, ta gäi ®ã lµ d¹ng khai triÓn chÝnh t¾c cña n . ThÝ dô d¹ng khai triÓn chÝnh t¾c cña 1800 lµ 23 32 52 . C¸c sè nguyªn tè vµ c¸c vÊn ®Ò vÒ sè nguyªn tè cã mét vai trß quan träng trong sè häc vµ trong øng dông vµo lý thuyÕt mËt m·, ta sÏ xÐt riªng trong mét môc sau. §Þnh lý 2.1.1. NÕu b > 0 vµ b ⏐a th× gcd(a ,b) = b. 21
  • 25.
    NÕu a =bq + r th× gcd(a,b) = gcd(b,r). Mét sè nguyªn m ®−îc gäi lµ béi sè chung cña a vµ b nÕu a ⏐m vµ b⏐m. Sè m ®−îc gäi lµ béi sè chung bÐ nhÊt cña a vµ b , vµ ®−îc ký hiÖu lµ lcm(a ,b), nÕu m > 0, m lµ béi sè chung cña a vµ b , vµ mäi béi sè chung cña a vµ b ®Òu lµ béi cña m . ThÝ dô lcm(14,21) = 42. Víi hai sè nguyªn d−¬ng a vµ b bÊt kú ta cã quan hÖ lcm(a,b).gcd(a,b) = a.b. Tõ ®Þnh lý 2.1.1 ta suy ra thuËt to¸n sau ®©y thùc hiÖn viÖc t×m −íc sè chung lín nhÊt cña hai sè nguyªn bÊt kú: ThuËt to¸n Euclide t×m −íc sè chung lín nhÊt : INPUT: hai sè nguyªn kh«ng ©m a vµ b , víi a ≥b . OUTPUT: −íc sè chung lín nhÊt cña a vµ b. 1. Trong khi cßn b > 0, thùc hiÖn: 1.1. ®Æt r ←a modb , a ←b , b ← r. 2. Cho ra kÕt qu¶ (a). ThÝ dô: Dïng thuËt to¸n Euclide t×m gcd( 4864, 3458), ta lÇn l−ît ®−îc c¸c gi¸ trÞ g¸n cho c¸c biÕn a, b vµ r nh− sau: 22 4864 = 1. 3458 + 1406 3458 = 2. 1406 + 646 1406 = 2. 646 + 114 646 = 5. 114 + 76 114 = 1. 76 + 38 76 = 2. 38 + 0 a b r 4864 3458 1406 646 114 76 38 3458 1406 646 114 76 38 0 1406 646 114 76 38 0
  • 26.
    23 Vµ thuËt to¸ncho ta kÕt qu¶: gcd(4864, 3458) = 38. Ta biÕt r»ng nÕu gcd(a,b) = d, th× ph−¬ng tr×nh bÊt ®Þnh a.x + b.y = d cã nghiÖm nguyªn (x,y), vµ mét nghiÖm nguyªn (x,y) nh− vËy cã thÓ t×m ®−îc bëi thuËt to¸n Euclide më réng nh− sau: ThuËt to¸n Euclide më réng : INPUT: hai sè nguyªn kh«ng ©m a vµ b víi a ≥b. OUTPUT: d = gcd(a,b) vµ hai sè x,y sao cho a.x + b.y = d. 1. NÕu b = 0 th× ®Æt d← a , x ←1, y ← 0, vµ cho ra (d,x,y). 2. §Æt x2 = 1, x1 = 0 , y2 = 0 , y1 = 1. 3. Trong khi cßn b >0, thùc hiÖn: 3.1. q←a divb, r ← a modb , x ← x2 − qx1 , y ← y2 − qy1. 3.2. a ←b, b ←r , x2 ← x1 , x1← x , y2← y1 vµ y1←y. 4. §Æt d ← a, x ←x2 , y ← y2 , vµ cho ra kÕt qu¶ (d,x,y). ThÝ dô: Dïng thuËt to¸n Euclide më réng cho c¸c sè a = 4864 vµ b = 3458, ta lÇn l−ît ®−îc c¸c gi¸ trÞ sau ®©y cho c¸c biÕn a, b, q, r, x, y, x1 , x2 , y1 , y2 (sau mçi chu tr×nh thùc hiÖn hai lÖnh 3.1 vµ 3.2) : a b q r x y x1 x2 y1 y2 4864 3458 0 1 1 0 3458 1406 1 1406 1 -1 1 0 -1 1 1406 646 2 646 -2 3 -2 1 3 -1 646 114 2 114 5 -7 5 -2 -7 3 114 76 5 76 -27 38 -27 5 38 -7
  • 27.
    24 76 38 138 32 -45 32 -27 -45 38 38 0 2 0 -91 128 -91 32 128 -45 Ta dÔ thö l¹i r»ng sau mçi lÇn thùc hiÖn chu tr×nh gåm hai lÖnh 3.1 vµ 3.2, c¸c gi¸ trÞ x,y,r thu ®−îc lu«n tho¶ m·n 4864.x + 3458.y = r , vµ do ®ã khi kÕt thóc c¸c vßng lÆp (øng víi gi¸ trÞ b = 0), thùc hiÖn tiÕp lÖnh 4 ta ®−îc kÕt qu¶ d = 38, x = 32 vµ y = -45, cÆp sè (32,-45) tho¶ m·n: 4864.32 + 3458. (-45) = 38. 2.1.2. §ång d− vµ ph−¬ng tr×nh ®ång d− tuyÕn tÝnh. Cho n lµ mét sè nguyªn d−¬ng. Ta nãi hai sè nguyªn a vµ b lµ ®ång d− víi nhau theo m«®uyn n , vµ viÕt a ≡ b (modn ), nÕu n ⏐ a−b (tøc còng lµ nÕu a − b chia hÕt cho n , hay khi chia a vµ b cho n ta ®−îc cïng mét sè d− nh− nhau). ThÝ dô: 23 ≡ 8 (mod 5 ), v× 23 − 8 = 5.3, -19 ≡ 9 (mod 7) v× -19 − 9 = -4 . 7. Quan hÖ ®ång d− (theo mét m«®uyn n ) trªn tËp hîp c¸c sè nguyªn cã c¸c tÝnh chÊt ph¶n x¹, ®èi xøng vµ b¾c cÇu,tøc lµ mét quan hÖ t−¬ng ®−¬ng, do ®ã nã t¹o ra mét ph©n ho¹ch trªn tËp hîp tÊt c¶ c¸c sè nguyªn Z thµnh ra c¸c líp t−¬ng ®−¬ng: hai sè nguyªn thuéc cïng mét líp t−¬ng ®−¬ng khi vµ chØ khi chóng cho cïng mét sè d− nÕu chia cho n. Mçi líp t−¬ng ®−¬ng nh− vËy ®−îc ®¹i diÖn bëi mét sè duy nhÊt trong tËp hîp Zn = {0, 1, 2, 3,...., n -1}, lµ sè d− chung khi chia c¸c sè trong líp ®ã cho n. V× vËy, ta cã thÓ ®ång nhÊt Zn víi tËp hîp tÊt c¶ c¸c líp t−¬ng ®−¬ng c¸c sè nguyªn theo modn ; trªn tËp ®ã ta cã thÓ x¸c ®Þnh c¸c phÐp tÝnh céng, trõ vµ nh©n theo modn. ThÝ dô: Z25 = {0, 1, 2, ..., 24}. Trong Z25 , 15 + 14 = 4, v× 15 + 14 = 29 = 4 (mod 25). T−¬ng tù, 15.14 = 10 trong Z25 .
  • 28.
    25 Cho a ∈Zn. Mét sè nguyªn x ∈ Zn ®−îc gäi lµ nghÞch ®¶o cña a theo mod n , nÕu a.x ≡ 1 (modn). NÕu cã sè x nh− vËy th× ta nãi a lµ kh¶ nghÞch, vµ ký hiÖu x lµ a-1 modn. ThÝ dô 22-1 mod25 = 8, v× 22 .8 = 176 ≡ 1 (mod25). Tõ ®Þnh nghÜa ta cã thÓ suy ra r»ng a lµ kh¶ nghÞch theo modn khi vµ chØ khi gcd(a,n ) = 1, tøc lµ khi a vµ n nguyªn tè víi nhau. Ta ®Þnh nghÜa phÐp chia trong Zn nh− sau: a : b (mod n) = a.b- 1 modn. PhÐp chia chØ thùc hiÖn ®−îc khi b lµ kh¶ nghÞch theo modn. ThÝ dô 15 : 22 (mod25) = 15.22-1 mod 25 = 20. B©y giê ta xÐt c¸c ph−¬ng tr×nh ®ång d− tuyÕn tÝnh. Ph−¬ng tr×nh ®ång d− tuyÕn tÝnh cã d¹ng a.x ≡ b (modn ), (1) trong ®ã a, b, n lµ c¸c sè nguyªn, n > 0, x lµ Èn sè. Ph−¬ng tr×nh ®ã cã nghiÖm khi vµ chØ khi d = gcd(a,n )⏐b, vµ khi ®ã nã cã ®óng d nghiÖm theo modn. Thùc vËy, ®Æt a‘ = a/d , b = b/d , n = n/d , ta thÊy ph−¬ng tr×nh ®ång d− (1) t−¬ng ®−¬ng víi ph−¬ng tr×nh a .x ≡ b (modn ), V× gcd(a ,n ) = 1, nªn ph−¬ng tr×nh nµy cã mét nghiÖm theo modn : x = x0 ≡ b .a -1 (modn ), vµ do ®ã ph−¬ng tr×nh (1) cã d nghiÖm theo modn lµ : x = x0 , x0 + n , .... , x0 + (d − 1)n (modn). TÊt c¶ d nghiÖm ®ã kh¸c nhau theo modn , nh−ng cïng ®ång d− víi nhau theo modn .
  • 29.
    B©y giê taxÐt hÖ thèng c¸c ph−¬ng tr×nh ®ång d− tuyÕn tÝnh. Mét hÖ nh− vËy cã thÓ ®−a vÒ d¹ng 1 1 1 2 2 2 (mod ) (mod ) ........................ (mod ) k k k x a n x a n x a n ⎧ ≡ ⎪ ⎪ ⎪ ⎪ ≡ ⎪ ⎪ ⎨ ⎪ ⎪ ⎪ ⎪ ≡ ⎪ ⎪ ⎩ (2) Ta ký hiÖu: n = n1.n2....nk , Ni = n/ni . Ta cã ®Þnh lý sau ®©y: §Þnh lý 2.2.1 (®Þnh lý sè d− Trung quèc). Gi¶ sö c¸c sè nguyªn n1, n2,....,nk lµ tõng cÆp nguyªn tè víi nhau. Khi ®ã, hÖ ph−¬ng tr×nh ®ång d− tuyÕn tÝnh (2) cã mét nghiÖm duy nhÊt theo modn. NghiÖm duy nhÊt nãi trong ®Þnh lý 2.2.1 ®−îc cho bëi biÓu thøc: x = 1 . . mod , k i i i i a N M n = ∑ trong ®ã Mi = Ni -1 modni (cã Mi v× Ni vµ ni nguyªn tè víi nhau). ThÝ dô: CÆp ph−¬ng tr×nh x ≡ 3 (mod7) vµ x ≡ 7 (mod13) cã mét nghiÖm duy nhÊt x ≡ 59 (mod91). NÕu (n1 , n2) = 1, th× cÆp ph−¬ng tr×nh x ≡ a (modn1) vµ x ≡ a (modn2) cã nghiÖm duy nhÊt x ≡ a (modn) theo modn víi n = n1n2 . 2.1.3.ThÆng d− thu gän vµ phÇn tö nguyªn thuû. TËp Zn = { 0,1,2,..., n −1} th−êng ®−îc gäi lµ tËp c¸c thÆng d− ®Çy ®ñ theo modn, v× mäi sè nguyªn bÊt kú ®Òu cã thÓ t×m ®−îc trong Zn mét sè ®ång d− víi m×nh (theo modn ). TËp Zn lµ ®ãng ®èi víi c¸c phÐp tÝnh céng, trõ vµ nh©n theo modn , nh−ng kh«ng ®ãng ®èi víi phÐp chia, v× phÐp chia cho a theo modn chØ cã thÓ thùc hiÖn ®−îc khi a vµ n nguyªn tè víi nhau, tøc khi gcd( a ,n ) =1. 26
  • 30.
    B©y giê taxÐt tËp Zn * = { a ∈ Zn : gcd( a ,n ) = 1} , tøc Zn * lµ tËp con cña Zn bao gåm tÊt c¶ c¸c phÇn tö nguyªn tè víi n. Ta gäi tËp ®ã lµ tËp c¸c thÆng d− thu gän theo modn. Mäi sè nguyªn nguyªn tè víi n ®Òu cã thÓ t×m thÊy trong Zn * mét ®¹i diÖn ®ång d− víi m×nh theo modn . Chó ý r»ng nÕu p lµ mét sè nguyªn tè th× Zp * = {1,2,...,p- 1}. TËp Zn * lËp thµnh mét nhãm con ®èi víi phÐp nh©n cña Zn , v× trong Zn * phÐp chia theo modn bao giê còng thùc hiÖn ®−îc, ta sÏ gäi Zn * lµ nhãm nh©n cña Zn . Theo ®¹i sè häc, ta gäi sè c¸c phÇn tö trong mét nhãm lµ cÊp cña nhãm ®ã. Ta ký hiÖu φ(n) lµ sè c¸c sè nguyªn d−¬ng bÐ h¬n n vµ nguyªn tè víi n. Nh− vËy, nhãm Zn * cã cÊp φ(n) , vµ nÕu p lµ sè nguyªn tè th× nhãm Zp * cã cÊp p -1. Ta nãi mét phÇn tö g ∈Zn * cã cÊp m , nÕu m lµ sè nguyªn d−¬ng bÐ nhÊt sao cho gm =1 trong Zn * . Theo mét ®Þnh lý trong §¹i sè, ta cã m ⏐ φ(n) . V× vËy, víi mäi b ∈Zn * ta lu«n cã b φ(n ) ≡ 1 modn . NÕu p lµ sè nguyªn tè, th× do φ(p) = p − 1, ta cã víi mäi b ∈Zp * : 27 p (3) 1 1 (mod ) p b − ≡ NÕu b cã cÊp p - 1, tøc p - 1 lµ sè mò bÐ nhÊt tho¶ m·n c«ng thøc (3), th× c¸c phÇn tö b, b2 ,...., b P-1 ®Òu kh¸c nhau vµ theo modp, chóng lËp thµnh Zp * . Theo thuËt ng÷ ®¹i sè, khi ®ã ta nãi Zp * lµ mét nhãm cyclic vµ b lµ mét phÇn tö sinh, hay phÇn tö nguyªn thuû cña nhãm ®ã. Trong lý thuyÕt sè, ng−êi ta ®· chøng minh ®−îc c¸c tÝnh chÊt sau ®©y cña c¸c phÇn tö nguyªn thuû: 1. Víi mäi sè nguyªn tè p, Zp * lµ nhãm cyclic, vµ cã φ(p-1) phÇn tö nguyªn thuû. 2. NÕu 1 2 1 2 1 . .... s s p p p pα α α − = lµ khai triÓn chÝnh t¾c cña p -1, vµ nÕu
  • 31.
    1 1 1 1(mod ),....., 1(mod), s p p p p a p a p − − ≡ ≡ th× a lµ phÇn tö nguyªn thuû theo modp (tøc cña Zp * ). 3. NÕu g lµ phÇn tö nguyªn thuû theo modp , th× β = g modp víi mäi i mµ gcd(i, p -1) = 1, còng lµ phÇn tö nguyªn thuû theo modp . i n Ba tÝnh chÊt ®ã lµ c¬ së gióp ta t×m c¸c phÇn tö nguyªn thuû theo modp , víi p lµ sè nguyªn tè bÊt kú. Ngoµi ra, ta còng chó ý mét sè tÝnh chÊt sau ®©y, cã thÓ ®−îc sö dông nhiÒu trong c¸c ch−¬ng sau: a) NÕu p lµ sè nguyªn tè vµ gcd(a,p) =1, th× ap -1 ≡ 1 (modp) (®Þnh lý Fermat ). b) NÕu a∈Zn * , th× . NÕu th× (®Þnh lý Euler). ( ) 1(mod ) n aφ ≡ (mod ( )) r s n φ ≡ (mod ) r s a a n ≡ 2.1.4. Ph−¬ng tr×nh ®ång d− bËc hai vµ thÆng d− bËc hai. Ta xÐt ph−¬ng tr×nh ®ång d− bËc hai cã d¹ng ®¬n gi¶n sau ®©y: 2 (mod ) x a n ≡ , trong ®ã n lµ mét sè nguyªn d−¬ng, a lµ sè nguyªn víi gcd(a,n) =1, vµ x lµ Èn sè. Ph−¬ng tr×nh ®ã kh«ng ph¶i bao giê còng cã nghiÖm, khi nã cã nghiÖm th× ta nãi a lµ mét thÆng d− bËc hai modn ; nÕu kh«ng th× nãi a lµ mét bÊt thÆng d− bËc hai modn. TËp c¸c sè nguyªn nguyªn tè víi n ®−îc ph©n ho¹ch thµnh hai tËp con: tËp Qn c¸c thÆng d− bËc hai modn , vµ tËp n Q c¸c bÊt thÆng d− modn. Khi n = p lµ sè nguyªn tè, ta cã tiªu chuÈn Euler sau ®©y: Sè a lµ thÆng d− bËc hai modp nÕu vµ chØ nÕu . Tiªu chuÈn ®ã ®−îc chøng minh nh− sau: ( 1)/2 1(mod ) p a p − ≡ Gi¶ sö cã x sao cho 2 (mod ) x a ≡ p p , khi ®ã ta còng sÏ cã . ( 1)/2 2 ( 1)/2 1 ( ) 1(mod ) p p p a x x − − − ≡ ≡ ≡ 28
  • 32.
    Ng−îc l¹i, gi¶sö . Khi ®ã . LÊy b lµ mét phÇn tö nguyªn thuû modp , ¾t cã mét sè i nµo ®ã sao cho .Tõ ®ã, ( 1)/2 1(mod ) p a p − ≡ * p a Z ∈ mod i a b p = 29 p ( 1)/2 ( 1)/ 2 1(mod ). p i p a b − − ≡ ≡ PhÇn tö b cã cÊp p - 1, do ®ã (p - 1) chia hÕt i(p - 1)/2, i ph¶i lµ sè ch½n, i = 2j , vµ a cã c¨n bËc hai lµ ±b j modp. Cho p lµ mét sè nguyªn tè lÎ. Víi mäi a ≥ 0 ta ®Þnh nghÜa ký hiÖu Legendre a p ⎛ ⎞ ⎟ ⎜ ⎟ ⎜ ⎟ ⎜ ⎟ ⎜ ⎝ ⎠ nh− sau: 0 , 0(mod ); 1 , ; 1, . p p khi a p a khi a Q p khi a Q ⎧ ⎪ ≡ ⎪ ⎛ ⎞ ⎪ ⎪ ⎟ ⎜ ⎜ ⎜ ⎜ ⎟= ∈ ⎨ ⎟ ⎟ ⎪ ⎝ ⎠ ⎪ ⎪− ∉ ⎪ ⎩ i i Ø Tõ ®Þnh nghÜa ta suy ra ngay a lµ thÆng d− bËc ha modp kh vµ ch khi a p ⎛ ⎞ ⎟ ⎜ ⎟ ⎜ ⎟ ⎜ ⎟ ⎜ ⎝ ⎠ = 1. Vµ theo tiªu chuÈn Euler nãi trªn, víi mäi a ≥ 0, ta cã: ( 1)/2 (mod ). p a a p p − ⎛ ⎞ ⎟ ⎜ ⎜ ⎜ ⎜ ⎟≡ ⎟ ⎟ ⎝ ⎠ B©y giê ta më réng ký hiÖu Legendre ®Ó ®−îc ký hiÖu Jacobi ®èi víi mäi sè nguyªn lÎ n ≥1 vµ mäi sè nguyªn a ≥ 0, còng ®−îc ký hiÖu bëi a n ⎛ ⎞ ⎟ ⎜ ⎟ ⎜ ⎟ ⎜ ⎝ ⎠ vµ ®−îc ®Þnh nghÜa nh− sau: Gi¶ sö a cã khai triÓn chÝnh t¾c thµnh thõa sè nguyªn tè lµ th× 1 2 1 2 . .... k k n p p pα α α = 1 2 1 2 . .... . k k a a a a n p p p α α α ⎛ ⎞ ⎛ ⎞ ⎛ ⎞ ⎛ ⎞ ⎟ ⎟ ⎟ ⎜ ⎜ ⎜ ⎟ ⎜ ⎟ ⎟ ⎟ = ⎜ ⎜ ⎜ ⎟ ⎜ ⎟ ⎟ ⎟ ⎟ ⎜ ⎜ ⎜ ⎜ ⎟ ⎟ ⎟ ⎜ ⎜ ⎜ ⎝ ⎠ ⎝ ⎠ ⎝ ⎠ ⎝ ⎠
  • 33.
    Khi n =p lµ sè nguyªn tè th× gi¸ trÞ cña c¸c ký hiÖu Legendre vµ Jacobi lµ nh− nhau. ViÖc tÝnh ký hiÖu Legendre cã thÓ phøc t¹p khi p rÊt lín, trong khi viÖc tÝnh ký hiÖu Jacobi cã thÓ thuËn lîi h¬n do cã thÓ sö dông c¸c tÝnh chÊt 1-4 sau ®©y: 1. NÕu , th× 1 2 (mod ) m m n ≡ 1 2 m m n n ⎛ ⎞ ⎛ ⎞ ⎟ ⎟ ⎜ ⎜ = ⎟ ⎟ ⎜ ⎜ ⎟ ⎟ ⎜ ⎜ ⎝ ⎠ ⎝ ⎠ . 2. 1, 1(mod8), 2 1, 3(mod8). khi n khi n n ⎧ ≡ ± ⎛ ⎞ ⎪ ⎪ ⎟ ⎜ = ⎟ ⎨ ⎜ ⎟ ⎜ ⎪ ⎝ ⎠ − ≡± ⎪ ⎩ 3. 1 2 1 2 . . . m m m m n n n ⎛ ⎞ ⎛ ⎞ ⎛ ⎟ ⎟ ⎜ ⎜ ⎜ = ⎟ ⎟ ⎜ ⎜ ⎜ ⎟ ⎟ ⎜ ⎜ ⎜ ⎝ ⎠ ⎝ ⎠ ⎝ ⎞ ⎟ ⎟ ⎟ ⎠ 4. NÕu m vµ n ®Òu lµ sè lÎ, th× , 3(mod 4) & 3(mod 4), , 1(mod 4) 1(mod 4). n khi m n m m n n khi m n m ⎧ ⎛ ⎞ ⎪ ⎟ ⎪ ⎜ − ≡ ≡ ⎟ ⎪ ⎜ ⎟ ⎜ ⎪ ⎝ ⎠ ⎛ ⎞ ⎪ ⎟ ⎜ = ⎟ ⎨ ⎜ ⎟ ⎜ ⎪ ⎝ ⎠ ⎛ ⎞ ⎪ ⎟ ⎜ ≡ ∨ ≡ ⎪ ⎟ ⎜ ⎟ ⎪ ⎜ ⎝ ⎠ ⎪ ⎩ ThÝ dô: Dïng c¸c tÝnh chÊt ®ã, ta tÝnh ®−îc: 4 3 7411 9283 1872 2 117 . 9283 7411 7411 7411 7411 117 7411 40 2 5 . 7411 117 117 117 117 5 117 117 5 ⎛ ⎞ ⎛ ⎞ ⎛ ⎞ ⎛ ⎞ ⎛ ⎞ ⎟ ⎟ ⎟ ⎟ ⎟ ⎜ ⎜ ⎜ ⎜ ⎜ = = = = ⎟ ⎟ ⎟ ⎟ ⎟ ⎜ ⎜ ⎜ ⎜ ⎜ ⎟ ⎟ ⎟ ⎟ ⎟ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ ⎠ ⎝ ⎠ ⎝ ⎠ ⎝ ⎠ ⎝ ⎠ ⎛ ⎞ ⎛ ⎞ ⎛ ⎞ ⎛ ⎞ ⎛ ⎞ ⎟ ⎟ ⎟ ⎟ ⎜ ⎜ ⎜ ⎜ ⎜ =− =− =− = ⎟ ⎟ ⎟ ⎟ ⎜ ⎜ ⎜ ⎜ ⎜ ⎟ ⎟ ⎟ ⎟ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ ⎠ ⎝ ⎠ ⎝ ⎠ ⎝ ⎠ ⎝ ⎠ ⎛ ⎞ ⎛ ⎟ ⎜ ⎜ = ⎟ ⎜ ⎟ ⎜ ⎝ ⎠ ⎝ ⎟ ⎟ ⎟ 2 1. 5 ⎞ ⎛ ⎞ ⎟ ⎟ ⎜ = =− ⎟ ⎟ ⎜ ⎜ ⎟ ⎟ ⎜ ⎜ ⎠ ⎝ ⎠ 9283 lµ mét sè nguyªn tè. Do ®ã, gi¸ trÞ -1 cña ký hiÖu Jacobi 7411 9283 ⎛ ⎟ ⎜ ⎟ ⎜ ⎟ ⎜ ⎝ ⎠ ⎞ còng lµ gi¸ trÞ cña cïng ký hiÖu Legendre ®ã, vµ ta kÕt luËn ®−îc r»ng 7411 lµ bÊt thÆng d− bËc hai mod 9283 , hay ph−¬ng tr×nh 2 7411(mod9283) x ≡ 30
  • 34.
    lµ v« nghiÖm. B©ygiê ta xÐt viÖc gi¶i ph−¬ng tr×nh ®ång d− bËc hai 2 (mod ) x a ≡ n p (4) trong mét tr−êng hîp ®Æc biÖt khi n = p lµ sè nguyªn tè cã d¹ng p = 4m +3, tøc p ®ång d− víi 3 theo mod4, vµ a lµ mét sè nguyªn nguyªn tè víi p. Theo tiªu chuÈn Euler ta biÕt ph−¬ng tr×nh (4) cã nghiÖm khi vµ chØ khi . Khi ®ã ta cã: ( 1)/2 1(mod ) p a − ≡ 1 1 2 2( 1) (mod ), (mod ), p m a a a a − + + ≡ ≡ p p do ®ã x ≡ ±am +1 (modp) lµ hai nghiÖm cña ph−¬ng tr×nh (4). 2.2. X¸c suÊt vµ thuËt to¸n x¸c suÊt. 2.2.1. Kh¸i niÖm x¸c suÊt. Ta xÐt mét tËp hîp Ω , ®−îc gäi lµ kh«ng gian c¸c sù kiÖn s¬ cÊp (hay kh«ng gian mÉu). C¸c phÇn tö cña Ω, tøc c¸c sù kiÖn s¬ cÊp hay c¸c mÉu, cã thÓ ®−îc xem nh− c¸c kÕt qu¶ cã thÓ cã (vµ lo¹i trõ lÉn nhau) cña mét thùc nghiÖm nµo ®ã. VÒ sau ta chØ xÐt c¸c kh«ng gian rêi r¹c, tøc tËp Ω lµ h÷u h¹n, gi¶ sö . { } 1 2 , ,..., n s s s Ω= Mét ph©n bè x¸c suÊt P trªn Ω ®−îc ®Þnh nghÜa lµ mét tËp c¸c sè thùc kh«ng ©m P = { p1, p2,...,pn} cã tæng ∑pi = 1. Sè pi ®−îc coi lµ x¸c suÊt cña sù kiÖn s¬ cÊp si . Mét tËp con E ⊆ Ω ®−îc gäi lµ mét sù kiÖn . X¸c suÊt cña sù kiÖn E ®−îc ®Þnh nghÜa bëi p (E ) = ( ) s E p s ∈ ∑ . Gi¶ sö E lµ mét sù kiÖn trong kh«ng gian x¸c suÊt Ω. Ta ®Þnh nghÜa sù kiÖn bï cña E, ký hiÖu E , lµ sù kiÖn gåm tÊt c¶ c¸c sù kiÖn s¬ cÊp 31
  • 35.
    trong Ω mµkh«ng thuéc E . Dïng c¸c thuËt ng÷ cña lý thuyÕt tËp hîp, ta cã thÓ ®Þnh nghÜa c¸csù kiÖn hîp E 1 ∪E 2 vµ sù kiÖn giao E 1 ∩E 2 cña hai sù kiÖn E 1 vµ E 2 bÊt kú. Vµ ta cã: 1) Gi¶ sö E lµ mét sù kiÖn. Khi ®ã 0 ≤ p (E ) ≤ 1 vµ p( E ) = 1 - p (E ). Ngoµi ra, p (Ω) = 1 vµ p (∅) = 0. 2) Gi¶ sö E 1 vµ E 2 lµ hai sù kiÖn. NÕu E 1 ⊆E 2 th× p (E 1) ≤ p (E 2) . Vµ cã p (E 1∪E 2) + p (E 1 ∩E 2) =p (E 1) + p (E 2) . Do ®ã p (E 1∪E 2) =p (E 1) + p (E 2) khi vµ chØ khi E 1 ∩E 2 = ∅, tøc lµ khi E 1 vµ E 2 lµ hai sù kiÖn lo¹i trõ lÉn nhau. Cho E 1 vµ E 2 lµ hai sù kiÖn, víi p (E 2) > 0. Ta ®Þnh nghÜa x¸c suÊ cã ®iÒu kiÖn cña E t 1 khi cã E 2 , ký hiÖu ( 1 2 p E E ), lµ 1 2 1 2 2 ( ) ( ) ( ) p E E p E E p E . ∩ = Tõ ®Þnh nghÜa ta suy ra c«ng thøc Bayes : ( ) ( ) ( ) ( ) 1 2 1 1 2 2 . . p E p E E p E E p E = . Ta nãi hai sù kiÖn E1 vµ E 2 lµ ®éc lËp víi nhau, nÕu p (E 1 ∩E 2) = p(E1).p(E2). Khi ®ã ta cã: ( ) ( ) 1 2 1 p E E p E = vµ 2 1 2 ( ) ( ). p E E p E = Gi¶ sö Ω lµ mét kh«ng gian mÉu víi mét ph©n bè x¸c suÊt P . Ta gäi mét ®¹i l−îng ngÉu nhiªn ξ trªn Ω lµ mét ¸nh x¹ g¸n cho mçi s ∈Ω mét sè thùc ξ (s ). HiÓn nhiªn, nÕu ξ vµ η lµ c¸c ®¹i l−îng ngÉu nhiªn trªn Ω, th× ξ+η , ξ.η ®−îc ®Þnh nghÜa bëi : 32
  • 36.
    ∀s ∈Ω: (ξ+η) (s ) = ξ (s) + η (s ) , (ξ.η ) (s) = ξ (s).η (s). còng lµ c¸c ®¹i l−¬ng ngÉu nhiªn trªn Ω . Gi¶ sö ξ lµ mét ®¹i l−îng ngÉu nhiªn trªn kh«ng gian mÉu Ω. §iÒu ®ã cã nghÜa lµ víi mäi s ∈Ω, ξ lÊy gi¸ trÞ b»ng ξ (s ) víi x¸c suÊt p(s). Ta ®Þnh nghÜa gi¸ trÞ kú väng (hay trung b×nh, hay kú väng to¸n häc) cña ξ lµ 33 p s . ( ) ( ). ( ) s E s ξ ξ ∈Ω =∑ Ph−¬ng sai cña ®¹i l−îng ngÉu nhiªn ξ cã gi¸ trÞ trung b×nh µ ®−îc ®Þnh nghÜa lµ Var (ξ ) = E ((ξ − µ )2 ). C¨n bËc hai kh«ng ©m cña Var (ξ )®−îc gäi lµ ®é lÖch chuÈn cña ξ . 2.2.2. TÝnh bÝ mËt hoµn toµn cña mét hÖ mËt m·. N¨m 1949, C. Shannon c«ng bè c«ng tr×nh Lý thuyÕt truyÒn th«ng cña c¸c hÖ bÝ mËt , ®−a ra nhiÒu quan niÖm lµm c¬ së cho viÖc ®¸nh gi¸ tÝnh bÝ mËt cña c¸c hÖ mËt m·, trong ®ã cã kh¸i niÖm tÝnh bÝ mËt hoµn toµn cña mét hÖ mËt m· ®−îc ®Þnh nghÜa nh− sau: Cho hÖ mËt m· S = (P , C , K , E , D ) . Gi¶ thö trªn c¸c tËp P , C vµ K ®−îc x¸c ®Þnh t−¬ng øng c¸c ph©n bè x¸c suÊt pP(.), pC(.) vµ pK(.). Nh− vËy, víi mäi x ∈P , y ∈ C vµ K ∈K , pP(x), pC(y) vµ pK(K) t−¬ng øng lµ c¸c x¸c suÊt ®Ó ký tù b¶n râ lµ x, ký tù b¶n m· lµ y vµ kho¸ lµ K. X¸c suÊt cã ®iÒu kiÖn, ch¼ng h¹n, x¸c suÊt cña viÖc b¶n râ lµ x khi b¶n m· lµ y, ®−îc ký hiÖu lµ pP(x⏐y). Mét hÖ mËt m· ®−îc gäi lµ bÝ mËt hoµn toµn, nÕu víi mäi x ∈P , y ∈ C cã pP(x⏐y) = pP(x). §iÒu ®ã cã nghÜa lµ viÖc biÕt x¸c suÊt b¶n râ lµ x lµ nh− nhau dï biÕt hay kh«ng biÕt b¶n m· lµ y ; nãi c¸ch kh¸c, cã th«ng tin vÒ b¶n m·
  • 37.
    kh«ng cho tabiÕt g× thªm vÒ b¶n râ; b¶n râ vµ b¶n m·, víi t− c¸ch c¸c biÕn ngÉu nhiªn, lµ ®éc lËp víi nhau. Ta cã ®Þnh lý sau ®©y: §Þnh lý 2.2.1. Gi¶ sö S = (P , C , K , E , D ) lµ mét hÖ mËt m· víi ®iÒu kiÖn ⏐P ⏐ = ⏐C ⏐ = ⏐K ⏐ , tøc c¸c tËp P , C , K cã sè c¸c phÇn tö b»ng nhau. Khi ®ã, hÖ lµ bÝ mËt hoµn toµn nÕu vµ chØ nÕu mçi kho¸ K ∈K ®−îc dïng víi x¸c suÊt b»ng nhau lµ 1/⏐K ⏐ , vµ víi mäi x ∈P , y ∈ C cã mét kho¸ duy nhÊt K ∈K sao cho eK (x ) = y. Chøng minh. a) Gi¶ thö hÖ S lµ bÝ mËt hoµn toµn. Khi ®ã, víi mäi x ∈P vµ y ∈ C cã pP(x⏐y) = pP(x). Ngoµi ra ta cã thÓ gi¶ thiÕt pC(y) > 0 víi mäi y ∈ C . Tõ ®ã theo c«ng thøc Bayes ta cã pC(y⏐x ) = pC(y) > 0 . §iÒu ®ã cã nghÜa lµ cã Ýt nhÊt mét kho¸ K sao cho eK (x ) = y . V× vËy, nÕu cè ®Þnh mét x ∈P th× ta cã ⏐C ⏐ = ⏐{ eK(x ): K ∈K }⏐ ≤ ⏐K ⏐ . Theo gi¶ thiÕt cña ®Þnh lý, ⏐C ⏐ = ⏐K ⏐ , do ®ã ⏐{ eK(x ): K ∈K }⏐ = ⏐K ⏐ . Nh−ng ®iÒu nµy l¹i cã nghÜa lµ kh«ng thÓ cã hai kho¸ K1 ≠ K2 sao cho VËy ta ®· chøng minh ®−îc víi mäi x ∈P vµ y ∈ C cã ®óng mét kho¸ K sao cho e 1 2 ( ) ( ). K K e x e x = K (x ) = y . Ký hiÖu n = ⏐K ⏐ vµ ®Æt K = {K1,..., Kn }. Cè ®Þnh mét y ∈ C vµ gi¶ thö víi P = {x ( ) i K i e x y = 1,....., xn }, 1≤ i ≤ n. Dïng c«ng thøc Bayes ta l¹i cã ( ). ( ) ( ). ( ) ( ) ( ) ( ) C i P i . K i P i P i C C p y x p x p K p x p x y p y p y = = 34
  • 38.
    Do gi¶ thiÕthÖ lµ bÝ mËt hoµn toµn, ta cã pP(xi ⏐y) = pP(xi ). Tõ ®ã suy ra víi mäi i , 1≤ i ≤ n, pK (Ki ) = pC (y). VËy c¸c pK (Ki ) (1≤ i ≤ n ) ®Òu b»ng nhau, vµ do ®ã ®Òu b»ng 1/⏐K ⏐ . b) B©y giê ta chøng minh ®iÒu ng−îc l¹i. Gi¶ thiÕt pK(K) = 1/⏐K ⏐ víi mäi K ∈K , vµ víi mäi x ∈P , y ∈ C cã ®óng mét kho¸ K∈K sao cho eK (x ) = y . Ta tÝnh: 1 ( ) ( ). ( ( )) ( ( )) 1 ( ( )). C K P K P K K K P K K p y p K p d y p d y p d y ∈ ∈ ∈ = = = = ∑ ∑ ∑ K K K K K Khi K ch¹y qua tËp kho¸ K th× dK (y ) ch¹y qua tËp P , do ®ã ( ( )) ( ) 1 P K P K x p d y p x ∈ ∈ , = = ∑ ∑ K P vµ ta ®−îc pC (y ) = 1/⏐K ⏐ víi mäi y ∈ C . MÆt kh¸c, gäi K lµ kho¸ duy nhÊt mµ eK (x ) = y , ta cã pC(y ⏐x) = pK(K) = 1/⏐K ⏐ . Dïng c«ng thøc Bayes ta l¹i ®−îc víi mäi x ∈P , y ∈ C : ( ). ( ) ( ).1/ ( ) ( ) ( ) 1/ P C P P P C p x p y x p x p x y p x p y = = = K K . VËy hÖ lµ bÝ mËt hoµn toµn. §Þnh lý ®−îc chøng minh. 2.2.3. ThuËt to¸n x¸c suÊt: 35
  • 39.
    36 Kh¸i niÖm thuËtto¸n mµ ta th−êng hiÓu lµ thuËt to¸n tÊt ®Þnh, ®ã lµ mét tiÕn tr×nh thùc hiÖn c¸c phÐp to¸n trªn d÷ liÖu ®Çu vµo vµ cho kÕt qu¶ ë ®Çu ra. Theo D.E. Knuth, thuËt to¸n cã 5 thuéc tÝnh c¬ b¶n: tÝnh h÷u h¹n, thuËt to¸n lu«n kÕt thóc sau mét sè h÷u h¹n b−íc; tÝnh x¸c ®Þnh, mçi b−íc cña thuËt to¸n ph¶i ®−îc x¸c ®Þnh mét c¸ch chÝnh x¸c; tËp hîp ®Çu vµo vµ ®Çu ra cña mçi thuËt to¸n còng ®−îc x¸c ®Þnh râ rµng; vµ tÝnh hiÖu qu¶, mäi phÐp to¸n trong thuËt to¸n ph¶i lµ c¬ b¶n, cã thÓ ®−îc thùc hiÖn chÝnh x¸c trong mét thêi gian x¸c ®Þnh. ThuËt to¸n lµ kh¸i niÖm c¬ b¶n ®èi víi viÖc lËp tr×nh trªn m¸y tÝnh, vµ ®· ®−îc sö dông rÊt phæ biÕn. Nh−ng nh− ta biÕt, ®èi víi nhiÒu bµi to¸n trong thùc tÕ, kh«ng ph¶i bao giê ta còng t×m ®−îc thuËt to¸n gi¶i chóng víi ®é phøc t¹p tÝnh to¸n chÊp nhËn ®−îc (ta sÏ xÐt qua vÊn ®Ò nµy trong mét tiÕt sau). V× vËy, cïng víi c¸c thuËt to¸n tÊt ®Þnh, ®èi víi mét sè bµi to¸n ta sÏ xÐt thªm c¸c thuËt to¸n x¸c suÊt, ®ã lµ nh÷ng thuËt to¸n mµ cïng víi d÷ liÖu ®Çu vµo ta bæ sung thªm gi¸ trÞ cña mét ®¹i l−îng ngÉu nhiªn t−¬ng øng nµo ®ã, th−êng lµ c¸c sè ngÉu nhiªn. C¸c thuËt to¸n x¸c suÊt th−êng ®−îc x©y dùng cho c¸c bµi to¸n quyÕt ®Þnh, tøc c¸c bµi to¸n x¸c ®Þnh trªn mét tËp hîp d÷ liÖu sao cho øng víi mçi d÷ liÖu bµi to¸n cã mét tr¶ lêi cã hoÆc kh«ng . Ng−êi ta chia c¸c thuËt to¸n x¸c suÊt thµnh hai lo¹i: lo¹i thuËt to¸n Monte Carlo vµ lo¹i thuËt to¸n Las Vegas . ThuËt to¸n Monte Carlo lu«n kÕt thóc víi kÕt qu¶ cã hoÆc kh«ng ®èi víi mäi d÷ liÖu ®Çu vµo bÊt kú; cßn thuËt to¸n Las Vegas tuy còng kÕt thóc víi mäi d÷ liÖu, nh−ng cã thÓ kÕt thóc víi mét th«ng b¸o kh«ng cã tr¶ lêi cã hoÆc kh«ng. ThuËt to¸n Monte Carlo ®−îc gäi lµ thiªn vÒ cã, nÕu nã cho tr¶ lêi cã th× tr¶ lêi ®ã ch¾c ch¾n lµ ®óng, cßn nÕu nã cho tr¶ lêi kh«ng th× tr¶ lêi ®ã cã thÓ sai víi mét x¸c suÊt ε nµo ®ã. T−¬ng tù, mét thuËt to¸n Monte Carlo ®−îc gäi lµ thiªn vÒ kh«ng, nÕu nã cho tr¶ lêi kh«ng th× tr¶ lêi ®ã ch¾c ch¾n lµ ®óng, cßn nÕu nã cho tr¶ lêi cã th× tr¶ lêi ®ã cã thÓ sai víi mét x¸c suÊt ε nµo ®ã. Cßn víi thuËt to¸n Las Vegas, nÕu nã kÕt thóc víi tr¶ lêi cã hoÆc kh«ng , th× tr¶ lêi ®ã ch¾c ch¾n ®óng, vµ nã cã thÓ kÕt thóc víi th«ng b¸o kh«ng cã tr¶
  • 40.
    37 lêi víi métx¸c suÊt ε nµo ®ã. Trong tiÕt 2.8 sau ®©y ta sÏ cho vµi thÝ dô cô thÓ vÒ mét sè thuËt to¸n x¸c suÊt thuéc c¶ hai lo¹i ®ã. 2.3. §é phøc t¹p tÝnh to¸n. 2.3.1. Kh¸i niÖm vÒ ®é phøc t¹p tÝnh to¸n. Lý thuyÕt thuËt to¸n vµ c¸c hµm sè tÝnh ®−îc ra ®êi tõ nh÷ng n¨m 30 cña thÕ kû 20 ®· ®Æt nÒn mãng cho viÖc nghiªn cøu c¸c vÊn ®Ò “tÝnh ®−îc”, “gi¶i ®−îc” trong to¸n häc, ®−a ®Õn nhiÒu kÕt qu¶ rÊt quan träng vµ lý thó. Nh−ng tõ c¸i “tÝnh ®−îc” mét c¸ch trõu t−îng, hiÓu theo nghÜa tiÒm n¨ng,®Õn viÖc tÝnh ®−îc trong thùc tÕ cña khoa häc tÝnh to¸n b»ng m¸y tÝnh ®iÖn tö, lµ c¶ mét kho¶ng c¸ch rÊt lín. BiÕt bao nhiªu thø ®−îc chøng minh lµ tÝnh ®−îc mét c¸ch tiÒm n¨ng, nh−ng kh«ng tÝnh ®−îc trong thùc tÕ, dï cã sù hç trî cña nh÷ng m¸y tÝnh ®iÖn tö ! VÊn ®Ò lµ do ë chç nh÷ng ®ßi hái vÒ kh«ng gian vËt chÊt vµ vÒ thêi gian ®Ó thùc hiÖn c¸c tiÕn tr×nh tÝnh to¸n nhiÒu khi v−ît qu¸ xa nh÷ng kh¶ n¨ng thùc tÕ. Tõ ®ã, vµo kho¶ng gi÷a nh÷ng n¨m 60 (cña thÕ kû tr−íc), mét lý thuyÕt vÒ ®é phøc t¹p tÝnh to¸n b¾t ®Çu ®−îc h×nh thµnh vµ ph¸t triÓn nhanh chãng, cung cÊp cho chóng ta nhiÒu hiÓu biÕt s©u s¾c vÒ b¶n chÊt phøc t¹p cña c¸c thuËt to¸n vµ c¸c bµi to¸n, c¶ nh÷ng bµi to¸n thuÇn tuý lý thuyÕt ®Õn nh÷ng bµi to¸n th−êng gÆp trong thùc tÕ. Sau ®©y ta giíi thiÖu s¬ l−îc mét sè kh¸i niÖm c¬ b¶n vµ vµi kÕt qu¶ sÏ ®−îc dïng ®Õn cña lý thuyÕt ®ã. Tr−íc hÕt, ta hiÓu ®é phøc t¹p tÝnh to¸n (vÒ kh«ng gian hay vÒ thêi gian) cña mét tiÕn tr×nh tÝnh to¸n lµ sè « nhí ®−îc dïng hay sè c¸c phÐp to¸n s¬ cÊp ®−îc thùc hiÖn trong tiÕn tr×nh tÝnh to¸n ®ã. D÷ liÖu ®Çu vµo ®èi víi mét thuËt to¸n th−êng ®−îc biÓu diÔn qua c¸c tõ trong mét b¶ng ký tù nµo ®ã. §é dµi cña mét tõ lµ sè ký tù trong tõ ®ã.
  • 41.
    38 Cho mét thuËtto¸n A trªn b¶ng ký tù Σ (tøc cã ®Çu vµo lµ c¸c tõ trong Σ ) . §é phøc t¹p tÝnh to¸n cña thuËt to¸n A ®−îc hiÓu lµ mét hµm sè fA(n ) sao cho víi mçi sè n , fA(n ) lµ sè « nhí, hay sè phÐp to¸n s¬ cÊp tèi ®a mµ A cÇn ®Ó thùc hiÖn tiÕn tr×nh tÝnh to¸n cña m×nh trªn c¸c d÷ liÖu vµo cã ®é dµi ≤ n . Ta nãi thuËt to¸n A cã ®é phøc t¹p thêi gian ®a thøc , nÕu cã mét ®a thøc P (n ) sao cho víi mäi n ®ñ lín ta cã fA(n) ≤ P(n ), trong ®ã fA(n ) lµ ®é phøc t¹p tÝnh to¸n theo thêi gian cña A. VÒ sau khi nãi ®Õn c¸c bµi to¸n, ta hiÓu ®ã lµ c¸c bµi to¸n quyÕt ®Þnh , mçi bµi to¸n P nh− vËy ®−îc x¸c ®Þnh bëi: - mét tËp c¸c d÷ liÖu vµo I (trong mét b¶ng ký tù Σ nµo ®ã), - mét c©u hái Q trªn c¸c d÷ liÖu vµo, sao cho víi mçi d÷ liÖu vµo x ∈ I , c©u hái Q cã mét tr¶ lêi ®óng hoÆc sai. Ta nãi bµi to¸n quyÕt ®Þnh P lµ gi¶i ®−îc , nÕu cã thuËt to¸n ®Ó gi¶i nã, tøc lµ thuËt to¸n lµm viÖc cã kÕt thóc trªn mäi d÷ liÖu vµo cña bµi to¸n, vµ cho kÕt qu¶ ®óng hoÆc sai tuú theo c©u hái Q trªn d÷ liÖu ®ã cã tr¶ lêi ®óng hoÆc sai. Bµi to¸n P lµ gi¶i ®−îc trong thêi gian ®a thøc , nÕu cã thuËt to¸n gi¶i nã víi ®é phøc t¹p thêi gian ®a thøc. Sau ®©y lµ vµi thÝ dô vÒ c¸c bµi to¸n quyÕt ®Þnh: Bµi to¸n SATISFIABILITY (viÕt t¾t lµ SAT ): - mçi d÷ liÖu vµo lµ mét c«ng thøc F cña l«gich mÖnh ®Ò, ®−îc viÕt d−íi d¹ng héi chuÈn t¾c, tøc d¹ng héi cña mét sè c¸c “clause”. - C©u hái lµ: c«ng thøc F cã tho¶ ®−îc hay kh«ng ? Bµi to¸n CLIQUE : - mçi d÷ liÖu vµo lµ mét graph G vµ mét sè nguyªn k . - C©u hái lµ: Graph G cã mét clique víi ≥ k ®Ønh hay kh«ng ? (mét clique cña G lµ mét graph con ®Çy ®ñ cña G ). Bµi to¸n KNAPSACK :
  • 42.
    - mçi d÷liÖu lµ mét bé n +1 sè nguyªn d−¬ng I = (s1,...,sn ; T ). - C©u hái lµ: cã hay kh«ng mét vect¬ Boole (x1,...,xn) sao cho 1 . ? n i i i x s T = = ∑ (vect¬ boole lµ vect¬ cã c¸c thµnh phÇn lµ 0 hoÆc 1). Bµi to¸n thÆng d− bËc hai : - mçi d÷ liÖu gåm hai sè nguyªn d−¬ng (a , n ). - C©u hái lµ: a cã lµ thÆng d− bËc hai theo modn hay kh«ng ? Bµi to¸n hîp sè : - mçi d÷ liÖu lµ mét sè nguyªn d−¬ng N. - C©u hái: N lµ hîp sè hay kh«ng ? Tøc cã hay kh«ng hai sè m, n >1 sao cho N =m . n ? T−¬ng tù, nÕu ®Æt c©u hái lµ “N lµ sè nguyªn tè hay kh«ng?” th× ta ®−îc bµi to¸n sè nguyªn tè . §èi víi tÊt c¶ c¸c bµi to¸n kÓ trªn, trõ bµi to¸n hîp sè vµ sè nguyªn tè, cho ®Õn nay ng−êi ta ®Òu ch−a t×m ®−îc thuËt to¸n gi¶i chóng trong thêi gian ®a thøc. 2.3.2. Líp phøc t¹p. Ta xÐt mét vµi líp c¸c bµi to¸n ®−îc x¸c ®Þnh theo ®é phøc t¹p tÝnh to¸n cña chóng. Tr−íc hÕt, ta ®Þnh nghÜa P lµ líp tÊt c¶ c¸c bµi to¸n cã thÓ gi¶i ®−îc bëi thuËt to¸n trong thêi gian ®a thøc. Gi¶ sö cho hai bµi to¸n P1 vµ P2 víi c¸c tËp d÷ liÖu trong hai b¶ng ký tù t−¬ng øng lµ Σ1 vµ Σ2 . Mét thuËt to¸n ®−îc gäi lµ mét phÐp qui dÉn bµi to¸n P * 1 : f Σ → Σ* 2 1 vÒ bµi to¸n P2 , nÕu nã biÕn mçi d÷ liÖu x cña bµi to¸n P1 thµnh mét d÷ liÖu f (x ) cña bµi to¸n P2 , vµ sao cho c©u hái cña P1 trªn x cã tr¶ lêi ®óng khi vµ chØ khi c©u hái cña P2 trªn f (x ) còng cã tr¶ lêi ®óng. Ta nãi bµi to¸n P1 qui dÉn ®−îc vÒ bµi to¸n P2 trong thêi gian ®a thøc , vµ ký hiÖu P1 ∝ P2 , nÕu cã thuËt to¸n f víi ®é phøc t¹p thêi gian ®a thøc qui dÉn bµi to¸n P1 vÒ bµi to¸n P2 .Ta dÔ thÊy r»ng, nÕu P1 ∝ P2 vµ P2 ∈ P , th× còng cã P1 ∈ P . Mét líp quan träng c¸c bµi to¸n ®· ®−îc nghiªn cøu nhiÒu lµ líp c¸c bµi to¸n kh¸ th−êng gÆp trong thùc tÕ nh−ng cho ®Õn nay 39
  • 43.
    40 ch−a cã kh¶n¨ng nµo chøng tá lµ chóng cã thÓ gi¶i ®−îc trong thêi gian ®a thøc. §ã lµ líp c¸c bµi to¸n NP-dÇy ®ñ mµ ta sÏ ®Þnh nghÜa sau ®©y: Cïng víi kh¸i niÖm thuËt to¸n tÊt ®Þnh th«ng th−êng (cã thÓ m« t¶ chÝnh x¸c ch¼ng h¹n bëi m¸y Turing tÊt ®Þnh), ta xÐt kh¸i niÖm thuËt to¸n kh«ng ®¬n ®Þnh víi mét Ýt thay ®æi nh− sau: nÕu ®èi víi m¸y Turing tÊt ®Þnh, khi m¸y ®ang ë mét tr¹ng th¸i q vµ ®ang ®äc mét ký tù a th× cÆp (q,a ) x¸c ®Þnh duy nhÊt mét hµnh ®éng kÕ tiÕp cña m¸y, cßn ®èi víi m¸y Turing kh«ng ®¬n ®Þnh, ta qui −íc r»ng (q,a) x¸c ®Þnh kh«ng ph¶i duy nhÊt mµ lµ mét tËp h÷u h¹n c¸c hµnh ®éng kÕ tiÕp; m¸y cã thÓ thùc hiÖn trong b−íc kÕ tiÕp mét trong c¸c hµnh ®éng ®ã. Nh− vËy, ®èi víi mét d÷ liÖu vµo x , mét thuËt to¸n kh«ng ®¬n ®Þnh (®−îc x¸c ®Þnh ch¼ng h¹n bëi mét m¸y Turing kh«ng ®¬n ®Þnh) kh«ng ph¶i chØ cã mét tiÕn tr×nh tÝnh to¸n duy nhÊt, mµ cã thÓ cã mét sè h÷u h¹n nh÷ng tiÕn tr×nh tÝnh to¸n kh¸c nhau. Ta nãi thuËt to¸n kh«ng ®¬n ®Þnh A chÊp nhËn d÷ liÖu x , nÕu víi d÷ liÖu vµo x thuËt to¸n A cã Ýt nhÊt mét tiÕn tr×nh tÝnh to¸n kÕt thóc ë tr¹ng th¸i chÊp nhËn (tøc víi kÕt qu¶ ®óng). Mét bµi to¸n P ®−îc gäi lµ gi¶i ®−îc bëi thuËt to¸n kh«ng ®¬n ®Þnh trong thêi gian ®a thøc nÕu cã mét thuËt to¸n kh«ng ®¬n ®Þnh A vµ mét ®a thøc p(n ) sao cho víi mäi d÷ liÖu vµo x cã ®é dµi n , x ∈P (tøc c©u hái cña P cã tr¶ lêi ®óng trªn x ) khi vµ chØ khi thuËt to¸n A chÊp nhËn x bëi mét tiÕn tr×nh tÝnh to¸n cã ®é phøc t¹p thêi gian ≤ p(n ). Ta ký hiÖu líp tÊt c¶ c¸c bµi to¸n gi¶i ®−îc bëi thuËt to¸n kh«ng ®¬n ®Þnh trong thêi gian ®a thøc lµ NP. Ng−êi ta ®· chøng tá ®−îc r»ng tÊt c¶ nh÷ng bµi to¸n trong c¸c thÝ dô kÓ trªn vµ rÊt nhiÒu c¸c bµi to¸n tæ hîp th−êng gÆp kh¸c ®Òu thuéc líp NP, dï r»ng hÇu hÕt chóng ®Òu ch−a ®−îc chøng tá lµ thuéc P. Mét bµi to¸n P ®−îc gäi lµ NP.-®Çy ®ñ, nÕu P ∈NP vµ víi mäi Q ∈NP ®Òu cã Q ∝ P . Líp NP cã mét sè tÝnh chÊt sau ®©y:
  • 44.
    41 1) P ⊆NP, 2) NÕu P1 ∝ P2 vµ P2 ∈NP , th× P1 ∈ NP . 3) NÕu P1 ,P2 ∈NP , P1 ∝ P2 , vµ P1 lµ NP-®Çy ®ñ, th× P2 còng lµ NP -®Çy ®ñ. 4) NÕu cã P sao cho P lµ NP-®Çy ®ñ vµ P ∈ P , th× P = NP. Tõ c¸c tÝnh chÊt ®ã ta cã thÓ xem r»ng trong líp NP , P lµ líp con c¸c bµi to¸n “ dÔ ” nhÊt, cßn c¸c bµi to¸n NP-®Çy ®ñ lµ c¸c bµi to¸n “ khã ” nhÊt; nÕu cã Ýt nhÊt mét bµi to¸n NP-®Çy ®ñ ®−îc chøng minh lµ thuéc P , th× lËp tøc suy ra P = NP , dï r»ng cho ®Õn nay tuy ®· cã rÊt nhiÒu cè g¾ng nh−ng to¸n häc vÉn ch−a t×m ®−îc con ®−êng nµo hy väng ®i ®Õn gi¶i quyÕt vÊn ®Ò [P = NP ?], thËm chÝ vÊn ®Ò ®ã cßn ®−îc xem lµ mét trong 7 vÊn ®Ò khã nhÊt cña to¸n häc trong thiªn niªn kû míi! 2.3.3. Hµm mét phÝa vµ cöa sËp mét phÝa. Kh¸i niÖm ®é phøc t¹p tÝnh to¸n cung cÊp cho ta mét c¸ch tiÕp cËn míi ®èi víi vÊn ®Ò bÝ mËt trong c¸c vÊn ®Ò b¶o mËt vµ an toµn th«ng tin. Dï ngµy nay ta ®· cã nh÷ng m¸y tÝnh ®iÖn tö cã tèc ®é tÝnh to¸n cì hµng tû phÐp tÝnh mét gi©y ®ång hå, nh−ng víi nh÷ng thuËt to¸n cã ®é phøc t¹p tÝnh to¸n cì f (n ) = 2n , th× ngay víi nh÷ng d÷ liÖu cã ®é dµi kho¶ng n = 1000, viÖc thùc hiÖn c¸c thuËt to¸n ®ã ®· kh«ng thÓ xem lµ kh¶ thi, v× nã ®ßi hái thùc hiÖn kho¶ng 10300 phÐp tÝnh! Nh− vËy, mét gi¶i ph¸p mËt m· ch¼ng h¹n cã thÓ xem lµ cã ®é b¶o mËt cao, nÕu ®Ó gi¶i m· cÇn ph¶i thùc hiÖn mét tiÕn tr×nh tÝnh to¸n cã ®é phøc t¹p rÊt lín. Do ®ã, viÖc ph¸t hiÖn vµ sö dông c¸c hµm sè cã ®é phøc t¹p tÝnh to¸n rÊt lín lµ cã ý nghÜa hÕt søc quan träng ®èi víi viÖc x©y dùng c¸c gi¶i ph¸p vÒ mËt m· vµ an toµn th«ng tin. Hµm sè sè häc y = f (x ) ®−îc gäi lµ hµm mét phÝa (one-way function), nÕu viÖc tÝnh thuËn tõ x ra y lµ “dÔ”, nh−ng viÖc tÝnh
  • 45.
    ng−îc tõ yt×m l¹i x lµ rÊt “khã”, ë ®©y c¸c tÝnh tõ “dÔ” vµ “khã” kh«ng cã c¸c ®Þnh nghÜa chÝnh x¸c mµ ®−îc hiÓu mét c¸ch thùc hµnh, ta cã thÓ hiÓu ch¼ng h¹n dÔ lµ tÝnh ®−îc trong thêi gian ®a thøc (víi ®a thøc bËc thÊp), cßn khã lµ kh«ng tÝnh ®−îc trong thêi gian ®a thøc! Thùc tÕ th× cho ®Õn hiÖn nay, viÖc t×m vµ chøng minh mét hµm sè nµo ®ã lµ kh«ng tÝnh ®−îc trong thêi gian ®a thøc cßn lµ viÖc rÊt khã kh¨n, cho nªn “khã” th−êng khi chØ ®−îc hiÓu mét c¸ch ®¬n gi¶n lµ ch−a t×m ®−îc thuËt to¸n tÝnh nã trong thêi gian ®a thøc! Víi c¸ch hiÓu t−¬ng ®èi nh− vËy vÒ “dÔ” vµ “khã”, ng−êi ta ®· ®−a ra mét sè thÝ dô sau ®©y vÒ c¸c hµm mét phÝa: ThÝ dô 1. Cho p lµ mét sè nguyªn tè, vµ α lµ mét phÇn tö nguyªn thuû modp. Hµm sè y = αx modp (tõ * p Z vµo * p Z ) lµ mét hµm mét phÝa, v× hµm ng−îc cña nã, tÝnh tõ y t×m x mµ ta ký hiÖu log ( ) x y α = , lµ mét hµm cã ®é phøc t¹p tÝnh to¸n rÊt lín. ThÝ dô 2. Cho n =p.q lµ tÝch cña hai sè nguyªn tè lín. Hµm sè y = x2 modn (tõ Zn vµo Zn ) còng ®−îc xem lµ mét hµm mét phÝa. ThÝ dô 3. Cho n =p.q lµ tÝch cña hai sè nguyªn tè lín, vµ a lµ mét sè nguyªn sao cho gcd(a , φ(n)) =1. Hµm sè y = x a modn (tõ Zn vµo Zn ) còng lµ mét hµm mét phÝa, nÕu gi¶ thiÕt lµ biÕt n nh−ng kh«ng biÕt p,q . Hµm y = f (x ) ®−îc gäi lµ hµm cöa sËp mét phÝa (trapdoor one-way function), nÕu viÖc tÝnh thuËn tõ x ra y lµ “dÔ”, viÖc tÝnh ng−îc tõ y t×m l¹i x lµ rÊt “khã”, nh−ng cã mét cöa sËp z ®Ó víi sù trî gióp cña cöa sËp z th× viÖc tÝnh x tõ y vµ z l¹i trë thµnh dÔ. ThÝ dô 4 (tiÕp tôc thÝ dô 3). Hµm sè y = x a modn khi biÕt p vµ q lµ hµm cöa sËp mét phÝa. Tõ x tÝnh y lµ dÔ, tõ y t×m x (nÕu chØ biÕt n , a ) lµ rÊt khã, nh−ng v× biÕt p vµ q nªn biÕt φ(n) = (p -1)(q -1), vµ dïng thuËt to¸n Euclide më réng t×m ®−îc b sao cho a.b ≡ 1 (modφ(n)) , tõ ®ã dÔ tÝnh ®−îc x = yb modn . ë ®©y, cã thÓ xem b lµ cöa sËp. 42
  • 46.
    2.4. Sè nguyªntè. Ph©n tÝch thµnh thõa sè. Logarit rêi r¹c. Trong tiÕt nµy ta sÏ xÐt ba bµi to¸n cã vai trß quan träng trong lý thuyÕt mËt m·, ®ã lµ ba bµi to¸n: thö tÝnh nguyªn tè cña mét sè nguyªn, ph©n tÝch mét sè nguyªn thµnh tÝch cña c¸c thõa sè nguyªn tè, vµ tÝnh logarit rêi r¹c cña mét sè theo mét m«®uyn nguyªn tè. 2.4.1. Thö tÝnh nguyªn tè cña mét sè. Bµi to¸n ®Æt ra rÊt ®¬n gi¶n: Cho mét sè nguyªn d−¬ng n bÊt kú. H·y thö xem n cã lµ sè nguyªn tè hay kh«ng? Bµi to¸n ®−îc ®Æt ra tõ nh÷ng buæi ®Çu cña sè häc, vµ tr¶i qua h¬n 2000 n¨m ®Õn nay vÉn lµ mét bµi to¸n ch−a cã ®−îc nh÷ng c¸ch gi¶i dÔ dµng. B»ng nh÷ng ph−¬ng ph¸p ®¬n gi¶n nh− ph−¬ng ph¸p sµng EuratosthÌne, tõ rÊt sím ng−êi ta ®· x©y dùng ®−îc c¸c b¶ng sè nguyªn tè ®Çu tiªn, råi tiÕp tôc b»ng nhiÒu ph−¬ng ph¸p kh¸c t×m thªm ®−îc nhiÒu sè nguyªn tè lín. Tuy nhiªn, chØ ®Õn giai ®o¹n hiÖn nay cña lý thuyÕt mËt m· hiÖn ®¹i, nhu cÇu sö dông c¸c sè nguyªn tè vµ thö tÝnh nguyªn tè cña c¸c sè míi trë thµnh mét nhu cÇu to lín vµ phæ biÕn, ®ßi hái nhiÒu ph−¬ng ph¸p míi cã hiÖu qu¶ h¬n. Trong môc nµy ta sÏ l−îc qua vµi tÝnh chÊt cña sè nguyªn tè, sau ®ã giíi thiÖu m«t vµi ph−¬ng ph¸p thö tÝnh nguyªn tè cña mét sè nguyªn bÊt kú. Ta ®· biÕt mét sè tÝnh chÊt sau ®©y cña c¸c sè nguyªn tè vµ hîp sè (trong c¸c ph¸t biÓu d−íi ®©y, ký hiÖu A chØ cho sè phÇn tö cña tËp hîp A ): 1. Tiªu chuÈn Euler-Solovay-Strassen: a) NÕu n lµ sè nguyªn tè, th× víi mäi sè nguyªn d−¬ng a [ n -1: ( 1)/ 2 mod n a a n n − ⎛ ⎞ ⎟ ⎜ ≡ ⎟ ⎜ ⎟ ⎜ ⎝ ⎠ . b) NÕu n lµ hîp sè , th× 43
  • 47.
    ( 1)/ 21 :1 1, mod . 2 n a n a a n a n n − ⎧ ⎫ ⎛ ⎞ − ⎪ ⎪ ⎪ ⎪ ⎟ ⎜ ≤ ≤ − ≡ ≤ ⎟ ⎨ ⎬ ⎜ ⎟ ⎜ ⎪ ⎪ ⎝ ⎠ ⎪ ⎪ ⎩ ⎭ 2. Tiªu chuÈn Solovay-Strassen-Lehmann : a) NÕu n lµ sè nguyªn tè, th× víi mäi sè nguyªn d−¬ng a [ n -1: ( 1)/ 2 1(mod ). n a n − ≡± b) NÕu n lµ hîp sè, th× { } ( 1)/ 2 1 :1 1, 1mod . 2 n n a a n a n − − ≤ ≤ − ≡ ± ≤ 3. Tiªu chuÈn Miller-Rabin : a) Cho n lµ sè nguyªn lÎ, ta viÕt n - 1 = 2e .u, víi u lµ sè lÎ. NÕu n lµ sè nguyªn tè, th× víi mäi sè nguyªn d−¬ng a [ n -1: 2 . ( 1mod ) ( 1mod k u u a n k e a ≡ ∨∃ < ≡− ). n b) NÕu n lµ hîp sè, th× { } 2 . 1 :1 1,( 1mod ) ( 1mod ) 4 k u u n a a n a n k e a n − ≤ ≤ − ≡ ∨∃ < ≡− ≤ . C¸c tiªu chuÈn kÓ trªn lµ c¬ së ®Ó ta x©y dùng c¸c thuËt to¸n x¸c suÊt kiÓu Monte-Carlo thö tÝnh nguyªn tè (hay hîp sè) cña c¸c sè nguyªn. Ch¼ng h¹n, tõ tiªu chuÈn thø nhÊt ta cã thuËt to¸n Euler- Solovay-Strassen sau ®©y: D÷ liÖu vµo: sè nguyªn d−¬ng n vµ t sè ngÉu nhiªn a1,...,at (1[ai[n -1), 1. for i = 1 to t do 2. if ( 1)/2 mod n i i a a n n − ⎛ ⎞ ⎟ ⎜ ≡ ⎟ ⎜ ⎟ ⎜ ⎝ ⎠ , then 3. answer “n lµ sè nguyªn tè ” 4. else 5. answer “n lµ hîp sè ” and quit 44
  • 48.
    ThuËt to¸n nµynÕu cho tr¶ lêi “n lµ hîp sè ” th× ®óng n lµ hîp sè, nh−ng nÕu nã cho tr¶ lêi “n lµ sè nguyªn tè ” th× tr¶ lêi ®ã cã thÓ sai víi mét x¸c suÊt ε nµo ®ã. Nh− vËy, thuËt to¸n ®ã lµ mét thuËt to¸n x¸c suÊt Monte-Carlo thiªn vÒ cã nÕu xem nã lµ thuËt to¸n thö tÝnh lµ hîp sè ; cßn nã lµ mét thuËt to¸n x¸c suÊt thiªn vÒ kh«ng nÕu xem nã lµ thuËt to¸n thö tÝnh nguyªn tè cña c¸c sè nguyªn. T−¬ng tù nh− vËy, dùa vµo c¸c tiªu chuÈn 2 vµ 3 ta còng cã thÓ x©y dùng c¸c thuËt to¸n x¸c suÊt Solovay-Strassen-Lehmann vµ Miller-Rabin kiÓu Monte-Carlo ®Ó thö tÝnh nguyªn tè (hay lµ hîp sè) cña c¸c sè nguyªn. Hai thuËt to¸n ®ã chØ kh¸c thuËt to¸n Euler- Solovay-Strassen kÓ trªn ë chç c«ng thøc trong hµng lÖnh thø 2 cÇn ®−îc thay t−¬ng øng bëi ( 1)/2 1mod n a n − ≡± hay 45 n trong ®ã u vµ e ®−îc x¸c ®Þnh bëi: n - 1 = 2 2 . ( 1mod ) ( 1mod ) k u u a n k e a ≡ ∨∃ < ≡− e .u , u lµ sè lÎ. X¸c suÊt sai lÇm ε khi nhËn ®−îc kÕt qu¶ “n lµ sè nguyªn tè ” trong c¸c thuËt to¸n ®ã ®−îc tÝnh nh− sau: Gi¶ sö n lµ mét sè lÎ trong kho¶ng N vµ 2N , tøc N <n < 2N . Gäi A lµ sù kiÖn “n lµ hîp sè ”, vµ B lµ sù kiÖn “thuËt to¸n cho kÕt qu¶ tr¶ lêi n lµ sè nguyªn tè ”. Ta ph¶i tÝnh x¸c suÊt ε =p (A⏐ B). Theo tÝnh chÊt b) cña tiªu chuÈn Euler-Solovay-Strassen, nÕu n lµ hîp sè, th× sù kiÖn ( 1)/ 2 mod n a a n n − ⎛ ⎞ ⎟ ⎜ ≡ ⎟ ⎜ ⎟ ⎜ ⎝ ⎠ ®èi víi mçi a ngÉu nhiªn (1[a [n - 1) cã x¸c suÊt [ 1/2, v× vËy ta cã ( ) 1 . 2t p B A ≤ Theo c«ng thøc Bayes ta cã
  • 49.
    ( ) ( )( ) ( ) ( ) . ( ) . ( ) . ( ) . ( ) . ( ) p B A p A p B A p A p A B p B p B A p A p B A p A = = + Theo ®Þnh lý vÒ sè nguyªn tè, sè c¸c sè nguyªn tè gi÷a N vµ 2N xÊp xØ , ln ln N n N n ≈ sè c¸c sè lÎ lµ , 2 2 N n ≈ do ®ã 2 ( ) , ln p A n ≈ vµ 2 ( ) 1 . ln p A n ≈ − DÜ nhiªn ta cã ( ) 1. p B A = Thay c¸c gi¸ trÞ ®ã vµo c«ng thøc trªn, ta ®−îc ( ) 1 2 2 (1 ) ln 2 ln 2 2 ln 2 2 2 (1 ) ln ln t t t n n p A B n n n − + − − − ≤ = − + − + . (5) §¸nh gi¸ ®ã còng ®óng ®èi víi thuËt to¸n Solovay-Strassen- Lehmann, cßn ®èi víi thuËt to¸n Miler-Rabin th× ta ®−îc mét ®¸nh gi¸ tèt h¬n, cô thÓ lµ ( ) 2 1 ln 2 . ln 2 2 t n p A B n + − = − + (6) Chó ý r»ng khi t =50 th× ®¹i l−îng ë vÕ ph¶i cña (5) , vµ vÕ ph¶i cña (6) ; do ®ã nÕu chän cho d÷ liÖu vµo thªm kho¶ng 50 sè ngÉu nhiªn a 13 10− ≈ 28 10− ≈ i th× c¸c thuËt to¸n Euler-Solovay- Strassen vµ Solovay-Strassen-Lehmann sÏ thö cho ta mét sè lµ nguyªn tè víi x¸c suÊt sai lÇm [ 10-13 vµ thuËt to¸n Miller-Rabin víi x¸c suÊt sai lÇm [ 10-28 ! Ta cã thÓ tÝnh ®−îc r»ng ®é phøc t¹p tÝnh to¸n vÒ thêi gian cña c¸c thuËt to¸n x¸c suÊt kÓ trªn lµ vµo cì ®a thøc cña logn , tøc lµ ®a thøc cña ®é ®µi biÓu diÔn cña d÷ liÖu vµo (lµ sè n ), tuy nhiªn c¸c thuËt to¸n ®ã chØ cho ta thö tÝnh nguyªn tè cña mét sè víi mét x¸c suÊt sai lÇm ε nµo ®ã, dï ε lµ rÊt bÐ. Trong nhiÒu øng dông, ta muèn cã ®−îc nh÷ng sè nguyªn tè víi ®é ch¾c ch¾n 100% lµ sè nguyªn tè. Do ®ã, dï ®· cã c¸c thuËt to¸n x¸c suÊt nh− trªn, ng−êi ta vÉn kh«ng ngõng t×m kiÕm nh÷ng thuËt to¸n tÊt ®Þnh ®Ó thö tÝnh nguyªn tè víi ®é chÝnh x¸c tuyÖt ®èi. Trong mÊy chôc n¨m gÇn ®©y, 46
  • 50.
    mét sè thuËtto¸n ®· ®−îc ®Ò xuÊt, trong ®ã cã nh÷ng thuËt to¸n ®Æc s¾c nh− thuËt to¸n thö tæng Jacobi, ®−îc ph¸t hiÖn bëi Adleman, Pomerance vµ Rumely, sau ®ã ®−îc ®¬n gi¶n ho¸ bëi Cohen vµ Lenstra; thuËt to¸n thö b»ng ®−êng cong elliptic, ®−îc ®Ò xuÊt bëi Goldwasser, Kilian, Adleman vµ Huang, ®−îc tiÕp tôc hoµn thiÖn bëi Atkin vµ Morain, c¸c thuËt to¸n nµy ®· ®−îc dïng ®Ó t×m nhiÒu sè nguyªn tè rÊt lín, thÝ dô dïng thuËt to¸n Atkin-Morain ®· chøng tá ®−îc sè (23539 + 1)/3 cã 1065 ch÷ sè thËp ph©n lµ sè nguyªn tè. GÇn ®©y, vµo th¸ng 8/2002, c¸c nhµ to¸n häc ¢n ®é Agrawal, Kayal vµ Saxena ®· ®−a ra mét thuËt to¸n tÊt ®Þnh míi thö tÝnh nguyªn tè cã ®é phøc t¹p tÝnh to¸n thêi gian ®a thøc kh¸ ®¬n gi¶n, thuËt to¸n ®ã ®−îc m« t¶ nh− sau: ThuËt to¸n Agrawal-Kayal-Saxena: Input: integer n > 1 1. if (n is of the form ab , b > 1 ) ouput COMPOSITE; 2. r =2; 3. while (r < n ) { 4. if (gcd(n , r )≠ 1) ouput COMPOSITE; 5. if (r is prime ) 6. let q be the largest prime factor of r - 1; 7. if ( 4 log ) q r n ≥ and 1 r− ( 1(mod )) q n r ≠ 8. break; 9. r ← r + 1; 10. } 11. for a = 1 to 2 log r n 12. if (( ) ( )(mod 1, )) n n r x a x a x n − ≠ − − ouput COMPOSITE; 13. output PRIME; 47
  • 51.
    48 ThuËt to¸n nµy®· ®−îc mét sè nhµ to¸n häc kiÓm nghiÖm , ®¸nh gi¸ cao vµ xem lµ mét thuËt to¸n ®Ñp, cã thÓ dïng cho viÖc kiÓm thö tÝnh nguyªn tè cña c¸c sè nguyªn. Trong thùc tiÔn x©y dùng c¸c gi¶i ph¸p mËt m·, th−êng cã nhu cÇu cã c¸c sè nguyªn tè rÊt lín. §Ó t×m ®−îc c¸c sè nh− vËy, ng−êi ta th−êng chän ngÉu nhiªn mét sè rÊt lín, råi dïng tr−íc cho nã mét thuËt to¸n x¸c suÊt ch¼ng h¹n nh− thuËt to¸n Miller-Rabin; nÕu thuËt to¸n cho ta kÕt qu¶ “lµ sè nguyªn tè” víi mét x¸c suÊt sai ε nµo ®ã, th× sau ®ã ta dïng tiÕp mét thuËt to¸n tÊt ®Þnh (ch¼ng h¹n nh− thuËt to¸n trªn ®©y) ®Ó b¶o ®¶m ch¾c ch¾n 100% r»ng sè ®ã lµ sè nguyªn tè. ThuËt to¸n Agrawal-Kayal-Saxena trªn ®©y ®−îc chøng tá lµ cã ®é phøc t¹p thêi gian ®a thøc cì O((logn)12 ) khi thö trªn sè n ; vµ nÕu sè nguyªn tè ®−îc thö cã d¹ng Sophie Germain, tøc d¹ng 2p +1, th× ®é phøc t¹p thêi gian sÏ chØ lµ cì O((logn)6 ). 2.4.2. Ph©n tÝch thµnh thõa sè nguyªn tè. Bµi to¸n ph©n tÝch mét sè nguyªn > 1 thµnh thõa sè nguyªn tè còng ®−îc xem lµ mét bµi to¸n khã th−êng ®−îc sö dông trong lý thuyÕt mËt m·. BiÕt mét sè n lµ hîp sè th× viÖc ph©n tÝch n thµnh thõa sè míi lµ cã nghÜa; do ®ã th−êng khi ®Ó gi¶i bµi to¸n ph©n tÝch n thµnh thõa sè, ta thö tr−íc n cã lµ hîp sè hay kh«ng (ch¼ng h¹n b»ng mét trong c¸c thuËt to¸n ë môc tr−íc); vµ bµi to¸n ph©n tÝch n thµnh thõa sè cã thÓ dÉn vÒ bµi to¸n t×m mét −íc sè cña n, v× khi biÕt mét −íc sè d cña n th× tiÕn tr×nh ph©n tÝch n ®−îc tiÕp tôc thùc hiÖn b»ng c¸ch ph©n tÝch d vµ n/d. Bµi to¸n ph©n tÝch thµnh thõa sè, hay bµi to¸n t×m −íc sè cña mét sè nguyªn cho tr−íc, ®· ®−îc nghiªn cøu nhiÒu, nh−ng còng ch−a cã mét thuËt to¸n hiÖu qu¶ nµo ®Ó gi¶i nã trong tr−êng hîp tæng qu¸t; do ®ã ng−êi ta cã khuynh h−íng t×m thuËt to¸n gi¶i nã trong nh÷ng tr−êng hîp ®Æc biÖt, ch¼ng h¹n khi n cã mét −íc sè nguyªn tè p víi p -1 lµ B-mÞn víi mét cËn B >0 nµo ®ã, hoÆc khi n lµ sè Blum, tøc lµ sè cã d¹ng tÝch cña hai sè nguyªn tè lín nµo ®ã (n =p.q ).
  • 52.
    Ta xÐt tr−ênghîp thø nhÊt víi (p -1)-thuËt tãan Pollard nh− sau: Mét sè nguyªn n ®−îc gäi lµ B-mÞn, nÕu tÊt c¶ c¸c −íc sè nguyªn tè cña nã ®Òu ≤B. ý chÝnh chøa trong (p-1)- thuËt to¸n Pollard lµ nh− sau: Gi¶ sö n lµ B-mÞn. Ký hiÖu Q lµ béi chung bÐ nhÊt cña tÊt c¶ c¸c luü thõa cña c¸c sè nguyªn tè ≤B mµ b¶n th©n chóng ≤n. NÕu q l ≤n th× l lnq ≤ lnn , tøc ln ln n l q ⎢ ⎥ ⎢ ⎥ ≤ ⎢ ⎥ ⎣ ⎦ ( x ⎢ ⎥ ⎣ ⎦ lµ sè nguyªn bÐ nhÊt lín h¬n x ). Ta cã ln /ln , n q q B Q q ⎢ ⎥ ⎣ ⎦ ≤ = ∏ trong ®ã tÝch lÊy theo tÊt c¶ c¸c sè nguyªn tè kh¸c nhau q ≤B . NÕu p lµ mét thõa sè nguyªn tè cña n sao cho p -1 lµ B-mÞn, th× p -1⏐Q, vµ do ®ã víi mäi a bÊt kú tháa m·n gcd(a,p) = 1, theo ®Þnh lý Fermat ta cã a Q ≡ 1 (modp ). V× vËy, nÕu lÊy d =gcd(aQ - 1, n ) th× p ⏐d. NÕu d = n th× coi nh− thuËt to¸n kh«ng cho ta ®iÒu mong muèn, tuy nhiªn ®iÒu ®ã ch¾c kh«ng xÈy ra nÕu n cã Ýt nhÊt hai thõa sè nguyªn tè kh¸c nhau. Tõ nh÷ng lËp luËn ®ã ta cã: (p - 1)-thuËt to¸n Pollard ph©n tÝch thµnh thõa sè : INPUT: mét hîp sè n kh«ng ph¶i lµ luü thõa cña mét sè nguyªn tè. OUTPUT: mét thõa sè kh«ng tÇm th−êng cña n . 1. Chän mét cËn cho ®é mÞn B. 2. Chän ngÉu nhiªn mét sè nguyªn a , 2≤ a ≤ n - 1, vµ tÝnh d = gcd(a,n ). NÕu d ≥ 2 th× cho ra kÕt qu¶ (d ). 3. Víi mçi sè nguyªn tè q ≤ B thùc hiÖn: 3.1 TÝnh ln . ln n l q ⎢ ⎥ ⎢ ⎥ = ⎢ ⎥ ⎣ ⎦ 3.2 TÝnh mod . l q a a n ← 49
  • 53.
    50 4. TÝnh d= gcd(a -1, n). 5. NÕu 1< d < n th× cho ra kÕt qu¶ (d ). NÕu ng−îc l¹i th× thuËt to¸n coi nh− kh«ng cã kÕt qu¶. ThÝ dô: Dïng thuËt to¸n cho sè n = 19048567. Ta chän B =19, vµ a =3, vµ tÝnh ®−îc gcd(3,n ) =1. ChuyÓn sang thùc hiÖn b−íc 3 ta ®−îc b¶ng sau ®©y (mçi hµng øng víi mét gi¸ trÞ cña q ) : q l a 2 3 5 7 11 13 17 19 24 15 10 8 6 6 5 5 2293244 13555889 16937223 15214586 9685355 13271154 11406961 554506 Sau ®ã ta tÝnh d =gcd(554506-1,19048567) = 5281. VËy ta ®−îc mét thõa sè p = 5281, vµ do ®ã mét thõa sè n÷a lµ q = n/p = 3607. C¶ hai thõa sè ®ã ®Òu lµ nguyªn tè. Chó ý r»ng ë ®©y p -1 = 5280 = 25 .3.5.11 , cã tÊt c¶ c¸c −íc sè nguyªn tè ®Òu ≤ 19, do ®ã ch¾c ch¾n thuËt to¸n sÏ kÕt thóc cã kÕt qu¶. ThuËt to¸n sÏ kÕt thóc kh«ng cã kÕt qu¶ khi ®é mÞn B ®−îc chän qu¸ bÐ ®Ó kh«ng mét thõa sè nguyªn tè p nµo cña n mµ p -1 chØ chøa c¸c −íc sè nguyªn tè ≤ B. Nh− vËy, cã thÓ xem (p -1)-thuËt to¸n Pollard ph©n tÝch n thµnh thõa sè nguyªn tè lµ cã hiÖu qu¶ ®èi víi nh÷ng sè nguyªn n lµ B-mÞn, ng−êi ta tÝnh ®−îc thêi gian cÇn ®Ó thùc hiÖn thuËt to¸n ®ã lµ cì O(B lnn /lnB ) phÐp nh©n theo m«®uyn. B©y giê ta xÐt tr−êng hîp c¸c sè nguyªn Blum, tøc lµ c¸c sè cã d¹ng n = p.q , tÝch cña hai sè nguyªn tè lín. Tr−íc hÕt ta chó ý r»ng
  • 54.
    nÕu ta biÕthai sè nguyªn kh¸c nhau x vµ y sao cho 2 2 (mod ) x y n ≡ th× ta dÔ t×m ®−îc mét thõa sè cña n . Thùc vËy, tõ 2 2 (mod ) x y n ≡ ta cã 2 2 ( )( ) x y x y x y − = + − chia hÕt cho n , do n kh«ng lµ −íc sè cña x + y hoÆc x - y, nªn gcd(x - y, n) ph¶i lµ mét −íc sè cña n, tøc b»ng p hoÆc q . Ta biÕt nÕu n = p.q lµ sè Blum, th× ph−¬ng tr×nh ®ång d− 2 2 (mod ) x a n ≡ cã 4 nghiÖm, hai nghiÖm tÇm th−êng lµ x = a vµ x = -a . Hai nghiÖm kh«ng tÇm th−êng kh¸c lµ ±b , chóng lµ nghiÖm cña hai hÖ ph−¬ng tr×nh ®ång d− bËc nhÊt sau ®©y: ( ) (mod ) (mod ) mod (mod ) x a p x a p x a q x a q ⎧ ⎧ ≡− ⎪ ≡ ⎪ ⎪ ⎪ ⎨ ⎨ ⎪ ⎪ ≡ ≡− ⎪ ⎩ ⎪ ⎩ B»ng lËp luËn nh− trªn, ta thÊy r»ng nÕu n lµ sè Blum, a lµ mét sè nguyªn tè víi n, vµ ta biÕt mét nghiÖm kh«ng tÇm th−êng cña ph−¬ng tr×nh 2 2 (mod ) x a ≡ n , tøc biÕt mét x ≠ ±a sao cho 2 2 (mod ) x a ≡ n th× gcd(x - a , n ) sÏ lµ mét −íc sè cña n . Nh÷ng ®iÒu trªn ®©y lµ c¨n cø cho mét sè ph−¬ng ph¸p t×m −íc sè nguyªn tè cña mét sè nguyªn d¹ng Blum; ý chung cña c¸c ph−¬ng ph¸p ®ã lµ dÉn vÒ viÖc t×m mét nghiÖm kh«ng tÇm th−êng cña mét ph−¬ng tr×nh d¹ng 2 2 (mod ) x a ≡ n , ch¼ng h¹n nh− ph−¬ng tr×nh 2 1(mod ) x n ≡ . Mét tr−êng hîp kh¸ lý thó trong lý thuyÕt mËt m· lµ khi ta biÕt hai sè a ,b lµ nghÞch ®¶o cña nhau theo modφ (n ) (nh−ng kh«ng biÕt φ (n ) ), vµ t×m mét ph©n tÝch thµnh thõa sè cña n. Bµi to¸n ®−îc ®Æt ra cô thÓ lµ: BiÕt n cã d¹ng Blum, biÕt a vµ b sao cho ab ≡ 1(modφ (n )). H·y t×m mét −íc sè nguyªn tè cña n , hay t×m mét nghiÖm kh«ng tÇm th−êng cña ph−¬ng tr×nh 2 1(mod ) x n ≡ . Ta gi¶ thiÕt ab - 1 = 2s . r víi r lµ sè lÎ. Ta ph¸t triÓn mét thuËt to¸n x¸c suÊt kiÓu Las Vegas nh− sau: Ta chän mét sè ngÉu nhiªn v (1≤ v ≤ n - 1). NÕu may m¾n v lµ béi sè cña p hay q, th× ta ®−îc ngay mét −íc sè cña n lµ gcd(v,n ). NÕu v nguyªn tè víi n , th× ta tÝnh c¸c b×nh ph−¬ng liªn tiÕp kÓ tõ v r , ®−îc cho ®Õn khi ®−îc víi mét t nµo 2 4 , , ,... r r r v v v ( 2 . 1 mod t r v n ≡ ) 51
  • 55.
    52 ) n ®ã. Sè tnh− vËy bao giê còng ®¹t ®−îc, v× cã 2s . r ≡ 0 (modφ(n )) nªn cã Nh− vËy, ta ®· t×m ®−îc mét sè ( 2 . 1 mod . s r v ≡ 1 2 . t r x v − = sao cho 2 1(mod ) x n ≡ . TÊt nhiªn cã x≠ 1 modn . NÕu còng cã x≠ -1 (modn ) th× x lµ nghiÖm kh«ng tÇm th−êng cña 2 1(mod ) x n ≡ , tõ ®ã ta cã thÓ t×m −íc sè cña n . NÕu kh«ng th× thuËt to¸n coi nh− thÊt b¹i, cho ta kÕt qu¶ kh«ng ®óng. Ng−êi ta cã thÓ −íc l−îng x¸c suÊt cho kÕt qu¶ kh«ng ®óng víi mét lÇn thö víi mét sè v lµ < 1/2, do ®ã nÕu ta thiÕt kÕ thuËt to¸n víi m sè ngÉu nhiªn v1,...vm , th× sÏ cã thÓ ®¹t ®−îc x¸c suÊt cho kÕt qu¶ kh«ng ®óng lµ < 1/2m ! 2.4.3. TÝnh logarit rêi r¹c theo m«®uyn nguyªn tè. Cho p lµ mét sè nguyªn tè, vµ α lµ mét phÇn tö nguyªn thuû theo modp, tøc lµ phÇn tö nguyªn thuû cña nhãm * p Z . Bµi to¸n tÝnh logarit rêi r¹c theo modp lµ bµi to¸n t×m, víi mçi sè β ∈ * p Z ,mét sè a ( 1≤ a ≤ p -1) sao cho β = αa modp , tøc lµ a = logαβ (modp -1). Mét thuËt to¸n tÇm th−êng ®Ó gi¶i bµi to¸n nµy lµ thuËt to¸n duyÖt toµn bé c¸c sè a tõ 1 ®Õn p - 1, cho ®Õn khi t×m ®−îc a tho¶ m·n β = αa modp . TÊt nhiªn, thuËt to¸n nµy lµ kh«ng hiÖu qu¶ nÕu p lµ sè nguyªn tè rÊt lín. Mét biÕn d¹ng cña thuËt to¸n ®ã víi Ýt nhiÒu hiÖu qu¶ h¬n lµ thuËt to¸n Shanks sau ®©y: §Æt 1 m p ⎡ ⎤ = − ⎢ ⎥ ⎣ ⎦ . Ta t×m a d−íi d¹ng Râ rµng β = α ,0 , 1. a mj i j i m = + ≤ ≤ − a modp khi vµ chØ khi (mod ) mj i p α βα ≡ . Ta lËp hai danh s¸ch gåm c¸c cÆp ( , vµ c¸c cÆp víi j vµ i ch¹y tõ 0 ®Õn m - 1. Khi ph¸t hiÖn ra cã hai cÆp tõ hai danh s¸ch ®ã cã hai phÇn tö thø hai b»ng nhau lµ ta ®−îc kÕt qu¶ ®ã chÝnh lµ gi¸ trÞ log ) m j j α ( , ) i i βα− , a mj i = + αβ mµ ta cÇn t×m. ThuËt to¸n Shanks cã ®é phøc t¹p cì O(m) phÐp to¸n nh©n vµ O(m) bé nhí (ch−a kÓ O(m2 ) phÐp so s¸nh). Mét thuËt to¸n kh¸c, thuËt to¸n Polig-Hellman, th−êng ®−îc dïng cã hiÖu qu¶ trong tr−êng hîp p -1 chØ cã c¸c thõa sè nguyªn tè
  • 56.
    bÐ, cã néidung nh− sau: Gi¶ thiÕt r»ng p - 1 cã d¹ng ph©n tÝch chÝnh t¾c lµ 1 1 . i k c i i p p = − =∏ §Ó t×m a = logαβ (modp -1), ta t×m c¸c sè ai sao cho víi i = 1,...,k. Sau khi t×m ®−îc c¸c a mod i c i i a a p ≡ i nh− vËy, th× hÖ ph−¬ng tr×nh mod ( 1,..., ) i c i i x a p i ≡ = k − k − ,®−îc gi¶i theo ®Þnh lý sè d− Trung quèc, sÏ cho ta lêi gi¶i cÇn t×m. VËy, vÊn ®Ò lµ x¸c ®Þnh c¸c . VÊn ®Ò nµy ®−îc ph¸t biÓu l¹i nh− sau: Gi¶ sö q lµ mét −íc sè nguyªn tè cña p - 1, vµ q (mod 1) x a p ≡ mod ( 1,..., ) i c i i a p i = c ⏐ p - 1 nh−ng kh«ng cßn q c + 1 ⏐ p - 1 . Ta cÇn t×m x = a modq c . Ta biÓu diÔn x d−íi d¹ng sè q - ph©n nh− sau: 1 0 (0 1). c i i i i x x q x q − = = ≤ ≤ ∑ V× x = a modq c nªn a viÕt ®−îc d−íi d¹ng a = x + q c. . s , vµ v× 1 1(mod ) p p α − ≡ , nªn ta cã 0 ( 1) 1 1 1 ( ) (mod a q p x p p a p q q q p β α α α − − − − ≡ ≡ ≡ ). Ta ®Æt , vµ tÝnh lÇn l−ît , ®ång thêi so s¸nh víi ( 1)/ p q γ α − = 0 1 2 , , ,... γ γ γ ( 1)/ mod , p q p β − ta sÏ t×m ®−îc i sao cho ( 1)/ mod . i p q p γ β − ≡ Ta lÊy sè i ®ã lµ x0, tøc x0 = i . NÕu c = 1 th× x = x0 , ta t×m xong x . NÕu c >1 th× b»ng c¸ch ®Æt vµ 0 ' x β βα− = ' log 'mod c x q α β = ta dÔ thÊy r»ng 1 1 ' c i i i x x q − = =∑ . Tõ ®ã ta suy ra 2 1 ( 1) / ( 1)/ ' m p x q p q od . p β α − − ≡ T−¬ng tù nh− ë b−íc trªn, tÝnh lÇn l−ît , ®ång thêi so s¸nh víi ta sÏ t×m ®−îc x 0 1 2 , , ,... γ γ γ 2 ( 1)/ ' p q β − , 1. 53
  • 57.
    Cø lµm nh−vËy, ta sÏ t×m ®−îc dÇn tÊt c¶ c¸c gi¸ trÞ xi víi i = 0,1,...,c -1, tøc lµ tÝnh ®−îc x. Sau khi t×m ®−îc tÊt c¶ c¸c gi¸ trÞ x øng víi mäi −íc sè nguyªn tè q cña p , th× theo mét nhËn xÐt ë trªn, chØ cÇn gi¶i tiÕp mét hÖ ph−¬ng tr×nh ®ång d− bËc nhÊt theo c¸c m«®uyn tõng cÆp nguyªn tè víi nhau (b»ng ph−¬ng ph¸p sè d− Trung quèc), ta sÏ t×m ®−îc sè a cÇn t×m, a = logαβ theo modp. ThÝ dô: Cho p = 29 vµ α = 2. H·y tÝnh a =log 218 theo mod29. Ta cã p - 1 = 28 = 22 . 71 . Theo thuËt to¸n Polig-Hellman, ta t×m lÇn l−ît a mod 4 vµ a mod 7. Theo c¸c b−íc tÝnh to¸n nh− m« t¶ ë trªn, ta sÏ t×m ®−îc a mod 4 = 3 vµ a mod 7 =4 .Tõ ®ã gi¶i hÖ ph−¬ng tr×nh 3(mod 4), 4(mod7) x x ⎧ ≡ ⎪ ⎪ ⎨ ⎪ ≡ ⎪ ⎩ ta ®−îc nghiÖm x ≡ 11 (mod28), tøc ®−îc 11 = log 218 theo mod29. ThuËt to¸n Polig-Hellman cho ta mét c¸ch tÝnh logarit rêi r¹c kh¸ hiÖu qu¶, nh−ng chØ khi p -1 chØ cã c¸c thõa sè nguyªn tè bÐ. V× vËy, nÕu p -1 cã Ýt nhÊt mét thõa sè nguyªn tè lín th× thuËt to¸n ®ã khã ®−îc thùc hiÖn cã hiÖu qu¶, tøc trong tr−êng hîp ®ã bµi to¸n tÝnh logarit rêi r¹c theo modp vÉn lµ mét bµi to¸n khã. Mét líp c¸c sè nguyªn tè p mµ p - 1 cã Ýt nhÊt mét −íc sè nguyªn tè lín lµ líp c¸c sè nguyªn tè d¹ng p = 2q + 1, trong ®ã q lµ nguyªn tè. Nh÷ng sè nguyªn tè d¹ng ®ã ®−îc gäi lµ sè nguyªn tè Sophie Germain, cã vai trß quan träng trong viÖc x©y dùng mét líp kh¸ th«ng dông c¸c hÖ mËt m· cã kho¸ c«ng khai. Ng−êi ta còng ®· nghiªn cøu ph¸t triÓn nhiÒu thuËt to¸n kh¸c, c¶ thuËt to¸n tÊt ®Þnh, c¶ thuËt to¸n x¸c suÊt, ®Ó tÝnh logarit rêi r¹c, nh−ng ch−a cã thuËt to¸n nµo ®−îc chøng tá lµ cã ®é phøc t¹p tÝnh to¸n víi thêi gian ®a thøc. 54
  • 58.
  • 59.
    55 CH¦¥NG III C¸c hÖmËt m· khãa ®èi xøng 3.1. Mét sè hÖ mËt m· cæ ®iÓn. Trong ch−¬ng nµy ta sÏ giíi thiÖu mét sè hÖ mËt m· cã khãa ®èi xøng, tøc lµ nh÷ng hÖ mËt m· mµ khãa lËp mËt m· vµ khãa gi¶i mËt m· lµ tròng nhau, vµ v× vËy khãa mËt m· chung ®ã ph¶i ®−îc gi÷ bÝ mËt, chØ riªng hai ®èi t¸c (ng−êi lËp mËt m· ®Ó göi ®i vµ ng−ên nhËn mËt m· göi ®Õn) ®−îc biÕt mµ th«i. Trong suèt mét thêi kú lÞch sö dµi tõ thêi cæ ®¹i cho ®Õn vµi ba thËp niªn gÇn ®©y, c¸c ph−¬ng ph¸p mËt m· ®−îc sö dông trong thùc tÕ ®Òu lµ mËt m· kho¸ ®èi xøng, tõ hÖ mËt m· Ceasar ®· ®−îc dïng h¬n ngh×n n¨m tr−íc cho ®Õn c¸c hÖ mËt m· ®−îc sö dông víi sù trî gióp cña kü thuËt m¸y tÝnh hiÖn ®¹i trong thêi gian gÇn ®©y. Tr−íc hÕt ta h·y b¾t ®Çu víi mét sè hÖ mËt m· cæ ®iÓn. 3.1.1. M· chuyÓn dÞch (shift cipher) C¸c hÖ mËt m· dïng phÐp chuyÓn dÞch nãi trong môc nµy còng nh− nhiÒu hÖ mËt m· tiÕp sau ®Òu cã b¶ng ký tù b¶n râ vµ b¶ng ký tù b¶n m· lµ b¶ng ký tù cña ng«n ng÷ viÕt th«ng th−êng. V× b¶ng ký tù tiÕng ViÖt cã dïng nhiÒu dÊu phô lµm cho c¸ch x¸c ®Þnh ký tù khã thèng nhÊt, nªn trong tµi liÖu nµy ta sÏ lÊy b¶ng ký tù tiÕng Anh ®Ó minh ho¹, b¶ng ký tù nµy gåm cã 26 ký tù, ®−îc ®¸nh sè tõ 0 ®Õn 25 nh− tr×nh bµy ë tiÕt 1.2.1, ta cã thÓ ®ång nhÊt nã víi tËp Z26. Nh− vËy, s¬ ®å c¸c hÖ mËt m· chuyÓn dÞch ®−îc ®Þnh nghÜa nh− sau: S = (P , C , K , E , D ) , trong ®ã P = C = K = Z26 , c¸c ¸nh x¹ E vµ D ®−îc cho bëi:
  • 60.
    56 víi mäi K,x , y ∈ Z26 : E (K, x) = x +K mod26, D (K, y) = y - K mod26. C¸c hÖ mËt m· ®−îc x¸c ®Þnh nh− vËy lµ ®óng ®¾n, v× víi mäi K, x , y ∈ Z26 ta ®Òu cã: dK(eK(x)) = (x +K ) - K mod26 = x. C¸c hÖ mËt m· chuyÓn dÞch ®· ®−îc sö dông tõ rÊt sím, theo truyÒn thuyÕt, hÖ m· ®ã víi K =3 ®· ®−îc dïng bëi J. Caesar tõ thêi ®Õ quèc La m·, vµ ®−îc gäi lµ hÖ m· Caesar. ThÝ dô: Cho b¶n râ hengapnhauvaochieuthubay, chuyÓn d·y ký tù ®ã thµnh d·y sè t−¬ng øng ta ®−îc: x = 7 4 13 6 0 15 13 7 0 20 21 0 14 2 7 8 4 20 19 7 20 1 0 24. NÕu dïng thuËt to¸n lËp mËt m· víi kho¸ K = 13, ta ®−îc b¶n m· lµ: y = 20 17 0 19 13 2 0 20 13 7 8 13 1 15 20 21 17 7 6 20 7 14 13 11, chuyÓn d−íi d¹ng ký tù th«ng th−êng ta ®−îc b¶n mËt m· lµ: uratncaunhinbpuv rhguhonl . §Ó gi¶i b¶n mËt m· ®ã, ta chØ cÇn chuyÓn nã l¹i d−íi d¹ng sè (®Ó ®−îc d·y y), råi thùc hiÖn thuËt to¸n gi¶i m·, tøc trõ tõng sè h¹ng víi 13 (theo m«®uyn 26), ®−îc l¹i d·y x, chuyÓn thµnh d·y ký tù lµ ®−îc b¶n râ ban ®Çu. C¸c hÖ mËt m· chuyÓn dÞch tuy dÔ sö dông, nh−ng viÖc th¸m m· còng kh¸ dÔ dµng, sè c¸c kho¸ cã thÓ cã lµ 26; nhËn ®−îc mét b¶n m·, ng−êi th¸m m· chØ cÇn thö dïng lÇn l−ît tèi ®a lµ 26 kho¸ ®ã ®Ó gi¶i m·, ¾t sÏ ph¸t hiÖn ra ®−îc kho¸ ®· dïng vµ c¶ b¶n râ! 3.1.2. M· thay thÕ (substitution cipher). S¬ ®å c¸c hÖ mËt m· thay thÕ ®−îc ®Þnh nghÜa nh− sau: S = (P , C , K , E , D ) , trong ®ã P = C = Z26 , K lµ tËp hîp tÊt c¶ c¸c phÐp ho¸n vÞ trªn Z26 c¸c ¸nh x¹ E vµ D ®−îc cho bëi:
  • 61.
    víi mäi x∈ P , y ∈ C , π ∈ K lµ mét phÐp ho¸n vÞ trªn Z 1 ( ) ( ), ( ) ( ), e x x d y y π π π π − = = 26 . Ta th−êng ®ång nhÊt Z26 víi b¶ng ký tù tiÕng Anh, do ®ã phÐp ho¸n vÞ trªn Z26 còng ®−îc hiÓu lµ mét phÐp ho¸n vÞ trªn tËp hîp c¸c ký tù tiÕng Anh, thÝ dô mét phÐp ho¸n vÞ π ®−îc cho bëi b¶ng : a b c d e f g h i j k l m n o p q r x n y a h p o g z q w b t s f l r c s t u v w x y z v m u e k j d i Víi hÖ mËt m· thay thÕ cã kho¸ π, b¶n râ x = hengapnhauvaochieuthubay sÏ ®−îc chuyÓn thµnh b¶n mËt m· y = ghsoxlsgxuexfygzhumgunxd . ThuËt to¸n gi¶i m· víi kho¸ π, ng−îc l¹i sÏ biÕn y thµnh b¶n râ x. S¬ ®å hÖ mËt m· cã sè kho¸ cã thÓ b»ng sè c¸c phÐp ho¸n vÞ trªn tËp Z26 , tøc lµ 26! kho¸, ®ã lµ mét sè rÊt lín (26!> 4.1026 ). Do ®ã, viÖc duyÖt lÇn l−ît tÊt c¶ c¸c kho¸ cã thÓ ®Ó th¸m m· lµ kh«ng thùc tÕ, ngay c¶ dïng m¸y tÝnh. Tuy vËy, cã nh÷ng ph−¬ng ph¸p th¸m m· kh¸c hiÖu qu¶ h¬n, lµm cho c¸c hÖ mËt m· thay thÕ kh«ng thÓ ®−îc xem lµ an toµn. 3.1.3. M· apphin. S¬ ®å c¸c hÖ mËt m· apphin ®−îc ®Þnh nghÜa nh− sau: 57
  • 62.
    58 S = (P, C , K , E , D ) , trong ®ã P = C = Z26 , K = { (a,b) ∈ Z26 x Z26 ⏐ gcd(a, 26) = 1} , c¸c ¸nh x¹ E vµ D ®−îc cho bëi: eK(x ) = ax + b mod26, dK(y ) = a-1 (y - b) mod26, víi mäi x ∈ P , y ∈ C , K = (a, b) ∈ K . Cã ®iÒu kiÖn gcd (a, 26) = 1 lµ ®Ó b¶o ®¶m cã phÇn tö nghÞch ®¶o a-1 mod26 cña a , lµm cho thuËt to¸n gi¶i m· dK lu«n thùc hiÖn ®−îc. Cã tÊt c¶ φ(26) = 12 sè a ∈ Z26 nguyªn tè víi 26, ®ã lµ c¸c sè 1, 3, 5, 7 ,9, 11, 15, 17, 19, 21, 23, 25, vµ c¸c sè nghÞch ®¶o theo mod26 t−¬ng øng cña chóng lµ 1, 9, 21, 15, 3, 19, 7, 23, 11, 5, 17, 25. ThÝ dô víi b¶n râ hengapnhauvaochieuthubay, cã d·y sè t−¬ng øng lµ: x = 7 4 13 6 0 15 13 7 0 20 21 0 14 2 7 8 4 20 19 7 20 1 0 24. NÕu dïng hÖ mËt m· apphin víi kho¸ K=(5, 6) ta sÏ ®−îc b¶n mËt m· y = 15 0 19 10 6 3 19 15 6 2 7 6 24 16 15 20 0 2 23 15 2 11 6 22, chuyÓn sang dßng ký tù tiÕng Anh ta ®−îc b¶n mËt m· d−íi d¹ng patkgdtpgchgyqpuacxpclgw . V× cã 12 sè thuéc Z26 nguyªn tè víi 26, nªn sè c¸c kho¸ cã thÓ cã (do ®ã , sè c¸c hÖ mËt m· apphin) lµ b»ng 12x26 =312, mét con sè kh«ng lín l¾m nÕu ta sö dông m¸y tÝnh ®Ó thùc hiÖn viÖc th¸m m· b»ng c¸ch duyÖt lÇn l−ît tÊt c¶ c¸c kho¸ cã thÓ; nh− vËy, m· apphin còng kh«ng cßn ®−îc xem lµ m· an toµn ! 3.1.4. M· VigenÌre.
  • 63.
    S¬ ®å mËtm· nµy lÊy tªn cña Blaise de VigenÌre, sèng vµo thÕ kû 16. Kh¸c víi c¸c hÖ mËt m· ®· kÓ tr−íc, c¸c hÖ mËt m· VigenÌre kh«ng thùc hiÖn trªn tõng ký tù mét, mµ ®−îc thùc hiÖn trªn tõng bé m ký tù (m lµ sè nguyªn d−¬ng). S¬ ®å c¸c hÖ mËt m· VigenÌre ®−îc ®Þnh nghÜa nh− sau: S = (P , C , K , E , D ) , trong ®ã P = C = K = 26 m Z , c¸c ¸nh x¹ E vµ D ®−îc cho bëi: eK(x1,..., xm ) = ( x1+k1,...., xm+km ) mod26 dK(y1,..., ym ) = ( y1-k1 ,..., ym-km ) mod26 víi mäi x =(x1,..., xm ) ∈ P , y =(y1,..., ym ) ∈ C , K = (k1,...,km)∈ K . S¬ ®å m· VigenÌre cã thÓ ®−îc xem lµ më réng cña s¬ ®å m· chuyÓn dÞch, nÕu m· chuyÓn dÞch thùc hiÖn viÖc chuyÓn dÞch tõng ký tù mét th× m· VigenÌre thùc hiÖn ®ång thêi tõng bé m ký tù liªn tiÕp. ThÝ dô lÊy m = 6 vµ K = (2, 8, 15, 7, 4, 17). §Ó lËp mËt m· cho b¶n râ hengapnhauvaochieuthubay, ta còng chuyÓn nã thµnh d·y sè vµ t¸ch thµnh tõng ®o¹n 6sè liªn tiÕp: x = 7 4 13 6 0 15⏐ 13 7 0 20 21 0⏐ 14 2 7 8 4 20 ⏐19 7 20 1 0 24. (nÕu ®é dµi cña x kh«ng ph¶i lµ béi sè cña 6, ta cã thÓ qui −íc thªm vµo ®o¹n cuèi cña x mét sè phÇn tö nµo ®ã, ch¼ng h¹n lµ c¸c sè 0, ®Ó bao giê còng cã thÓ xem lµ x t¸ch ®−îc thµnh c¸c ®o¹n cã 6 sè liªn tiÕp). Céng theo mod26 c¸c sè trong tõng ®o¹n ®ã víi c¸c sè t−¬ng øng trong kho¸ K ta sÏ ®−îc b¶n mËt m· y = 9 12 2 13 4 6 ⏐15 15 15 1 25 17⏐ 16 10 22 15 8 11⏐ 21 15 9 8 4 15 chuyÓn sang d·y ký tù ta ®−îc b¶n m· lµ jmcnegpppbzrqkwpilvpjiep . 59
  • 64.
    Tõ b¶n m·®ã, dïng thuËt to¸n gi¶i m· t−¬ng øng ta l¹i thu ®−îc b¶n râ ban ®Çu. TËp K cã tÊt c¶ lµ 26m phÇn tö, do ®ã víi mçi m cã tÊt c¶ lµ 26m hÖ mËt m· VigenÌre kh¸c nhau (víi m = 6 th× sè ®ã lµ 308,915,776), duyÖt toµn bé chõng Êy kho¸ ®Ó th¸m m· b»ng tÝnh thñ c«ng th× khã, nh−ng nÕu dïng m¸y tÝnh ®ñ m¹nh th× còng kh«ng ®Õn nçi khã l¾m! 3.1.5. M· Hill. S¬ ®å mËt m· nµy ®−îc ®Ò xuÊt bëi Lester S. Hill n¨m 1929. Còng gièng nh− s¬ ®å m· VigenÌre, c¸c hÖ m· nµy ®−îc thùc hiÖn trªn tõng bé m ký tù liªn tiÕp, ®iÒu kh¸c lµ mçi ký tù cña b¶n m· ®−îc x¸c ®Þnh bëi mét tæ hîp tuyÕn tÝnh (trªn vµnh Z26) cña m ký tù trong b¶n râ. Nh− vËy, kho¸ sÏ ®−îc cho bëi mét ma trËn cÊp m, tøc lµ mét phÇn tö cña K ∈ Z m xm . §Ó phÐp biÕn ®æi tuyÕn tÝnh x¸c ®Þnh bëi ma trËn K cã phÐp nghÞch ®¶o, b¶n th©n ma trËn K còng ph¶i cã ma trËn nghÞch ®¶o K -1 theo mod26; mµ ®iÒu kiÖn cÇn vµ ®ñ ®Ó K cã nghÞch ®¶o lµ ®Þnh thøc cña nã, ký hiÖu detK, nguyªn tè víi 26. VËy, s¬ ®å mËt m· Hill ®−îc ®Þnh nghÜa lµ s¬ ®å S = (P , C , K , E , D ) , trong ®ã P = C = 26 m Z , K = { } 26 : gcd(det ,26) 1 m m K Z K × ∈ = , c¸c ¸nh x¹ E vµ D ®−îc cho bëi: eK(x1,..., xm ) = (x1,..., xm ).K mod26, dK(y1,..., ym ) = (y1,..., ym ). K -1 mod26 víi mäi x =(x1,..., xm ) ∈ P , y =(y1,..., ym ) ∈ C , K ∈ K . ThÝ dô : Chän m = 2, vµ K = . 11 8 3 7 ⎛ ⎞ ⎜ ⎟ ⎝ ⎠ 60
  • 65.
    Víi bé haiký tù x = (x1 ,x2) ta cã m· y = (y1 , y2).K ®−îc tÝnh bëi: y1 = 11x1 + 3x2 mod26 y2 = 8x1 + 7x2 mod26 . Ta lÊy l¹i b¶n râ hengapnhauvaochieuthubay, ta còng chuyÓn nã thµnh d·y sè vµ t¸ch thµnh tõng ®o¹n 2 sè liªn tiÕp: x = 7 4 ⏐13 6⏐ 0 15⏐ 13 7 ⏐0 20⏐ 21 0⏐ 14 2 ⏐7 8⏐ 4 20 ⏐19 7⏐ 20 1⏐ 0 24. LËp mËt m· cho tõng ®o¹n hai sè liªn tiÕp, råi nèi ghÐp l¹i ta ®−îc y = 11 6⏐5 16⏐ 19 1⏐8 21⏐8 2⏐23 12⏐4 22⏐23 8⏐0 16⏐22 19⏐15 11⏐20 12. Vµ tõ ®ã ta ®−îc b¶n mËt m· d−íi d¹ng d·y ký tù lµ lgfqtbivicxmewxiaqwtplum . Chó ý r»ng 61 ⎞ ⎟ ⎠ K -1 = , 1 11 8 7 18 (mod 26) 3 7 23 11 − ⎛ ⎞ ⎛ = ⎜ ⎟ ⎜ ⎝ ⎠ ⎝ vµ gi¶i m· b»ng c¸ch nh©n tõng ®o¹n hai sè liªn tiÕp cña y víi K -1 ta sÏ ®−îc l¹i d·y x, vµ tõ ®ã ®−îc l¹i b¶n râ. Víi mçi sè m cho tr−íc, sè c¸c kho¸ cã thÓ cã lµ b»ng sè c¸c ma trËn K cã detK nguyªn tè víi 26. Ta kh«ng cã c«ng thøc ®Ó tÝnh con sè ®ã, tuy biÕt r»ng khi m lín th× sè ®ã còng lµ rÊt lín, vµ tÊt nhiªn viÖc th¸m m· b»ng c¸ch duyÖt lÇn l−ît toµn bé c¸c hÖ m· Hill cã cïng sè m lµ kh«ng kh¶ thi. MÆc dï vËy, tõ l©u ng−êi ta còng ®· t×m ®−îc nh÷ng ph−¬ng ph¸p th¸m m· kh¸c ®èi víi hÖ m· Hill mét c¸ch kh¸ hiÖu qu¶ mµ ta sÏ giíi thiÖu trong mét phÇn sau. 3.1.6. M· ho¸n vÞ. C¸c hÖ m· ho¸n vÞ còng ®−îc thùc hiÖn trªn tõng bé m ký tù liªn tiÕp, nh−ng b¶n mËt m· chØ lµ mét ho¸n vÞ cña c¸c ký tù trong tõng bé m ký tù cña b¶n râ. Ta ký hiÖu Sm lµ tËp hîp tÊt c¶ c¸c phÐp ho¸n vÞ cña tËp hîp { 1,2, ... ,m }. S¬ ®å c¸c phÐp m· ho¸n vÞ ®−îc cho bëi S = (P , C , K , E , D ) ,
  • 66.
    trong ®ã P= C = 26 m Z , K = Sm , c¸c ¸nh x¹ E vµ D ®−îc cho bëi: eK(x1,..., xm ) = (1) ( ) ( ,..., ), m x x π π dK(y1,..., ym ) = víi mäi x =(x 1 1 (1) ( ) ( ,..., ), m y y π π − − 1,..., xm ) ∈ P , y =(y1,..., ym ) ∈ C , K = π ∈ Sm , π-1 lµ ho¸n vÞ nghÞch ®¶o cña π . ThÝ dô: Chän m = 6 vµ phÐp ho¸n vÞ π ∈S6 ®−îc cho bëi: i = 1 2 3 4 5 6 ( π (i) = 3 5 1 6 4 2 . Khi ®ã phÐp ho¸n vÞ π -1 sÏ lµ j = 1 2 3 4 5 6 π π -1 (j ) = 3 6 1 5 2 4 . Víi b¶n râ hengapnhauvaochieuthubay, tøc còng lµ víi x = 7 4 13 6 0 15⏐ 13 7 0 20 21 0⏐ 14 2 7 8 4 20 ⏐19 7 20 1 0 24. ta sÏ cã b¶n m· t−¬ng øng lµ: y = 13 0 7 15 6 4 0 21 13 0 20 7 7 4 14 20 8 2 20 0 19 24 1 7 chuyÓn thµnh d·y ký tù lµ nahpgeavnauhheouicuatybh . Dïng cho tõng bé 6 ký tù liªn tiÕp cña b¶n mËt m· nµy (tøc lµ cña y) phÐp gi¶i m· dK ta sÏ thu l¹i ®−îc x vµ b¶n râ ban ®Çu. Chó ý r»ng m· ho¸n vÞ lµ mét tr−êng hîp riªng cña m· Hill. Thùc vËy, cho phÐp ho¸n vÞ π trªn {1,2,...,m } , ta x¸c ®Þnh ma trËn Kπ = (ki j ) víi ki j = 1 nÕu i = π(j ), vµ = 0 nÕu ng−îc l¹i, th× dÔ thÊy r»ng m· Hill víi kho¸ Kπ cho cïng mét phÐp mËt m· nh− m· lo¸n vÞ víi kho¸ π. Víi mçi m cho tr−íc, sè c¸c hÖ mËt m· ho¸n vÞ cã thÓ cã lµ m ! 62
  • 67.
    3.2. Th¸m m·®èi víi c¸c hÖ mËt m· cæ ®iÓn. 3.2.1. Mét vµi nhËn xÐt chung. Nh− ®· tr×nh bµy trong tiÕt 1.5 ch−¬ng 1, môc ®Ých cña viÖc th¸m m· lµ dùa vµo th«ng tin vÒ b¶n mËt m· cã thÓ thu thËp ®−îc trªn ®−êng truyÒn tin mµ ph¸t hiÖn l¹i ®−îc b¶n râ cña th«ng b¸o. V× s¬ ®å cña hÖ mËt m· ®−îc sö dông th−êng khã mµ gi÷ ®−îc bÝ mËt, nªn ta th−êng gi¶ thiÕt th«ng tin xuÊt ph¸t cña bµi to¸n th¸m m· lµ s¬ ®å hÖ mËt m· ®−îc sö dông vµ b¶n mËt m· cña th«ng b¸o, nhiÖm vô cña th¸m m· lµ t×m b¶n râ cña th«ng b¸o ®ã. Ngoµi c¸c th«ng tin xuÊt ph¸t ®ã, tuú tr−êng hîp cô thÓ, cßn cã thÓ cã thªm c¸c th«ng tin bæ sung kh¸c, v× vËy bµi to¸n th¸m m· ®−îc ph©n thµnh c¸c lo¹i bµi to¸n kh¸c nhau nh−: th¸m m· chØ dùa vµo b¶n m·, th¸m m· khi biÕt c¶ b¶n râ, th¸m m· khi cã b¶n râ ®−îc chän, th¸m m· khi cã b¶n m· ®−îc chän (xem môc 1.5, ch−¬ng 1). 63 m Trong tiÕt nµy ta sÏ tr×nh bµy mét vµi ph−¬ng ph¸p th¸m m· ®èi víi c¸c hÖ mËt m· cæ ®iÓn m« t¶ trong tiÕt tr−íc. Vµ ta còng gi¶ thiÕt c¸c b¶n râ còng nh− b¶n m· ®Òu ®−îc x©y dùng trªn b¶ng ký tù tiÕng Anh, vµ h¬n n÷a c¸c th«ng b¸o lµ c¸c v¨n b¶n tiÕng Anh. Nh− vËy, ta lu«n cã P = C = Z26 hay 26 Z , vµ cã thªm th«ng tin lµ c¸c b¶n râ tu©n theo c¸c qui t¾c tõ ph¸p vµ có ph¸p cña ng«n ng÷ tiÕng Anh. §©y lµ mét c¨n cø quan träng cña c¸c ph−¬ng ph¸p th¸m m· ®èi víi c¸c hÖ mËt m· cæ ®iÓn. TiÕc lµ viÖc dïng mËt m· ®Ó truyÒn ®−a th«ng tin tiÕng ViÖt kh«ng ®Ó l¹i cho ta nhiÒu t− liÖu ®Ó nghiªn cøu, vµ nh÷ng nghiªn cøu vÒ tõ ph¸p vµ có ph¸p còng ch−a cho ta nh÷ng qui t¾c thèng kª x¸c suÊt ®ñ tin cËy, nªn trong tµi liÖu nµy ta ch−a tr×nh bµy ®−îc trªn c¸c thÝ dô mËt m· b»ng ng«n ng÷ ViÖt, ta ®µnh t¹m m−în c¸c thÝ dô b»ng v¨n b¶n tiÕng Anh ®Ó minh ho¹, mong ®−îc b¹n ®äc bæ sung sau. C¸c kÕt qu¶ chñ yÕu ®−îc sö dông nhiÒu nhÊt trong th¸m m· lµ c¸c qui t¾c thèng kª tÇn suÊt xuÊt hiÖn c¸c ký tù hay c¸c bé ®«i, bé ba,...ký tù liªn tiÕp trong c¸c v¨n b¶n tiÕng Anh. Trªn c¬ së ph©n tÝch c¸c sè liÖu thèng kª tõ mét l−îng rÊt lín c¸c v¨n b¶n th− tõ, s¸ch vë, b¸o chÝ, v.v... ng−êi ta ®·
  • 68.
    64 thu ®−îc nh÷ngkÕt qu¶ mµ c¸c t¸c gi¶ Beker vµ Piper ®· tæng hîp l¹i nh− sau: Ph©n bè x¸c suÊt xuÊt hiÖn cña c¸c ký tù ®−îc s¾p xÕp theo thø tù: 1. Ký tù e cã x¸c suÊt xuÊt hiÖn cao nhÊt lµ 0. 127, 2. C¸c ký tù t, a, o, i, n, s, h, r cã x¸c suÊt tõ 0. 060 ®Õn 0. 090, 3. C¸c ký tù d , l cã x¸c suÊt kho¶ng 0. 04, 4. C¸c ký tù c, u, m,w, f, g, y, p, b cã x¸c suÊt tõ 0. 015 ®Õn 0.028, 5. C¸c ký tù v, k, j, x, q, z cã x¸c suÊt d−íi 0. 01. Ba m−¬i bé ®«i ký tù cã x¸c suÊt xuÊt hiÖn cao nhÊt lµ (kÓ tõ cao xuèng): th, he, in, er, an, re, ed, on, es, st, en, at, to, nt, ha, nd, ou, ea, ng, as, or, ti, is, et, it, ar, te, se, hi, of. M−êi hai bé ba ký tù cã x¸c suÊt xuÊt hiÖn cao nhÊt lµ: the, ing, and, her, ere, ent, tha, nth, was, eth, for, dth. Sau ®©y lµ b¶ng ph©n bè x¸c suÊt cña tÊt c¶ c¸c ký tù: A (0) 0.082 B (1) 0.015 C (2) 0.028 D (3) 0.043 E (4) 0.127 F (5) 0. 022 G (6) 0.020 H (7) 0. 061 I (8) 0.070 J (9) 0.002 K (10) 0.008 L (11) 0.040 M (12) 0.024 N (13) 0.067 O (14) 0.075 P (15) 0.019 Q (16) 0.001 R (17) 0.060 S (18) 0.063 T (19) 0.091 U (20) 0.028 V (21) 0.010 W (22) 0.023 X (23) 0.001 Y (24) 0.020 Z (25) 0.001. 3.2.2. Th¸m m· ®èi víi m· apphin. Kho¸ m· apphin cã d¹ng K = (a,b) víi a, b ∈ Z26 vµ gcd(a,26)=1. Ký tù m· y vµ ký tù b¶n râ x t−¬ng øng cã quan hÖ y = a.x + b mod 26. Nh− vËy, nÕu ta biÕt hai cÆp (x, y) kh¸c nhau lµ ta cã ®−îc hai ph−¬ng tr×nh tuyÕn tÝnh ®Ó tõ ®ã t×m ra gi¸ trÞ hai Èn sè a,b, tøc lµ t×m ra K.
  • 69.
    65 ThÝ dô: Tacã b¶n mËt m·: fmxvedkaphferbndkrxrsrefmorudsdkdvshvufedkaprkdlyevlrhhrh . H·y t×m kho¸ mËt m· vµ b¶n râ t−¬ng øng. Ta thÊy trong b¶n mËt m· nãi trªn, r xuÊt hiÖn 8 lÇn, d 7 lÇn, e, k, h mçi ký tù 5 lÇn, f, s, v mçi ký tù 4 lÇn, v.v...; vËy cã thÓ ph¸n ®o¸n r lµ m· cña e , d lµ m· cña t, khi ®ã cã 4a + b = 17 mod26, 19a + b = 3 mod26, gi¶i ra ®−îc a = 6 , b = 19. V× gcd(a, 26) = 2 ≠ 1, nªn (a, b) kh«ng thÓ lµ kho¸ ®−îc, ph¸n ®o¸n trªn kh«ng ®óng. Ta l¹i thö chon mét ph¸n ®o¸n kh¸c: r lµ m· cña e, h lµ m· cña t . Khi ®ã cã: 4 4a + b = 17 mod26, 19a + b = 7 mod26, ta gi¶i ra ®−îc a = 3, b = 5. V× (a, 26) = 1 nªn K = (3,5) cã thÓ lµ khãa cÇn t×m. Khi ®ã phÐp lËp mËt m· lµ eK(x ) = 3x +5 mod26, vµ phÐp gi¶i m· t−¬ng øng lµ dK (y) = 9) = 9y - 19 mod26. Dïng phÐp gi¶i m· ®ã cho b¶n m· ta sÏ ®−îc (d−íi d¹ng ký tù) b¶n râ lµ: algorithmsarequitegeneraldefinitionsofarithmeticprocesses . Ta cã thÓ kÕt luËn kho¸ ®óng lµ K = (3, 5) vµ dßng trªn lµ b¶n râ cÇn t×m. 3.2.3. Th¸m m· ®èi víi m· VigenÌre. M· VigenÌre cã thÓ coi lµ m· chuyÓn dÞch ®èi víi tõng bé m ký tù. Kho¸ m· lµ mét bé K = (k1,..., km) gåm m sè nguyªn mod 26. ViÖc th¸m m· gåm hai b−íc: b−íc thø nhÊt x¸c ®Þnh ®é dµi m, b−íc thø hai x¸c ®Þnh c¸c sè k1,..., km. Cã hai ph−¬ng ph¸p ®Ó x¸c ®Þnh ®é dµi m : phÐp thö Kasiski vµ ph−¬ng ph¸p dïng chØ sè trïng hîp.
  • 70.
    PhÐp thö Kasiski(®Ò xuÊt tõ 1863). PhÐp thö dùa vµo nhËn xÐt r»ng hai ®o¹n trïng nhau cña b¶n râ sÏ ®−îc m· ho¸ thµnh hai ®o¹n trïng nhau cña b¶n m·, nÕu kho¶ng c¸ch cña chóng trong v¨n b¶n râ (kÓ tõ ký tù ®Çu cña ®o¹n nµy ®Õn ký tù ®Çu cña ®o¹n kia) lµ béi sè cña m. MÆt kh¸c, nÕu trong b¶n m·, cã hai ®o¹n trïng nhau vµ cã ®é dµi kh¸ lín (≥ 3 ch¼ng h¹n) th× rÊt cã kh¶ n¨ng chóng lµ m· cña hai ®o¹n trïng nhau trong b¶n râ. V× vËy, ta thö t×m mét ®o¹n m· (cã ba ký tù trë lªn) xuÊt hiÖn nhiÒu lÇn trong b¶n m·, tÝnh kho¶ng c¸ch cña c¸c lÇn xuÊt hiÖn ®ã, ch¼ng h¹n ®−îc d1,d2...,dt ; khi ®ã ta cã thÓ ph¸n ®o¸n m = d = gcd(d1, d2,..., dt )- −íc sè chung lín nhÊt cña d1, d2..., dt ; hoÆc m lµ −íc sè cña d. Ph−¬ng ph¸p dïng chØ sè trïng hîp: (®Þnh nghÜa chØ sè trïng hîp do W.Friedman ®−a ra n¨m 1920). §Þnh nghÜa 3.1. Cho x = x1, x2... xn lµ mét d·y gåm n ký tù. X¸c suÊt cña viÖc hai phÇn tö cña x trïng nhau ®−îc gäi lµ chØ sè trïng hîp cña x , ký hiÖu lµ IC(x). Ký hiÖu f0, f1,..., f25 lÇn l−ît lµ tÇn suÊt xuÊt hiÖn cña a, b, ... ,z trong x, ta cã: ( ) ( ) 25 0 25 2 0 2 ( 1 ( ) ( 1) i i f i i i C n f f I x n n = = ) + ∑ = = + ∑ . Gi¶ sö x lµ mét d·y ký tù (tiÕng Anh). Ta cã thÓ hy väng r»ng: IC(x) ≈ 25 2 0 i i p = ∑ = 0,065 , trong ®ã pi lµ x¸c suÊt cña ký tù øng víi sè hiÖu i cho bëi b¶ng ph©n bè x¸c suÊt c¸c ký tù (trang 61) NÕu x lµ mét d·y ký tù hoµn toµn ngÉu nhiªn th× ta cã: IC ≈ 26. (1/26)2 = 1/26 = 0,038 . 66
  • 71.
    67 ( Dùa vµo c¸c®iÒu nãi trªn, ta cã ph−¬ng ph¸p ®o¸n ®é dµi m cña m· VigenÌre nh− sau: Cho b¶n m· y = y1y2..., yn. Ta viÕt l¹i y theo b¶ng cã m (m ≥ 1) hµng nh− sau: y = y1 ym+1..... ytm+1 y2 ym+2..... ytm+2 . .......................... ym yem..... y(tm+1)m nghÜa lµ viÕt lÇn l−ît theo c¸c cét m ký tù cho ®Õn hÕt. Ta ký hiÖu y1, y2,..., ym lµ c¸c x©u ký tù theo m hµng trong b¶ng ®ã. Chó ý r»ng c¸c ký tù ë mçi hµng yi ®Òu thu ®−îc tõ c¸c ký tù ë v¨n b¶n gèc b»ng cïng mét phÐp dÞch chuyÓn nÕu m ®óng lµ ®é dµi cña kho¸, do ®ã nÕu m lµ ®é dµi cña kho¸ th× ta cã thÓ hy väng r»ng víi mäi i, 1 ≤ i ≤ m: IC yi) ≈ 0,065 . §Ó ®o¸n ®é dµi m, ta lÇn l−ît chia y theo c¸ch trªn thµnh m = 1, 2, 3... hµng, vµ tÝnh c¸c IC(yi) (1 ≤ i ≤ m), cho ®Õn khi nµo ®−îc mét sè m mµ víi mäi i, 1 ≤ i ≤ m, ®Òu cã IC(yi) ≈ 0,065 th× ta cã thÓ ch¾c m lµ ®é dµi cña kho¸. ThÝ dô: Cho b¶n m· chreevoahmaeratbiaxxwtnxbeeophbsbqmqeqerbwrvxuoakxa osxxweahbwgjmmqmnkgrfvgxwtrzxwiaklxfpskautemndemg tsxmxbtuiadngmgpsrelxnjelxvrvprtulhdnqwtwdtygbphxtfalj hasvbfxngllchrzbwelekmsjiknbhwrignmgjsglxfeyphagnbieqjt mrvlcrremndglxrrimgnsnrwchrqhaeyevtaqebbipeewevkakoe wadremxmtbhhchrtkdnvrzchrclqohpwqaiiwxnrmgwoiifkee. Dïng phÐp thö Kasiski, ta nhËn thÊy r»ng chr xuÊt hiÖn 5 lÇn, kho¶ng c¸ch cña c¸c lÇn xuÊt hiÖn liªn tiÕp lµ 165, 70, 50, 10. ¦íc sè
  • 72.
    chung cña c¸csè ®ã lµ 5. VËy ta cã thÓ ph¸n ®o¸n ®é dµi kho¸ m· lµ 5. Dïng ph−¬ng ph¸p chØ sè trïng hîp, víi m = 1 ta cã mét chØ sè trïng hîp lµ 0,045; víi m = 2 cã hai chØ sè lµ 0,046 vµ 0,041; víi m = 3 cã ba chØ sè lµ 0,043; 0,050 vµ 0,047 ; víi m = 4 cã bèn chØ sè lµ 0,042; 0,039; 0,046 vµ 0,043; víi m = 5, ta thu ®−îc n¨m chØ sè lµ 0,063; 0,068; 0,069; 0,061 vµ 0,072, ®Òu kh¸ gÇn víi 0,065. VËy cã thÓ ph¸n ®o¸n ®é dµi kho¸ lµ 5. C¶ hai ph−¬ng ph¸p cho kÕt qu¶ nh− nhau. B©y giê ®Õn b−íc thø hai lµ x¸c ®Þnh c¸c gi¸ trÞ k1, k2,...km. Ta cÇn mét kh¸i niÖm míi lµ chØ sè trïng hîp t−¬ng hç, ®−îc ®Þnh nghÜa nh− sau: §Þnh nghÜa 3.2. Gi¶ sö x = x1x2... xn vµ y = y1y2... yn lµ hai d·y ký tù cã ®é dµi n vµ n'. ChØ sè trïng hîp t−¬ng hç cña x vµ y, ký hiÖu MIC(x,y), ®−îc ®Þnh nghÜa lµ x¸c suÊt cña viÖc mét phÇn tö cña x trïng víi mét phÇn tö cña y. Ký hiÖu 0 1 25 , ,..., f f f vµ ' ' ' 0 1 25 , ,..., f f f lµ tÇn suÊt xuÊt hiÖn cña a, b,...,z trong x vµ y t−¬ng øng. Khi ®ã, ta cã: MIC(x,y) = 25 ' 0 . . ' i i i f f n n = ∑ . B©y giê víi m ®· x¸c ®Þnh, ta viÕt b¶n m· y lÇn l−ît theo tõng cét ®Ó ®−îc m hµng y1,...ym nh− ë phÇn trªn. Ta t×m kho¸ m· K = (k1,k2,...km). Gi¶ sö x lµ b¶n râ vµ x1,...,xm lµ c¸c phÇn b¶n râ t−¬ng øng víi y1,...,ym. Ta cã thÓ xem ph©n bè x¸c suÊt cña c¸c ký tù trªn x, vµ còng trªn c¸c x1,..., xm lµ xÊp xØ víi ph©n bè x¸c suÊt cña c¸c ký tù trªn v¨n b¶n tiÕng Anh nãi chung. Do ®ã, x¸c suÊt cña viÖc mét ký tù ngÉu 68
  • 73.
    nhiªn cña yib»ng a lµ i k p− , b»ng b lµ 1 i k p − , v.v... Vµ ta cã thÓ ®¸nh gi¸ 25 25 0 0 ( , ) . . . i j i C i j h k h k h h k k h h MI y y p p p p − − + − = = ≈ = ∑ ∑ j §¹i l−îng ®ã chØ phô thuéc vµo ki - kj, ta gäi lµ dÞch chuyÓn t−¬ng ®èi cña yi vµ yj. Ta chó ý r»ng biÓu thøc: 25 0 . h h l h p p + = ∑ cã gi¸ trÞ lín nhÊt khi l = 0 lµ 0,065, vµ cã gi¸ trÞ biÕn thiªn gi÷a 0,031 vµ 0,045 víi mäi l > 0 . NhËn xÐt r»ng yj ph¶i dÞch chuyÓn l = ki - kj b−íc (hay dÞch chuyÓn l ký tù trong b¶ng ch÷ c¸i) ®Ó ®−îc yi , nªn nÕu ký hiÖu yj g lµ dÞch chuyÓn g b−íc cña yj , th× ta cã hy väng khi tÝnh lÇn l−ît c¸c ®¹i l−îng MIC(yi,yj g ) víi 0 ≤ g ≤ 25, ta sÏ ®¹t ®−îc mét gi¸ trÞ xÊp xØ 0,065 víi g = l, vµ c¸c gi¸ trÞ kh¸c ®Òu ë kho¶ng gi÷a 0,031 vµ 0,045. §iÒu ®ã cho ta mét ph−¬ng ph¸p ®Ó −íc l−îng c¸c dÞch chuyÓn ki - kj , tøc lµ ®−îc mét sè ph−¬ng tr×nh d¹ng ki - kj = l, tõ ®ã gióp ta tÝnh ra c¸c gi¸ trÞ k1, k2,..., km. Trong thÝ dô cña b¶n m· ®ang xÐt, ta tÝnh ®−îc c¸c gi¸ trÞ MIC(yi , yj g ) víi 1 ≤ i ≤ j ≤ 5, 0 ≤ g ≤ 25, nh− trong b¶ng ë trang sau ®©y (trong b¶ng ®ã, ë bªn ph¶i mçi cÆp (i, j ) lµ mét ng¨n gåm cã 26 gi¸ trÞ cña MIC(yi , yj g ) øng víi c¸c gi¸ trÞ cña g = 0,1,2,..., 25). Nh×n b¶ng ®ã, ta thÊy c¸c gi¸ trÞ MIC(yi , yj g ) xÊp xØ 0.065 (nh− ®−îc in ®Ëm vµ g¹ch d−íi ë trong b¶ng) øng víi c¸c bé gi¸ trÞ (i, j,g ) lÇn l−ît b»ng (1,2,9), (1,5,16), (2,3,13), (2,5,7), (3,5,20) vµ (4,5,11). 69
  • 74.
    70 i j Gi¸trÞ cña MIC(yi , yj g ) 1 2 .028 .027 .028 .034 .039 .037 .026 .025 .052 .068 .044 .026 .037 .043 .037 .043 .037 .028 .041 .041 .034 .037 .051 .045 .042 .036 1 3 .039 .033 .040 .034 .028 .053 .048 .033 .029 .056 .050 .045 .039 .040 .036 .037 .032 .027 . 037 .036 .031 .037 .055 .029 .024 .037 1 4 .034 .043 .025 .027 .038 .049 .040 .032 .029 .034 .039 .044 .044 .034 .039 .045 .044 .037 .055 .047 .032 .027 .039 .037 .039 .035 1 5 .043 .033 .028 .046 .043 .044 .039 .031 .026 .030 .036 .040 .041 .024 .019 .048 .070 .044 .028 .038 .044 .043 .047 .033 .026 .046 2 3 .046 .048 .041 .032 .036 .035 .036 030 .024 .039 .034 .029 .040 .067 .041 .033 .037 .045 .033 .033 .027 .033 .045 .052 .042 .030 2 4 .046 .034 .043 .044 .034 .031 .040 .045 040 .048 .044 .033 .024 .028 .042 .039 .026 .034 .050 .035 ,032 .040 .056 .043 .028 .028 2 5 .033 .033 .036 .046 .026 .018 .043 .080 .050 .029 .031 .045 .039 .037 .027 .026 .031 .039 .040 .037 .041 .046 .045 .043 .035 .030 3 4 .038 .036 .040 .033 .036 .060 .035 .041 .029 .058 .035 .035 .034 .053 .030 .032 .035 .036 .036 .028 .046 .032 .051 .032 .034 .030 3 5 .035 .034 .034 .036 .030 .043 .043 .050 .025 .041 .051 .050 .035 .032 .033 .033 .052 .031 .027 .030 .072 .035 .034 .032 .043 .027 4 5 .052 .038 .033 .038 .041 .043 .037 .048 .028 .028 .036 .061 .033 .033 .032 .052 .034 .027 .039 .043 .033 .027 .030 .039 .048 .035 Tõ ®ã ta cã c¸c ph−¬ng tr×nh (theo mod26): k1 - k2 = 9 k2 - k5 = 7 k1 - k5 = 16 k3 - k5 = 20 k2 - k3 = 13 k4 - k5 = 11 . HÖ ph−¬ng tr×nh ®ã chØ cã 4 ph−¬ng tr×nh ®éc lËp tuyÕn tÝnh, mµ cã 5 Èn sè, nªn lêi gi¶i phô thuéc mét tham sè, ta chän lµ k1, vµ ®−îc
  • 75.
    (k1, k2, k3,k4, k5) = (k1, k1 + 17, k1 + 4, k1 + 21, k1 + 10)mod26. Thö víi c¸c gi¸ trÞ cã thÓ cña k1 (0 ≤ k1 ≤ 26), cuèi cïng ta cã thÓ t×m ®−îc b¶n râ nh− sau ®©y víi kho¸ lµ JANET (k1 = 9): the almond tree was in tentative blossom the days were longer often ending with magnificent evenings of corrugated pink skies the hunting season was over with hounds and guns put away for six months the vineyards were busy again as the well organized farmers treated their vines and the more lackadaisical neighbors hurried to do the pruning they should have done in november. 3.2.4. Th¸m m· ®èi víi m· Hill. MËt m· Hill khã bÞ kh¸m ph¸ bëi viÖc th¸m m· chØ dùa vµo b¶n m·, nh−ng l¹i lµ dÔ bÞ kh¸m ph¸ nÕu cã thÓ sö dông phÐp th¸m m· kiÓu biÕt c¶ b¶n râ. Tr−íc hÕt ta gi¶ thiÕt lµ ®· biÕt gi¸ trÞ m. Môc ®Ých cña th¸m m· lµ ph¸t hiÖn ®−îc kho¸ mËt m· K, trong tr−êng hîp m· Hill lµ mét ma trËn cÊp m cã c¸c thµnh phÇn trong Z26. Ta chän mét b¶n râ cã chøa Ýt nhÊt m bé m kh¸c nhau c¸c ký tù: 71 m 1 11 1 1 ( ,..., ),....., ( ,..., ), m m m m x x x x x x = = vµ gi¶ thiÕt biÕt m· t−¬ng øng cña chóng lµ: 1 11 1 1 ( ,..., ),...., ( ,..., ). m m m m y y y y y y m = = Ta ký hiÖu X vµ Y lµ hai ma trËn cÊp m , X=(xi j ), Y= (yi j ). Theo ®Þnh nghÜa m· Hill, ta cã ph−¬ng tr×nh Y =X.K. NÕu c¸c xi ®−îc chän sao cho ma trËn X cã nghÞch ®¶o X-1 th× ta t×m ®−îc K = X-1 .Y , tøc lµ t×m ®−îc kho¸ cña hÖ m· ®−îc sö dông. ThÝ dô: Gi¶ sö m· Hill ®−îc sö dông cã m =2, vµ ta biÕt b¶n râ friday cïng b¶n m· t−¬ng øng pqcfku. Nh− vËy ta biÕt
  • 76.
    eK(5,17) =(15,16), eK(8,3)=(2,5), vµ eK(0,24) =(10,20). Tõ hai ph−¬ng tr×nh ®Çu ta ®−îc 15 16 5 17 . , 2 5 8 3 K ⎛ ⎞ ⎛ ⎞ = ⎜ ⎟ ⎜ ⎟ ⎝ ⎠ ⎝ ⎠ 72 ⎟ i tõ ®ã ®−îc K = . Víi K ®ã ph−¬ng tr×nh thø ba còng nghiÖm ®óng. 7 19 8 3 ⎛ ⎞ ⎜ ⎝ ⎠ Trë l¹i víi vÊn ®Ò x¸c ®Þnh m. NÕu m kh«ng qua lín, ta cã thÓ thö c¸ch trªn lÇn l−ît víi m = 2,3,4,... cho ®Õn khi t×m ®−îc kho¸, vµ kho¸ K xem lµ t×m ®−îc nÕu ngoµi m cÆp bé m (x1,y1),..., (xm , ym) dïng ®Ó t×m kho¸, K vÉn nghiÖm ®óng víi c¸c cÆp bé m kh¸c mµ ta cã thÓ chän ®Ó thö. 3.3. MËt m· theo dßng vµ c¸c d·y sè gi¶ ngÉu nhiªn. 3.3.1. MËt m· theo dßng. C¸c hÖ mËt m· ®−îc xÐt trong c¸c tiÕt trªn ®Òu thuéc lo¹i mËt m· theo khèi, v¨n b¶n râ ®−îc chia thµnh tõng khèi vµ viÖc lËp mËt m· cho v¨n b¶n ®ã ®−îc thùc hiÖn cho tõng khèi råi sau ®ã nèi ghÐp l¹i, lËp mËt m· cho tÊt c¶ c¸c khèi ®Òu theo cïng mét kho¸ chung K. Víi c¸ch lËp mËt m· theo dßng, theo m« t¶ trong tiÕt 1.2, c¸c khoa dïng cho c¸c khèi v¨n b¶n nãi trªn cã thÓ kh¸c nhau, do ®ã, cïng víi s¬ ®å mËt m· gèc, ta cßn cÇn cã mét bé s nh dßng kho¸ ®Ó víi mçi mÇm kho¸ s cho tr−íc nã sinh ra mét dßng kho¸ K1K2K3..., mçi Ki dïng ®Ó lËp mËt m· cho khèi xi cña v¨n b¶n. Mçi tõ kho¸ Ki , ngoµi viÖc phô thuéc vµo mÇm kho¸ s cßn cã thÓ phô thuéc vµo ®o¹n tõ kho¸ K1...Ki-1 ®· ®−îc sinh ra tr−íc ®ã vµ c¶ vµo c¸c yÕu tè kh¸c, ch¼ng h¹n nh− ®o¹n v¨n b¶n x1...xi-1 ®· ®−îc lËp mËt m· tr−íc ®ã. Nh− vËy, ta cã thÓ ®Þnh nghÜa l¹i nh− sau: Mét s¬ ®å hÖ mËt m· theo dßng ®−îc cho bëi mét bé S = (P , C , R, K , F, E , D ) (1)
  • 77.
    73 f f tháa m·n c¸c®iÒu kiÖn sau ®©y: P lµ mét tËp h÷u h¹n c¸c ký tù b¶n râ, C lµ mét tËp h÷u h¹n c¸c ký tù b¶n m·, R lµ mét tËp h÷u h¹n c¸c mÇm kho¸, K lµ mét tËp h÷u h¹n c¸c khãa, F = { f1, f 2,....}lµ bé sinh dßng kho¸, trong ®ã mçi i lµ mét ¸nh x¹ tõ R 3K i- 1 3P i- 1 vµo K , E lµ mét ¸nh x¹ tõ K3P vµo C , , ®−îc gäi lµ phÐp lËp mËt m·; vµ D lµ mét ¸nh x¹ tõ K 3C vµo P , ®−îc gäi lµ phÐp gi¶i m·. Víi mçi KεK , ta ®Þnh nghÜa eK : P →C , dK :C →P lµ hai hµm cho bëi : ⎠x εP : eK(x) = E (K,x) ; ⎠yε C : dK(y) = D (K,y). eK vµ dK ®−îc gäi lÇn l−ît lµ hµm lËp m· vµ hµm gi¶i m· øng víi khãa mËt m· K. C¸c hµm ®ã ph¶i tháa m·n hÖ thøc: ⎠x ε P : dK(eK(x)) = x. Khi cho tr−íc mÇm kho¸ r εR , víi mçi b¶n râ x = x1x2....xm ∈ P * , ta cã b¶n mËt m· t−¬ng øng lµ y = y1 y2.... ym , víi yi = E (Ki ,xi ) , trong ®ã Ki = fi (r, K1,...,Ki- 1, x1x2....xi- 1), (i =1,2,...,m). §iÒu ®ã cã nghÜa lµ tõ mÇm kho¸ r vµ b¶n râ x sinh ra ®−îc dßng kho¸ K1K2...Km , vµ víi dßng kho¸ ®ã lËp ®−îc b¶n mËt m· y theo tõng ký tù mét. NÕu bé sinh dßng kho¸ kh«ng phô thuéc vµo v¨n b¶n râ, tøc lµ nÕu mçi i lµ mét ¸nh x¹ tõ R 3K i- 1 vµo K , th× ta gäi bé sinh dßng kho¸ ®ã lµ ®ång bé ; dßng kho¸ chØ phô thuéc vµo mÇm kho¸ vµ lµ nh− nhau ®èi víi mäi v¨n b¶n râ. Mét dßng khãa K =K1K2K3.. ®−îc gäi lµ tuÇn hoµn víi chu kú d nÕu cã sè nguyªn N sao cho Ki+d = Ki víi mäi i ≥ N . Chó ý r»ng m· VigenÌre víi ®é dµi khãa m cã thÓ ®−îc coi lµ m· dßng víi dßng kho¸ cã chu kú m, vµ cã c¸c phÐp lËp m· vµ gi¶i m· theo m· chuyÓn dÞch. §èi víi c¸c hÖ m· theo dßng, ®é b¶o mËt th−êng ®−îc quyÕt ®Þnh bëi ®é ngÉu nhiªn cña dßng kho¸, tøc lµ tÝnh ngÉu nhiªn cña
  • 78.
    viÖc xuÊt hiÖnc¸c ký tù trong dßng kho¸, mµ Ýt phô thuéc vµo b¶n th©n phÐp lËp mËt m·, do ®ã c¸c phÐp lËp mËt m· eK (vµ c¶ phÐp gi¶i m· dK ) ®Òu cã thÓ ®−îc chän lµ c¸c phÐp ®¬n gi¶n; trong c¸c øng dông thùc tÕ, ng−êi ta th−êng dïng hÖ m· víi P = C = K = Z2 , vµ víi c¸c phÐp lËp m· vµ gi¶i m· ®−îc cho bëi ( ) mod 2, (2) ( ) mod 2 K K e x x K d y y K = + ⎫ ⎬ = + ⎭ 3.3.2. M· dßng víi dßng kho¸ sinh bëi hÖ thøc truy to¸n. 74 ) C¸c hÖ mËt m· dßng víi dßng kho¸ sinh bëi hÖ thøc truy to¸n lµ c¸c hÖ m· theo s¬ ®å (1) víi P = C = K = Z2 , R = , mçi mÇm kho¸ r = r 2 ( 1 m Z m ≥ 1....rm t¹o ra mét dßng kho¸ ®ång bé K = z1z2....zi.... víi 1 1 ,( 1,..., ) ... mod 2,( 1), i i i i m m i z r i m z c z c z i m − − = = ⎧ ⎨ = + + ≥ + ⎩ (3) trong ®ã c1 ,..., cm lµ c¸c h»ng sè thuéc Z2 ; c¸c phÐp lËp mËt m· vµ gi¶i m· cho tõng ký tù ®−îc cho bëi c¸c c«ng thøc (2). C¸c dßng kho¸ sinh bëi hÖ thøc truy to¸n nh− trªn lµ c¸c dßng kho¸ tuÇn hoµn, ta cã thÓ chän mÇm sao cho ®¹t ®−îc dßng kho¸ cã chu kú lín nhÊt lµ 2m -1. HÖ t¹o sinh c¸c dßng kho¸ bëi hÖ thøc truy to¸n cã thÓ ®−îc thùc hiÖn bëi mét thiÕt bÞ kü thuËt ®¬n gi¶n b»ng c¸ch dïng mét thanh ghi chuyÓn dÞch ph¶n håi tuyÕn tÝnh (linear feedback shift register); vµ nh− vËy chØ cÇn thªm mét bé céng mod2 n÷a lµ ta cã ®−îc mét m¸y lËp mËt m· vµ gi¶i m· tù ®éng; do ®ã c¸c m¸y mËt m· kiÓu nµy ®· ®−îc sö dông kh¸ phæ biÕn trong mét giai ®o¹n tr−íc ®©y. ThÝ dô: chän m = 4 vµ hÖ thøc truy to¸n zi = zi - 4 + zi - 3 mod2 (i >4)
  • 79.
    ta sÏ ®−îcvíi mäi mÇm K = z1z2z3z4 ≠ 0000 mét dßng kho¸ tuÇn hoµn cã chu kú 15. Ch¼ng h¹n, víi r = 1000 ta sÏ ®−îc dßng kho¸: 10001001101011110001001........ Dßng kho¸ ®ã ®−îc sinh bëi thanh ghi chuyÓn dÞch ph¶n håi tuyÕn tÝnh sau ®©y: 3.3.3. M· dßng víi dßng kho¸ lµ d·y sè gi¶ ngÉu nhiªn. Nh− ®· xÐt trong c¸c môc trªn, s¬ ®å m· theo dßng cã thÓ ®−îc xem lµ bao gåm hai bé phËn: mét s¬ ®å mËt m· nÒn (cho viÖc lËp mËt m· vµ gi¶i m· trªn tõng ký tù),vµ mét c¬ chÕ t¹o dßng khãa. T−¬ng tù nh− víi hÖ m· dßng cã dßng kho¸ sinh bëi thanh ghi chuyÓn dÞch trong môc trªn, ta sÏ xÐt s¬ ®å mËt m· nÒn lµ s¬ ®å S = (P , C , K , E , D ) , trong ®ã P = C = K = Z2 , E vµ D ®−îc cho bëi: E (K, x ) = x + K mod2 , D (K, y ) = y + K mod2 . 75 ) vµ C¬ chÕ t¹o dßng kho¸ cã thÓ xem lµ mét ¸nh x¹ ϕ : R XZ→ K , x¸c ®Þnh víi mçi mÇm kho¸ r ∈R = mçi sè nguyªn i ≥ 0, mét sè h¹ng z 2 ( 1 m Z m ≥ i = ϕ (r ,i ) ∈ K cña dßng kho¸ ®ång bé K = z1z2....zi..... Mét hÖ mËt m· dßng lµ cã ®é b¶o mËt cao, nÕu b¶n th©n s¬ ®å mËt m· nÒn cã ®é b¶o mËt cao (ch¼ng h¹n, lµ bÝ mËt hoµn toµn theo ®Þnh nghÜa Shannon), vµ c¬ chÕ t¹o dßng kho¸ t¹o ra ®−îc c¸c dßng kho¸ lµ c¸c d·y bit ngÉu nhiªn. DÔ thÊy r»ng, s¬ ®å mËt m· nÒn m« t¶ ë trªn tho¶ m·n c¸c ®iÒu kiÖn cña ®Þnh lý 2.2.1 , do ®ã nã lµ bÝ mËt
  • 80.
    hoµn toµn; v×vËy ®Ó cã ®−îc c¸c hÖ m· dßng víi ®é b¶o mËt cao ta chØ cÇn chän ®−îc c¸c c¬ chÕ t¹o dßng kho¸ b¶o ®¶m sinh ra c¸c d·y bit ngÉu nhiªn. Mét d·y bit z1z2....zi..... ®−îc xem lµ ngÉu nhiªn, nÕu mçi zi lµ mét biÕn ngÉu nhiªn víi p(zi = 0) = p(zi = 1) = 0.5, vµ c¸c biÕn ngÉu nhiªn zi vµ zj (i≠ j ) lµ ®éc lËp víi nhau. Víi nghÜa ®ã, ta kh«ng cã c¸ch nµo ®Ó ®o¸n nhËn mét d·y bit cho tr−íc cã lµ ngÉu nhiªn hay kh«ng, v¶ ch¨ng mét d·y bit, nÕu ®· ®−îc sinh ra bëi mét sè h÷u h¹n qui t¾c nµo ®ã, th× kh«ng cßn cã thÓ xem lµ ngÉu nhiªn ®−îc n÷a. V× vËy, thay cho ®ßi hái ph¶i t¹o ra c¸c d·y bit ngÉu nhiªn, th−êng ta chØ yªu cÇu t¹o ra ®−îc c¸c d·y bit gi¶ ngÉu nhiªn, tøc lµ cã mét tÝnh chÊt nµo ®ã gÇn víi ngÉu nhiªn, mµ th«i. Yªu cÇu th«ng dông nhÊt ®èi víi tÝnh gi¶ ngÉu nhiªn cña mét d·y bit z1z2....zi..... lµ “biÕt tr−íc mét ®o¹n ®Çu z1z2....zi- 1 khã mµ ®o¸n ®−îc bit tiÕp theo zi ”. Ta thö chÝnh x¸c ho¸ ý t−ëng nµy nh− sau: 76 ) Kh«ng gian c¸c mÇm kho¸ R = cã tÊt c¶ lµ 2 2 ( 1 m Z m ≥ m mÇm kho¸ kh¸c nhau, gi¶ sö tÊt c¶ chóng ®Òu cã x¸c suÊt xuÊt hiÖn nh− nhau, tøc lµ b»ng 1/2m . Ta xÐt tËp hîp tÊt c¶ c¸c dßng kho¸ cã thÓ cã víi ®é dµi l (l >m), tøc lµ tËp Z l , vµ trªn tËp ®ã ta x¸c ®Þnh mét ph©n bè x¸c suÊt p1 sao cho p1(z1....zl) =1/2m nÕu z1....zl lµ mét dßng kho¸ sinh ra ®−îc tõ mét mÇm kho¸ r ∈R nµo ®ã, vµ p1(z1....zl) = 0 nÕu ng−îc l¹i. Ta nãi ph©n bè x¸c suÊt p1 ®ã trªn Z l lµ ®−îc c¶m sinh tõ ph©n bè x¸c suÊt ®Òu trªn kh«ng gian c¸c mÇm kho¸ R . Cßn chÝnh ph©n bè x¸c suÊt ®Òu trªn Zl sÏ ®−îc ký hiÖu lµ p0. Gi¶ sö ϕ : R XZ→ K lµ c¬ chÕ t¹o dßng kho¸ cña mét hÖ mËt m· dßng, vµ r ∈R . Ta nãi B lµ mét thuËt to¸n ®o¸n bit tiÕp theo (®èi víi ϕ vµ r ) nÕu víi mäi sè nguyªn i (0≤ i ≤ l )vµ mäi tõ z1...zi-1∈Z i -1 , ta cã : B (i, z1...zi- 1) = ϕ (r ,i ). Râ rµng nÕu ta muèn c¬ chÕ ϕ t¹o ra c¸c dßng kho¸ gi¶ ngÉu nhiªn tèt th× ta kh«ng mong cã thuËt to¸n ®o¸n bit tiÕp theo lµm viÖc cã hiÖu qu¶ (ch¼ng h¹n tÝnh to¸n ®−îc trong thêi gian ®a thøc). Gi¶m nhÑ yªu cÇu “®o¸n ®óng bit tiÕp theo”, ta sÏ
  • 81.
    nãi thuËt to¸nB lµ ε-®o¸n bit tiÕp theo (®èi víi ϕ vµ r ) nÕu cã 1 1 1 1 1 1 1 1 ... 1 ( ... ). ( ( , ... ) ( , )) . 2 i i i i z z Z p z z p B i z z r i ϕ ε − − − − ∈ = ≥ + ∑ (4) (chó ý r»ng biÓu thøc ë vÕ tr¸i lµ kú väng to¸n häc cña viÖc ®o¸n ®óng bit thø i tiÕp theo cña c¸c dßng kho¸ gåm i -1 bit). Nh− vËy, ta cã thÓ xem mét c¬ chÕ t¹o dßng kho¸ ϕ lµ an toµn ®Ó sö dông cho c¸c hÖ mËt m· theo dßng, nÕu víi mäi mÇm kho¸ r vµ mäi ε > 0 bÊt kú, kh«ng thÓ cã thuËt to¸n ε-®o¸n bit tiÕp theo lµm viÖc trong thêi gian ®a thøc. D−íi ®©y, ta sÏ dùa vµo c¸c hµm sè häc mét phÝa ®Ó x©y dùng mét sè c¬ chÕ t¹o c¸c d·y sè gi¶ ngÉu nhiªn c¬ hå cã thÓ dïng lµm c¬ chÕ ®Ó t¹o dßng kho¸ cho c¸c hÖ mËt m· theo dßng mµ ta ®ang xÐt. T¹o bit gi¶ ngÉu nhiªn RSA. C¬ chÕ t¹o d·y bit gi¶ ngÉu nhiªn RSA ®−îc m« t¶ nh− sau : Chän sè nguyªn n =p.q lµ tÝch cña hai sè nguyªn tè p vµ q cã biÓu diÔn nhÞ ph©n víi ®é dµi cì m/2 bit (nh− vËy n cã biÓu diÔn nhÞ ph©n cì m bit), vµ mét sè b sao cho gcd(b,φ (n)) = 1. LÊy R = n Z∗ , vµ víi mçi r ∈R x¸c ®Þnh d·y sè s0, s1, s2,.... nh− sau: 0 1 , mod , b i i s r s s n + = ⎧ ⎪ ⎨ = ⎪ ⎩ vµ sau ®ã ®Þnh nghÜa zi =ϕ (r ,i ) = si mod2, tøc zi lµ bit thÊp nhÊt trong biÓu diÔn nhÞ ph©n cña sè si. D·y K = z1z2....zi.... lµ dßng bit ®ång bé ®−îc t¹o ra bëi mÇm r. ThÝ dô : LÊy n = 91261 = 263.347, b =1547, r =75634. Cã thÓ tÝnh c¸c sè s1,...,s20 lÇn l−ît lµ: 31483, 31238, 51968, 39796, 28716, 14089, 5923, 44891, 62284, 11889, 43467, 71215, 10401, 77444, 56794, 78147, 72137, 89592, 29022, 13356. Vµ 20 bit ®Çu tiªn cña dßng bit gi¶ ngÉu nhiªn ®−îc sinh ra lµ: 77
  • 82.
    z1...z20 = 10000111011110011000. T¹obit gi¶ ngÉu nhiªn BBS (Blum-Blum-Shub) : C¬ chÕ t¹o bit gi¶ ngÉu nhiªn BBS ®−îc m« t¶ nh− sau : Chän n =p.q lµ tÝch cña hai sè nguyªn tè d¹ng 4m +3, tøc p ≡ 3(mod4) vµ q ≡ 3 (mod4). Gäi QR(n ) lµ tËp c¸c thÆng d− bËc hai theo modn. LÊy R =QR(n ) , vµ víi mçi r ∈R x¸c ®Þnh d·y sè s0, s1, s2,.... nh− sau: 0 2 1 , mod , i i s r s s n + = ⎧ ⎪ ⎨ = ⎪ ⎩ vµ sau ®ã ®Þnh nghÜa zi =ϕ (r ,i ) = si mod2, tøc zi lµ bit thÊp nhÊt trong biÓu diÔn nhÞ ph©n cña sè si. D·y K = z1z2....zi.... lµ dßng bit ®ång bé ®−îc t¹o ra bëi mÇm r. ThÝ dô : LÊy n = 192649 = 383.503, r = 20749 (= 1013552 modn). Cã thÓ tÝnh 20 sè ®Çu cña d·y s1,...,s20,... lÇn l−ît lµ: 143135, 177671, 97048, 89992, 174051, 80649, 45663, 69442, 186894, 177046, 137922, 123175, 8630, 114386, 14863, 133015, 106065, 45870, 137171, 18460. Vµ 20 bit ®Çu cña dßng bit gi¶ ngÉu nhiªn ®−îc sinh ra lµ: z1...z20 = 11001110000100111010. T¹o bit gi¶ ngÉu nhiªn dùa vµo bµi to¸n logarit rêi r¹c : Chän p lµ mét sè nguyªn tè lín, vµ α lµ mét phÇn tö nguyªn thuû theo modp. TËp c¸c mÇm kho¸ lµ R = p Z∗ . Víi mçi mÇm kho¸ r ∈R ta x¸c ®Þnh d·y sè s0,...,si .... bëi : 0 1 , mod . i s i s r s p α + = = 78
  • 83.
    79 s Sau ®ã ®ÞnhnghÜa zi = ϕ (r ,i )(i =1,2,....) nh− sau: zi = 1 nÕu si > p/2, vµ zi = 0 nÕu i < p/2. Vµ K =z1....zi...... lµ dßng kho¸, tøc dßng bit gi¶ ngÉu nhiªn, ®−îc t¹o ra. Trªn ®©y lµ mét vµi c¬ chÕ t¹o dßng kho¸, vµ ®Ó c¸c dßng kho¸ ®−îc t¹o ra ®ã lµ nh÷ng dßng bit gi¶ ngÉu nhiªn tèt , ta ®· cè ý dùa vµo mét sè bµi to¸n sè häc khã theo nghÜa lµ ch−a t×m ®−îc nh÷ng thuËt to¸n lµm viÖc trong thêi gian ®a thøc ®Ó gi¶i chóng, nh− c¸c bµi to¸n RSA, bµi to¸n thÆng d− bËc hai vµ bµi to¸n l«garit rêi r¹c. C¸c c¬ chÕ t¹o dßng kho¸ ®ã ®−îc xem lµ an toµn nÕu ta chøng minh ®−îc r»ng kh«ng thÓ cã c¸c thuËt to¸n ε-®o¸n bit tiÕp theo ®èi víi chóng; hay mét c¸ch kh¸c, nÕu cã thuËt to¸n ε-®o¸n bit tiÕp theo ®èi víi chóng th× còng sÏ cã thuËt to¸n (tÊt ®Þnh hoÆc x¸c suÊt) gi¶i c¸c bµi to¸n sè häc t−¬ng øng. TiÕc thay, ®Õn nay ta ch−a chøng minh ®−îc mét kÕt qu¶ nµo theo h−íng mong muèn ®ã; tuy nhiªn còng ®· cã mét vµi kÕt qu¶ yÕu h¬n, thÝ dô, ®èi víi bé t¹o bit gi¶ ngÉu nhiªn BBS ng−êi ta ®· chøng minh ®−îc r»ng : nÕu víi mäi ε > 0 cã thuËt to¸n ε- ®o¸n bit cã tr−íc (®èi víi ϕ vµ r ) th× víi mäi δ > 0 còng cã thÓ x©y dùng mét thuËt to¸n x¸c suÊt gi¶i bµi to¸n thÆng d− bËc hai víi x¸c suÊt tr¶ lêi sai lµ < δ (§Þnh nghÜa cña thuËt to¸n ε- ®o¸n bit cã tr−íc t−¬ng tù nh− víi thuËt to¸n ε- ®o¸n bit tiÕp theo, chØ kh¸c lµ thay c«ng thøc (4) bëi c«ng thøc sau ®©y 1 1 1 1 1 1 1 1 0 ... 1 ( ... ). ( ( , ... ) ) . 2 i i i i z z Z p z z p B i z z z ε − − − − ∈ = ≥ + ∑ trong ®ã z0 = s0 mod2 lµ bit cã tr−íc d·y z1...zi-1). Trong thùc tiÔn, c¸c hÖ m· dßng víi dßng kho¸ lµ d·y bit ngÉu nhiªn ®· ®−îc sö dông tõ l©u vµ cßn ®−îc sö dông cho ®Õn ngµy nay, víi dßng bit ngÉu nhiªn ®−îc t¹o ra mét c¸ch c¬ häc nh− viÖc tung ®ång xu liªn tiÕp vµ ghi liªn tiÕp c¸c kÕt qu¶ “sÊp, ngöa” cña c¸c lÇn tung. C¸c hÖ m· dßng víi dßng kho¸ ngÉu nhiªn vµ víi s¬ ®å mËt m· nÒn cho bëi c¸c hÖ thøc (2) cã thÓ ®−îc xem lµ “bÝ mËt hoµn toµn” theo nghÜa Shannon, do ®ã rÊt ®−îc −a chuéng trong øng dông thùc tÕ, chóng th−êng ®−îc gäi lµ c¸c hÖ ®Öm mét lÇn (one-time pad), ®−îc m« t¶ vµ sö dông ®Çu tiªn bëi Gilbert Vernam n¨m 1917. Tuy nhiªn, viÖc t¹o c¸c dßng bit ngÉu nhiªn mét c¸ch thñ c«ng lµ kh«ng hiÖu qu¶, viÖc gi÷ bÝ mËt c¸c dßng kho¸ nh− vËy l¹i
  • 84.
    80 cµng khã h¬n,nªn kh«ng thÓ sö dông mét c¸ch phæ biÕn ®−îc, do ®ã ngµy nay c¸c hÖ m· nh− vËy chØ cßn ®−îc sö dông trong nh÷ng tr−êng hîp thËt ®Æc biÖt. 3.4. HÖ mËt m· chuÈn DES. 3.4.1. Giíi thiÖu hÖ m· chuÈn. B−íc sang kû nguyªn m¸y tÝnh, viÖc sö dông m¸y tÝnh nhanh chãng ®−îc phæ cËp trong mäi ho¹t ®éng cña con ng−êi, vµ tÊt nhiªn viÖc dïng m¸y tÝnh trong truyÒn tin b¶o mËt ®· ®−îc hÕt søc chó ý. C¸c hÖ mËt m· víi c¸c thuËt to¸n lËp mËt m· vµ gi¶i m· thùc hiÖn b»ng m¸y tÝnh ®−îc ph¸t triÓn nhanh chãng, ®ång thêi c¸c lÜnh vùc truyÒn tin cÇn sö dông mËt m· còng ®−îc më réng sang nhiÒu ®Þa h¹t kinh tÕ x· héi ngoµi c¸c ®Þa h¹t truyÒn thèng. Vµo ®Çu thËp niªn 1970, tr−íc t×nh h×nh ph¸t triÓn ®ã ®· nÈy sinh nhu cÇu ph¶i chuÈn ho¸ c¸c gi¶i ph¸p mËt m· ®−îc sö dông trong x· héi, ®Ó mét mÆt, h−íng dÉn c¸c thµnh viªn trong x· héi thùc hiÖn quyÒn truyÒn tin b¶o mËt hîp ph¸p cña m×nh, mÆt kh¸c, b¶o ®¶m sù qu¶n lý vµ gi¸m s¸t cña nhµ n−¬c ®èi víi c¸c ho¹t ®éng b¶o mËt ®ã. Do ®ã, t¹i Hoa kú, ngµy 15/5/1973, V¨n phßng quèc gia vÒ ChuÈn (NBS - National Bureau of Standards) c«ng bè mét yªu cÇu c«ng khai x©y dùng vµ ®Ò xuÊt mét thuËt to¸n mËt m· chuÈn, ®¸p øng c¸c ®ßi hái chñ yÕu lµ: - ThuËt to¸n ph¶i ®−îc ®Þnh nghÜa ®Çy ®ñ vµ dÔ hiÓu; - ThuËt to¸n ph¶i cã ®é an toµn cao, ®é an toµn ®ã ph¶i kh«ng phu thuéc vµo sù gi÷ bÝ mËt cña b¶n th©n thuËt to¸n, mµ chØ n»m ë sù gi÷ bÝ mËt cña kho¸; - ThuËt to¸n ph¶i ®−îc s½n sµng cung cÊp cho mäi ng−êi dïng; - ThuËt to¸n ph¶i thÝch nghi ®−îc víi viÖc dïng cho c¸c øng dông kh¸c nhau; - ThuËt to¸n ph¶i cµi ®Æt ®−îc mét c¸ch tiÕt kiÖm trong c¸c thiÕt bÞ ®iÖn tö; - ThuËt to¸n ph¶i sö dông ®−îc cã hiÖu qu¶; - ThuËt to¸n ph¶i cã kh¶ n¨ng ®−îc hîp thøc ho¸;
  • 85.
    - ThuËt to¸nph¶i xuÊt khÈu ®−îc. Vµo thêi ®iÓm NBS ®−a ra yªu cÇu nãi trªn, ch−a cã mét c¬ quan nµo ®Ò xuÊt ®−îc mét gi¶i ph¸p ®¸p øng tÊt c¶ c¸c ®ßi hái ®ã. Mét n¨m sau, ngµy 27/4/1974, yªu cÇu ®ã l¹i ®−îc nh¾c l¹i; vµ lÇn nµy h·ng IBM chÊp nhËn dù tuyÓn víi s¶n phÈm sÏ ®−îc ®Ö tr×nh lµ mét thuËt to¸n c¶i tiÕn tõ mét thuËt to¸n ®· ®−îc ph¸t triÓn tr−íc ®ã lµ LUCIFER. KÕt qu¶ lµ, s¶n phÈm DES (Data Encryption Standard) ®−îc c«ng bè, lÇn ®Çu tiªn vµo ngµy 17/3/1975. Sau nhiÒu tranh luËn, cuèi cïng DES ®−îc chÊp nhËn nh− mét chuÈn liªn bang vµo ngµy 23/11/1976, vµ ®−îc c«ng bè ngµy 15/1/1977; ®Õn n¨m 1980 l¹i c«ng bè thªm «c¸c c¸ch dïng DES», cho phÐp ng−êi dïng cã thÓ sö dông DES theo nhiÒu c¸ch kh¸c nhau. Tõ ®ã, DES ®−îc cµi ®Æt s½n vµo c¸c thiÕt bÞ cøng thµnh c¸c m¸y m·, hoÆc ®−îc cµi ®Æt nh− mét phÇn mÒm trong c¸c thiÕt bÞ tÝnh to¸n ®a dông, vµ ®· ®−îc sö dông réng r·i trong c¸c lÜnh vùc qu¶n lý hµnh chÝnh, kinh tÕ, th−¬ng m¹i, ng©n hµng, v.v... kh«ng nh÷ng ë Hoa kú mµ cßn ë nhiÒu quèc gia kh¸c. Theo qui ®Þnh cña NBS, v¨n phßng quèc gia vÒ chuÈn cña Hoa kú, cø kho¶ng 5 n¨m DES l¹i ph¶i ®−îc xem xÐt l¹i mét lÇn ®Ó ®−îc c¶i tiÕn vµ bæ sung. Sau khi c¸c hÖ mËt m· cã kho¸ c«ng khai ®−îc ph¸t triÓn vµ sö dông réng r·i, còng ®· cã nhiÒu ý kiÕn ®Ò nghÞ thay ®æi chuÈn míi cho c¸c hÖ mËt m·, nh−ng trªn thùc tÕ, DES vÉn cßn ®−îc sö dông nh− mét chuÈn cho ®Õn ngµy nay trong nhiÒu lÜnh vùc ho¹t ®éng. 3.4.2. M« t¶ hÖ mËt m· chuÈn DES. S¬ ®å kh¸i qu¸t. D−íi ®©y ta sÏ tr×nh bµy s¬ ®å cña thuËt to¸n lËp mËt m· DES. HÖ mËt m· DES lµ mét hÖ mËt m· theo khèi, mçi khèi b¶n râ lµ mét tõ 64 bit, tøc lµ mét phÇn tö thuéc 64 2 Z , vµ c¸c khèi b¶n m· còng lµ c¸c tõ 64 bit, nh− vËy P = C = 64 2 Z . DES cã tËp kho¸ K = 56 2 Z , tøc mçi kho¸ lµ mét tõ 56 bit. Víi mçi kho¸ K vµ b¶n râ x, qu¸ tr×nh lËp mËt m· diÔn ra nh− sau: Tho¹t ®Çu, dïng mét phÐp ho¸n vÞ ban ®Çu IP, tõ x 64 bit sÏ biÕn thµnh mét tõ míi IP (x ), tõ nµy ®−îc chia thµnh hai nöa L0 vµ R0 , mçi nöa lµ mét tõ 32 bit. Tõ ®©y, sÏ dïng 15 lÇn nh÷ng phÐp to¸n gièng nhau ®Ó liªn tiÕp ®−îc c¸c cÆp (L1,R1 ),...., (L15 ,R15 ), sau ®ã dïng phÐp ho¸n vÞ nghÞch 81
  • 86.
    82 ®¶o IP -1 chotõ ®¶o ng−îc R15L15 ta sÏ ®−îc b¶n m· y t−¬ng øng. S¬ ®å kh¸i qu¸t cña phÐp lËp mËt m· ®−îc cho bëi h×nh vÏ sau ®©y:
  • 87.
    K1 K2 K16 L0 R0 f L1 R1 f L15R15 f R16 L16 + + IP -1 ThuËt to¸n G t¹o c¸c kho¸ K1,....., K16 tõ kho¸ K I + P B¶n râ x Kho¸ K B¶n m· y S¬ ®å kh¸i qu¸t cña thuËt to¸n lËp mËt m· DES §Ó hoµn chØnh s¬ ®å thuËt to¸n lËp mËt m·, ta cßn ph¶i tr×nh bµy c¸c thuËt to¸n IP ( vµ do ®ã, c¶ IP -1 ), thuËt to¸n f , vµ thuËt to¸n G t¹o ra c¸c kho¸ K1,...,K16 . IP lµ mét phÐp ho¸n vÞ vÞ trÝ cña c¸c ký tù trong mçi tõ 64 bit, tõ vÞ trÝ thø 1 ®Õn vÞ trÝ thø 64. B¶ng d−íi ®©y cho ta phÐp ho¸n vÞ IP, víi c¸ch hiÓu lµ bit thø nhÊt cña IP (x ) lµ bit thø 58 cña tõ x (cã 82
  • 88.
    64 bit), bitthø hai cña IP (x) lµ bit thø 50 cña x, v.v... B¶ng cña phÐp ho¸n vÞ IP -1 còng ®−îc hiÓu t−¬ng tù. 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 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 S¬ ®å hµm f : Hµm f lÊy ®Çu vµo lµ hai tõ : R cã 32 bit vµ K cã 48 bit, vµ cã kÕt qu¶ ë ®Çu ra lµ tõ f (R,K ) cã 32 bit, ®−îc x¸c ®Þnh bëi s¬ ®å sau ®©y: R (32 bit) E (R) 48 bit E + K (48 bit) Mçi Bi lµ mét tõ 6 bit B1 B2 B3 B4 B5 B6 B7 B8 Mçi Ci lµ mét tõ 4 bit S 1 S 2 S 3 S 4 S 5 S 6 S 8 S 8 C1 C2 C3 C4 C5 C6 C7 C8 P 83 f (R,K ) 32 bit
  • 89.
    Trong s¬ ®åë trªn cña hµm f , E lµ mét phÐp ho¸n vÞ “më réng” theo nghÜa lµ nã biÕn mçi tõ R 32 bit thµnh tõ E (R ) b»ng c¸ch ho¸n vÞ 32 bit cña R nh−ng cã mét sè cÆp bit ®−îc lÆp l¹i ®Ó E (R ) thµnh mét tõ cã 48 bit, cô thÓ phÐp ho¸n vÞ “më réng” ®ã ®−îc cho bëi b¶ng sau ®©y : PhÐp ho¸n vÞ “më réng” E 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 Theo ®Þnh nghÜa ®ã, mçi tõ R = a1a2a3......a32 sÌ biÕn thµnh tõ E (R ) = a32 a1a2a3a4a5a4a5a6a7a8a9a8a9 .......a32a1 . Sau khi thùc hiÖn E, E (R ) sÏ ®−îc céng (tõng bit theo mod2) víi K , ®−îc mét tõ 48 bit, chia thµnh 8 ®o¹n B1, ..., B8 . Mçi hép S i (i = 1,...,8) lµ mét phÐp thay thÕ, biÕn mçi tõ Bj 6 bit thµnh mét tõ Cj 4 bit; c¸c hép Si ®−îc cho bëi c¸c b¶ng d−íi ®©y víi c¸ch hiÓu nh− sau: mçi tõ Bj = b1b2b3b4b5b6 øng víi mét vÞ trÝ (r,s) ë hµng thø r vµ cét thø s trong b¶ng, c¸c hµng ®−îc ®¸nh sè tõ thø 0 ®Õn thø 3 øng víi biÓu diÔn nhÞ ph©n b1b6 vµ c¸c cét ®−îc ®¸nh sè tõ thø 0 ®Õn thø 15 øng víi biÓu diÔn nhÞ ph©n b2b3b4b5 . Gi¸ trÞ cña Si (Bj )= Cj = c1c2c3c4 lµ mét tõ 4 bit, biÓu diÔn nhÞ ph©n cña sè t¹i hµng r cét s trong b¶ng. ThÝ dô ta cã S1(101110) = 0101, S2(011000) = 1110, v.v... 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 84
  • 90.
    S4 7 13 143 0 6 9 10 1 2 8 5 11 12 4 15 13 8 11 5 6 15 0 3 4 7 2 12 1 10 14 9 10 6 9 0 12 11 7 13 15 1 3 14 5 2 8 4 3 15 0 6 10 1 13 8 9 4 5 11 12 7 2 14 S5 2 12 4 1 7 10 11 6 8 5 3 15 13 0 14 9 14 11 2 12 4 7 13 1 5 0 15 10 3 9 8 6 4 2 1 11 10 13 7 8 15 9 12 5 6 3 0 14 11 8 12 7 1 14 2 13 6 15 0 9 10 4 5 3 S6 12 1 10 15 9 2 6 8 0 13 3 4 14 7 5 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 PhÐp ho¸n vÞ P trong s¬ ®å cña hµm f ®−îc cho bëi b¶ng ë trang sau ®©y. Nh− vËy, hµm f ®· ®−îc x¸c ®Þnh hoµn toµn. Chó ý r»ng c¸c hép S1,..., S8 lµ phÇn quan träng nhÊt trong viÖc b¶o ®¶m tÝnh bÝ mËt cña hÖ m· DES. P 16 7 20 21 29 12 28 17 1 15 23 26 5 18 31 10 2 8 24 14 32 27 3 9 19 13 30 6 22 11 4 25 85
  • 91.
    S¬ ®å thuËtto¸n G t¹o c¸c tõ kho¸ K1,...,K16 : S¬ ®å thuËt to¸n G Kho¸ K PC-1 C0 D0 LS1 LS1 ............................................ ............... .............. K1 PC2 C1 D1 K2 PC2 C2 D2 K16 PC2 LS16 C16 D16 LS2 LS16 LS2 ThuËt to¸n G t¹o ra c¸c tõ kho¸ K1,...,K16 tõ kho¸ mËt m· K ®−îc thùc hiÖn theo s¬ ®å thuËt to¸n m« t¶ ë trªn. Kho¸ mËt m· K lµ mét tõ 56 bit, ta chia thµnh 8 ®o¹n, mçi ®o¹n 7 bit, ta thªm cho mçi ®o¹n 7 bit ®ã mét bit thö tÝnh ch½n lÎ vµo vÞ trÝ cuèi ®Ó ®−îc mét tõ 64 bit, ta vÉn ký hiÖu lµ K , tõ míi K nµy lµ tõ xuÊt ph¸t cho qu¸ tr×nh tÝnh to¸n cña thuËt to¸n G (nh− sÏ thÊy vÒ sau, c¸c bit thö tÝnh ch½n lÎ mµ ta thªm vµo chØ ®−îc dïng ®Ó ph¸t hiÖn sai trong tõng ®o¹n bit cña kho¸ chø thùc tÕ kh«ng tham gia vµo chÝnh qu¸ tr×nh tÝnh to¸n cña G ). 86
  • 92.
    Tr−íc tiªn, thuËtto¸n PC-1 biÕn K thµnh mét tõ 56 bit mµ ta chia thµnh hai nöa C0D0 , mçi nöa cã 28 bit. PhÐp ho¸n vÞ PC-1 ®−îc x¸c ®Þnh bëi b¶ng sau ®©y (chó ý lµ trong b¶ng kh«ng cã c¸c sè 8,16,24,32,40,48,56,64 lµ vÞ trÝ cña nh÷ng bit ®−îc thªm vµo khi h×nh thµnh tõ míi K ). Nhí r»ng theo qui −íc cña phÐp ho¸n vÞ, bit thø nhÊt cña PC-1(x ) lµ bit thø 57 cña x , bit thø hai cña PC-1(x ) lµ bit thø 49 cña x , v.v... 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 Víi mçi i = 1,2,...16, LSi lµ phÐp chuyÓn dÞch vßng sang tr¸i, chuyÓn dÞch mét vÞ trÝ nÕu i = 1,2,9,16, vµ chuyÓn dÞch hai vÞ trÝ víi nh÷ng gi¸ trÞ i cßn l¹i. Cuèi cïng, phÐp ho¸n vÞ PC-2 biÕn mçi tõ 56 bit CiDi (i =1,2,...16) thµnh tõ 48 bit Ki theo b¶ng d−íi ®©y: PC-2 14 17 11 24 1 5 3 28 15 6 21 10 23 19 12 4 26 8 16 7 27 20 13 2 41 52 31 37 47 55 30 40 51 45 33 48 44 49 39 56 34 53 46 42 50 36 29 32 Nh− vËy, ta ®· m« t¶ ®Çy ®ñ qu¸ tr×nh tÝnh to¸n cña thuËt to¸n G ®Ó tõ khoa m· ban ®Çu K thu ®−îc c¸c tõ kho¸ K1 ,..., K16 cung cÊp cho thuËt to¸n f, vµ tõ ®ã cho toµn bé thuËt to¸n lËp mËt m· DES. Ta chó ý r»ng mçi Ki cã 48 bit ®Òu do ho¸n vÞ 56 bit (cã bá bít 8 bit) cña K mµ thµnh, do ®ã cã thÓ cho trùc tiÕp b»ng c¸ch cho c¸c b¶ng m« t¶ c¸c phÐp ho¸n vÞ ®ã. B¹n ®äc cã thÓ t×m ®äc 16 b¶ng øng víi 16 Ki ®ã trong s¸ch cña D.R. Stinson (cã trong phÇn S¸ch tham kh¶o). Víi viÖc tr×nh bµy s¬ ®å kh¸i qu¸t cïng víi c¸c b¶ng, c¸c s¬ ®å cña c¸c thuËt to¸n phô, ta ®· hoµn thµnh viÖc giíi thiÖu thuËt 87
  • 93.
    to¸n lËp mËtm· E cña hÖ mËt m· DES , cho ta y = E (K,x ) víi mèi kho¸ K vµ b¶n râ x. ThuËt to¸n gi¶i m· D, cho ta x =D (K ,y ), ®−îc thùc hiÖn b»ng cïng mét qu¸ tr×nh tÝnh to¸n nh− qu¸ tr×nh lËp m·, chØ kh¸c lµ thø tù dïng c¸c Ki ®−îc ®¶o ng−îc l¹i theo thø tù K16,K15,...,K1. Cã thÓ thùc hiÖn thö c¸c thuËt to¸n lËp m· vµ gi¶i m· kÓ trªn víi thÝ dô sau ®©y: Cho K vµ x lµ K = 12695BC9B7B7F8 x = 0123456789ABCDEF, ë ®©y c¸c sè ®−îc viÕt theo c¬ sè 16 (hexadecimal), mçi ký tù thay cho 4 bit. B¶n m· y t−¬ng øng sÏ lµ y = 85E813540F0AB405. 3.4.3. C¸c c¸ch dïng DES. N¨m 1981, NBS c«ng bè c¸c chuÈn xö lý th«ng tin liªn bang cã liªn quan ®Õn DES, trong ®ã ®· hîp thøc ho¸ bèn c¸ch dïng DES trong thùc tÕ lµ c¸c c¸ch: ECB (electronic codebook mode), CFB (cipher feedback mode), CBC ( cipher block chaining mode) vµ OFB (output feedback mode). ECB lµ c¸ch sö dông th«ng th−êng vµ ®¬n gi¶n cña DES. Víi c¸ch sö dông ®ã, ta chia b¶n râ (lµ mét d·y bit) thµnh tõng khèi 64 bit x = x1x2....xn , vµ dïng cïng mét kho¸ K ®Ó m· c¸c khèi ®ã råi ghÐp l¹i ®Ó ®−îc b¶n m· y = y1y2... yn , trong ®ã yi = eK (xi ). Víi c¸ch dïng CFB, ®Ó ®−îc khèi m· yi ta dïng DES cho kh«ng ph¶i xi mµ lµ cho xi⊕yi -1 ,tøc lµ cã yi = eK (xi⊕yi -1) víi mäi i > 1. Trong hai c¸ch CBC vµ OFB, ta dïng DES ®Ó t¹o ra mét dßng tõ kho¸ z1...zi....., råi sau ®ã lËp m· yi = xi ⊕ zi (i ≥ 1). Dßng kho¸ z1...zi..... trong c¸ch CBC ®−îc x¸c ®Þnh bëi z0 = K* (lµ mét tõ 64 bit ®−îc chän tõ kho¸ K), zi = eK (zi -1); cßn trong c¸ch OFB ®−îc x¸c ®Þnh bëi y0 = K* zi = eK (yi -1) yi = xi ⊕ zi (i ≥1). Trong thùc tÕ, c¸c c¸ch ECB vµ CBC ®−îc nhiÒu ng©n hµng dïng lµm chuÈn mËt m· cña m×nh, cßn c¸c c¸ch CFB vµ ßB th−êng ®−îc dïng c¶ víi c¸c môc ®Ých x¸c nhËn. 3.4.4. VÒ tÝnh an toµn vµ viÖc th¸m m· ®èi víi DES. 88
  • 94.
    1.VÒ tÝnh antoµn b¶o mËt cña DES. Sau khi DES ®−îc c«ng bè nh− mét chuÈn chÝnh thøc cho truyÒn tin b¶o mËt cña quèc gia, nhiÒu vÊn ®Ò vÒ tÝnh an toµn vµ kh¶ n¨ng b¶o mËt cña DES ®−îc ®Æt ra vµ nhiÒu biÖn ph¸p th¸m m· còng ®−îc nghiªn cøu, trong suèt h¬n hai m−¬i n¨m qua vµ cho ®Õn nay. Ta chó ý r»ng trong cÊu tróc cña thuËt to¸n DES, ë mçi vßng lÆp ®Òu cã c¸c phÐp chuyÓn dÞch vµ thay thÕ xen kÏ liªn tiÕp nhau, cã t¸c dông t¨ng thªm ®é b¶o mËt cña mËt m·. ThuËt to¸n DES nãi chung ®¸p øng c¸c yªu cÇu mµ NBS ®Ò ra tõ ®Çu cho mét chuÈn mËt m·, vµ do ®ã yÕu tè b¶o mËt chñ yÕu tËp trung vµo viÖc gi÷ bÝ mËt cña kho¸, hay nãi c¸ch kh¸c, th¸m m· chñ yÕu ph¶i lµ ph¸t hiÖn kho¸ ®−îc sö dông. Trong c¸c kh©u cña s¬ ®ß DES th× c¸c yÕu tè phi tuyÕn duy nhÊt n»m ë c¸c hép S1,..., S8. Ng−êi ta kh«ng biÕt ng−êi thiÕt kÕ c¸c hép ®ã ®· chä chóng theo nh÷ng tiªu chuÈn nµo, vµ Côc an ninh quèc gia NSA cã cµi vµo ®ã nh÷ng “cöa sËp” nµo kh«ng; nh−ng sau nhiÒu cè g¾ng th¸m m· kh«ng thµnh c«ng, ng−êi ta ®· c«ng bè mét sè c¸c tiªu chuÈn chon c¸c hép S1,..., S8 nh− sau: 1. Mçi hµng cña mét hép Si ph¶i lµ mét ho¸n vÞ cña 0,1,...,15; 2. Kh«ng mét hép Si nµo lµ mét hµm tuyÕn tÝnh hay apphin ®èi víi c¸c ®Çu vµo cña nã; 3. Víi mçi hép Si , viÖc thay ®æi mét bit ë ®Çu vµo g©y ra sù thay ®æi Ýt nhÊt hai bit ë ®Çu ra cña nã; 4. NÕu hai tõ vµo cña mét hép Si gièng nhau ë hai bit ®Çu vµ hai bit cuèi, th× hai tõ ra ph¶i kh¸c nhau ë hai bit; 5. NÕu hai tõ vµo cña mét hép Si kh¸c nhau ë hai bit ®Çu vµ gièng nhau ë hai bit cuèi, th× hai tõ ra ph¶i kh¸c nhau; 6. Víi mçi hép Si , nÕu ta cè ®Þnh gi¸ trÞ mét bit vµo vµ xÐt gi¸ trÞ cña bit ra ë mét vÞ trÝ nµo ®ã, th× sè c¸c tõ vµo t¹o ra gi¸ trÞ 0 vµ sè c¸c tõ vµo t¹o ra gi¸ trÞ 1 ë cïngvÞ trÝ ®ã ph¶i xÊp xØ b»ng nhau. Nãi chung, ®é b¶o mËt cña DES ®· ®−îc thö th¸ch qua h¬n hai m−¬i n¨m sö dông vµ ®−îc chøng tá lµ tin cËy. C¸c ph−¬ng ph¸p th¸m m·, tuy ®· ®−îc t×m kiÕm kh¸ nhiÒu, nh−ng gÇn nh− kh«ng tr¸nh ®−îc ®é phøc t¹p cña c¸ch tÇm th−êng lµ duyÖt toµn bé, mµ theo c¸ch nµy th× dï lµ th¸m m· theo kiÓu “biÕt c¶ b¶n râ” ta còng ph¶i duyÖt qua 256 kho¸ cã thÓ cã, ®iÒu ®ã ®ßi hái mét l−îng tÝnh to¸n khæng lå khã mµ kh¾c phôc næi ! VÒ viÖc th¸m m· ®èi víi DES. HÖ m· chuÈn DES cã thÓ xem lµ hÖ m· ®Çu tiªn ®−îc dïng phæ biÕn mét c¸ch réng r·i kh«ng chØ trong mét quèc gia mµ c¶ trªn ph¹m vi toµn thÕ giíi, toµn bé cÊu tróc thuËt to¸n ®−îc c«ng bè c«ng khai, c¶ phÐp lËp m· vµ gi¶i m·, thËm chÝ c¸c s¶n phÈm phÇn cøng còng nh− phÇn mÒm cña nã ®−îc th−¬ng m¹i ho¸; do ®ã bÝ mËt cña th«ng tin ®−îc truyÒn ®i chØ cßn n»m ë ch×a kho¸ ®−îc 89
  • 95.
    chon, ®ã lµmét tõ 56 bit. ViÖc th¸m m· ®èi víi DES d· hÊp dÉn nhiÒu nhµ to¸n häc vµ chuyªn gia mËt m· nghiªn cøu, ®Ò xuÊt nhiÒu ph−¬ng ph¸p kh¸c nhau. Ngoµi ph−¬ng ph¸p “duyÖt toµn bé” nh− nãi trªn, ng−êi ta ®· ®Ò xuÊt mét sè ph−¬ng ph¸p kh¸c, nh−: - ph−¬ng ph¸p ph©n tÝch ®é chªnh lÖch (differential analysis) do Biham vµ Shamir ®Ò xuÊt n¨m 1990, - ph−¬ng ph¸p ph©n tÝch liªn quan ®Õn kho¸, do Biham ®Ò xuÊt vµo khaáng 1992-1994, - ph−¬ng ph¸p ph©n tÝch tuyÕn tÝnh, do Matsui ®−a ra n¨m 1993-1994, - ph−¬ng ph¸p ph©n tÝch chªnh lÖch-tuyÕn tÝnh, do Langfort vµ Hellman ®−a ra n¨m 1994, - v.v... C¸c ph−¬ng ph¸p nµy ®Òu chøa ®ùng nhiÒu ý t−ëng s©u s¾c vµ tinh tÕ, nh−ng vÉn ®ßi hái nh÷ng khèi l−îng tÝnh to¸n rÊt lín, nªn trong thùc tÕ vÉn chØ dõng l¹i ë nh÷ng minh ho¹ t−¬ng ®èi ®¬n gi¶n chø ch−a ®−îc sö dông thùc sù. 90
  • 96.
    CH¦¥NG IV C¸c hÖmËt m· kho¸ c«ng khai 4.1. Giíi thiÖu më ®Çu. 4.1.1. Sù ra ®êi cña mËt m· kho¸ c«ng khai. Trong ch−¬ng I ta ®· giíi thiÖu qua ®Þnh nghÜa cña c¸c kh¸i niÖm hÖ mËt m· kho¸ ®èi xøng vµ hÖ mËt m· kho¸ c«ng khai. Sù ra ®êi cña kh¸i niÖm hÖ mËt m· kho¸ c«ng khai lµ mét tiÕn bé cã tÝnh chÊt b−íc ngoÆt trong lÞch sö mËt m· nãi chung, g¾n liÒn víi sù ph¸t triÓn cña khoa häc tÝnh to¸n hiÖn ®¹i. Ng−êi ta cã thÓ xem thêi ®iÓm khëi ®Çu cña b−íc ngoÆt ®ã lµ sù xuÊt hiÖn ý t−ëng cña W. Diffie vµ M.E. Hellman ®−îc tr×nh bµy vµo th¸ng s¸u n¨m 1976 t¹i Héi nghÞ quèc gia hµng n¨m cña AFIPS (Hoa kú) trong bµi Multiuser cryptographic techniques. Trong bµi ®ã, cïng víi ý t−ëng chung, hai t¸c gi¶ còng ®· ®−a ra nh÷ng thÝ dô cô thÓ ®Ó thùc hiÖn ý t−ëng ®ã, vµ mÆc dï c¸c thÝ dô ch−a cã ý nghÜa thuyÕt phôc ngay ®èi víi t¸c gi¶, th× ý t−ëng vÒ c¸c hÖ mËt m· kho¸ c«ng khai còng ®· rÊt râ rµng vµ cã søc hÊp dÉn ®èi víi nhiÒu ng−êi. Vµ ngay sau ®ã, c«ng viÖc t×m kiÕm nh÷ng thÓ hiÖn cô thÓ cã kh¶ n¨ng øng dông trong thùc tÕ ®· b¾t ®Çu thu hót sù quan t©m cña nhiÒu chuyªn gia. Mét n¨m sau, n¨m 1977, R.L. Rivest, A. Shamir vµ L.M. Adleman ®Ò xuÊt mét hÖ cô thÓ vÒ mËt m· kho¸ c«ng khai mµ ®é an toµn cña hÖ dùa vµo bµi to¸n khã “ph©n tÝch sè nguyªn thµnh thõa sè nguyªn tè”, hÖ nµy vÒ sau trë thµnh mét hÖ næi tiÕng vµ mang tªn lµ hÖ RSA, ®−îc sö dông réng r·i trong thùc tiÔn b¶o mËt vµ an toµn th«ng tin. Còng vµo thêi gian ®ã, M.O. Rabin còng ®Ò xuÊt mét hÖ mËt m· kho¸ c«ng khai dùa vµo cïng bµi to¸n sè häc khã nãi trªn. Liªn tiÕp sau ®ã, nhiÒu hÖ mËt m· khãa c«ng khai ®−îc ®Ò xuÊt, mµ kh¸ næi tiÕng vµ ®−îc quan t©m nhiÒu lµ c¸c hÖ: hÖ McEliece ®−îc ®−a ra n¨m 1978 dùa trªn ®é NP-khã cña bµi to¸n gi¶i m· ®èi víi c¸c hÖ m· cyclic tuyÕn tÝnh, hÖ Merkle- Hellman dùa trªn tÝnh NP- ®Çy ®ñ cña bµi to¸n xÕp ba l«(knapsack problem), hÖ mËt m· næi tiÕng ElGamal dùa trªn ®é khã cña bµi to¸n l«garit rêi r¹c, hÖ nµy vÒ sau ®−îc më réng ®Ó ph¸t triÓn nhiÒu 92
  • 97.
    hÖ t−¬ng tùdùa trªn ®é khã cña c¸c bµi to¸n t−¬ng tù l«garit rêi r¹c trªn c¸c cÊu tróc nhãm cyclic h÷u h¹n, nhãm c¸c ®iÓm nguyªn trªn ®−êng cong eliptic, v.v... §Ó t¨ng ®é b¶o mËt, hÖ mËt m· ElGamal cßn dïng víi t− c¸ch ®Çu vµo cho thuËt to¸n lËp mËt m· cña m×nh, ngoµi kho¸ c«ng khai vµ b¶n râ, mét yÕu tè ngÉu nhiªn ®−îc chän tuú ý, ®iÒu ®ã lµm cho hÖ mËt m· trë thµnh mét hÖ mËt m· x¸c suÊt kho¸ c«ng khai. Mét sè hÖ mËt m· x¸c suÊt kho¸ c«ng khai còng ®−îc ph¸t triÓn sau ®ã bëi Goldwasser-Micali vµ Blum- Goldwasser. TÊt c¶ c¸c hÖ mËt m· kho¸ c«ng khai kÓ trªn sÏ ®−îc tr×nh bµy trong ch−¬ng nµy cïng víi mét sè tÝnh chÊt liªn quan cña chóng. 4.1.2. Mét sè bµi to¸n c¬ b¶n. Sau ®©y ta sÏ nh¾c l¹i mét sè bµi to¸n sè häc ®−îc sö dông ®Õn khi x©y dùng c¸c hÖ mËt m· kho¸ c«ng khai nh− nãi ë trªn. C¸c bµi to¸n nµy phÇn lín ®· ®−îc tr×nh bµy trong ch−¬ng II, mét sè ®−îc ph¸t triÓn thªm cho c¸c øng dông trùc tiÕp khi x©y dùng c¸c hÖ m· cô thÓ, ta liÖt kª d−íi ®©y mét lÇn ®Ó thuËn tiÖn cho c¸c chØ dÉn vÒ sau. Bµi to¸n ph©n tÝch sè nguyªn (thµnh thõa sè nguyªn tè): Cho sè nguyªn d−¬ng n , t×m tÊt c¶ c¸c −íc sè nguyªn tè cña nã, hay lµ t×m d¹ng ph©n tÝch chÝnh t¾c cña n = 1 2 1 2 . ... k k p p pα α α , trong ®ã pi lµ c¸c sè nguyªn tè tõng cÆp kh¸c nhau vµ c¸c αi ≥ 1. Bµi to¸n nµy cã liªn hÖ mËt thiÕt víi c¸c bµi to¸n thö tÝnh nguyªn tè hay thö tÝnh hîp sè cña mét sè nguyªn, nh−ng víi nh÷ng g× mµ ta biÕt ®Õn nay, nã d−êng nh− khã h¬n nhiÒu so víi hai bµi to¸n thö tÝnh nguyªn tè vµ tÝnh hîp sè. Trong lý thuyÕt mËt m·, bµi to¸n nµy th−êng ®−îc sö dông víi c¸c d÷ liÖu n lµ sè nguyªn Blum, tøc c¸c sè nguyªn d−¬ng cã d¹ng tÝch cña hai sè nguyªn tè lín nµo ®ã. Bµi to¸n RSA (Rivest-Shamir-Adleman) : Cho sè nguyªn d−¬ng n lµ tÝch cña hai sè nguyªn tè lÎ kh¸c nhau, mét sè nguyªn d−¬ng e sao cho gcd(e,φ (n)) =1, vµ mét sè nguyªn c ; t×m mét sè nguyªn m sao cho . (mod ) e m c n ≡ §iÒu kiÖn gcd(e,φ (n)) =1 b¶o ®¶m cho viÖc víi mçi sè nguyªn c ∈ {0,1,...,n -1} cã ®óng mét sè m ∈ {0,1,...,n -1} sao cho . (mod ) e m c n ≡ DÔ thÊy r»ng nÕu biÕt hai thõa sè nguyªn tè cña n, tøc lµ biÕt n =p.q th× sÏ biÕt φ (n) = (p -1)(q -1), vµ tõ ®ã, do gcd(e,φ (n)) =1 sÏ 93
  • 98.
    t×m ®−îc d=e -1 modφ (n), vµ do ®ã sÏ t×m ®−îc m =c d modn. Nh− vËy, bµi to¸n RSA cã thÓ qui dÉn trong thêi gian ®a thøc vÒ bµi to¸n ph©n tÝch sè nguyªn. Tuy r»ng cho ®Õn nay ch−a cã mét chøng minh nµo cho viÖc qui dÉn ng−îc l¹i nh−ng nhiÒu ng−êi vÉn tin r»ng hai bµi to¸n ®ã lµ t−¬ng ®−¬ng víi nhau vÒ ®é phøc t¹p tÝnh to¸n. Bµi to¸n thÆng d− bËc hai : Cho mét sè nguyªn lÎ n lµ hîp sè, vµ mét sè nguyªn a ∈Jn , tËp tÊt c¶ c¸c sè a cã ký hiÖu Jacobi a n ⎛ ⎜ ⎜ ⎜ =1. H·y quyÕt ®Þnh xem a cã lµ thÆng d− bËc hai theo modn hay kh«ng? ⎞ ⎟ ⎟ ⎟ ⎝ ⎠ Trong lý thuyÕt mËt m·, bµi to¸n nµy còng th−êng ®−îc xÐt víi tr−êng hîp n lµ sè nguyªn Blum, tøc n lµ tÝch cña hai sè nguyªn tè p vµ q , n =p.q. Ta chó ý r»ng trong tr−êng hîp nµy, nÕu a ∈Jn , th× a lµ thÆng d− bËc hai theo modn khi vµ chØ khi a p ⎛ ⎞ ⎟ ⎜ ⎟ ⎜ ⎟ ⎜ ⎟ ⎜ ⎝ ⎠ =1, ®iÒu kiÖn nµy cã thÓ thö ®−îc dÔ dµng v× nã t−¬ng ®−¬ng víi ®iÒu kiÖn a (p - 1)/2 ≡ 1 (modp). Nh− vËy, trong tr−êng hîp nµy, bµi to¸n thÆng d− bËc hai cã thÓ qui dÉn trong thêi gian ®a thøc vÒ bµi to¸n ph©n tÝch sè nguyªn. MÆt kh¸c, nÕu kh«ng biÕt c¸ch ph©n tÝch n thµnh thõa sè nguyªn tè th× cho ®Õn nay, kh«ng cã c¸ch nµo gi¶i ®−îc bµi to¸n thÆng d− bËc hai trong thêi gian ®a thøc. §iÒu ®ã cñng cè thªm niÒm tin r»ng bµi to¸n thÆng d− bËc hai vµ bµi to¸n ph©n tÝch sè nguyªn lµ cã ®é khã t−¬ng ®−¬ng nhau. Bµi to¸n t×m c¨n bËc hai modn : Cho mét sè nguyªn lÎ n lµ hîp sè Blum, vµ mét sè a ∈Qn , tøc a lµ mét thÆng d− bËc hai theo modn . H·y t×m mét c¨n bËc hai cña a theo modn, tøc t×m x sao cho x2 ≡ a (modn). NÕu biÕt ph©n tÝch n thµnh thõa sè nguyªn tè, n =p.q , th× b»ng c¸ch gi¶i c¸c ph−¬ng tr×nh x 2 ≡ a theo c¸c modp vµ modq, råi sau ®ã kÕt hîp c¸c nghiÖm cña chóng l¹i theo ®Þnh lý sè d− Trung quèc ta sÏ ®−îc nghiÖm theo modn , tøc lµ c¨n bËc hai cña a theo modn cÇn t×m. V× mçi ph−¬ng tr×nh x 2 ≡ a theo modp vµ modq cã hai nghiÖm (t−¬ng øng theo modp vµ modq ), nªn kÕt hîp l¹i ta ®−îc bèn nghiÖm, tøc bèn c¨n bËc hai cña a theo modn. Ng−êi ta ®· t×m ®−îc mét sè thuËt to¸n t−¬ng ®èi ®¬n gi¶n (trong thêi gian ®a thøc) gi¶i ph−¬ng tr×nh x 2 ≡ a (modp) víi p lµ sè nguyªn tè. 94
  • 99.
    Nh− vËy, bµito¸n t×m c¨n bËc hai modn cã thÓ qui dÉn trong thêi gian ®a thøc vÒ bµi to¸n ph©n tÝch sè nguyªn. Ng−îc l¹i, nÕu cã thuËt to¸n gi¶i bµi to¸n t×m c¨n bËc hai modn th× còng cã thÓ x©y dùng mét thuËt to¸n gi¶i bµi to¸n ph©n tÝch sè nguyªn nh− sau: Chän ngÉu nhiªn mét sè x víi gcd(x,n) =1, vµ tÝnh a =x2 modn. Dïng thuËt to¸n cho a ®Ó t×m mét c¨n bËc hai modn cña a. Gäi c¨n bËc hai t×m ®−îc ®ã lµ y. NÕu y ≡ ±x (modn), th× phÐp thö coi nh− thÊt b¹i, vµ ta ph¶i chän tiÕp mét sè x kh¸c. cßn nÕu y ≢ ±x (modn), th× gcd(x-y, n) ch¾c ch¾n lµ mét −íc sè kh«ng tÇm th−êng cña n, cô thÓ lµ p hay lµ q. V× n cã 4 c¨n bËc hai modn nªn x¸c suÊt cña thµnh c«ng ë mçi lÇn thö lµ 1/2, vµ do ®ã sè trung b×nh (kú väng to¸n häc) c¸c phÐp thö ®Ó thu ®−îc mét thõa sè p hayq cña n lµ 2, tõ ®ã ta thu ®−îc mét thuËt to¸n gi¶i bµi to¸n ph©n tÝch sè nguyªn (Blum) víi thêi gian trung b×nh ®a thøc. Tãm l¹i, theo mét nghÜa kh«ng chÆt chÏ l¾m, ta cã thÓ xem hai bµi to¸n ph©n tÝch sè nguyªn vµ t×m c¨n bËc hai modn lµ khã t−¬ng ®−¬ng nhau. Bµi to¸n l«garit rêi r¹c : Cho sè nguyªn tè p, mét phÇn tö nguyªn thuû α theo modp (hay α lµ phÇn tö nguyªn thuû cña p Z∗ ), vµ mét phÇn tö β ∈ p Z∗ .T×m sè nguyªn x (0≤ x ≤ p - 2) sao cho αx ≡ β (modp). Trong môc 2.4.3 ta ®· giíi thiÖu qua bµi to¸n nµy, vµ biÕt r»ng trong tr−êng hîp chung, cho ®Õn nay ch−a cã mét thuËt to¸n nµo gi¶i bµi to¸n nµy trong thêi gian ®a thøc. Bµi to¸n nµy còng ®−îc suy réng cho c¸c nhãm cyclic h÷u h¹n nh− sau: Bµi to¸n l«garit rêi r¹c suy réng : Cho mét nhãm cyclic h÷u h¹n G cÊp n, mét phÇn tö sinh (nguyªn thuû) α cña G, vµ mét phÇn tö β ∈G. T×m sè nguyªn x (0≤ x ≤ n - 1) sao cho αx = β. C¸c nhãm ®−îc quan t©m nhiÒu nhÊt trong lý thuyÕt mËt m· lµ: nhãm nh©n cña tr−êng h÷u h¹n GF (p) - ®¼ng cÊu víi nhãm p Z∗ cña tr−êng Zp ,nhãm nh©n 2m ∗ F cña tr−êng h÷u h¹n GF (2m ), nhãm nh©n { } :0 1,gcd( , ) 1 n Z a a n a n ∗ = ≤ ≤ − = cña tr−êng Zn víi n lµ hîp sè, nhãm gåm c¸c ®iÓm trªn mét ®−êng cong elliptic x¸c ®Þnh trªn mét tr−êng h÷u h¹n, v.v... Bµi to¸n Diffie-Hellman : Cho sè nguyªn tè p, mét phÇn tö nguyªn thuû α theo modp (tøc phÇn tö sinh cña p Z∗ ), vµ c¸c phÇn tö mod a p α vµ mod b p α . 95
  • 100.
    H·y t×m gi¸trÞ mod ab p α . Cã thÓ chøng minh ®−îc r»ng bµi to¸n Diffie-Hellman qui dÉn ®−îc vÒ bµi to¸n l«garit rêi r¹c trong thêi gian ®a thøc. Thùc vËy, gi¶ sö cã thuËt to¸n gi¶i bµi to¸n l«garit rêi r¹c. Khi ®ã, cho mét bé d÷ liÖu vµo cña bµi to¸n Diffie-Hellman gåm p, α , mod a p α vµ mod b p α ; tr−íc hÕt dïng thuËt to¸n cho (p, α , mod a p α ) ta t×m ®−îc , vµ sau ®ã tÝnh ®−îc a mod ( ) mod . ab b a p p α α = Ng−êi ta còng chøng minh ®−îc hai bµi to¸n l«garit rêi r¹c vµ Diffie- Hellman lµ t−¬ng ®−¬ng vÒ mÆt tÝnh to¸n trong mét sè tr−êng hîp, vÝ dô p -1 lµ B-mÞn víi B = O ((lnp)c ),c lµ h»ng sè. T−¬ng tù nh− víi bµi to¸n l«garit rêi r¹c, ta còng cã thÓ ®Þnh nghÜa c¸c bµi to¸n Diffie-Hellman suy réng cho c¸c nhãm cyclic h÷u h¹n kh¸c. Bµi to¸n tæng tËp con (hay bµi to¸n KNAPSACK) : { } 1 2 , ,..., n a a a Cho mét tËp c¸c sè nguyªn d−¬ng vµ mét sè nguyªn d−¬ng s. H·y x¸c ®Þnh xem cã hay kh«ng mét tËp con c¸c aj mµ tæng cña chóng b»ng s. Mét c¸ch t−¬ng ®−¬ng, h·y x¸c ®Þnh xem cã hay kh«ng c¸c xi ∈{0,1} (1≤ i ≤ n) sao cho 1 . n i i i a x s = = ∑ Bµi to¸n nµy lµ mét bµi to¸n NP- ®Çy ®ñ, tøc lµ thuéc líp nh÷ng bµi to¸n khã mµ cho ®Õn nay ch−a t×m ®−îc thuËt to¸n gi¶i chóng trong thêi gian ®a thøc ! Bµi to¸n gi¶i m· ®èi víi m· tuyÕn tÝnh : M· tuyÕn tÝnh lµ mét líp m· truyÒn tin cã tÝnh chÊt tù söa sai ®−îc sö dông trong kü thuËt truyÒn tin sè ho¸. Kh«ng ®i vµo chi tiÕt cña líp m· nµy, ta cã thÓ ph¸t biÓu trùc tiÕp bµi to¸n gi¶i m· ®èi víi m· tuyÕn tÝnh nh− sau: Cho mét ma trËn cÊp n xm A=(aij) gåm c¸c thµnh phÇn lµ 0 hoÆc 1, mét vect¬ y =(y1,y2,...,ym) c¸c gi¸ trÞ 0 vµ 1, vµ mét sè nguyªn d−¬ng K. Hái: cã hay kh«ng mét vect¬ x =(x1,x2,...,xn) gåm c¸c sè 0 hoÆc 1 vµ cã kh«ng nhiÒu h¬n K sè 1 sao cho víi mäi j (1≤ j ≤ m): ? 1 . (mod n i ij j i x a y = ≡ ∑ 2) Chó ý r»ng ë ®©y, x lµ vect¬ th«ng tin, vµ y lµ vect¬ m·, phÐp gi¶i m· lµ t×m l¹i x khi nhËn ®−îc y, bµi to¸n nµy tiÕc thay l¹i lµ mét bµi to¸n khã; Berlekamp, McEliece vµ Tilborg n¨m 1978 ®· chøng minh nã thuéc líp c¸c bµi to¸n NP- ®Çy ®ñ ! 96
  • 101.
    4.2. HÖ mËtm· kho¸ c«ng khai RSA. 4.2.1. M« t¶ hÖ mËt m· RSA. S¬ ®å chung cña hÖ mËt m· kho¸ c«ng khai ®−îc cho bëi S = (P , C , K , E , D ) (1) trong ®ã P lµ tËp ký tù b¶n râ, C lµ tËp ký tù b¶n m·, K lµ tËp c¸c kho¸ K , mçi kho¸ K gåm cã hai phÇn K =(K’,K''), K' lµ kho¸ c«ng khai dµnh cho viÖc lËp mËt m·, cßn K'' lµ kho¸ bÝ mËt dµnh cho viÖc gi¶i m·. Víi mçi ký tù b¶n râ x∈P , thuËt to¸n lËp m· E cho ta ký tù m· t−¬ng øng y =E (K', x) ∈ C , vµ víi ký tù m· y thuËt to¸n gi¶i m· D sÏ cho ta l¹i ký tù b¶n râ x : D (K'', y) = D (K'', E (K', x)) =x. §Ó x©y dùng mét hÖ mËt m· kho¸ c«ng khai RSA, ta chän tr−íc mét sè nguyªn n =p.q lµ tÝch cña hai sè nguyªn tè lín, chän mét sè e sao cho gcd(e, φ (n)) =1, vµ tÝnh sè d sao cho e.d ≡ 1(modφ (n)). Mçi cÆp K =(K’,K''), víi K' =(n,e) vµ K'' = d sÏ lµ mét cÆp kho¸ cña mét hÖ mËt m· RSA cô thÓ cho mét ng−êi tham gia. Nh− vËy, s¬ ®å chung cña hÖ mËt m· RSA ®−îc ®Þnh nghÜa bëi danh s¸ch (1), trong ®ã: P = C = Zn , trong ®ã n lµ mét sè nguyªn Blum, tøc lµ tÝch cña hai sè nguyªn tè; K = {K =(K’,K''): K' =(n,e) vµ K'' = d, gcd(e, φ (n)) =1, e.d ≡ 1(modφ (n))}; E vµ D ®−îc x¸c ®Þnh bëi: E (K', x) = xe modn, víi mäi x ∈P , D (K'', y) = yd modn, víi mäi y ∈C . §Ó chøng tá ®Þnh nghÜa trªn lµ hîp thøc, ta ph¶i chøng minh r»ng víi mäi cÆp kho¸ K =(K' ,K'' ), vµ mäi x ∈P , ta ®Òu cã D (K'', E (K', x)) = x . Thùc vËy, do e.d ≡ 1(modφ (n)) ta cã thÓ viÕt e.d = t .φ (n) +1. NÕu x nguyªn tè víi n , th× dïng ®Þnh lý Euler (xem 2.1.3) ta cã D (K'', E (K', x)) = ( ) 1 ( ) . (mod ) . ed t n t n x x x x n φ φ + x ≡ ≡ = NÕu x kh«ng nguyªn tè víi n , th× do n =p.q , hoÆc x chia hÕt cho p vµ nguyªn tè víi q, hoÆc x chia hÕt cho q vµ nguyªn tè víi p, vµ φ (n) =(p -1).(q -1),trong c¶ hai tr−êng hîp ta ®Òu cã ( ) 1 ( ) 1 (mod ), (mod ); t n t n x x p x x q φ φ + + ≡ ≡ 97
  • 102.
    tõ ®ã suyra ( ) 1 (mod ), t n x x n φ + ≡ tøc D (K'', E (K', x)) =x. ThÝ dô: Gi¶ sö chän n =p.q = 2357.2551 = 6012707, ta sÏ cã φ (n) = (p -1).(q -1)=2356.2550 = 6007800. Chän e = 3674911, vµ tÝnh ®−îc d = 422191 sao cho e.d ≡ 1(modφ (n)). Mét ng−êi dïng A cã thÓ chän kho¸ c«ng khai lµ K' =(n =6012707, e = 3674911) vµ gi÷ kho¸ bÝ mËt K'' =d =422191. Mét ®èi t¸c B muèn göi cho A mét th«ng b¸o x =5234673, sÏ dïng kho¸ c«ng khai ®Ó t¹o b¶n mËt m· y =xe = 52346733674911 mod6012707 = 3650502. A nhËn ®−îc y, gi¶i m· sÏ ®−îc b¶n râ x =3650502422191 mod 6012707 =5234673. 4.2.2. Thùc hiÖn hÖ mËt m· RSA. §Ó thùc hiÖn hÖ mËt m· RSA cho mét m¹ng truyÒn tin b¶o mËt, ngoµi viÖc x©y dùng c¸c ch−¬ng tr×nh tÝnh to¸n hµm E (víi tham biÕn ®Çu vµo lµ n ,e vµ x) vµ hµm D (víi tham biÕn ®Çu vµo lµ n ,d vµ y), ta cßn ph¶i chän cho mçi ng−êi tham gia mét bé (n,e,d) ®Ó t¹o c¸c kho¸ c«ng khai K' vµ kho¸ bÝ mËt K'' . HÖ m· cña mçi ng−êi tham gia chØ cã kh¶ n¨ng b¶o mËt khi n =p.q lµ sè nguyªn rÊt lín (vµ do ®ã p,q còng ph¶i lµ nh÷ng sè nguyªn tè rÊt lín); rÊt lín cã nghÜa lµ p,q ph¶i cã biÓu diÔn thËp ph©n cì h¬n 100 ch÷ sè, do ®ã n cã cì h¬n 200 ch÷ sè thËp ph©n, hay n ≥ 10200 ! TÝnh to¸n c¸c sè e,d , hay thùc hiÖn c¸c hµm E , D , ®Òu chñ yÕu lµ thùc hiÖn c¸c phÐp tÝnh sè häc trªn c¸c sè nguyªn rÊt lín; vÒ vÊn ®Ò nµy trong mÊy chôc n¨m qua, khoa lËp tr×nh m¸y tÝnh ®· ®Ò xuÊt nhiÒu ch−¬ng tr×nh m¸y tÝnh lµm viÖc rÊt cã hiÖu qu¶, ta cã thÓ tham kh¶o ®Ó sö dông khi thùc thi c¸c hÖ mËt m· RSA còng nh− nhiÒu hÖ mËt m· kh¸c. 4.2.3. TÝnh b¶o mËt cña mËt m· RSA. Bµi to¸n th¸m m· (khi chØ biÕt b¶n m·) ®èi víi mËt m· RSA lµ: biÕt kho¸ c«ng khai K' =(n,e), biÕt b¶n m· y =x e modn, t×m x. Bµi to¸n nµy chÝnh lµ bµi to¸n RSA ®−îc tr×nh bµy trong môc 4.1.2. Trong môc ®ã ta ®· chøng tá r»ng nÕu biÕt hai thõa sè p,q cña n th× dÔ t×m ®−îc x tõ y, vµ nãi chung cã b»ng chøng ®Ó coi r»ng bµi to¸n RSA (hay bµi to¸n th¸m m· RSA) lµ cã ®é khã t−¬ng ®−¬ng víi bµi to¸n ph©n tÝch sè nguyªn (Blum) thµnh thõa sè nguyªn tè. Do ®ã, gi÷ tuyÖt mËt kho¸ bÝ mËt d , hay gi÷ tuyÖt mËt c¸c thõa sè p,q , lµ cã ý nghÜa rÊt quyÕt ®Þnh ®Õn viÖc b¶o vÖ tÝnh an toµn cña hÖ mËt m· RSA. Mét m¹ng truyÒn tin b¶o mËt sö dông s¬ ®å c¸c hÖ mËt m· RSA ®−îc xem lµ an toµn, nÕu tu©n thñ c¸c ®iÒu kiÖn c¬ b¶n: mçi 98
  • 103.
    ng−êi tham giaph¶i ®éc lËp lùa chän c¸c tham sè n, e,d cña riªng m×nh, chän n còng cã nghÜa lµ chän c¸c thõa sè p,q cña n (n =p.q), vµ do cã p,q nªn tÝnh ®−îc φ (n) = (p -1).(q -1), vµ tõ ®ã t×m ®−îc e,d t−¬ng ®èi dÔ dµng; nh−ng còng chÝnh v× vËy mµ sau khi ®· chän th× mçi ng−êi tham gia ph¶i gi÷ tuyÖt ®èi bÝ mËt c¸c gi¸ trÞ p,q,d , chØ c«ng bè kho¸ c«ng khai (n,e) mµ th«i. Tuy nhiªn, ®ã lµ ®iÒu kiÖn chung, cßn trong thùc tÕ vÉn cã thÓ cßn nhiÒu s¬ hë mµ ng−êi th¸m m· cã thÓ lîi dông ®Ó tÊn c«ng vµo tÝnh b¶o mËt cña c¸c hÖ m· RSA khã mµ l−êng tr−íc hÕt ®−îc; sau ®©y lµ mét sè tr−êng hîp ®¬n gi¶n ®· biÕt mµ ta cÇn chó ý: 1.Dïng m«®uyn n chung. Gi¶ sö cã hai ng−êi tham gia A vµ B cïng sö dông mét m«®uyn chung n trong kho¸ c«ng khai cña m×nh, ch¼ng h¹n A chän kho¸ c«ng khai (n,e) vµ gi÷ kho¸ bÝ mËt d, B chän kho¸ c«ng khai (n,a) vµ gi÷ kho¸ bÝ mËt b. Mét ng−êi tham gia thø ba C göi mét v¨n b¶n cÇn b¶o mËt x ®Õn c¶ A vµ B th× dïng c¸c kho¸ c«ng khai nãi trªn ®Ó göi ®Õn A b¶n mËt m· y =x e modn vµ göi ®Õn B b¶n mËt m· z = mod a x n . Ta sÏ chøng tá r»ng mét ng−êi th¸m m· O cã thÓ dùa vµo nh÷ng th«ng tin n,e,a,y,z trªn ®−êng c«ng khai mµ ph¸t hiÖn ra b¶n râ x nh− sau: a. TÝnh c = e-1 moda, b. Sau ®ã tÝnh h = (ce -1)/a , c. Vµ ta ®−îc x = yc (zh )-1 modn. Thùc vËy, theo ®Þnh nghÜa trªn, ce -1 chia hÕt cho a, vµ tiÕp theo ta cã: yc (zh )-1 modn = xec . ( 1)/ 1 1 1 ( ) mod .( ) mod a ce a ce ce x n x x n x − − − − = = . Nh− vËy, trong tr−êng hîp nµy viÖc truyÒn tin b¶o mËt kh«ng cßn an toµn n÷a. V× vËy, ta cÇn nhí khi dïng c¸c hÖ RSA ®Ó tæ chøc m¹ng truyÒn tin b¶o mËt, cÇn tr¸nh dïng m«®uyn n chung cho c¸c ng−êi tham gia kh¸c nhau! 2. Dïng sè mò lËp m· e bÐ. §Ó cho viÖc tÝnh to¸n hµm lËp m· ®−îc hiÖu qu¶, ta dÔ cã xu h−íng chän sè mò e cña hµm lËp m· lµ mét sè nguyªn bÐ, ch¼ng h¹n e =3. Tuy nhiªn, nÕu trong mét m¹ng truyÒn tin b¶o mËt dïng c¸c hÖ mËt m· RSA, nÕu cã nhiÒu ng−êi cïng chän sè mò lËp m· e bÐ gièng nhau th× sÏ cã nguy c¬ bÞ tÊn c«ng bëi viÖc th¸m m· nh− sau : Gi¶ sö cã ba ng−êi tham gia chän ba kho¸ c«ng khai lµ (n1, e), (n2, e), (n3, e) víi cïng sè mò e =3. Mét ng−êi tham gia A muèn göi mét th«ng b¸o x cho c¶ ba ng−êi ®ã, vµ ®Ó b¶o mËt, göi b¶n m· ci = x3 modni cho ng−êi thø i. Ba m«®uyn ni lµ kh¸c nhau, vµ cã phÇn ch¾c lµ tõng cÆp nguyªn tè víi nhau. Mét ng−êi th¸m m· cã thÓ dïng ®Þnh lý sè d− Trung quèc ®Ó t×m mét sè m (0≤ m ≤ n1n2n3) tho¶ m·n 99
  • 104.
    1 1 2 2 33 mod mod mod m c n m c n m c n ≡ ⎧ ⎪ ≡ ⎨ ⎪ ≡ ⎩ V× x ≤ ni , nªn x 3 ≤ n1n2n3 , do ®ã ¾t cã m =x 3 . VËy lµ ta ®· ®−a ®−îc bµi to¸n t×m c¨n bËc ba theo nghÜa ®ång d− modni vÒ bµi to¸n t×m c¨n bËc ba theo nghÜa sè häc th«ng th−êng: t×m c¨n bËc ba cña m ta ®−îc x, tøc ®−îc b¶n râ! Víi nh÷ng lý do kh¸c, ng−êi ta ®· cã nh÷ng b»ng chøng ®Ó chøng tá r»ng hÖ RSA còng kh«ng b¶o ®¶m an toµn nÕu ta dïng c¸c kho¸ cã sè mò gi¶i m· d lµ sè nguyªn bÐ, dï r»ng khi ®ã thuËt to¸n gi¶i m· cã lµm viÖc hiÖu qu¶ h¬n. V× thÕ, khi sö dông c¸c hÖ mËt m· RSA, ®Ó b¶o ®¶m an toµn ta nªn chän c¸c sè mò e vµ d lµ nh÷ng sè nguyªn lín, cã kÝch cì lín gÇn nh− b¶n th©n sè n. 3. Lîi dông tÝnh nh©n cña hµm lËp m·. Ta chó ý r»ng hµm lËp m· f (x) = x e modn cã tÝnh nh©n (multiplicative property), nghÜa lµ f (x.y) = f (x).f (y). Dùa vµo tÝnh chÊt ®ã, ta thÊy r»ng nÕu c lµ mËt m· cña b¶n râ x, th× . mod e c c u n = sÏ lµ mËt m· cña b¶n râ xu. Do ®ã, khi lÊy ®−îc b¶n mËt m· c , ®Ó ph¸t hiÖn b¶n râ x ng−êi th¸m m· cã thÓ chän ngÉu nhiªn mét sè u råi t¹o ra b¶n m· c ,vµ nÕu ng−êi th¸m m· cã kh¶ n¨ng th¸m m· theo kiÓu « cã b¶n m· ®−îc chän » (xem 1.5.1), tøc cã kh¶ n¨ng víi c ®−îc chän t×m ra b¶n râ t−¬ng øng lµ x =xu ,th× b¶n râ gèc cÇn ph¸t hiÖn sÏ lµ x = 1 . mod x u− n . TÊt nhiªn, kh¶ n¨ng ng−êi th¸m m· cã n¨ng lùc gi¶i quyÕt bµi to¸n th¸m m· theo kiÓu cã b¶n m· ®−îc chän lµ rÊt hiÕm, nh−ng dÇu sao ®Êy còng lµ mét tr−êng hîp mµ vÊn ®Ò b¶o mËt dÔ bÞ tÊn c«ng, ta kh«ng thÓ kh«ng tÝnh ®Õn ®Ó t×m c¸ch tr¸nh! 4. TÊn c«ng b»ng c¸ch lÆp phÐp m·. Ta còng chó ý r»ng hµm lËp m· f (x) = xe modn lµ mét phÐp ho¸n vÞ trªn tËp Zn ={0,1,...,n -1}, do ®ã víi mäi c ∈Zn nÕu ta thùc hiÖn lÆp phÐp lËp m· ®Ó ®−îc 2 0 1 2 , mod , mod ,..., mod ,... i e e e i c c c c n c c n c c n = = = = ¾t sÏ t×m ®−îc sè k ≥ 1 sao cho mod k e k c c n c = = . NÕu c lµ b¶n m· cña mét b¶n râ x nµo ®ã, c =xe modn, th× ng−êi th¸m m· cã thÓ xuÊt ph¸t tõ c thùc hiÖn lÆp phÐp lËp m· nh− trªn sÏ t×m ®−îc sè k ≥ 1 bÐ nhÊt sao cho ck =c . Vµ khi ®ã ta sÏ cã sè h¹ng tr−íc ®ã ck -1=x, lµ b¶n râ cÇn ph¸t hiÖn. ThuËt to¸n vÒ h×nh thøc lµ kh¸ ®¬n gi¶n, nh−ng hiÖu qu¶ thùc hiÖn kh«ng ®¸ng hy väng l¾m, v× sè phÐp lÆp cÇn thùc hiÖn nãi chung cã thÓ lµ rÊt lín, cì b»ng sè c¸c phÐp ho¸n vÞ trªn Zn , tøc lµ b»ng n !, víi sè n cã kho¶ng 200 ch÷ sè thËp ph©n. Trªn thùc tÕ, pháng theo thuËt to¸n nãi trªn ta cã thÓ dÔ dµng cã mét thuËt to¸n ph©n tÝch n thµnh thõa sè nguyªn tè, mµ mét thuËt 100
  • 105.
    to¸n nh− vËylµm viÖc cã hiÖu qu¶ thiÕt thùc, nh− ®· tr×nh bµy trong mét phÇn trªn, lµ ch−a cã! V× vËy, nguy c¬ bÞ th¸m m· b»ng thuËt to¸n ®¬n gi¶n nãi trªn ®èi víi tÝnh an toµn cña hÖ mËt m· RSA lµ kh«ng ®¸ng ng¹i l¾m. 5. VÒ kh¶ n¨ng che giÊu cña b¶n mËt m·. MËt m·, së dÜ nã gi÷ ®−îc bÝ mËt, lµ do kh¶ n¨ng che giÊu th«ng tin cña nã, tøc lµ biÕt b¶n m· y khã lßng t×m ®−îc th«ng tin nµo ®Ó ph¸t hiÖn ra b¶n râ x. Mét c¸ch th« thiÓn, ta nãi b¶n râ x lµ kh«ng che giÊu ®−îc qua phÐp lËp mËt m· RSA eK (x) =x e modn, nÕu eK (x) =x. Nãi c¸ch kh¸c, x lµ kh«ng che giÊu ®−îc nÕu b¶n m· cña x còng chÝnh lµ x. TiÕc r»ng víi bÊt kú hÖ mËt m· RSA nµo còng cã nh÷ng b¶n râ kh«ng che giÊu ®−îc, ®ã lµ nh÷ng b¶n râ x = -1, 0, 1 modn (v× sè mò e lu«n lu«n lµ sè lÎ). Ng−êi ta chøng minh ®−îc r»ng nÕu n =p.q, th× sè c¸c b¶n râ x ∈Zn kh«ng che giÊu ®−îc lµ b»ng (1+gcd(e -1, p -1)).(1+gcd(e -1, q -1)). V× e -1, p -1, q -1 lµ c¸c sè ch½n, nªn sè ®ã Ýt nhÊt lµ 9, nªn mçi hÖ RSA cã Ýt nhÊt 9 b¶n râ kh«ng che giÊu ®−îc. Tuy nhiªn, th−êng n, vµ do ®ã c¶ p vµ q, ®Òu rÊt lín, nªn tû lÖ c¸c b¶n râ kh«ng che giÊu ®−îc nãi chung lµ bÐ kh«ng ®¸ng kÓ, vµ do ®ã kh¶ n¨ng gÆp c¸c b¶n râ kh«ng che giÊu ®−îc kh«ng t¹o nªn mét nguy c¬ ®¸ng kÓ nµo ®èi víi viÖc dïng c¸c hÖ mËt m· RSA. 4.3. HÖ mËt m· kho¸ c«ng khai Rabin. 4.3.1. M« t¶ hÖ mËt m· Rabin. S¬ ®å hÖ mËt m· kho¸ c«ng khai Rabin ®−îc cho bëi S = (P , C , K , E , D ), trong ®ã: P =C = Zn , trong ®ã n lµ mét sè nguyªn Blum, n =p.q, víi p vµ q lµ hai sè nguyªn tè cã tÝnh chÊt p ≡ 3(mod4), q ≡ 3(mod4), K = {K = (K', K'') : K' =(n,B), K'' =(p,q), 0≤B ≤ n –1}, c¸c thuËt to¸n E vµ D ®−îc x¸c ®Þnh bëi E (K' ,x) = x (x +B) modn , D (K'',y) = 2 mod . 4 2 B B y n + − (ký hiÖu c¨n bËc hai sÏ ®−îc gi¶i thÝch sau). 101
  • 106.
    Trong mét m¹ngtruyÒn tin b¶o mËt víi s¬ ®å mËt m· Rabin, mçi ng−êi tham gia chän cho m×nh c¸c yÕu tè n,B,p,q ®Ó lËp nªn kho¸ c«ng khai vµ kho¸ bÝ mËt cña m×nh. Ta chó ý r»ng víi mçi bé kho¸ K, c¸c thuËt to¸n K e ′ = E (K' ,.) vµ K d ′′ = D (K'',.) kh«ng lËp thµnh mét cÆp song ¸nh, cô thÓ lµ K e ′ kh«ng ph¶i lµ mét ®¬n ¸nh, v× nÕu w lµ mét c¨n bËc hai cña 1 theo modn th× K e ′ (w(x + 2 B ) - 2 B ) = K e ′ (x), mµ ta cã ®Õn 4 c¨n bËc hai cña 1 theo modn ,tøc lµ ta cã 4 gi¸ trÞ kh¸c nhau cña ®èi sè x cho cïng mét gi¸ trÞ K e ′ (x). B©y giê nãi ®Õn thuËt to¸n gi¶i m· K d ′′ = D (K'',.). §Æt C = B 2 /4 +y, ta cã K d ′′ (y) = / 2 mod C B n − , do ®ã ®Ó cã K d ′′ (y), ta cÇn tÝnh C modn, tøc cÇn gi¶i ph−¬ng tr×nh z 2 ≡ C modn . Ph−¬ng tr×nh ®ã t−¬ng ®−¬ng víi hÖ thèng gåm hai ph−¬ng tr×nh sau ®©y: (2) 2 2 mod , mod . z C p z C q ⎧ ≡ ⎪ ⎨ ≡ ⎪ ⎩ V× p vµ q lµ c¸c sè nguyªn tè nªn ta cã 1 2 1mod p C p − ≡ , 1 2 1mod q C q − ≡ . Theo gi¶ thiÕt, p ≡ 3(mod4) vµ q ≡ 3(mod4), nªn 1 4 4 p q 1 + + va` lµ c¸c sè nguyªn; vµ ta cã 1 1 2 2 4 4 ( ) (mod ), ( ) (mod ). p q C C p C C + + ± ≡ ± ≡ q Do ®ã,ph−¬ng tr×nh z 2 ≡ C modn , hay hÖ ph−¬ng tr×nh (2), cã 4 nghiÖm theo modn , t−¬ng øng víi 4 hÖ ph−¬ng tr×nh sau ®©y : ( 1)/ 4 ( 1)/ 4 ( 1)/ 4 ( 1)/ 4 (mod ) (mod ) (mod ) (mod ) p p q q z C p z C p z C q z C q + + + + ⎧ ⎧ ≡ ≡ ⎪ ⎪ ⎨ ⎨ ≡ ≡− ⎪ ⎪ ⎩ ⎩ ( 1)/ 4 ( 1)/ 4 ( 1)/ 4 ( 1)/ 4 (mod ) (mod ) (mod ) (mod ) p p q q z C p z C p z C q z C q + + + + ⎧ ⎧ ≡− ≡− ⎪ ⎪ ⎨ ⎨ ≡ ≡− ⎪ ⎪ ⎩ ⎩ C¶ 4 nghiÖm cña 4 hÖ ph−¬ng tr×nh ®ã theo modn ®Òu ®−îc viÕt chung d−íi mét ký hiÖu lµ C modn, vµ v× vËy thuËt to¸n gi¶i m· K d ′′ (y) thùc tÕ sÏ cho ta 4 gi¸ trÞ kh¸c nhau theo modn mµ b¶n râ lµ mét trong 4 gi¸ trÞ ®ã. ViÖc chän gi¸ trÞ nµo trong 4 gi¸ trÞ t×m ®−îc lµm b¶n râ lµ tuú thuéc vµo nh÷ng ®Æc tr−ng kh¸c cña b¶n râ mµ ng−êi gi¶i m· nhËn biÕt (thÝ dô b¶n râ d−íi d¹ng sè ph¶i cã biÓu diÔn nhÞ ph©n lµ m· cña mét v¨n b¶n tiÕng Anh th«ng th−êng). 102
  • 107.
    ThÝ dô :Gi¶ sö n =77 = 7.11, B =9 (ë ®©y p =7, q =11). Ta cã K e ′ (x) = x2 + 9x mod77, K d ′′ (y) = 1 43mod77 y + − , v× 2-1 =39mod77, 9.2-1 =9.39 =43mod77, B2 =4mod77, B2 /4 =1mod 77. Víi x =44 ta cã K e ′ (x) = 442 +9.44 =2332 =22mod77, b¶n m· t−¬ng øng víi x lµ y = 22. B©y giê gi¶i m· víi b¶n m· y =22, b»ng thñ tôc nãi trªn ta cã thÓ t×m ®−îc 4 gi¸ trÞ cña 1 1 22 y + = + = 23 theo mod77 lµ 10,67,32,45, tõ ®ã 4 gi¸ trÞ cã thÓ cã cña K d ′′ (y) lµ K d ′′ (y) = 44, 24, 66, 2. B¶n râ n»m trong 4 gi¸ trÞ ®ã, trong tr−êng hîp nµy lµ 44. 4.3.2. TÝnh an toµn cña hÖ mËt m· Rabin. Trong ®Þnh nghÜa cña hÖ mËt m· Rabin, kho¸ c«ng khai lµ (n,B), kho¸ bÝ mËt lµ (p,q) tøc lµ cÆp thõa sè nguyªn tè cña n . Nh− vËy, tÝnh an toµn cña hÖ mËt m· n»m ë viÖc gi÷ bÝ mËt c¸c thõa sè p vµ q. §Þnh nghÜa cña phÐp gi¶i m· còng cho ta thÊy r»ng yÕu tè cã ý nghÜa quyÕt ®Þnh trong phÐp gi¶i m· lµ viÖc tÝnh c¨n bËc hai cña mét sè theo modn. Trong môc 4.1.2 bµi to¸n t×m c¨n bËc hai theo modn (víi n lµ hîp sè Blum) ®· ®−îc chøng tá lµ cã ®é khã t−¬ng ®−¬ng víi bµi to¸n ph© n tÝch n thµnh thõa sè nguyªn tè. V× vËy, bµi to¸n gi¶i m· ®èi víi hÖ mËt m· Rabin, còng lµ bµi to¸n gi÷ bÝ mËt kho¸ bÝ mËt (p,q), vµ bµi to¸n ph©n tÝch sè nguyªn thµnh thõa sè nguyªn tè lµ cã ®é khã t−¬ng ®−¬ng nhau. Vµ ®ã còng lµ yÕu tè b¶o ®¶m tÝnh an toµn cña hÖ mËt m· Rabin ! 4.4. HÖ mËt m· kho¸ c«ng khai ElGamal. 4.4.1. M« t¶ hÖ mËt m· ElGamal. HÖ mËt m· ElGamal ®−îc T. ElGamal ®Ò xuÊt n¨m 1985, dùa vµo ®é phøc t¹p cña bµi to¸n tÝnh l«garit rêi r¹c, vµ sau ®ã ®· nhanh chãng ®−îc sö dông réng r·i kh«ng nh÷ng trong vÊn ®Ò b¶o mËt truyÒn tin mµ cßn trong c¸c vÊn ®Ò x¸c nhËn vµ ch÷ ký ®iÖn tö. S¬ ®å hÖ mËt m· kho¸ c«ng khai ElGamal ®−îc cho bëi S = (P , C , K , E , D ), trong ®ã: P = p Z∗ , C = p p Z Z ∗ ∗ × , víi p lµ mét sè nguyªn tè; K ={K = (K', K'') : K' =(p,α ,β) , K'' = a , β ≡ α a modp}, 103
  • 108.
    ë ®©y αlµ mét phÇn tö nguyªn thuû theo modp, tøc cña p Z∗ . C¸c thuËt to¸n lËp m· K e ′ = E (K' ,.) vµ gi¶i m· K d ′′ = D (K'',.) ®−îc x¸c ®Þnh nh− sau: Víi mçi x∈P = p Z∗ , ®Ó lËp mËt m· cho x tr−íc hÕt ta chän thªm mét sè ngÉu nhiªn k ∈ Zp -1 råi tÝnh: K e ′ (x,k ) = (y1, y2), víi 1 2 mod , . mod k k y p y x p α β ⎧ = ⎪ ⎨ = ⎪ ⎩ . Víi mäi sè ngÉu nhiªn k bÊt kú, ta ®Òu xem K e ′ (x,k ) lµ mËt m· cña x. Vµ thuËt to¸n gi¶i m· ®−îc x¸c ®Þnh bëi K d ′′ (y1, y2) = 1 2 1 .( ) mod . a y y p − C¸c phÐp lËp mËt m· vµ gi¶i m· ®−îc x¸c ®Þnh nh− vËy lµ hîp thøc, v× ta cã víi mäi x∈P = p Z∗ vµ mäi k ∈ Zp -1 : K d ′′ ( K e ′ (x,k )) = . 1 . .( ) mod . . mod k k a k k . x p x p x β α β β − − = = Ta chó ý r»ng trong mét m¹ng truyÒn th«ng b¶o mËt víi viÖc dïng s¬ ®å mËt m· ElGamal, mçi ng−êi tham gia tù chän cho m×nh c¸c tham sè p,α, a, råi tÝnh β, sau ®ã lËp vµ c«ng bè kho¸ c«ng khai K' =(p,α ,β), nh−ng ph¶i gi÷ tuyÖt mËt kho¸ bÝ mËt K'' = a. Bµi to¸n biÕt kho¸ c«ng khai t×m ra kho¸ bÝ mËt chÝnh lµ bµi to¸n tÝnh l«garit rêi r¹c ®−îc kÓ ®Õn trong môc 4.1.2, mét bµi to¸n khã cho ®Õn nay ch−a cã mét thuËt to¸n nµo lµm viÖc trong thêi gian ®a thøc gi¶i ®−îc nã. ThÝ dô : Chän p = 2579, α =2, a =765, ta tÝnh ®−îc β = 2765 = 949 mod2579. Ta cã kho¸ c«ng khai (2579, 2, 949) vµ kho¸ bÝ mËt 765. Gi¶ sö ®Ó lËp mËt m· cho x =1299, ta chän ngÉu nhiªn k =853, sÏ cã K e ′ (1299, 853) = (2853 , 1299. 949853 )mod2579 = (453, 2396). Vµ gi¶i m· ta ®−îc l¹i K d ′′ (453, 2396) = 2396. (453765 )-1 mod2579 = 1299. 4.4.2. TÝnh an toµn cña hÖ mËt m· ElGamal. Nh− ®· tr×nh bµy ë trªn, nÕu ta xem tÝnh an toµn cña hÖ mËt m· ElGamal lµ ë viÖc gi÷ tuyÖt mËt kho¸ bÝ mËt K'', th× ta cã thÓ yªn t©m v× bµi to¸n ph¸t hiÖn kho¸ bÝ mËt cã ®é khã t−¬ng ®−¬ng víi bµi to¸n tÝnh l«garit rêi r¹c, mµ bµi to¸n nµy th× nh− ë c¸c môc 4.1.2 vµ 2.4.3 ®· chøng tá, cho ®Õn nay ch−a cã mét thuËt to¸n nµo lµm viÖc trong thêi gian ®a thøc gi¶i ®−îc nã. Cã mét ®iÒu c¶nh b¸o lµ nªn chó ý chän m«®uyn p lµ sè nguyªn tè sao cho p -1 cã Ýt nhÊt mét −íc sè nguyªn tè lín (xem 2.4.3). §iÒu ®ã lµ thùc hiÖn ®−îc 104
  • 109.
    nÕu sè nguuyªntè p ®−îc chän lµ sè nguyªn tè Sophie Germain (tøc cã d¹ng 2q +1, víi q còng lµ sè nguyªn tè lín). Ngoµi ra, cßn cã kh¶ n¨ng kho¸ bÝ mËt K'' = a bÞ lé do cÈu th¶ trong viÖc sö dông sè ngÉu nhiªn k, ®Æc biÖt lµ khi ®Ó lé sè k ®−îc dïng. Thùc vËy, nÕu ®Ó lé sè k, th× kho¸ bÝ mËt a ®−îc tÝnh ra ngay theo c«ng thøc sau ®©y: 1 2 1 ( ) mod( 1). a x ky y p − = − − Nh− vËy,mét ng−êi th¸m m· cã kh¶ n¨ng tÊn c«ng theo kiÓu “biÕt c¶ b¶n râ” (xem 1.5.1) cã thÓ ph¸t hiÖn ra kho¸ a nÕu biÕt k . Mét tr−êng hîp kh¸c lµm mÊt tÝnh an toµn cña hÖ mËt m· ElGamal lµ viÖc dïng cïng mét sè k cho nhiÒu lÇn lËp mËt m·. Thùc vËy, gi¶ sö dïng cïng mét sè ngÉu nhiªn k cho hai lÇn lËp m·, mét lÇn cho x1 , mét lÇn cho x2 , vµ ®−îc c¸c b¶n m· t−¬ng øng (y1,y2) vµ (z1,z2). V× cïng dïng mét sè k nªn y1=z1. Vµ do ®ã theo c«ng thøc lËp m· ta cã z2/y2 = x2/x1, tøc lµ x2 = x1.z2/y2. Nh− vËy, mét ng−êi th¸m m·, mét lÇn “biÕt c¶ b¶n râ” dÔ dµng ph¸t hiÖn ®−îc b¶n râ trong c¸c lÇn sau. 4.4.3. C¸c hÖ mËt m· t−¬ng tù ElGamal. HÖ mËt m· ElGamal ®−îc x©y dùng dùa trªn c¸c yÕu tè : mét nhãm h÷u h¹n cyclic ( p Z∗ ), mét phÇn tö nguyªn thuû (α ∈ p Z∗ ) sao cho bµi to¸n tÝnh l«garit rêi r¹c (tÝnh a = logαβ , tøc cho β t×m a sao cho β = α a modp) lµ rÊt khã thùc hiÖn. V× vËy, nÕu cã ®ñ c¸c yÕu tè ®ã th× ta cã thÓ x©y dùng c¸c hÖ mËt m· t−¬ng tù ElGamal. Nh− vËy, s¬ ®å cña mét hÖ mËt m· t−¬ng tù ElGamal ®−îc cho bëi S = (P , C , K , E , D ), trong ®ã: P =G, C =G G × , víi G lµ mét nhãm cyclic h÷u h¹n; K ={K = (K', K'') : K' =(G,α ,β) , K'' = a , β = α a }, ë ®©y α lµ mét phÇn tö nguyªn thuû cña nhãm G. C¸c thuËt to¸n lËp m· K e ′ = E (K' ,.) vµ gi¶i m· K d ′′ = D (K'',.) ®−îc x¸c ®Þnh nh− sau: Víi mçi x∈P =G, ®Ó lËp mËt m· cho x tr−íc hÕt ta chän thªm mét sè ngÉu nhiªn k (0 ) k G ≤ ≤ råi tÝnh: K e ′ (x,k ) = (y1, y2), víi 1 2 . k k y y x α β ⎧ = ⎪ ⎨ = ⎪ ⎩ Víi mäi sè ngÉu nhiªn k bÊt kú, ta ®Òu xem K e ′ (x,k ) lµ mËt m· cña x. Vµ thuËt to¸n gi¶i m· ®−îc x¸c ®Þnh bëi K d ′′ (y1, y2) = 1 2 1 .( ) mod . a y y p − PhÐp nh©n trong c¸c biÓu thøc nãi trªn ®Òu lµ phÐp nh©n cña G. 105
  • 110.
    Cã hai lípnhãm th−êng ®−îc sö dông ®Ó x©y dùng c¸c hÖ mËt m· t−¬ng tù ElGamal lµ nhãm nh©n cña tr−êng Galois GF(pn ) vµ nhãm céng cña mét ®−êng cong elliptic x¸c ®Þnh trªn mét tr−êng h÷u h¹n. 1. Nhãm nh©n cña tr−êng Galois GF(pn ) : Tr−êng Galois GF(pn ) lµ tr−êng cña c¸c ®a thøc víi hÖ sè trong Zp lÊy theo m«®uyn lµ mét ®a thøc bËc n bÊt kh¶ qui; víi phÐp céng vµ phÐp nh©n lµ phÐp céng vµ phÐp nh©n ®a thøc theo m«®uyn ®ã. Tr−êng cã pn phÇn tö, cã thÓ xem mçi phÇn tö lµ mét ®a thøc bËc n -1 víi hÖ sè thuéc Zp = {0,1,2,...,p -1}, thËm chÝ lµ mét vect¬ n chiÒu mµ c¸c thµnh phÇn lµ c¸c hÖ sè cña ®a thøc ®ã. TËp tÊt c¶ c¸c ®a thøc kh¸c 0 lËp thµnh nhãm nh©n cña tr−êng GF (pn ),vµ ng−êi ta chøng minh ®−îc r»ng nhãm nh©n ®ã lµ cyclic. Nh− vËy, nhãm G = GF (pn ) {0} lµ nhãm cyclic cÊp pn -1. ta cã thÓ chän mét phÇn tö nguyªn thuû cña nhãm ®ã, vµ thiÕt lËp bµi to¸n l«garit rêi r¹c t−¬ng øng, tõ ®ã x©y dùng ®−îc hÖ mËt m· t−¬ng tù ElGamal. 2. Nhãm céng cña ®−êng cong elliptic : Gi¶ sö p lµ mét sè nguyªn tè 3. §−êng cong e p c y lli ti ; 2 =x3 +a.x+b trªn Zp , trong ®ã a,b ∈Zp lµ c¸c h»ng sè tho¶ m·n 4a3 +27b2 ≢ 0 (modp), ®−îc ®Þnh nghÜa lµ tËp hîp tÊt c¶ c¸c ®iÓm (x,y)∈ Zp × Zp tho¶ m·n ph−¬ng tr×nh y2 ≡ x3 +a.x+b (modp), cïng víi mét phÇn tö ®Æc biÖt mµ ta ký hiÖu lµ O . TËp hîp ®ã ®−îc ký hiÖu lµ E. Trªn tËp E ta x¸c ®Þnh mét phÐp céng nh− sau : Gi¶ sö P =(x1, y1) vµ Q = (x2, y2) lµ hai ®iÓm cña E. NÕu x1=x2 vµ y1= -y2 th× ta ®Þnh nghÜa P +Q =O ; nÕu kh«ng th× P +Q = (x3, y3), trong ®ã x3 = λ2 -x1-x2 , y3 = λ (x1-x3) - y1 , víi 2 1 2 1 2 1 1 ( ) /( ), (3 ) / 2 , . y y x x khi P Q x a y khi P Q λ − − ≠ ⎧ ⎪ =⎨ + = ⎪ ⎩ Ngoµi ra, ta ®Þnh nghÜa thªm : P +O = O+P = P. TËp E víi phÐp to¸n céng ®ã lËp thµnh mét nhãm. NÕu ⎢E ⎢=q lµ sè nguyªn tè th× nhãm céng ®ã lµ nhãm cyclic, vµ mäi phÇn tö kh¸c kh«ng (≠O ) ®Òu lµ phÇn tö nguyªn thuû. Ta nhí r»ng trong tr−êng hîp nµy, phÇn tö nghÞch ®¶o lµ phÇn tö ®èi, phÐp n©ng lªn luü thõa n lµ phÐp nh©n víi sè n , phÐp l«garit t−¬ng øng víi mét kiÓu phÐp chia. Ta cã thÓ xuÊt ph¸t tõ nhãm E nµy ®Ó x©y dùng hÖ mËt m· t−¬ng tù ElGamal. 106
  • 111.
    4.5. C¸c hÖmËt m· dùa trªn c¸c bµi to¸n NP-®Çy ®ñ. 4.5.1. Nguyªn t¾c chung. Nh− ®· giíi thiÖu trong ch−¬ng II, c¸c bµi to¸n NP-®Çy ®ñ lµ c¸c bµi to¸n mµ cho ®Õn nay ch−a t×m ®−îc mét thuËt to¸n víi ®é phøc t¹p tÝnh to¸n ®a thøc nµo ®Ó gi¶i chóng. Vµ tÝnh « khã» cña c¸c bµi to¸n ®ã l¹i ®−îc b¶o ®¶m b»ng sù kiÖn lµ chØ cÇn cã mét thuËt to¸n víi ®é phøc t¹p ®a thøc gi¶i mét bµi to¸n NP-®Çy ®ñ nµo ®ã th× lËp tøc mäi bµi to¸n NP-®Çy ®ñ ®Òu gi¶i ®−îc trong thêi gian ®a thøc. §èi víi mét sè bµi to¸n NP-®Çy ®ñ, tuy kh«ng cã thuËt to¸n víi ®é phøc t¹p ®a thøc ®Ó gi¶i ®èi víi mäi d÷ liÖu cña bµi to¸n, nh−ng cã thÓ cã mét líp c¸c d÷ liÖu mµ ®èi víi chóng cã thuËt to¸n ®Ó gi¶i víi thêi gian chÊp nhËn ®−îc. Víi nh÷ng bµi to¸n nh− vËy ta cã thÓ sö dông ®Ó x©y dùng c¸c hÖ mËt m· kho¸ c«ng khai víi nguyªn t¾c chung nh− sau : HÖ mËt m· sÏ cã phÐp gi¶i m· t−¬ng ®−¬ng víi viÖc t×m lêi gi¶i cho bµi to¸n NP-®Çy ®ñ ®ã; tuy nhiªn cã mét thñ tôc ®Ó biÕn mét d÷ liÖu nãi chung cña bµi to¸n NP-®Çy ®ñ ®ã thµnh mét d÷ liÖu thuéc líp ®Æc biÖt mµ ®èi víi nã cã thÓ gi¶i ®−îc bëi mét thuËt to¸n víi ®é phøc t¹p thêi gian chÊp nhËn ®−îc. Nh− vËy, ta ®· biÕn ®−îc phÐp lËp m· thµnh mét hµm « cöa sËp mét phÝa », vµ ®ã lµ c¬ së ®Ó x©y dùng hÖ mËt m· kho¸ c«ng khai t−¬ng øng. Ta sÏ xÐt sau ®©y hai tr−êng hîp x©y dùng ®−îc c¸c hÖ mËt m· kho¸ c«ng khai theo c¸ch nh− vËy : mét lµ hÖ mËt m· Merkle- Hellman dùa trªn bµi to¸n s¾p ba l« (hay bµi to¸n tæng tËp con), vµ hai lµ hÖ mËt m· Mc-Eliece dùa trªn bµi to¸n gi¶i m· tuyÕn tÝnh tù söa sai. 4.5.2. HÖ mËt m· Merkle-Hellman. Bµi to¸n s¾p ba l« (tøc bµi to¸n KNAPSACK, còng ®−îc gäi lµ bµi to¸n tæng tËp con) ®−îc ®Æt ra nh− sau: Cho mét tËp c¸c sè nguyªn d−¬ng { } 1 2 , ,..., n a a a vµ mét sè nguyªn d−¬ng s. H·y x¸c ®Þnh xem cã hay kh«ng mét tËp con c¸c aj mµ tæng cña chóng b»ng s. Mét c¸ch t−¬ng ®−¬ng, h·y x¸c ®Þnh xem cã hay kh«ng c¸c xi ∈{0,1} (1≤ i ≤ n) sao cho 1 . n i i i a x s = = ∑ 107
  • 112.
    Bµi to¸n nµylµ NP-®Çy ®ñ, tuy nhiªn nÕu ta h¹n chÕ bµi to¸n trªn c¸c d÷ liÖu I =({ } 1 2 , ,..., n a a a ,T ), trong ®ã { } 1 2 , ,..., n a a a lµ d·y siªu t¨ng, tøc lµ d·y tho¶ m·n ®iÒu kiÖn 1 1 2,3,..., : , j j i i j n a − = ∀ = a ∑ th× viÖc t×m tr¶ lêi lµ kh¸ dÔ dµng, ch¼ng h¹n cã thÓ b»ng thuËt to¸n ®¬n gi¶n d−íi ®©y: 1. for i =n downto 1 do if T ai then T = T – ai , xi = 1, else xi = 0 2. if 1 . n i i i x a T = = ∑ then 1 ( ,..., ) n X x x = is the solution of problem, else there is no solution. B©y giê, ®Ó chuÈn bÞ x©y dùng mét s¬ ®å mËt m· Merkle-Hellman, ta chän tr−íc mét sè nguyªn d−¬ng n vµ mét sè nguyªn tè p ®ñ lín. Víi mçi ng−êi tham gia sÏ ®−îc chän mét bé kho¸ K = (K', K''), trong ®ã kho¸ bÝ mËt K'' = (A, p, a) gåm mét d·y siªu t¨ng A= { } 1 2 , ,..., n a a a tho¶ m·n vµ mét sè a, 1 a p ; kho¸ c«ng khai K' = {b 1 , n i i a p = ∑ 1,...,bn} víi bi = a.ai modp. S¬ ®å hÖ mËt m· Merkle-Hellman ®−îc ®Þnh nghÜa bëi S = (P , C , K , E , D ), trong ®ã P = {0,1}n , C ={0,1,...,n(p -1)}, K lµ tËp c¸c bé kho¸ K = (K', K'') nh− ®−îc x©y dùng ë trªn. C¸c thuËt to¸n lËp mËt m· vµ gi¶i m· ®−îc x¸c ®Þnh bëi: Víi mäi 1 ( ,..., ) n x x x = ∈ P thuËt to¸n lËp m· cho ta E (K', x) = 1 . n i i i x b = ∑ ; vµ víi mäi y∈C , ta tÝnh z =a-1 .y modp, råi sau ®ã gi¶i bµi to¸n s¾p bal« ®èi víi d÷ liÖu I =({ } 1 2 , ,..., n a a a ,z ) ta sÏ ®−îc lêi gi¶i 1 ( ,..., ) n x x , lêi gi¶i ®ã lµ gi¸ trÞ cña D (K'', y). ThÝ dô: Chän n =6, kho¸ bÝ mËt cã p = 737, A={12, 17, 33, 74, 157, 316}, a =635. TÝnh ®−îc kho¸ c«ng khai lµ {250, 477, 319, 559, 200, 196}. Víi b¶n râ x = 101101 ta cã b¶n m· t−¬ng øng lµ y = 1324. §Ó gi¶i m·, tr−íc hÕt tÝnh z = a-1 .y modp = 635-1 .1324 mod737 = 435, sau ®ã gi¶i bµi to¸n s¾p bal« víi d·y siªu t¨ng A vµ z ta ®−îc 435 = 12 + 33 + 74 + 316, tøc ®−îc lêi gi¶i x = (1,0,1,1,0,1). 108
  • 113.
    HÖ mËt m·Merkle-Hellman ®−îc ®Ò xuÊt kh¸ sím, tõ n¨m 1978, ®Õn n¨m 1985 Shamir t×m ®−îc mét ph−¬ng ph¸p th¸m m· trong thêi gian ®a thøc dùa vµo mét thuËt to¸n cña Lenstra gi¶i bµi to¸n qui ho¹ch ®éng. Tuy nhiªn, sau ®ã, vµo n¨m 1988, Chor vµ Rivest cã ®−a ra mét c¸ch kh¸c x©y dùng hÖ mËt m· còng dùa vµo bµi to¸n s¾p bal«, cho ®Õn nay vÉn gi÷ ®−îc an toµn. 4.5.3. HÖ mËt m· McEliece. HÖ mËt m· McEliece ®−îc x©y dùng dùa vµo tÝnh NP-®Çy ®ñ cña bµi to¸n gi¶i m· tuyÕn tÝnh tù söa sai (trong lý thuyÕt truyÒn tin). Bµi to¸n ®−îc ®Æt ra nh− sau: gi¶ sö nguån tin lµ tËp c¸c tõ k bit nhÞ ph©n, tøc tËp hîp {0,1}k , ®−îc truyÒn ®i trªn mét kªnh cã nhiÔu, tøc lµ nÕu truyÒn trùc tiÕp c¸c d·y tõ k bit th× th«ng tin mµ ta nhËn ®−îc cã thÓ bÞ sai lÖch vµ ta kh«ng nhËn ®−îc ®óng th«ng tin ®−îc truyÒn ®i. §Ó kh¾c phôc nh÷ng sai lÖch ®ã ng−êi ta t×m c¸ch m· ho¸ nguån tin gèc b»ng c¸ch thªm cho mçi tõ k bit mang th«ng tin mét sè bit dïng ®Ó tù hiÖu chØnh, tøc lµ thùc hiÖn mét phÐp m· ho¸ biÕn mçi tõ k bit ban ®Çu thµnh mét tõ n bit, víi n k, ®−îc gäi lµ tõ m·. PhÐp m· ho¸ tuyÕn tÝnh lµ phÐp m· ho¸ ®−îc thùc hiÖn b»ng c¸ch nh©n tõ k bit ban ®Çu x víi mét ma trËn G cÊp k×n ®Ó ®−îc tõ m· n bit y, y =x.G (c¸c phÐp to¸n céng vµ nh©n ®−îc thùc hiÖn theo mod2). Ta ®Þnh nghÜa kho¶ng c¸ch Hamming gi÷a hai tõ m· n bit lµ sè c¸c vÞ trÝ mµ t¹i ®ã hai tõ m· cã gi¸ trÞ kh¸c nhau; kho¶ng c¸ch d cña hÖ m· lµ kho¶ng c¸ch Hamming bÐ nhÊt gi÷a hai tõ m· bÊt kú. Nh− vËy, mét hÖ m· tuyÕn tÝnh ®−îc x¸c ®Þnh bëi mét ma trËn G (gäi lµ ma trËn sinh), vµ ®−îc ®Æc tr−ng bëi ba sè [n,k,d ]. NÕu d = 2t +1, th× hÖ m· cã kh¶ n¨ng tù söa sai ®Õn t sai ngÉu nhiªn nhiÔm ph¶i do nhiÔu cña kªnh truyÒn. Tuy nhiªn, viÖc tù söa sai (tøc lµ khi nhËn ®−îc tõ m· cã thÓ cã ®Õn t sai ta t×m l¹i ®−îc ®óng tõ k bit th«ng tin ban ®Çu) cña c¸c hÖ m· tuyÕn tÝnh nh− vËy nãi chung kh¸ phøc t¹p, vµ bµi to¸n gi¶i m· tuyÕn tÝnh tù söa sai ®· ®−îc chøng minh lµ mét bµi to¸n NP-khã, tøc cho ®Õn nay ch−a biÕt cã thuËt to¸n nµo lµm viÖc trong thêi gian ®a thøc gi¶i ®−îc nã. MÆc dÇu vËy, ng−êi ta ®· t×m ®−îc mét sè líp riªng c¸c hÖ m· tuyÕn tÝnh mµ ®èi víi chóng cã thÓ x©y dùng ®−îc nh÷ng thuËt to¸n gi¶i m· tù söa sai lµm viÖc cã hiÖu qu¶, c¸c hÖ m· Goppa lµ mét líp nh− vËy. HÖ m· Goppa lµ mét lo¹i hÖ m· tuyÕn tÝnh cã c¸c ®Æc tr−ng n = 2m , d =2t +1, k =n -mt , cã ma trËn sinh G cÊp k×n ®−îc x©y dùng dùa trªn mét sè tÝnh chÊt ®¹i sè cña tr−êng GF(2n )-mµ ë ®©y ta kh«ng ®i vµo c¸c chi tiÕt. §Ó cã mét hÖ mËt m· McEliece, tr−íc hÕt ta chän mét hÖ m· Goppa víi ma trËn sinh G vµ c¸c ®Æc tr−ng trªn, sau ®ã dïng mét 109
  • 114.
    ma trËn Skh¶ nghÞch cÊp k×k trªn Z2 vµ mét ma trËn ho¸n vÞ P cÊp n ×n (còng cã c¸c phÇn tö trong Z2) ®Ó biÕn hÖ m· Goppa víi ma trËn sinh G thµnh mét hÖ m· tuyÕn tÝnh “phæ biÕn” víi ma trËn sinh G* =SGP; vËy lµ ®· biÕn hÖ m· Goppa cã thuËt to¸n gi¶i m· hiÖu qu¶ thµnh mét hÖ m· tuyÕn tÝnh nãi chung mµ ta chØ biÕt viÖc gi¶i m· tù söa sai ®èi víi nã lµ NP-khã. HÖ mËt m· mµ ta x©y dùng sÏ cã thuËt to¸n gi¶i m· lµ “dÔ” ®èi víi ng−êi trong cuéc nh− gi¶i m· Goppa, vµ lµ “khã” ®èi víi ng−êi ngoµi nh− gi¶i m· tuyÕn tÝnh nãi chung! Nh− vËy, mét hÖ mËt m· kho¸ c«ng khai McEliece ®−îc x¸c ®Þnh bëi S = (P , C , K , E , D ), trong ®ã P ={0,1}k , C = {0,1}n , K lµ tËp hîp c¸c bé kho¸ K = (K', K''), víi kho¸ bÝ mËt K'' = (G,S,P ) gåm mét ma trËn sinh G cña mét hÖ m· Goppa, mét ma trËn kh¶ nghÞch S cÊp k×k trªn Z2 vµ mét ma trËn ho¸n vÞ P cÊp n ×n ; kho¸ c«ng khai K' = G* lµ ma trËn “®· ®−îc biÕn ®æi” nãi trªn. ThuËt to¸n lËp mËt m· E (K',.): P →C ®−îc x¸c ®Þnh bëi E (K', x) = x. G* + e , trong ®ã e ∈ {0,1}n lµ mét vect¬ ngÉu nhiªn cã träng sè t , tøc cã t thµnh phÇn lµ 1. ThuËt to¸n gi¶i m· D (K'',.) ®−îc thùc hiÖn theo ba b−íc nh− sau víi mäi y ∈C = {0,1}n : 1. TÝnh y1 = y.P –1 , 2. Gi¶i m· Goppa ®èi víi y1, gi¶ sö ®−îc x1. 3. TÝnh D (K'', y) = x1. S -1 . DÔ thö l¹i r»ng c¸c thuËt to¸n lËp mËt m· vµ gi¶i m· x¸c ®Þnh nh− trªn lµ hîp thøc, v× víi mäi x ∈ P ={0,1}k , ta ®Òu cã D (K'', E (K', x)) = x , §¼ng thøc ®ã ®óng víi mäi vect¬ e bÊt kú cã träng sè ≤ t . HÖ mËt m· nµy còng t−¬ng tù nh− hÖ mËt m· ElGamal ë chç khi lËp mËt m· ta cã thÓ chän thªm cho d÷ liÖu vµo mét yÕu tè ngÉu nhiªn; vÒ sau ta sÏ gäi nh÷ng hÖ mËt m· nh− vËy lµ hÖ mËt m· x¸c suÊt. YÕu tè chñ yÕu b¶o ®¶m tÝnh an toµn cña c¸c hÖ mËt m· McEliece lµ ë chç tõ kho¸ c«ng khai G* khã ph¸t hiÖn ra kho¸ bÝ mËt (G,S,P ) vµ ë tÝnh NP-khã cña bµi to¸n gi¶i m· tuyÕn tÝnh tù söa sai nãi chung. Còng cÇn nhí r»ng ®é an toµn cßn phô thuéc vµo viÖc chän c¸c tham sè k,n,t ®ñ lín; theo gîi ý cña c¸c nghiªn cøu thùc nghiÖm th× ®ñ lín cã nghÜa lµ n ≈ 1024, k ≈ 644, t ≈ 38. Víi nh÷ng ®ßi hái ®ã th× kÝch cì cña c¸c ma trËn G, S, P vµ G* sÏ qu¸ 110
  • 115.
    lín, kh¸ bÊttiÖn cho viÖc thùc thi trong thùc tÕ, v× vËy mµ c¸c hÖ mËt m· McEliece ch−a ®−îc sö dông phæ biÕn l¾m. 4.6. C¸c hÖ mËt m· x¸c suÊt kho¸ c«ng khai. 4.6.1. §Æt vÊn ®Ò vµ ®Þnh nghÜa. MËt m· x¸c suÊt lµ mét ý t−ëng ®−îc ®Ò xuÊt bëi Goldwasser vµ Micali tõ n¨m 1984, xuÊt ph¸t tõ yªu cÇu gi¶i quyÕt mét vÊn ®Ò sau ®©y: Gi¶ thiÕt ta cã mét hÖ mËt m· kho¸ c«ng khai, vµ ta muèn lËp mËt m· cho b¶n râ chØ gåm mét bit. §iÒu ®ã th−êng gÆp khi ta muèn bÝ mËt truyÒn ®i mét th«ng tin chØ cã néi dung lµ cã hoÆc kh«ng, tøc lµ mét th«ng tin ®Æc biÖt quan träng nh−ng chØ gåm mét bit. NÕu ta dïng mét hÖ mËt m· kho¸ c«ng khai th«ng th−êng, th× b¶n mËt m· ®−îc truyÒn ®i sÏ lµ K e ′ (0) hoÆc K e ′ (1), mét ng−êi th¸m m· cã thÓ kh«ng biÕt c¸ch gi¶i m·, nh−ng l¹i hoµn toµn cã thÓ tÝnh tr−íc c¸c gi¸ trÞ K e ′ (0) vµ K e ′ (1), vµ khi lÊy ®−îc b¶n m· truyÒn ®i trªn kªnh truyÒn tin c«ng céng, chØ cÇn so s¸nh b¶n m· nhËn ®−îc ®ã víi hai b¶n K e ′ (0) vµ K e ′ (1) ®· ®−îc tÝnh s½n lµ ®ñ biÕt ®−îc th«ng tin mËt ®−îc truyÒn ®i lµ 0 hay lµ 1. C¸c hÖ mËt m· kho¸ c«ng khai së dÜ cã ®−îc tÝnh b¶o mËt lµ v× tõ th«ng tin vÒ b¶n m· khã lßng khai th¸c ®−îc th«ng tin g× vÒ b¶n râ, nh−ng râ rµng ®iÒu ®ã kh«ng cßn ®−îc b¶o ®¶m nÕu sè c¸c b¶n râ lµ rÊt Ýt, ch¼ng h¹n nh− khi c¸c b¶n râ cã ®é dµi cùc ng¾n, hay nh− tr−êng hîp trªn, sè c¸c b¶n râ chØ lµ hai, cô thÓ lµ 0 vµ 1. Môc ®Ých cña viÖc x©y dùng mËt m· x¸c suÊt lµ ®Ó b¶o ®¶m kh«ng mét th«ng tin nµo vÒ b¶n râ cã thÓ khai th¸c ®−îc (trong thêi gian ®a thøc) tõ b¶n m·; ®iÒu nµy, ®èi víi c¸c hÖ mËt m· kho¸ c«ng khai, cã thÓ ®−îc thùc hiÖn b»ng c¸ch t¹o cho mét b¶n râ nhiÒu b¶n m· kh¸c nhau thu ®−îc mét c¸ch ngÉu nhiªn víi viÖc sö dông c¸c sè ngÉu nhiªn trong tiÕn tr×nh lËp m·. Sau ®©y lµ ®Þnh nghÜa vÒ mét hÖ mËt m· x¸c suÊt kho¸ c«ng khai: §Þnh nghÜa. Mét hÖ mËt m· x¸c suÊt kho¸ c«ng khai ®−îc x¸c ®Þnh bëi mét bé S = (P , C , K , E , D, R ), trong ®ã P , C , K ®−îc hiÓu nh− ®èi víi c¸c hÖ mËt m· kho¸ c«ng khai th«ng th−êng, R lµ mét tËp c¸c phÇn tö ngÉu nhiªn, vµ víi mçi K = (K', K'')∈K , thuËt to¸n lËp mËt m· K e ′ = E (K' ,.): P ×R →C vµ gi¶i m· K d ′′ = D (K'',.): C →P tho¶ m·n ®¼ng thøc: víi mäi x ∈P , r ∈R , K d ′′ ( K e ′ (x,r )) = x. Ngoµi ra, ta mong muèn mét ®iÒu kiÖn an toµn nh− trong ®Þnh nghÜa sau ®©y ®−îc tho¶ m·n: ta ký hiÖu pK,x lµ ph©n bè x¸c 111
  • 116.
    suÊt trªn tËpC , trong ®ã pK,x(y) lµ x¸c suÊt cña viÖc y lµ b¶n m· khi biÕt K lµ kho¸ vµ x lµ b¶n râ (x¸c suÊt ®−îc tÝnh cho tÊt c¶ r ∈R ). Ta nãi hai ph©n bè x¸c suÊt p1 vµ p2 trªn C lµ ε-ph©n biÖt ®−îc nÕu cã mét thuËt to¸n ε-ph©n biÖt hai ph©n bè x¸c suÊt ®ã, tøc lµ mét thuËt to¸n A : C → {0,1} tho¶ m·n tÝnh chÊt ⎢EA(p1) - EA(p2)⎢≥ ε, trong ®ã EA(pi) = ( ). ( ( ) 1) i y p y p A y ∈ = ∑ C . B©y giê ®iÒu kiÖn an toµn ®−îc ph¸t biÓu nh− sau: HÖ mËt m· x¸c suÊt kho¸ c«ng khai S lµ an toµn nÕu cã ε0 sao cho víi mäi K ∈K vµ mäi x ≠ x' , c¸c ph©n bè x¸c suÊt pK,x vµ , , K x p lµ kh«ng ε-ph©n biÖt ®−îc. 4.6.2. HÖ mËt m· x¸c suÊt Goldwasser-Micali. Sau ®©y lµ m« t¶ s¬ ®å cña hÖ mËt m· x¸c suÊt kho¸ c«ng khai trªn tËp v¨n b¶n mét bit do Goldwasser vµ Micali ®Ò xuÊt n¨m 1984. Mét hÖ nh− vËy ®−îc cho bëi mét danh s¸ch S = (P , C , K , E , D, R ), trong ®ã P ={0,1}, C = R = n Z∗ , n =p.q lµ tÝch cña hai sè nguyªn tè lín, K lµ tËp hîp c¸c bé kho¸ K = (K', K''), trong ®ã kho¸ c«ng khai K' = (n ,m) víi m ∈ j n n Q J Qn = − lµ mét gi¶ thÆng d− bËc hai modn, vµ kho¸ bÝ mËt K'' = (p,q ). C¸c thuËt to¸n lËp mËt m· vµ gi¶i m· ®−îc x¸c ®Þnh bëi K e ′ (x,r ) = mx .r 2 modn , K d ′′ (y) = 0, 1, n n khi y Q khi y Q ∈ ⎧ ⎪ ⎨ ∈ ⎪ ⎩ víi mäi x ∈P , r ∈R , y ∈C . HÖ mËt m· Goldwasser-Micali lËp mËt m· cho b¶n râ mét bit: mËt m· cña bit 0 lu«n lu«n lµ mét thÆng d− bËc hai modn , vµ mËt m· cña bit 1 lµ mét gi¶ thÆng d− bËc hai modn . ViÖc gi¶i m· lµ kh¸ dÔ dµng khi ta biÕt kho¸ bÝ mËt K'' = (p,q ). Thùc vËy, víi mäi y∈ n Q Q ∪ n ta cã 1. y n ⎛ ⎞ = ⎜ ⎟ ⎝ ⎠ V× biÕt K'' = (p,q ), nªn ta tÝnh ®−îc 1 2 mod , p y y p p − ⎛ ⎞ = ⎜ ⎟ ⎝ ⎠ vµ do ®ã dÔ thö ®−îc 1, n y y Q p ⎛ ⎞ ∈ ⇔ = ⎜ ⎟ ⎝ ⎠ vµ tÝnh ®−îc K d ′′ (y). 112
  • 117.
    4.6.3.HÖ mËt m·x¸c suÊt Blum-Goldwasser. HÖ mËt m· x¸c suÊt kho¸ c«ng khai Blum-Goldwasser ®−îc x©y dùng trªn nÒn cña c¸c hÖ mËt m· theo dßng víi dßng kho¸ lµ d·y sè gi¶ ngÉu nhiªn Blum-Blum-Shub (xem 3.3.3), yÓu tè ngÉu nhiªn r ∈R ë ®©y sÏ ®−îc sö dông nh− mÇm sinh ra d·y sè gi¶ ngÉu nhiªn cña dßng kho¸ ®ã. S¬ ®å cña hÖ mËt m· x¸c suÊt kho¸ c«ng khai Blum-Goldwasser ®−îc cho bëi danh s¸ch S = (P , C , K , E , D, R ), trong ®ã P = 2 , Z∗ C = 2 , n Z Z ∗ × R = , n = p.q lµ tÝch cña hai sè nguyªn tè lín víi n Q 3mod 4; p q ≡ ≡ K lµ tËp hîp c¸c bé kho¸ K = (K', K''), trong ®ã kho¸ c«ng khai K' = n, vµ kho¸ bÝ mËt K'' = (p,q ). ThuËt to¸n lËp m· K e ′ = E (K' ,.) : P ×R →C ®−îc tÝnh theo c¸c b−íc sau: 1. Cho x =(x1,...,xl)∈P vµ r ∈R . Tõ mÇm r theo thuËt to¸n Blum-Blum-Shub tÝnh d·y sè (s0 ,s1,...,sl +1) theo c«ng thøc 0 2 1 , mod , i i s r s s n + = ⎧ ⎪ ⎨ = ⎪ ⎩ sau ®ã tÝnh d·y sè gi¶ ngÉu nhiªn (z1,...,zl) bëi zi =si mod2. 2.TÝnh y =(y1,...,yl) víi yi = xi +zi mod2 (1≤ i ≤ l ). 3. B¶n m· lµ K e ′ (x ,r ) = (y, sl+1) =(y1,...,yl ;sl+1). ThuËt to¸n gi¶i m· K d ′′ = D (K'',.): C →P ®−îc thùc hiÖn theo c¸c b−íc sau ®©y sau khi nhËn ®−îc b¶n m· (y1,...,yl ;sl+1) : 1. TÝnh 1 1 1 2 (( 1)/ 4) mod( 1), (( 1)/ 4) mod( 1). l l a p p a q q + + = + − = + − 2. TÝnh 1 2 1 1 2 1 mod , mod . a a l l b s p b s q + + = = 3. T×m s0 =r b»ng c¸ch gi¶i hÖ ph−¬ng tr×nh 0 1 0 2 mod mod s b s b q ≡ ⎧ ⎨ ≡ ⎩ p 4. Víi s0 theo thuËt to¸n BBS ta t×m l¹i ®−îc d·y bit (z1,...,zl). 5. Cuèi cïng ta ®−îc K d ′′ (y1,...,yl ;sl+1) = (x1,...,xl), víi xi = yi +zi mod2 (1≤ i ≤ l ). Nh− vËy lµ hÖ mËt m· Blum-Goldwasser ®· ®−îc ®Þnh nghÜa ®Çy ®ñ. Ta chó ý r»ng nÕu b¶n râ x gåm l bit th× trong b¶n m· t−¬ng øng, ngoµi c¸c bit m· y1,...,yl ta ph¶i göi thªm sè sl+1, sè 113
  • 118.
    ®ã ®−îc södông trong c¸c b−íc 1-3 cña thuËt to¸n gi¶i m· ®Ó t×m l¹i mÇm s0 cÇn thiÕt cho viÖc t×m dßng kho¸ ngÉu nhiªn (z1,...,zl). Ta chøng minh r»ng sè s0 tÝnh ®−îc theo thuËt to¸n gi¶i m· ®óng lµ mÇm s0 mµ ta cÇn t×m. Thùc vËy, theo ®Þnh nghÜa, ta cã víi mäi i =0,1,...,l +1, si ®Òu lµ thÆng d− bËc hai, vµ víi mäi i =0,...,l , si ®Òu lµ c¨n bËc hai cña si+1 theo modn ; ®iÒu ®ã còng ®óng ®èi víi modp vµ modq. V× p ≡ 3 mod4, nªn mçi thÆng d− bËc hai x theo modp ®Òu cã duy nhÊt mét c¨n bËc hai modp còng lµ thÆng d− bËc hai modp, ®ã lµ x(p+1)/4 modp. Thùc vËy, v× x(p+1)/2 ≡ x modp, nªn ±x(p+1)/4 modp lµ c¨n bËc hai theo modp cña x ; mÆt kh¸c ta l¹i cã ( 1)/ 4 ( 1)/ 4 1 p p x x p p + + ⎛ ⎞ ⎛ ⎞ = ⎜ ⎟ ⎜ ⎟ ⎝ ⎠ ⎝ ⎠ = , nªn x(p+1)/4 modp còng lµ mét thÆng d− bËc hai modp. Tõ nhËn xÐt ®ã ta suy ra víi mäi i (i = 0,1,..,l ): ( 1)/ 4 1 (mod ), p i i s s p + + ≡ do ®ã, 1 1 (( 1)/ 4) 0 1 1 mod mod . l a p l l s s p s p + + + + = = XÐt t−¬ng tù ®èi víi q, ta còng ®−îc 2 0 1 mod . a l s s q + = VËy sè s0 tÝnh theo c¸c b−íc 1-3 cña thuËt to¸n gi¶i m· ®óng lµ mÇm s 0=r mµ ta cÇn t×m. C¸c thuËt to¸n lËp mËt m· vµ gi¶i m· nh− ®−îc ®Þnh nghÜa ë trªn lµ hîp thøc. ThÝ dô : Chän n = 192649 = 383.503. Cho b¶n râ x = 11010011010011101101. (l = 20) Gi¶ sö chän ngÉu nhiªn s0=r = 20749. Ta tÝnh ®−îc d·y z : z = 11001110000100111010. Ta tÝnh thªm ®−îc s21=94739, vµ b¶n m· ®−îc göi ®i lµ K e ′ (x ,r ) = (y, sl+1) = (y, 94739), trong ®ã y = 00011101010111010111. §Ó gi¶i m·, tr−íc hÕt ta t×m s0 tõ s21 = 94739. Ta cã (p +1)/4 =96, (q +1)/4 =126. Theo thuËt to¸n gi¶i m·: a1 = 9621 mod382 =266, a 2 = 12621 mod502 = 486. Tõ ®ã tÝnh ®−îc b1 = 94739266 mod383 =67, b 2 = 94739486 mod503 = 126. Gi¶i hÖ ph−¬ng tr×nh ®ång d−: ( ) 0 0 67 mod383 126(mod503) s s ⎧ ≡ ⎪ ⎨ ≡ ⎪ ⎩ 114
  • 119.
    ta ®−îc s0=20749, tõ ®ã tÝnh l¹i ®−îc d·y z, céng mod2 tõng bit víi y ta l¹i thu ®−îc b¶n râ x . 115
  • 120.
    CH¦¥NG V Bµi to¸nx¸c nhËn vµ ch÷ ký ®iÖn tö 5.1. Bµi to¸n x¸c nhËn vµ s¬ ®å ch÷ ký. 5.1.1. §Æt vÊn ®Ò. Trong ch−¬ng I, tiÕt 1.3, ta ®· liÖt kª mét sè bµi to¸n chñ yÕu vÒ an toµn th«ng tin, trong ®ã ngoµi bµi to¸n quan träng nhÊt lµ b¶o mËt th«ng tin th× c¸c bµi to¸n kÕ tiÕp lµ: x¸c nhËn th«ng b¸o vµ x¸c nhËn ng−êi göi (cïng víi th«ng b¸o), x−ng danh vµ x¸c nhËn danh tÝnh cña mét chñ thÓ giao dÞch, v.v... Bµi to¸n b¶o mËt ®−îc ®¸p øng b»ng c¸c gi¶i ph¸p mËt m· ®· lµ néi dung cña c¸c ch−¬ng III vµ IV, trong ch−¬ng nµy vµ ch−¬ng sau ta sÏ ®Ò cËp ®Õn c¸c bµi to¸n x¸c nhËn vµ nhËn thøc kÓ trªn, ch−¬ng V nµy sÏ dµnh cho bµi to¸n x¸c nhËn th«ng b¸o vµ ng−êi göi th«ng b¸o, ch−¬ng VI tiÕp theo sÏ xÐt bµi to¸n x−ng danh vµ x¸c nhËn danh tÝnh. Trong c¸ch thøc truyÒn thèng, th«ng b¸o ®−îc truyÒn ®i trong giao dÞch th−êng d−íi d¹ng c¸c v¨n b¶n viÕt tay hoÆc ®¸nh m¸y ®−îc kÌm thªm ch÷ ký (viÕt tay) cña ng−êi göi ë bªn d−íi v¨n b¶n. Ch÷ ký ®ã lµ b»ng chøng x¸c nhËn th«ng b¸o ®óng lµ cña ng−êi ký, tøc lµ cña chñ thÓ giao dÞch, vµ nÕu tê giÊy mang v¨n b¶n kh«ng bÞ c¾t, d¸n, tÈy, xo¸, th× tÝnh toµn vÑn cña th«ng b¸o còng ®−îc chøng thùc bëi ch÷ ký ®ã. Ch÷ ký viÕt tay cã nhiÒu −u ®iÓm quen thuéc nh− dÔ kiÓm thö, kh«ng sao chÐp ®−îc, ch÷ ký cña mét ng−êi lµ gièng nhau trªn nhiÒu v¨n b¶n, nh−ng mçi ch÷ ký g¾n liÒn víi mét v¨n b¶n cô thÓ, v.v... Khi chuyÓn sang c¸ch thøc truyÒn tin b»ng ph−¬ng tiÖn hiÖn ®¹i, c¸c th«ng b¸o ®−îc truyÒn ®i trªn c¸c m¹ng truyÒn tin sè ho¸, b¶n th©n c¸c th«ng b¸o còng ®−îc biÓu diÔn d−íi d¹ng sè ho¸, tøc d−íi d¹ng c¸c d·y bit nhÞ ph©n, “ch÷ ký” nÕu cã còng ë d−íi d¹ng c¸c d·y bit, th× c¸c mèi quan hÖ tù nhiªn kÓ trªn kh«ng cßn gi÷ ®−îc n÷a. Ch¼ng h¹n, “ch÷ ký” cña mét ng−êi göi trªn nh÷ng v¨n b¶n kh¸c nhau ph¶i thÓ hiÖn ®−îc sù g¾n kÕt tr¸ch nhiÖm cña 115
  • 121.
    ng−êi göi ®èivíi tõng v¨n b¶n ®ã th× tÊt yÕu ph¶i kh¸c nhau chø kh«ng thÓ lµ nh÷ng ®o¹n bit gièng nhau nh− c¸c ch÷ ký gièng nhau trªn c¸c v¨n b¶n th«ng th−êng. Ch÷ ký viÕt tay cã thÓ ®−îc kiÓm thö b»ng c¸ch so s¸nh víi nguyªn mÉu, nh−ng “ch÷ ký” ®iÖn tö th× kh«ng thÓ cã “nguyªn mÉu” ®Ó mµ so s¸nh, viÖc kiÓm thö ph¶i ®−îc thùc hiÖn b»ng nh÷ng thuËt to¸n ®Æc biÖt. Mét vÊn ®Ò n÷a lµ viÖc sao chÐp mét v¨n b¶n cïng ch÷ ký. NÕu lµ v¨n b¶n cïng ch÷ ký viÕt tay th× dÔ ph©n biÖt b¶n gèc víi b¶n sao, do ®ã khã mµ dïng l¹i ®−îc mét v¨n b¶n cã ch÷ ký thËt. Cßn víi v¨n b¶n ®iÖn tö cïng ch÷ ký ®iÖn tö th× cã thÓ nh©n b¶n sao chÐp tuú thÝch, khã mµ ph©n biÖt ®−îc b¶n gèc víi b¶n sao, cho nªn nguy c¬ dïng l¹i nhiÒu lÇn lµ cã thùc, do ®ã cÇn cã nh÷ng biÖn ph¸p ®Ó tr¸nh nguy c¬ ®ã. Mét “ch÷ ký”, nÕu muèn thÓ hiÖn ®−îc tr¸ch nhiÖm cña ng−êi göi trªn toµn v¨n b¶n, th× ph¶i mang ®−îc mét chót g¾n bã nµo ®ã víi tõng bit th«ng tin cña v¨n b¶n, v× vËy, theo h×nh dung ban ®Çu, ®é dµi cña ch÷ ký còng ph¶i dµi theo ®é dµi cña v¨n b¶n; ®Ó cã ®−îc “ch÷ ký ng¾n” nh− trong tr−êng hîp viÕt tay ng−êi ta ph¶i dïng mét kü thuËt riªng gäi lµ hµm b¨m mµ ta sÏ tr×nh bµy ë cuèi ch−¬ng. B©y giê, tr−íc hÕt ta sÏ giíi thiÖu ®Þnh nghÜa vÒ s¬ ®å ch÷ ký (®iÖn tö). 5.1.2. §Þnh nghÜa s¬ ®å ch÷ ký. §Þnh nghÜa 5.1. Mét s¬ ®å ch÷ ký S lµ mét bé n¨m S = (P, A, K, S, V ), trong ®ã: P lµ mét tËp h÷u h¹n c¸c th«ng b¸o cã thÓ cã, A lµ mét tËp h÷u h¹n c¸c ch÷ ký cã thÓ cã, K lµ mét tËp h÷u h¹n c¸c kho¸, mçi kho¸ K ∈ K gåm cã hai phÇn K =(K’,K''), K' lµ kho¸ bÝ mËt dµnh cho viÖc ký, cßn K'' lµ kho¸ c«ng khai dµnh cho viÖc kiÓm thö ch÷ ký. Víi mçi K =(K’,K''), trong S cã mét thuËt to¸n ký P → A , vµ trong Vcã mét thuËt to¸n kiÓm thö P ×A →{®óng,sai} tho¶ m·n ®iÒu kiÖn sau ®©y ®èi víi mäi th«ng b¸o x∈P vµ mäi ch÷ ký y∈A : ' : K sig : K ver K ver (x, y) = ®óng ⇔ y = ' K sig (x ). Víi s¬ ®å trªn, mçi chñ thÓ së h÷u mét bé kho¸ K =(K’,K''), c«ng bè c«ng khai kho¸ K'' ®Ó mäi ng−êi cã thÓ kiÓm thö ch÷ ký cña m×nh, vµ gi÷ bÝ mËt kho¸ K’ ®Ó thùc hiÖn ch÷ ký trªn c¸c th«ng b¸o mµ 116
  • 122.
    m×nh muèn göi®i. C¸c hµm K ver vµ ' K sig (khi biÕt K’ ) ph¶i tÝnh ®−îc mét c¸ch dÔ dµng (trong thêi gian ®a thøc), tuy nhiªn hµm y = ' K sig (x ) lµ khã tÝnh ®−îc nÕu kh«ng biÕt K’ - ®iÒu ®ã b¶o ®¶m bÝ mËt cho viÖc ký, còng tøc lµ b¶o ®¶m chèng gi¶ m¹o ch÷ ký. Bµi to¸n x¸c nhËn víi ch÷ ký ®iÖn tö, theo mét nghÜa nµo ®ã, cã thÓ xem lµ « ®èi ngÉu » víi bµi to¸n b¶o mËt b»ng mËt m·, nh− ®−îc minh ho¹ bëi thÝ dô s¬ ®å ch÷ ký RSA, ®èi ngÉu víi s¬ ®å mËt m· RSA, d−íi ®©y : 5.1.3. S¬ ®å ch÷ ký RSA. S¬ ®å ch÷ ký RSA ®−îc cho bëi bé n¨m S = (P, A, K, S, V ), trong ®ã P =A =Zn , víi n =p.q lµ tÝch cña hai sè nguyªn tè lín p,q, K lµ tËp c¸c cÆp kho¸ K =(K’,K''), víi K’ = a vµ K'' = (n,b), a vµ b lµ hai sè thuéc n Z∗ tho¶ m·n a.b ≡ 1(modφ(n)). C¸c hµm ' K sig vµ K ver ®−îc x¸c ®Þnh nh− sau: ' K sig (x) = xa modn , K ver ′′ (x,y ) = ®óng ⇔ x ≡ yb (modn ). DÔ chøng minh ®−îc r»ng s¬ ®å ®−îc ®Þnh nghÜa nh− vËy lµ hîp thøc, tøc lµ víi mäi x∈P vµ mäi ch÷ ký y∈A: K ver (x, y) = ®óng ⇔ y = ' K sig (x ). Chó ý r»ng tuy hai vÊn ®Ò x¸c nhËn vµ b¶o mËt theo s¬ ®å RSA lµ cã bÒ ngoµi gièng nhau, nh−ng néi dung cña chóng lµ hoµn toµn kh¸c nhau: Khi A göi th«ng b¸o x cho B, ®Ó B cã c¨n cø x¸c nhËn ®ã ®óng thùc lµ th«ng b¸o do A göi, A ph¶i göi kÌm theo ch÷ ký ' K sig (x), tøc lµ A göi cho B (x, ' K sig (x)), trong c¸c th«ng tin göi ®i ®ã, th«ng b¸o x hoµn toµn kh«ng ®−îc gi÷ bÝ mËt. Còng t−¬ng tù nh− vËy, nÕu dïng s¬ ®å mËt m· RSA, khi mét chñ thÓ A nhËn ®−îc mét b¶n mËt m· K e ′ (x) tõ B th× A chØ biÕt r»ng th«ng b¸o x ®−îc b¶o mËt, chø kh«ng cã g× ®Ó x¸c nhËn x lµ cña B. NÕu ta muèn hÖ truyÒn tin cña ta võa cã tÝnh b¶o mËt võa cã tÝnh x¸c nhËn, th× ta ph¶i sö dông ®ång thêi c¶ hai hÖ mËt m· vµ x¸c nhËn (b»ng ch÷ ký). Gi¶ sö trªn m¹ng truyÒn tin c«ng céng, ta cã c¶ hai hÖ mËt m· kho¸ c«ng khai S1 vµ hÖ x¸c nhËn b»ng ch÷ ký S2. Gi¶ sö B cã bé kho¸ mËt m· K = (K', K'') víi K' = (n, e) vµ K'' = d trong hÖ S1, vµ A cã bé kho¸ ch÷ ký ( , ) s s s K K K ′ ′′ = víi vµ trong hÖ S s K a ′ = ( , ) K n b ′′= s 2. A cã thÓ göi ®Õn B mét th«ng b¸o võa b¶o 117
  • 123.
    mËt võa cãch÷ ký ®Ó x¸c nhËn nh− sau: A ký trªn th«ng b¸o x tr−íc, råi thay cho viÖc göi ®Õn B v¨n b¶n cïng ch÷ ký (x, s K sig ′ (x)) th× A sÏ göi cho B b¶n mËt m· cña v¨n b¶n ®ã ®−îc lËp theo kho¸ c«ng khai cña B, tøc lµ göi cho B K e ′ ((x, s K sig ′ (x)). NhËn ®−îc v¨n b¶n mËt m· ®ã B sÏ dïng thuËt to¸n gi¶i m· K d ′′ cña m×nh ®Ó thu ®−îc (x, s K sig ′ (x)), sau ®ã dïng thuËt to¸n kiÓm thö ch÷ ký c«ng khai s K ver ′′ cña A ®Ó x¸c nhËn ch÷ ký s K sig ′ (x) ®óng lµ cña A trªn x. 5.2. S¬ ®å ch÷ ký ElGamal vµ chuÈn ch÷ ký ®iÖn tö. 5.2.1. S¬ ®å ch÷ ký ElGamal. S¬ ®å ch÷ ký ElGamal ®−îc ®Ò xuÊt n¨m 1985, gÇn nh− ®ång thêi víi s¬ ®å hÖ mËt m· ElGamal, còng dùa trªn ®é khã cña bµi to¸n l«garit rêi r¹c. S¬ ®å ®−îc thiÕt kÕ ®Æc biÖt cho môc ®Ých ký trªn c¸c v¨n b¶n ®iÖn tö, ®−îc m« t¶ nh− mét hÖ S = (P, A, K, S, V), trong ®ã P = , p Z∗ A = 1 p p Z Z ∗ − × , víi p lµ mét sè nguyªn tè sao cho bµi to¸n tÝnh l«garit rêi r¹c trong p Z∗ lµ rÊt khã. TËp hîp K gåm c¸c cÆp kho¸ K =(K’,K''), víi K’ = a lµ mét sè thuéc p Z∗ , K'' =(p, α, β ), α lµ mét phÇn tö nguyªn thuû cña p Z∗ , vµ β = α a modp. K’ lµ kho¸ bÝ mËt dïng ®Ó ký, vµ K'' lµ kho¸ c«ng khai dïng ®Ó kiÓm thö ch÷ ký. C¸c thuËt to¸n ký vµ kiÓm thö ch÷ ký ®−îc x¸c ®Þnh nh− sau: Víi mçi th«ng b¸o x, ®Ó t¹o ch÷ ký trªn x ta chän thªm m«t sè ngÉu nhiªn k ∈ 1 p Z∗ − , råi tÝnh ' K sig (x,k ) = ( , ), γ δ víi k γ α = modp, 1 ( ). x a k δ γ − = − mod(p -1). ThuËt to¸n kiÓm thö ®−îc ®Þnh nghÜa bëi: K ver (x,( , ) γ δ ) = ®óng ⇔ β γ .γδ ≡ α x (modp). DÔ thÊy r»ng s¬ ®å ch÷ ký ®−îc ®Þnh nghÜa nh− trªn lµ hîp thøc. Thùc vËy, nÕu ' K sig (x,k ) = ( , ), γ δ th× ta cã : β γ .γδ ≡ αaγ .αkδ modp ≡ α x modp, v× kδ +aγ ≡ x mod(p -1). Do ®ã, K ver (x,( , ) γ δ ) = ®óng. 118
  • 124.
    ThÝ dô: Gi¶sö p = 467, α = 2, a = 127. Khi ®ã β = 2127 mod467=132. Cho x =100; ta chän ngÉu nhiªn k =213 (∈ 466 Z∗ ) vµ ®−îc k -1 mod466 =431. Ch÷ ký trªn v¨n b¶n x =100 víi sè ngÉu nhiªn k =213 lµ (γ, δ), trong ®ã γ =2213 mod467 = 29 vµ δ = (100 - 127.29).431mod466 =51. §Ó kiÓm thö ta tÝnh : β γ .γδ = 13229 .2951 ≡ 189 (mod467), α x = 2100 ≡ 189 (mod467), hai gi¸ trÞ ®ã ®ång d− víi nhau theo mod467, ch÷ ký(γ, δ)=(29,51) ®−îc x¸c nhËn lµ ®óng. 5.2.2. TÝnh an toµn cña s¬ ®å ch÷ ký ElGamal. S¬ ®å ch÷ ký ElGamal ®−îc xem lµ an toµn, nÕu viÖc ký trªn mét v¨n b¶n lµ kh«ng thÓ gi¶ m¹o ®−îc, nãi c¸ch kh¸c, kh«ng thÓ cã mét ng−êi nµo ngoµi chñ thÓ hîp ph¸p cã thÓ gi¶ m¹o ch÷ ký cña chñ thÓ hîp ph¸p ®ã trªn mét v¨n b¶n bÊt kú. V× vËy, viÖc gi÷ bÝ mËt kho¸ dïng ®Ó t¹o ch÷ ký lµ cã ý nghÜa quyÕt ®Þnh ®èi víi viÖc b¶o ®¶m tÝnh an toµn cña ch÷ ký. Cã thÓ ®Ó lé kho¸ bÝ mËt trong nh÷ng tr−êng hîp nµo, vµ cã thÓ kh«ng ®Ó lé mµ vÉn gi¶ m¹o ch÷ ký ®−îc kh«ng? Ta sÏ xÐt sau ®©y mét vµi tr−êng hîp ®¬n gi¶n : K′ = a a K′ = K a ′ = 1) Kh¶ n¨ng ®Ó lé kho¸ K a ′ = : Còng nh− ®èi víi s¬ ®å hÖ mËt m· ElGamal, kho¸ bÝ mËt a cã thÓ bÞ ph¸t hiÖn trong tr−êng hîp ®Ó lé sè ngÉu nhiªn k ë mét lÇn ký nµo ®ã, hoÆc sö dông cïng mét sè ngÉu nhiªn k ë hai lÇn ký kh¸c nhau. NÕu sè ngÉu nhiªn k ®−îc sö dông khi ký trªn v¨n b¶n x bÞ lé, th× kho¸ bÝ mËt K a ′ = ®−îc tÝnh theo c«ng thøc sau ®©y: a = (x - kδ ). γ -1 mod(p –1). B©y giê ta xÐt tr−êng hîp dïng cïng mét sè ngÉu nhiªn k cho hai lÇn ký kh¸c nhau, ch¼ng h¹n cho x1 vµ x2. Khi ®ã ta cã ch÷ ký trªn x1 lµ (γ ,δ 1), trªn x2 lµ (γ ,δ 2), víi thµnh phÇn thø nhÊt b»ng nhau (vµ b»ng γ =αk modp), vµ c¸c ch÷ ký ®ã tho¶ m·n 1 . x δ γ 1 β γ α ≡ (modp), 2 . x δ γ 2 β γ α ≡ (modp). Tõ ®ã ta cã 1 2 1 2 1 2 ( x x k ) δ δ δ α γ α − − − ≡ ≡ δ (modp), ®iÒu ®ã t−¬ng ®−¬ng víi x1 - x2 ≡ k (δ1 - δ2) (mod(p -1)). §Æt d = gcd(δ1 - δ 2, p -1). C¶ ba sè δ1 - δ 2, p -1 vµ x 1 - x2 ®Òu chia hÕt cho d, ta ®Æt 119
  • 125.
    1 2 12 1 , , x x p x p . δ δ δ − − − ′ ′ ′ = = = d d d Khi ®ã ®ång d− thøc ë trªn trë thµnh . x k δ ′ ′ ≡ (mod p′). V× gcd( , ) p δ′ ′ =1, nªn cã thÓ tÝnh 1 ε δ − ′ = mod p′, vµ sau ®ã gi¸ trÞ k theo mod : k = p′ . x ε ′ mod p′, tøc lµ k = . . x i p ε ′ ′ + mod(p -1) víi i lµ mét gi¸ trÞ nµo ®ã, 0≤ i ≤ d –1. Thö lÇn l−ît ®iÒu kiÖn k γ α = modp víi c¸c gi¸ trÞ ®ã cña i , ta sÏ t×m ®−îc k ;sau ®ã tõ k tÝnh ®−îc a cÇn t×m. 2) Kh¶ n¨ng gi¶ m¹o ch÷ ký trªn mét v¨n b¶n cho tr−íc : Gi¶ sö chñ thÓ A chän s¬ ®å ch÷ ký ElGamal víi cÆp kho¸ K =(K’,K''), trrong ®ã K a ′ = lµ kho¸ bÝ mËt. Mét ng−êi ngoµi O kh«ng biÕt kho¸ bÝ mËt K a ′ = mµ muèn gi¶ m¹o ch÷ ký cña A trªn mét v¨n b¶n x th× ph¶i cã kh¶ n¨ng t¹o ra ®−îc ch÷ ký (γ,δ ) mµ kh«ng cÇn biÕt a. Cã hai c¸ch : hoÆc chän tr−íc γ råi t×m δ t−¬ng øng, hoÆc ng−îc l¹i, chän tr−íc δ råi t×m γ t−¬ng øng. NÕu chän tr−íc γ råi t×m δ , th× δ ph¶i lµ 1 ( ) x a k δ γ − = − mod(p -1) = (( )log x a γ γ α − mod(p -1) = log ( ).log log x x γ γ α γ γ α β α α β − − = mod(p -1); ®ã lµ mét bµi to¸n tÝnh l«garit rêi r¹c, mµ ta biÕt r»ng rÊt khã. NÕu chän tr−íc δ råi t×m γ th× ph¶i gi¶i ph−¬ng tr×nh . x γ δ β γ α ≡ modp víi Èn sè γ . Ta ch−a biÕt cã c¸ch gi¶i h÷u hiÖu nµo kh«ng, nh−ng ch¾c lµ kh«ng dÔ h¬n bµi to¸n tÝnh l«garit rêi r¹c. Nh− vËy, ta cã thÓ tin r»ng kh¶ n¨ng gi¶ m¹o ch÷ ký trªn mét v¨n b¶n cho tr−íc khi kh«ng biÕt kho¸ bÝ mËt lµ rÊt Ýt, do ®ã kh«ng cã ¶nh h−ëng ®¸ng kÓ ®Õn tÝnh an toµn cña s¬ ®å ch÷ ký. K′ = a 3)Gi¶ m¹o ch÷ ký cïng víi v¨n b¶n ®−îc ký : Cã mét kh¶ n¨ng gi¶ m¹o kh¸c lµ gi¶ m¹o c¶ v¨n b¶n göi ®i x cïng víi ch÷ ký (γ,δ ) trªn x. Kh¶ n¨ng ®ã xÈy ra khi kÎ gi¶ m¹o chän ®−îc x vµ (γ,δ ) tho¶ m·n ®iÒu kiÖn kiÓm thö, cô thÓ khi chän ®−îc x,γ,δ cã d¹ng sau ®©y : . i j γ α β = modp, 120
  • 126.
    1 .j δ γ − =− mod(p -1), 1 . . x i j γ − = − mod(p -1), trong ®ã i, j lµ c¸c sè nguyªn sao cho 0≤ i, j ≤ p –2, gcd(j, p –1) = 1, vµ j –1 ®−îc tÝnh theo mod(p –1). Thùc vËy, khi ®ã ta cã 1 . . ( ) i j j γ δ γ γ β γ β α β − − ≡ modp 1 . . i j γ γ γ β α β − − − ≡ modp x α ≡ modp , tøc ®iÒu kiÖn kiÓm thö ®−îc tho¶ m·n, (γ,δ ) cã thÓ ®−îc x¸c nhËn hîp thøc lµ ch÷ ký trªn x. Cã thÓ cã mét c¸ch gi¶ m¹o kh¸c n÷a, nÕu kÎ gi¶ m¹o sö dông ch÷ ký ®óng (γ,δ ) trªn mét v¨n b¶n x cã tõ tr−íc ®Ó t¹o ra mét ch÷ ký ( , ) λ µ míi cho mét v¨n b¶n “míi” x′ nh− sau: . . h i j λ γ α β = modp, 1 (h j ) µ δλ γ δ − = − mod(p -1), 1 ( )( ) x hx i h j λ δ γ δ − ′= + − mod(p -1). Cã thÓ thö l¹i r»ng ®iÒu kiÖn kiÓm thö ®óng ®èi víi “ch÷ ký” ( , ) λ µ vµ “v¨n b¶n” x′ , tøc lµ . x λ µ β λ α ′ ≡ modp. C¶ hai c¸ch gi¶ m¹o nãi trªn ®Òu cho ch÷ ký tho¶ m·n ®iÒu kiÖn kiÓm thö ®èi víi v¨n b¶n t−¬ng øng, tuy nhiªn v¨n b¶n ®ã kh«ng ph¶i lµ v¨n b¶n ®−îc chän theo ý muèn cña ng−êi gi¶ m¹o, cho nªn kh¶ n¨ng sö dông c¸c c¸ch gi¶ m¹o ®ã trong thùc tÕ còng kh«ng cã gi¸ trÞ , do ®ã kh«ng thÓ g©y nguy h¹i ®¸ng kÓ cho tÝnh an toµn cña s¬ ®å ch÷ ký nãi chung. 5.2.3. ChuÈn ch÷ ký sè (Digital Signature Standard). ChuÈn ch÷ ký sè (DSS) ®−îc ®Ò xuÊt tõ n¨m 1991 vµ ®−îc chÊp nhËn vµo cuèi n¨m 1994 ®Ó sö dông trong mét sè lÜnh vùc giao dÞch ®iÖn tö t¹i Hoa kú. DSS dùa vµo s¬ ®å ch÷ ký ElGamal, víi mét vµi söa ®æi. §Ó b¶o ®¶m an toµn , sè nguyªn tè p cÇn ph¶i ®ñ lín, biÓu diÔn nhÞ ph©n cña p ph¶i cã tõ 512 bit trë lªn (cô thÓ tõ 512 ®Õn 1024 bit, sè bit lµ mét béi cña 64). Tuy nhiªn, ®é dµi ch÷ ký theo s¬ ®å ElGamal lµ gÊp ®«i sè bit cña p, mµ trong nhiÒu øng dông ng−êi ta l¹i mong muèn cã ch÷ ký ®é dµi ng¾n, nªn gi¶i ph¸p söa ®æi ®−îc ®Ò xuÊt lµ: trong khi vÉn dïng p lín víi ®é dµi biÓu diÔn 512 bit trë lªn, th× sÏ h¹n chÕ ®é dµi cña γ vµ δ trong ch÷ ký (γ,δ ) vµo kho¶ng 160 bit (nh− vËy c¶ ch÷ ký sÏ cã ®é dµi kho¶ng 320 bit); ®iÒu nµy ®−îc thùc hiÖn b»ng c¸ch dïng mét nhãm con cyclic q Z∗ cña p Z∗ thay cho chÝnh b¶n th©n p Z∗ , do ®ã mäi tÝnh to¸n 121
  • 127.
    vÉn ®−îc thùchiÖn nh− trong p Z∗ nh−ng c¸c d÷ liÖu vµ thµnh phÇn ch÷ ký l¹i thuéc q Z∗ . Ta ®−îc s¬ ®å chuÈn ch÷ ký sè DSS nh− m« t¶ sau ®©y: Chän p lµ mét sè nguyªn tè lín cã ®é dµi biÓu diÔn ≥ 512 bit sao cho bµi to¸n tÝnh logarit rêi r¹c trong Zp lµ khã, q lµ mét −íc sè nguyªn tè cña p -1, cã ®é dµi biÓu diÔn cì 160 bit. Gäi α ∈ p Z∗ lµ mét c¨n bËc q cña 1 theo modp. §Æt P = p Z∗ , A = q Z∗ × q Z∗ . Chän q a Z∗ ∈ vµ tÝnh a β α ≡ modp. X¸c ®Þnh kho¸ K =(K’,K''), trong ®ã kho¸ bÝ mËt K’ = a, vµ kho¸ c«ng khai K'' = (p,q,α,β). ThuËt to¸n ký vµ thuËt to¸n kiÓm thö ®−îc ®Þnh nghÜa nh− sau: Víi x ∈ P = p Z∗ , ta chän thªm mét sè ngÉu nhiªn k (0≤k ≤ q -1), vµ ®Þnh nghÜa ch÷ ký ' K sig (x,k ) = ( , ), γ δ trong ®ã ( k γ α = modp) modq, 1 ( ). x a k δ γ − = + modq. ThuËt to¸n kiÓm thö ®−îc ®Þnh nghÜa bëi: K ver (x,( , ) γ δ ) = ®óng ⇔ 1 ( . e e2 α β modp)modq = γ , trong ®ã 1 1 . e xδ − = modq vµ 1 2 . e γ δ − = modq. Chó ý r»ng ta ph¶i cã δ ≠ 0 modq ®Ó cã thÓ tÝnh ®−îc δ -1 modq dïng trong thuËt to¸n kiÓm thö, v× vËy nÕu chän k mµ ®−îc δ ≡ 0 modq th× ph¶i chän l¹i sè k kh¸c ®Ó cã ®−îc δ ≠ 0 modq. 5.3. Hµm b¨m vµ ch÷ ký. 5.3.1. Hµm b¨m (hash function). Trong c¸c phÇn trªn, ta ®· giíi thiÖu mét vµi s¬ ®å ch÷ ký ®iÖn tö. Theo c¸c s¬ ®å ®ã, ch÷ ký ®−îc x¸c ®Þnh cho tõng khèi cña v¨n b¶n, vµ nÕu v¨n b¶n gåm nhiÒu khèi th× ch÷ ký cho toµn v¨n b¶n còng ph¶i do ghÐp ch÷ ký trªn tõng khèi l¹i víi nhau mµ thµnh; mµ ch÷ ký trªn tõng khèi v¨n b¶n th−êng cã ®é dµi b»ng (hoÆc thËm chÝ gÊp ®«i) ®é dµi cña khèi v¨n b¶n, do ®ã ch÷ ký chung còng cã ®é dµi t−¬ng ®−¬ng víi ®é dµi v¨n b¶n. §ã lµ mét ®iÒu bÊt tiÖn. Ta mong muèn, nh− trong tr−êng hîp viÕt tay, ch÷ ký chØ cã ®é dµi ng¾n vµ h¹n chÕ cho dï v¨n b¶n cã thÓ dµi bao nhiªu còng ®−îc. §èi víi ch÷ ký ®iÖn tö, v× ch÷ ký ph¶i ®−îc “ký” cho tõng bit cña v¨n b¶n, nªn muèn cã ch÷ ký ®é dµi h¹n chÕ trªn v¨n b¶n cã ®é dµi tuú ý th× ph¶i t×m c¸ch rót ng¾n ®é dµi v¨n b¶n. Nh−ng b¶n th©n v¨n b¶n kh«ng thÓ rót ng¾n ®−îc, nªn chØ cßn c¸ch lµ t×m cho mçi v¨n b¶n mét b¶n “tãm l−îc” cã ®é dµi h¹n chÕ, råi thay cho viÖc ký trªn toµn bé v¨n b¶n, ta ký trªn b¶n tãm l−îc 122
  • 128.
    ®ã, xem ch÷ký trªn b¶n tãm l−îc cã t− c¸ch lµ ch÷ ký trªn v¨n b¶n. Gi¶ sö Σ lµ tËp hîp tÊt c¶ c¸c v¨n b¶n cã thÓ cã (tÊt nhiªn, trong mét lÜnh vùc nµo ®ã), vµ ∆ lµ tËp hîp tÊt c¶ c¸c b¶n “tãm l−îc” cã thÓ ®−îc sö dông. ViÖc t×m cho mçi v¨n b¶n mét b¶n tãm l−îc t−¬ng øng x¸c ®Þnh mét hµm h : Σ → ∆. Mét hµm h nh− vËy ng−êi ta gäi lµ mét hµm b¨m (hash function). Th«ng th−êng, Σ lµ tËp hîp c¸c d·y bit cã ®é dµi tuú ý, vµ ∆ lµ tËp hîp c¸c d·y bit cã mét ®é dµi n cè ®Þnh, nªn ng−êi ta còng ®Þnh nghÜa hµm b¨m lµ c¸c hµm h : Σ → ∆ víi c¸c tËp hîp Σ vµ ∆ ®ã (tøc c¸c hµm h : { } { } 0,1 0,1 n ∗ → ). Dïng hµm b¨m h , ta xem z = h(x) lµ “tãm l−îc” cña x , ®¹i diÖn cho x, vµ ta sÏ xem ch÷ ký trªn z lµ ch÷ ký trªn v¨n b¶n x ; v× z cã ®é dµi h¹n chÕ, nªn ch÷ ký trªn x còng cã ®é dµi h¹n chÕ. Mét vÊn ®Ò ®−îc ®Æt ra lµ: vËy hµm h : Σ → ∆ ph¶i tho¶ m·n nh÷ng ®iÒu kiÖn g× ®Ó h(x) xøng ®¸ng ®−îc xem lµ ®¹i diÖn cña x trong viÖc t¹o lËp ch÷ ký ? Hai ®iÒu kiÖn sau ®©y th−êng ®−îc ng−êi ta xem lµ hai ®iÒu kiÖn chñ yÕu cho mét hµm b¨m: 1. Hµm b¨m ph¶i lµ hµm mét phÝa, nghÜa lµ cho x tÝnh z = h(x) lµ viÖc dÔ, nh−ng ng−îc l¹i, biÕt z tÝnh x lµ viÖc cùc khã (cã thÓ qui −íc dÔ hay khã theo nghÜa tÝnh ®−îc trong thêi gian ®a thøc hay kh«ng). 2. Hµm b¨m ph¶i lµ hµm kh«ng va ch¹m m¹nh theo nghÜa sau ®©y: kh«ng cã thuËt to¸n tÝnh ®−îc trong thêi gian ®a thøc gi¶i bµi to¸n “ t×m x1 vµ x2 thuéc Σ sao cho x1 ≠ x2 vµ h (x1) =h (x2)”; nãi c¸ch kh¸c, t×m hai v¨n b¶n kh¸c nhau cã cïng mét ®¹i diÖn lµ cùc kú khã. (Cßn cã mét kh¸i niÖm kh«ng va ch¹m yÕu ®−îc ®Þnh nghÜa nh− sau: Cho x ∈Σ. Hµm h lµ kh«ng va ch¹m yÕu ®èi víi x nÕu rÊt khã t×m ®−îc ∈Σ, x′ x′ ≠ x vµ h ( x′ ) = h (x )). Ta mong muèn ®é dµi cña ch÷ ký lµ ng¾n, tøc lµ ®é dµi cña c¸c tãm l−îc còng ng¾n. Nh−ng ng¾n bao nhiªu lµ võa? Ng¾n bao nhiªu th× cã thÓ b¶o ®¶m tÝnh kh«ng va ch¹m m¹nh? Vµ ë ®©y ta gÆp mét kiÓu “tÊn c«ng”, th−êng ®−îc gäi lµ “tÊn c«ng ngµy sinh” cã liªn quan ®Õn kh¶ n¨ng va ch¹m m¹nh, nãi r»ng trong mét nhãm gåm 23 ng−êi ®−îc chän mét c¸ch ngÉu nhiªn th× Ýt nhÊt cã hai ng−êi cã cïng ngµy sinh (tøc cã va ch¹m m¹nh!). Mét c¸ch tæng qu¸t, ng−êi ta chøng minh ®−îc r»ng: NÕu cã tÊt c¶ n b¶n tãm l−îc, vµ 1 2 ln , 1 k n ε ≈ − th× trong k v¨n b¶n ®−îc chän ngÉu nhiªn cã Ý nhÊt mét va ch¹m m¹nh (tøc cã t x′ ≠ x vµ h ( x′ ) = h (x )) víi x¸c suÊt ε. 123
  • 129.
    Khi 1 2 ε = ,ta cã 1,17 k ≈ n . Trong tr−êng hîp ngµy sinh, ta cã n =365, do ®ã 22,3 23. k ≈ ≈ Trë l¹i víi vÊn ®Ò chän ®é dµi (cña biÓu diÔn nhÞ ph©n) cho c¸c tãm l−îc, nÕu ta lÊy ch¼ng h¹n ®é dµi 40 bit, th× n = 240 , vµ do ®ã tõ k ≈ 220 (kho¶ng mét triÖu) v¨n b¶n sÏ cã mét va ch¹m m¹nh víi x¸c suÊt 1/2, nh− vËy khã b¶o ®¶m ®−îc an toµn. Nh−ng nÕu ta lÊy dé dµi cña b¶n tãm l−îc lµ 128, tøc n =2128 , th× va ch¹m m¹nh cã thÓ xÈy ra víi x¸c suÊt 1/2 khi sè c¸c v¨n b¶n cã thÓ lµ k ≈ 264 , mét con sè kh¸ lín (so víi sè v¨n b¶n cã thÓ nÈy sinh trong thùc tÕ), do ®ã hy väng tÝnh an toµn sÏ ®−îc b¶o ®¶m. Cã thÓ v× vËy mµ trong chuÈn DSS ng−êi ta chän ®é dµi cña c¸c tãm l−îc lµ 160 bit. 5.3.2. Hµm b¨m Chaum-van Heijst-Pfitzmann. D−íi ®©y ta sÏ giíi thiÖu mét thÝ dô cô thÓ vÒ mét hµm b¨m ®−îc x©y dùng dùa trªn tÝnh khã cña bµi to¸n l«garit rêi r¹c, do c¸c t¸c gi¶ Chaum, van Heijst vµ Pfitzmann ®Ò xuÊt n¨m 1992. Hµm b¨m ®ã ®−îc x©y dùng nh− sau: Gi¶ sö p lµ mét sè nguyªn tè lín d¹ng Sophie Germain, tøc cã d¹ng p = 2q +1, trong ®ã q còng lµ sè nguyªn tè. Chän α vµ β lµ hai phÇn tö nguyªn thuû cña p Z∗ . ViÖc tÝnh logα β , khi biÕt α vµ β , lµ rÊt khã. Hµm b¨m { } : q q p h Z Z Z × → − 0 ®−îc ®Þnh nghÜa nh− sau: víi mäi 1 2 , q x x Z ∈ ta cã 1 1 2 ( , ) . x x h x x 2 α β = modp. Ta gäi hµm b¨m h ®−îc ®Þnh nghÜa nh− vËy lµ hµm b¨m Chaum-van Heijst-Pfitzmann. Hµm b¨m ®ã cã c¸c tÝnh chÊt lµ hµm mét phÝa vµ kh«ng va ch¹m m¹nh nh− yªu cÇu ®èi víi mét hµm b¨m. TÝnh mét phÝa cña hµm ®ã ®−îc suy ra tõ tÝnh mét phÝa cña hµm l«garit rêi r¹c. Cßn tÝnh kh«ng va ch¹m m¹nh cña h ®−îc chøng minh bëi ®Þnh lý sau ®©y : NÕu biÕt mét va ch¹m m¹nh ®èi víi h th× cã thÓ tÝnh ®−îc logα β mét c¸ch cã hiÖu qu¶. Gi¶ sö cã mét va ch¹m 1 2 3 4 ( , ) ( , ), h x x h x x = trong ®ã (x1,x2) ≠ (x3,x4). Nh− vËy ta cã 3 1 2 . x x x x4 . α β α β ≡ (modp), tøc lµ 1 3 4 2 x x x x α β − − ≡ (modp). §Æt d =gcd(x4 - x2, p -1). V× p -1 = 2q vµ q lµ sè nguyªn tè, nªn ta cã d ∈ {1,2,q, p -1}. Ta xÐt lÇn l−ît bèn kh¶ n¨ng ®ã cña d. Gi¶ sö d =1. Khi ®ã, ®Æt y = (x4 - x2)-1 mod(p -1), ta cã 124
  • 130.
    (modp) 4 2 ( ) xx y β β − ≡ (modp), 1 3 ( ) x x y α − ≡ vµ ta cã thÓ tÝnh logarit rêi r¹c logα β nh− sau : logα β = (x1 - x3)(x4 - x2)-1 mod(p –1). B©y giê gi¶ sö d = 2. V× p -1 = 2q vµ q lµ sè lÎ, ta ph¶i cã gcd(x4 - x2, q) =1. Còng ®Æt y = (x4 - x2)-1 modq, ta cã (x4 - x2)y = kq +1 víi k lµ mét sè nguyªn nµo ®ã, vµ ta cã 4 2 ( ) 1 x x y kq β β − + ≡ (modp) ( 1)k β ≡ − (modp) (v× (modp)) 1 q β ≡ − β ≡ ± (modp). Nh− vËy ta cã (modp) 1 3 4 2 ( ) ( ) x x y x x y β α − − ≡ β ≡ ± (modp). Tõ ®ã suy ra 1 3 log ( ) x x y α β = − mod(p -1) hay lµ 1 3 log ( ) x x y α β = − +q mod(p -1). Cã thÓ thö ®Ó x¸c ®Þnh gi¸ trÞ nµo trong hai gi¸ trÞ ®ã ®óng lµ logα β . B©y giê ta xÐt trr−êng hîp d =q. V× 0 ≤ x2 , x4 ≤ q -1, nªn -(q -1) ≤ x4 - x2 ≤ q -1. Do ®ã kh«ng thÓ cã gcd(x4 - x2, p -1) = q, tr−êng hîp nµy kh«ng thÓ xÈy ra. Cuèi cïng lµ tr−êng hîp d = p -1. §iÒu nµy chØ xÈy ra nÕu x2 = x4. Nh−ng khi ®ã ta cã 3 1 2 2 x x x x α β α β ≡ (modp) 3 1 x x α α ≡ (modp) vµ x1=x3. Nh− vËy (x1, x2) = (x3, x4), m©u thuÉn víi gi¶ thiÕt. VËy tr−êng hîp nµy còng kh«ng thÓ xÈy ra. §Þnh lý nãi trªn ®−îc chøng minh. Hµm b¨m Chaum-van Heijst-Pfitzmann lµ kh«ng va ch¹m m¹nh. Chó ý r»ng nÕu p cã ®é dµi biÓu diÔn nhÞ ph©n lµ t bit, tøc Zp lµ tËp con cña ∆ ={0,1}t , th× q cã ®é dµi t -1 bit, vµ Zq×Zq lµ tËp con cña Σ = {0,1}m víi m =2(t -1). Hµm b¨m h ®−îc ®Þnh nghÜa ë trªn cã thÓ xem lµ hµm h : Σ → ∆. Víi môc ®Ých ch÷ ký, ta muèn cã nh÷ng hµm b¨m h : Σ → ∆ víi ∆ lµ tËp c¸c tõ cã sè bit h¹n chÕ, nh−ng Σ l¹i lµ tËp c¸c tõ cã ®é dµi tuú ý. Muèn vËy, ta ph¶i cã kh¶ n¨ng më réng hµm b¨m; ®Þnh lý sau ®©y cho ta kh¶ n¨ng ®ã. 125
  • 131.
    5.3.3. Më rénghµm b¨m. B©y giê gi¶ sö h : 2 m 2 t Z Z → (ë ®©y Z2 ={0,1}) lµ mét hµm b¨m kh«ng va ch¹m m¹nh tho¶ m·n m ≥ t +1 (hµm b¨m trong môc trªn tho· m·n ®iÒu kiÖn ®ã). Ta sÏ dïng h ®Ó x©y dùng mét hµm b¨m nh− sau : 2 : t h Z Z ∗ ∗ → 2 Gi¶ sö x ∈ 2 Z∗ , ta c¾t x thµnh c¸c ®o¹n cã cïng ®é dµi l bit, trong ®ã l = m-t-1, nÕu ®o¹n cuèi cïng ch−a cã ®ñ l bit, th× ta bæ sung thªm c¸c bit 0 cho ®ñ, vµ ®Ó ghi nhí sù bæ sung ®ã (ch¼ng h¹n lµ d bit) ta thªm cho x mét ®o¹n cuèi xk +1 lµ biÓu diÔn nhÞ ph©n l bit cña sè d . Nh− vËy mçi x ∈ 2 Z∗ ®−îc viÕt l¹i d−íi d¹ng x = x1x2....xkxk +1, trong ®ã víi mäi i =1,2,...,k, k +1, xi 2 l Z ∈ (ta chó ý r»ng nÕu biÕt x d−íi d¹ng nµy ta sÏ kh«i phôc l¹i ®−îc x ë d¹ng gèc ban ®Çu). Ta ®Þnh nghÜa mét c¸ch ®Ö qui d·y tõ g1, g2,..., gk +1 2 t Z ∈ vµ hµm h∗ nh− sau : g1 = h (0t +1 x1), gi+1=h (gi1xi+1) (i =1,...,k) h∗ (x) = gk+1 . Nh− vËy, gi¸ trÞ cña hµm b¨m h∗ lµ mét tõ cã ®é dµi t bit. Ng−êi ta chøng minh ®−îc ®Þnh lý sau ®©y : NÕu hµm b¨m h cã tÝnh chÊt kh«ng va ch¹m m¹nh th× hµm b¨m më réng còng cã tÝnh chÊ kh«ng va ch¹m m¹nh. h∗ t 5.3.4. X©y dùng hµm b¨m tõ c¸c hÖ mËt m·. Cã mét ph−¬ng ph¸p chung ®Ó x©y dùng hµm b¨m lµ sö dông c¸c hÖ mËt m· kho¸ ®èi xøng. Gi¶ sö (P , C , K , E , D ) lµ mét hÖ mËt m· kho¸ ®èi xøng mµ ®é an toµn ®· ®−îc thö nghiÖm. §Ó tiÖn tr×nh bµy, ta cã thÓ gi¶ thiÕt r»ng P =C =K = 2 n Z . Nªn chän n kh¸ lín, cì n ≥ 128 ®Ó tr¸nh kiÓu “tÊn c«ng ngµy sinh”. Ch¼ng h¹n, cã thÓ chän hÖ mËt m· ®ã lµ hÖ DES (cã thÓ víi nh÷ng ®iÒu chØnh cÇn thiÕt ®Ó cã ®é dµi c¸c ký tù trong P , C , K thÝch hîp). XuÊt ph¸t tõ hµm lËp mËt m· E ta x¸c ®Þnh mét hµm f : 2 n Z × 2 n Z → 2 n Z sao cho víi mäi (x ,y) ∈ 2 n Z × 2 n Z , gi¸ trÞ cña f(x, y) ®−îc tÝnh theo x, y vµ hµm E . B©y giê gi¶ sö cho x ∈ 2 Z∗ . Nh− trong môc trªn, ta cã thÓ viÕt x d−íi d¹ng ghÐp nèi liªn tiÕp cña k ®o¹n ký tù, mçi ®o¹n cã n bit : x = x1x2....xk . TiÕp ®ã, ta chän mét gi¸ trÞ ban ®Çu g0∈ 2 n Z , vµ x©y dùng tiÕp g1, g2,...,gk theo qui t¾c 126
  • 132.
    gi = f(xi , gi -1) víi i =1,2,...,k. Vµ cuèi cïng, ta ®Þnh nghÜa gi¸ trÞ hµm b¨m h (x ) = gk . Hµm b¨m h ®−îc ®Þnh nghÜa nh− vËy lµ mét hµm ¸nh x¹ 2 Z∗ vµo 2 n Z ; trong tr−êng hîp chung cã thÓ kh«ng b¶o ®¶m tÝnh an toµn, nh−ng ng−êi ta ®· chøng tá ®−îc r»ng nã lµ an toµn trong c¸c tr−êng hîp hµm f ®−îc chän nh− sau: f (x, y) = x ⊕ E (y,x), f (x, y) = x ⊕ y ⊕E (y,x), f (x, y) = x ⊕ E (y,x ⊕ y), f (x, y) = x ⊕ y ⊕E (y,x ⊕ y) , trong ®ã ⊕ lµ phÐp céng mod2 tõng cÆp bit mét cña hai tõ cã sè bit b»ng nhau. 5.4. Mét sè s¬ ®å ch÷ ký kh¸c. 5.4.1. S¬ ®å ch÷ ký Rabin. T−¬ng t− nh− s¬ ®å ch÷ ký RSA, s¬ ®å ch÷ ký Rabin còng sö dông sè nguyªn n lµ tÝch cña hai sè nguyªn tè lín p vµ q, n =p.q , víi hµm mét phÝa ë ®©y lµ hµm lÊy b×nh ph−¬ng cña mét sè nguyªn theo modn, cã hµm ng−îc lµ hµm t×m c¨n bËc hai theo modn, mét hµm kh«ng tÝnh ®−îc mét c¸ch dÔ dµng nÕu kh«ng biÕt c¸c thõa sè p ,q cña n. Nh− vËy, mét c¸ch ®¹i thÓ, s¬ ®å ch÷ ký Rabin cã thÓ ®−îc m« t¶ lµ mét bé S = (P, A, K, S, V), trong ®ã P= Qn , A = Zn , K lµ tËp c¸c cÆp kho¸ K =(K’,K''), trong ®ã K'' = n lµ kho¸ c«ng khai dïng ®Ó kiÓm thö ch÷ ký,n lµ tÝch cña hai sè nguyªn tè lín p vµ q, n =p.q , víi p ≡ q ≡ 3 (mod4), cßn K’ = d víi d = (n -p -q +5)/8 lµ kho¸ bÝ mËt dïng ®Ó ký. C¸c hµm ' K sig vµ K ver ®−îc x¸c ®Þnh nh− sau: ' K sig (x) = xd modn , K ver ′′ (x,y ) = ®óng ⇔ x ≡ y 2 (modn ). Ta chó ý r»ng nÕu p vµ q ®−îc chän víi tÝnh chÊt nãi trªn th× víi mäi x ∈P =Qn , xd modn lµ mét c¨n bËc hai cña x theo modn, v× ( 1)( 1) 4 ( 1)( 1) 2 1 8 4 p q p q x x x − − + − − + ≡ ≡ 2d x ≡ (modn) ; vµ c¸c hµm ' K sig vµ K ver ®−îc ®Þnh nghÜa nh− trªn lµ hîp thøc. Y t−ëng c¬ b¶n vÒ mét s¬ ®å ch÷ ký Rabin chØ ®¬n gi¶n lµ nh− thÕ, tuy nhiªn ®Ó cã mét s¬ ®å ch÷ ký dïng ®−îc trong thùc tÕ, 127
  • 133.
    ng−êi ta muèntËp c¸c v¨n b¶n P kh«ng h¹n chÕ trong Qn , mµ réng r·i h¬n, lµ Zn ch¼ng h¹n, nh−ng ®Ó ®−îc nh− vËy, ta ph¶i dïng thªm mét hµm R ®Ó chuyÓn mét x ∈P ban ®Çu vÒ mét gi¸ trÞ m nµo ®ã cã quan hÖ gÇn gòi víi mét thÆng d− bËc hai theo modn ®Ó s¬ ®å ch÷ ký theo ý t−ëng nãi trªn cã thÓ vËn hµnh ®−îc. §Ó thùc hiÖn ®−îc mét s¬ ®å ch÷ ký söa ®æi nh− vËy, ng−êi ta sÏ dïng mét bæ ®Ò to¸n häc sau ®©y: Bæ ®Ò 5.4.1. Gi¶ sö p vµ q lµ c¸c sè nguyªn tè kh¸c nhau cïng ®ång d− víi 3 theo mod4, vµ n = p.q. Khi ®ã ta cã: 1) NÕu gcd(x,n) =1, th× ( 1)( 1)/ 2 1 p q x − − ≡ (modn) 2) NÕu n x Q ∈ , th× modn lµ mét c¨n bËc hai cña x theo modn. ( 5 n p q x − − + )/8 3) NÕu x lµ sè nguyªn cã 1, x n ⎛ ⎞ = ⎜ ⎟ ⎝ ⎠ vµ d =(n -p -q +5)/8, th× 2 x d modn = , , , . n n x khi x Q n x khi x Q ∈ ⎧ ⎨ − ∉ ⎩ 4) NÕu p ≠ q (mod8) th× 2 1. n ⎛ ⎞ = − ⎜ ⎟ ⎝ ⎠ Do ®ã, nh©n mét sè nguyªn x bÊt kú víi 2 hay víi 2-1 modn ®Òu ®¶o ng−îc ký hiÖu Jacobi cña x. Ng−êi ®äc cã thÓ tù chøng minh lÊy bæ ®Ò trªn. B©y giê mét s¬ ®å ch÷ ký Rabin söa ®æi cã thÓ ®−îc x©y dùng nh− sau : Tr−íc hÕt ta x¸c ®Þnh cho mçi thùc thÓ tham gia mét cÆp kho¸ K =(K’,K''), víi kho¸ c«ng khai K’ = n, kho¸ bÝ mËt K'' = (p,q) hay = d = (n -p -q +5)/8,trong ®ãp vµ q lµ hai sè nguyªn tè cã tÝnh chÊt p ≡ 3(mod8) vµ q ≡ 7(mod8),n =p.q ;p vµ q ®−îc chän vµ gi÷ bÝ mËt. Thùc thÓ A cã kho¸ K =(K’,K'') sÏ t¹o ch÷ ký trªn mét v¨n b¶n x (x∈Zn , x ≤ (n -6)/16) b»ng c¸c b−íc sau ®©y : a. TÝnh m =R(x) =16x +6. b. TÝnh ký hiÖu Jacobi . m J n ⎛ ⎞ = ⎜ ⎟ ⎝ ⎠ c. NÕu J =1 th× tÝnh s =md modn, nÕu J = -1 th× tÝnh s =(m/2)d modn. d. s lµ ch÷ ký cña A trªn x. ViÖc kiÓm thö ch÷ ký s cña A b»ng c¸ch dïng khãa c«ng khai n ®−îc thùc hiÖn bëi c¸c b−íc sau ®©y: a. TÝnh m*=s2 modn b. NÕu m*≡ 6(mod8), th× lÊy m =m*, nÕu m*≡ 3(mod8), th× lÊy m =2m*, nÕu m*≡ 7(mod8), th× lÊy m =n -m*, 128
  • 134.
    nÕu m*≡ 2(mod8),th× lÊy m =2(n -m *). c. Thö ®iÒu kiÖn m ≡ 6 (mod16), nÕu sai th× b¸c bá ch÷ ký. d. NÕu ®iÒu kiÖn trªn ®óng th× lÊy x = R -1 (m) = (m -6)/16. (Theo ®Þnh nghÜa cña phÐp kiÓm thö th× ta cã thÓ viÕt ®iÒu d lµ: thuËt to¸n kiÓm thö x¸c nhËn s lµ ch÷ ký cña A trªn v¨n b¶n x nÕu x = R -1 (m) = (m -6)/16). Ta cã thÓ chøng minh tÝnh hîp thøc cña c¸c thuËt to¸n ký vµ kiÓm thö nh− sau: C¸c b−íc t¹o ch÷ ký b-c cho ta ch÷ ký Rabin cña v =m hay v =m/2 tuú theo ký hiÖu Jacobi b»ng 1 hay kh«ng. Theo ®iÒu 4 cña bæ ®Ò 5.4.1, cã ®óng mét kh¶ n¨ng hoÆc m, hoÆc m/2 cã gi¸ trÞ ký hiÖu Jacobi b»ng 1. Gi¸ trÞ v ®−îc ký lµ ≡ 3 hoÆc ≡ 6 (mod8). Theo ®iÒu 3 cña bæ ®Ò ®ã, s 2 modn =v hoÆc = n -v lµ tuú theo v∈Qn hay kh«ng. V× n ≡ 5 (mod8), cã thÓ x¸c ®Þnh mét c¸ch duy nhÊt mét trong hai tr−êng hîp ®ã. ThÝ dô: Gi¶ thö chän p =19, q =31, do ®ã n =589 vµ d =68. A cã kho¸ c«ng khai n =589 vµ kho¸ bÝ mËt d =68. Kh«ng gian ký gåm c¸c gi¸ trÞ cña m øng víi c¸c gi¸ trÞ x = 0,1,2,...,32,33 cïng víi c¸c gi¸ trÞ cña ký hiÖu Jacobi t−¬ng øng ®−îc cho bëi b¶ng sau ®©y: m 589 m ⎛ ⎞ ⎜ ⎟ ⎝ ⎠ 6 22 54 70 86 102 118 134 150 -1 1 -1 -1 1 1 1 1 -1 m 589 m ⎛ ⎞ ⎜ ⎟ ⎝ ⎠ 166 182 198 214 230 246 262 278 294 1 -1 1 1 1 1 -1 1 -1 m 589 m ⎛ ⎜ ⎟ ⎝ ⎠ ⎞ 326 358 374 390 406 422 438 454 470 -1 -1 -1 -1 -1 1 1 1 -1 m 589 m ⎛ ⎜ ⎟ ⎝ ⎠ ⎞ 486 502 518 534 550 566 582 -1 1 -1 -1 1 -1 1 Ta t¹o ch÷ ký víi th«ng b¸o x =12. TÝnh m = R(12) =198, 198 1, 589 m n ⎛ ⎞ ⎛ ⎞ = ⎜ ⎟ ⎜ ⎟ ⎝ ⎠ ⎝ ⎠ = vµ s = 19868 mod589 = 102. Ch÷ ký lµ s =102. Dïng thuËt to¸n kiÓm thö ta cã: m* = s 2 modn = 1022 mod589 =391. V× m* ≡ 7 (mod8), ta lÊy m =n -m*= 589-391=198. Cuèi cïng, tÝnh x = R -1 (m) = (198-6)/16 =12, vµ ch÷ ký ®−îc x¸c nhËn. 129
  • 135.
    5.4.2. S¬ ®åch÷ ký Fiat-Shamir. Mçi s¬ ®å ch÷ ký Fiat-Shamir sö dông mét hµm b¨m h : 2 k 2 Z Z ∗ → ,biÕn mäi d·y ký tù nhÞ ph©n x ®é dµi tuú ý thµnh mét d·y cã ®é dµi k bit, ®−îc gäi lµ “tãm l−îc” cña x . Mçi thùc thÓ A t¹o cho m×nh cÆp kho¸ K =(K’,K'') b»ng c¸ch: chän hai sè nguyªn tè kh¸c nhau p vµ q, vµ ®Æt n =p.q ; sau ®ã chän ngÉu nhiªn k sè nguyªn kh¸c nhau s1,..., sk ∈ n Z∗ , vµ tÝnh víi mçi j (1≤ j ≤ k) 2 j j v s− = modn. X¸c ®Þnh kho¸ bÝ mËt K’ lµ bé k (s1,..., sk ), vµ kho¸ c«ng khai K'' lµ gåm bé k (v1,...,vk) vµ m«®uyn n. LÊy P = 2 Z∗ , A = 2 k n Z Z × , vµ x¸c ®Þnh c¸c thuËt to¸n ký vµ kiÓm thö nh− sau: §Ó t¹o ch÷ ký trªn v¨n b¶n x ∈P = 2 Z∗ , A chän ngÉu nhiªn mét sè nguyªn d−¬ng r ∈Zn , tÝnh u =r 2 modn , tÝnh e =(e1,..., ek ) = h(x u), trong ®ã x u lµ d·y ký tù nhÞ ph©n thu ®−îc b»ng c¸ch nèi ghÐp biÓu diÕn nhÞ ph©n cña sè u tiÕp sau biÓu diÔn nhÞ ph©n cña sè x. Ch÷ ký cña A trªn x ®−îc ®Þnh nghÜa lµ (e,s ), trong ®ã 1 . j k e j j s r s = = ∏ modn. §Ó kiÓm thö (e,s ) cã ®óng lµ ch÷ ký cña A trªn x hay kh«ng, ta dïng kho¸ c«ng khai (v1,...,vk) vµ m«®uyn n ®Ó tÝnh 2 1 . j k e j j w s v = = ∏ modn , råi tÝnh e’ = h(x w); vµ x¸c nhËn (e,s ) ®óng lµ ch÷ ký cña A trªn x khi vµ chØ khi e = e’ . DÔ chøng minh r»ng nÕu (e,s ) lµ ch÷ ký cña A trªn x th× e = e’, vµ ng−îc l¹i, tøc c¸c thuËt to¸n ký vµ kiÓm thö x¸c ®Þnh nh− trªn lµ hîp thøc. 5.4.3. S¬ ®å ch÷ ký Schnorr. S¬ ®å ch÷ ký Schnorr còng ®−îc x©y dùng t−¬ng tù nh− s¬ ®å Fiat-Shamir, nh−ng ë ®©y ta dïng mét hµm b¨m mét phÝa dùa trªn bµi to¸n khã tÝnh l«garit rêi r¹c. Mçi thùc thÓ A t¹o cho m×nh cÆp kho¸ K =(K’,K'') b»ng c¸ch: Chän mét sè nguyªn tè lín p, mét sè nguyªn tè q lµ −íc sè cña p -1, mét phÇn tö α cÊp q cña p Z∗ , vµ mét sè a , 1≤ a ≤ q -1. Gi÷ K’=a lµ kho¸ bÝ mËt , vµ c«ng bè kho¸ c«ng khai K'' = (p,q,α,r), trong ®ã r =αa modp. Chän mét hµm b¨m h : 2 q Z Z ∗ → . LÊy P = 2 Z∗ vµ A = q q Z Z × . 130
  • 136.
    §Ó ký trªnmét th«ng b¸o x ∈P = 2 Z∗ A chän thªm mét sè ngÉu nhiªn k ∈ Zq vµ tÝnh y =α k modp, e = vµ s = ae+k modq. Ch÷ ký cña A trªn x ®−îc x¸c ®Þnh lµ cÆp sè (s, e). ( ) h x y §Ó kiÓm thö xem cÆp sè (s, e) cã ®óng lµ ch÷ ký cña A trªn x hay kh«ng, ta dïng kho¸ c«ng khai K'' = (p,q,α,r) ®Ó tÝnh s e v r α − = modp vµ ( ) e h x v ′ = , vµ x¸c nhËn (s, e) ®óng lµ ch÷ ký cña A trªn x khi vµ chØ khi . e e ′ = Ta cã thÓ chøng minh r»ng c¸c thuËt to¸n ký vµ kiÓm thö x¸c ®Þnh nh− Ëy lµ hîp thøc. Thùc vËy, nÕu ch÷ ký(s, e) ®−îc ký bëi A trªn x, th× s e v r α − = modp = s ae α α − modp = k α modp =y, do ®ã = =e. Ng−îc l¹i, còng dÔ chøng tá r»ng nÕu th× (s, e) ®óng lµ ch÷ ký cña A trªn x. ( ) e h x v ′ = ( h x y ) e e ′ = 5.5.Ch÷ ký kh«ng phñ ®Þnh ®−îc vµ kh«ng chèi bá ®−îc 5.5.1. §Æt vÊn ®Ò. Trong c¸c phÇn tr−íc ta ®· tr×nh bµy mét vµi s¬ ®å ch÷ ký ®iÖn tö ; trong c¸c s¬ ®å ®ã, viÖc kiÓm thö tÝnh ®óng ®¾n cña ch÷ kýlµ do ng−êi nhËn thùc hiÖn. Nh− vËy, c¶ v¨n b¶n cïng ch÷ ký cã thÓ ®−îc sao chÐp vµ t¸n ph¸t cho nhiÒu ng−êi mµ kh«ng ®−îc phÐp cña ng−êi göi. §Ó tr¸nh kh¶ n¨ng ®ã, ng−êi ta ®−a ra c¸c s¬ ®å ch÷ ký kh«ng phñ ®Þnh ®−îc víi mét yªu cÇu lµ ch÷ ký kh«ng thÓ ®−îc kiÓm thö nÕu kh«ng cã sù hîp t¸c cña ng−êi ký. Sù hîp t¸c ®ã ®−îc thùc hiÖn th«ng qua mét giao thøc mêi hái vµ tr¶ lêi gi÷a ng−êi nhËn vµ ng−êi göi (còng lµ ng−êi ký), gäi lµ giao thøc kiÓm thö. Khi ch÷ ký ®ßi hái ®−îc x¸c nhËn b»ng mét giao thøc kiÓm thö th× mét vÊn ®Ò kh¸c l¹i nÈy sinh lµ lµm thÕ nµo ®Ó ng¨n c¶n ng−êi ký chèi bá mét ch÷ ký mµ anh ta ®· ký b»ng c¸ch tuyªn bè r»ng ch÷ ký ®ã lµ gi¶ m¹o? §Ó ®¸p øng yªu cÇu ®ã, cÇn cã thªm mét giao thøc chèi bá, th«ng qua giao thøc nµy ng−êi ký cã thÓ chøng minh mét ch÷ ký kh«ng ph¶i cña m×nh ®óng thùc lµ gi¶ m¹o. NÕu anh ta tõ chèi kh«ng tham gia giao thøc ®ã th× cã b»ng chøng ®Ó chøng tá r»ng anh ta kh«ng chøng minh ®−îc ®ã lµ ch÷ ký gi¶ m¹o, tøc kh«ng chèi bá ®−îc ch÷ ký cña m×nh! Nh− vËy, mét s¬ ®å ch÷ ký kh«ng phñ ®Þnh ®−îc sÏ gåm ba phÇn : mét thuËt to¸n ký, mét giao thøc kiÓm thö vµ mét giao thøc chèi bá. 5.5.2. S¬ ®å ch÷ ký Chaum-van Antverpen. S¬ ®å ch÷ ký kh«ng phñ ®Þnh ®−îc ®Çu tiªn ®−îc Chaum vµ van Antverpen ®Ò xuÊt n¨m 1989. Mét chñ thÓ A chän mét sè nguyªn tè d¹ng Sophie Germain p =2q +1, trong ®ã q còng lµ sè 131
  • 137.
    nguyªn tè; chänp Z α ∗ ∈ lµ mét phÇn tö cÊp q . Gäi G lµ nhãm con (theo phÐp nh©n) cÊp q sinh bëi α cña p Z∗ . S¬ ®å ch÷ ký Chaum - van Antverpen cña A gåm cã: P =A =G, cÆp kho¸ K =(K’,K'') gåm cã kho¸ bÝ mËt K’ = a vµ kho¸ c«ng khai K'' = (p,α, a, β), trong ®ã α lµ mét sè nguyªn d−¬ng p -1, vµ β = α a modp. ThuËt to¸n ký: A ký trªn v¨n b¶n x ∈P =G víi ch÷ ký y = ( ) a K sig x x ′ = modp. Giao thøc kiÓm thö : Víi v¨n b¶n x vµ ch÷ ký y ng−êi nhËn B cïng ng−êi ký A thùc hiÖn giao thøc kiÓm thö sau ®©y: 1. B chän ngÉu nhiªn hai sè 1 2 , , q e e Z∗ ∈ tÝnh 1 . e e c y 2 β = modp vµ göi c cho A, 2. A tÝnh 1 a d c − = q mod modp vµ göi d cho B. 3. B chÊp nhËn y lµ ch÷ ký cña A trªn x nÕu 1 2 . mod e e d x α ≡ p . Giao thøc chèi bá: gåm c¸c b−íc sau ®©y: 1. B chän ngÉu nhiªn hai sè 1 2 , , q e e Z∗ ∈ tÝnh 1 . e e c y 2 β = modp vµ göi c cho A, 2. A tÝnh 1 a d c − = q mod modp vµ göi d cho B, 3. B thö ®iÒu kiÖn d ≢ 1 2 . (mod e e x α p . ) 4.B chän tiÕp hai sè 1 2 , , q f f Z∗ ∈ tÝnh 1 . 2 f f C y β = modp vµ göi C cho A, 5. A tÝnh 1 mod a D C − = q modp vµ göi D cho B, 6. B thö ®iÒu kiÖn D ≢ . 1 2 . (mod f f x α p) ) 7. B kÕt luËn y lµ ch÷ ký gi¶ m¹o, nÕu (modp). 2 1 2 1 ( ) ( e f f e d D α α − − ≡ 5.5.3. TÝnh hîp thøc cña c¸c giao thøc. Ta sÏ chøng minh hai ®Þnh lý sau ®©y ®Ó chøng tá tÝnh hîp thøc cña c¸c giao thøc kiÓm thö vµ chèi bá cña s¬ ®å ch÷ ký Chaum-van Antverpen. §Þnh lý 5.5.1. a)NÕu y ®óng lµ ch÷ ký cña A trªn x, tøc y ≡x a modp,th× viÖc B chÊp nhËn y lµ ch÷ ký cña A trªn x theo giao thøc kiÓm thö lµ ®óng. b) NÕu y ≢x a (modp), tøc y kh«ng ph¶i lµ ch÷ ký cña A trªn x, th× viÖc B, theo giao thøc kiÓm thö, chÊp nhËn y lµ ch÷ ký cña A trªn x, cã thÓ xÈy ra víi x¸c suÊt 1/q. Chøng minh. a) Gi¶ sö y ≡x a modp. Khi ®ã, (chó ý r»ng tÊt c¶ c¸c sè mò ®Òu ®−îc tÝnh theo modq). Ta còng cã 1 (mod . a y x − ≡ p) 132
  • 138.
    1 (mod . a β α − ≡p) Do ®ã, 1 1 1 1 2 1 e a e a e e a d c y x 2 β α − − − ≡ ≡ ≡ (modp), vµ theo giao thøc kiÓm thö, B chÊp nhËn y lµ ch÷ ký cña A trªn x, viÖc chÊp nhËn ®ã lµ ®óng. b)B©y giê gi¶ thö y ≢x a (modp). Tr−íc hªt ta chó ý r»ng mçi lêi mêi hái c t−¬ng øng víi ®óng q cÆp (e1, e2), v× y vµ β lµ c¸c phÇn tö cña nhãm nh©n G cÊp q. Khi A nhËn ®−îc c©u hái c , A kh«ng cã c¸ch g× ®Ó biÕt lµ B ®· dïng cÆp (e1, e2) nµo trong q cÆp cã thÓ ®ã. Ta chøng minh r»ng, do y ≢x a (modp), nªn trong q cÆp ®ã chØ cã ®óng mét cÆp tho¶ m·n ®ång d− thøc 1 2 e e d x α ≡ (modp). Thùc vËy, ta cã thÓ ®Æt , , , i j k c d x y l α α α = = = = α víi i, j, k, l ∈ Zq ,v× α lµ phÇn tö sinh cña G ,vµ hai ®ång d− thøc vµ 1 2 ( e e c y β ≡ p mod ) 1 2 e e d x α ≡ (modp) t−¬ng ®−¬ng víi hai ph−¬ng tr×nh 1 2 1 2 ( ( i le ae e e ≡ + ≡ + q j k q . mod ) mod ) ) − ) ) ) Tõ gi¶ thiÕt y ≢x a (modp) suy ra l – ak ≢ 0 (modq), tøc ®Þnh thøc cña hÖ ph−¬ng tr×nh nãi trªn (víi c¸c Èn sè e1, e2) lµ ≢ 0 (modq). Nh− vËy, mçi d ∈G lµ c©u tr¶ lêi ®óng (theo giao thøc kiÓm thö) chØ víi mét cÆp (e1, e2) trong q cÆp cã thÓ. V× vËy, nÕu y ≢x a (modp) , th× x¸c suÊt ®Ó B chÊp nhËn y lµ ch÷ ký cña A trªn x (theo giao thøc) lµ b»ng 1/q. §Þnh lý ®−îc chøng minh. §èi víi giao thøc chèi bá, ta cã ®Þnh lý sau ®©y : §Þnh lý 5.5.2. a) NÕu y ≢x a (modp), vµ c¶ A,B ®Òu tu©n theo giao thøc chèi bá, th× (modp), tøc giao thøc cho kÕt qu¶ chÝnh x¸c. 2 1 2 1 ( ) ( e f f e d D α α − ≡ b) NÕu y ≡xa modp, A vµ B ®Òu tu©n theo giao thøc, vµ cã d ≢ . 1 2 . (mod e e x α p D ≢ . 1 2 . (mod f f x α p Khi ®ã, ®ång d− thøc (modp) ®óng víi x¸c suÊt 1/q , tøc nÕu y ®óng lµ ch÷ ký cña A trªn x, th× theo giao thøc, B cã thÓ kÕt luËn r»ng nã lµ gi¶ m¹o (mét c¸ch sai lÇm) víi x¸c suÊt 1/q. 2 1 2 1 ( ) ( e f f e d D α α − − ≡ Chøng minh. a) Gi¶ thö y ≢ (mod a x p), vµ A,B cïng thùc hiÖn giao thøc chèi bá. Do y kh«ng lµ ch÷ ký cña A trªn x nªn B sÏ kiÓm thö ®óng c¸c bÊt ®ång d− thøc trong c¸c b−íc 3 vµ 6 cña giao thøc. V× a β α ≡ (modp), nªn ta cã (modp) 1 2 1 1 2 2 1 ( ) (( ) e f e e e f a d y α β α − − − ≡ ) 133
  • 139.
    (modp) 1 1 1 12 1 2 1 a e f e a f e f y β α − − − ≡ (modp). 1 1 1 e a f y − ≡ T−¬ng tù, ta còng cã 1 2 1 1 1 ( ) f e e a D y α − − ≡ f (modp). Nh− vËy, ®ång d− thøc ë ®iÓm 7 cña giao thøc ®−îc nghiÖm ®óng, vµ kÕt luËn y lµ ch÷ ký gi¶ m¹o cña A trªn x lµ chÝnh x¸c, kh«ng thÓ b¸c bá ®−îc. b) B©y giê gi¶ thiÕt a y x ≡ (modp), vµ A, B cïng thùc hiÖn giao thøc chèi bá. §Æt modp , ta cã 1 2 1/ / 0 e e e x d α− = 1 / / 0 . a e ae e a x d α− ≡ 1 2 1 2 1 / / ( ) e e a e ae e a ≢ 1 2 1 x x y α α− ≡ ≡ (modp). Theo ®iÓm b) trong ®Þnh lý 5.5.1, B cã thÓ chÊp nhËn y lµ ch÷ ký cña A trªn x0 , tøc lµ cã ®ång d− thøc 1 2 0 f f D x α ≡ (modp), víi x¸c suÊt 1/q. Nh−ng ®ång d− thøc ®ã t−¬ng ®−¬ng víi ®ång d− thøc (modp), 2 1 2 1 ( ) ( e f f e d D α α − ≡ ) − tøc ®ång d− thøc nµy còng cã thÓ xÈy ra víi x¸c suÊt 1/q. §Þnh lý ®−îc chøng minh. Ta chó ý r»ng trong giao thøc chèi bá, cÆp (e1, e2) ®−îc sö dông ®Ó t¹o ra x0 víi 0 a x ≢y(modp); cßn cÆp (f1, f2) ®−îc dïng ®Ó kiÓm thö xem y cã lµ ch÷ ký cña A trªn x0 hay kh«ng. ThÝ dô minh ho¹. Chän p = 467, q =233 (p = 2q +1), α =4 lµ phÇn tö sinh cña mét nhãm con G cÊp 233 cña 467 Z∗ . Chän a =101, khi ®ã ta cã β =α a modp = 4101 mod467 =449. A cã cÆp kho¸ K =(K’,K'') víi K’ =101, vµ K'' = (467, 4, 449). Gi¶ thö A ký trªn v¨n b¶n x =119 víi ch÷ ký y = 119101 mod467 =129. 1)B cã thÓ dïng giao thøc kiÓm thö ®Ó biÕt y cã ®óng lµ ch÷ ký cña A trªn x hay kh«ng nh− sau: B chän ngÉu nhiªn e1=38, e2=397, vµ tÝnh c =13; A sÏ tr¶ lêi l¹i b»ng d =9. B thö ®iÒu kiÖn , 1 2 . mod e e d x α ≡ p tøc lµ 9 ≡ 11938 .4397 (mod467). §ång d− thøc ®ã ®óng. B chÊp nhËn 129 ®óng lµ ch÷ ký cña A trªn v¨n b¶n 119. 2) B©y giê ta thö thùc hiÖn giao thøc chèi bá. Gi¶ thö A göi v¨n b¶n x =286 víi ch÷ ký y = 83. B chän ngÉu nhiªn e1=45, e2=237, råi tÝnh c =305 vµ göi cho A; A tr¶ lêi l¹i b»ng d =109. B thö ®iÒu kiÖn d≢ , ®iÒu kiÖn ®ã ®−îc tho¶ m·n v× 1 2 . (mod e e x α p) 134
  • 140.
    109≠149(=28645 .4237 mod467). B l¹itiÕp tôc phÇn sau cña giao thøc b»ng c¸ch chän ngÉu nhiªn f1 =125, f2 =9, vµ tÝnh C =270, göi cho A, A tr¶ lêi l¹i b»ng D =68. B l¹i thö ®iÒu kiÖn D≢ , ®iÒu kiÖn nµy còng ®−îc tho¶ m·n v× 68≠25(=286 1 2 . (mod f f x α p) 125 .49 mod467). B©y giê B l¹i thö ®iÒu kiÖn cuèi cïng cña giao thøc b»ng c¸ch tÝnh 2 1 2 1 237) 125 9 45 ( ) (109.4 ) 188(mod 467) ( ) (68.4 ) 188(mod 467) e f f e d D α α − − − − ≡ ≡ ≡ ≡ Hai gi¸ trÞ ®ã b»ng nhau. B cã thÓ kÕt luËn y kh«ng ph¶i lµ ch÷ ký cña A trªn x víi x¸c suÊt sai lÇm lµ 1/233! ThÝ dô nµy ®−îc tr×nh bµy víi môc ®Ých minh ho¹, nªn chØ sö dông c¸c sè nguyªn tè p, q bÐ cho dÔ tÝnh. Trong thùc tÕ øng dông, ®Ó b¶o ®¶m tÝnh an toµn, ta ph¶i dïng c¸c sè p, q rÊt lín, ch¼ng h¹n ph¶i lµ c¸c sè cã biÓu diÔn nhÞ ph©n cì 512 bit, khi ®ã ta cã q ≥ 2510 , tøc lµ 1/q ≤ 2-510 , mét x¸c suÊt rÊt bÐ, cã thÓ bá qua; vµ v× vËy, c¸c yªu cÇu ®èi víi c¸c giao thøc kiÓm thö vµ giao thøc chèi bá nh− ®Ò cËp ®Õn trong phÇn ®Æt vÊn ®Ò (5.5.1) cã thÓ xem lµ ®−îc tho¶ m·n. 135
  • 141.
    CH¦¥NG VI C¸c s¬®å x−ng danh vµ x¸c nhËn danh tÝnh 6.1. VÊn ®Ò x−ng danh. Trong ch−¬ng tr−íc ta ®· thÊy c¸c kü thuËt mËt m· cã thÓ ®−îc øng dông ®Ó x©y dùng nhiÒu gi¶i ph¸p an toµn cho vÊn ®Ò x¸c nhËn c¸c th«ng b¸o cïng víi ng−êi göi trªn c¸c m¹ng truyÒn tin c«ng céng. Trong ch−¬ng nµy ta sÏ xÐt viÖc øng dông còng c¸c kü thuËt ®ã cho bµi to¸n x©y dùng c¸c s¬ ®å x−ng danh vµ x¸c nhËn danh tÝnh, còng lµ mét bµi to¸n quan träng vµ th−êng gÆp trong mäi ho¹t ®éng giao l−u th«ng tin, ®Æc biÖt giao l−u qua m¹ng. ViÖc x−ng danh vµ x¸c nhËn danh tÝnh cña mét ng−êi th−êng lµ cÇn thiÕt trong nh÷ng t×nh huèng nh−: - §Ó rót tiÒn tõ c¸c m¸y rót tiÒn tù ®éng (ATM), ta cÇn x−ng danh b»ng c¸ch dïng mét thÎ rót tiÒn cïng víi mét sè PIN (sè x−ng danh c¸ nh©n) cña m×nh - §Ó mua hµng hoÆc thanh to¸n mét kho¶n tiÒn qua m¹ng ®iÖn tho¹i, ta cÇn th«ng b¸o sè thÎ tÝn dông (cïng ngµy hÕt h¹n) cña m×nh. - §Ó truy nhËp vµo mét m¸y tÝnh trªn mét m¹ng, ta cÇn khai b¸o tªn ng−êi dïng cïng mËt hiÖu (password) cña m×nh. - v.v... Trong thùc tÕ cuéc sèng, viÖc x−ng danh theo thãi quen th−êng kh«ng ®ßi hái tÝnh an toµn, ch¼ng h¹n c¸c sè PIN, mËt khÈu th−êng kh«ng cã g× ®Ó b¶o ®¶m lµ ®−îc gi÷ kÝn, ng−êi ngoµi kh«ng biÕt ®−îc. Tuy nhiªn, cuéc sèng cµng ngµy cµng ®−îc tin häc ho¸, phÇn lín c¸c giao dÞch ®−îc thùc hiÖn trªn c¸c m¹ng tin häc, viÖc xem th−êng c¸c yªu cÇu vÒ an toµn trong c¸c kh©u x−ng danh vµ x¸c nhËn danh tÝnh lµ kh«ng thÓ tiÕp tôc ®−îc; cÇn ph¶i cã nh÷ng gi¶i ph¸p b¶o ®¶m tÝnh an toµn cho c¸c ho¹t ®éng ®ã. Môc tiªu an toµn cña viÖc x−ng danh lµ b¶o ®¶m sao cho khi “nghe” mét chñ thÓ A x−ng danh víi mét chñ thÓ B, bÊt kú mét ai 136
  • 142.
    kh¸c A còngkh«ng thÓ sau ®ã m¹o mhËn m×nh lµ A, kÓ c¶ chÝnh B còng kh«ng thÓ m¹o x−ng m×nh lµ A sau khi ®−îc A x−ng danh víi m×nh. Nãi c¸ch kh¸c, A muèn chøng minh ®Ó ®−îc ®èi t¸c x¸c nhËn danh tÝnh cña m×nh mµ kh«ng ®Ó lé bÊt cø th«ng tin nµo vÒ viÖc chøng minh danh tÝnh ®ã. ViÖc x−ng danh th−êng ph¶i th«ng qua mét giao thøc hái- ®¸p nµo ®ã, qua giao thøc ®ã, ®Ó B cã thÓ x¸c nhËn danh tÝnh cña A, B ®Æt cho A mét c©u hái; A ph¶i tr¶ lêi, trong tr¶ lêi ®ã A ph¶i chøng tá cho B biÕt lµ A cã së h÷u mét bÝ mËt riªng A míi cã, ®iÒu ®ã thuyÕt phôc B tin ch¾c r»ng ng−êi tr¶ lêi ®óng lµ A vµ do ®ã x¸c nhËn danh tÝnh cña A. VÊn ®Ò khã ë ®©y lµ A ph¶i lµm cho B biÕt lµ A cã së h÷u mét bÝ mËt chØ riªng A míi cã, nh−ng l¹i kh«ng ®−îc lé cho B biÕt c¸i bÝ mËt riªng A míi cã ®ã lµ c¸i g×. MÆt kh¸c, ®Ó cho viÖc “A cã së h÷u mét bÝ mËt cña riªng A” ®ã lµ ®¸ng tin (dï lµ kh«ng biÕt) th× cÇn ®−îc chøng thùc bëi mét bªn thø ba nµo ®ã,ch¼ng h¹n bëi mét c¬ quan ®−îc uû th¸c (trusted authority). TÊt nhiªn c¬ quan ®−îc uû th¸c nµy còng kh«ng biÕt b¶n th©n bÝ mËt cña A, nh−ng biÕt vµ chøng nhËn A lµ chñ së h÷u cña mét yÕu tè c«ng khai mµ viÖc A sö dông nã chøng tá A cã c¸i bÝ mËt nãi trªn. Trong tiÕt ngay sau ®©y ta sÏ giíi thiÖu mét s¬ ®å x−ng danh ®iÓn h×nh ®Ó minh ho¹ c¸c ý t−ëng nãi trªn. 6.2. S¬ ®å x−ng danh Schnorr. Trong s¬ ®å x−ng danh nµy cã sù tham gia cña mét c¬ quan ®−îc uû th¸c mµ ta ký hiÖu lµ TA. TA sÏ chän c¸c tham sè cho s¬ ®å x−ng danh nh− sau: - mét sè nguyªn tè lín p sao cho bµi to¸n tÝnh l«garit rêi r¹c theo modp lµ rÊt khã; vµ mét −íc sè nguyªn tè q cña p -1 (ng−êi ta khuyªn nªn chän p ≥ 2512 vµ q ≥ 2140 ). - mét phÇn tö p Z α ∗ ∈ cã cÊp q (mét phÇn tö α nh− vËy cã thÓ lÊy lµ mét luü thõa bËc (p -1)/q cña mét phÇn tö nguyªn thuû theo modp. - mét tham sè an toµn t sao cho q ≥ 2t . Cã thÓ lÊy t =40. - TA chän cho m×nh mét s¬ ®å ch÷ ký gåm mét thuËt to¸n ký(bÝ mËt) sigTA vµ mét thuËt to¸n kiÓm thö (c«ng khai)verTA. - mét hµm b¨m an toµn (mét phÝa vµ kh«ng va ch¹m m¹nh). Ta gi¶ thiÕt lµ mäi th«ng tin ®Òu ®−îc “tãm l−îc” bëi hµm b¨m tr−íc khi ®−îc ký; tuy nhiªn trong m« t¶ sau ®©y ®Ó cho ®¬n gi¶n ta sÏ bá qua c¸c b−íc sö dông hµm b¨m. C¸c tham sè p, q, α, thuËt to¸n kiÓm thö verTA vµ hµm b¨m ®Òu cã thÓ ®−îc c«ng bè c«ng khai. 137
  • 143.
    B©y giê, métchñ thÓ A cÇn x−ng danh sÏ yªu cÇu TA cÊp cho m×nh mét chøng chØ. Thñ tôc cÊp chøng chØ cho A ®−îc tiÕn hµnh nh− sau: 1.TA x¸c lËp c¸c th«ng tin vÒ danh tÝnh cña A nh− hä,tªn, ngµy sinh, sè chøng minh hoÆc hé chiÕu, v.v... d−íi d¹ng mét d·y ký tù mµ ta ký hiÖu lµ IA hay ID(A). 2. A chän bÝ mËt mét sè ngÉu nhiªn a (0≤ a ≤ q-1), tÝnh mod a v α− = p vµ chuyÓn sè v cho TA. 3. TA t¹o ch÷ ký s =sigTA(IA, v) vµ cÊp cho A chøng chØ C(A) = (ID(A), v, s ). Nh− vËy, chøng chØ mµ TA cÊp cho A gåm (IA, v) vµ ch÷ ký cña TA trªn th«ng tin (IA, v) ®ã. Chó ý r»ng TA cÊp chøng chØ cho A mµ hoµn toµn kh«ng biÕt g× vÒ th«ng tin bÝ mËt cña A lµ sè a. B©y giê, víi chøng chØ C(A) ®ã, A cã thÓ x−ng danh víi bÊt kú ®èi t¸c B nµo b»ng c¸ch cïng B thùc hiÖn mét giao thøc x¸c nhËn danh tÝnh nh− sau: 1. A chän thªm mét sè ngÉu nhiªn k (0≤ k ≤ q-1), tÝnh k γ α = p mod , vµ göi cho B c¸c th«ng tin C(A) vµ γ. 2. B kiÓm thö ch÷ ký cña TA trong chøng chØ C(A) bëi hÖ thøc verTA(ID(A), v, s) =®óng. KiÓm thö xong, B chän mét sè ngÉu nhiªn r (1≤ r ≤ 2t ) vµ göi r cho A. 3. A tÝnh y =k +ar modq vµ göi y cho B. 4. B thö ®iÒu kiÖn y r v γ α ≡ (modp) vµ nÕu ®iÒu kiÖn ®ã ®−îc tho¶ m·n th× x¸c nhËn danh tÝnh cña A. Thùc hiÖn giao thøc ®ã, A sÏ chøng minh ®−îc danh tÝnh cña m×nh, v× y r k ar r k ar ar k v v α α α α + + − α ≡ ≡ ≡ (modp) ≡ γ (modp), tøc ®iÒu kiÖn mµ B cÇn thö lµ ®óng. S¬ ®å x−ng danh cïng víi giao thøc x¸c nhËn danh tÝnh nh− m« t¶ ë trªn cã c¸c tÝnh chÊt ®¸p øng c¸c yªu cÇu nh− ®Ò ra tõ phÇn ®Æt vÊn ®Ò ë tiÕt 6.1. §iÒu võa chøng minh ë trªn chøng tá r»ng nÕu A tu©n thñ giao thøc th× B x¸c nhËn danh tÝnh cña A lµ ®óng (B tin r»ng A qu¶ thùc cã së h÷u mét bÝ mËt a, dï B còng kh«ng biÕt c¸i bÝ mËt a ®ã lµ sè nµo). B©y giê ta xÐt kh¶ n¨ng mét ng−êi O muèn gi¶ danh A ®Ó giao dÞch víi B. Kh¶ n¨ng thø nhÊt lµ O t¹o ra mét chøng chØ gi¶ m¹o víi danh tÝnh cña A, mét chøng chØ nh− vËy cã d¹ng 138
  • 144.
    C’(A) = (ID(A),v , s’), trong ®ã v ≠ v. §Ó t¹o ra mét chøng chØ nh− vËy th× O ph¶i t¹o ra ®−îc s lµ ch÷ ký cña TA trªn (ID(A), v ), O kh«ng biÕt thuËt to¸n ký sigTA nªn kh«ng thÓ t¹o ra ch÷ ký ®óng cña TA ®−îc, vµ nÕu lÊy s’ lµ mét ch÷ ký gi¶ m¹o, th× khi thùc hiÖn ®iÓm 2 cña giao thøc x¸c nhËn danh tÝnh thÓ nµo B còng ph¸t hiÖn ra. Kh¶ n¨ng thø hai lµ O vÉn dïng chøng chØ thËt C(A) cña A, tù chän mét sè k vµ tÝnh sè γ t−¬ng øng theo ®iÓm 1 cña giao thøc x¸c nhËn danh tÝnh. VÊn ®Ò ë ®©y lµ khi B göi ®Õn sè r , O ph¶i tr¶ lêi l¹i b»ng mét sè y sao cho ®iÒu kiÖn (modp) ®−îc nghiÖm ®óng. §iÒu nµy xem ra lµ rÊt khã, Ýt nhÊt còng khã nh− lµ O biÕt bÝ mËt vÒ sè a cña A vËy. Thùc vËy, gi¶ sö O cã kh¶ n¨ng nãi trªn, khi ®ã ta cho hai lÇn hái r y r v γ α ≡ 1 vµ r2 O sÏ cã hai tr¶ lêi y1 vµ y2, vµ ta cã 1 1 2 2 mod ) y r y r v v γ α α ≡ ≡ p ( , tõ ®ã suy ra modp). 1 2 2 1 ( y y r r v α − − ≡ V× v = α -a , ta cã y1 – y2 ≡ a(r2 – r1) (modq). V× q lµ sè nguyªn tè 2t vµ 0 ⎟r2 - r1⎟ 2t , nªn gcd(r2 - r1, q) =1, vµ O cã thÓ tÝnh ®−îc 1 1 2 2 1 ( )( a y y r r )− = − − modq . ThÝ dô : LÊy p =88667, q = 1031 vµ t =10. PhÇn tö α = 70322 cã cÊp q trong p Z∗ . Gi¶ sö A chän sè mò bÝ mËt lµ a = 755, khi ®ã v = 13136. A vµ B cã thÓ thùc hiÖn giao thøc x¸c ®Þnh danh tÝnh nh− sau: A chän k = 543, vµ tÝnh γ =70322543 mod88667 =84109 råi göi γ cho B. Gi¶ sö B göi r =1000 cho A, A tr¶ lêi l¹i b»ng y =k +ar modq = =543+755.1000mod1031 = 851. B thö ®iÒu kiÖn (modp), trong tr−êng hîp nµy lµ: y r v γ α ≡ 84109 ≡ 70322851 131361000 (mod 88667), ®ã lµ ®ång d− thøc ®óng. B x¸c nhËn danh tÝnh cña A. B©y giê vÉn víi c¸c tham sè trªn, gi¶ thiÕt O cã kh¶ n¨ng tr¶ lêi ®óng hai c©u hái r1=1000 vµ r2=19 cña B b»ng y1=851 vµ y2=454. Khi ®ã O cã thÓ tÝnh ®−îc 1 1 2 2 1 ( )( a y y r r )− = − − modq = (851-454)(19-1000)-1 mod1031 = 755, ®óng lµ sè bÝ mËt cña A. S¬ ®å x−ng danh Schnorr, víi giao thøc x¸c nhËn danh tÝnh nh− ®Þnh nghÜa ë trªn, lµ cã tÝnh chÊt ®Çy ®ñ (viÖc cã bÝ mËt a b¶o ®¶m A chøng minh ®−îc danh tÝnh cña m×nh), vµ ®óng ®¾n ( viÖc gi¶ danh A thµnh c«ng còng khã nh− biÕt bÝ mËt cña A); tuy nhiªn nh− võa tr×nh bµy trong thÝ dô trªn, s¬ ®å ®ã ch−a ph¶i lµ an toµn, 139
  • 145.
    viÖc gi¶ danhlµ khã nÕu O kh«ng hÒ biÕt g× vÒ s¬ ®å x−ng danh ®ã, chø nÕu, ch¼ng h¹n, O ®· ®−îc A x−ng danh víi Ýt nhÊt hai lÇn (tøc hai lÇn biÕt ®−îc hai cÆp sè (r1, y1) vµ (r2, y2)) th× cã kh¶ n¨ng O ph¸t hiÖn ®−îc bÝ mËt cña A, nh− vËy viÖc x−ng danh cña A kh«ng cßn an toµn n÷a! §Ó kh¾c phôc ®iÓm yÕu ®ã cña s¬ ®å Schnorr, Okamoto ®· ®Ò xuÊt mét söa ®æi lµm cho s¬ ®å trë nªn an toµn, söa ®æi nµy dùa trªn tÝnh khã cña mét bµi to¸n ®Æc biÖt vÒ tÝnh l«garit rêi r¹c. Ta tr×nh bµy trong tiÕt sau ®©y s¬ ®å ®−îc söa ®æi ®ã. 6.3. S¬ ®å x−ng danh Okamoto. Còng nh− ®èi víi s¬ ®å Schnorr, s¬ ®å x−ng danh Okamoto cÇn cã mét c¬ quan uû th¸c TA ®Ó cÊp chøng chØ cho c¸c ng−êi tham gia. TA chä tr−íc c¸c sè nguyªn tè p vµ q nh− ®èi víi s¬ ®å Schnorr. Sau ®ã, TA chän hai sè 1 2 , , p Z α α ∗ ∈ cïng cã cÊp q . Gi¸ trÞ 1 2 log c α α = (tøc gi¸ trÞ c sao cho 1 c 2 α α = ) ®−îc gi÷ tuyÖt mËt ®èi víi mäi ng−êi tham gia, kÓ c¶ A; nãi c¸ch kh¸c, ta gi¶ thiÕt r»ng viÖc tÝnh ra c lµ cùc kú khã ®èi víi bÊt kú ai (ch¼ng h¹n, A,O, hoÆc thËm chÝ liªn minh cña A vµ O,...). Thñ tôc cÊp chøng chØ cho A ®−îc tiÕn hµnh nh− sau: 1. TA x¸c lËp c¸c th«ng tin vÒ danh tÝnh cña A d−íi d¹ng mét d·y ký tù mµ ta ký hiÖu lµ IA hay ID(A). 2. A chän bÝ mËt hai sè ngÉu nhiªn a1, a2 (0≤ a1, a2 ≤ q-1), tÝnh 1 2 1 2 mod a a v α α − − = p , vµ chuyÓn sè v cho TA. 3. TA t¹o ch÷ ký s =sigTA(IA, v) vµ cÊp cho A chøng chØ C(A) = (ID(A), v, s ). B©y giê, víi chøng chØ C(A) ®ã, A cã thÓ x−ng danh víi bÊt kú ®èi t¸c B nµo b»ng c¸ch cïng B thùc hiÖn mét giao thøc x¸c nhËn danh tÝnh nh− sau: 1. A chän thªm hai sè ngÉu nhiªn k1,k2 (0≤ k1,k2 ≤ q-1), tÝnh 1 2 1 2 k k γ α α = p mod , vµ göi cho B c¸c th«ng tin C(A) vµ γ. 2. B kiÓm thö ch÷ ký cña TA trong chøng chØ C(A) bëi hÖ thøc verTA(ID(A), v, s) =®óng. KiÓm thö xong, B chän mét sè ngÉu nhiªn r (1≤ r ≤ 2t ) vµ göi r cho A. 3. A tÝnh y1 =k1 +a1r modq , y2 =k2 +a2r modq , vµ göi y1,y2 cho B. 4. B thö ®iÒu kiÖn 140
  • 146.
    1 2 1 2 yy r v γ α α ≡ (modp) vµ nÕu ®iÒu kiÖn ®ã ®−îc tho¶ m·n th× x¸c nhËn danh tÝnh cña A. Thùc hiÖn giao thøc ®ã, A sÏ chøng minh ®−îc danh tÝnh cña m×nh, v× (modp) 1 2 1 1 2 2 1 2 1 2 1 2 1 2 y y k a r k a r a r a r r v α α α α α α + + − − ≡ 1 2 1 2 k k α α ≡ (modp) ≡ γ (modp) tøc ®iÒu kiÖn mµ B cÇn thö lµ ®óng. Nh− vËy, do biÕt cÆp sè bÝ mËt (a1, a2), nªn A cã thÓ thùc hiÖn th«ng suèt giao thøc x¸c nhËn ®Ó chøng minh danh tÝnh cña m×nh. Ng−îc l¹i, mét ng−êi kh¸c A, do kh«ng biÕt cÆp sè bÝ mËt (a1, a2), nªn khã cã kh¶ n¨ng tÝnh ®óng ®−îc (y1,y2) ®Ó tr¶ lêi B ë b−íc 3 cña giao thøc, tøc lµ kh«ng v−ît qua ®−îc sù kiÓm thö cña giao thøc ®Ó m¹o nhËn m×nh lµ A. B©y giê gi¶ sö cã mét ng−êi O cã thÓ thùc hiÖn th«ng suèt giao thøc x¸c nhËn ®Ó cã thÓ ®−îc m¹o nhËn lµ A, ch¼ng h¹n Ýt nhÊt hai lÇn. §iÒu ®ã cã nghÜa lµ O biÕt ®−îc hai sè r ≠ s vµ hai cÆp sè (y1,y2), (z1,z2) sao cho (modp). 1 2 1 2 1 2 1 2 y y z z r v γ α α α α ≡ ≡ s v §Æt 1 1 1 1 1 2 2 ( )( ) mod ( )( ) b y z r s y z r s − − = − − = − − 2 q, b q mod , ta sÏ ®−îc 1 1 2 b b v 2 α α − − ≡ (modp), do ®ã 1 2 1 1 2 1 2 b b a a2 α α α α − − − − ≡ (modp), tøc lµ 1 1 2 1 2 a b b a α α − 2 − ≡ (modp). Gi¶ thiÕt r»ng O vµ A liªn minh víi nhau, khi ®ã biÕt ®−îc c¶ c¸c sè a1, a2, b1, b2. NÕu gi¶ thiÕt (a1, a2) ≠ (b1, b2) th× a2 ≠ b2 , vµ (b2 - a2)-1 modq tån t¹i, vµ l«garit rêi r¹c c ®−îc tÝnh bëi 1 1 2 1 1 2 2 log ( )( ) c a b b α α a − = = − − modq. Nh− vËy, nÕu O cã thÓ thùc hiÖn th«ng suèt giao thøc x¸c nhËn ®Ó ®−îc m¹o nhËn lµ A th× khi O vµ A liªn minh víi nhau cã thÓ t×m ®−îc kh¸ dÔ dµng l«garit rêi r¹c c. Nh−ng tõ ®Çu ta ®· gi¶ thiÕt viÖc t×m ra c lµ cùc kú khã ®èi víi bÊt kú ai (lµ A, lµ O, thËm chÝ lµ liªn minh cña A vµ O,...), nªn còng sÏ cùc kú khã ®Ó O thùc hiÖn ®−îc th«ng suèt giao thøc x¸c nhËn víi môc ®Ých m¹o x−ng lµ A. VËy lµ ta ®· chøng minh ®−îc tÝnh an toµn cña s¬ ®å x−ng danh 141
  • 147.
    Okamoto víi giaothøc x¸c nhËn danh tÝnh nh− m« t¶ ë trªn. Trong chøng minh ®ã cßn mét sè chç tinh tÕ cÇn ®uîc bæ sung thªm, ch¼ng h¹n nh− v× sao cã thÓ gi¶ thiÕt (a1, a2) ≠ (b1, b2), thùc ra ng−êi ta ®· chøng minh ®−îc r»ng x¸c suÊt cña kh¶ n¨ng (a1, a2) = (b1, b2) lµ rÊt bÐ, kh«ng ®¸ng kÓ. Tuy nhiªn, ®Ó ®¬n gi¶n tr×nh bµy, xin phÐp ®−îc bá qua mét vµi chi tiÕt chøng minh tinh tÕ ®ã. 6.4. S¬ ®å x−ng danh Guillou-Quisquater. S¬ ®å Guillou-Quisquater còng ®−îc x©y dùng theo cïng mét c¸ch thøc nh− c¸c s¬ ®å Schnorr vµ Okamoto kÓ trªn, nh−ng bµi to¸n khã mµ ta dùa vµo ë ®©y kh«ng ph¶i lµ bµi to¸n tÝnh l«garit rêi r¹c mµ lµ bµi to¸n RSA. S¬ ®å còng cÇn cã sù tham gia cña mét c¬ quan uû th¸c TA ®Ó cÊp chøng chØ cho c¸c ng−êi tham gia. TA chän hai sè nguyªn tè lín p vµ q vµ tÝnh tÝch n =pq, gi÷ bÝ mËt p ,q vµ c«ng khai n. C¸c tham sè ®ã ®−îc chän sao cho bµi to¸n ph©n tÝch n thµnh thõa sè lµ rÊt khã. TA còng chän thªm mét sè b lµ sè nguyªn tè cã ®é lín kho¶ng 240 nh− lµ mét tham sè an toµn. Sè b còng ®−îc xem lµ sè mò tho¶ m·n ®iÒu kiÖn RSA, nghÜa lµ viÖc tÝnh v =ub modn lµ dÔ, nh−ng viÖc tÝnh ng−îc u tõ v lµ rÊt khã, nÕu kh«ng biÕt p,q. Thñ tôc cÊp chøng chØ cho mét ng−êi tham gia A ®−îc tiÕn hµnh nh− sau: 1.TA x¸c lËp c¸c th«ng tin vÒ danh tÝnh cña A d−íi d¹ng mét d·y ký tù mµ ta ký hiÖu lµ IA hay ID(A). 2. A chän bÝ mËt mét sè ngÉu nhiªn u (0≤ u ≤ n-1), tÝnh , 1 ( ) mod b v n − = u vµ chuyÓn sè v cho TA. 3. TA t¹o ch÷ ký s =sigTA(IA, v) vµ cÊp cho A chøng chØ C(A) = (ID(A), v, s ). Nh− vËy, chøng chØ mµ TA cÊp cho A gåm (IA, v) vµ ch÷ ký cña TA trªn th«ng tin (IA, v) ®ã. Chó ý r»ng TA cÊp chøng chØ cho A mµ cã thÓ kh«ng biÕt g× vÒ th«ng tin bÝ mËt cña A lµ sè u. B©y giê, víi chøng chØ C(A) ®ã, A cã thÓ x−ng danh víi bÊt kú ®èi t¸c B nµo b»ng c¸ch cïng B thùc hiÖn mét giao thøc x¸c nhËn danh tÝnh nh− sau: 1. A chän thªm mét sè ngÉu nhiªn k (0≤ k ≤ n-1), tÝnh b k γ = n mod , vµ göi cho B c¸c th«ng tin C(A) vµ γ. 2. B kiÓm thö ch÷ ký cña TA trong chøng chØ C(A) bëi hÖ thøc verTA(ID(A), v, s) =®óng. KiÓm thö xong, B chän mét sè ngÉu nhiªn r (1≤ r ≤ b -1 ) vµ göi r cho A. 142
  • 148.
    3. A tÝnhy =k.u r modn vµ göi y cho B. 4. B thö ®iÒu kiÖn r b v y γ ≡ (modn) vµ nÕu ®iÒu kiÖn ®ã ®−îc tho¶ m·n th× x¸c nhËn danh tÝnh cña A. Còng nh− c¸c tr−êng hîp tr−íc, viÖc chøng minh tÝnh ®Çy ®ñ cña s¬ ®å lµ rÊt ®¬n gi¶n: ( ) ( ) (mod ) (mod ) (mod ). r b b r r b br b br b v y k k k γ − − ≡ ≡ ≡ ≡ u u u u n n n Mét ng−êi kh¸c A, do kh«ng biÕt sè bÝ mËt u , nªn kh«ng thÓ tÝnh ®óng ®−îc sè y ë b−íc 3 cña giao thøc ®Ó ®−îc B x¸c nhËn (nh− lµ A) ë b−íc 4, tøc kh«ng thÓ m¹o nhËn m×nh lµ A; ®ã lµ tÝnh ®óng ®¾n cña s¬ ®å. Gi¶ sö cã mét ng−êi O cã thÓ thùc hiÖn th«ng suèt giao thøc x¸c nhËn ®Ó cã thÓ ®−îc m¹o nhËn lµ A, ch¼ng h¹n Ýt nhÊt hai lÇn. §iÒu ®ã cã nghÜa lµ O biÕt ®−îc hai sè r1 ≠ r2 vµ hai sè y1, y2 sao cho 1 2 1 2 (mod ) r r b b v y v y γ ≡ ≡ n . Gi¶ thiÕt r1 r2, khi ®ã ta cã 1 2 2 1 ( / ) (mod ) r r b v y y − ≡ . n Do 0 r1 -r2 b vµ b lµ sè nguyªn tè nªn gcd(r1 -r2, b) =1, cã thÓ tÝnh ®−îc dÔ dµng t =(r1 -r2)-1 modb , vµ cã (modn). 1 2 ( ) 2 1 ( / ) r r t bt v y y − ≡ Do t =(r1 -r2)-1 modb nªn ta cã (r1 -r2)t =lb +1 víi l lµ mét sè nguyªn d−¬ng nµo ®ã, v× vËy, (modn), 1 2 1 ( / ) lb bt v y y + ≡ hay lµ (modn). 1 2 1 ( / ) ( ) bt lb v y y v− ≡ N©ng c¶ hai vÒ lªn luü thõa bËc b-1 modφ (n), ta ®−îc 1 1 2 1 ( / ) ( ) (mod ). t l y y v − − ≡ u n cuèi cïng, tÝnh nghÞch ®¶o cña hai vÕ theo modn ta ®−îc u = modn . 1 2 ( / )t l y y v Nh− vËy, O tÝnh ®−îc sè bÝ mËt u trong thêi gian ®a thøc! Theo gi¶ thiÕt, ®iÒu ®ã kh«ng thÓ xÈy ra, v× vËy, gi¶ thiÕt vÒ viÖc O cã thÓ thùc hiÖn th«ng suèt giao thøc x¸c nhËn ®Ó ®−îc m¹o nhËn danh tÝnh lµ A lµ kh«ng ®óng; s¬ ®å x−ng danh ®−îc chøng minh lµ an toµn. 143
  • 149.
    ThÝ dô: Gi¶sö TA chän p =467, q =479, nh− vËy n =223693, TA còng chän thªm b =503. Gi¶ sö A chän sè bÝ mËt u =101576, vµ tÝnh v =(101576-1 )503 mod223693 = 89888. TA t¹o ch÷ ký s =sigTA(ID(A), v) vµ cÊp cho A chøng chØ C(A) = (ID(A),v,s). Gi¶ thiÕt A muèn x−ng danh víi B, A chän k =187485, vµ göi cho B gi¸ trÞ γ =187485503 mod223693 =24412. B dïng thuËt to¸n kiÓm thö verTA ®Ó thö ®iÒu kiÖn verTA(ID(A),v,s) = ®óng, sau ®ã göi ®Õn A c©u hái r = 375. A sÏ tr¶ lêi l¹i b»ng y =187485.101576375 mod223693 = 93725. B thö ®iÒu kiÖn (modn), trong tr−êng hîp nµy lµ r b v y γ ≡ 24412 ≡ 89888375 . 93725503 (mod 223693), ®ång d− thøc ®ã ®óng. VËy B x¸c nhËn danh tÝnh cña A. B©y giê ta l¹i gi¶ thiÕt lµ O biÕt ®−îc hai sè r1=401, r2=375 vµ c¸c sè t−¬ng øng y1=103386 vµ y2=93725. O biÕt r»ng v401 .103386b ≡ v 375 . 93725b (modn). O sÏ tÝnh t =(r1- r2)-1 modb = (401-375)-1 mod503 =445, sau ®ã tÝnh ®−îc 1 2 ( ) 1 (401 375)445 1 23 503 r r t l b − − − − = = = . Cuèi cïng, O sÏ t×m ®−îc gi¸ trÞ bÝ mËt u lµ modn 1 2 ( / )t l y y v = u = (103386/93725)445 .8988823 mod 223693 = 101576, lµ sè bÝ mËt cña A. Chó ý: S¬ ®å x−ng danh Guillou-Quisquater, còng nh− c¸c s¬ ®å Schnorr vµ Okamoto tr−íc ®ã, ®Òu cÇn cã chøng chØ cña TA cho mçi ng−êi tham gia. Ta cã thÓ thay ®æi chót Ýt ®Ó biÕn s¬ ®å x−ng danh ®ã thµnh mét s¬ ®å x−ng danh dùa vµo danh tÝnh mµ kh«ng cÇn cã chøng chØ nh− sau: S¬ ®å dïng mét hµm b¨m c«ng khai h , vµ thay cho viÖc cÊp chøng chØ C(A) cho ng−êi tham gia A, TA sÏ cÊp cho A danh tÝnh ID(A) cïng mét sè u ®−îc tÝnh bëi c«ng thøc u =(h(ID(A))-1 )a modn . (a lµ mét sè mò bÝ mËt cña TA). Sè u ®−îc A gi÷ riªng cho m×nh. Khi A cÇn x−ng danh víi B, A vµ B cïng thùc hiÖn mét giao thøc x¸c nhËn danh tÝnh sau ®©y: 1. A chän mét sè ngÉu nhiªn k, 0≤ k ≤ n -1, vµ tÝnh γ = k b modn , 144
  • 150.
    råi göi ID(A)vµ γ cho B. 2. B tÝnh v =h(ID(A)); chän mét sè ngÉu nhiªn r (0≤ r ≤1) vµ göi r cho A. 3. A tÝnh y =kur modn vµ göi y cho B. 4. B thö ®iÒu kiÖn γ ≡ v y r b (modn) ®Ó x¸c nhËn danh tÝnh cña A. Khi x−ng danh theo giao thøc nãi trªn víi B, A chØ cÇn biÕt gi¸ trÞ u lµ mét gi¸ trÞ ®−îc tÝnh bëi TA (vµ chØ TA tÝnh ®−îc gi¸ trÞ ®ã). O kh«ng thÓ gi¶ m¹o danh tÝnh cña A v× O kh«ng biÕt gi¸ trÞ u. 6.5. Giao thøc Feige-Fiat-Shamir. Giao thøc x−ng danh Feige-Fiat-Shamir mµ ta sÏ giíi thiÖu trong tiÕt nµy th−êng ®−îc xem lµ mét giao thøc ®iÓn h×nh, trong ®ã mét chñ thÓ tù x−ng danh b»ng c¸ch chøng minh lµ m×nh biÕt mét bÝ mËt víi viÖc dïng mét kiÓu chøng minh mµ ta sÏ gäi lµ chøng minh kh«ng lé tri thøc (zero-knowledge proof), tøc lµ trong chøng minh ®ã kh«ng tiÕt lé bÊt cø mét th«ng tin dï nhá nµo liªn quan ®Õn gi¸ trÞ bÝ mËt cña chñ thÓ x−ng danh. ë ®©y,thuËt ng÷ “tri thøc” chØ ®−îc dïng víi mét nghÜa rÊt h¹n chÕ ®Ó nãi vÒ viÖc biÕt mét bÝ mËt cña mét chñ thÓ, mµ c¸i biÕt nµy th−êng khi chØ lµ biÕt mét bit (0 hoÆc 1, ®óng hoÆc sai), kh«ng lé tri thøc lµ kh«ng tiÕt lé c¸i biÕt vÒ mét bit ®ã. Trong tiÕt sau ta sÏ ®Ò cËp ®Õn c¸c “chøng minh kh«ng lé tri thøc” víi mét nghÜa réng h¬n, khi ®ã “tri thøc” sÏ cã nghÜa lµ biÕt chøng minh cña mét bµi to¸n, vµ chøng minh kh«ng lé tri thøc sÏ cã nghÜa lµ thuyÕt phôc mét ®èi t¸c tin r»ng m×nh biÕt c¸ch chøng minh cña bµi to¸n ®ã, vµ ngoµi viÖc bÞ thuyÕt phôc ®ã ra th× ®èi t¸c kh«ng khai th¸c ®−îc bÊt cø th«ng tin g× kh¸c ®Ó cã thÓ lÆp l¹i chøng minh ®ã c¶. B©y giê ta trë l¹i víi viÖc tr×nh bµy giao thøc x−ng danh Feige-Fiat-Shamir. ë b−íc chuÈn bÞ, trung t©m ®−îc uû th¸c (TA) c«ng bè mét m«®uyn chung n =pq cho mäi ng−êi tham gia, sau khi ®· chän vµ gi÷ bÝ mËt hai sè nguyªn tè lín p vµ q , mçi sè nµy ®Òu ®ång d− víi 3 theo mod4. Bµi to¸n ph©n tÝch n thµnh thõa sè ®−îc gi¶ thiÕt lµ cùc khã. Mét sè nguyªn n nh− trªn lµ sè nguyªn Blum, víi -1 lµ mét gi¶ thÆng d− bËc hai theo modn (tøc lµ mét bÊt thÆng d− bËc hai cã ký hiÖu Jacobi b»ng +1). Mçi ng−êi tham gia thùc hiÖn c¸c viÖc chuÈn bÞ nh− sau: - Chän k sè nguyªn ngÉu nhiªn s1, s2,...,sk trong tËp {1,...,n -1}, vµ k bit ngÉu nhiªn b1, b2,..., bk . - TÝnh 2 1 ( 1) ( ) mod i b i i v s − = − n víi mäi 1 ≤ i ≤ k . 145
  • 151.
    - Mçi chñthÓ A ®¨ng ký víi TA kho¸ c«ng khai (v1,..., vk ; n) cña m×nh, vµ gi÷ cho riªng m×nh kho¸ bÝ mËt (s1 ,...,sk ). Ho¹t ®éng cña giao thøc x−ng danh sÏ gåm viÖc thùc hiÖn t vßng hái-®¸p sau ®©y; B sÏ chÊp nhËn danh tÝnh cña A nÕu tÊt c¶ t vßng ®ã ®Òu thµnh c«ng. Gi¶ thiÕt B cã kho¸ c«ng khai cña A. Mçi vßng gåm c¸c b−íc : (a) A chän sè nguyªn ngÉu nhiªn r (1≤ r ≤ n –1), vµ mét bit ngÉu nhiªn b , tÝnh x = (-1)b .r2 mod n ; vµ göi x cho B nh− mét b»ng chøng. (b) B göi cho A mét vect¬ gåm k bit ngÉu nhiªn (e1,..., ek ) nh− mét c©u hái hay lêi th¸ch ®è. (c) A tÝnh vµ göi cho B y = 1 . j k e j j r s = ∏ modn , nh− c©u tr¶ lêi. (d) B tÝnh 2 1 . j k e j j z y v = = ∏ modn , vµ thö ®iÒu kiÖn z =±x vµ z≠ 0 . Chó ý r»ng trong giao thøc trªn ®©y,c¸c sè k vµ t lµ c¸c tham sè an toµn nh− sÏ ®−îc gi¶i thÝch trong mét ®o¹n sau. ThÝ dô : Gi¶ sö trung t©m TA chän p =683 vµ q =811, vµ c«ng bè n = pq = 553913. Chän c¸c tham sè k =3, t =1. Gi¶ sö A chän s1 =157, s2 =43215, s3 =4646, vµ 3 bit b1=1, b2=0, b3=1. TÝnh ra v1=441845, v2=338402, v3=124423. Kho¸ c«ng khai cña A lµ (441845, 338402, 124423; 553913), kho¸ bÝ mËt lµ (157, 43215, 4646). Giao thøc x−ng danh cña A cã thÓ ®−îc thùc hiÖn nh− sau: a) A chän r =1279, b =1, tÝnh ®−îc x =25898, vµ göi cho B, b) B ra lêi th¸ch ®è (e1, e2, e3)=(0,0,1). c) A tr¶ lêi l¹i b»ng y=rs3 modn = 403104. d) B tÝnh z = y2 v3modn = 25898 vµ thö ®óng z =+x vµ z≠ 0 . Do ®ã B chÊp nhËn danh tÝnh cña A. §èi víi giao thøc Feige-Fiat-Shamir, ng−êi ta chøng minh ®−îc r»ng kh¶ n¨ng thµnh c«ng cña viÖc m¹o x−ng danh tÝnh cã x¸c suÊt nhiÒu l¾m lµ 2-kt , do ®ã nÕu chän k vµ t sao cho kt =20 ch¼ng h¹n th× x¸c suÊt ®ã lµ kho¶ng 1 phÇn triÖu, vµ nÕu kt =40 th× x¸c suÊt ®ã lµ kho¶ng 1 phÇn triÖu triÖu, cã thÓ coi lµ kh«ng thÓ xÈy ra. TÝnh an toµn cña giao thøc dùa trªn ®é khã cña bµi to¸n khai c¨n bËc hai theo m«®uyn lµ mét hîp sè lín khã ph©n tÝch thµnh thõa sè. Giao thøc còng cã tÝnh chÊt lµ mét chøng minh kh«ng lé tri thøc theo nghÜa lµ nhê biÕt kho¸ bÝ mËt mµ A thùc hiÖn viÖc tr¶ lêi trong c¸c vßng hái-®¸p mét c¸ch tr«i ch¶y, nh−ng toµn bé c¸c tr¶ lêi cña A kh«ng ®Ó lé bÊt kú mét chót bÝ mËt nµo ®Ó ng−êi kh¸c (kÓ c¶ B) cã thÓ khai th¸c nh»m ph¸t hiÖn (kho¸) bÝ mËt cña A. 6.6. PhÐp chøng minh kh«ng lé tri thøc. 146
  • 152.
    (zero-knowledge proof) Nh− ®·giíi thiÖu trong phÇn më ®Çu 6.1, bµi to¸n x−ng danh vµ x¸c nhËn danh tÝnh ®ãng mét vai trß cã ý nghÜa to lín trong mäi ho¹t ®éng giao dÞch cña x· héi. §Ó viÖc x−ng danh ®−îc an toµn, mét yªu cÇu quan träng lµ cÇn chèng ®−îc viÖc m¹o x−ng danh tÝnh cña ng−êi kh¸c trong giao dÞch. Khi viÖc giao dÞch ®−îc ®iÖn tö ho¸ mét c¸ch réng r·i, yªu cÇu an toµn ®Æt ra nhiÒu vÊn ®Ò cÇn ®−îc gi¶i quyÕt b»ng nh÷ng gi¶i ph¸p khoa häc. Nh÷ng gi¶i ph¸p ®¬n gi¶n vµ th« s¬ nh− tr×nh tªn tuæi, mËt hiÖu (password),... kh«ng cßn an toµn, v× khã gi÷ ®−îc bÝ mËt lµm cho ng−êi kh¸c cã thÓ dÔ dµng b¾t ch−íc ®Ó m¹o x−ng. Trong c¸c phÇn trªn cña ch−¬ng nµy, ta ®· tr×nh bµy mét sè s¬ ®å x−ng danh dùa vµo c¸c giao thøc hái-®¸p, ng−êi kiÓm thö ®−a ra c¸c c©u hái, vµ ng−êi x−ng danh tr¶ lêi, dùa trªn c¸c tr¶ lêi ®ã ng−êi kiÓm thö hoÆc ®−a thªm nh÷ng c©u hái míi, hoÆc chÊp nhËn (hay b¸c bá) danh tÝnh cña ng−êi x−ng danh. PhÇn lín c¸c giao thøc hái-®¸p trong c¸c s¬ ®å x−ng danh ®ã ®Òu cã Ýt nhiÒu tÝnh chÊt cña mét chøng minh kh«ng lé tri thøc, dï tri thøc mµ ta ®Ò cËp ®Õn chØ lµ viÖc biÕt hay kh«ng biÕt mét bÝ mËt (cña kho¸ x−ng danh). Kh¸i niÖm chøng minh kh«ng lé tri thøc ban ®Çu xuÊt ph¸t tõ viÖc nghiªn cøu c¸c s¬ ®å x−ng danh, vÒ sau ®· ®−îc më réng cho nhiÒu lo¹i bµi to¸n kh¸c. C¸c bµi to¸n mµ ta sÏ t×m kiÕm cho chóng nh÷ng “chøng minh kh«ng lé tri thøc” th−êng lµ nh÷ng bµi to¸n quyÕt ®Þnh, ®ã lµ nh÷ng bµi to¸n ®−îc x¸c ®Þnh bëi mét tËp d÷ liÖu Σ vµ mét tÝnh chÊt Π, vµ néi dung cña bµi to¸n lµ xÐt xem víi mçi x ∈ Σ, x cã tÝnh chÊt Π hay kh«ng. Mét sè líp c¸c bµi to¸n quyÕt ®Þnh nh− vËy ®· ®−îc xÐt ®Õn khi ta nghiªn cøu vÒ ®é phøc t¹p tÝnh to¸n trong ch−¬ng II. Tham gia vµo mét giao thøc chøng minh gåm cã hai ng−êi: mét lµ ng−êi chøng minh (ký hiÖu lµ P-prover) vµ mét lµ ng−êi kiÓm thö (ký hiÖu V- verifier). Giao thøc gåm c¸c c©u hái- ®¸p gi÷a V vµ P, th−êng lµ V ®−a ra c¸c c©u hái hay th¸ch ®è, vµ V ®−a ra c¸c c©u tr¶ lêi. Gi¶ thö P biÕt ch¾c ch¾n r»ng x cã tÝnh chÊt Π, P cã thÓ dïng mét giao thøc chøng minh ®Ó thuyÕt phôc V tin r»ng x cã tÝnh chÊt Π, vµ mét giao thøc chøng minh ®−îc gäi lµ kh«ng lé tri thøc, nÕu ngoµi viÖc thuyÕt phôc ®−îc V tin lµ x cã tÝnh chÊt Π ra, P kh«ng ®Ó lé bÊt cø mét th«ng tin nµo cã thÓ gióp ng−êi kh¸c (kÓ c¶ V) dïng ®Ó chøng minh x cã tÝnh chÊt Π. Tr−íc khi ®−a ra ®−îc c¸c ®Þnh nghÜa to¸n häc vÒ c¸c kh¸i niÖm ®ã, ta h·y xÐt mét thÝ dô vÒ mét bµi to¸n quen thuéc lµ bµi to¸n ®¼ng cÊu graph, víi tËp d÷ liÖu Σ lµ tËp c¸c cÆp graph (G1, G 2), vµ néi dung bµi to¸n lµ c©u hái: hai graph G1 vµ G 2 cã ®¼ng cÊu víi nhau kh«ng. Trong lý 147
  • 153.
    thuyÕt vÒ ®éphøc t¹p tÝnh to¸n, bµi to¸n nµy cã mét vai trß ®Æc biÖt, v× lµ mét bµi to¸n ch−a biÕt cã thuËt to¸n nµo víi thêi gian ®a thøc gi¶i nã hay kh«ng, nh−ng còng ch−a cã chøng minh nµo chøng tá nã lµ NP-®Çy ®ñ . D−íi ®©y lµ s¬ ®å t−¬ng t¸c chøng minh kh«ng lé tri thøc cña bµi to¸n ®¼ng cÊu graph: Gi¶ sö cho hai graph G1 vµ G2 cã tËp ®Ønh {1, 2,...,n}. Gi¶ sö P biÕt G1 vµ G 2 ®¼ng cÊu víi nhau (ch¼ng h¹n do biÕt mét ho¸n vÞ σ trªn tËp {1, 2,...,n} sao cho G1 lµ ¶nh cña G2 qua ho¸n vÞ ®ã). S¬ ®å t−¬ng t¸c chøng minh “G1 vµ G 2 ®¼ng cÊu” gåm m vßng hái- ®¸p, mçi vßng cã 4 b−íc sau ®©y: 1. P chän mét ho¸n vÞ ngÉu nhiªn π cña {1, 2,...,n}, lËp graph H lµ ¶nh cña G1 qua ho¸n vÞ π, vµ göi H cho V. 2. V chän sè ngÉu nhiªn i ∈ {1, 2} vµ göi nã cho P. 3. P tÝnh mét ho¸n vÞ ρ trªn {1, 2,...,n} sao cho H lµ ¶nh cña G i qua ρ (cô thÓ, nÕu i =1 th× lÊy ρ =π , nÕu i =2 th× lÊyρ =π .σ ), råi göi ρ cho V. 4. V thö xem H cã lµ ¶nh cña Gi qua ρ hay kh«ng. V sÏ chÊp nhËn chøng minh cña P nÕu V thö ®óng ®iÒu kiÖn 4 ë tÊt c¶ m vßng hái-®¸p ®ã. ThÝ dô: Ta minh ho¹ ho¹t ®éng cña giao thøc t−¬ng t¸c ®Ó chøng minh sù ®¼ng cÊu cña hai graph b»ng thÝ dô d−íi ®©y: Gi¶ sö G1 = (V, E1) vµ G 2 = (V,E 2) lµ hai graph víi tËp ®Ønh V ={1, 2, 3, 4} vµ c¸c tËp c¹nh E1 ={12,13,14,34}, E2={12,13,23,24}. Gi¶ sö P biÕt G2 ®¼ng cÊu víi G1 qua ho¸n vÞ σ = {4 1 3 2}. 2 4 1 2 2 4 π σ 3 1 4 3 1 3 H G1 G2 Mét vßng cña giao thøc cã thÓ xÈy ra nh− sau: 1. P chän ngÉu nhiªn ho¸n vÞ π = {2 4 1 3}. Graph H sÏ cã tËp c¹nh {12,13,23,24}, lµ ¶nh cña G1 qua π . P göi H cho V. 2. V chän i =2 vµ göi cho P nh− mét c©u hái. 3. P thö thÊy ho¸n vÞ ρ =π .σ ={3 2 1 4} ¸nh x¹ G 2 thµnh H vµ do ®ã göi ρ cho V. 4. V thö ®óng H lµ ¶nh cña G 2 qua ho¸n vÞ ρ. Ta kÕt luËn vßng hái-®¸p nµy ®· thµnh c«ng. Toµn bé giao thøc gåm cã m = log2n vßng. 148
  • 154.
    Nh− vËy, nÕuG 1 ®¼ng cÊu víi G 2 (hay chÝnh x¸c h¬n, nÕu A biÕt G 1 ®¼ng cÊu víi G 2 ) vµ mäi qui ®Þnh ®−îc t«n träng, th× giao thøc thµnh c«ng, vµ x¸c suÊt cña viÖc V chÊp nhËn chøng minh ®ã lµ 1. §ã lµ tÝnh ®Çy ®ñ cña giao thøc. MÆt kh¸c, nÕu G1 vµ G 2 kh«ng ®¼ng cÊu víi nhau, th× c¸ch duy nhÊt ®Ó P lõa V chÊp nhËn theo giao thøc lµ ë mçi vßng hái- ®¸p, P ®o¸n tr−íc ®óng ®−îc c©u hái (sè i) mµ V sÏ ®−a ra ë b−íc 2, vµ do ®ã ë b−íc 1, P chän ngÉu nhiªn mét ho¸n vÞ π vµ göi cho V graph H lµ ¶nh cña Gi qua π , råi ë b−íc 3 ®Ó tr¶ lêi c©u hái (lµ sè i ) cña V, P sÏ ®¸p l¹i b»ng phÐp ho¸n vÞ ρ =π . Râ rµng lµ V chÊp nhËn c©u tr¶ lêi ®ã lµ ®óng, vµ vßng hái-®¸p ®ã thµnh c«ng. Nh− vËy, P ®· lõa ®−îc V mét vßng, vµ x¸c suÊt thµnh c«ng ®ã b»ng x¸c suÊt P ®o¸n tr−íc ®óng c©u hái mµ V sÏ ®−a ra, tøc lµ kh«ng lín h¬n 1/2. VËy nÕu G1 vµ G 2 kh«ng ®¼ng cÊu víi nhau th× kh¶ n¨ng V bÞ lõa mµ tin r»ng G1 vµ G 2 ®¼ng cÊu lµ cã x¸c suÊt kh«ng qóa 2-m = 2-logn = 1/n , mét gi¸ trÞ kh«ng ®¸ng kÓ cã thÓ bá qua v× n rÊt lín. §iÒu ®ã còng nãi r»ng nÕu P kh«ng biÕt G1 vµ G 2 ®¼ng cÊu víi nhau th× P còng kh«ng thÓ lîi dông giao thøc ®ã mµ lõa V r»ng P biÕt G1 vµ G2 ®¼ng cÊu. §ã lµ tÝnh ®óng ®¾n cña giao thøc. B©y giê ta nãi ®Õn tÝnh kh«ng lé tri thøc cña giao thøc nãi trªn. Ta thÊy r»ng thùc hiÖn mçi vßng hái-®¸p cña giao thøc, tÊt c¶ nh÷ng g× mµ P ®−a ®Õn cho V lµ mét b¶n sao H ®¼ng cÊu víiG1 vµ G 2, vµ mét ho¸n vÞ ρ thùc hiÖn sù ®¼ng cÊu tõ G1 tíi H hoÆc tõ G 2 tíi H (nh−ng kh«ng ph¶i c¶ hai !). Tõ c¸c th«ng tin ®ã kh«ng ®ñ ®Ó V thiÕt lËp ®−îc ngay mét phÐp ®¼ng cÊu cña G1 vµ G 2 (ta chó ý ho¸n vÞ ρ mµ P chuyÓn cho V lµ ρ =π hoÆc ρ =π .σ , tõ ®ã kh«ng dÔ g× t×m ®−îc σ ). Mét c¸ch trùc gi¸c, ®iÒu ®ã chøng tá lµ giao thøc kh«ng lé tri thøc. §Ó cã mét ®Þnh nghÜa to¸n häc cho kh¸i niÖm kh«ng lé tri thøc, ta xÐt kü h¬n lËp luËn trªn ®©y. Ta h·y xem qua mét chøng minh t−¬ng t¸c nh− trªn P vµ V®Ó l¹i nh÷ng th«ng tin g×. Ngoµi th«ng tin vÒ hai graph G1 vµ G 2, ë mçi vßng hái-®¸p, P vµ V ®· trao ®æi c¸c th«ng tin vÒ mét graph H, mét c©u hái i , vµ mét tr¶ lêi ρ. Nh− vËy, ta cã thÓ ®Þnh nghÜa mét b¶n ghi T cña mét chøng minh t−¬ng t¸c lµ T = ((G1 ,G2); (H1,i1,ρ1) ;....; (Hm,im ,ρm)). Th«ng tin vÒ mét chøng minh t−¬ng t¸c ®−îc chøa ®ùng ®Çy ®ñ trong mét b¶n ghi T . B©y giê ta chó ý r»ng mét b¶n ghi còng cã thÓ ®−îc t¹o ra mét c¸ch gi¶ m¹o. Thùc vËy, ta cã thÓ chän ngÉu nhiªn mét sè i ∈ {1, 2}, mét ho¸n vÞ ρ, sau ®ã tÝnh H lµ ¶nh ®¼ng cÊu cña 149
  • 155.
    Gi qua ρ.Thùc hiÖn m lÇn nh− vËy, ta ®−îc m bé ba (H,i,ρ), vµ cïng víi (G1 ,G 2) ta sÏ t¹o ®−îc mét b¶n ghi gi¶ m¹o, v× ®ã kh«ng ph¶i lµ mét b¶n ghi trung thùc theo viÖc thùc hiÖn thùc mét chøng minh ®óng theo giao thøc t−¬ng t¸c, nh−ng kh«ng cã c¸ch nµo ®Ó ph©n biÖt mét giao thøc hîp thøc víi mét giao thøc gåm c¸c b¶n ghi gi¶ m¹o. ThuËt to¸n t¹o ra cac b¶n ghi gi¶ m¹o ®−îc gäi lµ mét m« pháng. B©y giê ta ®· cã thÓ ®−a ra mét ®Þnh nghÜa cho kh¸i niÖm kh«ng lé tri thøc nh− sau: Gi¶ sö cã mét hÖ chøng minh t−¬ng t¸c ®èi víi bµi to¸n quyÕt ®Þnh Π, vµ mét m« pháng S 1 , vµ x lµ mét d÷ liÖu cña bµi to¸n cã tr¶ lêi “®óng” ®èi víi c©u hái Π. Ký hiÖu T(x) lµ tËp tÊt c¶ c¸c b¶n ghi hîp thøc cã thÓ cã, vµ F(x) lµ tËp hîp tÊt c¶ c¸c b¶n ghi gi¶ m¹o cã thÓ sinh ra bëi S. Gi¶ thiÕt r»ng T(x) =F(x). Víi mçi T ∈T(x) ký hiÖu pT(T ) lµ x¸c suÊt cña viÖc T lµ b¶n ghi sinh ra tõ mét chøng minh t−¬ng t¸c, vµ pF (T ) lµ x¸c suÊt cña viÖc T lµ mét b¶n ghi gi¶ m¹o sinh ra bëi m« pháng S . NÕu pT(T ) = pF (T ) víi mäi T ∈T(x) , tøc lµ c¸c ph©n bè x¸c suÊt trªn T(x) vµ F(x) lµ trïng nhau, th× ta nãi r»ng hÖ chøng minh t−¬ng t¸c cña ta lµ kh«ng lé tri thøc hoµn h¶o (perfect zero-knowledge) ®èi víi V. §èi víi bµi to¸n ®¼ng cÊu hai graph vµ víi s¬ ®å chøng minh t−¬ng t¸c kÓ trªn, ng−êi ta chøng minh ®−îc r»ng hai ph©n bè x¸c suÊt trªn T(x) vµ F(x) trïng nhau, do ®ã, víi ®Þnh nghÜa cña kh¸i niÖm kh«ng lé tri thøc hoµn h¶o, ta cã thÓ kÕt luËn : §èi víi bµi to¸n ®¼ng cÊu hai graph, cã mét s¬ ®å t−¬ng t¸c chøng minh kh«ng lé tri th−c hoµn h¶o. B©y giê ta giíi thiÖu thªm d−íi ®©y mét s¬ ®å t−¬ng t¸c chøng minh kh«ng lé tri thøc ®èi víi bµi to¸n thÆng d− bËc hai, lµ mét bµi to¸n NP-®Çy ®ñ. Cho mét sè nguyªn n lµ tÝch cña hai sè nguyªn tè lín p vµ q ®−îc gi÷ bÝ mËt. Gi¶ thiÕt P biÕt x lµ mét thÆng d− bËc hai theo modn, vµ u lµ mét c¨n bËc hai cña nã (tøc u 2 ≡ x (modn)).S¬ ®å chøng minh t−¬ng t¸c gåm m vßng, mçi vßng gåm 4 b−íc sau ®©y: 1. P chän ngÉu nhiªn mét sè v n Z∗ ∈ , tÝnh y =v 2 modn , vµ göi y cho V. 2. V chän ngÉu nhiªn mét sè i∈{0, 1} vµ göi cho P. 1 Th«ng th−êng ng−êi ta gi¶ thiÕt lµ ng−êi kiÓm thö V, còng nh− bé m« pháng V, ®Òu lµ c¸c thuËt to¸n cã kh¶ n¨ng tÝnh to¸n trong thêi gian ®a thøc. 150
  • 156.
    3. P tÝnhz = ui v modn, vµ göi z cho V. 4. V thö ®iÒu kiÖn (modn) . 2 i z x ≡ y NÕu qua m vßng, V ®Òu thö ®óng ®iÒu kiÖn trªn th× V chÊp nhËn chøng minh cña P r»ng x lµ thÆng d− bËc hai theo modn. Giao thøc chøng minh t−¬ng t¸c nµy còng cã c¸c tÝnh chÊt ®Çy ®ñ, ®óng ®¾n, vµ lµ kh«ng lé tri thøc, nh−ng ch−a ph¶i lµ kh«ng lé tri thøc hoµn h¶o. ViÖc nghiªn cøu c¸c s¬ ®å t−¬ng t¸c chøng minh kh«ng lé tri thøc lµ mét chñ ®Ò ®−îc nhiÒu ng−êi quan t©m trong vµi thËp niªn võa qua, vµ ®· thu ®−îc nhiÒu kÕt qu¶ lý thó, trong ®ã lý thó nhÊt cã lÏ lµ c¸c kÕt qu¶ liªn quan ®Õn c¸c bµi to¸n NP-®Çy ®ñ. Ng−êi ta ®· chøng tá r»ng kh«ng cã c¸c chøng minh kh«ng lé tri thøc hoµn h¶o ®èi víi c¸c bµi to¸n NP-®Çy ®ñ; tuy nhiªn, nÕu kh«ng ®ßi hái chÆt chÏ ®iÒu kiÖn “kh«ng lé tri thøc hoµn h¶o”, mµ chØ ®ßi hái mét ®iÒu kiÖn nhÑ h¬n chót Ýt vÒ “kh«ng lé tri thøc tÝnh to¸n” (computational zero-knowledge), th× ng−êi ta chøng minh ®−îc r»ng ®èi víi nhiÒu bµi to¸n NP-®Çy ®ñ nh− bµi to¸n thÆng d− bËc hai theo modn ë trªn hay bµi to¸n t« ba mÇu mét graph lµ cã thÓ x©y dùng t−¬ng øng c¸c s¬ ®å t−¬ng t¸c chøng minh kh«ng lé tri thøc tÝnh to¸n. Råi tõ ®ã, do mäi bµi to¸n trong líp NP ®Òu cã thÓ qui dÉn trong thêi gian ®a thøc vÒ mét bµi to¸n NP-®Çy ®ñ, ch¼ng h¹n bµi to¸n t« ba mµu mét graph, nªn cã thÓ chøng minh ®−îc lµ ®èi víi mäi bµi to¸n trong líp NP®Òu cã mét s¬ ®å t−¬ng t¸c chøng minh kh«ng lé tri thøc (tÝnh to¸n). Kh¸i niÖm kh«ng lé tri thøc tÝnh to¸n chØ kh¸c kh¸i niÖm kh«ng lé tri thøc hoµn h¶o ë mét ®iÓm lµ nÕu trong ®Þnh nghÜa cña “kh«ng lé tri thøc hoµn h¶o” ta ®ßi hái hai ph©n bè x¸c suÊt trªn T(x) vµ F(x) trïng nhau, th× ®èi víi kh¸i niÖm “kh«ng lé tri thøc tÝnh to¸n”, ta chØ ®ßi hái hai ph©n bè x¸c suÊt ®ã lµ “kh«ng ph©n biÖt ®ù¬c” theo mét nghÜa t−¬ng tù nh− “kh«ng ε-ph©n biÖt ®−îc” mµ ta ®· xÐt ®Õn trong môc 4.6.1, ch−¬ng IV. 151
  • 157.
    CH¦¥NG VII VÊn ®Òph©n phèi kho¸ vµ tho¶ thuËn kho¸ 7.1. Qu¶n trÞ kho¸ trong c¸c m¹ng truyÒn tin. Trong c¸c ch−¬ng tr−íc, ta ®· lµm quen víi c¸c ph−¬ng ph¸p lËp mËt m· vµ c¸c bµi to¸n quan träng kh¸c liªn quan ®Õn viÖc truyÒn tin b¶o mËt trªn c¸c m¹ng truyÒn tin c«ng céng nãi chung. Ta còng ®· thÊy r»ng c¸c hÖ mËt m· kho¸ c«ng khai cã nhiÒu −u viÖt h¬n c¸c hÖ mËt m· kho¸ ®èi xøng trong viÖc lµm nÒn t¶ng cho c¸c gi¶i ph¸p an toµn th«ng tin, vµ ®Æc biÖt nÕu ®èi víi c¸c hÖ mËt m· kho¸ ®èi xøng viÖc thùc hiÖn ®ßi hái nh÷ng kªnh bÝ mËt ®Ó chuyÓn kho¸ hoÆc trao ®æi kho¸ gi÷a c¸c ®èi t¸c, th× vÒ nguyªn t¾c, ®èi víi c¸c hÖ mËt m· kho¸ c«ng khai, kh«ng cÇn cã nh÷ng kªnh bÝ mËt nh− vËy, v× c¸c kho¸ c«ng khai cã thÓ ®−îc truyÒn hoÆc trao ®æi cho nhau mét c¸ch c«ng khai qua c¸c kªnh truyÒn tin c«ng céng. Tuy nhiªn, trªn thùc tÕ, ®Ó b¶o ®¶m cho c¸c ho¹t ®éng th«ng tin ®−îc thËt sù an toµn, kh«ng ph¶i bÊt cø th«ng tin nµo vÒ c¸c kho¸ c«ng khai cña mét hÖ mËt m·, cña mét thuËt to¸n kiÓm thö ch÷ ký, cña mét giao thøc x¸c nhËn th«ng b¸o hay x¸c nhËn danh tÝnh, v.v... còng ph¸t c«ng khai mét c¸ch trµn lan trªn m¹ng c«ng céng, mµ dÉu lµ c«ng khai nh−ng ng−êi ta còng mong muèn lµ nh÷ng ai cÇn biÕt th× míi nªn biÕt mµ th«i. Do ®ã, dÉu lµ dïng c¸c hÖ cã kho¸ c«ng khai, ng−êi ta còng muèn cã nh÷ng giao thøc thùc hiÖn viÖc trao ®æi kho¸ gi÷a nh÷ng ®èi t¸c thùc sù cã nhu cÇu giao l−u th«ng tin víi nhau, kÓ c¶ trao ®æi kho¸ c«ng khai. ViÖc trao ®æi kho¸ gi÷a c¸c chñ thÓ trong mét céng ®ång nµo ®ã cã thÓ ®−îc thiÕt lËp mét c¸ch tù do gi÷a bÊt cø hai ng−êi nµo khi cã nhu cÇu trao ®æi th«ng tin, hoÆc cã thÓ ®−îc thiÕt lËp mét c¸ch t−¬ng ®èi l©u dµi trong mét thêi h¹n nµo ®ã trong c¶ céng ®ång víi sù ®iÒu phèi cña mét c¬ quan ®−îc uû th¸c (mµ ta ký hiÖu lµ TA-trusted authority). ViÖc trao ®æi kho¸ trong tr−êng hîp thø nhÊt ta gäi ®¬n gi¶n lµ tho¶ thuËn kho¸, cßn trong tr−êng hîp thø hai ta gäi lµ ph©n phèi kho¸ , TA lµ n¬i thùc hiÖn viÖc ph©n phèi, còng tøc lµ n¬i qu¶n trÞ kho¸. ViÖc tho¶ thuËn kho¸ nãi chung kh«ng cÇn cã sù tham gia cña mét TA nµo vµ chØ cã thÓ xÈy ra khi 152
  • 158.
    c¸c hÖ b¶omËt mµ ta sö dông lµ hÖ cã kho¸ c«ng khai, cßn viÖc ph©n phèi kho¸ th× cã thÓ xÈy ra ®èi víi c¸c tr−êng hîp sö dông c¸c hÖ kho¸ ®èi xøng còng nh− c¸c hÖ cã kho¸ c«ng khai. ViÖc ph©n phèi kho¸ víi vai trß qu¶n trÞ kho¸ cña mét TA lµ mét viÖc b×nh th−êng, ®· tån t¹i tõ rÊt l©u tr−íc khi cã c¸c hÖ mËt m· kho¸ c«ng khai. Ta sÏ b¾t ®Çu víi viÖc giíi thiÖu mét vµi hÖ ph©n phèi kho¸ nh− vËy, råi tiÕp sau sÏ giíi thiÖu mét sè hÖ ph©n phèi hoÆc trao ®æi kho¸ khi dïng c¸c s¬ ®å an toµn vµ b¶o mËt cã kho¸ c«ng khai. 7. 2. Mét sè hÖ ph©n phèi kho¸. 7. 2.1. S¬ ®å ph©n phèi kho¸ Blom. Gi¶ sö ta cã mét m¹ng gåm cã n ng−êi dïng, vµ mçi ng−êi dïng ®ã ®Òu cã nhu cÇu trao ®æi th«ng tin bÝ mËt víi mäi ng−êi trong m¹ng. Gi¶ sö s¬ ®å mËt m· ®−îc sö dông lµ mét s¬ ®å mËt m· kho¸ ®èi xøng (ch¼ng h¹n, DES). Toµn bé m¹ng cÇn cã ( 1 2 n n − ) kho¸ kh¸c nhau cho chõng Êy cÆp ng−êi dïng kh¸c nhau trong m¹ng. Mét c¬ quan ®−îc uû th¸c TA qu¶n lý chõng Êy kho¸ vµ ph¶i chuyÓn cho mçi ng−êi dïng n -1 kho¸ chung víi n -1 ng−êi cßn l¹i trong m¹ng, nh− vËy TA ph¶i truyÒn b»ng nh÷ng kªnh bÝ mËt tÊt c¶ lµ n (n -1) l−ît kho¸ ®Õn cho tÊt c¶ n ng−êi dïng. Blom (1985) ®Ò nghÞ mét s¬ ®å ph©n phèi kho¸, mµ sau ®©y ta gäi lµ s¬ ®å Blom, trong tr−êng hîp ®¬n gi¶n nhÊt ®−îc m« t¶ nh− sau: TA chän mét sè nguyªn tè p ≥ n, vµ chän cho mçi ng−êi dïng A mét sè rA∈Zp . Sè p vµ c¸c sè rA ®−îc c«ng bè c«ng khai. Sau ®ã, TA chän ba sè ngÉu nhiªn a,b,c ∈ Zp , vµ lËp ®a thøc ( , ) ( ) f x y a b x y cxy = + + + modp. Víi mçi ng−êi dïng A, TA tÝnh ( ) ( , ) A A A A g x f x r a b x = = + modp, trong ®ã . TA chuyÓn bÝ mËt cÆp sè mod , mod A A A A a a br b b cr = + = + p p ( , ) A A a b cho A; nh− vËy, A biÕt ( ) A A A g x a b x = + . So víi viÖc TA ph¶i truyÒn bÝ mËt n (n -1) l−ît kho¸ kÓ trªn th× víi s¬ ®å Blom, TA chØ ph¶i truyÒn n l−ît c¸c cÆp sè ( , ) A A a b mµ th«i. Sau khi ®· thùc hiÖn xong c¸c c«ng viÖc chuÈn bÞ ®ã, b©y giê nÕu hai ng−êi dïng A vµ B muèn t¹o kho¸ chung ®Ó truyÒn tin b»ng mËt m· cho nhau, th× kho¸ chung KA,B ®ã sÏ lµ : , ( ) ( ) ( , ), A B A B B A A B K g r g r f r r = = = mµ mçi ng−êi A vµ B tÝnh ®−îc b»ng nh÷ng th«ng tin m×nh ®· cã. 153
  • 159.
    Nh− vËy, theos¬ ®å ph©n phèi nµy, TA ph©n phèi cho mçi ng−êi dïng mét phÇn bÝ mËt cña kho¸, hai ng−êi dïng bÊt kú phèi hîp phÇn bÝ mËt cña riªng m×nh víi phÇn c«ng khai cña ng−êi kia ®Ó cïng t¹o nªn kho¸ bÝ mËt chung cho hai ng−êi. S¬ ®å nµy lµ an toµn theo nghÜa sau ®©y: BÊt kú mét ng−êi thø ba C nµo (kÓ c¶ C lµ mét ng−êi tham gia trong m¹ng) cã thÓ ph¸t hiÖn ®−îc kho¸ bÝ mËt riªng cña hai ng−êi A vµ B. Thùc vËy, dï C cã lµ ng−êi tham gia trong m¹ng ®i n÷a, th× c¸i mµ C biÕt nhiÒu l¾m lµ hai sè do TA cÊp cho. Ta chøng minh r»ng víi nh÷ng g× mµ C biÕt th× bÊt kú gi¸ trÞ l ∈ Z , C C a b p nµo còng cã thÓ ®−îc chÊp nhËn lµ K A,B . Nh÷ng g× mµ C biÕt, kÓ c¶ viÖc chÊp nhËn l = KA,B , ®−îc thÓ hiÖn thµnh ( ) A B A B C C C C a b r r cr r l a br a b cr b + + + = + = + = HÖ thèng ph−¬ng tr×nh ®ã, nÕu xem a,b,c lµ Èn sè, cã ®Þnh thøc c¸c hÖ sè ë vÕ ph¶i lµ 1 1 0 ( )( ) 0 1 A B A B C C A C C r r r r r r r r r + B r = − − , theo gi¶ thiÕt chän c¸c sè r , ®Þnh thøc ®ã kh¸c 0, do ®ã hÖ ph−¬ng tr×nh lu«n cã nghiÖm (a,b,c), tøc viÖc chÊp nhËn l lµ gi¸ trÞ cña K A,B lµ hoµn toµn cã thÓ. BÊt kú gi¸ trÞ l ∈ Zp nµo còng cã thÓ ®−îc C chÊp nhËn lµ KA,B , ®iÒu ®ã ®ång nghÜa víi viÖc C kh«ng biÕt KA,B lµ sè nµo! Tuy nhiªn, nÕu cã hai ng−êi tham gia C vµ D, kh¸c A,B, liªn minh víi nhau ®Ó ph¸t hiÖn K A,B , th× l¹i rÊt dÔ dµng, v× c¶ C vµ D biÕt C C C C D D D D a br a b cr b a br a b cr b + = + = + = + = Bèn ph−¬ng tr×nh ®ã ®ñ ®Ó x¸c ®Þnh (a,b,c), tõ ®ã t×m ®−îc KA,B . Ta cã thÓ më réng s¬ ®å Blom nãi trªn ®Ó ®−îc mét s¬ ®å Blom tæng qu¸t, trong ®ã mäi kho¸ chung K A,B cña hai ng−êi dïng A vµ B lµ bÝ mËt hoµn toµn ®èi víi bÊt kú liªn minh nµo gåm k ng−êi ngoµi A vµ B, nh−ng kh«ng cßn lµ bÝ mËt ®èi víi mäi liªn minh gåm k +1 ng−êi tham gia trong m¹ng. Muèn vËy, ta chØ cÇn 154
  • 160.
    thay ®a thøcf (x,y ) nãi trªn b»ng mét ®a thøc ®èi xøng bËc 2k sau ®©y : 0 0 ( , ) mod , k k i j ij i j f x y a x y = = = ∑∑ p trong ®ã víi mäi i, j. ,0 , , i p i a Z i j k a a ∈ ≤ ≤ = j ji j 7.2.2. HÖ ph©n phèi kho¸ Kerberos. Kerberos lµ tªn cña mét hÖ dÞch vô ph©n phèi (hay cÊp ph¸t) kho¸ phiªn (session key) cho tõng phiªn truyÒn tin b¶o mËt theo yªu cÇu cña ng−íi dïng trong mét m¹ng truyÒn tin. HÖ mËt m· ®−îc sö dông th−êng lµ hÖ cã kho¸ ®èi xøng, ch¼ng h¹n DES. §Ó thùc hiÖn hÖ nµy, tr−íc hÕt, c¬ quan ®−îc uû th¸c (hay trung t©m ®iÒu phèi) TA cÇn chia sÎ mét kho¸ DES bÝ mËt KA víi mçi thµnh viªn A trong m¹ng. Sau ®ã, mçi lÇn A cã nhu cÇu truyÒn tin b¶o mËt víi mét thµnh viªn kh¸c B th× yªu cÇu TA cÊp mét kho¸ phiªn cho c¶ A vµ B. ViÖc cÊp ph¸t ®ã sÏ ®−îc thùc hiÖn b»ng mét giao thøc ph©n phèi kho¸ nh− sau: 1. TA chän ngÉu nhiªn mét kho¸ phiªn K, x¸c ®Þnh mét tem thêi gian T vµ mét thêi gian sèng L (nh− thÕ cã nghÜa lµ kho¸ phiªn K cã gi¸ trÞ sö dông trong kho¶ng thêi gian tõ T ®Õn T +L). 2. TA tÝnh 1 2 ( , ( ), , ), ( , ( ), , ). A B K K m e K ID B T L m e K ID A T L = = vµ göi ( ) ®Õn A. 1 2 , m m 3. A dïng hµm gi¶i m· A K d cho ®Ó thu ®−îc K, T,L,ID(B). Sau ®ã tÝnh 1 m 3 ( ( ), K m e ID A T) = , vµ göi cho B. 3 2 ( , m m ) 4. B dïng c¸c hµm gi¶i m· B K d cho m2 vµ dK cho m3 ®Ó thu ®−îc K ,T, L,ID(A) vµ ID(A),T . NÕu thö thÊy hai gi¸ trÞ cña ID(A) vµ cña T trïng nhau, th× B tÝnh tiÕp m4 = eK (T +1) vµ göi m4 cho A. 5. A dïng hµm gi¶i m· dK cho m4, vµ thö xem kÕt qu¶ thu ®−îc cã ®óng lµ T +1 hay kh«ng. 155
  • 161.
    Trong giao thøckÓ trªn, c¸c ký hiÖu ID(A) vµ ID(B) lµ chØ cho danh tÝnh cña A vµ cña B, c¸c th«ng tin ®ã lµ c«ng khai. Hoµn thµnh giao thøc gåm 5 b−íc nãi trªn, TA (cïng víi A vµ B) ®· thùc hiÖn xong viÖc cÊp ph¸t mét kho¸ phiªn K cho hai ng−êi dïng A vµ B ®Ó truyÒn tin mËt m· cho nhau. TÊt c¶ c¸c viÖc trao ®æi th«ng tin cña giao thøc ®ã ®Òu ®−îc thùc hiÖn trªn c¸c kªnh c«ng céng, dï kho¸ K vÉn lµ bÝ mËt, chØ A, B (vµ TA) lµ ®−îc biÕt mµ th«i. Ngoµi viÖc cÊp ph¸t kho¸, giao thøc ®ã cßn thùc hiÖn ®−îc viÖc x¸c nhËn kho¸: B vµ A ®Òu tin ch¾c ®−îc r»ng ®èi t¸c cña m×nh ®· thùc sù cã kho¸ K do kÕt qu¶ cña viÖc thùc hiÖn c¸c phÐp thö ë b−íc 4 vµ 5; thªm n÷a, c¶ A vµ B cßn biÕt ®−îc thêi h¹n cã hiÖu lùc cña kho¸. Ph©n phèi kho¸ bÝ mËt theo giao thøc Kerberos lµ cã ®é tin cËy cao, tuy nhiªn trong thùc tÕ, viÖc sö dông nã còng ®ßi hái tèn nhiÒu thêi gian, nªn ngµy nay còng chØ ®−îc dïng trong nh÷ng tr−êng hîp h¹n chÕ. 7. 2.3. HÖ ph©n phèi kho¸ Diffie-Hellman. HÖ ph©n phèi kho¸ Diffie-Hellman kh«ng ®ßi hái TA ph¶i biÕt vµ chuyÓn bÊt kú th«ng tin bÝ mËt nµo vÒ kho¸ cña c¸c ng−êi tham gia trong m¹ng ®Ó hä thiÕt lËp ®−îc kho¸ chung bÝ mËt cho viÖc truyÒn tin víi nhau. Trong mét hÖ ph©n phèi kho¸ Diffie-Hellman, TA chØ viÖc chän mét sè nguyªn tè lín p vµ mét phÇn tö nguyªn thuû α theo modp, sao cho bµi to¸n tÝnh logα trong p Z∗ lµ rÊt khã. C¸c sè p vµ α ®−îc c«ng bè c«ng khai cho mäi ng−êi tham gia trong m¹ng. Ngoµi ra, TA cã mét s¬ ®å ch÷ ký víi thuËt to¸n ký (bÝ mËt) sigTA vµ thuËt to¸n kiÓm thö (c«ng khai) verTA. Mét thµnh viªn bÊt kú A víi danh tÝnh ID(A) tuú ý chän mét sè vµ tÝnh . A gi÷ bÝ mËt (0 2) A A a a p ≤ ≤ − mod A a A b α = p A a vµ ®¨ng ký c¸c th«ng tin (ID(A), A b ) víi TA. TA cÊp cho A chøng chØ C(A) = (ID(A), A b , sigTA(ID(A), A b )). C¸c chøng chØ cña c¸c thµnh viªn trong m¹ng cã thÓ ®−îc l−u gi÷ trong mét c¬ së d÷ liÖu c«ng khai, hoÆc uû th¸c cho TA l−u gi÷ vµ cung cÊp c«ng khai cho c¸c thµnh viªn mçi khi cÇn ®Õn. Khi hai thµnh viªn A vµ B trong m¹ng cÇn cã mét kho¸ bÝ mËt chung ®Ó truyÒn tin b¶o mËt cho nhau, th× A dïng th«ng tin c«ng khai cã trong C(B) kÕt hîp víi sè bÝ mËt cña m×nh lµ B b A a ®Ó t¹o nªn kho¸ 156
  • 162.
    , mod mod AB A a a a A B B K b α = = p p. Kho¸ chung ®ã B còng t¹o ra ®−îc tõ c¸c th«ng tin c«ng khai A b cña A vµ sè bÝ mËt cña m×nh: B a , mod mod B A B a a a A B A K b α = = p p. §Ó b¶o ®¶m ®−îc c¸c th«ng tin vÒ vµ B b A b lµ chÝnh x¸c, A vµ B cã thÓ dïng thuËt to¸n verTA ®Ó kiÓm thö ch÷ ký x¸c nhËn cña TA trong c¸c chøng chØ C(B) vµ C(A) t−¬ng øng. §é an toµn cña hÖ ph©n phèi kho¸ Diffie-Hellman ®−îc b¶o ®¶m bëi ®iÒu sau ®©y: BiÕt A b vµ ®Ó tÝnh K B b A,B chÝnh lµ bµi to¸n Diffie-Hellman mµ ta ®· ®Ò cËp tíi trong môc 4.1, ch−¬ng IV: biÕt mod a p α vµ mod b p α , tÝnh mod ab p α . §©y lµ mét bµi to¸n khã t−¬ng ®−¬ng bµi to¸n tÝnh l«garit rêi r¹c hay bµi to¸n ph¸ mËt m· ElGamal. 7.3. Trao ®æi kho¸ vµ tho¶ thuËn kho¸. 7.3.1. Giao thøc trao ®æi kho¸ Diffie-Hellman. HÖ ph©n phèi kho¸ Diffie-Hellman nãi trong môc tr−íc cã thÓ dÔ dµng biÕn ®æi thµnh mét giao thøc trao ®æi (hay tho¶ thuËn) kho¸ trùc tiÕp gi÷a c¸c ng−êi sö dông mµ kh«ng cÇn cã sù can thiÖp cña mét TA lµm nhiÖm vô ®iÒu hµnh hoÆc ph©n phèi kho¸. Mét nhãm bÊt kú ng−êi sö dông cã thÓ tho¶ thuËn cïng dïng chung mét sè nguyªn tè lín p vµ mét phÇn tö nguyªn thuû α theo modp , hai ng−êi bÊt kú trong nhãm A vµ B mçi khi muèn truyÒn tin b¶o mËt cho nhau cã thÓ cïng thùc hiÖn giao thøc say ®©y ®Ó trao ®æi kho¸: 1. A chän ngÉu nhiªn sè aA (0≤ aA≤ p -2), gi÷ bÝ mËt aA, tÝnh vµ göi b mod A a A b α = p p p i i i A cho B. 2. T−¬ng tù, B chän ngÉu nhiªn sè aB (0≤ aB ≤ p -2), gi÷ bÝ mËt aB , tÝnh vµ göi b mod B a B b α = B cho B. 3. A vµ B cïng tÝnh ®−îc kho¸ chung . , mod mod ( mod ) A B A B a a a a A B B A K b p b p α = = = Giao thøc trao ®æi kho¸ Diffie-Hellman cã c¸c tÝnh chÊt sau: 1. G ao thøc lµ an toµn ®è víi v Öc tÊn c«ng thô ®éng, nghÜa lµ mét ng−êi thø ba, dï biÕt bA vµ bB sÏ khã mµ biÕt ®−îc KA,B . Ta biÕt r»ng bµi to¸n “biÕt bA vµ bB t×m KA,B” chÝnh lµ bµi to¸n Diffie-Hellman, vµ trong môc 7.2.3 ta cã nãi r»ng bµi to¸n ®ã t−¬ng 157
  • 163.
    ®−¬ng víi bµito¸n ph¸ mËt m· ElGamal. B©y giê ta chøng minh ®iÒu nµy. PhÐp mËt m· ElGamal víi kho¸ K = (p,α,a ,β ), trong ®ã mod a p β α = , cho ta tõ mét b¶n râ x vµ mét sè ngÉu nhiªn 1 p k Z − ∈ lËp ®−îc mËt m· 1 2 ( , ) ( , ), K e x k y y = trong ®ã 1 2 mod , mod . k k y p y x α β = = p Vµ phÐp gi¶i m· ®−îc cho bëi 1 1 2 2 1 ( , ) ( ) mod . a K d y y y y p − = Gi¶ sö ta cã thuËt to¸n A gi¶i bµi to¸n Diffie-Hellman. Ta sÏ dïng A ®Ó ph¸ m· ElGamal nh− sau: Cho mËt m· . Tr−íc hÕt, dïng A cho vµ 1 2 ( , ) y y 1 mod k y p α = mod a p β α = , ta ®−îc A(y1,β) = mod , ka k p α β = vµ sau ®ã ta thu ®−îc b¶n râ x tõ βk vµ y2 nh− sau : 1 2 ( ) mod k . x y p β − = Ng−îc l¹i, gi¶ sö cã thuËt to¸n B ph¸ m· ElGamal, tøc B . 1 1 2 2 1 ( , , , , ) ( ) mod a p y y x y y α β − = = p 1 ¸p dông B cho 1 2 , , A B b y b y β = = = , ta ®−îc B 1 1 1 ( , , , ,1) (1.( ) ) mod , A A B a a a A B B p b b b p α α − − − = = tøc lµ gi¶i ®−îc bµi to¸n Diffie-Hellman. 2. Giao thøc lµ kh«ng an toµn ®èi víi viÖc tÊn c«ng chñ ®éng b»ng c¸ch ®¸nh tr¸o gi÷a ®−êng, nghÜa lµ mét ng−êi thø ba C cã thÓ ®¸nh tr¸o c¸c th«ng tin trao ®æi gi÷a A vµ B, ch¼ng h¹n, C thay A a α mµ A ®Þnh göi cho B bëi A a α ′ ,vµ thay B a α mµ B ®Þnh göi cho A bëi B a α ′ , nh− vËy, sau khi thùc hiÖn giao thøc trao ®æi kho¸, A ®· lËp mét kho¸ chung A B a a α ′ víi C mµ vÉn t−ëng lµ víi B, ®ång thêi B ®· lËp mét kho¸ chung A B a a α ′ víi C mµ vÉn t−ëng lµ víi A; C cã thÓ gi¶i m· mäi th«ng b¸o mµ A t−ëng nhÇm lµ m×nh göi ®Õn B, còng nh− mäi th«ng b¸o mµ B t−ëng nhÇm lµ m×nh göi ®Õn A ! Mét c¸ch kh¾c phôc kiÓu tÊn c«ng chñ ®éng nãi trªn lµ lµm sao ®Ó A vµ B cã thÓ kiÓm thö ®Ó x¸c nhËn tÝnh ®óng ®¾n cña c¸c kho¸ c«ng khai bA vµ bB .§−a vµo giao thøc trao ®æi kho¸ Diffie- Hellman thªm vai trß ®iÒu phèi cña mét TA ®Ó ®−îc mét hÖ ph©n phèi kho¸ Diffie-Hellman nh− ë môc 7.2.3 lµ mét c¸ch kh¾c phôc nh− vËy. Trong hÖ ph©n phèi kho¸ Diffie-Hellman, sù can thiÖp cña TA lµ rÊt yÕu, thùc ra TA chØ lµm mçi mét viÖc lµ cÊp chøng chØ x¸c nhËn kho¸ c«ng khai cho tõng ng−êi dïng chø kh«ng ®ßi hái biÕt thªm bÊt cø mét bÝ mËt nµo cña ng−êi dïng. Tuy nhiªn, nÕu ch−a 158
  • 164.
    tho¶ m·n víivai trß h¹n chÕ ®ã cña TA, th× cã thÓ cho TA mét vai trß x¸c nhËn yÕu h¬n, kh«ng liªn quan g× ®Õn kho¸, ch¼ng h¹n nh− x¸c nhËn thuËt to¸n kiÓm thö ch÷ kü cña ng−êi dïng, cßn b¶n th©n c¸c th«ng tin vÒ kho¸ (c¶ bÝ mËt vµ c«ng khai) th× do c¸c ng−êi dïng trao ®æi trùc tiÕp víi nhau. Víi c¸ch kh¾c phôc cã vai trß rÊt h¹n chÕ ®ã cña TA, ta ®−îc giao thøc sau ®©y: 7.3.2. Giao thøc trao ®æi kho¸ DH cã chøng chØ x¸c nhËn. Mçi ng−êi dïng A cã mét danh tÝnh ID(A) vµ mét s¬ ®å ch÷ ký víi thuËt to¸n ký sigA vµ thuËt to¸n kiÓm thö verA. TA còng cã mét vai trß x¸c nhËn, nh−ng kh«ng ph¶i x¸c nhËn bÊt kú th«ng tin nµo liªn quan ®Õn viÖc t¹o kho¸ mËt m· cña ng−êi dïng (dï lµ kho¸ bÝ mËt hay lµ kho¸ c«ng khai), mµ chØ lµ x¸c nhËn mét th«ng tin Ýt quan hÖ kh¸c nh− thuËt to¸n kiÓm thö ch÷ ký cña ng−êi dïng. Cßn b¶n th©n c¸c th«ng tin liªn quan ®Õn viÖc t¹o kho¸ mËt m· th× c¸c ng−êi dïng sÏ trao ®æi trùc tiÕp víi nhau. TA còng cã mét s¬ ®å ch÷ ký cña m×nh, gåm mét thuËt to¸n ký sigTA vµ mét thuËt to¸n kiÓm thö (c«ng khai) verTA. Chøng chØ mµ TA cÊp cho mçi ng−êi dïng A sÏ lµ C(A) = (ID(A), verA , sigTA(ID(A), verA)). Râ rµng trong chøng chØ ®ã TA kh«ng x¸c nhËn bÊt kú ®iÒu g× liªn quan ®Õn viÖc t¹o kho¸ cña A c¶. ViÖc trao ®æi kho¸ gi÷a hai ng−êi dïng A vµ B ®−îc thùc hiÖn theo giao thøc sau ®©y: 1.A chän ngÉu nhiªn sè (0 2), A A a a p ≤ ≤ − tÝnh vµ göi b mod , A a A b p α = A cho B. 2. B chän ngÉu nhiªn sè (0 2), B B a a p ≤ ≤ − tÝnh tÝnh tiÕp mod , B a B b p α = mod , B a A K b p = ( , ), B B B A y sig b b = vµ göi (C(B),bB , yB) cho A. 3. A tÝnh K = mod , A a B b p dïng verB ®Ó kiÓm thö yB , dïng verTA ®Ó kiÓm thö C(B), sau ®ã tÝnh yA = sigA(bA , bB ), vµ göi (C(A), yA) cho B. 4.B dïng verA ®Ó kiÓm thö yA ,vµ dïng verTA ®Ó kiÓm thö C(A). NÕu tÊt c¶ c¸c b−íc ®ã ®−îc thùc hiÖn vµ c¸c phÐp kiÓm thö ®Òu cho kÕt qu¶ ®óng ®¾n, th× giao thøc kÕt thóc, vµ c¶ A vµ B ®Òu cã ®−îc kho¸ chung K . Do viÖc dïng c¸c thuËt to¸n kiÓm thö nªn A biÕt ch¾c gi¸ trÞ bB lµ cña B vµ B biÕt ch¾c gi¸ trÞ bA lµ cña A, lo¹i 159
  • 165.
    trõ kh¶ n¨ngmét ng−êi C nµo kh¸c ®¸nh tr¸o c¸c gi¸ trÞ ®ã gi÷a ®−êng. 7.3.3. Giao thøc trao ®æi kho¸ Matsumoto-Takashima- Imai. Giao thøc tr×nh bµy trong môc trªn cÇn dïng ba lÇn chuyÓn tin qua l¹i ®Ó thiÕt lËp mét kho¸ chung. C¸c t¸c gi¶ NhËt Matsumoto, Takashima vµ Imai ®Ò nghÞ mét c¶i tiÕn ®Ó chØ dïng mét giao thøc gåm hai lÇn chuyÓn tin (mét tõ A ®Õn B vµ mét tõ B ®Õn A) ®Ó tho¶ thuËn kho¸ nh− sau: Ta gi¶ thö r»ng tr−íc khi thùc hiÖn giao thøc, TA ®· ký cÊp chøng chØ cho mçi ng−êi dïng A theo c¸ch lµm ë môc 7.2.3: C(A) = (ID(A), A b , sigTA(ID(A), A b )), vµ thuËt to¸n kiÓm thö ch÷ ký verTA cña TA lµ c«ng khai. Trong giao thøc nµy, c¸c bA kh«ng trùc tiÕp t¹o nªn c¸c kho¸ mËt m· cho truyÒn tin, mµ víi mçi phiªn truyÒn tin b¶o mËt, kho¸ phiªn (sesion key) sÏ ®−îc t¹o ra cho tõng phiªn theo giao thøc. Giao thøc trao ®æi kho¸ phiªn MTI gåm ba b−íc (trong ®ã cã hai lÇn chuyÓn tin) nh− sau: 1. A chän ngÉu nhiªn sè (0 2), A A r r p ≤ ≤ − tÝnh vµ göi (C(A), s mod , A r A s p α = A ) cho B. 2. B chän ngÉu nhiªn sè (0 2), B B r r p ≤ ≤ − tÝnh mod , B r B s p α = vµ göi (C(B),sB ) cho A. 3. A tÝnh . mod A A a r B B , K s b p = víi gi¸ trÞ bB thu ®−îc tõ C(B), B tÝnh . mod B B a r A A , K s b p = víi gi¸ trÞ bA thu ®−îc tõ C(A). Hai c¸ch tÝnh ®ã ®Òu cho cïng mét gi¸ trÞ mod . A B B A r a r a K p α + = Giao thøc nµy còng cã kh¶ n¨ng gi÷ bÝ mËt kho¸ K nh− ®èi víi giao thøc Diffie-Hellman tr−íc sù tÊn c«ng thô ®éng. Tuy nhiªn, v× kh«ng cã chøng chØ ®èi víi c¸c gi¸ trÞ sA , sB nªn vÉn cã nguy c¬ cña sù tÊn c«ng tÝch cùc b»ng viÖc ®¸nh tr¸o gi÷a ®−êng bëi mét C nµo ®ã theo kiÓu sau ®©y: C(A), A r α C(A), A r α ′ A C(B), B r α ′ C C(B), B r α B §¸ng lÏ A göi ®Õn B (C(A),sA) th× C ®¸nh tr¸o b»ng c¸ch nhËn (C(A),sA) vµ göi ®Õn B ( ( ), ), A C A s′ víi , vµ ng−îc l¹i, mod A r A s α ′ ′ = p 160
  • 166.
    ®¸ng lÏ Bgöi ®Õn A (C(B), sB) th× C ®¸nh tr¸o b»ng c¸ch nhËn (C(B), sB) vµ göi ®Õn A ( ( ), ) B C B s′ , víi . Khi ®ã, A tÝnh ®−îc kho¸ mod B r B s α ′ ′ = p 1 mod A B B A r a r a K p α ′ + = , vµ B tÝnh ®−îc kho¸ 2 mod . A B B A r a r a K p α ′ + = Hai gi¸ trÞ K1 vµ K2 nµy kh¸c nhau, nªn kh«ng gióp A vµ B truyÒn tin ®−îc cho nhau, nh−ng C kh«ng cã kh¶ n¨ng tÝnh ®−îc gi¸ trÞ nµo trong hai gi¸ trÞ ®ã (v× kh«ng biÕt aA vµ aB ), nªn kh¸c víi giao thøc Diffie-Hellman ë môc 7.2.3, ë ®©y C chØ cã thÓ ph¸ rèi, chø kh«ng thÓ ®¸nh c¾p th«ng tin ®−îc. 7.3.4. Giao thøc Girault trao ®æi kho¸ kh«ng chøng chØ. Giao thøc Girault ®−îc ®Ò xuÊt n¨m 1991. Trong giao thøc nµy, ng−êi sö dông A kh«ng cÇn dïng chøng chØ C(A), mµ thay b»ng mét kho¸ c«ng khai tù chøng thùc , ®−îc cÊp tr−íc bëi mét TA. Ph−¬ng ph¸p nµy sö dông kÕt hîp c¸c ®Æc tÝnh cña c¸c bµi to¸n RSA vµ l«garit rêi r¹c. Gi¶ thö n lµ tÝc cña hai sè nguyªn tè lín p vµ q, n =p.q , p vµ q cã d¹ng p =2p1+1, q =2q1+1, trong ®ã p1 vµ q1 còng lµ c¸c sè nguyªn tè. Nhãm nh©n n Z∗ ®¼ng cÊu víi tÝch p q Z Z ∗ ∗ × . CÊp cao nhÊt cña mét phÇn tö trong n Z∗ lµ béi chung bÐ nhÊt cña p -1 vµ q -1, tøc lµ b»ng 2p1q1. Gi¶ sö α lµ mét phÇn tö cÊp 2p1q1 cña n Z∗ . Nhãm cyclic sinh bëi α ®−îc ký hiÖu lµ G, bµi to¸n tÝnh l«garit rêi r¹c theo c¬ sè α trong G ®−îc gi¶ thiÕt lµ rÊt khã. C¸c sè n vµ α lµ c«ng khai. ChØ TA biÕt p ,q . TA chän sè mò c«ng khai e , víi gcd(e, φ (n ))=1,vµ gi÷ bÝ mËt d =e-1 modφ (n ). Mçi ng−êi dïng A cã mét danh tÝnh ID(A), chän ngÉu nhiªn mét sè aA ∈ G, gi÷ bÝ mËt aA vµ tÝnh bA= , råi göi a mod A a n α A ,bA cho TA. TA thö l¹i ®iÒu kiÖn bA= , råi cÊp cho A mét kho¸ c«ng khai tù chøng thùc p mod A a n α A = (bA- ID(A))d modn . Trong kho¸ c«ng khai pA kh«ng cã th«ng tin vÒ aA , nh−ng TA cÇn biÕt aA ®Ó thö ®iÒu kiÖn bA= . mod A a n α Giao thøc Girault trao ®æi kho¸ gi÷a hai ng−êi dïng A vµ B ®−îc thùc hiÖn bëi c¸c b−íc sau ®©y: 1. A chän ngÉu nhiªn rA∈G, tÝnh vµ göi cho B (ID(A),p mod , A r A s α = n A , sA). 161
  • 167.
    2. B chänngÉu nhiªn rB ∈G , tÝnh vµ göi cho A (ID(B), p mod , B r B s α = n d , B , sB). 3. A tÝnh kho¸ ( ( )) mo A A a r e B B K s p ID V n = + B tÝnh kho¸ ( ( )) mo B B a r e A A d . K s p ID A n = + C¶ hai gi¸ trÞ ®ã cña K ®Òu b»ng nhau vµ b»ng mod . A B B A r a r a K n α + = B»ng c¸c lËp luËn nh− trong môc tr−íc, ta dÔ thÊy r»ng mét ng−êi thø ba C khã mµ t¹o ra c¸c th«ng tin gi¶ m¹o ®Ó göi ®Õn A hoÆc B, nÕu tÊn c«ng b»ng c¸ch ®¸nh tr¸o gi÷a ®−êng th× cã thÓ ph¸ rèi ®Ó ng¨n c¶n A vµ B t¹o lËp kho¸ chung, nh−ng kh«ng thÓ ®¸nh c¾p th«ng tin trao ®æi gi÷a A vµ B. Cßn l¹i mét vÊn ®Ò: T¹i sao TA cÇn biÕt aA vµ thö ®iÒu kiÖn bA= tr−íc khi cÊp p mod A a n α A cho A? Ta gi¶ thö r»ng TA kh«ng biÕt aA vµ cÊp pA= (bA- ID(A))d modn cho A, vµ thö xem cã thÓ xÈy ra chuyÖn g×? Mét ng−êi thø ba C cã thÓ chän mét gi¸ trÞ rëm , A a′ vµ tÝnh råi tÝnh b b mod , A a A b α ′ ′ = n ID A ID C ( ) ( ), C A ′ ′ = − − ) vµ ®−a ( ( ), C ID C b′ cho TA. TA sÏ cÊp cho C mét “kho¸ c«ng khai tù chøng thùc” ( ( )) mo d C C p b ID C ′ ′ = − d . n d . n V× nªn thùc tÕ C ®· ®−îc cÊp ( ) ( ), C A b ID C b ID A ′ ′ − = − ( ( )) mo d C A A p p b ID A ′ ′ ′ = = − B©y giê gi¶ sö A vµ B thùc hiÖn giao thøc trao ®æi kho¸, vµ C xen vµo ë gi÷a, nh− vËy, A göi ®Õn B ( ( ), , mod ), A r A ID A p n α nh−ng do bÞ C ®¸nh tr¸o nªn B l¹i nhËn ®−îc ( ( ), , mod ), A r A ID A p n α ′ ′ do ®ã B vµ C tÝnh ®−îc cïng mét kho¸ mod ( ( )) mod , A B B A A A r a r a a r e B B K n s p ID B n α ′ ′ ′ ′ + ′ = = + cßn A tÝnh ®−îc kho¸ mod . A B B A r a r a K n α + = ID(A), pA, A r α ID(A), A p′ , A r α ′ A ID(B),pB , B r α C ID(B),pB, B r α B B vµ C cã cïng mét kho¸ kh¸c víi kho¸ cña A, nh−ng B vÉn nghÜ r»ng m×nh cã chung kho¸ víi A. V× thÕ, C cã thÓ gi¶i m· mäi th«ng b¸o mµ B göi cho A, tøc ®¸nh c¾p c¸c th«ng tin tõ B ®Õn A. ViÖc TA biÕt aA vµ thö ®iÒu kiÖn bA= tr−íc khi cÊp p mod A a n α A cho A lµ ®Ó lo¹i trõ kh¶ n¨ng ®¸nh tr¸o nh− vËy cña mét kÎ tÊn c«ng C. 162
  • 168.
    Chó dÉn vÒs¸ch tham kh¶o S¸ch b¸o vÒ Khoa häc mËt m· tuy míi ®−îc c«ng khai xuÊt b¶n tõ kho¶ng ba thËp niªn gÇn ®©y, nh−ng do nhu cÇu nghiªn cøu vµ øng dông rÊt lín nªn ®· ph¸t triÓn rÊt nhanh chãng, trong ®ã cã c¶ nh÷ng tµi liÖu gi¸o khoa do c¸c tr−êng §¹i häc xuÊt b¶n còng nh− c«ng tr×nh nghiªn cøu ®¨ng t¶i trªn c¸c t¹p chÝ khoa häc vµ c¸c tËp c«ng tr×nh cña c¸c héi nghÞ khoa häc quèc tÕ hµng n¨m vÒ MËt m·. §ã lµ nguån tµi liÖu hÕt søc phong phó vµ quÝ gi¸ cho tÊt c¶ nh÷ng ai quan t©m ®Õn viÖc häc tËp vµ nghiªn cøu vÒ khoa häc mËt m·. TËp gi¸o tr×nh nµy ®−îc biªn so¹n chñ yÕu dùa vµo mét sè s¸ch chuyªn kh¶o ®· trë thµnh gi¸o khoa cho nhiÒu tr−êng §¹i häc trªn thÕ giíi, ®−îc xuÊt b¶n trong nh÷ng n¨m gÇn ®©y: 1. Douglas R. Stinson. Cryptography. Theory and Practice, CRC Press,1995. 2.A.J. Menezes, P.C. van Oorschot, S.A. Vanstone. Handbook of Applied Cryptography, CRC Press, 1997. 3.Bruce Schneier. Applied Cryptography. Protocols, Algorithms and Source Code in C. John Wiley Son,Inc, 1996. 4. S. Goldwasser, M. Bellare. Lecture Notes on Cryptography. MIT Laboratory of Computer Science, 2001. 5.J.Seberry, J. Pieprzyk. Cryptography. An introduction to Computer Security. Prentice Hall, 1989. 6.Vitor Shoup. A computational Introduction to Number Theory and Algebra, New York University, 2003. 163