Криптографические методы защиты информации
Выбери формат для чтения
Загружаем конспект в формате pdf
Это займет всего пару минут! А пока ты можешь прочитать работу в формате Word 👇
ÌÅÒÎÄÛ È ÑÐÅÄÑÒÂÀ
ÊÐÈÏÒÎÃÐÀÔÈ×ÅÑÊÎÉ
ÇÀÙÈÒÛ ÈÍÔÎÐÌÀÖÈÈ
Ýëåêòðîííîå ó÷åáíîå ïîñîáèå äëÿ äèñòàíöèîííîãî
îáðàçîâàíèÿ
Íîâîñèáèðñê
Ñèáèðñêèé ãîñóäàðñòâåííûé óíèâåðñèòåò
òåëåêîììóíèêàöèé è èíôîðìàòèêè
2008
Äàííîå ýëåêòðîííîå ó÷åáíîå ïîñîáèå áàçèðóåòñÿ íà ñëåäóþùåì
èñòî÷íèêå:
Ðÿáêî Á. ß., Ôèîíîâ À. Í. Êðèïòîãðàôè÷åñêèå ìåòîäû çàùèòû èíôîðìàöèè: Ó÷åáíîå ïîñîáèå äëÿ âóçîâ. Ì.: Ãîðÿ÷àÿ
ëèíèÿ Òåëåêîì, 2005. 229 ñ.
ÎÃËÀÂËÅÍÈÅ
1. Ââåäåíèå . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Çàäà÷è è óïðàæíåíèÿ . . . . . . . . . . . . . . . . . . . . . .
4
12
2. Êðèïòîñèñòåìû ñ îòêðûòûì êëþ÷îì . . . . . . . . . . . .
2.1. Ïðåäûñòîðèÿ è îñíîâíûå èäåè . . . . . . . . . . . . . .
2.2. Ïåðâàÿ ñèñòåìà ñ îòêðûòûì êëþ÷îì ñèñòåìà Äèôôè
Õåëëìàíà . . . . . . . . . . . . . . . . . . . . . . . . . .
2.3. Ýëåìåíòû òåîðèè ÷èñåë . . . . . . . . . . . . . . . . . .
2.4. Øèôð Øàìèðà . . . . . . . . . . . . . . . . . . . . . . .
2.5. Øèôð Ýëü-Ãàìàëÿ . . . . . . . . . . . . . . . . . . . . .
2.6. Îäíîñòîðîííÿ ôóíêöèÿ ñ ¾ëàçåéêîé¿ è øèôð RSA . . .
Çàäà÷è è óïðàæíåíèÿ . . . . . . . . . . . . . . . . . . . . . .
13
13
3. Òåîðåòè÷åñêàÿ ñòîéêîñòü êðèïòîñèñòåì . . . . . . . . . .
3.1. Ââåäåíèå . . . . . . . . . . . . . . . . . . . . . . . . . .
3.2. Òåîðèÿ ñèñòåì ñ ñîâåðøåííîé ñåêðåòíîñòüþ . . . . . .
3.3. Øèôð Âåðíàìà . . . . . . . . . . . . . . . . . . . . . . .
3.4. Ýëåìåíòû òåîðèè èíôîðìàöèè . . . . . . . . . . . . . .
3.5. Ðàññòîÿíèå åäèíñòâåííîñòè øèôðà ñ ñåêðåòíûì êëþ÷îì
3.6. Èäåàëüíûå êðèïòîñèñòåìû . . . . . . . . . . . . . . . .
Çàäà÷è è óïðàæíåíèÿ . . . . . . . . . . . . . . . . . . . . . .
50
50
51
53
55
63
70
79
4. Ñîâðåìåííûå øèôðû ñ ñåêðåòíûì êëþ÷îì . . . . . . . .
4.1. Ââåäåíèå . . . . . . . . . . . . . . . . . . . . . . . . . .
4.2. Áëîêîâûå øèôðû . . . . . . . . . . . . . . . . . . . . .
81
81
85
21
24
34
37
40
46
Îãëàâëåíèå
3
Øèôð ÃÎÑÒ 28147-89 . . . . . . . . . . . . . . . . . . . 87
4.3. Îñíîâíûå ðåæèìû ôóíêöèîíèðîâàíèÿ áëîêîâûõ øèôðîâ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
Ðåæèì ECB . . . . . . . . . . . . . . . . . . . . . . . . . 91
Ðåæèì CBC . . . . . . . . . . . . . . . . . . . . . . . . . 92
4.4. Ïîòîêîâûå øèôðû . . . . . . . . . . . . . . . . . . . . . 93
Ðåæèì OFB áëîêîâîãî øèôðà . . . . . . . . . . . . . . 95
Ðåæèì CTR áëîêîâîãî øèôðà . . . . . . . . . . . . . . 97
Àëãîðèòì RC4 . . . . . . . . . . . . . . . . . . . . . . . 97
4.5. Êðèïòîãðàôè÷åñêèå õåø-ôóíêöèè . . . . . . . . . . . . 100
5. Ýëåêòðîííàÿ, èëè öèôðîâàÿ ïîäïèñü . . . . . . . .
5.1. Ýëåêòðîííàÿ ïîäïèñü RSA . . . . . . . . . . . .
5.2. Ñòàíäàðòû íà ýëåêòðîííóþ (öèôðîâóþ) ïîäïèñü
Çàäà÷è è óïðàæíåíèÿ . . . . . . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
104
104
108
113
6. Êðèïòîãðàôè÷åñêèå ïðîòîêîëû . . . . . . . . . . . .
6.1. Äîêàçàòåëüñòâà ñ íóëåâûì çíàíèåì . . . . . . . .
Çàäà÷à î íàõîæäåíèè ãàìèëüòîíîâà öèêëà â ãðàôå
6.2. Ýëåêòðîííûå äåíüãè . . . . . . . . . . . . . . . . .
6.3. Âçàèìíàÿ èäåíòèôèêàöèÿ ñ óñòàíîâëåíèåì êëþ÷à
Çàäà÷è è óïðàæíåíèÿ . . . . . . . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
115
116
117
126
134
142
Îòâåòû ê çàäà÷àì è óïðàæíåíèÿì . . . . . . . . . . . . . . . . 143
Ñïèñîê ëèòåðàòóðû . . . . . . . . . . . . . . . . . . . . . . . . 149
Ãëàâà 1.
ÂÂÅÄÅÍÈÅ
Ìû íà÷èíàåì èçëîæåíèå îñíîâ êðèïòîãðàôèè ñ êëàññè÷åñêîé çàäà÷è ïåðåäà÷è ñåêðåòíûõ ñîîáùåíèé îò íåêîòîðîãî îòïðàâèòåëÿ A ê
ïîëó÷àòåëþ B .
Îòïðàâèòåëü ñîîáùåíèé è èõ ïîëó÷àòåëü ìîãóò áûòü ôèçè÷åñêèìè ëèöàìè, îðãàíèçàöèÿìè, êàêèìè-ëèáî òåõíè÷åñêèìè ñèñòåìàìè.
Èíîãäà îá A è B ãîâîðÿò êàê îá àáîíåíòàõ íåêîòîðîé ñåòè, î ïîëüçîâàòåëÿõ íåêîòîðîé êîìïüþòåðíîé ñèñòåìû èëè, åùå áîëåå ôîðìàëüíî, êàê îá àáñòðàêòíûõ ¾ñòîðîíàõ¿ (àíãëîÿçû÷íûé òåðìèí ¾party¿)
èëè ¾ñóùíîñòÿõ¿ (entity), ó÷àñòâóþùèõ â èíôîðìàöèîííîì âçàèìîäåéñòâèè. Íî ÷àùå áûâàåò óäîáíî îòîæäåñòâëÿòü ó÷àñòíèêîâ îáìåíà
ñ íåêîòîðûìè ëþäüìè è çàìåíèòü ôîðìàëüíûå îáîçíà÷åíèÿ A è B
íà Àëèñà è Áîá.
Ïðåäïîëàãàåòñÿ, ÷òî ñîîáùåíèÿ ïåðåäàþòñÿ ïî òàê íàçûâàåìîìó
¾îòêðûòîìó¿ êàíàëó ñâÿçè, â ïðèíöèïå äîñòóïíîìó äëÿ ïðîñëóøèâàíèÿ íåêîòîðûì äðóãèì ëèöàì, îòëè÷íûì îò ïîëó÷àòåëÿ è îòïðàâèòåëÿ. Òàêàÿ ñèòóàöèÿ âîçíèêàåò ïðè ðàäèîïåðåäà÷å ñîîáùåíèé (íàïðèìåð, ïîñðåäñòâîì ìîáèëüíîãî òåëåôîíà) è âîçìîæíà ïðè èñïîëüçîâàíèè äàæå òàêèõ ¾ïðîâåðåííûõ¿ êàíàëîâ ñâÿçè, êàê ïðîâîëî÷íûé òåëåôîí, òåëåãðàô, äà è îáû÷íàÿ ïî÷òà. Îñîáûé èíòåðåñ êàê ñðåäñòâî ïåðåäà÷è äàííûõ, ñòðåìèòåëüíî çàâîåâûâàþùåå ëèäèðóþùèå ïîçèöèè
âî âñåì ìèðå è â òî æå âðåìÿ ÷ðåçâû÷àéíî óÿçâèìîå ñ òî÷êè çðåíèÿ
âîçìîæíîñòè íåñàíêöèîíèðîâàííîãî äîñòóïà òðåòüèõ ëèö, ïðåäñòàâëÿåò Èíòåðíåò. Â ýòîé ñðåäå ëåãêî ðåàëèçóåòñÿ íå òîëüêî êîïèðîâàíèå, íî è ïîäìåíà ïåðåäàâàåìûõ ñîîáùåíèé.
 êðèïòîãðàôèè îáû÷íî ïðåäïîëàãàåòñÿ, ÷òî ó ëèöà, ïåðåäàþùåãî ñîîáùåíèÿ è (èëè) èõ ïðèíèìàþùåãî, åñòü íåêîòîðûé ïðîòèâíèê
Ãëàâà 1. Ââåäåíèå
5
E , êîòîðûé ìîæåò áûòü êîíêóðåíòîì â áèçíåñå, ÷ëåíîì ïðåñòóïíîé
ãðóïïèðîâêè, ïðåäñòàâèòåëåì èíîñòðàííîé ðàçâåäêè èëè äàæå ÷ðåçìåðíî ðåâíèâîé æåíîé, è ýòîò ïðîòèâíèê ìîæåò ïåðåõâàòûâàòü ñîîáùåíèÿ, ïåðåäàâàåìûå ïî îòêðûòîìó êàíàëó, è àíàëèçèðîâàòü èõ. ×àñòî óäîáíî ðàññìàòðèâàòü ïðîòèâíèêà êàê íåêóþ îñîáó ïî èìåíè Åâà,
êîòîðàÿ èìååò â ñâîåì ðàñïîðÿæåíèè ìîùíóþ âû÷èñëèòåëüíóþ òåõíèêó è âëàäååò ìåòîäàìè êðèïòîàíàëèçà. Åñòåñòâåííî, Àëèñà è Áîá
õîòÿò, ÷òîáû èõ ñîîáùåíèÿ áûëè íåïîíÿòíû Åâå, è èñïîëüçóþò äëÿ
ýòîãî ñïåöèàëüíûå øèôðû.
Ïåðåä òåì êàê ïåðåäàòü ñîîáùåíèå ïî îòêðûòîìó êàíàëó ñâÿçè îò
A ê B , A øèôðóåò ñîîáùåíèå, à B , ïðèíÿâ çàøèôðîâàííîå ñîîáùåíèå, äåøèôðóåò åãî, âîññòàíàâëèâàÿ èñõîäíûé òåêñò. Âàæíî òî, ÷òî
â ðàññìàòðèâàåìîé íàìè â ýòîé ãëàâå çàäà÷å Àëèñà è Áîá ìîãóò äîãîâàðèâàòüñÿ îá èñïîëüçóåìîì èìè øèôðå (èëè, ñêîðåå, î íåêîòîðûõ
åãî ïàðàìåòðàõ) íå ïî îòêðûòîìó êàíàëó, à ïî ñïåöèàëüíîìó ¾çàêðûòîìó¿ êàíàëó, íåäîñòóïíîìó äëÿ ïðîñëóøèâàíèÿ ïðîòèâíèêîì. Òàêîé
¾çàêðûòûé êàíàë¿ ìîæåò áûòü îðãàíèçîâàí ïðè ïîìîùè êóðüåðîâ,
èëè æå Àëèñà è Áîá ìîãóò îáìåíèâàòüñÿ øèôðàìè âî âðåìÿ ëè÷íîé
âñòðå÷è è ò.ï. Ïðè ýòîì íàäî ó÷èòûâàòü, ÷òî îáû÷íî îðãàíèçàöèÿ òàêîãî çàêðûòîãî êàíàëà è ïåðåäà÷à ïî íåìó ñîîáùåíèé ñëèøêîì äîðîãè ïî ñðàâíåíèþ ñ îòêðûòûì êàíàëîì è (èëè) çàêðûòûé êàíàë íå
ìîæåò áûòü èñïîëüçîâàí â ëþáîå âðåìÿ. Íàïðèìåð, êóðüåðñêàÿ ïî÷òà
íàìíîãî äîðîæå îáû÷íîé, ïåðåäà÷à ñîîáùåíèé ñ åå ïîìîùüþ ïðîèñõîäèò íàìíîãî ìåäëåííåå, ÷åì, ñêàæåì, ïî òåëåãðàôó, äà è èñïîëüçîâàòü åå ìîæíî íå â ëþáîå âðåìÿ ñóòîê è íå â ëþáîé ñèòóàöèè.
×òîáû áûòü áîëåå êîíêðåòíûìè, ðàññìîòðèì ïðèìåð øèôðà. Òàê
êàê ïðîáëåìà øèôðîâàíèÿ ñîîáùåíèé âîçíèêëà åùå â ãëóáîêîé äðåâíîñòè, íåêîòîðûå øèôðû ñâÿçàíû ñ èìåíàìè èçâåñòíûõ èñòîðè÷åñêèõ ëè÷íîñòåé è â êà÷åñòâå ïåðâûõ ïðèìåðîâ îáû÷íî èñïîëüçóþò
èìåííî òàêèå øèôðû. Ìû òàêæå áóäåì ïðèäåðæèâàòüñÿ ýòîé òðàäèöèè. Íà÷íåì ñ èçâåñòíîãî øèôðà Ãàÿ Þëèÿ Öåçàðÿ (ñì., íàïðèìåð,
[2, 23]), àäàïòèðîâàâ åãî ê ðóññêîìó ÿçûêó. Â ýòîì øèôðå êàæäàÿ áóê-
Ãëàâà 1. Ââåäåíèå
6
âà ñîîáùåíèÿ çàìåíÿåòñÿ íà äðóãóþ, íîìåð êîòîðîé â àëôàâèòå íà
òðè áîëüøå. Íàïðèìåð, À çàìåíÿåòñÿ íà Ã, Á íà Ä è ò.ä. Òðè ïîñëåäíèå áóêâû ðóññêîãî àëôàâèòà Ý, Þ, ß øèôðóþòñÿ áóêâàìè À, Á,
 ñîîòâåòñòâåííî. Íàïðèìåð, ñëîâî ÏÅÐÅÌÅÍÀ ïîñëå ïðèìåíåíèÿ
ê íåìó øèôðà Öåçàðÿ ïðåâðàùàåòñÿ â ÒÈÓÈÏÈÐà (åñëè èñêëþ÷èòü
áóêâó Å è ñ÷èòàòü, ÷òî â àëôàâèòå 32 áóêâû).
Ïîñëåäóþùèå ðèìñêèå öåçàðè ìîäèôèöèðîâàëè øèôð, èñïîëüçóÿ ñìåùåíèå â àëôàâèòå íà ÷åòûðå, ïÿòü è áîëåå áóêâ. Ìû ìîæåì
îïèñàòü èõ øèôð â îáùåì âèäå, åñëè ïðîíóìåðóåì (çàêîäèðóåì) áóêâû ðóññêîãî àëôàâèòà ÷èñëàìè îò 0 äî 31 (èñêëþ÷èâ áóêâó Å). Òîãäà
ïðàâèëî øèôðîâàíèÿ çàïèøåòñÿ ñëåäóþùèì îáðàçîì:
c = (m + k) mod 32,
(1.1)
ãäå m è c
íîìåðà áóêâ ñîîòâåòñòâåííî ñîîáùåíèÿ è øèôðîòåêñòà, à k
íåêîòîðîå öåëîå ÷èñëî, íàçûâàåìîå êëþ÷îì øèôðà (â
ðàññìîòðåííîì âûøå øèôðå Öåçàðÿ k = 3). (Çäåñü è â äàëüíåéøåì
a mod b îáîçíà÷àåò îñòàòîê îò äåëåíèÿ öåëîãî ÷èñëà a íà öåëîå ÷èñëî
b, ïðè÷åì îñòàòîê áåðåòñÿ èç ìíîæåñòâà {0, 1, . . . , b − 1}. Íàïðèìåð,
13 mod 5 = 3.)
×òîáû äåøèôðîâàòü çàøèôðîâàííûé òåêñò, íóæíî ïðèìåíèòü ¾îáðàòíûé¿ àëãîðèòì
m = (c − k) mod 32.
(1.2)
Ìîæíî ïðåäñòàâèòü ñåáå ñèòóàöèþ, êîãäà èñòî÷íèê è ïîëó÷àòåëü
ñîîáùåíèé äîãîâîðèëèñü èñïîëüçîâàòü øèôð (1.1), íî äëÿ òîãî, ÷òîáû óñëîæíèòü çàäà÷ó ïðîòèâíèêà, ðåøèëè èíîãäà ìåíÿòü êëþ÷ øèôðà. Äëÿ ýòîãî Àëèñà êàêèì-ëèáî îáðàçîì ãåíåðèðóåò ÷èñëî k , ïåðåäàåò åãî Áîáó ïî çàêðûòîìó êàíàëó ñâÿçè, è ïîñëå ýòîãî îíè îáìåíèâàþòñÿ ñîîáùåíèÿìè, çàøèôðîâàííûìè ñ ïîìîùüþ ýòîãî êëþ÷à k .
Çàìåíó êëþ÷à ìîæíî ïðîâîäèòü, íàïðèìåð, ïåðåä êàæäûì ñåàíñîì
ñâÿçè èëè ïîñëå ïåðåäà÷è ôèêñèðîâàííîãî ÷èñëà áóêâ (ñêàæåì, êàæäóþ äåñÿòêó ñèìâîëîâ øèôðîâàòü ñî ñâîèì k ) è ò.ï.  òàêîì ñëó÷àå
Ãëàâà 1. Ââåäåíèå
7
ãîâîðÿò, ÷òî êëþ÷ ïîðîæäàåòñÿ èñòî÷íèêîì êëþ÷à. Ñõåìà ðàññìîòðåííîé êðèïòîñèñòåìû ñ ñåêðåòíûì êëþ÷îì ïðèâåäåíà íà ðèñ. 1.1.
E
A - øèôðàòîð
6
èñòî÷íèê
êëþ÷à
r
?
- äåøèôðàòîð
îòêðûòûé êàíàë
- B
6
g
çàêðûòûé êàíàë
Ðèñ. 1.1. Êëàññè÷åñêàÿ ñèñòåìà ñåêðåòíîé ñâÿçè
Îáðàòèìñÿ òåïåðü ê àíàëèçó äåéñòâèé ïðîòèâíèêà, ïûòàþùåãîñÿ
ðàñøèôðîâàòü ñîîáùåíèå è óçíàòü ñåêðåòíûé êëþ÷, èíûìè ñëîâàìè,
âñêðûòü, èëè âçëîìàòü øèôð. Êàæäàÿ ïîïûòêà âñêðûòèÿ øèôðà íàçûâàåòñÿ àòàêîé íà øèôð (èëè íà êðèïòîñèñòåìó). Â êðèïòîãðàôèè
ïðèíÿòî ñ÷èòàòü, ÷òî ïðîòèâíèê ìîæåò çíàòü èñïîëüçîâàííûé àëãîðèòì øèôðîâàíèÿ, õàðàêòåð ïåðåäàâàåìûõ ñîîáùåíèé è ïåðåõâà÷åííûé øèôðîòåêñò, íî íå çíàåò ñåêðåòíûé êëþ÷. Ýòî íàçûâàåòñÿ ¾ïðàâèëîì Êåðêõîôôñà¿ (ñì. [23]) â ÷åñòü ó÷åíîãî, âïåðâûå ñôîðìóëèðîâàâøåãî îñíîâíûå òðåáîâàíèÿ ê øèôðàì (A. Kerckhoffs, 1883). Èíîãäà ýòî ïðàâèëî êàæåòñÿ ¾ïåðåñòðàõîâêîé¿, íî òàêàÿ ¾ïåðåñòðàõîâêà¿
îòíþäü íå ëèøíÿÿ, åñëè, ñêàæåì, ïåðåäàåòñÿ ðàñïîðÿæåíèå î ïåðåâîäå ìèëëèîíà äîëëàðîâ ñ îäíîãî ñ÷åòà íà äðóãîé.
 íàøåì ïðèìåðå Åâà çíàåò, ÷òî øèôð áûë ïîñòðîåí â ñîîòâåòñòâèè ñ (1.1), ÷òî èñõîäíîå ñîîáùåíèå áûëî íà ðóññêîì ÿçûêå è ÷òî
áûë ïåðåäàí øèôðîòåêñò ÒÈÓÈÏÈÐÃ, íî êëþ÷ Åâå íå èçâåñòåí.
Íàèáîëåå î÷åâèäíàÿ ïîïûòêà ðàñøèôðîâêè ïîñëåäîâàòåëüíûé
ïåðåáîð âñåõ âîçìîæíûõ êëþ÷åé (ýòî òàê íàçûâàåìûé ìåòîä ¾ãðó-
Ãëàâà 1. Ââåäåíèå
8
áîé ñèëû¿ (brute-force attack)). Èòàê, Åâà ïåðåáèðàåò ïîñëåäîâàòåëüíî âñå âîçìîæíûå êëþ÷è k = 1, 2, . . . , ïîäñòàâëÿÿ èõ â àëãîðèòì
äåøèôðîâàíèÿ è îöåíèâàÿ ïîëó÷àþùèåñÿ ðåçóëüòàòû. Ïîïðîáóåì è
ìû èñïîëüçîâàòü ýòîò ìåòîä. Ðåçóëüòàòû äåøèôðîâàíèÿ ïî (1.2) ïðè
ðàçëè÷íûõ êëþ÷àõ è øèôðîòåêñòå ÒÈÓÈÏÈÐà ñâåäåíû â òàáë. 1.1.
 áîëüøèíñòâå ñëó÷àåâ íàì äîñòàòî÷íî áûëî ðàñøèôðîâàòü äâå òðè
áóêâû, ÷òîáû îòâåðãíóòü ñîîòâåòñòâóþùèé êëþ÷ (èç-çà îòñóòñòâèÿ
ñëîâà â ðóññêîì ÿçûêå, íà÷èíàþùåãîñÿ ñ òàêîãî ôðàãìåíòà).
Ò à á ë è ö à 1.1. Pàñøèôðîâêà ñëîâà ÒÈÓÈÏÈÐÃ
ïóòåì ïåðåáîðà êëþ÷åé
k
1
2
3
4
5
6
7
8
m
ÑÇÒ
ÐÆÑ
ÏÅÐÅÌÅÍÀ
ÎÄÏ
ÍÃ
ÌÂ
ËÁÌ
ÊÀËÀÇ
k
9
10
11
12
13
14
15
16
m
Éß
ÈÞÉ
ÇÝÈ
ÆÜ
ÅÛ
ÄÚ
ÃÙ
ÂØÃ
k
17
18
19
20
21
22
23
24
m
Á×
ÀÖÁ
ßÕÀ
ÞÔ
ÝÓ
Ü
Û
Ú
k
25
26
27
28
29
30
31
32
m
ÙÏ
ØÎÙ
×Í
ÖÌ
ÕËÖ
ÔÊ
ÓÉ
ÒÈÓÈÏÈÐÃ
Èç òàáë. 1.1 ìû âèäèì, ÷òî áûë èñïîëüçîâàí êëþ÷ k = 3 è çàøèôðîâàíî ñîîáùåíèå ÏÅÐÅÌÅÍÀ. Ïðè÷åì äëÿ òîãî, ÷òîáû ïðîâåðèòü îñòàëüíûå âîçìîæíûå çíà÷åíèÿ êëþ÷à, íàì íå òðåáîâàëîñü äåøèôðîâàòü âñå âîñåìü áóêâ, à â áîëüøèíñòâå ñëó÷àåâ ïîñëå àíàëèçà
äâóõ òðåõ áóêâ êëþ÷ îòâåðãàëñÿ (òîëüêî ïðè k = 8 íàäî áûëî äåøèôðîâàòü ïÿòü áóêâ, çàòî ïðè k = 22, 23, 24 õâàòàëî è îäíîé, òàê
êàê â ðóññêîì ÿçûêå íåò ñëîâ, íà÷èíàþùèõñÿ ñ Ü, Ú, Û).
Èç ýòîãî ïðèìåðà ìû âèäèì, ÷òî ðàññìîòðåííûé øèôð ñîâåðøåííî íåñòîåê, äëÿ åãî âñêðûòèÿ äîñòàòî÷íî ïðîàíàëèçèðîâàòü íåñêîëüêî
ïåðâûõ áóêâ ñîîáùåíèÿ è ïîñëå ýòîãî êëþ÷ k îäíîçíà÷íî îïðåäåëÿåòñÿ (è, ñëåäîâàòåëüíî, îäíîçíà÷íî äåøèôðóåòñÿ âñå ñîîáùåíèå).
 ÷åì æå ïðè÷èíû íåñòîéêîñòè ðàññìîòðåííîãî øèôðà è êàê ìîæ-
Ãëàâà 1. Ââåäåíèå
9
íî áûëî áû óâåëè÷èòü åãî ñòîéêîñòü? Ðàññìîòðèì åùå îäèí ïðèìåð.
Àëèñà ñïðÿòàëà âàæíûå äîêóìåíòû â ÿ÷åéêå êàìåðû õðàíåíèÿ, ñíàáæåííîé ïÿòèäåêàäíûì êîäîâûì çàìêîì. Òåïåðü îíà õîòåëà áû ñîîáùèòü Áîáó êîìáèíàöèþ öèôð, îòêðûâàþùóþ ÿ÷åéêó. Îíà ðåøèëà èñïîëüçîâàòü àíàëîã øèôðà Öåçàðÿ, àäàïòèðîâàííûé ê àëôàâèòó, ñîñòîÿùåìó èç äåñÿòè÷íûõ öèôð:
c = (m + k) mod 10.
(1.3)
Äîïóñòèì, Àëèñà ïîñëàëà Áîáó øèôðîòåêñò 26047. Åâà ïûòàåòñÿ ðàñøèôðîâàòü åãî, ïîñëåäîâàòåëüíî ïåðåáèðàÿ âñå âîçìîæíûå êëþ÷è.
Ðåçóëüòàòû åå ïîïûòîê ñâåäåíû â òàáë. 1.2.
Ò à á ë è ö à 1.2. Pàñøèôðîâêà ñîîáùåíèÿ
26047 ïóòåì ïåðåáîðà
êëþ÷åé
k
m
k
m
1
15936
6
60481
2
04825
7
59370
3
93714
8
48269
4
82603
9
37158
5
71592
26047
Ìû âèäèì, ÷òî âñå ïîëó÷åííûå âàðèàíòû ðàâíîçíà÷íû è Åâà íå
ìîæåò ïîíÿòü, êàêàÿ èìåííî êîìáèíàöèÿ èñòèííà. Àíàëèçèðóÿ øèôðîòåêñò, îíà íå ìîæåò íàéòè çíà÷åíèÿ ñåêðåòíîãî êëþ÷à. Êîíå÷íî, äî
ïåðåõâàòà ñîîáùåíèÿ ó Åâû áûëî 105 âîçìîæíûõ çíà÷åíèé êîäîâîé
êîìáèíàöèè, à ïîñëå
òîëüêî 10. Îäíàêî âàæíî îòìåòèòü òî, ÷òî
â äàííîì ñëó÷àå âñåãî 10 çíà÷åíèé êëþ÷à. Ïîýòîìó ïðè òàêîì êëþ÷å (îäíà äåñÿòè÷íàÿ öèôðà) Àëèñà è Áîá è íå ìîãëè ðàñ÷èòûâàòü íà
áîëüøóþ ñåêðåòíîñòü.
 ïåðâîì ïðèìåðå ñîîáùåíèå
òåêñò íà ðóññêîì ÿçûêå, ïîýòîìó îíî ïîä÷èíÿåòñÿ ìíîãî÷èñëåííûì ïðàâèëàì, ðàçëè÷íûå áóêâû
Ãëàâà 1. Ââåäåíèå
10
è èõ ñî÷åòàíèÿ èìåþò ðàçëè÷íûå âåðîÿòíîñòè è, â ÷àñòíîñòè, ìíîãèå íàáîðû áóêâ âîîáùå çàïðåùåíû. (Ýòî ñâîéñòâî íàçûâàåòñÿ èçáûòî÷íîñòüþ òåêñòà). Ïîýòîìó-òî è óäàëîñü ëåãêî ïîäîáðàòü êëþ÷
è äåøèôðîâàòü ñîîáùåíèå, ò.å. èçáûòî÷íîñòü ïîçâîëèëà ¾âçëîìàòü¿
øèôð.  ïðîòèâîïîëîæíîñòü ýòîìó, âî âòîðîì ïðèìåðå âñå êîìáèíàöèè öèôð äîïóñòèìû. ¾ßçûê¿ êîäîâîãî çàìêà íå ñîäåðæèò èçáûòî÷íîñòè. Ïîýòîìó äàæå ïðîñòîé øèôð, ïðèìåíåííûé ê ñîîáùåíèÿì ýòîãî ÿçûêà, ñòàíîâèòñÿ íåâñêðûâàåìûì.  êëàññè÷åñêîé ðàáîòå
Ê. Øåííîíà [17] ïîñòðîåíà ãëóáîêàÿ è èçÿùíàÿ òåîðèÿ øèôðîâ ñ
ñåêðåòíûì êëþ÷îì è, â ÷àñòíîñòè, ïðåäëîæåíà ¾ïðàâèëüíàÿ¿ êîëè÷åñòâåííàÿ ìåðà èçáûòî÷íîñòè. Ìû êðàòêî êîñíåìñÿ ýòèõ âîïðîñîâ â
ãëàâå 3, à â ãëàâå 4 áóäóò îïèñàíû ñîâðåìåííûå øèôðû ñ ñåêðåòíûì
êëþ÷îì.
Îïèñàííàÿ â ïðèâåäåííûõ ïðèìåðàõ àòàêà íàçûâàåòñÿ àòàêîé ïî
øèôðîòåêñòó. Íî ÷àñòî íà øèôð ìîæåò áûòü ïðîâåäåíà àòàêà ïî
èçâåñòíîìó òåêñòó. Ýòî ïðîèñõîäèò, åñëè Åâà ïîëó÷àåò â ñâîå ðàñïîðÿæåíèå êàêèå-ëèáî îòêðûòûå òåêñòû, ñîîòâåòñòâóþùèå ðàííåå ïåðåäàííûì çàøèôðîâàííûì. Ñîïîñòàâëÿÿ ïàðû ¾òåêñò øèôðîòåêñò¿,
Åâà ïûòàåòñÿ óçíàòü ñåêðåòíûé êëþ÷, ÷òîáû ñ åãî ïîìîùüþ äåøèôðîâàòü âñå ïîñëåäóþùèå ñîîáùåíèÿ îò Àëèñû ê Áîáó.
Ìîæíî ïðåäñòàâèòü ñåáå è áîëåå ¾ñåðüåçíóþ¿ àòàêó
àòàêó ïî
âûáðàííîìó òåêñòó, êîãäà ïðîòèâíèê ïîëüçóåòñÿ íå òîëüêî ïðåäîñòàâëåííûìè åìó ïàðàìè ¾òåêñò øèôðîòåêñò¿, íî ìîæåò è ñàì ôîðìèðîâàòü íóæíûå åìó òåêñòû è øèôðîâàòü èõ ñ ïîìîùüþ òîãî êëþ÷à,
êîòîðûé îí õî÷åò óçíàòü. Íàïðèìåð, âî âðåìÿ Âòîðîé ìèðîâîé âîéíû àìåðèêàíöû, ïîäêóïèâ îõðàíó, âûêðàëè øèôðîâàëüíóþ ìàøèíó â
ÿïîíñêîì ïîñîëüñòâå íà äâà äíÿ è èìåëè âîçìîæíîñòü ïîäàâàòü åé íà
âõîä ðàçëè÷íûå òåêñòû è ïîëó÷àòü ñîîòâåòñòâóþùèå øèôðîâêè. (Îíè
íå ìîãëè âçëîìàòü ìàøèíó ñ öåëüþ íåïîñðåäñòâåííîãî îïðåäåëåíèÿ
çàëîæåííîãî â íåå ñåêðåòíîãî êëþ÷à, òàê êàê ýòî áûëî áû çàìå÷åíî è
ïîâëåêëî áû çà ñîáîé ñìåíó âñåõ êëþ÷åé.)
Ìîæåò ïîêàçàòüñÿ, ÷òî àòàêè ïî èçâåñòíîìó è âûáðàííîìó òåêñòó
Ãëàâà 1. Ââåäåíèå
11
íàäóìàíû è äàëåêî íå âñåãäà âîçìîæíû. Îò÷àñòè ýòî òàê. Íî ðàçðàáîò÷èêè ñîâðåìåííûõ êðèïòîñèñòåì ñòðåìÿòñÿ ñäåëàòü èõ íåóÿçâèìûìè äàæå è ïî îòíîøåíèþ ê àòàêàì ïî âûáðàííîìó òåêñòó, è íà ýòîì
ïóòè äîñòèãíóòû çíà÷èòåëüíûå óñïåõè. Èíîãäà ñ÷èòàåòñÿ, ÷òî áîëåå
íàäåæíî èñïîëüçîâàòü øèôð, ïðîòèâîñòîÿùèé àòàêå ïî âûáðàííîìó
òåêñòó, ÷åì îðãàíèçàöèîííî îáåñïå÷èâàòü íåîñóùåñòâèìîñòü òàêîé
àòàêè, õîòÿ íàèáîëåå îñòîðîæíûå ïîëüçîâàòåëè äåëàþò è òî, è äðóãîå.
Èòàê, ìû ïîçíàêîìèëèñü ñ îñíîâíûìè ãåðîÿìè êðèïòîãðàôèè
Àëèñîé, Áîáîì è Åâîé è ñ âàæíûìè ïîíÿòèÿìè ýòîé íàóêè
øèôðîì, êëþ÷îì, àòàêîé, îòêðûòûì è çàùèùåííûì êàíàëîì. Çàìåòèì,
÷òî ñ ïîñëåäíèì ïîíÿòèåì ñâÿçàí îäèí èíòðèãóþùèé ôàêò
âîçìîæíî ïîñòðîåíèå íàäåæíûõ êðèïòîñèñòåì áåç çàùèùåííîãî êàíàëà!  òàêèõ ñèñòåìàõ Àëèñà è Áîá âû÷èñëÿþò ñåêðåòíûé êëþ÷ òàê,
÷òî Åâà íå ìîæåò ýòîãî ñäåëàòü. Ýòî îòêðûòèå áûëî ñäåëàíî â îñíîâîïîëàãàþùèõ ðàáîòàõ Äèôôè, Õåëëìàíà è Ìåðêëÿ (ñì., íàïðèìåð,
[18]) â 1976 ãîäó è îòêðûëî íîâóþ ýðó â ñîâðåìåííîé êðèïòîãðàôèè.
Áîëüøàÿ ÷àñòü ýòîé êíèãè áóäåò ñâÿçàíà èìåííî ñ òàêèìè ñèñòåìàìè,
íàçûâàåìûìè ñõåìàìè ñ îòêðûòûì, èëè íåñèììåòðè÷íûì êëþ÷îì.
Çàäà÷è è óïðàæíåíèÿ
12
Çàäà÷è è óïðàæíåíèÿ
1.1. Îïðåäåëèòü êëþ÷è øèôðà Öåçàðÿ, åñëè èçâåñòíû ñëåäóþùèå
ïàðû îòêðûòûé òåêñò øèôðîòåêñò:
à. ÀÏÅËÜÑÈÍ
á. ÀÁÐÈÊÎÑ
ÑÀÖÜÍÂÙÞ,
ÛÜËÃÅÉÌ.
Ñì. îòâåò.
1.2. Ðàñøèôðîâàòü ñëåäóþùèå ñîîáùåíèÿ, çàøèôðîâàííûå øèôðîì Öåçàðÿ ñ íåèçâåñòíûì êëþ÷îì k , 0 < k < 32:
à. ÔÕÍÇÊ×,
á. ÖÙÅÁÔ.
Ñì. îòâåò.
Ãëàâà 2.
2.1.
ÊÐÈÏÒÎÑÈÑÒÅÌÛ Ñ ÎÒÊÐÛÒÛÌ
ÊËÞ×ÎÌ
Ïðåäûñòîðèÿ è îñíîâíûå èäåè
Ðàññìîòðèì òðè çàäà÷è, ðåøåíèå êîòîðûõ ïîìîæåò íàì ëó÷øå ïîíÿòü
èäåè è ìåòîäû êðèïòîãðàôèè ñ îòêðûòûì êëþ÷îì. Âñå ýòè çàäà÷è
èìåþò âàæíîå ïðàêòè÷åñêîå çíà÷åíèå.
Ïåðâàÿ çàäà÷à
õðàíåíèå ïàðîëåé â êîìïüþòåðå. Ìû çíàåì, ÷òî
êàæäûé ïîëüçîâàòåëü â ñåòè èìååò ñâîé ñåêðåòíûé ïàðîëü. Ïðè âõîäå
â ñåòü ïîëüçîâàòåëü óêàçûâàåò ñâîå èìÿ (íåñåêðåòíîå) è çàòåì ââîäèò ïàðîëü. Ïðîáëåìà ñîñòîèò â ñëåäóþùåì: åñëè õðàíèòü ïàðîëü íà
äèñêå êîìïüþòåðà, òî Åâà ìîæåò ïðî÷èòàòü åãî, à çàòåì èñïîëüçîâàòü
äëÿ íåñàíêöèîíèðîâàííîãî äîñòóïà (îñîáåííî ëåãêî ýòî ñäåëàòü, åñëè Åâà ðàáîòàåò ñèñòåìíûì àäìèíèñòðàòîðîì ýòîé ñåòè). Ïîýòîìó
íåîáõîäèìî îðãàíèçîâàòü õðàíåíèå ïàðîëåé â êîìïüþòåðå òàê, ÷òîáû
òàêîé ¾âçëîì¿ áûë íåâîçìîæåí.
Âòîðàÿ çàäà÷à âîçíèêëà ñ ïîÿâëåíèåì ðàäèîëîêàòîðîâ è ñèñòåìû ÏÂÎ. Ïðè ïåðåñå÷åíèè ñàìîëåòîì ãðàíèöû ðàäèîëîêàòîð ñïðàøèâàåò ïàðîëü. Åñëè ïàðîëü âåðíûé, òî ñàìîëåò ¾ñâîé¿, â ïðîòèâíîì
ñëó÷àå
¾÷óæîé¿. Çäåñü âîçíèêàåò òàêàÿ ïðîáëåìà: òàê êàê ïàðîëü
äîëæåí ïåðåäàâàòüñÿ ïî îòêðûòîìó êàíàëó (âîçäóøíîé ñðåäå), òî ïðîòèâíèê ìîæåò ïðîñëóøèâàòü âñå ïåðåãîâîðû è óçíàâàòü ïðàâèëüíûé
ïàðîëü. Çàòåì ¾÷óæîé¿ ñàìîëåò â ñëó÷àå çàïðîñà ïîâòîðèò ïåðåõâà÷åííûé ðàíåå ¾ïðàâèëüíûé¿ ïàðîëü â êà÷åñòâå îòâåòà ëîêàòîðó è áóäåò ïðîïóùåí.
Òðåòüÿ çàäà÷à ïîõîæà íà ïðåäûäóùóþ è âîçíèêàåò â êîìïüþòåðíûõ ñåòÿõ ñ óäàëåííûì äîñòóïîì, íàïðèìåð, ïðè âçàèìîäåéñòâèè
Ãëàâà 2. Êðèïòîñèñòåìû ñ îòêðûòûì êëþ÷îì
14
áàíêà è êëèåíòà. Îáû÷íî â íà÷àëå ñåàíñà áàíê çàïðàøèâàåò ó êëèåíòà
èìÿ, à çàòåì ñåêðåòíûé ïàðîëü, íî Åâà ìîæåò óçíàòü ïàðîëü, òàê êàê
ëèíèÿ ñâÿçè îòêðûòàÿ.
Ñåãîäíÿ âñå ýòè ïðîáëåìû ðåøàþòñÿ ñ èñïîëüçîâàíèåì êðèïòîãðàôè÷åñêèõ ìåòîäîâ. Ðåøåíèå âñåõ ýòèõ çàäà÷ îñíîâàíî íà âàæíîì
ïîíÿòèè îäíîñòîðîííåé ôóíêöèè (one-way function).
Îïðåäåëåíèå 2.1. Ïóñòü äàíà ôóíêöèÿ
y = f (x),
(2.1)
îïðåäåëåííàÿ íà êîíå÷íîì ìíîæåñòâå X (x ∈ X ), äëÿ êîòîðîé ñóùåñòâóåò îáðàòíàÿ ôóíêöèÿ
x = f −1 (y).
(2.2)
Ôóíêöèÿ íàçûâàåòñÿ îäíîñòîðîííåé, åñëè âû÷èñëåíèå ïî ôîðìóëå
ïðîñòàÿ çàäà÷à, òðåáóþùàÿ íåìíîãî âðåìåíè, à âû÷èñëåíèå
(2.1)
ïî (2.2)
çàäà÷à ñëîæíàÿ, òðåáóþùàÿ ïðèâëå÷åíèÿ ìàññû âû÷èñëèòåëüíûõ ðåñóðñîâ, íàïðèìåð, 106 1010 ëåò ðàáîòû ìîùíîãî ñóïåðêîìïüþòåðà.
Äàííîå îïðåäåëåíèå, áåçóñëîâíî, íåôîðìàëüíî. Ñòðîãîå îïðåäåëåíèå îäíîñòîðîííåé ôóíêöèè ìîæåò áûòü íàéäåíî â [22, 23], íî äëÿ
íàøèõ öåëåé äîñòàòî÷íî è âûøåïðèâåäåííîãî.
 êà÷åñòâå ïðèìåðà îäíîñòîðîííåé ôóíêöèè ðàññìîòðèì ñëåäóþùóþ:
y = ax modp,
(2.3)
ãäå p
íåêîòîðîå ïðîñòîå ÷èñëî (ò.å. òàêîå, êîòîðîå äåëèòñÿ áåç
îñòàòêà òîëüêî íà ñåáÿ è íà åäèíèöó), à x
öåëîå ÷èñëî èç ìíîæåñòâà {1, 2, . . . , p − 1}. Îáðàòíàÿ ôóíêöèÿ îáîçíà÷àåòñÿ
x = loga y mod p
(2.4)
Ãëàâà 2. Êðèïòîñèñòåìû ñ îòêðûòûì êëþ÷îì
15
è íàçûâàåòñÿ äèñêðåòíûì ëîãàðèôìîì.
Äëÿ òîãî ÷òîáû îáåñïå÷èòü òðóäíîñòü âû÷èñëåíèÿ ïî (2.4) ïðè
èñïîëüçîâàíèè ëó÷øèõ ñîâðåìåííûõ êîìïüþòåðîâ, â íàñòîÿùåå âðåìÿ èñïîëüçóþòñÿ ÷èñëà ðàçìåðîì áîëåå 512 áèò. Íà ïðàêòèêå ÷àñòî
ïðèìåíÿþòñÿ è äðóãèå îäíîñòîðîííèå ôóíêöèè, íàïðèìåð, òàê íàçûâàåìûå õåø-ôóíêöèè, îïåðèðóþùèå ñ ñóùåñòâåííî áîëåå êîðîòêèìè
÷èñëàìè ïîðÿäêà 60 120 áèò (îíè áóäóò ðàññìîòðåíû â ãëàâå 4).
Ñíà÷àëà ìû ïîêàæåì, ÷òî âû÷èñëåíèå ïî (2.3) ìîæåò áûòü âûïîëíåíî äîñòàòî÷íî áûñòðî. Íà÷íåì ñ ïðèìåðà âû÷èñëåíèÿ ÷èñëà
a16 modp. Ìû ìîæåì çàïèñàòü
2 2
16
2 2
a modp =
a
modp,
ò.å.çíà÷åíèå äàííîé ôóíêöèè âû÷èñëÿåòñÿ âñåãî çà 4 îïåðàöèè óìíîæåíèÿ âìåñòî 15 ïðè ¾íàèâíîì¿ âàðèàíòå a·a·. . .·a. Íà ýòîì îñíîâàí
îáùèé àëãîðèòì.
Äëÿ îïèñàíèÿ àëãîðèòìà ââåäåì âåëè÷èíó t = log2 x
öåëóþ
÷àñòü log2 x (äàëåå âñå ëîãàðèôìû áóäóò äâîè÷íûå, ïîýòîìó â äàëüíåéøåì ìû íå áóäåì óêàçûâàòü îñíîâàíèå 2). Âû÷èñëÿåì ÷èñëà ðÿäà
a,
a2 ,
a4 ,
a8 ,
...,
a2
t
(mod p).
(2.5)
 ðÿäó (2.5) êàæäîå ÷èñëî ïîëó÷àåòñÿ ïóòåì óìíîæåíèÿ ïðåäûäóùåãî
÷èñëà ñàìîãî íà ñåáÿ ïî ìîäóëþ p. Çàïèøåì ïîêàçàòåëü ñòåïåíè x â
äâîè÷íîé ñèñòåìå ñ÷èñëåíèÿ:
x = (xt xt−1 . . . x1 x0 )2 .
Òîãäà ÷èñëî y = ax modp ìîæåò áûòü âû÷èñëåíî êàê
y=
t
Y
i=0
i
axi ·2 mod p
(2.6)
Ãëàâà 2. Êðèïòîñèñòåìû ñ îòêðûòûì êëþ÷îì
16
(âñå âû÷èñëåíèÿ ïðîâîäÿòñÿ ïî ìîäóëþ p).
Ï ð è ì å ð 2.1. Ïóñòü òðåáóåòñÿ âû÷èñëèòü 3100 mod 7. Èìååì t =
log 100 = 6. Âû÷èñëÿåì ÷èñëà ðÿäà (2.5):
a a2 a4 a8 a16 a32 a64
3 2 4 2 4
2
4
(2.7)
Çàïèñûâàåì ïîêàçàòåëü â äâîè÷íîé ñèñòåìå ñ÷èñëåíèÿ:
100 = (1100100)2
è ïðîâîäèì âû÷èñëåíèÿ ïî ôîðìóëå (2.6):
a64 a32
a4
4 · 2 · 1 · 1 · 4 · 1 · 1 = 4
(2.8)
Íàì ïîòðåáîâàëîñü âñåãî 8 îïåðàöèé óìíîæåíèÿ (6 äëÿ âû÷èñëåíèÿ
ðÿäà (2.7) è 2 äëÿ (2.8)).
t
u
 îáùåì ñëó÷àå ñïðàâåäëèâî ñëåäóþùåå
Óòâåðæäåíèå 2.1 (î ñëîæíîñòè âû÷èñëåíèé (2.3)). Êîëè÷åñòâî
îïåðàöèé óìíîæåíèÿ ïðè âû÷èñëåíèè (2.3) ïî îïèñàííîìó ìåòîäó íå
ïðåâîñõîäèò 2 log x.
Ä î ê à ç à ò å ë ü ñ ò â î . Äëÿ âû÷èñëåíèÿ ÷èñåë ðÿäà (2.5) òðåáóåòñÿ t óìíîæåíèé, äëÿ âû÷èñëåíèÿ y ïî
(2.6) íå áîëåå, ÷åì tóìíîæå
íèé (ñì. ïðèìåð 2.1). Èç óñëîâèÿ t = log x , ó÷èòûâàÿ, ÷òî log x ≤
log x, äåëàåì âûâîä î ñïðàâåäëèâîñòè äîêàçûâàåìîãî óòâåðæäåíèÿ.
t
u
Ç à ì å ÷ à í è å. Êàê áóäåò ïîêàçàíî â äàëüíåéøåì, ïðè âîçâåäåíèè â
ñòåïåíü ïî ìîäóëþ p èìååò ñìûñë èñïîëüçîâàòü òîëüêî ïîêàçàòåëè x < p.
 ýòîì ñëó÷àå ìû ìîæåì ñêàçàòü, ÷òî êîëè÷åñòâî îïåðàöèé óìíîæåíèÿ ïðè
âû÷èñëåíèè (2.3) íå ïðåâîñõîäèò 2 log p.
Ãëàâà 2. Êðèïòîñèñòåìû ñ îòêðûòûì êëþ÷îì
17
Âàæíî îòìåòèòü, ÷òî ñòîëü æå ýôôåêòèâíûå àëãîðèòìû âû÷èñëåíèÿ îáðàòíîé ôóíêöèè (2.4) íåèçâåñòíû. Òàê, îäèí èç ìåòîäîâ âû÷èñëåíèÿ (2.4), íàçûâàåìûé ¾øàã ìëàäåíöà, øàã âåëèêàíà¿ (ñì. [12]),
√
òðåáóåò ïîðÿäêà 2 p îïåðàöèé. Ïîêàæåì, ÷òî ïðè áîëüøèõ p ôóíêöèÿ (2.3) äåéñòâèòåëüíî îäíîñòîðîííÿÿ, åñëè äëÿ âû÷èñëåíèÿ îáðàòíîé ôóíêöèè èñïîëüçóåòñÿ ìåòîä ¾øàã ìëàäåíöà, øàã âåëèêàíà¿. Ïîëó÷àåì ñëåäóþùèé ðåçóëüòàò (òàáë. 2.1).
Ò à á ë è ö à 2.1. Êîëè÷åñòâî óìíîæåíèé äëÿ
âû÷èñëåíèÿ ïðÿìîé è îáðàòíîé
ôóíêöèè
Êîëè÷åñòâî äåñÿòè÷íûõ çíàêîâ â
çàïèñè p
Âû÷èñëåíèå (2.3)
(2 log p
óìíîæåíèé)
Âû÷èñëåíèå (2.4)
√
(2 p óìíîæåíèé)
12
60
90
2 · 40 = 80
2 · 200 = 400
2 · 300 = 600
2 · 106
2 · 1030
2 · 1045
Ìû âèäèì, ÷òî åñëè èñïîëüçîâàòü ìîäóëè, ñîñòîÿùèå èç 50 100
äåñÿòè÷íûõ öèôð, òî ¾ïðÿìàÿ¿ ôóíêöèÿ âû÷èñëÿåòñÿ áûñòðî, à îáðàòíàÿ ïðàêòè÷åñêè íå âû÷èñëèìà. Ðàññìîòðèì, íàïðèìåð, ñóïåðêîìïüþòåð, êîòîðûé óìíîæàåò äâà 90-çíà÷íûõ ÷èñëà çà 10 −14 ñåê. (äëÿ
ñîâðåìåííûõ êîìïüþòåðîâ ýòî ïîêà íå äîñòóïíî). Äëÿ âû÷èñëåíèÿ
(2.3) òàêîìó êîìïüþòåðó ïîòðåáóåòñÿ
Tâû÷.ïð. = 600 · 10−14 = 6 · 10−12 ñåê.,
à äëÿ âû÷èñëåíèÿ (2.4)
Tâû÷.îáð. = 1045 · 10−14 = 1031 ñåê.,
ò.å. áîëåå 10 22 ëåò. Ìû âèäèì, ÷òî âû÷èñëåíèå îáðàòíûõ ôóíêöèé
ïðàêòè÷åñêè íåâîçìîæíî ïðè äëèíå ÷èñåë ïîðÿäêà 90 äåñÿòè÷íûõ
Ãëàâà 2. Êðèïòîñèñòåìû ñ îòêðûòûì êëþ÷îì
18
öèôð, è èñïîëüçîâàíèå ïàðàëëåëüíûõ âû÷èñëåíèé è êîìïüþòåðíûõ
ñåòåé ñóùåñòâåííî íå ìåíÿåò ñèòóàöèþ. Â ðàññìîòðåííîì ïðèìåðå
√
ìû ïðåäïîëàãàëè, ÷òî îáðàòíàÿ ôóíêöèÿ âû÷èñëÿåòñÿ çà 2 p îïåðàöèé.  íàñòîÿùåå âðåìÿ èçâåñòíû è áîëåå ¾áûñòðûå¿ ìåòîäû âû÷èñëåíèÿ äèñêðåòíîãî ëîãàðèôìà, îäíàêî îáùàÿ êàðòèíà òà æå êîëè÷åñòâî òðåáóåìûõ â íèõ îïåðàöèé ìíîãî áîëüøå 2 log p. Òàêèì îáðàçîì,
ìîæíî óòâåðæäàòü, ÷òî ôóíêöèÿ (2.3) äåéñòâèòåëüíî îäíîñòîðîííÿÿ,
íî ñ îãîâîðêîé. Íèêåì íå äîêàçàíî, ÷òî îáðàòíàÿ ôóíêöèÿ (2.4) íå
ìîæåò áûòü âû÷èñëåíà ñòîëü æå áûñòðî, êàê è ¾ïðÿìàÿ¿.
Èñïîëüçóåì îäíîñòîðîííþþ ôóíêöèþ (2.3) äëÿ ðåøåíèÿ âñåõ òðåõ
çàäà÷, îïèñàííûõ â íà÷àëå äàííîãî ðàçäåëà, íå çàáûâàÿ, îäíàêî, ÷òî
òî÷íî òàê æå ìîæåò áûòü èñïîëüçîâàíà è ëþáàÿ äðóãàÿ îäíîñòîðîííÿÿ ôóíêöèÿ.
Íà÷íåì ñ õðàíåíèÿ ïàðîëåé â ïàìÿòè êîìïüþòåðà. Ðåøåíèå çàäà÷è îñíîâàíî íà òîì, ÷òî ïàðîëè âîîáùå íå õðàíÿòñÿ! Òî÷íåå, ïðè ðåãèñòðàöèè â ñåòè ïîëüçîâàòåëü íàáèðàåò ñâîå èìÿ è ïàðîëü; ïóñòü, íàïðèìåð, åãî èìÿ
¾ôðóêò¿, à ïàðîëü
¾àáðèêîñ¿. Êîìïüþòåð ðàññìàòðèâàåò ñëîâî ¾àáðèêîñ¿ êàê äâîè÷íóþ çàïèñü ÷èñëà x è âû÷èñäâà íåñåêðåòíûå ÷èñëà, âîçìîæíî äàæå, âñåì
ëÿåò (2.3), ãäå a è p
èçâåñòíûå. Ïîñëå ýòîãî â ïàìÿòè êîìïüþòåðà çàâîäèòñÿ ïàðà (èìÿ,
y ), ãäå y âû÷èñëåíî ïî (2.3) ïðè x = ïàðîëü. Ïðè âñåõ äàëüíåéøèõ
âõîäàõ ýòîãî ïîëüçîâàòåëÿ ïîñëå ââîäà ïàðû (¾ôðóêò¿, ¾àáðèêîñ¿),
êîìïüþòåð âû÷èñëÿåò ïî (2.3) íîâîå çíà÷åíèå yíîâ ñ x =¾àáðèêîñ¿
è ñðàâíèâàåò ñ õðàíÿùèìñÿ â ïàìÿòè ðàíåå âû÷èñëåííûì çíà÷åíèåì
y . Åñëè yíîâ ñîâïàäàåò ñ õðàíÿùèìñÿ â ïàìÿòè y , ñîîòâåòñòâóþùèì
äàííîìó èìåíè, òî ýòî çàêîííûé ïîëüçîâàòåëü.  ïðîòèâíîì ñëó÷àå
ýòî Åâà.
Åâà ìîãëà áû ïîïûòàòüñÿ íàéòè x ïî y . Îäíàêî ìû âèäåëè, ÷òî
óæå ïðè 90-çíà÷íûõ ÷èñëàõ äëÿ ýòîãî ïîòðåáóåòñÿ áîëåå ÷åì 10 22 ëåò.
Òàêèì îáðàçîì, ïðåäñòàâëåííàÿ ñèñòåìà õðàíåíèÿ ïàðîëÿ âåñüìà íàäåæíà è â íàñòîÿùåå âðåìÿ èñïîëüçóåòñÿ âî ìíîãèõ ðåàëüíûõ îïåðàöèîííûõ ñèñòåìàõ.
Ãëàâà 2. Êðèïòîñèñòåìû ñ îòêðûòûì êëþ÷îì
19
Ðàññìîòðèì ðåøåíèå âòîðîé çàäà÷è (ÏÂÎ è ñàìîëåò). Ìîæíî èñïîëüçîâàòü ñëåäóþùèé ìåòîä. Êàæäîìó ¾ñâîåìó¿ ñàìîëåòó ïðèñâàèâàåòñÿ ñåêðåòíîå èìÿ, èçâåñòíîå ñèñòåìå ÏÂÎ è ëåò÷èêó, òî÷íåå,
áîðòîâîìó êîìïüþòåðó. Ïóñòü, íàïðèìåð, îäíîìó èç ñàìîëåòîâ ïðèñâîåíî ñåêðåòíîå èìÿ ÑÎÊÎË, è ýòîò ñàìîëåò ïðèáëèæàåòñÿ ê ãðàíèöå 01 ôåâðàëÿ 2005 ãîäà â 12 ÷àñ.45 ìèí. Òîãäà ïåðåä ïðèáëèæåíèåì
ê ãðàíèöå áîðòîâîé êîìïüþòåð ñàìîëåòà ôîðìèðóåò ñëîâî
ÑÎÊÎË
(èìÿ
05 02
01
12
45
ãîä ìåñÿö äåíü ÷àñû ìèíóòû).
Äðóãèìè ñëîâàìè, êîìïüþòåð íà ñàìîëåòå è ñòàíöèÿ ÏÂÎ ïðèáàâëÿþò ê ñåêðåòíîìó ñëîâó ñâåäåíèÿ î òåêóùåì âðåìåíè è, ðàññìàòðèâàÿ ïîëó÷åííîå ñëîâî êàê ÷èñëî x, âû÷èñëÿþò y = ax mod p, ãäå
a è p íå ñåêðåòíû. Çàòåì ñàìîëåò ñîîáùàåò ÷èñëî y ñòàíöèè ÏÂÎ.
Ñòàíöèÿ ñðàâíèâàåò âû÷èñëåííîå åþ ÷èñëî y ñ ïîëó÷åííûì îò ñàìîëåòà. Åñëè âû÷èñëåííîå è ïîëó÷åííîå çíà÷åíèÿ ñîâïàëè, òî ñàìîëåò
ïðèçíàåòñÿ êàê ¾ñâîé¿.
Ïðîòèâíèê íå ìîæåò âçëîìàòü ýòó ñèñòåìó. Äåéñòâèòåëüíî, ñ îäíîé ñòîðîíû, îí íå çíàåò ñåêðåòíîãî ñëîâà ÑÎÊÎË è íå ìîæåò íàéòè
åãî ïî y , òàê êàê âû÷èñëåíèå x ïî y çàíèìàåò, ñêàæåì, 10 22 ëåò. Ñ
äðóãîé ñòîðîíû, îí íå ìîæåò ïðîñòî ñêîïèðîâàòü y è èñïîëüçîâàòü
åãî â êà÷åñòâå îòâåòà â áóäóùåì, òàê êàê âðåìÿ ïåðåñå÷åíèÿ ãðàíèöû
íèêîãäà íå ïîâòîðÿåòñÿ è ïîñëåäóþùèå çíà÷åíèÿ y áóäóò îòëè÷àòüñÿ
îò ïåðâîíà÷àëüíîãî.
Ðàññìîòðåííûé âàðèàíò ðåøåíèÿ ¾çàäà÷è ÏÂο òðåáóåò òî÷íîé
ñèíõðîíèçàöèè ÷àñîâ â ñàìîëåòå è â ëîêàòîðå. Ýòà ïðîáëåìà äîñòàòî÷íî ëåãêî ðåøàåòñÿ. Íàïðèìåð, ñëóæáà íàâèãàöèè ïîñòîÿííî ïåðåäàåò ìåòêè âðåìåíè â îòêðûòîì âèäå (âðåìÿ íå ñåêðåòíî), è âñå ñàìîëåòû è ëîêàòîðû èñïîëüçóþò ýòè ìåòêè äëÿ ñèíõðîíèçàöèè ñâîèõ
÷àñîâ. Íî åñòü áîëåå òîíêèå ïðîáëåìû. Ìåòêà âðåìåíè äîáàâëÿåòñÿ â
ñëîâî x äëÿ òîãî, ÷òîáû âñå âû÷èñëÿåìûå çíà÷åíèÿ y áûëè ðàçëè÷íû è ïðîòèâíèê íå ìîã èõ ïîâòîðíî èñïîëüçîâàòü. Îäíàêî ïðîòèâíèê
Ãëàâà 2. Êðèïòîñèñòåìû ñ îòêðûòûì êëþ÷îì
20
ìîæåò ïîïûòàòüñÿ ìãíîâåííî ïîâòîðèòü y â ïðåäåëàõ òåêóùåé ìèíóòû. Êàê ïðåäîòâðàòèòü ýòó âîçìîæíîñòü? Ýòî ïåðâûé âîïðîñ. Äðóãîå
çàòðóäíåíèå âîçíèêàåò â ñèòóàöèè, êîãäà ñàìîëåò ïîñûëàåò ÷èñëî y â
êîíöå 45-é ìèíóòû, à ëîêàòîð ïðèíèìàåò åãî â íà÷àëå 46-é. Ìû ïðåäîñòàâëÿåì ÷èòàòåëþ âîçìîæíîñòü ñàìîñòîÿòåëüíî ïðåäëîæèòü âàðèàíò
ðåøåíèÿ ýòèõ ïðîáëåì.
Äðóãîé ñïîñîá ðåøåíèÿ ¾çàäà÷è ÏÂο âîçìîæåí, åñëè ìû áóäåì
èñïîëüçîâàòü äîïîëíèòåëüíûé îòêðûòûé êàíàë ïåðåäà÷è äàííûõ îò
ëîêàòîðà ê ñàìîëåòó. Êàê è âûøå, êàæäûé ¾ñâîé¿ ñàìîëåò è ëîêàòîð
çíàþò ñåêðåòíîå ñëîâî (òèïà ÑÎÊÎË), êîòîðîå íå çàìåíÿåòñÿ. Îáíàðóæèâ öåëü, ëîêàòîð ïîñûëàåò åé ñëó÷àéíî ñãåíåðèðîâàííîå ÷èñëî
a (¾âûçîâ¿). Ñàìîëåò âû÷èñëÿåò y = ax mod p, ãäå x
ñåêðåòíîå
ñëîâî (¾ÑÎÊÎË¿), è ñîîáùàåò ÷èñëî y ëîêàòîðó. Ëîêàòîð âîñïðîèçâîäèò òå æå âû÷èñëåíèÿ è ñðàâíèâàåò âû÷èñëåííîå y è ïðèíÿòîå. Â
ýòîé ñõåìå íå íóæíî ñèíõðîíèçèðîâàòü ÷àñû, íî, êàê è ðàíåå, ïðîòèâíèê íå ìîæåò ïîâòîðèòü ÷èñëî y , òàê êàê ëîêàòîð âñÿêèé ðàç ïîñûëàåò ðàçíûå âûçîâû (a). Èíòåðåñíî, ÷òî ýòà çàäà÷à, ïî-âèäèìîìó, áûëà
èñòîðè÷åñêè ïåðâîé, ïðè ðåøåíèè êîòîðîé èñïîëüçîâàëèñü îäíîñòîðîííèå ôóíêöèè.
Òðåòüÿ çàäà÷à ðåøàåòñÿ ñîâåðøåííî àíàëîãè÷íî, è îáà ðàññìîòðåííûõ ìåòîäà ôîðìèðîâàíèÿ ïàðîëÿ ïðèìåíèìû è èñïîëüçóþòñÿ â
ðåàëüíûõ ñåòåâûõ ïðîòîêîëàõ.
Ãëàâà 2. Êðèïòîñèñòåìû ñ îòêðûòûì êëþ÷îì
2.2.
Ïåðâàÿ ñèñòåìà ñ îòêðûòûì êëþ÷îì
Äèôôè Õåëëìàíà
21
ñèñòåìà
Ýòà êðèïòîñèñòåìà áûëà îòêðûòà â ñåðåäèíå 70-õ ãîäîâ àìåðèêàíñêèìè ó÷åíûìè Äèôôè (Whit eld Dif e) è Õåëëìàíîì (Martin Hellman)
è ïðèâåëà ê íàñòîÿùåé ðåâîëþöèè â êðèïòîãðàôèè è åå ïðàêòè÷åñêèõ ïðèìåíåíèÿõ. Ýòî ïåðâàÿ ñèñòåìà, êîòîðàÿ ïîçâîëÿëà çàùèùàòü
èíôîðìàöèþ áåç èñïîëüçîâàíèÿ ñåêðåòíûõ êëþ÷åé, ïåðåäàâàåìûõ ïî
çàùèùåííûì êàíàëàì. Äëÿ òîãî ÷òîáû ïðîäåìîíñòðèðîâàòü îäíó èç
ñõåì ïðèìåíåíèÿ òàêèõ ñèñòåì, ðàññìîòðèì ñåòü ñâÿçè ñ N ïîëüçîâàòåëÿìè, ãäå N
áîëüøîå ÷èñëî. Ïóñòü ìû õîòèì îðãàíèçîâàòü
ñåêðåòíóþ ñâÿçü äëÿ êàæäîé ïàðû èç íèõ. Åñëè ìû áóäåì èñïîëüçîâàòü îáû÷íóþ ñèñòåìó ðàñïðåäåëåíèÿ ñåêðåòíûõ êëþ÷åé, òî êàæäàÿ
ïàðà àáîíåíòîâ äîëæíà áûòü ñíàáæåíà ñâîèì ñåêðåòíûì êëþ÷îì, ò.å.
2
âñåãî ïîòðåáóåòñÿ CN2 = N (N2−1) ≈ N2 êëþ÷åé.
Åñëè àáîíåíòîâ 100, òî òðåáóåòñÿ 5000 êëþ÷åé, åñëè æå àáîíåíòîâ 10 4 , òî êëþ÷åé äîëæíî áûòü 5 · 107 . Ìû âèäèì, ÷òî ïðè áîëüøîì
÷èñëå àáîíåíòîâ ñèñòåìà ñíàáæåíèÿ èõ ñåêðåòíûìè êëþ÷àìè ñòàíîâèòñÿ î÷åíü ãðîìîçäêîé è äîðîãîñòîÿùåé.
Äèôôè è Õåëëìàí ðåøèëè ýòó ïðîáëåìó çà ñ÷åò îòêðûòîãî ðàñïðîñòðàíåíèÿ è âû÷èñëåíèÿ êëþ÷åé. Ïåðåéäåì ê îïèñàíèþ ïðåäëîæåííîé èìè ñèñòåìû.
Ïóñòü ñòðîèòñÿ ñèñòåìà ñâÿçè äëÿ àáîíåíòîâ A, B, C, . . . . Ó êàæäîãî àáîíåíòà åñòü ñâîÿ ñåêðåòíàÿ è îòêðûòàÿ èíôîðìàöèÿ. Äëÿ îðãàíèçàöèè ýòîé ñèñòåìû âûáèðàåòñÿ áîëüøîå ïðîñòîå ÷èñëî p è íåêîòîðîå ÷èñëî g , 1 < g < p − 1, òàêîå, ÷òî âñå ÷èñëà èç ìíîæåñòâà
{1, 2, · · · , p − 1} ìîãóò áûòü ïðåäñòàâëåíû êàê ðàçëè÷íûå ñòåïåíè
g mod p (èçâåñòíû ðàçëè÷íûå ïîäõîäû äëÿ íàõîæäåíèÿ òàêèõ ÷èñåë
g , îäèí èç íèõ áóäåò ïðåäñòàâëåí íèæå). ×èñëà p è g èçâåñòíû âñåì
àáîíåíòàì.
Àáîíåíòû âûáèðàþò áîëüøèå ÷èñëà XA , XB , XC , êîòîðûå õðà-
Ãëàâà 2. Êðèïòîñèñòåìû ñ îòêðûòûì êëþ÷îì
22
íÿò â ñåêðåòå (îáû÷íî òàêîé âûáîð ðåêîìåíäóåòñÿ ïðîâîäèòü ñëó÷àéíî, èñïîëüçóÿ äàò÷èêè ñëó÷àéíûõ ÷èñåë). Êàæäûé àáîíåíò âû÷èñëÿåò
ñîîòâåòñòâóþùåå ÷èñëî Y , êîòîðîå îòêðûòî ïåðåäàåòñÿ äðóãèì àáîíåíòàì,
YA = g XA mod p ,
YB = g XB mod p ,
(2.9)
XC
YC = g mod p .
 ðåçóëüòàòå ïîëó÷àåì ñëåäóþùóþ òàáëèöó.
Ò à á ë è ö à 2.2. Êëþ÷è ïîëüçîâàòåëåé â ñèñòåìå
Äèôôè Õåëëìàíà
Àáîíåíò
Ñåêðåòíûé êëþ÷
Îòêðûòûé êëþ÷
A
B
C
XA
XB
XC
YA
YB
YC
Äîïóñòèì, àáîíåíò A ðåøèë îðãàíèçîâàòü ñåàíñ ñâÿçè ñ B , ïðè
ýòîì îáîèì àáîíåíòàì äîñòóïíà îòêðûòàÿ èíôîðìàöèÿ èç òàáë. 2.2.
Àáîíåíò A ñîîáùàåò B ïî îòêðûòîìó êàíàëó, ÷òî îí õî÷åò ïåðåäàòü
åìó ñîîáùåíèå. Çàòåì àáîíåíò A âû÷èñëÿåò âåëè÷èíó
ZAB = (YB )XA mod p
(2.10)
(íèêòî äðóãîé êðîìå A ýòîãî ñäåëàòü íå ìîæåò, òàê êàê ÷èñëî XA
ñåêðåòíî).  ñâîþ î÷åðåäü, àáîíåíò B âû÷èñëÿåò ÷èñëî
ZBA = (YA )XB mod p.
(2.11)
Óòâåðæäåíèå 2.2. ZAB = ZBA .
Ä î ê à ç à ò å ë ü ñ ò â î . Äåéñòâèòåëüíî,
ZAB = (YB )XA mod p = (g XB )XA mod p =
= g XA XB modp = (YA )XB mod p = ZBA .
Ãëàâà 2. Êðèïòîñèñòåìû ñ îòêðûòûì êëþ÷îì
23
(Çäåñü ïåðâîå ðàâåíñòâî ñëåäóåò èç (2.10), âòîðîå è ÷åòâåðòîå
èç (2.11).)
(2.9), ïîñëåäíåå
èç
t
u
Îòìåòèì ãëàâíûå ñâîéñòâà ñèñòåìû:
1) àáîíåíòû A è B ïîëó÷èëè îäíî è òî æå ÷èñëî Z = ZAB = ZBA ,
êîòîðîå íå ïåðåäàâàëîñü ïî îòêðûòîé ëèíèè ñâÿçè;
2) Åâà íå çíàåò ñåêðåòíûõ ÷èñåë XA , XB , . . ., ïîýòîìó íå ìîæåò
âû÷èñëèòü ÷èñëî ZAB (âîîáùå ãîâîðÿ, îíà ìîãëà áû ïîïûòàòüñÿ íàéòè ñåêðåòíîå ÷èñëî XA ïî YA (ñì. (2.9)), îäíàêî ïðè
áîëüøèõ p ýòî ïðàêòè÷åñêè íåâîçìîæíî (òðåáóþòñÿ ìèëëèîíû
ëåò)).
Àáîíåíòû A è B ìîãóò èñïîëüçîâàòü ZAB â êà÷åñòâå ñåêðåòíîãî
êëþ÷à äëÿ øèôðîâàíèÿ è äåøèôðîâàíèÿ äàííûõ. Òàêèì æå îáðàçîì
ëþáàÿ ïàðà àáîíåíòîâ ìîæåò âû÷èñëèòü ñåêðåòíûé êëþ÷, èçâåñòíûé
òîëüêî èì.
Îñòàíîâèìñÿ òåïåðü íà óïîìÿíóòîé âûøå çàäà÷å âûáîðà ÷èñëà g .
Ïðè ïðîèçâîëüíî çàäàííîì p îíà ìîæåò îêàçàòüñÿ òðóäíîé çàäà÷åé,
ñâÿçàííîé ñ ðàçëîæåíèåì íà ïðîñòûå ìíîæèòåëè ÷èñëà p − 1. Äåëî â
òîì, ÷òî äëÿ îáåñïå÷åíèÿ âûñîêîé ñòîéêîñòè ðàññìîòðåííîé ñèñòåìû
÷èñëî p − 1 äîëæíî îáÿçàòåëüíî ñîäåðæàòü áîëüøîé ïðîñòîé ìíîæèòåëü (â ïðîòèâíîì ñëó÷àå àëãîðèòì Ïîëèãà Õåëëìàíà, îïèñàííûé,
íàïðèìåð, â [23], áûñòðî âû÷èñëÿåò äèñêðåòíûé ëîãàðèôì). Ïîýòîìó
÷àñòî ðåêîìåíäóþò èñïîëüçîâàòü ñëåäóþùèé ïîäõîä. Ïðîñòîå ÷èñëî
p âûáèðàåòñÿ òàêèì, ÷òîáû âûïîëíÿëîñü ðàâåíñòâî
p = 2q + 1,
ãäå q
òàêæå ïðîñòîå ÷èñëî. Òîãäà â êà÷åñòâå g ìîæíî âçÿòü ëþáîå
÷èñëî, äëÿ êîòîðîãî ñïðàâåäëèâû íåðàâåíñòâà
1 1,
n > 1.
(3.19)
(3.20)
(3.21)
Èõ äîêàçàòåëüñòâî ìîæåò áûòü íàéäåíî â [4].
Äëÿ íåçàâèñèìûõ ξ1 , ξ2 , . . . , ξn ñïðàâåäëèâû ðàâåíñòâà
−
h+
n = hn = h.
(Ïðîöåññ, ïîðîæäàþùèé íåçàâèñèìûå ñëó÷àéíûå âåëè÷èíû, íàçûâàåòñÿ ïðîöåññîì áåç ïàìÿòè.)
Ãëàâà 3. Òåîðåòè÷åñêàÿ ñòîéêîñòü êðèïòîñèñòåì
64
Òåîðåìà 3.5. Äëÿ ñòàöèîíàðíîãî ïðîöåññà ñóùåñòâóþò ïðåäåëû
−
limn→∞ h+
n è limn→∞ hn , ïðè÷åì ýòè ïðåäåëû ðàâíû.
Äîêàçàòåëüñòâî òåîðåìû ñì. â [4].
Îáîçíà÷èì îáùåå çíà÷åíèå ýòèõ ïðåäåëîâ ÷åðåç h∞ ,
−
h∞ = lim h+
n = lim hn .
n→∞
n→∞
(3.22)
Ïóñòü äàí àëôàâèò A = (a1 , a2 , . . . ar ). Ìû çíàåì, ÷òî
max H (ξ1 ) = log r
äëÿ ïðîöåññà áåç ïàìÿòè, ïîýòîìó, ïðèíèìàÿ âî âíèìàíèå (3.21) è
(3.22), ïîëó÷àåì max h∞ = log r , ïðè÷åì ìàêñèìóì äîñòèãàåòñÿ äëÿ
ïðîöåññîâ áåç ïàìÿòè, ó êîòîðûõ âñå áóêâû ïîðîæäàþòñÿ ñ ðàâíûìè
âåðîÿòíîñòÿìè 1/r . Åñòåñòâåííî ââåñòè âåëè÷èíó
R = log r − h∞ ,
(3.23)
íàçûâàåìóþ èçáûòî÷íîñòüþ (íà áóêâó ñîîáùåíèÿ). Íåôîðìàëüíî, ýòî
êàê áû íåèñïîëüçîâàííàÿ ÷àñòü àëôàâèòà. Èçáûòî÷íîñòü
êîëè÷åñòâåííàÿ ìåðà âçàèìíîé çàâèñèìîñòè ñèìâîëîâ è èõ ¾íåðàâíîâåðîÿòíîñòè¿. Îòìåòèì, ÷òî â ïðèìåðå èç ïåðâîé ãëàâû âî âòîðîì ñëó÷àå, êîãäà äàæå ïðîñòîé øèôð Öåçàðÿ íå âñêðûâàåì, èçáûòî÷íîñòü øèôðóåìîãî ñîîáùåíèÿ ðàâíà íóëþ, òàê êàê âñå äåñÿòü ñèìâîëîâ íåçàâèñèìû
è ðàâíîâåðîÿòíû, ò.å. h∞ = log 10 è R = 0.
3.5.
Ðàññòîÿíèå åäèíñòâåííîñòè øèôðà ñ ñåêðåòíûì
êëþ÷îì
Ðàññìîòðèì êðèïòîñèñòåìó ñ ñåêðåòíûì êëþ÷îì, ñõåìà êîòîðîé ïîêàçàíà íà ðèñ. 1.1 (ñòð. 7). Ïóñòü èñòî÷íèê ïîðîæäàåò ñîîáùåíèå
Ãëàâà 3. Òåîðåòè÷åñêàÿ ñòîéêîñòü êðèïòîñèñòåì
65
m̄ = m1 m2 . . . mn . Íàïðèìåð, mi ïðè êàæäîì i
ýòî áóêâà èç ðóññêîãî àëôàâèòà èëè çíàê ïðîáåëà, à m̄
ñîîáùåíèå íà ðóññêîì ÿçûêå. Àëèñà è Áîá îáëàäàþò ñåêðåòíûì êëþ÷îì k , èçâåñòíûì òîëüêî
èì, è ïóñòü ē = e1 e2 . . . en
ñîîáùåíèå, çàøèôðîâàííîå ïðè ïîìîùè ýòîãî êëþ÷à.
Ï ð è ì å ð 3.3. Ïóñòü èñòî÷íèê ïîðîæäàåò áóêâû èç àëôàâèòà
A = {a, b, c} ñ âåðîÿòíîñòÿìè P (a) = 0.8, P (b) = 0.15, P (c) = 0.05,
è ïóñòü ýòî èñòî÷íèê áåç ïàìÿòè. Ïóñòü øèôðàòîð, ïðèìåíÿÿ êëþ÷ k ,
çàìåíÿåò áóêâû â èñõîäíîì ñîîáùåíèè, èñïîëüçóÿ êàêóþ-ëèáî ïåðåñòàíîâêó ñèìâîëîâ:
(a, b, c) k = 1
(a, c, b) k = 2
(b, a, c) k = 3
(b, c, a) k = 4
(c, a, b) k = 5
(c, b, a) k = 6,
ò.å. êëþ÷ ïðèíèìàåò çíà÷åíèÿ îò 1 äî 6, è åñëè, íàïðèìåð, k = 5,
òî â èñõîäíîì òåêñòå îñóùåñòâëÿåòñÿ ñëåäóþùàÿ çàìåíà ñèìâîëîâ:
a → c, b → a, c → b.
Ïóñòü Åâà ïåðåõâàòèëà çàøèôðîâàííîå ñîîáùåíèå
ē = cccbc
è õî÷åò îïðåäåëèòü çíà÷åíèå êëþ÷à. Îöåíèì êîëè÷åñòâåííî âåðîÿòíîñòè èñïîëüçîâàíèÿ âñåõ âîçìîæíûõ êëþ÷åé, èñïîëüçóÿ ôîðìóëó
Áàéåñà
P (Ki )P (E|Ki )
,
P (Ki |E) = Pt
j=1 P (Kj )P (E|Kj )
ãäå E , K1 , . . . ,P
Kt
íåêîòîðûå ñîáûòèÿ, ïðè÷åì Ki ïîïàðíî íåñîâìåñòíû è E ⊂ ti=1 Ki .  íàøåì ñëó÷àå ñîáûòèå E
ýòî ïîëó÷åíèå
çàøèôðîâàííîãî ñîîáùåíèÿ ē = cccbc, t = 6, à Ki îçíà÷àåò, ÷òî âûáðàí êëþ÷ k = i.
Ãëàâà 3. Òåîðåòè÷åñêàÿ ñòîéêîñòü êðèïòîñèñòåì
66
Ìû ïðåäïîëàãàåì, ÷òî âñå êëþ÷è ðàâíîâåðîÿòíû, ò.å.
P (K1 ) = P (K2 ) = P (K3 ) = P (K4 ) = P (K5 ) = P (K6 ) = 1/6.
Òîãäà
P (E|K1 ) = P (m̄ = cccbc) = 0.054 · 0.15 ≈ 0.000001,
P (E|K2 ) = P (m̄ = bbbcb) = 0.154 · 0.05 ≈ 0.000025,
P (E|K3 ) = P (m̄ = cccac) = 0.8 · 0.054 ≈ 0.000005,
P (E|K4 ) = P (m̄ = bbbab) = 0.8 · 0.154 ≈ 0.000405,
P (E|K5 ) = P (m̄ = aaaca) = 0.84 · 0.05 ≈ 0.020480,
P (E|K6 ) = P (m̄ = aaaba) = 0.84 · 0.15 ≈ 0.061440.
Îòñþäà ëåãêî íàõîäèì
6
X
P (Kj ) P (E|Kj ) ≈ 0.013726,
j=1
è ïîëó÷àåì ïî ôîðìóëå Áàéåñà àïîñòåðèîðíóþ âåðîÿòíîñòü òîãî, ÷òî
áûë èñïîëüçîâàí êëþ÷ k = 1, ïðè óñëîâèè, ÷òî ïîëó÷åíî ñîîáùåíèå
ē = cccbc:
P (K1 |E) = P (m̄ = cccbc|ē = cccbc) ≈
(1/6) · 0.000001
≈ 0.000011.
0.013726
Ïðîäîëæàÿ àíàëîãè÷íî, íàõîäèì, ÷òî íàèáîëåå âåðîÿòíû êëþ÷è k =
5 è k = 6:
P (K5 |E) = P (m̄ = aaaca|ē = cccbc) ≈ 0.25,
P (K6 |E) = P (m̄ = aaaba|ē = cccbc) ≈ 0.75,
à âåðîÿòíîñòè âñåõ îñòàëüíûõ êëþ÷åé ìåíüøå 0.01.
t
u
Ãëàâà 3. Òåîðåòè÷åñêàÿ ñòîéêîñòü êðèïòîñèñòåì
67
Ìû âèäèì, ÷òî, ïåðåõâàòèâ âñåãî 5 áóêâ, Åâà ìîæåò îïðåäåëèòü
êëþ÷ ïî÷òè îäíîçíà÷íî. Òàêèì îáðàçîì, èç ýòîãî ïðèìåðà è èç ïðèìåðà ñ øèôðîì Öåçàðÿ â ïåðâîé ãëàâå ìû çàêëþ÷àåì, ÷òî, ïî-âèäèìîìó,
ñóùåñòâóåò íåêîòîðàÿ äëèíà ïåðåõâà÷åííîãî ñîîáùåíèÿ, ïîñëå êîòîðîé êëþ÷ ìîæåò áûòü íàéäåí ñ âåðîÿòíîñòüþ, áëèçêîé ê åäèíèöå.
Óòâåðæäåíèå 3.6 (î ðàññòîÿíèè åäèíñòâåííîñòè øèôðà (Øåííîí [17])). Ïóñòü ðàññìàòðèâàåòñÿ ñèñòåìà ñ ñåêðåòíûì êëþ÷îì,
è ïóñòü H(K)
ýíòðîïèÿ êëþ÷à. Ïóñòü R
èçáûòî÷íîñòü øèôðóåìîãî ñîîáùåíèÿ, à n
äëèíà ñîîáùåíèÿ, òàêàÿ, ÷òî
H (K|e1 , . . . , en ) ≈ 0,
(3.24)
ò.å. ïðè ýòîé äëèíå ïåðåõâà÷åííîãî ñîîáùåíèÿ êëþ÷ ïî÷òè îäíîçíà÷íî âîññòàíîâëåí. Òîãäà ñïðàâåäëèâî íåðàâåíñòâî
n≥
H(K)
.
R
(3.25)
Äàäèì íåñêîëüêî çàìå÷àíèé ê ýòîìó óòâåðæäåíèþ.
1. ×èñëî n, óäîâëåòâîðÿþùåå íåðàâåíñòâó (3.25), íàçûâàåòñÿ ðàññòîÿíèåì åäèíñòâåííîñòè øèôðà. Ýòî îçíà÷àåò, ÷òî â ñðåäíåì
äîñòàòî÷íî ïåðåõâàòèòü n áóêâ çàøèôðîâàííîãî ñîîáùåíèÿ äëÿ
âîññòàíîâëåíèÿ êëþ÷à.
2. Ìû âèäèì, ÷òî åñëè èçáûòî÷íîñòü ñîîáùåíèÿ R = 0, òî êëþ÷
íèêîãäà íå áóäåò îïðåäåëåí, òàê êàê n = ∞. Ò.å. øèôð íåâîçìîæíî âçëîìàòü (ìû âèäåëè ýòî â ïðèìåðå ñ íîìåðîì çàìêà èç
ïåðâîé ãëàâû).
3. Óìåíüøåíèå èçáûòî÷íîñòè ìîæåò áûòü äîñòèãíóòî çà ñ÷åò ñæàòèÿ äàííûõ. Äåëî â òîì, ÷òî ïðè ñæàòèè äàííûõ ýíòðîïèÿ ¾ñæàòîãî¿ òåêñòà ñîõðàíÿåòñÿ, à äëèíà óìåíüøàåòñÿ. Ñëåäîâàòåëüíî,
Ãëàâà 3. Òåîðåòè÷åñêàÿ ñòîéêîñòü êðèïòîñèñòåì
68
ýíòðîïèÿ íà áóêâó â ñæàòîì òåêñòå áîëüøå, ÷åì â èñõîäíîì,
à èçáûòî÷íîñòü ìåíüøå, ñì. (3.23). Çíà÷èò, ïîñëå ñæèìàþùåãî
êîäèðîâàíèÿ ðàññòîÿíèå åäèíñòâåííîñòè øèôðà óâåëè÷èâàåòñÿ.
4. Ñ ïðàêòè÷åñêîé òî÷êè çðåíèÿ ëó÷øå èñïîëüçîâàòü ñèñòåìû, â
êîòîðûõ êëþ÷ ìåíÿåòñÿ çàäîëãî äî äîñòèæåíèÿ ðàññòîÿíèÿ åäèíñòâåííîñòè øèôðà.
Ä î ê à ç à ò å ë ü ñ ò â î . Ìû äàäèì çäåñü òîëüêî îñíîâíóþ èäåþ
äîêàçàòåëüñòâà. Ïóñòü ïðîòèâíèê, ïåðåõâàòèâ ïåðåäàííûé øèôðîòåêñò
ē = e1 e2 . . . en , îäíîçíà÷íî âîññòàíîâèë êëþ÷, à òåì ñàìûì è èñõîäíîå ñîîáùåíèå. Çíà÷èò, íåîïðåäåëåííîñòü ïðîòèâíèêà óìåíüøèëàñü íà H (K) + H (m1 , . . . , mn ), òàê êàê îí óçíàë è êëþ÷, è èñõîäíîå ñîîáùåíèå. Ïðè ýòîì îí ïîëó÷èë n áóêâ èç r -áóêâåííîãî àëôàâèòà {a1 , . . . , ar }. Ìû çíàåì, ÷òî ìàêñèìàëüíîå çíà÷åíèå ýíòðîïèè
h∞ = log r , çíà÷èò, íåîïðåäåëåííîñòü ïðîòèâíèêà íå ìîæåò óìåíüøàòüñÿ áîëüøå, ÷åì íà n log r . Îòñþäà
n log r ≥ H (K) + H (m1 , . . . , mn ) ,
ñëåäîâàòåëüíî,
n (log r − H (m1 , . . . , mn ) /n) ≥ H (K) ,
îòêóäà ïîëó÷àåì, ÷òî
n≥
H(K)
H(K)
=
log r − H (m1 , . . . , mn ) /n
R
(çäåñü ìû âîñïîëüçîâàëèñü òåì, ÷òî H (m1 , . . . , mn ) /n → h∞ , è îïðåäåëåíèåì èçáûòî÷íîñòè (3.23)).
t
u
Ï ð è ì å ð 3.4. Îöåíèì ðàññòîÿíèå åäèíñòâåííîñòè äëÿ øèôðà
èç ïðèìåðà 3.3. Èìååì H(K) = log 6 ≈ 2.58, log r = log 3 ≈ 1.58, è
ýíòðîïèÿ íà áóêâó èñòî÷íèêà ðàâíà
H = −(0.8 log 0.8 + 0.15 log 0.15 + 0.05 log 0.05) ≈ 0.88.
Ãëàâà 3. Òåîðåòè÷åñêàÿ ñòîéêîñòü êðèïòîñèñòåì
69
Ïîýòîìó
2.58
≈ 3.7.
1.58 − 0.88
Ìû âèäåëè, ÷òî ïÿòè áóêâ áûëî ïðàêòè÷åñêè äîñòàòî÷íî äëÿ ðàñêðûòèÿ êëþ÷à. È íåðàâåíñòâî (3.25) õîðîøî ñîãëàñóåòñÿ ñ íàøèì
ïðèìåðîì.
t
u
n≥
Ïîÿñíèì åùå íà îäíîì ïðèìåðå, êàê âçàèìíàÿ çàâèñèìîñòü ñèìâîëîâ óâåëè÷èâàåò èçáûòî÷íîñòü è òåì ñàìûì óìåíüøàåò ðàññòîÿíèå
åäèíñòâåííîñòè.
Ï ð è ì å ð 3.5. Ïóñòü äàí ìàðêîâñêèé èñòî÷íèê, ò.å. èñòî÷íèê ñ
ïàìÿòüþ, â êîòîðîì âåðîÿòíîñòü ïîÿâëåíèÿ î÷åðåäíîãî ñèìâîëà çàâèñèò òîëüêî îò ïðåäûäóùåãî ñèìâîëà. Èñòî÷íèê îïèñûâàåòñÿ ñëåäóþùåé ìàòðèöåé ïåðåõîäîâ:
a
a 0
b 0
c 0.4
b
0.9
0.1
0.3
c
0.1
0.9
0.3
è íà÷àëüíûìè âåðîÿòíîñòÿìè P (a) = 0.19, P (b) = 0.34, P (c) = 0.47.
Ïócòü, êàê è â ïðèìåðå 3.3, èñïîëüçóåòñÿ øèôð ñ øåñòüþ âîçìîæíûìè êëþ÷àìè, è ïóñòü ïåðåõâà÷åí çàøèôðîâàííûé òåêñò
ē = bbacbac.
Ìû âèäèì ïî ìàòðèöå ïåðåõîäîâ, ÷òî ñî÷åòàíèå aa íåâîçìîæíî (ïîñëå áóêâû a âåðîÿòíîñòü ïîÿâëåíèÿ ñíîâà áóêâû a ðàâíà íóëþ), à
ñî÷åòàíèå bb
ìàëîâåðîÿòíî (âåðîÿòíîñòü ïîÿâëåíèÿ b ïîñëå b ðàâíà 0.1). Ñëåäîâàòåëüíî, ñêîðåå âñåãî ïåðâàÿ ïàðà áóêâ ñîîòâåòñòâóåò
áóêâàì cc èñõîäíîãî ñîîáùåíèÿ, ò.å. ïðè øèôðîâàíèè áûëà èñïîëüçîâàíà ïîäñòàíîâêà c → b. Òîãäà ac ñîîòâåòñòâóåò èñõîäíûì ïàðàì ab
Ãëàâà 3. Òåîðåòè÷åñêàÿ ñòîéêîñòü êðèïòîñèñòåì
70
èëè ba. Ïî ìàòðèöå ìû âèäèì, ÷òî ñî÷åòàíèå ba íåâîçìîæíî, à âîçìîæíî òîëüêî ab. Ïîýòîìó ìû ìîæåì ïðåäïîëîæèòü, ÷òî â êà÷åñòâå
êëþ÷à áûëà èñïîëüçîâàíà ïåðåñòàíîâêà íîìåð 2:
k=2
(a → a, b → c, c → b).
Âû÷èñëèì òî÷íûå âåðîÿòíîñòè èñïîëüçîâàíèÿ ðàçëè÷íûõ êëþ÷åé, êàê â ïðèìåðå 3.3. Çàìåòèì, ÷òî âåðîÿòíîñòü êîíêðåòíîãî ñîîáùåíèÿ èñòî÷íèêà ðàâíà ïðîèçâåäåíèþ âåðîÿòíîñòè íà÷àëüíîé áóêâû
è âåðîÿòíîñòåé ïåðåõîäîâ îò îäíîé áóêâû ê äðóãîé.
P (E|K1 ) = P (m̄ = bbacbac) = 0.34 · 0.1 · 0 = 0,
P (E|K2 ) = P (m̄ = ccabcab) = 0.47 · 0.3 · 0.4 · 0.9 · 0.9 · 0.4 · 0.9 =
= 0.016446,
P (E|K3 ) = P (m̄ = aabcabc) = 0.19 · 0 = 0,
P (E|K4 ) = P (m̄ = aacbacb) = 0.19 · 0 = 0,
P (E|K5 ) = P (m̄ = ccbacba) = 0.47 · 0.3 · 0.3 · 0 = 0,
P (E|K6 ) = P (m̄ = bbcabca) = 0.34 · 0.1 · 0.9 · 0.4 · 0.9 · 0.9 · 0.4 =
= 0.003966.
Îòñþäà íàõîäèì
6
X
P (Kj ) P (E|Kj ) ≈ 0.003402,
j=1
è ïîëó÷àåì ïî ôîðìóëå Áåéåñà àïîñòåðèîðíûå âåðîÿòíîñòè èñïîëü-
Ãëàâà 3. Òåîðåòè÷åñêàÿ ñòîéêîñòü êðèïòîñèñòåì
71
çîâàííûõ êëþ÷åé ïðè óñëîâèè, ÷òî ïîëó÷åíî ñîîáùåíèå ē = bbacbac:
P
P
P
P
P
P
(K1 |E) = 0,
(K2 |E) = P (m̄ = ccabcab|ē = bbacbac) ≈ 0.8,
(K3 |E) = 0,
(K4 |E) = 0,
(K5 |E) = 0,
(K6 |E) = P (m̄ = bbcabca|ē = bbacbac) ≈ 0.2.
Ýòè âû÷èñëåíèÿ ïîäòâåðæäàþò ñïðàâåäëèâîñòü ïðèâåäåííîãî ðàíåå
íåôîðìàëüíîãî ðàññóæäåíèÿ.
t
u
Îöåíêó ðàññòîÿíèÿ åäèíñòâåííîñòè øèôðà ìîæíî èñïîëüçîâàòü
ïðè êîíñòðóèðîâàíèè êðèïòîñèñòåì. Íàïðèìåð, êàæåòñÿ ðàçóìíûì
ìåíÿòü êëþ÷ íà íîâûé, êîãäà îáùàÿ äëèíà çàøèôðîâàííûõ ñ åãî ïîìîùüþ ñîîáùåíèé ïðèáëèæàåòñÿ ê âåëè÷èíå ðàññòîÿíèÿ åäèíñòâåííîñòè.
Íîâûå ïîäõîäû ê ïîñòðîåíèþ òåîðåòè÷åñêè ñòîéêèõ êðèïòîñèñòåì, ñâÿçàííûå ñ ïðèìåíåíèåì ìåòîäîâ ñïåöèàëüíîãî êîäèðîâàíèÿ,
èçëîæåíû â ðàáîòàõ [10, 13, 14, 16, 24, 25] àâòîðîâ äàííîé êíèãè.
Ïðåäëàãàåìûå òàì ìåòîäû äîñòàòî÷íî ñëîæíû äëÿ îïèñàíèÿ, îäíàêî
îíè ýôôåêòèâíû ñ âû÷èñëèòåëüíîé òî÷êè çðåíèÿ è ïîçâîëÿþò ñòðîèòü íåâñêðûâàåìûå øèôðû ñ ñåêðåòíûì êëþ÷îì. Îñíîâíàÿ èäåÿ ýòèõ
ìåòîäîâ ñîñòîèò â îáåñïå÷åíèè ïóòåì êîäèðîâàíèÿ íóëåâîé èçáûòî÷íîñòè ñîîáùåíèÿ, êîòîðîå ïîäëåæèò øèôðîâàíèþ. Îäèí èç òàêèõ ìåòîäîâ áóäåò ðàññìîòðåí â ñëåäóþùåì ðàçäåëå.
3.6.
Èäåàëüíûå êðèïòîñèñòåìû
 ðàçä. 3.2 áûëî ââåäåíî ïîíÿòèå ñîâåðøåííîé ñåêðåòíîñòè, à çàòåì
áûëî ïîêàçàíî, ÷òî øèôð Âåðíàìà ñîâåðøåííî ñåêðåòåí. Ìû âèäåëè, ÷òî â ýòîì øèôðå äëèíà êëþ÷à ðàâíà äëèíå ñîîáùåíèÿ è êëþ÷
Ãëàâà 3. Òåîðåòè÷åñêàÿ ñòîéêîñòü êðèïòîñèñòåì
72
èñïîëüçóåòñÿ âñåãî îäèí ðàç. Åñëè æå ìû õîòèì èñïîëüçîâàòü êîðîòêèé ìíîãîðàçîâûé êëþ÷ (÷òî àêòóàëüíî äëÿ áîëüøèíñòâà ïðàêòè÷åñêèõ ïðèëîæåíèé), òî êàêîé íàèëó÷øèé ðåçóëüòàò â ñìûñëå ñòîéêîñòè øèôðà ìû ìîæåì äîñòè÷ü? Ïðè îáñóæäåíèè óòâåðæäåíèÿ 3.6
óêàçûâàëîñü, ÷òî ïðè íóëåâîé èçáûòî÷íîñòè ñîîáùåíèÿ ðàññòîÿíèå
åäèíñòâåííîñòè øèôðà áåñêîíå÷íî. Ýòî îçíà÷àåò, ÷òî äàæå êîðîòêèé
(èëè, ÷òî ýêâèâàëåíòíî, ïðèìåíÿåìûé ìíîãî ðàç) êëþ÷, èñïîëüçóåìûé äëÿ øèôðîâàíèÿ î÷åíü äëèííîãî ñîîáùåíèÿ íóëåâîé èçáûòî÷íîñòè, íå ìîæåò áûòü ðàñêðûò. À ýòî, â ñâîþ î÷åðåäü, îçíà÷àåò, ÷òî
ó ïðîòèâíèêà, ïûòàþùåãîñÿ ðàçãàäàòü çàøèôðîâàííûé òåêñò, îñòàåòñÿ íåîïðåäåëåííîñòü, ðàâíàÿ íåîïðåäåëåííîñòè êëþ÷à. Î÷åâèäíî,
ýòî ëó÷øåå, ÷òî ìîæåò áûòü äîñòèãíóòî â äàííûõ óñëîâèÿõ (çäåñü
ìîæíî ñíîâà âñïîìíèòü ïðèìåð ñ êîäîâûì çàìêîì èç ïåðâîé ãëàâû).
Ýòè ðàññóæäåíèÿ ïîäâîäÿò íàñ ê ïîíÿòèþ ñòðîãî èäåàëüíîãî øèôðà,
âïåðâûå ââåäåííîìó Øåííîíîì [17].
Ïóñòü ñîîáùåíèå m1 m2 . . . mt øèôðóåòñÿ ïðè ïîìîùè ñåêðåòíîãî êëþ÷à k̄ = k1 k2 . . . ks , â ðåçóëüòàòå ÷åãî ïîëó÷àåòñÿ çàøèôðîâàííîå ñîîáùåíèå ē = e1 e2 . . . et . Îáîçíà÷èì ÷åðåç H(m1 m2 . . . mt ) ýíòðîïèþ ñîîáùåíèÿ, ÷åðåç H(ē) è H(k̄)
ñîîòâåòñòâåííî ýíòðîïèè
øèôðîòåêñòà è êëþ÷à. Òîãäà H(m1 m2 . . . mt |ē) ïðåäñòàâëÿåò íåîïðåäåëåííîñòü ñîîáùåíèÿ, à H(k̄|ē)
íåîïðåäåëåííîñòü êëþ÷à ïðè
óñëîâèè, ÷òî èçâåñòåí øèôðîòåêñò ē.
Îïðåäåëåíèå 3.3. Øèôð íàçûâàåòñÿ ñòðîãî èäåàëüíûì, åñëè
H(m1 m2 . . . mt |ē) = H(k̄|ē) = min{H(m1 m2 . . . mt ), H(k̄)}. (3.26)
Åñëè ýíòðîïèÿ êëþ÷à ìåíüøå ýíòðîïèè ñîîáùåíèÿ èñòî÷íèêà, òî
(3.26) óïðîùàåòñÿ:
H(m1 m2 . . . mt |ē) = H(k̄|ē) = H(k̄)
(3.27)
ïðè âñåõ äîñòàòî÷íî áîëüøèõ t. Òàê êàê ìû áóäåì ðàññìàòðèâàòü ñëó÷àé, êîãäà äëèíà ñîîáùåíèÿ t âåëèêà, òî â êà÷åñòâå îïðåäåëåíèÿ ñòðîãî èäåàëüíîãî øèôðà áóäåì èñïîëüçîâàòü (3.27) .
Ãëàâà 3. Òåîðåòè÷åñêàÿ ñòîéêîñòü êðèïòîñèñòåì
73
Íåôîðìàëüíî, ñòðîãàÿ èäåàëüíîñòü øèôðà îçíà÷àåò, ÷òî êîëè÷åñòâî ðåøåíèé êðèïòîãðàììû ðàâíî êîëè÷åñòâó ðàçëè÷íûõ êëþ÷åé è
âñå ðåøåíèÿ ðàâíîâåðîÿòíû, êàê â ïðèìåðå ñ êîäîâûì çàìêîì.
 ýòîì ðàçäåëå ìû ðàññìîòðèì êîíñòðóêöèþ èäåàëüíîé ñèñòåìû,
íåäàâíî ïðåäëîæåííóþ â [10], îãðàíè÷èâøèñü îïèñàíèåì òîëüêî îñíîâíîé èäåè ïðèìåíèòåëüíî ê ñëó÷àþ, êîãäà ñîîáùåíèå ïîðîæäàåòñÿ
äâîè÷íûì èñòî÷íèêîì áåç ïàìÿòè ñ íåèçâåñòíîé ñòàòèñòèêîé, èíûìè
ñëîâàìè, äåëàåòñÿ ïîñëåäîâàòåëüíî è íåçàâèñèìî ñëó÷àéíûé âûáîð
áóêâû èç àëôàâèòà A = {a1 , a2 }, ïðè÷åì âåðîÿòíîñòè âûáîðà áóêâ
íåèçâåñòíû.
Ïóñòü èñòî÷íèê ïîðîæäàåò ïîòåíöèàëüíî íåîãðàíè÷åííûå ñîîáùåíèÿ m1 m2 . . . mt , t → ∞, è èìååòñÿ êëþ÷ ôèêñèðîâàííîé äëèíû k̄ = k1 k2 . . . ks , s ≥ 1. (Êàê ìû óïîìÿíóëè âûøå, ïðåäïîëàãàåòñÿ òàêæå, ÷òî ýíòðîïèÿ èñòî÷íèêà íà áóêâó îòëè÷íà îò íóëÿ, òàê
êàê â ïðîòèâíîì ñëó÷àå âîîáùå íåò íåîáõîäèìîñòè â ïåðåäà÷å ñîîáùåíèé.) Áóäåì ïîñëåäîâàòåëüíî ðàçáèâàòü ñîîáùåíèå èñòî÷íèêà íà
áëîêè ñèìâîëîâ äëèíû n, ãäå n > 1
ïàðàìåòð ìåòîäà. Îáîçíà÷èì
îäèí èç òàêèõ áëîêîâ ÷åðåç m̄. Îïèøåì ïðåîáðàçîâàíèÿ, âûïîëíÿåìûå íàä êàæäûì òàêèì n-áóêâåííûì áëîêîì.
Âíà÷àëå îïðåäåëèì êîëè÷åñòâî áóêâ a1 è a2 â áëîêå m̄. Ïóñòü,
ñêàæåì, èìååòñÿ n1 áóêâ a1 è n2 = n − n1 áóêâ a2 . Îïðåäåëèì u(m̄)
êàê ñëîâî äëèíû dlog(n + 1)e áèò, êîäèðóþùåå n1 .
Òåïåðü ðàññìîòðèì ìíîæåñòâî S âñåõ ïîñëåäîâàòåëüíîñòåé, ñîñòîÿùèõ èç n1 áóêâ a1 è n2 áóêâ a2 . Â ýòîì ìíîæåñòâå
|S| = Cnn1 =
n!
n1 !(n − n1 )!
ýëåìåíòîâ. Íåñìîòðÿ íà òî, ÷òî íàì íå èçâåñòíû âåðîÿòíîñòè ïîñëåäîâàòåëüíîñòåé èç ìíîæåñòâà S , îäíî ìû ìîæåì ñêàçàòü òî÷íî âñå
îíè ðàâíû ìåæäó ñîáîé (â ñèëó íåçàâèñèìîñòè âûáîðà îòäåëüíûõ
áóêâ ñîîáùåíèÿ). Çàäàäèì íà ìíîæåñòâå S íåêîòîðûé ïîðÿäîê, íàïðèìåð, ðàñïîëîæèì ñîîáùåíèÿ â ïîðÿäêå âîçðàñòàíèÿ ñîîòâåòñòâó-
Ãëàâà 3. Òåîðåòè÷åñêàÿ ñòîéêîñòü êðèïòîñèñòåì
74
þùèõ èì äâîè÷íûõ ÷èñåë (ñ÷èòàÿ, ÷òî a1 = 0, a2 = 1). Âû÷èñëèì íîìåð äàííîãî êîíêðåòíîãî áëîêà m̄ âíóòðè óïîðÿäî÷åííîãî ìíîæåñòâà
S (äëÿ âû÷èñëåíèÿ òàêîãî íîìåðà èçâåñòåí ýôôåêòèâíûé àëãîðèòì
[11], îïèñàíèå êîòîðîãî âûõîäèò çà ðàìêè íàøåé êíèãè). Îáîçíà÷èì
ýòîò íîìåð ÷åðåç ω(m̄).
Ðàçîáüåì ìíîæåñòâî S íà íåïåðåñåêàþùèåñÿ ïîäìíîæåñòâà S0 ,
S1 , . . . , Sν ñ ÷èñëàìè ýëåìåíòîâ, ðàâíûìè ðàçëè÷íûì ñòåïåíÿì äâîéêè (íàïðèìåð, åñëè |S| = 21, òî ïîëó÷àåì òðè ïîäìíîæåñòâà ñ ÷èñëàìè ýëåìåíòîâ 16, 4 è 1). Ïî ω(m̄) îïðåäåëèì, êàêîìó ïîäìíîæåñòâó ïðèíàäëåæèò m̄ (îáîçíà÷èì íîìåð òàêîãî ïîäìíîæåñòâà ÷åðåç
v(m̄)), è íàéäåì íîìåð m̄ âíóòðè äàííîãî ïîäìíîæåñòâà (îáîçíà÷èì
ýòîò íîìåð ÷åðåç w(m̄)).
Ïîñìîòðèì âíèìàòåëüíî íà íîìåð ñîîáùåíèÿ âíóòðè ïîäìíîæåñòâà, w(m̄). Çàìå÷àòåëüíî òî, ÷òî w(m̄)
ýòî ïîëíîñòüþ ñëó÷àéíàÿ
ïîñëåäîâàòåëüíîñòü íóëåé è åäèíèö (ò.å. òàêàÿ, ãäå ñèìâîëû íåçàâèñèìû, à âåðîÿòíîñòè íóëÿ è åäèíèöû ðàâíû). Äåéñòâèòåëüíî, w(m̄)
ýòî íîìåð îäíîé èç ðàâíîâåðîÿòíûõ ïîñëåäîâàòåëüíîñòåé áóêâ â
ïîäìíîæåñòâå èç 2b ýëåìåíòîâ (äëÿ íåêîòîðîãî b). Íîìåðà âñåõ òàêèõ ïîñëåäîâàòåëüíîñòåé
ýòî âñåâîçìîæíûå ïîñëåäîâàòåëüíîñòè
èç b äâîè÷íûõ öèôð. Íî åñëè âñå ïîñëåäîâàòåëüíîñòè èç b äâîè÷íûõ
öèôð ðàâíîâåðîÿòíû, òî îòäåëüíûå ñèìâîëû ðàâíîâåðîÿòíû è íåçàâèñèìû.
Èòàê, îáðàáàòûâàÿ îïèñàííûì îáðàçîì ïîñëåäîâàòåëüíûå áëîêè
ñîîáùåíèÿ, ìû ïðåäñòàâëÿåì ñîîáùåíèå â âèäå
u(m̄1 )v(m̄1 )w(m̄1 )u(m̄2 )v(m̄2 )w(m̄2 ) . . . .
Òåïåðü ïåðåéäåì ê îïèñàíèþ ïðîöåññà øèôðîâàíèÿ ïðåîáðàçîâàííîãî ñîîáøåíèÿ. Íà ïåðâûé âçãëÿä ýòî ìîæåò ïîêàçàòüñÿ ñòðàííûì, íî ñëîâà u(·) è v(·) âîîáùå íå øèôðóþòñÿ! Øèôðóþòñÿ òîëüêî
ñëîâà w(·) ñ èñïîëüçîâàíèåì ñåêðåòíîãî êëþ÷à k̄ .  êà÷åñòâå øèôðà ìîæíî, íàïðèìåð, èñïîëüçîâàòü ïîáèòîâîå ñëîæåíèå ïî ìîäóëþ
Ãëàâà 3. Òåîðåòè÷åñêàÿ ñòîéêîñòü êðèïòîñèñòåì
75
2 ñ ïåðèîäè÷åñêè ïðîäîëæåííûì êëþ÷îì. Äëÿ îïèñàíèÿ ýòîãî øèôðà óäîáíî çàíóìåðîâàòü ñèìâîëû ñëîâ w(·) ïîäðÿä è îáîçíà÷èòü èõ
÷åðåç w1 w2 w3 . . . . Òîãäà øèôðîâàíèå ïðîâîäèòñÿ ïî ôîðìóëå
zi = wi ⊕ ki mod s .
 ðåçóëüòàòå ïðèìåíåíèÿ îïèñàííîãî ìåòîäà ìû çàøèôðîâàëè ñîîáùåíèå ñëåäóþùèì îáðàçîì:
m1 m2 . . . mt −→ ē = u(m̄1 )v(m̄1 )z(m̄1 )u(m̄2 )v(m̄2 )z(m̄2 ) . . . .
(3.28)
Ïî ïîñòðîåíèþ àëãîðèòìà ÿñíî, ÷òî èç ïðàâîé ÷àñòè (3.28) ìîæíî
âîññòàíîâèòü ñîîáùåíèå, åñëè çíàòü k̄ . Âíà÷àëå íóæíî äåøèôðîâàòü
ñèìâîëû ñëîâ w(·), èñïîëüçóÿ ôîðìóëó
wi = zi ⊕ ki mod s ,
(3.29)
à çàòåì èç ñëîâ u(·)v(·)w(·) âîññòàíàâëèâàþòñÿ ïîñëåäîâàòåëüíûå áëîêè ñîîáùåíèÿ.
Ï ð è ì å ð 3.6. Ïóñòü òðåáóåòñÿ çàøèôðîâàòü ñîîáùåíèå
a2 a2 a1 a2 a2 a2 a1 a2 a2 a1
ñ òðåõáèòîâûì êëþ÷îì k̄ = 011. Ðàçîáüåì ñîîáùåíèå íà äâà áëîêà
ïî ïÿòü ñèìâîëîâ, n = 5.
Âûïîëíèì ïðåîáðàçîâàíèå äëÿ ïåðâîãî áëîêà m̄1 = a2 a2 a1 a2 a2 .
Äëÿ ýòîãî áëîêà n1 = 1 è u(m̄1 ) = (001)2 . Ðàññìîòðèì òåïåðü óïîðÿäî÷åííîå ìíîæåñòâî âñåõ ñîîáùåíèé, ñîñòîÿùèõ èç îäíîé áóêâû
5!
= 5,
a1 è ÷åòûðåõ áóêâ a2 (òàáë. 3.2). Âñåãî òàêèõ ñîîáùåíèé 1!4!
ïîýòîìó èìååì äâà ïîäìíîæåñòâà S0 è S1 ñ ÷èñëîì ýëåìåíòîâ ñîîòâåòñòâåííî 4 è 1. Ìû âèäèì, ÷òî m̄1 âõîäèò â S0 ïîä íîìåðîì 2 =
(10)2 . Òàêèì îáðàçîì, ìû ïîëó÷àåì ñëåäóþùèå äâà ñëîâà: v(m̄1 ) = 0,
w(m̄1 ) = (10)2 .
Ãëàâà 3. Òåîðåòè÷åñêàÿ ñòîéêîñòü êðèïòîñèñòåì
76
Ò à á ë è ö à 3.2. Ìíîæåñòâî
ðàâíîâåðîÿòíûõ
ñîîáùåíèé; n1 = 1, n2 = 4
Ñîîáùåíèå
Íîìåð â S
Sv
w
a1 a2 a2 a2 a2
000
00
a2 a1 a2 a2 a2
001
01
a2 a2 a1 a2 a2
010
S0
10
a2 a2 a2 a1 a2
011
11
a2 a2 a2 a2 a1
100
S1
-
Òåïåðü âûïîëíèì ïðåîáðàçîâàíèå äëÿ âòîðîãî áëîêà ñîîáùåíèÿ
m̄2 = a2 a1 a2 a2 a1 . Äëÿ ýòîãî áëîêà n1 = 2 è u(m̄2 ) = (010)2 . Ðàññìîòðèì óïîðÿäî÷åííîå ìíîæåñòâî âñåõ ñîîáùåíèé, ñîñòîÿùèõ èç äâóõ
5!
áóêâ a1 è òðåõ áóêâ a2 (òàáë. 3.3). Âñåãî òàêèõ ñîîáùåíèé 2!3!
= 10,
ïîýòîìó èìååì äâà ïîäìíîæåñòâà S0 è S1 ñ ÷èñëîì ýëåìåíòîâ ñîîòâåòñòâåííî 8 è 2. Ìû âèäèì, ÷òî m̄2 âõîäèò ïîä íîìåðîì 6 = (110)2
â S0 . Òàêèì îáðàçîì, ìû ïîëó÷àåì v(m̄2 ) = 0, w(m̄2 ) = (110)2 .
 ðåçóëüòàòå ìû ïîëó÷èëè ñëåäóþùèé äâîè÷íûé êîä ïðåîáðàçîâàííîãî ñîîáùåíèÿ:
001 0 10 010 0 110
(ïðîáåëû çäåñü ïîñòàâëåíû òîëüêî äëÿ óäîáñòâà ÷òåíèÿ; äëÿ îäíîçíà÷íîãî äåêîäèðîâàíèÿ îíè íå íóæíû).
Òåïåðü çàøèôðóåì ïðåîáðàçîâàííîå ñîîáùåíèå. Ïåðèîäè÷åñêè
ïðîäîëæåííûé êëþ÷ èìååò âèä k̄ = 011011 . . . . Ñëîæåíèå áèòîâ ñëîâ
w(·) ñ ýòèì êëþ÷îì äàåò
⊕
1 0 1 1 0
0 1 1 0 1
.
1 1 0 1 1
Ãëàâà 3. Òåîðåòè÷åñêàÿ ñòîéêîñòü êðèïòîñèñòåì
77
Ò à á ë è ö à 3.3. Ìíîæåñòâî
ðàâíîâåðîÿòíûõ
ñîîáùåíèé; n1 = 2, n2 = 3
Ñîîáùåíèå
Íîìåð â S
Sv
w
a1 a1 a2 a2 a2
0000
000
a1 a2 a1 a2 a2
0001
001
a1 a2 a2 a1 a2
0010
010
a1 a2 a2 a2 a1
0011
S0
011
a2 a1 a1 a2 a2
0100
100
a2 a1 a2 a1 a2
0101
101
a2 a1 a2 a2 a1
0110
110
a2 a2 a1 a1 a2
0111
111
a2 a2 a1 a2 a1
1000
S1
a2 a2 a2 a1 a1
1001
1
Çàøèôðîâàííîå ñîîáùåíèå âûãëÿäèò ñëåäóþùèì îáðàçîì:
ē = 001 0 11 010 0 011.
t
u
Îñòàíîâèìñÿ òåïåðü íà îñíîâíûõ ñâîéñòâàõ ðàññìîòðåííîãî ìåòîäà.
Óòâåðæäåíèå 3.7. Ïîñòðîåííûé øèôð ñòðîãî èäåàëåí.
Ä î ê à ç à ò å ë ü ñ ò â î . Êàê óæå îòìå÷àëîñü ïðè èçëîæåíèè ìåòîäà, ñëîâî w(m̄) äëÿ êàæäîãî áëîêà m̄ ñîñòîèò èç ðàâíîâåðîÿòíûõ è
íåçàâèñèìûõ ñèìâîëîâ 0 è 1, äðóãèìè ñëîâàìè, ¾ïîëíîñòüþ¿ ñëó÷àéíî. Òàê êàê áëîêè â ñîîáùåíèè íåçàâèñèìû, òî â ïðåîáðàçîâàííîì
ñîîáùåíèè ïîñëåäîâàòåëüíîñòü ñëîâ w(m̄1 )w(m̄2 ) . . . = w1 w2 w3 . . .
òàêæå ïîëíîñòüþ ñëó÷àéíà. Íî ëþáàÿ ïîñëåäîâàòåëüíîñòü w1 w2 w3 . . .
ñîîòâåòñòâóåò íåêîòîðîìó ñîîáùåíèþ, è âñå òàêèå ñîîáùåíèÿ ðàâíîâåðîÿòíû. Ïîýòîìó ïðè ïîäñòàíîâêå ëþáîãî êëþ÷à â äåøèôðóþùåå
Ãëàâà 3. Òåîðåòè÷åñêàÿ ñòîéêîñòü êðèïòîñèñòåì
78
âûðàæåíèå (3.29) ìû ïîëó÷àåì êàêîå-ëèáî ðåøåíèå, ïðè÷åì âñå ðåøåíèÿ ðàâíîâåðîÿòíû.  ðåçóëüòàòå, èìåÿ òîëüêî øèôðîòåêñò ē, ìû
íè÷åãî íå ìîæåì ñêàçàòü îá èñïîëüçîâàííîì êëþ÷å, ò.å.
H(k̄|ē) = H(k̄).
Äàëåå, êàæäîìó êîíêðåòíîìó ñîîáùåíèþ m1 m2 . . . mt ñîîòâåòñòâóåò îäíà è òîëüêî îäíà ïîñëåäîâàòåëüíîñòü w1 w2 w3 . . ., è ïðè äîñòàòî÷íî áîëüøîì t, à èìåííî, òàêîì, ÷òî äëèíà ïîñëåäîâàòåëüíîñòè
w1 w2 w3 . . . íå ìåíüøå äëèíû êëþ÷à, êàæäîìó êëþ÷ó, ïîäñòàâëÿåìîìó
â (3.29), ñîîòâåòñòâóþò ðàçëè÷íûå ðàâíîâåðîÿòíûå ñîîáùåíèÿ. Ïîýòîìó
H(m1 m2 . . . mt |ē) = H(k̄).
Íåíóëåâàÿ ýíòðîïèÿ èñòî÷íèêà ãàðàíòèðóåò òî, ÷òî òðåáóåìîå äîñòàòî÷íî áîëüøîå t âñåãäà ñóùåñòâóåò.
t
u
Òàêèì îáðàçîì, ìû äîêàçàëè, ÷òî (3.27) âûïîëíÿåòñÿ.
Îñîáåííîñòüþ ïðåäëîæåííîãî øèôðà ÿâëÿåòñÿ òî, ÷òî øèôðîâàíèþ ïîäâåðãàåòñÿ íå âñå ïðåîáðàçîâàííîå ñîîáùåíèå, à òîëüêî åãî
÷àñòü.  ïðèâåäåííîì ïðèìåðå äàæå ìîæåò ïîêàçàòüñÿ, ÷òî ñëèøêîì
ìíîãî èíôîðìàöèè îñòàåòñÿ ¾îòêðûòîé¿. Êàêàÿ âñå-òàêè äîëÿ èíôîðìàöèè ñêðûâàåòñÿ ýòèì øèôðîì? Ñëåäóþùåå óòâåðæäåíèå äàåò îòâåò
íà ýòîò âîïðîñ.
Óòâåðæäåíèå 3.8. Ïóñòü ñîîáùåíèå ïîðîæäàåòñÿ èñòî÷íèêîì
áåç ïàìÿòè ñ ýíòðîïèåé h íà áóêâó . Òîãäà äëÿ êàæäîãî áëîêà m̄ èç
n ñèìâîëîâ ñîîáùåíèÿ ñðåäíÿÿ äëèíà øèôðóåìîãî ñëîâà w(m̄) óäîâëåòâîðÿåò íåðàâåíñòâó
(3.30)
E(|w(m̄)|) > nh − 2 log(n + 1)
(çäåñü E(·)
ìàòåìàòè÷åñêîå îæèäàíèå, à | · |
äëèíà).
Ãëàâà 3. Òåîðåòè÷åñêàÿ ñòîéêîñòü êðèïòîñèñòåì
79
Ä î ê à ç à ò å ë ü ñ ò â î . Êîìïîíåíòà êîäà u(m̄) ìîæåò ïðèíèìàòü
ëþáîå çíà÷åíèå îò 0 äî n, è ïîýòîìó åå ìàêñèìàëüíàÿ ýíòðîïèÿ ðàâíà
log(n + 1).
Ñëîâî v(m̄) ìîæåò ïðèíèíÿòü ëþáîå çíà÷åíèå îò 0 äî ν , ÷òî ñâÿçàíî ñ ðàçáèåíèåì S íà ïîäìíîæåñòâà S0 , S1 , . . . , Sν . Î÷åâèäíî, ÷òî
ν ≤ blog |S|c. Èç èçâåñòíîãî íåðàâåíñòâà |S| = Cnn1 < 2n ïîëó÷àåì
log |S| < n è ν ≤ log |S| < n. Ïîýòîìó ìàêñèìàëüíàÿ ýíòðîïèÿ ñëîâà
v(m̄) ñòðîãî ìåíüøå log(n + 1).
Ýíòðîïèÿ áëîêà ðàâíà H(m̄) = nh (òàê êàê ñèìâîëû ïîðîæäàþòñÿ èñòî÷íèêîì áåç ïàìÿòè). Ïðè ïðåîáðàçîâàíèè áëîêà ýíòðîïèÿ íå
èçìåíÿåòñÿ, ïîýòîìó äëÿ ýíòðîïèè ñëîâà w(m̄) èìååì
H(w(m̄)) > nh − 2 log(n + 1)
(èç îáùåé ýíòðîïèè ìû âû÷ëè âåðõíþþ ãðàíèöó ìàêñèìàëüíîé ýíòðîïèè ñëîâ u(m̄) è v(m̄)). Íî òàê êàê ñëîâî w(m̄) ñîñòîèò èç ðàâíîâåðîÿòíûõ è íåçàâèñèìûõ ñèìâîëîâ 0 è 1, åãî ñðåäíÿÿ äëèíà ñîâïàäàåò ñ ýíòðîïèåé, ÷òî çàâåðøàåò äîêàçàòåëüñòâî.
t
u
Íåôîðìàëüíî, óòâåðæäåíèå 3.8 ãîâîðèò î òîì, ÷òî ¾ïî÷òè âñÿ¿
èíôîðìàöèÿ ñîîáùåíèÿ ñîäåðæèòñÿ â øèôðóåìîé êîìïîíåíòå êîäà
w , åñëè äëèíà áëîêà n äîñòàòî÷íî âåëèêà. Èíûìè ñëîâàìè, ïðåäñòàâëåííûé øèôð ñêðûâàåò ¾ïî÷òè âñþ¿ èíôîðìàöèþ. Ïðè÷åì äàæå
ïîëíûé ïåðåáîð êëþ÷åé íå ïîçâîëÿåò âñêðûòü øèôð.
Êîíå÷íî, ðàññìîòðåííàÿ êîíñòðóêöèÿ èäåàëüíîé êðèïòîñèñòåìû
ìîæåò èìåòü ðàçëè÷íûå âàðèàíòû ïîñòðîåíèÿ. Íàïðèìåð, ìîæåò ïðåäñòàâëÿòü èíòåðåñ âàðèàíò, â êîòîðîì ÷àñòü êëþ÷à èñïîëüçóåòñÿ äëÿ
¾çàêðûòèÿ¿ ïðåôèêñà (ò.å. êîìïîíåíò u è v êîäà). Ïðàâäà, â ýòîì
ñëó÷àå ñèñòåìà áóäåò ¾ïðîñòî¿ èäåàëüíîé (íå ñòðîãî èäåàëüíîé).
Çàäà÷è è óïðàæíåíèÿ
80
Çàäà÷è è óïðàæíåíèÿ
3.1. Çàøèôðîâàòü ñîîáùåíèå m̄ øèôðîì Âåðíàìà ñ êëþ÷îì k̄ :
à. m̄ = 1001101011, k̄ = 0110100101,
á. m̄ = 0011101001, k̄ = 1100011100,
â. m̄ = 1000011100, k̄ = 1001011010,
ã. m̄ = 0011100010, k̄ = 0110111001,
ä. m̄ = 1001101011, k̄ = 1000111010.
Ñì. îòâåò.
3.2. Ïóñòü èñòî÷íèê áåç ïàìÿòè ïîðîæäàåò áóêâû èç àëôàâèòà A =
{a, b, c} ñ âåðîÿòíîñòÿìè P (a), P (b), P (c). Øèôðàòîð çàìåíÿåò áóêâû, èñïîëüçóÿ îäíó èç øåñòè âîçìîæíûõ ïåðåñòàíîâîê,
êàê ýòî äåëàëîñü â ïðèìåðå 3.3. Îïðåäåëèòü àïîñòåðèîðíûå
âåðîÿòíîñòè èñïîëüçîâàííûõ êëþ÷åé äëÿ çàäàííîãî çàøèôðîâàííîãî ñîîáùåíèÿ ē:
à. P (a) = 0.1, P (b) = 0.7, P (c) = 0.2, ē = abaacac,
á. P (a) = 0.9, P (b) = 0.09, P (c) = 0.01, ē = cbaccca,
â. P (a) = 0.14, P (b) = 0.06, P (c) = 0.8, ē = bbabbcab,
ã. P (a) = 0.7, P (b) = 0.05, P (c) = 0.25, ē = cccacbbc,
ä. P (a) = 0.1, P (b) = 0.7, P (c) = 0.2, ē = abbbbab.
Ñì. îòâåò.
3.3. Äëÿ èñòî÷íèêîâ çàäà÷è 3.2 âû÷èñëèòü ýíòðîïèþ è ðàññòîÿíèå
åäèíñòâåííîñòè. Ñì. îòâåò.
Çàäà÷è è óïðàæíåíèÿ
81
3.4. Ïî èìåþùåìóñÿ çàøèôðîâàííîìó ñîîáùåíèþ ē íàéòè àïîñòåðèîðíûå âåðîÿòíîñòè èñïîëüçîâàííûõ êëþ÷åé è ñîîòâåòñòâóþùèå èì ñîîáùåíèÿ, åñëè èçâåñòíî, ÷òî èñïîëüçóåòñÿ øèôð
ïðèìåðà 3.3, à ñîîáùåíèÿ ïîðîæäàþòñÿ ìàðêîâñêèì èñòî÷íèêîì, îïèñàííûì â ïðèìåðå 3.5:
à. ē = bcacbcacc,
á. ē = caaabaaba,
â. ē = aacabcaac,
ã. ē = bcaaaacaa,
ä. ē = aaacaaaca.
Ñì. îòâåò.
Ãëàâà 4.
4.1.
ÑÎÂÐÅÌÅÍÍÛÅ ØÈÔÐÛ Ñ
ÑÅÊÐÅÒÍÛÌ ÊËÞ×ÎÌ
Ââåäåíèå
 ýòîé ãëàâå ìû ðàññìîòðèì âû÷èñëèòåëüíî ñòîéêèå øèôðû ñ ñåêðåòíûì êëþ÷îì, êîòîðûå, â ïðèíöèïå, ìîãóò áûòü âñêðûòû, íî òðåáóþò äëÿ ýòîãî î÷åíü áîëüøîãî êîëè÷åñòâà âû÷èñëåíèé, ñêàæåì, 1020
ëåò äëÿ ñóïåðêîìïüþòåðà. Ýòè øèôðû îáåñïå÷èâàþò øèôðîâàíèå è
äåøèôðîâàíèå äàííûõ ñî ñêîðîñòÿìè, çíà÷èòåëüíî ïðåâûøàþùèìè
ñêîðîñòè øèôðîâ ñ îòêðûòûìè êëþ÷àìè è òåîðåòè÷åñêè ñòîéêèõ øèôðîâ, ÷òî è îáúÿñíÿåò èõ øèðîêîå ïðàêòè÷åñêîå èñïîëüçîâàíèå.  ïîñëåäóþùèõ ðàçäåëàõ ìû îïèøåì íåêîòîðûå íàèáîëåå ïîïóëÿðíûå
øèôðû è ðåæèìû èõ ôóíêöèîíèðîâàíèÿ, îäíàêî âíà÷àëå, ÷òîáû ïîÿñíèòü ïðèíöèïû ïîñòðîåíèÿ ýòèõ øèôðîâ, ïðîäîëæèì ïðèìåð ñ øèôðîì Öåçàðÿ, íà÷àòûé â ïåðâîé ãëàâå.
Òàì ìû ðàññìîòðåëè àòàêó ïî øèôðîòåêñòó íà øèôð Öåçàðÿ. Áûëî ïîêàçàíî, ÷òî â ñëó÷àå èçáûòî÷íûõ ñîîáùåíèé øèôð ëåãêî âñêðûâàåòñÿ ïóòåì ïåðåáîðà êëþ÷åé. Ïîèùåì âîçìîæíîñòè ïîâûøåíèÿ ñòîéêîñòè øèôðà Öåçàðÿ. Ïîæàëóé, ñàìîå ïðîñòîå, ÷òî ïðèõîäèò â ãîëîâó
óâåëè÷èòü êîëè÷åñòâî âîçìîæíûõ çíà÷åíèé êëþ÷à.  ýòîì ñëó÷àå Åâå ïðèäåòñÿ ïåðåáèðàòü áîëüøå êëþ÷åé, ïðåæäå ÷åì îíà íàéäåò
åäèíñòâåííûé ïðàâèëüíûé.
Åñòåñòâåííûé ñïîñîá óâåëè÷èòü êîëè÷åñòâî âîçìîæíûõ çíà÷åíèé
êëþ÷à äëÿ øèôðà Öåçàðÿ
èñïîëüçîâàòü pàçíûå êëþ÷è äëÿ pàçíûõ
áóêâ ñîîáùåíèÿ. Hàïpèìåp, ìû ìîæåì øèôpîâàòü êàæäóþ íå÷åòíóþ áóêâó êëþ÷îì k1 , à ÷åòíóþ êëþ÷îì k2 . Òîãäà ñåêðåòíûé êëþ÷
k = (k1 , k2 ) áóäåò ñîñòîÿòü èç äâóõ ÷èñåë, è êîëè÷åñòâî âîçìîæíûõ
Ãëàâà 4. Ñîâðåìåííûå øèôðû ñ ñåêðåòíûì êëþ÷îì
83
êëþ÷åé áóäåò 322 = 1024. Çàøèôðóåì íàøå ïðåæíåå ñîîáùåíèå èç
ïåðâîé ãëàâû êëþ÷îì k = (3, 5):
3,5
ÏÅÐÅÌÅÍÀ −→ ÒÊÓÊÏÊÐÅ.
(4.1)
Ýòà ñõåìà ëåãêî îáîáùàåòñÿ íà ïðîèçâîëüíóþ äëèíó ñåêðåòíîãî
êëþ÷à k = (k1 , k2 , · · · , kt )32 . Ïðè t ïîðÿäêà 10 è âûøå çàäà÷à ïîëíîãî
ïåðåáîðà êëþ÷åé ñòàíîâèòñÿ ïðàêòè÷åñêè íåðåøàåìîé.
Òåì íå ìåíåå, äàííûé øèôð ëåãêî âñêðûâàåòñÿ ïóòåì òàê íàçûâàåìîãî ÷àñòîòíîãî êðèïòîàíàëèçà. Äëÿ ýòîãî èñïîëüçóåòñÿ ñòàòèñòèêà
ÿçûêà, íà êîòîðîì íàïèñàíî ïåðåäàâàåìîå ñîîáùåíèå. Ïðè èñïîëüçîâàíèè ÷àñòîòíîãî êðèïòîàíàëèçà ïåðåáîð íà÷èíàþò ñ êëþ÷åé, ñîîòâåòñòâóþùèõ íàèáîëåå ÷àñòî âñòðå÷àþùèìñÿ áóêâàì è èõ ñî÷åòàíèÿì. Íàïðèìåð, èçâåñòíî, ÷òî â òèïè÷íîì òåêñòå íà ðóññêîì ÿçûêå
áóêâà Î âñòðå÷àåòñÿ ÷àùå äðóãèõ. Ñìîòðèì íà ÒÊÓÊÏÊÐÅ â (4.1)
è îïðåäåëÿåì, êàêèå áóêâû âñòðå÷àþòñÿ ÷àùå äðóãèõ íà ÷åòíûõ è
íå÷åòíûõ ìåñòàõ. Íà ÷åòíûõ ìåñòàõ ýòî Ê. Ïðåäïîëàãàåì, ÷òî ýòî
êîä Î, ñëåäîâàòåëüíî, k2 = Ê − Î = 28 (mod 32). Íà íå÷åòíûõ ìåñòàõ âñå áóêâû ðàçëè÷íû, ïîýòîìó äëÿ ïîèñêà k1 çíàíèå ÷àñòîò áóêâ
ÿçûêà íå ïîìîãàåò (äåëî â òîì, ÷òî äëÿ íàøåãî ïðèìåðà âçÿòî î÷åíü
êîðîòêîå ñîîáùåíèå). Ïûòàåìñÿ, êàê è ïðåæäå, íàéòè k1 ïóòåì ïåðåáîðà, íî óáåæäàåìñÿ, ÷òî ïðèåìëåìûõ ðàñøèôðîâîê íå ïîëó÷àåòñÿ.
Ýòî îçíà÷àåò, ÷òî íàøà ãèïîòåçà î òîì, ÷òî Î çàìåíÿåòñÿ â øèôðå
íà Ê, íåâåðíà. Áåðåì âìåñòî Î äðóãóþ ÷àñòî âñòðå÷àþùóþñÿ áóêâó
áóêâó Å. Âû÷èñëÿåì k2 = Ê − Å = 5. Ïîâòîðÿåì àíàëîãè÷íûå äåéñòâèÿ äëÿ ïîèñêà k1 è íà ýòîò ðàç íàõîäèì ðåøåíèå k1 = 3.
 ðåçóëüòàòå, ÷òîáû ðàñøèôðîâàòü ñîîáùåíèå, èç âñåõ âîçìîæíûõ
1024 êëþ÷åé íàì ïîíàäîáèëîñü ïðîâåðèòü òîëüêî 36 (ìû ïðîâåðÿëè
(0, 28), . . . , (31, 28),(0, 5), . . . , (3, 5)).
Ïîïðîáóåì ñëåãêà óñëîæíèòü øèôð, ÷òîáû çàòðóäíèòü ÷àñòîòíûé
êðèïòîàíàëèç. Íàì íóæíî êàêèì-òî îáðàçîì ïåðåìåøàòü ñèìâîëû ñîîáùåíèÿ, çàñòàâèòü èõ âëèÿòü äðóã íà äðóãà, ÷òîáû ñêðûòü èíäèâè-
Ãëàâà 4. Ñîâðåìåííûå øèôðû ñ ñåêðåòíûì êëþ÷îì
84
äóàëüíûå ÷àñòîòû èõ ïîÿâëåíèÿ. Ïî-ïðåæíåìó áóäåì èñïîëüçîâàòü
êëþ÷ k = (k1 , k2 ) è øèôðîâàòü ñîîáùåíèå áëîêàìè ïî äâà ñèìâîëà mi , mi+1 . Îäèí èç ïðîñòåéøèõ âàðèàíòîâ øèôðà ìîæåò âûãëÿäåòü
òàê:
m̃i = mi + mi+1 ,
m̃i+1 = mi+1 + m̃i ,
(4.2)
ci
= m̃i + k1 ,
ci+1 = m̃i+1 + k2
(mod 32)
(âñå ñóììû âû÷èñëÿþòñÿ ïî ìîäóëþ 32). Çäåñü mi
íå÷åòíàÿ áóêâà
èñõîäíîãî òåêñòà, mi+1
÷åòíàÿ áóêâà, k1 , k2
ñèìâîëû êëþ÷à, à
ci , ci+1
ïîëó÷àåìûå ñèìâîëû øèôðîòåêñòà. Íàïðèìåð, ïàðà ñèìâîëîâ ÏÅ øèôðóåòñÿ êëþ÷îì k = (3, 5) ñëåäóþùèì îáðàçîì:
m̃i = Ï + Å = Ô,
m̃i+1 = Å + Ô = Ù,
ci
= Ô + 3 = ×,
ci+1 = Ù + 5 = Þ,
ò.å. ÏÅ ïðåâðàùàåòñÿ â ×Þ.
Îòìåòèì, ÷òî ýòîò øèôð ìîæíî äåøèôðîâàòü. Àëãîðèòì äåøèôðîâàíèÿ, íàçûâàåìûé îáû÷íî îáðàòíûì øèôðîì, âûãëÿäèò ñëåäóþùèì îáðàçîì:
m̃i+1 = ci+1 − k2 ,
m̃i = ci − k1 ,
mi+1 = m̃i+1 − m̃i ,
mi = m̃i − mi+1
(4.3)
(mod 32).
Ïðèìåíÿÿ ê íàøåìó ñîîáùåíèþ øèôð (4.2) ñ êëþ÷îì (3, 5), ïîëó÷àåì
3,5
ÏÅÐÅÌÅÍÀ −→ ÔÙÕÚÑÖÍÍ −→ ×ÞØßÔÛÐÒ.
(4.4)
Ãëàâà 4. Ñîâðåìåííûå øèôðû ñ ñåêðåòíûì êëþ÷îì
85
Çäåñü äëÿ íàãëÿäíîñòè ïîñëå ïåðâîé ñòðåëêè ïîêàçàí ïðîìåæóòî÷íûé
ðåçóëüòàò, ïîëó÷àþùèéñÿ ïîñëå âûïîëíåíèÿ ïåðâûõ äâóõ îïåðàöèé â
(4.2) (ýòî ¾ïåðåìåøàííûé¿, íî åùå íå çàøèôðîâàííûé òåêñò ñîîáùåíèÿ). Ìû âèäèì, ÷òî äàííûé øèôð ñêðûâàåò ÷àñòîòû ïîÿâëåíèÿ
îòäåëüíûõ ñèìâîëîâ, çàòðóäíÿÿ ÷àñòîòíûé àíàëèç. Êîíå÷íî, îí ñîõðàíÿåò ÷àñòîòû ïîÿâëåíèÿ ïàð ñèìâîëîâ, íî ìû ìîæåì ñêðûòü è èõ,
åñëè áóäåì øèôðîâàòü ñîîáùåíèÿ áëîêàìè ïî òðè ñèìâîëà è ò.ä.
Âîîáùå, øèôð (4.2) âûãëÿäèò áîëåå ñëîæíûì äëÿ Åâû ïî ñðàâíåíèþ ñ øèôðîì (4.1), è îí äàåò íàì âîçìîæíîñòü ðàññìîòðåòü åùå
îäíó ñèòóàöèþ, ñâÿçàííóþ ñ åå äåéñòâèÿìè. Äî ñèõ ïîð ìû ðàññìàòðèâàëè àòàêè òîëüêî ïî øèôðîòåêñòó. Íî ÷òî ïðîèçîéäåò, åñëè Åâà
êàêèì-òî îáðàçîì äîñòàëà îòêðûòûé òåêñò, ñîîòâåòñòâóþùèé ðàíåå
ïåðåäàííîìó çàøèôðîâàííîìó ñîîáùåíèþ? (Ò.å. ìû íàõîäèìñÿ â óñëîâèÿõ àòàêè âòîðîãî òèïà, ñì. ãëàâó 1, ñòð. 10.) Íàïðèìåð, Åâà èìååò
ïàðó (ÏÅÐÅÌÅÍÀ, ÒÊÓÊÏÊÐÅ) äëÿ øèôðà (4.1). Òîãäà îíà ñðàçó âû÷èñëÿåò ñåêðåòíûé êëþ÷, k1 = Ò − Ï = 3, k2 = Ê − Å = 5, è ëåãêî
ðàñøèôðîâûâàåò âñå ïîñëåäóþùèå ñîîáùåíèÿ îò Àëèñû ê Áîáó. Ïðè
èñïîëüçîâàíèè øèôðà (4.2) ïàðà (ÏÅÐÅÌÅÍÀ, ×ÞØßÔÛÐÒ) óæå
íå äàåò òàêîãî î÷åâèäíîãî ðåøåíèÿ, õîòÿ è çäåñü îíî äîâîëüíî ïðîñòî. Åâà ïðèìåíÿåò äâå ïåðâûå îïåðàöèè èç (4.2) (íå òðåáóþùèå ñåêðåòíîãî êëþ÷à) ê ñëîâó ÏÅÐÅÌÅÍÀ, ïîëó÷àåò ïðîìåæóòî÷íûé ðåçóëüòàò ÔÙÕÚÑÖÍÍ è óæå ïî ïàðå (ÔÙÕÚÑÖÍÍ, ×ÞØßÔÛÐÒ),
êàê è â ïåðâîì ñëó÷àå, íàõîäèò êëþ÷ k = 3, 5.
Êàê çàòðóäíèòü òàêèå äåéñòâèÿ Åâû? Èäåÿ ïðîñòà. Áóäåì ïðè øèôðîâàíèè ñîîáùåíèÿ èñïîëüçîâàòü øèôð (4.2) äâà ðàçà. Òîãäà ïîëó÷èì:
3,5
3,5
ÏÅÐÅÌÅÍÀ −→ ×ÞØßÔÛÐÒ −→ ØØÚÛÒÏÅÙ.
(4.5)
Òåïåðü, èìåÿ ïàðó (ÏÅÐÅÌÅÍÀ, ØØÚÛÒÏÅÙ), Åâà íå ìîæåò âû÷èñëèòü êëþ÷, ïî êðàéíåé ìåðå àëãîðèòì åå äåéñòâèé íå î÷åâèäåí
(îíà íå ìîæåò ïîëó÷èòü ïðîìåæóòî÷íîå çíà÷åíèå ×ÞØßÔÛÐÒ, òàê
êàê ïðè åãî ïîñòðîåíèè áûë èñïîëüçîâàí ñåêðåòíûé êëþ÷, åé íå èçâåñòíûé).
Ãëàâà 4. Ñîâðåìåííûå øèôðû ñ ñåêðåòíûì êëþ÷îì
86
 ïðåäñòàâëåííîé ñõåìå (4.5) îòäåëüíàÿ ðåàëèçàöèÿ àëãîðèòìà
(4.2) íàçûâàåòñÿ ðàóíäîì èëè öèêëîì øèôðà.
Ìû ïðîèëëþñòðèðîâàëè âëèÿíèå íà ñòîéêîñòü øèôðà òàêèõ ïàðàìåòðîâ, êàê äëèíà êëþ÷à, ðàçìåð áëîêà, êîëè÷åñòâî ðàóíäîâ, à òàêæå
ïîêàçàëè íåîáõîäèìîñòü ââåäåíèÿ ¾ïåðåìåøèâàþùèõ¿ ïðåîáðàçîâàíèé.  ðåàëüíûõ øèôðàõ èñïîëüçóþòñÿ, â ïðèíöèïå, òå æå ïðåîáðàçîâàíèÿ, íî íàä áîëåå äëèííûìè öåïî÷êàìè ñèìâîëîâ è îáëàäàþùèå
öåëûì ðÿäîì äîïîëíèòåëüíûõ ñâîéñòâ. Ýòî ñâÿçàíî ñ íàëè÷èåì ðàçâèòûõ ìåòîäîâ êðèïòîàíàëèçà, òàêèõ, êàê äèôôåðåíöèàëüíûé è ëèíåéíûé êðèïòîàíàëèç, îïèñàíèå êîòîðûõ âûõîäèò çà ðàìêè íàøåé
êíèãè, íî ìîæåò áûòü íàéäåíî â [27].
4.2.
Áëîêîâûå øèôðû
Áëîêîâûé øèôð ìîæíî îïðåäåëèòü êàê çàâèñÿùåå îò êëþ÷à K îáðàòèìîå ïðåîáðàçîâàíèå ñëîâà X èç n äâîè÷íûõ ñèìâîëîâ. Ïðåîáðàçîâàííîå ñ ïîìîùüþ øèôðà ñëîâî (èëè áëîê) áóäåì îáîçíà÷àòü ÷åðåç
Y . Äëÿ âñåõ ðàññìàòðèâàåìûõ â ýòîì ðàçäåëå øèôðîâ äëèíà ñëîâà Y
ðàâíà äëèíå ñëîâà X .
Òàêèì îáðàçîì, áëîêîâûé øèôð
ýòî îáðàòèìàÿ ôóíêöèÿ E
(äðóãèì ñëîâàìè, òàêàÿ, äëÿ êîòîðîé ñóùåñòâóåò îáðàòíàÿ ôóíêöèÿ).
Êîíêðåòíûé âèä EK ýòîé ôóíêöèè îïðåäåëÿåòñÿ êëþ÷îì K ,
Y = EK (X),
−1
(Y ) äëÿ âñåõ X.
X = EK
−1
Çäåñü EK
îáîçíà÷àåò äåøèôðóþùåå ïðåîáðàçîâàíèå è íàçûâàåòñÿ
îáðàòíûì øèôðîì.
Äëÿ êðèïòîãðàôè÷åñêèõ ïðèëîæåíèé áëîêîâûé øèôð äîëæåí óäîâëåòâîðÿòü ðÿäó òðåáîâàíèé, çàâèñÿùèõ îò ñèòóàöèè, â êîòîðîé îí èñïîëüçóåòñÿ.  áîëüøèíñòâå ñëó÷àåâ äîñòàòî÷íî ïîòðåáîâàòü, ÷òîáû
Ãëàâà 4. Ñîâðåìåííûå øèôðû ñ ñåêðåòíûì êëþ÷îì
87
øèôð áûë ñòîåê ïî îòíîøåíèþ ê àòàêå ïî âûáðàííîìó òåêñòó. Ýòî àâòîìàòè÷åñêè ïîäðàçóìåâàåò åãî ñòîéêîñòü ïî îòíîøåíèþ ê àòàêàì ïî
øèôðîòåêñòó è ïî èçâåñòíîìó òåêñòó. Ñëåäóåò çàìåòèòü, ÷òî ïðè àòàêå
ïî âûáðàííîìó òåêñòó øèôð âñåãäà ìîæåò áûòü âçëîìàí ïóòåì ïåðåáîðà êëþ÷åé. Ïîýòîìó òðåáîâàíèå ñòîéêîñòè øèôðà ìîæíî óòî÷íèòü
ñëåäóþùèì îáðàçîì.
Øèôð ñòîåê (ïðè àòàêå ïî âûáðàííîìó òåêñòó), åñëè äëÿ íåãî
íå ñóùåñòâóþò àëãîðèòìû âçëîìà, ñóùåñòâåííî áîëåå áûñòðûå, ÷åì
ïðÿìîé ïåðåáîð êëþ÷åé.
Íàì áóäåò äîñòàòî÷íî òàêîãî íåñòðîãîãî îïðåäåëåíèÿ ñòîéêîñòè.
Íà ñàìîì äåëå, ïî ñîñòîÿíèþ íà ñåãîäíÿøíèé äåíü, íè äëÿ îäíîãî
èñïîëüçóåìîãî øèôðà íå äîêàçàíî ñîîòâåòñòâèå ýòîìó îïðåäåëåíèþ
ñòîéêîñòè. Ðåàëüíî ìîæíî ãîâîðèòü î ñëåäóþùåì.
Øèôð ñ÷èòàåòñÿ ñòîéêèì (ïðè àòàêå ïî âûáðàííîìó òåêñòó), åñëè äëÿ íåãî íåèçâåñòíû àëãîðèòìû âçëîìà, ñóùåñòâåííî áîëåå ýôôåêòèâíûå, ÷åì ïðÿìîé ïåðåáîð êëþ÷åé.
Íèæå ìû ïðèâåäåì ïðèìåðû íåêîòîðûõ ïðàêòè÷åêè èñïîëüçóåìûõ áëîêîâûõ øèôðîâ. Íàøà çàäà÷à áóäåò ñîñòîÿòü íå òîëüêî â òîì,
÷òîáû äàòü äîñòàòî÷íî ïîäðîáíîå îïèñàíèå àëãîðèòìîâ (èõ îïèñàíèå ìîæåò áûòü íàéäåíî â ëèòåðàòóðå), íî è â îáúÿñíåíèè îñíîâíûõ
ïðèíöèïîâ ïîñòðîåíèÿ áëîêîâûõ øèôðîâ. Êðîìå òîãî, íàøå îïèñàíèå ìîæåò îáëåã÷èòü ïîíèìàíèå ìàòåðèàëà, èçëîæåííîãî â îôèöèàëüíûõ äîêóìåíòàõ (ÃÎÑÒàõ è.ò.ï.). Äàëåå, íà ïðîòÿæåíèè âñåé ãëàâû, ìû áóäåì èçó÷àòü òåõíèêó èñïîëüçîâàíèÿ áëîêîâûõ øèôðîâ äëÿ
ðåøåíèÿ ðàçëè÷íûõ çàäà÷ êðèïòîãðàôèè.
Äî íåäàâíåãî âðåìåíè íè îäíà êíèãà ïî êðèïòîãðàôèè íå îáõîäèëàñü áåç îïèñàíèÿ øèôðà DES (Data Encryption Standard). Ýòîò øèôð
áûë ïðèíÿò â êà÷åñòâå ñòàíäàðòà ÑØÀ â 1977 ãîäó. Åãî îñíîâíûå
ïàðàìåòðû: ðàçìåð áëîêà 64 áèòà, äëèíà êëþ÷à 56 áèò, 16 ðàóíäîâ.
Ýòîò øèôð èíòåíñèâíî èñïîëüçîâàëñÿ áîëåå äâóõ äåñÿòêîâ ëåò è åùå
ñåãîäíÿ âñòðå÷àåòñÿ âî ìíîãèõ ðàáîòàþùèõ ñèñòåìàõ. Íåñìîòðÿ íà
ìíîãî÷èñëåííûå àòàêè ïðîòèâ DES, îí òàê è íå áûë âçëîìàí. Îäíàêî
Ãëàâà 4. Ñîâðåìåííûå øèôðû ñ ñåêðåòíûì êëþ÷îì
88
âûñîêèé óðîâåíü ðàçâèòèÿ âû÷èñëèòåëüíûõ ñðåäñòâ ïîçâîëÿåò ñåãîäíÿ âñêðûâàòü DES ïóòåì ïåðåáîðà êëþ÷åé. Íàïðèìåð, åùå â 1993 ãîäó áûëî îïóáëèêîâàíî òåõíè÷åñêîå îïèñàíèå ñèñòåìû ñòîèìîñòüþ â
îäèí ìèëëèîí äîëëàðîâ, ïîçâîëÿþùåé âçëàìûâàòü ëþáîé êëþ÷ DES
çà 7 ÷àñîâ.  ðåçóëüòàòå DES íå ðåêîìåíäóåòñÿ èñïîëüçîâàòü âî âíîâü
ñîçäàâàåìûõ êðèïòîãðàôè÷åñêèõ ñèñòåìàõ, è ïîýòîìó ìû íå îïèñûâàåì ýòîò øèôð.  2001 ãîäó ïîñëå ñïåöèàëüíî îáúÿâëåííîãî êîíêóðñà â ÑØÀ áûë ïðèíÿò íîâûé ñòàíäàðò íà áëîêîâûé øèôð, íàçâàííûé
AES (Advanced Encryption Standard), â îñíîâó êîòîðîãî áûë ïîëîæåí
øèôð Rijndael, ðàçðàáîòàííûé áåëüãèéñêèìè ñïåöèàëèñòàìè.
Áîëüøèíñòâî ñîâðåìåííûõ áëîêîâûõ øèôðîâ ñòðîÿòñÿ ïî ñõåìàì, çíà÷èòåëüíî îòëè÷àþùèìñÿ îò DES. Òåì íå ìåíåå åñòü îäèí
äåéñòâóþùèé øèôð, ïîñòðîåííûé íà òåõ æå ïðèíöèïàõ, ÷òî è DES,
è ïðåäñòàâëÿþùèé äëÿ íàñ îñîáûé èíòåðåñ. Ýòî ðîññèéñêèé áëîêîâûé øèôð ÃÎÑÒ 28147-89.
Øèôð ÃÎÑÒ 28147-89
Øèôð ÃÎÑÒ 28147-89 [5], êàê ñëåäóåò èç åãî îáîçíà÷åíèÿ, áûë ïðèíÿò â êà÷åñòâå ñòàíäàðòà â 1989 ãîäó. Îñíîâíûå ïàðàìåòðû ÃÎÑÒ
28147-89: äëèíà êëþ÷à 256 áèò, ðàçìåð áëîêà 64 áèòà, 32 ðàóíäà.
ÃÎÑÒ 28147-89 áîëåå óäîáåí äëÿ ïðîãðàììíîé ðåàëèçàöèè, ÷åì DES,
èìåþòñÿ ñâåäåíèÿ î âûèãðûøå ïî âðåìåíè ïðèìåðíî â 1.5 ðàçà.  îòëè÷èå îò DES, ÃÎÑÒ 28147-89, ïî-âèäèìîìó, íå áûë ïðåäìåòîì ñòîëü
ãëóáîêîãî àíàëèçà ñî ñòîðîíû ìèðîâîãî êðèïòîëîãè÷åñêîãî ñîîáùåñòâà. Òåì íå ìåíåå, êàê îòìå÷àþò ñïåöèàëèñòû, êîíñåðâàòèâíûé äèçàéí è âåëè÷èíà îñíîâíûõ ïàðàìåòðîâ (äëèíà êëþ÷à, ðàçìåð áëîêà,
êîëè÷åñòâî ðàóíäîâ) ïîçâîëÿþò óòâåðæäàòü, ÷òî øèôð âðÿä ëè ìîæåò áûòü ñëàáûì. Íèêàêèõ ýôôåêòèâíûõ àòàê ïðîòèâ øèôðà ÃÎÑÒ
28147-89 íå îïóáëèêîâàíî.
 îñíîâå ÃÎÑÒ 28147-89, òàê æå êàê è DES, ëåæèò òàê íàçûâàåìàÿ ñòðóêòóðà Ôåéñòåëà. Áëîê ðàçáèâàåòñÿ íà äâå îäèíàêîâûå ÷àñòè,
Ãëàâà 4. Ñîâðåìåííûå øèôðû ñ ñåêðåòíûì êëþ÷îì
89
ïðàâóþ R è ëåâóþ L. Ïðàâàÿ ÷àñòü îáúåäèíÿåòñÿ ñ êëþ÷åâûì ýëåìåíòîì è ïîñðåäñòâîì íåêîòîðîãî àëãîðèòìà øèôðóåò ëåâóþ ÷àñòü.
Ïåðåä ñëåäóþùèì ðàóíäîì ëåâàÿ è ïðàâàÿ ÷àñòè ìåíÿþòñÿ ìåñòàìè.
Òàêàÿ ñòðóêòóðà ïîçâîëÿåò èñïîëüçîâàòü îäèí è òîò æå àëãîðèòì êàê
äëÿ øèôðîâàíèÿ, òàê è äëÿ äåøèôðîâàíèÿ áëîêà. Ýòî îñîáåííî âàæíî
ïðè àïïàðàòíîé ðåàëèçàöèè, òàê êàê ïðÿìîé è îáðàòíûé øèôðû ôîðìèðóþòñÿ îäíèì è òåì æå óñòðîéñòâîì (ðàçëè÷àåòñÿ òîëüêî ïîðÿäîê
ïîäà÷è ýëåìåíòîâ êëþ÷à).
Ïåðåéäåì ê íåïîñðåäñòâåííîìó îïèñàíèþ øèôðà ÃÎÑÒ 2814789. Ââåäåì íåîáõîäèìûå îïðåäåëåíèÿ è îáîçíà÷åíèÿ. Ïîñëåäîâàòåëüíîñòü èç 32 áèò áóäåì íàçûâàòü ñëîâîì. Áëîê òåêñòà X (64 áèòà),
òàêæå êàê áëîê øèôðîòåêñòà Y , ñîñòîèò èç äâóõ ñëîâ
ëåâîãî L
è ïðàâîãî R, ïðè÷åì L
ñòàðøåå ñëîâî, à R
ìëàäøåå. Ñåêðåòíûé êëþ÷ K (256 áèò) ðàññìàòðèâàåòñÿ ñîñòîÿùèì èç âîñüìè ñëîâ
K = K0 K1 · · · K7 . Íà åãî îñíîâå ñòðîèòñÿ òàê íàçûâàåìûé ðàóíäîâûé
êëþ÷ W = W0 W1 · · · W31 , ñîñòîÿùèé èç 32 ñëîâ (ìåòîä ïîñòðîåíèÿ
ðàóíäîâîãî êëþ÷à áóäåò äàí ïîçæå).
Äëÿ ðàáîòû øèôðà íóæíû 8 òàáëèö S0 , S1 , . . . , S7 (íàçûâàåìûõ òàêæå S-áîêñàìè). Êàæäàÿ òàáëèöà ñîäåðæèò 16 ÷åòûðåõáèòîâûõ
ýëåìåíòîâ, íóìåðóåìûõ ñ 0 ïî 15. Áóäåì îáîçíà÷àòü ÷åðåç Si [j] j -é
ýëåìåíò i-é òàáëèöû. ÃÎÑÒ ðåêîìåíäóåò çàïîëíÿòü êàæäóþ òàáëèöó ðàçëè÷íûìè ÷èñëàìè èç ìíîæåñòâà {0, 1, . . . , 15}, ïåðåñòàâëåííûìè ñëó÷àéíûì îáðàçîì. Ñîäåðæèìîå òàáëèö ôîðìèðóåò äîïîëíèòåëüíûé ñåêðåòíûé ïàðàìåòð øèôðà, îáùèé äëÿ áîëüøîé ãðóïïû ïîëüçîâàòåëåé. Çàìåòèì, ÷òî â DES àíàëîãè÷íûå S-áîêñû ôèêñèðîâàíû è
íåñåêðåòíû.
 øèôðå èñïîëüçóþòñÿ ñëåäóþùèå îïåðàöèè:
+ ñëîæåíèå ñëîâ ïî ìîäóëþ 232 ;
←- öèêëè÷åñêèé ñäâèã ñëîâà âëåâî íà óêàçàííîå ÷èñëî áèò;
⊕ ïîáèòîâîå ¾èñêëþ÷àþùåå èëè¿ äâóõ ñëîâ, ò.å. ïîáèòîâîå ñëîæåíèå ïî ìîäóëþ 2.
Ãëàâà 4. Ñîâðåìåííûå øèôðû ñ ñåêðåòíûì êëþ÷îì
Àëãîðèòì 4.1.
Á ÀÇÎÂÛÉ
ÖÈÊË ØÈÔÐÀ
90
ÃÎÑÒ 28147-89
ÂÕÎÄ:
Áëîê L, R, ðàóíäîâûé êëþ÷ W .
ÂÛÕÎÄ:
Ïðåîáðàçîâàííûé áëîê L, R.
1.
FOR i = 0, 1, . . . , 31 DO
2.
k ← R + Wi , k = (k7 · · · k0 )16 ;
3.
FOR j = 0, 1, . . . , 7 DO
4.
kj ← Sj [kj ];
5.
L ← L ⊕ (k ←- 11);
6.
L ←→ R;
7.
RETURN L, R.
(Íà øàãå 4 àëãîðèòìà èñïîëüçóþòñÿ îòäåëüíûå ÷åòûðåõáèòîâûå ýëåìåíòû ïåðåìåííîé k .)
Ñ ïîìîùüþ áàçîâîãî öèêëà îñóùåñòâëÿåòñÿ øèôðîâàíèå è äåøèôðîâàíèå áëîêà. ×òîáû çàøèôðîâàòü áëîê, ñòðîèì ðàóíäîâûé êëþ÷
W = K0 K1 K2 K3 K4 K 5 K6 K7 K0 K1 K2 K3 K 4 K5 K6 K7
K0 K1 K2 K3 K4 K5 K6 K7 K7 K6 K5 K4 K3 K2 K1 K0 , (4.6)
ïîäàåì íà âõîä X è íà âûõîäå ïîëó÷àåì Y .
×òîáû äåøèôðîâàòü áëîê, ñòðîèì ðàóíäîâûé êëþ÷
W = K0 K1 K2 K 3 K4 K5 K6 K7 K7 K6 K 5 K4 K3 K2 K1 K0
K7 K6 K5 K4 K3 K2 K1 K0 K7 K6 K5 K4 K3 K2 K1 K0 , (4.7)
ïîäàåì íà âõîä Y è íà âûõîäå ïîëó÷àåì X .
Ïðîãðàììíàÿ ðåàëèçàöèÿ îáû÷íî òðåáóåò ïåðåðàáîòêè öèêëà 3
àëãîðèòìà 4.1, òàê êàê ðàáîòà ñ ïîëóáàéòàìè íåýôôåêòèâíà. ßñíî, ÷òî
òî æå ñàìîå ïðåîáðàçîâàíèå ìîæåò áûòü âûïîëíåíî ñ èñïîëüçîâàíèåì ÷åòûðåõ òàáëèö ïî 256 áàéò èëè äâóõ òàáëèö ïî 65536 ïîëóñëîâ.
Íàïðèìåð, ïðè ðàáîòå ñ áàéòàìè èìååì k = (k3 · · · k0 )256 , è øàãè
3 4 àëãîðèòìà 4.1 ïåðåïèñûâàþòñÿ ñëåäóþùèì îáðàçîì:
Ãëàâà 4. Ñîâðåìåííûå øèôðû ñ ñåêðåòíûì êëþ÷îì
3.
4.
91
FOR j = 0, 1, 2, 3 DO
kj ← Tj [kj ].
Òàáëèöû Tj , j = 0, 1, 2, 3, âû÷èñëÿþòñÿ ïðåäâàðèòåëüíî èç Sáîêñîâ:
FOR i = 0, 1, . . . , 255 DO
Tj [i] ← S2j [i mod 16] + 16S2j+1 [i div 16].
ÃÎÑÒ íè÷åãî íå ãîâîðèò î ïðàâèëàõ ôîðìèðîâàíèÿ êëþ÷åâîé èíôîðìàöèè, êðîìå òðåáîâàíèÿ, ÷òîáû êàæäûé S-áîêñ ñîäåðæàë ïåðåñòàíîâêó ðàçëè÷íûõ ÷èñåë.  òî æå âðåìÿ ÿñíî, ÷òî, íàïðèìåð, íóëåâîé êëþ÷ èëè òðèâèàëüíî çàäàííûå S-áîêñû (îòîáðàæàþùèå k â
ñåáÿ) íå îáåñïå÷èâàþò ñåêðåòíîñòè øèôðà.
4.3.
Îñíîâíûå ðåæèìû ôóíêöèîíèðîâàíèÿ
áëîêîâûõ øèôðîâ
Áëîêîâûå øèôðû ïðèìåíÿþòñÿ äëÿ ðåøåíèÿ ìíîãèõ çàäà÷ êðèïòîãðàôèè. Â ýòîì ðàçäåëå ìû ðàññìîòðèì îñíîâíûå ðåæèìû èõ èñïîëüçîâàíèÿ.
 ïðåäûäóùåì ðàçäåëå áûëè äàíû ïðèìåðû ðåàëüíûõ áëîêîâûõ
øèôðîâ. Òåïåðü ìû ìîæåì äóìàòü î (èäåàëèçèðîâàííîì) áëîêîâîì
øèôðå, êàê î ïðåîáðàçîâàíèè âõîäíîãî áëîêà X â âûõîäíîé áëîê Y
ñ ó÷àñòèåì ñåêðåòíîãî êëþ÷à K ,
Y = EK (X),
ïðè÷åì ýòî ïðåîáðàçîâàíèå äîëæíî èìåòü ñëåäóþùèå ñâîéñòâà:
1) ïðè èçâåñòíîì Y , íî íåèçâåñòíîì K ïðàêòè÷åñêè íåâîçìîæíî
óçíàòü X ;
Ãëàâà 4. Ñîâðåìåííûå øèôðû ñ ñåêðåòíûì êëþ÷îì
92
2) ïðè ïðîèçâîëüíûõ èçâåñòíûõ X è Y , íî íåèçâåñòíîì K ïðàêòè÷åñêè íåâîçìîæíî óçíàòü K .
Âíà÷àëå ðàññìîòðèì êëàññè÷åñêóþ çàäà÷ó øèôðîâàíèÿ ñîîáùåíèé ïðè ïîìîùè áëîêîâûõ øèôðîâ.
Ðåæèì ECB
Íàçâàíèå ðåæèìà ECB (Electronic CodeBook) ìîæíî ïåðåâåñòè êàê
ýëåêòðîííàÿ êîäîâàÿ êíèãà.
Ñîîáùåíèå X ðàçáèâàåòñÿ íà áëîêè X = X1 , X2 , . . . , Xt . Êàæäûé áëîê øèôðóåòñÿ áëîêîâûì øèôðîì
Yi = EK (Xi ),
1 ≤ i ≤ t.
Ïîëó÷àåì çàøèôðîâàííîå ñîîáùåíèå Y = Y1 , Y2 , . . . , Yt . Äåøèôðîâàíèå âûïîëíÿåòñÿ ïî ïðàâèëó
−1
Xi = EK
(Yi ),
1 ≤ i ≤ t.
Íåòðóäíî âèäåòü, ÷òî äåøèôðîâàíèå ñîîáùåíèÿ ìîæíî ïðîèçâîäèòü, âûáèðàÿ áëîêè øèôðîòåêñòà â ïðîèçâîëüíîì ïîðÿäêå. Òàêîé
ðåæèì óäîáåí âî ìíîãèõ ðåàëüíûõ ñèòóàöèÿõ. Íàïðèìåð, ìîæíî ðàáîòàòü ñ áàçîé äàííûõ, õðàíÿùåéñÿ â çàøèôðîâàííîì âèäå. Îäíàêî ïðè òàêîì èñïîëüçîâàíèè îäèíàêîâûå çàïèñè áóäóò çàøèôðîâàíû
îäèíàêîâî. Ãîâîðÿò, ÷òî â ðåæèìå ECB øèôð ñîõðàíÿåò ¾îáðàç äàííûõ¿, ò.å. íåêèé ¾ðèñóíîê¿ èëè øàáëîí, õàðàêòåðíûé äëÿ äàííûõ.
Ýòî ìîæåò äàòü íåêîòîðóþ èíôîðìàöèþ ïðîòèâíèêó. Íàïðèìåð, åñëè
êîëè÷åñòâî ðàçëè÷íûõ çàïèñåé â áàçå äàííûõ íåâåëèêî (÷òî íåðåäêî
ñëó÷àåòñÿ), òî ïðîòèâíèê ìîæåò ñîñòàâèòü ñëîâàðü øèôðîòåêñòîâ è
âñêðûòü áàçó íà îñíîâå ÷àñòîòíîãî àíàëèçà. Çàìåòèì, ÷òî åìó â ýòîì
ñëó÷àå íå ïîíàäîáèòñÿ âñêðûâàòü ñàì øèôð.
Íåêîòîðûå àâòîðû ðåêîìåíäóþò èñïîëüçîâàòü ðåæèì ECB òîëüêî
â ñëó÷àÿõ, êîãäà ðàçìåð îòäåëüíîãî ýëåìåíòà äàííûõ â ñîîáùåíèè,
Ãëàâà 4. Ñîâðåìåííûå øèôðû ñ ñåêðåòíûì êëþ÷îì
93
ê êîòîðîìó òðåáóåòñÿ îñóùåñòâëÿòü íåïîñðåäñòâåííûé (ïðÿìîé) äîñòóï, ìåíüøå ðàçìåðà áëîêà. Îñòàòîê áëîêà, ñâîáîäíûé îò äàííûõ,
ðåêîìåíäóåòñÿ çàïîëíÿòü ñëó÷àéíî âûáèðàåìûìè áèòàìè. Òîãäà äàæå îäèíàêîâûå ýëåìåíòû äàííûõ áóäóò èìåòü ðàçíûå øèôðîòåêñòû.
Ïðè äåøèôðîâàíèè áèòû çàïîëíåíèÿ ïðîñòî îòáðàñûâàþòñÿ.
Åñëè ðàçìåð ýëåìåíòà äàííûõ ïðåâûøàåò ðàçìåð áëîêà, òî ÷àñòî
ðåêîìåíäóþò èñïîëüçîâàòü ðåæèì CBC.
Ðåæèì CBC
Íàçâàíèå ðåæèìà CBC (Cipher-Block Chaining) ïåðåâîäèòñÿ êàê ñöåïëåíèå áëîêîâ øèôðà.
Çàøèôðîâàííîå ñîîáùåíèå ïîëó÷àåòñÿ ïî ñëåäóþùåìó ïðàâèëó:
Yi = EK (Xi ⊕ Yi−1 ),
1 ≤ i ≤ t,
ò.å. êàæäûé ïîñëåäóþùèé áëîê îòêðûòîãî òåêñòà ïðåäâàðèòåëüíî çàêðûâàåòñÿ ïðåäûäóùèì çàøèôðîâàííûì áëîêîì. Ñëîâî Y0 äîëæíî
áûòü îïðåäåëåíî çàðàíåå è èçâåñòíî ïðè øèôðîâàíèè è äåøèôðîâàíèè. Ïîëó÷åííîå çàøèôðîâàííîå ñîîáùåíèå ìîæíî äåøèôðîâàòü
ñëåäóþùèì îáðàçîì:
−1
Xi = Yi−1 ⊕ EK
(Yi ),
1 ≤ i ≤ t.
Ìû ïîëó÷àåì øèôðîòåêñò, â êîòîðîì êàæäûé ñëåäóþùèé áëîê
çàâèñèò îò ïðåäûäóùèõ. Äàííûé ðåæèì ðàçðóøàåò ¾îáðàç äàííûõ¿.
Äàæå åñëè âñå áëîêè X èäåíòè÷íû, øèôðîòåêñò áóäåò ñîñòîÿòü èç
ðàçëè÷íûõ áëîêîâ Y . Ýòîò ðåæèì ïðåäïî÷òèòåëåí ïðè øèôðîâàíèè
ñîîáùåíèé, ðàçìåð êîòîðûõ ïðåâûøàåò ðàçìåð áëîêà. Îäíàêî äåøèôðîâàòü ñîîáùåíèå ìîæíî òîëüêî ïîñëåäîâàòåëüíî, íà÷èíàÿ ñ ïåðâîãî
áëîêà.
Ãëàâà 4. Ñîâðåìåííûå øèôðû ñ ñåêðåòíûì êëþ÷îì
4.4.
94
Ïîòîêîâûå øèôðû
 ãëàâå 3 ìû ðàññìîòðåëè øèôð Âåðíàìà è óñòàíîâèëè, ÷òî îí ÿâëÿåòñÿ ñîâåðøåííî ñåêðåòíûì, ò.å. ïðè åãî èñïîëüçîâàíèè ïðîòèâíèê, ïåðåõâàòèâøèé çàøèôðîâàííîå ñîîáùåíèå, íå ïîëó÷àåò íèêàêîé
èíôîðìàöèè îá èñõîäíîì ñîîáùåíèè.  øèôðå Âåðíàìà çàøèôðîâàííîå ñîîáùåíèå y1 , y2 , . . . , yk ïîëó÷àåòñÿ èç èñõîäíîãî ñîîáùåíèÿ
x1 , x2 , . . . , xk è êëþ÷à z1 , z2 , . . . , zk ïðè ïîìîùè îïåðàöèè øèôðîâàíèÿ, çàäàâàåìîé ðàâåíñòâîì
yi = xi ⊕ zi ,
i = 1, 2, . . . , k.
(4.8)
Ìû âèäåëè, ÷òî äàííûé øèôð ñîâåðøåíåí òîëüêî â òîì ñëó÷àå,
åñëè êëþ÷ z1 , z2 , . . . , zk îáðàçîâàí èç íåçàâèñèìûõ è ðàâíîâåðîÿòíûõ
ñèìâîëîâ è èñïîëüçóåòñÿ òîëüêî îäèí ðàç. Ýòî ïðèâîäèò ê íåîáõîäèìîñòè ãåíåðèðîâàòü ñëó÷àéíûå ïîñëåäîâàòåëüíîñòè î÷åíü áîëüøîãî
îáúåìà è ïåðåäàâàòü èõ ïî çàêðûòûì êàíàëàì ñâÿçè, ÷òî âåñüìà çàòðóäíèòåëüíî. Ïîýòîìó äàâíî áûëà âûñêàçàíà èäåÿ èñïîëüçîâàòü â
êà÷åñòâå êëþ÷à ïîñëåäîâàòåëüíîñòè íå ñëó÷àéíûå, à ïîðîæäåííûå
ïðè ïîìîùè ãåíåðàòîðîâ ïñåâäîñëó÷àéíûõ ÷èñåë.  ýòîì ñëó÷àå â
êà÷åñòâå ñåêðåòíîãî êëþ÷à èñïîëüçóåòñÿ íà÷àëüíîå çíà÷åíèå èëè ñîñòîÿíèå ãåíåðàòîðà. Îäíàêî íàäî ÷åòêî îñîçíàâàòü, ÷òî â ýòîì ñëó÷àå
ñèñòåìà óæå íå áóäåò ñîâåðøåííî ñåêðåòíîé. Ìàêñèìóì íà ÷òî ìû
ìîæåì íàäåÿòüñÿ, ýòî òî, ÷òî äëÿ ðàñêðûòèÿ ýòîé ñèñòåìû ïîòðåáóåòñÿ î÷åíü ìíîãî âðåìåíè (íàïðèìåð, íóæíî áóäåò âûïîëíèòü ïåðåáîð âñåõ âîçìîæíûõ íà÷àëüíûõ ñîñòîÿíèé ãåíåðàòîðà).  êà÷åñòâå
âîçìåùåíèÿ çà ïîòåðþ ñîâåðøåííîñòè ìû ïîëó÷àåì âîçìîæíîñòü èñïîëüçîâàòü êîðîòêèå (îáû÷íî íåñêîëüêî ñîòåí áèò) ñåêðåòíûå êëþ÷è,
êîòîðûå çíà÷èòåëüíî ïðîùå ðàñïðåäåëÿòü è õðàíèòü (à ïðè èñïîëüçîâàíèè ñèñòåì ñ îòêðûòûì êëþ÷îì èõ ìîæíî è âû÷èñëÿòü).
Îïðåäåëåíèå 4.1. Øèôð, ïîñòðîåííûé íà îñíîâå (4.8), ãäå â êà÷åñòâå z1 , z2 , . . . , zk èñïîëüçóåòñÿ ïñåâäîñëó÷àéíàÿ ïîñëåäîâàòåëüíîñòü,
íàçûâàåòñÿ ïîòîêîâûì øèôðîì (stream cipher).
Ãëàâà 4. Ñîâðåìåííûå øèôðû ñ ñåêðåòíûì êëþ÷îì
95
Êàê ïðàâèëî, èñõîäíîå ñîîáùåíèå è êëþ÷åâàÿ ïîñëåäîâàòåëüíîñòü
ïðåäñòàâëÿþò ñîáîé íåçàâèñèìûå ïîòîêè áèò. Òàê êàê øèôðóþùåå
(è äåøèôðóþùåå) ïðåîáðàçîâàíèå äëÿ âñåõ ïîòîêîâûõ øèôðîâ îäíî è òî æå, îíè ðàçëè÷àþòñÿ òîëüêî ñïîñîáîì ïîñòðîåíèÿ ãåíåðàòîðîâ ïñåâäîñëó÷àéíûõ ÷èñåë. Äåéñòâèòåëüíî, ÷òîáû èç øèôðîòåêñòà
y1 , y2 , . . . , yk , ïîëó÷åííîãî ïî ôîðìóëå (4.8), âîññòàíîâèòü ñîîáùåíèå
x1 , x2 , . . . , xk , íåîáõîäèìî ñãåíåðèðîâàòü òî÷íî òàêóþ æå ïîñëåäîâàòåëüíîñòü z1 , z2 , . . . , zk , ÷òî è ïðè øèôðîâàíèè, è èñïîëüçîâàòü äëÿ
äåøèôðîâàíèÿ ôîðìóëó
xi = yi ⊕ zi ,
i = 1, 2, . . . , k.
(4.9)
Ï ð è ì å ð 4.1. Îäèí èç ñàìûõ ïðîñòûõ ãåíåðàòîðîâ ïñåâäîñëó÷àéíûõ ÷èñåë (ëèíåéíûé êîíãðóýíòíûé ãåíåðàòîð) ðàáîòàåò ïî ñõåìå
zi+1 = (azi + b) mod c,
(4.10)
ãäå a, b, c
íåêîòîðûå êîíñòàíòû, à zi+1
î÷åðåäíîå ïñåâäîñëó÷àéíîå ÷èñëî, âû÷èñëÿåìîå ïî ïðåäûäóùåìó zi . Îáÿçàòåëüíî çàäàåòñÿ íà÷àëüíîå çíà÷åíèå z0 . Âîçüìåì â êà÷åñòâå ïðèìåðà a = 5, b = 12,
c = 23, è ïóñòü z0 = 4. Âû÷èñëèì íåñêîëüêî ýëåìåíòîâ ïîñëåäîâàòåëüíîñòè:
z1 = (4 · 5 + 12) mod 23 = 9,
z2 = (9 · 5 + 12) mod 23 = 11,
z3 = (11 · 5 + 12) mod 23 = 21,
z4 = (21 · 5 + 12) mod 23 = 2,
z5 = (2 · 5 + 12) mod 23 = 22,
z6 = (22 · 5 + 12) mod 23 = 7,
z7 = (7 · 5 + 12) mod 23 = 1.
Ïîëó÷åííàÿ ïîñëåäîâàòåëüíîñòü âíåøíå âûãëÿäèò êàê äîâîëüíî ñëó÷àéíàÿ.
t
u
Äëÿ èñïîëüçîâàíèÿ â êðèïòîãðàôè÷åñêèõ öåëÿõ ãåíåðàòîð äîëæåí
óäîâëåòâîðÿòü ñëåäóþùèì îñíîâíûì òðåáîâàíèÿì:
Ãëàâà 4. Ñîâðåìåííûå øèôðû ñ ñåêðåòíûì êëþ÷îì
96
1) ïåðèîä ïîñëåäîâàòåëüíîñòè äîëæåí áûòü î÷åíü áîëüøîé;
2) ïîðîæäàåìàÿ ïîñëåäîâàòåëüíîñòü äîëæíà áûòü ¾ïî÷òè¿ íåîòëè÷èìà îò äåéñòâèòåëüíî ñëó÷àéíîé, â ÷àñòíîñòè, âû÷èñëåíèå
÷èñëà zi+1 ïî èçâåñòíûì ïðåäûäóùèì ýëåìåíòàì ïîñëåäîâàòåëüíîñòè áåç çíàíèÿ êëþ÷à äîëæíî áûòü òðóäíîé, ïðàêòè÷åñêè
íåðåøàåìîé çàäà÷åé.
Ðàññìîòðåííûé âûøå ëèíåéíûé êîíãðóýíòíûé ãåíåðàòîð ñîâåðøåííî íå ãîäèòñÿ äëÿ êðèïòîãðàôè÷åñêèõ öåëåé, òàê êàê èçâåñòíû
ïðîñòûå àëãîðèòìû, ïîçâîëÿþùèå ïîëíîñòüþ âîññòàíîâèòü ïàðàìåòðû ãåíåðàòîðà âñåãî ïî íåñêîëüêèì ýëåìåíòàì ïîðîæäàåìîé èì ïîñëåäîâàòåëüíîñòè.
 êà÷åñòâå ïðèìåðîâ êðèïòîñòîéêèõ ãåíåðàòîðîâ ïñåâäîñëó÷àéíûõ ÷èñåë ìû ðàññìîòðèì ðåæèìû OFB è CTR áëîêîâûõ øèôðîâ è
àëãîðèòì RC4.
Ðåæèì OFB áëîêîâîãî øèôðà
Íàçâàíèå ðåæèìà OFB (Output FeedBack) ïåðåâîäèòñÿ êàê îáðàòíàÿ
ñâÿçü ïî âûõîäó.  ýòîì ðåæèìå áëîêîâûé øèôð íà îñíîâå ñåêðåòíîãî êëþ÷à K è íåêîòîðîãî èíèöèàëèçèðóþùåãî âåêòîðà Y0 ôîðìèðóåò
ïñåâäîñëó÷àéíóþ ïîñëåäîâàòåëüíîñòü r -áèòîâûõ ÷èñåë z1 , z2 , . . . , zk ,
êîòîðàÿ ìîæåò èñïîëüçîâàòüñÿ â (4.8) è (4.9) ñîîòâåòñòâåííî äëÿ øèôðîâàíèÿ è äåøèôðîâàíèÿ ñîîáùåíèÿ. Áóäåì ñ÷èòàòü, êàê è ðàíåå, ÷òî
ðàçìåð áëîêà øèôðà ðàâåí n áèò.
Ïñåâäîñëó÷àéíàÿ ïîñëåäîâàòåëüíîñòü ïîëó÷àåòñÿ ïî ñõåìå
Yi = EK (Yi−1 ),
zi = r ñòàðøèõ áèò Yi ,
(çäåñü r , 1 ≤ r ≤ n,
ïàðàìåòð ìåòîäà).
1≤i≤k
Ãëàâà 4. Ñîâðåìåííûå øèôðû ñ ñåêðåòíûì êëþ÷îì
97
Ïðè èñïîëüçîâàíèè ñòîéêîãî áëîêîâîãî øèôðà ìîæíî ïîëó÷èòü
êðèïòîñòîéêèé ãåíåðàòîð, îòâå÷àþùèé ïðèâåäåííûì âûøå òðåáîâàíèÿì. À èìåííî, ñðåäíÿÿ äëèíà ïåðèîäà ïñåâäîñëó÷àéíîé ïîñëåäîâàòåëüíîñòè (ïðè ñëó÷àéíî âûáðàííûõ K è Y0 ) ñîñòàâëÿåò ïðèìåðíî r2n−1 áèò [23]. Êðîìå òîãî, ïñåâäîñëó÷àéíàÿ ïîñëåäîâàòåëüíîñòü
¾íåïðåäñêàçóåìà¿ äëÿ ïðîòèâíèêà, òàê êàê âîçìîæíîñòü ïðåäñêàçàíèÿ
(âû÷èñëåíèÿ) zi+1 íà îñíîâå z1 , . . . , zi îçíà÷àëà áû íåñòîéêîñòü øèôðà ïî îòíîøåíèþ ê àòàêå ïî èçâåñòíîìó òåêñòó. Ïðåäñêàçàíèå zi+1
ñòàíîâèòñÿ äàæå áîëåå òðóäíîé çàäà÷åé, ÷åì âçëîì áëîêîâîãî øèôðà,
åñëè r < n [23].
Îáðàòèì âíèìàíèå íà îäíó îñîáåííîñòü, õàðàêòåðíóþ äëÿ âñåõ
ïîòîêîâûõ øèôðîâ. Äëÿ øèôðîâàíèÿ êàæäîãî îòäåëüíîãî ñîîáùåíèÿ
íåîáõîäèìî èñïîëüçîâàòü ðàçíûå K è/èëè Y0 .  ïðîòèâíîì ñëó÷àå
íåñêîëüêî ñîîáùåíèé áóäóò øèôðîâàòüñÿ ñ ïîìîùüþ îäíèõ è òåõ æå
ïîñëåäîâàòåëüíîñòåé z , è òàêîé øèôð ìîæåò áûòü ðàñêðûò. Ïîÿñíèì
ñóòü ïðîáëåìû. Ïóñòü äâà ñîîáùåíèÿ u1 , u2 , . . . , uk è v1 , v2 , . . . , vk çàøèôðîâàíû ñ ïîìîùüþ îäíîé è òîé æå ïîñëåäîâàòåëüíîñòè z . Òîãäà
øèôðîòåêñòû áóäóò èìåòü âèä
u1 ⊕ z1 , u2 ⊕ z2 , . . . , uk ⊕ zk è
v1 ⊕ z1 , v2 ⊕ z2 , . . . , vk ⊕ zk .
Ñëîæèì îáà øèôðîòåêñòà è, ñ ó÷åòîì ðàâåíñòâà zi ⊕ zi = 0, ïîëó÷èì
ïîñëåäîâàòåëüíîñòü
u1 ⊕ v1 , u2 ⊕ v2 , . . . , uk ⊕ vk .
Ìû ïîëó÷èëè àíàëîã òàê íàçûâàåìîãî ¾øèôðà ñ áåãóùèì êëþ÷îì¿,
êîãäà îäèí òåêñò øèôðóåòñÿ ñ ïîìîùüþ äðóãîãî òåêñòà, âçÿòîãî èç
îïðåäåëåííîãî ìåñòà îïðåäåëåííîé êíèãè. Èçâåñòíî, ÷òî òàêîé øèôð
íå ñòîåê, õîòÿ èñïîëüçîâàëñÿ â ýïîõó ¾äîíàó÷íîé¿ êðèïòîãðàôèè [23].
Ñòàòèñòè÷åñêèé àíàëèç, îñíîâàííûé íà èçáûòî÷íîñòè òåêñòîâ, ïîçâîëÿåò â áîëüøèíñòâå ñëó÷àåâ äîñòàòî÷íî òî÷íî âîññòàíîâèòü îáà ñîîáùåíèÿ.
Ãëàâà 4. Ñîâðåìåííûå øèôðû ñ ñåêðåòíûì êëþ÷îì
98
Äåøèôðîâàíèå ñîîáùåíèé äëÿ îïèñàííîãî ðåæèìà áëîêîâîãî
øèôðà ìîæåò ïðîèçâîäèòüñÿ òîëüêî ñ íà÷àëà, òàê êàê íåâîçìîæíî ïîëó÷èòü ïðîèçâîëüíûé ýëåìåíò ïîñëåäîâàòåëüíîñòè z , íå âû÷èñëèâ
ïðåäûäóùèå.  ýòîì ñìûñëå ðåæèì àíàëîãè÷åí ðåæèìó CBC. Ïðåèìóùåñòâî ðåæèìà OFB çàêëþ÷àåòñÿ â òîì, ÷òî ïîñëåäîâàòåëüíîñòü
z ìîæåò áûòü ñôîðìèðîâàíà çàðàíåå äëÿ òîãî, ÷òîáû áûñòðî øèôðîâàòü èëè äåøèôðîâàòü ñîîáùåíèÿ ñ ïîìîùüþ (4.8), (4.9) â ìîìåíò
èõ ïîñòóïëåíèÿ. Ýòî ìîæåò áûòü àêòóàëüíî äëÿ ñèñòåì, îáðàáàòûâàþùèõ äàííûå â ðåàëüíîì ìàñøòàáå âðåìåíè.
Ðåæèì CTR áëîêîâîãî øèôðà
Íàçâàíèå äàííîãî ðåæèìà ïðîèñõîäèò îò ñëîâà CounTeR
ñ÷åò÷èê.
Ýòîò ðåæèì î÷åíü ïîõîæ íà OFB, íî â íåì øèôðóåòñÿ íå ïðåäûäóùèé
âûõîä øèôðà, à ïðîñòî ñ÷åò÷èê, óâåëè÷èâàåìûé íà êàæäîì øàãå íà
ïîñòîÿííîå ÷èñëî (îáû÷íî 1). Òî÷íåå, ñõåìà âûãëÿäèò ñëåäóþùèì
îáðàçîì:
zi = r ñòàðøèõ áèò EK (Y0 + i),
i = 1, 2, 3, . . . ,
ãäå r
ïàðàìåòð.
Ïðè èñïîëüçîâàíèè ¾èäåàëüíîãî¿ áëîêîâîãî øèôðà ðåæèì CTR
îáåñïå÷èâàåò òå æå ïàðàìåòðû ñòîéêîñòè, ÷òî è OFB. Ïðåèìóùåñòâî
ðåæèìà CTR ñîñòîèò â òîì, ÷òî ëþáîé ýëåìåíò ïîñëåäîâàòåëüíîñòè z
ìîæåò áûòü âû÷èñëåí íåïîñðåäñòâåííî. Ýòî äàåò âîçìîæíîñòü øèôðîâàòü è äåøèôðîâàòü ëþáûå ôðàãìåíòû ñîîáùåíèÿ íåçàâèñèìî äðóã
îò äðóãà.
Àëãîðèòì RC4
Àëãîðèòì RC4, ïðåäëîæåííûé Ðèâåñòîì â 1994 ãîäó, îòíîñèòñÿ ê
êëàññó àëãîðèòìîâ, ðàçðàáîòàííûõ ñïåöèàëüíî äëÿ ïîòîêîâûõ øèôðîâ. Ãåíåðàòîðû ïñåâäîñëó÷àéíûõ ÷èñåë, ïîñòðîåííûå ñ ïîìîùüþ
Ãëàâà 4. Ñîâðåìåííûå øèôðû ñ ñåêðåòíûì êëþ÷îì
99
òàêèõ àëãîðèòìîâ, êàê ïðàâèëî, çíà÷èòåëüíî áûñòðåå ãåíåðàòîðîâ, îñíîâàííûõ íà áëîêîâûõ øèôðàõ.
Àëãîðèòì RC4 ðàáîòàåò ñ n-áèòîâûìè ñëîâàìè (îáû÷íî n = 8).
Âñå âû÷èñëåíèÿ ïðîâîäÿòñÿ ïî ìîäóëþ 2n (îñòàòîê x mod 2n âû÷èñëÿåòñÿ î÷åíü áûñòðî ïóòåì âûäåëåíèÿ n ìëàäøèõ áèò â x ñ ïîìîùüþ
ëîãè÷åñêîé îïåðàöèè ¾è¿). RC4 èñïîëüçóåò L-ñëîâíûé êëþ÷ K =
K0 K1 . . . KL−1 è ãåíåðèðóåò ïîñëåäîâàòåëüíîñòü ñëîâ z̄ = z1 z2 z3 . . . ,
êîíêðåòíûé âèä êîòîðîé îïðåäåëÿåòñÿ êëþ÷îì K . Ñîñòîÿíèå ãåíåðàòîðà çàäàåòñÿ òàáëèöåé S èç 2n ñëîâ è äâóõ ïåðåìåííûõ i è j .  êàæäûé ìîìåíò âðåìåíè òàáëèöà S ñîäåðæèò âñå âîçìîæíûå n-áèòîâûå
÷èñëà â ïåðåìåøàííîì âèäå. Òàê êàê êàæäûé ýëåìåíò òàáëèöû ïðèíèìàåò çíà÷åíèÿ â ïðîìåæóòêå [0, 2n − 1], òî åãî ìîæíî òðàêòîâàòü
äâîÿêî: ëèáî êàê ÷èñëî, ëèáî êàê íîìåð äðóãîãî ýëåìåíòà â òàáëèöå. Ñåêðåòíûé êëþ÷ çàäàåò òîëüêî íà÷àëüíîå ïåðåìåøèâàíèå ÷èñåë â
òàáëèöå, êîòîðîå ôîðìèðóåòñÿ ñ ïîìîùüþ ñëåäóþùåãî àëãîðèòìà:
j ← 0, S ← (0, 1, . . . , 2n − 1);
FOR i = 0, 1, . . . , 2n − 1 DO
j ← (j + Si + Ki mod L ) mod 2n ,
S j ↔ Si ;
i ← 0, j ← 0.
Ïîñëå ýòîãî ãåíåðàòîð ãîòîâ ê ðàáîòå. Ãåíåðàöèÿ î÷åðåäíîãî ïñåâäîñëó÷àéíîãî ñëîâà zi îñóùåñòâëÿåòñÿ ñëåäóþùèì îáðàçîì:
i ← (i + 1) mod 2n ;
j ← (j + Si ) mod 2n ;
Sj ↔ Si ;
t ← (Si + Sj ) mod 2n ;
zi ← St .
Ï ð è ì å ð 4.2. Ïóñòü n = 3, K = 25 (L = 2).
Ãëàâà 4. Ñîâðåìåííûå øèôðû ñ ñåêðåòíûì êëþ÷îì
100
Ñôîðìèðóåì íà÷àëüíóþ ïåðåñòàíîâêó ÷èñåë â òàáëèöå S (âñå âû÷èñëåíèÿ ïðîâîäèì ïî ìîäóëþ 8):
i = 0,
i = 1,
i = 2,
i = 3,
i = 4,
i = 5,
i = 6,
i = 7,
j
j
j
j
j
j
j
j
j
= 0,
= 0 + 0 + 2 = 2,
= 2 + 1 + 5 = 0,
= 0 + 0 + 2 = 2,
= 2 + 3 + 5 = 2,
= 2 + 4 + 2 = 0,
= 0 + 5 + 5 = 2,
= 2 + 6 + 2 = 2,
= 2 + 7 + 5 = 6,
S
S
S
S
S
S
S
S
S
= (0, 1, 2, 3, 4, 5, 6, 7),
= (2, 1, 0, 3, 4, 5, 6, 7),
= (1, 2, 0, 3, 4, 5, 6, 7),
= (1, 2, 0, 3, 4, 5, 6, 7),
= (1, 2, 3, 0, 4, 5, 6, 7),
= (4, 2, 3, 0, 1, 5, 6, 7),
= (4, 2, 5, 0, 1, 3, 6, 7),
= (4, 2, 6, 0, 1, 3, 5, 7),
= (4, 2, 6, 0, 1, 3, 7, 5).
Òåïåðü âû÷èñëèì íåñêîëüêî ïåðâûõ ýëåìåíòîâ ïñåâäîñëó÷àéíîé ïîñëåäîâàòåëüíîñòè z̄ :
i = 1,
i = 2,
i = 3,
i = 4,
i = 5,
i = 6,
j
j
j
j
j
j
= 0 + 2 = 2,
= 2 + 2 = 4,
= 4 + 0 = 4,
= 4 + 0 = 4,
= 4 + 3 = 7,
= 7 + 7 = 6,
S
S
S
S
S
S
= (4, 6, 2, 0, 1, 3, 7, 5),
= (4, 6, 1, 0, 2, 3, 7, 5),
= (4, 6, 1, 2, 0, 3, 7, 5),
= (4, 6, 1, 2, 0, 3, 7, 5),
= (4, 6, 1, 2, 0, 5, 7, 3),
= (4, 6, 1, 2, 0, 5, 7, 3),
t = 2 + 6 = 0,
t = 1 + 2 = 3,
t = 2 + 0 = 2,
t = 0 + 0 = 0,
t = 5 + 3 = 0,
t = 7 + 7 = 6,
z1
z2
z3
z4
z5
z6
= 4,
= 0,
= 1,
= 4,
= 4,
=7
è ò.ä. ×òîáû âîñïîëüçîâàòüñÿ ôîðìóëîé (4.8) äëÿ ïîëó÷åíèÿ øèôðà,
÷èñëà zi çàïèñûâàåì â äâîè÷íîì âèäå.  ðàññìîòðåííîì ïðèìåðå
êàæäîå ÷èñëî zi ïðåäñòàâëÿåòñÿ òðåìÿ áèòàìè, è ìû ïîëó÷àåì ïîñëåäîâàòåëüíîñòü
z̄ = 1 0 0 0 0 0 0 0 1 1 0 0 1 0 0 1 1 1 . . .
t
u
Ãëàâà 4. Ñîâðåìåííûå øèôðû ñ ñåêðåòíûì êëþ÷îì
4.5.
101
Êðèïòîãðàôè÷åñêèå õåø-ôóíêöèè
Õåø-ôóíêöèè (hash functions) íàõîäÿò øèðîêîå ïðèìåíåíèå â êðèïòîãðàôèè, îñîáåííî ïðè ïîñòðîåíèè ñèñòåì öèôðîâîé ïîäïèñè è ðàçëè÷íûõ êðèïòîãðàôè÷åñêèõ ïðîòîêîëîâ, êîòîðûå áóäóò ðàññìàòðèâàòüñÿ â ïîñëåäóþùèõ ãëàâàõ.  ýòîì ðàçäåëå ìû ñôîðìóëèðóåì îñíîâíûå òðåáîâàíèÿ ê êðèïòîãðàôè÷åñêè ñòîéêèì õåø-ôóíêöèÿì è
ðàññìîòðèì îäèí èç ñïîñîáîâ èõ âû÷èñëåíèÿ.
Îïðåäåëåíèå 4.2. Õåø-ôóíêöèåé íàçûâàåòñÿ ëþáàÿ ôóíêöèÿ
y = h(x1 x2 . . . xn ),
êîòîðàÿ ñòðîêå (ñîîáùåíèþ) x1 x2 . . . xn ïðîèçâîëüíîé äëèíû n ñòàâèò â ñîîòâåòñòâèå öåëîå ÷èñëî ôèêñèðîâàííîé äëèíû.
Ïðèìåðîì õåø-ôóíêöèè ìîæåò ñëóæèòü êîíòðîëüíàÿ ñóììà äëÿ
ñîîáùåíèÿ.  ýòîì ñëó÷àå
h(x1 x2 . . . xn ) = (x1 + x2 + . . . + xn ) mod 2w ,
ãäå w
ðàçìåð ìàøèííîãî ñëîâà. Äëèíà ñëîâà, ïîëó÷àåìîãî êàê
çíà÷åíèå ýòîé õåø-ôóíêöèè, ñîñòàâëÿåò w áèò íåçàâèñèìî îò äëèíû
ñîîáùåíèÿ. Êîíòðîëüíûå ñóììû î÷åíü ÷àñòî èñïîëüçóþòñÿ äëÿ îáíàðóæåíèÿ íåïðåäíàìåðåííûõ îøèáîê â ñîîáùåíèè (ïðè èçìåíåíèè
îäíîãî ñèìâîëà êîíòðîëüíàÿ ñóììà èçìåíèòñÿ). Îäíàêî î÷åíü ëåãêî
âíåñòè ïðåäíàìåðåííóþ îøèáêó â ñîîáùåíèå è ñîõðàíèòü ïðè ýòîì
çíà÷åíèå êîíòðîëüíîé ñóììû. Åñëè áû òàêàÿ õåø-ôóíêöèÿ èñïîëüçîâàëàñü, íàïðèìåð, ïðè ãåíåðàöèè ýëåêòðîííîé ïîäïèñè, òî áûëî áû
î÷åíü ëåãêî èçìåíèòü ñîäåðæàíèå ïîäïèñàííîãî ñîîáùåíèÿ. Ïîýòîìó ðàññìîòðåííàÿ õåø-ôóíêöèÿ íå ãîäèòñÿ äëÿ êðèïòîãðàôè÷åñêèõ
ïðèìåíåíèé.
Ñôîðìóëèðóåì îñíîâíûå òðåáîâàíèÿ, ïðåäúÿâëÿåìûå ê êðèïòîãðàôè÷åñêèì õåø-ôóíêöèÿì. Ïóñòü x
íåêîòîðàÿ ñòðîêà (ñîîáùåíèå). Òîãäà
Ãëàâà 4. Ñîâðåìåííûå øèôðû ñ ñåêðåòíûì êëþ÷îì
102
1) äëÿ ëþáîãî çàäàííîãî x âû÷èñëåíèå h(x) äîëæíî âûïîëíÿòüñÿ
îòíîñèòåëüíî áûñòðî;
2) ïðè èçâåñòíîì y äîëæíî áûòü òðóäíî (ïðàêòè÷åñêè íåâîçìîæíî) íàéòè x, äëÿ êîòîðîãî y = h(x);
3) ïðè èçâåñòíîì ñîîáùåíèè x äîëæíî áûòü òðóäíî íàéòè äðóãîå
ñîîáùåíèå x0 6= x, òàêîå, ÷òî h(x0 ) = h(x);
4) äîëæíî áûòü òðóäíî íàéòè êàêóþ-ëèáî ïàðó ðàçëè÷íûõ ñîîáùåíèé x è x0 , äëÿ êîòîðûõ h(x0 ) = h(x).
Îòìåòèì, ÷òî ïåðâîå òðåáîâàíèå äîëæíî âûïîëíÿòüñÿ âñåãäà, â
ïðîòèâíîì ñëó÷àå õåø-ôóíêöèÿ òåðÿåò êàêîå-ëèáî ïðàêòè÷åñêîå çíà÷åíèå. Îñòàëüíûå òðåáîâàíèÿ âàæíû äëÿ òåõ èëè èíûõ ïðèëîæåíèé.
Íàïðèìåð, åñëè ïàðîëè äëÿ âõîäà â ñèñòåìó õðàíÿòñÿ â âèäå çíà÷åíèé
ñîîòâåòñòâóþùèõ èì õåø-ôóíêöèé, òî õåø-ôóíêöèÿ äîëæíà óäîâëåòâîðÿòü âòîðîìó òðåáîâàíèþ.  ñõåìå ýëåêòðîííîé ïîäïèñè àêòóàëüíî òðåòüå òðåáîâàíèå. ×åòâåðòîå òðåáîâàíèå âàæíî â íåêîòîðûõ êðèïòîãðàôè÷åñêèõ ïðîòîêîëàõ. Çàìåòèì, ÷òî ÷åòâåðòîå òðåáîâàíèå áîëåå
ñèëüíîå, ÷åì òðåòüå (ò.å. ïðè âûïîëíåíèè ÷åòâåðòîãî àâòîìàòè÷åñêè
âûïîëíÿåòñÿ è òðåòüå).
Ðàçðàáîòêà õåø-ôóíêöèè, óäîâëåòâîðÿþùåé âñåì ÷åòûðåì òðåáîâàíèÿì
çàäà÷à íåïðîñòàÿ.  íàñòîÿùåå âðåìÿ ïðåäëîæåíû è ïðàêòè÷åñêè èñïîëüçóþòñÿ õåø-ôóíêöèè (íàïðèìåð, MD5, SHA-1, RIPEMD160 è äð., ñì., íàïðèìåð, [19, 23]), êîòîðûå ñ÷èòàþòñÿ îòâå÷àþùèìè ïåðå÷èñëåííûì âûøå òðåáîâàíèÿì (õîòÿ ýòî ñòðîãî íå äîêàçàíî). Îïèñàíèå ýòèõ è ïîäîáíûõ èì ôóíêöèé óñëîæíåíî â äåòàëÿõ è
ãðîìîçäêî. Ìû ðàññìîòðèì óíèâåðñàëüíûé ñïîñîá ïîñòðîåíèÿ õåøôóíêöèé íà áàçå áëîêîâûõ øèôðîâ, êîòîðûé ïðåäñòàâëÿåò ïðàêòè÷åñêèé èíòåðåñ, õîòÿ ïîëó÷àåìûå õåø-ôóíêöèè è íå ÿâëÿþòñÿ î÷åíü
áûñòðî âû÷èñëèìûìè. Èìåííî òàêîé ïîäõîä èñïîëüçîâàí â ðîññèéñêîì ñòàíäàðòå íà êðèïòîãðàôè÷åñêóþ õåø-ôóíêöèþ (ÃÎÑÒ Ð34.1194 [7]).
Ãëàâà 4. Ñîâðåìåííûå øèôðû ñ ñåêðåòíûì êëþ÷îì
103
Ïóñòü äàí áëîêîâûé øèôð E , êîòîðûé äëÿ çàäàííîãî áëîêà X è
êëþ÷à K ôîðìèðóåò øèôðîòåêñò Y ,
Y = EK (X).
Ìû ïðåäñòàâèì äâà àëãîðèòìà, äëÿ êîòîðûõ äëèíà ñëîâà, ïîëó÷àåìîãî êàê çíà÷åíèå õåø-ôóíêöèè, ðàâíà ðàçìåðó áëîêà â øèôðå,
íî îòìåòèì, ÷òî èçâåñòíû êîíñòðóêöèè, ïîçâîëÿþùèå ïîëó÷àòü õåøôóíêöèè c äëèíàìè ñëîâ, êðàòíûìè ðàçìåðó áëîêà.
 ïåðâîì àëãîðèòìå ñîîáùåíèå âíà÷àëå ïðåäñòàâëÿåòñÿ â âèäå
ïîñëåäîâàòåëüíîñòè áëîêîâ X1 , X2 , . . . , Xn . Ïîñëåäíèé áëîê ïðè íåîáõîäèìîñòè äîïîëíÿåòñÿ íóëÿìè, èíîãäà â ïîñëåäíèé áëîê ïðèïèñûâàþò äëèíó ñîîáùåíèÿ â âèäå äâîè÷íîãî ÷èñëà. Çíà÷åíèå õåø-ôóíêöèè
h ïîëó÷àåòñÿ êàê ðåçóëüòàò âûïîëíåíèÿ ñëåäóþùåãî èòåðàöèîííîãî
ïðîöåññà:
h ← 0;
FOR i = 1, 2, . . . , n DO
h ← Eh (Xi ) ⊕ Xi .
 êà÷åñòâå íà÷àëüíîãî çíà÷åíèÿ h ìîæíî èñïîëüçîâàòü íå íóëü, à
êàêîå-ëèáî ¾ìàãè÷åñêîå¿ ÷èñëî, íî ýòî íå èìååò áîëüøîãî çíà÷åíèÿ.
 äàííîì àëãîðèòìå çíà÷åíèå h, ïîëó÷åííîå íà ïðåäûäóùåé èòåðàöèè, èñïîëüçóåòñÿ â êà÷åñòâå êëþ÷à øèôðà â ñëåäóþùåé èòåðàöèè.
Ïîýòîìó íåÿâíî ïîëàãàåòñÿ, ÷òî äëèíà êëþ÷à â øèôðå ðàâíà äëèíå
áëîêà. Îäíàêî, êàê ìû âèäåëè ïðè èçó÷åíèè øèôðà RC6, äëèíà êëþ÷à
ìîæåò çíà÷èòåëüíî ïðåâûøàòü ðàçìåð áëîêà (â RC6 ïðè ìàêñèìàëüíîé äëèíå áëîêà 256 áèò äëèíà êëþ÷à ìîæåò äîñòèãàòü 255 áàéò, èëè
2040 áèò).  òàêèõ ñëó÷àÿõ áîëåå ýôôåêòèâåí äðóãîé àëãîðèòì.
 ýòîì àëãîðèòìå ñîîáùåíèå âíà÷àëå ïðåäñòàâëÿåòñÿ â âèäå ïîñëåäîâàòåëüíîñòè X1 , X2 , . . . , Xm , â êîòîðîé ðàçìåð êàæäîãî ýëåìåíòà ðàâåí äëèíå êëþ÷à â øèôðå. Ïîñëåäíèé ýëåìåíò çàïîëíÿåòñÿ òàê
æå, êàê è â ïåðâîì àëãîðèòìå. Çíà÷åíèå õåø-ôóíêöèè h âû÷èñëÿåòñÿ
ñëåäóþùèì îáðàçîì:
Ãëàâà 4. Ñîâðåìåííûå øèôðû ñ ñåêðåòíûì êëþ÷îì
104
h ← 0;
FOR i = 1, 2, . . . , m DO
h ← EXi (h) ⊕ h.
Çäåñü óæå ýëåìåíòû ñîîáùåíèÿ âûïîëíÿþò ðîëü êëþ÷åé â øèôðå.
Ïðåäñòàâëåííûå àëãîðèòìû âû÷èñëåíèÿ õåø-ôóíêöèé óäîâëåòâîðÿþò âñåì ÷åòûðåì òðåáîâàíèÿì, ïðåäúÿâëÿåìûì ê êðèïòîãðàôè÷åñêèì õåø-ôóíêöèÿì, â ïðåäïîëîæåíèè ñòîéêîñòè èñïîëüçóåìûõ áëîêîâûõ øèôðîâ (ñì. [22, 23]).
Ãëàâà 5.
5.1.
ÝËÅÊÒÐÎÍÍÀß, ÈËÈ ÖÈÔÐÎÂÀß
ÏÎÄÏÈÑÜ
Ýëåêòðîííàÿ ïîäïèñü RSA
Ïîñëå ïîÿâëåíèÿ êðèïòîãðàôèè ñ îòêðûòûì êëþ÷îì ïðîèçîøëà íàñòîÿùàÿ ðåâîëþöèÿ â ñîâðåìåííûõ êîìïüþòåðíûõ è ñåòåâûõ òåõíîëîãèÿõ. Ïîÿâèëàñü âîçìîæíîñòü ðåøàòü çàäà÷è, êîòîðûå ðàíåå ñ÷èòàëèñü íåðàçðåøèìûìè, à òåïåðü íàõîäÿò øèðîêîå ïðèìåíåíèå íà
ïðàêòèêå.  íàñòîÿùåå âðåìÿ ïðè ïîìîùè ýòèõ òåõíîëîãèé åæåäíåâíî ïðîâîäÿòñÿ ðàñ÷åòû è ñîâåðøàþòñÿ ñäåëêè íà ìíîãèå ìèëëèàðäû äîëëàðîâ, ðóáëåé, åâðî è ò.ï. Îäíèì èç âàæíûõ ýëåìåíòîâ ýòèõ
òåõíîëîãèé ÿâëÿåòñÿ ýëåêòðîííàÿ, èëè öèôðîâàÿ ïîäïèñü. Âî ìíîãèõ
ñòðàíàõ è, â ÷àñòíîñòè, â Ðîññèè ââåäåíû ñòàíäàðòû íà ýëåêòðîííóþ
(öèôðîâóþ) ïîäïèñü, à ñàìî ýòî ïîíÿòèå ââåäåíî â ãðàæäàíñêîå çàêîíîäàòåëüñòâî. Òåðìèí ¾ýëåêòðîííàÿ ïîäïèñü¿ áîëåå ïðèâû÷åí äëÿ
Ðîññèè, õîòÿ â ïîñëåäíåå âðåìÿ âñå ÷àùå èñïîëüçóåòñÿ ïðèíÿòûé â
äðóãèõ ñòðàíàõ (ïðåæäå âñåãî, â ÑØÀ) òåðìèí ¾öèôðîâàÿ ïîäïèñü¿,
÷òî îòðàæåíî è â íîâûõ ðîññèéñêèõ ñòàíäàðòàõ. Îáà òåðìèíà îçíà÷àþò îäíî è òî æå.
Ïðåæäå ÷åì íà÷àòü ðàññìîòðåíèå êðèïòîãðàôè÷åñêîé öèôðîâîé
ïîäïèñè, ñôîðìóëèðóåì òðè ñâîéñòâà, êîòîðûì (â èäåàëå) äîëæíà
óäîâëåòâîðÿòü ëþáàÿ, â ÷àñòíîñòè, îáû÷íàÿ ðóêîïèñíàÿ ïîäïèñü:
1. Ïîäïèñàòü äîêóìåíò ìîæåò òîëüêî ¾çàêîííûé¿ âëàäåëåö ïîäïèñè (è, ñëåäîâàòåëüíî, íèêòî íå ìîæåò ïîääåëàòü ïîäïèñü).
2. Àâòîð ïîäïèñè íå ìîæåò îò íåå îòêàçàòüñÿ.
Ãëàâà 5. Ýëåêòðîííàÿ, èëè öèôðîâàÿ ïîäïèñü
106
3.  ñëó÷àå âîçíèêíîâåíèÿ ñïîðà âîçìîæíî ó÷àñòèå òðåòüèõ ëèö
(íàïðèìåð, ñóäà) äëÿ óñòàíîâëåíèÿ ïîäëèííîñòè ïîäïèñè.
Ðàçóìååòñÿ, öèôðîâàÿ (ýëåêòðîííàÿ) ïîäïèñü òàêæå äîëæíà îáëàäàòü âñåìè ýòèìè ñâîéñòâàìè, îäíàêî ëèöà, ïîäïèñûâàþùèå äîêóìåíòû è ïðîâåðÿþùèå èõ ïîäëèííîñòü, ìîãóò íàõîäèòüñÿ çà òûñÿ÷è
êèëîìåòðîâ äðóã îò äðóãà è âçàèìîäåéñòâîâàòü òîëüêî ÷åðåç êîìïüþòåðíóþ ñåòü.
Êðîìå îáû÷íîé ïîäïèñè, â ðåàëüíîé æèçíè èñïîëüçóåòñÿ òàê íàçûâàåìàÿ íîòàðèàëüíàÿ ïîäïèñü, êîãäà ñïåöèàëüíî âûäåëÿåìîå ëèöî
(íîòàðèóñ) çàâåðÿåò äîêóìåíòû ñâîåé ïîäïèñüþ è ïå÷àòüþ, òàê ÷òî
ëþáîå äðóãîå ëèöî ìîæåò óäîñòîâåðèòüñÿ â èõ ïîäëèííîñòè. Àíàëîã
ýòîé ïîäïèñè òàêæå âîñòðåáîâàí â êèáåðïðîñòðàíñòâå. Ýëåêòðîííàÿ
íîòàðèàëüíàÿ ïîäïèñü ðåàëèçóåòñÿ òî÷íî òàê æå, êàê è ïîäïèñü ëþáîãî äðóãîãî ëèöà.
 ýòîì ðàçäåëå ìû ðàññìîòðèì ýëåêòðîííóþ ïîäïèñü, áàçèðóþùóþñÿ íà ñõåìå RSA.
Åñëè Àëèñà ïëàíèðóåò ïîäïèñûâàòü äîêóìåíòû, òî îíà äîëæíà
âíà÷àëå âûáðàòü ïàðàìåòðû RSA òî÷íî òàê æå, êàê ýòî îïèñàíî â ðàçä.
2.6. Äëÿ ýòîãî Àëèñà âûáèðàåò äâà áîëüøèõ ïðîñòûõ ÷èñëà P è Q,
âû÷èñëÿåò N = P Q è φ = (P − 1)(Q − 1). Çàòåì îíà âûáèðàåò ÷èñëî
d, âçàèìíî ïðîñòîå ñ φ, è âû÷èñëÿåò c = d−1 mod φ. Íàêîíåö, îíà
ïóáëèêóåò ÷èñëà N è d, íàïðèìåð, ïîìåùàåò èõ íà ñâîåì ñàéòå, àññîöèèðîâàâ ñî ñâîèì èìåíåì, è õðàíèò â ñåêðåòå ÷èñëî c (îñòàëüíûå
÷èñëà P , Q è φ ìîæíî çàáûòü, îíè áîëüøå íå ïîòðåáóþòñÿ). Òåïåðü
Àëèñà ãîòîâà ñòàâèòü ñâîè ïîäïèñè íà äîêóìåíòàõ èëè ñîîáùåíèÿõ.
Ïóñòü Àëèñà õî÷åò ïîäïèñàòü ñîîáùåíèå m̄ = m1 , . . . , mn . Òîãäà
âíà÷àëå îíà âû÷èñëÿåò êðèïòîãðàôè÷åñêóþ õåø-ôóíêöèþ
y = h(m1 , . . . , mn ),
êîòîðàÿ ñòàâèò â ñîîòâåòñòâèå ñîîáùåíèþ m̄ ÷èñëî y . Ïðåäïîëàãàåòñÿ, ÷òî àëãîðèòì âû÷èñëåíèÿ õåø-ôóíêöèè âñåì èçâåñòåí. Îòìåòèì íàèáîëåå âàæíîå äëÿ íàñ ñâîéñòâî èñïîëüçóåìîé õåø-ôóíêöèè:
Ãëàâà 5. Ýëåêòðîííàÿ, èëè öèôðîâàÿ ïîäïèñü
107
ïðàêòè÷åñêè íåâîçìîæíî èçìåíèòü îñíîâíîé òåêñò m1 , . . . , mn , íå èçìåíèâ y . Ïîýòîìó íà ñëåäóþùåì øàãå Àëèñå äîñòàòî÷íî ñíàáäèòü
ïîäïèñüþ òîëüêî ÷èñëî y , è ýòà ïîäïèñü áóäåò îòíîñèòüñÿ êî âñåìó
ñîîáùåíèþ m̄.
Àëèñà âû÷èñëÿåò ÷èñëî
s = y c mod N,
(5.1)
ò.å. îíà âîçâîäèò ÷èñëî y â ñâîþ ñåêðåòíóþ ñòåïåíü. ×èñëî s ýòî è
åñòü öèôðîâàÿ ïîäïèñü. Îíà ïðîñòî äîáàâëÿåòñÿ ê ñîîáùåíèþ m̄, è
òåì ñàìûì Àëèñà èìååò ñôîðìèðîâàííîå ïîäïèñàííîå ñîîáùåíèå
hm̄, si .
(5.2)
Òåïåðü êàæäûé, êòî çíàåò îòêðûòûå ïàðàìåòðû Àëèñû, àññîöèèðîâàííûå ñ åå èìåíåì, ò.å. ÷èñëà N è d, ìîæåò ïðîâåðèòü ïîäëèííîñòü åå ïîäïèñè. Äëÿ ýòîãî íåîáõîäèìî, âçÿâ ïîäïèñàííîå ñîîáùåíèå (5.2), âû÷èñëèòü çíà÷åíèå õåø-ôóíêöèè h(m̄), ÷èñëî
w = sd mod N
(5.3)
è ïðîâåðèòü âûïîëíåíèå ðàâåíñòâà w = h(m̄).
Óòâåðæäåíèå 5.1. Åñëè ïîäïèñü ïîäëèííàÿ, òî w = h(m̄).
Ä î ê à ç à ò å ë ü ñ ò â î . Èç (5.3), (5.1) è ñâîéñòâ ñõåìû RSA (ñì.
ðàçä. 2.6) ñëåäóåò
w = sd mod N = y cd mod N = y = h(m̄).
t
u
Óòâåðæäåíèå 5.2. Îïèñàííàÿ ýëåêòðîííàÿ ïîäïèñü óäîâëåòâîðÿåò âñåì òðåáîâàíèÿì, ïðåäúÿâëÿåìûì ê ïîäïèñè.
Ãëàâà 5. Ýëåêòðîííàÿ, èëè öèôðîâàÿ ïîäïèñü
108
Ä î ê à ç à ò å ë ü ñ ò â î . Ïðîâåðèì ïåðâîå ñâîéñòâî ïîäïèñè. Íèêòî íå ìîæåò ðàçëîæèòü ÷èñëî N íà ïðîñòûå ìíîæèòåëè (ïðè áîëüøèõ N ïîðÿäêà 1024 áèò ïî ñîñòîÿíèþ íà 2005 ãîä ýòà çàäà÷à ïðàêòè÷åñêè íåðàçðåøèìà). Ïîýòîìó, çíàÿ N è d íåâîçìîæíî íàéòè c.
Äåéñòâèòåëüíî, ÷òîáû âû÷èñëèòü c = d−1 mod φ, íóæíî çíàòü φ =
(P − 1)(Q − 1), à äëÿ ýòîãî íóæíî çíàòü ïðîñòûå ìíîæèòåëè P è Q.
Òàêèì îáðàçîì, ïåðâîå ñâîéñòâî âûïîëíåíî
íèêòî, êðîìå Àëèñû,
íå ìîæåò çíàòü ÷èñëî c è ïîýòîìó íå ìîæåò ïîäïèñàòü ñîîáùåíèå.
Âòîðîå ñâîéñòâî âûïîëíåíî âñëåäñòâèå ïåðâîãî. Àâòîð ïîäïèñè
íå ìîæåò îò íåå îòêàçàòüñÿ, òàê êàê íèêòî äðóãîé íå ìîæåò ¾ñôàáðèêîâàòü¿ ïîäïèñü îò åãî èìåíè.
Òðåòüå ñâîéñòâî òàêæå î÷åâèäíî â ñëó÷àå ñïîðà çàèíòåðåñîâàííàÿ ñòîðîíà ìîæåò ïðåäúÿâèòü ñóäüå âñå âû÷èñëåíèÿ äëÿ èõ ïðîâåðêè
è âûÿñíåíèÿ èñòèíû.
t
u
Ï ð è ì å ð 5.1. Ïóñòü P = 5, Q = 11. Òîãäà N = 5 · 11 = 55,
φ = 4 · 10 = 40. Ïóñòü d = 3. Òàêîé âûáîð d âîçìîæåí, òàê êàê
gcd(40, 3) = 1. Ïàðàìåòð c = 3−1 mod 40 âû÷èñëÿåì ñ ïîìîùüþ
îáîáùåííîãî àëãîðèòìà Åâêëèäà (ñì. ðàçä. 2.3), c = 27.
Ïóñòü, íàïðèìåð, Àëèñà õî÷åò ïîäïèñàòü ñîîáùåíèå m̄ = abbbaa,
äëÿ êîòîðîãî çíà÷åíèå õåø-ôóíêöèè ðàâíî, ñêàæåì, 13:
y = h(abbbaa) = 13.
 ýòîì ñëó÷àå Àëèñà âû÷èñëÿåò ïî (5.1)
s = 1327 mod 55 = 7
è ôîðìèðóåò ïîäïèñàííîå ñîîáùåíèå
habbbaa, 7i .
Òåïåðü òîò, êòî çíàåò îòêðûòûå êëþ÷è Àëèñû N = 55 è d = 3,
ìîæåò ïðîâåðèòü ïîäëèííîñòü ïîäïèñè. Ïîëó÷èâ ïîäïèñàííîå ñîîáùåíèå, îí çàíîâî âû÷èñëÿåò çíà÷åíèå õåø-ôóíêöèè
h(abbbaa) = 13
Ãëàâà 5. Ýëåêòðîííàÿ, èëè öèôðîâàÿ ïîäïèñü
109
(åñëè ñîäåðæàíèå ñîîáùåíèÿ íå èçìåíåíî, òî çíà÷åíèå õåø-ôóíêöèè
ñîâïàäåò ñ òåì, êîòîðîå âû÷èñëÿëà Àëèñà) è âû÷èñëÿåò ïî (5.3)
w = 73 mod 55 = 13.
Çíà÷åíèÿ w è õåø-ôóíêöèè ñîâïàëè, çíà÷èò, ïîäïèñü âåðíà.
t
u
Ç à ì å ÷ à í è å. Îáðàòèì âíèìàíèå íà òî, ÷òî îäíà è òà æå ñõåìà RSA,
ñãåíåðèðîâàííàÿ Àëèñîé, ìîæåò èñïîëüçîâàòüñÿ äëÿ ðåøåíèÿ äâóõ çàäà÷.
Âî-ïåðâûõ, Àëèñà ìîæåò ïîäïèñûâàòü ñîîáùåíèÿ, êàê ýòî áûëî ïîêàçàíî â
äàííîì ðàçäåëå, èñïîëüçóÿ ñâîé ñåêðåòíûé êëþ÷ c. Âî-âòîðûõ, êòî óãîäíî
ìîæåò ïîñëàòü Àëèñå çàøèôðîâàííîå ñîîáùåíèå (÷èñëî), ðàñøèôðîâàòü êîòîðîå, êàê ýòî áûëî ïîêàçàíî â ðàçä. 2.6, ñìîæåò òîëüêî îíà, èñïîëüçóÿ äëÿ
øèôðîâàíèÿ åå îòêðûòûé êëþ÷ d.
5.2.
Ñòàíäàðòû íà ýëåêòðîííóþ (öèôðîâóþ) ïîäïèñü
Âî ìíîãèõ ñòðàíàõ ñåãîäíÿ ñóùåñòâóþò ñòàíäàðòû íà ýëåêòðîííóþ
(öèôðîâóþ) ïîäïèñü. Â ýòîì ðàçäåëå ìû îïèøåì ðîññèéñêèé ãîñóäàðñòâåííûé ñòàíäàðò ÃÎÑÒ Ð34.10-94 è ñòàíäàðò ÑØÀ FIPS 186.
Ðîññèéñêèé ñòàíäàðò, êàê ñëåäóåò èç åãî îáîçíà÷åíèÿ, áûë ïðèíÿò â
1994 ãîäó, àìåðèêàíñêèé
â 1991. Â îñíîâå îáîèõ ñòàíäàðòîâ ëåæèò
ïî ñóòè îäèí è òîò æå àëãîðèòì, íàçûâàåìûé DSA (Digital Signature
Algorithm). Ìû ïîäðîáíî ðàññìîòðèì ðîññèéñêóþ âåðñèþ àëãîðèòìà,
à çàòåì óêàæåì íà îòëè÷èÿ àìåðèêàíñêîé âåðñèè.
Âíà÷àëå äëÿ íåêîòîðîãî ñîîáùåñòâà ïîëüçîâàòåëåé âûáèðàþòñÿ
îáùèå íåñåêðåòíûå ïàðàìåòðû. Ïðåæäå âñåãî íåîáõîäèìî íàéòè äâà
ïðîñòûõ ÷èñëà, q äëèíîé 256 áèò è p äëèíîé 1024 áèòà, ìåæäó êîòîðûìè âûïîëíÿåòñÿ ñîîòíîøåíèå
p = bq + 1
(5.4)
äëÿ íåêîòîðîãî öåëîãî b. Ñòàðøèå áèòû â p è q äîëæíû áûòü ðàâíû
åäèíèöå. Çàòåì âûáèðàåòñÿ ÷èñëî a > 1, òàêîå, ÷òî
aq mod p = 1.
(5.5)
Ãëàâà 5. Ýëåêòðîííàÿ, èëè öèôðîâàÿ ïîäïèñü
 ðåçóëüòàòå ïîëó÷àåì òðè îáùèõ ïàðàìåòðà
110
p, q è a.
Ç à ì å ÷ à í è å. Ðàâåíñòâî (5.5) îçíà÷àåò, ÷òî ïðè âîçâåäåíèè a â ñòåïåíè ïî ìîäóëþ p ïîêàçàòåëè ïðèâîäÿòñÿ ïî ìîäóëþ q , ò.å. ab mod p =
ab mod q mod p (ìû óæå ïðîâîäèëè îáîñíîâàíèå ïîäîáíîãî ôåíîìåíà ïðè
äîêàçàòåëüñòâå óòâåðæäåíèÿ 2.10 íà ñòð. 35). Òàêîå ïðèâåäåíèå áóäåò ïîñòîÿííî âûïîëíÿòüñÿ ïðè ãåíåðàöèè è ïðîâåðêå ïîäïèñè, â ðåçóëüòàòå ÷åãî
äëèíà ïîêàçàòåëåé ñòåïåíè â ðàìêàõ ðàññìàòðèâàåìîãî àëãîðèòìà íèêîãäà
íå áóäåò ïðåâûøàòü 256 áèò, ÷òî óïðîùàåò âû÷èñëåíèÿ.
Äàëåå, êàæäûé ïîëüçîâàòåëü âûáèðàåò ñëó÷àéíî ÷èñëî x, óäîâëåòâîðÿþùåå íåðàâåíñòâó 0 < x < q , è âû÷èñëÿåò
y = ax mod p.
(5.6)
×èñëî x áóäåò ñåêðåòíûì êëþ÷îì ïîëüçîâàòåëÿ, à ÷èñëî y
îòêðûòûì êëþ÷îì. Ïðåäïîëàãàåòñÿ, ÷òî îòêðûòûå êëþ÷è âñåõ ïîëüçîâàòåëåé óêàçûâàþòñÿ â íåêîòîðîì íåñåêðåòíîì, íî ¾ñåðòèôèöèðîâàííîì¿
ñïðàâî÷íèêå, êîòîðûé äîëæåí áûòü ó âñåõ, êòî ñîáèðàåòñÿ ïðîâåðÿòü
ïîäïèñè. Îòìåòèì, ÷òî â íàñòîÿùåå âðåìÿ íàéòè x ïî y ïðàêòè÷åñêè íåâîçìîæíî ïðè óêàçàííîé âûøå äëèíå ìîäóëÿ p. Íà ýòîì ýòàï
âûáîðà ïàðàìåòðîâ çàêàí÷èâàåòñÿ, è ìû ãîòîâû ê òîìó, ÷òîáû ôîðìèðîâàòü è ïðîâåðÿòü ïîäïèñè.
Ïóñòü èìååòñÿ ñîîáùåíèå m̄, êîòîðîå íåîáõîäèìî ïîäïèñàòü. Ãåíåðàöèÿ ïîäïèñè âûïîëíÿåòñÿ ñëåäóþùèì îáðàçîì:
1. Âû÷èñëÿåì çíà÷åíèå õåø-ôóíêöèè h = h(m̄) äëÿ ñîîáùåíèÿ
m, çíà÷åíèå õåø-ôóíêöèè äîëæíî ëåæàòü â ïðåäåëàõ 0 < h <
q (â ðîññèéñêîì âàðèàíòå õåø-ôóíêöèÿ îïðåäåëÿåòñÿ ÃÎÑÒîì
Ð34.11-94).
2. Ôîðìèðóåì ñëó÷àéíîå ÷èñëî k , 0 < k < q .
3. Âû÷èñëÿåì r = ak mod p mod q . Åñëè îêàçûâàåòñÿ òàê, ÷òî
r = 0, òî âîçâðàùàåìñÿ ê øàãó 2.
4. Âû÷èñëÿåì s = (kh + xr) mod q . Åñëè s = 0, òî âîçâðàùàåìñÿ
ê øàãó 2.
Ãëàâà 5. Ýëåêòðîííàÿ, èëè öèôðîâàÿ ïîäïèñü
111
5. Ïîëó÷àåì ïîäïèñàííîå ñîîáùåíèå hm̄; r, si.
Äëÿ ïðîâåðêè ïîäïèñè äåëàåì ñëåäóþùåå.
1. Âû÷èñëÿåì õåø-ôóíêöèþ äëÿ ñîîáùåíèÿ h = h(m̄).
2. Ïðîâåðÿåì âûïîëíåíèå íåðàâåíñòâ 0 < r < q , 0 < s < q .
3. Âû÷èñëÿåì u1 = s · h−1 mod q , u2 = −r · h−1 mod q .
4. Âû÷èñëÿåì v = (au1 y u2 mod p) mod q .
5. Ïðîâåðÿåì âûïîëíåíèå ðàâåíñòâà v = r .
Åñëè õîòÿ áû îäíà èç ïðîâåðîê íà øàãàõ 2 è 5 íå äàåò íóæíîãî ðåçóëüòàòà, òî ïîäïèñü ñ÷èòàåòñÿ íåäåéñòâèòåëüíîé. Åñëè æå âñå
ïðîâåðêè óäà÷íû, òî ïîäïèñü ñ÷èòàåòñÿ ïîäëèííîé.
Óòâåðæäåíèå 5.3. Åñëè ïîäïèñü ê ñîîáùåíèþ áûëà ñôîðìèðîâàíà çàêîííî, ò.å. îáëàäàòåëåì ñåêðåòíîãî êëþ÷à x, òî v = r .
Ä î ê à ç à ò å ë ü ñ ò â î . Çàïèøåì ñëåäóþùóþ öåïî÷êó ðàâåíñòâ,
êîòîðàÿ ñëåäóåò íåïîñðåäñòâåííî èç îïèñàíèÿ ìåòîäà (íàïîìíèì, ÷òî
ïîêàçàòåëè ñòåïåíè ïðèâîäÿòñÿ ïî ìîäóëþ q ):
−1
−1
v = ash y −rh mod p mod q =
−1
−1
= a(kh+xr)h a−xrh mod p mod q =
k+xrh−1 −xrh−1
= a
mod p mod q =
= ak mod p mod q = r.
t
u
Ãëàâà 5. Ýëåêòðîííàÿ, èëè öèôðîâàÿ ïîäïèñü
112
Ç à ì å ÷ à í è å. ×òîáû íàéòè ïàðàìåòð a, óäîâëåòâîðÿþùèé (5.5), ðåêîìåíäóåòñÿ èñïîëüçîâàòü ñëåäóþùèé ìåòîä. Áåðåì ñëó÷àéíîå ÷èñëî g > 1
è âû÷èñëÿåì
a = g (p−1)/q mod p.
(5.7)
Åñëè a > 1, òî ýòî òî, ÷òî íàì íóæíî. Äåéñòâèòåëüíî, íà îñíîâàíèè (5.7) è
òåîðåìû Ôåðìà èìååì
aq mod p = g ((p−1)/q)q mod p = g p−1 mod p = 1,
ò.å. âûïîëíÿåòñÿ ðàâåíñòâî (5.5). Åñëè ïðè âû÷èñëåíèè ïî (5.7) ìû ïîëó÷àåì
a = 1 (êðàéíå ìàëîâåðîÿòíûé ñëó÷àé), òî íóæíî ïðîñòî âçÿòü äðóãîå ÷èñëî
g.
Ï ð è ì å ð 5.2. Âûáåðåì îáùèå íåñåêðåòíûå ïàðàìåòðû
q = 11,
p = 6q + 1 = 67,
âîçüìåì g = 10 è âû÷èñëèì
a = 106 mod 67 = 25.
Âûáåðåì ñåêðåòíûé êëþ÷ x = 6 è âû÷èñëèì îòêðûòûé êëþ÷
y = 256 mod 67 = 62.
Ñôîðìèðóåì ïîäïèñü äëÿ ñîîáùåíèÿ m̄ = baaaab. Ïóñòü äëÿ õåøôóíêöèè ýòîãî ñîîáùåíèÿ h(m̄) = 3. Âîçüìåì ñëó÷àéíî ÷èñëî k = 8.
Âû÷èñëèì
r = 258 mod 67 mod 11 = 24 mod 11 = 2,
s = (8 · 3 + 6 · 2) mod 11 = 36 mod 11 = 3.
Ïîëó÷àåì ïîäïèñàííîå ñîîáùåíèå
hbaaaab; 2, 3i.
Ãëàâà 5. Ýëåêòðîííàÿ, èëè öèôðîâàÿ ïîäïèñü
113
Òåïåðü âûïîëíèì ïðîâåðêó ïîäïèñè. Åñëè ñîîáùåíèå íå èçìåíåíî, òî h = 3. Âû÷èñëèì
h−1 = 3−1 mod 11 = 4,
u1 = 3 · 4 mod 11 = 1,
u2 = −2 · 4 mod 11 = −8 mod 11 = 3,
v = 251 · 623 mod 67 mod 11 =
= (25 · 9 mod 67) mod 11 = 24 mod 11 = 2.
Ìû âèäèì, ÷òî v = r , çíà÷èò ïîäïèñü âåðíà.
t
u
Òåïåðü îñòàíîâèìñÿ íà îòëè÷èÿõ àìåðèêàíñêîãî ñòàíäàðòà îò ðîññèéñêîãî. Îíè ñâîäÿòñÿ ê ñëåäóþùåìó.
1. Äëèíà ÷èñëà q áåðåòñÿ ðàâíîé 160 áèò.
2.  êà÷åñòâå õåø-ôóíêöèè èñïîëüçóåòñÿ àëãîðèòì SHA-1.
3. Ïðè ãåíåðàöèè ïîäïèñè íà øàãå 4 ïàðàìåòð s âû÷èñëÿåòñÿ ïî
ôîðìóëå s = k −1 (h + xr) mod q .
4. Ïðè ïðîâåðêå ïîäïèñè íà øàãå 3 u1 è u2 âû÷èñëÿþòñÿ ïî ôîðìóëàì u1 = h · s−1 mod q , u2 = r · s−1 mod q .
Ñ ó÷åòîì ýòèõ îòëè÷èé íåòðóäíî ïåðåïèñàòü âñþ ñõåìó ïîäïèñè â
¾àìåðèêàíñêîì¿ ñòèëå. Äîêàçàòåëüñòâî êîððåêòíîñòè àëãîðèòìà ïðîâîäèòñÿ ñîâåðøåííî àíàëîãè÷íî.
Çàäà÷è è óïðàæíåíèÿ
114
Çàäà÷è è óïðàæíåíèÿ
Âî âñåõ çàäà÷àõ áóäåì ïðåäïîëàãàòü, ÷òî h(m) = m äëÿ âñåõ
çíà÷åíèé m.
5.1. Ïîñòðîèòü ïîäïèñü RSA äëÿ ñîîáùåíèÿ m ïðè ñëåäóþùèõ
ïàðàìåòðàõ ïîëüçîâàòåëÿ:
à. P = 5, Q = 11, c = 27, m = 7,
á. P = 5, Q = 13, c = 29, m = 10,
â. P = 7, Q = 11, c = 43, m = 5,
ã. P = 7, Q = 13, c = 29, m = 15,
ä. P = 3, Q = 11, c = 7, m = 24.
Ñì. îòâåò.
5.2. Äëÿ óêàçàíííûõ îòêðûòûõ êëþ÷åé ïîëüçîâàòåëÿ RSA ïðîâåðèòü ïîäëèííîñòü ïîäïèñàííûõ ñîîáùåíèé:
à. N = 55, d = 3: h7, 28i, h22, 15i, h16, 36i,
á. N = 65, d = 5: h6, 42i, h10, 30i, h6, 41i,
â. N = 77, d = 7: h13, 41i, h11, 28i, h5, 26i,
ã. N = 91, d = 5: h15, 71i, h11, 46i, h16, 74i,
ä. N = 33, d = 3: h10, 14i, h24, 18i, h17, 8i.
Ñì. îòâåò.
5.3. Ñîîáùåñòâî ïîëüçîâàòåëåé ÃÎÑÒà Ð34.10-94 èìåþò îáùèå ïàðàìåòðû q = 11, p = 67, a = 25. Âû÷èñëèòü îòêðûòûé êëþ÷
(y ) è ïîñòðîèòü ïîäïèñü äëÿ ñîîáùåíèÿ m ïðè ñëåäóþùèõ
ñåêðåòíûõ ïàðàìåòðàõ:
Çàäà÷è è óïðàæíåíèÿ
115
à. x = 3, h = m = 10, k = 1,
á. x = 8, h = m = 1, k = 3,
â. x = 5, h = m = 5, k = 9,
ã. x = 2, h = m = 6, k = 7,
ä. x = 9, h = m = 7, k = 5.
Ñì. îòâåò.
5.4. Äëÿ óêàçàíííûõ îòêðûòûõ êëþ÷åé (y ) ïîëüçîâàòåëåé ÃÎÑÒà
Ð34.10-94 ñ îáùèìè ïàðàìåòðàìè q = 11, p = 67, a = 25
ïðîâåðèòü ïîäëèííîñòü ïîäïèñàííûõ ñîîáùåíèé:
à. y = 14: h10; 4, 5i, h10; 7, 5i, h10; 3, 8i,
á. y = 24: h1; 3, 5i, h1; 4, 3i, h1; 4, 5i,
â. y = 40: h7; 7, 4i, h7; 9, 2i, h5; 9, 2i,
ã. y = 22: h6; 9, 5i, h8; 8, 3i, h7; 4, 1i,
ä. y = 64: h10; 7, 3i, h7; 7, 10i, h8; 7, 5i.
Ñì. îòâåò.
Ãëàâà 6.
ÊÐÈÏÒÎÃÐÀÔÈ×ÅÑÊÈÅ ÏÐÎÒÎÊÎËÛ
Ðàññìîòðåííûå â ïðåäûäóùèõ ãëàâàõ êðèïòîãðàôè÷åñêèå ìåòîäû ÷àñòî èñïîëüçóþòñÿ â êà÷åñòâå èíñòðóìåíòîâ äëÿ ðåøåíèÿ äðóãèõ ïðàêòè÷åñêè âàæíûõ çàäà÷. Ñîâðåìåííàÿ êðèïòîãðàôèÿ ïîçâîëÿåò ðåøàòü
ïðîáëåìû, êîòîðûå ðàíåå ñ÷èòàëèñü â ïðèíöèïå íåðàçðåøèìûìè. Ïðè÷åì â íàñòîÿùåå âðåìÿ ìíîãèå òàêèå âîçìîæíîñòè êðèïòîãðàôèè èñïîëüçóþòñÿ â ðåàëüíûõ êîìïüþòåðíûõ ñèñòåìàõ. Ýòî è çàêëþ÷åíèå
êîììåð÷åñêèõ ñäåëîê â ðåæèìå óäàëåííîãî âçàèìîäåéñòâèÿ ó÷àñòíèêîâ, è îñóùåñòâëåíèå äåíåæíûõ ðàñ÷åòîâ ïî ñåòè, è ïðîâåäåíèå âûáîðîâ ïî êîìïüþòåðíûì ñåòÿì, è ìíîãîå äðóãîå. Ìåòîäû ðåøåíèÿ
ïîäîáíûõ çàäà÷ îáû÷íî îïèñûâàþòñÿ â ôîðìå òàê íàçûâàåìûõ êðèïòîãðàôè÷åñêèõ ïðîòîêîëîâ. Íåêîòîðûå èç íèõ áóäóò ïðåäñòàâëåíû â
ýòîé ãëàâå.
Îáðàòèì âíèìàíèå ÷èòàòåëÿ íà òî, ÷òî êðèïòîãðàôè÷åñêèå àëãîðèòìû íå ïðîñòî ïðåäîñòàâëÿþò íîâûå âîçìîæíîñòè ïîëüçîâàòåëþ
(íàïðèìåð, íå íóæíî õîäèòü â áàíê, ìîæíî ïðîèçâåñòè âñå íåîáõîäèìûå îïåðàöèè ñî ñâîåãî äîìàøíåãî êîìïüþòåðà). Âàæíî òî, ÷òî îíè
ñïîñîáíû îáåñïå÷èâàòü íàäåæíîñòü çíà÷èòåëüíî áîëåå âûñîêóþ, ÷åì
òðàäèöèîííûå ìåõàíèçìû. Íàïðèìåð, åñëè áóìàæíóþ áàíêíîòó ìîæíî ïîääåëàòü, è ñëó÷àè ïîääåëîê âåñüìà ìíîãî÷èñëåííû, òî ýëåêòðîííóþ áàíêíîòó, ñîçäàííóþ ïðè ïîìîùè êðèïòîãðàôè÷åñêèõ ìåòîäîâ,
ïîääåëàòü ïðàêòè÷åñêè íåâîçìîæíî.
Ãëàâà 6. Êðèïòîãðàôè÷åñêèå ïðîòîêîëû
6.1.
117
Äîêàçàòåëüñòâà ñ íóëåâûì çíàíèåì
Ðàññìîòðèì ñëåäóþùóþ çàäà÷ó, âîçíèêàþùóþ â íåêîòîðûõ
êðèïòîãðàôè÷åñêèõ ïðèëîæåíèÿõ. Ñíîâà ó÷àñòâóþò Àëèñà è Áîá. Àëèñà çíàåò ðåøåíèå íåêîòîðîé ñëîæíîé çàäà÷è, îíà õî÷åò óáåäèòü Áîáà
â ýòîì, îäíàêî òàê, ÷òîáû Áîá íå óçíàë ñàìîãî ðåøåíèÿ çàäà÷è. Ò.å.
â ðåçóëüòàòå Áîá äîëæåí óáåäèòüñÿ â òîì, ÷òî Àëèñà çíàåò ðåøåíèå,
íî íå äîëæåí óçíàòü ÷òî-íèáóäü î ñàìîì ðåøåíèè. Íà ïåðâûé âçãëÿä
ñàìà çàäà÷à êàæåòñÿ àáñóðäíîé, à âîçìîæíîñòü åå ðåøåíèÿ
ôàíòàñòè÷åñêîé! Äëÿ òîãî ÷òîáû ëó÷øå ïîíÿòü ñèòóàöèþ, ðàññìîòðèì ñëó÷àé èç æèçíè ïèðàòîâ. Ïóñòü, íàïðèìåð, Àëèñà çíàåò êàðòó îñòðîâà,
ãäå ñïðÿòàí êëàä, à Áîá êàïèòàí êîðàáëÿ, êîòîðûé ìîæåò äîñòàâèòü
åå íà îñòðîâ. Àëèñà õî÷åò äîêàçàòü, ÷òî êàðòà ó íåå åñòü, íå ïîêàçûâàÿ åå Áîáó (èíà÷å Áîá îáîéäåòñÿ áåç Àëèñû, è âåñü êëàä äîñòàíåòñÿ
åìó).
Òàêàÿ æå çàäà÷à àêòóàëüíà äëÿ êîìïüþòåðíûõ ñåòåé â òåõ ñëó÷àÿõ,
êîãäà Áîá (ñåðâåð èëè êîíòðîëëåð äîìåíà) äîëæåí ïðèíÿòü ðåøåíèå î
äîïóñêå Àëèñû ê èíôîðìàöèè, õðàíÿùåéñÿ â ñåòè, íî ïðè ýòîì Àëèñà
íå õî÷åò, ÷òîáû êòî-ëèáî, ïðîñëóøèâàþùèé êàíàë ïåðåäà÷è äàííûõ è
ñàì ñåðâåð, ïîëó÷èë êàêèå-ëèáî çíàíèÿ î åå ïàðîëå. Ò.å. Áîá ïîëó÷àåò
¾íóëåâîå çíàíèå¿ î ïàðîëå (èëè êàðòå) Àëèñû, íî óâåðåí, ÷òî ó Àëèñû
òàêîé ïàðîëü (èëè êàðòà) åñòü.
Èòàê, íàøà çàäà÷à
ïîñòðîèòü ïðîòîêîë ¾äîêàçàòåëüñòâà ñ íóëåâûì çíàíèåì¿. Ïðè ýòîì ìû ñ÷èòàåì, ÷òî êàæäûé èç ó÷àñòíèêîâ
ìîæåò âåñòè ¾íå÷åñòíóþ¿ èãðó è ïûòàòüñÿ îáìàíóòü äðóãîãî.
 êà÷åñòâå ñëîæíîé çàäà÷è, ðåøåíèå êîòîðîé èçâåñòíî Àëèñå, ìû
ðàññìîòðèì çàäà÷ó íàõîæäåíèÿ ãàìèëüòîíîâà öèêëà â ãðàôå. Îòìåòèì, ÷òî ýòà çàäà÷à NP-ïîëíàÿ. Ìû íå ïðèâîäèì ôîðìàëüíîãî îïðåäåëåíèÿ NP-ïîëíîòû, êîòîðîå ìîæåò áûòü íàéäåíî, íàïðèìåð, â [1].
Äëÿ ÷èòàòåëÿ, íå çíàêîìîãî ñ ýòèì îïðåäåëåíèåì, îòìåòèì òîëüêî, ÷òî
NP-ïîëíîòà çàäà÷è íåôîðìàëüíî îçíà÷àåò, ÷òî âðåìÿ ðåøåíèÿ çàäà÷è
ðàñòåò ýêñïîíåíöèàëüíî ñ ðîñòîì ðàçìåðà çàäà÷è (îáúåìà èñõîäíûõ
Ãëàâà 6. Êðèïòîãðàôè÷åñêèå ïðîòîêîëû
118
äàííûõ).
Çàäà÷à î íàõîæäåíèè ãàìèëüòîíîâà öèêëà â ãðàôå
Ðàññìàòðèâàåìàÿ â äàííîì ðàçäåëå çàäà÷à íå ïðîñòî ïðåäîñòàâëÿåò
íàì âîçìîæíîñòü îïèñàòü îäíó ñõåìó ïîñòðîåíèÿ ïðîòîêîëà äîêàçàòåëüñòâà ñ íóëåâûì çíàíèåì, íî è èìååò âàæíîå òåîðåòè÷åñêîå çíà÷åíèå. Áëþì (Manuel Blum) ïîêàçàë, ÷òî, âûðàæàÿñü íåôîðìàëüíî,
ëþáîå ìàòåìàòè÷åñêîå óòâåðæäåíèå ìîæåò áûòü ïðåäñòàâëåíî â âèäå
ãðàôà, ïðè÷åì äîêàçàòåëüñòâî ýòîãî óòâåðæäåíèÿ ñîîòâåòñòâóåò ãàìèëüòîíîâó öèêëó â ýòîì ãðàôå (ñì., íàïðèìåð, [26]). Ïîýòîìó íàëè÷èå ïðîòîêîëà äîêàçàòåëüñòâà ñ íóëåâûì çíàíèåì äëÿ ãàìèëüòîíîâà
öèêëà îçíà÷àåò, ÷òî äîêàçàòåëüñòâî ëþáîãî ìàòåìàòè÷åñêîãî óòâåðæäåíèÿ ìîæåò áûòü ïðåäñòàâëåíî â ôîðìå äîêàçàòåëüñòâà ñ íóëåâûì
çíàíèåì.
Îïðåäåëåíèå 6.1. Ãàìèëüòîíîâûì öèêëîì â ãðàôå íàçûâàåòñÿ
íåïðåðûâíûé ïóòü, ïðîõîäÿùèé ÷åðåç âñå âåðøèíû ãðàôà ðîâíî ïî
îäíîìó ðàçó.
Ï ð è ì å ð 6.1. Ðàññìîòðèì ãðàô, èçîáðàæåííûé íà ðèñ. 6.1.
Ïóòü, ïðîõîäÿùèé ïîñëåäîâàòåëüíî ÷åðåç âåðøèíû 8, 2, 4, 6, 3,
5, 7, 1, ïðåäñòàâëÿåò ñîáîé ãàìèëüòîíîâ öèêë. Äåéñòâèòåëüíî, â ýòîì
ïóòè ñîäåðæàòñÿ âñå âåðøèíû ãðàôà, è êàæäàÿ âåðøèíà ïîñåùàåòñÿ
òîëüêî îäèí ðàç.
t
u
ßñíî, ÷òî åñëè â ãðàôå G ñ n âåðøèíàìè ãàìèëüòîíîâ öèêë ñóùåñòâóåò, òî ïðè íåêîòîðîé íóìåðàöèè âåðøèí îí ïðîéäåò òî÷íî ÷åðåç âåðøèíû ñ ïîñëåäîâàòåëüíûìè íîìåðàìè 1, 2, 3, . . . , n. Ïîýòîìó
ïóòåì ïåðåáîðà âñåõ âîçìîæíûõ íóìåðàöèé âåðøèí ìû îáÿçàòåëüíî íàéäåì ãàìèëüòîíîâ öèêë. Íî êîëè÷åñòâî âîçìîæíûõ íóìåðàöèé
ðàâíî n!, è ïîýòîìó óæå ïðè óìåðåííî áîëüøèõ n, íàïðèìåð, ïðè
n = 100, òàêîé ïîäõîä ñòàíîâèòñÿ ïðàêòè÷åñêè íåðåàëèçóåìûì. Äîêàçàíî, ÷òî çàäà÷à íàõîæäåíèÿ ãàìèëüòîíîâà öèêëà â ãðàôå ÿâëÿåòñÿ
Ãëàâà 6. Êðèïòîãðàôè÷åñêèå ïðîòîêîëû
1
119
3
2
G
7
4
8
6
5
Ðèñ. 6.1. Ãðàô ñ ãàìèëüòîíîâûì öèêëîì (8, 2, 4, 6, 3, 5, 7, 1)
NP-ïîëíîé. Ìû óæå ãîâîðèëè êðàòêî î ïîíÿòèè NP-ïîëíîòû. Íåôîðìàëüíî, NP-ïîëíîòà ðàññìàòðèâàåìîé çàäà÷è îçíà÷àåò, ÷òî äëÿ åå ðåøåíèÿ íå ñóùåñòâóþò (òî÷íåå, íåèçâåñòíû) àëãîðèòìû ñóùåñòâåííî
áîëåå áûñòðûå, ÷åì óêàçàííûé ìåòîä ïåðåáîðà.
Íàøåé çàäà÷åé áóäåò ïîñòðîåíèå êðèïòîãðàôè÷åñêîãî ïðîòîêîëà, ñ ïîìîùüþ êîòîðîãî Àëèñà áóäåò äîêàçûâàòü Áîáó, ÷òî îíà çíàåò
ãàìèëüòîíîâ öèêë â íåêîòîðîì ãðàôå G òàê, ÷òîáû Áîá íå ïîëó÷èë
íèêàêèõ çíàíèé î ñàìîì ýòîì öèêëå. Èíûìè ñëîâàìè, Àëèñà áóäåò
ïðåäîñòàâëÿòü Áîáó äîêàçàòåëüñòâî ñ íóëåâûì çíàíèåì. Åùå ðàç íàïîìíèì ÷èòàòåëþ, ÷òî ¾íóëåâîå çíàíèå¿ îçíà÷àåò, ÷òî íåçàâèñèìî îò
÷èñëà ðåàëèçàöèé ïðîòîêîëà äîêàçàòåëüñòâà Áîá áóäåò ðàñïîëàãàòü
òî÷íî òàêèìè æå ñâåäåíèÿìè î ãàìèëüòîíîâîì öèêëå, êàêèå îí ìîã
áû ïîëó÷èòü, ïðîñòî èçó÷àÿ ïðåäñòàâëåííûé åìó ãðàô G.
Èòàê, äîïóñòèì, ÷òî Àëèñà çíàåò ãàìèëüòîíîâ öèêë â ãðàôå G.
Òåïåðü îíà ìîæåò ýòî äîêàçûâàòü Áîáó è âñåì, êòî èìååò ãðàô G, ñ
Ãëàâà 6. Êðèïòîãðàôè÷åñêèå ïðîòîêîëû
120
ïîìîùüþ îïèñûâàåìîãî íèæå ïðîòîêîëà. Àëèñà ìîæåò èñïîëüçîâàòü
ýòî äîêàçàòåëüñòâî, íàïðèìåð, äëÿ èäåíòèôèêàöèè ñâîåé ëè÷íîñòè.
Íî ïðåæäå ÷åì ìû ïåðåéäåì ê îïèñàíèþ ïðîòîêîëà, äîãîâîðèìñÿ î
íåêîòîðûõ îáîçíà÷åíèÿõ.
Ìû áóäåì îáîçíà÷àòü ãðàôû áóêâàìè G, H , F , ïîíèìàÿ ïîä ýòèì
îäíîâðåìåííî ñîîòâåòñòâóþùèå ìàòðèöû ñìåæíîñòè. Ýëåìåíò ìàòðèöû Hij = 1, åñëè â ãðàôå H åñòü ðåáðî, ñîåäèíÿþùåå âåðøèíû i
è j ; Hij = 0 â ïðîòèâíîì ñëó÷àå. Ñèìâîëîì k áóäåì îáîçíà÷àòü êîíêàòåíàöèþ (ñöåïëåíèå) äâóõ ÷èñåë, òî÷íåå, äâîè÷íûõ ñëîâ, èì ñîîòâåòñòâóþùèõ. Íàì ïîíàäîáèòñÿ øèôð ñ îòêðûòûì êëþ÷îì. Âîîáùå
ãîâîðÿ, ýòî ìîæåò áûòü ëþáîé øèôð, íî äëÿ îïðåäåëåííîñòè áóäåì
èñïîëüçîâàòü øèôð RSA (ðàçä. 2.6). Áóäåì ñ÷èòàòü, ÷òî Àëèñà ñôîðìèðîâàëà ñèñòåìó RSA ñ îòêðûòûìè ïàðàìåòðàìè N è d. Âàæíî,
÷òî çàøèôðîâàííûå â ýòîé ñèñòåìå ñîîáùåíèÿ ìîæåò ðàñøèôðîâàòü
òîëüêî Àëèñà è áîëüøå íèêòî.
Ïðîòîêîë äîêàçàòåëüñòâà ñîñòîèò èç ñëåäóþùèõ ÷åòûðåõ øàãîâ
(ïîÿñíåíèÿ áóäóò äàíû íèæå).
Øàã 1. Àëèñà ñòðîèò ãðàô H , ÿâëÿþùèéñÿ êîïèåé èñõîäíîãî ãðàôà G, ãäå ó âñåõ âåðøèí íîâûå, ñëó÷àéíî âûáðàííûå íîìåðà.
Íà ÿçûêå òåîðèè ãðàôîâ ãîâîðÿò, ÷òî H èçîìîðôåí G. Èíûìè ñëîâàìè, H ïîëó÷àåòñÿ ïóòåì íåêîòîðîé ïåðåñòàíîâêè âåðøèí â ãðàôå G (ñ ñîõðàíåíèåì ñâÿçåé ìåæäó âåðøèíàìè). Àëèñà êîäèðóåò ìàòðèöó H , ïðèïèñûâàÿ ê ïåðâîíà÷àëüíî ñîäåðæàùèìñÿ â íåé íóëÿì è åäèíèöàì ñëó÷àéíûå ÷èñëà rij ïî ñõåìå
H̃ij = rij kHij . Çàòåì îíà øèôðóåò ýëåìåíòû ìàòðèöû H̃ , ïîëó÷àÿ çàøèôðîâàííóþ ìàòðèöó F , Fij = H̃ijd mod N . Ìàòðèöó F
Àëèñà ïåðåäàåò Áîáó.
Øàã 2. Áîá, ïîëó÷èâ çàøèôðîâàííûé ãðàô F , çàäàåò Àëèñå îäèí èç
äâóõ âîïðîñîâ.
1. Êàêîâ ãàìèëüòîíîâ öèêë äëÿ ãðàôà H ?
Ãëàâà 6. Êðèïòîãðàôè÷åñêèå ïðîòîêîëû
121
2. Äåéñòâèòåëüíî ëè ãðàô H èçîìîðôåí G?
Øàã 3. Àëèñà îòâå÷àåò íà ñîîòâåòñòâóþùèé âîïðîñ Áîáà.
1. Îíà ðàñøèôðîâûâàåò â F ðåáðà, îáðàçóþùèå ãàìèëüòîíîâ
öèêë.
2. Îíà ðàñøèôðîâûâàåò F ïîëíîñòüþ (ôàêòè÷åñêè ïåðåäàåò Áîáó ãðàô H̃ ) è ïðåäúÿâëÿåò ïåðåñòàíîâêè, ñ ïîìîùüþ
êîòîðûõ ãðàô H áûë ïîëó÷åí èç ãðàôà G.
Øàã 4. Ïîëó÷èâ îòâåò, Áîá ïðîâåðÿåò ïðàâèëüíîñòü ðàñøèôðîâêè
ïóòåì ïîâòîðíîãî øèôðîâàíèÿ è ñðàâíåíèÿ ñ F è óáåæäàåòñÿ
ëèáî â òîì, ÷òî ïîêàçàííûå ðåáðà äåéñòâèòåëüíî îáðàçóþò ãàìèëüòîíîâ öèêë, ëèáî â òîì, ÷òî ïðåäúÿâëåííûå ïåðåñòàíîâêè
äåéñòâèòåëüíî ïåðåâîäÿò ãðàô G â ãðàô H .
Âåñü ïðîòîêîë ïîâòîðÿåòñÿ t ðàç.
Îáñóäèì âíà÷àëå êðàòêî íåñêîëüêî âîïðîñîâ ïî ïîñòðîåíèþ ïðîòîêîëà.
1. Çà÷åì Àëèñà ñòðîèò èçîìîðôíûé ãðàô? Åñëè áû îíà ýòîãî íå
äåëàëà, òî Áîá, ïîëó÷èâ îòâåò íà ñâîé âîïðîñ íîìåð îäèí, óçíàë
áû ãàìèëüòîíîâ öèêë â ãðàôå G.
2. Çà÷åì Àëèñà êîäèðóåò ìàòðèöó H ? Ñ ýòèì ïðèåìîì ìû óæå
âñòðå÷àëèñü ïðè øèôðîâàíèè öâåòîâ âåðøèí ãðàôà. Äåëî â òîì,
÷òî íåâîçìîæíî çàøèôðîâàòü íåïîñðåäñòâåííî íóëè è åäèíèöû (ñ ïîìîùüþ øèôðà RSA îíè âîîáùå íå øèôðóþòñÿ). Äàæå
åñëè çàìåíèòü èõ íà êàêèå-òî ïðîèçâîëüíûå ÷èñëà a è b, òî
ìû ïîëó÷èì âñåãî äâà ðàçëè÷íûõ øèôðîòåêñòà, è Áîáó íå ñîñòàâèò òðóäà ïîíÿòü, êàêîé èç íèõ êàêîìó ÷èñëó ñîîòâåòñòâóåò.
Ò.å. ñòðóêòóðà ãðàôà íå áóäåò ñêðûòà. Çäåñü ìû ñòàëêèâàåìñÿ
Ãëàâà 6. Êðèïòîãðàôè÷åñêèå ïðîòîêîëû
122
ñ òèïè÷íîé ñèòóàöèåé, êîãäà òðåáóåòñÿ èñïîëüçîâàòü òàê íàçûâàåìûé ðàíäîìèçèðîâàííûé øèôð. È òàêîé øèôð ñòðîèòñÿ ïóòåì äîáàâëåíèÿ ñëó÷àéíûõ ÷èñåë â ìàòðèöó H ïåðåä øèôðîâàíèåì. Çàêîäèðîâàííàÿ ìàòðèöà H̃ òî÷íî òàêæå çàäàåò ãðàô
(íå÷åòíîñòü ÷èñëà îçíà÷àåò íàëè÷èå ðåáðà, ÷åòíîñòü
åãî îòñóòñòâèå), íî ïîñëå øèôðîâàíèÿ H̃ ñòðóêòóðà ãðàôà ïîëíîñòüþ
ñêðûâàåòñÿ (ìû èñïîëüçóåì èçâåñòíîå ñâîéñòâî øèôðà RSA
îí ïîëíîñòüþ ñêðûâàåò ÷åòíîñòü ÷èñëà [22]).
3. Çà÷åì Áîá çàäàåò äâà âîïðîñà? Åñëè áû îí çàäàâàë òîëüêî âîïðîñ íîìåð îäèí, êîòîðûé ïî ñìûñëó ïðîòîêîëà ÿâëÿåòñÿ îñíîâíûì, òî Àëèñà, íå çíàÿ â äåéñòâèòåëüíîñòè ãàìèëüòîíîâà öèêëà
â ãðàôå G, ìîãëà áû ïðåäúÿâèòü Áîáó ñîâñåì äðóãîé ãðàô ñ òàêèì æå êîëè÷åñòâîì âåðøèí è èñêóñòâåííî çàëîæåííûì â íåãî
ãàìèëüòîíîâûì öèêëîì. Ïîýòîìó Áîá èíîãäà ïðîñèò Àëèñó äîêàçàòü èçîìîðôèçì ãðàôîâ H è G. Âàæíî, ÷òî Àëèñà íå çíàåò
çàðàíåå, êàêîé èç äâóõ âîïðîñîâ çàäàñò Áîá.
4. Ïî÷åìó Áîá íå ìîæåò çàäàòü ñðàçó äâóõ âîïðîñîâ?  ýòîì ñëó÷àå îí óçíàë áû ãàìèëüòîíîâ öèêë â G, òàê êàê åìó áûë áû
ïîêàçàí ãàìèëüòîíîâ öèêë â H è ïðàâèëî ïåðåõîäà îò H ê G.
5. Çà÷åì Áîá ïðîâåðÿåò ïðàâèëüíîñòü ðàñøèôðîâêè? Åñëè áû îí
ýòîãî íå äåëàë, òî Àëèñà íà ÷åòâåðòîì øàãå ìîãëà áû ïðåäîñòàâèòü åìó ¾âûãîäíóþ¿ äëÿ ñåáÿ èíôîðìàöèþ, à íå òó, êîòîðóþ
îíà ïîñûëàëà åìó íà âòîðîì øàãå.
Áîëåå òî÷íî îñíîâíûå äåòàëè ïðîòîêîëà îáîñíîâûâàþòñÿ â õîäå
äîêàçàòåëüñòâà äâóõ îñíîâíûõ óòâåðæäåíèé.
Óòâåðæäåíèå 6.1. Âåðîÿòíîñòü îáìàíà ïðè t ðåàëèçàöèÿõ ïðîòîêîëà íå ïðåâîñõîäèò 2−t .
Ãëàâà 6. Êðèïòîãðàôè÷åñêèå ïðîòîêîëû
123
Ä î ê à ç à ò å ë ü ñ ò â î . Âíà÷àëå ïîêàæåì, ÷òî âåðîÿòíîñòü îáìàíà â îäíîé ðåàëèçàöèè ïðîòîêîëà ðàâíà 1/2. Çàìåòèì, ÷òî åñëè Àëèñà
äåéñòâèòåëüíî çíàåò ãàìèëüòîíîâ öèêë â ãðàôå G, òî îíà ìîæåò ïðàâèëüíî îòâåòèòü íà ëþáîé âîïðîñ Áîáà. Åñëè æå îíà íå çíàåò ãàìèëüòîíîâ öèêë, òî ñàìîå áîëüøåå, ÷òî îíà ìîæåò ñäåëàòü,
ýòî ïîäãîòîâèòüñÿ ê îòâåòó íà ïåðâûé ëèáî íà âòîðîé âîïðîñ. Â îæèäàíèè
ïåðâîãî âîïðîñà, îíà ñîçäàåò íîâûé ãðàô ñ èñêóññòâåííî çàëîæåííûì â íåãî ãàìèëüòîíîâûì öèêëîì. Íî â ýòîì ñëó÷àå îíà íå ñìîæåò
äîêàçàòü åãî èçîìîðôèçì ãðàôó G. Â îæèäàíèè âòîðîãî âîïðîñà, îíà
ñòðîèò ãðàô, èçîìîðôíûé ãðàôó G. Íî â ýòîì ñëó÷àå îíà íå ñìîæåò ïîêàçàòü â íåì ãàìèëüòîíîâ öèêë. Òàêèì îáðàçîì, âåðîÿòíîñòü
óñïåøíîñòè îáìàíà ðàâíà âåðîÿòíîñòè óãàäûâàíèÿ íîìåðà âîïðîñà.
 ïðåäïîëîæåíèè, ÷òî Áîá çàäàåò îáà âîïðîñà ñ îäèíàêîâûìè âåðîÿòíîñòÿìè, ìû ïîëó÷àåì, ÷òî âåðîÿòíîñòü îáìàíà ðàâíà 1/2.
Òàê êàê Áîá ïðåêðàùàåò èãðó ïðè ïåðâîì æå íåïðàâèëüíîì îòâåòå, âåðîÿòíîñòü îáìàíà ïðè t ðåàëèçàöèÿõ ïðîòîêîëà íå ïðåâîñõîäèò
(1/2)t .
t
u
Óòâåðæäåíèå 6.2. Ïðåäñòàâëåííûé ïðîòîêîë ðåàëèçóåò äîêàçàòåëüñòâî ñ íóëåâûì çíàíèåì.
Ä î ê à ç à ò å ë ü ñ ò â î . ×òîáû äîêàçàòü, ÷òî Áîá íå ïîëó÷àåò íèêàêèõ çíàíèé â õîäå ðåàëèçàöèè ïðîòîêîëà, äîñòàòî÷íî ïîêàçàòü, ÷òî
âñå, ÷òî îí ïîëó÷àåò îò Àëèñû, îí ìîã áû ïîëó÷èòü ñàì, íå âñòóïàÿ ñ
íåé íè â êàêîå îáùåíèå.
Ðàññìîòðèì âíà÷àëå âòîðîé âîïðîñ Áîáà.  îòâåò íà ýòîò âîïðîñ
îí ïîëó÷àåò ãðàô, èçîìîðôíûé ãðàôó G. Íî îí ñàì ìîã ñòðîèòü
ñêîëüêî óãîäíî èçîìîðôíûõ ãðàôîâ, è òî, ÷òî ïðèñûëàåò åìó Àëèñà, ýòî ïðîñòî îäèí èç íèõ.
Ñëó÷àé ñ ïåðâûì âîïðîñîì íå ñòîëü î÷åâèäåí.  îòâåò íà ïåðâûé
âîïðîñ Áîá ïîëó÷àåò ãàìèëüòîíîâ öèêë â ãðàôå, èçîìîðôíîì ãðàôó
G. Íà ïåðâûé âçãëÿä ìîæåò ïîêàçàòüñÿ, ÷òî ýòî äàåò Áîáó êàêóþ-òî
Ãëàâà 6. Êðèïòîãðàôè÷åñêèå ïðîòîêîëû
124
èíôîðìàöèþ. Îäíàêî ýòî íå òàê. Çàìåòèì, ÷òî åñëè â G åñòü ãàìèëüòîíîâ öèêë, òî ïðè íåêîòîðîé íóìåðàöèè âåðøèí ñóùåñòâóåò èçîìîðôíûé ãðàô, êîòîðûé çàäàåòñÿ ìàòðèöåé ñìåæíîñòè âèäà
∗ 1 ∗ ··· ∗ ∗ ∗
∗ ∗ 1 ··· ∗ ∗ ∗
·
·
·
(6.1)
∗ ∗ ∗ ··· ∗ 1 ∗ ,
∗ ∗ ∗ ··· ∗ ∗ 1
1 ∗ ∗ ··· ∗ ∗ ∗
ãäå ∗ îçíà÷àåò íåîïðåäåëåííîñòü â íàëè÷èè èëè îòñóòñòâèè ðåáðà.
Ò.å. ïðè òàêîé íóìåðàöèè ãàìèëüòîíîâ öèêë ïðîõîäèò ÷åðåç âåðøèíû â ïîðÿäêå âîçðàñòàíèÿ íîìåðîâ. Èçìåíÿÿ íóìåðàöèþ âåðøèí, Áîá
ìîæåò ïîëó÷àòü èç (6.1) âñåâîçìîæíûå èçîìîðôíûå ìàòðèöû. Êîãäà
Àëèñà, îòâå÷àÿ íà åãî ïåðâûé âîïðîñ, îòêðûâàåò ãàìèëüòîíîâ öèêë,
Áîá âèäèò êàê ðàç îäíó èç òàêèõ ìàòðèö.
Òàêèì îáðàçîì, Áîá íå ïîëó÷àåò îò Àëèñû íèêàêîé èíôîðìàöèè,
êîòîðóþ îí íå ìîã áû ïîëó÷èòü ñàì.
t
u
Ðàññìîòðèì ïðèìåð, èëëþñòðèðóþùèé âñå îñíîâíûå ýòàïû îïèñàííîãî ïðîòîêîëà.
Ï ð è ì å ð 6.2. Âîçüìåì â êà÷åñòâå îñíîâíîãî ãðàô G, èçîáðà-
Ãëàâà 6. Êðèïòîãðàôè÷åñêèå ïðîòîêîëû
125
æåííûé íà ðèñ. 6.1. Åãî ìàòðèöà ñìåæíîñòè èìååò âèä
G=
1
2
3
4
5
6
7
8
1
2
3
4
5
6
7
8
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
.
 ìàòðèöå ñ ïîìîùüþ · ïîêàçàí ãàìèëüòîíîâ öèêë. Àëèñà âûáèðàåò
íåêîòîðóþ ñëó÷àéíóþ íóìåðàöèþ âåðøèí, ñêàæåì, 7, 4, 5, 3, 1, 2, 8,
6, è ïîëó÷àåò èçîìîðôíûé ãðàô
H=
7
4
5
3
1
2
8
6
7
4
5
3
1
2
8
6
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
.
Äëÿ øèôðîâàíèÿ ìàòðèöû áóäåì èñïîëüçîâàòü ñèñòåìó RSA ñ ïàðàìåòðàìè N = 55, d = 3. Âíà÷àëå çàêîäèðóåì ìàòðèöó H .  ðàìêàõ
äàííîãî ïðèìåðà ïðîñòî ïðèïèøåì ñëåâà ê êàæäîìó ýëåìåíòó ìàòðèöû âûáèðàåìóþ ñëó÷àéíî ñ ðàâíûìè âåðîÿòíîñòÿìè öèôðó èç ìíî-
Ãëàâà 6. Êðèïòîãðàôè÷åñêèå ïðîòîêîëû
æåñòâà {1, 2, 3, 4, 5}:
H̃ =
50
40
41
11
31
50
40
20
20
30
30
10
20
41
30
41
11
50
50
41
40
20
31
10
31
20
11
30
11
21
50
51
21
10
30
51
50
40
41
41
126
40
41
20
41
10
10
21
20
20
50
51
30
41
21
30
30
10
21
40
21
31
50
40
40
.
Òåïåðü ìû øèôðóåì ìàòðèöó H̃ , âîçâîäÿ êàæäûé åå ýëåìåíò â êóá ïî
ìîäóëþ 55:
40 25 11 36 21 35 25 10
35 50 40 25 10 06 40 21
06 50 40 11 50 25 46 35
11 10 06 50 46 06 50 21
F =
36 25 35 11 40 10 06 36 .
40 06 25 21 35 10 21 40
35 50 36 40 06 21 50 35
25 06 10 46 06 25 50 35
(Ïðè âíèìàòåëüíîì ïðîñìîòðå ìàòðèöû F ìîæåò ïîêàçàòüñÿ, ÷òî èñïîëüçîâàííûé íàìè øèôð ïëîõî ñêðûâàåò èñõîäíóþ ìàòðèöó H . Ýòî
îáúÿñíÿåòñÿ òåì, ÷òî, âî-ïåðâûõ, ìîäóëü 55 ñëèøêîì ìàë è, âî-âòîðûõ,
â ìàòðèöå H̃ ìíîãî ÷èñåë, íå âçàèìíî ïðîñòûõ ñ ìîäóëåì. Äëÿ ðåàëüíûõ ñèñòåì RSA, ãäå N
áîëüøîå ÷èñëî, òàêàÿ ñèòóàöèÿ ïðàêòè÷åñêè èñêëþ÷åíà.)
Áîá ïîëó÷àåò ìàòðèöó F è çàäàåò îäèí èç äâóõ âîïðîñîâ. Åñëè
îí ïðîñèò äîêàçàòü èçîìîðôèçì ãðàôîâ, òî Àëèñà ïðîñòî ïîñûëàåò
åìó êîäèðîâàííóþ ìàòðèöó H̃ è èñïîëüçîâàííóþ íóìåðàöèþ 7, 4,
5, 3, 1, 2, 8, 6. Áîá ïðîâåðÿåò ñîîòâåòñòâèå ìàòðèöû H̃ ìàòðèöå F ,
Ãëàâà 6. Êðèïòîãðàôè÷åñêèå ïðîòîêîëû
127
ò.å.âûïîëíåíèå ðàâåíñòâ 503 mod 55 = 40, 203 mod 55 = 25 è ò.ä. Èç
ìàòðèöû H̃ Áîá ïîëó÷àåò ãðàô H (ïðîñòî îòáðîñèâ ñòàðøóþ äåñÿòè÷íóþ öèôðó). Çàòåì îí ïåðåñòàâëÿåò âåðøèíû ãðàôà G â ñîîòâåòñòâèè ñ ïîëó÷åííîé íóìåðàöèåé, êàê ýòî äåëàëà Àëèñà, è óáåæäàåòñÿ
â òîì, ÷òî H è G
îäèí è òîò æå ãðàô.
Åñëè Áîá ïðîñèò ïîêàçàòü åìó ãàìèëüòîíîâ öèêë, òî Àëèñà ïîñûëàåò åìó ñîîòâåòñòâóþùèé ñïèñîê (çàêîäèðîâàííûõ) ðåáåð ãðàôà H :
(1, 5, 21), (5, 7, 41), (7, 6, 21), . . . , (3, 1, 41). Êàæäûé ýëåìåíò ñîäåðæèò íîìåðà âåðøèí è êîä ðåáðà. Áîá ïðîâåðÿåò ñîîòâåòñòâèå óêàçàííûõ â ñïèñêå ðåáåð ìàòðèöå F , íàïðèìåð, 213 mod 55 = 21 = F1,5 ,
413 mod 55 = 06 = F5,7 è ò.ä. Çàòåì îí óáåæäàåòñÿ, ÷òî óêàçàííûé â
ñïèñêå ïóòü ïðîõîäèò ÷åðåç âñå âåðøèíû ãðàôà ïî îäíîìó ðàçó.
t
u
6.2.
Ýëåêòðîííûå äåíüãè
Âî ìíîãèõ ñòðàíàõ ëþäè îïëà÷èâàþò ïîêóïêè ïðè ïîìîùè ýëåêòðîííûõ êàðòî÷åê, çàêàçûâàþò àâèàáèëåòû ÷åðåç Èíòåðíåò, ïîêóïàþò ñàìûå ðàçíîîáðàçíûå òîâàðû â Èíòåðíåò-ìàãàçèíàõ. Ñâåäåíèÿ î ïîêóïêàõ íàêàïëèâàþòñÿ â ìàãàçèíàõ è áàíêàõ. Ïîýòîìó ïîÿâèëàñü íîâàÿ
ïðîáëåìà, èíîãäà íàçûâàåìàÿ ¾ïðîáëåìà Áîëüøîãî Áðàòà¿.
Ñóòü ïðîáëåìû ñîñòîèò â òîì, ÷òî èñ÷åçàåò àíîíèìíîñòü ïðîöåññà ïîêóïêè, ò.å. èíôîðìàöèÿ î ïîêóïêàõ ëþáîãî ÷åëîâåêà ìîæåò ñòàòü
èçâåñòíîé òðåòüèì ëèöàì è èñïîëüçîâàòüñÿ ïðîòèâ íåãî. Íàïðèìåð,
ñâåäåíèÿ î ïîêóïêå áèëåòà íà ïîåçä èëè ñàìîëåò ìîãóò ïðåäñòàâëÿòü
èíòåðåñ äëÿ ïðåñòóïíèêîâ, èíôîðìàöèÿ î çàêóïêàõ àëêîãîëüíûõ íàïèòêîâ ïîëèòè÷åñêèì äåÿòåëåì ìîæåò áûòü èñïîëüçîâàíà ïðîòèâ íåãî
åãî ïðîòèâíèêàìè è ò.ä., è ò.ï.
Ïîýòîìó âîçíèêëà èäåÿ ðàçðàáîòàòü òàêèå ñõåìû ýëåêòðîííûõ ïëàòåæåé, êîòîðûå ñîõðàíÿëè áû àíîíèìíîñòü ïîêóïàòåëÿ â òîé æå ñòåïåíè, ÷òî è ïðè ðàñ÷åòå íàëè÷íûìè äåíüãàìè. Òàêèå ïðîòîêîëû íàçûâàþòñÿ ýëåêòðîííûìè èëè öèôðîâûìè äåíüãàìè (digital cache), ÷òî
Ãëàâà 6. Êðèïòîãðàôè÷åñêèå ïðîòîêîëû
128
ïîä÷åðêèâàåò èõ îñíîâíîå ñâîéñòâî
îíè îáåñïå÷èâàþò òó æå ñòåïåíü àíîíèìíîñòè, ÷òî è îáû÷íûå äåíüãè. Íåêîòîðûå ñõåìû óæå èñïîëüçóþòñÿ â ðåàëüíîé æèçíè. Îïèñûâàåìàÿ íèæå ñõåìà áûëà ïðåäëîæåíà Ä. ×àóìîì (David Chaum), ñì. [2, 22].
Ìû ðàññìîòðèì äâå ¾ïëîõèå¿ ñõåìû, à çàòåì ¾õîðîøóþ¿, ÷òîáû
áûëî ëåã÷å ïîíÿòü ñóòü ìåòîäà.
Âíà÷àëå äàäèì áîëåå òî÷íóþ ïîñòàíîâêó çàäà÷è. Èìåþòñÿ òðè
ó÷àñòíèêà: áàíê, ïîêóïàòåëü è ìàãàçèí. Ïîêóïàòåëü è ìàãàçèí èìåþò
ñîîòâåòñòâóþùèå ñ÷åòà â áàíêå, è ïîêóïàòåëü õî÷åò êóïèòü íåêîòîðûé òîâàð â ìàãàçèíå. Ïîêóïêà îñóùåñòâëÿåòñÿ â âèäå òðåõñòóïåí÷àòîãî ïðîöåññà:
1) ïîêóïàòåëü ñíèìàåò íóæíóþ ñóììó ñî ñâîåãî ñ÷åòà â áàíêå;
2) ïîêóïàòåëü ¾ïåðåñûëàåò¿ äåíüãè â ìàãàçèí;
3) ìàãàçèí ñîîáùàåò îá ýòîì â áàíê, ñîîòâåòñòâóþùàÿ ñóììà äåíåã
çà÷èñëÿåòñÿ íà ñ÷åò ìàãàçèíà, à ïîêóïàòåëü çàáèðàåò òîâàð(èëè
ïîñëåäíèé åìó äîñòàâëÿåòñÿ).
Íàøà öåëü
ðàçðàáîòàòü òàêóþ ñõåìó, ÷òîáû
• îíà áûëà íàäåæíà;
• ÷òîáû áàíê íå çíàë, êòî êóïèë òîâàð, ò.å. áûëà ñîõðàíåíà àíîíèìíîñòü îáû÷íûõ äåíåã.
Îïèøåì ïåðâóþ ¾ïëîõóþ¿ ñõåìó (îíà áàçèðóåòñÿ íà RSA). Áàíê
èìååò ñëåäóþùóþ èíôîðìàöèþ: ñåêðåòíûå ÷èñëà P , Q, c è îòêðûòûå
N = P Q,
d = c−1 mod (P − 1)(Q − 1).
(6.2)
Äîïóñòèì, ïîêóïàòåëü ðåøèë èçðàñõîäîâàòü íåêîòîðóþ çàðàíåå îãîâîðåííóþ ñ áàíêîì ñóììó (íàïðèìåð, 100$). (Ìû ñíà÷àëà ðàññìîòðèì
Ãëàâà 6. Êðèïòîãðàôè÷åñêèå ïðîòîêîëû
129
ñëó÷àé, êîãäà ìîæåò èñïîëüçîâàòüñÿ ¾áàíêíîòà¿ òîëüêî îäíîãî íîìèíàëà (ñêàæåì, 100$).) Ïîêóïàòåëü âûñûëàåò â áàíê ÷èñëî n, êîòîðîå
áóäåò íîìåðîì áàíêíîòû (îáû÷íî òðåáóåòñÿ, ÷òîáû ãåíåðèðîâàëîñü
ñëó÷àéíîå ÷èñëî â ïðîìåæóòêå [2, N − 1]).
Áàíê âû÷èñëÿåò ÷èñëî
s = nc mod N
(6.3)
è ôîðìèðóåò áàíêíîòó hn, si, êîòîðóþ âîçâðàùàåò ïîêóïàòåëþ, ïðåäâàðèòåëüíî óìåíüøèâ åãî ñ÷åò íà 100$. Ïàðàìåòð s â áàíêíîòå
ýòî ïîäïèñü áàíêà. Íèêòî íå ìîæåò ïîääåëàòü ïîäïèñü, òàê êàê ÷èñëî
c ñåêðåòíî.
Ïîêóïàòåëü ïðåäúÿâëÿåò áàíêíîòó hn, si â ìàãàçèíå, ÷òîáû êóïèòü òîâàð. Ìàãàçèí îòïðàâëÿåò ýòó áàíêíîòó â áàíê äëÿ ïðîâåðêè.
Ïðåæäå âñåãî, áàíê ïðîâåðÿåò ïðàâèëüíîñòü ïîäïèñè (ýòó ïðîâåðêó
ìîã áû ñäåëàòü è ìàãàçèí, èñïîëüçóÿ îòêðûòûå êëþ÷è áàíêà). Íî êðîìå ýòîãî áàíê õðàíèò âñå íîìåðà âîçâðàòèâøèõñÿ ê íåìó áàíêíîò è
ïðîâåðÿåò, íåò ëè ÷èñëà n â ýòîì ñïèñêå. Åñëè n åñòü â ñïèñêå, òî
ïëàòåæ íå ïðèíèìàåòñÿ (êòî-òî ïûòàåòñÿ èñïîëüçîâàòü áàíêíîòó ïîâòîðíî), è áàíê ñîîáùàåò îá ýòîì ìàãàçèíó. Åñëè æå âñå ïðîâåðêè
ïðîøëè óñïåøíî, òî áàíê äîáàâëÿåò 100$ íà ñ÷åò ìàãàçèíà, à ìàãàçèí
îòïóñêàåò òîâàð ïîêóïàòåëþ.
Íåäîñòàòîê ýòîé ñõåìû
îòñóòñòâóåò àíîíèìíîñòü. Áàíê, à òàêæå âñå, êòî èìååò äîñòóï ê îòêðûòûì ëèíèÿì ñâÿçè, ìîãóò çàïîìíèòü,
êàêîìó ïîêóïàòåëþ ñîîòâåòñòâóåò ÷èñëî n, è òåì ñàìûì âûÿñíèòü,
êòî êóïèë òîâàð.
Ðàññìîòðèì âòîðóþ ¾ïëîõóþ¿ ñõåìó, êîòîðàÿ óæå îáåñïå÷èâàåò àíîíèìíîñòü. Ýòà ñõåìà áàçèðóåòñÿ íà òàê íàçûâàåìîé ¾ñëåïîé
ïîäïèñè¿.
Ñíîâà ïîêóïàòåëü õî÷åò êóïèòü òîâàð. Îí ãåíåðèðóåò ÷èñëî n,
êîòîðîå òåïåðü íå áóäåò ïîñûëàòüñÿ â áàíê. Çàòåì îí ãåíåðèðóåò ñëó-
Ãëàâà 6. Êðèïòîãðàôè÷åñêèå ïðîòîêîëû
130
÷àéíîå ÷èñëî r , âçàèìíî ïðîñòîå ñ N , è âû÷èñëÿåò ÷èñëî
n̂ = (n · rd ) mod N.
(6.4)
×èñëî n̂ ïîêóïàòåëü îòïðàâëÿåò â áàíê.
Áàíê âû÷èñëÿåò ÷èñëî
ŝ = n̂c mod N
(6.5)
è îòïðàâëÿåò ŝ îáðàòíî ïîêóïàòåëþ (íå çàáûâ ïðè ýòîì ñíÿòü 100$ ñ
åãî ñ÷åòà).
Ïîêóïàòåëü íàõîäèò ÷èñëî r−1 mod N è âû÷èñëÿåò
s = (ŝ · r−1 ) mod N.
(6.6)
Çàìåòèì, ÷òî ñ ó÷åòîì ñîîòíîøåíèé (6.5), (6.4) è (6.2) èìååì
s = n̂c · r−1 = (n · rd )c · r−1 = nc rdc · r−1 = nc r1 r−1 = nc mod N,
ò.å. ìû ïîëó÷èëè ïîäïèñü áàíêà ê n (ñì. (6.3)), íî ñàìîãî ÷èñëà n íè
áàíê, íè êòî ëèáî äðóãîé íå âèäåë. Âû÷èñëåíèå (6.5) íàçûâàåòñÿ ¾ñëåïîé ïîäïèñüþ¿, òàê êàê ðåàëüíîå ñîîáùåíèå (n) ïîäïèñûâàþùèé íå
âèäèò è óçíàòü íå ìîæåò.
Òàêèì îáðàçîì, ïîêóïàòåëü èìååò ÷èñëî n, êîòîðîå íèêîìó íå
èçâåñòíî è íèêîãäà íå ïåðåäàâàëîñü ïî êàíàëàì ñâÿçè, è ïîäïèñü áàíêà s, ñîâïàäàþùóþ ñ âû÷èñëåííîé ïî (6.3). Ïîêóïàòåëü ôîðìèðóåò
áàíêíîòó hn, si è äåéñòâóåò òàê æå, êàê â ïåðâîé ¾ïëîõîé¿ ñõåìå. Íî
òåïåðü íèêòî íå çíàåò, êîìó ñîîòâåòñòâóåò ýòà áàíêíîòà, ò.å. îíà ñòàëà
àíîíèìíîé, êàê îáû÷íàÿ áóìàæíàÿ áàíêíîòà.
Äåéñòâèÿ ìàãàçèíà è áàíêà ïîñëå ïðåäúÿâëåíèÿ ïîêóïàòåëåì áàíêíîòû hn, si íè÷åì íå îòëè÷àþòñÿ îò äåéñòâèé, îïèñàííûõ â ïåðâîé
ñõåìå.
Ïî÷åìó æå äàííàÿ ñõåìà ïëîõàÿ? Îíà èìååò ñëåäóþùèé íåäîñòàòîê: ìîæíî ñôàáðèêîâàòü ôàëüøèâóþ áàíêíîòó, åñëè èçâåñòíû õîòÿ áû äâå íàñòîÿùèå. Äåëàåòñÿ ýòî òàê. Ïóòü çëîóìûøëåííèê (áóäü
Ãëàâà 6. Êðèïòîãðàôè÷åñêèå ïðîòîêîëû
131
òî ïîêóïàòåëü èëè ìàãàçèí) èìååò äâå íàñòîÿùèå áàíêíîòû hn1 , s1 i
è hn2 , s2 i. Òîãäà îí ëåãêî ñìîæåò èçãîòîâèòü ôàëüøèâóþ áàíêíîòó
hn3 , s3 i, âû÷èñëèâ ÷èñëà
n3 = n1 n2 mod N,
s3 = s1 s2 mod N.
Äåéñòâèòåëüíî,
nc3 = (n1 n2 )c = nc1 nc2 = s1 s2 = s3 mod N,
(6.7)
ò.å. s3 ÿâëÿåòñÿ ïðàâèëüíîé ïîäïèñüþ äëÿ n3 , è ó áàíêà íåò íèêàêèõ
îñíîâàíèé, ÷òîáû íå ïðèíÿòü ýòó ôàëüøèâóþ áàíêíîòó (îí ïðîñòî íå
ñìîæåò îòëè÷èòü åå îò ïîäëèííîé). Ýòî òàê íàçûâàåìîå ¾ìóëüòèïëèêàòèâíîå ñâîéñòâî¿ ñèñòåìû RSA.
Îïèøåì, íàêîíåö, ¾õîðîøóþ¿ ñõåìó, â êîòîðîé óñòðàíåíû âñå
íåäîñòàòêè ïåðâûõ äâóõ. Â îäíîì âàðèàíòå òàêîé ñõåìû èñïîëüçóåòñÿ
íåêîòîðàÿ îäíîñòîðîííÿÿ ôóíêöèÿ
f : {1, . . . , N } → {1, . . . , N }
(f âû÷èñëÿåòñÿ ëåãêî, à îáðàòíàÿ ê íåé ôóíêöèÿ f −1
î÷åíü òðóäíî). Ôóíêöèÿ f íå ñåêðåòíà è èçâåñòíà âñåì (ïîêóïàòåëþ, áàíêó è
ìàãàçèíó).
Áàíêíîòà òåïåðü îïðåäåëÿåòñÿ êàê ïàðà ÷èñåë hn, sf i, ãäå
sf = (f (n))c mod N,
ò.å. ïîäïèñûâàåòñÿ íå n, à çíà÷åíèå f (n).
Ïîêóïàòåëü ãåíåðèðóåò n (íèêîìó åãî íå ïîêàçûâàÿ), âû÷èñëÿåò
f (n), ïîäïèñûâàåò â áàíêå ïðè ïîìîùè ¾ñëåïîé ïîäïèñè¿ ÷èñëî f (n)
è ôîðìèðóåò áàíêíîòó hn, sf i. Ýòà áàíêíîòà îáëàäàåò âñåìè õîðîøèìè ñâîéñòâàìè, êàê è âî âòîðîé ñõåìå, â òî æå âðåìÿ ïîääåëàòü òàêóþ
Ãëàâà 6. Êðèïòîãðàôè÷åñêèå ïðîòîêîëû
132
áàíêíîòó íåâîçìîæíî, òàê êàê íåâîçìîæíî âû÷èñëèòü f −1 . Äëÿ ïðîâåðêè ïîäïèñè (ò.å. ïîäëèííîñòè áàíêíîòû) íóæíî âû÷èñëèòü f (n) è
óáåäèòüñÿ, ÷òî
sdf mod N = f (n).
Çàìåòèì, ÷òî ïðè âûáîðå îäíîñòîðîííåé ôóíêöèè íóæíî ïðîÿâëÿòü îñòîðîæíîñòü. Íàïðèìåð, ôóíêöèÿ f (n) = n2 mod N , êîòîðàÿ
äåéñòâèòåëüíî ÿâëÿåòñÿ îäíîñòîðîííåé, íå ãîäèòñÿ äëÿ ðàññìàòðèâàåìîãî ïðîòîêîëà. ×èòàòåëü ìîæåò ïðîâåðèòü, ÷òî áàíêíîòû, ñîçäàííûå
ñ èñïîëüçîâàíèåì òàêîé ôóíêöèè, áóäóò ïî-ïðåæíåìó îáëàäàòü ìóëüòèïëèêàòèâíûì ñâîéñòâîì (6.7). Íà ïðàêòèêå â êà÷åñòâå f (n) îáû÷íî
èñïîëüçóþòñÿ êðèïòîãðàôè÷åñèå õåø-ôóíêöèè, îïèñûâàåìûå â ãëàâå
4.
Âñå îñòàëüíûå äåéñòâèÿ ìàãàçèíà è áàíêà îñòàþòñÿ òàêèìè æå,
êàê è â ðàíåå îïèñàííûõ ñõåìàõ.
Åñòü åùå îäèí, áîëåå ïðîñòîé, ñïîñîá áîðüáû ñ ìóëüòèïëèêàòèâíûì ñâîéñòâîì ñèñòåìû RSA
âíåñåíèå èçáûòî÷íîñòè â ñîîáùåíèå. Äîïóñòèì, ÷òî äëèíà ìîäóëÿ N
1024 áèòà. Òàêîé æå ìîæåò
áûòü è äëèíà ÷èñëà n. Áóäåì çàïèñûâàòü (ñëó÷àéíî âûáèðàåìûé) íîìåð áàíêíîòû òîëüêî â ìëàäøèå 512 áèò n, à â ñòàðøèå 512 áèò n
çàïèøåì íåêîòîðîå ôèêñèðîâàííîå ÷èñëî. Ýòî ôèêñèðîâàííîå ÷èñëî
ìîæåò íåñòè ïîëåçíóþ èíôîðìàöèþ, òàêóþ, êàê íîìèíàë áàíêíîòû è
íàèìåíîâàíèå áàíêà (ñ ïîìîùüþ 512 áèò ìîæíî ïðåäñòàâèòü ñòðîêó
èç 64 ñèìâîëîâ ASCII). Òåïåðü áàíê ïðè ïðåäúÿâëåíèè åìó áàíêíîòû áóäåò îáÿçàòåëüíî ïðîâåðÿòü íàëè÷èå ôèêñèðîâàííîãî çàãîëîâêà â
ïàðàìåòðå n è îòâåðãàòü áàíêíîòó â ñëó÷àå åãî îòñóòñòâèÿ. Âåðîÿòíîñòü òîãî, ÷òî ïðè ïåðåìíîæåíèè äâóõ ÷èñåë ïî ìîäóëþ N ðåçóëüòàò
ñîâïàäåò ñ íèìè â 512 áèòàõ ïðåíåáðåæèìî ìàëà. Ïîýòîìó ïîëó÷èòü
ôàëüøèâóþ áàíêíîòó ïî ôîðìóëå (6.7) íå óäàñòñÿ.
Ï ð è ì å ð 6.3. Ïóñòü â êà÷åñòâå ñåêðåòíûõ ïàðàìåòðîâ áàíêà âûáðàíû ÷èñëà P = 17, Q = 7, c = 77. Ñîîòâåòñòâóþùèå èì îòêðûòûå
ïàðàìåòðû áóäóò N = 119, d = 5. Äëÿ èñêëþ÷åíèÿ âîçìîæíîñòè
Ãëàâà 6. Êðèïòîãðàôè÷åñêèå ïðîòîêîëû
133
ïîääåëêè áàíêíîò èõ äîïóñòèìûìè íîìåðàìè ñ÷èòàþòñÿ òîëüêî ÷èñëà, ñîñòîÿùèå èç äâóõ îäèíàêîâûõ äåñÿòè÷íûõ öèôð, íàïðèìåð, 11,
77, 99.
Êîãäà ïîêóïàòåëü õî÷åò ïîëó÷èòü áàíêíîòó, îí âíà÷àëå ñëó÷àéíûì îáðàçîì âûáèðàåò åå íîìåð (èç ÷èñëà äîïóñòèìûõ). Ïðåäïîëîæèì, îí âûáðàë n = 33. Çàòåì îí íàõîäèò ñëó÷àéíîå ÷èñëî r , âçàèìíîïðîñòîå ñî 119. Äîïóñòèì, r = 67, gcd(67, 119) = 1. Äàëåå,
ïîêóïàòåëü âû÷èñëÿåò
n̂ = (33 · 675 ) mod 119 = (33 · 16) mod 119 = 52.
Èìåííî ÷èñëî 52 îí ïîñûëàåò â áàíê.
Áàíê ñïèñûâàåò ñî ñ÷åòà ïîêóïàòåëÿ 100$ è îòïðàâëÿåò åìó ÷èñëî
ŝ = 5277 mod 119 = 103.
Ïîêóïàòåëü âû÷èñëÿåò r−1 = 67−1 mod 119 = 16 è s = 103 ·
16 mod 119 = 101 è ïîëó÷àåò ïëàòåæåñïîñîáíóþ áàíêíîòó
hn, si = h33, 101i.
Ýòó áàíêíîòó îí ïðèíîñèò (èëè ïîñûëàåò) â ìàãàçèí, ÷òîáû êóïèòü
òîâàð.
Ìàãàçèí ïðåäúÿâëÿåò áàíêíîòó â áàíê. Áàíê äåëàåò ñëåäóþùèå
ïðîâåðêè:
1) íîìåð áàíêíîòû (n = 33) ñîñòîèò èç äâóõ îäèíàêîâûõ äåñÿòè÷íûõ öèôð (ò.å. ñîäåðæèò òðåáóåìóþ èçáûòî÷íîñòü);
2) ðàíåå áàíêíîòà ñ òàêèì íîìåðîì íå ïðåäúÿâëÿëàñü;
2) ïîäïèñü áàíêà âåðíà, ò.å. 335 mod 119 = 101.
Ãëàâà 6. Êðèïòîãðàôè÷åñêèå ïðîòîêîëû
134
Òàê êàê âñå ïðîâåðêè ïðîøëè óñïåøíî, áàíê çà÷èñëÿåò 100$ (ýòî ôèêñèðîâàííûé íîìèíàë áàíêíîòû) íà ñ÷åò ìàãàçèíà, î ÷åì åìó è ñîîáùàåò. Ìàãàçèí îòïóñêàåò òîâàð ïîêóïàòåëþ.
t
u
 çàâåðøåíèå ðàçáåðåì åùå äâå ïðîáëåìû, âîçíèêàþùèå â ñâÿçè
ñ ðàññìîòðåííîé ñõåìîé ýëåêòðîííûõ äåíåã.
 ïðåäñòàâëåííîé ñõåìå íåçàâèñèìî äåéñòâóþùèå ïîêóïàòåëè èëè
äàæå îäèí ïîêóïàòåëü, êîòîðûé íå ïîìíèò íîìåðîâ ðàíåå èñïîëüçîâàííûõ èì áàíêíîò, ìîãóò ñëó÷àéíî ñãåíåðèðîâàòü äâå èëè áîëåå
áàíêíîòû ñ îäèíàêîâûìè íîìåðàìè. Ïî óñëîâèÿì ïðîòîêîëà áàíê
ïðèìåò ê îïëàòå òîëüêî îäíó èç òàêèõ áàíêíîò (òó, êîòîðàÿ áóäåò
ïðåäúÿâëåíà ïåðâîé). Îäíàêî ïðèìåì âî âíèìàíèå ðàçìåðû ÷èñåë, èñïîëüçóåìûõ â ïðîòîêîëå. Åñëè íîìåð áàíêíîòû
÷èñëî äëèíîé 512
áèò è ïîêóïàòåëè ãåíåðèðóþò åãî äåéñòâèòåëüíî ñëó÷àéíûì îáðàçîì,
òî âåðîÿòíîñòü ïîëó÷åíèÿ êîãäà ëèáî äâóõ îäèíàêîâûõ íîìåðîâ ïðåíåáðåæèìî ìàëà.
Âòîðàÿ ïðîáëåìà ñîñòîèò â òîì, ÷òî â ðàññìîòðåííîé ñõåìå èñïîëüçóþòñÿ òîëüêî áàíêíîòû îäíîãî ôèêñèðîâàííîãî íîìèíàëà, ÷òî,
êîíå÷íî, íåóäîáíî äëÿ ïîêóïàòåëÿ. Ðåøåíèå ïðîáëåìû èñïîëüçîâàíèÿ
áàíêíîò ðàçíîãî íîìèíàëà âîçìîæíî ñëåäóþùèì îáðàçîì. Áàíê çàâîäèò íåñêîëüêî ïàð (ci , di ), îáëàäàþùèõ ñâîéñòâîì (6.2), è îáúÿâëÿåò,
÷òî d1 ñîîòâåòñòâóåò, íàïðèìåð, 1000 ðóá., d2
500 ðóá. è ò.ä. Êîãäà
ïîêóïàòåëü çàïðàøèâàåò ñëåïóþ ïîäïèñü â áàíêå, îí äîïîëíèòåëüíî
ñîîáùàåò, êàêîãî íîìèíàëà áàíêíîòó îí õî÷åò ïîëó÷èòü. Áàíê ñíèìàåò ñ åãî ñ÷åòà ñóììó, ðàâíóþ óêàçàííîìó íîìèíàëó, è ôîðìèðóåò
ïîäïèñü, èñïîëüçóÿ ñîîòâåòñòâóþùåå ñåêðåòíîå ÷èñëî ci . Êîãäà âïîñëåäñòâèè áàíê ïîëó÷àåò ïîäïèñàííóþ áàíêíîòó, îí èñïîëüçóåò äëÿ
ïðîâåðêè ïîäïèñè ïî î÷åðåäè ÷èñëà d1 , d2 è ò.ä. Åñëè ïîäïèñü îêàçàëàñü âåðíà äëÿ êàêîãî-òî di , òî ïðèíèìàåòñÿ áàíêíîòà i-ãî íîìèíàëà.
 ñëó÷àå, êîãäà ïàðàìåòð n áàíêíîòû ñîäåðæèò ôèêñèðîâàííûé çàãîëîâîê ñ óêàçàíèåì åå íîìèíàëà, çàäà÷à ïðîâåðêè ïîäïèñè îáëåã÷àåòñÿ
áàíê ñðàçó èñïîëüçóåò íóæíûé êëþ÷ di .
Ãëàâà 6. Êðèïòîãðàôè÷åñêèå ïðîòîêîëû
6.3.
135
Âçàèìíàÿ èäåíòèôèêàöèÿ ñ óñòàíîâëåíèåì
êëþ÷à
 äàííîì ðàçäåëå ìû ðàññìîòðèì êðèïòîãðàôè÷åñêè ñòîéêèé ïðîòîêîë, â ðåçóëüòàòå ðåàëèçàöèè êîòîðîãî äâà àáîíåíòà ñåòè A è B
âçàèìíî èäåíòèôèöèðóþò äðóã äðóãà (ò.å. A óáåæäàåòñÿ â òîì, ÷òî
âçàèìîäåéñòâóåò ñ B , à B
â òîì, ÷òî îí âçàèìîäåéñòâóåò ñ A) è
ôîðìèðóþò îáùèé ñåêðåòíûé êëþ÷, êîòîðûé ìîæåò èñïîëüçîâàòüñÿ
â äàëüíåéøåì äëÿ øèôðîâàíèÿ ïåðåäàâàåìûõ èìè ñîîáùåíèé.  ðåàëüíîé æèçíè â êà÷åñòâå A è B ìîãóò âûñòóïàòü ïîëüçîâàòåëü è
êîìïüþòåðíàÿ ñèñòåìà èëè äâå ðàçëè÷íûå êîìïüþòåðíûå ñèñòåìû
ñóòü îïèñûâàåìîãî íèæå ïðîòîêîëà îò ýòîãî íå ìåíÿåòñÿ.
 ïðîöåññå îïèñàíèÿ ìû ðàññìàòðèâàåì ðàçëè÷íûå, âñå áîëåå
èçîùðåííûå òèïû àòàê è ñðåäñòâà çàùèòû îò íèõ. Òàê ìû óæå ðàññìàòðèâàëè ðàíåå (ñì. ðàçä. 2.1 è 2.2) ïîäõîäû ê ðåøåíèþ çàäà÷è
èäåíòèôèêàöèè è óñòàíîâëåíèÿ êëþ÷à. Îäíàêî ìû èñõîäèëè èç òîãî,
÷òî ïðîòèâíèê ìîæåò òîëüêî ïðîñëóøèâàòü èíôîðìàöèþ, ïåðåäàâàåìóþ ïî îòêðûòîìó êàíàëó. Íî â ñîâðåìåííûõ ñåòÿõ ïåðåäà÷è äàííûõ,
íàïðèìåð â Èíòåðíåòå, èíôîðìàöèÿ îò îäíîãî ïîëüçîâàòåëÿ ïåðåäàåòñÿ äðóãîìó ÷åðåç ìíîæåñòâî ïðîìåæóòî÷íûõ óçëîâ (ìàðøðóòèçàòîðû, øëþçû, ïî÷òîâûå ñåðâåðû è ò.ä..), íå êîíòðîëèðóåìûõ ýòèìè
ïîëüçîâàòåëÿìè. Â ðåçóëüòàòå ïðîòèâíèê, îáîñíîâàâøèéñÿ íà îäíîì
òàêîì ïðîìåæóòî÷íîì óçëå, ìîæåò íå òîëüêî ïðîñëóøèâàòü èíôîðìàöèþ, ò.å. èãðàòü ÷èñòî ïàññèâíóþ ðîëü, íî è îñóùåñòâëÿòü àêòèâíûå
âîçäåéñòâèÿ, íàïðèìåð, èçìåíÿòü, äîáàâëÿòü èëè óäàëÿòü ñîîáùåíèÿ.
Ðàçáåðåì, íàïðèìåð, òèïè÷íóþ àòàêó íà ñèñòåìó Äèôôè Õåëëìàíà â ñåòè ñâÿçè ñ àêòèâíûì ïðîòèâíèêîì. Àëèñà âûáèðàåò ñâîå
ñåêðåòíîå ÷èñëî XA è ïîñûëàåò Áîáó g XA . Áîá âûáèðàåò ñâîå ñåêðåòíîå ÷èñëî XB è ïîñûëàåò Àëèñå g XB . Îäíàêî Åâà ïåðåõâàòûâàåò
ýòè ÷èñëà è ïîñûëàåò âìåñòî íèõ è Àëèñå, è Áîáó g XE , ãäå XE
åå
÷èñëî. Âñå ýòè ÷èñëà âûãëÿäÿò êàê ñîâåðøåííî ñëó÷àéíûå, òàê ÷òî íè
Ãëàâà 6. Êðèïòîãðàôè÷åñêèå ïðîòîêîëû
136
Àëèñà, íè Áîá íè÷åãî íå ïîäîçðåâàþò.  ðåçóëüòàòå Àëèñà ôîðìèðóåò
êëþ÷ KA = g XE XA , à Áîá
êëþ÷ KB = g XE XB . Îáà ýòèõ êëþ÷à
ìîãóò áûòü ëåãêî âû÷èñëåíû è Åâîé. Òåïåðü, êîãäà Àëèñà ïîñûëàåò
Áîáó ñîîáùåíèå, çàøèôðîâàííîå ñ êëþ÷îì KA , Åâà ðàñøèôðîâûâàåò
åãî, ñíîâà øèôðóåò ñ êëþ÷îì KB è îòïðàâëÿåò Áîáó. Àíàëîãè÷íî Åâà
äåéñòâóåò è ïðè ïåðåäà÷å ñîîáùåíèé â îáðàòíîì íàïðàâëåíèè. Áîá è
Àëèñà âçàèìîäåéñòâóþò, êàê èì êàæåòñÿ, â çàùèùåííîì ðåæèìå, íî
íà ñàìîì äåëå Åâà ÷èòàåò âñå èõ ñîîáùåíèÿ.
Òàêàÿ àòàêà ñòàíîâèòñÿ íåâîçìîæíîé, åñëè Àëèñà è Áîá íå ïåðåäàþò îòêðûòûå êëþ÷è (â ñèñòåìå Äèôôè Õåëëìàíà ýòî YA = g XA è
YB = g XB ) ïî êàíàëó ñâÿçè, à âûáèðàþò èõ èç íåêîòîðîé òàáëèöû
èëè ñïðàâî÷íèêà, êîòîðûé áûë ïîëó÷åí èìè ðàíåå èç ¾íàäåæíîãî¿
èñòî÷íèêà (êàê ýòî ïðåäïîëàãàëîñü â ðàçä. 2.2).
Âîîáùå, áîëüøèíñòâî êðèïòîñèñòåì ñ îòêðûòûìè êëþ÷àìè òðåáóþò íàëè÷èÿ íåêîòîðîé îðãàíèçàöèîííîé ñòðóêòóðû, çàíèìàþùåéñÿ
ñåðòèôèêàöèåé îòêðûòûõ êëþ÷åé. Òàêàÿ ñòðóêòóðà ìîæåò, íàïðèìåð,
âûãëÿäåòü ñëåäóþùèì îáðàçîì. Â ñåòè, êîòîðîé ïðèíàäëåæàò Àëèñà
è Áîá, èìååòñÿ ¾÷åñòíûé¿ ïîëüçîâàòåëü Òðåíò (àáîíåíò T ), êîòîðûé
çàèíòåðåñîâàí òîëüêî â òîì, ÷òîáû ñåòü ðàáîòàëà íàäåæíî (ñêîðåå
âñåãî ýòî íå ÷åëîâåê, à õîðîøî îõðàíÿåìûé êîìïüþòåð, ðàáîòàþùèé
ïî æåñòêî çàëîæåííîé ïðîãðàììå). Òðåíò ðàñïîëàãàåò êàêîé-ëèáî íàäåæíîé êðèïòîñèñòåìîé (íàïðèìåð, RSA ñ äëèíîé ìîäóëÿ ïîðÿäêà
10000 áèò) ñ ñîîòâåòñòâóþùèìè îòêðûòûìè êëþ÷àìè è âûïîëíÿåò
âñåãî äâå ôóíêöèè:
1) îí äîáàâëÿåò â ñâîþ áàçó äàííûõ èíôîðìàöèþ îá îòêðûòîì
êëþ÷å ïîëüçîâàòåëÿ, ïðèñûëàåìóþ â âèäå ñîîáùåíèÿ, çàøèôðîâàííîãî ñ èñïîëüçîâàíèåì îòêðûòîãî êëþ÷à Òðåíòà;
2) îí ñîîáùàåò èíôîðìàöèþ î ÷üåì-ëèáî îòêðûòîì êëþ÷å, ñíàáæåííóþ ñâîåé ïîäïèñüþ.
Îòêðûòûå êëþ÷è Òðåíòà äîâîäÿòñÿ äî ñâåäåíèÿ âñåõ ïîëüçîâàòåëåé
Ãëàâà 6. Êðèïòîãðàôè÷åñêèå ïðîòîêîëû
137
êàêèì-ëèáî ñïîñîáîì, èñêëþ÷àþùèì âìåøàòåëüñòâî Åâû. Íàïðèìåð,
îíè ïóáëèêóþòñÿ â âèäå ðåêëàìíîãî ñîîáùåíèÿ â ãàçåòå. Òåïåðü Àëèñà, âû÷èñëèâ ñâîé îòêðûòûé êëþ÷, ôîðìèðóåò ñîîáùåíèå èç ñâîåãî
èìåíè è ýòîãî êëþ÷à, øèôðóåò åãî ñ èñïîëüçîâàíèåì îòêðûòîãî êëþ÷à Òðåíòà è ïîñûëàåò Òðåíòó (íèêòî êðîìå Òðåíòà íå ìîæåò ðàñøèôðîâàòü ýòî ñîîáùåíèå). Áîá, êîãäà åìó íóæåí îòêðûòûé êëþ÷ Àëèñû,
ïîñûëàåò çàïðîñ Òðåíòó, è Òðåíò ïðèñûëàåò åìó ïîäïèñàííûé êëþ÷
Àëèñû (íèêòî íå ìîæåò ïîääåëàòü ïîäïèñü Òðåíòà). Áîá ïðîâåðÿåò
ïîäïèñü Òðåíòà, èñïîëüçóÿ åãî îòêðûòûé êëþ÷, è ïðèíèìàåò êëþ÷
Àëèñû êàê äîñòîâåðíûé. Òàêèì îáðàçîì, êàæäûé ïîëüçîâàòåëü ñåòè ïîëó÷àåò äîñòîâåðíóþ èíôîðìàöèþ îá îòêðûòûõ êëþ÷àõ äðóãèõ
ïîëüçîâàòåëåé, è Åâà íèêàê íå ìîæåò âìåøàòüñÿ â ýòîò ïðîöåññ.
Èòàê, åñëè Àëèñà è Áîá ïîëüçóþòñÿ äîñòîâåðíûìè îòêðûòûìè êëþ÷àìè, òî ñõåìà Äèôôè Õåëëìàíà ðåøàåò çàäà÷ó óñòàíîâëåíèÿ ñåêðåòíîãî êëþ÷à. Îäíàêî îíà íåïîñðåäñòâåííî íå îáåñïå÷èâàåò
èäåíòèôèêàöèþ ïîëüçîâàòåëåé. Äåéñòâèòåëüíî, åñëè âìåñòî Àëèñû
âûñòóïàëà Åâà, êîòîðàÿ íå çíàåò ñåêðåòíîãî êëþ÷à Àëèñû, òî ó íèõ
ñ Áîáîì áóäóò ñôîðìèðîâàíû ðàçëè÷íûå ñåêðåòíûå êëþ÷è, íî ýòî
ìîæåò âûÿñíèòüñÿ òîëüêî ïîçäíåå, íà ñòàäèè îáìåíà äàííûìè, êîãäà
Áîá, íàïðèìåð, íå ñìîæåò ðàñøèôðîâàòü ïåðåäàííîå åìó ñîîáùåíèå
èëè îáíàðóæèò, ÷òî ¾Àëèñà¿ íå ïîíèìàåò òîãî, ÷òî îí ïîñûëàåò åé.
×àñòî òðåáóåòñÿ îáåñïå÷èòü ÿâíóþ èäåíòèôèêàöèþ, ÷òîáû ïî çàâåðøåíèè ïðîòîêîëà ñòîðîíû òî÷íî çíàëè, êòî åñòü êòî.
Ó ñõåìû Äèôôè Õåëëìàíà åñòü è äðóãîé íåäîñòàòîê: ñåêðåòíûé
êëþ÷, êîòîðûé ôîðìèðóþò Àëèñà è Áîá, áóäåò âñåãäà îäèí è òîò æå,
ïîêà îíè íå ïîìåíÿþò îòêðûòûå êëþ÷è. Íî ñìåíà îòêðûòûõ êëþ÷åé
ýòî îòíîñèòåëüíî äîëãèé ïðîöåññ (íàïðèìåð, îáû÷íî òðåáóåòñÿ
îïîâåñòèòü âñåõ ïîëüçîâàòåëåé ñåòè îá èçìåíåíèè êàêîãî-òî îòêðûòîãî êëþ÷à, ÷òîáû îíè ìîãëè ñêîððåêòèðîâàòü èíôîðìàöèþ â ñâîèõ
ñïðàâî÷íèêàõ). Õîòåëîñü áû èìåòü ïðîòîêîë, îáåñïå÷èâàþùèé îïåðàòèâíîå ñîçäàíèå êàæäûé ðàç ðàçëè÷íûõ, ñëó÷àéíî âûáèðàåìûõ ñåêðåòíûõ êëþ÷åé.
Ãëàâà 6. Êðèïòîãðàôè÷åñêèå ïðîòîêîëû
138
Ðåøåíèå ñîñòîèò â èñïîëüçîâàíèè êàêîãî-ëèáî øèôðà ñ îòêðûòûì êëþ÷îì äëÿ ïåðåäà÷è ñåêðåòíûõ êëþ÷åé. Îáîçíà÷èì øèôð ñîîáùåíèÿ x, ïîñòðîåííûé ñ èñïîëüçîâàíèåì îòêðûòîãî êëþ÷à ïîëüçîâàòåëÿ A, ÷åðåç PA (x). (Íàïðèìåð, PA (x) ìîæåò áûòü øèôðîì RSA
èëè øèôðîì Ýëü-Ãàìàëÿ.  ñëó÷àå RSA PA (x) = xdA mod NA , ãäå
ïàðà ÷èñåë dA è NA ïðåäñòàâëÿåò ñîáîé îòêðûòûé êëþ÷ ïîëüçîâàòåëÿ A.) Âñå, êòî çíàåò îòêðûòûé êëþ÷ A, ìîãóò âû÷èñëèòü PA (x)
äëÿ ñîîáùåíèÿ x.  òî æå âðåìÿ òîëüêî A, çíàþùèé ñîîòâåòñòâóþùèé ñåêðåòíûé êëþ÷, ìîæåò ïîëó÷èòü x èç y = PA (x). Àíàëîãè÷íî
(PB (x)) áóäåì îáîçíà÷àòü øèôð, ïîñòðîåííûé ñ ïîìîùüþ îòêðûòîãî
êëþ÷à ïîëüçîâàòåëÿ B . Ñèìâîëîì k, êàê è ðàíåå, áóäåì îáîçíà÷àòü
êîíêàòåíàöèþ ÷èñåë. Ìû îïèøåì ïðîòîêîë ïîýòàïíî, ÷òîáû íå ¾óòîïèòü¿ ÷èòàòåëÿ â äåòàëÿõ.
Íàïîìíèì, ÷òî ìû ðåøàåì ñëåäóþùóþ çàäà÷ó: Àëèñà è Áîá õîòÿò âçàèìíî èäåíòèôèöèðîâàòü äðóã-äðóãà è óñòàíîâèòü îáùèé ñåêðåòíûé êëþ÷. Ðàññìîòðèì âíà÷àëå ñëåäóþùèé (ïëîõîé) ïðîòîêîë, ñîñòîÿùèé èç òðåõ øàãîâ, ÷òîáû îáñóäèòü íåñêîëüêî âàæíûõ âîïðîñîâ.
Øàã 1. Àëèñà ïðèäóìûâàåò ñåêðåòíûé êëþ÷ k1 , øèôðóåò åãî, èñïîëüçóÿ îòêðûòûé êëþ÷ Áîáà, è ïîñûëàåò Áîáó:
A −→ B :
PB (k1 ).
(6.8)
Øàã 2. Áîá ðàñøèôðîâûâàåò k1 , ñíîâà øèôðóåò åãî, èñïîëüçóÿ îòêðûòûé êëþ÷ Àëèñû, è ïîñûëàåò Àëèñå:
A ←− B :
PA (k1 ).
(6.9)
Øàã 3. Àëèñà ðàñøèôðîâûâàåò k1 è ñðàâíèâàåò åãî ñ òåì, êîòîðûé
îíà ïðèäóìàëà íà øàãå 1.
×òî ìû èìååì â ðåçóëüòàòå ðåàëèçàöèè ýòîãî ïðîòîêîëà? Âîïåðâûõ, Àëèñà è Áîá ïîëó÷èëè îáùèé ñåêðåòíûé êëþ÷ k1 , íåèçâåñòíûé Åâå (Åâà íå ìîæåò ðàñøèôðîâàòü íè PB (k1 ), íè PA (k1 )). Âîâòîðûõ, Àëèñà ïîëó÷èëà êðèïòîãðàôè÷åñêè ñòîéêóþ èäåíòèôèêàöèþ
Ãëàâà 6. Êðèïòîãðàôè÷åñêèå ïðîòîêîëû
139
Áîáà, òàê êàê íèêòî êðîìå íåãî íå ñìîã áû ðàñøèôðîâàòü k1 . Î÷åâèäíî, ÷òî â äàííîì ïðîòîêîëå Áîá íå ïîëó÷àåò íèêàêîé èäåíòèôèêàöèè
Àëèñû (ñîîáùåíèå (6.8) ìîã ïîñëàòü êòî óãîäíî). Îí ìîã áû ïðîâåñòè
ñèììåòðè÷íûé ïðîòîêîë ñî ñâîåé ñòîðîíû:
A ←− B :
A −→ B :
PA (k2 ),
PB (k2 )
(6.10)
(6.11)
è ïîëó÷èòü òàêóþ èäåíòèôèêàöèþ. Ïðîáëåìà, îäíàêî, çäåñü ñîñòîèò
â ëîãè÷åñêîé íåçàâèñèìîñòè äâóõ ïðîòîêîëîâ, â ðåçóëüòàòå ÷åãî íåò
ãàðàíòèè, ÷òî îáà ïðîòîêîëà ïðîâîäÿòñÿ îäíèìè è òåìè æå ó÷àñòíèêàìè.
Íî åñòü è áîëåå òîíêàÿ ïðîáëåìà. Àëèñà ìîæåò èñïîëüçîâàòü îïèñàííûé ïðîòîêîë äëÿ âñêðûòèÿ êðèïòîñèñòåìû Áîáà! Äåëàåòñÿ ýòî
òàê. Äîïóñòèì, Àëèñà ïåðåõâàòèëà êàêîå-òî ñîîáùåíèå y , ïðåäíàçíà÷åííîå äëÿ Áîáà, ò. å. y = PB (x). Îíà ïðèòâîðÿåòñÿ, ÷òî õî÷åò âîéòè â
ñèñòåìó Áîáà, è çàïóñêàåò ïðîòîêîë (6.8), (6.9). Îäíàêî âìåñòî PB (k1 )
îíà ïåðåäàåò Áîáó ñîîáùåíèå y . Òàê êàê k1
ïðîèçâîëüíî âûáðàííîå ÷èñëî, òî Áîá íå ìîæåò íè÷åãî çàïîäîçðèòü. Îí ÷åñòíî âûïîëíÿåò
ñâîé øàã â ïðîòîêîëå è ðàñøèôðîâûâàåò äëÿ Àëèñû x!
Óðîê, êîòîðûé ñëåäóåò îòñþäà èçâëå÷ü, ñëåäóþùèé: íèêîãäà íè
äëÿ êîãî íå ñëåäóåò ðàñøèôðîâûâàòü ñëó÷àéíûå ÷èñëà. Ýòî ìîæåò
ïîâðåäèòü âàøåé áåçîïàñíîñòè. Ñðåäñòâî áîðüáû ñ òàêîé ¾îïàñíîé¿
ñëó÷àéíîñòüþ âíåñåíèå èçáûòî÷íîñòè â ñîîáùåíèÿ, íàïðèìåð, ââåäåíèå êàêîãî-ëèáî ýëåìåíòà, èçâåñòíîãî ïîëó÷àòåëþ è îæèäàåìîãî
èì.  ÷àñòíîñòè, â (6.8) Àëèñà ìîãëà áû ïîñëàòü ñâîå èìÿ. Îíà ìîãëà áû ïîñòðîèòü ñîîáùåíèå, îòâåäÿ 512 áèò ïîä ñëó÷àéíîå ÷èñëî k1
è 512 áèò ïîä ñâîå èìÿ, àäðåñ, ôðàãìåíò îòêðûòîãî êëþ÷à è äðóãóþ
ëåãêî ïðîâåðÿåìóþ èíôîðìàöèþ (áóäåì îáîçíà÷àòü âñå ýòî âìåñòå
÷åðåç Â), è ïîñëàòü Áîáó PB (k1 kÂ).  ýòîì ñëó÷àå Áîá íå ñòàë áû
ïîñûëàòü Àëèñå ñîîáùåíèå x, òàê êàê åãî ñîîòâåòñòâóþùèå 512 áèò
íàâåðíÿêà íå ñîäåðæàëè áû Â.
Ãëàâà 6. Êðèïòîãðàôè÷åñêèå ïðîòîêîëû
140
Âñå âûøåèçëîæåííîå ïðèâîäèò íàñ ê ñëåäóþùåìó ïðîòîêîëó Íèäõàìà Øðåäåðà (Needham, Schroeder, ñì., íàïðèìåð, [23]), êîòîðûé ïîëíîñòüþ ðåøàåò ïîñòàëåííóþ â íà÷àëå ðàçäåëà çàäà÷ó.
Øàã 1. Àëèñà âûáèðàåò ñëó÷àéíîå ÷èñëî k1 , îáúåäèíÿåò åãî ñî ñâîåé
îòêðûòîé èíôîðìàöèåé Â è ïîñûëàåò Áîáó
A −→ B :
PB (k1 kÂ).
(6.12)
Øàã 2. Áîá ðàñøèôðîâûâàåò (6.12) è óáåæäàåòñÿ â òîì, ÷òî ïîëó÷åííîå ñîîáùåíèå ñîäåðæèò îòêðûòóþ èíôîðìàöèþ Àëèñû Â.
Çàòåì îí âûáèðàåò ñëó÷àéíîå ÷èñëî k2 , îáúåäèíÿåò åãî ñ k1 è
ïîñûëàåò Àëèñå
A ←− B :
PA (k1 kk2 ).
(6.13)
Øàã 3. Àëèñà ðàñøèôðîâûâàåò (6.13) è óáåæäàåòñÿ â òîì, ÷òî ïîëó÷åííîå ñîîáùåíèå ñîäåðæèò k1 . Ýòî ÿâëÿåòñÿ äëÿ íåå íàäåæíûì ïðèçíàêîì èäåíòèôèêàöèè Áîáà, òàê êàê íèêòî äðóãîé íå
ìîã áû èçâëå÷ü k1 èç (6.12). Àëèñà ïîñûëàåò Áîáó
A −→ B :
PB (k2 ).
(6.14)
Øàã 4. Áîá ðàñøèôðîâûâàåò (6.14) è óáåæäàåòñÿ â òîì, ÷òî îí ïîëó÷èë k2 . Ýòî ÿâëÿåòñÿ äëÿ íåãî íàäåæíûì ïðèçíàêîì èäåíòèôèêàöèè Àëèñû, òàê êàê íèêòî äðóãîé íå ìîã áû èçâëå÷ü k2 èç
(6.13).
Òåïåðü Àëèñà è Áîá ìîãóò ñôîðìèðîâàòü èç k1 , k2 îáùèé êëþ÷,
íàïðèìåð, k = k1 ⊕ k2 , ãäå ⊕
ïîáèòîâàÿ ñóììà ïî ìîäóëþ 2, èëè
èñïîëüçîâàòü k1 è k2 ïî-îòäåëüíîñòè äëÿ øèôðîâàíèÿ âõîäÿùèõ è
èñõîäÿùèõ ñîîáùåíèé.
Ãëàâà 6. Êðèïòîãðàôè÷åñêèå ïðîòîêîëû
141
Ï ð è ì å ð 6.4. Ïóñòü â íåêîòîðîé ñåòè èñïîëüçóåòñÿ øèôð ÝëüÃàìàëÿ ñ îòêðûòûìè ïàðàìåòðàìè p = 107, g = 2. Ïîëüçîâàòåëè
A è B èìåþò îòêðûòûå êëþ÷è dA = 58, dB = 28, êîòîðûì ñîîòâåòñòâóþò ñåêðåòíûå cA = 33, cB = 45. Ðàññìîòðèì ðåàëèçàöèþ
ïðîòîêîëà Íèäõàìà Øðåäåðà äëÿ âçàèìíîé èäåíòèôèêàöèè ïîëüçîâàòåëåé A è B è óñòàíîâëåíèÿ îáùåãî ñåêðåòíîãî êëþ÷à. Ó÷èòûâàÿ
íåáîëüøóþ âåëè÷èíó ìîäóëÿ p â íàøåì ïðèìåðå, áóäåì èñïîëüçîâàòü
â êà÷åñòâå èäåíòèôèêàòîðîâ ïîëüçîâàòåëåé îäíó öèôðó â äåñÿòè÷íîé
çàïèñè, ïóñòü  = 1, B̂ = 2, è ñåêðåòíûé êëþ÷ áóäåì ïîëó÷àòü òàêæå
â âèäå îäíîé äåñÿòè÷íîé öèôðû.
Íà ïåðâîì øàãå ïðîòîêîëà A âûáèðàåò ñåêðåòíûé êëþ÷, ïóñòü
k1 = 3, è ôîðìèðóåò ñîîáùåíèå m = k1 k = 31. Ýòî ñîîáùåíèå
øèôðóåòñÿ øèôðîì Ýëü-Ãàìàëÿ íà îòêðûòîì êëþ÷å ïîëüçîâàòåëÿ B :
k = 15, r = g k mod p = 215 mod 107 = 26,
e = m · dB k mod p = 31 · 2815 mod 107 = 47.
Ïàðà ÷èñåë (26, 47) è åñòü òîò øèôðîòåêñò, êîòîðûé íåîáõîäèìî ïîñëàòü B .  èñïîëüçîâàííûõ ïðè îïèñàíèè ïðîòîêîëà îáîçíà÷åíèÿõ
PB (k1 kÂ) = (26, 47) è
A −→ B :
(26, 47).
Íà âòîðîì øàãå ïðîòîêîëà B ðàñøèôðîâûâàåò (26, 47), èñïîëüçóÿ ñâîé ñåêðåòíûé êëþ÷:
m0 = e · rp−1−cB mod p = 47 · 26106−45 mod 107 = 31.
B óáåæäàåòñÿ, ÷òî ìëàäøàÿ öèôðà ñîäåðæèò èäåíòèôèêàöèîííûé
íîìåð ïîëüçîâàòåëÿ A è èçâëåêàåò k1 = 3. Çàòåì îí âûáèðàåò ñâîå
ñåêðåòíîå ÷èñëî, ïóñòü k2 = 7, ôîðìèðóåò ñîîáùåíèå m = k1 kk2 =
37 è øèôðóåò åãî íà îòêðûòîì êëþ÷å A:
k = 77, r = g k mod p = 277 mod 107 = 63,
e = m · dA k mod p = 37 · 5877 mod 107 = 18.
Ãëàâà 6. Êðèïòîãðàôè÷åñêèå ïðîòîêîëû
Ïàðà ÷èñåë (63, 18)
(63, 18) è
142
ýòî òî, ÷òî íóæíî ïîñëàòü A. Ò.å. PA (k1 kk2 ) =
A ←− B :
(63, 18).
Íà òðåòüåì øàãå A ðàñøèôðîâûâàåò (63, 18):
m0 = e · rp−1−cA mod p = 18 · 63106−33 mod 107 = 37.
A óáåæäàåòñÿ â òîì, ÷òî ñòàðøàÿ öèôðà ñîäåðæèò k1 = 3 è èçâëåêàåò
k2 = 7. Òåïåðü A øèôðóåò k2 äëÿ B :
k = 41,
r = g k mod p = 241 mod 107 = 82,
e = m · dB k mod p = 7 · 2841 mod 107 = 49,
è ïîñûëàåò B
A −→ B :
(82, 49).
Íà ÷åòâåðòîì øàãå B ðàñøèôðîâûâàåò (82, 49):
m0 = e · rp−1−cB mod p = 49 · 82106−45 mod 107 = 7.
B óáåæäàåòñÿ â òîì, ÷òî îí ïîëó÷èë ñâîå ÷èñëî k2 = 7.
Òåïåðü A è B ìîãóò ñôîðìèðîâàòü îáùèé êëþ÷ ïî çàðàíåå îãîâîðåííîé ñõåìå, íàïðèìåð,
k = k1 ⊕ k2 = 3 ⊕ 7 = (011)2 ⊕ (111)2 = (100)2 = 4.
t
u
Çàäà÷è è óïðàæíåíèÿ
143
Çàäà÷è è óïðàæíåíèÿ
6.1. Â ñèñòåìå ýëåêòðîííûõ äåíåã âûáðàíû ñåêðåòíûå ïàðàìåòðû
áàíêà P = 17, Q = 7, c = 77, à ñîîòâåòñòâóþùèå èì îòêðûòûå ïàðàìåòðû N = 119, d = 5. Ñôîðìèðîâàòü ýëåêòðîííûå
áàíêíîòû ñî ñëåäóþùèìè íîìåðàìè:
à. n = 11 ïðè r = 5,
á. n = 99 ïðè r = 6,
â. n = 55 ïðè r = 10,
ã. n = 44 ïðè r = 15,
ä. n = 77 ïðè r = 30.
Ñì. îòâåò.
ÎÒÂÅÒÛ Ê ÇÀÄÀ×ÀÌ È ÓÏÐÀÆÍÅÍÈßÌ
1.1. à. k = 17. á. k = 27.
1.2. à. ÏÐÈÂÅÒ (k = 5). á. ÂÅÑÍÀ (k = 20).
Îòâåòû ê çàäà÷àì è óïðàæíåíèÿì
145
2.1. à. 5 = 5, 16 = 6, 27 = 7, −4 = 6, −13 = −3 = 7, 3 + 8 = 1,
3 − 8 = 5, 3 · 8 = 4, 3 · 8 · 5 = 4 · 5 = 0 (mod 10). á. 5 = 5, 16 = 5,
27 = 5, −4 = 7, −13 = −2 = 9, 3 + 8 = 0, 3 − 8 = 6, 3 · 8 = 2,
3 · 8 · 5 = 2 · 5 = 10 (mod 11).
2.2. 28 mod 10 = 6, 37 mod 10 = 7, 719 mod 100 = 43, 757 mod
100 = 7.
2.3. 108 = 2 · 2 · 3 · 3 · 3, 77 = 7 · 11, 65 = 5 · 13, 30 = 3 · 3 · 5,
159 = 3 · 53.
2.4. ïàðû (25, 12) è (40, 27) âçàèìíî ïðîñòû, äðóãèå
(25, 15) äåëÿòñÿ íà 5, (13, 39) äåëÿòñÿ íà 13).
íåò (÷èñëà
2.5. ϕ(14) = 6, ϕ(20) = 8.
2.6. ϕ(53) = 52, ϕ(21) = ϕ(7) · ϕ(3) = 6 · 2 = 12, ϕ(159) = 2 · 52 =
104.
2.7. 313 mod 13 = 3 · 312 mod 13 = 3, 522 mod 11 = 52 · 510 · 510 mod
11 = 25 mod 11 = 3, 317 mod 5 = 3.
2.8. 39 mod 20 = 3·38 mod 20 = 3, 214 mod 21 = 22 ·212 mod 21 = 4,
2107 mod 159 = 23 · 2104 mod 159 = 8.
2.9. gcd(21, 12) = 3, gcd(30, 12) = 6, gcd(24, 40) = gcd(40, 24) = 8,
gcd(33, 16) = 1.
2.10. à. x = −1, y = 2. á. x = 1, y = −2. â. x = 2, y = −1. ã.
x = 1, y = −2.
2.11. 3−1 mod 7 =
10−1 mod 53 = 16.
5, 5−1 mod 8
=
5, 3−1 mod 53
=
18,
2.12. Ïðîñòûå ÷èñëà, ìåíüøèå 100: 2, 3, 5, 7, 11, 13, 17, 19, 23, 29,
31, 37, 41, 43, 47, 53, 59, 61, 67, 73, 79, 83, 89, 97. Èç íèõ ÷èñëà 5, 7,
11, 23, 47, 59 è 83 ñîîòâåòñòâóþò âèäó p = 2q + 1.
Îòâåòû ê çàäà÷àì è óïðàæíåíèÿì
146
2.13. Ïðè p = 11 â êà÷åñòâå ïàðàìåòðà g ìîãóò áûòü âûáðàíû ÷èñëà
2, 6, 7 è 8.
2.14. à. YA = 20, YB = 17, ZAB = 21. á. YA = 13, YB = 14,
ZAB = 10. â. YA = 21, YB = 9, ZAB = 16. ã. YA = 8, YB = 5,
ZAB = 9. ä. YA = 6, YB = 17, ZAB = 16.
2.15. à. dA = 11, dB = 13, x1 = 17, x2 = 5, x3 = 6, x4 = 4.
á. dA = 3, dB = 19, x1 = 8, x2 = 12, x3 = 3, x4 = 6. â. dA = 5,
dB = 11, x1 = 14, x2 = 10, x3 = 3, x4 = 10. ã. dA = 5, dB = 15,
x1 = 7, x2 = 21, x3 = 14, x4 = 17. ä. dA = 11, dB = 5, x1 = 15,
x2 = 2, x3 = 8, x4 = 9.
2.16. à. dB = 13, r = 14, e = 12, m0 = 5. á. dB = 16, r = 9,
e = 15, m0 = 10. â. dB = 15, r = 16, e = 14, m0 = 10. ã. dB = 21,
r = 14, e = 12, m0 = 5. ä. dB = 8, r = 5, e = 5, m0 = 10.
2.17. à. NA = 55, ϕ(NA ) = 40, cA = 27, e = 23, m0 = 12.
á. NA = 65, ϕ(NA ) = 48, cA = 29, e = 50, m0 = 20. â. NA = 77,
ϕ(NA ) = 60, cA = 43, e = 52, m0 = 17. ã. NA = 91, ϕ(NA ) = 72,
cA = 29, e = 88, m0 = 30. ä. NA = 33, ϕ(NA ) = 20, cA = 7, e = 9,
m0 = 15.
2.18. m = 111.
3.1. à. ē = 1111001110. á. ē = 1111110101. â. ē = 0001000110. ã.
ē = 0101011011. ä. ē = 0001010001.
3.2. à. P1 ≈ 0.002, P2 ≈ 0.006, P3 ≈ 0.623, P4 ≈ 0.051, P5 ≈ 0.311,
P6 ≈ 0.007. á. P1 ≈ 0.000, P2 ≈ 0.009, P3 ≈ 0.000, P4 ≈ 0.000,
P5 ≈ 0.892, P6 ≈ 0.099. â. P1 ≈ 0.000, P2 ≈ 0.697, P3 ≈ 0.000,
P4 ≈ 0.004, P5 ≈ 0.299, P6 ≈ 0.000. ã. P1 ≈ 0.003, P2 ≈ 0.000,
P3 ≈ 0.036, P4 ≈ 0.000, P5 ≈ 0.801, P6 ≈ 0.160. ä. P1 ≈ 0.196,
P2 ≈ 0.000, P3 ≈ 0.001, P4 ≈ 0.000, P5 ≈ 0.018, P6 ≈ 0.785.
3.3. à. H ≈ 1.16, n ≈ 6.04. á. H ≈ 0.52, n ≈ 2.42. â. H ≈ 0.9,
n ≈ 3.76. ã. H ≈ 1.08, n ≈ 5.08. ä. H ≈ 1.16, n ≈ 6.04.
Îòâåòû ê çàäà÷àì è óïðàæíåíèÿì
147
3.4. à. P1 ≈ 0.7 ( m̄ = bcacbcacc), P2 = 0, P3 ≈ 0.3 ( m̄ = acbcacbcc),
P4 = 0, P5 = 0, P6 = 0. á. P1 = 0, P2 = 0, P3 = 0, P4 ≈ 0.21 ( m̄ =
bcccaccac), P5 ≈ 0.20 ( m̄ = abbbcbbcb), P6 ≈ 0.59 ( m̄ = acccbccbc).
â. P1 = 0, P2 = 0, P3 = 0, P4 = 1 ( m̄ = ccbcabccb), P5 = 0,
P6 = 0. ã. P1 = 0, P2 = 0, P3 ≈ 0.000 ( m̄ = acbbbbcbb), P4 ≈ 1.000
( m̄ = abccccbcc), P5 = 0, P6 = 0. ä. P1 = 0, P2 = 0, P3 ≈ 0.009
( m̄ = bbbcbbbcb), P4 ≈ 0.970 ( m̄ = cccbcccbc), P5 = 0, P6 ≈ 0.021
( m̄ = cccacccac).
Îòâåòû ê çàäà÷àì è óïðàæíåíèÿì
148
5.1. à. s = 28. á. s = 30. â. s = 26. ã. s = 71. ä. s = 18.
5.2. à. h7, 28i ïîäëèííî, h22, 15i íåò, h16, 36i ïîäëèííî. á. h6, 42i
íåò, h10, 30i äà, h6, 41i äà. â. h13, 41i äà, h11, 28i íåò, h5, 26i äà.
ã. h15, 71i äà, h11, 46i íåò, h16, 74i äà. ä. h10, 14i íåò, h24, 18i äà,
h17, 8i äà.
5.3. à. y = 14, r = 3, s = 8. á. y = 24, r = 3, s = 5. â. y = 40,
r = 9, s = 2. ã. y = 22, r = 9, s = 5. ä. y = 64, r = 7, s = 10.
5.4. à. h10; 4, 5i íåò (h−1 = 10, u1 = 6, u2 = 4, au1 = 62, y u2 = 25,
v = 9 6= 4), h10; 7, 5i äà (h−1 = 10, u1 = 6, u2 = 7, au1 = 62,
y u2 = 59, v = 7), h10; 3, 8i äà (h−1 = 10, u1 = 3, u2 = 3, au1 = 14,
y u2 = 64, v = 3). á. h1; 3, 5i äà (h−1 = 1, u1 = 5, u2 = 8, au1 = 40,
y u2 = 64, v = 3), h1; 4, 3i äà (h−1 = 1, u1 = 3, u2 = 7, au1 = 14,
y u2 = 25, v = 4), h1; 4, 5i íåò (h−1 = 1, u1 = 5, u2 = 7, au1 = 40,
y u2 = 25, v = 7 6= 4). â. h7; 7, 4i äà (h−1 = 8, u1 = 10, u2 = 10,
au1 = 59, y u2 = 62, v = 7), h7; 9, 2i íåò (h−1 = 8, u1 = 5, u2 = 5,
au1 = 40, y u2 = 14, v = 2 6= 9), h5; 9, 2i äà (h−1 = 9, u1 = 7, u2 = 7,
au1 = 9, y u2 = 22, v = 9). ã. h6; 9, 5i äà (h−1 = 2, u1 = 10, u2 = 4,
au1 = 59, y u2 = 24, v = 9), h8; 8, 3i íåò (h−1 = 7, u1 = 10, u2 = 10,
au1 = 59, y u2 = 64, v = 2 6= 8), h7; 4, 1i äà (h−1 = 8, u1 = 8, u2 = 1,
au1 = 24, y u2 = 22, v = 4). ä. h10; 7, 3i äà (h−1 = 10, u1 = 8,
u2 = 7, au1 = 24, y u2 = 24, v = 7), h7; 7, 10i äà (h−1 = 8, u1 = 3,
u2 = 10, au1 = 14, y u2 = 22, v = 7), h8; 7, 5i íåò (h−1 = 7, u1 = 2,
u2 = 6, au1 = 22, y u2 = 59, v = 3 6= 7).
Îòâåòû ê çàäà÷àì è óïðàæíåíèÿì
149
6.1. à. n̂ = 103, ŝ = 52, r−1 = 24, áàíêíîòà h11, 58i. á. n̂ = 13,
ŝ = 13, r−1 = 20, áàíêíîòà h99, 22i. â. n̂ = 58, ŝ = 74, r−1 = 12,
áàíêíîòà h55, 55i. ã. n̂ = 37, ŝ = 46, r−1 = 8, áàíêíîòà h44, 11i. ä.
n̂ = 49, ŝ = 70, r−1 = 4, áàíêíîòà h77, 42i.
ÑÏÈÑÎÊ ËÈÒÅÐÀÒÓÐÛ
1. Àõî À., Õîïêðîôò Äæ., Óëüìàí Äæ. Ïîñòðîåíèå è àíàëèç âû÷èñëèòåëüíûõ àëãîðèòìîâ. Ì.: Ìèð, 1979. 383 c.
2. Ââåäåíèå â êðèïòîãðàôèþ / Ïîä îáù. ðåä. Â. Â. ßùåíêî.
ÌÖÍÌÎ: ¾×åÐî¿, 2000. 287 c.
3. Âèíîãðàäîâ È. Ì. Îñíîâû òåîðèè ÷èñåë.
402 c.
Ì.:
Ì.: Íàóêà, 1972.
4. Ãàëëàãåð Ð. Òåîðèÿ èíôîðìàöèè è íàäåæíàÿ ñâÿçü.
ñêîå ðàäèî, 1974. 425 c.
Ì.: Ñîâåò-
5. ÃÎÑÒ 28147-89. Ñèñòåìû îáðàáîòêè èíôîðìàöèè. Çàùèòà êðèïòîãðàôè÷åñêàÿ. Àëãîðèòì êðèïòîãðàôè÷åñêîãî ïðåîáðàçîâàíèÿ
äàííûõ.
6. ÃÎÑÒ Ð34.10-94. Èíôîðìàöèîííàÿ òåõíîëîãèÿ. Êðèïòîãðàôè÷åñêàÿ çàùèòà èíôîðìàöèè. Ïðîöåäóðû âûðàáîòêè è ïðîâåðêè
ýëåêòðîííîé öèôðîâîé ïîäïèñè íà áàçå àñèììåòðè÷íîãî êðèïòîãðàôè÷åñêîãî àëãîðèòìà.
7. ÃÎÑÒ Ð34.11-94. Èíôîðìàöèîííàÿ òåõíîëîãèÿ. Êðèïòîãðàôè÷åñêàÿ çàùèòà èíôîðìàöèè. Ôóíêöèÿ õýøèðîâàíèÿ.
8. ÃÎÑÒ Ð34.10-2001. Ïðîöåññû ôîðìèðîâàíèÿ è ïðîâåðêè ýëåêòðîííîé öèôðîâîé ïîäïèñè.
9. Êíóò Ä. Èñêóññòâî ïðîãðàììèðîâàíèÿ äëÿ ÝÂÌ. Â 3-õ òîìàõ. Ò.
2. Ïîëó÷èñëåííûå àëãîðèòìû. Ì.: Ìèð, 1977. 724 ñ.
Ñïèñîê ëèòåðàòóðû
151
10. Ðÿáêî Á. ß. Ïðîñòî ðåàëèçóåìàÿ èäåàëüíàÿ êðèïòîãðàôè÷åñêàÿ ñèñòåìà // Ïðîáëåìû ïåðåäà÷è èíôîðìàöèè.
2000.
Ò. 36, • 1. Ñ. 90 104.
11. Ðÿáêî Á. ß. Áûñòðàÿ íóìåðàöèÿ êîìáèíàòîðíûõ îáúåêòîâ // Äèñêðåòíàÿ ìàòåìàòèêà. 1998. Ò. 10, • 2. Ñ. 101 119.
12. Ðÿáêî Á. ß., Ôèîíîâ À. Í. Êðèïòîãðàôè÷åñêèå ìåòîäû çàùèòû
èíôîðìàöèè: Ó÷åáíîå ïîñîáèå äëÿ âóçîâ. Ì.: Ãîðÿ÷àÿ ëèíèÿ
Òåëåêîì, 2005. 229 ñ.
13. Ðÿáêî Á. ß., Ôèîíîâ À. Í. Áûñòðûé ìåòîä ïîëíîé ðàíäîìèçàöèè
ñîîáùåíèé // Ïðîáëåìû ïåðåäà÷è èíôîðìàöèè. 1997. Ò. 33, •
3. C. 3 14.
14. Ðÿáêî Á. ß., Ôèîíîâ À. Í. Ýôôåêòèâíûé ìåòîä àäàïòèâíîãî
àðèôìåòè÷åñêîãî êîäèðîâàíèÿ äëÿ èñòî÷íèêîâ ñ áîëüøèìè àëôàâèòàìè // Ïðîáëåìû ïåðåäà÷è èíôîðìàöèè. 1999. Ò. 35, • 4.
C. 1 14.
15. Ôåëëåð Â. Ââåäåíèå â òåîðèþ âåðîÿòíîñòåé è åå ïðèëîæåíèÿ. Â
2-õ òîìàõ. Ì.: Ìèð, 1984. Ò 1. 527 ñ.
16. Ôèîíîâ À. Í. Ýôôåêòèâíûé ìåòîä ðàíäîìèçàöèè ñîîáùåíèé íà
îñíîâå àðèôìåòè÷åñêîãî êîäèðîâàíèÿ // Äèñêðåòíûé àíàëèç è èññëåäîâàíèå îïåðàöèé. 1997. Ò. 4, • 2. Ñ. 51 74.
17. Øåííîí Ê. Ðàáîòû ïî òåîðèè èíôîðìàöèè è êèáåðíåòèêå. Ì.:
ÈË, 1963. Ñ. 333 369 (Òåîðèÿ ñâÿçè â ñåêðåòíûõ ñèñòåìàõ).
18. Dif e W., Hellman M. E. New directions in cryptography //
IEEE Transactions on Information Theory.
1976.
V. 22.
P. 644 654.
Ñïèñîê ëèòåðàòóðû
152
19. FIPS 180-2. Secure hash standard.
ñì. http://csrc.nist.gov/.../fips180-2....pdf.
20. FIPS 186-2. Digital signature standard.
ñì. http://csrc.nist.gov/.../fips186-2-change1.pdf.
21. FIPS 197. Advanced encryption standard.
ñì. http://csrc.nist.gov/.../fips-197.pdf.
22. Goldwasser S., Bellare M. Lecture notes on cryptography.
ñì. http://www-cse.ucsd.edu/.../crypto-lecnotes.html.
23. Menezes A., van Oorschot P., Vanstone S. Handbook of Applied
Cryptography. CRC Press, 1996. 661 p.
ñì. http://www.cacr.math.uwaterloo.ca/hac/.
24. Ryabko B., Fionov A. Ef cient homophonic coding // IEEE
Transactions on Information Theory.
1999.
V. 45, N. 6.
P. 2083 2091.
25. Ryabko B., Fionov A. Fast and space-ef cient adaptive arithmetic
coding // Cryptography and Coding. Berlin: Springer, 1999. P.
270 279 (Lecture Notes in Computer Science; V. 1746).
26. Schneier B. Applied Cryptography, Second Edition: Protocols,
Algorthms, and Source Code in C. Wiley, 1996.
27. Schneier B. Self-study course in block cipher cryptanalysis //
Cryptologia. 2000. V. 24, N. 1. P. 18 34.
ñì. http://www.counterpane.com/self-study.html.