Справочник от Автор24
Поделись лекцией за скидку на Автор24

Криптографические методы защиты информации

  • ⌛ 2005 год
  • 👀 526 просмотров
  • 📌 484 загрузки
Выбери формат для чтения
Статья: Криптографические методы защиты информации
Найди решение своей задачи среди 1 000 000 ответов
Загружаем конспект в формате pdf
Это займет всего пару минут! А пока ты можешь прочитать работу в формате Word 👇
Конспект лекции по дисциплине «Криптографические методы защиты информации» pdf
ÌÅÒÎÄÛ È ÑÐÅÄÑÒÂÀ ÊÐÈÏÒÎÃÐÀÔÈ×ÅÑÊÎÉ ÇÀÙÈÒÛ ÈÍÔÎÐÌÀÖÈÈ Ýëåêòðîííîå ó÷åáíîå ïîñîáèå äëÿ äèñòàíöèîííîãî îáðàçîâàíèÿ Íîâîñèáèðñê Ñèáèðñêèé ãîñóäàðñòâåííûé óíèâåðñèòåò òåëåêîììóíèêàöèé è èíôîðìàòèêè 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.
«Криптографические методы защиты информации» 👇
Готовые курсовые работы и рефераты
Купить от 250 ₽
Решение задач от ИИ за 2 минуты
Решить задачу
Найди решение своей задачи среди 1 000 000 ответов
Найти
Найди решение своей задачи среди 1 000 000 ответов
Крупнейшая русскоязычная библиотека студенческих решенных задач

Тебе могут подойти лекции

Смотреть все 81 лекция
Все самое важное и интересное в Telegram

Все сервисы Справочника в твоем телефоне! Просто напиши Боту, что ты ищешь и он быстро найдет нужную статью, лекцию или пособие для тебя!

Перейти в Telegram Bot