Анализ переменных блочных шифров

Автор работы: Пользователь скрыл имя, 21 Декабря 2013 в 08:04, курсовая работа

Краткое описание

В конце шестидесятых годов корпорация IBM запустила исследовательскую
программу по компьютерной криптографии, названную Lucifer (Люцифер) и
руководимую сначала Хорстом Файстелем (Horst Feistel), а затем Уолтом
Тачменом (Walt Tuchman). Такое же имя - Lucifer - получил блочный алгоритм,
появившийся в результате этой программы в начале семидесятых годов. В
действительности существует, по меньшей мере, два различных алгоритма с
таким именем. Один из них содержит ряд пробелов в спецификации алгоритма.
Все это привело к заметной путанице.

Прикрепленные файлы: 1 файл

али блочные.docx

— 100.57 Кб (Скачать документ)

- размер ключа, m - размер блока, a р - число известных открытых  текстов.

Если К1 и К3.  различны,  то  для вскрытия  «в  лоб»  с тремя известными

открытыми текстами потребуется 2n+m+1 операций. Против  дифференциального  и

линейного криптоанализа такие меры  обеспечивают  защиту  на  уровне  всего

нескольких битов ключа. Но с вычислительной точки зрения это  очень  дешевый

способ повышения надежности блочного алгоритма.

 

4.7. Каскадное применение  блочных алгоритмов

     Есть вариант  шифрования сначала алгоритмом А и ключом КA, а затем еще

раз алгоритмом В и ключом KB? Может быть, у Алисы и Боба различные мнения  о

том, какой алгоритм надежнее: Алиса хочет пользоваться алгоритмом А,  а Боб

- алгоритмом В. Этот  прием, иногда называемый каскадным   применением,  можно

распространить и на большее  количество алгоритмов и ключей.

     Пессимисты  утверждают, что совместное использование  двух алгоритмов  не

гарантирует повышения безопасности. Алгоритмы могут взаимодействовать  каким-

то хитрым способом, что  на самом деле их надежность  даже  уменьшится.  Даже

тройное шифрование тремя  различными алгоритмами  может  оказаться  не  столь

безопасным, как вы рассчитываете. Криптография - довольно тонкое  искусство,

поэтому если не совсем понимать, что и как делать, то можете  легко  попасть

впросак.

     Действительность  намного  светлее.  Упомянутые  предостережения  верны,

только если различные  ключи зависят друг от  друга.  Если  все  используемые

ключи  независимы,  сложность  взлома  последовательности   алгоритмов,   по

крайней мере, не меньше сложности  взлома первого из применяемых  алгоритмов.

Если второй алгоритм уязвим к  атаке  с  подобранным  открытым  текстом,  то

первый алгоритм может  облегчить эту атаку и при  каскадном  применении  может

сделать второй алгоритм уязвимым  к  атаке  с  известным  открытым  текстом.

Такое возможное облегчение вскрытия  не  ограничивается  только  алгоритмами

шифрования:  если  вы  позволите  кому-то  другому   определить   любой   из

алгоритмов,  делающих  что-то  с  вашим  сообщением  до  шифрования,   стоит

удостовериться, что  ваше  шифрование  устойчиво  по  отношению  к  атаке  с

подобранным  открытым  текстом.   Можно   заметить,   что   наиболее   часто

используемым алгоритмом для сжатия и оцифровки речи до  модемных  скоростей,

применяемым перед любым  алгоритмом шифрования, служит CELP, разработанный  в

АНБ.

     Это можно  сформулировать и иначе: при  вскрытии с  подобранным  открытым

текстом каскад шифров взломать  не  легче,  чем  любой  из  шифров  каскада.

Предыдущий результат  показал, что  взломать  каскад,  по  крайней  мере,  не

легче,  чем  самый  прочный  из  шифров  каскада.  Однако  в   основе   этих

результатов лежат некоторые  не сформулированные предположения.  Только  если

