КРИПТОГРАФИЯ И БЕЗОПАСНОСТЬ СЕТЕЙ
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 = и опе‡цию, пок‡з‡нную с помощью т‡блицы 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 = , 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 = , H2 =, H3 = и 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 = , H2 = и 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