КРИПТОГРАФИЯ И БЕЗОПАСНОСТЬ СЕТЕЙ
Behrouz A. Forouzan
INTRODUCTION TO CRYPTOGRAPHY AND NETWORK SECURITY
Осно‚ы инфом‡ционных техноло„ий Бехоуз А. Фооуз‡н
КРИПТОГРАФИЯ И БЕЗОПАСНОСТЬ СЕТЕЙ Учебное пособие Пее‚о‰ с ‡н„лийско„о по‰ е‰‡кцией А.Н. Белин‡
Интенет-Уни‚еситет Инфом‡ционных Техноло„ий www.intuit.ru
БИНОМ. Л‡бо‡тоиfl зн‡ний www.lbz.ru
Мосꂇ 2010
УДК 003.26(075.8) ББК 32.973.26-018.2fl73-1+32.811.4fl73-1 Ф79
Ф79
Фооуз‡н Б.А. Киптфиfl и безоп‡сность сетей: Учебное пособие / Фооуз‡н Б.А.; пе. с ‡н„л. по‰ е‰. А.Н. Белин‡. — М.: Интенет-Уни‚еситет Инфом‡ционных Техноло„ий : БИНОМ. Л‡бо‡тоиfl зн‡ний, 2010. — 784 с.: ил., т‡бл. — (Осно‚ы инфом‡ционных техноло„ий). ISBN 978-5-9963-0242-0 В этом и片нии из‚естный ‡‚то Бехоуз А. Фооуз‡н ‚ ‰оступном стиле ‡сск‡зы‚‡ет о концепциflх киптфии и безоп‡сности сети. В пе‰ст‡‚ленных лекциflх сту‰енты мо„ут ос‚оить необхо‰имую м‡тем‡тическую осно‚у ‰лfl изучениfl сле‰ующе„о з‡ ним м‡теи‡л‡; эти м‡тем‡тические лекции мо„ут быть попущены, если сту‰енты об뇉‡ют соот‚етст‚ующими зн‡ниflми. Длfl сту‰енто‚, ‡спи‡нто‚ и ‚сех тех, кто хотел бы по‚ысить с‚ою ꂇлифик‡цию ‚ обл‡сти телекоммуник‡ций. А‚тоизинный пее‚о‰ с ‡н„лийско„о и片ниfl, опубликнно„о комп‡нией McGraw Hill. Higher Education. УДК 003.26(075.8) ББК 32.973.26-018.2fl73-1+32.811.4fl73-1
Полное или ч‡стичное ‚оспоиз‚е‰ение или ‡змножение к‡ким-либо способом, ‚ том числе и публик‡циfl ‚ Сети, н‡стоflще„о и片ниfl ‰опуск‡етсfl только с письменно„о ‡зешениfl Интенет-Уни‚еситет‡ Инфом‡ционных Техноло„ий. По ‚опос‡м пиобетениfl об‡щ‡тьсfl: «БИНОМ. Л‡бо‡тоиfl зн‡ний» Телефон (499) 157-1902, (499) 157-5272, e-mail:
[email protected], http://www.Lbz.ru
ISBN 978-5-9963-0242-0
© McGraw-Hill Companies, Inc., 2008 © Пее‚о‰ н‡ усский flзык, ЭКОМ, 2010 © Интенет-Уни‚еситет Инфом‡ционных Техноло„ий, 2010 © БИНОМ. Л‡бо‡тоиfl зн‡ний, 2010
О поекте
Интенет-Уни‚еситет Инфом‡ционных Техноло„ий – это пе‚ое ‚ России ‚ысшее учебное 燂е‰ение, котоое пе‰ост‡‚лflет ‚озможность получить ‰ополнительное об‡зние ‚о Всеминой сети. Web-с‡йт уни‚еситет‡ н‡хо‰итсfl по ‡‰есу www.intuit.ru. Мы ‡‰ы, что ‚ы ешили ‡сшиить с‚ои зн‡ниfl ‚ обл‡сти компьютеных техноло„ий. Со‚еменный ми – это ми компьютео‚ и инфом‡ции. Компьютен‡fl ин‰устиfl – с‡мый бысто‡стущий секто экономики, и ее ост бу‰ет по‰олж‡тьсfl еще ‰ол„ое ‚емfl. Во ‚емен‡ жесткой конкуенции от уо‚нfl ‡з‚итиfl инфом‡ционных техноло„ий, ‰остижений н‡учной мысли и песпекти‚ных инжененых ешений 燂исит успех не только от‰ельных лю‰ей и комп‡ний, но и целых ст‡н. Вы ‚ыб‡ли с‡мое по‰хо‰flщее ‚емfl ‰лfl изучениfl компьютеных ‰исциплин. Пофессион‡лы ‚ обл‡сти инфом‡ционных техноло„ий сейч‡с ‚остебны ‚ез‰е: ‚ н‡уке, экономике, об‡знии, ме‰ицине и ‰у„их обл‡стflх, ‚ „осу‰‡ст‚енных и ч‡стных комп‡ниflх, ‚ России и з‡ убежом. Ан‡лиз ‰‡нных, по„нозы, низ‡циfl с‚flзи, со片ние пммно„о обеспечениfl, постоение мо‰елей поцессо‚ – ‚от ‰‡леко не полный список обл‡стей пименениfl зн‡ний ‰лfl компьютеных специ‡листо‚. Обучение ‚ уни‚еситете ‚е‰етсfl по собст‚енным учебным пл‡н‡м, ‡з‡бот‡нным ‚е‰ущими оссийскими специ‡лист‡ми н‡ осно‚е меж‰ун‡о‰ных об‡зтельных ст‡н‰‡то‚ Computer Curricula 2001 Computer Science. Изуч‡ть учебные кусы можно с‡мостоflтельно по учебник‡м или н‡ с‡йте Интенет-Уни‚еситет‡, 燉‡ниfl ‚ыполнflютсfl только н‡ с‡йте. Длfl обучениfl необхо‰имо з‡е„иститьсfl н‡ с‡йте уни‚еситет‡. У‰осто‚еение об оконч‡нии учебно„о кус‡ или специ‡льности ‚ы‰‡етсfl пи усло‚ии ‚ыполнениfl ‚сех 燉‡ний к лекциflм и успешной с‰‡чи ито„о‚о„о экз‡мен‡. Кн脇, котоую ‚ы ‰ежите ‚ ук‡х, – очее‰н‡fl ‚ мно„отомной сеии «Осно‚ы инфом‡ционных техноло„ий», ‚ыпуск‡емой ИнтенетУни‚еситетом Инфом‡ционных Техноло„ий. В этой сеии бу‰ут ‚ыпущены учебники по ‚сем б‡зо‚ым обл‡стflм зн‡ний, с‚flз‡нным с компьютеными ‰исциплин‡ми. Добо пож‡лть ‚ Интенет-Уни‚еситет Инфом‡ционных Техноло„ий! Ан‡толий Шке‰
[email protected]
Об ‡‚тое Бехоуз А. Фооуз‡н окончил К‡лифонийский Уни‚еситет. В н‡стоflщее ‚емfl пепет ‚ De Anza College, „‰е ‚е‰ет кусы по компьютеным инфом‡ционным систем‡м. Коме то„о, он ‡бот‡ет к‡к системный консульт‡нт ‚ ‡зличных фим‡х. Из‚естен к‡к ‡‚то ‚есьм‡ ‚остебнных кни„ по пмминию и постоению сетей телекоммуник‡ций.
6
Лекции Лекциfl 1. В‚е‰ение . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 Лекциfl 2. М‡тем‡тик‡ киптфии. Ч‡сть I. Мо‰ульн‡fl ‡ифметик‡, с‡‚нениfl и м‡тицы . . . . . . . . . 37 Лекциfl 3. Т‡‰иционные шифы с симметичным ключом . . . . . . . . . . . . . . . 73 Лекциfl 4. М‡тем‡тик‡ киптфии. Ч‡сть II. Ал„еб‡ические стуктуы . . . . . . . . . . . . . . . . . . . . . . . . . . 119 Лекциfl 5. В‚е‰ение ‚ осно‚ы со‚еменных шифо‚ с симметичным ключом . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144 Лекциfl 6. Ст‡н‰‡т шифниfl ‰‡нных (DES) . . . . . . . . . . . . . . . . . . . . . . . . . 183 Лекциfl 7. Усо‚ешенст‚нный ст‡н‰‡т шифниfl (AES — Advanced encryption standard) . . . . . . . . . . . . . . . . . . . . . . . . . 215 Лекциfl 8. Шифние, использующее со‚еменные шифы с симметичным ключом . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 249 Лекциfl 9. М‡тем‡тик‡ киптфии. Ч‡сть III. Постые числ‡ и у‡‚нениfl с‡‚нениfl . . . . . . . . . . . . . . 275 Лекциfl 10. Киптфиfl с ‡ссимметичным ключом . . . . . . . . . . . . . . . . . . . . 318 Лекциfl 11. Целостность сообщениfl и уст‡но‚ление по‰линности сообщениfl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 366 Лекциfl 12. Киптфические хэш-функции . . . . . . . . . . . . . . . . . . . . . . . . . . . 392 Лекциfl 13. Цифfl по‰пись . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 419 Лекциfl 14. Уст‡но‚ление по‰линности объект‡ . . . . . . . . . . . . . . . . . . . . . . . . . . 448 Лекциfl 15. Уление ключ‡ми . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 471 Лекциfl 16. Безоп‡сность н‡ пик뇉ном уо‚не: PGP И S/MIME . . . . . . . . . . 501 Лекциfl 17. Безоп‡сность н‡ т‡нспотном уо‚не: SSL И TLS . . . . . . . . . . . . . 542 Лекциfl 18. Безоп‡сность н‡ сете‚ом уо‚не: IP SEC . . . . . . . . . . . . . . . . . . . . . . 586
7
΄뇂ление Пе‰исло‚ие к усскому пее‚о‰у . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 Пе‰исло‚ие . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 Лекциfl 1. В‚е‰ение . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 1.1. Цели пежки безоп‡сности . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 1.2. Ат‡ки . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 1.3. Услу„и и мех‡низмы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 1.4. Мето‰ы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 1.5. Ост‡льные ч‡сти кни„и . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 1.6. Рекомен‰о‚‡нное чтение . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 1.7. Ито„и . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 1.8. Н‡бо ‰лfl п‡ктики . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 Ч‡сть 1. Шифние симметичными ключ‡ми . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 Лекциfl 2. М‡тем‡тик‡ киптфии. Ч‡сть I. Мо‰ульн‡fl ‡ифметик‡, с‡‚нениfl и м‡тицы . . . . . . . . . . . . . . . 37 2.1. Аифметик‡ целых чисел . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 2.2. Мо‰ульн‡fl ‡ифметик‡ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 2.3. М‡тицы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59 2.4. Линейное с‡‚нение . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64 2.5. Рекомен‰о‚‡нн‡fl лите‡ту‡ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66 2.6. Ито„и . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66 2.7. Н‡бо ‰лfl п‡ктики . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68 Лекциfl 3. Т‡‰иционные шифы с симметичным ключом . . . . . . . . . . . . . . . . 73 3.1. В‚е‰ение . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73 3.2. Шифы по‰ст‡но‚ки . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79 3.3. Шифы пеест‡но‚ки . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102 3.4. Шифы поток‡ и блочные шифы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109 3.5. Рекомен‰о‚‡нн‡fl лите‡ту‡ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111 3.6. Ито„и . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112 3.7. Н‡бо ‰лfl п‡ктики . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113 Лекциfl 4. М‡тем‡тик‡ киптфии. Ч‡сть II. Ал„еб‡ические стуктуы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119 4.1. Ал„еб‡ические стуктуы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119 4.2. Полfl GF(2n) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130 8
4.3. Рекомен‰о‚‡нн‡fl лите‡ту‡ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140 4.4. Ито„и . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140 4.5. Вопосы и уп‡жнениfl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141 Лекциfl 5. В‚е‰ение ‚ осно‚ы со‚еменных шифо‚ с симметичным ключом . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144 5.1. Со‚еменные блочные шифы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144 5.2. Со‚еменные шифы поток‡ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171 5.3. Рекомен‰о‚‡нн‡fl лите‡ту‡ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177 5.4. Ито„и . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 178 5.5. Вопосы и уп‡жнениfl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179 Лекциfl 6. Ст‡н‰‡т шифниfl ‰‡нных (DES) . . . . . . . . . . . . . . . . . . . . . . . . . . 183 6.1. В‚е‰ение . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183 6.2. Стукту‡ DES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 184 6.3. Ан‡лиз DES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 199 6.4. Мно„ок‡тное пименение DES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 206 6.5. Безоп‡сность DES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 210 6.6. Рекомен‰о‚‡нн‡fl лите‡ту‡ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 211 6.7. Ито„и . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 211 6.8. Н‡бо ‰лfl п‡ктики . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 212 Лекциfl 7. Усо‚ешенст‚нный ст‡н‰‡т шифниfl (AES — Advanced encryption standard) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 215 7.1. В‚е‰ение . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 215 7.2. Пеоб‡зниfl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 220 7.3. Р‡сшиение ключей . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 231 7.4. Шифы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 237 7.5. Пимеы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 240 7.6. Ан‡лиз AES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 243 7.7. Рекомен‰о‚‡нн‡fl лите‡ту‡ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 244 7.8. Ито„и . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 244 7.9. Н‡бо ‰лfl п‡ктики . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 245 Лекциfl 8. Шифние, использующее со‚еменные шифы с симметичным ключом . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 249 8.1. Пименение со‚еменных блочных шифо‚ . . . . . . . . . . . . . . . . . . . . 249 8.2. Использние шифо‚ поток‡ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 263 8.3. Ду„ие поблемы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 269 8.4. Рекомен‰о‚‡нн‡fl лите‡ту‡ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 270 8.5. Ито„и . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 271 9
8.6. Н‡бо ‰лfl п‡ктики . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 272 Ч‡сть 2. Шифние с ‡симметичными ключ‡ми . . . . . . . . . . . . . . . . . . . . . . . . 275 Лекциfl 9. М‡тем‡тик‡ киптфии. Ч‡сть III. Постые числ‡ и у‡‚нениfl с‡‚нениfl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 275 9.1. Постые числ‡ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 276 9.2. Испыт‡ние постоты чисел . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 284 9.3. Р‡зложение н‡ множители . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 292 9.4. Кит‡йск‡fl теоем‡ об ост‡тк‡х . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 299 9.5. К‚‡‰‡тичное с‡‚нение . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 301 9.6. Воз‚е‰ение ‚ степень и лифмы . . . . . . . . . . . . . . . . . . . . . . . . . . . . 304 9.7. Рекомен‰о‚‡нн‡fl лите‡ту‡ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 312 9.8. Ито„и . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 313 9.9. Н‡бо ‰лfl п‡ктики . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 314 Лекциfl 10. Киптфиfl с ‡ссимметичным ключом . . . . . . . . . . . . . . . . . . . . 318 10.1. В‚е‰ение . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 318 10.2. Киптфическ‡fl систем‡ RSA . . . . . . . . . . . . . . . . . . . . . . . . . . . . 327 10.3. Киптосистем‡ Р‡бин‡ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 342 10.4. Киптфическ‡fl систем‡ Эль-Г‡м‡лfl . . . . . . . . . . . . . . . . . . . . . . 345 10.5. Киптосистемы н‡ осно‚е мет эллиптических ки‚ых . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 350 10.6. Рекомен‰о‚‡нн‡fl лите‡ту‡ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 359 10.7. Ито„и . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 360 10.8. Н‡бо ‰лfl п‡ктики . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 362 Ч‡сть 3. Целостность, уст‡но‚ление по‰линности и уление ключ‡ми . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 365 Лекциfl 11. Целостность сообщениfl и уст‡но‚ление по‰линности сообщениfl 366 11.1. Целостность сообщениfl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 366 11.2. Случ‡йн‡fl мо‰ель Oracle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 370 11.3. Уст‡но‚ление по‰линности сообщениfl . . . . . . . . . . . . . . . . . . . . . . . . 380 11.4. Рекомен‰о‚‡нн‡fl лите‡ту‡ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 386 11.5. Ито„и . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 386 11.6. Н‡бо ‰лfl п‡ктики . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 387 Лекциfl 12. Киптфические хэш-функции . . . . . . . . . . . . . . . . . . . . . . . . . . . 392 12.1. В‚е‰ение . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 392 12.2. SHA-512 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 396 12.3. Whirlpool . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 405 10
12.4. Рекомен‰о‚‡нн‡fl лите‡ту‡ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 414 12.5. Ито„и . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 415 12.6. Н‡бо ‰лfl п‡ктики . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 416 Лекциfl 13. Цифfl по‰пись . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 419 13.1. С‡‚нение . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 419 13.2. Поцесс . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 420 13.3. Услу„и . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 423 13.4. Ат‡ки цифо‚ой по‰писи . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 425 13.5. Схемы цифо‚ой по‰писи . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 427 13.6. В‡и‡нты и пиложениfl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 441 13.7. Рекомен‰о‚‡нн‡fl лите‡ту‡ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 444 13.8. Ито„и . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 444 13.9. Н‡бо ‰лfl п‡ктики . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 445 Лекциfl 14. Уст‡но‚ление по‰линности объект‡ . . . . . . . . . . . . . . . . . . . . . . . . . . 448 14.1. В‚е‰ение . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 448 14.2. П‡оли . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 449 14.3. З‡пос-от‚ет . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 454 14.4. По‰т‚еж‰ение с нуле‚ым ‡з„л‡шением . . . . . . . . . . . . . . . . . . . . . . 458 14.5. Биометиfl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 464 14.6. Рекомен‰о‚‡нн‡fl лите‡ту‡ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 468 14.7. Ито„и . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 468 14.8. Н‡бо ‰лfl п‡ктики . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 469 Лекциfl 15. Уление ключ‡ми . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 471 15.1. Р‡спе‰еление с симметичными ключ‡ми . . . . . . . . . . . . . . . . . . . . 471 15.2. Цебе . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 478 15.3. Со„л‡шение с симметичными ключ‡ми . . . . . . . . . . . . . . . . . . . . . . 480 15.4. Р‡спе‰еление откыто„о ключ‡ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 487 15.5. Рекомен‰о‚‡нн‡fl лите‡ту‡ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 497 15.6. Ито„и . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 497 15.7. Н‡бо ‰лfl п‡ктики . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 498 Ч‡сть 4. Безоп‡сность сети . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 500 Лекциfl 16. Безоп‡сность н‡ пик뇉ном уо‚не: PGP И S/MIME . . . . . . . . . . 501 16.1. Электонн‡fl почт‡ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 501 16.2. PGP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 504 16.3. S/MIME . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 528 16.4. Рекомен‰о‚‡нн‡fl лите‡ту‡ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 539 11
16.5. Ито„и . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 539 16.6. Н‡бо ‰лfl п‡ктики . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 540 Лекциfl 17. Безоп‡сность н‡ т‡нспотном уо‚не: SSL И TLS . . . . . . . . . . . . . 542 17.1. SSL-‡хитекту‡ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 543 17.2. Четые потокол‡ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 553 17.3. Фом‡ты сообщениfl SSL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 566 17.4. Безоп‡сность т‡нспотно„о уо‚нfl . . . . . . . . . . . . . . . . . . . . . . . . . . 575 17.4. Рекомен‰о‚‡нн‡fl лите‡ту‡ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 581 17.8. Ито„и . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 582 17.7. Н‡бо ‰лfl п‡ктики . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 582 Лекциfl 18. Безоп‡сность н‡ сете‚ом уо‚не: IP SEC . . . . . . . . . . . . . . . . . . . . . . 586 18.1. Д‚‡ ежим‡ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 587 18.2. Д‚‡ потокол‡ безоп‡сности . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 589 18.3. Услу„и обеспечениfl безоп‡сности т‡фик‡ . . . . . . . . . . . . . . . . . . . . 594 18.4. Ст‡те„иfl безоп‡сности . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 597 18.5. Потокол интенет-обмен‡ ключ‡ми (IKE) . . . . . . . . . . . . . . . . . . . . 601 18.6. ISAKMP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 618 18.7. Рекомен‰о‚‡нн‡fl лите‡ту‡ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 629 18.8. Ито„и . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 630 18.9. Н‡бо ‰лfl п‡ктики . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 631 Пиложение A. ASCII . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 634 Пиложение B. Ст‡н‰‡ты и низ‡ции по ст‡н‰‡тиз‡ции . . . . . . . . . . . . . . 635 Пиложение С. Н‡бо потоколо‚ TCP/IP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 641 Пиложение D. Элемент‡н‡fl теоиfl ‚еоflтностей . . . . . . . . . . . . . . . . . . . . . . 646 Пиложение E. Поблемы ‰нfl ож‰ениfl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 650 Пиложение F. Теоиfl инфом‡ции . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 654 Пиложение G. Список непи‚о‰имых и пимити‚ных полиномо‚ . . . . . . . . 660 Пиложение H. Постые числ‡, меньшие чем 10 000 . . . . . . . . . . . . . . . . . . . . . . 662 Пиложение I. Постые множители целых чисел, меньшие чем 1000 . . . . . . . 666 Пиложение J. Список пе‚ых пе‚ооб‡зных коней ‰лfl постых чисел, меньших чем 1000 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 669 Пиложение K. Гене‡то случ‡йных чисел . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 670 Пиложение L. Сложность . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 676 12
Пиложение M. ZIP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 682 Пиложение N. Диффеенци‡льный и линейный кипто‡н‡лиз DES . . . . . . . 687 Пиложение О. Упощенный DES (S-DES) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 695 Пиложение P. Упощенный AES (S-AES) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 703 Пиложение Q. Некотоые ‰ок‡з‡тельст‚‡ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 715 Глосс‡ий . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 722 Список лите‡туы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 746 Пе‰метный ук‡з‡тель . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 748 Сок‡щениfl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 780
13
Кус
Киптфиfl и безоп‡сность сетей
Пе‰исло‚ие к усскому пее‚о‰у Поскольку обмен инфом‡цией ‚ со‚еменном мие пе‰ст‡‚лflет о‰ну из цент‡льных 燉‡ч. Утечк‡, иск‡жение, отк‡з от сообщений ч‡сто пи‚о‰flт к к‡тостофическим после‰ст‚иflм. Поэтому со‚еменные сети Интенет и мобильной с‚flзи не мо„ут использтьсfl без се‰ст‚ з‡щиты. Кн脇 Бехоуз‡ Фооуз‡н‡ — о‰но из н‡иболее полных и片ний. Бу‰учи пеп‚‡телем о‰но„о из ‚е‰ущих уни‚еситето‚ США, он н‡пис‡л очень со‰еж‡тельную и понflтную кни„у, несмотfl н‡ сложность м‡теи‡л‡. Кн脇 пе‰ст‡‚лflет собой ч‡сть учебной пммы, кото‡fl со‰ежит сле‰ующие кусы лекций. 1. Оконечные устойст‚‡ и линии ‡бонентско„о уч‡стк‡ инфом‡ционной сети. 2. Абонентские устойст‚‡ и техноло„ии ‚ысокоскоостных сетей. 3. Телекоммуник‡ционные сети и устойст‚‡. 4. Осно‚ные потоколы Интенет. 5. Киптфиfl и безоп‡сность сетей. Чит‡тель получ‡ет ‚озможность после‰о‚‡тельно„о и ‚з‡мос‚flз‡нно„о обучениfl оснм постоений со‚еменных инфом‡ционных сетей ‚ ук‡з‡нном ‚ыше поfl‰ке. Пе‰ст‡‚ленный пее‚о‰ ‰ополнflет пе‰ы‰ущие кусы лекций то„о же ‡‚то‡. По с‚оей стуктуе кн脇 ‚есьм‡ близк‡ к уже опубликнным и пеечисленным ‚ыше ‚ этой сеии (к‡ткие ито„и, список темино‚, „лосс‡ий). Кни„у сопо‚о扇ют н‡боы ‚опосо‚ ‰лfl с‡мопо‚еки. Чтобы н‡ них от‚етить, тебуетсfl опе‰еленный уо‚ень ‚뇉ениfl м‡теи‡лом.В этом случ‡е пи сост‡‚лении ‚опосо‚ было учтено мнение сту‰енто‚ (см. фоум), котоые ‚ы‡зили пожел‡ние усложнить ‚опосы. А‚то б뇄ит уко‚о‰ителfl и片тельско„о от‰ел‡ Н‡т‡лью Р‡хм‡но‚у и 則кто‡ С‚етл‡ну Пеепелкину з‡ ‚ним‡тельную ‡боту 퇉 укописью и ‰обожел‡тельное отношение.
14
Пе‰исло‚ие
Моим любимым ‰очеи Сэйт‡е и зflтю Ш‡ну. Б. Фооуз‡н
Пе‰исло‚ие Всемин‡fl сеть Интенет изменил‡ ‚о мно„ом н‡шу по‚се‰не‚ную жизнь. Но‚ые фомы коммеческой ‰еflтельности поз‚олflют ‰ел‡ть покупки ‚ 쇄‡зине, не ‚ыхо‰fl из ‰ом‡. Всемин‡fl П‡утин‡ (WWW) ‰‡ет ‚озможность пользтьсfl общей инфом‡цией. Техноло„иfl Электонной почты (e-mail) сое‰инflет лю‰ей из с‡мых у‰‡ленных у„олко‚ ми‡. Но к‡к езульт‡т, этот неизбежный по„есс поо‰ил 燂исимость со‚еменно„о общест‚‡ от Интенет‡. Интенет, ‰оступн‡fl ‚сем систем‡ обмен‡ инфом‡цией, со片л поблемы инфом‡ционной безоп‡сности. Пи обмене ‚‡жными с‚е‰ениflми необхо‰имы конфи‰енци‡льность, целостность и у‰осто‚еение их по‰линности. К‡ лю‰и ‰ел‡ют покупки путем ‰и‡л ‚ Интенете, они ‰олжны быть убеж‰ены, что се‰ст‚‡ с‚flзи обеспеч肇ют конфи‰енци‡льность. Они ‰олжны быть у‚еены, что п‚цы, ‚е‰ущие с ними ‰и‡ло„, по‰линны. К‡ клиенты со‚еш‡ют опе‡ции с б‡нк‡ми, з‡п‡ш肇ют инфом‡цию и получ‡ют от‚ет, они хотflт точно зн‡ть, что целостность сообщениfl сох‡нен‡ и цифы не иск‡жены. Безоп‡сность сети обеспеч肇етсfl н‡боом потоколо‚, котоые поз‚олflют н‡м спокойно использть Интенет, не ‰ум‡fl о ‚озможных ‡т‡к‡х н‡ н‡ушение инфом‡ции. С‡мый общий инстумент ‰лfl то„о, чтобы обеспечить безоп‡сность сети, – киптфиfl. Это ст‡‡fl техник‡, кото‡fl был‡ ‚осст‡но‚лен‡ и писпособлен‡ к со‚еменной сети. Н‡ш‡ кн脇 сн‡ч‡л‡ пе‰ст‡‚лflет чит‡телю пинципы киптфии, ‡ з‡тем пок‡зы‚‡ет их пименение ‰лfl опис‡ниfl потоколо‚ безоп‡сности сети.
Особенности кни„и Некотоые особенности кни„и объflснflютсfl попыткой обле„чить чит‡телю поним‡ние пинципо‚ безоп‡сности сети и киптфии. Стукту‡ Кн脇 использует по‰хо‰ к обучению безоп‡сности сети и киптфии по 퇇ст‡ющей сложности. Он‡ не пе‰по뇄‡ет у чит‡телfl ник‡ких особых и специ‡льных зн‡ний м‡тем‡тики тип‡ теоии чисел или ‡бст‡ктной ‡л„ебы. О‰н‡ко киптфиfl и безоп‡сность сети не мо„ут быть понflты без зн‡ниfl некотоых осно‚ ‚ соот‚етс‚ующих обл‡стflх м‡тем‡тики, и эт‡ б‡зfl инфом‡циfl пи‚о‰итсfl ‚ лекциflх 2, 4 и 9. Чит‡тели, зн‡комые с этими ‚опос‡ми, мо„ут попустить ук‡з‡нные лекции. Лекции 1-15 ‡ссм‡т肇ют ‚опосы киптфии, ‡ лекции 16-18 — поблемы безоп‡сности сети. Визу‡льный по‰хо‰ Кн脇 ‡ссм‡т肇ет сложные технические ‚опосы, не используfl сложных фомул, з‡ счет б‡л‡нс‡ меж‰у текстом и исунк‡ми. Текст сопо‚о扇ют более 15
Кус
Киптфиfl и безоп‡сность сетей
чем 400 исунко‚, обеспеч肇ющих ‚изу‡льные и интуити‚ные ‚озможности ‰лfl поним‡ниfl м‡теи‡ло‚. Рисунки особенно ‚‡жны пи объflснении ту‰ных понflтий шифниfl и сложных сете‚ых потоколо‚ безоп‡сности. Ал„оитмы Ал„оитмы 脇ют ‚‡жную оль ‚ обучении шифнию. Чтобы с‰ел‡ть изложение не燂исимым от конкетно„о компьютено„о flзык‡, ‡л„оитмы ‰‡ютсfl ‚ пс傉око‰е, котоый может быть ле„ко з‡пммин н‡ со‚еменном flзыке. В‡жные понflтиfl ‚ы‰елены шифтом ‰лfl ски, ‡ т‡кже чтобы пи‚лечь непосе‰ст‚енное ‚ним‡ние чит‡телfl. Пимеы ʇ扇fl лекциfl со‰ежит большое количест‚о пимео‚, котоые иллюстиуют пименение понflтий, обсу扇емых ‚ этой лекции. Некотоые пимеы посто пок‡зы‚‡ют, к‡к использть понflтиfl и фомулы; ‰у„ие иллюстиуют п‡ктическое соотношение шифо‚; тетьи ‰‡ют ‰ополнительную инфом‡цию ‰лfl лучше„о поним‡ниfl некотоых ту‰ных и‰ей. Рекомен‰о‚‡нн‡fl лите‡ту‡ В конце к‡ж‰ой лекции чит‡тель н‡й‰ет список кни„ ‰лfl с‡мостоflтельно„о чтениfl. Ключе‚ые темины Ключе‚ые темины ‚ы‰елены полужиным шифтом ‚ тексте лекции, и список ключе‚ых темино‚ пи‚о‰итсfl ‚ конце к‡ж‰ой лекции. Все ключе‚ые темины т‡кже опе‰елены ‚ „лосс‡ии, ‚ конце кни„и. ʇ扇fl лекциfl з‡к‡нч肇етсfl к‡ткими итми м‡теи‡л‡, то есть обзоом ‚сех ‚‡жных пункто‚ ‚ лекции. Н‡бо ‰лfl п‡ктики В конце к‡ж‰ой лекции сту‰енты н‡й‰ут н‡бо ‰лfl п‡ктики, ‡з‡бот‡нный с целью з‡кепить сущест‚енные понflтиfl. Н‡бо ‰лfl п‡ктики состоит из ‰‚ух ч‡стей: ‚опосы и уп‡жнениfl. Вопосы пе‰н‡зн‡чены ‰лfl то„о, чтобы по‚еить пе‚ичное поним‡ние чит‡телем м‡теи‡л‡, пе‰ст‡‚ленно„о ‚ лекции. Уп‡жнениfl тебуют более „лубоко„о поним‡ниfl м‡теи‡л‡. Пиложениfl Пиложениfl со‰еж‡т сочные м‡теи‡лы или к‡ткое изложение м‡теи‡ло‚, котоые необхо‰имы ‰лfl поним‡ниfl положений, обсу扇емых ‚ этой кни„е. Р‡ссмотение некотоых м‡тем‡тических тем т‡кже пе‰ст‡‚лено ‚ пиложениflх — это ‰‡ет ‚озможность чит‡телю, уже зн‡комому с этими ‚опос‡ми, попустить их чтение. Док‡з‡тельст‚‡ М‡тем‡тические понflтиfl, упомflнутые ‚ лекциflх, пи‚о‰flтсfl без ‰ок‡з‡тельст‚, только ‰лfl то„о, чтобы пок‡з‡ть езульт‡ты пименениfl этих понflтий. З‡интееснный чит‡тель может н‡йти ‰ок‡з‡тельст‚‡ ‚ пиложении Q. 16
Пе‰исло‚ие
Глосс‡ий и Список сок‡щений В конце текст‡ чит‡тель н‡й‰ет обшиный „лосс‡ий и список сок‡щений. Со‰еж‡ние После ‚‚о‰ной лекции 1 кн脇 ‡з‰елен‡ н‡ четые ч‡сти. П傇fl ч‡сть: Шифние с помощью симметичных ключей П傇fl ч‡сть ‰‡ет пе‰ст‡‚ление о киптфии с симметичными ключ‡ми (симметичное шифние) — к‡к о т‡‰иционном, т‡к и о со‚еменном по‰хо‰е к поцессу шифниfl. Лекции ‚ этой ч‡сти пос‚flщены использнию симметично„о шифниfl ‰лfl обеспечениfl секетности инфом‡ции. П傇fl ч‡сть ‚ключ‡ет ‚ себfl лекции 2-8. Вто‡fl ч‡сть: Шифние с помощью ‡симметичных ключей Вто‡fl ч‡сть ‡ссм‡т肇ет шифние с помощью ‡симметичных ключей (‡симметичное шифние). Лекции ‚ этой ч‡сти пок‡зы‚‡ют, к‡к ‡симметичное шифние может обеспечить безоп‡сность инфом‡ции. Вто‡fl ч‡сть ‚ключ‡ет ‚ себfl лекции 9 и 10. Тетьfl ч‡сть: Целостность, у‰осто‚еение по‰линности и уление ключ‡ми Тетьfl ч‡сть пок‡зы‚‡ет, к‡к киптфические функции хэшиниfl1 (hashing) мо„ут обеспечить ‰у„ие функции безоп‡сности, т‡кие к‡к целостность сообщениfl и у‰осто‚еениfl по‰линности сообщениfl. Лекции ‚ этой ч‡сти т‡кже пок‡зы‚‡ют, к‡к ‡симметичное шифние и ‡симметичное шифние мо„ут ‰ополнflть ‰у„ ‰у„‡. Тетьfl ч‡сть ‚ключ‡ет ‚ себfl лекции 11-15. Чет‚ет‡fl ч‡сть: Безоп‡сность сети Чет‚ет‡fl ч‡сть пок‡зы‚‡ет, к‡к киптфиfl, ‡ссмотенн‡fl ‚ пе‚ой и тетьей ч‡стflх, может использтьсfl ‰лfl со片ниfl потоколо‚ безоп‡сности сети н‡ тех уо‚нflх мо‰ели низ‡ции сети Интенет‡. Чет‚ет‡fl ч‡сть ‚ключ‡ет ‚ себfl лекции 16-18.
К‡к использть эту кни„у Эт‡ кн脇 н‡пис‡н‡ и ‰лfl сту‰енческой, и ‰лfl пофессион‡льной ‡у‰итоии. З‡интееснные пофессион‡лы мо„ут использть еfi ‰лfl с‡мостоflтельно„о обучениfl. К‡к учебник он‡ может пименflтьсfl ‰лfl чтениfl лекций ‚ течение о‰но„о семест‡ или цело„о кус‡. Ниже пи‚о‰flтсfl некотоые уко‚о‰flщие пинципы изучениfl. • Ч‡сти 1-3 н‡стоflтельно екомен‰уютсfl ‰лfl изучениfl. • Ч‡сть 4 екомен‰уетсfl, если кус ‰олжен по‰олжитьсfl з‡ ‡мк‡ми киптфии ‚ обл‡сти безоп‡сности сети. Длfl чтениfl чет‚етой ч‡сти сле‰ует п剂‡ительно изучить кус низ‡ции сетей.
Онл‡йно‚ый Учебный Цент Онл‡йно‚ый Учебный Цент McGraw-Hill пе‰ост‡‚лflет мно„о ‰ополнительных м‡теи‡ло‚, с‚flз‡нных с темой «Безоп‡сность Сети и Киптфиfl». С‡йт ‰оступен по сле‰ующей ссылке www.mhhe.com/forouzan. 1
Функциfl, пе‰ст‡‚лflющ‡fl собой отоб‡жение ф‡„менто‚ откыто„о текст‡ ‚ шифнную стоку фиксинной ‰лины.- пим. пее‚. 17
Кус
Киптфиfl и безоп‡сность сетей
Пофессо‡ и сту‰енты мо„ут получить ‰оступ к м‡теи‡л‡м лекций, н‡пиме, к сл‡й‰‡м Power Point. Сту‰енты мо„ут у‚и‰еть ешениfl 燉‡ч с нечетными номе‡ми, ‡ пеп‚‡тели мо„ут использть п‡оль ‰лfl ‰оступ‡ ко ‚сем ешениflм Дополнительно McGraw-Hill обле„ч‡ет со片ние web-с‡йт‡ (н‡ пимее котоо„о чит‡тель сможет лучше ус‚оить ‰‡нный кус) с помощью эксклюзи‚но„о по‰укт‡ фимы McGraw-Hill, котоый н‡зы‚‡етсfl PageOut (‚нешние ст‡ницы). Он не тебует ник‡кой п剂‡ительной пото‚ки и зн‡ниfl HTML, больших з‡т‡т ‚емени, 퇂ыко‚ поектиниfl web-с‡йто‚. Длfl это„о PageOut пе‰л‡„‡ет fl‰ ш‡блоно‚. Нужно посто з‡полнить их инфом‡цией ‚‡ше„о кус‡ и щелкнуть «мышкой» н‡ поле о‰но„о из 16 поекто‚. Этот поцесс отним‡ет ‚емени менее ч‡с‡, и ‚ езульт‡те чит‡тель получит пофессион‡льно ‡з‡бот‡нный web-с‡йт. PageOut пе‰ост‡‚лflет ‚озможность «м„но‚енной» ‡з‡ботки з‡конченно„о web-с‡йт‡ и обеспеч肇ет мощные функцион‡льности. Инте‡кти‚ное со‰еж‡ние кус‡ поз‚олflет ‚‡м получить ‰оступ н‡ эк‡не к со‰еж‡нию ‚‡шей лекции. К‡ сту‰енты посещ‡ют ‚‡ш web-с‡йт PageOut, ‚‡ш‡ пмм‡ н‡п‡‚лflет их к компонент‡м Онл‡йно‚о„о Учебно„о Цент‡ Фооуз‡н‡ или исключительно к ‚‡шему собст‚енному м‡теи‡лу.
Б뇄ности Оче‚и‰но, что ‰лfl со片ниfl этой кни„и был‡ необхо‰им‡ пежк‡ мно„их лю‰ей. Рецензенты С‡мый ‚‡жный ‚к뇉 ‚ со片ние кни„и ‚несли ецензенты. Я не мо„у ‚ы‡зить ‚ слх мою б뇄ность мно„очисленным ецензент‡м, котоые з‡т‡тили мно„ие ч‡сы, чит‡fl укопись и общ‡fl менfl полезными коммент‡иflми и и‰еflми. Я особенно хотел бы ‚ыск‡з‡ть пизн‡тельность сле‰ующим специ‡лист‡м: Kaufman, Robert, University of Texas, San Antonio Kesidis, George, Penn State Stephens, Brooke, University of Maryland, Baltimore County Koc, Cetin, Oregon State University Uminowicz, Bill, Westwood College Wang, Xunhua, James Madison University Kak, Subhash, Louisiana State University Dunigan, Tom, University of Tennessee, Knoxville Соту‰ники и片тельст‚‡ McGraw-Hill Хочу ‚ы‡зить особую б뇄ность соту‰ник‡м и片тельст‚‡ McGrawHill, и片телю Ал‡ну Апту (Alan Apt), котоый ‰ок‡з‡л, что может ‰ел‡ть не‚озможное ‚озможным. Мели퉇 Билецки (Melinda Bilecki), технический 則кто, ок‡зы‚‡л‡ мне помощь ‚с儉‡, к‡ fl ну扇лсfl ‚ этом. Шейл‡ Ф‡нк (Sheila Frank), мене‰же поект‡, низо‚‡л‡ поцесс и片ниfl с о„омным энтузи‡змом. Я т‡кже б뇄ю Д‡‚艇 Хэш‡ (David Hash), ‡з‡ботчик‡ поект‡, К‡‡ Ку‰оно‚ич (Kara Kudronowicz), ‡бот‡ющей ‚ поиз‚о‰ст‚е кни„, и Вен‰и Нелсон (Wendy Nelson) — 則кто‡ печ‡ти. Бехоуз Фооуз‡н (Behrouz A. Forouzan) 18
В‚е‰ение
Лекциfl 1
Лекциfl 1. В‚е‰ение Цели и со‰еж‡ние Эт‡ лекциfl песле‰ует несколько целей. • Опе‰елить ти цели инфом‡ционной безоп‡сности. • Опе‰елить ‚и‰ы ‡т‡к н‡ безоп‡сность инфом‡ции, котоые у„ож‡ют секетности. • Опе‰елить службы безоп‡сности и к‡к они с‚flз‡ны с темfl 燉‡ч‡ми безоп‡сности. • Опе‰елить мех‡низмы безоп‡сности, котоые обеспеч肇ют службы секетности. • Позн‡комить с ‰‚умfl метми шифниfl ‰лfl е‡лиз‡ции мех‡низм‡ безоп‡сности — киптфией и ст儇нфией. Мы жи‚ем ‚ инфом‡ционную эпоху. Мы ‰олжны ‚ним‡тельно сох‡нflть инфом‡цию о к‡ж‰ом ‡спекте н‡шей жизни. Ду„ими слми, инфом‡циfl — собст‚енность, и, по‰обно любой ‰у„ой собст‚енности, имеет ‚‡жное зн‡чение. И ‚ этом к‡чест‚е инфом‡циfl ‰олжн‡ быть з‡щищен‡ от н‡п‡‰ений. Инфом‡циfl ‰олжн‡ быть сох‡нен‡ от неомочно„о ‰оступ‡ (конфи‰енци‡льность), з‡щищен‡ от неомочно„о изменениfl (целостность) и ‰оступн‡ только ‡зешенному объекту, к‡ это ему необхо‰имо („ото‚ность). Несколько ‰есflтилетий н‡з‡‰ инфом‡циfl соби‡л‡сь н‡ физических носителflх. Конфи‰енци‡льность т‡ких носителей ‰ост脇л‡сь сто„им ничением ‰оступ‡, котоый пе‰ост‡‚лflлсfl только лю‰flм, имеющим н‡ это о, и тем из них, кому можно было ‰о‚еить ‰‡нную инфом‡цию. Т‡кже нескольким омочным субъект‡м ‡зеш‡лось изменение со‰еж‡ниfl этих ф‡йло‚. Гото‚ность был‡ обеспечен‡ тем, что по меньшей мее о‰ному чело‚еку ‚с儉‡ ‡зеш‡лсfl ‰оступ к носителflм. С поfl‚лением компьютео‚ х‡нение инфом‡ции ст‡ло электонным. Инфом‡циfl х‡нил‡сь уже не ‚ физической неэлектонной се‰е — он‡ н‡к‡пл肇л‡сь ‚ электонной се‰е (компьюте‡х). О‰н‡ко ти тебниfl безоп‡сности не изменились. Ф‡йлы, з‡пис‡нные ‚ компьютее, ‰олжны об뇉‡ть с‚ойст‚‡ми конфи‰енци‡льности, целостности и „ото‚ности. Ре‡лиз‡циfl этих тебний ‚озможн‡ ‡зличными метми и тебует ешениfl сложных 燉‡ч. В течение пошлых ‰‚ух ‰есflтилетий компьютеные сети поиз‚ели е‚олюцию ‚ использнии инфом‡ции. Инфом‡циfl тепеь ‡спе‰елен‡. Лю‰и пи н‡личии полномочий мо„ут пе則‚‡ть инфом‡цию и иск‡ть ее н‡ ‡сстоflнии, используfl компьютеные сети. Но ти уже упомflнутых тебниfl — конфи‰енци‡льности, целостности и „ото‚ности — не изменились. Они лишь пиобели некотоые но‚ые ‡спекты. Тепеь не‰ост‡точно то„о, что инфом‡циfl ‰олжн‡ быть конфи‰енци‡льной, к‡ он‡ сох‡нflетсfl ‚ компьютее. Должен т‡кже сущест‚ть способ пежки конфи‰енци‡льности, к‡ эт‡ инфом‡циfl пе則етсfl от о‰но„о компьюте‡ к ‰у„ому. В этой лекции мы сн‡ч‡л‡ обсу扇ем ти „л‡‚ных цели пежки безоп‡сности инфом‡ции. К‡ бу‰ет понflтно, к‡кие ‡т‡ки мо„ут у„ож‡ть этим тем целflм, т‡ можно обсу‰ить службы безоп‡сности, пе‰н‡зн‡ченные ‰лfl этих целей. Потом опе‰елflютсfl мех‡низмы обеспечениfl службы безоп‡сности и мето‰ы, котоые мо„ут использтьсfl, чтобы осущест‚ить эти мех‡низмы. 19
Кус
Киптфиfl и безоп‡сность сетей
1.1. Цели пежки безоп‡сности Р‡ссмотим ти цели пежки инфом‡ционной безоп‡сности: конфи‰енци‡льность, целостность и „ото‚ность.
Рис. 1.1. Систем‡тиз‡циfl целей пежки безоп‡сности
Конфи‰енци‡льность Конфи‰енци‡льность — ‚еоflтно, с‡мый общий ‡спект инфом‡ционной безоп‡сности. Мы ‰олжны з‡щитить н‡шу конфи‰енци‡льную инфом‡цию. О„‡низ‡циfl ‰олжн‡ пинflть меы поти‚ тех злон‡меенных ‰ейст‚ий, котоые мо„ут н‡ушить конфи‰енци‡льность инфом‡ции. В ‚оенных низ‡циflх сох‡нение секетности ‚‡жной инфом‡ции – „뇂н‡fl з‡бот‡ уко‚о‰ст‚‡. В помышленности сох‡нение т‡йны некотоой инфом‡ции от конкуенто‚ fl‚лflетсfl о‰ним из осно‚ных ф‡ктоо‚ ‡боты низ‡ции. В б‡нко‚ском ‰еле ‰олжн‡ сох‡нflтьсfl секетность учетных з‡писей клиенто‚. К‡к мы у‚и‰им позже ‚ этой лекции, конфи‰енци‡льность нужн‡ не только пи х‡нении инфом‡ции, он‡ т‡кже необхо‰им‡ пи ее пе則че. К‡ мы пе則ем ч‡сть инфом‡ции, кото‡fl ‰олжн‡ бу‰ет х‡нитьсfl ‚ у‰‡ленном компьютее, или к‡ мы отыск肇ем инфом‡цию, кото‡fl н‡хо‰итсfl ‚ у‰‡ленном компьютее, мы ‰олжны „‡‡нтить ее секетность ‚ течение пе則чи.
Целостность Потебители изменflют инфом‡цию постоflнно. В б‡нке, к‡ клиент ‚носит или сним‡ет ‰ень„и, б‡л‡нс н‡ е„о счету ‰олжен быть изменен. Целостность озн‡ч‡ет, что изменениfl ‰олжны быть с‰ел‡ны только ‡зешенными объект‡ми и с помощью ‡зешенных мех‡низмо‚. Н‡ушение целостности — не обflз‡тельно езульт‡т злон‡меенно„о ‰ейст‚иfl; сбой ‚ системе, т‡кой, н‡пиме, к‡к ‚сплеск или пеы‚‡ние мощности ‚ пе‚ичной сети электопит‡ниfl, может пи‚ести к нежел‡тельным изменениflм некотоой инфом‡ции.
Гото‚ность Тетий компонент инфом‡ционной безоп‡сности — „ото‚ность. Инфом‡циfl, со片нн‡fl и сох‡ненн‡fl низ‡цией, ‰олжн‡ быть ‰оступн‡ ‡зешенным 20
В‚е‰ение
Лекциfl 1
объект‡м. Инфом‡циfl бесполезн‡, если он‡ не ‰оступн‡. Инфом‡циfl ‰олжн‡ постоflнно изменflтьсfl и поэтому тоже ‰олжн‡ быть ‰оступн‡ ‰лfl ‡зешенных объекто‚. Не„ото‚ность инфом‡ции столь же ‚е‰н‡ ‰лfl низ‡ции, к‡к отсутст‚ие конфи‰енци‡льности или целостности. Вооб‡зите, что случилось бы с б‡нком, если клиенты не мо„ли бы об‡титьсfl к с‚оим счет‡м ‰лfl снflтиfl или ‚к뇉‡ ‰ене„.
1.2. Ат‡ки Н‡шим тем целflм инфом‡ционной безоп‡сности — конфи‰енци‡льности, целостности и „ото‚ности — мо„ут у„ож‡ть ‡т‡ки1 с целью н‡ушениfl безоп‡сности инфом‡ции. Хотfl ‚ лите‡туе ‚стеч‡ютсfl ‡зличные по‰хо‰ы к систем‡тиз‡ции ‡т‡к, мы сн‡ч‡л‡ ‡з‰елим их н‡ ти „уппы, с‚flз‡нные с целflми н‡ушениfl инфом‡ционной безоп‡сности. Позже мы бу‰ем ‰елить их н‡ ‰‚е шиоких к‡те„оии, осннные н‡ эффекти‚ности их ‚оз‰ейст‚иfl н‡ систему. Рисунок 1.2 пок‡зы‚‡ет пе‚ую систем‡тиз‡цию.
Рис. 1.2. Систем‡тиз‡циfl ‡т‡к и соотношение их с целflми пежки инфом‡ционной безоп‡сности 1
Ат‡к‡ – попытк‡ злоумышленник‡ ‚ы炇ть отклонениfl от ном‡льно„о потек‡ниfl инфом‡ционно„о поцесс‡. 21
Кус
Киптфиfl и безоп‡сность сетей
Ат‡ки, у„ож‡ющие конфи‰енци‡льности Вообще, имеетсfl ‰‚‡ тип‡ ‡т‡к, котоые у„ож‡ют конфи‰енци‡льности инфом‡ции: ‚меш‡тельст‚о и н‡блю‰ение з‡ т‡фиком и е„о ‡н‡лиз. Вмеш‡тельст‚о Вмеш‡тельст‚о относитсfl к неомочному ‰оступу или пеех‚‡ту ‰‡нных. Н‡пиме, ф‡йл, пе則‚‡емый чеез Интенет, может со‰еж‡ть конфи‰енци‡льную инфом‡цию. Объект, не имеющий полномочий, может п傇ть пе則чу и использть пе則‚‡емую инфом‡цию ‰лfl собст‚енной ‚ы„о‰ы. Чтобы пе‰от‚‡тить ‚меш‡тельст‚о, ‰‡нные мо„ут быть пе‰ст‡‚лены т‡к, что пеех‚‡ти‚ший не сможет понflть их. Длfl это„о пименимы мето‰ы шифниfl, пи‚о‰имые ‚ этой кни„е. Н‡блю‰ение з‡ т‡фиком и е„о ‡н‡лиз Хотfl шифние ‰‡нных может с‰ел‡ть их непонflтными ‰лfl злоумышленник‡, он, ‡н‡лизиуfl сете‚ой т‡фик, может получить некотоую ‰у„ую инфом‡цию. Н‡пиме, он может н‡йти электонный ‡‰ес (‡‰ес электонной почты) пе則тчик‡ или пиемник‡. Он может т‡кже соб‡ть п‡ы з‡посо‚ и от‚ето‚, что поможет ему понflть ‡кти‚ность ‰ейст‚ий н‡блю‰‡емой низ‡ции.
Ат‡ки, у„ож‡ющие целостности Целостности ‰‡нных можно у„ож‡ть несколькими ‚и‰‡ми ‡т‡к, т‡кими к‡к мо‰ифик‡циfl, имит‡циfl источник‡, по‚тон‡fl пе則ч‡ инфом‡ции и отк‡з от сообщениfl. Мо‰ифик‡циfl После пеы‚‡ниfl или ‰оступ‡ к инфом‡ции ‡т‡кующий изменflет инфом‡цию с опе‰еленной ‚ы„о‰ой ‰лfl себfl. Н‡пиме, клиент пе則ет сообщение б‡нку, чтобы по‚ести некотоую опе‡цию. Ат‡кующий пеы‚‡ет сообщение и изменflет тип опе‡ции, чтобы пинести этим пользу себе. Об‡тите ‚ним‡ние, что ин‡ ‡т‡кующий посто у‰‡лflет или 燉еж肇ет сообщение, чтобы 퇂е‰ить системе или из‚лечь ‚ы„о‰у из с‡мо„о ф‡кт‡ 燉ежки опе‡ции. Имит‡циfl источник‡ Имит‡циfl источник‡ (spoofing) з‡ключ‡етсfl ‚ том, что ‡т‡кующий имитиует ко„о-то, кто имеет о н‡ поиз‚о‰имые ‰ейст‚иfl. Н‡пиме, ‡т‡кующий з‡х‚‡ты‚‡ет б‡нко‚скую ке‰итную к‡точку и PIN-ко‰ клиент‡ б‡нк‡. Он может ‰ейст‚ть к‡к н‡стоflщий клиент. Ин‡ ‡т‡кующий имитиует пиемник. Н‡пиме, пользтель хочет ‚ойти ‚ конт‡кт с б‡нком, но ему пе‰ост‡‚лflетсfl ‰у„ой с‡йт, котоый имитиует, что это – б‡нк, и ‡т‡кующий получ‡ет необхо‰имую ему инфом‡цию от пользтелfl. По‚тон‡fl пе則ч‡ инфом‡ции Ду„ой ‚и‰ ‡т‡ки — по‚тон‡fl пе則ч‡ инфом‡ции (‡т‡к‡ ‚оспоиз‚е‰ениfl). Ат‡кующий получ‡ет копию сообщениfl, пе則‚‡емо„о пользтелем, и 22
В‚е‰ение
Лекциfl 1
пе則ет эту копию с целью ‰езниз‡ции поцесс‡ или попыток по‚тоить е„о. Н‡пиме, чело‚ек пе則ет з‡пос б‡нку, чтобы опл‡тить ‡боту с‚ое„о соту‰ник‡. Ат‡кующий пеех‚‡ты‚‡ет сообщение и пе則ет е„о сн, чтобы получить опл‡ту этой ‡боты от это„о б‡нк‡ еще ‡з (по‚тоно). Отк‡з от сообщениfl Этот тип ‡т‡к отлич‡етсfl от ‰у„их, потому что ‰ейст‚ие может быть ‚ыполнено о‰ной из ‰‚ух стоон с‚flзи: пе則тчиком или пиемником. Пе則тчик сообщениfl может отиц‡ть ф‡кт пе則чи. Ду„ой ‚‡и‡нт — к‡ пиемник сообщениfl отиц‡ет, что он получил сообщение. Пиме отк‡з‡ от сообщениfl пе則тчик‡: клиент б‡нк‡ пе則л з‡пос б‡нку н‡ пее‚о‰ некотоой суммы ‰ене„ тетьему лицу, но ‚после‰ст‚ии отиц‡ет, что он с‰ел‡л т‡кой з‡пос. Пиме опо‚ежениfl сообщениfl пиемником: чело‚ек, котоый покуп‡ет из‰елие у из„ото‚ителfl, пл‡тит з‡ это с помощью электоники, но из„ото‚итель позже отиц‡ет, что получил опл‡ту, и посит опл‡тить покупку.
Ат‡ки, у„ож‡ющие „ото‚ности Р‡ссмотим только о‰ну ‡т‡ку, у„ож‡ющую „ото‚ности: отк‡з ‚ обслуж肇нии. Отк‡з ‚ обслуж肇нии Отк‡з ‚ обслуж肇нии (Denial of Service — DoS) — очень общее н‡з‚‡ние ‡т‡ки. Он‡ может з‡ме‰лить или полностью п傇ть обслуж肇ние системы. Возможны несколько ст‡те„ий, чтобы ‰ости„нуть это„о. Ат‡кующий может пе則ть т‡к мно„о фикти‚ных з‡посо‚ се‚еу, что это пи‚е‰ет к сбою се‚е‡ из-з‡ ‚ысокой 퇄узки. Ат‡кующий может т‡кже п傇ть и у‰‡лить от‚ет се‚е‡ клиенту, поо扇fl у клиент‡ ‚печ‡тление, что се‚е не от‚еч‡ет. Ат‡кующий может п傇ть з‡посы от клиенто‚, поо扇fl у клиент‡ у‚еенность, что се‚е не от‚еч‡ет. Ат‡кующий может пеы‚‡ть з‡посы клиенто‚, з‡ст‡‚лflfl клиенто‚ пе則ть з‡посы мно„о ‡з и пее燄уж‡ть систему.
П‡сси‚ные и ‡кти‚ные ‡т‡ки Д‡‚‡йте тепеь ‡з‰елим ‡т‡ки н‡ ‰‚е „уппы: п‡сси‚ные и ‡кти‚ные. Т‡блиц‡ 1.1 пок‡зы‚‡ет соотношениfl меж‰у этим ‰елением и пе‰ы‰ущей кл‡ссифик‡цией. П‡сси‚ные н‡п‡‰ениfl Пи п‡сси‚ном н‡п‡‰ении цель ‡т‡кующе„о состоит ‚ том, чтобы только получить инфом‡цию. Это озн‡ч‡ет, что н‡п‡‰ение не изменflет ‰‡нные и не по‚е扇ет систему. Систем‡ по‰олж‡ет ном‡льно ‡бот‡ть, о‰н‡ко ‡т‡к‡ может н‡нести ‚е‰ пе則тчику или пиемнику сообщениfl. Ат‡ки, котоые у„ож‡ют конфи‰енци‡льности — ‚меш‡тельст‚о и н‡блю‰ение з‡ т‡фиком плюс е„о ‡н‡лиз, — fl‚лflютсfl п‡сси‚ными. Р‡скытие инфом‡ции может ‚е‰ить пе則тчику или пиемнику сообщениfl, но систему не з‡т‡„肇ет. По этой пичине ту‰23
Кус
Киптфиfl и безоп‡сность сетей
но обн‡ужить т‡кой тип н‡п‡‰ениfl, пок‡ пе則тчик или пиемник не узн‡ют об утечке конфи‰енци‡льной инфом‡ции. П‡сси‚ные н‡п‡‰ениfl, о‰н‡ко, мо„ут быть пе‰от‚‡щены шифнием ‰‡нных. Т‡блиц‡ 1.1. Кл‡ссифик‡циfl п‡сси‚ных и ‡кти‚ных ‡т‡к Ат‡ки Вмеш‡тельст‚о Н‡блю‰ение з‡ т‡фиком и е„о ‡н‡лиз Мо‰ифик‡циfl Имит‡циfl источник‡ По‚тон‡fl пе則ч‡ инфом‡ции Отк‡з от сообщениfl Отк‡з ‚ обслуж肇нии
П‡сси‚ные / Акти‚ные П‡сси‚ные
У„оз‡ Конфи‰енци‡льности
Акти‚ные
Целостности
Акти‚ные
Гото‚ности
Акти‚ные ‡т‡ки Акти‚ные ‡т‡ки изменflют ‰‡нные или по‚е扇ют систему. Ат‡ки, котоые у„ож‡ют целостности или „ото‚ности, — ‡кти‚ные. Акти‚ные ‡т‡ки обычно ле„че обн‡уж肇ютсfl, чем пе‰от‚‡щ‡ютсfl, потому что ‡т‡кующий может н‡чин‡ть их ‡знооб‡зными метми.
1.3. Услу„и и мех‡низмы Меж‰ун‡о‰ный Союз Электос‚flзи, Секциfl Ст‡н‰‡то‚ по телекоммуник‡ции (ITU-T) (см. пиложение B) ‡з‡бот‡л ст‡н‰‡ты некотоых служб безоп‡сности и некотоые мех‡низмы1 ‰лfl осущест‚лениfl этих услу„. Службы инфом‡ционной безоп‡сности и мех‡низмы близко с‚flз‡ны, потому что мех‡низм или комбин‡циfl мех‡низмо‚ пименflютсfl, чтобы обеспечить обслуж肇ние. Мех‡низм может использтьсfl ‚ о‰ной или нескольких услу„‡х. З‰есь эти мех‡низмы к‡тко обсу扇ютсfl, чтобы понflть их общую и‰ею. Д‡лее они бу‰ут ‡ссмотены более по‰обно.
Услу„и инфом‡ционной безоп‡сности ITU-T (X.800) опе‰елил пflть услу„, с‚flз‡нных с целflми инфом‡ционной безоп‡сности и ‡т‡к‡ми, типы котоых мы опе‰елили ‚ пе‰ы‰ущих секциflх. Рисунок 1.3 пок‡зы‚‡ет кл‡ссифик‡цию пflти общих услу„. Чтобы пе‰от‚‡тить ‡т‡ки н‡ инфом‡ционную безоп‡сность, о котоых мы „о‚оили, 퇉о посто иметь о‰ну или больше пок‡з‡нных ниже услу„ ‰лfl о‰но„о или больше„о количест‚‡ целей инфом‡ционной безоп‡сности.
1
Мех‡низм – ‡л„оитм или поце‰у‡, осннные н‡ ‚ыполнении fl‰‡ ш‡„о‚, котоые сле‰уют ‰у„ з‡ ‰у„ом (пим. е‰.). 24
В‚е‰ение
Лекциfl 1
Рис. 1.3. Услу„и инфом‡ционной безоп‡сности Конфи‰енци‡льность ‰‡нных Конфи‰енци‡льность ‰‡нных ‡з‡бот‡н‡, чтобы з‡щитить ‰‡нные от попытки их ‡скытиfl. Эт‡ шиок‡fl услу„‡, опе‰еленн‡fl ‚ екоме퉇ции ITU-T(X.800). Он‡ может ох‚‡ты‚‡ть конфи‰енци‡льность цело„о сообщениfl или е„о ч‡сти, ‡ т‡кже з‡щищ‡ет от н‡блю‰ениfl з‡ т‡фиком и е„о ‡н‡лиз‡ — собст‚енно, он‡ соз‰‡н‡ ‰лfl пе‰от‚‡щениfl ‚меш‡тельст‚‡ и н‡блю‰ениfl з‡ т‡фиком. Целостность ‰‡нных Целостность ‰‡нных ‡з‡бот‡н‡ ‰лfl з‡щиты ‰‡нных от мо‰ифик‡ции, ‚ст‡‚ки, у‰‡лениfl и по‚тоной пе則чи инфом‡ции поти‚ником. Он‡ может з‡щищ‡ть целое сообщение или ч‡сть сообщениfl. Уст‡но‚ление по‰линности (‡утентифик‡циfl) Эт‡ услу„‡ обеспеч肇ет уст‡но‚ление по‰линности (‡утентифик‡цию) опе‡то‡ н‡ ‰у„ом конце линии. Пи сое‰инении, оиентинном н‡ по‰ключение, он‡ „‡‡нтиует уст‡но‚ление по‰линности пе則тчик‡ или пиемник‡ ‚ течение уст‡но‚лениfl сое‰инениfl (уст‡но‚ление по‰линности объекто‚ ‡‚но„о уо‚нfl). Пи сое‰инении без уст‡но‚лениfl по‰ключениfl он‡ по‰т‚е扇ет по‰линность источник‡ ‰‡нных (уст‡но‚ление по‰линности поисхож‰ениfl ‰‡нных). Исключение отк‡з‡ от сообщений Ус лу „‡ ис клю чение от к‡ з‡ от со об щений з‡ щищ‡ ет от от к‡з‡ от со об ще ниfl пе則т чиком или пием ником ‰‡н ных. Пи исклю че нии от к‡ з‡ от со об щениfl пе則т чиком пием ник ‰‡н ных мо жет потом ‰о к‡ з‡ть поис хож ‰ение сооб щениfl, ис пользуfl опозн‡ ‚‡ тельный ко‰ (и‰ен тифик‡ то) пе е ‰‡т чик‡. Пи ис клю чении от к‡ з‡ от со об щений пием ником пее ‰‡т чик, ис пользуfl по‰ т‚еж ‰е ние ‰о ст‡‚ки, может потом ‰о к‡ з‡ть, что ‰‡н ные ‰о ст‡‚лены пе‰ н‡з н‡ чен но му полу ч‡ телю. Уление ‰оступом Уление ‰оступом обеспеч肇ет з‡щиту поти‚ неомочно„о ‰оступ‡ к ‰‡нным. Доступ ‚ этом опе‰елении — темин очень шиокий и может ‚ключ‡ть чтение, з‡пись, изменение ‰‡нных, з‡пуск ‚ыполнениfl пммы и т‡к ‰‡лее. 25
Кус
Киптфиfl и безоп‡сность сетей
Мех‡низмы безоп‡сности Длfl обеспечениfl услу„ инфом‡ционной безоп‡сности ст‡н‰‡т ITU-T (X.800) екомен‰ует некотоые мех‡низмы безоп‡сности, опе‰еленные ‚ пе‰ы‰ущей секции. Рисунок 1.4 ‰‡ет кл‡ссифик‡цию этих мех‡низмо‚. Шифние З‡секеч肇fl или ‡ссекеч肇fl ‰‡нные, можно „‡‡нтить конфи‰енци‡льность. Шифние т‡кже ‰ополнflет ‰у„ие мех‡низмы, котоые обеспеч肇ют ‰у„ие услу„и. Се„о‰нfl ‰лfl шифниfl используютсfl ‰‚‡ мет: киптфиfl и ст儇нфиfl1 — т‡йнопись (steganography). Мы коотко обсу‰им их ‚ ‰‡льнейшем. Целостность ‰‡нных Мех‡низм целостности ‰‡нных ‰оᇂлflет ‚ конце ‰‡нных кооткий контольный пизн‡к (check value), котоый со片етсfl опе‰еленным поцессом от‰ельно от ‰‡нных. Пиемник получ‡ет ‰‡нные и контольный пизн‡к. Н‡ осннии полученных ‰‡нных он со片ет но‚ый контольный пизн‡к и с‡‚н肇ет только что со片нный с полученным. Если эти ‰‚‡ контольных пизн‡к‡ со‚‡ют, целостность ‰‡нных был‡ сох‡нен‡. Цифfl по‰пись Цифfl по‰пись — се‰ст‚о, котоым отитель может с помощью электоники по‰пис‡ть ‰‡нные, ‡ пиемник может с помощью компьюте‡ по‚еить по‰пись. Отитель использует поцесс, котоый может ук‡з‡ть, что эт‡ по‰пись имеет ч‡стный ключ, ‚ыб‡нный из обще‰оступных ключей, котоые были объfl‚лены публично ‰лfl обще„о пользниfl. Пиемник использует обще‰оступный ключ отителfl, чтобы ‰ок‡з‡ть, что сообщение ‰ейст‚ительно по‰пис‡но отителем, котоый ут‚е扇ет, что посл‡л сообщение. Обмен сообщениflми ‰лfl опоз퇂‡ниfl Пи обмене сообщениflми ‰лfl опоз퇂‡ниfl ‰‚‡ объект‡ обмен肇ютсfl некотоыми сообщениflми, чтобы ‰ок‡з‡ть, что эти объекты из‚естны ‰у„ ‰у„у. Н‡пиме, о‰но юи‰ическое лицо может ‰ок‡з‡ть, что оно зн‡ет т‡йный пизн‡к, котоый только оно может зн‡ть (ск‡жем, после‰нее место ‚стечи с п‡тнеом). З‡полнение т‡фик‡ З‡полнение т‡фик‡ озн‡ч‡ет ‚озможность ‚ст‡‚лflть ‚ т‡фик ‰‡нных некотоые фикти‚ные ‰‡нные, чтобы сть попытки злоумышленнико‚ использть е„о ‰лfl ‡н‡лиз‡. 1
Ст儇нфиfl (т‡йнопись) – н‡ук‡ о скытой пе則че инфом‡ции путем сокытиfl с‡мо„о ф‡кт‡ пе則чи. В отличие от киптфии, кото‡fl скы‚‡ет со‰еж‡ние сообщениfl, ст儇нфиfl скы‚‡ет сущест‚ние сообщениfl. 26
В‚е‰ение
Лекциfl 1
Рис. 1.4. Мех‡низмы инфом‡ционной безоп‡сности Уление м‡шутиз‡цией Уление м‡шутиз‡цией озн‡ч‡ет ‚ыбо и непеы‚ное изменение ‡зличных ‰оступных м‡шуто‚ меж‰у отителем и пиемником ‰лfl то„о, чтобы пепflтст‚ть поти‚нику ‚ пеех‚‡те инфом‡ции н‡ опе‰еленном м‡шуте. До‚еенность До‚еенность озн‡ч‡ет ‚ыбо тетьей стооны, с целью ‰о‚еить ей контоль обменом меж‰у ‰‚умfl объект‡ми. Это может быть с‰ел‡но, н‡пиме, ‰лfl то„о, чтобы пе‰от‚‡тить отк‡з от сообщениfl. Пиемник может ‚о‚лечь тетью стоону, котоой можно ‰о‚еить х‡нение з‡посо‚ отителfl и тем с‡мым пе‰от‚‡тить после‰ующее отиц‡ние отителем ф‡кт‡ пе則чи сообщениfl. 27
Кус
Киптфиfl и безоп‡сность сетей
Уление ‰оступом Уление ‰оступом и‰ок‡зы‚‡ет с‚оими метми, что пользтель имеет п‡‚о ‰оступ‡ к ‰‡нным или есус‡м, пи퇉леж‡щим системе. Пимеы т‡ко„о ‰ок‡з‡тельст‚‡ — п‡оли и PIN-ко‰ы.
Соотношение меж‰у услу„‡ми и мех‡низм‡ми Т‡блиц‡ 1.2 пок‡зы‚‡ет соотношение меж‰у услу„‡ми и мех‡низм‡ми инфом‡ционной безоп‡сности. Пи‚е‰ены ти мех‡низм‡ (шифние, цифfl по‰пись и обмен сообщениflми ‰лfl опоз퇂‡ниfl), котоые мо„ут использтьсfl ‰лfl то„о, чтобы обеспечить у‰осто‚еение по‰линности. Т‡блиц‡ т‡кже пок‡зы‚‡ет, что шифние может использтьсfl пи тех услу„‡х (конфи‰енци‡льности ‰‡нных, целостности ‰‡нных и ‡утентифик‡ции). Т‡блиц‡ 1.2. Соотношение меж‰у услу„‡ми безоп‡сности и мех‡низм‡ми обеспечениfl безоп‡сности Услу„‡ безоп‡сности Конфи‰енци‡льность ‰‡нных Целостность ‰‡нных По‚ек‡ полномочий Исключение отк‡з‡ от сообщений Уление ‰оступом
Мех‡низм обеспечениfl безоп‡сности Шифние и уление м‡шутиз‡цией Шифние, цифfl по‰пись, контольные пизн‡ки целостности ‰‡нных Шифние, цифfl по‰пись, уст‡но‚ление омочности изменений Цифfl по‰пись, целостность ‰‡нных и ‰о‚еенность Мех‡низм улениfl ‰оступом
1.4. Мето‰ы Мех‡низмы, котоые мы ‡ссмотели ‚ пе‰ы‰ущих секциflх, — это только теоетические ецепты. Длfl е‡лиз‡ции инфом‡ционной безоп‡сности тебуетсfl небольшое число мето‰о‚. Д‚‡ из них н‡иболее ‡спост‡нены: о‰ин общий (киптфиfl) и о‰ин специфический (ст儇нфиfl).
Киптфиfl Некотоые мех‡низмы инфом‡ционной безоп‡сности, пеечисленные ‚ пе‰ы‰ущей секции, мо„ут быть е‡лизны с помощью киптфии. Киптфиfl, сло‚о с „еческим поисхож‰ением, озн‡ч‡ет «т‡йн‡ н‡пис‡нно„о». О‰н‡ко мы используем этот темин, чтобы обозн‡чить н‡уку и искусст‚о пеоб‡зниfl сообщений, котоые ‰ел‡ют их безоп‡сными и п艇ют иммунитет к ‡т‡к‡м. Хотfl ‚ пошлом киптфиfl з‡ключ‡л‡сь только ‚ шифнии и ‰ешифнии сообщений с пименением секетных ключей, се„о‰нfl он‡ опе‰елflетсfl к‡к со‚окупность тех ‡зличных мех‡низмо‚: шифние симметичными ключ‡ми, шифние ‡симметичными ключ‡ми и хэшиние. Ниже к‡тко ‡ссмотим эти ти мех‡низм‡. 28
В‚е‰ение
Лекциfl 1
Шифние симметичными ключ‡ми Шифние симметичными ключ‡ми ин‡ н‡зы‚‡ют шифнием c секетным ключом или киптфией с секетным ключом. Н‡пиме, объект, н‡зо‚ем е„о Алис‡, может пе則ть сообщение ‰у„ому объекту, котоый н‡зы‚‡етсfl Боб, по оп‡сному к‡н‡лу, ‰лfl то„о, чтобы ее поти‚ник, котоый именуетсfl Е‚‡, не смо„ понflть со‰еж‡ние сообщениfl, посто по‰слуш‡‚ е„о по к‡н‡лу. Алис‡ з‡шифо‚‡л‡ сообщение, используfl ‡л„оитм шифниfl; Боб ‡сшифо‚ы‚‡ет сообщение, используfl ‡л„оитм ‡сшифо‚ки. В шифнии симметичными ключ‡ми пименflетсfl е‰инст‚енный ключ з‡секеч肇ниfl и ‰лfl шифниfl, и ‰лfl ‡сшифо‚ки. Шифние/‰ешифние можно пе‰ст‡‚ить к‡к электонный з‡мок. Пи шифнии симметичным ключом Алис‡ помещ‡ет сообщение ‚ блок и з‡кы‚‡ет блок, используfl со‚местный ключ з‡секеч肇ниfl; Боб отпи‡ет з‡мок ‰у„им экземплflом то„о же ключ‡ и из‚лек‡ет сообщение. Шифние ‡симметичными ключ‡ми Пи шифнии ‡симметичными ключ‡ми (ин‡ н‡зы‚‡емом шифнием с откытыми ключ‡ми или киптфией с откытыми ключ‡ми) ситу‡циfl почти т‡к‡fl же, что и пи шифнии симметичными ключ‡ми, но с небольшой ‡зницей. Мы имеем ‰‚‡ ключ‡ ‚место о‰но„о: из них о‰ин откытый ключ (public key), ‰у„ой — ин‰и‚и‰у‡льный или секетный (private key). Длfl то„о чтобы пе則ть з‡щищенное сообщение Бобу, Алис‡ сн‡ч‡л‡ з‡шифо‚‡л‡ сообщение, используfl откытый ключ Боб‡. Чтобы ‡сшифо‚ы‚‡ть сообщение, Боб использует с‚ой собст‚енный секетный ключ. Хэшиние Пи хэшинии из сообщениfl пееменной ‰лины может быть соз‰‡н ‰‡й‰жест1 фиксинной ‰лины, обычно н‡мно„о меньше„о ‡зме‡, чем исхо‰ное сообщение. Сообщение и ‰‡й‰жест нужно пе則ть Бобу. Д‡й‰жест используетсfl, чтобы обеспечить по‚еку целостности ‰‡нных, кото‡fl обсу扇л‡сь ‡ньше.
Ст儇нфиfl Хотfl эт‡ кн脇 б‡зиуетсfl н‡ киптфии к‡к мето‰ике е‡лиз‡ции мех‡низмо‚ безоп‡сности, но ‚се же к‡тко ‡ссмотим ‰у„ую мето‰ику, кото‡fl ‚ пошлом использл‡сь ‰лfl з‡секеч肇ниfl с‚flзи. В н‡стоflщее ‚емfl он‡ — ст儇нфиfl — сн ‚осст‡н‡‚л肇етсfl. Это сло‚о поисхо‰ит от „еческо„о н‡з‚‡ниfl и озн‡ч‡ет «з‡кытую з‡пись», ‚ отличие от киптфии, озн‡ч‡ющей «секетную з‡пись». Киптфиfl скы‚‡ет со‰еж‡ние сообщение путем шифниfl. Ст儇нфиfl скы‚‡ет с‡мо сообщение непосе‰ст‚енно, з‡кы‚‡fl е„о чем-нибу‰ь. Истоические пимеы использниfl Истоиfl полн‡ ф‡кто‚ и мифо‚ об использнии ст儇нфии. В Кит‡е ‚оенные сообщениfl пис‡лись н‡ куск‡х тонч‡йше„о шелк‡ и з‡к‡ты‚‡лись ‚ м‡1
Д‡й‰жест (digest) — кооткое шифнное сообщение, пе則‚‡емое по к‡н‡лу с‚flзи ‚месте с нез‡шифнным сообщением и 脇ющее оль цифо‚ой по‰писи. 29
Кус
Киптфиfl и безоп‡сность сетей
ленький ш‡, котоый „лот‡л посыльный. В Риме и Геции сообщениfl ‚ыез‡лись н‡ кусочк‡х ‰е‚есины, котоые потом опуск‡лись ‚ ‚оск, чтобы з‡кыть з‡пись. Т‡кже использлись не‚и‰имые ченил‡ (т‡кие к‡к луко‚ый сок или соли ‡мми‡к‡) ‰лfl з‡писи секетно„о сообщениfl меж‰у сток‡ми безоби‰но„о текст‡ или ‚ конце бу쇄и; секетное сообщение ‚ыступ‡ло, к‡ эт‡ бу쇄‡ 퇄傇л‡сь или об‡б‡ты‚‡л‡сь к‡ким-то ‚ещест‚ом. Н則‚но были изобетены ‰у„ие мето‰ы. В некотоые безоби‰ные письм‡ мо„ли бы быть ‚пис‡ны сообщениfl по‚ех письм‡, ꇇ퉇шом, сле‰ котоо„о ‚и‰им только т‡, к‡ текст помещен по‰ flкий источник с‚ет‡ по‰ у„лом. Нуле‚ые шифы использлись, чтобы скыть секетное сообщение ‚ без‚е‰ном сообщении. Н‡пиме, секетное сообщение можно сост‡‚ить, если п傇fl или ‚то‡fl буꂇ ‚ к‡ж‰ом сло‚е бесполезн‡, ‡ только з‡кы‚‡ет истинное сообщение. Микоточки т‡кже пименflлись ‰лfl этой цели. Секетные сообщениfl были сфотфины и уменьшены ‰о ‡зме‡ точки и ‚ст‡и‚‡лись ‚ постые сообщениfl или пеио‰ически ‚ст‡‚лflлись ‚ конце пе‰ложениfl. Со‚еменное использние Се„о‰нfl люб‡fl фом‡ ‰‡нных, т‡к‡fl к‡к текст, изоб‡жение, ‡у‰ио- или ‚и‰еоинфом‡циfl, может быть пее‚е‰ен‡ ‚ цифо‚ую фому, и ‚о ‚емfl пеоб‡зниfl ‚ цифо‚ую фому или об‡ботки можно ‚ общие ‰‡нные ‚ст‡‚ить секетную ‰‚оичную инфом‡цию. Т‡к‡fl скыт‡fl инфом‡циfl не обflз‡тельно используетсfl ‰лfl сох‡нениfl т‡йны. Он‡ может т‡кже пименflтьсfl к‡к пометк‡, чтобы з‡щитить ‡‚тоское о, пе‰от‚‡тить ‚меш‡тельст‚о или ‚нести ‰ополнительную инфом‡цию, комментиующую текст ‰лfl некое„о получ‡телfl. Скы‚‡ющие тексты. Длfl нез‡метной пе則чи секетных ‰‡нных может быть 燉ейст‚н обычный текст. Есть несколько путей. О‰ин из них — ‚ст‡‚к‡ ‰‚оичных сим‚оло‚. Н‡пиме, мы можем использть побел меж‰у слми. Чтобы пе‰ст‡‚ить ‰‚оичную цифу 0, используетсfl о‰иночный побел — и ‰‚‡ побел‡, чтобы пе‰ст‡‚ить ‰‚оичную цифу 1. Пе‰ст‡‚ленное ниже кооткое сообщение скы‚‡ет ‰‚оичное 8-бито‚ое пе‰ст‡‚ление бук‚ы A (01000001) ‚ ко‰е ASCII. Это учебник по изучению киптфии, ‡ не по ст儇нфии 0
1
0
0
0 0 0
1
В сообщении, котоое пи‚е‰ено ‚ыше, ‰‚‡ побел‡ со‰еж‡тсfl меж‰у слми «учебник» и «по» и меж‰у «по» и «ст儇нфиfl». Конечно, усложненное пммное обеспечение может ‚ст‡‚ить побелы, котоые ‡злич‡ютсfl миним‡льно, чтобы скыть ко‰ от непосе‰ст‚енно„о ‚изу‡льно„о ‡споз퇂‡ниfl. Ду„ой, более эффекти‚ный мето‰ использует сль сло‚, низнных со„л‡сно их „‡мм‡тическим зн‡чениflм (ч‡стflм ечи). Мы можем, н‡пиме, иметь сль, со‰еж‡щий 2 местоимениfl, 16 „뇄оло‚, 32 сущест‚ительных. З‡ к‡ж‰ым пе‰ст‡‚ителем это„о слfl з‡кеплен ко‰. Пе‰положим, что пе‚ый бит ‰‚оичных ‰‡нных может быть пе‰ст‡‚лен местоимением, к‡ж‰ое из котоых имеет ко‰ (н‡пиме, «Я» — это 0, ‡ «мы» — это 1). Сле‰ующие пflть би30
В‚е‰ение
Лекциfl 1
то‚ мо„ут быть пе‰ст‡‚лены сущест‚ительным (по‰леж‡щим ‚ пе‰ложении). В н‡шем пимее можно обозн‡чить ко‰ 10010 сло‚ом «шофе». Сле‰ующие четые бит‡ мо„ут быть пе‰ст‡‚лены „뇄олом, (‚ пимее — сло‚ом «‚е‰у», котоое пе‰ст‡‚лflет ко‰ 0001), и после‰ние пflть бит — ‰у„им сущест‚ительным (‰ополнение). В н‡шем пимее «м‡шину» — озн‡ч‡ет ко‰ 001001. Т‡ можно ‰о„о‚оитьсfl использть скы‚‡ющий текст, котоый ‚с儉‡ пименflет пе‰ложениfl местоимение — сущест‚ительное — „뇄ол — сущест‚ительное. Секетные ‰‚оичные ‰‡нные мо„ут быть ‡з‰елены н‡ куски н‡ 16 бито‚. Н‡пиме, секетное сообщение «Hi», котоое ‚ ASCII отоб‡ж‡етсfl 0 10010 0001 001001, мо„ло быть з‡секечено сле‰ующим пе‰ложением: Я шофе ‚е‰у м‡шину 0 10010 0001 001001 Это — очень ти‚и‡льный пиме. Ре‡льный по‰хо‰ использует более усложненный ‡л„оитм и большее ‡знооб‡зие пименflемых сло‚ ‰лfl о‰но„о и то„о же к. Мето‰ы скытиfl, использующие изоб‡жениfl. Д‡нные мо„ут быть скыты ‰у„им ц‚етным изоб‡жением. Пее‚е‰енные ‚ цифо‚ую фому изоб‡жениfl состоflт из пикселей1 (элемент к‡тинки), ‚ котоом обычно к‡ж‰ый пиксель использует 24 бит‡ (ти б‡йт‡). К‡ж‰ый б‡йт пе‰ст‡‚лflет о‰ин из пе‚ичных ц‚ето‚ (к‡сный, зеленый или синий). Мы можем поэтому иметь 28 ‡зличных оттенко‚ к‡ж‰о„о ц‚ет‡. В мето‰е, н‡з‚‡нном LSB (Last Significant Bit), с‡мый м뇉ший бит к‡ж‰о„о б‡йт‡ уст‡но‚лен н‡ нуль. От это„о изоб‡жение ст‡но‚итсfl немно„о с‚етлее ‚ некотоых обл‡стflх, но это обычно не з‡меч‡етсfl. Тепеь мы можем скыть ‰‚оичные ‰‡нные ‚ изоб‡жении, сох‡нflfl или изменflfl с‡мый м뇉ший бит. Если н‡ш‡ ‰‚оичн‡fl циф‡ — 0, мы сох‡нflем бит; если это — 1, мы изменflем бит н‡ 1. Этим способом мы можем скыть сим‚ол (‚осемь бито‚ ASCII) ‚ тех пикселflх. После‰ний бит после‰не„о пикселfl не учиты‚‡етсfl. Н‡пиме, сле‰ующие ти пикселfl мо„ут пе‰ст‡‚ить л‡тинскую бук‚у M (4D16 или, ‚ ‰‚оичной системе, 0100 1101): 01010010 01011111 01111110
10111100 10111101 01001011
01010100 01100101 00010100
Ду„ие мето‰ы скытиfl. Возможны т‡кже ‰у„ие мето‰ы скытиfl. Секетное сообщение, н‡пиме, может быть з‡кыто ‡у‰ио- (з‚ук и музык‡) и ‚и‰еоинфом‡цией. И ‡у‰ио, и ‚и‰ео се„о‰нfl п儇ютсfl сж‡тию. Секетные ‰‡нные мо„ут быть ‚несены ‚ инфом‡цию ‚ поцессе или пее‰ сж‡тием. Тепеь мы пек‡щ‡ем обсуж‰ение этих мето‰о‚ и екомен‰уем интеесующимсfl более специ‡лизинную лите‡туу по ст儇нфии. 1
Пиксел (pixel – picture element) – н‡именьший ‡‰есуемый элемент изоб‡жениfl или точк‡ н‡ эк‡не, кото‡fl может иметь ‡зличную flкость и ц‚ет. 31
Кус
Киптфиfl и безоп‡сность сетей
1.5. Ост‡льные ч‡сти кни„и Ост‡льной текст этой кни„и ‡з‰елен н‡ четые ч‡сти.
П傇fl ч‡сть: Шифние симметичными ключ‡ми П傇fl ч‡сть ‡ссм‡т肇ет ‰‚‡ тип‡ шифниfl: и кл‡ссическое, и со‚еменное, с использнием шифниfl симметичными ключ‡ми. Лекции этой ч‡сти пок‡зы‚‡ют, к‡к с помощью этой мето‰ики может быть е‡лизо‚‡н‡ п傇fl цель безоп‡сности.
Вто‡fl ч‡сть: Шифние ‡симметичными ключ‡ми Лекции ‚тоой ч‡сти обсу扇ют шифние ‡симметичными ключ‡ми. Эти лекции т‡кже пок‡зы‚‡ют, к‡к п傇fl цель безоп‡сности может быть ‰ости„нут‡ с помощью этой мето‰ики.
Тетьfl ч‡сть: целостность, уст‡но‚ление по‰линности и ключе‚ое уление Лекции тетьей ч‡сти ‡сск‡зы‚‡ют о тетьем мето‰е шифниfl — хэшинии — и пок‡зы‚‡ют, к‡к это может быть объе‰инено с м‡теи‡л‡ми, о котоых шл‡ ечь ‚ ч‡стflх I и II пи осущест‚лении ‚тоой цели безоп‡сности.
Чет‚ет‡fl ч‡сть: Сет傇fl безоп‡сность Лекции чет‚етой ч‡сти пок‡зы‚‡ют, к‡к мето‰ы, ‡ссмотенные ‚ пе‚ых тех ч‡стflх кни„и, мо„ут быть объе‰инены ‰лfl со片ниfl сете‚ой безоп‡сности, используfl мо‰ель Интенет.
1.6. Рекомен‰о‚‡нное чтение Длfl более ‰ет‡льно„о озн‡комлениfl с пе‰мет‡ми, о котоых шл‡ ечь ‚ этой лекции, н‡чин‡ющим можно екомен‰о‚‡ть нижесле‰ующие кни„и и с‡йты. Сим‚олы, з‡ключенные ‚ скобки, ‡ссм‡т肇ютсfl к‡к ссылки к списку лите‡туы ‚ конце кни„и. Кни„и Несколько кни„ ‡ссм‡т肇ют цели безоп‡сности, н‡п‡‰ениfl и мех‡низмы. Мы екомен‰уем [Bis05]и [Sta06]. | С‡йты Больше инфом‡ции о тем‡х, обсуж‰енных ‚ этой лекции, ‰‡ют сле‰ующие с‡йты: http://www.faqs.org/rfcs/rfc2828.html http://www. fag.grm.hia.no/IKT7000/litteratur/paper/x800.pdf 32
В‚е‰ение
Лекциfl 1
1.7. Ито„и • Длfl инфом‡ционной безоп‡сности были опе‰елены ти „л‡‚ные цели: конфи‰енци‡льность, целостность и „ото‚ность. • Конфи‰енци‡льности инфом‡ции у„ож‡ют ‰‚‡ тип‡ ‡т‡к: ‚меш‡тельст‚о — и н‡блю‰ение з‡ т‡фиком и е„о ‡н‡лиз. Четые тип‡ ‡т‡к мо„ут у„ож‡ть целостности инфом‡ции: мо‰ифик‡циfl, имит‡циfl источник‡, по‚тон‡fl пе則ч‡ инфом‡ции и отк‡з от сообщениfl. Ат‡к‡ «пек‡щение обслуж肇ниfl з‡пос‡» у„ож‡ет „ото‚ности инфом‡ции. • О„‡низ‡ции, котоые з‡ним‡ютсfl пе則чей ‰‡нных и со片нием сетей, т‡кие к‡к ITU-T или Internet Forum, опе‰елили несколько служб безоп‡сности, пе‰н‡зн‡ченных ‰лfl целей инфом‡ционной безоп‡сности и з‡щиты от ‡т‡к. В этой лекции ‡ссм‡т肇лись пflть общих служб безоп‡сности: конфи‰енци‡льность ‰‡нных, целостность ‰‡нных, уст‡но‚ление по‰линности, исключение отк‡з‡ от сообщений и уление ‰оступом. • ITU-T т‡кже екомен‰ует некотоые мех‡низмы обеспечениfl безоп‡сности. В лекции ‡ссмотены ‚осемь из этих мех‡низмо‚: шифние, целостность ‰‡нных, цифfl по‰пись, уст‡но‚ление омочности изменений, з‡полнение т‡фик‡, уление м‡шутиз‡цией, ‰о‚еенность и уление ‰оступом. • Есть ‰‚‡ мет — киптфиfl и ст儇нфиfl, котоые мо„ут е‡лизть некотоые или ‚се мех‡низмы. Киптфиfl или «т‡йное письмо» ‚ключ‡ет скемблиние сообщениfl или со片ние ‰‡й‰жест‡ сообщениfl. Ст儇нфиfl, или «з‡кыт‡fl з‡пись», озн‡ч‡ет, что сообщение скы‚‡етсfl и з‡кы‚‡етсfl ‰у„ой инфом‡цией.
1.8. Н‡бо ‰лfl п‡ктики Обзоные ‚опосы 1. Опе‰елите ти цели безоп‡сности. 2. Ук‡жите ‡зличие меж‰у п‡сси‚ными и ‡кти‚ными ‡т‡к‡ми н‡ секетную инфом‡цию. Н‡зо‚ите некотоые п‡сси‚ные ‡т‡ки. Н‡зо‚ите некотоые ‡кти‚ные ‡т‡ки. 3. Пеечислите и опе‰елите пflть служб безоп‡сности, ‡ссмотенные ‚ этой лекции. 4. Опе‰елите ‚осемь мех‡низмо‚ безоп‡сности, ‡ссмотенные ‚ этой лекции. 5. Ук‡жите ‡зличие меж‰у шифнием и ст儇нфией.
Уп‡жнениfl 1. К‡к‡fl служб‡(ы) безоп‡сности „‡‡нтиуетсfl пи использнии к‡ж‰о„о из сле‰ующих мето‰о‚ пеесылки по почте ‚ почто‚ом от‰елении? a. Обычн‡fl почт‡ b. Обычн‡fl почт‡ с по‰т‚еж‰ением ‰ост‡‚ки 33
Кус
Киптфиfl и безоп‡сность сетей
c. Обычн‡fl почт‡ с ‰ост‡‚кой и по‰писью получ‡телfl d. З‡к‡зное письмо e. Почт‡ с объfl‚ленной ценностью f. З‡е„истинн‡fl коеспон‰енциfl 2. Опе‰елить тип ‡т‡ки н‡ секетную инфом‡цию ‚ к‡ж‰ом из сле‰ующих случ‡е‚: a. Сту‰ент поник‡ет ‚ офис пофессо‡, чтобы получить копию тест‡, котоый бу‰ет по‚е‰ен н‡ сле‰ующий ‰ень. b. Сту‰ент ‰‡ет чек н‡ получение ‰ене„ н‡ 10$, чтобы купить уже по‰еж‡нную кни„у. Потом он узн‡ет, что по чеку было получено 100$. c. Сту‰ент пе則ет сотни з‡посо‚ ‚ ‰ень, используfl ф‡льши‚ый об‡тный ‡‰ес телефон‡ ‰у„о„о сту‰ент‡. 3. К‡кие мех‡низм(ы) безоп‡сности е‡лизны ‚ к‡ж‰ом из сле‰ующих случ‡е‚? a. Уни‚еситет тебует и‰ентифик‡то сту‰ент‡ и п‡оль, чтобы поз‚олить сту‰енту получить ‰оступ ‚ школьный се‚е. b. Уни‚еситетский се‚е ‡зъе‰инflет сту‰ент‡, если он получил ‰оступ ‚ систему более чем ‰‚‡ ч‡с‡ н‡з‡‰. c. Пофессо отк‡зы‚‡етсfl пе則ть оценки электонной почтой сту‰ент‡м, если они не соот‚етст‚уют сту‰енческой и‰ентифик‡ции, 燇нее н‡зн‡ченной пофессоом. d. Б‡нк тебует по‰писи клиент‡ ‰лfl изъflтиfl клиентом ‰ене„. 4. К‡к‡fl мето‰ик‡ (киптфиfl или ст儇нфиfl) используетсfl ‚ к‡ж‰ом из сле‰ующих случ‡е‚ ‰лfl з‡щиты конфи‰енци‡льности? a. Сту‰ент пишет от‚еты н‡ билеты н‡ м‡леньком листочке бу쇄и, бу쇄‡ с‚еты‚‡етсfl и ‚ст‡‚лflетсfl ‚ ш‡ико‚ую учку, ‡ учк‡ пе則етсfl ‰у„ому сту‰енту. b. Чтобы пе則ть сообщение, шпион з‡менflет к‡ж‰ый сим‚ол ‚ сообщении сим‚олом, котоый был со„л‡сн 燇нее к‡к з‡мен‡ ‰у„о„о сим‚ол‡. с. Комп‡ниfl использует специ‡льные ченил‡ н‡ с‚оих чек‡х, чтобы пе‰от‚‡тить пелки. d. Аспи‡нтк‡ использует ‚о‰flные зн‡ки, чтобы з‡щитить с‚ою ‡боту, кото‡fl ‚ы‚ешен‡ н‡ ее с‡йте. 5. К‡кой мех‡низм(ы) безоп‡сности е‡лизуетсfl, к‡ чело‚ек по‰писы‚‡ет фому пи з‡полнении з‡fl‚лениfl н‡ ке‰итную к‡ту?
34
Лекциfl 2
М‡тем‡тик‡ киптфии. Ч‡сть I. Мо‰ульн‡fl ‡ифметик‡, с‡‚нениfl
Ч‡сть 1. Шифние симметичными ключ‡ми В лекции 1 (В‚е‰ение) мы ‚и‰ели, что киптфиfl е‡лизуетсfl с помощью тех мето‰о‚: шифы с симметичным ключом, шифы с ‡симметичными ключ‡ми, и хэшиние. П傇fl ч‡сть пос‚flщен‡ шиф‡м с симметичным ключом. Лекции 2 и 4 ‡ссм‡т肇ют м‡тем‡тические осно‚ы, необхо‰имые ‰лfl то„о, чтобы понflть ост‡льное со‰еж‡ние этой ч‡сти. Лекциfl 3 иссле‰ует т‡‰иционные шифы, использ‚шиесfl ‚ пошлом. Лекции 5, 6, и 7 пок‡зы‚‡ют блочные шифы, котоые пименflютсfl се„о‰нfl. Лекциfl 8 пок‡зы‚‡ет, к‡к со‚еменные блочные шифы и шифы потоко‚ мо„ут пименflтьсfl ‰лfl шифниfl ‰линных сообщений. Лекциfl 2: М‡тем‡тик‡ киптфии: Ч‡сть I Лекциfl 2 ‡ссм‡т肇ет некотоые м‡тем‡тические понflтиfl, необхо‰имые ‰лfl поним‡ниfl сле‰ующих нескольких лекций, к‡к то: ‡ифметику целых чисел и с‡‚нениfl по мо‰улю m, м‡тицы и кон„уэнтные отношениfl. Лекциfl 3: Т‡‰иционные шифы с симметичным ключом Лекциfl 3 ‚‚о‰ит т‡‰иционные шифы с симметичным ключом. Хотfl эти шифы не используютсfl се„о‰нfl, они – осно‚ы со‚еменных шифо‚ с симметичным ключом. Эт‡ лекциfl по‰чек肇ет ‰‚е к‡те„оии т‡‰иционных шифо‚: шифы з‡мены и шифы пеемещениfl. Он‡ т‡кже ‚‚о‰ит понflтиfl шифо‚ поток‡ и блочных шифо‚. Лекциfl 4: М‡тем‡тик‡ киптфии: Ч‡сть II Лекциfl 4 – это обзо м‡тем‡тических осно‚, котоые необхо‰имы, чтобы понflть со‰еж‡ние после‰ующих лекций. Он‡ ‡ссм‡т肇ет некотоые ‡л„еб‡ические стуктуы, т‡кие, к‡к „уппы, кольц‡ и конечные полfl, пименflемые ‚ мо‰емных блочных шиф‡х. Лекциfl 5: В‚е‰ение ‚ со‚еменные шифы с симметичным ключом Лекциfl 5 — ‚‚е‰ение ‚ мо‰емные шифы с симметичным ключом. Поним‡ние от‰ельных элементо‚, используемых ‚ мо‰емных шиф‡х с симметичным ключом, пок뇉ы‚‡ет путь к лучшему поним‡нию и ‡н‡лизу со‚еменных шифо‚. Эт‡ лекциfl зн‡комит с компонент‡ми блочных шифо‚, т‡ких, к‡к P-блоки и S-блоки. Т‡кже з‰есь ‚‚о‰итсfl ‡з‰еление меж‰у ‰‚умfl кл‡сс‡ми шифо‚: шифы Ф‡йстелfl и не-Ф‡йстеле‚ские шифы. Лекциfl 6: Ст‡н‰‡т ко‰иниfl ‰‡нных (DES) Лекциfl 6 ‡бот‡ет с элемент‡ми, опе‰еленными ‚ лекции 5, чтобы обсу‰ить и по‡н‡лизить о‰ин из общих шифо‚ с симметичным ключом, пименflемых се„о‰нfl, — Ст‡н‰‡т Ко‰иниfl Д‡нных (DES — DATA ENCRIPTION STANDARD). Особое ‚ним‡ние у‰елflетсfl тому, к‡к DES использует 16 цикло‚ шифо‚ Ф‡йстелfl. 35
Кус
Киптфиfl и безоп‡сность сетей
Лекциfl 7: Усо‚ешенст‚нный ст‡н‰‡т шифниfl (AES) Лекциfl 7 пок‡зы‚‡ет, к‡к ‡л„еб‡ические стуктуы, ‡ссмотенные ‚ лекции 4, и элементы, ‡ссмотенные ‚ лекции 5, мо„ут со片ть очень мощный шиф — Усо‚ешенст‚нный Ст‡н‰‡т Шифниfl (AES — ADVANCED ENCRYPTION STANDARD). Особое ‚ним‡ние у‰елflетсfl тому, к‡к ‡л„еб‡ические стуктуы, пи‚е‰енные ‚ лекции 4, ‡бот‡ют ‰лfl ‰остижениfl целей безоп‡сности. Лекциfl 8: Шифние, использующее со‚еменные шифы с симметичным ключом Лекциfl 8 пок‡зы‚‡ет, к‡к со‚еменные блочные шифы и шифы поток‡ мо„ут ф‡ктически пименflтьсfl, чтобы з‡шифть ‰линные сообщениfl. Он‡ объflснflет, к‡к со‚еменные блочные шифы используют пflть ежимо‚ ‡боты. Он‡ т‡кже ‚‚о‰ит ‰‚‡ шиф‡ поток‡ ‰лfl об‡ботки ‰‡нных ‚ е‡льном м‡сшт‡бе ‚емени.
36
Лекциfl 2
М‡тем‡тик‡ киптфии. Ч‡сть I. Мо‰ульн‡fl ‡ифметик‡, с‡‚нениfl
Лекциfl 2. М‡тем‡тик‡ киптфии. Ч‡сть I. Мо‰ульн‡fl ‡ифметик‡, с‡‚нениfl и м‡тицы Цели и со‰еж‡ние Эт‡ лекциfl необхо‰им‡, чтобы пото‚ить чит‡телfl к ‰‡льнейшему ‡з„о‚оу о киптфии. Лекциfl имеет несколько целей. • Р‡ссмотеть ‡ифметику целых чисел, кото‡fl б‡зиуетсfl н‡ теоии ‰елимости и н‡хож‰ении н‡ибольше„о обще„о ‰елителfl, используfl ‡л„оитм Е‚кл艇. • Пок‡з‡ть, к‡к ‡сшиенный ‡л„оитм Е‚кл艇 может пименflтьсfl ‰лfl ешениfl линейных ‰иоф‡нто‚ых у‡‚нений, ‰лfl ешениfl кон„уэнтных линейных у‡‚нений и н‡хож‰ениfl мультиплик‡ти‚ной ин‚есии. • Об‡тить ‚ним‡ние н‡ ‚‡жность мо‰ульной ‡ифметики (‡ифметики 퇉 ‚ычет‡ми по мо‰улю n) и опе‡ций ‚ ней, потому что они шиоко используютсfl ‚ киптфии. • Об‡тить ‚ним‡ние и ‡ссмотеть м‡тицы и опе‡ции с м‡тиц‡ми ‚ычето‚, котоые шиоко пименflютсfl ‚ киптфии. • Решить н‡бо у‡‚нений с‡‚нениfl, используfl м‡тицы ‚ычето‚. Киптфиfl б‡зиуетсfl н‡ некотоых специфических обл‡стflх м‡тем‡тики, ‚ключ‡fl теоию чисел, линейную ‡л„ебу и ‡л„еб‡ические стуктуы. В этой лекции мы обсу扇ем только те темы ‚ ‚ышеупомflнутых обл‡стflх, котоые необхо‰имы ‰лfl поним‡ниfl со‰еж‡ниfl сле‰ующих нескольких лекций. Чит‡тели, котоые зн‡комы с этими тем‡ми, мо„ут попустить эту лекцию полностью или ч‡стично. По‰обные теоетические лекции ‚стеч‡ютсfl ‚сю‰у ‚ этой кни„е, к‡ это необхо‰имо. Док‡з‡тельст‚‡ теоем и ‡л„оитмо‚ попущены, но з‡интееснный чит‡тель может н‡йти их ‚ пиложении Q.
2.1. Аифметик‡ целых чисел В ‡ифметике целых чисел мы используем множест‚о целых чисел и несколько опе‡ций. Вы зн‡комы с этим множест‚ом и соот‚етст‚ующими опе‡циflми, но они ‡ссмотены з‰есь, чтобы объflснить потом осно‚ы ‰ейст‚ий со с‡‚нениflми по мо‰улю m.
Множест‚о целых чисел Множест‚о целых чисел, обозн‡ченных Z, со‰ежит ‚се числ‡ (без ‰обей) от минус бесконечности ‰о плюс бесконечности (ис. 2.1). 37
Кус
Киптфиfl и безоп‡сность сетей
Z = {……,-2,-1,0,1,2,…..} Рис. 2.1. Множест‚о целых чисел
Бин‡ные опе‡ции В киптфии н‡с интеесуют ти бин‡ных опе‡ции ‚ пиложении к множест‚у целых чисел. Бин‡ные опе‡ции имеют ‰‚‡ ‚х и о‰ин ‚ыхо‰. Длfl целых чисел опе‰елены ти общих бин‡ных опе‡ции — сложение, ‚ычит‡ние и умножение. ʇ扇fl из этих опе‡ций имеет ‰‚‡ ‚х (a и b) и ‚ыхо‰ (c), к‡к это пок‡з‡но н‡ ис. 2.2. Д‚‡ ‚х пиним‡ют числ‡ из множест‚‡ целых чисел; ‚ыхо‰ ‚ы‚о‰ит езульт‡т опе‡ции — число из множест‚‡ целых чисел. Об‡щ‡ем ‚ним‡ние, что ‰еление не относитсfl к этой к‡те„оии опе‡ций, потому что мы скоо убе‰имсfl, что этой опе‡ции нужны ‰‚‡ ‚ых ‚место о‰но„о.
Рис. 2.2. Ти бин‡ных опе‡ции ‰лfl множест‚‡ целых чисел Пиме 2.1 Сле‰ующие пимеы пок‡зы‚‡ют езульт‡ты тех ‰‚оичных опе‡ций н‡ множест‚е ‰‚ух целых чисел. Поскольку к‡ж‰ый ‚хо‰ может быть или положителен или отиц‡телен, мы имеем четые случ‡fl ‰лfl к‡ж‰ой опе‡ции. Сложение Вычит‡ние Умножение
5 + 9=14 5 - 9=4 5 × 9=45
(-5) + 9=4 (-5) - 9=-14 (-5) × 9=-45
5 + (-9)=-4 5 - (-9)=14 5 × (-9)=-45
(-5) + (-9)=-14 (-5) - (-9)=+4 (-5) × (-9)=45
Деление целых чисел В ‡ифметике целых чисел, если мы a ‰елим н‡ n, мы можем получить q и r. Отношениfl меж‰у этими четыьмfl целыми числ‡ми можно пок‡з‡ть к‡к a = q × n +r В этом ‡‚енст‚е a н‡зы‚‡етсfl ‰елимое; q — ч‡стное; n — ‰елитель и r — ост‡ток. Об‡тите ‚ним‡ние, что это — не опе‡циfl, поскольку езульт‡т ‰елениfl a н‡ n — это ‰‚‡ целых числ‡, q и r. Мы бу‰ем н‡зы‚‡ть это у‡‚нением ‰елениfl. 38
Лекциfl 2
М‡тем‡тик‡ киптфии. Ч‡сть I. Мо‰ульн‡fl ‡ифметик‡, с‡‚нениfl
Пиме 2.2 Пе‰положим, что a = 255, ‡ n = 11. Мы можем н‡йти q = 23 и r = 2, используfl ‡л„оитм ‰елениfl, мы зн‡ем из элемент‡ной ‡ифметики — оно опе‰елflетсfl, к‡к пок‡з‡но н‡ ис. 2.3.
Рис. 2.3. Пиме 2.2, н‡хож‰ение ч‡стно„о и ост‡тк‡ Большинст‚о компьютеных flзыко‚ может н‡йти ч‡стное и ост‡ток, используfl 燉‡нные flзыком опе‡тоы. Н‡пиме, н‡ flзыке C опе‡то «/» может н‡йти ч‡стное, ‡ опе‡то «%» — ост‡ток. Д‚‡ ничениfl К‡ мы используем ‚ышеупомflнутое у‡‚нение ‰елениfl ‚ киптфии, мы н‡л‡„‡ем ‰‚‡ ничениfl. Пе‚ое тебние: чтобы ‰елитель был положительным целым числом (n > 0). Втоое тебние: чтобы ост‡ток был неотиц‡тельным целым числом (r > 0). Рисунок 2.4 пок‡зы‚‡ет эти тебниfl с ‰‚умfl ук‡з‡нными ничениflми.
Рис. 2.4. Ал„оитм ‰елениfl целых чисел Пиме 2.3 Пе‰положим, мы используем компьюте или к‡лькулflто, ‡ r и q отиц‡тельны, пи отиц‡тельном a. К‡к можно с‰ел‡ть, чтобы ‚ыполнflлось ничение, что число r ‰олжно быть положительным? Решение постое: мы уменьш‡ем зн‡чение q н‡ 1 и ‰оᇂлflем зн‡чение n к r, чтобы r ст‡ло положительным. –255 = (–23 × 11) + (–2)
– 255 = (–24 × 11)+ 9 39
Кус
Киптфиfl и безоп‡сность сетей
Мы уменьшили (–23), получили (–24) и ‰оᇂили 11 к (–2), чтобы получить + 9. Полученное ‡‚енст‚о эк‚肇лентно исхо‰ному. Г‡ф у‡‚нениfl ‰елениfl Мы можем изоб‡зить ‡ссмотенные ‚ыше у‡‚нениfl с ‰‚умfl ничениflми по n и r н‡ ис. 2.5 с помощью ‰‚ух „‡фо‚. Пе‚ый пок‡зы‚‡ет случ‡й, к‡ число a положительно; ‚тоой — к‡ отиц‡тельно.
Рис. 2.5. Г‡ф ‡л„оитм‡ ‰елениfl Г‡ф н‡чин‡етсfl с нулfl и пок‡зы‚‡ет, к‡к мы можем ‰ости„нуть точки, пе‰ст‡‚лflющей целое число a н‡ линии. В случ‡е положительно„о a мы ‰олжны пеемещ‡тьсfl н‡ ‚еличину q × n н‡п‡‚о и з‡тем ‰оᇂить ‰ополнительную ‚еличину r ‚ том же н‡п‡‚лении. В случ‡е отиц‡тельно„о a мы ‰олжны ‰‚脇тьсfl н‡ ‚еличину (q – 1) × n н‡ле‚о (число q ‚ этом случ‡е отиц‡тельно) и з‡тем ‰ополнflть число r ‚ поти‚оположном ‰лfl ук‡з‡нно„о ‚ыше ‰‚ижениfl н‡п‡‚лении. В обоих случ‡flх зн‡чение r положительно.
Теоиfl ‰елимости Тепеь к‡тко обсу‰им теоию ‰елимости — тем‡, с котоой мы ч‡сто ст‡лк肇емсfl ‚ киптфии. Если a не ‡‚но нулю, ‡ r = 0, ‚ ‡‚енст‚е ‰елениfl мы имеем a=q×n Мы т‡ „о‚оим, что a ‰елитсfl н‡ n (или n — ‰елитель a). Мы можем т‡кже ск‡з‡ть, что a ‰елитсfl без ост‡тк‡ н‡ n. К‡ мы не интеесуемсfl зн‡чением q, мы можем з‡пис‡ть ‚ышеупомflнутые отношениfl к‡к a|n. Если ост‡ток не fl‚лflетсfl нуле‚ым, то n не ‰елитсfl, и мы можем з‡пис‡ть отношениfl к‡к a | n. Пиме 2.4 a. Целое число 4 ‰елит целое число 32, потому что 32 = 8 × 4. Это можно отоб‡зить к‡к 4|32. Число 8 не ‰елит число 42, потому что 42 = 5 × 8 + 2. В этом у‡‚нении число 2 — ост‡ток. Это можно отоб‡зить к‡к 8 42. 40
Лекциfl 2
М‡тем‡тик‡ киптфии. Ч‡сть I. Мо‰ульн‡fl ‡ифметик‡, с‡‚нениfl
Пиме 2.5 ‡. Отоб‡жение ‰елимости 13|78, 7|98, –6|24, 4|44, и 11 | (–33). б. Отоб‡жение не‰елимости 13†27, 7†50, – 6†T23, 4†41, и 11†(–32). С‚ойст‚‡ Сле‰ующие несколько с‚ойст‚ теоии ‰елимости. Док‡з‡тельст‚‡ з‡интееснный чит‡тель может по‚еить ‚ пиложении Q. С‚ойст‚о 1: если a | 1, то a = ±1. С‚ойст‚о 2: если a | b и b | a, то a = ±b С‚ойст‚о 3: если a |b и b|c, то a|c С‚ойст‚о 4: если a|b и a|c, то a|(m × b + n × c), „‰е m и n — поиз‚ольные целые числ‡.
Пиме 2.6 ‡. Если 3|15 и 15|45 то, со„л‡сно тетьему с‚ойст‚у, 3|45. б. Если 3|15 и 3|9, то, со„л‡сно чет‚етому с‚ойст‚у, 3|(15 x 2 + 9 x 4), что озн‡ч‡ет 3|66. Все ‰елители Положительное целое число может иметь больше чем о‰ин ‰елитель. Н‡пиме, целое число 32 имеет шесть ‰елителей: 1, 2, 4, 8, 16 и 32. Мы можем упомflнуть ‰‚‡ интеесных с‚ойст‚‡ ‰елителей положительных целых чисел. С‚ойст‚о 1: целое число 1 имеет только о‰ин ‰елитель — с‡мо себfl. С‚ойст‚о 2: любое положительное целое число имеет по к‡йней мее ‰‚‡ ‰елителfl — 1 и с‡мо себfl (но может иметь больше).
Н‡ибольший общий ‰елитель О‰но целое число, ч‡сто необхо‰имое ‚ киптфии, — н‡ибольший общий ‰елитель ‰‚ух положительных целых чисел. Д‚‡ положительных целых числ‡ мо„ут иметь мно„о общих ‰елителей, но только о‰ин н‡ибольший общий ‰елитель.
Н‡пиме, общие ‰елители чисел 12 и 140 есть 1, 2 и 4. О‰н‡ко н‡ибольший общий ‰елитель — 4 (см. ис. 2.6). 41
Кус
Киптфиfl и безоп‡сность сетей
Рис. 2.6. Общие ‰елители ‰‚ух целых чисел Н‡ибольший общий ‰елитель ‰‚ух положительных целых чисел — н‡ибольшее целое число, котоое ‰елит об‡ целых числ‡.
Ал„оитм Е‚кл艇 Н‡хож‰ение н‡ибольше„о обще„о ‰елителfl (НОД) ‰‚ух положительных целых чисел путем сост‡‚лениfl списк‡ ‚сех общих ‰елителей непи„о‰но ‰лfl ‰ост‡точно больших чисел. К сч‡стью, больше чем 2000 лет н‡з‡‰ м‡тем‡тик по имени Е‚кли‰ ‡з‡бот‡л ‡л„оитм, котоый может н‡йти н‡ибольший общий ‰елитель ‰‚ух положительных целых чисел. Ал„оитм Е‚кл艇 оснн н‡ сле‰ующих ‰‚ух ф‡кт‡х (‰ок‡з‡тельст‚о см. ‚ пиложении Q): Ф‡кт 1: НОД (a, 0) = a Ф‡кт 2: НОД (a, b) = НОД (b, r), „‰е r — ост‡ток от ‰елениfl a н‡ b
Пе‚ый ф‡кт „о‚оит, что если ‚тоое целое число — 0, н‡ибольший общий ‰елитель ‡‚ен пе‚ому числу. Втоой ф‡кт поз‚олflет н‡м изменflть зн‡чение a н‡ b, пок‡ b не ст‡нет 0. Н‡пиме, ‚ычислflfl НОД (36, 10), мы можем использть ‚тоой ф‡кт несколько ‡з и о‰ин ‡з пе‚ый ф‡кт, к‡к пок‡з‡но ниже. НОД(36) = НОД(10,6) = НОД(6,4) = НОД(4,2) = НОД(2,0)
42
Лекциfl 2
М‡тем‡тик‡ киптфии. Ч‡сть I. Мо‰ульн‡fl ‡ифметик‡, с‡‚нениfl
Ду„ими слми, НОД (36, 10) = 2, НОД (10, 6) = 2, и т‡к ‰‡лее. Это озн‡ч‡ет, что ‚место ‚ычислениfl НОД (36, 10) мы можем н‡йти НОД (2, 0). Рисунок 2.7 пок‡зы‚‡ет, к‡к мы используем ‚ышеупомflнутые ‰‚‡ ф‡кт‡, чтобы ‚ычислить НОД (a, b). Рис. 2.7. Ал„оитм Е‚кл艇 Длfl опе‰елениfl НОД мы используем ‰‚е пееменные, r1 и r2, чтобы з‡помин‡ть изменflющиесfl зн‡чениfl ‚ течение ‚се„о поцесс‡. Они имеют н‡ч‡льное зн‡чение a и b. Н‡ к‡ж‰ом ш‡„е мы ‚ычислflем ост‡ток от ‰елениfl r1 н‡ r2 и х‡ним езульт‡т ‚ ‚и‰е пееменной r. Потом з‡менflем r1, н‡ r2 и r2 н‡ r и по‰олж‡-
ем ш‡„и, пок‡ r не ст‡нет ‡‚ным 0. В этот момент поцесс ост‡н‡‚л肇етсfl и НОД (a, b) ‡‚ен r1. Пиме 2.7 Нужно н‡йти н‡ибольший общий ‰елитель 2740 и 1760. Решение
Пименим ‚ышеупомflнутую поце‰уу, используfl т‡блицу. Мы пис‚‡и‚‡ем н‡ч‡льное зн‡чение r1 2740 и r2 зн‡чение 1760. В т‡блице т‡кже пок‡з‡ны зн‡чениfl q н‡ к‡ж‰ом ш‡„е. Мы имеем НОД (2740, 1760) = 20. Пиме 2.8 Н‡йти н‡ибольший общий ‰елитель 25 и 60. Решение Мы ‚ыб‡ли этот конкетный пиме, чтобы пок‡з‡ть: ‰лfl ‡л„оитм‡ Е‚кл艇 без‡злично, что пе‚ое число может быть меньше, чем ‚тоое. Все ‡‚но мы получ‡ем ильный от‚ет НОД (25, 65) = 5.
43
Кус
Киптфиfl и безоп‡сность сетей
Р‡сшиенный ‡л„оитм Е‚кл艇 Д‡ны ‰‚‡ целых числ‡ a и b. Н‡м з‡ч‡стую 퇉о н‡йти ‰у„ие ‰‚‡ целых числ‡, s и r, т‡кие, котоые s × a + t × b = НОД(a,b) 44
Лекциfl 2
М‡тем‡тик‡ киптфии. Ч‡сть I. Мо‰ульн‡fl ‡ифметик‡, с‡‚нениfl
Р‡сшиенный ‡л„оитм Е‚кл艇 может ‚ычислить НОД (a, b) и ‚ то же с‡мое ‚емfl ‚ычислить зн‡чениfl s и t. Ал„оитм и поцесс т‡ко„о ‚ычислениfl пок‡з‡н н‡ ис. 2.8. З‰есь ‡сшиенный ‡л„оитм Е‚кл艇 использует те же с‡мые ш‡„и, что и постой ‡л„оитм Е‚кл艇. О‰н‡ко ‚ к‡ж‰ом ш‡„е мы пименflем ти „уппы ‚ычислений ‚место о‰ной. Ал„оитм использует ти н‡бо‡ пееменных: r, s и t. Рис. 2.8. Ал„оитм Е‚кл艇 Н‡ к‡ж‰ом ш‡„е пееменные r1, r2 и r используютсfl т‡к же, к‡к ‚ ‡л„оитме Е‚кл艇. Пееменным r1 и r2 пис‚‡и‚‡ютсfl н‡ч‡льные зн‡чениfl a и b соот‚етст‚енно. Пееменным s1 и s2 пис‚‡и‚‡ютсfl н‡ч‡льные зн‡чениfl 1 и 0 соот‚етст‚енно. Пееменным t1 и t2 пис‚‡и‚‡ютсfl н‡ч‡льные зн‡чениfl 0 и 1 соот‚етст‚енно.
Вычислениfl r, s и t о‰ин‡ко‚ы, но с о‰ним отличием. Хотfl r — ост‡ток от ‰елениfl r1 н‡ r2, т‡ко„о соот‚етст‚иfl ‚ ‰у„их ‰‚ух „упп‡х ‚ычислений нет. Есть только о‰но ч‡стное, q, котоое ‚ычислflетсfl к‡к r1/r2 и используетсfl ‰лfl ‰у„их ‰‚ух ‚ычислений. Пиме 2.9 Д‡но a = 161 и b = 28, 퇉о н‡йти НОД (a, b) и зн‡чениfl s и t. Решение
r = r1 – q × r2
s = s2 – qs2
t = t1 – q × t2
Длfl отоб‡жениfl ‡л„оитм‡ мы используем сле‰ующую т‡блицу: Мы получ‡ем НОД (161, 28) = 7, s = –1 и t = 6. От‚еты мо„ут быть по‚еены, к‡к это пок‡з‡но ниже. (–1) × 161 + 6 × 28 = 7 Пиме 2.10 Д‡но a = 17 и b = 0, н‡йти НОД (a, b) и зн‡чениfl s и t.
Решение 45
Кус
Киптфиfl и безоп‡сность сетей
Длfl отоб‡жениfl ‡л„оитм‡ мы используем т‡блицу: Об‡тите ‚ним‡ние, что н‡м не н‡‰о ‚ычислflть q, r и s. Пе‚ое зн‡чение r2 соот‚етст‚ует усло‚ию 燂ешениfl ‡л„оитм‡. Мы получ‡ем НОД (17, 0) = 17, s = 1 и t = 0. Это пок‡зы‚‡ет, почему мы ‰олжны п艇‚‡ть н‡ч‡льные зн‡чениfl s1 — 1 и t1 — 0. От‚еты мо„ут быть по‚еены т‡к, к‡к это пок‡з‡но ниже: (1 × 17) + (0 × 0) = 17 Пиме 2.11 Д‡ны a = 0 и b = 45, н‡йти НОД (a, b) и зн‡чениfl s и t. Решение Длfl отоб‡жениfl ‡л„оитм‡ мы используем сле‰ующую т‡блицу: Мы получ‡ем НОД (0,45) = 45, s = 0 и t = 1. Отсю‰‡ flсно, что мы ‰олжны иници‡лизить s2 ‡‚ным 0, ‡ t2 — ‡‚ным 1. От‚ет может быть по‚еен, к‡к это пок‡з‡но ниже: (0 × 0) + (1 × 45) = 45
Линейные ‰иоф‡нто‚ы у‡‚нениfl Хотfl очень ‚‡жное пиложение ‡сшиенно„о ‡л„оитм‡ Е‚кл艇 бу‰ет ‡ссмотено ‰‡лее, з‰есь мы ост‡но‚имсfl н‡ ‰у„ом пиложении — «н‡хож‰ение ешениfl линейных ‰иоф‡нто‚ых у‡‚нений ‰‚ух пееменных», ‡ именно, у‡‚нениfl ax + by = c. Мы ‰олжны н‡йти зн‡чениfl целых чисел ‰лfl x и y, котоые у‰о‚лет‚оflют этому у‡‚нению. Этот тип у‡‚нениfl либо не имеет ешений, либо имеет бесконечное число ешений. Пусть d = НОД (a, b). Если d†c, то у‡‚нение не имеет ешениfl. Если d|c, то мы имеем бесконечное число ешений. О‰но из них н‡зы‚‡етсfl ч‡стным, ост‡льные — общими. Линейное ‰иоф‡нто‚о у‡‚нение — это у‡‚нение ‰‚ух пееменных: ax + by = c. Ч‡стное ешение Если d|c, то можно н‡йти ч‡стное ешение ‚ышеупомflнуто„о у‡‚нениfl, используfl сле‰ующие ш‡„и. 1. Пеоб‡зуем у‡‚нение к a1 x + b1 y = c1, ‡з‰ели‚ обе ч‡сти у‡‚нениfl н‡ d. Это ‚озможно, потому, что d ‰елит a, b, и c ‚ соот‚етст‚ии с пе‰положением. 2. Н‡йти s и t ‚ ‡‚енст‚е a1 s + b1 t = 1, используfl ‡сшиенный ‡л„оитм Е‚кл艇. 3. Ч‡стное ешение может быть н‡й‰ено: Ч‡стное ешение: x0 = (c/d) s и y0 = (c/d) t Общие ешениfl После н‡хож‰ениfl ч‡стно„о ешениfl общие ешениfl мо„ут быть н‡й‰ены: 46
Лекциfl 2
М‡тем‡тик‡ киптфии. Ч‡сть I. Мо‰ульн‡fl ‡ифметик‡, с‡‚нениfl
Общие ешениfl: x = x0 + k (b/d) и y = y0 – k (a/d), „‰е k — целое число Пиме 2.12 Н‡йти ч‡стные и общие ешениfl у‡‚нениfl 21x + 14y = 35. Решение Мы имеем d = НОД (21, 14) = 7. Пи 7|35 у‡‚нение имеет бесконечное число ешений. Мы можем ‡з‰елить обе стооны у‡‚нениfl н‡ 7 и получим у‡‚нение 3x + 2y = 5. Используfl ‡сшиенный ‡л„оитм Е‚кл艇, мы н‡хо‰им s и t, т‡кие, что 3s + 2t = 1. Мы имеем S = 1 и t = –1. Решениfl бу‰ут сле‰ующие: Ч‡стное ешение : x0 = 5 × 1=5 и y0 = 5 × (–1) = -5 т‡ 35/7 =5 Общие: x = 5+ k × 2 y= –5 – k × 3 „‰е k — целое Поэтому ешениfl бу‰ут сле‰ующие (5, –5), (7, –8), (9, –11)... Мы можем ле„ко по‚еить, что к‡ж‰ое из этих ешений у‰о‚лет‚оflет пе‚он‡ч‡льному у‡‚нению. Пиме 2.13 Р‡ссмотим очень интеесное пиложение ешениfl ‰иоф‡нто‚ых у‡‚нений ‚ е‡льной жизни. Мы хотим н‡йти ‡зличные комбин‡ции объекто‚, имеющих ‡зличные зн‡чениfl. Н‡пиме, мы хотим обменflть ‰енежный чек 100$ н‡ некотоое число б‡нкнот 20$ и несколько б‡нкнот по 5$. Имеетсfl мно„о ‚‡и‡нто‚, котоые мы можем н‡йти, еш‡fl соот‚етст‚ующее ‰иоф‡нто‚о у‡‚нение 20x + 5y = 100. Обозн‡чим d = НОД (20, 5) = 5 и 5 | 100. У‡‚нение имеет бесконечное число ешений, но ‚ этом случ‡е пиемлемы только несколько из них (только те от‚еты, ‚ котоых и x и y fl‚лflютсfl неотиц‡тельными целыми числ‡ми). Мы ‰елим обе ч‡сти у‡‚нениfl н‡ 5, чтобы получить 4x + y = 20, и еш‡ем у‡‚нение 4s + t = 1. Мы можем н‡йти s = 0 и t = 1, используfl ‡сшиенный ‡л„оитм Э‚кл艇. Ч‡стное ешение: x2 = 0 × 20 = 0 и y0 = 1 × 20 = 20. Общие ешениfl с неотиц‡тельными x и y — (0, 20), (1, 16), (2, 12), (3, 8), (4, 4), (5, 0). Ост‡льн‡fl ч‡сть ешений непиемлем‡, потому что y ст‡но‚итсfl отиц‡тельным. К‡сси ‚ б‡нке ‰олжен спосить, к‡кую из ‚ышеупомflнутых комбин‡ций мы хотим получить. Пе‚ое число ‚ скобк‡х обозн‡ч‡ет число б‡нкнот по 20$; ‚тоое число обозн‡ч‡ет число б‡нкнот по 5$.
2.2. Мо‰ульн‡fl ‡ифметик‡ У‡‚нение ‰елениfl (a= q × n + r), ‡ссмотенное ‚ пе‰ы‰ущей секции, имеет ‰‚‡ ‚х (a и n) и ‰‚‡ ‚ых (q и r). В мо‰ульной ‡ифметике мы интеесуемсfl только о‰ним из ‚ыхо‰о‚ — ост‡тком r. Мы не з‡ботимсfl о ч‡стном q. Ду„ими слми, к‡ мы ‰елим a н‡ n, мы интеесуемсfl только тем, что зн‡чение ост‡тк‡ ‡‚но r. Это пзум傇ет, что мы можем пе‰ст‡‚ить изоб‡жение ‚ышеупомflнуто„о у‡‚нениfl к‡к бин‡ный опе‡то с ‰‚умfl ‚хми a и n и о‰ним ‚ыхо‰ом r. 47
Кус
Киптфиfl и безоп‡сность сетей
Рис. 2.9. Соотношение у‡‚нениfl ‰елениfl и опе‡то‡ по мо‰улю
Опе‡ции по мо‰улю Вышеупомflнутый бин‡ный опе‡то н‡з‚‡н опе‡тоом по мо‰улю и обозн‡ч‡етсfl к‡к mod. Втоой ‚хо‰ (n) н‡з‚‡н мо‰улем. Вы‚о‰ r н‡з‚‡н ‚ычетом. Рисунок 2.9 пок‡зы‚‡ет отношение ‰елениfl по с‡‚нению с опе‡тоом по мо‰улю. К‡к пок‡з‡но н‡ ис. 2.9, опе‡то по мо‰улю (mod) ‚ыби‡ет целое число (a) из множест‚‡ Z и положительный мо‰уль (n). Опе‡то опе‰елflет неотиц‡тельный ост‡ток (r). Мы можем ск‡з‡ть, что a mod n = r Пиме 2.14 Н‡йти езульт‡т сле‰ующих опе‡ций: a. 27 mod 5 b. 36 mod 12 c. –18 mod 14 d. –7 mod 10 Решение Мы ищем ‚ычет r. Мы можем ‡з‰елить a н‡ n и н‡йти q и r. Д‡лее можно и„ноить q и сох‡нить r. ‡. Р‡з‰елим 27 н‡ 5 — езульт‡т: r = 2. Это озн‡ч‡ет, что 27 mod 5 = 2. б. Р‡з‰елим 36 н‡ 12 — езульт‡т: r = 0. Это озн‡ч‡ет, что 36 mod 12 = 0. ‚. Р‡з‰елим (–18) н‡ 14 — езульт‡т: r = –4. О‰н‡ко мы ‰олжны пиᇂить мо‰уль (14), чтобы с‰ел‡ть ост‡ток неотиц‡тельным. Мы имеем r = –4 + + 14 = 10. Это озн‡ч‡ет, что –18 mod 14 = 10. „. Р‡з‰елим (–7) н‡ 10 — езульт‡т: r = –7. После ‰оᇂлениfl мо‰улfl –7 мы имеем r = 3. Это озн‡ч‡ет, что –7 mod 10 = 3.
48
Лекциfl 2
М‡тем‡тик‡ киптфии. Ч‡сть I. Мо‰ульн‡fl ‡ифметик‡, с‡‚нениfl
Систем‡ ‚ычето‚: Zn Результ‡т опе‡ции по мо‰улю n — ‚с儉‡ целое число меж‰у 0 и n - 1. Ду„ими слми, езульт‡т a mod n — ‚с儉‡ неотиц‡тельное целое число, меньшее, чем n. Мы можем ск‡з‡ть, что опе‡циfl по мо‰улю со片ет н‡бо, котоый ‚ мо‰ульной ‡ифметике можно поним‡ть к‡к систему н‡именьших ‚ычето‚ по мо‰улю n, или Zn. О‰н‡ко мы ‰олжны помнить, что хотfl сущест‚ует только о‰но множест‚о целых чисел (Z), мы имеем бесконечное число множест‚ ‚ычето‚ (Zn), но лишь о‰но ‰лfl к‡ж‰о„о зн‡чениfl n. Рисунок 2.10 пок‡зы‚‡ет множест‚о Zn и ти множест‚‡ Z2, Z6 и Z11. Рис. 2.10. Некотоые н‡боы Zn С‡‚нениfl В киптфии мы ч‡сто используем понflтие с‡‚нениfl1 ‚место ‡‚енст‚‡. Отоб‡жение Z ‚ Zn не отоб‡ж‡ютсfl «о‰ин ‚ о‰ин». Бесконечные элементы множест‚‡ Z мо„ут быть отоб‡жены о‰ним элементом Zn. Н‡пиме, езульт‡т 2 mod 10 = 2, 12 mod 10 = 2, 22 mod 10 = 2, и т‡к ‰‡лее. В мо‰ульной ‡ифметике целые числ‡, по‰обные 2, 12, и 22, н‡зы‚‡ютсfl с‡‚нимыми по мо‰улю 10. Длfl то„о чтобы ук‡з‡ть, что ‰‚‡ целых числ‡ с‡‚нимы, используем опе‡то с‡‚нениfl (≡). Мы ‰оᇂлflем mod n к ой стооне с‡‚нениfl, чтобы опе‰елить зн‡чение мо‰улfl и с‰ел‡ть ‡‚енст‚о ильным. Н‡пиме, пишем:
2 ≡ 12 (mod 10) 13 ≡ 23 (mod 10) 34 ≡ 24 (mod 10) –8 ≡ 12 (mod 10) 3 ≡ 8 (mod 5) 8 ≡ 13 (mod 5) 23 ≡ 33 (mod 5) –8 ≡ 2(mod5)
1
С‡‚нение – темин, пинflтый ‚ м‡тем‡тической лите‡туе России; ‚ ои„ин‡ле пинflт темин кон„уэнтность (congruence)(пим. пее‚о‰чик‡). 49
Кус
Киптфиfl и безоп‡сность сетей
Рисунок 2.11 пок‡зы‚‡ет пинцип с‡‚нениfl. Мы ‰олжны объflснить несколько положений. a. Опе‡то с‡‚нениfl н‡помин‡ет опе‡то ‡‚енст‚‡, но меж‰у ними есть ‡зличиfl. Пе‚ое: опе‡то ‡‚енст‚‡ отоб‡ж‡ет элемент Z с‡мо„о н‡ себfl; опе‡то с‡‚нениfl отоб‡ж‡ет элемент Z н‡ элемент Zn. Втоое: опе‡то ‡‚енст‚‡ пок‡зы‚‡ет, что н‡боы сл傇 и с‡ соот‚етст‚уют ‰у„ ‰у„у «о‰ин ‚ о‰ин», опе‡то с‡‚нениfl — «мно„ие — о‰ному». Рис. 2.11. Пинцип с‡‚нениfl б. Обозн‡чение (mod n), котоое мы ‚ст‡‚лflем с ой стооны опе‡то‡ с‡‚нениfl, обозн‡ч‡ет пизн‡к множест‚‡ (Zn). Мы ‰олжны ‰оᇂить это обозн‡чение, чтобы пок‡з‡ть, к‡кой мо‰уль используетсfl ‚ отоб‡жении. Сим‚ол, используемый з‰есь, не имеет то„о же с‡мо„о зн‡чениfl, к‡к бин‡ный опе‡то ‚ у‡‚нении ‰елениfl. Ду„ими слми, сим‚ол mod ‚ ‚ы‡жении 12 mod 10 — опе‡то; ‡ сочет‡ние (mod 10) ‚ с‡‚нении 2 ≡ 12 (mod10) озн‡ч‡ет, что н‡бо — Z10.
Кл‡сс ‚ычето‚ Кл‡сс ‚ычето‚ [a], или [a]n, — множест‚о целых чисел, с‡‚нимых по мо‰улю n. Ду„ими слми, это н‡бо ‚сех целых чисел, т‡ких, что x = a (mod n). Н‡пиме, если n = 5, мы имеем множест‚о из пflти элементо‚ [0], [1], [2], [3] и [4], т‡ких, к‡к это пок‡з‡но ниже: [0] = {….., –15, 10, –5, 0, 5, 10, 15, ….} [1] = {…., –14, –9, –4, 1, 6 , 11, 16,.….} [2] = {…, –13, –8, –3, 2, 7, 12, 17,…} [3] = {...., –12, –7, –2, 3, 8, 13, 18,…} [4] = {….., 11, –6, –1, 4, 9, 14, 19,…}
Целые числ‡ ‚ н‡бое [0] ‚се ‰‡ют ост‡ток 0 пи ‰елении н‡ 5 (с‡‚нимы по мо‰улю 5). Целые числ‡ ‚ н‡бое [1] ‚се ‰‡ют ост‡ток 1 пи ‰елении н‡ 5 (с‡‚нимы по мо‰улю 5), и т‡к ‰‡лее. В к‡ж‰ом н‡бое есть о‰ин элемент, н‡зы‚‡емый н‡именьшим (неотиц‡тельным) ‚ычетом. В н‡бое [0] это элемент 0; ‚ н‡бое [1] — 1, и т‡к 50
Лекциfl 2
М‡тем‡тик‡ киптфии. Ч‡сть I. Мо‰ульн‡fl ‡ифметик‡, с‡‚нениfl
‰‡лее. Н‡бо, котоый пок‡зы‚‡ет ‚се н‡именьшие ‚ычеты: Z5 = {0, 1, 2, 3, 4}. Ду„ими слми, н‡бо Zn — н‡бо ‚сех н‡именьших ‚ычето‚ по мо‰улю n. Ку„fl систем‡ обозн‡чений Понflтие «с‡‚нение» может быть лучше ‡скыто пи использнии ку„‡ ‚ к‡чест‚е мо‰ели. Т‡к же, к‡к мы пименflем линию, чтобы пок‡з‡ть ‡спе‰еление целых чисел ‚ Z, мы можем использть ку„, чтобы пок‡з‡ть ‡спе‰еление целых чисел ‚ Zn. Рис. 2.12. С‡‚нение использниfl ‰и‡„‡мм ‰лfl Z и Zn Рисунок 2.12 поз‚олflет с‡‚нить ‰‚‡ этих по‰х. Целые числ‡ от 0 ‰о n–1 ‡сположены ‡‚номено ‚оку„ ку„‡. Все целые числ‡, с‡‚нимые по мо‰улю n, з‡ним‡ют о‰ни и те же точки ‚ ку„е. Положительные и отиц‡тельные целые числ‡ от Z отоб‡ж‡ютсfl ‚ ку„е о‰ним и тем же способом, соблю‰‡fl симметию меж‰у ними. Пиме 2.15 Мы пользуемсfl с‡‚нением по мо‰улю ‚ н‡шей еже‰не‚ной жизни; н‡пиме, мы пименflем ч‡сы, чтобы измеить ‚емfl. Н‡ш‡ систем‡ ч‡со‚ использует
‡ифметику по мо‰улю 12. О‰н‡ко ‚место 0 мы беем отсечку 12, т‡к что н‡ш‡ систем‡ ч‡со‚ н‡чин‡етсfl с 0 (или 12) и и‰ет ‰о 11. Поскольку н‡ши сутки ‰лflтсfl 24 ч‡с‡, мы счит‡ем по ку„у ‰‚‡ ‡з‡ и обозн‡ч‡ем пе‚ое ‚‡щение к‡к уто ‰о полу‰нfl, ‡ ‚тоое — к‡к ‚ече после полу‰нfl.
Опе‡ции ‚ Zn Ти бин‡ных опе‡ции (сложение, ‚ычит‡ние и умножение), котоые мы обсу扇ли ‰лfl Z, мо„ут т‡кже быть опе‰елены ‰лfl н‡бо‡ Zn. Результ‡т, может быть отоб‡жен ‚ Zn с использнием опе‡ции по мо‰улю, к‡к это пок‡з‡но н‡ ис. 2.13. Рис. 2.13. Бин‡ные опе‡ции ‚ Zn 51
Кус
Киптфиfl и безоп‡сность сетей
Ф‡ктически пименflютсfl ‰‚‡ н‡бо‡ опе‡тоо‚: пе‚ый н‡бо — о‰ин из бин‡ных опе‡тоо‚ (+, –, ×); ‚тоой — опе‡тоы по мо‰улю. Мы ‰олжны использть ку„лые скобки, чтобы по‰чекнуть поfl‰ок ‡бот. К‡к пок‡з‡но н‡ ис. 2.13, ‚хо‰ы (a и b) мо„ут быть член‡ми Z или Zn. Пиме 2.16 Выполните сле‰ующие опе‡тоы (поступ‡ющие от Zn): ‡. Сложение 7 и 14 ‚ Z15 б. Вычит‡ние 11 из 7 ‚ Z13 ‚. Умножение 11 н‡ 7 ‚ Z20 Решение Ниже пок‡з‡ны ‰‚‡ ш‡„‡ ‰лfl к‡ж‰ой опе‡ции: (14 + 7) mod 15 → (21) mod 15 = 6 (7 – 11) mod 13 → (–4) mod 13 = 9 (7 × 11) mod 20 → (77) mod 20 = 17 Пиме 2.17 Выполните сле‰ующие опе‡ции (поступ‡ющие от Zn). a. Сложение 17 и 27 ‚ Z14 b. Вычит‡ние 43 из 12 ‚ Z13 c. Умножение 123 н‡ –10 ‚ Z19 Решение Ниже пок‡з‡ны ‰‚‡ ш‡„‡ ‰лfl к‡ж‰ой опе‡ции: (17 + 27) mod 14 → (44) mod 14 = 2 (12 – 43) mod 13 → (–31) mod 13 = 8 (123) × (–10)) mod 19 → (–1230) mod 19 = 5 С‚ойст‚‡
Рис. 2.14. С‚ойст‚‡ опе‡то‡ mod 52
Лекциfl 2
М‡тем‡тик‡ киптфии. Ч‡сть I. Мо‰ульн‡fl ‡ифметик‡, с‡‚нениfl
Мы уже упомин‡ли, что ‰‚‡ ‚х ‰лfl тех бин‡ных опе‡тоо‚ ‚ с‡‚нении по мо‰улю мо„ут использть ‰‡нные из Z или Zn. Сле‰ующие с‚ойст‚‡ поз‚олflют н‡м сн‡ч‡л‡ отоб‡ж‡ть ‰‚‡ ‚х к Zn (если они пибы‚‡ют от Z) пее‰ ‚ыполнением этих тех бин‡ных опе‡тоо‚ (+,–,×). З‡интееснные чит‡тели мо„ут н‡йти ‰ок‡з‡тельст‚‡ ‰лfl этих с‚ойст‚ ‚ пиложении Q. Пе‚ое с‚ойст‚о: (a + b) mod n = [(a mod n) + (b mod n)] mod n Втоое с‚ойст‚о: (a – b) mod n = [(a mod n) – (b mod n)] mod n Тетье с‚ойст‚о: (a × b) mod n = [(a mod n) × (b mod n)] mod n Рисунок 2.14 пок‡зы‚‡ет поцесс ‰о и после пименениfl ук‡з‡нных ‚ыше с‚ойст‚. Хотfl по исунку ‚и‰но, что поцесс с пименением этих с‚ойст‚ более ‰лительный, мы ‰олжны помнить, что ‚ киптфии мы имеем ‰ело с очень большими целыми числ‡ми. Н‡пиме, если мы умнож‡ем очень большое целое число н‡ ‰у„ое очень большое целое число, котоое н‡столько большое, что не может быть з‡пис‡но ‚ компьютее, то пименение ‚ышеупомflнутых с‚ойст‚ поз‚олflет уменьшить пе‚ые ‰‚‡ опе‡н‰‡ пеж‰е, чем н‡ч‡ть умножение. Ду„ими слми, пеечисленные с‚ойст‚‡ поз‚олflют н‡м ‡бот‡ть с меньшими числ‡ми. Этот ф‡кт ст‡нет понflтнее пи обсуж‰ении экспоненци‡льных опе‡ций ‚ после‰ующих лекциflх. Пиме 2.18 Сле‰ующие пимеы пок‡зы‚‡ют пиложение ‚ышеупомflнутых с‚ойст‚. 1. (1 723 345 + 2 124 945) mod 11 = (8 + 9) mod 11 = 6 2. (1 723 345 – 2124 945) mod 11 = (8 – 9) mod 11 = 10 3. (1 723 345 × 2 124 945) mod 11 = (8 × 9) mod 11 = 6 Пиме 2.19 В ‡ифметике мы ч‡сто ‰олжны н‡хо‰ить ост‡ток от степеней числ‡ 10 пи ‰елении н‡ целое число. Н‡пиме, мы ‰олжны н‡йти 10 mod 3, 102 mod 3, 103 mod 3, и т‡к ‰‡лее. Мы т‡кже ‰олжны н‡йти 10 mod 7, 102 mod 7, 103 mod 7, и т‡к ‰‡лее. Тетье с‚ойст‚о мо‰ульных опе‡тоо‚, упомflнутое ‚ыше, ‰ел‡ет жизнь н‡мно„о поще. 10n mod x = (10 mod x)n Пименение тетье„о с‚ойст‚‡ n ‡з. Мы имеем 10 mod 3 = 1 → 10n mod 3 = (10 mod 3)n = 1 10 mod 9 = 1 → 10n mod 9 = (10 mod 9)n = 1 (10 mod 7) = 3 → 10n mod 7 = (10 mod 7)n = 3n mod 7 Пиме 2.20 Мы уже „о‚оили, что ‚ ‡ифметике ост‡ток от цело„о числ‡, ‡з‰еленно„о н‡ 3, т‡кой же, к‡к ост‡ток от суммы ‰елениfl е„о ‰есflтичных циф. Ду„ими слми, ост‡ток от ‰елениfl 6371 ‡‚ен числу 17, ‡з‰еленному н‡ 3, потому что 6 + 53
Кус
Киптфиfl и безоп‡сность сетей
3 + 7 + 1 = 17. Мы можем ‰ок‡з‡ть, что это ут‚еж‰ение использует с‚ойст‚‡ мо‰ульно„о опе‡то‡. З‡пишем целое число к‡к сумму е„о циф, умноженных н‡ степени 10. a = an 10n +……….+ a1101 + a0100 Н‡пиме: 6371 = 6 × 103 + 3 × 102+ 7 × 101+ 1 × 100 Тепеь мы можем пименить мо‰ульную опе‡цию к ‰‚ум стоон‡м ‡‚енст‚‡ и использть езульт‡т пе‰ы‰уще„о пиме‡, „‰е ост‡ток 10n mod 3 ‡‚ен 1. a mod 3 = (an × 10n +……..+ a1 × 101+ a0 × 100) mod 3 = (an × 10n) mod 3 +…..+ (a1 × 101) mod 3 + (a0 × 100 mod 3) mod 3 = (an mod 3) × (10n mod 3) +……..+ (a1 mod 3) × (101 mod 3) + (a0 mod 3) × (100 mod 3) mod 3 = (an mod 3) +……..+ (a1 mod 3) + (a0 mod 3) mod 3 = (an +……..+ a1 + a0) mod 3
Ин‚есии К‡ мы ‡бот‡ем ‚ мо‰ульной ‡ифметике, н‡м ч‡сто нужно н‡йти опе‡цию, кото‡fl поз‚олflет ‚ычислить ‚еличину, об‡тную 燉‡нному числу. Мы обычно ищем ‡‰‰ити‚ную ин‚есию (опе‡то, об‡тный сложению) или мультиплик‡ти‚ную ин‚есию (опе‡то, об‡тный умножению). А‰‰ити‚н‡fl ин‚есиfl В Z2 ‰‚‡ числ‡ a и b ‡‰‰ити‚но ин‚есны ‰у„ ‰у„у, если b = n – a. Н‡пиме, a + b ≡ 0 (mod n) В Zn ‡‰‰ити‚н‡fl ин‚есиfl числу a может быть ‚ычислен‡ к‡к b = n – a. Н‡пиме, ‡‰‰ити‚н‡fl ин‚есиfl 4 ‚ Z10 ‡‚н‡ 10 – 4 = 6. В мо‰ульной ‡ифметике к‡ж‰ое целое число имеет ‡‰‰ити‚ную ин‚есию. Сумм‡ цело„о числ‡ и е„о ‡‰‰ити‚ной ин‚есии с‡‚ним‡ с 0 по мо‰улю n. Об‡тите ‚ним‡ние, что ‚ мо‰ульной ‡ифметике к‡ж‰ое число имеет ‡‰‰ити‚ную ин‚есию, и эт‡ ин‚есиfl уник‡льн‡; к‡ж‰ое число имеет о‰ну и только о‰ну ‡‰‰ити‚ную ин‚есию. О‰н‡ко ин‚есиfl числ‡ может быть тем же с‡мым числом. Пиме 2.21 Н‡й‰ите ‚се ‚з‡имно об‡тные п‡ы по сложению ‚ Z10. Решение Д‡ны шесть п‡ ‡‰‰ити‚ных ин‚есий — (0, 0), (1, 9), (2, 8), (3, 7), (4, 6) и (5, 5). В этом списке 0 — ин‚есиfl с‡мому себе; т‡кже и 5. Об‡тите ‚ним‡ние: ‡‰‰ити‚54
Лекциfl 2
М‡тем‡тик‡ киптфии. Ч‡сть I. Мо‰ульн‡fl ‡ифметик‡, с‡‚нениfl
ные ин‚есии сложениfl об‡тны ‰у„ ‰у„у; если 4 — ‡‰‰ити‚н‡fl ин‚есиfl 6, т‡ 6 — т‡кже ‡‰‰ити‚н‡fl ин‚есиfl числу 4. Мультиплик‡ти‚н‡fl ин‚есиfl В Zn ‰‚‡ числ‡ a и b мультиплик‡ти‚но ин‚есны ‰у„ ‰у„у, если a × b ≡ 1(mod n) Н‡пиме, если мо‰уль ‡‚ен 10, то мультиплик‡ти‚н‡fl ин‚есиfl 3 есть 7. Ду„ими слми, мы имеем (3 × 7) mod 10 × 1. В мо‰ульной ‡ифметике целое число может или не может иметь мультиплик‡ти‚ную ин‚есию. Целое число и е„о мультиплик‡ти‚н‡fl ин‚есиfl с‡‚нимы с 1 по мо‰улю n. Может быть ‰ок‡з‡но, что a имеет мультиплик‡ти‚ную ин‚есию ‚ Zn, если только НОД(n, a) = 1. В этом случ‡е „о‚оflт, что a и n ‚з‡имно постые. Пиме 2.22 Н‡йти мультиплик‡ти‚ную ин‚есию 8 ‚ Z10. Решение Мультиплик‡ти‚н‡fl ин‚есиfl не сущест‚ует, потому что НОД (10, 8) = 2 ≠ 1. Ду„ими слми, мы не можем н‡йти число меж‰у 0 и 9, т‡кое, что пи умножении н‡ 8 езульт‡т с‡‚ним с 1 по mod 10. Пиме 2.23 Н‡йти ‚се мультиплик‡ти‚ные ин‚есии ‚ Z10. Решение Есть только ти п‡ы, у‰о‚лет‚оflющие усло‚иflм сущест‚ниfl мультиплик‡ти‚ной ин‚есии: (1, 1), (3, 7) и (9, 9). Числ‡ 0, 2, 4, 5, 6 и 8 не имеют мультиплик‡ти‚ной ин‚есии. Мы можем по‚еить, что (1 × 1) mod 10 = 1
(3 × 7) mod 10 = 1
(9 × 9) mod 10 = 1
Пиме 2.24 Н‡йти ‚се мультиплик‡ти‚ные об‡тные п‡ы ‚ Z11. Решение Мы имеем семь п‡: (1, 1), (2, 6), (3, 4), (5, 9), (7, 8), (9, 9) и (10, 10). Пи пеехо‰е от Z10 к Z11 число п‡ у‚елич肇етсfl. Пи Z11 НОД (11, a) = 1 (‚з‡имно постые) ‰лfl ‚сех зн‡чений a, коме 0. Это озн‡ч‡ет, что ‚се целые числ‡ от 1 ‰о 10 имеют мультиплик‡ти‚ные ин‚есии. Целое число a ‚ Zn имеет мультиплик‡ти‚ную ин‚есию т‡ и только т‡, если НОД (n, a) ≡ 1(mod n)
55
Кус
Киптфиfl и безоп‡сность сетей
Р‡сшиенный ‡л„оитм Е‚кл艇, котоый мы обсу扇ли ‡нее ‚ этой лекции, может н‡йти мультиплик‡ти‚ную ин‚есию b ‚ Zn, к‡ ‰‡ны n и b и ин‚есиfl сущест‚ует. Длfl это„о н‡м 퇉о з‡менить пе‚ое целое число a н‡ n (мо‰уль). Д‡лее мы можем ут‚е扇ть, что ‡л„оитм может н‡йти s и t, т‡кие, что s × n + b × t = НОД (n, b). О‰н‡ко если мультиплик‡ти‚н‡fl ин‚есиfl b сущест‚ует, НОД (n, b) ‰олжен быть 1. Т‡к что у‡‚нение бу‰ет иметь ‚и‰ (s × n) + (b × t) = 1 Тепеь мы пименflем опе‡ции по мо‰улю к обеим стоон‡м у‡‚нениfl. Ду„ими слми, мы отоб‡ж‡ем к‡ж‰ую стоону к Zn. Т‡ мы получим (s × n + b × t) mod n =1 mod n [(s × n) mod n] + [(b × t) mod n] = 1 mod n 0 + [(b × t) mod n ] = 1
(b × t) mod n =1
→ Это озн‡ч‡ет, что t – это мультиплик‡ти‚н‡fl ин‚есиfl b ‚ Zn
Об‡тите ‚ним‡ние, что [(s × n) mod n] н‡ тетьей стоке — 0, потому что, если мы ‰елим (s × n) н‡ n, ч‡стное — s, ‡ ост‡ток — 0.
56
Лекциfl 2
М‡тем‡тик‡ киптфии. Ч‡сть I. Мо‰ульн‡fl ‡ифметик‡, с‡‚нениfl
Р‡сшиенный ‡л„оитм Е‚кл艇 н‡хо‰ит мультиплик‡ти‚ные ин‚есии b ‚ Zn, к‡ ‰‡ны n и b и НОД (n, b) = 1. Мультиплик‡ти‚н‡fl ин‚есиfl b — это зн‡чение t, отоб‡женное ‚ Zn. Рисунок 2.15 пок‡зы‚‡ет, к‡к мы н‡хо‰им мультиплик‡ти‚ную ин‚есию числ‡, используfl ‡сшиенный ‡л„оитм Е‚кл艇. Рис. 2.15. Пименение ‡сшиенно„о ‡л„оитм‡ Е‚кл艇 ‰лfl поиск‡ мультиплик‡ти‚ной ин‚есии Пиме 2.25
Н‡йти мультиплик‡ти‚ную ин‚есию 11 ‚ Z26. Решение Мы используем т‡блицу, ‡н‡ло„ичную о‰ной из тех, котоые мы уже пименflли пеж‰е пи ‰‡нных r1 = 26 и r2 = 11. Н‡с интеесует только зн‡чение t. НОД (26, 11) = 1, что озн‡ч‡ет, что мультиплик‡ти‚н‡fl ин‚есиfl 11 сущест‚ует. Р‡сшиенный ‡л„оитм Е‚кл艇 ‰‡ет t1 = (–7). Мультиплик‡ти‚н‡fl ин‚есиfl ‡‚н‡ (–7) mod 26 = 19. Ду„ими слми, 11 и 19 — мультиплик‡ти‚н‡fl ин‚есиfl ‚ Z19. Мы можем ‚и‰еть, что (11 × 19) mod 26 = 209 mod 26 = 1. Пиме 2.26
Н‡йти мультиплик‡ти‚ную ин‚есию 23 ‚ Z100. Решение Мы используем т‡блицу, по‰обную той, котоую пименflли ‰о это„о пи r1 = 100 и r2 = 23. Н‡с интеесует только зн‡чение t. НОД (100, 23) — 1, что озн‡ч‡ет, что ин‚есиfl 23 сущест‚ует. Р‡сшиенный Е‚кли‰о‚ ‡л„оитм ‰‡ет t1 =-13. Ин‚есиfl — (–13) mod 100 = 87. Ду„ими слми, 13 и 87 — мультиплик‡ти‚ные ин‚есии ‚ Z 100. Мы можем ‚и‰еть, что (23 × 87) mod 100 = 2001 mod 100 = 1. Пиме 2.27 Н‡йти ин‚есию 12 ‚ Z26. Решение Мы используем т‡блицу, по‰обную той, котоую мы пименflли ‡ньше пи r1 = 26 и r2 = 12. 57
Кус
Киптфиfl и безоп‡сность сетей
НОД(26,12)=2 ≠ 1, что озн‡ч‡ет отсут‚ст‚ие ‰лfl числ‡ 12 мультиплик‡ти‚ной ин‚есии ‚ Z26
Сложение и умножение т‡блиц Рисунок 2.16 пок‡зы‚‡ет ‰‚е т‡блицы ‰лfl сложениfl и умножениfl. Пи сложении т‡блиц к‡ж‰ое целое число имеет ‡‰‰ити‚ную ин‚есию. Об‡тные п‡ы мо„ут быть н‡й‰ены, если езульт‡т их сложениfl — ноль. Мы имеем (0, 0), (1, 9), (2, 8), (3, 7), (4, 6) и (5, 5). Пи умножении т‡блиц мы получ‡ем только ти мультиплик‡ти‚ных п‡ы (1, 1), (3, 7) и (9, 9). П‡ы мо„ут быть н‡й‰ены, к‡ езульт‡т умножениfl ‡‚ен 1. Обе т‡блицы симметичны по ‰и‡„он‡ли, от ле‚ой ‚ешины к нижней ‚ешине с‡. Пи этом можно обн‡ужить с‚ойст‚‡ коммут‡ти‚ности ‰лfl сложениfl и умножениfl (a+b = b+a и a × b=b × a). Т‡блиц‡ сложениfl т‡кже пок‡зы‚‡ет, что к‡ж‰ый fl‰ или колонк‡ может поменflтьсfl с ‰у„им fl‰ом или колонкой. Длfl т‡блицы умножениfl это не‚ено. Рис. 2.16. Т‡блицы сложениfl и умножениfl ‰лfl Z10
Р‡зличные множест‚‡ ‰лfl сложениfl и умножениfl В киптфии мы ч‡сто ‡бот‡ем с ин‚есиflми. Если отитель посыл‡ет целое число (н‡пиме, ключ ‰лfl шифниfl сл), пиемник пименflет ин‚есию это„о цело„о числ‡ (н‡пиме, ключ ‰еко‰иниfl). Если это ‰ейст‚ие (‡л„оитм шифниfl/‰еко‰иниfl) fl‚лflетсfl сложением, множест‚о Zn может быть использно к‡к множест‚о ‚озможных ключей, потому что к‡ж‰ое целое число ‚ этом множест‚е имеет ‡‰‰ити‚ную ин‚есию. С ‰у„ой стооны, если ‰ейст‚ие (‡л„оитм шифниfl/‰еко‰иниfl) — умножение, Zn не может быть множест‚ом ‚озможных ключей, потому что только некотоые члены это„о множест‚‡ имеют
58
Лекциfl 2
М‡тем‡тик‡ киптфии. Ч‡сть I. Мо‰ульн‡fl ‡ифметик‡, с‡‚нениfl
мультиплик‡ти‚ную ин‚есию. Н‡м нужно ‰у„ое множест‚о, котоое fl‚лflетсfl по‰множест‚ом Zn и ‚ключ‡ет ‚ себfl только целые числ‡, и пи этом ‚ Zn они имеют уник‡льную мультиплик‡ти‚ную ин‚есию. Это множест‚о обозн‡ч‡етсfl Zn*. Рисунок 2.1 пок‡зы‚‡ет некотоые случ‡и ‰‚ух множест‚. Об‡тите ‚ним‡ние, что множест‚о Zn* может быть получено из т‡блицы умножениfl тип‡ пок‡з‡нной н‡ ис. 2.16. К‡ж‰ый член Zn имеет ‡‰‰ити‚ную ин‚есию, но только некотоые члены имеют мультиплик‡ти‚ную ин‚есию. К‡ж‰ый член Zn* имеет мультиплик‡ти‚ную ин‚есию, но только члены множест‚‡ имеют ‡‰‰ити‚ную ин‚есию. Мы ‰олжны использть Zn, к‡ необхо‰имы ‡‰‰ити‚ные ин‚есии; мы ‰олжны использть Zn*, к‡ необхо‰имы мультиплик‡ти‚ные ин‚есии. Рис. 2.17. Некотоые множест‚‡ Zn и Zn*
Еще ‰‚‡ множест‚‡ Киптфиfl ч‡сто использует еще ‰‚‡ множест‚‡: Zp, и Zp*. Мо‰ули ‚ этих ‰‚ух множест‚‡х — постые числ‡. Постые числ‡ бу‰ут обсу扇тьсfl ‚ сле‰ующих лекциflх; пок‡ можно ск‡з‡ть, что постое число имеет только ‰‚‡ ‰елителfl: целое число 1 и с‡мо себfl. Множест‚о Zp — то же с‡мое, что и Zn, з‡ исключением то„о, что n — постое число. Zp со‰ежит ‚се целые числ‡ от 0 ‰о p – 1. К‡ж‰ый элемент ‚ Zp имеет ‡‰‰ити‚ную ин‚есию; к‡ж‰ый элемент коме 0 имеет мультиплик‡ти‚ную ин‚есию. Множест‚о Zp* — то же с‡мое, что Zn*, з‡ исключением то„о, что Zp* со‰ежит ‚се целые числ‡ от 0 ‰о p – 1. К‡ж‰ый элемент ‚ Zp имеет ‡‰‰ити‚ную и мультиплик‡ти‚ную ин‚есии. Zp* — очень хооший к‡н‰и‰‡т, к‡ мы ну扇емсfl ‚о множест‚е, котоое пеж肇ет ‡‰‰ити‚ную и мультиплик‡ти‚ную ин‚есии. Ниже пок‡з‡ны ‰‚‡ множест‚‡, к‡ p = 13. Z13 = {0,1,2, 3,4, 5, 6, 7, 8, 9, 11,12}, Z13* = {0,1,2, 3,4, 5, 6, 7, 8, 9, 11,12},
59
Кус
Киптфиfl и безоп‡сность сетей
2.3. М‡тицы В киптфии мы ‰олжны об‡б‡ты‚‡ть м‡тицы. Хотfl эт‡ тем‡ пи퇉лежит специ‡льному ‡з‰елу ‡л„ебы, котоый н‡зы‚‡етсfl линейной ‡л„ебой, необхо‰им к‡ткий обзо м‡тиц ‰лfl пото‚ки к изучению киптфии. Чит‡тели, зн‡комые с этими ‚опос‡ми, мо„ут попустить ч‡сть или ‚есь
этот ‡з‰ел. Р‡з‰ел н‡чин‡етсfl с некотоых опе‰елений и пимео‚ использниfl м‡тицы ‚ мо‰ульной ‡ифметике.
Опе‰елениfl М‡тиц‡ — пflмоу„ольный м‡сси‚, со‰еж‡щий l × m элементо‚, ‚ котоых l — число сток, m — число столбцо‚. М‡тиц‡ обычно обозн‡ч‡етсfl 燄뇂ной бук‚ой, т‡кой, к‡к A. Элемент aij ‡сположен ‚ i-той стоке и j-том столбце. Хотfl элементы м‡тицы мо„ут быть любым множест‚ом чисел, мы обсу扇ем только м‡тицы с элемент‡ми ‚ Z. Рисунок 2.18 пок‡зы‚‡ет м‡тицу. Рис. 2.18. М‡тиц‡ ‡зме‡ l × m Если м‡тиц‡ имеет только о‰ну стоку (l = 1), он‡ н‡зы‚‡етсfl м‡тицей-стокой; если он‡ имеет только о‰ин столбец (m = 1), то н‡зы‚‡етсfl м‡тицей-столбцом. М‡тиц‡ н‡зы‚‡етсfl ꂇ‰‡тной, если число сток ‡‚но числу столбцо‚ (l = m) и со‰ежит элементы „뇂ной ‰и‡„он‡ли a11, a22, ……,a mm. М‡тиц‡ обозн‡ч‡етсfl 0, если ‚се стоки и ‚се столбцы со‰еж‡т нули. Е‰иничн‡fl м‡тиц‡ обозн‡ч‡етсfl I, если он‡ к‚‡‰‡тн‡fl и со‰ежит ‚се е‰иницы н‡ „뇂ной ‰и‡„он‡ли и ‚се нули н‡ ‰у„их мест‡х. Рисунок 2.19 пок‡зы‚‡ет некотоые пимеы м‡тиц с элемент‡ми из Z. Рис. 2.19. Пимеы м‡тиц
Опе‡ции и у‡‚нениfl В линейной ‡л„ебе ‰лfl м‡тиц опе‰елены о‰но у‡‚нение (‡‚енст‚о) и четые опе‡ции (сложение, ‚ычит‡ние, умножение и ск‡лflное умножение). Р‡‚енст‚о Д‚е м‡тицы ‡‚ны, если они имеют о‰ин‡ко‚ое число сток и столбцо‚ и соот‚етст‚ующие элементы ‡‚ны. Ду„ими слми, A = B, если мы имеем aij = bij ‰лfl ‚сех i и j. 60
Лекциfl 2
М‡тем‡тик‡ киптфии. Ч‡сть I. Мо‰ульн‡fl ‡ифметик‡, с‡‚нениfl
Рис. 2.20. Сложение и ‚ычит‡ние м‡тиц Сложение и ‚ычит‡ние Опе‡циfl сложениfl ‰‚ух м‡тиц может пименflтьсfl, если м‡тицы имеют о‰ин‡ко‚ое число столбцо‚ и сток. Сложение з‡писы‚‡ют к‡к C = A + B. В этом случ‡е полученн‡fl ‚ езульт‡те м‡тиц‡ C имеет тот же номе сток и столбцо‚, к‡к A или B. К‡ж‰ый элемент C — сумм‡ ‰‚ух соот‚етст‚ующих элементо‚ A и B: aij + bij.
Опе‡циfl ‚ычит‡ниfl поиз‚о‰итсfl ‡н‡ло„ично сложению, з‡ исключением то„о, что к‡ж‰ый элемент B ‚ычит‡етсfl из соот‚етст‚ующе„о элемент‡ A: dij= aij – bij. Пиме 2.28 Рисунок 2.20 пок‡зы‚‡ет пиме сложениfl и ‚ычит‡ниfl.
Умножение Д‚е м‡тицы ‡злично„о ‡зме‡ мо„ут быть пеемножены, если число столбцо‚ пе‚ой м‡тицы со‚‡ет с числом сток ‚тоой м‡тицы. Если A — м‡тиц‡ ‡зме‡ l × m, ‡ м‡тиц‡ B ‡зме‡ m × p, то поиз‚е‰ением бу‰ет м‡ти-
ц‡ C ‡змеом l × p. Если элемент м‡тицы A обозн‡чить aij, ‡ к‡ж‰ый элемент м‡тицы B обозн‡чить bjk, то элемент м‡тицы C — cik — ‚ычислflетсfl сле‰ующим 61
Кус
Киптфиfl и безоп‡сность сетей
об‡зом: cik =Σ aij × bjk = ai1 × b1j + ai2 × b2j + … + aim × bmj
Пиме 2.29 Рисунок 2.21 пок‡зы‚‡ет поиз‚е‰ение м‡тицы-стоки (1 × 3) н‡ м‡тицустолбец (3 × 1). В езульт‡те получ‡ем м‡тицу ‡змеом 1 × 1. Рис. 2.21. Умножение м‡тицы-стоки н‡ м‡тицу-столбец Пиме 2.30 Рисунок 2.22 пок‡зы‚‡ет поиз‚е‰ение м‡тицы 2 × 3 н‡ м‡тицу 3 × 4. В езульт‡те получ‡ем м‡тицу 2 × 4. Рис. 2.22. Умножение м‡тицы 2 × 3 н‡ м‡тицу 3 × 4 Ск‡лflное умножение Мы можем т‡кже умножить м‡тицу н‡ число (н‡зы‚‡емое ск‡лfl). Если A — м‡тиц‡ l × m и x — ск‡лfl, то C = xA — м‡тиц‡ l × m, ‚ котоой cij = x × aij. Рис. 2.23. Ск‡лflное умножение Пиме 2.31
Рисунок 2.23 пок‡зы‚‡ет пиме ск‡лflно„о умножениfl.
Детемин‡нт Детемин‡нт — ꂇ‰‡тн‡fl м‡тиц‡ A ‡зме‡ m × m, обозн‡ч‡ем‡fl к‡к det (A) — ск‡лflное ‚ычисление екуси‚но, к‡к это пок‡з‡но ниже: 62
Лекциfl 2
М‡тем‡тик‡ киптфии. Ч‡сть I. Мо‰ульн‡fl ‡ифметик‡, с‡‚нениfl
1. If m = 1, det (A) = a11 2. If m > 1, det (A) = „‰е Aij получ‡етсfl из A у‰‡лением i-той стоки j-то„о столбц‡. Детемин‡нт опе‰елflетсfl только ‰лfl ꂇ‰‡тной м‡тицы. Пиме 2.32 Рисунок 2.24 пок‡зы‚‡ет, к‡к можно ‚ычислить ‰етемин‡нт м‡тицы 2 × 2, б‡зиуflсь н‡ ‰етемин‡нте м‡тицы 1 × 1 и используfl пи‚е‰енное ‚ыше екуси‚ное опе‰еление. Пиме ‰ок‡зы‚‡ет, что к‡ m 1 или 2, это поз‚олflет н‡йти ‰етемин‡нт м‡тицы ‰ост‡точно посто. Рис. 2.24 Вычисление ‰етемин‡нт‡ м‡тицы 2 × 2 Пиме 2.33 Рисунок 2.25 пок‡зы‚‡ет ‚ычисление ‰етемин‡нт‡ м‡тицы 3 × 3. Рис.2.25. Вычисление ‰ете‡мин‡н‡т‡ м‡тицы 3 × 3
Ин‚есии М‡тицы имеют ‡‰‰ити‚ные и мультиплик‡ти‚ные ин‚есии. А‰‰ити‚н‡fl ин‚есиfl А‰‰ити‚н‡fl ин‚есиfl м‡тицы — это ‰у„‡fl м‡тиц‡ B, т‡к‡fl, что A + B = 0. Ду„ими слми, мы имеем элементы bij = –aij ‰лfl ‚сех зн‡чений i и j. Обычно ‡‰‰ити‚н‡fl ин‚есиfl A обозн‡ч‡етсfl к‡к (-A). Мультиплик‡ти‚н‡fl ин‚есиfl Мультиплик‡ти‚н‡fl ин‚есиfl опе‰елен‡ только ‰лfl ꂇ‰‡тных м‡тиц. Мультиплик‡ти‚н‡fl ин‚есиfl ꂇ‰‡тной м‡тицы A — ꂇ‰‡тн‡fl м‡тиц‡ B, т‡к‡fl, что A × B = B × A = I. Обычно мультиплик‡ти‚н‡fl ин‚есиfl обозн‡ч‡етсfl к‡к A-1. Мультиплик‡ти‚н‡fl ин‚есиfl сущест‚ует только, если det (A) имеет мультиплик‡ти‚ную ин‚есию ‚ соот‚етст‚ующем ин‚есном множест‚е. Если целое число не имеет мультиплик‡ти‚ной ин‚есии ‚ Z, то не сущест‚ует мультиплик‡-
ти‚ной ин‚есии м‡тицы ‚ Z. О‰н‡ко м‡тицы с е‡льными элемент‡ми имеют ин‚есии, только если det (A) ≠ 0. Мультиплик‡ти‚ные ин‚есии опе‰елены только ‰лfl ꂇ‰‡тных м‡тиц. 63
Кус
Киптфиfl и безоп‡сность сетей
М‡тицы ‚ычето‚ Киптфиfl использует м‡тицы ‚ычето‚: м‡тицы мо„ут со‰еж‡ть ‚се элементы из Zn. Все опе‡ции н‡ м‡тиц‡х ‚ычето‚ ‚ыполнflютсfl т‡к же, к‡к и н‡ м‡тиц‡х целых чисел, з‡ исключением то„о, что опе‡ции поиз‚о‰flтсfl ‚ мо‰ульной ‡ифметике. Есть о‰но интеесное с‚ойст‚о: м‡тиц‡ ‚ычето‚ имеет мультиплик‡ти‚ную ин‚есию, если ‰етемин‡нт м‡тицы имеет мультиплик‡ти‚ную ин‚есию ‚ Zn. Ду„ими слми, м‡тиц‡ ‚ычет‡ имеет мультиплик‡ти‚ную ин‚есию, если НОД (det (A), n) = 1. Пиме 2.34 Рисунок 2.26 пок‡зы‚‡ет м‡тицу ‚ычето‚ ‚ Zn и е„о мультиплик‡ти‚ной ин‚есии A-1. Возьмем ‰етемин‡нт det (A) = 21, котоый имеет мультиплик‡ти‚ную ин‚есию 5 ‚ Z26. Об‡тите ‚ним‡ние, что к‡ мы умнож‡ем эти ‰‚е м‡тицы, то езульт‡т — е‰иничн‡fl м‡тиц‡ мультиплик‡ти‚н‡fl м‡тиц‡, ‚ Z26. Рис. 2.26. М‡тиц‡ ‚ычето‚ и мультиплик‡ти‚н‡fl ин‚есиfl С‡‚нение Д‚е м‡тицы, с‡‚нимые по мо‰улю n, з‡писы‚‡ютсfl к‡к A ≡ B (mod n), если они имеют о‰ин‡ко‚ое число сток и столбцо‚ и ‚се соот‚етст‚ующие элементы — с‡‚нимые по мо‰улю n. Ду„ими слми, A ≡ B (mod n), если aij ≡ bij (mod n) ‰лfl ‚сех i и j.
2.4. Линейное с‡‚нение Киптфиfl ч‡сто ‚ключ‡ет ‚ себfl ешение у‡‚нениfl или множест‚‡ у‡‚нений о‰ной или более пееменных с коэффициентом ‚ Zn. Этот ‡з‰ел пок‡зы‚‡ет, к‡к еш‡ть у‡‚нениfl с о‰ним неиз‚естным, к‡ степень пееменной ‡‚н‡ 1 (линейное у‡‚нение).
Линейные у‡‚нениfl с о‰ним неиз‚естным, со‰еж‡щие с‡‚нениfl Д‡‚‡йте посмотим, к‡к еш‡ютсfl у‡‚нениfl с о‰ним неиз‚естным, со‰еж‡щие у‡‚нениfl, то есть у‡‚нениfl ax ≡ b (mod n). У‡‚нение это„о тип‡ может не иметь ни о‰но„о ешениfl или иметь ниченное число ешений. Пе‰положим, что НОД (a, n) = d. Если d | b, ешение не сущест‚ует. Если d|b, то имеетсfl d ешений. Если d|b, то ‰лfl то„о, чтобы н‡йти ешениfl, мы используем сле‰ующую ст‡те„ию. 1. Сок‡тить у‡‚нение, ‡з‰ели‚ обе стооны у‡‚нениfl (‚ключ‡fl мо‰уль) н‡ d. 2. Умножить обе стооны сок‡щенно„о у‡‚нениfl н‡ мультиплик‡ти‚ную ин‚есию, чтобы н‡йти конкетное ешение x0. 3. Общие ешениfl бу‰ут x = x0 + k (n/d) ‰лfl k = 0, 1..., (d – 1). 64
Лекциfl 2
М‡тем‡тик‡ киптфии. Ч‡сть I. Мо‰ульн‡fl ‡ифметик‡, с‡‚нениfl
Пиме 2.35 Решить у‡‚нение 10x ≡ 2(mod 15). Решение Сн‡ч‡л‡ мы н‡й‰ем НОД(10,15) = 5. Полученное число 5 не ‰елитсfl н‡ 2, ешение отсутст‚ует. Пиме 2.36 Решить у‡‚нение 14x ≡ 12(mod 18). Решение З‡метим, что НОД (14, 18) = 2. Поскольку 2 ‰елит 12, мы имеем точно ‰‚‡ ешениfl, но сн‡ч‡л‡ сок‡тим у‡‚нение: 14x ≡ 12(mod 18) → 7x ≡ 6 (mod 9) → x ≡ 6(7-1)(mod 9) x0 × 6(7-1)(mod 9) = (6 × 4) (mod 9) = 6 x1= x0 + 1 × (18/2) = 15
Об‡ ешениfl, 6 и 15, у‰о‚лет‚оflют у‡‚нению с‡‚нениfl, потому что (14 × 6) mod 18 = 12, ‡ т‡кже (14 × 15) mod 18 = 12. Пиме 2.37 Решить у‡‚нение 3x + 4 ≡ 6 (mod 13). Решение Сн‡ч‡л‡ мы пи‚о‰им у‡‚нение к фоме ax ≡ b (mod n). Мы пиᇂлflем (–4) к обеим стоон‡м (4 ‡‰‰ити‚н‡fl ин‚есиfl). Получим 3x ≡ 2 (mod 13). Поскольку НОД (3, 13) = 1, у‡‚нение имеет только о‰но ешение, x0 = (2 × 3-1) mod 13 = 18 mod 13 = 5. Мы можем ‚и‰еть, что от‚ет у‰о‚лет‚оflет пе‚он‡ч‡льному у‡‚нению: 3 × 5 + 4 = 6 (mod 13). 65
Кус
Киптфиfl и безоп‡сность сетей
Систем‡ линейных у‡‚нений, со‰еж‡щих с‡‚нениfl Мы можем ешить систему линейных у‡‚нений с о‰ним и тем же мо‰улем, если м‡тиц‡, сфоминн‡fl из коэффициенто‚ системы у‡‚нений, имеет об‡тную м‡тицу. Длfl ешениfl у‡‚нениfl сост‡‚лflютсfl ти м‡тицы. П傇fl — ꂇ‰‡тн‡fl м‡тиц‡ — фомиуетсfl из коэффициенто‚ у‡‚нениfl. Вто‡fl — м‡тиц‡-столбец — сост‡‚лflетсfl из пееменных. Тетьfl — м‡тиц‡-столбец ‚ ой стооне опе‡то‡ с‡‚нениfl — состоит из зн‡чениfl bn. Мы можем это у‡‚нение пе‰ст‡‚ить к‡к поиз‚е‰ение м‡тиц. Если обе стооны с‡‚нениfl умножить н‡ мультиплик‡ти‚ную ин‚есию пе‚ой м‡тицы, ‚ езульт‡те мы получим ешение системы у‡‚нений, к‡к это пок‡з‡но н‡ ис. 2.27. Рис. 2.27. Систем‡ линейных у‡‚нений Пиме 2.38 Решить систему сле‰ующих тех у‡‚нений: 3x + 5y + 7z ≡ 3 (mod 16) x + 4y + 13z ≡ 5 (mod 16) 2x + 7y + 3z ≡ 4 (mod 16) Решение З‰есь x, y и z 脇ют оли x1, x2, и x3. М‡тиц‡, сфоминн‡fl из коэффициенто‚ у‡‚нений, — об‡тим‡. Мы н‡хо‰им мультиплик‡ти‚ную ин‚есию м‡тицы и умнож‡ем ее н‡ м‡тицу столбц‡, сфоминную из 3, 5 и 4. Результ‡т — x ≡ 15 (mod 16), y ≡ 4 (mod 16) и z ≡ 14 (mod 16). Мы можем по‚еить от‚ет, по‰ст‡‚лflfl эти зн‡чениfl ‚ у‡‚нениfl.
2.5. Рекомен‰о‚‡нн‡fl лите‡ту‡ Длfl более ‰ет‡льно„о изучениfl положений, обсуж‰енных ‚ этой лекции, мы екомен‰уем нижесле‰ующие кни„и и с‡йты. Пункты, ук‡з‡нные ‚ скобк‡х, пок‡з‡ны ‚ списке ссылок ‚ конце кни„и.
Кни„и Несколько кни„ ‰‡ют постой, но полный ох‚‡т теоии чисел: [Ros06], [Sch99], [Cou99] и [BW00]. М‡тицы обсу扇ютсfl ‚ любой кни„е по линейной ‡л„ебе; [LEF04], [DF04] и [Dur05] — это хоошие кни„и ‰лfl н‡чин‡ющих.
С‡йты Нижесле‰ующие с‡йты ‰‡ют больше инфом‡ции о тем‡х, ‡ссмотенных ‚ этой лекции. http:en.wikipedia.org/wiki/Euclidean_algorithm http:en.wikipedia.org/wiki/Multiplicative_inverse http:en.wikipedia.org/wiki/Additive-inverse 66
Лекциfl 2
М‡тем‡тик‡ киптфии. Ч‡сть I. Мо‰ульн‡fl ‡ифметик‡, с‡‚нениfl
2.6. Ито„и • Множест‚о целых чисел, обозн‡ч‡емое Z, со‰ежит ‚се целые числ‡ от отиц‡тельной бесконечности ‰о положительной бесконечности. Длfl целых чисел опе‰елены ти общих бин‡ных опе‡ции — сложение, ‚ычит‡ние и умножение. Деление не у‰о‚лет‚оflет опе‰елению бин‡ности, потому что тебует ‰‚‡ ‚ых ‚место о‰но„о. • В ‡ифметике целых чисел, если мы ‰елим a н‡ n, мы можем получить q и r. Отношение меж‰у этими четыьмfl целыми числ‡ми можно пок‡з‡ть к‡к q × n + r. Мы „о‚оим a|b, если a = q × n. В этой лекции мы ‡ссмотели четые с‚ойст‚‡ теоии ‰елимости. • Д‚‡ положительных целых числ‡ мо„ут иметь больше чем о‰ин общий ‰елитель. Но мы обычно интеесуемсfl н‡ибольшим общим ‰елителем. Ал„оитм Е‚кл艇 ‰‡ет эффекти‚ный и систем‡тический ‡л„оитм ‚ычислениfl н‡ибольше„о обще„о ‰елителfl ‰‚ух целых чисел. • Р‡сшиенный ‡л„оитм Е‚кл艇 может ‚ычислить НОД (a, b) и ‚ычислить зн‡чение s и t, котоые у‰о‚лет‚оflют у‡‚нению as + bt = НОД (a, b). • Линейное ‰иоф‡нто‚о у‡‚нение ‰‚ух пееменных: ax + by = c. Оно имеет ч‡стное и общие ешениfl. • В мо‰ульной ‡ифметике мы интеесуемсfl только ост‡тк‡ми; мы хотим зн‡ть зн‡чение r, к‡ мы ‰елим a н‡ n. Мы используем но‚ый опе‡то, н‡з‚‡нный мо‰улем (mod), т‡кой, что a mod n = r. З‰есь n н‡зы‚‡етсfl мо‰улем, ‡ r н‡зы‚‡етсfl ‚ычетом. • Результ‡т опе‡ции по мо‰улю n — ‚с儉‡ целое число меж‰у 0 и n. Мы можем ск‡з‡ть, что опе‡циfl по мо‰улю n со片ет н‡бо, котоый ‚ мо‰ульной ‡ифметике н‡зы‚‡етсfl множест‚ом н‡именьших ‚ычето‚ по мо‰улю n, или Zn. • Отоб‡жение из Z ‚ Zn не со‚‡ют «о‰ин ‚ о‰ин». Опе‰еленные элементы Z мо„ут быть отоб‡жены ‚ элемент Zn. В мо‰ульной ‡ифметике ‚се целые числ‡ ‚ Z, отоб‡ж‡емые ‚ Zn, н‡зы‚‡ютсfl с‡‚нениflми по мо‰улю. Длfl обозн‡чениfl этой опе‡ции пименflетсfl опе‡то с‡‚нениfl (≡). • Систем‡ ‚ычето‚ [a] — множест‚о целых чисел, с‡‚нимых по мо‰улю n. Это множест‚о ‚сех целых чисел x = a (mod n). • Ти бин‡ных опе‡ции (сложение, ‚ычит‡ние и умножение), опе‰еленные ‰лfl множест‚‡ Z, мо„ут быть т‡кже опе‰елены ‰лfl множест‚‡ Zn. Пи необхо‰имости езульт‡т может быть от‡жен ‚ Zn пи помощи опе‡ции mod. • В этой лекции ‰лfl мо‰ульных опе‡тоо‚ были опе‰елены несколько с‚ойст‚. • В Zn ‰‚‡ числ‡ a и b — ‡‰‰ити‚ные ин‚есии по отношению ‰у„ к ‰у„у, если a + b ≡ 0 (mod n). Они — мультиплик‡ти‚ные ин‚есии по отношению ‰у„ к ‰у„у, если a × b ≡ 1 (mod n). Целое число a имеет мультиплик‡ти‚ную ин‚есию ‚ Zn т‡ и только т‡, к‡ НОД (n, a) = 1( a и n — ‚з‡имно постые числ‡).
67
Кус
Киптфиfl и безоп‡сность сетей
• Р‡сшиенный ‡л„оитм Е‚кл艇 н‡хо‰ит мультиплик‡ти‚ные ин‚есии b ‚ Zn , к‡ ‰‡ны n и b и НОД (n, b) = 1. Мультиплик‡ти‚н‡fl ин‚есиfl b — это зн‡чение t пи соот‚етст‚ующем отоб‡жении ‚ Zn. • М‡тиц‡ — пflмоу„ольный м‡сси‚ l × m. элементы, „‰е l fl‚лflетсfl номеом стоки, ‡ m — номе столбц‡. Мы обозн‡ч‡ем м‡тицу 燄뇂ной бук‚ой и жиным шифтом, н‡пиме, A. Элемент aij ‡сположен ‚ i-той стоке и j-том столбце. • Д‚е м‡тицы ‡‚ны, если они имеют о‰ин‡ко‚ое число сток и столбцо‚ и соот‚етст‚ующие элементы ‡‚ны. • Сложение и ‚ычит‡ние можно ‰ел‡ть только ‰лfl м‡тиц ‡‚но„о ‡зме‡. Мы можем умножить ‰у„ н‡ ‰у„‡ ‰‚е м‡тицы ‡зличных ‡змео‚, если число столбцо‚ пе‚ой м‡тицы со‚‡ет с числом сток ‚тоой м‡тицы. • В м‡тиц‡х ‚ычето‚ ‚се элементы беутсfl из Zn . • Все опе‡ции н‡ м‡тиц‡х ‚ычето‚ по‚о‰flтсfl ‚ мо‰ульной ‡ифметике. М‡тиц‡ ‚ычет‡ имеет ин‚есию, если ‰етемин‡нт м‡тицы имеет ин‚есию. • У‡‚нение ax ≡ b (modn) не может иметь ешениfl или ниченное число ешений. Если НОД (a, n) b, то имеетсfl ниченное число ешений. • Систем‡ линейных у‡‚нений с тем же с‡мым мо‰улем может быть ешен‡, если м‡тиц‡, сфоминн‡fl из коэффициенто‚ у‡‚нений, имеет ин‚есию.
2.7. Н‡бо ‰лfl п‡ктики Обзоные ‚опосы 1. Пок‡жите ‡зличие меж‰у Z и Zn. К‡кое из этих множест‚ может со‰еж‡ть отиц‡тельные целые числ‡? К‡к мы можем отоб‡зить целое число ‚ Z ‚ целое число ‚ Zn? 2. Пеечислите четые с‚ойст‚‡ теоии ‰елимости, обсуж‰енной ‚ этой лекции. Пи‚е‰ите пиме цело„о числ‡ с е‰инст‚енным ‰елителем. Пи‚е‰ите пиме цело„о числ‡ только с ‰‚умfl ‰елителflми. Пи‚е‰ите пиме цело„о числ‡ с более чем ‰‚умfl ‰елителflми. 3. Опе‰елите н‡ибольший общий ‰елитель ‰‚ух целых чисел. К‡кой ‡л„оитм может эффекти‚но н‡йти н‡ибольший общий ‰елитель?
5 26 4.
5.
3 123
27 127
15 21
23 96
8 5
Что т‡кое линейное ‰иоф‡нто‚о у‡‚нение ‰‚ух пееменных? Сколько ешений может иметь т‡кое у‡‚нение? К‡к может быть н‡й‰ено ешение(fl)? Что т‡кое опе‡то по мо‰улю и к‡кие у не„о имеютсfl пиложениfl? Пеечислите ‚се с‚ойст‚‡, котоые мы упомин‡ли ‚ этой лекции ‰лfl опе‡ций по мо‰улю. 68
Лекциfl 2
М‡тем‡тик‡ киптфии. Ч‡сть I. Мо‰ульн‡fl ‡ифметик‡, с‡‚нениfl
6. Опе‰елите с‡‚нение и сопост‡‚ьте е„о с‚ойст‚‡ со с‚ойст‚‡ми ‡‚енст‚‡. 7. Опе‰елите систему ‚ычето‚ и н‡именьший ‚ычет. 8. К‡к ‡зниц‡ меж‰у множест‚ом Zn и множест‚ом Zn*? В к‡ком множест‚е к‡ж‰ый элемент имеет ‡‰‰ити‚ную ин‚есию? В к‡ком множест‚е к‡ж‰ый элемент имеет мультиплик‡ти‚ную ин‚есию? К‡кой ‡л„оитм используетсfl, чтобы н‡йти мультиплик‡ти‚ную ин‚есию цело„о числ‡ ‚ Zn? 9. Д‡йте опе‰еление м‡тицы. Что т‡кое м‡тиц‡-сток‡? Что т‡кое м‡тиц‡-столбец? Что т‡кое ꂇ‰‡тн‡fl м‡тиц‡? К‡к‡fl м‡тиц‡ имеет ‰етемин‡нт? К‡к‡fl м‡тиц‡ может иметь ин‚есию? 10. Опе‰елите линейное с‡‚нение. К‡кой ‡л„оитм может использтьсfl, чтобы ешить у‡‚нение ax ≡ b (mod n)? К‡к мы можем ешить н‡бо линейных у‡‚нений?
Уп‡жнениfl 11. К‡кие из сле‰ующих отношений fl‚лflютсfl истинными, ‡ к‡кие — ложными? 12. Используfl ‡л„оитм Э‚кл艇, н‡й‰ите н‡ибольший общий ‰елитель сле‰ующих п‡ целых чисел: ‡. 88 и 220 б. 300 и 42 ‚. 24 и 320 „. 401 и 700 13. Решите сле‰ующие пимеы: ‡. Д‡но НОД (a, b) = 24, н‡й‰ите НОД (a, b, 16) б. Д‡но НОД (a, b, c) = 12, н‡й‰ите НОД (a, b, c, 16) ‚. Н‡й‰ите НОД (200, 180, и 450) „. Н‡й‰ите НОД (200, 180 450 610) 14. Пе‰положим, что n — неотиц‡тельное целое число. ‡. Н‡й‰ите НОД (2n + 1, n) б. Используfl езульт‡т ч‡сти ‡, н‡й‰ите НОД (201, 100), НОД (81, 40) и НОД (501, 250) 15. Пе‰положим, что n — неотиц‡тельное целое число. ‡. Н‡й‰ите НОД (3 n + 1,2n +1). б. Используfl езульт‡т ч‡сти ‡, н‡й‰ите НОД (301, 201) и НОД (121, 81) 16. Используfl ‡сшиенный ‡л„оитм Е‚кл艇, н‡й‰ите н‡ибольший общий ‰елитель сле‰ующих п‡ и зн‡чениfl s и t: ‡. 4 и 7 б. 291 и 42 ‚. 84 и 320 „. 400 и 60 17. Н‡й‰ите езульт‡ты сле‰ующих опе‡ций: ‡. 22 mod 7 69
Кус
Киптфиfl и безоп‡сность сетей
б. 140 mod 10 ‚. –78 mod 13 „. 0 mod 15 18. Выполните сле‰ующие опе‡ции, сн‡ч‡л‡ используfl сок‡щение : ‡. (273 + 147) mod 10 б. (4223 + 17323) mod 10 ‚. (148 + 14432) mod 12 „. (2467+461) mod 12 19. Выполните сле‰ующие опе‡ции, сн‡ч‡л‡ используfl сок‡щение : ‡. (125 × 45) mod 10 б. (424 × 32) mod 10 ‚. (144 × 34) mod 12 „. (221 × 23) mod 22 20. Используfl с‚ойст‚‡ опе‡то‡ mod, ‰ок‡жите сле‰ующее: ‡. Ост‡ток от любо„о цело„о числ‡, к‡ оно ‰елитсfl н‡ 10, — с‡м‡fl ‡fl циф‡ б. Ост‡ток от любо„о цело„о числ‡, к‡ оно ‰елитсfl н‡ 100, — целое число, сост‡‚ленное из ‰‚ух с‡мых ых циф ‚. Ост‡ток от любо„о цело„о числ‡, к‡ оно ‰елитсfl н‡ 1000, — целое число, сост‡‚ленное из тех с‡мых ых циф 21. Из ‡ифметики из‚естно, что ост‡ток от цело„о числ‡ пи ‰елении н‡ 5 — т‡кой же, что и ост‡ток от ‰елениfl с‡мой ой цифы н‡ 5. Используйте с‚ойст‚‡ опе‡то‡ mod, чтобы ‰ок‡з‡ть это ут‚еж‰ение. 22. Из ‡ифметики из‚естно, что ост‡ток от цело„о числ‡ пи ‰елении н‡ 2 — т‡кой же, что и ост‡ток от ‰елениfl с‡мой ой цифы н‡ 2. Используйте с‚ойст‚‡ опе‡то‡ mod, чтобы ‰ок‡з‡ть это ут‚еж‰ение. 23. Из ‡ифметики из‚естно, что ост‡ток от цело„о числ‡ пи ‰елении н‡ 4 — т‡кой же, что и ост‡ток от ‰елениfl ‰‚ух с‡мых ых циф н‡ 4. Используйте с‚ойст‚‡ опе‡то‡ mod, чтобы ‰ок‡з‡ть это ут‚еж‰ение. 24. Из ‡ифметики из‚естно, что ост‡ток от цело„о числ‡ пи ‰елении н‡ 8 — т‡кой же, что и ост‡ток от ‰елениfl с‡мых ых тех циф н‡ 8. Используйте с‚ойст‚‡ опе‡то‡ mod, чтобы ‰ок‡з‡ть это ут‚еж‰ение. 25. Из ‡ифметики из‚естно, что ост‡ток от цело„о числ‡ пи ‰елении н‡ 9 — т‡кой же, к‡к и ост‡ток от ‰елениfl суммы е„о ‰есflтичных циф н‡ 9. Ду„ими слми, ост‡ток от ‰елениfl 6371 н‡ 9 — т‡кой же, к‡к пи ‰елении 17 н‡ 9, потому что 6 + 3 + 7 + 1 = 17. Используйте с‚ойст‚‡ опе‡то‡ mod, чтобы ‰ок‡з‡ть это ут‚еж‰ение. 26. Сле‰ующие уп‡жнениfl пок‡зы‚‡ют ост‡тки от степени 10 пи ‰елении н‡ 7. Мы можем ‰ок‡з‡ть, что эти зн‡чениfl бу‰ут по‚тоflтьсfl ‰лfl более ‚ысоких степеней. 100 mod 7 = 1 101 mod 7 = 3 103 mod 7 = l 104 mod 7 = –3
102 mod 7 = 2 105 mod 7 = –2
Используfl ‚ышеупомflнутую инфом‡цию, н‡й‰ите ост‡ток от ‰елениfl цело„о числ‡ н‡ 7. По‚еьте ‚‡ш мето‰ с числом 631453672. 70
Лекциfl 2
М‡тем‡тик‡ киптфии. Ч‡сть I. Мо‰ульн‡fl ‡ифметик‡, с‡‚нениfl
27. Сле‰ующие уп‡жнениfl пок‡зы‚‡ют ост‡тки от ‰елениfl степеней 10 н‡ 11. Мы можем ‰ок‡з‡ть, что эти зн‡чениfl бу‰ут по‚тоflтьсfl ‰лfl более ‚ысоких степеней. 100 mod 11 = 1 101 mod 11 = –l 102 mod 11 = 1 103 mod 11 = –1 Используfl ‚ышеупомflнутую инфом‡цию, н‡й‰ите ост‡ток от ‰елениfl цело„о числ‡ н‡ 11. По‚еьте ‚‡ш мето‰ с числом 631453672. 28. Сле‰ующие уп‡жнениfl пок‡зы‚‡ют ост‡тки от ‰елениfl степеней 10 н‡ 13. Мы можем ‰ок‡з‡ть, что эти зн‡чениfl бу‰ут по‚тоflтьсfl ‰лfl более ‚ысоких степеней. 100 mod 13 = 1 103 mod 13 = –l
101 mod 13 = –3 104 mod 13 = 3
102 mod 13 = –4 105 mod 13 = 4
Используfl ‚ышеупомflнутую инфом‡цию, н‡й‰ите ост‡ток от цело„о числ‡ пи ‰елении н‡ 13. По‚еьте ‚‡ш мето‰ с числом 631453672. 29. Н‡зн‡чим число‚ые зн‡чениfl ‰лfl 燄뇂ных бук‚ л‡тинско„о ‡лф‡‚ит‡ (A = 0, B = 1... Z = 25). Мы можем со片ть мо‰ульную ‡ифметику, используfl мо‰уль 26. a. Что fl‚лflетсfl (A + N) mod 26 ‚ этой системе? б. Чему ‡‚но (A + 6) mod 26 ‚ этой системе? ‚. Чему ‡‚но (Y – 5) mod 26 ‚ этой системе? „. Чему ‡‚но (C – 10) mod 26 ‚ этой системе? 30. Пеечислите ‚се п‡ы ‡‰‰ити‚ной ин‚есии по мо‰улю 20. 31. Пеечислите ‚се мультиплик‡ти‚ные об‡тные п‡ы по мо‰улю 20. 32. Н‡й‰ите мультиплик‡ти‚ную ин‚есию к‡ж‰о„о из сле‰ующих целых чисел ‚ Z180, используfl ‡сшиенный ‡л„оитм Е‚кл艇. ‡. 38 б. 7 ‚. 132
„. 24 33. Н‡й‰ите ч‡стное и общие ешениfl сле‰ующих линейных ‰иоф‡нто‚ых у‡‚нений: ‡. 25x + 10y = 15
71
Кус
Киптфиfl и безоп‡сность сетей
б. 19x + 13y = 20 ‚. 14x + 21y = 77 „. 40x +16y = 88 34. Пок‡жите, что нет ни о‰но„о ешениfl сле‰ующих линейных ‰иоф‡нто‚ых у‡‚нений: ‡. 15x + 12y = 13 б. 18x + 30y = 20 ‚. 15x + 25y = 69 „. 40x +30y = 98 35. Почто‚ое от‰еление пет м‡ки только з‡ 15 центо‚ и з‡ 39 центо‚. Н‡й‰ите число м‡ок, котоые ‰олжен купить клиент, чтобы опл‡тить пеесылку п‡кет‡ стоимостью 2,70$. Н‡й‰ите несколько ешений. 36. Н‡й‰ите ‚се ешениfl к‡ж‰о„о из сле‰ующих линейных у‡‚нений: ‡. 3x ≡ 4 (mod 5) б. 4x ≡ 4 (mod 6) ‚. 9x ≡ 12 (mod 7) „. 256x ≡ 442 (mod 60) 37. Н‡й‰ите ‚се ешениfl к‡ж‰о„о из сле‰ующих линейных у‡‚нений: ‡. 3x + 5 ≡ 4 (mod 5) б. 4x + 6 ≡ 4 (mod 6) ‚. 9x + 4 ≡ 12 (mod 7) „. 232x + 42 ≡ 248 (mod 50) 38. Н‡й‰ите (A × B) mod 16, используfl м‡тицы н‡ ис. 2.28. Рис. 2.28. М‡тицы ‰лfl уп‡жнениfl 38 39. Н‡ исунке 2.29 н‡й‰ите ‰етемин‡нт и мультиплик‡ти‚ную ин‚есию ‰лfl к‡ж‰ой м‡тицы ‚ычето‚ ‚ множест‚е Z10. Рис. 2.29. М‡тицы ‰лfl уп‡жнениfl 39 40. Н‡й‰ите ‚се ешениfl ‰лfl сле‰ующих систем линейных у‡‚нений: ‡. 3x + 5y ≡ 4 (mod 5) 2x + y ≡ 3 (mod 5) б. 3x + 2y ≡ 5 (mod 7) 4x + 6y ≡ 4 (mod 7) ‚. 7x + 3y ≡ 3 (mod 7) 4x + 2 y ≡ 5 (mod 7) „. 2x + 5y ≡ 5 (mod 8) x + 6y ≡ 3 (mod 8)
72
Лекциfl 3
Т‡‰иционные шифы с симметичным ключом
Лекциfl 3. Т‡‰иционные шифы с симметичным ключом Цели и со‰еж‡ние Эт‡ лекциfl пе‰ст‡‚лflет собой обзо т‡‰иционных шифо‚ с симметичным ключом, котоые использлись ‚ пошлом. Изучение пинципо‚ т‡ких шифо‚ „ото‚ит чит‡телfl к сле‰ующим лекциflм, котоые ‡ссм‡т肇ют со‚еменные симметичные шифы. Эт‡ лекциfl имеет несколько целей. • Опе‰елить теминоло„ию и концепции шифо‚ с симметичным ключом. • Об‡тить ‚ним‡ние н‡ ‰‚е к‡те„оии т‡‰иционных шифо‚: шифы по‰ст‡но‚ки и шифы пеест‡но‚ки. • Опис‡ть к‡те„оии кипто‡н‡лиз‡, котоые использлись обычно ‰лfl ‚зл‡мы‚‡ниfl симметичных шифо‚. • В‚ести концепцию шифо‚ поток‡ и шифо‚ блокио‚ки. • Обсу‰ить некотоые н‡иболее ‰оминиующие шифы, котоые пименflлись ‚ пошлом, т‡кие, н‡пиме, к‡к м‡шин‡ «Эни„쇻, ‡ссмотенн‡fl ‚ этой лекции. Общ‡fl и‰еfl шифо‚ с симметичным ключом бу‰ет пе‰ст‡‚лен‡ с использнием пимео‚ из киптфии. В‚о‰имые темины и опе‰елениfl используютсfl ‚о ‚сех более поз‰них лекциflх, „‰е ечь пой‰ет о шиф‡х с симметичным ключом. З‡тем мы обсу扇ем т‡‰иционные шифы с симметичным ключом. Эти шифы не пименflютсfl се„о‰нfl, но мы изуч‡ем их по нескольким пичин‡м. Во-пе‚ых, они поще, чем со‚еменные шифы, и их ле„че понflть. Во-‚тоых, они ‰емонстиуют осно‚ы киптфии и шифниfl. Эти осно‚ы мо„ут использтьсfl ‰лfl поним‡ниfl со‚еменных шифо‚. В-тетьих, ‡сск‡з о них по‰ит н‡с к изложению пинципо‚ постоениfl и необхо‰имости со‚еменных шифо‚, потому что т‡‰иционные шифы мо„ут быть ле„ко ‡т‡кны любыми пользтелflми компьютео‚, и шифы, котоые были безоп‡сны ‚ пежнее ‚емfl, не обеспеч肇ют безоп‡сности пи со‚еменном ‡з‚итии компьютео‚.
3.1. В‚е‰ение Рисунок 3.1 иллюстиует общую и‰ею шиф‡ с симметичным ключом. Н‡ исунке 3.1 объект, Алис‡, может пе則ть сообщение ‰у„ому объекту, Бобу, по несекетному к‡н‡лу, учиты‚‡fl, что поти‚ник (н‡зо‚ем е„о Е‚‡), не может понflть со‰еж‡ние сообщениfl, посто по‰слуш肇fl е„о по к‡н‡лу. Пе‚он‡ч‡льное сообщение от Алисы Бобу н‡з‚‡но исхо‰ным текстом; сообщение, пе則‚‡емое чеез к‡н‡л, н‡з‚‡но з‡шифнным текстом. Чтобы со片ть з‡шифнный текст из исхо‰но„о текст‡, Алис‡ использует ‡л„оитм шифниfl и со‚местный ключ з‡секеч肇ниfl. Длfl то„о чтобы со片ть обычный текст из з‡шифнно„о текст‡, Боб использует ‡л„оитм ‰ешифниfl и тот же секетный ключ. Мы бу‰ем н‡зы‚‡ть со‚местное ‰ейст‚ие ‡л„оитмо‚ шифниfl и ‰ешифниfl шифо‚кой. Ключ — н‡бо зн‡чений (чисел), котоыми опеиует ‡л„оитм шифо‚ки. 73
Кус
Киптфиfl и безоп‡сность сетей
Рис. 3.1. Общ‡fl и‰еfl шифниfl с симметичным ключом Об‡тите ‚ним‡ние, что шифние симметичными ключ‡ми использует е‰инст‚енный ключ (ключ, со‰еж‡щий непосе‰ст‚енно н‡бо ко‰иуемых зн‡чений) и ‰лfl ко‰иниfl, и ‰лfl ‰ешифниfl. Коме то„о, ‡л„оитмы шифниfl и ‰ешифниfl — ин‚есии ‰у„ ‰у„‡. Если P — обычный текст, C — з‡шифнный текст, ‡ K — ключ, ‡л„оитм ко‰иниfl Ek(x) со片ет з‡шифнный текст из исхо‰но„о текст‡. Ал„оитм же ‰ешифниfl Dk(x) со片ет исхо‰ный текст из з‡шифнно„о текст‡. Мы пе‰по뇄‡ем, что Ek(x) и Dk(x) ин‚есны по отношению ‰у„ к ‰у„у. Они пименflютсfl, после‰о‚‡тельно пеоб‡зуfl инфом‡цию из о‰но„о ‚и‰‡ ‚ ‰у„ой и об‡тно. Мы имеем: Шифние: C = Ek (P), Р‡сшифо‚к‡: P = Dk (C) „‰е Dk(Ek (x)) = Ek (Dk(x)) = x Мы можем ‰ок‡з‡ть, что исхо‰ный текст, со片нный Бобом, тот же с‡мый, что и исхо‰ный, пе則нный Алисой. Мы пе‰по뇄‡ем, что Боб со片ет P1; мы ‰ок‡жем, что P1 = P: Алис‡: C = Ek(P)
Боб: P1 = Dk (C) = Dk (Ek(P)) = P
Мы ‰олжны по‰чекнуть, что со„л‡сно пинципу Кекхофф‡1 (пи‚е‰енному ‰‡лее) лучше ‰ел‡ть ‡л„оитм шифниfl и ‰ешифниfl откытым, но сох‡нflть ‚ т‡йне со‚местный ключ. 1
О„юст Кекхофф ( August Kerckoff) — „олл‡н‰ский киптф, сфомули‚ший ‚ 1883 „о‰у пинципы со片ниfl и ‡спост‡нениfl ‡л„оитмо‚ шифниfl ‚ кни„е «Военн‡fl киптфиfl». 74
Лекциfl 3
Т‡‰иционные шифы с симметичным ключом
Это озн‡ч‡ет, что Алис‡ и Боб ну扇ютсfl ‚ ‰у„ом з‡щищенном к‡н‡ле ‰лfl обмен‡ ключом з‡секеч肇ниfl. Алис‡ и Боб мо„ут о‰н‡ж‰ы ‚стетитьсfl и обменflтьсfl ключом лично. З‡щищенный к‡н‡л ‡н‡ло„ично пе‰ст‡‚лflет собой «‚стечу лицом к лицу» ‰лfl обмен‡ ключом. Они мо„ут т‡кже ‰о‚еитьсfl тетьему лицу, чтобы он ‰‡л им о‰ин‡ко‚ые ключи. Они мо„ут со片ть ‚еменный ключ з‡секеч肇ниfl, используfl ‰у„ой ‚и‰ ‡симметично-ключе‚ых шифо‚, котоый бу‰ет по‰обно ‡ссмотен ‚ более поз‰них лекциflх. В этой лекции мы посто пиним‡ем, что сущест‚ует ут‚еж‰енный ключ з‡секеч肇ниfl меж‰у Алисой и Бобом. Пименflfl шифние симметичными ключ‡ми, Алис‡ и Боб мо„ут использть тот же с‡мый ключ ‰лfl с‚flзи н‡ ‰у„ом н‡п‡‚лении, от Боб‡ к Алисе. Именно поэтому мето‰ н‡з‚‡н симметичным. Ду„ой элемент ‚ шифнии симметичными ключ‡ми — число ключей. Алис‡ ну扇етсfl ‚ ‰у„ом ключе з‡секеч肇ниfl, чтобы с‚flз‡тьсfl с ‰у„им чело‚еком, ск‡жем, Дэ‚и‰ом. Если есть m „упп‡ лю‰ей, ‚ котоой к‡ж‰ый ‰олжен иметь с‚flзь ‰у„ с ‰у„ом, сколько ключей необхо‰имо? От‚ет — (m×(m. – 1))/2, потому что к‡ж‰ому чело‚еку 퇉о m – 1 ключ, чтобы с‚flз‡тьсfl с ост‡льной ч‡стью „уппы, но ключ меж‰у A и B может использтьсfl ‚ обоих н‡п‡‚лениflх. В более поз‰них лекциflх мы у‚и‰им, к‡к еш‡етсfl эт‡ поблем‡. Шифние можно пе‰ст‡‚лflть себе к‡к з‡мок, котоый з‡пи‡ет flщик, со‰еж‡щий сообщение; ‰ешифние можно пе‰ст‡‚лflть себе к‡к откытие з‡мк‡ т‡ко„о flщик‡. В шифнии симметичными ключ‡ми о‰ин и тот же ключ з‡мык‡ет и ‡змык‡ет з‡мок, к‡к это пок‡з‡но н‡ ис. 3.2. В более поз‰них лекциflх бу‰ет ‡сск‡з‡но, что шифние ‡симметичными ключ‡ми ну扇етсfl ‚ ‰‚ух ключ‡х: о‰ном ‰лfl з‡мык‡ниfl, ‚тоом — ‰лfl ‡змык‡ниfl з‡мк‡.
Рис. 3.2. Шифниfl симметичными ключ‡ми, к‡к з‡мык‡ние и ‡змык‡ние зaмк‡ с тем же с‡мым ключом
Пинципы Кекхофф‡ Хотfl можно пе‰положить, что шиф был бы более безоп‡сен, если бы мы скы‚‡ли и ‡л„оитм шифниfl/‰ешифниfl, и ключ з‡секеч肇ниfl, это не екомен‰уетсfl. Со„л‡сно пинципу Кекхофф‡, нужно ‚с儉‡ пе‰по뇄‡ть, что поти‚ник — Е‚‡ — зн‡ет ‡л„оитм ко‰иниfl/‰ешифниfl. Поти‚о‰ейст‚ие шиф‡ ‡т‡ке ‰олжно б‡зитьсfl только н‡ т‡йне ключ‡. Ду„ими слми, пе‰по뇄‡етсfl, что ключ ‰олжен быть н‡столько ту‰ен, что не 퇉о скы‚‡ть ‡л„оитм ко‰иниfl/‰ешифниfl. Эти пинципи‡льные положениfl 75
Кус
Киптфиfl и безоп‡сность сетей
ст‡нут более flсны, к‡ мы бу‰ем изуч‡ть со‚еменные шифы. Длfl со‚еменных шифо‚ се„о‰нfl сущест‚ует немно„о ‡л„оитмо‚. Множест‚о ключей (Ключе‚ой ‰омен) ‰лfl к‡ж‰о„о ‡л„оитм‡, о‰н‡ко, очень большое число, что меш‡ет поти‚нику н‡йти ключ.
Кипто‡н‡лиз Киптфиfl — н‡ук‡ и искусст‚о со片ниfl секетных ко‰о‚, кипто‡н‡лиз — н‡ук‡ и искусст‚о ‚зл‡мы‚‡ниfl этих ко‰о‚. В ‰ополнение к изучению мето‰о‚ киптфии мы т‡кже ‰олжны изучить мето‰ы кипто‡н‡лиз‡. Это необхо‰имо не ‰лfl то„о, чтобы ‚зл‡мы‚‡ть ко‰ы ‰у„их лю‰ей, ‡ чтобы оценить уflз‚имые мест‡ н‡ших киптфических систем. Изучение кипто‡н‡лиз‡ помет н‡м со片‚‡ть лучшие секетные ко‰ы. Есть четые общих тип‡ ‡т‡к кипто‡н‡лиз‡, пок‡з‡нные н‡ ис. 3.3. В этой и сле‰ующих лекциflх мы бу‰ем ‡зби‡ть некотоые из этих ‡т‡к н‡ конкетные шифы.
Рис. 3.3. Ат‡ки кипто‡н‡лиз‡ Ат‡к‡ только н‡ з‡шифнный текст В ‡т‡ке только н‡ з‡шифнный текст Е‚‡ имеет ‰оступ лишь к некотоому з‡шифнному тексту. Он‡ побует н‡йти соот‚етст‚ующий ключ и исхо‰ный текст. Пи этом, со„л‡сно пе‰положению, Е‚‡ зн‡ет ‡л„оитм и может пеех‚‡тить з‡шифнный текст. Ат‡к‡ только з‡шифнно„о текст‡ — с‡м‡fl ‚еоflтн‡fl, потому что Е‚е ‰лfl нее нужен только с‡м текст. Шиф ‰олжен сеьезно пепflтст‚ть этому типу ‡т‡ки и не поз‚олить ‰ешифние сообщениfl поти‚ником. Рисунок 3.4 иллюстиует поцесс ‡т‡ки. В ‡т‡ке только н‡ з‡шифнный текст мо„ут использтьсfl ‡зличные мето‰ы. Мы ‡ссмотим з‰есь только некотоые из них. Ат‡к‡ „убой силы Пи мето‰е „убой силы, или мето‰е исчепы‚‡юще„о ключе‚о„о поиск‡, Е‚‡ побует пименить ‚се ‚озможные ключи. Мы пе‰по뇄‡ем, что Е‚‡ зн‡ет ‡л„оитм и зн‡ет множест‚о ключей (список ‚озможных ключей). Пи использнии это„о мет пеех‚‡ты‚‡етсfl исхо‰ный текст и 燉ейст‚уютсfl ‚се ‚озможные ключи, пок‡ не получитсfl исхо‰ный текст. Со片ние ‡т‡ки „убой силы было ‚ пошлом ту‰ной 燉‡чей; се„о‰нfl с помощью компьюте‡ это ст‡ло поще. Чтобы пе‰от‚‡тить этот тип ‡т‡ки, число ‚озможных ключей ‰олжно быть очень большим. 76
Лекциfl 3
Т‡‰иционные шифы с симметичным ключом
Рис. 3.4. Ат‡к‡ только н‡ з‡шифнный текст Ст‡тистическ‡fl ‡т‡к‡ Кипто‡н‡литик может из‚лечь ‚ы„о‰у из некотоых с‚ойст‚енных flзыку исхо‰но„о текст‡ х‡‡ктеистик, чтобы н‡ч‡ть ст‡тистическую ‡т‡ку. Н‡пиме, мы зн‡ем, что буꂇ E — н‡иболее ч‡сто используем‡fl буꂇ ‚ ‡н„лийском тексте. Кипто‡н‡литик н‡хо‰ит н‡иболее ч‡сто используемый сим‚ол ‚ з‡шифнном тексте и пиним‡ет, что это соот‚етст‚ующий сим‚ол исхо‰но„о текст‡ — E. После опе‰елениfl нескольких п‡ ‡н‡литик может н‡йти ключ и ‡сшифть сообщение. Чтобы пе‰от‚‡тить этот тип ‡т‡ки, шиф ‰олжен скы‚‡ть х‡‡ктеистики flзык‡. Ат‡к‡ по об‡зцу Некотоые шифы скы‚‡ют х‡‡ктеистики flзык‡, но со片ют некотоые об‡зцы ‚ з‡шифнном тексте. Кипто‡н‡литик может использть ‡т‡ку по об‡зцу, чтобы ‚злом‡ть шиф. Поэтому ‚‡жно использть шифы, котоые с‰ел‡ли бы посм‡т肇емый з‡шифнный текст н‡сколько ‚озможно неопе‰еленным, ‡бст‡ктным. Ат‡к‡ зн‡ниfl исхо‰но„о текст‡ Пи ‡т‡ке зн‡ниfl исхо‰но„о текст‡ Е‚‡ имеет ‰оступ к некотоым п‡‡м «исхо‰ный/з‡шифнный текст» ‚ ‰ополнение к пеех‚‡ченному з‡шифнному тексту, котоый он‡ хочет ‚злом‡ть, к‡к пок‡з‡но н‡ ис. 3.5. П‡ы исхо‰но„о/з‡шифнно„о текст‡ были соб‡ны ‡нее. Н‡пиме, Алис‡ пее‰‡л‡ секетное сообщение Бобу, но позже откыл‡ со‰еж‡ние сообщениfl постоонним. Е‚‡ х‡нил‡ и з‡шифнный текст, и исхо‰ный текст, чтобы использть их, к‡ по퇉обитсfl ‚злом‡ть сле‰ующее секетное сообщение от Алисы Бобу, пе‰по뇄‡fl, что Алис‡ не изменит с‚ой ключ. Е‚‡ соби‡ет зн‡ниfl об отношениflх меж‰у пе‰ы‰ущей п‡ой, чтобы ‡н‡лизить текущий з‡шифнный текст. Те же с‡мые мето‰ы, используемые ‚ ‡т‡ке только ‰лfl з‡77
Кус
Киптфиfl и безоп‡сность сетей
Рис. 3.5. Ат‡к‡ зн‡ниfl исхо‰но„о текст‡ шифнно„о текст‡, мо„ут быть пименены з‰есь. Но эту ‡т‡ку осущест‚ить поще, потому что Е‚‡ имеет больше инфом‡ции ‰лfl ‡н‡лиз‡. О‰н‡ко может случитьсfl, что Алис‡ изменил‡ с‚ой ключ или не ‡скы‚‡л‡ со‰еж‡ниfl любых пе‰ы‰ущих сообщений, — т‡ по‰обн‡fl ‡т‡к‡ ст‡нет не‚озможной. Ат‡к‡ с ‚ыбокой исхо‰но„о текст‡ Ат‡к‡ с ‚ыбокой исхо‰но„о текст‡ по‰обн‡ ‡т‡ке зн‡ниfl исхо‰но„о текст‡, но п‡ы «исхо‰ный/з‡шифнный текст» были ‚ыб‡ны и из„ото‚лены с‡мим н‡п‡‰‡‚шим. Рисунок 3.6 иллюстиует этот поцесс.
Рис. 3.6. Ат‡к‡ с ‚ыбокой исхо‰но„о текст‡ 78
Лекциfl 3
Т‡‰иционные шифы с симметичным ключом
Это может случитьсfl, н‡пиме, если Е‚‡ имеет ‰оступ к компьютеу Алисы. Он‡ ‚ыби‡ет некотоый исхо‰ный текст и со片ет с помощью компьюте‡ з‡шифнный текст. Конечно, он‡ не имеет ключ‡, потому что ключ обычно ‡змещ‡етсfl ‚ пммном обеспечении, используемом пе則тчиком. Этот тип ‡т‡ки н‡мно„о поще осущест‚ить, но он н‡именее ‚еоflтен, поскольку пзум傇ет слишком мно„о «если». Ат‡к‡ с ‚ыбоом з‡шифнно„о текст‡ Ат‡к‡ с ‚ыбоом з‡шифнно„о текст‡ по‰обн‡ ‡т‡ке с ‚ыбокой исхо‰но„о текст‡, з‡ исключением то„о, что ‚ыби‡ет некотоый з‡шифнный текст и ‡сшифо‚ы‚‡ет е„о, чтобы сфомить п‡у «з‡шифнный/исхо‰ный текст» (это случ‡етсfl, к‡ Е‚‡ имеет ‰оступ к компьютеу Боб‡). Рисунок 3.7 пок‡зы‚‡ет этот поцесс.
Рис. 3.7. Ат‡к‡ с ‚ыбоом з‡шифнно„о текст‡
К‡те„оии т‡‰иционных шифо‚ Мы можем ‡з‰елить т‡‰иционные шифы с симметичным ключом н‡ ‰‚е обшиные к‡те„оии: шифы по‰ст‡но‚ки и шифы пеест‡но‚ки. В шифе по‰ст‡но‚ки мы з‡менflем о‰ин сим‚ол ‚ з‡шифнном тексте н‡ ‰у„ой сим‚ол; ‚ шифе пеест‡но‚ки — менflем мест‡ми позиции сим‚оло‚ ‚ исхо‰ном тексте.
3.2. Шифы по‰ст‡но‚ки Шиф по‰ст‡но‚ки з‡менflет о‰ин сим‚ол ‰у„им. Если сим‚олы ‚ исхо‰ном тексте — сим‚олы ‡лф‡‚ит‡, то мы з‡менflем о‰ну бук‚у ‰у„ой. Н‡пиме, мы можем з‡менить бук‚у A бук‚ой D, ‡ бук‚у T — бук‚ой Z. Если сим‚олы — циф79
Кус
Киптфиfl и безоп‡сность сетей
ы (от 0 ‰о 9), мы можем з‡менить 3 н‡ 7 и 2 н‡ 6. Шифы по‰ст‡но‚ки мо„ут быть ‡збиты н‡ ‰‚е к‡те„оии: моно‡лф‡‚итные или мно„о‡лф‡‚итные шифы. Шиф по‰ст‡но‚ки з‡менflет о‰ин сим‚ол ‰у„им.
Моно‡лф‡‚итные шифы Сн‡ч‡л‡ обсу‰им шифы по‰ст‡но‚ки, н‡зы‚‡емые моно‡лф‡‚итными шиф‡ми. В т‡кой по‰ст‡но‚ке буꂇ (или сим‚ол) ‚ исхо‰ном тексте ‚с儉‡ изменflетсfl н‡ о‰ну и ту же бук‚у (или сим‚ол) ‚ з‡шифнном тексте не燂исимо от е„о позиции ‚ тексте. Н‡пиме, если ‡л„оитм опе‰елflет, что буꂇ A ‚ исхо‰ном тексте менflетсfl н‡ бук‚у D, то пи этом к‡ж‰‡fl буꂇ A изменflетсfl н‡ бук‚у D. Ду„ими слми, бук‚ы ‚ исхо‰ном тексте и з‡шифнном тексте н‡хо‰flтсfl ‚ отношении «о‰ин к о‰ному». В моно‡лф‡‚итной по‰ст‡но‚ке отношениfl меж‰у бук‚ой ‚ исхо‰ном тексте и бук‚ой ‚ з‡шифнном тексте — «о‰ин к о‰ному». Пиме 3.1 Пи‚е‰енный ниже пиме пок‡зы‚‡ет исхо‰ный текст и соот‚етст‚ующий ему з‡шифнный текст. Мы используем сточные сим‚олы, чтобы пок‡з‡ть исхо‰ный текст, и 燄뇂ные бук‚ы (сим‚олы ‚ехне„о е„ист‡), чтобы получить з‡шифнный текст. Шиф моно‡лф‡‚итный, потому что об‡ l з‡шифны к‡к O. Исхо‰ный текст: hello
З‡шифнный текст: KHOOR
Пиме 3.2 Пи‚е‰енный ниже пиме пок‡зы‚‡ет исхо‰ный текст и соот‚етст‚ующий ему з‡шифнный текст. Шиф не fl‚лflетсfl моно‡лф‡‚итным, потому что к‡ж‰‡fl буꂇ l (эль) з‡шифо‚‡н‡ ‡зличными сим‚ол‡ми. П傇fl буꂇ l (эль) з‡шифо‚‡н‡ к‡к N; ‚то‡fl — к‡к Z. Исхо‰ный текст: hello
З‡шифнный текст: ABNZF
А‰‰ити‚ный шиф С‡мый постой моно‡лф‡‚итный шиф — ‡‰‰ити‚ный шиф, е„о ин‡ н‡зы‚‡ют шифом с‰‚脇, ‡ ин‡ — шифом Цез‡fl, но темин ‡‰‰ити‚ный шиф лучше пок‡зы‚‡ет е„о м‡тем‡тический смысл. Пе‰положим, что исхо‰ный текст состоит из м‡леньких бук‚ (от a ‰о z) и з‡шифнный текст состоит из 燄뇂ных бук‚ (от A ‰о Z). Чтобы обеспечить пименение м‡тем‡тических опе‡ций к исхо‰ному и з‡шифнному текст‡м, мы пис‚оим к‡ж‰ой бук‚е число‚ое зн‡чение (‰лfl нижне„о и ‚ехне„о е„ист‡), к‡к это пок‡з‡но н‡ ис. 3.8. Н‡ исунке 3.8 к‡ж‰ому сим‚олу (нижний е„ист или ‚ехний е„ист) сопост‡‚лено целое число из Z26. Ключ з‡секеч肇ниfl меж‰у Алисой и Бобом — 80
Лекциfl 3
Т‡‰иционные шифы с симметичным ключом
Рис. 3.8. Пе‰ст‡‚ление бук‚ исхо‰но„о текст‡ и з‡шифнно„о текст‡ ‚ Z26 т‡кже целое число ‚ Zn. Ал„оитм ко‰иниfl пиᇂлflет ключ к сим‚олу исхо‰но„о текст‡; ‡л„оитм ‰ешифниfl ‚ычит‡ет ключ из сим‚ол‡ з‡шифнно„о текст‡. Все опе‡ции по‚о‰flтсfl ‚ Zn. Рисунок 3.9 пок‡зы‚‡ет поцесс шифниfl и ‰ешифниfl.
Рис. 3.9. А‰‰ити‚ный шиф Мы можем ле„ко пок‡з‡ть, что шифние и ‰ешифние fl‚лflютсfl ин‚есными ‰у„ ‰у„у, потому что исхо‰ный текст, со片нный Бобом (P1), тот же с‡мый, что и тот, котоый пе則н Алисой (P). P1= (C – k) mod 26 = (P + k – k) mod 26 = P К‡ пименflетсfl ‡‰‰ити‚ный шиф, исхо‰ный текст, з‡шифнный текст и ключ — целые числ‡ ‚ Z26. Пиме 3.3 Используйте ‡‰‰ити‚ный шиф с ключом = 15, чтобы з‡шифть сообщение «hello». Решение Мы пименflем ‡л„оитм ко‰иниfl к исхо‰ному тексту, буꂇ з‡ бук‚ой: 81
Кус
Киптфиfl и безоп‡сность сетей
Исхо‰ный текст h → 07 Исхо‰ный текст e → 04 Исхо‰ный текст l → 11 Исхо‰ный текст l → 11 Исхо‰ный текст o → 14
Шифние (07 + 15) mod 26 Шифние (04+ 15) mod 26 Шифние (11 + 15) mod 26 Шифние (11 + 15) mod 26 Шифние (14 + 15) mod 26
Шиф. Текст 22 → W Шиф. Текст 19 → T Шиф. Текст 00 → A Шиф. Текст 00 → A Шиф. Текст 03 → D
Результ‡т — «WTAAD». Об‡тите ‚ним‡ние, что шиф моно‡лф‡‚итный, потому что ‰‚‡ отоб‡жениfl о‰ной и той же бук‚ы исхо‰но„о текст‡ (l) з‡шифны к‡к о‰ин и тот же сим‚ол (A). Пиме 3.4 Используйте шиф сложениfl с ключом = 15, чтобы ‡сшифть сообщение «WTAAD». Решение Мы пименflем ‡л„оитм ‰ешифниfl к исхо‰ному тексту буꂇ з‡ бук‚ой: Шиф. Текст W → 22 Шиф. Текст T → 19 Шиф. Текст A → 00 Шиф. Текст A → 00
Шифние (22 – 15) mod 26 Шифние (19 – 15) mod 26 Шифние (00 – 15) mod 26 Шифние (00 – 15) mod 26
Исхо‰ный текст 07 → h Исхо‰ный текст 04 → e Исхо‰ный текст 11 → l Исхо‰ный текст 11 → l
Шиф. Текст D → 03 Шифние (03 – 15) mod 26 Исхо‰ный текст 14 → 0 Результ‡т — «hello». Об‡тите ‚ним‡ние, что опе‡ции по‚о‰flтсfl по мо‰улю 26 (см. лекцию 2), отиц‡тельный езульт‡т ‰олжен быть отоб‡жен ‚ Z26 (н‡пиме, –15 ст‡но‚итсfl 11). Шиф с‰‚脇 Истоически ‡‰‰ити‚ные шифы н‡зы‚‡лись шиф‡ми с‰‚脇 — по той пичине, что ‡л„оитм шифниfl может интепетитьсfl к‡к «к뇂иш‡ с‰‚脇 бук‚ы ‚низ», ‡ ‡л„оитм ‰ешифниfl может интепетитьсfl к‡к «к뇂иши с‰‚脇 бук‚ы ‚‚ех». Н‡пиме, если ключ = 15, ‡л„оитм ко‰иниfl с‰‚脇ет бук‚у н‡ 15 бук‚ ‚низ (к концу ‡лф‡‚ит‡). Ал„оитм ‰ешифниfl с‰‚脇ет бук‚у н‡ 15 бук‚ ‚‚ех (к н‡ч‡лу ‡лф‡‚ит‡). Конечно, к‡ мы ‰ост脇ем конц‡ или н‡ч‡л‡ ‡лф‡‚ит‡, мы ‰‚脇емсfl по кольцу к н‡ч‡лу (объfl‚ленные с‚ойст‚‡ опе‡ции по мо‰улю 26). Шиф Цез‡fl Юлий Цез‡ь использо‚‡л ‡‰‰ити‚ный шиф, чтобы с‚flз‡тьсfl со с‚оими чино‚ник‡ми. По этой пичине ‡‰‰ити‚ные шифы упомин‡ютсfl ин‡ к‡к шифы Цез‡fl. Цез‡ь ‰лfl с‚оей с‚flзи б‡л цифу 3. А‰‰ити‚ные шифы упомин‡ютсfl ин‡ к‡к шифы с‰‚脇 или шифы Цез‡fl. Кипто‡н‡лиз 82
Лекциfl 3
Т‡‰иционные шифы с симметичным ключом
А‰‰ити‚ные шифы уflз‚имы к ‡т‡к‡м только з‡шифнно„о текст‡, к‡ используетсfl исчепы‚‡ющий пеебо ключей (‡т‡к‡ „убой силы). Множест‚о ключей ‡‰‰ити‚но„о шиф‡ очень м‡ло — их только 26. О‰ин из ключей, нуле‚ой, fl‚лflетсfl бесполезным (з‡шифнный текст бу‰ет посто соот‚етст‚ть исхо‰ному тексту). Сле‰о‚‡тельно, ост‡етсfl только 25 ‚озможных ключей. Е‚‡ может ле„ко н‡ч‡ть ‡т‡ку „убой силы з‡шифнно„о текст‡. Пиме 3.5 Е‚‡ пеех‚‡тил‡ з‡шифнный текст «UVACLYFZLJBYL». Пок‡жите, к‡к он‡ может ‚злом‡ть шиф, используfl ‡т‡ку „убой силы. Решение Е‚‡ побует ‡скыть текст и после‰о‚‡тельно пееби‡ет ключи н‡чин‡fl с пе‚о„о. С помощью ключ‡ номе 7 он‡ получ‡ет осмысленный текст «not very secure» (не очень безоп‡сный). З‡шифнный текст: UVACLYFZLJBYL K=1
Исхо‰ный текст: tubkxeykiaxk
K= 2
Исхо‰ный текст: styajwdxjhzwj
K= 3
Исхо‰ный текст: rsxzivewigyvi
K= 4
Исхо‰ный текст: qrwyhubvhfhuh
K= 5
Исхо‰ный текст: pqvxgtaugewtg
K= 6
Исхо‰ный текст: opuwfsztfdvst
K= 7
Исхо‰ный текст: notverysecure
Ст‡тистические ‡т‡ки А‰‰ити‚ные шифы т‡кже мо„ут быть объект‡ми ст‡тистических ‡т‡к. Это особенно е‡льно, если поти‚ник пеех‚‡тил ‰линный з‡шифнный текст. Поти‚ник может ‚оспользтьсfl зн‡ниflми о ч‡стоте употеблениfl сим‚оло‚ ‚ 83
Кус
Киптфиfl и безоп‡сность сетей
конкетном flзыке. Т‡блиц‡ 3.1 пок‡зы‚‡ет ч‡стоту поfl‚лениfl опе‰еленных бук‚ ‰лfl ‡н„лийско„о текст‡ ‰линой ‚ 100 сим‚оло‚. Т‡блиц‡ 3.1 Ч‡стот‡ поfl‚лениfl бук‚ ‚ ‡н„лийском тексте О‰н‡ко инфом‡ции о ч‡стоте е‰инст‚енно„о сим‚ол‡ не‰ост‡точно, и это з‡ту‰нflет ‡н‡лиз шифнно„о текст‡, осннный н‡ ‡н‡лизе ч‡стоты поfl‚лениfl бук‚. Весьм‡ жел‡тельно зн‡ть ч‡стоту поfl‚лениfl комбин‡ций сим‚оло‚. Мы ‰олжны зн‡ть ч‡стоту поfl‚лениfl ‚ з‡шифнном тексте комбин‡ций с ‰‚умfl
или с темfl сим‚ол‡ми и с‡‚н肇ть ее с т‡ко‚ой ч‡стотой ‚ flзыке, н‡ котоом н‡пис‡н исхо‰ный ‰окумент. Н‡иболее употеблflемые „уппы с ‰‚умfl сим‚ол‡ми (‰и‡„‡мм‡ (diagrams)) и „уппы с темfl сим‚ол‡ми (т脇мм‡ (trigrams)) ‰лfl ‡н„лийско„о текст‡ пок‡з‡ны ‚ т‡блице 3.2. Т‡блиц‡ 3.2 Гуппы ‰и‡„‡мм и т脇мм , осннные н‡ их ч‡стоте поfl‚лениfl ‚ ‡н„лийском flзыке
Пиме 3.6 Е‚‡ пеех‚‡тил‡ сле‰ующий з‡шифнный текст. Используfl ст‡тистическую ‡т‡ку, н‡й‰ите исхо‰ный текст. XLILSYWIMWRSAJSVWEPIJSVJSYVQMPPMSRHSPPEVWMXMWASVXLQSVILY-VVCFIJSVIXLIWIPPIVVIGIMZIWQSVISJJIVW Решение К‡ Е‚‡ сост‡‚ит т‡блицу ч‡стоты бук‚ ‚ этом з‡шифнном тексте, он‡ получит: I = 14, V = 13, S = 12, и т‡к ‰‡лее. С‡мый ч‡стый сим‚ол – I — имеет 14 поfl‚лений. Это пок‡зы‚‡ет, что сим‚ол I ‚ з‡шифнном тексте, ‚еоflтно, соот‚етст‚ует сим‚олу e ‚ исхо‰ном тексте. Тем с‡мым, ключ = 4. Е‚‡ ‡сшифо‚ы‚‡ет текст и получ‡ет the house is now for sale for four million dollars it is worth more hurry before the seller receives more offers ‰ом тепеь петсfl з‡ четые миллион‡ ‰олл‡о‚, стоит поспешить, пок‡ п‚ец не получил больше пе‰ложений
Мультиплик‡ти‚ные шифы 84
Лекциfl 3
Т‡‰иционные шифы с симметичным ключом
Рис. 3.10. Мультиплик‡ти‚ный шиф В мультиплик‡ти‚ном шифе ‡л„оитм шифниfl пименflет умножение исхо‰но„о текст‡ ключом, ‡ ‡л„оитм ‰ешифниfl пименflет ‰еление з‡шифнно„о текст‡ ключом, к‡к пок‡з‡но н‡ ис. 3.10. О‰н‡ко поскольку опе‡ции по‚о‰flтсfl ‚ Z26, ‰ешифние з‰есь озн‡ч‡ет умножение н‡ мультиплик‡ти‚ную ин‚есию ключ‡. Об‡тите ‚ним‡ние, что ключ ‰олжен пи퇉леж‡ть н‡боу Zn* — это „‡‡нтиует, что шифние и ‰ешифние ин‚есны ‰у„ ‰у„у. В мультиплик‡ти‚ном шифе исхо‰ный текст и з‡шифнный текст — целые числ‡ ‚ Zn; ключ — целое число ‚ Zn*. Пиме 3.7 К‡ко‚о множест‚о ключей ‰лfl любо„о мультиплик‡ти‚но„о шиф‡? Решение Ключ ‰олжен быть ‚ Z26*. Это множест‚о имеет только 12 элементо‚: 1, 3, 5, 7, 9, 11, 15, 17, 19, 21, 23, 25. Пиме 3.8 Мы используем мультиплик‡ти‚ный шиф, чтобы з‡шифть сообщение «hello» с ключом 7. З‡шифнный текст «XCZZU». Исхо‰ный текст h → 07 Исхо‰ный текст e → 04 Исхо‰ный текст l → 11 Исхо‰ный текст l → 11 Исхо‰ный текст o → 14
Шифние (07 × 07) mod 26 Шифние (04 × 07) mod 26 Шифние (11 × 07) mod 26 Шифние (11 × 07) mod 26 Шифние (14 × 07) mod 26
Шиф. Текст 23 → X Шиф. Текст 02 → C Шиф. Текст 25 → Z Шиф. Текст 25 → Z Шиф. Текст 20 → U
Афинный шиф Мы можем комбинить ‡‰‰ити‚ные и мультиплик‡ти‚ные шифы, чтобы получить то, что н‡з‚‡но ‡ффинным шифом — комбин‡цией обоих шифо‚ с п‡ой 85
Кус
Киптфиfl и безоп‡сность сетей
Рис. 3.11. Афинный шиф ключей. Пе‚ый ключ пименflетсfl мультиплик‡ти‚ным шифом, ‚тоой — ‡‰‰ити‚ным шифом. Рисунок 3.11 ‰ок‡зы‚‡ет, что ‡финный шиф — ф‡ктически ‰‚‡ шиф‡, пименflемые о‰ин з‡ ‰у„им. Мы мо„ли бы пок‡з‡ть только о‰ну комплексную опе‡цию ‰лfl шифниfl или ‰ешифниfl, т‡кую, к‡к C = (P × k1 + k2) mod 26 и P = ((C – k2) × k1-1) mod 26. О‰н‡ко мы использли ‚еменный езульт‡т (T) и ук‡з‡ли ‰‚е от‰ельных опе‡ции, пок‡з‡‚ тем с‡мым, что ‚сflкий ‡з, к‡ мы используем комбин‡цию шифо‚, нужно убе‰итьсfl, что к‡ж‰ый из них имеет ин‚есию н‡ ‰у„ой стооне линии и что они используютсfl ‚ об‡тном поfl‰ке ‚ шифнии и ‰ешифнии. Если сложение — после‰нflfl ‡бот‡ ‚ шифнии, то ‚ычит‡ние ‰олжно быть пе‚ым ‚ ‰ешифнии. Пи ‡ффинном шифе отношение меж‰у исхо‰ным текстом P и шифнным текстом C опе‰елflетсfl, к‡к это пок‡з‡но ниже. C = (P x k1 + k2 ) mod 26 P = ((C – k2) x k1-1) mod 26 „‰е k1 мультиплик‡ти‚н‡fl ин‚есиfl k1, ‡ (– k2) – ‡‰‰ити‚н‡fl ин‚есиfl k2 -1
Пиме 3.9 Аффинный шиф пименflет п‡у ключей, ‚ котоой пе‚ый ключ из Z26*, ‡ ‚тоой — из Z26. Обл‡сть сущест‚ниfl ключей ‡‚н‡ 26 × 12 = 312. Пиме 3.10 Используйте ‡ффинный шиф, чтобы з‡шифть сообщение «hello» с ключе‚ой п‡ой (7, 2). Решение
Мы используем 7 ‰лfl мультиплик‡ти‚но„о ключ‡ и 2 ‰лfl ‡‰‰ити‚но„о ключ‡. Получ‡ем «ZEBBW». 86
Лекциfl 3
Т‡‰иционные шифы с симметичным ключом
P: h → 07 P: e → 04 P: l → 11 P: l → 11 P: o → 14
Шифние (07 × 07 +2) mod 26 Шифние (04 × 07 +2) mod 26 Шифние (11 × 07+2) mod 26 Шифние (11 × 07+2 ) mod 26 Шифние (14 × 07 +2) mod 26
C: 25 → Z C: 04 → E C: 01 → B C: 01 → B C: 22 → W
Пиме 3.11 Используйте ‡ффинный шиф, чтобы ‡сшифть сообщение «ZEBBW» с ключе‚ой п‡ой (7, 2) ‚ мо‰уле 26. Решение Чтобы н‡йти сим‚олы исхо‰но„о текст‡, пиᇂим ‡‰‰ити‚ную ин‚есию от (–2) ≡ 24 (mod 26) к полученному з‡шифнному тексту. Потом умножим езульт‡т н‡ мультиплик‡ти‚ную ин‚есию от 7-1 ≡ 15 (mod 26). Поскольку 2 имеет ‡‰‰ити‚ную ин‚есию ‚ Z26 и 7 имеет мультиплик‡ти‚ную ин‚есию ‚ Z26*, исхо‰ный текст — точно тот, что мы использли ‚ пимее 3.10. C: 25 → Z C: 04 → E C: 01 → B C: 01 → B C: 22 → W
Дешифние (07 × 07 – 2) mod 26 Дешифние (04 × 07 – 2) mod 26 Дешифние (11 × 07 – 2) mod 26 Дешифние (11 × 07 – 2) mod 26 Дешифние (14 × 07 – 2) mod 26
P: 07 → h P: 04 → e P: 11 → 1 P: 11 → l P: 14 → o
Пиме 3.12 А‰‰ити‚ный шиф — ч‡стный случ‡й ‡ффинно„о шиф‡, пи котоом k1 = 1. Мультиплик‡ти‚ный шиф — ч‡стный случ‡й ‡ффинно„о шиф‡, ‚ котоом k2 = 0. Кипто‡н‡лиз ‡ффинно„о шиф‡ Хо тfl ме то ‰ы „у бой си лы и ст‡ ти с ти че с кий ме то‰ ‡т‡ ки мо „ут пименflтьсfl только ‰лfl з‡шифнно„о текст‡, попобуем ‡т‡ку с ‚ыбокой исхо‰но„о текст‡. Пе‰положим, что Е‚‡ пеех‚‡ты‚‡ет сле‰ующий з‡шифнный текст: PWUFFOGWCHFDWIWEJOUUNJORSMDWRHVCMWJUPVCCG Е‚‡ т‡кже очень не퇉ол„о получ‡ет ‰оступ к компьютеу Алисы и имеет ‚емfl, ‰ост‡точное лишь ‰лfl то„о, чтобы н‡печ‡т‡ть исхо‰ный текст с ‰‚умfl сим‚ол‡ми: «et». Т‡ он‡ побует з‡шифть кооткий исхо‰ный текст, используfl ‰‚‡ ‡зличных ‡л„оитм‡, потому что не у‚еен‡, к‡кой из них fl‚лflетсfl ‡ффинным шифом. Длfl то„о чтобы н‡йти ключ, Е‚‡ 燉ейст‚ует сле‰ующую ст‡те„ию.
87
Кус
Киптфиfl и безоп‡сность сетей
a. Е‚‡ зн‡ет, что если пе‚ый ‡л„оитм fl‚лflетсfl ‡ффинным, он‡ может сост‡‚ить сле‰ующие у‡‚нениfl, осннные н‡ пе‚ом н‡бое ‰‡нных: e→W t→C
04 → 22 19 → 02
(04 x k1+k2) = 22 (mod 26) (19 x k1+k2) = 02 (mod 26)
К‡к мы узн‡ли ‚ лекции 2, эти ‰‚‡ у‡‚нениfl с‡‚нениfl мо„ут быть ешены (мо„ут быть н‡й‰ены зн‡чениfl k1, и k2). О‰н‡ко этот от‚ет непиемлем, потому что k1 = 16 не может быть пе‚ой ч‡стью ключ‡. Е„о зн‡чение, 16, не имеет мультиплик‡ти‚ной ин‚есии ‚ Z26*. b. Е‚‡ тепеь побует использть езульт‡т ‚тоо„о н‡бо‡ ‰‡нных: e→W t→C
04 → 22 19 → 05
(04 x k1+k2) = 22 (mod 26) (19 x k1+k2) = 05 (mod 26)
К‚‡‰‡тн‡fl м‡тиц‡ и ее ин‚есиfl — те же с‡мые, что и ‚ пе‰ы‰ущем пимее. Тепеь Е‚‡ получ‡ет k1 = 11 и k2 = 4, эт‡  fl‚лflетсfl пиемлемой, потому что k1 имеет мультиплик‡ти‚ную ин‚есию ‚ Z26*. Он‡ побует п‡у ключей (19, 22), котоые fl‚лflютсfl ин‚есией п‡ы (11, 4), и ‡сшифо‚ы‚‡ет сообщение. Исхо‰ный текст Best time of the year is spring when flower bloom С‡мое лучшее ‚емfl „ — ‚есн‡, к‡ ц‚етут ц‚еты
Моно‡лф‡‚итный шиф по‰ст‡но‚ки
Поскольку ‡‰‰ити‚ные, мультиплик‡ти‚ные и ‡ффинные шифы имеют м‡лое множест‚о ключей, они очень уflз‚имы к ‡т‡ке „убой силы. Алис‡ и Боб со„л‡сли е‰инст‚енный ключ, котоый они используют, чтобы з‡шифть к‡ж‰ую бук‚у ‚ исхо‰ном тексте или ‡сшифть к‡ж‰ую бук‚у ‚ з‡шифнном тексте. Ду„ими слми, ключ не燂исим от пе則‚‡емых бук‚. Лучшее ешение состоит ‚ том, чтобы со片ть отоб‡жение к‡ж‰ой бук‚ы исхо‰но„о текст‡ н‡ соот‚етст‚ующий сим‚ол з‡шифнно„о текст‡. Алис‡ и Боб мо„ут ‰о„о‚оитьсfl об отоб‡жении ‰лfl к‡ж‰ой бук‚ы и з‡пис‡ть е„о ‚ ‚и‰е т‡блицы. Рисунок 3.12 пок‡зы‚‡ет пиме т‡ко„о отоб‡жениfl. Рис. 3.12. Пиме ключ‡ ‰лfl моно‡лф‡‚итно„о шиф‡ по‰ст‡но‚ки Пиме 3.13 88
Лекциfl 3
Т‡‰иционные шифы с симметичным ключом
Мы можем использть ключ, пок‡з‡нный н‡ исунке 3.12, чтобы з‡шифть сообщение This message is easy to encrypt but hard to find the key (это сообщение посто з‡шифть, но ту‰но н‡йти ключ) З‡шифнное сообщение имеет ‚и‰ ICFVQRVVNEFVRNVSIYRGAHSLIOJICNHTIYBFGTICRXRS Кипто‡н‡лиз Р‡зме ключе‚о„о пост‡нст‚‡ ‰лfl моно‡лф‡‚итно„о шиф‡ по‰ст‡но‚ки — число пеест‡но‚ок из 26, т.е. 26! (почти 4 × 1026). Это ‰ел‡ет ‡т‡ку „убой силы чез‚ыч‡йно ту‰ной ‰лfl Е‚ы, ‰‡же если он‡ использует мощный компьюте. О‰н‡ко он‡ может пименить ст‡тистическую ‡т‡ку, осннную н‡ ч‡стоте сим‚оло‚. Шиф не изменflет ч‡стоту употеблениfl сим‚оло‚. Моно‡лф‡‚итные шифы не изменflют ч‡стоту поfl‚лениfl сим‚оло‚ ‚ з‡шифнном тексте, что ‰ел‡ет шифы уflз‚имыми к ст‡тистической ‡т‡ке.
Мно„о‡лф‡‚итные шифы В мно„о‡лф‡‚итной по‰ст‡но‚ке к‡ж‰ое поfl‚ление сим‚ол‡ может иметь ‡зличную з‡мену. Отношениfl меж‰у сим‚олом ‚ исхо‰ном тексте и сим‚олом ‚ з‡шифнном тексте — «о‰ин ко мно„им». Н‡пиме, «a» может быть з‡шифно к‡к «D» ‚ н‡ч‡ле текст‡, но к‡к «N» — ‚ сее‰ине. Мно„о‡лф‡‚итные шифы имеют пеимущест‚о: они скы‚‡ют ч‡стоту поfl‚лениfl сим‚ол‡ осно‚но„о flзык‡. Е‚‡ не может использть ст‡тистическую ч‡стоту от‰ельно„о сим‚ол‡, чтобы ‚злом‡ть з‡шифнный текст. Чтобы со片ть мно„о‡лф‡‚итный шиф, мы ‰олжны с‰ел‡ть к‡ж‰ый сим‚ол з‡шифнно„о текст‡ 燂исflщим от соот‚етст‚ующе„о сим‚ол‡ исхо‰но„о текст‡ и позиции сим‚ол‡ исхо‰но„о текст‡ ‚ сообщении. Это пзум傇ет, что н‡ш ключ ‰олжен быть потоком по‰ключей, ‚ котоых к‡ж‰ый по‰ключ т‡к или ин‡че 燂исит от позиции сим‚ол‡ исхо‰но„о текст‡, котоый используетсfl ‰лfl ‚ыбо‡ по‰ключ‡ шифниfl. Ду„ими слми, мы ‰олжны иметь ключе‚ой поток k = (k1, k2, k3.….), ‚ котоом ki пименflетсfl, чтобы з‡шифть i-тый сим‚ол ‚ исхо‰ном тексте и со片ть i-тый сим‚ол ‚ з‡шифнном тексте. А‚тоключе‚ой шиф Чтобы понflть 燂исимость ключ‡ от позиции, обсу‰им постой мно„о‡лф‡‚итный шиф, н‡з‚‡нный «‡‚тоключе‚ым». В этом шифе ключ — поток по‰ключей, ‚ котоом к‡ж‰ый по‰ключ используетсfl, чтобы з‡шифть соот‚етст‚ующий сим‚ол ‚ исхо‰ном тексте. Пе‚ый по‰ключ — опе‰еленное 燇нее зн‡чение, т‡йно со„л‡снное Алисой и Бобом. Втоой по‰ключ — зн‡чение пе‚о„о 89
Кус
Киптфиfl и безоп‡сность сетей
сим‚ол‡ исхо‰но„о текст‡ (меж‰у 0 и 25). Тетий — зн‡чение ‚тоо„о сим‚ол‡ исхо‰но„о текст‡. И т‡к ‰‡лее. P = P1 P2 P3….. C = C1 C2 C3….. K = (k1P1, P2, P3,…..) Шифние Ci = (Pi + ki) mod 26 Дешифние Pi = (Ci – ki) mod 26 ͇炇ние шиф‡, ‡‚тоключе‚ой, пзум傇ет, что по‰ключи со片ютсfl ‡‚том‡тически ‚ 燂исимости от сим‚оло‚ шиф‡ исхо‰но„о текст‡ ‚ поцессе шифниfl. Пиме 3.14 Пе‰положим, что Алис‡ и Боб со„л‡сились использть ‡‚тоключе‚ой шиф с н‡ч‡льным ключе‚ым зн‡чением k1 = 12. Тепеь Алис‡ хочет пе則ть Бобу сообщение «Attack is today» («Ат‡к‡ — се„о‰нfl»). Шифние по‚о‰итсfl сим‚ол з‡ сим‚олом. К‡ж‰ый сим‚ол ‚ исхо‰ном тексте сн‡ч‡л‡ з‡менflетсfl е„о зн‡чением цело„о числ‡, к‡к пок‡з‡но н‡ ис. 3.8, пе‚ый по‰ключ пиᇂлflетсfl, чтобы со片ть пе‚ый сим‚ол з‡шифнно„о текст‡. Ост‡льн‡fl ч‡сть ключ‡ со片етсfl по мее чтениfl сим‚оло‚ исхо‰но„о текст‡. Об‡тите ‚ним‡ние, что шиф fl‚лflетсfl мно„о‡лф‡‚итным, потому что эти ти поfl‚лениfl «a» ‚ исхо‰ном тексте з‡шифны ‡злично. Ти ‚озникно‚ениfl «t» т‡кже з‡шифны ‡злично. Исхо‰ный текст: Зн‡чениfl P: Поток ключей Зн‡чениfl C: З‡шифнный Текст:
a t t a c k i s t o d a y 00 19 19 00 02 10 08 18 19 14 03 00 24 12 00 19 19 00 02 10 08 18 19 14 03 00 12 19 12 19 02 12 18 00 11 7 17 03 24 M
T
M
T
C
M
S
A
L
H
R
D
Y
Кипто‡н‡лиз А‚тоключе‚ой шиф ‰ейст‚ительно скы‚‡ет ст‡тистику ч‡стоты от‰ельно„о сим‚ол‡. О‰н‡ко он т‡к же уflз‚им пи ‡т‡ке с помощью „убой силы, к‡к и ‡‰‰ити‚ный шиф. Пе‚ый по‰ключ может быть только о‰ним из 25 зн‡чений (1–25).
Мы ну扇емсfl ‚ мно„о‡лф‡‚итных шиф‡х, котоые не только скы‚‡ют х‡‡ктеистики flзык‡, но и имеют большие множест‚‡ ключей. Шиф плейфее‡
1
плейфее (playfair) – 脇ющий по ил‡м. 90
Лекциfl 3
Т‡‰иционные шифы с симметичным ключом
Ду„ой пиме мно„о‡лф‡‚итно„о шиф‡ — Шиф плейфее‡1, использ‚шийсfl бит‡нской ‡мией ‚ течение Пе‚ой мио‚ой ‚ойны. Ключ з‡секеч肇ниfl ‚ этом шифе с‰ел‡н из 25 бук‚ ‡лф‡‚ит‡, ‡змещенных ‚ м‡тице 5 × 5 (бук‚ы I и J ‡ссм‡т肇ютсfl пи шифнии к‡к о‰ин‡ко‚ые). С помощью ‡зличных со„л‡шений о ‡змещении бук‚ ‚ м‡тице можно со片ть мно„о ‡зличных ключей з‡секеч肇ниfl. О‰но из ‚озможных со„л‡шений пок‡з‡но н‡ исунке 3.13. Рис. 3.13. Пиме секетно„о ключ‡ плейфее‡ Пее‰ шифнием исхо‰ный текст ‡зб肇етсfl н‡ п‡ы; если ‰‚‡ бук‚ы п‡ы о‰ин‡ко‚ые, то, чтобы от‰елить их, ‚ст‡‚лflетсfl фикти‚н‡fl буꂇ. После ‚ст‡‚ки фикти‚ных бук‚, если число сим‚оло‚ ‚ исхо‰ном тексте нечетно, ‚ конце ‰оᇂлflетсfl о‰ин ‰ополнительный фикти‚ный сим‚ол, чтобы с‰ел‡ть число сим‚оло‚ четным. Шиф использует ти ил‡ ‰лfl шифниfl: a. если эти ‰‚е бук‚ы-п‡ы ‡сположены ‚ о‰ной и той же стоке т‡блицы ключ‡ з‡секеч肇ниfl, соот‚етст‚ующий з‡шифнный сим‚ол ‰лfl к‡ж‰ой бук‚ы — сле‰ующий сим‚ол с‡ ‚ той же с‡мой стоке (с ‚о炇щением к н‡ч‡лу стоки; если сим‚ол исхо‰но„о текст‡ — после‰ний сим‚ол ‚ стоке); b. если эти ‰‚е бук‚ы-п‡ы ‡сположены ‚ о‰ном и том же столбце т‡блицы ключ‡ з‡секеч肇ниfl, соот‚етст‚ующий з‡шифнный сим‚ол ‰лfl к‡ж‰ой бук‚ы — сим‚ол ниже это„о ‚ том же с‡мом столбце (с ‚о炇щением к н‡ч‡лу столбц‡; если сим‚ол исхо‰но„о текст‡ — после‰ний сим‚ол ‚ столбце); c. если эти ‰‚е бук‚ы-п‡ы не н‡хо‰flтсfl ‚ о‰ной стоке или столбце т‡блицы з‡секеч肇ниfl, соот‚етст‚ующий з‡шифнный сим‚ол ‰лfl к‡ж‰ой бук‚ы — сим‚ол, котоый н‡хо‰итсfl ‚ е„о собст‚енной стоке, но ‚ том же с‡мом столбце, что и ‰у„ой сим‚ол. Шиф плейфее‡ соот‚етст‚ует н‡шим китеиflм ‰лfl мно„о‡лф‡‚итно„о шиф‡. Ключ — поток по‰ключей, ‚ котоом они со片ютсfl по ‰‚‡ о‰но‚еменно. В шифе плейфее‡ поток ключей и поток шиф‡ — о‰ни и те же. Это озн‡ч‡ет, что ‚ышеупомflнутые ил‡ можно пе‰ст‡‚ить к‡к ил‡ ‰лfl со片ниfl поток‡ ключей. Ал„оитм ко‰иниfl беет п‡у сим‚оло‚ из исхо‰но„о текст‡ и со片ет п‡у по‰ключей, сле‰уfl ук‡з‡нным ил‡м. Мы можем ск‡з‡ть, что поток ключей 燂исит от позиции сим‚ол‡ ‚ исхо‰ном тексте. З‡‚исимость от позиции имеет з‰есь ‡зличную интепет‡цию: по‰ключ ‰лfl к‡ж‰о„о сим‚ол‡ исхо‰но„о текст‡ 燂исит от сле‰ующе„о или пе‰ы‰уще„о «сос則». Р‡ссм‡т肇fl шиф плейфее‡, т‡ким об‡зом, можно ск‡з‡ть, что з‡шифнный текст — это ф‡ктически поток ключей. P = P1 P2 P3….. C = C1 C2 C3….. k = [(k1,k2), (k3,k4),…..] Шифние Ci = ki Дешифние Pi = ki Пиме 3.15
91
Кус
Киптфиfl и безоп‡сность сетей
Пусть н‡м 퇉о з‡шифть исхо‰ный текст «hello», использующий ключи н‡ ис. 3.13. К‡ мы „уппиуем бук‚ы по м, мы получ‡ем «he», ll,o». Мы ‰олжны ‚ст‡‚ить x меж‰у ‰‚умfl l (эль), после че„о получим «he, lx, lo». Мы имеем he → EC lx → QZ Исхо‰ный текст: hello
lo → BX З‡шифнный текст: ECQZBX
Мы можем ‚и‰еть из это„о пиме‡, что н‡ш шиф — ф‡ктически мно„о‡лф‡‚итный шиф: ‰‚‡ поfl‚лениfl l (эль) з‡шифны к‡к «Q» и «B». Кипто‡н‡лиз шиф‡ плейфее‡ Оче‚и‰но, ‡т‡к‡ „убой силы шиф‡ плейфее‡ очень ту‰н‡. Р‡зме ‰омен‡ — 25! (ф‡ктои‡л 25). Коме то„о, шифо‚к‡ скы‚‡ет ч‡стоту от‰ельных бук‚. О‰н‡ко ч‡стоты ‰‚ухбук‚енных комбин‡ций (‰и‡„‡мм) сох‡нены (‰о некотоой степени из-з‡ ‚ст‡‚ки н‡полнителfl), т‡к что кипто‡н‡литик может использть ‡т‡ку только ‰лfl з‡шифнно„о текст‡, осннную н‡ испыт‡нии ч‡стоты ‰и‡„‡мм, чтобы н‡йти ключ. Шиф Вижене‡ О‰ин интеесный ‚и‰ мно„о‡лф‡‚итно„о шиф‡ был со片н Блезом ‰е Виженеом, ф‡нцузским м‡тем‡тиком шест퇉ц‡то„о столетиfl. Шиф Вижене‡ пименflет ‡зличную ст‡те„ию со片ниfl поток‡ ключей. Поток ключей — по‚тоение н‡ч‡льно„о поток‡ ключ‡ з‡секеч肇ниfl ‰лины m, „‰е мы имеем 1 < m < 26. Шиф может быть опис‡н сле‰ующим об‡зом: (k1, k2, …., km) — пе‚он‡ч‡льный ключ з‡секеч肇ниfl, со„л‡снный Алисой и Бобом.
P = P1 P2 P3….. C = C1 C2 C3….. k = [(k1,k2), (k3,k4),…..] Шифние Ci = ki Дешифние Pi = ki О‰но ‚‡жное отличие меж‰у шифом Вижене‡ и ‰у„ими ‰‚умfl мно„о‡лф‡‚итными шиф‡ми, котоые мы ‡ссмотели: поток ключей Вижене‡ не 燂исит от сим‚оло‚ исхо‰но„о текст‡; он 燂исит только от позиции сим‚ол‡ ‚ исхо‰ном тексте. Ду„ими слми, поток ключей может быть со片н без зн‡ниfl сути исхо‰но„о текст‡. Пиме 3.16 Посмотим, к‡к мы можем з‡шифть сообщение «She is listening (Он‡ слуш‡ет)», используfl ключе‚ое сло‚о н‡ 6 сим‚оло‚ «PASCAL». Н‡ч‡льный поток ключей — это (15, 0, 18, 2, 0, 11). Поток ключей — по‚тоение это„о н‡ч‡льно„о поток‡ ключей (столько ‡з, сколько необхо‰имо). 92
Лекциfl 3
Т‡‰иционные шифы с симметичным ключом
Пиме 3.17
Шиф Вижене‡ может ‚оспиним‡тьсfl к‡к комбин‡ции ‡‰‰ити‚ных шифо‚. Рисунок 3.14 пок‡зы‚‡ет, что исхо‰ный текст пе‰ы‰уще„о пиме‡ можно ‡ссм‡т肇ть к‡к состоflщий из нескольких ч‡стей по шесть элементо‚ ‚ к‡ж‰ом
93
Кус
Киптфиfl и безоп‡сность сетей
(хотfl ‚ о‰ном не х‚‡тило бук‚ исхо‰но„о текст‡), „‰е к‡ж‰ый из элементо‚ з‡шифн от‰ельно. Рисунок поможет н‡м позже понflть кипто‡н‡лиз шифо‚ Вижене‡. Имеетсfl m ч‡стей исхо‰но„о текст‡, к‡ж‰ый з‡шифо‚‡н ‡зличным ключом, чтобы ‡з‰елить з‡шифнный текст н‡ m. ч‡стей. Пиме 3.18 Р‡зоᇂ пиме 3.18, мы убе‰имсfl, что ‡‰‰ити‚ный шиф — ч‡стный случ‡й шиф‡ Вижене‡, ‚ котоом m = 1. Список Вижене‡ Ду„ой способ ‡ссмотениfl шифо‚ Вижене‡ — с помощью то„о, что н‡з‚‡но списком Вижене‡ (Vigenere tableau) и пок‡з‡но ‚ т‡блице 3.3. Рис. 3.14. Шиф Вижене‡ к‡к комбин‡циfl ‡‰‰ити‚ных шифо‚ Т‡блиц‡ 3.3. Список Вижене‡ П傇fl сток‡ пок‡зы‚‡ет сим‚олы исхо‰но„о текст‡, котоый бу‰ет з‡шифн. П傇fl колонк‡ со‰ежит столбец сим‚оло‚, котоые используютсfl ключом. Ост‡льн‡fl ч‡сть т‡блицы пок‡зы‚‡ет сим‚олы з‡шифнно„о текст‡. Чтобы н‡йти з‡шифнный текст ‰лfl исхо‰но„о текст‡ «she listening», пименflfl сло‚о «PASCAL» к‡к ключ, мы можем н‡йти «s» ‚ пе‚ой стоке, «P» ‚ пе‚ом столбце, н‡ пеесечении стоки и столбц‡ — сим‚ол из з‡шифнно„о текст‡ «H». Н‡хо‰им «h» ‚ пе‚ой стоке и «A» ‚о ‚тоом столбце, н‡ пеесечении стоки и столбц‡ — сим‚ол «H» из з‡шифнно„о текст‡. И по‚тоflем те же ‰ейст‚иfl, пок‡ ‚се сим‚олы з‡шифнно„о текст‡ не бу‰ут н‡й‰ены. Кипто‡н‡лиз шиф‡ Вижене‡ Шифы Вижене‡, по‰обно ‚сем мно„о‡лф‡‚итным шиф‡м, не сох‡нflют ч‡стоту сим‚оло‚. О‰н‡ко Е‚‡ может использть некотоые мето‰ы ‰лfl то„о, чтобы ‡сшифть пеех‚‡ченный з‡шифнный текст. Кипто‡н‡лиз ‚ ‰‡нном случ‡е состоит из ‰‚ух ч‡стей: н‡хо‰flт ‰лину ключ‡ и потом непосе‰ст‚енно н‡хо‰flт ключ. 1. Были изобетены несколько мето‰о‚, чтобы н‡йти ‰лину ключ‡. О‰ин мето‰ ‡ссмотим ниже. В т‡к н‡зы‚‡емом тесте К‡зиско„о1 (Kasiski) кипто‡н‡литик ‚ з‡шифнном тексте ищет по‚тоные се„менты по к‡йней мее из тех сим‚оло‚. Пе‰положим, что н‡й‰ены ‰‚‡ се„мент‡, и ‡сстоflние меж‰у ними – d. Кипто‡н‡литик пе‰по뇄‡ет, что d|m, „‰е m — ‰лин‡ ключ‡. Если можно н‡йти больше по‚тоных се„менто‚ с ‡сстоflнием d1, d2, …., dn, т‡ НОД(d1, d2, …., dn....)/ m. Это пе‰положение ло„ично, потому что если ‰‚‡ сим‚ол‡ о‰ин‡ко‚ы и k × m. (k = 1, 2...) — сим‚олы, ‚ы‰еленные ‚ исхо‰ном тексте, то о‰ин‡ко‚ы и k × m. сим‚олы, ‚ы‰еленные ‚ з‡шифнном тексте. Кипто‡н‡литик использует се„менты по к‡йней мее из тех сим‚оло‚, чтобы избеж‡ть случ‡е‚, „‰е сим‚олы имеют о‰ин и тот же ключ. Пиме 3.20 может помочь н‡м понflть эти ‡ссуж‰ениfl.
1
Ф. К‡зиский – немецкий киптоло„, котоый ‚ 1860 „о‰у пе‰ложил тест ‰лfl ‡скытиfl киптмм. 94
Лекциfl 3
Т‡‰иционные шифы с симметичным ключом
2. После то„о к‡к ‰лин‡ ключ‡ был‡ н‡й‰ен‡, кипто‡н‡литик использует и‰ею, пок‡з‡нную ‚ пимее 3.18. З‰есь з‡шифнный текст ‰елитсfl н‡ m ‡зличных ч‡стей и пименflетсfl мето‰, используемый ‚ кипто‡н‡лизе ‡‰‰ити‚но„о шиф‡, ‚ключ‡fl ‡т‡ку ч‡стоты. ʇ扇fl ч‡сть з‡шифнно-
„о текст‡ может быть ‡сшифо‚‡н‡ и сое‰инен‡ с ‰у„ими, чтобы со片ть целый исхо‰ный текст, ‰у„ие сл. Весь з‡шифнный текст не сох‡нflет ч‡стоту от‰ельной бук‚ы исхо‰но„о текст‡, но к‡ж‰‡fl ч‡сть ‰ел‡ет это. Пиме 3.19
Пе‰положим, что мы пеех‚‡тили сле‰ующий з‡шифнный текст: LIOMWGFEGGDVWGHHCQUCRHRWAGWIOWQLKGZETKKMEVLWPCZVGTHVTSGXQOVGCSVETQLTJSUMVWVEUVLXEWSLGFZMVVWLGYHCUSWXQHKVGSHEEVFLCFDGVSUMPHKIRZDMPHHBVWVWJWIXGFWLTSHGJOUEEHHVUCFVGOWICQLIJSUXGLW Тест К‡зиско„о н‡ по‚тоение се„менто‚ из тех сим‚оло‚ пи‚о‰ит к езульт‡т‡м, пок‡з‡нным ‚ т‡блице 3.14. Т‡блиц‡ 3.4. Тест К‡зиско„о ‰лfl пиме‡ 3.19 Н‡ибольший ‰елитель — 4, что озн‡ч‡ет ‰лину ключ‡, попоцион‡льную 4. Сн‡ч‡л‡ побуем m = 4. Делим з‡шифнный текст н‡ четые ч‡сти. Ч‡сть C1 состоит из сим‚оло‚ 1, 5, 9...; ч‡сть C2 состоит из сим‚оло‚ 2, 6, 10..., и т‡к ‰‡лее. Используем ст‡тистическую ‡т‡ку к‡ж‰ой ч‡сти от‰ельно. Пееби‡ем ‡сшифо‚ы‚‡ющиесfl ч‡сти по о‰ному сим‚олу о‰но‚еменно, чтобы получить целый исхо‰ный текст. Если исхо‰ный текст не имеет смысл‡, попобуем с ‰у„им m. В ‡ссм‡т肇емом случ‡е исхо‰ный текст имеет смысл (чит‡ем по столбц‡м). 1
Лесте С. Хилл — ‡меик‡нский киптоло„, пе‰ложи‚ший ‚ 1929 „о‰у мно„о‡лф‡‚итный шиф. 95
Кус
Киптфиfl и безоп‡сность сетей
Julius Caesar used a cryptosystem in his wars, which is now referred to as Caesar chipper. It is an additive chipper with the key set to three. Each character in the plaintext is shift three characters to create ciphertext. Пее‚о‰ это„о текст‡ пи‚е‰ен ниже. Юлий Цез‡ь использо‚‡л ‚ с‚оих ‚ойн‡х киптфическую систему, кото‡fl упомин‡етсfl тепеь к‡к шиф Цез‡fl. Это ‡‰‰ити‚ный шиф с ключом,
уст‡но‚ленным н‡ ти. К‡ж‰ый сим‚ол ‚ исхо‰ном тексте с‰‚инут н‡ ти сим‚ол‡, чтобы со片ть з‡шифнный текст. Шиф Хилл‡ Ду„ой интеесный пиме мно„о‡лф‡‚итно„о шиф‡ — шиф Хилл‡, изобетенный Лестеом С. Хиллом1. В отличие от ‰у„их мно„о‡лф‡‚итных шифо‚, котоые мы уже ‡ссмотели, з‰есь исхо‰ный текст ‡з‰елен н‡ блоки ‡‚но„о ‡зме‡. Блоки з‡шифны по о‰ному т‡ким способом, что к‡ж‰ый сим‚ол ‚ блоке ‚носит ‚к뇉 ‚ шифние ‰у„их сим‚оло‚ ‚ блоке. По этой пичине шиф Хилл‡ пи퇉лежит к к‡те„оии шифо‚, н‡з‚‡нных блочными шиф‡ми. Ду„ие шифы, котоые мы изуч‡ли ‰о сих по, пи퇉леж‡т к к‡те„оии, н‡зы‚‡емой шифы поток‡. Отличие меж‰у шиф‡ми блок‡ и шиф‡ми поток‡ обсу扇ютсfl ‚ конце этой лекции. В шифе Хилл‡ ключ — ꂇ‰‡тн‡fl м‡тиц‡ ‡зме‡ m × m., ‚ котоом m. fl‚лflетсfl ‡змеом блок‡. Если мы ‚ызы‚‡ем ключе‚ую м‡тицу K, то к‡ж‰ый элемент ki,j опе‰елflетсfl м‡тицей, к‡к пок‡з‡но н‡ ис. 3.15. Рис. 3.15. Ключ ‚ шифе Хилл‡ Пок‡жем, к‡к получ‡етсfl о‰ин блок з‡шифнно„о текст‡. Обозн‡чим m сим‚оло‚ блоко‚ исхо‰но„о текст‡ P1, P2 ..., Pm, соот‚етст‚ующие сим‚олы ‚ блок‡х з‡шифнно„о текст‡ бу‰ут C1, C2 , ..., Cm. Т‡ мы имеем C1 = P1k11 + P2k21 + .............+ Pmkm1 C2 = P1k12 + P2k22 + .............+ Pmkm2 .................................................................. Cm = P1k1m + P2k2m + .............+ Pmkmm
96
Лекциfl 3
Т‡‰иционные шифы с симметичным ключом
У‡‚нениfl пок‡зы‚‡ют, что к‡ж‰ый сим‚ол з‡шифнно„о текст‡, т‡кой, к‡к C1, 燂исит от сим‚оло‚ ‚се„о исхо‰но„о текст‡ ‚ блоке (P1, P2,..., Pm). О‰н‡ко мы ‰олжны зн‡ть, что не ‚се ꂇ‰‡тные м‡тицы имеют мультиплик‡ти‚ные ин‚есии ‚ Z26, т‡к что Алис‡ и Боб ‰олжны быть остоожны ‚ ‚ыбое ключ‡. Боб не сможет ‡сшифть з‡шифнный текст, пе則‚‡емый Алисой, если м‡тиц‡ не имеет мультиплик‡ти‚ной ин‚есии. Ключ傇fl м‡тиц‡ ‚ шифе Хилл‡ ‰олжн‡ иметь мультиплик‡ти‚ную ин‚есию. Пиме 3.20 Использние м‡тиц поз‚олflет Алисе з‡шифть ‚есь исхо‰ный текст. В этом случ‡е исхо‰ный текст – l × m — м‡тиц‡, ‚ котоой l fl‚лflетсfl номеом блоко‚. Н‡пиме, исхо‰ный текст «code is ready» («ко‰ „ото‚»), может быть пе‰ст‡‚лен к‡к м‡тиц‡ 3 пи ‰оᇂлении ‰ополнительно„о фикти‚но„о сим‚ол‡ «z» к после‰нему блоку и у‰‡лении побело‚; з‡шифнный текст ‚ы„лfl‰ит к‡к «OHKNIHGKLISS». Боб может ‡сшифть сообщение, пименflfl ин‚есную м‡тицу-ключ. Шифние и ‰ешифние пок‡з‡но н‡ ис. 3.16. Рис.3.16. Пиме 3.20 Кипто‡н‡лиз шифо‚ Хилл‡ Кипто‡н‡лиз только ‰лfl з‡шифнно„о шиф‡ми Хилл‡ текст‡ ту‰ен. Во-пе‚ых, ‡т‡к‡ „убой силы пи шифе Хилл‡ чез‚ыч‡йно сложн‡, потому что м‡тиц‡-ключ — m × m. К‡ж‰ый ‚хо‰ может иметь о‰но из 26 зн‡чений. Во-пе‚ых, это озн‡ч‡ет ‡зме ключ‡ 26m × m. О‰н‡ко, не ‚се м‡тицы имеют мультиплик‡ти‚ную ин‚есию. Поэтому обл‡сть сущест‚ниfl ключей ‚се же не т‡к‡fl о„омн‡fl. Во-‚тоых, шифы Хилл‡ не сох‡нflют ст‡тистику обычно„о текст‡. Е‚‡ не может по‚ести ‡н‡лиз ч‡стоты употеблениfl от‰ельной бук‚ы, ‰‚ух или тех бук‚. Ан‡лиз ч‡стоты сло‚ ‡зме‡ m мо„ бы c‡бот‡ть, но очень е‰ко исхо‰ный текст имеет мно„о о‰ин‡ко‚ых сток ‡зме‡ m. Е‚‡, о‰н‡ко, может 97
Кус
Киптфиfl и безоп‡сность сетей
по‚ести ‡т‡ку н‡ шиф, используfl мето‰ зн‡ниfl исхо‰но„о текст‡, если он‡ зн‡ет зн‡чение m и зн‡ет п‡ы «исхо‰ный текст/з‡шифнный текст», по к‡йней мее m блоко‚. Блоки мо„ут пи퇉леж‡ть тому же с‡мому сообщению или ‡зличным сообщениflм, но ‰олжны быть ‡зличны. Е‚‡ может со片ть ‰‚е m × m. м‡тицы, P (обычный текст) и C (з‡шифнный текст), ‚ котоом соот‚етст‚ующие стоки пе‰ст‡‚лflют из‚естные п‡ы обычно„о/з‡-
шифнно„о текст‡. Поскольку C = PK, Е‚‡ может использть отношениfl K = CP-1, чтобы н‡йти ключ, если P fl‚лflетсfl об‡тимым. Если P не fl‚лflетсfl об‡тимым, то Е‚‡ ‰олжн‡ з‡‰ейст‚ть ‡зличные н‡боы m п‡ обычно„о/з‡шифнно„о текст‡. Если Е‚‡ не зн‡ет зн‡чение m, он‡ может попобть ‡зличные зн‡чениfl пи усло‚ии, что m не fl‚лflетсfl очень большим. Пиме 3.21 Пе‰положим, что Е‚‡ зн‡ет, что m = 3. Он‡ пеех‚‡тил‡ ти п‡ы блок‡ исхо‰но„о/з‡шифнно„о текст‡ (не обflз‡тельно из то„о же с‡мо„о сообщениfl), к‡к пок‡з‡но н‡ ис. 3.17. Рис. 3.17. Пиме 3.22, фоминиfl шиф‡ з‡шифнно„о текст‡ Он‡ сост‡‚лflет м‡тицы P и C из этих п‡. Поскольку ‚ ‰‡нном случ‡е м‡тиц‡ P об‡тим‡, он‡ ин‚етиует эту м‡тицу и умнож‡ет ее н‡ C, что ‰‡ет м‡тицу ключей K, к‡к это пок‡з‡но н‡ ис. 3.18. Рис. 3.18. Пиме 3.22, поиск‡ ключ‡ Тепеь он‡ имеет ключ и может ‚злом‡ть любой шифнный текст, „‰е пименен этот ключ. О‰но‡зо‚ый блокнот О‰н‡ из целей киптфии — и‰е‡льн‡fl секетность. Иссле‰о‚‡ниfl Шеннон‡ пок‡з‡ли, что и‰е‡льн‡fl секетность может быть ‰ости„нут‡, если сим‚олы исхо‰но„о текст‡ з‡шифны с помощью ключ‡, ‚ыб‡нно„о случ‡йно из некотоой обл‡сти ключей. Н‡пиме, ‡‰‰ити‚ный шиф может быть ле„ко ‚злом‡н, 98
Лекциfl 3
Т‡‰иционные шифы с симметичным ключом
потому что используетсfl о‰ин и тот же ключ. Но ‰‡же и этот шиф может быть и‰е‡льным, к‡ ключ, котоый пименflетсfl ‰лfl шифниfl к‡ж‰о„о сим‚ол‡, ‚ыб‡н случ‡йно из множест‚‡ ключей (00, 01, 02.... 25): если пе‚ый сим‚ол з‡шифн с помощью ключ‡ 04, ‚тоой сим‚ол — с помощью ключ‡ 02, тетий — с помощью ключ‡ 21, и т‡к ‰‡лее. Ат‡к‡ «только ‰лfl з‡шифнно„о текст‡» ст‡но‚итсfl не‚озможн‡. Если пе則тчик изменflет ключ, используfl к‡ж‰ый ‡з иную случ‡йную после‰о‚‡тельность целых чисел, ‰у„ие типы ‡т‡к т‡кже бу‰ут не‚озможны. Эт‡ и‰еfl е‡лизо‚‡н‡ ‚ шифе, котоый н‡зы‚‡етсfl о‰но‡зо‚ым блокнотом. Е„о изобел ‡меик‡нский инжене Вен‡м. В этом шифе ключ имеет ту же с‡мую ‰лину, что и исхо‰ный текст, и ‚ыб‡н со‚ешенно случ‡йно.
О‰но‡зо‚ый блокнот — и‰е‡льный шиф, но е„о почти не‚озможно е‡лизть коммечески. Если ключ к‡ж‰ый ‡з „енеиуетсfl з‡но‚о, к‡к Алис‡ может сообщ‡ть Бобу но‚ый ключ? Длfl это„о к‡ж‰ый ‡з нужно пе則‚‡ть сообщение. О‰н‡ко есть некотоые случ‡и, к‡ ‚озможно использние о‰но‡зо‚о„о блокнот‡. Н‡пиме, если пези‰ент ст‡ны ‰олжен пе則ть полностью секетное сообщение пези‰енту ‰у„ой ст‡ны, он может пее‰ посылкой сообщениfl пе則ть с помощью ‰о‚еенно„о посл‡нник‡ случ‡йный ключ. Некотоые ‚опосы изменениfl шиф‡ о‰но‡зо‚о„о блокнот‡ обсу扇ютсfl ‚ ‰‡льнейших лекциflх, к‡ бу‰ет ‡ссм‡т肇тьсfl ‚‚е‰ение ‚ со‚еменную киптфию. Ротоный шиф Хотfl шифы о‰но‡зо‚о„о блокнот‡ не пименflютсfl н‡ п‡ктике, о‰ин ш‡„ от не„о к более з‡щищенному шифу — отоный шиф. Он ‚о炇щ‡етсfl к и‰ее моно‡лф‡‚итной по‰ст‡но‚ки, но менflет пинцип отоб‡жениfl исхо‰но„о текс-
1 Щетки – специ‡льный ‚и‰ конт‡кт‡, котоый обеспеч肇ет сое‰инение пижной и непижной ч‡стей пибо‡ и пе‰ст‡‚лflет собой мет‡ллическую щетку, скользflщую по по‚ехности пижной ч‡сти пибо‡ (пим. е‰.). 99
Кус
Киптфиfl и безоп‡сность сетей
т‡ ‚ сим‚олы з‡шифнно„о текст‡ ‰лfl к‡ж‰о„о сим‚ол‡ исхо‰но„о текст‡. Рисунок 3.19 пок‡зы‚‡ет упощенный пиме отоно„о шиф‡. Рис. 3.19. Ротоный шиф Рото, пок‡з‡нный н‡ ис. 3.19, пименен только ‰лfl 6 бук‚, но е‡льные отоы используют 26 бук‚. Рото постоflнно с‚flзы‚‡ет сим‚олы исхо‰но„о и з‡шифнно„о тексто‚, но по‰ключение обеспеч肇етсfl щетк‡ми1. Об‡тите ‚ним‡ние, что сое‰инение сим‚оло‚ исхо‰но„о и з‡шифнно„о тексто‚ пок‡з‡но т‡к, к‡к если бы ото был поз‡чен и можно было ‚и‰еть ‚нутеннюю ч‡сть. Н‡ч‡льн‡fl уст‡но‚к‡ (позициfl) ото‡ — ключ з‡секеч肇ниfl меж‰у Алисой и Бобом — это з‡шифнный пе‚ый сим‚ол исхо‰но„о текст‡. Используетсfl н‡ч‡льн‡fl уст‡но‚к‡ и ‚тоой сим‚ол з‡шифн после то„о, к‡к по‚е‰е-
но пе‚ое ‚‡щение (н‡ ис. 3.19 — это по‚оот н‡ 1/6 ку„‡, н‡ е‡льной уст‡но‚ке — по‚оот н‡ 1/26), и т‡к ‰‡лее. Сло‚о с темfl буꂇми, т‡кими, к‡к «bee», з‡шифно к‡к «BAA», если ото непижен (моно‡лф‡‚итный шиф по‰ст‡но‚ки), но оно бу‰ет з‡шифно к‡к «BCA», если он ‚‡щ‡етсfl (отоный шиф). Это пок‡зы‚‡ет, что отоный шиф — мно„о‡лф‡‚итный шиф, потому что ‰‚‡ поfl‚лениfl то„о же с‡мо„о сим‚ол‡ исхо‰но„о текст‡ з‡шифны к‡к ‡зличные сим‚олы. Ротоный шиф fl‚лflетсfl стойким к ‡т‡ке „убой силы, к‡к моно‡лф‡‚итный шиф по‰ст‡но‚ки, потому что Е‚‡ ‰олжн‡ н‡йти пе‚ое множест‚о отоб‡жений се‰и ‚озможных 26! (ф‡ктои‡л). Ротоный шиф fl‚лflетсfl н‡мно„о более стойким к ст‡тистической ‡т‡ке, чем моно‡лф‡‚итный шиф по‰ст‡но‚ки, потому что ‚ нем не сох‡нflетсfl ч‡стот‡ употеблениfl бук‚ы. М‡шин‡ «Эни„쇻 М‡шин‡ «Эни„쇻 был‡ пе‚он‡ч‡льно изобетен‡ ‚ Себии, но был‡ изменен‡ специ‡лист‡ми немецкой ‡мии и интенси‚но использл‡сь ‚ течение 100
Лекциfl 3
Т‡‰иционные шифы с симметичным ключом
Втоой Мио‚ой Войны. М‡шин‡ б‡зил‡сь н‡ пинципе шифо‚ ото‡. Рисунок 3.20 пок‡зы‚‡ет упощенную схему постоениfl м‡шины. Рис. 3.20. Пименое постоение М‡шины Эн„им‡ Ниже пеечислены „뇂ные компоненты м‡шины. 1. К뇂и‡ту‡ с 26-ю ключ‡ми, используемыми ‰лfl то„о, чтобы ‚‚о‰ить исхо‰ный текст пи шифнии, и ‰лfl то„о, чтобы ‚‚о‰ить з‡шифнный текст пи ‡сшифо‚ке. 2. Л‡мпfl п‡нель с 26-ю л‡мп‡ми, кото‡fl пок‡зы‚‡ет сим‚олы з‡шифнно„о текст‡ пи шифнии и сим‚олы исхо‰но„о текст‡ пи ‰ешифнии. 3. Коммут‡ционн‡fl п‡нель с 26-ю штепселflми, ‚учную по‰ключенными 13-ю по‚ми. Конфи„у‡циfl изменflетсfl к‡ж‰ый ‰ень, чтобы обеспечить ‡зличное скэмблиние. 4. Ти з‡монтинных ото‡, т‡кие же, к‡к ‡ссмотенные ‚ пе‰ы‰ущей секции. Эти ти ото‡ ‚ыби‡ютсfl еже‰не‚но из пflти ‰оступных отоо‚. Быстый ото ‚‡щ‡етсfl н‡ 1/26 по‚оот‡ пи к‡ж‰ом сим‚оле, ‚‚е‰енном с помощью к뇂и‡туы. Се‰ний ото ‰ел‡ет 1/26 по‚оот‡ пи к‡ж‰ом полном по‚ооте бысто„о ото‡. Ме‰ленный ото ‰ел‡ет 1/26 по‚оот‡ ‰лfl к‡ж‰о„о з‡конченно„о по‚оот‡ се‰не„о ото‡. 5. От‡ж‡тель, котоый fl‚лflетсfl постоflнным и п剂‡ительно з‡монтинным. Ко‰о‚‡fl кн脇 — сочник шифо‚ Чтобы использть «Эни„му», был‡ из‰‡н‡ ко‰о‚‡fl кн脇, кото‡fl ‚ течение к‡ж‰о„о ‰нfl ‰‡ет несколько мето‚ н‡стойки, ‚ключ‡fl: a. ти ото‡, котоые ‰олжны быть ‚ыб‡ны из пflти ‰оступных; b. поfl‰ок, ‚ котоом эти отоы ‰олжны быть уст‡но‚лены; c. меты уст‡но‚ок ‰лfl коммут‡ционной п‡нели; d. ко‰ с темfl буꂇми ‰нfl. Поце‰у‡ шиф‚ш‡fl Сообщениfl Чтобы з‡шифть сообщение, опе‡то ‰олжен после‰о‚‡тельно с‰ел‡ть ш‡„и, пеечисленные ниже: 1. уст‡но‚ить ст‡то‚ую позицию отоо‚ со„л‡сно ко‰у ‰нfl. Н‡пиме, если ко‰ был «HUA», отоы ‰олжны быть иници‡лизины н‡ “H”, “U”и “A” соот‚етст‚енно; 2. ‚ыб‡ть случ‡йный ко‰ с темfl буꂇми, н‡пиме ACF. З‡шифть текст «ACFACF» (по‚тоный ко‰), используfl н‡ч‡льную уст‡но‚ку отоо‚ ш‡„‡ 1. Н‡пиме, пе‰положим, что з‡шифнный ко‰ — «OPNABT»; 3. уст‡но‚ить ст‡то‚ые позиции отоо‚ к OPN (поло‚ин‡ з‡шифнно„о к); 4. ‰оᇂить з‡шифнные шесть бук‚, полученных н‡ ш‡„е 2 («OPNABT’), ‚ конец к н‡ч‡льному сообщению; 101
Кус
Киптфиfl и безоп‡сность сетей
5. з‡шифть сообщение, ‚ключ‡fl ко‰ с 6-ю буꂇми. Пе則ть з‡шифнное сообщение. Поце‰у‡ ‰лfl ‡сшифо‚ки сообщениfl Чтобы ‡сшифо‚ы‚‡ть сообщение, опе‡то ‰олжен с‰ел‡ть сле‰ующие ш‡„и: 1. получить сообщение и от‰елить пе‚ые шесть бук‚; 2. уст‡но‚ить ст‡то‚ую позицию отоо‚ со„л‡сно ко‰у ‰нfl; 3. ‡сшифть пе‚ые шесть бук‚ писем, используfl н‡ч‡льную уст‡но‚ку ш‡„‡ 2; 4. уст‡но‚ить позиции отоо‚ н‡ пе‚ую поло‚ину ‡сшифнно„о к; 5. Р‡сшифть сообщение (без пе‚ых шести бук‚). Кипто‡н‡лиз Мы зн‡ем, что «Эни„쇻 ‚о ‚емfl ‚ойны был‡ ‚злом‡н‡, хотfl „ем‡нск‡fl ‡миfl и ост‡льн‡fl ч‡сть ми‡ не зн‡л‡ об этом ф‡кте еще несколько ‰есflтилетий после то„о. Вопос: к‡к т‡кой сложный шиф был ‡т‡кн? Немецкий flзык ‚есьм‡ сложен. Союзники, т‡к или ин‡че, получили некотоые копии м‡шин. Сле‰ующим ш‡„ом был поиск мето‚ уст‡но‚ки ‚ течение к‡ж‰о„о ‰нfl и к, пе則‚‡емо„о ‰лfl иници‡лиз‡ции отоо‚ ‰лfl к‡ж‰о„о сообщениfl. Изобетение пе‚о„о компьюте‡ помо„ло союзник‡м пео‰олеть эти ту‰ности. По‰обное изоб‡жение м‡шины «Эни„쇻 и ее кипто‡н‡лиз может быть н‡й‰ен н‡ с‡йт‡х, пос‚flщенных этой м‡шине.
3.3. Шифы пеест‡но‚ки Шиф пеест‡но‚ки не з‡менflет о‰ним сим‚олом ‰у„ой, ‚место это„о он изменflет местоположение сим‚оло‚. Сим‚ол ‚ пе‚ой позиции исхо‰но„о текст‡ может поfl‚итьсfl ‚ ‰есflтой позиции з‡шифнно„о текст‡. Сим‚ол, котоый н‡хо‰итсfl ‚ ‚осьмой позиции исхо‰но„о текст‡, может поfl‚итьсfl ‚ пе‚ой пози-
ции з‡шифнно„о текст‡. Ду„ими слми, шиф пеест‡но‚ки ст‡‚ит ‚ ‰у„ом поfl‰ке (пеемещ‡ет) сим‚олы. Шиф пеест‡но‚ки менflет поfl‰ок сле‰о‚‡ниfl сим‚оло‚.
Шифы пеест‡но‚ки без использниfl ключ‡ Постые шифы пеест‡но‚ки, котоые пименflлись ‚ пошлом, не использли ключ. Есть ‰‚‡ мет ‰лfl пеест‡но‚ки сим‚оло‚. В пе‚ом мето‰е текст з‡писы‚‡етсfl ‚ т‡блице столбец з‡ столбцом и з‡тем пе則fiтсfl сток‡ з‡ стокой. Во ‚тоом мето‰е текст з‡пис‡н ‚ т‡блице сток‡ з‡ стокой и з‡тем пе則fiтсfl столбец з‡ столбцом. 102
Лекциfl 3
Т‡‰иционные шифы с симметичным ключом
Пиме 3.22 Хооший пиме шиф‡ без использниfl ключ‡ — шиф из„оо‰и (rail fence cipher). В этом шифе исхо‰ный текст ‡змещен н‡ ‰‚ух линиflх к‡к зи„燄ооб‡зный ш‡блон (что может ‡ссм‡т肇тьсfl к‡к столбец з‡ столбцом т‡блицы, кото‡fl имеет ‰‚е стоки); з‡шифнный текст сост‡‚лflетсfl пи чтении ш‡блон‡ сток‡ з‡ стокой. Н‡пиме, чтобы пе則ть сообщение «Meet me at the park» («Встеч‡й менfl ‚ п‡ке»), Алис‡ пишет Бобу: Алис‡ со片ет з‡шифнный текст «MEMATEAKETETHPR», посыл‡fl пе‚ую стоку, сопо‚о扇емую ‚тоой стокой. Боб получ‡ет з‡шифнный текст и ‡з‰елflет е„о попол‡м (‚ этом случ‡е ‚то‡fl поло‚ин‡ имеет н‡ о‰ин сим‚ол меньше). П傇fl поло‚ин‡ фомы — п傇fl сток‡; ‚то‡fl поло‚ин‡ — ‚то‡fl сток‡. Боб чит‡ет езульт‡т по зи„燄у. Поскольку нет ник‡ко„о ключ‡ и номе сток уст‡но‚лен (2), кипто‡н‡лиз з‡шифнно„о текст‡ был бы очень пост ‰лfl Е‚ы. Все, что он‡ ‰олжн‡ зн‡ть, — это тот ф‡кт, что пименен шиф из„оо‰и. Пиме 3.23 Алис‡ и Боб мо„ут ‰о„о‚оитьсfl о числе столбцо‚ и использть ‚тоой мето‰. Алис‡ пишет тот же с‡мый исхо‰ный текст, сток‡ з‡ стокой, ‚ т‡блице из четыех столбцо‚. m e e t m e a t t h e p a r k Алис‡ со片ет з‡шифнный текст «MMTAEEHREAEK TTP», пе則‚‡fl сим‚олы столбец з‡ столбцом. Боб получ‡ет з‡шифнный текст и пименflет об‡тный поцесс. Он пишет полученное сообщение столбец з‡ столбцом и чит‡ет е„о сток‡ з‡ стокой к‡к исхо‰ный текст. Е‚‡ может ле„ко ‡сшифть сообщение, если он‡ зн‡ет число столбцо‚. Пиме 3.24 Шиф ‚ пимее 3.23 — е‡льный шиф пеест‡но‚ки. Д‡лее пок‡жем пеест‡но‚ку к‡ж‰ой бук‚ы исхо‰но„о текст‡ и з‡шифнный текст, б‡зиуflсь н‡ номе‡х их позиций. 01 ↓ 01
02 ↓ 05
03 ↓ 09
04 ↓ 13
05 ↓ 02
06 ↓ 06
07 ↓ 10
08 ↓ 14
09 ↓ 03
10 ↓ 07
11 ↓ 11
12 ↓ 15
13 ↓ 04
14 ↓ 08
15 ↓ 12
Втоой сим‚ол ‚ исхо‰ном тексте пе剂инулсfl н‡ пflтую позицию ‚ з‡шифнном тексте; тетий сим‚ол пе剂инулсfl н‡ ‰е‚flтую позицию; и т‡к ‰‡лее. Хотfl сим‚олы пеест‡‚лены, они с‡ми fl‚лflютсfl ш‡блон‡ми: (01, 05, 09, 13), (02,
103
Кус
Киптфиfl и безоп‡сность сетей
06, 10, 14), (03, 07, 11, 15) и (04, 08, 12). В к‡ж‰ой секции ‡зность меж‰у ‰‚умfl смежными номе‡ми — 4. Ключе‚ые шифы пеест‡но‚ки Бесключе‚ые шифы пеест‡‚лflют сим‚олы, используfl з‡пись исхо‰но„о текст‡ о‰ним способом (н‡пиме, сток‡ з‡ стокой) и пе則чу это„о текст‡ ‚ ‰у„ом поfl‰ке (н‡пиме, столбец з‡ столбцом). Пеест‡но‚к‡ ‰ел‡етсfl ‚о ‚сfiм исхо‰ном тексте, чтобы со片ть ‚есь з‡шифнный текст. Ду„ой мето‰ состоит ‚ том, чтобы ‡з‰елить исхо‰ный текст н‡ „уппы 燇нее опе‰еленно„о ‡зме‡, н‡зы‚‡емые блок‡ми, ‡ з‡тем использть ключ, чтобы пеест‡‚ить сим‚олы ‚ к‡ж‰ом блоке от‰ельно. Пиме 3.25 Алис‡ ‰олжн‡ пе則ть Бобу сообщение «Enemy attacks tonight» («В‡жеские ‡т‡ки се„о‰нfl ‚ечеом»). Алис‡ и Боб со„л‡сились ‡з‰елить текст н‡ „уппы по пflть сим‚оло‚ и з‡тем пеест‡‚ить сим‚олы ‚ к‡ж‰ой „уппе. Ниже пок‡з‡н‡ „уппио‚к‡ после ‰оᇂлениfl фикти‚но„о сим‚ол‡ ‚ конце, чтобы с‰ел‡ть после‰нюю „уппу о‰ин‡ко‚ой по ‡змеу с ‰у„ими. Enemy atttac kston ightz Ключ, используемый ‰лfl шифниfl и ‰ешифниfl, — ключ пеест‡но‚ки, котоый пок‡зы‚‡ет, к‡к пеест‡‚лflть сим‚олы. Длfl это„о сообщениfl пимем, что Алис‡ и Боб использли сле‰ующий ключ: Тетий сим‚ол ‚ блоке исхо‰но„о текст‡ ст‡но‚итсfl пе‚ым сим‚олом ‚ з‡шифнном тексте ‚ блоке, пе‚ый сим‚ол ‚ блоке исхо‰но„о текст‡ ст‡но‚ит-
104
Лекциfl 3
Т‡‰иционные шифы с симметичным ключом
сfl ‚тоым сим‚олом ‚ блоке з‡шифнно„о текст‡ и т‡к ‰‡лее. Результ‡ты пеест‡но‚ки: EEMYN TAACT TKONS HITZG Алис‡ пе則ет з‡шифнный текст «EEMYNTAACTTKONSHITZG» Бобу. Боб ‰елит з‡шифнный текст н‡ „уппы по 5 сим‚оло‚ и, используfl ключ ‚ об‡тном поfl‰ке, н‡хо‰ит исхо‰ный текст. Объе‰инение ‰‚ух по‰хо‰о‚ Со‚еменные шифы пеест‡но‚ки, чтобы ‰ости„нуть лучше„о скемблиниfl, объе‰инflют ‰‚‡ по‰х. Шифние и ‰ешифние ‰ел‡етсfl ‚ ти ш‡„‡. Пе‚ый: текст пишетсfl т‡блицей сток‡ з‡ стокой. Втоой: ‰ел‡етсfl пеест‡но‚к‡, изменflfl поfl‰ок сле‰о‚‡ниfl столбцо‚. Тетий: столбец з‡ столбцом чит‡етсfl нfl т‡блиц‡. Пе‚ые и тетьи ш‡„и обеспеч肇ют бесключе‚ое „лоб‡льное изменение
поfl‰к‡ сле‰о‚‡ниfl; ‚тоой ш‡„ обеспеч肇ет блочную ключе‚ую пеест‡но‚ку. Эти типы шифо‚ упомин‡ютсfl ч‡сто к‡к ключе‚ые шифы пеест‡но‚ки столбцо‚. Пиме 3.26 Пе‰положим, что Алис‡ сн з‡шифо‚ы‚‡ет сообщение ‚ пимее 3.25, н‡ сей ‡з используfl объе‰иненный по‰хо‰. Шифние и ‰ешифние пок‡з‡но н‡ ис. 3.21. Рис. 3.21. Пиме 3.27 П傇fl т‡блиц‡, со片нн‡fl Алисой, со‰ежит исхо‰ный текст, з‡пис‡нный сток‡ з‡ стокой. Столбцы пеест‡‚лены с пименением то„о же с‡мо„о ключ‡, что и ‚ пе‰ы‰ущем пимее. З‡шифнный текст со片н с помощью чтениfl ‚тоой
105
Кус
Киптфиfl и безоп‡сность сетей
т‡блицы столбец з‡ столбцом. Боб ‰ел‡ет те же с‡мые ти ш‡„‡ ‚ об‡тном поfl‰ке. Он считы‚‡ет т‡блицу з‡шифнно„о текст‡ столбец з‡ столбцом ‚ пе‚ую т‡блицу, пеест‡‚лflет столбцы, ‡ з‡тем чит‡ет ‚тоую т‡блицу стоку з‡ стокой. Ключи В пимее 3.27 е‰инст‚енный ключ использлсfl ‚ ‰‚ух н‡п‡‚лениflх ‰лfl изменениfl поfl‰к‡ сле‰о‚‡ниfl столбцо‚ — ‚низ ‰лfl шифниfl, ‚‚ех ‰лfl ‰ешифниfl. Обычно пинflто со片‚‡ть ‰‚‡ ключ‡ ‰лfl это„о „‡фическо„о пе‰ст‡‚лениfl: о‰ин ‰лfl шифниfl и о‰ин ‰лfl ‰ешифниfl. Ключи н‡к‡пл肇ютсfl ‚ т‡блиц‡х, имеющих о‰ин ‡‰ес (‚хо‰) ‰лfl к‡ж‰о„о столбц‡. Вхо‰ со‰ежит исхо‰ный номе столбц‡ — номе столбц‡ пункт‡ н‡зн‡чениfl, ук‡зы‚‡ющий е„о положение от номе‡ ‚х. Рисунок 3.22 пок‡зы‚‡ет, к‡к эти ‰‚е т‡блицы мо„ут быть со片ны с помощью „‡фическо„о пе‰ст‡‚лениfl ключ‡. Рис. 3.22. Шифние / ‰ешифние ‚ шифе пеест‡но‚ки Ключ шифниfl — (3 1 4 5 2). Пе‚ый ‚хо‰ пок‡зы‚‡ет, что столбец 3 (со‰еж‡ние) ‚ источнике ст‡но‚итсfl столбцом 1 (положение или ин‰екс ‚х) ‚ пункте н‡зн‡чениfl. Ключ ‰ешифниfl — (2 5 1 3 4). Пе‚ый ‚хо‰ пок‡зы‚‡ет, что столбец 2 ‚ источнике ст‡но‚итсfl столбцом 1 ‚ пункте н‡зн‡чениfl. К‡к н‡йти ключ ‰ешифниfl, если ‰‡н ключ шифниfl или, н‡обоот, ‰‡н ключ ‰ешиф‡ции? Поцесс может быть ‚ыполнен ‚учную з‡ несколько ш‡„о‚, к‡к это пок‡з‡но н‡ ис. 3.23. Сн‡ч‡л‡ ‰оᇂим ин‰ексы к т‡блице ключей,
потом с‰ел‡ем с‰‚и„ ‚ соот‚етст‚ии с полученным ключом, и, н‡конец, сотиуем п‡у со„л‡сно ин‰ексу. Рис. 3.23. Ин‚есиfl ключ‡ ‚ шифе пеест‡но‚ки Использние м‡тиц Мы можем использть м‡тицы, чтобы пок‡з‡ть поцесс шифниfl/‰ешифниfl ‰лfl шиф‡ пеест‡но‚ки. Исхо‰ный текст и з‡шифнный текст — м‡тиц‡ l × m., пе‰ст‡‚лflющ‡fl число‚ые зн‡чениfl сим‚оло‚; ключи — ꂇ‰‡тные м‡тицы ‡зме‡ m × m. В м‡тице пеест‡но‚ки к‡ж‰‡fl сток‡ или столбец имеют сто„о о‰ну е‰иницу (1), и ост‡льн‡fl ч‡сть зн‡чений — нули (0). Шифние ‚ыполнflетсfl умножением м‡тицы исхо‰но„о текст‡ н‡ ключе‚ую м‡тицу, чтобы получить м‡тицу з‡шифнно„о текст‡; ‰ешифние 106
Лекциfl 3
Т‡‰иционные шифы с симметичным ключом
поиз‚о‰им умножением з‡шифнно„о текст‡ н‡ ин‚есию ключе‚ой м‡тицы, после че„о получ‡ем исхо‰ный текст. Очень интеесно, что м‡тиц‡ ‰ешифниfl ‚ этом случ‡е, к‡к и ‚с儉‡, — ин‚есиfl м‡тицы шифниfl. О‰н‡ко нет ник‡кой необхо‰имости ин‚етить м‡тицу — ключ傇fl м‡тиц‡ шифниfl может посто быть пеест‡‚лен‡ (с‰‚и„ сток и столбцо‚), чтобы получить ключе‚ую м‡тицу ‰ешифниfl. Пиме 3.27 Рисунок 3.24 пок‡зы‚‡ет поцесс шифниfl. Умножение м‡тицы 4 × 5 исхо‰но„о текст‡ н‡ ключе‚ую м‡тицу шифниfl 5 × 5 ‰‡ет м‡тицу з‡шифнно„о текст‡ 4 × 5. М‡тичн‡fl м‡нипулflциfl тебует изменениfl сим‚оло‚ ‚ пимее 3.27 к их число‚ым зн‡чениflм (от 00 ‰о 25). Об‡тите ‚ним‡ние, что м‡тичное умножение обеспеч肇ет только пеест‡но‚ку столбцо‚; чтение и з‡пись ‚ м‡тицу ‰олжны быть обеспечены ост‡льной ч‡стью ‡л„оитм‡. Рис. 3.24. Пе‰ст‡‚ление ключ‡ ‚ ‚и‰е м‡тицы ‚ шифе пеест‡но‚ок Кипто‡н‡лиз шифо‚ пеест‡но‚ки Шифы пеест‡но‚ки уflз‚имы к нескольким ‚и‰‡м ‡т‡к только ‰лfl з‡шифнно„о текст‡. Ст‡тистическ‡fl ‡т‡к‡ Шиф пеест‡но‚ки не изменflет ч‡стоту бук‚ ‚ з‡шифнном тексте; он лишь пеест‡‚лflет бук‚ы. Т‡к что п傇fl ‡т‡к‡, кото‡fl может быть пименен‡, – ‡н‡лиз ч‡стоты от‰ельной бук‚ы. Этот мето‰ может быть полезен, если ‰лин‡ з‡шифнно„о текст‡ ‰ост‡точно больш‡fl. Мы т‡кую ‡т‡ку ‡ссм‡т肇ли ‡ньше. О‰н‡ко шифы пеест‡но‚ки не сох‡нflют ч‡стоту п‡ и т脇мм. Это озн‡ч‡ет, что Е‚‡ не может использть т‡кие инстумент‡льные се‰ст‚‡. Ф‡ктически, если шиф не сох‡нflет ч‡стоту п‡ и т脇мм, но сох‡нflет ч‡стоту от‰ельных бук‚, то ‚еоflтнее ‚се„о, что это шиф пеест‡но‚ки. Ат‡к‡ „убой силы Е‚‡, чтобы ‡сшифть сообщение, может попобть ‚се ‚озможные ключи. О‰н‡ко число ключей может быть о„омно: 1! + 2! + 3! + • • • + L!, „‰е L — ‰лин‡ з‡шифнно„о текст‡. Лучший по‰хо‰ состоит ‚ том, чтобы попобть от„‡‰‡ть число столбцо‚. Е‚‡ зн‡ет, что число столбцо‚ ‰елитсfl н‡ L. Н‡пиме, если ‰лин‡ шиф‡ — 20 сим‚оло‚, то 20 =1 x 2 x 2 x 5. Это озн‡ч‡ет, что номеом столбцо‚ может быть комбин‡циfl этих коэффициенто‚ (1, 2, 4, 5, 10, 20). О‰н‡ко только о‰ин столбец и только о‰н‡ сток‡ — м‡ло‚еоflтные ‚‡и‡нты. Пиме 3.28 Пе‰положим, что Е‚‡ пеех‚‡тил‡ сообщение з‡шифнно„о текст‡ «EEMYNTAACTTKONSHITZG». Длин‡ сообщениfl L = 20, число столбцо‚ может быть 1, 2, 4, 5, 10 или 20. Е‚‡ и„ноиует пе‚ое зн‡чение, потому что это озн‡ч‡ет «только о‰ин столбец» и м‡ло‚еоflтно. 107
Кус
Киптфиfl и безоп‡сность сетей
a. Если число столбцо‚ — 2, е‰инст‚енные ‰‚е пеест‡но‚ки — (1,2) и (2, 1). Пе‚ое озн‡ч‡ет, что пеест‡но‚ки не было. Е‚‡ побует ‚тоую комбин‡цию. Он‡ ‰елит з‡шифнный текст н‡ мо‰ули по ‰‚‡ сим‚ол‡ “EE MY NT AA CT TK ON SH IT ZG». З‡тем он‡ побует пеест‡‚лflть к‡ж‰ый мо‰уль из них, получ‡fl текст «ee ym nt aa tc kt no hs ti gz», котоый не имеет смысл‡. b. Если номе столбцо‚ — 4, т‡ имеетсfl 4! = 24 пеест‡но‚ки. П傇fl пеест‡но‚к‡ (1 2 3 4) озн‡ч‡ет, что не было ник‡кой пеест‡но‚ки. Е‚‡ ‰олжн‡ попобть ост‡льные. После испыт‡ниfl ‚сех 23 ‚озможностей Е‚‡ н‡хо‰ит, что ник‡кой исхо‰ный текст пи т‡ких пеест‡но‚к‡х не имеет смысл‡. c. Если число столбцо‚ — 5, т‡ есть 5! = 120 пеест‡но‚ок. П傇fl (1 2 3 4 5) озн‡ч‡ет отсутст‚ие пеест‡но‚ки. Е‚‡ ‰олжн‡ попобть ост‡льные. Пеест‡но‚к‡ (2 5 13 4) пиносит пло‰ы — исхо‰ный текст «enemyattackstonightz», котоый имеет смысл после у‰‡лениfl фикти‚ной бук‚ы z и ‰оᇂлениfl побело‚. Ат‡к‡ по об‡зцу Ду„‡fl ‡т‡к‡ шиф‡ пеест‡но‚ки может быть н‡з‚‡н‡ ‡т‡кой по об‡зцу. З‡шифнный текст, со片нный с помощью ключе‚о„о шиф‡ пеест‡но‚ки,
108
Лекциfl 3
Т‡‰иционные шифы с симметичным ключом
имеет некотоые по‚тоflющиесfl об‡зцы. Сле‰ующий пиме пок‡зы‚‡ет з‡шифнный текст, относительно котоо„о из‚естно, что к‡ж‰ый сим‚ол ‚ з‡шифнном тексте ‚ пимее 3.28 получ‡етсfl из исхо‰но„о текст‡ по сле‰ующему илу: 03 08 13 18 01 06 11 16 04 09 14 19 05 10 15 20 02
07 12 17
1-й сим‚ол ‚ з‡шифнном тексте получ‡етсfl из 3-„о сим‚ол‡ исхо‰но„о текст‡. 2-й сим‚ол ‚ з‡шифнном тексте получ‡етсfl из 8-„о сим‚ол‡ исхо‰но„о текст‡. 20-й сим‚ол ‚ з‡шифнном тексте получ‡етсfl из 17-„о сим‚ол‡ исхо‰но„о текст‡, и т‡к ‰‡лее. У н‡с имеютсfl об‡зцы ‚ ‚ышеупомflнутом списке. Мы имеем пflть „упп: (3, 8, 13, 18), (1, 6, 11, 16), (4, 9, 14, 19), (5, 10, 15, 20) и (2, 7, 12, 17). Во ‚сех „упп‡х ‡зность меж‰у ‰‚умfl смежными номе‡ми — 5. Эт‡ е„улflность может использтьсfl кипто‡н‡литиком, чтобы ‚злом‡ть шиф. Если Е‚‡ зн‡ет или может пе‰положить число столбцо‚ (‚ этом случ‡е оно ‡‚нflетсfl 5), он‡ может пеоб‡зть з‡шифнный текст ‚ „уппы по четые сим‚ол‡. Пеест‡но‚к‡ „упп может обеспечить ключ к н‡хож‰ению исхо‰но„о текст‡. Шифы c ‰‚ойной пеест‡но‚кой Шифы с ‰‚ойной пеест‡но‚кой мо„ут з‡ту‰нить ‡боту кипто‡н‡литик‡. Пимеом т‡ко„о шиф‡ fl‚лflетсfl по‚тоение ‰‚‡ж‰ы ‡л„оитм‡, используемо„о ‰лfl шифниfl и ‰ешифниfl ‚ пимее 3.26. Н‡ к‡ж‰ом ш‡„е может пименflтьсfl ‡зличный ключ, но обычно ключ используетсfl о‰ин и тот же. Пиме 3.29 По‚тоим пиме 3.26, „‰е использо‚‡н‡ ‰‚ойн‡fl пеест‡но‚к‡. Рисунок 3.25 пок‡зы‚‡ет поцесс. Рис. 3.25. Д‚ойной шиф пеест‡но‚ки Хотfl кипто‡н‡литик может еще использть ч‡стоту поfl‚лениfl от‰ельно„о сим‚ол‡ ‰лfl ст‡тистической ‡т‡ки н‡ з‡шифнный текст, ‡т‡к‡ по об‡зцу тепеь з‡ту‰нен‡. Об‡зец ‡н‡лиз‡ текст‡ ‚ы„лfl‰ить т‡к: 13 16 05 07 03 06 10 20 18 04 10 12 01 09 15 17 08 11 19 02
С‡‚ни‚ пи‚е‰енный текст и езульт‡т пиме‡ 3.28, мы ‚и‰им, что тепеь нет по‚тоflющихсfl об‡зцо‚. Д‚ойн‡fl пеест‡но‚к‡ у‰‡лил‡ ту е„улflность, что сущест‚о‚‡л‡ ‡ньше. 109
Кус
Киптфиfl и безоп‡сность сетей
3.4. Шифы поток‡ и блочные шифы В лите‡туе симметичные шифы ‡з‰елflют н‡ ‰‚е к‡те„оии: шифы поток‡ и блочные шифы. Хотfl эти к‡те„оии пименflютсfl к со‚еменным шиф‡м, но они мо„ут т‡кже ‡бот‡ть ‚ т‡‰иционных шиф‡х.
Шифы поток‡ В шиф‡х поток‡ шифние ‰ел‡етсfl ‚ о‰ин момент ‚емени 퇉 о‰ним сим‚олом (т‡ким, к‡к буꂇ или бит). Мы имеем поток исхо‰но„о текст‡, поток з‡шифнно„о текст‡ и поток ключей. Обозн‡чим исхо‰ный поток P, поток з‡шифнно„о текст‡ — C и поток ключей — K. P = P1P2P3,……. C = C1C2C3,…. K = (k1, k2, k3,…) C1 = Ek1(P1) C2 = Ek2(P2) C3 = Ek3(P3)… Фи„у‡ 3.26 пок‡зы‚‡ет и‰ею ук‡з‡нно„о ‡нее шиф‡ поток‡. Сим‚олы обычно„о текст‡ пиним‡ютсfl ‡л„оитмом шифниfl по о‰ному. Сим‚олы з‡шифнно„о текст‡ т‡кже со片ютсfl по о‰ному ‚ о‰ин и тот же момент ‚емени. Ключе‚ой поток может быть со片н мно„ими способ‡ми. Это может быть поток с 燇нее опе‰еленными зн‡чениflми; это может быть только о‰но зн‡чение, используемое ‡л„оитмом. Зн‡чениfl мо„ут 燂исеть от исхо‰но„о текст‡ или сим‚оло‚ з‡шифнно„о текст‡. Зн‡чениfl мо„ут т‡кже 燂исеть от пе‰ы‰ущих ключе‚ых зн‡чений. Рис. 3.26. Шиф поток‡ Рисунок 3.26 пок‡зы‚‡ет момент, к‡ тетий сим‚ол ‚ потоке исхо‰но„о текст‡ был з‡шифн с использнием тетье„о зн‡чениfl ‚ ключе‚ом потоке. Результ‡т — это тетий сим‚ол ‚ потоке з‡шифнно„о текст‡. Пиме 3.30 А‰‰ити‚ные шифы мо„ут быть отнесены к к‡те„оии шифо‚ поток‡, ‚ котоых ключе‚ой поток fl‚лflетсfl по‚тоным зн‡чением ключ‡. Ду„ими слми, ключе‚ой поток ‡ссм‡т肇ют к‡к 燇нее опе‰еленный поток ключей или K = (k,k,…k). В этом шифе, о‰н‡ко, к‡ж‰ый сим‚ол ‚ з‡шифнном тексте 燂исит только от соот‚етст‚ующе„о сим‚ол‡ ‚ исхо‰ном тексте, потому что ключе‚ой поток „енеилсfl не燂исимо. Пиме 3.31 Моно‡лф‡‚итные шифы по‰ст‡но‚ки, котоые мы ‡ссмотели ‚ этой лекции, — т‡кже шифы поток‡. О‰н‡ко к‡ж‰ое зн‡чение ключе‚о„о поток‡ ‚ этом случ‡е — отоб‡жение текущих исхо‰ных бук‚ ‚ соот‚етст‚ующие сим‚олы з‡шифнно„о текст‡ по т‡блице отоб‡жениfl. Пиме 3.32 Шифы Вижене‡ — т‡кже шифы поток‡ со„л‡сно опе‰елению. В этом случ‡е ключ поток‡ — по‚тоение m зн‡чений, „‰е m. — ‡зме ключе‚о„о сл. Ду„ими слми, 110
Лекциfl 3
Т‡‰иционные шифы с симметичным ключом
K = (k1,k2,….km,k1,k2,……km….) Пиме 3.33 Мы можем уст‡но‚ить китеий ‰лfl ‡з‰елениfl шифо‚ поток‡, осннных н‡ ключе‚ых поток‡х. Мы можем ск‡з‡ть, что шиф поток‡ — моно‡лф‡‚итный шиф, если зн‡чение ki не 燂исит от исхо‰но„о сим‚ол‡ исхо‰но„о текст‡ ‚ потоке исхо‰но„о текст‡; ‚ поти‚ном случ‡е шиф fl‚лflетсfl мно„о‡лф‡‚итным. • А‰‰ити‚ные шифы fl‚лflютсfl моно‡лф‡‚итными, потому что ki ‚ ключе‚ом потоке — з‡фиксинный (постоflнный), он не 燂исит от позиции сим‚ол‡ ‚ исхо‰ном тексте. • Моно‡лф‡‚итные шифы по‰ст‡но‚ки fl‚лflютсfl fl‚но моно‡лф‡‚итными шиф‡ми поток‡, потому что ki не 燂исит от позиции соот‚етст‚ующе„о сим‚ол‡ ‚ потоке исхо‰но„о текст‡, ‡ 燂исит лишь от зн‡чениfl сим‚ол‡ ‚ исхо‰ном тексте. • Шифы Вижене‡ — мно„о‡лф‡‚итные шифы, потому что ki fl‚но 燂исит от позиции сим‚ол‡ исхо‰но„о текст‡. О‰н‡ко 燂исимость fl‚лflетсfl циклической. О‰ин‡ко‚ый ключ ‰лfl ‰‚ух сим‚оло‚ ‡з‰елен m позициflми.
Блочные шифы В блочном шифе „упп‡ сим‚оло‚ исхо‰но„о текст‡ ‡зме‡ m (m> 1) з‡шифо‚ы‚‡етсfl, со片‚‡fl ‚месте „уппу з‡шифнно„о текст‡ о‰но„о и то„о же ‡зме‡. Осннный н‡ этом опе‰елении блочный шиф использует е‰инст‚енный ключ, чтобы з‡шифть целый блок, ‰‡же если ключ ‰ел‡ет пеемножение зн‡чений. Рисунок 3.27 пок‡зы‚‡ет пинципы блочно„о шиф‡. Рис. 3.27. Блочный шиф В блочном шифе блок з‡шифнно„о текст‡ 燂исит от цело„о блок‡ исхо‰но„о текст‡. Пиме 3.34 Шифы плейфее‡ — блочные шифы. Р‡зме блок‡ — m = 2. Д‚‡ сим‚ол‡ з‡шифны ‚месте. 111
Кус
Киптфиfl и безоп‡сность сетей
Пиме 3.35 Шифы Хилл‡ — блочные шифы. Блок исхо‰но„о текст‡ ‡зме‡ 2 или больше з‡шифн с со‚местным использнием е‰инст‚енно„о ключ‡ (м‡тицы). В этих шиф‡х зн‡чение к‡ж‰о„о сим‚ол‡ ‚ з‡шифнном тексте 燂исит от ‚сех зн‡чений сим‚оло‚ ‚ исхо‰ном тексте. Хотfl ключ может быть получен из m × m. зн‡чений, он ‡ссм‡т肇етсfl к‡к е‰инст‚енный ключ. Пиме. 3.36 Из опе‰елениfl блочно„о шиф‡ flсно, что к‡ж‰ый блочный шиф — это мно„о‡лф‡‚итный шиф, потому что к‡ж‰‡fl буꂇ шифнно„о текст‡ ‚ случ‡е блочно„о шиф‡ 燂исит от ‚сех бук‚ исхо‰но„о текст‡.
Комбин‡циfl Н‡ п‡ктике блоки исхо‰но„о текст‡ шифуютсfl ин‰и‚и‰у‡льно, но они используют ключи поток‡ ‰лfl то„о, чтобы з‡шифть ‚се сообщение блок з‡ блоком. Ду„ими слми, шиф — блочный, к‡ пименflетсfl к ин‰и‚и‰у‡льным блок‡м, но он же и шиф поток‡, к‡ пименflетсfl ко ‚сему сообщению, ‡ссм‡т肇fl к‡ж‰ый блок к‡к е‰иницу. К‡ж‰ый блок пименflет ‡зличный ключ, котоый был с„енеин 燇нее или ‚ течение поцесс‡ шифниfl. Пимеы это„о бу‰ут ‡ссмотены поз‰нее.
3.5. Рекомен‰о‚‡нн‡fl лите‡ту‡ Длfl более ‰ет‡льно„о изучениfl положений, обсуж‰енных ‚ этой лекции, мы екомен‰уем нижесле‰ующие кни„и и с‡йты. Пункты, ук‡з‡нные ‚ скобк‡х, пи‚е‰ены ‚ списке ссылок ‚ конце кни„и.
Кни„и Несколько кни„ ‡ссм‡т肇ют кл‡ссические шифы с симметичным ключом. [Kah961 и [Sin99] ‰‡ют полную истоию этих шифо‚. [Sti06L [Bar02], ITW06], [Cou99], [Sta06], [SchOl], [Mao03] и [Gar0l] пи‚о‰flт хооший ‡н‡лиз технических ‰ет‡лей.
С‡йты Нижесле‰ующие с‡йты ‰‡ют больше инфом‡ции о тем‡х, ‡ссмотенных ‚ этой лекции. http://www.cryptogram.org http://www.cdt.org/crypto/ http://www.cacr.math.uwaterloo.ca/ http://www.acc.stevens.edu/crypto.php http://www.crypto .com/ http: // theory.lcs.mit.edu / ~ rivest/crypto-security.html 112
Лекциfl 3
Т‡‰иционные шифы с симметичным ключом
http://www.trincoll.edu/depts/cpsc/cryptography/substitution.html http://hem.passagen.se/tan01/transpo.html http://www.strangehorizons.comy2001/20011008/steganography.shtml
3.6. Ито„и • Шифние симметичными ключ‡ми использует е‰инст‚енный ключ ‰лfl шифниfl и ‰лfl ‰ешифниfl. Ал„оитмы шифниfl и ‰ешифниfl fl‚лflютсfl об‡тными ‰у„ ‰у„у. • Пе‚он‡ч‡льное сообщение н‡зы‚‡етсfl исхо‰ным текстом. Сообщение, котоое пе則fiтсfl чеез к‡н‡л, н‡зы‚‡етсfl з‡шифнным текстом. Чтобы со片‚‡ть з‡шифнный текст из исхо‰но„о текст‡, ‡л„оитм шифниfl пользуетсfl обще‰оступным ключом з‡секеч肇ниfl. Чтобы со片‚‡ть исхо‰ный текст из з‡шифнно„о текст‡, пименflетсfl ‡л„оитм ‰ешифниfl тот же с‡мый ключ з‡секеч肇ниfl. • Н‡ осннии пинцип‡ Кекхофф‡, нужно ‚с儉‡ пиним‡ть, что поти‚ник зн‡ет ‡л„оитм шифниfl/‰ешифниfl. Устойчи‚ость шиф‡ к ‡т‡ке ‰олжн‡ быть осно‚‡н‡ только н‡ т‡йне ключ‡. • Кипто‡н‡лиз — н‡ук‡ и искусст‚о «‚зло쇻 шифо‚. Есть четые общих тип‡ ‡т‡к кипто‡н‡лиз‡: ‡т‡к‡ только н‡ з‡шифнный текст, ‡т‡к‡ по об‡зцу, ‡т‡к‡ с ‚ыбокой исхо‰но„о текст‡, ‡т‡к‡ с ‚ыбокой з‡шифнно„о текст‡. • Т‡‰иционные шифы с симметичным ключом мо„ут быть ‡з‰елены н‡ ‰‚е обшиных к‡те„оии: шифы по‰ст‡но‚ки и шифы пеест‡но‚ки. Шиф по‰ст‡но‚ки з‡менflет о‰ин сим‚ол ‰у„им сим‚олом. Шиф пеест‡но‚ки пееупоfl‰оч肇ет сим‚олы. • Шифы по‰ст‡но‚ки мо„ут быть ‡з‰елены н‡ ‰‚е обшиных к‡те„оии: моно‡лф‡‚итные шифы и мно„о‡лф‡‚итные шифы. В моно‡лф‡‚итной по‰ст‡но‚ке отношениfl меж‰у сим‚олом ‚ исхо‰ном тексте и сим‚олом ‚ з‡шифнном тексте fl‚лflютсfl непосе‰ст‚енными. В мно„о‡лф‡‚итной по‰ст‡но‚ке отношениfl меж‰у сим‚ол‡ми ‚ исхо‰ном тексте и сим‚ол‡ми ‚ з‡шифнном тексте — «о‰ин ко мно„им». • Моно‡лф‡‚итные шифы ‚ключ‡ют ‚ себfl ‡‰‰ити‚ные, мультиплик‡ти‚ные, ‡ффинные и моно‡лф‡‚итные шифы по‰ст‡но‚ки. • Мно„о‡лф‡‚итные шифы ‚ключ‡ют ‚ себfl шифы: ‡‚тоключе‚ой, плейфее‡, Вижене‡, Хилл‡, о‰но‡зо‚о„о блокнот‡, ото‡, и шифы «Эни„мы». • Шифы пеест‡но‚ки ‚ключ‡ют ‚ себfl: бесключе‚ой, ключе‚ой шифы и шифы с ‰‚ойной пеест‡но‚кой. • Симметичные шифы мо„ут т‡кже быть ‡з‰елены н‡ ‰‚е обшиных к‡те„оии: шифы поток‡ и блочные шифы. В шифе поток‡ шифние и ‰ешифние о‰но„о сим‚ол‡ поиз‚о‰flтсfl ‚ о‰ин момент ‚емени. В блочном шифе сим‚олы ‚ блоке з‡шифны ‚месте. П‡ктически, блоки исхо‰но„о текст‡ з‡шифны ин‰и‚и‰у‡льно, но они используют поток ключей, чтобы з‡шифть ‚се сообщение блок з‡ блоком.
113
Кус
Киптфиfl и безоп‡сность сетей
3.7. Н‡бо ‰лfl п‡ктики Обзоные ‚опосы 1. Опе‰елите шиф с симметичным ключом. 2. Поflсните отличиfl меж‰у шифом по‰ст‡но‚ки и шифом пеест‡но‚ки. 3. Поflсните отличиfl меж‰у моно‡лф‡‚итным и мно„о‡лф‡‚итным шиф‡ми. 4. Поflсните отличиfl меж‰у шифом поток‡ и блочным шифом. 5. Все ли шифы поток‡ fl‚лflютсfl моно‡лф‡‚итными? Поflсните. 6. Все ли блочные шифы fl‚лflютсfl мно„о‡лф‡‚итными? Поflсните. 7. Пеечислите ти моно‡лф‡‚итных шиф‡. 8. Пеечислите ти мно„о‡лф‡‚итных шиф‡. 9. Пеечислите ‰‚‡ шиф‡ пеест‡но‚ки. 10. Пеечислите четые ‚и‰‡ ‡т‡к кипто‡н‡лиз‡.
Уп‡жнениfl 1. М‡ленький ч‡стный клуб имеет только 100 члено‚. От‚етьте н‡ сле‰ующие ‚опосы: a. Сколько ключей з‡секеч肇ниfl необхо‰имо иметь, если ‚се члены клуб‡ хотflт пе則‚‡ть секетные сообщениfl ‰у„ ‰у„у? b. Сколько ключей з‡секеч肇ниfl необхо‰имо, если к‡ж‰ый ‰о‚еflет пези‰енту клуб‡? Если о‰ин член клуб‡ ‰олжен пе則ть сообщение ‰у„ому, он сн‡ч‡л‡ пе則ет это пези‰енту; пези‰ент т‡ пе則ет сообщение ‰у„ому члену клуб‡. c. Сколько ключей з‡секеч肇ниfl необхо‰имо, если пези‰ент еш‡ет, что ‰‚‡ член‡ клуб‡, котоые ‰олжны с‚flз‡тьсfl ‰у„ с ‰у„ом, ‰олжны сн‡ч‡л‡ ‚ойти ‚ конт‡кт с ним? Пези‰ент т‡ со片ет ‚еменный ключ, котоый используетсfl меж‰у этими ‰‚умfl член‡ми клуб‡. Веменный ключ з‡шифо‚ы‚‡етсfl и посыл‡етсfl обоим член‡м клуб‡. 2. Ахеоло„и н‡шли но‚ый м‡нускипт, н‡пис‡нный н‡ неиз‚естном flзыке. Позже они н‡шли м‡ленькую т‡бличку, кото‡fl со‰ежит пе‰ложение, н‡пис‡нное н‡ том же с‡мом flзыке с пее‚о‰ом н‡ „еческий flзык. Используfl т‡бличку, они смо„ли почит‡ть пе‚он‡ч‡льную укопись. К‡кую ‡т‡ку пименили ‡хеоло„и? 3. Алис‡ может использть только ‡‰‰ити‚ный шиф н‡ с‚оем компьютее, чтобы пе則ть сообщение ‰у„у. Он‡ ‰ум‡ет, что сообщение бу‰ет более безоп‡сно, если он‡ з‡шифует е„о ‰‚‡ ‡з‡, к‡ж‰ый ‡з с ‡зличным ключом. Дейст‚ительно ли он‡ п‡‚‡? Обоснуйте ‚‡ш от‚ет. 4. Алис‡ хочет пе則ть ‰линное сообщение. Он‡ использует моно‡лф‡‚итный шиф по‰ст‡но‚ки. Он‡ ‰ум‡ет, что если он‡ сожмет сообщение, это может з‡щитить текст от ‡т‡ки Е‚ы по ч‡стоте от‰ельных бук‚. Помет ли сж‡тие? Должн‡ ли он‡ сж‡ть сообщение, пеж‰е чем з‡шифует е„о или после это„о? Обоснуйте ‚‡ш от‚ет. 5. Алис‡ ч‡сто ‰олжн‡ з‡шифо‚ы‚‡ть исхо‰ный текст, использующий ‚месте бук‚ы (от a ‰о z) и цифы (от 0 ‰о 9). 114
Лекциfl 3
6.
7.
8.
9.
Т‡‰иционные шифы с симметичным ключом
a. Если он‡ пименflет ‡‰‰ити‚ный шиф, что fl‚лflетсfl множест‚ом ключей? К‡кие бу‰ут мо‰ули? b. Если он‡ пименflет мультиплик‡ти‚ный шиф, что fl‚лflетсfl множест‚ом ключей? К‡кие бу‰ут мо‰ули? c. Если он‡ пименflет ‡ффинный шиф, что fl‚лflетсfl множест‚ом ключей? К‡кие бу‰ут мо‰ули? Пе‰положим, что к исхо‰ному тексту ‰оᇂлflютсfl побелы, точки и зн‡ки ‚опос‡, чтобы у‚еличить множест‚о ключей элемент‡ных шифо‚. a. К‡ко‚о множест‚о ключей, если используетсfl ‡‰‰ити‚ный шиф? b. К‡ко‚о множест‚о ключей, если используетсfl мультиплик‡ти‚ный шиф? c. К‡ко‚о множест‚о ключей, если используетсfl ‡ффинный шиф? Алис‡ и Боб ешили и„ноить пинципы Кекхофф‡ и скы‚‡ют тип шиф‡, котоый они используют. a. К‡к может Е‚‡ понflть, использлсfl ли шиф по‰ст‡но‚ки или шиф пеест‡но‚ки? b. Если Е‚‡ зн‡ет, что использнный шиф — шиф по‰ст‡но‚ки, к‡к может он‡ опе‰елить, был ли он ‡‰‰ити‚ным, мультиплик‡ти‚ным или ‡ффинным шифом? c. Если Е‚‡ зн‡ет, что использнный шиф — шиф пеест‡но‚ки, к‡к он‡ может опе‰елить ‡зме секции (m)? В к‡ж‰ом из сле‰ующих шифо‚ — к‡кое м‡ксим‡льное число сим‚оло‚ может быть изменено ‚ з‡шифнном тексте, если ‚ исхо‰ном тексте изменен только е‰инст‚енный сим‚ол? a. А‰‰ити‚ный b. Мультиплик‡ти‚ный c. Аффинный d. Вижене‡ e. А‚тоключе‚ой f. О‰но‡зо‚ый блокнот g. Ротоный h. «Эни„쇻 В к‡ж‰ом из сле‰ующих шифо‚ — к‡кое м‡ксим‡льное число сим‚оло‚ бу‰ет изменено ‚ з‡шифнном тексте, если ‚ исхо‰ном тексте изменен только о‰ин сим‚ол? a. О‰иночн‡fl пеест‡но‚к‡ b. Д‚ойн‡fl пеест‡но‚к‡ c. Плейфее
10. Длfl к‡ж‰о„о из сле‰ующих шифо‚ опе‰елите, fl‚лflетсfl ли он шифом поток‡ или блочным шифом. Обоснуйте ‚‡ши от‚еты. a. Плейфее 115
Кус
Киптфиfl и безоп‡сность сетей
b. А‚тоключ c. О‰но‡зо‚ый блокнот d. Рото e. «Эни„쇻 11. З‡шифуйте сообщение «this is exercise» («это — уп‡жнение»), используfl о‰ин из сле‰ующих шифо‚. И„ноиуйте побелы меж‰у слми. Р‡сшифуйте сообщение, чтобы получить пе‚он‡ч‡льный исхо‰ный текст. a. А‰‰ити‚ный шиф с ключом = 20 b. Мультиплик‡ти‚ный шиф с ключом = 15 c. Аффинный шиф с ключом = (15, 20) 12. З‡шифуйте сообщение «the house is being sold tonight» («‰ом пн се„о‰нfl ‚ечеом»), используfl о‰ин из сле‰ующих шифо‚. И„ноиуйте побелы меж‰у слми. Р‡сшифуйте сообщение, чтобы получить исхо‰ный текст. a. Шиф Вижене‡ с ключом: «dollars» b. Шиф с ‡‚том‡тическим ключом = 7 c. Шиф плейфее‡ с ключом, со片нным ‚ тексте (см. ис. 3.13) 13. Используйте шиф Вижене‡ с ключе‚ым сло‚ом «HEALTH», чтобы з‡шифть сообщение «Life is full surprises» («Жизнь полн‡ сюпизо‚»). 14. Используйте шиф плейфее‡, чтобы з‡шифть сообщение «The key hidden under the door pad» («ключ спflт‡н по‰ ко‚иком у ‰‚еи»). Ключ з‡секеч肇ниfl можно сост‡‚ить, з‡полнflfl пе‚ую и ‚тоую ч‡сть стоки со сло‚ом «GUIDANCE» и з‡полнflfl ост‡льную ч‡сть м‡тицы с ост‡льной ч‡стью ‡лф‡‚ит‡. 15. Используйте шиф Хилл‡, чтобы з‡шифть сообщение «We live in an insecure world» («Мы жи‚ем ‚ оп‡сном мие»). Пимените сле‰ующий ключ: 16. Джон чит‡ет т‡йную кни„у ‚‚е‰ениfl ‚ киптфию. В о‰ной ч‡сти кни„и ‡‚то ‰‡ет з‡шифнный текст «CIW» и ‰‚умfl „‡ф‡ми позже „о‚оит чит‡телю, что это — ключ с‰‚脇, и исхо‰ный текст — «YES» («‰‡»). В сле‰ующей лекции „еой н‡шел т‡бличку с ‚ы„‡‚инным н‡ ней текстом «XV1EWYW1». Джон неме‰ленно ‡з„‡‰‡л ф‡ктическое зн‡чение з‡шифнно„о текст‡. К‡кой тип ‡т‡ки пе‰пинflл Джон? К‡ко‚ исхо‰ный текст? 17. Е‚‡ т‡йно получ‡ет ‰оступ к компьютеу Алисы и, используfl ее шиф, печ‡т‡ет «abcdefghij»; н‡ эк‡не поfl‚илось «CABDEHEGIJ». Пе‰положим, Е‚‡ зн‡ет, что Алис‡ использует ключе‚ой шиф пеест‡но‚ки. От‚етьте н‡ сле‰ующие ‚опосы: a. К‡кую ‡т‡ку пе‰пиним‡ет Е‚‡? b. К‡ко‚ ‡зме ключ‡ пеест‡но‚ки? 18. Используйте ‡т‡ку „убой силы, чтобы ‡сшифть сле‰ующее сообщение, з‡шифнное Алисой, пименflfl ‡‰‰ити‚ный шиф. Пе‰положим, что Алис‡ ‚с儉‡ использует ключ, с‚flз‡нный с ее ‰нем ож‰ениfl, котоый пихо‰итсfl н‡ 13-е число месflц‡. NCJAEZRCLASJLYODEPRLYZRCLASJLCPEHZDTOPDZQLNZTY J 116
Лекциfl 3
Т‡‰иционные шифы с симметичным ключом
19. Используйте ‡т‡ку „убой силы, чтобы ‡сшифть сле‰ующее сообщение. Пе‰положите, что В‡м из‚естно: шиф — ‡ффинный и исхо‰ный текст «ab» з‡шифо‚‡н «GL». XPALASXYFGFUKPXUSOGEUTKCDGFXANMGNVS 20. Используйте ‡т‡ку ч‡стоты от‰ельных бук‚, чтобы ‡сшифть сле‰ующее сообщение. Пе‰положите, что В‡м из‚естно, что оно з‡шифно с пименением моно‡лф‡‚итно„о шиф‡ по‰ст‡но‚ки. ONHOVEJHWOBEVGWOCBWHNUGBLHGBGR 21. Пе‰положим, что зн‡ки пепин‡ниfl (точки, ‚опосительные зн‡ки и побелы) ск뇉ы‚‡ютсfl с ‡лф‡‚итом шифниfl шиф‡ Хилл‡, потом ‰лfl шифниfl и ‰ешифниfl используютсfl ключе‚ые м‡тицы 2 × 2 ‚ Z29. a. Н‡й‰ите общее количест‚о ‚озможных м‡тиц. b. Док‡з‡но, что общее количест‚о об‡тимых м‡тиц — (N2 – 1) (N2 – N), „‰е N — число ‡зме‡ ‡лф‡‚ит‡. Н‡й‰ите множест‚о ключей шиф‡ Хилл‡, используfl этот ‡лф‡‚ит. 22. Используйте ‡т‡ку ч‡стоты от‰ельных бук‚, чтобы ‚злом‡ть сле‰ующий з‡шифнный текст. Пе‰положите, что В‡м из‚естно, что он был со片н с использнием ‡‰‰ити‚но„о шиф‡. OTWEWNGWCBPQABIZVQAPMLJGZWTTQVOBQUMAPMIDGZCAB EQVBMZLZIXMLAXZQVOQVLMMXAVWEIVLLIZSNZWAB JQZLWNLMTQOPBVIUMLGWCBPAEQNBTGTMNBBPMVMAB ITIAKWCTLVBBQUMQBEPQTMQBEIAQVUGBZCAB 23. Используйте тест К‡зиско„о и ‡т‡ку ч‡стоты от‰ельных бук‚, чтобы н‡ушить сле‰ующий з‡шифнный текст. Пе‰положите, что В‡м из‚естно, что он был со片н шифом Вижене‡. MPYIGOBSRMIDBSYRDIKATXAILFDFKXTPPSNTTJIGTHDELT TXAIREIHSVOBSMLUCFIOEPZIWACRFXICUVXVTOPXDLWPENDHPRSI DDBXWWTZPHNSOCLOUMSNRCCVUUXZHHNWSVXAUHIK LXTIMOICHTYPBHMHXGXHOLWPEWWWWDALOCTSQAELT 24. Ключ шифниfl ‚ шифе пеест‡но‚ки — (3, 2, 6, 1, 5, 4). Н‡й‰ите ключ ‰ешифниfl. 25. Пок‡жите м‡тичное пе‰ст‡‚ление ключ‡ шифниfl пеест‡но‚ки с ключом (3, 2, 6, 1, 5, 4). Н‡й‰ите м‡тичное пе‰ст‡‚ление ключ‡ ‰ешифниfl.
117
Кус
Киптфиfl и безоп‡сность сетей
26. Д‡ны исхо‰ный текст «letusmeetnow» и соот‚етст‚ующий з‡шифнный текст «HBCDFNOPIKLB». Из‚естно, что ‡л„оитм — шиф Хилл‡, но ‚ы не зн‡ете ‡зме ключ‡. Н‡й‰ите ключе‚ую м‡тицу. 27. Шифы Хилл‡ и мультиплик‡ти‚ные шифы очень похожи. Шифы Хилл‡ — блочные шифы, использующие умножение м‡тиц; мульти-
плик‡ти‚ные шифы — шифы поток‡, использующие ск‡лflное умножение. a. Опе‰елите блочный шиф, котоый, по‰обно ‡‰‰ити‚ному шифу, использует сложение м‡тиц. b. Опе‰елите блочный шиф, котоый, по‰обно ‡ффинному шифу, использует умножение и сложение м‡тиц. 28. Опе‰елите но‚ый шиф поток‡. Шиф fl‚лflетсfl ‡ффинным, но ключи 燂исflт от позиции сим‚ол‡ ‚ исхо‰ном тексте. Если сим‚ол исхо‰но„о текст‡ бу‰ет з‡шифо‚‡н ‚ позиции i, мы можем н‡йти ключи: a. Мультиплик‡ти‚ный ключ — (i mod 12) элемент ‚ Z26*. b. А‰‰ити‚ный ключ — (i mod 26) элемент ‚ Z26. З‡шифуйте сообщение «cryptography is fun» («киптфиfl — з‡б‡‚но»), используfl этот но‚ый шиф. 29. Пе‰положим, что ‰лfl шиф‡ Хилл‡ исхо‰ный текст fl‚лflетсfl мультиплик‡ти‚ной е‰иничной м‡тицей (I). Н‡й‰ите отношениfl меж‰у ключом и з‡шифнным текстом. Используйте езульт‡т ‚‡ше„о иссле‰о‚‡ниfl и попыт‡йтесь ‡т‡кть ‚ыбоку исхо‰но„о текст‡, пименflюще„о шиф Хилл‡. 30. Atbash был популflным шифом се‰и Библейских ‡‚тоо‚ (VI ‚ек ‰о н‡шей эы). В Atbash «A» — шифлось бук‚ой «Z», «B» был з‡шифн бук‚ой «Y», и т‡к ‰‡лее. Ан‡ло„ично «Z» был з‡шифн к‡к «A», «Y» з‡шифн к‡к «B», и т‡к ‰‡лее. Пе‰положим, что ‡лф‡‚ит ‡з‰елен н‡ ‰‚е поло‚ины и бук‚ы ‚ пе‚ой поло‚ине з‡шифны к‡к бук‚ы ‚о ‚тоой и н‡обоот. Н‡й‰ите тип шиф‡ и ключ‡. З‡шифуйте сообщение «уп‡жнение», используfl Atbash-шиф. 31. В шифе Полибиус‡ (Polybius — имский истоик, жи‚ший ‚ IV ‚еке ‰о н‡шей эы) к‡ж‰‡fl буꂇ з‡шифо‚‡н‡ к‡к ‰‚‡ целых числ‡. Ключ — м‡тиц‡ сим‚оло‚ 5 × 5, к‡к ‚ шифе плейфее‡. Исхо‰ный текст — м‡тиц‡ сим‚оло‚, з‡шифнный текст — эти ‰‚‡ целых числ‡ (к‡ж‰ое меж‰у 1 и 5), пе‰ст‡‚лflющие столбцы и стоки. З‡шифуйте сообщение «An exercise» («уп‡жнение»), используfl шиф Полибиус‡ (Polybius) со сле‰ующим ключом: 118
Лекциfl 4
М‡тем‡тик‡ киптфии. Ч‡сть II. Ал„еб‡ические стуктуы
Лекциfl 4. М‡тем‡тик‡ киптфии. Ч‡сть II. Ал„еб‡ические стуктуы Цели и со‰еж‡ние Мы пост‡‡емсfl з‰есь пото‚ить чит‡телfl к сле‰ующим нескольким лекциflм, ‚ котоых ‡ссм‡т肇ютсfl со‚еменные шифы с симметичным ключом, осннные н‡ ‡л„еб‡ических стукту‡х. Эт‡ лекциfl имеет несколько целей: • ‡ссмотеть понflтие ‡л„еб‡ических стукту; • опе‰елить и пи‚ести некотоые пимеы ‡л„еб‡ических „упп; • опе‰елить и пи‚ести некотоые пимеы ‡л„еб‡ических колец; • опе‰елить и пи‚ести некотоые пимеы ‡л„еб‡ических полей; • по„о‚оить о т‡ких опе‡циflх, к‡к сложение, ‚ычит‡ние, умножение и ‰еление c n-бито‚ыми слми ‚ со‚еменных блочных шиф‡х. Сле‰ующие лекции пос‚flщены обсуж‰ению со‚еменных симметичноключе‚ых блочных шифо‚, котоые ‚ыполнflют опе‡ции с n-бито‚ыми слми. Поним‡ние и ‡н‡лиз этих шифо‚ тебуют некотоо„о зн‡ниfl ‡з‰ело‚ со‚еменной ‡л„ебы, н‡зы‚‡емых ‡л„еб‡ическими стукту‡ми. В н‡ч‡ле этой лекции ‰ел‡етсfl обзо ‡л„еб‡ических стукту, ‡ з‡тем пок‡з‡но, к‡к ‚ыполнить сложение или умножение c n-бито‚ыми слми.
4.1. Ал„еб‡ические стуктуы В лекции 2 мы обсу扇ли некотоые множест‚‡ чисел, т‡ких, к‡к Z, Zn, Zn*, Zp и Zp*. Киптфиfl тебует, чтобы были 燉‡ны множест‚‡ целых чисел, и опе‡ции, опе‰еленные ‰лfl них. Комбин‡циfl множест‚ и опе‡ций, котоые мо„ут быть пименены к элемент‡м множест‚‡, н‡зы‚‡етсfl ‡л„еб‡ической стуктуой. В этой лекции мы опе‰елим ти общих ‡л„еб‡ических стуктуы: „уппы, кольц‡ и полfl (ис. 4.1). Рис. 4.1. Общие ‡л„еб‡ические стуктуы
Гуппы Гупп‡ (G) — н‡бо элементо‚ с бин‡ной опе‡цией «•» — об뇉‡ет четыьмfl с‚ойст‚‡ми (или у‰о‚лет‚оflет ‡ксиом‡м), котоые бу‰ут пеечислены ниже. • Коммут‡ти‚н‡fl „упп‡, т‡кже н‡зы‚‡ем‡fl ‡беле‚ой, — „упп‡, ‚ котоой опе‡то об뇉‡ет теми же четыьмfl с‚ойст‚‡ми ‰лfl „упп плюс ‰ополнительным — коммут‡ти‚ностью. Эти пflть с‚ойст‚ опе‰елены ‰‡лее. 119
Кус
Киптфиfl и безоп‡сность сетей
• З‡мкнутость. Если a и b — элементы G, то c = a • b — т‡кже элемент G. Это озн‡ч‡ет, что езульт‡т пименениfl опе‡ции к любым ‰‚ум элемент‡м множест‚‡ есть элемент это„о множест‚‡. • Ассоци‡ти‚ность. Если a, b и c — элементы G, то ‚ено (a• b) • c = a• (b •c) Ду„ими слми, не имеет зн‡чениfl, ‚ к‡ком поfl‰ке мы пименflем опе‡цию более чем к ‰‚ум элемент‡м. • Коммут‡ти‚ность. Длfl ‚сех a и b ‚ G мы имеем a • b = b • a. Об‡тите ‚ним‡ние, что это с‚ойст‚о ‰олжно быть ‚ено только ‰лfl коммут‡ти‚ной „уппы. • Сущест‚ние нейт‡льно„о элемент‡. Длfl ‚се элементо‚ ‚ G сущест‚ует элемент e, котоый н‡зы‚‡етсfl нейт‡льным элементом, т‡кой, что e • a = a • e = a. • Сущест‚ние ин‚есии. Длfl к‡ж‰о„о a ‚ G сущест‚ует элемент a’, н‡зы‚‡емый об‡тным к a, т‡кой, что a • a’ = a’ • a = e. Рисунок 4.2 иллюстиует понflтие „уппы.
Рис. 4.2. Гупп‡ Пиложение Хотfl „упп‡ ‚ключ‡ет е‰инст‚енный опе‡то, с‚ойст‚‡, писущие к‡ж‰ой опе‡ции, поз‚олflют использние п‡ы опе‡ций, если они ин‚есны ‰у„ ‰у„у. Н‡пиме, если опе‰еленный ‚ыше опе‡то — сложение, то „упп‡ пеж肇ет и сложение, и ‚ычит‡ние, ибо ‚ычит‡ние и сложение — ‡‰‰ити‚но ин‚есные опе‡ции. Это т‡кже ‚ено ‰лfl умножениfl и ‰елениfl. О‰н‡ко „упп‡ может пеж‡ть только сложение/‚ычит‡ние или умножение/‰еление, но не об‡ сочет‡ниfl опе‡тоо‚ о‰но‚еменно. Пиме 4.1 Множест‚о ‚ычето‚ целых чисел с опе‡цией сложениfl, G =
, fl‚лflетсfl коммут‡ти‚ной „уппой. Мы можем ‚ыполнить сложение и ‚ычит‡ние н‡ элемент‡х это„о множест‚‡, не ‚ыхо‰fl з‡ е„о пе‰елы. По‚еим эти с‚ойст‚‡. 120
Лекциfl 4
М‡тем‡тик‡ киптфии. Ч‡сть II. Ал„еб‡ические стуктуы
1. З‡мкнутость у‰о‚лет‚оflетсfl. Результ‡т сложениfl ‰‚ух целых чисел ‚ Zn — ‰у„ое целое число ‚ Zn. 2. Ассоци‡ти‚ность у‰о‚лет‚оflетсfl. Результ‡т 4 + (3 + 2) тот же с‡мый, что ‚ случ‡е (4 + 3) + 2. 3. Коммут‡ти‚ность у‰о‚лет‚оflетсfl. Мы имеем 3 + 5 = 5 + 3. 4. Нейт‡льный элемент — 0. Мы имеем 3 + 0 = 0 + 3 = 3. 5. К‡ж‰ый элемент имеет ‡‰‰ити‚ную ин‚есию. Ин‚есиfl элемент‡ — е„о ‰ополнение. Н‡пиме, ин‚есиfl 3 — это –3 (n – 3 ‚ Zn), и ин‚есиfl –3 — это 3. Ин‚есиfl поз‚олflет н‡м ‚ыполнflть ‚ычит‡ние н‡ множест‚е. Пиме 4.2 Множест‚о Zn* с опе‡тоом умножениfl G = fl‚лflетсfl т‡кже ‡беле‚ой „уппой. Мы можем ‚ыполнить умножение и ‰еление н‡ элемент‡х это„о множест‚‡, не ‚ыхо‰fl з‡ е„о пе‰елы. Это обле„ч‡ет по‚еку пе‚ых тех с‚ойст‚. Нейт‡льный элемент ‡‚ен 1. К‡ж‰ый элемент имеет ин‚есию, кото‡fl может быть н‡й‰ен‡ со„л‡сно ‡сшиенному ‡л„оитму Е‚кл艇. Пиме 4.3 Хотfl мы обычно пе‰ст‡‚лflем „уппу к‡к множест‚о чисел с обычными опе‡то‡ми, т‡кими, к‡к сложение или ‚ычит‡ние, опе‰елениfl „уппы поз‚олflют н‡м опе‰елflть любое множест‚о объекто‚ и опе‡ций, котоые у‰о‚лет‚оflют ‚ышеупомflнутым с‚ойст‚‡м. Опе‰елим множест‚о G = <{a, b, c, d,}, •> и опе‡цию, пок‡з‡нную с помощью т‡блицы 4.1. Т‡блиц‡ 4.1. Т‡блиц‡ опе‡ции ‰лfl пиме‡ 4.3
Это — ‡бел傇 „упп‡. Все пflть с‚ойст‚ у‰о‚лет‚оены. 1. З‡мкнутость у‰о‚лет‚оен‡. Пименение опе‡то‡ н‡ любой п‡е элементо‚ ‰‡ет ‚ езульт‡те ‰у„ой элемент это„о множест‚‡. 2. Ассоци‡ти‚ность т‡кже у‰о‚лет‚оен‡. Чтобы ‰ок‡з‡ть это, мы ‰олжны по‚еить с‚ойст‚о ‰лfl любой комбин‡ции из тех элементо‚. Н‡пиме, (a+ b) + c = a+ (b + c) = d. 3. Опе‡циfl коммут‡ти‚н‡. Мы имеем a + b = b + a. 4. Гупп‡ имеет нейт‡льный элемент, котоым fl‚лflетсfl a. 5. К‡ж‰ый элемент имеет ин‚есию. Об‡тные п‡ы мо„ут быть н‡й‰ены. В т‡блице они ук‡з‡ны тене‚ыми элемент‡ми ‚ к‡ж‰ой стоке. П‡ы — (a, a), (b, d), (c, c). Пиме 4.4 Элементы ‚ „уппе не обflз‡тельно ‰олжны быть числ‡ми или объект‡ми; они мо„ут быть ил‡ми, отоб‡жениflми, функциflми или ‰ейст‚иflми. Очень 121
Кус
Киптфиfl и безоп‡сность сетей
интеесн‡fl „упп‡ — „упп‡ пеест‡но‚ок. Множест‚о ‚сех пеест‡но‚ок и опе‡то fl‚лflетсfl композицией: пименениfl о‰ной пеест‡но‚ки з‡ ‰у„ой. Рисунок 4.3 пок‡зы‚‡ет композиции ‰‚ух пеест‡но‚ок, котоые пеемещ‡ют ти ‚хо‰ных си„н‡л‡, чтобы со片ть ти ‚ыхо‰ных си„н‡л‡.
Рис. 4.3. Композиции пеест‡но‚ок (Пиме 4.4) Вхо‰ные си„н‡лы и ‚ыхо‰ные си„н‡лы мо„ут быть сим‚ол‡ми (лекциfl 2) или бит‡ми (лекциfl 5). Мы изоб‡зили к‡ж‰ую пеест‡но‚ку пflмоу„ольником, ‚нути котоо„о пок‡з‡но, к‡к исхо‰flщий ‚хо‰ной си„н‡л и ин‰екс (1,2,3) опе‰елflет ‚ыхо‰ной си„н‡л. Композициfl состоит из ‰‚ух пеест‡но‚ок ‚ поfl‰ке о‰н‡ з‡ ‰у„ой. Пи тех ‚хо‰ных си„н‡л‡х и тех ‚ыхо‰ных си„н‡л‡х может быть 3! или 6 ‡зличных пеест‡но‚ок. Т‡блиц‡ 4.2 ‰‡ет опе‰еление это„о опе‡то‡. П傇fl сток‡ — п傇fl пеест‡но‚к‡; пе‚ый столбец — ‚то‡fl пеест‡но‚к‡. Результ‡т со‰ежитсfl н‡ пеесечении. В этом случ‡е у‰о‚лет‚оены только четые с‚ойст‚‡; поэтому „упп‡ — не ‡бел傇. 1. З‡мкнутость у‰о‚лет‚оен‡. 2. Ассоци‡ти‚ность т‡кже у‰о‚лет‚оен‡. Чтобы ‰ок‡з‡ть это, мы ‰олжны по‚еить с‚ойст‚о ‰лfl любой комбин‡ции из тех элементо‚. 3. С‚ойст‚о коммут‡ти‚ности не у‰о‚лет‚оено. Это может быть ле„ко по‚еено, но мы ост‡‚им по‚еку ‰лfl уп‡жнениfl. Т‡блиц‡ 4.2. Т‡блиц‡ опе‡ции ‰лfl „уппы пеест‡но‚ок
122
Лекциfl 4
М‡тем‡тик‡ киптфии. Ч‡сть II. Ал„еб‡ические стуктуы
4. Множест‚о имеет нейт‡льный элемент [1 2 3] (пеест‡но‚к‡ отсутст‚ует). Эти элементы пок‡з‡ны ‰у„им ц‚етом. 5. К‡ж‰ый элемент имеет ин‚есию. Об‡тные п‡ы мо„ут быть н‡й‰ены, если использть нейт‡льные элементы. Пиме 4.5 В пе‰ы‰ущем пимее мы пок‡з‡ли, что множест‚о пеест‡но‚ок с композицией опе‡ций — „упп‡. Поэтому пименение ‰‚ух пеест‡но‚ок (о‰н‡ з‡ ‰у„ой) не может усилить безоп‡сность шиф‡. Мы сможем ‚с儉‡ н‡йти пеест‡но‚ку, кото‡fl с‰ел‡ет ту же с‡мую опе‡цию, используfl с‚ойст‚‡ з‡мкнутости. Конечн‡fl „упп‡ Гупп‡ н‡зы‚‡етсfl конечной „уппой, если множест‚о имеет конечное число элементо‚; ин‡че это — бесконечн‡fl „упп‡. Поfl‰ок „уппы Поfl‰ок „уппы, G , — это число элементо‚ ‚ „уппе. Если „упп‡ не конечн‡, ее поfl‰ок бесконечен; если конечн‡, поfl‰ок конечен. Пуппы По‰множест‚о H „уппы G — пупп‡ G, если с‡мо H — „упп‡ относительно опе‡ции н‡ G. Ду„ими слми, если G = <S, •> — „упп‡, то H = — „упп‡ ‰лfl той же с‡мой опе‡ции, и если T — непустое по‰множест‚о S, то H — пупп‡ G. Вышеупомflнутое опе‰еление пзум傇ет, что: 1. если a и b — члены обеих „упп, то c = a • b — т‡кже элемент обеих „упп; 2. ‰лfl „уппы и пуппы имеетсfl о‰ин и тот же нейт‡льный элемент; 3. если этот элемент пи퇉лежит обеим „упп‡м, ин‚есиfl a — т‡кже элемент обеих „упп; 4. „упп‡, полученн‡fl с помощью нейт‡льно„о элемент‡ G, H = <{e}, •>, fl‚лflетсfl пуппой G; 5. к‡ж‰‡fl „упп‡ — пупп‡ с‡мой себfl. Пиме 4.6 Я‚лflетсfl ли „упп‡ H = пуппой „уппы G = ? Решение От‚ет — нет. Хотfl H — по‰множест‚о G, опе‡ции, опе‰еленные ‰лfl этих ‰‚ух „упп, ‡зличны. Опе‡циfl H — сложение по мо‰улю 10; опе‡циfl ‚ G — сложение по мо‰улю 12. Циклические пуппы Если пупп‡ „уппы может быть с„енеин‡, используfl ‚оз‚е‰ение ‚ степень элемент‡, то т‡к‡fl пупп‡ н‡зы‚‡етсfl циклической пуппой. Темин ‚оз‚е‰ение ‚ степень з‰есь озн‡ч‡ет мно„ок‡тное пименение к элементу „уппо‚ой опе‡ции: an → a•a • ... •a (n ‡з) 123
Кус
Киптфиfl и безоп‡сность сетей
Множест‚о, полученное ‚ езульт‡те это„о поцесс‡, обозн‡ч‡етсfl ‚ тексте к‡к . Об‡тите ‚ним‡ние т‡кже, что a0 = e. Пиме 4.7 Из „уппы G = < Z6, +> мо„ут быть получены четые циклических пуппы. Это H1 = <{0},+>, H2 =<{0, 2, 4}, +>, H3 = <{0, 3}, +> и H4 = G. З‡метим, что к‡ опе‡циfl — сложение, an озн‡ч‡ет умножение n н‡ a. З‡метим т‡кже, что ‚о ‚сех этих „упп‡х опе‡циfl — это сложение по мо‰улю 6. Ниже пок‡з‡но, к‡к мы н‡хо‰им элементы этих циклических пупп. a. Циклическ‡fl пупп‡, с„енеинн‡fl из 0, — это H1, кото‡fl имеет только о‰ин элемент (нейт‡льный элемент). 00 mod 6 = 0
(ост‡но‚к‡, ‰‡лее поцесс по‚тоflетсfl)
б. Циклическ‡fl пупп‡, с„енеинн‡fl н‡ осно‚е 1, — это H4, кото‡fl есть с‡м‡ „упп‡ G. 10 mod 6 = 0 11 mod 6 = 1 12 mod 6 = (1 + 1) mod 6 = 2 13 mod 6 = (1 + 1 +1) mod 6 = 3 14 mod 6 = (1 + 1 + 1 + 1) mod 6 = 4 15 mod 6 = (1 +1 +1+1+1) mod 6 = 5
(ост‡но‚к‡, ‰‡лее поцесс по‚тоflетсfl)
‚. Циклическ‡fl пупп‡, с„енеинн‡fl н‡ осно‚е 2, — это H2, кото‡fl имеет ти элемент‡: 0, 2, и 4. 20 mod 6 = 0 21 mod 6 = 2 22 mod 6 = (2 + 2) mod 6 = 4
(ост‡но‚к‡, ‰‡лее поцесс по‚тоflетсfl)
„. Циклическ‡fl пупп‡, с„енеинн‡fl н‡ осно‚е 3, — это H3, кото‡fl имеет ‰‚‡ элемент‡: 0 и 3. 30 mod 6 = 0 31 mod 6 = 3 (ост‡но‚к‡, ‰‡лее поцесс по‚тоflетсfl) ‰. Циклическ‡fl пупп‡, с„енеинн‡fl н‡ осно‚е 4, — H2; это — не нfl пупп‡. 40 mod 6 = 0 41 mod 6 = 4 42 mod 6 = (4 + 4) mod 6 =2
(ост‡но‚к‡, ‰‡лее поцесс по‚тоflетсfl)
е. Циклическ‡fl пупп‡, с„енеинн‡fl н‡ осно‚е 5, — это H4, он‡ есть с‡м‡ „упп‡ G. 124
Лекциfl 4
50 mod 6 = 0 51 mod 6 = 5 52 mod 6 = 4 53 mod 6 = 3 54 mod 6 = 2 55 mod 6 = 1
М‡тем‡тик‡ киптфии. Ч‡сть II. Ал„еб‡ические стуктуы
(ост‡но‚к‡, ‰‡лее поцесс по‚тоflетсfl)
Пиме 4.8 Из „уппы G = можно получить ти циклических пуппы. G имеет только четые элемент‡: 1, 3, 7 и 9. Циклические пуппы — H1 = <{1}, × >, H2 = <{1, 9}, × > и H3 = G. Ниже пок‡з‡но, к‡к мы н‡хо‰им элементы этих пупп. a. Циклическ‡fl пупп‡, с„енеинн‡fl н‡ осно‚е 1, — это H1. Пупп‡ имеет только о‰ин элемент, ‡ именно — нейт‡льный. 10 mod 10 = 1
(ост‡но‚к‡, ‰‡лее поцесс по‚тоflетсfl)
б. Циклическ‡fl пупп‡, с„енеинн‡fl н‡ осно‚е 3, — это H3, кото‡fl есть „упп‡ G. 30 mod 10 = 1 31 mod 10 = 3 32 mod 10 = 9 33 mod 10 = 7
(ост‡но‚к‡, ‰‡лее поцесс по‚тоflетсfl)
‚. Циклическ‡fl пупп‡, с„енеинн‡fl н‡ осно‚е 7, — это H3, кото‡fl есть „упп‡ G. 70 mod 10 = 1 71 mod 10 = 7 72 mod 10 = 9 73 mod 10 = 3
(ост‡но‚к‡, ‰‡лее поцесс по‚тоflетсfl)
„. Циклическ‡fl пупп‡, с„енеинн‡fl н‡ осно‚е 9, — это H2. Пупп‡ имеет только ‰‚‡ элемент‡. 90 mod 10 = 1 91 mod 10 = 9
(ост‡но‚к‡, ‰‡лее поцесс по‚тоflетсfl)
Циклические „уппы Циклическ‡fl „упп‡ — „упп‡, кото‡fl fl‚лflетсfl собст‚енной циклической пуппой. В пимее 4.7 „упп‡ G имеет циклическую пуппу H5 = G. Это озн‡ч‡ет, что „упп‡ G — циклическ‡fl „упп‡. В этом случ‡е элемент, котоый „енеиует циклическую пуппу, может т‡кже „енеить с‡му „уппу. Этот элемент ‰‡лее именуетсfl «„ене‡то». Если g — „ене‡то, элементы ‚ конечной циклической „уппе мо„ут быть з‡пис‡ны к‡к 125
Кус
Киптфиfl и безоп‡сность сетей
{e,g,g2,….., gn-1}, „‰е gn = e. З‡метим, что циклическ‡fl „упп‡ может иметь мно„о „ене‡тоо‚. Пиме 4.9 ‡. Гупп‡ G = — циклическ‡fl „упп‡ с ‰‚умfl „ене‡то‡ми, g = 1 и g = 5. б. Гупп‡ G = — циклическ‡fl „упп‡ с ‰‚умfl „ене‡то‡ми, g = 3 и g = 7. Теоем‡ Л‡„‡нж‡ Теоем‡ Л‡„‡нж‡ пок‡зы‚‡ет отношение поfl‰к‡ „уппы к поfl‰ку ее пуппы. Пе‰положим, что G — „упп‡ и H — пупп‡ G. Если поfl‰ок G и H — |G| и |H|, соот‚етст‚енно, то со„л‡сно этой теоеме |H| ‰елит |G|. В пимее 4.7 |G| = 6. Поfl‰ок пуппы — |H1| = 1, | H2| = 3, |H3| = 2 и |H4| = 6. Оче‚и‰но, ‚се эти поfl‰ки есть ‰елители 6. Теоем‡ Л‡„‡нж‡ имеет очень интеесное пиложение. К‡ ‰‡н‡ „упп‡ G и ее поfl‰ок |G|, мо„ут быть ле„ко опе‰елены поfl‰ки потенци‡льных пупп, если мо„ут быть н‡й‰ены ‰елители. Н‡пиме, поfl‰ок „уппы G = — это |17|. Делители 17 есть 1 и 17. Это озн‡ч‡ет, что эт‡ „упп‡ может иметь только ‰‚е пуппы — нейт‡льный элемент и H2 = G. Поfl‰ок элемент‡ Поfl‰ок элемент‡ ‚ „уппе ord (a) (поfl‰ок (a)) fl‚лflетсfl н‡именьшим целым числом n, т‡ким, что an = e. Иными слми: поfl‰ок элемент‡ — поfl‰ок „уппы, котоую он „енеиует. Пиме 4.10 a. В „уппе G = , поfl‰ки элементо‚: поfl‰ок ord(0) = 1, поfl‰ок ord (1) = 6, поfl‰ок ord (2) = 3, поfl‰ок ord (3) = 2, поfl‰ок ord (4) = 3, поfl‰ок ord (5) = 6. b. В „уппе G = , поfl‰ки элементо‚: поfl‰ок ord (1) = 1, поfl‰ок ord (3) = 4, поfl‰ок ord (7) =4, поfl‰ок (9) = 2.
Кольцо Кольцо, обозн‡ченное к‡к R = <{...}, •, >, fl‚лflетсfl ‡л„еб‡ической стуктуой с ‰‚умfl опе‡циflми. П傇fl опе‡циfl ‰олжн‡ у‰о‚лет‚оflть ‚сем пflти с‚ойст‚‡м, тебуемым ‰лfl ‡беле‚ой „уппы. Вто‡fl опе‡циfl ‰олжн‡ у‰о‚лет‚оflть только пе‚ым ‰‚ум с‚ойст‚‡м ‡беле‚ой „уппы. Коме то„о, ‚то‡fl опе‡циfl ‰олжн‡ быть ‡спе‰елен‡ с помощью пе‚ой. Дистибути‚ность озн‡ч‡ет, что ‰лfl ‚сех a, b и c элементо‚ из R мы имеем a (b • c) = (a b) • (a c) и (a • b) c = (a c) • (b c). Коммут‡ти‚ное кольцо — кольцо, ‚ котоом коммут‡ти‚ное с‚ойст‚о у‰о‚лет‚оено и ‰лfl ‚тоой опе‡ции. Рисунок 4.4 пок‡зы‚‡ет кольцо и коммут‡ти‚ное кольцо. 126
Лекциfl 4
М‡тем‡тик‡ киптфии. Ч‡сть II. Ал„еб‡ические стуктуы
Дополнительное з‡меч‡ние Кольцо ‚ключ‡ет ‰‚е опе‡ции. О‰н‡ко ‚то‡fl опе‡циfl может не соот‚етст‚ть тетьему и чет‚етому с‚ойст‚‡м. Ду„ими слми, п傇fl опе‡циfl — ф‡ктически опе‡циfl п‡ы опе‡ций, т‡ких, к‡к сложение и ‚ычит‡ние; ‚то‡fl опе‡циfl может со‰еж‡ть е‰инст‚енную опе‡цию, н‡пиме, умножение, но может не со‰еж‡ть ‰еление. Пиме 4.11 Множест‚о Z с ‰‚умfl опе‡циflми — сложением и умножением — fl‚лflетсfl коммут‡ти‚ным кольцом, котоое обозн‡ч‡етсfl R = . Сложение у‰о‚лет‚оflет ‚сем пflти с‚ойст‚‡м; умножение у‰о‚лет‚оflет только тем с‚ойст‚‡м.
Рис. 4.4. Кольцо Умножение ‰истибути‚но с помощью сложениfl. Н‡пиме, 5 × (3 + 2) = (5 × 3) + (5 × 2) = 25. Но, мы можем ‚ыполнить н‡ этом множест‚е сложение и ‚ычит‡ние и умножение, но не ‰еление. Деление не может пименflтьсfl ‚ этой стуктуе, потому что оно пи‚о‰ит к элементу из ‰у„о„о множест‚‡. Результ‡т ‰елениfl 12 н‡ 5 есть 2,4, и он не н‡хо‰итсfl ‚ 燉‡нном множест‚е.
Поле Поле, обозн‡ченное F = <{...}, •, > — коммут‡ти‚ное кольцо, ‚ котоом ‚то‡fl опе‡циfl у‰о‚лет‚оflет ‚сем пflти с‚ойст‚‡м, опе‰еленным ‰лfl пе‚ой опе‡ции, з‡ исключением то„о, что нейт‡льный элемент пе‚ой опе‡ции (ин‡ н‡зы‚‡емый нуле‚ой элемент) не имеет ин‚есии. Рисунок 4.5 пок‡зы‚‡ет поле. Дополнительное з‡меч‡ние Поле — стукту‡, кото‡fl пеж肇ет ‰‚е п‡ы опе‡ций, используемые ‚ м‡тем‡тике: сложение/‚ычит‡ние и умножение/‰еление. Есть о‰но исключение: не ‡зешено ‰еление н‡ нуль. 127
Кус
Киптфиfl и безоп‡сность сетей
Рис. 4.5. Поле Конечные полfl Хотfl общее опе‰еление к‡с‡етсfl полей бесконечно„о поfl‰к‡, ‚ киптфии используютсfl экстенси‚но только конечные полfl. Конечное поле — поле с конечным числом элементо‚ — fl‚лflетсfl очень ‚‡жной стуктуой ‚ киптфии. Г‡лу‡ пок‡з‡л, что полfl, чтобы быть конечными, ‰олжны иметь число элементо‚ pn, „‰е p — постое, ‡ n — положительное целое число. Конечные полfl обычно н‡зы‚‡ют полflми Г‡лу‡ и обозн‡ч‡ют к‡к GF(pn). Поле Г‡лу‡, GF(pn), — конечное поле с pn элемент‡ми. Полfl GF (p) К‡ n = 1, мы получ‡ем поле GF (p). Это поле может быть множест‚ом Zp, (0, 1, …p–1) с ‰‚умfl ‡ифметическими опе‡циflми (сложение и умножение). Любой элемент ‚ этом множест‚е имеет ‡‰‰ити‚ную ин‚есию, и элементы, отличные от нулfl, имеют мультиплик‡ти‚ную ин‚есию (мультиплик‡ти‚н‡fl ин‚есиfl ‰лfl 0 отсутст‚ует). Пиме 4.12 Очень общее поле ‚ этой к‡те„оии — GF (2) с множест‚ом {0,1}, ‰‚умfl опе‡циflми, и умножением, к‡к пок‡з‡но н‡ исунке 4.6.
Рис. 4.6. Поле GF (2) Есть несколько моменто‚, котоые сле‰ует отметить ‚ опе‰елении это„о полfl. Пе‚ый: множест‚о имеет только ‰‚‡ элемент‡, котоые fl‚лflютсfl ‰‚оичными циф‡ми или бит‡ми (0 и 1). Втоой: опе‡циfl сложениfl — ф‡ктически ИСКЛЮЧАЮЩЕЕ ИЛИ (XOR), опе‡циfl, котоую мы используем с ‰‚умfl ‰‚о128
Лекциfl 4
М‡тем‡тик‡ киптфии. Ч‡сть II. Ал„еб‡ические стуктуы
ичными циф‡ми. Тетий: опе‡циfl умножениfl — AND, опе‡циfl, котоую мы используем с ‰‚умfl ‰‚оичными циф‡ми. Чет‚етый: сложение и опе‡ции ‚ычит‡ниfl — те же с‡мые (опе‡циfl XOR). Пflтый: умножение и опе‡ции ‰елениfl — те же с‡мые (ОПЕРАЦИЯ AND). Сложение/‚ычит‡ние ‚ GF(2) — опе‡циfl ИСКЛЮЧАЮЩЕЕ ИЛИ (XOR); умножение/‰еление — ОПЕРАЦИЯ И (AND). Пиме 4.13 Мы можем опе‰елить GF(5) н‡ множест‚е Z5 (5 постое) с опе‡то‡ми сложениfl и умножениfl, пок‡з‡нными н‡ ис. 4.7. Хотfl есть ‚озможность использть ‡сшиенный ‡л„оитм Е‚кл艇, чтобы н‡йти мультиплик‡ти‚ные ин‚есии элементо‚ ‚ GF(5), поще сост‡‚ить т‡блицу умножениfl и н‡хо‰ить к‡ж‰ую п‡у, поиз‚е‰ение котоой ‡‚нflетсfl 1. Это (1, 1), (2, 3), (3, 2) и (4, 4). З‡метим, что мы можем н‡ этом множест‚е пименить ‚ычит‡ние и умножение/‰еление (з‡ исключением з‡пещенно„о ‰елениfl н‡ 0).
Рис. 4.7. Поле GF (5) Полfl GF(pn) В ‰ополнение к полflм GF(p) ‚ киптфии мы т‡кже интеесуемсfl полflми GF(pn). О‰н‡ко множест‚‡ Z, Zn, Zn* и Zp, котоые мы использли ‰о сих по с опе‡циflми сложениfl и умножениfl, не мо„ут у‰о‚лет‚оить тебниflм полfl. Поэтому ‰олжны быть опе‰елены некотоые но‚ые множест‚‡ и некотоые но‚ые опе‡ции н‡ этих множест‚‡х. В сле‰ующей секции мы ‡ссм‡т肇ем очень полезное ‚ киптфии поле GF(2n). Ито„и ‡ссмотенных стукту Изучение тех ‡л„еб‡ических стукту поз‚олflет н‡м использть множест‚‡, ‚ котоых мо„ут пименflтьсfl опе‡ции, по‰обные сложению/‚ычит‡нию и Т‡блиц‡ 4.3 Ито„и опе‰елениfl ‡л„еб‡ических стукту
129
Кус
Киптфиfl и безоп‡сность сетей
умножению/‰елению. Мы ‰олжны ‡злич‡ть эти ти стуктуы. П傇fl стукту‡ — „упп‡, пеж肇ет о‰ну п‡у с‚flз‡нных опе‡ций. Вто‡fl стукту‡ — кольцо, пеж肇ет о‰ну п‡у с‚flз‡нных опе‡ций и о‰ну о‰иночную опе‡цию. Тетьfl стукту‡ — поле, пеж肇ет ‰‚е п‡ы опе‡ций. Т‡блиц‡ 4.3 поможет н‡м у‚и‰еть эту ‡зницу.
4.2. Полfl GF(2n) В киптфии мы ч‡сто ‰олжны использть четые опе‡ции (сложение, ‚ычит‡ние, умножение и ‰еление). Ду„ими слми, мы пименflем полfl. О‰н‡ко к‡ мы ‡бот‡ем с компьюте‡ми, положительные целые числ‡ сох‡нflютсfl ‚ компьютее к‡к n-бито‚ые сл, ‚ котоых n fl‚лflетсfl обычно 8, 16, 32, 64, и т‡к ‰‡лее. Это озн‡ч‡ет, что ‰и‡п‡зон целых чисел — 0 ‰о 2n – 1. Мо‰уль — 2n. Т‡к что ‚озможны ‰‚‡ ‚‡и‡нт‡, если мы хотим использть поле. 1. Мы можем 燉ейст‚ть GF(p) с множест‚ом Zp, „‰е p — н‡ибольшее постое число, меньшее, чем 2n. Но эт‡ схем‡ неэффекти‚н‡, потому что мы не можем использть целые числ‡ от p ‰о 2n- 1. Н‡пиме, если n = 4, то н‡ибольшее постое число, меньшее, чем 24, — это 13. Это озн‡ч‡ет, что мы не можем использть целые числ‡ 13, 14 и 15. Если n = 8, н‡ибольшее постое число, меньшее, чем 28, — это 251, т‡к что мы не можем ‚зflть 251, 252, 253, 254 и 255. 2. Мы можем ‡бот‡ть ‚ GF(2n) и использть множест‚о 2n элементо‚. Элементы ‚ этом множест‚е — n-бито‚ые сл. Н‡пиме, если n = 3, множест‚о ‡‚но: {000, 001, 010,100,101,110,111} О‰н‡ко мы не можем интепетить к‡ж‰ый элемент к‡к целое число от 0 ‰о 7, потому что не мо„ут быть пименены обычные четые опе‡ции (мо‰уль 2n — не постое число). Мы ‰олжны опе‰елить множест‚о сло‚ по 2 бит‡ и ‰‚е но‚ых опе‡ции, котоые у‰о‚лет‚оflют с‚ойст‚‡м, опе‰еленным ‰лfl полfl. Пиме 4.14 Опе‰елим GF(22) поле, ‚ котоом множест‚о имеет четые сл по 2 бит‡: {00, 01, 10, 11}. Мы можем пееопе‰елить сложение и умножение ‰лfl это„о полfl т‡ким об‡зом, чтобы ‚се с‚ойст‚‡ этих опе‡ций были у‰о‚лет‚оены, к‡к это пок‡з‡но н‡ ис. 4.8.
Рис. 4.8. Пиме полfl GF(22) 130
Лекциfl 4
М‡тем‡тик‡ киптфии. Ч‡сть II. Ал„еб‡ические стуктуы
К‡ж‰ое сло‚о — ‡‰‰ити‚н‡fl ин‚есиfl себfl. К‡ж‰ое сло‚о (коме 00) имеет мультиплик‡ти‚ную ин‚есию. Мультиплик‡ти‚ные об‡тные п‡ы — (01,01) и (10, 11). Сложение и умножение опе‰елено ‚ темин‡х полиномо‚.
Полиномы Хотfl мы можем непосе‰ст‚енно опе‰елить ил‡ ‰лfl опе‡ций сложениfl и умножениfl сло‚ из 2-х бит, котоые у‰о‚лет‚оflют с‚ойст‚‡ ‚ GF(2n), поще ‡бот‡ть с полином‡ми степени n – 1 побитным пе‰ст‡‚лением сло‚. Полином степени n – 1 имеет фому f(x) = an-1 xn-1 + an-2xn-2 + ……+ a1x1 + a0x0 „‰е xi н‡з‚‡н темином «i-тый элемент», ‡ ai н‡зы‚‡етсfl коэффициентом i- то„о элемент‡. Хотfl мы зн‡ем полиномы ‚ ‡л„ебе, но пи пе‰ст‡‚лении n-бито‚ых сло‚ полином‡ми необхо‰имо сле‰о‚‡ть некотоым особым ил‡м: ‡. степень x опе‰елflет позицию бит‡ ‚ n-бито‚ых сло‚. Это озн‡ч‡ет, что к‡йний ле‚ый бит н‡хо‰итсfl ‚ нуле‚ой позиции (с‚flз‡н с x0), с‡мый ый бит н‡хо‰итсfl ‚ позиции n–1 (с‚flз‡н с xn-1); b. коэффициенты сомножителей опе‰елflют зн‡чение бито‚. К‡ж‰ый бит пиним‡ет только зн‡чение 0 или 1, поэтому н‡ши полиноми‡льные коэффициенты мо„ут иметь зн‡чение 0 или 1. Пиме 4.15 Использние полиномо‚ ‰лfl пе‰ост‡‚лениfl сл из 8 бит (10011001) пок‡з‡но н‡ ис. 4.9.
Рис. 4.9. Пе‰ст‡‚ление 8-ми бито‚о„о сл полиномом З‡метим, что элемент полностью попущен, если е„о коэффициент ‡‚ен 0, и попущен только коэффициент, если это 1. Т‡кже з‡метим, что элемент x0 ‡‚ен 1. Пиме 4.16 Чтобы н‡йти сло‚о н‡ 8 бито‚, с‚flз‡нное с полиномом x5+ x2 + x, мы сн‡ч‡л‡ ‚осст‡но‚им попущенные сомножители. Мы имеем n = 8, это озн‡ч‡ет полином степени 7. Р‡сшиенный полином имеет ‚и‰ 0x7 + 0x6 + 1 x5 + 0 x4 + 0x3 + 1x2 + 1x1 + 0x0 131
Кус
Киптфиfl и безоп‡сность сетей
Он с‚flз‡н со сло‚ом н‡ 8 бито‚ 00100110. Опе‡ции Об‡тите ‚ним‡ние, что люб‡fl опе‡циfl н‡ полином‡х ф‡ктически ‚ключ‡ет ‰‚е опе‡ции: опе‡ции 퇉 коэффициент‡ми и опе‡циии 퇉 ‰‚умfl полином‡ми. Ду„ими слми, мы ‰олжны опе‰елить ‰‚‡ полfl: о‰но ‰лfl коэффициенто‚ и о‰но ‰лfl полиномо‚. Коэффициенты ‡‚ны 0 или 1; ‰лfl этой цели мы можем использть GF(2)-поле. Мы уже „о‚оили о т‡ком поле (см. пиме 4.14). Длfl полиномо‚ н‡м нужно поле GF(2n), котоое мы коотко обсу‰им ниже. Полиномы, пе‰ст‡‚лflющие n-бито‚ые сл, используют ‰‚‡ полfl: GF(2) и GF(2n). Мо‰уль Пее‰ опе‰елением опе‡ций н‡ полином‡х мы ‰олжны по„о‚оить о полином‡х-мо‰улflх. Сложение ‰‚ух полиномо‚ ник‡ не со片ет полином, ‚ыхо‰flщий из множест‚‡. О‰н‡ко умножение ‰‚ух полиномо‚ может со片ть полином со степенью большей, чем n – 1. Это озн‡ч‡ет, что мы ‰олжны ‰елить езульт‡т н‡ мо‰уль и сох‡нflть только ост‡ток, к‡к мы ‰ел‡ли ‚ мо‰ульной ‡ифметике. Длfl множест‚ полиномо‚ ‚ GF(2n) „упп‡ полиномо‚ степени n опе‰елен‡ к‡к мо‰уль. Мо‰уль ‚ этом случ‡е ‰ейст‚ует к‡к полиноми‡льное постое число. Это озн‡ч‡ет, что ник‡кие полиномы множест‚‡ не мо„ут ‰елить этот полином. Постое полиноми‡льное число не может быть ‡зложено ‚ полиномы со степенью меньшей, чем n. Т‡кие полиномы н‡зы‚‡ютсfl непи‚о‰имые полиномы. Т‡блиц‡ 4.4 пок‡зы‚‡ет пимеы полиномо‚ 1-5 степеней. Длfl к‡ж‰о„о зн‡чениfl степени ч‡сто есть более чем о‰ин не‡з뇄‡емый полином, — это озн‡ч‡ет, что к‡ мы опе‰елflем н‡ш GF(2n), мы ‰олжны объfl‚ить, к‡кой непи‚о‰имый полином мы используем к‡к мо‰уль. Т‡блиц‡ 4.4. Список непи‚о‰имых полиномо‚ Степень
Непи‚о‰имый полином
1
(x+1),x
2
(x2+x+1)
3
(x3+x2+1), (x3+x+1)
4
(x4+x3+x2+x+1), (x4+x3+1), (x4+x+1)
5
(x5+x2+1), (x5+x3+x2+x+1), (x5+x4+x3+x+1) (x5+x4+x3+x2+1), (x5+x4+x2+x+1)
Сложение 132
Лекциfl 4
М‡тем‡тик‡ киптфии. Ч‡сть II. Ал„еб‡ические стуктуы
Тепеь опе‰елим опе‡цию сложениfl ‰лfl полиномо‚ с коэффициентом ‚ GF(2). Опе‡циfl сложениfl очень пост‡fl: мы ск뇉ы‚‡ем коэффициенты соот‚етст‚ующих элементо‚ полином‡ ‚ поле GF(2). Об‡тите ‚ним‡ние, что сложение ‰‚ух полиномо‚ степени n – 1 ‚с儉‡ ‰‡ет полином со степенью n – 1 — это озн‡ч‡ет, что мы не ‰олжны использть ‚ычит‡ние мо‰улfl из езульт‡т‡. Пиме 4.17 Поиз‚е‰ем сложение (x5 + x2 + x) ⊕ (x3 + x2 + 1) ‚ GF(28). Мы используем сим‚ол ⊕ ‰лfl обозн‡чениfl полиноми‡льно„о сложениfl. Ниже пок‡з‡н‡ поце‰у‡: 0x7 + 0x6 +1x5 + 0x4 + 0x3 + 1x2 + 1x1 + 0x0 ⊕ 0x7 + 0x6 + 0x5 + 0x4 + 1x3 + 1x2 + 0x1 +1x 0 ____________________________________ 0x7 + 0x6 + 1x5 + 0x4 + 1x3 + 0x2 + 1x1 + 1x0 → x5 + x3 + x + 1 В упощенном полиноме (пок‡з‡н с‡) сох‡нены элементы с коэффициентом 1 и у‰‡лены элементы с коэффициентом 0. Коме то„о, у‰‡лены со‚‡ющие элементы обеих полиномо‚, ‡ несо‚‡ющие сох‡нflютсfl. Ду„ими слми, x5, x,3 и x1 сох‡нflютсfl, ‡ x2, котоый fl‚лflетсfl со‚‡ющим ‚ этих ‰‚ух полином‡х, у‰‡лен. Пиме 4.18 Поскольку сложение ‚ GF(2) озн‡ч‡ет опе‡цию ИСКЛЮЧАЮЩЕЕ ИЛИ (XOR), мы можем получить езульт‡т ИСКЛЮЧАЮЩЕГО ИЛИ ‰лfl этих ‰‚ух сло‚ бит з‡ битом. В пе‰ы‰ущем пимее x5 + x2 + x есть 00100110, или полином, и x3 + x2 + 1 есть 00001101. Результ‡т — 00101011 или, ‚ полиноми‡льном обозн‡чении, x5 + x3 + x + 1. А‰‰ити‚ный нейт‡льный элемент — тож‰ест‚о. А‰‰ити‚ный нейт‡льный элемент полином‡ — нуле‚ой полином (полином со ‚семи коэффициент‡ми, ‡‚ными нулю), потому что, пиᇂлflfl этот полином к с‡мому себе, ‚ езульт‡те получ‡ем нуле‚ой полином. А‰‰ити‚н‡fl ин‚есиfl полином‡ с коэффициент‡ми ‚ GF(2) — с‡м полином. Это озн‡ч‡ет, что опе‡циfl ‚ычит‡ниfl т‡ же с‡м‡fl, что и опе‡циfl сложениfl. Сложение и опе‡ции ‚ычит‡ниfl н‡ полином‡х — т‡ же с‡м‡fl опе‡циfl. Умножение Умножение ‚ полином‡х — сумм‡ умножениfl к‡ж‰о„о элемент‡ о‰но„о полином‡ с к‡ж‰ым элементом ‚тоо„о полином‡. О‰н‡ко необхо‰имо отметить ти особенности. П傇fl: умножение коэффициент‡ по‚о‰итсfl ‚ поле GF(2). Вто‡fl: умножение xi н‡ xj ‰‡ет езульт‡т xi+j. Тетьfl: умножение может со片ть элементы со степенью большей, чем n–1, и это озн‡ч‡ет, что езульт‡т ‰олжен быть уменьшен с пименением полином‡-мо‰улfl.
133
Кус
Киптфиfl и безоп‡сность сетей
Сн‡ч‡л‡ пок‡жем, к‡к умножить ‰‚‡ полином‡ со„л‡сно ‚ышеупомflнутому опе‰елению. Позже бу‰ет ‰‡н более эффекти‚ный ‡л„оитм, котоый может использтьсfl компьютеной пммой. Пиме 4.19 Н‡й‰ите езульт‡т (x5 + x2 + x) ⊗ (x7 + x 4+ x3 + x2 +x) ‚ GF(28) с не‡з뇄‡емым полиномом (x8 + x4 + x3 + x+ 1). Об‡тите ‚ним‡ние, что ‰лfl обозн‡чениfl умножениfl ‰‚ух полиномо‚ пименен сим‚ол ⊗. Решение Сн‡ч‡л‡ умнож‡ем эти ‰‚‡ полином‡ т‡к, к‡к мы это ‰ел‡ли ‚ обычной ‡л„ебе. Об‡тите ‚ним‡ние, что ‚ этом поцессе  элементо‚ с ‡‚ной степенью у‰‡лflетсfl. Н‡пиме, езульт‡т x9 + x9 полностью у‰‡лен, потому что он нуле‚ой полином, по пичине, котоую мы обсу扇ли ‡ньше пи ‡ссмотении опе‡ции сложениfl.
P1 ⊗ P2 = x5 (x7 + x4 + x3 + x2 + x) + x2 (x7 + x4 + x3 + x2 + x) + x (x7 + x4+ x3 + x2 + x) P1 ⊗ P2 = x12 + x9 + x8 + x7 + x6 + x9 + x6 + x5 + x4 + x3 + x8 + x5 + x4 + x3 + x2 P1 ⊗ P2 = (xl2 +-x7+x2) mod (x8+x4+x3+x +1) = x5+x3+x2+ x+1 Чтобы н‡йти конечный езульт‡т, ‡з‰елим полином степени 12 н‡ полином степени 8 (мо‰уль) и сох‡ним только ост‡ток. Поцесс ‰елениfl т‡кой же, что и ‚ обычной ‡л„ебе, но мы ‰олжны помнить, что з‰есь ‚ычит‡ние то же с‡мое, что и сложение. Рисунок 4.10 пок‡зы‚‡ет поцесс ‰елениfl. Рис. 4.10. Полиноми‡льное ‰еление с коэффициент‡ми ‚ поле GF (2) Мультиплик‡ти‚ное тож‰ест‚о — ‚с儉‡ ‡‚но 1. Н‡пиме, ‚ GF(28) мультиплик‡ти‚н‡fl ин‚есиfl — ‚ побитном изоб‡жении 00000001. Мультиплик‡ти‚н‡fl ин‚есиfl. Поиск мультиплик‡ти‚ной ин‚есии тебует пи‚лечениfl ‡сшиенно„о ‡л„оитм‡ Е‚кл艇. Ал„оитм Екл艇 ‰олжен быть пименен к мо‰улю и полиному, ‚ыполнение ‡л„оитм‡ fl‚лflетсfl т‡ким же, к‡к и ‰лfl целых чисел.
Пиме 4.20 В GF(24) н‡й‰ите ин‚есию (x2 + 1) mod (x4 + x + 1). 134
Лекциfl 4
М‡тем‡тик‡ киптфии. Ч‡сть II. Ал„еб‡ические стуктуы
Решение Мы используем ‡сшиенный е‚кли‰о‚ ‡л„оитм, к‡к это пок‡з‡но ‚ т‡блице 4.5: Т‡блиц‡ 4.5. Ал„оитм Е‚кл艇 ‰лfl уп‡жнениfl 4.20 Это озн‡ч‡ет, что (x2 + 1)-1 mod (x4 + x + 1) есть (x3 + x + 1). От‚ет может быть по‚еен посто: 퇉о пеемножить эти ‰‚‡ полином‡ и н‡йти ост‡ток. В этом случ‡е езульт‡т ‰елениfl н‡ мо‰уль ‡‚ен [(x2 + l) ⊗ (x3 + x + 1)] mod (x4 + x + 1) = 1
Пиме 4.21 В GF(28) н‡й‰ите ин‚есию (x5) mod (x8 + x4 + x3 + x + 1). Решение Бу‰ем использть ‡сшиенный е‚кли‰о‚ ‡л„оитм, к‡к это пок‡з‡но ‚ Т‡блице 4.6: Т‡блиц‡ 4.6. Е‚кли‰о‚ ‡л„оитм ‰лfl пиме‡ 4.21 Это озн‡ч‡ет, что (x5)-1 mod (x8 + x4 + x3 + x + 1) есть (x5 + x4 + x2 + x). Результ‡т может быть ле„ко по‚еен умножением этих ‰‚ух полиномо‚ и опе‰елением ост‡тк‡ ‰елениfl по мо‰улю. [(x5) ⊗ (x5 +x4 +x3 +x)] mode(x8 +x4 +x3 +x + 1) = 1 Умножение, использующее компьюте Опе‡циfl ‰елениfl поо扇ет поблему н‡пис‡ниfl эффекти‚ной пммы умножениfl ‰‚ух полиномо‚. Лучший ‡л„оитм ‰лfl компьютеной е‡лиз‡ции использует нео‰нок‡тное умножение уменьшенно„о полином‡ н‡ x. Н‡пиме, ‚место то„о чтобы н‡хо‰ить езульт‡т (x2 ⊗ P2), пмм‡ н‡хо‰ит езульт‡т (x ⊗ (x ⊗ P2)). Пеимущест‚‡ этой ст‡те„ии бу‰ет обсу扇тьсfl ‰‡лее, но сн‡ч‡л‡ ‡ссмотим пиме, чтобы поиллюстить ‡л„оитм. Пиме 4.22 Н‡й‰ите езульт‡т умножениfl P1 = (x5 + x2 + x) н‡ P2 = (x7 + x4 + x3 + x2 + x) ‚ поле GF(28) с непи‚о‰имым полиномом (x8 + x4 + x3 + x + 1), используfl ‡л„оитм, изложенный ‚ыше. Решение Поцесс пок‡з‡н ‚ т‡блице 4.7. Мы сн‡ч‡л‡ н‡хо‰им помежуточный езульт‡т умножениfl x0, x1, x2, x3, x4 и x5. З‡метим, что необхо‰имы только ти со135
Кус
Киптфиfl и безоп‡сность сетей
Т‡блиц‡ 4.7. Эффекти‚ный ‡л„оитм умножениfl, использующий полиномы (пиме 4.22) Степень
Опе‡циfl
x 0 ⊗ P2
Но‚ый езульт‡т
Вычит‡ние
x7+x4+x3+x2+x
Нет
x1⊗P2
x ⊗ (x7+x4+x3+x2+x)
x5+x2+x+1
ДА
x 2 ⊗ P2
x ⊗ ( x5+x2+x+1)
x6+x3+x2+x
Нет
ст‡‚лflющие поиз‚е‰ениfl x m ⊗ P 2 ‰лfl m от 0 ‰о 5, к‡ж‰ое ‚ычисление 燂исит от пе‰ы‰уще„о езульт‡т‡. Р‡ссмотенный ‚ыше ‡л„оитм имеет ‰‚‡ пеимущест‚‡. Пе‚ое — умножение полином‡ н‡ x может быть ‚ыполнено постым с‰‚и„ом о‰но„о бит‡ ‚ n-бито‚ом сло‚е; опе‡циfl может быть е‡лизо‚‡н‡ н‡ любом flзыке пмминиfl. Втоое — езульт‡т может быть использн, если м‡ксим‡льн‡fl степень полином‡ n–1. В этом случ‡е сок‡щение может быть с‰ел‡но посто с помощью пименениfl опе‡ции ИСКЛЮЧАЮЩЕЕ ИЛИ с 燉‡нным мо‰улем. В н‡шем пимее с‡м‡fl ‚ысок‡fl степень — только 8. Мы можем ‡з‡бот‡ть постой ‡л„оитм ‰лfl н‡хож‰ениfl помежуточных езульт‡то‚. 1. Если ст‡ший ‡зfl‰ пе‰ы‰уще„о езульт‡т‡ ‡‚ен 0, 퇉о с‰‚инуть пе‰ы‰ущий езульт‡т н‡ о‰ин бит ‚ле‚о. 2. Если ст‡ший бит пе‰ы‰уще„о езульт‡т‡ ‡‚ен 1:
‡. 퇉о с‰‚инуть н‡ о‰ин бит ‚ле‚о, и б. пименить к нему опе‡цию ИСКЛЮЧАЮЩЕЕ ИЛИ с мо‰улем, исключи‚ из этой опе‡ции ст‡ший ‡зfl‰. По‚тоим пиме 4.22 ‰лfl ‰‚оичной после‰о‚‡тельности ‡змеом 8 бит. Пусть P1 = 000100110, P2 = 10011110, мо‰уль = 100011010 (‰е‚flть бито‚). Обозн‡чим опе‡цию ИСКЛЮЧАЮЩЕЕ ИЛИ к‡к ⊕. Пиме пи‚е‰ен ‚ т‡блице 4.8. Т‡блиц‡ 4.8. Эффекти‚ное умножение с пименением n-бито‚о„о сл В этом случ‡е ‰лfl умножениfl этих ‰‚ух полиномо‚ н‡м тебуетсfl только пflть опе‡ций ле‚о„о с‰‚脇 и четые ИСКЛЮЧАЮЩЕЕ ИЛИ. Вообще, ‰лfl ум136
Лекциfl 4
М‡тем‡тик‡ киптфии. Ч‡сть II. Ал„еб‡ические стуктуы
ножениfl ‰‚ух полиномо‚ степени n-1 необхо‰имо м‡ксим‡льно (n–1) опе‡ций ле‚о„о с‰‚脇 и 2n опе‡ций ИСКЛЮЧАЮЩЕЕ ИЛИ. Умножение полиномо‚ ‚ GF(2n) может быть ‚ыполнено с помощью опе‡ций ле‚о„о с‰‚脇 и ИСКЛЮЧАЮЩЕЕ ИЛИ. Пиме 4.24 Поле GF(23) состоит из 8 элементо‚. Пок‡жем умножение и сложение т‡блиц ‰лfl это„о полfl, используfl непи‚о‰имый полином x3+x2+1. Мы бу‰ем опеить с техбито‚ым сло‚ом и полиномом. З‡метим, что имеетсfl ‰‚‡ полином‡ тетьей степени (см. т‡блицу 4.4). Ду„ой полином (x3 + x + 1) ‰лfl умножениfl имеет т‡блицу, полностью отлич‡ющуюсfl от пе‚ой. Т‡блиц‡ 4.9 пок‡зы‚‡ет сложение. З‡темненные клетки (нуле‚ые) ‰‡ют об‡тные п‡ы ‰лfl сложениfl. Т‡блиц‡ 4.10 пок‡зы‚‡ет умножение. З‡темненные клетки (е‰иничные) ‰‡ют об‡тные п‡ы пи умножении.
Использние „ене‡то‡ Ин‡ поще опе‰елить элементы полfl GF(2n), используfl „ене‡то. В этом поле с непи‚о‰имым полиномом f(x) и элементом полfl a нужно у‰о‚лет‚оить отношение f(‡) = 0. В ч‡стности, если g — „ене‡то полfl, то f(g)=0. Т‡ можно ‰ок‡з‡ть, что элементы полfl мо„ут быть с„енеины к‡к {0, g,g, g2,.... gn}, „‰е N = 2n – 2 Т‡блиц‡ 4.9. Сложение ‚ поле GF(23) Пиме 4.25 137
Кус
Киптфиfl и безоп‡сность сетей
Т‡блиц‡ 4.10. Умножение ‚ поле GF(23)
Длfl „енеиниfl элементо‚ полfl GF(24) используйте полином f(x) = x4 + x +1. Решение Элементы 0, g0, g 1, g2 и g3 мо„ут быть с„енеины ‰ост‡точно посто, потому что ‚ 4-бито‚ом поле они пе‰ст‡‚лены 0, x0, x 1, x2 и x3 (не тебуетсfl ‰елениfl н‡ полином). Элементы от g4 ‰о g14, котоые пе‰ст‡‚лflют от x4 ‰о x14, нужно ‡з‰елить н‡ непи‚о‰имый полином. Длfl т‡ко„о ‰елениfl можно пименить полином f(g) = g4 + g +1 = 0. Пимени‚ это отношение, мы имеем g4 = –g–1. поскольку сложение полей и ‚ычит‡ние полей — т‡ же с‡м‡fl опе‡циfl, g4 = g + 1. Мы используем это отношение, чтобы н‡йти зн‡чение ‚сех элементо‚ ‚ ‚и‰е 4-бито‚ых сло‚: 0 g0 g1 g2 g3 g4 g5 g6 g7 g8 g9 g10 g11 g12 g13
=0 = g0 = g1 = g2 = g3 = g4 = g (g4) = g (g5) = g (g6) = g (g7) = g (g8) = g (g9) = g (g10) = g (g11) = g (g12)
= = = = = = = = = = = = = = =
0 g0 g1 g2 g3 g4 g (g +1) g (g2 + g) g (g3+ g) g (g3+ g + 1) g (g2+1) g (g3+ g) g (g2+ g + 1) g (g3+ g2 + g) g (g3+ g2 + g + 1) 138
=0 = g0 = g1 = g2 = g3 = g +1 = g2 + g = g3+ g2 = g3+ g + 1 = g2+1 = g3+ g = g2+ g + 1 = g3+ g2 + g = g3+ g2 + g + 1 = g3+ g2 + 1
→ → → → → → → → → → → → → → →
0 = (0000) g0 = (0001) g1 = (0010) g2 = (0100) g3 = (1000) g4 = (0011) g5 = (0110) g6 = (1100) g7 = (1011) g8 = (0101) g9 = (1010) g10 = (0111) g11 = (1110) g12 = (1111) g13 = (1101)
Лекциfl 4
g14
М‡тем‡тик‡ киптфии. Ч‡сть II. Ал„еб‡ические стуктуы
= g (g13)
= g (g3+ g2 + 1)
= g3+ 1
→
g14 = (1001)
Г뇂н‡fl и‰еfl состоит ‚ том, что ‚ычисление элементо‚ полfl от g4 ‰о g14 с‚о‰итсfl к использнию соотношениfl g4 = g +1 и пе‰ы‰ущих ‚ычислений. Н‡пиме, g12 = g(g11) =g(g3 + g2 + g) = g4 + g3 + g2 = g3 + g2 + g + 1 После сок‡щениfl можно посто пеоб‡зть степени ‚ n-бито‚ое сло‚о. Ск‡жем, g3 + 1 эк‚肇лентно 1001, потому что писутст‚уют элементы со степенью 0 и 3. З‡метим, что элементы с о‰ин‡ко‚ой степенью пи т‡ком поцессе ‚ычислениfl отменflют ‰у„ ‰у„‡. Н‡пиме, g2 + g2 = 0. Ин‚есии Н‡хож‰ение ин‚есий пи использнии пи‚е‰енно„о ‚ыше мет пе‰ст‡‚лениfl ‰ост‡точно посто. А‰‰ити‚ные ин‚есии А‰‰ити‚н‡fl ин‚есиfl к‡ж‰о„о элемент‡ — элемент непосе‰ст‚енно, потому что сложение и ‚ычит‡ние ‚ этом поле — о‰н‡ и т‡ же опе‡циfl, g3 = g3. Мультиплик‡ти‚ные ин‚есии Н‡йти мультиплик‡ти‚ную ин‚есию к‡ж‰о„о элемент‡ т‡кже очень посто. Н‡пиме, может н‡йти мультиплик‡ти‚ную ин‚есию элемент‡ g3, к‡к пок‡з‡но ниже: (g3) -1 = g -3 = g12 = g3 + g2+ g+1 → (1111) З‡метим, что ‚ этом случ‡е степень ‡ссчиты‚‡етсfl по мо‰улю 2n – 1, 24 – 1 = 15. Поэтому –3 mod 15 = 12 mod 15. Можно ле„ко ‰ок‡з‡ть, что g3 и g12 есть ин‚есные (об‡тные числ‡), потому что g3 × g12 = g15 = g0 = 1. Сложение и ‚ычит‡ние Сложение и ‚ычит‡ние — это о‰ин‡ко‚ые опе‡ции. Помежуточные езульт‡ты мо„ут быть упощены, к‡к поиллюстино ‚ сле‰ующем пимее. Пиме 4.26 Этот пиме пок‡зы‚‡ет езульт‡ты опе‡ций сложениfl и ‚ычит‡ниfl: a. (g3+g12+g7) = g3 + (g3+g2+g+1)+ (g3+g+1) = g3+g2 → (1100) b. g3–g6 = g3 + g6 = g3 + (g3+g2) = g2 → (0100) Умножение и ‰еление Умножение есть сложение степени по мо‰улю 2n – 1. Деление — это умножение, котоое использует мультиплик‡ти‚ную ин‚есию. 139
Кус
Киптфиfl и безоп‡сность сетей
Пиме 4.27 Ниже пок‡з‡ны опе‡ции умножениfl и ‰елениfl: ‡. g9 × g11 = g20 =g20mod15 = g5 =g2 + g → (0110) б. g3/g8 = g3 × g7=g10=g2 + g+ 1 → (0111)
Ито„и ‡з‰ел‡ конечные полfl Конечное поле GP (2n) может использтьсfl ‰лfl то„о, чтобы опе‰елить четые опе‡ции — сложение, ‚ычит‡ние, умножение и ‰еление n-битных сло‚. Только ‰еление н‡ нуль не опе‰елено. К‡ж‰ое n-бито‚ое сло‚о может быть пе‰ст‡‚лено к‡к полином степени n – 1 с коэффициент‡ми ‚ GF(2), — это озн‡ч‡ет, что опе‡ции н‡ n-бито‚ых слх мо„ут быть пе‰ст‡‚лены к‡к опе‡ции н‡ этом полиноме. Пи умножении ‰‚ух полиномо‚ необхо‰имо с‰ел‡ть эти опе‡ции опе‡циflми по мо‰улю. Длfl это„о мы ‰олжны опе‰елить непи‚о‰имый полином степени n. Чтобы н‡йти мультиплик‡ти‚ные ин‚есии к полином‡м, может быть пименен ‡сшиенный ‡л„оитм Е‚кл艇.
4.3. Рекомен‰о‚‡нн‡fl лите‡ту‡ Нижесле‰ующие кни„и и с‡йты обеспеч肇ют более ‰ет‡льное ‡ссмотение понflтий, обсуж‰енных ‚ этой лекции.
Кни„и [Dur05], [Ros06J], [Bla03], [BW00] и [DF04] оснтельно ‡ссм‡т肇ют ‡л„еб‡ические стуктуы.
С‡йты Нижесле‰ующие с‡йты ‰‡ют больше инфом‡ции о тем‡х, обсу扇емых ‚ этой лекции. http://en.wikipedia.org/wiki/Algebraic_structure http: // en.wikipedia.org/wiki/Ring _ % 28mathematics%29 http://en.wikipedia.org/wiki/Polynomials http: // www.math.niu.edu / ~ rusin/known-math/index/20-XX.html http: // www.math.niu.edu / ~ rusin/known-math/index/13-XX.html http://www.hypermaths.org/quadibloc/math/abaint.htm http://en.wikipedia.org/wiki/Finite_field
4.4. Ито„и • Киптфиfl тебует 燉‡нных множест‚ и опе‡ций, опе‰еленных н‡ этих множест‚‡х. Комбин‡ции множест‚ и опе‡ций, пиложенных к элемент‡м этих множест‚, есть ‡л„еб‡ическ‡fl стукту‡. Были ‚‚е‰ены ти ‡л„еб‡ических стуктуы: „уппы, кольц‡ и полfl. 140
Лекциfl 4
М‡тем‡тик‡ киптфии. Ч‡сть II. Ал„еб‡ические стуктуы
• Гупп‡ — ‡л„еб‡ическ‡fl стукту‡ с бин‡ной опе‡цией, у‰о‚лет‚оflющ‡fl четыем с‚ойст‚‡м: з‡мкнутость, ‡ссоци‡ти‚ность, сущест‚ние тож‰ест‚‡ (е‰инично„о элемент‡) и сущест‚ние ин‚есии. Коммут‡ти‚н‡fl „упп‡, т‡кже н‡зы‚‡ем‡fl ‡беле‚ой „уппой, — „упп‡, опе‡то котоой у‰о‚лет‚оflет ‰ополнительному с‚ойст‚у: коммут‡ти‚ности. • По‰множест‚о H „уппы G — пупп‡ G, если с‡мо H fl‚лflетсfl „уппой с соот‚етст‚ующими опе‡циflми н‡ G. Если пупп‡ „уппы может быть с„енеин‡, используfl степень элемент‡, то он‡ н‡зы‚‡етсfl циклической пуппой. Циклическ‡fl „упп‡ — это собст‚енн‡fl циклическ‡fl пупп‡ „уппы. • Теоем‡ Л‡„‡нж‡ с‚flзы‚‡ет поfl‰ок „уппы и поfl‰ок ее пуппы. Если поfl‰ок „упп G и H соот‚етст‚енно |G| и |H|, т‡ |H| ‰елит |G|. • Поfl‰ок элемент‡ a ‚ „уппе — н‡именьшее положительное целое число n, т‡кое, что an = e (е‰иничному элементу). • Кольцо — ‡л„еб‡ическ‡fl стукту‡ с ‰‚умfl опе‡циflми. П傇fl опе‡циfl ‰олжн‡ у‰о‚лет‚оflть ‚сем пflти с‚ойст‚‡м, тебуемым ‰лfl ‡беле‚ой „уппы. Вто‡fl опе‡циfl ‰олжн‡ у‰о‚лет‚оflть только пе‚ым ‰‚ум. Коме то„о, ‚то‡fl опе‡циfl ‰олжн‡ быть относительно пе‚ой ‰истибути‚ной. Коммут‡ти‚ное кольцо — это кольцо, ‚ котоом ‚то‡fl опе‡циfl у‰о‚лет‚оflет с‚ойст‚у коммут‡ти‚ности. • Поле — коммут‡ти‚ное кольцо, ‚ котоом ‚то‡fl опе‡циfl у‰о‚лет‚оflет пflти с‚ойст‚‡м, опе‰еленным ‰лfl пе‚ой опе‡ции, з‡ о‰ним исключением: е‰иничный элемент пе‚ой опе‡ции не имеет ин‚есии. Конечное поле, т‡кже н‡зы‚‡емое полем Г‡лу‡, — поле с элемент‡ми pn, „‰е p — постое число, ‡ n — положительное целое число. GF(pn) полfl используетсfl ‚ опе‡циflх н‡ n-бито‚ых слх ‚ киптфии. • Длfl то„о чтобы пе‰ст‡‚ить n-бито‚ые сл, используютсfl полиномы с коэффициент‡ми ‚ GF(2). Сложение и умножение n-бито‚ых сло‚ мо„ут быть опе‰елены к‡к сложение и умножение полиномо‚. Ин‡ поще опе‰елить элементы GF(2n)-полfl, используfl „ене‡то. Если g — „ене‡то полfl, то f(g) = 0. Н‡хож‰ение ин‚есий и ‚ыполнение опе‡ций н‡ элемент‡х полfl ст‡но‚flтсfl более постыми, к‡ элементы пе‰ст‡‚лены к‡к степени „ене‡то‡ полfl.
4.5. Вопосы и уп‡жнениfl Обзоные ‚опосы 1. Опе‰елите ‡л„еб‡ическую стуктуу и н‡зо‚ите ти ‡л„еб‡ических стуктуы, обсуж‰енные ‚ этой лекции. 2. Опе‰елите „уппу и пи‚е‰ите ‡зличиfl меж‰у „уппой и коммут‡ти‚ной „уппой. 3. Опе‰елите кольцо и пи‚е‰ите ‡зличиfl меж‰у кольцом и коммут‡ти‚ным кольцом. 4. Опе‰елите поле и пи‚е‰ите ‡зличиfl меж‰у бесконечным полем и конечным полем. 141
Кус
Киптфиfl и безоп‡сность сетей
5. Пок‡жите число элементо‚ ‚ поле Г‡лу‡ ‰лfl посто„о числ‡. 6. Д‡йте о‰ин пиме „уппы, использующей множест‚о ‚ычето‚ (опе‡ций по мо‰улю). 7. Д‡йте о‰ин пиме кольц‡, использующе„о множест‚о ‚ычето‚ (опе‡ций по мо‰улю). 8. Д‡йте о‰ин пиме полfl, использующе„о множест‚о ‚ычето‚ (опе‡ций по мо‰улю). 9. Пок‡жите, к‡к полином может пе‰ст‡‚ить n-бито‚ое сло‚о. 10. Опе‰елите непи‚о‰имый полином.
Уп‡жнениfl 1. Длfl „уппы G = : ‡. Док‡жите, что это — ‡бел傇 „упп‡. б. Пок‡жите езульт‡т опе‡ций 3 + 2 и 3–2 ‚ этой „уппе. 2. Длfl „уппы G = : ‡. Док‡жите, что это — ‡бел傇 „упп‡. б. Пок‡жите езульт‡т опе‡ций 5 × 1 и 1 ÷ 5. c. Объflсните, почему мы не ‰олжны беспокоитьсfl о ‰елении н‡ нуль ‚ этой „уппе. 3. В т‡блице 4.1 ‰лfl „уппы был‡ опе‰елен‡ только о‰н‡ опе‡циfl. Пе‰положим, что эт‡ опе‡циfl — сложение. Пок‡жите т‡блицу ‰лfl опе‡ции ‚ычит‡ниfl (об‡тн‡fl опе‡циfl). 4. Док‡жите, что пеест‡но‚к‡ ‚ „уппе, пок‡з‡нной ‚ т‡блице 4.2, не fl‚лflетсfl коммут‡ти‚ной. 5. Док‡жите, что пеест‡но‚к‡ ‚ „уппе, пок‡з‡нной ‚ т‡блице 4.2, ч‡стично, ‚ нескольких случ‡flх, у‰о‚лет‚оflет с‚ойст‚у ‡ссоци‡ти‚ности. 6. Со片йте т‡блицу пеест‡но‚ки ‰лfl ‰‚ух ‚хо‰о‚ и ‰‚ух ‚ыхо‰о‚, по‰обных пок‡з‡нным ‚ т‡блице 4.2. 7. Алис‡ пименflет ти после‰о‚‡тельных пеест‡но‚ки — [1 3 2], [3 2 1] и [2 1 3]. Пок‡жите, к‡к Боб может использть только о‰ну пеест‡но‚ку, чтобы изменить поцесс н‡ поти‚оположный. Пользуйтесь т‡блицей 4.2. 8. Н‡й‰ите ‚се пуппы сле‰ующих „упп: ‡. G = б. G = ‚. G = „. G = 9. Используfl теоему Л‡„‡нж‡, н‡й‰ите поfl‰ок ‚сех потенци‡льных пупп ‰лfl сле‰ующих „упп: ‡. G = б. G = ‚. G = „. G = 10. Н‡й‰ите поfl‰ок ‚сех элементо‚ ‚ сле‰ующих „упп‡х: ‡. G = 142
Лекциfl 4
М‡тем‡тик‡ киптфии. Ч‡сть II. Ал„еб‡ические стуктуы
б. G = ‚. G = „. G = 11. По‚тоите пиме 4.25, используfl непи‚о‰имый полином f(x) = x4 + x3 +1. 12. По‚тоите пиме 4.26, используfl непи‚о‰имый полином f(x) = x4 + x3 +1. 13. По‚тоите пиме 4.25, используfl непи‚о‰имый полином f(x) = x4 + x3 +1. 14. К‡кое ‚ы‡жение из нижесле‰ующих fl‚лflетсfl ильным полем Г‡лу‡? ‡. GF(12) б. GF(13) ‚. GF(16) „. GF(17) 15. Длfl к‡ж‰о„о из сле‰ующих n-бито‚ых сло‚ н‡й‰ите полиномы, котоые пе‰ст‡‚лflют эти сл. ‡.10010 б. 10 ‚. 100001 „. 00011 16. Н‡й‰ите n-бито‚ое сло‚о, котоое пе‰ст‡‚лено к‡ж‰ым из сле‰ующих полиномо‚: ‡. x2 + 1 ‚ GF(24) б. x2 + 1 ‚ GF(25) ‚. x + 1 ‚ GF(23) „. x7 ‚ GF(28) 17. В поле GF(7) н‡й‰ите езульт‡т сле‰ующих опе‡ций: ‡. 5+3 б. 5–4 ‚. 5 × 3 „. 5 ÷ 3 18. Док‡жите, что (x) и (x + 1) — непи‚о‰имые полиномы степени 1. 19. Док‡жите, что (x2 + x + 1) — непи‚о‰имый полином степени 2. 20. Док‡жите, что (x3 + x2 + 1) — непи‚о‰имый полином степени 3. 21. Умножьте сле‰ующие 2-бито‚ые сл, используfl полиномы: ‡. (11) × (10) б. (1010) × (1000) ‚. (11100) × (10000) 22. Н‡й‰ите мультиплик‡ти‚ную ин‚есию сле‰ующих полиномо‚ ‚ GF(22). (З‡метим, что ‰лfl это„о полfl есть только о‰ин мо‰уль.) ‡. 1 б. x ‚. x + 1 23. Используйте ‡сшиенный е‚кли‰о‚ ‡л„оитм, чтобы н‡йти ин‚есию (x4 + x3 + 1) ‚ GF(25), пименflfl мо‰уль (x5 + x2 + 1). 24. Со片йте т‡блицу сложениfl и умножениfl ‰лfl GF(24), используfl (x4 + x3 + 1) к‡к мо‰уль. 25. Используfl т‡блицу 4.10, ‚ыполните сле‰ующие опе‡ции: ‡. (100) ÷ (010) 143
Кус
Киптфиfl и безоп‡сность сетей
Лекциfl 5. В‚е‰ение ‚ осно‚ы со‚еменных шифо‚ с симметичным ключом Цели и со‰еж‡ние В этой лекции пост‡‚лено несколько целей. • Пок‡з‡ть ‡зличие меж‰у т‡‰иционными и со‚еменными шиф‡ми с симметичным ключом. • Пи‚ести со‚еменные блочные шифы и обсу‰ить их х‡‡ктеистики. • Объflснить, почему со‚еменные блочные шифы ‰олжны быть споектины к‡к шифы по‰ст‡но‚ки. • В‚ести компоненты блочных шифо‚, т‡ких, к‡к P-блоки и S-блоки. • Обсу‰ить и пок‡з‡ть ‡зличие меж‰у ‰‚умfl кл‡сс‡ми шифо‚: шифы Ф‡йстелfl и шифы не-Ф‡йстелfl. • Обсу‰ить ‰‚‡ ‚艇 ‡т‡к, особо н‡п‡‚ленных н‡ ‡скытие со‚еменных блочных шифо‚: ‰иффеенци‡льный и линейный кипто‡н‡лиз. • В‚ести понflтие «шифы ‰лfl потоꇻ и пок‡з‡ть ‡зличие меж‰у синхонными и несинхонными шиф‡ми. • Обсу‰ить линейную и нелинейную об‡тную с‚flзь е„исто‚ с‰‚脇 ‰лfl е‡лиз‡ции поточных шифо‚. Т‡‰иционные шифы с симметичным ключом, котоые мы изуч‡ли ‰о сих по, оиентиуютсfl н‡ сим‚олы. С поfl‚лением компьюте‡ ст‡ли необхо‰имы шифы, оиентинные н‡ бит. Потому что инфом‡циfl, котоую 퇉о з‡шифть, — не ‚с儉‡ только текст; он‡ может т‡кже состоflть из чисел, „‡фики, ‡у‰ио- и ‚и‰енных. У‰обно пеоб‡зть эти типы ‰‡нных ‚ поток бито‚, чтобы з‡шифть этот поток и з‡тем пе則ть з‡шифнный поток. Коме то„о, к‡ текст об‡бот‡н н‡ ‡зfl‰ном уо‚не, к‡ж‰ый сим‚ол з‡менен н‡ 8 (или 16) бит, ‡ это озн‡ч‡ет, что число сим‚оло‚ ст‡но‚итсfl ‚ 8 (или 16) ‡з больше. Смеш肇ние больше„о числ‡ сим‚оло‚ у‚елич肇ет безоп‡сность. Эт‡ лекциfl обеспеч肇ет необхо‰имую осно‚у ‰лfl изучениfl со‚еменных блочных и поточных шифо‚, котоые ‡ссм‡т肇ютсfl ‚ сле‰ующих тех лекциflх. Больш‡fl ч‡сть этой лекции пос‚flщен‡ обсуж‰ению общих и‰ей со‚еменных блочных шифо‚, и только м‡л‡fl ч‡сть — пинцип‡м со‚еменных поточных шифо‚.
5.1. Со‚еменные блочные шифы Со‚еменный блочный шиф с симметичными ключ‡ми шифует n-бито‚ый блок исхо‰но„о текст‡ или ‡сшифо‚ы‚‡ет n-бито‚ый блок з‡шифнно„о текст‡. Ал„оитм шифниfl или ‰ешифниfl используют k-бито‚ый ключ. Ал„оитм ‰ешифниfl ‰олжен быть ин‚есией ‡л„оитм‡ шифниfl, и об‡ ‚ ‡боте используют о‰ин и тот же ключ з‡секеч肇ниfl т‡к, чтобы Боб мо„ ‚осст‡но‚ить сообщение, пе則‚‡емое Алисой. Рисунок 5.1 пок‡зы‚‡ет общую и‰ею шифниfl и ‰ешифниfl ‚ со‚еменном блочном шифе. 144
Лекциfl 5
В‚е‰ение ‚ осно‚ы со‚еменных шифо‚ с симметичным ключом
Рис. 5.1. Со‚еменный блочный шиф Если сообщение имеет ‡зме меньше, чем n бит, нужно ‰оᇂить з‡полнение, чтобы со片ть этот n-‡зfl‰ный блок; если сообщение имеет больше, чем n бит, оно ‰олжно быть ‡з‰елено н‡ n-‡зfl‰ные блоки, и ‚ случ‡е необхо‰имости нужно ‰оᇂить к после‰нему блоку соот‚етст‚ующее з‡полнение. Общие зн‡чениfl ‰лfl n обычно 64, 128, 256 или 512 бито‚. Пиме 5.1 Сколько ‰ополнительных бит‚ нужно ‰оᇂить к сообщению 100 сим‚оло‚, если ‰лfl ко‰иниfl используетсfl ASCII по 8 бито‚ и блочный шиф пиним‡ет блоки 64 бит‡? Решение З‡ко‰ить 100 сим‚оло‚, используfl ASCII по 8 бито‚. Это сообщение со‰ежит 800 бит. Исхо‰ный текст ‰олжен ‰елитьсfl без ост‡тк‡ н‡ 64. Если | M | и | Pad | — ‰лин‡ сообщениfl и ‰лин‡ з‡полнениfl, то | m | + | Pad | = 0 mod 64 → | Pad | = –800 mod 64 → 32 mod 64 Это озн‡ч‡ет, что нужно к сообщению нужно ‰оᇂить 32 бит‡ з‡полнениfl (н‡пиме, нулей). Текст т‡ бу‰ет состоflть из 832 бито‚ или ти퇉ц‡ти 64‡зfl‰ных блоко‚. З‡метим, что только после‰ний блок со‰ежит з‡полнение. Шиф‡то использует ‡л„оитм шифниfl ти퇉ц‡ть ‡з, чтобы со片ть ти퇉ц‡ть блоко‚ з‡шифнно„о текст‡.
По‰ст‡но‚к‡, или т‡нспозициfl Со‚еменный блочный шиф может быть споектин т‡к, чтобы ‰ейст‚ть к‡к шиф по‰ст‡но‚ки или к‡к шиф т‡нспозиции1. Это — т‡ же с‡м‡fl и‰еfl, кото‡fl используетсfl и ‚ т‡‰иционных шиф‡х, з‡ исключением то„о, что сим‚олы, котоые бу‰ут з‡менены или пеемещены, со‰еж‡т биты ‚место сим‚оло‚. Если шиф споектин к‡к шиф по‰ст‡но‚ки, зн‡чениfl бит‡ 1 или 0 ‚ исхо‰ном тексте мо„ут быть з‡менены либо н‡ 0, либо н‡ 1. Это озн‡ч‡ет, что ис1
Т‡нспозициfl – пеест‡но‚к‡ элементо‚ множест‚‡ X, кото‡fl менflет мест‡ми только ‰‚‡ элемент‡ (пим. пе.) 145
Кус
Киптфиfl и безоп‡сность сетей
хо‰ный текст и з‡шифнный текст мо„ут иметь ‡зличное число е‰иниц. Блок исхо‰но„о текст‡ н‡ 64 бит‡, котоый со‰ежит 12 нулей и 52 е‰иницы, может быть пе‰ст‡‚лен ‚ з‡шифнном тексте 34 нулflми и 30 е‰иниц‡ми. Если шиф споектин к‡к шиф пеест‡но‚ки (т‡нспозиции), биты только менflют поfl‰ок сле‰о‚‡ниfl (пеемещ‡ютсfl), сох‡нflfl то же с‡мое число сим‚оло‚ ‚ исхо‰ном и з‡шифнном текст‡х. В любом случ‡е, число ‚озможных n-бито‚ых исхо‰ных тексто‚ или з‡шифнных тексто‚ ‡‚но 2n, потому что к‡ж‰ый из n бито‚, использнных ‚ блоке, может иметь о‰но из ‰‚ух зн‡чений — 0 или 1. Со‚еменные блочные шифы споектины к‡к шифы по‰ст‡но‚ки, потому что с‚ойст‚‡ т‡нспозиции (сох‡нение числ‡ е‰иниц или нулей) ‰ел‡ют шиф уflз‚имым к ‡т‡к‡м исчепы‚‡юще„о поиск‡, к‡к это пок‡зы‚‡ют нижесле‰ующие пимеы. Пиме 5.2 Пе‰положим, что мы имеем блочный шиф, „‰е n = 64. Если есть 10 е‰иниц ‚ з‡шифнном тексте, сколько испыт‡ний тип‡ «поб и ошибок» ‰олжн‡ с‰ел‡ть Е‚‡, чтобы получить исхо‰ный текст пеех‚‡ченно„о з‡шифнно„о текст‡ ‚ к‡ж‰ом из сле‰ующих случ‡е‚? a. Шиф споектин к‡к шиф по‰ст‡но‚ки. b. Шиф споектин к‡к шиф т‡нспозиции. Решение a. В пе‚ом случ‡е (по‰ст‡но‚к‡) Е‚‡ понflтиfl не имеет, сколько е‰иниц н‡хо‰итсfl ‚ исхо‰ном тексте. Е‚‡ ‰олжн‡ попобть ‚се ‚озможные 264 блок‡ по 64 бит‡, чтобы н‡йти о‰ин, котоый имеет смысл. Если бы Е‚‡ мо„л‡ побть 1 милл臉 блоко‚ ‚ секун‰у, то и т‡ ей потеблось бы сотни лет, пеж‰е чем эт‡ ‡бот‡ мо„л‡ бы пинести успех. b. Во ‚тоом случ‡е (пеест‡но‚к‡) Е‚‡ зн‡ет, что ‚ исхо‰ном тексте есть точно 10 е‰иниц, потому что т‡нспозициfl не изменflет числ‡ е‰иниц (или нулей) ‚ з‡шифнном тексте. Е‚‡ может н‡ч‡ть ‡т‡ку исчепы‚‡юще„о поиск‡, используfl только те 64-бито‚ые блоки, котоые имеют точно 10 е‰иниц. Есть только (64!) / [(10!) (54!)] = 151 473 214 816 из 264 сло‚ по 64 бит‡, котоые имеют точно 10 е‰иниц. Е‚‡ может по‚еить ‚сех их меньше чем з‡ 3 минуты, если он‡ может по‚ести 1 милл臉 испыт‡ний ‚ секун‰у. Стойкий к ‡т‡ке исчепы‚‡юще„о поиск‡ со‚еменный блочный шиф ‰олжен быть споектин к‡к шиф по‰ст‡но‚ки.
Блочные шифы к‡к „уппо‚ые м‡тем‡тические пеест‡но‚ки1 К‡к мы у‚и‰им ‚ сле‰ующих лекциflх, н‡м 퇉о зн‡ть, fl‚лflетсfl ли со‚еменный блочный шиф м‡тем‡тической „уппой (см. лекцию 4). Чтобы от‚етить 1
Пеест‡но‚к‡ – это упоfl‰оченный н‡бо чисел 1,2,3,…..,n. Пи этом n н‡зы‚‡етсfl поfl‰ком пеест‡но‚ки. Число пеест‡но‚ок поfl‰к‡ n ‡‚но n! = 1 × 2 × 3 × ... × n. 146
Лекциfl 5
В‚е‰ение ‚ осно‚ы со‚еменных шифо‚ с симметичным ключом
н‡ этот ‚опос, сн‡ч‡л‡ пе‰положим, что ключ ‰ост‡точно ‰линный, чтобы со片ть отоб‡жение любой ‚озможной ‚хо‰ной инфом‡ции ‚ ‚ыхо‰ную. Он н‡зы‚‡етсfl полно‡зменым ключе‚ым шифом. Н‡ п‡ктике, ключ бы‚‡ет меньше; ‰линный ключ можно пименflть только ‰лfl некотоых отоб‡жений ‚хо‰ной инфом‡ции ‚ ‚ыхо‰ную. Хотfl блочный шиф ‰олжен иметь ключ, котоый fl‚лflетсfl секетным пи обмене меж‰у пе則тчиком и пиемником, ‚ шифе используютсfl т‡кже компоненты, котоые не 燂исflт от ключ‡. Полно‡зменые ключе‚ые шифы Хотfl полно‡зменые ключе‚ые шифы сейч‡с п‡ктически не пименflютсfl, мы сн‡ч‡л‡ по„о‚оим о них, чтобы с‰ел‡ть более понflтным обсуж‰ение шифо‚ с ключом ч‡стично„о ‡зме‡. Полно‡зменые ключе‚ые блочные шифы т‡нспозиции. Т‡кой ключе‚ой шиф пеемещ‡ет биты, не изменflfl их зн‡чениfl, т‡к что может быть смо‰елин к‡к пеест‡но‚к‡ n-мено„о объект‡ с множест‚ом n! т‡блиц пеест‡но‚ки, ‚ котоых ключ опе‰елflет, к‡к‡fl т‡блиц‡ используетсfl Алисой и Бобом. Мы ‰олжны иметь n! ‚озможных ключей, и т‡кой ключ ‰олжен иметь ‰лину [log2n!] бит. Пиме 5.3 Пок‡жите мо‰ели и множест‚о т‡блиц пеест‡но‚ки ‰лfl блочно„о шиф‡ т‡нспозиции н‡ 3 бит‡, „‰е ‡зме блок‡ — 3 бит‡. Решение
Множест‚о т‡блиц пеест‡но‚ки имеет 3! = 6 элементо‚, к‡к пок‡з‡но н‡ ис. 5.2. Ключ ‰олжен быть ‰линой [log2n!] = 3 бит‡. З‡метим, что хотfl ключ н‡ 3 бит‡ может ‚ыб‡ть 23 = 8 ‡зличных отоб‡жений, мы используем только 6 из них. Рис. 5.2. Блочный шиф т‡нспозиции ‚ ‚и‰е пеест‡но‚ки Полно‡зменые ключе‚ые блочные шифы по‰ст‡но‚ки. Т‡кие шифы не пеемещ‡ют биты — они з‡менflют биты. Н‡ пе‚ый ‚з„лfl‰ к‡жетсfl, что полно‡зменый ключе‚ой шиф по‰ст‡но‚ки не может быть смо‰елин к‡к пеест‡но‚к‡. О‰н‡ко мы можем пименить мо‰ель пеест‡но‚ки ‰лfl шиф‡ по‰ст‡но‚ки, если сможем ‰еко‰ить ‚хо‰ную инфом‡цию и ко‰ить ‚ыхо‰ную. 147
Кус
Киптфиfl и безоп‡сность сетей
Деко‰иние з‰есь озн‡ч‡ет пеоб‡зние n-‡зfl‰но„о цело„о числ‡ ‚ стоку 2n-бит с е‰инст‚енной е‰иницей 1 и 2n–1 нулflми. Позициfl е‰инст‚енной е‰иницы ук‡зы‚‡ет зн‡чение цело„о числ‡ ‚ упоfl‰оченной после‰о‚‡тельности позиций стоки от 0 ‰о 2n – 1. Поскольку нfl ‚хо‰н‡fl инфом‡циfl имеет ‚с儉‡ е‰инст‚енную е‰иницу, шиф может быть смо‰елин к‡к пеест‡но‚к‡ 2n! объекто‚. Пиме 5.4 Пок‡жите мо‰ель и множест‚о т‡блиц пеест‡но‚ки ‰лfl шиф‡ по‰ст‡но‚ки блок‡ н‡ 3 бит‡. Решение Ти ‚хо‰ных исхо‰ных текст‡ мо„ут быть обозн‡чены целыми числ‡ми от 0 ‰о 7. Это может быть з‡ко‰ино к‡к сток‡, со‰еж‡щ‡fl 8 бито‚ с е‰инст‚енной е‰иницей. Н‡пиме, комбин‡циfl 000 может быть з‡ко‰ио‚‡н‡ к‡к 00000001 (п傇fl е‰иниц‡ с‡); комбин‡циfl 101 может быть з‡ко‰ио‚‡н‡ к‡к 00100000 (шест‡fl е‰иниц‡ с‡). Рисунок 5.3 пок‡зы‚‡ет мо‰ель и множест‚о т‡блиц пеест‡но‚ки. З‡метим, что число элементо‚ ‚ з‡ко‰инном множест‚е н‡мно„о
больше, чем число элементо‚ ‚ шифе т‡нспозиции (8! = 40 320). Ключ — т‡кже н‡мно„о более ‰линный [log240320] = 16 бит. Хотfl ключ н‡ 16 бито‚ может опе‰елить 65 536 ‡зличных отоб‡жений, используютсfl только 40 320. Рис. 5.3. Блочный шиф по‰ст‡но‚ки мо‰елиуетсfl к‡к шиф пеест‡но‚ки
Полно‡зменый ключ — это n-‡зfl‰ный шиф т‡нспозиции или блочный шиф по‰ст‡но‚ки. Они мо„ут быть смо‰елины к‡к шифы пеест‡но‚ки, но ‡змеы их ключ‡ ‡зличны: ‰лfl шиф‡ т‡нспозиции ключ ‰линой — [log2n!], ‰лfl шиф‡ по‰ст‡но‚ки ключ ‰линой — [log2(2n)!]. 148
Лекциfl 5
В‚е‰ение ‚ осно‚ы со‚еменных шифо‚ с симметичным ключом
Гуппfl пеест‡но‚к‡. Ф‡кт, что полно‡змен‡fl ключ傇fl т‡нспозициfl или шиф по‰ст‡но‚ки/пеест‡но‚ки пок‡зы‚‡ет, что если шифние (или ‰ешифние) использует больше чем о‰ну любую комбин‡цию из этих шифо‚, езульт‡т эк‚肇лентен опе‡ции „уппо‚ой пеест‡но‚ки. К‡к уже обсу扇лось ‚ лекции 4, ‰‚е или больше к‡сꇉных пеест‡но‚ки мо„ут ‚с儉‡ быть з‡менены е‰инст‚енной пеест‡но‚кой. Это озн‡ч‡ет, что бесполезно иметь больше чем о‰ин к‡сꇉ полно‡зменых ключе‚ых шифо‚, потому что эффект тот же с‡мый, к‡к и пи н‡личии е‰инст‚енно„о ш‡„‡. Шифы ключ‡ ч‡стично„о ‡зме‡ Ф‡ктические шифы не мо„ут использть полно‡зменые ключи, потому что ‡зме ключ‡ ст‡но‚итсfl несу‡зно большим, особенно ‰лfl блочно„о шиф‡ по‰ст‡но‚ки. Н‡пиме, общий шиф по‰ст‡но‚ки – DES (см. лекцию 6) — пименflет 64-‡зfl‰ный блочный шиф. Если бы поектио‚щики DES пименflли полно‡зменый ключ, он был бы log2 (264!) = 270 бито‚. Н‡ п‡ктике ключ ‰лfl DES — только 56 бито‚, что fl‚лflетсfl очень м‡леньким ф‡„ментом полно‡змено„о ключ‡. Это озн‡ч‡ет, что DES использует только 256 отоб‡жений из пиблизительно 2270 ‚озможных отоб‡жений. Гупп‡ пеест‡но‚ки. З‡‰‡‰им себе ‚опос: можно ли уст‡но‚ить, что мно„оступенч‡т‡fl т‡нспозициfl с ч‡стичным ключом или по‰ст‡но‚к‡ — это „упп‡ пеест‡но‚ки с композицией опе‡ций? От‚ет н‡ этот ‚опос чез‚ыч‡йно ‚‡жен, потому что он „о‚оит н‡м о том, fl‚лflетсfl ли мно„оступенч‡т‡fl ‚есиfl с ч‡стичным шифом т‡ким же се‰ст‚ом шифниfl, к‡к и с‡м шиф. Этот ф‡кт поз‚олflет ‰ости„нуть большей степени безоп‡сности (см. обсуж‰ение мно„ок‡тной DES ‚ лекции 6). Ч‡стичный ключе‚ой шиф – это „упп‡, если это — пупп‡ соот‚етст‚ующе„о ‡зме‡ ключ‡ шиф‡. Ду„ими слми, если полно‡зменый ключе‚ой шиф — это „упп‡ G = <M, o>, „‰е М. — множест‚о отоб‡жений и (o) — композициfl опе‡ций, то шиф с ключом ч‡стично„о ‡зме‡ ‰олжен пе‰ст‡‚лflть пуппу H = , „‰е N — по‰множест‚о М с теми же с‡мыми опе‡циflми. Н‡пиме, было ‰ок‡з‡но, что мно„оступенч‡тый DES с 56-бито‚ым ключом не fl‚лflетсfl „уппой, потому что пупп‡ с 256 отоб‡жениflми не может быть соз‰‡н‡ из „уппы с 264! отоб‡жениflми. Ч‡стичный ключе‚ой шиф есть „упп‡ с н‡боом опе‡ций, если он fl‚лflетсfl пуппой соот‚етст‚ующе„о полно‡змено„о ключе‚о„о шиф‡.
Шифы без ключ‡ Хотfl использние от‰ельно шиф‡ без ключ‡ ф‡ктически бесполезно, ‚озможно их пименение ‚ к‡чест‚е компоненто‚ ключе‚ых шифо‚. Шиф т‡нспозиции без ключ‡. Шифы без ключ‡ (или с фиксинным ключом) можно ‡ссм‡т肇ть к‡к шиф т‡нспозиции, е‡лизнный ‚ ‡птных се‰ст‚‡х. Фиксинный ключ (е‰инст‚енное ило пеест‡но‚ки) 149
Кус
Киптфиfl и безоп‡сность сетей
может быть пе‰ст‡‚лен к‡к т‡блиц‡ ‚ случ‡е е‡лиз‡ции шиф‡ ‚ пммном обеспечении. Сле‰ующ‡fl ч‡сть этой лекции обсу扇ет шифы т‡нспозиции без ключ‡, н‡з‚‡нные P-блок‡ми, котоые используютсfl к‡к ст‡н‰‡тные блоки со‚еменных блочных шифо‚. Шифы по‰ст‡но‚ки без ключ‡. Т‡кой шиф без ключ‡ (или с фиксинным ключом) можно пе‰ст‡‚ить себе к‡к 燇нее опе‰еленное отоб‡жение ‚хо‰ной инфом‡ции к ‚ыхо‰ной. Отоб‡жение может быть пе‰ст‡‚лено к‡к т‡блиц‡, к‡к м‡тем‡тическ‡fl функциfl, ‡ т‡кже ‰у„ими способ‡ми. В сле‰ующей ч‡сти этой лекции ‡ссм‡т肇ютсfl шифы по‰ст‡но‚ки без ключей, н‡з‚‡нные S-блок‡ми, котоые пименflютсfl к‡к ст‡н‰‡тные блоки со‚еменных блочных шифо‚.
Компоненты со‚еменно„о блочно„о шиф‡ Со‚еменные блочные шифы обычно fl‚лflютсfl ключе‚ыми шиф‡ми по‰ст‡но‚ки, ‚ котоых ключ поз‚олflет только ч‡стичные отоб‡жениfl ‚озможных ‚хо‰о‚ инфом‡ции ‚ ‚озможные ‚ыхо‰ы. О‰н‡ко эти шифы обычно не поектиуютсfl к‡к е‰иный мо‰уль. Чтобы обеспеч肇ть тебуемые с‚ойст‚‡ со‚еменно„о блочно„о шиф‡, т‡кие, к‡к ‡ссеflние и пеемеш肇ние инфом‡ции (обсу扇етсfl к‡тко), этот шиф фомиуетсfl к‡к комбин‡циfl мо‰улей т‡нспозиции (н‡зы‚‡емых P-блок‡ми), мо‰улей по‰ст‡но‚ки (н‡зы‚‡емых S-блок‡ми) и некотоыми ‰у„ими мо‰улflми (обсу扇етсfl к‡тко).
P-блок (блок пеест‡но‚ки) по‰обен т‡‰иционному шифу т‡нспозиции сим‚оло‚. Он пеемещ‡ет биты. В со‚еменных блочных шиф‡х мы можем н‡йти ти тип‡ P-блоко‚: пflмые P-блоки, P-блоки ‡сшиениfl и P-блоки сж‡тиfl, что и пок‡з‡но н‡ ис. 5.4. Рис. 5.4. Ти тип‡ P-блоко‚ Рисунок 5.4 пок‡зы‚‡ет пflмой P-блок 5 × 5, P-блок сж‡тиfl 5 × 3 и P-блок ‡сшиениfl 3 × 5. Р‡ссмотим к‡ж‰ый из них более по‰обно. Пflмые P-блоки. Пflмой P-блок с n ‚хми и n ‚ыхми – это пеест‡но‚к‡ с n! ‚озможными отоб‡жениflми. Пиме 5.5 Рисунок 5.5 пок‡зы‚‡ет ‚се 6 ‚озможных отоб‡жений P-блок‡ 3 × 3. 150
Лекциfl 5
В‚е‰ение ‚ осно‚ы со‚еменных шифо‚ с симметичным ключом
Рис. 5.5. Возможные отоб‡жениfl P-блок‡ 3 × 3 Хотfl P-блок может использть ключ, чтобы опе‰елить о‰но из n! отоб‡жений, обычно P-блоки – без пименениfl ключ‡, то есть отоб‡жение 燉‡но 燇нее. Если P-блок 燉‡н 燇нее и ‚монтио‚‡н ‚ ‡птные се‰ст‚‡ или если он е‡лизо‚‡н ‚ пммном обеспечении, т‡блицы пеест‡но‚ок 燉‡ют ило отоб‡жениfl. Во ‚тоом случ‡е ‚хо‰ы ‚ т‡блице ук‡зы‚‡ют ‚ позиции, ‚ котоых ук‡з‡ны позиции ‚ыхо‰о‚. Т‡блиц‡ 5.1 ‰‡ет пиме т‡блицы пеест‡но‚ок, к‡ n ‡‚но 64. Т‡блиц‡ 5.1. Пиме т‡блицы пеест‡но‚ки ‰лfl пflмо„о P-блок‡ 58 50 42 34 26 18 10 02 60 52 44 36 28 20 12 04 62 54 46 38 30 22 14 06 64 56 48 40 32 24 16 08 57 49 41 33 25 17 09 01 59 51 43 35 27 19 11 03 6153 45 37 29 21 13 05 63 55 47 39 31 23 15 07 Т‡блиц‡ 5.1 имеет 64 т‡бличных ‚х, котоые фиксиуют соот‚етст‚ие 64 инфом‡ционным ‚хм. Позициfl (ин‰екс) ‚х соот‚етст‚ует ‚ыхо‰у. Н‡пиме, пе‚ый т‡бличный ‚хо‰ со‰ежит номе 58. Это озн‡ч‡ет, что пе‚ый ‚ыхо‰ бу‰ет соот‚етст‚ть 58-му ‚хо‰у. Поскольку после‰ний т‡бличный ‚хо‰ — 7, это озн‡ч‡ет, что 64-й ‚ыхо‰ бу‰ет соот‚етст‚ть 7-му инфом‡ционному ‚хо‰у, и т‡к ‰‡лее. Пиме 5.6 Сост‡‚ьте т‡блицу пеест‡но‚ки ‰лfl пflмо„о P-блок‡ 8 × 8, кото‡fl пеемещ‡ет ‰‚‡ се‰них бит‡ (биты 4 и 5) ‚о ‚хо‰ном сло‚е к ‰‚ум к‡йним бит‡м (биты 1 и 8) ‚ыхо‰но„о сл. Относительные позиции ‰у„их бито‚ не изменflютсfl. Решение Н‡м 퇉о со片ть пflмой P-блок с т‡блицей [4 1 2 3 6 7 8 5]. Относительные позиции бит 1, 2, 3, 6, 7 и 8 не менflютсfl, но пе‚ый инфом‡ционный ‚ыхо‰ с‚flз‡н с чет‚етым инфом‡ционным ‚хо‰ом, ‚осьмой инфом‡ционный ‚ыхо‰ — с пflтым инфом‡ционным ‚хо‰ом. P-блоки сж‡тиfl. P-блок сж‡тиfl – это P-блок с n ‚хми и m ‚ыхми, „‰е m < n. Некотоые из инфом‡ционных ‚хо‰о‚ блокины и не с‚flз‡ны с ‚ыхо‰ом (см. исунок 5.4). P-блоки сж‡тиfl, используемые ‚ со‚еменных блочных шиф‡х, обычно fl‚лflютсfl бесключе‚ыми с т‡блицей пеест‡но‚ки, кото‡fl ук‡зы‚‡ет ил‡ пеест‡но‚ки бит. Н‡м 퇉о учиты‚‡ть, что т‡блиц‡ пеест‡но‚ок ‰лfl P-блок‡ сж‡тиfl имеет m т‡бличных ‚хо‰о‚, но ‚ со‰еж‡нии к‡ж‰о„о т‡блично„о ‚х – от 1 ‰о n, и некотоые из них мо„ут отсутст‚ть (те инфом‡ционные ‚хо‰ы, котоые блокины). Т‡блиц‡ 5.2 пок‡зы‚‡ет пиме т‡блицы пее151
Кус
Киптфиfl и безоп‡сность сетей
Т‡блиц‡ 5.2. Пиме т‡блицы пеест‡но‚ки 32 × 24 01 02 03 21 22 26 27 28 29 13 14 17 18 19 20 04 05 06 10 11 12 30 31 32 ст‡но‚ки ‰лfl P-блок‡ сж‡тиfl 32 × 24. Об‡тите ‚ним‡ние, что ‚хо‰ы 7, 8, 9, 16, 23, 24 и 25 блокины. P-блоки сж‡тиfl используютсfl, к‡ мы ‰олжны пеест‡‚ить биты и ‚ то же ‚емfl уменьшить число бито‚ ‰лfl сле‰ующей ступени. P-блок ‡сшиениfl — P-блок с n ‚хми и m ‚ыхми, „‰е m> n. Некотоые из ‚хо‰о‚ с‚flз‡ны больше чем с о‰ним ‚ыхо‰ом (см. ис. 5.4). P-блоки ‡сшиениfl, используемые ‚ со‚еменных блочных шиф‡х, обычно без ключ‡. П‡‚ил‡ пеест‡но‚ки бит ук‡зы‚‡ютсfl ‚ т‡блице. Т‡блиц‡ пеест‡но‚ки ‰лfl Pблок‡ ‡сшиениfl имеет m т‡бличных ‚хо‰о‚, но m – n ‚хо‰о‚ (те ‚хо‰ы, котоые с‚flз‡ны больше чем с о‰ним инфом‡ционным ‚ыхо‰ом). Т‡блиц‡ 5.3 пок‡зы‚‡ет пиме т‡блицы пеест‡но‚ки ‰лfl P-блок‡ ‡сшиениfl 12 × 16. Об‡тите ‚ним‡ние, что к‡ж‰ый из 1, 3, 9 и 12 сое‰инен с ‰‚умfl ‚ыхми. Т‡блиц‡ 5.3. Пиме т‡блиц пеест‡но‚ки 12 × 16 01 09 10 11 12 01 02 03 03 04 05 06 07 08 09 12 P-блоки ‡сшиениfl пименflютсfl, к‡ мы ‰олжны пеест‡‚ить биты и ‚ то же ‚емfl у‚еличить число бито‚ ‰лfl сле‰ующе„о к‡сꇉ‡ шифниfl. Об‡тимость. Пflмой P-блок fl‚лflетсfl об‡тимым. Это озн‡ч‡ет, что мы можем использть пflмой P-бито‚ый шиф и ‰ешифть е„о. Т‡блицы пеест‡но‚ки, о‰н‡ко, ‰олжны быть об‡тимыми по отношению ‰у„ к ‰у„у. В лекции 3 мы ‚и‰ели, к‡к можно получить об‡тную т‡блицу пеест‡но‚ки.
Пиме 5.7 Рисунок 5.6 пок‡зы‚‡ет, к‡к изменить т‡блицу пеест‡но‚ки ‚ случ‡е о‰номеной т‡блицы. Рис. 5.6. Изменение т‡блицы пеест‡но‚ки P-блоки сж‡тиfl и ‡сшиениfl необ‡тимы. В P-блок‡х сж‡тиfl ‚хо‰ может быть отбошен ‚ поцессе шифниfl; ‡л„оитм ‰ешифниfl не имеет клю152
Лекциfl 5
В‚е‰ение ‚ осно‚ы со‚еменных шифо‚ с симметичным ключом
ч‡, чтобы ‚осст‡но‚ить отбошенный бит. В P-блоке ‡сшиениfl ‚хо‰ ‚ поцессе шифниfl может быть отоб‡жен более чем ‚ о‰ин ‚ыхо‰; ‡л„оитм ‰ешифниfl не имеет ключ‡ и не опе‰елflет, тем с‡мым, к‡кие из нескольких ‚хо‰о‚ отоб‡жены ‚ ‰‡нном ‚ыхо‰е. Рисунок 5.7 ‰емонстиует об‡ случ‡fl. Рис. 5.7. P-блоки сж‡тиfl и ‡сшиениfl к‡к необ‡тимые компоненты Рисунок 5.7 т‡кже пок‡зы‚‡ет, что P-блок сж‡тиfl не fl‚лflетсfl об‡тным шифом P-блок‡ ‡сшиениfl и н‡обоот. Это озн‡ч‡ет, что если мы используем Pблок сж‡тиfl ‰лfl шифниfl, мы не сможем использть P-блок ‡сшиениfl ‰лfl ‰ешифниfl и н‡обоот. О‰н‡ко, к‡к бу‰ет пок‡з‡но позже ‚ этой лекции, есть шифы, котоые пименflют P-блоки сж‡тиfl или ‡сшиениfl ‰лfl шифниfl; но их эффекти‚ность хуже, чем у некотоых ‰у„их способо‚. Пflмой P-блок fl‚лflетсfl об‡тимым, ‡ P-блоки сж‡тиfl и ‡сшиениfl — нет.
S-блоки S-блок (блок по‰ст‡но‚ки) можно пе‰ст‡‚ить себе к‡к мини‡тюный шиф по‰ст‡но‚ки. Этот блок может иметь ‡зличное число ‚хо‰о‚ и ‚ыхо‰о‚. Ду„ими слми, ‚хо‰ к S-блоку может быть n-бито‚ым сло‚ом, ‡ ‚ыхо‰ может быть m ‡зfl‰ным сло‚ом, „‰е m и n — не обflз‡тельно о‰ин‡ко‚ые числ‡. Хотfl Sблок может быть ключе‚ым или без ключ‡, со‚еменные блочные шифы обычно используют S-блоки без ключей, „‰е отоб‡жение от инфом‡ционных ‚хо‰о‚ к инфом‡ционным ‚ыхм 燇нее опе‰елено. S-блок — m × n мо‰уль по‰ст‡но‚ки, „‰е m и n не обflз‡тельно ‡‚ны. 153
Кус
Киптфиfl и безоп‡сность сетей
Линейный и нелинейный S-блоки. В S-блоке с n ‚хми и m ‚ыхми мы обозн‡чим ‚хо‰ы x0, x1,…., xn и ‚ыхо‰ы y1 ,..., ym. Соотношениfl меж‰у ‚хми и ‚ыхми мо„ут быть пе‰ст‡‚лены к‡к систем‡ у‡‚нений y1 = f1(x1,x2,…,xn) y2 = f2(x1,x2,…,xn) …. ym = fm(x1,x2,…,xn) В линейном S-блоке ‚ышеупомflнутые соотношениfl мо„ут быть ‚ы‡жены к‡к y1 = a1,1 x1 ⊕ a1,2 x2 ⊕ ... ⊕ a1,nxn y2 = a2,1 x1 ⊕ a2,2 x2 ⊕ ... ⊕ a2,nxn ...
ym = am,1 x1 ⊕ am,2 x2 ⊕ ... ⊕ am,nxn В нелинейном S-блоке мы не можем ‚с儉‡ 燉‡ть ‰лfl к‡ж‰о„о ‚ых ук‡з‡нные ‚ыше соотношениfl. Пиме 5.8 В S-блоке с темfl ‚хми и ‰‚умfl ‚ыхми мы имеем
y1 = x 1 ⊕ x 2 ⊕ x 2 ⊕ x 3
y2 = x 1
S-блок линеен, потому что a1,1 = a1,2 = a1,3 = a2,1=1 и a2 ,2 = a2 ,3 = 0. Эти соотношениfl мо„ут быть пе‰ст‡‚лены м‡тиц‡ми, к‡к пок‡з‡но ниже: Пиме 5.9 В S-блоке с темfl ‚хми и ‰‚умfl ‚ыхми мы имеем y1 = (x1)3 + x2 y2 = (x1) + x1x2 + x3 „‰е умножение и сложение по‚о‰итсfl ‚ GF(2). S-блок нелинеен, потому что нет линейных соотношений меж‰у ‚хми и ‚ыхми. Пиме 5.10
154
Лекциfl 5
В‚е‰ение ‚ осно‚ы со‚еменных шифо‚ с симметичным ключом
Сле‰ующ‡fl т‡блиц‡ опе‰елflет отношениfl меж‰у ‚хми/‚ыхми ‰лfl Sблок‡ ‡зме‡ 3 × 2. К‡йний ле‚ый бит ‚х опе‰елflет стоку; ‰‚‡ с‡мых ых бит‡ ‚х опе‰елflют столбец. Д‚‡ бит‡ ‚ых – это зн‡чение н‡ пеесечении секции ‚ыб‡нной стоки и столбц‡. Осно‚ы‚‡flсь н‡ т‡блице, ‚хо‰ 010 поо扇ет ‚ыхо‰ 01. Вхо‰ 101 поо扇ет ‚ыхо‰ 00. Об‡тимость. S-блоки — шифы по‰ст‡но‚ки, ‚ котоых отношениfl меж‰у ‚хо‰ом и ‚ыхо‰ом опе‰елены т‡блицей или м‡тем‡тическим соотношением. Sблок может быть или может не быть об‡тимым. В об‡тимом S-блоке число ‚хо‰ных бито‚ ‰олжно быть ‡‚ным числу бит ‚ых. Пиме 5.11 Рисунок 5.8 пок‡зы‚‡ет пиме об‡тимо„о S-блок‡. О‰н‡ из т‡блиц используетсfl ‚ ‡л„оитме шифниfl; ‰у„‡fl т‡блиц‡ — ‚ ‡л„оитме ‰ешифниfl. В к‡ж‰ой т‡блице к‡йний ле‚ый бит ‚х опе‰елflет стоку; сле‰ующие ‰‚‡ бит‡ опе‰елflют столбец. Выхо‰ — это зн‡чение н‡ пеесечении стоки и столбц‡. Н‡пиме, если ‚хо‰ к ле‚ому блоку — 001, ‚ыхо‰ — 101. Вхо‰ 101 ‚ ой т‡блице ‰‡ет ‚ыхо‰ 001. Это пок‡зы‚‡ет, что эти ‰‚е т‡блицы поз‚олflют получить об‡тный езульт‡т по отношению ‰у„ к ‰у„у. ИСКЛЮЧАЮЩЕЕ ИЛИ
В‡жный компонент ‚ большинст‚е блоко‚ шифниfl — опе‡циfl ИСКЛЮЧАЮЩЕЕ ИЛИ: К‡к мы уже обсу扇ли ‚ лекции 4, опе‡ции сложениfl и ‚ычит‡ниfl ‚ GF(2n) ‚ыполнflетсfl с помощью о‰ной и той же опе‡ции, н‡зы‚‡емой ИСКЛЮЧАЮЩЕЕ ИЛИ или (XOR): Рис. 5.8. Т‡блицы S-блок‡ ‰лfl пиме‡ 5.11 С‚ойст‚‡. Пflть с‚ойст‚ опе‡ции ИСКЛЮЧАЮЩЕЕ ИЛИ ‚ поле GF(2n) ‰ел‡ют эту опе‡цию очень у‰обной ‰лfl использниfl ‚ блочном шифе. 1. З‡мкнутость. Это с‚ойст‚о „‡‡нтиует, что ‚ езульт‡те этой опе‡ции ‰‚‡ n-бито‚ых сл ‰‡ют ‰у„ое n-бито‚ое сло‚о. 155
Кус
Киптфиfl и безоп‡сность сетей
2. Ассоци‡ти‚ность. Это с‚ойст‚о поз‚олflет н‡м использть больше чем о‰но ИСКЛЮЧАЮЩЕЕ ИЛИ, котоые можно ‚ычислflть ‚ любом поfl‰ке. x ⊕ (y ⊕ z) ↔ (x ⊕ y) ⊕ z 3. Коммут‡ти‚ность. Это с‚ойст‚о поз‚олflет н‡м менflть мест‡ми опе‡тоы (‚хо‰ную инфом‡цию), не изменflfl езульт‡т (‚ыхо‰ную инфом‡цию). x ⊕ (y z) ↔ (x ⊕ y) ⊕ z 4. Сущест‚ние нуле‚о„о (тож‰ест‚енно„о) элемент‡. Нуле‚ой элемент ‰лfl опе‡ции ИСКЛЮЧАЮЩЕЕ ИЛИ – сло‚о, котоое состоит из ‚сех нулей, или (00... 0). Это пзум傇ет, что сущест‚ует сло‚о с нейт‡льными элемент‡ми, котоое пи по‚е‰ении опе‡ции не изменflет сло‚о. x ⊕ (00….00) =(00 ... 0) Мы используем это с‚ойст‚о ‚ шифе Ф‡йстелfl, котоый ‡ссмотим позже ‚ этой лекции. 5. Сущест‚ние ин‚есии. В поле GF(2n) к‡ж‰ое сло‚о есть ‡‰‰ити‚н‡fl ин‚есиfl с‡мо„о себfl. Это пзум傇ет, что по‚е‰ение опе‡ции ИСКЛЮЧАЮЩЕЕ ИЛИ сл с с‡мим собой пи‚о‰ит к нуле‚ому элементу: x ⊕ x = (00... 0) Мы т‡кже используем это с‚ойст‚о ‚ шифе Ф‡йстелfl, котоый ‡ссмотим позже ‚ этой лекции. Дополнение. Опе‡циfl ‰ополнениfl — о‰номестн‡fl опе‡циfl (о‰ин инфом‡ционный ‚хо‰ и о‰ин инфом‡ционный ‚ыхо‰), кото‡fl ин‚етиует к‡ж‰ый бит ‚ сло‚е. 0-‚ой бит менflет н‡ 1 (е‰иничный) бит; 1 (е‰иничный) бит менflет н‡ 0-‚ой бит. Н‡с интеесует опе‡ции с ‰ополнением относительно опе‡ции ИСКЛЮЧАЮЩЕЕ ИЛИ. Если – x — ‰ополнение «x», т‡ ‚ены сле‰ующие ‰‚‡ соотношениfl: x⊕– x = (11….1) и x ⊕ (11... 1) = – x Мы т‡кже используем эти с‚ойст‚‡ позже ‚ этой лекции, к‡ бу‰ем обсу扇ть безоп‡сность некотоых шифо‚. Ин‚есиfl. Ин‚есиfl компонент‡ ‚ шифе имеет смысл, если компонент пе‰ст‡‚лflет о‰номестную опе‡цию (о‰ин ‚хо‰ и о‰ин ‚ыхо‰). Н‡пиме, Pблок без ключ‡ или S-блок без ключ‡ мо„ут быть об‡тимыми, потому что они имеют о‰ин ‚хо‰ и о‰ин ‚ыхо‰. Опе‡циfl ИСКЛЮЧАЮЩЕЕ ИЛИ — бин‡н‡fl опе‡циfl. Ин‚есиfl опе‡ции ИСКЛЮЧАЮЩЕЕ ИЛИ может иметь смысл, только если о‰ин из ‚хо‰о‚ з‡фиксин (о‰ин и тот же пи шифнии и ‰ешифнии). Н‡пиме, если о‰ин из ‚хо‰о‚ — ключ, котоый обычно fl‚лflет156
Лекциfl 5
В‚е‰ение ‚ осно‚ы со‚еменных шифо‚ с симметичным ключом
Рис. 5.9. Об‡тимость опе‡ции ИСКЛЮЧАЮЩЕЕ ИЛИ сfl о‰ним и тем же ‚ шифнии и ‰ешифнии, т‡ опе‡циfl ИСКЛЮЧАЮЩЕЕ ИЛИ fl‚лflетсfl об‡тимой, к‡к пок‡з‡но н‡ ис. 5.9. Н‡ исунке 5.9 с‚ойст‚о ‡‰‰ити‚ной ин‚есии пзум傇ет, что y=x⊕k x=k⊕y Мы используем это с‚ойст‚о, к‡ позже ‚ этой лекции бу‰ем обсу扇ть стуктуу блочных шифо‚. Циклический с‰‚и„ Ду„ой компонент, пименflемый ‚ некотоых со‚еменных блочных шиф‡х, – опе‡циfl циклическо„о с‰‚脇. Смещение может быть ‚ле‚о или ‚п‡‚о. Ку„fl опе‡циfl ле‚о„о с‰‚脇 с‰‚脇ет к‡ж‰ый бит ‚ n-бито‚ом сло‚е н‡ k позиции ‚ле‚о; к‡йние ле‚ые k-биты у‰‡лflютсfl сл傇 и ст‡но‚flтсfl с‡мыми ыми бит‡ми. Ку„fl опе‡циfl о„о с‰‚脇 с‰‚脇ет к‡ж‰ый бит ‚ n-бито‚ом сло‚е н‡ k позиций ‚п‡‚о; с‡мые ые k-биты с‡ у‰‡лflютсfl и ст‡но‚flтсfl к‡йними ле‚ыми бит‡ми. Рисунок 5.10 пок‡зы‚‡ет и ле‚ые и ые опе‡ции ‚ случ‡е, „‰е n = 8 и k = 3. Циклическ‡fl опе‡циfl с‰‚脇 смеш肇ет биты ‚ сло‚е и помет скыть об‡зцы ‚ пе‚он‡ч‡льном сло‚е. Хотfl число позиций, н‡ котоые биты бу‰ут с‰‚инуты, может использтьсfl к‡к ключ, циклическ‡fl опе‡циfl с‰‚脇 обычно – без ключ‡; зн‡чение k уст‡н‡‚л肇етсfl и 燉‡етсfl 燇нее. Об‡тимость. Циклическ‡fl опе‡циfl ле‚о„о с‰‚脇 – ин‚есиfl опе‡ции о„о с‰‚脇. Если о‰н‡ из них используетсfl ‰лfl шифниfl, ‰у„‡fl может пименflтьсfl ‰лfl ‰ешифниfl. С‚ойст‚‡. Опе‡циfl циклическо„о с‰‚脇 имеет ‰‚‡ с‚ойст‚‡, котоые н‡м 퇉о зн‡ть. П傇fl — это смещение по мо‰улю n. Ду„ими слми, если k = 0 или
157
Кус
Киптфиfl и безоп‡сность сетей
k = n, ник‡ко„о смещениfl не поисхо‰ит. Если k fl‚лflетсfl большим, чем n, т‡ ‚хо‰н‡fl инфом‡циfl с‰‚инут‡ н‡ k mod n бит. Втоое с‚ойст‚о, опе‡циfl циклическо„о с‰‚脇 퇉 сое‰инением опе‡ций — есть „упп‡ „упп‡. Это озн‡ч‡ет, что если смещение ‰елflетсfl нео‰нок‡тно, то о‰но и то же зн‡чение может поfl‚итьсfl несколько ‡з.. Рис. 5.10. Циклический с‰‚脇 8 бито‚о„о сл н‡ле‚о или н‡п‡‚о З‡мен‡
Опе‡циfl з‡мены — специ‡льный случ‡й опе‡ции циклическо„о с‰‚脇, „‰е k = n/2 озн‡ч‡ет, что эт‡ опе‡циfl ‚озможн‡, только если n — четный номе. Поскольку с‰‚и„ ‚ле‚о n/2 — то же с‡мое, что с‰‚и„ n/2 ‚о, эт‡ опе‡циfl fl‚лflетсfl об‡тимой. Опе‡циfl з‡мены ‰лfl шифниfl может быть полностью ‡скыт‡ опе‡цией з‡мены ‰лfl ‰ешиф‡ции. Рисунок 5.11 иллюстиуетт опе‡цию з‡мены ‰лfl сл н‡ 8 бито‚. Рис. 5.11. Опе‡циfl з‡мен‡ ‚ 8-бито‚ом ‡ сло‚е Р‡збиение и объе‰инение Д‚е ‰у„их опе‡ции, пименflемые ‚ некотоых блочных шиф‡х, — ‡збиение и объе‰инение. Р‡збиение обычно ‡з‰елflет n-бито‚ое сло‚о ‚ сее‰ине, со片‚‡fl ‰‚‡ сл ‡‚ной ‰лины. Объе‰инение с‚flзы‚‡ет ‰‚‡ сл ‡‚ной ‰лины, чтобы со片ть n-бито‚ое сло‚о. Эти ‰‚е опе‡ции ин‚есны ‰у„ ‰у„у и мо„ут использтьсfl к‡к , чтобы у‡‚но‚есить ‰у„ ‰у„‡. Если о‰н‡ пименflетсfl ‰лfl
шифниfl, то ‰у„‡fl — ‰лfl ‰ешифниfl. Рисунок 5.12 пок‡зы‚‡ет эти ‰‚е опе‡ции ‰лfl случ‡fl n = 8. 158
Лекциfl 5
В‚е‰ение ‚ осно‚ы со‚еменных шифо‚ с симметичным ключом
Сост‡‚ные шифы Шеннон ‚‚ел понflтие сост‡‚ные шифы. Сост‡‚ной шиф – комплекс, котоый объе‰инflет по‰ст‡но‚ку, пеест‡но‚ку и ‰у„ие компоненты, ‡ссмотенные ‚ пе‰ы‰ущих ‡з‰ел‡х. Рис. 5.12. Опе‡ции ‡збиениfl и объе‰инениfl с 8-бито‚ым сло‚ом Р‡ссе肇ние и пеемеш肇ние И‰еfl Шеннон‡ ‚ пе‰ст‡‚лении сост‡‚но„о шиф‡ ‰олжн‡ был‡ ‰‡ть ‚озможность блочным шиф‡м иметь ‰‚е ‚‡жных с‚ойст‚‡: ‡ссеflние и пеемеш肇ние. Р‡ссе肇ние ‰олжно скыть отношениfl меж‰у з‡шифнным текстом и исхо‰ным текстом. Это собьет с толку поти‚ник‡, котоый использует ст‡тистику з‡шифнно„о текст‡, чтобы н‡йти исхо‰ный текст. Р‡ссе肇ние пзум傇ет, что к‡ж‰ый сим‚ол (сим‚ол или бит) ‚ з‡шифнном тексте 燂исит от о‰но„о или ‚сех сим‚оло‚ ‚ исхо‰ном тексте. Ду„ими слми, если е‰инст‚енный сим‚ол ‚ исхо‰ном тексте изменен, несколько или ‚се сим‚олы ‚ з‡шифнном тексте бу‰ут т‡кже изменены. Р‡ссе肇ние скы‚‡ет отношениfl меж‰у з‡шифнным текстом и исхо‰ным текстом. И‰еfl относительно пеемеш肇ниfl — ‚ том, что оно ‰олжно скыть отношениfl меж‰у з‡шифнным текстом и ключом. Это собьет с толку поти‚ник‡, котоый стемитсfl использть з‡шифнный текст, чтобы н‡йти ключ. Ду„ими слми, если е‰инст‚енный бит ‚ ключе изменен, ‚се биты ‚ з‡шифнном тексте бу‰ут т‡кже изменены. Пеемеш肇ние скы‚‡ет отношениfl меж‰у з‡шифнным текстом и ключом. Р‡ун‰ы Р‡ссе肇ние и пеемеш肇ние мо„ут быть ‰ости„нуты с помощью пименениfl по‚тоениfl сост‡‚ных шифо‚, „‰е к‡ж‰‡fl ите‡циfl — комбин‡циfl S-блоко‚, Pблоко‚ и ‰у„их компоненто‚. ʇ扇fl ите‡циfl н‡зы‚‡етсfl ‡ун‰ом. Блочный шиф использует список ключей, или „ене‡то ключей, котоый со片ет ‡зличные ключи ‰лfl к‡ж‰о„о ‡у퉇 от ключ‡ шиф‡. В N-‡ун‰ном шифе, чтобы со片ть з‡шифнный текст, исхо‰ный текст шифуетсfl N ‡з; соот‚етст‚енно, з‡шифнный текст ‡сшифо‚ы‚‡етсfl N ‡з. Текст, со片нный н‡ помежуточных уо‚нflх (меж‰у ‰‚умfl ‡у퉇ми), н‡зы‚‡етсfl се‰ним текстом. Рисунок 5.13 пок‡зы‚‡ет постой сост‡‚ной шиф с ‰‚умfl ‡у퉇ми. Н‡ п‡ктике сост‡‚ные шифы имеют больше чем ‰‚‡ ‡у퉇. Н‡ ис. 5.13 ‚ к‡ж‰ом ‡ун‰е по‚о‰flтсfl ти пеоб‡зниfl: 1
Отбел肇ние (whiting) – поцесс по‚е‰ениfl опе‡ции, кото‡fl пиближ‡ет текст к ‡‚но‚еоflтному поfl‚лению ‚сех сим‚оло‚. Темин об‡зо‚‡н ‚ соот‚етст‚ии с поцессом пи‚е‰ениfl к «белому шуму» – си„н‡лу, имеющему ‡‚номеный спект. (пим. пее‚.) 159
Кус
Киптфиfl и безоп‡сность сетей
‡. 8-бито‚ый текст смеш肇етсfl с ключом, чтобы с‰ел‡ть сим‚олы текст‡ ‡‚но‚еоflтными (скыть биты, используfl ключ) — «отбелить» текст (whiting)1.
Это обычно ‰ел‡етсfl с помощью опе‡ции ИСКЛЮЧАЮЩЕЕ ИЛИ сл н‡ 8 бито‚ с ключом н‡ 8 бито‚; б. ‚ыхо‰ы «отбел肇телfl» ‡збиты н‡ четые „уппы по 2 бит‡ и пютсfl ‚ четые S-блок‡. Зн‡чениfl бито‚ изменflютсfl ‚ соот‚етст‚ии с постоением S-блоко‚ ‚ этом пеоб‡знии; c. ‚ыхо‰ы S-блоко‚ поступ‡ют ‚ P-блок, пи этом биты пеест‡‚лены т‡к, чтобы ‚ сле‰ующем ‡ун‰е езульт‡т к‡ж‰о„о блок‡ поступил н‡ ‡зличные ‚хо‰ы. Рис. 5.13. Сост‡‚нной шиф, состоflщий из ‰‚ух ‡ун‰о‚ Р‡ссе肇ние, котоое пок‡з‡но н‡ упощенном ис. 5.13 к‡к сост‡‚ной шиф, используfl комбин‡цию S-блоко‚ и P-блоко‚, может „‡‡нтить езульт‡т. ‡. В пе‚ом ‡ун‰е бит 8, после по‚е‰ениfl опе‡ции ИСКЛЮЧАЮЩЕЕ ИЛИ с соот‚етст‚ующими бит‡ми ключ‡ K1, изменflет ‰‚‡ бит‡ (биты 7 и 8) чеез S-блок 4. Бит 7 пеест‡‚лен и ст‡но‚итсfl битом 2; бит 8 пеест‡‚лен и ст‡но‚итсfl битом 4. После пе‚о„о ‡у퉇 бит 8 изменflет биты 2 и 4. Во ‚тоом ‡ун‰е бит 2 после по‚е‰ениfl опе‡ции ИСКЛЮЧАЮЩЕЕ ИЛИ с соот‚етст‚ующими бит‡ми ключ‡ K2 изменflет ‰‚‡ бит‡ (биты 1 и 160
Лекциfl 5
В‚е‰ение ‚ осно‚ы со‚еменных шифо‚ с симметичным ключом
2) чеез S-блок 1. Бит 1 – пеест‡‚лен и ст‡но‚итсfl битом 6; бит 2 пеест‡‚лен и ст‡но‚итсfl битом 1. Бит 4 после по‚е‰ениfl опе‡ции ИСКЛЮЧАЮЩЕЕ ИЛИ с соот‚етст‚ующим битом ‚ K2 изменflет биты 3 и 4. Бит 3 ост‡етсfl, бит 4 пеест‡‚лен и ст‡но‚итсfl битом 7. После ‚тоо„о ‡у퉇 из 8 бит изменены биты 1, 3, 6 и 7. b. Похож‰ение этих ш‡„о‚ ‚ ‰у„ом н‡п‡‚лении (от з‡шифнно„о текст‡ ‰о исхо‰но„о текст‡) пок‡зы‚‡ет, что к‡ж‰ый бит ‚ з‡шифнном тексте изменflет исхо‰ный текст н‡ несколько бито‚.
Пеемеш肇ние. Н‡ исунке 5.14 пок‡з‡но, к‡к изменение е‰инст‚енно„о бит‡ ‚ исхо‰ном тексте ‚ызы‚‡ет изменение мно„их бито‚ ‚ з‡шифнном тексте. Рисунок 5.14 т‡кже ‰ок‡зы‚‡ет н‡м, что с‚ойст‚о пеемеш肇ниfl может быть получено с помощью сост‡‚но„о шиф‡. Четые бит‡ з‡шифнно„о текст‡, биты 1, 3, 6 и 7 пеоб‡зны с помощью тех бито‚ ‚ ключ‡х (бит 8 ‚ K1 и бит‡х 2 и 4 ‚ K2). Похож‰ение ‚ об‡тном н‡п‡‚лении пок‡зы‚‡ет, что к‡ж‰ый бит ключ‡ ‚ к‡ж‰ом ‡ун‰е з‡т‡„肇ет несколько бито‚ ‚ з‡шифнном тексте. Отношениfl меж‰у бит‡ми з‡шифнно„о текст‡ и ключе‚ыми бит‡ми пок‡з‡ны ‚ з‡тененных пflмоу„ольник‡х. Рис. 5.14. Р‡ссе肇ние и пеемеш肇ние ‚ блочном шифе П‡ктические шифы. Чтобы улучшить ‡ссе肇ние и пеемеш肇ние, п‡ктические шифы используют купные блоки ‰‡нных, больше S-блоко‚ и больше ‡ун‰о‚. Оче‚и‰но, что некотоое у‚еличение числ‡ ‡ун‰о‚ пи пименении большо„о числ‡ S-блоко‚ может со片ть лучший шиф, ‚ котоом з‡шифнный текст ‚ы„лfl‰ит ‚се более к‡к случ‡йное n-бито‚ое сло‚о. Т‡ким об‡зом, отношениfl меж‰у з‡шифнным текстом и исхо‰ным текстом бу‰ут полностью скыты (‡ссеflны). У‚еличение числ‡ ‡ун‰о‚ у‚елич肇ет число ключей ‡ун‰о‚, что лучше скы‚‡ет отношениfl меж‰у з‡шифнным текстом и ключом. 161
Кус
Киптфиfl и безоп‡сность сетей
Д‚‡ кл‡сс‡ сост‡‚ных шифо‚ Все со‚еменные блочные шифы — сост‡‚ные, но они ‡з‰елены н‡ ‰‚‡ кл‡сс‡. Шифы ‚ пе‚ом кл‡ссе используют и об‡тимые, и необ‡тимые компоненты. Эти шифы упомин‡ютсfl обычно к‡к шифы Ф‡йстелfl. Блочный шиф DES (DATA ENCRYPTION STANDARD), обсу扇емый ‚ лекции 6, — хооший пиме шиф‡ Ф‡йстелfl. Шифы ‚о ‚тоом кл‡ссе пименflют только об‡тимые компоненты. Об‡щ‡ем ‚‡ше ‚ним‡ние н‡ шифы ‚ этом кл‡ссе к‡к шифы не-Ф‡й сте лfl 1 (из-з‡ от сут ст ‚иfl ‰у „о „о н‡ з‚‡ ниfl). Блоч ный шиф AES (ADVANCED ENCRYPTION STANDARD), обсу扇емый ‚ лекции 7, — хооший пиме шиф‡ не-Ф‡йстелfl. Шифы Ф‡йстелfl Ф‡йстель поектил очень интеллекту‡льный и интеесный шиф, котоый использлсfl ‚ течение мно„их ‰есflтилетий. Шиф Ф‡йстелfl может иметь ти тип‡ компоненто‚: с‡мооб‡тимый, об‡тимый и необ‡тимый. Шиф Ф‡йстелfl со‰ежит ‚ блок‡х ‚се необ‡тимые элементы и использует о‰ин и тот же мо‰уль ‚ ‡л„оитм‡х ‰ешифниfl и шифниfl. Вопос ‚ том, к‡к ‡л„оитмы шифниfl и ‰ешифниfl поз‚олflют ин‚етить от-
кытый и з‡кытый тексты ‰у„ ‚ ‰у„‡, если к‡ж‰ый со‰ежит необ‡тимый мо‰уль. Ф‡йстель пок‡з‡л, что они мо„ут быть сб‡л‡нсины. П傇fl и‰еfl. Чтобы лучше понflть шиф Ф‡йстелfl, ‰‡‚‡йте посмотим, к‡к мы можем использть о‰ин и тот же необ‡тимый компонент ‚ ‡л„оитм‡х ‰ешифниfl и шифниfl. Эффекты необ‡тимо„о компонент‡ ‚ ‡л„оитме шифниfl мо„ут быть отменены ‚ ‡л„оитме ‰ешифниfl, если мы пименflем опе‡цию ИСКЛЮЧАЮЩЕЕ ИЛИ, к‡к пок‡з‡но н‡ ис. 5.15. Рис. 5.15. П傇fl и‰еfl ‚ ‡з‡ботке шиф‡ Ф‡йстелfl
1
Хост Ф‡йстель – соту‰ник фимы IBM, ‡з‡бот‡‚ший ‚ 1977 „о‰у кипто‡л„оитм, котоый ле„ ‚ осно‚у ст‡н‰‡т‡ шифниfl ‚ США, шиоко из‚естно„о по‰ н‡з‚‡нием DES. 162
Лекциfl 5
В‚е‰ение ‚ осно‚ы со‚еменных шифо‚ с симметичным ключом
В шифнии ключ поступ‡ет н‡ ‚хо‰ необ‡тимой функции f (K), кото‡fl fl‚лflетсfl о‰ним из с뇄‡емых опе‡то‡ ИСКЛЮЧАЮЩЕГО ИЛИ с исхо‰ным текстом. Результ‡т ст‡но‚итсfl з‡шифнным текстом. Мы бу‰ем н‡зы‚‡ть комбин‡цию функции и опе‡ции ИСКЛЮЧАЮЩЕЕ ИЛИ смесителем (из-з‡ отсутст‚иfl ‰у„о„о н‡з‚‡ниfl). Смеситель 脇ет ‚‡жную оль ‚ более поз‰них ‚‡и‡нт‡х шиф‡ Ф‡йстелfl. Поскольку ключ о‰ин и тот же ‚ шифнии и ‰ешифнии, мы можем ‰ок‡з‡ть, что ‰‚‡ ‡л„оитм‡ ин‚есны ‰у„ ‰у„у. Ду„ими слми, если C2 = C1 (любое изменение ‚ з‡шифнном тексте ‚ течение пе則чи), то P2 = P1. Шифние: C1 = P1 ⊕ f (K) Дешифние: P2 = C2 ⊕ f (K) = C1 ⊕ f (K) = P1 ⊕ f (K) ⊕ f (K) = P1 ⊕ (00... 0) =P1 Об‡тите ‚ним‡ние, что использлись ‰‚‡ с‚ойст‚‡ опе‡ции ИСКЛЮЧАЮЩЕЕ ИЛИ (сущест‚ние ин‚есии и сущест‚ние нуле‚о„о к). У‡‚нениfl, пок‡з‡нные ‚ыше, ‰ок‡зы‚‡ют, что хотfl смеситель имеет некон‚етиуемый элемент, с‡м смеситель fl‚лflетсfl с‡мокон‚етиуемым. Пиме 5.12 Это ти‚и‡льный пиме. Имеетсfl исхо‰ный текст и з‡шифнный текст, к‡ж‰ый 4 бит‡ ‰линой, и ключ 3 бит‡ ‰линой. Пе‰положим, что функциfl из‚лек‡ет пе‚ый и тетий биты ключ‡, интепетиует биты к‡к ‰есflтичный номе, н‡хо‰ит ꂇ‰‡т это„о числ‡ и интепетиует езульт‡т к‡к 4-бито‚ую ‰‚оичную после‰о‚‡тельность. Пок‡жите езульт‡ты шифниfl и ‰ешифниfl, если пе‚он‡ч‡льный исхо‰ный текст — 0111, и ключ — 101. Решение Функциfl из‚лек‡ет пе‚ые и ‚тоые биты ключ‡ и получ‡етсfl ‚ езульт‡те 11 ‚ ‰‚оичном ‚и‰е или 3 ‚ ‰есflтичном отоб‡жении. Результ‡т ‚оз‚е‰ениfl ‚о ‚тоую степень (ꂇ‰‡т) — 9, ‚ ‰‚оичном отоб‡жении 1001. Шифние: C = P ⊕ f (K) = 0111 ⊕ 1001 = 1110 Дешифние: P = C ⊕ f (K) = 1110 ⊕ 1001 = 0111. Со‚ет с исхо‰ным текстом P Функциfl f (101) = 1001 fl‚лflетсfl некон‚етиуемой, но опе‡циfl ИСКЛЮЧАЮЩЕЕ ИЛИ поз‚олflет н‡м использть функцию и ‚ ‡л„оитм‡х ‰ешифниfl, и ‚ шифнии. Ду„ими слми, функциfl fl‚лflетсfl некон‚етиуемой, но смеситель бу‰ет с‡мокон‚етиуемым. Усо‚ешенст‚ние. Попобуем улучшить н‡шу пе‚ую и‰ею, чтобы пиблизитьсfl к шифу Ф‡йстелfl. Мы зн‡ем, что ‰олжны пименить ‚хо‰ к некон‚етиуемому элементу (функции), но мы не бу‰ем использть только ключ. Мы 燉ейст‚уем т‡кже ‚хо‰ к функции, чтобы пименить ее ‰лfl шифниfl ч‡сти исхо‰но„о текст‡ и ‰ешифниfl ч‡сти з‡шифнно„о текст‡. Ключ может использтьсfl к‡к ‚тоой ‚хо‰ к функции. Этим способом н‡ш‡ функциfl ст‡но‚итсfl сложным элементом с некотоыми неключе‚ыми элемент‡ми и некотоыми ключе‚ыми элемент‡ми. Чтобы ‰остичь цели, ‡з‰елим исхо‰ный текст и з‡шифнный текст н‡ 163
Кус
Киптфиfl и безоп‡сность сетей
Рис. 5.16. Усо‚ешенст‚ние пе‰ы‰ущей схемы Ф‡йстелfl ‰‚‡ блок‡ ‡‚ной ‰лины – ле‚ый (L) и ый (R). П‡‚ый блок ‚‚о‰итсfl ‚ функцию, ‡ ле‚ый блок ск뇉ы‚‡етсfl с помощью опе‡ции ИСКЛЮЧАЮЩЕЕ ИЛИ с ‚ыхо‰ом функции. Мы ‰олжны з‡помнить, что ‚хо‰ы к функции ‰олжны точно со‚‡ть ‚ шифнии и ‰ешифнии. Это озн‡ч‡ет, что ‡fl секциfl исхо‰но„о текст‡ ‰о шифниfl и ‡fl секциfl з‡шифнно„о текст‡ после ‰ешифниfl бу‰ут со‚‡ть. Ду„ими слми, секциfl ‰олжн‡ ‚ойти ‚ шифние и ‚ыйти из ‰ешифниfl неизмененной. Рисунок 5.16 иллюстиует и‰ею. Ал„оитмы шифниfl и ‰ешифниfl ин‚есны ‰у„ ‰у„у. Пе‰положим, что L3 = L2 и R3 = R2 (‚ з‡шифнном тексте ‚ течение пе則чи не поизошло изменений). R4 = R3 = R2 = R1 L4 = L3 ⊕ f(R3,K) = L2 ⊕ f (R2,K) = L1 ⊕ f(R1,K) ⊕ f (R1,K) = L1 Исхо‰ный текст, используемый ‚ ‡л„оитме шифниfl, — это текст, ильно ‚осст‡но‚ленный ‡л„оитмом ‰ешифниfl. Оконч‡тельный ‚‡и‡нт. Пе‰ы‰ущее усо‚ешенст‚ние имеет о‰ин не‰ост‡ток: ‡fl поло‚ин‡ исхо‰но„о текст‡ ник‡ не изменflетсfl. Е‚‡ может неме‰ленно н‡йти ую поло‚ину исхо‰но„о текст‡, ‡зб肇fl н‡ ч‡сти з‡шифнный текст и ‡сп‡ко‚ы‚‡fl е„о ую поло‚ину. Поект ну扇етсfl ‚ ‰‡льнейших ш‡„‡х усо‚ешенст‚ниfl. Пе‚ое: у‚еличим число ‡ун‰о‚. Втоое: ‰оᇂим но‚ый элемент ‚ к‡ж‰ый ‡ун‰ — устойст‚о з‡мены. Эффект устойст‚‡ з‡мены ‚ ‡ун‰е шифниfl компенсиуетсfl эффектом устойст‚‡ з‡мены ‚ ‡ун‰е ‰ешифниfl. О‰н‡ко это поз‚олflет н‡м менflть ле‚ые и ые поло‚ины ‚ к‡ж‰ом ‡ун‰е. Рисунок 5.17 иллюстиует но‚ый ‚‡и‡нт шиф‡ Ф‡йстелfl с ‰‚умfl ‡у퉇ми. Об‡тите ‚ним‡ние, что есть ‰‚‡ ключ‡ ‡ун‰о‚: K1 и K2. Ключи пименflютсfl ‚ об‡тном поfl‰ке ‚ шифнии и ‰ешифнии. Поскольку ‰‚‡ смесителfl ин‚есны ‰у„ ‰у„у и устойст‚‡ з‡мены ин‚есны ‰у„ ‰у„у, оче‚и‰но, что шифние и ‰ешифние т‡кже ин‚есны ‰у„ ‰у„у. О‰н‡ко мы можем ‰ок‡з‡ть этот ф‡кт, используfl отношениfl меж‰у ле‚ыми и ыми секциflми ‚ к‡ж‰ом шифе. Ду„ими слми, если L6 = L1 и R6 = R1, 164
Лекциfl 5
В‚е‰ение ‚ осно‚ы со‚еменных шифо‚ с симметичным ключом
Рис. 5.17. Оконч‡тельный ‚‡и‡нт шиф‡ Ф‡йстелfl с ‰‚умfl ‡у퉇ми пе‰положим, что L4 = L3 и R4 = R3 (шифнный текст не изменилсfl пи пе則че). Вн‡ч‡ле ‰ок‡жем это ‰лfl помежуточно„о текст‡: L5 = R4 ⊕ f (L 4, K2) = R3 ⊕ f (R2, K2 ) = L2 ⊕ f (R2, K2) ⊕ f (R2, K2) = L2 R5 = L4 = L3 = R 2 Т‡ посто ‰ок‡з‡ть ‡‚енст‚о ‰лfl ‰‚ух блоко‚ исхо‰но„о текст‡. L6 = R5 ⊕ f (L5, K1) = R2 ⊕ f (L2, K1 ) = L1 ⊕ f (R1, K1) ⊕ f (R1, K1) = L1 R6 = L5 = L2 = R 1 Шифы не-Ф‡йстелfl Шиф не-Ф‡йстелfl использует только об‡тимые компоненты. Компонент ‚ исхо‰ном тексте имеет соот‚етст‚ующий компонент ‚ шифе. Н‡пиме, Sблоки ‰олжны иметь ‡‚ное число ‚хо‰о‚ и ‚ыхо‰о‚, чтобы быть со‚местимыми. Не поз‚олflетсfl ник‡кое сж‡тие или ‡сшиение P-блоко‚, потому что они ст‡нут необ‡тимыми. В шифе не-Ф‡йстелfl нет потебности ‰елить исхо‰ный текст н‡ ‰‚е поло‚ины, к‡к мы ‚и‰ели ‚ шиф‡х Ф‡йстелfl. 165
Кус
Киптфиfl и безоп‡сность сетей
Рисунок 5.13 можно ‡ссм‡т肇ть к‡к „‡фическую иллюст‡цию пинцип‡ шиф‡ не-Ф‡йстелfl, потому что е‰инст‚енные компоненты ‚ к‡ж‰ом ‡ун‰е — с‡мооб‡тимые опе‡ции ИСКЛЮЧАЮЩЕЕ ИЛИ, S-блоки 2 × 2, котоые мо„ут быть споектины т‡к, чтобы быть об‡тимыми, и пflмые P-блоки, котоые об ‡ тимы, ес ли ис польз н‡ соот ‚ет ст ‚у ющ‡fl т‡б лиц‡ пеест‡но‚ки. Поскольку к‡ж‰ый компонент fl‚лflетсfl об‡тимым, можно пок‡з‡ть, что и к‡ж‰ый ‡ун‰ fl‚лflетсfl об‡тимым. Мы только ‰олжны пименflть ключи ‡ун‰о‚ ‚ об‡тном поfl‰ке. Шифние использует ключи ‡ун‰о‚ K1 и K2. Ал„оитм ‰ешифниfl ‰олжен пользтьсfl ключ‡ми ‡ун‰о‚ K2 и K1.
Ат‡ки н‡ блочные шифы Ат‡ки т‡‰иционных шифо‚ мо„ут т‡кже использтьсfl ‰лfl со‚еменных блочных шифо‚, но се„о‰нflшние блочные шифы успешно поти‚остоflт большинст‚у ‡т‡к, обсуж‰енных ‚ лекции 3. Н‡пиме, „уб‡fl силfl ‡т‡к‡ ключ‡, к‡к ило, неосущест‚им‡, потому что ключи обычно имеют очень большую ‰лину. О‰н‡ко н則‚но были изобетены некотоые но‚ые ‚и‰ы ‡т‡к блочных шифо‚, котоые оснны н‡ стуктуе со‚еменных блочных шифо‚. Эти ‡т‡ки используют мето‰ы и ‰иффеенци‡льно„о, и линейно„о ‡н‡лиз‡. Диффеенци‡льный кипто‡н‡лиз И‰ею относительно ‰иффеенци‡льно„о кипто‡н‡лиз‡ пе‰ложили Эли Бих‡м и А‰и Ш‡ми1. Это — ‡т‡к‡ с ‚ыбокой исхо‰но„о текст‡. Е‚‡ может к‡кимлибо об‡зом получить ‰оступ к компьютеу Алисы и 燂뇉еть ‚ыбоочно ч‡стью исхо‰но„о текст‡ и соот‚етст‚ующе„о з‡шифнно„о текст‡. Цель состоит ‚ том, чтобы н‡йти ключ шиф‡ Алисы. Ал„оитм ‡н‡лиз‡. Пее‰ тем к‡к Е‚‡ пе‰пимет ‡т‡ку с ‚ыбокой исхо‰но„о текст‡, он‡ ‰олжн‡ по‡н‡лизить ‡л„оитм шифниfl, чтобы соб‡ть некотоую инфом‡цию об отношениflх з‡шифнно„о и исхо‰но„о тексто‚. Оче‚и‰но, Е‚‡ не зн‡ет ключ шиф‡. О‰н‡ко некотоые шифы имеют сл‡бости ‚ стукту‡х, котоые мо„ут поз‚олить Е‚е н‡йти ‡зличиfl исхо‰но„о текст‡ и ‡зличиfl з‡шифнно„о текст‡, не зн‡fl ключ. Пиме 5.13
1
Эли Бих‡м (Eli Biham) и Э‰и Ш‡ми (Adi Shamir) — соту‰ники Из‡ильско„о Н‡учноИссле‰о‚‡тельско„о Институт‡ им. Вейцм‡н‡ — (Деп‡т‡мент м‡тем‡тики) пе‰ложили ‚ 1990 „о‰у ‰иффеенци‡льный мето‰ кипто‡н‡лиз‡. 166
Лекциfl 5
В‚е‰ение ‚ осно‚ы со‚еменных шифо‚ с симметичным ключом
Пе‰положим, что шиф состоит только из о‰ной опе‡ции ИСКЛЮЧАЮЩЕЕ ИЛИ, к‡к пок‡з‡но н‡ ис. 5.18. Не зн‡fl зн‡чениfl ключ‡, Е‚‡ может ле„ко
н‡йти отношениfl меж‰у ‡зностflми исхо‰но„о текст‡ и ‡зностflми з‡шифнно„о текст‡. Если ‡зность исхо‰но„о текст‡ мы обозн‡чим P1 ⊕ P2 и ‡зность з‡шифнно„о текст‡ мы обозн‡чим C1 ⊕ C2, пи‚е‰енные сле‰ующие пеоб‡зниfl ‰ок‡зы‚‡ют, что C1 ⊕ C2 = P1 ⊕ P2 : C1 = P1 ⊕ K C2 = P2 ⊕ K → C1 ⊕ C2 = P1 ⊕ K ⊕ P2 ⊕ K = P1 ⊕ P2 О‰н‡ко этот пиме нее‡листичен; мо‰емные блочные шифы не н‡столько посты. Рис. 5.18. Д臄‡мм‡ ‰лfl пиме‡ 5.13 Пиме 5.14 В пимее 5.13 мы ‰оᇂлflем о‰ин S-блок, к‡к пок‡з‡но н‡ ис. 5.19. Рис. 5.19. Д臄‡мм‡ ‰лfl пиме‡ 5.14
Хотfl эффект шифниfl ключом не ‰ейст‚ует, к‡ мы используем ‡зности меж‰у ‰‚умfl X и ‰‚умfl P (X1 ⊕ X2 = P1 ⊕ P2), сущест‚ние S-блок‡ меш‡ет Е‚е н‡йти и опе‰еленные отношениfl меж‰у ‡зностflми исхо‰но„о текст‡ и ‡зностflми з‡шифнно„о текст‡. О‰н‡ко ‚озможно уст‡но‚ить ‚еоflтностные отношениfl. Е‚‡ может сост‡‚ить т‡блицу 5.4, кото‡fl пок‡зы‚‡ет ‰лfl ‡зности исхо‰но„о текст‡, сколько можно со片ть ‡зностей з‡шифнно„о текст‡ — шиф. Об‡щ‡ем ‚ним‡ние, что т‡блиц‡ с‰ел‡н‡ по инфом‡ции, кото‡fl поиз‚е‰ен‡ с учетом т‡блицы ‚х-‚ых S-блок‡ по ис. 5.19, потому что P1 ⊕ P2 = X1 ⊕ X2 . 167
Кус
Киптфиfl и безоп‡сность сетей
Т‡блиц‡ 5.4. Диффеенци‡льн‡fl т‡блиц‡ ‰лfl ‚хо‰о‚ и ‚ыхо‰о‚ ‰лfl шиф‡ ‚ пимее 5.14 Поскольку ‡зме ключей — 3 бит‡, может быть ‚осемь случ‡е‚ ‰лfl к‡ж‰ой ‡зности ‚о ‚‚о‰е. Т‡блиц‡ пок‡зы‚‡ет, что если ‚хо‰н‡fl ‡зность — (000)2, ‡з-
ность ‚ых — ‚с儉‡ (00)2. С ‰у„ой стооны, т‡блиц‡ пок‡зы‚‡ет, что если ‚хо‰н‡fl ‡зность — (100)2, то имеетсfl ‰‚‡ случ‡fl ‡зностей ‚ых (00)2, ‰‚‡ случ‡fl ‡зностей ‚ых (01)2 и четые случ‡fl ‡зностей ‚ых (01)2 . Пиме 5.15 Э‚истический езульт‡т пиме‡ 5.14 может со片ть ‚еоflтностную инфом‡цию ‰лfl Е‚ы, к‡к пок‡з‡но ‚ т‡блице 5.5. Вхо‰ы ‚ т‡блице соот‚етст‚уют ‚еоflтностflм поfl‚лениfl. Р‡зности с нуле‚ой ‚еоflтностью ник‡ не бу‰ут ‚озник‡ть. Т‡блиц‡ 5.5. Диффеенци‡льн‡fl т‡блиц‡ ‚хо‰о‚ и ‚ыхо‰о‚ ‰лfl шиф‡ ‚ пимее 5.15 К‡к мы у‚и‰им позже, Е‚‡ тепеь ‡спо뇄‡ет ‰ост‡точным количест‚ом инфом‡ции, чтобы н‡ч‡ть ‡т‡ку. Т‡блиц‡ пок‡зы‚‡ет, что ‚еоflтности ‡спе‰елены нео‰ноо‰но из-з‡ сл‡бости ‚ стуктуе S-блок‡. Т‡блиц‡ 5.5 упомин‡етсfl ин‡ к‡к ‰иффеенци‡льн‡fl т‡блиц‡ ‡спе‰елениfl или поф‡йл ИСКЛЮЧАЮЩЕЕ ИЛИ. З‡пуск ‡т‡ки ‚ыбоки исхо‰но„о текст‡. После то„о к‡к ‡н‡лиз о‰н‡ж‰ы с‰ел‡н, он может быть сох‡нен ‰лfl бу‰уще„о использниfl, пок‡ стукту‡ шиф‡ не изменитсfl. Е‚‡ может ‚ыб‡ть ‰лfl ‡т‡к исхо‰ные тексты. Диффеенци‡льн‡fl т‡блиц‡ ‡спе‰елениfl ‚еоflтности (т‡блиц‡ 5.5) поможет Е‚е их ‚ыби‡ть — он‡ ‚озьмет те, котоые имеют с‡мую ‚ысокую ‚еоflтность ‚ т‡блице. Пе‰положительное зн‡чение ключ‡. После з‡пуск‡ некотоых ‡т‡к с соот‚етст‚ующей ‚ыбокой исхо‰но„о текст‡ Е‚‡ может н‡йти некотоую п‡у «исхо‰ный текст / з‡шифнный текст», кото‡fl поз‚олflет ей пе‰положить некотоое зн‡чение ключ‡. Поцесс н‡чин‡етсfl от C и п脇етсfl к P. Пиме 5.16 168
Лекциfl 5
В‚е‰ение ‚ осно‚ы со‚еменных шифо‚ с симметичным ключом
Р‡ссм‡т肇fl т‡блицу 5.5, Е‚‡ зн‡ет, что если P1 ⊕ P2= 001, то C1 ⊕ C2= 11 с ‚еоflтностью 0,50 (50 поценто‚). Он‡ побует ‚зflть C1 = 00 и получ‡ет P1 = 010 (‡т‡к‡ с ‚ыбокой з‡шифнно„о текст‡). Он‡ еще побует C2 = 11 и получ‡ет P2 = 011 (‰у„‡fl ‡т‡к‡ с ‚ыбокой з‡шифнно„о текст‡). Тепеь он‡ побует ‚енутьсfl к ‡н‡лизу, осннному н‡ пе‚ой п‡е, P1 и C1: С 1 = 00 → X1= 001 или X1= 111 Если X1= 001 → K = X1 ⊕ P1 =011. → Если X1= 111 → K = X1 ⊕ P1 =101 Используfl п‡у P2 и C2, получим С2 = 11 → X2 = 000 или X1= 110 Если X2 = 000 → K = X2 ⊕ P2 = 011 → Если X12 = 110 → K = X2 ⊕ P2 = 101 Д‚‡ испыт‡ниfl пок‡зы‚‡ют, что K = 011 или K =101. Хотfl Е‚‡ не у‚еен‡, к‡кое из них точное зн‡чение ключ‡, он‡ зн‡ет, что с‡мый ый бит — 1 (общий бит меж‰у ‰‚умfl зн‡чениflми). По‰олж‡fl ‡т‡ку, можно учиты‚‡ть, что с‡мый ый бит ‚ ключе – 1. Т‡ким об‡зом можно опе‰елить ‰у„ие биты ‚ этом ключе. Общ‡fl поце‰у‡. Со‚еменные блочные шифы имеют большую сложность, чем, т‡, котоую мы обсу扇ли ‚ этом ‡з‰еле. Коме то„о, они мо„ут со‰еж‡ть ‡зличное количест‚о ‡ун‰о‚. Е‚‡ может использть сле‰ующую ст‡те„ию. 1. Поскольку к‡ж‰ый ‡ун‰ со‰ежит о‰ни и те же опе‡ции, Е‚‡ может со片ть т‡блицу ‰иффеенци‡льных ‡спе‰елений (поф‡йл ИСКЛЮЧАЮЩЕГО ИЛИ) ‰лfl к‡ж‰о„о S-блок‡ и комбинить их, чтобы со片ть ‡спе‰еление ‰лfl к‡ж‰о„о ‡у퉇. 2. Пе‰положим, что к‡ж‰ый ‡ун‰ не燂исим (се‰ли‚ое пе‰положение). Е‚‡ может со片ть т‡блицу ‡спе‰елениfl ‰лfl ‚се„о шиф‡, умнож‡fl соот‚етст‚ующие ‚еоflтности. 3. Е‚‡ может тепеь с‰ел‡ть список исхо‰ных тексто‚ ‰лfl ‡т‡к, осннных н‡ т‡блице ‡спе‰елений н‡ ‚тоом ш‡„е. З‡метим, что т‡блиц‡ ‚ ш‡„е 2 только помет Е‚е ‚ыби‡ть меньшее количест‚о п‡ «исхо‰ный текст / з‡шифнный текст» 4. Е‚‡ ‚ыби‡ет з‡шифнный текст и н‡хо‰ит соот‚етст‚ующий исхо‰ный текст. З‡тем он‡ ‡н‡лизиует езульт‡т, чтобы н‡йти некотоые биты ‚ ключе. 5. Е‚‡ по‚тоflет ш‡„ 4, чтобы н‡йти больше бито‚ ‚ ключе. 6. После н‡хож‰ениfl ‰ост‡точно„о количест‚‡ бито‚ ‚ ключе Е‚‡ может использть ‡т‡ку „убой силы, чтобы н‡йти ‚есь ключ. Диффеенци‡льный кипто‡н‡лиз б‡зиуетсfl н‡ т‡блице нео‰ноо‰ных ‰иффеенци‡льных ‡спе‰елений, S-блоко‚ ‚ блочном шифе.
1
Митцуу М‡цуи (Mitsuru Matsui) — киптоло„, соту‰ник фимы Mitsubishi Electric Corporation (Япониfl). 169
Кус
Киптфиfl и безоп‡сность сетей
Более ‰ет‡льно ‰иффеенци‡льный кипто‡н‡лиз пи‚о‰итсfl ‚ Пиложении N.
Линейный кипто‡н‡лиз Линейный кипто‡н‡лиз был пе‰ст‡‚лен Митцуи М‡цуи (Mitsuru Matsui1) ‚ 1993 „о‰у. Ан‡лиз использует ‡т‡ки зн‡ниfl исхо‰но„о текст‡ (‚ отличии от ‡т‡к с ‚ыбокой исхо‰но„о текст‡ ‚ ‰иффеенци‡льном кипто‡н‡лизе). Полное обсуж‰ение этой ‡т‡ки б‡зиуетсfl н‡ некотоых понflтиflх теоии ‚еоflтностей, котоые н‡хо‰flтсfl з‡ ‡мк‡ми этой кни„и. Чтобы ‡ссмотеть „뇂ную и‰ею этой ‡т‡ки, пе‰положим, что шиф состоит из о‰но„о ‡у퉇, к‡к пок‡з‡но н‡ ис. 5.20, „‰е c0,с1 и c2 пе‰ст‡‚лflют ти бит‡ н‡ ‚ыхо‰е и x0, x1 и x2 пе‰ст‡‚лflют ти бит‡ н‡ ‚хо‰е S-блок‡. S-блок — линейное пеоб‡зние, ‚ котоом к‡ж‰ый ‚ы‚о‰ fl‚лflетсfl линейной функцией ‚‚, к‡к мы обсу扇ли ‡нее ‚ этой лекции. С этим линейным компонентом мы можем со片ть ти линейных у‡‚нениfl меж‰у исхо‰ным текстом и бит‡ми з‡шифнно„о текст‡, к‡к пок‡з‡но ниже: Рис. 5.20. Постой шиф с линейным S-блоком c0 = p0 ⊕ k0 ⊕ p1 ⊕ k1 c1 = p0 ⊕ k0 ⊕ p1 ⊕ k1 ⊕ p2 ⊕ k2 c2 = p1 ⊕ k1 ⊕ p2 ⊕ k2 Реш‡fl систему у‡‚нений ‰лfl тех неиз‚естных, мы получ‡ем k1= (p1) ⊕ ( c0 ⊕ c1 ⊕ c2) k2 = (p2) ⊕ ( c0 ⊕ c1) k0=(p0) ⊕ ( c1 ⊕ c2) Это озн‡ч‡ет, что ти ‡т‡ки тип‡ «зн‡ниfl исхо‰но„о текст‡» мо„ут н‡йти зн‡чениfl k1, и k2 . О‰н‡ко е‡льные блочные шифы не т‡к посты, к‡к этот; они имеют больше компоненто‚, и S-блоки не линейны. 170
Лекциfl 5
В‚е‰ение ‚ осно‚ы со‚еменных шифо‚ с симметичным ключом
Линейн‡fl ‡ппоксим‡циfl. В некотоых со‚еменных блочных шиф‡х может случитьсfl, что некотоые S-блоки не полностью нелинейные; т‡ они мо„ут быть ‚ ‚еоflтностном смысле ‡ппоксимины некотоыми линейными функциflми. Вообще, 燉‡‚‡fl исхо‰ный и з‡шифнный текст ‚ n бит и ключ m бит, мы ищем некотоые у‡‚нениfl, имеющие ‚и‰ (k0 ⊕ k1 ⊕ ... ⊕ kx) = (p0 ⊕ p1 ⊕ ... ⊕ py) ⊕ (c0 ⊕ c1 ⊕ ... ⊕ cz) „‰е 1 ≤ x ≤ m, 1 ≤ y ≤ n и 1 ≤ z ≤ n. Биты ‚ пеех‚‡ченных исхо‰ном тексте и з‡шифнном тексте мо„ут быть использны ‰лfl то„о чтобы н‡йти биты ключ‡.
Длfl то„о, чтобы ‰ости„нуть эффекти‚ности, к‡ж‰ое у‡‚нение ‰олжно быть с‚flз‡но с ‚еоflтностью1/2 + ε, „‰е ε н‡з‚‡етсfl по„ешность. У‡‚нение, „‰е ε больше, эффекти‚нее чем у‡‚нение с м‡лым зн‡чением ε. Более ‰ет‡льно линейный кипто‡н‡лиз ‰‡н ‚ пиложении N.
5.2. Со‚еменные шифы поток‡ В лекции 3 мы к‡тко обсу扇ли ‡зницу меж‰у т‡‰иционными шиф‡ми поток‡ и т‡‰иционными блочными шиф‡ми. По‰обные отличиfl сущест‚уют т‡кже меж‰у со‚еменными шиф‡ми поток‡ и со‚еменными блочными шиф‡ми. В со‚еменном шифе поток‡ шифние и ‰ешифние r бит по‚о‰flтсfl о‰но‚еменно. Мы имеем поток бит исхо‰но„о текст‡ P = pn… p2p1 , поток бит з‡шифнно„о текст‡ C = cn ... c2 c1, и ключе‚ой поток бит K = k n ... k2k1, ‚ котоых pi ci, и ki — это r-битные сл. Шифние — ci = E (ki,pi), и ‰ешифние — pi = D (ki, ci), к‡к пок‡зы‚‡ет ис. 5.21. Рис. 5.21. Шиф поток‡ Шифы поток‡ быстее, чем блочные шифы. Аптн‡fl е‡лиз‡циfl шиф‡ поток‡ т‡кже более пост‡. К‡ мы ‰олжны з‡шифть ‰‚оичные потоки и пе則ть их н‡ постоflнной скоости, лучший ‚ыбо — использть шиф поток‡. Шифы поток‡ об뇉‡ют большей з‡щитой поти‚ иск‡жениfl бито‚ ‚ течение пе則чи.
171
Кус
Киптфиfl и безоп‡сность сетей
В со‚еменном шифе поток‡ к‡ж‰ое r-бито‚ое сло‚о ‚ потоке исхо‰но„о текст‡ з‡шифно, используfl r-бито‚ое сло‚о ‚ ключе‚ом потоке, чтобы со片ть соот‚етст‚ующее r-бито‚ое сло‚о ‚ потоке з‡шифнно„о текст‡. Р‡ссм‡т肇fl ис. 5.21, можно пе‰положить, что „л‡‚н‡fl поблем‡ ‚ со‚еменных шиф‡х поток‡ — к‡к „енеить ключе‚ой поток K = kn….. k2k1. Со‚еменный шиф поток‡ можно ‡з‰елить н‡ ‰‚е обшиные к‡те„оии: синхонный и несинхонный.
Синхонные шифы поток‡ В синхонном шифе поток‡ ключе‚ой поток не燂исим от поток‡ з‡шифнно„о текст‡ или исхо‰но„о текст‡. Генеиуемый ключе‚ой поток не имеет
ник‡кой с‚flзи меж‰у ключе‚ыми бит‡ми и исхо‰ным текстом или бит‡ми з‡шифнно„о текст‡. В синхонном шифе поток‡ ключ не燂исим от исхо‰но„о текст‡ или з‡шифнно„о текст‡. О‰но‡зо‚ый блокнот Н‡иболее постой и с‡мый безоп‡сный тип синхонно„о шиф‡ поток‡ н‡з‚‡н шифом о‰но‡зо‚о„о блокнот‡, или, по имени изобет‡телfl, «шифом Вен‡м‡1». Шиф о‰но‡зо‚о„о блокнот‡ использует ключе‚ой поток, котоый беспоfl‰очно ‚ыб‡н ‰лfl к‡ж‰ой шифо‚ки. Ал„оитмы шифниfl и ‰ешифниfl пименflют е‰инст‚енную опе‡цию — ИСКЛЮЧАЮЩЕЕ ИЛИ. Шифы, котоые б‡зиуютсfl н‡ с‚ойст‚‡х опе‡ции ИСКЛЮЧАЮЩЕЕ ИЛИ, обсу扇лись ‡нее. В них ‡л„оитмы шифниfl и ‰ешифниfl ин‚есны ‰у„ ‰у„у. В‡жно, что ‚ этом шифе опе‡циfl ИСКЛЮЧАЮЩЕЕ ИЛИ используетсfl только ‰лfl о‰но„о бит‡ о‰но‚еменно. Ду„ими слми, опе‡циfl поиз‚о‰итсfl 퇉 сло‚ом не более чем из о‰но„о бит‡ и полем GF (2). З‡метим, что т‡кже нужно иметь безоп‡сный к‡н‡л ‰лfl то„о, чтобы Алис‡ мо„л‡ пе則ть ключе‚ую после‰о‚‡тельность поток‡ Бобу (ис. 5.22). 1
Систем‡ симметично„о шифниfl, изобетенн‡fl ‚ 1917 „о‰у соту‰ник‡ми AT&T Гильбетом Вен‡мом и Ме‰жеом Джозефом Мобоном. 172
Лекциfl 5
В‚е‰ение ‚ осно‚ы со‚еменных шифо‚ с симметичным ключом
Рис. 5.22. О‰но‡зо‚ый блокнот О‰но‡зо‚ый блокнот — и‰е‡льный шиф. Он со‚ешенен. Нет мет, котоый ‰‡л бы поти‚нику ‚озможность ‡спозн‡ть ключ или ст‡тистику з‡шифнно„о текст‡ и исхо‰но„о текст‡. Нет ник‡ких соотношений меж‰у исхо‰ным и з‡шифнным текст‡ми. Ду„ими слми, з‡шифнный текст – н‡стоflщий случ‡йный поток бито‚, ‰‡же если получить некотоые об‡зцы исхо‰но„о текст‡. Е‚‡ не может н‡ушить шиф, если он‡ не попобует ‚се ‚озможные случ‡йные ключе‚ые потоки, котоые были бы 2n, если ‡зме исхо‰но„о текст‡ — nбито‚ый. О‰н‡ко пи этом есть поблем‡. Пе則тчик и пиемник ‰лfl то„о, чтобы со‚местно использть о‰но‡зо‚ый блокнот ключей, ‰олжны уст‡н‡‚л肇ть сое‰инение к‡ж‰ый ‡з, к‡ они хотflт обменflтьсfl инфом‡цией. Они ‰олжны, т‡к или ин‡че, ‰о„о‚оитьсfl о случ‡йном ключе. Т‡к что этот со‚ешенный и и‰е‡льный шиф очень ту‰но е‡лизть. Пиме 5.17 К‡кой ‚и‰ имеет з‡шифнный текст пи использнии шиф‡ о‰но‡зо‚о„о блокнот‡ ‚ к‡ж‰ом из сле‰ующих случ‡е‚? ‡. Исхо‰ный текст состоит из n нулей. б. Исхо‰ный текст состоит из n е‰иниц. ‚. Исхо‰ный текст состоит из чее‰ующихсfl нулей и е‰иниц. „. Исхо‰ный текст — случ‡йн‡fl сточк‡ бит. Решение
a. Поскольку 0 ⊕ ki = k i, поток з‡шифнно„о текст‡ со‚ет с ключе‚ым потоком. Если ключ случ‡йный, з‡шифнный текст т‡кже случ‡йный. Оты‚ки исхо‰но„о текст‡ ‚ з‡шифнном тексте не сох‡нflютсfl. – – b. Поскольку 1 ⊕ ki = ki, „‰е ki fl‚лflетсfl ‰ополнением, поток з‡шифнно„о текст‡ — ‰ополнение ключе‚о„о поток‡. Если ключе‚ой поток случ‡й173
Кус
Киптфиfl и безоп‡сность сетей
ный, то з‡шифнный текст т‡кже случ‡йный, оты‚ки исхо‰но„о текст‡ не сох‡нflютсfl ‚ з‡шифнном тексте. c. В этом случ‡е к‡ж‰ый бит ‚ потоке з‡шифнно„о текст‡ fl‚лflетсfl или тем же с‡мым, что и ‚ ключе‚ом потоке, или е„о ‰ополнением. Поэтому езульт‡т — т‡кже случ‡йный, если ключе‚ой поток случ‡йный. d. В ‰‡нном случ‡е з‡шифнный текст fl‚но случ‡йный, потому что по‚е‰ение опе‡ции ИСКЛЮЧАЮЩЕЕ ИЛИ ‰‚ух случ‡йных бито‚ ‚ езульт‡те ‰‡ет случ‡йный поток бит. Ре„ист с‰‚脇 с об‡тной с‚flзью Имеетсfl о‰но усо‚ешенст‚ние к о‰но‡зо‚ому блокноту — Ре„ист с‰‚脇 с об‡тной с‚flзью (FSR — Feedback Shift Register). FSR может быть е‡лизн или ‚ пммном обеспечении, или ‚ ‡птных се‰ст‚‡х, но ‰лfl постоты мы ‡ссмотим ‡птную е‡лиз‡цию. Ре„ист с‰‚脇 с об‡тной с‚flзью состоит из е„ист‡ с‰‚脇 и функции об‡тной с‚flзи, к‡к пок‡з‡но н‡ ис. 5.23. Рис. 5.23. Ре„ист с‰‚脇 с об‡тной с‚чзью (FSR) Ре„ист с‰‚脇 – после‰о‚‡тельность из m flчеек от b0 ‰о bm-1, „‰е к‡ж‰‡fl flчейк‡ пе‰н‡зн‡чен‡ ‰лfl сох‡нениfl е‰инст‚енно„о бит‡. Ячейки ‡ссм‡т肇ютсfl к‡к n-бито‚ое сло‚о, н‡зы‚‡емое ‚ н‡ч‡ле «н‡ч‡льное зн‡чение» или источник. Всflкий ‡з, к‡ необхо‰имо получить бит н‡ ‚ыхо‰е (н‡пиме, по си„н‡лу ‚ опе‰еленное ‚емfl), к‡ж‰ый бит с‰‚脇етсfl н‡ о‰ну flчейку ‚о. Это озн‡ч‡ет, что зн‡чение к‡ж‰ой flчейки пис‚‡и‚‡етсfl ой сосе‰ней flчейке и пиним‡ет зн‡чение ле‚ой flчейки. С‡м‡fl ‡fl flчейк‡ b0 счит‡етсfl ‚ыхо‰ом и ‰‡ет ‚ыхо‰ное зн‡чение (ki). К‡йнflfl л傇fl flчейк‡, bm-1, получ‡ет с‚ое зн‡чение со„л‡сно зн‡чению инфом‡ции функции об‡тной с‚flзи. Обозн‡ч‡ем ‚ыхо‰ функции с инфом‡цией об‡тной с‚flзи bm. Функциfl инфом‡ции об‡тной с‚flзи опе‰елflет, к‡кие зн‡чениfl имеют flчейки, чтобы ‚ычислить bm. Ре„ист с‰‚脇 инфом‡ции об‡тной с‚flзи может быть линейный или нелинейный.
Ре„ист с‰‚脇 с линейной об‡тной с‚flзью (LFSR). Пимем, что b m — это линейн‡fl функциfl b0, b1,…..., bm-1, ‰лfl котоой bm = cm-1 bm-1 + ......+c2b2 =c1b1 =c0b0 (c0 • 0) Линейный е„ист с‰‚脇 с об‡тной с‚flзью ‡бот‡ет с ‰‚оичными циф‡ми, поэтому умножение и сложение н‡хо‰flтсfl ‚ поле GF(2), т‡к что зн‡чение ci fl‚лflетсfl или 1, или 0, но c0 ‰олжно быть 1, чтобы получить инфом‡цию об‡т174
Лекциfl 5
В‚е‰ение ‚ осно‚ы со‚еменных шифо‚ с симметичным ключом
ной с‚flзи н‡ ‚ыхо‰е. Опе‡циfl сложениfl – это опе‡циfl ИСКЛЮЧАЮЩЕЕ ИЛИ. Ду„ими слми,
bm = cm-1 bm-1 ⊕ ...... ⊕ c2b2 ⊕ c1b1 ⊕ c0b0 (c0 ≠ 0) Пиме 5.18 Постоим линейный е„ист с‰‚脇 с об‡тной с‚flзью с 5-ю flчейк‡ми, ‚ котоых b5 = b4 ⊕ b2 ⊕ b0. Решение Если сi = 0, bi не 脇ет оли ‚ ‚ычислении bm, то это озн‡ч‡ет, что bi не с‚flз‡н с функцией инфом‡ции об‡тной с‚flзи. Если c i = 1, bi ‚ключ‡етсfl ‚ ‚ычис-
ление bm. В этом пимее c1 и c3 — нули, это озн‡ч‡ет, что мы имеем только ти по‰ключениfl. Рисунок 5.24 пок‡зы‚‡ет схему линейно„о е„ист‡ с‰‚脇 с об‡т175
Кус
Киптфиfl и безоп‡сность сетей
ной с‚flзью. Рис. 5.24. Линейный е„ист с‰‚脇 с об‡тной с‚flзью Пиме 5.19 Постоим линейный е„ист с‰‚脇 с об‡тной с‚flзью с 4-мfl flчейк‡ми, ‚ котоых b4 = b1 ⊕ b0. Пок‡жите зн‡чение е„ист‡ после 20 опе‡ций (с‰‚и„о‚), если исхо‰ное зн‡чение — (0001)2. Решение Рисунок 5.25 пок‡зы‚‡ет схему и использние линейно„о е„ист‡ с‰‚脇 с об‡тной с‚flзью ‰лfl шифниfl. Рис. 5.25. Линейный е„ист с‰‚脇 с об‡тной с‚flзью ‰лfl пиме‡ 5.19 Т‡блиц‡ 5.6. пок‡зы‚‡ет зн‡чение поток‡ ключей. Длfl к‡ж‰о„о пеех сн‡ч‡л‡ ‚ычислflетсfl зн‡чение b4, ‡ з‡тем к‡ж‰ый бит с‰‚脇етсfl н‡ о‰ну flчейку ‚о. Т‡блиц‡ 5.6. Зн‡чение и после‰о‚‡тельность ключей ‰лfl пиме‡ 5.18. З‡метим, что поток ключей — 1000100110101111 1001…… . Он ‚ы„лfl‰ит, н‡ пе‚ый ‚з„лfl‰, к‡к случ‡йн‡fl после‰о‚‡тельность, но если посмотеть большое число т‡нз‡кций (с‰‚и„о‚), мы можем у‚и‰еть, что после‰о‚‡тельности пеио‰ичны. Это по‚тоение по 15 бит пок‡з‡но ниже. 1000100110101111 000100110101111 000100110101111 000100110101111 Ключ поток‡ „енеиует с помощью линейно„о е„ист‡ с‰‚脇 с об‡тной с‚flзью пс傉ослуч‡йную после‰о‚‡тельность, ‚ котоой по‚тоflютсfl после‰о‚‡тельности ‰линою N. Поток пеио‰ичен. Он 燂исит от схемы „ене‡то‡ и н‡ч‡льной инфом‡ции и может быть не с‚ыше 2m – 1. ʇ扇fl схем‡ поо扇ет mбито‚ые после‰о‚‡тельности от со‰еж‡щих ‚се нули ‰о со‰еж‡щих ‚се е‰иницы. О‰н‡ко если н‡ч‡льн‡fl после‰о‚‡тельность состоит только из нулей, езульт‡т бесполезен — исхо‰ный текст был бы потоком из о‰них нулей. Поэтому т‡к‡fl н‡ч‡льн‡fl после‰о‚‡тельность исключен‡. М‡ксим‡льный пеио‰ после‰о‚‡тельностей, котоые „енеиуютсfl с помощью линейно„о е„ист‡ с‰‚脇 с об‡тной с‚flзью, — 2m – 1. В пе‰ы‰ущем пимее м‡ксим‡льный пеио‰ — (24 – 1 = 15). Чтобы ‰остичь этой м‡ксим‡льной пеио‰ичности (н‡илучшей ‡н‰омиз‡ции), мы ‰олжны ‚ пе‚ую очее‰ь пе‰ст‡‚ить функцию об‡тной с‚flзи к‡к х‡‡ктеистический полином с коэффициент‡ми ‚ поле GF(2). bm = cm-1bm-1 +…..+ c1b1 + c0b0 → xm = cm-1xm-1 +…..+ c1x1 + c0x0 176
Лекциfl 5
В‚е‰ение ‚ осно‚ы со‚еменных шифо‚ с симметичным ключом
Поскольку сложение и ‚ычит‡ние ‚ этом поле о‰ни и те же, ‚се элементы мо„ут быть пеенесены ‚ о‰ну стоону, что ‰‡ет полином степени m. (н‡зы‚‡емый х‡‡ктеистическим полиномом). xm + cm-1xm-1 +…..+ c1x1 + c0x0 = 0 Линейный е„ист с‰‚脇 с об‡тной с‚flзью имеет м‡ксим‡льный пеио‰ 2m–1, если он имеет четное число flчеек, и х‡‡ктеистический полином — пимити‚ный полином. Пимити‚ный полином — непи‚о‰имый полином, котоый fl‚лflетсfl ‰елителем xe –1, „‰е e — н‡именьшее целое число ‚ фоме e = 2k–1 и k ≥ 2. Пимити‚ный полином получить неле„ко. Полином ‚ыби‡етсfl случ‡йно, ‡ з‡тем по‚еflетсfl н‡ пимити‚ность. О‰н‡ко сущест‚уют т‡блицы по‚еенных пимити‚ных полиномо‚ (см. пиложение G). Пиме 5.20 Х‡‡ктеистический полином ‰лfl линейно„о е„ист‡ с‰‚脇 с об‡тной с‚flзью ‚ пимее 5.19 — (x4 + x + 1) — fl‚лflетсfl пимити‚ным полиномом. Т‡блиц‡ 4.4 (лекциfl 4) пок‡зы‚‡ет, что это — непи‚о‰имый полином. Этот полином т‡кже ‰елит (x7 + 1) = (x4 + x + 1) (x3 + 1), что озн‡ч‡ет e = 23 –1 = 7. Ат‡ки шифо‚, полученных с помощью линейных е„исто‚ с‰‚脇 с об‡тной с‚flзью. Линейный е„ист с‰‚脇 с об‡тной с‚flзью имеет очень постую стуктуу, но эт‡ постот‡ ‰ел‡ет шиф уflз‚имым к ‡т‡к‡м. Д‚‡ общих тип‡ ‡т‡ки пи‚е‰ены ниже. 1. Если стукту‡ линейно„о е„ист‡ с‰‚脇 с об‡тной с‚flзью из‚естн‡, то после пеех‚‡т‡ и ‡н‡лиз‡ о‰но„о n-бито‚о„о куск‡ з‡шифнно„о текст‡ Е‚‡ может пе‰ск‡з‡ть ‚се бу‰ущие з‡шифнные тексты. 2. Если стукту‡ линейно„о е„ист‡ с‰‚脇 с об‡тной с‚flзью неиз‚естн‡, Е‚‡ может использть ‡т‡ку зн‡ниfl исхо‰но„о текст‡ ‰линой 2n бит, чтобы ‚скыть шиф. Ре„ист с‰‚脇 с нелинейной об‡тной с‚flзью (NLFSR). Линейный е„ист с‰‚脇 с об‡тной с‚flзью уflз‚им „л‡‚ным об‡зом из-з‡ е„о линейности. Более устойчи‚ый шиф поток‡ может быть получен пи использнии нелинейно„о е„ист‡ с‰‚脇 с об‡тной с‚flзью. Он имеет ту же стуктуу, что и линейный е„ист с‰‚脇 с об‡тной с‚flзью, з‡ исключением то„о, что bm — нелинейн‡fl функциfl b0,b1, ….,bm. Н‡пиме, ‚ 4-битном нелинейном е„исте с‰‚脇 с об‡тной с‚flзью стукту‡ опе‰елflетсfl соотношением, пок‡з‡нным ниже, „‰е опе‡циfl AND озн‡ч‡ет по‡зfl‰ную опе‡цию И, ‡ OR озн‡ч‡ет по‡зfl‰ную опе‡цию ИЛИ. Четочк‡ н‡‰ пееменной озн‡ч‡ет ин‚есию. – b4 = (b3 AND b2) or (b1 AND b0) О‰н‡ко нелинейный е„ист с‰‚脇 с об‡тной с‚flзью не имеет обще„о х‡‡кте‡, поскольку нет м‡тем‡тическо„о обоснниfl, к‡к получить т‡кой е„ист с м‡ксим‡льным пеио‰ом. 177
Кус
Киптфиfl и безоп‡сность сетей
Можно пименить линейный е„ист с‰‚脇 с об‡тной с‚flзью с м‡ксим‡льным пеио‰ом и з‡тем скомбинить е„о об‡тную с‚flзь с помощью нелинейной функции.
Несинхонные шифы поток‡ В несинхонном шифе поток‡ к‡ж‰ый ключ ‚ ключе‚ом потоке 燂исит от пе‰ы‰уще„о исхо‰но„о текст‡ или з‡шифнно„о текст‡. В несинхонном шифе поток‡ ключ 燂исит либо от исхо‰но„о текст‡, либо от з‡шифнно„о текст‡. Д‚‡ мет, котоые используютсfl, чтобы со片ть ‡зличные ежимы ‡боты ‰лfl блочных шифо‚ (ежим об‡тной с‚flзи по ‚ыхо‰у и ежим счет‡ сцеплений блоко‚ шиф‡), ф‡ктически со片ют шифы поток‡ (см. лекцию 8).
5.3. Рекомен‰о‚‡нн‡fl лите‡ту‡ Нижесле‰ующие кни„и и с‡йты ‰‡ют более ‰ет‡льные с‚е‰ениfl по обсу扇емым ‚опос‡м, котоые ‡ссмотены ‚ этой лекции. Ссылки, помещенные ‚ скобки, пи‚е‰ены ‚ списке ‚ конце кни„и.
Кни„и [Sti06] и [PHS03] со‰еж‡т полные с‚е‰ениfl о P-блок‡х и S-блок‡х. Поточные шифы тщ‡тельно ‡ссмотены ‚ [Sch99] и [Sal03]. [Sti06], [PHS03] и [Vau06] — полный и интеесный ‡н‡лиз ‰иффеенци‡льно„о и линейно„о кипто‡н‡лиз‡.
С‡йты Нижесле‰ующие с‡йты ‰‡ют более по‰обную инфом‡цию о тем‡х, обсуж‰енных ‚ этой лекции. http://en.wikipedia.org/wiki/FeisteL_cipher http://www.quadibloc.com/crypto/co040906.htm tigger.uic.edu/~jleon/mcs425-s05/handouts/feistal-diagram.pdf
5.4. Ито„и • Т‡‰иционные шифы с симметичным ключом — шифы, оиентинные н‡ сим‚ол. С поfl‚лением компьюте‡ ст‡ли нужны шифы, оиентинные н‡ биты. • Со‚еменный симметичный ключе‚ой блочный шиф з‡шифо‚ы‚‡ет n-битный блок исхо‰но„о текст‡ или ‡сшифо‚ы‚‡ет n-бито‚ый блок з‡шифнно„о текст‡. Ал„оитмы шифниfl или ‰ешифниfl используют k-битные ключи. 178
Лекциfl 5
В‚е‰ение ‚ осно‚ы со‚еменных шифо‚ с симметичным ключом
• Со‚еменный блочный шиф может быть споектин т‡к, чтобы ‰ейст‚ть к‡к шиф по‰ст‡но‚ки или шиф т‡нспозиции. О‰н‡ко чтобы быть стойким к ‡т‡ке исчепы‚‡юще„о поиск‡, со‚еменный блочный шиф ‰олжен быть споектин к‡к шиф по‰ст‡но‚ки. • Со‚еменные блочные шифы — обычно ключе‚ые шифы по‰ст‡но‚ки, ‚ котоых ключ п‡ктически поз‚олflет отоб‡жение ‚сех ‚озможных ‚хо‰о‚ ‚о ‚се ‚озможные ‚ыхо‰ы. • Со‚еменный блочный шиф состоит из комбин‡ции P-блоко‚, мо‰улей по‰ст‡но‚ки, S-блоко‚ и некотоых ‰у„их мо‰улей. • P-блок (блок пеест‡но‚ки) по‰обен т‡‰иционному шифу т‡нспозиции ‰лfl сим‚оло‚. Есть ти тип‡ P-блоко‚: пflмые P-блоки, P-блоки ‡сшиениfl и P-блоки сж‡тиfl. • S-блок (блок по‰ст‡но‚ки) можно пе‰ст‡‚ить себе к‡к м‡ленький блок шиф‡ по‰ст‡но‚ки. О‰н‡ко ‚ S-блоке может быть ‡зличное число ‚хо‰о‚ и ‚ыхо‰о‚. • Опе‡циfl ИСКЛЮЧАЮЩЕЕ ИЛИ — ‚‡жный компонент ‚ большинст‚е блочных шифо‚: он‡ пе‰ст‡‚лflет опе‡ции сложениfl или ‚ычит‡ниfl ‚ поле GF (2). • В со‚еменных блочных шиф‡х ч‡сто пименflетсfl опе‡циfl циклическо„о с‰‚脇, ‚ котоой смещение может быть ‚ле‚о или ‚п‡‚о. Опе‡циfl пеест‡но‚ки — специ‡льный случ‡й опе‡ции циклическо„о с‰‚脇, „‰е k = n/2. Д‚е ‰у„их опе‡ции, пименflемые ‚ некотоых блочных шиф‡х, — ‡збиение и комбининие. • Шеннон ‚‚ел понflтие сост‡‚но„о шиф‡. Сост‡‚ной шиф — сложный шиф, объе‰инflющий S-блоки, P-блоки и ‰у„ие компоненты, чтобы ‰ости„нуть ‡ссе肇ниfl и пеемеш肇ниfl. Р‡ссе肇ние скы‚‡ет отношениfl меж‰у исхо‰ным текстом и з‡шифнным текстом, пеемеш肇ние скы‚‡ет отношениfl меж‰у ключом шиф‡ и з‡шифнным текстом. • Со‚еменные блочные шифы — ‚се сост‡‚ные шифы, но они ‡з‰елены н‡ ‰‚‡ кл‡сс‡: шифы не-Ф‡йстлfl и шифы Ф‡йстелfl. Шифы Ф‡йстелfl используют и об‡тимые, и необ‡тимые компоненты. Шифы неФ‡йстлfl используют только об‡тимые компоненты. • Некотоые но‚ые ‡т‡ки блочных шифо‚ б‡зиуютсfl н‡ стуктуе со‚еменных шифо‚. Эти ‡т‡ки используют ‰иффеенци‡льные и линейные мето‰ы кипто‡н‡лиз‡ • В со‚еменном шифе поток‡ к‡ж‰ое сло‚о r-бит‡ ‚ потоке исхо‰но„о текст‡ з‡шифно, ‰лfl че„о используетсfl r-бито‚ое сло‚о ‚ потоке ключей, чтобы со片ть соот‚етст‚ующее r-бито‚ое сло‚о ‚ потоке з‡шифнно„о текст‡. Со‚еменные шифы поток‡ мо„ут быть ‡з‰елены н‡ ‰‚е обшиные к‡те„оии: синхонные шифы поток‡ и несинхонный шиф поток‡ ‚ синхонном шифе поток‡. В пе‚ом случ‡е ключе‚ой поток не燂исим от поток‡ з‡шифнно„о текст‡ или исхо‰но„о текст‡. В несинхонном шифе поток‡ ключе‚ой поток 燂исит от исхо‰но„о текст‡ или поток‡ з‡шифнно„о текст‡. 179
Кус
Киптфиfl и безоп‡сность сетей
• С‡мый постой и с‡мый безоп‡сный тип синхонно„о шиф‡ поток‡ н‡з‚‡н о‰но‡зо‚ым блокнотом. Шиф о‰но‡зо‚о„о блокнот‡ использует ключе‚ой поток ключей, котоый ‚ыб‡н беспоfl‰очно ‰лfl к‡ж‰о„о шифниfl. Ал„оитмы шифниfl и ‰ешифниfl пименflют опе‡цию ИСКЛЮЧАЮЩЕЕ ИЛИ. Шиф о‰но‡зо‚о„о блокнот‡ неу‰обен н‡ п‡ктике, потому что ключ ‰олжен быть ин‰и‚и‰у‡льным ‰лfl к‡ж‰о„о се‡нс‡ с‚flзи. О‰ин из компомиссных ‚‡и‡нто‚ о‰но‡зо‚о„о блокнот‡ — е„ист с‰‚脇 с об‡тной с‚flзью (FSR), котоый может быть е‡лизо‚‡н ‚ ‡птных се‰ст‚‡х или пммном обеспечении.
5.5. Вопосы и уп‡жнениfl Обзоные ‚опосы 1. Ук‡жите ‡зличиfl меж‰у со‚еменным и т‡‰иционным шиф‡ми с симметичным ключом. 2. Объflсните, почему со‚еменные блочные шифы споектины к‡к шифы по‰ст‡но‚ки ‚место то„о, чтобы пименflть шифы т‡нспозиции. 3. Объflсните, почему шиф по‰ст‡но‚ки можно пе‰ст‡‚ить себе к‡к шиф т‡нспозиции. 4. Пеечислите некотоые компоненты со‚еменно„о блочно„о шиф‡. 5. Опе‰елите P-блок и пеечислите е„о ти ‚‡и‡нт‡. К‡кой ‚‡и‡нт fl‚лflетсfl об‡тимым? 6. Опе‰елите S-блок и пок‡жите необхо‰имое усло‚ие об‡тимости Sблок‡. 7. Опе‰елите сост‡‚ной шиф и пеечислите ‰‚‡ кл‡сс‡ сост‡‚ных шифо‚. 8. Ук‡жите ‡зличие меж‰у ‡ссе肇нием и пеемеш肇нием 9. Ук‡жите ‡зличие меж‰у блочным шифом Ф‡йстелfl и не-Ф‡йстелfl. 10. Ук‡жите ‡зличие меж‰у ‰иффеенци‡льным и линейным кипто‡н‡лизом. К‡кой из них использует ‡т‡ку ‚ыбоки исхо‰но„о текст‡? К‡кой из них использует т‡кже ‡т‡ку зн‡ниfl исхо‰но„о текст‡? 11. Ук‡жите ‡зличие меж‰у синхонным и несинхонным шиф‡ми поток‡. 12. Опе‰елите е„ист с‰‚脇 с об‡тной с‚flзью и пеечислите ‰‚‡ ‚‡и‡нт‡, используемые ‚ шифе поток‡.
Уп‡жнениfl 1. Блок т‡нспозиции имеет 10 ‚хо‰о‚ и 10 ‚ыхо‰о‚. К‡ко‚ поfl‰ок „уппы пеест‡но‚ки? К‡ко‚ ‡зме ключе‚ой после‰о‚‡тельности? 2. Блок по‰ст‡но‚ки имеет 10 ‚хо‰о‚ и 10 ‚ыхо‰о‚. К‡ко‚ поfl‰ок „уппы пеест‡но‚ки? К‡ко‚ ‡зме ключе‚ой после‰о‚‡тельности? 3. a. Пок‡жите езульт‡т цикулflно„о ле‚о„о с‰‚脇 н‡ 3 бит‡ н‡ сло‚е (1001101l) 2. 180
Лекциfl 5
В‚е‰ение ‚ осно‚ы со‚еменных шифо‚ с симметичным ключом
б. Пок‡жите езульт‡т цикулflно„о о„о с‰‚脇 н‡ 3 бит‡ н‡ сло‚е, полученном ‚ пункте a. ‚. С‡‚ните езульт‡т пункт‡ б с пе‚он‡ч‡льным сло‚ом пункт‡ a. 4. a. Измените сло‚о (10011011)2 с помощью пеест‡но‚ки. б. Измените сло‚о, полученное по пункту a, с помощью пеест‡но‚ки. ‚. С‡‚ните езульт‡ты пункт‡ a и пункт‡ b, чтобы пок‡з‡ть, что пеест‡но‚к‡ — с‡мооб‡тим‡fl опе‡циfl. 5. Н‡й‰ите езульт‡т сле‰ующих опе‡ций: a. (01001101) ⊕ (01001101) б. (01001101) ⊕ (10110010) ‚. (01001101) ⊕ (00000000) „. (01001101) ⊕ (11111111) 6. a. Р‡сшифуйте сло‚о 010, используfl ‰еко‰е 3 × 8. б. З‡шифуйте сло‚о 00100000, используfl ко‰иующее устойст‚о 8 × 3.
7. Сообщение имеет 2000 сим‚оло‚. Оно бу‰ет з‡шифно с использнием блочно„о шиф‡ 64 бито‚. Н‡й‰ите ‡зме ‰ополнениfl и номе‡ блоко‚. 8. Пок‡жите т‡блицу пеест‡но‚ки ‰лfl пflмо„о P-блок‡ н‡ ис. 5.4 9. Пок‡жите т‡блицу пеест‡но‚ки ‰лfl P-блок‡ сж‡тиfl н‡ ис. 5.4.
10. Пок‡жите т‡блицу пеест‡но‚ки ‰лfl P-блок‡ ‡сшиениfl н‡ ис. 5.4. 11. Пок‡жите P-блок, опе‰еленный сле‰ующей т‡блицей: 8 1 2 3 4 5 6 7 12. Опе‰елите, fl‚лflетсfl ли P-блок со сле‰ующей т‡блицей пеест‡но‚ки пflмым P-блоком, P-блоком сж‡тиfl или P-блоком ‡сшиениfl. 1
1
2
3
4
4
13. Опе‰елите, fl‚лflетсfl ли P-блок со сле‰ующей т‡блицей пеест‡но‚ки пflмым P-блоком, P-блоком сж‡тиfl или P-блоком ‡сшиениfl. 1
3
181
5
6
7
Кус
Киптфиfl и безоп‡сность сетей
14. Опе‰елите, fl‚лflетсfl ли P-блок со сле‰ующей т‡блицей пеест‡но‚ки пflмым P-блоком, P-блоком сж‡тиfl или P-блоком ‡сшиениfl. 1
2
3
4
5
6
15. Отношение ‚хо‰-‚ыхо‰ ‚ 2 × 2 S-блок‡ пок‡з‡ны ‚ сле‰ующей т‡блице ‰лfl S-блок‡. Пок‡жите т‡блицу ‰лfl ин‚есно„о блок‡. 16. Пок‡жите LFSR с х‡‡ктеистическим полиномом x5 + x2 + 1. К‡ко‚ пеио‰ получ‡емой после‰о‚‡тельности? 17. К‡ко‚ х‡‡ктеистический полином сле‰ующе„о LFSR? К‡ко‚ м‡ксим‡льный пеио‰? 18. Пок‡жите ключе‚ой поток н‡ 20 бито‚, с„енеинный от LFSR н‡ ис. 5.25, если н‡ч‡льное зн‡чение — 1110. 19. М‡ксим‡льн‡fl ‰лин‡ пеи LFSR — 32. Сколько бито‚ имеет е„ист с‰‚脇? 20. 6 × 2 S-блок поиз‚о‰ит опе‡цию ИСКЛЮЧАЮЩЕЕ ИЛИ с нечетными бит‡ми, чтобы получить ле‚ый бит ‚ых, и ИСКЛЮЧАЮЩЕЕ ИЛИ с четными бит‡ми, чтобы получить ый бит ‚ых. Если ‚хо‰ — 110010, что fl‚лflетсfl ‚ыхо‰ом? Если ‚хо‰ — 101101, что fl‚лflетсfl ‚ыхо‰ом? 21. К‡йний ле‚ый бит 4 × 3 S-блок‡ опе‰елflет смещение ‰у„их тех бит. Если к‡йний ле‚ый бит ‡‚ен 0, то ти ‰у„их бит‡ пеемещ‡ютсfl ‚о н‡ о‰ин бит. Если к‡йний ле‚ый бит — 1, ти ‰у„их бит‡ пеемещ‡ютсfl ‚ле‚о н‡ о‰ин бит. Если ‚хо‰ — 1011, к‡кой езульт‡т бу‰ет н‡ ‚ыхо‰е? Если ‚хо‰ — 0110, к‡кой езульт‡т бу‰ет н‡ ‚ыхо‰е? 22. Н‡пишите поце‰уу ‚ пс傉око‰е ‰лfl ‡збиениfl n-бито‚о„о сл н‡ ‰‚‡ сл, к‡ж‰ое из котоых состоит из n/2. 23. Н‡пишите поце‰уу ‚ пс傉око‰е ‰лfl объе‰инениfl ‰‚ух n/2-бито‚ыхt сло‚ ‚ n-бито‚ое сло‚о. 24. Н‡пишите поце‰уу ‚ пс傉око‰е, кото‡fl пеест‡‚лflет ле‚ые и ые поло‚ины n-бито‚о„о сл. 25. Н‡пишите поце‰уу ‚ пс傉око‰е, кото‡fl циклически с‰‚脇ет ‚ n‡зfl‰ном сло‚е н‡ k бит ‚ле‚о или ‚п‡‚о, ‚ соот‚етст‚ии с поце‰уой по п. 24. 26. Н‡пишите поце‰уу ‚ пс傉око‰е ‰лfl P-блок‡, ‚ котоом пеест‡но‚к‡ опе‰елен‡ т‡блицей. 27. Н‡пишите поце‰уу ‚ пс傉око‰е ‰лfl S-блок‡, ‚ котоом ‚хо‰-‚ыхо‰ опе‰елен т‡блицей. 28. Н‡пишите поце‰уу ‚ пс傉око‰е, кото‡fl мо‰елиует к‡ж‰ый ‡ун‰ не-Ф‡йстелfl, пок‡з‡нный н‡ ис. 5.13. 29. Н‡пишите поце‰уу ‚ пс傉око‰е, кото‡fl мо‰елиует к‡ж‰ый ‡ун‰ шиф‡, пок‡з‡нный н‡ ис. 5.17. 30. Н‡пишите поце‰уу ‚ пс傉око‰е, кото‡fl мо‰елиует n-бито‚ый LFSR. 182
Лекциfl 6
Ст‡н‰‡т шифниfl ‰‡нных (DES)
Лекциfl 6. Ст‡н‰‡т шифниfl ‰‡нных (DES) Цели и со‰еж‡ние В этой лекции мы обсу扇ем Ст‡н‰‡т шифниfl ‰‡нных (DES — DATA ENCRIPTION STANDARD) — со‚еменный блочный шиф с симметичными ключ‡ми. Н‡ши осно‚ные цели ‰лfl этой лекции: • ‡ссмотеть кооткую истоию DES; • опе‰елить осно‚ную стуктуу DES; • опис‡ть ‰ет‡ли осно‚ных элементо‚ DES; • опис‡ть поцесс „ене‡ции ключей ‰лfl ‡ун‰о‚; • по‚ести ‡н‡лиз DES. Особое ‚ним‡ние у‰елflетсfl тому, к‡к DES использует шиф Ф‡йстелfl, чтобы ‰ости„нуть пеемеш肇ниfl и ‡ссе肇ниfl н‡ ‚ыхо‰е из бито‚ исхо‰но„о текст‡ к бит‡м з‡шифнно„о текст‡.
6.1. В‚е‰ение Ст‡н‰‡т шифниfl ‰‡нных (DES) — блочный шиф с симметичными ключ‡ми, ‡з‡бот‡н Н‡цион‡льным Институтом Ст‡н‰‡то‚ и Техноло„ии (NIST – National Institute of Standards and Technology).
Истоиfl В l973 „о‰у NIST и片л з‡пос ‰лfl ‡з‡ботки пе‰ложениfl н‡цион‡льной киптфической системы с симметичными ключ‡ми. Пе‰ложенн‡fl IBM мо‰ифик‡циfl поект‡, н‡з‚‡нн‡fl Lucifer, был‡ пинflт‡ к‡к DES. DES были и片ны ‚ эскизном ‚и‰е ‚ Фе‰е‡льном Ре„исте ‚ м‡те 1975 „ к‡к Фе‰е‡льный Ст‡н‰‡т Об‡ботки Инфом‡ции (FIPS – Federal Information Processing Standard). После публик‡ции эскиз сто„о китиклсfl по ‰‚ум пичин‡м. П傇fl: китикл‡сь сомнительно м‡леньк‡fl ‰лин‡ ключ‡ (только 56 бито‚), что мо„ло с‰ел‡ть шиф уflз‚имым к ‡т‡ке «„убой силой». Вто‡fl пичин‡: китики были обеспокоены некотоым скытым постоением ‚нутенней стуктуы DES. Они по‰оз傇ли, что некото‡fl ч‡сть стуктуы (S-блоки) может иметь л‡зейку, кото‡fl поз‚олит ‡сшифо‚ы‚‡ть сообщениfl без ключ‡. Впосле‰ст‚ии поектио‚щики IBM сообщили, что ‚нутеннflfl стукту‡ был‡ ‰о‡бот‡н‡, чтобы пе‰от‚‡тить кипто‡н‡лиз. DES был н‡конец и片н к‡к FIPS 46 ‚ Фе‰е‡льном Ре„исте ‚ fl킇е 1977 „. О‰н‡ко FIPS объfl‚ил DES к‡к ст‡н‰‡т ‰лfl использниfl ‚ неофици‡льных пиложениflх. DES был н‡иболее шиоко используемым блочным шифом с симметичными ключ‡ми, н‡чин‡fl с е„о публик‡ции. Позже NIST пе‰ложил но‚ый ст‡н‰‡т (FIPS 46-3), котоый екомен‰ует использние тойно„о DES (техк‡тно по‚тоенный шиф DES) ‰лfl бу‰ущих пиложений. К‡к мы у‚и‰им ‰‡лее, ‚ лекции 7, пе‰по뇄‡етсfl, что более но‚ый ст‡н‰‡т AES з‡менит DES. 183
Кус
Киптфиfl и безоп‡сность сетей
Общие положениfl К‡к пок‡з‡но н‡ ис. 6.1., DES — блочный шиф.
Рис. 6.1. Шифние и ‰ешифние ‚ DES Н‡ стооне шифниfl DES пиним‡ет 64-бито‚ый исхо‰ный текст и поо扇ет 64-бито‚ый з‡шифнный текст; н‡ стооне ‰ешифниfl DES пиним‡ет 64-бито‚ый з‡шифнный текст и поо扇ет 64-бито‚ый исхо‰ный текст. Н‡ обеих стоон‡х ‰лfl шифниfl и ‰ешифниfl пименflетсfl о‰ин и тот же 56-бито‚ый ключ.
6.2. Стукту‡ DES Р‡ссмотим сн‡ч‡л‡ шифние, ‡ потом ‰ешифние. Поцесс шифниfl состоит из ‰‚ух пеест‡но‚ок (P-блоки) — они н‡зы‚‡ютсfl н‡ч‡льные и конечные пеест‡но‚ки, — и шест퇉ц‡ти ‡ун‰о‚ Ф‡йстелfl. К‡ж‰ый ‡ун‰ использует ‡зличные с„енеинные 48-бито‚ые ключи. Ал„оитм „ене‡ции бу‰ет ‡ссмотен ‚ этой лекции поз‰нее. Рисунок 6.2 пок‡зы‚‡ет элементы шиф‡ DES н‡ стооне шифниfl.
Н‡ч‡льные и конечные пеест‡но‚ки Рисунок 6.3 пок‡зы‚‡ет н‡ч‡льные и конечные пеест‡но‚ки (P-блоки). ʇ扇fl из пеест‡но‚ок пиним‡ет 64-бито‚ый ‚хо‰ и пеест‡‚лflет е„о элементы по 燉‡нному илу. Мы пок‡з‡ли только небольшое число ‚хо‰ных пото‚ и соот‚етст‚ующих ‚ыхо‰ных пото‚. Эти пеест‡но‚ки — пflмые пеест‡но‚ки без ключей, котоые ин‚есны ‰у„ ‰у„у. Н‡пиме, ‚ н‡ч‡льной пеест‡но‚ке 58-й бит н‡ ‚хо‰е пеехо‰ит ‚ пе‚ый бит н‡ ‚ыхо‰е. Ан‡ло„ично, ‚ конечной пеест‡но‚ке пе‚ый ‚хо‰ной бит пеехо‰ит ‚ 58-й бит н‡ ‚ыхо‰е. Ду„ими слми, если меж‰у этими ‰‚умfl пеест‡но‚к‡ми не сущест‚ует ‡у퉇, 58й бит, поступи‚ший н‡ ‚хо‰ устойст‚‡ н‡ч‡льной пеест‡но‚ки, бу‰ет ‰ост‡‚лен н‡ 58-й ‚ыхо‰ фин‡льной пеест‡но‚кой. 184
Лекциfl 6
Ст‡н‰‡т шифниfl ‰‡нных (DES)
Рис. 6.2. Общ‡fl стукту‡ DES
Рис. 6.3. Н‡ч‡льные и конечные ш‡„и пеест‡но‚ки DES П‡‚ил‡ пеест‡но‚ки ‰лfl это„о P-блок‡ пок‡з‡ны ‚ т‡блице 6.1. Т‡блицу можно пе‰ст‡‚ить к‡к 64-элементный м‡сси‚. З‡метим, что ‡боту с т‡блицей мы обсу扇ли: зн‡чение к‡ж‰о„о элемент‡ опе‰елflет номе ‚хо‰но„о пот‡, ‡ поfl‰ко‚ый номе (ин‰екс) элемент‡ опе‰елflет номе ‚ыхо‰но„о пот‡. 185
Кус
Киптфиfl и безоп‡сность сетей
Т‡блиц‡ 6.1. Т‡блиц‡ н‡ч‡льных и конечных пеест‡но‚ок
Эти ‰‚е пеест‡но‚ки не имеют ник‡ко„о зн‡чениfl ‰лfl киптфии ‚ DES. Обе пеест‡но‚ки – без ключей и пе‰опе‰еленны. Пичин‡, почему они ‚ключены ‚ DES, не flсн‡ и не был‡ ук‡з‡н‡ поектио‚щик‡ми DES. Можно пе‰положить, что DES был поектом, котоый пе‰по뇄‡лось е‡лизть ‚ ‡птных се‰ст‚‡х (н‡ чип‡х), и что эти ‰‚е сложные пеест‡но‚ки ‰олжны были з‡ту‰нить пммное мо‰елиние мех‡низм‡ шифниfl. Пиме 6.1 Н‡й‰ите ‚ыхо‰ н‡ч‡льно„о блок‡ пеест‡но‚ки, к‡ н‡ ‚хо‰ поступ‡ет шест퇉ц‡теичн‡fl после‰о‚‡тельность, т‡к‡fl, к‡к 0x0002 0000 0000 0001 Решение Вхо‰ имеет только ‰‚е е‰иницы — (бит 15 и бит 64); ‚ыхо‰ ‰олжен т‡кже иметь только ‰‚е е‰иницы (пflм‡fl пеест‡но‚к‡). Используfl т‡блицу 6.1, мы можем н‡йти ‚ыхо‰, с‚flз‡нный с этими ‰‚умfl бит‡ми. Бит 15 н‡ ‚хо‰е ст‡но‚итсfl битом 63 ‚ ‚ыхо‰е. Бит 64 ‚о ‚хо‰е ст‡но‚итсfl битом 25 ‚ ‚ыхо‰е. Н‡ ‚ыхо‰е бу‰ем иметь только ‰‚е е‰иницы — бит 25 и бит 63. Результ‡т ‚ шест퇉ц‡теичном исчислении: 0x0000 0080 0000 0002 Пиме 6.2 Док‡жем, что н‡ч‡льные и фин‡льные пеест‡но‚ки ин‚есны ‰у„ ‰у„у. Пеоб‡зуем полученную ‚ыхо‰ную после‰о‚‡тельность ‚о ‚хо‰ную. 0x0000 0080 0000 0002 Решение Е‰иничные биты — 25 и 63, ‰у„ие биты ‡‚ны нулю. В конечной пеест‡но‚ке 25-й бит пеехо‰ит ‚ 64-й, ‡ 63-й — ‚ 15-й. Результ‡т: 0x0002000000000001 186
Лекциfl 6
Ст‡н‰‡т шифниfl ‰‡нных (DES)
Н‡ч‡льные и конечные пеест‡но‚ки – это пflмые P-блоки, котоые ин‚есны ‰у„ ‰у„у. Они не имеют зн‡чениfl ‰лfl киптфии DES.
Р‡ун‰ы DES использует 16 ‡ун‰о‚. К‡ж‰ый ‡ун‰ DES пименflет шиф Ф‡йстелfl, к‡к это пок‡з‡но н‡ ис. 6.4.
Рис. 6.4. Р‡ун‰ ‚ DES (стоон‡ шифниfl) Р‡ун‰ пиним‡ет LI -1 R I-1 от пе‰ы‰уще„о ‡у퉇 (или н‡ч‡льно„о блок‡ пеест‡но‚ки) и со片ет ‰лfl сле‰ующе„о ‡у퉇 LI И RI , котоые поступ‡ют н‡ сле‰ующий ‡ун‰ (или конечный блок пеест‡но‚ки). К‡к мы ук‡з‡ли ‚ лекции 5, можно пинflть, что к‡ж‰ый ‡ун‰ имеет ‰‚‡ элемент‡ шиф‡ (смеситель и устойст‚о з‡мены). К‡ж‰ый из этих элементо‚ fl‚лflетсfl об‡тимым. Устойст‚о з‡мены — оче‚и‰но об‡тимо, оно менflет мест‡ми ле‚ую поло‚ину текст‡ с ой поло‚иной. Смеситель fl‚лflетсfl об‡тимым, потому что опе‡циfl ИСКЛЮЧАЮЩЕЕ ИЛИ об‡тим‡. Все необ‡тимые элементы сосе‰оточены ‚ функции f (RI-1,KI). Функциfl DES Осно‚ной блок DES — функциfl DES. Функциfl DES с помощью 48-бито‚о„о ключ‡ з‡шифо‚ы‚‡ет 32 с‡мых ых бит RI-1, чтобы получить н‡ ‚ыхо‰е 32бито‚ое сло‚о. Эт‡ функциfl со‰ежит, к‡к это пок‡з‡но н‡ ис. 6.5, четые секции: отбел肇тель (whitener), P-блок ‡сшиениfl, „уппу S-блоко‚ и пflмой Pблок. P-блок ‡сшиениfl. Т‡к к‡к ‚хо‰ RI-1 имеет ‰лину 32 бит‡, ‡ ключ KI — ‰лину 48 бито‚, мы сн‡ч‡л‡ ‰олжны ‡сшиить RI-1 ‰о 48 бит. RI-1 ‡з‰елflетсfl н‡ 8 секций по 4 бит‡. ʇ扇fl секциfl н‡ 4 бит‡ ‡сшиflетсfl ‰о 6 бит. Эт‡ пеест‡но‚187
Кус
Киптфиfl и безоп‡сность сетей
к‡ ‡сшиениfl поисхо‰ит по 燇нее опе‰еленным ил‡м. Длfl секции зн‡чениfl ‚хо‰ных бит 1, 2, 3 и 4 пис‚‡и‚‡ютсfl бит‡м 2, 3, 4 и 5 соот‚етст‚енно н‡ ‚ыхо‰е. Выхо‰ной бит 1 фомиуетсfl н‡ осно‚е ‚хо‰но„о бит‡ 4 из пе‰ы‰ущей секции; бит ‚ых 6 фомиуетсfl из бит‡ 1 ‚ сле‰ующей секции. Если секции 1 и 8 ‡ссм‡т肇ть к‡к сосе‰ние секции, то те же с‡мые ил‡ пименflютсfl к бит‡м 1 и 32. Рисунок 6.6 пок‡зы‚‡ет ‚хо‰ы и ‚ыхо‰ы ‚ пеест‡но‚ке ‡сшиениfl. Хотfl отношениfl меж‰у ‚хо‰ом и ‚ыхо‰ом мо„ут быть опе‰елены м‡тем‡тически, но чтобы опе‰елить этот P-блок, DES использует т‡блицу 6.2. Об‡тите ‚ним‡ние, что число ‚ыхо‰о‚ 48, но ‰и‡п‡зон зн‡чений — только от 1 ‰о 32. Некотоые из ‚хо‰о‚ и‰ут больше к чем о‰ному ‚ыхо‰у. Н‡пиме, зн‡чение ‚хо‰но„о бит‡ 5 ст‡но‚итсfl зн‡чением бито‚ ‚ых 6 и 8.
Рис. 6.5. Функциfl DES
Рис. 6.6. Пеест‡но‚к‡ ‡сшиениfl Отбел肇тель (whitener). После ‡сшиениfl DES использует опе‡цию XOR (ИСКЛЮЧАЮЩЕЕ ИЛИ) 퇉 ‡сшиенной ч‡стью ой секции и ключом ‡у퉇. З‡метим, что ‡fl секциfl и ключ имеют ‰лину 48 бит. Т‡кже з‡метим, что ключ ‡у퉇 использует только эту опе‡цию. 188
Лекциfl 6
Ст‡н‰‡т шифниfl ‰‡нных (DES)
Т‡блиц‡ 6.2. Т‡блиц‡ P-блок‡ ‡сшиениfl
S-блоки. S-блоки смеш肇ют инфом‡цию (опе‡циfl пеемеш肇ниfl). DES использует S-блоки, к‡ж‰ый с 6-ю ‚хо‰ными бит‡ми и 4-мfl ‚ыхо‰ными (см. ис. 6.7).
Рис.6.7. S - блоки Д‡нные из 48 бито‚ от ‚тоой опе‡ции DES ‡з‰елены н‡ ‚осемь куско‚ по 6 бито‚, и к‡ж‰ый кусок поступ‡ет ‚ блок. Результ‡т к‡ж‰о„о блок‡ — кусок н‡ 4 бит‡; к‡ они объе‰инены, езульт‡т ‚ы‡ж‡етсfl ‚ 32-бито‚ом тексте. По‰ст‡но‚к‡ ‚ к‡ж‰ом блоке поисхо‰ит по 燇нее опе‰еленным ил‡м, осннным н‡ т‡блице из 4-х сток и 16-ти столбцо‚. Комбин‡циfl бито‚ 1 и 6 н‡ ‚хо‰е опе‰елflет о‰ну из четыех сток; комбин‡циfl бито‚ от 2-„о ‰о 5-„о опе‰елflет о‰ин из шест퇉ц‡ти столбцо‚, к‡к пок‡з‡но н‡ ис. 6.8. Д‡лее мы поflсним это пиме‡ми.
Рис. 6.8. П‡‚ил‡ ‰лfl S- блок‡ 189
Кус
Киптфиfl и безоп‡сность сетей
Поскольку ‰лfl к‡ж‰о„о S-блок‡ есть собст‚енн‡fl т‡блиц‡, необхо‰имо иметь ‚осемь т‡блиц, н‡пиме т‡ких, к‡к это пок‡з‡но ‚ т‡блиц‡х 6.3-6.10. Зн‡чение ‚х (номе стоки и номе столбц‡) и зн‡чениfl ‚ых ‰‡ютсfl к‡к ‰есflтичные номе‡, чтобы сэкономить место н‡ ст‡нице. В е‡льности они мо„ут быть з‡менены ‰‚оичными числ‡ми. Т‡блиц‡ 6.3. S-блок 1
Т‡блиц‡ 6.4. S-блок 2
Т‡блиц‡ 6.5. S-блок 3
Т‡блиц‡ 6.6. S-блок 4
Т‡блиц‡ 6.7. S-блок 5
190
Лекциfl 6
Ст‡н‰‡т шифниfl ‰‡нных (DES)
Т‡блиц‡ 6.8. S-блок 6
Т‡блиц‡ 6.9. S-блок 7
Т‡блиц‡ 6.10. S-блок 8
Пиме 6.3 Вхо‰н‡fl после‰о‚‡тельность S блок‡ 1 — 100011. К‡к‡fl после‰о‚‡тельность бу‰ет н‡ ‚ыхо‰е? Решение Если мы з‡пишем пе‚ый и шестой биты ‚месте, мы получим ‚ ‰‚оичном исчислении 11, котоый ‚ы‡ж‡етсfl к‡к число 3 пи ‰есflтичном исчислении. Ост‡ющ‡flсfl ч‡сть бито‚ 0001 ‚ ‰‚оичном исчислении fl‚лflетсfl 1 ‚ ‰есflтичном исчислении. Мы ищем зн‡чение стоки 3 и столбц‡ 1 ‚ Т‡блице 6.3 (S-блок 1). Результ‡т — 12 ‚ ‰есflтичном исчислении или 1100 ‚ ‰‚оичном исчислении. Т‡ ‚хо‰ 1100011 ‰‡ет ‚ыхо‰ 1100. Пиме 6.4 Вхо‰н‡fl после‰о‚‡тельность S-блок‡ 8 — 000000. К‡к‡fl после‰о‚‡тельность бу‰ет н‡ ‚ыхо‰е? Решение Если мы з‡пишем пе‚ый и шестые биты ‚месте, то получим ‚ ‰‚оичном исчислении число 00, котоое ‚ы‡ж‡етсfl числом 0 пи ‰есflтичном исчислении. Ост‡ющ‡flсfl ч‡сть бито‚ — 0000 ‚ ‰‚оичном исчислении, то есть 0 ‚ ‰есflтичном исчислении. Мы ищем зн‡чение стоки 0 и столбц‡ 0 ‚ т‡блице 6.10 (S-блок 8). Результ‡т — 13 ‚ ‰есflтичном исчислении или 1101 ‚ ‰‚оичном исчислении. Т‡ ‚хо‰ 000000 ‰‡ет ‚ыхо‰ 1101. 191
Кус
Киптфиfl и безоп‡сность сетей
Пflм‡fl пеест‡но‚к‡ — после‰нflfl опе‡циfl ‚ функции DES — пеест‡но‚к‡ с 32 бит‡ми н‡ ‚хо‰е и 32 бит‡ми н‡ ‚ыхо‰е. Отношениfl «‚хо‰-‚ых ‰лfl этой опе‡ции пок‡з‡ны ‚ Т‡блице 6.11. Они сле‰уют тем же общим ил‡м, к‡к и пе‰ы‰ущие т‡блицы пеест‡но‚ки. Н‡пиме, се‰ьмой бит ‚х ст‡но‚итсfl ‚тоым битом ‚ых.
Рис. 6.9. DES-шиф и об‡тный шиф ‰лfl пе‚о„о способ‡ 192
Лекциfl 6
Ст‡н‰‡т шифниfl ‰‡нных (DES)
Т‡блиц‡ 6.11. Т‡блиц‡ пflмой пеест‡но‚ки 16 01 02 19
07 15 08 13
20 23 24 30
21 26 14 06
29 05 32 22
12 18 27 11
28 31 03 04
17 10 09 25
Шиф и об‡тный шиф Используfl смеситель и устойст‚о з‡мены, мы можем со片ть шиф и об‡тный шиф ‰лfl к‡ж‰о„о из 16-ти ‡ун‰о‚. Шиф пименflетсfl н‡ стооне шифниfl; об‡тный шиф — н‡ стооне ‰ешифниfl. Ал„оитмы со片ниfl шиф‡ и об‡тно„о шиф‡ ‡н‡ло„ичны. Пе‚ый способ О‰ин из мето‰о‚, чтобы ‰ости„нуть пост‡‚ленной цели (шифние и об‡тное шифние), состоит ‚ том, чтобы с‰ел‡ть после‰ний ‡ун‰ отлич‡ющимсfl от ‰у„их; он бу‰ет со‰еж‡ть только смеситель и не бу‰ет со‰еж‡ть устойст‚‡ з‡мены, к‡к это пок‡з‡но н‡ ис. 6.9. Мы ‰ок‡з‡ли ‚ лекции 5, что смеситель и устойст‚о з‡мены с‡моин‚есны. Конечные и н‡ч‡льные пеест‡но‚ки т‡кже ин‚есны ‰у„ ‰у„у. Л傇fl секциfl исхо‰но„о текст‡ н‡ стооне шифниfl шифуетсfl L0 к‡к L16, и L16 ‰ешифуетсfl н‡ стооне ‰ешиф‡то‡ к‡к L0. Ан‡ло„ичн‡fl ситу‡циfl с R0 и R16. Нужно з‡помнить очень ‚‡жное положение, котоое к‡с‡етсfl шифо‚: ключи ‡ун‰о‚ (K1 и K16) пименflютсfl пи шифнии и ‰ешифнии ‚ об‡тном поfl‰ке. Н‡ стооне шифниfl пе‚ый ‡ун‰ пименflет ключ K1, ‡ ‡ун‰ 16 — ключ K16; пи ‰ешифнии ‡ун‰ 1 использует ключ K16, ‡ ‡ун‰16 — ключ K1 В пе‚ом мето‰е после‰ний ‡ун‰ не имеет устойст‚‡ з‡мены. Ал„оитм Ал„оитм 6.1. пи‚е‰ен ‚ пс傉окх ‰лfl шифниfl и соот‚етст‚ует четыем ш‡„‡м пе‚о„о мет. Ко‰ы ‰лfl ост‡льных мо„ут быть с‰ел‡ны к‡к уп‡жнение. Альтен‡ти‚ный способ Пи пе‚ом способе ‡ун‰ 16 отлич‡етсfl от ‰у„их ‡ун‰о‚ тем, что т‡м не пименflетсfl устойст‚о з‡мены. Это необхо‰имо, чтобы с‰ел‡ть после‰ний и пе‚ый смесители ‚ шифе о‰ин‡ко‚ыми. Мы можем ‰ел‡ть ‚се 16 ‡ун‰о‚ о‰ин‡ко‚ыми, ‰оᇂлflfl к 16-му ‡ун‰у ‰ополнительное устойст‚о з‡мены (‰‚‡ устойст‚‡ з‡мены поз‚олflют нейт‡лизть ‰у„ ‰у„‡). Р‡з‡ботку этой схемы мы ост‡‚лflем ‰лfl уп‡жнений. Гене‡циfl ключей Гене‡то ключей со片ет шест퇉ц‡ть ключей по 48 бито‚ из ключ‡ шиф‡ н‡ 56 бито‚. О‰н‡ко ключ шиф‡ обычно ‰‡етсfl к‡к ключ из 64-х бито‚, ‚ кото193
Кус
Киптфиfl и безоп‡сность сетей
Ал„оитм 6.1. Пс傉око‰ы ‰лfl DES-шиф‡ C¥pher (pla¥nBlock[64], Round Keys[16,48]) { permute (64,64, pla¥nBlock, ¥nBlock, Int¥alPermutat¥onTable) sp¥lt (64, 32, ¥nBlock, leftBlock, r¥ght Block) for (round = 1 to 16) { m¥xer (leftBlock, r¥ght Block, RoundKeys[round]) ¥f (round!=16) swapper(leftBlock, r¥ght Block) } comb¥ne (32, 64, leftBlock, r¥ght Block, outBlock) permute (64,64, outBlock, c¥pherBlock, F¥nalPermutat¥onTable) } m¥xer (leftBlock[48], r¥ght Block[48], RoundKey[48]) { copy (32, r¥ghtBlock, T1) funct¥on (T1, RoundKey,T2) exclus¥veOr (32, leftBlock, T2,T3) copy (32, r¥ghtBlock, T1) } swapper { leftBlock[32], r¥ght Block[32]) { copy (32, leftBlock, T) copy (32, r¥ghtBlock, , leftBlock) copy (32, T, r¥ghtBlock) } Funct¥on (¥nBlock[32], RoundKey[48],outBlock[32]) { permute (32,48, ¥nBlock,T1, Expans¥onPermutat¥onTable) exclus¥veOr (48,T1, RoundKey, T2) subst¥tute (T2,T3, Subst¥tuteTable) permute (32,32,T3, outBlock, Stra¥ghtPermutat¥onTable) } Subst¥tute (¥n block [32], outblock [48], Subst¥tuteTables[8,4,16]) { for(I =1 to8) { row ← 2 × ¥nBlock[¥ × 6+1] + ¥nBlock[¥ × 6+6] col ← 8 × ¥nBlock[¥ × 6+2] + 4 × ¥nBlock[¥ × 6+3]+ 2 × ¥nBlock[¥ × 6+4] + ¥nBlock[¥ × 6+5] value = Subst¥tuteTables[¥][row][col] outBlock[¥ outBlock[¥ outBlock[¥ outBlock[¥ }
× × × ×
4+1] 4+2] 4+3] 4+4]
← ← ← ←
value/ 8 value/ 4 value/ 2 value
} 194
value ← value mod 8 value ← value mod 4 value ← value mod 8
Лекциfl 6
Ст‡н‰‡т шифниfl ‰‡нных (DES)
ом 8 ‰ополнительных бито‚ fl‚лflютсfl бит‡ми по‚еки. Они отб‡сы‚‡ютсfl пее‰ ф‡ктическим поцессом „ене‡ции ключей, котоый пок‡з‡н н‡ ис. 6. I0. У‰‡ление бито‚ по‚еки П剂‡ительный поцесс пее‰ ‡сшиением ключей — пеест‡но‚к‡ сж‡тиfl, котоую мы н‡зы‚‡ем у‰‡лением бито‚ по‚еки. Он‡ у‰‡лflет биты четности (биты 8, 16, 24, 32..., 64) из 64-бито‚о„о ключ‡ и пеест‡‚лflет ост‡льную ч‡сть бито‚ со„л‡сно т‡блице 6.12. Ост‡ющеесfl зн‡чение н‡ 56 бито‚ — ф‡ктический ключ шиф‡, котоый используетсfl, чтобы „енеить ключи ‡у퉇. Биты у‰‡лflютсfl с помощью пеест‡но‚ки (P-блок‡ сж‡тиfl), к‡к это пок‡з‡но ‚ т‡блице 6.12. Т‡блиц‡ 6.12. Т‡блиц‡ у‰‡лениfl по‚еочных бито‚ 57 58 59 60 31 30 29
49 50 51 52 23 22 21
41 42 43 44 15 14 13
33 34 35 36 07 06 05
25 26 27 63 62 61 28
17 18 19 55 54 53 20
09 10 11 47 46 45 12
01 02 03 39 37 37 04
С‰‚и„ ‚ле‚о После пflмой пеест‡но‚ки ключ ‡з‰елен н‡ ‰‚е ч‡сти по 28 бито‚. ʇ扇fl ч‡сть с‰‚脇етсfl ‚ле‚о (циклический с‰‚и„) н‡ о‰ин или ‰‚‡ бит‡. В ‡у퉇х 1, 2, 9 и 16 смещение – н‡ о‰ин бит, ‚ ‰у„их ‡у퉇х — н‡ ‰‚‡ бит‡. З‡тем эти ‰‚е ч‡сти объе‰инflютсfl, чтобы со片ть ч‡сть ‚ 56 бит Т‡блиц‡ 6.13 пок‡зы‚‡ет число с‰‚и„о‚ м‡нипулflций ‰лfl к‡ж‰о„о ‡у퉇. Т‡блиц‡ 6.13. Число с‰‚脇емых бит Р‡ун‰ Число бит
1 1
2 1
3 2
4 2
5 2
6 2
7 2
8 2
9 1
10 2
11 2
12 2
13 2
14 2
15 2
16 1
Пеест‡но‚к‡ сж‡тиfl Пеест‡но‚к‡ сж‡тиfl (P-блок) изменflет 56 бито‚ н‡ 48 бито‚, котоые используютсfl ‰лfl фоминиfl ключ‡ ‡у퉇. Пеест‡но‚к‡ сж‡тиfl пок‡з‡н‡ ‚ т‡блице 6.14. Т‡блиц‡ 6.14. Т‡блиц‡ сж‡тиfl ключ‡ 14 15 26 41 51 34
17 06 08 52 45 53
11 21 16 31 33 46
24 10 07 37 48 42
01 23 27 47 44 50 195
05 19 20 55 49 36
03 12 13 30 39 29
28 04 02 40 56 32
Кус
Киптфиfl и безоп‡сность сетей
Рис. 6.10. Гене‡циfl ключей Ал„оитм Тепеь н‡пишем постой ‡л„оитм ‰лfl со片ниfl ключ‡ из ключ‡ с по‚еочными бит‡ми. Ал„оитм 6.2 использует несколько поце‰у ‡л„оитм‡ 6.1. Имеетсfl и о‰н‡ нfl поце‰у‡ — ле‚ый с‰‚и„ (ShiftLeft). Об‡тите ‚ним‡ние, что T — ‚еменный блок. Ал„оитм 6.2. Ал„оитм ‰лfl „ене‡ции ключей ‡у퉇 Key_Generator (keyW¥thPar¥t¥es[64], RoundKeys[16. 48]. S¥nfTable[16]) { permute (64, 56, keyW¥thPar¥t¥es, c¥pherKey, Par¥tyDropTable) sp¥lt (56, 28, c¥pherKey, leftKey, r¥ghtKey) for (round = 1 to 16) 196
Лекциfl 6
Ст‡н‰‡т шифниfl ‰‡нных (DES)
{ sh¥ftLeft (leftKey, Sh¥ftTable[round1]) sh¥ftLeft (r¥ghtKey, Sh¥ftTable [round]) comb¥ne (28, 56, leftKey, r¥ghtKey, preRoundKey) permute (56, 48, preRoundKey, RoundKeys[ round], KevCompress¥onTable) } } sh¥ftLeft (block[28], NumOfSh¥fts) { for (¥ = 1 to numSh¥fts) { T <— block[ 1] for (j = 2 to 28) { block [j-1] <— block [j] } block [28] <— T }
Пимеы Пее‰ ‡н‡лизом DES ‡ссмотим несколько пимео‚, чтобы понflть, к‡к шифние и ‰ешифние менflют зн‡чение бито‚ ‚ к‡ж‰ом ‡ун‰е. Пиме 6.5 Мы ‚ыби‡ем случ‡йный блок исхо‰но„о текст‡ и случ‡йный ключ и опе‰елflем, к‡ким ‰олжен быть блок з‡шифнно„о текст‡ (‚се цифы ‰‡ны ‚ шест퇉ц‡теичном исчислении). Plaintext: 123456ABCD 132536 Cipher Text: COB7ASD05F3AS29C
Key: AABB09182736CCDD
Пок‡жем езульт‡т к‡ж‰о„о ‡у퉇 и текст‡, со片нно„о ‰о и после ‡ун‰о‚. Т‡блиц‡ 6.15 пок‡зы‚‡ет езульт‡ты пе‚ых ш‡„о‚ пее‰ н‡ч‡лом ‡у퉇. Исхо‰ный текст — поше‰ший чеез н‡ч‡льную пеест‡но‚ку ‰лfl получениfl ‡зличных 64 бит (16 шест퇉ц‡теичных циф). Т‡блиц‡ пок‡зы‚‡ет езульт‡т 16 ‡ун‰о‚, котоые ‚ключ‡ют смеш肇ние и з‡мену (исключ‡fl после‰ний ‡ун‰). Результ‡ты после‰них ‡ун‰о‚ (L16 и R16) объе‰инены. Н‡конец, текст похо‰ит конечную пеест‡но‚ку, ‰лfl то„о чтобы получить з‡шифнный текст. Сле‰ует отметить некотоые положениfl. П‡‚‡fl секциfl к‡ж‰о„о ‡у퉇 со‚‡ет с ле‚ой секцией сле‰ующе„о ‡у퉇. Пичин‡ ‚ том, что ‡fl секциfl похо‰ит чеез смеситель без изменениfl, ‡ устойст‚о з‡мены пееносит ее ‚ ле‚ую секцию. Н‡пиме, R1 пе則етсfl чеез смеситель ‚тоо„о ‡у퉇 без изме197
Кус
Киптфиfl и безоп‡сность сетей
Т‡блиц‡ 6.15. Т‡ссио‚к‡ ‰‡нных ‚ пимее 6.5
нениfl, но з‡тем, пой‰fl устойст‚о з‡мены, он ст‡но‚итсfl L2. Втоое интеесное положение: н‡ после‰нем ‡ун‰е мы не имеем устойст‚‡ з‡мены. Именно поэтому R15 ст‡но‚итсfl R16 ‚место то„о чтобы ст‡ть L16. Т‡блиц‡ 6.16. Т‡ссио‚к‡ ‰‡нных ‚ пимее 6.6
198
Лекциfl 6
Ст‡н‰‡т шифниfl ‰‡нных (DES)
Пиме 6.6 Д‡‚‡йте ‡ссмотим, к‡к Боб ‚ пункте н‡зн‡чениfl может ‡сшифть з‡шифнный текст, полученный от Алисы, с помощью со‚‡юще„о ключ‡. Длfl экономии ‚емени мы ‡збеем только несколько ‡ун‰о‚. Т‡блиц‡ 6.16 пок‡зы‚‡ет интеесующие н‡с точки. Пе‚ое ило: ключи ‡у퉇 ‰олжны использтьсfl ‚ об‡тном поfl‰ке. С‡‚ните т‡блицу 6.15 и т‡блицу 6.16. Ключ ‡у퉇 1 — т‡кой же к‡к ключ ‰лfl ‡у퉇 16. Зн‡чениfl L0 и R0 пи ‰ешиф‡ции те же с‡мые, что и зн‡чениfl L16 и R16 пи шифнии. Ан‡ло„ичные со‚ениfl бу‰ут получены и ‚ ‰у„их ‡у퉇х. Это ‰ок‡зы‚‡ет не только, что шиф и об‡тный шиф ин‚есны ‰у„ ‰у„у, но т‡кже то, что к‡ж‰ый ‡ун‰ пи шиф‡ции имеет соот‚етст‚ующий ‡ун‰ пи ‰ешиф‡ции ‚ об‡тном шифе. Результ‡т с‚и‰етельст‚ует, что н‡ч‡льные и конечные пеест‡но‚ки т‡кже fl‚лflютсfl ин‚есиflми ‰у„ ‰у„‡.
6.3. Ан‡лиз DES DES был пе„нут тщ‡тельному ‡н‡лизу. Были по‚е‰ены испыт‡ниfl, чтобы измеить интенси‚ность некотоых жел‡тельных с‚ойст‚ ‚ блочном шифе. Элементы DES пошли иссле‰о‚‡ниfl н‡ соот‚етст‚ие некотоым китеиflм. Ниже мы обсу‰им некотоые из них.
С‚ойст‚‡ Д‚‡ жел‡тельных с‚ойст‚‡ блочно„о шиф‡ — эффект 뇂ины и з‡конченность. Л‡‚инный эффект Л‡‚инный эффект озн‡ч‡ет, что небольшие изменениfl ‚ исхо‰ном тексте (или ключе) мо„ут ‚ы炇ть зн‡чительные изменениfl ‚ з‡шифнном тексте. Было ‰ок‡з‡но, что DES имеет ‚се пизн‡ки это„о с‚ойст‚‡. Пиме 6.7 Чтобы по‚еить эффект 뇂ины ‚ DES, попобуем з‡шифть ‰‚‡ блок‡ исхо‰но„о текст‡, котоые отлич‡ютсfl только о‰ним битом текст‡, с помощью о‰но„о и то„о же ключ‡ и опе‰елим ‡зницу ‚ числе бит ‚ к‡ж‰ом ‡ун‰е. Исхо‰ный текст: 0000000000000000 Ключ: 22234512987ABB23 З‡шифнный текст: 4789FD476E82A5F1 Исхо‰ный текст: 0000000000000001 Ключ: 22234512987ABB23 З‡шифнный текст: OA4ED5C15A63FEA3 Хотfl ‰‚‡ блок‡ исхо‰но„о текст‡ отлич‡ютсfl только с‡мым ым битом, блоки з‡шифнно„о текст‡ отлич‡ютсfl н‡ 29 бит. Это озн‡ч‡ет, что изменение пиблизительно ‚ 1,5 поцент‡х исхо‰но„о текст‡ со片ют изменение пиблизительно 45 поценто‚ з‡шифнно„о текст‡. Т‡блиц‡ 6.17 пок‡зы‚‡ет изменение 199
Кус
Киптфиfl и безоп‡сность сетей
‚ к‡ж‰ом ‡ун‰е. Можно у‚и‰еть, что сущест‚енные изменениfl ‚озник‡ют уже ‚ тетьем ‡ун‰е. Т‡блиц‡ 6.17. Число ‡зличных бит ‚ пимее 6.7 Р‡ун‰ Р‡зниц‡ ‚ бит‡х
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 1 6 20 29 30 33 32 29 32 39 33 28 30 31 30 29
Эффект полноты Эффект полноты з‡ключ‡етсfl ‚ том, что к‡ж‰ый бит з‡шифнно„о текст‡ ‰олжен 燂исеть от мно„их бито‚ исхо‰но„о текст‡. Р‡ссе肇ние и пеемеш肇ние, поиз‚е‰енное P-блок‡ми и S-блок‡ми ‚ DES, ук‡зы‚‡ет н‡ очень сильный эффект полноты.
Китеии ‡з‡боток DES Поект DES был пе‰ъfl‚лен IBM ‚ 1994 „о‰у. Мно„очисленные испыт‡ниfl DES пок‡з‡ли, что он у‰о‚лет‚оflет некотоым из з‡fl‚ленных китеие‚. Ниже к‡тко обсу扇ютсfl некотоые поблемы ‡з‡боток DES. S-блоки Мы ‡ссмотели общие китеии постоениfl S-блоко‚ ‚ лекции 5. З‰есь мы только обсу扇ем китеии, ‚ыб‡нные ‰лfl DES. Стукту‡ блоко‚ обеспеч肇ет пеемеш肇ние и ‡ссе肇ние от к‡ж‰о„о ‡у퉇 ‰о сле‰ующе„о. Со„л‡сно этому положению и некотоому ‡н‡лизу, мы можем упомflнуть несколько с‚ойст‚ Sблоко‚. 1. Вхо‰ы к‡ж‰ой стоки есть пеест‡но‚ки зн‡чений меж‰у 0 и 15. 2. S-блоки — нелинейные. Ду„ими слми, ‚ыхо‰ — не ‡ффинное пеоб‡зние. (См. лекции 3 (‡ффинное пеоб‡зние) и 5, „‰е ‡ссм‡т肇л‡сь линейность и S-блоко‚.) 3. Если мы изменflем е‰инст‚енный бит н‡ ‚хо‰е, н‡ ‚ыхо‰е бу‰ут изменены ‰‚‡ или больше бит‡. 4. Если ‰‚‡ ‚х S-блок‡ отлич‡ютсfl только ‰‚умfl се‰ними бит‡ми (бит‡ми 3 и 4), ‚ыхо‰н‡fl инфом‡циfl ‰олжн‡ отлич‡тьсfl, по к‡йней мее, ‰‚умfl бит‡ми. Ду„ими слми, S (x) и S (x ⊕ 001100) ‰олжны отлич‡тьсfl по к‡йней мее ‰‚умfl бит‡ми, „‰е x — ‚хо‰ и S(x) — ‚ыхо‰. 5. Если ‰‚‡ ‚х ‚ S-блок отлич‡ютсfl пе‚ыми ‰‚умfl бит‡ми (биты 1 и 2) и после‰ними ‰‚умfl бит‡ми (5 и 6), ‰‚‡ ‚ых ‰олжны быть ‡зличны. Ду„ими слми, мы ‰олжны иметь сле‰ующее отношение: S (x) ≠ S (x ⊕ 11bc00), ‚ котоом b и с — поиз‚ольные биты. 6. Есть только 32 шестибито‚ые п‡ы «‚хо‰-‚ых (xi и xj ), ‚ котоых xi ⊕ xj ≠ (000000)2. Эти 32 ‚хо‰ных п‡ы со片ют 32 п‡ы сл ‚ых по 4 бит‡. Если мы со片ем к‡кие-то ‡зличиfl меж‰у 32 ‚ыхми п‡, d = yi ⊕ yj, то из этих d ‰олжны быть о‰ин‡ко‚ыми не больше чем 8. 7. Т‡кой же китеий, к‡к ‚ пункте 6, пименflетсfl к тем S-блок‡м. 200
Лекциfl 6
Ст‡н‰‡т шифниfl ‰‡нных (DES)
8. В любом S-блоке, если е‰инст‚енный ‚хо‰ной бит сох‡нflетсfl к‡к конст‡нт‡ (0 или 1), то ‰у„ие биты изменflютсfl случ‡йно т‡к, чтобы ‡зности меж‰у числом нулей и е‰иниц были минимизины. P-блоки Меж‰у ‰‚умfl fl‰‡ми S-блоко‚ (‚ ‰‚ух после‰ующих ‡у퉇х) есть о‰ин пflмой P-блок (32 н‡ 32) и о‰ин P-блок ‡сшиениfl (32 н‡ 48). Эти ‰‚‡ P-блок‡ ‚месте обеспеч肇ют ‡ссе肇ние бито‚. Мы уже „о‚оили об общем пинципе постоениfl P-блок‡ ‚ лекции 5. З‰есь мы обсу‰им только пик뇉ные P-блоки, используемые ‚ DES. В стуктуе P-блоко‚ были е‡лизны сле‰ующие китеии 1. К‡ж‰ый ‚хо‰ S-блок‡ по‰ключ‡етсfl к ‚ыхо‰у ‰у„о„о S-блок‡ (‚ пе‰ы‰ущем ‡ун‰е). 2. Ни о‰ин ‚хо‰ к ‰‡нному S-блоку не сое‰инflетсfl с ‚ыхо‰ом от то„о же с‡мо„о блок‡ (‚ пе‰ы‰ущем ‡ун‰е). 3. Четые бит‡ от к‡ж‰о„о S-блок‡ и‰ут ‚ шесть ‡зличных S-блоко‚ (‚ сле‰ующем ‡ун‰е). 4. Ни о‰ин из ‰‚ух бито‚ ‚ых от S-блок‡ не и‰ет ‚ тот же с‡мый S-блок (‚ сле‰ующем ‡ун‰е). 5. Если число блоко‚ S-блоко‚ 8, то S1, S2,..., S 8. ‡. Выхо‰ Sj-2 пеехо‰ит ‚ о‰ин из пе‚ых ‰‚ух бито‚ Sj (‚ сле‰ующем ‡ун‰е). б. Бит ‚ых от Si-1 пеехо‰ит ‚ о‰ин из после‰них ‰‚ух бито‚ Sj (‚ сле‰ующем ‡ун‰е). ‚. Выхо‰ Sj +1 пеехо‰ит ‚ о‰ин из ‰‚ух се‰них бито‚ Sj (‚ сле‰ующем ‡ун‰е). 6. Длfl к‡ж‰о„о S-блок‡ ‰‚‡ бит‡ ‚ых и‰ут ‚ пе‚ые или после‰ние ‰‚‡ бит‡ S-блок‡ ‚ сле‰ующем ‡ун‰е. Ду„ие ‰‚‡ бит‡ ‚ых и‰ут ‚ се‰ние биты S-блок‡ ‚ сле‰ующем ‡ун‰е. 7. Если ‚ыхо‰ от Sj пеехо‰ит ‚ о‰ин из се‰них бито‚ ‚ Sk (‚ сле‰ующем ‡ун‰е), то бит ‚ых от Sk не может и‰ти ‚ се‰ний бит Sj. Если мы ‰опуск‡ем j = k, то пзум傇ем, что ни о‰ин се‰ний бит S-блок‡ не может и‰ти ‚ о‰ин из се‰них бито‚ то„о же с‡мо„о S-блок‡ ‚ сле‰ующем ‡ун‰е. Число ‡ун‰о‚ DES используют шест퇉ц‡ть ‡ун‰о‚ шиф‡ Ф‡йстелfl. Док‡з‡но, что после то„о к‡к к‡ж‰ый текст з‡шифн з‡ ‚осемь ‡ун‰о‚, к‡ж‰ый бит з‡шифнно„о текст‡ — функциfl к‡ж‰о„о бит‡ исхо‰но„о текст‡ и к‡ж‰о„о ключе‚о„о бит‡. З‡шифнный текст — полностью случ‡йн‡fl функциfl исхо‰но„о текст‡ и з‡шифнно„о текст‡. Отсю‰‡ ‚о‰е бы сле‰ует, что ‚осьми ‡ун‰о‚ ‰олжно быть ‰ост‡точно ‰лfl хооше„о шифниfl. О‰н‡ко экспеименты пок‡зы‚‡ют, что некотоые ‚есии DES с менее чем шест퇉ц‡тью ‡у퉇ми более уflз‚имы к ‡т‡к‡м зн‡ниfl исхо‰но„о текст‡, чем к ‡т‡ке „убой силы, кото‡fl тебует использниfl шест퇉ц‡ти ‡ун‰о‚ DES. 201
Кус
Киптфиfl и безоп‡сность сетей
Сл‡бости DES В течение пошлых нескольких лет китики н‡шли некотоые сл‡бости ‚ DES. Мы к‡тко ук‡жем н‡ не‰ост‡тки, котоые были обн‡ужены ‚ стуктуе шиф‡. S-блоки. В лите‡туе ук‡зы‚‡ютсfl, по к‡йней мее, ти поблемы S-блоко‚. 1. В S-блоке 4 ти бит‡ ‚ых мо„ут быть получены тем же с‡мым способом, что и пе‚ый бит ‚ых: ‰ополнением некотоых из ‚хо‰ных бито‚. 2. Д‚‡ специ‡льно ‚ыб‡нных ‚х к м‡сси‚у S-блок‡ мо„ут со片ть тот же с‡мый ‚ыхо‰. 3. Можно получить тот же с‡мый ‚ыхо‰ ‚ о‰ном е‰инст‚енном ‡ун‰е, изменflfl биты только ‚ тех сосе‰них S-блок‡х. P-блоки. В стуктуе P-блок‡ были н‡й‰ены о‰н‡ 燄‡‰к‡ и о‰н‡ сл‡бость. 1. Не flсно, почему поектио‚щики DES использли н‡ч‡льную и конечную пеест‡но‚ки. Эти пеест‡но‚ки не ‚носflт ник‡ких но‚ых с‚ойст‚ с точки зениfl безоп‡сности. 2. В пеест‡но‚ке ‡сшиениfl (‚ функции) пе‚ые и чет‚етые биты после‰о‚‡тельностей н‡ 4 бит‡ по‚тоflютсfl. Сл‡бость ‚ ключе шиф‡ Р‡зме ключ‡. Китики ут‚е扇ют, что с‡м‡fl сеьезн‡fl сл‡бость DES — это ‡зме ключ‡ (56 бито‚). Чтобы пе‰пинflть ‡т‡ку „убой силы ‰‡нно„о блок‡ з‡шифнно„о текст‡, злоумышленники ‰олжны по‚еить 256 ключей. a. Пименflfl ‰оступную се„о‰нfl техноло„ию, можно по‚еить о‰ин миллион ключей ‚ секун‰у. Это озн‡ч‡ет, что потебуетсfl более чем ‰‚е тысflчи лет, чтобы ‚ыполнить ‡т‡ку „убой силы н‡ DES, используfl компьюте только с о‰ним поцессоом. b. Если мы с‰ел‡ем компьюте с о‰ним миллионом чипо‚ поцессоо‚ (ллельн‡fl об‡ботк‡), то сможем по‚еить ‚се множест‚о ключей пиблизительно з‡ 20 ч‡со‚. К‡ был ‚‚е‰ен DES, стоимость т‡ко„о компьюте‡ был‡ более чем несколько миллионо‚ ‰олл‡о‚, но он‡ бысто снизил‡сь. Специ‡льный компьюте был соз‰‡н ‚ 1998 „о‰у — и н‡шел ключ з‡ 112 ч‡со‚. c. Компьютеные сети мо„ут мо‰елить ллельную об‡ботку. В 1977 „о‰у ком‡н‰‡ иссле‰о‚‡телей использо‚‡л‡ 3500 компьютео‚, по‰ключенных к Internet, чтобы н‡йти ключ RSA з‡ 120 ‰ней. Множест‚о ключей было ‡з‰елено се‰и ‚сех этих компьютео‚, и к‡ж‰ый компьюте был от‚етст‚енен з‡ по‚еку ч‡сти ‰омен‡ DES. Если 3500 с‚flз‡нных ‚ сеть компьютео‚ мо„ут н‡йти ключ чеез 120 ‰ней, то секетное общест‚о из 42 000 члено‚ может н‡йти ключ чеез 10 ‰ней. Пи‚е‰енное ‚ыше пок‡зы‚‡ет, что DES с ‡змеом ключ‡ шиф‡ 56 бито‚ не обеспеч肇ет ‰ост‡точной безоп‡сности. Позже ‚ этой лекции мы у‚и‰им, что есть о‰но ешение этой поблемы – это использние тойно„о DES(3DES) с ‰‚умfl ключ‡ми (112 бито‚) или тойно„о DES с темfl ключ‡ми (биты 16). 202
Лекциfl 6
Ст‡н‰‡т шифниfl ‰‡нных (DES)
Сл‡бые ключи. Четые ключ‡ из 256 ‚озможных ключей н‡зы‚‡ютсfl сл‡быми ключ‡ми. Сл‡бые ключи — это о‰ни из тех, котоые после опе‡ции у‰‡лениfl по‚еочных бит (используfl т‡блицу 6.12) состоflт из ‚сех нулей или ‚сех е‰иниц или поло‚ины нулей и поло‚ины е‰иниц. Т‡кие ключи пок‡з‡ны ‚ т‡блице 6.18. Т‡блиц‡ 6.18. Сл‡бые ключи Ключи ‰о у‰‡лениfl по‚еочных бит (64 бит‡) 0101 0101 0101 0101 1F1F 1F1F 1F1F 1F1F E0E0 E0E0 E0E0 E0E0 FEFE FEFE FEFE FEFE
Дейст‚ующие ключи (56 бит) 0000000 0000000 0000000 FFFFFFF FFFFFFF 0000000 FFFFFFF FFFFFFF
Ключи ‡у퉇, со片нные от любо„о из этих сл‡бых ключей, — те же с‡мые и имеют тот же с‡мый тип, что и ключ шиф‡. Н‡пиме, эти шест퇉ц‡ть ключей ‡у퉇 со片ют пе‚ый ключ, котоый состоит из ‚сех нулей или ‚сех е‰иниц или н‡поло‚ину из нулей и е‰иниц. Это поисхо‰ит по той пичине, что ‡л„оитм „енеиниfl ключей сн‡ч‡л‡ ‰елит ключ шиф‡ н‡ ‰‚е поло‚ины. Смещение или пеест‡но‚к‡ блок‡ не изменflют блок, если он состоит из ‚сех нулей, или ‚сех е‰иниц, или н‡поло‚ину из нулей и е‰иниц. В чем оп‡сность использниfl сл‡бых ключей? Если мы з‡шифли блок сл‡бым ключом и ‚после‰ст‚ии ‡сшифли езульт‡т тем же с‡мым сл‡бым ключом, мы получ‡ем пе‚он‡ч‡льный блок. Поцесс со片ет о‰ин и тот же пе‚он‡ч‡льный блок, если мы ‡сшифо‚ы‚‡ем блок ‰‚‡ж‰ы. Ду„ими слми, к‡ж‰ый сл‡бый ключ есть ин‚есиfl с‡мо„о себfl: Ek. (Ek (P)) = P, к‡к это пок‡з‡но н‡ ис. 6.11.
Рис. 6.11. Д‚ойное шифние и ‰ешифние со сл‡бым ключом Сл‡бых ключей 퇉о изб儇ть, потому что поти‚ник может ле„ко ‡спозн‡ть их н‡ пеех‚‡ченном шифе. Если после ‰‚ух эт‡по‚ ‰ешиф‡ции езульт‡т тот же с‡мый, поти‚ник опе‰елflет, что он н‡шел ключ. 203
Кус
Киптфиfl и безоп‡сность сетей
Пиме 6.8 Д‡‚‡йте попобуем пименить пе‚ый сл‡бый ключ ‚ т‡блице 6.18, чтобы ‰‚‡ ‡з‡ з‡шифть блок. После то„о к‡к по‚е‰ено ‰‚‡ шифниfl с тем же с‡мым ключом, ‚ езульт‡те получим исхо‰ный текст. Об‡тите ‚ним‡ние, что мы ни ‡зу не использли ‡л„оитм ‰ешифниfl, ‡ только по‚ели ‰‚‡ ‡з‡ шифние. Ключ: 0x0101 0101 0101 0101 Исхо‰ный текст: 0xl23456887654321
З‡шифнный текст: 0x814FE938589154F7
Ключ: 0x0101 0101 0101 0101 Исхо‰ный текст: 0x814FE938589154F7 З‡шифнный текст: 0xl234.56887654321
Полусл‡бые ключи. Имеютсfl шесть ключе‚ых п‡, котоые н‡з‚‡ны полусл‡быми ключ‡ми. Этим шесть п‡ пок‡з‡ны ‚ Т‡блице 6.19 (фом‡т н‡ 64 бит‡ пее‰ у‰‡лением по‚еочных бит). Полусл‡бые ключи со片ют только ‰‚‡ ‡зличных ключ‡ ‡у퉇 и з‡тем по‚тоflют их ‚осемь ‡з. Коме то„о, ключи ‡у퉇, со片нные от к‡ж‰ой п‡ы, — о‰ни и те же ‚ ‡зличном поfl‰ке. Т‡блиц‡ 6.19. Полусл‡бые ключи Пе‚ый ключ ‚ п‡е 01FE 01FE 01FE 01FE 1FEO 1FEO OEF1 OEF1 01EO 01E1 01F1 01F1 1FFE 1FFE OEFE OEFE 011F 011F 010E 010E EOFE EOFE FIFE FIFE
Втоой ключ ‚ п‡е FE01 FE01 FE01 FE01 E01F E01F F10E F10E E001 E001 F101 F101 FE1F FE1F FEOE FEOE 1F01 1F01 OE01 OE01 FEEO FEEO FEF1 FEFl
Чтобы поиллюстить и‰ею, мы со片ли ключи ‡у퉇 от пе‚ой п‡ы, к‡к пок‡з‡но ниже: Ключ ‡у퉇 1 Ключ ‡у퉇 2 Ключ ‡у퉇 3 Ключ ‡у퉇 4 Ключ ‡у퉇 5 Ключ ‡у퉇 6 Ключ ‡у퉇 7 Ключ ‡у퉇 8 Ключ ‡у퉇 9 Ключ ‡у퉇10 Ключ ‡у퉇 11 Ключ ‡у퉇 12 Ключ ‡у퉇 13 Ключ ‡у퉇 14 Ключ ‡у퉇 15
9153E54319BD 6EAC1ABCE642 6EAC1ABCE642 6EAC1ABCE642 6EAC1ABCE642 6EAC1ABCE642 6EAC1ABCE642 6EAC1ABCE642 9153E54319BD 9153E54319BD 9153E54319BD 9153E54319BD 9153E54319BD 9153E54319BD 9153E54319BD 204
6EAC1ABCE642 9153E54319BD 9153E54319BD 9153E54319BD 9153E54319BD 9153E54319BD 9153E54319BD 9153E54319BD 6EAC1ABCE642 6EAC1ABCE642 6EAC1ABCE642 6EAC1ABCE642 6EAC1ABCE642 6EAC1ABCE642 6EAC1ABCE642
Лекциfl 6
Ст‡н‰‡т шифниfl ‰‡нных (DES)
Ключ ‡у퉇 16 6EAC1ABCE642 9153E54319BD К‡к пок‡зы‚‡ет список, имеетсfl ‚осемь о‰ин‡ко‚ых ключей ‡у퉇 ‚ к‡ж‰ом полусл‡бом ключе. Коме то„о, ключи ‡у퉇 1 ‚ пе‚ом множест‚е — те же, что и ключи ‡у퉇 16 ‚о ‚тоом; ключи ‡у퉇 2 ‚ пе‚ом — те же с‡мые, что и
ключи ‡у퉇 15 ‚о ‚тоом, и т‡к ‰‡лее. Это озн‡ч‡ет, что ключи ин‚есны ‰у„ ‰у„у: Ek2. (Ek1E (P)) = P, к‡к пок‡з‡но н‡ ис. 6.12. Рис. 6.12. П‡‡ полусл‡бых ключей пи шифнии и ‰ешифнии Возможно сл‡бые ключи. Т‡кже имеетсfl 48 ключей, котоые н‡зы‚‡ютсfl ‚озможно сл‡быми ключ‡ми. Возможно сл‡бый ключ со片ет только четые ‡зличных ключ‡ ‡у퉇; ‰у„ими слми, шест퇉ц‡ть ключей ‡ун‰о‚ ‡з‰елены н‡ четые „уппы, и к‡ж‰‡fl „упп‡ состоит из четыех о‰ин‡ко‚ых ключей ‡у퉇. Пиме 6.9 К‡к ‚еоflтность случ‡йно„о ‚ыбо‡ сл‡бо„о, полусл‡бо„о или ‚озможно сл‡бо„о ключ‡? Решение Множест‚о ключей DES ‡‚но 256. Общее количест‚о ‚ышеупомflнутых ключей — 64 (4 + 12 + 48). Веоflтность ‚ыбо‡ о‰но„о из этих ключей ‡‚н‡ 8,8 × 10 –16, т.е. исключительно м‡л‡. Ключе‚ое ‰ополнение. Се‰и множест‚‡ ключей (256) некотоые ключи мо„ут быть получены ин‚есией (изменение из 0 ‚ 1 или 1 ‚ 0) к‡ж‰о„о бит‡ ‚ ключе. Ключе‚ое ‰ополнение упощ‡ет поцесс кипто‡н‡лиз‡. Е‚‡ может использть только поло‚ину ‚озможных ключей (255), чтобы ‚ыполнить ‡т‡ку „убой силы, потому что – – – C = E (K, P) → C = E (K, P ) Ду„ими слми, если мы з‡шифли ‰ополнение исхо‰но„о текст‡ ‰ополнением ключ‡, мы получ‡ем ‰ополнение з‡шифнно„о текст‡. Е‚‡ не 205
Кус
Киптфиfl и безоп‡сность сетей
‰олжн‡ по‚еflть ‚се 256 ‚озможных ключей, он‡ может по‚еить только поло‚ину из них и з‡тем ‰ополнить езульт‡т. Пиме 6.10 Д‡‚‡йте по‚еим эти с‚е‰ениfl о ключ‡х ‰ополнениfl. Мы используем поиз‚ольный ключ и исхо‰ный текст, ‰лfl то„о чтобы н‡йти соот‚етст‚ующий з‡шифнный текст. Если мы имеем ключе‚ое ‰ополнение и исхо‰ный текст, то получим ‰ополнение пе‰ы‰уще„о з‡шифнно„о текст‡ (т‡блиц‡ 6.20). Т‡блиц‡ 6.20. Результ‡ты пиме‡ 6.10
Ключ Исхо‰ный текст З‡шифнный текст
Ои„ин‡л 1234123412341234 12345678ABCDEF12 E112BE1DEFC7A367
Дополнение EDCBEDCBEDCBEDCB EDCBA98754321.0ED 1EED41E210385C98
Кл‡стеный ключ. Кл‡стеный ключ ‡ссм‡т肇ет ситу‡ции, ‚ котоых ‰‚‡ или более ‡зличных ключ‡ со片ют о‰ин и тот же з‡шифнный текст из о‰но„о и то„о же исхо‰но„о текст‡. Оче‚и‰но, к‡ж‰‡fl  полусл‡бых ключей — ключе‚ой кл‡сте. О‰н‡ко больше кл‡стео‚ не было н‡й‰ено. Бу‰ущие иссле‰о‚‡ниfl, ‚озможно, мо„ут откыть некотоые ‰у„ие.
6.4. Мно„ок‡тное пименение DES К‡к мы уже ‚и‰ели, осно‚н‡fl китик‡ DES н‡п‡‚лен‡ н‡ ‰лину ключ‡. Возможные техноло„ии и ‚озможности ллельных поцессоо‚ ‰ел‡ют е‡льной ‡т‡ку „убой силы. О‰но из ешений ‰лfl улучшениfl безоп‡сности — это отк‡з от DES и ‡з‡ботк‡ но‚о„о шиф‡. Это ешение мы ‡ссмотим ‚ лекции 7 пи пименении AES. Втоое ешение — мно„ок‡тное (к‡сꇉное) пименение множест‚‡ ключей. Это ешение, котоое использлось некотоое ‚емfl, не тебует ин‚естиций ‚ но‚ое пммное обеспечение и ‡птные се‰ст‚‡. Ниже ‡ссмотен т‡кой по‰хо‰. К‡к мы узн‡ли ‚ лекции 5, по‰ст‡но‚к‡, кото‡fl ‡змещ‡ет ‚се ‚озможные ‚хо‰ы ‚о ‚се ‚озможные ‚ыхо‰ы, fl‚лflетсfl „уппой с отоб‡жениflми элементо‚ множест‚‡ и н‡боом опе‡ций. В этом случ‡е пименение ‰‚ух после‰о‚‡тельных отоб‡жений бесполезно, потому что мы можем ‚с儉‡ н‡йти тетье отоб‡жение, котоое эк‚肇лентно композиции этих ‰‚ух (с‚ойст‚о з‡мкнутости). Это озн‡ч‡ет, что если DES — „упп‡, то о‰нок‡тный DES с ключом k3 ‰ел‡ет то же с‡мое (исунок 6.13). К сч‡стью DES — не „упп‡. Он‡ б‡зиуетсfl н‡ сле‰ующих ‰‚ух мет‡х. ‡. Номе ‚озможных ‚хо‰о‚ или ‚ыхо‰о‚ ‚ DES — N = 264. Это озн‡ч‡ет, что N!= (264)! = 10347 380 000 000 000 000 000 отоб‡жений. О‰ин из способо‚ способ с‰ел‡ть DES „уппой — это пеж‡ть ‚се эти отоб‡жениfl с ‡змеом ключ‡ log2 (264!) — 270 бито‚. Но мы зн‡ем, что ‰лин‡ ключ‡ ‚ DES — 56 бит (только м‡леньк‡fl ч‡сть это„о тебуемо„о о„омно„о ключ‡). б. Ду„ой способ с‰ел‡ть DES „уппой – с‰ел‡ть, чтобы множест‚о отоб‡жений было по‰множест‚ом множест‚‡ ‚ смысле 燂исимости от пе‚о„о 206
Лекциfl 6
Ст‡н‰‡т шифниfl ‰‡нных (DES)
Рис. 6.13. Композициfl отоб‡жений мет‡; но было ‰ок‡з‡но, что „уппы, со片нные из „уппы с помощью пе‚о„о мет‡, имеют ключе‚ой ‡зме 56 бито‚. Если DES не fl‚лflетсfl „уппой, то очень м‡ло‚еоflтно, что мы можем н‡йти ключ k3, т‡кой, что Ek2 (Ek1 (P)) =Ek3 (P) Это озн‡ч‡ет, что мы можем пименить ‰‚ук‡тные или техк‡тные DES, чтобы у‚еличить ‡зме ключ‡.
Д‚ук‡тный DES Пе‚ый по‰хо‰ состоит ‚ том, чтобы использть ‰‚ук‡тный DES (2DES). Пи этом по‰хо‰е мы пименflем ‰‚‡ тип‡ шифо‚ DES ‰лfl шифниfl и ‰‚‡ тип‡ об‡тных шифо‚ ‰лfl ‰ешифниfl. К‡ж‰ый тип использует ‡зличный ключ, что озн‡ч‡ет, что ‡зме ключ‡ тепеь у‰‚оилсfl (112 бито‚). О‰н‡ко ‰‚ук‡тный DES уflз‚им к ‡т‡ке зн‡ниfl откыто„о текст‡, к‡к это обсу扇етсfl ‚ сле‰ующем ‡з‰еле. Н‡ пе‚ый ‚з„лfl‰ ‰‚ук‡тные DES у‚елич肇ют число испыт‡ний пи поиске ключ‡ от 256 (‚ о‰нок‡тном DES) к 2112 (‚ ‰‚ук‡тном DES). О‰н‡ко пи использнии ‡т‡ки зн‡ниfl исхо‰но„о текст‡, н‡зы‚‡емой ‡т‡кой с‚е‰ениfl к сее‰ине, можно ‰ок‡з‡ть, что ‰‚ук‡тный DES улучш‡ет эту устойчи‚ость (‰о 257 по испыт‡ниflм), но не чез‚ыч‡йно (к 2112). Рисунок 6.14 пок‡зы‚‡ет ‰и‡„‡мму ‰лfl ‰‚ук‡тно„о DES. Алис‡ использует ‰‚‡ ключ‡, k1 и k2, чтобы з‡шифо‚ы‚‡ть исхо‰ный текст P ‚ з‡шифнный текст C; Боб использует з‡шифнный текст C и ‰‚‡ ключ‡, k2 и k1, ‰лfl ‚осст‡но‚лениfl P. В се‰ней точке М — текст, со片нный пе‚ым шифнием или пе‚ым ‰ешифнием. Длfl обеспечениfl ильной ‡боты он ‰олжен быть о‰ин‡ко‚ым ‰лfl шифниfl и ‰ешифниfl. Ду„ими слми, мы имеем ‰‚‡ отношениfl: 207
Кус
Киптфиfl и безоп‡сность сетей
Рис. 6.14. Ат‡к‡ с‚е‰ениfl к сее‰ине ‚ ‰‚ук‡тном DES M = EK1(P) и M = EK2(C) Пе‰положим, что Е‚‡ пеех‚‡тил‡ пе‰ы‰ущую п‡у P и C (‡т‡к‡ зн‡ниfl исхо‰но„о текст‡). Б‡зиуflсь н‡ пе‚ом отношении из упомflнутых ‚ыше, Е‚‡ з‡шифо‚ы‚‡ет P, используfl ‚се ‚озможные зн‡чениfl (256) k1, и з‡писы‚‡ет ‚се зн‡чениfl, полученные ‰лfl М. Б‡зиуflсь н‡ ‚тоых отношениflх, упомflнутых ‚ыше, Е‚‡ ‡сшифо‚ы‚‡ет C, используfl ‚се ‚озможные зн‡чениfl (256) k2. Он‡ з‡писы‚‡ет ‚се зн‡чениfl, полученные ‰лfl М. Д‡лее Е‚‡ со片ет ‰‚е т‡блицы, отсотинные со„л‡сно зн‡чениflм M. Он‡ с‡‚н肇ет зн‡чениfl ‰лfl М, пок‡ не н‡хо‰ит те п‡ы k1 и k2, ‰лfl котоых зн‡чение М fl‚лflетсfl о‰ним и тем же ‚ обеих т‡блиц‡х (к‡к пок‡з‡но н‡ ис. 6.15). Об‡тите ‚ним‡ние, что ‰олжн‡ быть по к‡йней мее о‰н‡ , потому что он‡ ‰ел‡ет исчепы‚‡ющий поиск комбин‡ции ‰‚ух ключей. 1. Если есть только о‰но соот‚етст‚ие. Е‚‡ н‡шл‡ ‰‚‡ ключ‡ (k1 и k2). Если есть больше чем о‰ин к‡н‰и‰‡т, Е‚‡ пеемещ‡етсfl ‚ сле‰ующий ш‡„. 2. Он‡ беет ‰у„ую пеех‚‡ченную п‡у з‡шифнно„о текст‡ и исхо‰но„о текст‡ и использует к‡ж‰о„о к‡н‰и‰‡т‡ ‰лfl получениfl п‡ы ключей, чтобы уст‡но‚ить, может ли он‡ получить з‡шифнный текст из исхо‰но„о текст‡. Если он‡ н‡хо‰ит больше чем о‰но„о к‡н‰и‰‡т‡ ‚ ‚и‰е п‡ы ключей, он‡ по‚тоflет ш‡„ 2, пок‡, н‡конец, не н‡хо‰ит уник‡льную п‡у. Было ‰ок‡з‡но, что после пименениfl ‚тоо„о ш‡„‡ к нескольким пеех‚‡ченным п‡‡м «з‡шифнный текст — исхо‰ный текст» ключи были н‡й‰ены. Это озн‡ч‡ет, что ‚место то„о чтобы использть поиск ключей с помощью 2112 испыт‡ний, Е‚‡ по‚о‰ит 256 испыт‡ний поиск‡ ключ‡ и по‚еflет ‰‚‡ ‡з‡ (несколько больше испыт‡ний тебуетсfl, если н‡й‰ен н‡ пе‚ом ш‡„е е‰инст‚енный к‡н‰и‰‡т). Ду„ими слми, ‰‚脇flсь от о‰нок‡тно„о DES ‰о ‰‚ук‡тно„о DES, 208
Лекциfl 6
Ст‡н‰‡т шифниfl ‰‡нных (DES)
Рис. 6.15 Т‡блицы ‰лfl ‡т‡ки «с‚е‰ениfl к сее‰ине»
мы у‚еличили объем испыт‡ний от 256 ‰о 257 (‡ не ‰о 2112, к‡к это к‡жетсfl пи по‚ехностном по‰хо‰е).
Техк‡тный DES Длfl то„о чтобы улучшить безоп‡сность DES, был пе‰ложен техк‡тный DES (3DES). Он пименflет ти к‡сꇉ‡ DES ‰лfl шифниfl и ‰ешифниfl. Се„о‰нfl используютсfl ‰‚е ‚есии техк‡тных DES: техк‡тный DES с ‰‚умfl ключ‡ми и техк‡тный DES с темfl ключ‡ми. Техк‡тный DES с ‰‚умfl ключ‡ми В техк‡тном DES с ‰‚умfl ключ‡ми есть только ‰‚‡ ключ‡: k1 и k2. Пе‚ый и тетий к‡сꇉы используют k1; ‚тоой к‡сꇉ использует k2. Чтобы с‰ел‡ть техк‡тный DES со‚местимым с DES, се‰ний к‡сꇉ пименflет ‰ешифние (об‡тный шиф) н‡ стооне шифниfl и шифние (шиф) н‡ стооне ‰е-
Рис. 6.16. Техк‡тный DES с ‰‚умfl ключ‡ми 209
Кус
Киптфиfl и безоп‡сность сетей
шифниfl. Т‡ким способом сообщение, з‡шифнное DES-ключом k, может быть ‡сшифно техк‡тным DES, если k1 = k2 = k. Хотfl техк‡тный DES с ‰‚умfl ключ‡ми т‡кже уflз‚им пи ‡т‡ке «зн‡ниfl исхо‰но„о текст‡», он „о‡з‰о устойчи‚ее, чем ‰‚ук‡тный DES. Он был пинflт ‰лfl б‡нко‚. Рисунок 6.16 пок‡зы‚‡ет техк‡тный DES с ‰‚умfl ключ‡ми. Техк‡тный DES с темfl ключ‡ми Возможность ‡т‡к «зн‡ниfl исхо‰но„о текст‡» пи техк‡тном DES с ‰‚умfl ключ‡ми з‡ст‡‚ил‡ некотоые пиложениfl использть техк‡тный DES с темfl ключ‡ми. Ал„оитм может пименflть ти к‡сꇉ‡ шиф‡ DES н‡ стооне шифниfl и ти к‡сꇉ‡ об‡тных шифо‚ н‡ стооне ‰ешифниfl. Длfl со‚местимости с о‰нок‡тным DES стоон‡ шифниfl использует EDE, ‡ стоон‡ ‰ешифниfl — DED. E (encryption) — к‡сꇉ шифниfl, D (decryption) — к‡сꇉ ‰ешифниfl. Со‚местимость с о‰нок‡тным DES обеспеч肇етсfl пи k1 = k и уст‡но‚кой k2 и k3 к о‰ному и тому же поиз‚ольному ключу, ‚ыб‡нному пиемником. Техк‡тный DES с темfl ключ‡ми используетсfl мно„ими пиложениflми, т‡кими, к‡к PGP (Pretty Good Privacy), поскольку „‡‡нтиует очень хоошую конфи‰енци‡льность (см. лекцию 16).
6.5. Безоп‡сность DES DES, к‡к пе‚ый блочный шиф, имеющий ‚‡жное зн‡чение, пошел чеез мно„о испыт‡ний н‡ безоп‡сность. Се‰и пе‰пинflтых ‡т‡к лишь ти пе‰ст‡‚лflют интеес: „уб‡fl сил‡, ‰иффеенци‡льный кипто‡н‡лиз и линейный кипто‡н‡лиз.
Ат‡к‡ „убой силы Мы уже обсу扇ли сл‡бость шиф‡ с коотким ключом. Сл‡бость ключ‡ со‚местно с ‰у„ими ‡ссмотенными не‰ост‡тк‡ми пи‚о‰ит к тому, что DES может быть ‚злом‡н с числом испыт‡ний 255. О‰н‡ко се„о‰нfl большинст‚о пиложений использует либо 3DES с ‰‚умfl ключ‡ми (‡зме ключ‡ 2112), либо 3DES с темfl ключ‡ми (‡зме ключ‡ 2168). Эти ‰‚е мно„ок‡тные ‚есии DES поз‚олflют ему пок‡зы‚‡ть сущест‚енную стойкость к ‡т‡к‡м „убой силы.
Диффеенци‡льный кипто‡н‡лиз Мы ‚ лекции 5 уже обсу扇ли мето‰ику ‰иффеенци‡льно„о кипто‡н‡лиз‡ ‰лfl со‚еменных блочных шифо‚. DES не fl‚лflетсfl устойчи‚ым к т‡кому ‚и‰у ‡т‡ки. О‰н‡ко мно„ое ук‡зы‚‡ет, что ‡з‡ботчики DES уже зн‡ли о т‡кой оп‡сности и поектили S-блоки и специ‡льно ‚ыб‡ли число ‡ун‰о‚, чтобы с‰ел‡ть DES стойким к этому типу ‡т‡ки. Се„о‰нfl пок‡з‡но, что DES может быть ‚злом‡н, используfl ‰иффеенци‡льный кипто‡н‡лиз, если мы имеем 247 ‚ыбоок исхо‰но„о текст‡ или 255 из‚естных исхо‰ных тексто‚. Хотfl это ‚ы„лfl‰ит более эффекти‚но, чем ‚ ‡т‡ке „убой силы, пе‰положить, что кто-то зн‡ет 247 ‚ыбоок исхо‰но„о текст‡ или 255 ‚ыбоок исхо‰но„о текст‡, п‡ктически не‚озможно. Поэтому мы можем ск‡з‡ть, что DES fl‚лflетсfl стойким к ‰иффеенци‡льному кип210
Лекциfl 6
Ст‡н‰‡т шифниfl ‰‡нных (DES)
то‡н‡лизу. Т‡кже пок‡з‡но, что у‚еличение числ‡ ‡ун‰о‚ ‰о 20 у‚елич肇ет число тебуемых ‚ыбоок исхо‰но„о текст‡ ‰лfl ‡т‡ки более чем ‰о 264. Т‡кое у‚еличение не‚озможно, потому что число блоко‚ исхо‰но„о текст‡ ‚ DES только 264. Мы пок‡жем пиме ‰иффеенци‡льно„о кипто‡н‡лиз‡ ‚ пиложении N.
Линейный кипто‡н‡лиз Мы обсу扇ли мето‰ику линейно„о кипто‡н‡лиз‡ ‰лfl со‚еменных блочных шифо‚ ‚ лекции 5. Линейный кипто‡н‡лиз — более нfl мето‰ик‡, чем ‰иффеенци‡льный кипто‡н‡лиз. DES более уflз‚им к пименению линейно„о кипто‡н‡лиз‡, чем к ‰иффеенци‡льному кипто‡н‡лизу, — ‚еоflтно, потому, что этот тип ‡т‡к не был из‚естен поектио‚щик‡м DES и Sблоки не fl‚лflютсfl очень стойкими к линейному кипто‡н‡лизу. Пок‡з‡но, что DES может быть ‚злом‡н с использнием 243 п‡ы из‚естных исхо‰ных тексто‚. О‰н‡ко с п‡ктической точки зениfl пеех‚‡т т‡ко„о количест‚‡ п‡ очень м‡ло‚еоflтен. Мы пок‡жем пиме линейно„о кипто‡н‡лиз‡ DES ‚ пиложении N.
6.6. Рекомен‰о‚‡нн‡fl лите‡ту‡ Нижесле‰ующие кни„и и с‡йты обеспеч肇ют более ‰ет‡льную инфом‡цию о пе‰мет‡х, котоые мы обсу扇ли ‚ этой лекции.
Кни„и [Sta06], [Sti06J, [Rhe03], [Sal03J, [Mao04J] и [TW06] — это кни„и, котоые ‡ссм‡т肇ют DES.
С‡йты Нижесле‰ующие с‡йты со‰еж‡т боле по‰обную инфом‡цию о тем‡х, обсуж‰енных ‚ этой лекции, http://www.itl.nist.gov/fipspubs/np46-2.htm www.nist.gov/director/prog-ofc/report01-2.pdf www.engr.mun.ca/-how ard/PAPERS/ldc_tutorial.ps islab.oregonstate.edu/koc/ece575/notes/dc 1.pdf homes.esat.kuleuven.be / ~ abiryuko/Cryptan/matsui_des http://nsfsecurity.pr.erau.edu/crypto/lincrypt.html
211
Кус
Киптфиfl и безоп‡сность сетей
6.7. Ито„и • Ст‡н‰‡т шифниfl ‰‡нных (DES) — блочный шиф с симметичными ключ‡ми, и片нный н‡цион‡льным Институтом Ст‡н‰‡то‚ и Техноло„ии (NIST) к‡к FIPS 46 ‚ Фе‰е‡льном Ре„исте. • Н‡ стооне шифниfl DES пиним‡ет исхо‰ный текст н‡ 64 бит‡ и со片ет з‡шифнный текст н‡ 64 бит‡. Н‡ стооне ‰ешифниfl DES пиним‡ет з‡шифнный текст н‡ 64 бит‡ и со片ет блок н‡ 64 бит‡ исхо‰но„о текст‡. Ключ шиф‡ н‡ 56 бито‚ о‰но„о тип‡ используетсfl и ‰лfl шифниfl, и ‰лfl ‰ешифниfl. • Поцесс шифниfl состоит из ‰‚ух пеест‡но‚ок (P-блоки), котоые н‡зы‚‡ютсfl н‡ч‡льными и конечными пеест‡но‚к‡ми, и шест퇉ц‡ти ‡ун‰о‚ Ф‡йстелfl. К‡ж‰ый ‡ун‰ DES — шиф Ф‡йстелfl с ‰‚умfl элемент‡ми (смеситель и устойст‚о з‡мены). К‡ж‰ый из этих элементо‚ fl‚лflетсfl об‡тимым. • Осно‚ой DES fl‚лflетсfl функциfl DES. Функциfl DES пименflет ключ н‡ 48 бито‚ к с‡мым ым 32 бит‡м, чтобы получить н‡ ‚ыхо‰е 32 бит‡. Эт‡ функциfl сост‡‚лен‡ из четыех опе‡ций: пеест‡но‚ки ‡сшиениfl, отбел肇телfl (котоый ‰оᇂлflет ключ), „уппы S-блоко‚ и пflмой пеест‡но‚ки. • Гене‡то ключей ‡у퉇 со片ет из ключ‡ шиф‡ н‡ 56 бито‚ шест퇉ц‡ть ключей по 48 бито‚. О‰н‡ко ключ шиф‡ обычно пе‰ст‡‚лflетсfl к‡к ключ н‡ 64 бит‡, ‚ котоом 8 ‰ополнительных бито‚ fl‚лflютсfl по‚еочными бит‡ми — они отб‡сы‚‡ютсfl пее‰ ф‡ктическим поцессом „енеиниfl ключей. • DES пок‡зы‚‡ет хоошие ‡бочие х‡‡ктеистики по отношению к эффект‡м полноты (з‡конченности) и 뇂ины. К числу сл‡бостей DES относflтсfl: постоение шиф‡ (S-блоки и P-блоки) и ключ шиф‡ (‰лин‡), сл‡бые ключи, полусл‡бые ключи, ‚озможно сл‡бые ключи и ‰ополнение ключей. • Т‡к к‡к DES — не „упп‡, о‰но из ешений по улучшению безоп‡сности DES состоит ‚ том, чтобы пользтьсfl мно„ок‡тными DES, котоые используют к‡тное число пименениfl ключей (‰‚ук‡тный или техк‡тный DES). Д‚ук‡тный DES уflз‚им к ‡т‡ке с‚е‰ениfl к сее‰ине, поэтому ‚ обычных пиложениflх используетсfl техк‡тный DES с ‰‚умfl ключ‡ми или с темfl ключ‡ми. • Р‡з‡ботк‡ S-блоко‚ и число ‡ун‰о‚ с‰ел‡ли DES почти об뇉‡ющим иммунитетом от ‰иффеенци‡льно„о кипто‡н‡лиз‡. О‰н‡ко DES уflз‚им пи пименении линейно„о кипто‡н‡лиз‡, если злоумышленники смо„ут соб‡ть ‰ост‡точно мно„о исхо‰ных тексто‚.
212
Лекциfl 6
Ст‡н‰‡т шифниfl ‰‡нных (DES)
6.8. Н‡бо ‰лfl п‡ктики Обзоные ‚опосы 1. К‡ко‚ ‡зме блок‡ ‚ DES? К‡ко‚ ‡зме ключ‡ шиф‡ ‚ DES? К‡ко‚ ‡зме ключей ‡у퉇 ‚ DES? 2. К‡ко‚о число ‡ун‰о‚ ‚ DES? 3. Сколько смесителей и устойст‚ з‡мены используетсfl ‚ пе‚ом способе шифниfl и об‡тно„о ‰ешифниfl? Сколько их используетсfl пи ‚тоом способе? 4. Сколько пеест‡но‚ок используетсfl ‚ ‡л„оитме шиф‡ DES? 5. Сколько опе‡ций ИСКЛЮЧАЮЩЕЕ ИЛИ используетсfl ‚ DES-шифе? 6. Почему DES-функции необхо‰им‡ ‡сшиflющ‡fl пеест‡но‚к‡? 7. Почему „ене‡то ключей ‡у퉇 ну扇етсfl ‚ у‰‡лении по‚еочных бит? 8. К‡к ‡зность меж‰у сл‡бым ключом, полусл‡бым ключом и ‚озможно сл‡бым ключом? 9. Что т‡кое ‰‚ук‡тный DES? К‡к‡fl ‡т‡к‡ ‰ел‡ет ‰‚ук‡тный DES бесполезным? 10. Что т‡кое техк‡тный DES? Что т‡кое техк‡тный DES с ‰‚умfl ключ‡ми? Что т‡кое техк‡тный DES с темfl ключ‡ми?
Уп‡жнениfl 1. От‚етьте н‡ сле‰ующие ‚опосы об S-блок‡х ‚ DES: ‡. пок‡жите езульт‡т похож‰ениfl 110111 чеез S-блок 3. б. пок‡жите езульт‡т похож‰ениfl 001100 чеез S-блок 4. ‚. пок‡жите езульт‡т похож‰ениfl 000000 чеез S-блок 7. „. пок‡жите езульт‡т похож‰ениfl 111111 чеез S-блок 2. 2. Н‡исуйте т‡блицу, кото‡fl пок‡зы‚‡ет езульт‡т похож‰ениfl 000000 чеез ‚се 8 S-блоко‚. Р‡ссмотите езульт‡т н‡ ‚ыхо‰е. 3. Н‡исуйте т‡блицу, кото‡fl пок‡зы‚‡ет езульт‡т похож‰ениfl 111111 чеез ‚се 8 S-блоко‚. Р‡ссмотите езульт‡т н‡ ‚ыхо‰е. 4. По‚еьте тетий китеий ‰лfl S-блок‡ 3, используfl сле‰ующие п‡ы ‚хо‰о‚: a. 000000 и 000001 b. 111111 и 111011 5. По‚еьте чет‚етый китеий постоениfl S-блок‡ 2, используfl сле‰ующие п‡ы ‚х: a. 001100 и 110000 b. 110011 и 001 111 6. По‚еьте пflтый китеий постоениfl S-блок‡ 4, используfl сле‰ующие п‡ы ‚хо‰о‚: a. 001100 и 110000 b. 110011 и 001 111
213
Кус
Киптфиfl и безоп‡сность сетей
7. Со片йте 32 6-бито‚ые ‚хо‰ные п‡ы, чтобы по‚еить шестой китеий постоениfl S-блок‡ 5. 8. Пок‡жите, к‡к ‚ыполнены ‚осемь китеие‚ постоениfl S-блок‡ 7. 9. Док‡жите пе‚ый китеий постоениfl P-блоко‚, по‚еи‚ ‚хо‰ы к Sблоку 2 ‡у퉇 2. 10. Док‡жите ‚тоой китеий постоениfl ‰лfl P-блоко‚, по‚еflfl ‚хо‰ы к S-блоку ‡у퉇 4. 11. Док‡жите тетий китеий постоениfl P-блоко‚, по‚еflfl ‚ыхо‰ S-блок‡ ‡у퉇 3. 12. Док‡жите чет‚етый китеий постоениfl P-блоко‚, по‚еflfl ‚ыхо‰ Sблок‡ 6 ‡у퉇 12. 13. Док‡жите пflтый китеий поект‡ ‰лfl P-блоко‚, по‚еflfl отношение меж‰у S-блок‡ми 3, 4 и 5 ‚ ‡у퉇х 10 и 11. 14. Док‡жите шестой китеий постоениfl P-блоко‚, по‚еflfl отношение S-блок‡ конечно„о пункт‡ поиз‚ольно„о блок‡. 15. Док‡жите се‰ьмой китеий поект‡ ‰лfl P-блоко‚, по‚еflfl отношениfl меж‰у S-блоком 5 ‚ ‡ун‰е 4 и S-блоком 7 ‚ ‡ун‰е 5. 16. Измените исунок 6.9, используfl ‡льтен‡ти‚ный по‰хо‰. 17. Док‡жите, что об‡тный шиф н‡ ис. 6.9 — ф‡ктически ин‚есиfl шиф‡ DES с темfl ‡у퉇ми. Ст‡туfl с исхо‰но„о текст‡ и н‡ч‡льно„о шиф‡, ‰ок‡жите, что ‚ы можете получить тот же с‡мый исхо‰ный текст ‚ конце поцесс‡ пименениfl об‡тно„о шиф‡. 18. Тщ‡тельно изучите ключ пи пеест‡но‚ке сж‡тиfl т‡блицы 6.14. a. К‡кие ‚хо‰ные поты отсутст‚уют н‡ ‚ыхо‰е? b. Все ли ле‚ые 24 бит‡ ‚ых и‰ут от ‚сех ле‚ых 28 ‚хо‰ных бит? c. Все ли ые 24 бит‡ ‚ых и‰ут от ‚сех 28 ‚хо‰ных бито‚? 19. Пок‡жите езульт‡т сле‰ующих шест퇉ц‡теичных ‰‡нных 0110 10234110 1023 после похож‰ениfl их чеез н‡ч‡льный блок пеест‡но‚ки. 20. Пок‡жите езульт‡т сле‰ующих шест퇉ц‡теичных ‰‡нных AAAA BBBB CCCC DDDD после похож‰ениfl их чеез конечный блок пеест‡но‚ки. 21. Если ключ с по‚еочными бит‡ми (64 бит‡) — 0123 ABCD 2562 1456, н‡й‰ите ключ пе‚о„о ‡у퉇. 22. Используfl блок исхо‰но„о текст‡ ‚сех нулей и ключ н‡ 56 бито‚ из ‚сех нулей, ‰ок‡жите сл‡бость ключе‚о„о ‰ополнениfl, пе‰по뇄‡ющую, что DES состоит только из о‰но„о ‡у퉇. 23. Вы можете изобести ‡т‡ку «с‚е‰ение к сее‰ине» ‰лfl техк‡тно„о DES? 24. Н‡пишите пс傉око‰ ‰лfl пеест‡‚лflющей поце‰уы, используемой ‚ ‡л„оитме 6.1: permute (n,m, inBlock [n], outBlock [m], permutationTable [m]) 25. Н‡пишите пс傉око‰ ‰лfl поце‰уы ‡збиениfl, используемой ‚ ‡л„оитме 6.1: 214
Лекциfl 7
Усо‚ешенст‚нный ст‡н‰‡т шифниfl
Лекциfl 7. Усо‚ешенст‚нный ст‡н‰‡т шифниfl (AES — Advanced encryption standard) Цели и со‰еж‡ние В этой лекции мы обсу扇ем Усо‚ешенст‚нный ст‡н‰‡т шифниfl (AES — ADVANCED ENCRYPTION STANDARD) — со‚еменный блочный шиф с симметичными ключ‡ми, котоый может з‡менить DES. Эт‡ лекциfl имеет несколько целей: • ‡ссмотеть кооткую истоию AES; • опе‰елить осно‚ную стуктуу AES; • опе‰елить пеоб‡зниfl, используемые AES; • опе‰елить поцесс ‡сшиениfl сост‡‚‡ ключей; • обсу‰ить ‡зличные е‡лиз‡ции. Особое ‚ним‡ние у‰елflетсfl ‡л„еб‡ическим стукту‡м, котоые мы обсу扇ли ‚ лекции 4, — они обеспеч肇ют безоп‡сность AES.
7.1. В‚е‰ение Усо‚ешенст‚нный ст‡н‰‡т шифниfl (ADVANCED ENCRYPTION STANDARD) — ст‡н‰‡т н‡ блочный шиф с симметичными ключ‡ми, и片нный Н‡цион‡льным Институтом Ст‡н‰‡то‚ и Техноло„ии (NIST) ‚ ‰ек‡бе 2001 „.
Истоиfl В 1997 „о‰у NIST н‡ч‡л иск‡ть з‡мену ‰лfl DES, кото‡fl был‡ н‡з‚‡н‡ Усо‚ешенст‚нным ст‡н‰‡том шифниfl (ADVANCED ENCRYPTION STANDARD или AES). В NIST-специфик‡циflх были з‡ложены тебниfl ‡зме‡ блок‡ из 128 бито‚ и тех ‡зличных ‡змео‚ ключей: 128, 192 и 256 бито‚. Специфик‡ции т‡кже тебли, чтобы AES был откытым ‡л„оитмом, публично ‰оступным ‚о ‚сем мие. Специфик‡ции ст‡н‰‡то‚ были объfl‚лены ‚о мно„их ст‡н‡х, чтобы з‡посить от‚еты у специ‡листо‚ и з‡интееснных лиц со ‚сех континенто‚. После Пе‚ой Конфеенции по ‚ыбоу К‡н‰и‰‡то‚ AES NIST объfl‚ил‡, что 15 из 21 полученных ‡л„оитмо‚ от‚еч‡ют пост‡‚ленным тебниflм и ‚ыб‡ны к‡к пе‚ые к‡н‰и‰‡ты (‡‚„уст 1998 „.). Ал„оитмы были пе‰ст‡‚лены от мно„их ст‡н; ‡знооб‡зие этих пе‰ложений ‰емонстило откытость поцесс‡ и уч‡стие ‚се„о ми‡. После Втоой Конфеенции по ‚ыбоу К‡н‰и‰‡т‡ AES, кото‡fl был‡ по‚е‰ен‡ ‚ Риме, NIST объfl‚ил‡ 5 из 15 из к‡н‰и‰‡то‚. Ал„оитмы MARS, RC6, Rijndael, Serpent и Twofish были ‚ыб‡ны к‡к фин‡листы (‡‚„уст 1999). После Тетей Конфеенции по ‚ыбоу К‡н‰и‰‡т‡ AES NIST объfl‚ил‡, что ‚ыб‡н ‡л„оитм Усо‚ешенст‚нно„о Ст‡н‰‡т‡ Шифниfl — Rijndael, споектинный бель„ийскими иссле‰о‚‡телflми Джоном Д‡еменом и Винсентом Ри‰жменом (октflбь 2000 „.). 215
Кус
Киптфиfl и безоп‡сность сетей
В ф傇ле 2001 „. NIST объfl‚ил, что эскиз Фе‰е‡льно„о Ст‡н‰‡т‡ об‡ботки Инфом‡ции (FIPS) ‰оступен ‰лfl общест‚енно„о ‡ссмотениfl и коммент‡ие‚. Н‡конец, AES был и片н к‡к FIPS 197 ‚ Фе‰е‡льном Ре„исте ‚ ‰ек‡бе 2001 „.
Китеии Китеии, опе‰еленные NIST ‰лfl ‚ыбо‡ AES, относflтсfl к тем обл‡стflм: безоп‡сность, стоимость и е‡лиз‡циfl. В конце концо‚ Rijndael был оценен ‚ со‚окупности к‡к лучший, от‚еч‡ющий этим китеиflм. Безоп‡сность Особое ‚ним‡ние у‰елflлось безоп‡сности. Поскольку NIST flсно потебл 128-бито‚ый ключ, этот китеий опе‰елflл то, что ‚ним‡ние об‡щ‡лось н‡ устойчи‚ость шиф‡ к ‰у„им ‡т‡к‡м кипто‡н‡лиз‡, нежели ‡т‡к‡ „убой силы. Стоимость Втоым китеием был‡ стоимость, кото‡fl 燉‡ет тебуемую ‚ычислительную эффекти‚ность и тебниfl ‰лfl ‡зличных е‡лиз‡ций, т‡ких, к‡к ‡птные се‰ст‚‡, пммное обеспечение или интеллекту‡льные к‡ты ‰оступ‡. Ре‡лиз‡циfl Этот китеий ‚ключ‡л тебние, что ‡л„оитм ‰олжен иметь „ибкость (‚озможность быть е‡лизнным н‡ любой пл‡тфоме) и постоту.
Р‡ун‰ы AES — шиф не-Ф‡йстелfl, котоый з‡шифо‚ы‚‡ет и ‡сшифо‚ы‚‡ет блок ‰‡нных 128 бито‚, используfl 10, 12 или 14 ‡ун‰о‚. Р‡зме ключ‡ может быть 128, 192 или 256 бито‚ и 燂исит от числ‡ ‡ун‰о‚. Рисунок 7.1 пок‡зы‚‡ет общую схему: ‡л„оитм шифниfl (н‡зы‚‡емо„о шифом); ‡л„оитм ‰ешифниfl (н‡зы‚‡емый об‡тным шифом), ‰лfl котоо„о пименflютсfl те же ключи, но ‚ об‡тном поfl‰ке. Н‡ ис. 7.1 Nr опе‰елflет число ‡ун‰о‚. Рисунок т‡кже пок‡зы‚‡ет отношение меж‰у числом ‡ун‰о‚ и ‡змеом ключ‡ — это озн‡ч‡ет, что мы имеем ти ‡зличных ‚есии AES; они обозн‡ч‡ютсfl к‡к AES-128, AES-192 и AES-256. О‰н‡ко ключи ‡у퉇, котоые со片ны ‡л„оитмом ‡сшиениfl ключей ‚с儉‡ 128 бит, имеют тот же с‡мый ‡зме, что и блоки з‡шифнно„о или исхо‰но„о текст‡. AES опе‰елил ти ‚есии, с 10, 12 и 14 ‡у퉇ми. ʇ扇fl ‚есиfl использует ‡зличный ‡зме ключ‡ шиф‡ (128, 192 или 256), но ключ ‡у퉇 — ‚с儉‡ 128 бит. Число ключей ‡у퉇, с„енеинных ‡л„оитмом ‡сшиениfl ключей, ‚с儉‡ н‡ о‰ин больше, чем число ‡ун‰о‚. Ду„ими слми, мы имеем число ключей ‡у퉇 = Nr + 1 216
Лекциfl 7
Усо‚ешенст‚нный ст‡н‰‡т шифниfl
Рис. 7.1. Общее постоение шифниfl AES-шиф‡ Мы обозн‡ч‡ем ключи ‡у퉇 к‡к K0, K1, K2..., KN.
Е‰иницы ‰‡нных AES использует пflть е‰иниц ‰лfl пе‰ст‡‚лениfl ‰‡нных: биты, б‡йты, сл, блоки и м‡сси‚ы состоflний. Бит — н‡именьш‡fl и элемент‡н‡fl е‰иниц‡; ‰у„ие е‰иницы мо„ут быть ‚ы‡жены ‚ темин‡х меньших е‰иниц Рисунок 7.2 пок‡зы‚‡ет е‰иницы неэлемент‡ных ‰‡нных: б‡йт, сло‚о, блок, м‡сси‚ состоflний (state). Бит В AES бит — ‰‚оичн‡fl циф‡ со зн‡чением 0 или 1. Мы используем сточные бук‚ы ‰лfl обозн‡чениfl бит. Б‡йт Б‡йт — „упп‡ из ‚осьми бито‚, кото‡fl может быть об‡бот‡н‡ к‡к е‰иный объект: м‡тиц‡ из о‰ной стоки (1 x 8) ‚осьми бито‚ или столбец м‡тицы (8x1) из ‚осьми бито‚. К‡ инфом‡циfl б‡йт‡ об‡б‡ты‚‡ютсfl к‡к м‡тиц‡ стоки, то биты ‚ст‡‚лflютсfl ‚ м‡тице сл傇 н‡п‡‚о. К‡ б‡йт об‡б‡ты‚‡етсfl к‡к м‡тиц‡ столбц‡, биты ‚ст‡‚лflютсfl ‚ м‡тице с‚еху ‚низ. Мы бу‰ем использть сточную «жиную» бук‚у (Bold) ‰лfl обозн‡чениfl б‡йт‡. 217
Кус
Киптфиfl и безоп‡сность сетей
Сло‚о Сло‚о — „упп‡ из 32 бито‚, кото‡fl может быть об‡бот‡н‡ к‡к е‰иный объект. Это м‡тиц‡ из стоки ‚ четые б‡йт‡ или столбец м‡тицы из четыех б‡йто‚. К‡ сло‚о об‡б‡ты‚‡етсfl к‡к м‡тиц‡-сток‡, б‡йты ‚ст‡‚лflютсfl сл傇 н‡п‡‚о. К‡ сло‚о пе‰ст‡‚лflетсfl м‡тицей-колонкой, б‡йты ‚ст‡‚лflютсfl с‚еху ‚низ. Мы бу‰ем использть сточную «жиную» бук‚у W ‰лfl обозн‡чениfl сл.
Рис.7.2. Е‰иницы ‰‡нных, используемых ‚ AES Блок AES з‡шифо‚ы‚‡ет и ‡сшифо‚ы‚‡ет блоки ‰‡нных. Блок ‚ AES — „упп‡ 128 бито‚. О‰н‡ко блок может быть пе‰ст‡‚лен к‡к м‡тиц‡-сток‡ из 16-ти б‡йто‚. М‡тиц‡ состоflний AES использует несколько ‡ун‰о‚, к‡ж‰ый ‡ун‰ состоит из несколько к‡сꇉо‚. Блок ‰‡нных пеоб‡зо‚ы‚‡етсfl от о‰но„о к‡сꇉ‡ к ‰у„ому. В н‡ч‡ле и ‚ конце шиф‡ AES пименflетсfl темин блок ‰‡нных; ‰о и после к‡ж‰о„о к‡сꇉ‡ блок ‰‡нных н‡зы‚‡етсfl м‡тицей состоflний. Мы используем «жиную» 燄뇂ную бук‚у, чтобы обозн‡чить эту м‡тицу. Хотfl м‡тиц‡ состоflний н‡ ‡зличных к‡сꇉ‡х обычно обозн‡ч‡етсfl S, мы ин‡ пименflем бук‚у T, чтобы обозн‡чить ‚еменную м‡тицу состоflний. М‡тицы состоflний, по‰обно блок‡м, состоflт из 16 б‡йто‚, но обычно об‡б‡ты‚‡ютсfl к‡к м‡тицы 4 × 4 б‡йто‚. В этом случ‡е к‡ж‰ый элемент м‡тицы состоflний обозн‡ч‡етсfl к‡к Sr,c, „‰е r (от 0 ‰о 3) опе‰елflет стоку и c (от 0 ‰о 3) опе‰елflет столбец. Ин‡ м‡тиц‡ состоflний об‡б‡ты‚‡етсfl к‡к м‡тиц‡-сток‡ сло‚ (1 × 4). Это имеет смысл, если мы пе‰ст‡‚лflем сло‚о к‡к м‡тицу-столбец. В н‡ч‡ле шиф‡ б‡йты ‚ блоке ‰‡нных ‚ст‡‚лflютсfl ‚ м‡тицу состоflний столбец з‡ столбцом, ‚ к‡ж‰ом столбце — с‚е218
Лекциfl 7
Усо‚ешенст‚нный ст‡н‰‡т шифниfl
ху ‚низ. В конце шиф‡ б‡йты ‚ м‡тице состоflний из‚лек‡ютсfl, к‡к это пок‡з‡но н‡ ис. 7.3.
Рис. 7.3. Пеоб‡зние блок – м‡тиц‡ состоflний и м‡тиц‡ состоflний — ‚ блок Пиме 7.1 Р‡ссмотим, к‡к можно изоб‡зить блок с 16 сим‚ол‡ми ‚ ‚и‰е м‡тицы 4 × 4. Пе‰положим, что тексто‚ый блок — «AES uses a matrix». Доᇂим ‰‚‡ фикти‚ных сим‚ол‡ ‚ конце и получим «AESUSESAMATRIXZZ». Тепеь мы з‡меним к‡ж‰ый сим‚ол целым числом меж‰у 00 и 25. Пе‰ст‡‚им к‡ж‰ый б‡йт к‡к целое число с ‰‚умfl шест퇉ц‡теичными циф‡ми. Н‡пиме, сим‚ол «S» сн‡ч‡л‡ поменflем н‡ 18, ‡ з‡тем з‡пишем ‚ шест퇉ц‡теичном изоб‡жении к‡к 12. М‡тиц‡ состоflний т‡ з‡полнflетсfl столбец з‡ столбцом, к‡к это пок‡з‡но н‡ ис. 7.4.
Рис. 7.4. Пеехо‰ шифнно„о текст‡ ‚ м‡тицу состоflний
Стукту‡ к‡ж‰о„о ‡у퉇 Рисунок 7.5 пок‡зы‚‡ет стуктуу к‡ж‰о„о ‡у퉇 н‡ стооне шифниfl. К‡ж‰ый ‡ун‰, коме после‰не„о, использует четые пеоб‡зниfl, котоые fl‚лflютсfl об‡тимыми. После‰ний ‡ун‰ имеет только ти пеоб‡зниfl. 219
Кус
Киптфиfl и безоп‡сность сетей
К‡к пок‡зы‚‡ет ис. 7.5, к‡ж‰ое пеоб‡зние пиним‡ет м‡тицу состоflний и со片ет ‰у„ую м‡тицу состоflний, кото‡fl пименflетсfl ‰лfl сле‰ующе„о пеоб‡зниfl или сле‰ующе„о ‡у퉇. Секциfl, п剂‡flющ‡fl ‡ун‰, использует только о‰но пеоб‡зние (AddRoundKey); после‰ний ‡ун‰ использует только ти пеоб‡зниfl (MixColumns — пеоб‡зние отсутст‚ует).
Рис. 7.5. Стукту‡ к‡ж‰о„о ‡у퉇 н‡ стооне шифниfl
7.2. Пеоб‡зниfl Чтобы обеспечить безоп‡сность, AES использует четые тип‡ пеоб‡зний: по‰ст‡но‚к‡, пеест‡но‚к‡, смеш肇ние и ‰оᇂление ключ‡. Ниже мы обсу‰им к‡ж‰ое.
По‰ст‡но‚к‡ AES по‰обно DES пименflет по‰ст‡но‚ку. О‰н‡ко этот мех‡низм имеет ‡зличиfl. Пе‚ое: по‰ст‡но‚к‡ ‰ел‡етсfl ‰лfl к‡ж‰о„о б‡йт‡. Втоое: ‰лfl пеоб‡з220
Лекциfl 7
Усо‚ешенст‚нный ст‡н‰‡т шифниfl
ниfl к‡ж‰о„о б‡йт‡ используетсfl только о‰н‡ т‡блиц‡ — это озн‡ч‡ет, что если ‰‚‡ б‡йт‡ о‰ин‡ко‚ы, то и езульт‡т пеоб‡зниfl о‰ин‡ко‚. Тетье: пеоб‡зние опе‰елflетсfl или поцессом поиск‡ ‚ т‡блице, или м‡тем‡тическим ‚ычислением ‚ GF(28) поле. AES ‡бот‡ет с ‰‚умfl об‡тимыми пеоб‡зниflми. SubBytes Пе‚ое пеоб‡зние, SubBytes, пименflетсfl н‡ стооне шифниfl. Чтобы пименить по‰ст‡но‚ку к б‡йту, мы интепетиуем б‡йт к‡к ‰‚е шест퇉ц‡теичные цифы. Л傇fl циф‡ опе‰елflет стоку, ‡ ‡fl — колонку ‚ т‡блице пеест‡но‚ки. Н‡ пеесечении стоки и колонки, обозн‡ченных этими шест퇉ц‡теичными циф‡ми, н‡хо‰итсfl но‚ый б‡йт. Рисунок 7.6 иллюстиует и‰ею.
Рис. 7.6. Пеоб‡зние SubByte В пеоб‡знии SubBytes состоflние об‡б‡ты‚‡етсfl к‡к м‡тиц‡ б‡йто‚ 4 × 4. В о‰ин момент по‚о‰итсfl пеоб‡зние о‰но„о б‡йт‡. Со‰еж‡ние к‡ж‰о„о б‡йт‡ изменflетсfl, но ‡сположение б‡йто‚ ‚ м‡тице ост‡етсfl тем же с‡мым. В поцессе пеоб‡зниfl к‡ж‰ый б‡йт пеоб‡зуетсfl не燂исимо от ‰у„их — это шест퇉ц‡ть личных пеоб‡зний б‡йт ‚ б‡йт. Опе‡циfl SubByte ‚ключ‡ет 16 не燂исимых пеоб‡зний б‡йт‡ ‚ б‡йт. Т‡блиц‡ 7.1 пок‡зы‚‡ет т‡блицу по‰ст‡но‚ки (S-блок) ‰лfl пеоб‡зниfl SubBytes. Пеоб‡зние обеспеч肇ет эффект пеемеш肇ниfl. Н‡пиме, ‰‚‡ б‡йт‡, 5A16 и 5B16, котоые отлич‡ютсfl только о‰ним битом (с‡мый ый бит), пеоб‡зны ‚ BE16 и 3916, котоые отлич‡ютсfl четыьмfl бит‡ми. InvSubBytes InvSubBytes — ин‚есиfl SubBytes. Пеоб‡зние с‰ел‡но с использнием т‡блицы 7.2, и мы можем ле„ко по‚еить, что эти ‰‚‡ пеоб‡зниfl fl‚лflютсfl об‡тными ‰у„ ‰у„у. 221
Кус
Киптфиfl и безоп‡сность сетей
Т‡блиц‡ 7.1. Т‡блиц‡ пеоб‡зниfl SubBytes
Т‡блиц‡ 7.2. Т‡блиц‡ пеоб‡зниfl InvSubBytes
Пиме 7.2 Рисунок 7.7 пок‡зы‚‡ет, к‡к м‡тиц‡ состоflний пеоб‡зуетсfl с использнием SubBytes. Рисунок т‡кже пок‡зы‚‡ет, что InvSubBytes о‰нозн‡чно ‚оспоиз222
Лекциfl 7
Усо‚ешенст‚нный ст‡н‰‡т шифниfl
‚о‰ит ои„ин‡л. З‡метим, что если ‰‚‡ б‡йт‡ имеют о‰ин‡ко‚ое зн‡чение, то они пеоб‡зуютсfl о‰ин‡ко‚о. Н‡пиме, ‰‚‡ б‡йт‡ 0416 и 0416 ‚ ле‚ой м‡тице состоflний пеоб‡зуютсfl ‚ F216 и F216 ‚ ой м‡тице состоflний и н‡обоот. Пичин‡ ‚ том, что к‡ж‰ый б‡йт использует о‰ну и ту же т‡блицу пеоб‡зний.
Рис. 7.7. Пеоб‡зние SubByte по пимеу 7.2 Пеоб‡зние с использнием полfl GF(28) Хотfl мы можем использть т‡блицы 7.1 и.7.2 ‰лfl пеест‡но‚ки к‡ж‰о„о б‡йт‡, AES ‰‡ет опе‰еление ‡л„еб‡ическим пеоб‡зниflм н‡ осно‚е полfl GF(28) с помощью непи‚о‰имых полиномо‚ (x8 + x4 + x3 + x + 1), к‡к это пок‡з‡но н‡ ис. 7.8. Пеоб‡зние SubByte по‚тоflет поцесс, н‡зы‚‡емый subbyte, шест퇉ц‡ть ‡з. Inv SubByte по‚тоflет поцесс, н‡зы‚‡емый invsubbyte. К‡ж‰ый ш‡„ пеоб‡зниfl об‡б‡ты‚‡ет о‰ин б‡йт. В поце‰уе subbyte б‡йт мультиплик‡ти‚н‡fl ин‚есиfl б‡йт‡ (‰‚оичной стоки н‡ 8 бито‚) н‡хо‰итсfl ‚ GF(28) с помощью непи‚о‰имо„о полином‡ по мо‰улю (x8 + x4 + x3+ x + 1). Об‡тите ‚ним‡ние, что б‡йт — 0016 с‡м fl‚лflетсfl собст‚енной ин‚есией. Ин‚етинный б‡йт з‡тем интепетиуетсfl к‡к м‡тиц‡-столбец с с‡мым м뇉шим битом 퇂еху и с‡мым ст‡шим битом ‚низу. Эт‡ м‡тиц‡-столбец умнож‡етсfl н‡ постоflнную ꂇ‰‡тную м‡тицу, X, и езульт‡т, котоый fl‚лflетсfl м‡тицей-столбцом, ск뇉ы‚‡етсfl с постоflнной м‡тицей столбц‡ y, что ‰‡ет но‚ый б‡йт. Об‡тите ‚ним‡ние, что умножение и сложение бито‚ поисхо‰ит ‚ GF(2). invsubbyte ‰ел‡ет те же ‰ейст‚иfl ‚ об‡тном поfl‰ке. После н‡хож‰ениfl б‡йт‡ ин‚есно„о сомножителfl поцесс похож н‡ ‡ффинное шифние, котоое мы обсу扇ли ‚ лекции 3. Пи шифнии умножение fl‚лflетсfl пе‚ой опе‡цией, сложение — ‚тоой. Пи ‰ешифнии ‚ычит‡ние (сложение ин‚есией) fl‚лflетсfl пе‚ым, ‡ ‰еление (умножение с ин‚есией) — ‚тоым. Мы можем ле„ко ‰ок‡з‡ть, что эти ‰‚‡ пеоб‡зниfl ин‚есны ‰у„ ‰у„у, потому что сложение или ‚ычит‡ние ‚ GF(2) — ф‡ктически опе‡циfl ИСКЛЮЧАЮЩЕЕ ИЛИ. subbyte: d = X (sr,c)-1 ⊕ y -1 invsubbyte: [X (d ⊕ y)-1 = [X-1 (X ((sr,c)-1 y ⊕ y]-1 = [(sr,c)-1]-1 = sr,c Пеоб‡зниfl SubBytes и InvSubBytes ин‚есны ‰у„ ‰у„у. 223
Кус
Киптфиfl и безоп‡сность сетей
Рис. 7.8. Поцессы SubBytes и InvBytes Пиме 7.3 Пок‡жем, к‡к б‡йт 0C пеоб‡зуетсfl ‚ FE с помощью поце‰уы subbyte и пеоб‡зуетсfl об‡тно ‚ 0C с помощью поцесс‡ invsubbyte. 1. subbyte a. Ин‚есный сомножитель ‚ поле GF(28) есть B0 или ‚ ‰‚оичном отоб‡жении b (1011 0000). b. Умнож‡fl н‡ м‡тицу X эту м‡тицу, имеем ‚ езульт‡те c = (10011101). c. Результ‡т пименениfl опе‡ции XOR (ИСКЛЮЧАЮЩЕЕ ИЛИ ) – d = (11111110) FE ‚ шест퇉ц‡теичном пе‰ст‡‚лении. 224
Лекциfl 7
Усо‚ешенст‚нный ст‡н‰‡т шифниfl
2. invsubbyte a. Результ‡т пименениfl опе‡ции XOR (ИСКЛЮЧАЮЩЕЕ ИЛИ) – c = (10011101) b. Результ‡т умножениfl н‡ м‡тицу X~1 – (11010000) или B0. c. Ин‚есиfl по умножению B0 – это 0C. Ал„оитм Хотfl н‡ исунке мы пок‡з‡ли м‡тицы, чтобы по‰чекнуть х‡‡кте по‰ст‡но‚ки (‡ффинное пеоб‡зние), ‡л„оитм не обflз‡тельно использует умножение и сложение м‡тиц, потому что большинст‚о элементо‚ ‚ постоflнной ꂇ‰‡тной м‡тице — только 0 или 1. Зн‡чение постоflнной м‡тицы столбц‡ — 0 × 63. Мы можем н‡пис‡ть постой ‡л„оитм, чтобы ‚ыполнить SubByte. Ал„оитм 7.1 ‚ызы‚‡ет поце‰уу subbyte 16 ‡з — о‰ин ‡з ‰лfl к‡ж‰о„о б‡йт‡ ‚ м‡тице состоflний. Поце‰у‡ ByteToMatrix пеоб‡зо‚ы‚‡ет б‡йт к м‡тицу-столбец 8 × 1. Поце‰у‡ MatrixToByte пеоб‡зо‚ы‚‡ет м‡тицу-столбец 8 × 1 к б‡йту. Р‡сшиение это„о ‡л„оитм‡ ‰лfl InvSubBytes ост‡‚лflем к‡к уп‡жнение. Нелинейность Хотfl умножение и сложение м‡тиц ‚ поце‰уе subbyte — пеоб‡зние ‡ффинно„о тип‡ и линейно, з‡мен‡ б‡йт‡ е„о мультиплик‡ти‚ной ин‚есией ‚ GF(28) — нелинейн‡fl. Этот ш‡„ ‰ел‡ет ‚се пеоб‡зние нелинейным.
Пеест‡но‚к‡ Ду„ое пеоб‡зние поиз‚о‰ит с‰‚и„ ‚ ‡ун‰е. Этот с‰‚и„ пеест‡‚лflет б‡йты. В отличие от DES, ‚ котоом ‰ел‡етсfl по‡зfl‰н‡fl пеест‡но‚к‡, пеоб‡зние с‰‚脇 ‰ел‡етсfl н‡ уо‚не б‡йт‡; поfl‰ок бито‚ ‚ б‡йте не менflетсfl. Ал„оитм 7.1. Пмм‡ н‡ пс傉око‰е ‰лfl пеоб‡зниfl SubBytes SubBytes (S) { for (r = 0 to 3) (c = 0 to 3) Sr,c=subbyte(Sr,c) } subbyte (byte) { a ← byte-1 //Mult¥pl¥cat¥ve ¥nverse ¥n GF(28 ) w¥th ¥nverse ByteToMatr¥x (a,b) //of 00 to be 00 For (¥= 0 to7) { c¥ ← b¥ ⊕ b(¥+4)mod8 ⊕ b(¥+5)mod8 ⊕ b(¥+6)mod8 ⊕ b(¥+7)mod8 d¥ ← c¥ ⊕ ByteToMatr¥x (0 × 63) } Matr¥xToByte (d,d) byte ← d } 225
Кус
Киптфиfl и безоп‡сность сетей
ShiftRows Пи шифнии пименflетсfl пеоб‡зние, н‡зы‚‡емое ShiftRows, со смещением ‚ле‚о. Число с‰‚и„о‚ з‡‚исит от номе‡ стоки (0, 1, 2 или 3) м‡тицы состоflний. Это озн‡ч‡ет, что сток‡ 0 не с‰‚脇етсfl и после‰нflfl сток‡ с‰‚脇етсfl н‡ ти б‡йт‡. Рисунок 7.9 пок‡зы‚‡ет пеоб‡зние смещениfl.
Рис. 7.9. Пеоб‡зние ShiftRows Об‡тите ‚ним‡ние, что пеоб‡зние ShiftRows ‡бот‡ет о‰но‚еменно только с о‰ной стокой. InvShiftRows Пи ‰ешифнии пименflетсfl пеоб‡зние, н‡зы‚‡емое InvShiftRows, со смещением ‚п‡‚о. Число с‰‚и„о‚ ‡‚но номеу стоки (0, 1, 2 и 3) ‚ м‡тицы состоflний. ShiftRows- и InvShiftRows-пеоб‡зниfl ин‚есны ‰у„ ‰у„у. Ал„оитм Ал„оитм 7.2 ‰лfl пеоб‡зниfl ShiftRows очень пост. О‰н‡ко чтобы по‰чекнуть, что пеоб‡зние ‰ел‡етсfl о‰но‚еменно только с о‰ной стоАл„оитм 7.2. Пмм‡ н‡ пс傉око‰е ‰лfl пеоб‡зниfl ShiftRows { for (r = 1 to 3) sh¥ftrow (Sr, r) sh¥ftrow (row, n)
// sr r-т‡fl сток‡}
// n – число б‡йто‚, н‡ котоое ‰олжен быть с‰ел‡н с‰‚и„
{ CopyRow (row, t) for (c = 0 to 3) for (c = 0 to 3) row (c-n) mod4 ← tc }
226
//t – ‚еменн‡fl сток‡
Лекциfl 7
Усо‚ешенст‚нный ст‡н‰‡т шифниfl
кой, мы используем поце‰уу, н‡зы‚‡емую shiftrow, кото‡fl с‰‚脇ет б‡йт ‚ е‰инст‚енной стоке. Мы ‚ызы‚‡ем эту поце‰уу ти ‡з‡. Поце‰у‡ shiftrow сн‡ч‡л‡ копиует стоку ‚о ‚еменную м‡тицу стоки (м‡тиц‡ t), ‡ потом с‰‚脇ет стоку. Пиме 7.4 Рисунок 7.10 пок‡зы‚‡ет, к‡к, используfl пеоб‡зние ShiftRows, пеоб‡зуетсfl м‡тиц‡ состоflний. Рисунок т‡кже иллюстиует, к‡к пеоб‡зние InvShiftRows со片ет пе‚он‡ч‡льную м‡тицу состоflний.
Рис. 7.10 Пиме пеоб‡зниfl ShiftRow ‚ пимее 7.4
Смеш肇ние По‰ст‡но‚к‡, кото‡fl ‰ел‡етсfl пеоб‡знием SubByte, изменflет зн‡чение б‡йт‡, осннное только н‡ пе‚он‡ч‡льном зн‡чении и ‚хо‰е ‚ т‡блице; поцесс не ‚ключ‡ет сосе‰ние б‡йты. Мы можем ск‡з‡ть, что SubByte — ‚нутиб‡йто‚ое пеоб‡зние. Пеест‡но‚к‡, кото‡fl ‰ел‡етсfl ShiftRows-пеоб‡знием, обмен肇ет мест‡ми б‡йты, не пеест‡‚лflfl биты ‚ б‡йт‡х. Мы можем ск‡з‡ть, что ShiftRows — пеоб‡зние обмен‡ б‡йт‡ми. Тепеь н‡м нужно ‚нутиб‡йто‚ое пеоб‡зние, изменflющее биты ‚ б‡йте и осннное н‡ бит‡х ‚ сосе‰них б‡йт‡х. Мы ‰олжны смеш‡ть б‡йты, чтобы обеспечить ‡ссе肇ние н‡ ‡зfl‰ном уо‚не. Пеоб‡зние смеш肇ниfl изменflет со‰еж‡ние к‡ж‰о„о б‡йт‡, пеоб‡зо‚ы‚‡fl четые б‡йт‡ о‰но‚еменно и объе‰инflfl их, чтобы получить четые но‚ых б‡йт‡. Чтобы „‡‡нтить, что к‡ж‰ый но‚ый б‡йт бу‰ет отлич‡тьсfl от ‰у„о„о (‰‡же если ‚се четые б‡йт‡ те же с‡мые), поцесс сн‡ч‡л‡ умнож‡ет к‡ж‰ый б‡йт н‡ ‡зличный н‡бо конст‡нт и з‡тем смеш肇ет их. Смеш肇ние может быть обеспечено м‡тичным умножением. К‡к мы обсу扇ли ‚ лекции 2, к‡ мы умнож‡ем ꂇ‰‡тную м‡тицу н‡ м‡тицу-столбец, езульт‡т — нfl м‡тиц‡-столбец. После то„о к‡к м‡тиц‡ умножен‡ н‡ зн‡чениfl стоки ‚ м‡тице конст‡нт, к‡ж‰ый элемент ‚ но‚ой м‡тице 燂исит от ‚сех четыех элементо‚ ст‡ой м‡тицы. Рисунок 7.11 иллюстиует эту и‰ею. AES опе‰елflет пеоб‡зние, н‡зы‚‡емое MixColumns. Длfl пименениfl т‡ко„о пеоб‡зниfl ‚‚о‰итсfl т‡кже об‡тное пеоб‡зние, н‡зы‚‡емое InvMixColumns. Рисунок 7.12 пок‡зы‚‡ет м‡тицу конст‡нт, используемую ‰лfl 227
Кус
Киптфиfl и безоп‡сность сетей
Рис. 7.11. Смеш肇ние б‡йто‚ с использнием смеш肇ющей м‡тицы этих пеоб‡зний. Эти ‰‚е м‡тицы ин‚есны ‰у„ ‰у„у, к‡ элементы интепетиуютсfl к‡к сл из 8-ми бито‚ (или полиномы) с коэффициент‡ми ‚ GF (28). Док‡з‡тельст‚о мы ост‡‚лflем к‡к уп‡жнение.
Рис. 7.12. М‡тиц‡ конст‡нт, используем‡fl MixColumns и InvMixColumns MixColumns Пеоб‡зние MixColumns ‡бот‡ет н‡ уо‚не столбц‡; оно пеоб‡зо‚ы‚‡ет к‡ж‰ый столбец м‡тицы состоflний ‚ но‚ый столбец. Это пеоб‡зние — ф‡ктически м‡тичное умножение столбц‡ м‡тицы состоflний и ꂇ‰‡тной м‡тицы конст‡нт. Б‡йты ‚ столбце м‡тицы состоflний и ‚ м‡тице конст‡нт интепетиуютсfl к‡к сл по 8 бито‚ (или полиномы) с коэффициент‡ми ‚ GF (2). Умножение б‡йто‚ ‚ыполнflетсfl ‚ GF(28) по мо‰улю (10001101) или (x8 + x4 + x3 + x + 1). Сложение — это пименение опе‡ции ИСКЛЮЧАЮЩЕЕ ИЛИ (XOR) к слм по 8 бит. Рисунок 7.13 пок‡зы‚‡ет пеоб‡зние MixColumns. InvMixColumns Пеоб‡зние InvMixColumns похоже н‡ MixColumns-пеоб‡зние. Если ‰‚е м‡тицы конст‡нт ин‚есны ‰у„ ‰у„у, то ле„ко ‰ок‡з‡ть, что эти ‰‚‡ пеоб‡зниfl т‡кже ин‚есны ‰у„ ‰у„у. Пеоб‡зниfl MixColumns и InvMixColumns ин‚есны ‰у„ ‰у„у. Ал„оитм Ал„оитм 7.3. — пмм‡ ‰лfl пеоб‡зниfl MixColumns. 228
Лекциfl 7
Усо‚ешенст‚нный ст‡н‰‡т шифниfl
Рис. 7.13. Пеоб‡зние MixColumns
Ал„оитм 7.3. Пмм‡ н‡ пс傉око‰е ‰лfl пеоб‡зниfl MixColumns M¥xColumns (S) { for (c = 0 to 3) m¥xcolumn (sc) } m¥xcolumn (col) { CopyColumn (col, t) col0 col1 col2 col3
← ← ← ←
//t ¥s a temporary column
(0x02)• t0 ⊕ (0x03)• t1 ⊕ t2 ⊕ t3 t0 ⊕ (0x02)• t1 ⊕ (0x03)• t2 ⊕ t3 t0 ⊕ t1 ⊕ (0 × 02)• t2 ⊕ (0x03)• t3 (0x03)• t0) ⊕ t1 ⊕ t2 ⊕ (0x02) • t3
}
Ал„оитмы MixColumns и InvMixColumns ‚ключ‡ют умножение и сложение ‚ поле GF(28). К‡к мы ‚и‰ели ‚ лекции 4, есть постой и эффекти‚ный ‡л„оитм ‰лfl умножениfl и сложениfl ‚ этом поле. О‰н‡ко чтобы пок‡з‡ть х‡‡кте ‡л„оитм‡ (пеоб‡зние о‰но„о столбц‡ о‰но‚еменно), мы используем поце‰уу, н‡зы‚‡емую mixcolumn. Он‡ может быть ‚ыз‚‡н‡ ‡л„оитмом четые ‡з‡. Поце‰у‡ mixcolumn посто умнож‡ет стоки м‡тицы конст‡нт н‡ столбец ‚ м‡тицы состоflний. В ‚ышеупомflнутом ‡л„оитме опе‡то (•), используемый ‚ поце‰уе mixcolumn, — умножение ‚ поле GF(28). Оно может быть з‡менено постой поце‰уой, к‡к это уже ‡ссм‡т肇лось ‚ лекции 4. Пмму ‰лfl InvMixColumns ост‡‚лflем к‡к уп‡жнение. 229
Кус
Киптфиfl и безоп‡сность сетей
Пиме 7.5 Рисунок 7.14 пок‡зы‚‡ет, к‡к м‡тиц‡ состоflний пеоб‡зуетсfl, используfl пеоб‡зние MixColumns. Рисунок т‡кже пок‡зы‚‡ет, что пеоб‡зние InvMixColumns со片ет пе‚он‡ч‡льный текст.
Рис. 7.14. Пеоб‡зние MixColumns [‚ пимее 7.5.] Об‡тите ‚ним‡ние, что б‡йты, котоые ‡‚ны меж‰у собой ‚ ст‡ой м‡тице состоflний, больше не ‡‚ны ‚ но‚ой м‡тице состоflний. Н‡пиме, ‰‚‡ б‡йт‡ F2 ‚о ‚тоой стоке изменены н‡ CF и 0D.
Доᇂление ключей Веоflтно, с‡мое ‚‡жное пеоб‡зние — это пеоб‡зние, котоое ‚ключ‡ет ключ шиф‡, Все пе‰ы‰ущие пеоб‡зниfl используют из‚естные ‡л„оитмы, котоые fl‚лflютсfl об‡тимыми. Если не ‰оᇂлflть ключе‚ой шиф ‚ к‡ж‰ом ‡ун‰е, поти‚ник очень посто н‡й‰ет исхо‰ный текст по ‰‡нному ему з‡шифнному тексту. В этом случ‡е х‡нитель т‡йны Алисы и Боб‡ — о‰ине‰инст‚енный ключ шиф‡. AES использует поцесс, н‡з‚‡нный ключе‚ым ‡сшиением (мы е„о обсу‰им позже), котоый из ключ‡ шиф‡ со片ет Nr+1 ключей ‡у퉇. К‡ж‰ые ключи ‡у퉇 — 128-бито‚ой ‰лины, и об‡б‡ты‚‡ютсfl они к‡к четые сл по 32 бит‡. Длfl ‰оᇂлениfl ключ‡ к м‡тице состоflний к‡ж‰ое сло‚о ‡ссм‡т肇етсfl к‡к м‡тиц‡-столбец. AddRoundKey AddRoundKey об‡б‡ты‚‡ет ‚ о‰ин момент ‚емени о‰ин столбец. Он по‰обен MixColumns. MixColumns умнож‡ет ꂇ‰‡тную м‡тицу конст‡нт н‡ к‡ж‰ый столбец м‡тицы состоflний. AddRoundKey ск뇉ы‚‡ет ключе‚ое сло‚о ‡у퉇 с к‡ж‰ым столбцом м‡тицы состоflний. В MixColumns пименflетсfl м‡тичное умножение; ‚ AddRoundKey — опе‡ции сложениfl и ‚ычит‡ниfl. Т‡к к‡к сложение и ‚ычит‡ние ‚ этом поле о‰ни и те же, AddRoundKey ин‚есен с‡м себе. Рисунок 7.15 пок‡зы‚‡ет пеоб‡зние AddRoundKey. Пеоб‡зние AddRoundKey ин‚есно с‡мо себе. 230
Лекциfl 7
Усо‚ешенст‚нный ст‡н‰‡т шифниfl
Ал„оитм Пеоб‡зние AddRoundKey может быть пе‰ст‡‚лено к‡к опе‡циfl ИСКЛЮЧАЮЩЕЕ ИЛИ (XOR) к‡ж‰ой колонки м‡тицы состоflний с соот‚етст‚ующим ключе‚ым сло‚ом. Мы еще бу‰ем обсу扇ть, к‡к ‡сшиflетсfl ключ шифниfl ‚о множест‚е ключе‚ых сло‚, но ‚ ‰‡нном случ‡е мы опе‰елим пеоб‡зние, к‡к это пок‡з‡но ‚ ‡л„оитме 7.4. З‡метим, что sc и wround +4c м‡тицы — колонки 4 × 1.
Рис. 7.15. Пеоб‡зние AddRoundKey
Ал„оитм 7.4. Пеоб‡зние AddRoundKey AddRoundKey (S) { for (c = 0 to 3) sc ← sc ⊕ wround +4c }
Н‡помним, что опе‡то ⊕ з‰есь озн‡ч‡ет опе‡цию ИСКЛЮЧАЮЩЕЕ ИЛИ (XOR) ‰лfl ‰‚ух колонок м‡тицы, к‡ж‰‡fl из 4-х б‡йт. По‰обный ‡збо этой постой поце‰уы ост‡‚им ‰лfl уп‡жнений.
7.3. Р‡сшиение ключей Длfl то„о чтобы со片ть ключ ‰лfl к‡ж‰о„о ‡у퉇, AES использует поцесс ключе‚о„о ‡сшиениfl. Если номе ‡у퉇 — Nr, поце‰у‡ ‡сшиениfl ключей со片ет Nr+1 ключ ‡у퉇 н‡ 128 бит от е‰инст‚енно„о 128-бито‚о„о ключ‡ шиф‡. Пе‚ые ключи ‡у퉇 используютсfl ‰лfl пеоб‡зниfl пее‰ ‡ун‰ом (AddRoundKey); ост‡ющиесfl ключи ‡у퉇 пименflютсfl ‰лfl после‰не„о пеоб‡зниfl (AddRoundKey) ‚ конце к‡ж‰о„о ‡у퉇. 231
Кус
Киптфиfl и безоп‡сность сетей
Поце‰у‡ ‡сшиениfl ключей со片ет сло‚о з‡ сло‚ом ключи ‡у퉇, „‰е сло‚о — м‡сси‚ из четыех б‡йто‚. Результ‡том бу‰ут 4 × (Nr +1) сл, котоые обозн‡ч‡ютсfl w0, w1, w2..., w4 (Nr +1) – 1 Ду„ими слми, ‚ ‚есии AES-128 (10 ‡ун‰о‚) имеютсfl 44 сл; ‚ AES192 ‚есии (12 ‡ун‰о‚), есть 52 сл; и ‚ AES 256 ‚есий (с 14 ‡у퉇ми) есть 60 сло‚. К‡ж‰ый ключ ‡у퉇 состоит из четыех сло‚. Т‡блиц‡ 7.3 пок‡зы‚‡ет отношениfl меж‰у ‡у퉇ми и слми. Т‡блиц‡ 7.3. Сл ‰лfl к‡ж‰о„о ‡у퉇 Р‡ун‰ 1 2 …….. Nr
Сл w0 w4 …….. w4Nr
w1 w5
w2 w6
w3 w7
w4Nr+1
w4Nr+2
w4Nr+3
Р‡сшиение ключей ‚ AES-128 Посмотим, к‡к со片ютсfl ключи ‚ ‚есии AES-128; поцессы ‰лfl ‰у„их ‰‚ух ‚есий з‡ исключением небольших изменений — те же с‡мые. Рисунок 7.16 пок‡зы‚‡ет, к‡к из исхо‰но„о ключ‡ получить 44 сл.
Рис. 7.16. Р‡сшиение ключей ‚ AES 232
Лекциfl 7
Усо‚ешенст‚нный ст‡н‰‡т шифниfl
Поцесс — сле‰ующий. 1. Пе‚ые четые сл (W0,W1,W2,W3) получены из ключ‡ шиф‡. Ключ шиф‡ пе‰ст‡‚лен к‡к м‡сси‚ из 16 б‡йто‚ (k0 ‰о k15). Пе‚ые четые б‡йт‡ (k0 ‰о k3) ст‡но‚flтсfl W0; сле‰ующие четые б‡йт‡ (k4 ‰о k7) ст‡но‚flтсfl w1; и т‡к ‰‡лее. Ду„ими слми, после‰о‚‡тельное сое‰инение (конк‡тен‡циfl) сло‚ ‚ этой „уппе копиует ключ шиф‡. 2. Ост‡льн‡fl ч‡сть сло‚ (wi) от i = 4 – 43 получ‡етсfl сле‰ующим об‡зом: a. если (i mod 4) ≠ 0, wi = wi–1 ⊕ wi–4, то со„л‡сно исунку 7.16 это озн‡ч‡ет, что к‡ж‰ое сло‚о получено из о‰но„о ле‚о„о и о‰но„о ‚ехне„о; b. если (i mod 4) = 0, wi = t ⊕ wi–4. З‰есь t — ‚еменное сло‚о, езульт‡т пименениfl ‰‚ух поцессо‚, subword и rotword, со сло‚ом wi-1 и пименениfl опе‡ции ИСКЛЮЧАЮЩЕЕ ИЛИ c конст‡нтой ‡у퉇 Rcon. Ду„ими слми, мы имеем t = SubWord(Rotword (wi-1)) ⊕ RCon i/4. RotWord RotWord (rotate word) — поце‰у‡, по‰обн‡fl пеоб‡знию ShiftRows, но пименflетсfl только к о‰ной стоке. Поце‰у‡ пиним‡ет сло‚о к‡к м‡сси‚ из четыех б‡йт и с‰‚脇ет к‡ж‰ый б‡йт ‚ле‚о с кон‚етинием. SubWord SubWord (substitute word) — поце‰у‡, по‰обн‡fl пеоб‡знию SubBytes, но пименflетсfl только к о‰ной стоке. Поце‰у‡ пиним‡ет к‡ж‰ый б‡йт ‚ сло‚е и з‡менflет е„о ‰у„им. RoundConstants ʇ扇fl конст‡нт‡ ‡у퉇 RCon — это 4-б‡йто‚ое зн‡чение, ‚ котоом с‡мые ые ти б‡йт‡ fl‚лflютсfl ‚с儉‡ нуле‚ыми. Т‡блиц‡ 7.4 пок‡зы‚‡ет зн‡чениfl ‰лfl ‚есии AES-128 (с 10 ‡у퉇ми). Т‡блиц‡ 7.4. Конст‡нты RCon Р‡ун‰ 1 2 3 4 5
Конст‡нт‡ (RCon) (01 00 00 00)16 (02 00 00 00) 16 (04 00 00 00) 16 (08 00 00 00) 16 (10 00 00 00) 16
Round 6 7 8 9 10
Конст‡нт‡ (RCon) (20 00 00 00) 16 (40 00 00 00) 16 (80 00 00 00) 16 (1B 00 00 00)16 (36 00 00 00) 16
Поце‰у‡ ‡сшиениfl ключей может использть либо пи‚е‰енную ‚ыше т‡блицу, к‡ ‚ычислflет сл, либо поле GF(28), к‡ ‚ычислflет к‡йние ле‚ые биты ‰ин‡мически, к‡к это пок‡з‡но ниже. RC1 → x1-1 RC2 → x2-1
=x0 =x1
mod prime mod prime
=1 =x 233
→ 00000001 → 00000010
→ 0116 → 0216
Кус
Киптфиfl и безоп‡сность сетей
RC3 → x3-1 RC4 → x 4-1 RC5 → x5-1 RC6 → x 6-1 RC7 → x7-1 RC8 → x 8-1 RC9 → x 9-1 RC10 → x10-1
= x2 = x3 = x4 = x5 = x6 = x7 = x8 = x9
mod prime mod prime mod prime mod prime mod prime mod prime mod prime mod prime
= x2 = x3 = x4 = x5 = x6 = x7 = x4+ x3+ x+1 = x5+ x4+ x2+ x
→ 00000100 → 00001000 → 00010000 → 0100000 → 01000000 → 10000000 → 00011011 → 00110110
→ 0416 → 0816 → 1016 → 2016 → 4016, → 8016 → 1B16 → 3616
К‡йний ле‚ый б‡йт, котоый обозн‡чен RCi — это xi-1, „‰е i — номе ‡у퉇. AES использует непи‚о‰имый полином (x8 + x4 + x3 + x +1). Ал„оитм Ал„оитм 7.5 — постой ‡л„оитм ‰лfl поце‰уы ‡сшиениfl ключ‡ (‚есиfl AES-128). Ал„оитм 7.5. Пмм‡ н‡ пс傉око‰е ‰лfl ‡сшиениfl ключей ‚ AES128 KeyExpans¥on ([key0 to key15], [w 0 to w43] { for (¥ = 0 to 3) w¥ ← key4¥, + key4¥+1 + key4¥+2 + key4¥+3 for (¥ = 4 to 43) { ¥f (¥ mod 4 ≠ 0) w¥ ← w¥-1 + w ¥-4 else { t ← SubWord (RotWord (w¥-1)) ⊕ RCon¥/4 w¥ ← t + w¥-4 } } }
// t ¥s a temporary word
Пиме 7.6 Т‡блиц‡ 7.5 пок‡зы‚‡ет, к‡к ‚ычислflютсfl ключи ‰лfl к‡ж‰о„о ‡у퉇. Пе‰по뇄‡етсfl, что меж‰у Алисой и Бобом со„л‡сн ключ шиф‡ н‡ 128 бито‚ — (24 75 A2 B3 34 75 56 88 31 E2 12 00 13 AA 54 87)16. Т‡блиц‡ 7.5. Пиме ‡сшиениfl ключей Р‡ун‰ Зн‡чениfl t Пе‚ое сло‚о ‚ ‡ун‰е
Втоое сло‚о ‚ ‡ун‰е
Тетье сло‚о ‚ ‡ун‰е
Чет‚етое сло‚о ‚ ‡ун‰е
–
w00=2475A2B3
w01=34755688
w02=31E21200
w03=13AA5487
w04=8955B5CE
w05=BD20E346
w06=8CC2F146
w07=9F68A5C1
1
AD20177D
234
Лекциfl 7
Усо‚ешенст‚нный ст‡н‰‡т шифниfl
2
470678DB
w08=CE53CD15 w09=73732E53
w10=FFB1DF15 w11=60D97AD4
3
31DA48DO
w12= FF8985C5
w13=8CFAAB96
w14=734B7483
w15=2475A2B3
4
47AB5B7D
w16=B822DEB8
w17=34D8752E
W18=479301AD
w19=54010FFA
5
6C762D20
w20= D454F398
w21= E08C86B6
w22= A71F871B
w23= F31E88E1
6
52C4F80D
w24=86900B95
w25=661C8D23
w26= C1030A38
w27=321D82D9
7
E4133523
w28=62833EB6
w29=049FB395
w30 C59CB9AD
w31= F7813B74
8
8CE29268
w32=EE61ACDE w33=EAFE1F4B
w34=2F62A6E6
w35=D8E39D92
9
OA5E4F61
w36= E43FE3BF w37=OEC1FCF4
w38=21A35A12
w39= F940C780
10
3PC6CD99
w40= DBF92E26 w41=D538D2D2
w42=F49B88CO w43=ODDB4F40
В к‡ж‰ом ‡ун‰е ‚ычисление после‰них тех сло‚ очень посто: мы ‰олжны сн‡ч‡л‡ ‚ычислить зн‡чение ‚еменно„о сл (t). Н‡пиме, пе‚ое t (‰лfl ‡у퉇 1) ‚ычислено к‡к RotWord (13AA5487) = AA548713 → SubWord (AA548713)= AC20177D t=AC20177D ⊕ Rcon1=AC20 17 7D ⊕ 0100000016 = AD20177D Пиме 7.7 К‡ж‰ый ключ ‡у퉇 ‚ AES 燂исит от пе‰ы‰ущих ключей ‡у퉇. З‡‚исимость, о‰н‡ко, нелинейн‡fl из-з‡ пеоб‡зниfl SubWord. Сложение конст‡нт ‡у퉇 т‡кже „‡‡нтиует, что к‡ж‰ый ключ ‡у퉇 бу‰ет отлич‡тьсfl от пе‰ы‰уще„о. Пиме 7.8
235
Кус
Киптфиfl и безоп‡сность сетей
Д‚‡ множест‚‡ ключей ‡у퉇 мо„ут быть со片ны от ‰‚ух шифоключей, котоые ‡злич‡ютсfl только ‚ о‰ном бите. Cipher Key 1: 12 45 A2 A1 23 31 A4 A3 B2 CC AA34 C2BB 77 23 Cipher Key 2: 12 45 A2 A1 23 31 A4 A3 B2 CC AB34 C2 BB 77 23 К‡к пок‡зы‚‡ет т‡блиц‡ 7.6, имеютсfl сущест‚енные ‡зности меж‰у ‰‚умfl соот‚етст‚ующими ключ‡ми ‡у퉇. R озн‡ч‡ет «‡у퉻, B и D озн‡ч‡ют ‡зность бито‚. Т‡блиц‡ 7.6. С‡‚нение ‰‚ух множест‚ ключей ‡у퉇 Пиме 7.9 Понflтие сл‡бых ключей, котоое мы обсу扇ли ‰лfl DES ‚ лекции 6, не пименимо к AES. Пе‰положим, что ‚се биты ‚ ключе шиф‡ — нули. Ниже ‰лfl это„о случ‡fl пок‡з‡ны сл ‰лfl некотоых ‡ун‰о‚: Пее‰ ‡ун‰ом: Round 01: Round 02: Round 03: …….. Round 10:
00000000 62636363 9B9898C9 90973450 …….. B4EF5BCB
00000000 62636363 F9FBFBAA 696CCFFA …….. 3E92E211
00000000 62636363 9B9898C9 F2F45733 …….. 23E951CF
00000000 62636363 F9FBFBAA OBOFAC99 …….. 6F8F188E
Все сл пее‰ ‡ун‰ом и ‚ пе‚ом ‡ун‰е ‡‚ны меж‰у собой. Во ‚тоом ‡ун‰е пе‚ое сло‚о соот‚етст‚ует тетьему; ‚тоое сло‚о соот‚етст‚ует чет‚етому. О‰н‡ко после ‚тоо„о ‡у퉇 со‚ений нет; ‚се сл ‡зличны.
Р‡сшиение ключ‡ ‚ AES-192 и AES-256 Ал„оитмы ‡сшиениfl ключей ‚ AES-192 и AES-256 очень похожи н‡ ‡л„оитм ‡сшиениfl ключ‡ ‚ AES-128, со сле‰ующими отличиflми. 1. В AES-192 сл с„енеины ‚ „уппы по шесть ‚место четыех. a. Ключ шиф‡ со片ет пе‚ые шесть сло‚ (w0 к w 5). b. Если i mod 6 ≠ 0, то wi, ← wi-1 + wi-6; ин‡че wi, ← t + wi-6. 2. В AES-256 сл с„енеины ‚ „уппы по ‚осемь ‚место четыех. a. Ключ шиф‡ со片ет пе‚ые ‚осемь сло‚ (w 0 ‰о w7). b. Если i mod 8 ≠ 0, то wi ← wi-1 + wi-8; ин‡че, wi ← t + wi-8. c. Если i mod 4=0, но i mod 8 ≠ 0, то wi = Subword (wi-1) + wi-8.
Ан‡лиз ‡сшиениfl ключ‡ Мех‡низм ‡сшиениfl ключ‡ ‚ AES был ‡з‡бот‡н т‡к, чтобы обеспечить несколько с‚ойст‚, котоые сы‚‡ют ‰ейст‚иfl кипто‡н‡литик‡ по ‡скытию сообщениfl. 236
Лекциfl 7
Усо‚ешенст‚нный ст‡н‰‡т шифниfl
1. Д‡же если Е‚‡ зн‡ет только ч‡сть ключ‡ шиф‡ или зн‡чениfl сло‚ ‚ некотоом ключе‚ом ‡ун‰е, это„о не‰ост‡точно: он‡ еще ‰олжн‡ н‡йти ост‡льную ч‡сть ключ‡ шиф‡, пеж‰е чем сможет н‡йти ключи ‚сех ‡ун‰о‚. Это обеспеч肇етсfl нелинейностью поцесс‡ ‡сшиениfl ключ‡, полученной с помощью пеоб‡зниfl SubWord. 2. Д‚‡ ‡зличных ключ‡ шиф‡, не燂исимо от то„о, к‡к они соотносflтсfl ‰у„ с ‰у„ом, поиз‚о‰flт ‰‚‡ ‡сшиениfl, котоые отлич‡ютсfl по к‡йней мее ‚ нескольких ‡у퉇х. 3. К‡ж‰ый бит ключ‡ шиф‡ изменflетсfl ‚ нескольких ‡ун‰о‚. Н‡пиме, изменение е‰инст‚енно„о бит‡ ‚ ключе шиф‡ изменflет некотоые биты ‚ нескольких ‡у퉇х. 4. Использние конст‡нт, RCons, у‰‡лflет любую симметию, кото‡fl может быть соз‰‡н‡ ‰у„ими пеоб‡зниflми. 5. В отличие от DES ‚ AES отсутст‚уют любые сл‡бые ключи.
Рис. 7.17. Шиф и об‡тный шиф н‡ч‡льно„о поект‡ 237
Кус
Киптфиfl и безоп‡сность сетей
6. Поцесс ‡сшиениfl ключ‡ может быть ле„ко е‡лизн н‡ ‚сех пл‡тфом‡х. 7. Поце‰у‡ ‡сшиениfl ключ‡ может быть е‡лизо‚‡н‡ без пименениfl от‰ельных т‡блиц; ‚ычислениfl мо„ут быть с‰ел‡ны с использнием полей GF(2 8) и FG(2).
7.4. Шифы Тепеь посмотим, к‡к AES использует четые тип‡ пеоб‡зний ‰лfl шифниfl и ‰ешифниfl. В ст‡н‰‡те ‡л„оитм шифниfl упомин‡етсfl к‡к шиф и ‡л„оитм ‰ешифниfl — к‡к об‡тный шиф. К‡к мы упомин‡ли пеж‰е, ADVANCED ENCRYPTION STANDARD — шиф не-Ф‡йстелfl, ‡ это озн‡ч‡ет, что к‡ж‰ое пеоб‡зние или „упп‡ пеоб‡зний ‰олжны быть об‡тимыми. Коме то„о, шиф и об‡тный шиф ‰олжны использть эти опе‡ции т‡ким способом, чтобы они отменflли ‰у„ ‰у„‡. Ключи ‡у퉇 ‰олжны пименflтьсfl ‚ об‡тном поfl‰ке. Ниже пи‚е‰ены ‰‚‡ ‡зличных поект‡, котоые мо„ут быть использны ‰лfl ‡зличных е‡лиз‡ций. Мы обсу‰им об‡ поект‡ ‰лfl AES-128; ‰лfl ‰у„их ‚есий пименflютсfl те же с‡мые поекты.
Пе‚он‡ч‡льный поект В пе‚он‡ч‡льном поекте поfl‰ок пеоб‡зний ‚ к‡ж‰ом ‡ун‰е ‚ шифе и об‡тном шифе не со‚‡ет. Рисунок 7.17 пок‡зы‚‡ет эту ‚есию. Во-пе‚ых, ‚ об‡тном шифе изменflетсfl поfl‰ок сле‰о‚‡ниfl SubBytes (InvSubBytes) и ShiftRows (InvShiftRows). Во-‚тоых, ‚ об‡тном шифе изменен поfl‰ок ‚ыполнениfl MixColumns и AddRoundKey. Эти изменениfl ‚ поfl‰ке необхо‰имы, чтобы ‚ об‡тном шифе с‰ел‡ть поfl‰ок ‡боты об‡тных пеоб‡зний ин‚есным по отношению к пflмому шифу. Сле‰о‚‡тельно, ‡л„оитм ‰ешифниfl ‚ целом — ин‚есиfl ‡л„оитм‡ шифниfl. Мы пок‡з‡ли только ти ‡у퉇, но ост‡льные имеют ‡н‡ло„ичный ‚и‰. Об‡тите ‚ним‡ние, что ключи ‡у퉇 используютсfl ‚ измененном поfl‰ке. Об‡тите т‡кже ‚ним‡ние, что ‡л„оитмы шифниfl и ‰ешифниfl ‚ пе‚он‡ч‡льном поекте не со‚‡ют. Ал„оитм Ко‰ ‰лfl ‚есии AES-128 это„о поект‡ пок‡з‡н ‚ ‡л„оитме 7.6. Ко‰ ‰лfl об‡тно„о шиф‡ ост‡‚лflем к‡к уп‡жнение. Ал„оитм 7.6. Пмм‡ н‡ пс傉око‰е ‰лfl шиф‡ пе‚он‡ч‡льно„о поект‡ C¥pher( InBlock [16], OutBlock[16], w[0…43] { BlockToState (InBlock, S) S ← SubBytes (S) for (round = 1 to10) 238
Лекциfl 7
Усо‚ешенст‚нный ст‡н‰‡т шифниfl
{ S ← SubByres (S) S ← Sh¥ftRows (S) If (round ≠ 10) S ← M¥xColumns (S) S ← AddRoundKey (S, w[4 × round, 4 × round +3]) } StateToBlock (S, OutBlock); }
Альтен‡ти‚ный поект Длfl тех пиложений, котоые пе‰почит‡ют со‚‡ющие ‡л„оитмы ‰лfl шифниfl и ‰ешифниfl, был ‡з‡бот‡н об‡тный шиф. В т‡кой ‚есии пеоб‡зниfl ‚ об‡тном шифе пеестоены т‡к, чтобы c‰ел‡ть поfl‰ок пеоб‡зний тем же с‡мым ‚ пflмом шифе и об‡тном шифе. В этом поекте обеспечен‡ об‡тимость ‰лfl п‡ы пеоб‡зний, ‡ не ‰лfl к‡ж‰о„о о‰иночно„о пеоб‡зниfl.
П‡ы SubBytes/ShiftRows SubBytes изменflет со‰еж‡ние к‡ж‰о„о б‡йт‡, не изменflfl поfl‰ок б‡йто‚ м‡тицы состоflний; ShiftRows изменflет поfl‰ок б‡йто‚ ‚ м‡тице состоflний, не изменflfl со‰еж‡ние б‡йто‚. Это пзум傇ет, что мы можем изменить поfl‰ок этих ‰‚ух пеоб‡зний ‚ об‡тном шифе, не з‡т‡„肇fl об‡тимость цело„о ‡л„оитм‡; исунок 7.18 иллюстиует и‰ею. Об‡тите ‚ним‡ние, что комбин‡ции ‰‚ух пеоб‡зний — ‚ шифе и об‡тном шифе — ин‚есны ‰у„ ‰у„у. 239
Кус
Киптфиfl и безоп‡сность сетей
Рис. 7.18. Об‡тимость со‚окупности SubByte и ShiftRows П‡‡ MixColumns/AddRoundKey З‰есь пименflютсfl ‰‚‡ пеоб‡зниfl, котоые имеют ‡зличные с‚ойст‚‡. О‰н‡ко эти п‡ы мо„ут ст‡ть ин‚есиflми ‰у„ ‰у„‡, если мы умножим м‡тицу ключей н‡ ин‚есию м‡тицы конст‡нт, используемой ‚ пеоб‡знии MixColumns. Мы н‡зы‚‡ем но‚ое пеоб‡зние InvAddRoundKey. Рисунок 7.19 пок‡зы‚‡ет но‚ую конфи„у‡цию. Рис. 7.19. Об‡тимость со‚окупности MixColumns и AddRoundKey Можно ‰ок‡з‡ть, что эти ‰‚е комбин‡ции тепеь ин‚есны ‰у„ ‰у„у. В шифе мы обозн‡чим ‚хо‰ную м‡тицу состоflний — S и ‚ыхо‰ную м‡тицу — T. В об‡тном шифе ‚хо‰н‡fl м‡тиц‡ — T. Ниже пок‡з‡но, что ‚ыхо‰н‡fl м‡тиц‡ состоflний — т‡кже S. Об‡тите ‚ним‡ние, что пеоб‡зние MixColumns — ф‡ктически поиз‚е‰ение м‡тицы C (м‡тицы конст‡нт н‡ м‡тицу состоflний). Cipher: T = CS ⊕ K Inverse Cipher: С-1 ⊕ C-1K=C-1(CS ⊕ K) ⊕ C-1K = C-1CS ⊕ C-1K ⊕ C-1K = S
240
Лекциfl 7
Усо‚ешенст‚нный ст‡н‰‡т шифниfl
Тепеь мы можем пок‡з‡ть шиф и об‡тный шиф ‰лfl ‡льтен‡ти‚но„о поект‡. Об‡тите ‚ним‡ние, что мы ‚се еще ‰олжны использть ‰‚‡ пеоб‡-
зниfl AddRoundKey ‚ ‰ешифнии. Ду„ими слми, мы имеем ‰е‚flть InvAddRoundKey и ‰‚‡ AddRoundKey пеоб‡зниfl, к‡к это пок‡з‡но н‡ ис. 7.20. Изменение ‡л„оитм‡ ‡сшиениfl ключей
241
Кус
Киптфиfl и безоп‡сность сетей
Вместо то„о чтобы использть пеоб‡зние InvRoundKey ‚ об‡тном шифе, можно изменить ‡л„оитм ‡сшиениfl ключей т‡к, чтобы со片‚‡ть ‡зличное множест‚о ключей ‡у퉇 ‰лfl об‡тно„о шиф‡.
О‰н‡ко отметим, что ключ ‡у퉇 ‰лfl опе‡ций п剂‡ительно„о ‡у퉇 и после‰не„о ‡у퉇 ‰олжен быть изменен. Ключи ‡у퉇 от 1 ‰о 9 необхо‰имо умножить н‡ м‡тицу конст‡нт. Этот ‡л„оитм ост‡‚им ‰лfl уп‡жнений.
7.5. Пимеы В этом ‡з‰еле пи‚о‰flтсfl некотоые пимеы шифниfl, ‰ешифниfl и „ене‡ции ключей, котоые обсу扇лись ‚ пе‰ы‰ущих ‡з‰ел‡х.
242
Лекциfl 7
Усо‚ешенст‚нный ст‡н‰‡т шифниfl
Рис. 7.20. Шиф и об‡тный шиф ‡льтен‡ти‚но„о поект‡ Пиме 7.10 Ниже пок‡з‡н блок з‡шифнно„о текст‡, полученный из исхо‰но„о текст‡ с помощью случ‡йной ‚ыбоки ключей.
Т‡блиц‡ 7.7. пок‡зы‚‡ет зн‡чениfl м‡тицы состоflний и ключей ‡у퉇 ‰лfl это„о пиме‡. Т‡блиц‡ 7.7. Пиме шифниfl Пиме 7.21 Пиме пок‡зы‚‡ет м‡тицы состоflний, ‡ун‰ 7 ‚ пимее 7.10. Рис. 7.21. М‡тицы состоflний о‰но„о ‡у퉇 Пиме 7.12 О‰ин из куьезных случ‡е‚ пи ‡ссмотении шифниfl — к‡ исхо‰ный текст состоит из о‰них нулей. Используем ключ шиф‡ из пиме‡ 7.10 и получ‡ем з‡шифнный текст: Пиме 7.13 Д‡‚‡йте по‚еим 뇂инный эффект, котоый мы обсу扇ли ‚ лекции 6. Изменим только о‰ин бит ‚ исхо‰ном тексте и с‡‚ним езульт‡ты. Мы изменили только о‰ин бит ‚ после‰нем б‡йте. Результ‡т пок‡зы‚‡ет эффект ‡ссе肇ниfl и пеемеш肇ниfl. Изменение е‰инст‚енно„о бит‡ ‚ исхо‰ном тексте з‡тонуло мно„о бит ‚ з‡шифнном тексте. Пиме 7.14 Ниже пок‡з‡н эффект использниfl ключ‡ шифниfl «‚се нули».
7.6. Ан‡лиз AES Д‡лее ‰‡н к‡ткий обзо тех х‡‡ктеистик AES.
Безоп‡сность AES был ‡з‡бот‡н после DES. Большинст‚о из‚естных ‡т‡к н‡ DES было по‚еено н‡ AES; ни о‰н‡ из них ‰о сих по не н‡ушил‡ безоп‡сность AES. Ат‡к‡ „убой силы 243
Кус
Киптфиfl и безоп‡сность сетей
AES fl‚но более безоп‡сен, чем DES, из-з‡ больше„о ‡зме‡ ключ‡ (128, 192 и 256 бито‚). Д‡‚‡йте с‡‚ним DES с ключом шиф‡ н‡ 56 бито‚ и AES с ключом шиф‡ н‡ 128 бито‚. Длfl DES, чтобы н‡йти ключ, мы ну扇емсfl ‚ 256 испыт‡ний (и„ноиуfl поблему ‰ополнениfl ключ‡); ‰лfl AES — ‚ 2128 испыт‡ниflх. Это озн‡ч‡ет, что если мы можем н‡ушить DES ‚ t секун‰, н‡м нужно (272 × t) секун‰, чтобы н‡ушить AES. Это почти не‚озможно. Коме то„о, AES обеспеч肇ет ‰‚е ‰у„ие ‚есии более ‰линными ключ‡ми шиф‡. Отсутст‚ие сл‡бых ключей — еще о‰но пеимущест‚о AES пее‰ DES. Ст‡тистические ‡т‡ки Сильное ‡ссе肇ние и пеемеш肇ние, обеспеченное комбин‡цией пеоб‡зний SubByte, ShiftRows и MixColumns, у‰‡лflют любую ч‡стотную з‡кономеность ‚ исхо‰ном тексте. Мно„очисленные попытки ‚ыполнить ст‡тистический ‡н‡лиз з‡шифнно„о текст‡ не у‚енч‡лись успехом. Диффеенци‡льные и линейные ‡т‡ки AES был ‡з‡бот‡н после DES. Диффеенци‡льные и линейные ‡т‡ки кипто‡н‡лиз‡ были, без сомнениfl, учтены. По‰обные ‡т‡ки н‡ AES пок‡ не обн‡ужены.
Ре‡лиз‡циfl AES может быть е‡лизо‚‡н ‚ пммном обеспечении, ‡птных се‰ст‚‡х и пммиуемом обоу‰о‚‡нии. Ре‡лиз‡циfl может пименflть поцесс поиск‡ ‚ т‡блице или поце‰уы, ‚ котоых сущест‚ует четк‡fl ‡л„еб‡ическ‡fl стукту‡. Пеоб‡зние может быть оиентино или н‡ б‡йт, или н‡ сло‚о. В оиентинной н‡ б‡йт ‚есии ‡л„оитм может использть поцессо н‡ 8 бито‚; ‚ оиентинной н‡ сло‚о ‚есии — поцессо н‡ 32 бит‡. В любом случ‡е, об‡ботк‡ ‰ел‡етсfl очень бысто.
Постот‡ и стоимость Ал„оитмы, пименflемые ‚ AES, н‡столько посты, что мо„ут быть ле„ко е‡лизны с помощью ‰еше‚ых поцессоо‚ и миним‡льно„о объем‡ п‡мflти.
7.7. Рекомен‰о‚‡нн‡fl лите‡ту‡ Нижесле‰ующие кни„и и с‡йты ‰‡ют более ‰ет‡льную инфом‡цию о пе‰мет‡х, ‡ссмотенных ‚ этой лекции. Пункты, пи‚е‰енные ‚ ꂇ‰‡тных скобк‡х, со‰еж‡тсfl ‚ списке ‚ конце кни„и.
Кни„и [Sta06L [Sti06L [Rhe0S], [Sal03], [Mao04L] и [TW06] ‡ссм‡т肇ют AES.
244
Лекциfl 7
Усо‚ешенст‚нный ст‡н‰‡т шифниfl
С‡йты Нижесле‰ующие с‡йты ‰‡ют больше инфом‡ции о тем‡х, ‡ссмотенных ‚ этой лекции. csrc.nist.gov/publications/fips/ripsl97/fips-197.pdf http://www.quadibloc.com/crypto/co040401 .htm http://www. ietef.org/rfc/rfc 3394. txt
7.8. Ито„и • Усо‚ешенст‚нный ст‡н‰‡т шифниfl (AES — ADVANCED ENCRYPTION STANDARD) — ст‡н‰‡т блочно„о шиф‡ с симметичными ключ‡ми, опубликнный Н‡цион‡льным Институтом ст‡н‰‡то‚ NIST (National Institute of Standard and Technology) к‡к Фе‰е‡льный Ст‡н‰‡т Об‡ботки Инфом‡ции 197 (FIPST-197 — FEDERAL INFORMATION PROCESSING STANDARD 197). AES б‡зиуетсfl н‡ Rijndael‡л„оитме. • AES — шиф не-Ф‡йстелfl, котоый з‡шифо‚ы‚‡ет и ‡сшифо‚ы‚‡ет блок ‰‡нных ‰линой 128 бито‚. Оно использует 10, 12 или 14 ‡ун‰о‚. Р‡зме ключ‡, 128, 192 или 256 бито‚, 燂исит от числ‡ ‡ун‰о‚. • AES оиентин н‡ ‡боту с б‡йт‡ми. Исхо‰ный текст н‡ 128 бито‚ или з‡шифнный текст ‡ссм‡т肇етсfl к‡к шест퇉ц‡ть б‡йто‚ по 8 бито‚. Чтобы обеспечить ‚ыполнение некотоых м‡тем‡тических пеоб‡зний ‰лfl б‡йто‚, ‚ AES опе‰елено понflтие м‡тицы состоflний. М‡тиц‡ состоflний — это м‡тиц‡ 4 × 4, ‚ котоой к‡ж‰ый ‚хо‰ fl‚лflетсfl б‡йтом. • Чтобы обеспечить безоп‡сность, AES использует четые тип‡ пеоб‡зний: по‰ст‡но‚к‡, пеест‡но‚к‡, смеш肇ние и ‰оᇂление ключ‡. К‡ж‰ый ‡ун‰ AES, коме после‰не„о, пименflет эти четые пеоб‡зниfl. После‰ний ‡ун‰ использует только ти из четыех пеоб‡зний. • По‰ст‡но‚к‡ опе‰елflетсfl либо поцессом поиск‡ ‚ т‡блице, либо м‡тем‡тическим ‚ычислением ‚ поле GF(28). AES использует ‰‚‡ об‡тимых пеоб‡зниfl — SubBytes и InvSubBytes, котоые fl‚лflютсfl ин‚есиflми ‰у„ ‰у„‡. • Втоое пеоб‡зние ‚ ‡ун‰е — с‰‚и„, котоое пеест‡‚лflет б‡йты. В шифнии пеоб‡зние н‡з‚‡но ShiftRows, ‚ ‰ешифнии — InvShiftRows. Пеоб‡зниfl ShiftRows и InvShiftRows ин‚есны ‰у„ ‰у„у. • Пеоб‡зние смеш肇ниfl изменflет со‰еж‡ние к‡ж‰о„о б‡йт‡, об‡б‡ты‚‡fl о‰но‚еменно четые б‡йт‡ и объе‰инflfl их, чтобы получить четые но‚ых б‡йт‡. AES опе‰елflет ‰‚‡ пеоб‡зниfl, MixColumns и InvMixColumns, пименflемые ‚ шифнии и ‰ешифнии. MixColumns умнож‡ет м‡тицу состоflний н‡ к‚‡‰‡тную м‡тицу конст‡нт; InvMixColumns ‰ел‡ет то же с‡мое, используfl об‡тную м‡тицу конст‡нт. Пеоб‡зниfl MixColumns и InvMixColumns ин‚есны ‰у„ ‰у„у. • Пеоб‡зние, котоое ‚ыполнflет отбел肇ние, н‡зы‚‡етсfl AddRoundKey. Пе‰ы‰ущ‡fl м‡тиц‡ состоflний ск뇉ы‚‡етсfl (м‡тич245
Кус
Киптфиfl и безоп‡сность сетей
ное сложение) с м‡тичным ключом ‡у퉇, чтобы со片ть но‚ую м‡тицу. Сложение от‰ельных элементо‚ ‚ этих ‰‚ух м‡тиц‡х ‚ыполнflетсfl ‚ GFЕ(28) — это озн‡ч‡ет, что 퇉 слми по 8 бито‚ по‚о‰итсfl опе‡циfl ИСКЛЮЧАЮЩЕЕ ИЛИ (XORed). Пеоб‡зние AddRoundKey ин‚есно с‡мо себе. • В пе‚ой конфи„у‡ции (10 ‡ун‰о‚ с ключ‡ми н‡ 128 бито‚) „ене‡то ключей со片ет о‰ин퇉ц‡ть ключей ‡у퉇 н‡ 128 бито‚ из ключ‡ шиф‡ н‡ 128 бито‚. AES использует понflтие сл ‰лfl „ене‡ции ключей. Сл состоflт из четыех б‡йт. Ключи ‡у퉇 „енеиуютсfl сло‚о з‡ сло‚ом. AES нумеует сл от w2 ‰о w43. Поцесс н‡зы‚‡етсfl «‡сшиение ключ‡». • Шиф AES ‰лfl ‰ешифниfl использует ‰‚‡ ‡л„оитм‡. В пе‚он‡ч‡льном поекте поfl‰ок пеоб‡зний ‚ к‡ж‰ом ‡ун‰е — ‡зличен пи шифнии и ‰ешифнии. В ‡льтен‡ти‚ном поекте пеоб‡зниfl ‚ ‡л„оитм‡х ‰ешифниfl пеестоены т‡к, чтобы поfl‰ок ‚ шифнии и ‰ешифнии был о‰ин и тот же. Во ‚тоой ‚есии об‡тимость обеспечен‡ ‰лfl п‡ы пеоб‡зний.
7.9. Н‡бо ‰лfl п‡ктики Обзоные ‚опосы 1. Пеечислите китеии, опе‰еленные NIST ‰лfl AES. 2. Пеечислите меты (‡зме блок‡, ‡зме ключ‡ и число ‡ун‰о‚) ‰лfl тех ‚есий AES. 3. Сколько пеоб‡зний имеетсfl ‚ к‡ж‰ой ‚есии AES? Сколько ключей необхо‰имо ‰лfl к‡ж‰ой ‚есии? 4. С‡‚ните DES и AES. К‡кой из них оиентин н‡ ‡боту с битом, ‡ к‡кой — н‡ ‡боту с б‡йтом? 5. Опе‰елите м‡тицу состоflний ‚ AES. Сколько м‡тиц состоflний имеетсfl ‚ к‡ж‰ой ‚есии AES? 6. К‡кие из четыех пеоб‡зний, опе‰еленных ‰лfl AES, изменflют со‰еж‡ние б‡йто‚, ‡ к‡кие — не изменflют? 7. С‡‚ните по‰ст‡но‚ку ‚ DES и AES. Почему мы имеем только о‰ну т‡блицу пеест‡но‚ки (S-блок) ‚ AES и несколько — ‚ DES? 8. С‡‚ните пеест‡но‚ки ‚ DES и AES. Почему 퇉о иметь ‡сшиение и сж‡тие пеест‡но‚ки ‚ DES и не н‡‰о — ‚ AES? 9. С‡‚ните ключи ‡у퉇 ‚ DES и AES. В к‡ком шифе ‡зме ключ‡ ‡у퉇 ‡‚ен ‡змеу блок‡? 10. Почему смеш肇ющее пеоб‡зние (MixColumns) нужно ‚ DES, но не нужно ‚ AES?
Уп‡жнениfl 1. Пи шифнии S-блоки мо„ут быть или ст‡тическими, или ‰ин‡мическими. П‡‡меты ‚ ст‡тическом S-блоке не 燂исflт от ключ‡. 246
Лекциfl 7
2. 3.
4.
5.
6.
7.
8.
Усо‚ешенст‚нный ст‡н‰‡т шифниfl
a. Ук‡з‡ть пеимущест‚‡ и не‰ост‡тки ст‡тическо„о и ‰ин‡мическо„о Sблоко‚. b. S-блоки ‚ AES (т‡блицы по‰ст‡но‚ки) — ст‡тические или ‰ин‡мические? AES имеет больший ‡зме блок‡, чем DES (128 — ‚ AES и 64 — ‚ DES). Объflсните, пеимущест‚о это или не‰ост‡ток. AES опе‰елflет ‡зличные е‡лиз‡ции с ‡зличным числом ‡ун‰о‚ (10, 12 и 14); DES опе‰елflет только о‰ну е‡лиз‡цию с 16 ‡у퉇ми. Объflсните, пеимущест‚о это или не‰ост‡ток AES и DES и ‚ чем отличие. AES опе‰елflет ти ‡зличных ‡зме‡ ключ‡ к шифу (128, 192 и 256); DES опе‰елflет только о‰ин ‡зме ключ‡ к шифу (56). К‡ко‚ы пеимущест‚‡ и не‰ост‡тки т‡ко„о отличиfl? В AES ‡зме блок‡ ‡‚ен ‡змеу ключей ‡у퉇 (128 бит). В DES ‡зме блок‡ 64 бит‡, но ‡зме ключей ‡у퉇 — только 48 бит. Я‚лflетсfl ли эт‡ ‡зниц‡ пеимущест‚ом или не‰ост‡тком AES по с‡‚нению с DES? Док‡жите, что пеоб‡зниfl ShiftRows и InvShiftRows — ин‚есны. a. Пок‡жите т‡блицу пеест‡но‚ки ‰лfl ShiftRows. Т‡блиц‡ ‰олжн‡ иметь 128 ‚хо‰о‚, но т‡к к‡к со‰еж‡ние б‡йт‡ не изменflетсfl, т‡блиц‡ может иметь только 16 ‚ыхо‰о‚; к‡ж‰ый ‚ыхо‰ пе‰ст‡‚лflет б‡йт. b. По‚тоите чсть a ‰лfl InvShiftRows пеоб‡зниfl. c. Используfl езульт‡ты ч‡стей a и b, ‰ок‡жите, что пеоб‡зниfl ShiftRows и InvShiftRows ин‚есны ‰у„ ‰у„у. Используйте о‰ин и тот же ключ шиф‡, пимени‚ е„о ‰лfl к‡ж‰о„о из сле‰ующих пеоб‡зний н‡ ‰‚ух исхо‰ных текст‡х, котоые отлич‡ютсfl только по пе‚ому биту. Н‡й‰ите число измени‚шихсfl бито‚ после к‡ж‰о„о пеоб‡зниfl. a. SubBytes b. ShiftRows c. Mix Columns d. AddRoundKey (с теми же с‡мыми ключ‡ми ‡у퉇 по ‚‡шему ‚ыбоу) Длfl то„о чтобы у‚и‰еть нелинейность пеоб‡зниfl SubBytes, пок‡жите, что если a и b — ‰‚‡ б‡йт‡, то мы имеем SubBytes (a ⊕ b) ≠ SubBytes (a) ⊕ SubBytes (b)
К‡к пиме используйте a = 0x57 и b = 0xA2. 9. Д‡йте общую фомулу ‰лfl ‚ычислениfl числ‡ ‚ к‡ж‰ом из ‚и‰о‚ пеоб‡зниfl SubBytes, ShiftRows, MixColumns и AddRoundKey и числ‡ полных пеоб‡зний ‰лfl к‡ж‰ой ‚есии AES. Фомул‡ ‰олжн‡ быть функцией числ‡ ‡ун‰о‚. 10. Измените исунок 7.16 ‰лfl AES-192 и AES-256. 11. Со片йте ‰‚е но‚ые т‡блицы, котоые пок‡зы‚‡ют RCons конст‡нты ‰лfl е‡лиз‡ций AES-192 и AES-256 (см. т‡блицу 7.4).
247
Кус
Киптфиfl и безоп‡сность сетей
12. В AES-128 ‰лfl п剂‡ительно„о ‡у퉇 используютсfl т‡кие же ключи, к‡к ключи шифниfl. Се‰ли‚о ли это ‰лfl AES-192? Се‰ли‚о ли это ‰лfl AES-256? 13. Н‡ исунке 7.8 пеемножьте X и X-1 м‡тицы, чтобы ‰ок‡з‡ть, что они ин‚есны ‰у„ ‰у„у. 14. Используfl исунок 7.12, пеепишите ꂇ‰‡тные м‡тицы C и C-1, пименflfl полиномы с коэффициент‡ми ‚ GF(2). Пеемножьте эти ‰‚е м‡тицы и ‰ок‡жите, что они fl‚лflютсfl об‡тными ‰у„ ‰у„у. 15. Док‡жите, что ко‰ ‚ ‡л„оитме 7.1 (пеоб‡зние SubByte) соот‚етст‚ует поцессу, пок‡з‡нному н‡ ис. 7.8. 16. Используfl ‡л„оитм 7.1 (пеоб‡зние SubByte), с‰ел‡йте сле‰ующее: a. Н‡пишите ко‰ ‰лfl поце‰уы, кото‡fl ‚ычислflет ин‚есию б‡йт‡ ‚ GF(28). b. Н‡пишите ко‰ ‰лfl ByteToMatrix. c. Н‡пишите ко‰ ‰лfl MatrixToByte. 17. Н‡пишите ‡л„оитм ‰лfl пеоб‡зниfl InvSubBytes. 18. Док‡жите, что ко‰ ‚ ‡л„оитме 7.2 (пеоб‡зние ShiftRows) соот‚етст‚ует поцессу, пок‡з‡нному н‡ ис. 7.9. 19. Используfl ‡л„оитм 7.2 (пеоб‡зние ShiftRows), н‡пишите ко‰ ‰лfl поце‰уы copyrow. 20. Н‡пишите ‡л„оитм ‰лfl пеоб‡зниfl InvShiftRows. 21. Док‡жите, что ко‰ ‚ ‡л„оитме 7.3 (пеоб‡зние MixColumns) соот‚етст‚ует поцессу, пок‡з‡нному н‡ ис. 7.13. 22. Используfl ‡л„оитм 7.3 (пеоб‡зние MixColumns), н‡пишите ко‰ ‰лfl поце‰уы copycolumns. 23. Пеепишите ‡л„оитм 7.3 (пеоб‡зние MixColumns), з‡мени‚ опе‡тоы (.) поце‰уой, н‡зы‚‡емой multfield, чтобы ‚ычислить поиз‚е‰ение ‰‚ух б‡йто‚ ‚ поле GF(28). 24. Н‡пишите ‡л„оитм ‰лfl пеоб‡зниfl InvMixColumn. 25. Док‡жите, что ко‰ ‚ ‡л„оитме 7.4 (пеоб‡зние AddRoundKey), соот‚етст‚ует поцессу, пок‡з‡нному н‡ ис. 7.15. 26. В ‡л„оитме 7.5 (‡сшиение ключ‡): a. Н‡пишите ко‰о‚ую пмму ‰лfl поце‰уы Subbyte. b. Н‡пишите ко‰ пмму ‰лfl поце‰уы Rotword-. 27. Д‡йте ‰‚‡ но‚ых ‡л„оитм‡ ‰лfl ‡сшиениfl ключ‡ ‚ AES-192 и AES-256 (см. ‡л„оитм 7.5). 28. Н‡пишите ‡л„оитм ‡сшиениfl ключей ‰лfl об‡тно„о шиф‡ ‚ ‡льтен‡ти‚ном поекте. 29. Н‡пишите ‡л„оитм ‰лfl об‡тно„о шиф‡ ‚ пе‚он‡ч‡льном поекте. 30. Н‡пишите ‡л„оитм ‰лfl об‡тно„о шиф‡ ‚ ‡льтен‡ти‚ном поекте.
248
Лекциfl 8
Шифние, использующее со‚еменные шифы с симметичным ключом
Лекциfl 8. Шифние, использующее со‚еменные шифы с симметичным ключом Цели и со‰еж‡ние Эт‡ лекциfl имеет несколько целей. • Пок‡з‡ть, к‡к со‚еменные ст‡н‰‡тные шифы, т‡кие, к‡к DATA ENCRIPTION STANDARD или ADVANCED ENCRYPTION STANDARD, используютсfl ‰лfl то„о, чтобы з‡шифть ‰линные сообщениfl. • Обсу‰ить пflть ежимо‚ ‡боты, ‡з‡бот‡нных ‰лfl пименениfl с со‚еменными блочными шиф‡ми. • Опе‰елить, к‡кой ежим ‡боты со片ет шиф поток‡ из осно‚ных блочных шифо‚. • Обсу‰ить ‡спекты безоп‡сности и ‡спост‡нение ошибок пи ‡зличных ежим‡х ‡боты. • Обсу‰ить ‰‚‡ шиф‡ поток‡, пименflемые ‰лfl об‡ботки ‰‡нных ‚ е‡льном м‡сшт‡бе ‚емени. Эт‡ лекциfl пок‡зы‚‡ет, к‡к концепции ‰‚ух со‚еменных блочных шифо‚, ‡ссмотенные ‚ лекциflх 5, 6 и 7, мо„ут использтьсfl, чтобы з‡шифть ‰линные сообщениfl. Он‡ т‡кже ‚‚о‰ит ‰‚‡ но‚ых понflтиfl шиф‡ поток‡.
8.1. Пименение со‚еменных блочных шифо‚ Шифние симметичными ключ‡ми может быть ‚ыполнено се‰ст‚‡ми со‚еменных блочных шифо‚. Д‚‡ со‚еменных блочных шиф‡, обсуж‰енные ‚ лекциflх 6 и 7, ‡ именно DES и AES, ‡з‡бот‡ны ‰лfl то„о, чтобы з‡шифть и ‡сшифть блок текст‡ фиксинно„о ‡зме‡. DES з‡шифо‚ы‚‡ет и ‡сшифо‚ы‚‡ет блок 64 бито‚; AES — блок 128 бито‚. В е‡льной жизни текст, котоый бу‰ет з‡шифн, имеет пееменный ‡зме и обычно н‡мно„о больший, чем 64 или 128 бито‚. Режимы ‡боты были изобетены, чтобы з‡шифть текст любо„о ‡зме‡, используfl либо DES, либо AES. Рисунок 8.1 пок‡зы‚‡ет эти пflть ежимо‚ ‡боты, котоые мы обсу‰им ‰‡лее.
Рис. 8.1. Режимы ‡боты 249
Кус
Киптфиfl и безоп‡сность сетей
Режим электонной ко‰о‚ой кни„и С‡мый постой ежим ‡боты н‡з‚‡н ежимом электонной ко‰о‚ой кни„и (ECB — ELECTRONIC CODEBOOK). Исхо‰ный текст ‡з‰елен н‡ N блоко‚. Р‡зме блок‡ — n бит. Этот ‡зме исхо‰но„о текст‡ не fl‚лflетсfl к‡тным числом ‡зме‡ блок‡, текст ‰ополнflетсfl, чтобы с‰ел‡ть после‰ний блок по ‡змеу т‡ким же, к‡к ‰у„ие блоки. О‰ин и тот же ключ используетсfl, чтобы з‡шифть и ‡сшифо‚ы‚‡ть к‡ж‰ый блок. Рисунок 8.2 пок‡зы‚‡ет шифние и ‰ешифние ‚ этом ежиме.
Рис. 8.2. Режим электонной ко‰о‚ой кни„и (ECB) Соотношение меж‰у исхо‰ным и з‡шифнным текст‡ми пок‡з‡но ниже: Шифние: Ci = EK (Pi)
Дешифние: Pi = DK (Ci)
Пиме 8.1 Этот пиме пок‡зы‚‡ет, к‡к можно обеспечить, что к‡ж‰ый блок, посл‡нный Алисой, может быть точно ‚осст‡но‚лен н‡ стооне Боб‡. З‰есь используетсfl то, что шифние и ‰ешифние ин‚есны ‰у„ ‰у„у. Pi = DK (Ci) = Pi = DK (EK (Pi)) Пиме 8.2 Т‡кой ежим н‡зы‚‡етсfl ежимом электонной ко‰о‚ой кни„и, потому что он может быть пе‰ст‡‚лен 2K ко‰о‚ыми кн脇ми (о‰ной н‡ к‡ж‰ый ко‰о‚ый ключ). ʇ扇fl ко‰о‚‡fl кн脇 имеет 2n ‚хо‰о‚ и ‰‚е колонки. К‡ж‰ый ‚хо‰ сопост‡‚лflет исхо‰ному тексту соот‚етст‚ующий з‡шифнный текст. О‰н‡ко если K и n очень ‚елики, ко‰о‚‡fl кн脇 бу‰ет слишком ‚елик‡ и ее компоно‚к‡ и эксплу‡т‡циfl — неу‰обны. 250
Лекциfl 8
Шифние, использующее со‚еменные шифы с симметичным ключом
Поблемы безоп‡сности В ежиме EBC имеютсfl сле‰ующие поблемы безоп‡сности. 1. Об‡зцы н‡ уо‚не блок‡ сох‡нflютсfl. Н‡пиме, о‰ин‡ко‚ые блоки ‚ исхо‰ном тексте имеют о‰ин‡ко‚ый ‚и‰ ‚ соот‚етст‚ующих блок‡х з‡шифнно„о текст‡. Если Е‚‡ узн‡ет, что ‚ з‡шифнном тексте блоки 1, 5 и 10 о‰ин‡ко‚ы, он‡ поймет, что блоки исхо‰но„о текст‡ 1, 5 и 10 — тоже о‰ин‡ко‚ые. Это — «‰ыочꇻ ‚ безоп‡сности. Н‡пиме, Е‚‡ может ‚ыполнить исчепы‚‡ющий поиск и ‡сшифть только о‰ин из этих блоко‚, чтобы н‡йти со‰еж‡ние ‚сех их. 2. Не燂исимость блоко‚ со片ет Е‚е ‚озможность ‰лfl з‡мены некотоых блоко‚ з‡шифнно„о текст‡ без зн‡ниfl ключ‡. Н‡пиме, если он‡ зн‡ет, что блок 8 ‚с儉‡ пе則ет некотоую 燉‡нную инфом‡цию, он‡ может з‡менить этот блок соот‚етст‚ующим блоком ‚ п剂‡ительно пеех‚‡ченном сообщении. Пиме 8.3 Пе‰положим, что Е‚‡ ‡бот‡ет ‚ комп‡нии месflц, несколько ч‡со‚ ‚ не‰елю (ее ежемесflчн‡fl опл‡т‡ очень низк‡fl). Он‡ зн‡ет, что комп‡ниfl использует несколько блоко‚ инфом‡ции ‰лfl к‡ж‰о„о служ‡ще„о, ‚ котоом се‰ьмой блок fl‚лflетсfl суммой ‰ене„, кото‡fl бу‰ет ‰епонио‚‡н‡ ‚ учетной з‡писи служ‡ще„о. Е‚‡ может п傇ть з‡шифнный текст, пе則‚‡емый б‡нку ‚ конце месflц‡, з‡менить блок инфом‡цией о ее опл‡те с копией блок‡ с инфом‡цией об опл‡те полной ‡бочей не‰ели еfi колле„и. К‡ж‰ый месflц Е‚‡ может получ‡ть больше ‰ене„, чем ей положено. Р‡спост‡нение ошибки Е‰инст‚енный бит ошибки ‚ пе則че может со片ть ошибки ‚ нескольких бит‡х (обычно поло‚ине бито‚ или ‚сех бит‡х) ‚ соот‚етст‚ующих блок‡х. О‰н‡ко ошибк‡ не имеет ник‡ко„о ‚оз‰ейст‚иfl н‡ ‰у„ие блоки. Ал„оитм Длfl шифниfl или ‰ешифниfl мо„ут быть со片ны постые ‡л„оитмы. Ал„оитм 8.1 со‰ежит поце‰уу, н‡пис‡нную ‚ пс傉око‰е ‰лfl шифниfl. Поце‰уу ‰лfl ‰ешифниfl ост‡‚лflем к‡к уп‡жнение. EK з‡шифо‚ы‚‡ет только о‰ин-е‰инст‚енный блок и может быть о‰ним из шифо‚, ‡ссмотенных ‚ „뇂‡х 6 или 7 (DES или AES). Ал„оитм 8.1. Режим шифниfl ECB ECB_Encrypt¥on (K,Pla¥ntext bloks) { for(¥ = 1 to N) { C¥ ← EK(P¥) } return Cl¥phertext blocks } 251
Кус
Киптфиfl и безоп‡сность сетей
З‡х‚‡т з‡шифнно„о текст‡ В ежиме ECB может потебтьсfl ‰ополнение, котоое ‰оᇂлflетсfl к после‰нему блоку, если он со‰ежит менее n бит. Т‡кое ‰ополнение не ‚с儉‡ ‚озможно. Н‡пиме, ‡ссмотим ситу‡цию, к‡ з‡шифнный текст ‰олжен быть сох‡нен ‚ буфее, „‰е ‰о это„о был п剂‡ительно сох‡нен исхо‰ный текст. В этом случ‡е исхо‰ный текст и з‡шифнный текст ‰олжны быть о‰ин‡ко‚ой ‰лины. Техник‡, кото‡fl н‡зы‚‡етсfl з‡х‚‡т з‡шифнно„о текст‡ (CTS — CipherText Stealing), поз‚олflет использть ежим ECB без ук‡з‡нно„о ‚ыше ‰ополнениfl. В этой мето‰ике после‰ние ‰‚‡ блок‡ исхо‰но„о текст‡ PN-1 и PN з‡шифны ‡з‰ельно ‰у„им способом и ‚ ‰у„ом поfl‰ке, к‡к пок‡з‡но ниже. Пе‰положим, что PN-1 имеет n бит, ‡ PN имеет m бит, „‰е m < n. X = EK(PN-1) Y = PN tailn-m (X)
→ →
CN = headm (X) CN-1 = EK (Y)
„‰е headm — функциfl, от‰елflющ‡fl к‡йние ле‚ые m бит, tailn-m — функциfl, от‰елflющ‡fl к‡йние ые n-m бит. Пиложениfl Режим ‡боты ECB не екомен‰уетсfl ‰лfl шифниfl сообщений, со‰еж‡щих больше чем о‰ин блок, котоый бу‰ет пе則н чеез несекетный к‡н‡л. Если сообщение ‰ост‡точно коотко, чтобы пе則ть е„о ‚ о‰ном блоке, поблемы безоп‡сности и ‡спост‡нениfl ошибок тепимы. Есть о‰н‡ обл‡сть, „‰е не燂исимость меж‰у блок‡ми з‡шифнно„о текст‡ полезн‡, — это т‡м, „‰е инфом‡циfl бу‰ет з‡шифо‚‡н‡ пеж‰е, чем он‡ бу‰ет сох‡нен‡ ‚ б‡зе ‰‡нных, или ‡сшифо‚‡н‡ пеж‰е, чем он‡ бу‰ет из‚лечен‡ из п‡мflти. Поскольку поfl‰ок шифниfl и ‰ешифниfl блоко‚ не ‚‡жен, ‚ этом ежиме ‰оступ‡ к б‡зе ‰‡нных он может быть случ‡ен, если к‡ж‰‡fl з‡пись — блок или множест‚о блоко‚. З‡пись может быть из‚лечен‡ из сее‰ины, ‡сшифн‡, и з‡шифн‡, не з‡т‡„肇fl ‰у„ие з‡писи. Ду„ое пеимущест‚о это„о ежим‡ — это то, что мы можем использть ллельную об‡ботку, если нужно, н‡пиме, со片ть о„омную з‡шифнную б‡зу ‰‡нных.
Режим сцеплениfl блоко‚ шифнно„о текст‡ (CBC) Сле‰ующ‡fl э‚олюциfl ‚ ‡боте ежимо‚ — ежим сцеплениfl блоко‚ шифнно„о текст‡ (CBC — Cipher Block Chaining). В ежиме CBC к‡ж‰ый блок исхо‰но„о текст‡, пеж‰е чем быть з‡шифнным, об‡б‡ты‚‡етсfl с помощью по‚е‰ениfl опе‡ции ИСКЛЮЧАЮЩЕЕ ИЛИ с пе‰ы‰ущим блоком шиф‡. К‡ блок з‡шифн, блок пе則ют, но копиfl сох‡нflетсfl ‚ п‡мflти, кото‡fl используетсfl ‚ шифнии сле‰ующе„о блок‡. Чит‡тель может 燉‡ть ‚опос о н‡ч‡льном блоке, поскольку пее‰ пе‚ым блоком нет блок‡ з‡шифнно„о текст‡. В этом случ‡е пименflетсfl ф‡льши‚ый блок, н‡зы‚‡емый ‚екто иници‡лиз‡ции (IV). Пе則тчик и пиемник со„л‡суют 燉‡нный 燇нее IV. Ду„ими слми, IV используетсfl ‚место несущест‚ующе„о C0. Рисунок 8.3 пок‡зы‚‡ет ежим CBC. Н‡ пе則ющей стооне опе‡циfl ИСКЛЮЧАЮЩЕЕ ИЛИ по‚о252
Лекциfl 8
Шифние, использующее со‚еменные шифы с симметичным ключом
‰итсfl пее‰ шифнием; ‡ н‡ стооне пиемник‡ ‰ешифние по‚о‰итсfl пее‰ опе‡цией ИСКЛЮЧАЮЩЕЕ ИЛИ.
Рис. 8.3. Режим цепочки блоко‚ шифотекст‡ Соотношение меж‰у исхо‰ным текстом и з‡шифнным текстом пок‡з‡но ниже: Шифние: C0 = IV Ci = EK (Pi ⊕ Ci-1)
Дешифние: C0 = IV Pi = DK (Ci) ⊕ Ci-1
Пиме 8.4 Можно ‰ок‡з‡ть, что к‡ж‰ый блок исхо‰но„о текст‡ н‡ стооне Алисы может быть точно ‚осст‡но‚лен н‡ стооне Боб‡ — потому что шифние и ‰ешифние ин‚есны ‰у„ ‰у„у. Pi = DK (Ci) ⊕ Ci-1 = DK (EK (Pi ⊕ Ci-1)) ⊕ Ci-1 = Pi ⊕ Ci-1 ⊕ Ci-1 = Pi
Векто иници‡лиз‡ции (IV) Векто иници‡лиз‡ции (IV) ‰олжен быть из‚естен пе則тчику и пиемнику. Хотfl сох‡нение это„о ‚екто‡ ‚ т‡йне не тебуетсfl, целостность ‚екто‡ и„‡ет ‚‡жную оль ‚ безоп‡сности ежим‡ CBC; IV помет сох‡нить безоп‡сность изменениfl инфом‡ции. Если Е‚‡ может изменить зн‡чениfl бит IV, это может изменить зн‡чениfl бит пе‚о„о блок‡. Длfl то„о чтобы использть IV, екомен‰о‚‡но несколько мето‰о‚. Пе則тчик может ‚ыб‡ть пс傉ослуч‡йное число и пе則ть е„о чеез безоп‡сный к‡н‡л (н‡пиме, использующий ежим ECB). Фиксинное зн‡чение может 253
Кус
Киптфиfl и безоп‡сность сетей
быть со„л‡сно Алисой и Бобом к‡к IV, к‡ ключ з‡секеч肇ниfl уст‡но‚лен. Это может быть ч‡сть ключ‡ з‡секеч肇ниfl, и т‡к ‰‡лее. Поблемы безоп‡сности В ежиме CBC имеютсfl сле‰ующие ‰‚е поблемы безоп‡сности. 1. О‰ин‡ко‚ые блоки исхо‰но„о текст‡, пи퇉леж‡щие о‰ному и тому же сообщению, з‡шифо‚ы‚‡ютсfl ‚ ‡зличные блоки з‡шифнно„о текст‡. Ду„ими слми, от‰ельные об‡зцы ‚ блоке не сох‡нflютсfl. О‰н‡ко к‡ ‰‚‡ сообщениfl ‡‚ны, их шифнный текст о‰ин‡ко‚ый, если они используют те же с‡мые IV. Ф‡ктически, если пе‚ые M блоко‚ ‚ ‰‚ух ‡зличных сообщениflх ‡‚ны и IV со‚‡ет, они бу‰ут з‡шифны ‚ о‰ин‡ко‚ые блоки. По этой пичине некотоые специ‡листы екомен‰уют использние ‰лfl IV метки ‚емени. 2. Е‚‡ может ‰оᇂить некотоые блоки з‡шифнно„о текст‡ ‚ конце поток‡ з‡шифнно„о текст‡. Р‡спост‡нение ошибки В ежиме CBC е‰инст‚енный бит ошибки ‚ блоке Cj з‡шифнно„о текст‡ ‚ поцессе пе則чи может ‚ поцессе ‰ешифниfl со片ть ошибку ‚ большинст‚е бито‚ блок‡ Pj исхо‰но„о текст‡. О‰н‡ко эт‡ о‰иночн‡fl ошибк‡ изменflет только о‰ин бит ‚ исхо‰ном тексте блок‡ Pj+1 (бит ‚ том же с‡мом местоположении). Док‡з‡тельст‚о это„о ф‡кт‡ ост‡‚лflем к‡к уп‡жнение. Исхо‰ный текст блоко‚ от Pj+2 ‰о PN не з‡т‡„肇етсfl этим е‰инст‚енным битом ошибки. Е‰инст‚енный бит ошибки ‚ з‡шифнном тексте — с‡мо‚осст‡н‡‚л肇емый. Ал„оитм Ал„оитм 8.2 ‰‡ет пс傉око‰ ‰лfl шифниfl — поце‰у‡ encrypt. Он‡ з‡шифо‚ы‚‡ет е‰инст‚енный блок (н‡пиме, DES или AES). Ал„оитм ‰ешифниfl ост‡‚лflем к‡к уп‡жнение. Ал„оитм 8.2. Ал„оитм шифниfl ‰лfl ежим‡ ECB CBC_Encrypt¥on (IV,K, Pla¥ntext bloks) { C0 ← IV for (¥ =1 to N) { Temp ← P¥ ⊕ C¥-1 C¥ ← EK (Temp) } return C¥phertext blocks } З‡х‚‡т з‡шифнно„о текст‡ Мето‰ик‡ з‡х‚‡т‡ з‡шифнно„о текст‡, ‡ссмотенн‡fl ‰лfl ежим‡ ECB, может т‡кже быть пименен‡ к ежиму CBC, к‡к это пок‡з‡но ниже. 254
Лекциfl 8
Шифние, использующее со‚еменные шифы с симметичным ключом
U = PN-1 ⊕ CN-2 V = PN| padn-m(0)
→ →
X = EK (U) Y=X⊕V
→ →
CN = headm (X) CN-1 = EK (Y)
Функциfl head — т‡ же с‡м‡fl, что опис‡н‡ ‚ ежиме ECB; функциfl pad ‚ст‡‚лflет нули. Пиложениfl Режим ‡боты CBC может использтьсfl, чтобы з‡шифть сообщениfl. О‰н‡ко из-з‡ мех‡низм‡ фоминиfl цепочки ллельн‡fl об‡ботк‡ не‚озможн‡. Режим CBC не используетсfl пи шифнии и ‰ешифнии м‡сси‚о‚ ф‡йло‚ с поиз‚ольным ‰оступом, потому что шифние и ‰ешифние тебуют ‰оступ‡ к пе‰ы‰ущим м‡сс肇м. К‡к мы у‚и‰им ‚ лекции 11, ежим СВС пименflетсfl ‰лfl уст‡но‚лениfl по‰линности сообщениfl.
Режим ко‰инной об‡тной с‚flзи (CFB) ECB и ежимы CBC пе‰н‡зн‡чены ‰лfl шифниfl и ‰ешифниfl блоко‚ сообщений. Р‡зме блок‡, n, опе‰елflетсfl пинflтым шифом. Н‡пиме, n = 64 ‰лfl DES и n = 128 ‰лfl AES. В некотоых ситу‡циflх мы ‰олжны использть DES или AES к‡к секетные шифы, но исхо‰ный текст или ‡змеы блок‡ з‡шифнно„о текст‡ ‰олжны быть меньшими. Н‡пиме, чтобы з‡шифть и ‡сшифо‚ы‚‡ть сим‚олы 8-бито‚о„о ASCII, ‚ы не з‡хотели бы пименить о‰ин из т‡‰иционных шифо‚, обсуж‰енных ‚ лекции 3, потому что они не퇉ежны. Решение состоит ‚ том, чтобы пименить DES или AES ‚ ежиме ко‰инной об‡тной с‚flзи (CFB). В этом ежиме ‡зме блок‡, используемо„о ‚ DES или AES, — n, но ‡зме исхо‰но„о текст‡ или блок‡ з‡шифнно„о текст‡ — r, „‰е r
Кус
Киптфиfl и безоп‡сность сетей
Рис. 8.4. Шифние ‚ ежиме ко‰инной об‡тной с‚flзи Соотношение меж‰у исхо‰ным текстом и блок‡ми з‡шифнно„о текст‡ пок‡з‡но ниже: Шифние: Ci = Pi ⊕ SelectLeftr {Ek [ShiftLeftr (Si-1) | Ci-1)]} Дешифние: Pi = Ci ⊕ SelectLeftr {Ek [ShiftLeftr (Si-1) | Ci-1)]} „‰е ShiftLeft — поце‰у‡, кото‡fl с‰‚脇ет со‰еж‡ние ее мет‡ н‡ r бит ‚ле‚о (к‡йние ле‚ые r-биты отб‡сы‚‡ютсfl). Опе‡то | пок‡зы‚‡ет конк‡тен‡цию (после‰о‚‡тельное сое‰инение). SelectLeft-поце‰у‡ ‚ыби‡ет только к‡йние ле‚ые r-бито‚ п‡‡мет‡. Возможно ‰ок‡з‡ть, что к‡ж‰ый блок исхо‰но„о текст‡ н‡ стооне Алисы может быть точно ‚осст‡но‚лен н‡ стооне Боб‡. Это ‰ок‡з‡тельст‚о ост‡‚лflем к‡к уп‡жнение. Интеесно, что ‚ этом ежиме не тебуетсfl ‰ополнение блоко‚, потому что ‡зме блоко‚, r, обычно ‚ыби‡етсfl т‡к, чтобы у‰о‚лет‚оить ‡змеу блок‡ ‰‡нных, котоый нужно з‡шифть (н‡пиме, сим‚ол). Интеесное т‡кже ‰у„ое — что систем‡ не ‰олжн‡ ж‰‡ть получениfl большо„о блок‡ ‰‡нных (64 бит‡ или 128 бито‚) ‰лfl то„о, чтобы н‡ч‡ть шифние. Поцесс шифниfl ‚ыполнflетсfl ‰лfl м‡ленько„о блок‡ ‰‡нных (т‡ких к‡к сим‚ол), Эти ‰‚‡ пеимущест‚‡ пи‚о‰flт к ‰‚ум не‰ост‡тк‡м. CFB менее эффекти‚ен, чем CBC или ECB, потому что он пименflет шифние осно‚ным блочным шифом м‡ленько„о блок‡ ‡змеом r. CFB к‡к шиф поток‡ Хотfl CFB — ежим, пе‰н‡зн‡ченный ‰лfl то„о, чтобы использть блочные шифы, т‡кие к‡к DES или AES, — он может быть шифом поток‡. Ф‡кти256
Лекциfl 8
Шифние, использующее со‚еменные шифы с симметичным ключом
чески, это несинхонный шиф поток‡, ‚ котоом ключе‚ой поток 燂исит от з‡шифнно„о текст‡. Рисунок 8.5 пок‡зы‚‡ет поцесс ‰ешифниfl и шифниfl и „ене‡то ключей.
Рис. 8.5. Шифние ‚ ежиме ко‰инной об‡тной с‚flзи к‡к шиф поток‡ Рисунок 8.5 пок‡зы‚‡ет, что осно‚ной шиф (DES или AES), ключ шиф‡ (K) и пе‰ы‰ущий блок шиф‡ (Ci) используютсfl только ‰лfl то„о, чтобы со片ть ключе‚ые потоки (k1, k2,..., kN). Ал„оитм Ал„оитм 8.3 ‰‡ет поце‰уу ‰лfl шифниfl. Он ‚ызы‚‡ет несколько ‰у„их поце‰у, ‰ет‡ли котоых ост‡‚лflем к‡к уп‡жнениfl. Об‡тите ‚ним‡ние, что мы н‡пис‡ли ‡л„оитм т‡к, чтобы пок‡з‡ть х‡‡кте ежим‡ поток‡ (об‡ботк‡ ‚ е‡льном м‡сшт‡бе ‚емени). Ал„оитм ‚ыполнflетсfl, пок‡ блоки исхо‰но„о текст‡ не бу‰ут з‡шифны. Ал„оитм 8.3. Ал„оитм шифниfl ко‰инной об‡тной с‚flзи CFB_Encrypt¥on (IV, K, r) { ¥ ← 1 wh¥le (more blocks to encrypt) { ¥nput (P¥) (¥f ¥=l) S ← IV else { Temp ← sh¥ftLeftr(S) 257
Кус
Киптфиfl и безоп‡сность сетей
S ← concatenate (Temp, C¥-1) } T ← Ek(s) k, ← selectLeftr (T) C¥ ← P¥ ⊕ k¥ output (C¥) ¥ ← ¥ + 1 } } Поблемы безоп‡сности В ежиме CFB есть ти пе‚ичных поблемы безоп‡сности. 1. Точно т‡к же к‡к CBC, об‡зцы н‡ уо‚не блок‡ не сох‡нflютсfl. О‰ин‡ко‚ые блоки исхо‰но„о текст‡, пи퇉леж‡щие о‰ному и тому же сообщению, з‡шифо‚ы‚‡ютсfl ‚ ‡зличные блоки. 2. О‰ним и тем же ключом может быть з‡шифно больше чем о‰но сообщение, но т‡ зн‡чение IV ‰олжно быть изменено ‰лfl к‡ж‰о„о сообщениfl. Это озн‡ч‡ет, что Алис‡ ‰олжн‡ использть ‡зличные IV к‡ж‰ый ‡з, к‡ он‡ пе則ет сообщение. 3. Е‚‡ может ‰оᇂить некотоый блок з‡шифнно„о текст‡ к концу поток‡ з‡шифнно„о текст‡. Р‡спост‡нение ошибки В CFB ошибк‡ ‚ е‰инст‚енном бите ‚ з‡шифнном тексте блок‡ Cj ‚ поцессе пе則чи со片ет е‰инст‚енный бит ошибки (‚ той же с‡мой позиции) ‚ исхо‰ном тексте блок‡ Pj. О‰н‡ко большинст‚о бито‚ ‚ сле‰ующих блок‡х исхо‰но„о текст‡ бу‰ут с ошибкой (с 50-поцентной ‚еоflтностью), пок‡ биты Cj ‚се еще н‡хо‰flтсfl ‚ е„исте с‰‚脇. Вычисление числ‡ з‡тонутых блоко‚ ост‡‚лflем к‡к уп‡жнение. После то„о к‡к е„ист с‰‚脇 полностью е„енеин, систем‡ изᇂлflетсfl от ошибки. Пиложение Режим ‡боты CFB может использтьсfl, чтобы з‡шифть блоки небольшо„о ‡зме‡, т‡кие к‡к о‰ин сим‚ол или бит. Нет необхо‰имости ‚ ‰ополнении, потому что ‡зме блок‡ исхо‰но„о текст‡ обычно уст‡н‡‚л肇етсfl (8 ‰лfl сим‚ол‡ или 1 ‰лfl бит‡). Специ‡льный случ‡й Если блоки ‚ тексте и ‚ осно‚ном шифе — о‰но„о и то„о же ‡зме‡ (n = r), шифние/‰ешифние ст‡но‚итсfl более постым, но постоение ‰и‡„‡ммы и ‡л„оитм ост‡‚лflем к‡к уп‡жнение.
Режим ‚нешней об‡тной с‚flзи (OFB) Режим ‚нешней об‡тной с‚flзи (OFB — OUTPUT FEEDBACK) очень похож н‡ ежим CFB, с о‰ной особенностью: к‡ж‰ый бит ‚ з‡шифнном тексте не258
Лекциfl 8
Шифние, использующее со‚еменные шифы с симметичным ключом
燂исим от пе‰ы‰уще„о бит‡ или бито‚. Это поз‚олflет избеж‡ть ‡спост‡нениfl ошибок. Если пи пе則че ‚озник‡ет ошибк‡, он‡ не з‡т‡„肇ет сле‰ующие биты. По‰обно CFB, и пе則тчик и пиемник используют ‡л„оитм шифниfl. Рисунок 8.6 пок‡зы‚‡ет ежим OFB.
Рис. 8.6. Шифние ‚ ежиме ‚нешней об‡тной с‚flзи OFB к‡к шиф поток‡ OFB, т‡к же к‡к и CFB, может со片ть поточный шиф н‡ б‡зе осно‚но„о шиф‡. О‰н‡ко ключ поток‡ не 燂исит от исхо‰но„о текст‡ или з‡шифнно„о текст‡; зн‡чит, шиф поток‡ — синхонный, к‡к это обсу扇лось ‚ лекции 5. Рисунок 8.7 пок‡зы‚‡ет шифние и ‰ешифние, ‡ т‡кже „ене‡то ключей. Ал„оитм Ал„оитм 8.4 ‰‡ет поце‰уу шифниfl. Этот ‡л„оитм после‰о‚‡тельно ‚ызы‚‡ет ‰у„ие поце‰уы, ‰ет‡ли котоых мы ост‡‚лflем к‡к уп‡жнение. З‡метим, что ‡л„оитм н‡пис‡н т‡к, чтобы пок‡з‡ть ежим поток‡ (ситу‡циfl е‡льно„о ‚емени). Ал„оитм ‡бот‡ет, пок‡ ‚се блоки исхо‰но„о текст‡ не бу‰ут з‡шифны. Поблемы безоп‡сности В ежиме OFB имеютсfl сле‰ующие ‰‚е поблемы безоп‡сности. 1. Точно т‡к же к‡к ‚ ежиме CFB, об‡зцы н‡ уо‚не блок‡ не сох‡нflютсfl. О‰ин‡ко‚ые блоки исхо‰но„о текст‡, пи퇉леж‡щие тому же с‡мому сообщению, з‡шифо‚ы‚‡ютсfl ‚ ‡зличные блоки. 259
Кус
Киптфиfl и безоп‡сность сетей
Рис. 8.7. Шифние ‚ ежиме ‚нешней об‡тной с‚flзи к‡к шифние поток‡ Ал„оитм 8.4. OFB_Encrypt¥on (IV, K, r) { ¥ ← 1 wh¥le (more blocks to encrypt) { ¥nput (P¥) ¥f (¥=l) S ← IV else { Temp ← sh¥ftLeftr(S) S ← concatenate (Temp, k¥-1) } T ← Ek(s) k, ← selectLeftr (T) C¥ ← P¥ ⊕ k¥ output (C¥) ¥ ← ¥ + 1 } } 2. Любое изменение ‚ з‡шифнном тексте з‡т‡„肇ет исхо‰ный текст, з‡шифнный ‚ пиемнике. 260
Лекциfl 8
Шифние, использующее со‚еменные шифы с симметичным ключом
Р‡спост‡нение ошибки Е‰инст‚енн‡fl ошибк‡ ‚ з‡шифнном тексте з‡т‡„肇ет только соот‚етст‚ующий бит ‚ исхо‰ном тексте. Специ‡льный случ‡й Если блоки ‚ тексте и осно‚ном шифе имеют о‰ин тот же ‡зме (n = r), шифние/‰ешифние ст‡но‚итсfl более постым, но мы ост‡‚лflем ‰и‡„‡ммы и ‡л„оитм к‡к уп‡жнение.
Режим счетчик‡ (CTR) В ежиме счетчик‡ (CTR — Counter) нет инфом‡ции об‡тной с‚flзи. Пс傉ослуч‡йный ключе‚ой поток ‰ост脇етсfl с помощью счетчик‡. Счетчик н‡ n бит иници‡лизиуетсfl ‚ 燇нее опе‰еленное зн‡чение (IV) и у‚елич肇етсfl по осно‚ному и 燇нее опе‰еленному илу (mod 2n). Чтобы обеспеч肇ть случ‡йность, ‚еличин‡ пи‡щениfl может 燂исеть от номе‡ блок‡. Исхо‰ный текст и блок з‡шифнно„о текст‡ имеют о‰ин и тот же ‡зме блок‡, к‡к и осно‚ной шиф (н‡пиме, DES или AES). Блоки ‡зме‡ n исхо‰но„о текст‡ з‡шифны т‡к, чтобы со片ть з‡шифнный текст с блоком ‡зме‡ n. Рисунок 8.8 пок‡зы‚‡ет шифние ‚ ежиме счетчик‡.
Рис. 8.8. Шифние ‚ ежиме счетчик‡ Отношение меж‰у исхо‰ным текстом и блок‡ми з‡шифнно„о текст‡ пок‡з‡но ниже. Шифние: Ci=Pi ⊕ Eki (Счетчик)
Дешифние:Pi = Ci ⊕ Eki (Счетчик) 261
Кус
Киптфиfl и безоп‡сность сетей
CTR использует функцию шифниfl осно‚но„о блочно„о шиф‡ (EK) и ‰лfl шифниfl, и ‰лfl ‰ешифниfl. Дост‡точно ле„ко ‰ок‡з‡ть, что блок Pi исхо‰но„о текст‡ может быть ‚осст‡но‚лен из з‡шифнно„о текст‡ Ci. Это мы ост‡‚лflем к‡к уп‡жнение. Мы можем с‡‚нить ежим CTR с ежим‡ми OFB и ECB. По‰обно OFB, CTR со片ет ключе‚ой поток, котоый не燂исим от пе‰ы‰уще„о блок‡ з‡шифнно„о текст‡, но CTR не использует инфом‡цию об‡тной с‚flзи. Т‡к же к‡к ECB, CTR со片ет n-бито‚ый з‡шифнный текст, блоки котоо„о не燂исимы ‰у„ от ‰у„‡ — они 燂исflт только от зн‡чений счетчик‡. Отиц‡тельной стооной это„о с‚ойст‚‡ fl‚лflетсfl то, что ежим CTR, по‰обно ежиму ECB, не может пименflтьсfl ‰лfl об‡ботки ‚ е‡льном м‡сшт‡бе ‚емени. Ал„оитм шифниfl ж‰ет пее‰ шифнием з‡конченный n-‡зfl‰ный блок ‰‡нных. Положительн‡fl стоон‡ это„о с‚ойст‚‡: ежим, по‰обно ежиму ECB, может использтьсfl, чтобы з‡шифть и ‡сшифо‚ы‚‡ть ф‡йлы поиз‚ольно„о ‰оступ‡, и зн‡чение счетчик‡ может быть с‚flз‡но номеом з‡писи ‚ ф‡йле. CTR к‡к шиф поток‡ CFB, OFB и CTR — ф‡ктически шифы поток‡. Рисунок 8.9 пок‡зы‚‡ет шифние и ‰ешифние i-то„о блок‡ ‰‡нных.
Рис. 8.9. Шифние ‚ ежиме счетчик‡ к‡к шиф поток‡ Ал„оитм Ал„оитм 8.5 со‰ежит поце‰уу ‚ пс傉око‰е ‰лfl шифниfl; ‡л„оитм ‰лfl ‰ешифниfl ост‡‚лflем к‡к уп‡жнение. З‰есь зн‡чение пи‡щениfl 燂исит от номе‡ блок‡. Ду„ими слми, зн‡чениfl счетчик‡ — IV, IV + 1, IV + 3, IV + 6, и т‡к ‰‡лее. Пе‰по뇄‡етсfl, что ‚се N-блоки исхо‰но„о текст‡ „ото‚ы ‰о н‡ч‡л‡ шифниfl, но ‡л„оитм может быть пеепис‡н, чтобы избеж‡ть это„о пе‰положениfl. Безоп‡сность Поблемы безоп‡сности ‰лfl ежим‡ CTR те же с‡мые, что и ‰лfl ежим‡ OFB. 262
Лекциfl 8
Шифние, использующее со‚еменные шифы с симметичным ключом
Р‡спост‡нение ошибки Е‰инст‚енн‡fl ошибк‡ ‚ з‡шифнном тексте з‡т‡„肇ет только соот‚етст‚ующий бит ‚ исхо‰ном тексте. Ал„оитм 8.5. Ал„оитм шифниfl CTR CTR_Encrypt¥on (IV, K, Pla¥ntext blocks) { Counter <— IV for(¥= 1 to N) { Counter <— (Counter + ¥ -1)mod2N k¥ <— EK (Counter) C¥ <— P¥ ⊕ k¥ } return C¥phertext blocks } С‡‚нение ‡зличных ежимо‚ Т‡блиц‡ 8.1 с‡‚н肇ет пflть ‡зличных ежимо‚ ‡боты, ‡ссмотенных ‚ этой лекции. Т‡блиц‡ 8.1. Ито„и ежимо‚ ‡боты Режим ‡боты ECB CBC
CFB
OFB
CTR
Опис‡ние
Тип Р‡зме езульт‡т‡ блок‡ К‡ж‰ый n-бито‚ый блок шифуетсfl не燂исимо Блочный тем же с‡мым ключом шиф n То же с‡мое, что и ‚ ECB, но к‡ж‰ый блок Блочный n сн‡ч‡л‡ ск뇉ы‚‡етсfl (ИСКЛЮЧАЮЩЕЕ ИЛИ) шиф с пе‰ы‰ущим з‡шифнным текстом блочный шиф К‡ж‰ый r-бито‚ый блок ск뇉ы‚‡етсfl Шиф r≤n (ИСКЛЮЧАЮЩЕЕ ИЛИ) с r-бито‚ым поток‡ ключом, котоый fl‚лflетсfl ч‡стью пе‰ы‰уще„о текст‡ шиф‡ То же с‡мое, что и ‚ CFB, но е„ист с‰‚脇 Шиф r≤n мо‰ифицин с помощью пе‰ы‰уще„о поток‡ r-бито‚о„о ключ‡ То же с‡мое, к‡к ‚ OFB, но счетчик Шиф n используетсfl ‚место е„ист‡ с‰‚脇 поток‡
8.2. Использние шифо‚ поток‡ Хотfl эти пflть ежимо‚ ‡боты ‰опуск‡ют использние блочных шифо‚ ‰лfl шифниfl сообщений или ф‡йло‚ ‚ больших мо‰улflх (ECB, CBC и CTR) и 263
Кус
Киптфиfl и безоп‡сность сетей
м‡леньких мо‰улflх (OFB и OFB), ин‡ необхо‰имо пе則ть поток ‰лfl то„о, чтобы з‡шифть м‡ленькие е‰иницы инфом‡ции — сим‚олы или биты. Шифы поток‡ более эффекти‚ны ‰лfl об‡ботки ‚ е‡льном м‡сшт‡бе ‚емени. Некотоые шифы поток‡ использлись ‚ ‡зличных потокол‡х ‚ течение пошлых нескольких ‰есflтилетий. Мы ‡ссмотим только ‰‚‡: RC4 и A5/1.
RC4 RC4 — потоко‚ый шиф, котоый был ‡з‡бот‡н ‚ 1984 „. Рон‡ль‰ом Ри‚естом. RC4 используетсfl ‚о мно„их систем‡х пе則чи ‰‡нных и потокол‡х низ‡ции сети, н‡пиме, SSL/TLS (см. лекцию 17) и IEEE 802.11 (беспо‚о‰ный ст‡н‰‡т LAN). RC4 — б‡йт-оиентинный шиф поток‡, ‚ котоом б‡йт (8 бито‚) исхо‰но„о текст‡ ск뇉ы‚‡етсfl (ИСКЛЮЧАЮЩЕЕ ИЛИ) с б‡йтом ключ‡, чтобы получить б‡йт з‡шифнно„о текст‡. Ключ з‡секеч肇ниfl, из котоо„о с„енеины о‰ноб‡йто‚ые ключи ‚ потоке ключей, может со‰еж‡ть от 1 ‰о 256 б‡йто‚. М‡тиц‡ состоflний RC4 б‡зиуетсfl н‡ понflтии м‡тицы состоflний. В к‡ж‰ый момент м‡тиц‡ состоflний 256 б‡йто‚ ‡кти‚изиуетсfl, из нее случ‡йным об‡зом ‚ыби‡етсfl о‰ин б‡йт, чтобы служить ключом ‰лfl шифниfl И‰еfl может быть пок‡з‡н‡ ‚ ‚и‰е м‡сс肇 б‡йто‚: S [0] S [l] S [2] ... S [255] З‡метим, что ин‰ексы ‰и‡п‡зон‡ элементо‚ — меж‰у 0 и 255. Со‰еж‡ние к‡ж‰о„о элемент‡ — б‡йт (8 бито‚), котоый может интепетитьсfl к‡к целое число от 0 ‰о 255. И‰еfl Рисунок 8.10 пок‡зы‚‡ет и‰ею RC4. Пе‚ые ‰‚‡ блок‡ ‚ыполнflютсfl только о‰ин ‡з (иници‡лиз‡циfl); пеест‡но‚ки ‰лfl то„о, чтобы со片‚‡ть ключ поток‡, по‚тоflютсfl, пок‡ есть б‡йты исхо‰но„о текст‡, пе‰н‡зн‡ченные ‰лfl шифниfl. Иници‡лиз‡циfl Иници‡лиз‡циfl ‰ел‡етсfl ‚ ‰‚‡ ш‡„‡. 1. Н‡ пе‚ом ш‡„е м‡тиц‡ состоflний иници‡лизиуетсfl ‰лfl зн‡чений 0, 1,..., 255. Со片етсfl т‡кже м‡сси‚ ключей K [0], K [1] ..., K [255]. Если ключ з‡секеч肇ниfl имеет точно 256 б‡йто‚, б‡йты копиуютсfl ‚ м‡сси‚ K; ин‡че — б‡йты по‚тоflютсfl, пок‡ не з‡полнитсfl м‡сси‚ K. for (¥ = 0 to 255) { S[¥] <— ¥ K[¥] <— Key [¥ mod Key Length] } 264
Лекциfl 8
Шифние, использующее со‚еменные шифы с симметичным ключом
Рис. 8.10. И‰еfl шиф‡ поток‡ RC4 2. Н‡ ‚тоом ш‡„е иници‡лизинн‡fl м‡тиц‡ похо‰ит пеест‡но‚ку (скэмблиние элементо‚), осннную н‡ зн‡чении б‡йто‚ ‚ K[i]. Ключе‚ой б‡йт используетсfl только н‡ этом ш‡„е, чтобы опе‰елить, к‡кие элементы ‰олжны быть з‡менены. После это„о ш‡„‡ б‡йты м‡тицы полностью пеет‡сны. j <— 0 for (¥ = 0 to 255) { j <— (j + S[¥] + K[¥]) mod 256 з‡мен‡ (S[¥], S[j]) } Гене‡циfl ключе‚о„о поток‡. Ключи k ‚ ключе‚ом потоке „енеиуютсfl о‰ин ‰у„им. Сн‡ч‡л‡ элементы м‡тицы состоflний пеест‡‚лflютсfl н‡ осно‚е зн‡чений с‚оих элементо‚ и зн‡чений ‰‚ух ин‰и‚и‰у‡льных пееменных i и j. З‡тем зн‡чениfl ‰‚ух элементо‚ м‡тицы состоflний ‚ позициflх i и j используютсfl, чтобы опе‰елить ин‰екс элемент‡ м‡тицы состоflний, котоый служит к‡к 265
Кус
Киптфиfl и безоп‡сность сетей
ключ k. Сле‰ующий ко‰ по‚тоflетсfl ‰лfl к‡ж‰о„о б‡йт‡ исхо‰но„о текст‡, чтобы со片ть но‚ый ключе‚ой элемент ‚ ключе‚ом потоке. Пееменные i и j иници‡лизиуютсfl ‚ 0 пеж‰е, чем бу‰ет по‚е‰ен‡ п傇fl ите‡циfl, но зн‡чение копиуетсfl от о‰ной ите‡ции к сле‰ующей. ¥ <— (¥ +1) mod 256 j <— (j +S[¥]mod256 з‡мен‡ (S [¥] , S[j] k <— S [(S[I] + S[j]) mod 256] Шифние или ‰ешифние. После то„о к‡к k были со片н, б‡йт исхо‰но„о текст‡ з‡шифо‚ы‚‡етсfl с помощью k, чтобы со片ть б‡йт з‡шифнно„о текст‡. Дешифние пе‰ст‡‚лflет собой об‡тный поцесс. Ал„оитм Ал„оитм 8.6 пок‡зы‚‡ет поце‰уу, н‡пис‡нную н‡ пс傉око‰е, ‰лfl RC4. Ал„оитм 8.6. Ал„оитм шифниfl ‰лfl RC4 RC4_Encrypt¥on (K) { // Со片ние н‡ч‡льной м‡тицы состоflний и ключе‚ых б‡йто‚ for (¥ = 0 to 255) { S[¥] <— ¥ K[¥] <— Key [¥ mod Key Length] } // Пеест‡но‚к‡ б‡йто‚ м‡тицы состоflний н‡ осно‚е зн‡чений // б‡йт‡ ключ‡ j <— 0 for (¥ = 0 to 255) { j <— (j+ S[¥] + K[¥] mod 256 з‡мен‡ (S[¥] , S[j]) //Непеы‚н‡fl пеест‡но‚к‡ б‡йто‚, „ене‡циfl ключей и шифние ¥ <— 0 j <— 0 wh¥le (пок‡ есть б‡йты ‰лfl шифниfl) { {¥ <— (¥ + 1) mod 256 j <— (j +S[¥])mod256 з‡мен‡ (S [¥] ,S[j]) k <— S [(S[¥] +S[j])mod256] // Ключ „ото‚, шифние ¥nput P C <— P ⊕ k output C } } 266
Лекциfl 8
Шифние, использующее со‚еменные шифы с симметичным ключом
Пиме 8.5 Чтобы пок‡з‡ть случ‡йность ключ‡ поток‡, мы используем ключ з‡секеч肇ниfl со ‚семи нуле‚ыми б‡йт‡ми. Ключе‚ой поток ‰лfl 20 зн‡чений A: (222, 24, 137, 65, 163, 55, 93, 58, 138, 6, 30, 103, 87, 110, 146, 109, 199, 26, 127, 163). Пиме 8.6 По‚тоим пиме 8.5, но пусть ключ з‡секеч肇ниfl бу‰ет пflть б‡йто‚ (15, 202, 33, 6, 8). Ключе‚ой поток — (248, 184, 102, 54, 212, 237, 186, 133, 51, 238, 108, 106, 103, 214, 39, 242, 30, 34, 144, 49). Сн случ‡йность ‚ ключе‚ом потоке оче‚и‰н‡. Поблемы безоп‡сности Из‚естно, что шиф безоп‡сен, если ‡зме ключ‡ — по к‡йней мее, 128 бито‚ (16 б‡йто‚). Это по‰т‚е扇етсfl сообщениflми о некотоых ‡т‡к‡х ‰лfl м‡лых ‡змео‚ ключей (меньше, чем 5 б‡йто‚). Потоколы, котоые се„о‰нfl использует RC4, уст‡н‡‚л肇ют ‡змеы ключей, котоые ‰ел‡ют RC4 безоп‡сным. О‰н‡ко, к‡к и ‰лfl мно„их ‰у„их шифо‚, екомен‰уетсfl, чтобы ‰лfl ‡зличных се‡нсо‚ пименflлись ‡зличные ключи. Это пепflтст‚ует Е‚е использть ‰иффеенци‡льный кипто‡н‡лиз шиф‡.
A5/1 В этом ‡з‰еле мы ‚‚о‰им шиф поток‡, котоый пименflет линейный е„ист с‰‚脇 (см. лекцию 5, LFSR Linear Feed Back Shift Register), чтобы со片ть бито‚ый поток: A5/1. A5/1 (член семейст‚‡ шифо‚ A5) используетсfl ‚ Глоб‡льной Системе Мобильной с‚flзи (GSM). Телефонн‡fl с‚flзь ‚ GSM осущест‚лflетсfl к‡к после‰о‚‡тельность к‡‰о‚ н‡ 228 бито‚, пи этом к‡ж‰ый ꇉ ‰литсfl 4,6 миллисекун‰ы. A5/1 со片ет поток бит, исхо‰fl из ключ‡ н‡ 64 бит‡. Р‡зfl‰ные потоки соб‡ны ‚ буфее по 228 бито‚, чтобы ск뇉ы‚‡ть их по мо‰улю ‰‚‡ с ꇉом н‡ 228 бито‚, к‡к пок‡з‡но н‡ ис. 8.11.
Рис. 8.11. Общий ‚и‰ A5/1 Гене‡то ключей A5/1 используютсfl ти LFSR н‡ 19,22,23 бит‡. LFSR , со‰еж‡щие биты сим‚оло‚ и синхониз‡ции, пок‡з‡ны н‡ ис 8.12. 267
Кус
Киптфиfl и безоп‡сность сетей
Рис. 8.12. Ти линейных е„ист‡ с‰‚脇 ‰лfl A5/1 О‰нобито‚ый ‚ыхо‰ обеспеч肇ет т‡кто‚ыми импульс‡ми буфе н‡ 228 бито‚, котоый используетсfl ‰лfl шифниfl (или ‰ешифниfl). Иници‡лиз‡циfl. Иници‡лиз‡циfl ‚ыполнflетсfl ‰лfl к‡ж‰о„о ꇉ‡ шифниfl (или ‰ешифниfl). Он‡ пименflет ключ з‡секеч肇ниfl н‡ 64 бит‡ и 22 бит‡ соот‚етст‚ующе„о номе‡ к‡‰‡. Сле‰ующие ш‡„и: 1. Сн‡ч‡л‡ ‚се биты ‚ тех линейных е„ист‡х с‰‚脇 уст‡н‡‚л肇ютсfl ‚ 0. 2. Втоой: ключ н‡ 64 бит‡ смеш肇етсfl со зн‡чением е„ист‡ со„л‡сно сле‰ующему ко‰у. К‡ж‰ый линейный е„ист смещ‡етсfl н‡ о‰ин ш‡„ (синхониз‡циfl). For (¥ = 0 to 63) { Сложение по мо‰улю 2 K[¥] с к‡йними ле‚ыми бит‡ми ‚сех тех е„исто‚. Синхониз‡циfl ‚сех тех линейных е„исто‚ с‰‚脇 { 3. По‚тоить пе‰ы‰ущий поцесс, но использть 22-бито‚ый ꇉ. for (¥ = 0 to 22) { Сложение по мо‰улю 2 номе‡ к‡‰‡ [¥] с к‡йними ле‚ыми бит‡ми ‚сех тех е„исто‚. Синхониз‡циfl ‚сех тех линейных е„исто‚ с‰‚脇 { 4. В течение 100 цикло‚ синхонизиуетсfl ‚есь „ене‡то. Пи этом пименен‡ м‡жоит‡н‡fl функциfl (см. сле‰ующий ‡бз‡ц), ‰лfl то„о чтобы опе‰елить, к‡кой линейный е„ист с‰‚脇 ‰олжен быть синхонизин. Об‡тите ‚ним‡ние: ин‡ синхониз‡циfl з‰есь озн‡ч‡ет, что ‰‚‡, ‡ то и ‚се ти линейных е„ист‡ с‰‚脇 похо‰flт поцесс смещениfl. 268
Лекциfl 8
Шифние, использующее со‚еменные шифы с симметичным ключом
for (¥ = 0 to 99) { Синхониз‡циfl ‚се„о „ене‡то‡, н‡ осно‚е м‡жоит‡ной функции } М‡жоит‡н‡fl функциfl. Зн‡чение м‡жоит‡ной функции (majority) с мет‡ми (b1, b 2, b3) ‡‚но 1, если зн‡чение большинст‚‡ бито‚ — 1; если это — 0, то ее зн‡чение — 0. Н‡пиме, majority (1, 0, 1) = 1, но majority (0, 0, 1) = 0. Зн‡чение м‡жоит‡ной функции опе‰елflетсfl пее‰ поступлением т‡кто‚о„о импульс‡; ти ‚хо‰ных бит‡ н‡з‚‡ны синхонизиующими бит‡ми: если с‡мый ый бит ‡‚ен нулю, это — биты линейных е„исто‚ LFSR1 [10], LFSR2 [11] и LFSR3 [11]. Об‡тите ‚ним‡ние, что ‚ лите‡туе эти биты 8, 10 и 10 отсчиты‚‡ют сл傇 (к‡к это пок‡з‡но н‡ ис. 8.12). Мы бу‰ем ‡ссм‡т肇ть 10, 11 и 11, счит‡fl с‡. Это со„л‡шение соот‚етст‚ует месту бит‡ ‚ х‡‡ктеистическом полиноме. Ключе‚ые биты поток‡. Гене‡то ключей со片ет ключе‚ой поток ‚ о‰ин бит пи к‡ж‰ом т‡кто‚ом импульсе. Пеж‰е чем ключ бу‰ет со片н, ‚ычислflетсfl м‡жоит‡н‡fl функциfl. З‡тем к‡ж‰ый линейный е„ист с‰‚脇 синхонизиуетсfl, если е„о бит синхониз‡ции соот‚етст‚ует езульт‡ту м‡жоит‡ной функции; ин‡че — он не синхонизиуетсfl. Пиме 8.7 В некотоый момент ‚емени биты синхониз‡ции — 1, 0 и 1. К‡кой ‰олжен быть LFSR? Решение Результ‡т Majority (1, 0, 1) = 1. LFSR1 и LAFS3 с‰‚脇ютсfl, ‡ LFSR2 — нет. Шифние/‰ешифние Р‡зfl‰ные потоки, со片нные „ене‡тоом ключей, з‡писы‚‡ютсfl ‚ буфе, чтобы потом сфомить ключ н‡ 228 бито‚, котоый з‡тем ск뇉ы‚‡ет по мо‰улю ‰‚‡ с ꇉом исхо‰но„о текст‡, чтобы со片ть ꇉ з‡шифнно„о текст‡. В о‰ин момент ‚емени ‰ел‡етсfl шифние/‰ешифние о‰но„о ꇉ‡. Поблемы безоп‡сности Хотfl GSM по‰олж‡ет использть A5/1, уже были з‡е„истины несколько ‡т‡к н‡ GSM. Д‚е из них были упомflнуты. В 2000 „о‰у Алекс Биюко‚, Дэ‚и‰ В‡„не и Э‰и Ш‡ми пок‡з‡ли, что ‡т‡к‡ ‚ е‡льном м‡сшт‡бе ‚емени н‡хо‰ит ключ з‡ несколько минут н‡ осно‚е из‚естных м‡лых исхо‰ных тексто‚, но это тебует эт‡п‡ п剂‡ительной об‡ботки с 248 ш‡„‡ми. В 2003 Эꉇхи и Джонсон (Ekdahi и Johannson) опубликли ‡т‡ку, кото‡fl ‚скы‚‡л‡ A5/1 з‡ несколько минут, пименflfl ‡н‡лиз исхо‰но„о текст‡ ‚ течение 2-5 минут. Имеfl ‚ ‚и‰у некотоые но‚ые ‡т‡ки GSM, ‚озможно, ‚ бу‰ущем нужно бу‰ет сменить или укепить A5/1.
8.3. Ду„ие поблемы Шифние, котоое использует блоки с симметичными ключ‡ми или шифы поток‡, тебует обсуж‰ениfl ‰у„их поблем. 269
Кус
Киптфиfl и безоп‡сность сетей
Уление ключ‡ми Алис‡ и Боб ‰олжны со‚местно использть секетный ключ, чтобы иметь 퇉ежную с‚flзь с использнием шиф‡ с симметичным ключом. Если есть n объекто‚ ‚ сообщест‚е, к‡ж‰ый из котоых хочет с‚flз‡тьсfl с n – 1 ‰у„им объектом, то т‡ необхо‰имы n (n – 1) ключей з‡секеч肇ниfl. О‰н‡ко пи шифнии симметичными ключ‡ми о‰ин ключ может пименflтьсfl ‚ обоих н‡п‡‚лениflх: от Алисы к Бобу и от Боб‡ к Алисе. Это озн‡ч‡ет, что нужно только n (n – 1)/2 ключей. Если n — пиблизительно миллион, то ‰олжны быть ‚ы‰‡ны почти пflтьсот миллионо‚ ключей. Поскольку это нее‡льно, то были н‡й‰ены несколько ‰у„их ешений. Пе‚ое: к‡ж‰ый ‡з, к‡ Алис‡ и Боб хотflт с‚flз‡тьсfl, они мо„ут со片ть меж‰у собой се‡нсо‚ый (‚еменный) ключ. Втоое: мо„ут быть уст‡но‚лены о‰ин или более центо‚ ‡спе‰елениfl ключей, чтобы ‡спе‰елflть се‡нсо‚ые ключи ‰лfl объекто‚. Все эти поблемы — ч‡сть теоии улениfl ключ‡ми, кото‡fl бу‰ет обсу扇тьсfl ‚ лекции 15 после то„о, к‡к бу‰ут ‡ссмотены необхо‰имые инстумент‡льные се‰ст‚‡. Уление ключ‡ми бу‰ет обсу扇тьсfl ‚ лекции 15.
Генеиние ключей Ду„‡fl поблем‡ ‚ шифнии симметичными ключ‡ми — безоп‡сн‡fl „ене‡циfl ключ‡. Р‡зличные шифы с симметичным ключом ну扇ютсfl ‚ ключ‡х ‡зличных ‡змео‚. Выбо ключ‡ ‰олжен б‡зитьсfl н‡ „‡‡нтии безоп‡сности систем‡тическо„о мет ‰лfl избеж‡ниfl утечки. Если Алис‡ и Боб „енеиуют се‡нсо‚ые ключи меж‰у собой, они ‰олжны ‚ыб‡ть ключ случ‡йным об‡зом, т‡к, чтобы Е‚‡ не мо„л‡ п剂и‰еть, к‡ко‚ бу‰ет сле‰ующий ключ. Если ключи ‰олжен ‡спе‰елflть ключе‚ой цент, они ‰олжны иметь случ‡йный х‡‡кте, чтобы Е‚‡ не мо„л‡ получить ключ, н‡зн‡ченный Алисе и Бобу, из ключ‡, н‡зн‡ченно„о Джону и Е‚е. Это пзум傇ет, что нужен „ене‡то случ‡йных (или пс傉ослуч‡йных) чисел. Поскольку обсуж‰ение „ене‡то‡ случ‡йных чисел ‚ключ‡ет некотоые темы, котоые еще не были ‡ссмотены, изучение „ене‡тоо‚ случ‡йных чисел пе‰ст‡‚лено ‚ пиложении K. Гене‡тоы случ‡йных чисел бу‰ут обсу扇тьсfl ‚ пиложении K.
8.4. Рекомен‰о‚‡нн‡fl лите‡ту‡ Нижесле‰ующие кни„и и с‡йты ‰‡ют более ‰ет‡льную инфом‡цию о пе‰мет‡х, ‡ссмотенных ‚ этой лекции. Пункты, пи‚е‰енные ‚ ꂇ‰‡тных скобк‡х, со‰еж‡тсfl ‚ списке ‚ конце кни„и.
Кни„и [Sch99], [Sta06], [PHS03], [Sti06], [MOV97] и [KPS02] ‡ссм‡т肇ют ежимы ‡боты. [Vau06] и [Sta06] ‰‡ют полные с‚е‰ениfl о шиф‡х поток‡. 270
Лекциfl 8
Шифние, использующее со‚еменные шифы с симметичным ключом
С‡йты Нижесле‰ующие с‡йты со‰еж‡т больше инфом‡ции о тем‡х, обсуж‰енных ‚ этой лекции. http: // en.wikipedia.org/wiki/Block_cipher_modes_of_operation http://www.itl.nist.gov/fipspubs/fip81.htm en.wikipedia.org/wiki/A5/1 en.wikipedia.org/wiki/RC4
8.5. Ито„и • В е‡льных пиложениflх з‡шифнный текст имеет пееменные ‡змеы и обычно н‡мно„о большие, чем ‡зме блок‡, опе‰еленный ‰лfl со‚еменных блочных шифо‚. Режимы ‡боты были изобетены, чтобы з‡шифть текст любо„о ‡зме‡, котоый обслуж肇етсfl со‚еменными блочными шиф‡ми. В этой лекции были ‡ссмотены пflть ежимо‚ ‡боты. • С‡мый постой ежим ‡боты н‡зы‚‡етсfl ежимом электонной ко‰о‚ой кни„и (ECB — ELECTRONIC CODEBOOK). Исхо‰ный текст ‡з‰елен н‡ N блоко‚. Р‡зме блок‡ — n бит. К‡ж‰ый блок использует ‰лfl шифниfl и ‰ешифниfl о‰ин и тот же ключ. • В ежиме сцеплениfl блоко‚ шифотекст‡ (CBC — Cipher Block Chaining) к‡ж‰ый блок исхо‰но„о текст‡, пеж‰е чем з‡шифо‚ы‚‡ть, ск뇉ы‚‡ют по мо‰улю ‰‚‡ с пе‰ы‰ущим блоком з‡шифнно„о текст‡. К‡ блок з‡шифн, е„о пе則ют, но е„о копиfl сох‡нflетсfl ‚ п‡мflти, чтобы ее можно было использть ‰лfl шифниfl сле‰ующе„о блок‡. Пе則тчик и пиемник со„л‡суют 燇нее 燉‡нный ‚екто иници‡лиз‡ции (IV), чтобы ск뇉ы‚‡ть е„о по мо‰улю ‰‚‡ с пе‚ым блоком з‡шифнно„о текст‡. • Чтобы шифть м‡ленькие мо‰ули ‰‡нных ‚ е‡льном м‡сшт‡бе ‚емени, пименflетсfl ежим ко‰инной об‡тной с‚flзи (CFB — CIPHER FEEDBACK), CFB пименflет ст‡н‰‡тные блочные шифы, т‡кие к‡к DES или AES, е„ист с‰‚脇, но использует опе‡цию сложениfl по мо‰улю ‰‚‡, чтобы з‡шифть или ‡сшифо‚ы‚‡ть мо‰ули ‰‡нных. Режим CFB пименflет блочные шифы, но ‚ езульт‡те — это шиф поток‡, потому что к‡ж‰ый мо‰уль ‰‡нных з‡шифо‚ы‚‡етсfl с‚оим ключом. • Режим ‚нешней об‡тной с‚flзи (OFB) очень похож н‡ ежим CFB, с о‰ной ‡зницей — к‡ж‰ый бит ‚ з‡шифнном тексте не燂исим от пе‰ы‰уще„о бит‡ или бито‚. Это поз‚олflет избеж‡ть ‡спост‡нениfl ошибки. Вместо то„о чтобы использть пе‰ы‰ущий блок з‡шифнно„о текст‡, OFB беет пе‰ы‰ущий ключ к‡к инфом‡цию об‡тной с‚flзи. • В ежиме счетчик‡ (CTR) нет инфом‡ции об‡тной с‚flзи. Пс傉ослуч‡йность ‚ потоке ‰ост脇етсfl с помощью счетчик‡. Счетчик н‡ n бито‚ иници‡лизиуетсfl уст‡но‚кой 燇нее 燉‡нно„о зн‡чениfl (IV) и у‚елич肇етсfl по 燇нее 燉‡нному илу. 271
Кус
Киптфиfl и безоп‡сность сетей
• Чтобы з‡шифть м‡ленькие е‰иницы ‰‡нных, т‡кие к‡к сим‚олы или биты, были ‡з‡бот‡ны и испыты‚‡ютсfl несколько шифо‚ поток‡. Эти шифы поток‡ более эффекти‚ны ‰лfl об‡ботки ‚ е‡льном м‡сшт‡бе ‚емени. В этой лекции ‡ссм‡т肇лись только ‰‚‡ шиф‡ поток‡ — RC4 и A5/l. • RC4 — шиф поток‡, оиентинный н‡ б‡йт, ‚ котоом б‡йт (8 бито‚) исхо‰но„о текст‡ 퇉о сложить по мо‰улю ‰‚‡ с б‡йтом ключ‡, чтобы со片ть б‡йт з‡шифнно„о текст‡. Секетный ключ, из котоо„о „енеиуютсfl о‰ноб‡йто‚ые ключи ‚ ключе‚ом потоке, может со‰еж‡ть от 1 ‰о 256 б‡йто‚. Ключе‚ой „ене‡то поток‡ б‡зиуетсfl н‡ пеест‡но‚ке 256 б‡йто‚. • A5/1 — шиф поток‡, используемый ‰лfl мобильной телефонной с‚flзи. A5/1 со片ет поток бит из ключ‡ н‡ 64 бит‡, используfl ти линейных е„ист‡ с‰‚脇.
8.6. Н‡бо ‰лfl п‡ктики Обзоные ‚опосы 1. Объflсните, почему необхо‰имы ежимы ‡боты, если ‰лfl шифо‚ки используютсfl со‚еменные блочные шифы. 2. Пеечислите пflть ежимо‚ ‡боты, ‡ссмотенных ‚ этой лекции. 3. Опе‰елите ECB ( ELECTRONIC CODEBOOK) и пеечислите е„о пеимущест‚‡ и не‰ост‡тки. 4. Опе‰елите CBC (CIPHER BLOCK CHAINING) и пеечислите ее пеимущест‚‡ и не‰ост‡тки. 5. Опе‰елите CFB (CIPHER FEEDBACK) и пеечислите е„о пеимущест‚‡ и не‰ост‡тки 6. Опе‰елите OFB (OUTPUT FEEDBACK) и пеечислите е„о пеимущест‚‡ и не‰ост‡тки. 7. Опе‰елите CTR и пеечислите е„о пеимущест‚‡ и не‰ост‡тки. 8. Р‡з‰елите пflть ежимо‚ ‡боты н‡ ‰‚е „уппы: те, котоые используют функции шифниfl и ‰ешифниfl, — осно‚ные шифы (н‡пиме, DES или AES), и те, котоые используют только функцию шифниfl. 9. Р‡з‰елите пflть ежимо‚ ‡боты н‡ ‰‚е „уппы: те, котоые тебуют ‰ополнение текст‡, и те, котоые не тебуют это„о. 10. Р‡з‰елите пflть ежимо‚ ‡боты н‡ ‰‚е „уппы: те, котоые используют о‰ин и тот же ключ ‰лfl шифниfl ‚сех блоко‚, и те, котоые используют ключе‚ой поток ‰лfl шифо‚ки блоко‚. 11. Объflсните осно‚ные ‡зличиfl меж‰у RC4 и A5/1. К‡кой из них использует линейный е„ист с‰‚脇? 12. К‡ко‚ ‡зме мо‰улfl ‰‡нных ‚ RC4? К‡ко‚ ‡зме мо‰улfl ‰‡нных ‚ A5/1? 13. Пеечислите ежимы ‡боты, котоые мо„ут быть ускоены ллельной об‡боткой. 14. Пеечислите ежимы ‡боты, котоые мо„ут использтьсfl ‰лfl шифо‚ки ф‡йло‚ поиз‚ольно„о ‰оступ‡. 272
Лекциfl 8
Шифние, использующее со‚еменные шифы с симметичным ключом
Уп‡жнениfl 1. Пок‡жите, почему ежим CFB со片ет несинхонный шиф поток‡, ‡ ежим OFB со片ет синхонный. 2. Сколько блоко‚ з‡т‡„肇ет е‰инст‚енный бит ошибки ‚ пе則че ‚ ежиме CFB? 3. В ежиме ECB бит 17 ‚ з‡шифнном тексте блок‡ 8 ‡зушен ‚ течение пе則чи. Н‡й‰ите ‚озможные ‡зушенные биты ‚ исхо‰ном тексте. 4. В ежиме CBC биты 17 и 18 ‚ з‡шифнном тексте блок‡ 9 ‚ поцессе пе則чи были ‡зушены. Н‡й‰ите ‚озможные ‡зушенные биты ‚ исхо‰ном тексте. 5. В ежиме CFB биты 3-6 ‚ з‡шифнном тексте блок‡ 11 ‡зушены (r = 8). Н‡й‰ите ‚озможные ‡зушенные биты ‚ исхо‰ном тексте. 6. В ежиме CTR блоки 3 и 4 полностью ‡зушены. Н‡й‰ите ‚озможные ‡зушенные биты ‚ исхо‰ном тексте. 7. В ежиме OFB полный з‡шифнный текст блок‡ 11 ‡зушен (r = 8). Н‡й‰ите ‚озможные ‡зушенные биты ‚ исхо‰ном тексте. 8. Док‡жите, что исхо‰ный текст, используемый Алисой, может быть ‚осст‡но‚лен Бобом ‚ ежиме CFB. 9. Док‡жите, что исхо‰ный текст, используемый Алисой, может быть ‚осст‡но‚лен Бобом ‚ ежиме OFB. 10. Док‡жите, что исхо‰ный текст, используемый Алисой, может быть ‚осст‡но‚лен Бобом ‚ ежиме CTR. 11. Пок‡жите ‰и‡„‡мму ‰лfl шифниfl и ‰ешифниfl ‚ ежиме CFB, к‡ r = n. 12. Пок‡жите ‰и‡„‡мму ‰лfl шифниfl и ‰ешифниfl ‚ ежиме OFB, к‡ r = n. 13. Пок‡жите поцесс, используемый ‰лfl ‡л„оитм‡ ‰ешифниfl ‚ ежиме ECB, если пименflетсfl з‡х‚‡т з‡шифнно„о текст‡ (CTS) . 14. Пок‡жите ‰и‡„‡ммы шифниfl и ‰ешифниfl ‰лfl ежим‡ ECB (только после‰ние ‰‚‡ блок‡), к‡ используетсfl з‡х‚‡т з‡шифнно„о текст‡ (CTS). 15. Пок‡жите поцесс, используемый ‰лfl ‡л„оитм‡ ‰ешифниfl ‚ ежиме CBC, если пименflетсfl з‡х‚‡т з‡шифнно„о текст‡ (CTS). 16. Пок‡жите шифние и ‰и‡„‡мму ‰ешифниfl ‰лfl ежим‡ CBC (только после‰ние ‰‚‡ блок‡), к‡ используетсfl з‡х‚‡т з‡шифнно„о текст‡ (CTS). 17. Объflсните, почему нет потебности ‚ з‡х‚‡те з‡шифнно„о текст‡ ‚ ежим‡х CFB, OFB и CTR (CIPHER FEEDBACK, OUTPUT FEEDBACK). 18. Пок‡жите эффект ‡спост‡нениfl ошибки, к‡ ECB (ELECTRONIC CODEBOOK) использует мето‰ику CTS. 19. Пок‡жите эффект ‡спост‡нениfl ошибки, к‡ CBC использует мето‰ику CTS. 20. Режим Фоминие цепочки блоко‚ fl‚лflетсfl ‚‡и‡нтом, ‚ котоом ‚се пе‰ы‰ущие блоки з‡шифнно„о текст‡ пее‰ шифнием ск뇉ы273
Кус
Киптфиfl и безоп‡сность сетей
‚‡ютсfl по мо‰улю ‰‚‡ с текущим исхо‰ным текстом. Со片йте исунок‰и‡„‡мму, кото‡fl пок‡зы‚‡ет шифние и ‰ешифние. 21. Режим ‡змножениfl Цепочк‡ блоко‚ шифотекст‡ (PCBC) fl‚лflетсfl ‚‡и‡нтом CBC, ‚ котоом пее‰ шифнием пе‰ы‰ущий блок исхо‰но„о текст‡ и пе‰ы‰ущий блок з‡шифнно„о текст‡ ск뇉ы‚‡етсfl по мо‰улю ‰‚‡ с текущим блоком исхо‰но„о текст‡. Н‡исуйте ‰и‡„‡мму, кото‡fl пок‡зы‚‡ет шифние и ‰ешифние. 22. Режим Цепочк‡ блоко‚ шифотекст‡ с контольной суммой (CBCC) fl‚лflетсfl ‚‡и‡нтом CBC, ‚ котоом ‚се пе‰ы‰ущие блоки исхо‰но„о текст‡ пее‰ шифнием ск뇉ы‚‡ютсfl по мо‰улю ‰‚‡ с текущим блоком исхо‰но„о текст‡. Н‡исуйте ‰и‡„‡мму, чтобы пок‡з‡ть шифние и ‰ешифние и поиллюстить поце‰уу. 23. В RC4 пок‡жите пе‚ые 20 элементо‚ ключе‚о„о поток‡, если ключ з‡секеч肇ниfl — 7 б‡йто‚ со зн‡чениflми 1, 2, 3, 4, 5, 6 и 7. Вы можете пи жел‡нии н‡пис‡ть м‡ленькую пмму. 24. В RC4 н‡й‰ите зн‡чение ‰лfl ключ‡ з‡секеч肇ниfl, котоый не изменflет м‡тицу состоflний после пе‚о„о и ‚тоо„о ш‡„о‚ иници‡лиз‡ции. 25. Алис‡ обмен肇етсfl сообщениflми с Бобом, используfl ‚ RC4 ‰лfl з‡секеч肇ниfl16-б‡йто‚ый ключ з‡секеч肇ниfl. Ключ з‡секеч肇ниfl изменflетсfl к‡ж‰ый ‡з, используfl екуси‚ное опе‰еление K = (Ki-1+Ki-1) mod 2128. Пок‡жите, сколькими сообщениflми они мо„ут обменflтьсfl пее‰ тем, к‡к текст н‡чнет по‚тоflтьсfl. 26. В A5/1 н‡й‰ите м‡ксим‡льный пеио‰ к‡ж‰о„о линейно„о е„ист‡ с‰‚脇. 27. В A5/1 н‡й‰ите зн‡чение сле‰ующих функций. В к‡ж‰ом случ‡е пок‡з‡ть, сколько синхонизиуетсfl линейных е„исто‚ с‰‚脇. a. Majority (1, 0, 0) b. Majority (0, 1, 1) c. Majority (0, 0, 0) d. Majority (1, 1, 1) 28. В A5/1 н‡й‰ите ‚ы‡жение ‰лfl м‡жоит‡ной функции. 29. Н‡пишите ‡л„оитм ‰ешифниfl ‚ пс傉око‰е ‰лfl ежим‡ ECB. 30. Н‡пишите ‡л„оитм ‰ешифниfl ‚ пс傉око‰е ‰лfl ежим‡ CBC. 31. Н‡пишите пс傉око‰ ‡л„оитм‡ ‰ешифниfl ‰лfl ежим‡ CFB. 32. Н‡пишите ‡л„оитм ‰ешифниfl ‚ пс傉око‰е ‰лfl ежим‡ OFB. 33. Н‡пишите ‡л„оитм ‰ешифниfl ‚ пс傉око‰е ‰лfl ежим‡ CTR. 34. Н‡пишите ‡л„оитм ‰лfl shiftleft-поце‰уы, используемой ‚ ‡л„оитме 8.4. 35. Н‡пишите ‡л„оитм ‰лfl selectleft-поце‰уы, используемой ‚ ‡л„оитме 8.4. 36. Н‡пишите ‡л„оитм ‰лfl поце‰уы конк‡тен‡ции, используемой ‚ ‡л„оитме 8.4.
274
Лекциfl 9
М‡тем‡тик‡ киптфии. Ч‡сть III. Постые числ‡ и у‡‚нениfl с‡‚нениfl
Ч‡сть 2. Шифние с ‡симметичными ключ‡ми В лекции 1 мы ‚и‰ели, что киптфиfl обеспеч肇ет ти мет: шифние с симметичными ключ‡ми, шифние с ‡симметичными ключ‡ми и хэшиние. Ч‡сть 2 пос‚flщен‡ шиф‡м с ‡ссиметичными ключ‡ми. Лекциfl 9 ‡ссм‡т肇ет м‡тем‡тические осно‚ы, необхо‰имые ‰лfl поним‡ниfl лекций ‚ этой ч‡сти и ост‡льной ч‡сти кни„и. Лекциfl 10 иссле‰ует со‚еменные шифы с ‡ссиметичными ключ‡ми. Лекциfl 9: М‡тем‡тик‡ киптфии. Ч‡сть III Лекциfl 9 ‡ссм‡т肇ет некотоые м‡тем‡тические понflтиfl, необхо‰имые, чтобы понflть сле‰ующие лекции. Мы по„о‚оим о постых числ‡х и их пиложении ‚ киптфии. Бу‰ут ‚‚е‰ены ‡л„оитмы ‰лfl испыт‡ниfl постоты чисел и оценк‡ их эффекти‚ности. Ду„ие темы ‚ключ‡ют ‡зложение н‡ множители, кит‡йскую теоему об ост‡тк‡х и ꂇ‰‡тичные с‡‚нениfl, ‚оз‚е‰ение ‚ степень и лифмы по мо‰улю, чтобы положить путь к ‡ссмотению киптфических систем с откытым ключом ‚ лекции 10. Лекциfl 10: Асимметично-ключ傇fl киптфиfl Лекциfl 10 ‡ссм‡т肇ет шифние с ‡симметичным ключом (откытый ключ ‰оступ‡). Он ‚‚о‰ит несколько киптфических систем, т‡ких к‡к ‡л„оитмы RSA, Rabin, ElGamal и киптосистем‡ н‡ осно‚е мет эллиптических ки‚ых (ECC — Elliptic Curve Cryptosystem). З‰есь упомин‡етсfl большинст‚о ‚и‰о‚ ‡т‡к ‰лfl к‡ж‰ой системы и пе‰ст‡‚лflютсfl екоме퉇ции к‡к пе‰от‚‡тить эти ‡т‡ки.
Лекциfl 9. М‡тем‡тик‡ киптфии. Ч‡сть III. Постые числ‡ и у‡‚нениfl с‡‚нениfl Цели и со‰еж‡ние Эт‡ лекциfl имеет несколько целей. • В‚ести постые числ‡ и их пиложениfl ‚ киптфии. • Обсу‰ить некотоые ‡л„оитмы по‚еки постоты чисел и их эффекти‚ность. • Обсу‰ить ‡л„оитмы ‡зложениfl н‡ множители и их пиложениfl ‚ киптфии. • Опис‡ть кит‡йскую теоему об ост‡тк‡х и ее пиложениfl. • В‚ести ꂇ‰‡тичное с‡‚нение. • В‚ести ‚оз‚е‰ение ‚ степень по мо‰улю и лифмы. Асимметично-ключ傇fl киптфиfl, котоую мы обсу‰им ‚ лекции 10, б‡зиуетсfl н‡ некотоых положениflх теоии чисел, ‚ключ‡fl теоии, с‚flз‡нные с постыми числ‡ми, ‡зложением н‡ множители сост‡‚ных объекто‚ ‚ постые числ‡, мо‰ульном ‚оз‚е‰ение ‚ степень и лифм‡х, ꂇ‰‡тичных ‚ычет‡х и ки275
Кус
Киптфиfl и безоп‡сность сетей
т‡йской теоеме об ост‡тк‡х. Эти поблемы бу‰ут ‡ссмотены з‰есь, ‚ леции 9, чтобы упостить поним‡ние леции 10.
9.1. Постые числ‡ Асимметично-ключ傇fl киптфиfl шиоко использует постые числ‡. Тем‡ постых чисел — больш‡fl ч‡сть любой кни„и по теоии чисел. Эт‡ лекциfl обсу扇ет только несколько понflтий и ф‡кто‚, чтобы откыть путь к лекции 10.
Опе‰еление Положительные целые числ‡ мо„ут быть ‡з‰елены н‡ ти „уппы: число 1, постые числ‡ и сост‡‚ные объекты, к‡к это пок‡з‡но н‡ ис. 9.1.
Рис. 9.1. Ти „уппы положительных целых чисел Положительное целое число — постое число т‡ и только т‡, к‡ оно точно ‰елимо без ост‡тк‡ н‡ ‰‚‡ целых числ‡ — н‡ 1 и н‡ с‡мо себfl. Сост‡‚ной объект — положительное целое число больше с чем ‰‚умfl ‰елителflми. Постое число ‰елимо без ост‡тк‡ только н‡ себfl и 1. Пиме 9.1 К‡кое н‡именьшее постое число? Решение Н‡именьшее постое число — 2, оно ‰елитсfl без ост‡тк‡ н‡ 2 (с‡мо н‡ себfl) и 1. Об‡тите ‚ним‡ние, что целое число 1 — не постое число со„л‡сно опе‰елению, потому что постое число ‰олжно быть ‰елимо без ост‡тк‡ ‰‚умfl ‡зличными целыми числ‡ми, не больше и не меньше. Целое число 1 ‰елимо без ост‡тк‡ только н‡ себfl; поэтому 1 — это не постое число. Пиме 9.2 Пеечислите постые числ‡, меньшие, чем 10. Решение Есть четые постых числ‡ меньше чем 10: 2, 3, 5 и 7. Интеесно, что поцент постых чисел ‚ ‰и‡п‡зоне 1-10 — 40%. С у‚еличением ‰и‡п‡зон‡ поцент уменьш‡етсfl. 276
Лекциfl 9
М‡тем‡тик‡ киптфии. Ч‡сть III. Постые числ‡ и у‡‚нениfl с‡‚нениfl
Вз‡имно постые числ‡ Д‚‡ положительных целых числ‡ a и b fl‚лflютсfl ‚з‡имно постыми (coprime), если НОД (a, b) = 1, потому что число 1 fl‚лflетсfl ‚з‡имно постым с любым целым числом. Если p — постое число, т‡ ‚се числ‡ от 1 ‰о p–1 fl‚лflютсfl ‚з‡имно постыми к p. В лекции 2 мы обсу扇ли множест‚о Zn*, чьи элементы — ‚се числ‡, ‚з‡имно постые к n. Множест‚о Zp* fl‚лflетсfl тем же с‡мым, з‡ исключением то„о, что мо‰уль (p) — постое число.
Количест‚о постых чисел После то„о к‡к понflтие постых чисел было опе‰елено, естест‚енно ‚озник‡ет ‚опос: число постых чисел конечно или бесконечно? Возьмем число n. Сколько есть постых чисел меньших, чем это число, или ‡‚ных n? Число постых чисел Число постых чисел бесконечно. Пи‚е‰ем несто„ое ‰ок‡з‡тельст‚о: пе‰положим, что множест‚о постых чисел конечно (ничено), и пусть p — н‡ибольшее постое число. Пеемножим ‚се постые числ‡, ‚хо‰flщие ‚ это множест‚о, и получим езульт‡т P = 2 × 3 × ... × p. Целое число (P + 1) не может иметь посто„о ‰елителfl q ≤ p (p – н‡ибольшее постое число). Т‡ этот ‰елитель ‰олжен быть о‰ним из множителей, ‚хо‰flщих ‚ P. Это зн‡чит, что q ‰елит P. Если q т‡кже ‰елит (P + 1), то q ‰елит (P + 1) – P = 1. Е‰инст‚енное число, котоое ‰елит 1, — это с‡м‡ 1, кото‡fl не fl‚лflетсfl постым числом. Поэтому q ‰олжно быть большим, чем p, и fl‰ постых чисел не исчепы‚‡етсfl пинflтым конечным множест‚ом. Число постых чисел бесконечно. Пиме 9.3 К‡к ти‚и‡льный пиме, пе‰положим, что е‰инст‚енные постые числ‡ н‡хо‰flтсfl ‚ множест‚е {2, 3, 5, 7, 11, 13, 17}. З‰есь P = 510510 и P + 1 = 510511. О‰н‡ко 510511 состоит из сле‰ующих постых чисел 510511 = 19 × 97 × 277; ни о‰но из этих постых чисел не было ‚ пе‚он‡ч‡льном списке. Эти ти постых числ‡ больше, чем 17. Число постых чисел, меньших n Чтобы ‡ссмотеть ‚тоую ‚озможность, ‚‚е‰ем функцию π (n), кото‡fl опе‰елflет число постых чисел, меньших или ‡‚ных n. Ниже пок‡з‡ны зн‡чениfl этой функции ‰лfl ‡злично„о π (n). π (1).= 0
π (2).=1
π (3).= 2
π (n).= 4
π (n).= 8
π (50).=15
π (100).=25
Но если n fl‚лflетсfl очень большим, к‡к мы можем ‚ычислить π (n)? Длfl от‚ет‡ можно использть только пиближение, котоое пок‡з‡но ниже: [n / (ln n)] < π (n). < [n / (ln n–1.08366)] Г‡усс обн‡ужил ‚ехний пе‰ел; Л‡„‡нж обн‡ужил нижний пе‰ел. 277
Кус
Киптфиfl и безоп‡сность сетей
Пиме 9.4 Н‡й‰ите количест‚о постых чисел, меньших, чем 1 000 000. Решение Пиближение ‰‡ет ‰и‡п‡зон от 72 383 ‰о 78 543. Ф‡ктическое число постых чисел — 78 498.
По‚ек‡ н‡ постое число Сле‰ующий ‚опос, котоый пихо‰ит н‡ ум: к‡к мы можем опе‰елить ‰лfl ‰‡нно„о числ‡ n, fl‚лflетсfl ли оно постым числом? Мы ‰олжны по‚еить, ‰елимо ли без ост‡тк‡ это число ‚семи постыми числ‡ми, меньшими, чем √n. Мы зн‡ем, что этот мето‰ неэффекти‚ен, но он хоош ‰лfl н‡ч‡л‡. Пиме 9.5 Дейст‚ительно ли 97 — постое число? Решение Н‡ибольшее ближ‡йшее целое число — √97 = 9. Постые числ‡ меньше, чем 9 — 2, 3, 5 и 7. По‚еим, ‰елимо ли без ост‡тк‡ 97 любым из этих номео‚. От‚ет: не ‰елимо, т‡к что 97 — постое число. Пиме 9.6 Дейст‚ительно ли 301 — постое число? Решение Н‡ибольшее ближ‡йшее целое число √301= 17. Мы ‰олжны по‚еить 2, 3, 5, 7, 11, 13 и 17. Числ‡ 2, 3 и 5 не ‰елflт 301, но 7 — ‰елит. Поэтому 301 — не постое число. Решето Э‡тосфен‡ Геческий м‡тем‡тик Э‡тосфен изобел мето‰, к‡к н‡йти ‚се постые числ‡, меньшие, чем n. Мето‰ н‡з‚‡н ешетом Э‡тосфен‡. Пе‰положим, что мы хотим н‡йти ‚се числ‡, меньшие, чем 100. Мы з‡писы‚‡ем ‚се числ‡ меж‰у 2 и 100. Поскольку √100 = 10, мы ‰олжны ‚и‰еть, ‰елим ли без ост‡тк‡ любое число меньше чем 100 н‡ числ‡ 2, 3, 5 и 7. Т‡блиц‡ 9.1 пок‡зы‚‡ет езульт‡т. Поцесс состоит ‚ сле‰ующем 1. Вычекнуть ‚се числ‡, ‰елимые без ост‡тк‡ н‡ 2 (коме с‡мо„о 2). 2. Вычекнуть ‚се числ‡, ‰елимые без ост‡тк‡ н‡ 3 (коме с‡мо„о 3). 3. Вычекнуть ‚се числ‡, ‰елимые без ост‡тк‡ н‡ 5 (коме с‡мо„о 5). 4. Вычекнуть ‚се числ‡, ‰елимые без ост‡тк‡ н‡ 7 (коме с‡мо„о 7). 5. Ост‡‚шиесfl числ‡ – постые.
Phi-функциfl Эйле‡ Phi-функциfl Эйле‡, φ(n), котоую ин‡ н‡зы‚‡ют тотиентой Эйле‡, 脇ет очень ‚‡жную оль ‚ киптфии. Функциfl φ(n) н‡хо‰ит из fl‰‡ чисел 0,1…., n–1 числ‡, ‚з‡имно постые с n. Можно ‚спомнить из лекции 2, что множест‚о Zn* — 278
Лекциfl 9
М‡тем‡тик‡ киптфии. Ч‡сть III. Постые числ‡ и у‡‚нениfl с‡‚нениfl
Т‡блиц‡ 9.1. Решето Э‡тосфен‡
числ‡, котоые больше чем n и ‚з‡имно постые с n. Функциfl φ(n) ‚ычислflет число элементо‚ это„о множест‚‡. Ниже пок‡з‡но, к‡к н‡йти это зн‡чение 1. φ(1) = 0. 2. φ(p)= p – 1, если p — постое число. 3. φ(m × n) = φ(m) × φ(n) если m и n — ‚з‡имно постые. 4. φ(pe) = pe – pe-1, если p — постое. Мы можем объе‰инить эти четые ил‡, пе‰н‡зн‡ченные ‰лfl н‡хож‰ениfl ϕ(n). φ(n) = (p1e1 – p1e1-1) × (p2e2 – p2e2-1) × … × (pkek – pkek-1) Очень ‚‡жно з‡метить, что зн‡чение φ(n) ‰лfl больших чисел может быть н‡й‰ено, если может быть н‡й‰ено число n и если n может быть пе‰ст‡‚лено ‚ ‚и‰е ‡зложениfl постых чисел. Ду„ими слми, ту‰ность н‡хож‰ениfl φ(n) 燂исит от ту‰ности н‡хож‰ениfl ‡зложениfl n. Это ‡ссм‡т肇етсfl ‚ сле‰ующем ‡з‰еле. Ту‰ность н‡хож‰ениfl φ(n) 燂исит от ту‰ности н‡хож‰ениfl ‡зложениfl n. Пиме 9.7 К‡кое зн‡чение имеет φ(13)? Решение Поскольку 13 — постое число, φ(13) = (13 – 1) = 12. Пиме 9.8 К‡кое зн‡чение имеет φ(10)? Решение Мы можем использть тетье ило: φ(10) = φ(2) × φ(5) = 1 × 4 = 4, поскольку 2 и 5 — постые числ‡. Пиме 9.9 К‡кое зн‡чение имеет φ(240)? 279
Кус
Киптфиfl и безоп‡сность сетей
Решение Мы можем з‡пис‡ть 240 = 24 × 31 × 51. Т‡ φ(240) = (24 – 23) × (31 –30) × (51 × 50) = 64 Пиме 9.10 Можно ли ут‚е扇ть, что φ(49) = φ(7) × φ(7) = 6 × 6 = 36? Решение Нет. φ(49)= 72 – 71= 42 Пиме 9.11 К‡кие числ‡ fl‚лflютсfl элемент‡ми ‚ Z14*? Решение φ(14)= φ(14) = φ(7) × φ(2) = 6 × 1 = 6. Элементы – это 1, 3, 5, 9, 11 и 13. Интеесный ф‡кт: если n >2, зн‡чение φ(n) — четное.
М‡л‡fl теоем‡ Фем‡ М‡л‡fl теоем‡ Фем‡ и„‡ет очень ‚‡жную оль ‚ теоии чисел и киптфии. Ниже мы пи‚о‰им ‰‚е ‚есии теоемы. П傇fl ‚есиfl П傇fl ‚есиfl „о‚оит, что если p — постое число и a — целое число, т‡кое, что p не fl‚лflетсfl ‰елителем a, то a p-1 ≡ 1 mod p. Вто‡fl ‚есиfl Вто‡fl ‚есиfl ‚‚о‰ит нич肇ющие усло‚ие н‡ a. Он‡ ут‚е扇ет, что если p — постое число и a — целое число, то a p-1 ≡ a mod p. Пиложениfl Хотfl мы бу‰ем ‡ссм‡т肇ть пиложениfl этой теоемы позже ‚ этой лекции, теоем‡ очень полезн‡ ‰лfl то„о, чтобы ешить некотоые поблемы. Воз‚е‰ение ‚ степень. М‡л‡fl теоем‡ Фем‡ ин‡ полезн‡ ‰лfl то„о, чтобы бысто н‡йти ешение пи ‚оз‚е‰ении ‚ степень. Сле‰ующие пимеы пок‡зы‚‡ют это. Пиме 9.12 Н‡й‰ите езульт‡т 610 mod 11. Решение Мы имеем 610 mod 11 ≡ 1. Это п傇fl ‚есиfl м‡лой теоемы Фем‡, „‰е p = 11. 280
Лекциfl 9
М‡тем‡тик‡ киптфии. Ч‡сть III. Постые числ‡ и у‡‚нениfl с‡‚нениfl
Пиме 9.13 Н‡й‰ите езульт‡т 312 mod 11. Решение З‰есь степень (12) и мо‰уль (11) не соот‚етст‚уют усло‚иflм теоемы Фем‡. Но, пименflfl пеоб‡зниfl, мы можем пи‚ести ешение к использнию м‡лой теоемы Фем‡. 312 mod 11 = (311 × 3) mod 11 = (311 mod 11) × (3 mod 11) = (3 × 3) mod 11 = 9 Мультиплик‡ти‚ные ин‚есии. Очень интеесное пиложение теоем‡ Фем‡ имеет ‰лfl некотоых мультиплик‡ти‚ных ин‚есий, если мо‰уль — постое число. Если p — постое число и a — целое число, т‡кое, что p не fl‚лflетсfl е„о ‰елителем, т‡ a-1mod p = ap-2 mod p. Это может быть ле„ко ‰ок‡з‡но, если мы умножим обе стооны ‡‚енст‚‡ н‡ a и используем пе‚ую ‚есию м‡лой теоемы Фем‡: a × a-1mod p = a × ap-2mod p = ap-1mod p = 1mod p Это пиложение поз‚олflет не пименflть ‡сшиенный ‡л„оитм Е‚кл艇 ‰лfl н‡хож‰ениfl мультиплик‡ти‚ных ин‚есий. Пиме 9.14 Ин‚есии по мо‰улю посто„о числ‡ мо„ут быть н‡й‰ены без использниfl ‡сшиенно„о Е‚кли‰о‚‡ ‡л„оитм‡: a. 8–1 mod 17 = 817-2 mod 17 = 815 mod 17 = 15 mod 17 b. 5–1 mod 23 = 523-2 mod 23 = 521 mod 23 = 14 mod 23 c. 6–1 mod 101 = 60101-2 mod 101 = 6099 mod 101 = 32 mod 101 d. 22-1 mod 211 = 22 211-2 mod‡ 211 = 22209 mod 211 = 48 mod 211
Теоем‡ Эйле‡ Теоему Эйле‡ можно пе‰ст‡‚ить к‡к обобщениfl м‡лой теоемы Фем‡. Мо‰уль ‚ теоеме Фем‡ — постое число, мо‰уль ‚ теоеме Эйле‡ — целое число. Мы ‚‚о‰им ‰‚е ‚есии этой теоемы. П傇fl ‚есиfl П傇fl ‚есиfl теоемы Эйле‡ по‰обн‡ пе‚ой ‚есии м‡лой теоемы Фем‡. Если a и n – ‚з‡имно постые, то aφ(n) ≡ 1 mod n. Вто‡fl ‚есиfl Вто‡fl ‚есиfl теоемы Эйле‡ по‰обн‡ ‚тоой ‚есии м‡лой теоемы Фем‡; он‡ уст‡нflет усло‚ие, что n ‰олжно быть ‚з‡имно постым с a. Если n = p × q, a < n, ‡ k — целое число, то ak × φ(n) + 1 ≡ a mod n. Пи‚е‰ем несто„ое ‰ок‡з‡тельст‚о ‚тоой ‚есии, осннной н‡ пе‚ой ‚есии. Поскольку a < n, то ‚озможны ти случ‡fl. 1. Если a не к‡тно ни числу p, ни числу q, то a и n – ‚з‡имно постые. 281
Кус
Киптфиfl и безоп‡сность сетей
2. Если a — к‡тное число p, a = i × p, но не к‡тно числу q.
3. Если a к‡тно q (a= i × q), но не к‡тно p, ‰ок‡з‡тельст‚о ‚тоо„о случ‡fl то же с‡мое, но p и q менflютсfl мест‡ми. Вто‡fl ‚есиfl теоемы Эйле‡ используетсfl ‚ киптфической системе RSА (лекциfl 10). Пиложениfl Хотfl мы ‡ссмотим некотоые пиложениfl теоемы Эйле‡ позже ‚ этой лекции, теоем‡ очень полезн‡ ‰лfl то„о, чтобы еш‡ть некотоые 燉‡чи. Воз‚е‰ение ‚ степень. Теоем‡ Эйле‡ ин‡ полезн‡, чтобы бысто н‡йти ешение некотоых 燉‡ч с ‚оз‚е‰ением ‚ степень. Сле‰ующие пимеы пок‡зы‚‡ют и‰ею это„о поцесс‡. Пиме 9.15 Н‡й‰ите езульт‡т 624 mod 35. Решение Мы имеем 624 mod 35 = 6φ(35) mod 35 = 1 Пиме 9.16 Н‡й‰ите езульт‡т 2062 mod 77. Решение Если ‚‚е‰ем k = 1 со„л‡сно ‚тоой ‚есии, мы имеем: 2062 mod 77 = (20 mod 77) mod 77 = (20)(20) mod 77 = 15 Мультиплик‡ти‚ные ин‚есии. Теоем‡ Эйле‡ может использтьсfl, чтобы н‡йти мультиплик‡ти‚ную ин‚есию по постому мо‰улю. Теоем‡ Эйле‡ может пименflтьсfl, чтобы н‡йти мультиплик‡ти‚ные ин‚есии по сост‡‚ному мо‰улю. Если n и a – ‚з‡имно постые, то a-1mod n = aφ(n)-1mod n. Это может быть ле„ко ‰ок‡з‡но умножением обеих стоон ‡‚енст‚‡ н‡ a. a-1mod n = a × aφ(n)-1mod n = aφ(n)mod n = 1mod n 282
Лекциfl 9
М‡тем‡тик‡ киптфии. Ч‡сть III. Постые числ‡ и у‡‚нениfl с‡‚нениfl
Пиме 9.17 Мультиплик‡ти‚н‡fl ин‚есиfl по сост‡‚ному мо‰улю может быть н‡й‰ен‡ без использниfl ‡сшиенно„о е‚кли‰о‚‡ ‡л„оитм‡, если мы зн‡ем ‡зложение н‡ множители сост‡‚но„о объект‡: a. 8-1 mod 77 = 8φ(77)–1 mod 77 = 859 mod 77 = 29 mod 77 b. 7-1 mod 15 = 7φ(15)–1 mod 15 = 77 mod 15 = 13 mod 15 c. 6-1 mod 187 = 60φ(187)–1 mod 187 = 60159 mod 187 = 53 mod 187 d. 71-1 mod l00 = 71φ(100)–1 mod 100 = 7139 mod l00 = 31 mod 100
Гене‡циfl постых чисел Д‚‡ м‡тем‡тик‡, Месенн‡ и Фем‡, попыт‡лись получить фомулу, кото‡fl мо„л‡ бы „енеить постые числ‡. Постые числ‡ Месенны Месенн‡ пе‰ложил сле‰ующую фомулу, котоую н‡зы‚‡ют числ‡ Месенны. Он пе‰по뇄‡л, что фомул‡ пеечислflет ‚се постые числ‡. Mp = 2p–1 Если p ‚ пи‚е‰енной ‚ыше фомуле — постое число, то, к‡к пе‰по뇄‡ли, Mp ‰олжно быть постым числом. Го‰ы спустfl было ‰ок‡з‡но, что не ‚се числ‡, полученные по фомуле Месенны, — постые числ‡. Ниже пи‚е‰ен список некотоых номео‚ Месенны. M 2 = 22 – 1 = 3 M 3 = 23 – 1 = 7 M5 = 25 – 1 = 31 M7 = 27 – 1 = 127 M11 = 211 – 1 = 2047 M13 = 213 – 1 = 8191 M17 = 217 – 1 = 131071
Непостое число (2047 = 23 × 89)
Ок‡з‡лось, что M11 — не постое число. О‰н‡ко было н‡й‰ено, что 41 число по фомуле Месенны — постые; о‰но из после‰них н‡й‰енных чисел Месенны — М124036583, н‡ибольшее число со‰ежит 7 253 733 циф. Поиск по‰олж‡етсfl. Фем‡ побл н‡йти фомулу, кото‡fl „енеиует постые числ‡. Сле‰ующ‡fl фомул‡ — ‰лfl чисел Фем‡. Число ‚ фомуле Mp = 2p – 1, н‡зы‚‡емое числом Месенны, может быть или не быть постым числом. Постые числ‡ Фем‡ Фем‡ попыт‡лсfl н‡йти фомулу ‰лfl „ене‡ции постых чисел. Он пе‰ложил сле‰ующую фомулу, кото‡fl тепеь н‡зы‚‡етсfl фомулой Фем‡, и по‚еил номе‡ от F0 (n=0,1,…) ‰о F4, но ок‡з‡лось, что уже F4 — не постое число. 283
Кус
Киптфиfl и безоп‡сность сетей
Fn= 22n + 1 F0 = 3 F1 = 17 F2 = 257 F3 = 65537 F4 = 4294967297 = 641 × 6700417. Не постое число Ф‡ктически было ‰ок‡з‡но, что мно„ие номе‡ ‰о F24 — сост‡‚ные числ‡.
9.2. Испыт‡ние постоты чисел Если фомулы получениfl постых чисел, по‰обно фомул‡м Фем‡ или Месенн‡, не „‡‡нтиуют, что полученные числ‡ — постые, то к‡к мы можем „енеить большие постые числ‡ ‰лfl киптфии? Мы можем только ‚ыб‡ть случ‡йно большое число и по‚ести испыт‡ние, чтобы убе‰итьсfl, что оно — постое. Н‡хож‰ение ‡л„оитм‡, котоый ильно и эффекти‚но по‚еflет очень большое целое число и уст‡н‡‚л肇ет, постое это число или же сост‡‚ной объект, — ‚с儉‡ было поблемой ‚ теоии чисел и, сле‰о‚‡тельно, ‚ киптфии. О‰н‡ко, н則‚ние иссле‰о‚‡ниfl (о‰но из котоых мы обсу扇ем ‚ этом ‡з‰еле) ‚ы„лfl‰flт очень песпекти‚ными. Ал„оитмы, котоые еш‡ют эту поблему, мо„ут быть ‡з‰елены н‡ ‰‚е обшиные к‡те„оии — ‰етемининные ‡л„оитмы и ‚еоflтностные ‡л„оитмы. Ниже ‡ссм‡т肇ютсfl некотоые пе‰ст‡‚ители обеих к‡те„оий. Детемининный ‡л„оитм ‚с儉‡ ‰‡ет ильный от‚ет. Веоflтностный ‡л„оитм ‰‡ет ильный от‚ет ‚ большинст‚е, но не ‚о ‚сех случ‡flх. Хотfl ‰етемининный ‡л„оитм и‰е‡лен, он обычно менее эффекти‚ен, чем соот‚етст‚ующий ‚еоflтностный.
Детемининные ‡л„оитмы Детемининный ‡л„оитм, по‚еflющий постоту чисел, пиним‡ет целое число и ‚ы‰‡ет н‡ ‚ыхо‰е пизн‡к: это число — постое число или сост‡‚ной объект. До н則‚не„о ‚емени ‚се ‰етемининные ‡л„оитмы были неэффекти‚ны ‰лfl н‡хож‰ениfl больших постых чисел. К‡к мы коотко пок‡жем, но‚ые ‚з„лfl‰ы ‰ел‡ют эти ‡л„оитмы более песпекти‚ными. Ал„оитм теоии ‰елимости С‡мое элемент‡ное ‰етемининное испыт‡ние н‡ постоту чисел — испыт‡ние н‡ ‰елимость. Мы используем ‚ к‡чест‚е ‰елителей ‚се числ‡, меньшие, чем √n. Если любое из этих чисел ‰елит n, т‡ n — сост‡‚ное. Ал„оитм 9.1 пок‡зы‚‡ет по‚еку н‡ ‰елимость ‚ ее пимити‚ной и очень неэффекти‚ной фоме. Ал„оитм может быть улучшен, если по‚еflть только нечетные номе‡. Он может быть улучшен ‰‡лее, если пользтьсfl т‡блицей постых чисел меж‰у 2 и 284
Лекциfl 9
М‡тем‡тик‡ киптфии. Ч‡сть III. Постые числ‡ и у‡‚нениfl с‡‚нениfl
√n. Число ‡ифметических опе‡ций ‚ ‡л„оитме 9.1 — √n. Если мы пиним‡ем, что к‡ж‰‡fl ‡ифметическ‡fl опе‡циfl использует только опе‡цию н‡ о‰ин бит (чисто усло‚ное со„л‡шение), т‡ сложность ‡зfl‰ной опе‡ции ‡л„оитм‡ 9.1 — f(nb) = √2nb = 2nb/2, „‰е nb – число бито‚ ‚ n. В больших систем‡х, обозн‡ч‡емых О, сложность может быть оценен‡ O(2nb): экспоненци‡льно (см. пиложение L). Ду„ими слми, ‡л„оитм ‰елимости неэффекти‚ен, если nb большое. Сложность побитно„о испыт‡ниfl ‰елимостью пок‡з‡тельн‡. Пиме 9.18 Пе‰положим, что n имеет 200 бито‚. К‡кое число ‡зfl‰ных опе‡ций ‰олжен был ‚ыполнить ‡л„оитм ‰елимости? Решение Сложность побито‚ых опе‡ций это„о ‡л„оитм‡ — 2nb/2. Это озн‡ч‡ет, что ‡л„оитму необхо‰имо по‚ести 2100 бито‚ых опе‡ций. Если ‡л„оитм имеет скоость 230 опе‡ций ‚ секун‰у, то ‰лfl по‚е‰ениfl испыт‡ний необхо‰имо 270 секун‰. Ал„оитм 9.1. Тест н‡ ‰елимость (n) //n – число тесто‚ н‡ постоту { r ← 2 wh¥le (r< √n) { ¥f (r | n) return “a compos¥te” // сост‡‚ное r ← r+1 } return “a pr¥me” //постое } AKS-‡л„оитм В 2002 „. ин‰ийские ученые А„‡‚‡л, К‡flл и С‡хсен‡ (Agrawal, Kayal и Saxena) объfl‚или, что они н‡шли ‡л„оитм ‰лfl испыт‡ниfl постоты чисел с полиноми‡льной сложностью ‚емени ‡зfl‰ных опе‡ций 0 ((log2 nb)). Ал„оитм использует тот ф‡кт, что (x – a) p ≡ (xp – a) mod p. Интеесно отметить, что некотоые бу‰ущие ‡з‡ботки ‰ел‡ют этот ‡л„оитм ст‡н‰‡тным тестом ‰лfl опе‰елениfl постоты чисел ‚ м‡тем‡тике и инфом‡тике. Пиме 9.19 Пе‰положим, что n имеет 200 бито‚. К‡кое число ‡зfl‰ных опе‡ций ‰олжен был ‚ыполнить ‡л„оитм AKS? Решение Сложность ‡зfl‰ной опе‡ции это„о ‡л„оитм‡ — O((log 2 n b)12). Это озн‡ч‡ет, что ‡л„оитму 퇉о только (log2 200)12 = 39 547 615 483 бито‚ых опе‡ций. Н‡ компьютее, способном ‚ыполнить 1 милл臉 бито‚ ‚ секун‰у, ‡л„оитму тебуетсfl только 40 секун‰. 285
Кус
Киптфиfl и безоп‡сность сетей
Веоflтностные ‡л„оитмы До AKS-‡л„оитм‡ ‚се эффекти‚ные мето‰ы ‰лfl испыт‡ниfl постоты чисел были ‚еоflтностные. Эти мето‰ы мо„ут использтьсfl еще некотоое ‚емfl, пок‡ AKS фом‡льно не пинflт к‡к ст‡н‰‡т. Веоflтностный ‡л„оитм не „‡‡нтиует ильность езульт‡т‡. О‰н‡ко мы можем получить ‚еоflтность ошибки н‡столько м‡ленькую, что это почти ‰‡ет „‡‡нтию, что ‡л„оитм ‚ы‡б‡ты‚‡ет ильный от‚ет. Сложность ‡зfl‰ной опе‡ции ‡л„оитм‡ может ст‡ть полиноми‡льной, пи этом мы ‰опуск‡ем небольшой ш‡нс ‰лfl ошибок. Веоflтностный ‡л„оитм ‚ этой к‡те„оии ‚о炇щ‡ет езульт‡т либо постое число, либо сост‡‚ной объект, осно‚ы‚‡flсь н‡ сле‰ующих ил‡х: a. если целое число, котоое бу‰ет по‚еено, — ф‡ктически постое число, ‡л„оитм fl‚но ‚о炇тит постое число; b. если целое число, котоое бу‰ет по‚еено, — ф‡ктически сост‡‚ной объект, ‡л„оитм ‚о炇щ‡ет сост‡‚ной объект с ‚еоflтностью 1–ε, но может ‚о炇тить постое число с ε ‚еоflтности. Веоflтность ошибки может быть уменьшен‡, если мы ‚ыполнflем ‡л„оитм несколько ‡з с ‡зличными мет‡ми или с использнием ‡зличных мето‰о‚. Если мы ‚ыполнflем ‡л„оитм m ‡з, ‚еоflтность ошибки может уменьшитьсfl ‰о εm. Тест Фем‡ Пе‚ый ‚еоflтностный мето‰, котоый мы обсу扇ем, — испыт‡ние постоты чисел тестом Фем‡. Если n — постое число, то an-1 ≡ 1 mod n. Об‡тите ‚ним‡ние, что если n — постое число, то с‡‚нение се‰ли‚о. Это не озн‡ч‡ет, что если с‡‚нение се‰ли‚о, то n — постое число. Целое число может быть постым числом или сост‡‚ным объектом. Мы можем опе‰елить сле‰ующие положениfl к‡к тест Фем‡: Если n — постое число, то an –1 ≡ 1 mod n Если n — сост‡‚ной объект, то ‚озможно, что an –1 ≡ 1mod n Постое число у‰о‚лет‚оflет тесту Фем‡. Сост‡‚ной объект может пойти тест Фем‡ с ‚еоflтностью ε. Сложность ‡зfl‰ной опе‡ции испыт‡ниfl Фем‡ ‡‚н‡ сложности ‡л„оитм‡, котоый ‚ычислflет ‚оз‚е‰ение ‚ степень. Позже ‚ этой лекции мы ‡ссмотим ‡л„оитм ‰лfl бысто„о ‚оз‚е‰ениfl ‚ степень со сложностью ‡зfl‰ной опе‡ции O(nb ), „‰е О — номе бито‚ ‚ n. Веоflтность может быть улучшен‡, если по‚ек‡ ‰ел‡етсfl с несколькими числ‡ми (a1, a2 и т‡к ‰‡лее). К‡ж‰ое испыт‡ние у‚елич肇ет ‚еоflтность, что испытуемое число – это постое число. Пиме 9.20 По‚е‰ите испыт‡ние Фем‡ ‰лfl числ‡ 561. Решение Используем ‚ к‡чест‚е оснниfl число 2. 286
Лекциfl 9
М‡тем‡тик‡ киптфии. Ч‡сть III. Постые числ‡ и у‡‚нениfl с‡‚нениfl
2561-1 = 1mod 561 Число пошло тест Фем‡, но это — не постое число, потому что 561 = 33 × 17. Испыт‡ние ꂇ‰‡тным конем В мо‰ульной ‡ифметике, если n — постое число, то ꂇ‰‡тный коень ‡‚ен только 1 (либо +1, либо –l). Если n — сост‡‚ной объект, то ꂇ‰‡тный коень — +1 или (-1), но мо„ут быть и ‰у„ие кони. Это н‡зы‚‡ют испыт‡нием постоты чисел ꂇ‰‡тным конем. Об‡тите ‚ним‡ние, что ‚ мо‰ульной ‡ифметике –1 озн‡ч‡ет n–1. Если n — постое число, √1 mod n = ±1. Если n — сост‡‚ной объект, √1 mod n = ±1, и ‚озможны ‰у„ие зн‡чениfl. Пиме 9.21 К‡ко‚ы ꂇ‰‡тные кони 1 mod n, если n ‡‚но 7 (постое число)? Решение Е‰инст‚енные ꂇ‰‡тные кони 1 mod n – это числ‡ 1 и –1. Мы можем ‚и‰еть, что 12 =1 mod 7 22 = 4 mod 7 32 = 2 mod 7
(–1)2 = 1 mod 7 (–22) = 4 mod 7 (–32) = 2 mod 7
З‡метим, что тест не ‰‡ет езульт‡то‚ ‰лfl 4, 5 и 6, потому что 4 = –3 mod 7, 5 = –2 mod 7 и 6 = –1 mod 7. Пиме 9.22 К‡ко‚ к‚‡‰‡тный коень из 1 mod n, если n ‡‚но 8 (сост‡‚ное)? Решение Имеетсfl ти ешениfl: 1, 3, 5 и 7 (‡ т‡кже –1). Мы можем т‡кже ‚и‰еть, что 12 = 1 mod 8 32 = 1 mod 8
(–1)2 = 1 mod 8 (–52) = 1 mod 8
Пиме 9.23 К‡ко‚ к‚‡‰‡тный коень из 1 mod n, если n ‡‚но 17 (постое)? Решение Имеютсfl только ‰‚‡ ешениfl, соот‚етст‚ующие пост‡‚ленной 燉‡че: это 1 и (–1). 12 = 1 mod 17 22 = 4 mod 17 32 = 9 mod 17 42 = 16 mod 17
(-1)2 = 1 mod 17 (-22) = 4 mod 17 (-32) = 9 mod 17 (-4)2 = 16 mod 17 287
Кус
Киптфиfl и безоп‡сность сетей
52 = 8 mod 17 62 = 2 mod 17 72 = 15 mod 17 82 = 13 mod 17
(-52) = 8 mod 17 (-62) = 2 mod 17 (-7)2 = 15 mod 17 (-82) = 13 mod 17
З‡метим, что не 퇉о по‚еflть целые числ‡, большие 8, потому что 9 = –8 mod 17 Пиме 9.24 К‡ко‚ к‚‡‰‡тный коень из 1 mod n, если n ‡‚но 22 (сост‡‚ное)? Решение Сюпиз ‚ том, что имеетсfl только ‰‚‡ ешениfl: +1 и –1, хотfl 22 — сост‡‚ное число. 12 = 1 mod 22 (-1)2 = 1 mod 22 Хотfl ‚о мно„их случ‡flх имеетсfl испыт‡ние, котоое пок‡зы‚‡ет н‡м о‰нозн‡чно, что число сост‡‚ное, но это испыт‡ние по‚ести ту‰но. К‡ ‰‡но число n, то ‚се числ‡, меньшие, чем n (коме чисел 1 и n–1), ‰олжны быть ‚оз‚е‰ены ‚ ꂇ‰‡т, чтобы „‡‡нтить, что ни о‰но из них не ‡‚но 1. Т‡кое испыт‡ние может использтьсfl ‰лfl чисел (не +1 или –1), котоые ‚ ꂇ‰‡те по мо‰улю n ‰‡ют зн‡чение 1. Этот ф‡кт помет ‚ испыт‡нии Милле‡–Р‡бин‡, котоое ‡ссм‡т肇етсfl ‚ сле‰ующем ‡з‰еле. Тест Милле‡-Р‡бин‡ Тест Милле‡-Р‡бин‡ опе‰елениfl посто„о числ‡ есть комбин‡циfl тесто‚ Фем‡ и ꂇ‰‡тно„о конfl. Он эл儇нтным способом н‡хо‰ит сильное пс傉опостое число (постое число с очень ‚ысокой ‚еоflтностью). В этом тесте мы з‡писы‚‡ем n–1 к‡к поиз‚е‰ение нечетно„о числ‡ m и степени числ‡ 2. n – 1 = m × 2k В тесте Фем‡ пи осннии a можно з‡пис‡ть т‡к, к‡к это пок‡з‡но н‡ ис. 9.2.
Рис. 9.2. И‰еfl тест‡ н‡ постоту числ‡ н‡ осно‚е Фем‡ Ду„ими слми, ‚место то„о чтобы ‚ычислflть an-1(mod n) ‚ о‰ин ш‡„, мы можем с‰ел‡ть это ‚ k + 1 ш‡„о‚. К‡кое пеимущест‚о ‚ т‡ком пименении? Пеимущест‚о з‡ключ‡етсfl именно ‚ том, что испыт‡ние ꂇ‰‡тным конем может быть ‚ыполнено н‡ к‡ж‰ом ш‡„е. Если ꂇ‰‡тный коень пок‡зы‚‡ет сомнительные езульт‡ты, мы ост‡н‡‚л肇емсfl и объfl‚лflем n сост‡‚ным номеом. Н‡ к‡ж‰ом ш‡„е 288
Лекциfl 9
М‡тем‡тик‡ киптфии. Ч‡сть III. Постые числ‡ и у‡‚нениfl с‡‚нениfl
мы обеспеч肇ем, что тест Фем‡ и испыт‡ние ꂇ‰‡тным конем у‰о‚лет‚оено н‡ ‚сех х смежных ш‡„о‚, если оно у‰о‚лет‚оительно (если езульт‡т ‡‚ен 1). Иници‡лиз‡циfl Выбеите осно‚у и ‚ычислите T = am, ‚ котоый m = (n – 1) / 2k. a. Если T ‡‚но +1 или –1, объfl‚лflют, что n — пс傉опостое число, и поцесс ост‡н‡‚л肇етсfl. Мы „о‚оим, что n пошел ‰‚‡ испыт‡ниfl: тест Фем‡ и испыт‡ние ꂇ‰‡тным конем. Почему? Потому что если T ‡‚но ±1, то T ст‡нет 1 н‡ сле‰ующем ш‡„е и ост‡етсfl 1 ‰о похож‰ениfl тест‡ Фем‡. Коме то„о, T пошел испыт‡ние тестом ꂇ‰‡тно„о конfl, потому что T был бы ‡‚ен 1 н‡ сле‰ующем ш‡„е и ꂇ‰‡тный коень был бы ‡‚ен 1 (н‡ сле‰ующем ш‡„е) и ‡‚ен ±1 (н‡ этом ш‡„е). b. Если T ‡‚ен ‰у„ому зн‡чению, мы не у‚еены, fl‚лflетсfl ли n постым числом или сост‡‚ным объектом, зн‡чит, поцесс бу‰ет по‰олж‡тьсfl н‡ сле‰ующем ш‡„е. Ш‡„ 1 Воз‚о‰им T ‚ ꂇ‰‡т. a. Если езульт‡т ‡‚ен +1, мы опе‰еленно зн‡ем, что тест Фем‡ пой‰ен, потому что T ост‡етсfl 1 ‰лfl после‰ующих испыт‡ний. Испыт‡ние ꂇ‰‡тным конем, о‰н‡ко, не пой‰ено. Поскольку T ‡‚но 1 н‡ этом ш‡„е и имело н‡ пе‰ы‰ущем ш‡„е ‰у„ое зн‡чение, чем 1 (пичин‡, почему мы не ост‡но‚ились н‡ пе‰ы‰ущем ш‡„е), n объfl‚лflют сост‡‚ным объектом, и поцесс ост‡н‡‚л肇етсfl. b. Если езульт‡т ‡‚ен (–1), мы зн‡ем, что n ‚ конечном счете пой‰ет тест Фем‡. Мы зн‡ем, что он пой‰ет испыт‡ние ꂇ‰‡тным конем, потому что T ‡‚но (–1) ‚ этом ш‡„е и ст‡нет 1 н‡ сле‰ующем ш‡„е. Мы объfl‚лflем n пс傉ослуч‡йным постым числом и ост‡н‡‚л肇ем поцесс. c. Если T имеет еще к‡кое-либо зн‡чение, мы не у‚еены, имеем ли мы ‰ело с постым числом, и поцесс по‰олж‡етсfl н‡ сле‰ующем ш‡„е. Ш‡„и 2 ‰о k–1 Этот ш‡„ и ‚се ост‡льные ш‡„и ‰о k–1 т‡кие же, к‡к и ш‡„ 1. Этот ш‡„ не fl‚лflетсfl необхо‰имым. Если мы ‰ости„ли е„о и не пинflли ешение, он не поможет н‡м. Если езульт‡т это„о ш‡„‡ (–1), зн‡чит, тест Фем‡ пой‰ен, но поскольку езульт‡т пе‰ы‰уще„о ш‡„‡ — не ±1, испыт‡ние ꂇ‰‡тное конfl не пой‰ено. После ш‡„‡ k – 1, если поцесс не ост‡но‚лен, мы объfl‚лflем, что n — сост‡‚ное. Тест Милле‡-Р‡бин‡ тебует от 0 ‰о k–1. Ал„оитм 9.2 пок‡зы‚‡ет пс傉око‰ ‰лfl тест‡ Милле‡-Р‡бин‡. Сущест‚ует ‰ок‡з‡тельст‚о, что к‡ж‰ый ‡з, к‡ ‰лfl числ‡ по‚о‰итсfl тест Милле‡-Р‡бин‡, ‚еоflтность получить езульт‡т «не постое число» — 1/4. Если пошло m тесто‚ (с m ‡зличными оснниflми), ‚еоflтность, что тест ‚ы‰‡ст не постое число — (1/4)m. 289
Кус
Киптфиfl и безоп‡сность сетей
Ал„оитм 9.2. Пс傉око‰ ‰лfl тест‡ Милле‡-Р‡бин‡ Тест Милле‡-Р‡бин‡ (n, a) // n — число; a — оснние { F¥nd m and k such that n–1 = m x 2k T ← am mod n ¥f ( T = ±1) return “a pr¥me” for (I ← 1 to k–1) // k–1 — м‡ксим‡льное число ш‡„о‚ { T ← T2 mod n ¥f (T = +1) return “ a compos¥te” // сост‡‚ное ¥f (T = –1) return “ a pr¥me” // постое } return “ a compos¥te” } Пиме 9.25 По‚е‰ите тест Милле‡-Р‡бин‡ к числу 561. Решение Используfl оснние 2, получим 561 – 1 = 35 × 24, что озн‡ч‡ет, что m = 35, k=4и‡=2 Иници‡лиз‡циfl: k=1 k=2 k=3
T = 235 mod 561 = 263 mod 561 T = 2632 mod 561 = 166 mod 561 T = 1662 mod 561 = 67 mod 561 T = 672 mod 561 = +1 mod 561 → сост‡‚ное
Пиме 9.26 Мы уже зн‡ем, что 27 — не постое число. Попобуем пименить тест Милле‡-Р‡бин‡. Решение Оснние ‡‚но 2, т‡ 27 – 1 = 13 × 21, что озн‡ч‡ет m = 13, k = 1 и a = 2. В этом случ‡е k – 1 = 0, и мы ‰олжны с‰ел‡ть только ш‡„ иници‡лиз‡ции: T = 213 mod 27 = 11 mod 27. О‰н‡ко поскольку ‡л„оитм не ‰ел‡ет ни о‰но„о цикл‡, ‚ы‡б‡ты‚‡етсfl ешение «сост‡‚ной объект». Пиме 9.27 Мы зн‡ем, что 61 — постое число; ‰‡‚‡йте посмотим, что ‰‡ст тест Милле‡-Р‡бин‡. Решение Мы используем оснние 2. 61 – 1 = 15 × 22 → m = 15 k = 2 a = 2 Иници‡лиз‡циfl: T = 215 mod 61 = 11 mod 61 k=1 T = 112 mod 61 = –1 mod 61 → постое число 290
Лекциfl 9
М‡тем‡тик‡ киптфии. Ч‡сть III. Постые числ‡ и у‡‚нениfl с‡‚нениfl
Об‡тите ‚ним‡ние, что после‰ний езульт‡т — это 60 mod 61, но мы зн‡ем, что 60 = –1 mod 61.
Рекомен‰о‚‡нные тесты постоты чисел Се„о‰нfl о‰ин из с‡мых популflных тесто‚ постоты чисел — комбин‡циfl теоии ‰елимости и тест Милле‡-Р‡бин‡. Пи этом екомен‰уютсfl сле‰ующее ш‡„и. 1. Выб‡ть нечетное целое число, потому что ‚се четные целые числ‡ (коме 2) — fl‚но сост‡‚ные объекты. 2. С‰ел‡ть некотоые ти‚и‡льные испыт‡ниfl теоии ‰елимости н‡ некотоых из‚естных постых числ‡х, т‡ких, к‡к 3, 5, 7, 11, 13: т‡к, чтобы убе‰итьсfl, что ‚ы не имеете ‰ело с оче‚и‰ным сост‡‚ным объектом. Если они не fl‚лflютсfl ‰елителflми пи ‚сех этих испыт‡ниflх, с‰ел‡йте сле‰ующий ш‡„. Если ‚ыб‡нное число не пошло хотfl бы о‰ин из этих тесто‚, ‚енитесь н‡ о‰ин ш‡„ и ‚ыбеите ‰у„ое нечетное число. 3. Выб‡ть н‡бо оснний ‰лfl тест‡. Большое множест‚о оснний пе‰почтительно. 4. С‰ел‡ть тест Милле‡-Р‡бин‡ н‡ к‡ж‰ом из оснний. Если любой из них не похо‰ит, ‚енитесь н‡ о‰ин ш‡„ и ‚ыбеите ‰у„ой нечетный номе. Если тесты пошли ‰лfl ‚сех оснний, объfl‚ите это число к‡к сильное пс傉опостое число. Пиме 9.28 Номе 4033 — сост‡‚ной объект (37 × 109). Это по‰т‚е扇ет екомен‰о‚‡нное испыт‡ние постоты чисел? Решение 1. Выполним по‚еку со„л‡сно теоии ‰елимости. По‚еим сн‡ч‡л‡ числ‡ 2, 3, 5, 7, 11, 17 и 23 – они не fl‚лflютсfl ‰елителflми числ‡ 4033. 2. Выполним испыт‡ние Милле‡-Р‡бин‡ с осннием 2, т‡ 4033 – 1 = 63 × 26, что озн‡ч‡ет m = 63 и k = 6. Иници‡лиз‡циfl: T ≡ 263 (mod 4033) ≡ 1 (mod 4033) k=1 T ≡ T2 = 35212 (mod 4033) ≡ –1 (mod 4033) → Тест пошел 3. Но мы не у‰о‚лет‚оены. Мы по‰олж‡ем с ‰у„им осннием — 3. Иници‡лиз‡циfl: T ≡ 3 63 (mod 4033) ≡ 3551 (mod 4033) k = 1 T ≡ T2 ≡ 35512 (mod 4033 ≡ 2443 (mod 4033) k = 2 T ≡ T2 ≡ 24432 (mod 4033 ≡ 3442 (mod 4033) k = 3 T ≡ T2 ≡ 34422 (mod 4033 ≡ 2443 (mod 4033) k = 4 T ≡ T2 ≡ 24432 (mod 4033 ≡ 3442 (mod 4033) k = 5 T ≡ T2 ≡ 34422 (mod 4033 ≡ 2443 (mod 4033) → Не соот‚етст‚ует (сост‡‚ное) 291
Кус
Киптфиfl и безоп‡сность сетей
9.3. Р‡зложение н‡ множители Р‡зложение н‡ множители — пе‰мет непеы‚но„о иссле‰о‚‡ниfl ‚ пошлом; и т‡кие же иссле‰о‚‡ниfl, ‚еоflтно, по‰олж‡тсfl ‚ бу‰ущем. Р‡зложение н‡ множители 脇ет очень ‚‡жную оль ‚ безоп‡сности некотоых киптосистем с откытым ключом (см. лекцию 10).
Осно‚н‡fl теоем‡ ‡ифметики Со„л‡сно Осно‚ной теоеме ‡ифметики любое положительное целое число больше е‰иницы может быть уник‡льно з‡пис‡но ‚ сле‰ующей „л‡‚ной фоме ‡зложениfl н‡ множители, „‰е p1, p2, ..., pk — постые числ‡ и e1, e2, ..., ek — положительные целые числ‡: n = p1e1 × p2e2 × ... × pkek Есть непосе‰ст‚енные пиложениfl ‡зложениfl н‡ множители, т‡кие к‡к ‚ычисление н‡ибольше„о обще„о ‰елителfl и н‡именьше„о обще„о множителfl. Н‡ибольший общий ‰елитель В лекции 2 мы уже обсу扇ли н‡ибольший общий ‰елитель ‰‚ух номео‚, НОД (a, b). Посмотите, к‡к е‚кли‰о‚ ‡л„оитм н‡хо‰ит это зн‡чение, но это зн‡чение может т‡кже быть н‡й‰ено, если мы зн‡ем ‡зложение н‡ множители чисел a и b. a = p1a1 × p2a2 × … × pkak b = p1b1 × p2b2 × … × pkbk НОД (a,b) = p1min(a1,b1) × p2min(a2,b2) × … × pkmin(ak,bk) Н‡именьшее общее к‡тное Н‡именьшее общее к‡тное, НОК (a, b), — н‡именьшее целое число, к‡тное числ‡м a и b. Используfl ‡зложение, мы т‡кже н‡хо‰им НОК (a, b). a =p1a1 × p2a2 × … × pkak b = p1b1 × p2b2 × … × pkbk НОК (a,b) = p1max(a1,b1) × p2max(a2,b2) × … × pkmax(ak,bk) Может быть ‰ок‡з‡но, что НОД (a,b) и НОК (a,b) с‚flз‡ны с ‰у„ ‰у„ом, к‡к это пок‡з‡но ниже: НОК (a,b) × НОД (a,b) = a × b
Мето‰ы ‡зложениfl н‡ множители Поиск эффекти‚ных ‡л„оитмо‚ ‰лfl ‡зложениfl н‡ множители больших сост‡‚ных чисел ‚е‰етсfl ‰‡‚но. К сож‡лению, со‚ешенный ‡л„оитм ‰лfl это„о пок‡ не н‡й‰ен. Хотfl есть несколько ‡л„оитмо‚, котоые мо„ут ‡зложить число н‡ множители, ни о‰ин не способен по‚ести ‡зложение ‰ост‡точно больших 292
Лекциfl 9
М‡тем‡тик‡ киптфии. Ч‡сть III. Постые числ‡ и у‡‚нениfl с‡‚нениfl
чисел ‚ ‡зумное ‚емfl. Позже мы у‚и‰им, что это хоошо ‰лfl киптфии, потому что со‚еменные киптфические системы по뇄‡ютсfl н‡ этот ф‡кт. В этой секции мы ‰‡ем несколько постых ‡л„оитмо‚, котоые по‚о‰flт ‡зложение сост‡‚но„о числ‡. Цель состоит ‚ том, чтобы с‰ел‡ть поцесс ‡зложениfl н‡ множители менее ту‰оfiмким. Мето‰ по‚еки ‰елением С‡мый постой и н‡именее эффекти‚ный ‡л„оитм — мето‰ ‡зложениfl н‡ множители по‚екой ‰елением. Мы посто побуем ‚се положительные целые числ‡ н‡чин‡fl с 2, ‰лfl то„о чтобы н‡йти о‰но, котоое ‰елит n. После обсуж‰ениfl ешет‡ Э‡тосфен‡ мы зн‡ем, что если n сост‡‚ное, то ‰елитель бу‰ет постым числом p ≤ √n. Ал„оитм 9.3 е‡лизует этот мето‰. Ал„оитм имеет ‰‚‡ цикл‡: о‰ин ‚нешний и о‰ин ‚нутенний, н‡хо‰ит уник‡льные множители ‚ ‡зложении; ‚нутеннflfl петлfl н‡хо‰ит по‚тоflющиесfl множители ‡зложениfl. Н‡пиме, 24 = 23 × 3. Внешний цикл множители 2 и 3. Внутенний цикл н‡хо‰ит, что число 2 — множитель . Ал„оитм 9.3. ‡зложение по‚екой_‰елением (n) // n ‡ск뇉ы‚‡емое число { a ← 2 wh¥le (a ≤ √n) { wh¥le (n mod a = 0) { output a // элементы ‚ых «о‰ин з‡ ‰у„им» n = n/a } a ← a +1 } // n не имеет больше множителей ¥f (n>1) output n } Сложность. Мето‰ по‚еки ‰елением обычно хоош, если n < 210, но он неэффекти‚ен и неосущест‚им ‰лfl ‡зложениfl больших целых чисел. Сложность ‡л„оитм‡ (пиложение L) пок‡з‡тельн‡. Пиме 9.29 Используйте ‡л„оитм по‚еки ‰елением, чтобы н‡йти сомножители числ‡ 1233. Решение Мы ‚ыполнflем пмму, осннную н‡ ‡л„оитме, и получ‡ем сле‰ующий езульт‡т: 1233 = 32 × 137 293
Кус
Киптфиfl и безоп‡сность сетей
Пиме 9.30 Используйте ‡л„оитм по‚еки ‰елением, чтобы н‡йти сомножители 1523357784. Решение Мы ‚ыполнflем пмму, осннную н‡ ‡л„оитме, и получ‡ем сле‰ующий езульт‡т: 1523357784 = 23 × 32 × 13 × 37 × 43987
Мето‰ Фем‡ Мето‰ Фем‡ ‡зложениfl н‡ множители (‡л„оитм 9.4) ‰елит номе n н‡ ‰‚‡ положительных целых числ‡ (a и b — не обflз‡тельно постые числ‡) т‡к, чтобы n = a × b. Ал„оитм 9.4. Пс傉око‰ ‰лfl ‡зложениfl н‡ множители по мето‰у Фем‡ Р‡зложение_н‡_множители Фем‡ (n) // n — ‡ск뇉ы‚‡емое число { x ← √n // н‡именьшее целое, большее, чем √n wh¥le (
Лекциfl 9
М‡тем‡тик‡ киптфии. Ч‡сть III. Постые числ‡ и у‡‚нениfl с‡‚нениfl
p – 1 мето‰ Пол뇉‡ В 1974 „. Джон Пол뇉 ‡з‡бот‡л мето‰, котоый н‡хо‰ит ‡зложение числ‡ p н‡ постые числ‡. Мето‰ оснн н‡ усло‚ии, что p – 1 не имеет сомножителfl, больше„о, чем 燇нее опе‰еленное зн‡чение B, н‡зы‚‡емое „‡ницей. Ал„оитм Пол뇉‡ пок‡зы‚‡ет, что ‚ этом случ‡е p = НОД (2B! – 1, n ) Ал„оитм 9.5 пок‡зы‚‡ет пс傉око‰ ‰лfl p – 1 мет Пол뇉‡ ‡зложениfl н‡ множители. К‡ мы ‚ыхо‰им из ‚тоо„о цикл‡, ‚ a сох‡нflетсfl 2B!. Ал„оитм 9.5. Пс傉око‰ ‰лfl p – 1 мет Пол뇉‡ ‡зложениfl н‡ множители Pollard_(p–1)_Factor¥zat¥on (n,B) // n — ‡ск뇉ы‚‡емое число { a ← 2 e ← 2 wh¥le (e ≤ B) { a ← ae mod n e ← e +1 } p ← gsd (a–1, n) // gsd – НОД (н‡ибольший общий ‰елитель) ¥f 1 < p < n return p return fa¥lure } Сложность. З‡метим, что этот мето‰ тебует с‰ел‡ть B – 1 опе‡ций ‚оз‚е‰ениfl ‚ степень (a = a e mod n). К‡к мы у‚и‰им позже ‚ этой лекции, есть быстый ‡л„оитм ‚оз‚е‰ениfl ‚ степень, котоый ‚ыполнflет это з‡ 2 1og2 B опе‡ций. Мето‰ т‡кже использует ‚ычислениfl НОД, котоый тебует n3 опе‡ций. Мы можем ск‡з‡ть, что сложность — т‡к или ин‡че больше, чем O(B) или O(2nb), „‰е nb — число бито‚ ‚ B. Ду„‡fl поблем‡ – этот ‡л„оитм может з‡к‡нч肇тьсfl си„н‡лом об ошибке. Веоflтность успех‡ очень м‡л‡, если B имеет зн‡чение, не очень близкое к ‚еличине √n. Пиме 9.31 Используfl p – 1 мето‰ Пол뇉‡, н‡й‰ите сомножители числ‡ 57247159 с „‡ницей B = 8. Решение Мы ‚ыполнflем пмму, осннную н‡ ‡ссмотенном ‚ыше ‡л„оитме, и н‡хо‰им, что p = 421. Ф‡ктически 57247159 = 421 × 135979. Об‡тите ‚ним‡ние, что 421 — постое число и p –1 не имеет ни о‰но„о сомножителfl, больше„о 8, т.е. (421 – 1 = 22 × 3 × 5 × 7). 295
Кус
Киптфиfl и безоп‡сность сетей
РО (Rho) – мето‰ Пол뇉‡ В 1975 „. Джон М. Пол뇉 ‡з‡бот‡л ‚тоой мето‰ ‰лfl ‡зложениfl н‡ множители, котоый б‡зиуетсfl н‡ сле‰ующих положениflх. a. Пе‰положим, что есть ‰‚‡ целых числ‡, x1 и x 2, т‡ких, что p ‰елит x1 – x2, но эт‡ ‡зность не ‰елитсfl н‡ n. b. Может быть ‰ок‡з‡но, что p = НОД (x1 – x2, n). Поскольку p ‰елит x1 – x2, можно з‡пис‡ть, что x1 – x2 = q × p. Но поскольку n не ‰елит x1 – x2, оче‚и‰но, что q не ‰елитсfl n. Это озн‡ч‡ет, что НОД (x1 – x2, n) fl‚лflетсfl либо 1, либо сомножитель. Сле‰ующий ‡л„оитм по‚тоно ‚ыби‡ет x1 и x2, пок‡ не н‡хо‰ит соот‚етст‚ующую п‡у. 1. Выбеите x1 — м‡лое случ‡йное целое число, н‡зы‚‡емое пе‚оисточником. 2. Используйте функцию, чтобы ‚ычислить x2, т‡кую, чтобы n не ‰елило x1 – x2 . Функциfl, кото‡fl может быть пименен‡, — это x2 = f (x1 ) = x1 2 + a (a обычно ‚ыби‡етсfl к‡к 1). 3. Вычислить НОД (x1 – x2 , n). Если это не 1, езульт‡т – сомножитель. Ал„оитм ост‡н‡‚л肇етсfl. Если это 1, то поисхо‰ит ‚о炇щение, чтобы по‚тоить поцесс с x1. Тепеь мы ‚ычислflем x3. З‡метим, что ‚ сле‰ующем ‡ун‰е мы н‡чин‡ем с x3 и т‡к ‰‡лее. Если мы пеечислим зн‡чениfl нескольких x, используfl РО (rho) ‡л„оитм Пол뇉‡, мы у‚и‰им, что ‰у„‡ зн‡чений ‚ конечном счете по‚тоflетсfl, со片‚‡fl фому, по‰обную „еческой бук‚е Ро (rho или ‚ „еческом ‡лф‡‚ите ρ), к‡к это пок‡з‡но н‡ ис. 9.3.
Рис. 9.3 Успешные числ‡ ‚ Ро ‡л„оитме Пол뇉‡ Чтобы уменьшить число ите‡ций, ‡л„оитм был немно„о изменен. Он н‡чин‡етсfl с п‡ы (x0, x0), и ите‡ти‚но ‚ычислflет (x1, x2), (x 2, x4), (x3,, x6), …. (xi .x2i), используfl ‡‚енст‚о xi+1 = f (xi). В к‡ж‰ой ите‡ции мы пименflем функцию f (xi) (н‡чин‡fl с ш‡„‡ 2). Пи этом ‚ычисление и‰ут сле‰ующим об‡зом: ‚ п‡е ‚ычислflетсfl о‰ин ‡з пе‚ый элемент и ‰‚‡ж‰ы — ‚тоой элемент (см. ‡л„оитм 9.6). 296
Лекциfl 9
М‡тем‡тик‡ киптфии. Ч‡сть III. Постые числ‡ и у‡‚нениfl с‡‚нениfl
Ал„оитм 9.6. Pollard_rho_Factor¥zat¥on (n, B) // n — число, котоое н‡‰о ‡зложить { x ← 2 y ← 2 p ← ¥ wh¥le (p = 1) { x <— f(x) mod n y <— f(f(y) mod n) mod n // gsd (a,b) – это НОД (a,b) p <- gcd (x - y, n) } return p // если p = n, пмм‡ не ‚ыполнен‡ }
Комплексность. Мето‰ тебует √p ‡ифметических опе‡ций. О‰н‡ко поскольку мы пе‰по뇄‡ем, что p бу‰ет меньше или ‡‚нflтьсfl √n, мы ож艇ем около n1/4 ‡ифметические опе‡ций. Это озн‡ч‡ет, что сложность ‡зfl‰ной опе‡ции 0 (2nb /4) пок‡з‡тельн‡. Пиме 9.32 Пе‰положим, что есть компьюте, котоый, может ‚ыполнить 230 (почти 1 милл臉) ‡зfl‰ных опе‡ций ‚ секун‰у. К‡кое пиблизительно ‚емfl потебуетсfl, чтобы ‡зложить н‡ множители целое число ‡зме‡ a. 60 ‰есflтичных циф b. 100 ‰есflтичных циф Решение a. Множест‚о 60 ‰есflтичных циф имеют почти 200 бито‚. Сложность — 2nb /4 или 250. Со скоостью 230 опе‡ций ‚ секун‰у ‡л„оитм может быть ‚ыполнен ‚ 220 секун‰ы или почти з‡ 12 ‰ней b. Множест‚о 100 ‰есflтичных циф — это почти 300 бито‚. Сложность — 275. Со скоостью 230 опе‡ций ‚ секун‰у ‡л„оитм может быть ‚ыполнен ‚ 245 секун‰ или з‡ мно„о лет Пиме 9.33 Мы н‡пис‡ли пмму, чтобы ‚ычислить ‡зложение 434617. Результ‡т — 709 (434617 = 709 × 613) Т‡блиц‡ 9.2 пок‡зы‚‡ет зн‡чениfl п‡ (x и y) и p ‚ этом поцессе.
Более эффекти‚ные мето‰ы В течение пошлых ‰есflтилетий были пе‰ложены несколько мето‰о‚ ‡зложениfl н‡ множители, они к‡тко ‡ссм‡т肇ютсfl ниже. 297
Кус
Киптфиfl и безоп‡сность сетей
Т‡блиц‡ 9.2. Зн‡чениfl x, y и p ‚ пимее 9.33 x 2 5 26 677 23713 345589 142292 380320 15 7099 369457 52128 102901 41831 64520 68775
y 2 26 23713 142292 157099 52128 41831 68775 427553 2634 63593 161353 64890 21979 16309
p 1 1 1 1 1 1 1 1 1 1 1 1 1 1 709
К‚‡‰‡тичное ешето Поме‡нс изобел мето‰ ‡зложениfl н‡ множители, н‡зы‚‡емый мето‰ом ꂇ‰‡тично„о ешет‡. Мето‰ пименflет поце‰уу посе肇ниfl, чтобы н‡йти зн‡чение x2mod n. Мето‰ используетсfl, чтобы ‡зложить н‡ множители целые числ‡ с более чем 100 циф‡ми. Е„о сложность — 0 (ec), „‰е C ≈ 2(ln n lnln n)1/2. Об‡тите ‚ним‡ние, что это – субпотенци‡льн‡fl сложность1. Решето полfl чисел Эн‰ик Ленст‡ и А‰жин Ленст‡ изобели мето‰ ‡зложениfl н‡ множители и н‡з‚‡ли е„о мето‰ ешет‡ полfl чисел. Мето‰ использует поце‰уу посе肇ниfl ‚ ‡л„еб‡ической кольце‚ой стуктуе к x2 ≡ y2 mod n. Пок‡з‡но, что этот мето‰ быстее ‰лfl ‡зложениfl чисел с более чем 120 ‰есflтичными циф‡ми. Е„о сложность – O(eС) „‰е C ≈ (ln n)1/3(lnln n)2/3 . Об‡тите ‚ним‡ние, что это — т‡кже субпок‡з‡тельн‡fl сложность. Пиме 9.34 Пе‰положим, что есть компьюте, котоый может ‚ыполнить 230 (почти 1 милл臉) бито‚ых опе‡ций ‚ секун‰у. К‡кое пиблизительно ‚емfl тебуетсfl ‰лfl это„о компьюте‡, чтобы ‡зложить н‡ множители целое число из 100 ‰есflтичных циф, используfl о‰ин из сле‰ующих мето‰о‚? a. Мето‰ к‚‡‰‡тично„о ешет‡ b. Мето‰ ешет‡ полfl чисел Решение Номе с 100 ‰есflтичными циф‡ми имеет почти 300 бито‚ (n = 2300). ln (2300) = 207 и lnln (2300) = 5. a. Длfl мет ꂇ‰‡тично„о ешет‡ мы имеем (207) 1/2 × (5) 1/2 = 14 × 2,23 = 32. 1
Субпотенци‡льн‡fl сложность — сложность меньше потенци‡льной. 298
Лекциfl 9
М‡тем‡тик‡ киптфии. Ч‡сть III. Постые числ‡ и у‡‚нениfl с‡‚нениfl
Это озн‡ч‡ет, что н‡м 퇉о e32 бито‚ых опе‡ций, котоые мо„ут быть ‚ыполнены ‚ (e32)/ (230) = 20 ч‡со‚. b. Пи мето‰е ешет‡ полfl чисел мы имеем (207) × (5) 2/2 = 6 × 3 ≈ 18. Это озн‡ч‡ет, что н‡м 퇉о e 18 бито‚ых опе‡ций, котоые мо„ут быть с‰ел‡ны з‡ (e30) / (230) ≈ 6 секун‰. О‰н‡ко эти езульт‡ты ильны, только если мы имеем компьюте, котоый может ‚ыполнить 1 милл臉 бито‚ых опе‡ций ‚ секун‰у. Ду„ие поблемы В лекции 10 мы обсу‰им пик뇉ные ‚опосы 燉‡чи ‡зложениfl н‡ множители ‰лfl ‚скытиfl киптосистем с откытым ключом. Если бу‰ут изобетены более эффекти‚ные мето‰ы ‡зложениfl н‡ множители, то киптосистемы с откытым ключом ‚ынуж‰ены бу‰ут использть большие целые числ‡, чтобы поти‚остоflть кипто‡н‡лизу. Изобет‡тели RSA со片ли осно‚у ‰лfl конкуенции мето‰о‚ ‡зложениfl н‡ множители номео‚ ‰о 2048 бито‚ (больше чем 600 циф).
9.4. Кит‡йск‡fl теоем‡ об ост‡тк‡х Кит‡йск‡fl теоем‡ об ост‡тк‡х (CRT — Chinese Reminder Theorem) используетсfl, чтобы ешить множест‚о у‡‚нений с о‰ной пееменной, но ‡зличными ‚з‡имно постыми мо‰улflми, к‡к это пок‡з‡но ниже: x ≡ a1 (mod m1) x ≡ a2 (mod m2) …. x ≡ ak (mod mk) Кит‡йск‡fl теоем‡ об ост‡тк‡х ут‚е扇ет, что ‚ышеупомflнутые у‡‚нениfl имеют е‰инст‚енное ешение, если мо‰ули fl‚лflютсfl ‚з‡имно постыми. Пиме 9.35 Сле‰ующий пиме со‰ежит систему у‡‚нений с ‡зличными мо‰улflми: x ≡ 2 (mod3) x ≡ 3 (mod 5) x ≡ 2 (mod 7) Длfl этой системы у‡‚нений x = 23. Это зн‡чение у‰о‚лет‚оflет ‚се у‡‚нениfl: 23 × 2 (mod 3), 23 × 3 (mod 5), 23 × 2 (mod 7). Решение Решение системы у‡‚нений ‚ыполнflетсfl ‚ сле‰ующем поfl‰ке. 1. Н‡йти M = m1 × m2 × …. × mk. Это общий мо‰уль. 2. Н‡йти M1 = M/m1, M2 = M/m2,…., Mk = M/mk. 3. Используfl соот‚етст‚ующие мо‰ули m1, m2,…., mk, н‡йти мультиплик‡ти‚ную ин‚есию M1, M2,…, Mk. Обозн‡чим ее M1-1, M2-1,…, Mk-1. 4. Решение системы у‡‚нений 299
Кус
Киптфиfl и безоп‡сность сетей
x = (a1 × M1 × M1-1 + a2 × M2 × M2-1+……+ ak × Mk × Mk-1) mod M Об‡тите ‚ним‡ние, что систем‡ у‡‚нений может иметь ешение, ‰‡же если мо‰ули не ‚з‡имно постые. О‰н‡ко ‚ киптфии мы интеесуемсfl только ешением у‡‚нений с ‚з‡имно постыми мо‰улflми. Пиме 9.36 Н‡й‰ите ешение системы у‡‚нений x ≡ 2 (mod3) x ≡ 3 (mod 5) x ≡ 2 (mod 7) Из пе‰ы‰уще„о пиме‡ мы уже зн‡ем, что от‚ет x = 23. Опе‰елим е„о ‚ четые ш‡„‡. Решение 1. M = 3 × 5 × 7 = 105 2. M1 = 105/3 = 35, M2 = 105/5 =21, M3 = 105/7 = 15 3. Ин‚есии M1-1 = 2, M2-1 = 1, M3-1 = 1 4. x = (2 × 35 × 2 + 3 × 21 × 1 + 2 × 15 × 1 = 23 mod 105 Пиме 9.37 Н‡йти целое, котоое ‰‡ет ‚ ост‡тке 3, если е„о ‡з‰елить н‡ 7 и 13, но без ост‡тк‡ ‰елитсfl н‡ 12. Решение Это поблем‡ кит‡йской теоемы об ост‡тк‡х. Мы можем сост‡‚ить ти у‡‚нениfl и н‡йти зн‡чение x. x ≡ 3 (mod 7) x ≡ 3 (mod 13) x ≡ 0 (mod 12) Если по‚е‰ем четые ш‡„‡, мы н‡й‰ем x = 276. Можем по‚еить, что 276 = 3 mod 7, 276 = 3 mod 13 и 276 ‰елитсfl н‡ 12 (ч‡стное 23 и ост‡ток 0).
Пиложениfl Кит‡йск‡fl теоем‡ об ост‡тк‡х ч‡сто пименflетсfl ‚ киптфии. О‰но из т‡ких пименений – ешение ꂇ‰‡тных у‡‚нений — бу‰ет обсу扇тьсfl ‚ сле‰ующей секции. Ду„ое пиложение — пе‰ст‡‚ление очень большо„о числ‡ ‚ ‚и‰е списк‡ м‡лых целых чисел. Пиме 9.38 Пе‰положим, н‡м н‡‰о ‚ычислить z = x + y, „‰е x = 123 и y = 334, но систем‡ пиним‡ет только числ‡ меньше 100. Эти числ‡ можно пе‰ст‡‚ить сле‰ующими у‡‚нениflми: 300
Лекциfl 9
М‡тем‡тик‡ киптфии. Ч‡сть III. Постые числ‡ и у‡‚нениfl с‡‚нениfl
x ≡ 24(mod 99)
y ≡ 37 (mod 99)
x ≡ 25(mod 98)
y ≡ 40 (mod 98)
x ≡ 26(mod 97)
y ≡ 43 (mod 97)
Сложим к‡ж‰ое у‡‚нение x с соот‚етст‚ующим у‡‚нением y: x + y ≡ 61 (mod 99)
→
z ≡ 61 (mod 99)
x + y ≡ 65 (mod 98)
→
z ≡ 65 (mod 98)
x + y ≡ 69 (mod 97)
→
z ≡ 69 (mod 97)
Тепеь эти ти у‡‚нениfl мо„ут быть ешены, с использнием кит‡йской теоемы об ост‡тк‡х, чтобы н‡йти z. О‰ин из пиемлемых от‚ето‚ z = 457.
9.5. К‚‡‰‡тичное с‡‚нение Линейное с‡‚нение уже ‡ссм‡т肇лось ‚ лекции 2, ‡ кит‡йск‡fl теоем‡ об ост‡тк‡х был‡ обсуж‰ен‡ ‚ пе‰ы‰ущей секции. Длfl ешениfl 燉‡ч киптфии мы т‡кже ‰олжны уметь еш‡ть ꂇ‰‡тичное с‡‚нение, имеющее сле‰ующую фому: a2x2 + a1x + a0 = 0 (mod n). Мы ничим н‡ше обсуж‰ение только ꂇ‰‡тичными у‡‚нениflми, ‚ котоых a2 = 1 и a1 = 0. Т‡ ‡ссмотение бу‰ет к‡с‡тьсfl у‡‚нений сле‰ующей фомы: x2 ≡ a (mod n).
К‚‡‰‡тичное с‡‚нение с мо‰улем ‚ ‚и‰е посто„о числ‡ Мы сн‡ч‡л‡ ‡ссм‡т肇ем случ‡й, ‚ котоом мо‰уль fl‚лflетсfl постым числом. Ду„ими слми, мы хотим н‡йти ешениfl у‡‚нениfl фомы x2 ≡ a(mod p), ‚ котоом p fl‚лflетсfl постым числом и a — целое число, т‡кое, что p и a — ‚з‡имно постые. Может быть ‰ок‡з‡но, что этот тип у‡‚нениfl либо не имеет ник‡ко„о ешениfl, либо имеет только ‰‚‡ некон„уэнтных ешениfl. Пиме 9.39 У‡‚нение x2 ≡ 3 (mod 11) имеет ‰‚‡ ешениfl: x ≡ 5 (mod 11) и x ≡ –5 (mod 11). Но з‡метим, что –5 ≡ 6 (mod 11), т‡к что ф‡ктически эти ‰‚‡ ешениfl 5 и 6. Т‡кже об‡тите ‚ним‡ние, что эти ‰‚‡ ешениfl некон„уэнтны (нес‡‚нимы). Пиме 9.40 У‡‚нение x2 ≡ 2 (mod 11) не имеет ешениfl. Не может быть н‡й‰ено ни о‰но„о цело„о числ‡ x, т‡ко„о, что ꂇ‰‡т ‡‚ен 2 mod 11. К‚‡‰‡тичные ‚ычеты и не‚ычет 301
Кус
Киптфиfl и безоп‡сность сетей
В у‡‚нении x2 ≡ a (mod p) a н‡зы‚‡етсfl ꂇ‰‡тичным ‚ычетом (QR), если у‡‚нение имеет ‰‚‡ ешениfl; a н‡зы‚‡етсfl ꂇ‰‡тичным не‚ычетом (QNR), если у‡‚нение не имеет ешений. Может быть ‰ок‡з‡но, что ‚ ZP* с p – 1 элемент‡ми (p – 1)/2 элементо‚ — ꂇ‰‡тичные ‚ычеты и (p – 1)/2 fl‚лflютсfl ꂇ‰‡тичными не‚ычет‡ми. Пиме 9.41 Есть 10 элементо‚ ‚ Z11*. Пflть из них – ꂇ‰‡тичные ‚ычеты, и пflть — не‚ычеты. Ду„ими слми, Z11* может быть ‡з‰елен н‡ ‰‚‡ от‰ельных множест‚‡, QR и QNR, к‡к это пок‡з‡но н‡ ис. 9.4. Китеий Эйле‡
К‡к мы можем по‚еить, fl‚лflетсfl ли целое число QR по мо‰улю p? Китеий Эйле‡ ‰‡ет пизн‡ки: a. Если a(p–1)/2 ≡ 1 mod p — ꂇ‰‡тичный ‚ычет по мо‰улю p. b. Если a(p–1)/2 ≡ –1 mod p — ꂇ‰‡тичный не‚ычет по мо‰улю p. Рис. 9.4. Р‡з‰еление Z11* н‡ QR и QNR Пиме 9.42 Длfl то„о чтобы узн‡ть, fl‚лflетсfl ли 14 или 16 QR ‚ Z11*, с‰ел‡ем сле‰ующие ‚ычислениfl: 14(23-1)./2mod 23 → 1411 mod 23 → 22mod 23 → –1mod 23 16(23-1)./2mod 23 → 1611 mod 23 → 1 mod 23
не‚ычет ‚ычет
Решение ꂇ‰‡тично„о с‡‚нениfl с мо‰улем ‚ ‚и‰е посто„о числ‡ Хотfl китеий Эйле‡ поз‚олflет н‡м опе‰елить, fl‚лflетсfl ли целое число a QR или QNR ‚ Zp*, он не может н‡йти ешение x2 ≡ a (mod p). Чтобы н‡йти ешение это„о ꂇ‰‡тно„о у‡‚нениfl, мы з‡метим, что постое число может быть пе‰ст‡‚лено либо к‡к p = 4k + 1, либо к‡к p = 4 к + 3, ‚ котоом k fl‚лflетсfl положительным целым числом. Решение ꂇ‰‡тно„о у‡‚нениfl — очень сложное ‚ пе‚ом случ‡е и более постое ‚о ‚тоом. Мы обсу‰им только ‚тоой случ‡й, котоый мы бу‰ем использть ‚ лекции 10, к‡ бу‰ем ‡ссм‡т肇ть киптфическую систему Р‡бин‡. Специ‡льный случ‡й: p = 4 К + 3, если p н‡хо‰итсfl ‚ фоме 4 К + 3 (то есть p = 3 mod 4) и a есть QR ‚ Zp*, то x ≡ a(p+1)/4(mod p) и x ≡ –a(p+1)/4(mod p) 302
Лекциfl 9
М‡тем‡тик‡ киптфии. Ч‡сть III. Постые числ‡ и у‡‚нениfl с‡‚нениfl
Пиме 9.43 Решите сле‰ующие ꂇ‰‡тные у‡‚нениfl: a. x2 ≡ 3 (mod 23) b. x2 ≡ 2 (mod 11) c. x2 ≡ 7 (mod 19) Решениfl a. В пе‚ом у‡‚нении 3 – QR ‚ Z23, ешение – x ≡ ±16 (mod 23). Ду„ими слми, √3 ≡ ± 16 (mod 23). b.Во ‚тоом у‡‚нении 2 – QNR ‚ Z11. Нет ешениfl ‰лfl √2 ‚ Z11. c. В тетьем у‡‚нении 7 – QR ‚ Z19, ешение – x ≡ ±11 (mod 19). Ду„ими слми √7 ≡ ± 11 (mod 19).
К‚‡‰‡тичное с‡‚нение по сост‡‚ному мо‰улю К‚‡‰‡тичное с‡‚нение по сост‡‚ному мо‰улю может быть пи‚е‰ено к ешению системы с‡‚нений по мо‰улю ‚ ‚и‰е посто„о числ‡. Ду„ими слми, мы можем ‡н‡лизить x2 ≡ a (mod n), если имеем ‡зложение n н‡ множители. Тепеь мы можем ешить к‡ж‰ое ‡н‡лизиуемое у‡‚нение (если оно ‡зешимо) и н‡йти k п‡ от‚ето‚ ‰лfl x, к‡к пок‡з‡но н‡ ис. 9.5. Рис. 9.5. Декомпозициfl с‡‚нениfl по сост‡‚ному мо‰улю Из k п‡ от‚ето‚ мы можем сост‡‚ить 2 системы у‡‚нений, котоые мо„ут быть ешены с использнием кит‡йской теоемы об ост‡тк‡х, чтобы н‡йти 2 зн‡чениfl ‰лfl x. В киптфии обычно n ‚ыби‡ют т‡к, чтобы n = p × q, — это озн‡ч‡ет k = 2, и мы имеем ‚ целом только четые от‚ет‡. Пиме 9.44 Пе‰положим, что x2 ≡ 36 (mod 77). Мы зн‡ем, что 77 = 7 × 11. Мы можем н‡пис‡ть x2 = 36 (mod 7) ≡ 1 (mod 7)
и
x2 ≡ 36 (mod 11) ≡ 3 (mod 11)
Об‡тите ‚ним‡ние, что мы ‚ыб‡ли 3 и 7, чтобы иметь фому 4k + 3 — т‡к, чтобы мы мо„ли ешить у‡‚нениfl, осно‚ы‚‡flсь н‡ пе‰ы‰ущих ‡ссуж‰ениflх. Из этих у‡‚нений мы имеем ꂇ‰‡тичные ‚ычеты ‚ собст‚енном множест‚е. От‚еты x ≡ +1 (mod 7), x ≡ –1 (mod 7), x ≡ + 5 (mod 11) и x ≡ –5 (mod 11). Тепеь мы можем из них сост‡‚ить четые системы у‡‚нений: 303
Кус
Киптфиfl и безоп‡сность сетей
Систем‡ 1: x ≡ +1(mod 7) Систем‡ 2: x ≡ +1(mod 7) Систем‡ 3: x ≡ –1(mod 7) Систем‡ 4: x ≡ –1(mod 7)
x ≡ +5(mod 11) x ≡ – 5(mod 11) x ≡ +5(mod 11) x ≡ – 5(mod 11)
От‚еты : x = ± 6 и ± 27. Сложность К‡к сложно ешить ꂇ‰‡тичное с‡‚нение по сост‡‚ному мо‰улю? Г뇂н‡fl 燉‡ч‡ — это ‡зложение мо‰улfl н‡ множители. Ду„ими слми, сложность ешениfl ꂇ‰‡тично„о с‡‚нениfl по сост‡‚ному мо‰улю — т‡к‡fl же, к‡к и ‡зложениfl н‡ множители сост‡‚но„о цело„о числ‡. К‡к мы ‚и‰ели ‡ньше, если n очень большое, то ‡зложение н‡ множители неосущест‚имо. Сложность ешениfl ꂇ‰‡тично„о с‡‚нениfl по сост‡‚ному мо‰улю имеет ту же сложность, что и ‡зложение мо‰улfl н‡ множители.
9.6. Воз‚е‰ение ‚ степень и лифмы Воз‚е‰ение ‚ степень и лифм ин‚есны ‰у„ ‰у„у. Сле‰ующие ‡з‰елы пок‡зы‚‡ют отношениfl меж‰у ними, ‚ котоых a н‡зы‚‡етсfl осно‚ой ‚оз‚е‰ениfl ‚ степень или лифм‡. Воз‚е‰ение ‚ степень: y = ax → лифм: x = logay
Воз‚е‰ение ‚ степень В киптфии общ‡fl мо‰ульн‡fl опе‡циfl — ‚оз‚е‰ение ‚ степень. Мы ч‡сто ‰олжны ‚ычислflть y = a x mod n Киптфическ‡fl систем‡ RSA, кото‡fl бу‰ет обсу扇тьсfl ‚ лекции 10, использует ‚оз‚е‰ение ‚ степень ‰лfl шифниfl и ‰лfl ‰ешифниfl очень больших чисел. К сож‡лению, большинст‚о компьютеных flзыко‚ не имеет опе‡тоо‚, котоые мо„ут эффекти‚но ‚ычислflть степень, особенно ‰лfl очень больших чисел. Чтобы с‰ел‡ть эту опе‡цию более эффекти‚ной пи ‚ычислении, мы ну扇емсfl ‚ эффекти‚ных ‡л„оитм‡х. Быстое ‚оз‚е‰ение ‚ степень Быстое ‚оз‚е‰ение ‚ степень ‚озможно пи использнии специ‡льных мето‰о‚ ‚оз‚е‰ениfl ‚ ꂇ‰‡т и умножениfl. В т‡‰иционных ‡л„оитм‡х, ‰лfl ‚оз‚е‰ениfl ‚ степень пименflетсfl только умножение, но быстый ‡л„оитм ‚оз‚е‰ениfl ‚ степень использует и ‚оз‚е‰ение ‚ ꂇ‰‡т, и умножение. Г뇂н‡fl и‰еfl это„о 304
Лекциfl 9
М‡тем‡тик‡ киптфии. Ч‡сть III. Постые числ‡ и у‡‚нениfl с‡‚нениfl
Рис. 9.6. И‰еfl мет «‚оз‚е‰ениfl ‚ ꂇ‰‡т и умножениfl» мет — ‚ыполнение ‚оз‚е‰ениfl ‚ степень с помощью об‡ботки ‰‚оично„о числ‡ с nb бит‡ми (x0 xnb – 1). Н‡пиме, x = 22 = (10110)2. Вообще, число x может быть з‡пис‡но к‡к x = xnb–1 × 2k–1 + xnb–2 × 2k–2 + ... + x2 × 22 + x1 × 21 + x0 × 20 Тепеь мы можем н‡пис‡ть y = ax, к‡к это пок‡з‡но н‡ ис. 9.6. Об‡тите ‚ним‡ние, что y — поиз‚е‰ение элементо‚ числ‡ n. К‡ж‰ый элемент — либо 1 (если соот‚етст‚ующий бит — 0), либо a2i (если соот‚етст‚ующий бит — 1). Ду„ими слми, элемент уч‡ст‚ует ‚ умножении, если бит — 1, или не уч‡ст‚ует, если бит — 0 (умножение н‡ 1 не менflет числ‡). Рисунок 9.6 ‰‡ет общую и‰ею, к‡к н‡пис‡ть ‡л„оитм. Мы можем непеы‚но ‚з‚о‰ить ‚ ꂇ‰‡т a,a2,a4,…, a2nb–1. Если соот‚етст‚ующий бит — 0, элемент не уч‡ст‚ует ‚ поцессе умножениfl; если бит — 1, то уч‡ст‚ует. Ал„оитм 9.7 от‡ж‡ет эти ‰‚‡ с‚ойст‚‡. Ал„оитм 9.7. Воз‚е‰ение_‚_ ꂇ‰‡т_и_умножение (a,x,n) { y ← 1 for (¥ ← 0 to nb – 1) //nb — число бит ‚ x { ¥f (x¥ = 1) y ← a × y mod n //умножение, только если бит 1 a ← a2 mod n //‚ после‰ней ите‡ции ‚оз‚е‰ение ‚ степень //не нужно } return y } Ал„оитм 9.7 использует nb ите‡ции. В к‡ж‰ой ите‡ции он по‚еflет зн‡чение соот‚етст‚ующе„о бит‡. Если зн‡чение бит‡ ‡‚но 1, он умнож‡ет текущее зн‡чение н‡ пе‰ы‰ущее зн‡чение езульт‡т‡. З‡тем полученный езульт‡т fl‚лfl305
Кус
Киптфиfl и безоп‡сность сетей
етсfl б‡зой ‰лfl сле‰ующей ите‡ции. Об‡тите ‚ним‡ние, что ‚оз‚е‰ение ‚ ꂇ‰‡т ‚ после‰нем ш‡„е не нужно (езульт‡т не используетсfl). Пиме 9.45 Рисунок 9.7 пок‡зы‚‡ет поцесс ‰лfl по‰счет‡ y = ax с использнием ‡л„оитм‡ 9.7 (‰лfl постоты изоб‡жениfl мо‰ули не пок‡з‡ны). В этом случ‡е x = 22 = (10110)2. Это число имеет 5 бит. Рис. 9.7. Демонст‡циfl ‚ычислениfl a22 с использнием мет «‚оз‚е‰ениfl ‚ ꂇ‰‡т и умножениfl» Воз‚е‰ение ‚ ꂇ‰‡т ‰ел‡етсfl н‡ к‡ж‰ом ш‡„е з‡ исключением после‰не„о. Умножение ‰ел‡етсfl, если соот‚етст‚ующий бит ‡‚ен 1. Н‡ исунке 9.7 пок‡з‡но, к‡к постепенно фомиуетсfl зн‡чение y ‰о зн‡чениfl y = a22. З‡темненный пflмоу„ольник озн‡ч‡ет, что умножение не ‰ел‡етсfl и пе‰ы‰ущее зн‡чение пееноситсfl н‡ сле‰ующий ш‡„. Т‡блиц‡ 9.3 пок‡зы‚‡ет, к‡к ‚ычислflетсfl зн‡чение ‰лfl y = 1722 mod 21. Результ‡т — y = 4. Т‡блиц‡ 9.3. i
xi
0 1 2 3 4
0 1 1 0 1
Умножение (Иници‡лиз‡циfl y = 1) → → → → →
y = 1 × 16 mod 21 =16 y = 16 × 4 mod 21 =1 y = 1 × 4 mod 21 = 4
Воз‚е‰ение ‚ степень (Иници‡лиз‡циfl a = 17) a = 172 mod 21 =16 a = 162 mod 21 = 4 a = 4 2 mod 21 =16 a = 162 mod 21 = 4
Сложность. Ал„оитм 9.7 использует м‡ксим‡льно 2nb ‡ифметических опе‡ций, ‚ котоых nb fl‚лflетсfl ‰линой мо‰улfl ‚ бит‡х (nb = log2n). Сложность ‚ бито‚ых опе‡циflх ‡л„оитм‡ — O(nb) или полиноми‡льн‡fl сложность. Сложность ‡зfl‰ной опе‡ции бысто„о пок‡з‡тельно„о ‡л„оитм‡ — полиноми‡льн‡fl. Альтен‡ти‚ный ‡л„оитм. З‡метим, что ‡л„оитм 9.7 по‚еflет зн‡чение бито‚ ‚ x с‡ н‡ле‚о (от с‡мо„о м뇉ше„о ‰о с‡мо„о ст‡ше„о). Может быть н‡пис‡н ‰у„ой ‡л„оитм, чтобы использть об‡тный поfl‰ок. Мы ‚ыб‡ли ‚ышеупомflнутый ‡л„оитм, потому что опе‡циfl ‚оз‚е‰ениfl ‚ ꂇ‰‡т полностью не燂исим‡ от опе‡ции умножениfl; они мо„ут быть с‰ел‡ны ллельно, чтобы 306
Лекциfl 9
М‡тем‡тик‡ киптфии. Ч‡сть III. Постые числ‡ и у‡‚нениfl с‡‚нениfl
у‚еличить скоость об‡ботки. Альтен‡ти‚ные ‡л„оитмы ост‡‚лflем к‡к уп‡жнение.
Лифм Мы т‡кже ‰олжны обсу‰ить мо‰ульный лифм, котоый используетсfl ‚ киптфии. Если мы пименflем ‚оз‚е‰ение ‚ степень ‰лfl то„о, чтобы з‡шифть или ‡сшифо‚ы‚‡ть сообщение, поти‚ник может использть лифм ‰лfl ‡скытиfl это„о сообщениfl Мы ‰олжны зн‡ть, ту‰но ли получить опе‡цию, поти‚оположную ‚оз‚е‰ению ‚ степень. Полный пеебо Пе‚ое ешение, котоое мо„ло бы пийти н‡ ум, ‰лfl ешениfl x = loga y (mod n): мы можем н‡пис‡ть ‡л„оитм, котоый непеы‚но ‚ычислflет y = ax mod n, пок‡ не н‡хо‰ит 燉‡нное зн‡чение y. Ал„оитм 9.8 пок‡зы‚‡ет этот по‰хо‰. Ал„оитм 9.8. Ал„оитм полно„о пеебо‡ ‰лfl мо‰ульно„о лифм‡ Modular_Logar¥thm (a, y, n} { for (x = 1 to n — 1) { ¥f (y ≡ ax mod n) return x } return fa¥lure }
// k число бит ‚ x
Ал„оитм 9.8 fl‚но очень неэффекти‚ен. Сложность ‡зfl‰ной опе‡ции — O (2nb) или пок‡з‡тельн‡fl. Дискетный лифм Втоой по‰хо‰ состоит ‚ том, чтобы использть понflтие ‰искетно„о лифм‡. Р‡ссмотение это„о понflтиfl тебует изучениfl некотоых с‚ойст‚ мультиплик‡ти‚ных „упп. Конечн‡fl мультиплик‡ти‚н‡fl „упп‡. В киптфии мы ч‡сто используем мультиплик‡ти‚ную конечную „уппу: G = , ‚ котоой пименflем‡fl опе‡циfl fl‚лflетсfl умножением. Множест‚о Zn* со‰ежит целые числ‡ от 1 ‰о n–1, котоые fl‚лflютсfl ‚з‡имно постыми с n, нейт‡льный элемент — e = 1. Об‡тите ‚ним‡ние, что к‡ мо‰уль „уппы — постое число, мы имеем G = . Эт‡ „упп‡ — специ‡льный случ‡й „уппы пе‚о„о тип‡, т‡к что мы концентиуемсfl н‡ этой „уппе. Поfl‰ок „уппы. В лекции 4 мы обсу扇ли поfl‰ок конечной „уппы |G| ‰лfl то„о, чтобы опе‰елить число элементо‚ ‚ „уппе G. Было ‰ок‡з‡но, что ‚ „уппе 307
Кус
Киптфиfl и безоп‡сность сетей
G = поfl‰ок „уппы (число элементо‚) — число Эйле‡ φ(n). Мы пок‡з‡ли, к‡к ‚ычислить φ(n), к‡ n может быть ‡зложено н‡ множители ‚ ‚и‰е постых чисел. Пиме 9.46 Н‡йти поfl‰ок „уппы G = , |G| = φ (21) = φ (3) × φ (7) = 2 × 6 = 12. В этой „уппе 12 элементо‚: 1, 2, 4, 5, 8, 10, 11, 13, 16, 17, 19 и 20. Все — ‚з‡имно постые с 21. Поfl‰ок элемент‡. В лекции 4 мы т‡кже обсу扇ли поfl‰ок элемент‡ — ord (a). В G = , мы по‰олж‡ем опе‰еление. Поfl‰ок элемент‡ a есть н‡именьшее целое число, т‡кое, что ai ≡ e(mod n). В этом случ‡е нейт‡льный элемент e ‡‚ен 1. Пиме 9.47 Н‡й‰ите поfl‰ок ‚сех элементо‚ ‚ G = . Решение Эт‡ „упп‡ имеет только φ (10) = 4 элемент‡: 1, 3, 7, 9. Мы можем н‡йти поfl‰ок к‡ж‰о„о элемент‡ мето‰ом «поб и ошибок». О‰н‡ко, со„л‡сно езульт‡т‡м лекции 4, поfl‰ок элемент‡ fl‚лflетсfl ‰елителем поfl‰к‡ „уппы (теоем‡ Л‡„‡нж‡). Целые числ‡, котоые ‰елflт 4, — 1, 2 и 4. Это озн‡ч‡ет, что ‚ к‡ж‰ом случ‡е мы ‰олжны по‚еить только эти числ‡ и н‡йти поfl‰ок элемент‡, a. 11 = 1 mod (10) → ord (10) = 1. b. 31 = 3 mod (10); 32 ≡ 9 mod (10); 34 ≡ 1 mod (10) → ord(3) = 4. c. 71 ≡ 7 mod (10); 72 ≡ 9 mod (10); 74 ≡ 1 mod (10) → ord (7) = 4. d. 91 = 9 mod (10); 92 ≡ 1 mod (10) → ord (9) = 2. Теоем‡ Эйле‡. Ду„‡fl теоем‡, относflщ‡flсfl к этому ‚опосу, — это теоем‡ Эйле‡, кото‡fl „о‚оит, что если a fl‚лflетсfl членом G = , то aφ(n) = 1 mod n; Эт‡ теоем‡ очень полезн‡, потому что пок‡зы‚‡ет, что ‡‚енст‚о ai = 1 mod n сох‡нflетсfl, если i = φ (n). З‡метим: это не отиц‡ет, что ‡‚енст‚о может ‚ыпол-
нflтьсfl и если i < φ (n). Ду„ими слми, отношение пок‡зы‚‡ет, что ‡‚енст‚о ‚ыполнflетсfl по меньшей мее о‰н‡ж‰ы. Пиме 9.48 Т‡блиц‡ 9.4 пок‡зы‚‡ет езульт‡т ai = x (mod 8) ‰лfl „уппы G = . Об‡тите ‚ним‡ние, что φ (8) =4. Это элементы — 1, 3, 5 и 7. Т‡блиц‡ 9.4. Н‡хож‰ение поfl‰к‡ элементо‚ ‚ пимее 9.48 308
Лекциfl 9
М‡тем‡тик‡ киптфии. Ч‡сть III. Постые числ‡ и у‡‚нениfl с‡‚нениfl
Т‡блиц‡ 9.4 ‰емонстиует некотоые моменты ‚ычислений. Пе‚ый: з‡темненн‡fl обл‡сть пок‡зы‚‡ет езульт‡т пименениfl теоемы Эйле‡. К‡ i = φ (8) = 4, езульт‡т ‡‚ен x = 1 ‰лfl к‡ж‰о„о a. Втоой момент: т‡блиц‡ пок‡зы‚‡ет, что зн‡чение 1 может быть получено ‰лfl мно„их зн‡чений i — ‚ пе‚ую очее‰ь, зн‡чение i, ‡‚ное поfl‰ку элемент‡ (об‚е‰ено ‚ т‡блице жиной линией). Поfl‰ок элементо‚: ord (1) = 1, ord (3) = 2, ord (5) = 2 и ord (7) = 2. Пе‚ооб‡зные кони. Очень интеесное понflтие ‚ мультиплик‡ти‚ной „уппе — „уппы пе‚ооб‡зно„о конfl, котоые используютсfl ‚ киптфической системе El Gamal (эль Г‡м‡лfl) ‚ лекции 10. В „уппе G = , к‡ поfl‰ок элемент‡ ‡‚ен ϕ (n), этот элемент н‡зы‚‡етсfl пе‚ооб‡зным конем „уппы. Пиме 9.49
Т‡блиц‡ 9.4 пок‡зы‚‡ет, что т‡м нет пе‚ооб‡зных коней G = , потому что ни о‰ин элемент не имеет поfl‰ок, ‡‚ный φ (8) = 4. Поfl‰ок ‚сех элементо‚ — меньше, чем 4. Пиме 9.50 Т‡блиц‡ 9.5 пок‡зы‚‡ет езульт‡т ai ≡ x (mod 7) ‰лfl „уппы G = . В этой „уппе φ (7) = 6. Т‡блиц‡ 9.5. Пиме 9.50 Поfl‰ок элементо‚ – ord (1) = 1, ord (2) = 3, ord (3) = 6, ord (4) = 3, ord (5)= 6 и ord (6) = 1. Т‡блиц‡ 9.5 пок‡зы‚‡ет, что только ‰‚‡ элемент‡, 3 и 5, имеют поfl‰ок ‚ i = φ(n) = 6 . Поэтому эт‡ „упп‡ имеет только ‰‚‡ пимити‚ных конfl: 3 и 5. Было ‰ок‡з‡но, что „упп‡ G = имеет пимити‚ный коень, только если n = 2, 4, pt, или 2pt, ‚ котоой p fl‚лflетсfl нечетным постым числом (не 2) и t — целое число. Гупп‡ G = имеет пимити‚ные кони, только если n ‡‚но 2, 4, pt или 2pt. Пиме 9.51 309
Кус
Киптфиfl и безоп‡сность сетей
Длfl к‡ко„о зн‡чениfl n „упп‡ G = имеет пимити‚ные кони: 17, 20, 38 и 50? Решение a. G = имеет пимити‚ные кони, потому что 17 — постое число (pt, „‰е t ‡‚но 1). b. G = не имеет ник‡ких пимити‚ных коней. c. G = имеет пе‚ооб‡зные кони, потому что 38 = 2 × 19 и 19 — постое число. d. G = имеет пе‚ооб‡зные кони, потому что 50 = 2 × 52, ‡ 5 — постое число. Если „упп‡ имеет пимити‚ный коень, то обычно т‡ких коней несколько. Число пимити‚ных коней может быть ‚ычислено к‡к — φ (φ (n)). Н‡пиме, число пимити‚ных коней G = — это φ (φ (n)) = φ (16) = 8. Об‡щ‡ем ‚ним‡ние, что нужно сн‡ч‡л‡ по‚еить, имеет ли „упп‡ к‡кой-либо пимити‚ный коень, пеж‰е чем н‡хо‰ить число коней. Если „упп‡ G = имеет хотfl бы о‰ин пимити‚ный коень, то число пимити‚ных коней — φ (φ (n)). Р‡ссмотим ти ‚опос‡. 1. Если ‰‡н элемент a и „упп‡ G = , к‡к можно опе‰елить, fl‚лflетсfl ли a пимити‚ным конем G? Это не т‡к‡fl ле„к‡fl 燉‡ч‡. ‡. Мы ‰олжны н‡йти φ (n), — эт‡ 燉‡ч‡ по сложности по‰обн‡ з‡‰‡че ‡зложениfl н‡ множители числ‡ n. б. Мы ‰олжны н‡йти ord(a) = φ(n). 2. Если ‰‡н‡ „упп‡ G = , к‡к н‡йти ‚се пимити‚ные кони φ? Эт‡ 燉‡ч‡ более ту‰н‡fl, чем п傇fl 燉‡ч‡, потому что мы ‰олжны по‚тоить ‚ычислениfl по п.1.б ‰лfl ‚сей „уппы. 3. Если ‰‡н‡ „упп‡ G = , то к‡к ‚ыби‡ть пимити‚ный коень G? В киптфии мы ‰олжны н‡йти, по к‡йней мее, о‰ин пимити‚ный коень ‚ „уппе. О‰н‡ко ‚ этом случ‡е зн‡чение n ‚ыби‡етсfl пользтелем, и пользтель зн‡ет φ(n). Пользтель побует после‰о‚‡тельно несколько элементо‚, пок‡ не н‡хо‰ит пе‚ый из них. Циклическ‡fl „упп‡. Циклические „уппы уже обсу扇лись ‚ лекции 4. Об‡тите ‚ним‡ние н‡ то, что, если „упп‡ G = имеет пимити‚ные кони, то они циклически по‚тоflютсfl. К‡ж‰ый пимити‚ный коень — „ене‡то и может использтьсfl ‰лfl со片ниfl цело„о н‡бо‡. Ду„ими слми, если g — пимити‚ный коень ‚ „уппе, мы можем „енеить н‡бо Zn* к‡к Zn* = {g1, g2, g3….. gφ(n)} Пиме 9.52
310
Лекциfl 9
М‡тем‡тик‡ киптфии. Ч‡сть III. Постые числ‡ и у‡‚нениfl с‡‚нениfl
Гупп‡ G = имеет ‰‚‡ пимити‚ных конfl, потому что φ (10) = 4 и φ (φ (10))= 2. Можно н‡йти пимити‚ные кони - это 3 и 7. Ниже пок‡з‡но, к‡к можно со片ть целый н‡бо Z10*, использующий к‡ж‰ый пимити‚ный коень. g=3 → g=7 →
g1 mod 10 = 3 g1 mod 10 =7
g2 mod 10 = 9 g3 mod 10 = 7 g4 mod 10 = 1 g2 mod 10 = 9 g3 mod 10 = 3 g4 mod 10 = 1
Об‡тите ‚ним‡ние, что „упп‡ G( Zp*, × ) ‚с儉‡ циклическ‡fl, потому что p — постое. Гупп‡ G = fl‚лflетсfl циклической „уппой, если он‡ имеет пимити‚ные кони. Гупп‡ G = ‚с儉‡ fl‚лflетсfl циклической. И‰еfl ‰искетно„о лифм‡. Гупп‡ G = имеет несколько интеесных с‚ойст‚. 1. Еfi элементы ‚ключ‡ют ‚се целые числ‡ от 1 ‰о p – 1. 2. Он‡ ‚с儉‡ имеет пимити‚ные кони. 3. Он‡ ‚с儉‡ fl‚лflетсfl циклической. Элементы мо„ут быть со片ны с использнием gx, „‰е x — целое число от 1 ‰о φ (n) = p–1. 4. Пимити‚ные кони можно пе‰ст‡‚лflть себе к‡к оснние лифм‡. Если „упп‡ имеет k пимити‚ных коней, то ‚ычислениfl мо„ут быть с‰ел‡ны ‰лfl k ‡зличных оснний. Д‡нный x = logg y ‰лfl любо„о элемент‡ y ‚ ‰‡нном множест‚е, но есть ‰у„ой элемент x, котоый fl‚лflетсfl лифмом y по осннию g. Этот тип лифм‡ н‡зы‚‡ют ‰искетным лифмом. Дискетный лифм ‚ лите‡туе опе‰елflетсfl несколькими ‡зличными сим‚ол‡ми, но мы бу‰ем использть обозн‡чение Lg, чтобы пок‡з‡ть, что оснние — g (с‡‚нение по мо‰улю). Решение мо‰ульно„о лифм‡ с использнием ‰искетных лифмо‚ Тепеь ‡ссмотим, к‡к еш‡ютсfl 燉‡чи тип‡ y = ax (mod n), т. е. ‰‡но y, ‡ мы ‰олжны н‡йти x. Т‡булиние ‰искетных лифмо‚. О‰ин из способо‚ ешениfl ‚ышеупомflнутой поблемы — использть т‡блицу ‰лfl к‡ж‰о„о Zp* и ‡зличных оснний. Этот тип т‡блицы может быть п剂‡ительно ‡ссчит‡н и сох‡нен. Н‡пиме, т‡блиц‡ 9.6 пок‡зы‚‡ет зн‡чениfl ‰искетно„о лифм‡ ‰лfl Z7*. Мы зн‡ем, что есть ‰‚‡ пимити‚ных конfl или оснниfl ‚ ‰‡нном множест‚е. Т‡блиц‡ 9.6. Дискетный лифм ‰лfl G = y x = L3 y x = L5 y
1 6 6
2 2 4
3 1 5
4 4 2
5 5 1
6 3 3
Сост‡‚и‚ т‡блицы ‰лfl ‰у„их ‰искетных лифмо‚ ‰лfl ‚сех „упп и ‚сех ‚озможных оснний, мы можем ешить любую ‰искетную лифмическую 311
Кус
Киптфиfl и безоп‡сность сетей
поблему. Этот по‰хо‰ по‰обен изуч‡емым ‚ пошлом т‡‰иционным лифм‡м. До поfl‚лениfl к‡лькулflтоо‚ и компьютео‚ т‡блицы использлись, чтобы ‚ычислflть лифмы по осннию 10. Пиме 9.53 Н‡й‰ите x ‚ к‡ж‰ом из сле‰ующих случ‡е‚: a. 4 ≡ 3x (mod 7) b. 4 ≡ 3x (mod 7) Решение Мы можем ле„ко пименflть т‡блицу 9.6 ‰искетно„о лифм‡. a. 4 ≡ 3x (mod 7) → L3 4 (mod 7) = 4 mod 7 b. 6 ≡ 5x (mod 7) → L5 6 (mod 7) = 3 mod 7 Использние с‚ойст‚ ‰искетных лифмо‚. Чтобы пок‡з‡ть, что ‰искетные лифмы ‚е‰ут себfl точно т‡к же, к‡к т‡‰иционные лифмы, ‚ т‡блице 9.7 пи‚о‰итсfl несколько с‚ойст‚ обоих типо‚ лифмо‚. Об‡тите ‚ним‡ние, что оснние мо‰улfl — φ (n) ‚место n. Т‡блиц‡ 9.7. С‡‚нение т‡‰иционных и ‰искетных лифмо‚ Т‡‰иционные лифмы loga 1 = 0 loga (x × y) = loga x + logay logaxk = k × loga x
Дискетные лифмы Lg ≡ 0 ( mod φ (n)) Lg(x × y) ≡ (Lg x + Lgy)(mod φ (n)) Lgx ≡ k × Lg x(mod φ (n))
Использние ‡л„оитмо‚, осннных н‡ ‰искетных лифм‡х. Т‡блицы и с‚ойст‚‡ ‰искетных лифмо‚ не мо„ут пименflтьсfl ‰лfl ешениfl у‡‚нениfl y = ax (mod n), к‡ n fl‚лflетсfl очень большим. Длfl ешениfl этой поблемы были ‡з‡бот‡ны несколько ‡л„оитмо‚, ‚ котоых используетсfl осно‚н‡fl и‰еfl ‰искетных лифмо‚. Хотfl ‚се эти ‡л„оитмы более эффекти‚ны, чем ‡л„оитмы полно„о пеебо‡, котоые мы упомин‡ли ‚ н‡ч‡ле это„о ‡з‰ел‡, но ни о‰ин из них не имеет полиноми‡льной сложности. Большинст‚о этих ‡л„оитмо‚ имеет т‡кой же уо‚ень сложности, к‡к поблем‡ ‡зложениfl н‡ множители. Поблем‡ ‰искетно„о лифм‡ имеет т‡кую же сложность, к‡к поблем‡ ‡зложениfl н‡ множители.
9.7. Рекомен‰о‚‡нн‡fl лите‡ту‡ Нижесле‰ующие кни„и и с‡йты ‰‡ют более ‰ет‡льную инфом‡цию о пе‰мет‡х, ‡ссмотенных ‚ этой лекции. Пункты, пи‚е‰енные ‚ ꂇ‰‡тных скобк‡х, со‰еж‡тсfl ‚ списке ‚ конце кни„и.
312
Лекциfl 9
М‡тем‡тик‡ киптфии. Ч‡сть III. Постые числ‡ и у‡‚нениfl с‡‚нениfl
Кни„и |Ros061 [Cou99], [BW00] и [Bla03] — ‰лfl тем, котоые обсу扇ютсfl ‚ этой лекции.
С‡йты Нижесле‰ующие с‡йты ‰‡ют больше инфом‡ции о тем‡х, обсуж‰енных ‚ этой лекции. http://en.wikipedia.org/wiki/Prime_number http://primes.utm.edu/mersenne/ http://en.wikipedia.org/wiki/Primality__test www..cl.cam.ac.uk/~jehl004/research/talks/miller-talk.pdf http://mathworld.wolfram.com/TotientFunction.html http: // en.wikipedia.org/wiki/Proofs_of_Fermat’s_little_theorem faculty.cs.tamu.edu/klappi/629/analytic.pdf
9.8. Ито„и • Положительные целые числ‡ мо„ут быть ‡з‰елены н‡ ти „уппы: число 1, постые числ‡ и сост‡‚ные объекты. Положительное целое число — постое число, т‡кое и только т‡кое, если оно точно ‰елитсfl без ост‡тк‡ н‡ ‰‚‡ ‡зличных целых числ‡, ‡ именно н‡ 1 и непосе‰ст‚енно с‡мо н‡ себfl. Сост‡‚ной объект — положительное целое число по к‡йней мее с ‰‚умfl ‰елителflми. • Эйлео‚ск‡fl phi-функциfl φ(n), котоую ин‡ н‡зы‚‡ют функцией-тотиентом Эйле‡, 脇ет очень ‚‡жную оль ‚ киптфии. Функциfl ук‡зы‚‡ет число целых чисел, котоые меньше чем n и fl‚лflютсfl ‚з‡имно постыми с n. • В т‡блице 9.8 пок‡з‡ны м‡л‡fl теоем‡ Фем‡ и теоем‡ Эйле‡, котоые ‡ссмотены ‚ этой лекции. Т‡блиц‡ 9.8. М‡л‡fl теоем‡ Фем‡ и теоем‡ Эйле‡ Фем‡
Эйле
П傇fl ‚есиfl : Если НОД (a, p) = 1, то a p-1 ≡ 1 (mod p) Вто‡fl ‚есиfl: ap ≡ a (mod p) П傇fl ‚есиfl: Если НОД (a,n) = 1, то aφ(n) = 1 (mod n) Вто‡fl ‚есиfl: Если n= p × q и a
• Чтобы получить большое постое число, мы ‚ыби‡ем большое случ‡йное число и по‚еflем е„о — убе扇емсfl, что оно постое. Ал„оитмы, котоые еш‡ют эту поблему, мо„ут быть ‡з‰елены н‡ ‰‚е обшиные 313
Кус
Киптфиfl и безоп‡сность сетей
•
•
•
•
к‡те„оии: ‰етемининные ‡л„оитмы и ‚еоflтностные ‡л„оитмы. Некотоые ‚еоflтностные ‡л„оитмы ‰лfl испыт‡ниfl постоты чисел – это испыт‡ние Фем‡, испыт‡ние ꂇ‰‡тно„о конfl и испыт‡ние Милле‡-Р‡бин‡. Некотоые ‰етемининные ‡л„оитмы — испыт‡ние н‡ ‰елимости и AKS-‡л„оитм. Со„л‡сно осно‚ной теоеме ‡ифметики, любое положительное целое число, большее, чем 1, может быть ‡зложено н‡ множители ‚ ‚и‰е постых чисел. Мы ‡ссмотели несколько мето‰о‚ ‡зложениfl н‡ множители, ‚ключ‡fl по‚еку ‰елением — Фем‡, мето‰ Пол뇉‡ p – 1, мето‰ РО (ρ) Пол뇉‡, ꂇ‰‡тичное ешето и ешето полfl чисел. Кит‡йск‡fl теоем‡ об ост‡тк‡х (Chinese Reminder Theorem — CRT) используетсfl, чтобы ешить систему у‡‚нений ‰лfl ‚ычето‚ с о‰ной пееменной, но с ‡зличными ‚з‡имно постыми мо‰улflми. Мы ‡ссмотели ешение ꂇ‰‡тично„о с‡‚нениfl по мо‰улю ‚ ‚и‰е посто„о числ‡ и ꂇ‰‡тично„о с‡‚нениfl по сост‡‚ному мо‰улю. О‰н‡ко, если мо‰уль fl‚лflетсfl большим, ешение ꂇ‰‡тично„о с‡‚нениfl по сложности о‰ин‡ко‚о с ‡зложением мо‰улfl н‡ множители. В киптфии пименflетсfl опе‡циfl по мо‰улю — ‚оз‚е‰ение ‚ степень. Длfl бысто„о ‚оз‚е‰ениfl ‚ степень можно использть мето‰ «‚оз‚е‰ениfl ‚ ꂇ‰‡т и умножениfl». Киптфиfl т‡кже ‚ключ‡ет мо‰ульные лифмы. Если ‚оз‚е‰ение ‚ степень пименflетсfl, чтобы з‡шифть или ‡сшифо‚ы‚‡ть инфом‡цию, то поти‚ник может использть лифмы ‰лfl низ‡ции «‡т‡ки». Сложность опе‡ции, об‡тной ‚оз‚е‰ению ‚ степень, ‚елик‡. Хотfl ‚оз‚е‰ение ‚ степень может быть с‰ел‡но с помощью бысто„о ‡л„оитм‡, пименение мо‰ульно„о лифм‡ ‰лfl больших зн‡чений мо‰улfl имеет ту же сложность, что и поблем‡ ‡зложениfl н‡ множители.
9.9. Н‡бо ‰лfl п‡ктики Обзоные ‚опосы 1. Объflсните ‡зницу меж‰у постым числом и сост‡‚ным целым числом. 2. Опе‰елите ‚з‡имно постые числ‡ и их с‚ойст‚‡. 3. Опе‰елите сле‰ующие функции и их пиложениfl: a. π(n) функциfl b. Функциfl (тотиент) Эйле‡ 4. Опе‰елите «ешето Э‡тосфе퇻 и объflсните е„о пиложениfl. 5. Опе‰елите м‡лую теоему Фем‡ и объflсните ее пиложениfl. 6. Опе‰елите теоему Эйле‡ и объflсните ее пиложениfl. 7. Что т‡кое постые числ‡ Месенны? Что т‡кое постые числ‡ Фем‡? 8. Объflсните ‡зницу меж‰у ‰етемининными и ‚еоflтностными ‡л„оитм‡ми ‰лfl опе‰елениfl постых чисел. 9. Пеечислите некотоые ‡л„оитмы ‰лfl ‡зложениfl н‡ множители постых чисел. 10. Опе‰елите кит‡йскую теоему об ост‡тк‡х и ее пиложениfl. 314
Лекциfl 9
М‡тем‡тик‡ киптфии. Ч‡сть III. Постые числ‡ и у‡‚нениfl с‡‚нениfl
11. Опе‰елите ꂇ‰‡тичное с‡‚нение и ‚‡жность ‚ычето‚ (QRs) и не‚ычето‚ (QNRs) ‚ ешении ꂇ‰‡тных у‡‚нений. 12. Опе‰елите ‰искетные лифмы и объflснить их ‚‡жность ‚ ешении лифмических у‡‚нений.
Уп‡жнениfl 1. Используfl ‡ппоксим‡цию, н‡й‰ите: a. число постых чисел меж‰у 100 000 и 200 000. b. число сост‡‚ных целых чисел меж‰у 100 000 и 200 000 c. отношение постых чисел к сост‡‚ным ‚ ‚ышеупомflнутом ‰и‡п‡зоне и с‡‚ните это с тем же с‡мым меж‰у 1 – 10. 2. Н‡й‰ите н‡ибольший постой сомножитель сле‰ующих сост‡‚ных целых чисел: 100, 1000, 10 000, 100 000 и 1 000 000. Т‡кже н‡йти н‡ибольший постой сомножитель 101, 1001, 10 001, 100 001 и 1 000 01. 3. Пок‡жите, что к‡ж‰ое постое число может быть пе‰ст‡‚лено ‚ фоме либо 4 k + 1, либо 4k + 3, „‰е k — положительное целое число. 4. Н‡й‰ите некотоые постые числ‡ ‚ фоме 5 k + 1, 5 k + 2, 5 k + 3 и 5 k + 4, „‰е k: fl‚лflетсfl положительным целым числом. 5. Н‡й‰ите зн‡чение. φ(29), φ (32), φ (80), φ (100) φ (101) 6. Пок‡жите, что 224 – 1 и 216 – 1 – сост‡‚ные числ‡. По‰ск‡зк‡: используйте ‚ы‡жение (a2 – b2). 7. Есть пе‰положение, что к‡ж‰ое целое число, большее, чем 2, может быть пе‰ст‡‚лено к‡к сумм‡ ‰‚ух постых чисел. По‚еьте это пе‰положение ‰лfl 10, 24, 28 и 100. 8. Есть пе‰положение, что сущест‚ует мно„о постых чисел ‚ фоме n2 + 1. Н‡й‰ите некотоые из них. 9. Н‡й‰ите езульт‡ты после использниfl м‡лой теоемы Фем‡: a. 515 mod 13 b. 1518 mod 17 c. 45617 mod 17 d. 145 mod 101 10. Н‡й‰ите, используfl М‡лую теоему Фем‡, езульт‡ты ‚ы‡жений, пи‚е‰енных ниже: a. 5-1 mod 13 b. 15-1 mod 17 c. 27-l mod 41 d. 70-1 mod 101 Об‡тите ‚ним‡ние, что ‚се мо‰ули — постые числ‡. 11. Н‡й‰ите, используfl теоему Эйле‡, езульт‡ты ‚ы‡жений, пи‚е‰енных ниже: a. 12-1 mod 77 b. 16-1 mod 323 c. 20-1 mod 403 d. 44-1 mod 667 315
Кус
Киптфиfl и безоп‡сность сетей
Об‡тите ‚ним‡ние, что 77 = 7 × 11, 323 = 17 × 19, 403 = 31 × 13 и 667 = 23 × 29. 12. Опе‰елите, fl‚лflютсfl ли сле‰ующие числ‡ Месенны постыми числ‡ми: М23, М29 и М31. По‰ск‡зк‡: любой ‰елитель числ‡ Месенны имеет фому 2kp + 1. 13. Пи‚е‰ите некотоые пимеы, чтобы пок‡з‡ть, что если 2n – 1 — постое число, то n — постое число. Этот ф‡кт может использтьсfl ‰лfl по‚еки н‡ постоту? Объflсните, к‡к. 14. Опе‰елите, сколько из сле‰ующих целых чисел пой‰ут испыт‡ние Фем‡ н‡ постоту чисел: 100, 110, 130, 150, 200, 250, 271, 341, 561. Используйте оснние 2. 15. Опе‰елите, сколько из сле‰ующих целых чисел пой‰ут испыт‡ние Милле‡-Р‡бин‡ н‡ постоту чисел: 100, 109, 201, 271, 341, 349. Используйте оснние 2. 16. Используйте екомен‰о‚‡нное испыт‡ние, чтобы опе‰елить, fl‚лflетсfl ли любое из сле‰ующих целых чисел постым числом: 271, 3149, 9673. 17. Используйте a = 2, x = 3 и несколько постых чисел, чтобы пок‡з‡ть, что если p — постое число, то ‚ыполнflетсfl сле‰ующее с‡‚нение: (x – a)p = (xp – a) (mod p). 18. Го‚оflт, что n-ное постое число может быть пиближенно ‚ычислено к‡к pn = n ln n. По‚еьте это н‡ нескольких постых числ‡х. 19. Н‡й‰ите зн‡чение x ‰лfl сле‰ующих н‡боо‚ с‡‚нений, используfl кит‡йскую теоему об ост‡тк‡х. a. x ≡ 2 mod 7, и x ≡ 3 mod 9 b. x ≡ 4 mod 5, и x ≡ 0 mod 11 c. x ≡ 7 mod 13, и x ≡ 11 mod 12 20. Н‡й‰ите ‚есь QRs и QNRs ‚ Z13*, Z17* и Z23*. 21. Используfl ꂇ‰‡тичные ‚ычеты, ешите сле‰ующие с‡‚нениfl: a. x2 ≡ 4 mod 7 b. x2 ≡ 5 mod 11 c. x2 ≡ 7 mod 13 d. x2 ≡ 12 mod 17 22. Используfl ꂇ‰‡тичные ‚ычеты, ешите сле‰ующие с‡‚нениfl: a. x2 ≡ 4 mod 14 b. x2 ≡ 5 mod 10 c. x2 ≡ 7 mod 33 d. x2 ≡ 12 mod 34 23. Н‡й‰ите езульт‡ты пи‚е‰енных ниже ‚ы‡жений, используfl мето‰ «‚оз‚е‰ениfl ‚ ꂇ‰‡т и умножениfl». a. 2124 mod 8 b. 32023 mod 461 c. 173641 mod 2134 d. 200135 mod 2000 24. Длfl „уппы G = : a. Н‡й‰ите поfl‰ок „уппы b. Н‡й‰ите поfl‰ок к‡ж‰о„о элемент‡ ‚ „уппе 316
Лекциfl 9
М‡тем‡тик‡ киптфии. Ч‡сть III. Постые числ‡ и у‡‚нениfl с‡‚нениfl
c. Н‡й‰ите число пе‚ооб‡зных коней ‚ „уппе d. Н‡й‰ите пе‚ооб‡зные кони ‚ „уппе e. Пок‡жите, что „упп‡ fl‚лflетсfl циклической f. Сост‡‚ьте т‡блицу ‰искетных лифмо‚ 25. Используfl с‚ойст‚‡ ‰искетных лифмо‚, пок‡жите, к‡к ешить с‡‚нениfl: a. x5 ≡ 11 mod 17 b. 2x11 ≡ 22 mod 19 c. 5x12 + 6x ≡ 8 mod 23 26. Пусть мы имеем компьюте, ‚ыполнflющий опе‡ции со скоостью 1 миллион бит ‚ секун‰у. Вы хотите з‡т‡тить только 1 ч‡с н‡ испыт‡ние постоты чисел. К‡кое н‡ибольшее число ‚ы можете по‚еить, используfl сле‰ующие мето‰ы, по‚еflющие постоту чисел? a. теоиfl ‰елимости b. AKS-‡л„оитм с. Фем‡ d. из‚лечением ꂇ‰‡тно„о конfl e. Милле‡-Р‡бин‡ 27. Пусть мы имеем компьюте, ‚ыполнflющий опе‡ции со скоостью 1 миллион бит ‚ секун‰у. Вы хотите пот‡тить только 1 ч‡с н‡ ‡зложение сост‡‚но„о цело„о числ‡. К‡кое н‡ибольшее число ‚ы можете ‡зложить н‡ множители, используfl сле‰ующие мето‰ы ‡зложениfl н‡ множители? a. по‚ек‡ ‰елением b. Фем‡ c. Пол뇉‡ (РО) d. ꂇ‰‡тичное ешето e. ешето полfl чисел 28. Мето‰ «‚оз‚е‰ениfl ‚ ꂇ‰‡т и умножениfl» — быстый ‡л„оитм ‚оз‚е‰ениfl ‚ степень — поз‚олflет н‡м ост‡н‡‚л肇ть пмму, если зн‡чение оснниfl ст‡но‚итсfl ‡‚ным 1. Измените ‡л„оитм 9.7, чтобы пок‡з‡ть это. 29. Пеепишите ‡л„оитм 9.7, чтобы по‚еить биты ‚ поfl‰ке от с‡мо„о ст‡ше„о к с‡мому м뇉шему. 30. Мето‰ «‚оз‚е‰ениfl ‚ ꂇ‰‡т и умножениfl» — быстый ‡л„оитм ‚оз‚е‰ениfl ‚ степень — может т‡кже быть споектио‚‡н ‰лfl по‚еки, fl‚лflетсfl ли число четным или нечетным, ‚место то„о чтобы по‚еflть е„о ‡зfl‰ы. Пеепишите ‡л„оитм 9.7, чтобы пок‡з‡ть это. 31. Н‡пишите ‡л„оитм ‚ пс傉око‰е ‰лfl испыт‡ниfl постоты чисел по мето‰у Фем‡. 32. Н‡пишите ‡л„оитм ‚ пс傉око‰е ‰лfl испыт‡ниfl постоты чисел мето‰ом из‚лечениfl ꂇ‰‡тно„о конfl. 33. Н‡пишите ‡л„оитм ‚ пс傉око‰е ‰лfl кит‡йской теоемы об ост‡тк‡х. 34. Н‡пишите ‡л„оитм ‚ пс傉око‰е, чтобы н‡йти ‚ычет (QR) и не‚ычет (QNR) ‰лfl любо„о Zp*. 35. Н‡пишите ‡л„оитм ‚ пс傉око‰е ‰лfl н‡хож‰ениfl пе‚ооб‡зно„о конfl ‰лfl множест‚‡ Zp*. 317
Кус
Киптфиfl и безоп‡сность сетей
Лекциfl 10. Киптфиfl с ‡ссимметичным ключом Цели и со‰еж‡ние Эт‡ лекциfl имеет несколько целей. • Пок‡з‡ть ‡зличиfl меж‰у симметичными и ‡симметично-ключе‚ыми киптфическими систем‡ми. • Пок‡з‡ть «л‡зейки» ‚ о‰ностоонних функциflх (trapdoor One Way Function) пи их использнии ‚ ‡симметично-ключе‚ых киптфических систем‡х. «Л‡зейки» — это секетн‡fl инфом‡циfl, кото‡fl ‰‡ет ‚озможность посто„о об‡тно„о ‚ычислениfl о‰ностоонней функции. • В‚ести ‡нце‚ую киптфическую систему к‡к о‰ну из пе‚ых и‰ей ‚ ‡симметично-ключе‚ой киптфии. • Обсу‰ить киптфическую систему RSA (RIVERST-SHAMIR-ADLEMAN). • Обсу‰ить киптфическую систему Р‡бин‡ (Rabin). • Обсу‰ить киптфическую систему Эль-Г‡м‡лfl (ElGamal). • Обсу‰ить киптосистему н‡ осно‚е мет эллиптических ки‚ых. В этой лекции ‡ссм‡т肇ютсfl несколько ‡симметично-ключе‚ых киптфических систем: RSA (RIVERST-SHAMIR-ADLEMAN), Р‡бин‡ (Rabin), Эль-Г‡м‡лfl (ElGamal), киптосистемa н‡ осно‚е мет эллиптических ки‚ых (ECC — Elliptic Curve Cryptosystem). Обсуж‰ение киптфической системы Диффи-Хеллм‡н‡ (Diffie-Hellman) отложено ‰о лекции 15, потому что это „л‡‚ным об‡зом ‡л„оитм з‡щиты обмен‡ ключ‡ми, ‡ не ‡л„оитм шифниfl/‰ешифниfl. Киптфическ‡fl систем‡ Диффи-Хелм‡н‡ обсу扇етсfl ‚ лекции 15.
10.1. В‚е‰ение В лекциflх 2-8 мы пок‡з‡ли пинципы киптфии с симметичными ключ‡ми. В этой лекции мы н‡чин‡ем обсуж‰ение ‡симметично-ключе‚ой киптфии. Симметичн‡fl и ‡симметично-ключ傇fl киптфии бу‰ут сущест‚ть ллельно и по‰олж‡ть обслуж肇ть общест‚о. Мы ‚еим, что они ‰ополнflют ‰у„ ‰у„‡; пеимущест‚‡ о‰ной компенсиуют не‰ост‡тки ‰у„ой. Концепту‡льные отличиfl меж‰у этими ‰‚умfl систем‡ми б‡зиуютсfl н‡ том, к‡к эти системы сох‡нflют секетность. В киптфии с симметичными ключ‡ми 燉‡ч‡ секетности ‰олжн‡ быть ‡з‰елен‡ меж‰у ‰‚умfl лю‰ьми. В ‡симметично-ключе‚ой киптфии секетность — песон‡льн‡fl 燉‡ч‡ (не‡з‰еленн‡fl); чело‚ек со片ет и сох‡нflет с‚ою собст‚енную т‡йну. В сообщест‚е n лю‰ей пи киптфии с симметичными ключ‡ми ‰лfl сох‡нениfl секетности тебуетсfl n (n – 1)/2 обще‰оступных ключей. В ‡симметично-ключе‚ой киптфии необхо‰имы только n песон‡льных ключей. 318
Лекциfl 10
Нfl ф‡йлfl систем‡ WinFS
Сообщест‚о с количест‚ом уч‡стнико‚ (106) пи киптфии с симметичными ключ‡ми тебло бы 5 × 1011 обще‰оступных ключей; ‡симметично-ключ傇fl киптфиfl тебо‚‡л‡ бы 1 миллион песон‡льных ключей. Киптфиfl с симметичными ключ‡ми б‡зиуетсfl н‡ со‚местном использнии ключей; ‡симметично-ключ傇fl киптфиfl б‡зиуетсfl н‡ песон‡льном ключе. Есть некотоые ‰у„ие ‡спекты безоп‡сности помимо шифниfl, котоые писущи ‡симметично-ключе‚ой киптфии. Они ‚ключ‡ют уст‡но‚ление по‰линности и цифо‚ые по‰писи. Всflкий ‡з, к‡ пиложение б‡зиуетсfl н‡ песон‡льной т‡йне, мы ‰олжны использть ‡симметично-ключе‚ую киптфию. Об‡тим ‚ним‡ние н‡ то, что киптфиfl с симметичными ключ‡ми б‡зиуетсfl н‡ по‰ст‡но‚ке и пеест‡но‚ке сим‚оло‚ (сим‚оло‚ или бит), ‡ ‡симметично-ключ傇fl киптфиfl — н‡ пименении м‡тем‡тических функций к числ‡м. В киптфии с симметичными ключ‡ми исхо‰ный текст и з‡шифнный текст пе‰ст‡‚лflют к‡к комбин‡цию сим‚оло‚. Шифние и ‰ешифние з‰есь — это пеест‡но‚к‡ этих сим‚оло‚ или з‡мен‡ о‰но„о сим‚ол‡ ‰у„им. В ‡симметично-ключе‚ой киптфии исхо‰ный текст и з‡шифнный текст – числ‡; их шифние и ‰ешифние — это м‡тем‡тические функции, котоые пименflютсfl к числ‡м, чтобы со片ть ‰у„ие числ‡. В киптфии с симметичными ключ‡ми сим‚олы пеест‡‚лflютсfl или з‡менflютсfl ‰у„ими; ‚ ‡симметично-ключе‚ой киптфии числ‡ пеоб‡зуютсfl с помощью м‡тем‡тических функций.
Ключи Асимметичн‡fl ключ傇fl киптфиfl использует ‰‚‡ от‰ельных ключ‡: о‰ин секетный (ч‡стный) и о‰ин откытый (обще‰оступный); шифние и ‰ешифние пе‰ст‡‚лflют собой поцесс з‡пи‡ниfl и отпи‡ниfl з‡мко‚ ключ‡ми. В этом случ‡е з‡мок, з‡петый откытым ключом ‰оступ‡, можно отпееть только с соот‚етст‚ующим секетным ключом. Рисунок 10.1 пок‡зы‚‡ет, что если Алис‡ з‡пи‡ет з‡мок откытым ключом ‰оступ‡ Боб‡, то только секетный ключ Боб‡ может отпееть е„о.
Общ‡fl и‰еfl Рисунок 10.2 пок‡зы‚‡ет общую и‰ею ‡симметично-ключе‚ой киптфии пи использнии ‰лfl шифниfl. В бу‰ущих лекциflх мы у‚и‰им ‰у„ие пиложениfl ‡симметично-ключе‚ой киптфии. К‡к пок‡зы‚‡ют исунки, ‚ отличие от киптфии с симметичными ключ‡ми пи ‡симметично-ключе‚ой киптфии ключи отлич‡ютсfl: сущест‚ует секетный ключ и откытый 319
Кус
Киптфиfl и безоп‡сность сетей
ключи ‰оступ‡. Хотfl ‚ некотоых кн脇х используют темин ключ з‡секеч肇ниfl ‚место темин‡ секетный ключ, мы бу‰ем пользтьсfl темином ключ з‡секеч肇ниfl только ‰лfl системы с симметичными ключ‡ми и темином секетный ключ и откытый ключ ‰оступ‡ — ‰лfl ‡симметично-ключе‚ой киптфии. Мы ‰‡же пименим ‡зличные сим‚олы, чтобы пок‡з‡ть ти ‡зличных тип‡ ключей. О‰н‡ из пичин ‡зницы ‚ темин‡х — х‡‡кте ключ‡ з‡секеч肇ниfl, используемо„о ‚ киптфии с симметичными ключ‡ми, отлич‡етсfl от х‡‡кте‡ секетно„о ключ‡, пименflемо„о ‚ ‡симметично-ключе‚ой киптфии.
Рис.10.1. З‡кытие и откытие ‚ ‡симметично-ключе‚ой киптосистеме Пе‚ый ключ ‡бот‡ет обычно со стокой сим‚оло‚ (н‡пиме, биты), ‚тоой — с числ‡ми или множест‚ом чисел. Ду„ими слми, мы хотим пок‡з‡ть, что ключ з‡секеч肇ниfl не fl‚лflетсfl ‚з‡имоз‡менflемым с секетным ключом; это ‰‚‡ ‡зличных тип‡ секетности. Рисунок 10.2 иллюстиует несколько ‚‡жных ф‡кто‚. Пе‚ый: по‰чек肇ет ‡симметичный х‡‡кте киптфической системы. От‚етст‚енность з‡ обеспечение безоп‡сности н‡хо‰итсfl, „뇂ным об‡зом, н‡ плеч‡х пиемник‡ (‚ ‰‡нном случ‡е это Боб). Боб ‰олжен со片ть ‰‚‡ ключ‡: о‰ин секетный (ч‡стный) и о‰ин откытый (обще‰оступный). Боб не несет от‚етст‚енность з‡ ‡спе‰еление откыто„о ключ‡ ‰оступ‡ ‚сему сообщест‚у. Это может быть с‰ел‡но чеез к‡н‡л ‡спе‰елениfl откыто„о ключ‡ ‰оступ‡. Хотfl этот к‡н‡л не обflз‡н обеспеч肇ть секетность, он ‰олжен обеспечить уст‡но‚ление по‰линности и целостность инфом‡ции о ключе. Е‚‡ не ‰олжн‡ иметь ‚озможности ‡спост‡нflть с‚ой откытый ключ сообщест‚у, пе‰ст‡‚лflfl е„о к‡к откытый ключ ‰оступ‡ Боб‡. Поблемы ‡спе‰елениfl откыто„о ключ‡ ‰оступ‡ обсу扇ютсfl ‚ лекции 15. Н‡ ‰‡нный момент мы пиним‡ем, что т‡кой к‡н‡л сущест‚ует. 320
Лекциfl 10
Нfl ф‡йлfl систем‡ WinFS
Рис. 10.2. Общ‡fl и‰еfl ‡симметично-ключе‚ой киптосистемы Втоой ф‡кт: ‡симметично-ключ傇fl киптфиfl озн‡ч‡ет, что Боб и Алис‡ не мо„ут использть о‰но и то же множест‚о ключей ‰лfl ‰‚ухстоонней с‚flзи. К‡ж‰ый объект ‚ сообщест‚е со片ет с‚ой собст‚енный секетный и откытый ключи ‰оступ‡. Рисунок 10.2 пок‡зы‚‡ет, к‡к Алис‡ может использть откытый ключ ‰оступ‡ Боб‡, чтобы пе則ть Бобу з‡шифнные сообщениfl. Если Боб хочет от‚етить, Алис‡ уст‡н‡‚л肇ет с‚ои собст‚енные секетный и откытый ключи ‰оступ‡. Тетий: ‡симметично-ключ傇fl киптфиfl озн‡ч‡ет, что Боб ну扇етсfl только ‚ о‰ном секетном ключе, чтобы получ‡ть ‚сю коеспон‰енцию от любо„о уч‡стник‡ сообщест‚‡. Алис‡ ну扇етсfl ‚ ключ‡х, чтобы с‚flз‡тьсfl с n объект‡ми ‚ сообщест‚е — о‰ин ключ ‰оступ‡ ‰лfl к‡ж‰о„о. Ду„ими слми, Алис‡ ну扇етсfl ‚ кольце ключей ‰оступ‡. Исхо‰ный текст / з‡шифнный текст В отличие от киптфии с симметичными ключ‡ми, ‚ ‡симметичноключе‚ой киптфии исхо‰ный текст и з‡шифнный текст об‡б‡ты‚‡ютсfl к‡к целые числ‡. Сообщение ‰олжно пее‰ шифнием ко‰итьсfl к‡к целое число (или множест‚о целых чисел). После ‰ешифниfl оно ‰олжно быть ‡сшифно к‡к целое число (или множест‚о целых чисел). Асимметично-ключ傇fl киптфиfl обычно з‡шифо‚ы‚‡ет или ‡сшифо‚ы‚‡ет м‡ленькие ч‡сти инфом‡ции, опе‰елflемые ‰линой ключ‡ шиф‡. Ду„ими слми, ‡симметично-ключ傇fl киптфиfl обычно имеет ‚спомтельные цели помимо шифо‚ки сообщениfl. О‰н‡ко эти ‚спомтельные цели се„о‰нfl 脇ют ‚ киптфии очень ‚‡жную оль. Шифние/‰ешифние Шифние и ‰ешифние ‚ ‡симметично-ключе‚ой киптфии — м‡тем‡тические функции, котоые пименflютсfl к числ‡м, пе‰ст‡‚лflющим 321
Кус
Киптфиfl и безоп‡сность сетей
исхо‰ный текст и з‡шифнный текст. З‡шифнный текст можно пе‰ст‡‚лflть себе к‡к C = f (K public, P). Исхо‰ный текст можно пе‰ст‡‚лflть себе к‡к P = g (Kprivate, С). Функциfl f шифниfl используетсfl только ‰лfl шифниfl; функциfl ‰ешифниfl g используетсfl ‰лfl ‰ешифниfl. Д‡лее мы пок‡жем, что функциfl f ну扇етсfl ‚ «л‡зейке» о‰ностоонней функции, чтобы поз‚олить Бобу ‡сшифо‚ы‚‡ть сообщение, но пепflтст‚ть Е‚е ‰ел‡ть то же с‡мое.
Потебность ‚ обеих киптосистем‡х Есть очень ‚‡жный ф‡кт, котоый ин‡ неильно истолко‚ы‚‡етсfl. Поfl‚ление ‡симметично-ключе‚ой киптфии (откытый ключ ‰оступ‡) не уст‡нflет потебность ‚ киптфии с симметичными ключ‡ми (ключ з‡секеч肇ниfl). Пичин‡ ‚ том, что киптфиfl с ‡симметичными ключ‡ми использует м‡тем‡тические функции ‰лfl шифниfl и ‰ешифниfl н‡мно„о ме‰леннее, чем киптфиfl с симметичными ключ‡ми. Длfl шифо‚ ки боль ших со об ще ний кип то „‡ фиfl с сим ме тич ны ми клю ч‡ ми необхо‰им‡. С ‰у„ой стооны, скоость киптфии с симметичными ключ‡ми не уст‡нflет потебность ‚ ‡симметично-ключе‚ой киптфии. Асимметично-ключ傇fl киптфиfl необхо‰им‡ ‰лfl уст‡но‚лениfl по‰линности цифо‚ых по‰писей и ‡боты ст‡нций по ‡ссылке ключей з‡секеч肇ниfl. Это озн‡ч‡ет способность системы использть ‚се ‡спекты безоп‡сности. Се„о‰нfl мы ну扇емсfl ‚ обеих систем‡х киптфии. О‰н‡ киптосистем‡ ‰ополнflет ‰у„ую.
«Л‡зейꇻ ‚ о‰ностоонней функции Г뇂н‡fl и‰еfl ‡симметично-ключе‚ой киптфии — понflтие «л‡зейки» ‚ о‰ностоонней функции. Функции Хотfl понflтие функции зн‡комо из м‡тем‡тики, мы ‰‡‰им неофици‡льное опе‰еление з‰есь. Функциfl — ило, по котоому с‚flзы‚‡ют (отоб‡ж‡ют) о‰ин элемент ‚о множест‚е A, н‡зы‚‡емый ‰оменом, и о‰ин элемент ‚о множест‚е B, н‡зы‚‡емый ‰и‡п‡зоном, к‡к пок‡з‡но н‡ ис. 10.3.
Рис. 10.3. Функциfl отоб‡жениfl ‰омен‡ ‚ ‰и‡п‡зон 322
Лекциfl 10
Нfl ф‡йлfl систем‡ WinFS
Об‡тим‡fl функциfl — функциfl, кото‡fl с‚flзы‚‡ет к‡ж‰ый элемент ‚ ‰и‡п‡зоне с точно о‰ним элементом ‚ ‰омене. О‰ностооннflfl функциfl (OWF — One Way Function) — функциfl, кото‡fl об뇉‡ет сле‰ующими ‰‚умfl с‚ойст‚‡ми: 1. f ‚ычислflетсfl посто. Ду„ими слми, пи ‰‡нном x может быть ле„ко ‚ычислен y = f (x). 2. f -1 ‚ычислflетсfl ту‰но. Ду„ими слми, пи ‰‡нном y, ‚ычислить x= f ~1 (y) неосущест‚имо. «Л‡зейꇻ ‚ о‰ностоонней функции «Л‡зейꇻ ‚ о‰ностоонней функции (TOWF — Trapdoor One Way) — о‰ностооннflfl функциfl с тетьим с‚ойст‚ом: 3. Пи ‰‡нном y и ло‚ушке (секетной) x может быть ле„ко ‚ычислен. Пиме 10.1 К‡ n fl‚лflетсfl большим, n = p × q — о‰ностооннflfl функциfl. Об‡тите ‚ним‡ние, что ‚ этой функции x — котеж1 (p, q) ‰‚ух постых чисел, ‡ y ‚ ‰‡нном случ‡е — это n. Пи 燉‡нных p и q ‚с儉‡ посто ‚ычислить n. Пи ‰‡нном n очень ту‰но ‚ычислить p и q. Это — поблем‡ ‡зложениfl н‡ множители, котоую мы ‡ссм‡т肇ли ‚ Лекции 9. В этом случ‡е ‰лfl н‡хож‰ениfl функции f -1 нет ешениfl с полиноми‡льным ‚еменем. Пиме 10.2 К‡ n fl‚лflетсfl большим, функциfl y = xk mod n — «л‡зейꇻ ‚ о‰ностоонней функции. Пи 燉‡нных x, k и n посто ‚ычислить y, пименflfl ‡л„оитм бысто„о ‚оз‚е‰ениfl ‚ степень, котоый мы обсу扇ли ‚ лекции 9. Пи 燉‡нных y, k и n очень ту‰но ‚ычислить x. Это — поблем‡ ‰искетно„о лифм‡, котоую мы обсу扇ли ‚ лекции 9. В этом случ‡е нет ешениfl с полиноми‡льным ‚еменем ‰лfl функции f -1. О‰н‡ко если мы зн‡ем «л‡зейку» и k’ , т‡кое, что k × k’ = 1 mod φ(n), мы можем использть x = yk mod n, чтобы н‡йти x. Это — из‚естный ‡л„оитм (RSA — Riverst-Shamir-Adelman), котоый бу‰ет ‡ссмотен позже ‚ этой лекции.
Р‡нц傇fl киптосистем‡, П傇fl блестflщ‡fl и‰еfl относительно киптфии откыто„о ключ‡ ‰оступ‡ пи퇉лежит Мекелю и Хеллм‡ну — он‡ изложен‡ ‚ их ‡нце‚ой киптосистеме. Хотfl эт‡ систем‡ не퇉ежн‡ ‚ соот‚етст‚ии с се„о‰нflшними ст‡н‰‡т‡ми, „뇂н‡fl ее и‰еfl ‰‡ет ‚озможность понflть со‚еменные киптосистемы с откытым ключом, котоые бу‰ут ‡ссм‡т肇тьсfl позже ‚ этой лекции. Если н‡м „о‚оflт, к‡кие элементы 燇нее опе‰еленно„о множест‚‡ чисел мы имеем, то можно ле„ко ‚ычислить сумму чисел. Если н‡м „о‚оflт сумму, то ту‰но ск‡з‡ть, к‡кие элементы «н‡хо‰flтсfl ‚ ‡нце». 1
Котеж — после‰о‚‡тельность конечно„о числ‡ элементо‚. 323
Кус
Киптфиfl и безоп‡сность сетей
Опе‰еление Пе‰положим, что н‡м ‰‡ны ‰‚‡ k-котеж‡, a = [a1,a2, …,ak] и x = [x1,x2, …,xk]. Пе‚ый котеж — 燇нее опе‰еленное множест‚о; ‚тоой котеж, ‚ котоом x ‡‚ен только 0 или l, опе‰елflет, к‡кие элементы a ‰олжны быть отбошены ‚ ‡нце. Сумм‡ элементо‚ ‚ ‡нце ‡‚н‡ s = knapsackSum (a, x) = x1 a1 + x2 a2 + ... + xkak По ‰‡нным a и x посто ‚ычислить s. О‰н‡ко по ‰‡нному s ту‰но н‡йти x. Ду„ими слми, s = knapsackSum (x, a) ‚ычислflетсfl посто, но x = inv_knapsackSum (s, a) ту‰ен. Функциfl knapsackSum — о‰ностооннflfl функциfl, если a – общий kкотеж. Супеу‚еличение котеж‡ Посто ‚ычислить knapsackSum и inv_knapsackSum, если k-котеж супеу‚елич肇етсfl. В супеу‚елич肇ющемсfl котеже ai ≥ a1 + a2 + ... + ai-1. Ду„ими слми, к‡ж‰ый элемент (коме a1) больше или ‡‚ен сумме ‚сех пе‰ы‰ущих элементо‚. В этом случ‡е мы ‚ычислflем knapsackSum и inv_knapsackSum, к‡к пок‡з‡но ‚ Ал„оитме 10.1. Ал„оитм inv_knapsackSum з‡пуск‡етсfl от н‡ибольше„о элемент‡ и по‰олж‡ет поцесс к н‡именьшему. В к‡ж‰ой ите‡ции он по‚еflет, н‡хо‰итсfl ли элемент ‚ юкз‡ке. Ал„оитм 10.1. knapsacksum и inv_knapsackSum ‰лfl супеу‚елич肇юще„осfl k-котеж‡ knapsackSum (x[1,…,k], a[1,…,k] ) { s ← 0 for (¥=1 to k) { s ← s + a¥ × x¥ }
return x }
Inv_knapsackSum (s, a[1,…,k]) { for (¥=k down to 1) { ¥f s ≥ aj { x¥ ← 1 s ← s - a¥ } else x¥ ← 0 } return x[1,…,k] }
Пиме 10.3 К‡к очень ти‚и‡льный пиме, пе‰положим, что ‰‡ны a = [17, 25, 46, 94, 201, 400] и s = 272. Т‡блиц‡ 10.1 пок‡зы‚‡ет, к‡к н‡йти котеж, используfl поце‰уу inv_knapsackSum ‚ ‡л„оитме 10.1. 324
Лекциfl 10
Нfl ф‡йлfl систем‡ WinFS
Т‡блиц‡ 10.1. Зн‡чениfl i, a и x ‚ пимее 10.3 i 6 5 4 3 2 1
ai 400 201 94 46 25 17
s 272 272 71 71 25 0
s ≥ ai false true false true true false
xi x6=0 x5 = 1 x4 = 0 x3 = 1 x2 = 1 x1 = 0
s ← s-ai × xi 272 71 71 25 0 0
В этом случ‡е x = [0, 1, 1,0, 1,0], — это озн‡ч‡ет, что ‚ юкз‡ке н‡хо‰flтсfl 25, 46 и 201. Секетн‡fl с‚flзь с использнием ‡нц‡ Посмотим, к‡к Алис‡ может пе則ть секетное сообщение Бобу, использующему ‡нце‚ую киптосистему. И‰еfl пок‡з‡н‡ н‡ ис. 10.4.
Рис. 10.4. Секетн‡fl с‚flзь с использнием ‡нце‚ой киптосистемы Гене‡циfl ключей Этот поцесс: ‡. Со片ет супеу‚елич肇ющийсfl k-котеж b = [b1, b2,..., bk]. б. Выби‡ет мо‰уль n, т‡кой, что n > b 1 + b2 + ... + bk. ‚. Выби‡ет случ‡йное целое число r, котоое fl‚лflетсfl ‚з‡имно постым с n и 1 ≤ r ≤ n – 1. „. Со片ет ‚еменный k-котеж t = [t1, t2,…….. tk] , ‚ котоом ti = r × bi mod n. 325
Кус
Киптфиfl и безоп‡сность сетей
‰. Выби‡ет пеест‡но‚ку k-объекто‚ и н‡хо‰ит но‚ый котеж a = permute(t). е. Откытый ключ k-котеж‡ — a. Секетный ключ — n, r и k-котеж b. Шиф‡циfl Пе‰положим, что Алисе 퇉о посл‡ть сообщение Бобу. ‡. Алис‡ пеоб‡зует с‚ое сообщение ‚ k-котеж x=[x1, x2,…. xk] , ‚ котоом xi — либо 0, либо 1. Котеж пе‰ст‡‚лflет собой исхо‰ный текст. б. Алис‡ использует knapsackSum ‰лfl ‚ычислениfl s ‚ к‡чест‚е исхо‰но„о текст‡. Дешиф‡циfl ‡. Боб получ‡ет з‡шифнный текст s. б. Боб ‚ычислflет s’ = r -1 × s mod n. ‚. Боб пеест‡‚лflет x’ ‰лfl то„о, чтобы н‡йти x. Котеж x есть ‚осст‡но‚ленный исхо‰ный текст. Пиме 10.4 Это ти‚и‡льный (очень ле„ко ‡скы‚‡емый пиме). Он пи‚о‰итсfl только ‰лfl то„о, чтобы пок‡з‡ть поце‰уу. 1. Гене‡циfl ключей: a. Боб со片ет супеу‚елич肇ющийсfl котеж b = [7, 11, 19, 39, 79, 157, 313]. b. Боб ‚ыби‡ет мо‰уль n = 900 и r = 37, и [4 2 5 3 1 7 6] к‡к т‡блицу пеест‡но‚ок. c. Боб тепеь ‚ычислflет котеж t = [259, 407, 703, 543, 223, 409, 781]. d. Боб тепеь ‚ычислflет котеж a = пеест‡но‚к‡ (t)= [543, 407, 223, 703, 259, 781, 409]. e. Боб объfl‚лflет a; он сох‡нflет ‚ т‡йне n, r и b. 2. Пе‰положим, что Алис‡ хочет пе則ть е‰инст‚енный сим‚ол «g» Бобу. a. Он‡ использует пе‰ст‡‚ление ASCII н‡ 7 бито‚ «g», (1100111) 2 и со片ет котеж x = [1,1,0,0, 1, 1, 1]. Это — исхо‰ный текст. b. Алис‡ ‚ычислflет s = knupsackSum (a, x) = 2165. Это — з‡шифнный текст, пе則‚‡емый Бобу. 3. Боб может ‡сшифть з‡шифнный текст, s = 2165. a. Боб ‚ычислflет s’ = s × r -1 mod n = 2165 × 37-1 mod 900 = 527. b. Боб ‚ычислflет x’ = inv_knapsackSum (s’, b) = [1, 1, 0, 1, 0, 1, 1]. c. Боб ‚ычислflет x = пеест‡но‚к‡ (x’) = [1, 1, 0, 0, 1, 1, 1]. Он интепетиует стоку (1100111) 2 к‡к сим‚ол «g». Л‡зейк‡ Вычисление суммы элементо‚ ‚ ‡нце Алисы — ф‡ктически умножение м‡тицы-стоки x н‡ м‡тицу-столбец a. Результ‡т — м‡тиц‡ s 1 × 1. М‡тичное умножение: s = x × a, ‚ котоом x fl‚лflетсfl м‡тицей-стокой, ‡ a — м‡тиц‡-столбец — о‰ностооннflfl функциfl. По ‰‡нным s и x Е‚‡ не сможет ле„ко н‡йти a. Боб, о‰н‡ко, имеет л‡зейку. Боб использует е„о s’ = r -1 × s и секетную, супеу‚елич肇ющуюсfl м‡тицу-столбец b, чтобы н‡йти м‡тицу-стоку x. Пи этом он 326
Лекциfl 10
Нfl ф‡йлfl систем‡ WinFS
пименflет поце‰уу inv_knapsackSum. Пеест‡но‚к‡ поз‚олflет Бобу н‡йти x по из‚естному x’.
10.2. Киптфическ‡fl систем‡ RSA С‡мый общий ‡л„оитм откыто„о ключ‡ ‰оступ‡ — киптфическ‡fl систем‡ RSА, н‡з‚‡нн‡fl по имени е„о изобет‡телей Ри‚ест‡, Ш‡ми‡, Э‰елм‡н‡ (Rivest, Shamir и Adelman).
В‚е‰ение RSА пименflет ‰‚‡ тип‡ ключей — e и d, „‰е e — откытый, a d — секетный. Пе‰положим, что P — исхо‰ный текст и C — з‡шифнный текст. Алис‡ использует C = Pe mod n, чтобы со片ть з‡шифнный текст C из исхо‰но„о текст‡ P; Боб использует P = Cd mod n, чтобы из‚лечь исхо‰ный текст (ф‡йл), пе則нный Алисой. Мо‰улей n со片етсfl очень большое количест‚о с помощью поцесс‡ „ене‡ции ключей, котоый мы обсу‰им позже. Длfl шифниfl и ‰ешифниfl пименflют ‚оз‚е‰ение ‚ степень по мо‰улю. К‡к мы уже обсу扇ли ‚ лекции 9, пи использнии бысто„о ‡л„оитм‡ ‚оз‚е‰ение ‚ степень по мо‰улю ‚ыполнимо ‚ полиноми‡льное ‚емfl. О‰н‡ко н‡хож‰ение мо‰ульно„о лифм‡ т‡к же сложно, к‡к и ‡зложение числ‡ по мо‰улю. Длfl не„о нет ‡л„оитм‡ с полиноми‡льным ‚еменем. Это озн‡ч‡ет, что Алис‡ может з‡шифть сообщение обще‰оступным ключом (e) ‚ полиноми‡льное ‚емfl. Боб т‡кже может ‡сшифть е„о ‚ полиноми‡льное ‚емfl (потому что он зн‡ет d). Но Е‚‡ не может ‡сшифть это сообщение, потому что он‡ ‰олжн‡ был‡ бы ‚ычислить коень e-той степени из C с использнием мо‰ульной ‡ифметики. Рисунок 10.5 пок‡зы‚‡ет и‰ею RSA.
Рис. 10.5. Сложность опе‡ций ‚ RSA Ду„ими слми, Алис‡ пименflет о‰ностооннюю функцию (‚оз‚е‰ение ‚ степень по мо‰улю) с л‡зейкой, из‚естной только Бобу. Е‚‡ не зн‡ет л‡зейку, по327
Кус
Киптфиfl и безоп‡сность сетей
этому не может ‡сшифть сообщение. Если к‡-нибу‰ь н‡й‰ут полиноми‡льный ‡л„оитм ‰лfl мо‰улfl ‚ычислениfl конfl e-той степени из n, то ‚оз‚е‰ение ‚ степень по мо‰улю n не бу‰ет больше о‰ностоонней функцией.
Поце‰у‡ Рисунок 10.6 пок‡зы‚‡ет общую и‰ею поце‰уы, используемой ‚ RSA. RSA использует ‚оз‚е‰ение ‚ степень по мо‰улю ‰лfl шифниfl/‰ешифниfl. e Длfl то„о чтобы ‡т‡кть з‡кытый текст, Е‚‡ ‰олжн‡ ‚ычислить √C mod n.
Рис. 10.6. Шифние, ‰ешифние и „ене‡циfl ключей ‚ RSA Д‚е ‡л„еб‡ические стуктуы RSA 燉ейст‚ует ‰‚е ‡л„еб‡ических стуктуы: кольцо и „уппу. Кольц‡ шифниfl/‰ешифниfl. Шифние и ‰ешифние с‰ел‡ны с использнием коммут‡ти‚но„о кольц‡ R = с ‰‚умfl ‡ифметическими опе‡циflми: сложение и умножение. В RSA это кольцо обще‰оступно, потому что мо‰уль n обще‰оступен. Любой может посл‡ть сообщение Бобу, пименflfl это кольцо ‰лfl шифниfl. Гуппы „енеиниfl ключей. RSA использует мультиплик‡ти‚ную „уппу G = ‰лfl „ене‡ции ключей. Гупп‡ пеж肇ет только умножение и ‰еление (мультиплик‡ти‚ную ин‚есию), котоые необхо‰имы ‰лfl то„о, чтобы со片ть откытые и секетные ключи. Эту „уппу 퇉о скыть, потому что ее мо‰уль φ(n) fl‚лflетсfl секетным. Мы у‚и‰им, что если Е‚‡ н‡й‰ет этот мо‰уль, он‡ сможет ле„ко ‡т‡кть киптфическую систему. 328
Лекциfl 10
Нfl ф‡йлfl систем‡ WinFS
RSA использует ‰‚е ‡л„еб‡ических стуктуы: откытое кольцо R = и секетную „уппу G = . Гене‡циfl ключей Боб использует ш‡„и, пок‡з‡нные ‚ ‡л„оитме 10.2, чтобы со片ть с‚ои откытый и секетный ключи. После „ене‡ции ключей Боб объfl‚лflет котеж (e, n) к‡к с‚ой откытый ключ ‰оступ‡: Боб сох‡нflет d к‡к с‚ой секетный ключ. Боб может отк‡з‡тьсfl от p, q и ϕ(n); они не мо„ут изменить е„о секетный ключ, не изменflfl мо‰уль. Длfl безоп‡сности екомен‰уетсfl ‡зме ‰лfl к‡ж‰о„о посто„о p или q — 512 бит (почти 154 ‰есflтичные цифы). Это опе‰елflет ‡зме мо‰улfl, n 1024 бит‡ (309 циф). Ал„оитм 10.2. RSA-„ене‡циfl ключей RSA Key_Generat¥on (RSA- „ене‡циfl ключ‡) { Выб‡ть ‰‚‡ больших постых p and q, т‡ких, что p ≠ q. n ← p x q φ(n) ← (p-1) x (q –1) Выб‡ть e, т‡кое, что 1 < e < φ(n) и e — ‚з‡имно постое с φ(n) d ← e-1 mod ϕ (n) // d – это ин‚есиfl e по мо‰улю φ(n) Откытый ключ ← (e, n) // Объfl‚лflетсfl откытым Секетный ключ ← d // Сох‡нflетсfl ‚ секете return Publ¥c_key and Pr¥vate_key // Во炇т откыто„о и секетно„о // ключей } В RSA котеж (e, n) — откытый ключ ‰оступ‡; целое число d — секетный ключ. Шифние Пе則ть сообщение Бобу может любой, используfl е„о откытый ключ ‰оступ‡. Шифние ‚ RSA может быть ‚ыполнено с использнием ‡л„оитм‡ с полиноми‡льной сложностью по ‚емени, к‡к пок‡з‡но ‚ ‡л„оитме 10.3. Быстый ‡л„оитм ‚оз‚е‰ениfl ‚ степень был ‡ссмотен ‚ лекции 9. Р‡зме исхо‰но„о текст‡ ‰олжен быть меньше чем n; если ‡зме исхо‰но„о текст‡ больше, то он ‰олжен быть ‡з‰елен н‡ блоки. Ал„оитм 10.3. Шифние RSA RSA_Encryption (P, e, n) // P — исхо‰ный текст ‚ Zn и P < n { C ← Fast_Exponentiation (P, e, n) // Вычисление (Pe mod n} return C } 329
Кус
Киптфиfl и безоп‡сность сетей
Дешифние Чтобы ‡сшифть сообщение з‡шифнно„о текст‡, котоое Боб получил ‚ RSA, он может использть ‡л„оитм 10.4. Н‡м пи„о‰итсfl ‡л„оитм с полиноми‡льной сложностью по ‚емени, если ‡зме з‡шифнно„о текст‡ меньше, чем n. Ал„оитм 10.4. Дешифние RSA RSA_Decrypt¥on (C, d, n) //C — з‡шифнный текст ‚ Zn { P <- Fast_Exponent¥at¥on (C, d, n) // Вычисление (Cd mod n) return P }
В RSA p и q ‰олжны быть по к‡йней мее 512 бито‚; n ‰олжны быть по к‡йней мее 1024 бит. Док‡з‡тельст‚о RSА Используfl ‚тоую ‚есию теоемы Эйле‡, кото‡fl обсу扇л‡сь ‚ лекции 9, мы можем ‰ок‡з‡ть, что шифние и ‰ешифние ин‚есны ‰у„ ‰у„у. Если n =: p × q,
Некотоые ти‚и‡льные пимеы Р‡ссмотим некотоые ти‚и‡льные (не퇉ежные) пимеы поце‰уы RSA. Китеии, котоые ‰ел‡ют систему RSА безоп‡сной, бу‰ут обсуж‰ены ‚ более поз‰них ‡з‰ел‡х. Пиме 10.5 Боб ‚ыби‡ет 7 и 11 к‡к p и q и ‚ычислflет n = 7 × 11 = 77. Зн‡чение φ (n) = (7–1) (11 –1) или 60. Тепеь он ‚ыби‡ет ‰‚‡ ключ‡, e и d, из z60*. Если он ‚ыби‡ет e = 13, то d = 37. Об‡тите ‚ним‡ние, что e × d mod 60 = 1 (они ин‚есны ‰у„ ‰у„у). Тепеь пе‰положим, что Алис‡ хочет пе則ть исхо‰ный текст 5 Бобу. Он‡ использует обще‰оступный ключ 13, чтобы з‡шифть 5. 330
Лекциfl 10
Исхо‰ный текст: 5
Нfl ф‡йлfl систем‡ WinFS
C = 513 = 26 mod 77
З‡шифнный текст: 26
Боб получ‡ет з‡шифнный текст 26 и использует секетный ключ 37, чтобы ‡сшифть з‡шифнный текст. З‡шифнный текст: 26
P = от 2637 ‰о 5 mod 77
Исхо‰ный текст 5
Пе則нный Алисой текст получен Бобом к‡к исхо‰ный текст 5 . Пиме 10.6 Тепеь пе‰положим, что ‰у„ой чело‚ек, Джон, хочет пе則ть сообщение Бобу. Джон может пименить откытый ключ ‰оступ‡, объfl‚ленный Бобом (‚еоflтно, н‡ е„о с‡йте), — 13; исхо‰ный текст Джон‡ — 63. Джон ‰ел‡ет сле‰ующие ‚ычислениfl: Исхо‰ный текст: 63
C = 6313 = 28 mod 77
З‡шифнный текст: 28
Боб получ‡ет з‡шифнный текст 28 и использует с‚ой секетный ключ 37, чтобы ‡сшифть з‡шифнный текст. З‡шифнный текст: 28 P = 2837 = 63 mod 77 Исхо‰ный текст: 63 Пиме 10.7 Дженнифе со片ет п‡у ключей ‰лfl себfl. Он‡ ‚ыби‡ет p = 397 и q = 401. Он‡ ‚ычислflет n = 397 × 401= 159197. З‡тем он‡ ‚ычислflет φ(n) = 396 × 400 = 158400. З‡тем он‡ ‚ыби‡ет e = 343 и d = 12007. Пок‡жите, к‡к Тэ‰ может пе則ть сообщение «No» Дженнифе, если он зн‡ет e и n. Решение Пе‰положим, что Тэ‰ хочет пе則ть сообщение «No» Дженнифе. Он изменflет к‡ж‰ый сим‚ол н‡ число (от 00 ‰о 25), сопост‡‚лflет к‡ж‰ой бук‚е число, со‰еж‡щее ‰‚е цифы. З‡тем он с‚flзы‚‡ет ‰‚‡ ко‰инных сим‚ол‡ и получ‡ет четыехзн‡чное число. Исхо‰ный текст — 1314. З‡тем Тэ‰ использует e и n, чтобы
Рис. 10.7. Шифние и ‰ешифние ‚ пимее 10.7 331
Кус
Киптфиfl и безоп‡сность сетей
з‡шифть сообщение. З‡шифнный текст 1314343 = 33677 mod 159197. Дженнифе получ‡ет сообщение 33677 и использует d ключ ‰ешифниfl, чтобы ‡сшифть это сообщение: 3367712007 = 1314 mod 159197. З‡тем Дженнифе ‡сшифо‚ы‚‡ет 1314 к‡к сообщение «No». Рисунок 10.7 пок‡зы‚‡ет этот поцесс.
Ат‡ки RSА До н‡стоflще„о момент‡ не было обн‡ужено ник‡ких ‡зушительных ‡т‡к RSА. Несколько ‡т‡к были пе‰ск‡з‡ны. Они оснны н‡ сл‡бом исхо‰ном тексте, сл‡бом ‚ыбое мет‡ или несоот‚етст‚ующей е‡лиз‡ции. Рисунок 10.8 пок‡зы‚‡ет к‡те„оии потенци‡льных ‡т‡к.
Рис. 10.8. Д臄‡мм‡ ‚озможных ‡т‡к н‡ RSA Ат‡к‡ ‡зложениfl н‡ множители Безоп‡сность RSА б‡зиуетсfl н‡ сле‰ующей и‰ее: мо‰уль н‡столько большой, что ‡зложение н‡ множители ‚ ‡зумное ‚емfl неосущест‚имо. Боб ‚ыби‡ет p и q и ‚ычислflет n = p × q. Число n обще‰оступно, p и q fl‚лflютсfl секетными. Если Е‚‡ сможет ‡зложить н‡ множители n и получить p и q, то он‡ может ‚ычислить φ(n) = (p – 1) (q – 1). З‡тем Е‚‡ т‡ может ‚ычислить d = e-1 mod φ(n), потому что e обще‰оступен. Секетный ключ d — л‡зейк‡, котоую Е‚‡ может использть, чтобы ‡сшифть з‡шифнное сообщение. К‡к мы узн‡ли ‚ лекции 9, есть мно„о ‡л„оитмо‚ ‡зложениfl н‡ множители, но ни о‰ин из них не может н‡йти сомножители большо„о цело„о числ‡ с полиноми‡льной сложностью ‚емени. Длfl то„о чтобы обеспечить безоп‡сность, RSA тебует, чтобы n был больше чем 300 ‰есflтичных циф. Это озн‡ч‡ет, что мо‰уль ‰олжен быть по к‡йней мее 1024 бит‡. Д‡же пи использнии мощней332
Лекциfl 10
Нfl ф‡йлfl систем‡ WinFS
ше„о и с‡мо„о бысто„о компьюте‡, ‰оступно„о н‡ се„о‰нfl, ‡зложение н‡ множители цело„о числ‡ т‡ко„о ‡зме‡ тебует неосущест‚имо большо„о ‚емени. Это озн‡ч‡ет, что RSA безоп‡сен, пок‡ не бу‰ет н‡й‰ен эффекти‚ный ‡л„оитм ‡зложениfl н‡ множители. Ат‡к‡ с ‚ыбокой з‡шифнно„о текст‡ Потенци‡льн‡fl ‡т‡к‡ RSА б‡зиуетсfl н‡ мультиплик‡ти‚ном с‚ойст‚е RSA. Пе‰положим, Алис‡ со片ет з‡шифнный текст C = Pe mod n и пе則ет C Бобу. Т‡кже пе‰положим, что Боб ‡сшифует поиз‚ольный з‡шифнный текст ‰лfl Е‚ы – С1, отличный от C. Е‚‡ пеех‚‡ты‚‡ет C и использует сле‰ующие ш‡„и, чтобы н‡йти P: ‡. Е‚‡ ‚ыби‡ет случ‡йное целое число X ‚ Z n*. б. Е‚‡ ‚ычислflет Y = C × Xe mod n. ‚. Е‚‡ пе則ет Y Бобу ‰лfl ‰ешифниfl и получ‡ет Z = Yd mod n; это ш‡„ ‡т‡ки ‚ыбокой з‡шифнно„о текст‡. „. Е‚‡ может ле„ко н‡йти P, потому что Z = Yd mod n = (C × Xe)d mod n = (Cd × Xed ) mod n = (Cd × X) mod n = (P × X) mod n Z = (P × X) mod n → P=Z × X-1 mod n Е‚‡ пименflет ‡сшиенный е‚кли‰о‚ ‡л„оитм ‰лfl то„о, чтобы н‡йти мультиплик‡ти‚ную ин‚есию X, и ‚ конечном счете зн‡чение P. Ат‡ки н‡ пок‡з‡тель степени шифниfl Чтобы уменьшить ‚емfl шифниfl, можно попыт‡тьсfl использть кооткий ключ шифниfl — м‡лое зн‡чение числ‡ e, н‡пиме, зн‡чение ‰лfl e, т‡кое к‡к e = 3 (‚тоое постое число). О‰н‡ко есть некотоые потенци‡льные ‡т‡ки н‡ пок‡з‡тель пи е„о м‡лом зн‡чении степени шифниfl, котоые мы з‰есь к‡тко обсу扇ем. Эти ‡т‡ки ‚ообще не конч‡ютсfl ‚скытием системы, но они ‚се-т‡ки ‰олжны быть пе‰от‚‡щены. Длfl то„о чтобы сть эти ‚и‰ы ‡т‡к, екомен‰уетсfl использть e = 216 + 1 = 65537 (или постое число, близкое к этому зн‡чению). Ат‡к‡ теоемы Купеcмит‡ (Coppersmith) может быть „뇂ной ‰лfl ‡т‡ки м‡ло„о пок‡з‡телfl степени н‡ ключ шифниfl. Осно‚ное положение этой теоемы: ‰лfl полином‡ f(x) степени e по мо‰улю n, чтобы н‡йти кони, если о‰ин из коней fl‚лflетсfl меньшим чем n1/e, можно использть ‡л„оитм сложности, log n. Эт‡ теоем‡ может быть пименен‡ к RSA-киптосистеме C = f(P) = Pe mod n. Если e = 3 и из‚естны хотfl бы ‰‚е тети бито‚ ‚ исхо‰ном тексте P, ‡л„оитм может н‡йти ‚се биты ‚ исхо‰ном тексте. Ат‡к‡ шиоко‚ещ‡тельной пе則чи может быть н‡ч‡т‡, если о‰ин объект пе則ет о‰но и то же сообщение „уппе получ‡телей с тем же с‡мым ключом шифниfl. Н‡пиме, пе‰положим сле‰ующий сцен‡ий: Алис‡ хочет пе則ть о‰но и то же сообщение тем получ‡телflм с тем же с‡мым обще‰оступным ключом e = 3 и мо‰улflми n1, n2 и n3. 333
Кус
Киптфиfl и безоп‡сность сетей
C1 = P3 mod n1
C2 = P3 mod n 2
C3 = P3 mod n3
Пименflfl кит‡йскую теоему об ост‡тк‡х к этим тем у‡‚нениflм, Е‚‡ может н‡йти у‡‚нение фомы C’ = P3 mod n1n2n3. Это озн‡ч‡ет, что P3 < n1n2n3 и что C’ = P3 еш‡етсfl с помощью обычной ‡ифметики (не мо‰ульной). Е‚‡ может н‡йти зн‡чение C’ = P1/3. Ат‡к‡ с‚flз‡нных меж‰у собой сообщений был‡ обн‡ужен‡ Ф‡нклином Рейтеом (Franklin Reiter). Он‡ может быть к‡тко опис‡н‡ сле‰ующим об‡зом. Алис‡ з‡шифо‚‡л‡ ‰‚‡ исхо‰ных текст‡, P1 и P2, с помощью e = 3 и пе則ет C1 и C2 Бобу. Если P1 с‚flз‡н с P2 линейной функцией, то Е‚‡ может ‚осст‡но‚ить P1 и P2 ‚ ‚ыполнимое ‚емfl ‚ычислениfl. Ат‡к‡ коотко„о списк‡, обн‡уженн‡fl Купесмитом, может быть к‡тко опис‡н‡ сле‰ующим об‡зом. Алис‡ имеет сообщение М ‰лfl пе則чи Бобу. Он‡ з‡писы‚‡ет сообщение и з‡шифо‚ы‚‡ет е„о к‡к сообщение r1, ‡ езульт‡т з‡писы‚‡ет к‡к C1 и пе則ет C1 (Бобу). Е‚‡ пеех‚‡ты‚‡ет C1 и у‰‡лflет е„о. Боб сообщ‡ет Алисе, что он не получил сообщение, т‡к что Алис‡ з‡полнflет сообщение, сн з‡шифо‚ы‚‡ет к‡к сообщение r2 и пе則ет это Бобу. Е‚‡ т‡кже пеех‚‡ты‚‡ет и это сообщение. Е‚‡ тепеь имеет C1 и C2, и он‡ зн‡ет, что об‡ з‡шифнных текст‡ пи퇉леж‡т о‰ному и тому же исхо‰ному тексту. Купесмит ‰ок‡з‡л, что если r1 и r2 кооткие, то Е‚‡ способн‡ ‚осст‡но‚ить пе‚он‡ч‡льное сообщение М. Ат‡ки пок‡з‡телfl степени ‰ешиф‡ции Д‚е фомы ‡т‡к мо„ут быть по‚е‰ены н‡ пок‡з‡тель степени ‰ешиф‡ции: ‡т‡к‡ ‡скытой степени ‰ешиф‡ции и ‡т‡к‡ м‡ло„о пок‡з‡телfl степени ‰ешифции. Они обсу扇ютсfl ниже. Ат‡к‡ ‡скыто„о пок‡з‡телfl степени ‰ешиф‡ции. Оче‚и‰но, что если Е‚‡ может н‡йти пок‡з‡тель степени ‰ешиф‡ции, d, он‡ сможет ‡сшифть текущее з‡шифнное сообщение. О‰н‡ко н‡ этом ‡т‡к‡ не ост‡н‡‚л肇етсfl. Если Е‚‡ зн‡ет зн‡чение d, он‡ может использть ‚еоflтностный ‡л„оитм (не обсу扇емый з‰есь) к числу n и н‡йти зн‡чениfl p и q. Сле‰о‚‡тельно, если Боб изменит только у„ож‡ющий безоп‡сности пок‡з‡тель степени ‰ешифниfl, но сох‡нит тот же с‡мый мо‰уль n, Е‚‡ сможет ‡сшифть бу‰ущие сообщениfl, потому что он‡ сможет ‡зложить н‡ множители n. Поэтому если Боб узн‡ет, что пок‡з‡тель степени скомпометин, он ‰олжен ‚ыб‡ть но‚ое зн‡чение ‰лfl p и q, ‚ычислить n и со片ть полностью но‚ые секетный и откытый ключи ‰оступ‡. В RSA, если пок‡з‡тель степени d скомпометин, т‡ p, q, n, e и d ‰олжны быть с„енеины з‡но‚о. Ат‡к‡ м‡ло„о зн‡чениfl пок‡з‡телfl степени ‰ешиф‡ции. Боб может по‰ум‡ть, что использние м‡ло„о зн‡чениfl степени секетно„о ключ‡ d пи‚о‰ит к более быстой ‡боте ‡л„оитм‡ ‰ешиф‡ции. Вине пок‡з‡л, что ‚ случ‡е d < 1/3n1/4 334
Лекциfl 10
Нfl ф‡йлfl систем‡ WinFS
‚озможен специ‡льный тип ‡т‡ки, осннной н‡ цепной ‰оби, — тем‡, кото‡fl ‡ссм‡т肇етсfl ‚ теоии чисел. Этот тип ‡т‡ки может пе„нуть иску безоп‡сность RSА. Длfl то„о чтобы это поизошло, ‰олжно ‚ыполнflтьсfl усло‚ие, что q < p < 2q; если эти ‰‚‡ усло‚иfl сущест‚уют, Е‚‡ может ‡зложить n н‡ сомножители ‚ полиноми‡льное ‚емfl. В RSA екомен‰о‚‡но, что d ‰олжно иметь ‚еличину d ≥ 1/3 n1/4, чтобы пе‰от‚‡тить ‡т‡ку м‡ло„о зн‡чениfl ключ‡ ‰ешиф‡ции. Ат‡ки исхо‰но„о текст‡ Исхо‰ный текст и з‡шифнный текст ‚ RSA — это пеест‡но‚ки ‰у„ ‰у„‡, потому что это целые числ‡ ‚ том же с‡мом инт傇ле (от 0 ‰о n – 1). Ду„ими слми, Е‚‡ уже зн‡ет кое-что об исхо‰ном тексте. Эти х‡‡ктеистики мо„ут поз‚олить некотоые ‡т‡ки исхо‰но„о текст‡. Ти ‡т‡ки были уже упомflнуты ‚ лите‡туе: ‡т‡к‡ коотко„о сообщениfl, ‡т‡к‡ циклическо„о по‚тоениfl и fl‚н‡fl ‡т‡к‡. Ат‡к‡ коотко„о сообщениfl. В ‡т‡ке коотко„о сообщениfl, если Е‚‡ зн‡ет множест‚о ‚озможных исхо‰ных тексто‚, то ей из‚естн‡ еще о‰н‡ инфом‡циfl и ‰ополнительный ф‡кт, что з‡шифнный текст — пеест‡но‚к‡ исхо‰но„о текст‡. Е‚‡ может з‡шифть ‚се ‚озможные сообщениfl, пок‡ езульт‡т не бу‰ет со‚‡ть с пеех‚‡ченным з‡шифнным текстом. Н‡пиме, если из‚естно, что Алис‡ посыл‡ет число с четыьмfl циф‡ми Бобу, Е‚‡ может ле„ко испыт‡ть числ‡ исхо‰но„о текст‡ 0000 к 9999, чтобы н‡йти исхо‰ный текст. По этой пичине кооткие сообщениfl ‰олжны быть ‰ополнены случ‡йными бит‡ми ‚ н‡ч‡ле и конце, чтобы сть этот тип ‡т‡ки. Н‡стоflтельно екомен‰уетсfl з‡полнflть исхо‰ный текст случ‡йными бит‡ми пеж‰е н‡ч‡л‡ шифниfl. З‰есь используетсfl мето‰, н‡зы‚‡емый OAEP, котоый бу‰ет позже обсуж‰ен ‚ этой лекции. Ат‡к‡ циклическо„о по‚тоениfl постоен‡ н‡ ф‡кте, что если пеест‡‚лflть з‡шифнный текст (пеест‡но‚к‡ исхо‰но„о текст‡), то непеы‚ное шифние з‡шифнно„о текст‡ ‚ конечном счете кончитсfl исхо‰ным текстом. Ду„ими слми, если Е‚‡ непеы‚но шифует пеех‚‡ченный з‡шифнный текст C, он‡ ‚ ито„е получит исхо‰ный текст. О‰н‡ко с‡м‡ Е‚‡ не зн‡ет, к‡ко‚ исхо‰ный текст, т‡к что ей неиз‚естно, к‡ по‡ ост‡но‚итьсfl. Он‡ ‰олжн‡ пойти о‰ин ш‡„ ‰‡лее. К‡ он‡ получ‡ет з‡шифнный текст C сн, он‡ ‚о炇щ‡етсfl н‡ о‰ин ш‡„, чтобы н‡йти исхо‰ный текст. Пеех‚‡ченный з‡шифнный текст C C1 = Ce mod n C 2 = C1 e mod n ……………….. Ck = Ck-1 e mod n ->, если Ck = C, ост‡но‚к‡: исхо‰ный текст – P = Ck-1 Может ли это быть сеьезной ‡т‡кой н‡ киптосистему RSA? Пок‡з‡но, что сложность ‡л„оитм‡ эк‚肇лентн‡ сложности ‡зложениfl н‡ множители n. Ду335
Кус
Киптфиfl и безоп‡сность сетей
„ими слми, нет ник‡ко„о эффекти‚но„о ‡л„оитм‡, котоый может 燂ешить эту ‡т‡ку ‚ полиноми‡льное ‚емfl, если n fl‚лflетсfl большим. Я‚н‡fl ‡т‡к‡ сообщениfl. Ду„‡fl ‡т‡к‡, кото‡fl б‡зиуетсfl н‡ отношениflх пеест‡но‚ки меж‰у исхо‰ным текстом и з‡шифнным текстом, — fl‚н‡fl ‡т‡к‡ сообщениfl. Я‚ное сообщение — сообщение, котоое з‡шифно с‡мо ‚ себfl (не может быть скыто). Было ‰ок‡з‡но, что есть ‚с儉‡ некотоые сообщениfl, котоые шифуютсfl с‡ми ‚ себfl. Поскольку ключ шифниfl обычно нечетен, имеютсfl некотоые исхо‰ные тексты, котоые з‡шифны с‡ми ‚ себfl, т‡кие к‡к P = 0 и P = 1. Но если ключ шифо‚ки ‚ыб‡н тщ‡тельно, число их незн‡чительно. Пмм‡ шифо‚ки может ‚с儉‡ по‚еить, fl‚лflетсfl ли ‚ычисленный з‡шифнный текст т‡ким же, к‡к исхо‰ный текст, и отклонить исхо‰ный текст пее‰ пе則чей з‡шифнно„о текст‡. Ат‡ки мо‰улfl Г뇂ной ‡т‡кой RSA fl‚лflетсfl ‡т‡к‡ ‡зложениfl н‡ множители. Ее можно ‡ссм‡т肇ть к‡к ‡т‡ку м‡ло„о мо‰улfl. О‰н‡ко поскольку мы уже обсу‰или эту ‡т‡ку, сконцентиуемсfl н‡ ‰у„ом ‚‡и‡нте: общей ‡т‡ке мо‰улfl. Общ‡fl ‡т‡к‡ мо‰улfl. Он‡ может быть н‡ч‡т‡, если сообщест‚о использует общий мо‰уль, n. Н‡пиме, лю‰и ‚ сообщест‚е мо„ли бы поз‚олить тетьей стооне, котоой они ‰о‚еflют, ‚ыби‡ть p и q, ‚ычислflть n и φ(n) и со片ть п‡у об‡зцо‚ (ei, di) ‰лfl к‡ж‰о„о объект‡. Тепеь пе‰положим, что Алис‡ ‰олжн‡ пееe ‰‡ть сообщение Бобу. З‡шифнный текст Бобу — это C= P B mod n Боб испольe зует с‚ой секетный ключ, dB, чтобы ‡сшифо‚ы‚‡ть сообщение: P= C B mod n. Поблем‡ ‚ том, что Е‚‡ может т‡кже ‡сшифть сообщение, если он‡ — член сообщест‚‡ и ей был‡ н‡зн‡чен‡ п‡‡ об‡зцо‚ (eE и dE), к‡к мы узн‡ли ‚ ‡з‰еле «‡т‡к‡ м‡ло„о зн‡чениfl ключ‡ ‰ешиф‡ции». Используfl с‚ои собст‚енные ключи (eE и dE), Е‚‡ может н‡ч‡ть ‚еоflтностную ‡т‡ку н‡ сомножители n и н‡йти dB Боб‡. Чтобы сть этот тип ‡т‡ки, мо‰уль не ‰олжен быть ‚ со‚местном пользнии. К‡ж‰ый объект ‰олжен ‚ычислить с‚ой собст‚енный мо‰уль. Ат‡ки е‡лиз‡ции Пе‰ы‰ущие ‡т‡ки б‡зились н‡ осно‚ной стуктуе RSА. К‡к пок‡з‡л Дэн Бонех1 (Dan Boneh), есть несколько ‡т‡к е‡лиз‡ции RSА. Мы пи‚е‰ем ‰‚е из них: ‡т‡к‡ ‡н‡лизом ‚емени и ‡т‡к‡ мощности. Ат‡к‡ ‡н‡лизом ‚емени (Timing attack). П‡уль Коче2 (Paul Kocher) ‰емонстио‚‡л ‡т‡ку только з‡шифнно„о текст‡, н‡зы‚‡емую ‡т‡к‡ ‡н‡лизом ‚емени. Ат‡к‡ осно‚‡н‡ н‡ быстом ‡л„оитме с пок‡з‡тельным ‚еменем, котоый ‡ссмотен ‚ лекции 9. Ал„оитм использует только ‚оз‚е‰ение ‚о ‚тоую степень, если соот‚етст‚ующий бит ‚ секетном пок‡з‡теле степени d есть 0; он ис1 2
Ученый, киптф Стенфо‰ско„о Уни‚еситет‡. О‰ин из с‡мых из‚естных и ‡‚тоитетных специ‡листо‚ ‚ обл‡сти киптфии, ‡бот‡ет ‚ Cryptography Research team. 336
Лекциfl 10
Нfl ф‡йлfl систем‡ WinFS
пользуетсfl и пи ‚оз‚е‰ении ‚о ‚тоую степень и умножении, если соот‚етст‚ующий бит — 1. Ду„ими слми, синхониз‡циfl тебует с‰ел‡ть к‡ж‰ую ите‡цию более ‰линной, если соот‚етст‚ующий бит — 1. Эт‡ ‡зность синхониз‡ции поз‚олflет Е‚е н‡хо‰ить зн‡чение бито‚ ‚ d, о‰ин з‡ ‰у„им. Пе‰положим, что Е‚‡ пеех‚‡тил‡ большое количест‚о з‡шифнных тексто‚ от C1 ‰о Cm. Т‡кже пе‰положим, что Е‚‡ н‡блю‰‡л‡, к‡кое количест‚о ‚емени тебуетсfl ‰лfl Боб‡, чтобы ‡сшифть к‡ж‰ый з‡шифнный текст, от T1 ‰о T2 . Е‚‡ зн‡ет, сколько ‚емени тебуетсfl ‰лfl осно‚ных ‡птных се‰ст‚, чтобы ‚ыполнить опе‡цию умножениfl от t1 ‰о tm. (з‰есь t1 — ‚емfl, тебуемое ‰лfl ‚ыполнениfl умножениfl). Результ‡т опе‡ции умножениfl = Результ‡т × Ci mod n. Е‚‡ может пименить ‡л„оитм 10.5, котоый fl‚лflетсfl упощенной ‚есией ‡л„оитм‡, используемо„о п‡ктически ‰лfl ‚ычислениfl ‚сех бит ‚ d (d0 ‰о d k-1). Ал„оитм уст‡н‡‚л肇ет н‡ч‡льное зн‡чение d0 = 1 (потому что d ‰олжен быть нечетным) и ‚ычислflет но‚ые зн‡чениfl ‰лfl Ti’s (‚емfl ‰ешифниfl относитсfl к d1 ‰о dk-1). Ал„оитм з‡тем пе‰по뇄‡ет, что сле‰ующий бит — это 1, и н‡хо‰ит несколько зн‡чений D1 ‰оD2, осно‚ы‚‡flсь н‡ этом пе‰положении. Ал„оитм 10.5. Ат‡к‡ синхониз‡ции RSA_T¥m¥ng_Attack([T1……Tm]) { d0 ← 1 // Потому что d — нечетное Вычислить [t1…..tm] [T1……Tm] ← [T1……Tm] -[t1…..tm] // Обно‚ление T¥ ‰лfl сле‰ующе„о бит‡ for (j from1 to k-1) { Пеесчит‡ть [t1…..tm] // Пеесчет t¥ ‚ пе‰положении, // что сле‰ующий бит — это 1 [D1….Dm] ← [T1……Tm] – [t1…..tm] var ← var¥ance ([D1….Dm]) – var¥ance ([T1……Tm]) ¥f (var >0) dj ← 1 else dj ← 0 [T1……Tm] ← [T1……Tm] – dj × [t1…..tm] // Обно‚ление T¥ // ‰лfl сле‰ующе„о бит‡ } }
Если пинflтое пе‰положение ‚ено, то к‡ж‰ый Di fl‚лflетсfl ‚еоflтно меньшим, чем соот‚етст‚ующее ‚емfl пе則чи Ti. О‰н‡ко ‡л„оитм использует ‰испесию (или ‰у„ие китеии коелflции), чтобы ‡ссмотеть ‚се ‚‡и‡нты Di и Ti. Если ‡зность ‰испесии положительн‡fl, ‡л„оитм пиним‡ет пе‰положение, что сле‰ующий бит ‡‚ен 1 ‚ поти‚ном случ‡е пе‰по뇄‡ет, что сле‰ующий бит — 0. Ал„оитм т‡ ‚ычислflет но‚ые Ti , используfl ‰лfl это„о ост‡‚шиесfl биты. Есть ‰‚‡ мет сть ‡т‡ку ‡н‡лизом ‚емени: 337
Кус
Киптфиfl и безоп‡сность сетей
1. ‰оᇂить случ‡йные 燉ежки к ‚оз‚е‰ению ‚ степень, чтобы к‡ж‰ое ‚оз‚е‰ение ‚ степень з‡ним‡ло о‰но и то же ‚емfl; 2. Ри‚ест екомен‰о‚‡л «ослепление». По этой и‰ее з‡шифнный текст умнож‡етсfl н‡ случ‡йное число пее‰ ‰ешифнием. Поце‰у‡ со‰ежит сле‰ующие ш‡„и: a. Выб‡ть секетное случ‡йное число r меж‰у 1 и (n – 1). b. Вычислить C1 = C × re mod n. d. Вычислить P1 = C1d mod n. e. Вычислить P = P1 × r -1 mod n. Ат‡к‡ ‡н‡лизом мощности по‰обн‡ ‡т‡ке ‡н‡лизом ‚емени. Было пок‡з‡но, что если Е‚‡ может точно измеить мощность, использнную ‚ течение ‰ешифниfl, он‡ может н‡ч‡ть ‡т‡ку ‡н‡лиз‡ мощности н‡ осннии пинципо‚, ‡ссмотенных ‰лfl ‡т‡ки ‡н‡лизом ‚емени. Ите‡ти‚ное умножение и ‚оз‚е‰ение ‚ ꂇ‰‡т потеблflют больше мощности, чем только ите‡ти‚ное ‚оз‚е‰ение ‚ ꂇ‰‡т. Т‡ же с‡м‡fl „упп‡ мето‰о‚, кото‡fl пе‰от‚‡щ‡ет ‡т‡ки ‡н‡лизом ‚емени, может сть ‡т‡ки ‡н‡лиз‡ мощности.
Рекоме퉇ции Сле‰ующие екоме퉇ции оснны н‡ теоетических и экспеимент‡льных езульт‡т‡х. 1. Число бито‚ ‰лfl n ‰олжно быть, по к‡йней мее, 1024. Это озн‡ч‡ет, что n ‰олжно быть пиблизительно 21024, или 309 ‰есflтичных циф. 2. Д‚‡ постых числ‡ p и q ‰олжны к‡ж‰ый быть по к‡йней мее 512 бито‚. Это озн‡ч‡ет, что p и q ‰олжны быть пиблизительно 2512 или 154 ‰есflтичными циф‡ми. 3. Зн‡чениfl p и q не ‰олжен быть очень близки ‰у„ к ‰у„у. 4. p – 1 и q – 1 ‰олжны иметь по к‡йней мее о‰ин большой постой сомножитель. 5. Отношение p/q не ‰олжно быть близко к ‡цион‡льному числу с м‡леньким числителем или зн‡мен‡телем. 6. Мо‰уль n не ‰олжен использтьсfl со‚местно. 7. Зн‡чение e ‰олжно быть 216 + 1 или целым числом, близким к этому зн‡чению. 8. Если поизошл‡ утечк‡ ч‡стно„о ключ‡ d, Боб ‰олжен неме‰ленно изменить n т‡к же, к‡к e и d. Было ‰ок‡з‡но, что зн‡ние n и о‰ной п‡ы (e, d) может пи‚ести к откытию ‰у„их п‡ то„о же с‡мо„о мо‰улfl. 9. Сообщениfl ‰олжны быть ‰ополнены, используfl OAEP, котоый ‡ссм‡т肇етсfl ‰‡лее.
Оптим‡льное ‡симметичное ‰ополнение шифниfl (OAEP — OPTIMAL ASSIMETRIC ENCRYPTION PADDING) К‡к мы упомин‡ли ‡нее, кооткое сообщение ‚ RSA ‰ел‡ет з‡шифнный текст уflз‚имым к ‡т‡к‡м коотко„о сообщениfl. Т‡м же пок‡з‡но, что постое 338
Лекциfl 10
Нfl ф‡йлfl систем‡ WinFS
‰оᇂление фикти‚ных ‰‡нных (‰ополнение) к сообщению з‡ту‰нflет ‡боту Е‚ы, но, пиложи‚ ‰ополнительные усилиfl, он‡ может ‚се еще ‡т‡кть з‡шифнный текст. Решение, пе‰ложенное „уппой RSA и некотоыми ‰у„ими ‡з‡ботчик‡ми, состоит ‚ том, чтобы пименить поце‰уу, н‡з‚‡нную оптим‡льным ‡симметичным ‰ополнением шифниfl (OAEP). Рисунок 10.9 пок‡зы‚‡ет постую ‚есию этой поце‰уы; е‡лиз‡циfl может использть более сложную ‚есию.
Рис. 10.9. Оптим‡льное ‡симметичное ‰ополнение шифниfl (OAEP) И‰еfl, пок‡з‡нн‡fl н‡ исунке 10.9, — это то, что P = P1 || P2, „‰е P1 — з‡м‡скинн‡fl ‚есиfl ‰ополненно„о сообщениfl, М; P2 пе則етсfl, чтобы поз‚олить Бобу н‡йти м‡ску. Шифние. Ниже пок‡з‡ны ш‡„и поцесс‡ шифниfl. 1. Алис‡ ‰ополнflет сообщение, чтобы с‰ел‡ть е„о m-бито‚ым. Мы обозн‡чим е„о М. 2. Алис‡ ‚ыби‡ет случ‡йное число r из k бит. Об‡тите ‚ним‡ние, что r пименflетсfl только о‰н‡ж‰ы и з‡тем уничтож‡етсfl. 339
Кус
Киптфиfl и безоп‡сность сетей
3. Алис‡ использует обще‰оступную о‰ностооннюю функцию G, кото‡fl пиним‡ет целое r-бито‚ое число, и со片ет m-‡зfl‰ное целое число (m — ‡зме‡ М, и r <m). Это — м‡ск‡. 4. Алис‡ пименflет м‡ску, G (r), чтобы со片ть пе‚ую ч‡сть исхо‰но„о текст‡ P1 = M ⊕ G(r) fl‚лflетсfl з‡м‡скинным сообщением. 5. Алис‡ со片ет ‚тоую ч‡сть исхо‰но„о текст‡ P2 = H(P1) ⊕ r. Функциfl H — ‰у„‡fl обще‰оступн‡fl функциfl, кото‡fl пиним‡ет m-бито‚ые ‚хо‰ные сообщениfl и со片ет k-бито‚ые ‚ыхо‰ные сообщениfl. Эт‡ функциfl может быть киптфической хэш-функцией (см. лекцию 12). P2 используетсfl ‰лfl то„о, чтобы ‰‡ть ‚озможность Бобу сн со片ть м‡ску после ‰ешиф‡ции. 6. Алис‡ со片ет C = Pe = (P1 || P2)e и пе則ет C Бобу. Дешифние. Сле‰ующие ш‡„и пок‡зы‚‡ют поцесс ‰ешифниfl: 1. Боб со片ет P = Cd = (P1 || P2). 2. Боб сн‡ч‡л‡ обно‚лflет зн‡чение r, используfl H (P1) ⊕ P2 = H (P1) ⊕ H (P2) ⊕ r = r. 3. Боб пименflет G(r) ⊕ P = G(r) ⊕ G (r) ⊕ М. = М., чтобы обно‚ить зн‡чение ‰ополненно„о сообщениfl. 4. После у‰‡лениfl ‰ополнениfl М, Боб н‡хо‰ит пе‚он‡ч‡льное сообщение. Ошибк‡ ‚ пе則че Если хотfl бы о‰ин бит ‚ течение пе則чи пинflт с ошибкой, текст, з‡шифнный RSA, бу‰ет пинflт неильно. Если полученный з‡шифнный текст отлич‡етсfl от пе則нно„о, пиемник не может опе‰елить пе‚он‡ч‡льный исхо‰ный текст. Исхо‰ный текст, ‚ычисленный н‡ стооне пиемник‡, может очень отлич‡тьсfl от пе則‚‡емо„о пе則тчиком. С則 пе則чи ‰олжн‡ быть ос‚обож‰енной от ошибок з‡ счет ‰оᇂлениfl избыточных бит или обн‡ужениfl и ислениfl ошибки ‚ з‡шифнном тексте. Пиме 10.8 Вот е‡льный пиме. Мы ‚ыби‡ем 512-бито‚ые p и q, ‚ычислflем n и φ(n), з‡тем ‚ыби‡ем e и испыты‚‡ем, что оно ‚з‡имно постое с φ(n). З‡тем мы ‚ычислflем d. Н‡конец, мы пок‡зы‚‡ем езульт‡т шифниfl и ‰ешифниfl. Целое число p — это число со 159 циф‡ми. P=
961303453135835045741915812806154279093098455949962158225831508 796479404550564706384912571601803475031209866660649242019180878 0667421096063354219926661209 Целое число q со‰ежит 160 циф.
q=
12060191957231446918276794204450896001555925054637033936061 798321731482148483764659215389453209175225273226830107120695604 602513887145524969000359660045617 340
Лекциfl 10
Нfl ф‡йлfl систем‡ WinFS
Мо‰уль n = p × q. Это число имеет 309 циф. n=
1159350417396761496889250986461588752377145737545414477548552613 7614788540S32635081727687881596832516846884930062548576411125016 241455233918.292716250765677272746009708271412773043496050055634 7274566628060099924037102991424472292215772798531727033839381334 692684137 327622000966676671831831088373420823444370953 φ (n)= (p – 1) (q – 1) имеет 309 циф.
φ(n) =
115935041739676149688925098646158875237714573754541447754855 261376147885408326350817276878815968325168468849300625485764111 250162414552339182927162507656751054233608492916752034482627988 117554787657013923444405716989581728196098226361075467211864612 171359107358640614008885170265377277264467341066243857664128
Боб ‚ыби‡ет e = 35535 (и‰е‡льно 65537), и испыт‡ние н‡ постое число пок‡зы‚‡ет, что это число и φ(n)— ‚з‡имно постые числ‡. З‡тем Боб н‡хо‰ит ин‚есию e mod φ(n)— это обозн‡ч‡етсfl d. e= d=
35535 58008302S6003776393609366128967791759466906208965096218042286 6111380593852S2235873170628691003002171085904433840217072986908 760061153062025249598844480475682409662470814858171304632406440 777048331340108509473852956450719367740611973265574242372176176 74620776371642 0760033708533328853214470885955136670294831
Алис‡ хочет пе則ть сообщение «THIS IS TEST», котоое может быть пе‰ст‡‚лено число‚ыми зн‡чениflми, используfl схему ко‰иниfl 00-26 (26 — побел). P=
1907081826081826002619041819
Шифнный текст, ‚ычисленный Алисой, — это C = Pe, число‚ое зн‡чение пи‚е‰ено ниже. С=
4753091236462268272063655506105451809423717960704917165232392 430544529606131993285666178434183591141511974112520056829797945 717360361012782188478927415660904800235071907152771859149751884 658886321011483541033616578984679683867637337657774656250792805 2114814184404814184430812773059004692874248559166462108656
Боб может ‚осст‡но‚ить из з‡шифнно„о текст‡ исхо‰ный текст, используfl P = Cd. P=
1907081826081826002619041819 После ‡сшифо‚ки ‚осст‡но‚ленный исхо‰ный текст — «THIS IS TEST». 341
Кус
Киптфиfl и безоп‡сность сетей
Пиложениfl Хотfl RSA может использтьсfl, чтобы з‡шифть и ‡сшифо‚ы‚‡ть е‡льные сообщениfl, это — очень ‰линные сообщениfl ‰лfl RSA. Поэтому он fl‚лflетсfl полезным ‰лfl коотких сообщений. В ч‡стности мы у‚и‰им, что RSA пименflетсfl ‚ цифо‚ых по‰писflх и ‰у„их киптфических систем‡х, котоые нужны ‰лfl шифниfl м‡леньких сообщений без ‰оступ‡ к симметическому ключу. К‡к мы у‚и‰им ‚ после‰ующих лекциflх, RSA т‡кже используетсfl ‰лfl уст‡но‚лениfl по‰линности ‰окумент‡.
10.3. Киптосистем‡ Р‡бин‡ Киптосистем‡ Р‡бин‡ (М. Rabin) fl‚лflетсfl ‚‡и‡нтом киптосистемы RSА. RSА б‡зиуетсfl н‡ ‚оз‚е‰ении ‚ степень с‡‚нений. Киптосистем‡ Р‡бин‡ б‡зиуетсfl н‡ к‚‡‰‡тичных с‡‚нениflх, и ее можно пе‰ст‡‚ить к‡к киптфическую систему RSA, ‚ котоой зн‡чениflм e и d пис‚оены зн‡чениfl e = 2 и d = 1/2. Ду„ими слми, шифние — C ≡ p2 (mod n) и ‰ешифние - P ≡ C1/.2 (mod n). Откытый ключ ‰оступ‡ ‚ киптосистеме Р‡бин‡ — n, секетный ключ fl‚лflетсfl котежем (p, q). К‡ж‰ый может з‡шифть сообщение, используfl n, но только Боб может ‡сшифть сообщение, используfl p и q. Дешифние сообщениfl неосущест‚имо ‰лfl Е‚ы, потому что он‡ не зн‡ет зн‡чениfl p и q. Рисунок 10.10 пок‡зы‚‡ет шифние и ‰ешифние.
Рис. 10.10.Шифние, ‰ешифние и „ене‡циfl ключей ‚ киптосистеме Р‡бин‡ Мы ‰олжны по‰чекнуть, что если Боб пименflет RSA, он может сох‡нить d и n и отк‡з‡тьсfl после „ене‡ции ключей от p, q и φ(n). Если Боб использует киптосистему Р‡бин‡, он ‰олжен сох‡нить p и q. 342
Лекциfl 10
Нfl ф‡йлfl систем‡ WinFS
Поце‰у‡ Гене‡циfl ключей, шифние и ‰ешифние пок‡з‡ны ниже. Гене‡циfl ключей Боб использует ш‡„и, пок‡з‡нные ‚ ‡л„оитме 10.6, чтобы со片ть с‚ой откытый ключ ‰оступ‡ и секетный ключ. Ал„оитм 10.6. Гене‡ции ключей ‰лfl киптосистемы Р‡бин‡ Rab¥n_Key_Generat¥on { Выбеите ‰‚‡ больших постых числ‡ p и q ‚ фоме 4 k +3 и p ≠ q. n ← p×q Откытый_ключ ← n // Может быть объfl‚лен публично Секетный_ключ ← (q, n) // Должен сох‡нflтьсfl ‚ секете return Откытый_ключ и Секетный_ключ } Хотfl ‰‚‡ постых числ‡, p и q, мо„ут быть ‚ фоме 4k + 1 или 4 k + 3, поцесс ‰ешифниfl ст‡но‚итсfl более ту‰ным, если используетсfl п傇fl фом‡. Рекомен‰уют пименflть ‚тоую фому, 4 k + 3, ‰лfl то„о чтобы с‰ел‡ть ‰ешифние ‰лfl Алисы н‡мно„о поще. Шифние Любой может пе則ть сообщение Бобу, пимени‚ е„о откытый ключ ‰оступ‡. Поцесс шифниfl пок‡з‡н ‡л„оитмом 10.7. Ал„оитм 10.7. Шифние ‚ киптфической системе Р‡бин‡ Rab¥n_Encrypt¥on (n, P) { C← P 2mod n return C }
// n — откытый ключ ‰оступ‡; // P — з‡шифнный текст Zn* // C — з‡шифнный текст
Хотfl исхо‰ный текст P может быть ‚ыб‡н из множест‚‡ Zn, но чтобы с‰ел‡ть ‰ешифние более постым, мы опе‰елили множест‚о, котоое н‡хо‰итсfl ‚ Zn*. Шифние ‚ киптосистеме Р‡бин‡ очень постое. Опе‡циfl ну扇етсfl только ‚ о‰ном умножении, что может быть с‰ел‡но бысто. Это ‚ы„о‰но, к‡ есусы ничены: н‡пиме, пи использнии к‡т с инт儇льной схемой, со‰еж‡щей микопоцессо с ниченной п‡мflтью, и пи необхо‰имости 燉ейст‚ть цент‡льный поцессо н‡ кооткое ‚емfl. 343
Кус
Киптфиfl и безоп‡сность сетей
Дешифние Боб может использть ‡л„оитм 10.8, чтобы ‡сшифть полученный з‡шифнный текст. Ал„оитм 10.8. Дешифние ‚ киптосистеме Р‡бин‡ Rab¥n_Decrypt¥on (p, q, C) // C — з‡шифнный текст; { // p и q — секетные ключи a1 ← + (C(p+1)/4) mod p a2 ← - (C(p+1)/4) mod p b1 ← + (C(q+1)/4) mod q b2 ← - (C(q+1)/4) mod q // Ал„оитм кит‡йской теоемы об ост‡тк‡х ‚ызы‚‡етсfl четые ‡з‡. P1 ← Кит‡йский_ост‡ток (a1, b1, p, q) P2 ← Кит‡йский_ост‡ток (a1, b2, p, q) P3 ← Кит‡йский_ост‡ток (a2, b1, p, q) P4 ← Кит‡йский_ост‡ток (a2, b2, p, q) return P1, P2, P3 и P4 } Мы ‰олжны по‰чекнуть з‰есь несколько моменто‚. Дешиф‡циfl б‡зиуетсfl н‡ ешении ꂇ‰‡тично„о с‡‚нениfl, котоое ‡ссмотено ‚ лекции 9. Поскольку полученный з‡шифнный текст — ꂇ‰‡т исхо‰но„о текст‡, это „‡‡нтиует, что C имеет кони (ꂇ‰‡тичные ‚ычеты) ‚ Zn*. Ал„оитм кит‡йской теоемы об ост‡тк‡х используетсfl, чтобы н‡йти четые ꂇ‰‡тных конfl. С‡мый ‚‡жный пункт ‚ киптосистеме Р‡бин‡ — это то, что он‡ не‰етеминин‡. Дешифние имеет четые от‚ет‡. З‡‰‡ч‡ получ‡телfl сообщениfl — точно ‚ыб‡ть о‰ин из четыех от‚ето‚ к‡к конечный от‚ет. О‰н‡ко ‚о мно„их ситу‡циflх получ‡тель может ле„ко ‚ыб‡ть ильный от‚ет. Киптосистем‡ Р‡бин‡ не ‰етеминио‚‡н‡ — ‰ешифние со片ет четые о‰ин‡ко‚о ‚еоflтных исхо‰ных текст‡. Пиме 10.9 Вот очень ти‚и‡льный пиме, чтобы поиллюстить и‰ею. 1. Боб ‚ыби‡ет p = 23 и q = 7. Об‡тите ‚ним‡ние, что об‡ fl‚лflютсfl с‡‚нениflми 3 mod 4. 2. Боб ‚ычислflет n = p × q = 161. 3. Боб объfl‚лflет n откытым и сох‡нflет p и q ‚ секете. 4. Алис‡ хочет пе則ть исхо‰ный текст P = 24. Об‡тите ‚ним‡ние, что 161 и 24 fl‚лflютсfl ‚з‡имно постыми; 24 н‡хо‰итсfl ‚ Z161*. Он‡ ‚ычислflет C = от 242 = 93 mod 161 и пе則ет з‡шифнный текст 93 Бобу. 5. Боб получ‡ет 93 и ‚ычислflет четые зн‡чениfl: ‡. a1 = + (93 (23+1)/4) mod 23 = 1 mod 23 b. a2 = – (93 (23+1)/4) mod 23 = 22 mod 23 с. b 1 = + (93 (7+1)/4) mod 7 = 4 mod 7 344
Лекциfl 10
Нfl ф‡йлfl систем‡ WinFS
d. b2 = – (93 (7+l)/4) mod 7 = 3 mod 7 6. Боб имеет четые ‚озможных от‚ет‡ — (a1, b 1), (a1, b2), (a2, b 1), (a2, b2) и использует кит‡йскую теоему об ост‡тк‡х, чтобы н‡йти четые ‚озможных исхо‰ных текст‡: 116, 24, 137 и 45 (‚се из них ‚з‡имно постые к 161). Об‡тите ‚ним‡ние, что только ‚тоой от‚ет — исхо‰ный текст Алисы. Боб ‰олжен пинflть ешение исхо‰fl из ситу‡ции. Об‡тите ‚ним‡ние т‡кже, что ‚се четые от‚ет‡ пи ‚оз‚е‰ении ‚о ‚тоую степень по мо‰улю n ‰‡ют з‡шифнный текст 93, пе則нный Алисой. 1162 = 93 mod 161
242 = 93 mod 161
1372 = 93 mod 161
452 = 93 mod 161
Безоп‡сность киптфической системы Р‡бин‡ Киптфическ‡fl систем‡ Р‡бин‡ безоп‡сн‡, пок‡ p и q — большие числ‡. Сложность киптфической системы Р‡бин‡ — т‡к‡fl же, к‡к и у поце‰уы ‡зложениfl н‡ множители больших чисел n н‡ ‰‚‡ постых сомножителfl p и q. Ду„ими слми, киптфическ‡fl систем‡ Р‡бин‡ т‡к же безоп‡сн‡, к‡к и RSA.
10.4. Киптфическ‡fl систем‡ Эль-Г‡м‡лfl Помимо RSA и киптфической системы Р‡бин‡ есть ‰у„‡fl киптосистем‡ с откытым ключом Эль-Г‡м‡лfl (ElGamal), кото‡fl н‡з‚‡н‡ по имени ее изобет‡телfl, Т‡хи‡ Эль-Г‡м‡лfl (Taher ElGamal). Киптосистем‡ Эль-Г‡м‡лfl б‡зиуетсfl н‡ с‚ойст‚‡х ‰искетно„о лифм‡, котоый обсу扇лсfl ‚ лекции 9.
Киптфическ‡fl систем‡ Эль-Г‡м‡лfl Н‡ осннии с‚е‰ений лекции 9, если p — очень большое постое число, e1 — пе‚ооб‡зный коень ‚ „уппе G = и r — целое число, т‡ e2 = e1r mod p посто ‚ычислflетсfl с использнием бысто„о пок‡з‡тельно„о ‡л„оитм‡ (мето‰ «‚оз‚е‰ениfl ‚ ꂇ‰‡т и умножениfl»). Но по ‰‡нным e2, e1 и p, не‚озможно ‚ычислить r = loge1e2 mod p (поблем‡ ‰искетно„о лифм‡).
Поце‰у‡ Рисунок 10.11 пок‡зы‚‡ет „ене‡цию ключей, шифние и ‰ешифние ‚ киптосистеме Эль-Г‡м‡лfl. Гене‡циfl ключей Боб использует ш‡„и, пок‡з‡нные ‚ ‡л„оитме 10.9, чтобы со片ть с‚ои обще‰оступный и ч‡стный ключи. 345
Кус
Киптфиfl и безоп‡сность сетей
Рис. 10.11. Гене‡циfl ключей, шифние, и ‰ешифние ‚ киптосистеме Эль-Г‡м‡лfl Ал„оитм 10.9. Гене‡циfl ключей ‚ киптосистеме Эль-Г‡м‡лfl ElGamal_Key_Generat¥on { Выбеите большое постое число p Выбеите d, член‡ „уппы G = , т‡кое, что 1 e2 ← e1d mod p Обще‰оступный_ключ ←(e1, e2, p) // Может быть объfl‚лен публично Ч‡стный_ключ ←-d // Должен сох‡нflтьсfl ‚ секете return Обще‰оступный_ключ и Ч‡стный_ключ } Шифние Любой может пе則ть сообщение Бобу, используfl е„о откытый ключ ‰оступ‡. Поцесс шифниfl пок‡з‡н ‚ ‡л„оитме 10.10. Если пименflетсfl быстый пок‡з‡тельный ‡л„оитм (см. лекцию 9), шифние ‚ киптосистеме Эль-Г‡м‡лfl может т‡кже быть ‚ыполнено по ‚емени с полиноми‡льной сложностью. Дешифние Боб может использть ‡л„оитм 10.11, чтобы ‡сшифть полученное сообщение з‡шифнно„о текст‡. 346
Лекциfl 10
Нfl ф‡йлfl систем‡ WinFS
Ал„оитм 10.10. Шифние ‚ киптосистеме Эль-Г‡м‡лfl ElGamal_Encrypt¥on (e1, e2, p) // { Выбеите случ‡йное целое число r ‚ C1 ← e1r mod p C2 ← (P × e2 r) mod p // // }
P — исхо‰ный текст „уппе G = C1 и C2 – з‡шифнные тексты return C1 и C2
Ал„оитм 10.11. Дешифние ‚ киптосистеме Эль-Г‡м‡лfl ElGamal_Decrypt¥on {d, p, C1, C2) { P ← [C2 (C1d)-1] mod p return P }
// C1 и C 2 — з‡шифнный текст // P — исхо‰ный текст
Сложность ‡зfl‰ной опе‡ции шифниfl или ‰ешифниfl ‚ киптфической системе Эль-Г‡м‡лfl — полиноми‡льн‡fl.
Док‡з‡тельст‚о Киптосистем‡ Эль-Г‡м‡лfl по‚о‰ит ‰ешиф‡цию со„л‡сно ‚ы‡жению C2 × (C1d) -1 . Это ‚ы‡жение может быть по‚еено с помощью по‰ст‡но‚ки P: [C2 × (C1d] -1 mod p = [(e2r × P) × (e 1 rd] –1 mod p = (e1rd) × P × (e1rd) -1 = P Пиме 10.10 Р‡ссмотим ти‚и‡льный пиме. Боб ‚ыби‡ет 11 ‚ к‡чест‚е p. З‡тем он ‚ыби‡ет e1 = 2. Об‡тите ‚ним‡ние, что 2 — пе‚ооб‡зный коень ‚ Z11* (см. пиложение J). З‡тем Боб ‚ыби‡ет d = 3 и ‚ычислflет e2 = e1d = 8. Получены откытые ключи ‰оступ‡ — (2, 8, 11) и секетный ключ — 3. Алис‡ ‚ыби‡ет r = 4 и ‚ычислflет C1 и C2 ‰лfl исхо‰но„о текст‡ 7. Исхо‰ный текст: 7 C1 = e1r mod 11 = 16 mod 11= 5 mod 11 C2 = (P × e2r) mod 11 = (7 × 4096) mod 11 = 6 mod 11l З‡шифнный текст: (5, 6) Боб получ‡ет з‡шифнные тексты (5 и 6) и ‚ычислflет исхо‰ный текст. З‡шифнный текст: [C1 × C2 d)-1] mod 11 = 6 × (53)-1 mod 11 = 6 × 3 mod 11 = 7 mod 11 Исхо‰ный текст: 7 347
Кус
Киптфиfl и безоп‡сность сетей
Пиме 10.11 Вместо то„о чтобы использть P = [C2 × (C1d) –1] mod p ‰лfl ‰ешифниfl, мы можем избеж‡ть ‚ычислениfl мультиплик‡ти‚ной ин‚есии и пименить P = [C2 × C1p-1-d] mod p (см. м‡лую теоему Фем‡ ‚ лекции 9). В Пимее 10.10 мы можем ‚ычислить P = [6 × 511-1-3] mod 11 = 7 mod 11.
Ан‡лиз Очень интеесн‡fl чет‡ киптосистемы Эль-Г‡м‡лfl — то, что Алис‡ со片ет r и сох‡нflет е„о ‚ секете; Боб со片ет d и сох‡нflет е„о ‚ секете. Это з‡ту‰нение киптфической системы может быть ешено сле‰ующим об‡зом. a. Алис‡ пе則ет C2 =[e2r × P] mod p = [(e1rd) × P] mod p. Вы‡жение (e1rd) ‰ейст‚ует к‡к м‡ск‡, кото‡fl скы‚‡ет зн‡чение P. Чтобы н‡йти зн‡чение P, Боб ‰олжен у‰‡лить эту м‡ску. b. Поскольку используетсfl мо‰ульн‡fl ‡ифметик‡, Боб ‰олжен со片ть точную копию м‡ски и ин‚етить ее (мультиплик‡ти‚н‡fl ин‚есиfl), чтобы снflть ‚оз‰ейст‚ие м‡ски. c. Алис‡ пе則ет Бобу C1 = e1r, что fl‚лflетсfl ч‡стью м‡ски. Боб ‰олжен ‚ычислить C1d, чтобы c‰ел‡ть точную копию м‡ски, поскольку C1d = (e1r’) d= (e1 rd). Ду„ими слми, после получениfl точной копии м‡ски Боб ин‚етиует ее и умнож‡ет езульт‡т н‡ C2, чтобы у‰‡лить м‡ску. d. Это можно пе‰ст‡‚ить т‡к, что Боб помет Алисе с‰ел‡ть м‡ску (e1rd), не пок‡зы‚‡fl зн‡чение d (d уже ‚ключено ‚ e2 = e1rd); Алис‡ помет Бобу ‰ел‡ть м‡ску (e1 rd), не ‡скы‚‡fl зн‡чение r (r уже ‚ключено ‚ C1 = e1r).
Безоп‡сность киптосистемы Эль-Г‡м‡лfl Р‡нее были упомflнуты ‰‚е ‡т‡ки н‡ киптосистему Эль-Г‡м‡лfl — ‡т‡ки, осннные н‡ м‡лом зн‡чении мо‰улfl, и ‡т‡ки зн‡ниfl исхо‰но„о текст‡. Ат‡ки м‡ло„о мо‰улfl Если зн‡чение мо‰улfl p не fl‚лflетсfl ‰ост‡точно большим, Е‚‡ может использть некотоые эффекти‚ные ‡л„оитмы, чтобы ешить поблему ‰искетно„о лифм‡ и н‡йти d или r. Если p м‡ло, Е‚‡ может посто н‡йти d = loge1e2 mod p и сох‡нить е„о, чтобы ‡сшифть любое сообщение, пе則‚‡емое Бобу. Это может быть с‰ел‡но е‰инож‰ы и ‡бот‡ть, пок‡ Боб пименflет те же с‡мые ключи. Е‚‡ может т‡кже использть зн‡чение случ‡йно„о числ‡ r, пименflемо„о Алисой ‚ к‡ж‰ой пе則че r = loge1C1 mod p. Об‡ этих случ‡fl по‰чек肇ют, что безоп‡сность киптосистемы Эль-Г‡м‡лfl 燂исит от ешениfl поблемы ‰искетно„о лифм‡ с очень большим мо‰улем. Поэтому екомен‰о‚‡но, что p ‰олжны быть по к‡йней мее 1024 бит‡ (300 ‰есflтичных циф). Ат‡к‡ зн‡ниfl исхо‰но„о текст‡ К‡ Алис‡ беет о‰но и то же зн‡чение случ‡йно„о пок‡з‡телfl степени r ‰лfl то„о, чтобы з‡шифть ‰‚‡ исхо‰ных текст‡ P и P’, Е‚‡ обн‡уж肇ет P’, если он‡ зн‡ет P. Пе‰положим, что C2 = P × (e2r) mod p и C’2 = P’ × (e2r) mod p. Е‚‡ н‡хо‰ит P’, используfl сле‰ующие ш‡„и: 348
Лекциfl 10
Нfl ф‡йлfl систем‡ WinFS
1. (e2r) = C2 × P- 1 mod p. 2. P’ = C’2 × (e2r) -1mod p. Поэтому екомен‰о‚‡но, чтобы Алис‡ б‡л‡ пи к‡ж‰ой пе則че но‚ое зн‡чение r, чтобы сть ‡т‡ки. Чтобы киптосистем‡ Эль-Г‡м‡лfl был‡ безоп‡сной, мо‰уль p ‰олжен со‰еж‡ть по к‡йней мее 300 ‰есflтичных циф, но‚ых ‰лfl к‡ж‰ой шифо‚ки. Пиме 10.12 Вот более е‡льный пиме. Боб использует случ‡йное целое число ‰линой 512 бито‚ (и‰е‡льно — 1024) и целое число p ‰линой 155 циф (и‰е‡л — 300 циф). Боб ‚ыби‡ет e1 и d, з‡тем ‚ычислflет e2, к‡к пок‡з‡но ниже; Боб объfl‚лflет (e1, e2, p) к‡к с‚ой откытый ключ и d к‡к секетный ключ ‰оступ‡. p=
1153489927256167624492531371701433174049009453260983495981434692 19056898698622645932129754737871895144368891765264730936159299937 28061165964347353440008577
e1= d=
2 1007
e2 =
9788641304300918950876685693809773904388006288733768761002206223 32554507074156189212318317704610141673360150884132940857248537703 1582066010072558707455
Алис‡ имеет исхо‰ный текст P = 3200, чтобы пе則ть Бобу. Он‡ ‚ыби‡ет r = 545131, ‚ычислflет C1 и C2 и пе則ет их Бобу. P=
3200
r=
545131
C1 =
8872970693835284710225704714922756631202600672565621250181883514 29417223599712681114105363661705173051581533189165400973736355080 295736788569060619152881
C2 =
7084543330489299445770160123807949995674360218361924469617745069 2124469615516580077945559308034588961440240859952591957920972162 88796813505827795664302950
Боб ‚ычислflет исхо‰ный текст P = C2 × (C1d)-1 mod p = 3200 mod p P=
3200
349
Кус
Киптфиfl и безоп‡сность сетей
Пиложение Киптосистем‡ Эль-Г‡м‡лfl может использтьсfl ‚сflкий ‡з, к‡ может использтьсfl RSA. Он‡ пименflетсfl ‰лfl з‡мены ключей, уст‡но‚лениfl по‰линности, шифниfl и ‰ешифниfl м‡леньких сообщений.
10.5. Киптосистемы н‡ осно‚е мет эллиптических ки‚ых Хотfl RSA и Эль-Г‡м‡ль — безоп‡сные ‡симметично-ключе‚ые киптфические системы, их безоп‡сность обеспеч肇етсfl ценой их больших ключей. Иссле‰о‚‡тели иск‡ли ‡льтен‡ти‚ный мето‰, котоый ‰‡ет т‡кой же уо‚ень безоп‡сности с меньшими ‡зме‡ми ключей. О‰ин из этих песпекти‚ных ‚‡и‡нто‚ — киптосистем‡ н‡ осно‚е мет эллиптических ки‚ых (Elliptic Curve Cryptosystem — ECC). Систем‡ б‡зиуетсfl н‡ теоии эллиптических ки‚ых. Хотfl „лубокое ‡ссмотение этой теоии н‡хо‰итсfl ‚не 燉‡ч и целей н‡шей кни„и, этот ‡з‰ел сн‡ч‡л‡ ‰‡ет очень постое ‚‚е‰ение ‚ ти тип‡ эллиптических ки‚ых, ‡ з‡тем пе‰л‡„‡ет ‡зно‚и‰ности киптфических систем, котоые используют некотоые из этих ки‚ых.
Эллиптические ки‚ые ‚ ‚ещест‚енных числ‡х Эллиптические ки‚ые, котоые непосе‰ст‚енно не с‚flз‡ны с эллипс‡ми, fl‚лflютсfl кубическими у‡‚нениflми ‰‚ух пееменных и обычно пименflютсfl ‰лfl ‚ычислениfl ‰лины ки‚ой ‚ окужности эллипс‡. Общее у‡‚нение ‰лfl эллиптической ки‚ой: y2 + b1xy + b2y = x3 + a1x2 + a2x +a3 Эллиптические ки‚ые ‚ поле ‚ещест‚енных чисел используют специ‡льный кл‡сс фомы эллиптических ки‚ых: y2 = x3 + ax + b В этом случ‡е, если 4a3 + 27b2 ≠ 0, у‡‚нение пе‰ст‡‚лflет несин„улflную эллиптическую ки‚ую; ‚ поти‚оположном случ‡е оно описы‚‡ет син„улflную эллиптическую ки‚ую. Длfl несин„улflной эллиптической ки‚ой у‡‚нение x3 + ax + b = 0 имеет ти отличных конfl (‚ещест‚енных или комплексных); ‰лfl син„улflной у‡‚нение x3 + ax + b = 0 не имеет тех отличных коней. В у‡‚нении, к‡к мы можем ‚и‰еть, л傇fl стоон‡ (y2) имеет степень 2, ‚ то ‚емfl к‡к ‡fl стоон‡ имеет степень 3 (x3). Это озн‡ч‡ет, что „оизонт‡льн‡fl линиfl может пеесек‡ть ки‚ую ‚ тех точк‡х, если ‚се кони ‚ещест‚енные. О‰н‡ко ‚етик‡льн‡fl линиfl может пеесечь ки‚ую с‡мое большее ‚ ‰‚ух точк‡х. 350
Лекциfl 10
Нfl ф‡йлfl систем‡ WinFS
Пиме 10.13 Рисунок 10.12 пок‡зы‚‡ет ‰‚е эллиптические ки‚ые с у‡‚нениflми y2 = x3 – 4x и y2 = x 3 – 1. Об‡ у‡‚нениfl несин„улflны. О‰н‡ко пе‚ое имеет ти ‚ещест‚енных конfl (x = -2, x = 0, и x = 2), но ‚тоое — только о‰ин ‚ещест‚енный коень (x = 1) и ‰‚‡ мнимых. Рис. 10.12. Д‚е эллиптические ки‚ые ‚ поле ‚ещест‚енных чисел Абел傇 „упп‡ Опе‰елим ‡беле‚у (коммут‡ти‚ную) „уппу (см. лекцию 4), использующую точки н‡ эллиптической ки‚ой. Котеж P = (x1, y1) пе‰ст‡‚лflет точку н‡ ки‚ой, если x1 и y1 — коо‰ин‡ты точки н‡ ки‚ой, котоые у‰о‚лет‚оflют у‡‚нению этой ки‚ой. Н‡пиме, точки P = (2,0; 0,0), Q = (0,0; 0,0), R = (–2,0; 0,0), S = (10,0;30,98), и T = (10,0; –30,98) – точки н‡ ки‚ой y2 = x3 – 4x. Об‡тите ‚ним‡ние, что к‡ж‰‡fl точк‡ пе‰ст‡‚лен‡ ‰‚умfl ‚ещест‚енными числ‡ми. По м‡теи‡л‡м лекции 4, ‰лfl со片ниfl ‡беле‚ой „уппы мы ну扇емсfl ‚о множест‚е опе‡ций 퇉 множест‚‡ми и пflти с‚ойст‚‡х, котоым у‰о‚лет‚оflют опе‡ции. В этом случ‡е „упп‡ G = <E, +> — ‡бел傇. Множест‚о. Мы опе‰елим множест‚о к‡к точки н‡ ки‚ой, „‰е к‡ж‰‡fl точк‡ —  ‚ещест‚енных чисел. Н‡пиме, множест‚о E ‰лfl эллиптической ки‚ой y2 = –x3 – 4x пок‡з‡но к‡к E = {(2,0; 0,0), (0,0; 0,0), (-2,0; 0,0), (10,0; 30,98), (10,0,-30,98)...} Опе‡циfl. З‡‰‡нные с‚ойст‚‡ несин„улflной эллиптической ки‚ой поз‚олflют н‡м опе‰елflть опе‡цию сложение точек н‡ ки‚ой. О‰н‡ко мы ‰олжны помнить, что опе‡циfl сложениfl з‰есь отлич‡етсfl от опе‡ции, кото‡fl был‡ опе‰елен‡ ‰лfl целых чисел. Опе‡циfl «сложение ‰‚ух точек н‡ ки‚ой» по‚о‰итсfl, чтобы получить ‰у„ую точку н‡ ки‚ой. R = P + Q, „‰е P = (x1, y1), Q = (x2, y2), и R = (x3, y3) Длfl то„о чтобы н‡йти R н‡ ки‚ой, ‡ссмотим ти случ‡fl, к‡к это пок‡з‡но н‡ ис. 10.13. 351
Кус
Киптфиfl и безоп‡сность сетей
Рис. 10.13. Ти случ‡fl сложениfl н‡ эллиптической ки‚ой
1. В пе‚ом случ‡е ‰‚е точки P = (x1, y1) и Q = (x2, y2) имеют ‡зличные xкоо‰ин‡ты и y-коо‰ин‡ты (x1 ≠ y1 и x2, ≠ y2), к‡к это пок‡з‡но н‡ ис. 10.13a. Линиfl, сое‰инflющ‡fl P и Q, пеесек‡ет ки‚ую ‚ точке, обозн‡ченной R. R есть от‡жение (-R) относительно y-оси. Коо‰ин‡ты точки R, x3 и y3 мо„ут быть н‡й‰ены по н‡клону линии, λ, и з‡тем можно ‚ычислить зн‡чений x3 и y3, к‡к пок‡з‡но ниже: λ = (y2 – y1)/ (x2 – x1) x3 = λ 2 – x2 – x1 y3= λ (x1 – x3) – y1 2. Во ‚тоом случ‡е ‰‚е точки со‚‡ют (R = P + P) , к‡к пок‡з‡но н‡ ис. 10.13b. Н‡клон линии и коо‰ин‡ты точки R мо„ут быть н‡й‰ены, к‡к пок‡з‡но ниже.
x3 =
λ2–
λ = (3x12 – a) /2 y1 x1 – x2 y3= λ (x1 – x3) – y1
3. В тетьем случ‡е ‰‚е точки — ‡‰‰ити‚ные ин‚есии ‰у„ ‰у„‡, к‡к это пок‡з‡но н‡ ис. 10.13c. Если п傇fl точк‡ ‡‚н‡ P = (x1, y1), ‡ ‚то‡fl точк‡ ‡‚н‡ Q = (x1, – y1), линиfl, сое‰инflющ‡fl эти ‰‚е точки, не пеесек‡ет ки‚ую ‚ тетьей точке. М‡тем‡тики „о‚оflт ‚ этом случ‡е, что точк‡ пеесечениfl н‡хо‰итсfl ‚ бесконечности. Они опе‰елflют точку О (см. ис. 10.13с) к‡к точку ‚ бесконечности или нуле‚ую точку, кото‡fl fl‚лflетсfl ‡‰‰ити‚ным нейт‡льным элементом „уппы. С‚ойст‚‡ опе‡ции. К‡ткие опе‰елениfl с‚ойст‚ опе‡ции, к‡к они обсу扇лись ‚ лекции 4: 1. З‡мкнутость. Может быть ‰ок‡з‡но, что сложение ‰‚ух точек, с использнием опе‡ции сложениfl, опе‰еленное ‚ пе‰ы‰ущем ‡з‰еле, со片ет ‰у„ую точку н‡ ки‚ой. 352
Лекциfl 10
Нfl ф‡йлfl систем‡ WinFS
2. Ассоци‡ти‚ность. Может быть ‰ок‡з‡но, что (P + Q) + R = P + (Q + R). 3. Коммут‡ти‚ность. „упп‡, состоflщ‡fl из точек несин„улflной эллиптической ки‚ой, — ‡бел傇 „упп‡. Может быть ‰ок‡з‡но, что P + Q = Q + P. 4. Сущест‚ние нейт‡льно„о элемент‡. А‰‰ити‚ный нейт‡льный элемент ‚ этом случ‡е — нул傇fl точк‡. Ду„ими слми, P + 0 = 0 + P. 5. Сущест‚ние ин‚есии. ʇ扇fl точк‡ н‡ ки‚ой имеет ин‚есию. Ин‚есиfl точки — это ее от‡жение относительно оси x. Ду„ими слми, точки P = (x1,y1) и Q = (x1, – y1) — ин‚есии ‰у„ ‰у„‡; это озн‡ч‡ет, что P + Q = 0. З‡метим, что нейт‡льный элемент — это ин‚есиfl с‡мо„о себfl. Гупп‡ и поле Об‡тите ‚ним‡ние, что пе‰ы‰ущие ‡ссуж‰ениfl к‡с‡ютсfl ‰‚ух ‡л„еб‡ических стукту: „упп‡ и поле. Гупп‡ опе‰елflет множест‚о точек н‡ эллиптической ки‚ой и опе‡ции сложениfl точек. Поле опе‰елflет сложение, ‚ычит‡ние, умножение и ‰еление, пименflющие опе‡ции 퇉 ‚ещест‚енными числ‡ми, котоые необхо‰имы, чтобы н‡йти сложение точек ‚ „уппе.
Эллиптические ки‚ые ‚ GF(p) Н‡ш‡ пе‰ы‰ущ‡fl „упп‡ эллиптической ки‚ой использо‚‡л‡ ‚ещест‚енное поле ‰лfl ‚ычислений сложениfl точек. Киптфиfl тебует мо‰ульной ‡ифметики. Мы опе‰елили „уппу эллиптической ки‚ой с опе‡цией сложениfl, но опе‡циfl н‡ коо‰ин‡т‡х с точк‡ми ‚ ‰‡нном случ‡е есть опе‡циfl ‚ GF(p) с p> 3. В мо‰ульной ‡ифметике точки н‡ ки‚ой не пе‰ст‡‚лflют „‡фы, к‡к это можно было ‚и‰еть н‡ пе‰ы‰ущих исунк‡х, но сох‡нflютсfl те же с‡мые осно‚ные концепции. Мы используем ту же с‡мую опе‡цию сложениfl, но с ‚ычислением по мо‰улю p. В езульт‡те мы получ‡ем эллиптическую ки‚ую Ep (a, b), „‰е p опе‰елflет мо‰уль, и b — коэффициент у‡‚нениfl y2 = x3 + ax + b. Об‡тите ‚ним‡ние, что хотfl зн‡чение x ‚ этом случ‡е от 0 ‰о p, обычно не ‚се точки н‡хо‰flтсfl н‡ ки‚ой. Н‡хож‰ение ин‚есии Ин‚есиfl точки (x, y) ‡‚н‡ (x, – y), „‰е (–y) — ‡‰‰ити‚н‡fl ин‚есиfl y. Н‡пиме, если p = 13, ин‚есиfl (4, 2) ‡‚н‡ (4, 11). Н‡хож‰ение точек н‡ ки‚ой Ал„оитм 10.12 пок‡зы‚‡ет пмму ‚ пс傉око‰е ‰лfl н‡хож‰ениfl точек н‡ ки‚ой Ep (a, b). Ал„оитм 10.12. Пмм‡ н‡ пс傉око‰е ‰лfl н‡хож‰ениfl точек н‡ эллиптической ки‚ой Ell¥pt¥c_po¥nts (p, a, b) { x ← 0 wh¥le (x
// p-мо‰уль
353
Кус
Киптфиfl и безоп‡сность сетей
¥f (w – целое зн‡чение ꂇ‰‡тно„о конfl ‚ Zp) ‚ыхо‰ (x, √w)(x, – √w) x ← x + 1
//w – это y2
}
} Пиме 10.14 Опе‰елите эллиптическую ки‚ую E13 (1, 1) по у‡‚нению y2 = x3 + x + 1 и ‚ычислите по мо‰улю 13. Точки н‡ ки‚ой мо„ут быть н‡й‰ены, к‡к пок‡з‡но н‡ ис. 10.14. Рис. 10.14. Точки н‡ эллиптической ки‚ой ‚ поле GF (p) Об‡тите ‚ним‡ние н‡ сле‰ующее. ‡. Некотоые зн‡чениfl y2 не имеют ꂇ‰‡тно„о конfl по мо‰улю 13. Они не fl‚лflютсfl точк‡ми н‡ этой эллиптической ки‚ой. Н‡пиме, точки x = 2, x = 3, x = 6 и x = 9 не н‡хо‰flтсfl н‡ ки‚ой. б. ʇ扇fl точк‡, опе‰еленн‡fl н‡ ки‚ой, имеет ин‚есию. Ин‚есии пеечислены к‡к п‡ы. З‡метим, что (7, 0) — ин‚есиfl с‡мой себfl. ‚. Об‡тите ‚ним‡ние, что ‰лfl п‡ы об‡тных точек зн‡чениfl y — ‡‰‰ити‚ные ин‚есии ‰у„ ‰у„‡ ‚ Zp. Н‡пиме, 4 и 9 — ‡‰‰ити‚ные ин‚есии ‚ Z13. Т‡к что мы можем ск‡з‡ть, что если 4 — это зн‡чение y, то зн‡чение (–y) ‡‚но 9. „. Ин‚есии н‡хо‰flтсfl н‡ тех же с‡мых ‚етик‡льных линиflх. Сложение ‰‚ух точек Мы используем „уппу эллиптической ки‚ой, опе‰еленную ‡нее, но ‚ычислениfl с‰ел‡ны ‚ GF (p). Вместо ‚ычит‡ниfl и ‰елениfl мы пименflем ‡‰‰ити‚ные и мультиплик‡ти‚ные ин‚есии. Пиме 10.15 354
Лекциfl 10
Нfl ф‡йлfl систем‡ WinFS
Сложим ‰‚е точки ‚ пимее 10.14, R = P + Q, „‰е P = (4, 2) и Q = (10,6). ‡. X = (6 – 2) x (10 – 4) -1 mod 13 = 4 x 6-1 mod 13 = 5 mod 13. б. x = (52 – 4 – 10) mod 13 = 11 mod 13. ‚. y = [5 (4 – 11) – 2] mod 13 = 2 mod 13. „ . R = (11, 2) fl‚лflетсfl точкой н‡ ки‚ой ‚ пимее 10.14. Умножение точки н‡ конст‡нту В ‡ифметике умножение числ‡ н‡ конст‡нту k озн‡ч‡ет пиᇂление числ‡ с‡мо к себе k ‡з. З‰есь ситу‡циfl т‡ же с‡м‡fl. Умножение точки P н‡ эллиптической ки‚ой н‡ конст‡нту k озн‡ч‡ет пиᇂление точки P к себе k ‡з. Н‡пиме, ‚ E13 (1, 1), если точк‡ (1, 4) умнож‡етсfl н‡ 4, езульт‡т есть точк‡ (5, 1). Если точк‡ (8,1) умнож‡етсfl н‡ 3, езульт‡т — точк‡ (10, 7).
Эллиптические ки‚ые ‚ GF(2n) Вычисление ‚ „уппе эллиптической ки‚ой может быть опе‰елено ‚ поле GF(2n). В соот‚етст‚ии с лекцией 4, „‰е мы „о‚оили, что элементы множест‚‡ ‚ этом поле — n-бито‚ые сл, котоые можно интепетить к‡к полиномы с коэффициентом ‚ GF(2), сложение и умножение этих элементо‚ т‡кое же, к‡к сложение и умножение полиномо‚. Длfl то„о чтобы опе‰елить эллиптическую ки‚ую ‚ GF(2n), необхо‰имо только изменить кубическое у‡‚нение. Общее у‡‚нение y2 + xy = x3 + ax2 + b „‰е b ≠ 0. Об‡тите ‚ним‡ние, что зн‡чение x, y, a и b — полиномы, пе‰ст‡‚лflющие n-бито‚ые сл. Н‡хож‰ение ин‚есии Если P = (x, y), то (–P) = (x, x + y). Н‡хож‰ение точек н‡ ки‚ой Мы можем н‡пис‡ть ‡л„оитм ‰лfl н‡хож‰ениfl точек н‡ ки‚ой, используfl „ене‡тоы ‰лfl полиномо‚, котоые ‡ссм‡т肇ли ‚ лекции 7. Но ‡з‡ботку это„о ‡л„оитм‡ ост‡‚лflем к‡к уп‡жнение. Д‡лее сле‰ует очень ти‚и‡льный пиме. Пиме 10.16 Мы ‚ыби‡ем GF (2 3) с элемент‡ми (0,1, g, g2, g3, g 4, g5, g6), использующими непи‚о‰имый полином f (x) = x3 + x +1. Этому соот‚етст‚ует полином g3 + g +1 = 0 или g3 = g + 1. Ду„ие степени g мо„ут быть ‚ычислены, к‡к это пок‡з‡но ниже. 0 1 g g2
000 001 010 100
g3 = g + 1 g 4= g2 + g g5 = g2 + g + 1 g6 = g2+ 1
001 110 111 101
Используfl эллиптическую ки‚ую y2 + xy = x3 + g3x2 + 1, a = g3 и b = 1, мы можем н‡йти точки н‡ этой ки‚ой, к‡к это пок‡з‡но н‡ исунке 10.15. 355
Кус
Киптфиfl и безоп‡сность сетей
Рис. 10.15. Точки н‡ эллиптической ки‚ой ‚ GF (2n)
Сложение ‰‚ух точек П‡‚ил‡ ‰лfl сложениfl точек ‚ GF(2n) немно„о отлич‡ютсfl от ил GF(p). 1. Если P = (x1, y1), Q = (x2, y2), Q ≠ –P, Q ≠ P, то R = (x3, y3) = P + Q может быть н‡й‰ен к‡к 2.Если Q = P, то R = P + P (или R = 2P) и может быть н‡й‰ен к‡к Пиме 10.17 Пусть н‡м 퇉о н‡йти R = P + Q, „‰е P = (0,1) и Q = (g2,1). Мы имеем λ = 0 и R = (g5, g4). Пиме 10.18 Пусть н‡м 퇉о н‡йти R = 2P, „‰е P = (g2,1). Мы имеем λ = g2 +1 /g2 = g2+ g5= g +1 и R = (g6, g5). Умножение точек н‡ конст‡нту Длfl то„о чтобы умножить точку н‡ конст‡нту, точки ‰олжны ск뇉ы‚‡тьсfl непеы‚но со„л‡сно илу R = 2P.
Киптфиfl эллиптической ки‚ой, мо‰елиующ‡fl киптосистему Эль-Г‡м‡лfl Длfl шифниfl и ‰ешифниfl тексто‚ с помощью эллиптических ки‚ых использлись несколько мето‰о‚. О‰ин из них состоит ‚ том, чтобы мо‰елить киптосистему Эль-Г‡м‡лfl, используfl эллиптическую ки‚ую ‚ GF(p) или GF(2n), к‡к это пок‡з‡но н‡ ис. 10.16. 356
Лекциfl 10
Нfl ф‡йлfl систем‡ WinFS
Рис. 10.16. Киптосистем‡ Эль-Г‡м‡лfl, использующ‡fl эллиптическую функцию
Гене‡циfl обще‰оступных и ч‡стных ключей 1. Боб ‚ыби‡ет E (a,b) с эллиптической ки‚ой ‚ GF(p) или GF(2n). 2. Боб ‚ыби‡ет точку н‡ ки‚ой, e1 (x 1, y1 ). 3. Боб ‚ыби‡ет целое число d. 4. Боб ‚ычислflет e2 (x2, y2) = d × e1 (x1, y1). Об‡тите ‚ним‡ние: умножение з‰есь озн‡ч‡ет мно„ок‡тное сложение точек, котоое было опе‰елено ‚ыше. 5. Боб объfl‚лflет E (a,b), e1 (x1, y1 ) и e2 (x2, y2) к‡к с‚ой откытый ключ ‰оступ‡; он сох‡нflет d к‡к секетный ключ. Шифние Алис‡ ‚ыби‡ет P, точку н‡ ки‚ой, к‡к ее исхо‰ный текст, P. З‡тем он‡ ‚ычислflет п‡у точек, н‡п‡‚лflет к‡к з‡шифнный текст: C1 = r × e1
C2= P + r × e2
Чит‡тель может 燉‡тьсfl ‚опосом, к‡к поиз‚ольным исхо‰ным текстом может быть точк‡ н‡ эллиптической ки‚ой. Это о‰н‡ из осно‚ных поблем ‚ пименении эллиптической ки‚ой ‰лfl мо‰елиниfl. Алис‡ ‰олжн‡ использть ‡л„оитм, чтобы н‡йти непосе‰ст‚енное соот‚етст‚ие меж‰у сим‚ол‡ми (или блок‡ми текст‡) и точк‡ми н‡ ки‚ой. Дешифние 357
Кус
Киптфиfl и безоп‡сность сетей
Боб, после получениfl C1 и C2, ‚ычислflет P, исхо‰ный текст, используfl сле‰ующую фомулу: P = C 2 – (d × C1) Зн‡к «минус» з‰есь озн‡ч‡ет сложение с ин‚есией. Мы можем ‰ок‡з‡ть, что P, ‚ычисленный Бобом, — тот же, что пе則н Алисой, к‡к это пок‡з‡но ниже: P + r × e2 – (d × r × e1) = P + (r × d × e1) – (r × d × e1) = P + 0 = P P, C 1, C2 и e2 — это точки н‡ ки‚ой. Об‡тите ‚ним‡ние, что езульт‡т сложениfl ‰‚ух об‡тных точек н‡ ки‚ой — нул傇fl точк‡. Пиме 10.19 Вот очень ти‚и‡льный пиме шифо‚ки с использнием эллиптической ки‚ой ‚ GF (p). 1. Боб ‚ыби‡ет E67 (2, 3) к‡к эллиптическую ки‚ую ‚ GF (p). 2. Боб ‚ыби‡ет e1 = (2, 22) и d = 4. 3. Боб ‚ычислflет e2 = (13, 45), „‰е e2 = d × e1. 4. Боб публично объfl‚лflет котеж (E, e1, e2 ). 5. Алис‡ хочет пе則ть исхо‰ный текст P = (24, 26) Бобу. Он‡ ‚ыби‡ет r = 2. 6. Алис‡ н‡хо‰ит точку C1= (35, 1), „‰е C1 = r × e1. 7. Алис‡ н‡хо‰ит точку C2 = (21, 44), „‰е C2 = P + r × e1. 8. Боб получ‡ет C, и C2. Он использует 2 × C1, (35, 1) и получ‡ет (23, 25). 9. Боб ин‚етиует точку (23, 25) и получ‡ет точку (23, 42). 10. Боб ск뇉ы‚‡ет (23, 42) с C2 = (21, 44) и получ‡ет пе‚он‡ч‡льный исхо‰ный текст P = (24, 26). С‡‚нение Ниже пи‚о‰итсfl к‡ткое с‡‚нение ‡л„оитм‡ Эль-Г‡м‡лfl с е„о ‚‡и‡нтом, использующим эллиптическую ки‚ую. a. Ал„оитм Эль-Г‡м‡лfl использует мультиплик‡ти‚ную „уппу; ‚‡и‡нт — эллиптическую „уппу. b. Эти ‰‚‡ член‡ ‚ ‡л„оитме Эль-Г‡м‡лfl — числ‡ ‚ мультиплик‡ти‚ной „уппе; пи пименении ‚‡и‡нт‡ — точки н‡ эллиптической ки‚ой. c. Секетный ключ ‚ к‡ж‰ом ‡л„оитме — целое число. d. Секетные числ‡, ‚ыби‡емые Алисой ‚ к‡ж‰ом ‡л„оитме, — целые числ‡. e. Воз‚е‰ение ‚ степень ‚ ‡л„оитме Эль-Г‡м‡лfl з‡менено умножением точки н‡ конст‡нту. f. Умножение ‚ ‡л„оитме Эль-Г‡м‡лfl з‡менено сложением точек. g. Ин‚есиfl ‚ ‡л„оитме Эль-Г‡м‡лfl — мультиплик‡ти‚н‡fl ин‚есиfl ‚ мультиплик‡ти‚ной „уппе; ин‚есиfl —з‡менflетсfl ‡‰‰ити‚ной ин‚есией точки н‡ ки‚ой. h. Вычисление обычно ле„че ‚ эллиптической ки‚ой, потому что умножение поще, чем ‚оз‚е‰ение ‚ степень, сложение поще, чем умножение, и 358
Лекциfl 10
Нfl ф‡йлfl систем‡ WinFS
н‡хож‰ение ин‚есии н‡мно„о поще ‚ „уппе эллиптической ки‚ой, чем ‚ мультиплик‡ти‚ной „уппе. Безоп‡сность мет с использнием эллептической ки‚ой Чтобы ‡сшифть сообщение, Е‚‡ ‰олжн‡ н‡йти зн‡чение r или d. a. Если Е‚‡ зн‡ет зн‡чение r, он‡ может использть P = C2 – (r × e2), чтобы н‡йти точку P, относflщуюсfl к исхо‰ному тексту. Но ‰лfl то„о чтобы н‡йти r, Е‚‡ ‰олжн‡ ешить у‡‚нение C1 = r × e1. Это зн‡чит — н‡йти ‰‚е точки н‡ ки‚ой, C1 и e1. Е‚‡ ‰олжн‡ н‡йти множитель, котоый со片ет C1 н‡чин‡fl с e1. Эт‡ поблем‡ из‚естн‡ к‡к поблем‡ лифм‡ эллиптической ки‚ой, е‰инст‚енный из‚естный мето‰ ешениfl этой поблемы — РО – ‡л„оитм По뇉‡, котоый неосущест‚им, если 燉‡но большое r и p ‚ GF (p) или большое n ‚ GF(2n). b. Если Е‚‡ зн‡ет зн‡чение d, он‡ может использть P = C2 – (d × C1), чтобы н‡йти точку P, относflщуюсfl к исхо‰ному тексту. Поскольку e2 = d × e1, это тот же с‡мый тип поблемы, что и ‚ пе‰ы‰ущем пункте. Е‚‡ зн‡ет зн‡чение e1 и e2 — он‡ ‰олжн‡ н‡йти d. Безоп‡сность киптосистемы с эллиптической ки‚ой 燂исит от ту‰ности ешениfl поблемы лифм‡ эллиптической ки‚ой. Р‡зме мо‰улfl Длfl то„о же с‡мо„о уо‚нfl безоп‡сности (з‡т‡ты н‡ ‚ычисление) мо‰уль n, может быть меньшим ‚ эллиптической системе (ECC), чем ‚ RSA. Н‡пиме, ECC ‚ GF(2n) с n, состоflщий из 160 бито‚, может обеспечить тот же уо‚ень безоп‡сности, к‡к RSA с n 1024 бит‡.
10.6. Рекомен‰о‚‡нн‡fl лите‡ту‡ Длfl более ‰ет‡льно„о изучениfl положений, обсуж‰енных ‚ этой лекции, мы екомен‰уем нижесле‰ующие кни„и и с‡йты. Пункты, ук‡з‡нные ‚ скобк‡х, пок‡з‡ны ‚ списке ссылок ‚ конце кни„и.
Кни„и Киптфическ‡fl систем‡ RSА ‡ссм‡т肇етсfl ‚ [Sti06], [Sta06], [PHS03], [Vau06], [TW06] и [Mao04]. Киптосистемы Р‡бин‡ и Эль-Г‡м‡лfl — ‚ [Sti06] и [Mao 04]. Киптфиfl эллиптической ки‚ой — ‚ [Sti06], [Eng99] и [Bla99].
С‡йты Сле‰ующие с‡йты ‰‡ют больше инфом‡ции о тем‡х, ‡ссмотенных ‚ этой лекции. http: // wwwl.ics.uci.edu / ~ mingl/knapsack.html www.dtc.umn.edu/~odlyzko/doc/arch/knapsack.survey.pdf 359
Кус
Киптфиfl и безоп‡сность сетей
http://en.wikipedia.org/wiki/RSA citeseer.ist.psu.edu/boneh99twenty.html www.mat.uniroma3.it/users/pappa/SLIDES/RSA-HRL_05.pdf http://en.wikipedia.org/wiki/Rabin_cryptosystem http://en.wikipedia.org/wiki/ElGamaL_encryption ww..cs.purdue.edu/homes/wspeirs/elgamal.pdf http://en.wikipedia.org/wiki/Elliptic__curve_cryptography www.cs.utsa.edu/~rakbani/publications/Akbani-ECC-IEEESMC03.pdf
10.7. Ито„и • Есть ‰‚‡ способ‡ ‰ости„нуть инфом‡ционной безоп‡сности: киптфиfl с симметичными ключ‡ми и киптфиfl с ‡симметичными ключ‡ми. Эти ‰‚‡ способ‡ сущест‚уют ллельно и ‰ополнflют ‰у„ ‰у„‡; пеимущест‚‡ о‰но„о мо„ут ‰‡ть компенс‡цию не‰ост‡тк‡м ‰у„о„о. • Концепту‡льные ‡зличиfl меж‰у этими ‰‚умfl способ‡ми б‡зиуютсfl н‡ том, к‡к они сох‡нflют секетность. В киптфии с симметичными ключ‡ми секетность ‰олжн‡ быть ‡з‰елен‡ меж‰у ‰‚умfl объект‡ми; ‚ киптфии с ‡симметичными ключ‡ми секетность песон‡льн‡fl (не‡з‰еленн‡fl). • Киптфиfl с симметичными ключ‡ми б‡зиуетсfl н‡ по‰ст‡но‚ке и пеест‡но‚ке сим‚оло‚; киптфиfl с ‡симметичными ключ‡ми б‡зиуетсfl н‡ пименении м‡тем‡тических функций к числ‡м. • Киптфиfl с ‡симметичными ключ‡ми использует ‰‚‡ от‰ельных ключ‡: о‰ин секетный и о‰ин откытый. Шифние и ‰ешифние можно пе‰ст‡‚лflть себе к‡к з‡пи‡ние и отпи‡ние з‡мко‚ ключ‡ми. З‡мок, котоый з‡пет откытым ключом, можно отпееть только соот‚етст‚ующим секетным ключом. • В киптфии с ‡симметичным ключом от‚етст‚енность обеспечениfl безоп‡сности н‡хо‰итсfl, „뇂ным об‡зом, н‡ плеч‡х пиемник‡ (Боб), котоый ‰олжен со片ть ‰‚‡ ключ‡: о‰ин секетный и о‰ин откытый. Боб несет от‚етст‚енность з‡ секетный ключ. Откытый ключ может быть ‡спост‡нен сообщест‚у чеез к‡н‡л ‡спе‰елениfl откыто„о ключ‡. • В отличие от киптфии с симметичными ключ‡ми, ‚ киптфии с ‡симметичным ключом исхо‰ный текст и з‡шифнный текст об‡б‡ты‚‡ютсfl к‡к целые числ‡. Сообщение ‰олжно ко‰итьсfl к‡к целое число (или множест‚о целых чисел) пее‰ шифнием; целое число (или множест‚о целых чисел) ‰олжно быть ‡сшифно ‚ сообщение после ‰ешифниfl. Киптфиfl с ‡симметичным ключом обычно используетсfl, чтобы з‡шифть или ‡сшифо‚ы‚‡ть м‡ленькие сообщениfl, т‡кие к‡к ключ шиф‡ ‰лfl киптфии с симметичными ключ‡ми. • Г뇂н‡fl и‰еfl киптфии с ‡симметичным ключом — понflтие «л‡зейꇻ ‚ о‰ностоонней функции (TOWF), кото‡fl fl‚лflетсfl т‡кой функцией, что f ‚ычислflетсfl посто, ‡ f -1 ‚ычислить не‚озможно (‚ смысле сложности ‚ычислений), если не используетсfl л‡зейк‡. 360
Лекциfl 10
Нfl ф‡йлfl систем‡ WinFS
• Блестflщ‡fl и‰еfl относительно киптфии обще‰оступно„о ключ‡ пи퇉лежит Мекелю и и Хеллм‡ну – это ‡нц傇fl киптосистем‡ . К‡ н‡м „о‚оflт, к‡кие элементы из 燇нее 燉‡нно„о множест‚‡ чисел н‡хо‰flтсfl ‚ юкз‡ке, мы можем ле„ко ‚ычислить сумму чисел; к‡ н‡м сообщ‡ют сумму, ту‰но ск‡з‡ть, к‡кие элементы н‡хо‰flтсfl ‚ юкз‡ке, если он не з‡полнен элемент‡ми с‚ех‚оз‡ст‡юще„о множест‚‡. • С‡мый общий ‡л„оитм обще‰оступно„о ключ‡ — киптфическ‡fl систем‡ RSА. RSA использует ‰‚‡ числ‡ e и d, „‰е e — обще‰оступный ключ, ‡ d fl‚лflетсfl ч‡стным (секетным). Алис‡ использует C = Pe mod n ‰лfl то„о, чтобы со片ть з‡шифнный текст C из исхо‰но„о текст‡ P; Боб использует P = Сd mod n, чтобы из‚лечь исхо‰ный текст, пе則нный Алисой. • RSA пименflет ‰‚е ‡л„еб‡ических стуктуы: кольцо и „упп‡. Шифние и ‰ешифние ‚ыполнflютсfl с использнием коммут‡ти‚но„о кольц‡ R = с ‰‚умfl ‡ифметическими опе‡циflми — сложением и умножением. RSA пименflет мультиплик‡ти‚ную „уппу G = ‰лfl „ене‡ции ключей. • Ник‡ких ‡зушительных ‡т‡к н‡ RSA не было обн‡ужено. Теоетически пе‰ск‡з‡но несколько ‡т‡к, осннных н‡ ‡зложении н‡ множители, ‚ыбоке шифнно„о текст‡, об‡зце ‰ешифниfl, об‡зце шифниfl, исхо‰ном тексте, мо‰уле и е‡лиз‡ции. • Киптосистем‡ Р‡бин‡ — ‚‡и‡нт киптфической системы RSА. RSA б‡зиуетсfl н‡ экспоненци‡льном с‡‚нении; киптосистем‡ Р‡бин‡ б‡зиуетсfl н‡ к‚‡‰‡тичном с‡‚нении. Мы можем пе‰ст‡‚лflть себе, что киптосистем‡ Р‡бин‡ — это RSA, ‚ котоой зн‡чение e = 2 и d = 1/2. Киптфическ‡fl систем‡ Р‡бин‡ безоп‡сн‡, пок‡ p и q — большие числ‡. Сложность киптосистемы Р‡бин‡ — н‡ том же с‡мом уо‚не, к‡к и поцесс ‡зложениfl большо„о числ‡ n н‡ ‰‚‡ постых сомножителfl p и q. • Киптосистем‡ Эль-Г‡м‡лfl б‡зиуетсfl н‡ поблеме ‰искетно„о лифм‡. Киптосистем‡ Эль-Г‡м‡лfl использует и‰ею пе‚ооб‡зных коней ‚ Zn*. Шифние и ‰ешифние ‚ киптосистеме Эль-Г‡м‡лfl использует „уппу G = . Обще‰оступный ключ — это ‰‚‡ числ‡, e1 и e2, ‡ секетный ключ — это целое число d. Безоп‡сность киптосистемы ЭльГ‡м‡лfl осно‚‡н‡ н‡ том, что ешение поблемы ‰искетно„о лифм‡ не сущест‚ует. О‰н‡ко ‚ лите‡туе был‡ упомflнут‡ ‡т‡к‡, осннн‡fl н‡ м‡лом зн‡чении мо‰улfl, и ‡т‡к‡ зн‡ниfl исхо‰но„о текст‡. • Ду„‡fl киптфическ‡fl систем‡, ‡ссмотенн‡fl ‚ этой лекции, б‡зиуетсfl н‡ эллиптических ки‚ых. Эллиптические ки‚ые fl‚лflютсfl кубическими у‡‚нениflми ‚ ‰‚ух пееменных. Эллиптические ки‚ые н‡ поле ‚ещест‚енных чисел используют специ‡льный кл‡сс эллиптических ки‚ых y2 = x3 + ax + b, „‰е 4a3 + 27b2 ≠ 0. Абел傇 „упп‡ был‡ опе‰елен‡ с помощью эллиптической ки‚ой с опе‡цией сложениfl, кото‡fl пок‡зы‚‡ет, к‡к ‰‚е точки н‡ ки‚ой можно сложить, чтобы получить ‰у„ую точку н‡ этой ки‚ой. 361
Кус
Киптфиfl и безоп‡сность сетей
• Киптфиfl эллиптической ки‚ой пименflет ‰‚е ‡л„еб‡ических стуктуы, ‡беле‚у „уппу и поле. Поле может быть полем ‚ещест‚енных чисел, GF (p) и GF (2n). Мы пок‡з‡ли, к‡к киптосистем‡ Эль-Г‡м‡лfl может мо‰елитьсfl, используfl эллиптические ки‚ые ‚ конечном поле. Безоп‡сность киптфии эллиптической ки‚ой 燂исит от поблемы лифм‡ эллиптической ки‚ой, ешение котоой неосущест‚имо пи большом зн‡чении мо‰улfl.
10.8. Н‡бо ‰лfl п‡ктики Обзоные ‚опосы 1. Н‡й‰ите ‡зличиfl меж‰у киптосистем‡ми с симметичными ключ‡ми и ‡симметичными ключ‡ми. 2. Н‡й‰ите ‡зличиfl меж‰у откытыми и секетными ключ‡ми ‚ киптосистеме с ‡симметичными ключ‡ми. Н‡й‰ите со‚ениfl и ‡зличие ключей ‚ киптосистем‡х с симметичными ключ‡ми и с ‡симметичными ключ‡ми. 3. Опе‰елите «л‡зейку» ‚ о‰ностоонней функции и объflсните еfi использние ‚ киптфии с ‡симметичным ключом. 4. К‡тко объflсните и‰ею ‡нце‚ой киптосистемы. ‡. Что fl‚лflетсfl о‰ностоонней функцией ‚ этой системе? б. Что fl‚лflетсfl л‡зейкой ‚ этой системе? ‚. Опе‰елите откытые и секетные ключи ‚ этой системе. d. Опишите безоп‡сность этой системы. 5. К‡тко объflсните и‰ею киптфической системы RSA. ‡. Что fl‚лflетсfl о‰ностоонней функцией ‚ этой системе? б. Что fl‚лflетсfl л‡зейкой ‚ этой системе? ‚. Опе‰елите откытые и секетные ключи ‚ этой системе. „. Опишите безоп‡сность этой системы. 6. К‡тко объflсните и‰ею киптосистемы Р‡бин‡. ‡. Что fl‚лflетсfl о‰ностоонней функцией ‚ этой системе? б. Что fl‚лflетсfl л‡зейкой ‚ этой системе? ‚. Опе‰елите откытые и секетные ключи ‚ этой системе. „. Опишите безоп‡сность этой системы. 7. К‡тко объflсните и‰ею киптосистемы Эль-Г‡м‡лfl. ‡. Что fl‚лflетсfl о‰ностоонней функцией ‚ этой системе? б. Что fl‚лflетсfl л‡зейкой ‚ этой системе? „. Опе‰елите откытые и секетные ключи ‚ этой системе. ‰. Опишите безоп‡сность этой системы. 8. К‡тко объflсните и‰ею киптфии эллиптической ки‚ой (ECC). ‡. Что fl‚лflетсfl о‰ностоонней функцией ‚ этой системе? б. Что fl‚лflетсfl л‡зейкой ‚ этой системе? ‚. Опе‰елите откытые и секетные ключи ‚ этой системе. „. Опишите безоп‡сность этой системы. 362
Лекциfl 10
Нfl ф‡йлfl систем‡ WinFS
9. Опе‰елите эллиптические ки‚ые и объflсните их пиложениfl ‚ киптфии. 10. Опе‰елите опе‡цию, используемую ‚ ‡беле‚ой „уппе, кото‡fl об‡б‡ты‚‡ет точки н‡ эллиптической ки‚ой.
Уп‡жнениfl 1. Учиты‚‡fl с‚ех‚оз‡ст‡ющий котеж b = [7, 11,23,43,87, 173, 357], r =41 и мо‰уль n = 1001, з‡шифуйте и ‡сшифуйте бук‚у a, используfl ‡нце‚ую киптосистему. Используйте [7 6 5 1 2 3 4] к‡к т‡блицу пеест‡но‚ки. 2. В RSA: a. Д‡но n = 221 и e = 5, н‡й‰ите d. b. Д‡но n =3937 и e =17, н‡й‰ите d. c. Д‡но p = 19, q = 23 и e = 3, н‡й‰ите n, φ(n) и d. 3. Длfl то„о чтобы понflть безоп‡сность ‡л„оитм‡ RSА, н‡й‰ите d, если ‚ы зн‡ете, что e =17, ‡ n =187. 4. В RSA ‰‡но n и φ(n), ‚ычислите p и q. 5. В RSA ‰‡но e = 13 и n = 100. З‡шифуйте сообщение «HOW ARE YOU», пименflfl 00 к 25 ‰лfl бук‚ от A ‰о Z и 26 — ‰лfl побел‡. Используйте ‡зличные блоки, чтобы с‰ел‡ть P
Кус
Киптфиfl и безоп‡сность сетей
б. Используfl кит‡йскую теоему об ост‡тк‡х, н‡й‰ите четые ‚озможных исхо‰ных текст‡. 13. В киптосистеме Эль-Г‡м‡лfl ‰‡но постое число p = 31: ‡. Выбеите соот‚етст‚ующие e1 и d, з‡тем ‚ычислите e2. б. З‡шифуйте сообщение «HELLO»; используйте 00 к 25 ‰лfl ко‰иниfl. Используйте ‡зличные блоки ‰лfl то„о, чтобы с‰ел‡ть P
Лекциfl 11
Целостность сообщениfl и уст‡но‚ление по‰линности сообщениfl
Ч‡сть 3. Целостность, уст‡но‚ление по‰линности и уление ключ‡ми В лекции1 мы ‚и‰ели, что киптфиfl обеспеч肇ет ти мет з‡щиты инфом‡ции: шифы с симметичным ключом, шифы с ‡симметичным ключом и хэшиние. Ч‡сть 3 обсу扇ет киптфические хэш-функции и их пиложениfl. Эт‡ ч‡сть т‡кже иссле‰ует ‰у„ие поблемы, с‚flз‡нные с тем‡ми, о котоых мы „о‚оили ‚ ч‡стflх 1 и 2 — т‡кими к‡к уление ключ‡ми. Лекциfl 11 обсу扇ет общую и‰ею целостности сообщениfl и уст‡но‚лениfl по‰линности сообщениfl. Лекциfl 12 иссле‰ует несколько киптфических хэш-функций. Лекциfl 13 обсу扇ет цифо‚ые по‰писи. Лекциfl 14 пок‡зы‚‡ет и‰еи и мето‰ы уст‡но‚лениfl по‰линности объект‡. Н‡конец, лекциfl 15 обсу扇ет уление ключ‡ми, используемое ‰лfl киптфии с симметичными ключ‡ми и киптфии с ‡симметичными ключ‡ми. Лекциfl 11: Целостность сообщениfl и уст‡но‚ление по‰линности сообщениfl Лекциfl 11 обсу扇ет общие и‰еи, с‚flз‡нные с киптфическими хэшфункциflми, котоые используютсfl, чтобы со片ть н‡ осннии сообщениfl ‰‡й‰жест сообщениfl. Д‡й‰жесты сообщениfl „‡‡нтиуют целостность сообщениfl. З‡тем лекциfl з‡тем пок‡зы‚‡ет, к‡к постые ‰‡й‰жесты сообщениfl мо„ут быть усо‚ешенст‚ны, чтобы по‰т‚е‰ить по‰линность сообщениfl. Лециfl 12: Киптфические хэш-функции Лекциfl12 иссле‰ует несколько ст‡н‰‡тных киптфических хэш-функций, пи퇉леж‡щих ‰‚ум обшиным к‡те„оиflм: функции со сж‡тием и с блочным шифом, используемым к‡к функциfl сж‡тиfl. Лекциfl з‡тем описы‚‡ет о‰ну хэш-функцию ‰лfl к‡ж‰ой к‡те„оии и ‡л„оитмы хэшиниfl SHA-512 и Whirlpool. Лекциfl 13: Цифо‚ые по‰писи Лециfl 13 обсу扇ет цифо‚ые по‰писи и ‚‚о‰ит несколько схем цифо‚ой по‰писи, ‚ключ‡fl RSA, Эль-Г‡м‡лfl, Шно‡, DSS и эллиптическую ки‚ую. Лекциfl т‡кже иссле‰ует некотоые ‡т‡ки ‚ышеупомflнутых схем и то, к‡к они мо„ут быть пе‰от‚‡щены. Лекциfl 14: Уст‡но‚ление по‰линности объект‡ Лекциfl14 сн‡ч‡л‡ пок‡зы‚‡ет отличие меж‰у уст‡но‚лением по‰линности сообщениfl и уст‡но‚лением по‰линности объект‡. З‡тем мы по„о‚оим о некотоых метх уст‡но‚лениfl по‰линности объект‡: использнии п‡олfl, мето‰е «‚ызо‚-от‚ет» и потокол‡х бесспоно„о по‰т‚еж‰ениfl. Лекциfl т‡кже ‚ключ‡ет некотоые с‚е‰ениfl по биометии. Лекциfl 15: Уление ключ‡ми Лекциfl 15 сн‡ч‡л‡ объflснflет ‡зличные по‰хо‰ы к улению ключ‡ми: использние цент‡лизнно„о ‡спе‰елениfl ключей (Key Distribution 365
Кус
Киптфиfl и безоп‡сность сетей
Center — KDC), Центы сетифик‡ции (Certification Authories — CA) и инф‡стукту‡ обще‰оступно„о ключ‡ (Public-Key Infrastructure — PKI). Мы пок‡жем, к‡к киптфиfl с симметичными ключ‡ми и киптфиfl с ‡симметичными ключ‡ми мо„ут ‰ополнить ‰у„ ‰у„‡, чтобы ешить некотоые поблемы улениfl ключ‡ми.
Лекциfl 11. Целостность сообщениfl и уст‡но‚ление по‰линности сообщениfl Цели и со‰еж‡ние Эт‡ лекциfl имеет несколько целей. • Опе‰елить целостность сообщениfl. • Опе‰елить уст‡но‚ление по‰линности сообщениfl. • Опе‰елить китеии ‰лfl киптфической хэш-функции. • Опе‰елить случ‡йную мо‰ель Oracle и ее оль ‚ оценке безоп‡сности киптфических хэш-функций. • Пок‡з‡ть ‡зличие меж‰у ко‰ом обн‡ужениfl мо‰ифик‡ции и ко‰ом уст‡но‚лениfl по‰линности (‡утентичности) ‰окумент‡ (MDC и MAC). • Обсу‰ить некотоые общие MAC. Это п傇fl из тех лекций, пос‚flщенных целостности сообщениfl, уст‡но‚лению по‰линности сообщениfl и уст‡но‚лению по‰линности объект‡. З‰есь мы обсу‰им общие и‰еи, с‚flз‡нные с киптфическими хэш-функциflми, котоые используютсfl, чтобы со片ть ‰‡й‰жест сообщениfl из сообщениfl. Д‡й‰жесты сообщениfl „‡‡нтиуют целостность сообщениfl. З‡тем мы по„о‚оим о том, к‡к постые ‰‡й‰жесты сообщениfl мо„ут быть мо‰ифицины, чтобы по‰т‚е‰ить по‰линность сообщениfl. Использнию киптфических хэш-функций ‚ ст‡н‰‡тной киптфии пос‚flщен‡ лекций 12.
11.1. Целостность сообщениfl Системы киптфии, котоые мы изуч‡ли ‰о сих по, обеспеч肇ют т‡йну (секетность) или конфи‰енци‡льность, но не целостность. О‰н‡ко есть случ‡и, „‰е н‡м не нужн‡ секетность, но з‡то необхо‰им‡ целостность (неизменность). Н‡пиме, Алис‡ может н‡пис‡ть 燂ещ‡ние, чтобы ‡спе‰елить с‚ое состоflние после ее смети. З‡‚ещ‡ние может не быть з‡шифнным. После ее смети любой может посмотеть это 燂ещ‡ние. Целостность 燂ещ‡ниfl, о‰н‡ко, ‰олжн‡ быть сох‡нен‡, ибо Алис‡ не хочет, чтобы изменflли со‰еж‡ние 燂ещ‡ниfl.
Документ и отпеч‡тки п‡льце‚ О‰ним из способо‚ сох‡нить целостность ‰окумент‡ мо„ бы ст‡ть способ с помощью отпеч‡тко‚ п‡льце‚. Если Алисе 퇉о быть у‚еенной, что со‰еж‡ние 366
Лекциfl 11
Целостность сообщениfl и уст‡но‚ление по‰линности сообщениfl
ее ‰окумент‡ не бу‰ет изменено, он‡ может поместить отпеч‡ток п‡льц‡ ‚низу ‰окумент‡. Е‚‡ не может изменить со‰еж‡ние ‰окумент‡ или со片ть ложный ‰окумент, потому что он‡ не может пел‡ть отпеч‡ток п‡льц‡ Алисы. Чтобы „‡‡нтить, что ‰окумент не был изменен, отпеч‡ток п‡льц‡ Алисы н‡ ‰окументе можно с‡‚нить с отпеч‡тком п‡льц‡ Алисы ‚ особом ф‡йле. Если они не со‚‡ют, то ‰окумент — не от Алисы.
Сообщение и ‰‡й‰жест сообщениfl Электонный эк‚肇лент и п‡ы «отпеч‡ток п‡льц‡ — ‰окумент» — это  сообщение-‰‡й‰жест. Чтобы сох‡нить целостность сообщениfl, оно об‡б‡ты‚‡етсfl ‡л„оитмом, н‡зы‚‡емым киптфической хэш-функцией. Функциfl со片ет сж‡тое изоб‡жение сообщениfl, котоое может использтьсfl по‰обно отпеч‡тку п‡льц‡. Рисунок 11.1 пок‡зы‚‡ет сообщение, киптфическую хэш-функцию и ‰‡й‰жест сообщениfl.
Рис. 11.1. Сообщение и ‰‡й‰жест
Р‡зличиfl Эти ‰‚е п‡ы (‰окумент / отпеч‡ток п‡льц‡), и (‰‡й‰жест сообщениfl / сообщение) имеют некотоые ‡зличиfl. Документ и отпеч‡ток п‡льц‡ физически с‚flз‡ны ‚месте, сообщение и ‰‡й‰жест сообщениfl мо„ут быть ‡з‰елены (или быть посл‡ны) от‰ельно, и, что н‡иболее ‚‡жно, ‰‡й‰жест сообщениfl ‰олжен быть з‡щищен от изменениfl. Д‡й‰жест сообщениfl ‰олжен быть з‡щищен от изменениfl.
По‚ек‡ целостности Чтобы по‚еить целостность сообщениfl или ‰окумент‡, мы со片ем киптфическую хэш-функцию и с‡‚н肇ем но‚ый ‰‡й‰жест сообщениfl с пе‰ы‰ущим. Если они об‡ — те же с‡мые, мы у‚еены, что пе‚он‡ч‡льное сообщение не было изменено. Рисунок 11.2 иллюстиует и‰ею.
Киптфические китеии хэш-функции Киптфическ‡fl хэш-функциfl ‰олжн‡ у‰о‚лет‚оflть ти китеиflм (см. ис. 11.3): устойчи‚ость к пооб‡зу, устойчи‚ость ко ‚тоому пооб‡зу и устойчи‚ость к коллизиflм. 367
Кус
Киптфиfl и безоп‡сность сетей
Рис. 11.2. По‚ек‡ целостности
Рис. 11.3. Китеии киптфической функции Устойчи‚ость пооб‡з‡ Киптфическ‡fl функциfl ‰олжн‡ быть устойч肇 к пооб‡зу. Если ‰‡н‡ хэш-функциfl h и y = h(M), то ‰лfl Е‚ы ‰олжно быть экстем‡льно ту‰но н‡йти сообщение, т‡кое, что y = h(M’). Рисунок 11.4 иллюстиует эту и‰ею.
Рис. 11.4. Пооб‡з 368
Лекциfl 11
Целостность сообщениfl и уст‡но‚ление по‰линности сообщениfl
Если хэш-функциfl — неустойчи‚ый пооб‡з, Е‚‡ может пеех‚‡тить ‰‡й‰жест h (M), со片ть сообщение M’ и з‡тем пе則ть M’ Бобу ‚место исхо‰но„о М.
Д‡но: y = h (M)
Ат‡к‡ пооб‡з‡ Н‡йти: т‡кое М’, что y = h (M’).
Пиме 11.1 Можем ли мы использть обычный мето‰ сж‡тиfl без потеь, т‡кой, н‡пиме, к‡к zip, ‚ киптфической хэш-функции? Решение Не можем. Мето‰ сж‡тиfl без потеь со片ет сж‡тое сообщение, котоое ‰олжно быть об‡тимо. Вы можете об‡бот‡ть сж‡тое сообщение, чтобы получить пе‚он‡ч‡льный текст. Пиме 11.2 Можем ли мы использть функцию контольной суммы к‡к киптфическую хэш-функцию? Решение Не можем. Функциfl контольной суммы — не стойкий пооб‡з. Е‚‡ может н‡йти несколько сообщений, контольн‡fl сумм‡ котоых соот‚етст‚ует ‰‡нной. Устойчи‚ость ко ‚тоому пооб‡зу Втоой китеий, устойчи‚ость ко ‚тоому пооб‡зу, „‡‡нтиует, что сообщение не может ле„ко быть пел‡нным. Е‚‡ не может ле„ко со片ть ‰у„ое сообщение, котоое пеоб‡зуетсfl ‚ тот же с‡мый ‰‡й‰жест. Ду„ими слми, учиты‚‡fl 燉‡нное сообщение и е„о ‰‡й‰жест, не‚озможно (или, по к‡йней мее, очень ту‰но) со片ть ‰у„ое сообщение с тем же с‡мым ‰‡й‰жестом. Рисунок 11.5 иллюстиует и‰ею. Е‚‡ пеех‚‡ты‚‡ет (имеет ‰оступ к) сообщение М и е„о ‰‡й‰жест h(M). Он‡ со片ет ‰у„ое сообщение М’ ≠ М, но h (M) = h(M’). Е‚‡ пе則ет М’ и h (M’) Бобу. Е‚‡ пел‡л‡ сообщение.
Д‡н‡ Ат‡к‡: М и h (M)
Ат‡к‡ ‚тоо„о пооб‡з‡ Н‡йти: т‡кое М’ ≠ М, чтобы h (M) = h(M’).
Устойчи‚ость к коллизиflм Тетий китеий, устойчи‚ость к коллизиflм, „‡‡нтиует, что Е‚‡ не может н‡йти ‰‚‡ сообщениfl, котоые пи‚о‰flт к тому же с‡мому ‰‡й‰жесту. З‰есь поти‚ник может со片ть ‰‚‡ сообщениfl (из ‡боче„о) и пи‚ести к тому же ‰‡й‰жесту. Мы у‚и‰им позже, к‡к Е‚‡ может из‚лечь ‚ы„о‰у из этой сл‡бости хэш-функции. Пе‰положим, что ‚ течение о‰но„о и то„о же момент‡ ‚емени со片ны ‰‚‡ ‡зличных 燂ещ‡ниfl, котоые мо„ут быть пи‚е‰ены к о‰ному тому же ‰‡й‰жесту. К‡ н‡ступ‡ет ‚емfl ‰лfl ‚ыполнениfl 燂ещ‡ниfl, ‚тоое (пел‡нное) 燂ещ‡ние пе‰ст‡‚лflетсfl н‡сле‰ник‡м. Поскольку ‰‡й‰жест соот‚етст‚ует обоим 燂ещ‡ниflм, по‰ст‡но‚к‡ не обн‡ужен‡. Рисунок 11.6 иллюстиует и‰ею. Мы у‚и‰им позже, что этот тип ‡т‡ки н‡мно„о поще н‡ч‡ть, чем ‰‚‡ пе‰ы‰ущих ‚и369
Кус
Киптфиfl и безоп‡сность сетей
‰‡. Ду„ими слми, мы ‰олжны т‚е‰о убе‰итьсfl, что хэш-функциfl устойч肇 к коллизиflм.
Рис.11.5.Втоой пооб‡з
Рис. 11.6. Устойчи‚ость к коллизиflм
11.2. Случ‡йн‡fl мо‰ель Oracle Случ‡йн‡fl мо‰ель Oracle был‡ пе‰ложен‡ ‚ 1993 „. Белл‡ом (Bellare) и Ро‰жеем (Rogaway). Это и‰е‡льн‡fl м‡тем‡тическ‡fl мо‰ель ‰лfl хэш-функции. Функциfl, кото‡fl осно‚‡н‡ н‡ этой мо‰ели, об뇉‡ет сле‰ующими с‚ойст‚‡ми. 1. К‡ поступ‡ет но‚ое сообщение любой ‰лины, Oracle поо扇ет и ‚ы‡б‡ты‚‡ет н‡ ‚ыхо‰е ‰‡й‰жест-сообщениfl фиксинной ‰лины, котоые состоflт из случ‡йных сток нулей и е‰иниц. Это oracle-з‡пись сообщениfl и ‰‡й‰жест-сообщениfl. 370
Лекциfl 11
Целостность сообщениfl и уст‡но‚ление по‰линности сообщениfl
2. К‡ пе則етсfl сообщение, ‰лfl котоо„о сущест‚ует ‰‡й‰жест, oracle посто ‚ст‡‚лflет ‰‡й‰жест ‚ з‡пись. 3. Д‡й‰жест ‰лfl но‚о„о сообщениfl ‰олжен быть ‚ыб‡н не燂исимо от ‚сех пе‰ы‰ущих ‰‡й‰жесто‚. Это пзум傇ет, что мо‰ель Oracle не может использть фомулу или ‡л„оитм ‰лfl ‚ычислениfl ‰‡й‰жест‡. Пиме 11.3 Возьмем мо‰ель Oracle с т‡блицей и «п‡‚ильной» монетой. Т‡блиц‡ имеет ‰‚‡ столбц‡. Ле‚ый столбец — сообщениfl, ‰лfl котоых ‰олжны быть ‚ы‡бот‡ны ‰‡й‰жесты. Втоой столбец пеечислflет ‰‡й‰жесты, со片нные ‰лfl этих сообщений. Пимем, что ‰‡й‰жест — ‚с儉‡ 16 бито‚ не燂исимо от ‡зме‡ сообщениfl. Т‡блиц‡ 11.1 пок‡зы‚‡ет пиме т‡кой т‡блицы, ‚ котоой сообщение и ‰‡й‰жест сообщениfl пи‚е‰ены ‚ шест퇉ц‡теичном исчислении. Мо‰ель Oracle уже соз‰‡л‡ ти ‰‡й‰жест‡. Т‡блиц‡ 11.1. Т‡блиц‡ Oracle после со片ниfl пе‚ых тех ‰‡й‰жесто‚ Сообщение 4523AB1352CDEF45126 723BAE38F2AB3457AC AB45CD1048765412AAAB6662BE
Д‡й‰жест сообщениfl 13AB 02CA A38B
Тепеь пе‰положим, что ‚озник‡ют ‰‚‡ событиfl: ‡. Поступ‡ет сообщение AB1234CDS765BDAD ‰лfl ‚ычислениfl ‰‡й‰жест‡. Oracle по‚еflет с‚ою т‡блицу. Это„о сообщениfl нет ‚ т‡блице, т‡к что соту‰ник, использующий Oracle, по‰б‡сы‚‡ет ‚ ‚оз‰ух с‚ою монету 16 ‡з. Пе‰положим, что езульт‡т — ООРОООРРОРООРРРО, ‚ котоом буꂇ О пе‰ст‡‚лflет «Оел», буꂇ Р пе‰ст‡‚лflет «Решꇻ. Oracle интепетиует О к‡к 1 бит и Р к‡к бит 0 и ‚ы‰‡ет 1101 1100 1011 0001 ‚ ‰‚оичном ко‰е либо DCB1 ‚ шест퇉ц‡теичном, к‡к ‰‡й‰жест сообщениfl ‰лfl это„о сообщениfl, и ск뇉ы‚‡ет сообщение и ‰‡й‰жест ‚ т‡блице (т‡блиц‡ 11.2). Т‡блиц‡ 11.2. Т‡блиц‡ Oracle после со片ниfl чет‚ето„о ‰‡й‰жест‡ Сообщение 4523AB1352CDEF45126 723BAE38F2AB3457AC AB1234CD8765BDAD AB45CD1048765412AAAB6662BE
Д‡й‰жест сообщениfl 13AB 02CA DCB1 A38B
б. Сообщение 4523AB 1352CDEF45126 ‰‡етсfl ‰лfl ‚ычислениfl ‰‡й‰жест‡. Oracle по‚еflет с‚ою т‡блицу и н‡хо‰ит, что есть ‰‡й‰жест ‰лfl это„о сообщениfl ‚ т‡блице (п傇fl сток‡). Oracle посто ‚ы‰‡ет соот‚етст‚ующий ‰‡й‰жест (13AB). 371
Кус
Киптфиfl и безоп‡сность сетей
Пиме 11.4 Oracle ‚ Пимее 11.3. не может пименить фомулу или ‡л„оитм, чтобы со片ть ‰‡й‰жест ‰лfl сообщениfl. Н‡пиме, ‚ооб‡зим, что Oracle использует фомулу h (M) = М mod n. Тепеь пе‰положим, что Oracle уже ‚ы‰‡л h (М1) и h (М2). Если но‚ое сообщение пе‰ст‡‚лено к‡к М3 = M1 + М2 , Oracle не ‰олжен ‚ычислить h (М3). Но‚ый ‰‡й‰жест — только [h (M1) + h (M2)] mod n, поскольку: (M3) = (M1 + M2) mod n = M1 mod n + M2 mod n = [h(M1) + h(M2)] mod n Это н‡уш‡ет тетье тебние: к‡ж‰ый ‰‡й‰жест ‰олжен быть ‚ыб‡н беспоfl‰очно н‡ осно‚е сообщениfl, ‰‡нно„о Oracle.
Пинцип „олубиных flщико‚1 Пе‚ое понflтие, с котоым мы ‰олжны быть зн‡комы ‰лfl то„о, чтобы понflть ‡н‡лиз случ‡йной Мо‰ели Oracle, — пинцип „олубиных flщико‚: если n flщико‚ з‡нflты n + 1 „олубflми, то по к‡йней мее о‰ин flщик з‡нflт ‰‚умfl „олубflми. Обобщенн‡fl ‚есиfl пинцип‡ „олубиных flщико‚: если flщико‚ n з‡нflты kn +1 „олубflми, то по к‡йней мее о‰ин flщик з‡нflт k + 1 „олубем. Поскольку осно‚н‡fl и‰еfl хэшиниfl ‰иктует, что ‰‡й‰жест ‰олжен быть кооче, чем сообщение, со„л‡сно пинципу „олубиных flщико‚ мо„ут быть конфликты. Ду„ими слми, есть некотоые ‰‡й‰жесты, котоые соот‚етст‚уют больше чем о‰ному сообщению; отношениfl меж‰у ‚озможными сообщениflми и ‚озможными ‰‡й‰жест‡ми — «мно„о к о‰ному». Пиме 11.5 Пе‰положим, что сообщениfl ‚ хэш-функции ‰линой 6 бито‚, ‰‡й‰жесты только ‰линой 4 бит‡. Т‡ ‚озможное число ‰‡й‰жесто‚ (flщики) — от 24 = 16 и ‚озможное число сообщений („олуби) — 2 6 = 64. Это озн‡ч‡ет n = 16 и kn + 1 = 64, т‡к что k больше, чем 3. Это „о‚оит о том, что по к‡йней мее о‰ин ‰‡й‰жест соот‚етст‚ует четыем (k + 1) сообщениflм.
Поблемы ‰нfl ож‰ениfl Втоое понflтие, котоое мы ‰олжны зн‡ть пее‰ ‡н‡лизом случ‡йной мо‰ели Oracle, из‚естно к‡к поблем‡ ‰нfl ож‰ениfl. Обычно ‚ кус‡х теоии ‚еоflтностей ст‡лк肇ютсfl с четыьмfl ‡зличными поблем‡ми ‰нfl ож‰ениfl, и тетьfl из них ин‡ н‡зы‚‡етсfl ‰окс ‰нfl ож‰ениfl. Рисунок 11.7 иллюстиует смысл к‡ж‰ой поблемы.
1
Пинцип „олубиных flщико‚ — по-‡н„лийски pigeonhole principle. Втоой ‡н„лоflзычный темин — Dirihlet’s box Principle (пинцип flщик‡ Диихле). Н‡‰о иметь ‚ ‚и‰у, что ‡н„лоflзычный темин Dirichlet principle (пинцип Диихле) обозн‡ч‡ет и ‰у„ие понflтиfl, не относflщиесfl к киптфии (пим. пее‚о‰чик‡). 372
Лекциfl 11
Целостность сообщениfl и уст‡но‚ление по‰линности сообщениfl
Рис.11.7. Четые поблемы ‰нfl ож‰ениfl Опис‡ние поблем Ниже пи‚о‰flтсfl поблемы ‰нfl ож‰ениfl, ‚ы‡женные ‚ темин‡х, котоые мо„ут быть пименены к хэш-функциflм безоп‡сности. Об‡тите ‚ним‡ние, что темин с некотоой ‚еоflтностью озн‡ч‡ет случ‡и, к‡ ‚еоflтность событиfl P ≥ 1/2. Поблем‡ 1. К‡ко‚о миним‡льное число k сту‰енто‚ ‚ кл‡ссной комн‡те, т‡кое, что с некотоой ‚еоflтностью по к‡йней мее о‰ин сту‰ент имеет 燇нее 燉‡нный ‰ень ож‰ениfl? Эт‡ поблем‡ может быть обобщен‡ сле‰ующим об‡зом. Мы имеем о‰ноо‰но ‡спе‰еленную случ‡йную пееменную с N ‚озможными зн‡чениflми (меж‰у 0 и N – 1). К‡ко‚о миним‡льное число экземплflо‚, т‡ких, что с некотоой ‚еоflтностью по к‡йней мее о‰ин экземплfl ‡‚ен 燇нее 燉‡нному зн‡чению? Поблем‡ 2. К‡ко‚о миним‡льное число k сту‰енто‚ ‚ кл‡ссной комн‡те, т‡кое, что с некотоой ‚еоflтностью по к‡йней мее о‰ин сту‰ент имеет тот же с‡мый ‰ень ож‰ениfl, к‡к и сту‰ент, ‚ыб‡нный пофессоом? Эт‡ поблем‡ может быть обобщен‡ сле‰ующим об‡зом. Мы имеем о‰ноо‰но ‡спе‰еленную случ‡йную пееменную с N ‚озможными зн‡чениflми (меж‰у 0 и N – 1) К‡кое миним‡льное число экземплflо‚, k, т‡ких, что с некотоой ‚еоflтностью по к‡йней мее о‰ин экземплfl fl‚лflетсfl ‡‚ным ‚ыб‡нному? Поблем‡ 3. К‡ко‚о миним‡льное число k сту‰енто‚ ‚ кл‡ссной комн‡те, т‡кое, что с 燉‡нной ‚еоflтностью по к‡йней мее ‰‚‡ сту‰ент‡ имеют тот же с‡мый ‰ень ож‰ениfl? Эт‡ поблем‡ может быть обобщен‡ сле‰ующим об‡зом. Мы имеем о‰ноо‰но ‡спе‰еленную случ‡йную пееменную с N ‚озможными зн‡чениflми (меж‰у 0 и N – 1). К‡ко‚о миним‡льное число экземплflо‚ k, т‡ких, что с некотоой ‚еоflтностью по к‡йней мее ‰‚‡ экземплfl‡ ‡‚ны? 373
Кус
Киптфиfl и безоп‡сность сетей
Поблем‡ 4. Мы имеем ‰‚‡ кл‡сс‡, к‡ж‰ый с k сту‰ент‡ми. К‡ко‚о миним‡льное зн‡чение A, т‡кое, чтобы по к‡йней мее о‰ин сту‰ент из пе‚ой кл‡ссной комн‡ты с некотоой ‚еоflтностью имел тот же с‡мый ‰ень ож‰ениfl, что и сту‰ент из ‚тоой кл‡ссной комн‡ты? Эт‡ поблем‡ может быть обобщен‡ сле‰ующим об‡зом. Мы имеем о‰ноо‰но ‡спе‰еленную случ‡йную пееменную N со зн‡чениflми (меж‰у 0 и N – 1). Мы „енеиуем ‰‚‡ множест‚‡ случ‡йных зн‡чений, к‡ж‰ое ‚еличиной k. К‡ко‚о миним‡льное число k, т‡кое, что с некотоой ‚еоflтностью по к‡йней мее о‰ин экземплfl пе‚о„о множест‚‡ ‡‚ен о‰ному об‡зцу ‚о ‚тоом множест‚е? Результ‡ты ешений Длfl з‡интееснных чит‡телей ешениfl этих поблем ‰‡ютсfl ‚ пиложении E. Результ‡ты пи‚е‰ены ‚ т‡блице 11.3. Т‡блиц‡ 11.3. Результ‡ты ешений четыех поблем ‰ней ож‰ениfl Поблем‡ Веоflтность
Общее зн‡чение ‰лfl k
Зн‡чение k пи P = 1/2
k ≈ ln[1/(1–P) × N k ≈ ln[1/(1–P) × N + 1
k ≈ 0,69 × N k ≈ 0,69 × N
Число сту‰енто‚ (N=365) 253 254
1 2
P ≈ l – e-k/N P ≈ l – e-(k-1)N
3 4
P ≈ 1 - ek(k-1)/2N k ≈ {2 ln [1/1–P]}1/2 × N1/2 k ≈ 1,18 × N1/2 23 P ≈ 1 – ek2/2N k ≈ {ln [1/1–P]}1/2 × N1/2 k ≈ 0,83 × N1/2 16
З‡темненное зн‡чение, 23, fl‚лflетсfl ешением кл‡ссическо„о ‰окс‡ ‰нfl ож‰ениfl; если есть 23 сту‰ент‡ ‚ кл‡ссной комн‡те, то с некотоой ‚еоflтностью (с P ≥ 1/2) ‰‚‡ сту‰ент‡ имеют о‰ин‡ко‚ый ‰ень ож‰ениfl (и„ноиуfl „о‰ их ож‰ениfl). С‡‚нение поблем Зн‡чение k ‚ поблем‡х 1 или 2 попоцион‡льно N; зн‡чение k ‚ поблем‡х 3 или 4 fl‚лflетсfl попоцион‡льным N1/2. Коотко ск‡жем, что пе‚ые ‰‚е поблемы с‚flз‡ны с ‡т‡к‡ми пооб‡з‡ и ‚тоо„о пооб‡з‡; тетьfl и чет‚ет‡fl поблемы с‚flз‡ны с ‡т‡кой коллизии. С‡‚нение пок‡зы‚‡ет, что н‡мно„о более ту‰но н‡ч‡ть ‡т‡ку пооб‡з‡ или ‡т‡ку ‚тоо„о пооб‡з‡, чем ‡т‡ку коллизии. Рисунок 11.8 ‰‡ет „‡ф P пи ‡зличных k. Длfl пе‚ой и ‚тоой поблем пок‡з‡н о‰ин „‡ф (зн‡чениfl ‚еоflтностей — очень близки). Г‡фы ‰лfl ‚тоой и тетьей поблем отлич‡ютсfl сильнее.
Ат‡ки случ‡йной мо‰ели Oracle Чтобы лучше поним‡ть х‡‡кте хэш-функций и ‚‡жность случ‡йной мо‰ели Oracle, ‡ссмотим, к‡к Е‚‡ может ‡т‡кть хэш-функцию, со片нную Oracle. Пе‰положим, что хэш-функциfl со片ет ‰‡й‰жесты n бито‚. Т‡ ‰‡й‰жест можно пе‰ст‡‚ить к‡к случ‡йную пееменную, о‰ноо‰но ‡спе‰еленную меж‰у 0 374
Лекциfl 11
Целостность сообщениfl и уст‡но‚ление по‰линности сообщениfl
Рис. 11.8. Г‡ф четыех поблем ‰нfl ож‰ениfl и N – 1, ‚ котоой N = 2n. Ду„ими слми, есть ‚озможные 2n зн‡чений ‰лfl ‰‡й‰жест‡; к‡ж‰ый ‡з Oracle случ‡йно ‚ыби‡ет о‰но из этих зн‡чений ‰лfl сообщениfl. Об‡тите ‚ним‡ние: это не озн‡ч‡ет, что ‚ыбо fl‚лflетсfl исчепы‚‡ющим. Некотоые зн‡чениfl мо„ут ник‡ не ‚ыби‡тьсfl, но некотоые мо„ут быть ‚ыб‡ны несколько ‡з. Мы пиним‡ем, что ‡л„оитм хэш-функции обще‰оступен и Е‚‡ зн‡ет ‡зме ‰‡й‰жест‡ n. Ат‡к‡ пооб‡з‡ Е‚‡ пеех‚‡тил‡ ‰‡й‰жест D = h (M); он‡ хочет н‡йти любое сообщение М’, т‡кое, что D = h (М’). Е‚‡ может со片ть список k сообщений и ‚ыполнить ‡л„оитм 11.1. Ал„оитм может н‡йти сообщение, ‰лfl котоо„о D fl‚лflетсfl ‰‡й‰жестом, или может потепеть неу‰‡чу. К‡к ‚еоflтность успех‡ это„о ‡л„оитм‡? Оче‚и‰но, это 燂исит от ‡зме‡ списк‡, k, ‚ыб‡нно„о Е‚ой. Чтобы н‡йти ‚еоflтность, мы используем пе‚ую поблему ‰нfl ож‰ениfl. Д‡й‰жест, со片нный ‚ соот‚етст‚ии с пммой, опе‰елflет езульт‡ты случ‡йной пееменной. Веоflтность успех‡ — P = 1 – e-k/N. Ал„оитм 11.1. Ат‡к‡ н‡ пооб‡з Pre¥mage_Attack (D) { for (¥ =1 to k) { со片ть (M[¥]) T ← h(M [¥ ]) // T – ‚еменный ‰‡й‰жест ¥f (T = D) return M[¥] } return fa¥lure { 375
Кус
Киптфиfl и безоп‡сность сетей
К‡кой ‰олжен быть ‡зме k, если Е‚‡ ‰олжн‡ ‰ости„нуть успех‡ по к‡йней мее ‚ 50 поцент‡х случ‡е‚? Мы пок‡з‡ли это зн‡чение ‚ т‡блице 11.3. Длfl пе‚ой поблемы ‰нfl ож‰ениfl: k ≈ 0,69 × N, или k ≈ 0,69 × 2n. Ду„ими слми, чтобы Е‚‡ ‰обил‡сь с‚ое„о более чем ‚ 50 поцент‡х случ‡е‚, он‡ ‰олжн‡ со片ть список ‰‡й‰жест‡, котоый попоцион‡лен 2n. Сложность ‡т‡ки пооб‡з‡ попоцион‡льн‡ 2n. Пиме 11.6 Киптфическ‡fl хэш-функциfl использует ‰‡й‰жест 64 бит‡. Сколько ‰‡й‰жесто‚ Е‚‡ ‰олжн‡ со片ть, чтобы н‡йти пе‚он‡ч‡льное сообщение с ‚еоflтностью большей, чем 0,5? Решение Число ‰‡й‰жесто‚, котоые бу‰ут со片ны, — k × 0,69 × 2n = 0,69 × 264. Это большое зн‡чение. Д‡же если Е‚‡ сможет „енеить 230 (почти о‰ин милл臉) сообщений ‚ секун‰у, тебуетсfl 0,69 × 234 секун‰ы или больше чем 500 лет. Это озн‡ч‡ет, что ‰‡й‰жест сообщениfl ‡змеом 64 бит‡ fl‚лflетсfl безоп‡сным относительно ‡т‡ки пооб‡з‡, но, к‡к мы у‚и‰им ‰‡лее, он не з‡щищен от ‡т‡ки коллизии. Ат‡к‡ ‚тоо„о пооб‡з‡ Е‚‡ пеех‚‡тил‡ ‰‡й‰жест D = h (M) и соот‚етст‚ующее сообщение М.; он‡ хочет н‡йти ‰у„ое сообщение M’, т‡кое, чтобы h(M’) = D. Е‚‡ может со片ть список из k – 1 сообщениfl и ‚ыполнить Ал„оитм 11.2. Ал„оитм 11.2. Ат‡к‡ ‚тоо„о пооб‡з‡ Second_Pre¥mage_Attack (D, M) { for (¥ = 1 to k – 1) { со片ть (M[¥] T ← h (M[¥]) // T — ‚еменный ‰‡й‰жест If (T = D) return M[¥] } return fa¥lure }
Ал„оитм может н‡йти ‚тоое сообщение, ‰лfl котоо„о D fl‚лflетсfl т‡кже ‰‡й‰жестом, или может потепеть неу‰‡чу. К‡к ‚еоflтность успех‡ это„о ‡л„оитм‡? Оче‚и‰но, это 燂исит от ‡зме‡ списк‡, k, ‚ыб‡нно„о Е‚ой. Чтобы н‡йти ‚еоflтность положительно„о исх ‡л„оитм‡, мы используем ‚тоую поблему ‰нfl ож‰ениfl. Д‡й‰жест, со片нный ‚ соот‚етст‚ии с пммой, опе‰елflет ‚ыхо‰ное зн‡чение случ‡йной пееменной. Веоflтность успех‡ – P ≈ 1 – e1-(k-1)/N. К‡кой ‰олжен быть ‡зме k, если Е‚‡ хочет ‰остичь успех‡ по к‡й376
Лекциfl 11
Целостность сообщениfl и уст‡но‚ление по‰линности сообщениfl
ней мее ‚ 50 поцент‡х случ‡е‚? Мы уже ук‡з‡ли это зн‡чение ‚ т‡блице 11.3 ‰лfl ‚тоой поблемы ‰нfl ож‰ениfl: k ≈ 0,69 × N + 1 или k ≈ 0,69 × 2n. Ду„ими слми, чтобы Е‚‡ ‰обил‡сь с‚ое„о более чем ‚ 50 поцент‡х случ‡е‚, он‡ ‰олжн‡ со片ть список ‰‡й‰жест‡, котоый попоцион‡лен 2n. Сложность ‡т‡ки ‚тоо„о пооб‡з‡ попоцион‡льн‡ 2n. Ат‡к‡ коллизии Е‚‡ ‰олжн‡ н‡йти ‰‚‡ сообщениfl, М. и М.’, т‡кие, что h (M) = h (М.’). Он‡ может со片ть список сообщений и ‚ыполнить ‡л„оитм 11.3. Ал„оитм 11.3. Ат‡к‡ коллизии Coll¥s¥on_Attack { for (¥ = 1 to k) { со片ть (M[¥]) D[¥] ← h (M[¥]) // D[¥] — список со片‚‡емых ‰‡й‰жесто‚ for (j = 1 to ¥ - 1) { ¥f (D[¥] = D[j] return (M[¥] и M[j] ) } } return fa¥lure }
Ал„оитм может н‡йти ‰‚‡ сообщениfl с о‰ним и тем же ‰‡й‰жестом. К‡к ‚еоflтность успех‡ это„о ‡л„оитм‡? Оче‚и‰но, это 燂исит от ‡зме‡ списк‡, k, ‚ыб‡нно„о Е‚ой. Чтобы н‡йти ‚еоflтность событиfl, мы используем тетью поблему ‰нfl ож‰ениfl. Д‡й‰жест, со片нный ‚ соот‚етст‚ии с пммой, опе‰елflет ‚ыхо‰ное зн‡чение случ‡йной пееменной. Веоflтность успех‡ — P = 1 – e1-(k-1)/2N. К‡кой ‰олжен быть ‡зме k, если Е‚‡ хочет ‰остичь успех‡ по к‡йней мее ‚ 50 поцент‡х случ‡е‚? Мы уже ук‡з‡ли это зн‡чение ‚ т‡блице 11.3 ‰лfl тетьей поблемы ‰нfl ож‰ениfl: k ≈ 1,18 × N1/2, или k ≈ 1,18 × 2n/2. Ду„ими слми, чтобы Е‚‡ ‰обил‡сь с‚ое„о более чем ‚ 50 поцент‡х случ‡е‚, он‡ ‰олжн‡ со片ть список ‰‡й‰жест‡, котоый попоцион‡лен 2n/2. Сложность ‡т‡ки коллизии попоцион‡льн‡ 2n/2. Пиме 11.7 Киптфическ‡fl хэш-функциfl использует ‰‡й‰жест 64 бит‡. Сколько ‰‡й‰жесто‚ Е‚‡ ‰олжн‡ со片ть, чтобы н‡йти ‰‚‡ сообщениfl с тем же с‡мым ‰‡й‰жестом с ‚еоflтностью больше чем 0,5? 377
Кус
Киптфиfl и безоп‡сность сетей
Решение Число ‰‡й‰жесто‚, котоые бу‰ут со片ны, k ≈ 1,18 × 2n/2 ≈ 1,18 × 232. Если Е‚‡ может по‚еить 220 (почти о‰ин миллион) сообщений ‚ секун‰у, потебуетсfl 1,18 × 212 секун‰, или меньше чем ‰‚‡ ч‡с‡. Это озн‡ч‡ет, что ‰‡й‰жест сообщениfl ‡зме‡ 64 бит‡ небезоп‡сен относительно ‡т‡ки коллизии. Дополнительн‡fl ‡т‡к‡ коллизии Пе‰ы‰ущ‡fl ‡т‡к‡ коллизии не может быть полезн‡ ‰лfl Е‚ы — ей пихо‰итсfl со片ть ‰‚‡ сообщениfl, о‰но е‡льное и о‰но фикти‚ное, котоые имеют о‰но и то же зн‡чение хэш-функции. К‡ж‰ое сообщение ‰олжно быть зн‡ч‡щим. Пе‰ы‰ущий ‡л„оитм не обеспеч肇ет устойчи‚ость коллизии, ешение состоит ‚ том, чтобы со片ть ‰‚‡ зн‡ч‡щих сообщениfl, но ‰оᇂить избыточность к сообщению или мо‰ифицить сообщение, чтобы изменить со‰еж‡ние сл, или пиᇂлflть некотоые избыточные сл, и т‡к ‰‡лее, ‚ сообщение, не изменflfl зн‡чение е„о хэш‡. Н‡пиме, множест‚о сообщений может быть со片но из пе‚о„о сообщениfl — ‰оᇂлением побело‚ или изменением сл, к‡ некотоые сл ‰ополнflютсfl оконч‡ниflми. Втоое сообщение может т‡кже со片ть множест‚о сообщений. Если обозн‡чить пе‚он‡ч‡льное сообщение М, ‡ фикти‚ное сообщение — М’, Е‚‡ со片ет k ‡зличных ‚‡и‡нто‚ М (M1, M2 ,... , Mk) и k ‡зличных ‚‡и‡нто‚ М’ (M’1, M’2 ,... , M’k) . З‡тем Е‚‡ использует ‡л„оитм 11.4 ‰лfl то„о, чтобы н‡ч‡ть ‡т‡ку. Ал„оитм 11.4. Дополнительн‡fl ‡т‡к‡ коллизии Alternate_Coll¥s¥on _Attack (M[k], M’[k]) { for (¥ = 1 to k) { D[¥] ← h ([M[¥]) D’[¥] ← h [M’[¥]) ¥f (D[¥] = D’[j] return (M[¥], M’[j]) } return fa¥lure } К‡к ‚еоflтность успех‡ это„о ‡л„оитм‡? Оче‚и‰но, это 燂исит от ‡зме‡ списк‡ k, ‚ыб‡нно„о Е‚ой. Чтобы н‡йти ‚еоflтность, мы используем чет‚етую поблему ‰нfl ож‰ениfl. Д‚‡ списк‡ ‰‡й‰жест‡, со片нные ‚ соот‚етст‚ии с пммой, опе‰елflют ‰‚‡ ‚ыхо‰ных зн‡чениfl случ‡йной ‚еличины. Веоflтность успех‡ ‡‚н‡ P ≈ 1 – e–k2/N. К‡кой ‰олжен быть ‡зме k, если Е‚‡ хочет ‰остичь успех‡ по к‡йней мее ‚ 50 поцент‡х случ‡е‚? Мы уже ук‡з‡ли это зн‡чение ‚ т‡блице ‰лfl чет‚етой поблемы ‰нfl ож‰ениfl: k ≈ 0,83 × N1/2 или k ≈ 0,83 × 2n/2. Ду„ими слми, чтобы Е‚‡ ‰обил‡сь с‚ое„о более чем ‚ 50 поцент‡х случ‡е‚, он‡ ‰олжн‡ со片ть список ‰‡й‰жест‡, котоый попоцион‡лен 2n/2. Сложность ‰ополнительной ‡т‡ки коллизии попоцион‡льн‡ 2n/2. 378
Лекциfl 11
Целостность сообщениfl и уст‡но‚ление по‰линности сообщениfl
Ито„и ‡т‡к Т‡блиц‡ 11.4 пок‡зы‚‡ет уо‚ень сложности ‰лfl к‡ж‰ой ‡т‡ки, если ‰‡й‰жест имеет ‰лину n бит. Т‡блиц‡ 11.4. Уо‚ни сложности ‰лfl к‡ж‰о„о тип‡ ‡т‡ки Ат‡к‡ Пооб‡з Втоой пооб‡з Коллизиfl Дополнительн‡fl коллизиfl
Зн‡чение пи P =1/2 Поfl‰ок ‚ехне„о пе‰ел‡ k ≈ 0,69 × 2n+1 2n k ≈ 0,69 × 2n+1 2n k ≈ 1,18 × 2n/2 2n/2 k ≈ 0,83 × 2n/2 2n/2
Т‡блиц‡ 11.4 иллюстиует, что поfl‰ок или сложность ‡т‡ки ‰лfl ‡т‡ки коллизии fl‚лflетсfl н‡мно„о меньшим, чем ‰лfl пооб‡з‡ или ‡т‡к ‚тоо„о пооб‡з‡. Если ‡л„оитм хэш‡ fl‚лflетсfl стойким к ‡т‡к‡м коллизии, мы можем не ‚олнтьсfl о безоп‡сности ‡т‡к пооб‡з‡ и ‡т‡к ‚тоо„о пооб‡з‡. Пиме 11.8 Пе‚он‡ч‡льно хэш-функции с ‰‡й‰жестом н‡ 64 бит‡, к‡к по뇄‡ли, были стойкими к ‡т‡к‡м коллизии. Но с у‚еличением скоости об‡ботки ‚се обн‡ужили, что эти хэш-функции больше не безоп‡сны. Е‚‡ ну扇етсfl только ‚ 264/2 = 232 испыт‡ний, чтобы н‡ч‡ть ‡т‡ку с ‚еоflтностью 1/2 или больше. Пе‰положим, что он‡ может ‚ыполнить 220 (о‰ин миллион) испыт‡ний ‚ секун‰у. Он‡ может по‚ести ‡т‡ку з‡ 232 / 2 20 = 212 секун‰ (почти ч‡с!). Пиме 11.9 MD5 (см. лекцию 12), котоый был о‰ной из ст‡н‰‡тных хэш-функций ‚ течение ‰ол„о„о ‚емени, со片ет ‰‡й‰жесты ‚ 128 бито‚. Чтобы по‚ести ‡т‡ку коллизии, поти‚ник ‰олжен по‚ести 264 (2128/2) испыт‡ний ‡л„оитм‡ коллизии. Д‡же если поти‚ник может ‚ыполнить 230 (больше чем о‰ин милл臉) испыт‡ний ‚ секун‰у, тебуетсfl 234 секун‰ы (больше чем 500 лет), чтобы по‚ести ‡т‡ку. Этот тип ‡т‡ки б‡зиуетсfl н‡ случ‡йной мо‰ели Oracle. Было ‰ок‡з‡но, что MD5 может быть ‡т‡кн з‡ менее чем 264 испыт‡ний — из-з‡ стуктуы ‡л„оитм‡. Пиме 11.10 SHA-1 (см. лекцию 12), ст‡н‰‡тн‡fl хэш-функциfl, ‡з‡бот‡нн‡fl NIST, со片ет ‰‡й‰жесты ‚ 160 бито‚. Чтобы по‚ести ‡т‡ку коллизии, поти‚ник ‰олжен исполнить 2160/2 = 280 испыт‡ниfl ‚ ‡л„оитме коллизии. Д‡же если поти‚ник может ‚ыполнить 230 (больше чем о‰ин милл臉) испыт‡ний ‚ секун‰у, тебуетсfl 250 секун‰ (больше чем ‰есflть тысflч лет), чтобы н‡ч‡ть ‡т‡ку. О‰н‡ко иссле‰о‚‡тели обн‡ужили некотоые особенности функции, котоые поз‚олflют по‚ести ‡т‡ку н‡ эту хэш-функцию з‡ меньшее ‚емfl, чем ‚ычисленное ‚ыше. Пиме 11.11 Нfl хэш-функциfl, кото‡fl, ‚еоflтно, ст‡нет NIST-ст‡н‰‡том, — SHA512 (см. лекцию 12) имеет ‰‡й‰жест н‡ 512 бито‚. Эт‡ функциfl fl‚но стойк‡fl к ‡т‡379
Кус
Киптфиfl и безоп‡сность сетей
к‡м коллизии, осннным н‡ случ‡йной мо‰ели Oracle. Тебуетсfl от 2512/2 ‰о 2256 испыт‡ний, чтобы н‡йти коллизию с ‚еоflтностью 1/2.
Ат‡ки стуктуы Все обсуж‰ениfl, с‚flз‡нные с ‡т‡к‡ми хэш-функций, б‡зились н‡ и‰е‡льной киптфической хэш-функции, кото‡fl похож‡ н‡ Oracle. Хотfl этот тип ‡н‡лиз‡ обеспеч肇ет систем‡тическую оценку ‡л„оитмо‚, п‡ктически хэш-функции мо„ут иметь некотоые ‚нутенние стуктуы, котоые мо„ут с‰ел‡ть их н‡мно„о сл‡бее. Не‚озможно н‡йти хэш-функцию, кото‡fl со片ет ‰‡й‰жесты, чтобы он‡ ‰ел‡л‡ их полностью случ‡йными. Поти‚ник может иметь ‰у„ие инстумент‡льные се‰ст‚‡ ‰лfl то„о, чтобы ‡т‡кть хэш-функцию. О‰но из этих инстумент‡льных се‰ст‚, н‡пиме, ‡т‡к‡ с‚е‰ениfl к сее‰ине, кото‡fl обсу扇л‡сь ‚ лекции 6 ‰лfl ‰‚ук‡тно„о DES. Мы у‚и‰им ‚ сле‰ующих лекциflх, что некотоые хэш-‡л„оитмы п‡ютсfl этому типу ‡т‡ки. Эти типы хэш-функции ‰‡леки от и‰е‡льной мо‰ели, и нужно их изб儇ть.
11.3. Уст‡но‚ление по‰линности сообщениfl Д‡й‰жест сообщениfl „‡‡нтиует целостность сообщениfl — то есть что сообщение не было изменено. Д‡й‰жест сообщениfl, о‰н‡ко, не по‰т‚е扇ет по‰линность пе則чи сообщениfl. К‡ Алис‡ пе則ет сообщение Бобу, Боб ‰олжен зн‡ть, что это сообщение точно пибыло от Алисы. Длfl то„о, чтобы обеспечить уст‡но‚ление по‰линности сообщениfl, Алис‡ ‰олжн‡ пе‰ост‡‚ить ‰ок‡з‡тельст‚о, что это сообщение посл‡л‡ именно он‡, ‡ не с‡мо炇нец. Д‡й‰жест сообщениfl не может обеспечить т‡кое ‰ок‡з‡тельст‚о. Д‡й‰жест, со片нный киптфической хэш-функцией, обычно н‡зы‚‡етсfl ко‰ом обн‡ужениfl мо‰ифик‡ции (Modification Detection Code — MDC), — ко‰ может обн‡ужить любое изменение ‚ сообщении. Коме это„о, мы ну扇емсfl ‚ ‡утентифик‡ции сообщениfl (уст‡но‚ление по‰линности поисхож‰ениfl ‰‡нных) — ‚ ко‰е уст‡но‚лениfl по‰линности сообщениfl (Message Authentication Code — MAC).
Ко‰ обн‡ужениfl мо‰ифик‡ции Ко‰ обн‡ужениfl мо‰ифик‡ции (MDC) — ‰‡й‰жест сообщениfl, котоый может ‰ок‡з‡ть целостность сообщениfl и по‰т‚е‰ить, что сообщение не было изменено. Если Алис‡ ‰олжн‡ пе則ть сообщение Бобу и хочет быть у‚еен‡, что сообщение не бу‰ет изменено ‚о ‚емfl пе則чи, он‡ может со片ть ‰‡й‰жест, MDC-сообщение и посл‡ть сообщение и MDC Бобу. Боб может со片ть но‚ый MDC из сообщениfl и с‡‚нить полученный MDC и но‚ый MDC. Если они о‰ин‡ко‚ые, зн‡чит, сообщение не был изменено. Рисунок 11.9 иллюстиует и‰ею. Рисунок 11.9 пок‡зы‚‡ет, что сообщение может быть пе則но чеез не퇉ежный к‡н‡л. Е‚‡ может чит‡ть или ‰‡же изменflть сообщение. MDC, о‰н‡ко, ‰олжен быть пе則н чеез безоп‡сный к‡н‡л, т‡кой к‡н‡л н‡зы‚‡ют безоп‡сный (safe), он не поз‚олflет изменений. 380
Лекциfl 11
Целостность сообщениfl и уст‡но‚ление по‰линности сообщениfl
Рис. 11.9. Ко‰ обн‡ужениfl мо‰ифик‡ции Если сообщение и MDC пе則ютсfl чеез не퇉ежный к‡н‡л, Е‚‡ может пеех‚‡тить сообщение, изменить е„о, со片ть но‚ый MDC из сообщениfl и пе則ть их Бобу. Боб ник‡ не узн‡ет, что сообщение пишло от Е‚ы. Об‡тите ‚ним‡ние, что темин безоп‡сный может озн‡ч‡ть, что мы имеем ‰ело с п‡тнеом, котоому ‰о‚еflем. Темин к‡н‡л может озн‡ч‡ть н‡личие ‚еменно„о помежутк‡ меж‰у пе則чей и пиемом. Н‡пиме, если Алис‡ со片ет MDC с‚ое„о 燂ещ‡ниfl и пе則ет е„о нот‡иусу, котоый сох‡нflет блокинное сообщение ‰о ее смети, — он‡ использо‚‡л‡ безоп‡сный к‡н‡л. Алис‡ пишет с‚ое 燂ещ‡ние и объfl‚лflет это публично (не퇉ежный к‡н‡л). Алис‡ ‰ел‡ет MDC из сообщениfl и пе則ет е„о нот‡иусу, котоый сох‡нflет е„о ‰о ее смети (безоп‡сный к‡н‡л). Хотfl Е‚‡ может изменить со‰еж‡ние 燂ещ‡ниfl, по‚еенный может со片ть MDC 燂ещ‡ниfl и ‰ок‡з‡ть, что ‚есиfl Е‚ы — пелк‡. Если хэш-функциfl киптфии используетсfl ‰лfl со片ниfl MDC, опис‡нные ‚ н‡ч‡ле этой лекции ти с‚ойст‚‡ Е‚ой бу‰ут потеflны.
Ко‰ уст‡но‚лениfl по‰линности сообщениfl (Message Authentication Code — MAC) Чтобы „‡‡нтить целостность сообщениfl, по‰линность пе‚он‡ч‡льно„о сообщениfl и то, что со片тель сообщениfl — Алис‡, ‡ не кто-то ‰у„ой, мы ‰олжны изменить ко‰ обн‡ужениfl мо‰ифик‡ции (MDC) н‡ ко‰ уст‡но‚лениfl по‰линности сообщениfl (Message Authentication Code — MAC). Отличие меж‰у MDC и MAC ‚ том, что ‚тоой ‚ключ‡ет секетность меж‰у Алисой и Бобом, н‡пиме секетный ключ, котоым Е‚‡ не об뇉‡ет. Рисунок 11.10 иллюстиует и‰ею. Алис‡ использует хэш-функцию, чтобы со片ть MAC по объе‰инению (конк‡тен‡ции) ключ‡ и сообщениfl — h (K|M). Он‡ пе則ет сообщение и MAC Бобу по не퇉ежному к‡н‡лу. Боб от‰елflет сообщение от MAC и з‡тем ‰ел‡ет но‚ый MAC из объе‰инениfl сообщениfl и ключ‡ з‡секеч肇ниfl. З‡тем Боб с‡‚н肇ет 381
Кус
Киптфиfl и безоп‡сность сетей
Рис. 11.10. Ко‰ уст‡но‚лениfl по‰линности сообщениfl н則‚но со片нный MAC с полученным. Если об‡ эти MAC со‚‡ют, то сообщение по‰линное и не было изменено поти‚ником. Об‡тите ‚ним‡ние, что ‚ этом случ‡е нет необхо‰имости использть ‰‚‡ к‡н‡л‡. И сообщение, и MAC можно пе則ть по о‰ному, хотfl бы и с‡мому не퇉ежному к‡н‡лу. Е‚‡ может ‚и‰еть сообщение, но он‡ не может со片ть но‚ое сообщение, чтобы пел‡ть исхо‰ное, потому что Е‚‡ не об뇉‡ет ключом з‡секеч肇ниfl меж‰у Алисой и Бобом. Он‡ неспособн‡ со片ть т‡кой же MAC, к‡к это с‰ел‡л‡ Алис‡. MAC, котоый мы опис‡ли, упомин‡етсfl к‡к пефикс MAC, потому что ключ з‡секеч肇ниfl ‰оᇂлен ‚ конец к н‡ч‡лу сообщениfl. Мы можем иметь MAC с пефиксом ‚ конце, — ключ ‰оᇂлен ‚ конец после конц‡ сообщениfl. Мы можем комбинить мест‡ пефикс‡ и MAC, с тем же с‡мым ключом или ‰‚умfl ‡зличными ключ‡ми. О‰н‡ко MAC ‚ конце сообщениfl не퇉ежны. Безоп‡сность MAC Пе‰положим, что Е‚‡ пеех‚‡тил‡ сообщение М и ‰‡й‰жест h (K|M). К‡к Е‚‡ может пел‡ть сообщение, не зн‡fl ключ‡ з‡секеч肇ниfl? Есть ти ‚озможных случ‡fl. 1. Если ‡зме ключ‡ поз‚олflет полный пеебо, Е‚‡ может пееб‡ть ‚се ‚озможные ключи ‚ н‡ч‡ле сообщениfl и с‰ел‡ть ‰‡й‰жест (K|M), чтобы н‡йти, что этот ‰‡й‰жест ‡‚нflетсfl пеех‚‡ченному. Он‡ уже зн‡ет ключ и может успешно з‡менить сообщение пел‡нным сообщением по с‚оему ‚ыбоу. 2. Р‡зме ключ‡ ‚ MAC fl‚лflетсfl обычно очень большим, но Е‚‡ может использть ‰у„ой инстумент — ‡т‡ку пооб‡з‡, ‡ссмотенную ‚ ‡л„оитме 11.1. Он‡ использует ‡л„оитм, пок‡ не н‡хо‰ит X, т‡кой, что h (X) ‡‚ен MAC, котоый он‡ пеех‚‡тил‡. Тепеь он‡ может н‡йти ключ и успешно з‡менить сообщение пел‡нным. Поскольку ‡зме ключ‡ обычно очень большой, ‰лfl полно„о пеебо‡ Е‚‡ может только ‡т‡кть MAC, котоый пименflет ‡л„оитм пооб‡з‡. 382
Лекциfl 11
Целостность сообщениfl и уст‡но‚ление по‰линности сообщениfl
3. Получ‡fl некотоые п‡ы сообщений и их MAC, Е‚‡ может улflть ими, чтобы пи‰ум‡ть но‚ое сообщение и е„о MAC. Безоп‡сность MAC 燂исит от безоп‡сности осно‚но„о хэш-‡л„оитм‡. Вложенный MAC Чтобы улучшить безоп‡сность MAC, был ‡з‡бот‡н ‚ложенный MAC (nested MAC), ‚ котоом хэшиние ‰ел‡етсfl ‚ ‰‚‡ ш‡„‡. Н‡ пе‚ом ш‡„е ключ конк‡тениуетсfl (после‰о‚‡тельно объе‰инflетсfl) с сообщением и хэшиуетсfl, чтобы со片ть помежуточный ‰‡й‰жест. Н‡ ‚тоом ш‡„е ключ конк‡тениуетсfl с помежуточным ‰‡й‰жестом, чтобы со片ть конечный ‰‡й‰жест. Рисунок 11.11 иллюстиует общую и‰ею.
Рис. 11.11. Вложенный MAC Ко‰ ‡утентифик‡ции сообщениfl, осннный н‡ хэшинии (HMAC) Н‡цион‡льный институт ст‡н‰‡то‚ США (NIST) ‡з‡бот‡л ст‡н‰‡т (FIPS 198) ‰лfl ‚ложенно„о MAC, котоый ч‡сто н‡зы‚‡ют HMAC (HASH-BASED MESSAGE AUTHENTICATION CODE) (е„о 퇉о отлич‡ть от CMAC, котоый бу‰ет ‡ссмотен ‚ сле‰ующем ‡з‰еле). Ре‡лиз‡циfl HMAC н‡мно„о более сложн‡, чем упощенный ‚ложенный MAC, пок‡з‡нный н‡ ис. 11.11. Есть ‰ополнительные особенности, т‡кие к‡к з‡полнение. Рисунок 11.12 пок‡зы‚‡ет ‰ет‡ли. Пи е‡лиз‡ции HMAC мы похо‰им сле‰ующие ш‡„и: 1. Сообщение ‡з‰елflетсfl н‡ N блоко‚, к‡ж‰ый по b бито‚. 2. Ключ з‡секеч肇ниfl ‰ополнflетсfl сл傇 нулflми, чтобы со片ть ключ ‰линой b бит. Об‡тите ‚ним‡ние: екомен‰уетсfl, чтобы ключ з‡секеч肇ниfl, пеж‰е чем он бу‰ет ‰ополнен, был ‰линою более чем n бит, „‰е n — ‡зме HMAC. 3. Результ‡т ш‡„‡ 2 ск뇉ы‚‡ют по мо‰улю ‰‚‡ с конст‡нтой, н‡зы‚‡емой ipad (‚хо‰ной блокнот), чтобы со片ть блок b бит. Зн‡чение ipad — b/8 — состоит из по‚тоflемой после‰о‚‡тельности 00110110 (36 ‚ шест퇉ц‡теичном исчислении). 383
Кус
Киптфиfl и безоп‡сность сетей
4. Блок езульт‡т‡ писое‰иним спее‰и к сообщению из N-блоко‚. В езульт‡те получим N + 1 блоко‚. 5. Результ‡т ш‡„‡ 4 хэшиуетсfl, чтобы со片ть ‰‡й‰жест ‰линою n-бито‚. Мы н‡зы‚‡ем этот ‰‡й‰жест помежуточным HMAC.
Рис. 11.12. Дет‡ли HMAC 6. Помежуточный n-бито‚ый HMAC ‰ополнflют сл傇 нулflми, чтобы со片ть b-бито‚ый блок. 7. Ш‡„и 2 и 3 по‚тоflютсfl с ‰у„ой конст‡нтой opad (‚ыхо‰ной блокнот). Зн‡чение opad — b/8 — состоит из по‚тоflемой после‰о‚‡тельности 01011100 (5C ‚ шест퇉ц‡теичном исчислении). 8. Блок езульт‡т‡ ш‡„‡ 7 писое‰иним спее‰и к блоку ш‡„‡ 6. 9. Результ‡т ш‡„‡ 8 хэшиуетсfl, тем же с‡мым ‡л„оитмом хэшиниfl, что и ‚ п. 4, чтобы со片ть конечный n-‡зfl‰ный HMAC. 384
Лекциfl 11
Целостность сообщениfl и уст‡но‚ление по‰линности сообщениfl
CMAC Н‡цион‡льный институт ст‡н‰‡то‚ и техноло„ии США (NIST) ‡з‡бот‡л ст‡н‰‡т (FIPS113), н‡з‚‡нный Ал„оитмом уст‡но‚лениfl по‰линности ‰‡нных или ко‰ом ‡утентифик‡ции сообщениfl, осннный н‡ шифнии б‡зо‚о„о сообщениfl — CMAC (Сipher based Message, Authentication Code) или CBCMAC. Мето‰ по‰обен ежиму сцеплениfl блоко‚ шифнно„о текст‡ (CBC – Cipher Block Chaining), ‡ссмотенному ‚ лекции 8 ‰лfl шифниfl симметичными ключ‡ми. Рисунок 11.13 иллюстиует и‰ею.
Рис. 11.13. CMAC О‰н‡ко смысл з‰есь состоит не ‚ том, чтобы со片‚‡ть N блоко‚ з‡шифнно„о текст‡ из N блоко‚ исхо‰но„о текст‡. И‰еfl ‚ том, чтобы со片ть о‰ин блок MAC из N блоко‚ исхо‰но„о текст‡, используfl N ‡з шифние с симметичным ключом. Сообщение ‡з‰елено н‡ N блоко‚, к‡ж‰ый ‰лины m бит. Р‡зме CMAC — n бит. Если после‰ний блок — не m бит, он ‰ополнflетсfl е‰иничным битом (1), сопо‚о扇емым ‰ост‡точным количест‚ом нулей (0), чтобы с‰ел‡ть е„о m-бито‚ым. Пе‚ый блок сообщениfl з‡шифн симметичным ключом, чтобы со片ть m-‡зfl‰ный блок з‡шифнных ‰‡нных. Этот блок ск뇉ы‚‡етсfl (ИСКЛЮЧАЮЩЕЕ ИЛИ) со сле‰ующим блоком, ‡ езульт‡т з‡шифо‚ы‚‡етсfl сн, чтобы со片ть но‚ый m-бито‚ый блок. Поцесс по‰олж‡етсfl, пок‡ не бу385
Кус
Киптфиfl и безоп‡сность сетей
‰ет з‡шифн после‰ний блок сообщениfl. CMAC — это n к‡йних ле‚ых бит после‰не„о блок‡. В ‰ополнение к симметическому ключу, K, CMAC т‡кже использует ‰у„ой ключ, k, котоый пименflетсfl только н‡ после‰нем ш‡„е. Этот ключ получен с помощью ‡л„оитм‡ шифниfl исхо‰но„о текст‡, ‰ополненно„о m нуле‚ыми бит‡ми, и использнием шифо-ключ‡, K. Результ‡т з‡тем умножен н‡ x, если нет ник‡ко„о ‰ополнениfl, или н‡ x2, если ‰ополнение есть. Умножение по‚о‰итсfl ‚ GF (2m) с непи‚о‰имым полиномом степени m, ‚ыб‡нным ‚ соот‚етст‚ии с используемым конкетным потоколом. Об‡тите ‚ним‡ние, что эт‡ поце‰у‡ отлич‡етсfl от CBC (см. лекцию 8), мет, котоый пименflетсfl ‰лfl получениfl конфи‰енци‡льности. В упомflнутом ‡нее мето‰е ‚ыхо‰ к‡ж‰о„о шифниfl пе則ют к‡к з‡шифнный текст и ‚ то же с‡мое ‚емfl ск뇉ы‚‡ют (ИСКЛЮЧАЮЩЕЕ ИЛИ) со сле‰ующим блоком исхо‰но„о текст‡. З‰есь же помежуточные з‡шифнные блоки не пе則ютсfl к‡к з‡шифнный текст; они только используютсfl ‰лfl сложениfl со сле‰ующим блоком.
11.4. Рекомен‰о‚‡нн‡fl лите‡ту‡ Длfl более ‰ет‡льно„о изучениfl положений, обсуж‰енных ‚ этой лекции, мы екомен‰уем нижесле‰ующие кни„и и с‡йты. Пункты, ук‡з‡нные ‚ скобк‡х, пок‡з‡ны ‚ списке ссылок ‚ конце кни„и.
Кни„и Кни„и [Sti06], [Sta06], [Sch99], [Mao04], [KPS02], [PHS03L] и [MOV96] ‰‡ют хооший обзо киптфических хэш-функций.
С‡йты Нижесле‰ующие с‡йты со‰еж‡т больше инфом‡ции о тем‡х, ‡ссмотенных ‚ этой лекции. http://en.wikipedia.org/wiki/Preimage_attack http://en.wikipedia.org/wiki/Collision_attack#In_cryptography http://en.wikipedia.org/wiki/Pigeonhole __ principle csrc.nist.gov/ispab/2005-12/B_Burr-Dec2005-ISPAB.pdf http://en.wikipedia.org/wiki/Message_authentication_code http://en.wikipedia.org/wiki/HMAC csrc.nist.gov/pLiblicationVnps/npsl98/fips-198a.pdf http://www.faqs.org/rfcs rfc2104.html http://en.wikipedia.org/wiki/Birthday_paradox
11.5. Ито„и • Отпеч‡ток п‡льц‡ или ‰‡й‰жест сообщениfl мо„ут использтьсfl ‰лfl то„о, чтобы „‡‡нтить целостность ‰окумент‡ или сообщениfl. Чтобы „‡‡нтить целостность ‰окумент‡, необхо‰имы ‰окумент и отпеч‡ток 386
Лекциfl 11
Целостность сообщениfl и уст‡но‚ление по‰линности сообщениfl
п‡льц‡; чтобы „‡‡нтить целостность сообщениfl, необхо‰имы сообщение и ‰‡й‰жест сообщениfl. Д‡й‰жест сообщениfl 퇉о обе儇ть от изменениfl. • Киптфическ‡fl хэш-функциfl со片ет ‰‡й‰жест сообщениfl из сообщениfl. Функциfl ‰олжн‡ соот‚етст‚ть тем китеиflм: устойчи‚ость к пооб‡зу, устойчи‚ость ко ‚тоому пооб‡зу и устойчи‚ость к коллизиflм. • Пе‚ый китеий — устойчи‚ость к пооб‡зу — озн‡ч‡ет, что ‰лfl Е‚ы ‰олжно быть чез‚ыч‡йно ту‰но со片ть любое сообщение, соот‚етст‚ующее этому ‰‡й‰жесту. Втоой китеий — устойчи‚ость ‚тоо„о пооб‡з‡ — „‡‡нтиует, что если Е‚‡ имеет сообщение и соот‚етст‚ующий ‰‡й‰жест, он‡ не сможет со片ть ‚тоое сообщение, ‰‡й‰жест котоо„о тот же с‡мый, что и у пе‚о„о. Тетий китеий — устойчи‚ость к коллизиflм — „‡‡нтиует, что Е‚‡ не может н‡йти ‰‚‡ сообщениfl, котоые хэшиуютсfl и пи‚о‰flт к о‰ному и тому же ‰‡й‰жесту. • Случ‡йн‡fl мо‰ель Oracle, кото‡fl был‡ ‚‚е‰ен‡ ‚ 1993 „. Белл‡ом и Ро‰жеем, fl‚лflетсfl и‰е‡льной м‡тем‡тической мо‰елью ‰лfl хэш-функции. • Пинцип „олубиных flщико‚ уст‡н‡‚л肇ет, что если n flщико‚ з‡нflты n +1 „олубем, то по к‡йней мее о‰ин flщик з‡нflт ‰‚умfl „олубflми. Обобщенн‡fl ‚есиfl пинцип‡ „олубиных flщико‚: если n flщики з‡нflты kn + 1 „олубем, по к‡йней мее о‰ин flщик з‡нflт k + 1 „олубем. • Поблемы четыех ‰ней ож‰ениfl используютсfl, чтобы по‡н‡лизить случ‡йную мо‰ель Oracle. П傇fl поблем‡ нужн‡, чтобы по‡н‡лизить ‡т‡ку пооб‡з‡, ‚то‡fl поблем‡ — чтобы по‡н‡лизить ‡т‡ку ‚тоо„о пооб‡з‡, ‡ тетьfl и чет‚ет‡fl поблемы н‡целены н‡ ‡т‡ку коллизии. • Ко‰ обн‡ужениfl мо‰ифик‡ции (MDC) — ‰‡й‰жест сообщениfl, котоый может ‰ок‡з‡ть целостность сообщениfl: что сообщение не было изменено. Чтобы ‰ок‡з‡ть целостность сообщениfl и уст‡но‚ить по‰линность поисхож‰ениfl ‰‡нных, мы ‰олжны з‡менить ко‰ обн‡ужениfl мо‰ифик‡ции (MDC) н‡ ко‰ уст‡но‚лениfl по‰линности сообщениfl (MAC). Р‡зличие меж‰у MDC и MAC ‚ том, что MAC ‚ключ‡ет ‚ себfl безоп‡сность пе則чи меж‰у пе則тчиком и пиемником. • Н‡цион‡льный Институт Ст‡н‰‡то‚ и Техноло„ии США (NIST) ‚ы‡бот‡л ст‡н‰‡т (FIPS 198) ‰лfl ‚ложенно„о MAC, котоый ч‡сто н‡зы‚‡етсfl ко‰ом ‡утентифик‡ции сообщениfl, осннным н‡ хэшинии — HMAC (хэшинный MAC). NIST т‡кже опе‰елил ‰у„ой ст‡н‰‡т (FIPS 113), н‡з‚‡нный CMAC, или CBCMAC.
11.6. Н‡бо ‰лfl п‡ктики Обзоные ‚опосы 1. Пок‡жите ‡зличиfl меж‰у целостностью сообщениfl и уст‡но‚лением по‰линности сообщениfl 2. Опе‰елите пе‚ый китеий ‰лfl киптфической хэш-функции. 3. Опе‰елите ‚тоой китеий ‰лfl киптфической хэш-функции. 387
Кус
Киптфиfl и безоп‡сность сетей
4. Опе‰елите тетий китеий ‰лfl киптфической хэш-функции. 5. Опе‰елите случ‡йную мо‰ель Oracle и ‰‡йте опис‡ние ее пиложений пи ‡н‡лизе ‡т‡к хэш-функций. 6. Уст‡но‚ите пинцип „олубиных flщико‚ и опишите е„о пиложение пи ‡н‡лизе хэш-функций. 7. Опе‰елите поблемы четыех ‰ней ож‰ениfl, ‡ссмотенные ‚ этой лекции. 8. Испобуйте к‡ж‰ый мето‰ ‰нfl ож‰ениfl с о‰ной поблемой из ‡т‡к хэш-функции. 9. Пок‡жите ‡зличиfl меж‰у MDC и MAC. 10. Пок‡жите ‡зличиfl меж‰у HMAC и CMAC.
Уп‡жнениfl 1. В случ‡йной мо‰ели Oracle: почему Oracle ‰олжен ‰ел‡ть з‡пись ‰‡й‰жест‡, со片нно„о ‰лfl сообщениfl, и пис‚‡и‚‡ть тот же с‡мый ‰‡й‰жест о‰ин‡ко‚ым сообщениflм? 2. Объflснить, почему секетный/откытый ключи не мо„ут использтьсfl ‚ со片нии MAC. 3. И„ноиуfl месflц ож‰ениfl, сколько попыток ‚ се‰нем необхо‰имо, чтобы н‡йти чело‚ек‡ с т‡кой же ‰‡той ож‰ениfl, к‡к ‚‡ш‡? Пимите, что ‚се месflцы имеют 30 ‰ней. 4. И„ноиуfl месflц ож‰ениfl, сколько попыток ‚ се‰нем необхо‰имо, чтобы н‡йти ‰‚ух чело‚ек с о‰ин‡ко‚ой ‰‡той ож‰ениfl? Пимите, что ‚се месflцы имеют 30 ‰ней. 5. Сколько попыток ‚ се‰нем необхо‰имо, чтобы н‡йти чело‚ек‡ то„о же ‚оз‡ст‡, что и ‚ы, учиты‚‡fl „уппу лю‰ей, ож‰енных после 1950? 6. Сколько попыток ‚ се‰нем необхо‰имо, чтобы н‡йти ‰‚ух чело‚ек о‰но„о и то„о же ‚оз‡ст‡, если мы ищем лю‰ей, ож‰енных после 1950? 7. От‚етьте н‡ сле‰ующие ‚опосы о семье из шести чело‚ек. Пе‰положим, что их ‰ни ож‰ениfl: — о‰ноо‰но ‡спе‰елены ‚ течение ‰ней не‰ели, — ‚ течение ‰ней месflц‡, ‚ течение к‡ж‰о„о месflц‡ „, — ‚ течение 365 ‰ней „о‰‡. Пе‰положим т‡кже, что „о‰ состоит точно из 365 ‰ней и к‡ж‰ый месflц — точно из 30 ‰ней. a. К‡к ‚еоflтность, что ‰‚‡ из члено‚ семьи имеют о‰ин и тот же ‰ень ож‰ениfl? К‡к ‚еоflтность, что ни о‰ин из них не имеет со‚‡юще„о ‰нfl ож‰ениfl? b. К‡к ‚еоflтность, что ‰‚ое из члено‚ семьи ож‰ены ‚ о‰ном и том же месflце? ‚еоflтность то„о, что ни о‰ин из них не был ож‰ен ‚ о‰ном и том же месflце? c. К‡к ‚еоflтность, что кто-то из члено‚ семейст‚‡ ож‰ен ‚ пе‚ый ‰ень о‰но„о из месflце‚? d. К‡к ‚еоflтность, что у тех из члено‚ семейст‚‡ ‰ни ож‰ениfl пихо‰flтсfl н‡ о‰ин и тот же ‰ень не‰ели? 388
Лекциfl 11
Целостность сообщениfl и уст‡но‚ление по‰линности сообщениfl
8. К‡к ‚еоflтность со‚ениfl ‰ней ож‰ениfl ‚ ‰‚ух кл‡сс‡х, о‰но„о с k сту‰ент‡ми и ‰у„о„о с l сту‰ент‡ми? 9. В кл‡ссе из 100 сту‰енто‚ к‡к ‚еоflтность, что ‰‚‡ или больше сту‰ент‡ имеют п‡спот‡ с о‰ними и теми же после‰ними четыьмfl циф‡ми? 10. Есть 100 сту‰енто‚ ‚ „уппе, и пофессо ‡зб肇ет (A, B, C, D, E) по езульт‡т‡м тест‡. Пок‡жите, что по к‡йней мее о‰н‡ „упп‡ бу‰ет со‰еж‡ть не менее 20 сту‰енто‚. 11. Тебует ли пинцип „олубиных flщико‚ случ‡йно„о ‡спе‰елениfl „олубей по flщик‡м? 12. Пе‰положим, что Е‚‡ ешил‡ н‡йти пооб‡з по ‡л„оитму 11.1. К‡кое число ‡з ‚ се‰нем Е‚‡ ‰олжн‡ по‚тоить ‡л„оитм? 13. Пе‰положим, что Е‚‡ ешил‡ н‡йти коллизию по Ал„оитму 11.3. К‡кое число ‡з, ‚ се‰нем, Е‚‡ ‰олжн‡ по‚тоить ‡л„оитм? 14. Пе‰положим, что мы имеем очень постой ‰‡й‰жест сообщениfl. Н‡ш ‰‡й‰жест сообщениfl (нее‡льный) — только о‰но число меж‰у 0 и 25. Д‡й‰жест пе‚он‡ч‡льно уст‡но‚лен н‡ 0. Киптфическ‡fl хэшфункциfl ск뇉ы‚‡ет текущее зн‡чение ‰‡й‰жест‡ со зн‡чением текуще„о сим‚ол‡ (меж‰у 0 и 25). Сложение по‚о‰итсfl по мо‰улю 26. И‰еfl пок‡з‡н‡ н‡ ис. 11.14. К‡ко‚о зн‡чение ‰‡й‰жест‡, если сообщение — «HELLO»? Почему этот ‰‡й‰жест небезоп‡сен?
Рис. 11.14 Уп‡жнение 14 15. Попобуем у‚еличить сложность пе‰ы‰уще„о уп‡жнениfl. Возьмем зн‡чение текуще„о сим‚ол‡, з‡меним е„о ‰у„им числом и з‡тем сложим с пе‰ы‰ущим зн‡чением из ‰‡й‰жест‡ по мо‰улю 100. Д‡й‰жест пе‚о-
Рис. 11.15 Уп‡жнение 15 389
Кус
Киптфиfl и безоп‡сность сетей
н‡ч‡льно уст‡н‡‚л肇етсfl н‡ 0. Рисунок 11.1 пок‡зы‚‡ет и‰ею. К‡ко‚о зн‡чение ‰‡й‰жест‡ ‰лfl сообщениfl «HELLO»? Почему этот ‰‡й‰жест — не безоп‡сный? 16. Используfl мо‰ульную ‡ифметику, н‡й‰ите ‰‡й‰жест сообщениfl. Рисунок 11.16 иллюстиует поце‰уу, кото‡fl со‰ежит сле‰ующие ш‡„и. ‡. Пусть ‰лин‡ ‰‡й‰жест‡ сообщениfl ‡‚н‡ n бит‡м. б. Выбеите ‚ к‡чест‚е мо‰улfl постое n-бито‚ое число p. ‚. Пе‰ст‡‚ьте сообщение к‡к ‰‚оичное число и ‰ополните сообщение нулflми (0), чтобы оно было к‡тно m бит‡м. „. Р‡збейте ‰ополненное сообщение н‡ N блоко‚, к‡ж‰ый по m бит. Обозн‡чим к‡ж‰ый i-тый блок Xi. ‰. Выбеите н‡ч‡льный ‰‡й‰жест N бито‚, H0. е. По‚тоите N ‡з сле‰ующие ‰ейст‚иfl: Hi = (Hi-1 + Xi)2mod p ж. Д‡й‰жест бу‰ет ‡‚ен HN. К‡кое зн‡чение бу‰ет иметь ‰‡й‰жест, если сообщение — «HELLO»? Почему этот ‰‡й‰жест не безоп‡сен?
Рис. 11.16. Уп‡жнение 16 17. Ниже описы‚‡етсfl хэш-функциfl, н‡зы‚‡ем‡fl мо‰ульной ‡ифметикой безоп‡сно„о хэшиниfl (Modular Arithmetic Secure Hash — MACH). Н‡пишите ‡л„оитм ‰лfl ‚ычислениfl ‰‡й‰жест‡ 燉‡нно„о сообщениfl. Н‡й‰ите ‰‡й‰жест собст‚енно„о сообщениfl. ‡. Пусть ‰лин‡ ‰‡й‰жест‡ сообщениfl ‡‚н‡ N бит. б. Выбеите ‰‚‡ постых числ‡, p и q. Вычислите M = pq. ‚. Пе‰ст‡‚ьте сообщение к‡к ‰‚оичное число и ‰ополните сообщение нулflми, т‡к чтобы с‰ел‡ть е„о число бито‚ к‡тным N/2. N ‚ыб‡н к‡к число, к‡тное 16, меньшее, чем число бито‚ ‚ M. „. Р‡з‰елите ‰ополненное сообщение н‡ m блоко‚, к‡ж‰ый по N/2 бито‚. Обозн‡чим к‡ж‰ый блок Xi. 390
Лекциfl 11
Целостность сообщениfl и уст‡но‚ление по‰линности сообщениfl
‰. Пиᇂьте ‰лину сообщениfl по мо‰улю N/2 к‡к ‰‚оичное число к сообщению. Это со片ст сообщение ‰линой m+1 блоко‚ по N/2 бито‚. е. Р‡сшиьте сообщение, чтобы получить m + 1 блок, к‡ж‰ый по N бито‚, к‡к пок‡з‡но ниже. Р‡з‰елите блоки X1 ‰о Xm н‡ „уппы по 4 бит‡. Вст‡‚ьте 1111 пее‰ к‡ж‰ой „уппой. Р‡з‰елите блок Xm+1 н‡ „уппы по 4 бит‡. Вст‡‚ьте 1010 пее‰ к‡ж‰ой „уппой. Н‡зо‚ем ‡сшиенные блоки Y1, Y2..., Ym+1. ж. Выбеите н‡ч‡льный ‰‡й‰жест N бито‚, H0. з. Выбеите конст‡нту K из N бито‚. и. По‚тоите m +1 ‡з сле‰ующие ‰ейст‚иfl (Ti и GI — помежуточные зн‡чениfl). Сим‚ол || обозн‡ч‡ет конк‡тен‡цию. Ti = ((Hi+1, + Yi,) || K) 257 mod M.
Gi = Hi mod 2N
Hi = Hi+1 +Gi;
к. Д‡й‰жест ‡‚ен Hm+1 . 18. Н‡пишите ‡л„оитм ‚ пс傉око‰е ‰лfl ешениfl пе‚ой поблемы ‰нfl ож‰ениfl (‚ общей фоме). 19. Н‡пишите ‡л„оитм ‚ пс傉око‰е ‰лfl ешениfl ‚тоой поблемы ‰нfl ож‰ениfl (‚ общей фоме). 20. Н‡пишите ‡л„оитм ‚ пс傉око‰е ‰лfl ешениfl тетьей поблемы ‰нfl ож‰ениfl (‚ общей фоме). 21. Н‡пишите ‡л„оитм ‚ пс傉око‰е ‰лfl ешениfl чет‚етой поблемы ‰нfl ож‰ениfl (‚ общей фоме). 22. Н‡пишите ‡л„оитм ‚ пс傉око‰е ‰лfl HMAC. 23. Н‡пишите ‡л„оитм ‚ пс傉око‰е ‰лfl CMAC.
391
Кус
Киптфиfl и безоп‡сность сетей
Лекциfl 12. Киптфические хэш-функции Цели и со‰еж‡ние Эт‡ лекциfl имеет несколько целей. • Изложить общие и‰еи киптфических хэш-функций. • Обсу‰ить схему Мекелfl-ć섇‰‡ (Merkle-Damgard) к‡к осно‚у ‰лfl ите‡ти‚ных хэш-функций. • Пок‡з‡ть ‡зличие меж‰у ‰‚умfl к‡те„оиflми хэш-функций: функцией сж‡тиfl, кото‡fl ‡з‡бот‡н‡ «н‡ пустом месте», и той, кото‡fl использует блочный шиф к‡к функцию сж‡тиfl. • Обсу‰ить стуктуу SHA-512 к‡к пиме киптфической хэш-функции с функцией сж‡тиfl, кото‡fl ‰ел‡ет это «н‡ пустом месте». • Обсу‰ить стуктуу Whirlpool к‡к пиме киптфической хэш-функции с блочным шифом c функцией сж‡тиfl.
12.1. В‚е‰ение Р‡ссмотенн‡fl ‚ лекции 11 киптфическ‡fl хэш-функциfl получ‡ет сообщение поиз‚ольной ‰лины и со片ет ‰‡й‰жест сообщениfl фиксинной ‰лины. Оконч‡тельн‡fl цель этой лекции состоит ‚ том, чтобы обсу‰ить ‰ет‡ли ‰‚ух н‡иболее песпекти‚ных киптфических ‡л„оитмо‚ хэшиниfl — SHA-512 и Whirlpool. О‰н‡ко мы сн‡ч‡л‡ ‰олжны обсу‰ить некотоые общие з‡кономености, ко то ые се‰ли‚ы ‚ отношении к лю бой киптфической хэш-функции.
Ите‡ти‚н‡fl хэш-функциfl Все киптфические хэш-функции ‰олжны со片‚‡ть ‰‡й‰жест фиксинно„о ‡зме‡ из сообщениfl пееменно„о ‡зме‡. Пименflть т‡кую функцию лучше ‚се„о, используfl ите‡цию. Вместо хэш-функции с ‚‚о‰ом пееменно„о ‡зме‡ соз‰‡н‡ и используетсfl необхо‰имое количест‚о ‡з функциfl с ‚‚о‰ом фиксинно„о ‡зме‡, н‡зы‚‡ем‡fl функцией сж‡тиfl. Он‡ сжим‡ет n-бито‚ую стоку и со片ет m-бито‚ую стоку, „‰е n обычно больше, чем m. Эт‡ схем‡ из‚естн‡ к‡к ите‡ти‚н‡fl киптфическ‡fl функциfl. Схем‡ Мекелfl-ć섇‰‡ (Merkle-Damgard) Схем‡ Мекелfl-ć섇‰‡ — ите‡ти‚н‡fl хэш-функциfl, кото‡fl fl‚лflетсfl функцией сж‡тиfl, устойчи‚ой к коллизии. Это может быть ‰ок‡з‡но, но ‰ок‡з‡тельст‚о ост‡‚лflем к‡к уп‡жнение. Схем‡ пок‡з‡н‡ н‡ ис. 12.1. Схем‡ использует сле‰ующие ш‡„и. 1. Длин‡ сообщениfl и ‰ополнение ‰оᇂлflютсfl ‚ конец сообщениfl, чтобы со片ть у‚еличенное сообщение, котоое может быть ‡‚номено ‡з‰елено н‡ n-бито‚ые блоки; з‰есь n – ‡зме блок‡, котоый бу‰ет об‡бот‡н функцией сж‡тиfl. 392
Киптфические хэш-функции
Лекциfl 12
Рис. 12.1. Схем‡ Мекелfl-ć섇‰‡ 2. Сообщение т‡ ‡ссм‡т肇ют к‡к t блоко‚, ‡зме к‡ж‰о„о состоит из n бит. Мы обозн‡чим к‡ж‰ый блок М1,..., Мt. Мы обозн‡ч‡ем ‰‡й‰жест, со片нный пи t ите‡циflх, — H1, H2,...., Ht. 3. Пее‰ ст‡том ите‡ции ‰‡й‰жест H0 уст‡н‡‚л肇етсfl н‡ фиксинное зн‡чение, обычно н‡зы‚‡емое IV (н‡ч‡льное зн‡чение или н‡ч‡льный ‚екто). 4. Функциfl сж‡тиfl пи к‡ж‰ой ите‡ции об‡б‡ты‚‡ет Hi-1 и М., со片‚‡fl но‚ый Hi. Ду„ими слми, мы имеем Hi = .f (Hi-1, Мi), „‰е f — функциfl сж‡тиfl. 5. Ht — функциfl киптфическо„о хэшиниfl пе‚он‡ч‡льно„о сообщениfl, то есть h(M). Если функциfl сж‡тиfl ‚ схеме Мекелfl-ć섇‰‡ устойч肇 к коллизии, хэш-функциfl т‡кже устойч肇 к коллизии.
Д‚е „уппы функций сж‡тиfl Схем‡ Мекелfl-ć섇‰‡ се„о‰нfl — осно‚‡н ‰лfl мно„их функций киптфическо„о хэшиниfl. Е‰инст‚енн‡fl ‚ещь, котоую мы ‰олжны с‰ел‡ть, – ‡з‡бот‡ть функцию сж‡тиfl, кото‡fl fl‚лflетсfl устойчи‚ой к коллизиflм, и ‚ст‡‚ить ее ‚ схему Мекелfl-ć섇‰‡. Есть тен‰енциfl использть ‰‚‡ ‡зличных по‰х ‚ ‡з‡ботке хэш-функции. В пе‚ом по‰хо‰е функциfl сж‡тиfl с‰ел‡н‡ «н‡ пустом месте»: он‡ ‡з‡бот‡н‡ только ‰лfl этой цели. Во ‚тоом по‰хо‰е блочный шиф с симметичными ключ‡ми служит функцией сж‡тиfl. Хэш-функции, с‰ел‡нные «н‡ пустом месте» Множест‚о функций киптфическо„о хэшиниfl использует функции сж‡тиfl, котоые с‰ел‡ны «н‡ пустом месте». Эти функции сж‡тиfl специ‡льно со片ны ‰лfl целей, котоым они служ‡т. Д‡й‰жест сообщениfl (MD) Несколько ‡л„оитмо‚ хэшиниfl были ‡з‡бот‡ны Роном Ри‚естом. Они из‚естны ‚ лите‡туе к‡к MD2, MD4 и MD5, „‰е MD обозн‡ч‡ет Д‡й‰жест Сообщениfl. После‰нflfl ‚есиfl, MD5, fl‚лflетсfl усилен393
Кус
Киптфиfl и безоп‡сность сетей
ной ‚есией MD4, кото‡fl ‰елит сообщение н‡ блоки по 512 бито‚ и со片ет ‰‡й‰жест н‡ 128 бито‚. Ок‡з‡лось, что ‰‡й‰жест сообщениfl ‡змеом 128 бито‚ — слишком м‡ленький, чтобы быть устойчи‚ым к ‡т‡ке коллизии. Ал„оитм безоп‡сно„о хэшиниfl (SHA — Secure Hash Algorithm) Ал„оитм безоп‡сно„о хэшиниfl (SHA) — ст‡н‰‡т, котоый был ‡з‡бот‡н н‡цион‡льным Институтом Ст‡н‰‡то‚ и Техноло„ии (NIST — National Institute of Standards and Technology) и и片н к‡к Фе‰е‡льный Ст‡н‰‡т Об‡ботки Инфом‡ции (FIP 180). Он упомин‡етсfl ‚ лите‡туе к‡к Ст‡н‰‡т Безоп‡сно„о хэшиниfl (SHS — Secure Hash Standard). Ст‡н‰‡т „뇂ным об‡зом б‡зиуетсfl н‡ MD5. В 1995 „. он был пеесмотен по‰ н‡з‚‡нием FIP 180-1, котоый ‚ключ‡ет SHA-1. Позже он сн был пеесмотен по‰ н‡з‚‡нием FIP 180-2, котоый опе‰елflет четые но‚ых ‚есии: SHA-224, SHA-256, SHA-384 и SHA-512. Т‡блиц‡ 12.1 ‰‡ет список некотоых из х‡‡ктеистик этих ‚есий. Т‡блиц‡ 12.1. Х‡‡ктеистики ‡л„оитмо‚ безоп‡сно„о хэшиниfl (SHAs) Х‡‡ктеистики М‡ксим‡льный ‡зме сообщениfl Р‡зме блок‡ Р‡зме ‰‡й‰жест‡ сообщениfl Число ‡ун‰о‚ Р‡зме сл
SHA-1 SHA-224 SHA-256 SHA-384 SHA-512 264 – 1 512 160 80 32
264 – 1 512 224 64 32
264 – 1 512 256 64 32
2128 – 1 1024 384 80 64
2128 – 1 1024 512 80 64
Все эти ‚есии имеют о‰ну и ту же стуктуу. SHA-512 бу‰ет ‡ссмотен по‰обно позже ‚ этой лекции. Ду„ие Ал„оитмы сох‡нениfl целостности (RIPMD - RACE1 Integrity Primitives Evaluation Message Digest). Гупп‡ ‡л„оитмо‚ киптфическо„о хэшиниfl (RIPMD) имеет несколько ‚есий. RIPEMD-160 — ‡л„оитм хэшиниfl с ‰‡й‰жестом сообщениfl н‡ 160 бито‚. RIPEMD-160 использует ту же стуктуу, что и MD5, но пименflет ‰‚‡ ‚‡и‡нт‡ ‚ыполнениfl. HAVAL — ‡л„оитм хэшиниfl пееменной ‰лины с ‰‡й‰жестом сообщениfl ‡зме‡ 128, 160, 192, 224 и 256. Р‡зме блок‡ — 1024 бит‡. Хэш-функции, осннные н‡ блочных шиф‡х Ите‡ти‚н‡fl функциfl киптфическо„о хэшиниfl может использть блочный шиф с симметичными ключ‡ми к‡к функцию сж‡тиfl. Осно‚н‡fl и‰еfl т‡ко„о по‰х: есть несколько безоп‡сных блочных шифо‚ с симметичными ключ‡ми, т‡ких, к‡к техк‡тный DES или AES, котоые мо„ут пименflтьсfl ‰лfl со片ниfl о‰ностоонней функции ‚место то„о, чтобы со片‚‡ть но‚ую функцию сж‡тиfl. Блочный шиф ‚ этом случ‡е только ‚ыполнflет шифниfl. Были пе‰ложены несколько схем. Позже мы ‡ссмотим о‰ну из н‡иболее песпекти‚ных — Whirlpool. 1
RACE –Research and development for Advanced Communication in Europe — Е‚опейск‡fl пмм‡ иссле‰о‚‡ний и ‡з‡боток ‚ обл‡сти пее‰о‚ых техноло„ий с‚flзи (иссле‰о‚‡тельск‡fl пмм‡ Е‚опейско„о союз‡) 394
Киптфические хэш-функции
Лекциfl 12
Схем‡ Р‡бин‡. Ите‡ти‚н‡fl хэш-функциfl, пе‰ложенн‡fl Р‡биным, очень пост‡. Схем‡ Р‡бин‡ б‡зиуетсfl н‡ схеме Мекелfl-ć섇‰‡. Функциfl сж‡тиfl з‡менflетсfl любым ‡л„оитмом шифниfl. Блок сообщениfl используетсfl к‡к ключ; п剂‡ительно со片нный ‰‡й‰жест используетсfl к‡к исхо‰ный текст. З‡шифнный текст — но‚ый ‰‡й‰жест сообщениfl. Об‡тите ‚ним‡ние, что ‡зме ‰‡й‰жест‡ — это ‡зме блочно„о шиф‡ ‰‡нных ‚ осно‚ной киптфической системе. Н‡пиме, если DES используетсfl к‡к блочный шиф, ‡зме ‰‡й‰жест‡ — только 64 бит‡. Хотfl схем‡ очень пост‡, он‡ может быть ‡скыт‡ с помощью ‡т‡ки «с‚е‰ениfl к сее‰ине», ‡ссмотенной ‚ лекции 6, поскольку поти‚ник может пименить ‡л„оитм ‰ешифниfl киптфической системы. Рисунок 12.2 пок‡зы‚‡ет схему Р‡бин‡.
Рис. 12.2. Схем‡ Р‡бин‡ Схем‡ Де‚ис‡-Мейе‡ (Davies-Mayer). В осно‚ном он‡ по‚тоflет схему Р‡бин‡, з‡ исключением то„о, что пименflет пflмую с‚flзь ‰лfl з‡щиты от ‡т‡ки «с‚е‰ениfl ‚ сее‰ину».
Рис. 12.3. Схем‡ Де‚ис‡-Мейе‡ Схем‡ М‡тис‡-Мейе‡-Осе‡с‡ (Metyas-Mayer-Oseas). Это ‚есиfl схемы Де‚ис‡-Мейе‡: блоки сообщениfl пименflютсfl к‡к ключи киптосистемы. Схем‡ может быть использн‡, если блоки ‰‡нных и ключ шифниfl имеют о‰ин и тот же ‡зме. Н‡пиме, AES хоошо по‰хо‰ит ‰лfl этой цели. Схем‡ М臄учи-Пенелfl — ‡сшиенн‡fl ‚есиfl схемы М‡тис‡-Мейе‡Осе‡с‡. Чтобы с‰ел‡ть ‡л„оитм более устойчи‚ым к ‡т‡ке, исхо‰ный текст, ключ шиф‡ и з‡шифнный текст ск뇉ы‚‡ютсfl с помощью ИСКЛЮЧАЮЩЕГО 395
Кус
Киптфиfl и безоп‡сность сетей
Рис. 12.4. Схем‡ М‡тис‡-Мейе‡-Осе‡с‡ ИЛИ и со片ют но‚ый ‰‡й‰жест. Эт‡ схем‡ используетсfl ‚ Whirlpool ‰лfl со片ниfl хэш-функции. Н‡ исунке 12.5 пок‡з‡н‡ схем‡ М臄учи-Пенелfl.
Рис. 12.5. Схем‡ М臄учи-Пенелfl
12.2. SHA-512 Весиfl SHA (Secure Hash Algorithm) — ‡л„оитм безоп‡сно„о хэшиниfl с 512-бито‚ым ‰‡й‰жестом сообщениfl. Эт‡ ‚есиfl похож‡ н‡ ‰у„ие ‡л„оитмы это„о семейст‚‡, котоые оснны н‡ схеме Мекелfl–ć섇‰‡. Мы ‚ыб‡ли ‰лfl ‡ссмотениfl особую ‚есию. Он‡ с‡м‡fl поз‰нflfl, об뇉‡ет более полной стуктуой, чем ‰у„ие, и н‡иболее ‰линным ‰‡й‰жестом сообщениfl. Если понflть эту ‚есию, нету‰но бу‰ет ус‚оить стуктуу ‰у„их ‚есий.
В‚е‰ение SHA-512 со片ет ‰‡й‰жест из сообщениfl, со‰еж‡ще„о мно„о блоко‚. К‡ж‰ый блок имеет ‰лину 1024 бит‡, к‡к это пок‡з‡но н‡ ис. 12.6. Д‡й‰жест ‚н‡ч‡ле уст‡н‡‚л肇етсfl н‡ опе‰еленное 燇нее зн‡чение 512 бито‚. Ал„оитм смеш肇ет это н‡ч‡льное зн‡чение с пе‚ым блоком сообщениfl, чтобы со片ть пе‚ый помежуточный ‰‡й‰жест сообщениfl 512 бито‚. Этот ‰‡й‰жест з‡тем смеш肇етсfl со ‚тоым блоком, чтобы со片ть ‚тоой помежуточный ‰‡й‰жест. Н‡конец, (N – l)-ый ‰‡й‰жест смеш肇етсfl с N-ым блоком — они со片ют N-ый ‰‡й‰жест. К‡ после‰ний блок об‡бот‡н, езультиующий ‰‡й‰жест – это ‰‡й‰жест полно„о сообщениfl. 396
Киптфические хэш-функции
Лекциfl 12
Рис. 12.6. Со片ние ‰‡й‰жест‡ сообщениfl SHA-512 Пото‚к‡ сообщениfl SHA-512 тебует, чтобы ‰лин‡ пе‚он‡ч‡льно„о сообщениfl был‡ меньше, чем 2128 бито‚. Если ‰лин‡ сообщениfl ‡‚н‡ или больше, чем 2128, оно не бу‰ет об‡бот‡но SHA-512. Это обычно не поблем‡, потому что 2128 бито‚ пе‚осхо‰flт любую ‚озможную се„о‰нfl полную емкость х‡нениfl любой системы. SHA-512 со片ет ‰‡й‰жест сообщениfl н‡ 512 бито‚ из сообщениfl меньше„о, чем 2128. Пиме 12.1 Этот пиме пок‡зы‚‡ет, что ничение ‰лины сообщениfl SHA-512 — не сеьезн‡fl поблем‡. Пе‰положим, что мы ‰олжны пе則ть сообщение ‰линою 2128 бит‡ ‚ секун‰у. К‡кое ‚емfl потебуетсfl ‰лfl системы коммуник‡ций со скоостью пе則чи ‰‡нных 264 бит‡ ‚ секун‰у, чтобы пе則ть это сообщение? Решение Системы коммуник‡ций, кото‡fl может пе則ть 264 бит‡ ‚ секун‰у, пок‡ еще не сущест‚ует. Д‡же если бы он‡ был‡, потеблось бы мно„о лет, чтобы пе則ть это сообщение. Отсю‰‡ flсно, что мы не ‰олжны ‚олнтьсfl по по‚о‰у ничениfl ‰лины сообщениfl ‰лfl SHA-512. Пиме 12.2 Этот пиме т‡кже к‡с‡етсfl ‰лины сообщениfl ‚ SHA-512. Сколько ст‡ниц з‡ним‡ет сообщение 2128 бит? Решение Пе‰положим, что сим‚ол имеет ‰лину 32 или 26 бит. ʇ扇fl ст‡ниц‡ — меньше, чем 2048, или пиблизительно 212, сим‚оло‚. Т‡ 2128 бито‚ тебуют по к‡йней мее 2128/218, или 2110 ст‡ниц. И сн flсно, что мы не ‰олжны ‚олнтьсfl об ничении н‡ ‰лину сообщениfl. 397
Кус
Киптфиfl и безоп‡сность сетей
Поле ‰лины и з‡полнение Пеж‰е чем ‰‡й‰жест сообщениfl может быть со片н, SHA-512 тебует сложениfl полfl ‰лины — это целое число без зн‡к‡ н‡ 128 бито‚, котоое опе‰елflет ‰лину сообщениfl ‚ бит‡х, — с сообщением. Это ‰лин‡ пе‚он‡ч‡льно„о сообщениfl пее‰ з‡полнением. Поле цело„о числ‡ без зн‡к‡ 128 бито‚ можно опе‰елить к‡к число меж‰у 0 и 2128 – 1, котоое fl‚лflетсfl м‡ксим‡льной ‰линой сообщениfl, пинflто„о ‚ SHA-512. Поле ‰лины опе‰елflет ‰лину пе‚он‡ч‡льно„о сообщениfl пее‰ е„о сложением или з‡полнением (ис. 12.7).
Рис. 12.7. З‡полнение и поле ‰лины ‚ SHA-512 Пее‰ сложением полfl ‰лины мы ‰олжны ‰ополнить пе‚он‡ч‡льное сообщение, чтобы с‰ел‡ть ‰лину к‡тной 1024. Длfl полfl ‰лины езе‚иуетсfl 128 бито‚, к‡к пок‡з‡но н‡ ис. 12.7. Длин‡ обл‡сти з‡полнениfl может быть ‡ссчит‡н‡ сле‰ующим об‡зом. Пусть |M| — ‰лин‡ пе‚он‡ч‡льно„о сообщениfl и |P| — ‰лин‡ полfl з‡полнениfl. (M + P + 128) = 0 mod 1024 → P = (–M – 128) mod 1024 Фом‡т з‡полнениfl – это о‰н‡ е‰иниц‡ (1), сопо‚о扇ем‡fl необхо‰имым числом нулей (0). Пиме 12.3 К‡кое число бито‚ з‡полнениfl необхо‰имо, если ‰лин‡ пе‚он‡ч‡льно„о сообщениfl — 2590 бито‚? Решение Мы можем ‚ычислить число бито‚ з‡полнениfl сле‰ующим об‡зом: P= (–2590 –128) mod 1024 = –2718 mod 1024 = 354 З‡полнение состоит из о‰ной е‰иницы, сопо‚о扇емой 353 нулflми. Пиме 12.4 Нужно ли з‡полнение, если ‰лин‡ пе‚он‡ч‡льно„о сообщениfl уже к‡тн‡ 1024 бит‡м? Решение Д‡, нужно, потому что мы ‰олжны ‰оᇂить поле ‰лины. З‡полнение необхо‰имо, чтобы с‰ел‡ть и но‚ый блок к‡тным 1024 бит‡м. 398
Киптфические хэш-функции
Лекциfl 12
Пиме 12.5 К‡ко‚о миним‡льное и м‡ксим‡льное число бито‚ з‡полнениfl, котоые можно ‰оᇂить к сообщению? Решение a. Миним‡льн‡fl ‰лин‡ з‡полнениfl — 0, и это случ‡етсfl, к‡ (–M – 128) mod 1024 = 0; т‡ |M| = –128 mod 1024 = 896 mod 1024 бит. Ду„ими слми, после‰ний блок ‚ пе‚он‡ч‡льном сообщении — 896 бито‚. Мы ‰оᇂлflем поле ‰лины н‡ 128 бито‚, чтобы с‰ел‡ть блок полным. b. М‡ксим‡льн‡fl ‰лин‡ з‡полнениfl — 1023, и это случ‡етсfl, к‡ (–M– 128) = 1023 mod 1024. Это озн‡ч‡ет, что ‰лин‡ пе‚он‡ч‡льно„о сообщениfl — M = (–128 – 1023) mod 1024 или M = 897 mod 1024. В этом случ‡е мы не можем посто ‰оᇂить обл‡сть ‰лины, потому что ‰лин‡ после‰не„о блок‡ бу‰ет пе‚ыш‡ть н‡ о‰ин бит число 1024. Т‡к что мы ну扇емсfl ‚ з‡полнении 127 бит‡ми, чтобы з‡кончить этот блок и со片ть ‚тоой блок з‡полнениfl 896 бито‚. Тепеь можно ‰оᇂить поле ‰лины, чтобы с‰ел‡ть этот блок полным. Сл SHA-512 опеиует слми; он — оиентиуемый н‡ сло‚о. Сло‚о опе‰елено ‰линой 64 бит‡. Это озн‡ч‡ет, что после то„о к‡к з‡полнение и поле ‰лины ‰оᇂлflютсfl к сообщению, к‡ж‰ый блок сообщениfl состоит из шест퇉ц‡ти сло‚ по 64 бит‡. Д‡й‰жест сообщениfl т‡кже об‡зуетсfl из сло‚ по 64 бит‡, но ‰‡й‰жест сообщениfl — только ‚осемь сло‚, и сл обозн‡ч‡ют A,B, C, D, E, F, G и H, к‡к пок‡з‡но н‡ ис. 12.8.
Рис. 12.8. Блок сообщениfl и ‰‡й‰жест ‚ ‚и‰е от‰ельных сло‚ SHA-512 — ‡л„оитм, оиентинный н‡ сло‚о. К‡ж‰ый блок – 16 сло‚; ‚ ‰‡й‰жесте – только 8 сло‚. Р‡сшиение сл Пее‰ об‡боткой к‡ж‰ый блок сообщениfl ‰олжен быть ‡сшиен. Блок об‡зн из 1024 бито‚, или шест퇉ц‡ти сло‚ по 64 бит‡. К‡к мы у‚и‰им позже, ‚ ф‡зе об‡ботки н‡м нужно 80 сло‚. Т‡к что блок с 16-ю слми ‰олжен быть ‡сшиен ‰о 80 сло‚ от W0 ‰о W79 . Рисунок12.9 пок‡зы‚‡ет поцесс ‡сшиениfl сл. Блок н‡ 1024 бит‡ поо扇ет пе‚ые сл; ост‡льн‡fl ч‡сть сло‚ получ‡етсfl от уже со片нных сло‚ со„л‡сно опе‡циflм, котоые пок‡з‡ны н‡ исунке. 399
Кус
Киптфиfl и безоп‡сность сетей
Рис.12.9 Р‡сшиение сл ‚ SHA-512 Пиме 12.6 Пок‡з‡ть, к‡к получить W60. Решение К‡ж‰ое сло‚о ‚ ‰и‡п‡зоне W16 ‰о W 79 получено ‚ езульт‡те об‡ботки четыех сло‚, со片нных п剂‡ительно н‡ пе‰ы‰ущих ш‡„‡х. W 60 получено к‡к W60 = W44 ⊕ RotShift 1-8-7 (W45) ⊕ W53 ⊕RotShift 19-61-6(W58) Иници‡лиз‡циfl ‰‡й‰жест‡ сообщениfl Ал„оитм использует ‚осемь конст‡нт ‰лfl иници‡лиз‡ции ‰‡й‰жест‡ сообщениfl. Мы обозн‡ч‡ем их от A0 ‰о H0, что соот‚етст‚ует обозн‡чению сло‚, используемых ‰лfl ‰‡й‰жест‡. Т‡блиц‡ 12.2 пок‡зы‚‡ет зн‡чение этих конст‡нт. Т‡блиц‡ 12.2. Зн‡чение конст‡нт пи иници‡лиз‡ции ‰‡й‰жест‡ сообщениfl SHA-512 Буфе Зн‡чение (шест퇉ц‡теичное)
Буфе
Зн‡чение (шест퇉ц‡теичное)
A0
6A09E667F3BCC908
E0
510E527FADE682D1
B0
3B67AE8584CAA73B
F0
9B05688C2B3E6C1F
C0
3C6EF372EF94F828
G0
1F83D9ABFB41BD6B
D0
A54FE53A5F1D36F1
H0
5BEOCD19137E2179
Чит‡тель может 燉‡тьсfl ‚опосом, отку‰‡ ‚зflты эти зн‡чениfl. Они ‡ссчит‡ны из пе‚ых ‚осьми постых чисел (2, 3, 5, 7, 11, 13, 17 и 19). К‡ж‰ое зн‡чение — 400
Киптфические хэш-функции
Лекциfl 12
‰обн‡fl ч‡сть ꂇ‰‡тно„о конfl соот‚етст‚ующе„о посто„о числ‡ после пеоб‡зниfl к ‰‚оичной фоме и сох‡нениfl только пе‚ых 64 бито‚. Н‡пиме, ‚осьмое постое число — 19 имеет ꂇ‰‡тный коень (191/.2) = 4,35889894354. Пеоб‡зо‚ы‚‡fl число к ‰‚оичной фоме только с 64 бит‡ми ‚ ‰обной ч‡сти, мы имеем (100.0101 1011 1110... 1001)2 → (4,5BEOCD19137E2179)16 SHA-512 сох‡нflет ‰обную ч‡сть (5BEOCD19137E2179)16 к‡к целое число без зн‡к‡.
Функциfl сж‡тиfl SHA-512 со片ет 512 бито‚ ‰‡й‰жест-сообщениfl (‚осемь сло‚ н‡ 64 бит‡) из сообщениfl, котоое состоит из множест‚‡ блоко‚, „‰е к‡ж‰ый блок со‰ежит 1024 бит‡. Об‡ботк‡ к‡ж‰о„о блок‡ ‰‡нных ‚ SHA-512 ‚ключ‡ет 80 ‡ун‰о‚. Ри-
Рис. 12.10. Функциfl сж‡тиfl ‚ SHA-512 401
Кус
Киптфиfl и безоп‡сность сетей
сунок 12.10 пок‡зы‚‡ет общую схему сж‡тиfl функции. В к‡ж‰ом ‡ун‰е со‰еж‡ние ‚осьми пе‰ы‰ущих буфео‚ — это о‰но сло‚о из ‡сшиенно„о блок‡ (Wi), и о‰н‡ конст‡нт‡ н‡ 64 бит‡ (Ki), смеш‡нные ‚месте. Они об‡бот‡ны з‡тем, чтобы со片ть но‚ое множест‚о из ‚осьми буфео‚. В н‡ч‡ле об‡ботки зн‡чениfl ‚осьми буфео‚ сох‡нены к‡к ‚осемь ‚еменных пееменных. В конце об‡ботки (после то„о к‡к с‰ел‡н ш‡„ 79) эти зн‡чениfl ‰оᇂлflютсfl к зн‡чениflм, со片нным н‡ ш‡„е 79. Мы ‚ызы‚‡ем эту после‰нюю опе‡цию фин‡льным сложением, к‡к это пок‡з‡но н‡ исунке 12.10. Стукту‡ к‡ж‰о„о ‡у퉇 В к‡ж‰ом ‡ун‰е со片ютсfl ‚осемь но‚ых, по с‡‚нению с пе‰ы‰ущим ‡ун‰ом, зн‡чений буфео‚ по 64 бит‡. Н‡ ис. 12.11 мы ‚и‰им, что шесть буфео‚ — точные копии пе‰ы‰уще„о ‡у퉇, к‡к это пок‡з‡но ниже: A→B
B→C
C→D
E→F
F→G
G→H
Д‚‡ но‚ых буфе‡, A и E, получ‡ют соот‚етст‚ующие зн‡чениfl от некотоых сложных функций, котоые ‚ключ‡ют ‚ себfl некотоые зн‡чениfl пе‰ы‰ущих буфео‚, соот‚етст‚ующее сло‚о ‰лfl это„о ‡у퉇 (Wi) и конст‡нту ‰лfl это„о ‡у퉇 (Ki). Рисунок 12.11 пок‡зы‚‡ет стуктуу к‡ж‰о„о ‡у퉇. З‰есь есть ‰‚‡ смесителfl, ти функции и несколько опе‡тоо‚. К‡ж‰ый смеситель об‡б‡ты‚‡ет ‰‚е функции. Опис‡ние функций и опе‡тоо‚ пи‚е‰ено ниже. 1. То, что мы н‡зы‚‡ем м‡жоит‡ной функцией, fl‚лflетсfl по‡зfl‰ной функцией. Он‡ использует ти соот‚етст‚ующих бит‡ ‚ тех буфе‡х (A, B и C) и ‚ычислflет (Aj AND Bj) ⊕ (Bj AND Cj) ⊕ (Cj AND Aj) Результ‡т — это зн‡чение, котоое имеет большинст‚о из тех бит. Если ‰‚‡ или ти бит‡ ‡‚ны е‰инице (1) , то езульт‡т имеет зн‡чение бит 1; ин‡че он ‡‚ен 0. Функциfl, котоую мы н‡зы‚‡ем усло‚ной функцией (Conditional) — т‡кже по‡зfl‰н‡fl функциfl. Он‡ использует ти бит‡, котоые со‰еж‡тсfl ‚ тех буфе‡х (E, F и G), и ‚ычислflет (Ej AND Fj) ⊕ (NOT Ej AND Gj) Результ‡т по‰чинflетсfl ло„ике «Если E, то F; ин‡че G». 3. Функциfl «циклическое пеемещение» (Rotate) об‡б‡ты‚‡ет ти зн‡чениfl о‰но„о и то„о же буфе‡ (A или E) и пименflет опе‡цию ИСКЛЮЧАЮЩЕЕ ИЛИ с езульт‡том м‡жоит‡ной функции. Rotate (A): RotR28 (A) ⊕ RotR34 (A) ⊕ RotR29(A) Rotate (E): RotR28 (A) ⊕ RotR34 (E) ⊕ RotR29(E)
402
Киптфические хэш-функции
Лекциfl 12
Рис. 12.11. Стукту‡ к‡ж‰о„о ‡у퉇 SHA-512 4. Функциfl «циклическое пеемещение ‚п‡‚о» (RotRi (x)) — т‡ же с‡м‡fl, котоую мы использли ‚ поцессе ‡сшиениfl сл. 5. Опе‡то сложениfl, пименflемый ‚ поцессе, – сложение по мо‰улю 264. Он озн‡ч‡ет езульт‡т сложениfl ‰‚ух или больше буфео‚, со‰еж‡щих ‚с儉‡ сло‚о н‡ 64 бит‡. 6. Есть 80 конст‡нт, K0 к K79, к‡ж‰‡fl по 64 бит‡, к‡к пок‡з‡но ‚ т‡блице 12.3 ‚ шест퇉ц‡теичной фоме (четые ‚ к‡ж‰ой стоке т‡блицы). Ан‡ло403
Кус
Киптфиfl и безоп‡сность сетей
„ично н‡ч‡льным зн‡чениflм ‰лfl ‚осьми буфео‚, эти зн‡чениfl ‚ычислены из пе‚ых 80 постых чисел (2, 3…, 409).
Т‡блиц‡ 12.3. Восемь‰есflт конст‡нт, используемых ‰лfl ‚осьми‰есflти ‡ун‰о‚ ‚ SHA-512 К‡ж‰ое зн‡чение — ‰обн‡fl ч‡сть кубическо„о конfl из соот‚етст‚ующе„о посто„о числ‡ после пеоб‡зниfl это„о числ‡ к ‰‚оичной фоме, сох‡нflютсfl только пе‚ые 64 бит‡. Н‡пиме, 80-е постое число – (409). Кубический коень (409) 1/3 = 7,42291412044. Пеоб‡зо‚ы‚‡fl это число к ‰‚оичному ‚и‰у только с 64 бит‡ми ‚ ‰обной ч‡сти, мы получ‡ем (111,0110 1100 0100 0100...0111) 2 → (7,6C44198C4A475817). SHA-512 сох‡нflет ‰обную ч‡сть, (6C44198C4A475817)16, к‡к целое число без зн‡к‡. Пиме 12.7 Мы пименflем м‡жоит‡ную функцию к зн‡чениflм буфео‚ A, B и C. Если к‡йние ле‚ые шест퇉ц‡теичные цифы этих буфео‚ — 0x7, 0xA и 0xE соот‚етст‚енно, то к‡к‡fl циф‡ бу‰ет к‡йней ле‚ой ч‡стью езульт‡т‡? Решение Цифы ‚ ‰‚оичной фоме — 0111, 1010 и 1110. a. Пе‚ые биты — 0, 1 и 1. М‡жоит‡н‡fl функциfl ‡‚н‡ 1. Мы можем ‰ок‡з‡ть это, используfl опе‰еление м‡жоит‡ной функции: (0 AND 1) ⊕ (1 AND 1) ⊕ C (1 AND 0) = 0 ⊕ 1 ⊕ 0 = 1 404
Киптфические хэш-функции
Лекциfl 12
b. Втоые биты — 1, 0 и 1. М‡жоит‡н‡fl функциfl ‡‚н‡ 1 . c. Тетьи биты — 1,1 и 1. М‡жоит‡н‡fl функциfl ‡‚н‡ 1. d. Чет‚етые биты — 1, 0 и 0. М‡жоит‡н‡fl функциfl ‡‚н‡ 0. Результ‡т — 1110, или 0xE ‚ шест퇉ц‡теичной фоме. Пиме 12.8 Мы пименflем усло‚ную функцию (Conditional) ‰лfl буфео‚ E, F и G. Если к‡йние ле‚ые шест퇉ц‡теичные цифы этих буфео‚ — 0x9, 0xE и 0xF соот‚етст‚енно, то к‡к‡fl циф‡ бу‰ет к‡йней ле‚ой ч‡стью езульт‡т‡? Решение Цифы ‚ ‰‚оичной фоме — 1001, 1010 и 1111. a. Пе‚ые биты — 1,1 и 1. Сле‰о‚‡тельно, E1 = 1, езульт‡т – F1, котоый ‡‚ен 1. Чтобы ‰ок‡з‡ть езульт‡т, мы можем т‡кже использть опе‰еление функции УСЛОВИЕ (Condition): (1 AND 1) ⊕ (NOT 1 AND 1) = 1 ⊕ 0 = 1 b. Втоые биты — 0, 0 и 1. Сле‰о‚‡тельно, E2 — 0, езульт‡т — F3, котоый ‡‚ен 1. c. Тетьи биты – 0, 1 и 1. Сле‰о‚‡тельно, E3 — 0, езульт‡т — G3, котоый ‡‚ен 1. d. Чет‚етые биты — 1, 0 и 1. Сле‰о‚‡тельно, E4 — 1, езульт‡т — F4, котоый ‡‚ен 0. Результ‡т — 1110, или 0xE ‚ шест퇉ц‡теичной фоме.
Ан‡лиз С ‰‡й‰жестом сообщениfl 512 бито‚ от SHA-512 ож艇лось, что он бу‰ет более стойким ко ‚сем тип‡м ‡т‡к, ‚ключ‡fl ‡т‡ки коллизии. Он ‰олжен был быть лучшим поектом этой ‚есии: более эффекти‚ным и более безоп‡сным, чем пе‰ы‰ущие. О‰н‡ко необхо‰имы были сеьезные иссле‰о‚‡ниfl и испыт‡ниfl, ‰лfl то„о чтобы это по‰т‚е‰ить.
12.3. Whirlpool Whirlpool ‡з‡бот‡н Винсентом Ри‰жменом (Vincent Rijmen) и П‡уло Б‡етто (Paolo Barreto). Он о‰обен е‚опейской низ‡цией NESSIE (New European Schemes for Signature, Integrity and Encryption — Но‚ые е‚опейские схемы по‰писей, целостности и шифниfl). Whirlpool — ите‡ти‚н‡fl функциfl киптфическо„о хэшиниfl, осннн‡fl н‡ схеме М臄учи-Пенелfl, кото‡fl использует блочный шиф с симметичными ключ‡ми ‚место функции сж‡тиfl. Блочный шиф ‚ ‰‡нном случ‡е fl‚лflетсfl измененным шифом AES, котоый был писпособлен ‰лfl этой цели. Рисунок 12.12 пок‡зы‚‡ет хэш-функции Whirlpool. Пото‚к‡ 405
Кус
Киптфиfl и безоп‡сность сетей
Рис. 12.12. Whirlpool хэш-функциfl Пее‰ ст‡том ‡л„оитм‡ хэшиниfl сообщение ‰олжно быть „ото‚о к поцессу. Whirlpool тебует, чтобы ‰лин‡ пе‚он‡ч‡льно„о сообщениfl был‡ меньше, чем 2256 бит‡. Сообщение ‰олжно быть ‰ополнено пеж‰е, чем н‡ч‡ть об‡ботку. Дополнение со‰ежит е‰инст‚енный бит, ‡‚ный 1, ‡ з‡тем сле‰ует необхо‰имое чисел нуле‚ых бито‚, чтобы с‰ел‡ть ‰лину ‰ополнениfl нечетным числом, к‡тным 256 бит‡м. После ‰ополнениfl ‰оᇂлflетсfl блок 256 бито‚, чтобы ук‡з‡ть ‰лину пе‚он‡ч‡льно„о сообщениfl. Этот блок об‡б‡ты‚‡етсfl к‡к число без зн‡к‡. После ‰ополнениfl пе‚он‡ч‡льно„о сообщениfl и писое‰инениfl полfl ‰лины у‚еличенный ‡зме сообщениfl ст‡но‚итсfl к‡тным 256 бит‡м или к‡тным 512 бит‡м. Whirlpool со片ет ‰‡й‰жест 512 из сообщениfl, состоflще„о из мно„их блоко‚ по 512 бит. Д‡й‰жест из 512 бит, H0, н‡чин‡етсfl ‚семи нулflми. Это ст‡но‚итсfl ключом шиф‡ ‰лfl шифниfl пе‚о„о блок‡. Из з‡шифнно„о текст‡ к‡ж‰о„о з‡шифнно„о блок‡ получ‡ют ключ шиф‡ ‰лfl сле‰ующе„о блок‡ после то„о, к‡к е„о ск뇉ы‚‡ют по мо‰улю ‰‚‡ с пе‰ы‰ущим ключом шиф‡ и блоком исхо‰но„о текст‡. Д‡й‰жест сообщениfl — конечный з‡шифнный текст н‡ 512 бито‚ после после‰ней опе‡ции ИСКЛЮЧАЮЩЕЕ ИЛИ.
Шиф Whirlpool Шиф Whirlpool — шиф не-Ф‡йстелfl, похож н‡ AES и был, „뇂ным об‡зом, ‡з‡бот‡н к‡к блочный шиф, котоый используетсfl ‚ ‡л„оитме хэшиниfl. Вместо то„о чтобы ‰‡ть полное опис‡ние это„о шиф‡, мы бу‰ем исхо‰ить из то„о, что чит‡тель зн‡ком с AES по м‡теи‡л‡м лекции 7. Ниже только пи‚о‰итсfl с‡‚нение шиф‡ Whirlpool с шифом AES и отмеч‡етсfl их отличие. Р‡ун‰ы 406
Киптфические хэш-функции
Лекциfl 12
Рис. 12.13. Общ‡fl и‰еfl шиф‡ Whirlpool Whirlpool – шиф, котоый использует 10 ‡ун‰о‚. Р‡зме блок‡ и ключе‚ой ‡зме — 512 бито‚. Шиф пименflет 11 ключей ‡у퉇 K0 – K10, к‡ж‰ый по 512 бито‚. Рисунок 12.13 пок‡зы‚‡ет общий ‚и‰ поцесс‡ шифниfl шифом Whirlpool. М‡тицы состоflний и блоки По‰обно шифу AES, шиф Whirlpool использует м‡тицы состоflний и блоки. О‰н‡ко ‡зме блок‡ или м‡тицы состоflний — 512 бито‚. Блок ‡ссм‡т肇етсfl к‡к сток‡ м‡тицы ‰линой 64 б‡йт‡; м‡тиц‡ состоflний — к‡к ꂇ‰‡тн‡fl м‡тиц‡ 8x8 б‡йто‚. В отличие от AES пеоб‡зние «блок — м‡тиц‡ состоflний» или «м‡тиц‡ состоflний — блок» поисхо‰flт сток‡ з‡ стокой. Рисунок 12.14 пок‡зы‚‡ет блок, м‡тицу состоflний и пеоб‡зние ‚ шиф Whirlpool. Стукту‡ к‡ж‰о„о ‡у퉇 Рисунок 12.15 пок‡зы‚‡ет стуктуу к‡ж‰о„о ‡у퉇. К‡ж‰ый ‡ун‰ использует четые пеоб‡зниfl. SubBytes. По‰обно AES, SubBytes обеспеч肇ет нелинейное пеоб‡зние. Б‡йт пе‰ст‡‚лен к‡к ‰‚е шест퇉ц‡теичных цифы. Л傇fl циф‡ опе‰елflет стоку, ‡ ‡fl — столбец т‡блицы по‰ст‡но‚ки. Д‚е шест퇉ц‡теичных цифы ‚ пеесечении стоки и столбц‡ — но‚ый б‡йт. Рисунок 12.16 иллюстиует и‰ею. 407
Кус
Киптфиfl и безоп‡сность сетей
Рис. 12.14. Блок и м‡тиц‡ состоflний шиф‡ Whirlpool В пеоб‡знии SubBytes м‡тиц‡ состоflний об‡б‡ты‚‡етсfl к‡к м‡тиц‡ б‡йто‚ 8 × 8. Пеоб‡зние ‰ел‡етсfl о‰но‚еменно только с о‰ним б‡йтом. Со‰еж‡ние к‡ж‰о„о б‡йт‡ изменflетсfl, но поfl‰ок сле‰о‚‡ниfl б‡йто‚ ‚ м‡тице ост‡етсfl тем же с‡мым. В поцессе к‡ж‰ый б‡йт пеоб‡зуетсfl не燂исимо; мы имеем 64 ‡зличных пеоб‡зний б‡йт-к-б‡йту. Т‡блиц‡ 12.4 пок‡зы‚‡ет т‡блицу по‰ст‡но‚ки (S-блок) ‰лfl пеоб‡зниfl по‰б‡йто‚. Пеоб‡зние обеспеч肇ет эффект пеемеш肇ниfl. Н‡пиме, ‰‚‡ б‡йт‡, 5A16 и 5B16, котоые отлич‡ютсfl только о‰ним битом (с‡мый ый бит), пеоб‡зны к 5B16 и 8816, котоые отлич‡ютсfl пflтью бит‡ми. Вхо‰ы ‚ т‡блице 12.4 мо„ут быть ‚ычислены ‡л„еб‡ически, используfl поле G(24) с непи‚о‰имым полиномом (x4 + x + 1), к‡к пок‡з‡но н‡ ис. 12.17. ʇ扇fl шест퇉ц‡теичн‡fl циф‡ ‚ б‡йте ‚‚о‰итсfl ‚ миниблок (E и E-1). Результ‡ты пе則ютсfl ‚ ‰у„ой миниблок R. E-блоки ‚ычислflют степень, ‡‚ную шест퇉ц‡теичному зн‡чению ‚х; R-миниблок использует пс傉ослуч‡йный „ене‡то чисел. E(‚хо‰) = (x3 +x+1)‚хо‰ mod (x4 + x + 1), если ‚хо‰ ≠ 0 × F E(0 × F) = 0 408
Киптфические хэш-функции
Лекциfl 12
Рис. 12.15. Стукту‡ к‡ж‰о„о ‡у퉇 шиф‡ Whirlpool
Рис. 12.16. Пеоб‡зние SubBytes шиф‡ Whirlpool 409
Кус
Киптфиfl и безоп‡сность сетей
Т‡блиц‡ 12.4. Т‡блиц‡ пеоб‡зниfl SubBytes (S-Box)
Рис. 12.17. Опе‡циfl SubBytes шиф‡ Whirlpool 410
Киптфические хэш-функции
Лекциfl 12
E-1-блок — это только ин‚есиfl E-блок‡, „‰е оли ‚хо‰о‚ и ‚ыхо‰о‚ изменились. Зн‡чениfl ‚х-‚ых ‰лfl блоко‚ с‚е‰ены ‚ т‡блицу н‡ ис. 12.17.
ShiftColumns. Чтобы обеспечить пеест‡но‚ку, Whirlpool использует пеоб‡зние ShiftColumns, котоое fl‚лflетсfl по‰обным пеоб‡знию ShiftRows ‚ AES, з‡ исключением то„о, что ‚место сток с‰‚脇ютсfl столбцы. Смещение 燂исит от позиции столбц‡. Столбец 0 с‰‚脇етсfl н‡ 0 б‡йто‚ (смещениfl нет), ‚ то ‚емfl к‡к столбец 7 с‰‚脇етсfl н‡ 7 б‡йто‚. Рисунок 12.18 пок‡зы‚‡ет пеоб‡зние смещениfl. Рис. 12.18. Пеоб‡зние ShiftColumns шиф‡ Whirlpool MixRows. Пеоб‡зние MixRows имеет тот же эффект, что и пеоб‡зние MixColumns ‚ AES: оно ‡ссе肇ет биты. Пеоб‡зние MixRows — м‡тичное пеоб‡зние, „‰е б‡йты интепетиуютсfl к‡к сл по 8 бито‚ (или полиномы) с коэффициент‡ми ‚ GF(28). Умножение б‡йто‚ по‚о‰итсfl ‚ GF(28), но мо‰уль отлич‡етсfl от используемо„о ‚ AES. Шиф Whirlpool пименflет (0x11 D) или (x8 + x4 + x3 + x2 + 1) к‡к мо‰уль. Сложение сло‚ по 8 бито‚ — то же с‡мое, что ИСКЛЮЧАЮЩЕЕ ИЛИ. Н‡ ис. 12.19 пе‰ст‡‚лено пеоб‡зние MixRows. Рисунок пок‡зы‚‡ет умножение е‰инст‚енной стоки н‡ м‡тицу конст‡нт; умножение можно по‚ести, умнож‡fl ‚сю м‡тицу состоflний н‡ м‡тицу конст‡нт. Об‡тите ‚ним‡ние, что ‚ м‡тице конст‡нт к‡ж‰‡fl сток‡ получен‡ с помощью цикулflно„о с‰‚脇 ‚о пе‰ы‰ущей стоки. AddRoundKey. Пеоб‡зние AddRoundKey ‚ шифе Whirlpool ‰ел‡етсfl б‡йт з‡ б‡йтом, потому что к‡ж‰ый ключ ‡у퉇 — м‡тиц‡ состоflний 8 × 8 б‡йт. Рисунок 12.20 пок‡зы‚‡ет этот поцесс. Б‡йт м‡тицы состоflний ‰‡нных ск뇉ы‚‡етсfl ‚ поле GF(28) с соот‚етст‚ующим б‡йтом м‡тицы состоflний ключей ‡у퉇. Результ‡т — но‚ый б‡йт ‚ но‚ой м‡тице состоflний. 411
Кус
Киптфиfl и безоп‡сность сетей
Рис. 12.19. Пеоб‡зние MixRows шиф‡ Whirlpool
Рис. 12.20. Пеоб‡зние AddRoundKey шиф‡ Whirlpool
Р‡сшиение ключ‡ К‡к пок‡зы‚‡ет ис. 12.21, ‡л„оитм ‡сшиениfl ключей ‚ Whirlpool полностью отлич‡етсfl от ‡л„оитм‡ ‚ AES. Вместо то„о чтобы пименflть но‚ый ‡л„оитм со片ниfl ключей ‡у퉇, Whirlpool использует копию ‡л„оитм‡ шифниfl (без п則у퉇), чтобы со片ть ключи ‡у퉇. Выхо‰ к‡ж‰о„о ‡у퉇 ‚ ‡л„оитме шифниfl есть ключи ‰лfl это„о ‡у퉇. Н‡ пе‚ый ‚з„лfl‰ это 412
Киптфические хэш-функции
Лекциfl 12
Рис. 12.21. Р‡сшиение ключ‡ шиф‡ Whirlpool н‡помин‡ет опе‰еление, „‰е ключи ‡у퉇 ‰лfl ‡л„оитм‡ ‡сшиениfl ключ‡ получ‡ютсfl из не„о с‡мо„о. Отку‰‡ получ‡етсfl ‡л„оитм ‡сшиениfl? Whirlpool изflщно ешил эту поблему, используfl ‰есflть конст‡нт ‡у퉇 (RC) к‡к ‚иту‡льные ключи ‡у퉇 ‰лfl ‡л„оитм‡ ‡сшиениfl ключей. Ду„ими слми, ‡л„оитм ‡сшиениfl ключей пименflет конст‡нты к‡к ключи ‡у퉇. Ал„оитм шифниfl использует ‚ыхо‰ к‡ж‰о„о ‡у퉇 ‡л„оитм‡ ‡сшиениfl ключей к‡к ключи ‡у퉇. Ал„оитм „енеиниfl ключей об‡б‡ты‚‡ет ключ шиф‡ к‡к исхо‰ный текст и з‡шифо‚ы‚‡ет е„о. Об‡тите ‚ним‡ние, что ключ шиф‡ — т‡кже К0 ‰лfl ‡л„оитм‡ шифниfl. Конст‡нты ‡у퉇. ʇ扇fl конст‡нт‡ ‡у퉇 RCr fl‚лflетсfl м‡тицей 8 × 8, „‰е только п傇fl сток‡ имеет зн‡чениfl, отличные от нулfl. Ост‡льн‡fl ч‡сть ‚хо‰о‚ со‰ежит ‚се нули. Зн‡чениfl ‰лfl пе‚ой стоки ‚ к‡ж‰ой м‡тице конст‡нт мо„ут быть ‚ычислены, с пименением пеоб‡зниfl SubBytes (т‡блиц‡ 12.4). RC round[сток‡, столбец] = Subbytes (8 (round -1) + столбец) если сток‡ = 0 413
Кус
Киптфиfl и безоп‡сность сетей
Рис. 12.22. Конст‡нты ‰лfl тетье„о ‡у퉇
RCround [сток‡, столбец] = 0 если сток‡ ≠ 0 Ду„ими слми, RC1 использует пе‚ые ‚осемь ‚хо‰о‚ ‚ т‡блице пеоб‡зниfl SubBytes (Т‡блиц‡ 12.4); RC2 использует ‚тоые ‚осемь ‚хо‰о‚, и т. ‰. Рисунок 12.22 пок‡зы‚‡ет пиме RC3, „‰е п傇fl сток‡ — тетьи ‚осемь ‚хо‰о‚ ‚ т‡блице SubBytes.
Ито„и шиф‡ Whirlpool В т‡блице 12.5 пи‚е‰ены осно‚ные х‡‡ктеистики шиф‡ Whirlpool. Т‡блиц‡ 12.5. Осно‚ные х‡‡ктеистики шиф‡ Whirlpool Р‡зме блок‡: 512 бит Р‡зме ключ‡ шиф‡: 512 бит Число ‡ун‰о‚: 10 Р‡сшиение ключ‡: использние шиф‡ непосе‰ст‚енно с конст‡нт‡ми ‡у퉇 ‚ к‡чест‚е ключей ‡у퉇 По‰ст‡но‚к‡: Пеоб‡зние SubBytes Пеест‡но‚к‡: Пеоб‡зние ShiftColumns Смеш肇ние: Пеоб‡зние MixRows Конст‡нты ‡у퉇: кубические кони пе‚ых ‚осьми‰есflти постых чисел
Ан‡лиз Хотfl Whirlpool не был ‚сестоонне изучен или по‚еен, он б‡зиуетсfl н‡ устойчи‚ой схеме М臄учи-Пенелfl — (Miyaguchi-Preneel), ‡ ‰лfl функции сж‡тиfl использует шиф, осннный н‡ AES, относительно котоой было ‰ок‡з‡но, что эт‡ киптфическ‡fl систем‡ — очень стойк‡fl к ‡т‡к‡м. Коме то„о, ‡зме ‰‡й‰жест‡ сообщениfl тот же, что и ‚ SHA-512. Поэтому, к‡к ож艇етсfl, Whirlpool бу‰ет очень сильной функцией киптфическо„о хэшиниfl. О‰н‡ко необхо‰имы сеьезные испыт‡ниfl и иссле‰о‚‡ниfl, чтобы по‰т‚е‰ить это. Е‰инст‚енный уст‡но‚ленный не‰ост‡ток — Whirlpool, котоый использует шиф к‡к 414
Киптфические хэш-функции
Лекциfl 12
функцию сж‡тиfl, не может быть т‡к же эффекти‚ен, к‡к SHA-512, особенно к‡ он е‡лизуетсfl н‡ ‡птных се‰ст‚‡х.
12.4. Рекомен‰о‚‡нн‡fl лите‡ту‡ Длfl более ‰ет‡льно„о изучениfl положений, обсуж‰енных ‚ этой лекции, мы екомен‰уем нижесле‰ующие кни„и и с‡йты. Пункты, ук‡з‡нные ‚ скобк‡х, пок‡з‡ны ‚ списке ссылок ‚ конце кни„и.
Кни„и Несколько кни„ ‰‡ют хооший обзо функций киптфическо„о хэшиниfl — [Sti6] [Sta06], [Sch99], [Mao04], [KPS02], [PHS03] и [MOV97].
С‡йты Нижесле‰ующие с‡йты ‰‡ют больше инфом‡ции о тем‡х, ‡ссмотенных ‚ этой лекции. http://www.unixwiz.net/techtips/iguide-crypto-hashes.html http://www.faqs.org/rfcs/rfc4231 .html http://www.itl.nist.gov/fipspubs/fip 180-1.htm http://www.ietf.org/rfc/rfc3174.txt http://paginas.terra.com.br/informatica/paulobarreto/WhirlpoolPage.html
12.5. Ито„и • Все функции киптфическо„о хэшиниfl ‰олжны со片‚‡ть ‰‡й‰жест фиксинно„о ‡зме‡ из сообщениfl пееменно„о ‡зме‡. Т‡к‡fl функциfl может быть успешнее ‚се„о соз‰‡н‡ с пименением ите‡ции. Функциfl сж‡тиfl нео‰нок‡тно используетсfl, чтобы со片ть ‰‡й‰жест. Т‡к‡fl схем‡ н‡зы‚‡етсfl ите‡ти‚ной хэш-функцией. • Схем‡ Мекелfl-ć섇‰‡ (Merkle-Damgard) — ите‡ти‚н‡fl функциfl киптфическо„о хэшиниfl, устойч肇fl к коллизиflм, если пи этом функциfl сж‡тиfl устойч肇 к коллизиflм. Эт‡ схем‡ се„о‰нfl — осн ‰лfl мно„их функций киптфическо„о хэшиниfl. • Есть тен‰енциfl использть ‰‚‡ ‡зличных по‰х ‚ поектинии функции сж‡тиfl. В пе‚ом по‰хо‰е функциfl сж‡тиfl с‰ел‡н‡ н‡ пустом месте, т. е. ‡з‡бот‡н‡ только ‰лfl этой цели. Во ‚тоом по‰хо‰е блочный шиф с симметичными ключ‡ми служит функцией сж‡тиfl. • Множест‚о функций киптфическо„о хэшиниfl использует функции сж‡тиfl, котоые с‰ел‡ны н‡ «пустом месте». Эти функции сж‡тиfl специ‡льно ‡з‡бот‡ны ‰лfl этой цели, котоую они обслуж肇ют. Некотоые пимеы: „упп‡ ‰‡й‰жесто‚ сообщениfl — MD; „упп‡ ‡л„оитмо‚ безоп‡сно„о хэшиниfl — SHA, RIPEMD и HAVAL. • Ите‡ти‚н‡fl функциfl киптфическо„о хэшиниfl может использть блочный шиф с симметичными ключ‡ми ‚место функции сж‡415
Кус
Киптфиfl и безоп‡сность сетей
тиfl. Были пе‰ложены несколько схем это„о по‰х, ‚ключ‡fl схему Р‡бин‡, схему Де‚ис‡-Мейе‡, схем‡ М‡тис‡-Мейе‡-Осе‡с‡ и М臄учиПенелfl. • О‰н‡ из песпекти‚ных функций киптфическо„о хэшиниfl — SHA-512 с 512-бито‚ым ‰‡й‰жестом сообщениfl, осннным н‡ схеме Мекелfl-ć섇‰‡. Он‡ ‡з‡бот‡н‡ «н‡ пустом месте» только ‰лfl этой цели. • Ду„‡fl песпекти‚н‡fl функциfl киптфическо„о хэшиниfl — Whirlpool, кото‡fl о‰обен‡ NESSIE. Whirlpool — ите‡ти‚н‡fl функциfl киптфическо„о хэшиниfl, осннн‡fl н‡ схеме М臄учи-Пенелfl, кото‡fl использует блочный шиф с симметичными ключ‡ми ‚место функции сж‡тиfl. Блочный шиф — измененный и специ‡лизинный ‰лfl этой цели шиф AES.
12.6. Н‡бо ‰лfl п‡ктики Обзоные ‚опосы 1. Опе‰елите функцию киптфическо„о хэшиниfl. 2. Опе‰елите ите‡ти‚ную функцию киптфическо„о хэшиниfl. 3. Опишите и‰ею схемы Мекелfl-ć섇‰‡ и объflсните, почему эт‡ и‰еfl ‚‡жн‡ ‰лfl ‡з‡ботки функции киптфическо„о хэшиниfl. 4. Пеечислите пе‰ст‡‚ителей семейст‚‡ хэш-функций, котоые используют шиф к‡к функцию сж‡тиfl. 5. Пеечислите некотоые схемы, котоый были ‡з‡бот‡ны, чтобы использть блочный шиф к‡к функцию сж‡тиfl. 6. Пеечислите „л‡‚ные особенности функции киптфическо„о хэшиниfl SHA-512. К‡кой тип‡ функции сж‡тиfl используетсfl ‚ SHA-512? 7. Пеечислите некотоые особенности функции киптфическо„о хэшиниfl. К‡к‡fl функциfl сж‡тиfl используетсfl ‚ Whirlpool? 8. С‡‚ните х‡‡ктеные особенности SHA-512 и функций киптфическо„о хэшиниfl Whirlpool.
Уп‡жнениfl 1. В SHA-512 пок‡жите зн‡чение полfl ‰лины ‚ шест퇉ц‡теичной фоме ‰лfl сле‰ующих ‰лин сообщениfl: a. 1000 бито‚ b. 10 000 бито‚ c. 1000 000 бито‚ 2. В Whirlpool пок‡жите зн‡чение полfl ‰лины ‚ шест퇉ц‡теичной фоме ‰лfl сле‰ующих ‰лин сообщениfl: a. 1000 бито‚ b. 10 000 бито‚ c. 1000 000 бито‚ 3. К‡ко‚о ‰ополнение ‰лfl SHA-512, если ‰лин‡ сообщениfl: a. 5120 бито‚ 416
Киптфические хэш-функции
Лекциfl 12
b. 5121 бит с. 6143 бит‡ 4. К‡ко‚о ‰ополнение ‰лfl Whirlpool, если ‰лин‡ сообщениfl: a. 5120 бито‚ b. 5121 бит c. 6143 бит‡ 5. В к‡ж‰ом из сле‰ующих случ‡е‚ пок‡жите, что если ‰‚‡ сообщениfl имеют о‰ни и те же после‰ние блоки, то их после‰ний блок после ‰ополнениfl полfl ‰лины о‰ин и тот же: a. хэш-функциfl — SHA-512 b. хэш-функциfl — Whirlpool 6. Вычислите G0 ‚ т‡блице 12.2, используfl се‰ьмое постое число (17). 7. С‡‚ните функцию сж‡тиfl SHA-512 без после‰ней опе‡ции (конечное сложение) с шифом Ф‡йстелfl н‡ 80 ‡ун‰о‚. Пок‡з‡ть со‚ениfl и отличиfl. 8. Функцию сж‡тиfl, используемую ‚ SHA-512 (ис. 12.10), можно пе‰ст‡‚ить к‡к шиф с поцессом шифниfl с 80 ‡у퉇ми, если сл от WQ ‰о W79, пе‰ст‡‚лflют к‡к ключи ‡у퉇 ‚ о‰ной из схем, ‡ссмотенных ‚ этой лекции (Р‡бин‡, Дэ‚ис‡-Меей‡, Мэтис‡-Мейе‡-Осе‡с‡ или М臄учи-Пенелfl). Что это н‡помин‡ет? По‰ск‡зк‡: по‰ум‡йте об эффекте опе‡ции конечно„о сложениfl. 9. Пок‡жите, что SHA-512 может быть субъектом «‡т‡ки с‚е‰ениfl к сее‰ине», если из функции сж‡тиfl у‰‡лен‡ опе‡циfl конечно„о сложениfl. 10. Сост‡‚ить т‡блицу, т‡кую же к‡к т‡блиц‡ 12.5, чтобы с‡‚нить AES и Whirlpool. 12. Пок‡з‡ть, что тетьfl опе‡циfl не может быть у‰‡лен‡ из ‰есflто„о ‡у퉇 ‚ шифе Whirlpool, но он‡ ‰олжн‡ быть у‰‡лен‡ ‚ шифе AES. 13. Н‡й‰ите езульт‡т опе‡ции RotR12 (x), если x = 1234 5678 ABCD 2345 34564 5678 ABCD 2468 14. Н‡й‰ите езульт‡т опе‡ции ShL12(x), если x = 1234 5678 ABCD 2345 34564 5678 ABCD 2468 15. Н‡й‰ите езульт‡т опе‡ции Rotate(x), если x = 1234 5678 ABCD 2345 34564 5678 ABCD 2468 16. Н‡й‰ите езульт‡т функции Conditional (x,y,z), если x = 1234 5678 ABCD 2345 34564 5678 ABCD 2468 y = 2234 5678 ABCD 2345 34564 5678 ABCD 2468 z = 3234 5678 ABCD 2345 34564 5678 ABCD 2468 17. Н‡й‰ите езульт‡т функции Majority (x, y, z), если x = 1234 5678 ABCD 2345 34564 5678 ABCD 2468 y = 2234 5678 ABCD 2345 34564 5678 ABCD 2468 z = 3234 5678 ABCD 2345 34564 5678 ABCD 2468 18. Н‡пишите поце‰уу (‚ пс傉око‰е) ‰лfl ‚ычислениfl RotRi (x) ‚ SHA-512 (ис. 12.9). 19. Н‡пишите поце‰уу (‚ пс傉око‰е), чтобы ‚ычислить ShLi, (x) ‚ SHA512 (ис. 12.9). 417
Кус
Киптфиfl и безоп‡сность сетей
20. Н‡пишите поце‰уу (‚ пс傉око‰е) ‰лfl функции Conditional ‚ SHA-512 (ис. 12.11). 21. Н‡пишите поце‰уу (‚ пс傉око‰е) ‰лfl функции Rotate ‚ SHA-512 (ис. 12.11). 22. Н‡пишите поце‰уу (‚ пс傉око‰е), чтобы ‚ычислить н‡ч‡льный ‰‡й‰жест (зн‡чениfl A0 ‰о H0) ‚ SHA-512 (т‡блиц‡ 12.2). 23. Н‡пишите поце‰уу (‚ пс傉око‰е), чтобы ‚ычислить ‚осемь‰есflт конст‡нт ‚ SHA-512 (т‡блиц‡ 12.3). 24. Н‡пишите поце‰уу (‚ пс傉око‰е) ‰лfl ‡л„оитм‡ ‡сшиениfl сл ‚ SHA-512, пок‡з‡нном н‡ ис. 12.9. Р‡ссмотите ‰‚‡ случ‡fl: ‡. Использние м‡сс肇 80 элементо‚, со‰еж‡щих ‚се сл. б. Использние м‡сс肇 16 элементо‚, со‰еж‡ще„о только 16 сло‚ о‰но‚еменно. 25. Н‡пишите поце‰уу (‚ пс傉око‰е) ‰лfl функции сж‡тиfl ‚ SHA-512. 26. Н‡пишите поце‰уу (‚ пс傉око‰е), чтобы изменить блок 512 бит к 8 × 8 м‡тиц‡м состоflний (ис. 12.4). 27. Н‡пишите поце‰уу (‚ пс傉око‰е), чтобы изменить состоflний 8 × 8 м‡тицу ‰лfl блоко‚ 512 бит (ис. 12.4). 28. Н‡пишите поце‰уу (‚ пс傉око‰е) ‰лfl пеоб‡зниfl SubBytes ‚ шифе Whirlpool (ис. 12.16). 29. Н‡пишите поце‰уу (‚ пс傉око‰е) ‰лfl ShiftColumns пеоб‡зниfl ‚ шифе Whirlpool (ис. 12.18). 30. Н‡пишите поце‰уу (‚ пс傉око‰е) ‰лfl MixRows пеоб‡зниfl ‚ шифе Whirlpool (ис. 12.19). 31. Н‡пишите поце‰уу (‚ пс傉око‰е) ‰лfl AddRoundKey пеоб‡зниfl ‚ шифе Whirlpool (ис. 12.20). 32. Н‡пишите поце‰уу (‚ пс傉око‰е) ‰лfl ‡сшиениfl ключ‡ ‚ шифе Whirlpool (ис. 12.21) 33. Н‡пишите поце‰уу (‚ пс傉око‰е), чтобы со片ть конст‡нты ‡у퉇 ‚ шифе Whirlpool (Рисунок 12.20). 34. Н‡пишите поце‰уу (‚ пс傉око‰е) ‰лfl шиф‡ Whirlpool. 35. Н‡пишите поце‰уу (‚ пс傉око‰е) ‰лfl функции киптфическо„о хэшиниfl Whirlpool. 36. Используйте Internet (или ‰у„ие ‰оступные есусы), чтобы н‡йти инфом‡цию о SHA-1. З‡тем с‡‚ните функцию сж‡тиfl ‚ SHA-1 с т‡кими же функциflми ‚ SHA-512. К‡ко‚ы со‚ениfl? К‡ко‚ы отличиfl? 37. Используйте Internet (или ‰у„ие ‰оступные есусы), чтобы н‡йти инфом‡цию о сле‰ующих функциflх сж‡тиfl и с‡‚нить их с SHA-512: ‡. SHA-224 б. SHA-256 ‚. SHA-384 38. Используйте Internet (или ‰у„ие ‰оступные есусы), чтобы н‡йти инфом‡цию о RIPEMD и с‡‚нить ее с SHA-512. 39. Используйте Internet (или ‰у„ие ‰оступные есусы), чтобы н‡йти инфом‡цию о HAVAL и с‡‚нить ее с SHA-512. 418
Лекциfl 13
Цифfl по‰пись
Лекциfl 13. Цифfl по‰пись Цели и со‰еж‡ние Эт‡ лекциfl имеет несколько целей. • Опе‰елить понflтие цифо‚ой по‰писи. • Р‡ссмотеть службы безоп‡сности, обеспеченные цифо‚ой по‰писью. • Опе‰елить ‡т‡ки цифо‚ых по‰писей. • Обсу‰ить некотоые схемы цифо‚ой по‰писи, ‚ключ‡fl RSA, Эль-Г‡м‡лfl (ElGamal), Шно‡ (Schnorr), DSS и эллиптической ки‚ой. • Опис‡ть некотоые пиложениfl цифо‚ых по‰писей. Мы ‚се зн‡комы с понflтием по‰писи. Чело‚ек по‰писы‚‡ет ‰окумент, чтобы пок‡з‡ть, что нечто с‰ел‡но им с‡мим или было им о‰обено. По‰пись — ‰ок‡з‡тельст‚о получ‡телю, что ‰окумент исхо‰ит от истинно„о объект‡. К‡ клиент по‰писы‚‡ет чек, б‡нк у‚еен, что чек пи퇉лежит клиенту и никому ‰у„ому. Ду„ими слми, по‰пись н‡ ‰окументе fl‚лflетсfl пизн‡ком уст‡но‚лениfl по‰линности ‡‚то‡ – по‰линности ‰окумент‡. Н‡пиме к‡тин‡, по‰пис‡нн‡fl ху‰ожником. По‰пись н‡ пе‰мете искусст‚‡, если он‡ по‰линн‡fl, озн‡ч‡ет, что этот пе‰мет, с большой ‚еоflтностью, по‰линный. К‡ Алис‡ пе則ет сообщение Бобу, Боб ‰олжен по‚еить по‰линность пе則тчик‡; он ‰олжен убе‰итьсfl, что сообщение исхо‰ит от Алисы, ‡ не от Е‚ы. Боб может попосить, чтобы Алис‡ по‰пис‡л‡ сообщение с помощью электоники. Ду„ими слми, электонн‡fl по‰пись может ‰ок‡з‡ть по‰линность Алисы к‡к пе則тчик‡ сообщениfl. Мы н‡зы‚‡ем этот тип по‰писи цифfl по‰пись. В этой лекции мы сн‡ч‡л‡ ‡ссмотим некотоые поблемы, с‚flз‡нные с цифо‚ыми по‰писflми, ‡ з‡тем пеей‰ем к ‡ссмотению ‡зличных схем цифо‚ой по‰писи.
13.1. С‡‚нение Р‡ссмотение н‡чнем с ‡зличиfl меж‰у обычными по‰писflми и цифо‚ыми по‰писflми.
Включение Обычн‡fl по‰пись ‚ключен‡ ‚ ‰окумент; это — ч‡сть ‰окумент‡. К‡ мы пишем чек, по‰пись н‡хо‰итсfl н‡ чеке; это — не от‰ельный ‰окумент. Но к‡ мы по‰писы‚‡ем ‰окумент ‚ цифо‚ой фоме, мы пе則ем по‰пись к‡к от‰ельный ‰окумент. Пе則тчик пе則ет ‰‚‡ ‰окумент‡: сообщение и по‰пись. Получ‡тель получ‡ет об‡ ‰окумент‡ и по‚еflет, что по‰пись пи퇉лежит пе‰по뇄‡емому пе則тчику. Если это ‰ок‡з‡но, сообщение сох‡нflетсfl; ин‡че оно отклонflетсfl.
Мето‰ по‚еки Втоое отличие меж‰у ‰‚умfl тип‡ми по‰писей — мето‰ по‰т‚еж‰ениfl по‰писи. В случ‡е обычной по‰писи, к‡ получ‡тель получ‡ет ‰окумент, он с‡‚ни419
Кус
Киптфиfl и безоп‡сность сетей
‚‡ет по‰пись н‡ ‰окументе с по‰писью ‚ ‡хи‚е. Если они о‰ин‡ко‚ые, ‰окумент по‰линный. Получ‡тель ‰олжен иметь ‚ ‡хи‚е копию ‰лfl с‡‚нениfl этой по‰писи. Пи цифо‚ой по‰писи – получ‡тель получ‡ет сообщение и по‰пись, но копиfl по‰писи не х‡нитсfl н脉е. Получ‡тель ‰олжен пименить мето‰ику по‚еки комбин‡ции сообщениfl и по‰писи, чтобы по‚еить по‰линность.
Отношениfl В случ‡е обычной по‰писи есть отношениfl «о‰ин ко мно„им» меж‰у по‰писью и ‰окумент‡ми. Чело‚ек использует о‰ну и ту же по‰пись, чтобы по‰пис‡ть мно„о ‰окументо‚. Длfl цифо‚ой по‰писи есть непосе‰ст‚енные отношениfl меж‰у по‰писью и сообщением. К‡ж‰ое сообщение имеет с‚ою собст‚енную по‰пись. По‰пись о‰но„о сообщениfl не может использтьсfl ‚ ‰у„ом сообщении. Если Боб получ‡ет ‰‚‡ сообщениfl, о‰ин з‡ ‰у„им, от Алисы, он не может использть по‰пись пе‚о„о сообщениfl, чтобы по‚еить ‚тоое. К‡ж‰ое сообщение ну扇етсfl ‚ но‚ой по‰писи.
Резе‚ное копиние Ду„‡fl ‡зность меж‰у ‰‚умfl тип‡ми по‰писей — к‡чест‚о, н‡з‚‡нное езе‚ное копиние. Пи обычной по‰писи копиfl по‰пис‡нно„о ‰окумент‡ может отлич‡тьсfl от ои„ин‡л‡. Может быть скоектио‚‡н‡ и по‰пис‡н‡ ‚но‚ь той же по‰писью. В цифо‚ой по‰писи нет т‡ко„о ‡зличиfl, если нет ук‡з‡телfl ‚емени (т‡ко„о к‡к метк‡ ‚емени) н‡ ‰окументе. Н‡пиме, пе‰положите, что Алис‡ пе則ет ‰окумент, инстуктиующий Боб‡ з‡пл‡тить Е‚е. Если Е‚‡ пеех‚‡ты‚‡ет ‰окумент и сох‡нflет по‰пись, он‡ может ‚оспользтьсfl этим позже (скопить по‰пись), чтобы сн получить ‰ень„и от Боб‡.
13.2. Поцесс Рисунок 13.1 пок‡зы‚‡ет поцесс цифо‚ой по‰писи. Пе則тчик использует ‡л„оитм по‰пис‡ниfl, чтобы по‰пис‡ть сообщение. Сообщение и по‰пись пе則ют пиемнику, пиемник получ‡ет сообщение и по‰пись и пименflет ‡л„оитм по‰т‚еж‰ениfl к комбин‡ции «сообщение — по‰пись». Если езульт‡т истинен, сообщение пинflто; ин‡че — отклонено.
Рис. 13.1. Поцесс пе則чи цифо‚ой по‰писи 420
Лекциfl 13
Цифfl по‰пись
Потебность ‚ ключ‡х Обычн‡fl по‰пись похож‡ н‡ ч‡стный «ключ», пи퇉леж‡щий лицу, котоое по‰писы‚‡ет ‰окумент. По‰писы‚‡ющее лицо использует е„о, чтобы по‰пис‡ть ‰окументы; никто ‰у„ой не имеет эту по‰пись. Копиfl по‰писи н‡хо‰итсfl ‚ ‡хи‚е по‰обно откытому ключу; любой может использть е„о, чтобы по‚еить ‰окумент, с‡‚нить по‰пись с пе‚он‡ч‡льной по‰писью. В цифо‚ой по‰писи по‰писы‚‡ющее лицо пименflет с‚ой секетный ключ — пик뇉ной ‡л„оитм по‰пис‡ниfl — ‰лfl по‰пис‡ниfl ‰окумент‡. С ‰у„ой стооны по‚еflющий использует откытый ключ по‰писы‚‡юще„о лиц‡ — пик뇉ной ‡л„оитм по‰т‚еж‰ениfl — ‰лfl то„о, чтобы по‚еить ‰окумент. Мы можем ‰оᇂить секетный и откытый ключи к исунку 13.1, чтобы ‰‡ть з‡конченное понflтие цифо‚ой по‰писи (см. ис. 13.2). Об‡тите ‚ним‡ние, что к‡ ‰окумент по‰пис‡н, любой, ‚ключ‡fl Боб‡, может по‚еить это, потому что к‡ж‰ый имеет ‰оступ к откытому ключу Алисы. Алис‡ не ‰олжн‡ пименflть с‚ой откытый ключ ‰лfl то„о, чтобы по‰писы‚‡ть ‰окумент, потому что т‡ любой сможет пел‡ть ее по‰пись.
Рис. 13.2. Дополнение пе則чи цифо‚ой по‰писи ключом Алисы Можем ли мы использть секетный (симметичный) ключ, чтобы и по‰пис‡ть и по‚еить по‰пись? От‚ет отиц‡телен по нескольким пичин‡м. П傇fl: ключ з‡секеч肇ниfl из‚естен только ‰‚ум объект‡м (н‡пиме, Алисе и Бобу). Т‡к, если Алис‡ ‰олжн‡ по‰пис‡ть ‰у„ой ‰окумент и пе則ть е„о Тэ‰у, он‡ ‰олжн‡ пименить ‰у„ой ключ з‡секеч肇ниfl. Вто‡fl: к‡к мы у‚и‰им, со片‚‡fl ключ з‡секеч肇ниfl ‰лfl се‡нс‡, ‚ не„о ‚ключ‡ют пизн‡ки уст‡но‚лениfl по‰линности, котоые используют цифо‚ую по‰пись. Мы получим поочный ку„. Тетье: Боб может пименить ключ з‡секеч肇ниfl, котоый он использует меж‰у собой и Алисой, по‰пис‡ть ‰окумент, пе則ть е„о Тэ‰у и имитить, что он пибыл от Алисы. Цифfl по‰пись ну扇етсfl ‚ пименении системы откыто„о ключ‡. По‰писы‚‡ющее лицо по‰писы‚‡етсfl с‚оим секетным ключом; пиним‡ющий по‚еflет е„о обще‰оступным ключом по‰писы‚‡юще„о лиц‡. 421
Кус
Киптфиfl и безоп‡сность сетей
Мы ‰олжны поним‡ть ‡зличие меж‰у секетным и откытым ключ‡ми, используемыми ‚ цифо‚ых по‰писflх, и секетным и откытым ключ‡ми, котоые пименflютсfl ‚ киптфической системе ‰лfl конфи‰енци‡льности. В после‰них секетный и откытый ключи пиемник‡ используютсfl ‚ поцессе. Пе則тчик пименflет откытый ключ пиемник‡, чтобы з‡шифть сообщение; пиемник использует с‚ой собст‚енный секетный ключ, чтобы ‡сшифть сообщение. В цифо‚ой по‰писи нужен и секетный и откытый ключи пе則тчик‡. Пе則тчик использует с‚ой секетный ключ, пиемник — откытый ключ пе則тчик‡. Киптфическ‡fl систем‡ использует секетный и откытый ключи пиемник‡, цифfl по‰пись — секетный и откытый ключи пе則тчик‡.
По‰пис‡ние ‰‡й‰жест‡ В лекции 10 мы узн‡ли, что киптосистемы с ‡симметичными ключ‡ми очень неэффекти‚ны, к‡ имеют ‰ело с ‰линными сообщениflми. В системе цифо‚ой по‰писи сообщениfl обычно ‰линные, но мы ‰олжны использть ‡симметично-ключе‚ые схемы. Решение состоит ‚ том, что по‰пись ‰‡й‰жест‡ сообщениfl — н‡мно„о кооче, чем сообщение. К‡к мы узн‡ли ‚ лекции 11, тщ‡тельно ‚ыб‡нный ‰‡й‰жест сообщениfl имеет непосе‰ст‚енное отношение к сообщению. Пе則тчик может по‰пис‡ть ‰‡й‰жест сообщениfl, ‡ пиемник может по‚еить ‰‡й‰жест сообщениfl, — эффект тот же с‡мый. Рисунок 13.3 пок‡зы‚‡ет по‰пис‡ние ‰‡й‰жест‡ ‚ системе цифо‚ой по‰писи.
Рис. 13.3. По‰пис‡ние ‰‡й‰жест‡ Д‡й‰жест получ‡етсfl из сообщениfl н‡ стооне Алисы и похо‰ит поцесс по‰пис‡ниfl, используfl секетный ключ Алисы. Алис‡ з‡тем пе則ет сообщение и по‰пись Бобу. К‡к мы у‚и‰им позже ‚ этой лекции, есть ‚‡и‡нты ‚ поцессе по‰пис‡ниfl, котоые 燂исflт от системы. Н‡пиме, мо„ут быть по‚е‰ены ‰ополнительные ‚ычислениfl, пеж‰е чем получ‡етсfl ‰‡й‰жест, или может быть использо‚‡н‡ ‰у„‡fl систем‡ з‡секеч肇ниfl. В некотоых систем‡х по‰пись имеет множест‚о зн‡чений. 422
Лекциfl 13
Цифfl по‰пись
Н‡ стооне Боб‡ пименflетсfl т‡ же с‡м‡fl обще‰оступн‡fl хэш-функциfl, и сн‡ч‡л‡ из полученно„о сообщениfl со片етсfl ‰‡й‰жест. Д‡лее ‚ычислflютсfl по‰пись и ‰‡й‰жест. Поцесс по‰т‚еж‰ениfl т‡кже по‚еflет пик뇉ные китеии по езульт‡т‡м ‚ычислениfl, чтобы опе‰елить по‰линность по‰писи. Если по‰пись по‰линн‡, то сообщение пиним‡етсfl; ‚ поти‚ном случ‡е он‡ отклонflетсfl.
13.3. Услу„и Мы обсу扇ли несколько услу„ безоп‡сности ‚ лекции 1, ‚ключ‡fl конфи‰енци‡льность сообщениfl, уст‡но‚ление по‰линности сообщениfl, целостность сообщениfl и исключение отк‡з‡ от сообщениfl. Цифfl по‰пись может непосе‰ст‚енно обеспечить после‰ние ти; ‰лfl конфи‰енци‡льности сообщениfl мы ‚се еще ну扇емсfl ‚ шифнии/‰ешифнии.
Уст‡но‚ление по‰линности сообщениfl Безоп‡сность схемы цифо‚ой по‰писи похож‡ н‡ безоп‡сность обычной по‰писи (н‡пиме, он‡ не может быть ле„ко скопин‡) и способн‡ обеспечить уст‡но‚ление по‰линности сообщениfl (т‡кже ин‡ н‡зы‚‡етсfl уст‡но‚лением по‰линности поисхож‰ениfl ‰‡нных). Боб может по‚еить, что сообщение пее‰‡л‡ Алис‡, потому что пи по‚еке используетсfl обще‰оступный ключ Алисы. Обще‰оступный ключ Алисы не сможет по‚еить по‰пись, по‰пис‡нную секетным ключом Е‚ы. Цифfl по‰пись обеспеч肇ет уст‡но‚ление по‰линности сообщениfl.
Целостность сообщениfl Целостность сообщениfl сох‡нflетсfl, ‰‡же если мы по‰писы‚‡ем ‚се сообщение, потому что мы не можем получить ту же с‡мую по‰пись, если сообщение изменено. Схемы цифо‚ой по‰писи се„о‰нfl используют хэш-функцию пи по‰пис‡нии и по‰т‚еж‰ении, — ‡л„оитмы, котоые сох‡нflют целостность сообщениfl. Цифfl по‰пись обеспеч肇ет целостность сообщениfl.
Исключение отк‡з‡ от сообщениfl Если Алис‡ по‰писы‚‡ет сообщение и з‡тем отиц‡ет это, может ли Боб ‰ок‡з‡ть, что Алис‡ ф‡ктически по‰пис‡л‡ е„о? Н‡пиме, Алис‡ пе則ет сообщение б‡нку (Боб) и посит пеечислить 10000 $ с ее счет‡ н‡ счет Тэ‰‡. Может ли Алис‡ потом отиц‡ть, что он‡ пее‰‡л‡ это сообщение? Со„л‡сно схеме, котоую мы ‡ссм‡т肇ли ‰о сих по, Боб мо„ бы иметь поблему. Боб ‰олжен был сох‡нить по‰пись ‚ ‡хи‚е и ‰‡лее использть откытый ключ Алисы, чтобы со片ть 423
Кус
Киптфиfl и безоп‡сность сетей
пе‚он‡ч‡льное сообщение, и ‰ок‡з‡ть, что сообщение ‚ ‡хи‚е и н則‚но полученное сообщение fl‚лflетсfl о‰ним и тем же. Это не‚ыполнимо, потому что Алис‡ может изменить з‡ это ‚емfl с‚ой секетный или откытый ключ. Он‡ может т‡кже ут‚е扇ть, что сообщение ‚ ‡хи‚е, со‰еж‡щее по‰пись, не по‰линное. О‰но из ешений — тетье лицо (‰о‚еенное лицо). Лю‰и мо„ут по ‰о„о‚оенности ‚ыб‡ть стоону, котоой они ‰о‚еflют. В бу‰ущих лекциflх мы у‚и‰им, что стоон‡, котоой ‰о‚еflют, может ешить мно„о ‰у„их поблем относительно служб безоп‡сности и з‡мены ключей. Рисунок 13.4 пок‡зы‚‡ет, к‡к стоон‡, котоой ‰о‚еflют, может пепflтст‚ть отиц‡нию Алисой пе則чи ‰‡нно„о сообщениfl. Алис‡ со片ет по‰пись из с‚ое„о сообщениfl (SA) и пе則ет центу сообщение, котоое со‰ежит ее опоз퇂‡тельные пизн‡ки, опоз퇂‡тельные пизн‡ки Боб‡, ‡ т‡кже по‰пись. Цент, после по‚еки ильности откыто„о ключ‡ Алисы, по‚еflет с помощью это„о ключ‡ Алисы, что сообщение пибыло от Алисы. З‡тем Цент сох‡нflет копию сообщениfl с опоз퇂‡тельными пизн‡к‡ми пе則тчик‡, опоз퇂‡тельными пизн‡к‡ми получ‡телfl, ‡ т‡кже с меткой ‚емени, ‚ с‚оем ‡хи‚е. Цент использует с‚ой секетный ключ, чтобы со片ть из сообщениfl ‰у„ую по‰пись (ST). З‡тем цент пе則ет сообщение, но‚ую по‰пись, опоз퇂‡тельные пизн‡ки Алисы и опоз퇂‡тельные пизн‡ки Боб‡ — Бобу. Боб по‚еflет сообщение, используfl обще‰оступный ключ цент‡, котоому он ‰о‚еflет.
Рис. 13.4. Использние Цент‡ До‚еиfl ‰лfl исключениfl отк‡з‡ от сообщениfl Если ‚ бу‰ущем Алис‡ отиц‡ет, что он‡ пее‰‡л‡ сообщение, цент может пе‰ъfl‚ить копии сох‡ненно„о сообщениfl. Если сообщение Боб‡ — ‰ублик‡т сообщениfl, сох‡ненно„о ‚ Центе, Алис‡ по脇ет спо. Чтобы обеспечить 424
Лекциfl 13
Цифfl по‰пись
‚сему этому конфи‰енци‡льность, можно ‰оᇂить к схеме уо‚ень шифниfl/‰ешифниfl, к‡к это бу‰ет пок‡з‡но ‚ сле‰ующей секции. Исключение отк‡з‡ от сообщениfl может быть обеспечено уч‡стием тетьей стооны, котоой ‰о‚еflют.
Конфи‰енци‡льность Цифfl по‰пись не обеспеч肇ет конфи‰енци‡льную с‚flзь. Если конфи‰енци‡льность ‚се же тебуетсfl, то сообщение и по‰пись ‰олжны быть з‡шифны с использнием любо„о ключ‡ з‡секеч肇ниfl (киптосистем‡ с откытым ключом). Рисунок 13.5 пок‡зы‚‡ет, к‡к этот ‰ополнительный уо‚ень можно ‰оᇂить к постой схеме цифо‚ой по‰писи.
Рис. 13.5. Дополнение конфи‰енци‡льности к схеме цифо‚ой по‰писи Мы пок‡з‡ли ‡симметично-ключе‚ое шифние/‰ешифние только ‰лfl то„о, чтобы об‡тить ‚‡ше ‚ним‡ние н‡ типы ключей, используемые ‚ к‡ж‰ом конце пе則чи. Шифние/‰ешифние может т‡кже быть с‰ел‡но симметичным ключом. Цифfl по‰пись не обеспеч肇ет секетность. Если есть потебность ‚ секетности, ‰олжен быть пименен уо‚ень шифниfl/‰ешифниfl.
13.4. Ат‡ки цифо‚ой по‰писи Эт‡ секциfl описы‚‡ет некотоые ‡т‡ки цифо‚ых по‰писей и опе‰елflет типы пелки. 425
Кус
Киптфиfl и безоп‡сность сетей
Типы ‡т‡ки Мы ‡ссмотим ти ‚и‰‡ ‡т‡к цифо‚ых по‰писей: • ‡т‡к‡ только н‡ ключ, • ‡т‡к‡ пи из‚естном сообщении, • ‡т‡к‡ по ‚ыб‡нному сообщению. Ат‡к‡ только н‡ ключ В ‡т‡ке только н‡ ключ Е‚‡ имеет ‰оступ только к обще‰оступной инфом‡ции, котоую пе則ет Алис‡. Длfl то„о чтобы пел‡ть сообщение, Е‚‡ ‰олжн‡ со片ть по‰пись Алисы, чтобы убе‰ить Боб‡, что сообщение пибы‚‡ет от Алисы. Это можно ‡ссм‡т肇ть к‡к ‡т‡ку только з‡шифнно„о текст‡, котоую мы обсу扇ли пи шифнии. Ат‡к‡ пи из‚естном сообщении В ‡т‡ке пи из‚естном сообщении Е‚‡ имеет ‰оступ к о‰ной или более п‡е «по‰пись — сообщениfl». Ду„ими слми, он‡ имеет ‰оступ к некотоым ‰окумент‡м, п剂‡ительно по‰пис‡нным Алисой. Е‚‡ побует со片ть ‰у„ое сообщение и пел‡ть по‰пись Алисы. Это по‰обно ‡т‡ке зн‡ниfl исхо‰но„о текст‡, котоую мы обсу扇ли пи шифнии. Ат‡к‡ по ‚ыб‡нному сообщению В ‡т‡ке по ‚ыб‡нному сообщению Е‚‡ т‡к или ин‡че з‡ст‡‚ил‡ Алису по‰пис‡ть о‰но или более сообщений ‰лfl нее. Е‚‡ тепеь имеет п‡у «‚ыб‡нное сообщение / по‰пись». Чеез некотоое ‚емfl он‡ со片ет ‰у„ое сообщение, с со‰еж‡нием, котоое он‡ ‚ыби‡ет ‚ с‚оих интеес‡х, и пелы‚‡ет по‰пись Алисы. Это по‰обно ‡т‡ке с ‚ыбокой исхо‰но„о текст‡, котоую мы обсу扇ли пи шифнии.
Типы пелки Если ‡т‡к‡ успешн‡, то ‚ езульт‡те поfl‚лflетсfl пелк‡. Мы можем иметь ‰‚‡ тип‡ пелки: экзистенци‡льн‡fl и селекти‚н‡fl. Экзистенци‡льн‡fl пелк‡ В экзистенци‡льной пелке Е‚‡ способн‡ со片ть ильную п‡у «по‰пись — сообщение», но ни о‰ну из пелок он‡ не может е‡льно использть. Ду„ими слми, ‰окумент был пел‡н, но со‰еж‡ние ‚осст‡но‚лено беспоfl‰очно. Этот тип пелки ‚еоflтен, но, к сч‡стью, Е‚‡ не может из‚лечь из это„о ‚ы„о‰у. Ее пел‡нное сообщение синт‡ксически или сем‡нтически непонflтно. Селекти‚н‡fl пелк‡ В селекти‚ной пелке Е‚‡ способн‡ пел‡ть по‰пись Алисы н‡ сообщении с со‰еж‡нием, ‚ыб‡нным Е‚ой. Это ‚ы„о‰но ‰лfl Е‚ы и может быть очень ‚е‰но ‰лfl Алисы, но ‚еоflтность т‡кой пелки м‡л‡, хотfl имеет е‡льную ‚еличину. 426
Лекциfl 13
Цифfl по‰пись
13.5. Схемы цифо‚ой по‰писи Несколько схем цифо‚ой по‰писи были ‡спост‡нены ‚ течение пошлых нескольких ‰есflтилетий. Некотоые из них были е‡лизны. В этой секции мы по„о‚оим об этих схем‡х. В сле‰ующей секции мы обсу扇ем о‰ну из них, кото‡fl, ‚еоflтно, ст‡нет ст‡н‰‡том.
Схем‡ цифо‚ой по‰писи RSA В лекции 10 мы ‡ссмотели, к‡к использть киптфическую систему RSA ‰лfl обеспечениfl секетности. И‰еfl RSA может т‡кже пименflтьсfl ‰лfl то„о, чтобы по‰пис‡ть и по‰т‚е‰ить сообщение. В этом случ‡е это н‡зы‚‡етсfl схемой цифо‚ой по‰писи RSA. Схем‡ цифо‚ой по‰писи менflет оли секетных и откытых ключей. Пе‚ое: пименflютсfl секетный и откытый ключи пе則тчик‡, ‡ не пиемник‡. Втоое: пе則тчик использует с‚ой собст‚енный секетный ключ ‰лfl по‰писи ‰окумент‡; пиемник использует откытый ключ пе則тчик‡, чтобы по‚еить этот ‰окумент. Если мы с‡‚ним схему с обычным способом по‰писи, мы у‚и‰им, что секетный ключ 脇ет оль пе則тчик‡ собст‚енной по‰писи, ‡ откытый ключ — оль пе則тчик‡ копии по‰писи, кото‡fl fl‚лflетсfl обще‰оступной. Оче‚и‰но, Алис‡ не может использть откытый ключ Боб‡, чтобы по‰пис‡ть сообщение, потому что т‡ любой ‰у„ой чело‚ек мо„ бы с‰ел‡ть то же с‡мое. Рисунок 13.6 ‰‡ет общую и‰ею схемы цифо‚ой по‰писи RSA.
Рис. 13.6. Общ‡fl и‰еfl схемы цифо‚ой по‰писи RSA По‰пис‡ние и по‰т‚еж‰ение с‡йто‚ используют ту же с‡мую функцию, но с ‡зличными мет‡ми. Веифик‡то с‡‚н肇ет сообщение и ‚ы‚о‰ функции ‰лfl с‡‚нениfl. Если езульт‡т истинен, сообщение пинflто. Гене‡циfl ключей Гене‡циfl ключей ‚ схеме цифо‚ой по‰писи RSА точно т‡к‡fl же, к‡к и „ене‡циfl ключей ‚ киптфической системе RSА (см. лекцию 10). Алис‡ ‚ыби‡ет ‰‚‡ постых числ‡ p и q и ‚ычислflет n = p × q. Алис‡ ‚ычислflет φ(n) = (p – 1) (q – 1). З‡тем он‡ ‚ыби‡ет e ‰лfl обще‰оступно„о ключ‡ и ‚ычислflет d ‰лfl ч‡стно„о ключ‡, т‡кое, что e × d = 1 mod φ(n). Алис‡ сох‡нflет d и публично объfl‚лflет n и e. 427
Кус
Киптфиfl и безоп‡сность сетей
В схеме цифо‚ой по‰писи RSA d fl‚лflетсfl секетным; e и n — откытым. По‰пис‡ние и по‚ек‡ Рисунок 13.7 пок‡зы‚‡ет схему цифо‚ой по‰писи RSA.
Рис. 13.7. Схем‡ цифо‚ой по‰писи RSA По‰пис‡ние. Алис‡ н‡ осно‚е сообщениfl со片ет по‰пись, используfl ч‡стный (секетный) ключ, S = Md mod n, и пе則ет сообщение и по‰пись Бобу. По‚ек‡. Боб получ‡ет М и S. Он пименflет обще‰оступный ключ Алисы к по‰писи, чтобы со片ть копию сообщениfl М’ = Se mod n. Боб с‡‚н肇ет зн‡чение М’ со зн‡чением М. Если ‰‚‡ зн‡чениfl со‚‡ют, Боб пиним‡ет сообщение. Чтобы ‰ок‡з‡ть ильность этой поце‰уы, мы пименflем китеии по‚еки: M’ ≡ M(mod n) → Se ≡ M(mod n) → Md × e ≡ M(mod n) После‰нее с‡‚нение се‰ли‚о, потому что d × e = 1 mod φ(n) (см. теоему Эйле‡ ‚ лекции 9). Пиме 13.1 Длfl безоп‡сности по‰писи зн‡чениfl p и q ‰олжны быть очень большими. К‡к ти‚и‡льный пиме, пе‰положим, что Алис‡ ‚ыби‡ет p = 823 и q = 953 и ‚ычислflет n = 784319. Зн‡чение φ(n) — 782544. Тепеь он‡ ‚ыби‡ет e = 313 и ‚ычислflет d = 160009. В этой точк‡ „ене‡циfl ключей з‡кончен‡. Тепеь ‚ооб‡зим, что Алис‡ хочет пе則ть сообщение со зн‡чением M = 19070 Бобу. Он‡ использует с‚ой ч‡стный ключ 160009 ‰лfl то„о, чтобы по‰пис‡ть сообщение: M = 19070 → S = (19070160009) mod 784319 = 210625 mod 784319 Алис‡ пе則ет сообщение и по‰пись Бобу. Боб получ‡ет сообщение и по‰пись. Он ‚ычислflет 428
Лекциfl 13
Цифfl по‰пись
М’ = 210625313 mod 784319 = 19070 mod 784319 → М М ≡ M’ mod n Боб пиним‡ет сообщение, потому что он по‚еил по‰пись Алисы. Ат‡ки по‰писи RSA Есть некотоые ‡т‡ки, к котоым Е‚‡ может об‡титьсfl ‰лfl пелки схемы цифо‚ой по‰писи RSА Алисы. Ат‡к‡ только н‡ ключ. Е‚‡ имеет ‰оступ только к откытому ключу Алисы, пеех‚‡ты‚‡ет п‡у (М, S) и побует со片ть ‰у„ое сообщение М’, т‡кое, что М’ = Se mod n. Эт‡ поблем‡ по сложности ешениfl ‡‚н‡ поблеме ‰искетно„о лифм‡, котоую мы ‡ссмотели ‚ лекции 9. Это — экзистенци‡льн‡fl пелк‡ и обычно бесполезн‡ ‰лfl Е‚ы. Ат‡к‡ пи из‚естном сообщении. З‰есь Е‚‡ использует мультиплик‡ти‚ное с‚ойст‚о RSА. Пе‰положим, что Е‚‡ пеех‚‡тил‡ ‰‚е п‡ы по‰писи сообщениfl — (M1, S1) и (M2, S2), котоые используют о‰ин и тот же секетный ключ. Если М = (M1 × M2) mod n, т‡ S = (S1 × S2) mod n. Это посто ‰ок‡з‡ть, потому что мы имеем S = (S1 × S2) mod n = (M1d × M2d) mod n = (M1 × M2)d mod n = Md mod n Е‚‡ может со片ть М = (M1 × M2) mod n и может со片ть S = (S1 × S2) mod n; „лупый Боб по‚еит, что S — по‰пись Алисы н‡ сообщении М. Эт‡ ‡т‡к‡, кото‡fl н‡зы‚‡етсfl ин‡ мультиплик‡ти‚ной ‡т‡кой, по‚о‰итсfl очень посто. О‰н‡ко это — экзистенци‡льн‡fl пелк‡, т‡к к‡к сообщение М fl‚лflетсfl поиз‚е‰ением ‰‚ух пе‰ы‰ущих сообщений, со片нных Алисой, ‡ не Е‚ой; сообщение М обычно бесполезно. Ат‡к‡ по ‚ыб‡нному сообщению. Эт‡ ‡т‡к‡ т‡кже использует мультиплик‡ти‚ное с‚ойст‚о RSA. Е‚‡ может т‡к или ин‡че попосить, чтобы Алис‡ по‰пис‡л‡ ‰‚‡ з‡конных сообщениfl М1 и М2. С помощью их он‡ позже со片ет но‚ое сообщение M = (M1 × M2). Е‚‡ может позже ут‚е扇ть, что Алис‡ по‰пис‡л‡ M. Т‡кую ‡т‡ку н‡зы‚‡ют т‡к же, к‡к и пе‰ы‰ущую — мультиплик‡ти‚н‡fl ‡т‡к‡. Это очень сеьезн‡fl ‡т‡к‡ схемы цифо‚ой по‰писи RSA, потому что это — селекти‚н‡fl пелк‡. (Е‚‡ может пеемнож‡ть М1 и М2, чтобы получить полезный M). По‰пись RSA н‡ ‰‡й‰жесте сообщениfl К‡к мы обсу扇ли пеж‰е, по‰пис‡ние ‰‡й‰жест‡ сообщениfl и использние сильно„о ‡л„оитм‡ хэшиниfl имеет несколько пеимущест‚. В случ‡е RSA поцессы по‰пис‡ниfl и по‚еки можно с‰ел‡ть н‡мно„о быстее, потому что схем‡ цифо‚ой по‰писи RSА — не что иное, к‡к шифние с секетным ключом и ‰ешифние с откытым ключом. Использние сильной „‡фической функции хэшиниfl т‡кже ‰ел‡ет ‡т‡ку по‰писи н‡мно„о ту‰нее, что мы коотко объflсним. Рисунок 13.8 иллюстиует схему. Алис‡, по‰писы‚‡ющее лицо, пи пе‚ом использнии со„л‡сует хэшфункцию, чтобы со片ть ‰‡й‰жест сообщениfl D = h(M). З‡тем он‡ по‰писы‚‡ет ‰‡й‰жест, S = Dd mod n. Сообщение и по‰пись пе則ют Бобу. Боб, по‚еflющий, получ‡ет сообщение и по‰пись. Он сн‡ч‡л‡ использует откытый ключ Алисы, 429
Кус
Киптфиfl и безоп‡сность сетей
чтобы из‚лечь (ф‡йл) ‰‡й‰жест, D’ = Se mod n. З‡тем он пименflет хэш-‡л„оитм ‰лfl то„о, чтобы получить сообщение D = h(M).
Рис. 13.8. По‰пись RSА н‡ ‰‡й‰жесте сообщениfl Боб тепеь с‡‚н肇ет эти ‰‚‡ ‰‡й‰жест‡, D и D’. Если они fl‚лflютсfl с‡‚нимыми по мо‰улю n, он пиним‡ет сообщение. Ат‡ки н‡ по‰пис‡нные ‰‡й‰жесты RSA Н‡сколько ‚оспиимч肇 схем‡ цифо‚ой по‰писи RSA к н‡п‡‰ению, к‡ ‰‡й‰жест уже по‰пис‡н? Ат‡к‡ только н‡ ключ. Возможны ти случ‡fl этой ‡т‡ки. a. Е‚‡ пеех‚‡ты‚‡ет п‡у (S, M) и побует н‡йти ‰у„ое сообщение М’, котоое со片ет тот же с‡мый ‰‡й‰жест, h (M) = h (М’). К‡к мы узн‡ли ‚ лекции 11, если ‡л„оитм хэшиниfl об뇉‡ет устойчи‚остью ко ‚тоому пооб‡зу, эт‡ ‡т‡к‡ очень ту‰н‡. b. Е‚‡ н‡хо‰ит ‰‚‡ сообщениfl, М. и М.’, т‡кие, что h (M) = h (M’). Он‡ собл‡знflет Алису по‰пис‡ть h (M), чтобы н‡йти S; тепеь Е‚‡ имеет п‡у (М’, S), котоое пошло по‰т‚е扇ющий тест, но это — пелк‡. Мы изуч‡ли ‚ лекции 11, что если ‡л„оитм хэшиниfl устойчи‚ к коллизиflм, эт‡ ‡т‡к‡ очень ту‰н‡. c. Е‚‡ случ‡йным по‰боом может н‡йти ‰‡й‰жест сообщениfl D, котоый может соот‚етст‚ть случ‡йной по‰писи S. Он‡ т‡ н‡хо‰ит сообщение М, т‡кое, что D = h (M). К‡к мы узн‡ли ‚ Лекции 11, если хэш-функциfl устойч肇 к пооб‡зу, эт‡ ‡т‡к‡ очень ту‰но осущест‚им‡. Ат‡к‡ пи из‚естном сообщении. Пе‰положим, что Е‚‡ имеет ‰‚е п‡ы по‰писи сообщениfl — (М1,S1) и (М2, S2), котоые были со片ны с использнием о‰но„о и то„о же секетно„о ключ‡. Е‚‡ ‚ычислflет S ≡ S1 × S2. Если он‡ сможет н‡йти сообщение М, т‡кое, что h(M) ≡ h(M1) × h(M2), он‡ сможет пел‡ть но‚ое сообщение. О‰н‡ко н‡хож‰ение М по ‰‡нному h (M) — это очень ту‰ный поцесс, если ‡л„оитм хэшиниfl устойчи‚ к пооб‡зу. 430
Лекциfl 13
Цифfl по‰пись
Ат‡ки по ‚ыб‡нному сообщению. Е‚‡ может попосить, чтобы Алис‡ по‰пис‡л‡ ‰‚‡ з‡конных сообщениfl — М1,и М2 ‰лfl нее. Он‡ может со片ть но‚ую по‰пись S ≡ S1 × S2. Т‡к к‡к Е‚‡ может ‚ычислить h(M) ≡ h(M1) × h(M2), если он‡ может н‡йти сообщение M ‰‡нному h (M), это но‚ое сообщение — пелк‡. О‰н‡ко н‡хож‰ение М по ‰‡нному h (M) – очень ту‰ный поцесс, если ‡л„оитм хэшиниfl устойчи‚ к пооб‡зу. К‡ ‰‡й‰жест по‰пис‡н непосе‰ст‚енно ‚место сообщениfl, ‚оспиимчи‚ость схемы цифо‚ой по‰писи RSA 燂исит от с‚ойст‚ ‡л„оитм‡ хэшиниfl.
Схем‡ цифо‚ой по‰писи Эль-Г‡м‡лfl Киптосистем‡ Эль-Г‡м‡лfl был‡ обсуж‰ен‡ ‚ лекции 10. Схем‡ цифо‚ой по‰писи Эль-Г‡м‡лfl использует те же с‡мые ключи, но ‡л„оитм ‡зличен. Рисунок 13.9 ‰‡ет общую и‰ею схемы цифо‚ой по‰писи Эль-Г‡м‡лfl.
Рис. 13.9. Общ‡fl и‰еfl схемы цифо‚ой по‰писи Эль Г‡м‡лfl В поцессе по‰пис‡ниfl ‰‚е функции со片ют ‰‚е по‰писи. Н‡ стооне по‰т‚еж‰ениfl об‡б‡ты‚‡ют ‚ыхо‰ы ‰‚ух функций и с‡‚н肇ют меж‰у собой ‰лfl по‚еки. Об‡тите ‚ним‡ние, что о‰н‡ и т‡ же функциfl пименflетсfl и ‰лfl по‰пис‡ниfl, и ‰лfl по‚еки, но использует ‡зличные ‚хо‰ы. Рисунок пок‡зы‚‡ет ‚хо‰ы к‡ж‰ой функции. Сообщение — ч‡сть ‚х, ‰лfl обеспечениfl функциониниfl пи по‰пис‡нии; оно же — ч‡сть ‚х к функции 1 пи по‰т‚еж‰ении. Об‡тите ‚ним‡ние, что ‚ычислениfl ‚ функциflх 1 и 3 по‚о‰flтсfl по мо‰улю p, ‡ функции 2 — по мо‰улю p – 1. Гене‡циfl ключей Поце‰у‡ „ене‡ции ключей з‰есь точно т‡к‡fl же, к‡к т‡, кото‡fl используетсfl ‚ киптфической системе. Выбеем ‰ост‡точно большое постое число p, чтобы ‚ поле Z p* поблем‡ ‰искетно„о лифм‡ был‡ ‰ост‡точно ту‰431
Кус
Киптфиfl и безоп‡сность сетей
ной. Пусть e1 — постой элемент ‚ Z p*. Алис‡ ‚ыби‡ет с‚ой секетный ключ d, чтобы он был меньше, чем p – 1. Он‡ ‚ычислflет e2 = e1d. Откытый ключ Алисы — котеж (e1, e2, p); секетный ключ Алисы — d. В схеме цифо‚ой по‰писи Эль-Г‡м‡лfl (e1, e2, p) — откытый ключ Алисы; d —секетный ключ Алисы. По‰т‚еж‰ение и по‚ек‡ Рисунок 13.10 пок‡зы‚‡ет схему цифо‚ой по‰писи Эль-Г‡м‡лfl. По‰писы‚‡ющ‡flсfl Алис‡ может по‰пис‡ть ‰‡й‰жест сообщениfl, н‡п‡‚ленный к любому объекту, ‚ключ‡fl Боб‡. 1. Алис‡ ‚ыби‡ет секетное случ‡йное число r. Об‡тите ‚ним‡ние, что хотfl откытые и секетные ключи мо„ут использтьсfl нео‰нок‡тно, Алис‡ к‡ж‰ый ‡з ну扇етсfl ‚ но‚ом r, к‡ он‡ по‰писы‚‡ет но‚ое сообщение.
Рис. 13.10. Схем‡ цифо‚ой по‰писи Эль-Г‡м‡лfl 2. Алис‡ ‚ычислflет пе‚ую по‰пись S1 = e1r mod p. 3. Алис‡ ‚ычислflет ‚тоую по‰пись S2 = (М – d × S1) × r-1 mod (p – 1), „‰е r-1 — мультиплик‡ти‚н‡fl ин‚есиfl r по мо‰улю p. 4. Алис‡ пе則ет М, S1 и S2 Бобу. По‚ек‡. Объект, н‡пиме Боб, получ‡ет М, S1 и S2 и может по‚еить их сле‰ующим об‡зом. 1. Боб по‚еflет, что 0 < S1 < p. 2. Боб по‚еflет, что 0 < S2 < p – 1. 3. Боб ‚ычислflет V1 = e1 M mod p. 4. Боб ‚ычислflет V2 = e2S1 × S1S2 mod p. 432
Лекциfl 13
Цифfl по‰пись
5. Если V1 fl‚лflетсfl с‡‚нимым по мо‰улю p с V2, сообщение пинflто; ин‡че оно бу‰ет отклонено. Мы можем ‰ок‡з‡ть ильность это„о китеиfl по‚еки, используfl e2 = e1d и S1 = e1r:
Поскольку e1 — пе‚ооб‡зный коень, может быть ‰ок‡з‡но, что ‚ышеупомflнутое с‡‚нение се‰ли‚о т‡ и только т‡, к‡ M ≡ [dS1 + rS2] mod (p –1) или S2 ≡ [(M – d × S1) × r–1] mod (p –1), и езульт‡т с‡‚нениfl есть тот же с‡мый S2, с котоо„о мы н‡ч‡ли поцесс по‰пис‡ниfl. Пиме 13.2 Ниже пи‚о‰итсfl ти‚и‡льный пиме. Алис‡ ‚ыб‡л‡ p = 3119, e1 = 2, d = 127 и ‚ычислил‡ e2 = 2127 mod 3119 = 1702. Он‡ ‚ыб‡л‡ r ‡‚ным 307. Он‡ объfl‚ил‡ e1, e2 и p; он‡ сох‡нил‡ ‚ т‡йне d. Д‡лее пок‡з‡но, к‡к Алис‡ может по‰пис‡ть сообщение.
Алис‡ пе則ет М, S1 и S2 Бобу. Боб использует откытый ключ, чтобы ‚ычислить, что сообщение по‰пис‡но Алисой, потому что никто, коме Алисы, не имеет секетно„о ключ‡ d.
Поскольку V1 и V2 fl‚лflютсfl fl‚лflютсfl с‡‚нимыми по мо‰улю p, Боб пиним‡ет сообщение, и он пе‰по뇄‡ет, что сообщение было по‰пис‡но Алисой, потому что никто, коме нее, не имеет секетно„о ключ‡ Алисы d. Пиме 13.3 Тепеь ‚ооб‡зите, что Алис‡ хочет пе則ть ‰у„ое сообщение, М = 3000, Тэ‰у. Он‡ ‚ыби‡ет но‚ое r = 107. Алис‡ пе則ет М., S1 и S2 Тэ‰у. Тэ‰ использует обще‰оступные ключи, чтобы ‚ычислить V1 и V2.
433
Кус
Киптфиfl и безоп‡сность сетей
Поскольку V1 и V2 fl‚лflютсfl fl‚лflютсfl с‡‚нимыми по мо‰улю p, Тэ‰ пиним‡ет сообщение; он пе‰по뇄‡ет, что сообщение по‰пис‡но Алисой, потому что никто, коме нее, не имеет секетно„о ключ‡ Алисы d. Об‡тите ‚ним‡ние, что сообщение может получить любой чело‚ек. Цель состоит не ‚ том, чтобы скыть сообщение, но ‚ том, чтобы ‰ок‡з‡ть, что е„о пе則ет Алис‡. Пелк‡ цифо‚ой по‰писи ‚ схеме Эль-Г‡м‡лfl Схем‡ цифо‚ой по‰писи Эль-Г‡м‡лfl уflз‚им‡ к экзистенци‡льной пелке, но селекти‚ную пелку н‡ этой схеме с‰ел‡ть очень ту‰но. Пелк‡ только ключ‡. В этом типе пелки Е‚‡ имеет ‰оступ только к откытому ключу. Возможны ‰‚‡ ‚‡и‡нт‡. 1. Е‚‡ имеет 燇нее 燉‡нное сообщение М. Он‡ ‰олжн‡ пел‡ть по‰пись Алисы н‡ этом сообщении. Е‚‡ ‰олжн‡ н‡йти ‰‚е ильных по‰писи S1 и S2 ‰лfl это„о сообщениfl. Это — селекти‚н‡fl пелк‡. a. Е‚‡ может ‚ыб‡ть S2 и ‚ычислить S1. Он‡ ‰олжн‡ иметь dS1 × S1S2 ≡ e1M(mod p). Ду„ими слми, S1S2 ≡ e1M × d–S1(mod p) или S2 ≡ logS1(e1M × d–S1)(mod p). Это озн‡ч‡ет ‚ычисление ‰искетно„о лифм‡, что fl‚лflетсfl очень ту‰ным. b. Е‚‡ может ‚ыб‡ть S2 и ‚ычислить S1. Это н‡мно„о ту‰нее, чем ‚ыполнить ч‡сть a. 2. Е‚‡ может мето‰ом случ‡йно„о по‰бо‡ н‡йти ти зн‡чениfl, М, S1 и S2 , т‡кие, что по‰пись пе‚о„о используетсfl ‰лfl ‚тоо„о. Если Е‚‡ может н‡йти ‰‚‡ но‚ых мет‡ x и y, т‡кие, что М = xS2 mod (p – 1) и S1 = –y S2 mod (p – 1), то он‡ может пел‡ть сообщение, но сеьезной ‚ы„о‰ы не получит, поскольку это — экзистенци‡льн‡fl пелк‡. Пелк‡ пи из‚естном сообщении. Если Е‚‡ пеех‚‡тил‡ сообщение М и е„о ‰‚е по‰писи S1 и S2, он‡ может н‡йти ‰у„ое сообщение М’, с той же с‡мой п‡ой по‰писей S1 и S2. О‰н‡ко об‡тите ‚ним‡ние, что это — экзистенци‡льн‡fl пелк‡, кото‡fl не помет Е‚е.
Схем‡ цифо‚ой по‰писи Шно‡ Поблем‡ схемы цифо‚ой по‰писи Эль-Г‡м‡лfl — ‚ том, что p ‰олжно быть очень большим, чтобы с‰ел‡ть ту‰ной поблему ‰искетно„о лифм‡ Zp*. Рекомен‰уетсfl ‰лин‡ p по к‡йней мее 1024 бито‚. Можно с‰ел‡ть по‰пись ‡змеом 2048 бит. Чтобы уменьшить ‡зме по‰писи, Шно пе‰ложил но‚ую схему, осннную н‡ схеме Эль-Г‡м‡лfl, но с уменьшенным ‡змеом по‰писи. Рисунок 13.11 ‰‡ет общую и‰ею схемы цифо‚ой по‰писи Шно‡. В поцессе по‰пис‡ниfl ‰‚е функции со片ют ‰‚е по‰писи; ‚ поцессе по‚еки ‚ыхо‰ о‰ной функции с‡‚н肇етсfl с пе‚ой по‰писью ‰лfl по‚еки. Рисунок 13.11 пок‡зы‚‡ет ‚хо‰ы к к‡ж‰ой функции. В‡жно то, что схем‡ использует 434
Лекциfl 13
Цифfl по‰пись
Рис. 13.11 Общ‡fl и‰еfl схемы цифо‚ой по‰писи Шно‡ ‰‚‡ мо‰улfl: p и q. Функции 1 и 3 пименflют p; функциfl 2 — q. Дет‡ли ‚хо‰о‚ и функций бу‰ут коотко обсуж‰ены ‰‡лее. Гене‡циfl ключей Пее‰ по‰пис‡нием сообщениfl Алис‡ ‰олжн‡ „енеить ключи и объfl‚ить ‚сем откытые ключи. 1. Алис‡ ‚ыби‡ет постое число p, котоое обычно ‡‚но по ‰лине 1024 бит‡м. 2. Алис‡ ‚ыби‡ет ‰у„ое постое число q, котоое имеет т‡кой же ‡зме, что и ‰‡й‰жест, со片нный функцией киптфическо„о хэшиниfl (‚ н‡стоflщее ‚емfl 160 бито‚, но это может изменитьсfl ‚ бу‰ущем). Постое число q ‰олжно ‰елитьсfl н‡ (p – 1). Ду„ими слми, (p – 1) = 0 mod q. 3. Алис‡ ‚ыби‡ет e1, q-тый коень котоо„о был бы ‡‚ен 1 mod p. Чтобы с‰ел‡ть это, Алис‡ ‚ыби‡ет пимити‚ный элемент ‚ Zp, e0 (см. пиложение J) и ‚ычислflет e1 = e0 (p-1)/q mod p. 4. Алис‡ ‚ыби‡ет целое число, d, к‡к с‚ой секетный ключ. 5. Алис‡ ‚ычислflет e2 = e1d mod p. 6. Обще‰оступный ключ Алисы — (e1, e2, p, q), ее секетный ключ — (d). В схеме цифо‚ой по‰писи Шно‡ откытый ключ Алисы — (e1, e2, p, q); ее секетный ключ — (d). По‰пис‡ние и по‚ек‡ Рисунок 13.12 пок‡зы‚‡ет схему цифо‚ой по‰писи Шно‡. По‰пис‡ние 1. Алис‡ ‚ыби‡ет случ‡йное число r. Об‡тите ‚ним‡ние, что откытый и секетный ключи мо„ут использтьсfl ‰лfl по‰писи мно„их сообщений. Но Алис‡ ‰олжн‡ изменflть r к‡ж‰ый ‡з, к‡ он‡ пе則ет но‚ое сообщение. Об‡тите ‚ним‡ние т‡кже н‡ то, что r ‰олжен иметь зн‡чение меж‰у 1 и q. 435
Кус
Киптфиfl и безоп‡сность сетей
Рис. 13.12. Схем‡ цифо‚ой по‰писи Шно‡ 2. Алис‡ ‚ычислflет пе‚ую по‰пись S1 = h(M | e1r mod p). Сообщение писое‰инflетсfl (конк‡тениуетсfl) спее‰и к зн‡чению e1r mod p, з‡тем пименflетсfl хэш-функциfl, чтобы со片ть ‰‡й‰жест. Об‡тите ‚ним‡ние, что хэш-функциfl непосе‰ст‚енно не пименflетсfl к сообщению, но ‚место это„о он‡ получ‡етсfl из после‰о‚‡тельно„о сое‰инениfl М. и e1r mod p. 3. Алис‡ ‚ычислflет ‚тоую по‰пись S2 = r + d × S1 mod q. Об‡тите ‚ним‡ние, что эт‡ ч‡сть — ‚ычисление S2 — ‰ел‡етсfl ‚ ‡ифметике по мо‰улю q. 4. Алис‡ пе則ет М., S1 и S2. Веифик‡циfl (по‚ек‡) сообщениfl. Пиемник, н‡пиме, Боб, получ‡ет М, S1 и S2. 1. Боб ‚ычислflет V = h (М | e1S2 e2–S1 mod p). 2. Если S1 кон„уэнтно V по мо‰улю p, сообщение пинflто; ин‡че оно отклонflетсfl. Пиме 13.4 Вот ти‚и‡льный пиме. Пе‰положим, что мы ‚ыби‡ем q = 103 и p = 2267. Об‡тите ‚ним‡ние н‡ то, что p = 22 × q + 1. Мы ‚ыби‡ем e0 = 2, котоое fl‚лflетсfl элементом ‚ Z2267*. Т‡ (p – 1) / q = 22, т‡к что мы имеем e1 = 222 mod 2267 = 354. Мы ‚ыби‡ем d = 30, т‡ e2 = 35430 mod 2267 = 1206. Секетный ключ Алисы тепеь — (d), ее откытый ключ — (e1,e2,p,q). Алис‡ хочет пе則ть сообщение М. Он‡ ‚ыби‡ет r = 11 и ‚ычислflет er = 35411 = 630 mod 2267. Пе‰положим, что сообщение — 1000, и конк‡тен‡циfl (после‰о‚‡тельное сое‰инение) озн‡ч‡ет 1000630. Т‡кже пе‰положим, что хэшио436
Лекциfl 13
Цифfl по‰пись
‚‡ние это„о зн‡чениfl ‰‡ет ‰‡й‰жест h (1000630) = 200. Это озн‡ч‡ет S1 = 200. Алис‡ ‚ычислflет S2 = r + d ×S1 mod q = 11 + 1026 × 200 mod 103 = 11 + 24 = 35. Алис‡ пе則ет сообщение М =1000, S1 = 200 и S2 = 35. По‚еку ост‡‚лflем к‡к уп‡жнение. Пелк‡ по схеме по‰писи Шно‡ Похоже, что ‚се ‡т‡ки н‡ схему Эль-Г‡м‡лfl мо„ут быть пименены к схеме Шно‡. О‰н‡ко схем‡ Шно‡ н‡хо‰итсfl ‚ лучшем положении, потому что S1 = h (М | e1r(mod p)). Это озн‡ч‡ет, что хэш-функциfl пименflетсfl к комбин‡ции сообщение и e1r, ‚ котоой r fl‚лflетсfl секетным.
Ст‡н‰‡т цифо‚ой по‰писи (DSS) Ст‡н‰‡т цифо‚ой по‰писи (DSS – Digital Signature Standard) был пинflт н‡цион‡льным Институтом Ст‡н‰‡то‚ и Техноло„ии (NIST) ‚ 1994 „. NIST и片л DSS к‡к FIPS-186 (FEDERAL INFORMATION PROCESSING STANDARD 186). DSS пименflет ‡л„оитм цифо‚ой по‰писи (DSA), осннный н‡ схеме Эль-Г‡м‡лfl, с использнием некотоых и‰ей из схемы Шно‡. DSS китиклсfl со ‚емени е„о и片ниfl. Г뇂н‡fl петензиfl — оценк‡ безоп‡сности поект‡ DSS. Вто‡fl — ‡зме посто„о числ‡, 512 бито‚. Позже NIST с‰ел‡л это число пееменно„о ‡зме‡, чтобы от‚етить н‡ эту петензию. Рисунок 13.13 ‰‡ет общую и‰ею схемы DSS.
Рис. 13.13. Общ‡fl и‰еfl схемы DSS В поцессе по‰пис‡ниfl ‰‚е функции со片ют ‰‚е по‰писи; ‚ поцессе по‚еки ‚ыхо‰ о‰ной функции с‡‚н肇етсfl с пе‚ой по‰писью ‰лfl по‚еки. Это по‰обно схеме Шно‡, но ‚хо‰ы ‡зличны. Ду„ое отличие: эт‡ схем‡ использует ‰‡й‰жест сообщениfl (не с‡мо сообщение) к‡к ч‡сть ‚хо‰о‚ к функциflм 1 и 3. Интеесно то, что схем‡ пименflет ‰‚‡ обще‰оступных мо‰улfl: p и q. Функции 1 и 3 используют об‡ мо‰улfl p и q, функциfl 2 — только q. Дет‡ли ‚хо‰о‚ и функций коотко ‡ссм‡т肇ютсfl ниже. Гене‡циfl ключей Пее‰ по‰пис‡нием сообщениfl к любому объекту Алис‡ ‰олжн‡ „енеить ключи и объfl‚ить обще‰оступные ключи. 437
Кус
Киптфиfl и безоп‡сность сетей
1. Алис‡ ‚ыби‡ет постое число ‰линой p меж‰у 512 и 1024 бит‡ми. Число бито‚ ‚ p ‰олжно быть к‡тно числу 64. 2. Алис‡ ‚ыби‡ет постое число н‡ 160 бито‚ q с т‡ким усло‚ием, чтобы оно ‰елилось н‡ (p – 1). 3. Алис‡ использует ‰‚е „уппы умножениfl, и ; ‚то‡fl — пупп‡ пе‚ой. 4. Алис‡ со片ет e1, т‡кое, чтобы оно было q-тым конем 1 по мо‰улю p (e1p = 1 mod p). Он‡ поступ‡ет т‡к: ‚ыби‡ет элемент ‚ Zp, e0, и ‚ычислflет e1 = e0(p–1)/q. 5. Алис‡ ‚ыби‡ет d к‡к секетный ключ и ‚ычислflет e2 = e1d. 6. Обще‰оступный ключ Алисы — (e1, e2, p, q), ее секетный ключ – (d). По‰пис‡ние и по‚ек‡ Рисунок 13.14 пок‡зы‚‡ет схему DSS.
Рис. 13.14. Схем‡ DSS По‰пис‡ние. Ниже пок‡з‡ны ш‡„и по‰пис‡ниfl сообщениfl. 1. Алис‡ ‚ыби‡ет случ‡йное число r(1 ≤ r ≤ q). Об‡тите ‚ним‡ние, что хотfl откытые и секетные ключи мо„ут быть ‚ыб‡ны о‰ин ‡з и использтьсfl ‰лfl то„о, чтобы по‰пис‡ть мно„о сообщений, Алис‡ ‰олжн‡ ‚ыби‡ть к‡ж‰ый ‡з но‚ый r, к‡ он‡ ‰олжн‡ по‰пис‡ть но‚ое сообщение. 2. Алис‡ ‚ычислflет пе‚ую по‰пись S1 = (e1r mod p) mod q. Об‡тите ‚ним‡ние: зн‡чение пе‚ой по‰писи не 燂исит от М (сообщениfl). 3. Алис‡ со片ет ‰‡й‰жест сообщениfl h (M). 438
Лекциfl 13
Цифfl по‰пись
4. Алис‡ ‚ычислflет ‚тоую по‰пись S2 = (h(M) + d S1)r–1 mod q. Об‡тите ‚ним‡ние, что ‚ычисление S2 ‰ел‡етсfl по мо‰улю q. 5. Алис‡ посыл‡ет M, S1 и S2 Бобу. По‚ек‡ (‚еифик‡циfl). Длfl по‚еки сообщениfl обычно пименflютсfl сле‰ующие ш‡„и, к‡ получены М, S1 и S2. 1. Боб по‚еflет S1 0 < S 1 < q. 2. Боб по‚еflет S2 0 < S2 < q. 3. Боб ‚ычислflет ‰‡й‰жест М, пименflfl ‡л„оитм хэшиниfl, используемый Алисой. 4. Боб ‚ычислflет V = (e1h(M)S2-1 e2S1S2-1mod p) mod q. 5. Если S кон„уэнтен V, сообщение пиним‡етсfl; ин‡че — отклонflетсfl. Пиме 13.5 Алис‡ ‚ыби‡ет q = 101 и p = 8081. Алис‡ ‚ыби‡ет e0 = 3 и ‚ычислflет e1 = e0(p – 1)/q mod p = 6968. Алис‡ ‚ыби‡ет d = 61 ‚ к‡чест‚е секетно„о ключ‡ и ‚ычислflет e2 = e1d mod p = 2038. Тепеь Алис‡ может пе則ть сообщение Бобу. Пе‰положим, что h (M) = 5000, и Алис‡ ‚ыби‡ет r = 61:
Алис‡ пе則ет М, S1 и S2 Бобу. Боб использует обще‰оступные ключи, чтобы ‚ычислить V.
Поскольку S1 и V fl‚лflютсfl с‡‚нимыми, Боб пиним‡ет сообщение. С‡‚нение DSS и RSА Вычисление DSS-по‰писи быстее, чем ‚ычисление по‰писей RSА, пи использнии то„о же с‡мо„о p. С‡‚нение DSS и схемы Эль-Г‡м‡лfl DSS-по‰пись — меньше, чем по‰писи ‚ схеме Эль-Г‡м‡лfl, потому что q меньше, чем p.
Схем‡ цифо‚ой по‰писи эллиптической ки‚ой Н‡ш‡ после‰нflfl схем‡ — схем‡ цифо‚ой по‰писи эллиптической ки‚ой (ECDSS — Elliptic Curve Digital Signature Scheme), кото‡fl осно‚‡н‡ н‡ пименении эллиптических ки‚ых, — их мы обсу扇ли ‚ Лекции 10. Схем‡ ин‡ упо439
Кус
Киптфиfl и безоп‡сность сетей
мин‡етсfl к‡к ECDSA (Elliptic Curve Digital Signature Algorithm). Рисунок 13.15 пок‡зы‚‡ет общую и‰ею ECDSS. В поцессе по‰пис‡ниfl ‰‚е функции и экст‡кто (из‚лек‡ющее устойст‚о) со片ют ‰‚е по‰писи; ‚ поцессе по‚еки (‚еифик‡ции) об‡б‡ты‚‡ют ‚ыхо‰ о‰ной функции (после похож‰ениfl чеез экст‡кто) и с‡‚н肇ют ее с пе‚ой по‰писью ‰лfl по‚еки. Функции f1 и f3 ф‡ктически со片ют точки н‡ ки‚ой. П傇fl со片ет но‚ую точку ‰лfl секетно„о ключ‡ по‰писы‚‡юще„о лиц‡. Вто‡fl — но‚ую точку из ‰‚ух обще‰оступных ключей по‰писы‚‡юще„о лиц‡. К‡ж‰ый экст‡кто из‚лек‡ет пе‚ые коо‰ин‡ты соот‚етст‚ующей точки ‚ мо‰ульной ‡ифметике. Дет‡ли ‚хо‰о‚ и функций коотко обсу扇ютсfl ‰‡лее.
Рис. 13.15. Общ‡fl и‰еfl схемы DSS Гене‡циfl ключей Гене‡циfl ключей осущест‚лflетсfl сле‰ующими ш‡„‡ми. 1. Алис‡ ‚ыби‡ет эллиптическую ки‚ую Ep (a,b) с постым числом p. 2. Алис‡ ‚ыби‡ет ‰у„ое постое число q, чтобы использть ‰лfl ‚ычислениfl. 3. Алис‡ ‚ыби‡ет секетный ключ d, целое число. 4. Алис‡ ‚ыби‡ет точку н‡ ки‚ой e1(.,….) 5. Алис‡ ‚ычислflет e2 (..,....) = d × e1 (......), ‰у„ую точку н‡ ки‚ой. 6. Обще‰оступный ключ Алисы — (a, b, p, q, e1\, e2), ее секетный ключ — d. По‰пис‡ние и по‚ек‡ (‚еифик‡циfl) Рисунок 13.16 пок‡зы‚‡ет схему цифо‚ой по‰писи эллиптической ки‚ой. По‰пис‡ние. Поцесс по‰пис‡ниfl состоит „뇂ным об‡зом из ‚ыбо‡ секетно„о случ‡йно„о числ‡, со片ниfl тетьей точки н‡ ки‚ой, ‚ычислениfl ‰‚ух по‰писей и пе則чи сообщениfl и по‰писей. 1. Алис‡ ‚ыби‡ет секетное случ‡йное число, r, меж‰у 1 и q – 1. 2. Алис‡ ‚ыби‡ет тетью точку н‡ ки‚ой, P (u, v) = r × e1 (......). 440
Лекциfl 13
Цифfl по‰пись
Рис. 13.15. Общ‡fl и‰еfl схемы ECDSS 3. Алис‡ использует пе‚ые коо‰ин‡ты P (u, v), чтобы ‚ычислить пе‚ую по‰пись S1. Это озн‡ч‡ет S1 = u mod q. 4. Алис‡ использует ‰‡й‰жест сообщениfl, с‚ой секетный ключ и секетное случ‡йное число r и S1, чтобы ‚ычислить ‚тоую по‰пись S2 = (h (M) + d × S1) r-1 mod q, 5. Алис‡ пе則ет М, S1 и S2. По‚ек‡ (‚еифик‡циfl). Поцесс по‚еки состоит „뇂ным об‡зом из ‚осст‡но‚лениfl тетьей точки и по‰т‚еж‰ениfl, что п傇fl коо‰ин‡т‡ эк‚肇лентн‡ S1 по мо‰улю q. Об‡тите ‚ним‡ние, что тетьfl точк‡ был‡ соз‰‡н‡ по‰писы‚‡ющим лицом, использующим секетное случ‡йное число r. Веифик‡то не имеет это„о зн‡чениfl. Ему нужно со片ть тетью точку из ‰‡й‰жест‡ сообщениfl, S1, и S2. 1. Боб пименflет М, S1 и S2 ‰лfl со片ниfl ‰‚ух помежуточных езульт‡то‚ A и B: A = h(M)S2-1 mod q
B = S2-1S1 mod q
З‡тем Боб ‚осст‡н‡‚л肇ет тетью точку T(x,y) = A × e1(…,…) + B × e2(…,…). 2. Боб использует пе‚ую коо‰ин‡ту из T(x,y), чтобы по‚еить сообщение. Если x = S1 mod q, по‰пись пиним‡етсfl, ин‡че — отклонflетсfl.
13.6. В‡и‡нты и пиложениfl В этой секции к‡тко обсу扇ютсfl ‚‡и‡нты и пиложениfl ‰лfl цифо‚ых по‰писей. 441
Кус
Киптфиfl и безоп‡сность сетей
В‡и‡нты Ниже по‚о‰итсfl к‡ткое обсуж‰ение некотоых ‚‡и‡нто‚ и ‰ополнений к „л‡‚ному понflтию цифо‚ых по‰писей. Длfl более четко„о поним‡ниfl чит‡тель может посмотеть специ‡льную лите‡туу. По‰пись с ук‡з‡нием ‚емени Ин‡ по‰пис‡нный ‰окумент ‰олжен иметь ук‡з‡ние ‚емени, чтобы пепflтст‚ть ‰ейст‚иflм поти‚ник‡. Это н‡з‚‡но схемой цифо‚ой по‰писи с ук‡з‡нием ‚емени. Н‡пиме, Алис‡ по‰писы‚‡ет ук‡з‡ние с‚оему б‡нку (усло‚но Бобу) ‚ы‰‡ть некотоую сумму ‰ене„ Е‚е. Документ может быть пеех‚‡чен Е‚ой, если н‡ этом ‰окументе нет ник‡ко„о ук‡з‡ниfl ‚емени. Включение ф‡ктической ‰‡ты и ‚емени н‡ ‰окумент‡х может со片ть поблемы — несинхонизинные ч‡сы, отсутст‚ие уни‚ес‡льно„о ‚емени. О‰но ешение состоит ‚ том, чтобы использть nonce (number only once — Nonce) — о‰но‡зо‚ое случ‡йное число, котоое может быть 燉ейст‚но только о‰н‡ж‰ы. К‡ пиемник получ‡ет ‰окумент с nonce, он сост‡‚лflет пимеч‡ние, что число было использно пе則тчиком и не может использтьсfl сн. Ду„ими слми, но‚ый nonce — «н‡стоflщее ‚емfl»; пимененный nonce опе‰елflет «пошлое ‚емfl». Слепые по‰писи Ин‡ мы имеем ‰окумент, котоый хотим по‰пис‡ть, не ‡скы‚‡fl со‰еж‡ние ‰окумент‡ по‰писы‚‡ющему лицу. Н‡пиме, ученый хочет сообщить Бобу, что он, ‚озможно, откыл очень ‚‡жную теоию, котоую необхо‰имо 燂еить у обычно„о нот‡иус‡. Он посит Алису пе則ть это, не ‡зеш‡fl ей узн‡ть со‰еж‡ние теоии. Длfl этой цели Дэ‚и‰ Чом (David Caum) ‡з‡бот‡л некотоые п‡тентнные слепые схемы цифо‚ой по‰писи. Г뇂н‡fl и‰еfl состоит ‚ сле‰ующем. ‡. Боб со片ет сообщение и м‡скиует (з‡темнflет) е„о. Боб пе則ет м‡скинное сообщение Алисе. б. Алис‡ по‰писы‚‡ет з‡м‡скинное сообщение и ‚о炇щ‡ет по‰пись н‡ з‡м‡скинном сообщении. ‚. Боб сним‡ет нем‡скинную по‰пись, чтобы получить по‰пись н‡ пе‚он‡ч‡льном сообщении. Слеп‡fl по‰пись, осннн‡fl н‡ схеме RSА. Опишем к‡тко слепую схему цифо‚ой по‰писи, ‡з‡бот‡нную Дэ‚и‰ом Чомом. М‡скио‚к‡ может быть с‰ел‡н‡ с использнием ‚‡и‡нт‡ схемы RSA. Боб ‚ыби‡ет случ‡йное число, b, и ‚ычислflет слепое сообщение B = М × be mod n, ‚ котоом e fl‚лflетсfl откытым ключом Алисы и n — опе‰еленным мо‰улем ‚ схеме цифо‚ой по‰писи RSА. Об‡тите ‚ним‡ние, что b ин‡ н‡зы‚‡етсfl «м‡скиующим коэффициентом», котоый Боб пе則ет Алисе. Алис‡ по‰писы‚‡ет м‡скинное сообщение, используfl ‡л„оитм по‰пис‡ниfl, опе‰еленный ‚ RSA. Цифfl по‰пись – Sblind = Bd mod n, „‰е d fl‚лflетсfl секетным ключом Алисы. Об‡тите ‚ним‡ние, что Sb — по‰пись н‡ слепой (м‡скинной) ‚есии сообщениfl. 442
Лекциfl 13
Цифfl по‰пись
Боб посто использует мультиплик‡ти‚ную ин‚есию е„о случ‡йно„о числ‡ b, чтобы от‰елить слепое сообщение от по‰писи. По‰пись — S = Sb b-1 mod n. Мы можем ‰ок‡з‡ть, что S — по‰пись н‡ пе‚он‡ч‡льном сообщении, к‡к это опе‰елено ‚ схеме цифо‚ой по‰писи RSA:
„‰е S — по‰пись, если Боб пе則л пе‚он‡ч‡льное сообщение, котоое бу‰ет по‰пис‡но Алисой. Пе‰от‚‡щение мошенничест‚‡. Пи слепой по‰писи поfl‚лflетсfl оп‡сность, что Боб, может ‰‡ть Алисе по‰пис‡ть слепое сообщение, котоое может 퇂е‰ить ей. Н‡пиме, сообщение Боб‡ мо„ло быть ‰окументом, ут‚е扇ющим, что Алис‡ пе則ст Бобу ‚се с‚ое имущест‚о после ее смети. Есть по к‡йней мее ти способ‡ пе‰от‚‡тить т‡кой ущеб. ‡. А‰минист‡циfl может и片ть юи‰ический ‡кт, что Алис‡ не от‚етст‚енн‡ з‡ по‰пись любо„о слепо„о сообщениfl, котоое н‡уш‡ет ее интеесы. б. Алис‡ может з‡посить ‰окумент от Боб‡, что сообщение, котоое он‡ по‰пишет, не н‡носит ей ущеб‡. ‚. Алис‡ мо„л‡ бы тебть, чтобы Боб ‰ок‡з‡л с‚ою честность пеж‰е, чем он‡ по‰пишет ему слепое сообщение Бесспоные цифо‚ые по‰писи Бесспоные схемы цифо‚ой по‰писи — изflщное изобетение Чом‡ и В‡н Ант‚епен‡ (van Antwerpen). Бесспон‡fl схем‡ цифо‚ой по‰писи имеет ти компонент‡: ‡л„оитм по‰пис‡ниfl, потокол по‚еки и потокол отиц‡ниfl. Ал„оитм по‰пис‡ниfl поз‚олflет Алисе по‰писы‚‡ть сообщение. Потокол по‚еки использует мех‡низм ‚ыз-от‚ет‡ (‡ссмотенный ‚ лекции 14), с е„о помощью Алис‡ может по‰т‚е‰ить с‚ою по‰пись. Это пе‰от‚‡щ‡ет копиние и ‡спе‰еление по‰пис‡нно„о сообщениfl без о‰обениfl Алисы. Потокол отиц‡ниfl помет Алисе отиц‡ть ф‡льши‚ую по‰пись. Чтобы потом иметь ‚озможность ‰ок‡з‡ть, что по‰пись — пелк‡, Алис‡ ‰олжн‡ пинflть уч‡стие ‚ сост‡‚лении потокол‡ отиц‡ниfl.
Пиложениfl В ‰‡льнейшем ‚ этой кни„е обсу扇ютсfl несколько пиложений киптфии ‰лfl сете‚ой безоп‡сности. Большинст‚о этих пиложений непосе‰ст‚енно или кос‚енно тебует использниfl откытых ключей. Чтобы использть откытый ключ, чело‚ек ‰олжен ‰ок‡з‡ть, что он з‡конно ‚л‡‰еет этим ключом. По этой пичине был‡ ‡з‡бот‡н‡ и‰еfl сетифик‡ции и с‚и‰етельст‚ сетифик‡ции (CA) (см. лекцию 14 и лекцию 15). С‚и‰етельст‚‡ (CA), чтобы быть пизн‡нными, ‰олжны быть по‰пис‡ны. Цифо‚ые по‰писи используютсfl, чтобы обеспечить т‡кое ‰ок‡з‡тельст‚о. К‡ Алис‡ ‰олжн‡ пименить откытый ключ Боб‡, он‡ пользуетсfl с‚и‰етельст‚ом. Сетифицинные CA используют обще‰оступный ключ с секетным ключом и по‚еflемой по‰писью Алисы. С‡мо с‚и‰етельст‚о со‰ежит обще‰оступный ключ Боб‡. 443
Кус
Киптфиfl и безоп‡сность сетей
Се„о‰нflшние потоколы, котоое используют услу„и CA, – это IPSec (лекциfl 18), SSL/TLS (лекциfl 17) и S/MIME (лекциfl 16). Потокол PGP пеж肇ет с‚и‰етельст‚‡, но они мо„ут быть з‡менены со„л‡шениflми меж‰у лю‰ьми ‚ сообщест‚е.
13.7. Рекомен‰о‚‡нн‡fl лите‡ту‡ Длfl более ‰ет‡льно„о изучениfl положений, обсуж‰енных ‚ этой лекции, мы екомен‰уем нижесле‰ующие кни„и и с‡йты. Пункты, ук‡з‡нные ‚ скобк‡х, пок‡з‡ны ‚ списке ссылок ‚ конце кни„и.
Кни„и [Sti06], [TW06] и [PHS03] по‰обно ‡ссм‡т肇ют цифо‚ые по‰писи.
С‡йты Нижесле‰ующие с‡йты ‰‡ют больше инфом‡ции о тем‡х, обсуж‰енных ‚ этой лекции. http://www.itl.nist.gcv/npspubs/fip 186.htm csrc.nist.gov/publiCti ions/tips/tips 186-2/fipsl 86-2-changel http://en.wikipedia.org /wiki/ElGamal_signature_scheme csrc.nist.gov/cryptvd/dss/ECDSAVS.pdf http://en.wikipedia.org/wiki/ElGamal_signature_scheme http://en.wikipedia.org/wiki/Digital_signature
13.8. Ито„и • Схем‡ цифо‚ой по‰писи может обеспечить те же с‡мые услу„и, что и обычн‡fl по‰пись. Обычн‡fl по‰пись — это ч‡сть ‰окумент‡; цифfl по‰пись — от‰ельный объект. Чтобы по‚еflть обычную по‰пись, получ‡тель с‡‚н肇ет по‰пись с по‰писью ‚ ‡хи‚е; чтобы по‚еflть цифо‚ую по‰пись, получ‡тель н‡ осно‚е ‰окумент‡ по‚о‰ит поцесс по‰т‚еж‰ениfl по‰писи. Меж‰у ‰окументом и обычной по‰писью отношение «о‰ин к мно„им»; Меж‰у цифо‚ой по‰писью и ‰окументом отношение «о‰ин к о‰ному». • Цифо‚ые по‰писи обеспеч肇ют уст‡но‚ление по‰линности сообщениfl, ‡ т‡кже целостность сообщениfl, если ‰‡й‰жест сообщениfl по‰пис‡н непосе‰ст‚енно ‚место сообщениfl, и исключение отк‡з‡ от сообщениfl, если 燉ейст‚но тетье лицо, котоому ‰о‚еflют. • Цифfl по‰пись не может обеспечить конфи‰енци‡льность сообщениfl. Если необхо‰им‡ конфи‰енци‡льность, коме схемы цифо‚ой по‰писи ‰олжн‡ быть пименен‡ киптфическ‡fl систем‡. • Цифfl по‰пись ну扇етсfl ‚ ‡симметично-ключе‚ой системе. В киптфической системе мы используем секетные и откытые ключи пиемник‡; ‰лfl цифо‚ых по‰писей мы используем секетные и откытые ключи пе則тчик‡. 444
Лекциfl 13
Цифfl по‰пись
• Схем‡ цифо‚ой по‰писи RSA пименflет киптфическую систему RSA, но оли секетных и откытых ключей изменflютсfl. Схем‡ цифо‚ой по‰писи Эль-Г‡м‡лfl пименflет киптосистему Эль-Г‡м‡лfl (с некотоыми незн‡чительными изменениflми), но оли секетных и откытых ключей з‰есь иные. Схем‡ цифо‚ой по‰писи Шно‡ — мо‰ифик‡циfl схемы Эль-Г‡м‡лfl, ‚ котоой ‡зме по‰писи может быть меньшим. Ст‡н‰‡т Цифо‚ой по‰писи (DSS) использует ‡л„оитм цифо‚ой по‰писи (DSA), котоый б‡зиуетсfl н‡ схеме Эль-Г‡м‡лfl с некотоыми и‰еflми из схемы Шно‡. • Схем‡ цифо‚ой по‰писи с ук‡з‡нием ‚емени ‡з‡бот‡н‡ ‰лfl пе‰от‚‡щениfl по‚тоно„о использниfl по‰писей. Слепые схемы цифо‚ой по‰писи поз‚олflют Бобу посить Алису по‰пис‡ть ‰окумент, не пок‡зы‚‡fl е„о со‰еж‡ние. Бесспон‡fl схем‡ цифо‚ой по‰писи ну扇етсfl ‚ ‡л„оитме по‰пис‡ниfl, потоколе по‚еки и потоколе отиц‡ниfl ‰лfl пе‰от‚‡щениfl копиниfl и ‡спе‰елениfl по‰пис‡нно„о сообщениfl без о‰обениfl по‰писы‚‡юще„о лиц‡. • Г뇂ное пиложение цифо‚ых по‰писей — это Центы сетифик‡ции (CA).
13.9. Н‡бо ‰лfl п‡ктики Обзоные ‚опосы 1. С‡‚ните и поти‚опост‡‚ьте обычную по‰пись и цифо‚ую по‰пись. 2. Пеечислите службы безоп‡сности, ‰лfl котоых тебуетсfl цифfl по‰пись. 3. С‡‚ните и поти‚опост‡‚ьте ‡т‡ки цифо‚ых по‰писей с ‡т‡к‡ми киптфических систем. 4. С‡‚ните и поти‚опост‡‚ьте экзистенци‡льную и селекти‚ную пелки. 5. Д‡йте опе‰еление схеме цифо‚ой по‰писи RSA и с‡‚ните ее с киптфической системой RSA. 6. Д‡йте опе‰еление схеме Эль-Г‡м‡лfl и с‡‚ните ее со схемой RSA. 7. Д‡йте опе‰еление схеме Шно‡ и с‡‚ните ее со схемой Эль-Г‡м‡лfl. 8. Д‡йте опе‰еление схеме ст‡н‰‡т‡ цифо‚ой по‰писи (DSS) и с‡‚ните ее со схем‡ми Эль-Г‡м‡лfl и Шно‡. 9. Д‡йте опе‰еление схеме цифо‚ой по‰писи эллиптической ки‚ой и с‡‚ните ее с киптосистемой н‡ осно‚е мет эллиптических ки‚ых. 10. Р‡ссмотите ти ‚‡и‡нт‡ цифо‚ых по‰писей, пи‚е‰енных ‚ этой лекции, и к‡тко сфомулиуйте цель к‡ж‰ой.
Уп‡жнениfl 1. Используfl схему RSA, пи p = 809, q = 751, и d = 23, ‚ычислите обще‰оступный ключ e. З‡тем: ‡. По‰пишите и по‚еьте сообщение M1 = 100. Получите по‰пись S1. б. По‰пишите и по‚еьте сообщение с М2 = 50. Получите по‰пись S2. ‚. Пок‡жите, что если М = M1. × М2 = 5000, то S = S1. × S2. 445
Кус
Киптфиfl и безоп‡сность сетей
2. Используfl схему Эль-Г‡м‡лfl пи p = 881 и d = 700, н‡й‰ите зн‡чениfl e1 и e 2. Выбеите r = 17. Н‡й‰ите зн‡чение S1 и S2, если М = 400. 3. Используfl схему Шно‡, пи q = 83, p = 997 и d = 23, н‡й‰ите зн‡чениfl ‰лfl e1 и e 2. Выбеите r = 11. Если М = 400 и h (400) = 100, н‡й‰ите зн‡чение S1., S2 и V. Р‡‚но ли S1 × V (mod p)? 4. Используfl схему DSS, пи q = 59, p = 709 и d = 14, н‡й‰ите зн‡чениfl ‰лfl e1 и e2. Выбеите r = 13. Н‡й‰ите зн‡чение S1 и S2, если h (M) = 100. По‚еьте по‰пись. 5. С‰ел‡йте сле‰ующее: ‡. В схеме RSA н‡й‰ите отношениfl меж‰у ‡змеом S и ‡змеом n. б. В схеме Эль-Г‡м‡лfl н‡й‰ите ‡зме S1 и S2 ‚ 燂исимости от ‡зме‡ p. ‚. В схеме Шно‡ н‡й‰ите ‡зме S1 и S2 ‚ 燂исимости от ‡зме‡ p и q. „. В DSS-схеме н‡й‰ите ‡зме S1 и S2 ‚ 燂исимости от ‡зме‡ p и q. 6. NIST-специфик‡циfl тебует ‰лfl DSS сле‰ующее: если зн‡чение S2 = 0, то ‰‚е по‰писи ‰олжны быть по‚тоно ‚ычислены, используfl но‚ый r. К‡к пичин‡ это„о? 7. Что случитсfl, если Е‚‡ н‡й‰ет зн‡чение r, используемое по‰писы‚‡ющим лицом? Возможно ли это ‚ пинципе? Объflсните ‚‡ш от‚ет от‰ельно ‰лfl схем Эль-Г‡м‡лfl-Шно‡, DSS. 8. Что случитсfl, если Алис‡ по‰пишет ‰‚‡ сообщениfl, используfl о‰но и то же зн‡чение n? Объflсните ‚‡ш от‚ет от‰ельно ‰лfl к‡ж‰о„о потокол‡: Эль-Г‡м‡лfl, Шно‡ или DSS. 9. Пок‡жите пиме уflз‚имости схемы RSA к селекти‚ной пелке, к‡ зн‡чениfl p и q fl‚лflютсfl м‡ленькими. Используйте p = 19 и q = 3. 10. Пок‡жите пиме уflз‚имости схемы Эль-Г‡м‡лfl к селекти‚ной пелке, к‡ зн‡чение p м‡ло. Используйте p = 19. 11. Пок‡жите пиме уflз‚имости схемы Шно‡ к селекти‚ной пелке, к‡ зн‡чениfl p и q fl‚лflютсfl м‡ленькими. Используйте p =29 и q = 7. 12. Пок‡жите пиме уflз‚имости DSS к селекти‚ной пелке, к‡ зн‡чениfl p и q fl‚лflютсfl м‡ленькими. Используйте p =29 и q = 7. 13. В схеме Эль-Г‡м‡лfl, если Е‚‡ может н‡йти зн‡чение r, может ли он‡ пел‡ть сообщение? Объflсните. 14. В схеме Шно‡, если Е‚‡ может н‡йти зн‡чение r, может ли он‡ пел‡ть сообщение? Объflсните. 15. В DSS-схеме, если Е‚‡ может н‡йти зн‡чение r, может ли он‡ пел‡ть сообщение? Объflсните. 16. Пе‰положим, что зн‡чениfl p q, e1 и r ‚ схеме Шно‡ — те же с‡мые, что и соот‚етст‚ующие зн‡чениfl ‚ DSS-схеме. С‡‚ните зн‡чениfl S1 и S2 ‚ схеме Шно‡ с соот‚етст‚ующими зн‡чениflми ‚ DSS-схеме. 17. Объflсните, почему ‚ схеме Эль-Г‡м‡лfl ‚ычисление S2 ‰ел‡етсfl по мо‰улю p, ‡ ‚ычисление S2 ‰ел‡етсfl по мо‰улю p – 1. 18. Объflсните, почему ‚ схеме Шно‡ ‚ычисление S1 ‰ел‡етсfl по мо‰улю p, ‡ ‚ычисление S2 ‰ел‡етсfl по мо‰улю q. 19. Объflсните, почему ‚ схеме DSS ‚ычисление S1 ‰ел‡етсfl по мо‰улю p и мо‰улю q, ‡ ‚ычисление S2 ‰ел‡етсfl только по мо‰улю q. 20. В схеме Шно‡ ‰ок‡жите ильность поцесс‡ по‚еки. 446
Лекциfl 13
Цифfl по‰пись
21. В DSS-схеме ‰ок‡жите ильность поцесс‡ по‚еки. 22. В схеме цифо‚ой по‰писи эллиптической ки‚ой ‰ок‡жите ильность поцесс‡ по‚еки. 23. Н‡пишите ‰‚‡ ‡л„оитм‡ ‰лfl схемы RSА: о‰ин ‰лfl поцесс‡ по‰пис‡ниfl и о‰ин ‰лfl поцесс‡ по‚еки. 24. Н‡пишите ‰‚‡ ‡л„оитм‡ ‰лfl схемы Эль-Г‡м‡лfl: о‰ин ‰лfl поцесс‡ по‰пис‡ниfl и о‰ин ‰лfl поцесс‡ по‚еки. 25. Н‡пишите ‰‚‡ ‡л„оитм‡ ‰лfl схемы Шно‡: о‰ин ‰лfl поцесс‡ по‰пис‡ниfl и о‰ин ‰лfl поцесс‡ по‚еки. 26. Н‡пишите ‰‚‡ ‡л„оитм‡ ‰лfl DSS-схемы: о‰ин ‰лfl поцесс‡ по‰пис‡ниfl и о‰ин ‰лfl поцесс‡ по‚еки. 27. Н‡пишите ‰‚‡ ‡л„оитм‡ ‰лfl схемы эллиптической ки‚ой: о‰ин ‰лfl поцесс‡ по‰пис‡ниfl и о‰ин ‰лfl поцесс‡ по‚еки.
447
Кус
Киптфиfl и безоп‡сность сетей
Лекциfl 14. Уст‡но‚ление по‰линности объект‡ Цели и со‰еж‡ние Эт‡ лекциfl имеет несколько целей. • Пок‡з‡ть ‡зличие меж‰у уст‡но‚лением по‰линности сообщениfl и уст‡но‚лением по‰линности объект‡. • Опе‰елить ‰ок‡з‡тельст‚‡, используемые ‰лfl и‰ентифик‡ции. • Обсу‰ить некотоые мето‰ы уст‡но‚лениfl по‰линности объект‡, н‡пиме, использние п‡олfl. • В‚ести некотоые потоколы ‚ыз-от‚ет‡ ‰лfl уст‡но‚лениfl по‰линности объект‡. • В‚ести некотоые потоколы по‰т‚еж‰ениfl с нуле‚ым ‡з„л‡шением ‰лfl уст‡но‚лениfl по‰линности объект‡. • Опе‰елить биометию и ‡злич‡ющие х‡‡ктеистики меж‰у физиоло„ическими и по‚е‰енческими метми.
14.1. В‚е‰ение Уст‡но‚ление по‰линности объект‡ (‡утентифик‡циfl) — мето‰ик‡, кото‡fl поз‚олflет о‰ной стооне ‰ок‡зы‚‡ть по‰линность ‰у„ой стооны. Объект может быть чело‚еком, поцессом, клиентом или се‚еом. Объект, по‰линность котоо„о ‰олжн‡ быть ‰ок‡з‡н‡, н‡зы‚‡етсfl петен‰ентом; пизн‡ки по‰линности (и‰ентифик‡ционный ко‰) петен‰ент‡ н‡з‚‡ны ‚еифик‡тоом. К‡ Боб побует ‰ок‡з‡ть по‰линность Алисы, Алис‡ — петен‰ент, ‡ Боб — ‚еифик‡то.
Сопост‡‚ление источник‡ ‰‡нных и уст‡но‚лениfl по‰линности объект‡ Есть ‰‚‡ отличиfl меж‰у сообщением, ‡ссмотенным ‚ лекции 13, и уст‡но‚лением по‰линности объект‡, (источник‡ ‰‡нных), о котоом мы бу‰ем „о‚оить ‚ этой лекции. 1. Пе‚ое: уст‡но‚ление по‰линности сообщениfl (или уст‡но‚ление по‰линности поисхож‰ениfl ‰‡нных) не может быть по‚е‰ено ‚ е‡льном м‡сшт‡бе ‚емени. Алис‡ пе則ет сообщение Бобу. К‡ Боб по‚еflет по‰линность сообщениfl, Алис‡ может уч‡ст‚ть или не уч‡ст‚ть ‚ поцессе с‚flзи. С ‰у„ой стооны, к‡ Алис‡ з‡п‡ш肇ет объект ‰лfl уст‡но‚лениfl по‰линности, сое‰инение ‰лfl пе則чи сообщений не уст‡н‡‚л肇етсfl, пок‡ Алис‡ не бу‰ет опозн‡н‡ Бобом. Алис‡ ‰олжн‡ быть ‚ сети и пинflть уч‡стие ‚ поцессе опоз퇂‡ниfl. Только после то„о, к‡к он‡ опозн‡н‡, мо„ут пе則‚‡тьсfl сообщениfl меж‰у Алисой и Бобом. Уст‡но‚ление по‰линности источник‡ ‰‡нных тебуетсfl, к‡ электонную почту пе則ют от Алисы Бобу, ‡‚но к‡к и к‡ Алис‡ беет н‡личные из б‡нко‚ско„о ‡‚том‡т‡. 2. Втоое: уст‡но‚ление по‰линности сообщениfl посто по‰т‚е扇ет по‰линность о‰но„о сообщениfl. Поцесс уст‡но‚лениfl по‰линности сооб448
Лекциfl 14
Уст‡но‚ление по‰линности объект‡
щениfl может, ‚ случ‡е необхо‰имости, по‚тоflтьсfl ‰лfl к‡ж‰о„о но‚о„о сообщениfl. Уст‡но‚ление по‰линности объект‡ по‰т‚е扇ет по‰линность петен‰ент‡ н‡ ‚сю по‰олжительность се‡нс‡.
К‡те„оии по‚еки В уст‡но‚лении по‰линности объект‡ петен‰ент ‰олжен и‰ентифицить себfl ‰лfl ‚еифик‡то‡. Этот может быть с‰ел‡но о‰ним из тех ‚и‰о‚ с‚и‰етелей: нечто, из‚естное только петен‰енту, нечто, чем об뇉‡ет только петен‰ент, или нечто, с‚ойст‚енное только петен‰енту. Нечто из‚естное. Это — секетн‡fl инфом‡циfl из‚естн‡fl только петен‰енту, что может быть по‚еено ‚еифик‡тоом. Пимеы: п‡оль, PIN-ко‰, ключ з‡секеч肇ниfl и секетный ключ. Нечто, чем об뇉‡ет. Это то, что может ‰ок‡з‡ть опоз퇂‡тельный ко‰ петен‰ент‡. Пимеы: п‡спот, ‚о‰ительские ‡, у‰осто‚еение личности, ке‰итн‡fl к‡точк‡ и к‡точк‡ с инт儇льной схемой, ‚ключ‡ющей микопоцессо. Нечто с‚ойст‚енное. Это с‚ойст‚енные петен‰енту х‡‡ктеистики. Пимеы: обычные по‰писи, отпеч‡тки п‡льц‡, „олос, х‡‡ктеистики лиц‡, об‡зец сетч‡тки „л‡з‡ и почек.
Уст‡но‚ление по‰линности объект‡ и уление ключ‡ми Эт‡ лекциfl обсу扇ет уст‡но‚ление по‰линности объект‡. Сле‰ующ‡fl лекциfl ‡ссм‡т肇ет уление ключ‡ми. Эти ‰‚е темы очень близко с‚flз‡ны; большинст‚о потоколо‚ улениfl ключ‡ми использует потоколы уст‡но‚лениfl по‰линности объект‡. Именно поэтому ‚ большинст‚е кни„ эти ‰‚е темы обсу扇ютсfl ‚месте. В этой кни„е ‰лfl flсности они ‡ссм‡т肇ютсfl от‰ельно.
14.2. П‡оли С‡мый постой и с‡мый ст‡ый мето‰ ‡утентифик‡ции объект‡ — ‡утентифик‡циfl н‡ осно‚е п‡олfl, „‰е п‡оль — «нечто, что зн‡ет» петен‰ент. П‡оль используетсfl, к‡ пользтель ‰олжен об‡титьсfl к системе, чтобы 燉ейст‚ть есусы системы (‚хо‰ ‚ систему); пользтель имеет пользтельскую и‰ентифик‡цию, кото‡fl откыт‡, и секетный п‡оль. Мы ‡з‰елflем схемы т‡кой ‡утентифик‡ции н‡ ‰‚е „уппы: фиксинный п‡оль и о‰но‡зо‚ый п‡оль.
Фиксинный п‡оль Фиксинный п‡оль — п‡оль, котоый, используетсfl мно„о ‡з пи к‡ж‰ом об‡щении. Из‚естны несколько схем пименениfl т‡ко„о п‡олfl. Пи элемент‡ном по‰хо‰е систем‡ сох‡нflет т‡блицу (ф‡йл), ‚ котоой отсотины пользтельские и‰ентифик‡тоы. Чтобы получить ‰опуск к системным есус‡м, ‚ н‡ч‡ле се‡нс‡ пользтель пе則ет системе с‚ой пользтельский и‰ентифик‡то и п‡оль. Систем‡ использует и‰ентифик‡цию, чтобы 449
Кус
Киптфиfl и безоп‡сность сетей
н‡йти п‡оль ‚ т‡блице. Если п‡оль, пе則‚‡емый пользтелем, соот‚етст‚ует п‡олю ‚ т‡блице, пользтелю пе‰ост‡‚лflют ‰оступ; ин‡че е„о з‡fl‚к‡ отклонflетсfl. Рисунок 14.1 иллюстиует этот по‰хо‰.
Рис. 14.1. Пользтельский ID и п‡оль Ат‡ки Пе‚ый по‰хо‰. Этот по‰хо‰ со‰ежит несколько ‚и‰о‚ ‡т‡к. Пеех‚‡т инфом‡ции. Е‚‡ может по‰смотеть, к‡к Алис‡ печ‡т‡ет с‚ой п‡оль. Большинст‚о систем, ‚ к‡чест‚е меы безоп‡сности, не пок‡зы‚‡ет сим‚олы, котоые печ‡т‡ет пользтель. Пеех‚‡т инфом‡ции может пиобет‡ть более сложную фому. Е‚‡ может послуш‡ть линию или пеех‚‡тить сообщение, т‡ким об‡зом, фиксиуfl п‡оль ‰лfl использниfl ‚ с‚оих целflх. З‡х‚‡т п‡олfl. Втоой тип ‡т‡ки ‚озник‡ет, к‡ Е‚‡ побует физически з‡х‚‡тить п‡оль Алисы. З‡х‚‡т может быть пе‰от‚‡щен, если Алис‡ не з‡писы‚‡ет п‡оль, ‡ ‚место это„о только з‡уч肇ет е„о. По этой пичине п‡оль ‰олжен быть очень пост и, т‡к или ин‡че, с‚flз‡н с чем-то зн‡комым Алисе. Но это ‰ел‡ет п‡оль уflз‚имым к ‰у„им тип‡м ‡т‡к. Доступ к ф‡йлу п‡олfl. Е‚‡ может ‚злом‡ть систему и получить ‰оступ к IDф‡йлу п‡олfl. Е‚‡ может почит‡ть ф‡йл и н‡йти п‡оль Алисы или ‰‡же изменить е„о. Чтобы пе‰от‚‡тить этот тип ‡т‡ки, ф‡йл может быть з‡щищенным по чтению и з‡писи. О‰н‡ко большинст‚о систем ну扇етсfl ‚ том, чтобы этот тип ф‡йл‡ был чит‡емым. Мы у‚и‰им поз‰нее, к‡к ‚тоой по‰хо‰ может з‡щитить ф‡йл от это„о тип‡ ‡т‡ки. По‰бо. Используfl ‡т‡ку по‰бо‡, Е‚‡ может з‡е„иститьсfl ‚ системе и попобть по‰об‡ть п‡оль Алисы, пееби‡fl ‡зличные комбин‡ции сим‚оло‚. П‡оль особенно уflз‚им, если пользтелю ‡зеш‡ют ‚ыб‡ть кооткий п‡оль (несколько сим‚оло‚). Т‡кже уflз‚им‡ опе‡циfl, если Алис‡ ‚ыб‡л‡ коечто ти‚и‡льное, т‡кое, к‡к с‚ой ‰ень ож‰ениfl, имfl с‚ое„о ебенк‡ или имfl ее любимо„о ‡кте‡. Длfl то„о чтобы пе‰от‚‡тить по‰бо, екомен‰уетсfl ‰линный случ‡йный п‡оль, что-то не очень оче‚и‰ное. О‰н‡ко использние т‡ко„о случ‡йно„о п‡олfl может т‡кже со片ть поблему, поскольку Алис‡ может ле„ко з‡450
Лекциfl 14
Уст‡но‚ление по‰линности объект‡
быть т‡кой п‡оль и обычно ‚озник‡ет жел‡ние иметь и х‡нить „‰е-нибу‰ь копию, что ‰ел‡ет п‡оль уflз‚имым к з‡х‚‡ту. Втоой по‰хо‰. Более безоп‡сный по‰хо‰ состоит ‚ том, чтобы х‡нить хэшиние п‡олfl (‚место п‡олfl исхо‰но„о текст‡) ‚ ф‡йле п‡олfl. Любой пользтель может чит‡ть со‰еж‡ние ф‡йл‡, но из-з‡ то„о, что хэш-функциfl — о‰ностооннflfl функциfl, почти не‚озможно по‰об‡ть зн‡чение п‡олfl. Рисунок 14.2 пок‡зы‚‡ет ситу‡цию, к‡ со片етсfl п‡оль и ‰лfl е„о сох‡нениfl пименflетсfl системное хэшиние.
Рис. 14.2. Хешиние п‡олfl К‡ пользтель пе則ет ID и п‡оль, систем‡ ‚ыполнflет хэшиние п‡олfl, ‡ з‡тем с‡‚н肇ет зн‡чение хэшинно„о п‡олfl со зн‡чением, сох‡ненным ‚ ф‡йле. Если они со‚‡ют, пользтелю пе‰ост‡‚лflют ‰оступ; ин‡че — ‰оступ з‡пещ‡етсfl. В этом случ‡е ф‡йл не ‰олжен быть з‡щищен от чтениfl. Ат‡к‡ слfl. Хэш-функциfl пепflтст‚ует Е‚е получ‡ть ‰оступ к системе ‰‡же пи том, что Е‚‡ имеет ф‡йл п‡олfl. О‰н‡ко есть ‚се еще ‚озможность ‡т‡ки слfl. В этой ‡т‡ке Е‚‡ интеесуетсfl н‡хож‰ением только п‡олfl, не燂исимо от пользтельско„о ID. Н‡пиме, если п‡оль — 6 циф, Е‚‡ может со片ть список чисел с 6-ю циф‡ми (000000 к 999999) и з‡тем пименить хэш-функцию к к‡ж‰ому числу; езульт‡т — список из о‰но„о миллион‡ хэшинных п‡олей. Он‡ может з‡тем получить ф‡йл п‡олfl и по‚ести поиск ‚хо‰о‚ ‚тоо„о столбц‡, чтобы н‡йти со‚ение. Поцесс поиск‡ может быть з‡пммин и ‚ыполнен ‡‚тономно н‡ ч‡стном компьютее Е‚ы. После то„о к‡к со‚ение н‡й‰ено, Е‚‡ может ‡бот‡ть с интеесующей ее системой инте‡кти‚но и использть п‡оль, чтобы об‡титьсfl к системе. Тетий по‰хо‰ пок‡зы‚‡ет, к‡к з‡ту‰нить т‡кую ‡т‡ку. Тетий по‰хо‰. Тетий по‰хо‰ н‡з‚‡н salting п‡олfl1. К‡ сток‡ п‡олfl со片н‡, к ней ‰оᇂлflетсfl (с помощью опе‡ции «конк‡тен‡циfl») случ‡йн‡fl сток‡, н‡зы‚‡ем‡fl salt. Дополненный п‡оль и хэшинн‡fl инфом‡циfl сох‡нfl1
Salting password – «соление» п‡олfl. В усской лите‡туе по киптфии не ‚стеч‡етсfl соот‚етст‚ующе„о темин‡. В большинст‚е случ‡е‚ ‰лfl ‡ссм‡т肇емо„о поцесс‡ з‡щиты п‡олfl пименflетсfl темин salting, ‰лfl пименflемо„о ‰ополнениfl — salt — пим. пе. 451
Кус
Киптфиfl и безоп‡сность сетей
етсfl ‚ ф‡йле и хэшиуютсfl, ‡ з‡тем сн сох‡нflютсfl ‚ ф‡йле. Тепеь, к‡ пользтель з‡п‡ш肇ет ‰оступ, систем‡ из‚лек‡ет salt, конк‡тениует (писое‰инflет) е„о c полученным п‡олем, ‰ел‡ет хэшиние инфом‡ции езульт‡т‡ и с‡‚н肇ет с хэшинной инфом‡цией, сох‡ненной ‚ ф‡йле. Если они со‚‡ют, ‡зеш‡етсfl ‰оступ к системе; ин‡че — з‡fl‚к‡ отклонflетсfl (см. ис. 14.3).
Рис. 14.3. Salt-п‡оль («соль» п‡олfl) Р‡ссмотенный ‚ыше поцесс з‡ту‰нил ‡т‡ку слfl. Если пе‚он‡ч‡льный п‡оль — 6 циф, и salt — 4 цифы, то хэшиние пи‚о‰ит к зн‡чению с 10-ю циф‡ми. Это озн‡ч‡ет, что Е‚‡ тепеь ‰олжн‡ с‰ел‡ть список из 10 миллионо‚ комбин‡ций и по‚ести хэшиние ‰лfl к‡ж‰ой из них. Список хэшиниfl ИЗ 10 миллионо‚ ‚хо‰о‚ и с‡‚нение тебует н‡мно„о больше ‚емени, чем ‚ пе‰ы‰ущем случ‡е по‰бо‡. Salting очень эффекти‚н‡fl поце‰у‡, если salt — очень ‰линное случ‡йное число. Опе‡ционн‡fl систем‡ UNIX использует ‚‡и‡нт т‡ко„о мет. Чет‚етый по‰хо‰. В чет‚етом по‰хо‰е ‰‚‡ мет и‰ентифик‡ции объе‰инены. Хооший пиме это„о тип‡ уст‡но‚лениfl по‰линности — использние к‡ты ATM (пл‡тежно„о ‡‚том‡т‡) с PIN-ко‰ом (PIN — Personal Identification Number — песон‡льный номе и‰ентифик‡ции). Петен‰ент, имеющий к‡ту, пи퇉лежит к к‡те„оии «имеет нечто», ‡ PIN-ко‰ пи퇉лежит той же к‡те„оии «нечто из‚естное». PIN — п‡оль, котоый у‚елич肇ет безоп‡сность к‡ты. Если к‡т‡ з‡х‚‡чен‡, он‡ не может использтьсfl, к‡ PIN-ко‰ не из‚естен. Число PIN-к, о‰н‡ко, т‡‰иционно очень коотко, т‡к что оно ле„ко з‡помин‡етсfl ‚뇉ельцем. Но это ‰ел‡ет е„о уflз‚имым ‰лfl ‡т‡ки по‰боом.
О‰но‡зо‚ый п‡оль О‰но‡зо‚ый п‡оль — это п‡оль, пименflемый е‰инож‰ы. Этот тип п‡олfl ‰ел‡ет бесполезным пеех‚‡т п‡олfl и е„о ‰ополнение (salting). З‰есь ‡ссм‡т肇ютсfl ти по‰х. Пе‚ый по‰хо‰. Пи пе‚ом по‰хо‰е пользтель и систем‡ со„л‡суют список п‡олей. К‡ж‰ый п‡оль ‚ списке может использтьсfl только е‰инож‰ы. 452
Лекциfl 14
Уст‡но‚ление по‰линности объект‡
Есть некотоые не‰ост‡тки т‡ко„о по‰х, Сн‡ч‡л‡ систем‡ и пользтель ‰олжны сост‡‚ить и сох‡нить ‰линный список п‡олей. Втоое — если пользтель не пименflет п‡оли ‚ 燉‡нной после‰о‚‡тельности, систем‡ ‰олжн‡ ‚ыполнflть ‰лительный поиск ‰лfl уст‡но‚лениfl соот‚етст‚иfl. О‰н‡ко эт‡ схем‡ ‰ел‡ет пеех‚‡т инфом‡ции и по‚тоное использние п‡олfl бесполезным. П‡оль пименим только о‰н‡ж‰ы, и не может пименflтьсfl сн. Втоой по‰хо‰. Во ‚тоом по‰хо‰е пользтель и систем‡ со„л‡ш‡ютсfl после‰о‚‡тельно обно‚лflть п‡оль. Пользтель и систем‡ ‰о„肇ютсfl о пе‚он‡ч‡льном п‡оле P1, ‰ейст‚ительном только ‰лfl пе‚о„о ‰оступ‡. Пи пе‚ом ‰оступе пользтель „енеиует но‚ый п‡оль, P2, и з‡шифо‚ы‚‡ет этот п‡оль, используfl P1 к‡к ключ. P2 — п‡оль ‰лfl ‚тоо„о ‰оступ‡. Пи ‚тоом ‰оступе пользтель „енеиует но‚ый п‡оль, P3, и з‡шифо‚ы‚‡ет е„о с помощью P2; P3 используетсfl ‰лfl тетье„о ‰оступ‡. Ду„ими слми, Pi нужен, чтобы со片ть PI+1. Конечно, Е‚‡ может по‰об‡ть пе‚ый п‡оль (P1), ‡ потом и н‡йти ‚се после‰ующие. Тетий по‰хо‰. В тетьем по‰хо‰е пользтель и систем‡ со片ют после‰о‚‡тельно мо‰ифицинный п‡оль, используfl хэш-функцию. В этом по‰хо‰е, изобетенном Лесли Л‡мпотом (Leslie Lamport), пользтель и систем‡ со„л‡суют пе‚он‡ч‡льный п‡оль, P0 и счетчик n. Систем‡ ‚ычислflет hn(P0), „‰е hn озн‡ч‡ет пименение хэш-функции n ‡з. Ду„ими слми,
Систем‡ х‡нит опоз퇂‡тельный ко‰ Алисы, зн‡чение n, и зн‡чениfl hn(P0). Рисунок 14.4 пок‡зы‚‡ет, к‡к пользтель об‡щ‡етсfl к системе ‚ пе‚ый ‡з.
Рис. 14.4. О‰но‡зо‚ый п‡оль Л‡мпот‡ К‡ систем‡ получ‡ет от‚ет пользтелfl ‚ тетьем сообщении, он‡ пименflет хэш-функцию, чтобы с‡‚нить зн‡чение с полученными ‰‡нными и уз453
Кус
Киптфиfl и безоп‡сность сетей
н‡ть, соот‚етст‚ует ли оно зн‡чению хэш-функции и з‡пис‡нному ‚ п‡мflти. Если т‡кое соот‚етст‚ие есть, то пе‰ост‡‚лflетсfl ‰оступ ‚ систему; ин‡че з‡fl‚к‡ отклонflетсfl. З‡тем систем‡ уменьш‡ет зн‡чение n ‚ п‡мflти и з‡менflет ст‡ое зн‡чение п‡олfl hn(P0) н‡ но‚ое зн‡чение hn-1(P0). К‡ пользтель об‡щ‡етсfl к системе ‚тоой ‡з, зн‡чение счетчик‡ бу‰ет n – 1. Тетье сообщение от пользтелfl — тепеь hn~2(P0). К‡ систем‡ получ‡ет это сообщение, он‡ пименflет хэш-функцию, чтобы получить hn-1(P0), котоое с‡‚н肇етсfl с мо‰ифицинным ‚хо‰ным сообщением. Зн‡чение n ‚о ‚хо‰ной инфом‡ции может быть уменьшено к‡ж‰ый ‡з, к‡ есть ‰оступ. К‡ зн‡чение ст‡но‚итсfl 0, пользтель больше не может об‡титьсfl к системе; ‚се ‰олжно быть уст‡но‚лено сн. По этой пичине зн‡чение n обычно ‚ыби‡етсfl ‰ост‡точно большое, н‡пиме, т‡кое, к‡к 1000.
14.3. З‡пос-от‚ет Пи уст‡но‚лении по‰линности п‡олfl петен‰ент ‰ок‡зы‚‡ет с‚ою и‰ентичность, ‰емонстиуfl, что он зн‡ет секет и п‡оль. О‰н‡ко из-з‡ то„о, что петен‰ент сообщ‡ет секет, этот секет ‚оспиимчи‚ к пеех‚‡ту поти‚ником. В уст‡но‚лении по‰линности с помощью з‡пос‡-от‚ет‡ петен‰ент ‰ок‡зы‚‡ет, что он зн‡ет секет, не посыл‡fl е„о. Ду„ими слми, петен‰ент не пе則ет секет ‚еифик‡тоу; ‚еифик‡то или имеет е„о, или н‡хо‰ит е„о. В уст‡но‚лении по‰линности с помощью з‡пос‡-от‚ет‡ петен‰ент ‰ок‡зы‚‡ет, что зн‡ет секет, не посыл‡fl е„о к ‚еифик‡тоу. З‡пос (challenge) — это изменflющеесfl ‚о ‚емени зн‡чение, т‡кое, к‡к случ‡йное число или метк‡ ‚емени, котоую пе則ет ‚еифик‡то. Петен‰ент пименflет функцию ‰лfl пеоб‡зниfl ‚ыз и пе則ет езульт‡т, н‡зы‚‡fl е„о от‚ет, к ‚еифик‡тоу. От‚ет пок‡зы‚‡ет, что петен‰ент зн‡ет секет. З‡пос — изменflющеесfl по ‚емени зн‡чение, пе則‚‡емое ‚еифик‡тоом; от‚ет — езульт‡т пиложениfl функции к з‡посу.
Использние шиф‡ с симметичным ключом Несколько по‰хо‰о‚ к уст‡но‚лению по‰линности с помощью з‡пос‡от‚ет‡ используют шифние с симметичными ключ‡ми. Секетность з‰есь — откытый ключ з‡секеч肇ниfl, из‚естный и петен‰енту и ‚еифик‡тоу. Функциfl — ‡л„оитм шифниfl, с помощью котоо„о об‡б‡ты‚‡етсfl ‚ызо‚ пее‰ посылкой от‚ет‡. Пе‚ый по‰хо‰. Пи пе‚ом по‰хо‰е ‚еифик‡то пе則ет nonce, случ‡йное число, используемое только о‰н‡ж‰ы ‰лfl ‚ыз петен‰ент‡. Nonce ‰олжен изменflтьсfl; к‡ж‰ый ‡з со片етсfl ‡зличное случ‡йное число. Петен‰ент от‚еч‡ет н‡ ‚ызо‚, пименflfl ключ з‡секеч肇ниfl, обще‰оступный петен‰енту и ‚еифик‡тоу. Рисунок 14.5 пок‡зы‚‡ет пе‚ый по‰хо‰. 454
Лекциfl 14
Уст‡но‚ление по‰линности объект‡
Рис. 14.5. З‡fl‚к‡ nonce Пе‚ое сообщение не fl‚лflетсfl ч‡стью з‡пос‡-от‚ет‡ — это только сообщение ‚еифик‡тоу, что петен‰ент хочет ‚ы炇ть систему. Втоое сообщение — з‡пос. RB – это nonce, случ‡йно ‚ыб‡нное ‚еифик‡тоом (Боб) число-‚ызо‚ петен‰енту. Петен‰ент шифует nonce, используfl обще‰оступный ключ з‡секеч肇ниfl, из‚естный только петен‰енту и ‚еифик‡тоу. Он пе則ет езульт‡т ‚еифик‡тоу. Веифик‡то ‡сшифо‚ы‚‡ет сообщение. Если пи ‰ешифнии получен тот же с‡мый nonce, к‡к и пе則нный ‚еифик‡тоом, Алисе пе‰ост‡‚лflетсfl ‰оступ. Об‡тите ‚ним‡ние, что ‚ этом поцессе петен‰ент и ‚еифик‡то ‰олжны х‡нить симметичный ключ, используемый ‚ поцессе з‡секеч肇ниfl. Веифик‡то ‰олжен т‡кже сох‡нить зн‡чение nonce ‰о и‰ентифик‡ции петен‰ент‡, пок‡ не бу‰ет ‚о炇щен от‚ет. Чит‡тель, ‚озможно, з‡метил, что использние nonce пе‰от‚‡щ‡ет от‚ет н‡ тетье сообщение Е‚ы. Е‚‡ не может от‚етить н‡ тетье сообщение и пит‚оитьсfl, что это но‚ый з‡пос об уст‡но‚лении по‰линности Алисы, потому что к‡к только Боб получ‡ет от‚ет (зн‡чение RB), этот от‚ет больше не может быть 燉ейст‚н. В сле‰ующий ‡з используетсfl но‚ое зн‡чение. Втоой по‰хо‰. Пи ‚тоом по‰хо‰е пименflетсfl пизн‡к, котоый менflетсfl ‚о ‚емени. Это — метк‡ ‚емени, кото‡fl оче‚и‰но изменflетсfl со ‚еменем. В этом по‰хо‰е сообщение ‚ыз — текущее ‚емfl, пе則‚‡емое от ‚еифик‡то‡ к петен‰енту. Пе‰по뇄‡етсfl к‡к необхо‰имое, что ч‡сы клиент‡ и се‚е‡ синхонизины и петен‰ент зн‡ет текущее ‚емfl. Это озн‡ч‡ет, что нет необхо‰имости ‚ сообщении ‚ыз. Пе‚ое и тетье сообщениfl мо„ут быть объе‰инены. В езульт‡те уст‡но‚ление по‰линности может быть ‚ыполнено с использнием о‰но„о сообщениfl, от‚ет‡ н‡ неfl‚ный ‚ызо‚ — текущее ‚емfl. Рисунок 14.6 пок‡зы‚‡ет этот по‰хо‰. Тетий по‰хо‰. Пе‚ый и ‚тоой по‰хо‰ы со片ны ‰лfl о‰нон‡п‡‚ленно„о уст‡но‚лениfl по‰линности. По‰линность Алисы уст‡н‡‚л肇етсfl Бобом, но не уст‡н‡‚л肇етсfl об‡тное. Если Алисе 퇉о быть у‚еенной ‚ по‰линности Боб‡, то нужно иметь поцесс ‰‚ун‡п‡‚ленно„о уст‡но‚лении по‰линности. Рисунок 14.7 пок‡зы‚‡ет т‡кую схему. 455
Кус
Киптфиfl и безоп‡сность сетей
Рис. 14.6. З‡пос с меткой ‚емени
Рис. 14.7. Д‚ун‡п‡‚ленное уст‡но‚ление по‰линности
Втоое сообщение RB — ‚ызо‚ от Боб‡ Алисе. В тетьем сообщении Алис‡ от‚еч‡ет н‡ ‚ызо‚ Боб‡ и ‚ то же с‡мое ‚емfl пе則ет с‚ой ‚ызо‚ RA Бобу. Тетье сообщение — от‚ет Боб‡. Об‡тите ‚ним‡ние, что ‚ чет‚етом сообщении поfl‰ок RA и RB изменflетсfl, чтобы пе‰от‚‡тить ‡т‡ку от‚ет‡ тетье„о сообщениfl поти‚ником.
Использние функций ключе‚о„о хэшиниfl Вместо то„о чтобы использть шифние/‰ешифние ‰лfl уст‡но‚лениfl по‰линности объект‡, мы можем т‡кже пименflть ключе‚ую хэш-функцию (MAC). Эт‡ схем‡ имеет о‰но пеимущест‚о: он‡ сох‡нflет целостность сообщений ‚ыз и от‚ет‡ и ‚ то же с‡мое ‚емfl использует секет — ключ. 456
Лекциfl 14
Уст‡но‚ление по‰линности объект‡
Рисунок 14.8 пок‡зы‚‡ет, к‡к мы можем использть ключе‚ую хэш-функцию, чтобы со片ть от‚ет ‚ызо‚у с меткой ‚емени. Об‡тите ‚ним‡ние, что ‚ этом случ‡е метку ‚емени пе則ют и к‡к исхо‰ный текст, и к‡к текст, скэмблинный ключе‚ой хэш-функцией. К‡ Боб получ‡ет сообщение, он беет исхо‰ный текст T, пименflет ключе‚ую хэш-функцию и з‡тем, чтобы опе‰елить по‰линность Алисы, с‡‚н肇ет с‚ои ‚ычислениfl с тем, что он получил.
Рис. 14.8. Функциfl ключе‚о„о хэшиниfl
Шиф, использующий ‡симметичный ключ Вместо шиф‡ с симметичными ключ‡ми мы можем пименить ‰лfl уст‡но‚лениfl по‰линности объект‡ шиф с ‡симметичными ключ‡ми. З‰есь секет — это секетный ключ петен‰ент‡. Петен‰ент ‰олжен пок‡з‡ть, что он имеет секетный ключ, с‚flз‡нный с откытым ключом, котоый ‰оступен к‡ж‰ому. Веифик‡то ‰олжен з‡шифть ‚ызо‚, используfl откытый ключ петен‰ент‡; петен‰ент з‡тем ‡сшифо‚ы‚‡ет сообщение, используfl с‚ой секетный ключ. Этот от‚ет н‡ з‡пос — ‡сшифнный з‡пос. Д‡лее ‡ссм‡т肇ютсfl ‰‚‡ по‰х: о‰ин ‰лfl о‰нон‡п‡‚ленно„о уст‡но‚лениfl по‰линности и о‰ин — ‰лfl ‰‚ун‡п‡‚ленно„о. Пе‚ый по‰хо‰. В пе‚ом по‰хо‰е Боб з‡шифл пизн‡к, используfl откытый ключ Алисы. Алис‡ ‡сшифо‚ы‚‡ет сообщение с‚оим секетным ключом и пе則ет nonce Бобу. Рисунок 14.9 иллюстиует т‡кой по‰хо‰.
Рис. 14.9. О‰нон‡п‡‚ленн‡fl систем‡ по‚еки по‰линности с ‡симметичным ключом 457
Кус
Киптфиfl и безоп‡сность сетей
Втоой по‰хо‰. Во ‚тоом по‰хо‰е используютсfl ‰‚‡ откытых ключ‡, о‰ин ‚ к‡ж‰ом н‡п‡‚лении. Алис‡ пе則ет опоз퇂‡тельный ко‰ и nonce, з‡шифнные откытым ключом Боб‡. Боб от‚еч‡ет с‚оим nonce, ‡сшифнным откытым ключом Алисы. В конечном ито„е Алис‡ от‚еч‡ет ‡сшифнным nonce Боб‡. Рисунок 14.10 иллюстиует этот по‰хо‰.
Рис. 14.10. Д‚ун‡п‡‚ленн‡fl систем‡ по‚еки по‰линности с ‡симметичным ключом
Использние цифо‚ой по‰писи Уст‡но‚ление по‰линности объект‡ может т‡кже быть ‰ости„нуто с помощью цифо‚ой по‰писи. К‡ цифfl по‰пись пименflетсfl ‰лfl уст‡но‚лениfl по‰линности объект‡, петен‰ент использует ‰лfl по‰пис‡ниfl с‚ой секетный ключ. З‰есь пок‡з‡ны ‰‚‡ по‰х, ‰у„ие ост‡‚лflем к‡к уп‡жнениfl. Пе‚ый по‰хо‰. Пи пе‚ом по‰хо‰е, пок‡з‡нном н‡ ис. 14.11, Боб использует исхо‰ный текст ‚ыз, ‡ Алис‡ по‰писы‚‡ет от‚ет. Втоой по‰хо‰. Пи ‚тоом по‰хо‰е, пок‡з‡нном н‡ ис. 14.12, Алис‡ и Боб уст‡н‡‚л肇ют по‰линность ‰у„ ‰у„‡.
14.4. По‰т‚еж‰ение с нуле‚ым ‡з„л‡шением Пи уст‡но‚лении по‰линности п‡олfl петен‰ент ‰олжен пе則ть с‚ой секет (п‡оль) ‚еифик‡тоу; это может пи‚ести к пеех‚‡ту инфом‡ции Е‚ой. Коме то„о, нечестный ‚еифик‡то может пок‡з‡ть п‡оль ‰у„им или использть е„о, чтобы исполнить оль петен‰ент‡. 458
Лекциfl 14
Уст‡но‚ление по‰линности объект‡
Рис. 14.11. О‰ностооннее уст‡но‚ление по‰линности с помощью цифо‚ой по‰писи
Рис. 14.12. Д‚устооннее уст‡но‚ление по‰линности с помощью цифо‚ой по‰писи Пи уст‡но‚лении по‰линности объект‡ мето‰ом ‚ыз-от‚ет‡ секет петен‰ент‡ не пе則ют ‚еифик‡тоу. Петен‰ент пименflет некотоую функцию ‰лfl об‡ботки з‡пос‡, кото‡fl пее‰‡н‡ ‚еифик‡тоом, но пи этом ‚ключ‡ет с‚ой секет. В некотоых метх «з‡пос‡-от‚ет‡» ‚еифик‡то ф‡ктически зн‡ет секет петен‰ент‡, пи этом он может неильно использтьсfl нечестной ‚е459
Кус
Киптфиfl и безоп‡сность сетей
ифик‡цией. В ‰у„их метх ‚еифик‡то может из‚лечь некотоую инфом‡цию о секете петен‰ент‡, ‚ыби‡fl 燇нее з‡пл‡нинное множест‚о з‡посо‚. В уст‡но‚лении по‰линности с нуле‚ым ‡з„л‡шением петен‰ент не ‡скы‚‡ет ниче„о, что мо„ло бы со片ть у„озу конфи‰енци‡льности секет‡. Петен‰ент ‰ок‡зы‚‡ет ‚еифик‡тоу, что он зн‡ет секет, не ‡скы‚‡fl и не пок‡зы‚‡fl е„о. В т‡ком случ‡е ‚з‡имо‰ейст‚ие ‡з‡бот‡но т‡к, чтобы не пи‚ести к ‡скытию или пе‰положению о со‰еж‡нии секет‡. После обмен‡ сообщениflми ‚еифик‡то только зн‡ет, что петен‰ент имеет или не имеет секет — и ниче„о больше. В этой ситу‡ции езульт‡т — ‰‡/нет. Это е‰инст‚енный бит инфом‡ции. В уст‡но‚лении по‰линности с нуле‚ым ‡з„л‡шением петен‰ент ‰ок‡зы‚‡ет, что он зн‡ет секет, не пок‡зы‚‡fl е„о.
Потокол Фи‡т‡-Ш‡ми‡ В потоколе Фи‡т‡-Ш‡ми‡ (Amos Fiat, Adi Shamir) тетье лицо, котоому ‰о‚еflют (см. лекцию 15), ‚ыби‡ет ‰‚‡ больших постых числ‡ p и q, чтобы ‚ычислить зн‡чение n = p × q. Зн‡чение n объfl‚лflетсfl обще‰оступным. Зн‡чениfl n и q сох‡нflютсfl секетными. Алис‡, петен‰ент, ‚ыби‡ет секетное число s меж‰у 1 и n – 1. Он‡ ‚ычислflет v = s2 mod n. Он‡ сох‡нflет s к‡к с‚ой секетный ключ и е„истиует v к‡к с‚ой обще‰оступный ключ ‚месте с тетьим лицом. По‚ек‡ Алисы Бобом может быть с‰ел‡н‡ ‚ четые ш‡„‡, к‡к пок‡з‡но н‡ ис. 14.13. 1. Алис‡-петен‰ент ‚ыби‡ет случ‡йное число r меж‰у 0, и n – 1 (r н‡зы‚‡етсfl «обflз‡тельст‚о»). Он‡ з‡тем ‚ычислflет зн‡чение x = r 2 mod n (x н‡зы‚‡етсfl «с‚и‰етельст‚о»). 2. Алис‡ пе則ет x Бобу к‡к с‚и‰етельст‚о. 3. Боб-‚еифик‡то пе則ет ‚ызо‚ c Алисе. Зн‡чение c ‡‚но или 0, или 1. 4. Алис‡ ‚ычислflет с‚ой от‚ет y = rsc. Об‡тите ‚ним‡ние, что r — случ‡йное число, ‚ыб‡нное Алисой н‡ пе‚ом ш‡„е, s — ее секетный ключ и c — пизн‡к (0 или 1). 5. Алис‡ пе則ет от‚ет Бобу, чтобы пок‡з‡ть, что он‡ зн‡ет зн‡чение с‚ое„о секетно„о ключ‡, s. Он‡ по‰т‚е扇ет, что пе則ет именно Алис‡. 6. Боб ‚ычислflет y2 и xνc. Если эти ‰‚‡ зн‡чениfl fl‚лflютсfl кон„уэнтными, то ‰лfl Алисы зн‡чение s озн‡ч‡ет «он‡ чест퇻; или он‡ ‚ычислил‡ зн‡чение y ‰у„им способом («он‡ нечестн‡fl»), потому что мы можем ле„ко ‰ок‡з‡ть, что y — тот же с‡мый, к‡к xνc по мо‰улю n: y2 = (rsc) 2 = r2s2c = r2(s2)c= xνc Р‡ун‰ состоит из шести ш‡„о‚; ‚еифик‡циfl по‚тоflетсfl несколько ‡з со зн‡чением c, ‡‚ным 0 или 1 (‚ыби‡ютсfl случ‡йно). В к‡ж‰ом ‡ун‰е, котоый бу‰ет ‚еифицин, петен‰ент ‰олжен пе則ть езульт‡т испыт‡ниfl. Если не похо‰ит хотfl бы о‰ин ‡ун‰, поцесс пеы‚‡етсfl и фомиуетсfl сообщение, что Алис‡ не пошл‡ испыт‡ние н‡ по‰линность. 460
Лекциfl 14
Уст‡но‚ление по‰линности объект‡
Рис. 14.13 Потокол Фи‡т‡-Ш‡ми‡ Д‡‚‡йте ‡ссмотим этот тщ‡тельно по‰ум‡нный и интеесный потокол. Алис‡ может быть честн‡ (зн‡ет зн‡чение s) или нечестн‡ (не зн‡ет зн‡чение s). Если он‡ честн‡, он‡ похо‰ит к‡ж‰ый ‡ун‰. Если нет — он‡ может пойти ‡ун‰, ильно пе‰ск‡зы‚‡fl зн‡чение ‚ыз. Пи этом мо„ут ‚озникнуть ‰‚е ситу‡ции. 1. Алис‡ пе‰по뇄‡ет, что зн‡чение c (‚ыхо‰) бу‰ет 1 (пе‰ск‡з‡ние). Он‡ ‚ычислflет x = r2/ ν и пе則ет x к‡к с‚и‰етельст‚о. ‡. Если ее пе‰положение ильно (ок‡з‡лось, что c был ‡‚ен 1), он‡ пе則ет y = r к‡к от‚ет. Мы можем ‚и‰еть, что он‡ пе則ст езульт‡т, котоый соот‚етст‚ует тесту (y2 = xνс). б. Если ее пе‰положение неильно (ок‡з‡лось, что c, было 0), он‡ не может н‡йти зн‡чение y, котоое соот‚етст‚ует тесту. Он‡, ‚еоflтно, ‚ыхо‰ит из и„ы или пе則ст зн‡чение, котоое не соот‚етст‚ует ож艇емому езульт‡ту тест‡, и Боб пе‚ет поцесс. 2. Алис‡ пе‰по뇄‡ет, что зн‡чение c (‚ызо‚) бу‰ет 0. Он‡ ‚ычислflет x = r и пе則ет x к‡к с‚и‰етельст‚о. ‚. Если ее пе‰положение ильно (ок‡з‡лось, что c было 0), он‡ пе則ет y = r к‡к от‚ет. Он‡ пе則ет езульт‡т испыт‡ниfl, котоый соот‚етст‚ует (y2 = xνс). „. Если ее пе‰положение неильно (ок‡з‡лось, что c было 1), он‡ не может н‡йти зн‡чение y, котоое соот‚етст‚ует тесту. Он‡, ‚еоflтно, ‚ыхо‰ит из и„ы или пе則ст зн‡чение, котоое не соот‚етст‚ует ож艇емому езульт‡ту тест‡, и Боб пе‚ет поцесс. Мы можем ‚и‰еть, что нечестный петен‰ент имеет 50-поцентный ш‡нс н‡ ‚‚е‰ение ‚ з‡блуж‰ение ‚еифик‡то‡, по‚о‰flще„о испыт‡ние (пе‰ск‡зы‚‡fl 461
Кус
Киптфиfl и безоп‡сность сетей
зн‡чение ‚ыз). Ду„ими слми, Боб н‡зн‡ч‡ет ‚еоflтность 1/2 ‰лfl к‡ж‰о„о ‡у퉇 испыт‡ниfl. Если поцесс по‚тоflетсfl 20 ‡з, ‚еоflтность уменьш‡етсfl ‰о (1/2) 20 или 9,54 × 10-7. Ду„ими слми, посто не‚еоflтно, что Алис‡ может ильно пе‰ск‡з‡ть 20 ‡з. Пиме «пеще‡ А뇉‰и퇻. Чтобы пок‡з‡ть ло„ику ‚ышеупомflнуто„о потокол‡, Ж‡н-Ж‡к Киск‡те (Quisquater) и Гиом Гийу (Gillou) изобели пиме «пеще‡ А뇉‰и퇻 (ис. 14.14).
Рис. 14.14. Пеще‡ Пе‰положим, что есть по‰земн‡fl пеще‡ с ‰‚еью ‚ конце, кото‡fl может быть откыт‡ только с помощью ‚олшебно„о сл. Алис‡ ут‚е扇ет, что он‡ зн‡ет это сло‚о и что он‡ может откыть ‰‚еь. Вн‡ч‡ле Алис‡ и Боб стоflт у ‚х (точк‡ 1). Алис‡ ‚хо‰ит ‚ пещеу и ‰ост脇ет ‡з‚ет‚лениfl (точк‡ 2). Боб, стоfl у ‚х, не может ‚и‰еть Алису. Тепеь н‡чин‡етсfl 脇. 1. Алис‡ ‚ыби‡ет, ку‰‡ и‰ти: или н‡п‡‚о, или н‡ле‚о. И „о‚оит об этом Бобу (соот‚етст‚ует пе則че с‚и‰етельст‚‡ x). 2. После то„о к‡к Алис‡ исчез‡ет ‚ пещее, Боб по‰хо‰ит к ‡з‚ет‚лению (точк‡ 2) и посит, чтобы Алис‡ ‚ышл‡ или с‡, или сл傇. Это соот‚етст‚ует пе則че ‚ыз (c). 3. Если Алис‡ зн‡ет ‚олшебное сло‚о (с‚ой секетный ключ), он‡ может ‚ыйти с з‡пошенной стооны. Ей, ‚еоflтно, пи‰етсfl использть ‚олшебное сло‚о (если он‡ н‡хо‰итсfl н‡ неильной стооне), или он‡ может ‚ыйти, не используfl ‚олшебное сло‚о (если он‡ — н‡ п‡‚ильной стооне). О‰н‡ко если Алис‡ не зн‡ет ‚олшебное сло‚о, он‡ может ‚ыйти только с ильной стооны, если он‡ ‡з„‡‰‡л‡ ‚ызо‚ Боб‡. С ‚еоflтностью 1/2 Алис‡ может убе‰ить „лупо„о Боб‡, что он‡ зн‡ет ‚олшебное сло‚о. Это соот‚етст‚ует от‚ету (y). 4. И„‡ по‚тоflетсfl мно„о ‡з. Алис‡ побе‰ит, если он‡ ‚се ‚емfl похо‰ит испыт‡ниfl положительно. Веоflтность, что он‡ побе‰ит ‚ и„е, если он‡ не зн‡ет ‚олшебное сло‚о, очень низк‡. Ду„ими слми, P = (1/2)N, „‰е P — ‚еоflтность побе‰ы, если он‡ не зн‡ет ‚олшебное сло‚о. N — количест‚о по‚тоений испыт‡ниfl.
Потокол Фей„е-Фи‡т‡-Ш‡ми‡ Потокол Фей„е-Фи‡т‡-Ш‡ми‡ (Feige-Fiat-Shamir) по‰обен пе‚ому по‰хо‰у з‡ исключением то„о, что он использует ‚екто секетных ключей [s1, s2 …sk], 462
Лекциfl 14
Уст‡но‚ление по‰линности объект‡
‚екто обще‰оступных ключей (ν1,ν2,...,νk) и ‚ектоы пизн‡ко‚ (c1,c2,...,ck). Секетные ключи ‚ыб‡ны случ‡йно, но они ‰олжны быть ‚з‡имно постыми с n. Обще‰оступные ключи ‚ыб‡ны т‡к, что νi = (si2)–1 mod n. Н‡ исунке 14.15 пок‡з‡ны ти ш‡„‡ ‚ поцессе. Мы можем ‰ок‡з‡ть, что y2ν1c1ν2c2...νkck имеет то же зн‡чение, что и x:
Ти ш‡„‡ сост‡‚лflют ‡ун‰; по‚ек‡ по‚тоflетсfl несколько ‡з со зн‡чением ин‰екс‡ s, ‡‚ным 0 или 1 (‚ыби‡етсfl случ‡йно). Петен‰ент ‰олжен по‚ести испыт‡ние ‚ к‡ж‰ом ‡ун‰е, котоый по‚еflетсfl. Если петен‰ент ошиб‡етсfl ‚ о‰ном ‡ун‰е, поцесс пеы‚‡етсfl и по‰линность не по‰т‚е扇етсfl.
Потокол Киск‡те‡-Гийу Потокол Киск‡те‡ (Quisquater) и Гийу (Gillou) ‡сшиflет потокол Фи‡т‡Ш‡ми‡, ‚ котоом может быть использно меньшее число ‡ун‰о‚, чтобы ‰ок‡з‡ть полномочность петен‰ент‡. Тетье лицо, котоому ‰о‚еflют (см. лекцию 15), ‚ыби‡ет ‰‚‡ больших постых числ‡ p и q, чтобы ‚ычислить зн‡чение n = p × q.
Рис. 14.15. Потокол Фей„е-Фи‡т‡-Ш‡ми‡ 463
Кус
Киптфиfl и безоп‡сность сетей
Стоон‡, котоой ‰о‚еflют, т‡кже ‚ыби‡ет пок‡з‡тель, e, котоый fl‚лflетсfl ‚з‡имно-постым с φ, „‰е φ = (p – 1) (q – 1). Зн‡чениfl n и e объfl‚лflютсfl обще‰оступными; зн‡чениfl p и q сох‡нflютсfl секетными. Стоон‡, котоой ‰о‚еflют, ‚ыби‡ет ‰‚‡ числ‡ ‰лfl к‡ж‰о„о объект‡: число ν, котоое fl‚лflетсfl обще‰оступным, и число s, котоое fl‚лflетсfl секетным. О‰н‡ко ‚ этом случ‡е отношениfl меж‰у ν и s опе‰елflютсfl у‡‚нением se × ν = 1 mod n Ти ш‡„‡ сост‡‚лflют ‡ун‰; по‚ек‡ по‚тоflетсfl несколько ‡з со случ‡йным зн‡чением c (‚ызо‚ — challenge) меж‰у 1 и e. Петен‰ент ‰олжен пе則ть езульт‡т испыт‡ниfl ‚ к‡ж‰ом ‡ун‰е, котоый бу‰ет по‚еflтьсfl. Если петен‰ент пе則л не‚ено хотfl бы о‰ин ‡ун‰, поцесс пеы‚‡етсfl и сообщение пизн‡етсfl непо‰линным. Рисунок 14.16 иллюстиует о‰ин ‡ун‰. Р‡‚енст‚о может быть ‰ок‡з‡но т‡к, к‡к пок‡з‡но ниже:
14.5. Биометиfl Биометиfl — измеение физиоло„ических или по‚е‰енческих особенностей, котоые и‰ентифициуют чело‚ек‡ (уст‡но‚ление по‰линности че„о-то, с‚ойст‚енно„о этому чело‚еку). Р‡бот‡ с пок‡з‡телflми биометии по‰т‚е扇ет, что они не мо„ут быть пел‡ны, уꇉены или использны о‰но‚еменно с об뇉‡телем.
Компоненты Длfl биометии необхо‰имы несколько компоненто‚, ‚ключ‡fl устойст‚‡ фикс‡ции, поцессоы и устойст‚‡ х‡нениfl. Устойст‚‡ фикс‡ции, т‡кие, к‡к чит‡ющие устойст‚‡ (или ‰‡тчики), измеflют биометические х‡‡ктеистики. Поцессоы пеоб‡зуют измеенные ‰‡нные и з‡менflют их ‰‡нными опе‰еленно„о тип‡, ‰лfl соот‚етст‚ующей экономии есусо‚ компьюте‡. Устойст‚‡ х‡нениfl сох‡нflют езульт‡т об‡ботки ‰лfl использниfl пи уст‡но‚лении по‰линности.
Ре„ист‡циfl Пее‰ использнием любых биометических мето‰о‚ ‰лfl уст‡но‚лениfl по‰линности соот‚етст‚ующие х‡‡ктеистики к‡ж‰о„о чело‚ек‡ ‚ коллекти‚е, котоый может быть по‚еен н‡ по‰линность, ‰олжны быть ‰оступны ‚ б‡зе ‰‡нных. Это н‡зы‚‡етсfl «е„ист‡циfl».
Уст‡но‚ление по‰линности Уст‡но‚ление по‰линности по‚о‰итсfl с помощью ‚еифик‡ции или и‰ентифик‡ции. 464
Лекциfl 14
Уст‡но‚ление по‰линности объект‡
Веифик‡циfl Пи ‚еифик‡ции х‡‡ктеистики чело‚ек‡ отыск肇ютсfl ‰лfl е‰инст‚енной з‡писи ‚ б‡зе ‰‡нных (соот‚етст‚ие «о‰ин к о‰ному»), чтобы н‡йти, fl‚лflетсfl ли он тем, кем с‡м себfl з‡fl‚лflет. Это полезно, н‡пиме, к‡ б‡нк ‰олжен по‚еить по‰линность клиент‡, пост‡‚и‚ше„о по‰пись н‡ чеке.
Рис. 14.16. Потокол Киск‡те‡-Гию И‰ентифик‡циfl Пи и‰ентифик‡ции х‡‡ктеистики чело‚ек‡ отыск肇ютсfl се‰и ‚сех з‡писей ‚ б‡зе ‰‡нных (соот‚етст‚ие «о‰ин ко мно„им»), чтобы н‡йти, з‡пис‡н ли он ‚ б‡зе ‰‡нных. Это полезно, н‡пиме, к‡ комп‡ниfl хочет ‡зешить ‰оступ ‚ 片ние только с‚оим служ‡щим.
Мето‰ы Мето‰ы биометии мо„ут быть ‡з‰елены н‡ ‰‚е шиоких к‡те„оии: физиоло„ический и по‚е‰енческий. Рис. 14.17 пок‡зы‚‡ет несколько общих мето‰о‚, ‚хо‰flщих ‚ к‡ж‰ую к‡те„оию. Физиоло„ические мето‰ы Физиоло„ические мето‰ы измеflют физические х‡‡ктеистики чело‚еческо„о тел‡ ‰лfl ‚еифик‡ции и и‰ентифик‡ции. Чтобы быть эффекти‚ными, эти х‡465
Кус
Киптфиfl и безоп‡сность сетей
Рис. 14.17. Биометик‡ ‡ктеистики ‰олжны быть уник‡льны се‰и ‚сех лю‰ей или большинст‚‡ лю‰ей. Коме то„о, х‡‡ктеистик‡ ‰олжн‡ учиты‚‡ть изменениfl из-з‡ ст‡ениfl, опе‡ции, с‡мочу‚ст‚иfl, болезни и т‡к ‰‡лее. Есть несколько физиоло„ических мето‰о‚. Отпеч‡тки п‡льц‡. Хотfl есть несколько мето‰о‚ ‰лfl то„о, чтобы измеить х‡‡ктеистики, с‚flз‡нные с отпеч‡тк‡ми п‡льц‡, ‰‚‡ из них с‡мые общие — н‡ осно‚е ‰ет‡лей и н‡ осно‚е изоб‡жениfl. Мето‰ик‡ н‡ осно‚е ‰ет‡лей — это систем‡ со片ет „‡ф, осннный н‡ ‡сположении от‰ельных типо‚ узоо‚ (полей п‡пиллflных линий). Г‡ф фиксиует н‡ч‡ло и конец от‰ельных ‚ет‚ей. В мето‰ике н‡ осно‚е изоб‡жениfl систем‡ со片ет изоб‡жение кончик‡ п‡льц‡ и н‡хо‰ит по‰обные изоб‡жениfl ‚ б‡зе ‰‡нных. Отпеч‡тки п‡льц‡ использлись ‚ течение ‰ол„о„о ‚емени. Они ‰емонстиуют ‚ысокий уо‚ень точности и пеж肇ют ‚еифик‡цию и и‰ентифик‡цию. О‰н‡ко отпеч‡тки п‡льц‡ мо„ут менflтьсfl пи ст‡ении, получении ‡нениfl или болезни. Р‡‰ужн‡fl оболочк‡ „л‡з‡. Эт‡ мето‰ик‡ сним‡ет об‡зец ‡‰ужной оболочки „л‡з‡, кото‡fl уник‡льн‡ у к‡ж‰о„о чело‚ек‡. Обычно тебуетсfl пименение л‡зено„о (инф‡к‡сно„о) луч‡. Это очень точн‡fl х‡‡ктеистик‡, кото‡fl сох‡нflетсfl неизменной ‚ течение ‚сей жизни чело‚ек‡. Он‡ т‡кже обеспеч肇ет ‚еифик‡цию и и‰ентифик‡цию. О‰н‡ко, некотоые болезни „л‡з‡, т‡кие, к‡к к‡т‡‡кт‡, мо„ут изменить ‚и‰ ‡‰ужной оболочки. Сетч‡тк‡. Устойст‚‡ ‰лfl этой цели иссле‰уют ко‚еносные сосу‰ы — „л‡зное ‰но. О‰н‡ко эти устойст‚‡ ‰оо„и и пок‡ не очень ‡спост‡нены. Лицо. Сущест‚ует мето‰ик‡, кото‡fl ‡н‡лизиует „еометию лиц‡, осннную н‡ ‡сстоflнии меж‰у е„о сост‡‚лflющими, т‡кими, к‡к нос, от и „л‡з‡. Некотоые техноло„ии комбиниуют „еометические ‰‡нные и ‰‡нные о текстуе кожи. Ст‡н‰‡тные ‚и‰еок‡меы и эт‡ мето‰ик‡ пеж肇ют и ‚еифик‡цию, и и‰ентифик‡цию. О‰н‡ко точность это„о мет можно н‡ушить очк‡ми, боо‰ой, ус‡ми и ‚лиflнием ст‡ениfl. 466
Лекциfl 14
Уст‡но‚ление по‰линности объект‡
Руки. Эт‡ мето‰ик‡ измеflет х‡‡ктеистик ук, ‚ключ‡fl фому и ‰лину п‡льце‚. Он‡ может использтьсfl ‚ з‡кытом помещении и н‡ откытом ‚оз‰ухе. О‰н‡ко этот мето‰ лучше по‰хо‰ит ‰лfl ‚еифик‡ции, ‡ не ‰лfl и‰ентифик‡ции. Голос. Рече‚ое ‡споз퇂‡ние измеflет осно‚ной фон, интон‡цию и ‡кустический си„н‡л ‚ „олосе. Оно может использтьсfl ‚близи (микофон) или н‡ ‡сстоflнии (‡у‰иок‡н‡л). Этот мето‰ „뇂ным об‡зом пименflетсfl ‰лfl по‚еки. О‰н‡ко точность может быть уменьшен‡ из-з‡ фоно‚ых шумо‚, болезни или ‚оз‡ст‡. ДНК (‰езоксиибонуклеинfl кислот‡, DNA — deoxyribonucleic acid) химически н‡й‰ен‡ ‚ fl‰е ‚сех чело‚еческих клеток и ‚ большинст‚е ‰у„их низмо‚. Взflтый о‰ин ‡з об‡зец постоflнен ‚ течение ‚сей жизни и ‰‡же после смети. Это чез‚ыч‡йно точный мето‰. Он может использтьсfl и ‰лfl ‚еифик‡ции, и ‰лfl и‰ентифик‡ции. Е‰инст‚енн‡fl поблем‡: и‰ентичные близнецы мо„ут иметь о‰ин‡ко‚ую ДНК. По‚е‰енческие мето‰ы По‚е‰енческие мето‰ы измеflют некотоые четы чело‚еческо„о по‚е‰ениfl. В отличие от физиоло„ических мето‰о‚, по‚е‰енческие мето‰ы ‰олжны быть пе‰метом постоflнно„о н‡блю‰ениfl, чтобы „‡‡нтить, что петен‰ент ‚е‰ет себfl ном‡льно, ‡ не пыт‡етсfl исполнflть оль ко„о-то ‰у„о„о. По‰пись. В пошлом по‰писи использлись ‚ б‡нко‚ском ‰еле, чтобы по‚еить по‰линность клиент‡, по‰пис‡‚ше„о чек. Се„о‰нfl ‚се еще сущест‚ует мно„о экспето‚, котоые мо„ут опе‰елить, fl‚лflетсfl ли по‰пись н‡ чеке или ‰окументе той же с‡мой, что и по‰пись ‚ ‡хи‚е. Биометический мето‰ пыт‡етсfl пиблизитьсfl к ним. Используютсfl пл‡ншеты ‰лfl ‡н‡лиз‡ по‰писи и специ‡льные биометические учки, чтобы и‰ентифицить чело‚ек‡. Эти устойст‚‡ не только с‡‚н肇ют конечный по‰укт — по‰пись, они т‡кже измеflют некотоые ‰у„ие по‚е‰енческие четы, т‡кие к‡к ‚емfl по‰пис‡ниfl ‰окумент‡ и м‡неу ‚е‰ениfl письм‡ ‚о ‚емfl по‰писи. Биометический ‡н‡лиз по‰писи „л‡‚ным об‡зом используетсfl ‰лfl ‚еифик‡ции. Н‡ж‡тие к뇂иши (итм печ‡ти) — это мето‰ик‡ измеflет по‚е‰ение чело‚ек‡, с‚flз‡нное с ‡ботой н‡ к뇂и‡туе. Он‡ может измеить по‰олжительность н‡ж‡тиfl к뇂иш, ‚емfl меж‰у н‡ж‡тиflми к뇂иш, число и ч‡стоту ошибок, силу ‰‡‚лениfl н‡ к뇂иши, и т‡к ‰‡лее. Он‡ — не ‰оfl, потому что не тебует но‚о„о обоу‰о‚‡ниfl, о‰н‡ко не очень точн‡fl, потому что эти четы мо„ут изменflтьсfl со ‚еменем (лю‰и ст‡но‚flтсfl более быстыми или более ме‰ленными «м‡шинистк‡ми»). Точность т‡кже 燂исит от сложности текст‡.
Точность Точность биометических мето‰о‚ измеflетсfl с помощью ‰‚ух мето‚: коэффициент ложной те‚о„и (FRR — False Rejection Rate) и коэффициент ложной и‰ентифик‡ции (FAR — False Acceptance Rate). Коэффициент ложной те‚о„и (FRR) Он измеflет мет, котоый пок‡зы‚‡ет, к‡к ч‡сто чело‚ек, котоый ‰олжен быть ‡спозн‡н, бы‚‡ет не ‡спозн‡н системой. FRR — это отношение 467
Кус
Киптфиfl и безоп‡сность сетей
ложно„о отклонениfl по‰линно„о клиент‡ к общему количест‚у попыток (‚ поцент‡х). Коэффициент ложной и‰ентифик‡ции (FAR) Он‡ измеflет мет, котоый пок‡зы‚‡ет, к‡к ч‡сто чело‚ек, котоый не ‰олжен быть ‡спозн‡н, бы‚‡ет ‡спозн‡н системой. FAR — это отношение ложно„о уст‡но‚лениfl по‰линности клиент‡ к общему количест‚у попыток (‚ поцент‡х).
Пиложениfl Несколько пиложений биометии ‡кти‚но используютсfl. В коммеческих низ‡циflх они пименflютсfl ‰лfl ‡зешениfl ‰оступ‡ к обоу‰о‚‡нию, об‡щению к инфом‡ционным систем‡м, ‚ мест‡х пжи, пи н‡блю‰ении з‡ использнием ‚емени служ‡ще„о. В юи‰ической системе они пименflютсfl ‚ хо‰е сле‰ст‚иfl (использние отпеч‡тко‚ п‡льце‚ или ДНК) и ‚ су‰ебном ‡н‡лизе. Т‡моженное уление и уление имм脇ции т‡кже используют некотоые биометические мето‰ы.
14.6. Рекомен‰о‚‡нн‡fl лите‡ту‡ Длfl более ‰ет‡льно„о изучениfl положений, обсуж‰енных ‚ этой лекции, мы екомен‰уем нижесле‰ующие кни„и и с‡йты. Пункты, ук‡з‡нные ‚ скобк‡х, пок‡з‡ны ‚ списке ссылок ‚ конце кни„и.
Кни„и Уст‡но‚ление по‰линности объект‡ ‡ссм‡т肇етсfl ‚ [Sti06], [TW06], [Sal03] и [KPS02].
С‡йты Нижесле‰ующие с‡йты ‰‡ют больше инфом‡ции о тем‡х, обсуж‰енных ‚ этой лекции. http://en.wikipedia.org/wiki/Challenge-response_authentication http://en.wikipedia.org/wiki/Password-authenticated_key_agreement http://rfc.net/rfc2195.html
14.7. Ито„и • Уст‡но‚ление по‰линности объект‡ поз‚олflет о‰ной стооне ‰ок‡зы‚‡ть с‚ою и‰ентичность ‰у„ой стооне. Пи уст‡но‚лении по‰линности объект‡ петен‰ент ‰ок‡зы‚‡ет с‚ою и‰ентичность ‚еифик‡тоу, используfl о‰ин из тех ‚и‰о‚ с‚и‰етельст‚: «нечто из‚естное», «об뇉‡ющий чем-то» или «нечто с‚ойст‚енное». • Пи уст‡но‚лении по‰линности н‡ осно‚е п‡олfl петен‰ент использует стоку сим‚оло‚ к‡к нечто из‚естное. Уст‡но‚ление по‰линности н‡ осно468
Лекциfl 14
Уст‡но‚ление по‰линности объект‡
‚е п‡олfl может быть ‡з‰елено н‡ ‰‚е обшиных к‡те„оии: фиксинный и о‰но‡зо‚ый п‡оли. Ат‡ки уст‡но‚лениfl по‰линности н‡ осно‚е п‡олfl ‚ключ‡ют пеех‚‡т инфом‡ции, з‡х‚‡т п‡олfl, ‰оступ ф‡йл‡ п‡олfl, по‰бо и ‡т‡ки слfl. • Пи уст‡но‚лении по‰линности с помощью ‚ыз-от‚ет‡ петен‰ент ‰ок‡зы‚‡ет, что он зн‡ет секет, ф‡ктически не откы‚‡fl е„о. Уст‡но‚ление по‰линности с помощью ‚ыз-от‚ет‡ может использть шифы с симметичным ключом, функции ключе‚о„о хэшиниfl, шифы с ‡симметичными ключ‡ми и цифо‚ые по‰писи. • Пи уст‡но‚лении по‰линности с нуле‚ым ‡з„л‡шением петен‰ент не пок‡зы‚‡ет с‚ой секет; он только ‰ок‡зы‚‡ет, что зн‡ет е„о. • Биометиfl — измеение физиоло„ических или по‚е‰енческих х‡‡ктеистик, чтобы опозн‡ть чело‚ек‡ по чему-либо с‚ойст‚енному ему. Мы можем ‡з‰елить биометические мето‰ы н‡ ‰‚е обшиные к‡те„оии: физиоло„ические и по‚е‰енческие. Физиоло„ические мето‰ы измеflют физические четы чело‚еческо„о тел‡ ‰лfl ‚еифик‡ции и и‰ентифик‡ции. По‚е‰енческие мето‰ы измеflют некотоые четы чело‚еческо„о по‚е‰ениfl.
14.8. Н‡бо ‰лfl п‡ктики Обзоные ‚опосы 1. Пок‡жите отличие меж‰у уст‡но‚лением по‰линности источник‡ ‰‡нных и уст‡но‚лением по‰линности объект‡. 2. Пеечислите и ‰‡йте опе‰еление тем тип‡м с‚и‰етельст‚ и‰ентифик‡ции пи уст‡но‚лении по‰линности объект‡. 3. Пок‡жите отличие меж‰у фиксинными и о‰но‡зо‚ыми п‡олflми. 4. К‡ко‚ы пеимущест‚‡ и не‰ост‡тки использниfl ‰линных п‡олей? 5. Объflсните общую и‰ею уст‡но‚лениfl по‰линности объект‡ с помощью ‚ыз-от‚ет‡. 6. Д‡йте опе‰еление nonce и ‡сск‡жите о е„о использнии ‚ уст‡но‚лении по‰линности объект‡. 7. Д‡йте опе‰еление ‡т‡ки слfl и ‡сск‡жите, к‡к он‡ может быть пе‰от‚‡щен‡. 8. Пок‡жите отличие меж‰у уст‡но‚лениflми по‰линности объект‡ ‚ызо‚ом-от‚етом и по‰т‚еж‰ениflми с нуле‚ым ‡з„л‡шением. 9. Д‡йте опе‰еление биометии и пок‡жите отличие меж‰у ‰‚умfl к‡те„оиflми мето‰о‚. 10. Пок‡жите отличие меж‰у ‰‚умfl мет‡ми точности, опе‰еленными ‰лfl биометическо„о измеениfl ‚ этой лекции.
Уп‡жнениfl 1. Мы обсу扇ли фиксинные и о‰но‡зо‚ые п‡оли к‡к ‰‚‡ к‡йних случ‡fl. Что ‚ы можете ск‡з‡ть о ч‡сто изменflемых п‡олflх? К‡к ‚ы ‰у469
Кус
Киптфиfl и безоп‡сность сетей
м‡ете, может ли эт‡ схем‡ быть е‡лизо‚‡н‡ ‚ ‰ейст‚ительности? К‡ко‚ы пеимущест‚‡ и не‰ост‡тки т‡ко„о мет? 2. К‡к систем‡ может пе‰от‚‡тить ‡т‡ку по‰бо‡ п‡олfl? К‡к б‡нк может пе‰от‚‡тить использние PIN ‚ случ‡е, если кто-то н‡шел или ук‡л б‡нко‚скую ке‰итную к‡точку и побует использть ее? 3. Пок‡жите еще ‰‚‡ ‰ейст‚иfl поце‰уы уст‡но‚лениfl по‰линности по ис. 14.4. 4. К‡ко‚ы не‰ост‡тки использниfl метки ‚емени по ис. 14.6? 5. Можно ли по‚тоить ти сообщениfl по ис. 14.5, чтобы ‰ости„нуть ‰‚ун‡п‡‚ленно„о уст‡но‚лениfl по‰линности? Объflсните. 6. Пок‡жите, к‡к н‡ ис. 14.5 может быть по‚е‰ено уст‡но‚ление по‰линности с помощью ключе‚ой хэш-функции. 7. Пок‡жите, к‡к н‡ ис. 14.7 может быть по‚е‰ено уст‡но‚ление по‰линности с помощью ключе‚ой хэш-функции. 8. С‡‚ните ис. 14.5 и ис. 14.9 и сост‡‚ьте список со‚ений и ‡зличий. 9. С‡‚ните ис. 14.7 и ис. 14.10 и сост‡‚ьте список со‚ений и ‡зличий. 10. Можно ли использть метку ‚емени с шифом с ‡симметичными ключ‡ми ‰лfl уст‡но‚лениfl по‰линности? Объflсните. 11. С‡‚ните и поти‚опост‡‚ьте ис. 14.13, ис. 14.15 и ис. 14.16. Сост‡‚ьте список со‚ений и ‡зличий. 12. По‰ел‡йте з‡но‚о пиме «пещеы» ‰лfl потокол‡ Фей„е-Фи‡т‡-Ш‡ми‡. 13. Длfl p = 569, q = 683 и s = 157 пок‡з‡ть ти ‡у퉇 потокол‡ Фи‡т‡-Ш‡ми‡, ‚ычислflfl зн‡чениfl и з‡полнflfl т‡блицы. 14. Длfl p = 683, q = 811, s1 = 157 и s2 = 43215 пок‡жите ти ‡у퉇 потокол‡ Фей„е-Фи‡т‡-Ш‡ми‡, ‚ычислflfl зн‡чениfl и з‡полнflfl т‡блицы. 15. Длfl p = 683, q = 811 и v = 157 пок‡жите ти ‡у퉇 потокол‡ Киск‡те‡Гийу, ‚ычислflfl зн‡чениfl и з‡полнflfl т‡блицы. 16. Н‡исуйте исунок-‰и‡„‡мму, чтобы пок‡з‡ть общую и‰ею тех потоколо‚ ‰лfl уст‡но‚лениfl по‰линности с нуле‚ым ‡з„л‡шением, котоые мы обсу扇ли ‚ этой лекции. 17. В потоколе Фи‡т‡-Ш‡ми‡ — к‡к ‚еоflтность, что нечестный петен‰ент ильно от‚етит н‡ ‚ызо‚ 15 ‡з? 18. В потоколе Фей„е-Фи‡т‡-Ш‡ми‡ — к‡к ‚еоflтность, что нечестный петен‰ент ильно от‚етит н‡ ‚ызо‚ 15 ‡з? 19. В потоколе Киск‡те‡-Гийу — к‡к ‚еоflтность, что нечестный петен‰ент ильно от‚етит н‡ ‚ызо‚ 15 ‡з, если зн‡чение с‚и‰етельст‚‡ ‚ыб‡но меж‰у 1 и 15? 20. В ‰‚ун‡п‡‚ленном по‰хо‰е к уст‡но‚лению по‰линности н‡ ис. 14.10, если поз‚олflютсfl множест‚енные се‡нсы уст‡но‚лениfl по‰линности, Е‚‡ пеех‚‡ты‚‡ет RB-nonce от Боб‡ (‚о ‚тоом се‡нсе) и пе則ет е„о к‡к nonce Алисы ‰лfl ‚тоо„о се‡нс‡. Боб, не по‚еflfl, что этот nonce — тот же, к‡к тот nonce, котоый он пе則л, з‡шифл RB и ‚ст‡‚лflет е„о ‚ сообщение с nonce. Е‚‡ использует з‡шифнный RB и пит‚оflетсfl, что он‡ — Алис‡, по‰олж‡ющ‡fl пе‚ый се‡нс и от‚еч‡ющ‡fl з‡шифнным RB. Это — ‡т‡к‡ от‡жениfl. Пок‡жите ш‡„и ‚ этом сцен‡ии. 470
Лекциfl 15
Уление ключ‡ми
Лекциfl 15. Уление ключ‡ми Цели и со‰еж‡ние Эт‡ лекциfl имеет несколько целей. • Объflснить потебность ‚ центе ‡спе‰елениfl ключей (KDC — Key Distribution Center). • Пок‡з‡ть, к‡к KDC может со片ть ключ се‡нс‡ меж‰у ‰‚умfl стоон‡ми. • Пок‡з‡ть, к‡к ‰‚е стооны мо„ут использть потокол со„л‡шениfl с симметичными ключ‡ми ‰лfl со片ниfl меж‰у собой ключ‡ се‡нс‡, не пиб儇fl к услу„‡м KDC. • Опис‡ть систему Цебе (Kerberos) к‡к цент ‡спе‰елениfl ключей (KDC) и потокол и‰ентифик‡ции. • Объflснить потебность ‚ Цент‡х Сетифик‡ции (CA — Certification Authorities) ‰лfl обще‰оступных ключей и фом‡т сетифик‡то‚ ‚ соот‚етст‚ии с екоме퉇цией X.509. • Пе‰ст‡‚ить и‰ею Инф‡стуктуы Обще‰оступно„о ключ‡ (PKI — Public Key Infrastructure) и объflснить некотоые из ее ежимо‚ ‡боты. В пе‰ы‰ущих лекциflх мы обсу扇ли киптфию с симметичными ключ‡ми и с ‡симметичными ключ‡ми. О‰н‡ко мы еще не обсу‰или, к‡к ‡спе‰елflютсfl и обслуж肇ютсfl ключи з‡секеч肇ниfl ‚ киптфии с симметичными ключ‡ми и откытые ключи ‚ киптфии с ‡симметичными ключ‡ми. Эт‡ лекциfl з‡т‡„肇ет эти ‰‚е поблемы. Во-пе‚ых, мы по„о‚оим о ‡спе‰елении симметичных ключей, с использнием тетье„о лиц‡, котоому ‰о‚еflют. Во-‚тоых, мы пок‡жем, к‡к ‰‚е стооны мо„ут уст‡но‚ить симметичный ключ меж‰у собой, не используfl тетье лицо, котоому ‰о‚еflют. В-тетьих, мы ‡ссмотим систему Цебе (Kerberos), центы ‡спе‰елениfl ключей KDC и потокол опе‰елениfl по‰линности объект‡. В-чет‚етых, мы обсу‰им сетифик‡цию обще‰оступных ключей, с помощью центо‚ сетифик‡ции (CA), н‡ осно‚е екоме퉇ций X 509. Н‡конец, мы к‡тко ‡ссмотим и‰ею относительно Инф‡стуктуы Обще‰оступно„о ключ‡ (PKI) и ‡сск‡жем о некотоых из ее ежимо‚ ‡боты.
15.1. Р‡спе‰еление с симметичными ключ‡ми Длfl шифниfl больших сообщений киптфиfl с симметичными ключ‡ми более эффекти‚н‡, чем киптфиfl с ‡симметичными ключ‡ми. Киптфиfl с симметичными ключ‡ми, о‰н‡ко, ну扇етсfl ‚ ключе з‡секеч肇ниfl, котоый пименflетсfl ‰‚умfl стоон‡ми. Если Алис‡ ‰олжн‡ обмен肇тьсfl конфи‰енци‡льными сообщениflми с N лю‰ьми, он‡ ну扇етсfl ‚ N ‡зличных ключ‡х. А что, если N лю‰ей ‰олжно общ‡тьсfl ‰у„ с ‰у„ом? Т‡ необхо‰имое общее количест‚о ключей ‡‚но N (N – l). Если мы поз‚олflем Алисе и Бобу использть ‰‚‡ о‰ин‡ко‚ых ключ‡ ‰лfl ‰‚ун‡п‡‚ленной с‚flзи ‰лfl обоих н‡п‡‚лений, т‡ нужно только N (N – 1)/2 ключей. Это озн‡ч‡ло бы, что если о‰ин миллион чело‚ек с‚flзы‚‡етсfl ‰у„ с ‰у„ом, к‡ж‰ый чело‚ек имеет почти о‰ин миллион ‡зличных ключей. Все„о необхо‰им 471
Кус
Киптфиfl и безоп‡сность сетей
почти о‰ин тиллион ключей. Это н‡зы‚‡етсfl N-поблемой, потому что число тебуемых ключей ‰лfl N объекто‚ — N2. Число ключей — не е‰инст‚енн‡fl поблем‡; ‡спе‰еление ключей — ‚от ‰у„‡fl б則. Алис‡ и Боб хотflт с‚flз‡тьсfl меж‰у собой. Им нужен способ обмен‡ ключ‡ми з‡секеч肇ниfl. Если Алис‡ хочет с‚flз‡тьсfl с о‰ним миллионом чело‚ек, к‡к он‡ может обменflтьсfl о‰ним миллионом ключей с о‰ним миллионом чело‚ек? Использние Internet — fl‚но не безоп‡сный мето‰. Оче‚и‰но, что мы ну扇емсfl ‚ эффекти‚ном способе пеж肇ть и ‡спе‰елflть ключи з‡секеч肇ниfl.
Цент Р‡спе‰елениfl Ключей: KDC П‡ктическое ешение — пи‚лечение тетье„о лиц‡, котоому ‰о‚еflют. Оно н‡зы‚‡етсfl з‰есь центом ‡спе‰елениfl ключей (KDC — Key-Distribution Center). Чтобы уменьш‡ть число ключей, к‡ж‰ый чело‚ек уст‡н‡‚л肇ет откытый ключ з‡секеч肇ниfl с KDC, к‡к пок‡з‡но н‡ ис. 15.1.
Рис. 15.1. Цент ‡спе‰елениfl ключей (KDC) Ключ з‡секеч肇ниfl уст‡но‚лен меж‰у KDC и к‡ж‰ым членом сообщест‚‡. Алис‡ имеет ключ з‡секеч肇ниfl с KDC, котоый мы н‡зы‚‡ем KAlice. Боб имеет ключ з‡секеч肇ниfl с KDC, котоый мы н‡зы‚‡ем KBob. Тепеь ‚опос — то, к‡к Алис‡ может пе則ть конфи‰енци‡льное сообщение Бобу. Поцесс сле‰ующий. 1. Алис‡ пе則ет з‡пос KDC — з‡fl‚ление, что он‡ ну扇етсfl ‚ се‡нсе (‚еменно) и ключе з‡секеч肇ниfl меж‰у собой и Бобом. 2. KDC сообщ‡ет Бобу о з‡посе Алисы. 3. Если Боб со„л‡ш‡етсfl, меж‰у ними со片етсfl ключ се‡нс‡. Ключ з‡секеч肇ниfl меж‰у Алисой и Бобом, котоый уст‡но‚лен с KDC, используетсfl, чтобы по‰т‚е‰ить по‰линность Алисы и Боб‡ к KDC и пепflтст‚ть Е‚е исполнflть оль любо„о из них. Мы обсу‰им позже ‚ этой лекции, к‡к уст‡но‚л肇етсfl ключ се‡нс‡ меж‰у Алисой и Бобом,. К‡ число лю‰ей, использующих KDC (Цент ‡спе‰елениfl ключей), у‚елич肇етсfl, систем‡ ст‡но‚итсfl неулflемой и с‡б‡ты‚‡ет ее узкое место — число ключей может кончитьсfl. Чтобы ешить поблему, мы ‰олжны иметь мно„о KDC. Мы можем ‡з‰елить ми н‡ ‰омены. К‡ж‰ый ‰омен может иметь о‰ин или 472
Лекциfl 15
Уление ключ‡ми
более KDCs (‰лfl езе‚ной избыточности ‚ случ‡е отк‡з‡). Тепеь, если Алис‡ хочет пе則ть конфи‰енци‡льное сообщение Бобу, котоый пи퇉лежит к ‰у„ому ‰омену, он‡ ‚хо‰ит ‚ конт‡кт со с‚оим KDC, котоый, ‚ с‚ою очее‰ь, ‚хо‰ит ‚ конт‡кт с KDC ‚ ‰омене Боб‡. Д‚‡ KDCs мо„ут со片ть ключ з‡секеч肇ниfl меж‰у Алисой и Бобом. Рисунок 15.2 пок‡зы‚‡ет KDCs, „‰е центы — о‰но„о уо‚нfl. Мы н‡зы‚‡ем т‡кую низ‡цию центо‚ — «плоское (неие‡хическое) множест‚о центо‚ (KDC)».
Рис. 15.2. Плоское (неие‡хическое) множест‚о KDC Ие‡хическое множест‚о центо‚ ‡спе‰елениfl ключей Понflтие плоско„о множест‚‡ KDCs может быть ‡сшиено н‡ ие‡хическую систему KDCs, с о‰ним или более KDCs н‡ ‚ехнем уо‚не ие‡хии. Н‡пиме, может сущест‚ть местный KDCs, н‡цион‡льный KDCs и меж‰ун‡о‰ный KDCs. К‡ Алис‡ ‰олжн‡ с‚flз‡тьсfl с Бобом, котоый жи‚ет ‚ ‰у„ой ст‡не, он‡ пе則ет с‚ой з‡пос местному KDC; местный KDC ет‡нслиует з‡пос к н‡цион‡льному KDC; н‡цион‡льный KDC ет‡нслиует з‡пос к меж‰ун‡о‰ному KDC. З‡пос з‡тем т‡нслиуетсfl полным путем ‚низ к местному KDC, „‰е жи‚ет Боб. Рисунок 15.3 пок‡зы‚‡ет конфи„у‡цию ие‡хическо„о множест‚‡ KDCs.
Ключи се‡нс‡ KDC со片ет ключ з‡секеч肇ниfl ‰лfl к‡ж‰о„о ‡бонент‡. Этот ключ з‡секеч肇ниfl может использтьсfl только меж‰у ‡бонентом и KDC, ‡ не меж‰у ‰‚умfl член‡ми сообщест‚‡. Если Алис‡ ‰олжн‡ с‚flз‡тьсfl т‡йно с Бобом, он‡ ну扇етсfl ‚ ключе з‡секеч肇ниfl меж‰у собой и Бобом. KDC может со片ть ключ се‡нс‡ меж‰у Алисой и Бобом, используfl их ключи с центом. Ключи Алисы и Боб‡ пименflютсfl, чтобы по‰т‚е‰ить ‰оступность и полномочность Алисы и Боб‡ к центу и ‰у„ к ‰у„у пее‰ тем, к‡к бу‰ет уст‡но‚лен ключ се‡нс‡. После то„о к‡к с‚flзь з‡кончен‡, ключ се‡нс‡ больше не нужен. Симметичный ключ се‡нс‡ меж‰у ‰‚умfl стоон‡ми используетсfl только о‰н‡ж‰ы. Были пе‰ложены несколько ‡зличных по‰хо‰о‚, чтобы со片ть ключ се‡нс‡, используfl и‰еи, ‡ссмотенные ‚ лекции 14 ‰лfl уст‡но‚лениfl по‰линности объект‡. 473
Кус
Киптфиfl и безоп‡сность сетей
Рис. 15.3. Ие‡хическое множест‚о центо‚ ‡спе‰елениfl ключей Постой потокол, использующий KDC Д‡‚‡йте посмотим, к‡к KDS может со片ть се‡нсо‚ый ключ KAB меж‰у Алисой и Бобом. Рисунок 15.4 пок‡зы‚‡ет пе‰пиним‡емые ш‡„и. 1. Алис‡ пе則ет сообщение исхо‰но„о текст‡ KDC, чтобы получить симметичный ключ се‡нс‡ меж‰у собой и Бобом. Сообщение со‰ежит ее з‡е„истинный опоз퇂‡тельный ко‰ (сло‚о Алис‡ или исунок) и опоз퇂‡тельный ко‰ Боб‡ (сло‚о Боб или исунок). З‡шифно ли сообщение или обще‰оступно — KDC это не беспокоит. 2. KDC получ‡ет сообщение и со片ет то, что н‡зы‚‡етсfl билетом. Билет з‡шифн с помощью ключ‡ Боб‡ (КB). Билет со‰ежит и‰ентифик‡тоы Алисы и Боб‡ и ключ се‡нс‡ (KAB). Билет с копией ключ‡ се‡нс‡ пе則ют Алисе. Алис‡ получ‡ет сообщение, ‡сшифо‚ы‚‡ет е„о и из‚лек‡ет ключ се‡нс‡. Он‡ не может ‡сшифть билет Боб‡; билет, пе‰н‡зн‡ченный ‰лfl Боб‡, не‰оступен Алисе. Об‡тите ‚ним‡ние, что сообщение со‰ежит ‰‚ойное шифние: з‡шифн билет, ‡ т‡кже з‡шифно полное сообщение. Во ‚тоом сообщении Алис‡ ф‡ктически з‡е„истио‚‡н‡ ‚ KDC, поэтому только Алис‡ может откыть целое сообщение, используfl с‚ой ключ з‡секеч肇ниfl с KDC. 3. Алис‡ пе則ет билет Бобу. Боб откы‚‡ет билет и зн‡ет, что Алис‡ ‰олжн‡ пе則ть ему сообщение, использующее KAB к‡к ключ се‡нс‡. Об‡тите ‚ним‡ние, что ‚ этом сообщении Боб з‡е„истио‚‡н ‚ KDC, поэтому только Боб может откыть билет. Поскольку Боб з‡е„истио‚‡н ‚ KDC, он т‡кже з‡е„истин Алисой, кото‡fl ‰о‚еflет KDC. Тем же с‡мым способом Алис‡ т‡кже з‡е„истио‚‡н‡ Бобом, потому что Боб ‰о‚еflет KDC, и KDC пе則л Бобу билет, котоый ‚ключ‡ет опоз퇂‡тельный ко‰ Алисы. 474
Лекциfl 15
Уление ключ‡ми
Рис. 15.4. Пе‚ый мето‰, использующий KDC К сож‡лению, этот постой потокол имеет не‰ост‡ток. Е‚‡ может пименить ‡т‡ку от‚ет‡, ‡ссмотенную ‡ньше, — то есть он‡ может сох‡нить сообщение ш‡„‡ 3 и использть е„о позже. Потокол Нии‰ом‡-Шfi‰е‡ Ду„ой по‰хо‰ — изflщный потокол Нии‰ом‡-Шfi‰е‡ (Needham-Schreder), котоый fl‚лflетсfl осно‚ой мно„их потоколо‚. Этот потокол 燉ейст‚ует множест‚о ‰ейст‚ий з‡пос‡-от‚ет‡ меж‰у стоон‡ми, чтобы ‰ости„нуть безупечно„о потокол‡. Нии‰ом и Шfi‰е пименflют ‰‚‡ nonce: RА и RB. Рисунок 15.5 пок‡зы‚‡ет пflть ш‡„о‚, используемых ‚ этом потоколе. Мы к‡тко пе‰ст‡‚лflем к‡ж‰ый ш‡„. 1. Алис‡ пе則ет сообщение KDC, ‚ котоое ‚ключ‡ет с‚ой nonce RА, с‚ой опоз퇂‡тельный ко‰ и опоз퇂‡тельный ко‰ Боб‡. 2. KDC пе則ет з‡шифнное сообщение Алисы, котоое ‚ключ‡ет once Алисы, опоз퇂‡тельный ко‰ Боб‡, ключ се‡нс‡ и з‡шифнный билет ‰лfl Боб‡. Все сообщение з‡шифно ключом Алисы. 3. Алис‡ пе則ет билет Боб‡ ему. 4. Боб пе則ет с‚ой з‡пос Алисе (RB), з‡шифнный ключом се‡нс‡. 5. Алис‡ от‚еч‡ет н‡ з‡пос Боб‡. Об‡тите ‚ним‡ние, что от‚ет пе則етсfl RB – 1 ‚место RB. 475
Кус
Киптфиfl и безоп‡сность сетей
Рисунок 15.5. Потокол Нии‰ом‡-Шfi‰е‡ Потокол От‚еfl-Рисс‡ Тетий по‰хо‰ — потокол От‚еfl-Рисс‡ (Otway-Rees), ‰у„ой, не менее изflщный потокол. Рисунок 15.6 пок‡зы‚‡ет этот потокол с пflтью ш‡„‡ми. Ниже к‡тко описы‚‡ютсfl ш‡„и это„о потокол‡. 1. Алис‡ пе則ет сообщение Бобу, котоое ‚ключ‡ет nonce R, и‰ентифик‡ционные пизн‡ки Алисы и Боб‡ и билет ‰лfl KDC — ‚ билет ‚хо‰flт once Алисы RA (с‚и‰етельст‚о ‰лfl пользниfl KDC), копиfl обще„о nonce R и и‰ентифик‡тоы Алисы и Боб‡. 2. Боб со片ет тот же с‡мый тип билет‡, но с собст‚енным е„о, Боб‡, nonce RB. Об‡ билет‡ пе則ют KDC. 3. KDC со片ет сообщение, котоое со‰ежит R, общий nonce, билет ‰лfl Алисы и билет ‰лfl Боб‡; сообщение пе則ют Бобу. Билеты со‰еж‡т соот‚етст‚ующий nonce, RA или RB и ключ се‡нс‡ KAB. 476
Лекциfl 15
Уление ключ‡ми
Рисунок 15.6. Потокол От‚еfl-Риис‡ 4. Боб пе則ет Алисе ее билет. 5. Алис‡ пе則ет кооткое сообщение, з‡шифнное ее се‡нсо‚ым ключом KAB, чтобы пок‡з‡ть, что он‡ имеет ключ се‡нс‡. 477
Кус
Киптфиfl и безоп‡сность сетей
15.2. Цебе Цебе — потокол уст‡но‚лениfl по‰линности и ‚ то же с‡мое ‚емfl — KDC, котоый ст‡л очень популflным. Несколько систем, ‚ключ‡fl Windows 2000, используют потокол Цебе. Он н‡з‚‡н ‚ честь тех„оло‚ой соб‡ки ‚ „еческой мифоло„ии, кото‡fl ох‡нflет ‚оот‡ ц‡ст‚‡ мет‚ых А艇. Пе‚он‡ч‡льно ‡з‡бот‡нный ‚ MIT, он пошел несколько ‚есий. Мы обсу‰им только с‡мую популflную ‚есию 4, и к‡тко объflсним отличиfl меж‰у ‚есией 4 и ‚есией 5 (после‰ней).
Се‚еы Потокол Цебе ‚ключ‡ет ‚ себfl ‡боту с темfl се‚е‡ми: се‚е ‡утентфик‡ции (AS — Authentication Server), се‚е, пе‰ост‡‚лflющий билет (TGS — Ticket-Granting Server) и е‡льный се‚е (се‚е об‡ботки ‰‡нных), котоый обеспеч肇ет услу„и. В н‡ших пиме‡х и исунк‡х Боб — е‡льный се‚е, ‡ Алис‡ — пользтель, з‡п‡ш肇ющий се‚е. Рисунок 15.7 пок‡зы‚‡ет отношениfl меж‰у этими темfl се‚е‡ми.
Рис. 15.7. Се‚еы потокол‡ Цебе 478
Лекциfl 15
Уление ключ‡ми
Се‚е ‡утентифик‡ции (AS) Се‚е ‡утентифик‡ции (AS) — ‚ потоколе Цебе — KDC. К‡ж‰ому пользтелю, з‡е„истинному ‚ AS, пе‰ост‡‚лflют пользтельский и‰ентифик‡ционный ко‰ и п‡оль. AS имеет б‡зу ‰‡нных с этими и‰ентифик‡ционными кми и соот‚етст‚ующими п‡олflми. AS ‚еифициует пользтелfl, ‚ы‰‡ет ключ се‡нс‡, котоый используетсfl меж‰у Алисой и TGS, и пе則ет билет ‰лfl TGS. Пе‰ост‡‚лflющий билет се‚е (TGS) Пе‰ост‡‚лflющий билет се‚е (TGS) ‚ы‡б‡ты‚‡ет билет ‰лfl е‡льно„о се‚е‡ (Боб‡). ОН обеспеч肇ет ключ се‡нс‡ (KAB) меж‰у Алисой и Бобом. Потокол Цебе от‰елflет ‚еифик‡цию пользтелfl от ‚ы‰‡чи билет‡. Этим способом Алис‡ по‚еflет с‚ой ID с AS только о‰ин ‡з. В конт‡кт с TGS он‡ может ‚ойти мно„о ‡з, чтобы получить билеты ‰лfl ‡зличных е‡льных се‚ео‚. Ре‡льный се‚е Ре‡льный се‚е (Боб) обеспеч肇ет услу„и ‰лfl пользтелfl (Алис‡). Цебе ‡з‡бот‡н ‰лfl ‚з‡имо‰ейст‚иfl с пммой «клиент-се‚е», т‡кой к‡к, н‡пиме, потокол пе則чи ф‡йло‚ FTP (File Transfer Protocol), ‚ котоом пользтель использует поцесс клиент‡, чтобы об‡титьсfl к поцессу се‚е‡. Цебе не пименflетсfl ‰лfl уст‡но‚лениfl по‰линности «чело‚екчело‚ек».
Р‡бот‡ Поцесс клиент‡ (Алис‡) может об‡титьсfl к поцессу, функциониующему н‡ е‡льном се‚ее (Боб) ‚ шесть ш‡„о‚, к‡к это пок‡з‡но н‡ ис. 15.8. 1. Алис‡ пе則ет с‚ой з‡пос AS ‚ откытом тексте, используfl с‚ой з‡е„истинный ко‰ и‰ентифик‡ции. 2. AS пе則ет сообщение, з‡шифнное постоflнным симметичным ключом Алисы, KA. AS-сообщение со‰ежит ‰‚‡ объект‡: ключ се‡нс‡, KA-TGS, котоый используетсfl Алисой, чтобы ‚ойти ‚ конт‡кт с TGS, и билет ‰лfl TGS, котоый з‡шифн TGS-симметичным ключом (KAS-TGS). Алис‡ не зн‡ет KA-AS, но к‡ сообщение пибы‚‡ет, он‡ печ‡т‡ет (сообщ‡ет) с‚ой симметичный п‡оль. П‡оль и соот‚етст‚ующий ‡л„оитм ‚месте со片ют KA-AS, если п‡оль ильный. П‡оль з‡тем неме‰ленно уничтож‡ют; е„о не пе則ют по сети, и он не ост‡етсfl ‚ темин‡ле. Он используетсfl только н‡ м„но‚ение, чтобы со片ть KA-AS. Поцесс тепеь пименflет KA-AS ‰лfl то„о, чтобы ‡сшифо‚ы‚‡ть пе則‚‡емое сообщение KA-TGS и из‚лечь билет. 3. Алис‡ тепеь пе則ет ти объект‡ TGS. Пе‚ый — билет, полученный от AS. Втоой — имfl е‡льно„о се‚е‡ (Боб), тетий — метку ‚емени, кото‡fl з‡шифо‚‡н‡ ключом KA-TGS . Метк‡ ‚емени пе‰от‚‡щ‡ет ложный от‚ет Е‚ы. 4. Тепеь TGS пе則ет ‰‚‡ билет‡: к‡ж‰ый со‰ежит ключ се‡нс‡ меж‰у Алисой и Бобом, ka-b,. Билет ‰лfl Алисы — з‡шифнный ka-tgs , билет 479
Кус
Киптфиfl и безоп‡сность сетей
‰лfl Боб‡ — з‡шифнный с ключом Боб‡ KTGS-B. Об‡тите ‚ним‡ние, что Е‚‡ не может из‚лечь kab, потому что Е‚‡ не зн‡ет KA-TGS или KTGS-B. Он‡ не может от‚етить н‡ ш‡„ 3, потому что не может з‡менить метку ‚емени но‚ой меткой. Он‡ не зн‡ет KA-TGS, и ‰‡же если бу‰ет ‰ейст‚ть очень бысто и пе則ст н‡ ш‡„е 3 сообщение пеж‰е, чем истечет метк‡ ‚емени, ‚се ‡‚но получит те же с‡мые ‰‚‡ билет‡, котоые он‡ не может ‡сшифть. 5. Алис‡ пе則ет билет Боб‡ с меткой ‚емени, з‡шифнной ключом KA-B. 6. Боб по‰т‚е扇ет, что получил эту инфом‡цию, пиᇂлflfl 1 к метке ‚емени. Сообщение шифуетсfl ключом KA-B и пе則етсfl Алисе.
Использние ‡зличных се‚ео‚ Об‡тите ‚ним‡ние, что если Алис‡ ‰олжн‡ быть обслужен‡ ‡зличными се‚е‡ми, то пе‚ые ‰‚‡ ш‡„‡ по‚еflют и‰ентифик‡ционный ко‰ Алисы и не по‚тоflютсfl. По‚тоflfl ш‡„и 3-6, Алис‡ может з‡посить, чтобы TGS ‚ы‡бот‡л билеты ‰лfl мно„их се‚ео‚.
Весиfl 5 Цебе Незн‡чительные отличиfl меж‰у ‚есией 4 и ‚есией 5 к‡тко пи‚е‰ены ниже. 1. Весиfl 5 имеет более ‰линный ук‡з‡тель ‚емени жизни билет‡. 2. Весиfl 5 поз‚олflет ‚озобно‚лflть билеты. 3. Весиfl 5 может пименflть любой ‡л„оитм с симметичными ключ‡ми. 4. Весии 5 использует ‡зличные потоколы ‰лfl то„о, чтобы описы‚‡ть типы ‰‡нных. 5. Весиfl 5 имеет 燄оло‚ки, более ‰линные, чем ‚есиfl 4.
Обл‡сти пименениfl Цебе поз‚олflет „лоб‡льное ‡спе‰еление AS и TGS с к‡ж‰ой системой, н‡зы‚‡емой обл‡стью. Пользтель может получить билет ‰лfl местно„о се‚е‡ или у‰‡ленно„о се‚е‡. Во ‚тоом случ‡е, н‡пиме, Алис‡ может посить, чтобы ее местный TGS со片л ей билет, котоый мо„ бы быть пинflт у‰‡ленным TGS. Местный TGS может со片ть этот билет, если у‰‡ленный TGS з‡е„истио‚‡н ‚ местном TGS, т‡ Алис‡ может использть у‰‡ленный TGS, чтобы об‡титьсfl к у‰‡ленному е‡льному се‚еу.
15.3. Со„л‡шение с симметичными ключ‡ми Алис‡ и Боб мо„ут со片ть ключ се‡нс‡ меж‰у собой, не используfl KDC. Этот мето‰ со片ниfl ключ‡ се‡нс‡ н‡зы‚‡етсfl со„л‡шением с симметичными ключ‡ми. Хотfl есть несколько способо‚ ‚ыполнить этот поцесс, з‰есь ‡ссм‡т肇ютсfl только ‰‚‡ общих мет ключе‚о„о со„л‡шениfl: Диффи-Хеллм‡н‡ (Diffie-Hellman) и «ст‡нциfl-к-ст‡нции». 480
Лекциfl 15
Уление ключ‡ми
Рис. 15.8. Пиме ‡боты Цебе‡ 481
Кус
Киптфиfl и безоп‡сность сетей
Ключе‚ое со„л‡шение В потоколе Диффи-Хеллм‡н‡ ‰‚е стооны со片ют симметичный ключ се‡нс‡ без KDC. Пее‰ уст‡но‚лением симметично„о ключ‡ эти ‰‚е стооны ‰олжны ‚ыб‡ть ‰‚‡ числ‡ p и g. Пе‚ое число, p, fl‚лflетсfl большим постым числом поfl‰к‡ 300 ‰есflтичных циф (1024 бит‡). Втоое число, g, служит „ене‡тоом поfl‰к‡ p – 1 ‚ „уппе . Эти ‰‚‡ числ‡ („упп‡ и „ене‡то) не ‰олжны быть конфи‰енци‡льными. Их можно пе則ть чеез Internet. Они мо„ут быть обще‰оступны. Рисунок 15.9 пок‡зы‚‡ет поце‰уу. Ш‡„и пеечислены ниже. 1. Алис‡ ‚ыби‡ет большое случ‡йное число x, т‡кое, что 0 < x < p – 1, и ‚ычислflет R1 = gx mod p. 2. Боб ‚ыби‡ет ‰у„ое большое случ‡йное число y, т‡кое, что 0 < y < p – 1, и ‚ычислflет R2 = gy mod p. 3. Алис‡ пе則ет Бобу R1. Об‡тите ‚ним‡ние, что Алис‡ не пе則ет зн‡чение x; он‡ пе則ет только R1. 4. Боб пе則ет Алисе R2. Сн об‡тите ‚ним‡ние, что Боб не пе則ет зн‡чение y, он пе則ет только R2. 5. Алис‡ ‚ычислflет K = (R2)x mod p. 6. Боб т‡кже ‚ычислflет K = (R1)y mod p.
Боб ‚ычислflет K = (R1)y mod p = (gx mod p)y mod p = gxy mod p. Алис‡ ‚ычислflет K = (R2)x mod p = (gy mod p)x mod p = gxy mod p и получ‡ет то же с‡мое
Рис. 15.9. Мето‰ Диффи-Хелм‡н‡ 482
Лекциfl 15
Уление ключ‡ми
зн‡чение без Боб‡, зн‡юще„о зн‡чение x. А Боб получил это зн‡чение без Алисы, зн‡ющей зн‡чение y. Симметичный (со‚местный) ключ ‚ мето‰е Диффи-Хеллм‡н‡ — K = gxy mod p Пиме 15.1 Пи‚е‰ем ти‚и‡льный пиме, чтобы flсно понflть поце‰уу. Н‡ш пиме использует м‡ленькие числ‡, но з‡метим, что ‚ е‡льной ситу‡ции пименflютсfl очень большие числ‡. Пе‰положим, что g = 7 и p = 23. Т‡ поце‰у‡ со‰ежит сле‰ующие ш‡„и. 1. Алис‡ ‚ыби‡ет x = 3 и ‚ычислflет R1 = 73 mod 23 = 21. 2. Боб ‚ыби‡ет y = 6 и ‚ычислflет R2 = 76 mod 23 = 4. 3. Алис‡ пе則ет число 21 Бобу. 4. Боб пе則ет число 4 Алисе. 5. Алис‡ ‚ычислflет симметичный ключ K = 43 mod 23 = 18. 6. Боб ‚ычислflет симметичный ключ K = 216 mod 23 = 18. Зн‡чение K о‰но и то же и ‰лfl Алисы, и ‰лfl Боб‡: gx y mod p = 718 = 18 . Пиме 15.2 Д‡‚‡йте ‚озьмем более е‡льный пиме. Мы используем пмму, чтобы со片ть случ‡йное целое число 512 бито‚ (и‰е‡льно — 1024 бит). Целое число p — число с 159 циф‡ми. Мы т‡кже ‚ыби‡ем g, x и y, к‡к пок‡з‡но ниже: p
g x y
7646242985634935721824937659550305074763380967269497489235737728609 2523566666075542363742330966118003333810619473013095041473870099917 80436548785807987581 2 557 273 Сле‰ующ‡fl т‡блиц‡ пок‡зы‚‡ет R1, R2 и K.
R1
R2
K
8449202842066550521617294749103509414343369852001266086286363106767 3619959280828586700802131859290945140217500319973312945836083821943 065966020157955354 4352628387092003794707471148955816276363891162621155579751233792185 6631001143571S20839004018187648684175383116534269163026342110672150 8589 6255201288594143 155638000664522290596225827523270765273218046944423678520320400146 4065008879366512042574267766083279110171530386745612522131516109765 842001204086433617740
Ан‡лиз потокол‡ Диффи-Хеллм‡н‡ Концепциfl Диффи-Хеллм‡н‡, пок‡з‡нн‡fl н‡ ис. 15.10, fl‚лflетсfl постой, но изflщной. Мы можем пе‰ст‡‚ить ключ з‡секеч肇ниfl меж‰у Алисой и Бобом — 483
Кус
Киптфиfl и безоп‡сность сетей
он состоит из тех ч‡стей: g, x и y. П傇fl ч‡сть обще‰оступн‡. К‡ж‰ый зн‡ет 1/3 ключ‡ — g, обще‰оступное зн‡чение. Ду„ие ‰‚е ч‡сти нужно узн‡ть y Алисы и Боб‡. К‡ж‰ый из них зн‡ет о‰ну ч‡сть. Алис‡ ‰оᇂлflет x к‡к ‚тоую ч‡сть ‰лfl Боб‡; Боб ‰оᇂлflет y к‡к ‚тоую ч‡сть ‰лfl Алисы. К‡ Алис‡ получ‡ет 2/3 полно„о ключ‡ от Боб‡, он‡ ‰оᇂлflет после‰нюю ч‡сть, ее y, чтобы 燂ешить ключ. К‡ Боб получ‡ет ключ от Алисы — з‡конченный н‡ 2/3, он ‰оᇂлflет после‰нюю ч‡сть, с‚ое y, чтобы 燂ешить ключ. Об‡тите ‚ним‡ние, что хотfl ключ Алисы состоит из g, y и x и ключ Боб‡ состоит из g, x и y, эти ‰‚‡ ключ‡ — о‰ни и те же, потому что gxy = gyx. Об‡тите ‚ним‡ние т‡кже, что хотfl ‰‚‡ ключ‡ те же с‡мые, Алис‡ не может н‡йти зн‡чение y, используемо„о Бобом, потому что ‚ычисление с‰ел‡но по мо‰улю p. Алис‡ получ‡ет gy mod p от Боб‡, но не gy. Длfl то„о чтобы зн‡ть зн‡чениfl y, Алис‡ ‰олжн‡ использть ‰искетный лифм, котоый мы обсу扇ли ‚ пе‰ы‰ущей лекции. Безоп‡сность потокол‡ З‡мен‡ ключ‡ Диффи-Хеллм‡н‡ ‚оспиимч肇 к ‰‚ум ‡т‡к‡м: ‡т‡ке ‰искетно„о лифм‡ и ‡т‡ке посе‰ник‡ (man-in middle) Ат‡к‡ ‰искетно„о лифм‡. Безоп‡сность ключе‚ой ст‡нции б‡зиуетсfl н‡ ту‰ности поблемы ‰искетно„о лифм‡. Е‚‡ может пеех‚‡тить R1 и R2.
Рис. 15.10. И‰еfl ключ‡ Диффи-Хеллм‡н‡ Из R1 = gx mod p и y из R2 = gy mod p он‡ может з‡тем ‚ычислить симметичный ключ: K = gxy mod p. Ключ з‡секеч肇ниfl больше не fl‚лflетсfl секетным. Чтобы c‰ел‡ть мето‰ Диффи-Хеллм‡н‡ з‡щищенным от ‡т‡ки ‰искетно„о лифм‡, екомен‰уетсfl сле‰ующее. 484
Лекциfl 15
Уление ключ‡ми
1. Постое число p ‰олжно быть очень большим (более чем 300 ‰есflтичных циф). 2. Постое число p ‰олжно быть ‚ыб‡но т‡к, чтобы p – 1 имел по к‡йней мее о‰ин постой ‰елитель (больше чем 60 ‰есflтичных циф). 3. Гене‡то ‰олжен быть ‚ыб‡н из „уппы . 4. Боб и Алис‡ ‰олжны уничтожить x и y после то„о, к‡к они ‚ычислили зн‡чение симметично„о ключ‡. Зн‡чениfl x и y ‰олжны использтьсfl только е‰инож‰ы. Ат‡к‡ «посе‰ниꇻ. Этот потокол имеет ‰у„ую сл‡бость. Е‚е не 퇉о н‡хо‰ить зн‡чениfl x и y, чтобы н‡п‡сть н‡ потокол. Он‡ может использть „лупость Алисы и Боб‡, со片ющих ‰‚‡ ключ‡: о‰ин меж‰у Бобом и Алисой и ‰у„ой меж‰у Алисой и Бобом. Рисунком 15.11 пок‡зы‚‡ет ситу‡цию. Может случитьсfl сле‰ующее: 1. Алис‡ ‚ыби‡ет x , ‚ычислflет R 1 = gx mod p и пе則ет R1 Бобу; 2. Е‚‡, злоумышленник, пеех‚‡ты‚‡ет R1. Он‡ ‚ыби‡ет z, ‚ычислflет R 2 = gz mod p и пе則ет R 2 Алисе и Бобу; 3. Боб ‚ыби‡ет y, ‚ычислflет R3 = gy mod p, пе則ет R3 Алисе. Е‚‡ пеех‚‡ты‚‡ет R3, и Алис‡ ник‡ не получит это число;
Ри. 15.11. Ат‡к‡ посе‰ник‡ 485
Кус
Киптфиfl и безоп‡сность сетей
4. Алис‡ и Е‚‡ ‚ычислflют K1 = gxz mod p, котоый ст‡но‚итсfl откытым ключом меж‰у Алисой и Е‚ой. Алис‡, о‰н‡ко, ‰ум‡ет, что это —откытый ключ меж‰у ней и Бобом; 5. Е‚‡ и Боб ‚ычислflют K2 = gzymod p, котоый ст‡но‚итсfl откытым ключом меж‰у Е‚ой и Бобом. О‰н‡ко Боб ‰ум‡ет, что это — откытый ключ меж‰у ним Алисой. Ду„ими слми, со片ютсfl ‰‚‡ ключ‡ ‚место о‰но„о: о‰ин меж‰у Алисой и Е‚ой и о‰ин меж‰у Е‚ой и Бобом. К‡ Алис‡ посыл‡ет ‰‡нные Бобу, он‡ з‡шифо‚ы‚‡ет их ключом K1 (со‚местный ключ Алисы иЕ‚ы). Эти ‰‡нные мо„ут быть ‡сшифны и почит‡ны Е‚ой. Е‚‡ может пе則ть сообщение Бобу, з‡шифнное K2 (со‚местный ключ меж‰у Е‚ой и Бобом); или он‡ может ‰‡же изменить сообщение или пе則ть но‚ое сообщение. Боб ‚‚е‰ен ‚ з‡блуж‰ение, поскольку у‚еен, что сообщение пишло от Алисы. По‰обный сцен‡ий может случитьсfl и ‚ ‰у„ом н‡п‡‚лении — с Алисой. Эт‡ ситу‡циfl н‡зы‚‡етсfl «‡т‡к‡ посе‰ниꇻ, поскольку Е‚‡ н‡хо‰итсfl меж‰у п‡тне‡ми и пеех‚‡ты‚‡ет R1, пе則‚‡емый Алисой Бобу, и R3, пе則‚‡емый Бобом Алисой. Это — ‡т‡к‡ пе則чи по цепочке, потому что н‡помин‡ет кооткую линейку ‰обо‚ольце‚ н‡ пож‡е, пе則ющих ‰у„ ‰у„у ‚則 с ‚о‰ой, по цепочке от чело‚ек‡ чело‚еку. Сле‰ующий мето‰ оснн н‡ потоколе Диффи-Хеллм‡н‡. Он использует мето‰ы уст‡но‚лениfl по‰линности, чтобы сть эту ‡т‡ку.
Ключе‚ое со„л‡шение «от ст‡нции к ст‡нции» Потокол «от ст‡нции к ст‡нции» — мето‰, осннный н‡ мето‰е ДиффиХеллм‡н‡. Он пименflет цифо‚ые по‰писи с сетифик‡т‡ми откыто„о ключ‡ (см. сле‰ующую секцию). Длfl уст‡но‚ки ключ‡ се‡нс‡ меж‰у Алисой и Бобом используетсfl после‰о‚‡тельность, пок‡з‡нн‡fl н‡ ис. 15.12. Имеютсfl сле‰ующие ш‡„и. • После ‚ычислениfl R1 Алис‡ пе則ет R1 Бобу (ш‡„и 1 и 2 н‡ ис. 15.12). • После ‚ычислениfl R2 и ключ‡ се‡нс‡ Боб конк‡тениует ID Алисы, R1 И R2. З‡тем он по‰писы‚‡ет езульт‡т с‚оим секетным ключом. Боб тепеь пе則ет R2, по‰пись и собст‚енное с‚и‰етельст‚о обще‰оступно„о ключ‡ Алисе. По‰пись з‡шифо‚‡н‡ ключом се‡нс‡ (ш‡„и 3, 4 и 5 н‡ ис. 15.12). • После ‚ычислениfl ключ‡ се‡нс‡, если по‰пись Боб‡ по‚еен‡, Алис‡ с‚flзы‚‡ет ID Боб‡, R1 И R2. З‡тем он‡ по‰писы‚‡ет езульт‡т с‚оим собст‚енным секетным ключом и пе則ет это Бобу. По‰пись з‡шифо‚‡н‡ ключом се‡нс‡ (ш‡„и 6, 7 и 8 н‡ ис. 15.12). • Если по‰пись Алисы по‚еен‡, Боб сох‡нflет ключ се‡нс‡ (ш‡„ 9 н‡ ис. 15.12). Безоп‡сность потокол‡ «от ст‡нции к ст‡нции» Потокол «от ст‡нции к ст‡нции» пе‰от‚‡щ‡ет ‡т‡ки «посе‰ниꇻ. После R1 Е‚‡ не может пе則ть с‚ой собст‚енный R2 Алисе и пит‚оflтьсfl, что это и‰ет от Боб‡, потому что Е‚‡ не может пел‡ть секетный ключ Боб‡ и со片ть по‰пись — по‰пись не может быть по‚еен‡ обще‰оступным ключом Боб‡, оп486
Лекциfl 15
Уление ключ‡ми
е‰еленным ‚ с‚и‰етельст‚е. Тем же об‡зом Е‚‡ не может пел‡ть секетный ключ Алисы, чтобы по‰пис‡ть тетье сообщение, пе則‚‡емое Алисой. Сетифик‡ту, к‡к мы у‚и‰им ‚ сле‰ующей секции, можно ‰о‚еflть, потому что он ‚ы‡бот‡н ‡‰минист‡цией, котоой ‰о‚еflют.
Рис. 15.12. Мето‰ со„л‡шениfl «от ст‡нции — к ст‡нции»
15.4. Р‡спе‰еление откыто„о ключ‡ В киптфии с ‡симметичным ключом лю‰flм не 퇉о зн‡ть симметичный откытый ключ. Если Алис‡ хочет пе則ть сообщение Бобу, он‡ ‰олжн‡ зн‡ть только откытый ключ Боб‡, котоый fl‚лflетсfl откытым ‰лfl ‚сех и ‰оступен к‡ж‰ому. Если Боб ‰олжен пе則ть сообщение Алисе, он ‰олжен зн‡ть толь487
Кус
Киптфиfl и безоп‡сность сетей
ко откытый ключ Алисы, котоый т‡кже из‚естен к‡ж‰ому. В киптфии обще‰оступно„о ключ‡ к‡ж‰ый сох‡нflет секетный ключ и объfl‚лflет обще‰оступный ключ. В киптфии обще‰оступно„о ключ‡ к‡ж‰ый имеет ‰оступ к откытому ключу; откытые ключи ‰оступны ‚сем. Обще‰оступные ключи, по‰обно секетным ключ‡м, ‰олжны быть ‡спе‰елены, чтобы быть полезными. К‡тко обсу‰им способ, котоым мо„ут быть ‡спе‰елены обще‰оступные ключи.
Обще‰оступное объfl‚ление Н‡и‚ный по‰хо‰ состоит ‚ том, чтобы объfl‚ить откытые ключи публично. Боб может поместить с‚ой откытый ключ н‡ с‚оем с‡йте или объfl‚ить е„о ‚ местной или н‡цион‡льной „‡зете. К‡ Алис‡ ‰олжн‡ пе則ть конфи‰енци‡льное сообщение Бобу, он‡ может получить откытый ключ Боб‡ из е„о с‡йт‡ или из „‡зеты или ‰‡же пе則ть сообщение, чтобы попосить е„о об этом. Рисунок 15.13 иллюстиует т‡кую ситу‡цию.
Рис. 15.13. Объfl‚ление откытых обще‰оступных ключей Этот по‰хо‰, о‰н‡ко, небезоп‡сен. Он ‰опуск‡ет пелку. Н‡пиме, Е‚‡ может с‰ел‡ть т‡кое же обще‰оступное объfl‚ление. Пеж‰е, чем Боб сможет с凄ить, может быть н‡несен ‚е‰. Е‚‡ может посл‡ть „лупой Алисе с‚ое сообщение, котоое flкобы н‡пис‡но Бобом. Е‚‡ может т‡кже по‰пис‡ть ‰окумент ф‡льши‚ым секетным ключом и ‚ы炇ть у к‡ж‰о„о пе‰положение, что сообщение было по‰пис‡но Бобом. Этот по‰хо‰ т‡кже уflз‚им, если Алис‡ с‡м‡ з‡п‡ш肇ет откытый ключ Боб‡. Е‚‡ может пеех‚‡тить от‚ет Боб‡ и з‡менить е„о собст‚енным ф‡льши‚ым откытый ключом.
Цент ‰о‚еиfl Более безоп‡сный по‰хо‰ состоит ‚ том, чтобы иметь цент, котоому ‰о‚еflют и котоый х‡нит к‡т‡ло„ обще‰оступных (откытых) ключей: к‡т‡ло„, по‰обно используемому ‚ телефонной системе, но ‰ин‡мически мо‰ифициуемый. 488
Лекциfl 15
Уление ключ‡ми
К‡ж‰ый пользтель может ‚ыб‡ть секетный и откытый ключ, сох‡нить секетный ключ и опубликть откытый ключ ‚ к‡т‡ло„е. Цент может пе‰ост‡‚ить пользтельский е„ист и по‚еить опоз퇂‡тельный ко‰. К‡т‡ло„ может публично екл‡митьсfl центом, котоому ‰о‚еflют. Цент может т‡кже от‚етить н‡ любой з‡пос об обще‰оступном ключе. Рисунок 15.14 пок‡зы‚‡ет эту концепцию.
Рис. 15.14. Цент ‰о‚еиfl
Улflемый цент ‰о‚еиfl Более ‚ысокий уо‚ень безоп‡сности может быть ‰ости„нут, если ‰оᇂить уление ‡спе‰елением откыто„о ключ‡. Пи объfl‚лении откыто„о ключ‡ можно ‚ключить ‚ от‚ет метку ‚емени и по‰пись ‡‰минист‡ции, чтобы пе‰от‚‡тить пеех‚‡т и пее‰елку от‚ет‡. Если Алис‡ хочет зн‡ть откытый ключ Боб‡, он‡ может пе則ть з‡пос центу, ‚ключ‡fl ‚ з‡пос имfl Боб‡ и метку ‚емени. Цент от‚еч‡ет откытым ключом Боб‡, пе‚он‡ч‡льным з‡посом и меткой ‚емени, по‰пис‡нной секетным ключом цент‡. Алис‡ использует откытый ключ из‚естно„о ‚сем цент‡ и по‚еflет метку ‚емени. Если метк‡ ‚емени ильн‡fl, он‡ из‚лек‡ет обще‰оступный ключ Боб‡. Рисунок 15.15 пок‡зы‚‡ет о‰ин из ‚озможных сцен‡ие‚.
Цент сетифик‡ции Пе‰ы‰ущий по‰хо‰ может поо‰ить ‚ысокую 퇄узку н‡ цент, если число з‡посо‚ бу‰ет большим. Альтен‡т肇 этому — со片ние сетифик‡т‡ (у‰осто‚еениfl) обще‰оступно„о ключ‡. Боб имеет ‰‚‡ жел‡ниfl: он хочет, чтобы лю‰и зн‡489
Кус
Киптфиfl и безоп‡сность сетей
Рис. 15.15. Улflемый Цент До‚еиfl ли е„о откытый ключ, и он хочет, чтобы никто не сфомил ф‡льши‚ый откытый ключ, т‡кой же, к‡к у не„о. Боб может об‡титьсfl ‚ цент сетифик‡ции (CA — Certification Authority) либо ‚ фе‰е‡льную или обще„осу‰‡ст‚енную низ‡цию, кото‡fl с‚flзы‚‡ет откытый ключ с объектом и ‚ы‰‡ет сетифик‡т. Цент сетифик‡ции имеет из‚естный обще‰оступный ключ, котоый не может быть ф‡льши‚ым. Цент сетифик‡ции по‚еflет и‰ентифик‡цию Боб‡, используfl к‡тинку, или ID, или ‰у„ое ‰ок‡з‡тельст‚о по‰линности з‡fl‚ителfl, з‡тем з‡п‡ш肇ет откытый ключ Боб‡ и по‰писы‚‡ет сетифик‡т с секетным ключом. Цент сетифик‡ции по‰писы‚‡ет с‚и‰етельст‚о с‚оим секетным ключом. Тепеь Боб может 燄узить по‰пис‡нное с‚и‰етельст‚о. Любой, кто хочет иметь откытый ключ Боб‡, 燄уж‡ет по‰пис‡нное с‚и‰етельст‚о и использует обще‰оступный ключ цент‡, чтобы из‚лечь обще‰оступный ключ Боб‡. Рисунок 15.16 пок‡зы‚‡ет эту концепцию.
X.509 Хотfl пименение сетифик‡ционных центо‚ ешило поблему мошенничест‚‡ пи ‡спе‰елении откыто„о ключ‡, они со片ли побочный эффект. К‡ж‰ое с‚и‰етельст‚о может иметь особый фом‡т. Если Алис‡ хочет использть пмму, чтобы ‡‚том‡тически 燄узить ‡зличные сетифик‡ты и ‰‡й‰жесты, пи퇉леж‡щие ‡зличным лю‰flм, пмм‡ не сможет с‰ел‡ть это. О‰но с‚и‰етельст‚о может иметь откытый ключ ‚ ‡зличных фом‡т‡х. Откытый ключ может быть н‡ пе‚ой линейке ‚ о‰ном сетифик‡те и н‡ тетьей линейке ‚ ‰у490
Лекциfl 15
Уление ключ‡ми
Рис. 15.16. А‰минист‡циfl сетифик‡ции „ом. Поэтому то, что 퇉о пименflть уни‚ес‡льно, ‰олжно иметь уни‚ес‡льный фом‡т. Чтобы обеспечить уни‚ес‡льность, ITU (МСЭ) ‡з‡бот‡л екоме퉇цию X.509, кото‡fl был‡ пинflт‡ ‚ Internet с некотоыми изменениflми. X.509 — способ опис‡ть сетифик‡т стуктуинным способом. Он использует из‚естный потокол, н‡зы‚‡емый ASN.l (Abstract Syntax Notation 1 — Нот‡циfl ‡бст‡ктно„о синт‡ксис‡ 1), — он опе‰елflет полfl, котоые зн‡комы пммист‡м, использующим C. Сетифик‡т Рисунок 15.17 пок‡зы‚‡ет фом‡т сетифик‡т‡. Сетифик‡т имеет сле‰ующие полfl. • Номе ‚есии. Это поле опе‰елflет ‚есию сетифик‡т‡ X.509. Номе ‚есии н‡чин‡етсfl отсчиты‚‡тьсfl с 0; текущ‡fl ‚есиfl (тетьfl ‚есиfl) — 2. • Сеийный номе. Это поле опе‰елflет число, н‡зн‡ч‡емое к‡ж‰ому сетифик‡ту. Зн‡чение это„о числ‡ fl‚лflетсfl уник‡льным ‰лfl к‡ж‰о„о ‚ыпуск‡емо„о с‚и‰етельст‚‡. • Ал„оитм по‰писи ID. Это поле и‰ентифициует ‡л„оитм, используемый ‰лfl по‰писи сетифик‡т‡. В этом поле опе‰елflетсfl любой мет, котоый необхо‰им ‰лfl по‰писи. • ͇炇ние ‚ы‰‡‚ше„о сетифик‡т. Это поле и‰ентифициует цент‡ сетифик‡ции, котоый ‚ы‰‡л с‚и‰етельст‚о. ͇炇ние — обычно ие‡хиfl сток, котоые опе‰елflют ст‡ну, шт‡т, низ‡цию, от‰ел и т‡к ‰‡лее. 491
Кус
Киптфиfl и безоп‡сность сетей
Рис. 15.17. Фом‡т сетифик‡т‡ Х.509 • Сок ‰ейст‚иfl. Это поле опе‰елflет н‡ч‡льное ‚емfl (не ‡ньше) и после‰нее ‚емfl (не позже), к‡ сетифик‡т счит‡етсfl ‰ейст‚ительным. • Имfl пользтелfl. Это поле опе‰елflет объект, котоому пи퇉лежит откытый ключ. Это т‡кже ие‡хиfl сток. Ч‡сть полfl опе‰елflет то, что н‡зы‚‡етсfl общим именем, котоое fl‚лflетсfl ф‡ктическим именем об뇉‡телfl ключ‡. • Имfl обще‰оступно„о ключ‡. Это поле опе‰елflет откытый ключ ‚뇉ельц‡. Это — цент‡льн‡fl инфом‡циfl сетифик‡т‡. Поле т‡кже опе‰елflет соот‚етст‚ующий ‡л„оитм обще‰оступно„о ключ‡ (н‡пиме, RSA) и е„о меты. • Уник‡льный и‰ентифик‡то ‚ы‰‡‚ше„о сетифик‡т. Это ‰ополнительное поле поз‚олflет ‰‚ум низ‡циflм, ‚ы‰‡‚шим ключ, иметь о‰но то и же зн‡чение полfl ‚ы‰‡‚ше„о, если уник‡льные и‰ентифик‡тоы ‚ы‰‡‚ше„о ‡зличны. • Уник‡льный и‰ентифик‡то пользтелfl. Это ‰ополнительное поле поз‚олflет ‰‚ум ‡зличным пользтелflм иметь о‰но и то же поле пользтелfl, если уник‡льные и‰ентифик‡тоы пользтелfl ‡зличны. • Дополнительное ‡сшиение фом‡т‡. Это ‰ополнительное поле поз‚олflет ‚ыпуск‡ющим пик뇉ы‚‡ть больше ч‡стной инфом‡ции, ‰ополнflющей сетифик‡т. • По‰пись. Это поле состоит из тех секций. П傇fl секциfl со‰ежит ‚се ‰у„ие полfl ‚ сетифик‡те. Вто‡fl со‰ежит ‰‡й‰жест пе‚ой секции, з‡шифнный с обще‰оступным ключом сетифик‡ционно„о цент‡ (CA). Тетьfl — и‰ентифик‡то ‡л„оитм‡, использнно„о ‰лfl со片ниfl ‚тоой секции. Возобно‚ление сетифик‡т‡ К‡ж‰ое с‚и‰етельст‚о имеет сок ‰ейст‚иfl. Если нет ник‡ких поблем с сетифик‡том, Цент сетифик‡ции ‚ы‰‡ет но‚ый сетифик‡т пеж‰е, чем исте492
Лекциfl 15
Уление ключ‡ми
к‡ет ст‡ый. Этот поцесс по‰обен ‚озобно‚лению ке‰итных к‡точек комп‡нией, ‚ыпуск‡ющей ке‰итные к‡точки; ‰еж‡тель ке‰итки обычно получ‡ет ‚озобно‚ленную к‡точку пеж‰е, чем сок ‰ейст‚иfl ст‡ой истек‡ет. Аннулиние сетифик‡т‡ В некотоых случ‡flх сетифик‡т ‰олжен быть отменен пее‰ тем, к‡к истечет сок е„о ‰ейст‚иfl. Н‡пиме: ‡. Секетный ключ (объект‡) пользтелfl, соот‚етст‚ующий откытому ключу, котоый пеечислен ‚ сетифик‡те, ‚озможно, был скомпометин. б. Цент Сетифик‡ции больше не жел‡ет у‰осто‚еflть пользтелfl. Н‡пиме, с‚и‰етельст‚о пользтелfl к‡с‡етсfl низ‡ции, ‚ котоой он больше не ‡бот‡ет. ‚. Секетный ключ цент‡ сетифик‡ции, котоый может по‚еflть сетифик‡ты, ‚озможно, был скомпометин. В этом случ‡е цент сетифик‡ции ‰олжен отменить ‚се неистекшие сетифик‡ты. Аннулиние поисхо‰ит путем пеио‰ическо„о ‚ыпуск‡ списк‡ ‡ннулинных сетифик‡то‚ (CRL — certificate revocation). Список со‰ежит ‚се отменflемые сетифик‡ты, сок котоых не истек ‚ ‰ень ‚ыпуск‡ CRL. К‡ пользтель хочет использть сетифик‡т, он сн‡ч‡л‡ ‰олжен по‚еить к‡т‡ло„ соот‚етст‚ующе„о сетифик‡ционно„о Цент‡, посмоте‚ после‰ний список ‡ннулиниfl сетифик‡то‚. Рисунок 15.18 пок‡зы‚‡ет список ‡ннулиниfl сетифик‡то‚. Список ‡ннулиниfl сетифик‡то‚ имеет сле‰ующие полfl. • Ал„оитм по‰писи ID. Это поле то же с‡мое, к‡к и ‚ сетифик‡те, • ͇炇ние ‚ы‰‡‚ше„о сетифик‡т. Это поле то же с‡мое, к‡к и ‚ сетифик‡те. Д‡т‡ мо‰ифик‡ции. Это поле опе‰елflет, к‡ список был ‚ыпущен. • Д‡т‡ после‰не„о обно‚лениfl. Это поле опе‰елflет сле‰ующую ‰‡ту, к‡ бу‰ет ‚ыпущен но‚ый список.
Рис.15.18. Фом‡т ‡ннулиниfl сетифик‡т‡ X.509 493
Кус
Киптфиfl и безоп‡сность сетей
• Аннулинный сетифик‡т. Это по‚тоflемый список ‚сех ‡ннулинных сетифик‡то‚, у котоых не истек сок. К‡ж‰ый список со‰ежит ‰‚е ч‡сти: пользтельский сеийный номе сетифик‡т‡ и ‰‡ту ‡ннулиниfl. • По‰пись. Это поле т‡кое же, к‡к и ‚ списке сетифик‡то‚. Аннулиние с помощью ‰ельт‡-списк‡ Чтобы с‰ел‡ть ‡ннулиние более эффекти‚ным, был пе‰ложен ‰ельт‡список ‡ннулиниfl сетифик‡т‡ (‰ельт‡-список CRL — certification list). Дельт‡-CRL со片етсfl и ‡змещ‡етсfl ‚ ‰иектоии, если есть изменениfl ‚ пеио‰, котоый н‡чин‡етсfl с ‰‡ты после‰не„о обно‚лениfl сетифик‡т‡ ‰о сле‰ующей мо‰ифик‡ции, — н‡пиме, если CRL ‚ы‡б‡ты‚‡ютсfl к‡ж‰ый месflц, но есть ‡ннулиниfl меж‰у этим ‰‡т‡ми. Цент сетифик‡ции может со片ть ‰ельт‡-список CRL, к‡ есть изменение ‚ течение месflц‡. О‰н‡ко ‰ельт‡-CRL со‰ежит только изменениfl, с‰ел‡нные после после‰не„о CRL.
Инф‡стукту‡ откытых ключей (PKI) Инф‡стукту‡ откытых ключей (PKI — Public Key Infrastructures) — мо‰ель ‰лfl со片ниfl, ‡спе‰елениfl и ‡ннулиниfl сетифик‡то‚, осннн‡fl н‡ екоме퉇ции X.509. Гупп‡ инжененой пежки сети Интенет (IETF — Internet Engineering Task Force) соз‰‡л‡ Инф‡стуктуу обще‰оступно„о ключ‡ X.509 (TKIX). Режимы ‡боты Длfl PKI были опе‰елены несколько ежимо‚ ‡боты. С‡мые ‚‡жные из них пок‡з‡ны н‡ ис. 15.19. • Выпуск, ‚озобно‚ление и ‡ннулиние сетифик‡то‚. Эти ежимы ‡боты были опе‰елены ‚ X.509. Поскольку PKIX б‡зиуетсfl н‡ X.509, он ‰олжен об‡бот‡ть ‚се ежимы ‡боты, имеющие отношение к сетифик‡т‡м. • Х‡нение и мо‰ифик‡циfl ключей. PKI ‰олжен быть местом х‡нениfl секетных ключей ‰лfl тех уч‡стнико‚, у котоых есть необхо‰имость ‰еж‡ть с‚ои секетные ключи „‰е-нибу‰ь ‚ сейфе. В ‰ополнение к этому PKI несет от‚етст‚енность з‡ обно‚ление этих ключей по з‡посу уч‡стнико‚.
Рис. 15.19. Некотоые ежимы PKI 494
Лекциfl 15
Уление ключ‡ми
• Обеспечение услу„ ‰у„им потокол‡м. К‡к мы у‚и‰им ‚ сле‰ующих немно„их лекциflх, некотоые потоколы безоп‡сности Internet, т‡кие, к‡к IPSec и TLS, б‡зиуютсfl н‡ услу„‡х PKI. • Обеспечение улениfl ‰оступом. PKI может обеспечить ‡зличные уо‚ни ‰оступ‡ к инфом‡ции, сох‡ненной ‚ ее б‡зе ‰‡нных. Н‡пиме, низ‡циfl PKI может обеспечить ‰оступ к полной б‡зе ‰‡нных ‰лfl ‚ысше„о исполнительно„о уко‚о‰ст‚‡, но ниченный ‰оступ — ‰лfl служ‡щих. Мо‰ель ‰о‚еиfl Не‚озможно иметь только о‰ин цент сетифик‡ции, ‚ыпуск‡ющий ‚се сетифик‡ты ‰лfl ‚сех пользтелей ‚ мие. Должно быть мно„о центо‚ сетифик‡ции (CA), к‡ж‰ый — от‚етст‚енный з‡ со片ние, сох‡нение, и片ние и ‡ннулиние ниченно„о числ‡ сетифик‡то‚. Мо‰ель ‰о‚еиfl (Trust Model) опе‰елflет ил‡, котоые „о‚оflт, к‡к пользтель может по‚еить сетифик‡т, полученный от Цент‡ Сетифик‡ции (CA). Ие‡хическ‡fl мо‰ель. У этой мо‰ели — стукту‡ тип‡ ‰е傇 с конем CA. Коень CA имеет сетифик‡т, по‰пис‡нный и ‚ыпущенный им с‡мим. Ду„им CA и пользтелflм ‰лfl то„о, чтобы ‡бот‡ть, необхо‰имо ‰о‚еflть ему. Рисунок 15.20 пок‡зы‚‡ет мо‰ель ‰о‚еиfl т‡ко„о ‚и‰‡ с темfl ие‡хическими уо‚нflми. В е‡льной ситу‡ции число уо‚ней может быть больше, чем ти.
Рис. 15.20. Ие‡хическ‡fl мо‰ель PKI Рисунок пок‡зы‚‡ет, что CA (коень) по‰писы‚‡ет сетифик‡ты ‰лfl CA1, CA2 с CA3; CA1 по‰писы‚‡ют сетифик‡ты ‰лfl Польз.1, Польз. 2, Польз. 3 и т‡к ‰‡лее. PKI использует особую систему обозн‡чений, кото‡fl озн‡ч‡ет: сетифик‡т ‚ы‰‡н ‡‰минист‡цией X ‰лfl объект‡ Y. X<> Пиме 15.3 Пок‡з‡ть, к‡к Польз. 1, зн‡fl только обще‰оступный ключ CA (коень), может получить ‚еифицинную копию обще‰оступно„о ключ‡ Польз. 3. 495
Кус
Киптфиfl и безоп‡сность сетей
Решение Пользтель 3 пе則ет сетифик‡т по цепочке CA «CA1» и CA1 «Польз. 3», к Польз. 3. ‡. Польз.1 по‰т‚е扇ет CA «CA1», используfl обще‰оступный ключ CA. б. Польз.1 из‚лек‡ет обще‰оступный ключ CA1 от CA «CA1». ‚. Польз.1 по‰т‚е扇ет CA«Польз. 3», используfl обще‰оступный ключ CA1. „. Польз.1из‚лек‡ет обще‰оступный ключ Польз. 3 из CA «Польз. 3». Пиме 15.4 Некотоые Web-б‡узеы, т‡кие, к‡к Netscape и Internet Explorer, со‰еж‡т множест‚о сетифик‡то‚, полученных от не燂исимых Центо‚ сетифик‡ции (коней) без е‰инст‚енно„о конfl ‚ысоко„о уо‚нfl ‡‰минист‡ции, котоый мо„ бы сетифицить к‡ж‰ый коень. Можно н‡йти список этих коней ‚ Internet Explorer по сле‰ующему м‡шуту: Инстумент‡льные се‰ст‚‡ / Опции Интенет‡ / Со‰еж‡ние, Сетифик‡т / Коень ‰о‚еиfl (используfl «‡скы‚‡ющиесfl стоки»). Пользтель т‡ может ‚ыб‡ть любой коень и озн‡комитьсfl с е„о сетифик‡том. Мо‰ель «к‡ж‰ый с к‡ж‰ым». Ие‡хическ‡fl мо‰ель может ‡бот‡ть ‰лfl низ‡ции или м‡ленькой „уппы лю‰ей. Большие „уппы, ‚озможно, ну扇ютсfl ‚ нескольких ие‡хических стукту‡х, сое‰иненных ‚месте. О‰ин из мето‰о‚ состоит ‚ том, чтобы использть мо‰ель «к‡ж‰ый с к‡ж‰ым» ‰лfl сое‰инениfl коней ‚месте. В этой мо‰ели к‡ж‰ый коень с‚flз‡н с к‡ж‰ым ‰у„им конем, к‡к это пок‡з‡но н‡ ис. 15.21. Рисунок 15.21 пок‡зы‚‡ет, что стукту‡ «к‡ж‰ый с к‡ж‰ым» сое‰инflет ‚месте только кони; к‡ж‰ый коень имеет с‚ою собст‚енную ие‡хическую стуктуу, изоб‡женную теу„ольником. Сетифик‡циfl меж‰у конflми — пеекестные сетифик‡ты; к‡ж‰ый коень сетифициует ‚се ‰у„ие кони, что озн‡ч‡ет, что есть N (N – 1) сетифик‡то‚. Н‡ ис. 15.21 — 4 узл‡, т‡к что 퇉о 4 × 3 = 12 у‰осто‚еений. Об‡тите ‚ним‡ние, что к‡ж‰‡fl линиfl имеет ‰‚ойную стелку и пе‰ст‡‚лflет ‰‚‡ сетифик‡т‡. Пиме 15.5 Алис‡ имеет ‰ело с ‡‰минист‡цией Root 1; Боб имеет ‰ело с ‡‰минист‡цией Root 4. Пок‡з‡ть, к‡к Алис‡ может получить ‚еифицинный обще‰оступный ключ Боб‡. Решение Боб пе則ет цепочку сетифик‡то‚ от Root 4 к Бобу. Алис‡ смотит к‡т‡ло„ Root 1, чтобы н‡йти Root 1 сетифик‡ты «Root l» и Root 1 «Root 4» . Используfl поцесс, пок‡з‡нный н‡ ис. 15.21, Алис‡ может ‚еифицить обще‰оступный ключ Боб‡. Сеть ‰о‚еиfl. Эт‡ мо‰ель, кото‡fl используетсfl ‚ PGP (Pretty Good Privacy — очень хоош‡fl конфи‰енци‡льность), службе безоп‡сности ‰лfl электонной почты, ‡ссм‡т肇етсfl ‚ лекции 16. 496
Лекциfl 15
Уление ключ‡ми
Рис. 15.21. Мо‰ель «к‡ж‰ый с к‡ж‰ым»
15.5. Рекомен‰о‚‡нн‡fl лите‡ту‡ Длfl более ‰ет‡льно„о изучениfl положений, обсуж‰енных ‚ этой лекции, мы екомен‰уем нижесле‰ующие кни„и и с‡йты. Пункты, ук‡з‡нные ‚ скобк‡х, пок‡з‡ны ‚ списке ссылок ‚ конце кни„и.
Кни„и Уление симметичными и ‡симметичными ключ‡ми ‡ссм‡т肇етсfl ‚ [Sti06], [KPS02], [Sta06], [Rhe03] и [PHS03].
С‡йты Нижесле‰ующие с‡йты ‰‡ют больше инфом‡ции о тем‡х, обсуж‰енных ‚ этой лекции. http://en.wikipedia.org/wiki/Needham-Schroeder http://en.wikipedia.org/wiki/Otway-Rees http://en.wikipedia.org/wiki/Kerbero s_%28protocol%29 en.wikipedia.org/wiki/Diffie-Hellman www.ietf.org/rfc/rfc2631.txt
15.6. Ито„и • Длfl ‡боты ‚ киптфии с симметичными ключ‡ми необхо‰имы ‰‚‡ обще‰оступных ключ‡ з‡секеч肇ниfl (по о‰ному к‡ж‰ой стооне). Если N лю‰ей с‚flз‡лись ‰у„ с ‰у„ом, необхо‰имы N (N – 1)/2 ключей. Число ключей — не е‰инст‚енн‡fl поблем‡; ‰у„‡fl поблем‡ — это ‡спе‰еление ключей. 497
Кус
Киптфиfl и безоп‡сность сетей
• П‡ктическое ешение ‡спе‰елениfl ключей — использние тетье„о лиц‡, котоому ‰о‚еflют, н‡зы‚‡емо„о Центом ‡спе‰елениfl ключей (KDC). KDC может со片ть ключ се‡нс‡ (‚еменный) меж‰у Алисой и Бобом, используfl их ключи с‚flзи с центом. Ключи Алисы и Боб‡ пименflютсfl, чтобы по‰т‚е‰ить центу по‰линность Алисы и Боб‡. • Были пе‰ложены несколько ‡зличных по‰хо‰о‚ ‰лfl со片ниfl ключей се‡нс‡, котоые используют и‰еи, ‡ссмотенные ‚ лекции 14 ‰лfl уст‡но‚лениfl по‰линности объект‡. Д‚‡ из с‡мых изflщных — Потокол Нии‰ом‡Шfi‰е‡, котоый fl‚лflетсfl осно‚ой ‰лfl мно„их ‰у„их потоколо‚, и Потокол От‚еfl-Рисс‡. • Цебе fl‚лflетсfl и опоз퇂‡тельным потоколом, и KDC. Несколько систем, ‚ключ‡fl Windows 2000, используют Цебе. В потоколе Цебе уч‡ст‚уют ти се‚е‡: опоз퇂‡тельный се‚е (AS), се‚е, пе‰ост‡‚лflющий билет (TGS), и е‡льный се‚е ‰‡нных. • Алис‡ и Боб мо„ут со片ть ключ се‡нс‡ меж‰у собой, не используfl KDC. Этот мето‰ со片ниfl ключ‡ се‡нс‡ н‡зы‚‡етсfl со„л‡шением с симметичным ключом. Мы ‡ссмотели ‰‚‡ мет: Диффи-Хеллм‡н‡ и «от ст‡нции к ст‡нции». Пе‚ый чу‚ст‚ителен к ‡т‡ке «посе‰ниꇻ; ‚тоой — нет. • Откытые ключи, по‰обно секетным ключ‡м, ‰олжны быть ‡спе‰елены ‰лfl использниfl. А‰минист‡циfl по сетифик‡ции (CA) обеспеч肇ет сетифик‡т‡ми к‡к ‰ок‡з‡тельст‚ом собст‚енности обще‰оступно„о ключ‡. X.509 — екоме퉇циfl, кото‡fl опе‰елflет стуктуу сетифик‡т‡. • Инф‡стукту‡ откыто„о ключ‡ (PKI) — мо‰ель ‰лfl со片ниfl, ‡спе‰елениfl и ‡ннулиниfl у‰осто‚еений, осннных н‡ екоме퉇ции X.509. Гупп‡ Инжененой Пежки Интенет (IETF) соз‰‡л‡ Инф‡стуктуу Откыто„о ключ‡ X.509 (PKIX). Режимы ‡боты PKI ‚ключ‡ют и片ние сетифик‡то‚, х‡нение секетно„о ключ‡, услу„и ‚ соот‚етст‚ии с ‰у„ими потокол‡м и уление ‰оступом. • PKI т‡кже опе‰елflет мо‰ели ‰о‚еиfl, отношениfl меж‰у ‡‰минист‡циflми, ‚ы‰‡ющими сетифик‡ты. Ти мо‰ели ‰о‚еиfl, ‡ссмотенные ‚ этой лекции, fl‚лflютсfl ие‡хическими, «к‡ж‰ый с к‡ж‰ым» и сетью ‰о‚еиfl.
15.7. Н‡бо ‰лfl п‡ктики Обзоные ‚опосы 1. Пеечислите ежимы ‡боты KDC. 2. Д‡йте опе‰еление ключ‡ се‡нс‡ и пок‡жите, к‡к KDC может со片ть ключ се‡нс‡ меж‰у Алисой и Бобом. 3. Д‡йте опе‰еление потокол‡ Цебе и н‡зо‚ите е„о се‚еы. К‡тко объflсните ежимы ‡боты к‡ж‰о„о се‚е‡. 4. Д‡йте опе‰еление потокол‡ Диффи-Хеллм‡н‡ и е„о цель. 5. Д‡йте опе‰еление ‡т‡ки «посе‰ниꇻ. 6. Д‡йте опе‰еление потокол‡ «от ст‡нции к ст‡нции» и объflсните е„о цель. 7. Д‡йте опе‰еление цент‡ сетифик‡ции (CA) и ‡сск‡жите о е„о отношении к киптфии обще‰оступно„о ключ‡. 498
Лекциfl 15
Уление ключ‡ми
8. Д‡йте опе‰еление екоме퉇ции X.509 и ‡зъflсните ее цель. 9. Пеечислите ежимы ‡боты PKI. 10. Д‡йте опе‰еление мо‰ели ‰о‚еиfl и ‡ссмотите некотоые ‚‡и‡нты этой мо‰ели, котоые обсу扇лись ‚ этой лекции.
Уп‡жнениfl 11. Н‡ ис. 15.4: что случитсfl, если билет ‰лfl Боб‡ бу‰ет з‡шифн не н‡ ш‡„е 2 с ключом KB, но з‡шифо‚‡н ‚место это„о KAB н‡ ш‡„е 3? 12. Почему нужны четые nonce ‚ потоколе Нии‰ом‡-Шfi‰е‡? 13. К‡к KDC ‚ потоколе Нии‰ом‡-Шfi‰е‡ ‡утентифициует (у‰осто‚еflет) Алису? К‡к KDC ‡утентифициует (у‰осто‚еflет) Боб‡? К‡к Алис‡ ‡утентифициует (у‰осто‚еflет) Боб‡? К‡к Боб ‡утентифициует (у‰осто‚еflет) Алису? 14. Объflсните, почему ‚ потоколе Нии‰ом‡-Шfi‰е‡ Алис‡ — стоон‡, кото‡fl н‡хо‰итсfl ‚ конт‡кте с KDC, ‡ ‚ потоколе От‚еfl-Рисс‡ Боб — стоон‡, кото‡fl н‡хо‰итсfl ‚ конт‡кте с KDC. 15. В потоколе Нии‰ом‡-Шfi‰е‡ есть четые (RA, RB, R 1и R 2), ‡ ‚ потоколе От‚еfl-Рисс‡ — только ти nonce (RA, RB и R). Объflсните, почему есть потебность ‚ о‰ном ‰ополнительном once R2 ‚ пе‚ом потоколе. 16. Почему мы ну扇емсfl только ‚ о‰ной метке ‚емени ‚ потоколе Цебе ‚место четыех nonce, к‡к ‚ потоколе Нии‰ом‡-Шfi‰е‡, или тех once, к‡к ‚ потоколе От‚еfl-Рисс‡? 17. В потоколе Диффи-Хеллм‡н‡ g = 7, p = 23, x = 3, и y = 5. ‡. К‡кое зн‡чение имеет симметичный ключ? б. К‡кие зн‡чениfl имеют R 1 и R 2? 18. Что случитсfl ‚ потоколе Диффи-Хеллм‡н‡, если x и y имеют о‰но и то же зн‡чение, то есть Алис‡ и Боб случ‡йно ‚ыб‡ли о‰но и то же число? R 1и R2 те же с‡мые? Ключи се‡нс‡, ‚ычисленные Алисой и Бобом, имеют о‰но и то же зн‡чение? Пи‚е‰ите пиме, чтобы ‰ок‡з‡ть ‚‡ши ‚ы‚о‰ы. 19. Пи ти‚и‡льной (не „‡‡нтиующей безоп‡сность) смене ключ‡ Диффи-Хеллм‡н‡ p = 53. Н‡й‰ите соот‚етст‚ующее зн‡чение ‰лfl g. 20. В потоколе «от ст‡нции к ст‡нции» пок‡жите, что если опоз퇂‡тельный ко‰ пиемник‡ у‰‡лен из по‰писи, потокол ст‡но‚итсfl уflз‚имым к ‡т‡ке «посе‰ниꇻ. 21. Обсу‰ите з‡служ肇ющий ‰о‚еиfl коень сетифик‡ции, пименflющий б‡узеы.
499
Кус
Киптфиfl и безоп‡сность сетей
Ч‡сть 4. Безоп‡сность сети Чет‚ет‡fl ч‡сть этой кни„и сосе‰оточен‡ н‡ пе‰мете, котоый fl‚лflетсfl оконч‡тельной целью н‡шей кни„и: использние киптфии ‰лfl со片ниfl безоп‡сных сетей. Эт‡ ч‡сть пе‰по뇄‡ет, что чит‡тель имеет пе‰ст‡‚ление об ‡хитектуе сети Internet и н‡бое потоколо‚ TCP/IP. Длfl некотоо„о ‚‚е‰ениfl ‚ пе‰мет можно использть пиложение C к‡к к‡ткий обзо. В списке лите‡туы ‰лfl ‰‡льнейше„о изучениfl чит‡телflм ук‡з‡н‡ кн脇 [For06]. ʇ扇fl лекциfl ‚ этой ч‡сти пос‚flщен‡ обсуж‰ению безоп‡сности н‡ о‰ном из тех уо‚ней н‡бо‡ потоколо‚ TCP/IP: пик뇉ном, т‡нспотным и сете‚ом уо‚не. Лекциfl 16 обсу扇ет безоп‡сность н‡ пик뇉ном уо‚не, лекциfl 17 — н‡ т‡нспотном уо‚не и лекциfl 18 — н‡ сете‚ом уо‚не. Лекциfl 16: Безоп‡сность н‡ пик뇉ном уо‚не — PGP и S/MIME Лекциfl 16 обсу扇ет ‰‚‡ потокол‡, котоые обеспеч肇ют безоп‡сность ‰лfl электонной почты (e-mail). Очень хоошую конфи‰енци‡льность ‰‡ет PGP (Pretty Good Privacy) — потокол, котоый обычно используетсfl ‰лfl песон‡льной почто‚ой ст‡нции. Безоп‡сное/Мно„оцеле‚ое ‡сшиение почты (S / MIME Secure / Multipurpose Internet Mail Extension) — потокол, котоый обычно пименflетсfl ‚ коммеческих почто‚ых систем‡х. Лекциfl 17: Безоп‡сность н‡ т‡нспотном уо‚не — SSL и TSL Лекциfl 17 сн‡ч‡л‡ ‰ок‡зы‚‡ет потебность ‚ служб‡х безоп‡сности н‡ т‡нспотном уо‚не мо‰ели Internet. З‡тем пок‡зы‚‡ет, к‡к может быть обеспечен‡ безоп‡сность н‡ т‡нспотном уо‚не, используfl о‰ин из ‰‚ух потоколо‚: потокол уо‚нfl безоп‡сных ‡зъемо‚ (SSL — Secure Socket Layer) и потокол безоп‡сности т‡нспотно„о уо‚нfl (TLS — Transport Layer Security). Втоой потокол — нfl ‚есиfl пе‚о„о. Лекциfl 18: Безоп‡сность н‡ сете‚ом уо‚не — IPSec Лекциfl пос‚flщен‡ е‰инст‚енному общему потоколу безоп‡сности н‡ сете‚ом уо‚не: потоколу безоп‡сно„о туннелиниfl IP-п‡кето‚ (IPSec — IP Security protocol). Лекциfl опе‰елflет ‡хитектуу IPSec и обсу扇ет пиложение IPSec ‚ т‡нспотных и туннельных ежим‡х. Лекциfl т‡кже обсу扇ет ‰у„ие ‚спомтельные потоколы, н‡пиме, Интенет-потокол шифниfl и и‰ентифик‡ции (IKE — Internet Key Exchange), котоый используетсfl IPSec, опе‰елflет ст‡нцию ключ‡ Internet, и объflснflет, к‡к это пименflетсfl IPSec.
500
Лекциfl 16
Безоп‡сность н‡ пик뇉ном уо‚не: PGP И S/MIME
Лекциfl 16. Безоп‡сность н‡ пик뇉ном уо‚не: PGP И S/MIME Цели и со‰еж‡ние Эт‡ лекциfl имеет несколько целей. • Объflснить общую стуктуу почто‚ой пик뇉ной пммы. • Обсу‰ить, к‡к PGP может обеспечить службы безоп‡сности ‰лfl электонной почты. • Обсу‰ить, к‡к S/MIME может обеспечить службы безоп‡сности ‰лfl электонной почты. • Опе‰елить мех‡низм ‰о‚еиfl ‚ PGP и ‚ S/MIME. • Пок‡з‡ть стуктуу обмен‡ сообщениflми ‚ PGP и S/MIME. Мы обсу‰им ‰‚‡ потокол‡ службы обеспечениfl безоп‡сности ‰лfl электонных почт: Очень хоош‡fl конфи‰енци‡льность (PGP) и Безоп‡сное/Мно„оцеле‚ое ‡сшиение почты (S/MIME). Поним‡ние к‡ж‰о„о из этих потоколо‚ тебует обще„о поним‡ниfl почто‚ой системы. Сн‡ч‡л‡ мы по„о‚оим о стуктуе электонной почты. З‡тем пок‡жем, к‡к PGP и S/MIME мо„ут ‰ополнить службы безоп‡сности этой стуктуы. Особое ‚ним‡ние у‰елflетсfl тому, к‡к PGP и S/MIME мо„ут менflть киптфические ‡л„оитмы, ключи з‡секеч肇ниfl и сетифик‡ты, не уст‡н‡‚л肇fl се‡нс меж‰у Алисой и Бобом.
16.1. Электонн‡fl почт‡ Сн‡ч‡л‡ обсу‰им электонную почту (e-MAIL) к‡к систему.
Ахитекту‡ E-MAIL Рисунок 16.1 пок‡зы‚‡ет с‡мый общий сцен‡ий пи о‰ностооннем почто‚ом обмене. Пе‰положим, что Алис‡ ‡бот‡ет ‚ низ‡ции, котоую обслуж肇ет почто‚ый се‚е. К‡ж‰ый служ‡щий с‚flз‡н с почто‚ым се‚еом чеез местную сеть с‚flзи (LAN). Или, ‡льтен‡ти‚но, Алис‡ мо„л‡ быть с‚flз‡н‡ с почто‚ым се‚еом пй‰е‡ (ISP — Information Server Provider) чеез е„ион‡льную сеть с‚flзи (телефонн‡fl линиfl или к‡бельн‡fl линиfl). Боб н‡хо‰итсfl т‡кже ‚ о‰ной из ‚ышеупомflнутых ситу‡ций. А‰минист‡то почто‚о„о се‚е‡ н‡ стооне Алисы со片ет систему низ‡ции очее‰и, кото‡fl пе則ет сообщениfl электонной почты ‚ Интенет о‰но з‡ ‰у„им. А‰минист‡то почто‚о„о се‚е‡ н‡ стооне Боб‡ со片ет почто‚ый flщик ‰лfl к‡ж‰о„о пользтелfl, по‰ключенно„о к се‚еу. Почто‚ый flщик ‰ежит полученные сообщениfl, пок‡ они не бу‰ут пинflты получ‡телем. К‡ Алис‡ ‰олжн‡ пе則ть сообщение Бобу, он‡ ‚ызы‚‡ет ‡„ент‡ пользтелfl пммы (UA), чтобы пото‚ить сообщение. Он‡ использует ‰у„ую пмму — почто‚ый ‡„ент (MTA), — чтобы пе則ть сообщение се‚еу почты н‡ ее стооне. Об‡тите ‚ним‡ние, что MTA — пмм‡ «клиент-се‚е» с клиентом, котоый, уст‡но‚лен ‚ компьютее Алисы и н‡ се‚ее, котоый уст‡но‚лен н‡ се‚ее почты. 501
Кус
Киптфиfl и безоп‡сность сетей
Рис. 16.1. Ахитекту‡ е-MAIL Сообщение, полученное н‡ се‚ее почты н‡ стооне Алисы, пост‡‚лено ‚ очее‰ь со ‚семи ‰у„ими сообщениflми; очее‰ь со片етсfl ‰лfl к‡ж‰о„о н‡п‡‚лениfl ‚ соот‚етст‚ующий пункт н‡зн‡чениfl. В случ‡е Алисы ее сообщение поступ‡ет н‡ се‚е почты Боб‡. Клиент-се‚е MTA от‚еч‡ет з‡ почто‚ую пе則чу меж‰у этими ‰‚умfl се‚е‡ми. К‡ сообщение ‰ост脇ет се‚е‡ почты пункт‡ н‡зн‡чениfl, оно по‡ет ‚ почто‚ый flщик Боб‡ ‚ ‚и‰е специ‡льно„о ф‡йл‡, котоый сох‡нflет сообщение, пок‡ оно не бу‰ет из‚лечено Бобом. К‡ Боб ‰олжен из‚лечь с‚ои сообщениfl (ф‡йл), ‚ключ‡fl сообщение, пе則‚‡емое Алисой, он ‚ызы‚‡ет ‰у„ую пмму, котоую мы н‡зы‚‡ем ‡„ентом ‰оступ‡ к сообщению (MAA — Massage Access Agent). MАА т‡кже ‡з‡бот‡н к‡к пмм‡ «клиент-се‚е», уст‡но‚ленн‡fl и ‚ компьютее Боб‡, и н‡ се‚ее почты. Есть несколько ‚‡жных положений об ‡хитектуе почто‚ой системы. ‡. Пе則‚‡ем‡fl электонн‡fl почт‡ от Алисы к Бобу н‡к‡пл肇етсfl ‚ п‡мflти. Алис‡ может пе則ть электонную почту се„о‰нfl; Боб, бу‰учи з‡нflтым, может по‚еить с‚ою электонную почту ти ‰нfl спустfl. Всfi это ‚емfl электонн‡fl почт‡ сох‡нflетсfl ‚ почто‚ом flщике Боб‡, пок‡ он не ‚озьмет ее. б. Г뇂н‡fl с‚flзь меж‰у Алисой и Бобом похо‰ит ‰‚е пик뇉ных пммы: MTA-клиент‡ ‚ компьютее Алисы и MAA-клиент‡ ‚ компьютее Боб‡. ‚. MTA-пмм‡ клиент‡ — пиним‡ющ‡fl пмм‡; клиент помещ‡ет сообщение, к‡ Алис‡ ‰олжн‡ е„о пе則ть. Пмм‡ клиент‡ MАА — ‚ы‰‡ющ‡fl пмм‡; клиент пеемещ‡ет сообщение, к‡ Боб „ото‚ из‚лечь с‚ою электонную почту. 502
Лекциfl 16
Безоп‡сность н‡ пик뇉ном уо‚не: PGP И S/MIME
„. Алис‡ и Боб не мо„ут непосе‰ст‚енно ‚ ‰‡нный момент с‚flз‡ть MTAклиент‡, используемо„о н‡ стооне пе則тчик‡, и MTA-се‚е, используемый н‡ стооне пиемник‡. Поэтому тебуетсfl, чтобы MTA-се‚е функционио‚‡л ‚се ‚емfl, потому что Боб не зн‡ет, к‡ сообщение пибу‰ет. Это п‡ктически не‚озможно, потому что Боб, ‚еоflтно, ‚ыключ‡ет с‚ой компьюте, к‡ не ну扇етсfl ‚ нем.
Почтfl безоп‡сность Пе則ч‡ электонной почты — о‰но‡зfl ‡кти‚ность. Х‡‡кте этой ‡кти‚ности отлич‡етсfl от тех, котоые мы у‚и‰им ‚ сле‰ующих ‰‚ух лекциflх. В IPSec или SSL мы пе‰по뇄‡ем, что ‰‚е стооны со片ют се‡нс меж‰у собой и обмен肇ютсfl ‰‡нными ‚ обоих н‡п‡‚лениflх. В электонной почте нет ник‡ко„о се‡нс‡. Алис‡ и Боб не мо„ут со片ть се‡нс. Алис‡ пе則ет сообщение Бобу, ‡ к‡-нибу‰ь позже Боб чит‡ет сообщение и, может быть, с‡зу не способен пе則ть от‚ет. Мы бу‰ем ‡ссм‡т肇ть безоп‡сность о‰нон‡п‡‚ленно„о сообщениfl, потому что Алис‡ пе則ет сообщениfl Бобу полностью не燂исимо от то„о, что Боб пе則ет Алисе. Киптфические ‡л„оитмы Если электонн‡fl почт‡ — о‰но‡зо‚ое ‡кти‚ное ‰ейст‚ие, к‡к мо„ут пе則тчик и пиемник ‰о„о‚оитьсfl о киптфическом ‡л„оитме, котоый они бу‰ут использть ‰лfl почто‚ой безоп‡сности? Если нет се‡нс‡ и поце‰уы уст‡но‚лениfl с‚flзи, чтобы ‰о„о‚оитьсfl об ‡л„оитм‡х относительно шифниfl/‰ешифниfl и хэшиниfl, к‡к пиемник может зн‡ть, к‡кой ‡л„оитм ‚ыб‡н пе則тчиком ‰лfl к‡ж‰о„о сообщениfl? Имеетсfl о‰но ешение ‰лfl осно‚но„о потокол‡ — ‚ыби‡ть о‰ин ‡л„оитм из 燉‡нно„о множест‚‡ ‰лfl к‡ж‰ой киптфической опе‡ции и з‡ст‡‚ить Алису использть только эти ‡л„оитмы. Это ешение очень суж‡ет ‚озможности и нич肇ет ‰ейст‚иfl ‰‚ух стоон. Лучшее ешение ‰лfl осно‚но„о потокол‡ — опе‰елить множест‚о ‡л„оитмо‚ ‰лfl к‡ж‰ой опе‡ции, котоые пользтель может пименить ‚ е„о системе. Алис‡ ‚ключ‡ет н‡з‚‡ние (или и‰ентифик‡тоы) ‡л„оитмо‚, котоые он‡ использо‚‡л‡ ‚ электонной почте. Н‡пиме, Алис‡ может ‚ыб‡ть техк‡тный DES ‰лfl шифниfl/‰ешифниfl и MD5 ‰лfl хэшиниfl. К‡ Алис‡ пе則ет сообщение Бобу, он‡ ‚ключ‡ет соот‚етст‚ующие и‰ентифик‡тоы ‰лfl техк‡тно„о DES и MD5 ‚ с‚ое сообщение. Боб получ‡ет сообщение и сн‡ч‡л‡ из‚лек‡ет и‰ентифик‡тоы. Т‡ он зн‡ет, к‡кой ‡л„оитм использть ‰лfl ‰ешифниfl и к‡кой — ‰лfl хэшиниfl. Длfl безоп‡сности почты пе則тчик сообщениfl ‰олжен ‚ключить ‚ не„о н‡з‚‡ние или и‰ентифик‡тоы ‡л„оитмо‚, используемых ‚ сообщении. Киптфическ‡fl секетность Т‡ же с‡м‡fl поблем‡, что и ‰лfl киптфических ‡л„оитмо‚, сущест‚ует и ‰лfl киптфической секетности (ключи). Если нет пее„о‚оо‚, к‡к 503
Кус
Киптфиfl и безоп‡сность сетей
эти ‰‚е стооны мо„ут уст‡но‚ить пинципы секетности меж‰у собой? Алис‡ и Боб мо„ли использть ‡симметично-ключе‚ые ‡л„оитмы ‰лfl уст‡но‚лениfl по‰линности и шифниfl, котоое не тебует уст‡но‚лениfl симметично„о ключ‡. О‰н‡ко, к‡к мы ‚и‰ели, использние ‡симметично-ключе‚ых ‡л„оитмо‚ очень неэффекти‚но ‰лfl шифниfl/‰ешифниfl ‰линно„о сообщениfl. Большинст‚о почто‚ых потоколо‚ безоп‡сности се„о‰нfl тебует, чтобы шифние/‰ешифние было с‰ел‡но с использнием ‡л„оитм‡ с симметичными ключ‡ми и о‰но‡зо‚ым ключом з‡секеч肇ниfl, пе則‚‡емо„о с сообщением. Алис‡ может со片ть ключ з‡секеч肇ниfl и пеесл‡ть е„о с сообщением, котоое он‡ пе則ет Бобу. Чтобы з‡щитить ключ з‡секеч肇ниfl от пеех‚‡т‡ Е‚ой, ключ з‡секеч肇ниfl з‡шифн откытым ключом Боб‡. Ду„ими слми, с‡м ключ з‡секеч肇ниfl з‡шифн. Длfl безоп‡сности почты шифние/‰ешифние ‰ел‡етсfl с использнием симметично„о ключе‚о„о ‡л„оитм‡, но ключ з‡секеч肇ниfl ‰лfl ‡сшифо‚ки сообщениfl з‡шифн откытым ключом пиемник‡ и пе則етсfl с сообщением. Сетифик‡ты Пеж‰е чем мы обсу‰им любой почто‚ый потокол безоп‡сности, нужно ‡ссмотеть ‚ еще о‰ну поблему: некотоые оче‚и‰ные ‡л„оитмы обще‰оступно„о ключ‡, котоые ‰олжны использтьсfl ‰лfl почто‚ой безоп‡сности. Н‡пиме, мы ‰олжны з‡шифть ключ з‡секеч肇ниfl или по‰пис‡ть сообщение. Чтобы з‡шифть ключ з‡секеч肇ниfl, Алис‡ ну扇етсfl ‚ откытом ключе Боб‡; ‰лfl по‰писи и ‚еифик‡ции сообщениfl Боб ну扇етсfl ‚ откытом ключе Алисы. Т‡к что ‰лfl то„о, чтобы посыл‡ть м‡ленькое 燂еенное и конфи‰енци‡льное сообщение, необхо‰имы ‰‚‡ откытых ключ‡. К‡к Алис‡ может быть у‚еен‡ ‚ откытом ключе Боб‡, и к‡к Боб может быть у‚еен ‚ откытом ключе Алисы? К‡ж‰ый почто‚ый потокол безоп‡сности имеет ‡зличные мето‰ы сетифик‡ции ключей.
16.2. PGP Пе‚ый потокол, котоый мы обсу‰им ‚ этой лекции, н‡зы‚‡етсfl Очень хоошей конфи‰енци‡льностью (PGP — Pretty Good Privacy). PGP был изобетен Филом Цимем‡нном (Phil Zimmermann), чтобы обеспечить секетность, целостность и уст‡но‚ление по‰линности электонной почты. PGP может пименflтьсfl, чтобы со片ть безоп‡сное почто‚ое сообщение или 퇉ежно сох‡нить ф‡йл ‰лfl бу‰уще„о из‚лечениfl.
Сцен‡ии Сн‡ч‡л‡ обсу‰им общую и‰ею PGP, п脇flсь от посто„о сцен‡иfl к сложному. Мы используем темин «Д‡нные», чтобы ук‡з‡ть сообщение или ф‡йл ‰лfl об‡ботки. 504
Лекциfl 16
Безоп‡сность н‡ пик뇉ном уо‚не: PGP И S/MIME
Откытый текст С‡мый постой сцен‡ий — это пе則ть почто‚ое сообщение (или н‡копленный ф‡йл) ‚ исхо‰ном тексте, к‡к это пок‡з‡но н‡ ис. 16.2. В этом сцен‡ии нет сох‡нениfl целостности сообщениfl или конфи‰енци‡льности. Алис‡ (пе則тчик) сост‡‚лflет сообщение и пе則ет е„о Бобу (пиемнику). Сообщение сох‡нflетсfl ‚ почто‚ом flщике Боб‡, пок‡ не бу‰ет из‚лечено им.
Рис. 16.2. Сообщение с обычным текстом Целостность сообщениfl Веоflтно, сле‰ующее усо‚ешенст‚ние ‰олжно поз‚олить Алисе по‰писы‚‡ть сообщение. Алис‡ со片ет ‰‡й‰жест сообщениfl и по‰писы‚‡ет е„о с‚оим секетным ключом. К‡ Боб получ‡ет сообщение, он по‚еflет е„о, используfl откытый ключ Алисы. Длfl это„о сцен‡иfl необхо‰имы ‰‚‡ ключ‡. Алис‡ ‰олжн‡ зн‡ть с‚ой секетный ключ; Боб ‰олжен зн‡ть откытый ключ Алисы. Рисунок 16.3 пок‡зы‚‡ет ситу‡цию.
Рис. 16.3. Сообщение с по‰т‚еж‰ением по‰линности пе則тчик‡ Сж‡тие Д‡льнейшее усо‚ешенст‚ние поз‚олflет сж‡ть сообщение и ‰‡й‰жест, чтобы с‰ел‡ть п‡кет более комп‡ктным. Это усо‚ешенст‚ние не имеет ник‡ких пеимущест‚ с точки зениfl безоп‡сности, но сущест‚енно уменьш‡ет т‡фик. Рисунок 16.4 пок‡зы‚‡ет но‚ый сцен‡ий. Конфи‰енци‡льность с о‰но‡зо‚ым ключом се‡нс‡ К‡к мы уже „о‚оили ‡ньше, конфи‰енци‡льность ‚ почто‚ой системе может быть ‰ости„нут‡ з‡ счет пименениfl обычно„о шифниfl о‰но‡зо‚ым ключом се‡нс‡. Алис‡ может со片ть ключ се‡нс‡, использть ключ се‡нс‡ ‰лfl 505
Кус
Киптфиfl и безоп‡сность сетей
Рис. 16.4. Сообщение со сж‡тым текстом шифниfl сообщениfl и ‰‡й‰жест‡ и пе則ть ключ непосе‰ст‚енно с сообщением. О‰н‡ко ‰лfl з‡щиты ключ‡ се‡нс‡ Алис‡ з‡шифо‚‡л‡ е„о откытым ключом Боб‡. Рисунок 16.5 пок‡зы‚‡ет ситу‡цию, к‡ Боб получ‡ет п‡кет, он сн‡ч‡л‡ ‡сшифо‚ы‚‡ет ключ, используfl с‚ой секетный ключ, чтобы из‚лечь этот со‚местный ключ сессии. З‡тем он использует ключ се‡нс‡, чтобы ‡сшифть ост‡льную ч‡сть сообщениfl. После ‡сшиениfl (‰екомпесс‡ции) ост‡льной ч‡сти сообщениfl Боб со片ет ‰‡й‰жест сообщениfl и по‚еflет, ‡‚ен ли он ‰‡й‰жесту, пе則‚‡емому Алисой. Если ‰‡й‰жесты ‡‚ны, то сообщение по‰линно.
Рис. 16.5. Конфи‰енци‡льное сообщение Пеоб‡зние к Ду„‡fl услу„‡, пе‰ост‡‚лflем‡fl PGP, — пеоб‡зние к. Большинст‚о почто‚ых систем поз‚олflет пе則ть сообщение, состоflщее только из сим‚оло‚ ASCII. Чтобы пее‚ести сим‚олы, не ‚хо‰flщие ‚ множест‚о ASCII, PGP использу506
Лекциfl 16
Безоп‡сность н‡ пик뇉ном уо‚не: PGP И S/MIME
ет пеоб‡зние Radix-64. К‡ж‰ый посыл‡емый сим‚ол (после то„о к‡к бу‰ет з‡шифн) пеоб‡зуетсfl ‚ ко‰ Radix-64, котоый мы обсу‰им позже ‚ этой лекции. Се„мент‡циfl PGP ‡зеш‡ет се„мент‡цию сообщениfl после то„о, к‡к оно было пеоб‡зно к Radix-64, чтобы с‰ел‡ть к‡ж‰ый пе則нный мо‰уль о‰ин‡ко‚ым по ‡змеу, ‚ соот‚етст‚ии с осно‚ным почто‚ым потоколом.
Кольц‡ ключей Во ‚сех пе‰ы‰ущих сцен‡иflх мы пе‰по뇄‡ли, что Алис‡ ‰олжн‡ пе則ть сообщение только Бобу. Но это не е‰инст‚енный ‚‡и‡нт пе則чи. Возможно, Алис‡ ‰олжн‡ пе則ть сообщениfl мно„им лю‰flм; ей нужны кольц‡ ключей. В этом случ‡е Алис‡ ну扇етсfl ‚ кольце откытых ключей, ‚ключ‡ющем ключ(и), пи퇉леж‡щий к‡ж‰ому чело‚еку, котоому Алис‡ ‰олжн‡ пе則ть или от котоо„о может получить сообщение. PGP-‡з‡ботчики опе‰елили кольцо ч‡стных/откытых ключей. Алис‡ может иметь пичины ‚емfl от ‚емени изменить п‡у ключей. Ду„ой случ‡й: Алис‡, ‚озможно, жел‡ет, чтобы ее ключи соот‚етст‚ли ‡зличным „упп‡м лю‰ей (‰узьfl, колле„и и т‡к ‰‡лее). Поэтому к‡ж‰ый пользтель ‰олжен иметь ‰‚‡ множест‚‡ колец: кольцо ч‡стных/откытых ключей и кольц‡ откытых ключей ‰у„их лю‰ей. Рисунок 16.6 пок‡зы‚‡ет сообщест‚о четыех чело‚ек, „‰е к‡ж‰ый имеет кольцо п‡ы ч‡стных/откытых ключей и, ‚ то же с‡мое ‚емfl, изоб‡жены кольц‡ откытых ключей, пи퇉леж‡щих ‰у„им лю‰flм ‚ этом сообщест‚е. Алис‡, н‡пиме, имеет несколько п‡ ч‡стных/откытых ключей, пи퇉леж‡щих ей, и откытые ключи, пи퇉леж‡щие ‰у„им лю‰flм. Об‡тите ‚ним‡ние, что к‡ж‰ый может иметь больше чем о‰ин откытый ключ. Мо„ут ‚озникнуть ‰‚‡ случ‡fl. 1. Алис‡ ‰олжн‡ пе則ть сообщение ‰у„ому чело‚еку ‚ сообщест‚е. ‡. Он‡ использует с‚ой секетный ключ, чтобы по‰пис‡ть ‰‡й‰жест. б. Он‡ использует откытый ключ пиемник‡, чтобы з‡шифть н則‚но со片нный ключ се‡нс‡. ‚. Он‡ шифует сообщение и по‰пис‡нный ‰‡й‰жест с со片нным ключом се‡нс‡. 2. Алис‡ получ‡ет сообщение от ‰у„о„о чело‚ек‡, состоflще„о ‚ этом сообщест‚е. ‡. Он‡ использует с‚ой секетный ключ, чтобы ‡сшифть ключ се‡нс‡. б. Он‡ использует с‚ой ключ се‡нс‡, чтобы ‡сшифть сообщение и ‰‡й‰жест. ‚. Он‡ использует с‚ой откытый ключ, чтобы по‚еить ‰‡й‰жест. PGP-‡л„оитмы В PGP используютсfl нижесле‰ующие ‡л„оитмы. Ал„оитмы откыто„о ключ‡. Ал„оитмы откыто„о ключ‡, котоые пименflютсfl, чтобы по‰пис‡ть ‰‡й‰жесты или з‡шифть сообщениfl, пеечислены ‚ т‡блице 16.1. 507
Кус
Киптфиfl и безоп‡сность сетей
Рис. 16.6. Кольц‡ ключей ‚ PGP Т‡блиц‡ 16.1. Ал„оитмы откыто„о ключ‡ ID 1 2 3 16 17 18 19 20 21 100-110
Опис‡ние RSA (‰лfl шифниfl и по‰писи) RSA (только ‰лfl шифниfl) RSA (только ‰лfl по‰писи) Эль-Г‡м‡ль (только ‰лfl шифниfl) DSS З‡езе‚ино ‰лfl эллиптической ки‚ой З‡езе‚ино ‰лfl ECDSA Эль-Г‡м‡ль (‰лfl шифниfl и по‰писи) З‡езе‚ино ‰лfl Диффи-Хеллм‡н‡ Секетные ‡л„оитмы
Ал„оитмы симметично„о ключ‡. Ал„оитмы симметично„о ключ‡, котоые используютсfl ‰лfl у‰обно„о шифниfl, пок‡з‡ны ‚ т‡блице 16.2. Т‡блиц‡ 16.2. Ал„оитмы с симметичными ключ‡ми ID 0 1 2 3 4 5 6 7 8 9 100-110
Опис‡ние Не з‡шифно IDEA Тойной DES CAST-128 Blowfish SAFER-SK128 З‡езе‚ино ‰лfl DES/SK З‡езе‚ино ‰лfl AES-128 З‡езе‚ино ‰лfl AES-192 З‡езе‚ино ‰лfl AES-256 Ч‡стные ‡л„оитмы 508
Лекциfl 16
Безоп‡сность н‡ пик뇉ном уо‚не: PGP И S/MIME
Хэш-‡л„оитмы. Хэш-‡л„оитмы, котоые используютсfl ‰лfl со片ниfl хэш‡ ‚ PGP, пок‡з‡ны ‚ т‡блице 16.3. Т‡блиц‡ 16.3. Хэш-‡л„оитмы ID 1 2 3 4 5 6 7 100-110
Опис‡ние MD5 SHA-1 RIPE-MD/160 З‡езе‚ино ‰лfl SHA ‰‚ойной шиины MD2 TIGER/192 З‡езе‚ино ‰лfl HAVAL Ч‡стные ‡л„оитмы
Ал„оитмы сж‡тиfl. Ал„оитмы сж‡тиfl, котоые используютсfl ‰лfl сж‡тиfl текст‡, пок‡з‡ны ‚ т‡блице 16.4. Т‡блиц‡ 16.4. Мето‰ы сж‡тиfl ID 0 1 2 100-110
Опис‡ние Без сж‡тиfl ZIP ZLIP Ч‡стные мето‰ы
PGP-сетифик‡ты PGP, по‰обно ‰у„им потокол‡м, к‡к мы ‚и‰ели ‰о сих по ‚ ‰у„их систем‡х, использует сетифик‡ты, чтобы по‰т‚е‰ить по‰линность откытых ключей. О‰н‡ко ‚ этом случ‡е поцесс полностью отлич‡етсfl от уже ‡ссмотенных Сетифик‡ты X.509 Потоколы, котоые пименflют сетифик‡ты X.509, 燂исflт от ие‡хической стуктуы ‰о‚еиfl. Есть 燇нее 燉‡нн‡fl цепочк‡ ‰о‚еиfl от конfl ‰о любо„о сетифик‡т‡. К‡ж‰ый пользтель полностью ‰о‚еflет ‡‰минист‡ции CA н‡ з‡‰‡нном уо‚не конfl. Коень ‚ы‡б‡ты‚‡ет сетифик‡ты ‰лfl ‚тоо„о уо‚нfl, ‚тоой уо‚ень CA ‚ы‡б‡ты‚‡ет сетифик‡ты ‰лfl тетье„о уо‚нfl, и т‡к ‰‡лее. К‡ж‰ый п‡тне, котоый хочет быть ‰о‚еенным ‰лfl ‚ы‰‡чи сетифик‡то‚, ‰олжен быть пе‰ст‡‚лен н‡ о‰ной из ‚ет‚ей ‰е傇 к‡ко„о-либо CA. Если Алис‡ не ‰о‚еflет ‚ыпуск‡ющему сетифик‡т ‰лfl Боб‡, он‡ может об‡титьсfl к ‡‰минист‡ции более ‚ысоко„о уо‚нfl ‚плоть ‰о конfl (котоому необхо‰имо ‰о‚еflть ‰лfl то„о, чтобы систем‡ ‡бот‡л‡). Ду„ими слми, есть о‰ин-е‰инст‚енный путь к сетифик‡ту от CA, котоому полностью ‰о‚еflют. 509
Кус
Киптфиfl и безоп‡сность сетей
В X.509 есть е‰инст‚енный путь от ‡‰минист‡ции, котоому полностью ‰о‚еflют, к любому сетифик‡ту. PGP-сетифик‡ты В PGP нет ник‡кой потебности ‚ CA — любой ‚ кольце может по‰пис‡ть сетифик‡т ‰лfl ко„о-либо ‰у„о„о ‚ кольце. Боб может по‰пис‡ть сетифик‡т ‰лfl Т則, Джон‡, Алисы и т‡к ‰‡лее. В PGP нет ие‡хии ‰о‚еиfl; нет ‰е傇. Отсутст‚ие ие‡хической стуктуы может пи‚ести к тому, что Те‰ может иметь о‰ин сетифик‡т от Боб‡ и ‰у„ой сетифик‡т — от Джон‡. Если Алис‡ хочет иссле‰о‚‡ть линию получениfl сетифик‡то‚ ‰лfl Т則, у нее есть ‰‚‡ пути: н‡чин‡ть от Боб‡ и н‡чин‡ть от Джон‡. Интеесно, что Алис‡ может полностью ‰о‚еflть Бобу, но только ч‡стично ‰о‚еflет Джону. Может быть мно„о путей ‰о‚еиfl, пи‚о‰flщих к сетифик‡ту от ‡‰минист‡ции, котоой ‰о‚еflют полностью или ч‡стично. В PGP ‚ыпуск‡юще„о сетифик‡т обычно н‡зы‚‡ют поучителем. В PGP может быть мно„о путей ‰о‚еиfl, пи‚о‰flщих к сетифик‡ту от ‡‰минист‡ции, котоой ‰о‚еflют полностью или ч‡стично. До‚еие и з‡конность Полн‡fl опе‡циfl PGP б‡зиуетсfl н‡ ‰о‚еии поучителfl, ‰о‚еии сетифик‡т‡ и з‡конности откытых ключей. Уо‚ни ‰о‚еиfl поучителfl. Пи отсутст‚ии цент‡льной ‡‰минист‡ции оче‚и‰но, что кольцо не может быть очень большим, если к‡ж‰ый пользтель ‚ кольце PGP-пользтелей не имеет полно„о ‰о‚еиfl к к‡ж‰ому члену сообщест‚‡. (Д‡же ‚ е‡льной жизни мы не можем полностью ‰о‚еflть к‡ж‰ому чело‚еку, котоо„о мы зн‡ем.). Чтобы ешить эту поблему, PGP поз‚олflет ‡зличные уо‚ни ‰о‚еиfl. Число уо‚ней, „뇂ным об‡зом, 燂исит от е‡лиз‡ции, но ‰лfl постоты ‰‡‚‡йте н‡зн‡чим ти уо‚нfl ‰о‚еиfl к любому поучителю: ник‡кой, ч‡стичный и полный. Уо‚ень ‰о‚еиfl поучителfl опе‰елflет уо‚ни ‰о‚еиfl, ‚ы‡бот‡нные поучителем ‰лfl ‰у„их лю‰ей ‚ кольце. Н‡пиме, Алис‡ может полностью ‰о‚еflть Бобу, ч‡стично ‰о‚еflть Анне и не ‰о‚еflть Джону. Вообще, ‚ PGP нет мех‡низм‡, чтобы ешить, к‡к пинflть ешение поучителfl о з‡служ肇ющем ‰о‚еиfl п‡тнее; это может с‰ел‡ть только пользтель. Уо‚ни ‰о‚еиfl сетифик‡т‡, К‡ Алис‡ получ‡ет сетифик‡т от поучителfl, он‡ х‡нит сетифик‡т по‰ именем субъект‡ (сетифицинный объект) и н‡зн‡ч‡ет уо‚ень ‰о‚еиfl этому сетифик‡ту. Уо‚ень ‰о‚еиfl сетифик‡т‡ обычно тот же, что и уо‚ень ‰о‚еиfl поучителfl, котоый ‚ы‰‡л сетифик‡т. Пе‰положим, что Алис‡ полностью ‰о‚еflет Бобу, ч‡стично ‰о‚еflет Анне и Дж‡нетт и не имеет ник‡ко„о ‰о‚еиfl Джону. Мо„ут быть сле‰ующие сцен‡ии. 1. Боб ‚ы‡б‡ты‚‡ет ‰‚‡ сетифик‡т‡, о‰ин ‰лfl Лин‰ы (с откытым ключом K1) и о‰ин ‰лfl Лесли (с откытым ключом K2). Алис‡ х‡нит откытый ключ и сетифик‡т ‰лfl Лин‰ы по‰ н‡з‚‡нием «Ли퉇» и н‡зн‡ч‡ет полный уо‚ень ‰о‚еиfl этому сетифик‡ту. Алис‡ т‡кже х‡нит сетифик‡т и откытый ключ ‰лfl Лесли по‰ н‡з‚‡нием «Лесли» и н‡зн‡ч‡ет полный уо‚ень ‰о‚еиfl этому сетифик‡ту. 510
Лекциfl 16
Безоп‡сность н‡ пик뇉ном уо‚не: PGP И S/MIME
2. Анн‡ ‚ы‡б‡ты‚‡ет сетифик‡т ‰лfl Джон‡ (с откытым ключом K3). Алис‡ х‡нит этот сетифик‡т и откытый ключ по‰ н‡з‚‡нием «Джон», но н‡зн‡ч‡ет уо‚ень ‰лfl это„о сетифик‡т‡ — ч‡стичный. 3. Дж‡нетт ‚ы‡б‡ты‚‡ет ‰‚‡ сетифик‡т‡: о‰ин ‰лfl Джон‡ (с обще‰оступным ключом K3) и о‰ин ‰лfl Ли (с откытым ключом K4). Алис‡ х‡нит сетифик‡т Джон‡ по‰ е„о именем и сетифик‡том «Ли» по‰ этим именем (Ли), к‡ж‰ый с ч‡стичным уо‚нем ‰о‚еиfl. Об‡тите ‚ним‡ние, что Джон тепеь имеет ‰‚‡ сетифик‡т‡: о‰ин от Анны и о‰ин от Дж‡нетт, к‡ж‰ый с ч‡стичным уо‚нем ‰о‚еиfl. 4. Джон ‚ы‡б‡ты‚‡ет сетифик‡т ‰лfl Лиз. Алис‡ может отк‡з‡тьсfl или сох‡нить этот сетифик‡т с 퇉писью «не ‰о‚еflю». З‡конность ключей. Цель использниfl поучителfl и сетифик‡т‡ ‰о‚еиfl — опе‰елить з‡конность откыто„о ключ‡. Алис‡ ‰олжн‡ зн‡ть, н‡сколько з‡конны откытые ключи Боб‡, Джон‡, Лиз, Анны и т‡к ‰‡лее. PGP опе‰елflет очень flсную поце‰уу ‰лfl то„о, чтобы опе‰елить з‡конность ключей. Уо‚ень з‡конности ключей ‰лfl пользтелfl — это ‚з‚ешенные уо‚ни ‰о‚еиfl пользтелfl. Н‡пиме, пе‰положим, что мы н‡зн‡ч‡ем сле‰ующие ‚ес‡ н‡ уо‚ни ‰о‚еиfl сетифик‡т‡: 1. ‚ес 0 — сетифик‡ту, котоому не ‰о‚еflют; 2. ‚ес 1/2 — сетифик‡ту с ч‡стичным ‰о‚еием; 3. ‚ес 1 — сетифик‡ту с полным ‰о‚еием. Т‡ ‰лfl полно„о ‰о‚еиfl объекту Алис‡ ну扇етсfl ‚ о‰ном сетифик‡те, котоому ‰о‚еflет полностью, или ‚ ‰‚ух ч‡стичных сетифик‡т‡х ‰о‚еиfl ‰лfl это„о объект‡. Н‡пиме, Алис‡ может использть откытый ключ Джон‡ ‚ пе‰ы‰ущем сцен‡ии, потому что и Анн‡, и Дж‡нетт ‚ы‡бот‡ли сетифик‡т ‰лfl Джон‡, к‡ж‰ый с уо‚нем ‰о‚еиfl сетифик‡т‡ 1/2. Об‡тите ‚ним‡ние, что з‡конность откыто„о ключ‡, пи퇉леж‡ще„о объекту, не имеет ник‡ко„о отношениfl к уо‚ню ‰о‚еиfl ‰у„их лю‰ей к этому чело‚еку. Хотfl Боб может использть откытый ключ Джон‡, чтобы пе則ть сообщение ему, Алис‡ может не пинflть ни о‰но„о сетифик‡т‡, ‚ыпущенно„о Джоном, потому что ‰лfl Алисы Джон имеет уо‚ень «нет ‰о‚еиfl». Ст‡т кольц‡ Вы, ‚озможно, н‡шли сеьезную поблему ‚ ‚ышеупомflнутом обсуж‰ении. А если никто не пе則л сетифик‡т, что он полностью или ч‡стично ‰о‚еflет объекту? Н‡пиме, к‡к можно ешить поблему з‡конности обще‰оступно„о ключ‡ Боб‡, если никто не пе則л сетифик‡т Боб‡? В PGP з‡конность ключ‡, котоому ‰о‚еflют, или объект‡, котоому ч‡стично ‰о‚еflют, может быть т‡кже опе‰елен‡ ‰у„ими метми. 1. Алис‡ может физически получить откытый ключ Боб‡. Н‡пиме, Алис‡ и Боб мо„ут ‚стетитьсfl лично. И пи этом обменflтьсfl откытым ключом, н‡пис‡нным н‡ обы‚ке бум‡жки или н‡ ‰иске. 2. Если „олос Боб‡ ‡споз퇂‡ем Алисой, Алис‡ может по телефону ‚ы炇ть е„о и получить е„о откытый ключ. 3. Лучшее ешение, пе‰ложенное PGP ‰лfl Боб‡, — пе則ть е„о откытый ключ Алисе электонной почтой. И Алис‡, и Боб ‰ел‡ют ‰‡й‰жест ключ‡ 511
Кус
Киптфиfl и безоп‡сность сетей
16 б‡йто‚ MD5 (или 20 б‡йто‚ SHA-1). Д‡й‰жест обычно отоб‡ж‡етсfl к‡к ‚осемь „упп по 4 цифы (или ‰есflть „упп по 4 цифы) ‚ шест퇉ц‡теичном ‚и‰е и н‡зы‚‡етсfl отпеч‡тком п‡льц‡. Алис‡ может т‡ ‚ы炇ть Боб‡ и по‚еить отпеч‡ток п‡льц‡ по телефону. Если ключ изменилсfl или изменен ‚о ‚емfl почто‚ой пе則чи, ‰‚‡ отпеч‡тк‡ п‡льц‡ не бу‰ут соот‚етст‚ть ‰у„ ‰у„у. Длfl то„о чтобы с‰ел‡ть по‚еку более у‰обной, PGP со片л список сло‚, к‡ж‰ое из котоых пе‰ст‡‚лflет комбин‡цию из 4-х циф. К‡ Алис‡ ‚ызы‚‡ет Боб‡, Боб может объfl‚ить эти ‚осемь сло‚ (или ‰есflть сло‚) ‰лfl Алисы. Сл тщ‡тельно ‚ыб‡ны PGP, чтобы избеж‡ть пут‡ницы пи поизношении; н‡пиме, если печь н‡хо‰итсfl ‚ списке, то сло‚о ечь не ‚ключ‡етсfl ‚ список. 4. В PGP ничто не пепflтст‚ует Алисе получ‡ть откытый ключ Боб‡ от CA по от‰ельной поце‰уе. Он‡ может т‡ ‚ст‡‚ить откытый ключ ‚ кольцо откыто„о ключ‡. Т‡блицы кольц‡ ключей К‡ж‰ый пользтель, т‡кой к‡к Алис‡, сох‡нflет множест‚о ‰‚ух колец ключей: о‰но кольцо секетно„о ключ‡ и о‰но кольцо откыто„о ключ‡. PGP опе‰елflет стуктуу ‰лfl к‡ж‰о„о из этих колец ключей ‚ фоме т‡блицы. Рисунок 16.7 пок‡зы‚‡ет фом‡т т‡блицы кольц‡ секетно„о ключ‡.
Рис. 16.7. Фом‡т т‡блицы кольц‡ секетно„о ключ‡. • Пользтельский ID. Пользтельский ID — обычно ‡‰ес электонной почты пользтелfl. О‰н‡ко пользтель может опе‰елflть уник‡льный ‡‰ес электонной почты или пс傉оним ‰лfl к‡ж‰ой ключе‚ой п‡ы. Т‡блиц‡ пеечислflет пользтельские ID, с‚flз‡нные с к‡ж‰ой п‡ой. • ID ключ‡. Этот столбец уник‡льно опе‰елflет откытый ключ се‰и откытых ключей пользтелfl. В PGP ID ключ‡ ‰лfl к‡ж‰ой п‡ы — пе‚ые (с‡мые м뇉шие) 64 бит‡ откыто„о ключ‡. Ду„ими слми, ключ ID ‚ычислflетсfl к‡к ключ mod 264). Ключ ID необхо‰им ‰лfl ‡боты PGP, потому что Боб может иметь несколько откытых ключей, пи퇉леж‡щих Алисе, ‚ е„о кольце откыто„о ключ‡. К‡ он получ‡ет сообщение от Алисы, Боб ‰олжен зн‡ть, к‡кой ID ключ‡ 퇉о использть, чтобы по‚еить сообщение. Ключ ID, котоый пе則ют с сообщением, к‡к мы у‚и‰им, ‰‡ет ‚озможность Бобу пименить 燉‡нный откытый ключ ‰лfl Алисы из с‚ое„о откыто„о кольц‡. Можно спосить, почему не пе則ют полностью откытый ключ. От‚ет н‡ это ‚опос т‡кой: ‚ киптфии откыто„о ключ‡ ‡зме откыто„о ключ‡ может быть очень большой. Пе則‚‡fl только 8 б‡йт, мы уменьш‡ем ‡зме сообщениfl. 512
Лекциfl 16
Безоп‡сность н‡ пик뇉ном уо‚не: PGP И S/MIME
• Откытый ключ. Этот столбец только пеечислflет откытые ключи, пи퇉леж‡щие конкетной п‡е «секетный ключ / откытый ключ». • З‡шифнный секетный ключ. Этот столбец пок‡зы‚‡ет з‡шифнное зн‡чение секетно„о ключ‡ ‚ п‡е «секетный ключ / откытый ключ». Хотfl Алис‡ — е‰инст‚енный чело‚ек, имеющий ‰оступ к с‚оему секетному кольцу, PGP сох‡нflет только з‡шифнную ‚есию секетно„о ключ‡. Мы у‚и‰им позже, к‡к з‡шифо‚ы‚‡етсfl и ‡сшифо‚ы‚‡етсfl секетный ключ. • Метк‡ ‚емени. Этот столбец со‰ежит ‚емfl и ‰‡ту со片ниfl п‡ы ключей. Это помет пользтелю еш‡ть, к‡ поиз‚ести чистку ст‡ых п‡ и к‡ со片‚‡ть но‚ые п‡ы. Пиме 16.1 Пок‡жем пиме т‡блицы кольц‡ секетно„о ключ‡ ‰лfl Алисы. Мы пе‰по뇄‡ем, что Алис‡ имеет только ‰‚‡ пользтельских ID: [email protected] и [email protected]. Мы т‡кже пе‰по뇄‡ем, что Алис‡ имеет ‰‚‡ множест‚‡ п‡ секетных/откытых ключей, о‰ин ‰лfl к‡ж‰о„о пользтельско„о ID. Т‡блиц‡ 16.5 пок‡зы‚‡ет т‡блицу кольц‡ секетных ключей ‰лfl Алисы. Т‡блиц‡ 16.5. Т‡блиц‡ кольц‡ секетных ключей ‰лfl пиме‡ 16.1 ID пользтелfl Ключ ID Откытый [email protected] AB13...45 AB13...45...59 [email protected] FA23...12 FA23...12...22
Секетный ключ ключ 32452398...23 564A4923...23
Метк‡ ‚емени шифниfl 031505-16:23 031504-08:11
Об‡тите ‚ним‡ние, что хотfl зн‡чениfl ключ‡ ID, откыто„о ключ‡ и секетно„о ключ‡ пок‡з‡ны ‚ шест퇉ц‡теичном ‚и‰е, ‰лfl метки ‚емени используетсfl фом‡т «месflц – ‰ень – „. Длfl метки ‚емени эти фом‡ты служ‡т только ‰лfl фикс‡ции ‰‡ты и мо„ут быть ‡зличны. Н‡пиме, ‚ России ут‚еж‰ен фом‡т «‰ень – месflц – „. Рисунок 16.8 пок‡зы‚‡ет фом‡т т‡блицы кольц‡ обще‰оступно„о ключ‡.
Рис. 16.8. Фом‡т т‡блицы кольц‡ откыто„о ключ‡ • Пользтельский ID. К‡к и ‚ т‡блице 16.7 кольц‡ секетно„о ключ‡, пользтельский ID — обычно ‡‰ес электонной почты объект‡. • Ключ ID. К‡к и ‚ т‡блице 16.7 кольц‡ секетно„о ключ‡, ключ ID — пе‚ые (с‡мые м뇉шие) 64 бит‡ обще‰оступно„о ключ‡. • Откытый ключ. Это — откытый ключ объект‡. 513
Кус
Киптфиfl и безоп‡сность сетей
• До‚еие к пост‡‚щику. Этот столбец опе‰елflет уо‚ень ‰о‚еиfl к пост‡‚щику. В большинст‚е е‡лиз‡ций он может иметь только о‰но из тех зн‡чений: не ‰о‚еflю, ‰о‚еflю ч‡стично или ‰о‚еflю полностью. • Сетифик‡т(ы). Этот столбец со‰ежит сетифик‡т или сетифик‡ты, по‰пис‡нные ‰у„им объект‡м ‰лfl это„о объект‡. Пользтельский ID может иметь больше чем о‰ин сетифик‡т. • Сетифик‡т(ы) ‰о‚еиfl. Этот столбец пе‰ст‡‚лflет сетифик‡т ‰о‚еиfl (или посто ‰о‚еие). Если Анн‡ пе則ет сетифик‡т з‡ Джон‡, PGP ищет ‚хо‰ стоки Анны, н‡хо‰ит зн‡чение ‰о‚еенно„о пост‡‚щик‡ ‰лfl Анны, копиует это зн‡чение и ‚ст‡‚лflет е„о ‚ поле сетифик‡т‡ ‰о‚еиfl ‰лfl Джон‡. • З‡конность ключей. Это зн‡чение ‚ычислflетсfl PGP, н‡ осно‚е зн‡чениfl сетифик‡т‡ ‰о‚еиfl и 燇нее 燉‡нно„о ‚ес‡ ‰лfl к‡ж‰о„о сетифик‡т‡ ‰о‚еиfl. • Метк‡ ‚емени. Этот столбец со‰ежит ‰‡ту и ‚емfl со片ниfl столбц‡. Пиме 16.2 Рfl‰ ш‡„о‚ пок‡зы‚‡ет, к‡к фомиуетсfl т‡блиц‡ кольц‡ откыто„о ключ‡ ‰лfl Алисы. 1. К‡к пок‡з‡но ‚ т‡блице 16.6, з‡полнение н‡чин‡етсfl со стоки, „‰е Алис‡ ук‡зы‚‡ет уо‚ень ‰о‚еиfl пост‡‚щик‡, используfl N (не ‰о‚еflю), P (‰о‚еflю ч‡стично) и F (‰о‚еflю полностью). Длfl постоты пинflто, что к‡ж‰ый уч‡стник (‚ключ‡fl Алису) имеет только о‰ин пользтельский ID. Т‡блиц‡ 16.6. Пиме 2, ст‡тfl т‡блиц‡ ID пользо- Ключ ID Ключ До‚еие Сети- Сети- З‡кон- Метк‡ ‚‡телfl откытый к пост‡‚щику фик‡т(ы) фик‡т ность ‚емени ‰о‚еиfl ключ‡ Алис‡… AB... AB... F F …… Об‡тите ‚ним‡ние: н‡ осннии этой т‡блицы мы пе‰по뇄‡ем, что Алис‡ ‚ыпустил‡ сетифик‡т ‰лfl себfl (неfl‚но). Алис‡, конечно, ‰о‚еflет с‡м‡ себе полностью. Уо‚ень ‰о‚еиfl к пост‡‚щику т‡кже полный и з‡конность ключей — тоже. Хотfl Алис‡ ник‡ не использует эту пе‚ую стоку, это необхо‰имо ‰лfl опе‡ции PGP. 2. Тепеь Алис‡ ‰оᇂлflет ‚ т‡блицу Боб‡. Алис‡ полностью ‰о‚еflет Бобу, но ‰лfl то„о чтобы получить е„о откытый ключ, он‡ посит, чтобы Боб пе則л откытый ключ электонной почтой, т‡к же к‡к и с‚ои «отпеч‡тки п‡льце‚». З‡тем Алис‡ ‚ызы‚‡ет Боб‡, чтобы по‚еить е„о «отпеч‡тки п‡льце‚». Т‡блиц‡ 16.7 пок‡зы‚‡ет это но‚ое событие. Об‡тите ‚ним‡ние, что зн‡чение ‰о‚еиfl ‰лfl Боб‡ полное, потому что Алис‡ полностью ‰о‚еflет Бобу. Зн‡чение полfl сетифик‡т‡ пусто — это пок‡зы‚‡ет, что этот ключ был получен кос‚енно, ‡ не ‚ соот‚етст‚ии с сетифик‡том. 514
Лекциfl 16
Безоп‡сность н‡ пик뇉ном уо‚не: PGP И S/MIME
Т‡блиц‡ 16.7. Пиме 2 после ‰оᇂлениfl ‚ т‡блицу Боб‡ ID пользо- Ключ ID Ключ До‚еие Сети- Сети- З‡кон- Метк‡ ‚‡телfl откытый к пост‡‚щику фик‡т(ы) фик‡т ность ‚емени ‰о‚еиfl ключ‡ Алис‡… AB... AB... F F ……. Боб… 12… 12… F F ……. 3. Тепеь Алис‡ ‰оᇂлflет ‚ т‡блицу Т則. Те‰у полностью ‰о‚еflют. О‰н‡ко ‰лfl это„о конкетно„о пользтелfl Алис‡ не ‰олжн‡ ‚ы炇ть Т則. Вместо это„о Боб, котоый зн‡ет откытый ключ Т則, пе則ет е„о Алисе, сетифик‡т котоой ‚ключ‡ет откытый ключ Т則, к‡к пок‡з‡но ‚ т‡блице 16.8. Т‡блиц‡ 16.8. Пиме 2 после ‰оᇂлениfl Т則 ‚ т‡блицу ID пользо- Ключ ID Ключ До‚еие Сети- Сети- З‡кон- Метк‡ ‚‡телfl откытый к пост‡‚щику фик‡т(ы) фик‡т ность ‚емени ‰о‚еиfl ключ‡ Алис‡… AB... AB... F F ……. Боб… 12… 12… F F ……. Тэ‰... 48… 48… F Боб‡ F F ……. Об‡тите ‚ним‡ние: зн‡чение полfl сетифик‡т‡ пок‡зы‚‡ет, что сетифик‡т был получен от Боб‡, зн‡чение сетифик‡т‡ ‰о‚еиfl скопино PGP с полfl ‰о‚еиfl к пост‡‚щику Боб‡. Зн‡чение полfl з‡конности ключей — зн‡чение сетифик‡т‡ ‰о‚еиfl, умноженно„о н‡ 1 (‚ес). 4. Тепеь Алис‡ ‰оᇂлflет к списку Анну. Алис‡ ‰о‚еflет Анне ч‡стично, но Боб пе則ет сетифик‡т ‰лfl Анны с отметкой, что полностью ‰о‚еflет. Т‡блиц‡ 16.9 пок‡зы‚‡ет но‚ое событие. Т‡блиц‡ 16.9. Пиме 2 после ‰оᇂлениfl Анны ‚ т‡блицу ID пользо- Ключ ID Ключ До‚еие Сети- Сети- З‡кон- Метк‡ ‚‡телfl откытый к пост‡‚щику фик‡т(ы) фик‡т ность ‚емени ‰о‚еиfl ключ‡ Алис‡… AB... AB... F F ……. Боб… 12… 12… F F ……. Те‰... 48… 48… F Боб‡ F F ……. Анн‡... 71…. 71 P Боб‡ F F ……. Об‡тите ‚ним‡ние, что зн‡чение ‰о‚еиfl к пост‡‚щику ‰лfl Анны fl‚лflетсfl ч‡стичным, но сетифик‡т ‰о‚еиfl и з‡конность ключей fl‚лflютсfl полными. 5. Тепеь Анн‡ пе‰ст‡‚лflет Джон‡, котоому не ‰о‚еflет Алис‡. Т‡блиц‡ 16.10 пок‡зы‚‡ет но‚ое событие. 515
Кус
Киптфиfl и безоп‡сность сетей
Т‡блиц‡ 16.10. Пиме 2 после ‰оᇂлениfl ‚ т‡блицу Джон‡ ID пользо- Ключ ID Ключ До‚еие Сети- Сети- З‡кон- Метк‡ ‚‡телfl откытый к пост‡‚щику фик‡т(ы) фик‡т ность ‚емени ‰о‚еиfl ключ‡ Алис‡… AB... AB... F F ……. Боб… 12… 12… F F ……. Тэ‰... 48… 48… F Боб‡ F F ……. Анн‡... 71… 71… P Боб‡ F F ……. Джон... 31… 31… N Анны P P …….. Об‡тите ‚ним‡ние, что PGP скопил зн‡чение ‰о‚еиfl к пост‡‚щику Анны (P) и ‰оᇂил к т‡блице сетифик‡т‡ ‰о‚еиfl поле ‰лfl Джон‡. Зн‡чение полfl з‡конности ключей ‰лfl Джон‡ — 1/2 (P) ‚ этот момент; это озн‡ч‡ет, что Алис‡ не ‰олжн‡ использть ключ Джон‡, пок‡ он не изменитсfl н‡ 1 (F). 6. Тепеь Дж‡нетт, неиз‚естн‡fl Алисе, пе則ет сетифик‡т ‰лfl Ли. Алис‡ полностью и„ноиует это сетифик‡т, потому что он‡ не зн‡ет Дж‡нетт. З‡тем Те‰ пе則ет сетифик‡т ‰лfl Джон‡. Джон, котоому ‰о‚еflет Те‰, ‚еоflтно, попосил Т則 пе則ть этот сетифик‡т. Алис‡ смотит н‡ т‡блицу и н‡хо‰ит пользтельское ID Джон‡ с соот‚етст‚ующим ключом ID и откытым ключом. Алис‡ не ‰оᇂлflет ‰у„ую стоку к т‡блице; он‡ только изменflет т‡блицу, к‡к пок‡з‡но ‚ т‡блице 16.11. Поскольку Джон имеет ‰‚‡ сетифик‡т‡ ‚ т‡блице Алисы, и е„о зн‡чение з‡конности ключей — 1, Алис‡ может использть е„о ключ. Но Джон ‚се еще не퇉ежен. Об‡тите ‚ним‡ние, что Алис‡ может по‰олжить ‰оᇂлflть ‚хо‰ы к т‡блице. Т‡блиц‡ 16.11. Пиме 2 после то„о, к‡к ‰лfl Джон‡ был получен сетифик‡т ID пользо- Ключ ID Ключ До‚еие Сети- Сети- З‡кон- Метк‡ ‚‡телfl откытый к пост‡‚щику фик‡т(ы) фик‡т ность ‚емени ‰о‚еиfl ключ‡ Алис‡… AB... AB... F F ……. Боб… 12… 12… F F ……. Тэ‰... 48… 48… F Боб‡ F F ……. Анн‡... 71… 71... P Боб‡ F F ……. Джон... 31… 31… N Анны P F ……. Боб‡ F Мо‰ель ‰о‚еиfl ‚ PGP К‡к пе‰ложил Циммем‡н, мы можем со片ть мо‰ель ‰о‚еиfl ‰лfl любо„о пользтелfl ‚ кольце, с пользтелем ‚ к‡чест‚е цент‡ ‡кти‚ности. Т‡к‡fl мо‰ель может ‚ы„лfl‰еть, к‡к пок‡з‡но н‡ ис. 16.9. Рисунок пок‡зы‚‡ет мо‰ель ‰о‚еиfl ‰лfl Алисы ‚ некотоый момент. Д臄‡мм‡ может изменитьсfl с любыми изменениflми т‡блицы кольц‡ обще‰оступно„о ключ‡. 516
Лекциfl 16
Безоп‡сность н‡ пик뇉ном уо‚не: PGP И S/MIME
Рис. 16.9. Мо‰ель ‰о‚еиfl Р‡ссмотим исунок. З‰есь пок‡з‡ны ти объект‡ с полным ‰о‚еием ‚ кольце Алисы (с‡м‡ Алис‡, Боб и Те‰) и ти объект‡ с ч‡стичным ‰о‚еием (Анн‡, М‡к и Бюс). Есть т‡кже шесть объекто‚ без ‰о‚еиfl. Де‚flть объекто‚ имеют з‡конный ключ. Алис‡ может з‡шифть сообщение к любому из этих объекто‚ или по‚еить, что по‰пись получен‡ от о‰но„о из этих объекто‚ (ключ Алисы ник‡ не используетсfl ‚ этой мо‰ели). Есть т‡кже ти объект‡, котоые не имеют ник‡ких з‡конных ключей с Алисой. Боб, Анн‡ и М‡к с‰ел‡ли с‚ои ключи з‡конными, посыл‡fl их электонной почтой и по‰т‚е扇fl «отпеч‡тк‡ми п‡льце‚» по ф‡ксу. Елен‡ пее‰‡л‡ сетифик‡т от CA, потому что ей не ‰о‚еflет Алис‡ и по‚ек‡ по телефону не‚озможн‡. Хотfl Те‰у полностью ‰о‚еflют, он ‰‡л Алисе сетифик‡т, по‰пис‡нный Бобом. Джон пе則л Алисе ‰‚‡ сетифик‡т‡, о‰ин — по‰пис‡нный Те‰ом и о‰ин — Анной. Ке‚ин пее‰‡л ‰‚‡ сетифик‡т‡ Алисе, о‰ин — по‰пис‡нный Анной и о‰ин — М‡ком. К‡ж‰ое из этих у‰осто‚еений ‰‡ет Ке‚ину поло‚ину уо‚нfl з‡конности; поэтому ключ Ке‚ин‡ з‡конен. Дюк пее‰‡л ‰‚‡ у‰осто‚еениfl Алисе, о‰но — по‰пис‡нное М‡ком и ‰у„ое — Еленой. Т‡к к‡к М‡ку «полу‰о‚еflют», ‡ Елене не ‰о‚еflют, Дюк не имеет з‡конно„о ключ‡. Дженни пее‰‡л‡ четые сетифик‡т‡, о‰ин — по‰пис‡нный объектом, котоому «полу‰о‚еflют», ‰‚‡ — нез‡конными объект‡ми и о‰ин — неиз‚естным объектом. Дженни имеет не мно„о ш‡нсо‚, чтобы ее ключ пизн‡ли з‡конным. Луиз‡ пее‰‡л‡ о‰ин сетифик‡т, по‰пис‡нный неиз‚естным объектом. З‡метим, что Алис‡ может сох‡нить имfl Луизы ‚ т‡блице ‚ случ‡е, если ‚ бу‰ущем пибу‰ет сетифик‡т ‰лfl Луизы. Сеть ‰о‚еиfl PGP может ‚ конечном счете с‰ел‡ть сеть ‰о‚еиfl меж‰у „уппой лю‰ей. Если к‡ж‰ый объект ‚‚о‰ит ‚се больше и больше объекто‚ ‰у„им объект‡м, кольцо откыто„о ключ‡ ‰лfl к‡ж‰о„о объект‡ ст‡но‚итсfl большим и большим, и объекты ‚ кольце мо„ут т‡ пе則‚‡ть безоп‡сную электонную почту ‰у„ ‰у„у. 517
Кус
Киптфиfl и безоп‡сность сетей
Аннулиние ключей Аннулиние ключей может ст‡ть необхо‰имым ‰лfl объект‡, если 퇉о отменить е„о или ее откытый ключ ‚ кольце. Это может случитьсfl, если ‚л‡‰елец ключ‡ чу‚ст‚ует, что ключ скомпометин (н‡пиме, уꇉен) или слишком ст‡ый, чтобы быть безоп‡сным. Чтобы отменflть ключ, ‚뇉елец может пе則ть сетифик‡т ‡ннулиниfl, по‰пис‡нный им с‡мим. Сетифик‡т ‡ннулиниfl ‰олжен быть по‰пис‡н ст‡ым ключом и ‡спост‡нен ‚сем лю‰flм ‚ кольце, котоые использли обще‰оступный ключ.
Р‡сп‡ко‚к‡ инфом‡ции из колец К‡к мы ‚и‰ели, пе則тчик и пиемник к‡ж‰ый имеет ‰‚‡ кольц‡ ключей: о‰ин ч‡стный и о‰ин откытый. Д‡‚‡йте посмотим, к‡к‡fl инфом‡циfl нужн‡ ‰лfl то„о, чтобы посл‡ть и получить сообщение, из‚леченное из этих колец. Стоон‡ пе則тчик‡ Пе‰положим, что Алис‡ посыл‡ет электонную почту Бобу. Алис‡ ну扇етсfl ‚ пflти е‰иниц‡х инфом‡ции: ключ ID откыто„о ключ‡, котоый он‡ использует, ее секетный ключ, ключ се‡нс‡, ID откыто„о ключ‡ Боб‡ и откытый ключ Боб‡. Длfl то„о чтобы получить эти пflть е‰иниц инфом‡ции, Алис‡ ‰олжн‡ пе則ть PGP четые е‰иницы инфом‡ции: ее пользтельский ID (‰лfl электонной почты), ее ф‡зу-п‡оль (после‰о‚‡тельность н‡ж‡тиfl к뇂иш с ‚озможными п‡уз‡ми) и пользтельский ID Боб‡ (см. исунок 16.10).
Рис. 16.10. Р‡сп‡ко‚к‡ инфом‡ции из колец н‡ стооне пе則тчик‡ 518
Лекциfl 16
Безоп‡сность н‡ пик뇉ном уо‚не: PGP И S/MIME
ID откыто„о ключ‡ Алисы (полученный с сообщением) и ее секетный ключ (‰лfl по‰писи сообщениfl) х‡нflтсfl ‚ т‡блице кольц‡ секетно„о ключ‡. Алис‡ ‚ыби‡ет пользтельский ID (user ID — ее ‡‰ес электонной почты), котоый он‡ хочет использть к‡к ин‰екс к этому кольцу. PGP из‚лек‡ет ключ ID и з‡шифнный секетный ключ. PGP использует 燇нее 燉‡нный ‡л„оитм ‰ешифниfl и ее хэшиниfl, ф‡зу-п‡оль (к‡к ключ), чтобы ‡сшифть этот секетный ключ. Алис‡ т‡кже ну扇етсfl ‚ секетном ключе се‡нс‡. Ключ се‡нс‡ ‚ PGP — случ‡йное число с ‡змеом, котоый опе‰елен ‚ ‡л„оитме шифниfl/‰ешифниfl. PGP использует „ене‡то случ‡йных чисел, чтобы со片ть случ‡йный ключ се‡нс‡; н‡ч‡льное число — множест‚о поиз‚ольных н‡ж‡тий к뇂иши, н‡печ‡т‡нных Алисой н‡ ее к뇂и‡туе. К‡ж‰ое н‡ж‡тие к뇂иши пеоб‡зно ‚ 8 бит, ‡ к‡ж‰‡fl п‡уз‡ меж‰у н‡ж‡тиflми к뇂иши пеоб‡зо‚‡н‡ ‚ 32 бит‡. Комбин‡циfl похо‰ит сложный „ене‡то случ‡йных чисел, чтобы со片ть очень ‰осто‚еное случ‡йное число к‡к ключ се‡нс‡. Об‡тите ‚ним‡ние, что ключ се‡нс‡ ‚ PGP — о‰но‡зо‚ый случ‡йный ключ (см. пиложение K), используемый только о‰ин ‡з. Алис‡ т‡кже ну扇етсfl ‚ ID ключ‡ Боб‡ (чтобы посл‡ть е„о с сообщением) и ‚ откытом ключе Боб‡ (чтобы з‡шифть ключ се‡нс‡). Эти ‰‚е ч‡сти инфом‡ции из‚лек‡ютсfl из т‡блицы кольц‡ откытых ключей, используfl пользтельское ID Боб‡ (е„о ‡‰ес электонной почты). Стоон‡ пиемник‡ Н‡ стооне пиемник‡ Бобу нужны ти ч‡сти инфом‡ции: секетный ключ Боб‡ (‡сшифо‚ы‚‡ет ключ се‡нс‡), ключ се‡нс‡ (чтобы ‡сшифть ‰‡нные) и ключ Алисы (чтобы по‚еить по‰пись) (см. ис. 16.11).
Рис. 16.11. Р‡сп‡ко‚к‡ инфом‡ции из колец н‡ стооне пием‡ 519
Кус
Киптфиfl и безоп‡сность сетей
Боб использует ID с‚ое„о откыто„о ключ‡, пе則‚‡емый Алисой, чтобы опе‰елить, что е„о соот‚етст‚ующий секетный ключ может ‡сшифть ключ се‡нс‡. Эт‡ ч‡сть инфом‡ции может быть из‚лечен‡ из т‡блицы кольц‡ секетно„о ключ‡ Боб‡. Секетный ключ, о‰н‡ко, з‡шифн пи з‡писи ‚ п‡мflть. Боб ‰олжен использть ф‡зу-п‡оль и хэш-функцию, чтобы ‡сшифть ключ. З‡шифнный ключ се‡нс‡ пе則ли с сообщением; Боб пименflет с‚ой ‡сшифнный секетный ключ, чтобы ‡сшифть ключ се‡нс‡. Боб использует ID ключ‡ Алисы, пе則нный с сообщением, чтобы из‚лечь откытый ключ Алисы, котоый х‡нитсfl ‚ т‡блице кольц‡ откыто„о ключ‡ Боб‡.
PGP-п‡кеты Сообщение ‚ PGP состоит из о‰но„о или более п‡кето‚. В течение э‚олюции PGP фом‡т и число типо‚ п‡кет‡ изменились. По‰обно ‰у„им потокол‡м, из‚естным ‰о сих по, PGP имеет типо‚ой 燄оло‚ок, котоый пименflетсfl к к‡ж‰ому п‡кету. Типо‚ой 燄оло‚ок нынешней ‚есии имеет только ‰‚‡ полfl, к‡к пок‡з‡но н‡ ис. 16.12.
Рис. 16.12. Фом‡т 燄оло‚к‡ п‡кет‡ • Метк‡ (те„). Нынешний фом‡т ‰лfl это„о полfl опе‰елflет метку к‡к фл‡жок н‡ 8 бито‚; пе‚ый бит (с‡мый ст‡ший) — ‚с儉‡ 1. Втоой бит — 1, если мы используем после‰нюю ‚есию. Ост‡ющиесfl шесть бит мо„ут опе‰елить ‰о 64 ‡зличных типо‚ п‡кето‚, к‡к пок‡з‡но ‚ т‡блице 16.12. • Длин‡. Поле ‰лины опе‰елflет ‰лину полно„о п‡кет‡ ‚ б‡йт‡х. Р‡зме это„о полfl fl‚лflетсfl пееменным; он может быть 1, 2 или 5 б‡йто‚. Т‡блиц‡ 16.12. Некотоые обычно используемые типы п‡кето‚ Зн‡чение 1 2 5 6 8 9 11 13
Тип п‡кет‡ Ключ се‡нс‡, з‡шифнный откытым ключом П‡кет по‰писи П‡кет секетно„о ключ‡ П‡кет откыто„о ключ‡ П‡кет сж‡тых ‰‡нных П‡кет ‰‡нных, з‡шифнный секетным ключом П‡кет лите‡льных (бук‚енных ‰‡нных) П‡кет пользтельско„о ID 520
Лекциfl 16
Безоп‡сность н‡ пик뇉ном уо‚не: PGP И S/MIME
Пиемник может опе‰елить число б‡йто‚ полfl ‰лины, н‡ осннии зн‡чениfl б‡йт‡, и‰уще„о с‡зу после полfl метки. ‡. Если зн‡чение б‡йт‡ после полfl метки меньше, чем 192, то поле ‰лины — только о‰ин б‡йт. Длин‡ тексто‚о„о блок‡ (п‡кет минус 燄оло‚ок) ‚ычислflетсfl к‡к ‰лин‡ тексто‚о„о блок‡ = пе‚ый б‡йт б. Если зн‡чение б‡йт‡ после полfl метки меж‰у 192 и 223 (‚ключ‡fl к‡йние зн‡чениfl), то поле ‰лины — ‰‚‡ б‡йт‡. Длин‡ тексто‚о„о блок‡ может быть ‚ычислен‡ к‡к ‰лин‡ тексто‚о„о блок‡ = (пе‚ый б‡йт – 192) << 8 + ‚тоой б‡йт + 192
‚. Если зн‡чение б‡йт‡ после полfl метки меж‰у 224 и 254 (‚ключ‡fl к‡йние зн‡чениfl), то поле ‰лины — о‰ин б‡йт. Этот тип полfl ‰лины опе‰елflет только ‰лину ч‡сти тексто‚о„о блок‡ (ч‡стичн‡fl ‰лин‡ тексто‚о„о блок‡). Ч‡стичн‡fl ‰лин‡ тексто‚о„о блок‡ может быть ‚ычислен‡ к‡к ч‡стичн‡fl ‰лин‡ тексто‚о„о блок‡ = 1<< (пе‚ый б‡йт & 0 x 1F) Об‡тите ‚ним‡ние, что фомул‡ озн‡ч‡ет 1 × 2 (пе‚ый б‡йт & 0x1F). Степень — это ф‡ктически зн‡чение пflти с‡мых ых бито‚. Поскольку поле — меж‰у 224 и 254 ‚ключительно зн‡чение пflти с‡мых ых бито‚ — меж‰у 0 и 30 ‚ключительно. Ду„ими слми, ч‡стичн‡fl ‰лин‡ тексто‚о„о блок‡ может быть меж‰у е‰иницей (20) и 1 073 741 824 (230). К‡ п‡кет пе‰ст‡‚лен несколькими ч‡стичными тексто‚ыми блок‡ми, пименим‡ ч‡стичн‡fl ‰лин‡ тексто‚о„о блок‡. ʇ扇fl ч‡стичн‡fl ‰лин‡ тексто‚о„о блок‡ опе‰елflет о‰ну ч‡сть ‰лины. После‰нее поле ‰лины не может быть ч‡стичной ‰линой тексто‚о„о блок‡ со片нно„о сообщениfl. Н‡пиме, если п‡кет имеет четые ч‡сти, он может иметь ти ч‡стичных полfl ‰лины и о‰но поле ‰лины ‰у„о„о тип‡. „. Если зн‡чение б‡йт‡ после полfl метки — 255, то поле ‰лины состоит из пflти б‡йто‚. Длин‡ тексто‚о„о блок‡ ‚ычислflетсfl к‡к Длин‡ тексто‚о„о блок‡ = ‚тоой б‡йт <<24 | тетий б‡йт << 16| чет‚етый б‡йт << 8 |пflтый б‡йт П‡кет лите‡льных1 ‰‡нных. П‡кет бук‚енных ‰‡нных пееносит или со‰ежит текущие ‰‡нные, котоые пе則ютсfl или сох‡нflютсfl. Этот п‡кет — с‡мый элемент‡ный тип сообщениfl; то есть, он не может нести ник‡кой ‰у„ой п‡кет. Фом‡т п‡кет‡ пок‡з‡н н‡ ис. 16.13. 1
Лите‡л – тип ‰‡нных ‰лfl пеенос‡ или сох‡нениfl опе‰еленно„о 燇нее тип‡ ‰‡нных (‚ещест‚енные, буле‚ы, пееменные и т. ‰.). 521
Кус
Киптфиfl и безоп‡сность сетей
Рис. 16.13. П‡кет бук‚енных ‰‡нных • Режим. Это о‰ноб‡йто‚ое поле опе‰елflет, к‡к ‰‡нные н‡пис‡ны ‚ п‡кете. Зн‡чение это„о полfl может быть «b» ‰лfl ‰‚оичных ‰‡нных, «t» — ‰лfl текст‡, или любое ‰у„ое зн‡чение, опе‰еленное ‰лfl собст‚енных целей. • Длин‡ сле‰ующе„о полfl. Это о‰ноб‡йто‚ое поле опе‰елflет ‰лину сле‰ующе„о полfl (полfl имени ф‡йл‡). • Имfl ф‡йл‡. Это поле пееменной ‰лины опе‰елflет н‡з‚‡ние ф‡йл‡ или сообщениfl ‚ ‚и‰е стоки ASCII. • Метк‡ ‚емени. Это четыехб‡йто‚ое поле опе‰елflет ‚емfl со片ниfl или после‰ней мо‰ифик‡ции сообщениfl. Зн‡чение может быть 0 — это озн‡ч‡ет, что пользтель ‚ыби‡ет опцию «не опе‰елflть ‚емfl». • Лите‡льные ‰‡нные. Это поле пееменной ‰лины, пееносflщее ф‡ктические ‰‡нные (ф‡йл или сообщение) ‚ тексте или ‰‚оичном ‚и‰е (‚ 燂исимости от зн‡чениfl полfl ежим‡). • Сж‡тый п‡кет ‰‡нных. Этот п‡кет, пееносflщий п‡кеты сж‡тых ‰‡нных. Рисунок 16.14 пок‡зы‚‡ет фом‡т п‡кет сж‡тых ‰‡нных.
Рис. 16.14. П‡кет сж‡тых ‰‡нных • Метк‡ (мето‰ сж‡тиfl). Это о‰ноб‡йто‚ое поле опе‰елflет мето‰ сж‡тиfl, используемый ‰лfl сж‡тиfl ‰‡нных (сле‰ующее поле). Зн‡чениfl, опе‰еленные ‰лfl это„о полfl, пок‡ 1 (ZIP) и 2 (ZLIP). Т‡кже е‡лиз‡циfl может пименflть ‰у„ие экспеимент‡льные мето‰ы сж‡тиfl. Мето‰ ZIP обсу扇етсfl ‚ пиложении М. 522
Лекциfl 16
Безоп‡сность н‡ пик뇉ном уо‚не: PGP И S/MIME
• Сж‡тые ‰‡нные. Это поле пееменной ‰лины пееносит ‰‡нные после сж‡тиfl. Об‡тите ‚ним‡ние, что ‚ этом поле может быть о‰ин п‡кет ‰‡нных или после‰о‚‡тельное сое‰инение ‰‚ух или более п‡кето‚. Общ‡fl ситу‡циfl — е‰инст‚енный п‡кет лите‡льных ‰‡нных или комбин‡циfl п‡кет‡ по‰писи, сопо‚о扇емо„о п‡кетом лите‡льных ‰‡нных. • П‡кет ‰‡нных, з‡шифнных ключом з‡секеч肇ниfl. Этот п‡кет пееносит ‰‡нные от о‰но„о п‡кет‡ или комбин‡ции п‡кето‚, котоые были з‡шифны, с использнием обычно„о ‡л„оитм‡ с симметичными ключ‡ми. Об‡тите ‚ним‡ние, что п‡кет, несущий о‰но‡зо‚ый ключ се‡нс‡, пе則етсfl пее‰ этим п‡кетом. Рисунок 16.15 пок‡зы‚‡ет фом‡т п‡кет‡ з‡шифнных ‰‡нных.
Рис. 16.15. П‡кет з‡шифнных ‰‡нных • П‡кет по‰писи. П‡кет по‰писи мы уже обсу扇ли ‡ньше, к‡ ‡ссм‡т肇ли з‡щиту целостности ‰‡нных. Рисунок 16.16 пок‡зы‚‡ет фом‡ту п‡кет‡ по‰писи.
Рис. 16.16. П‡кет по‰писи • Весиfl. Это о‰ноб‡йто‚ое поле опе‰елflет используемую ‚есию PGP. 523
Кус
Киптфиfl и безоп‡сность сетей
• Длин‡. Это поле сн‡ч‡л‡ было ‚ы‰елено ‰лfl то„о, чтобы пок‡з‡ть ‰лину сле‰ующих ‰‚ух полей, но тепеь ‡зме этих полей уст‡но‚лен, поэтому зн‡чение это„о полfl ‡‚но 5. • Тип по‰писи. Это о‰ноб‡йто‚ое поле опе‰елflет цель по‰писи. Оно ‰окументиует по‰пись. Т‡блиц‡ 16.13 пок‡зы‚‡ет некотоые типы по‰писи. Т‡блиц‡ 16.13. Некотоые зн‡чениfl по‰писи Зн‡чение 0x00 0x01 0x10
0x11 0x12 0x13
0x30
По‰пись По‰пись ‰‚оично„о ‰окумент‡ (сообщение или ф‡йл) По‰пись тексто‚о„о ‰окумент‡ (сообщение или ф‡йл) Общий сетифик‡т пользтельско„о ID и п‡кет‡ откыто„о ключ‡. По‰писы‚‡ющее лицо не ук‡зы‚‡ет ник‡ких ‰‡нных о ‚л‡‰ельце ключ‡ Песон‡льный сетифик‡т пользтельско„о ID и п‡кет откыто„о ключ‡. Не по‚о‰итсfl ‚еифик‡циfl ‚뇉ельц‡ ключ‡ Случ‡йный сетифик‡т пользтельско„о ID и п‡кет откыто„о ключ‡. Некото‡fl случ‡йн‡fl ‚еифик‡циfl ‚뇉ельц‡ ключ‡ Положительный сетифик‡т пользтельско„о ID и п‡кет откыто„о ключ‡. Дел‡етсfl сущест‚енн‡fl ‚еифик‡циfl По‰пись ‡ннулиниfl сетифик‡т‡. Он‡ у‰‡лflет более ‡нний сетифик‡т (от Ox10 ‰о Ox13)
• Метк‡ ‚емени. Это четыехб‡йто‚ое поле, котоое опе‰елflет ‚емfl, к‡ по‰пись был‡ ‚ычислен‡. • Ключ ID. Это ‚осьмиб‡йто‚ое поле опе‰елflет ID откыто„о ключ‡ по‰писы‚‡юще„о лиц‡. Оно ук‡зы‚‡ет ‚еифик‡тоу, к‡кой откытый ключ по‰писы‚‡юще„о лиц‡ ‰олжен быть использн, чтобы ‡сшифть ‰‡й‰жест. • Ал„оитм откыто„о ключ‡. Это о‰ноб‡йто‚ое поле ‰‡ет ко‰ ‰лfl ‡л„оитм‡ откыто„о ключ‡, котоый пименflлсfl ‰лfl шифниfl ‰‡й‰жест‡. Веифик‡то использует тот же с‡мый ‡л„оитм, чтобы ‡сшифть ‰‡й‰жест. • Ал„оитм хэшиниfl. Это о‰ноб‡йто‚ое поле ‰‡ет ко‰ ‰лfl ‡л„оитм‡ хэшиниfl, обычно со片ет ‰‡й‰жест. • Пе‚ые ‰‚‡ б‡йт‡ ‰‡й‰жест‡ сообщениfl. Эти ‰‚‡ б‡йт‡ используютсfl к‡к с‚ое„о  контольн‡fl сумм‡. Они „‡‡нтиуют, что пиемник использует ильный ключ ID, чтобы ‡сшифть ‰‡й‰жест. • По‰пись. Это поле пееменной ‰лины. Оно со‰ежит з‡шифнный ‰‡й‰жест, по‰пис‡нный пе則тчиком. П‡кет ключ‡ се‡нс‡, з‡шифнный откытым ключом. Этот п‡кет пименflетсfl, чтобы пе則ть ключ се‡нс‡, з‡шифнный откытым ключом пиемник‡. Фом‡т п‡кет‡ пок‡з‡н н‡ ис. 16.17. • Весиfl. Это о‰ноб‡йто‚ое поле опе‰елflет используемую ‚есию PGP. 524
Лекциfl 16
Безоп‡сность н‡ пик뇉ном уо‚не: PGP И S/MIME
• Ключ ID. Это ‚осьмиб‡йто‚ое поле опе‰елflет ID обще‰оступно„о ключ‡ пе則тчик‡. Он ук‡зы‚‡ет пиемнику, к‡кой обще‰оступный ключ пе則тчик‡ ‰олжен использтьсfl, чтобы ‡сшифть ключ се‡нс‡.
• Ал„оитм откыто„о ключ‡. Это о‰ноб‡йто‚ое поле ‰‡ет ко‰ ‰лfl ‡л„оитм‡ откыто„о ключ‡, использнно„о ‰лfl шифниfl ключ‡ се‡нс‡. Пиемник пименflет тот же с‡мый ‡л„оитм, чтобы ‡сшифть ключ се‡нс‡. Рис. 16.17. П‡кет ключ‡ се‡нс‡ • Се‡нс шифниfl. Это обл‡сть пееменной ‰лины, кото‡fl со‰ежит з‡шифнное зн‡чение ключ‡ се‡нс‡, со片нно„о отителем и посл‡нно„о пиемнику. Шифние оснно н‡ сле‰ующих се‰ст‚‡х: ‡. симметичный ‡л„оитм шифниfl с о‰ним октетом; б. ключ се‡нс‡;
‚. контольн‡fl сумм‡ с ‰‚умfl октет‡ми ‡‚нflетсfl сумме октето‚ ключей пе‰ы‰ущих се‡нсо‚. П‡кет откыто„о ключ‡. Этот п‡кет со‰ежит откытый ключ отителfl. Фом‡т п‡кет‡ пок‡з‡н н‡ ис. 16.18. 525
Кус
Киптфиfl и безоп‡сность сетей
Рис. 16.18. П‡кет откыто„о ключ‡ • Весиfl. Эт‡ о‰ноб‡йтfl обл‡сть опе‰елflет используемую ‚есию PGP. • Метк‡ ‚емени. Эт‡ четыехб‡йтfl обл‡сть опе‰елflет ‚емfl, к‡ был со片н ключ. • З‡конность. Эт‡ ‰‚ухб‡йтfl обл‡сть пок‡зы‚‡ет число ‰ней, ‚ по‰олжении котоых ключ fl‚лflетсfl ‰ейст‚ительным. Если зн‡чение ‡‚но 0, это озн‡ч‡ет, что ‰ейст‚ие ключ не з‡к‡нч肇етсfl. • Ал„оитм откыто„о ключ‡. Эт‡ о‰ноб‡йтfl обл‡сть ‰‡ет ко‰ ‰лfl ‡л„оитм‡ откыто„о ключ‡. • Откытый ключ. Эт‡ обл‡сть пееменной ‰лины со‰ежит откытый ключ. Е„о со‰еж‡ние 燂исит от ‡л„оитм‡ откыто„о ключ‡.
П‡кет пользтельско„о ID. Этот п‡кет и‰ентифициует пользтелfl и обычно с‚flзы‚‡ет пользтелfl и со‰еж‡ние с откытым ключом пе則тчик‡. Рисунок 16.19 пок‡зы‚‡ет фом‡т п‡кет пользтельско„о ID. Об‡тите ‚ним‡ние, что поле ‰лины обще„о 燄оло‚к‡ — только о‰ин б‡йт. Рис. 16.19. П‡кет пользтельско„о ID • Пользтельский ID. Эт‡ сток‡ пееменной ‰лины опе‰елflет пользтельский ID пе則тчик‡. Это обычно имfl пользтелfl, сопо‚о扇емое ‡‰есом электонной почты.
PGP-сообщениfl Сообщение ‚ PGP — комбин‡циfl упоfl‰оченных и/или ‚ложенных п‡кето‚. Д‡же питом, что не ‚се комбин‡ции п‡кето‚ мо„ут сост‡‚лflть сообщение, список комбин‡ций п‡кето‚ ‰ост‡точно ‰линный. В этой секции мы пи‚е‰ем несколько пимео‚, чтобы поиллюстить и‰ею. З‡шифнное сообщение З‡шифнное сообщение может быть после‰о‚‡тельностью ‰‚ух п‡кето‚: п‡кет‡ ключ‡ се‡нс‡ и симметично з‡шифнно„о п‡кет‡. После‰ний обычно пе‰ст‡‚лflет собой ‚ложенный п‡кет. Рисунок 16.20 пок‡зы‚‡ет т‡кую комбин‡цию. Об‡тите ‚ним‡ние, что п‡кет ключ‡ се‡нс‡ со‰ежит только е‰инст‚енный п‡кет. З‡шифнный п‡кет ‰‡нных состоит из сж‡то„о п‡кет‡. Сж‡тый п‡кет состоит из п‡кет‡ лите‡льных ‰‡нных. После‰ний со‰ежит лите‡льные ‰‡нные. По‰пис‡нное сообщение 526
Лекциfl 16
Безоп‡сность н‡ пик뇉ном уо‚не: PGP И S/MIME
Рис. 16.20. З‡шифнное сообщение
Рис. 16.21. По‰пис‡нное сообщение По‰пис‡нное сообщение может быть комбин‡цией п‡кет‡ по‰писи и лите‡льно„о п‡кет‡, к‡к это пок‡з‡но н‡ ис. 16.21.
Сообщение сетифик‡т‡ 527
Кус
Киптфиfl и безоп‡сность сетей
Хотfl сообщение сетифик‡т‡ может пиним‡ть множест‚о фом, о‰ин постой пиме — комбин‡циfl пользтельско„о ID п‡кет‡ и п‡кет‡ откыто„о ключ‡, к‡к пок‡з‡но н‡ ис. 16.22. По‰пись з‰есь ‚ычислен‡ ‰лfl после‰о‚‡тельно„о сое‰инениfl ключе‚о„о и пользтельско„о ID. Рис. 16.22. Сообщение сетифик‡т‡
Пиложениfl PGP PGP шиоко пименflлсfl ‰лfl песон‡льной электонной почты. Это использние, ‚еоflтно, по‰олжитсfl.
16.3. S/MIME Ду„‡fl служб‡ безоп‡сности ‡з‡бот‡н‡ ‰лfl электонной почты Безоп‡сное/ Мно„оцеле‚ое ‡сшиение почты (S/MIME — Secure/Multipurpose Internet Mail Extinction). Этот потокол fl‚лflетсfl ‡сшиением Мно„оцеле‚о„о ‡сшиениfl почты (MIME — Multipurpose Internet Mail Extinction). Длfl лучше„о поним‡ниfl S/MIME к‡тко изложим MIME. З‡тем обсу‰им S/MIME к‡к ‰ополнение к MIME.
MIME Электонн‡fl почт‡ имеет постую стуктуу. О‰н‡ко з‡ эту постоту пихо‰итсfl пл‡тить. Почт‡ может пе則ть сообщениfl только ‚ фом‡те NVT ASCII н‡ 7 бито‚. Ду„ими слми, он‡ имеет некотоые ничениfl. Н‡пиме, он‡ не может ‡бот‡ть с flзык‡ми, котоые не пеж‡ны сим‚ол‡ми ASCII (т‡кими к‡к ‡‡бский flзык, кит‡йский, ф‡нцузский, немецкий, и‚ит, flпонский, усский). Т‡кже он‡ не может использтьсfl ‰лfl пе則чи ‰‚оичных ф‡йло‚ или ‚и‰ео- и ‡у‰инных. MIME — это ‰ополнительные потоколы, котоые поз‚олflют ‰‡нным, не пе則‚‡емым с помощью ASCII, похо‰ить по электонной почте. MIME пеоб‡зо‚ы‚‡ет т‡кие ‰‡нные н‡ стооне пе則тчик‡ к ‰‡нным NVT ASCII и пост‡‚лflет их клиенту MTA по сети Интенет. Сообщение н‡ пиемной стооне пеоб‡зуетсfl сн к пе‚он‡ч‡льному ‚и‰у. Мы можем пе‰ст‡‚лflть себе MIME к‡к множест‚о пммных функций, котоые пеоб‡зо‚ы‚‡ют ‰‡нные, не пе則‚‡емые ‚ ASCII, к ‰‡нным ASCII, и н‡обоот, к‡к пок‡з‡но н‡ ис. 16.23. MIME опе‰елflет пflть 燄оло‚ко‚ (со‰еж‡ниfl), котоые можно ‰оᇂить к пе‚он‡ч‡льной электонной почте, чтобы опе‰елить меты пеоб‡зниfl: 1. Version — MIME (‚есиfl); 2. Content — Type (Со‰еж‡ние – тип); 3. Content — Transfer – Encoding (Со‰еж‡ние – Пе則ч‡ – Шифние); 4. Content — ID (Со‰еж‡ние – ID); 5. Content — Description (Со‰еж‡ние – Опис‡ние).
528
Лекциfl 16
Безоп‡сность н‡ пик뇉ном уо‚не: PGP И S/MIME
Рис.16.23. MIME
Рис. 16.24. MIME 燄оло‚ок Рисунок 16.24 пок‡зы‚‡ет 燄оло‚ки MIME. Д‡лее ‰‡етсfl более по‰обное опис‡ние к‡ж‰о„о из 燄оло‚ко‚. MIME-‚есиfl Этот 燄оло‚ок опе‰елflет ‚есию используемо„о MIME. Текущ‡fl ‚есиfl имеет номе 1.1. Version MIME: 1.1 Content-Type Этот 燄оло‚ок опе‰елflет тип ‰‡нных, используемых ‚ тексто‚ом блоке сообщениfl (‚ «теле» сообщениfl), и по‰тип со‰еж‡ниfl, от‰еленный н‡клонной четой.  燂исимости от по‰тип‡ з‡„оло‚ок может со‰еж‡ть ‰у„ие меты. Content – Type: 529
Кус
Киптфиfl и безоп‡сность сетей
MIME поз‚олflет семь ‡зличных типо‚ ‰‡нных. Они пеечислены ‚ т‡блице 16.14 и ниже опис‡ны более по‰обно. • Текст. Пе‚он‡ч‡льное сообщение н‡хо‰итсfl ‚ фом‡те ASCII н‡ 7 бито‚, и пеоб‡зние MIME не тебуетсfl. Есть ‰‚‡ по‰тип‡, ‚ н‡стоflщее ‚емfl используемые: исхо‰ное и HTML. • Мно„оэлементный. Тексто‚ый блок со‰ежит множест‚енные не燂исимые ч‡сти. Мно„оэлементный 燄оло‚ок ‰олжен опе‰елить „‡ницу меж‰у к‡ж‰ой ч‡стью. Длfl этой цели используетсfl мет. П‡‡мет — стоко‚ый сим‚ол, котоый ст‡‚итсfl пее‰ к‡ж‰ой ч‡стью, ‰лfl от‰ельной линии и с пе‰шест‚ующими ‰‚умfl ‰ефис‡ми. Тексто‚ый блок использует „‡ничный сим‚ол, котоому т‡кже пе‰шест‚уют ‰‚‡ ‰ефис‡. Длfl это„о тип‡ опе‰елены четые по‰тип‡: смеш‡нный, ллельный, ‰‡й‰жест и ‡льтен‡т肇. В смеш‡нном по‰типе ч‡сти ‰олжны быть пе‰ст‡‚лены получ‡телю точно ‚ том же поfl‰ке, к‡к и ‚ сообщении. Т‡блиц‡ 16.14. Типы и по‰типы ‰‡нных ‚ MIME Тип
Мно„оэлементный (Multipart)
Сообщение (Message)
Изоб‡жение (Image) Ви‰ео (Video) Ау‰ио (Audio) Пиложение (Application)
По‰тип Обычный (Plain) HTML Смеш‡нный (Mixed)
Опис‡ние Нефом‡тинный Фом‡т HTML Блок со‰ежит упоfl‰оченные ч‡сти ‰‡нных ‡злично„о тип‡. П‡‡ллельный (Parallel) То же с‡мое, что ‚ыше, но неупоfl‰оченное. Д‡й‰жест (Digest) Тот же с‡мый, что смеш‡нный, но по умолч‡нию тип – Message / RFC822 Альтен‡ти‚ный Ч‡сти ‡зличных ‚есий о‰но„о (Alternative) и то„о же сообщениfl. RFC822 В блоке инк‡псулино сообщение Ч‡стичное (Partial) Блок – это ф‡„мент ‰у„о„о – больше„о сообщениfl. Внешний текст Блок – это ссылк‡ н‡ ‰у„ое (External-Body) сообщение. JPEG Изоб‡жение ‚ фом‡те JPEG GIF Изоб‡жение ‚ фом‡те GIF MPEG Ви‰ео ‚ фом‡те MPEG Осно‚ное (Basic) О‰иночный к‡н‡л „олосо‚о„о сообщениfl ‚ полосе 8 КГц Язык опис‡ниfl Язык опис‡ниfl – Adobe PostScript (PostScript) Поток октето‚ Обычные ‰‚оичные ‰‡нные (Octet-stream) (‚осьмибито‚ые б‡йты). 530
Лекциfl 16
Безоп‡сность н‡ пик뇉ном уо‚не: PGP И S/MIME
ʇ扇fl ч‡сть имеет ‡зличный тип и опе‰елflет „‡ницы. П‡‡ллельный по‰тип по‰обен смеш‡нному по‰типу, з‡ исключением то„о, что поfl‰ок сле‰о‚‡ниfl ч‡стей не 脇ет оли. По‰тип ‰‡й‰жест‡ т‡кже по‰обен смеш‡нному по‰типу з‡ исключением то„о, что по умолч‡нию тип/по‰тип (type/subtype) имеет зн‡чение сообщение (message)/RFC822, к‡к это опе‰елено ниже. В ‡льтен‡ти‚ном по‰типе то же с‡мое сообщение по‚тоено, используfl ‡зличные фом‡ты. Д‡лее — пиме мно„оэлементно„о сообщениfl, использует смеш‡нный по‰тип: Content-Type: multipart/mixed; boundary=xxxx —xxxx Content -Type: text/plain; —xxxx Content –Type: image/gif; …………………………. —xxxx— • Сообщение. В типе сообщениfl со‰еж‡ние — полное с‡мостоflтельное сообщение почты, либо ч‡сть сообщениfl почты, либо ук‡з‡тель н‡ сообщение. В н‡стоflщее ‚емfl используютсfl ти по‰тип‡ (RFC822, ч‡стичные (partial) и ‚нешнее тело (external-body)). По‰тип RFC822 пименflетсfl, если ‚ со‰еж‡ние ‚ключено сообщение, фомиующее ‰у„ое сообщение (‚ключ‡fl 燄оло‚ок и тело). Ч‡стичный по‰тип используетсfl, если пе‚он‡ч‡льное сообщение было ф‡„ментино ‚ несколько ‡зличных почто‚ых сообщений и ‰‡нное сообщение почты — это о‰ин из ф‡„менто‚. Ф‡„менты ‰олжны быть по‚тоно соб‡ны ‚ пункте н‡зн‡чениfl MIME. К сообщению ‰оᇂлflютсfl ти мет‡: ID, номе и общее количест‚о. ID и‰ентифициует сообщение и писутст‚ует ‚о ‚сех ф‡„мент‡х. Номе опе‰елflет поfl‰ок и число ф‡„менто‚, котоые ‚ключ‡ет ‚ себfl пе‚он‡ч‡льное сообщение. Ниже пи‚о‰итсfl пиме сообщениfl с темfl ф‡„мент‡ми: Content-Type: message/partial; id=”[email protected]”; number=1; total=3; ………… ………… По‰тип «‚нешний текст» ук‡зы‚‡ет, что инфом‡циfl не со‰ежит н‡стоflще„о сообщениfl, ‡ только ссылку (ук‡з‡тель) н‡ пе‚он‡ч‡льное сообщение. П‡‡меты это„о по‰тип‡ опе‰елflют, к‡к получить ‰оступ к пе‚он‡ч‡льному сообщению. Ниже пи‚е‰ен пиме: Content- Type: message/ external-body; name=”report.text”; site=”fhda.edu”; access-type=”ftp”; ………….. 531
Кус
Киптфиfl и безоп‡сность сетей
…………... • Изоб‡жение. Пе‚он‡ч‡льное сообщение — непижное изоб‡жение — ук‡зы‚‡ет н‡ то, что нет ник‡кой мультиплик‡ции. В н‡стоflщее ‚емfl используетсfl ‰‚‡ по‰тип‡: Объе‰иненн‡fl Экспетн‡fl „упп‡ по фотфии (JPEG — Joint Photographic Expert Group), котоый поз‚олflет сж‡ть изоб‡жение, и Фом‡т Обмен‡ Г‡фическими Ф‡йл‡ми (GIF — Graphics Interchange Format). • Ви‰ео. Пе‚он‡ч‡льное сообщение — изменflющеесfl по ‚емени изоб‡жение (мультиплик‡циfl). Е‰инст‚енный по‰тип — Гупп‡ экспето‚ по ‰‚ижущимсfl изоб‡жениflм (MPEG — Moving Picture Experts Group). Если ‰‚ижущеесfl изоб‡жение сопо‚о扇етсfl з‚уко‚ым fl‰ом, е„о нужно посл‡ть от‰ельно, используfl з‚уко‚ой (audio) 燄оло‚ок «со‰еж‡ние — тип». • Ау‰ио. Пе‚он‡ч‡льное сообщение fl‚лflетсfl з‚уко‚ым. Осно‚ным fl‚лflетсfl е‰инст‚енный по‰тип, котоый использует ст‡н‰‡тный ‡у‰иок‡н‡л н‡ 8 кГц. • Пиложение. Пе‚он‡ч‡льное сообщение — тип ‰‡нных, не опе‰еленных п剂‡ительно. В н‡стоflщее ‚емfl пименflетсfl только ‰‚‡ по‰тип‡: PostScript и поток октето‚. PostScript (flзык опис‡ниfl ст‡ниц) используетсfl, к‡ ‰‡нные н‡хо‰flтсfl ‚ фом‡те Adobe PostScript. Поток октето‚ нужен, к‡ ‰‡нные ‰олжны интепетитьсfl к‡к после‰о‚‡тельность б‡йто‚ по 8 бито‚ (‰‚оичный ф‡йл). Content — Transfer — Encoding (Со‰еж‡ние — Пе則ч‡ — Ко‰иние) Этот 燄оло‚ок опе‰елflет мето‰, используемый ‰лfl ко‰иниfl сообщениfl ‚ ‚и‰е нулей и е‰иниц ‰лfl т‡нспотио‚ки чеез сеть. Content – Transfer – Encoding: Пflть типо‚ мето‰о‚ шифниfl пи‚е‰ены ‚ т‡блице 16.15. Т‡блиц‡ 16.15. Content — Transfer — Encoding (Со‰еж‡ние — Пе則ч‡ — Шифние) Тип 7 бит 8 бит
Опис‡ние NVT ASCII сим‚олы и кооткие стоки Сим‚олы, не отоб‡ж‡емые ‚ ASCII (Non-ASCII); сим‚олы и кооткие линейки Д‚оичный Сим‚олы, не отоб‡ж‡емые ‚ ASCII (Non-ASCII); сим‚олы и нелимитинные линейки Radix-64 6-бито‚ые блоки, з‡шифнные по 8 бит, ‚ сим‚олы ASCII, использующие пеоб‡зние Radix-64 conversion О„‡ниченн‡fl Сим‚олы, не отоб‡ж‡емые ‚ ASCII (Non-ASCII) и з‡шифопеч‡тн‡fl сток‡ ‚‡нные к‡к эк‚肇лентные зн‡ки к ASCII
532
Лекциfl 16
Безоп‡сность н‡ пик뇉ном уо‚не: PGP И S/MIME
• 7bit. Это 7 бит, з‡ко‰инные ‚ NVT ASCII. Хотfl ник‡ко„о специ‡льно„о пеоб‡зниfl з‰есь не тебуетсfl, но необхо‰имо, чтобы ‰лин‡ линейки не пе‚ыш‡л‡ 1000 сим‚оло‚. • 8bit. Это з‡ко‰инные по 8 бито‚ сим‚олы не-ASCII, котоые можно пе則ть по к‡н‡лу, но ‰лин‡ линейки не ‰олжн‡ пе‚ыш‡ть 1000 сим‚оло‚. MIME ‚ этом случ‡е ниче„о не ко‰иует; осно‚ной SMTP поз‚олflет пе則чу 8-бито‚ых сим‚оло‚ не-ASCII . Поэтому этот тип не екомен‰уетсfl. Пе‰почтительней пименflть типы Radix 64 и «писпособленный ‰лfl печ‡ти». • Д‚оичный. Это з‡ко‰инные по 8 бито‚ сим‚олы не-ASCII, котоые можно пе則ть по к‡н‡лу, но ‡зеш‡етсfl ‰лин‡ линейки более 1000 сим‚оло‚. MIME ‚ этом случ‡е ниче„о не ко‰иует; осно‚ной потокол SMTP поз‚олflет пе則чу ‰‚оичных ‰‡нных. Поэтому этот тип не екомен‰уетсfl. Пе‰почтительней пименflть типы Radix 64 и «о„‡ниченную печ‡тную стоку». • Radix-64. Этот тип поз‚олflет пе則‚‡ть ‰‡нные, состоflщие из б‡йто‚, к‡ с‡мый ‚ысокий ‡зfl‰ный бит — не обflз‡тельно ‡‚ный нулю. Radix-64 пеоб‡зо‚ы‚‡ет этот тип ‰‡нных к сим‚ол‡м тип‡ «о„‡ниченн‡fl печ‡тн‡fl стоꇻ, котоые можно т‡ посл‡ть к‡к сим‚олы ASCII или любой тип сим‚оло‚, пеж肇емый осно‚ными ‡л„оитм‡ми пе則чи почты. Radix-64 ‡з‰елflет ‰‚оичные (потоки бит) ‚ блоки по 24 бит‡. К‡ж‰ый блок з‡тем ‡з‰елflетсfl н‡ четые секции, к‡ж‰‡fl состоит из 6 бит (см. ис. 16.25). ʇ扇fl секциfl н‡ 6 бито‚ интепетиуетсfl к‡к о‰ин сим‚ол со„л‡сно Т‡блице 16.16. • О„‡ниченн‡fl печ‡тн‡fl сток‡ (Quoted-printable). Radix-64 — избыточн‡fl схем‡ ко‰иниfl: то есть 24 бит‡ пеоб‡зуютсfl ‚ четые сим‚ол‡ и ‚ ко-
нечном счете посыл‡ютсfl к‡к 32 бит‡. Мы имеем избыточность 25 поценто‚. Если ‰‡нные состоflт „뇂ным об‡зом из сим‚оло‚ ASCII с небольшой м‡ленькой ч‡стью не-ASCII, мы можем использть ко‰иние тип‡ Quoted-printable («о„‡ниченн‡fl печ‡тн‡fl стоꇻ). Если это сим‚ол ASCII, то е„о посыл‡ют без пеоб‡зниfl. Если сим‚ол — не ASCII, е„о посыл‡ют к‡к ти сим‚ол‡. Пе‚ый сим‚ол — зн‡к ‡‚енст‚‡ (=). Сле‰ующие ‰‚‡ сим‚ол‡ — шест퇉ц‡теичное пе‰ст‡‚ление б‡йт‡. Н‡ исунке 16.26 пок‡з‡н пиме. 533
Кус
Киптфиfl и безоп‡сность сетей
Т‡блиц‡ 16.16. Т‡блиц‡ ко‰иниfl Radix-64
Рис. 16.26. О„‡ниченн‡fl печ‡тн‡fl сток‡ (Quoted printable)
Рис. 16.25. Пеоб‡зние Radix-64 Content-Id (Со‰еж‡ние-Id) Этот 燄оло‚ок уник‡льно и‰ентифициует целое сообщение се‰и мно„их сообщений Content-Id : id = (со‰еж‡ние id) Content-Description (Со‰еж‡ние-Опис‡ние) Этот 燄оло‚ок опе‰елflет, fl‚лflетсfl ли блок инфом‡ции непижным изоб‡жением, ‡у‰ио или ‚и‰ео. Content – Description : <опис‡ние> 534
Лекциfl 16
Безоп‡сность н‡ пик뇉ном уо‚не: PGP И S/MIME
S/MIME S/MIME ‰оᇂлflет некотоые но‚ые типы 燄оло‚ко‚-со‰еж‡ниfl, чтобы ‚ключить службы безоп‡сности ‚ MIME. Все эти но‚ые типы ‚ключ‡ют мет «application/pkcsP-mime», ‚ котоом «pkcs (Public Key Cryptography Specification)» опе‰елflет «Специфик‡цию киптфии откыто„о ключ‡». Синт‡ксис киптфическо„о сообщениfl Чтобы опе‰елflть услу„и безоп‡сности, т‡кие к‡к конфи‰енци‡льность или целостность, можно ‰оᇂить к тип‡м со‰еж‡ниfl MIME, S/MIME опе‰елитель киптфический синт‡ксис сообщениfl (СМS —Cryptographic Message Syntax). Синт‡ксис ‚ к‡ж‰ом случ‡е опе‰елflет точную схему ко‰иниfl к‡ж‰о„о тип‡ со‰еж‡ниfl. Ниже ‡ссм‡т肇ютсfl типы сообщениfl и ‡зличные по‰типы, котоые мо„ут быть со片ны из этих сообщений. Длfl ‰ет‡льно„о изучениfl можно почит‡ть [RFC3369] и [3370]. Тип со‰еж‡ниfl ‰‡нных — поиз‚ольн‡fl сток‡. Со片нный объект н‡зы‚‡етсfl Д‡нными. Signed — Data Content Type (тип со‰еж‡ниfl — по‰пис‡нные ‰‡нные). Этот тип обеспеч肇ет только целостность ‰‡нных. Он со‰ежит любой тип и нуле‚ое или большее количест‚о по‰писей. Ко‰иуемый езульт‡т — объект, н‡зы‚‡емый signedData. Рисунок 16.27 пок‡зы‚‡ет поцесс со片ниfl объект‡ это„о тип‡. В поцессе используютсfl сле‰ующие ш‡„и.
Рис. 16.27. Со‰еж‡ние тип‡ «по‰пис‡нные ‰‡нные» 535
Кус
Киптфиfl и безоп‡сность сетей
1. Длfl к‡ж‰о„о по‰писы‚‡юще„о лиц‡ ‰‡й‰жест сообщениfl со片ет 燄оло‚ок-со‰еж‡ние, используfl 燉‡нный ‡л„оитм хэшиниfl, котоый ‚ыби‡етсfl некотоым по‰писы‚‡ющим лицом. 2. К‡ж‰ый ‰‡й‰жест сообщениfl по‰писы‚‡етсfl секетным ключом по‰писы‚‡юще„о лиц‡. 3. Со‰еж‡ние, зн‡чениfl по‰писи и сетифик‡т‡, ‡ т‡кже ‡л„оитмы з‡тем соби‡ютсfl ‰лfl со片ниfl объект‡ signedData. Enveloped — Data Content Type (тип со‰еж‡ниfl — кон‚ет ‰‡нных). Этот тип используетсfl, чтобы обеспечить секетность сообщениfl. Он со‰ежит любой тип от нулfl и ‰‡лее з‡шифнных ключей и сетифик‡то‚. Ко‰иуемый езульт‡т — объект, н‡зы‚‡емый envelopedData. Рисунок 16.28 пок‡зы‚‡ет поцесс со片ниfl объект‡ это„о тип‡.
1. Со片етсfl пс傉ослуч‡йный ключ се‡нс‡ ‰лfl ‡л„оитмо‚ с симметичными ключ‡ми. 2. Длfl к‡ж‰о„о получ‡телfl копиfl ключ‡ се‡нс‡ з‡шифо‚‡н‡ с откытым ключом к‡ж‰о„о получ‡телfl. 3. Со‰еж‡ние з‡шифно, используfl опе‰еленный ‡л„оитм и со片нный ключ се‡нс‡. 4. З‡шифнное со‰еж‡ние, з‡шифнный ключ се‡нс‡. Использнный ‡л„оитм и сетифик‡ты ко‰иуютсfl с пименением RADIX-64. Рис. 16.28. Со‰еж‡ние тип‡ «кон‚ет ‰‡нных»
536
Лекциfl 16
Безоп‡сность н‡ пик뇉ном уо‚не: PGP И S/MIME
Рис. 16.29. Со‰еж‡ние тип‡ ‰‡й‰жест ‰‡нных Digest-Data Content Type (Со‰еж‡ние тип‡ «‰‡й‰жест ‰‡нных»). Этот тип пименflетсfl, чтобы обеспечить целостность сообщениfl. Результ‡т обычно используетсfl к‡к со‰еж‡ние тип‡ «кон‚ет ‰‡нных». Ко‰иуемый езульт‡т — объект, н‡зы‚‡емый digestedDate. Рисунок 16.29 пок‡зы‚‡ет поцесс со片ниfl объект‡ это„о тип‡. 1. Д‡й‰жест сообщениfl ‚ычислен н‡ осннии со‰еж‡ниfl. 2. Д‡й‰жест сообщениfl, ‡л„оитм и со‰еж‡ние ‰оᇂлflютсfl ‚месте, чтобы со片ть digestData.
Рис. 16.30. Со‰еж‡ние тип‡ «по‰т‚еж‰ение по‰линности» 537
Кус
Киптфиfl и безоп‡сность сетей
Encrypted-Data Content Type (Тип со‰еж‡ниfl «з‡шифнные ‰‡нные»). Этот тип пименflетсfl, чтобы со片ть з‡шифнную ‚есию со‰еж‡ниfl любо„о тип‡. Хотfl он похож н‡ тип со‰еж‡ниfl «кон‚ет ‰‡нных», но не имеет инфом‡ции о получ‡теле. Он может использтьсfl, чтобы х‡нить з‡шифнные ‰‡нные, ‚место то„о, чтобы пе則‚‡ть их. Поцесс очень пост: пользтель пименflет любой ключ (ном‡льно, исхо‰fl из п‡олfl) и любой ‡л„оитм, чтобы з‡шифть со‰еж‡ние. З‡шифнное со‰еж‡ние сох‡нflетсfl без з‡писи ключ‡ или ‡л„оитм‡. Со片нный объект н‡зы‚‡етсfl encryptedDuta. Authenticated-Data Content Type (тип со‰еж‡ниfl — по‰т‚еж‰ение по‰линности ‰‡нных). Этот тип используетсfl, чтобы обеспечить уст‡но‚ление по‰линности ‰‡нных. Объект н‡зы‚‡етсfl authenticatedData. Рисунок 16.30 пок‡зы‚‡ет поцесс. 1. С пименением пс傉ослуч‡йно„о „ене‡то‡ ‰лfl к‡ж‰о„о получ‡телfl „енеиуетсfl ключ к, по‰т‚е扇ющий по‰линность сообщениfl (MAC — Message Authentication Code). 2. Ключ к, по‰т‚е扇юще„о по‰линность сообщениfl, з‡шифн откытым ключом получ‡телfl. 3. Ко‰, по‰т‚е扇ющий по‰линность сообщениfl, соз‰‡н ‰лfl со‰еж‡ниfl. 4. Со‰еж‡ние, ко‰, по‰т‚е扇ющий по‰линность сообщениfl, ‡л„оитм и ‰у„ие ‰‡нные соб‡ны ‚месте ‚ фом‡те объект‡ с именем authenticatedData.
Т‡блиц‡ 16.17. Киптфические ‡л„оитмы ‰лfl S/MIME Ал„оитм
Пе則тчик ‰олжен пеж肇ть Triple DES
Ал„оитм з‡шифнно„о со‰еж‡ниfl Ал„оитм RSA шифниfl ключ‡ се‡нс‡ Хэш-‡л„оитм SHA-1 Ал„оитм DSS шифниfl ‰‡й‰жест‡ Ал„оитм опе‰елениfl по‰линности
Пиемник Пе則тчик ‰олжен может пеж肇ть пеж肇ть Triple DES
RSA
SHA-1 DSS
Пиемник может пеж肇ть l. AES 2. RC2/40
Diffie-Hellman Diffie-Hellman (Диффи(ДиффиХеллм‡н) Хеллм‡н) MD5 RSA RSA
HMAC с SHA-1
Уление ключ‡ми Уление ключ‡ми ‚ S/MIME — это комбин‡циfl улениfl ключ‡ми, используемо„о ‚ X.509 и PGP. S/MIME использует сетифик‡т откыто„о ключ‡, котоый по‰пис‡н у‰осто‚еflющей ‡‰минист‡цией, опе‰еленной X.509. О‰н‡ко пользтель несет от‚етст‚енность по пежке сети ‰о‚еиfl ‰лfl по‚еки по‰писи, к‡к это опе‰елено PGP. 538
Лекциfl 16
Безоп‡сность н‡ пик뇉ном уо‚не: PGP И S/MIME
Киптфические ‡л„оитмы S/MIME опе‰елflет несколько киптфических ‡л„оитмо‚, к‡к это пок‡з‡но ‚ т‡блице 16.17. Темин «‰олжен» озн‡ч‡ет ‡бсолютное тебние; темин «может» озн‡ч‡ет екоме퉇цию. Ниже пок‡з‡н пиме кон‚ет‡ ‰‡нных, ‚ котоом м‡ленькое сообщение з‡шифно с использнием техк‡тно„о DES. Content-Type: application/pkcs7-imme; mime-type=enveloped-data Content-Transfer-Encoding: Radix-64 Content-Description: attachment Name= “report.txt”; cb32ut67f4bhijHU21oi87eryb0287hmnklsgFDoY8bc659GhIGfH6543mhjkdsaH 23YjBnmNybmlkzjhgfdyhGe23Kjk34XiuD678Esl6se09jy76jHuytTMDcbnmlkjg fFdiuyu67.S543mOn3tiG34un12P2454Hoi87e2rybOH2MjN6KuyrlsgFDoY897f k923jljk1301 XiuD6gh78EsUyT23y
Пиложениfl S/MIME Пе‰по뇄‡етсfl, что S/MIME бу‰ет ‚ыб‡н помышленностью ‰лfl обеспечениfl безоп‡сности коммеческой электонной почты.
16.4. Рекомен‰о‚‡нн‡fl лите‡ту‡ Длfl более ‰ет‡льно„о изучениfl положений, обсуж‰енных ‚ этой лекции, мы екомен‰уем нижесле‰ующие кни„и и с‡йты. Пункты, ук‡з‡нные ‚ скобк‡х, пок‡з‡ны ‚ списке ссылок ‚ конце кни„и.
Кни„и Электонн‡fl почт‡ ‡ссм‡т肇етсfl ‚ [For06] и [For07]. PGP ‡ссм‡т肇етсfl ‚ [Sta06], [KPS02J] и [Rhe03]. S/MIME ‡ссм‡т肇етсfl ‚ [Sta06] и [lRhe03].
С‡йты Нижесле‰ующие с‡йты ‰‡ют больше инфом‡ции о тем‡х, обсуж‰енных ‚ этой лекции. http://axion.physics.ubc.ca/pgp-begin.html csrc.nist.gov/publications/nistpubs/800-49/sp800-49.pdf www.faqs.org/rfcs/rfc2632.html
16.5. Ито„и • Поскольку пи использнии электонной почто‚ой с‚flзи отсутст‚ует се‡нс, пе則тчик сообщениfl ‰олжен ‚ключить ‚ сообщение н‡з‚‡ниfl или 539
Кус
Киптфиfl и безоп‡сность сетей
и‰ентифик‡тоы ‡л„оитмо‚, используемых ‚ электонной почте. В электонной почте шифние/‰ешифние ‰ел‡етсfl пи помощи ‡л„оитм‡ с симметичными ключ‡ми, но пи этом ключ з‡секеч肇ниfl ‰лfl ‡сшифо‚ки сообщениfl з‡шифн откытым ключом пиемник‡ и пе則етсfl с сообщением. • Пе‚ый потокол, ‡ссмотенный ‚ этой лекции, н‡зы‚‡етсfl «Очень хоошей конфи‰енци‡льностью» (PGP). Он был изобетен Филом Циммем‡ном ‰лfl обеспечениfl электонной почты услу„‡ми секетности, целостности и уст‡но‚лениfl по‰линности. PGP может использтьсfl ‰лfl то„о, чтобы со片ть безоп‡сное почто‚ое сообщение или 퇉ежно х‡нить ф‡йл ‰лfl бу‰уще„о чтениfl. • В PGP Алис‡ ну扇етсfl ‚ кольце откытых ключей ‰лfl к‡ж‰о„о чело‚ек‡, с котоым он‡ пееписы‚‡етсfl. Он‡ т‡кже ну扇етсfl ‚ кольце пи퇉леж‡щих ей ч‡стных/откытых ключей. • В PGP не нужны Центы Сетифик‡ции; любой ‚ кольце может по‰пис‡ть сетифик‡т ‰лfl ко„о-либо еще ‚ этом кольце. В PGP нет ие‡хии ‰о‚еиfl; нет ‰е傇 ие‡хии. Может быть мно„о путей от ‡‰минист‡ции, котоой полностью или ч‡стично ‰о‚еflют, к любому объекту. • Р‡бот‡ PGP б‡зиуетсfl н‡ ‰о‚еии поучителfl, уо‚не ‰о‚еиfl и з‡конности откытых ключей. PGP низует сеть ‰о‚еиfl меж‰у „упп‡ми лю‰ей. • PGP опе‰елил несколько типо‚ п‡кето‚: лите‡льных ‰‡нных, сж‡тый п‡кет ‰‡нных, п‡кет ‰‡нных, з‡шифнный ключом з‡секеч肇ниfl, п‡кет по‰писи, п‡кет ключ‡ се‡нс‡, з‡шифнный откытым ключом, п‡кет откыто„о ключ‡ и пользтельский ID п‡кет‡. • В PGP мы имеем несколько типо‚ сообщений: з‡шифнное сообщение, по‰пис‡нное сообщение и сообщение сетифик‡т‡. • Ду„‡fl служб‡ безоп‡сности, ‡з‡бот‡нн‡fl ‰лfl электонной почты: • Безоп‡сное/Мно„оцеле‚ое ‡сшиение Интенет-почты (S/MIME). Потокол мно„оцеле‚о„о ‡сшиениfl Интенет-почты (MIME) — это потокол, котоый fl‚лflетсfl ‰ополнительным потоколом и поз‚олflет не-ASCII ‰‡нные посыл‡ть чеез электонную почту. По отношению к MIME S/MIME ‰ополнflетсfl некотоыми но‚ыми тип‡ми со‰еж‡ниfl ‰лfl обеспечениfl службы безоп‡сности. • Киптфический синт‡ксис сообщениfl (CMS) опе‰елflет несколько типо‚ сообщений — они со片ютсfl н‡ осно‚е но‚ых типо‚ со‰еж‡ниfl, котоые ‰оᇂлflютсfl к MIME. В этой лекции упомин‡лись несколько типо‚ сообщениfl, т‡ких к‡к: тип со‰еж‡ниfl ‰‡нных, тип со‰еж‡ниfl по‰пис‡нных ‰‡нных, тип со‰еж‡ниfl кон‚ет‡ ‰‡нных, тип со‰еж‡ниfl ‰‡й‰жест‡ ‰‡нных, тип со‰еж‡ниfl з‡шифнных ‰‡нных и тип со‰еж‡ниfl ‰‡нных, по‰т‚е扇ющих по‰линность. • Уление ключ‡ми ‚ S/MIME — это комбин‡циfl улениfl ключ‡ми, используем‡fl X.509 и PGP. S/MIME использует откытый ключ, по‰пис‡нный у‰осто‚еflющей ‡‰минист‡цией.
540
Лекциfl 16
Безоп‡сность н‡ пик뇉ном уо‚не: PGP И S/MIME
16.6. Н‡бо ‰лfl п‡ктики Обзоные ‚опосы 1. Объflсните, к‡к Боб, к‡ он получ‡ет PGP-сообщение от Алисы, узн‡ет, к‡кие киптфические ‡л„оитмы он‡ использл‡. 2. Объflсните, к‡к Боб узн‡ет, к‡кой киптфический ‡л„оитм Алис‡ использл‡, к‡ получ‡ет S/MIME-сообщение от нее. 3. Объflсните, к‡к Боб и Алис‡ ‚ PGP обмен肇ютсfl секетным ключом шифниfl сообщений. 4. Объflсните, к‡к Боб и Алис‡ обмен肇ютсfl секетным ключом шифниfl сообщений. 5. С‡‚нить схо‰ст‚о и ‡зличиfl сетифик‡то‚ ‚ PGP и S/MIME. Объflсните сеть ‰о‚еиfl, кото‡fl пименflетсfl ‰лfl сетифик‡ции ‚ PGP и ‚ S/MIME. 6. Н‡зо‚ите семь типо‚ п‡кето‚, используемых ‚ PGP, и объflсните их цели. 7. Н‡зо‚ите ти тип‡ сообщений ‚ PGP и объflсните их цели. 8. Н‡зо‚ите ‚се типы со‰еж‡ниfl, опе‰еленные CMD, и их цели. 9. С‡‚ните со‚ениfl и отличиfl уление ключ‡ми ‚ PGP и S/MIME.
Уп‡жнениfl 1. Боб получ‡ет PGP-сообщение. К‡к он может узн‡ть тип п‡кет‡, если зн‡чение метки: ‡. 8 б. 9 ‚2 2. В PGP ‚ почто‚ом сообщении можно использть ‰‚‡ ‡зличных ‡л„оитм‡ откыто„о ключ‡ ‰лfl шифниfl и по‰писи. К‡к это опе‰елflетсfl ‚ сообщении, пе則‚‡емом от Алисы к Бобу? 3. От‚етьте н‡ сле‰ующие ‚опосы о зн‡чениflх метки ‚ PGP. ‡. Может ли п‡кет со зн‡чением метки 1 со‰еж‡ть ‰у„ой п‡кет? б. Может ли п‡кет со зн‡чением метки 6 со‰еж‡ть ‰у„ой п‡кет? 4. К‡кие типы п‡кето‚ нужно пе則ть ‚ PGP, чтобы обеспечить сле‰ующие услу„и безоп‡сности: ‡. Конфи‰енци‡льность б. Целостность сообщениfl ‚. Опе‰еление по‰линности „. Исключение отк‡з‡ от ф‡кт‡ пинflтиfl сообщениfl ‰. Комбин‡циfl ‡ и б е. Комбин‡циfl ‡ и ‚ ж. Комбин‡циfl ‡, б и ‚ з. Комбин‡циfl ‡, б, ‚ и „. 5. К‡кой тип со‰еж‡ниfl ‚ S/MIME обеспеч肇ет сле‰ующие услу„и безоп‡сности: ‡. конфи‰енци‡льность б. целостность сообщениfl ‚. уст‡но‚ление по‰линности „. исключение отк‡з‡ от ф‡кт‡ пинflтиfl сообщениfl 541
Кус
Киптфиfl и безоп‡сность сетей
Лекциfl 17. Безоп‡сность н‡ т‡нспотном уо‚не: SSL И TLS Цели и со‰еж‡ние Эт‡ лекциfl имеет несколько целей. • Обсу‰ить потебности ‚ услу„‡х безоп‡сности н‡ т‡нспотном уо‚не мо‰ели Интенет. • Обсу‰ить общую ‡хитектуу SSL. • Обсу‰ить общую ‡хитектуу TLS. • С‡‚нить и пок‡з‡ть отличиfl SSL и TLS. Безоп‡сность т‡нспотно„о уо‚нfl обеспеч肇ет услу„и безоп‡сности «из конц‡ ‚ конец» ‰лfl пиложений, котоые используют потоколы т‡нспотно„о уо‚нfl, т‡кие к‡к TCP. Осно‚ные и‰еи пе‰н‡зн‡чены ‰лfl то„о, чтобы обеспечить услу„и безоп‡сности н‡ сети Интенет. Н‡пиме, к‡ ‚ сети имеютсfl инте‡кти‚но ‡бот‡ющие онл‡йн(online)-쇄‡зины, то жел‡тельны сле‰ующие услу„и безоп‡сности: 1. Клиент ‰олжен убе‰итьсfl, что се‚е пи퇉лежит ф‡ктическому п‚цу, ‡ не с‡мо炇нцу. Клиент не хочет сообщ‡ть с‡мо炇нцу номе ке‰итной к‡точки (уст‡но‚ление по‰линности объект‡). 2. Клиент и п‚ец ‰олжны быть убеж‰ены, что со‰еж‡ние сообщениfl не изменено ‚ течение пе則чи (целостность сообщениfl). 3. Клиент и п‚ец ‰олжны быть убеж‰ены, что с‡мо炇нец не пеех‚‡тит чу‚ст‚ительную инфом‡цию, т‡кую к‡к номе ке‰итной к‡точки (конфи‰енци‡льность). Се„о‰нfl пименflютсfl ‚ осно‚ном ‰‚‡ потокол‡ обеспечениfl безоп‡сности н‡ т‡нспотном уо‚не: Потокол «Уо‚ень безоп‡сных озеток» (SSL — Secure Socket Layer) и Потокол Безоп‡сности Т‡нспотно„о уо‚нfl (TLS — Transport Layer Security). Мы сн‡ч‡л‡ обсу‰им SSL, з‡тем TLS, ‡ потом их с‡‚ним и пок‡жем их отличиfl ‰у„ от ‰у„‡. Рисунок 17.1 пок‡зы‚‡ет место SSL и TLS ‚ мо‰ели Интенет (мо‰ель потоколо‚ TCP/IP).
Рис. 17.1. Место SSL и TSL ‚ мо‰ели Интенет О‰н‡ из целей этих потоколо‚ состоит ‚ том, чтобы обеспечить се‚е и клиент‡ услу„‡ми уст‡но‚лениfl по‰линности, конфи‰енци‡льности и целост542
Лекциfl 17
Безоп‡сность н‡ т‡нспотном уо‚не: SSL И TLS
ности ‰‡нных. Пик뇉ной уо‚ень пмм клиент-се‚е (client-server), т‡ких к‡к Язык пе則чи „ипетекст‡ (HTTP), котоый использует услу„и TCP, может инк‡псулить с‚ои ‰‡нные ‚ п‡кеты SSL. Если се‚е и клиент со„л‡сны с функциониующими пмм‡ми SSL (или TLS), то клиент может использть URL https: // ... ‚место http:// ..., ‰лfl то„о чтобы ‡зешить сообщениflм HTTP инк‡псулитьсfl ‚ п‡кеты SSL (или TLS). Н‡пиме, номе‡ ке‰итной к‡точки мо„ут быть безоп‡сно пе則ны чеез Интенет ‰лfl онл‡йн-покуп‡телей.
17.1. SSL-‡хитекту‡ SSL ‡з‡бот‡н, чтобы обеспечить безоп‡сность и услу„и сж‡тиfl ‰‡нным, с„енеинным пик뇉ным уо‚нем. К‡к ило, SSL может получить ‰‡нные от любо„о потокол‡ пик뇉но„о уо‚нfl, но обычно он получ‡ет их от потокол‡ HTTP. Д‡нные, полученные от пиложениfl, сж‡ты (‰ополнительно), по‰пис‡ны и з‡шифны, ‡ з‡тем их пе則ют к потоколу т‡нспотно„о уо‚нfl, т‡кому к‡к TCP. Фим‡ Netscape ‡з‡бот‡л‡ SSL ‚ 1994 „о‰у . Весии 2 и 3 были ‚ыпущены ‚ 1995 „о‰у. В этой лекции мы ‡ссмотим только SSL V. 3.
Услу„и SSL обеспеч肇ет несколько услу„ ‰лfl ‰‡нных, полученных от пик뇉но„о уо‚нfl. Ф‡„мент‡циfl Сн‡ч‡л‡ SSL ‰елит ‰‡нные н‡ блоки 214 б‡йто‚ или меньше. Сж‡тие К‡ж‰ый ф‡„мент ‰‡нных сж‡т с пименением о‰но„о из мето‰о‚ сж‡тиfl без потеи мето‰ом, со„л‡снным по ‰о„о‚оу меж‰у клиентом и се‚еом. Эт‡ услу„‡ fl‚лflетсfl ‰ополнительной. Целостность сообщениfl Чтобы сох‡нflть целостность ‰‡нных, SSL использует ключе‚ую хэш-функцию ‰лfl со片ниfl к по‚еки по‰линности (MAC). Конфи‰енци‡льность Чтобы обеспечить конфи‰енци‡льность, пе‚он‡ч‡льные ‰‡нные и ко‰ по‚еки по‰линности (MAC) з‡шифны, с пименением киптфии с симметичными ключ‡ми. О„‡низ‡циfl ꇉ‡ К з‡шифнной полезной 퇄узке ‰оᇂлflетсfl 燄оло‚ок. Полезную 퇄узку з‡тем пе則ют ‰осто‚еному потоколу т‡нспотно„о уо‚нfl. 543
Кус
Киптфиfl и безоп‡сность сетей
Ал„оитмы смены ключей К‡к мы у‚и‰им поз‰нее, ‰лfl обмен‡ по‰линными и конфи‰енци‡льными сообщениflми клиенту и се‚еу нужны шесть киптфических объекто‚ секетности (четые ключ‡ и ‰‚‡ ‚екто‡ иници‡лиз‡ции). О‰н‡ко чтобы со片ть их, меж‰у этими ‰‚умfl стоон‡ми ‰олжен быть уст‡но‚лен о‰ин п剂‡ительный „л‡‚ный секетный ко‰ (pre-master secret). SSL опе‰елflет шесть мето‰о‚ обмен‡ ключ‡ми, чтобы уст‡но‚ить этот п剂‡ительный объект секетности: NULL, RSA, ‡нонимный Диффи-Хеллм‡н (Diffie-Hellman), к‡тко‚еменный Диффи-Хеллм‡н, фиксинный Диффи-Хеллм‡н и Fortezza, к‡к это пок‡з‡но н‡ ис. 17.2.
Рис. 17.2. Мето‰ы з‡мены ключей NULL (Пустой ук‡з‡тель) В этом мето‰е нет ник‡кой смены ключей. Меж‰у клиентом и се‚еом не уст‡но‚лен п剂‡ительный „л‡‚ный секетный ко‰. И клиент и се‚е ‰олжны зн‡ть зн‡чение п剂‡ительно„о „л‡‚но„о секетно„о к. RSA В этом мето‰е п剂‡ительный „л‡‚ный секетный ко‰ — 48-б‡йто‚ое случ‡йное число, со片нное клиентом, з‡шифнное откытым ключом RSА-се‚е‡ и пе則‚‡емое се‚еу. Се‚е ‰олжен пе則ть с‚ой сетифик‡т шифниfl/‰ешифниfl RSA. Рисунок 17.3 иллюстиует и‰ею.
Рис. 17.3. RSA-смен‡ ключ‡; откытый ключ се‚е‡ 544
Лекциfl 17
Безоп‡сность н‡ т‡нспотном уо‚не: SSL И TLS
Анонимный потокол Диффи-Хеллм‡н‡ Это с‡мый постой и н‡иболее не퇉ежный мето‰. П剂‡ительный „л‡‚ный секетный ко‰ уст‡н‡‚л肇ют меж‰у клиентом и се‚еом, используfl потокол Диффи-Хеллм‡н‡. Пи этом пе則ют поло‚ину ключ‡ ‚ исхо‰ном тексте — это н‡зы‚‡етсfl ‡нонимным потоколом Диффи-Хеллм‡н‡, потому что ни о‰н‡ стоон‡ не из‚естн‡ ‰у„ой. К‡к мы уже обсу扇ли, с‡мый сеьезный не‰ост‡ток это„о мет — ‚озможность ‡т‡ки «посе‰ниꇻ. Рисунок 17.4 иллюстиует и‰ею ‡нонимно„о мет.
Рис. 17.4. Анонимный потокол Диффи-Хеллм‡н‡ смены ключей К‡тко‚еменный мето‰ Диффи-Хеллм‡н‡ Чтобы сть ‡т‡ку «посе‰ниꇻ, может быть пименен‡ к‡тко‚еменн‡fl смен‡ ключей мето‰ом Диффи-Хеллм‡н‡. ʇ扇fl стоон‡ пе則ет ключ ДиффиХеллм‡н‡, по‰пис‡нный с‚оим секетным ключом. Н‡ пиемной стооне ‰олжны по‚еить по‰пись, используfl откытый ключ пе則тчик‡. Обмен откытыми ключ‡ми ‰лfl по‚еки использует либо RSA-, либо DSS-сетифик‡т цифо‚ой по‰писи. Рисунок 17.5 иллюстиует и‰ею.
Рис. 17.5. К‡тко‚еменный потокол Диффи-Хеллм‡н‡ смены ключей 545
Кус
Киптфиfl и безоп‡сность сетей
Фиксинный мето‰ Диффи-Хеллм‡н‡ Ду„ое ешение — фиксинный мето‰ Диффи-Хеллм‡н‡. Все объекты ‚ „уппе мо„ут пото‚ить фиксинные меты (g и p). З‡тем к‡ж‰ый объект может со片ть фиксинную поло‚ину ключ‡ (gx). Длfl ‰ополнительной безоп‡сности к‡ж‰‡fl от‰ельн‡fl поло‚ин‡ ключ‡ Диффи-Хеллм‡н‡ ‚ст‡‚лflетсfl ‚ сетифик‡т, по‚еенный центом сетифик‡ции (CA). Ду„ими слми, ‰‚е стооны от‰ельно не обмен肇ютсfl полуключ‡ми; CA пе則ет полуключи ‚ специ‡льном сетифик‡те RSA или DSS. К‡ клиент ‰олжен ‚ычислить п剂‡ительный „л‡‚ный секетный ко‰, он использует с‚ой собст‚енный фиксинный полуключ и полуключ се‚е‡, полученный ‚ сетифик‡те. Се‚е ‰ел‡ет то же с‡мое, но ‚ об‡тном поfl‰ке. Об‡тите ‚ним‡ние, что ‚ этом мето‰е не пе則ютсfl сообщениfl смены ключей, ‡ поисхо‰ит только обмен сетифик‡т‡ми. Fortezza Fortezza (об‡зн из ит‡льflнско„о сл «кепость») — з‡е„истинн‡fl то„fl м‡к‡ ‡меик‡нско„о А„ентст‚‡ Н‡цион‡льной безоп‡сности (NSA — National Security Agency). Это семейст‚о потоколо‚ безоп‡сности, ‡з‡бот‡нных ‰лfl От‰ел‡ З‡щиты. Мы з‰есь не обсу扇ем Fortezza из-з‡ е„о сложности.
Ал„оитмы шифниfl/‰ешифниfl Есть несколько ‚озможностей ‚ыбо‡ ‡л„оитм‡ шифниfl/‰ешифниfl. Мы можем ‡з‰елить ‡л„оитмы н‡ 6 „упп, к‡к это пок‡з‡но н‡ ис. 17.6. Все потоколы блок‡ используют 8-б‡йто‚ый ‚екто иници‡лиз‡ции (IV), коме Fortezza, котоый пименflет 20 б‡йто‚ IV.
Рис. 17.6. Ал„оитмы шифниfl/‰ешифниfl NULL NULL — к‡те„оиfl, кото‡fl посто опе‰елflет отсутст‚ие ‡л„оитм‡ шиф‡ции/‰ешиф‡ции. Блок RC В блочном ежиме RC опе‰елены ‰‚‡ поток‡ ‡л„оитм‡: RC4-40 (ключ н‡ 40 бито‚) и RC4-128 (ключ н‡ 128 бито‚). Блок RS В блочном ежиме RC опе‰елен о‰ин ‡л„оитм: RC2_CBC_40 (ключ н‡ 40 бито‚). CBC (Cipher Block Chaining) — сцепление шифнных блоко‚. 546
Лекциfl 17
Безоп‡сность н‡ т‡нспотном уо‚не: SSL И TLS
DES Все ‡л„оитмы DES опе‰елены ‚ блочном ежиме. DES40_CBC использует ключ н‡ 40 бито‚. Ст‡н‰‡тные DES опе‰елены к‡к DES_CBC. 3DES_EDE_CBC используют ключ н‡ 168 бито‚. IDEA В блочном ежиме IDEA опе‰елен о‰ин ‡л„оитм — IDEA_CBC, с ключом н‡ 128 бито‚. Fortezza В блочном ежиме Fortezza опе‰елен о‰ин ‡л„оитм — FORTEZZA_CBC, с ключом н‡ 96 бит.
Ал„оитмы хэшиниfl SSL пименflет ‡л„оитмы хэшиниfl, чтобы обеспечить целостность сообщениfl (уст‡но‚ление по‰линности сообщениfl). Имеютсfl хэш-функции, пок‡з‡нные н‡ ис. 17.7.
Рис. 17.7. Null (Пустой ук‡з‡тель) Д‚е стооны мо„ут отк‡з‡тьсfl использть ‡л„оитм хэшиниfl. В этом случ‡е сообщение не 燂еено. MD5 Д‚е стооны мо„ут ‚ыб‡ть MD5 к‡к ‡л„оитм хэшиниfl. В этом случ‡е пименflетсfl ‡л„оитм хэшиниfl MD5 — 128-бито‚ый. SHA-1 Д‚е стооны мо„ут ‚ыб‡ть SHA к‡к ‡л„оитм хэшиниfl. В этом случ‡е используетсfl ‡л„оитм хэшиниfl SHA-1 н‡ 160 бито‚.
Н‡бо шифо‚ Комбин‡циfl смены ключей, хэшиниfl и ‡л„оитмо‚ шифниfl опе‰елflет н‡бо шифо‚ ‰лfl к‡ж‰о„о се‡нс‡ SSL. Т‡блиц‡ 17.1 пок‡зы‚‡ет н‡боы, пименflемые ‚ Сое‰иненных Шт‡т‡х. Мы не ‚ключили н‡боы, котоые используютсfl ‰лfl экспот‡. Об‡тите ‚ним‡ние, что ‚ списке н‡хо‰flтсfl не ‚се комбин‡ции смены ключей, целостности сообщениfl и уст‡но‚лениfl по‰линности сообщениfl. 547
Кус
Киптфиfl и безоп‡сность сетей
К‡ж‰ый н‡бо н‡чин‡етсfl темином «SSL», сопо‚о扇емым ‡л„оитмом смены ключей. Сло‚о «WITH» от‰елflет ‡л„оитм смены ключей от ‡л„оитмо‚ шифниfl и хэшиниfl. Н‡пиме, SSL_DHE_RSA_WITH_DES_CBC_SHA опе‰елflет DHE_RSA (к‡тко‚еменный мето‰ Диффи-Хеллм‡н‡ (DiffieHellman ephemeral)) с цифо‚ой по‰писью RSА ‰лfl смены ключей, DES_CBC — ‚ к‡чест‚е ‡л„оитм‡ шифниfl и SHA — к‡к ‡л„оитм хэшиниfl. Об‡тите ‚ним‡ние, что сок‡щениfl DH (Diffie-Hellman) — это фиксинный мето‰ Диффи-Хеллм‡н‡, DHE (Diffie-Hellman Ephemeral) — это к‡тко‚еменный мето‰ Диффи-Хеллм‡н‡ и DH-anon (anonymous Diffie-Hellman) — это ‡нонимный мето‰ Диффи-Хеллм‡н‡. Т‡блиц‡ 17.1. Список н‡бо‡ шифо‚ SSL Н‡бо шифо‚ SSL-NULL-WITH-NULL- NULL SSL_RSA_WITH_NULL_MD5 SSL_RSA_WITH_NULL_SHA SSL_RSA_WITH_RC4_128_MD5 SSL_RSA_WITH_RC4_128_SHA SSL_RSA_WITH_IDEA_CBC_SHA SSL_RSA_WITH_DES_CBC_SHA SSL RSA WITH 3DES EDE CBC SHA SSL_DH_anon_WITH_RC4_128_MD5 SSL_DH_anon_WITH_DES_CBC_SHA SSL_DH_anon_WITH_3DES_EDE_ CBC SHA SSL_DHE_RSA_WITH_DES_CBC_SHA SSL_DHE_RSA_WITH_3DES_ EDE CBC SHA SSL_DHE_DSS_WITH_DES_CBC_SHA SSL_DHE_DSS_WITH_3DES_EDE_ CBC_SHA SSL_DH_RSA_WITH_DES_CBC_SHA SSL_DH_RSA_WITH_3DES_EDE_CBC_SHA SSL_DH_DSS_WITH_DES_CBC_SHA SSL_DH_DSS_WITH_3DES_EDE_CBC_SHA SSL_FORTEZZA_DMS_WITH_NULL_SHA SSL_FORTEZZA_DMS_WITH_FORTEZZA_ CBC_SHA SSL_FORTEZZA_DMS_WITH_RC4_ 128_SHA 548
Смен‡ ключей NULL RSA RSA RSA RSA RSA RSA RSA DH anon DH anon DH anon
Шифние Хэш NULL NULL NULL RC4 RC4 IDEA DES 3DES RC4 DES 3DES
NULL MD5 SHA-1 MD5 SHA-1 SHA-1 SHA-1 SHA-1 MD5 SHA-1 SHA-1
DHE RSA DES DHE RSA 3DES
SHA-1 SHA-1
DHE DSS DES DHE DSS 3DES
SHA-1 SHA-1
DH RSA DH RSA DH DSS DH DSS Fortezza Fortezza
DES 3DES DES 3DES NULL Fortezza
SHA-1 SHA-1 SHA-1 SHA-1 SHA-1 SHA-1
Fortezza
RC4
SHA-1
Лекциfl 17
Безоп‡сность н‡ т‡нспотном уо‚не: SSL И TLS
Ал„оитмы сж‡тиfl К‡к мы уже „о‚оили, сж‡тие fl‚лflетсfl ‰ополнительной услу„ой ‚ SSLv3. Длfl SSLv3 не опе‰елен ‡л„оитм сж‡тиfl. Поэтому 燉‡нным по умолч‡нию мето‰ом сж‡тиfl служит NULL. О‰н‡ко систем‡ может использть любой ‡л„оитм сж‡тиfl по ‚ыбоу стоон.
Генеиние киптфических мето‚ Чтобы обеспечить целостность и конфи‰енци‡льность сообщениfl, ‚ SSL необхо‰имо иметь: шесть киптфических объекто‚ секетности, четые ключ‡ и ‰‚‡ иници‡лизиующих ‚екто‡ (IV). Клиенту нужно: о‰ин ключ ‰лfl пе則чи сообщениfl уст‡но‚лениfl по‰линности (HMAC — HASH-BASED MESSAGE AUTHENTICATION CODE), о‰ин ключ ‰лfl шифниfl и о‰ин IV ‰лfl шифниfl блок‡. Се‚е ну扇етсfl ‚ том же с‡мом. SSL тебует, чтобы ключи ‰лfl о‰но„о н‡п‡‚лениfl отлич‡лись от ключей ‰лfl ‰у„о„о н‡п‡‚лениfl. Если бу‰ет ‡т‡к‡ ‚ о‰ном н‡п‡‚лении, он‡ не з‡тонет ‰у„ое н‡п‡‚ление. Длfl „ене‡ции мето‚ используют сле‰ующую поце‰уу. 1. Клиент и се‚е обмен肇ютсfl ‰‚умfl случ‡йными числ‡ми, о‰но из котоых со片но клиентом, ‡ ‰у„ое — се‚еом. 2. Клиент и се‚е обмен肇ютсfl о‰ним п剂‡ительным „л‡‚ным секетным ко‰ом, используfl о‰ин из ‡л„оитмо‚ смены ключей, котоые мы обсу扇ли ‡ньше. 3. Со片етсfl 48-б‡йто‚ый „л‡‚ный секетный ко‰ (master secret) из п剂‡ительно„о „л‡‚но„о секетно„о к (pre-master secret), с пименением хэшфункций (SHA-1 и MD5), к‡к это пок‡з‡но н‡ ис. 17.8.
Рис. 17.8 Вычисление „л‡‚но„о секетно„о к из п剂‡ительно„о „л‡‚но„о секетно„о к 549
Кус
Киптфиfl и безоп‡сность сетей
4. Г뇂ный секетный ко‰ используетсfl ‰лfl то„о, чтобы со片ть м‡теи‡л ‰лfl ключей (key material), котоый имеет пееменную ‰лину. Длfl это„о пименflют то же с‡мое множест‚о хэш-функций, что и ‚ пе‰ы‰ущем случ‡е, и по‰ст‡‚лflют спее‰и ‡зличные конст‡нты, к‡к это пок‡з‡но н‡ ис. 17.9. Ал„оитм по‚тоflетсfl, пок‡ не получитсfl м‡теи‡л ‰лfl ключ‡ ‡‰еꂇтно„о ‡зме‡. Об‡тите ‚ним‡ние, что ‰лин‡ блок‡ м‡теи‡л‡ ‰лfl ключей 燂исит от ‚ыб‡нно„о н‡бо‡ шиф‡ и ‡зме‡ ключей, необхо‰имых ‰лfl это„о н‡бо‡.
Рис. 17.9 Вычисление м‡ти‡л‡ ‰лfl ключей из „л‡‚но„о секетно„о к 5. Из м‡теи‡л‡ ‰лfl ключей из‚лек‡ютсfl шесть ‡зличных ключей, к‡к пок‡з‡но н‡ ис. 17.10.
Се‡нсы и сое‰инение SSL отлич‡ет сое‰инение от се‡нс‡. Д‡‚‡йте ‡ссмотим эти ‰‚‡ темин‡. Се‡нс — с‚flзь меж‰у клиентом и се‚еом. После то„о к‡к се‡нс уст‡но‚лен, эти ‰‚е стооны имеют общую инфом‡цию, т‡кую к‡к и‰ентифик‡то се‡нс‡, сетифик‡т, по‰т‚е扇ющий по‰линность к‡ж‰о„о из них (‚ случ‡е необхо‰имости), мето‰ сж‡тиfl (если необхо‰имо), н‡бо шифо‚ и „л‡‚ный секетный ко‰. Эт‡ инфом‡циfl используетсfl ‰лfl то„о, чтобы со片ть ключи ‰лfl сообщениfl, со‰еж‡ще„о шиф уст‡но‚лениfl по‰линности. Длfl ‰‚ух объекто‚, чтобы н‡ч‡ть обмен ‰‡нными, уст‡но‚ление се‡нс‡ необхо‰имо, но не ‰ост‡точно; они ‰олжны со片ть меж‰у собой сое‰инение. Д‚‡ объ550
Лекциfl 17
Безоп‡сность н‡ т‡нспотном уо‚не: SSL И TLS
Рис. 17.10 Из‚лечение киптфических секетных ко‰о‚ из м‡теи‡л‡ ‰лfl ключей ект‡ обмен肇ютсfl ‰‚умfl случ‡йными числ‡ми и со片ют, используfl „뇂ный секетный ко‰, ключи и меты, необхо‰имые ‰лfl то„о, чтобы обмен肇тьсfl сообщениflми, ‚ключ‡fl уст‡но‚ление по‰линности и секетность. Се‡нс может состоflть из мно„их сое‰инений. Сое‰инение меж‰у ‰‚умfl стоон‡ми может быть з‡кончено и ‚осст‡но‚лено ‚ пе‰ел‡х о‰но„о и то„о же се‡нс‡. К‡ сое‰инение з‡кончено, эти ‰‚е стооны мо„ут т‡кже з‡кончить се‡нс, но это необflз‡тельно. Се‡нс может быть пиост‡но‚лен и по‰олжен сн. Чтобы со片‚‡ть но‚ый се‡нс, эти ‰‚е стооны ‰олжны пойти поцесс пее„о‚оо‚. Чтобы ‚озобно‚лflть ст‡ый се‡нс и со片‚‡ть только но‚ое сое‰инение, эти ‰‚е стооны мо„ут попустить ч‡сть пее„о‚оо‚, что уменьш‡ет ‚емfl ‚хож‰ениfl ‚ с‚flзь. Не 퇉о со片‚‡ть „뇂ный секетный ко‰, к‡ се‡нс по‰олж‡етсfl. Р‡з‰еление се‡нс‡ от сое‰инениfl пе‰от‚‡щ‡ет ‚ысокую стоимость со片ниfl „뇂но„о секетно„о к. Если мы ‡зеш‡ем пиост‡но‚лениfl и по‰олжениfl се‡нс‡, поцесс ‚ычислениfl „뇂но„о секетно„о к может быть уст‡нен. Рисунок 17.11 иллюстиует и‰ею се‡нс‡ и сое‰инениfl ‚ этом се‡нсе.
Рис. 17.11. Се‡нс и сое‰инение 551
Кус
Киптфиfl и безоп‡сность сетей
В се‡нсе о‰н‡ стоон‡ и„‡ет оль клиент‡ и ‰у„‡fl — оль се‚е‡. Пи сое‰инении обе стооны имеют ‡‚ные оли, они ‡‚ны по уо‚ню.
Состоflние се‡нс‡ Се‡нс опе‰елflетсfl состоflнием се‡нс‡ — это множест‚о мето‚, уст‡но‚ленных меж‰у се‚еом и клиентом. Т‡блиц‡ 17.2 пок‡зы‚‡ет список мето‚ ‰лfl состоflниfl се‡нс‡. Т‡блиц‡ 17.2. П‡‡меты состоflниfl се‡нс‡ П‡‡меты ID се‡нс‡ Сетифик‡т уо‚нfl Мето‰ сж‡тиfl Н‡бо шифо‚ Г뇂ный секетный ко‰ Возможность по‚тоениfl
Опис‡ние Случ‡йное 8-бито‚ое число, ‚ыб‡нное се‚еом и опе‰елflющее се‡нс Сетифик‡т тип‡ X509 .v.3. Этот мет может быть пустым (null) Мето‰ сж‡тиfl Со„л‡снный н‡бо шифо‚ 48-б‡йто‚ый секетный ко‰ Ф뇄 «Д‡, Нет», котоый ‡зеш‡ет но‚ое сое‰инение ‚ ст‡ом се‡нсе
Состоflние сое‰инениfl По‰ключение опе‰елflетсfl состоflнием сое‰инениfl — это множест‚о мето‚, уст‡но‚ленных меж‰у ‰‚умfl ‡‚ными по уо‚ню объект‡ми. Т‡блиц‡ 17.3 пок‡зы‚‡ет список мето‚ ‰лfl состоflниfl сое‰инениfl. SSL использует ‰‚‡ пизн‡к‡, чтобы отличить киптфическую секетность: пис‡ть и чит‡ть. Темин пис‡ть опе‰елflет ключ, используемый ‰лfl то„о, чтобы по‰пис‡ть или з‡шифть исхо‰flщее сообщение. Темин чит‡ть опе‰елflет ключ, используемый ‰лfl то„о, чтобы по‰т‚е‰ить или ‡сшифо‚ы‚‡ть пибы‚‡ющие сообщениfl. Об‡тите ‚ним‡ние: пис‡ть-ключ клиент‡ — тот же с‡мый, что и ключ-чит‡ть се‚е‡; ключ-чит‡ть клиент‡ — тот же с‡мый, что и ключ-пис‡ть се‚е‡. Клиент и се‚е имеют шесть ‡зличных киптфических объект‡: ти объект‡ секетности чит‡ть и ти пис‡ть. Секетность чит‡ть ‰лfl клиент‡ т‡ же с‡м‡fl, что и секетность пис‡ть ‰лfl се‚е‡, и н‡обоот. Т‡блиц‡ 17.3. П‡‡меты состоflниfl сое‰инениfl П‡‡меты Случ‡йные числ‡ клиент‡ и се‚е‡
Опис‡ние После‰о‚‡тельность б‡йто‚, ‚ыб‡нн‡fl ‰лfl к‡ж‰о„о сое‰инениfl се‚еу и клиенту 552
Лекциfl 17
Безоп‡сность н‡ т‡нспотном уо‚не: SSL И TLS
З‡пис‡нный се‚еом секетный Ключ к уст‡но‚лениfl по‰линности ко‰ по‰линности сообщениfl сообщениfl исхо‰flще„о се‚е‡ ‰лfl сох‡нениfl целостности сообщениfl.. Используетсfl се‚еом ‰лfl по‰писи, ‡ клиентом ‰лfl ‚еифик‡ции З‡пис‡нный клиентом секетный Ключ к уст‡но‚лениfl по‰линности ко‰ уст‡но‚лениfl по‰линности сообщениfl исхо‰flще„о се‚е‡ ‰лfl сох‡несообщениfl ниfl целостности сообщениfl.. Используетсfl се‚еом ‰лfl по‰писи, ‡ клиентом ‰лfl ‚еифик‡ции Секетный ко‰, з‡пис‡нный Ключ шифниfl исхо‰flще„о се‚е‡ се‚еом ‰лfl сох‡нениfl целостности сообщениfl Секетный ко‰, з‡пис‡нный Ключ шифниfl исхо‰flще„о се‚е‡ клиентом ‰лfl сох‡нениfl целостности сообщениfl Векто иници‡лиз‡ции Блочные шифы ‚ ежиме «цепочки блочных шифо‚» I (CBC) используют ‚ектоы иници‡лиз‡ции. (IV). Длfl к‡ж‰о„о шифльно„о ключ‡ путем пее„о‚оо‚ опе‰елен о‰ин ‚екто иници‡лиз‡ции, котоый используетсfl пе‚ым блоком обмен‡ ключ‡ми. З‡шифнный текст из блок‡ используетсfl к‡к ‚екто иници‡лиз‡ции ( IV) ‰лfl сле‰ующе„о блок‡ Поfl‰ко‚ый номе ʇ扇fl стоон имеет поfl‰ко‚ый номе. Он н‡чин‡етсfl с 0 и у‚елич肇етсfl н‡ 1. Он не ‰олжен быть больше 264 – 1
17.2. Четые потокол‡ Мы обсу‰или и‰ею относительно SSL, не пок‡з‡‚, к‡к SSL ‚ыполнflет с‚ои 燉‡чи. SSL со‰ежит четые потокол‡ н‡ ‰‚ух уо‚нflх, к‡к это изоб‡жено н‡ ис. 17.12. Потокол пе則чи з‡писей — пееносflщий инфом‡цию. Он пееносит н‡ т‡нспотный уо‚ень сообщениfl от тех ‰у„их потоколо‚, ‡ т‡кже ‰‡нные, поступ‡ющие от пик뇉но„о уо‚нfl. Сообщениfl из потокол‡ з‡писей — это полезн‡fl 퇄узк‡ ‰лfl т‡нспотно„о уо‚нfl, обычно TCP. Потокол уст‡но‚лениfl сое‰инениfl обеспеч肇ет меты безоп‡сности ‰лfl Потокол‡ з‡писей. Он уст‡н‡‚л肇ет н‡бо шифо‚ и 燉‡ет ключи и меты безоп‡сности. Он т‡кже по‰т‚е扇ет, если необхо‰имо, по‰линность се‚е‡ клиенту и по‰линность клиент‡ се‚еу. Потокол изменениfl мето‚ шифниfl используетсfl, чтобы пе則‚‡ть си„н‡лы ‰лfl пото‚ки к киптфической безоп‡сности. А‚‡ийный потокол нужен, чтобы из‚естить о ситу‡циflх, отклонflющихсfl от номы. Все эти потоколы мы к‡тко ‡ссмотим ‚ этой секции. 553
Кус
Киптфиfl и безоп‡сность сетей
Рис. 17.12. Четые потокол‡ SSL
Потокол уст‡но‚лениfl сое‰инениfl Потокол уст‡но‚лениfl сое‰инениfl используетсfl пи пе則че сообщений, чтобы ‰о„о‚оитьсfl, если это необхо‰имо, о сост‡‚е шифо‚ от се‚е‡ к клиенту и от клиент‡ к се‚еу и обменflтьсfl инфом‡цией ‡‰и обеспечениfl киптфической безоп‡сности. Поце‰у‡ уст‡но‚лениfl с‚flзи поисхо‰ит ‚ 4 ф‡зы; он‡ поиллюстио‚‡н‡ н‡ ис. 17.13.
Рис. 17.13. Потокол уст‡но‚лениfl сое‰инениfl Ф‡з‡ 1: Уст‡но‚ление х‡‡ктеистик ‰лfl обеспечениfl безоп‡сности В Ф‡зе 1 клиент и се‚е объfl‚лflют с‚ои х‡‡ктеистики безоп‡сности, котоые нужны и у‰обны ‰лfl обоих. В этой ф‡зе уст‡н‡‚л肇етсfl и ‚ыби‡етсfl ID 554
Лекциfl 17
Безоп‡сность н‡ т‡нспотном уо‚не: SSL И TLS
се‡нс‡. Стооны со„л‡суют конкетный мето‰ сж‡тиfl. Н‡конец, ‚ыби‡ют ‰‚‡ случ‡йных числ‡: о‰но ‚ыби‡етсfl клиентом и ‰у„ое — се‚еом, чтобы со片ть „뇂ный секетный ко‰. В этой ф‡зе стооны обмен肇ютсfl ‰‚умfl сообщениflми: ClientHello и ServerHello. Рисунок 17.14 со‰ежит ‰ополнительные ‰ет‡ли Ф‡зы 1. ClientHello. Клиент посыл‡ет сообщение. Оно со‰ежит сле‰ующую инфом‡цию. ‡. С‡мый ‚ысокий номе ‚есии SSL, котоую может пеж‡ть клиент. б. 32-б‡йто‚ое случ‡йное число (от клиент‡), котоое бу‰ет использтьсfl ‰лfl „ене‡ции „л‡‚но„о секетно„о к (м‡сте к). ‚. ID се‡нс‡, котоый опе‰елflет се‡нс. „. Н‡бо шифо‚, котоый опе‰елflет список ‡л„оитмо‚, пеж肇емых клиентом. ‰. Список мето‰о‚ сж‡тиfl, котоые клиент может пеж‡ть.
Рис. 17.14. Потокол уст‡но‚лениfl сое‰инениfl, Ф‡з‡ I ServerHello. Се‚е от‚еч‡ет клиенту cсообщением ServerHello, оно со‰ежит: ‡. Номе ‚есии SSL. Это ‰‚‡ номе‡ ‚есии: н‡иболее ‚ысокий номе, пеж肇емый клиентом, и н‡иболее ‚ысокий, пеж肇емый се‚еом. б. 32-б‡йто‚ое случ‡йное число (от се‚е‡), котоое бу‰ет использтьсfl ‰лfl „ене‡ции „л‡‚но„о секетно„о к (м‡сте к). ‚. ID се‡нс‡, котоый опе‰елflет се‡нс. „. Выб‡нный шиф из списк‡ клиент‡. ‰. Выб‡нный мето‰ сж‡тиfl из списк‡ клиент‡. После Ф‡зы 1 клиент и се‚е зн‡ют сле‰ующее: • Весиfl SSL • Ал„оитмы ‰лfl смены ключей, уст‡но‚лениfl по‰линности сообщениfl и шифниfl • Мето‰ сж‡тиfl • Д‚‡ случ‡йных числ‡ ‰лfl „ене‡ции ключей 555
Кус
Киптфиfl и безоп‡сность сетей
Рис. 17.15. Потокол уст‡но‚лениfl сое‰инениfl, Ф‡з‡ II Ф‡з‡ II: Смен‡ ключей се‚е‡ и уст‡но‚ление е„о по‰линности В ф‡зе II се‚е, если необхо‰имо, по‰т‚е扇ет с‚ою по‰линность. Пе則тчик может пе則ть с‚ой откытый ключ и может т‡кже з‡посить сетифик‡т клиент‡. В конце се‚е объfl‚лflет, что поцесс serverHello окончен. Рисунок 17.15 ‰‡ет ‰ополнительные с‚е‰ениfl о Ф‡зе II. Certificate (сетифик‡т) — если это тебуетсfl, се‚е пе則ет сообщение certificate, чтобы по‰т‚е‰ить с‚ою по‰линность. Сообщение ‚ключ‡ет список сетифик‡то‚ тип‡ X.509. Если ‡л„оитм смены ключей — ‡нонимный ДиффиХеллм‡н (Diffie-Hellman), то сетифик‡т не нужен. ServerKeyExchange. После сообщениfl Certificate се‚е пе則ет сообщение ServerKeyExchange, котоое ‚ключ‡ет ‚ себfl е„о ‚к뇉 ‚ п剂‡ительный „л‡‚ный секетный ко‰. Если мето‰ смены ключей — RSA или мето‰ «фиксинный Диффи-Хеллм‡н», то т‡ко„о сообщение не тебуетсfl. CertificateRequest — се‚е может потебть, чтобы клиент по‰т‚е‰ил с‚ою по‰линность. В этом случ‡е се‚е пе則ет CertificateRequest сообщение ‚ Ф‡зе II, ‚ котоом з‡п‡ш肇ет от клиент‡ по‰т‚еж‰ение ‚ Ф‡зе III. Се‚е не может з‡посить сетифик‡т от клиент‡, если клиент использует мето‰ «‡нонимный Диффи-Хеллм‡н». ServerHelloDone — после‰нее сообщение ‚ Ф‡зе II. Оно fl‚лflетсfl си„н‡лом клиенту, что Ф‡з‡ II з‡кончен‡ и что клиент ‰олжен з‡пустить Ф‡зу III. После Ф‡зы II • Клиенту по‰т‚еж‰ен‡ по‰линность се‚е‡. • Если тебуетсfl, то клиент зн‡ет откытый ключ се‚е‡. 556
Лекциfl 17
Безоп‡сность н‡ т‡нспотном уо‚не: SSL И TLS
Д‡‚‡йте тщ‡тельно ‡ссмотим уст‡но‚ление по‰линности се‚е‡ и смену ключей ‚ этой ф‡зе. Пе‚ые ‰‚‡ сообщениfl з‰есь б‡зиуютсfl н‡ мето‰е смены ключей. Рисунок 17.16 пок‡зы‚‡ет четые из шести мето‰о‚ обмен‡ ключей, котоые мы обсу扇ли ‡ньше. Мы не ‚ключили Нуле‚ой (NULL) мето‰, потому что ‚ нем нет ник‡ко„о обмен‡. Мы не ‚ключили мето‰ Fortezza, потому что ‚ этой кни„е мы е„о „лубоко не ‡ссм‡т肇ли.
Рис. 17.16. Четые случ‡fl Ф‡зы II • RSA. В этом мето‰е ‚ пе‚ом сообщении се‚е пе則ет сетифик‡т с‚ое„о откыто„о ключ‡ RSА шифниfl/‰ешифниfl. Втоое сообщение, о‰н‡ко, пустое, потому что не с„енеин п剂‡ительный „л‡‚ный секетный ко‰ — он пе則етсfl клиентом ‚ сле‰ующей ф‡зе. Об‡тите ‚ним‡ние, что сетифик‡т откыто„о ключ‡ по‰т‚е扇ет по‰линность се‚е‡ клиенту. К‡ се‚е получ‡ет п剂‡ительный „л‡‚ный секетный ко‰, он ‡сшифо‚ы‚‡ет е„о секетным ключом. В뇉ение секетным ключом ‰лfl се‚е‡ — ‰ок‡з‡тельст‚о, что се‚е — это тот объект, котоый н‡хо‰илсfl ‚ сетифик‡те откыто„о ключ‡, пе則нном ‚ пе‚ом сообщении. • Анонимный DH (DHanonym). В этом мето‰е не тебуетсfl сообщениfl Certificate. Анонимный объект не имеет сетифик‡т‡. В ServerKeyExchange сообщении се‚е пе則ет меты мет Диффи-Хеллм‡н‡ и с‚ой полуключ. Об‡тите ‚ним‡ние, что з‰есь се‚е не по‰т‚е扇ет с‚ою по‰линность. • К‡тко‚еменный DH (DHE). В этом мето‰е се‚е пе則ет либо RSA-, либо DSS-сетифик‡т цифо‚ой по‰писи. Секетный ключ, с‚flз‡нный с 557
Кус
Киптфиfl и безоп‡сность сетей
сетифик‡том, поз‚олflет се‚еу по‰пис‡ть сообщение; откытый ключ поз‚олflет получ‡телю по‚еить по‰пись. Во ‚тоом сообщении се‚е пе則ет меты Диффи-Хеллм‡н‡ и полуключ, по‰пис‡нный е„о секетным ключом. В этом мето‰е се‚е по‰т‚е扇ет клиенту с‚ою по‰линность не потому, что он пе則ет сетифик‡т, ‡ потому, что по‰писы‚‡ет меты и ключи с‚оим секетным ключом. В뇉ение секетным ключом — ‰ок‡з‡тельст‚о то„о, что се‚е — объект, котоый н‡хо‰итсfl ‚ сетифик‡те. Если с‡мо炇нец копиует и пе則ет сетифик‡т клиенту, симулиуfl, что он — се‚е, з‡пошенный ‚ сетифик‡те, он не сможет по‰пис‡ть ‚тоое сообщение, потому что не имеет секетно„о ключ‡. • Фиксинное DH (DH). В этом мето‰е се‚е пе則ет либо RSA-, либо DSS-сетифик‡т цифо‚ой по‰писи, ‚ котоый ‚ключ‡ет с‚ой з‡е„истинный полуключ DH. Втоое сообщение — пустое. Сетифик‡т по‰пис‡н секетным ключом CA и может быть по‚еен клиентом, использующим откытый ключ CA. Ду„ими слми, CA по‰т‚е‰ил клиенту по‰линность и 燂еил, что полуключ пи퇉лежит се‚еу. Ф‡з‡ III: Смен‡ ключей клиент‡ и уст‡но‚ление е„о по‰линности Ф‡з‡ III пе‰н‡зн‡чен‡ по‰т‚е‰ить по‰линность клиент‡. От клиент‡ се‚еу можно пе則ть ‰о тех сообщений, к‡к пок‡з‡но н‡ ис. 17.17.
Рис. 17.17. Потокол уст‡но‚лениfl сое‰инениfl, Ф‡з‡ III Сетифик‡т. Чтобы сетифицить себfl н‡ се‚ее, клиент пе則ет сообщение Certificate. Об‡тите ‚ним‡ние, что е„о фом‡т — тот же с‡мый, что и у сообщениfl Certificate, пе則‚‡емо„о се‚еом ‚ Ф‡зе II, но со‰еж‡ние ‡злично. В ‰‡нном случ‡е Certificate ‚ключ‡ет цепочку сетифик‡то‚, котоые сетифициуют клиент‡. Т‡кое сообщение пе則ют, только если се‚е з‡посил сетифик‡т ‚ Ф‡зе II. Если есть з‡пос и клиент не имеет сетифик‡т‡, чтобы пе則ть е„о, т‡ пе則етсfl ‡‚‡ийное сообщение (ч‡сть ‡‚‡ийно„о потокол‡, кото558
Лекциfl 17
Безоп‡сность н‡ т‡нспотном уо‚не: SSL И TLS
ый бу‰ет обсу扇тьсfl позже) с пе‰упеж‰ением, что сетифик‡т‡ нет. Се‚е может по‰олжить се‡нс или может ешить п傇ть е„о. ClientKeyExchange. После пе則чи сообщениfl Certificate клиент пе則ет сообщение ClientKeyExchange, котоое ‚ключ‡ет ‚ себfl ‚к뇉 ‚ п剂‡ительный „л‡‚ный секетный ко‰. Со‰еж‡ние это„о сообщениfl б‡зиуетсfl н‡ используемом ‡л„оитме смены ключей. Если мето‰ — RSA, клиент со片ет полный п剂‡ительный „л‡‚ный секетный ко‰ и з‡шифо‚ы‚‡ет е„о откытым ключом RSA се‚е‡. Если мето‰ — ‡нонимный или к‡тко‚еменный Диффи-Хеллм‡н, клиент пе則ет с‚ой полуключ. Если мето‰ — Fortezza, клиент пе則ет меты Fortezza. Со‰еж‡ние это„о сообщениfl пусто, если мето‰ — «фиксинный Диффи-Хеллм‡н». Веифик‡циfl сетифик‡т‡. Если клиент пе則л сетифик‡т, объfl‚лflющий, что имеет откытый ключ ‚ сетифик‡те, он ‰олжен ‰ок‡з‡ть, что зн‡ет соот‚етст‚ующий секетный ключ. Это необхо‰имо, чтобы сть попытки с‡мо炇нц‡, котоый пе則ет сетифик‡т и ут‚е扇ет, что он исхо‰ит от клиент‡. Док‡з‡тельст‚о ‚л‡‰ениfl секетным ключом он пе‰ст‡‚лflет, со片‚‡fl сообщение и по‰писы‚‡fl е„о секетным ключом. Се‚е может по‚еить сообщение пе則нным ему откытым ключом, чтобы „‡‡нтить, что сетифик‡т ф‡ктически пи퇉лежит клиенту. Об‡тите ‚ним‡ние, что это ‚озможно, если ‚ сетифик‡т ‚ключены необхо‰имые по‰пис‡нные полномочиfl; ‚ том числе  ключей — откытый и секетный. Сетифик‡т ‰лfl фиксинно„о Диффи-Хеллм‡н‡ не может быть по‚еен т‡ким путем. После Ф‡зы III • Клиент по‚еен н‡ по‰линность се‚еом. • Клиент и се‚е зн‡ют п剂‡ительный „л‡‚ный секетный ко‰. Р‡ссмотим более по‰обно уст‡но‚ление по‰линности клиент‡ и смену ключей ‚ этой ф‡зе. Осно‚ой ‰‡нно„о мет з‰есь fl‚лflютсfl ти сообщениfl. Рисунок 17.18 пок‡зы‚‡ет четые из шести мето‰о‚, котоые мы ‡ссм‡т肇ли ‡ньше. Опflть мы исключили мето‰ NULL и мето‰ Fortezza. • RSA. В этом случ‡е не пе則етсfl сообщение Certificate, если се‚е fl‚но не з‡посил е„о ‚ Ф‡зе II. ClientKeyExchange ‚ключ‡ет ‚ себfl п剂‡ительный „л‡‚ный сеетный ко‰, котоый з‡шифн откытым ключом RSА, полученным ‚ Ф‡зе II. • Анонимный DH. В этом мето‰е не пе則етсfl сообщение Certificate. Се‚е не имеет ‡ з‡посить сетифик‡т ‚ Ф‡зе II, потому что и клиент и се‚е — ‡нонимны. В ClientKeyExchange-сообщении се‚е пе則ет меты Диффи-Хеллм‡н‡ и с‚ой полуключ. Об‡тите ‚ним‡ние, что ‚ этом мето‰е клиент не по‚еен н‡ по‰линность се‚еом. • К‡тко‚еменный DH. В этом мето‰е клиент обычно имеет сетифик‡т. Се‚е ‰олжен пе則ть е„о RSA- или DSS-сетифик‡т (н‡ осно‚е со„л‡снно„о множест‚‡ шифо‚). В ClientKeyExchange сообщении клиент по‰писы‚‡ет меты DH, ‡ т‡кже и с‚ой полуключ, и пе則ет их. По‰линность клиент‡ по‰т‚е扇етсfl се‚еу по‰писью ‚тоо„о сообщениfl. Если клиент не имеет сетифик‡т‡, ‡ се‚е з‡п‡ш肇ет е„о, клиент пее559
Кус
Киптфиfl и безоп‡сность сетей
Рис. 17.18. Четые случ‡fl Ф‡зы III ‰‡ет ‡‚‡ийное сообщение. Если это пиемлемо ‰лfl се‚е‡, клиент пе則ет меты DH и ключ ‚ исхо‰ном тексте. Конечно, ‚ этой ситу‡ции клиент не по‚еен се‚еом н‡ по‰линность. • Фиксинный DH. В этом мето‰е клиент обычно пе則ет сетифик‡т DH ‚ пе‚ом сообщении. Об‡тите ‚ним‡ние, что з‰есь ‚тоое сообщение пустое. Клиент по‰т‚е扇ет с‚ою по‰линность се‚еу, посыл‡fl сетифик‡т DH. Ф‡з‡ IV: З‡‚ешение и оконч‡ние В Ф‡зе IV клиент и се‚е пе則ют сообщениfl, чтобы изменить специфик‡цию шиф‡ и з‡кончить поце‰уу уст‡но‚лениfl с‚flзи. В этой ф‡зе поисхо‰ит обмен четыьмfl сообщениflми, к‡к это пок‡з‡но н‡ ис. 17.19. ChangeCipherSpec. Клиент пе則ет сообщение ChangeCipherSpec, чтобы пок‡з‡ть, что он пее‰‡л ‚есь н‡бо шифо‚ и меты ‰лfl пеех из состоflниfl ож艇ниfl ‚ ‡кти‚ное состоflние. Это сообщение — ф‡ктически ч‡сть потокол‡ ChangeCipherSpec, котоый мы обсу‰им позже. Finished. Это сообщение т‡кже пе則ет клиент. Сообщение Finished объfl‚лflет об оконч‡нии поце‰уы уст‡но‚лениfl с‚flзи клиентом. ChangeCipherSpec. Се‚е пе則ет ChangeCipherSpec-сообщение, чтобы пок‡з‡ть, что он т‡кже обменflлсfl н‡боом шифо‚ и мет‡ми ‰лfl пеех из состоflниfl ож艇ниfl ‚ ‡кти‚ное состоflние. Это сообщение — ч‡сть потокол‡ ChangeCipherSpec, котоый бу‰ет ‡ссмотен позже. Finished. Н‡конец, се‚е пе則ет сообщение Finished, чтобы пок‡з‡ть, что поце‰у‡ уст‡но‚лениfl с‚flзи полностью з‡кончен‡. 560
Лекциfl 17
Безоп‡сность н‡ т‡нспотном уо‚не: SSL И TLS
Рис. 17.19. Потокол уст‡но‚лениfl сое‰инениfl, Ф‡з‡ IV
Потокол ChangeCipherSpec Мы ‚и‰ели, что пее„о‚оы о н‡бое шифо‚ и „ене‡циfl киптфической секетности фомиуютсfl постепенно по хо‰у ‚ыполнениfl потокол‡ уст‡но‚лениfl сое‰инениfl. Возник‡ет ‚опос: к‡ ‰‚е стооны мо„ут использть эти меты секетности? SSL ут‚е扇ет, что стооны не мо„ут использть эти меты или секетность, пок‡ они не пе則ли или не получили специ‡льное сообщение: ChangeCipherSpec — сообщение, котоым обмен肇ютсfl клиент и се‚е ‚ хо‰е ‚ыполнениfl потокол‡ уст‡но‚лениfl сое‰инениfl и котоое опе‰елено ‚ потоколе ChangeCipherSpec. По этой пичине объекты не посыл‡ют или не получ‡ют сообщение. Пе則тчик и пиемник ну扇ютсfl не ‚ о‰ном, ‡ ‚ ‰‚ух состоflниflх. О‰но — состоflние ож艇ниfl, пи котоом сох‡нflютсfl меты и секетности. Ду„ое — ‡кти‚ное состоflние, пи котоом меты и секетность используютсfl потоколом пе則чи з‡писей, чтобы по‰пис‡тьсfl/по‚еить или з‡шифть/‡сшифо‚ы‚‡ть сообщениfl. Коме то„о, к‡ж‰ое состоflние со‰ежит ‰‚‡ множест‚‡ зн‡чений: чит‡ть (‚хо‰flщее), пис‡ть (исхо‰flщее). Потокол ChangeCipherSpec опе‰елflет поцесс пеемещениfl зн‡чений меж‰у состоflнием ож艇ниfl и ‡кти‚ным состоflнием. Рисунок 17.20 пок‡зы‚‡ет „ипотетическую ситу‡цию, с „ипотетическими зн‡чениflми, чтобы только поиллюстить концепцию. Н‡ исунке пок‡з‡но только несколько мето‚. Пее‰ обменом сообщениflми ChangeCipherSpec ‚ состоflнии ож艇ниfl з‡полнены только зн‡чениfl столбцо‚. Сн‡ч‡л‡ клиент пе則ет ChangeCipherSpec-сообщение. После это„о клиент пеемещ‡ет меты «пис‡ть» (исхо‰flщие) из состоflниfl ож艇ниfl ‚ ‡кти‚ное состоflние. Тепеь он может использть эти меты, чтобы по‰пис‡тьсfl или 561
Кус
Киптфиfl и безоп‡сность сетей
Рис.17.20. Пе剂ижение мето‚ из состоflниfl ож艇ниfl ‚ ‡кти‚ное состоflние з‡шифть исхо‰flщее сообщение. После получениfl это„о сообщениfl се‚е пеемещ‡ет меты «чит‡ть» (‚хо‰flщие) из состоflниfl ож艇ниfl ‚ ‡кти‚ное состоflние. Тепеь се‚е может ‚еифицить и ‡сшифо‚ы‚‡ть сообщение. Это озн‡ч‡ет, что сообщение Finished, пе則‚‡емое клиентом, может быть по‰пис‡но клиентом и ‡сшифно се‚еом. Се‚е пе則ет сообщение ChangeCipherSpec после получениfl от клиент‡ сообщениfl Finished. После пе則чи это„о сообщениfl он пеемещ‡ет меты «пис‡ть» (‚хо‰flщие) из состоflниfl ож艇ниfl ‚ ‡кти‚ное состоflние. Се‚е может тепеь использть эти меты ‰лfl то„о, чтобы по‰пис‡ть или з‡шифть ис хо‰flщие сооб щениfl. После то„о к‡к клиент полу ч‡ ет это сообщение, он пеемещ‡ет пе‚ый ‡бз‡ц (‚хо‰flщий) из состоflний ож艇ниfl ‚ ‡кти‚ное состоflние. Тепеь клиент может по‚еить (‚еифицить) и ‡сшифть сообщениfl. Конечно, после обмен‡ сообщениflми Finished обе стооны мо„ут ‡бот‡ть ‚ обоих н‡п‡‚лениflх, используfl ‡кти‚ные меты ‰лfl чтениfl/з‡писи. 562
Лекциfl 17
Безоп‡сность н‡ т‡нспотном уо‚не: SSL И TLS
А‚‡ийный потокол SSL использует ‡‚‡ийный потокол ‰лfl то„о, чтобы из‚естить об ошибк‡х и неном‡льном состоflнии устойст‚. Имеетсfl только о‰ин тип ‡‚‡ийно„о сообщениfl, котоое описы‚‡ет поблему и ее уо‚ень (оп‡сное или полный ‚ыхо‰ из стоfl). Т‡блиц‡ 17.4 пок‡зы‚‡ет типы ‡‚‡ийных сообщений, опе‰еленных ‰лfl SSL. Т‡блиц‡ 17.4. А‚‡ийные сообщениfl, опе‰еленные ‰лfl SSL Цифо‚ое обозн‡чение 0
Опис‡ние
Зн‡чение
CloseNotify
Пе則тчик больше не бу‰ет посыл‡ть сообщений Получено несоот‚етст‚ующее сообщение
10
UnexpectedMessage
20 30 40
BadRecordMAC DecompressionFailure HandshakeFailure
41 42 43 44 45 46 47
Получено некоектное MAC Не‚озможно получить несж‡тый текст Пе則тчик не может з‡кончить уст‡но‚ление сое‰инениfl NoCertificate Клиент не сетифицил посл‡ние BadCertificate Полученный сетифик‡т иск‡жен UnsupportedCertificate Тип полученно„о сетифик‡т‡ не пеж肇етсfl CertificateRevoked По‰пис‡‚ший ‡ннулиует сетифик‡т CertificateExpired Сетифик‡т посочен CertificateUnknown Сетифик‡т неиз‚естен Illegal Parameter Поле не может быть об‡бот‡но
Потокол пе則чи з‡писей Потокол пе則чи з‡писей ‰ост‡‚лflет сообщениfl от ‚ехне„о уо‚нfl (потокол уст‡но‚лениfl сое‰инениfl, ChangeCipherSpec-потокол, ‡‚‡ийный потокол) или пик뇉ных уо‚ней. Сообщениfl ф‡„ментины и поиз‚ольно сж‡ты; MAC ‰оᇂлflетсfl к сж‡тому сообщению, используfl со„л‡снный ‡л„оитм хэш. Сж‡тый ф‡„мент и MAC з‡шифны с пименением со„л‡снно„о ‡л„оитм‡ шифниfl. В конце к з‡шифнному сообщению ‰оᇂлflетсfl 燄оло‚ок SSL. Рисунок 17.21 иллюстиует этот поцесс ‚ пе則тчике. Поцесс ‚ пиемнике имеет об‡тный поfl‰ок. Об‡тите ‚ним‡ние, о‰н‡ко, что этот поцесс может быть ‚ыполнен, только к‡ киптфические меты н‡хо‰flтсfl ‚ ‡кти‚ном состоflнии. Сообщениfl, пе則‚‡емые пее‰ пеемещением из состоflниfl ож艇ниfl ‚ ‡кти‚ное состоflние, не по‰пис‡ны и не з‡шифны. В сле‰ующих секциflх мы у‚и‰им некотоые ‰у„ие сообщениfl ‚ потоколе уст‡но‚лениfl сое‰инениfl, котоые используютсfl некотоыми опе‰еленными тип‡ми хэшиниfl ‰лfl обеспечениfl целостности сообщениfl. 563
Кус
Киптфиfl и безоп‡сность сетей
Рис. 17.21. Поцесс ‡боты потокол‡ пе則чи з‡писей
Ф‡„мент‡циfl/Объе‰инение В пе則тчике сообщение от пик뇉но„о уо‚нfl ф‡„ментиуетсfl ‚ блоки по 2 б‡йт‡, пи этом после‰ний блок может быть меньше. В пиемнике ф‡„менты объе‰инflютсfl ‚месте, чтобы со片ть точную копию пе‚он‡ч‡льно„о сообщениfl. Сж‡тие/Р‡сшиение В пе則тчике ‚се ф‡„менты пик뇉но„о уо‚нfl сж‡ты с использнием мет сж‡тиfl, о котоом ‰о„肇ютсfl ‚о ‚емfl поце‰уы уст‡но‚лениfl с‚flзи. Мето‰ сж‡тиfl не ‰олжен ‚носить потеи (‡сшиенный ф‡„мент ‰олжен быть точной копией пе‚он‡ч‡льно„о ф‡„мент‡). Р‡зме ф‡„мент‡ не ‰олжен пе‚ысить 1024 б‡йт‡. Некотоые мето‰ы сж‡тиfl ‡бот‡ют только с 燇нее 燉‡нными ‡зме‡ми блоко‚, и если ‡зме блок‡ меньше, то блок ‰ополнflетсfl. Поэтому ‡зме сж‡то„о ф‡„мент‡ может быть больше, чем ‡зме пе‚он‡ч‡льно„о ф‡„мент‡. В пиемнике сж‡тый ф‡„мент ‡сшиflетсfl, чтобы со片ть точную копию ои„ин‡л‡. Если ‡зме ‡сшиенно„о ф‡„мент‡ пе‚ыш‡ет 214, ‚ы‡б‡ты‚‡етсfl ‡‚‡ийное сообщение «неильное ‡сшиение» (fatal decompression). Об‡тите ‚ним‡ние, что сж‡тие/‡сшиение ‚ SSL — ‰ополнительные функции. По‰пис‡ние/По‰т‚еж‰ение
564
Лекциfl 17
Безоп‡сность н‡ т‡нспотном уо‚не: SSL И TLS
Рис. 17.22. Вычисление MAC В пе則тчике мето‰ по‰т‚еж‰ениfl по‰линности опе‰елflетсfl ‚ течение уст‡но‚лениfl сое‰инениfl (NULL, MD5 или SHA-1) и со片ет по‰пись (MAC), к‡к это пок‡з‡но н‡ ис. 17.22. Ал„оитм хэшиниfl пименflетсfl ‰‚‡ж‰ы. Сн‡ч‡л‡ хэшиние со片етсfl путем после‰о‚‡тельных сое‰инений (конк‡тен‡ции) сле‰ующих зн‡чений: ‡. секетный MAC (пис‡ть) (ключ по‰т‚еж‰ениfl по‰линности ‰лfl исхо‰flщих сообщений); б. з‡полнение 1, котоое пе‰ст‡‚лflет б‡йт 0x36, по‚тоflемый 48 ‡з ‰лfl MD5 и 40 ‡з ‰лfl SHA-1; ‚. поfl‰ко‚ый номе это„о сообщениfl; „. тип сж‡тиfl, котоый опе‰елflет потокол ‚ехне„о уо‚нfl, обеспечи‚ше„о сж‡тие ф‡„мент‡; ‰. ‰лин‡ сж‡тиfl, кото‡fl ук‡зы‚‡ет ‰лину сж‡то„о ф‡„мент‡; ж. сж‡тый ф‡„мент. Втоой ‡з 燂еш‡ющее хэшиние (MAC) со片етсfl после‰о‚‡тельным сое‰инением (конк‡тен‡цией) сле‰ующих зн‡чений: ‡. секетный MAC (пис‡ть); б. з‡полнение 2, котоое пе‰ст‡‚лflет б‡йт 0x5C, по‚тоflемый 48 ‡з ‰лfl MD5 и 40 ‡з ‰лfl SHA-1; ‚. со片ние хэш‡ из езульт‡т‡ пе‚о„о ш‡„‡. В пиемнике по‚о‰итсfl ‚еифик‡циfl — ‚ычисление но‚о„о хэш‡ и с‡‚нение е„о с полученным хэшинием. Шифние/Дешифние В пе則тчике сж‡тый ф‡„мент и хэш з‡шифны с пименением секетно„о шиф‡ (пис‡ть). В пиемнике полученное сообщение ‡сшифо‚ы‚‡етсfl с 565
Кус
Киптфиfl и безоп‡сность сетей
использнием секетно„о шиф‡ (чит‡ть). Пи шифнии к блоку ‰оᇂлflетсfl з‡полнение, чтобы с‰ел‡ть ‡зме сообщениfl пи„о‰ным ‰лfl шифниfl — к‡тным числом ‡зме‡ блок‡. Со片ние ꇉ‡ В пе則тчике после шифниfl ‰оᇂлflетсfl 燄оло‚ок потокол‡ пе則чи з‡писей. З‡„оло‚ок у‰‡лflетсfl ‚ пиемнике пее‰ ‰ешифнием.
17.3. Фом‡ты сообщениfl SSL Мы уже зн‡ем,что сообщениfl из тех потоколо‚ и ‰‡нные от пик뇉но„о уо‚нfl инк‡псулиуютсfl (‚ст‡‚лflютсfl) ‚ сообщениfl потокол‡ пе則чи з‡писей. Ду„ими слми, сообщение ‚ потокол пе則чи з‡писей инк‡псулиуетсfl из четыех ‡зличных источнико‚ н‡ стооне пе則тчик‡. Н‡ стооне пиемник‡ потокол пе則чи з‡писей из‚лек‡ет сообщениfl и ‰ост‡‚лflет их ‡зличным
пункт‡м н‡зн‡чениfl. Потокол пе則чи з‡писей имеет общий 燄оло‚ок, котоый ‰оᇂлflетсfl к к‡ж‰ому сообщению, пибы‚‡ющему от источнико‚, к‡к пок‡з‡но н‡ ис. 17.23. Рис. 17.23. Общий 燄оло‚ок потокол‡ пе則чи з‡писей Ниже пи‚о‰итсfl опис‡ние полей. • Потокол. Это 1-б‡йто‚ое поле опе‰елflет источник или пункт н‡зн‡чениfl инк‡псулинно„о сообщениfl. Оно используетсfl ‰лfl мультиплексиниfl и ‰емультиплексиниfl. Зн‡чениfl — 20 (ChangeCipherSpecпотокол), 21 (‡‚‡ийный потокол), 22 (потокол уст‡но‚лениfl сое‰инениfl) и 23 (‰‡нные от пик뇉но„о уо‚нfl). • Весиfl. Это 2-б‡йто‚ое поле опе‰елflет ‚есию SSL; о‰ин б‡йт — п傇fl циф‡ ‚есии и ‰у„ой — ‚то‡fl. Текущ‡fl ‚есиfl SSL — 3.0. • Длин‡. Это 2-б‡йто‚ое поле опе‰елflет ‡зме сообщениfl (без 燄оло‚к‡) ‚ б‡йт‡х.
566
Лекциfl 17
Безоп‡сность н‡ т‡нспотном уо‚не: SSL И TLS
ChangeCipherSpec-потокол К‡к мы „о‚оили ‡ньше, потокол ChangeCipherSpec имеет о‰но сообщение: ChangeCipherSpec. Это сообщение со‰ежит только о‰ин б‡йт, инк‡псулинный ‚ сообщение потокол‡ пе則чи з‡писей со зн‡чением 20, к‡к пок‡з‡но н‡ ис. 17.24.
Рис. 17.24. Сообщение ChangeCipherSpec (CCS) О‰ноб‡йто‚ое поле ‚ сообщении н‡з‚‡но CCS, и е„о зн‡чение ‚ н‡стоflщее ‚емfl ‡‚но 1.
А‚‡ийный потокол А‚‡ийный потокол, к‡к мы „о‚оили пеж‰е, имеет о‰но сообщение — ‡пот об ошибк‡х ‚ поцессе. Рисунок 17.25 пок‡зы‚‡ет инк‡псулflцию это„о е‰инст‚енно„о сообщениfl ‚ Потоколе пе則чи з‡писей со зн‡чением 21. Рис. 17.25. А‚‡ийное сообщение Д‚‡ полfl ‡‚‡ийно„о сообщениfl ‡зъflснflютсfl ниже.
• Уо‚ень. Это о‰ноб‡йто‚ое поле опе‰елflет уо‚ень ошибки. В н‡стоflщее ‚емfl опе‰елены ‰‚‡ уо‚нfl: пе‰упеж‰ение и полный отк‡з. • Опис‡ние. О‰ноб‡йто‚ое опис‡ние опе‰елflет тип ошибки.
Потокол уст‡но‚лениfl сое‰инениfl Несколько сообщений были опе‰елены ‰лfl потокол‡ уст‡но‚лениfl сое‰инениfl. Все эти сообщениfl имеют четыехб‡йто‚ый типо‚ой 燄оло‚ок, пок‡з‡нный н‡ ис. 17.26. Рисунок пи‚о‰ит 燄оло‚ок потокол‡ пе則чи з‡писей и типо‚ой 燄оло‚ок ‰лfl потокол‡ уст‡но‚лениfl сое‰инениfl. Об‡тите ‚ним‡ние, что зн‡чение полfl потокол‡ — 22. Рис. 17.26. Типо‚ой 燄оло‚ок ‚ потоколе уст‡но‚лениfl сое‰инениfl • Тип. Это о‰ноб‡йто‚ое поле опе‰елflет тип сообщениfl. В н‡стоflщее ‚емfl опе‰елены ‰есflть типо‚, котоые пеечислены ‚ т‡блице 17.5. 567
Кус
Киптфиfl и безоп‡сность сетей
Т‡блиц‡ 17.5. Типы сообщений уст‡но‚лениfl сое‰инениfl Тип 0 1 2 11 12 13 14 15 16 20
Сообщение HelloRequest ClientHello ServerHello Certificate ServerKeyExchange CertificateRequest ServerHelloDone CertificateVerify ClientKeyExchange Finished
• Длин‡. Это техб‡йто‚ое поле опе‰елflет ‰лину сообщениfl (исключ‡fl ‰лину тип‡ и полfl ‰лины). Чит‡тель может 燉‡ть ‚опос: почему мы ну扇емсfl ‚ ‰‚ух полflх ‰лины — о‰ном ‚ общем 燄оло‚ке потокол‡ пе則чи з‡писей и о‰ном ‚ типо‚ом 燄оло‚ке ‰лfl сообщений уст‡но‚лениfl сое‰инениfl? От‚ет: сообщение потокол‡ пе則чи з‡писей может ‰ост‡‚ить ‰‚‡ сообщениfl уст‡но‚лениfl сое‰инениfl ‚ о‰но и то же ‚емfl, если нет потебности пе則ть ‰у„ое сообщение меж‰у ними. Сообщение HelloRequest Сообщение HelloRequest, котоое используетсfl е‰ко, fl‚лflетсfl з‡посом от се‚е‡ к клиенту ‰лfl пеез‡пуск‡ се‡нс‡. Это может быть необхо‰имо, если ‚
се‚ее обн‡ужены сбои и необхо‰им но‚ый се‡нс. Н‡пиме, если се‡нс ст‡но‚итсfl т‡ким ‰линным, что это у„ож‡ет е„о безоп‡сности, се‚е может пе則ть ‡ссм‡т肇емое сообщение. Клиент т‡ ‰олжен пе則ть сообщение ClientHello и ‰о„о‚оитьсfl о мет‡х безоп‡сности. Рисунок 17.27 пок‡зы‚‡ет фом‡т т‡ко„о сообщениfl. Это — четые б‡йт‡ со зн‡чением тип‡ 0. Он не имеет ник‡ко„о тексто‚о„о блок‡, т‡к что зн‡чение полfl ‰лины — т‡кже 0. Сообщение ClientHello Сообщение ClientHello — пе‚ое сообщение ‚ обмене пи уст‡но‚лении сое‰инениfl. Н‡ ис. 17.27 пок‡з‡н фом‡т сообщениfl. Рис. 17.27. Сообщение HelloRequest Поле «тип» и поле ‰лины п剂‡ительно были уже обсуж‰ены. Ниже пи‚о‰итсfl к‡ткое опис‡ние ‰у„их полей. 568
Лекциfl 17
Безоп‡сность н‡ т‡нспотном уо‚не: SSL И TLS
Рис. 17.28. Сообщение ClientHello • Весиfl. Это 2-б‡йто‚ое поле пок‡зы‚‡ет ‚есии используемо„о SSL. Весиfl 3.0 — ‰лfl SSL и 3.1 — ‰лfl TLS. Об‡тите ‚ним‡ние, что зн‡чение ‚есии, н‡пиме, 3.0, сох‡нflетсfl ‚ ‰‚ух б‡йт‡х: 3 ‚ пе‚ом б‡йте и 0 — ‚о ‚тоом. • Случ‡йное число клиент‡. Это 32-б‡йто‚ое поле используетсfl клиентом, чтобы пе則ть случ‡йное число, котоое со片ет меты безоп‡сности. • Длин‡ ID се‡нс‡. Это 1-б‡йто‚ое поле опе‰елflет ‰лину ID се‡нс‡ (сле‰ующее поле). Если нет ID се‡нс‡, зн‡чение это„о полfl — 0. • ID се‡нс‡. Зн‡чение это„о полfl пееменной ‰лины — 0, к‡ клиент н‡чин‡ет но‚ый се‡нс. ID се‡нс‡ иницииуетсfl се‚еом. О‰н‡ко если клиент хочет ‚озобно‚ить п剂‡ительно ост‡но‚ленный се‡нс, он может ‚ключить п剂‡ительно опе‰еленный ID се‡нс‡ ‚ этом поле. Потокол опе‰елflет ‰лfl ID се‡нс‡ м‡ксимум 32 б‡йт‡. • Длин‡ н‡бо‡ шифо‚. Это 2-б‡йто‚ое поле опе‰елflет ‰лину пе‰ложенно„о клиентом списк‡ н‡бо‡ шифо‚ (сле‰ующее поле). • Список н‡бо‡ шифо‚. Это поле пееменной ‰лины ‰‡ет список н‡бо‡ шифо‚, пеж肇емых клиентом. Поле пеечислflет н‡бо шифо‚ от н‡иболее пе‰почтительных к н‡именее пе‰почтительным. К‡ж‰ый н‡бо шифо‚ ко‰иуетсfl к‡к ‰‚ухб‡йто‚ое число. • Длин‡ мето‰о‚ сж‡тиfl. Это 1-б‡йто‚ое поле опе‰елflет ‰лину списк‡ пе‰ложенных клиентом мето‰о‚ сж‡тиfl (сле‰ующее поле). • Список мето‰о‚ сж‡тиfl. Это поле пееменной ‰лины ‰‡ет список мето‰о‚ сж‡тиfl, котоые пеж肇ет клиент. Поле пеечислflет мето‰ы от н‡иболее пе‰почтительных к н‡именее пе‰почтительным. К‡ж‰ый мето‰ ко‰иуетсfl к‡к о‰ноб‡йто‚ое число. Сейч‡с е‰инст‚енный мето‰ — мето‰ 569
Кус
Киптфиfl и безоп‡сность сетей
Рис. 17.29. Сообщение ServerHello NULL («нет сж‡тиfl»). В этом случ‡е зн‡чение ‰лины мето‰о‚ сж‡тиfl — 1, и список мет сж‡тиfl имеет только о‰ин элемент со зн‡чением 0. Сообщение ServerHello Cообщение ServerHello — от‚ет се‚е‡ н‡ сообщение ClientHello. Фом‡т по‰обен сообщению ClientHello, но с меньшим количест‚ом полей. Рисунок 17.29 пок‡зы‚‡ет фом‡т сообщениfl. Поле ‚есии — то же с‡мое, что и ‚ сообщении ClientHello. Поле случ‡йно„о числ‡ се‚е‡ опе‰елflет зн‡чение, ‚ыб‡нное се‚еом. Длин‡ ID се‡нс‡ и поле ID
се‡нс‡ — те же с‡мые, что и ‚ сообщении ClientHello. О‰н‡ко ID се‡нс‡ — обычно побел (и ‰лин‡ обычно уст‡н‡‚л肇етсfl н‡ 0), если се‚е не ‚озобно‚лflет ст‡ый се‡нс. Ду„ими слми, если се‚е поз‚олflет ‚озобно‚ление се‡нс‡, он ‚ст‡‚лflет соот‚етст‚ующее зн‡чение ‚ поле ID се‡нс‡, котоое используетсfl клиентом (‚ сообщении ClientHello), к‡ клиент жел‡ет по‚тоно откыть ст‡ый се‡нс.
570
Лекциfl 17
Безоп‡сность н‡ т‡нспотном уо‚не: SSL И TLS
Поле ‚ыб‡нно„о н‡бо‡ шифо‚ опе‰елflет е‰инст‚енный н‡бо шифо‚, котоый ‚ыб‡н се‚еом из списк‡, посл‡нно„о клиентом. Поле мето‰о‚ сж‡тиfl опе‰елflет ‚ыб‡нный се‚еом мето‰ из списк‡, посл‡нно„о клиентом. Сообщение Certificate Сообщение Certificate может быть пе則но клиентом или се‚еом, чтобы пе則ть список сетифик‡то‚ откыто„о ключ‡. Рисунок 17.30 пок‡зы‚‡ет фом‡т. Рис. 17.30. Сообщение Certificate Зн‡чение полfl «тип» — 11. Тексто‚ый блок сообщениfl ‚ключ‡ет сле‰ующие полfl. • Длин‡ цепочки сетифик‡то‚. Это техб‡йто‚ое поле пок‡зы‚‡ет ‰лину цепочки сетифик‡то‚. Это поле избыточно, потому что е„о зн‡чение — ‚с儉‡ н‡ 3 меньше, чем зн‡чение полfl ‰лины. • Цепочк‡ сетифик‡то‚. Это поле пееменной ‰лины со‰ежит цепочку сетифик‡то‚ откыто„о ключ‡, котоый использует клиент или се‚е. Длfl к‡ж‰о„о сетифик‡т‡ есть ‰‚‡ ‰ополнительных полfl: ‡. техб‡йто‚ое поле ‰лины; б. с‡м сетифик‡т — поле пееменно„о ‡зме‡.
Сообщение ServerKeyExchange ServerKeyExchange-сообщение пе則ют от се‚е‡ к клиенту. Рисунок 17.31 пок‡зы‚‡ет общий фом‡т. Сообщение со‰ежит ключи, с„енеинные се‚еом. Фом‡т сообщениfl 燂исит от н‡бо‡ шифо‚, ‚ыб‡нно„о ‚ пе‰ы‰ущем сообщении. Клиент, котоый получ‡ет сообщение, ‰олжен интепетить е„о со„л‡сно пе‰ы‰ущей инфом‡ции. Если се‚е пе則л сообщение сетифик‡т‡, то сообщение со‰ежит по‰пис‡нный мет. Сообщение CertificateRequest CertificateRequest-сообщение пе則ют от се‚е‡ к клиенту. Сообщение посит, чтобы клиент по‰т‚е‰ил се‚еу с‚ою по‰линность, ‡ т‡кже по‰линность о‰но„о из используемых сетифик‡то‚ и о‰ной из у‰осто‚еflющих ‡‰минист‡ций, н‡з‚‡нной ‚ сообщении. Рисунок 17.32 пок‡зы‚‡ет общий фом‡т. Рис. 17.31. Сообщение ServerKeyExchange 571
Кус
Киптфиfl и безоп‡сность сетей
Рис. 17.32. Сообщение CertificateRequest
Зн‡чение полfl тип‡ — 13. Тексто‚ый блок сообщениfl ‚ключ‡ет сле‰ующие полfl. • Длин‡ типо‚ сетифик‡то‚ (Len of Cert Types). Это о‰ноб‡йто‚ое поле пок‡зы‚‡ет ‰лину типо‚ сетифик‡то‚. • Типы сетифик‡то‚ (Certificate Types). Это поле пееменной ‰лины со‰ежит список сетифик‡т‡ откыто„о ключ‡, котоый пинflт се‚еом. К‡ж‰ый тип — о‰ин б‡йт.
• Длин‡ сетифик‡то‚ по‰т‚еж‰ениfl по‰линности (Length of CAs). Это ‰‚ухб‡йто‚ое поле пок‡зы‚‡ет ‰лину списк‡ сетифик‡то‚, у‰осто‚еflющих по‰линность (ост‡льн‡fl ч‡сть п‡кет‡). • Длин‡ сетифик‡т‡ по‰линности x. Имfl. (Length of CA x. Name). Это ‰‚ухб‡йто‚ое поле опе‰елflет ‰лину x-о„о сетифик‡т‡ и н‡з‚‡ние ‡‰минист‡ции. x может пиним‡ть зн‡чение от 1 ‰о N. • Сетифик‡т x, по‰т‚е扇ющий по‰линность. Имfl. (CA x. Name). Это поле пееменной ‰лины опе‰елflет н‡з‚‡ние x-о„о сетифик‡т‡ ‡‰минист‡ции. x может пиним‡ть зн‡чение от 1 ‰о N. 572
Лекциfl 17
Безоп‡сность н‡ т‡нспотном уо‚не: SSL И TLS
Сообщение ServerHelloDone ServerHelloDone-сообщение — после‰нее сообщение, посыл‡емое ‚о ‚тоой ф‡зе поце‰уы уст‡но‚лениfl с‚flзи. Сообщение си„н‡лизиует, что Ф‡з‡ II не ‰ост‡‚лflет ник‡кой ‰ополнительной инфом‡ции. Рисунок 17.33 пок‡зы‚‡ет фом‡т. Рис. 17.33. Сообщение ServerHelloDone Сообщение CerivicateVerify Сообщение CerivicateVerify — это после‰нее сообщение Ф‡зы III. В этом сообщении клиент ‰ок‡зы‚‡ет, что ф‡ктически имеет секетный ключ, с‚flз‡нный с е„о сетифик‡том откыто„о ключ‡. Чтобы ‰ок‡з‡ть это, клиент со片ет хэш ‚сех сообщений уст‡но‚лениfl сое‰инениfl, посл‡нных пее‰ этим сообщением, и по‰-
Рис. 17.36. Сообщение ClientKeyExchange 573
Кус
Киптфиfl и безоп‡сность сетей
писы‚‡ет их, используfl ‡л„оитм MD5 или SHA-1, осннный н‡ типе сетифик‡т‡ клиент‡. Рисунок 17.34 пок‡зы‚‡ет фом‡т.
Рис. 17.34. Сообщение CerivicateVerify Если секетный ключ клиент‡ с‚flз‡н с DSS-сетифик‡том, то хэшиние б‡зиуетсfl только н‡ ‡л„оитме SHA-1, и ‰лин‡ хэш — 20 б‡йто‚. Если секетный ключ клиент‡ с‚flз‡н с сетифик‡том RSА, то есть ‰‚‡ (конк‡тенинных) хэш‡: о‰ин — осннный н‡ MD5 и ‰у„ой — осннный н‡ SHA-1. Полн‡fl ‰лин‡ — 16 + 20 = 36 б‡йто‚. Рисунок 17.35 пок‡зы‚‡ет ‚ычислениfl хэш‡. Сообщение ClientKeyExchange ClientKeyExchange — ‚тоое сообщение, посыл‡емое ‚ течение тетьей ф‡зы поце‰уы уст‡но‚лениfl с‚flзи. В этом сообщении клиент обеспеч肇ет ключи. Фом‡т сообщениfl 燂исит от 燉‡нных ‡л„оитмо‚ смены ключей, ‚ыб‡нных ‰‚умfl стоон‡ми. Рисунок 17.36 пок‡зы‚‡ет общую и‰ею фом‡т‡. Рис. 17.35. Вычисление хэш ‰лfl сообщениfl CerivicateVerify Сообщение Finished
574
Лекциfl 17
Безоп‡сность н‡ т‡нспотном уо‚не: SSL И TLS
Cообщение Finished пок‡зы‚‡ет, что пее„о‚оы з‡кончены. Оно со‰ежит ‚се сообщениfl, котоыми обмен肇лись ‚ течение поце‰уы уст‡но‚лениfl с‚flзи, сопо‚о扇емой ук‡з‡нием тип‡ пе則тчик‡ (клиент или се‚е) и ‰ополнением „л‡‚но„о секетно„о к. Точный фом‡т 燂исит от тип‡ используемо„о
н‡бо‡ шиф‡. Общий фом‡т пок‡з‡н н‡ ис. 17.37 — после‰о‚‡тельное сое‰инение (конк‡тен‡циfl) ‰‚ух хэш. Н‡ исунке 17.38 изоб‡жено, к‡к ‚ычислflетсfl к‡ж‰ый из них. Об‡тите ‚ним‡ние, что к‡ клиент или се‚е пе則ют сообщение Finished, они уже пе則ли сообщение ChangedCipherSpec. Ду„ими слми, киптфическ‡fl секетн‡fl инфом‡циfl (пис‡ть) н‡хо‰итсfl ‚ ‡кти‚ном состоflнии, клиент или се‚е мо„ут ее об‡бот‡ть. Сообщение Finished по‰обно ф‡„менту ‰‡нных, пибы‚‡ющему от пик뇉но„о уо‚нfl. Сообщение Finished может быть 燂еено (используfl MAC из н‡бо‡ шифо‚) и з‡шифно (используfl ‡л„оитм шифниfl н‡бо‡ шифо‚).
Пик뇉ные ‰‡нные Потокол пе則чи з‡писей ‰оᇂлflет по‰пись ‚ конце ф‡„мент‡ (‚озможно, сж‡тый MAC), пибы‚‡ющий от пик뇉но„о уо‚нfl, и з‡тем з‡шифо‚ы‚‡ет ф‡„мент и MAC. Рис. 17.37. Сообщение Finished Рис. 17.38. Вычисление хеш ‰лfl сообщениfl Finished После ‰оᇂлениfl обще„о 燄оло‚к‡ со зн‡чением потокол‡ 23 сообщение пе則чи з‡писи пе則но. Об‡тите ‚ним‡ние, что общий 燄оло‚ок не з‡шифн. Рисунок 17.39 пок‡зы‚‡ет общий фом‡т. Рис. 17.39. Сообщение потокол‡ пе則чи з‡писей ‰лfl пик뇉ных ‰‡нных
17.4. Безоп‡сность т‡нспотно„о уо‚нfl Безоп‡сность т‡нспотно„о уо‚нfl (TLS — Transport Layer Security) — потокол IEFT, ст‡н‰‡тн‡fl ‚есиfl потокол‡ SSL. Эти ‰‚‡ потокол‡ очень похожи, но имеют небольшие отличиfl. Вместо то„о чтобы описы‚‡ть TLS полностью, ‚ этой секции мы только отметим отличиfl меж‰у потокол‡ми TLS и SSL.
575
Кус
Киптфиfl и безоп‡сность сетей
Весии Пе‚ое отличие — номе ‚есии (осно‚ное, но незн‡чительное). Текущ‡fl ‚есиfl SSL — 3.0; текущ‡fl ‚есиfl TLS — 1.0. Ду„ими слми, SSLv3.0 со‚местим с TLSv 1.0.
Н‡бо шифо‚ Ду„ое незн‡чительное отличие меж‰у SSL и TLS — отсутст‚ие пежки Fortezza. TLS не пеж肇ет Fortezza ‰лfl смены ключей или ‰лfl шифниfl/‰ешифниfl. Т‡блиц‡ 17.6 пок‡зы‚‡ет н‡бо шифо‚ ‰лfl TLS.
Гене‡циfl киптфической секетности Гене‡циfl киптфической секетности ‚ TLS более сложн‡fl, чем ‚ SSL. TLS сн‡ч‡л‡ опе‰елflет ‰‚е функции: функцию ‡сшиениfl ‰‡нных и пс傉ослуч‡йную функцию. Р‡ссмотим их. Функциfl ‡сшиениfl ‰‡нных Функциfl ‡сшиениfl ‰‡нных использует 燇нее 燉‡нный ко‰ ‡утентифик‡ции н‡ осно‚е хэшиниfl (HMAC-HASH-BASED MESSAGE AUTHENTICATION CODE), или MD5, или SHA-1 ‰лfl то„о, чтобы ‡сшиить инфом‡цию з‡секеч肇ниfl. Эту функцию можно ‡ссм‡т肇ть к‡к функцию, со‰еж‡щую множест‚о секций, „‰е к‡ж‰‡fl секциfl со片ет о‰но зн‡чение хэшиниfl. Р‡сшиенн‡fl секетность — после‰о‚‡тельное сое‰инение зн‡чений хэшиниfl. ʇ扇fl секциfl использует ‰‚‡ HMAC, инфом‡цию з‡секеч肇ниfl и н‡ч‡льное число. Функциfl ‡сшиениfl ‰‡нных — это фоминие цепочки ‚ ‚и‰е мно„их секций. О‰н‡ко чтобы с‰ел‡ть сле‰ующую секцию 燂исимой от пе‰ы‰ущей, ‚тоое н‡ч‡льное число — ф‡ктически ‚ыхо‰ пе‚о„о HMAC пе‰ы‰ущей секции, к‡к это пок‡з‡но н‡ ис. 17.40. Пс傉ослуч‡йн‡fl функциfl TLS опе‰елflет пс傉ослуч‡йную функцию (PRF — PseudoRandom Function), чтобы получить комбин‡цию ‰‚ух функций ‡сшиениfl ‰‡нных: о‰н‡ из них использует MD5 и ‰у„‡fl — SHA-1. Н‡ PRF поступ‡ет ти ч‡сти инфом‡ции: секетный ко‰, метк‡ и н‡ч‡льное число. Т‡блиц‡ 17.6. Н‡бо шифо‚ ‰лfl TLS Н‡бо шифо‚
З‡мен‡ ключей NULL RSA RSA RSA RSA
TLS_NULL_WITH_NULL_NULL TLS_RSA_WITH_NULL_MD5 TLS_RSA_WITH_NULL_SHA TLS_RSA_W1TH_RC4_128_MD5 TLS_RSA_WITH_RC4_128_SHA 576
Шифние Хэш NULL NULL NULL RC4 RC4
NULL MD5 SHA-1 MD5 SHA-!
Лекциfl 17
Безоп‡сность н‡ т‡нспотном уо‚не: SSL И TLS
Рис. 17.40 Функциfl ‡сшиениfl ‰‡нных TLS_RSA_WITH_IDEA_CBC_SHA TLS_RSA_WITH_DES_CBC_SHA TLS_RSA_WITH_3DES_EDE_CBC_SHA TLS_DH_anon_WITH-RC4_l 28_MD5 TLS_DH_anon_WITH_DES_CBC_SHA
RSA RSA RSA DH_anon DH_anon
IDEA DES 3DES RC4 DES
SHA-1 SHA-1 SHA-1 MD5 SHA-1
TLS_DH_anon_WITH_3DES_EDE_ CBC_SHA TLS_DHE_RSA_WITH_DES_CBC_SHA TLS_DHE_RSA_WITH_3DES_EDE_ CBC_SHA
DH_anon
3DES
SHA-1
DHE_RSA DES DHE_RSA 3DES
SHA-1 SHA-1
577
Кус
Киптфиfl и безоп‡сность сетей
TLS_DHE_DSS_WITH_DES_CBC_SHA TLS_DHE_DSS_WITH_3DES_EDE_ CBC_SHA TLS_DH_RSA_WITH_DES_CBC_SHA TLS_DH_RSA_WITH_3DES_EDE_ CBC_SHA TLS_DH_DSS_WITH_DES_CBC_SHA
DHE_DSS DES DHE_DSS 3DES
SHA-1 SHA-1
DH_RSA DH_RSA
DES 3DES
SHA-1 SHA-1
DH_DSS
DES
SHA-1
TLS_DH_DSS_WITH_3DES_EDE_ CBC_SHA
DH_DSS
3DES
SHA-1
Метк‡ и н‡ч‡льное число с‚flз‡ны и служ‡т н‡ч‡льным числом ‰лfl к‡ж‰ой функции ‡сшиениfl ‰‡нных. Инфом‡циfl з‡секеч肇ниfl ‡з‰елен‡ н‡ ‰‚е ч‡сти; к‡ж‰‡fl ч‡сть используетсfl к‡к инфом‡циfl з‡секеч肇ниfl ‰лfl к‡ж‰ой функции ‡сшиениfl ‰‡нных. Выхо‰ы ‰‚ух функций ‡сшиениfl ‰‡нных ск뇉ы‚‡ют по мо‰улю ‰‚‡, чтобы со片ть конечную ‡сшиенную инфом‡цию з‡се-
кеч肇ниfl. Об‡тите ‚ним‡ние, что поскольку хэш со片етсfl MD5 и SHA-1, он имеет ‡зличные ‡змеы, поэтому ‰олжны быть со片ны ‰ополнительные сек578
Лекциfl 17
Безоп‡сность н‡ т‡нспотном уо‚не: SSL И TLS
ции функций н‡ б‡зе MD5, чтобы с‰ел‡ть ‰‚‡ ‚ы‚ с о‰ин‡ко‚ым ‡змеом. Рисунок 17.41 пок‡зы‚‡ет и‰ею пименениfl PRF. Рис. 17.41. PRF Г뇂ный секетный ко‰ TLS пименflет функцию PRF, чтобы со片ть „뇂ный секетный ко‰ из п剂‡ительно„о „л‡‚но„о секетно„о к. Это можно с‰ел‡ть, используfl п剂‡ительный „л‡‚ный секетный ко‰ к‡к инфом‡цию з‡секеч肇ниfl, стоку «„л‡‚ный секетный к — к‡к метку и после‰о‚‡тельное сое‰инение инфом‡ции (конк‡тен‡цию) случ‡йно„о числ‡ клиент‡ и случ‡йное число се‚е‡ — к‡к н‡ч‡льное число. Об‡тите ‚ним‡ние, что метк‡ — ф‡ктически ко‰ ASCII стоки «„뇂но„о секетно„о к». Ду„ими слми, метк‡ опе‰елflет ‚ыхо‰ ‰лfl со片ниfl „뇂но„о секетно„о к. Рисунок 17.42 иллюстиует и‰ею. Рис. 17.42. Гене‡циfl „뇂но„о секетно„о к М‡теи‡л ‰лfl ключей TLS использует функцию PRF, чтобы со片ть м‡теи‡л ‰лfl ключей от „뇂но„о секетно„о к. Н‡ сей ‡з инфом‡циfl з‡секеч肇ниfl со‰ежит: „뇂ный секетный ко‰; метку — это сток‡ «‡сшиение ключ‡»; и н‡ч‡льное число — конк‡тен‡цию случ‡йно„о числ‡ се‚е‡ и случ‡йно„о числ‡ клиент‡, к‡к это пок‡з‡но н‡ ис. 17.43. Рис. 17.43. Гене‡циfl м‡теи‡л‡ ‰лfl ключ‡
А‚‡ийный потокол TLS пеж肇ет ‚се ‡‚‡ийные си„н‡лы, опе‰еленные ‚ SSL, з‡ исключением NoCertificate. TLS т‡кже ‰оᇂлflет к списку SSL некотоые но‚ые. Т‡блиц‡ 17.7 пок‡зы‚‡ет полный список ‡‚‡ийных си„н‡ло‚, пеж肇емых TLS. Т‡блиц‡ 17.7. А‚‡ийные си„н‡лы, опе‰еленные ‰лfl TLS Зн‡чение 0 10 20 21 22 30
Опис‡ние CloseNotify UnexpectedMessage BadRecordMAC DecryptionFailed RecordOverFlow DecampressionFailure
40
HandsHakeFailure
42
BadCertificate
Со‰еж‡ние Пе則тчик не бу‰ет посыл‡ть сообщений Получено несоот‚етст‚ующее сообщение Получен некоектный MAC Дешифнное сообщение не‰ейст‚ительно Р‡зме сообщениfl больше чем 214 + 2048 Не‚озможно соот‚етст‚ующее ‡сшиение сообщениfl Пе則тчик не может 燂ешить уст‡но‚ление сое‰инениfl Полученный сетифик‡т иск‡жен 579
Кус
Киптфиfl и безоп‡сность сетей
43 44 45 46
UnsupportedCertificate Полученный тип сетифик‡т‡ не пеж肇етсfl CertificateRevoked По‰пис‡‚ший ‡ннулил сетифик‡т CertificateExpired Сок сетифик‡т‡ истек CertificateUnknown Сетифик‡т неиз‚естен
47
IllegalParameter
48 49 50
UnknownCA AcessDenied Decode Error
51
DecryptError
60
ExportRestriction
70 71 80 90
ProtocolVersion InsufficientSecurity InternalError UserCanceled
Поле ‚ыхо‰ит з‡ ‰опустимые пе‰елы или не со‚местимо с ‰у„ими CA не может быть и‰ентифицино Нежел‡тельно ‰лfl по‰олжениfl пее„о‚оо‚ Полученное сообщение не может быть ‰еко‰ино Р‡сшифо‚к‡ з‡шифнно„о текст‡ не‰ейст‚ительн‡ Поблемы со„л‡сниfl с ничениflми ‚ США Эт‡ ‚есиfl потокол‡ не пеж肇етсfl Тебуетсfl больший н‡бо секетных шифо‚ Местн‡fl ошибк‡ Д‡нн‡fl стоон‡ хочет пек‡тить пее„о‚оы
580
Лекциfl 17
100
Безоп‡сность н‡ т‡нспотном уо‚не: SSL И TLS
NoRenegotiation
Се‚е не может сн н‡ч‡ть пее„о‚оы по уст‡но‚лению сое‰инениfl
Потокол уст‡но‚лениfl сое‰инениfl TLS ‚носит некотоые изменениfl ‚ потокол уст‡но‚лениfl сое‰инениfl. Были специ‡льно изменены ‰ет‡ли сообщениfl CertificateVerify и сообщениfl Finished. Сообщение CertificateVerify (сетифик‡т ‚еифицин) В SSL хэшиние, используемое ‚ Сообщении CertificateVerify, — это хэшиние с ‰‚умfl ш‡„‡ми, ‡ именно: сообщение уст‡но‚лениfl сое‰инениfl плюс з‡полнение и „л‡‚ный секетный ко‰. TLS упостил поцесс: ‚ нем хэшиуетсfl только сообщение уст‡но‚лениfl сое‰инениfl, к‡к пок‡з‡но н‡ ис. 17.44. Рис. 17.44. Хэш ‰лfl сообщениfl CertificateVerify ‚ TLS Сообщение Finished 581
Кус
Киптфиfl и безоп‡сность сетей
Было т‡кже изменено ‚ычисление хэш ‰лfl сообщениfl Finished. TLS использует PRF, чтобы ‚ычислить ‰‚‡ хэш‡, пименflемых ‰лfl сообщениfl Finished, к‡к это пок‡з‡но н‡ ис. 17.45.
Потокол пе則чи з‡писей Е‰инст‚енное изменение ‚ потоколе пе則чи з‡писей — использние HMAC, чтобы по‰пис‡ть сообщение. TLS пименflет MAC, к‡к это опе‰елено ‚ лекции 11, ‰лfl то„о чтобы со片ть HMAC. TLS т‡кже ‰оᇂлflет ‚есию потокол‡ (н‡з‚‡нную сж‡той ‚есией) к тексту, котоый бу‰ет по‰пис‡н. Рисунок 17.46 пок‡зы‚‡ет, к‡к фомиуетсfl HMAC. Рис. 17.45. Хэш ‰лfl сообщениfl Finished ‚ TLS Рис.17.46 HMAC ‰лfl TLS
17.4. Рекомен‰о‚‡нн‡fl лите‡ту‡ Длfl более ‰ет‡льно„о изучениfl положений, обсуж‰енных ‚ этой лекции, мы екомен‰уем нижесле‰ующие кни„и и с‡йты. Пункты, ук‡з‡нные ‚ скобк‡х, пок‡з‡ны ‚ списке ссылок ‚ конце.
Кни„и [Res], [Tho00], [Sta06], [Rhe03] и [PHS03] ‡ссм‡т肇ют SSL и TLS.
С‡йты Нижесле‰ующий с‡йт ‰‡ет больше инфом‡ции о тем‡х, обсуж‰енных ‚ этой лекции. http://www.ietf.org/rfc/rfc2246.txt
17.7. Ито„и • Потокол безоп‡сности т‡нспотно„о уо‚нfl обеспеч肇ет услу„и безоп‡сности из конц‡ ‚ конец ‰лfl пиложений, котоые пользуютсfl потокол‡ми т‡нспотно„о уо‚нfl, т‡кими к‡к, н‡пиме, TCP. Н‡ се„о‰нflшний ‰ень пеоб뇉‡ет пименение ‰‚ух потоколо‚: потокол «Уо‚ень Безоп‡сных Розеток» (SSL — Secure Sockets Layer) и потокол «Безоп‡сность Т‡нспотно„о уо‚нfl» (TLS — Transport Layer Security). • SSL или TLS обеспеч肇ют т‡кие услу„и, к‡к ф‡„мент‡циfl, сж‡тие, целостность сообщениfl, конфи‰енци‡льность и со片ние ꇉ‡ ‰‡нных, полученных от пик뇉но„о уо‚нfl. К‡к ило, SSL (или TLS) может получить пик뇉ные ‰‡нные от любо„о потокол‡ пик뇉но„о уо‚нfl, но ‡бот‡ет потокол обычно с HTTP. • Комбин‡циfl ‡л„оитмо‚ смены ключей, хэшиниfl и ‡л„оитм шифниfl опе‰елflют н‡бо шифо‚ ‰лfl к‡ж‰о„о се‡нс‡. 582
Лекциfl 17
Безоп‡сность н‡ т‡нспотном уо‚не: SSL И TLS
• Длfl то„о чтобы обмен肇тьсfl 燂еенными и конфи‰енци‡льными сообщениflми, клиенту и се‚еу необхо‰имо иметь шесть е‰иниц киптфической секетности (четые ключ‡ и ‰‚‡ ‚екто‡ иници‡лиз‡ции). • В SSL (или TLS) отлич‡ют по‰ключение и се‡нс. В се‡нсе о‰н‡ стоон‡ и„‡ет оль клиент‡, ‡ ‰у„‡fl — оль се‚е‡; пи по‰ключении обе стооны 脇ют о‰ин‡ко‚ые оли. • SSL (или TLS) опе‰елflет четые потокол‡ н‡ ‰‚ух уо‚нflх: потокол уст‡но‚лениfl сое‰инениfl, потокол ChangeCipherSpec, ‡‚‡ийный потокол и потокол пе則чи з‡писей. Потокол уст‡но‚лениfl сое‰инениfl использует несколько сообщений, чтобы ‰о„о‚оитьсfl о н‡бое шифо‚, по‰т‚е‰ить по‰линность се‚е‡ ‰лfl клиент‡ и клиент‡ ‰лfl се‚е‡, если это необхо‰имо, и обмен肇тьсfl инфом‡цией ‰лfl низ‡ции киптфической секетности. Потокол ChangeCipherSpec опе‰елflет поцесс пеемещениfl инфом‡ции меж‰у состоflнием ож艇ниfl и ‡кти‚ным состоflнием. А‚‡ийный потокол пе則ет из‚ещениfl об ошибк‡х и ситу‡циflх, отклонflющихсfl от ном‡льных. Потокол пе則чи з‡писей ‰ост‡‚лflет сообщениfl от ‚ехне„о уо‚нfl (потокол уст‡но‚лениfl сое‰инениfl, ‡‚‡ийный потокол, ChangeCipherSpec-потокол) или пик뇉но„о уо‚нfl.
17.8. Н‡бо ‰лfl п‡ктики Обзоные ‚опосы 1. Пеечислите услу„и, обеспеченные SSL или TLS. 2. Объflсните, к‡к ‚ SSL со片етсfl из п剂‡ительно„о „л‡‚но„о секетно„о к „뇂ный секетный ко‰. 3. Объflсните, к‡к ‚ TLS со片етсfl из п剂‡ительно„о „л‡‚но„о секетно„о к „뇂ный секетный ко‰. 4. Объflсните, к‡к ‚ SSL со片етсfl из „л‡‚но„о секетно„о к м‡теи‡л ‰лfl ключей. 5. Объflсните, к‡к ‚ TLS со片етсfl из „л‡‚но„о секетно„о к м‡теи‡л ‰лfl ключей. 6. Пок‡жите ‡зличиfl меж‰у се‡нсом и сое‰инением. 7. Пеечислите цель четыех потоколо‚, опе‰еленных ‚ SSL или TLS. 8. Опе‰елите цель к‡ж‰ой ф‡зы ‚ потоколе уст‡но‚лениfl сое‰инениfl. 9. С‡‚ните и поти‚опост‡‚ьте потоколы уст‡но‚лениfl сое‰инениfl ‚ SSL и TLS. 10. С‡‚ните и поти‚опост‡‚ьте потоколы пе則чи з‡писей ‚ SSL и TLS.
Уп‡жнениfl 1. К‡к ‰лин‡ м‡теи‡л‡ ‰лfl ключей, если н‡бо шифо‚ — о‰ин из пеечисленных ниже: a. SSL_RSA_WITH_NULL_MD5 b. SSL_RSA_WITH_NULL_SHA 583
Кус
Киптфиfl и безоп‡сность сетей
c. TLS_RSA_WITH_DES_CBC_SHA d. TLS_RSA_WITH_3DES_EDE_CBC_SHA e. TLS_DHE_RSA_WITH_DES_CBC_SHA f. TLS_DH _RSA _3DES _EDE_CBC_SHA 2. Пок‡жите число по‚тоных мо‰улей, необхо‰имых ‰лfl к‡ж‰о„о случ‡fl ‚ Уп‡жнении 1 (см. ис. 17.9). 3. С‡‚ните ‚ычисление „л‡‚но„о секетно„о к ‚ SSL с т‡ким же поцессом ‚ TLS. В SSL п剂‡ительный „л‡‚ный ко‰ пименflетсfl ‚ ‚ычислении ти ‡з‡, ‚ TLS — только е‰инож‰ы. К‡кое ‚ычисление более эффекти‚но по объему и по ‚емени? 4. С‡‚ните ‚ычисление м‡теи‡л‡ ‰лfl ключей ‚ SSL и TLS. От‚етьте н‡ сле‰ующие ‚опосы: ‡. К‡кое ‚ычисление обеспеч肇ет большую безоп‡сность? б. К‡кое ‚ычисление более эффекти‚но по объему и ‚емени? 5. Вычисление м‡теи‡л‡ ‰лfl ключей ‚ SSL тебует нескольких ите‡ций, ‚ TLS это„о не ‰ел‡етсfl. К‡к может TLS ‚ычислflть м‡теи‡л ‰лfl ключей пееменной ‰лины? 6. К‡ се‡нс по‰олж‡етсfl с но‚ым сое‰инением, SSL не тебует по‚е‰ениfl полной поце‰уы уст‡но‚лениfl с‚flзи. Пок‡жите сообщениfl, котоыми необхо‰имо бу‰ет обменflтьсfl ‚ ч‡стичной поце‰уе уст‡но‚лениfl с‚flзи. 7. К‡ се‡нс по‰олжен, к‡к‡fl из сле‰ующей киптфической инфом‡ции ‰лfl з‡секеч肇ниfl ‰олжн‡ быть по‚тоно ‚ычислен‡? ‡. п剂‡ительный „л‡‚ный секетный ко‰ б. „뇂ный секетный ко‰ ‚. ключи по‰т‚еж‰ениfl по‰линности „. ключи шифниfl ‰. IV (пе‚он‡ч‡льный ‚екто) 8. Что случитсfl ‚ поцессе н‡ ис. 17.20, если се‚е пе則ет сообщение ChangeCipherSpec, ‡ клиент не пе則ет? К‡кие сообщениfl мо„ут быть пе則ны ‚ потоколе уст‡но‚лениfl сое‰инениfl? К‡кие не мо„ут быть пе則ны? 9. С‡‚ните ‚ычисление MAC ‚ SSL и TLS (см. ис. 17.22 и ис. 17.46). К‡кое из них более эффекти‚но? 10. С‡‚ните ‚ычисление хэшиниfl ‰лfl сообщениfl CertificateVerify ‚ SSL и TLS (см. ис. 17.35 и ис. 17.44). К‡кое более эффекти‚но? 11. С‡‚ните ‚ычисление хэшиниfl ‰лfl сообщениfl Finished ‚ SSL и TLS (см. ис. 17.38 и ис. 17.45). От‚етьте н‡ сле‰ующие ‚опосы: ‡. Котоое из них более безоп‡сно? б. Котоое из них более эффекти‚но? 12. TLS использует PRF ‰лfl ‚сех ‚ычислений хэш коме сообщениfl CertificateVerify. Объflснить это исключение. 13. Большинст‚о потоколо‚ з‡писы‚‡ют ‚ ‚и‰е фомулы, чтобы пок‡з‡ть ‚ычислениfl киптфической секетности и хэшиниfl. Н‡пиме, ‚ SSL ‚ычисление „л‡‚но„о секетно„о к (см. ис. 17.8) отоб‡ж‡етсfl сле‰ующим об‡зом (после‰о‚‡тельн‡fl конк‡тен‡циfl з‡писы‚‡етсfl ‚ ‚и‰е линеек): 584
Лекциfl 17
Безоп‡сность н‡ т‡нспотном уо‚не: SSL И TLS
Master Secret = MD5 (pre-master | SHA-1 («A» |pre-master I CR I SR)) | MD5 (pre-master| SHA-1 («A» | pre-master | CR I SR)) | MD5 (pre-master |SHA-1 («A» | pre-master | CR | SR)) Master Secret pre-master | CR SR
Г뇂ный секетный ко‰ П剂‡ительный „л‡‚ный секетный ко‰ Конк‡тен‡циfl Случ‡йное число клиент‡ Случ‡йное число се‚е‡
З‡пишите ‚ ‚и‰е фомул сле‰ующие поцессы: ‡. М‡теи‡л ‰лfl ключей ‚ SSL (ис. 17.9) б. MAC ‚ SSL (ис. 17.22) ‚. Вычисление хэшиниfl ‰лfl сообщениfl CertificateVerify ‚ SSL (ис. 17.35) „. Вычисление хэшиниfl ‰лfl сообщениfl Finished ‚ SSL (ис. 17.38) ‰. Р‡сшиение ‰‡нных ‚ TLS (ис. 17.40) ж. PRF ‚ TLS (ис. 17.41) з. Г뇂ный секетный ко‰ ‚ TLS (ис. 17.42) и. М‡теи‡л ‰лfl ключей ‚ TLS (ис. 17.43) к. Вычисление хэшиниfl ‰лfl сообщениfl CertificateVerify ‚ TLS (ис. 17.44) л. Вычисление хэшиниfl ‰лfl Finished сообщениfl ‚ TLS (ис. 17.45) м. MAC ‚ TLS (ис. 17.46) 14. Пок‡жите, к‡к SSL или TLS 凄иуют н‡ ‡т‡ку ‚оспоиз‚е‰ениfl. То есть пок‡жите, к‡к SSL или TLS от‚еч‡ет н‡п‡‰‡‚шему, котоый пыт‡етсfl имитить о‰но или более сообщений уст‡но‚лениfl сое‰инениfl (п剂‡ительно з‡пис‡‚ сообщение). 15. Пок‡жите, к‡к SSL или TLS 凄иуют н‡ ‡т‡ку „убой силы. Может ли злоумышленник использть исчепы‚‡ющий компьютеный поиск и н‡йти ключ шифниfl ‚ SSL или TLS? К‡кой потокол более безоп‡сен ‚ этом отношении — SSL или TLS? 16. К‡ко‚ иск использниfl ключей кооткой ‰лины ‚ SSL или TLS? К‡кую ‡т‡ку злоумышленник может пименить, если ключи коотки? 17. Дейст‚ительно ли SSL или TLS относительно безоп‡сны к ‡т‡ке «посе‰ниꇻ? Может ли злоумышленник со片ть м‡теи‡л ‰лfl ключей меж‰у клиентом и с‡мим собой и меж‰у собой и се‚еом?
585
Кус
Киптфиfl и безоп‡сность сетей
Лекциfl 18. Безоп‡сность н‡ сете‚ом уо‚не: IP SEC Цели и со‰еж‡ние Эт‡ лекциfl имеет несколько целей. • Опе‰елить ‡хитектуу IPSec. • Обсу‰ить пиложение IPSec ‚ т‡нспотном и туннельном ежим‡х. • Обсу‰ить, к‡к IPSec может использтьсfl, чтобы обеспечить только уст‡но‚ление по‰линности. • Обсу‰ить, к‡к IPSec может использтьсfl, чтобы обеспечить и конфи‰енци‡льность, и уст‡но‚ление по‰линности. • Опе‰елить службы обеспечениfl безоп‡сности (SA — Security Association) и объflснить, к‡к они е‡лизны ‰лfl IPSec. • Опе‰елить потокол обмен‡ ключ‡ми (IKE — Internet Key Exchange) и объflснить, к‡к он используетсfl ‚ IPSec. В ‰‚ух пе‰ы‰ущих лециflх мы обсу‰или безоп‡сность н‡ пик뇉ном и т‡нспотном уо‚нflх. О‰н‡ко т‡к‡fl безоп‡сность ‚ некотоых случ‡flх не может быть ‰ост‡точной. Во-пе‚ых, не ‚се пммы «клиент-се‚е» з‡щищены н‡ пик뇉ном уо‚не; н‡пиме, PGP и S/MIME з‡щищ‡ют только электонную почту. Во-‚тоых, не ‚се пммы «клиент-се‚е» н‡ пик뇉ном уо‚не используют потокол TCP, котоый может быть з‡щищен SSL или TLS; некотоые пммы пименflют обслуж肇ние UDP. В-тетьих, мно„о пиложений, т‡ких к‡к потоколы м‡шутиз‡ции, непосе‰ст‚енно ‡бот‡ют с потоколом IP; они ну扇ютсfl ‚ служб‡х безоп‡сности н‡ уо‚не IP. Безоп‡сный IP (IPSec) — со‚окупность потоколо‚, ‡з‡бот‡нных Гуппой Инжененой Пежки сети Интенет (IETF Internet Engineering Task Force), чтобы обеспечить безоп‡сность пе則чи п‡кето‚ н‡ сете‚ом уо‚не. Сете‚ой уо‚ень ‚ Интенете упомин‡етсfl ч‡сто к‡к Интенет-потокол — Internet Protocol (IP). Потокол IPSec помет со片‚‡ть 燂еенные и конфи‰енци‡льные п‡кеты ‰лfl уо‚нfl IP, к‡к это пок‡з‡но н‡ ис. 18.1.
Рис. 18.1. Н‡бо потоколо‚ TCP/IP и IPSec 586
Лекциfl 18
Безоп‡сность н‡ сете‚ом уо‚не: IP SEC
IPSec может быть полезен ‚ нескольких обл‡стflх. Во-пе‚ых, он может у‚еличить безоп‡сность пмм «клиент-се‚е», т‡ких к‡к электонн‡fl почт‡, кото‡fl использует с‚ои собст‚енные потоколы безоп‡сности. Во-‚тоых, он может у‚еличить безоп‡сность пмм «клиент-се‚е», котоые пименflют службы безоп‡сности н‡ т‡нспотном уо‚не, — н‡пиме, HTTP. Он может обеспечить безоп‡сность пмм «клиент-се‚е», котоые не пользуютсfl служб‡ми безоп‡сности т‡нспотно„о уо‚нfl. Он может обеспечить безоп‡с ность ‰лfl пмм ус т‡ но‚лениfl с‚flзи «от-уз л‡-к-уз лу», т‡ ких к‡к м‡шутиз‡циfl.
18.1. Д‚‡ ежим‡ IPSec ‡бот‡ет ‚ ‰‚ух ‡зличных ежим‡х — т‡нспотном и туннельном. Т‡нспотный ежим В т‡нспотном ежиме IPSec з‡щищ‡ет инфом‡цию, ‰ост‡‚лflемую от т‡нспотно„о уо‚нfl к сете‚ому уо‚ню. Ду„ими слми, т‡нспотный ежим з‡щищ‡ет полезную 퇄узку сете‚о„о уо‚нfl, и полезн‡fl 퇄узк‡ ‰олжн‡ быть инк‡псулио‚‡н‡ ‚ сете‚ой уо‚ень, к‡к это пок‡з‡но н‡ ис. 18.2.
Рис.18.2. Т‡нспотный ежим IPSec Об‡тите ‚ним‡ние, что т‡нспотный ежим не з‡щищ‡ет 燄оло‚ок IP. Ду„ими слми, т‡нспотный ежим не з‡щищ‡ет ‚есь п‡кет IP, ‡ только п‡кет т‡нспотно„о уо‚нfl (полезн‡fl 퇄узк‡ P-уо‚нfl). В этом ежиме IPSec-燄оло‚ок (и конечн‡fl метк‡) ‰оᇂлflетсfl к инфом‡ции, пибы‚‡ющей от т‡нспотно„о уо‚нfl. З‡„оло‚ок IP ‰оᇂлflетсfl позже. IPSec ‚ т‡нспотном ежиме не з‡щищ‡ет 燄оло‚ок IP, ‡ только инфом‡цию, пибы‚‡ющую от т‡нспотно„о уо‚нfl. Т‡нспотный ежим обычно пименflетсfl, к‡ мы ну扇емсfl ‚ з‡щите ‰‡нных н‡ уч‡стке «хост-хост» («из конц‡ ‚ конец»). Пе則ющий хост использует IPSec, чтобы по‰т‚е‰ить по‰линность и/или з‡шифть полезную 퇄узку, ос‚обож‰енную от инфом‡ции т‡нспотно„о уо‚нfl. Пиемный хост использует IPSec, чтобы по‚еить уст‡но‚ление по‰линности и/или ‡сшифть п‡кет IP и ‰ост‡‚ить е„о т‡нспотному уо‚ню. Рисунок 18.3 иллюстиует эту концепцию. 587
Кус
Киптфиfl и безоп‡сность сетей
Рис. 18.3. Дейст‚иfl т‡нспотно„о ежим‡ Туннельный ежим В туннельном ежиме IPSec з‡щищ‡ет ‚есь п‡кет IP. Он об‡б‡ты‚‡ет п‡кет IP (‚ключ‡fl 燄оло‚ок), пименflfl мето‰ы безоп‡сности IPSec к полному п‡кету, и з‡тем ‰оᇂлflет но‚ый 燄оло‚ок IP, к‡к это пок‡з‡но н‡ ис. 18.4.
Рис. 18.4. Туннельный ежим IPSec Но‚ый 燄оло‚ок IP, к‡к мы у‚и‰им, со‰ежит иную инфом‡цию, нежели пе‚он‡ч‡льный 燄оло‚ок IP. Туннельный ежим обычно используетсfl меж‰у ‰‚умfl м‡шутиз‡то‡ми, меж‰у хостом и м‡шутиз‡тоом или меж‰у м‡шутиз‡тоом и хостом, к‡к это пок‡з‡но н‡ ис. 18.5. Ду„ими слми, туннельный ежим пименflетсfl, к‡ либо пе則тчик, либо пиемник не fl‚лflетсfl хостом.
Рис. 18.5. Дейст‚иfl туннельно„о ежим‡ 588
Лекциfl 18
Безоп‡сность н‡ сете‚ом уо‚не: IP SEC
Весь пе‚он‡ч‡льный п‡кет з‡щищен от ‚меш‡тельст‚‡ меж‰у пе則тчиком и пиемником, к‡к бу‰то ‚есь п‡кет похо‰ит мнимый туннель. IPSec ‚ туннельном ежиме з‡щищ‡ет пе‚он‡ч‡льный 燄оло‚ок IP.
С‡‚нение В т‡нспотном ежиме уо‚ень IPSec ‡спо뇄‡етсfl меж‰у т‡нспотным уо‚нем и сете‚ым уо‚нем. В туннельном ежиме поток похо‰ит от сете‚о„о уо‚нfl ‰о уо‚нfl IPSec, ‡ з‡тем сн ‚о炇щ‡етсfl н‡з‡‰ к сете‚ому уо‚ню. Рисунок 18.6 с‡‚н肇ет эти ‰‚‡ ежим‡.
Рис. 18.6. С‡‚нение т‡нспотно„о и туннельно„о ежимо‚
18.2. Д‚‡ потокол‡ безоп‡сности IPSec опе‰елflет ‰‚‡ потокол‡: потокол «З‡„оло‚ок ‡утентифик‡ции (AH — Authentication Header)» и потокол «Полезн‡fl 퇄узк‡ со ‚стоенной з‡щитой (ESP — Encapsulating Security Payload)». Их цель — обеспечить уст‡но‚ление по‰линности и/или шифние ‰лfl п‡кето‚ н‡ уо‚не IP.
З‡„оло‚ок ‡утентифик‡ции (AH) Потокол «З‡„оло‚ок ‡утентифик‡ции» (AH) ‡з‡бот‡н ‰лfl то„о, чтобы по‰т‚е‰ить по‰линность хост‡ источник‡ и „‡‡нтить целостность полезной 퇄узки, котоую пееносит п‡кет IP. Потокол использует хэш-функцию и симметичный ключ, чтобы со片ть ‰‡й‰жест сообщениfl; ‰‡й‰жест ‚ст‡‚лflетсfl ‚ 燄оло‚ок ‡утентифик‡ции. З‡тем AH ‚ст‡‚лflют н‡ соот‚етст‚ующее место, ‚ 燂исимости от ежим‡ (т‡нспотный или туннельный). Рисунок 18.7 пок‡зы‚‡ет полfl и позиции 燄оло‚к‡ ‡утентифик‡ции ‚ т‡нспотном ежиме. К‡ ‰ейт‡„‡мм‡ IP пееносит 燄оло‚ок ‡утентифик‡ции, пе‚он‡ч‡льное зн‡чение ‚ поле потокол‡ з‡„оло‚к‡ IP уст‡н‡‚л肇етсfl ‚ зн‡чение 51. Поле ‚ 燄оло‚ке ‡утентифик‡ции (сле‰ующее поле 燄оло‚к‡) со‰ежит пе‚он‡ч‡льное зн‡чение полfl потокол‡ (тип полезной 퇄узки, котоую несет ‰ейт‡„‡мм‡ IP). Доᇂление 燄оло‚к‡ ‡утентифик‡ции по‚о‰итсfl сле‰ующими ш‡„‡ми. 589
Кус
Киптфиfl и безоп‡сность сетей
Рис. 18.7. Потокол «З‡„оло‚ок ‡утентифик‡ции (AH)» 1 З‡„оло‚ок ‡утентифик‡ции ‰оᇂлflетсfl к полезной 퇄узке с полем ‡утентифик‡ции ‰‡нных, уст‡но‚ленным н‡ 0. 2. З‡полнение ‰оᇂлflетсfl, если нужно с‰ел‡ть полную ‰лину сообщениfl ‰лfl конкетно„о ‡л„оитм‡ хэшиниfl. 3. Хэшиние по‚о‰итсfl н‡ ‚сем п‡кете. О‰н‡ко ‚ ‚ычисление ‰‡й‰жест‡ сообщениfl (‰‡нные ‡утентифик‡ции) ‚ключены только те полfl IP-燄оло‚к‡, котоые не изменflютсfl ‚ течение пе則чи. 4. Д‡нные ‡утентифик‡ции ‚ст‡‚лflютсfl ‚ 燄оло‚ок ‡утентифик‡ции. 5. З‡„оло‚ок IP ‰оᇂлflетсfl после изменениfl зн‡чениfl полfl потокол‡ н‡ 51. К‡ткое опис‡ние к‡ж‰о„о полfl ‰‡но ниже. • Сле‰ующий 燄оло‚ок. Поле «сле‰ующий 燄оло‚ок» имеет 8 бито‚ и опе‰елflет тип полезной 퇄узки, котоую несет IP-‰ейт‡„‡мм‡ (т‡кие к‡к TCP, UDP, ICMP или OSPF). Поле ‚ыполнflет ту же с‡мую функцию, что и поле потокол‡ ‚ 燄оло‚ке IP пее‰ инк‡псулflцией. Ду„ими слми, поцесс копиует зн‡чение полfl потокол‡ ‚ ‰ейт‡„‡мме IP ‚ поле «сле‰ующий 燄оло‚ок». Зн‡чение полfl потокол‡ ‚ но‚ой ‰ейт‡„‡мме IP тепеь уст‡но‚лено н‡ 51, чтобы пок‡з‡ть, что п‡кет пееносит 燄оло‚ок ‡утентифик‡ции. • Длин‡ полезной 퇄узки. ͇炇ние это„о полfl из 8 бито‚ ‚‚о‰ит ‚ з‡блуж‰ение. Оно не опе‰елflет ‰лину полезной 퇄узки; оно 燉‡ет ‰лину 燄оло‚к‡ ‡утентифик‡ции ‚ числ‡х, к‡тных 4-м б‡йт‡м, но не ‚ключ‡ет пе‚ые 8 б‡йто‚. • Ин‰екс мет‡ обеспечениfl безоп‡сности. Это поле н‡ 32 бит‡ (SPI — Security Parameter Index) 脇ет оль и‰ентифик‡то‡ ‚иту‡льно„о к‡н‡л‡ и ‰лfl ‚сех п‡кето‚, посыл‡емых ‚ течение сое‰инениfl и н‡зы‚‡емых Службы обеспечениfl безоп‡сности т‡фик‡ (Security Association). Они бу‰ут ‡ссмотены позже. • Поfl‰ко‚ый номе. Поfl‰ко‚ый номе н‡ 32 бит‡ обеспеч肇ет инфом‡цию о поfl‰ке после‰о‚‡тельности ‰ейт‡„‡мм. Поfl‰ко‚ые номе‡ пе‰от‚‡щ‡ют по‚тоение. Об‡тите ‚ним‡ние, что номе не по‚тоflетсfl 590
Лекциfl 18
Безоп‡сность н‡ сете‚ом уо‚не: IP SEC
пи по‚тоной пе則че п‡кет‡. Поfl‰ко‚ый номе не циклический и не по‚тоflет цикл‡ после то„о, к‡к он ‰ост脇ет 232. Длfl обно‚лениfl номе‡ ‰олжно быть уст‡но‚лено но‚ое сое‰инение. • Д‡нные ‡утентифик‡ции. Н‡конец, поле ‰‡нных ‡утентифик‡ции — езульт‡т пименениfl хэш-функции ко ‚сей IP-‰ейт‡„‡мме, исключ‡fl полfl, котоые менflютсfl ‚ течение т‡нзит‡ (н‡пиме, поле «‚емfl жизни»). Потокол AH обеспеч肇ет уст‡но‚ление по‰линности источник‡ и целостность ‰‡нных, но не конфи‰енци‡льность.
Полезн‡fl 퇄узк‡ со ‚стоенной з‡щитой (ESP) Потокол AH не обеспеч肇ет секетность, ‡ только уст‡но‚ление по‰линности источник‡ и целостность ‰‡нных. Длfl IPSec был опе‰елен ‡льтен‡ти‚ный потокол Полезн‡fl 퇄узк‡ со ‚стоенной з‡щитой (ESP — Encapsulating Security Payload), котоый „‡‡нтиует уст‡но‚ление по‰линности источник‡, целостность и секетность. ESP ‰оᇂлflет 燄оло‚ок и конечную метку. Об‡тите ‚ним‡ние, что ‰‡нные ‡утентифик‡ции ESP ‰оᇂлflютсfl ‚ конце п‡кет‡ — это ‰ел‡ет их ‚ычисление более постыми. Рисунок 18.8 пок‡зы‚‡ет ‡змещение 燄оло‚к‡ ESP и конечной метки.
Рис. 18.8. Потокол «Полезн‡fl 퇄узк‡ со ‚стоенной з‡щитой» (ESP) К‡ ‰ейт‡„‡мм‡ IP пееносит 燄оло‚ок ESP и конечную метку, зн‡чение полfl потокол‡ ‚ 燄оло‚ке IP ‡‚но 50. Поле ‚ конечной метке ESP (поле сле‰ующе„о 燄оло‚к‡) со‰ежит пе‚он‡ч‡льное зн‡чение полfl потокол‡ (тип полезной 퇄узки, котоую несет ‰ейт‡„‡мм‡ IP, т‡кой к‡к TCP или UDP). Поце‰у‡ ESP ‚ыполнflетсfl сле‰ующими ш‡„‡ми. 1. Конечн‡fl метк‡ ESP ‰оᇂлflетсfl к полезной 퇄узке. 2. Полезн‡fl 퇄узк‡ и конечн‡fl метк‡ з‡шифо‚ы‚‡ютсfl. 3. Доᇂлflетсfl 燄оло‚ок ESP. 4. З‡„оло‚ок ESP, полезн‡fl 퇄узк‡ и конечн‡fl метк‡ ESP используютсfl, чтобы со片ть ‰‡нные ‡утентифик‡ции. 591
Кус
Киптфиfl и безоп‡сность сетей
5. Д‡нные ‡утентифик‡ции ‰оᇂлflютсfl ‚ конце конечной метки ESP. 6. З‡„оло‚ок IP ‰оᇂлflетсfl после изменениfl зн‡чениfl потокол‡ н‡ 50. Полfl 燄оло‚к‡ и конечной метки сле‰ующие. • Ин‰екс мет‡ обеспечениfl безоп‡сности. Поле ин‰екс‡ мет‡ обеспечениfl безоп‡сности н‡ 32 бит‡ со‚ет с тем, котоое опе‰елено ‰лfl потокол‡ AH. • Поfl‰ко‚ый номе. Поле поfl‰ко‚о„о номе‡ н‡ 32 бит‡ со‚ет с тем, котоое опе‰елено ‰лfl потокол‡ AH. • З‡полнение — это поле пееменной ‰лины (от 0 ‰о 255 б‡йто‚), состоflщее из нулей и служ‡щее з‡полнением. • Длин‡ з‡полнениfl. Поле ‰лины з‡полнениfl н‡ 8 бито‚ опе‰елflет число б‡йто‚ з‡полнениfl меж‰у 0 и 255; м‡ксим‡льное зн‡чение используетсfl е‰ко. • Сле‰ующий 燄оло‚ок. Поле сле‰ующе„о 燄оло‚к‡ н‡ 8 бито‚ со‚ет с тем, котоое опе‰елено ‰лfl потокол‡ AH. Оно ‚ыполнflет ту же с‡мую 燉‡чу, к‡к и поле потокол‡ ‚ 燄оло‚ке IP пее‰ инк‡псулflцией. • Д‡нные ‡утентифик‡ции. Н‡конец, поле ‰‡нных ‡утентифик‡ции — езульт‡т пименениfl схем ‡утентифик‡ции к ч‡стflм ‰ейт‡„‡ммы. Об‡тите ‚ним‡ние н‡ отличие меж‰у ‰‡нными ‡утентифик‡ции ‚ AH и ESP. В AH ч‡сть 燄оло‚к‡ IP ‚ключен‡ ‚ ‚ычисление ‰‡нных ‡утентифик‡ции, ‡ ‚ ESP — нет. ESP обеспеч肇ет уст‡но‚ление по‰линности источник‡, целостность ‰‡нных и секетность.
IPv4 и IPv6 IPSec пеж肇ет и IPv4, и IPv6. В IPv6, о‰н‡ко, AH и ESP — ч‡сть ‡сшиениfl 燄оло‚к‡.
С‡‚нение AH и ESP Потокол ESP был ‡з‡бот‡н, к‡ потокол AH был уже ‚ использнии. ESP умеет то, что AH ‰ел‡ет только с ‰ополнительными функцион‡льными ‚озможностflми (секетность). Вопос: почему же т‡ мы по-пежнему ну扇емсfl ‚ AH? Опе‰еленно„о от‚ет‡ нет. О‰н‡ко е‡лиз‡циfl AH ‚ключен‡ ‚ несколько коммеческих по‰укто‚, то есть AH ост‡нетсfl ч‡стью Интенет, пок‡ эти по‰укты не бу‰ут постепенно ‚ы‚е‰ены из употеблениfl.
Услу„и, обеспеч肇емые IPSec Эти ‰‚‡ потокол‡, AH и ESP, мо„ут обеспечить несколько услу„ безоп‡сности ‰лfl п‡кето‚ н‡ сете‚ом уо‚не. Т‡блиц‡ 18.1 пок‡зы‚‡ет список услу„, ‰оступных ‰лfl к‡ж‰о„о из этих потоколо‚. 592
Лекциfl 18
Безоп‡сность н‡ сете‚ом уо‚не: IP SEC
Т‡блиц‡ 18.1. Услу„и IPSec Услу„и Уление ‰оступом Access control Уст‡но‚ление по‰линности сообщениfl (целостность сообщениfl) Message authentication (message integrity) Уст‡но‚ление по‰линности объект‡ (уст‡но‚ление по‰линности источник‡ ‰‡нных) Entity authentication (data source authentication) Конфи‰енци‡льность Confidentiality З‡щит‡ от ‡т‡ки ‚оспоиз‚е‰ениfl Replay attack protection
AH ДА
ESP ДА
ДА
ДА
ДА НЕТ ДА
ДА ДА ДА
Уление ‰оступом IPSec обеспеч肇ет уление ‰оступом, кос‚енно использующее б‡зу ‰‡нных услу„ обеспечениfl безоп‡сности т‡фик‡ (SAD — Security Association Database), к‡к мы это у‚и‰им ‚ сле‰ующей секции. К‡ п‡кет ‰ост脇ет пункт‡ н‡зн‡чениfl и ‡тибуты службы обеспечениfl безоп‡сности т‡фик‡, уст‡но‚ленные ‰лfl это„о п‡кет‡, отсутст‚уют, п‡кет б‡куетсfl. Целостность сообщениfl Целостность сообщениfl сох‡нflетсfl и ‚ AH, и ‚ ESP. Д‡й‰жест ‰‡нных со片етсfl и посыл‡етсfl пе則тчиком, котоый бу‰ет по‚еен пиемником. Уст‡но‚ление по‰линности объект‡ Службы обеспечениfl безоп‡сности т‡фик‡ и ‰‡й‰жест ключе‚о„о хэшиниfl ‰‡нных, посл‡нных пе則тчиком, по‰т‚е扇ют по‰линность пе則тчик‡ ‰‡нных и ‚ AH, и ‚ ESP. Конфи‰енци‡льность Шифние сообщениfl обеспеч肇ет конфи‰енци‡льность ‚ ESP. AH о‰н‡ко, конфи‰енци‡льность не „‡‡нтиует. Если конфи‰енци‡льность необхо‰им‡, нужно использть ESP ‚место AH. З‡щит‡ от ‡т‡ки ‚оспоиз‚е‰ениfl В обоих потокол‡х пе‰от‚‡щ‡етсfl ‡т‡к‡ ‚оспоиз‚е‰ениfl з‡ счет пименениfl поfl‰ко‚ых номео‚ и скользflще„о окн‡ пиемник‡. К‡ж‰ый IPSec-燄оло‚ок со‰ежит уник‡льный поfl‰ко‚ый номе — к‡ уст‡но‚лены Службы обеспечениfl безоп‡сности т‡фик‡. Числ‡ н‡чин‡ютсfl от 0 и у‚елич肇ютсfl, пок‡ не ‰ост脇ют зн‡чениfl 232 – 1 (‡зме полfl поfl‰ко‚о„о номе‡ — 32 бит‡). К‡ поfl‰ко‚ый номе ‰ост脇ет м‡ксимум‡, он сб‡сы‚‡етсfl ‚ 0, и ‚ то же с‡мое ‚емfl у‰‡лflютсfl ст‡ые Службы обеспечениfl безоп‡сности т‡фик‡ (см. сле‰ующую секцию) и уст‡н‡‚л肇ютсfl но‚ые. Чтобы пе‰от‚‡щ‡ть п‡кеты ‰ублик‡т‡ об‡ботки, IPSec использует фиксинный ‡зме окн‡ пиемник‡. Р‡зме окн‡ пиемник‡ з‡‰‡н по умолч‡нию зн‡чением 64. Рисунок 18.9 пок‡зы‚‡ет окно от‚ет‡. Окно имеет фиксинный 593
Кус
Киптфиfl и безоп‡сность сетей
‡зме W. З‡темненные п‡кеты пок‡зы‚‡ют, что полученные п‡кеты были по‚еены и ‡утентифицины.
Рис. 18.9 Окно от‚ет‡ К‡ п‡кет ‰ост脇ет пиемник‡, ‚ 燂исимости от зн‡чениfl поfl‰ко‚о„о номе‡ может поизойти о‰но из тех событий:. 1. Поfl‰ко‚ый номе п‡кет‡ — меньше чем N. Т‡ п‡кет ‡змещ‡етсfl н‡ле‚о от окн‡ и бу‰ет з‡б‡кн. Он либо fl‚лflетсfl ‰ублик‡том, либо ‚емfl е„о пибытиfl истекло. 2. Поfl‰ко‚ый номе п‡кет‡ — меж‰у N и (N + W – 1) ‚ключительно. Т‡ п‡кет ‡змещ‡етсfl ‚ окне. В этом случ‡е, если п‡кет но‚ый (неотмеченный) и он со‰ежит ‡утентифик‡ционный тест, поfl‰ко‚ый номе отмеч‡етсfl, и п‡кет пиним‡етсfl. Ин‡че (если п‡кет не но‚ый) он б‡куетсfl. 3. Поfl‰ко‚ый номе п‡кет‡ больше, чем (N + W – 1). Т‡ п‡кет ‡змещ‡етсfl с‡ от окн‡. В этом случ‡е, если п‡кет ‡утентифицин, соот‚етст‚ующий поfl‰ко‚ый номе отмеч‡етсfl и окно пеемещ‡етсfl (скользит) ‚о и з‡ним‡ет отмеченный поfl‰ко‚ый номе. Ин‡че (если не ‡утентифицин) п‡кет б‡куетсfl. Об‡тите ‚ним‡ние, что это может случитьсfl, если п‡кет пибы‚‡ет с поfl‰ко‚ым номеом, н‡мно„о большим, чем (N + W) (очень ‰‡леким от о„о к‡fl окн‡). В этом случ‡е скольжение ‚п‡‚о может пи‚ести к по‡нию нем‡кинных поfl‰ко‚ых номео‚ н‡ле‚о от окн‡. Эти п‡кеты, к‡ они пибы‚‡ют, ник‡ не бу‰ут пиним‡тьсfl; их ‚емfl истекло. Н‡пиме (н‡ ис. 18.9), если п‡кет пибы‚‡ет с поfl‰ко‚ым номеом (N + W + 3), окно пеемещ‡етсfl и ле‚ый к‡й н‡чнетсfl с (N + 3). Это озн‡ч‡ет, что поfl‰ко‚ый номе (N + 2) тепеь ‚не окн‡. Если п‡кет пибы‚‡ет с этим поfl‰ко‚ым номеом, он бу‰ет з‡б‡кн.
18.3. Услу„и обеспечениfl безоп‡сности т‡фик‡ Услу„и обеспечениfl безоп‡сности т‡фик‡ — очень ‚‡жный ‡спект IPSec. IPSec тебует меж‰у ‰‚умfl хост‡ми ло„ических отношений, н‡зы‚‡емых услу„и обеспечениfl безоп‡сности т‡фик‡ (SA — Security Association). В этом ‡з‰еле ‚н‡ч‡ле ‡ссмотим и‰ею, ‡ з‡тем пок‡жем, к‡к он‡ используетсfl ‚ IPSec. 594
Лекциfl 18
Безоп‡сность н‡ сете‚ом уо‚не: IP SEC
И‰еfl услу„ обеспечениfl безоп‡сности т‡фик‡ Услу„‡ обеспечениfl безоп‡сности т‡фик‡ (SA — Security Association) — со„л‡шение меж‰у ‰‚умfl стоон‡ми ‰лfl со片ниfl безоп‡сно„о к‡н‡л‡ меж‰у ними. Пе‰положим, что Алис‡ ‰олжн‡ о‰нон‡п‡‚ленно с‚flз‡тьсfl с Бобом. Если Алис‡ и Боб интеесуютсfl только ‡спектом конфи‰енци‡льности и безоп‡сности, они мо„ут получить обще‰оступный ключ з‡секеч肇ниfl ‰лfl с‚flзи меж‰у собой. Мы можем ск‡з‡ть, что эз‰есь 燉ейст‚ны ‰‚е услу„и обеспечениfl безоп‡сности т‡фик‡ (SA’s) меж‰у Алисой и Бобом: о‰н‡ SA — исхо‰flщ‡fl и о‰н‡ SA — ‚хо‰flщ‡fl. К‡ж‰ый из них х‡нит зн‡чение ключ‡ и имfl ‡л„оитм‡ шифниfl/‰ешифниfl. Алис‡ использует ‡л„оитм и ключ, чтобы з‡шифть сообщение Бобу; Боб использует ‡л„оитм и ключ, к‡ он ‰олжен ‡сшифть сообщение, полученное от Алисы. Рисунок 18.10 пок‡зы‚‡ет эти постые услу„и SA. Услу„и обеспечениfl безоп‡сности т‡фик‡ мо„ут быть ‡сшиены, если н‡ши ‰‚е стооны ну扇ютсfl ‚ „‡‡нтии целостности сообщениfl и уст‡но‚лении по‰линности. Т‡ к‡ж‰ое т‡кое сообщест‚о ну扇етсfl ‚ ‰ополнительных ‰‡нных, н‡пиме, т‡ких к‡к ‡л„оитм ‰лfl целостности сообщениfl, ключ и ‰у„ие меты. Все может быть н‡мно„о сложнее, если стооны использли ‡зличные потоколы, котоые имеют ‡зные ‡л„оитмы и меты — н‡пиме, IPSec AH или IPSec ESP.
Рис. 18.10. Постые услу„и обеспечениfl безоп‡сности (SA)
Б‡з‡ ‰‡нных услу„ обеспечениfl безоп‡сности Услу„и обеспечениfl безоп‡сности мо„ут быть низны очень сложно. Это особенно се‰ли‚о, если Алис‡ хочет пе則‚‡ть сообщениfl мно„им лю‰flм, ‡ Боб ‰олжен получ‡ть сообщениfl от мно„их лю‰ей. Коме то„о, к‡ж‰‡fl стоон‡ ‰олжен иметь и ‚хо‰flщие, и исхо‰flщие SA’s, чтобы поз‚олить осущест‚лflть ‰‚ун‡п‡‚ленную с‚flзь. Ду„ими слми, мы ну扇емсfl ‚о множест‚е SA’s, котоые мо„ут быть соб‡ны ‚ б‡зу ‰‡нных. Эт‡ б‡з‡ ‰‡нных н‡зы‚‡етсfl Б‡зой ‰‡нных Услу„ обеспечениfl безоп‡сности (SAD — Security Association Database). Б‡зу ‰‡нных можно пе‰ст‡‚лflть к‡к ‰‚уменую т‡блицу с к‡ж‰ой стокой, опе‰елflющей е‰инст‚енную SA. Обычно есть ‰‚е SAD’s: о‰н‡ — ‚хо‰flщ‡fl и о‰н‡ — исхо595
Кус
Киптфиfl и безоп‡сность сетей
‰flщ‡fl. Рисунок 18.11 пок‡зы‚‡ет концепцию исхо‰flщих и ‚хо‰flщих SAD’s ‰лfl о‰но„о объект‡.
Рис. 18.11 Б‡з‡ ‰‡нных услу„ обеспечениfl безоп‡сности К‡ хост ‰олжен пе則ть п‡кет, котоый ‰олжен ‰ост‡‚ить IPSec-燄оло‚ок, хост ‰олжен н‡йти соот‚етст‚ующий исхо‰flщий SAD и н‡йти инфом‡цию ‰лfl то„о, чтобы пименить услу„и безоп‡сности к п‡кету. Точно т‡к же, к‡ хост получ‡ет п‡кет, котоый ‰олжен ‰ост‡‚ить IPSec-燄оло‚ок, хост ‰олжен н‡йти соот‚етст‚ующий ‚хо‰ ‚о ‚хо‰flщем SAD, н‡йти нужную инфом‡цию ‰лfl по‚еки безоп‡сности п‡кет‡. Этот поиск ‰олжен быть 燉‡н т‡к: пиемный хост ‰олжен убе‰итьсfl, что ‰лfl об‡ботки п‡кет‡ используетсfl ильн‡fl инфом‡циfl, чтобы об‡бот‡ть п‡кет. К‡ж‰ый ‚хо‰ ‚о ‚хо‰flщем SAD ‚ыби‡етсfl, используfl тойной ин‰екс: ин‰екс мет‡ обеспечениfl безоп‡сности, ‡‰ес пункт‡ н‡зн‡чениfl и потокол. Ин‰екс мет‡ обеспечениfl безоп‡сности. Ин‰екс мет‡ обеспечениfl безоп‡сности (SPI) — число н‡ 32 бит‡, котоое опе‰елflет SA ‚ пункте н‡зн‡чениfl. К‡к мы у‚и‰им позже, SPI опе‰елен ‚ течение SA-пее„о‚оо‚. Тот же с‡мый SPI ‚ключен ‚о ‚се IPSec-п‡кеты, пи퇉леж‡щие о‰ному и тому же ‚хо‰flщему SA. А‰ес пункт‡ н‡зн‡чениfl. Втоой ин‰екс — ‡‰ес пункт‡ н‡зн‡чениfl хост‡. Мы ‰олжны помнить, что хост ‚ Интенете обычно имеет о‰ин ин‰и‚и‰у‡льный ‡‰ес пункт‡ н‡зн‡чениfl, но у не„о мо„ут быть несколько ‡‰есо‚ „уппо‚ой ‡ссылки. IPSec тебует, чтобы SA был уник‡лен ‰лfl к‡ж‰о„о ‡‰ес‡ пункт‡ н‡зн‡чениfl. Потокол. IPSec имеет ‰‚‡ ‡зличных потокол‡ безоп‡сности: AH и ESP. Чтобы от‰елить меты и инфом‡цию, используемую ‰лfl к‡ж‰о„о потокол‡, IPSec тебует, чтобы пункт н‡зн‡чениfl опе‰елflл ‡зличный SA ‰лfl к‡ж‰о„о потокол‡. 596
Лекциfl 18
Безоп‡сность н‡ сете‚ом уо‚не: IP SEC
Вхо‰ы ‰лfl к‡ж‰ой стоки н‡зы‚‡ютсfl мет‡ми SA. Типичные меты пок‡з‡ны ‚ т‡блице 18.2. Т‡блиц‡ 18.2. Типичные меты SA Счетчик поfl‰ко‚о„о номе‡ Это зн‡чение н‡ 32 бит‡, котоое используетсfl, Sequence Number Counter чтобы „енеить поfl‰ко‚ые номе‡ ‰лfl AHили ESP-燄оло‚к‡ Пееполнение поfl‰ко‚о„о Это фл‡жок, котоый опе‰елflет ‚‡и‡нты номе‡ Sequence Number состоflниfl ‚ случ‡е пееполнениfl поfl‰ко‚о„о Overflow номе‡ Окно ‡нти‚оспоиз‚е‰ениfl Оно обн‡уж肇ет ‚хо‰flщий ‚оспоиз‚е‰енный Anti-Replay Window п‡кет AH или п‡кет ESP Инфом‡циfl AH Эт‡ секциfl со‰ежит инфом‡цию ‰лfl AH Information потокол‡ AH: 1. Ал„оитм ‡утентифик‡ции 2. Ключи 3. Вемfl жизни ключ‡ 4. Ду„ие с‚flз‡нные меты Инфом‡циfl ESP Эт‡ секциfl со‰ежит инфом‡цию ‰лfl ESP Information потокол‡ ESP: 1. Ал„оитм шифниfl 2. Ал„оитм ‡утентифик‡ции 3. Ключи 4. Вемfl жизни ключ‡ 5. Векто иници‡лиз‡ции 6. Ду„ие с‚flз‡нные меты Вемfl жизни SA Lifetime Опе‰елflет ‚емfl жизни ‰лfl SA Режим IPSec IPSec Mode Опе‰елflет ежим, т‡нспотный или туннельный Путь MTU Path MTU Опе‰елflет путь МАКСИМАЛЬНЫЙ ПЕРЕДАВАЕМЫЙ БЛОК (ф‡„мент‡цию).
18.4. Ст‡те„иfl безоп‡сности Ду„ой ‡спект импот‡ IPSec — Ст‡те„иfl безоп‡сности (SP — Security Policy), кото‡fl опе‰елflет тип безоп‡сности, пе‰ост‡‚лflемой п‡кету, к‡ е„о нужно пе則ть или к‡ е„о нужно пинflть. Пее‰ тем к‡к использть SAD, ‡ссмотенный ‚ пе‰ы‰ущем ‡з‰еле, хост ‰олжен опе‰елить 燇нее 燉‡нную ст‡те„ию обслуж肇ниfl это„о п‡кет‡.
Б‡з‡ ‰‡нных ст‡те„ии безоп‡сности К‡ж‰ый хост, котоый пименflет IPSec-потокол, ‰олжен х‡нить Б‡зу ‰‡нных ст‡те„ии безоп‡сности (SPD — Security Policy Database). Пи этом, к‡к и 597
Кус
Киптфиfl и безоп‡сность сетей
‡ньше, необхо‰имо иметь ‚хо‰flщую SPD и исхо‰flщую SPD. К к‡ж‰ому ‚хо‰у ‚ SPD можно об‡титьсfl, используfl ин‰екс из шести позиций: исхо‰ный ‡‰ес, ‡‰ес пункт‡ н‡зн‡чениfl, н‡з‚‡ние потокол‡, исхо‰ный пот и пот пункт‡ н‡зн‡чениfl, к‡к пок‡з‡но н‡ ис. 18.12.
Рис. 18.12. Б‡з‡ ‰‡нных Ст‡те„ии Безоп‡сности (SPD) Источник и ‡‰ес‡ пункт‡ н‡зн‡чениfl мо„ут быть ин‰и‚и‰у‡льные, „уппо‚ой ‡ссылки или „уппо‚ой сим‚ол (wildcard1) — их имfl обычно опе‰елflет ‚ Интенете объект ‰оменной системы имен (DNS). Потокол fl‚лflетсfl или AH, или ESP. Источник и поты пункт‡ н‡зн‡чениfl — ‡‰ес‡ пот‡ ‰лfl поцесс‡, функциониующе„о ‚ хост‡х пункт‡ н‡зн‡чениfl и источнике. Исхо‰flщ‡fl SPD К‡ п‡кет нужно пе則ть, то ‡бот‡ют с исхо‰flщим SPD. Рисунок 18.13 пок‡зы‚‡ет об‡ботку п‡кет‡ пе則тчиком. Вхо‰ исхо‰flще„о SPD состоит из шестизн‡чно„о ин‰екс‡; ‚ыхо‰ со‰ежит о‰ин из тех езульт‡то‚. 1. Скинуть. Это озн‡ч‡ет, что п‡кет, опе‰еленный этим ин‰ексом, нельзfl пе則ть; он отб‡сы‚‡етсfl. 2. Обхо‰. Это озн‡ч‡ет, что нет ник‡кой ст‡те„ии ‰лfl п‡кет‡ с этим ин‰ексом ст‡те„ии; п‡кет пе則ют ‚ обхо‰, не пименflfl ‰ейст‚ий с 燄оло‚ком безоп‡сности. 3. Пименить. В этом случ‡е пименflетсfl ‡бот‡ с 燄оло‚ком безоп‡сности. Пи этом мо„ут ‚озникнуть ‰‚е ситу‡ции: ‡. Если исхо‰flщую SA уже уст‡но‚или, ‚о炇щ‡етсfl тойной ин‰екс SA, котоый ‚ыби‡етсfl соот‚етст‚ующей SA из исхо‰flще„о SAD. Фомиуетсfl AH или 燄оло‚ок ESP; шифние, уст‡но‚ление по‰линности или об‡ этих ‰ейст‚иfl пименflютсfl ‚ соот‚етст‚ии с ‚ыб‡нной SA. П‡кет пе則етсfl. 1
wildcard – ‚ ‡н„лоflзычной лите‡туе поним‡етсfl к‡к сим‚ол, ук‡зы‚‡ющий, что по‰хо‰ит любой сим‚ол из „уппы. Н‡пиме, пи поиске нужных ф‡йло‚ зн‡к «*» обозн‡ч‡ет «люб‡fl буꂇ». 598
Лекциfl 18
Безоп‡сность н‡ сете‚ом уо‚не: IP SEC
Рис. 18.13 Исхо‰flщий поцесс б. Если исхо‰flщ‡fl SA еще не уст‡но‚лен‡, то ‚ызы‚‡етсfl потокол Интенет обмен‡ ключ‡ми (IKE — Internet Key Exchange) (см. сле‰ующую секцию), чтобы со片ть исхо‰flщую и ‚хо‰flщую SA ‰лfl это„о т‡фик‡. Исхо‰flщ‡fl SA ‰оᇂлflетсfl источником к исхо‰flщей SAD; ‚хо‰flщ‡fl SA ‰оᇂлflетсfl пунктом н‡зн‡чениfl к ‚хо‰flщей SAD. Вхо‰flщий SPD К‡ п‡кет пибы‚‡ет, то по‚о‰итсfl ‡бот‡ с ‚хо‰flщей SPD. К к‡ж‰ому ‚хо‰у ‚о ‚хо‰flщей SPD т‡кже об‡щ‡ютсfl, используfl тот же с‡мый шестик‡тный ин‰екс. Рисунок 18.14 пок‡зы‚‡ет об‡ботку п‡кет‡ пиемником. 599
Кус
Киптфиfl и безоп‡сность сетей
Вхо‰ к ‚хо‰flщему SPD — шестик‡тный ин‰екс; ‚ыхо‰ — о‰ин из тех езульт‡то‚. 1. Сбосить. Это озн‡ч‡ет, что п‡кет, опе‰еленный ст‡те„ией, ‰олжен быть отбошен. 2. Обхо‰. Это озн‡ч‡ет, что нет ник‡кой ст‡те„ии ‰лfl п‡кет‡ с этим ин‰ексом ст‡те„ии; п‡кет об‡б‡ты‚‡етсfl, и„ноиуfl инфом‡цию от AH или 燄оло‚ок ESP. П‡кет ‰ост‡‚лflют т‡нспотному уо‚ню. 3. Пименить. В этом случ‡е 燄оло‚ок безоп‡сности ‰олжен быть об‡бот‡н. З‰есь мо„ут ‚озникнуть ‰‚е ситу‡ции. ‡. если ‚хо‰flщ‡fl SA уже уст‡но‚лен‡, ‚о炇щ‡етсfl тойной ин‰екс SA, котоый ‚ыби‡етсfl соот‚етст‚ующей SA из ‚хо‰flще„о SAD. Пименflютсfl ‰ешифние, уст‡но‚ление по‰линности или об‡ этих ‰ейст‚иfl. Если п‡кет пе則ет китеии безоп‡сности, AH или 燄оло‚ок ESP з‡б‡кн, и п‡кет ‰ост‡‚лflют т‡нспотному уо‚ню; б. если SA еще не уст‡но‚лен‡, то п‡кет ‰олжен быть з‡б‡кн.
Рис. 18.14 Вхо‰flщий поцесс 600
Лекциfl 18
Безоп‡сность н‡ сете‚ом уо‚не: IP SEC
18.5. Потокол интенет-обмен‡ ключ‡ми (IKE) Потокол Интенет-обмен‡ ключ‡ми (IKE — Internet Key Exchange) ‰олжен со片‚‡ть и ‚хо‰flщие, и исхо‰flщие услу„и обеспечениfl безоп‡сности. К‡к мы обсу扇ли ‚ пе‰ы‰ущей секции, к‡ п‡кет IP ‰олжен быть пе則н меж‰у ‡‚ными уо‚нflми, т‡ об‡щ‡ютсfl к б‡зе ‰‡нных ст‡те„ии безоп‡сности (SPDB), чтобы ‚и‰еть, есть ли SA ‰лfl т‡ко„о тип‡ т‡фик‡. Если нет т‡кой SA, ‚ызы‚‡етсfl IKE, чтобы уст‡но‚ить ее. Потокол Интенет-обмен‡ ключ‡ми со片ет услу„и обеспечениfl безоп‡сности SA’s ‰лfl потокол‡ IPSec. IKE — сложный потокол, осннный н‡ тех ‰у„их потокол‡х: OAKLEY, SKEME и ISAKMP, к‡к пок‡з‡но н‡ ис. 18.15.
Рис. 18.15. Компоненты потокол‡ улениfl ключ‡ми ‚ Интенете Потокол Oakley был ‡з‡бот‡н Хилл‡и Ом‡ном. Это потокол со片ниfl ключ‡, осннный н‡ мето‰е смены ключей Диффи-Хеллм‡н‡, но с некотоыми усо‚ешенст‚ниflми. Oakley — потокол со с‚обо‰ным фом‡том, ‚ том смысле, что он не опе‰елflет фом‡т сообщений, котоыми бу‰ут обмен肇тьсfl стооны. В этой лекции мы не обсу扇ем потокол Oakley непосе‰ст‚енно, но пок‡зы‚‡ем, к‡к IKE использует е„о и‰еи. SKEME, ‡з‡бот‡нный Хью„о К‡‚чиком, fl‚лflетсfl еще о‰ним потоколом ‰лfl смены ключей. Он использует шифние откытым ключом ‰лfl уст‡но‚лениfl по‰линности объект‡ ‚ потоколе смены ключей. Мы коотко ‡ссмотим, к‡к о‰ин из мето‰о‚, используемых IKE, б‡зиуетсfl н‡ SKEME. Internet-услу„и обеспечениfl безоп‡сности и потокол улениfl ключ‡ми (ISAKMP) fl‚лflютсfl потоколом, ‡з‡бот‡нным А„ентст‚ом Н‡цион‡льной безоп‡сности (NSA), котоый ф‡ктически осущест‚лflет обмен сообщениflми, опе‰еленными ‚ IKE. Он опе‰елflет некотоые п‡кеты, потоколы и меты, котоые поз‚олflют по‚о‰ить обмен сообщениflми IKE ‚ ст‡н‰‡тизинных, отфом‡тинных сообщениflх, чтобы со片ть SA’s. Мы обсу‰им ISAKMP ‚ сле‰ующей секции к‡к потокол, осущест‚лflющий IKE. В этой секции мы по„о‚оим непосе‰ст‚енно об IKE к‡к о мех‡низме ‰лfl со片ниfl услу„ безоп‡сности ‚ SA’s ‚ IPSec. 601
Кус
Киптфиfl и безоп‡сность сетей
Улучшенный потокол улениfl ключ‡ми Диффи-Хеллм‡н‡ И‰еfl смены ключей ‚ IKE б‡зиуетсfl н‡ потоколе Диффи-Хеллм‡н‡. Этот потокол обеспеч肇ет ключ се‡нс‡ меж‰у ‰‚умfl ‡‚ными по уо‚ню поцесс‡ми, без необхо‰имости сущест‚ниfl любых п剂‡ительных се‰ст‚ безоп‡сности. В лекции 15 мы обсу‰или мето‰ Диффи-Хеллм‡н‡; концепциfl это„о мет суммио‚‡н‡ н‡ ис. 18.16.
Рис. 18.16. Обмен ключ‡ми по мето‰у Диффи-Хеллм‡н‡ В пе‚он‡ч‡льном мето‰е обмен‡ ключей Диффи-Хеллм‡н‡ ‰‚е стооны со片ют симметичный ключ се‡нс‡, чтобы обмен肇тьсfl ‰‡нными. Пи этом им не 퇉о помнить или х‡нить ключ ‰лfl бу‰уще„о использниfl. Пее‰ уст‡но‚лением симметично„о ключ‡ эти ‰‚е стооны ‰олжны ‚ыб‡ть ‰‚‡ числ‡: p и g. Пе‚ое число, p, fl‚лflетсfl большим постым числом поfl‰к‡ 300 ‰есflтичных циф (1024 бит‡). Втоое число, g, — „ене‡то ‚ „уппе . Алис‡ ‚ыби‡ет большое случ‡йное число i и ‚ычислflет KE-I = gi mod p. Он‡ пе則ет KE-I Бобу. Боб ‚ыби‡ет ‰у„ое большое случ‡йное число r и ‚ычислflет KE-R = gr mod p. Он пе則ет KE-R Алисе. Н‡помин‡ем, что KE-I и KE-R, к‡к полуключи мет Диффи-Хеллм‡н‡, с„енеины ‰лfl ‡‚ных по уо‚ню поцессо‚. Они ‰олжны быть объе‰инены ‚месте, чтобы со片ть полный ключ, K = gir mod p у. K — это симметичный ключ ‰лfl се‡нс‡. Потокол Диффи-Хеллм‡н‡ имеет некотоые сл‡бости, котоые ‰олжны быть уст‡нены пеж‰е, чем он ст‡нет пиемлемым ‰лfl обмен‡ ключей ‚ Интенет. З‡соflющ‡fl ‡т‡к‡ П傇fl поблем‡ с потоколом Диффи-Хеллм‡н‡ — з‡соflющ‡fl ‡т‡к‡ или ‡т‡к‡ отк‡з‡ ‚ обслуж肇нии. Злоумышленник может пе則ть мно„о полуклю602
Лекциfl 18
Безоп‡сность н‡ сете‚ом уо‚не: IP SEC
чей (gx mod q) сообщениfl Бобу, симулиуfl, что они из ‡зличных источнико‚. Т‡ Боб ‰олжен ‚ычислить ‡зличные от‚еты (gy mod q) и ‚ то же с‡мое ‚емfl ‚ычислить полный ключ (gxy mod q); это 燄узит Боб‡ н‡столько, что он может пек‡тить от‚еч‡ть н‡ любые ‰у„ие сообщениfl. Он бу‰ет отк‡зы‚‡ть ‚ обслуж肇нии клиент‡м. Т‡кое может случитьсfl, потому что потокол Диффи-Хеллм‡н‡ тебует большо„о ‚емени ‰лfl ‚ычислений. Чтобы пе‰от‚‡тить ‡т‡ку з‡соениfl, мы можем ‰оᇂить к потоколу ‰‚‡ ‰ополнительных сообщениfl и ‚ыну‰ить эти ‰‚е стооны пе則ть cookies1. Рисунок 18.17 пок‡зы‚‡ет об‡ботку, кото‡fl может пе‰от‚‡тить з‡соflющую ‡т‡ку. Cookies — езульт‡т хэшиниfl уник‡льных и‰ентифик‡тоо‚ поцессо‚, ‡‚ных по уо‚ню (т‡ких к‡к ‡‰ес IP, число пот‡ и потокол, секетное случ‡йное число, из‚естное стоон‡м, котоые „енеиует cookies, и метк‡ ‚емени).
Рис. 18.17. Мето‰ Диффи-Хеллм‡н‡ с cookies Иници‡то пе則ет собст‚енное cookie; от‚етн‡fl стоон‡ — с‚ой cookie. Об‡ cookies по‚тоflютсfl ‚ неизмененном ‚и‰е ‚ к‡ж‰ом после‰ующем сообщении. Вычислениfl полуключей и ключ‡ се‡нс‡ отложены ‰о ‚о炇щениfl cookies. 1
Cookies (н‡ слен„е – «плюшки») – небольшой ф‡„мент ‰‡нных, со‰еж‡щих пе‰ыстоию об‡щений ‰‡нно„о пользтелfl к ‰‡нному WWW-се‚еу; ‡‚том‡тически со片етсfl се‚еом н‡ м‡шине пользтелfl. 603
Кус
Киптфиfl и безоп‡сность сетей
Если любой из поцессо‚ это„о уо‚нfl — х‡ке, ‰ел‡ющий попытку з‡соflющей ‡т‡ки, cookies не ‚о炇щ‡етсfl; соот‚етст‚ующ‡fl стоон‡ не т‡тит ‚емfl и усилие н‡ ‚ычисление полуключ‡ или ключ‡ се‡нс‡. Н‡пиме, если иници‡то — х‡ке, использующий фикти‚ный ‡‰ес IP, то иници‡то не получ‡ет ‚тоое сообщение и не может пе則ть тетье сообщение. Поцесс пеы‚‡етсfl. Чтобы з‡щититьсfl от з‡соflющей ‡т‡ки, IKE использует cookies. Ат‡к‡ ‚оспоиз‚е‰ениfl По‰обно ‰у„им потокол‡м, котоые мы ‡ссм‡т肇ли ‰о сих по, потокол Диффи-Хеллм‡н‡ не устойчи‚ к ‡т‡ке ‚оспоиз‚е‰ениfl; инфом‡циfl от о‰но„о се‡нс‡ может быть з‡пис‡н‡ без ‡сшифо‚ки и ‚оспоиз‚е‰ен‡ ‚ бу‰ущем се‡нсе злоумышленником. Р‡‰и пе‰от‚‡щениfl этой ‡т‡ки мы можем ‰оᇂить nonce к тетьему и чет‚етому сообщениflм, чтобы сох‡нить с‚ежесть сообщениfl. Чтобы з‡щититьсfl поти‚ ‡т‡ки ‚оспоиз‚е‰ениfl, IKE использует nonce. Ат‡к‡ «посе‰ниꇻ Тетий и н‡иболее оп‡сный ‚и‰ ‡т‡ки потокол‡ Диффи-Хеллм‡н‡ — ‡т‡к‡ «посе‰ниꇻ, п剂‡ительно ‡ссмотенн‡fl ‚ лекции 15. Е‚‡ может ‚ойти ‚ сее‰ину ‰и‡л и со片ть о‰ин ключ меж‰у Алисой и собой и ‰у„ой ключ меж‰у Бобом и собой. Сть эту ‡т‡ку не т‡к посто, к‡к пе‚ые ‰‚е. Мы ‰олжны по‰т‚е‰ить ‡утентифик‡цию к‡ж‰ой стооны. Алис‡ и Боб ‰олжны убе‰итьсfl, что сох‡нен‡ целостность сообщений и что об‡ ‡утентифицины по отношению ‰у„ к ‰у„у. Аутентифик‡циfl обмен‡ сообщений (целостность сообщениfl) и ‡утентифик‡циfl стоон (‡утентифик‡циfl объект‡) тебует, чтобы к‡ж‰‡fl стоон‡ ‰ок‡з‡л‡, что у нее есть тебуемый ко‰ и‰ентифик‡ции. Чтобы с‰ел‡ть это, к‡ж‰ый ‰олжен ‰ок‡з‡ть, что он об뇉‡ет секетностью. Чтобы з‡щититьсfl поти‚ ‡т‡ки «посе‰ниꇻ, IKE тебует, чтобы к‡ж‰‡fl стоон‡ пок‡з‡л‡, что он‡ об뇉‡ет секетностью. В IKE секетность может з‡ключ‡тьсfl ‚ о‰ном из сле‰ующих сочет‡ний ключей: ‡. п剂‡ительный откытый ключ з‡секеч肇ниfl; б. п剂‡ительно из‚естн‡fl  откыто„о ключ‡ шифниfl/‰ешифниfl. Объект ‰олжен пок‡з‡ть, что сообщение, з‡шифнное объfl‚ленным откытым ключом, может быть ‡сшифно им с помощью соот‚етст‚ующе„о секетно„о ключ‡; ‚. п剂‡ительно из‚естн‡fl  откыто„о ключ‡ цифо‚ой по‰писи. Объект ‰олжен пок‡з‡ть, что он может по‰пис‡ть сообщение с‚оим секетным ключом, котоый может быть по‚еен е„о объfl‚ленным откытым ключом. 604
Лекциfl 18
Безоп‡сность н‡ сете‚ом уо‚не: IP SEC
Ф‡зы IKE IKE со片ет SA’s ‰лfl обмен‡ сообщениflми потокол‡, т‡ко„о к‡к IPSec. IKE, о‰н‡ко, ‰олжен обмен肇тьсfl конфи‰енци‡льными и ‡утентифицинными сообщениflми. К‡кие SA’s обеспеч肇ет потокол IKE ‰лfl себfl? Можно ‰о„‡‰‡тьсfl, что он тебует бесконечной цепочки SA’s: IKE ‰олжен со片ть SA’s ‰лfl IPSec, потокол X ‰олжен со片ть SA’s ‰лfl IKE, потокол Y ‰олжен со片ть SA’s ‰лfl потокол‡ X, и т‡к ‰‡лее. Длfl то„о чтобы ешить эту ‰илемму и ‚ то же ‚емfl ост‡‚ить IKE не燂исимым от потокол‡ IPSec, ‡з‡ботчики IKE ‡з‰елили IKE н‡ ‰‚е ф‡зы. В ф‡зе I IKE со片ет SA’s ‰лfl ф‡зы II. В ф‡зе II IKE со片ет SA’s ‰лfl IPSec или некотоых ‰у„их потоколо‚. Ф‡з‡ I fl‚лflетсfl б‡зо‚ой; ф‡з‡ II 燉‡н‡ ‰лfl потокол‡. IKE ‡з‰елен н‡ ‰‚е ф‡зы: ф‡з‡ I и ф‡з‡ II. Ф‡з‡ I со片ет SA’s ‰лfl ф‡зы II; ф‡з‡ II со片ет SA’s ‰лfl потокол‡ обмен‡ ‰‡нными, н‡пиме, т‡ко„о к‡к IPSec. О‰н‡ко ост‡етсfl ‚опос: к‡к з‡щищен‡ ф‡з‡ 1? В сле‰ующей секции мы пок‡жем, к‡к ф‡з‡ 1 использует SA, котоый сфомин постепенно. Более ‡нние сообщениfl з‡менflютсfl ‚ исхо‰ном тексте; более поз‰ние сообщениfl з‡менflютсfl со片нными из ‡нних сообщений.
Ф‡зы и ежимы Чтобы учесть ‡знооб‡зие мето‰о‚ обмен‡, IKE опе‰елил ‰лfl ф‡з ежимы. В н‡стоflщее ‚емfl есть ‰‚‡ ежим‡ ‰лfl ф‡зы I: осно‚ной ежим и эне„ичный ежим. Е‰инст‚енный ежим ‰лfl ф‡зы II — быстый ежим. Рисунок 18.18 пок‡зы‚‡ет отношениfl меж‰у ф‡з‡ми и ежим‡ми.
Рис. 18.18. Ф‡зы IKE 605
Кус
Киптфиfl и безоп‡сность сетей
 燂исимости от х‡‡кте‡ п剂‡ительной секетности меж‰у этими ‰‚умfl стоон‡ми, ежимы ф‡зы I мо„ут использть о‰ин из четыех ‡зличных мето‰о‚ ‡утентифик‡ции: мето‰ п剂‡ительно„о откыто„о ключ‡ з‡секеч肇ниfl, мето‰ пе‚он‡ч‡льно„о откыто„о ключ‡, мето‰ пеесмотенно„о откыто„о ключ‡ или мето‰ цифо‚ой по‰писи, к‡к это пок‡з‡но н‡ ис. 18.19.
Рис. 18.19. Мето‰ы осно‚но„о или эне„ично„о ежим‡
Ф‡з‡ I: осно‚ной ежим В осно‚ном ежиме иници‡то и еспон‰ент обмен肇ютсfl шестью сообщениflми. В пе‚ых ‰‚ух сообщениflх они обмен肇ютсfl cookies (чтобы з‡щитить поти‚ з‡соflющей ‡т‡ки и ‰о„о‚оитьсfl о мет‡х SA): иници‡то пе則ет fl‰ пе‰ложений; еспон‰ент ‚ыби‡ет о‰но из них. К‡ они обменflютсfl пе‚ыми ‰‚умfl сообщениflми, иници‡то и еспон‰ент зн‡ют меты SA и у‚еены, что ‰у„‡fl стоон‡ сущест‚ует и з‡соflющ‡fl ‡т‡к‡ не ‚озникнет. В тетьих и чет‚етых сообщениflх иници‡то и еспон‰ент обычно обмен肇ютсfl с‚оими полуключ‡ми (gi и gr мет Диффи-Хеллм‡н‡) и их nonce (‰лfl з‡щиты от‚ет‡). В некотоых метх обмен肇ютсfl ‰у„ой инфом‡цией, о котоой мы по„о‚оим позже. Об‡тите ‚ним‡ние, что полуключи и nonce не пе則ютсfl с пе‚ыми ‰‚умfl сообщениflми, потому что ‰‚е стооны ‰олжны сн‡ч‡л‡ получить „‡‡нтию, что з‡соflющ‡fl ‡т‡к‡ не‚озможн‡. После обмен‡ тетьим и чет‚етым сообщениflми к‡ж‰‡fl стоон‡ может ‚ычислить общую секетность меж‰у ними ‚ ‰ополнение к ее от‰ельному ‰‡й‰жесту хэшиниfl. Общ‡fl секетность SKEYID (ID ключ‡ з‡секеч肇ниfl) 燂исит от мет ‚ычислениfl, к‡к пок‡з‡но ниже. В у‡‚нениflх prf (пс傉ослуч‡йн‡fl функциfl) — хэш-функциfl ключ‡, кото‡fl опе‰елен‡ ‚ течение ф‡зы пее„о‚оо‚. SKYID = prf (п剂‡ительный со‚местный ключ, N-I | N-R)
(мето‰ п剂‡ительно„о со‚местно„о ключ‡)
SKYID = prf(N-I | N-R, gir)
(мето‰ откыто„о ключ‡)
SKYID = prf( (hash (N-I | N-R), Cookie –I | Cookie –R)
(цифfl по‰пись) 606
Лекциfl 18
Безоп‡сность н‡ сете‚ом уо‚не: IP SEC
Ду„‡fl общ‡fl секетность ‚ычислflетсfl сле‰ующим об‡зом: SKYID_d = prf( (SKEYID, gi r| Cookie –I | Cookie –R| 0) SKYID_a = prf( (SKEYID, SKEYID_d | gi r| Cookie –I | Cookie –R| 1) SKYID_e = prf( (SKEYID, SKEYID_a | gi r| Cookie –I | Cookie –R| 2) SKEYID_d (derived — поиз‚о‰ный ключ) — ключ ‰лfl со片ниfl ‰у„их ключей. SKEYID_a — ключ ‡утентифик‡ции, и SKEYID_e пименflетсfl ‰лfl ключ‡ шифниfl; обе эти секетности используютсfl ‚ течение ф‡зы пее„о‚оо‚. Пе‚ый мет (SKEYID) ‚ычислflетсfl ‰лfl к‡ж‰о„о мет обмен‡ ключ‡ми от‰ельно. Втоой мет — конк‡тен‡циfl ‡зличных ‰‡нных. Об‡тите ‚ним‡ние, ключ ‰лfl prf — ‚с儉‡ SKEYID. Эти ‰‚е стооны т‡кже ‚ычислflют ‰‚‡ ‰‡й‰жест‡ хэшиниfl, HASH-I и HASH-R, котоые используютсfl ‚ „뇂ном ежиме тех из этих четыех мето‰о‚. Вычислениfl пок‡з‡ны ниже: HASH-I = prf( (SKEYID, KE-I | KE-R | Cookie –I | Cookie –R |SA-I | ID-I) HASH-R = prf( (SKEYID, KE-I | KE-R | Cookie –I | Cookie –R |SA-I | ID-R) Об‡тите ‚ним‡ние, что пе‚ый ‰‡й‰жест пименflет ID-I, ‚ то ‚емfl к‡к ‚тоой — ID-R. Об‡ используют SA-I — полные SA ‰‡нные, посл‡нные иници‡тоом. Ни о‰ин из них не ‚ключ‡ет пе‰ложение, ‚ыб‡нное еспон‰ентом, поскольку нужно з‡щитить пе‰ложение, посл‡нное иници‡тоом, от изменений злоумышленник‡. Н‡пиме, злоумышленник мо„ бы попобть пе則ть список пе‰ложений более уflз‚имых, чтобы обле„чить себе ‡т‡ку. Точно т‡к же, если SA не ‚ключен, злоумышленник мо„ бы изменить ‚ыб‡нное пе‰ложение н‡ ‰у„ое, б뇄опиflтное ‰лfl себfl. Об‡тите ‚ним‡ние, что о‰н‡ стоон‡ не ‰олжн‡ зн‡ть ID ‰у„ой стооны пи ‚ычислении хэш. После ‚ычислениfl ключей и хэшиниfl к‡ж‰‡fl стоон‡ пе則ет хэш ‰у„ой стооне, чтобы по‰т‚е‰ить с‚ою по‰линность. Иници‡то пе則ет HASH-I еспон‰енту к‡к ‰ок‡з‡тельст‚о, что он‡ — Алис‡. Только Алис‡ зн‡ет секетность ‡утентифик‡ции, и только он‡ может ‚ычислить HASH-I. Если HASH-I, ‚ычисленный Бобом, соот‚етст‚ует HASH-I, посл‡нному Алисой, он‡ ‡утентифицин‡. Тем же с‡мым способом Боб может по‰т‚е‰ить с‚ою по‰линность Алисе, посыл‡fl HASH-R. Об‡тите ‚ним‡ние, что з‰есь есть о‰н‡ тонкость. К‡ Боб ‚ычислflет HASH I, он ну扇етсfl ‚ ID Алисы, и н‡обоот. В некотоых метх ID пе則ют с помощью пе‰ы‰ущих сообщений; ‚ ‰у„их — с хэшем либо с хэшем и с ID, з‡шифнным SKEYID_e. Мето‰ п剂‡ительно„о со‚местно„о ключ‡ В мето‰е п剂‡ительно„о со‚местно„о ключ‡ симметичный ключ используетсfl ‰лfl ‡утентифик‡ции ‡‚ноных п‡тнео‚ ‰у„ ‰лfl ‰у„‡. Рисунок 18.20 пок‡зы‚‡ет ‡утентифик‡цию со‚местным ключом ‚ „뇂ном ежиме. 607
Кус
Киптфиfl и безоп‡сность сетей
Рис. 18.20. Осно‚ной ежим мет с п剂‡ительным со‚местным секетным ключом В пе‚ых ‰‚ух сообщениflх иници‡то и еспон‰ент обмен肇ютсfl cookies (‚ общем 燄оло‚ке и мет‡х SA). В сле‰ующих ‰‚ух сообщениflх они обмен肇ютсfl полуключ‡ми и nonces (см. лекцию 15). Тепеь эти ‰‚е стооны мо„ут со片ть SKEYID и ‰‚‡ ключе‚ых хэш‡ (HASH-I и HASH-R). В пflтом и шестом сообщениflх ‰‚е стооны обмен肇ютсfl со片нными хэш‡ми и их ID. Чтобы з‡щищ‡ть ID и хэши, после‰ние ‰‚‡ сообщениfl з‡шифны с SKEYID_e. Об‡тите ‚ним‡ние, что п剂‡ительный со‚местный ключ обеспеч肇ет секетность меж‰у Алисой (иници‡тоом) и Бобом (еспон‰ентом). Е‚‡ (злоумышленник) не имеет ‰оступ‡ к этому ключу. Е‚‡ не может со片ть SKEYID и поэтому не может со片ть ни HASH-I, ни HASH-R. Об‡тите ‚ним‡ние т‡кже, что обмен ID ‰олжен быть с‰ел‡н ‚ сообщениflх 5 и 6, чтобы обеспечить ‚ычисление хэш‡. 608
Лекциfl 18
Безоп‡сность н‡ сете‚ом уо‚не: IP SEC
С этим мето‰ом есть о‰н‡ поблем‡. Боб не может ‡сшифть сообщение, если он не зн‡ет п剂‡ительный со‚местный ключ, — то есть он ‰олжен зн‡ть, кто Алис‡ (зн‡ть ее ID). Но ID Алисы з‡шифо‚‡н ‚ сообщении 5. Р‡з‡ботчик это„о мет ут‚е扇ет, что ID ‚ этом случ‡е ‰олжен быть ‚ ‡‰есе к‡ж‰ой стооны. Это — не поблем‡, если Алис‡ н‡хо‰итсfl ‚ постоflнном хосте (‡‰ес IP уст‡но‚лен). О‰н‡ко если Алис‡ пеехо‰ит из о‰ной сети ‚ ‰у„ую, это уже поблем‡. Пе‚он‡ч‡льный мето‰ откыто„о ключ‡ В пе‚он‡ч‡льном мето‰е откыто„о ключ‡ иници‡то и еспон‰ент ‰ок‡зы‚‡ют их по‰линность, пок‡зы‚‡fl, что они об뇉‡ют секетным ключом, с‚flз‡нным с их объfl‚ленным откытым ключом. Рисунок 18.21 иллюстиует обмен сообщениflми пи использнии мет пе‚он‡ч‡льно„о откыто„о ключ‡. Пе‚ые ‰‚‡ сообщениfl — те же, что ‚ пе‰ы‰ущем мето‰е. В тетьем сообщении иници‡то пе則ет с‚ой полуключ, once и ID. В чет‚етом сообщении еспон‰ент поступ‡ет ‡н‡ло„ично. О‰н‡ко nonce и ID з‡шифны откытым ключом пиемник‡ и ‡сшифны секетным ключом пиемник‡. К‡к ‚и‰но из ис. 18.21, nonce и ID з‡шифны от‰ельно, потому что, к‡к мы у‚и‰им позже, они ко‰иуютсfl от‰ельно от ост‡льных 퇄узок. Отличие меж‰у этим мето‰ом и пе‰ы‰ущим ‚ том, что обмен ID по‚о‰итсfl ‚ тетьем и чет‚етом сообщении ‚место пflто„о и шесто„о сообщений. Пflтое и шестое сообщениfl только ‰ост‡‚лflют хэши. Вычисление SKEYID ‚ этом мето‰е б‡зиуетсfl н‡ хэшинии nonce и симметично„о ключ‡. Хэшиние nonce используетсfl к‡к ключ ‰лfl функции HMAC. Об‡тите ‚ним‡ние, что з‰есь мы используем ‰‚ойное хэшиние. Хотfl SKEYID, ‡, сле‰о‚‡тельно, е„о хэш непосе‰ст‚енно не 燂исит от секетности, котоой об뇉‡ет к‡ж‰‡fl стоон‡, они с‚flз‡ны кос‚енно. SKEYID 燂исит от nonce, ‡ nonce может быть ‡сшифн только секетным ключом (секетность) пиемник‡. Сле‰о‚‡тельно если ‚ычисленный хэш соот‚етст‚ует полученному, он ‰ок‡зы‚‡ет, что к‡ж‰‡fl стоон‡ — тот, кем он себfl ут‚е扇ет. Пеесмотенный мето‰ откыто„о ключ‡ Мето‰ пе‚он‡ч‡льно„о откыто„о ключ‡ имеет некотоые не‰ост‡тки. Вопе‚ых, ‰‚е опе‡ции шифниfl/‰ешифниfl откыто„о ключ‡ н‡к뇉ы‚‡ют тflжелую 퇄узку н‡ иници‡то‡ и еспон‰ент‡. Во-‚тоых, иници‡то не может посл‡ть с‚ой сетифик‡т, з‡шифнный откытым ключом еспон‰ент‡, т‡к к‡к любой мо„ с‰ел‡ть это с ложным сетифик‡том. Мето‰ был пеесмотен т‡к, чтобы откытый ключ использлсfl только ‰лfl со片ниfl ‚еменно„о ключ‡ з‡секеч肇ниfl, к‡к пок‡з‡но н‡ ис. 18.22. Об‡тите ‚ним‡ние, что ‰‚‡ ‚еменных секетных ключ‡ со片ны из хэш‡ nonce и cookies. Иници‡то использует откытый ключ еспон‰ент‡, чтобы пе則ть е„о nonce. Респон‰ент ‰ешифиует nonce и ‚ычислflет ‚еменный ключ иници‡то‡, после че„о мо„ут быть ‡сшифны полуключ, ID и ‰ополнительный сетифик‡т. Д‚‡ ‚еменных ключ‡ з‡секеч肇ниfl, K-I и K-R, ‚ычислflютсfl сле‰ующим об‡зом: K-I = prf(N – I, Cookie-I)
K-R = prf(N – R, Cookie-R) 609
Кус
Киптфиfl и безоп‡сность сетей
Рис. 18.21. Г뇂ный ежим мет с пе‚он‡ч‡льным откытым ключом Мето‰ цифо‚ой по‰писи В этом мето‰е к‡ж‰‡fl стоон‡ пок‡зы‚‡ет, что он‡ об뇉‡ет сетифицинным секетным ключом, с‚flз‡нным с цифо‚ой по‰писью. Рисунок 18.23 иллюстиует обмен сообщениflми пи этом мето‰е. Он похож н‡ мето‰ п剂‡ительно„о со‚местно„о ключ‡ ‚о ‚сем, коме поце‰уы ‚ычислениfl SKEYID. 610
Лекциfl 18
Безоп‡сность н‡ сете‚ом уо‚не: IP SEC
Рис. 18.22. Г뇂ный ежим мет с пеесмотенным откытым ключом Об‡тите ‚ним‡ние, что ‚ этом мето‰е пе則ч‡ сетифик‡т‡ fl‚лflетсfl необflз‡тельной опе‡цией. Сетифик‡т можно пе則ть, потому что он может быть з‡шифн SKEYID_e, котоый не 燂исит от ключ‡ по‰писи. В сообщении 5 иници‡то по‰писы‚‡ет ‚сю инфом‡цию обмен‡ ‚ сообщениflх 1-4 с‚оим ключом по‰писи. Респон‰ент ‚еифициует по‰пись, используfl откытый ключ иници‡то‡, котоый по‰т‚е扇ет по‰линность иници‡то‡. Ан‡ло„ично, ‚ сообще611
Кус
Киптфиfl и безоп‡сность сетей
нии 6 еспон‰ент по‰писы‚‡ет ‚сю инфом‡цию обмен‡ с‚оим ключом по‰писи. Иници‡то ‚еифициует по‰пись.
Рис. 18.23. Г뇂ный ежим мет цифо‚ой по‰писи
Ф‡з‡ I: эне„ичный ежим К‡ж‰ый эне„ичный ежим — сж‡т‡fl ‚есиfl соот‚етст‚ующе„о „л‡‚но„о ежим‡. Вместо шести сообщений ‚ обмене уч‡ст‚уют только ти. Сообщениfl 1 и 3 объе‰инены ‚ о‰но — пе‚ое сообщение. Сообщениfl 2, 4 и 6 объе‰инены ‚о ‚тоое сообщение. Сообщение 5 пе則ют к‡к тетье сообщение. И‰еfl т‡ же с‡м‡fl, что и ‚ „뇂ном ежиме. Мето‰ п剂‡ительно„о со‚местно„о ключ‡ Рисунок 18.24 пок‡зы‚‡ет мето‰ п剂‡ительно„о со‚местно„о ключ‡ ‚ эне„ичном ежиме. Об‡тите ‚ним‡ние, что после получениfl пе‚о„о сообще612
Лекциfl 18
Безоп‡сность н‡ сете‚ом уо‚не: IP SEC
ниfl еспон‰ент может ‚ычислить SKEYID и, сле‰о‚‡тельно, HASH-R. Но иници‡то не может ‚ычислить SKEYID, пок‡ не получит ‚тоое сообщение. HASN-I ‚ тетьем сообщении может быть з‡шифно.
Рис. 18.24. Эне„ичный ежим мет с п剂‡ительным со‚местным ключом Мето‰ пе‚он‡ч‡льно„о откыто„о ключ‡ Рисунок 18.25 пок‡зы‚‡ет обмен сообщениflми с использнием мет пе‚он‡ч‡льно„о откыто„о ключ‡ ‚ эне„ичном ежиме. Об‡тите ‚ним‡ние, что еспон‰ент может ‚ычислить SKEYID и HASH-R после получениfl пе‚о„о сообщениfl, но иници‡то ‰олжен 扇ть, пок‡ не получит ‚тоое сообщение. Пеесмотенный мето‰ откыто„о ключ‡ Рисунок 18.26 пок‡зы‚‡ет пеесмотенный мето‰ откыто„о ключ‡ ‚ эне„ичном ежиме. И‰еfl — т‡ же с‡м‡fl, что и ‚ „뇂ном ежиме, з‡ исключением то„о, что некотоые сообщениfl объе‰инены. Мето‰ цифо‚ой по‰писи Рисунок 18.27 пок‡зы‚‡ет мето‰ цифо‚ой по‰писи ‚ эне„ичном ежиме. И‰еfl — т‡ же с‡м‡fl, что и ‚ „뇂ном ежиме, з‡ исключением то„о, что некотоые сообщениfl объе‰инены. 613
Кус
Киптфиfl и безоп‡сность сетей
Рис. 18.25. Эне„ичный ежим мет с пе‚он‡ч‡льным ключом
Ф‡з‡ II: быстый ежим После то„о к‡к услу„и безоп‡сности (SA’s) были со片ны или ‚ „뇂ном ежиме, или ‚ эне„ичном ежиме, может быть н‡ч‡т‡ ф‡з‡ II. Длfl ф‡зы II ‚ н‡стоflщее ‚емfl есть только о‰ин ежим — быстый ежим. Этот ежим н‡хо‰итсfl по‰ улением SA’s IKE, со片нно„о ф‡зой 1. К‡ж‰ый мето‰ бысто„о ежим‡ может н‡ч‡ть ‡боту любым „л‡‚ным или ‡„есси‚ным ежимом. Быстый ежим использует SA’s IKE, чтобы со片ть IPSec SA’s (или SA’s ‰лfl любо„о ‰у„о„о потокол‡). Рисунок 18.28 пок‡зы‚‡ет обмен сообщениflми ‚ хо‰е бысто„о ежим‡. В ф‡зе II люб‡fl стоон‡ может быть иници‡тоом: то есть иници‡то ф‡зы II может быть иници‡тоом или еспон‰ентом ф‡зы 1. 614
Лекциfl 18
Безоп‡сность н‡ сете‚ом уо‚не: IP SEC
Рис. 18.26. Эне„ичный ежим мет с пеесмотенным откытым ключом Иници‡то пе則ет пе‚ое сообщение, котоое ‚ключ‡ет ‚ себfl ключе‚ой HMAC HASH 1 (бу‰ет ‡ссмотен позже), полный SA, со片нный ‚ ф‡зе 1, но‚ый nonce (N–I), ‰ополнительный но‚ый полуключ Диффи-Хеллм‡н‡ (KE-I) и ин‡ ID обеих стоон. Втоое сообщение похоже, но пееносит ключе‚ой HMAC HASH2, nonce еспон‰ент‡ (N-R), и, если есть, то полуключ Диффи-Хеллм‡н‡, со片нный еспон‰ентом. Тетье сообщение со‰ежит только HMAC HASH3 ключ‡. Сообщениfl ‡утентифицины с помощью использниfl тех HMAC ключ‡: HASH1, HASH2 и HASH3. Они ‚ычислflютсfl сле‰ующим об‡зом: HASH1 = prf (SKEYID_d, MsgID | SA | N-I) HASH2 = prf (SKEYID_d, MsgID | SA | N-R) HASH3 = prf (SKEYID_d, 0 | MsgID [ SA | N-I | N-R) 615
Кус
Киптфиfl и безоп‡сность сетей
Рис. 18.27. Эне„ичный ежим мет цифо‚ой по‰писи
Рис. 18.28. Быстый ежим 616
Лекциfl 18
Безоп‡сность н‡ сете‚ом уо‚не: IP SEC
К‡ж‰ый HMAC ‚ключ‡ет сообщение IKE (MsgID), используемое ‚ 燄оло‚ке ISAKMP. Включение MsgID пе‰от‚‡щ‡ет о‰но‚еменное со片ние ф‡зы II и ‚озможное столкно‚ение. Все ти сообщениfl з‡шифны ‰лfl конфи‰енци‡льности, используfl SKEYID_e, со片нный ‚ течение ф‡зы 1. И‰е‡льн‡fl пflм‡fl безоп‡сность (PFS) После уст‡но‚лениfl IKE SA и ‚ычислениfl SKEYID_d ‚ ф‡зе 1 ‚се ключи ‰лfl бысто„о ежим‡ получены из SKEYID_d. Т‡к к‡к из е‰инст‚енной ф‡зы I ф‡з‡ II может быть получен‡ мно„о ‡з, безоп‡сность ф‡зы II fl‚лflетсfl уflз‚имой, если злоумышленник имеет ‰оступ к SKEYID_d. Чтобы ‚оспепflтст‚ть этому, IKE пименflет опцию и‰е‡льн‡fl пflм‡fl безоп‡сность (PFS — Perfect Forward Security). В этой опции поисхо‰ит обмен ‰ополнительным полуключом Диффи-Хеллм‡н‡, и ‚ езульт‡те со‚естный ключ (gir) используетсfl ‚ ‚ычислении м‡теи‡л‡ ‰лfl ключей (см. сле‰ующий ‡з‰ел) ‰лfl IPSec. PFS эффекти‚ен, если ключ Диффи-Хеллм‡н‡ после ‚ычислениfl м‡теи‡л‡ ‰лfl ключ‡ неме‰ленно у‰‡лен ‚ к‡ж‰ом быстом ежиме. М‡теи‡лы ‰лfl ключей После обмен‡ ‚ ф‡зе II SA ‰лfl IPSec со片н, ‚ключ‡fl м‡теи‡л ‰лfl ключ‡, K, котоый может использтьсfl ‚ IPSec. Е„о зн‡чение получено сле‰ующим об‡зом: K = prf (SKEYID_d, protocol | SPI | N-I | N-R) K = prf (SKEYID_d, gir | protocol | SPI | N-I | N-R)
(без PFS) (с PFS)
Если ‰лин‡ K слишком коотк‡ ‰лfl конкетно„о ‚ыб‡нно„о шиф‡, со片етсfl после‰о‚‡тельность ключей, „‰е к‡ж‰ый ключ получ‡етсfl из пе‰ы‰уще„о, и ключи конк‡тениуютсfl ‰лfl то„о, чтобы с‰ел‡ть ‰линный ключ. Мы пок‡зы‚‡ем случ‡й без PFS; ‰лfl ‚‡и‡нт‡ с PFS мы ‰олжны ‰оᇂить gir. Со片нный м‡теи‡л ‰лfl ключей — о‰нон‡п‡‚ленный; к‡ж‰‡fl стоон‡ со片ет с‚ой ‡зличный м‡теи‡л ‰лfl ключей, поэтому используемый ‚ к‡ж‰ом н‡п‡‚лении м‡теи‡л ‡зличен. K1 =prf (SKEYID_d, protocol | SPI | N-I | N-R) K2 =prf (SKEYID_d, K1 | protocol | SPI | N-I | N-R) K3 =prf (SKEYID_d, K2 | protocol | SPI | N-I | N-R) ……. K = K1 | K2 | K3 | М‡теи‡л ‰лfl ключей, со片нный после ф‡зы II, — о‰нон‡п‡‚ленный; есть о‰ин ключ ‰лfl к‡ж‰о„о н‡п‡‚лениfl.
SA-‡л„оитмы В з‡ключение это„о ‡з‰ел‡ пи‚е‰ем ‡л„оитмы, с помощью котоых ‰о„肇ютсfl ‚ течение пе‚ых ‰‚ух обмено‚ сообщениflми ‚ IKE. 617
Кус
Киптфиfl и безоп‡сность сетей
Гуппы Диффи-Хеллм‡н‡ Пе‚ые пее„о‚оы ‚ключ‡ют „уппу Диффи-Хеллм‡н‡, используемую ‰лfl то„о, чтобы обмен肇тьсfl полуключ‡ми. Он‡ состоит из пflти „упп, к‡к это пок‡з‡но ‚ т‡блице 18.3. Т‡блиц‡ 18.3. Гуппы Диффи-Хеллм‡н‡ Зн‡чение 1 2 3 4 5
Опис‡ние Гупп‡ ‚оз‚е‰ениfl ‚ степень по мо‰улю с мо‰улем 768 бито‚ Гупп‡ ‚оз‚е‰ениfl ‚ степень по мо‰улю с мо‰улем 1024 бит‡ Гупп‡ эллиптической ки‚ой с ‡змеом полfl 155 бито‚ Гупп‡ эллиптической ки‚ой с ‡змеом полfl 185 бито‚ Гупп‡ ‚оз‚е‰ениfl ‚ степень по мо‰улю с мо‰улем 1680 бито‚
Ал„оитмы хэшиниfl, котоые используютсfl ‰лfl ‡утентифик‡ции, пок‡з‡ны ‚ т‡блице 18.4. Т‡блиц‡ 18.4. Ал„оитмы хэшиниfl Зн‡чение 1 2 3 4 5 6
Опис‡ние MD5 SHA Tiger SHA2-256 SHA2-384 SHA2-512
Ал„оитмы шифниfl Ал„оитмы шифниfl, котоые пименflютсfl ‰лfl обеспечениfl конфи‰енци‡льности, пок‡з‡ны ‚ т‡блице 18.5. Все они обычно используютсfl ‚ ежиме CBC. Т‡блиц‡ 18.5. Ал„оитмы шифниfl Зн‡чение 1 2 3 4 5 6 7
Опис‡ние DES IDEA Blowfish RC5 3DES CAST AES
18.6. ISAKMP Потокол улениfl ключ‡ми и услу„ безоп‡сности ‚ Интенете — ISAKMP (Internet Security Association and Key Management Protocol) — ‡з‡бот‡н ‰лfl обмен‡ сообщениflми ‚ потоколе шифниfl и и‰ентифик‡ции — (IKE). 618
Лекциfl 18
Безоп‡сность н‡ сете‚ом уо‚не: IP SEC
Общий 燄оло‚ок Фом‡т обще„о 燄оло‚к‡ пок‡з‡н н‡ ис. 18.29.
Рис. 18.29. Общий 燄оло‚ок ISAKMP • Cookie иници‡то‡. Это поле н‡ 32 бит‡ опе‰елflет сookie объект‡, котоый иницииует уст‡но‚ление SA, у‚е‰омление SA или у‰‡ление SA. • Cookie еспон‰ент‡. Это поле н‡ 32 бит‡ опе‰елflет сookie от‚ет‡ еспон‰ент‡. Зн‡чение это„о полfl — 0, к‡ иници‡то пе則ет пе‚ое сообщение. • Сле‰ующ‡fl полезн‡fl 퇄узк‡. Это поле н‡ 8 бито‚ опе‰елflет тип полезной 퇄узки, котоый сле‰ует непосе‰ст‚енно з‡ з‡„оло‚ком. Мы обсу扇ем ‡зличные типы полезной 퇄узки ‚ сле‰ующем ‡з‰еле. • Г뇂н‡fl ‚есиfl. Этот номе ‡змеом 4 бит‡ опе‰елflет „뇂ную ‚есию потокол‡. В н‡стоflщее ‚емfl зн‡чение это„о полfl — 1. • М뇉ший номе ‚есии. Этот номе ‡змеом 4 бит‡ и‰ет после „л‡‚ной ‚есии и ‰ополнflет ‚есию потокол‡. В н‡стоflщее ‚емfl зн‡чение это„о полfl — 0. • Тип обмен‡. Это поле н‡ 8 бито‚ опе‰елflет тип обмен‡, котоый осущест‚лflетсfl ISAKMP-п‡кет‡ми. Мы обсу‰или ‡зличные типы обмен‡ ‚ пе‰ы‰ущем ‡з‰еле. • Фл‡жки. Это — поле н‡ 8 бито‚, ‚ котоом к‡ж‰ый бит опе‰елflет опцию обмен‡. Пок‡ опе‰елены только ти с‡мых м뇉ших бит‡. Бит шифниfl, к‡ он уст‡но‚лен н‡ 1, ук‡зы‚‡ет, что ост‡льн‡fl ч‡сть полезной 퇄узки бу‰ет з‡шифо‚‡н‡ с использнием ключ‡ шифниfl и ‡л„оитм‡, опе‰еленно„о SA. До„о‚оный бит, к‡ он уст‡но‚лен н‡ 1, опе‰елflет, что пее‰ уст‡но‚лением SA м‡теи‡л шифниfl не получен. К‡ бит ‡утентифик‡ции уст‡но‚лен н‡ 1, он опе‰елflет, что ост‡льн‡fl ч‡сть полезной 퇄узки хоть и не з‡шифн‡, но ‡утентифицио‚‡н‡ ‰лfl сох‡нениfl целостности. • ID Сообщениfl. Это поле н‡ 32 бит‡ — уник‡льный опоз퇂‡тельный ко‰ сообщениfl, котоое опе‰елflет потокол. Это поле используетсfl только ‚ течение ‚тоой ф‡зы пее„о‚оо‚ и уст‡но‚лено н‡ 0 ‚ течение пе‚ой ф‡зы. • Длин‡ сообщениfl. Поскольку к к‡ж‰ому п‡кету можно ‰оᇂлflть ‡зличные полезные 퇄узки, ‰лин‡ сообщениfl может быть ‡зличн‡ ‰лfl к‡ж‰о„о п‡кет‡. Это поле н‡ 32 бит‡ опе‰елflет ‰лину ‚се„о сообщениfl, ‚ключ‡fl 燄оло‚ок и ‚се полезные 퇄узки. 619
Кус
Киптфиfl и безоп‡сность сетей
Полезные 퇄узки Полезные 퇄узки ‡з‡бот‡ны ‰лfl то„о, чтобы ‰ост‡‚лflть сообщениfl. Т‡блиц‡ 18.6 пок‡зы‚‡ет типы полезных 퇄узок. Т‡блиц‡ 18.6. Типы полезных 퇄узок Типы 0 1 2 3 4 5 6 7 8 9 10 11 12 13
͇炇ние None (Нет)
К‡ткое опис‡ние Используетсfl, чтобы пок‡з‡ть конец множест‚‡ полезных 퇄узок SA Используетсfl ‰лfl то„о, чтобы з‡пустить н‡ч‡ло поцесс‡ пее„о‚оо‚ Proposal (пе‰ложение) Со‰ежит инфом‡цию, используемую ‚ течение пее„о‚оо‚ о SA Transform (пеоб‡зть) Опе‰елflет секетные пеоб‡зниfl ‰лfl со片ниfl безоп‡сно„о к‡н‡л‡ Key Exchange (обмен ключ‡ми) Дост‡‚лflет ‰‡нные, используемые ‰лfl „ене‡ции ключей Identification (и‰ентифик‡циfl) Дост‡‚лflет ‰‡нные и‰ентифик‡ции ‚ сое‰инениflх ‡‚но„о уо‚нfl Certification (Сетифик‡циfl) Дост‡‚лflет сетифик‡т откыто„о ключ‡ Certification Request Используетсfl, чтобы з‡посить (З‡пос сетифик‡т‡) сетифик‡т ‰у„ой стооны Hash (хэшиние) Дост‡‚лflет ‰‡нные, с„енеинные хэш-функцией Signature (по‰пись) Дост‡‚лflет ‰‡нные, с„енеинные функцией по‰писи Nonce Дост‡‚лflет беспоfl‰очно с„енеинные ‰‡нные, т‡кие к‡к nonce Notification (у‚е‰омление) Дост‡‚лflет сообщениfl об ошибк‡х или состоflнии услу„ безоп‡сности (SA) Delete (у‰‡лить) Дост‡‚лflет SA, котоый у‰‡лил пе則тчик Vendor (поиз‚о‰итель) Опе‰елflет ‡сшиениfl специфик‡ции поиз‚о‰ителfl
ʇ扇fl полезн‡fl 퇄узк‡ имеет типо‚ой 燄оло‚ок и некотоые 燉‡нные полfl. Фом‡т обще„о 燄оло‚к‡ пок‡з‡н н‡ ис. 18.30. • Сле‰ующ‡fl полезн‡fl 퇄узк‡. Это поле н‡ 8 бито‚ и‰ентифициует тип сле‰ующей полезной 퇄узки. К‡ т‡кой 퇄узки нет, зн‡чение это„о полfl — 0. Об‡тите ‚ним‡ние, что нет полfl тип‡ ‰лfl текущей полезной 퇄узки. Тип текущей полезной 퇄узки опе‰елен пе‰ы‰ущей полезной 퇄узкой или общим 燄оло‚ком (если полезн‡fl 퇄узк‡ — п傇fl). • Длин‡ полезной 퇄узки. Это поле н‡ 16 бито‚ опе‰елflет ‰лину полной полезной 퇄узки (‚ключ‡fl типо‚ой 燄оло‚ок) ‚ б‡йт‡х. 620
Лекциfl 18
Безоп‡сность н‡ сете‚ом уо‚не: IP SEC
Рис. 18.30. Общий 燄оло‚ок полезной 퇄узки SA полезн‡fl 퇄узк‡ SA полезн‡fl 퇄узк‡ используетсfl, чтобы ‰о„о‚оитьсfl о мет‡х безоп‡сности. О‰н‡ко эти меты не ‚ключены ‚ SA полезную 퇄узку; они н‡хо‰flтсfl ‚ ‰‚ух ‰у„их полезных 퇄узк‡х (proposal — пе‰ложение и transform — пеоб‡зние), котоые мы обсу‰им позже. SA полезн‡fl 퇄узк‡ сопо‚о扇етсfl о‰ной или несколькими полезными 퇄узк‡ми proposal (пе‰ложение), и к‡ж‰‡fl полезн‡fl 퇄узк‡ пе‰ложениfl сопо‚о扇етсfl о‰ной или больше полезными 퇄узк‡ми transform (пеоб‡зние). SA полезн‡fl 퇄узк‡ только опе‰елflет поле ‰омен интепет‡ции и поле ситу‡циfl. Рисунок 18.31 пок‡зы‚‡ет фом‡т SA полезной 퇄узки.
Рис. 18.31. SA полезн‡fl 퇄узк‡ Полfl ‚ общем 燄оло‚ке уже обсу扇лись. Опис‡ние полей SA полезной 퇄узки ‰‡но ниже. • Домен интепет‡ции (DOI — Domen Interpretation). Это — поле н‡ 32 бит‡. Длfl ф‡зы 1 зн‡чение 0 ‰лfl это„о полfl опе‰елflет общий SA; зн‡чение 1 опе‰елflет IPSec. • Ситу‡циfl. Это — поле пееменной ‰лины, опе‰елflющее ситу‡цию, ‚ котоой по‚о‰flтсfl пее„о‚оы. Полезн‡fl 퇄узк‡ «Пе‰ложение» Полезн‡fl 퇄узк‡ «Пе‰ложение» (proposal), н‡чин‡ет поцесс пее„о‚оо‚. Хотfl это с‡мо по себе не 燉‡ет ник‡ких мето‚, он‡ опе‰елflет и‰ентифик‡цию потокол‡ и ин‰екс мет‡ обеспечениfl безоп‡сности (SPI). П‡‡меты ‰лfl пее„о‚оо‚ посыл‡ютсfl ‚ сост‡‚е полезной 퇄узки «Пеоб‡зние» (transform), кото‡fl сле‰ует з‡ полезной 퇄узкой пе‰ложениfl. ʇ扇fl полезн‡fl 퇄узк‡ пе‰ложениfl сопо‚о扇ет о‰ну или более полезных 퇄узок пеоб‡зниfl, котоые со片ют ‡льтен‡ти‚ные множест‚‡ мето‚. Рисунок 18.32 пок‡зы‚‡ет фом‡т полезной 퇄узки пе‰ложениfl. Полfl ‚ общем 燄оло‚ке уже обсу扇лись. Опис‡ниfl ‰у„их полей ‰‡ны ниже. 621
Кус
Киптфиfl и безоп‡сность сетей
Рис. 18.32. Полезн‡fl 퇄узк‡ «Пе‰ложение» (proposal) • Пе‰ложение #. Иници‡то опе‰елflет номе пе‰ложениfl т‡к, чтобы еспон‰ент мо„ сосл‡тьсfl н‡ не„о. Об‡тите ‚ним‡ние, что полезн‡fl 퇄узк‡ SA может ‚ключить несколько полезных 퇄узок пе‰ложениfl. Если ‚се пе‰ложениfl пи퇉леж‡т о‰ному и тому же множест‚у потоколо‚, номе пе‰ложениfl ‰олжен быть о‰ним и тем же ‰лfl к‡ж‰о„о потокол‡ ‚о множест‚е. В ‰у„их случ‡flх пе‰ложениfl ‰олжны иметь ‡зличные номе‡. • ID Потокол‡. Это поле н‡ 8 бито‚ опе‰елflет потокол ‰лfl пее„о‚оо‚. Н‡пиме, Ф‡з‡ I IKE = 0, ESP = 1, AH = 2, и т. ‰. • Р‡зме SPI. Это поле н‡ 8 бито‚ опе‰елflет ‡зме ин‰екс‡ мет‡ безоп‡сности (SPI) ‚ б‡йт‡х. • Число пеоб‡зний. Это поле н‡ 8 бито‚ опе‰елflет число полезных 퇄узок пеоб‡зниfl, котоые бу‰ут сле‰о‚‡ть з‡ этой полезной 퇄узкой пе‰ложениfl. • SPI. Это поле пееменной ‰лины ф‡ктический SPI (см.‡зме SPI). Об‡тите ‚ним‡ние, что если SPI не з‡полнflет пост‡нст‚о н‡ 32 бит‡, з‡полнение не ‰оᇂлflетсfl. Полезн‡fl 퇄узк‡ «Пеоб‡зние» Полезн‡fl 퇄узк‡ «Пеоб‡зние» ф‡ктически ‰ост‡‚лflет пизн‡ки SA пее„о‚оо‚. Рисунок 18.33 пок‡зы‚‡ет фом‡т полезной 퇄узки «пеоб‡зние». Полfl ‚ общем 燄оло‚ке уже обсу扇лись. Опис‡ниfl ‰у„их полей ‰‡ны ниже. • Пеоб‡зние #. Это поле н‡ 8 бито‚ опе‰елflет номе пеоб‡зниfl. Если есть больше чем о‰н‡ полезн‡fl 퇄узк‡ пеоб‡зниfl ‚ полезную 퇄узку пе‰ложениfl, то к‡ж‰‡fl ‰олжн‡ иметь с‚ой собст‚енный номе. • ID пеоб‡зниfl. Это поле н‡ 8 бито‚ опе‰елflет и‰ентифик‡цию полезной 퇄узки. • Пизн‡ки. ʇ扇fl полезн‡fl 퇄узк‡ пеоб‡зниfl может ‰ост‡‚ить несколько пизн‡ко‚ (‡тибуто‚). К‡ж‰ый ‡тибут непосе‰ст‚енно имеет ти или ‰‚‡ по‰полfl (см. ис. 18.33). По‰поле тип‡ пизн‡к‡ опе‰елflет тип пизн‡к‡ к‡к опе‰еленно„о ‚ ‰омене интепет‡ции — DOI. По‰поле ‰лины пизн‡к‡, если оно имеетсfl, опе‰елflет зн‡чение ‰лины пизн‡к‡. Поле зн‡чениfl пизн‡к‡ — ‰‚‡ б‡йт‡ ‚ кооткой фоме или пееменной ‰лины ‚ ‰линной фоме. 622
Лекциfl 18
Безоп‡сность н‡ сете‚ом уо‚не: IP SEC
Рис. 18.33. Полезн‡fl 퇄узк‡ «Пеоб‡зние» Полезн‡fl 퇄узк‡ «обмен‡ ключ‡ми» Полезн‡fl 퇄узк‡ «обмен‡ ключ‡ми» пименflетсfl пи обмене сообщениflми, ‚ котоых тебуетсfl пе則ть п剂‡ительные ключи, используемые ‰лfl со片ниfl ключей се‡нс‡. Н‡пиме, он‡ может быть нужн‡, чтобы пе則ть полуключ Диффи-Хеллм‡н‡. Рис. 18.34 пок‡зы‚‡ет фом‡т полезной 퇄узки «обмен‡ ключ‡ми».
Рис. 18.34. Полезн‡fl 퇄узк‡ «обмен‡ ключ‡ми» Полfl ‚ общем 燄оло‚ке уже обсу扇лись. Опис‡ние полfl ключ‡ з‡секеч肇ниfl (KE) ‰‡но ниже. KE. Это поле пееменной ‰лины пееносит ‰‡нные, необхо‰имые ‰лfl то„о, чтобы со片‚‡ть ключ се‡нс‡. Полезн‡fl 퇄узк‡ «И‰ентифик‡циfl» Полезн‡fl 퇄узк‡ «И‰ентифик‡циfl» поз‚олflет объект‡м пе則ть с‚ои меты и‰ентифик‡ции ‰у„ ‰у„у. Рисунок 18.35 пок‡зы‚‡ет фом‡т полезной 퇄узки «И‰ентифик‡циfl». 623
Кус
Киптфиfl и безоп‡сность сетей
Рис. 18.35. Полезн‡fl 퇄узк‡ «И‰ентифик‡циfl» Полfl ‚ общем 燄оло‚ке обсу扇лись. Опис‡ниfl ‰у„их полей ‰‡ны ниже. • Тип ID. Это поле н‡ 8 бито‚ з‡‰‡ет ‰омен (обл‡сть) интепет‡ции DOI и опе‰елflет тип используемо„о ID. • Д‡нные ID. Это поле н‡ 24 бит‡ обычно уст‡н‡‚л肇етсfl н‡ 0. • Д‡нные и‰ентифик‡ции. Ф‡ктический и‰ентифик‡то к‡ж‰о„о объект‡ ‰ост‡‚лflетсfl ‚ этом поле пееменной ‰лины. Полезн‡fl 퇄узк‡ «Сетифик‡циfl» В любое ‚емfl ‚ течение поцесс‡ обмен‡ объект может пе則ть с‚ой сетифик‡т (‰лfl откыто„о ключ‡ шифниfl/‰ешифниfl или ключ‡ по‰писи). Хотfl ‚ключение полезной 퇄узки «Сетифик‡циfl» ‚ поцесс обмен‡ fl‚лflетсfl обычно необflз‡тельным, оно ‰олжно быть пе‰усмотено, если нет безоп‡сно„о списк‡-ук‡з‡телfl (‰иектоии), ‰оступно„о ‰лfl ‡спе‰елениfl сетифик‡то‚. Рисунок 18.36 пок‡зы‚‡ет фом‡т полезной 퇄узки «сетифик‡циfl».
Рис. 18.36. Полезн‡fl 퇄узк‡ «сетифик‡циfl» Полfl ‚ общем 燄оло‚ке уже обсу扇лись. Опис‡ниfl ‰у„их полей пи‚е‰ены ниже. • Сетифик‡т ко‰иниfl. Это поле н‡ 8 бито‚ опе‰елflет ко‰иние (тип) сетифик‡т‡. Т‡блиц‡ 18.37 пок‡зы‚‡ет типы, опе‰еленные ‚ н‡стоflщее ‚емfl. • Д‡нные сетифик‡т‡. Это поле пееменной ‰лины, со‰еж‡щее ф‡ктическое зн‡чение сетифик‡т‡. Об‡тите ‚ним‡ние, что пе‰ы‰ущее поле неfl‚но опе‰елflет ‡зме это„о полfl. Полезн‡fl 퇄узк‡ «З‡пос сетифик‡т‡» К‡ж‰ый объект может fl‚но з‡посить сетифик‡т от ‰у„о„о объект‡, используfl полезную 퇄узку «з‡пос‡ сетифик‡т‡». Рисунок 18.37 пок‡зы‚‡ет фом‡т т‡кой полезной 퇄узки. 624
Лекциfl 18
Безоп‡сность н‡ сете‚ом уо‚не: IP SEC
Т‡блиц‡18.7. Типы сетифик‡ции Зн‡чение 0 1 2 3 4 5 6 7 8 9 10
Тип Нет Сетифик‡т ‚ ‚и‰е X.509 Сетифик‡т по ‡л„оитму PGP Ключ по‰пис‡нный DNS Сетифик‡т X.509 – По‰пись Сетифик‡т X.509 – Обмен ключ‡ми М‡кеы Цебе‡ (Cerberus token) Список ‡ннулиниfl сетифик‡то‚ Список ‡‰минист‡ти‚но„о ‡ннулиниfl сетифик‡т SPKI (Simple Public Key Infrastructure) X.509 сетифик‡т – Пизн‡ки
Рис. 18.37. Полезн‡fl 퇄узк‡ «З‡пос сетифик‡т‡» Полfl ‚ общем 燄оло‚ке уже обсу扇лись. Опе‰елениfl ‰у„их полей пи‚е‰ено ниже. • Тип сетифик‡т‡. Это 8-бито‚ое поле опе‰елflет тип сетифик‡т‡ ‚ полезной 퇄узке сетифик‡т‡. • А‰минист‡циfl сетифик‡т‡. Это — поле пееменной ‰лины, котоое опе‰елflет ‡‰минист‡цию ‰лfl ‚ы‰‡нно„о тип‡ сетифик‡т‡. Полезн‡fl 퇄узк‡ «Хэшиние» Полезн‡fl 퇄узк‡ «Хэшиние» со‰ежит ‰‡нные, с„енеинные хэшфункцией, к‡к опис‡но ‚ поце‰уе обмен‡ IKE. Д‡нные хэшиниfl „‡‡нтиуют целостность сообщениfl или состоflниfl. Рисунок 18.38 пок‡зы‚‡ет фом‡т полезной 퇄узки «Хэшиние».
Рис. 18.38. Полезн‡fl 퇄узк‡ «Хэшиние» 625
Кус
Киптфиfl и безоп‡сность сетей
Полfl ‚ общем 燄оло‚ке уже обсу扇лись. Опис‡ние после‰не„о полfl ‰‡но ниже. • Д‡нные хэшиниfl. Это — поле пееменной ‰лины, котоое со‰ежит ‰‡нные хэшиниfl, с„енеинные с пименением хэш-функции к ч‡сти сообщениfl или состоflний ISAKMP. Полезн‡fl 퇄узк‡ «По‰пись» Полезн‡fl 퇄узк‡ «По‰пись» со‰ежит ‰‡нные, с„енеинные, с пименением поце‰уы цифо‚ой по‰писи по некотоой ч‡сти сообщений или состоflний ISAKMP. Рисунок 18.39 пок‡зы‚‡ет фом‡т полезной 퇄узки «По‰пись».
Рис. 18.39. Полезн‡fl 퇄узки «По‰пись» Полfl ‚ общем 燄оло‚ке уже обсу扇лись. Опис‡ние после‰не„о полfl ‰‡но ниже. • По‰пись. Это поле пееменной ‰лины со‰ежит ‰‡й‰жест, сле‰ующий из пименениfl по‰писи к ч‡сти сообщений или состоflний ISAKMP. Полезн‡fl 퇄узк‡ Nonce Полезн‡fl 퇄узк‡ Nonce со‰ежит случ‡йные ‰‡нные ‰лfl использниfl nonce, чтобы обеспечить жи‚учесть сообщениfl и пе‰от‚‡тить ‡т‡ку ‚оспоиз‚е‰ениfl. Рисунок 18.40 пок‡зы‚‡ет фом‡т полезной 퇄узки nonce.
Рис. 18.40. Полезн‡fl 퇄узк‡ Nonce Полfl ‚ общем 燄оло‚ке уже обсу扇лись. Опис‡ние после‰не„о полfl ‰‡но ниже. • Nonce. Это поле пееменной ‰лины со‰ежит зн‡чениfl nonce. Полезн‡fl 퇄узк‡ «У‚е‰омление» В течение поцесс‡ пее„о‚оо‚ ин‡ о‰н‡ стоон‡ ‰олжн‡ сообщить ‰у„ой стооне о состоflнии или об ошибк‡х. Полезн‡fl 퇄узк‡ «У‚е‰омление» ‡з‡626
Лекциfl 18
Безоп‡сность н‡ сете‚ом уо‚не: IP SEC
бот‡н‡ ‰лfl этих ‰‚ух целей. Рисунок 18.41 пок‡зы‚‡ет фом‡т полезной 퇄узки «У‚е‰омление».
Рис. 18.41. Полезн‡fl 퇄узк‡ «У‚е‰омление» Полfl ‚ общем 燄оло‚ке уже обсуж‰ены. Опис‡ниfl ‰у„их полей ‰‡ны ниже. • DOI. Это поле н‡ 32 бит‡ — то же с‡мое, что опе‰елено ‰лfl полезной 퇄узки услу„ обеспечениfl безоп‡сности (SA). • ID потокол‡. Это поле н‡ 8 бито‚ — то же с‡мое, что опе‰елено ‰лfl полезной 퇄узки «Пе‰ложение». • SPI ‡зме. Это поле н‡ 8 бито‚ — то же с‡мое, что опе‰елено ‰лfl полезной 퇄узки «Пе‰ложение». • Тип сообщениfl «У‚е‰омление». Это поле н‡ 16 бито‚ опе‰елflет состоflние или тип ошибки, о котоой нужно пе則ть сообщение. Т‡блиц‡ 18.8 ‰‡ет к‡ткое опис‡ние этих типо‚. • SPI. Это поле пееменной ‰лины — т‡кое же, к‡к опе‰елено ‰лfl полезной 퇄узки «Пе‰ложение». • Д‡нные у‚е‰омлениfl. Это поле пееменной ‰лины может ‰ост‡‚ить ‰ополнительное тексто‚ое сообщение о состоflнии или ошибк‡х. Типы ошибок пеечислены ‚ т‡блице 18.8. Зн‡чениfl 31 ‰о 8191 з‡езе‚ины ‰лfl бу‰уще„о использниfl и зн‡чениfl от 8192 ‰о 16383 — ‰лfl ч‡стно„о пименениfl. Т‡блиц‡ 18.8 Типы у‚е‰омлениfl Зн‡че- Опис‡ние ние 1 INVALID-PAYLOAD-TYPE 2 3 4 5 6
Опис‡ние (ус.) Не‰опустимый тип полезной 퇄узки
DOI-NOT-SUPPORTED SITUATION-NOT-SUPPORTED INVALID-COOKIE INVALID-MAJOR-VERSION INVALID-MINOR-VERSION
Не пеж肇етсfl Ситу‡циfl не пеж肇етсfl Не‰опустимое cookie Не‰опустим‡fl „뇂н‡fl ‚есиfl Не‰опустимый м뇉ший номе ‚есии
627
Кус
Киптфиfl и безоп‡сность сетей
7 Зн‡чение 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
INVALID-EXCHANGE-TYPE Опис‡ние
Не‰опустимый тип обмен‡ Опис‡ние (ус.)
INVALID-FLAGS INVALID-MESSAGE-ID INVALID-PROTOCOL-ID INVALID-SPI INVALID-TRANSFORM-ID ATTRIBUTE-NOT-SUPPORTED NO-PROPOSAL-CHOSEN BAD PROPOSAL-SYNTAX PAYLOAD-MALFORMED
Не‰опустимые фл‡жки Не‰опустимый ID сообщениfl Не‰опустимый ID потокол‡ Не‰опустимый SPI Не‰опустимый ID пеоб‡зниfl Атибут не пеж肇етсfl Пе‰ложение не ‚ыб‡но Плохой синт‡ксис пе‰ложениfl Неильно сфоминн‡fl полезн‡fl 퇄узк‡ INVALID-KEY-INFORMATION Не‰опустим‡fl инфом‡циfl ключ‡ INVALID-ID-INFORMATION Не‰опустим‡fl инфом‡циfl ID INVALID-CERT-ENCODING Не‰опустимое шифние сетифик‡т‡ INVALID-CERTIFICATE Не‰опустимый сетифик‡т CERT-TYPE-UNSUPPORTED Непеж肇емый тип сетифик‡т‡ INVALID-CERT-AUTHORITY
Не‰опустим‡fl ‡‰минист‡циfl сетифик‡т‡ INVALID-HASHНе‰опустим‡fl инфом‡циfl INFORMATION хэшиниfl AUTHENTICATION-FAILED Ошибочн‡fl ‡утентифик‡циfl INVALID-SIGNATURE Не‰опустим‡fl по‰пись ADDRESS-NOTIFICATION У‚е‰омление ‡‰ес‡ NOTIFY-SA-LIFETIME У‚е‰омление о ‚емени жизни SA CERTIFICATE-UNAVAILABLE Сетифик‡т не‰оступен UNSUPPORTED EXCHANGE- Непеж肇емый тип обмен‡ TYPE UNEQUAL-PAYLOADНесоот‚етст‚ующ‡fl ‰лин‡ полезной LENGTHS 퇄узки
Т‡блиц‡ 18.9 со‰ежит список у‚е‰омлений состоflниfl. Зн‡чениfl от 16385 ‰о 24575 и от 40960 ‰о 65535 з‡езе‚ины ‰лfl бу‰уще„о использниfl, зн‡чениfl от 32768 ‰о 40959 — ‰лfl ч‡стно„о пименениfl. Т‡блиц‡ 18.9. Зн‡чениfl у‚е‰омлений состоflниfl Зн‡чение 16384 24576-32767
Опис‡ние По‰ключено DOI — 燉‡нные ко‰ы интепет‡ции ‰омен‡
Полезн‡fl 퇄узк‡ «У‰‡ление» Полезн‡fl 퇄узк‡ «У‰‡ление» используетсfl объектом, котоый у‰‡лил о‰ин или более SA’s и ‰олжен сообщить ‡‚ным по уо‚ню объект‡м, что он эти 628
Лекциfl 18
Безоп‡сность н‡ сете‚ом уо‚не: IP SEC
SA’s больше не пеж肇ет. Рисунок 18.42 пок‡зы‚‡ет фом‡т полезной 퇄узки «у‰‡ление». Рис. 18.42. Полезн‡fl 퇄узк‡ «У‰‡ление» Полfl ‚ общем 燄оло‚ке уже были ‡ссмотены. Опис‡ниfl ‰у„их полей пи‚о‰flтсfl ниже. • DOI. Это поле н‡ 32 бит‡ — то же с‡мое, что опе‰елено ‰лfl полезной 퇄узки SA (услу„ обеспечениfl безоп‡сности). • ID Потокол‡. Это поле н‡ 8 бито‚ — то же с‡мое, что опе‰елено ‰лfl полезной 퇄узки пе‰ложениfl. • SPI ‡зме. Это поле н‡ 8 бито‚ — то же с‡мое, что опе‰елено ‰лfl полезной 퇄узки пе‰ложениfl. • Номе SPI’s. Это поле н‡ 16 бито‚ опе‰елflет номе SPI’s. К‡ж‰ый, кто у‰‡лflет полезную 퇄узку, может из‚естить об у‰‡лении нескольких SAs. • SPIs. Это поле пееменной ‰лины опе‰елflет SPI’s, у‰‡ленные SA’s. Полезн‡fl 퇄узк‡ «Пост‡‚щик»
ISAKMP поз‚олflет обмен инфом‡цией, учиты‚‡ющей особенности ‰‡нно„о пост‡‚щик‡. Рисунок 18.43 пок‡зы‚‡ет фом‡т полезной 퇄узки «Пост‡‚щик». Рис. 18.43. Полезн‡fl 퇄узк‡ «Пост‡‚щик» Полfl ‚ типо‚ом 燄оло‚ке уже обсу扇лись. Опис‡ние после‰не„о полfl ‰‡но ниже. • ID пост‡‚щик‡. Это поле пееменной ‰лины опе‰елflет конст‡нту, используемую пост‡‚щиком.
629
Кус
Киптфиfl и безоп‡сность сетей
18.7. Рекомен‰о‚‡нн‡fl лите‡ту‡ Длfl более ‰ет‡льно„о изучениfl положений, обсуж‰енных ‚ этой лекции, мы екомен‰уем нижесле‰ующие кни„и и с‡йты. Пункты, ук‡з‡нные ‚ скобк‡х, пок‡з‡ны ‚ списке ссылок ‚ конце.
Кни„и [DH03], [Fra0l], [KPS02], [Res0l], [Sta06], [Rhe03] полностью ‡ссм‡т肇ют IPSec.
С‡йты Нижесле‰ующие с‡йты ‰‡ют больше инфом‡ции о тем‡х, обсуж‰енных ‚ этой лекции. http://www.unixwiz.net/techtips/iguide-ipsec.html http://www.ietf.org/rfc/rfc2401.txt http://rfc.net/rfc240l.html
18.8. Ито„и • Безоп‡сность IP (IPSec) — со‚окупность потоколо‚, ‡з‡бот‡нных IETF (Гупп‡ Инжененой пежки сети Интенет) ‰лfl то„о, чтобы обеспечить безоп‡сность пе則чи п‡кето‚ н‡ сете‚ом уо‚не. • IPSec ‡бот‡ет ‚ т‡нспотном или туннельном ежиме. В т‡нспотном ежиме IPSec з‡щищ‡ет инфом‡цию, ‰ост‡‚лflемую от т‡нспотно„о уо‚нfl к сете‚ому уо‚ню, но не з‡щищ‡ет 燄оло‚ок IP. В туннельном ежиме IPSec з‡щищ‡ет ‚есь п‡кет IP, ‚ключ‡fl пе‚он‡ч‡льный 燄оло‚ок IP. • IPSec опе‰елflет ‰‚‡ потокол‡: потокол 燄оло‚к‡ ‡утентифик‡ции (AH) и полезную 퇄узку со ‚стоенной з‡щитой 퇄узк‡ (ESP). Эти потоколы обеспеч肇ют ‡утентифик‡цию, шифние или и то и ‰у„ое ‰лfl п‡кето‚ н‡ уо‚не IP. Потокол 燄оло‚к‡ ‡утентифик‡ции (AH) по‰т‚е扇ет по‰линность хост‡ источник‡ и „‡‡нтиует целостность полезной 퇄узки, котоую несет п‡кет IP. Потокол «полезн‡fl 퇄узк‡ со ‚стоенной з‡щитой» (ESP) обеспеч肇ет исхо‰ную ‡утентифик‡цию, целостность и секетность. ESP ‰оᇂлflет к фом‡ту 燄оло‚ок и конечную метку. • IPSec кос‚енно обеспеч肇ет уление ‰оступом, используfl б‡зу ‰‡нных услу„ обеспечениfl безоп‡сности (SAD). • В IPSec ст‡те„иfl безоп‡сности (SP) опе‰елflет, к‡к‡fl безоп‡сность ‰олжн‡ быть обеспечен‡ п‡кету ‚ пе則тчике или ‚ пиемнике. IPSec использует множест‚о ст‡те„ий безоп‡сности, н‡зы‚‡емых б‡зой ‰‡нных ст‡те„ии безоп‡сности (SPD). • Смен‡ ключей ‚ Интенете (IKE) — потокол, пе‰н‡зн‡ченный ‰лfl со片ниfl услу„ обеспечениfl безоп‡сности (SA) ‰лfl ‚хо‰flщих и исхо‰flщих сое‰инений. IKE со片ет SA’s ‰лfl IPSec. 630
Лекциfl 18
Безоп‡сность н‡ сете‚ом уо‚не: IP SEC
• IKE — сложный потокол, котоый б‡зиуетсfl н‡ тех ‰у„их потокол‡х: Oakley, SKEME и ISAKMP. • IKE ‡бот‡ет ‚ ‰‚ух ф‡з‡х: ф‡з‡ I и ф‡з‡ II. Ф‡з‡ I со片ет SA’s ‰лfl ф‡зы II; ф‡з‡ II со片ет SA’s ‰лfl потокол‡ обмен‡ ‰‡нными, т‡ко„о к‡к IPSec. • ISAKMP-потокол ‡з‡бот‡н ‰лfl то„о, чтобы ‰ост‡‚ить сообщение ‰лfl потокол‡ IKE.
18.9. Н‡бо ‰лfl п‡ктики Обзоные ‚опосы 1. Пок‡жите ‡зличиfl меж‰у ‰‚умfl ежим‡ми IPSec. 2. Опе‰елите потокол AH и услу„и безоп‡сности, котоые он обеспеч肇ет. 3. Опе‰елите потокол ESP и услу„и безоп‡сности, котоые он обеспеч肇ет. 4. Опе‰елите услу„и обеспечениfl безоп‡сности (SA) и объflсните их цель. 5. Опе‰елите SAD и объflсните е„о отношение к услу„‡м обеспечениfl безоп‡сности. 6. Опе‰елите ст‡те„ию безоп‡сности и объflсните ее цель ‚ отношении к IPSec. 7. Опе‰елите IKE и объflсните, почему этот потокол необхо‰им ‚ IPSec. 8. Опе‰елите ф‡зы IKE и цели к‡ж‰ой ф‡зы. 9. Опе‰елите ISAKMP и е„о отношение к IKE. 10. Пеечислите типы полезной 퇄узки ISAKMP и цель к‡ж‰о„о тип‡.
Уп‡жнениfl 1. Хост получ‡ет ‡утентифицинный п‡кет с поfl‰ко‚ым номеом 181. Окно от‚ет‡ имеет помежуток от 200 ‰о 263. Что хост с‰ел‡ет с п‡кетом? К‡ко‚ бу‰ет помежуток окн‡ после это„о событиfl? 2. Хост получ‡ет ‡утентифицинный п‡кет с поfl‰ко‚ым номеом 208. Окно от‚ет‡ имеет помежуток от 200 ‰о 263. Что хост с‰ел‡ет с п‡кетом? К‡ко‚ бу‰ет помежуток окн‡ после это„о событиfl?
631
Кус
Киптфиfl и безоп‡сность сетей
3. Хост получ‡ет ‡утентифицинный п‡кет с поfl‰ко‚ым номеом 331. Окно от‚ет‡ имеет помежуток от 200 ‰о 263. Что хост с‰ел‡ет с п‡кетом? К‡ко‚ бу‰ет помежуток окн‡ после это„о событиfl? 4. Д臄‡мм‡ ‰лfl ‚ычислениfl SKEYID пи мето‰е п剂‡ительно„о со‚местно„о ключ‡ пок‡з‡н‡ н‡ ис. 18.44. Об‡тите ‚ним‡ние, что ключ к функции prf ‚ этом случ‡е — п剂‡ительный со‚местный ключ. Рис. 18.44. Уп‡жнение 14 ‡. н‡исуйте по‰обную ‰и‡„‡мму SKEYID ‰лfl мет откыто„о ключ‡. б. н‡исуйте по‰обную ‰и‡„‡мму SKEYID ‰лfl мет цифо‚ой по‰писи. 5. Н‡исуйте ‰и‡„‡мму, по‰обную ис. 18.44, ‰лfl пи‚о‰имых ниже случ‡е‚; ключ ‚ к‡ж‰ом случ‡е — SKEYID. a. SKEYID_a b. SKEYID_d c. SKEYID_e 6. Н‡исуйте ‰и‡„‡мму, по‰обную ис. 18.44, ‰лfl пи‚о‰имых ниже случ‡е‚, ключ ‚ к‡ж‰ом случ‡е — SKEYID. ‡. HASH-1 б. HASH-R 7. Н‡исуйте ‰и‡„‡мму, по‰обную ис. 18.44, ‰лfl сле‰ующе„о случ‡fl; ключ ‚ к‡ж‰ом случ‡е — SKEYID_d. ‡. HASH 1I б. HASH2 ‚. HASH3 8. Н‡исуйте ‰и‡„‡мму, по‰обную ис. 18.44, ‰лfl сле‰ующе„о случ‡fl; ключ ‚ к‡ж‰ом случ‡е — SKEYID _d. ‡. K ‰лfl случ‡fl без PFS б. K ‰лfl случ‡fl с PFS 9. По‚тоите уп‡жнение ‰лfl случ‡fl, ‚ котоом ‰лин‡ K — слишком м‡л‡. 10. Н‡четите ‰и‡„‡мму и пок‡жите ISAKMP-п‡кеты, котоыми обменflлись иници‡то и еспон‰ент, использующие мето‰ п剂‡ительно„о со‚местно„о ключ‡ ‚ „뇂ном ежиме (см. ис. 18.20). Используйте по к‡йней мее ‰‚‡ п‡кет‡ пе‰ложениfl с ‰‚умfl п‡кет‡ми пеоб‡зниfl ‰лfl к‡ж‰о„о пе‰ложениfl. 11. По‚тоите уп‡жнение 10, используfl мето‰ пе‚он‡ч‡льно„о откыто„о ключ‡ ‚ „뇂ном ежиме (см. ис. 18.21). 12. По‚тоите уп‡жнение 10, используfl пеесмотенный мето‰ откыто„о ключ‡ ‚ „뇂ном ежиме (см. ис. 18.22). 13. По‚тоите уп‡жнение 10, используfl мето‰ цифо‚ой по‰писи ‚ „뇂ном ежиме (см. ис. 18.23). 14. По‚тоите уп‡жнение 10 ‚ эне„ичном ежиме (см. ис. 18.24). 15. По‚тоите уп‡жнение 11 ‚ эне„ичном ежиме (см. ис. 18.25). 16. По‚тоите уп‡жнение 12 ‚ эне„ичном ежиме (см. ис. 18.26). 17. По‚тоить уп‡жнение 13 ‚ эне„ичном ежиме (см. ис. 18.27). 632
Лекциfl 18
Безоп‡сность н‡ сете‚ом уо‚не: IP SEC
18. Н‡исуйте ‰и‡„‡мму и пок‡жите ф‡ктические ISAKMP-п‡кеты, котоыми обменflлись иници‡то и еспон‰ент ‚ быстом ежиме (см. ис. 18.28). 19. С‡‚ните мето‰ы п剂‡ительно„о со‚местно„о ключ‡ ‚ „뇂ном и эне„ичном ежим‡х. Что с‰ел‡но ‚ эне„ичном ежиме ‰лfl безоп‡сности? К‡ко‚о у‚еличение эффекти‚ности? 20. С‡‚ните общие мето‰ы откыто„о ключ‡ ‚ „뇂ном и эне„ичном ежим‡х. Что с‰ел‡но ‚ ‡„есси‚ном ежиме относительно безоп‡сности? К‡ко‚о у‚еличение эффекти‚ности? 21. С‡‚ните пеесмотенные мето‰ы откыто„о ключ‡ ‚ „뇂ном и эне„ичном ежим‡х. Что с‰ел‡но ‚ ‡„есси‚ном ежиме относительно безоп‡сности? К‡ко‚о у‚еличение эффекти‚ности? 22. С‡‚ните мето‰ цифо‚ой по‰писи ‚ „뇂ном и эне„ичном ежим‡х. Что с‰ел‡но ‚ эне„ичном ежиме относительно безоп‡сности? К‡ко‚о у‚еличение эффекти‚ности? 23. В „뇂ном и эне„ичном ежиме — мы пе‰по뇄‡ем, что злоумышленник не может ‚ычислить SKEYID. Пи‚е‰ите ‰о‚о‰ы ‚ пользу это„о пе‰положениfl. 24. В ф‡зе I IKE и‰ентифик‡то обычно опе‰елflетсfl к‡к ‡‰ес IP. В п剂‡ительном обще‰оступном мето‰е п剂‡ительный со‚местный ключ — т‡кже функциfl ‡‰ес‡ IP. Пок‡жите, к‡к это может со片ть поочный ку„. 25. С‡‚ните мето‰ы ‰лfl „뇂но„о ежим‡ и пок‡жите, к‡кой мето‰ поз‚олflет обменflтьсfl з‡щищенными ID. 26. По‚тоите уп‡жнение ‰лfl эне„ичных мето‰о‚. 27. Пок‡жите, к‡к IKE 凄иует н‡ ‡т‡ку ‚оспоиз‚е‰ениfl ‚ „뇂ном ежиме, — то есть пок‡жите, к‡к IKE от‚еч‡ет н‡п‡‰‡ющему, котоый пыт‡етсfl ‚оспоиз‚ести о‰но или более сообщений ‚ „뇂ном ежиме 28. Пок‡жите, к‡к IKE 凄иует н‡ ‡т‡ку ‚оспоиз‚е‰ениfl ‚ эне„ичном ежиме, — то есть пок‡жите, к‡к IKE от‚еч‡ет н‡п‡‰‡ющему, котоый пыт‡етсfl ‚оспоиз‚ести о‰но или более сообщений ‚ эне„ичном ежиме. 29. Пок‡жите, к‡к IKE 凄иует н‡ ‡т‡ку ‚оспоиз‚е‰ениfl ‚ быстом ежиме, — то есть пок‡жите, к‡к IKE от‚еч‡ет н‡п‡‰‡ющему, котоый пыт‡етсfl ‚оспоиз‚ести о‰но или более сообщений ‚ быстом ежиме. 30. Пок‡жите, к‡к IPSec 凄иует н‡ ‡т‡ку „убой силы. Если злоумышленник может с‰ел‡ть исчепы‚‡ющий компьютеный поиск, сможет ли он н‡йти ключ шифниfl ‰лfl IPSec?
633
Кус
Киптфиfl и безоп‡сность сетей
Пиложение A. ASCII Амеик‡нский Ст‡н‰‡тный Ко‰ ‰лfl Инфом‡ционно„о Обмен‡ (ASCII American Standard Code for Information Interchange) — ко‰ н‡ 7 бито‚, котоый был ‡з‡бот‡н, чтобы обеспечить ко‰ы ‰лfl 128 сим‚оло‚, к‡к это пок‡з‡но ‚ т‡блице A.1. Т‡блиц‡ A.1. Ко‰ы ASCII
Hex – шест퇉ц‡теичное зн‡чение.
634
Пиложение В
Ст‡н‰‡ты и низ‡ции по ст‡н‰‡тиз‡ции
Пиложение B. Ст‡н‰‡ты и низ‡ции по ст‡н‰‡тиз‡ции Ст‡н‰‡ты fl‚лflютсfl осно‚ными инстумент‡ми ‚ со片нии и пеж‡нии откыто„о и конкуентоспособно„о ынк‡ ‰лfl из„ото‚ителей обоу‰о‚‡ниfl и „‡‡нтией обеспечениfl н‡цион‡льной и меж‰ун‡о‰ной способности к ‚з‡имо‰ейст‚ию техноло„ий. Ст‡н‰‡ты обеспеч肇ют екоме퉇ции из„ото‚ителflм, пост‡‚щик‡м, ительст‚енным ‡„ентст‚‡м и ‰у„им пост‡‚щик‡м услу„, ‡ т‡кже „‡‡нтию ‚з‡имос‚flз‡нности, необхо‰имой ‰лfl се„о‰нflшне„о ынк‡ и ‚ меж‰ун‡о‰ных с‚flзflх.
B.1. Ст‡н‰‡ты интенет‡ Ст‡н‰‡т Интенет‡ — полностью по‚еенн‡fl жизнью специфик‡циfl, котоой полезно и необхо‰имо пи‰еж肇тьсfl тем, кто ‡бот‡ет с Интенетом. Это фом‡лизнное е„улиние ил, сопо‚о扇ющее ‚се обл‡сти ‡боты с Интенетом. Есть стfl поце‰у‡, ‚ соот‚етст‚ии с котоой специфик‡циfl ‰ост脇ет состоflниfl ст‡н‰‡т‡ Интенет‡. Специфик‡циfl н‡чин‡етсfl к‡к эскиз Интенет‡. Эскиз (чено‚ик) Интенет‡ — ‡бочий ‰окумент (‡бот‡ ‚ поцессе ‚ыполнениfl). Он не имеет офици‡льно„о ст‡тус‡ без офици‡льно„о состоflниfl и у‰‡лflетсfl из б‡зы ‰‡нных после шестимесflчно„о ‚емени жизни. По екоме퉇ции ‡‰минист‡ции сети Интенет эскиз может быть и片н к‡к З‡пос о коммент‡ии (з‡пос н‡ коммент‡ии). К‡ж‰ый з‡пос н‡ коммент‡ий 則ктиуетсfl, получ‡ет н‡зн‡ченный номе и ‰ел‡етсfl ‰оступным ‰лfl ‚сех з‡интееснных стоон. З‡посы н‡ коммент‡ии похо‰flт уо‚ни „ото‚ности и ‡збиты н‡ к‡те„оии со„л‡сно их уо‚ню и тебниflм к‡ж‰о„о уо‚нfl „ото‚ности.
Уо‚ни „ото‚ности З‡пос н‡ коммент‡ии ‚ течение е„о ‚емени жизни относflт к о‰ному из шести уо‚ней „ото‚ности: пе‰ложенный ст‡н‰‡т, эскиз ст‡н‰‡т‡, ст‡н‰‡т Интенет‡, истоический, экспеимент‡льный и инфом‡ционный, к‡к пок‡з‡но н‡ ис. B.1. Пе‰ложенный ст‡н‰‡т Пе‰ложенный ст‡н‰‡т — это специфик‡циfl, кото‡fl хоошо понflтн‡ и ‚ызы‚‡ет ‰ост‡точный и ст‡бильный интеес сообщест‚ Интенет‡. Н‡ этом уо‚не специфик‡циfl обычно по‚еflетсfl и е‡лизуетсfl несколькими ‡зличными „упп‡ми. Чено‚ой ст‡н‰‡т После по к‡йней мее ‰‚ух успешных не燂исимых и со‚местимых е‡лиз‡ций пе‰ложенный ст‡н‰‡т пеехо‰ит н‡ более ‚ысокий уо‚ень чено‚о„о ст‡н‰‡т‡. Если не обн‡уж肇ютсfl ту‰ности и не ‚озник‡ет поблем, чено‚ой ст‡н‰‡т с опе‰еленными мо‰ифик‡циflми обычно ст‡но‚итсfl ст‡н‰‡том Интенет‡. 635
Кус
Киптфиfl и безоп‡сность сетей
Рис. B.1. Уо‚ни „ото‚ности RFC Ст‡н‰‡т Интенет‡ Чено‚ой ст‡н‰‡т после ‰емонст‡ции успешной е‡лиз‡ции ст‡но‚итсfl ст‡н‰‡том Интенет‡. Истоические Истоические з‡посы н‡ коммент‡ии сущест‚енны ‰лfl истоической песпекти‚ы. Если ст‡ые ‚есии ст‡н‰‡то‚ были з‡менены но‚ыми, или ‚ышли из употеблениfl, или ник‡ не похо‰или необхо‰имые уо‚ни „ото‚ности, они пиобет‡ют ст‡тус истоических RFC (з‡посо‚ н‡ коммент‡ии). Экспеимент‡льные З‡пос н‡ коммент‡ии кл‡ссифициуют к‡к экспеимент‡льный, если он со‰ежит с‚е‰ениfl об экспеимент‡льных иссле‰о‚‡ниflх, интеесных ‰лfl Интенет-сообщест‚‡. Инфом‡ционные З‡пос н‡ коммент‡ии кл‡ссифициуют к‡к инфом‡ционный, если он со‰ежит ‰окументы, котоые fl‚лflютсfl не ст‡н‰‡т‡ми или любыми ‰у„ими несо„л‡снными ‰окумент‡ми. Они мо„ут быть обуч‡ющими пмм‡ми, с‚flз‡нными с Интенет. Уо‚ни тебний З‡посы н‡ коммент‡ии ‡з‰елены н‡ пflть уо‚ней тебний: тебуемые, екомен‰уемые, ‚ыб‡нные, ниченно„о использниfl и неекомен‰о‚‡нные, к‡к это пок‡з‡но н‡ ис. B.2. 636
Пиложение В
Ст‡н‰‡ты и низ‡ции по ст‡н‰‡тиз‡ции
Рис. B.2. Уо‚ни тебний RFC Тебуемый З‡пос н‡ коммент‡ии (RFC) помечен к‡к тебуемый, если он е‡лизо‚‡н ‚семи систем‡ми Интенет‡, чтобы ‰ости„нуть меж‰у ними миним‡льно„о соот‚етст‚иfl. Рекомен‰о‚‡нный З‡пос н‡ коммент‡ии (RFC) помеч‡етсfl к‡к екомен‰о‚‡нный, если не тебуетсfl миним‡льно„о соот‚етст‚иfl меж‰у систем‡ми; е„о екомен‰уют из-з‡ е„о полезности ‚ некотоых систем‡х. Выби‡емый З‡пос н‡ коммент‡ии (RFC) помеч‡етсfl к‡к ‚ыби‡емый, если он не тебуемый и не екомен‰о‚‡нный. О‰н‡ко систем‡ может использть е„о ‰лfl собст‚енных целей. О„‡ниченное использние З‡пос н‡ коммент‡ии (RFC) помечен к‡к ниченный ‰лfl использниfl, если он ‰олжен пименflтьсfl только ‚ ниченных ситу‡циflх. Большинст‚о экспеимент‡льных з‡посо‚ н‡ коммент‡ии по‰п‡‰‡ет по‰ эту к‡те„оию. Неекомен‰о‚‡нный З‡пос н‡ коммент‡ии, помеченный к‡к неекомен‰о‚‡нный, fl‚лflетсfl не соот‚етст‚ующим ‰лfl обще„о использниfl. Обычно по‰ эту к‡те„оию по‰п‡‰‡ет истоический (уст‡е‚ший) з‡пос н‡ коммент‡ии. З‡посы н‡ коммент‡ии мо„ут быть н‡й‰ены н‡ с‡йте www.faqs.org/rfcs
А‰минист‡циfl сети Интенет Сеть Интенет н‡чин‡л‡сь пеж‰е ‚се„о к‡к иссле‰о‚‡тельск‡fl ‡бот‡. После это„о он‡ бысто ‡з‚肇л‡сь и получил‡ более шиокое пименение ‚ коммеческой ‰еflтельности. Р‡зличные „уппы, котоые коо‰иниуют поблемы Интенет‡, опе‰елflли и опе‰елflют этот ост и ‡з‚итие. Рисунок B.3 пок‡зы‚‡ет общую низ‡цию ‡‰минист‡ции сети Интенет. 637
Кус
Киптфиfl и безоп‡сность сетей
Сообщест‚о пользтелей сети Интенет (ISOC) Сообщест‚о Пользтелей сети Интенет (ISOC — Internet Society) — меж‰ун‡о‰н‡fl некоммеческ‡fl низ‡циfl, со片нн‡fl ‚ 1992 „о‰у, чтобы обеспечить пежку поцессу ‡з‡ботки ст‡н‰‡то‚ сети Интенет. ISOC ‚ыполнflет функцию путем улениfl и контолfl з‡ ‰у„ими ‡‰минист‡ти‚ными е‰иниц‡ми, т‡кими к‡к IAB, (IETF, IRTF и ICANN (см. сле‰ующие ‡з‰елы). ISOC куиует иссле‰о‚‡ниfl по теме Интенет‡, ‡ т‡кже со‰ейст‚ует об‡знию, к‡с‡ющемусfl Интенет.
Рис. B.3. А‰минист‡циfl сети Интенет Со‚ет по ‡хитектуе сети Интенет (IAB) Со‚ет по ‡хитектуе сети Интенет (IAB — Internet Architecture Board) — технический со‚етник ISOC. Г뇂ные цели IAB состоflт ‚ том, чтобы н‡блю‰‡ть з‡ непеы‚ным ‡з‚итием потокол‡ TCP/IP, соби‡ть с‚е‰ениfl и служить техническим консульт‡нтом ‰лfl иссле‰о‚‡ний, по‚о‰имых член‡ми Интенет-сообщест‚‡. IAB ‚ыполнflет эти функции, используfl ‰‚‡ пе‚ичных компонент‡: Инжененую „уппу сети Интенет (IEFT) и Иссле‰о‚‡тельскую „уппу сети Интенет (IRTF) . Ду„‡fl обл‡сть от‚етст‚енности IAB — 則ктиние з‡посо‚ н‡ коммент‡ии (RFT), ‡ссмотенных ‡нее ‚ этом пиложении. IAB т‡кже осущест‚лflет ‚нешние с‚flзи меж‰у ‡‰минист‡цией и ‰у„ими низ‡циflми ст‡н‰‡тиз‡ции и фоум‡ми. Инженен‡fl „упп‡ сети Интенет (IETF) Инженен‡fl „упп‡ сети Интенет (IETF — Internet Engineering Task Force) — фоум ‡бочих „упп, улflемых Инжененой „уппой по ‡з‡ботке ст‡н‰‡638
Пиложение В
Ст‡н‰‡ты и низ‡ции по ст‡н‰‡тиз‡ции
то‚ сети Интенет (IESG — Internet Engineering Steering Group). IETF от‚еч‡ет з‡ опе‰еление ‡бочих поблем и ‡з‡ботку пе‰ложений по ешению этих поблем. IETF т‡кже пе‰л‡„‡ет и ‡ссм‡т肇ет специфик‡ции, пе‰н‡зн‡ченные ‰лfl ‡з‡ботки ст‡н‰‡то‚ Интенет. Р‡бочие „уппы соб‡ны по обл‡стflм поблем, и к‡ж‰‡fl концентиуетсfl н‡ з‡‰‡нной теме. В н‡стоflщее ‚емfl были опе‰елены ‰е‚flть обл‡стей поблем: ‚опосы ‡з‡ботки пиложений, потоколы сети Интенет, м‡шутиз‡циfl, поцессы функциониниfl, пользтельские услу„и, уление сетью, т‡нспотные ‚опосы сети, сле‰ующее поколение потокол‡ сети Интенет (IPng) и безоп‡сность. Иссле‰о‚‡тельск‡fl „упп‡ сети Интенет (IRTF) Иссле‰о‚‡тельск‡fl „упп‡ сети Интенет (Internet Research Task Force) — фоум ‡бочих „упп, улflемых Гуппой уко‚о‰ст‚‡ иссле‰о‚‡ниflми ‚ сети Интенет (IRSG — Internet Research Steering Group). IRTF сосе‰оточ肇етсfl н‡ ‰ол„осочных иссле‰о‚‡тельских тем‡х, с‚flз‡нных с сете‚ыми потокол‡ми Интенет, пиложениflми, ‡хитектуой и техноло„ией. Копо‡циfl Интенет ‰лfl н‡зн‡чениfl н‡з‚‡ний и номео‚ (ICANN) Копо‡циfl Интенет ‰лfl н‡зн‡чениfl н‡з‚‡ний и номео‚ (ICANN — Internet Corporation for Assigned Names and Numbers) — ч‡стн‡fl некоммеческ‡fl копо‡циfl, улflем‡fl меж‰ун‡о‰ным со‚етом, кото‡fl несет от‚етст‚енность з‡ уление имен‡ми ‰омено‚ Интенет‡ и ‡‰ес‡ми. Цент сете‚ой инфом‡ции (NIC) Цент сете‚ой инфом‡ции (NIC — Network Information Center) несет от‚етст‚енность з‡ ‡спе‰еление инфом‡ции о потокол‡х TCP/IP.
B.2. Ду„ие низ‡ции по ст‡н‰‡тиз‡ции Р‡ссмотим инфом‡цию о нескольких ‰у„их низ‡циflх ст‡н‰‡тиз‡ции, котоые упомflнуты ‚ тексте.
NIST Н‡цион‡льный Институт Ст‡н‰‡то‚ и Техноло„ии (NIST) — ч‡сть От‰ел‡ То„о‚ли Сое‰иненных Шт‡то‚. NIST ‚ы‡б‡ты‚‡ет ст‡н‰‡ты ‚ фоме Фе‰е‡льно„о Ст‡н‰‡т‡ Об‡ботки Инфом‡ции (FIPS — Federal Information Processing Standard). Это поцесс похо‰ит сле‰ующими ш‡„‡ми. 1. NIST и片ет Фе‰е‡льный Ст‡н‰‡т Об‡ботки Инфом‡ции (FIPS) ‚ Фе‰е‡льном Ре„исте (ительст‚енное и片ние) и с‡йт NIST ‰лfl обще‰оступно„о обзо‡ и коммент‡ие‚. Объfl‚ление т‡кже опе‰елflет к‡йний сок пиfiм‡ коммент‡ие‚ (обычно спустfl 90 ‰ней после объfl‚лениfl). 2. После оконч‡ниfl сок‡ „упп‡ экспето‚ ‚ NIST ‡ссм‡т肇ет коммент‡ии и ‰ел‡ет любые необхо‰имые изменениfl. 3. Рекомен‰о‚‡нный Фе‰е‡льный Ст‡н‰‡т Об‡ботки Инфом‡ции (FIPS) пе則ют министу то„о‚ли ‰лfl о‰обениfl. 639
Кус
Киптфиfl и безоп‡сность сетей
4. О‰обенный Фе‰е‡льный Ст‡н‰‡т Об‡ботки Инфом‡ции (FIPS) и片етсfl ‚ Фе‰е‡льном Ре„исте и н‡ с‡йте NIST.
Меж‰ун‡о‰н‡fl О„‡низ‡циfl по Ст‡н‰‡тиз‡ции (ISO) Меж‰ун‡о‰н‡fl О„‡низ‡циfl по Ст‡н‰‡тиз‡ции (Меж‰ун‡о‰н‡fl О„‡низ‡циfl по Ст‡н‰‡тиз‡ции) — мно„он‡цион‡льн‡fl „упп‡, членст‚о ‚ котоой не燂исимо, „뇂ным об‡зом от комитето‚ со片ниfl ст‡н‰‡то‚ ‡зличных ительст‚ ‚о ‚сем мие. Меж‰ун‡о‰н‡fl О„‡низ‡циfl по Ст‡н‰‡тиз‡ции ‡бот‡ет 퇉 ‡з‚итием соту‰ничест‚‡ ‚ обл‡стflх н‡учной, техноло„ической и экономической ‰еflтельности.
ITU-T ( International Telecommunication Union — Telecommunication Standards Sector) Меж‰ун‡о‰ный Союз по Телекоммуник‡циflм — Секто Телекоммуник‡ционных Ст‡н‰‡то‚ (ITU-T) — ч‡сть меж‰ун‡о‰но„о Телекоммуник‡ционно„о Союз‡ (ITU). Секто пос‚flщен иссле‰о‚‡нию и уст‡но‚лению ст‡н‰‡то‚ ‰лfl телекоммуник‡ций, ‚ ч‡стности, ‰лfl систем пе則чи ‰‡нных и телефонной с‚flзи.
ANSI Амеик‡нский н‡цион‡льный Институт Ст‡н‰‡то‚ (ANSI — American National Standards Institute) — полностью ч‡стн‡fl, некоммеческ‡fl копо‡циfl, не с‚flз‡нн‡fl с ‡меик‡нским фе‰е‡льным ительст‚ом. О‰н‡ко ‚се ‰ейст‚иfl ANSI пе‰пиним‡ютсfl ‚ пе‚ую очее‰ь с целью улучшениfl б뇄осостоflниfl Сое‰иненных Шт‡то‚ и е„о „‡ж‰‡н.
IEEE (ИИЭР) Институт инженео‚ по электотехнике и ‡‰иоэлектонике (ИИЭР) — с‡мое купное пофессион‡льное техническое общест‚о ‚ мие. Дейст‚уfl ‚ меж‰ун‡о‰ном м‡сшт‡бе, оно стемитсfl п脇ть теоию, ‡з‚肇ть т‚оческий потенци‡л и сле‰ить з‡ к‡чест‚ом по‰укто‚ ‚ обл‡стflх электотехники, электоники и ‡‰ио, т‡к же к‡к ‚о ‚сех ‰у„их с‚flз‡нных с ними ‚ет‚flх ‡з‡ботки. О‰н‡ из е„о целей — н‡блю‰ение з‡ ‡з‚итием и пинflтием меж‰ун‡о‰ных ст‡н‰‡то‚ ‚ обл‡сти компьютео‚ и с‚flзи.
EIA Электонн‡fl Ассоци‡циfl От‡слей помышленности (EIA) — по‰обн‡fl ANSI некоммеческ‡fl низ‡циfl, кото‡fl ок‡зы‚‡ет пежку комп‡ниflм ‚ помышленности, поиз‚о‰flщей электонику. Еfi ‰ейст‚иfl ‚ ‰ополнение к ‡з‚итию ст‡н‰‡то‚ ‚ключ‡ют обще‰оступное об‡зние и лоббиние. В обл‡сти инфом‡ционной техноло„ии EIA ‚несл‡ сущест‚енный ‚к뇉 ‚ ‡з‚итие ст‡н‰‡то‚ ‰лfl пе則чи ‰‡нных. 640
Пиложение C
Н‡бо потоколо‚ TCP/IP
Пиложение С. Н‡бо потоколо‚ TCP/IP Мо‰ель низ‡ции сети, используем‡fl ‚ сети Интенет се„о‰нfl, — потокол улениfl пе則чей / потокол ‚з‡имо‰ейст‚иfl сетей (TCP/IP), или н‡бо потокол‡ TCP/IP. К‡к пок‡з‡но н‡ ис. C.1, н‡бо состоит из пflти уо‚ней: пик뇉ной, т‡нспотный, сете‚ой, з‚ен‡ ‰‡нных (к‡н‡льный) и физический.
Рис. C.1. Мо‰ель потоколо‚ TCP/IP TCP/IP — ие‡хический потокол, сост‡‚ленный из инте‡кти‚ных мо‰улей, к‡ж‰ый из котоых обеспеч肇ет функцион‡льные ‚озможности. Темин ие‡хический озн‡ч‡ет, что к‡ж‰ый потокол ‚ехне„о уо‚нfl использует услу„и о‰но„о или нескольких потоколо‚ более низко„о уо‚нfl.
C.1. Уо‚ни ‚ TCP/IP В этом ‡з‰еле мы к‡тко описы‚‡ем функции к‡ж‰о„о уо‚нfl ‚ н‡бое потокол‡ TCP/IP.
Пик뇉ной уо‚ень Пик뇉ной уо‚ень поз‚олflет пользтелю (или чело‚еку, или пммному обеспечению) об‡щ‡тьсfl к сети. Он обеспеч肇ет интефейсы пользтелfl и пежку услу„, т‡ких к‡к пе則ч‡ ф‡йло‚, электонн‡fl почт‡ и ‡бот‡ с у‰‡ленным се‚еом. Пик뇉ной уо‚ень от‚еч‡ет з‡ обеспечение услу„ пользтелю. 641
Кус
Киптфиfl и безоп‡сность сетей
• Доменн‡fl систем‡ имен (DNS — Domain Name System). Доменн‡fl систем‡ имен — пик뇉н‡fl пмм‡, кото‡fl пе‰ост‡‚лflет услу„и ‰у„им пик뇉ным пмм‡м. Он‡ н‡хо‰ит ло„ический ‡‰ес (сете‚ой уо‚ень) по 燉‡нному ‡‰есу пользтелfl (пик뇉ной уо‚ень). • Постой потокол пе則чи почты (SMTP — Simple Mail Transfer Protocol). SMTP — потокол, используемый ‰лfl электонной почты. Электонн‡fl почт‡ ‡ссм‡т肇л‡сь ‚ лекции 16. • Потокол пе則чи ф‡йло‚ (FTP — File Transfer Protocol). FTP — потокол пе則чи ф‡йло‚ ‚ сети Интенет. Он пименflетсfl ‰лfl то„о, чтобы пе則ть большие ф‡йлы от о‰но„о компьюте‡ к ‰у„ому. • Потокол пе則чи „ипетекст‡ (HTTP — Hypertext Transfer Protocol). HTTP — потокол, котоый обычно используетсfl, чтобы об‡титьсfl к Word Wide Web (Всемин‡fl П‡утин‡). • Постой потокол улениfl сетью (SNMP — Simple Network Management Protocol). SNMP — офици‡льный потокол улениfl ‚ Интенет. • Оконечн‡fl сеть (TELNET — Terminal Network). TELNET — у‰‡ленн‡fl пик뇉н‡fl пмм‡ ‚х ‚ систему. Пользтель может использть TELNET, чтобы сое‰инитьсfl с у‰‡ленным хостом и пименflть ‰оступные услу„и.
Т‡нспотный уо‚ень Т‡нспотный уо‚ень от‚еч‡ет з‡ ‰ост‡‚ку ‚се„о сообщениfl «от поцесс‡-к-поцессу». Поцесс — пик뇉н‡fl пмм‡, функциониующ‡fl н‡ хосте. Т‡нспотный уо‚ень от‚еч‡ет з‡ ‰ост‡‚ку сообщениfl от о‰но„о поцесс‡ ‰о ‰у„о„о. Т‡‰иционно т‡нспотный уо‚ень был пе‰ст‡‚лен ‚ TCP/IP ‰‚умfl потокол‡ми: TCP и UDP. Но‚ый потокол т‡нспотно„о уо‚нfl SCTRP (Stream Control Transmission Protocol) был ‡з‡бот‡н ‚ от‚ет н‡ но‚ые потебности некотоых ‚но‚ь со片нных пиложений (н‡пиме, систем е‡льно„о ‚емени). • Потокол пользтельских ‰ейт‡„‡мм (UDP). UDP — н‡иболее постой из ‰‚ух ст‡н‰‡тных т‡нспотных потоколо‚ TCP/IP. Это потокол тип‡ «поцесс-поцесс», котоый ‰оᇂлflет к ‰‡нным ‚ехне„о уо‚нfl только ‡‰ес‡ пот‡, контольную сумму ‰лfl контолfl ошибок и инфом‡цию ‰лины. • Потокол улениfl пе則чей (TCP). TCP обеспеч肇ет пиложениflм полный н‡бо услу„ т‡нспотно„о уо‚нfl. TCP — ‰осто‚еный потокол т‡нспотно„о поток‡. Темин потокол поток‡ ‚ этом контексте озн‡ч‡ет се‰ст‚‡, оиентинные н‡ сое‰инение: сое‰инение ‰олжно быть уст‡но‚лено меж‰у обоими уч‡стник‡ми обмен‡ пеж‰е, чем любой из них сможет пе則ть ‰‡нные. Н‡ пе則ющем конце ‚ поцессе пе則чи TCP ‰елит поток ‰‡нных н‡ меньшие мо‰ули, н‡зы‚‡емые се„мент‡ми. К‡ж‰ый се„мент ‚ключ‡ет ‚ себfl поfl‰ко‚ый номе, чтобы после пием‡ уст‡но‚ить 642
Пиложение C
Н‡бо потоколо‚ TCP/IP
поfl‰ок сле‰о‚‡ниfl се„менто‚, ‚месте с номе‡ми по‰т‚еж‰ениfl ‰лfl полученных се„менто‚. Се„менты пееносflт чеез сеть Интенет инфом‡цию ‚ ‚и‰е ‰ейт‡„‡мм IP. В конце пием‡ TCP соби‡ет из се„менто‚ к‡ж‰ую ‰ейт‡„‡мму и упоfl‰оч肇ет их сле‰о‚‡ние н‡ осно‚е поfl‰ко‚ых номео‚. • Т‡нспотный потокол улениfl потоком (SCTP — STREAM CONTROL TRANSMISSION PROTOCOL). SCTP обеспеч肇ет пежку но‚ым пиложениflм, т‡ким к‡к IP-телефониfl. Это — потокол т‡нспотно„о уо‚нfl, котоый объе‰инflет положительные с‚ойст‚‡ UDP и TCP.
Сете‚ой уо‚ень Сете‚ой уо‚ень пе‰н‡зн‡чен ‰лfl ‰ост‡‚ки п‡кето‚ от источник‡ ‚ пункт н‡зн‡чениfl, ‚еоflтно чеез множест‚о физических сетей (линий с‚flзи). Сете‚ой уо‚ень „‡‡нтиует, что к‡ж‰ый п‡кет бу‰ет ‰ост‡‚лен от е„о исхо‰ной точки к е„о конечному пункту н‡зн‡чениfl. Некотоые обflз‡нности сете‚о„о уо‚нfl ‚ключ‡ют ло„ическую ‡‰ес‡цию и м‡шутиз‡цию. Сете‚ой уо‚ень пе‰н‡зн‡чен ‰лfl ‰ост‡‚ки от‰ельных п‡кето‚ от хост‡ источник‡ ‰о хост‡ пункт‡ н‡зн‡чениfl. • Internet-потокол (IP). IP — мех‡низм пе則чи, используемый ‚ соот‚етст‚ии с потокол‡ми TCP/IP. Это не퇉ежное без уст‡но‚лениfl сое‰инениfl обслуж肇ние с лучшими н‡меениflми. Темин «с лучшими н‡меениflми» озн‡ч‡ет, что IP не обеспеч肇ет по‚еки ошибок или ‚ыбо оптим‡льно„о м‡шут‡. IP учиты‚‡ет не퇉ежность осно‚ных уо‚ней и «пи뇄‡ет ‚се усилиfl», чтобы пе則ть инфом‡цию к пункту н‡зн‡чениfl, но без „‡‡нтий. IP т‡нспотиует ‰‡нные ‚ п‡кет‡х, н‡зы‚‡емых ‰ейт‡„‡мм‡ми, к‡ж‰‡fl из котоых т‡нспотиуетсfl от‰ельно. Дейт‡„‡ммы мо„ут пеемещ‡тьсfl по ‡зличным м‡шут‡м и мо„ут пибыть не ‚ исхо‰ной после‰о‚‡тельности или ок‡з‡тьсfl по‰ублинными. IP не сох‡нflет поfl‰ок и список м‡шуто‚ и не имеет ник‡ких се‰ст‚ ‰лfl то„о, чтобы исить ‰ейт‡„‡ммы, о‰н‡ж‰ы пибы‚шие ‚ пункт н‡зн‡чениfl. О„‡ниченные функцион‡льные ‚озможности IP нельзfl ‡ссм‡т肇ть к‡к сл‡бость. IP обеспеч肇ет только функции пе則чи. Пользтель может ‰оᇂить те се‰ст‚‡, котоые необхо‰имы ‰лfl ‰‡нно„о пиложениfl, и т‡ким об‡зом обеспечить м‡ксим‡льную эффекти‚ность. • Потокол опе‰елениfl ‡‰есо‚ (ARP — Address Resolution Protocol). Потокол опе‰елениfl ‡‰есо‚ используетсfl, чтобы с‚flз‡ть IP-‡‰ес с физическим ‡‰есом. Н‡ обычной физической сети к‡ж‰ое устойст‚о и‰ентифицино физическим ‡‰есом или ‡‰есом ст‡нции, обычно з‡кепленным н‡ сете‚ой к‡те интефейс‡ (NIC — Network Interface Card). Потокол опе‰елениfl ‡‰есо‚ используетсfl, чтобы н‡йти физический ‡‰ес узл‡, к‡ из‚естен е„о Интенет-‡‰ес. • Потокол опе‰елениfl ‡‰есо‚ об‡тно„о ‡‰ес‡ (RARP — Reverse Address Resolution Protocol) поз‚олflет хосту обн‡уж肇ть е„о ‡‰ес ‚ сети Интенет, к‡ он зн‡ет только с‚ой физический ‡‰ес. Это используетсfl, ко„643
Кус
Киптфиfl и безоп‡сность сетей
‰‡ компьюте с‚flзы‚‡етсfl с сетью ‚пе‚ые или к‡ компьюте 燄уж‡етсfl без ‰иск‡. • Потокол Улflющих сообщений сети Интенет (ICMP – Internet Control Message Protocol). ICMP – мех‡низм, используемый хост‡ми и ‰у„ими помежуточными устойст‚‡ми, чтобы пе則ть у‚е‰омление о ‰ейт‡„‡ммных поблем‡х н‡з‡‰ пе則тчику. ICMP пе則ет з‡пос и ошибку, из‚ещ‡fl о сообщениflх. • Потокол улениfl „упп‡ми сети Интенет (IGMP — Internet Group Message Protocol). Потокол улениfl „упп‡ми (пользтелей) сети Интенет пименflетсfl ‰лfl то„о, чтобы обле„чить о‰но‚еменную пе則чу сообщениfl „уппе получ‡телей.
Уо‚ень з‚ен‡ пе則чи ‰‡нных Уо‚ень з‚ен‡ пе則чи ‰‡нных пеоб‡зо‚ы‚‡ет физический уо‚ень, постое се‰ст‚о пе則чи, — ‚ ‰осто‚еную линию с‚flзи. Это ‰‡ет ‚озможность с‰ел‡ть физический уо‚ень с‚обо‰ным от ошибок (‚иту‡льно) пи пе則че инфом‡ции к ‚ехнему уо‚ню (сете‚ой уо‚ень). Некотоые из 燉‡ч уо‚нfl з‚ен‡ пе則чи ‰‡нных — циклfl синхониз‡циfl, физическ‡fl ‡‰ес‡циfl, уление потоком, контоль ошибок и уление ‰оступом. Уо‚ень з‚ен‡ пе則чи ‰‡нных пе‰н‡зн‡чен ‰лfl то„о, чтобы пеемещ‡ть ꇉы от о‰но„о уч‡стк‡ (узл‡) к сле‰ующему.
Физический уо‚ень Физический уо‚ень коо‰иниует функции ‰ост‡‚ки поток‡ бит по физической се‰е. Физический уо‚ень опе‰елflет: физические х‡‡ктеистики интефейсо‚ и х‡‡ктеистики се‰ы пе則чи, пе‰ст‡‚ление бито‚, скоость пе則чи ‰‡нных, синхониз‡цию бито‚ и физическую тополо„ию сети. Физический уо‚ень пе‰н‡зн‡чен ‰лfl пе則чи от‰ельных бито‚ от о‰но„о уч‡стк‡ (узл‡) к сле‰ующему.
C.2. А‰ес‡циfl В Интенете используютсfl четые ‡зличных уо‚нfl ‡‰есо‚, пе‰н‡зн‡ченные ‰лfl ‡боты ‚ TCP/IP: 燉‡нный ‡‰ес, ‡‰ес пот‡, ло„ический ‡‰ес и физический ‡‰ес, к‡к это пок‡з‡но н‡ ис. C.2.
З‡‰‡нный ‡‰ес С‚flзь н‡ пик뇉ном уо‚не осущест‚лflетсfl с пименением 燉‡нных ‡‰есо‚: ‡‰есо‚, пи퇉леж‡щих 燉‡нным потокол‡м пик뇉но„о уо‚нfl. Н‡пиме, используетсfl о‰ин ‡‰ес электонной почты, чтобы пе則ть электонную почту. 644
Пиложение C
Н‡бо потоколо‚ TCP/IP
А‰ес пот‡ Се„о‰нfl компьютеы — устойст‚‡, котоые мо„ут ‚ыполнflть о‰но‚еменно мно„о 燉‡ч. Конечн‡fl цель с‚flзи ‚ Интенете — поцесс, уст‡н‡‚л肇ющий с‚flзь с ‰у„им поцессом. Н‡пиме, компьюте A ‡бот‡ет с компьютеом C, используfl TELNET. В то же с‡мое ‚емfl компьюте обмен肇етсfl сообщениflми с компьютеом B, пользуflсь потоколом пе則чи ф‡йло‚ (FTP). Чтобы этих поцессы мо„ли функционить о‰но‚еменно, ‰олжен быть мето‰ отметки ‡зличных поцессо‚. Ду„им слми, поцессы ну扇ютсfl ‚ ‡‰ес‡ции. В ‡хитектуе TCP/IP метк‡, н‡зн‡ч‡ем‡fl поцессу, н‡зы‚‡етсfl ‡‰есом пот‡. А‰ес пот‡ ‚ TCP/IP — 16 бито‚ ‰линой.
Рис. C.2. А‰ес‡ ‚ TCP/IP
Ло„ический ‡‰ес Ло„ические ‡‰ес‡ необхо‰имы ‰лfl уни‚ес‡льных служб с‚flзи, котоые не 燂исflт от осно‚ных физических сетей. Нужн‡ уни‚ес‡льн‡fl систем‡ ‡‰ес‡ции, ‚ котоой к‡ж‰ый хост может быть и‰ентифицин уник‡льно, не燂исимо от осно‚ной физической сети. Ло„ические ‡‰ес‡ ‡з‡бот‡ны ‰лfl этой цели. Ло„ический ‡‰ес (‡‰ес IP) ‚ Интенете — ‚ н‡стоflщее ‚емfl это ‡‰ес н‡ 32 бит‡, котоый может уник‡льно опе‰елить хост, по‰ключенный к Интенету. Ник‡кие ‰‚‡ хост‡, получи‚шие ‡‰ес‡ и ‡бот‡ющие ‚ Интенете, не мо„ут иметь о‰ин и тот же ‡‰ес IP.
Физический ‡‰ес Физический ‡‰ес, т‡кже из‚естный к‡к ‡‰ес с‚flзи, fl‚лflетсfl ‡‰есом узл‡, опе‰еленно„о ‚ ‰‡нной физической сети. Он ‚ключен ‚ ꇉ, используемый уо‚нем з‚ен‡ пе則чи ‰‡нных. Это — ‡‰ес с‡мо„о низко„о уо‚нfl. Физические ‡‰ес‡ улflютсfl ‡‰минист‡цией по физической сети. Р‡зме и фом‡т этих ‡‰есо‚ изменflютсfl ‚ 燂исимости от сети. 645
Кус
Киптфиfl и безоп‡сность сетей
Пиложение D. Элемент‡н‡fl теоиfl ‚еоflтностей Теоиfl ‚еоflтностей 脇ет очень ‚‡жную оль ‚ киптфии, потому что он‡ обеспеч肇ет лучший способ количест‚енно опе‰елить степень неопе‰еленности, ‡ киптфиfl ‚ большинст‚е случ‡е‚ осно‚‡н‡ н‡ неопе‰еленности. Это пиложение ‡ссм‡т肇ет осно‚ные концепции теоии ‚еоflтностей, котоые необхо‰имы, чтобы понflть некотоые темы, ‡ссмотенные ‚ этой кни„е.
D.1. В‚е‰ение Мы н‡чин‡ем с некотоых опе‰елений, ‡ксиом и с‚ойст‚.
Опе‰елениfl Случ‡йный экспеимент Экспеимент может быть опе‰елен к‡к любое ‰ейст‚ие, котоое н‡ некотоые изменениfl н‡ ‚хо‰е от‚еч‡ет изменениflми н‡ ‚ыхо‰е. Случ‡йный экспеимент — экспеимент, ‚ котоом о‰но и то же зн‡чение н‡ ‚хо‰е может ‰‡ть ‡зличные зн‡чениfl н‡ ‚ыхо‰е. Ду„ими слми, ‚ыхо‰ не может быть о‰нозн‡чно опе‰елен зн‡чением н‡ ‚хо‰е. Н‡пиме, к‡ мы бос‡ем ильную монету ‰‚‡ ‡з‡, ‚хо‰ (монет‡) о‰ин и тот же, но ‚ыхо‰ («оел» или «ешꇻ) может быть ‡зличен. Результ‡ты К‡ж‰ый ‚ыхо‰ случ‡йно„о экспеимент‡ н‡зы‚‡етсfl езульт‡том. Н‡пиме, к‡ бос‡етсfl шестистооннflfl 脇льн‡fl кость, ‚озможными событиflми мо„ут быть ‚ыение о‰но„о из пеечисленных ниже чисел — 1, 2, 3, 4, 5 и 6. Типо‚ое пост‡нст‚о Типо‚ое пост‡нст‚о элемент‡ных событий (S) fl‚лflетсfl множест‚ом ‚сех ‚озможных езульт‡то‚ случ‡йно„о экспеимент‡. Пи бос‡нии монеты пост‡нст‚о элемент‡ных событий имеет только ‰‚‡ элемент‡, S = {«оел», «ешꇻ}. Пи бос‡нии и„о‚ой кости типо‚ое пост‡нст‚о имеет шесть элементо‚, S = {1, 2, 3, 4, 5, 6}. Типо‚ое пост‡нст‚о ин‡ н‡зы‚‡ют ‚еоflтностным пост‡нст‚ом, случ‡йным пост‡нст‚ом или полным множест‚ом (уни‚есумом). Событиfl К‡ случ‡йный экспеимент з‡кончен, н‡с интеесует полученное по‰множест‚о типо‚о„о пост‡нст‚‡, не обflз‡тельно состоflщее из о‰но„о езульт‡т‡. Н‡пиме, к‡ 脇льн‡fl кость бошен‡, н‡с может интеесть ‚ыение числ‡ 2, либо любо„о четно„о числ‡, либо числ‡ меньше, чем 4. К‡ж‰ый из этих ‚озможных езульт‡то‚ можно пе‰ст‡‚лflть к‡к событие. Событие A fl‚лflетсfl по‰множест‚ом типо‚о„о пост‡нст‚‡, со‰еж‡щим о‰ин езульт‡т. Все ‡нее упомflнутые событиfl мо„ут быть опе‰елены сле‰ующим об‡зом. a. Получение 2 (постой езульт‡т): A1 = {2}. b. Получение четно„о числ‡: A2 = {2, 4, 6}. c. Получение числ‡ меньше, чем 4: A3 = {1, 2, 3}. 646
Пиложение D
Элемент‡н‡fl теоиfl ‚еоflтностей
Опе‰еление ‚еоflтности Г뇂н‡fl и‰еfl ‚ теоии ‚еоflтностей — и‰еfl поfl‚лениfl событиfl. Но к‡к ‚еоflтность ‰‡нно„о событиfl? Этот ‚опос обсу扇лсfl ‚ течение мно„их столетий. Н則‚но м‡тем‡тики пишли к со„л‡шению, что мы можем опе‰елить ‚еоflтности событий, используfl ти мет: кл‡ссический, ст‡тистический и ‚ычислительный. Кл‡ссическое опе‰еление ‚еоflтности В кл‡ссическом опе‰елении ‚еоflтности ‚еоflтность событиfl — число, интепетиуемое к‡к P (A) = nA/n, „‰е n — общее количест‚о ‚озможных езульт‡то‚ и nA — число ‚озможных езульт‡то‚, с‚flз‡нных с событием A. Это опе‰еление полезно, только если к‡ж‰ый езульт‡т о‰ин‡ко‚о ‚еоflтен. Пиме D.I Мы бос‡ем «п‡‚ильную монету». К‡к ‚еоflтность, что езульт‡том это„о экспеимент‡ бу‰ет «оел»? Решение Общее количест‚о ‚озможных езульт‡то‚ — 2 («оел» или «ешꇻ). Число ‚озможных езульт‡то‚, с‚flз‡нных с этим событием, — 1 ( ‚ы‡ет «ешꇻ). Поэтому мы имеем P («ешꇻ) = nешк‡/n = 1/2 . Пиме D.2 Мы бос‡ем 脇льную кость. К‡к ‚еоflтность ‚ыениfl цифы 5? Решение Общее количест‚о ‚озможных езульт‡то‚ — 6, S = {1, 2, 3, 4, 5, 6}. Число ‚озможных езульт‡то‚, с‚flз‡нных с этим событием, — 1 (‚ыение 5). Поэтому мы имеем P (5) = n5 /n = 1/6. Ст‡тистическое опе‰еление ‚еоflтности В ст‡тистическом опе‰елении ‚еоflтности экспеимент ‚ыполнflетсfl n ‡з пи ‡‚ных усло‚иflх. Если событие ‚озник‡ет m ‡з и n fl‚лflетсfl ‡зумно большим, ‚еоflтность событиfl — это число, интепетиуемое к‡к P (A) = m/n. Это опе‰еление полезно, к‡ событиfl не о‰ин‡ко‚о ‚еоflтны. Пиме D.3 Мы бос‡ем «неильную монету» 10 000 ‡з и получ‡ем «оел» 2600 ‡з и «ешку» 7400 ‡з. Поэтому P («оел») = 2600/10 000 = 0,26 и P (ешк‡) = 7400/10 000 = 0,74. Вычислительное опе‰еление ‚еоflтности В ‚ычислительном опе‰елении ‚еоflтности опе‰елflют ‚еоflтность событиfl исхо‰fl из ‚еоflтностей ‰у„их событий, используfl ‡ксиомы и с‚ойст‚‡, пи‚е‰енные ниже.
Аксиомы Аксиомы ‚еоflтности не мо„ут быть ‰ок‡з‡ны. Они ‚‚о‰flтсfl к‡к пе‰положениfl пи их использнии ‚ теоии ‚еоflтностей. Сле‰ующие ти ‡ксиомы — это фу퉇мент‡льные ‡ксиомы теоии ‚еоflтностей. 647
Кус
Киптфиfl и безоп‡сность сетей
• Аксиом‡ 1. Веоflтность событиfl — это неотиц‡тельное зн‡чение: P (A)≥ 0. • Аксиом‡ 2. Веоflтность случ‡йно„о пост‡нст‚‡ ‡‚н‡ 1: P (S) = 1. Ду„ими слми, пи испыт‡ниflх ‚с儉‡ ‚озник‡ет о‰ин из ‚озможных ‚ пост‡нст‚е езульт‡то‚. • Аксиом‡ 3. Если A1, A2, A3... —  непеесек‡ющихсfl событий, то P (A1, или A2, или A3, или ...) = P (A1) + P (A2) + P (A3) + ... Событиfl A1, A2, A3...fl‚лflютсfl поп‡но непеесек‡ющимисfl событиflми, если поfl‚ление к‡ж‰о„о из них не изменflет ‚еоflтность поfl‚лениfl ‰у„их.
С‚ойст‚‡ Если пинflть ‚ышеупомflнутые ‡ксиомы, можно ‰ок‡з‡ть список с‚ойст‚. Ниже пи‚е‰ен миним‡льный список с‚ойст‚, тебуемый ‰лfl поним‡ниfl ‡з‰ело‚ ‚ этой кни„е (‰ок‡з‡тельст‚‡ сле‰ует иск‡ть ‚ кн脇х по теоии ‚еоflтностей). • Веоflтность событиfl н‡хо‰итсfl ‚с儉‡ меж‰у 0 и 1: 0 ≤ P (A) ≤ 1. – • Веоflтность ник‡ко„о езульт‡т‡ — 0: P (S ) = 0. Ду„ими слми, если мы бос‡ем 脇льную кость, ‚еоflтность, что о‰но из чисел бу‰ет ‡‚но 7, ‡‚но 0 (не‚озможное событие). – – • Если A — ‰ополнение A, то P (A) = 1 – P (A). Н‡пиме, если ‚еоflтность ‚ыениfl цифы 2 пи бос‡нии 脇льной кости — 1/6, ‚еоflтность неполучениfl цифы 2 — это (1 – 1/6). • Если A — по‰множест‚о B, то P (A) ≤ P (B). Н‡пиме, к‡ мы бос‡ем 脇льную кость P (2 или 3), — меньше чем P (2 или 3 или 4). • Если событиfl A, B, C... не燂исимы, то P (A и B и C и ...) = P (A) × P (B) × P (C) ×...
Усло‚н‡fl ‚еоflтность Поfl‚ление о‰но„о событиfl может быть с‚flз‡но с поfl‚лением ‰у„о„о событиfl. Усло‚ную ‚еоflтность событиfl B, пи усло‚ии ‚озникно‚ениfl событиfl A, з‡писы‚‡ют ‚ ‚и‰е P (B|A). Может быть ‰ок‡з‡но, что P (B | A) =P (A и B)/P (A). Пимеч‡ние: если A и B — не燂исимые событиfl, то P (B|A) = P (B). Пиме D.4 Бос‡етсfl 脇льн‡fl кость. Если н‡м сообщ‡ют, что езульт‡т — четное число, к‡к ‚еоflтность, что это — 4? Решение P (4) = P (4)/P (четн). Если число fl‚лflетсfl четным, есть только о‰ин способ получить число 4, P (4) = 1/6. P (четн) = P (2, или 4, или 6) = 3/6. Поэтому, 648
Пиложение D
Элемент‡н‡fl теоиfl ‚еоflтностей
P (4 | четн) = (1/6) / (3/6) = 1/3 Об‡тите ‚ним‡ние, что усло‚н‡fl ‚еоflтность ‘P (4 | четн) больше, чем P (4).
D.2. Случ‡йные пееменные Пееменн‡fl может пинflть ‡зличные зн‡чениfl. Пееменные, зн‡чениfl котоых 燂исflт от езульт‡то‚ случ‡йно„о экспеимент‡, н‡з‚‡ны случ‡йными пееменными. Непеы‚ные случ‡йные пееменные Случ‡йные пееменные, котоые мо„ут пиним‡ть бесконечное число зн‡чений, н‡зы‚‡ютсfl непеы‚ными случ‡йными пееменными. Мы ‚ киптфии обычно не интеесуемсfl этим типом случ‡йных пееменных.
Дискетные случ‡йные пееменные В киптфии н‡с интеесуют случ‡йные экспеименты с конечным числом езульт‡то‚ (т‡кие к‡к с 脇льной костью). Случ‡йные пееменные, с‚flз‡нные с этим типом экспеимент‡, н‡зы‚‡ютсfl ‰искетными случ‡йными пееменными. Дискетн‡fl случ‡йн‡fl пееменн‡fl — отоб‡жение множест‚‡ езульт‡то‚ н‡ множест‚о зн‡чений е‡льных чисел. Н‡пиме, мы можем отоб‡зить езульт‡ты по‰б‡сы‚‡ниfl монеты («оел», «ешꇻ) н‡ множест‚о чисел {0, 1}.
649
Кус
Киптфиfl и безоп‡сность сетей
Пиложение E. Поблемы ‰нfl ож‰ениfl Поблемы ‰нfl ож‰ениfl обсу扇лись ‚ лекции 11. В этом пиложении ‰‡ютсfl общие ешениfl четыех поблем ‰ней ож‰ениfl — мы используем теоию ‚еоflтностей, некотоые положениfl котоой к‡тко пи‚е‰ены ‚ пиложении D. Длfl то„о чтобы упостить ешениfl, пименflютсfl сле‰ующие м‡тем‡тические у‡‚нениfl: 1 – x ≈ e–x 1 + 2 + ... + (k – 1) ≈ k(k – 1)/2 k(k – 1) ≈ k2
// Рfl‰ Тейло‡ пи м‡лом x
E.1. Четые поблемы Мы пе‰ст‡‚лflем ешениfl четыех поблем, обсуж‰енных ‚ лекции 11.
П傇fl поблем‡ Мы имеем множест‚о ‚ыбоок зн‡чений ‡змеом k, ‚ котоых к‡ж‰ый элемент может иметь только о‰но из N ‡‚но‚еоflтных зн‡чений. К‡ко‚ ‰олжен быть миним‡льный ‡зме ‚ыбоки k ‚ множест‚е, чтобы с ‚еоflтностью P > 1/2 по к‡йней мее о‰ин из элементо‚ был бы ‡‚ен 燇нее опе‰еленному зн‡чению? Чтобы ешить поблему, мы сн‡ч‡л‡ н‡хо‰им ‚еоflтность P, что по к‡йней мее о‰ин элемент ‡‚ен 燇нее 燉‡нному зн‡чению. З‡тем 燉‡ем ‚еоflтность к 1/2, чтобы н‡йти миним‡льный ‡зме элемент‡. Веоflтность Чтобы н‡йти ‚еоflтность P, мы ‰ел‡ем четые ш‡„‡. 1. Если Pэл — ‚еоflтность то„о, что ‚ыб‡нный элемент ‡‚ен 燇нее 燉‡нному зн‡чению, то Pэл = 1/N, потому что элемент может с ‡‚ной ‚еоflтностью пиним‡ть любое из зн‡чений N. 2. Если Qэл — ‚еоflтность, что ‚ыб‡нный элемент не ‡‚ен 燇нее 燉‡нному зн‡чению, то Qэл = 1– Pэл = (1 – 1/ N). 3. Если к‡ж‰ый элемент не燂исим (се‰ли‚ое пе‰положение) и Q — ‚еоflтность, что ни о‰ин элемент не ‡‚ен 燇нее 燉‡нному зн‡чению, то Q = Qэлk = (1 – 1/ N)k. 4. Н‡конец, если P — ‚еоflтность то„о что, по к‡йней мее о‰ин элемент ‡‚ен 燇нее опе‰еленному зн‡чению, то P = 1– Q или P = 1 – (1 – 1/N)k. Р‡зме ‚ыбоки Тепеь мы н‡хо‰им миним‡льный ‡зме ‚ыбоки k, чтобы ‚еоflтность поfl‚лениfl элемент‡ был‡ P ≥ 1/2. К‡к пок‡з‡но ниже, зн‡чение k ‰олжно быть k > ln2 × N: 650
Пиложение E
Поблемы ‰нfl ож‰ениfl
П傇fl поблем‡ Веоflтность: P = 1 – (1 – 1/N)k Р‡зме ‚ыбоки : k ≥ ln 2 × N
Вто‡fl поблем‡ Вто‡fl поблем‡ — т‡ же с‡м‡fl, что и п傇fl, з‡ исключением то„о, что 燇нее 燉‡нное зн‡чение — о‰ин из элементо‚ множест‚‡. Это озн‡ч‡ет, что мы можем н‡йти езульт‡т ‚тоой поблемы, если з‡меним k н‡ k – 1, потому что после ‚ыбо‡ о‰но„о элемент‡ из ‚ыбоки элементо‚ ост‡етсfl только k – 1 элементо‚. Поэтому P = 1 – (1 – 1/N)k-1 и k> ln2 × N + 1. Вто‡fl поблем‡ Веоflтность: P = 1 – (1 – 1/N) k-1 Р‡зме ‚ыбоки k ≥ ln2 × N + 1.
Тетьfl поблем‡ В тетьей поблеме мы ‰олжны н‡йти миним‡льный ‡зме ‚ыбоки элементо‚ k, т‡кой, чтобы с ‚еоflтностью P > 1/2 по к‡йней мее ‰‚‡ элемент‡ имели о‰но и то же зн‡чение. Чтобы ешить поблему, мы сн‡ч‡л‡ н‡хо‰им соот‚етст‚ующую ‚еоflтность P, з‡тем 燉‡ем ‚еоflтность 1/2, чтобы н‡йти миним‡льный ‡зме ‚ыбоки. Веоflтность З‰есь мы используем не т‡кую ст‡те„ию, к‡к ‚ пе‰ы‰ущих случ‡flх. 1. Мы опе‰елflем ‚еоflтности поfl‚лениfl элементо‚ по о‰ному. Пе‰положим, что P fl‚лflетсfl ‚еоflтностью, с котоый ‚ыбок‡ элементо‚ i имеет то же с‡мое зн‡чение, что и о‰н‡ из пе‰ы‰ущих ‚ыбоок, и Q — ‚еоflтность, с котоый ‚ыбок‡ i имеет зн‡чение, отлич‡ющеесfl от ‚сех пе‰ы‰ущих ‚ыбоок. a. Поскольку пее‰ пе‚ой ‚ыбокой нет ни о‰ной ‰у„ой P1 = 0 и Q1 = 1 – 0 = 1. b. Поскольку пее‰ ‚тоой ‚ыбокой есть о‰н‡ ‰у„‡fl ‚ыбок‡, п傇fl и ‚то‡fl ‚ыбоки мо„ут иметь о‰но из зн‡чений из N элементо‚. P2 = 1/N и Q2 = (1 – 1/N). c. Поскольку пее‰ тетьей ‚ыбокой есть ‰‚е ‚ыбоки, то к‡ж‰‡fl из этих ‰‚ух ‚ыбоок может иметь о‰но из зн‡чений из N элементо‚, P3 = 2/N и Q3 = (1– 2/N). d. По‰олж‡fl эти ‡ссуж‰ениfl, мы получим Pk = (k – 1)/N и Qk = (1 – (k – 1)/N). 651
Кус
Киптфиfl и безоп‡сность сетей
2. Пе‰положим, что ‚се ‚ыбоки не燂исимы, т‡ ‚еоflтность Q, с котоой ‚се ‚ыбоки имеют ‡зличные зн‡чениfl,
3. Н‡конец, если P — ‚еоflтность, с котоой по к‡йней мее ‰‚е ‚ыбоки имеют о‰ни и те же зн‡чениfl, то мы имеем P = 1 – Q или P = 1 – e-k2/2N Р‡зме ‚ыбоки Тепеь мы можем н‡йти миним‡льный ‡зме ‚ыбоки с ‚еоflтностью P ≥ 1/2 . Он‡ ‡‚н‡ k ≥ (2 × ln2)1/2 или k ≥ 1,18 × N1/2, ‰ок‡з‡тельст‚о пи‚е‰ено ниже:
Тетьfl поблем‡ Веоflтность: P= 1 – e-k2/2N Р‡зме ‚ыбоки: k ≥ (2 × ln 2)1/2 × N1/2
Чет‚ет‡fl поблем‡ В Чет‚етой поблеме мы имеем ‰‚е ‚ыбоки ‡‚но„о ‡зме‡, k. Мы ‰олжны н‡йти миним‡льное зн‡чение k, т‡кое, что с ‚еоflтностью P ≥ 1/2 по к‡йней мее о‰н‡ из ‚ыбоок ‚ пе‚ом множест‚е имеет то же с‡мое зн‡чение, что и ‚ыбок‡ ‚о ‚тоом множест‚е. Чтобы ешить поблему, мы сн‡ч‡л‡ н‡хо‰им соот‚етст‚ующую ‚еоflтность P. З‡тем мы 燉‡ем ‚еоflтность 1/2, чтобы н‡йти миним‡льный ‡зме ‚ыбоки. Веоflтность Мы еш‡ем это с использнием ст‡те„ии, по‰обной той, котоую мы использли ‰лfl пе‚ой поблемы. 1. Со„л‡сно пе‚ой поблеме, ‚еоflтность, что ‚се ‚ыбоки ‚ пе‚ом множест‚е имеют зн‡чениfl, отлич‡ющиесfl от зн‡чений пе‚ой ‚ыбоки ‚о ‚тоом множест‚е, — Q 1 = (1 – 1/N)k. 2. Веоflтность, что ‚се ‚ыбоки ‚ пе‚ом множест‚е имеют зн‡чениfl, отлич‡ющиесfl от пе‚ых и ‚тоых ‚ыбоок ‚о ‚тоом множест‚е, – Q2 = (1 – 1/N) k × (1 – 1/N) k. 3. Мы по‰олж‡ем ‡ссуж‰ениfl, чтобы пок‡з‡ть, что ‚еоflтность, что ‚се ‚ыбоки ‚ пе‚ом множест‚е имеют зн‡чениfl, отлич‡ющиесfl от любой ‚ыбоки ‚о ‚тоом множест‚е: 652
Пиложение E
Поблемы ‰нfl ож‰ениfl
4. Н‡конец, если P — ‚еоflтность, что по к‡йней мее о‰н‡ ‚ыбок‡ из пе‚о„о н‡бо‡ имеет то же с‡мое зн‡чение, что и о‰н‡ из ‚ыбоок ‚о ‚тоом н‡бое, то P = 1 – Qk или P = 1 – e–k2/N Р‡зме ‚ыбоки Тепеь мы н‡хо‰им миним‡льный общий ‡зме ‚ыбоок, к‡к это пок‡з‡но ниже:
Чет‚ет‡fl поблем‡ Веоflтность: P= 1 – e-k2/2N Р‡зме ‚ыбоки: k ≥ (2 × ln 2)1/2 × N1/2
E.2. Ито„и Т‡блиц‡ E.1 ‰‡ет ‚ы‡жениfl ‰лfl ‚еоflтности (P) и ‡зме‡ ‚ыбоки (k) ‰лfl к‡ж‰ой из этих четыех поблем. Т‡блиц‡ E.1. Ито„и ешений ‰лfl четыех поблем ‰нfl ож‰ениfl
653
Кус
Киптфиfl и безоп‡сность сетей
Пиложение F. Теоиfl инфом‡ции В этом пиложении мы обсу扇ем несколько концепций теоии инфом‡ции, котоые с‚flз‡ны с тем‡ми, ‡ссмотенными ‚ этой кни„е.
F.1. Измеение инфом‡ции К‡к мы можем измеить инфом‡цию ‚ событии? Сколько инфом‡ции н‡м ‰ост‡‚лflет событие? Д‡‚‡йте от‚етим н‡ эти ‚опосы с помощью пимео‚. Пиме F.1 Вооб‡зите чело‚ек‡, си‰flще„о ‚ комн‡те. Глfl‰fl из окн‡, он может flсно ‚и‰еть, что сиflет солнце. Если ‚ этот момент он получ‡ет сообщение (событие) от сос則, котоый „о‚оит «Хооший ‰ень», это сообщение со‰ежит к‡кую-либо инфом‡цию? Конечно, нет! Чело‚ек уже у‚еен, что это ‰ень и по„ хоош‡fl. Сообщение не уменьш‡ет неопе‰еленности е„о зн‡ний. Пиме F.2 Вооб‡зите, что чело‚ек купил лотеейный билет. Если ‰у„ з‚онит, чтобы ск‡з‡ть, что он ‚ы脇л пе‚ый пиз, это сообщение (событие) со‰ежит инфом‡цию? Конечно, ‰‡! Сообщение со‰ежит мно„о инфом‡ции, потому что ‚еоflтность ‚ыи„ыш‡ пе‚о„о пиз‡ fl‚лflетсfl очень м‡ленькой. Пиемник сообщениfl потflсен. Вышеупомflнутые ‰‚‡ пиме‡ пок‡зы‚‡ют, что есть отношениfl меж‰у полноценностью событиfl и ож艇ниflми пиемник‡. Если пиемник у‰‡лен от мест‡ событиfl, к‡ событие случ‡етсfl, сообщение со‰ежит мно„о инфом‡ции; ин‡че — это не т‡к. Ду„ими слми, инфом‡ционное со‰еж‡ние сообщениfl об‡тно попоцион‡льно с‚flз‡но с ‚еоflтностью ‚озникно‚ениfl это„о сообщениfl. Если событие очень ‚еоflтно, оно не со‰ежит ник‡кой инфом‡ции (Пиме F.1); если оно fl‚лflетсfl м‡ло‚еоflтным, оно со‰ежит мно„о инфом‡ции (Пиме F.2).
F.2. Энтопиfl Пе‰положим, что S — ‡спе‰еление ‚еоflтностей конечно„о числ‡ событий (См. пиложение D). Энтопиfl или неопе‰еленность ‚ S может быть опе‰елен‡1 к‡к: H(s) = Σ P(s) × [log21/(p(s)] бит „‰е x ∈ S — ‚озможный езульт‡т о‰но„о испыт‡ниfl. Об‡тите ‚ним‡ние, что, если P (s) = 0, то мы бу‰ем счит‡ть, что P(s) × [log21/(p(s)] ‡‚но 0, чтобы избеж‡ть ‰елениfl н‡ 0. 1 В м‡тем‡тической лите‡туе пинflт немно„о ‰у„ой ‚и‰ фомулы, отоб‡ж‡ющей энтопию: H(S) = –Σp(s)log2p(s) 654
Пиложение F
Теоиfl инфом‡ции
Пиме F.3 Пе‰положим, что мы бос‡ем ильную монету. Результ‡ты — «оел» и «ешꇻ, к‡ж‰ый с ‚еоflтностью 1/2, и это озн‡ч‡ет H (S) = P (оел) × [log2 1/ (P (ешк‡)] + P (ешк‡) × [log2 1 / (P (ешк‡)] H (S) = (1/2) × [log2 1 / (1/2) 1 + (1/2) × [log2 1 / (1/2)] = 1 бит Этот пиме пок‡зы‚‡ет, что езульт‡т бос‡ниfl «п‡‚ильной» монеты ‰‡ет н‡м 1 бит инфом‡ции (неопе‰еленность). Пи к‡ж‰ом бос‡нии мы не зн‡ем, к‡ко‚ бу‰ет езульт‡т, поскольку ‰‚е ‚озможности о‰ин‡ко‚о ‚еоflтны. Пиме F.4 Пе‰положим, что мы бос‡ем «неильную» (по‚еж‰енную) монету. Результ‡ты ‚ыениfl «о뇻 и «ешки» сле‰ующие: P («оел») = 3/4 и P («ешꇻ) = 1/4. Это озн‡ч‡ет, что H (S) = (3/4) x [log2 1 / (3/4)] + (1/4) x [log2 1 / (1/4)] = 0,8 бит Этот пиме пок‡зы‚‡ет, что езульт‡т бос‡ниfl неильной монеты ‰‡ет н‡м только 0,8 бито‚ инфом‡ции (неопе‰еленность). Количест‚о инфом‡ции з‰есь меньше, чем количест‚о инфом‡ции ‚ Пимее F.3, потому что мы ож艇ем получить «оло‚» большее число ‡з, чем «ешек». Пиме F.5 Тепеь пе‰положим, что мы бос‡ем полностью неильную монету, ‚ котоой езульт‡т fl‚лflетсfl ‚с儉‡ «оел», P («оел») = 1 и P («ешꇻ) = 0. Энтопиfl ‚ этом случ‡е H (S) = (1) x [log21)] + (0) x [log2 1 / (0)] = (1) x (0) + (0) = 0 В этом экспеименте нет ник‡кой инфом‡ции (неопе‰еленности). Мы зн‡ем, что езульт‡том ‚с儉‡ бу‰ет «оел»; энтопиfl — 0.
М‡ксим‡льн‡fl энтопиfl Может быть ‰ок‡з‡но, что ‰лfl ‡спе‰елениfl ‚еоflтностей с n ‚озможными езульт‡т‡ми м‡ксим‡льн‡fl энтопиfl может быть ‰ости„нут‡, только если ‚се ‚еоflтности ‡‚ны (‚се езульт‡ты о‰ин‡ко‚о ‚еоflтны). В этом случ‡е м‡ксим‡льн‡fl энтопиfl Hmax = log2n бит Ду„ими слми, энтопиfl любо„о множест‚‡ ‚еоflтностей имеет ‚ехний пе‰ел, котоый опе‰елflетсfl этой фомулой. 655
Кус
Киптфиfl и безоп‡сность сетей
Пиме F.6 Пе‰положим, что бос‡етсfl шест脇нн‡fl 脇льн‡fl кость. Энтопиfl испыт‡ниfl ‡‚н‡ H (S) = log2 6 ≈ 2,58 бито‚
Миним‡льн‡fl энтопиfl Можно ‰ок‡з‡ть, что ‰лfl ‡спе‰елениfl ‚еоflтностей с n ‚озможными езульт‡т‡ми, получ‡етсfl миним‡льн‡fl энтопиfl т‡ и только т‡, к‡ ‚се ‚емfl получ‡етсfl о‰ин из езульт‡то‚. В этом случ‡е миним‡льн‡fl энтопиfl Hmin (S) = 0 бито‚ Ду„ими слми, эт‡ фомул‡ опе‰елflет нижний пе‰ел энтопии ‰лfl любо„о н‡бо‡ ‚еоflтностей. Энтопиfl любо„о н‡бо‡ ‚еоflтностей н‡хо‰итсfl меж‰у 0 бит и log2n бит, „‰е n — число ‚озможных езульт‡то‚.
Интепет‡циfl энтопии Энтопию можно ‚оспиним‡ть к‡к число бит, котоым можно пе‰ст‡‚ить к‡ж‰ый езульт‡т из множест‚‡ ‚еоflтностей, ‚ том случ‡е, к‡ езульт‡ты о‰ин‡ко‚о ‚еоflтны. Н‡пиме, к‡ ‚озможное случ‡йное ‡спе‰еление имеет ‚осемь ‚озможных езульт‡то‚, к‡ж‰ый езульт‡т может быть пе‰ст‡‚лен ‚ ‚и‰е тех бит (от 000 ‰о 111). К‡ мы получ‡ем езульт‡т экспеимент‡, мы можем ск‡з‡ть, что получили 3 бит‡ инфом‡ции. Энтопиfl это„о н‡бо‡ ‚еоflтностей — т‡кже 3 бит‡ (log2 8 = 3).
Со‚местн‡fl энтопиfl К‡ мы имеем ‰‚‡ н‡бо‡ ‡спе‰елениfl ‚еоflтностей, S1 и S2, мы можем опе‰елить со‚местную энтопию H (S1, S2) к‡к H (S1, S2) = ΣΣ P(x,y)) × [log2 1/P (x, y)] бит Усло‚н‡fl энтопиfl Мы ч‡сто ‰олжны зн‡ть неопе‰еленность ‡спе‰елениfl ‚еоflтностей S1, пи усло‚ии получениfl езульт‡т‡, котоый опе‰елflетсfl неопе‰еленностью ‡спе‰елениfl ‚еоflтности S2. Он‡ н‡зы‚‡етсfl усло‚ной энтопией H (S1| S2). Может быть ‰ок‡з‡но, что H (S1| S2) = H (S1, S2) – H (S2) бит 656
Пиложение F
Теоиfl инфом‡ции
Ду„ие соотношениfl Пи‚е‰ем з‰есь без ‰ок‡з‡тельст‚‡ некотоые ‰у„ие соотношениfl ‰лfl энтопии: 1. H (S1, S2) = H (S2 | S1) + H (S1) = H (S1| S2) + H (S2) 2. H (S1, S2) ≤ H (S1) + H (S2) 3. H (S1| S2) ≤ H (S1) 4. H (S1, S2, S3) = H (S1| S2, S3) + H (S1, S3) Втоое и тетье соотношениfl се‰ли‚ы, если S1 и S2 ст‡тистически не燂исимы. Пиме F.7 В киптфии, если P — ‡спе‰еление ‚еоflтностей исхо‰но„о текст‡, C – ‡спе‰еление ‚еоflтностей з‡шифнно„о текст‡ и K – ‡спе‰еление ‚еоflтностей ключей, то H (K|C) может интепетитьсfl к‡к сложность ‡т‡ки з‡шифнно„о текст‡, ‚ котоой зн‡ние C может пи‚ести к зн‡нию K. Пиме F.8 В киптфии, учиты‚‡fl исхо‰ный текст и ключ, ‰етемининный ‡л„оитм шифниfl со片ет уник‡льный з‡шифнный текст, что озн‡ч‡ет H (C | K, P) = 0. Т‡кже учиты‚‡fl з‡шифнный текст и ключе‚ой ‡л„оитм ‰ешифниfl, со片етсfl уник‡льный исхо‰ный текст, что озн‡ч‡ет H (P | K, C) = 0. Если ‰‡н з‡шифнный текст и исхо‰ный текст, ключ т‡кже опе‰елflетсfl уник‡льно: H (K | P, C) = 0.
Со‚ешенн‡fl секетность В киптфии, если P, K и C — пост‡нст‚‡ ‚ыбоки ‚еоflтности исхо‰но„о текст‡, з‡шифнно„о текст‡ и ключ‡ соот‚етст‚енно, то мы имеем H (P|C) ≤ H (P). Это может быть интепетино т‡к: неопе‰еленность P ‰‡нно„о C меньше или ‡‚н‡ неопе‰еленности P. В большинст‚е киптфических систем, се‰ли‚о отношение H (P|C)< H (P), что озн‡ч‡ет, что пеех‚‡т з‡шифнно„о текст‡ уменьш‡ет зн‡ние, котоое тебуетсfl ‰лfl то„о, чтобы н‡йти исхо‰ный текст. Киптфическ‡fl систем‡ обеспеч肇ет со‚ешенную секетность, если соблю‰‡етсfl соотношение H (P|C)=H (P), — это озн‡ч‡ет, что неопе‰еленность исхо‰но„о текст‡ и ‰‡нно„о з‡шифнно„о текст‡ – о‰н‡ и т‡ же неопе‰еленность исхо‰но„о текст‡. Ду„ими слми, Е‚‡ не получ‡ет ник‡кой инфом‡ции, пеех‚‡ти‚ з‡шифнный текст; он‡ по-пежнему ‰олжн‡ иссле‰о‚‡ть ‚се ‚озможные ‚‡и‡нты. Киптфическ‡fl систем‡ обеспеч肇ет со‚ешенную секетность, если H (P | C) = H (P). Пиме F.9 В пе‰ы‰ущих лекциflх мы ут‚е扇ли, что о‰но‡зо‚ый шиф блокнот‡ обеспеч肇ет со‚ешенную секетность. Док‡жем этот ф‡кт, используfl пе‰ы‰у657
Кус
Киптфиfl и безоп‡сность сетей
щие соотношениfl энтопии. Пе‰положим, что ‡лф‡‚ит — только 0 и 1. Если ‰лин‡ сообщениfl — L, может быть ‰ок‡з‡но, что ключ и з‡шифнный текст состоflт из 2L сим‚оло‚, ‚ котоых к‡ж‰ый сим‚ол fl‚лflетсfl о‰ин‡ко‚о ‚еоflтным. Сле‰о‚‡тельно, H (K) = H (C) = log22L = L. Используfl отношениfl, полученные ‚ пимее F.8, и то, что H (P, K) = H (P) + H (K), потому что P и K не燂исимы, мы имеем H (P, K, C) = H (C|P, K) + H (P, K) = H (P, K) = H (P) + H (K) H (P, K, C) = H (K|P, C) + H (P, C) = H (P, C) = H (P|C) + H (C) Это озн‡ч‡ет, что H (P | C) = H (P)
Пиме F.10 Шеннон пок‡з‡л, что ‚ киптфической системе, если (1) ключи ‚озник‡ют с ‡‚ной ‚еоflтностью и (2) ‰лfl к‡ж‰о„о исхо‰но„о текст‡ и к‡ж‰о„о з‡шифнно„о текст‡ есть уник‡льный ключ, то киптфическ‡fl систем‡ обеспеч肇ет со‚ешенную секетность. Док‡з‡тельст‚о использует тот ф‡кт, что ‚ этом случ‡е ‡спе‰елениfl ‚еоflтностей ключей, исхо‰но„о текст‡ и з‡шифнно„о текст‡ имеют о‰ин и тот же ‡зме.
F.3. Энтопиfl flзык‡ Интеесно с‚flз‡ть концепцию энтопии с естест‚енными flзык‡ми, т‡кими к‡к ‡н„лийский flзык. В этом ‡з‰еле мы к‡с‡емсfl некотоых пункто‚, с‚flз‡нных с энтопией flзык‡.
Энтопиfl поиз‚ольно„о flзык‡ Пе‰положим, что flзык сост‡‚лен из N бук‚ и ‚се бук‚ы имеют ‡‚ную ‚еоflтность поfl‚лениfl. Мы можем ск‡з‡ть, что энтопиfl это„о flзык‡ – HL = log2N. Н‡пиме, если мы используем ‰‚‡‰ц‡ть шесть пописных бук‚ (от A ‰о Z), чтобы пе則ть н‡ше сообщение, то энтопиfl, или инфом‡циfl, со‰еж‡щ‡flсfl ‚ к‡ж‰ой бук‚е, ‡‚н‡ HL = log2 26 = 4,7 бито‚. Ду„ими слми, от к‡ж‰ой бук‚ы мы получ‡ем 4,7 бит‡ инфом‡ции. Это озн‡ч‡ет, что мы можем ко‰ить бук‚ы н‡ этом flзыке, пименflfl сл по 5 бито‚; ‚место то„о чтобы посыл‡ть бук‚у, мы можем пе則ть о‰но сло‚о из 5 бито‚.
Энтопиfl ‡н„лийско„о flзык‡ Энтопиfl ‡н„лийско„о flзык‡ — н‡мно„о меньше, чем 4,7 бит‡, по ‰‚ум пичин‡м (если мы используем только пописные бук‚ы). Пе‚ое: бук‚ы ‚озник‡ют с нео‰ин‡ко‚ой ‚еоflтностью. Лекциfl 3 пок‡зы‚‡ет ч‡стоту поfl‚лениfl бук‚ ‚ ‡н„лийском flзыке. Буꂇ E ‚озникнет н‡мно„о более ‚еоflтно, чем буꂇ Z. Втоое: сущест‚ние ‰и„‡мм (сочет‡ний по ‰‚е бук‚ы) и т脇мм (сочет‡ний по ти бук‚ы) уменьш‡ет количест‚о инфом‡ции ‚ полученном тексте. Если мы получ‡ем бук‚у Q, ‚еоflтнее ‚се„о, что сле‰ующ‡fl буꂇ — U. Т‡кже, если мы получ‡658
Пиложение F
Теоиfl инфом‡ции
ем пflть после‰о‚‡тельных бук‚ SELLI, то ‚еоflтно, что сле‰ующие ‰‚е бук‚ы бу‰ут QG. Эти ‰‚‡ ф‡кт‡ уменьш‡ют энтопию ‡н„лийско„о flзык‡. Шеннон пок‡з‡л, что се‰нее зн‡чение энтопии ‡н„лийско„о flзык‡1 ‡‚но 1,50.
Избыточность Избыточность flзык‡ был‡ опе‰елен‡ к‡к R = 1 – HL /(log2N). В случ‡е ‡н„лийско„о flзык‡, используfl только пописные бук‚ы, мы получим R = 1 – 1,50/4,7 = 0,68. Ду„ими слми, ‚ ‡н„лийском сообщении есть 70поцентн‡fl избыточность. Ал„оитм может сж‡ть ‡н„лийский текст ‰о 70 поценто‚, не теflfl со‰еж‡ниfl. Инт傇л о‰нозн‡чности Ду„ое опе‰еление, ‚‚е‰енное Шенноном, — инт傇л о‰нозн‡чности. Инт傇л о‰нозн‡чности — миним‡льн‡fl ‰лин‡ з‡шифнно„о текст‡, n0, кото‡fl тебуетсfl Е‚е, чтобы уник‡льно опе‰елить ключ (з‡ ‰ост‡точно большое число по‚тоений) и ‚ конечном счете ‚ычислить исхо‰ный текст. Инт傇л о‰нозн‡чности опе‰елен к‡к n0 = H (K) / [R × H (P)] Пиме F.11 Шиф по‰ст‡но‚ки использует множест‚о ключей, состоflщих из 26 ключей, и ‡лф‡‚ит из 26 сим‚оло‚. Используfl избыточность 0,70 ‰лfl ‡н„лийско„о flзык‡, опе‰елflем инт傇л о‰нозн‡чности: n0 = (log 2 26!) / (0,70 × log2 26) = 27 Это озн‡ч‡ет, что з‡шифнный текст ‰олжен со‰еж‡ть по к‡йней мее 27 сим‚оло‚, ‰лfl то„о чтобы Е‚‡ мо„л‡ уник‡льно н‡йти исхо‰ный текст. Пиме F.12 Шиф с‰‚脇 использует множест‚о из 26 ключей и ‡лф‡‚ит из 26 сим‚оло‚. Используfl избыточность 0,70 ‰лfl ‡н„лийско„о flзык‡, инт傇л о‰нозн‡чности опе‰елflем сле‰ующим соотношением: n0 = (log 26)/0,70 × log226) = 1,5 Это озн‡ч‡ет, что Е‚е необхо‰имо иметь по к‡йней мее 2 сим‚ол‡ з‡шифнно„о текст‡, чтобы уник‡льно н‡йти исхо‰ный текст. Конечно, это ‚есьм‡ пиблизительн‡fl оценк‡. В ф‡ктической ситу‡ции Е‚‡ ну扇етсfl ‚ большем количест‚е сим‚оло‚, чтобы н‡ушить ко‰. 1 А.Н.
Колмо„оо‚ ‚ с‚оей ст‡тье «Ти по‰х к опе‰елению понflтиfl количест‚‡ инфом‡ции» пи‚о‰ит оценку энтопии усско„о flзык‡ н‡ осно‚е слfl С.И. Оже„ –это 1,9 ± 0,1. 659
Кус
Киптфиfl и безоп‡сность сетей
Пиложение G. Список непи‚о‰имых и пимити‚ных полиномо‚
Из лекции 4 мы узн‡ли, что непи‚о‰имый полином ‚ GF(2n) — полином степени n, котоый не может быть ‡зложен н‡ множители — полиномы со степенью меньше, чем n. Мы т‡кже узн‡ли из лекции 5, что пимити‚ный полином — это непи‚о‰имый полином, котоый fl‚лflетсfl ‰елителем числ‡ 2e + 1, „‰е e — н‡именьшее целое числ‡ ‚ фоме e = 2k – 1 и k ≥ 2. Это озн‡ч‡ет, что пимити‚ный полином — обflз‡тельно непи‚о‰имый полином, но непи‚о‰имый полином — не обflз‡тельно пимити‚ный полином. Т‡блиц‡ G.1 пок‡зы‚‡ет непи‚о‰имые и пимити‚ные полиномы ‰лfl степеней 1 – 8. В ку„лых скобк‡х пок‡з‡ны непи‚о‰имые, но не пимити‚ные полиномы. Т‡блиц‡ G.1. Непи‚о‰имые и пимити‚ные полиномы
Чтобы н‡йти полином, пе‰ст‡‚ленный ‚ т‡блице шест퇉ц‡теичным числом, сн‡ч‡л‡ з‡пишите число ‚ ‰‚оичном ‚и‰е, ‡ з‡тем пеоб‡зуйте е„о ‚ полином. Пиме G.1 Н‡й‰ите пе‚ый пимити‚ный полином степени 7. Решение Пе‚ое число ‰лfl степени 7 - 83 ‚ шест퇉ц‡теичном ‚и‰е, котоое fl‚лflетсfl и непи‚о‰имым, и пимити‚ным полиномом. Целое число 83 ‚ шест퇉ц‡теичном ‚и‰е эк‚肇лентно 1000 0011 ‚ ‰‚оичном. Соот‚етст‚ующий полином — x7 + x + 1. Пиме G.2 Н‡й‰ите пе‚ый непи‚о‰имый полином, котоый не пимити‚ен. 660
Пиложение G
Список непи‚о‰имых и пимити‚ных полиномо‚
Решение. Полином степени 6, котоый бу‰ет пе‚ым непимити‚ным полиномом степени 6, — (45) ‚ шест퇉ц‡теичном ‚и‰е. Целое число 45 ‚ шест퇉ц‡теичном ‚и‰е эк‚肇лентно 100 0101 ‚ ‰‚оичном ‚и‰е (об‡тите ‚ним‡ние, что мы ‰олжны сох‡нить только 7 бито‚). Соот‚етст‚ующий полином — x6 + x2 + 1. Пиме G.3 Н‡й‰ите ‚тоой непи‚о‰имый полином степени 8, котоый не пимити‚ен. Решение Втоой непимити‚ный полином степени 8 — (139) ‚ шест퇉ц‡теичном ‚и‰е. Целое шест퇉ц‡теичное число эк‚肇лентно 1 0011 1001 ‚ ‰‚оичном ‚и‰е (об‡тите ‚ним‡ние, что мы ‰олжны сох‡нить только 9 бито‚). Соот‚етст‚ующий полином — x8 + x5 + x4 + x3 + 1.
661
Кус
Киптфиfl и безоп‡сность сетей
Пиложение H. Постые числ‡, меньшие чем 10 000 Это пиложение пеечислflет постые числ‡, меньшие чем 10000. В к‡ж‰ой т‡блице к‡ж‰ое число ‚ пе‚ом столбце fl‚лflетсfl числом постых чисел ‚ соот‚етст‚ующем ‰и‡п‡зоне ‰лfl этой стоки, н‡пиме, от 0 ‰о 100 число постых чисел 25 и т. ‰. Т‡блиц‡ H.1. Список постых чисел ‚ ‰и‡п‡зоне 1-1000 25 2 3 5 7 11 13 17 19 23 29 31 3 741 43 47 53 59 61 67 71 73 79 83 89 97 21 101 103 107 109 113 127 131 137 139 149 151 157 163 167 173 179 181 191 193 197 199 16 211 223 227 229 233 239 241 251 257 263 269 271 277 281 283 293 16 307 311 313 317 331 337 347 349 353 359 367 373 379 383 389 397 17 401 409 419 421 431 433 439 443 449 457 461 463 467 479 487 491 499 14 503 509 521 523 541 547 557 563 569 571 577 587 593 599 16 601 607 613 617 619 631 641 643 647 653 659 661 673 677 683 691 14 701 709 719 727 733 739 743 751 757 761 769 773 787 797 15 809 811 821 823 827 829 839 853 857 859 863 877 881 883 887 16 907 91 1 919 929 937 941 947 953 967 971 977 983 991 997 Все„о число постых чисел ‚ ‰и‡п‡зоне 1-1000 ‡‚но 168 Т‡блиц‡ H.2 Список постых чисел ‚ ‰и‡п‡зоне 1001-2000 16 1009 1013 1019 1021 1031 1033 1039 1049 1051 1061 1063 1069 1087 1091 1093 1097 12 1103 1109 1117 1123 1 129 1 151 1 153 1163 1 171 1181 1187 1193 15 1203 1213 1217 1223 1229 1231 1237 1249 1259 1277 1279 1283 1289 1291 1297 11 1301 1303 1307 1319 1321 1327 1361 1367 1373 1381 1399 17 1409 1423 1427 1429 1433 1439 1447 1451 1453 1459 1471 1481 1483 1487 1489 1493 1499 12 1511 1523 1531 1543 1549 1553 1559 1567 1571 1579 1583 1597 15 161 1607 1609 1613 1619 1621 1627 1637 1657 1663 1667 1669 1693 1697 1699 12 1709 1721 1723 1733 1741 1747 1753 1759 1777 1783 1787 1789 12 1801 1811 1823 1831 1847 1861 1867 1871 1873 1877 1879 1889 13 1901 1907 1913 1931 1933 1949 1951 1973 1979 1987 1993 1997 1999 Все„о число постых чисел ‚ ‰и‡п‡зоне 1001-2000 ‡‚но 134 Т‡блиц‡ H.3. Список постых чисел ‚ ‰и‡п‡зоне 2001-3000 14 2003 20111 2017 2027 2029 2039 2053 2063 2069 2081 2083 2087 2089 2099 10 2111 2113 21292131 21372141 214321532161 2179 15 2203 2309 2207 2311 2213 2221 2237 2239 2243 2251 2267 2269 2273 2281 2287 2293 2297 15 2309 2311 2333 2339 2341 2347 2351 2357 2371 2377 2381 2383 2389 2393 2399 10 2411 2417 2423 2437 2441 2447 2459 2467 2473 2477 662
Пиложение H
Постые числ‡, меньшие чем 10 000
11 2503 2521 2531 2539 2543 2549 2551 2557 2579 2591 2593 15 2609 2707 2617 2711 2621 2633 2647 2657 2659 2663 2671 2677 2683 2687 2689 2693 2699 14 2707 2711 2713 2719 2729 2731 2741 2749 2753 2767 2777 2789 2791 2797 12 2801 2803 2819 2833 2837 2843 2851 2857 2861 2879 2887 2897 11 2903 2909 2917 2927 2939 2953 2957 2963 2969 2971 2999 Все„о число постых чисел ‚ ‰и‡п‡зоне 2001-3000 ‡‚но 127 Т‡блиц‡ H.4. Список постых чисел ‚ ‰и‡п‡зоне 3001-4000 12 3001 3011 3019 3023 3037 3041 3049 3061 3067 3079 3083 3089 10 3109 3119 3121 3137 3163 3167 3169 3181 3187 3191 11 3203 3209 3217 3221 3229 3251 3253 3257 3259 3271 3299 15 3301 3307 3313 3319 3323 3329 3331 3343 3347 3359 3361 3371 3373 3389 3391 11 3407 3413 3433 3449 3457 3461 3463 3467 3469 3491 3499 14 3511 3517 3527 3529 3533 3539 3541 3547 3557 3559 3571 3581 3583 3593 13 3607 3613 3617 3623 3631 3637 3643 3659 3671 3673 3677 3691 3697 12 3701 3709 3719 3727 3733 3739 3761 3767 3769 3779 3793 3797 11 3803 3821 3823 3833 3847 3851 3853 3863 3877 3881 3889 11 3907 3911 3917 3919 3923 3929 3931 3943 3947 3967 3989 Все„о число постых чисел ‚ ‰и‡п‡зоне 3001-4000 ‡‚но 120
Т‡блиц‡ H.5. Список постых чисел ‚ ‰и‡п‡зоне 4001-5000 15 4001 4003 4007 4013 4019 4021 4027 4049 4051 4057 4073 4079 4091 4093 4099 9
4111 4127 4129 4133 4139 4153 4157 4159 4177
16 4201 4211 4217 4219 4229 4231 4241 4243 4253 4259 4261 4271 4273 4283 4289 4297 9 4327 4337 4339 4349 4357 4363 4373 4391 4397 11 4409 4421 4423 4441 4447 4451 4457 4463 4481 4483 4493 663
Кус
Киптфиfl и безоп‡сность сетей
12 4507 4513 4517 4519 4523 4547 4549 4561 4567 4583 4591 4597 12 4603 4621 4637 4639 4643 4649 4651 4657 4663 4673 4679 4691 12 4703 4721 4723 4729 4733 4751 4759 4783 4787 4789 4793 4799 8
4801 4813 4817 4831 4861 4871 4877 4889
15 4903 4909 4919 4931 4933 4937 4943 4951 4957 4967 4969 4973 49874993 4999 Все„о число постых чисел ‚ ‰и‡п‡зоне 4001-5000 ‡‚но 119 Т‡блиц‡ H.6. Список постых чисел ‚ ‰и‡п‡зоне 5001-6000 12 5003 5009 5011 5021 5023 5039 5051 5059 5077 5081 5087 5099 11 5101 5107 5113 5119 5147 5153 5167 5171 5179 5189 5197 10 5209 5227 5231 5233 5237 5261 5273 5279 5281 5297 10 5303 5309 5323 5333 5347 5351 5381 5387 5393 5399 13 5407 5413 5417 5419 5431 5437 5441 5443 5449 5471 5477 5479 5483 13 5501 5503 5507 5519 5521 5527 5531 5557 5563 5569 5573 5581 5591 12 5623 5639 5641 5647 5651 5653 5657 5659 5669 5683 5689 5693 10 5701 5711 5717 5737 5741 5743 5749 5779 5783 5791 16 5801 5807 5813 5821 5827 5839 5843 5849 5851 5857 5861 5867 5869 5879 5881 5897 5903 5923 5927 5939 5953 5981 5987 Все„о число постых чисел ‚ ‰и‡п‡зоне 5001-6000 ‡‚но 114 Т‡блиц‡ H.7. Список постых чисел ‚ ‰и‡п‡зоне 6001-7000 12 6007 6011 6029 6037 6043 6047 6053 6067 6073 6079 6089 6091 11 6101 61136121 6131 6133 6143 6151 6163 6173 6197 6199 13 6203 6211 6217 6221 6229 6247 6257 6263 6269 6271 6277 6287 6299
664
Пиложение H
Постые числ‡, меньшие чем 10 000
15 6301 6311 6317 6323 6329 6337 6343 6353 6359 6361 6367 6373 6379 6389 6397 8
6421 6427 6449 6451 6469 6473 6481 6491
11 6521 6529 6547 6551 6553 6563 6569 6571 6577 6581 6599 10 6607 6619 6637 6653 6659 6661 6673 6679 6689 6691 12 6701 6703 6709 6719 6733 6737 6761 6763 6779 6781 6791 6793 12 6803 6823 6827 6829 6833 6841 6857 6863 6869 6871 6883 6899 13 6907 6911 6917 6947 6949 6959 6961 6967 6971 6977 6983 6991 6997 Все„о число постых чисел ‚ ‰и‡п‡зоне 6001-7000 ‡‚но 117 Т‡блиц‡ H.8. Список постых чисел ‚ ‰и‡п‡зоне 7001-8000 9
7001 7013 7019 7027 7039 7043 7057 7069 7079
10 7103 7109 7121 7127 7129 7151 7159 7177 7187 7193 11 7207 7211 7213 7219 7229 7237 7243 7247 7253 7283 7297 9
7307 7309 7321 7331 7333 7349 7351 7369 7393
11 7411 7417 7433 7451 7457 7459 7477 7481 7487 7489 7499 15 7507 7517 7523 7529 7537 7541 7547 7549 7559 7561 7573 7577 7583 7589 7591 12 7603 7607 7621 7639 7643 7649 7669 7673 7681 7687 7691 7699 10 7703 7717 7723 7727 7741 7753 7757 7759 7789 7793 10 7817 7823 7829 7841 7853 7867 7873 7877 7879 7883 10 7901 7907 7919 7927 7933 7937 7949 7951 7963 7993 Все„о число постых чисел ‚ ‰и‡п‡зоне 7001-8000 ‡‚но 107 Т‡блиц‡ H.9. Список постых чисел ‚ ‰и‡п‡зоне 8001-9000 11 8009 8011 8017 8039 8053 8059 8069 8081 8087 8089 8093 10 8101 8111 8117 8123 8147 8161 8167 8171 81798191 14 8209 8219 8221 8231 8233 8237 8243 8263 8269 8273 8287 8291 8293 8297
665
Кус
Киптфиfl и безоп‡сность сетей
Пиложение I. Постые множители целых чисел, меньшие чем 1000 Это пиложение помет н‡хо‰ить целые числ‡, котоые fl‚лflютсfl постыми сомножителflми чисел, меньших, чем 1000. Т‡блицы I.1 и I.2 ‰‡ют н‡именьшие постые сомножители. Эти т‡блицы не ‚ключ‡ют ‚ себfl четные целые числ‡ (оче‚и‰но, что у них н‡именьший постой сомножитель — число 2) и целые числ‡, котоые ок‡нч肇ютсfl н‡ 5 (у них н‡именьший постой сомножитель — 5). Об‡тите ‚ним‡ние, что если н‡именьший сомножитель цело„о числ‡ не ‰‡етсfl, т‡ это число – постое (е„о н‡именьший сомножитель — это оно с‡мо). Чтобы н‡йти ‚се сомножители цело„о числ‡, меньшие, чем 1000, сн‡ч‡л‡ н‡й‰ите н‡именьший сомножитель, з‡тем ‡з‰елите число н‡ этот коэффициент. З‡тем сн используйте т‡блицу ‰лfl поиск‡ н‡именьше„о сомножителfl числ‡, полученно„о ‚ езульт‡те ‰елениfl. Это бу‰ет ‚тоой постой сомножитель, и т‡к ‰‡лее. Пиме I.1 Чтобы н‡йти ‚се постые сомножители числ‡ 693, мы используем сле‰ующие ш‡„и: 1. Н‡именьший постой сомножитель 693 есть 3; 693/3 = 231. 2. Н‡именьший постой сомножитель 231 есть 3; 231/3 = 77. 3. Н‡именьший постой сомножитель 77 есть 7; 77/7 = 11. 4. Целое число 11 — с‡мо постое число. Поэтому 693 = 32 × 7 × 11. Пиме I.2 Чтобы н‡йти постые сомножители числ‡ 722, мы используем сле‰ующие ш‡„и. 1. Число fl‚лflетсfl четным, и н‡именьший постой сомножитель, оче‚и‰но, ‡‚ен 2; 722/2 = 361. 2. Н‡именьший постой сомножитель 361 есть 19; 361/19 = 19. 3. Целое число 19 — с‡мо постое число. Поэтому 722 = 2 × 192. Пиме I.3 Чтобы н‡йти ‚се н‡именьшие постые сомножители числ‡ 745, мы используем сле‰ующие ш‡„и. 1. Число ‰елитсfl без ост‡тк‡ н‡ 5, т‡к что н‡именьший постой сомножитель, оче‚и‰но, есть 5; 745/5 = 149. 2. Целое число 149 — с‡мо постое число. Поэтому 745 = 5 × 149.
666
Пиложение I
Постые множители целых чисел, меньшие чем 1000
Т‡блиц‡ I.1. Н‡именьший сомножитель цело„о числ‡ ‚ ‰и‡п‡зоне 1–500 (Н.С. озн‡ч‡ет «н‡именьший сомножитель»)
667
Кус
Киптфиfl и безоп‡сность сетей
Т‡блиц‡ I.2. Н‡именьший сомножитель цело„о числ‡ ‚ ‰и‡п‡зоне 501–1000 (Н.С. озн‡ч‡ет «н‡именьший сомножитель»)
668
Пиложение J Список пе‚ых пе‚ооб‡зных коней ‰лfl постых чисел, меньших чем 1000
Пиложение J. Список пе‚ых пе‚ооб‡зных коней ‰лfl постых чисел, меньших чем 1000 Т‡блиц‡ J.1 пок‡зы‚‡ет пе‚ый пе‚ооб‡зный коень по мо‰улю посто„о числ‡ пе‚ооб‡зных коней ‰лfl постых чисел, меньших чем 1000. Т‡блиц‡ J.1
669
Кус
Киптфиfl и безоп‡сность сетей
Пиложение K. Гене‡то случ‡йных чисел Киптфиfl и случ‡йность имеют тесную с‚flзь. В пиложении F, Теоиfl инфом‡ции, мы упомин‡ли, что со‚ешенн‡fl секетность может быть ‰ости„нут‡, если ключ ‡л„оитм‡ шифо‚ки — ‰ейст‚ительно случ‡йное число. Есть ‰‚‡ по‰х к получению ‰линно„о поток‡ случ‡йных бито‚. 1. Использние естест‚енно„о случ‡йно„о поцесс‡, т‡ко„о к‡к мно„о‡зо‚ое бос‡ние монеты и интепет‡циfl езульт‡т‡ «оел» или «ешꇻ, к‡к зн‡чениfl бито‚ 0 или 1. 2. Использние ‰етемининно„о поцесс‡ с инфом‡цией об‡тной с‚flзи. Пе‚ый по‰хо‰ н‡з‚‡н истинным „ене‡тоом случ‡йных чисел (TRNG — True Random Number Generator). Втоой н‡з‚‡н пс傉ослуч‡йным „ене‡тоом числ‡ (PRNG — Pseudorandom Number Generator). Рисунок K.1 пок‡зы‚‡ет эти ‰‚‡ по‰х.
Рис. K.1. Истинный „ене‡то случ‡йных чисел и пс傉ослуч‡йный „ене‡то чисел
K.1. Истинный „ене‡то случ‡йных чисел (TRNG) Пи бос‡нии ильной монеты непеы‚но ‚озник‡ет со‚ешенный случ‡йный поток бито‚, но это непименимо н‡ п‡ктике. Есть мно„о естест‚енных источнико‚, котоые мо„ут поиз‚ести истинные случ‡йные числ‡, т‡кие к‡к тепло‚ой шум ‚ электическом езистое или ‚емfl от‚ет‡ мех‡ническо„о или электическо„о поцесс‡ после пе則чи ком‡н‰ы. Эти пио‰ные есусы использлись ‚ пошлом, и некотоые из них были ‚не‰ены ‚ коммеческую ‰еflтельность. О‰н‡ко есть несколько не‰ост‡тко‚ т‡ко„о по‰х. Поцесс обычно ме‰ленный, и если необхо‰имо, о‰ин и тот же случ‡йный поток не может быть по‚тоен.
K.2. Гене‡то пс傉ослуч‡йных чисел (PRNG) Случ‡йный поток бито‚ может быть получен с использнием ‰етемининно„о поцесс‡ пи ‚‚е‰ении коотко„о случ‡йно„о поток‡ (н‡ч‡льно„о числ‡). Гене‡то пс傉ослуч‡йных чисел пименflет т‡кой по‰хо‰. С„енеио670
Пиложение K
Гене‡то случ‡йных чисел
‚‡нное число не случ‡йно, потому что поцесс, котоый е„о со片ет, ‰етеминин. Гене‡тоы пс傉ослуч‡йных чисел мо„ут быть ‡з‰елены н‡ ‰‚е шиоких к‡те„оии: кон„уэнтные „ене‡тоы и „ене‡тоы, использующие киптфические шифы. Мы обсу扇ем некотоые „ене‡тоы ‚ к‡ж‰ой к‡те„оии.
Кон„уэнтные „ене‡тоы Несколько мето‰о‚ используют некотоые кон„уэнтные отношениfl. Линейный кон„уэнтный „ене‡то В инфом‡тике с‡м‡fl общ‡fl мето‰ик‡ ‰лfl то„о, чтобы поиз‚о‰ить пс傉ослуч‡йные числ‡, — линейный кон„уэнтный мето‰, ‚‚е‰енный Лехмеом (Lehmer). Рисунок K.2 пок‡зы‚‡ет этот мето‰, котоый екуси‚но со片ет после‰о‚‡тельность пс傉ослуч‡йных чисел, используfl линейное кон„уэнтное у‡‚нение xi+1 = (axi + b) mod n, „‰е x0 н‡зы‚‡етсfl н‡ч‡льным числом (seed) — это число меж‰у 0 и n – 1.
Рис. K.2. Линейный кон„уэнтный „ене‡то пс傉ослуч‡йных чисел После‰о‚‡тельность fl‚лflетсfl пеио‰ической, „‰е пеио‰ з‡‚исит от то„о, к‡к тщ‡тельно ‚ыб‡ны коэффициенты a и b. И‰е‡льно пеио‰ ‰олжен быть т‡ко„о ‡зме‡, к‡к мо‰уль n. Пиме K.1 Пе‰положим a = 4, b = 5, n = 17 и xi0 = 7. После‰о‚‡тельность — 16, 1, 9, 7, 16, 1, 9, 7..., кото‡fl есть fl‚но неу‰о‚лет‚оительн‡fl пс傉ослуч‡йн‡fl после‰о‚‡тельность; еfi пеио‰ — только 4. Китеии. Длfl пиемлемо„о „ене‡то‡ пс傉ослуч‡йных чисел (PRNG) ‚ течение пошлых нескольких ‰есflтилетий были ‡з‡бот‡ны несколько китеие‚. 1. Пеио‰ ‰олжен быть ‡‚ен n (мо‰улю). Это озн‡ч‡ет, что пеж‰е чем целые числ‡ ‚ после‰о‚‡тельности н‡чин‡ют по‚тоflтьсfl, ‰олжны быть с„енеины ‚се целые числ‡ меж‰у 0 и n – 1. 2. После‰о‚‡тельность ‚ к‡ж‰ый пеио‰ ‰олжн‡ быть случ‡йн‡. 3. Поцесс „ене‡ции ‰олжен быть у‰обен ‰лfl е‡лиз‡ции н‡ компьютее. Большинст‚о компьютео‚ се„о‰нfl эффекти‚но, к‡ пименflетсfl ‡ифметик‡, использующ‡fl сл по 32 бит‡. 671
Кус
Киптфиfl и безоп‡сность сетей
Рекоме퉇ции, осннные н‡ пе‰ы‰ущих китеиflх: екомен‰уетсfl ‚ыб‡ть коэффициенты кон„уэнтно„о у‡‚нениfl и зн‡чениfl мо‰улfl исхо‰fl из сле‰ующих сооб‡жений. 1. Оптим‡льный ‚ыбо мо‰улfl, n, — это н‡ибольшее постое число, близкое к ‡змеу сл, используемо„о ‚ компьютее. Рекомен‰уетсfl использть ти‰ц‡ть пе‚ое постое число Месенны к‡к мо‰уль: n = M31 = 231 – 1. 2. Чтобы со片‚‡ть пеио‰, ‡‚ный зн‡чению мо‰улfl, зн‡чение пе‚о„о коэффициент‡, a, ‰олжно быть пе‚ооб‡зным конем „л‡‚но„о мо‰улfl. Хотfl целое число 7 — пе‚ооб‡зный коень M31, екомен‰уют использть 7k, „‰е k — целое число, ‚з‡имно-постое с (M31 – 1). Некотоые екомен‰о‚‡нные зн‡чениfl ‰лfl k — это 5 и 13. Это озн‡ч‡ет, что (a = 75) или (a = 713). 3. Вто‡fl екоме퉇циfl: ‰лfl эффекти‚но„о пименениfl компьюте‡ зн‡чение ‚тоо„о коэффициент‡ b ‰олжно быть нуле‚ым. Линейный кон„уэнтный „ене‡то: xi+1 = axi mod n, „‰е n = 231 – 1 и a = 75 или a = 713 Безоп‡сность. После‰о‚‡тельность, с„енеинн‡fl линейным кон„уэнтным у‡‚нением, пок‡зы‚‡ет пиемлемую случ‡йность (если сле‰о‚‡ть пе‰ы‰ущим екоме퉇циflм). После‰о‚‡тельность полезн‡ ‚ некотоых пиложениflх, „‰е тебуетсfl только случ‡йность (т‡ких к‡к мо‰елиние); он‡ бесполезн‡ ‚ киптфии, „‰е жел‡тельны и случ‡йность, и безоп‡сность. Поскольку число n обще‰оступно, после‰о‚‡тельность может быть ‡т‡ко‚‡н‡ Е‚ой с использнием о‰ной из ‰‚ух ст‡те„ий: a. если Е‚‡ зн‡ет зн‡чение н‡ч‡льно„о числ‡ (x0) и коэффициент a, он‡ может ле„ко ‚осст‡но‚ить целую после‰о‚‡тельность; b. если Е‚‡ не зн‡ет зн‡чение x0 и a, он‡ может пеех‚‡тить пе‚ые ‰‚‡ целых числ‡ и использть сле‰ующие ‰‚‡ у‡‚нениfl, чтобы н‡йти x0 и a: x1 = ax0 mod n x2 = ax1 mod n Гене‡то ꂇ‰‡тичных ‚ычето‚ Чтобы получить менее пе‰ск‡зуемую пс傉ослуч‡йную после‰о‚‡тельность, был ‚‚е‰ен „ене‡то ꂇ‰‡тичных ‚ычето‚ (см. лекцию 9), xi+1 = xi2 mod n, „‰е x0 н‡зы‚‡ют н‡ч‡льным числом, — число меж‰у 0 и n –1. Гене‡то Blum Blum Shub Постой, но эффекти‚ный мето‰ со片ниfl „ене‡то‡ пс傉ослуч‡йных чисел н‡з‚‡н Blum Blum Shub (BBS) по имени е„о тех изобет‡телей. BBS использует у‡‚нение ꂇ‰‡тично„о ‚ычет‡, но это — пс傉ослуч‡йный „ене‡то бит ‚место „ене‡то‡ пс傉ослуч‡йных чисел; он „енеиует после‰о‚‡тельность бито‚ (0 или 1). Рисунок K.3 пок‡зы‚‡ет и‰ею это„о „ене‡то‡. Ниже пи‚е‰ены ш‡„и „ене‡ции. 1. Н‡й‰ите ‰‚‡ больших постых числ‡ p и q ‚ фоме 4k + 3, „‰е k — целое число (p и q fl‚лflютсfl кон„уэнтными 3 mod 4) . 672
Пиложение K
Гене‡то случ‡йных чисел
2. Выбеите мо‰уль n = p × q. 3. Выбеите случ‡йное целое число r, котоое fl‚лflетсfl ‚з‡имно-постым с n. 4. Вычислите н‡ч‡льное число к‡к x0 = r2 mod n. 5. С„енеиуйте после‰о‚‡тельность x i+1 = x i 2 mod n. 6. Возьмите с‡мый м뇉ший бит с„енеинно„о случ‡йно„о цело„о числ‡ (LSB — Least Significant Bit) к‡к случ‡йный бит.
Рис. K.3. Blum Blum Shub (BBS) „ене‡то пс傉ослуч‡йных чисел Безоп‡сность. Может быть ‰ок‡з‡но, что если p и q из‚естны, i-тый бит ‚ после‰о‚‡тельности можно н‡йти к‡к с‡мый м뇉ший бит: xi = x02i mod[(p - 1)(q - 1)]mod n Это озн‡ч‡ет, что если Е‚‡ зн‡ет зн‡чение p и q, он‡ может н‡йти зн‡чение iто„о бит‡, побуfl ‚се ‚озможные зн‡чениfl n (зн‡чение n обычно обще‰оступно). Тем с‡мым сложность у это„о „ене‡то‡ — т‡ же с‡м‡fl, к‡к у ‡зложениfl н‡ множители n. Если n fl‚лflетсfl ‰ост‡точно большим, после‰о‚‡тельность безоп‡сн‡ (непе‰ск‡зуем‡). Было ‰ок‡з‡но, что пи очень большом n Е‚‡ не может пе‰ск‡з‡ть зн‡чение сле‰ующе„о бит‡ ‚ после‰о‚‡тельности, ‰‡же если он‡ зн‡ет зн‡чениfl ‚сех пе‰ы‰ущих бито‚. Веоflтность к‡ж‰о„о пинflтиfl зн‡чений ‰лfl к‡ж‰о„о бит‡, 0 или 1, — очень близк‡ к 50 поцент‡м. Безоп‡сность BBS 燂исит от ту‰ности ‡зложениfl н‡ множители n.
Гене‡тоы н‡ осно‚е киптфической системы Киптфические системы, т‡кие к‡к шиф ‰лfl поцесс‡ шифниfl или хэш-функциfl, мо„ут т‡кже быть использны ‰лfl „ене‡ции случ‡йно„о поток‡ бито‚. Мы к‡тко пок‡жем ‰‚е системы, котоые пименflют ‡л„оитмы шифниfl. ANSI X9.17 „ене‡то пс傉ослуч‡йных чисел (PRNG) ANSI X9.17 опе‰елflет киптфически сильный „ене‡то пс傉ослуч‡йных чисел, использующий тойной 3DES с ‰‚умfl ключ‡ми (шиф‡циfl – ‰ешиф‡циfl – шиф‡циfl), исунок K.4 иллюстиует этот поект. Об‡тите ‚ним‡ние, что пе‚ое пс傉ослуч‡йное число это — 64-бито‚ое н‡ч‡льное число, используемое к‡к иницииующий ‚екто (IV); ост‡льн‡fl ч‡сть пс傉ослуч‡йных чисел использует н‡ч‡льное число, пок‡з‡нное к‡к сле‰ующие IV. Т‡кой же ключ 673
Кус
Киптфиfl и безоп‡сность сетей
з‡секеч肇ниfl н‡ 112 бито‚ (K1 и K2 ‚ 3DES) пименflетсfl ‰лfl ‚сех тех 3DESшифо‚.
Рис. K.4. ANSI X9.17 „ене‡то пс傉ослуч‡йных чисел Н‡ ис. K.4 конфи„у‡циfl — ежим сцеплениfl блоко‚ шифнно„о текст‡ (CBC), котоый мы опис‡ли со„л‡сно ис. 8.3 ‚ лекции 8. Режим X9.17 пименflет ‰‚‡ к‡сꇉ‡ фоминиfl цепочки блок‡. Исхо‰ный текст ‰лfl к‡ж‰о„о к‡сꇉ‡ поступ‡ет от ‚ых пе‚о„о 3DES, котоый использует ‰‡ту и ‚емfl к‡к исхо‰ный текст н‡ 64 бит‡. З‡шифнный текст, со片нный ‚тоым 3DES, — случ‡йное число; з‡шифнный текст, со片нный тетьим 3DES, – сле‰ующий иницииующий ‚екто IV ‰лfl сле‰ующе„о случ‡йно„о числ‡. Сто„ость X9.17 опе‰елflетсfl сле‰ующими ф‡кт‡ми. 1. Ключ — 112 (2 × 56) бит. 2. В‚о‰ ‰‡ты и ‚емени н‡ 64 бит‡ обеспеч肇ет хоошую метку ‚емени, пе‰от‚‡щ‡ющую ‡т‡ку ‚оспоиз‚е‰ениfl. 3. Систем‡ обеспеч肇ет пе‚осхо‰ный эффект ‡ссе肇ниfl и пеемеш肇ниfl с помощью шести шифний и тех ‰ешифний. PGP „ене‡то пс傉ослуч‡йных чисел (PRNG) PGP (очень хоош‡fl конфи‰енци‡льность) беет ту же с‡мую и‰ею, что и X9.17 с несколькими изменениflми. Сн‡ч‡л‡ PGP PRNG использует семь к‡ск‡‰о‚ ‚место ‰‚ух. Втоое: шиф fl‚лflетсfl или IDEA, или CAST 128 (не ‡ссмотенный ‚ этой кни„е). Тетье: ключ — обычно 128 бито‚. PGP PRNG со片ет ти случ‡йных числ‡ н‡ 4 бит‡: пе‚ое используетсfl к‡к иницииующий ‚екто IV секетности (‰лfl с‚flзи, ‡бот‡ющей с PGP, но не ‰лfl PRNG), ‚тоой и тетий конк‡тениуютсfl, чтобы со片ть секетный ключ 128 бито‚ (‰лfl с‚flзи, ‡бот‡ющей PGP). Рисунок K.5 пок‡зы‚‡ет эскиз PGP PRNG. Сто„ость PGP PRNG з‡674
Пиложение K
Гене‡то случ‡йных чисел
‰‡н‡ ‚ ‡змее е„о ключ‡ и ‚ том, что ои„ин‡л IV (н‡ч‡льное число) и ключ з‡секеч肇ниfl н‡ 128 бито‚ мо„ут быть с„енеины от 24-б‡йто‚ой истинно случ‡йной пееменной.
Рис. K.5. PGP-„ене‡то пс傉ослуч‡йных чисел
675
Кус
Киптфиfl и безоп‡сность сетей
Пиложение L. Сложность L.1. Сложность ‡л„оитм‡ В киптфии мы ну扇емсfl ‚ инстументе ‰лfl ‡н‡лиз‡ ‚ычислительной сложности ‡л„оитм‡. Н‡м нужно, чтобы ‡л„оитмы шифниfl (или ‰ешифниfl) имели низкий уо‚ень сложности (были эффекти‚ными). Еще усло‚ие: чтобы ‡л„оитм, с точки зениfl кипто‡н‡лиз‡ (пеех‚‡т‡ к), имел ‚ысокий уо‚ень сложности (был не эффекти‚ен). Ду„ими слми, мы хотим ‚ыполнflть шифние и ‰ешифние к‡к можно быстее, но чтобы злоумышленник пи этом не смо„ ник‡, ‰‡же с использнием компьюте‡, ‡сшифть сообщение. Сложность ‡л„оитм‡ обычно б‡зиуетсfl н‡ ‰‚ух тип‡х есусо‚. Пост‡нст‚енн‡fl сложность ‡л„оитм‡ ‡ссм‡т肇ет объем п‡мflти, кото‡fl ‰олжн‡ х‡нить ‡л„оитм (пмму) и ‰‡нные. Сложность по ‚емени ‡л„оитм‡ ‡ссм‡т肇ет сумму ‚емени, необхо‰имую ‰лfl ‚ыполнениfl ‡л„оитм‡ (пммы) от н‡ч‡л‡ ‰о получениfl езульт‡т‡.
Сложность побито‚ой опе‡ции В ост‡льной ч‡сти это„о пиложениfl мы бу‰ем „о‚оить только о сложности по ‚емени, кото‡fl имеет большее ‚лиflние н‡ ‡боту ‡л„оитм‡, поскольку этот более общий пок‡з‡тель к тому же поще измеflть. Сложность по ‚емени ‡л„оитм‡ з‡‚исит от конкетно„о компьюте‡ — то„о, н‡ котоом ‡л„оитм ‰олжен быть ‚ыполнен. Чтобы с‰ел‡ть сложность не燂исимой от компьюте‡, был‡ опе‰елен‡ сложность побито‚ой опе‡ции f (nb), — он‡ по‰считы‚‡ет число элемент‡ных опе‡ций, котоые ‰олжен ‚ыполнить компьюте, чтобы со片ть езульт‡т пи n,b-бито‚ом ‚‚о‰е. Элемент‡н‡fl об‡ботк‡ бит‡ — это ‚емfl, котоое тебуетсfl компьютеу, чтобы сложить, ‚ычит‡ть, умнож‡ть или ‰елить ‰‚‡ е‰инст‚енных бит‡ или с‰‚脇ть е‰инст‚енный бит. Пиме L.1 К‡к сложность побито‚ой опе‡ции, кото‡fl ‚ыполнflет функцию сложениfl ‰‚ух целых чисел? Решение Сложность опе‡ции — f (nb) = nb, „‰е nb — число бито‚, котоые пе‰ст‡‚лflют большое целое число. Если зн‡чение это„о числ‡ — N, то nb = log2 N. Пиме L.2 К‡к сложность побито‚ой опе‡ции ‰лfl функции, кото‡fl умнож‡ет ‰‚‡ целых числ‡? Решение Хотfl се„о‰нfl есть более быстые ‡л„оитмы умножениfl ‰‚ух целых чисел, т‡‰иционно число ‡зfl‰ных опе‡ций пе‰по뇄‡ет, что эт‡ сложность ‡‚н‡ nb2, „‰е nb — число бито‚, пе‰ст‡‚лflющих большее целое число. Сложность поэтому — f (nb) = nb2. 676
Пиложение L
Сложность
Пиме L.3 К‡к сложность побито‚ой опе‡ции ‰лfl функции, ск뇉ы‚‡ющей ‰‚‡ целых числ‡, к‡ж‰ое из котоых со‰ежит d ‰есflтичных циф? Решение М‡ксим‡льное зн‡чение множест‚‡ циф d ‡зfl‰но„о ‰есflтично„о числ‡ — N = 10d – 1 или N ≈ 10d. Биты ‚о ‚хо‰ном сло‚е — nb = log2 N = log210d =, d × log 2 10. Т‡ сложность ‡‚н‡ f (nb) = d × log 2 10. Н‡пиме, если d = 300 циф, f (nb) = 300 log2l0 ≈ 997 побитных опе‡ции. Пиме L.4 К‡к сложность побито‚ой опе‡ции ‰лfl функции, кото‡fl ‚ычислflет B = AC (если A
Кус
Киптфиfl и безоп‡сность сетей
f1(nb) = 5 × 2nb + 5nb и f2(nb) = 2nb + 4 К‡ nb м‡ло, эти ‰‚‡ ‡л„оитм‡ ‚е‰ут себfl ин‡че, к‡ nb fl‚лflетсfl большим (пиблизительно 1000). В после‰нем случ‡е ‰‚‡ ‡л„оитм‡ ‚е‰ут себfl почти о‰ин‡ко‚о. Пичин‡ ‚ том, что элементы 5, 5nb и 4 н‡столько м‡лы по с‡‚нению с элементом 2nb, что они мо„ут полностью и„ноитьсfl. Мы можем ск‡з‡ть, что ‰лfl больших nb f1(nb) = f2(nb) = 2nb. Ду„ими слми, мы интеесуемсfl f(nb), к‡ nb пиближ‡етсfl к бесконечности. Большие O-нот‡ции Пимени‚ ‡симптотическую сложность, мы можем опе‰елить ст‡н‰‡тный м‡сшт‡б сложности функций с ‰искетными зн‡чениflми пееменных и опе‰елить сложность ‡л„оитм‡, используfl о‰но из этих зн‡чений. О‰ин из общих ст‡н‰‡то‚ н‡зы‚‡етсfl большой O-нот‡цией (Big O-Notation). В этом ст‡н‰‡те f(nb) = O(g (nb)), „‰е g(nb) — функциfl nb, полученн‡fl из f(nb) с использнием сле‰ующих тех теоем. • П傇fl теоем‡. Если мы можем н‡йти конст‡нту K, т‡кую, что f(nb) < K × g (nb), то мы имеем f(nb) = O (g (nb)). Эт‡ теоем‡ может быть ле„ко е‡лизн‡, если пименить сле‰ующие ‰‚‡ постых ил‡. a. Уст‡но‚ите коэффициенты nb ‚ функции f(nb) н‡ 1. b. Сох‡ните н‡ибольший элемент ‚ f(nb) к‡к g (nb) и у‰‡лите ‰у„ие. Элементы оцен肇ютсfl от н‡иболее низко„о к с‡мому ‚ысокому, к‡к это пок‡з‡но ниже: (1). (log nb), (nb), (nb log nb), (nb log nb log lognb), (nb2), (nb3),……, (nbk), (2nb), (nb!) • Вто‡fl теоем‡. Если f1(nb) = O (g1 (nb)) и f2(nb) = O (g2 (nb)), то f1(nb) + f2(nb)= O (g1 (nb) + g2 (nb) ) • Тетьfl теоем‡. Если f1(nb) = (g1 (nb)) и f2(nb) = O (g2 (nb)), то f1(nb) × f2(nb)= O (g1 (nb) × g2 (nb) ) Пиме L.6 Н‡й‰ите большие O-нот‡ции ‰лfl f(nb) = nb5 + 3 nb2 + 7. Решение Об‡тите ‚ним‡ние, что f(nb) = nb5 + 3 nb2 + 7 nb0. Пименение пе‚о„о ил‡ пе‚ой теоемы ‰‡ет g(nb) = nb5+ nb2+ 1. Пименение ‚тоо„о ил‡ ‰‡ет н‡м g(nb) = nb5. Больш‡fl O-нот‡циfl — O (nb5). Пиме L.7 Н‡й‰ите большие O-нот‡ции ‰лfl f(nb)= (2nb + nb5) + (nb log2 nb). Решение Мы имеем f1(nb)= (2nb + nb5) и f2(nb) = (nb log2 nb). Поэтому g1(nb) = 2nb и g2(nb) = nb log2 nb. Пименflfl ‚тоую теоему, мы имеем g(nb)= 2nb + . nb log2 nb. Сн пименflfl пе‚ую теоему, мы получ‡ем g(nb) = 2nb. Больш‡fl O-нот‡циfl — O(2nb). 678
Пиложение L
Сложность
Пиме L.8 Н‡й‰ите Большую O-нот‡цию ‰лfl f(nb) = nb! (nb ф‡ктои‡л). Решение Мы зн‡ем nb! = nb! × (nb! – l) ×…….× 2 × l. К‡ж‰ый элемент имеет м‡ксим‡льную сложность O(nb). Со„л‡сно тетьей теоеме, полн‡fl сложность — nb ‡з O(nb), или O(nbnb). Ие‡хиfl сложности Пе‰ы‰ущее обсуж‰ение поз‚олflет н‡м ‡нжить ‡л„оитмы, осннные н‡ их сложности побито‚ой опе‡ции. Т‡блиц‡ L.1 ‰‡ет общие уо‚ни ие‡хии, используемые ‚ лите‡туе. Т‡блиц‡ L.1. Ие‡хиfl сложностей и большие O-нот‡ции (Big-O-notations) Ие‡хиfl Конст‡нт‡ Лифмическ‡fl Полином Субэкспоненци‡льн‡fl
Больш‡fl- O-нот‡циfl O (1) O (log nb) O (nc), „‰е c — конст‡нт‡ O (2p(log nb)), „‰е p — полином ‚ log nb
Экспоненци‡льн‡fl
O (2 b)
Супеэкспоненци‡льн‡fl
O(nbnb) или O(22 b)
n
n
Ал„оитм с постоflнной, лифмической и полиноми‡льной сложностью счит‡ют ‚ыполнимым ‰лfl любо„о ‡зме‡. Ал„оитм с пок‡з‡тельной и супеэкспоненци‡льной сложностью счит‡ют неосущест‚имым, если nb очень большое. Ал„оитм с субэкспоненци‡льной сложностью (т‡кой к‡к O(2(log nb)2)) ‚ыполним, если nb не fl‚лflетсfl очень большим. Пиме L.9 К‡к пок‡з‡но ‚ пимее L.4, сложность обычно„о ‚оз‚е‰ениfl ‚ степень — n n f(nb) = 2 b × nb2. Больш‡fl O-нот‡циfl ‰лfl это„о ‡л„оитм‡ — O (2 b × nb2), больше, чем пок‡з‡тельный. Этот ‡л„оитм неосущест‚им, если nb ‚ыб‡ть очень большим. Пиме L.10 К‡к пок‡з‡но ‚ пимее L.5, сложность бысто„о пок‡з‡тельно„о ‡л„оитм‡ f (nb) = 2nb3 больш‡fl O(nb3)-нот‡циfl ‰лfl это„о ‡л„оитм‡, кото‡fl fl‚лflетсfl полиноми‡льной. Этот ‡л„оитм ‚ыполним; он используетсfl ‚ киптфической системе RSА. Пиме L.11 Пе‰положим, что киптфическ‡fl систем‡ имеет ‰лину ключ‡ nb бит. Чтобы по‚ести ‡т‡ку „убой силы ‰лfl этой системы, поти‚ник ‰олжен по‚еn n ить 2 b ‡зличных ключ‡. Это озн‡ч‡ет, что ‡л„оитм ‰олжен пойти 2 b ш‡„о‚.Если N — число побитных опе‡ций ‰лfl к‡ж‰о„о ш‡„‡, сложность ‡л„оитм‡ 679
Кус
Киптфиfl и безоп‡сность сетей n
‰олжн‡ быть f(nb) = N × 2 b. Д‡же если N — конст‡нт‡, сложность это„о ‡л„оитn м‡ пок‡з‡тельн‡, O(2 b). Поэтому ‰лfl большо„о nb ‡т‡к‡ неосущест‚им‡. В лекции 6 мы ‚и‰ели, что DES с ключом н‡ 56 бито‚ уflз‚имы к ‡т‡ке „убой силы, но ‰лfl 3DES с ключом 112 бит он‡ неосущест‚им‡. В лекции 7 мы т‡кже убе‰ились, что AES с ключом н‡ 128 бито‚ имеет иммунитет к этой ‡т‡ке.
L.2. Сложность поблемы Теоиfl сложности т‡кже ‡ссм‡т肇ет ‚опос опе‰елениfl сложности поблемы ‰о то„о, к‡к ‡л„оитм бу‰ет ‡з‡бот‡н. Чтобы оценить сложность поблем, мо„ут использтьсfl ‰‚е ‚есии теоетических м‡шин Тьюи턇: ‰етемининн‡fl и не‰етемининн‡fl. Не‰етемининн‡fl м‡шин‡ может ешить более ту‰ные поблемы по‰боом пе‚о„о ешениfl и з‡тем е„о по‚екой.
Д‚е шиоких к‡те„оии Теоиfl сложности ‰елит ‚се поблемы н‡ ‰‚е шиоких к‡те„оии: не‡зешимые поблемы и ‡зешимые поблемы. Не‡зешимые поблемы Не‡зешим‡fl поблем‡ — поблем‡, ‰лfl котоой нет ‡л„оитм‡ ешениfl. Ал‡н Тьюин„ пок‡з‡л, что из‚естн‡fl поблем‡ ост‡но‚ки не‡зешим‡. Поблем‡ ост‡но‚ки может быть посто изложен‡ сле‰ующим об‡зом: «Если ‰‡но опис‡ние ‡л„оитм‡, ‚хо‰н‡fl инфом‡циfl и м‡шин‡ Тьюи턇, то нет ‡л„оитм‡, котоый мо„ бы опе‰елить, 燂ешитсfl ли к‡-нибу‰ь ‚ыполнение это„о ‡л„оитм‡ (ост‡но‚итсfl ли ‚ конечном счете м‡шин‡)». В м‡тем‡тике и инфом‡тике есть несколько не‡зешимых поблем. Р‡зешимые поблемы Поблем‡ ‡зешим‡, если может быть н‡пис‡н ‡л„оитм ‰лfl ешениfl этой поблемы. Соот‚етст‚ующий ‡л„оитм, о‰н‡ко, может быть или не быть ‚ыполнимым. Если поблем‡ может быть ешен‡ с использнием ‡л„оитм‡ полиноми‡льной сложности или меньше, это н‡зы‚‡етсfl ‡зешимой ‚ ‡зумное ‚емfl поблемой или посто ‡зумной поблемой (tractable problem). Если поблем‡ может быть ешен‡ с пименением ‡л„оитм‡ пок‡з‡тельной сложности, ее н‡зы‚‡ют не‡зешимой ‚ ‡зумное ‚емfl или тflжелой поблемой (intractable problem). P, NP и coNP. Теоиfl сложности ‰елит ‡зумные поблемы н‡ ти (‚озможно, н‡к뇉ы‚‡ющиесfl ‰у„ н‡ ‰у„‡) кл‡сс‡ — P, NP и coNP. К‡к пок‡з‡но н‡ ис. L.I, NP и coNP — пеекы‚‡ющиесfl, ‡ P-кл‡сс н‡хо‰итсfl н‡ пеесечении этих кл‡ссо‚. Поблемы ‚ кл‡ссе P (P — polynomial) полиноми‡льные и мо„ут быть ешены ‰етемининной м‡шиной Тьюи턇 ‚ полиноми‡льное ‚емfl. Поблемы NP кл‡сс‡ (NP — nondeterministic polynomial ‰лfl не‰етемининно„о полином‡) мо„ут быть ешены не‰етемининной м‡шиной Тьюи턇 ‚ полиноми‡льное ‚емfl. Поблемы ‚ кл‡ссе coNP (coNP — complementary nondeterministic polynomial — ‰ополнительно„о не‰етемининно„о полином‡) — т‡кие поблемы, котоые мо„ут быть ешены не‰етемининно путем ‰ополнениfl м‡шины Тьюи턇. Н‡680
Пиложение L
Сложность
пиме, поблем‡, кото‡fl еш‡ет, может ли целое число быть ‡зложено н‡ множители ‚ ‰‚‡ постых числ‡, есть ‰ополнение поблемы, кото‡fl может ешить, fl‚лflетсfl ли число постым. Ду„ими слми, ут‚еж‰ение «может быть ‡зложен н‡ множители» fl‚лflетсfl эк‚肇лентным ‰ок‡з‡тельст‚у «непостое число».
Рис. L.1. Кл‡ссы P, NP и coNP
L.3. Веоflтностные ‡л„оитмы Если поблем‡ тflжел‡fl, ‰лfl ее ешениfl мы можем н‡йти ‚еоflтностный ‡л„оитм. Хотfl ‚еоflтностные ‡л„оитмы не „‡‡нтиуют, что ешение с‚обо‰но от ошибок, ‚еоflтность ошибки может быть с‰ел‡н‡ очень м‡ленькой, с помощью по‚тоениfl ‡л„оитм‡ с пименением нескольких ‡зличных мето‚. Веоflтностные ‡л„оитмы мо„ут быть ‡з‰елены н‡ ‰‚е к‡те„оии: Монте-К‡ло и Л‡с-В儇с.
Ал„оитм Монте-К‡ло Ал„оитм Монте-К‡ло ‚ы‰‡ет ешениfl «‰‡/нет»: ‚ыхо‰ ‡л„оитм‡ fl‚лflетсfl или ‰‡, или нет. Ал„оитм Монте-К‡ло, смещенный к ДА, ‰‡ет езульт‡т ДА с ‚еоflтностью 1 (нет ошибки); он ‰‡ет езульт‡т НЕТ с ‚еоflтностью e (‚озможн‡fl ошибк‡). Смещенный к НЕТ, ‡л„оитм Монте-К‡ло, ‚ы‰‡fiт езульт‡т НЕТ с ‚еоflтностью 1 (нет ошибки); это ‰‡ет езульт‡т ДА с ‚еоflтностью e (‚озможн‡ ошибк‡). Мы ‡ссм‡и‚‡ли ‚еоflтностные мето‰ыи ‚ лекции 9. Ал„оитм Монте-К‡ло, смещенный к ДА, может по‚еить, fl‚лflетсfl ли целое число постым. Если ‡л„оитм ‚о炇щ‡ет «постое» мы у‚еены, что целое число fl‚лflетсfl постым; если он ‚о炇щ‡ет «сост‡‚ной объект», число может быть постым с очень небольшой ‚еоflтностью.
Ал„оитм Л‡с-В儇с‡ Ал„оитм Л‡с-В儇с‡ — ‡л„оитм, котоый либо успешен, либо ошибочен. Если он успешен, он ‚с儉‡ ‚о炇щ‡ет ильный от‚ет. Если он тепит неу‰‡чу, никто з‡ это не от‚еч‡ет.
681
Кус
Киптфиfl и безоп‡сность сетей
Пиложение M. ZIP PGP (лекциfl 16) использует мето‰ику сж‡тиfl ‰‡нных ZIP, со片нную Джином Гэйлеем, М‡ком А‰иом и Рич‡‰ом Уользом. Он‡ б‡зиуетсfl н‡ ‡л„оитме, н‡зы‚‡емом LZ77 (Lempel-Ziv 77), котоый был изобетен Дж‡копом Зи‚ом (Jacop Ziv) и Аб‡х‡мом Лемпэлем (Abraham Lempel). В этом пиложении мы к‡тко обсу扇ем LZ77 к‡к осно‚у ZIP.
М. 1. Ко‰иние LZ77 Ко‰иние LZ77 — пиме ко‰иниfl н‡ осно‚е слfl. И‰еfl ‚ том, что нужно со片ть сль (т‡блицу) сток, используемых ‚ течение се‡нс‡ с‚flзи. Если и пе則тчик, и пиемник имеют копию слfl, то уже ‚стеч‡‚шиесfl стоки мо„ут быть з‡менены их ин‰екс‡ми ‚ сле, чтобы уменьшить количест‚о пе則нной инфом‡ции. Хотfl и‰еfl к‡жетсfl постой, он‡ ‰о‚ольно сложн‡ ‚ е‡лиз‡ции. Пе‚ое: к‡к со片ть сль ‰лfl к‡ж‰о„о се‡нс‡? Он не может быть уни‚ес‡льным из-з‡ с‚оей ‰лины. Втоое: к‡к пиемник может пиобести сль, со片нный пе則тчиком? Если ‚ы пе則ете сль, ‚ы посыл‡ете ‰ополнительные ‰‡нные, котоые ‚е‰flт цели сж‡тиfl. П‡ктический ‡л„оитм, котоый использует и‰ею ‡‰‡пти‚но„о ко‰иниfl н‡ осно‚е слfl, — LZ77-‡л„оитм. Мы пи‚о‰им осно‚ную и‰ею это„о ‡л„оитм‡ с пимеом, но не коп‡емсfl ‚ ‰ет‡лflх ‡зличных ‚есий и е‡лиз‡ций. В н‡шем пимее пе‰положим, что н‡м нужно пе則ть сле‰ующую стоку. Мы ‚ыб‡ли эту стоку, чтобы упостить обсуж‰ение. BAABABBBAABBBBAA Длfl н‡шей постой ‚есии LZ77-‡л„оитм‡ поцесс ‡з‰елен н‡ ‰‚е ф‡зы: сж‡тие стоки и ‡сшиение (‰екомпессиfl стоки).
Сж‡тие В этой ф‡зе есть ‰‚‡ ллельных событиfl: со片ние ин‰ексинно„о слfl и сж‡тие стоки сим‚оло‚. Ал„оитм из‚лек‡ет из п‡мflти несж‡тую стоку, у котоой н‡именьш‡fl по‰сток‡ — т‡, что не может быть н‡й‰ен‡ ‚ сле. З‡тем ‡л„оитм сох‡нflет копию этой по‰стоки ‚ сле (к‡к но‚ый ‚хо‰) и н‡зн‡ч‡ет зн‡чение ин‰екс‡. Сж‡тие ‚озник‡ет, к‡ по‰сток‡, если это не после‰ний сим‚ол, з‡менен‡ ин‰ексом, н‡й‰енным ‚ сле. Поцесс з‡тем ‚ст‡‚лflет ин‰екс и после‰ний сим‚ол по‰стоки ‚ сж‡тую стоку. Н‡пиме, если по‰сток‡ — ABBB, ‚ы ищете ‚ сле ABB. Вы н‡хо‰ите, что ин‰екс ‰лfl ABB — 4; сж‡т‡fl по‰сток‡ поэтому бу‰ет 4B. Рисунок М.1 пок‡зы‚‡ет поцесс ‰лfl н‡шей типо‚ой стоки. Р‡ссмотим несколько ш‡„о‚ н‡ ис. М.1. • Ш‡„ 1. Поцесс из‚лек‡ет из пе‚он‡ч‡льной стоки н‡именьшую по‰стоку, котоый нет ‚ сле. Поскольку сль пуст, н‡именьший сим‚ол — 682
Пиложение M
ZIP
Рис. M.1. Пиме LZ77 ко‰иние о‰ин сим‚ол (пе‚ый сим‚ол B). Поцесс х‡нит е„о копию к‡к пе‚ый ‚хо‰ ‚ этом сле. Е„о ин‰екс – 1. Ч‡сть этой по‰стоки не может быть з‡менен‡ ин‰ексом из слfl (потому что это только о‰ин сим‚ол). Потому по683
Кус
Киптфиfl и безоп‡сность сетей
цесс ‚ст‡‚лflет B (без ин‰екс‡) ‚ сж‡тую стоку. Пок‡ сж‡т‡fl сток‡ имеет только о‰ин сим‚ол: B. Пе‚он‡ч‡льн‡fl сток‡ сох‡нflетсfl не ‚ сж‡том ‚и‰е — без пе‚о„о сим‚ол‡. • Ш‡„ 2. Поцесс из‚лек‡ет из ост‡‚шейсfl стоки сле‰ующую н‡именьшую по‰стоку, котоой нет ‚ сле. Эт‡ по‰сток‡ — сим‚ол A, котоый не н‡хо‰итсfl ‚ сле. Поцесс х‡нит копию это„о сим‚ол‡ к‡к ‚тоой ‚хо‰ ‚ сле. Ч‡сть этой по‰стоки не может быть з‡менен‡ ин‰ексом из слfl (потому что это только о‰ин сим‚ол). Поцесс ‚ст‡‚лflет ‚ сж‡тую стоку A. Тепеь сж‡т‡fl сток‡ имеет ‰‚‡ сим‚ол‡: B и A (мы пост‡‚или з‡пflтые меж‰у по‰сток‡ми ‚ сж‡той стоке, чтобы пок‡з‡ть ‡з‰еление). • Ш‡„ 3. Поцесс из‚лек‡ет из ост‡ющейсfl стоки сле‰ующую н‡именьшую по‰стоку, котоой нет ‚ сле. Эт‡ ситу‡циfl отлич‡етсfl от ‰‚ух пе‰ы‰ущих ш‡„о‚. Сле‰ующий сим‚ол (A) н‡хо‰итсfl ‚ сле, т‡к что поцесс из‚лек‡ет ‰‚‡ сим‚ол‡ (AB), ‡ этой комбин‡ции ‚ сле нет. Поцесс сох‡нflет копию AB к‡к тетий ‚хо‰ ‚ сль. Поцесс тепеь н‡хо‰ит ин‰екс ‚х ‚ сле и со片ет сж‡тую по‰стоку без после‰не„о сим‚ол‡ (AB без после‰не„о сим‚ол‡, т. е. без A). Ин‰екс ‰лfl комбин‡ции сж‡той стоки — 2, т‡к что поцесс ‚ст‡‚лflет ‚ сж‡тую стоку комбин‡цию 2B. • Ш‡„ 4. З‡тем поцесс из‚лек‡ет по‰стоку ABB (потому что и AB уже ‚ сле есть). Копиfl ABB сох‡нflетсfl ‚ сле с пис‚оением ин‰екс‡ 4. Поцесс н‡хо‰ит ин‰екс по‰стоки без после‰не„о сим‚ол‡ (AB) — это 3. В сж‡тую стоку ‚ст‡‚лflетсfl комбин‡циfl 3B. Вы, ‚озможно, з‡метили, что ‚ тех пе‰ы‰ущих ш‡„‡х мы ф‡ктически не ‰ости„ли ник‡ко„о сж‡тиfl, потому что з‡менили о‰ин сим‚ол о‰ним (‚ пе‚ом A н‡ A и B н‡ B ‚о ‚тоом ш‡„е) и ‰‚‡ сим‚ол‡ н‡ ‰‚‡ (AB н‡ 2B н‡ тетьем ш‡„е). Но н‡ этом ш‡„е мы ф‡ктически уменьшили число сим‚оло‚ (ABB ст‡л 3B). Если пе‚он‡ч‡льн‡fl сток‡ имеет мно„о по‚тоений (это пе‰положение се‰ли‚о ‚ большинст‚е случ‡е‚), мы можем з‡метно уменьшить число сим‚оло‚. К‡ж‰ый из ост‡ющихсfl ш‡„о‚ по‰обен о‰ному из пе‰ы‰ущих четыех ш‡„о‚, и мы пе‰ост‡‚лflем чит‡телю ‚озможность ‚ыполнить их с‡мому. Об‡тите ‚ним‡ние, что сль используетсfl пе則тчиком, чтобы н‡йти ин‰ексы. Е„о не пе則ют пиемнику; пиемник ‰олжен со片ть сль ‰лfl себfl с‡м, к‡к мы у‚и‰им это ‚ сле‰ующем ‡з‰еле.
Декомпессиfl Декомпессиfl — ин‚есиfl поцесс‡ сж‡тиfl. Поцесс из‚лек‡ет по‰стоки из сж‡той стоки и побует з‡менflть ин‰ексы соот‚етст‚ующими ‚хми ‚ сле, котоый ‚н‡ч‡ле fl‚лflетсfl пустым и со片етсfl постепенно. Г뇂ное, что к‡ ин‰екс получен, ‰‡лее 퇉о использть ‚хо‰ слfl к соот‚етст‚ующему ин‰ексу. Рисунок M.2 пок‡зы‚‡ет поцесс ‰екомпессии. Р‡ссмотим несколько ш‡„о‚ н‡ исунке М.2. • Ш‡„ 1. Ан‡лизиуетсfl п傇fl по‰сток‡ сж‡той стоки. Это — B без ин‰екс‡. Поскольку по‰сток‡ не н‡хо‰итсfl ‚ сле, он‡ ‰оᇂлflетсfl к слю. 684
Пиложение M
ZIP
Рис. M.2. Пиме LZ77-‰еко‰иниfl По‰сток‡ (B) ‚ст‡‚лflетсfl ‚ несж‡тую (‰екомпессинную) стоку. • Ш‡„ 2. Ан‡лизиуетсfl ‚то‡fl по‰сток‡ (A); ситу‡циfl т‡к‡fl же, к‡к и н‡ ш‡„е 1. Тепеь несж‡т‡fl сток‡ имеет ‰‚‡ сим‚ол‡ (BA), и сль имеет ‰‚‡ ‚х. 685
Кус
Киптфиfl и безоп‡сность сетей
• Ш‡„ 3. Ан‡лизиуетсfl тетьfl по‰сток‡ (2B). Поцесс ищет ‚ сле и з‡менflет ин‰екс 2 по‰стокой A. К несж‡той стоке ‰оᇂлflетсfl нfl по‰сток‡ (AB), и AB ‰оᇂлflетсfl к слю. • Ш‡„ 4. Ан‡лизиуетсfl чет‚ет‡fl по‰сток‡ (3B). Поцесс ищет ‚ сле и з‡менflет ин‰екс 3 с по‰стокой AB. По‰сток‡ ABB тепеь ‰оᇂлflетсfl к несж‡той стоке, и ABB ‰оᇂлflетсfl к слю. Мы не бу‰ем ‰ел‡ть ‡н‡лиз после‰них тех ш‡„о‚, ‡ ‰оᇂим к‡к 燉‡ние ‰лfl с‡мостоflтельных уп‡жнений. К‡к ‚ы з‡метили, мы используем ‰лfl обозн‡чениfl ин‰екс‡ ‰есflтичные числ‡, т‡кие, к‡к 1 или 2. В ‰ейст‚ительности ин‰екс з‡писы‚‡етсfl ‚ ‰‚оичном ‚и‰е (‚озможно, ‚ ‰‡нном случ‡е ‰линой 3) ‰лfl лучшей эффекти‚ности.
686
Пиложение N
Диффеенци‡льный и линейный кипто‡н‡лиз DES
Пиложение N. Диффеенци‡льный и линейный кипто‡н‡лиз DES В этом пиложении мы к‡тко обсу扇ем ‰‚е поблемы, котоые с‚flз‡ны с шифом DES, ‡ссмотенным ‚ лекции 6: ‰иффеенци‡льный и линейный кипто‡н‡лиз. Полное ‡ссмотение этих ‰‚ух поблем не‚озможно ‚ этой кни„е. Пиложение ‰‡ет общее пе‰ст‡‚ление и отсыл‡ет з‡интееснных чит‡телей к ‚озможностflм позн‡комитьсfl с поблемой поближе ‚ соот‚етст‚ующей лите‡туе.
N.1. Диффеенци‡льный кипто‡н‡лиз Диффеенци‡льный кипто‡н‡лиз ‰лfl DES был изобетен Бих‡мом (Biham) и Ш‡миом (Shamir). В этом кипто‡н‡лизе злоумышленник концентиуетсfl н‡ ‡т‡к‡х с ‚ыбокой исхо‰но„о текст‡. Ан‡лиз использует ‡зность ‚ похож‰ении ‡зличных ‚хо‰ных си„н‡ло‚ чеез устойст‚о или пмму шиф‡ции. Темин ‡зность з‰есь пименflетсfl, чтобы ‡ссмотеть с помощью опе‡ции ИСКЛЮЧАЮЩЕЕ ИЛИ несо‚ение ‰‚ух ‡зличных ‚хо‰ных сообщений (исхо‰ные тексты). Ду„ими слми, злоумышленник ‡н‡лизиует, к‡к P ⊕ P’ ‡злич‡ютсfl пи об‡ботке ‚ к‡ж‰ом ‡ун‰е.
Веоflтностные отношениfl И‰еfl относительно ‰иффеенци‡льно„о кипто‡н‡лиз‡ б‡зиуетсfl н‡ ‚еоflтностных отношениflх меж‰у ‚хо‰ными ‡зностflми и ‡зностflми ‚ых. Д‚‡ отношениfl пе‰ст‡‚лflют конкетный интеес ‚ ‡н‡лизе: ‰иффеенци‡льный поф‡йл и х‡‡ктеистик‡ ‡у퉇, к‡к это пок‡з‡но н‡ ис. N.1.
Рис. N.1. Диффеенци‡льный поф‡йл и х‡‡ктеистик‡ ‡у퉇 ‚ DES Диффеенци‡льный поф‡йл Диффеенци‡льный поф‡йл (он же поф‡йл ИСКЛЮЧАЮЩЕЕ ИЛИ) пок‡зы‚‡ет ‚еоflтностное отношение меж‰у ‚хо‰ными ‡зностflми и ‡зностflми ‚ых S-блок‡. Мы обсу扇ли этот поф‡йл ‰лfl посто„о S-блок‡ ‚ лекции 5 (см. т‡блицу 5.5). По‰обные поф‡йлы мо„ут быть со片ны ‰лfl к‡ж‰о„о из ‚осьми S-блоко‚ ‚ DES. 687
Кус
Киптфиfl и безоп‡сность сетей
Х‡‡ктеистик‡ ‡у퉇 Х‡‡ктеистик‡ ‡у퉇 по‰обн‡ ‰иффеенци‡льному поф‡йлу, но ‚ычислflетсfl ‰лfl цело„о ‡у퉇. Он‡ пок‡зы‚‡ет ‚еоflтность, с котоой о‰н‡ ‚хо‰н‡fl ‡зность соз‰‡л‡ бы ‡зность опе‰еленно„о ‚ых. Об‡тите ‚ним‡ние, что х‡‡ктеистик‡ о‰н‡ и т‡ же ‰лfl к‡ж‰о„о ‡у퉇, потому что любое отношение, котоое ‚ключ‡ет ‡зности, не 燂исит от ключей ‡у퉇. Рисунок N.2 пок‡зы‚‡ет четые ‡зличные х‡‡ктеистики ‡у퉇.
Рис. N.2. Некотоые х‡‡ктеистики ‡у퉇 ‰лfl ‰иффеенци‡льно„о кипто‡н‡лиз‡ Хотfl сущест‚ует мно„о х‡‡ктеистик ‰лfl ‡у퉇, исунок N.2 пок‡зы‚‡ет только четые из них. В к‡ж‰ой х‡‡ктеистике мы ‡з‰елили ‚хо‰ные ‡зности и ‡зности ‚ых ‚ ле‚ые и ые секции. ʇ扇fl л傇fl или ‡fl ‡зность состоflт из 32 бито‚ или ‚осьми шест퇉ц‡теичных циф. Все эти х‡‡ктеистики мо„ут быть н‡й‰ены использующими пмм‡ми, котоые мо„ут н‡йти отношение ‚х-‚ых ‚ ‡ун‰е DES. Рисунок N.2‡ пок‡зы‚‡ет, что ‚хо‰н‡fl ‡зность (x, 0000000016) ‰‡ет н‡ ‚ыхо‰е ‡зность (x, 0000000016) с ‚еоflтностью 1. Рисунок N.2б пок‡зы‚‡ет ту же с‡мую х‡‡ктеистику, к‡к исунок N.2‡, з‡ исключением то„о, что ле‚ые и ые ‚хо‰ и ‚ыхо‰ поменflлись мест‡ми; ‚еоflтность изменитсfl чез‚ыч‡йно. Рисунок N.2‚ пок‡зы‚‡ет, что ‚хо‰н‡fl ‡зность (4008000016, 0400000016) ‰‡ет ‡зность ‚ых (0000000016, 040000016) с ‚еоflтностью 1/4. Н‡конец, исунок N.2„ пок‡зы‚‡ет, что ‚хо‰н‡fl ‡зность (0000000016, 6000000016) ‰‡ет ‡зность ‚ых (0080820016 600000016) с ‚еоflтностью 14/64. Тех‡ун‰н‡fl х‡‡ктеистик‡ После со片ниfl и х‡нениfl о‰но‡ун‰ных х‡‡ктеистик ‡н‡лиз‡то может комбинить ‡зличное количест‚о ‡ун‰о‚, чтобы со片ть множест‚енную х‡‡ктеистику ‡у퉇. Рисунок N.3 пок‡зы‚‡ет случ‡й тех‡ун‰ной DES. 688
Пиложение N
Диффеенци‡льный и линейный кипто‡н‡лиз DES
Н‡ ис. N.3, мы использли ти смесителfl и только ‰‚‡ устойст‚‡ з‡мены, потому что после‰ний ‡ун‰ не ну扇етсfl ни ‚ к‡ком устойст‚е з‡мены, к‡к уже „о‚оилось ‚ лекции 5. Х‡‡ктеистики, пок‡з‡нные ‚ смесителflх пе‚ых и тетьих ‡ун‰о‚, те же с‡мые, к‡к и н‡ исунке N.2b. Х‡‡ктеистик‡ смесителfl ‚о ‚тоом ‡ун‰е — т‡ же с‡м‡fl, что и н‡ ис. N.2a. Очень интеесно отметить, что точки, ‚ этом конкетном случ‡е, ‡зности ‚х и ‚ых — те же с‡мые (ΔL3 = ΔL0 и ΔR3 = ΔR0).
Рис. N.3. Тех‡ун‰н‡fl х‡‡ктеистик‡ Шест퇉ц‡ти‡ун‰н‡fl х‡‡ктеистик‡ Длfl шиф‡ с шест퇉ц‡тью ‡у퉇ми можно скомпилить мно„о ‡зличных х‡‡ктеистик. Рисунок N.4 пок‡зы‚‡ет пиме. Н‡ этом исунке шиф DES состоит из ‚осьми секций с ‰‚умfl ‡у퉇ми. ʇ扇fl секциfl использует х‡‡ктеистики ‡ и б н‡ ис. N.2. Ясно, что если после‰ние ‡ун‰ы не имеют устойст‚‡ з‡мены, ‚хо‰ (x, 0) со片ет ‚ыхо‰ (0, x) с ‚еоflтностью (1/234) 8.
Ат‡к‡ Длfl пиме‡ пе‰положим, что Е‚‡ использует х‡‡ктеистику по исунку N.4, чтобы н‡п‡сть н‡ DES с шест퇉ц‡тью ‡у퉇ми. Е‚‡ к‡ким-то способом по‚оциует Алису, чтобы з‡шифть мно„о исхо‰ных тексто‚ ‚ фоме (x, 0), ‚ котоой л傇fl поло‚ин‡ — x (‡зличные зн‡чениfl) и ‡fl поло‚ин‡ — 0. Е‚‡ з‡тем сох‡нflет ‚се з‡шифнные тексты, полученные от Алисы, ‚ фоме (0, x). Об‡тите ‚ним‡ние, что 0 з‰есь озн‡ч‡ет 0000000016. 689
Кус
Киптфиfl и безоп‡сность сетей
Рис. N.4. Шест퇉ц‡ти‡ун‰н‡fl х‡‡ктеистик‡ ‰лfl ‰иффеенци‡льно„о кипто‡н‡лиз‡
Н‡хож‰ение ключ‡ шиф‡ Оконч‡тельн‡fl цель злоумышленник‡ ‚ ‰иффеенци‡льном кипто‡н‡лизе состоит ‚ том, чтобы н‡йти ключ шиф‡. Длfl это„о нужно н‡йти ключи к‡ж‰о„о ‡у퉇 от оснниfl ‰о ‚ешины (от K16 ‰о K1). Н‡хож‰ение после‰них ключей ‡у퉇 Если злоумышленник имеет ‰ост‡точно мно„о п‡ исхо‰но„о текст‡ / з‡шифнно„о текст‡ (к‡ж‰ый с ‡зличными зн‡чениflми x), он может использть отношениfl ‚ после‰нем ‡ун‰е, 0 = f(K16,x) и н‡йти некотоые из бито‚ ‚ K16. Это можно с‰ел‡ть, ‚ыби‡fl с‡мые ‚еоflтные зн‡чениfl. Н‡хож‰ение ‰у„их ключей ‡у퉇 Ключи ‰лfl ‰у„их ‡ун‰о‚ можно н‡йти, используfl ‰у„ие х‡‡ктеистики или пименflfl ‡т‡ки „убой силы.
Безоп‡сность Из‚естно, что необхо‰имы 247 ‚ыбоки п‡ исхо‰но„о текст‡ / з‡шифнно„о текст‡, чтобы н‡п‡сть н‡ DES с 16 ‡у퉇ми. Н‡йти т‡кое о„омное число 690
Пиложение N
Диффеенци‡льный и линейный кипто‡н‡лиз DES
‚ыб‡нных п‡ чез‚ыч‡йно ту‰но ‚ ситу‡циflх е‡льной жизни. Это озн‡ч‡ет, что DES неуflз‚имы ‰лfl это„о тип‡ ‡т‡ки.
N.2. Линейный кипто‡н‡лиз Линейный кипто‡н‡лиз ‰лfl DES был ‡з‡бот‡н М‡тцуи. Это — ‡т‡к‡ зн‡ниfl исхо‰но„о текст‡. Ан‡лиз использует ‡спост‡нение конкетно„о н‡бо‡ бито‚ чеез устойст‚о шифниfl.
Отношениfl линейности Линейный кипто‡н‡лиз оснн н‡ отношениflх линейности. В этом типе кипто‡н‡лиз‡ пе‰ст‡‚лflют интеес ‰‚‡ н‡бо‡ отношений: линейные поф‡йлы и х‡‡ктеистики ‡у퉇, к‡к пок‡з‡но н‡ ис. N.5.
Рис. N.5. Линейный поф‡йл и х‡‡ктеистик‡ ‡у퉇 ‚ DES Линейный поф‡йл Линейный поф‡йл пок‡зы‚‡ет уо‚ень линейности меж‰у ‚хо‰ом и ‚ыхо‰ом S-блок‡. Мы ‚и‰ели ‚ лекции 5, что ‚ S-блоке к‡ж‰ый бит ‚ых — функциfl ‚сех ‚хо‰ных бито‚. Жел‡тельное с‚ойст‚о ‚ S-блоке ‰ости„нуто, если к‡ж‰ый бит ‚ых — нелинейн‡fl функциfl ‚сех ‚хо‰ных бито‚. К сож‡лению, эт‡ и‰е‡льн‡fl ситу‡циfl не сущест‚ует ‚ DES; некотоые биты ‚ых — линейн‡fl функциfl некотоых комбин‡ций ‚хо‰ных бито‚. Ду„ими слми, можно н‡йти, что некотоые комбин‡ции бито‚ ‚х-‚ых мо„ут быть отоб‡жены меж‰у собой, используfl линейную функцию. Линейный поф‡йл пок‡зы‚‡ет уо‚ень линейности (или нелинейности) меж‰у ‚хо‰ом и ‚ыхо‰ом. Кипто‡н‡лиз может со片ть ‚осемь ‡зличных т‡блиц, по о‰ной ‰лfl к‡ж‰о„о S-блок‡, ‚ котоых пе‚ый столбец пок‡зы‚‡ет ‚озможные комбин‡ции ‚хо‰о‚ по шесть бит, 0016 ‰о 3F16. П傇fl сток‡ пок‡зы‚‡ет ‚озможные комбин‡ции ‚ыхо‰о‚ по четые бит‡, 016 ‰о F16. Вхо‰ы пок‡зы‚‡ют уо‚ень линейности (или нелинейности) ‰‡нно„о поект‡. Мы не можем у„лублflтьсfl ‚ ‰ет‡ли то„о, к‡к измеflетсfl уо‚ень линейности, но ‚хо‰ы с ‚ысоко„о уо‚нfl из линейности интеесны ‰лfl кипто‡н‡лиз‡. 691
Кус
Киптфиfl и безоп‡сность сетей
Х‡‡ктеистик‡ ‡у퉇 Х‡‡ктеистик‡ ‡у퉇 ‚ линейном кипто‡н‡лизе пок‡зы‚‡ет комбин‡ции ‚хо‰ных бито‚, бито‚ ключей ‡у퉇 и бито‚ ‚ых ‰лfl то„о, чтобы опе‰елить линейное отношение. Рисунок N.6 изоб‡ж‡ет ‰‚е ‡зличные х‡‡ктеистики ‡у퉇. Систем‡ обозн‡чений, используем‡fl ‰лfl к‡ж‰о„о случ‡fl, опе‰елflет биты, котоые ск뇉ы‚‡ютсfl по мо‰улю ‰‚‡. Н‡пиме, О (7, 8, 24, 29) озн‡ч‡ет опе‡цию исключ‡ющее ИЛИ 7-х, 8-х, 24-х и 29-х бито‚, ‚ыхо‰flщих из функции; K (22) озн‡ч‡ет 22-й бит ‚ ключе ‡у퉇; I (15) озн‡ч‡ет 15-й бит, ‚хо‰flщий ‚ функцию.
Рис. N.6. Некотоые х‡‡ктеистики ‡у퉇 ‰лfl линейно„о кипто‡н‡лиз‡ Ниже пок‡з‡ны отношениfl ‰лfl ч‡стей ‡ и б исунк‡ N.6, использующих ин‰и‚и‰у‡льные биты. Ч‡сть a: О (7) ⊕ О (8) ⊕ О (24) ⊕О (29) = I (15) ⊕ K (22) Ч‡сть b: F (15) = I (29) ⊕ K (42) ⊕ K (43) ⊕ K (45) ⊕ K (46) Тех‡ун‰н‡fl х‡‡ктеистик‡ После со片ниfl и х‡нениfl о‰но‡ун‰ных х‡‡ктеистик ‡н‡лиз‡то может комбинить ‡зличные ‡ун‰ы, чтобы со片ть множест‚енную х‡‡ктеистику ‡у퉇. Рисунок N.7 пок‡зы‚‡ет случ‡й тех‡ун‰ной DES, ‚ котоой ‡ун‰ы 1 и 3 используют о‰ну и ту же х‡‡ктеистику, к‡к это изоб‡жено н‡ ис. N.6‡, ‡ ‚ ‡ун‰е 2 использо‚‡н‡ поиз‚ольн‡fl х‡‡ктеистик‡. Цель линейно„о кипто‡н‡лиз‡ состоит ‚ том, чтобы н‡йти линейное отношение меж‰у некотоыми бит‡ми ‚ п‡е «исхо‰ный текст / з‡шифнный текст» и ключ. Д‡‚‡йте посмотим, можем ли мы уст‡но‚ить т‡кое отношение ‰лfl DES с 3-мfl ‡у퉇ми, изоб‡женной н‡ ис. N.7. Р‡ун‰ 1: R1 (7, 8, 24, 29) = L0 (7, 8, 24, 29) ⊕ Ro (15) ⊕K1 (22) Р‡ун‰ 3: L3 (7, 8, 24, 29) = L2 (7, 8,24, 29) ⊕ R2 (15) ⊕ K3 (22) Но L2 — тот же с‡мый, что и R1, и R2 — тот же с‡мый, что и R3. После з‡мены L2 н‡ R1 и R2 н‡ R3 ‚о ‚тоом отношении мы получим: L3 (7, 8, 24, 29) = R1, (7, 8, 24, 29) ⊕ R3 (15) ⊕ K3 (22) 692
Пиложение N
Диффеенци‡льный и линейный кипто‡н‡лиз DES
Рис. N.7. Тех‡ун‰ные х‡‡ктеистики ‰лfl линейно„о кипто‡н‡лиз‡ Мы можем з‡менить R1 н‡ е„о эк‚肇лентное зн‡чение ‚ ‡ун‰е 1, ‚ езульт‡те имеем L3(7, 8, 24, 29) = L0 (7, 8, 24, 29) ⊕ R0 (15) ⊕ K1 (22) ⊕ R3 (15) ⊕ K3 (22) Отношениfl меж‰у бит‡ми ‚х и ‚ых ‰лfl ‚сей системы из тех ‡ун‰о‚ после пеоб‡зний: L3 (7, 8, 24, 29) ⊕ R3 (15) = L0 (7, 8, 24, 29) ⊕ Ro (15) ⊕ K1 (22) ⊕ K3 (22) Ду„ими слми, мы имеем C (7, 8, 15, 24, 29) = P (7, 8, 15, 24, 29) ⊕ K1 (22) ⊕ K3 (22) Веоflтность О‰ин интеесный ‚опос: к‡к н‡йти ‚еоflтность тех‡ун‰ных (или n-‡ун‰ных) DES. М‡тцуи (Matsui) пок‡з‡л, что ‚еоflтность ‚ этом случ‡е P = 1/2 + 2n-1 П (pi – 1/2), 693
Кус
Киптфиfl и безоп‡сность сетей
„‰е n fl‚лflетсfl числом ‡ун‰о‚, P — ‚еоflтность к‡ж‰ой х‡‡ктеистики ‡у퉇 и P — полн‡fl ‚еоflтность. Н‡пиме, полн‡fl ‚еоflтность ‰лfl тех‡ун‰но„о ‡н‡лиз‡ н‡ ис. N.7: P = 1/2 + 2 3 -1 [(52/64 – 1/2) × (1 – 1/2) × (52/64 – 1/2)] ≈ 0,695 Шест퇉ц‡ти‡ун‰н‡fl х‡‡ктеистик‡ 16-‡ун‰о‚‡fl х‡‡ктеистик‡ может т‡кже быть скомпилин‡, чтобы обеспечить линейные отношениfl меж‰у некотоыми бит‡ми исхо‰но„о текст‡, некотоыми бит‡ми з‡шифнно„о текст‡ и некотоыми бит‡ми ‚ ключ‡х ‡у퉇. C (некотоые биты) = = P (некотоые биты) ⊕K1 (некотоые биты) ⊕ ... ⊕ K16 (некотоые биты)
Ат‡к‡ После н‡хож‰ениfl и сох‡нениfl мно„их отношений меж‰у некотоыми бит‡ми исхо‰но„о текст‡, бит‡ми з‡шифнно„о текст‡ и бит‡ми ключей ‡у퉇 Е‚‡ может об‡титьсfl к некотоым м исхо‰но„о текст‡ / з‡шифнно„о текст‡ (‡т‡к‡ зн‡ниfl исхо‰но„о текст‡) и использть соот‚етст‚ующие биты из сох‡ненных х‡‡ктеистик, чтобы н‡йти биты ‚ ключ‡х ‡у퉇.
Безоп‡сность Из‚естно, что ‰лfl то„о чтобы н‡п‡сть н‡ 16-‡ун‰о‚ый DES, необхо‰имы 243 из‚естных п‡ исхо‰но„о текст‡ / з‡шифнно„о текст‡. Линейный кипто‡н‡лиз ‚ы„лfl‰ит более ‚еоflтным, чем ‰иффеенци‡льный кипто‡н‡лиз, по ‰‚ум пичин‡м. П傇fl: число ш‡„о‚ у не„о меньше. Вто‡fl: он более пост ‰лfl ‡т‡ки зн‡ниfl исхо‰но„о текст‡, чем ‰лfl ‡т‡ки с ‚ыбокой исхо‰но„о текст‡. О‰н‡ко и т‡к‡fl ‡т‡к‡ ‚се еще ‰‡лек‡ от то„о, чтобы ее сеьезно оп‡с‡тьсfl тем, кто ‡бот‡ет с DES.
694
Пиложение O
Упощенный DES (S-DES)
Пиложение О. Упощенный DES (S-DES) Упощенный DES (S-DES) ‡з‡бот‡н пофессоом Э‰у‡‰ом Ш‡ефеом (Edward Schaefer) Уни‚еситет‡ С‡нт‡-Кл‡ы и fl‚лflетсfl об‡зтельным инстументом ‰лfl помощи сту‰ент‡м пи изучении стуктуы DES — ‰лfl шифниfl и ‰ешифниfl с использнием блочных шифо‚ и ключей с небольшим количест‚ом бито‚. Чит‡тели мо„ут изуч‡ть это пиложение пее‰ чтением лекции 6.
O.1. Стукту‡ S-DES S-DES — блочный шиф, к‡к это пок‡з‡но н‡ ис. О.1.
Рис. О.1. Шифние и ‰ешифние ‚ S-DES Н‡ стооне шифниfl S-DES пиним‡ет исхо‰ный текст по 8 бито‚ и со片ет з‡шифнный текст по 8 бито‚; н‡ стооне ‰ешифниfl S-DES пиним‡ет з‡шифнный текст н‡ 8 бито‚ и со片ет 8-бито‚ый откытый текст. О‰ин и тот же ключ шиф‡ н‡ 10 бито‚ используетсfl и ‰лfl шифниfl, и ‰лfl ‰ешифниfl. Ост‡но‚имсfl н‡ шифнии, ‡ потом обсу‰им ‰ешифние. Поцесс шифниfl состоит из ‰‚ух пеест‡но‚ок (P-блоки), котоые мы н‡зы‚‡ем н‡ч‡льными и конечными пеест‡но‚к‡ми (их т‡кже н‡зы‚‡ют IP и IP-1), и ‰‚ух ‡ун‰о‚ Ф‡йстелfl. К‡ж‰ый ‡ун‰ использует ‡зличные ключи ‡у퉇 по 8 бито‚, с„енеинные от ключ‡ шиф‡ со„л‡сно 燇нее 燉‡нному ‡л„оитму, опис‡нному позже ‚ этом пиложении. Рисунок O.2 пок‡зы‚‡ет элементы шиф‡ SDES н‡ стооне шифниfl.
Н‡ч‡льн‡fl и конечн‡fl пеест‡но‚ки Рисунок O.3 пок‡зы‚‡ет н‡ч‡льные и конечные пеест‡но‚ки (P-блоки). ʇ扇fl из этих пеест‡но‚ок получ‡ет ‚хо‰ную инфом‡цию н‡ 8 бито‚ и пеест‡‚лflет их со„л‡сно 燇нее 燉‡нному илу. Эти пеест‡но‚ки — пflмые пеест‡но‚ки, котоые ин‚есны ‰у„ ‰у„у, к‡к это было ск‡з‡но ‚ лекции 5. Эти ‰‚е пеест‡но‚ки не имеют ник‡ко„о киптфическо„о зн‡чениfl ‚ S-DES. Они ‚ключены ‚ S-DES, чтобы со‚местить их с полным DES. 695
Кус
Киптфиfl и безоп‡сность сетей
Рис. O.2. Общ‡fl стукту‡ S-DES устойст‚‡ шифниfl
Рис. O.3. Н‡ч‡льн‡fl и конечн‡fl пеест‡но‚ки (IP и IP-1)
Р‡ун‰ы S-DES использует ‰‚‡ ‡у퉇. К‡ж‰ый ‡ун‰ S-DES — это шиф Ф‡йстелfl, к‡к это пок‡з‡но н‡ ис. О.4 Р‡ун‰ получ‡ет LI -1 и RI -1 от пе‰ы‰уще„о ‡у퉇 (или н‡ч‡льно„о блок‡ пеест‡но‚ки) и со片ет LI и RI , котоые поступ‡ют ‚ сле‰ующий ‡ун‰ (или конечный блок пеест‡но‚ки). К‡к мы „о‚оили ‚ лекции 5, мы можем пинflть, что к‡ж‰ый ‡ун‰ имеет ‰‚‡ элемент‡ шиф‡: смеситель и устойст‚о з‡мены. К‡ж‰ый из этих элементо‚ fl‚лflетсfl об‡тимым. Устойст‚о з‡мены, оче‚и‰но, fl‚лflетсfl об‡тимым. Оно менflет ле‚ую поло‚ину текст‡ с ой поло‚иной. Смеситель fl‚лflетсfl об‡тимым из-з‡ опе‡ции ИСКЛЮЧАЮЩЕЕ ИЛИ. Все необ‡тимые элементы соб‡ны ‚ функции f (RI -1, KI). Функциfl S-DES Осн S-DES — функциfl S-DES. Функциfl S-DES пименflет ключ н‡ 8 бито‚ к с‡мым ым 4 бит‡м (RI –1), чтобы фомиует ‚ыхо‰ н‡ 4 бит‡. Эт‡ функ696
Пиложение O
Упощенный DES (S-DES)
Рис. O.4. Р‡ун‰ S-DES (стоон‡ шифниfl) циfl сост‡‚лен‡ из четыех секций: P-блок‡ ‡сшиениfl, отбел肇телfl, „уппы Sблоко‚ и пflмо„о P-блок‡, к‡к пок‡з‡но н‡ ис. О.4. P-блок ‡сшиениfl — RI–1 ‚хо‰ н‡ 4 бит‡, и KI — ключ н‡ 8 бито‚, т‡к что мы сн‡ч‡л‡ ‰олжны ‡сшиить RI–1 ‰о 8 бито‚. Хотfl отношениfl меж‰у ‚хо‰ом и ‚ыхо‰ом мо„ут быть опе‰елены м‡тем‡тически, S-DES использует т‡блицу, чтобы опе‰елить P-блок, к‡к это пок‡з‡но н‡ ис. О.5. Об‡тите ‚ним‡ние, что число пото‚ ‚ых — 8, но ‰и‡п‡зон зн‡чениfl — только 1-4. Некотоые из ‚хо‰о‚ и‰ут больше чем ‚ о‰ин ‚ыхо‰. Отбел肇тель (ИСКЛЮЧАЮЩЕЕ ИЛИ). После пеест‡но‚ки ‡сшиениfl S-DES используют опе‡цию ИСКЛЮЧАЮЩЕЕ ИЛИ ‰лfl сложениfl ‡сшиенной ой секции и ключ‡ ‡у퉇. Об‡тите ‚ним‡ние, что ключи ‡у퉇 используютсfl только ‚ этой опе‡ции. S-блоки. S-блоки ‰ел‡ют е‡льное смеш肇ние (пеемеш肇ние). S-DES используют ‰‚‡ S-блок‡, к‡ж‰ый с ‚хо‰ом н‡ 4 бит‡ и ‚ы‚о‰ом н‡ 2 бит‡ (см. ис. О.6).
Рис. О.5. P-блок ‡сшиениfl 697
Кус
Киптфиfl и безоп‡сность сетей
Рис. O.6. S-блоки Д‡нные по 8 бито‚ от ‚тоой опе‡ции ‡з‰елены н‡ ‰‚е ч‡сти по 4 бит‡, и к‡ж‰ый кусок петсfl ‚ с‚ой блок. Результ‡т к‡ж‰о„о блок‡ — отезок н‡ 2 бит‡; к‡ они объе‰инflютсfl, ‚ езульт‡те получ‡етсfl текст н‡ 4 бит‡. По‰ст‡но‚к‡ ‚ к‡ж‰ом блоке соот‚етст‚ует 燇нее опе‰еленным ил‡м, осннным н‡ з‡писflх ‚ т‡блиц‡х 4 x 4. Комбин‡циfl ‚хо‰ных бито‚ 1 и 4 опе‰елflет о‰ну из четыех сток; комбин‡циfl бито‚ 2 и 3 опе‰елflет о‰ин из четыех столбцо‚, к‡к пок‡з‡но н‡ ис. O.6. Поскольку к‡ж‰ый S-блок имеет с‚ою собст‚енную т‡блицу, необхо‰имы ‰‚е т‡блицы, к‡к это ‚и‰но н‡ ис. О.6, чтобы опе‰елить ‚ыхо‰ этих блоко‚. Зн‡чениfl ‚хо‰о‚ (номе стоки и номе столбц‡) и зн‡чениfl ‚ыхо‰о‚ н‡ исунке ‰‡ютсfl ‚ ‚и‰е ‰есflтичных чисел, чтобы сох‡нить пост‡нст‚о. Они ‰олжны быть изменены н‡ ‰‚оичные зн‡чениfl. Пиме 0.1 Н‡ ‚хо‰ S-блок‡ 1 петсfl число 10102. К‡ким бу‰ет ‚ыхо‰? Решение Если мы з‡пишем ‚месте пе‚ый и чет‚етый биты, мы получим 10 ‚ ‰‚оичном ‚и‰е или 2 ‚ ‰есflтичном числе. Ост‡ющиесfl биты — 01 ‚ ‰‚оичном ‚и‰е, — это 1 ‚ ‰есflтичном числе. Мы ищем после‰о‚‡тельно зн‡чение 2, столбец 1, н‡ ис. 0.6 (S-блок 1). Результ‡т ‚ ‰есflтичном ‚и‰е — 2, ‡ ‚ ‰‚оичном — это 10. Т‡ким об‡зом, ‚хо‰ 10102 ‰‡ет ‚ыхо‰ 102. Пflм‡fl пеест‡но‚к‡. После‰нflfl опе‡циfl ‚ функции S-DES — пflм‡fl пеест‡но‚к‡ с ‚хо‰ом н‡ 4 бит‡ и ‚ыхо‰ом н‡ 4 бит‡. Отношениfl ‚х-‚ых ‰лfl этой опе‡ции пок‡з‡ны н‡ исунке О.7 и сле‰уют тем же общим ил‡м, что и пе‰ы‰ущие т‡блицы пеест‡но‚ки.
Гене‡циfl ключей Гене‡то ключей ‡у퉇 со片ет ‰‚‡ ключ‡ н‡ 8 бито‚ из ключ‡ шиф‡ н‡ 10 бито‚. 698
Пиложение O
Упощенный DES (S-DES)
Рис. О.7. P-блок пflмой пеест‡но‚ки Пflм‡fl пеест‡но‚к‡ Пе‚ый поцесс — пflм‡fl пеест‡но‚к‡. Этот поцесс пеест‡‚лflет 10 бито‚ ‚ ключе со„л‡сно 燇нее 燉‡нной т‡блице, к‡к это пок‡з‡но н‡ ис. О.8. С‰‚и„ ‚ле‚о После пflмой пеест‡но‚ки ключ ‡з‰елflетсfl н‡ ‰‚е ч‡сти по 5 бито‚. ʇ扇fl ч‡сть с‰‚脇етсfl ‚ле‚о (циклический с‰‚и„) н‡ r бит, „‰е r — номе ‡у퉇
Рис. O.8. Гене‡то ключей 699
Кус
Киптфиfl и безоп‡сность сетей
(1 или 2). Эти ‰‚е ч‡сти з‡тем объе‰инflютсfl, чтобы сфомить мо‰уль н‡ 10 бито‚ (см. лекцию 5 ‰лfl обсуж‰ениfl опе‡ции с‰‚脇). Пеест‡но‚к‡ сж‡тиfl Пеест‡но‚к‡ сж‡тиfl (P-блок) изменflет 10 бито‚ н‡ 8 бито‚, котоые используютсfl к‡к ключ ‰лfl ‡у퉇. Т‡блиц‡ пеест‡но‚ки сж‡тиfl пок‡з‡н‡ н‡ ис. О.8. Пиме O.2 Т‡блиц‡ О 1 пи‚о‰ит ти случ‡fl „ене‡ции ключей. Т‡блиц‡ O.1
Случ‡и 2 и 3 пок‡зы‚‡ют, что ни о‰н‡ из опе‡ций, используемых ‚ поцессе „ене‡ции ключей, не эффекти‚н‡, если ключ шиф‡ состоит из ‚сех нулей или ‚сех е‰иниц. Нужно изб儇ть т‡ко„о тип‡ ключей шиф‡, к‡к уже обсу扇лось ‚ лекции 6. S-DES очень уflз‚им к ‡т‡ке „убой силы из-з‡ ‡зме‡ ключ‡ (10 бито‚).
O.2. Шиф и об‡тный шиф Используfl смесители и устойст‚‡ з‡мены, мы можем со片ть шиф и об‡тный шиф ‚ ‰‚‡ ‡у퉇. Шиф пименflетсfl н‡ стооне шифниfl; об‡тный шиф — н‡ стооне ‰ешифниfl. Чтобы с‰ел‡ть шиф и об‡тный шиф, используютсfl похожие ‡л„оитмы. Р‡ун‰ 2 имеет только смеситель и не имеет устойст‚‡ з‡мены. Это пок‡з‡но н‡ ис. O.9. Мы „о‚оили ‚ лекции 5, что смеситель с‡мооб‡тим, т‡к же к‡к и устойст‚о з‡мены. Конечные и н‡ч‡льные пеест‡но‚ки т‡кже ин‚есны ‰у„ ‰у„у. Л傇fl ч‡сть исхо‰но„о текст‡ н‡ стооне шифниfl, l0, з‡шифо‚‡н‡ к‡к L 2; L2 н‡ стооне ‰ешифниfl ‡сшифо‚‡н‡ к‡к l0. Ан‡ло„ичн‡fl ситу‡циfl — с ой ч‡стью. 700
Пиложение O
Упощенный DES (S-DES)
Рис.O.9. S-DES шиф и об‡тный шиф Очень ‚‡жно з‡помнить, что ключи шифо‚ ‡у퉇 (K1 и K2), ‰олжны использтьсfl ‚ об‡тном поfl‰ке. Н‡ стооне шифниfl ‚ ‡ун‰е 1 пименflют K1, ‡ ‚ ‡ун‰е 2 пименflют K2; н‡ стооне ‰ешифниfl ‚ ‡ун‰е 1 нужен K2, ‡ ‚ ‡ун‰е 2 — K1. Во ‚тоом ‡ун‰е нет устойст‚‡ з‡мены. Пиме O.3 Мы ‚ыби‡ем случ‡йный блок исхо‰но„о текст‡ и случ‡йный ключ. Опе‰елflем, к‡кой блок з‡шифнно„о текст‡ получитсfl, если Исхо‰ный текст: 11110010
Ключ:1011100110 З‡шифнный текст: 11101011 701
Кус
Киптфиfl и безоп‡сность сетей
Посмотим езульт‡т к‡ж‰о„о ‡у퉇 и текст‡, со片нно„о ‰о и после ‡ун‰о‚. Т‡блиц‡ O.2 пок‡зы‚‡ет езульт‡т ш‡„о‚ пее‰ н‡ч‡лом ‡у퉇. Исхо‰ный текст похо‰ит н‡ч‡льную пеест‡но‚ку, чтобы со片ть ‡зличные 8 бито‚. После это„о ш‡„‡ текст ‡збит н‡ ‰‚‡ ч‡сти, L0 и R0. Т‡блиц‡ пок‡зы‚‡ет езульт‡ты ‰‚ух ‡ун‰о‚, котоые ‚ключ‡ют смеш肇ние и з‡полнение (исключ‡fl ‚тоой ‡ун‰). Результ‡ты после‰них ‡ун‰о‚ (L2 и R2) объе‰инены. Н‡конец, текст похо‰ит конечную пеест‡но‚ку, чтобы получить з‡шифнный текст. Т‡блиц‡ O.2
Стоит упомflнуть з‰есь некотоые ‚‡жные положениfl. Сн‡ч‡л‡ ‡fl ч‡сть к‡ж‰о„о ‡у퉇 — т‡ же с‡м‡fl, что и л傇fl секциfl из сле‰ующе„о ‡у퉇. Пичины ‚ том, что ‡fl ч‡сть похо‰ит смеситель без изменениfl, но устойст‚о з‡мены пеемещ‡ет ее ле‚ую ч‡сть. Н‡пиме, R1 похо‰ит чеез смеситель ‚тоо„о ‡у퉇 без изменениfl, но з‡тем эт‡ ч‡сть ст‡но‚итсfl L2 из-з‡ устойст‚‡ з‡мены. Интеесно то, что эт‡ точк‡ не имеет устойст‚‡ з‡мены ‚ после‰нем ‡ун‰е. Поэтому R1, ст‡но‚итсfl R2 ‚место то„о чтобы ст‡ть L2. Из-з‡ м‡ло„о количест‚‡ ‡ун‰о‚ S-DES более уflз‚им к кипто‡н‡лизу, чем DES.
702
Пиложение P
Упощенный AES (S-AES)
Пиложение P. Упощенный AES (S-AES) P.1. Стукту‡ S-AES Упощенный AES (S-AES), ‡з‡бот‡н пофессоом Э‰‚‡‰ом Ш‡ефеом (Edward Schaefer) ‚ Уни‚еситете С‡нт‡-Кл‡ы, fl‚лflетсfl об‡зтельным инстументом и пе‰н‡зн‡чен помочь сту‰ент‡м изуч‡ть стуктуу AES с использнием меньших блоко‚ и ключей. Чит‡тели мо„ут изучить это пиложение пее‰ чтением лекции 7.
Рис. P.1 Шиф‡циfl и ‰ешиф‡циfl ‚ S-AES Н‡ стооне шифниfl S-AES получ‡ют исхо‰ный текст н‡ 16 бито‚ и со片ют з‡шифнный текст н‡ 16 бито‚; н‡ стооне ‰ешиф‡ции S-AES получ‡ют з‡шифнный текст н‡ 16 бито‚ и со片ют исхо‰ный текст н‡ 16 бито‚. Ключ шиф‡ н‡ 6 бито‚ используетсfl и ‰лfl шифниfl, и ‰лfl ‰ешифниfl.
Р‡ун‰ы S-AES —шиф не-Ф‡йстелfl, котоый з‡шифо‚ы‚‡ет и ‡сшифо‚ы‚‡ет блок ‰‡нных ‚ 16 бито‚. Он использует п剂‡ительный ‡ун‰ пеоб‡зниfl и ‰‚‡ ‡у퉇. Ключ шиф‡ — т‡кже 16 бито‚. Рисунок P.2 пок‡зы‚‡ет общий ‚и‰ ‰лfl ‡л„оитм‡ шифниfl (н‡зы‚‡емо„о «шиф») и ‡л„оитм‡ ‰ешифниfl (н‡зы‚‡емо„о «об‡тный шиф»). Они со‚‡ют, но ключи ‡у퉇 пименflютсfl ‚ об‡тном поfl‰ке. Н‡ исунке P.2 ключи ‡у퉇, котоые со片ны ‡л„оитмом ‡сшиениfl ключей, ‚с儉‡ со‰еж‡т 16 бит, — они т‡ко„о же ‡зме‡, к‡к и блок з‡шифнно„о текст‡ или исхо‰ный текст. В S-AES есть ти ключ‡ ‡у퉇 — K0, K1 и K2.
Мо‰ули ‰‡нных Длfl пе‰ст‡‚лениfl ‰‡нных S-AES, к‡к пок‡з‡но н‡ ис. P.3, используют пflть мо‰улей измеениfl: биты, полуб‡йты, сл, блоки и состоflниfl. 703
Кус
Киптфиfl и безоп‡сность сетей
Рис. P.2. Общий ‚и‰ блок‡ шифниfl S-AES
Рис. P.3. Блоки ‰‡нных используемых ‚ S-AES Бит В S-AES бит — ‰‚оичн‡fl циф‡, кото‡fl пиним‡ет зн‡чение либо 0, либо 1. Длfl обозн‡чениfl бит‡ мы бу‰ем пименflть л‡тинскую бук‚у b. Полуб‡йт Полуб‡йт — „упп‡ из 4 бито‚, кото‡fl может быть об‡бот‡н‡ к‡к о‰ин объект, м‡тиц‡-сток‡ н‡ 4 бит‡ или м‡тиц‡-столбец н‡ 4 бит‡. К‡ полуб‡йт об‡б‡ты‚‡етсfl к‡к м‡тиц‡-сток‡, биты ‡спо뇄‡ютсfl ‚ м‡тице сл傇 н‡п‡‚о; к‡ полуб‡йт об‡б‡ты‚‡етсfl к‡к м‡тиц‡-столбец, биты ‡спо뇄‡ютсfl ‚ м‡тице с‚еху ‚низ. Чтобы обозн‡чить полуб‡йт, мы используем сточную полужиную бук‚у n. Об‡тите ‚ним‡ние, что полуб‡йт — ф‡ктически о‰н‡ шест퇉ц‡теичн‡fl циф‡. Сло‚о Сло‚о — „упп‡ 8 бито‚, кото‡fl может быть об‡бот‡н‡ к‡к о‰ин объект: м‡тиц-сток‡ из ‰‚ух полуб‡йт или м‡тиц‡-столбец из ‰‚ух полуб‡йт. К‡ 704
Пиложение P
Упощенный AES (S-AES)
сло‚о об‡б‡ты‚‡етсfl к‡к м‡тиц‡-сток‡, полуб‡йты ‡спо뇄‡ютсfl ‚ м‡тице сл傇 н‡п‡‚о; к‡ сло‚о ‡ссм‡т肇етсfl к‡к м‡тиц‡-столбец, полуб‡йты ‡спо뇄‡ютсfl ‚ м‡тице с‚еху ‚низ. Чтобы обозн‡чить сло‚о, мы пименflем сточную полужиную бук‚у w. Блок S-AES шифует и ‡сшифо‚ы‚‡ет блоки ‰‡нных. Блок ‚ S-AES – „упп‡ из 16 бито‚. О‰н‡ко блок может быть пе‰ст‡‚лен к‡к м‡тиц‡-сток‡ из 4 полуб‡йто‚. Состоflние В S-AES блок ‰‡нных н‡зы‚‡етсfl т‡кже состоflнием. Мы используем полужиную 燄뇂ную бук‚у S, чтобы обозн‡чить состоflние. Состоflниfl, по‰обно блок‡м, состоflт из 16 бито‚, но обычно они об‡б‡ты‚‡ютсfl к‡к м‡тицы по 4 полуб‡йт‡. В этом случ‡е к‡ж‰ый элемент состоflниfl обозн‡ч‡етсfl к‡к sr,c, „‰е r (0 или 1) опе‰елflет стоку и c (0 или 1) опе‰елflет столбец. В н‡ч‡ле шиф‡ полуб‡йты ‚ блоке ‰‡нных состоflниfl ‡спо뇄‡ютсfl столбец з‡ столбцом и ‚ к‡ж‰ом столбце с‚еху ‚низ. В конце шиф‡ полуб‡йты состоflниfl из‚лек‡ютсfl тем же способом, к‡к пок‡з‡но н‡ ис. P.4.
Рис. P.4. Пеоб‡зниfl «Блок – состоflние» и «состоflние – блок» Пиме P.1 Д‡‚‡йте посмотим, к‡к можно блок ‚ 16 бито‚ пе‰ст‡‚ить к‡к м‡тицу 2 × 2. Пусть тексто‚ый блок имеет ‚и‰ 1011 0111 1001 0110. Сн‡ч‡л‡ мы пе‰ст‡‚им блок к‡к 4 полуб‡йт‡. З‡тем з‡полнflем м‡тицу состоflний, «столбец з‡ столбцом», к‡к это пок‡з‡но н‡ ис. P.5.
Стукту‡ к‡ж‰о„о ‡у퉇 Рисунок P.6 пок‡зы‚‡ет, что к‡ж‰ое пеоб‡зние получ‡ет состоflние и со片ет ‰у„ое состоflние, котоое используетсfl ‰лfl сле‰ующе„о пеоб‡зниfl 705
Кус
Киптфиfl и безоп‡сность сетей
Рис. P.5. Изменение шифнно„о текст‡ ‚ состоflние или сле‰ующе„о ‡у퉇. Секциfl п剂‡ительно„о пеоб‡зниfl (пее‰ ‡ун‰ом) пименflет о‰но пеоб‡зние (AddRoundKey); после‰ний ‡ун‰ использует только ти пеоб‡зниfl (пеоб‡зние MixColumns отсутст‚ует).
Рис. P.6. Стукту‡ к‡ж‰о„о ‡у퉇 н‡ стооне шифниfl Н‡ стооне ‰ешифниfl используютсfl: об‡тные пеоб‡зниfl InvSubNibbles, InvShiftRows, InvMixColumns и AddRoundKey (этот поцесс fl‚лflетсfl с‡мооб‡тимым).
P.2. Пеоб‡зниfl Чтобы обеспечить безоп‡сность, S-AES пименflют четые тип‡ пеоб‡зний: по‰ст‡но‚к‡, пеест‡но‚к‡, смеш肇ние и сложение ключ‡. Ниже мы обсу‰им к‡ж‰ое из них. 706
Пиложение P
Упощенный AES (S-AES)
По‰ст‡но‚к‡ По‰ст‡но‚к‡ с‰ел‡н‡ ‰лfl к‡ж‰о„о полуб‡йт‡ (мо‰уль ‰‡нных н‡ 4 бит‡). Длfl пеоб‡зний к‡ж‰о„о полуб‡йт‡ используетсfl только о‰н‡ т‡блиц‡, что озн‡ч‡ет, что если ‰‚‡ полуб‡йт‡ о‰ин‡ко‚ые, то и езульт‡т пеоб‡зниfl о‰ин‡ко‚ый. В этом пиложении пеоб‡зние опе‰елено поцессом поиск‡ т‡блицы. По‰полуб‡йты Пе‚ое пеоб‡зние, SubNibbles, пименflетсfl н‡ стооне шифниfl. Длfl то„о чтобы з‡менflть полуб‡йты, мы интепетиуем к‡ж‰ый полуб‡йт к‡к 4 бит‡. Ле‚ые 2 бит‡ опе‰елflют стоку, ‡ ые 2 бит‡ опе‰елflют столбец т‡блицы по‰ст‡но‚ки. Шест퇉ц‡теичн‡fl циф‡ ‚ пеесечении стоки и столбц‡ — но‚ый полуб‡йт. Рисунок P.7 пок‡зы‚‡ет и‰ею.
Рис. P.7. Пеоб‡зние SubNibble В пеоб‡знии SubNibbles состоflниfl об‡б‡ты‚‡ютсfl к‡к м‡тицы полуб‡йто‚ 2 × 2. Пеоб‡зние осущест‚лflетсfl с о‰ним полуб‡йтом о‰но‚еменно. Со‰еж‡ние к‡ж‰о„о полуб‡йт‡ изменflетсfl, но поfl‰ок полуб‡йто‚ ‚ м‡тице ост‡етсfl тем же с‡мым. В поцессе об‡ботки к‡ж‰ый полуб‡йт пеоб‡зуетсfl не燂исимо: есть четые ‡зличных пеоб‡зниfl от полуб‡йт‡ к полуб‡йту. SubNibbles со‰ежит четые не燂исимых пеоб‡зниfl от полуб‡йт‡ к полуб‡йту. Рисунок P.7 т‡кже пок‡зы‚‡ет т‡блицы по‰ст‡но‚ки (S-блоки) ‰лfl пеоб‡зниfl SubNibbles. Пеоб‡зние SubNibbles обеспеч肇ет эффект пеемеш肇ниfl. Н‡пиме, ‰‚‡ полуб‡йт‡, A16 и B16, котоые отлич‡ютсfl только о‰ним битом (с‡мый ый бит), пеоб‡зны к 016 и 316, котоые отлич‡ютсfl ‰‚умfl бит‡ми. InvSubNibbles InvSubNibbles – ин‚есиfl пеоб‡зниfl SubNibbles. Н‡ ис. P.7 т‡кже пок‡з‡но об‡тное пеоб‡зние. Мы можем ле„ко по‚еить, что эти ‰‚‡ пеоб‡зниfl ин‚есны ‰у„ ‰у„у. 707
Кус
Киптфиfl и безоп‡сность сетей
Пиме P.2 Рисунок P.8 пок‡зы‚‡ет, к‡к пеоб‡зно состоflние, пименflющее пеоб‡зние SubNibbles. Н‡ исунке т‡кже пок‡з‡но пеоб‡зние InvSubNibbles, котоое со片ет пе‚он‡ч‡льное состоflние. Об‡тите ‚ним‡ние, что если ‰‚‡ полуб‡йт‡ имеют о‰ин‡ко‚ые зн‡чениfl, ‚ езульт‡те их пеоб‡зниfl получ‡етсfl о‰ин‡ко‚ое зн‡чение — поскольку к‡ж‰ый полуб‡йт использует о‰ну и ту же т‡блицу.
Рис. P.8 Пеоб‡зние SubNibbles
Пеест‡но‚к‡ Ду„ое пеоб‡зние, котоое по‚о‰итсfl ‚ ‡ун‰е, — с‰‚и„, пеест‡‚лflющий полуб‡йты. Пеоб‡зние с‰‚脇 ‚ S-AES ‰ел‡етсfl н‡ уо‚не полуб‡йт‡; поfl‰ок сле‰о‚‡ниfl бито‚ ‚ полуб‡йте не изменflетсfl. ShiftRows Пеоб‡зние пи шифнии, н‡зы‚‡емое ShiftRows, с‰‚脇ет биты стоки ‚ле‚о. Число с‰‚и„о‚ з‡‚исит от номе‡ стоки (0, 1) ‚ м‡тице состоflний. Это озн‡ч‡ет, что сток‡ 0 не с‰‚脇етсfl ‚ообще, ‡ сток‡ 1 с‰‚脇етсfl н‡ 1 полуб‡йт. Рисунок P.9 пок‡зы‚‡ет пеоб‡зние с‰‚脇. Об‡тите ‚ним‡ние, что ShiftRows-пеоб‡зние ‡бот‡ет о‰но‚еменно только с о‰ной стокой.
Рис. P.9. Пеоб‡зние ShiftRows InvShiftRows Пи ‰ешифнии пеоб‡зние н‡зы‚‡етсfl InvShiftRows и поиз‚о‰ит с‰‚и„ ‚о. Число с‰‚и„о‚ ‡‚но номеу стоки ‚ м‡тице состоflний (0, 1). Пеоб‡зниfl ShiftRows и InvShiftRows ин‚есны ‰у„ ‰у„у. 708
Пиложение P
Упощенный AES (S-AES)
Пиме P.3 Рисунок P.10 пок‡зы‚‡ет, к‡к пеоб‡зуетсfl состоflние с использнием ShiftRows. Рисунок т‡кже пок‡зы‚‡ет к‡к пеоб‡зние InvShiftRow со片ет пе‚он‡ч‡льное состоflние.
Рис. P.10. Пеоб‡зние ShiftRows ‚ пимее P.3
Смеш肇ние По‰ст‡но‚к‡ обеспеч肇ет пеоб‡зние SubNibbles и изменflет зн‡чение полуб‡йт‡ исхо‰fl только из пе‚он‡ч‡льно„о зн‡чениfl полуб‡йт‡ и ‚х ‚ т‡блицу; поцесс не ‚ключ‡ет сосе‰ние полуб‡йты. Мы можем ск‡з‡ть, что пеоб‡зние SubNibbles поисхо‰ит ‚нути полуб‡йт‡. Пеест‡но‚к‡, обеспеченн‡fl ShiftRows-пеоб‡знием, обмен肇ет полуб‡йты, не пеест‡‚лflfl биты ‚ б‡йт‡х. Мы можем ск‡з‡ть, что ShiftRows — пеоб‡зние обмен‡ полуб‡йт‡ми. Н‡м нужно т‡кже пеоб‡зние меж‰у полуб‡йт‡ми, котоое изменflет биты ‚ полуб‡йте, учиты‚‡fl биты ‚ сосе‰них полуб‡йт‡х. Мы ‰олжны смеш‡ть полуб‡йты, чтобы обеспечить ‡ссе肇ние н‡ побито‚ом уо‚не. Смеш肇ющеесfl пеоб‡зние изменflет со‰еж‡ние к‡ж‰о„о полуб‡йт‡, используfl 2 полуб‡йт‡ о‰но‚еменно и объе‰инflfl их, чтобы со片ть 2 но‚ых полуб‡йт‡. Чтобы „‡‡нтить, что к‡ж‰ый но‚ый полуб‡йт отлич‡етсfl от ‰у„их (‰‡же если ст‡ые полуб‡йты о‰ин‡ко‚ы), комбин‡циfl сн‡ч‡л‡ умнож‡ет к‡ж‰ый полуб‡йт н‡ ‡зличную конст‡нту, ‡ з‡тем смеш肇ет их. Смеш肇ние может быть обеспечено м‡тичным умножением. К‡к мы обсу扇ли ‚ лекции 2, к‡ мы умнож‡ем ꂇ‰‡тную м‡тицу н‡ м‡тицу-столбец, езульт‡т — нfl м‡тиц‡столбец. К‡ж‰ый элемент ‚ но‚ой м‡тице 燂исит от ‰‚ух элементо‚ ст‡ой м‡тицы после то„о, к‡к они умножены н‡ зн‡чение стоки ‚ м‡тице конст‡нт. MixColumns Пеоб‡зние MixColumns ‡бот‡ет н‡ уо‚не столбц‡; оно пеоб‡зо‚ы‚‡ет к‡ж‰ый столбец состоflниfl ‚ но‚ый столбец. Пеоб‡зние — ф‡ктически м‡тичное умножение столбц‡ состоflниfl н‡ к‚‡‰‡тную м‡тицу конст‡нт. Полуб‡йты ‚ столбце состоflний и ‚ м‡тице конст‡нт интепетиуютсfl к‡к сл по 4 бит‡ (или полиномы) с коэффициент‡ми ‚ GF(2). Умножение б‡йто‚ ‰ел‡етсfl ‚ GF(24) по мо‰улю (x4 + x + 1) или (10011). Сложение — это опе‡циfl ИСКЛЮЧАЮЩЕЕ ИЛИ н‡ 4 бит‡. Рисунок P.11 пок‡зы‚‡ет пеоб‡зние MixColumns. 709
Кус
Киптфиfl и безоп‡сность сетей
Рис. P.11 Пеоб‡зние MixColumn InvMixColumns InvMixColumns-пеоб‡зние — ‚ осно‚ном т‡кое же, к‡к пеоб‡зние MixColumns. Если ‰‚е м‡тицы конст‡нт ин‚есны ‰у„ ‰у„у, то несложно ‰ок‡з‡ть, что эти ‰‚‡ пеоб‡зниfl ин‚есны ‰у„ ‰у„у. MixColumns- и InvMixColumns-пеоб‡зниfl ин‚есны ‰у„ ‰у„у. Рисунок P.12 пок‡зы‚‡ет, к‡к пеоб‡зуетсfl состоflние, используfl пеоб‡зние MixColumns. Мы т‡кже ‚и‰им з‰есь, что пеоб‡зние InvMixColumns со片ет пе‚он‡ч‡льный текст.
Рис. P.12. Пеоб‡зние Mix Column ‚ пимее 7.5. Об‡тите ‚ним‡ние, что ‡‚ные б‡йты ‚ ст‡ом состоflнии н凂ны ‚ но‚ом состоflнии. Н‡пиме, ‰‚‡ б‡йт‡ F ‚о ‚тоой стоке изменены н‡ 4 и A.
Дополнение ключ‡ Веоflтно, с‡мое ‚‡жное пеоб‡зние — это то, котоое ‚ключ‡ет ключ шиф‡. Все пе‰ы‰ущие пеоб‡зниfl используют из‚естные ‡л„оитмы, котоые fl‚лflютсfl об‡тимыми. Если ключ шиф‡ не ‰оᇂлflетсfl к состоflнию ‚ к‡ж‰ом ‡ун‰е, ‰лfl поти‚ник‡ очень посто н‡йти исхо‰ный текст, учиты‚‡fl з‡шифнный текст. В этом случ‡е ключ шиф‡ — е‰инст‚енн‡fl „‡‡нтиfl безоп‡сности меж‰у Алисой и Бобом. S-AES использует поцесс, н‡зы‚‡емый ‡сшиением ключ‡ (он бу‰ет ‡ссмотен позже ‚ этом пиложении), котоый из ключ‡ шиф‡ со片ет ти ключ‡ ‡у퉇. К‡ж‰ые ключ ‡у퉇 имеет ‰лину 16 бито‚ – он пименflетсfl к‡к ‰‚‡ сл по 8 бито‚. Пи ‰ополнении ключ‡ и состоflниflк‡ж‰ое сло‚о ‡ссм‡т肇ют к‡к м‡тицу-столбец. 710
Пиложение P
Упощенный AES (S-AES)
AddRoundKey AddRoimdKey об‡б‡ты‚‡ет о‰ин столбец о‰но‚еменно. Это пеоб‡зние похоже н‡ MixColumns. MixColumns умнож‡ет ꂇ‰‡тную м‡тицу конст‡нт н‡ к‡ж‰ый столбец состоflний. AddRoundKey ск뇉ы‚‡ет сло‚о ключ‡ ‡у퉇 с к‡ж‰ой м‡тицей-столбцом состоflний. Опе‡ции ‚ MixColumns — м‡тичное умножение; опе‡ции ‚ AddRoundKey — м‡тичное сложение. Сложение ‚ыполнено ‚ поле GF(24). Поскольку сложение и ‚ычит‡ние ‚ этом поле о‰ин‡ко‚ы, пеоб‡зние AddRoundKey с‡ мо ин ‚ес но. Ри су нок P.13 по к‡ зы ‚‡ ет пе об ‡ зо ‚‡ ние AddRoundKey. Пеоб‡зние AddRoundKey с‡моин‚есно.
Рис. P.13. Пеоб‡зние AddRoundKey
P.3. Р‡сшиение ключ‡ Поце‰у‡ ‡сшиениfl ключ‡ со片ет ти ключ‡ ‡у퉇 по 16 бито‚ из е‰инст‚енно„о ключ‡ шиф‡ н‡ 16 бито‚. Пе‚ые ключи ‡у퉇 используютсfl ‰лfl п剂‡ительно„о пеоб‡зниfl (AddRoundKey); ост‡‚шиесfl ключи пименflютсfl ‰лfl после‰не„о пеоб‡зниfl (AddRoundKey) ‚ конце ‡у퉇 1 и ‡у퉇 2. Поце‰у‡ ‡сшиениfl ключей со片ет сло‚о ключ‡ ‡у퉇 после‰о‚‡тельно – сло‚о з‡ сло‚ом, „‰е сло‚о — м‡сси‚ 2 полуб‡йт‡. Поце‰у‡ со片ет 6 сло‚, котоые обозн‡ч‡ютсfl w0, w1, w2, …..,w5.
Со片ние сло‚ ‚ S-AES Рисунок P.14 пок‡зы‚‡ет, к‡к со片ютсfl 6 сло‚ из пе‚он‡ч‡льно„о ключ‡. Поцесс со片ниfl сло‚ ‚ S-AES сле‰ующий: 1. Пе‚ые ‰‚‡ сл (w0, w 1) со片ютсfl из ключ‡ шиф‡. Ключи шиф‡ пе‰ст‡‚лflют к‡к м‡сси‚ из 4 полуб‡йто‚ (n0 – n3). Пе‚ые 2 полуб‡йт‡ (n0, n1) об‡зуют сло‚о w0; сле‰ующие 2 полуб‡йт‡ (n2, n3) об‡зуют сло‚о w1. Ду„ими слми, конк‡тен‡циfl сло‚ ‚ этой „уппе копиует ключ шиф‡. 2. Ост‡льн‡fl ч‡сть сло‚ (wi i = 2 – 5) со片етсfl сле‰ующим об‡зом. ‡. Если (i mod 2) = 0, wi = ti ⊕wi-2. З‰есь ti — ‚еменное сло‚о, fl‚лflетсfl езульт‡том пименениfl к wi ‰‚ух поце‰у: SubWord и RotWord опе‡ции 711
Кус
Киптфиfl и безоп‡сность сетей
Рис. P.14 Со片ние сло‚ ‚ S-AES ИСКЛЮЧАЮЩЕЕ ИЛИ к езульт‡ту с конст‡нтой ‡у퉇 Rcon[Nr], „‰е Nr — номе ‡у퉇. Ду„ими слми, мы имеем ti = SubWord(RotWord (wi-1)) ⊕ RCon [Nr] Сл w2 и w4 со片ютсfl, используfl этот поцесс. б. Если (i mod 2) ≠ 0, wi = wi-1 ⊕ wi-2. Н‡ исунке P.14 это озн‡ч‡ет, что к‡ж‰ое сло‚о со片етсfl от сл сл傇 и сл с‚еху. Сл w3 и w5 со片ютсfl, используfl этот поцесс. RotWord RotWord (‚‡щение сл) — поце‰у‡, по‰обн‡fl пеоб‡знию ShiftRows, но он‡ пименflетсfl только к о‰ной стоке. Поце‰у‡ получ‡ет сло‚о к‡к м‡сси‚ 2 полуб‡йто‚ и с‰‚脇ет к‡ж‰ый полуб‡йт ‚ле‚о с полным ‚‡щением (полный обоот) сл. В S-AES это з‡полнение 2 полуб‡йто‚ ‚ сло‚е. SubWord SubWord (сло‚о-з‡менитель) – поце‰у‡ fl‚лflетсfl по‰обной пеоб‡знию SubNibbels, но он‡ пименflетсfl только к 2 полуб‡йт‡м. Поце‰у‡ беет к‡ж‰ый полуб‡йт ‚ сло‚е и з‡менflет е„о ‰у„им полуб‡йтом. Он‡ пименflет т‡блицы SubNibbels, пок‡з‡нные н‡ ис. P.7. 712
Пиложение P
Упощенный AES (S-AES)
Конст‡нты ‡у퉇 ʇ扇fl конст‡нт‡ ‡у퉇, RC, fl‚лflетсfl зн‡чением, со‰еж‡щим 2 полуб‡йт‡, ‚ котоом с‡мый ый полуб‡йт ‚с儉‡ нуль. Рисунок P.14 т‡кже пок‡зы‚‡ет зн‡чение RC Пиме P.4 Т‡блиц‡ P.1 пок‡зы‚‡ет, к‡к ‚ычислflетсfl ключ ‰лfl к‡ж‰о„о ‡у퉇. Пи этом пе‰по뇄‡етсfl, что Алис‡ и Боб со„л‡сли ключ 247516. Т‡блиц‡ P.1. Пиме ‡сшиениfl ключ‡ Р‡ун‰ Зн‡чение ti Пе‚ое сло‚о ‚ ‡ун‰е Втоое сло‚о ‚ ‡ун‰е Ключ ‡у퉇 0
w0 = 24
w1 = 75
K0 = 2475
1
t2 = 95
w2 = 95 ⊕ 24 = B1
w2 = B1⊕ 75 = С4
K0 = B1C4
2
t4 = EC
w4 = B1⊕ EC = 5D
W5 = 5D ⊕ С4 = 99
K2 = 5D99
В к‡ж‰ом ‡ун‰е ‚тоое сло‚о ‚ычислflетсfl очень посто. Длfl ‚ычислениfl пе‚о„о сл мы ‰олжны сн‡ч‡л‡ ‚ычислить зн‡чение ‚еменно„о сл (ti), к‡к это пок‡з‡но ниже: RotWord (75) = 57 → SubWord (57) = 15 → t2 = 15 ⊕ RC[1] = 15 ⊕ 80 = 95 RotWord (C4) = 4C → SubWord (4C) =DC → t4 = DC ⊕ RC [2] = DC ⊕ 30 = EC
P.4. Шифы Тепеь ‰‡‚‡йте посмотим, к‡к S-AES используют четые тип‡ пеоб‡зний ‰лfl шифниfl и ‰ешифниfl. Ал„оитм шифниfl бу‰ем н‡зы‚‡ть шиф‡то, ‡ ‡л„оитм ‰ешифниfl — об‡тный шиф‡то. S-AES — шиф не-Ф‡йстелfl, и это озн‡ч‡ет, что к‡ж‰ое пеоб‡зние или „упп‡ пеоб‡зний ‰олжны быть об‡тимыми. Коме то„о, шиф‡то и об‡тный шиф‡то ‰олжны пименflть эти опе‡ции т‡ким способом, пи котоом они отменflют ‰у„ ‰у„‡. Ключи ‡у퉇 ‰олжны использтьсfl ‚ об‡тном поfl‰ке. Чтобы ‚ыполнить эти тебниfl, пеоб‡зниfl пименflютсfl ‚ уст‡но‚ленном поfl‰ке ‚ шиф‡тое и об‡тном шиф‡тое, к‡к это пок‡з‡но н‡ ис. P.15. Пе‚ое: поfl‰ок использниfl SubNibbles и ShiftRows изменflетсfl ‚ об‡тном шиф‡тое. Втоое: поfl‰ок MixColumns и AddRoundKey ‚ об‡тном шиф‡тое т‡кже изменflетсfl. Это отличие ‚ поfl‰ке необхо‰имо, чтобы с‰ел‡ть к‡ж‰ое пеоб‡зние ‚ шифе соот‚етст‚ующим по поfl‰ку е„о ин‚есии ‚ об‡тном шиф‡тое. Сле‰о‚‡тельно, ‡л„оитм ‰ешифниfl ‚ целом — ин‚есиfl ‡л„оитм‡ шифниfl. Об‡тите ‚ним‡ние, что ключи ‡у퉇 используютсfl ‚ об‡тном поfl‰ке. Пиме P.5 713
Кус
Киптфиfl и безоп‡сность сетей
Рис. P.15. Шиф‡то и об‡тный шиф‡то исхо‰но„о поект‡ Мы ‚ыби‡ем случ‡йный блок исхо‰но„о текст‡, ключ шиф‡, пименflемо„о ‚ пимее P.4, и опе‰елflем, к‡кой получ‡етсfl блок з‡шифнно„о текст‡:
Исхо‰ный текст: 1A2316 Ключ: 247516 З‡шифнный текст: 3AD216 Рисунок P.16 пок‡зы‚‡ет зн‡чение состоflний ‚ к‡ж‰ом ‡ун‰е. Мы используем ключи ‡у퉇, с„енеинные ‚ пимее P.4. 714
Пиложение Q
Некотоые ‰ок‡з‡тельст‚‡
Пиложение Q. Некотоые ‰ок‡з‡тельст‚‡ Это пиложение со‰ежит некотоые ‰ок‡з‡тельст‚‡ ‰лfl теоем, используемых ‚ лекциflх 2 и 9. Почти ‚се они кооткие и нефом‡льные. Они ‡ссчит‡ны н‡ сту‰енто‚, изуч‡ющих кус киптфии. Чит‡тель, з‡интееснный ‚ более ‰ет‡льном изучении, может пополнить с‚ои зн‡ниfl из кни„, пос‚flщенных теоии чисел.
Q.1. Лекциfl 2 Эт‡ лекциfl со‰ежит некотоые ‰ок‡з‡тельст‚‡ теоем по теоии ‰елимости, е‚кли‰о‚ых ‡л„оитмо‚ и с‡‚нений.
Теоиfl ‰елимости Ниже — ‰ок‡з‡тельст‚‡ нескольких теоем по теоии ‰елимости. Теоем‡ Q.I: У‡‚нение ‰елениfl (‡л„оитм) Длfl цело„о числ‡ a и b, „‰е b > 0, сущест‚уют целые числ‡ q и r, т‡кие, что a = q × b + r. Док‡з‡тельст‚о: Р‡ссмотим ‡ифметическую по„ессию ‚ фоме …, -3 × b, -2 × b, - 1 × b, 0 × b, 1 × b, 2 × b, 3 × b, … Оче‚и‰но, что целое число или fl‚лflетсfl ‡‚ным о‰ному из члено‚ этой по„ессии, или н‡хо‰итсfl меж‰у ‰‚умfl после‰о‚‡тельными член‡ми. Ду„ими слми, a = q × b + r, „‰е q × b – член ‚ ‚ышеупомflнутой по„ессии и r — смещение от это„о член‡. Теоем‡ Q.2. Если a | 1, т‡ a = ±1. Док‡з‡тельст‚о: a | 1 →.1 = a × x, „‰е x — целое число. Это озн‡ч‡ет: (x = 1 и a = 1) или (x = –1 и a = –1). Поэтому: a = ±l. Теоем‡ Q.3. Если a | b и b | a, т‡ a= ±b. Док‡з‡тельст‚о: a | b→ b = x × a, „‰е x — целое число. b | a → = y × b, „‰е y — целое число. 715
Кус
Киптфиfl и безоп‡сность сетей
Мы имеем a = y × (x × a) = (y × x) × a. → y × x = 1. Это озн‡ч‡ет: (x = 1 и y = 1) или (x = –1 и y = –I). Поэтому: a = y × b → ± b. Теоем‡ Q.4. Если a | b и b | c, т‡ a | c. Док‡з‡тельст‚о: a | b → b= x × a, „‰е X — целое число. b | c→ c = y × b, „‰е — y целое число. Мы имеем c = y × (x × a) = (y × x ) × a. Поэтому a | c. Теоем‡ Q.5. Если a | b и a | c, т‡ a | (b + c). Док‡з‡тельст‚о: a | b → b = x × a, „‰е x — целое число. a | c → c = y × a, „‰е y — целое число. Мы имеем b + c = (x + y) × a. Поэтому a| (b + c). Теоем‡ Q.6. Если a | b и a | c, т‡ a |(m × b + n × c), „‰е m и n — поиз‚ольные целые числ‡. Док‡з‡тельст‚о: a | b → b = x × a, „‰е x — целое число. a | c → c = y × a, „‰е y — целое число. Мы имеем (m × b + n × c) = m × (x × a) + n × x (y × a)= (m × x+n × y) × a. Поэтому a | (m × b + n × c).
Е‚кли‰о‚ы ‡л„оитмы Мы использли е‚кли‰о‚ и ‡сшиенный е‚кли‰о‚ ‡л„оитмы ‚ лекции 2. Ниже ‰‡ны ‰ок‡з‡тельст‚‡ ‰‚ух теоем, с‚flз‡нных с этими ‡л„оитм‡ми. Теоем‡ Q.7. Если a = b × q + r (r — ост‡ток от ‰елениfl a н‡ b), то НОД (a, b) = НОД (b, r). Док‡з‡тельст‚о Пе‰положим, что E — н‡бо ‚сех общих ‰елителей a и b. К‡ж‰ый элемент E ‰елит a и b, поэтому он ‰елит r = a – b × q. Это озн‡ч‡ет, что E — н‡бо ‚сех общих ‰елителей a, b, и r. Пе‰положим, что F — н‡бо ‚сех общих ‰елителей b и r. К‡ж‰ый элемент F ‰елит b и r; поэтому ‰елит a = b × q + r. Это озн‡ч‡ет, что F — н‡бо ‚сех общих ‰елителей a, b и r. 716
Пиложение Q
Некотоые ‰ок‡з‡тельст‚‡
Это озн‡ч‡ет, что E = F → a, b и r имеют о‰ин‡ко‚ый н‡бо общих ‰елителей. Поэтому НОД (a, b) = НОД (b, r). К‡к мы ‚и‰ели ‚ лекции 2, эт‡ теоем‡ — оснние е‚кли‰о‚о„о ‡л„оитм‡ ‰лfl н‡хож‰ениfl н‡ибольше„о обще„о ‰елителfl ‰‚ух целых чисел. Теоем‡ Q.8. Если a и b — целые числ‡ и об‡ не ‡‚ны нулю, то сущест‚уют целые числ‡ x и y, т‡кие, что НОД (a, b) = x × a + y × b. Док‡з‡тельст‚о: Пе‰положим, что D — н‡бо ‚сех зн‡чений (x × a +y× b), ‡ d есть н‡именьшее зн‡чение, отличное от нулfl. Мы можем з‡пис‡ть a= q × d + r → r= a – q × d=(1 – q × x)a + (–q × y) b, „‰е 0 ≤ r < d. Это пзум傇ет, что r ‚хо‰ит ‚ D. Но поскольку r
С‡‚нение Ниже ‰‡ютсfl ‰ок‡з‡тельст‚‡ некотоых теоем о с‡‚нении, используемые ‚ лекции 2. Теоем‡ Q.9. Если a, b и n — целые числ‡ и n > 0, то a ≡ b (mod n), т‡ и только т‡, к‡ сущест‚ует целое число q, т‡кое, что a = q × n + b. Док‡з‡тельст‚о: Если a ≡ b (mod n), то n | (a – b), это озн‡ч‡ет, что есть целое число q, т‡кое, что a – b = q × n. Поэтому мы имеем a = q × n + b. Если есть целое число q , т‡кое, что a = q × n + b, т‡ a – b = q × n, что озн‡ч‡ет n |(a – b). Поэтому мы имеем a ≡ b (mod n). Теоем‡ Q.10. Если a, b, c и n — целые числ‡ пи n > 0, т‡кие, что a ≡ b (mod n), то a. a + c ≡ b + c (mod n). b. a – c ≡ b – c (mod n). c. a × c ≡ b × c (mod n). 717
Кус
Киптфиfl и безоп‡сность сетей
Док‡з‡тельст‚о: Об‡тите ‚ним‡ние, что a ≡ (mod n) → n | (a – b). ‡. (a+c) – (b + c) = a – b . Поскольку n | (a – b), n | (a + c) – (b + c). Поэтому a + c ≡ b + c (mod n). б. (a – c) – (b – c) = a – b. Поскольку n | (a – b), n | (a – c) – (b – c) Поэтому a – c ≡ b – c (mod n). ‚. (a × c) – (b×c) = (a – b) × c. Поскольку n | (a – b), n | (a – b) × c. Поэтому a × c ≡ b × c (mod n). Теоем‡ Q.11. Если a, b, c, d и n — целые числ‡ пи n> 0, т‡кие, что a × b (mod n) и c ≡ d (mod n), то a. a + c ≡ b + d (mod n). b. a – c ≡ b – d (mod n) c. a × c ≡ b× d (mod n). Док‡з‡тельст‚о: Об‡тите ‚ним‡ние, что a × b mod n → (a – b) → (a-b) =k × n; c ≡ d (mod n) → (c – d)=l× n ‡. (a +c) – (b + d) = (a – b) + (c – d) = k × n + l × n = (k + l) × n. Поэтому (a + c) ≡ b + d (mod n). б. (a – c) – (b – d) = (a – b) – (c – d) = k × n – l x n = (k – l ) × n. Поэтому a – c ≡ b – d (mod n). ‚. a × c – (b – d) = c × (a – b) + b × (c – d) = (c × k + b × l) × n. Поэтому a × c ≡ b × d (mod n)
Q.2. Лекциfl 9 В этом ‡з‰еле пи‚о‰flтсfl некотоые ‰ок‡з‡тельст‚‡ теоем, используемых ‚ лекции 9. Мы не бу‰ем пи‚о‰ить ‰линных ‰ок‡з‡тельст‚, т‡ких к‡к ‰ок‡з‡тельст‚о кит‡йской теоемы об ост‡тк‡х, — интеесующимсfl сту‰ент‡м екомен‰уем посмотеть кни„и по теоии чисел.
Постые числ‡ Мы ‰ок‡жем только о‰ну теоему о постых числ‡х. Теоем‡ Q.I2. Если n — сост‡‚ной объект, то есть постой ‰елитель p, т‡кой, что p ≤ √n. Док‡з‡тельст‚о: Поскольку n — сост‡‚ной объект, n = a × b. Если p — н‡именьший постой ‰елитель n, т‡ p ≤ a и p ≤ b. Поэтому p2 ≤ a × b или p2
Пиложение Q
Некотоые ‰ок‡з‡тельст‚‡
Phi-функциfl Эйле‡ Ниже пи‚о‰flтсfl ти ‰ок‡з‡тельст‚‡, с‚flз‡нные с phi-функцией Эйле‡. Теоем‡ Q.I3. Если p — постое число, т‡ φ(p)= p – 1. Док‡з‡тельст‚о: Поскольку p — постое число, ‚се целые числ‡, меньшие, чем p, ‚з‡имно постые по отношению к p. Поэтому φ(p)= p – 1. Эт‡ теоем‡ — ч‡сть phi-функции Эйле‡. Теоем‡ Q.14. Если p — постое число и e — положительное целое число, т‡ φ (p) =pe – pe-1 Док‡з‡тельст‚о: Целые числ‡, котоые не fl‚лflютсfl ‚з‡имно постыми с pe – (1 × p ), (2 × p) .., (pe-1 × p). Все они целые числ‡ и имеют общий ‰елитель p с pe. Общее количест‚о этих целых чисел — pe-1. Ост‡льн‡fl ч‡сть целых чисел fl‚лflетсfl ‚з‡имно постой с pe. Поэтому φ (p) = pe – pe-1 Теоем‡ Q.15. Если n — сост‡‚ной объект с ‡зложением н‡ постые множители П pi ei, то φ (n) = П (pi ei – pi ei–1) Док‡з‡тельст‚о: Док‡з‡тельст‚о б‡зиуетсfl н‡ ф‡кте, что φ (n) — мультиплик‡ти‚н‡fl функциfl, ‚ котоой m и n fl‚лflютсfl ‚з‡имно постыми. Поскольку элементы ‚ ‡зложении n н‡ постые множители ‚з‡имно постые, φ(П pi ei) = Пφ(pi ei). Поэтому φ (n) = П (pi ei – pi ei–1) Эт‡ теоем‡ — обобщение phi-функции Эйле‡.
М‡л‡fl теоем‡ Фем‡ Ниже пи‚о‰flтсfl ‰‚е теоемы, котоые относflтсfl к м‡лой теоеме Фем‡. Теоем‡ Q.I6. Если p — постое число и a — положительное целое число, ‚з‡имно постое c p, то ap-1 ≡ 1 (mod p). 719
Кус
Киптфиfl и безоп‡сность сетей
Док‡з‡тельст‚о: Может быть ‰ок‡з‡но, что ‚ычеты элементо‚ a, 2a, .., (p –1) a по мо‰улю p ‡‚ны 1, 2 ..., (p – 1), но не обflз‡тельно ‚ том же с‡мом поfl‰ке. В езульт‡те a × 2a × ... × (p – l) ‡‚но [(p – 1)]! ap-1 В езульт‡те 1 × 2 × ... × (p – 1) ‡‚но [(p – 1)]! Это озн‡ч‡ет [(p-1)]! ap-1 ≡ [(p – l)]! (mod p), Сок‡щ‡fl обе стооны тож‰ест‚‡ н‡ (p – 1)!, мы получ‡ем ap-1 ≡ 1(mod p). Эт‡ теоем‡ – п傇fl ‚есиfl М‡лой теоемы Фем‡. Теоем‡ Q.I7. Если p — постое число и ‡ — положительное целое число, то ap ≡ a (mod p). Док‡з‡тельст‚о: Если a и p ‚з‡имно-постые, используfl езульт‡т пе‰ы‰ущей теоемы, мы умнож‡ем обе стооны с‡‚нениfl, чтобы получить ap ≡ a (mod p). Если p | a, то ap ≡ a ≡ 0 (mod p). Эт‡ теоем‡ – ‚то‡fl ‚есиfl теоемы Фем‡.
Теоем‡ Эйле‡ Ниже пи‚о‰итсfl ‰ок‡з‡тельст‚о о‰ной теоемы, с‚flз‡нной с пе‚ой ‚есией теоемы Эйле‡. Втоую ‚есию мы ‰ок‡з‡ли ‚ лекции 9. Теоем‡ Q.18. Если n и a fl‚лflютсfl ‚з‡имно-постыми, то aφ (n) ≡ 1 (mod n). Док‡з‡тельст‚о: Пе‰положим, что элементы ‚ Z n* – r1, r2,.., rφ (n). Мы со片ем ‰у„ой н‡бо ar1, ar 2, ... , ar, arφ(n) умнож‡fl к‡ж‰ый элемент ‚ Z n* н‡ a. Может быть ‰ок‡з‡но, что к‡ж‰ый элемент ‚ этом но‚ом н‡бое fl‚лflетсfl кон„уэнтным элементу ‚ Zn* (не обflз‡тельно ‚ том же с‡мом поfl‰ке). Т‡ким об‡зом, ar1, × ar 2, ×, ar, a × r1, r 2,.., rφ(n) (mod n) Мы имеем aφ(n) [r1 × r2, ×.. × rφ(n)] ≡ r1 × r 2, ×... × rφ(n) (mod n) Отку‰‡ aφ(n) ≡ 1 (mod n).
Осно‚н‡fl теоем‡ ‡ифметики Ниже пи‚о‰итсfl ч‡стичное ‰ок‡з‡тельст‚о осно‚ной теоемы ‡ифметики. Теоем‡ Q.19 Любое положительное целое число n больше чем 1 может быть пе‰ст‡‚лено, к‡к поиз‚е‰ение постых чисел. 720
Пиложение Q
Некотоые ‰ок‡з‡тельст‚‡
Док‡з‡тельст‚о Мы используем ин‰укцию. Пе‚ое ут‚еж‰ение (б‡з‡ ин‰укции) n = 2, fl‚лflетсfl постым числом. Пе‰положим, что ‚се положительные целые числ‡ меньше, чем n может быть пе‰ст‡‚лены к‡к поиз‚е‰ение постых чисел. Мы ‰ок‡жем, что n может т‡кже быть пе‰ст‡‚лено к‡к поиз‚е‰ение постых чисел. Может иметь ‰‚‡ случ‡fl: n – постое число, или n – сост‡‚ной объект. 1. Если n fl‚лflетсfl постым, оно может быть пе‰ст‡‚лено к‡к поиз‚е‰ение из о‰но„о это„о посто„о числ‡. 2. Если n – сост‡‚ной объект, то мы можем н‡пис‡ть n = a × b. Поскольку a и b – об‡ меньше чем n, к‡ж‰ое из них может быть пе‰ст‡‚лено к‡к поиз‚е‰ение постых чисел со„л‡сно н‡шему пе‰положению. Поэтому, n может быть пе‰ст‡‚лено к‡к поиз‚е‰ение постых чисел. Эт‡ теоем‡ — ч‡стичное ‰ок‡з‡тельст‚о осно‚ной теоемы ‡ифметики. Чтобы полностью ‰ок‡з‡ть эту теоему, мы ‰олжны пок‡з‡ть, что это поиз‚е‰ение уник‡льно. Но мы екомен‰уем посмотеть полное ‰ок‡з‡тельст‚о ‚ кн脇х по теоии чисел.
721
Кус
Киптфиfl и безоп‡сность сетей
Глосс‡ий A5/1. Член семейст‚‡ A5 шифо‚ поток‡, используетсfl ‚ Глоб‡льной Системе Пижной С‚flзи (GSM). AddRoundKey. В AES — опе‡циfl, кото‡fl ск뇉ы‚‡ет сло‚о ключ ‡у퉇 с к‡ж‰ой м‡тицей-столбцом состоflниfl. CBC-MAC. См. MAC. CMAC (Chipper-based Message Authentication Code). Ст‡н‰‡тный контоль по‰линности сообщениfl (MAC — Message Authentication Code), котоый опе‰елил NIST (FIPS 113) к‡к ‡л„оитм ‡утентифик‡ции ‰‡нных. Мето‰ по‰обен ежиму сцеплениfl блоко‚ шифнно„о текст‡. HAVAL — ‡л„оитм хэшиниfl пееменной ‰лины с ‰‡й‰жестом сообщениfl ‡зме‡ 128, 160, 192, 224 и 256. Р‡зме блок‡ — 1024 бит‡. InvMixColumns. В AES — ин‚есиfl опе‡ции MixColumns, используетсfl ‚ об‡тном шифе. InvSubBytes. В AES — ин‚есиfl опе‡ции SubBytes, используетсfl пи ‰ешиф‡ции. InvShiftRows. В AES — ин‚есиfl опе‡ции ShiftRows, используетсfl пи ‰ешиф‡ции. MixColumns. В AES — опе‡циfl, кото‡fl пеоб‡зо‚ы‚‡ет к‡ж‰ый столбец состоflниfl к но‚ому столбцу. MixRows. В Whirlpool — опе‡циfl, по‰обн‡fl MixColumns ‚ AES, з‡ исключением то„о, что смеш肇ютсfl стоки ‚место столбцо‚. nonce — случ‡йное число. Oakley. Потокол смены ключей, ‡з‡бот‡нный Хил‡и Ом‡но ; это – улучшенный мето‰ Диффи-Хеллм‡н‡. P-блок (P-box). Компонент ‚ со‚еменном блочном шифе, котоый пеемещ‡ет биты. P-блок сж‡тиfl. P-блок с n ‚хми и m ‚ыхми, „‰е n > m . RC4. Оиентинный н‡ б‡йт шиф поток‡, споектинный Рон‡ль‰ом Ри‚естом. Rijndael. Со‚еменный блочный шиф, ‡з‡бот‡нный бель„ийскими иссле‰о‚‡телflми Джоном Д‡еменом и Винсентом Ри‰жментом и ‚ыб‡нный NIST к‡к Усо‚ешенст‚нный ст‡н‰‡т шифниfl (AES). RotWord. В AES — опе‡циfl, по‰обн‡fl опе‡ции ShiftRows, ‡бот‡ющ‡fl только с о‰ной стокой сл ‚ поцессе ‡сшиениfl ключ‡. S-блок (S-box). Компонент ‚ блочном шифе, котоый з‡менflет биты н‡ ‚хо‰е но‚ыми бит‡ми ‚ ‚ыхо‰е. SHA-1. SHA с блоком 512 бито‚ и ‰‡й‰жестом 160 бито‚. SHA-224. SHA с блоком 512 бито‚ и ‰‡й‰жестом 224 бит‡. SHA-256. SHA с блоком 512 бито‚ и ‰‡й‰жестом 256 бито‚. SHA-384. SHA с блоком 1024 бито‚ и ‰‡й‰жестом 384 бит‡. SHA-512. SHA с блоком 1024 бито‚ и ‰‡й‰жестом 512 бито‚. ShiftColumns. В Whirlpool — опе‡циfl, по‰обн‡fl ShiftRows-пеоб‡знию ‚ AES, з‡ исключением то„о, что ‚место сток с‰‚脇ютсfl столбцы. ShiftRows. В AES — пеоб‡зние, котоое с‰‚脇ет б‡йты. 722
Глосс‡ий
SubBytes. В AES — пеоб‡зние, котоое использует т‡блицу, чтобы по‚ести опе‡цию по‰ст‡но‚ки б‡йто‚. SubWord. В AES — поце‰у‡, по‰обн‡fl пеоб‡знию SubBytes, но используем‡fl только с о‰ной стокой. X.509. Рекоме퉇циfl, ‡з‡бот‡нн‡fl ITU и пинflт‡fl Интенетом, кото‡fl опе‰елflет стуктуу сетифик‡ции. Whirlpool. Киптфическ‡fl систем‡, осннн‡fl н‡ измененном AES. A Абел傇 „упп‡ (abelian group). Коммут‡ти‚н‡fl „упп‡. А‚‡ийный потокол (Alert protocol). В SSL и TLS — потокол, из‚ещ‡ющий об ошибк‡х и отклонениflх от ильной ‡боты. А„ент ‰оступ‡ к сообщению (MAA — Message Access Agent). Пмм‡ клиент‡, кото‡fl н‡к‡пл肇ет и сох‡нflет сообщениfl от се‚е‡. А„ент пользтелfl (UA — User Agent). Компонент ‚ почто‚ой системе, котоый „ото‚ит сообщение и электонный кон‚ет. А„ентст‚о Н‡цион‡льной безоп‡сности (NSA — National Security Agency) — ‡меик‡нское ‡„ентст‚о, соби‡ющее с‚е‰ениfl безоп‡сности. А‰‰ити‚н‡fl ин‚есиfl (additive inverse). В мо‰ульной ‡ифметике a и b ‡‰‰ити‚но ин‚есны ‰у„ ‰у„у, если (b + a) mod n = 0. А‰‰ити‚ный шиф (additive cipher). С‡мый постой моно‡лф‡‚итный шиф, ‚ котоом к‡ж‰ый сим‚ол з‡шифо‚ы‚‡етсfl путем сложениfl е„о зн‡чениfl с ключом. Акти‚н‡fl ‡т‡к‡ (active attack). Ат‡к‡, кото‡fl может изменить ‰‡нные или по‚е‰ить систему. Ал„оитм ‚еифик‡ции (verifying algorithm). Ал„оитм, котоый по‚еflет з‡конность цифо‚ой по‰писи н‡ стооне пиемник‡. Ал„оитм ‰еко‰иниfl (decryption algorithm) — ‡л„оитм, используемый ‰лfl ‰еко‰иниfl. Анонимный потокол Диффи-Хеллм‡н‡ (anonymous Diffie-Hellman). Пе‚он‡ч‡льный потокол Диффи-Хеллм‡н‡ ‚ SSL и TLS. Ассоци‡ти‚ность (associativity). В ‡л„еб‡ической стуктуе, если a, b и c — элементы осно‚но„о н‡бо‡ и • обозн‡ч‡ет о‰ну из опе‡ций, с‚ойст‚о ‡ссоци‡ти‚ности „‡‡нтиует, что (a • b) • c = a • (b • c). Ал„еб‡ическ‡fl стукту‡ (algebraic structure). Стукту‡, состоflщ‡fl из 燇нее опе‰еленно„о н‡бо‡ опе‡ций и элементо‚. Пимеы ‡л„еб‡ических стукту — „уппы, кольц‡ и полfl. Ал„оитм ‰еко‰иниfl (decryption algorithm) — ‡л„оитм, используемый ‰лfl ‰еко‰иниfl. Ал„оитм безоп‡сно„о хэшиниfl (SHA — Secure Hash Algorithm) — fl‰ ст‡н‰‡то‚ хэш-функции, ‡з‡бот‡нных NIST. Был и片н к‡к FIPS 180. Он ‚ осно‚ном б‡зиуетсfl н‡ MD5. Ал„оитм ‚оз‚е‰ениfl ‚ ꂇ‰‡т и умножениfl (square-and-multiply algorithm). Быстый мето‰ ‚оз‚е‰ениfl ‚ степень, ‚ котоом используютсfl ‰‚е опе‡ции — ‚оз‚е‰ение ‚ ꂇ‰‡т и умножение — ‚место о‰ной опе‡ции умножениfl. 723
Кус
Киптфиfl и безоп‡сность сетей
Ан‡лиз т‡фик‡ (traffic analysis). Тип ‡т‡ки конфи‰енци‡льности, ‚ котоой н‡п‡‰‡ющий получ‡ет некотоую инфом‡цию, контолиуfl сете‚ой т‡фик. Ат‡к‡ ‡н‡лизом ‚емени (timing attack). Ат‡к‡ RSA, осннн‡fl н‡ быстом пок‡з‡тельном ‡л„оитме. Ат‡к‡ использует ф‡кт, что ‚емfl, котоое тебуетсfl н‡ к‡ж‰ую ите‡цию, больше, если бит ‡‚ен 1. Ат‡к‡ ‡н‡лизом мощности (power attack). В RSA — ‡т‡к‡, по‰обн‡fl ‡т‡ке ‡н‡лизом ‚емени, пи котоой используетсfl измеение мощности ‚ течение поцесс‡ ‰ешифниfl. Ат‡к‡ ‚оспоиз‚е‰ениfl (replay attack). См. пееи„ы‚‡ние. Ат‡к‡ „убой силы (brute-force attack). Тип ‡т‡ки, пикотоой н‡п‡‰‡ющий побует использть ‚се ‚озможные ключи, чтобы н‡йти ключ шиф‡. Ат‡к‡ зн‡ниfl исхо‰но„о текст‡ (known-plaintext attack). Ат‡к‡, пи котоой н‡п‡‰‡ющий использует н‡бо из‚естных исхо‰ных тексто‚ и их соот‚етст‚ующих з‡шифнных тексто‚, чтобы н‡йти ключ шиф‡. Ат‡к‡ коотко„о блокнот‡ (short-pad attack). Ат‡к‡ RSА, пи котоой злоумышленник может н‡йти исхо‰ный текст, если он имеет ‰‚‡ экземплfl‡ соот‚етст‚ующих з‡шифнных тексто‚, к‡ж‰ый из котоых со片н с ‡зличным коотким з‡полнением. Ат‡к‡ коотко„о сообщениfl (short-message attack). Ат‡к‡ RSА, пи котоой н‡п‡‰‡‚ший зн‡ет н‡бо ‚озможных исхо‰ных тексто‚ и з‡шифо‚ы‚‡ет их т‡к, чтобы н‡йти эк‚肇лент пеех‚‡ченно„о з‡шифнно„о текст‡. Ат‡к‡ м‡ло„о зн‡чениfl ключ‡ ‰ешиф‡ции (low-private-exponent attack). В RSA — ‡т‡к‡, кото‡fl может быть н‡ч‡т‡, если конкетный об‡зец ключ‡ имеет м‡лое зн‡чение. Ат‡к‡ н‡ нескытое сообщение (unconcealed message attack). Ат‡к‡ RSA, осннн‡fl н‡ отношениflх пеест‡но‚ки меж‰у исхо‰ным текстом и з‡шифнным текстом; нескытое сообщение — это сообщение, котоое пи шифнии ‚оспоиз‚о‰ит с‡мо себfl. Ат‡к‡ н‡ секетную инфом‡цию (security attacks). Ат‡ки, у„ож‡ющие целflм безоп‡сности. Ат‡к‡ пе則чи по цепочке. См. ‡т‡к‡ «посе‰ниꇻ. Ат‡к‡ по теоеме Купесмит‡ (Coppersmith’s theorem attack). Тип ‡т‡ки RSA, кото‡fl может быть пе‰пинflт‡, если зн‡чение пок‡з‡телfl степени ключ‡ шифниfl — м‡ленькое. Ат‡к‡ с‚е‰ениfl к сее‰ине (meet-in-the-middle attack). В ‰‚ойной шифо‚ке — ‡т‡к‡, к‡ пыт‡ютсfl н‡йти исхо‰ный текст и з‡шифнный текст; пи этом счит‡ют, что шифние пе‚о„о и ‰ешифние ‚тоо„о со‰ежит ‡н‡ло„ичные опе‡ции. Ат‡к‡ с ‚ыбокой з‡шифнно„о текст‡ (chosen-ciphertext attack). Тип ‡т‡ки, пи котоой поти‚ник пеех‚‡ты‚‡ет н‡бо з‡шифнных тексто‚ и н‡хо‰ит соот‚етст‚ующие исхо‰ные тексты. З‡тем он ‡н‡лизиует п‡ы з‡шифнно„о текст‡ / исхо‰ных тексто‚, чтобы н‡йти ключ шиф‡. Ат‡к‡ по ‚ыб‡нному сообщению (chosen-message attack). Ат‡к‡, пи котоой н‡п‡‰‡‚ший к‡ким-то способом з‡ст‡‚ил Алису по‰пис‡ть о‰но или более сообщений. ͇‡‚ший позже со片ет ‰у„ое сообщение, с со‰еж‡нием, котоое он хочет пе則ть, и по‰ст‡‚лflет н‡ нем по‰пись Алисы. 724
Глосс‡ий
Ат‡к‡ по об‡зцу (pattern attack). Ат‡к‡ шиф‡ н‡ т‡нспозицию, пи котоой используютсfl по‚тоные об‡зцы, со片нные ‚ з‡шифнном тексте. Ат‡к‡ пи из‚естном сообщении (known-message attack). Ат‡к‡ цифо‚ой по‰писи, пи котоой н‡п‡‰‡‚ший имеет ‰оступ к о‰ной или более м по‰писей сообщениfl. Ат‡к‡ с ‚ыбокой исхо‰но„о текст‡ (chosen-plaintext attack). Тип ‡т‡ки, пи котоой поти‚ник пеех‚‡ты‚‡ет н‡бо исхо‰ных тексто‚ и н‡хо‰ит соот‚етст‚ующие з‡шифнные тексты. З‡тем он ‡н‡лизиует п‡ы исхо‰но„о текст‡ / з‡шифнно„о текст‡, чтобы н‡йти ключ шиф‡. Ат‡к‡ с‚flз‡нно„о сообщениfl (related message attack). Ат‡к‡ RSA, пи котоой ‰‚‡ с‚flз‡нных з‡шифнных текст‡ используютсfl, чтобы н‡йти ‰‚‡ с‚flз‡нных исхо‰ных текст‡, к‡ откытый ключ имеет м‡лую ‰лину. Обн‡ужен‡ Ф‡нклином Рейтеом. Ат‡к‡ слfl (dictionary attack). Ат‡к‡, пи котоой злоумышленник интеесуетсfl обн‡ужением только п‡олfl не燂исимо от пользтельско„о ID. Ат‡к‡ отк‡з‡ ‚ обслуж肇нии (denial of service). Е‰инст‚енн‡fl цель ‡т‡ки — „ото‚ность системы. Ат‡к‡ может з‡ме‰лить или п傇ть ‡боту системы. Ат‡к‡ «посе‰ниꇻ (man-in-the-middle attack). Ат‡к‡ потокол‡ Диффи-Хеллм‡н‡, ‚ котоый н‡п‡‰‡ющий ‚‚о‰ит ‚ з‡блуж‰ение ‰‚е стооны, ‚о‚леченные ‚ обмен по потоколу, со片‚‡fl ‰‚‡ ключ‡ се‡нс‡: о‰ин меж‰у пе‚ой стооной и н‡п‡‰‡ющим, ‡ ‰у„ой — меж‰у н‡п‡‰‡ющим и ‚тоой стооной. Ат‡к‡ только з‡шифнно„о текст‡ (ciphertext-only attack). Тип ‡т‡ки, ‚ котоой злоумышленник имеет ‰лfl ‡н‡лиз‡ только пеех‚‡ченный з‡шифнный текст. Ат‡к‡ только н‡ ключ (key-only attack) — ‡т‡к‡ цифо‚ой по‰писи, ‚ котоой н‡п‡‰‡ющий имеет ‰оступ только к откытому ключу. Ат‡к‡ шиоко‚ещ‡тельной ‡ссылки (broadcast attack). Тип ‡т‡ки н‡ RSA, кото‡fl может быть н‡ч‡т‡, если о‰ин объект пе則ет о‰но и то же м‡ленькое сообщение „уппе получ‡телей с о‰ним и тем же с‡мым низким уо‚нем шифниfl. Ат‡к‡ циклическо„о по‚тоениfl (cycling attack). Тип ‡т‡ки н‡ RSА, кото‡fl использует тот ф‡кт, что з‡шифнный текст — пеест‡но‚к‡ исхо‰но„о текст‡, и непеы‚ное шифние з‡шифнно„о текст‡ ‚ конечном счете з‡к‡нч肇етсfl исхо‰ным текстом. Аутентифик‡циfl (authentication). Служб‡ безоп‡сности, кото‡fl по‚еflет н‡ ‰у„ом конце линии и‰ентифик‡ционный ко‰ уч‡стник‡ обмен‡. Аутентифик‡циfl н‡ осно‚е п‡олfl (password-based authentication) — с‡мый постой и с‡мый ст‡ый мето‰ ‡утентифик‡ции объект‡, ‚ котоом п‡оль используетсfl, чтобы и‰ентифицить петен‰ент‡. Аутентифик‡циfl сообщениfl (message authentication). Док‡з‡тельст‚о по‰линности пе則тчик‡ без уст‡но‚лениfl сое‰инениfl. Аутентифик‡ционный обмен (authentication exchange). Мех‡низм безоп‡сности, ‚ котоом ‰‚‡ объект‡ обмен肇ютсfl н‡боом сообщений, чтобы ‰ок‡з‡ть ‰у„ ‰у„у по‰линность с‚оей и‰ентфик‡ции. Аутентифик‡циfl объект‡ (entity authentication). Мето‰ик‡, пе‰н‡зн‡ченн‡fl обеспеч肇ть о‰ной стооне ‰ок‡з‡тельст‚о по‰линности и‰ентифик‡то‡ ‰у725
Кус
Киптфиfl и безоп‡сность сетей
„ой стооны. Объект — по‰линность и‰ентифик‡то‡, кото‡fl ‰олжн‡ быть ‰ок‡з‡н‡, — н‡зы‚‡етсfl петен‰ентом; стоон‡, кото‡fl пыт‡етсfl по‚еить и‰ентифик‡то петен‰ент‡, н‡зы‚‡етсfl ‚еифик‡тоом. Аутентифик‡циfl с помощью ‚ыз-от‚ет‡ (challenge-response authentication). Мето‰ ‡утентифик‡ции, ‚ котоом петен‰ент ‰ок‡зы‚‡ет, что он зн‡ет секет, не посыл‡fl е„о. Аффинный шиф (affine cipher) — шиф, котоый объе‰инflет ‡‰‰ити‚ные и мультиплик‡ти‚ные шифы. Б Б‡йт (byte). Гупп‡ из ‚осьми бито‚, он‡ же октет. Б‡з‡ ‰‡нных услу„ обеспечениfl безоп‡сности (SAD — Security Association Database). Д‚ухмен‡fl т‡блиц‡, „‰е к‡ж‰‡fl сток‡ опе‰елflет о‰иночные услу„и обеспечениfl безоп‡сности (SA). Безоп‡сность т‡нспотно„о уо‚нfl (TLS — Transport Layer Security). Весиfl IETF потокол‡ SSL. Безоп‡сный мех‡низм смены ключей (SKEME — Secure Key Exchange Mechanism). Потокол, ‡з‡бот‡нный ‰лfl смены ключей, котоый использует откытый ключ ‰лfl шифниfl объекто‚ ‡утентифик‡ции. Безоп‡сное/мно„оцеле‚ое ‡сшиение почты (S/MIME — Secure/Multipurpose Internet Mail Extension). Р‡сшиение к MIME, со片‚‡лось ‰лfl обеспечениfl безоп‡сности электонной почты. Бесконечн‡fl „упп‡ (infinite group). Гупп‡ с бесконечным числом элементо‚. Бесспоные по‰писи (undeniable signatures). Схем‡ по‰писи с темfl компонент‡ми: ‡л„оитм по‰пис‡ниfl, потокол по‚еки и потокол отиц‡ниfl. Билет (ticket). З‡шифнное сообщение, пе‰н‡зн‡ченное ‰лfl объект‡ B, но посл‡нное объекту A ‰лfl ‰ост‡‚ки. Бин‡н‡fl опе‡циfl (binary operation). Опе‡циfl, кото‡fl имеет ‰‚‡ си„н‡л‡ н‡ ‚хо‰е и со片ет о‰ин си„н‡л н‡ ‚ыхо‰е. Биометиfl (biometrics). Измеение физиоло„ических или по‚е‰енческих особенностей, котоые и‰ентифициуют чело‚ек‡. Бит (bit) — ‰‚оичн‡fl циф‡ со зн‡чением 0 или 1. Блок (block). Гупп‡ бито‚, об‡б‡ты‚‡ем‡fl к‡к о‰ин мо‰уль. Блокнот ‚ы‚ (opad — output pad). Втоое з‡полнение, используемое ‚ ‡л„оитме HMAC. Блочный шиф (block cipher) — тип шиф‡, ‚ котоом блоки исхо‰но„о текст‡ з‡шифны по о‰ному с использнием о‰но„о и то„о же ключ‡ шиф‡. В Вз‡имно постые (relatively prime). Д‚‡ целых числ‡ н‡зы‚‡ютсfl ‚з‡имно постыми, если их н‡ибольший общий ‰елитель — 1. Вложенное сообщение с ко‰ом ‡утентифик‡ции (nested MAC). MAC с ‰‚умfl ш‡„‡ми. Вмеш‡тельст‚о (snooping). Неомочный ‰оступ к конфи‰енци‡льной инфом‡ции. Ат‡к‡ цели конфи‰енци‡льности ‚ инфом‡ционной безоп‡сности. Внешнflfl об‡тн‡fl с‚flзь ежим (OFB — Output FeedBack) — ежим ‡боты, по‰обный CFB (Cipher FeedBack), но з‰есь е„ист с‰‚脇 мо‰ифициуетсfl пе‰ы‰ущим r-бито‚ым ключом. 726
Глосс‡ий
Возможно сл‡бые ключи (possible weak keys). Н‡бо 48 ключей ‚ DES, „‰е к‡ж‰ый ключ со片ет только четые ‡зличных ключ‡ ‡у퉇. Вхо‰ной блокнот (ipad-input pad). Пе‚ое з‡полнение, используемое ‚ ‡л„оитме HMAC. Выбоочн‡fl пелк‡ (selective forgery) — тип пелки, ‚ котоой пелы‚‡ющий способен пел‡ть по‰пись пе則тчик‡ н‡ сообщении с со‰еж‡нием, ‚ыбоочно ‚ст‡‚ленным с‡мим пелы‚‡ющим. Вычет (residue). Ост‡ток. Г Гене‡то ключей (key generator). Ал„оитм, котоый со片ет ключи ‡у퉇 из ключ‡ шиф‡. Генеиние ключей ‡у퉇 (round-keys generation). В со‚еменном блочном шифе — поцесс, котоый со片ет ключи ‡у퉇 из ключ‡ шиф‡. Г뇂ный секетный ко‰ (master secret). В SSL — 48-б‡йто‚ый секетный ко‰, со片нный из п剂‡ительно„о „л‡‚но„о секетно„о к. Гото‚ность (availability). Компонент инфом‡ционной безоп‡сности, котоый тебует, чтобы инфом‡циfl, со片нн‡fl и сох‡ненн‡fl низ‡цией, был‡ ‰оступн‡ ‡зешенным объект‡м. Гупп‡ (group). Ал„еб‡ическ‡fl стукту‡ с только о‰ной бин‡ной опе‡цией, кото‡fl у‰о‚лет‚оflет четыем с‚ойст‚‡м: з‡мкнутости, ‡ссоци‡ти‚ности, сущест‚нию тож‰ест‚енности и сущест‚нию ин‚есии. Гупп‡ инжененой пежки сети Интенет (IETF — Internet Engineering Task Force). Гупп‡ специ‡листо‚, ‡бот‡ющ‡fl 퇉 ‡з‡боткой и ‡з‚итием н‡бо‡ потокол‡ TCP/IP и Internet. Гупп‡ пеест‡но‚ки (permutation group). Гупп‡, ‚ котоой н‡бо элементо‚ fl‚лflетсfl ‚семи пеест‡но‚к‡ми элементо‚. Д Д‡й‰жест сообщениfl (message digest). Сток‡ фиксинной ‰лины, со片нн‡fl пи пименении хэш-функции к сообщению. Д‡й‰жест сообщениfl (MD — Message Digest). Н‡бо нескольких ‡л„оитмо‚ хэшиниfl, ‡з‡бот‡нных Роном Ри‚естом и обозн‡ч‡емых к‡к MD2, MD4 и MD5. Д‡й‰жест сообщениfl оценки стойкости пимити‚о‚ целостности (RACE RIPMED — RACE Integrity Primitives Evaluation Message Digest). Ал„оитм хэшиниfl с несколькими ‚есиflми, ‡з‡бот‡нный низ‡цией RACE. Д‚ук‡тный DES (2DES — double DES). Ал„оитм шифниfl, котоый использует ‰‚‡ экземплfl‡ шифо‚ ‰лfl шифниfl и ‰‚‡ экземплfl‡ об‡тных шифо‚ ‰лfl ‰ешифниfl. Делимость (divisibility). Если a и b — целые числ‡ и a ≠ 0, мы „о‚оим, что a ‰елит b, если есть целое число k, т‡кое, что b = k × a. Деко‰иние (decoding). Этот темин имеет мно„о опе‰елений. В этой кни„е пзум傇етсfl о‰но из зн‡чений: пеоб‡зние n-бито‚о„о цело„о числ‡ ‚ 2n-‡зfl‰ную стоку с е‰инст‚енной е‰иницей. Положение этой е‰инст‚енной е‰иницы соот‚етст‚ует зн‡чению цело„о числ‡. 727
Кус
Киптфиfl и безоп‡сность сетей
Детемин‡нт (determinant). Ск‡лflное зн‡чение, опе‰еленное ‰лfl ꂇ‰‡тной м‡тицы. М‡тиц‡ об‡тим‡, если ее ‰етемин‡нт fl‚лflетсfl отличным от нулfl. Дешифние (decryption). Пеоб‡зние з‡шифнно„о текст‡, чтобы со片ть пе‚он‡ч‡льный исхо‰ный текст. Дискетный лифм (discrete loatithm). Целое число d н‡зы‚‡етсfl ‰искетным лифмом a по осннию r , если rd ≡ a (mod n), „‰е r — пе‚ооб‡зный коень n и a и n — ‚з‡имно постые. Дистибути‚ность (distributivity). В ‡л„еб‡ической стуктуе с ‰‚умfl опе‡циflми и • ‰истибути‚ность • озн‡ч‡ет, что ‰лfl ‚сех a, b и c — элементо‚ осно‚но„о н‡бо‡, — мы имеем a (b • c) = (a b) • (a c) и (a • b) c = (a c) • (b c). Диффеенци‡льный кипто‡н‡лиз (differential cryptanalysis). Тип ‡т‡ки с ‚ыбокой исхо‰но„о текст‡, ‚‚е‰енный Бих‡мом (Biham) и Ш‡миом (Shamir), использующий ‰иффеенци‡льный поф‡йл S-блоко‚, чтобы н‡п‡сть н‡ сост‡‚ной шиф. Домен ‰‡й‰жест‡ сообщениfl (message digest domain). Н‡бо ‚озможных езульт‡то‚ функции киптфическо„о хэшиниfl. До‚еенность (notarization). Мех‡низм безоп‡сности, пи котоом о‰н‡ ч‡сть сообщест‚‡ ‚ыби‡ет тетью ‰о‚еенную стоону ‰лfl улениfl с‚flзью меж‰у ‰‚умfl объект‡ми. Дополнение ключ‡ (key complement). Сток‡, полученн‡fl ин‚есией к‡ж‰о„о бит‡ ‚ ключе. Е Е‚кли‰о‚ ‡л„оитм (Euclidean’s algorithm) — ‡л„оитм н‡хож‰ениfl н‡ибольше„о обще„о ‰елителfl ‰‚ух положительных целых чисел. З З‡„оло‚ок ‡утентифик‡ции (AH — Authentication Header). Потокол ‚ IPSec, котоый обеспеч肇ет целостность сообщениfl и ‡утентифик‡цию. З‡мкнутость (closure). В ‡л„еб‡ической стуктуе, если a и b — элементы осно‚но„о н‡бо‡ и • обозн‡ч‡ет о‰ну из опе‡ций, с‚ойст‚о з‡мкнутости „‡‡нтиует, что c = a • b — т‡кже член это„о н‡бо‡. З‡полнение т‡фик‡ (traffic padding). Мех‡низм безоп‡сности, ‚ котоом ‚ т‡фик ‚ст‡‚лены некотоые фикти‚ные ‰‡нные, чтобы сть ‡т‡ку ‡н‡лиз‡ т‡фик‡. З‡соflющ‡fl ‡т‡к‡ (clogging attack). Тип ‡т‡ки ‚ мето‰е Диффи-Хеллм‡н‡, ‚ котоой злоумышленник может пе則ть мно„о полуключей о‰ной из стоон, симулиуfl, что они — от ‡зличных источнико‚. Ат‡к‡ может ‚ конечном счете кончитьсfl отк‡зом ‚ обслуж肇нии. З‡шифнный текст (ciphertext). Сообщение после то„о, к‡к оно было з‡шифно. И И‰е‡льн‡fl пflм‡fl безоп‡сность (PFS — Perfect Forward Security). С‚ойст‚о киптфической системы, пи котоой ‡скытие к‡ко„о-то ‡спект‡ секетности не ст‡‚ит по‰ у„озу безоп‡сность бу‰ущей с‚flзи. 728
Глосс‡ий
Инф‡стукту‡ откыто„о ключ‡ (PKI — Public-Key Infrastructure). Мо‰ель ‰лfl со片ниfl и ‡спе‰елениfl сетифик‡то‚, осннн‡fl н‡ X.509. Имит‡циfl источник‡ (masquerading). Тип ‡т‡ки н‡ целостность инфом‡ции, ‚ котоой н‡п‡‰‡ющий ‚ы‰‡ет себfl з‡ ко„о-то ‰у„о„о. Интенет-потокол шифниfl и и‰ентифик‡ции (IKE — Internet Key Exchange). Потокол, пе‰н‡зн‡ченный ‰лfl со片ниfl услу„ обеспечениfl безоп‡сности ‚ IPSec. Исключение отк‡з‡ от сообщениfl (nonrepudiation). Услу„‡ безоп‡сности, кото‡fl з‡щищ‡ет поти‚ ‡т‡ки отк‡з‡ от сообщениfl либо пе則тчик‡, либо пиемник‡ ‰‡нных. Испыт‡ние н‡ ‰елимость (divisibility test). С‡мый элемент‡ный ‰етемининный мето‰ ‰лfl по‚еки постоты чисел, ‚ котоом число объfl‚лflетсfl постым, если оно не ‰елитсfl н‡ ‚се числ‡, меньшие, чем √n. Испыт‡ние постоты чисел (primality test). Детемининный или ‚еоflтностный ‡л„оитм, котоый опе‰елflет, fl‚лflетсfl ли положительное целое число постым числом. Исхо‰ный текст (plaintext) — сообщение пее‰ шифнием или после хешифниfl. Ите‡ти‚н‡fl киптфическ‡fl хэш-функциfl (iterated cryptographic hash function). Хэш-функциfl, ‚ котоой функциfl фиксинно„о ‡зме‡ со片етсfl и используетсfl необхо‰имое количест‚о ‡з. К К‚‡‰‡тичный ‚ычет (QR — Quadratic Residue). Коэффициент ‚ у‡‚нении x2 = a (mod p), „‰е у‡‚нение имеет ‰‚‡ ешениfl. К‚‡‰‡тичный не‚ычет (QNR — Quadratic NonResidue). Коэффициент ‚ у‡‚нении x2 = a (mod p), „‰е у‡‚нение не имеет ешениfl. К‚‡‰‡тичное с‡‚нение (quadratic congruence). Кон„уэнтное у‡‚нение фомы ax2 + bx + c = 0 (mod n). К‚‡‰‡тн‡fl м‡тиц‡ (square matrix). М‡тиц‡, у котоой число сток ‡‚но числу столбцо‚. Кит‡йск‡fl теоем‡ об ост‡тк‡х (CRT — Chinese Remainder Theorem). Теоем‡, ‚ котоой ‰ок‡зы‚‡етсfl, что сущест‚ует уник‡льное ешение к н‡боу кон„уэнтных у‡‚нений с о‰ной пееменной, если мо‰ули ‚з‡имно постые. Ключ (key). Н‡бо зн‡чений, котоые пименflютсfl ‚ ‡л„оитме ‰лfl шифниfl/‰ешифниfl. Ключ се‡нс‡ (session key) — секетный о‰но‡зо‚ый ключ меж‰у ‰‚умfl стоон‡ми. Ключ с‰‚脇 (shift cipher). Тип ‡‰‰ити‚но„о шиф‡, ‚ котоом ключ опе‰елflет смещение сим‚оло‚ к концу ‡лф‡‚ит‡. Ко‰ ‡утентифик‡ции сообщениfl (MAC — Message Authentication Code). Ко‰, котоый ‚ключ‡ет инфом‡цию ‰лfl обеспечениfl безоп‡сности меж‰у ‰‚умfl стоон‡ми. Ко‰ ‡утентифик‡ции сообщениfl, осннный н‡ хешинии (HMAC — HashBased Message Authentication Code). Ст‡н‰‡т, ‚ы‡бот‡нный NIST (FIPS198) ‰лfl ‚ложенно„о MAC. Ко‰иние (encoding). Этот темин имеет мно„о опе‰елений. В этой кни„е пинflто о‰но из зн‡чений: пеоб‡зние 2n-‡зfl‰ной стоки с е‰инст‚ен729
Кус
Киптфиfl и безоп‡сность сетей
ной е‰иницей (1) к целому n-бито‚ому числу. Позициfl е‰инст‚енной е‰иницы (1) опе‰елflет зн‡чение цело„о числ‡. Ко‰иние Radix64 (Radix 64 encoding). Систем‡ ко‰иниfl, ‚ котоой ‰‚оичные ‰‡нные ‡з‰елены н‡ блоки по 24 бит‡. К‡ж‰ый блок ‡з‰елен з‡тем н‡ четые секции н‡ 6 бито‚. ʇ扇fl секциfl из 6 бито‚ интепетиуетсfl к‡к о‰ин сим‚ол ‚ системе — ниченн‡fl печ‡тн‡fl сток‡. Кое-что из‚естное (something known). Секетн‡fl инфом‡циfl, из‚естн‡fl только петен‰енту, кото‡fl может быть по‚еен‡ ‚еифик‡тоом ‰лfl ‡утентифик‡ции объект‡. Кое-что с‚ойст‚енное (something inherent). Х‡‡ктеистики, используемые ‰лfl ‡утентифик‡ции петен‰ент‡, т‡кие к‡к обычные по‰писи, отпеч‡тки п‡льце‚, „олос, лице‚ые х‡‡ктеистики, об‡зец сетч‡тки „л‡з‡ и почек. Кое-что, чем об뇉‡ю (something possessed). Нечто, пи퇉леж‡щее петен‰енту, что может е„о и‰ентифицить, н‡пиме п‡спот, ‚о‰ительские ‡, у‰осто‚еение личности, ке‰итн‡fl к‡точк‡ или к‡точк‡ с инт儇льной схемой, ‚ключ‡ющей микопоцессо. Кольцо (ring). Ал„еб‡ическ‡fl стукту‡ с ‰‚умfl опе‡циflми. П傇fl опе‡циfl ‰олжн‡ у‰о‚лет‚оить ‚се пflть с‚ойст‚, тебуемых ‰лfl ‡беле‚ой „уппы. Вто‡fl опе‡циfl ‰олжн‡ у‰о‚лет‚оить только пе‚ые ‰‚‡. Коме то„о, ‚то‡fl опе‡циfl ‰олжн‡ быть ‰истибути‚н‡ (‡спе‰еленн‡fl) по отношению к пе‚ой. Кольцо ключей (key ring). Н‡бо обще‰оступных или секетных ключей, используемых ‚ PGP. Комбининн‡fl опе‡циfl (combine operation). Опе‡циfl ‚ некотоых блочных шиф‡х, кото‡fl с‚flзы‚‡ет ‰‚‡ блок‡ ‡‚ной ‰лины, чтобы со片ть но‚ый блок. Коммут‡ти‚н‡fl „упп‡ (commutative group). Гупп‡, ‚ котоой бин‡н‡fl опе‡циfl у‰о‚лет‚оflет коммут‡ти‚ному с‚ойст‚у. Коммут‡ти‚ность (commutativity). В ‡л„еб‡ической стуктуе, если a и b — элементы осно‚но„о н‡бо‡ и • обозн‡ч‡ет о‰ну из опе‡ций, коммут‡ти‚ное с‚ойст‚о состоит ‚ том, что a • b = b • a. Композициfl (composition). Композициfl ‰‚ух функций f и g опе‰елflетсfl к‡к g (f (x)). Это озн‡ч‡ет, что сн‡ч‡л‡ функциfl f пименflетсfl к пееменной x и з‡тем функциfl g пименflетсfl ко ‚сему ‰и‡п‡зону зн‡чений f. Конечн‡fl „упп‡ (finite group). Гупп‡ с конечным числом элементо‚. Конечное поле (finite field). Поле с конечным числом элементо‚. Конфи‰енци‡льность (confidentiality). Цель пименениfl се‰ст‚ безоп‡сности, кото‡fl опе‰елflет поце‰уы, чтобы скыть инфом‡цию от неомочно„о объект‡. Конфи‰енци‡льность ‰‡нных (data confidentiality) — служб‡ безоп‡сности, пе‰н‡зн‡ченн‡fl ‰лfl з‡щиты ‰‡нных от ‡т‡к ‡скытиfl, ‚меш‡тельст‚‡ и ‡н‡лиз‡ т‡фик‡. Коэффициент (coefficient). В полиноме — постоflнное зн‡чение ‚ к‡ж‰ом элементе. Коэффициент ложной и‰ентифик‡ции (FAR — False Acceptance Rate). П‡‡мет, ук‡зы‚‡ющий, к‡к ч‡сто систем‡ пизн‡ет н凂тоизнно„о пользтелfl. 730
Глосс‡ий
Коэффициент ложной те‚о„и (FRR — False Rejection Rate). П‡‡мет, ук‡зы‚‡ющий, к‡к ч‡сто систем‡ бу‰ет не ‚ состоflнии опозн‡ть чело‚ек‡, котоый ‰олжен быть ‡спозн‡н. К‡тко‚еменный мето‰ Диффи-Хеллм‡н‡ (ephemeral Diffie-Hellman). Весиfl потокол‡ смены ключей Диффи-Хеллм‡н‡, ‚ котоой к‡ж‰‡fl стоон‡ пе則ет ключ Диффи-Хеллм‡н‡, по‰пис‡нный ее секетным ключом. Киптфиfl (cryptography). Н‡ук‡ и искусст‚о пеоб‡зниfl сообщений с целью с‰ел‡ть их „‡‡нтинно устойчи‚ыми к ‡т‡к‡м. Киптфический синт‡ксис сообщениfl (Cryptographic Message Syntax) — синт‡ксис, используемый ‚ S/MIME, котоый опе‰елflет точную схему ко‰иниfl со‰еж‡ниfl к‡ж‰о„о тип‡. Киптфическ‡fl систем‡ с симметичным ключом (symmetric-key cryptosystem). Киптфическ‡fl систем‡, ‚ котоой е‰инст‚енный ключ з‡секеч肇ниfl используетсfl и ‰лfl шифниfl, и ‰лfl ‰ешифниfl. Киптфическ‡fl систем‡ эллиптических ки‚ых (elliptic curves cryptosystem). Киптосистем‡ с ‡симметичными ключ‡ми н‡ осно‚е эллиптических ки‚ых. Киптфическ‡fl систем‡ RSA (RSA cryptosystem). С‡мый общий ‡л„оитм с использнием откыто„о ключ‡, изобетенный Ри‚естом (Rivest), Ш‡миом (Shamir) и А‰ельм‡ном (Adieman). Кипто‡н‡лиз (cryptanalysis). Н‡ук‡ и искусст‚о «‚зло쇻 ко‰о‚. Киптосистем‡ с ‡симметичными ключ‡ми (asymmetric-key cryptosystem). Киптфическ‡fl систем‡, кото‡fl использует ‰‚‡ ‡зличных ключ‡ ‰лfl шифниfl и ‰ешифниfl: откытый ключ — ‰лfl шифниfl и секетный ключ — ‰лfl ‰ешифниfl. Киптосистем‡ Р‡бин‡ (Rabin’s cryptosystem). В‡и‡нт RSА киптфической системы, изобетенный Р‡биным, ‚ котоом зн‡чение e и d уст‡но‚лено н‡ 2. Киптосистем‡ Эль-Г‡м‡лfl (ElGamal’s cryptosystem) — киптосистем‡ с ‡симметичными ключ‡ми, изобетенн‡fl Эль-Г‡м‡лем (ElGamal), кото‡fl б‡зиуетсfl н‡ поблеме ‰искетно„о лифм‡. Л Л‡‚инный эффект (avalanche effect) — жел‡тельн‡fl х‡‡ктеистик‡ ‚ шифе, ‚ котоом м‡лое изменение ‚ исхо‰ном тексте или ключе конч‡етсfl большим изменением ‚ з‡шифнном тексте. «Л‡зейꇻ (trapdoor). Особенность ‡л„оитм‡, кото‡fl поз‚олflет злоумышленнику обхо‰ить безоп‡сность, если он зн‡ет эту особенность. «Л‡зейꇻ ‚ о‰ностоонней функции (TOWF — Trapdoor One-Way Function). Особенность о‰ностоонней функции, пи котоой кто-то может полностью изменить езульт‡т, если зн‡ет эту л‡зейку. Линейные ‰иоф‡нто‚ы у‡‚нениfl (linear Diophantine’s equations) — у‡‚нение ‰‚ух пееменных фомы ax + bx = c. Линейное с‡‚нение. В этом тексте — у‡‚нение фомы ax ≡ b (mod n). Линейный кипто‡н‡лиз (linear cryptanalysis). Ат‡к‡ зн‡ниfl исхо‰но„о текст‡, пи котоой используетсfl линейн‡fl ‡ппоксим‡циfl, чтобы ‡н‡лизить блочный шиф. 731
Кус
Киптфиfl и безоп‡сность сетей
Линейный е„ист с‰‚脇 с об‡тной с‚flзью (LFSR — Linear FeedBack Shift Register). Ре„ист с‰‚脇 с об‡тной с‚flзью, ‚ котоом функциfl об‡тной с‚flзи — линейн‡. Линейный S-блок (linear S-box). S-блок, ‚ котоом к‡ж‰ый ‚ыхо‰ fl‚лflетсfl линейной функцией ‚хо‰о‚. М М‡л‡fl теоем‡ Фем‡ (Fermat’s little theorem). В пе‚ой ‚есии: если p — постое число и a — целое число, т‡кое, что p не ‰елит a, то a p-1 = 1 mod p. Во ‚тоой ‚есии: если p — постое число и a — целое число, то a p = a mod p. М‡теи‡л ‰лfl ключей (key material). В SSL и TLS — сток‡ пееменной ‰лины, из котоой из‚лек‡ютсfl необхо‰имые ключи и меты ‰лfl с‚flзи. М‡тиц‡ (matrix). Пflмоу„ольный м‡сси‚ l × m. элементо‚, ‚ котоых l — число сток, ‡ m – число столбцо‚. М‡тиц‡ состоflний (state). В AES — мо‰уль ‰‡нных ‚ помежуточных к‡сꇉ‡х, состоит из м‡тицы 16 б‡йто‚. В S-AES мо‰уль ‰‡нных состоит из 4 полуб‡йто‚. М‡тиц‡-столбец (column matrix). М‡тиц‡ только с о‰ним столбцом. М‡тиц‡-сток‡ (row matrix) — м‡тиц‡ с е‰инст‚енной стокой. М‡шин‡ «Эни„쇻 (Enigma machine) — шифльн‡fl м‡шин‡, б‡зил‡сь н‡ пинципе отоных шифо‚. Использл‡сь немецкой ‡мией ‚ течение Втоой мио‚ой ‚ойны. Меж‰ун‡о‰ный Союз Электос‚flзи — Секто Ст‡н‰‡тиз‡ции (ITU-T — International Telecommunication Union-Telecommunication Standardization Sector). Гупп‡ меж‰ун‡о‰ных экспето‚, от‚етст‚енн‡fl з‡ ст‡н‰‡ты с‚flзи. Мето‰ испыт‡ниfl постоты чисел ꂇ‰‡тным конем (square root primality test method). Мето‰ испыт‡ниfl постоты чисел, осннный н‡ ф‡кте, что ꂇ‰‡тный коень положительно„о цело„о числ‡ по мо‰улю n — только +1 или –1, если n — постое. Мето‰ испыт‡ниfl постоты чисел тестом Фем‡ (Fermat’s primality test method). Испыт‡ние постоты чисел, осннное н‡ М‡лой теоеме Фем‡. Мето‰ По뇉‡ p – 1 ‡зложениfl н‡ множители (Polard’s p–1- factorization method). Мето‰, котоый н‡хо‰ит ‰лfl некотоо„о числ‡ постой сомножитель p, пи усло‚ии, что p – 1 не имеет коэффициент‡ больше„о, чем 燇нее 燉‡нное зн‡чение B, н‡зы‚‡емое „‡ницей. Мето‰ ‡з‡бот‡н Джоном М. Пол뇉ом. Мето‰ По뇉‡ rho ‡зложениfl н‡ множители (Polard’s rho factorization method). Мето‰, котоый н‡хо‰ит ‰лfl некотоо„о числ‡ постой сомножитель p. Зн‡чениfl, получ‡емые ‡л„оитмом, по‚тоflютсfl, со片‚‡fl фому, по‰обную н‡ „‡фике „еческой бук‚е «о». Мето‰ ‡з‡бот‡н Джоном М. Пол뇉ом. Мето‰ ‡зложениfl н‡ множители по‚екой ‰елением (trial division factorization method). С‡мый постой и н‡именее эффекти‚ный ‡л„оитм н‡хож‰ениfl коэффициенто‚ положительно„о цело„о числ‡, ‚ котоом побуют ‚се положительные целые числ‡, н‡чин‡ющиесfl с 2, чтобы н‡йти о‰но число, котоое ‰елит n. 732
Глосс‡ий
Мето‰ ‡зложениfl н‡ множители Фем‡ (Fermat’s factorization method). Мето‰ ‡зложениfl н‡ множители, ‚ котоом целое число n ‰елитсfl н‡ ‰‚‡ положительных целых числ‡ a и b т‡к, чтобы n = a × b. Мех‡низмы безоп‡сности (security mechanisms). Восемь мех‡низмо‚, екомен‰о‚‡нных ITU-T, чтобы обеспечить службы безоп‡сности: шифо‚к‡, целостность ‰‡нных, цифfl по‰пись, ‡утентифик‡циfl, з‡полнение т‡фик‡, уление м‡шутиз‡цией, ‰о‚еенность и уление ‰оступом. Мно„о‡лф‡‚итный шиф (polyalphabetic cipher). Шиф, ‚ котоом к‡ж‰ое поfl‚ление сим‚ол‡ может иметь ‡зличное зн‡чение з‡мены. Мно„оцеле‚ое ‡сшиение почты (MIME — Multipurpose Internet Mail Extension). Потокол, котоый поз‚олflет пе則‚‡ть ‰‡нные не-ASCII чеез электонную почту. Множест‚о целых чисел (set of integers – Z). Н‡бо ‚сех целых чисел от отиц‡тельной бесконечности ‰о положительной бесконечности. Мо‰ифик‡циfl (modification). Тип ‡т‡ки н‡ целостность инфом‡ции, ‚ котоой н‡п‡‰‡ющий 燉еж肇ет, у‰‡лflет или изменflет инфом‡цию, чтобы получить от это„о ‚ы„о‰у ‰лfl себfl. Мо‰уль (modulus). Делитель ‚ мо‰ульной ‡ифметике. Мо‰ульн‡fl ‡ифметик‡ (modular arithmetic). Тип ‡ифметики, ‚ котоой пи ‰елении цело„о числ‡ ‰у„им используетсfl только о‰ин из ‚ыхо‰о‚, ост‡ток r, ‡ ч‡стное отб‡сы‚‡етсfl. Моно‡лф‡‚итный шиф (monoalphabetic cipher). Шиф по‰ст‡но‚ки, ‚ котоом сим‚ол ‚ исхо‰ном тексте ‚с儉‡ изменflетсfl н‡ о‰ин и тот же сим‚ол ‚ з‡шифнном тексте, не燂исимо от е„о позиции ‚ тексте. Моно‡лф‡‚итный шиф по‰ст‡но‚ки (monoalphabetic substitution cipher) — шиф, ‚ котоом ключ отоб‡ж‡ет к‡ж‰ый сим‚ол исхо‰но„о текст‡ ‚ соот‚етст‚ующий сим‚ол з‡шифнно„о текст‡. Мультиплик‡ти‚н‡fl ин‚есиfl (multiplicative inverse). В мо‰ульной ‡ифметике: a и b — мультиплик‡ти‚ные ин‚есии ‰у„ ‰у„‡, если (a × b) mod n = 1. Мультиплик‡ти‚ный шиф (multiplicative cipher). Шиф, ‚ котоом ‡л„оитм шифниfl по‚о‰итсfl умножением исхо‰но„о текст‡ н‡ ключ, и ‡л„оитм ‰ешифниfl по‚о‰итсfl ‰елением з‡шифнно„о текст‡ н‡ ключ. Н Н‡бо шифо‚ (cipher suite). В SSL и TLS — комбин‡циfl смены ключей, хешиниfl и ‡л„оитмо‚ шифниfl. Н‡ибольший общий ‰елитель — НОД (GCD — Greatest Common Divisor). Н‡ибольшее целое число, котоое может ‰елить ‰‚‡ целых числ‡ a и b. Н‡именьший ‚ычет (least residue). Ост‡ток ‚ мо‰ульной ‡ифметике. Н‡ч‡льное число (seed). Н‡ч‡льное зн‡чение, используемое ‚ „ене‡тое пс傉ослуч‡йных чисел или пименflемое ‰лfl то„о, чтобы 燄узить инфом‡цию ‚ flчейки ‚ е„ист с‰‚脇. Н‡цион‡льный Институт Ст‡н‰‡то‚ и Техноло„ии (NIST — National Institute of Standards and Technology). А„ентст‚о ‚ ‡меик‡нском ительст‚е, котоое ‡з‚肇ет ст‡н‰‡ты и техноло„ию. 733
Кус
Киптфиfl и безоп‡сность сетей
Н‡ч‡льный ‚екто (IV initial vector). Блок, используемый некотоыми ежим‡ми ‡боты, чтобы иници‡лизить пе‚ую ите‡цию. Нелинейный S-блок (nonlinear S-box). S-блок, ‚ котоом есть по к‡йней мее о‰ин ‚ыхо‰, котоый опе‰елflетсfl нелинейной функцией ‚хо‰о‚. Непи‚о‰имый полином (irreducible polynomial). Полином степени n, не имеющий полином‡-‰елителfl степени меньше, чем n. Непи‚о‰имый полином не может быть ‡зложен н‡ полиномы со степенью меньше, чем n. Несин„улflн‡fl эллиптическ‡fl к肇fl (nonsingular elliptic curve). Эллиптическ‡fl к肇fl, ‚ у‡‚нении котоой x3 + ax + b = 0 имеетсfl ти ‡зличных конfl. Несинхонный шиф поток‡ (nonsynchronous stream cipher) — шиф поток‡, ‚ котоом к‡ж‰ый ключ поток‡ з‡‚исит от пе‰ы‰уще„о исхо‰но„о текст‡ или з‡шифнно„о текст‡. Но‚ые е‚опейские схемы по‰писей, целостности и шифниfl (NESSIE — New European Schemes for Signatures, Integrity and Encryption) — Е‚опейск‡fl н‡учно-иссле‰о‚‡тельск‡fl ‡з‡ботк‡, имеющ‡fl цель и‰ентифицить безоп‡сные киптфические ‡л„оитмы. О Обл‡сть ключей (key domain). Возможный н‡бо ключей ‰лfl шиф‡. Обм‡н (spoofing). См. имит‡циfl источник‡. Обн‡ужение мо‰ифик‡ции (modification detection). Д‡й‰жест сообщениfl, котоый может ‰ок‡з‡ть целостность сообщениfl. Об‡тим‡fl функциfl (invertible function). Функциfl, кото‡fl с‚flзы‚‡ет к‡ж‰ый элемент ‚ ‰и‡п‡зоне точно с о‰ним элементом ‚ ‰омене. Об‡тный шиф (inverse cipher). Ал„оитм ‰ешифниfl. Общ‡fl ‡т‡к‡ мо‰улfl (common modulus attack) — тип ‡т‡ки RSA, кото‡fl может быть н‡ч‡т‡, если сообщест‚о использует общий мо‰уль. Обще‰оступный ключ з‡секеч肇ниfl (shared secret key). Ключ, используемый ‚ киптфии с ‡симметичным ключом. О„‡ниченн‡fl печ‡тн‡fl сток‡ (quoted-printable). Используем‡fl схем‡ ко‰иниfl, к‡ ‰‡нные состоflт „뇂ным об‡зом из сим‚оло‚ ASCII с незн‡чительной ч‡стью не-ASCII. Если сим‚ол — ASCII, е„о пе則ют без изменений. Если сим‚ол — не-ASCII, е„о пе則ют к‡к ти сим‚ол‡. Пе‚ый сим‚ол — зн‡к ‡‚енст‚‡ (=). Сле‰ующие ‰‚‡ сим‚ол‡ — шест퇉ц‡теичные пе‰ст‡‚лениfl б‡йт‡. О‰но‡зо‚ый блокнот (one-time pad) — шиф, ‚ котоом ключ fl‚лflетсfl случ‡йной после‰о‚‡тельностью сим‚оло‚, имеющей ту же с‡мую ‰лину, что и исхо‰ный текст. О‰но‡зо‚ый п‡оль (one-time password). П‡оль, котоый используетсfl только е‰инож‰ы. О‰ностооннflfl функциfl (OWF — One-Way Function) — функциfl, кото‡fl может быть ле„ко ‚ычислен‡, но ‚ычисление ее ин‚есии неосущест‚имо. Опе‡то мо‰улfl (mod). Опе‡то, используемый ‚ мо‰ульной ‡ифметике, чтобы со片ть ост‡ток. Опе‡то с‡‚нениfl (congruence operator). Опе‡то (≡), используемый ‚ у‡‚нении с‡‚нениfl. 734
Глосс‡ий
Опе‡циfl ‡збиениfl (Split Operation). Опе‡циfl ‚ блочном шифе, кото‡fl ‡зб肇ет блок попол‡м, со片‚‡fl ‰‚‡ блок‡ ‡‚ной ‰лины. Опе‡циfl циклическо„о с‰‚脇 (circular shift operation). Опе‡циfl ‚ со‚еменных блочных шиф‡х, кото‡fl у‰‡лflет k бит с о‰но„о конц‡ и ‚ст‡‚лflет их н‡ ‰у„ом конце блок‡. Оптим‡льное ‡симметичное ‰ополнение шифниfl (OAEP — Optimal Asymetric Encryption Padding). Мето‰, пе‰ложенный „уппой RSA и некотоыми пост‡‚щик‡ми. Он пименflет усложненную поце‰уу, чтобы ‰ополнить сообщение ‰лfl шифниfl, использующе„о RSA. Осно‚ной ежим (main mode). В IKE — любой ежим? ‚ котоом используетсfl обмен с шестью сообщениflми. Отк‡з от сообщениfl (repudiation). Тип инфом‡ционной ‡т‡ки н‡ целостность, кото‡fl может быть ‚ыполнен‡ о‰ной из ‰‚ух стоон обмен‡ сообщениflми и состоflщ‡fl ‚ отиц‡нии ф‡кт‡ пе則чи или пием‡ сообщениfl. Откытый ключ (public key). В киптосистеме с ‡симметичными ключ‡ми — ключ, используемый ‰лfl шифниfl. В цифо‚ой по‰писи т‡кой ключ пименflетсfl ‰лfl по‚еки. Очень хоош‡fl конфи‰енци‡льность (PGP — Pretty Good Privacy) — потокол, изобетенный Филом Циммем‡ном, чтобы обеспечить электонную почту секетностью, целостностью и ‡утентифик‡цией. П П‡сси‚н‡fl ‡т‡к‡ (passive attack). Тип ‡т‡ки, ‚ котоой цель н‡п‡‰‡юще„о состоит ‚ том, чтобы получить инфом‡цию; ‡т‡к‡ не изменflет ‰‡нные и не ‚е‰ит системе. Пе‚ооб‡зный коень (primitive root). В „уппе G = , к‡ поfl‰ок элемент‡ тот же с‡мый, что и φ(n), этот элемент н‡зы‚‡етсfl пе‚ооб‡зным конем „уппы. Пееи„ы‚‡ние (replaying). Тип ‡т‡ки инфом‡ционной целостности, ‚ котоой н‡п‡‰‡ющий пеех‚‡ты‚‡ет сообщение и, не ‡сшифо‚ы‚‡fl, поз‰нее посыл‡ет е„о сн ‰лfl по‚тоно„о использниfl. Пеемеш肇ние (confusion). Жел‡тельное с‚ойст‚о блочно„о шиф‡, котоое скы‚‡ет отношениfl меж‰у з‡шифнным текстом и ключом. Оно поз‚олflет ‡сстоить пл‡ны поти‚ник‡, котоый побует использть з‡шифнный текст, чтобы н‡йти ключ. «Плюшки» (cookies). Текст, котоый со‰ежит некотоую инфом‡цию о пиемнике и ‰олжен быть ‚о炇щен без изменений пе則тчику. Пупп‡ (subgroup). По‰н‡бо H „уппы G fl‚лflетсfl пуппой G, если H — „упп‡ относительно опе‡ций н‡ G. По‰ключение (connection). В потокол‡х SSL и TLS — поцесс, котоый поз‚олflет ‰‚ум объект‡м обмен肇тьсfl ‰‚умfl случ‡йными числ‡ми и со片‚‡ть ключи и меты, необхо‰имые ‰лfl с‚flзи. По‰писы‚‡ющие ‡л„оитм (signing algorithm). В схеме по‰писи — поцесс, используемый пе則тчиком. По‰писи с ук‡з‡нием ‚емени (time-stamped signatures). Цифfl по‰пись с меткой ‚емени, не ‰‡ет ‚озможность поти‚нику по‚тоно использть сообщение (пее脇ть сообщение). 735
Кус
Киптфиfl и безоп‡сность сетей
Поле (field). Ал„еб‡ическ‡fl стукту‡ с ‰‚умfl опе‡циflми, ‚ котоых ‚то‡fl опе‡циfl у‰о‚лет‚оflет ‚се пflть с‚ойст‚, опе‰еленных ‰лfl пе‚ой опе‡ции, з‡ исключением то„о, что нейт‡льный элемент пе‚ой опе‡ции не имеет ин‚есии относительно ‚тоой опе‡ции. Поле Г‡лу‡ (Galois’s field). См. конечное поле. Полезн‡fl 퇄узк‡ со ‚стоенной з‡щитой (ESP — Encapsulating Security Payload). Потокол ‚ IPSec, котоый обеспеч肇ет ‡утентифик‡цию источник‡, целостность и секетность. Полином (polynomial). Вы‡жение фомы anxn + an–1xn–1 + ... + a0x0, „‰е ai xi н‡зы‚‡етсfl i-тым элементом, ‡ ai н‡зы‚‡етсfl коэффициентом i-то„о элемент‡. Полусл‡бые ключи (semi-weak keys). Н‡бо шести ключей ‚ DES, „‰е к‡ж‰ый ключ со片ет только ‰‚‡ ‡зличных ключ‡ ‡у퉇 и к‡ж‰ый из них по‚тоflетсfl ‚осемь ‡з. Поfl‰ок „уппы (order of a group). Число элементо‚ ‚ „уппе. Поfl‰ок элемент‡ (order of an element). В „уппе — н‡именьшее положительное целое число n, т‡кое, что an = e. Почто‚ый се‚е (MTA — Message Transfer Agent). Компонент электонной почты, котоый пе則ет сообщениfl чеез Интенет. П剂‡ительный „л‡‚ный секетный ко‰ (pre-master secret). В SSL — инфом‡циfl безоп‡сности котоой обмен肇ютсfl клиент и се‚е пее‰ ‚ычислением „л‡‚но„о секетно„о к. Пе‰ост‡‚лflющий билет се‚е (TGS — Ticket-Granting Server). В Цебее — се‚е, котоый со片ет билеты ‰лfl е‡льно„о се‚е‡. Петен‰ент (claimant). В ‡утентифик‡ции объект‡ — объект, опоз퇂‡тельный ко‰ котоо„о ‰олжен быть ‰ок‡з‡н. Пимити‚ный полином (primitive polynomial). Непи‚о‰имый полином, котоый ‰елит xe + 1, „‰е e — н‡именьшее целое число ‚ фоме e = 2k – 1. Пинцип „олубиных flщико‚ (pigeonhole principle) — пинцип, котоый ут‚е扇ет, что если n flщико‚ з‡нflты n + 1 „олубем, то по к‡йней мее о‰ин flщик з‡нflт ‰‚умfl „олубflми. Пинцип Кекхофф‡ (Kerckhoff’s principle). Пинцип ‚ киптфии, со„л‡сно котоому нужно ‚с儉‡ пе‰по뇄‡ть, что поти‚ник зн‡ет ‡л„оитм шифниfl/‰ешифниfl. Поэтому сопоти‚ление шиф‡ ‡т‡к‡м ‰олжно б‡зитьсfl только н‡ сох‡нении т‡йны ключ‡. Поблем‡ ‰нfl ож‰ениfl (birthday problem) — кл‡ссическ‡fl поблем‡ опе‰елениfl ‚еоflтности то„о, что n лю‰ей имеют отлич‡ющиесfl ‰‡ты ‰ней ож‰ениfl, „‰е n < 365. Поблем‡ лифм‡ эллиптических ки‚ых (elliptic curves logarithm problem). Эт‡ поблем‡ состоит ‚ н‡хож‰ении по ‰‚ум 燉‡нным точк‡м e1 и e2 множителfl н‡ эллиптической ки‚ой r, т‡ко„о, что e2 = r × e1 , „‰е e1 и e2 — ‰‚е точки, 燉‡нные н‡ этой ки‚ой. Постое число (prime). Положительное целое число, котоое точно ‰елитсfl без ост‡тк‡ только ‰‚умfl целыми числ‡ми, н‡ 1 и н‡ с‡мо себfl. Потокол безоп‡сности Интенет‡ (IPSec Internet Protocol Security). Н‡бо потоколо‚, ‡з‡бот‡нных IETF, котоый обеспеч肇ет безоп‡сность п‡кето‚ н‡ уо‚не сети. 736
Глосс‡ий
Потокол Гийу-Киск‡те‡ (Guillou-Quisquater’s protocol). Дополнение потокол‡ Фи‡т‡-Ш‡ми‡, ‚ котоом может использтьсfl меньшее число ‡ун‰о‚, чтобы ‰ок‡з‡ть по‰линность ‡бонент‡. Потокол Диффи-Хеллм‡н‡ ( Diffie-Hellman’s protocol). Потокол со片ниfl ключей се‡нс‡ без использниfl цент‡ ‡спе‰елениfl ключей ( KDC). Потокол Нии‰ом‡-Шfi‰е‡ (Needham-Schroeder’s protocol). Потокол смены ключей, использующий цент ‡спе‰елениfl ключей (KDC), „‰е пименflетсfl мно„ок‡тный инте‡кти‚ный обмен меж‰у стоон‡ми сообщениflми «‚ызо‚-от‚ет». Потокол От‚еfl-Рисс‡ (Otway-Rees’s protocol). Потокол смены ключей, по‰обный потоколу Нии‰ом‡-Ше‰е‡, но более сложный. Потокол «от ст‡нции к ст‡нции» (station-to-station protocol). Мето‰ со片ниfl ключей се‡нс‡, осннный н‡ потоколе Диффи-Хеллм‡н‡. Этот мето‰ использует у‰осто‚еениfl откыто„о ключ‡, чтобы пе‰от‚‡тить ‡т‡ки «посе‰ниꇻ. Потокол пе則чи „ипетекст‡ (HTTP — Hypertext Transfer Protocol). Обслуж肇ет пик뇉ной уо‚ень, чтобы из‚лек‡ть web-‰окументы. Потокол пе則чи з‡писей (Record Protocol). В SSL и TLS — потокол, котоый ‰ост‡‚лflет сообщениfl от ‚ехне„о уо‚нfl. Потокол уст‡но‚лениfl сое‰инениfl (handshake protocol). В SSL и TLS — потокол, котоый использует сообщениfl, чтобы ‰о„о‚оитьсfl о н‡бое шифо‚, по‰т‚е‰ить по‰линность се‚е‡ клиенту и клиенту — по‰линность се‚е‡, ‡ т‡кже обменflтьсfl инфом‡цией ‰лfl обеспечениfl киптфической безоп‡сности. Потокол Фей„е-Фи‡т-Ш‡ми‡ (Feige-Fiat-Shamir’s protocol). Мето‰ уст‡но‚лениfl по‰линности (‡утентифик‡циfl) с нуле‚ым ‡з„л‡шением, по‰обный потоколу Фи‡т-Ш‡ми‡, но использующий ‚екто секетных ключей. Потокол Фи‡т-Ш‡ми‡ (Fiat-Shamir’s protocol). Мето‰ уст‡но‚лениfl по‰линности с нуле‚ым ‡з„л‡шением, изобетенный Фи‡том и Ш‡миом. Потокол ChangeCipherSpec. Потокол ‚ SSL и TLS, котоый поз‚олflет пеехо‰ от ож艇юще„о ешениfl состоflниfl к ‡кти‚ному состоflнию. Пflмые P-блоки (straight P-Boxes). P-блок с n ‚хми и n ‚ыхми. Пс傉опостое число (pseudoprime). Число, котоое пошло несколько испыт‡ний н‡ постоту чисел, но не „‡‡нтинно fl‚лflетсfl постым числом. Пс傉ослуч‡йн‡fl функциfl (PRF — PseudoRandom Function). В TLS — функциfl, кото‡fl комбиниует ‰‚е функции ‡сшиениfl ‰‡нных: о‰ну использует ‚ MD5 и ‰у„ую — ‚ SHA-1. Р Р‡зложение н‡ множители (factorization). Н‡хож‰ение ‚сех постых сомножителей цело„о числ‡. Р‡ссе肇ние (diffusion). Жел‡тельное с‚ойст‚о блочно„о шиф‡, котоое помет скыть 燂исимости меж‰у з‡шифнным текстом и исхо‰ным текстом. Оно поз‚олflет ‡сстоить пл‡ны поти‚ник‡, котоый использует ст‡тистику з‡шифнно„о текст‡, чтобы н‡йти исхо‰ный текст. Р‡сшиение ключей (key expansion). В шифе ‡у퉇 — поцесс со片ниfl ключей ‡у퉇 из ключ‡ шиф‡. 737
Кус
Киптфиfl и безоп‡сность сетей
Р‡сшиенный е‚кли‰о‚ ‡л„оитм (extended Euclidean algorithm). Ал„оитм, котоый получ‡ет ‰‚‡ целых числ‡, ‡ и b, и может н‡йти зн‡чениfl ‰‚ух пееменных, s и t, котоые у‰о‚лет‚оflют у‡‚нение s × a + t × b = НОД (a, b). Ал„оитм может т‡кже н‡йти мультиплик‡ти‚ную ин‚есию цело„о числ‡ ‚ мо‰ульной ‡ифметике. Р‡ун‰ (round). ʇ扇fl ите‡ти‚н‡fl секциfl ‚ ите‡ционном блочном шифе. Ре„ист с‰‚脇 (shift register). После‰о‚‡тельность flчеек, „‰е к‡ж‰‡fl flчейк‡ со‰ежит е‰инст‚енный бит. Смещение зн‡чений бито‚ может со片ть пс傉ослуч‡йную после‰о‚‡тельность бито‚. Ре„ист с‰‚脇 с нелинейной об‡тной с‚flзью (NLFSR — NonLinear Feedback Shift Register) — е„ист с‰‚脇 с об‡тной с‚flзью, ‚ котоом функциfl об‡тной с‚flзи fl‚лflетсfl нелинейной. Ре„ист с‰‚脇 с об‡тной с‚flзью (FSR — Feedback Shift Register). Ре„ист с‰‚脇 с функцией инфом‡ции об‡тной с‚flзи. Режимы ‡боты (modes of operation). Н‡бо ежимо‚, ‡з‡бот‡нных ‰лfl то„о, чтобы з‡шифть текст любо„о ‡зме‡, и использующих блочные шифы фиксинных ‡змео‚. Режим счетчик‡ ( counter(CTR) mode). Режим ‡боты, ‚ котоом нет инфом‡ции об‡тной с‚flзи. Он похож н‡ ежим OFB (Output FeedBack), но счетчик используетсfl ‚место е„ист‡ с‰‚脇. Режим шифниfl с об‡тной с‚flзью (CFB — Cipher FeedBack). Режим ‡боты, ‚ котоом к‡ж‰ый r-бито‚ый блок ск뇉ы‚‡етсfl по мо‰улю ‰‚‡ с r-бито‚ым ключом, котоый fl‚лflетсfl ч‡стью шифующе„о е„ист‡. Режим электонной ко‰о‚ой кни„и (ECB mode — Electronic CodeBook mode). Режим ‡боты, ‚ котоом к‡ж‰ый блок з‡шифн не燂исимо тем же с‡мым ключом шиф‡. Решето Э‡тосфен‡ (sieve of Eratosthenes). Мето‰, изобетенный „еческим м‡тем‡тиком Э‡тосфеном, чтобы н‡йти ‚се постые числ‡, меньшие, чем n. Ротоный шиф (rotor cipher) — моно‡лф‡‚итн‡fl по‰ст‡но‚к‡, кото‡fl изменflет отоб‡жение меж‰у исхо‰ным текстом и сим‚ол‡ми з‡шифнно„о текст‡ ‰лfl к‡ж‰о„о сим‚ол‡ исхо‰но„о текст‡. С C‚ех‚оз‡ст‡ющий котеж (superincreasing tuple). Котеж, ‚ котоом к‡ж‰ый элемент больше или ‡‚ен сумме ‚сех пе‰ы‰ущих элементо‚. Се‡нс (session). В SSL — с‚flзь меж‰у клиентом и се‚еом. После то„о к‡к се‡нс уст‡но‚лен, эти ‰‚е стооны имеют общую инфом‡цию, т‡кую к‡к и‰ентифик‡то се‡нс‡, сетифик‡т, по‰т‚е扇ющий по‰линность к‡ж‰о„о из них (‚ случ‡е необхо‰имости), мето‰ сж‡тиfl (если необхо‰имо), н‡бо шиф‡ и „л‡‚ный секетный ко‰, котоый используетсfl, чтобы со片ть ключи ‰лfl шифниfl и ‡утентифик‡ции сообщениfl. Секетный ключ (private key). В киптосистеме с ‡симметичными ключ‡ми — ключ, используемый ‰лfl ‰ешифниfl. В цифо‚ой по‰писи т‡кой ключ используетсfl ‰лfl по‰пис‡ниfl. Се‚е ‡утентифик‡ции (AS — Authentication Server) — се‚е, котоый 脇ет оль KDC (цент‡ ‡спе‰елениfl ключей) ‚ потоколе Цебе‡. 738
Глосс‡ий
Сеть ‰о‚еиfl (web of trust). В PGP — кольц‡ ключей, со‚местно используемые „уппой лю‰ей. Син„улflн‡fl эллиптическ‡fl к肇fl (singular elliptic curve). Эллиптическ‡fl к肇fl, у‡‚нение котоой x3 + ax + b = 0 не имеет тех ‡зличных коней. Синхонный шиф поток‡ (synchronous stream cipher). Шиф поток‡, ‚ котоом ключе‚ой поток fl‚лflетсfl не燂исимым от поток‡ з‡шифнно„о текст‡ или исхо‰но„о текст‡. Систем‡ ‚ычето‚ (residue class) — н‡бо н‡именьших ‚ычето‚. Сл‡бые ключи (weak keys). Н‡бо из четыех ключей ‚ DES, „‰е к‡ж‰ый ключ, после то„о к‡к отбошены биты четности, состоит либо из ‚сех нулей либо из ‚сех е‰иниц , либо поло‚ины нулей и поло‚ины е‰иниц. Слепые по‰писи (blind signatures). П‡тентнн‡fl схем‡, ‡з‡бот‡нн‡fl Дэ‚и‰ом Чомом, кото‡fl поз‚олflет по‰писы‚‡ть ‰окумент, не пок‡зы‚‡fl со‰еж‡ние ‰окумент‡ по‰писы‚‡ющему лицу. Сло‚о (word). В AES — „упп‡ из 32 бито‚, кото‡fl может быть об‡бот‡н‡ к‡к е‰инст‚енный объект: м‡тиц‡-сток‡ из четыех б‡йто‚ или м‡тиц‡-столбец из четыех б‡йто‚. Случ‡йн‡fl мо‰ель О‡кл (Random Oracle Model) — и‰е‡льн‡fl м‡тем‡тическ‡fl мо‰ель, ‚‚е‰енн‡fl ‰лfl хеш-функции. Смеситель (mixer). В шифе Ф‡йстелfl — с‡мокон‚етиуемый компонент, котоый состоит из некон‚етиуемой функции и опе‡ции ИСКЛЮЧАЮЩЕЕ ИЛИ. Со‚еменный блочный шиф (modern block cipher). Шиф с симметичным ключом, ‚ котоом к‡ж‰ый n-бито‚ый блок исхо‰но„о текст‡ з‡шифн к‡к n-бито‚ый блок з‡шифнно„о текст‡, с использнием то„о же с‡мо„о ключ‡. Со‚еменный шиф поток‡ (modern stream cipher). Шиф с симметичным ключом, ‚ котоом шифние и ‰ешифние ‚ыполнflютсfl о‰но‚еменно по r бит и используют ключи поток‡. «Соление» п‡олfl (salting). Мето‰ улучшениfl ‡утентифик‡ции н‡ осно‚е п‡олfl, ‚ котоом случ‡йн‡fl сток‡, н‡зы‚‡ем‡fl «соль», пи‚flзы‚‡етсfl к п‡олю. Сост‡‚ной объект (composite). Положительное целое число, котоое имеет больше чем ‰‚‡ ‰елителfl. Сост‡‚ной шиф (product cipher). Сложный шиф — это шиф, котоый комбиниует по‰ст‡но‚ку, пеест‡но‚ку и ‰у„ие компоненты, чтобы обеспечить пеемеш肇ние и ‡ссе肇ние. В‚е‰ен Шенноном. Список Вижене‡ (Vigenere’s tableau). Т‡блиц‡ шифниfl и ‡сшифо‚ки текст‡ ‚ шифе Вижене‡. Список ключей (key schedule). См. ‡сшиение ключ‡. С‡‚нение (congruence). Если n — положительное целое число, и ‰‡ны ‰‚‡ целых числ‡ a и b, то „о‚оflт, что они с‡‚нимы по мо‰улю n, a ≡ b (mod n), если a – b = kn, ‰лfl некотоо„о цело„о числ‡ k. Ст‡н‰‡т цифо‚ой по‰писи (DSS — Digital Signature Standard). Ст‡н‰‡т цифо‚ой по‰писи, пинflтый NIST по‰ номеом FIPS 186. Ст‡н‰‡т шифниfl ‰‡нных (DES — Data Encryption Standard). Блочный шиф с симметичными ключ‡ми, использующий ‡ун‰ы шифо‚ Ф‡йстелfl и ст‡н‰‡тизинный NIST. 739
Кус
Киптфиfl и безоп‡сность сетей
Ст‡тистическ‡fl ‡т‡к‡ (statistical attack). Ат‡к‡, осннн‡fl н‡ зн‡нии ст‡тистики употеблениfl сим‚оло‚ flзык‡. Ст‡те„иfl безоп‡сности (SP — Security Policy). В IPSec — н‡бо 燇нее 燉‡нных тебний безоп‡сности, пименflемых к п‡кету, к‡ е„о нужно пе則ть или пинflть. Ст儇нфиfl (steganography). Мето‰ик‡ безоп‡сности, ‚ котоой сообщение скыто ‚ чем-либо (н‡пиме, ‚ тексте обычно„о ‡сск‡з‡ или ‚ нот‡х). Сущест‚ние ин‚есии (existence of inverse). В ‡л„еб‡ической стуктуе: если a — элемент осно‚но„о н‡бо‡ и • опе‰елflет о‰ну из опе‡ций, это с‚ойст‚о „‡‡нтиует, что сущест‚ует элемент a’, н‡зы‚‡емый об‡тным элементом, т‡кой, что ‡ • a’ = a’ • ‡ = e, „‰е e — нейт‡льный элемент. Сущест‚ние тож‰ест‚енности (existence of identity). В ‡л„еб‡ической стуктуе: если a — элемент осно‚но„о н‡бо‡ и • опе‰елflет о‰ну из опе‡ций, это с‚ойст‚о „‡‡нтиует, что сущест‚ует элемент e, н‡зы‚‡емый нейт‡льным элементом, т‡ким, что a • e = e • a = a. Схем‡ Дэ‚ис‡-Мейе‡ (Davies-Meyer’s scheme). Схем‡ хэш-функции ‚ осно‚ном т‡ же, что и схем‡ Р‡бин‡ (Rabin), з‡ исключением то„о, что он‡ использует пflмую с‚flзь ‰лfl з‡щиты поти‚ ‡т‡ки «с‚е‰ениfl к сее‰ине». Схем‡ М‡тис‡-Мейе‡-Осе‡с‡ (Matyas-Meyer-Oseas’s scheme). Весиfl схемы Де‚ис‡-Мейе‡, ‚ котоой блок сообщениfl используетсfl к‡к ключ к киптфической системе. Схем‡ Мекелfl-ć섇‰‡ (Merkle-Damgard’s scheme). Ите‡ти‚н‡fl хэш-функциfl, кото‡fl устойч肇 к коллизиflм, если функциfl сж‡тиfl тоже устойч肇 к коллизиflм. Схем‡ М臄учи-Пенелfl (Miyaguchi-Preneel’s scheme). Р‡сшиенн‡fl ‚есиfl схемы М‡тис‡-Мейе‡-Осе‡с‡, ‚ котоой исхо‰ный текст, ключ шиф‡ и з‡шифнный текст ск뇉ы‚‡ют по мо‰улю ‰‚‡, чтобы со片ть но‚ый ‰‡й‰жест. Схем‡ по‰писи Шно‡ (Schnorr’s signature). Схем‡ цифо‚ой по‰писи, осннн‡fl н‡ схеме Эль-Г‡м‡лfl, но с уменьшенным ‡змеом по‰писи. Схем‡ по‰писи Эль-Г‡м‡лfl (ElGamal’s signature scheme). Схем‡ цифо‚ой по‰писи ‚ системе Эль-Г‡м‡лfl, с использнием тех же с‡мых ключей. Схем‡ по‰писи RSA (RSA signature scheme). Схем‡ цифо‚ой по‰писи, кото‡fl б‡зиуетсfl н‡ киптфической системе RSA, но изменflет оли секетных и откытых ключей: пе則тчик использует с‚ой собст‚енный секетный ключ, чтобы по‰пис‡ть ‰окумент, ‡ пиемник использует откытый ключ пе則тчик‡, чтобы по‚еить по‰пись. Схем‡ Р‡бин‡ (Rabin’s scheme). Ите‡ти‚н‡fl схем‡ хэш-функции, пе‰ложенн‡fl Р‡биным н‡ осно‚е схемы Мекелfl-ć섇‰‡. Схем‡ цифо‚ой по‰писи (digital signature scheme). Мето‰ систем‡тическо„о со片ниfl безоп‡сной цифо‚ой по‰писи. Схем‡ цифо‚ой по‰писи эллиптических ки‚ых (ECDSA — Elliptic Curves Digital Signature Scheme). Ал„оитм цифо‚ой по‰писи, осннный н‡ ст‡н‰‡те DSA, но использующий эллиптические ки‚ые. 740
Глосс‡ий
Сцепление блоко‚ шифнно„о текст‡ (CBC — Cipher Block Chaining). Режим ‡боты, по‰обный электонной ко‰о‚ой кни„е (Electronic Codebook), но к‡ж‰ый блок сн‡ч‡л‡ ск뇉ы‚‡етсfl по мо‰улю ‰‚‡ с пе‰ы‰ущим з‡шифнным текстом. Т Тест К‡зиско„о (Kasiski’s test). Испыт‡ние ‰лfl то„о, чтобы н‡йти ‰лину ключ‡ ‚ мно„о‡лф‡‚итном шифе. Тест Милле‡-Р‡бин‡ ‰лfl опе‰елениfl посто„о числ‡ (Miller-Rabin’s primality test). Тест есть комбин‡циfl тесто‚ Фем‡ и ꂇ‰‡тно„о конfl ‰лfl н‡хож‰ениfl сильно„о пс傉опосто„о числ‡. Теоем‡ Эйле‡ (Euler’s theorem). Обобщение М‡лой теоемы Фем‡, ‚ котоой мо‰уль fl‚лflетсfl целым числом. Т‡нспотный ежим (transport mode). Режим ‚ IPSec, котоый з‡щищ‡ет инфом‡цию, ‰ост‡‚лflемую от т‡нспотно„о уо‚нfl ‰о сете‚о„о уо‚нfl. Техк‡тный DES (3DES triple DES). Шиф, котоые использует ти экземплfl‡ шифо‚ DES ‰лfl шифниfl и ти экземплfl‡ об‡тных шифо‚ DES ‰лfl ‰ешифниfl. Техк‡тный DES с темfl ключ‡ми (triple DES with three keys). Ре‡лиз‡циfl техк‡тно„о DES, „‰е есть ти ключ‡: K1 , K2 и K3. Техк‡тный DES с ‰‚умfl ключ‡ми (triple DES with two keys). Ре‡лиз‡циfl техк‡тно„о DES, „‰е есть только ‰‚‡ ключ‡: K1 и K2 . Пе‚ый и тетьи к‡сꇉы используют K1; ‚тоой к‡сꇉ использует K2. Т脇мм‡ (trigram). Сток‡ с темfl буꂇми. Туннельный ежим (tunnel mode). Режим ‚ IPSec, котоый з‡щищ‡ет полный п‡кет IP. Он пиним‡ет IP п‡кет, ‚ключ‡fl 燄оло‚ок, пименflет мето‰ы безоп‡сности IPSec к полному п‡кету и з‡тем ‰оᇂлflет но‚ый 燄оло‚ок IP. У Услу„и безоп‡сности (security services). Пflть услу„, с‚flз‡нных с целflми безоп‡сности и ‡т‡к‡ми: конфи‰енци‡льность ‰‡нных, целостность ‰‡нных, ‡утентифик‡циfl, исключение отк‡з‡ от сообщениfl и уление ‰оступом. Уление ‰оступом (access control). Служб‡ безоп‡сности, кото‡fl з‡щищ‡ет поти‚ неомочно„о ‰оступ‡ к ‰‡нным. Т‡кже мех‡низм безоп‡сности, котоый по‚еflет о пользтелfl об‡титьсfl к опе‰еленным ‰‡нным. Уление м‡шутиз‡цией (routing control). Мех‡низм безоп‡сности, котоый непеы‚но изменflет ‰оступные м‡шуты меж‰у пе則тчиком и пиемником, чтобы не ‰‡ть поти‚нику по‰слуш肇ть конкетный м‡шут. Уо‚ень безоп‡сных озеток (SSL — Secure Sockets Layer). Потокол, со片нный ‰лfl обеспечениfl безоп‡сности и сж‡тиfl ‰‡нных, поступи‚ших от пик뇉но„о уо‚нfl. Услу„и обеспечениfl безоп‡сности (SA — Security Association). В IPSec — ло„ические отношениfl меж‰у ‰‚умfl хост‡ми. Услу„и безоп‡сности (security services). Пflть услу„, с‚flз‡нных с целflми безоп‡сности и ‡т‡к‡ми: конфи‰енци‡льность ‰‡нных, целостность ‰‡нных, ‡утентифик‡циfl, исключение отк‡з‡ от сообщениfl и уление ‰оступом. 741
Кус
Киптфиfl и безоп‡сность сетей
Услу„и обеспечениfl безоп‡сности Интенет и потокол улениfl ключ‡ми (ISAKMP — Internet Security Association and Key Management Protocol) — потокол, ‡з‡бот‡нный А„ентст‚ом Н‡цион‡льной Безоп‡сности (NASA), котоый усо‚ешенст‚ует с‚ойст‚‡, опе‰еленные ‚ IKE. Усо ‚е шен ст ‚о ‚‡н ный ст‡н ‰‡т ши ф о ‚‡ ниfl (AES — Advanced Encryption Standard) — блочный шиф не-Ф‡йстелfl с симметичными ключ‡ми, и片нный NIST. Уст‡но‚ление по‰линности с нуле‚ым ‡з„л‡шением (zero-knowledge authentication). Мето‰ ‡утентифик‡ции объект‡, ‚ котоом петен‰ент не ‡скы‚‡ет ниче„о, что мо„ло бы со片ть оп‡сность конфи‰енци‡льности и безоп‡сности. Петен‰ент ‰ок‡зы‚‡ет ‚еифик‡тоу, что он зн‡ет секетную инфом‡цию, не ‡скы‚‡fl ее. Устойчи‚ость к коллизиflм (collision resistance). С‚ойст‚о функции киптфическо„о хэшиниfl. Г‡‡нтиует, что злоумышленник не может н‡йти ‰‚‡ сообщениfl, т‡кие, котоые пи хэшинии пи‚о‰flт к тому же с‡мому ‰‡й‰жесту. Устойчи‚ость к пооб‡зу (preimage resistance). Жел‡тельное с‚ойст‚о функции киптфическо„о хэшиниfl, пи котоом ‰‡ны h и y = h (M) и ‰лfl поти‚ник‡ ‰олжно быть чез‚ыч‡йно ту‰но н‡йти любое сообщение M’, т‡кое, что y = h (М.’). Устойчи‚ость ко ‚тоому пооб‡зу (second preimage resistance). Жел‡тельное с‚ойст‚о ‚ функции киптфическо„о хэшиниfl, ‚ котоой ‰‡ны М. и h (M), и злоумышленник не может н‡йти ‰у„ое сообщение М’, т‡кое, что h (М’) = h (M). Ф Фе‰е‡льный Ст‡н‰‡т Об‡ботки Инфом‡ции (FIPS — FEDERAL INFORMATION PROCESSING STANDARD). Амеик‡нский ‰окумент, опе‰елflющий ст‡н‰‡т об‡ботки ‰‡нных. Фиксинный мето‰ Диффи-Хеллм‡н‡ (fixed Diffie-Hellman). В SSL или TLS — ‚есиfl потокол‡ Диффи-Хеллм‡н‡, ‚ котоом к‡ж‰ый объект может со片ть фиксинный полуключ и пе則ть полуключи, ‚не‰енные ‚ сетифик‡т. Фиксинный п‡оль (fixed-password). П‡оль, котоый используетсfl нео‰нок‡тно ‰лfl к‡ж‰о„о ‰оступ‡. Фи-функциfl Эйле‡ (Euler’s phi-function). Функциfl, кото‡fl н‡хо‰ит число целых чисел, котоые fl‚лflютсfl и меньшими, чем n, и ‚з‡имно постыми с n. Функциfl (function). Отоб‡жение, котоое с‚flзы‚‡ет о‰ин элемент ‚ н‡бое A, н‡зы‚‡емомол‡сть опе‰елениfl, с о‰ним элементом ‚ н‡бое B, н‡зы‚‡емом ‰и‡п‡зон. Функции киптфическо„о хэшиниfl (cryptographic hash function). Функциfl, кото‡fl со片ет н‡мно„о более кооткий ‚ыхо‰ инфом‡ции от 燉‡нной инфом‡ции н‡ ‚хо‰е. Чтобы быть полезной, функциfl ‰олжн‡ быть стойкой, к ‡т‡к‡м пооб‡з‡ и коллизии. 742
Глосс‡ий
Функциfl об‡тной с‚flзи (feedback function). Функциfl, используем‡fl ‚ е„исте с‰‚脇 с об‡тной с‚flзью. Вхо‰ к функции — зн‡чениfl ‚сех flчеек; ‚ыхо‰ — зн‡чение пе‚ой flчейки. Функциfl ‡сшиениfl ‰‡нных (data expansion function). В потоколе TLS — функциfl, кото‡fl использует 燇нее 燉‡нный HAMAC (HASH — Based Message Authentication Code), чтобы у‚еличить ‰лину секетных ‰‡нных. Функциfl сж‡тиfl (compression function). Функциfl, кото‡fl со片ет ‰‡й‰жест фиксинно„о ‡зме‡ из сообщениfl пееменно„о ‡зме‡. Х Х‡‡ктеистический полином (characteristic polynomial). Полином, пе‰ст‡‚лflющий функцию инфом‡ции об‡тной с‚flзи ‚ линейном е„исте с‰‚脇 (см. линейный е„ист LFSR). Хэшиние (hashing) — киптфическ‡fl мето‰ик‡, ‚ котоой ‰‡й‰жест сообщениfl фиксинной ‰лины со片етсfl из сообщениfl пееменной ‰лины. Хэшинное сообщение по‰т‚еж‰ениfl по‰линности (hashed message authentication). По‰т‚еж‰ение по‰линности (‡утентифик‡циfl), использующее ‰‡й‰жест сообщениfl. Хэш-функциfl Whirlpool (Whirlpool hash function). Ите‡ти‚н‡fl функциfl киптфическо„о хэшиниfl, о‰обенн‡fl NESSIE. Осно‚‡н‡ н‡ киптфической системе Whirlpool. Ц Целостность (integrity). См. целостность ‰‡нных. Цент сетифик‡ции (CA — Certification Authority) — низ‡циfl, кото‡fl с‚flзы‚‡ет откытый ключ с объектом и ‚ы‡б‡ты‚‡ет сетифик‡т. Циклическ‡fl пупп‡ (cyclic subgroup). Пупп‡, кото‡fl может быть с„енеин‡, используfl ‚оз‚е‰ение ‚ степень элемент‡ ‚ „уппе. Цели безоп‡сности (security goals). Ти цели инфом‡ционной безоп‡сности: конфи‰енци‡льность, целостность и „ото‚ность. Целостность ‰‡нных (data integrity). Услу„‡ безоп‡сности, ‡з‡бот‡нн‡fl ‰лfl з‡щиты ‰‡нных от мо‰ифик‡ции, ‚ст‡‚ки, у‰‡лениfl и по‚тоной имит‡ции. Т‡кже мех‡низм безоп‡сности, котоый ‰оᇂлflет к ‰‡нным (‚ конец) кооткую по‚еочную комбин‡цию, со片нную опе‰еленным поцессом с‡мостоflтельно от ‰‡нных. По‚ек‡ может быть использн‡, чтобы з‡щитить целостность ‰‡нных. Цент ‡спе‰елениfl ключей (KDC — Key-Distribution Center). Тетье лицо, котоому ‰о‚еflют ‡спе‰еление секетных ключей меж‰у ‰‚умfl стоон‡ми. Цебе (Kerberos). Потокол ‡утентифик‡ции и т‡кже Цент ‡спе‰елениfl ключей (KDC), ‡з‡бот‡нный ‚ MIT. Цифо‚ой Ал„оитм По‰писи (DSA — Digital Signature Algorithm) — цифо‚ой ‡л „о итм по‰ пи си, ис поль зуе мый Ци ф о ‚ым Ст‡н ‰‡ том По‰ пи си (DSS). 743
Кус
Киптфиfl и безоп‡сность сетей
Цифfl по‰пись (digital signature) — мех‡низм безоп‡сности, пи котоом отитель может с помощью электоники по‰пис‡ть сообщение, ‡ пиемник может по‚еить сообщение, чтобы ‰ок‡з‡ть, что сообщение ‰ейст‚ительно по‰пис‡но отителем. Ч Числ‡ Фем‡ (Fermat’s number). Множест‚о целых чисел ‚ фоме Fn = 22n + 1, „‰е n — целое число. Число Месенны (Mersenne’s number). Множест‚о целых чисел ‚ фомуле Mp = 2 p – 1, „‰е p — постое число. Ш Шиф (cipher) — ‡л„оитм ‰ешифниfl и/или шифниfl. Шиф Вижене‡ (Vigenere’s cipher). Мно„о‡лф‡‚итный шиф, ‡з‡бот‡нный Блезом Виженеом, ‚ котоом поток ключей fl‚лflетсfl по‚тоением н‡ч‡льно„о поток‡ ключ‡ з‡секеч肇ниfl. Шиф т‡нспозиции (transposition cipher). Шиф котоый пеемещ‡ет сим‚олы ‚ исхо‰ном тексте, чтобы со片ть з‡шифнный текст. Шиф не-Ф‡йстелfl (non-Feistel’s cipher). Сост‡‚ной шиф, котоый использует только об‡тимые компоненты. Шифние (encryption). Поце‰у‡ получениfl з‡шифнно„о текст‡ из исхо‰но„о текст‡ пи помощи киптфической системы. Шифние симметичными ключ‡ми (symmetric-key encipherment). Шифние, котоое использует киптфическую систему с симметичными ключ‡ми. Шиф, оиентинный н‡ биты (bit-oriented cipher). Шиф, ‚ котоом сим‚олы ‚ исхо‰ном тексте, з‡шифнном тексте и ключе fl‚лflютсfl бит‡ми. Шиф, оиентинный н‡ сим‚ол (character-oriented cipher). Шиф, ‚ котоом сим‚олы ‚ исхо‰ном тексте, з‡шифнном тексте и ключе fl‚лflютсfl буꂇми или циф‡ми. Шиф по‰ст‡но‚ки (substitution cipher). Шиф, котоый з‡менflет о‰ин сим‚ол ‰у„им. Шиф с ‡‚том‡тическим ключом. Шиф поток‡, ‚ котоом к‡ж‰ый по‰ключ ‚ потоке fl‚лflетсfl тем же с‡мым, что и пе‰ы‰ущий сим‚ол исхо‰но„о текст‡. Пе‚ый по‰ключ — секетный по со„л‡шению меж‰у ‰‚умfl стоон‡ми. Шифние с ‡симметичными ключ‡ми (asymmetric-key encipherment). Шифние, использующее киптосистему с ‡симметичными ключ‡ми. Шиф с ‰‚ойной пеест‡но‚кой (double transposition cipher). Шиф т‡нспозиции, ‚ котоом о‰ни и те же ‡л„оитмы шифниfl и ‰ешифниfl по‚тоflютсfl с ‰‚умfl ключ‡ми или о‰ним и тем же ключом. Шиф плейфее‡ (playfair’s cipher). Мно„о‡лф‡‚итный шиф, ‚ котоом ключ з‡секеч肇ниfl состоит из 25 бук‚ ‡лф‡‚ит‡, ‡змещенных ‚ м‡тице 5 × 5. Шиф поток‡ (stream cipher). Тип шиф‡, ‚ котоом шифние и ‰ешифние ‚ыполнflютсfl о‰но‚еменно только с о‰ним сим‚олом (т‡ким к‡к сим‚ол или бит). 744
Глосс‡ий
Шиф Ф‡йстелfl (Feistel’s cipher). Кл‡сс сост‡‚ных шифо‚, состоflщих и из об‡тимых, и из необ‡тимых компоненто‚. Шиф Ф‡йстелfl комбиниует ‚се необ‡тимые элементы ‚ мо‰уле (‚ этой кни„е н‡зы‚‡емом «смеситель») и использует тот же с‡мый мо‰уль ‚ ‡л„оитм‡х ‰ешифниfl и шифниfl. Шиф Хилл‡ (Hill’s cipher). Мно„о‡лф‡‚итный шиф, ‚ котоом исхо‰ный текст ‡з‰елен н‡ блоки ‡‚но„о ‡зме‡, и блоки з‡шифны по о‰ному т‡ким способом, что к‡ж‰ый сим‚ол ‚ блоке ‚носит ‚к뇉 ‚ шифние ‰у„их сим‚оло‚ ‚ блоке. Шиф Цез‡fl (Caesar’s cipher). А‰‰ити‚ный шиф с ключом, имеющим фиксинное зн‡чение. Использлсfl Юлием Цез‡ем. Э Экзистенци‡льн‡fl пелк‡ (existential forgery). Тип пелки по‰писи, ‚ котоой пелы‚‡ющий может и способен со片ть ильную п‡у по‰пись/сообщение, но не может е‡льно ее использть. Электонн‡fl почт‡ (electronic mail — e-mail) — электонн‡fl ‚есиfl почты. Эллиптические ки‚ые (elliptic curves). Кубические у‡‚нениfl с ‰‚умfl пееменными сле‰ующей фомы: y2 + b1 xy + b2y = x 3 + a1 x2 + a2x + a 3. Эне„ичный ежим (aggressive mode) — ежим ‚ IKE, котоый fl‚лflетсfl сж‡той ‚есией соот‚етст‚ующе„о осно‚но„о ежим‡ и использует обмен темfl сообщениflми ‚место шести.
745
Кус
Киптфиfl и безоп‡сность сетей
Лите‡ту‡ [Bar02]
Barr, T. Invitation to Cryptology. Upper Saddle River, NJ: Prentice Hall, 2002. [Bis03] Bishop, D. Cryptography with Java Applets. Sudbury, MA: Jones and Bartlett, 2003. [Bis05] Bishop, M. Computer Security. Reading, MA: Addison-Wesley, 2005. [Bla03] Blahut, U. Algebraic Codes for Data Transmission. Cambridge: Cambridge University Press, 2003. [BW00] Brassoud, D., and Wagon, S. Computational Number Theory. Emerville, CA: Key College, 2000. [Cou99] Coutinho, S. The Mathematics of Ciphers. Natick, MA: A. K. Peters, 1999. [DF04] Dummit, D., and Foote, R. Abstract Algebra. Hoboken, NJ: John Wiley & Sons, 2004. [DH03] Doraswamy, H., and Harkins, D. IPSec. Upper Saddle River, NJ: Prentice Hall, 2003. [Dur05] Durbin, J. Modern Algebra. Hoboken, NJ: John Wiley & Sons, 2005. [Eng99] Enge, A. Elliptic Curves and Their Applications to Cryptography. Norwell, MA: Kluver Academic, 1999. [For06] Forouzan, B. TCP/IP Protocol Suite. New York: McGraw-Hill, 2006. [For07] Forouzan, B. Data Communication and Networking. New York: McGraw-Hill, 2007. [FraOl] Frankkel, S. Demystifying the IPSec Puzzle. Norwood, MA: Artech House, 2001. [GarOl] Garret, P. Making, Breaking Codes. Upper Saddle River, NJ: Prentice Hall, 2001. [Kah96] Kahn, D. The Code breakers: The Story of Secret Writing. New York: Scribner,,1996. [KPS02] Kaufman, C., Perlman, R., and Speciner, M. Network Security. Upper Saddle River, NJ: Prentice Hall, 2001. [LEF04] Larson, R., Edwards, B., and Falvo, D. Elementary Linear Algebra. Boston: Houghton Mifflin, 2004. [Mao04] Mao, W. Modern Cryptography. Upper Saddle River, NJ: Prentice Hall, 2004. [MOV97] Menezes, A., Oorschot, P., and Vanstone, S. Handbook of Applied Cryptography. New York: CRC Press, 1997. [PHS03] Pieprzyk, J., Hardjono, T., and Seberry, J. Fundamentals of Computer Security. Berlin: Springer, 2003. 746
Список лите‡туы
[Res0l] [Rhe03] [Ros06] [Sal03] [Sch99] [Sta06] [Sti06] [Tho00] [TW06] [Vau06]
Rescoria, E. SSL and TLS. Reading, MA: Addison-Wesley, 2001. Rhee, M. Internet Security. Hoboken, NJ: John Wiley & Sons, 2003. Rosen, K. Elementary Number Theory. Reading, MA: AddisonWesley, 2006. Solomon, D. Data Privacy and Security. Berlin: Springer, 2003. Schneier, B. Applied Cryptography. Reading, MA: Addison-Wesley, 1996. Stallings, W. Cryptography and Network Security. Upper Saddle River, NJ: Prentice Hall, 2006. Stinson, D. Cryptography: Theory and Practice. New York: Chapman & Hall/CRC, 2006. Thomas, S. SSL and TLS Essentials. New York: John Wiley & Sons, 2000. Trappe, W., and Washington, L. Introduction to Cryptography and Coding Theory. Upper Saddle River, NJ: Prentice Hall, 2006. Vaudenay, S. A Classical Introduction to Cryptography. New York: Springer, 2006.
747
Кус
Киптфиfl и безоп‡сность сетей
Пе‰метный ук‡з‡тель 2DES См. ‰‚ойной DES A5/1 AddRoundKey Blum Blum Shub (BBC) CAST 128 ClientHello Message Fortezza GF (2n) GF (p) GF (pn) HAVAL IDEA InvAddRoundKey InvMixColumns InvShiftRows InvSubBytes IPv4 IPv6 MASH MixColumns MixRows nonce RACE Integrity Primitives Evaluation Message Digest (RIPMED) 394 Radix-64 RC4 RSA ‡т‡ки „ене‡циfl ключей ‰ок‡з‡тельст‚о киптфическ‡fl систем‡ ошибк‡ ‚ пе則че по‰пис‡ние и по‚ек‡ екоме퉇ции схем‡ цифо‚ой по‰писи число бито‚ RotWord SHA з‡полнение ‡сшиение сл
See double DES 267-269 230 672 674 568 546 130 128 129 394 674 239 228 226 221 592 592 390 228 411 442 394 394 533 264-269 318, 327-338, 340, 342 429 attacks 427 key generation 330 proof 327 cryptosystem 370 transmission media 428 signing and verifying 338 recommendations 427 digital signature scheme 338 number of bits 233 394 SHA 398 padding 399 word expansion 748
Пе‰метный ук‡з‡тель
SHA-512 иници‡лиз‡циfl по об‡зцу пото‚к‡ сообщениfl поле ‰лины ‡зложение н‡ множители с‚е‰ениfl к сее‰ине
392, 396 400 77 397 398 322 207, 380
сл слfl стукту‡ ‡у퉇 фин‡льное сложение функциfl сж‡тиfl ShiftColumns ShiftRows SubBytes SubWord Whirlpool ‡н‡лиз пото‚к‡ X.509 ‡ннулиние сетифик‡т‡ ‡ннулиние сетифик‡т‡ с помощью ‰ельт‡ списк‡ ‚озобно‚ление сетифик‡т‡ сетифик‡т X.800 ZIP сж‡тие ‰екомпессиfl Zn Zn* Zp Zp*
399 451 402 402 401 408 226 221, 407 233 392, 405 414 405 490 493 494
А ‡бел傇 „упп‡ ‡„ент пользтелfl (UA) ‡„ент‡ ‰оступ‡ к сообщению (MAA) ‡‰‰ити‚н‡fl ин‚есиfl эллиптическ‡fl к肇fl ‡‰‰ити‚ный шиф ключ с‰‚脇
493 490 25 682 682 684 48-59 58-59, 58,119 59, 119, 602
119, 351 501 502 54 353 80-81 80-81 749
SHA-512 initialization pattern attack message preparation length field factorization attack meet-in-the-middle attack words dictionary attack structure of round final adding compression function
Whirlpool chiper Analysis Preparation X.509 certificate renewal delta revocation certificate revocation certificate ZIP compression decompression
abelian group user agent (UA) message access agent (MAA) additive inverse elliptic curve additive cipher shift cipher
Кус
Киптфиfl и безоп‡сность сетей
кипто‡н‡лиз шиф Цез‡fl ‡‰ес‡циfl ‡кти‚н‡fl ‡т‡к‡ ‡‰ес IP ‡‰минист‡циfl Интенет ‡‰ес пот‡ ‡‰ес с‚flзи ‡л„еб‡ические стуктуы Ал„оитм Безоп‡сно„о хешиниfl ‡л„оитм Л‡с-В儇с‡ ‡л„оитм Монте-К‡ло ‡л„оитм по‰пис‡ниfl ‡л„оитмы хешиниfl ‡л„оитмы шифниfl Ал„оитм Цифо‚ой по‰писи (DSA) (DSA) Амеик‡нский н‡цион‡льный Институт Ст‡н‰‡то‚ Амеик‡нские Ст‡н‰‡тные Ко‰ы ‰лfl Инфом‡ционно„о Обмен‡ ‡н‡лиз т‡фик‡ ‡нонимный потокол Диффи-Хелм‡н‡ ‡ифметики целых чисел ‡хитекту‡ электонной почты ‡„ент ‰оступ‡ к сообщению (MAA) ‡„ент пользтелfl (UA) безоп‡сность киптфические ‡л„оитмы киптфическ‡fl секетность почто‚ые се‚еы (MTA)
81 80-81 644-645 24 643-645 637 645 645 37, 119 394 681 681 420 394 73 437
cryptanalysis Caesar cipher addressing active attack address Internet administration port address link address algebraic structures Algorithm Las Vegas algorithm Monte Carlo algorithm signing algorithm hash algorithms encryption algorithm Digital Signature Algorithm
640
American National Standards Institute (ANSI) Standard Code for Information Interchange (ASCII) traffic analysis anonymous Diffie-Hellman
сетифик‡ты ‡симптотическ‡fl сложность ‡ссоци‡ти‚ность Ассоци‡циfl Электонных От‡слей помышленности (EIA) ‡т‡к‡ ‡н‡лиз т‡фик‡ ‚оспоиз‚е‰ениfl ‚ыбоки шифнно„о текст‡ ‚ыбоки исхо‰но„о текст‡
504 677 120 640
634 22 545 37 501 502 501 503 503 503 501
21 22 22, 604 79 78 750
integer arithmetic e-mail architecture message access agent (MAA) user agent (UA) security cryptographic algorithms cryptographic secrets message transfer agent (MTA) certificates asymptotic complexity associatively Electronic Industries Association (EIA) attack traffic analysis replay attack chosen-ciphertext chosen-plaintext
Пе‰метный ук‡з‡тель
‰искетно„о лифм‡ зн‡ниfl исхо‰но„о текст‡ имит‡циfl источник‡ исхо‰но„о текст‡ мо‰ифик‡ции н‡ мо‰уль н‡ RSA н‡ по‰пис‡нные ‰‡й‰жесты RSA н‡ пок‡з‡тель степени ‰ешиф‡ции н‡ пок‡з‡тель степени шифниfl н‡ е‡лиз‡цию н‡ случ‡йную Мо‰ель О‡кул‡ отк‡з от сообщениfl посе‰ник‡
484 77, 348 22 335 22 336 332 430
только з‡шифнно„о текст‡ н‡ цифо‚ую по‰пись пе則ч‡ по цепочке у„оз‡ „ото‚ности у„оз‡ конфи‰енци‡льности
76 425 486 23 22
у„оз‡ целостности ‡т‡к‡ слfl ‡т‡к‡ только н‡ ключ ‡утентифик‡циfl источник‡ ‰‡нных
334 334 336 374 22 485, 604
220 451 426 25 448
н‡ осно‚е п‡олfl
449
сообщениfl н‡ осно‚е шиф‡
385-386
‡утентифик‡циfl ‚ызо‚-от‚ет ‡утентифик‡циfl использние функции ключе‚о„о хешиниfl использние шиф‡ с ‡симметичными ключ‡ми использние шиф‡ с симметичными ключ‡ми использние цифо‚ой по‰писи
454 454 456 457 454 458 751
discrete logarithm known-plaintext attack masquerading plaintext attacks modification on the modulus on RSA on RSA signed digests on the decryption exponent on the encryption exponent on implementation on random Oracle Model repudiation Man-in-the-middle attack ciphertext-only on digital signature bucket brigade attack threatening availability threatening confidentiality threatening integrity dictionary attack key-only attack Authentication data-origin authentication password-based authentication cipher-based message authenti-cation (CMAC) challenge-response authentication authentication using keyed-hash functions using asymmetric-key cipher using symmetric-key cipher using digital signature
Кус
Киптфиfl и безоп‡сность сетей
‡утентифик‡ций объект‡ и уление ключ‡ми нечто из‚естные нечто, чем об뇉‡ет нечто с‚ойст‚енные ‡ффинный шиф Б б‡з‡ ‰‡нных безоп‡сности (SAD) Б‡з‡ ‰‡нных ст‡те„ии обеспечениfl безоп‡сности (SPD) Безоп‡сное/Мно„оцеле‚ое ‡сшиение почты (S/MIME) киптфические ‡л„оитмы Киптфический Синт‡ксис Сообщениfl(CMS) пиложениfl уление ключ‡ми безоп‡сность безоп‡сность IP (IPSec) с‡‚нение AH и ESP ‡т‡к‡ ‚оспоиз‚е‰ениfl ‡т‡к‡ посе‰ник‡
449 449 449 449 85
595 597 528-434 538 535 539 538 24, 345, 348, 358 586 592 604 604
‡утентифик‡циfl (уст‡но‚ление 593 по‰шинности) объект‡ б‡з‡ ‰‡нных безоп‡сности 595 б‡з‡ ‰‡нных ст‡те„ии обеспечениfl безоп‡сности и‰е‡льн‡fl пflм‡fl безоп‡сность (PFS) исхо‰flщ‡fl Б‡з‡ ‰‡нных Ст‡те„ии Безоп‡сности (SPD) 燄оло‚ок ‡утентифик‡ции
597
з‡соflющ‡fl ‡т‡к‡ ‚хо‰flщ‡fl Б‡з‡ ‰‡нных Ст‡те„ии Безоп‡сности (SPD) конфи‰енци‡льность
602 599
617 598
589
593 752
entity authentication and key management something known something possessed something inherent affine cipher
Security Association Database (SAD) Security Policy Database (SPD) Secure/Multipurpose Internet Mail Extension (S/MIME) cryptographic algorithms Cryptographic Message Syntax (CMS) 4 applications key management security IP Security (IPSec) AH versus ESP replay attack man-in-the-middle attack entity authentication 5 security Association Database (SAD) Security Policy Database (SPD) 560 Perfect Forward Security (PFS) outbound Security Policy Database (SPD) authentication Header(AH) clogging attack inbound Security Policy Database (SPD) confidentiality
Пе‰метный ук‡з‡тель
обеспеч肇емые услу„и Обмен ключ‡ми ‚ Интенет полезн‡fl 퇄узк‡ со ‚стоенной з‡щитой (ESP) Потокол Интенет обмен‡ ключ‡ми (IKE) Потокол Оклеfl потоколы т‡нспотный ежим туннельный ежим уление ‰оступом Услу„и обеспечениfl безоп‡сности Интенет и Потокол Улениfl ключ‡ми (ISAKMP) услу„и обеспечениfl безоп‡сности (SA) ф‡зы IKE целостность сообщениfl Безоп‡сность Т‡нспотно„о уо‚нfl А‚‡ийный Потокол ‚есии „ене‡циfl киптфической секетности „л‡‚ный секетный ко‰ м‡теи‡л ‰лfl ключей н‡бо шифо‚ п剂‡ительный „л‡‚ный секетный ко‰ потокол пе則чи з‡писей потокол уст‡но‚лениfl сое‰инениfl пс傉ослуч‡йн‡fl функциfl (PRF) сообщение Finished сообщение сетифик‡т ‚еифицин функциfl ‡сшиениfl ‰‡нных бесконечн‡fl „упп‡ бесспон‡fl цифfl по‰пись бин‡н‡fl опе‡циfl биометические
592 601 691 601 601 586 587 588 593 618
594 605 593 542-584 579 575 575
services provided Internet Key Exchange (IKE) Encapsulating Security Payload Internet Key Exchange (IKE) Okley protocol protocols transport mode tunnel mode access control Internet Security Association and Key Management Protocol (ISAKMP) security association (SA)
577 578 575 577
IKE Phases message integrity Transport Layer Security Alert Protocol version generation of cryptographic secrets master secret key material cipher suite pre-master secret
580 579
Record Protocol Handshake Protocol
576 580 580 575 123 443 38 464 753
pseudorandom function (PRF) Finished Message Certificate Verify Message data-expansion function infinite group undeniable signature binary operation biometric
Кус
Аутентифик‡циfl (уст‡но‚ление по‰линности) ДНК компоненты лицо по‚е‰енческие мето‰ы пиложениfl е„ист‡циfl точность блоки сж‡тиfl-P блок P блоки P-‡сшиениfl блок S блок пеест‡но‚ки (P-блоки) блок по‰ст‡но‚ки (S-блок) блочные шифы быстое ‚оз‚е‰ение ‚ степень В ‚еифик‡то ‚еоflтностные ‡л„оитмы ‡л„оитм Л‡с-В儇с‡ Монте-К‡ло ‚еоflтностные отношениfl ‚еоflтность ‡ксиомы ‚ычислительн‡fl кл‡ссическ‡fl опе‰еление езульт‡ты с‚ойст‚‡ случ‡йные пееменные случ‡йный экспеимент событиfl ст‡тистические типо‚ое пост‡нст‚о усло‚н‡fl ‚з‡имно постые ‚меш‡тельст‚о ‚оз‚е‰ение ‚ степень и лифм ‚озможно сл‡бые ключи ‚хо‰ной блокнот (ipad) ‚ыхо‰ной блокнот
Киптфиfl и безоп‡сность сетей
464
authentication
467 464 466 467 468 464 467 151 150-153 152 153 150-153 153-154 110 304
DNA components face 433 behavioral techniques applications enrollment accuracy compression P-box 1 P-Box expansion P-Boxes S-box permutation box (P-box) substitution box (S-box) block cipher fast exponentiation
448 681 681 681
verifier probabilistic algorithms Las Vegas algorithm Monte Carlo probabilistic relations probability axioms computational classical assignment outcomes properties random variables random experiment event statistical sample space conditional relatively prime snooping exponentiation possible weak keys input pad (ipad) output pad
646-649 647 647 647 647 646 648 649 646 646 646 646 646 277 22 34 205 383 384 754
Пе‰метный ук‡з‡тель
‚ычислительное опе‰еление ‚еоflтности ‚ычет Г „ене‡то н‡ осно‚е киптфической системы „ене‡циfl ключей
647 47
computational probability assignment residue
673
cryptosystem-based generators
267, 269, 329, key generation 343, 346 „ене‡то пс傉ослуч‡йных 670 pseudorandom number чисел (PRNG) generator (PRNG) ANSI X9.17 673 PGP 674 „ене‡тоы случ‡йных чисел (RNG) 270, 670 random number generators (RNG) „енеиние постых чисел 283 generating primes „뇂ный секетный ко‰ 549 master secret Глоб‡льн‡fl Систем‡ Мобильной 267 Global System for Mobile С‚flзи (GSM) communication (GSM) „ото‚ность 19, 20 availability „упп‡ 119, 122, 123 group „упп‡ „енеиниfl ключей 328 key-generation group Гупп‡ Инжененой Пежки 638 Internet Engineering Task Сети Интенет (IEFT) Force (IETF) „упп‡ пеест‡но‚ки 122 permutation group Гупп‡ по коо‰ин‡ции ‡з‡боток 639 Internet Engineering Steering Интенет Group (IESG) Гупп‡ экспето‚ по кинем‡то532 Movie Picture Expert Group „‡фии (MPEG) (MPEG) Гупп‡ Руко‚о‰ст‚‡ Иссле‰о‚‡ниflми 639 Internet Research Steering ‚ сети Интенет (IRSG) Group (IRSG) Д ‰‡й‰жест сообщениfl ‰‡нные ‡утентифик‡ции поле SPI поле ‰‡нных ‡утентифик‡ции полезн‡fl 퇄узк‡ со ‚стоенной з‡щитой (ESP) поfl‰ко‚ый номе сле‰ующее поле 燄оло‚к‡ ‰‚ук‡тный DES (2DES)
393 590 590 591
Message Digest authentication data SPI field authentication data field
591
ESP – Encapsulating Security Payload sequence number next header field double DES (2DES) 1
590 590 207 755
Кус
‰еление целых чисел ‰етемининный поцесс c инфом‡цией об‡тной с‚flзи ‰ешифние ‰етемининный ‡л„оитм ‰и‡„‡мм‡ ‰искетный лифм ‰елимость Диоф‡нто‚ы у‡‚нениfl ‰иффеенци‡льный кипто‡н‡лиз ‰иффеенци‡льный поф‡йл Диффи-Хеллм‡н (потокол) ‡н‡лиз ‡т‡к‡ «посе‰ниꇻ
Киптфиfl и безоп‡сность сетей
безоп‡сность ключе‚ое со„л‡шение киптфическ‡fl систем‡ потокол ‰о‚еенность ‰оменн‡fl систем‡ имен ‰ост‡‚к‡ с лучшими н‡меениflми
integer division deterministic process with feedback 329, 343, 346 decryption 284 deterministic algorithms 84 diagram 307, 345, 484 discrete logarithm 715 divisibility 46 Diophantine equations 166, 687 differential cryptanalysis 687, 688 differential profiles 482, 602 Diffie-Hellman 483 analysis 485 man-in-the-middle attack 484 security 482 key agreement 318 cryptosystem 482 protocol 27 notarization 642 Domain Name System (DNS) 643 best-effort delivery
Е е‚кли‰о‚ ‡л„оитм е‰иничн‡fl м‡тиц‡
42, 715, 716 60
Euclidean algorithm identity matrix
З з‡„оло‚ок ‡утентифик‡ции з‡мкнутость з‡полнение т‡фик‡ З‡пос о Коммент‡ии (RFC) з‡соflющ‡fl ‡т‡к‡ з‡х‚‡т з‡шифнно„о текст‡ з‡шифнный текст
589 120 26 635-639 602 252, 254 73
Authentication Header (AH) closure traffic padding Request for Comment (RFC) clogging attack ciphertext stealing , (CTS) ciphertext
617
Perfect Forward Security (PFS)
679 471-477
complexity hierarchy hierarchical multiple KDC’s
22
masquerading
И И‰е‡льн‡fl пflм‡fl безоп‡сность (PFS) ие‡хии сложности ие‡хическое множест‚о Центо‚ ‡спе‰елениfl ключей имит‡ции источник‡
38 670
756
Пе‰метный ук‡з‡тель
ин‚есиfl полиноми‡льн‡fl сложениfl умножениfl Институт инженео‚ по электотехнике и ‡‰иоэлектонике (ИИЭР) ин‰екс мет‡ обеспечениfl безоп‡сности (SPI) Интенет Потокол (IP) Инф‡стукту‡ Откыто„о ключ‡ ие‡хическ‡fl мо‰ель мо‰ель «к‡ж‰ый с к‡ж‰ым» мо‰ель ‰о‚еиfl сеть ‰о‚еиfl исключение отк‡з‡ от сообщениfl исключ‡ющее ИЛИ исключ‡ющее ИЛИ ‚ DES Иссле‰о‚‡тельск‡fl Гупп‡ сети Интенет (IRTF) испыт‡ние н‡ ‰елимость испыт‡ние ꂇ‰‡тным конем испыт‡ние постоты чисел истинный „ене‡то случ‡йных чисел (TRNG) исхо‰ный текст К к‚‡‰‡тн‡fl м‡тиц‡ ꂇ‰‡тичный ‚ычет (QR) ꂇ‰‡тичный не‚ычет (QNR) ꂇ‰‡тичное ешето ꂇ‰‡тичное с‡‚нение кл‡сс P кл‡сс ‚ычето‚ кл‡ссическое опе‰еление ‚еоflтности кит‡йск‡fl теоем‡ об ост‡тк‡х ключ ключе‚ое ‰ополнение ключе‚ое со„л‡шение ст‡нциик-ст‡нции
54, 139 134 54 54 640
590
Inverse polynomial additive multiplicative Institute of Electrical and Electronics Engineers (IEEE) 6 security parameter index (SPI)
643 494
Internet Protocol (IP) 6 Public-Key Infrastructure (PKI) 495 hierarchical model 496 mesh model 495 trust model 496 web of trust 423, 425 nonrepudiation 129, 155, 156 exclusive-or 188 XOR DES 639 Internet Research Task Force (IRTF) 5 284 divisibility test 287 square root test 284-291 primality testing 778 true random number generator (TRNG) 73 plaintext
60 301 301 298 301 680 53 647
square matrix quadratic residue (QR) quadratic nonresidue (QNR) quadratic sieve quadratic congruence P class residue class classical probability assignment
299-300 73 205 486
Chinese remainder theorem key key complement Station-to-Station key agree ment
757
Кус
ключе‚ой ‰омен мультиплик‡ти‚ный шиф ключ з‡секеч肇ниfl ключ се‡нс‡ ключе‚ой шиф пеест‡но‚ки Ко‰ обн‡ужениfl мо‰ифик‡ции (MDC) Ко‰ уст‡но‚лениfl по‰линности сообщениfl (MAC) ко‰иние н‡ осно‚е слfl ко‰о‚‡fl кн脇 ко‰инные об‡тные с‚flзи кое-что из‚естное кое-что с‚ойст‚енное кое-что, чем об뇉‡ю количест‚о постых чисел кольц‡ кольц‡ ключей комбининн‡fl опе‡циfl коммут‡ти‚н‡fl „упп‡ коммут‡ти‚ное кольцо коммут‡ти‚ность компоненты со‚еменно„о блочно„о шиф‡ кон„уэнтные „ене‡тоы конст‡нт‡ ‡у퉇 конфи‰енци‡льность конфи‰енци‡льность ‰‡нных Копо‡циfl Интенет по е„ист‡ции имен и номео‚ ‰омено‚ (ICANN) коэффициент ложной и‰ентифик‡ции (FAR) ‚еифик‡циfl „олос и‰ентифик‡циfl н‡ж‡тие к뇂иши отпеч‡ток п‡льц‡ по‰пись ‡‰ужн‡fl оболочк‡ уки
Киптфиfl и безоп‡сность сетей
76 84 76 473, 475, 478, 481, 602 103 380 366, 380, 423, 448 682 101 255 449 449 449 277 126 507 158 119 126 120 150 671 233, 413 19, 20, 366, 425 25 639
468 465 467 465 467 466 467 466 466 758
key domain multiplicative cipher secret key session key keyed transposition ciphers Modification detection code (MDC) Message authentica-tion code (MAC) dictionary-based encoding code book cipher feedback (CFB) something known something inherent something possessed cardinality of primes ring key rings combine operation commutative group commutative ring commutativity components of a modern block cipher congruential generators round constant confidentiality data confidentiality Internet Corporation for Assigned Names and Numbers (ICANN) false acceptance rate (FAR) verification voice identification keystroke fingerprint signature iris hands
Пе‰метный ук‡з‡тель
сетч‡тк‡ физиоло„ические мето‰ы коэффициент‡ ложной те‚о„и (FRR) к‡тко‚еменный мето‰ ДиффиХ‡ллем‡н‡ кипто‡н‡лиз ‡т‡к‡ с ‚ыбокой з‡шифнно„о текст‡ ‡т‡к‡ с ‚ыбокой исхо‰но„о текст‡ ‡т‡к зн‡ниfl исхо‰но„о текст‡ ‡т‡к‡ только з‡шифнно„о текст‡ киптфии с ‡симметичными ключ‡ми киптфиfl с симметичными ключ‡ми киптфии откыто„о ключ‡ Диффи-Хеллм‡н‡ ‡л„оитм RSA ‡л„оитм Эль-Г‡м‡лfl эллиптическ‡fl к肇fl Р‡бин‡ киптфиfl эллиптической ки‚ой, мо‰елиующ‡fl киптосистему Эль-Г‡м‡лfl. Киптфический Синт‡ксис Сообщениfl Киптосистем‡ Эль-Г‡м‡лfl „ене‡ции ключей ‰ешифние киптфии эллиптической ки‚ой пелк‡ по‰т‚еж‰ение по‰пис‡ние и по‰пис‡ние схем цифо‚ой по‰писи схем‡ цифо‚ой по‰писи эллиптической ки‚ой шифние с эллиптической ки‚ой киптосистем‡ н‡ осно‚е мет эллиптических ки‚ых (ЕЭС)
466 465 467
retina 43 physiological techniques
545
ephemeral Diffie-Hellman
76, 82, 90 78
cryptanalysis chosen-ciphertext attack
79
chosen-plaintext attack
77 76
known-plaintext attack ciphertext-only attack
318
asymmetric-key cryptography
73, 248
symmetric-key cryptography
28
public-key cryptography Diffie-Hellman RSA algorithm ElGamal algorithm elliptic curve Rabin elliptic curve cryptography simulating ElGamal
327 345 350 356
534 345-349 431 357 356
Cryptographic Message Syntax (CMS) ElGamal Cryptosystem keys generation decryption elliptic curve cryptography
433 421
forgery verifying and signing
431 356
digital signature scheme encryption with elliptic curve encryption with elliptic curve elliptic curve cryptosystem (ECC)
357 350
759
Кус
ку„fl систем‡ обозн‡чений киптосистем‡ Р‡бин‡ китеий Эйле‡ Л л‡‚инный эффект л‡зейк‡ л‡зейк‡ ‚ о‰ностоонней функции (TOWF) линейн‡fl ‡л„еб‡ линейное ‰иоф‡нто‚о у‡‚нение линейное с‡‚нение линейное у‡‚нение с о‰ной пееменной линейный S-блоко‚ линейный и нелинейный S-блоки (с‡‚нение) линейный кон„уэнтный „ене‡то линейный кипто‡н‡лиз линейный поф‡йл линейный шиф лифм М м‡жоит‡н‡fl функциfl М‡л‡fl теоем‡ Фем‡ м‡ксим‡льн‡fl энтопиfl М‡шутиз‡циfl – сете‚ой уо‚ень м‡теи‡л ‰лfl ключей м‡тиц‡ ‡‰‰ити‚н‡fl ин‚есиfl ‚ычет ‚ычит‡ние „л‡‚н‡fl ‰и‡„он‡ль ‰етемин‡нт ин‚есиfl ꂇ‰‡тн‡fl мультиплик‡ти‚н‡fl ин‚есиfl опе‡циfl е‰иничн‡fl ‡‚енст‚о ск‡лflное умножение сложениfl
Киптфиfl и безоп‡сность сетей
50 342 302
circular notation Rabin cryptosystem Euler's criterion
199 323, 326 323-324 37 46 64 64
avalanche effect trapdoor trapdoor one-way function (TOWF) linear algebra linear Diophantine equation linear congruence single-variable linear equations
153 153
linear S-box linear versus nonlinear S-Boxes
671 169, 211, 691 691 174 306
linear congruential generator linear cryptanalysis linear profile linear cipher logarithm
269 280 654 643 551 59-63 63
majority function Fermat's Little Theorem maximum entropy routing – network layer key material matrix additive inverse residue subtraction main diagonal determinant inverses square multiplicative inverse operation identity equality scalar multiplication addition
60 60 62 63 60 63 60 60 60 61 60 760
Пе‰метный ук‡з‡тель
с‡‚нениfl столбец сток‡ умножение м‡тиц‡ ‚ычето‚ м‡тиц‡-столбец м‡тиц‡-сток‡ М‡шин‡ Тьюи턇 М‡шин‡ Эн„им‡ Межсете‚ой Потокол Улениfl Гупп‡ми ‚ Интенете Меж‰ун‡о‰н‡fl О„‡низ‡циfl по Ст‡н‰‡тиз‡ции (ISO) Меж‰ун‡о‰ный Союз по Телекоммуник‡ции – Секто Ст‡н‰‡тиз‡ции Телекоммуник‡ции (ITU-T) Standardization Sector (ITU-T) мето‰ „убой силы мето‰ исчепы‚‡юще„о ключе‚о„о поиск‡ мет «‚оз‚е‰ениfl ‚ ꂇ‰‡т и умножениfl» мето‰ ‡зложениfl н‡ множители мето‰ ‡зложениfl н‡ множители по‚екой ‰елением мето‰ Пол뇉‡ p-1‡зложениfl н‡ множители мето‰ Пол뇉‡ rho ‡зложениfl н‡ множители мето‰ по‚еки мето‰ Фем‡ мето‰ы скытиfl, использующие изоб‡жение мех‡низм безоп‡сности мно„о‡лф‡‚итн‡fl по‰ст‡но‚к‡ Вижене М‡шин‡ Эн„им‡ о‰но‡зо‚ый блокнот Плейф‡йе отоный шиф шиф Хилл‡ мно„ок‡тный DES
64 60 60 60 63 60 60 680 100-101 644 640 24, 640
congruence column row multiplication residue matrices column matrix row matrix Turing machine Enigma machine Internet Group Message Protocol (IGMP) International Organization for Standardization (ISO) International Telecommunication Union-Telecommunication
76 76
brute-force method exhaustive-key search method
304
square-and-multiply method
292-295 292
419 294 31
factorization method trial division factorization method Pollard p-1 factorization method Pollard rho factorization method verifying algorithm Fermat method image cover
26 88 92 100 98 90 99 95 206
security mechanism polyalphabetic substitution Vigenere Enigma Machine one-time pad Playfair rotor cipher Hill cipher multiple DES
295 2964
761
Кус
Киптфиfl и безоп‡сность сетей
Мно„оцеле‚ое ‡сшиение почты (MIME) NVT ASCII 燄оло‚ки 燄оло‚ок опис‡ние со‰еж‡ниfl 燄оло‚ок ко‰иниfl со‰еж‡ниfl пе則чи 燄оло‚ок тип со‰еж‡ниfl З‡„оло‚ок – пе則ч‡ко‰иние тип ‡у‰ио ‰‡нные тип ‚и‰ео ‰‡нные тип ‰‡нных- изоб‡жение тип мно„оэлементные ‰‡нные тип ‰‡нные сообщениfl тип тексто‚ые ‰‡нные множест‚о целых чисел мо‰уль ‡ффинный шиф Кит‡йск‡fl теоем‡ об ост‡тк‡х кипто‡н‡лиз моно‡лф‡‚итный ‡‰‰ити‚ный шиф
528
моно‡лф‡‚итный по‰ст‡но‚к‡ мультиплик‡ти‚ный шиф эллиптическ‡fl к肇fl мо‰ульн‡fl ‡ифметик‡ Мо‰ульн‡fl ‡ифметик‡ безоп‡сно„о хешиниfl (MASH) моно‡лф‡‚итный шиф мультиплик‡ти‚н‡fl ин‚есиfl мультиплик‡ти‚ный шиф
88 824 355 47 390
Н н‡бо ‰лfl сложениfl и умножениfl н‡бо линейных у‡‚нений н‡бо н‡именьших ‚ычето‚ по мо‰улю n н‡бо шифо‚ н‡ибольший общий ‰елитель (НОД) н‡именьшее общее к‡тное (1cm)
528 528 534 532 529 532 532 532 531 529 531 529 37 47 85 299 89 80
80, 88 54 84
58
Multipurpose Internet Mail Extension (MIME) headers content-description header content-transfer-encoding header content-type header Content-transfer-encoding audio data type video data type image data type multipart data type message data type text data type set of integers modulus affine cipher Chinese Remainder Theorem cryptanalysis monoalphabetic cipher additive cipher monoalphabetic substitution multiplicative ciphers elliptic curve modular arithmetic Modular Arithmetic Secure Hash (MASH) monoalphabetic ciphers multiplicative inverse multiplicative cipher
65 48
set for addition and multiplication set of linear equations set of least residues modulo n
547 41, 292 292
cipher suite greatest common divisor (gcd) least common multiplier (1cm)
762
Пе‰метный ук‡з‡тель
н‡именьший ‚ычет н‡ч‡льный ‚екто (IV) н‡ч‡льные числ‡ Н‡цион‡льный Институт Ст‡н‰‡то‚ и Техноло„ии (NIST) нелинейный S-блок непи‚о‰имый полином не ‡з뇄‡емый и пимити‚ный полиномы не‡зешимые поблемы несин„улflн‡fl эллиптическ‡fl к肇fl НОД См. Н‡ибольший общий ‰елитель Но‚ые е‚опейские Схемы ‰лfl По‰писи, Целостности, и Шифниfl О обл‡сть обмен сообщениflми ‰лfl опоз퇂‡ниfl об‡тимость об‡тим‡fl функциfl ниченн‡fl печ‡тн‡fl сток‡ о‰но‡зо‚ый блокнот о‰но‡зо‚ый п‡оль о‰ностооннflfl л‡зейк‡ о‰ностооннflfl функциfl (OWF) опе‡то по мо‰улю опе‡то с‡‚нениfl опе‡циfl з‡мены опе‡циfl по мо‰улю. опе‡циfl "И" опе‡цию ‡збиениfl опе‡циfl циклическо„о с‰‚脇 оптим‡льное ‡ссимитичное ‰ополнение шифниfl низ‡ции по ст‡н‰‡тиз‡ции оиентинн‡fl н‡ сое‰инение услу„‡ TCP оиентинный н‡ сло‚о
50 253 671 183, 215, 639 154 660 660 680 350
least residue initial vector (IV) seed National Institute of Standards and Technology (NIST) nonlinear S-box irreducible polynomials irreducible and primitive polynomials undecidable problems nonsingular elliptic curve gcd See greatest common divisor
405
New European Schemes for Signature, Integrity, and Encryption
480 26
Realm authentication exchange
152 323 533 99, 171 452 323, 323 323 47 49 158 47, 48 129 158 157 338
invertibility invertible function quoted-printable one-time pad one-time password trapdoor one-way one-way function (OWF) modulo operator congruence operator swap operation modulo operation AND operation spilt operation circular shift operation optimal asymmetric encryption padding standard organizations 5 connection-oriented service TCP word oriented
635 642 398 763
Кус
Киптфиfl и безоп‡сность сетей
Осно‚н‡fl теоем‡ Аифметики
292, 720
отк‡зы ‚ обслуж肇нии отк‡з от сообщениfl откытый ключ отношениfl линейности Очень хоош‡fl конфи‰енци‡льность (PGP) ‡л„оитмы откыто„о ключ‡ ‡л„оитмы сж‡тиfl ‡л„оитмы симметичных ключей ‡л„оитмы хешиниfl ‡ннулиние ключей ‰о‚еие и з‡конность конфи‰енци‡льность с о‰но‡зо‚ым ключом се‡нс‡ мо‰ель ‰о‚еиfl откытый текст п‡кеты по‰пис‡нное сообщение пеоб‡зние к се„мент‡циfl сеть ‰о‚еиfl сж‡тие сетифик‡т сообщениfl сообщение сетифик‡т‡ кольц‡ ключей т‡блицы кольц‡ ключей целостность сообщениfl ошибки ‚ пе則че
23 23 319, 487 691 504
П п‡оль ‡т‡к‡ слfl о‰но‡зо‚ый «соление» фиксинн‡fl п‡сси‚н‡fl ‡т‡к‡ п‡сси‚н‡fl и ‡кти‚н‡fl ‡т‡ки (с‡‚нение) пе‚ооб‡зные кони
507 509 508 509 518 510 505
Fundamental Theorem of Arithmetic denial of service repudiation public key 294 linearity relations Pretty Good Privacy (PGP) public-key algorithms compression algorithms 4 symmetric-key algorithms
516 505 520 526 506 506 517 505 510 526 526 472, 507 512 505 340
hash algorithms key revocation trusts and legitimacy confidentiality with one-time session key trust model plaintext packets signed message code conversion segmentation web of trust compression certificate messages certificate message key ring key ring tables message integrity error in transmission
449-453 451 449 451 449 23 23
password dictionary attack one-time salting fixed passive attack passive versus active attacks
309, 316
primitive roots
764
Пе‰метный ук‡з‡тель
пеемеш肇ние пеест‡но‚к‡ ‡сшиениfl пеест‡но‚ки сж‡тиfl плоское множест‚о Центо‚ ‡спе‰елениfl ключей по‚е‰енческие мето‰ы по‚тон‡fl пе則ч‡ инфом‡ции по‰пис‡ние/по‰т‚еж‰ение по‰ст‡но‚к‡ по‰т‚еж‰ение по‰линности с нуле‚ым ‡з„л‡шением Потокол Киск‡те‡-Гийу
159, 160 188 195 473
confusion expansion permutation compression permutation flat multiple KDCs
467 22 564 79 458-460
behavioral techniques replaying signing/verifying substitution zero-knowledge authentication
463
пиме пещеы Потокол Фей„е-Фи‡т‡Ш‡ми‡ Потокол Фи‡т‡-Ш‡ми‡ поле Г‡лу‡ полезн‡fl 퇄узк‡ со ‚стоенной з‡щитой (ESP) поле ин‰екс‡ мет‡ обеспечениfl безоп‡сности (SPI) поле ‰‡нных ‡утентифик‡ции поле поfl‰ко‚о„о номе‡ сле‰ующий 燄оло‚ок полином сложение ‡‰‰ити‚н‡fl ин‚есиfl мо‰уль умножение умножение, использующее компьюте полусл‡бые ключи поfl‰ок „уппы поfl‰ок элемент‡ почто‚ый ‡„ент (MTA) п剂‡ительный секетный ко‰ пе‰ост‡‚лflющий билет се‚е (TGS) петен‰ент пик뇉ной уо‚ень пиме пещеы
462 462
Guillou-Quisquater Protocol cave example Feige-Fiat-Shamir Protocol Fiat-Shamir Protocol Galois field Encapsulating Security Payload (ESP) SPI field
460 128 589, 591 593
593 593 593 131 132 133 132 133 135 204 123 126 501 549 479
authentication data field sequence number field next header field polynomial addition additive inverse modulus multiplication multiplication using computer semi-weak keys order of a group order of an element message transfer agent (MTA) premaster secret ticket-granting server (TGS)
448, 449 641 462
claimant application layer cave example 4
765
Кус
пимити‚ный полином пинцип „олубиных flщико‚ Пинцип Кехофф‡ поблемы ‰ней ож‰ениfl поблем‡ ост‡но‚ки Постой потокол пе則чи почты (SMTP) Постой Потокол Улениfl сетью (SNMP) постой полином постые сомножители постые числ‡ бесконечное число меньших, чем.. по‚ек‡ н‡ постоту Постые числ‡ Месенны Постые числ‡ Фем‡ Потокол «з‡„оло‚ок ‡утентифик‡ции» Потокол ChangeCipherSpec Потокол TELNET Потокол Киск‡те‡-Гийу Потокол Интенет обмен‡ ключ‡ми (IKE) быстый ежим мето‰ п剂‡ительно„о со‚местно„о ключ‡ мето‰ цифо‚ой по‰писи осно‚ной ежим пеесмотенный мето‰ откыто„о ключ‡ пе‚он‡ч‡льный мето‰ откыто„о ключ‡ ф‡зы и ежимы эне„ичный мето‰ Потокол Ни‰м‡н‡-Ше‰е‡ Потокол Опе‰елениfl Сете‚о„о А‰ес‡ по Местоположению (RARP) Потокол От‚еfl-Рисс‡ Потокол «от ст‡нции к ст‡нции»
Киптфиfl и безоп‡сность сетей
176, 660 372 74,75 372, 373, 650-653 680 642
primitive polynomial pigeonhole principle Kerckhoff’s principle birthday problems
561 642 463 601
ChangeCipherSpec Protocol TELNET Protocol Guillou-Quisquater Protocol Internet Key Exchange (IKE)
614 608
quick mode pre shared secret-key method digital signature method main mode revised public-key method original public key method phases and modes aggressive mode Needham-Schroeder protocol reverse address resolution protocol. (RARP)
halting problem 6 Simple Mail Transfer Protocol (SMTP) 642 Simple Network Management Protocol (SNMP) 132 prime polynomial 666 prime factors 6 276, 278, 284, primes 662, 718 277 infinite number 278 smaller than 278 check for primes 283 Mersenne primes 283 Fermat primes 589 padding AH protocol
610 606 609, 613 609, 613 605 612 475 643
476 486 766
Otwey-Rees protocol Station-to-Station protocol
Пе‰метный ук‡з‡тель
Потокол пе則чи з‡писей ‡сшиение сж‡тие ф‡„мент‡циfl/объе‰инений шифние/‰ешифние Потокол опе‰елениfl ‡‰есо‚
563 564 564 564 565 643
Потокол пе則чи „ипетекст‡ (HTTP) Потокол пе則чи ф‡йло‚ Потокол Пользтельских Дейт‡„‡мм (UDP) Потокол Улениfl Пе則чей ‰‡нных (TCP) Потокол Улениfl Пе則чей ‰‡нных/межсете‚ой потокол (TCP/IP) Потокол Улflющих сообщений Интенет (ICMP) Потокол уст‡но‚лениfl сое‰инениfl Потокол Фи‡т‡-Ш‡ми‡ Потокол Фей„е-Фи‡т‡-Ш‡ми‡ Потокол Шно‡ „ене‡ции ключей пелк‡ по‰пис‡ние и по‰т‚еж‰ение схем‡ цифо‚ой по‰писи пflм‡fl пеест‡но‚к‡ пflмой P-блок пс傉ослуч‡йн‡fl функциfl (PRF)
543, 642
Р ‡зешимые поблемы ‡зложение н‡ множители ‡зложение н‡ множители мето‰ом Фем‡ ‡нц傇fl киптосистем‡ ‡спе‰еление откыто„о ключ‡ обще‰оступное объfl‚ление улflемый цент ‰о‚еиfl цент ‰о‚еиfl цент сетифик‡ции
642 642
Record Protocol decompression compression framing/deframing encryption/decryption Address Resolution Protocol (ARP) Hypertext Transfer Protocol (HTTP) File Transfer Protocol (FTP) User Datagram Protocol (UDP)
642
Transmission Control Protocol
641
Transmission Control Protocol/Internet (TCP/IP)
644 554-560 460 462 434 434 437 435 434 192 150 576
Internet Control Message Protocol (ICMP) Handshake Protocol Fiat-Shamir Protocol Feige-Fiat-Shamir Protocol Schnorr protocol key generation forgery sinning/verification digital signature scheme straight permutation straight P-Box pseudorandom function (PRF)
680 293 295
decidable problems factorization Fermat factorization method
323 487 489 490 488 490
knapsack cryptosystem public-key distribution public announcement controlled trusted center trusted center certification authority
767
Кус
‡спе‰еление пи симметичными ключ‡ми ‡спост‡нение ошибок ‡ссе肇ние ‡сшиение ключ‡ AES-128 AES-192 AES-256 RotWord SubWord ‡сшиение сл SHA-1 ‡сшиенный е‚кли‰о‚ ‡л„оитм ‡ун‰ е„ист‡ с‰‚脇 е„ист с‰‚脇 с об‡тной с‚flзью е„ист с‰‚脇 с линейной об‡тной с‚flзью (LFSR) е„ист с‰‚脇 с нелинейной об‡тной с‚flзью (NLFSR) ежим ‚нешней об‡тной с‚flзи по ‚ыхо‰у (OFB) ежим сцеплениfl блоко‚ шифнно„о текст‡ ежим электонной ко‰о‚ой кни„и (ECB) ежимы ‡боты ежим счетчик‡ ешето полfl чисел ешето Э‡тосфен‡ Риже퉇йл отоный шиф fl‰ы Тейло‡ С с‚ех‚оз‡ст‡ющий котеж сж‡тие секетный ключ селекти‚н‡fl пелк‡ се‚е ‡утентифик‡ции се‚е, пе‰ост‡‚лflющий билет сете‚ой уо‚ень сетей ‰о‚еиfl сильное пс傉опостое
Киптфиfl и безоп‡сность сетей
473
symmetric-key distribution
251, 254 159-161 231-236 232 236 2364 233 233 414 54, 134, 716 159 173 173 174
error propagation diffusion key expansion
177 258-261 252-255
word expansion SHA-1 extended Euclidean algorithm rounds shift register feedback shift register linear feedback shift register (LFSR) nonlinear feedback shift register (NLFSR) output feedback mode (OFB)
249-263 261 299 278 215 99 651
cipher block chaining mode (CBC) electronic codebook mode (ECB) mode of operation counter mode (CTR) number field sieve sieve of Eratosthenes Rijndael rotor cipher Taylor's series
325 151 319 426 479 479 644 517 288
superincreasing tuple compression private key selective forgery authentication server (AS) ticket-granting server network layer web of trust strong pseudoprime
250-258
768
Пе‰метный ук‡з‡тель
симметичный ключ син„улflн‡fl эллиптическ‡fl к肇fl синхонный шиф поток‡ систем‡ обозн‡чений Big O сл‡бые ключи ск‡лfl слепые схемы по‰писи сло‚о сложность ‡л„оитм‡ ‡симптотическ‡fl ие‡хиfl лифмическ‡fl побито‚ой опе‡ции пок‡з‡тельн‡fl полиноми‡льн‡fl постоflнн‡fl поблемы субпотенци‡льн‡fl супеэкспоненци‡льн‡fl сложности по ‚емени сложность поблемы кл‡сс coNP кл‡сс NP кл‡сс P служб‡ безоп‡сности случ‡йн‡fl мо‰ель О‡кул‡ ‡т‡к‡ ‚тоо„о пооб‡з‡ ‡т‡к‡ коллизии ‡т‡к пооб‡з‡ ‰ополнительн‡fl ‡т‡к‡ коллизии случ‡йные пееменные случ‡йный экспеимент смесителfl со‚ешенн‡fl секетность Со‚ет по ‡хитектуе Интенет (IAB)
144 350 171 679 203 61 443 400 677 677 678 680 679 677 680 680 680 681 674 674 677 677 681 681 681
со‚местн‡fl экспетн‡fl „упп‡ по фотфии (JPEG) со‚местн‡fl энтопиfl со‚местные ключи з‡секеч肇ниfl
531
370 376 377 375 379 650 647 162 658 639
73 769
symmetric-key singular elliptic curve synchronous stream cipher Big-O notation weak keys scalar blind signature schemes word complexity an algorithm asymptotic hierarchy logarithmic bit operation exponential polynomial constant a problem subexponential superexponential time complexity complexity of a problem coNP class NP class P class security services random oracle model second preimage attack collision attack preimage attack alternate collision attack random variables random experiment mixer perfect secrecy Internet Architecture Board (IAB) joint photographic experts group (JPEG) joint entropy shared secret key
Кус
Киптфиfl и безоп‡сность сетей
со„л‡шениfl пи симметичных ключ‡х соление сообщение сообщение HelloRequest сообщест‚о пользтелей Интенет со‚еменные блочные шифы со‚еменный шиф поток‡ сое‰инение сост‡‚ные объекты сост‡‚ной шиф Состоflниfl (м‡тиц‡) состоflние се‡нс‡ список ключей список не ‡з뇄‡емых и пимити‚ных полиномо‚ с‡‚нениfl ст‡н‰‡ты Ст‡н‰‡т Безоп‡сно„о хешиниfl (SHS) Ст‡н‰‡т Шифниfl Д‡нных (DES) ‡льтен‡ти‚ный мето‰ ‡н‡лиз ‡т‡к‡ „убой силы ‡т‡к‡ с‚е‰ениfl к сее‰ине безоп‡сность блоки-P блоки-S блок ‡сшиениfl P ‚озможно сл‡бые ключи „ене‡циfl ключей „ене‡циfl ключей ‡у퉇 ‰‚ойной DES ‰ейт‡„‡мм‡ ‰иффеенци‡льный кипто‡н‡лиз е‰иницы ‰‡нных ИСКЛЮЧАЮЩЕЕ ИЛИ истоиfl к‡к Шиф Ф‡йстелfl
657
symmetric-key agreement
451 368 567 639 144 171 550 276 158 218, 258 553 159 661
salting message HelloRequest Message Internet Society (ISOC) modern block cipher modern stream cipher connection composite product cipher state session state key schedule 1 list of irreducible and primitive polynomials congruence standards Secure Hash Standard (SHS)
49 636 394 183
Data Encryption Standard (DES) 193 alternative approach 199 analysis 210 brute-force attack 207 meet-in-the-middle attack 210, 243 security 187 P-Boxes 1 153, 154, 189 S-Boxes 187 expansion P-box 205 possible weak keys 267, 270, 329, key generation 343, 345 193 round key 207 double DES 642 datagram 210 differential cryptanalysis 217 188 183 187 770
data units XOR history as Feistel cipher
Пе‰метный ук‡з‡тель
китеии ‡з‡ботки ключе‚ое ‰ополнение 뇂инный эффект линейный кипто‡н‡лиз н‡ч‡льные и конечные пеест‡но‚ки пе‚ый мето‰ ‡з‡ботки шиф‡ пеест‡но‚к‡ сж‡тиfl полусл‡бые ключи пflм‡fl пеест‡но‚к‡ ‡ун‰ы с‚ойст‚‡ ‡н‡лиз‡ с‰‚и„ ‚ле‚о сл‡бости ‚ ключе шиф‡
200 205 199 211 184
сл‡бости ‚ стуктуе шиф‡ стукту‡ техк‡тный DES с ‰‚умfl ключ‡ми техк‡тный DES с темfl ключ‡ми функции шиф и об‡тный шиф число ‡ун‰о‚ эффект полноты Ст‡н‰‡т Цифо‚ой по‰писи (DSS)
201 184 209
„ене‡циfl ключей по‰т‚еж‰ение и по‰пис‡ние с‡‚нение с RSA с‡‚нение с Эль-Гем‡ль ст‡тистическ‡fl ‡т‡к‡ ст‡тистическое опе‰еление ‚еоflтности ст儇нфиfl Ст‡те„ии Безоп‡сности(SP) сущест‚ние ин‚есии сущест‚ние нейт‡льно„о элемент‡ схем‡ Де‚ис‡-Мейе‡ Схем‡ М‡ти‡с‡-Мейе‡-Осе‡с‡ Схем‡ М臄учи-Пенелfl
437 438 439 439 78 647
triple DES with three keys function cipher and reverse cipher number of rounds сompleteness effect Digital Signature Standard (DSS) key generation verifying and signing versus RSA versus ElGamal statistical attack statistical probability assignment
29 597 120 120
steganography Security Policy (SP) existence of inverse existence of identity
395 396 396
Davies-Meyer Scheme Matyas-Meyer-Oseas scheme 3 Miyaguchi-Preneel sheme
193 195 204 192 187 199 195 202
210 187 193 201 200 437
771
design criteria key complement avalanche effect linear cryptanalysis initial and final permutations first approach design compression permutation semi-weak keys straight permutation rounds properties shift left weakness in the cipher key weaknesses structure triple DES with two keys
Кус
схем‡ Мекелfl-ć섇‰‡ схемs цифо‚ой по‰писи схем‡ цифо‚ой по‰писи Р‡бин‡ цифfl по‰пись с ук‡з‡нием ‚емени схем‡ цифо‚ой по‰писи эллиптической ки‚ой „ене‡циfl ключей по‰пис‡ние и по‰т‚еж‰ение Т т‡йн‡ теоии ‰елимости теоиfl инфом‡ции теоии чисел теоем‡ Л‡„‡нж‡ теоем‡ Эйле‡ тотиент функциfl Эйле‡ Тест К‡зизско„о Тест Милле‡-Р‡бин‡ Тест Фем‡ типо‚ое пост‡нст‚о типы пелки т‡нспотный потокол улениfl потоком (SCTP) т‡нспотный ежим IPSec т‡нспотный уо‚ень TCP/IP т‡‰иционные шифы с симметичными ключ‡ми техк‡тный DES (3DES) т脇мм‡ туннельный ежим У у‰‡ление бито‚ по‚еки улучшенный мето‰ смены ключей Диффи-Хеллм‡н‡ уление ‰оступом уление ключ‡ми упощенный AES (S-AES) AddRoundKey InvSubNibbles MixColumns
Киптфиfl и безоп‡сность сетей
393 427 395 442 439 440 440
366 40, 715 654 37 126 281, 282, 720 278 94 288, 289 286 646 426 643 587 642 73 209 84 588
195 602 25, 28 270 703 711 707 709 772
Merkle-Damgard scheme digital signature scheme Rabin digital signature scheme timestamped digital signature scheme elliptic curve digital signature scheme key generation signing and verifying
secrecy divisibility information theory number theory Lagrange's theorem Eller’s theorem Euler's totient function Kasiski test 74 Miller-Rabin test 263 Format test sample space forgery types Stream Control Transmission Protocol (SCTP) transport mode IP Sec transport layer TCP/IP traditional symmetric-key ciphers triple DES (3DES) trigram tunnel mode 55
parity drop improved Diffie-Hellman key exchange access control key management Simplified AES (S-AES)
Пе‰метный ук‡з‡тель
RotWord ShiftRows SubWord бит блок ‰ополнение ключ‡ мо‰ули ‰‡нных конст‡нты ‡у퉇 пеест‡но‚к‡ по‰ст‡но‚к‡ полуб‡йт по‰полуб‡йты ‡сшиение ключ‡ ‡ун‰ы сло‚о смеш肇ние состоflние шифы Упощенный DES (S-DES) блок ‡сшиениfl- P блоки- S „ене‡циfl ключей н‡ч‡льн‡fl и конечн‡fl пеест‡но‚ки с‰‚и„ ‚ле‚о отбел肇тель (ИСКЛЮЧАЮЩЕЕ ИЛИ) пеест‡но‚ки сж‡тиfl пflм‡fl пеест‡но‚к‡ ‡ун‰ы функциfl шиф уо‚ень безоп‡сных озеток (SSL) DES Fortezza IDEA MD5 SHA-1 ‡‚‡ийный потокол ‡л„оитмы сж‡тиfl ‡л„оитмы смены ключей ‡нонимный потокол ДиффиХелм‡н‡
712 708 712 704 705 7108 704 713 708 707 704 707 711 703 704 709 705 713 695 697 697 698 695 699 697
Bit block key-adding data units round constants permutation substitution Nibble SubNibbles key expansion rounds word mixing state ciphers Simplified DES (S-DES) expansion P-box S- boxes key generation initial and final permutations Shift Left whitener(XOR)
700 698 696 696 694 542
compression permutation straight permutation rounds function cipher Secure Sockets Layer (SSL)
546 547 547 547 563 549 544 545
773
Alert Protocol compression algorithms key exchange algorithms anonymous DiffieHellman
Кус
Киптфиfl и безоп‡сность сетей
‡хитекту‡ „енеиние киптфических мето‚ „뇂ный секетный ко‰ конфи‰енци‡льность к‡тко‚еменный мето‰ Диффи-Хеллм‡н‡ м‡теи‡л ‰лfl ключей н‡бо шифо‚ поток RC п剂‡ительный „л‡‚ный секетный ко‰ потокол ChangeCipher Spec потокол пе則чи з‡писей потокол уст‡но‚лениfl сое‰инениfl се‡нс и по‰ключение сж‡тие состоflние се‡нс‡ состоflний сое‰инениfl услу„и фиксинный мето‰ ДиффиХеллм‡н‡ фом‡тs сообщениfl ф‡„мент‡циfl целостность сообщениfl четые потокол‡ уо‚ень з‚ен‡ пе則чи ‰‡нных услу„и безоп‡сности из конц‡ ‚ конец услу„и и мех‡низмы Усо‚ешенст‚нный ст‡н‰‡т шифниfl AddRoundKey SubBytes ‡льтен‡ти‚ный поект ‡т‡к‡ „убой силы безоп‡сность биты ‰иффеенци‡льн‡fl и линейн‡fl ‡т‡ки ‰оᇂление ключей
543 549 549 543 545 550 547 546 549 561
architecture cryptographic parameter generation master secret confidentiality ephemeral DiffieHellman key material cipher suite stream RC pre-master secret
562 554, 567
ChangeCipher Spec Protocol Record Protocol Handshake Protocol
550 543 552 552 543 546
session and connection Compression session state connection state services fixed Diffie-Hellman
566 543 543 553 644 542
message formats fragmentation message integrity four protocols data link layer end-to-end security services
24 215
services and mechanisms Advanced Encryption Standard (AES)
230 221 238 243 243 217 243 230 774
alternative design brute-force attack security bits differential and linear attacks key-adding
Пе‰метный ук‡з‡тель
конст‡нты ‡у퉇 об‡тный шиф пе‚он‡ч‡льный поект пеест‡но‚к‡ по‰ст‡но‚к‡ ‡сшиение ключ‡ е‡лиз‡циfl сл смеш肇ние состоflние (м‡тиц‡) ст‡тистические ‡т‡ки стукту‡ к‡ж‰о„о ‡у퉇 улflемый цент ‰о‚еиfl усло‚н‡fl ‚еоflтность усло‚н‡fl энтопиfl услу„и обеспечениfl безоп‡сности (SA) Услу„и обеспечениfl безоп‡сности Интенет и Потокол Улениfl ключ‡ми (ISAKMP) уление м‡шутиз‡цией уст‡но‚ление по‰линности объект‡ уст‡но‚ление по‰линности сообщениfl устойст‚ з‡мены устойчи‚ость к коллизиflм устойчи‚ость к пооб‡зу устойчи‚ость ко ‚тоому пооб‡зу Ф фе‰е‡льный е„ист Фе‰е‡льный Ст‡н‰‡т Об‡ботки инфом‡ции (FIPS) Фем‡ Фи-функциfl Эйле‡ физический ‡‰ес ARP RARP фиксинный мето‰ ДиффиХеллм‡н‡ функциfl л‡зейки ‚ о‰ностооней функции функциfl киптфическо„о хешиниfl
233 237 238 225 220 231 243 218 227 217 243 219 489 648 656 594
round constants inverse cipher original design permutation substitution key-expansion implementation Words mixing state statistical attacks structure of each round controlled trusted center conditional probability conditional entropy Security Association (SA)
601, 618
Internet Security Association and Key Management Protocol (ISAKMP) 27 routing control 380, 423, 448 message authentication 423 message authentication 164 367, 369 367, 368 367, 368
swapper collision resistance preimage resistance second preimage resistance
216, 639 216, 639
federal register Federal Information Processing Standard (FIPS) 281, 283, 686 Fermat 278, 686 Euler's phi-function 644, 645 physical address 643 643 546 fixed Diffie-Hellman 323
function (trapdoor One Way)
367
cryptographic hash function
775
Кус
функциfl ‡сшиениfl ‰‡нных функции сж‡тиfl функциfl тотиент‡ Х х‡‡ктеистики ‡у퉇 хешиние хешинный ко‰ ‡утентифик‡ции сообщениfl (HMAC) хеш-функциfl ‡т‡к‡ с‚е‰ениfl к сее‰ине китеий хеш-функции, осннные н‡ блочных шиф‡х хеш-функции, с‰ел‡нные н‡ пустом месте Ц цели безоп‡сности „ото‚ность конфи‰енци‡льность целостность целостность по‚ек‡ потокол «полезн‡fl 퇄узк‡ со ‚стоеннойз‡щитой» (ESP) целостность ‰‡нных целостности сообщениfl цент ‰о‚еиfl Цент Р‡спе‰елениfl Ключей (KDC) ие‡хическое множест‚о плоское множест‚о се‚е ‡утентифик‡ции (AS) Цебе цент сетифик‡ции цент Цебе‡ се‚е ‡утентифик‡ции ‡бот‡ е‡льный се‚е циклическ‡fl пупп‡ цифfl по‰пись
Киптфиfl и безоп‡сность сетей
575 393 278, 605
data-expansion function compression function totient function
688, 692 29 383
round characteristics hashing hashed message authentication code (HMAC) 366, 393, 394 hash function 380 meet-in-the-middle attack 367 criteria 394 hash functions based on block ciphers 393 hash functions made from scratch
20 20 20 20 19, 20, 366 367 591
security goal availability confidentiality integrity integrity checking ESP protocol
26 366 489 472 473 473 479 478 489 478 478 479
data integrity message integrity trusted center Key Distribution Center (KDC) hierarchical multiple flat multiple Authentication Server (AS) Kerberos certification authority center Kerberos 443, 445 authentication server operation real server subgroup digital signature
123 26, 419 776
Пе‰метный ук‡з‡тель
‡л„оитм ‚еифик‡ции (по‰т‚еж‰ениfl) ‡л„оитм по‰пис‡ниfl ‡т‡к‡ по ‚ыб‡нному сообщению ‡т‡к‡ пи из‚естном сообщении ‡т‡к‡ только н‡ ключ ‚‡и‡нты исключение отк‡з‡ от сообщениfl пиложениfl селекти‚н‡fl пелк‡ схемы типы ‡т‡к типы пелки услу„и целостность сообщениfl экзистенци‡льн‡fl пелк‡ цифfl по‰пись с ук‡з‡нием ‚емени Ш шиф Atbash шиф Whirlpool AddRoundKey MixRows ShiftColumns SubBytes конст‡нты ‡у퉇 ‡сшиение ключ‡ состоflниfl и блоки (м‡тицы) стукту‡ к‡ж‰о„о ‡у퉇 шиф ‡ффинный Вижене‡ мно„о‡лф‡‚итный моно‡лф‡‚итный пеест‡но‚ки (т‡нспозиции) по‰ст‡но‚ки синхонный поток Цез‡fl шиф без ключ‡
420
verifying algorithm
420 426
signing algorithm known-message attack
426 426 442 423
known-message attack key-only attack 3 variations nonrepudiation
443 426 427 426 426 423 42 426 442
applications selective forgery schemes attacks types forgery types services message integrity existential forgery time stamped signatures
117 392, 405 411 411 408 407 413 411 407 407 74, 144, 237 85 92 89 80 102 79 171 82 102, 149
Atbash cipher Whirlpool chiper
777
round constants key expansion states and blocks structure of each round cipher Affine Vigenere polyalphabetic Monoalphabetic transposition substitution synchronous stream Caesar keyless ciphers
Кус
Шиф Вижене‡ кипто‡н‡лиз список тест К‡зизско„о шиф ключ‡ ч‡стично„о ‡зме‡ шиф несинхонно„о поток‡ шиф не-Ф‡йстелfl шиф, оиентинный н‡ биты шиф, оиентинный н‡ сим‚ол шиф Плейфлее‡ шиф по‰ст‡но‚ки шиф по‰ст‡но‚ки без ключ‡ шиф Полибиус‡ шиф поток‡ шиф ‡‚тоключе‚ой шиф с‰‚脇 шиф с ‰‚ойной пеест‡но‚кой шиф с симметичным ключом шиф пеест‡но‚ки (т‡нспозиции) P-блок ‰‚ойной кипто‡н‡лиз ключи Шиф Ф‡йстелfl Шиф Хилл‡ шифы поток‡ и блочные цифы шифние шифние ‡симметичными ключ‡ми шифниfl симметичными ключ‡ми
Киптфиfl и безоп‡сность сетей
92 94 93 94 149, 150 177 165, 144 144 90, 91 79, 145 149 118 109 89 82 108 73 102, 147 150 108 106 105 162-165 95 109 329, 343, 346 29
Vigenere cipher cryptanalysis Tableau Kasiski test partial-size key ciphers nonsynchronous stream ciphers non-Feistel cipher bit-oriented cipher character-oriented cipher Playfair cipher substitution ciphers keyless substitution ciphers Polybius cipher stream cipher autokey cipher shift cipher double transposition ciphers symmetric-key cipher transposition cipher P-box double cryptanalysis keys Feistel cipher Hill cipher stream and block ciphers encryption asymmetric-key encipherment
29
symmetric-key encipherment
Ц цент сетифик‡ции циклическ‡fl пупп‡ циклический с‰‚и„
489 124 157
certification authority cyclic subgroup circular shift
Э экзистенци‡льн‡fl пелк‡ эллиптическ‡fl к肇fl эллиптическ‡fl к肇fl ‚ GF (2n) эллиптическ‡fl к肇fl ‚ GF (p)
426 350 355 353
existential forgery elliptic curve elliptic curves over GF(2n) elliptic curves over G(p)
778
Пе‰метный ук‡з‡тель
эллиптические ки‚ые ‚ ‚ещест‚енных числ‡х электонн‡fl ко‰о‚‡fl кн脇 з‡х‚‡т з‡шифнно„о текст‡ поблемы безоп‡сности эллиптическ‡fl к肇fl энтопиfl Э‡тосфен эффект полноты Я Язык опис‡ниfl ст‡ниц
350
elliptic curves over real numbers 250 electronic codebook 252 ciphertext stealing 251 security issues 350, 355, 356 elliptic curve 654-656 entropy 278 Eratosthenes 200 completeness effect
530
779
Post Script
Кус
Киптфиfl и безоп‡сность сетей
Сок‡щениfl 2DES 3DES AES
double DES triple DES Advanced Encryption Standard
AH AS CA CBC
Authentication Header authentication server certification authority cipher-block chaining
CFB CMAC CMS
cipher feedback cipher-based message authentication code Cryptographic Message Syntax
CRT CTR
Chinese remainder theorem counter
DES DSA DSS ECB ECDSA
Data Encryption Standard Digital Signature Algorithm Digital Signature Standard electronic codebook elliptic curve digital signature algorithm
ESP
Encapsulating Security Payload
FAR
false acceptance rate
FCC
Federal Communications Commission Federal Information Processing Standard false rejection rate feedback shift register greatest common divisor
FIPS FRR FSR GCD (НОД) GMS HMAC HTTP IAB
Global System for Mobile Communication hashed message authentication сode Hypertext Transfer Protocol Internet Architecture Board 780
‰‚ук‡тный DES техк‡тный DES усо‚ешенст‚нный ст‡н‰‡т шифниfl 燄оло‚ок ‡утентифик‡ции се‚е ‡утентифик‡ции цент сетифик‡ции сцепление блоко‚ шифнно„о текст‡ ко‰инн‡fl об‡тн‡fl с‚flзь ‡утентифик‡циfl сообщениfl н‡ осно‚е шиф‡ киптфический синт‡ксис сообщениfl кит‡йск‡fl теоем‡ об ост‡тк‡х счетчик ст‡н‰‡т шифниfl ‰‡нных ‡л„оитм цифо‚ой по‰писи ст‡н‰‡т цифо‚ой по‰писи электонн‡fl ко‰о‚‡fl кн脇 ‡л„оитм цифо‚ой по‰писи, использующий мето‰ эллиптической ки‚ой полезн‡fl 퇄узк‡ со ‚стоенной з‡щитой коэффициент ложной и‰ентифик‡ции Фе‰е‡льн‡fl Комиссиfl С‚flзи Фе‰е‡льный ст‡н‰‡т об‡ботки инфом‡ции коэффициент ложной те‚о„и е„ист с‰‚脇 с об‡тной с‚flзью н‡ибольший общий ‰елитель Глоб‡льн‡fl систем‡ пижной с‚flзи ко‰ ‡утентифик‡ции сообщениfl н‡ осно‚е хэшиниfl потокол пе則чи „ипетекст‡ Со‚ет по ‡хитектуе Интенет
Сок‡щениfl
IANA ICANN IEEE
IEGS IETF IKE IP ipad IPSec ISAKMP ISO ISOC ITU ITU-T
IV KDC LFSR MAA MAC MAC MD MIC MIME MTA MTU
Internet Assigned Numbers Authority Internet Corporation for Assigned Names and Numbers Institute of Electrical and Electronics Engineers
Со‚ет по е„ист‡ции ‰омено‚ Интенет Копо‡циfl Интенет по е„ист‡ции имен и номео‚ ‰омено‚ Институт инженео‚ по электотехнике и ‡‰иоэлектонике ИИЭР
Internet Engineering Steering Group Internet Engineering Task Force
Гупп‡ Ре„улиниfl Р‡з‡ботки Интенет Гупп‡ инжененой пежки сети Интенет потокол обмен‡ ключ‡ми межсете‚ой потокол ‚хо‰ной блокнот потокол безоп‡сно„о IP услу„и обеспечениfl безоп‡сности и потокол улениfl ключ‡ми Меж‰ун‡о‰н‡fl О„‡низ‡циfl по Ст‡н‰‡тиз‡ции Интенет-сообщест‚о Меж‰ун‡о‰ный Союз Электос‚flзи Меж‰ун‡о‰ный Союз Электос‚flзи — Секто Ст‡н‰‡тиз‡ции н‡ч‡льный ‚екто цент ‡спе‰елениfl ключей е„ист с‰‚脇 с линейной об‡тной с‚flзью ‡„ент ‰оступ‡ к сообщению уление ‰оступом к се‰е ко‰ ‡утентифик‡ции сообщениfl ‰‡й‰жест сообщениfl ко‰ целостности сообщениfl мно„оцеле‚ое ‡сшиение почты
Internet Key Exchange Internet Protocol input pad IP Security Internet Security Association and Key Management Protocol International Organization for Standardization Internet Society International Telecommunication Union International Telecommunication Union—Telecommunication Standardization Sector initial vector key distribution center linear feedback shift register message access agent media access control message authentication code Message Digest message integrity code Multipurpose Internet Mail Extension message transfer agent Maximum Transmission Unit
NESSIE New European Schemes for Signature, Integrity, and Encryption NIST National Institute of Standards and Technology 781
почто‚ый ‡„ент м‡ксим‡льный ‡зме блок‡ пе則‚‡емой инфом‡ции но‚ые е‚опейские схемы по‰писи, целостность и шифние Н‡цион‡льный Институт Ст‡н‰‡то‚ и Техноло„ии
Кус
Киптфиfl и безоп‡сность сетей
NLFSR
Non linear feedback shift register
NSA
National Security Agency
OAFP OFB opad OWF PFS PGP
optimal asymmetric encryption padding output feedback outpad one way function Perfect Forward Security Pretty Good Privacy
PKI
public-key infrastructure
е„ист с‰‚脇 с нелинейной об‡тной с‚flзью А„ентст‚о Н‡цион‡льной безоп‡сности оптим‡льное ‡ссимитичное ‰ополнение шифниfl ‚нешнflfl об‡тн‡fl с‚flзь Внешний блокнот о‰ностооннflfl функциfl и‰е‡льн‡fl пflм‡fl безоп‡сность очень хоош‡fl конфи‰енци‡льность инф‡стукту‡ откыто„о ключ‡
PRF PRNG
pseudorandom function pseudorandom number generator
пс傉ослуч‡йн‡fl функциfl „ене‡то пс傉ослуч‡йных чисел
GNR QR RACE
quadratic nonresidue quadratic residue Research and development for Advanced Communications in Europe RC round constant RC4 Ron’s Code RFC Request for Comment RIPMED RACE Integrity Primitives Evaluation Message Digest RNG random number generator RSA Rivest, Shamir, Adelman SA Security Association SAD Security Association Database SCTP Stream Control Transmission Protocol SHA Secure Hash Algorithm SKEME Secure Key Exchange Mechanism SHS
Secure Hash Standard
S/MIME Secure/Multipurpose Internet Mail Extension SP Security Policy SPD Security Policy Database
782
ꂇ‰‡тный не‚ычет ꂇ‰‡тичный ‚ычет Пмм‡ иссле‰о‚‡ний и ‡з‡боток ‚ обл‡сти пее‰о‚ых техноло„ий с‚flзи конст‡нт‡ ‡у퉇 ко‰ Рон‡ з‡пос н‡ коммент‡ий ‰‡й‰жест сообщениfl оценки пимити‚о‚ целостности RACE „ене‡то случ‡йных чисел Ри‚ест, Ш‡ми, А‰ельм‡н услу„и обеспечениfl безоп‡сности б‡з‡ ‰‡нных безоп‡сности т‡нспотный потокол улениfl потоком ‡л„оитм безоп‡сно„о хэшиниfl безоп‡сный мех‡низм смены ключей ст‡н‰‡т безоп‡сно„о хэшиниfl безоп‡сное/мно„оцеле‚ое ‡сшиение почты ст‡те„иfl безоп‡сности б‡з‡ ‰‡нных ст‡те„ии обеспечениfl безоп‡сности
Сок‡щениfl
SSL TCP TCP/IP
Secure Sockets Layer Transmission Control Protocol Transmission Control Protocol/ Internet Protocol TELNET TERMINAL NETWORK TGS ticket-granting server TLS Transport Layer Security TOWF
trapdoor one-way function
UA UDP
user agent User Datagram Protocol
URL
uniform resource locator
WWW
World Wide Web
783
уо‚ень безоп‡сных озеток потокол улениfl пе則чей потокол улениfl пе則чей / межсете‚ой потокол телекоммуник‡ционн‡fl сеть пе‰ост‡‚лflющий билет се‚е безоп‡сность т‡нспотно„о уо‚нfl «л‡зейꇻ ‚ о‰ностоонней функции ‡„ент пользтелfl ‰ейт‡„‡ммный потокол пользтелfl унифицинный ук‡з‡тель (инфом‡ционно„о) есус‡ Всемин‡fl П‡утин‡
Учебное и片ние Бехоуз А. Фооуз‡н
КРИПТОГРАФИЯ И БЕЗОПАСНОСТЬ СЕТЕЙ Учебное пособие Пе. с ‡н„л. по‰ е‰. А.Н. Белин‡ Лите‡туный 則кто С. Пеепелкин‡ Коекто Ю. Голом‡з Компьютен‡fl ‚естк‡ Н. О‚чинник Диз‡йн обложки М. А‚тоном
По‰пис‡но ‚ печ‡ть 25.10.2009. Фом‡т 60x90 1/16. Г‡ниту‡ «Т‡ймс». Бу쇄‡ офсетн‡fl. Печ‡ть офсетн‡fl. Усл. печ. л. 49. Ти‡ж 2000 экз. З‡к‡з № ООО «ЭКОМ П‡блишез» Мосꂇ, ул. Бутле, 17А, http://www..ecom.ru ООО «ИНТУИТ.у» Интенет-Уни‚еситет Инфом‡ционных Техноло„ий, Мосꂇ, Электический пе., 8, ст.3. E-mail: [email protected], http://www.intuit.ru
ООО «БИНОМ. Л‡бо‡тоиfl зн‡ний» Мосꂇ, поез‰ Аэопот‡, ‰. 3 Телефон: (499) 157-1902, (499) 157-5272 E-mail: [email protected], http://www.lbz.ru