алгоритмы  коммутативны,  как  в  случае  каскадных  потоковых  шифров  (или

блочных шифров в режиме  OFB),  надежность  их  каскада  не  меньше,  чем  у

сильнейшего из используемых алгоритмов.

     Если  Алиса   и  Боб  не  доверяют  алгоритмам  друг  друга,  они  могут

использовать  их  каскадом.  Для  потоковых  алгоритмов  порядок  шифрования

значения не имеет. При  использовании блочных алгоритмов Алиса может  сначала

использовать алгоритм А, а затем алгоритм В. Боб,  который больше  доверяет

алгоритму В,  может использовать  алгоритм  В перед алгоритмом  А.  Между

алгоритмами они могут  вставить  хороший  потоковый  шифр.  Это  не  причинит

вреда и может значительно  повысить безопасность.

     Ключи для  каждого алгоритма в каскаде  должны  быть  независимыми.  Если

алгоритм А использует 64-битовый ключ, а алгоритм В - 128-битовый ключ,  то

получившийся каскад должен использовать 192-битовый ключ. При  использовании

зависимых ключей у пессимистов  гораздо больше шансов оказаться  правыми.

 

4.8. Объединение нескольких  блочных алгоритмов

      Есть  еще   один  способ  объединения   нескольких  блочных  алгоритмов,

надежность которого с гарантией не хуже  надежности  обоих алгоритмов.  Для

двух алгоритмов (и двух независимых ключей):

1. Генерируется строка  случайных битов R того же размера,  что  и  сообщение

М.

2. Зашифровывается R первым  алгоритмом.

3. Зашифровывается М(R вторым алгоритмом.

4. Шифртекст сообщения представляет собой объединение результатов этапов  2

и 3.

     При условии,  что строка случайных битов   действительно  случайна,  этот

метод  шифрует  M  с  помощью  одноразового  блокнота,  а  затем  содержимое

блокнота и получившееся сообщение шифруются каждым из двух  алгоритмов.  Так

как  для  восстановления  М  необходимо  и  то,  и  другое,  криптоаналитику

придется взламывать оба  алгоритма. К недостаткам относится  удвоение  размера

шифртекста по сравнению с открытым текстом.

     Этот метод  можно расширить для  нескольких  алгоритмов,  но  добавление

каждого алгоритма увеличивает  размер шифртекста. Сама по себе идея  неплоха,

но не слишком практична.

                                 ЗАКЛЮЧЕНИЕ

 

      Известны  два  основных  типа  шифров,  комбинации  которых   образуют

классические криптографические  системы. Главная идея,  положенная  в  основу

их конструирования, состоит  в  комбинации  функций,  преобразующих  исходные

сообщения в текст шифровки, то есть превращающих эти исходные  сообщения с

помощью секретных ключей в нечитаемый вид.  Но  непосредственное  применение

функций сразу ко всему  сообщению реализуется очень  редко.  Все  практически

применяемые криптографические  методы  связаны  с  разбиением  сообщения  на

большое число частей фиксированного размера,  каждая  из  которых  шифруется

отдельно, если не независимо.

     Базовые криптографические   методы  являются  "кирпичами"  для  создания

прикладных систем. На сегодняшний  день криптографические методы  применяются

для идентификации и аутентификации пользователей,  защиты  каналов  передачи

данных от  навязывания  ложных  данных,  защиты  электронных  документов  от

копирования и подделки.

 

 

                             СПИСОК ЛИТЕРАТУРЫ:

 

   1. Шнайер Б. «Прикладная криптография», М.: Издательство Триумф, 2003 г.

   2. Фомичев В.М. «Дискретная  математика и криптология»,  М.:  Диалог-МИФИ,

      2003 г.

   3. Ященко В.В. «Введение  в криптографию». М., 1988 г.

   4. Cryptography.ru. Статьи Интернет-сайтов.


Информация о работе Анализ переменных блочных шифров