Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
2. Часть 1.doc
Скачиваний:
103
Добавлен:
02.06.2015
Размер:
5.54 Mб
Скачать

Глава 2.

Блочные шифры

При описании шифров DES, IDEA, ГОСТ 28147-89 использованы материалы книги Ю.В. Романца, П.А. Тимофеева, В.Ф. Шаньгина «Защита информации в компьютерных системах и сетях». М., Радио и связь, 1999.

Современные алгоритмы шифрования возникли на базе развития и совершенствования простейших шифров, путем устранения имеющихся у них криптографических слабостей. Большинство современных шифров можно рассматривать как усиление и модернизацию известных с древних времен шифров простой замены, перестановки, о которых мы говорили в предыдущем параграфе этой главы.

Всем очевидна возможность дешифрования шифра простой замены в случае, если достаточно велико соотношение между объемом материала и размером алфавита открытого и шифрованного текстов. Однако шифр простой замены сложно вскрыть, если это соотношение мало, например, в случае, когда шифруются тексты длины 1, т.е. буквы. Отсюда и вытекает подход к усилению шифра простой замены: разрабатывают шифры, для которых это соотношение чрезвычайно мало. Делают это двумя способами: увеличивают алфавит либо максимально уменьшают объем сообщения, шифруемого с помощью одной и той же замены.

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

По второму пути (уменьшение числа знаков, шифруемых по одной замене) пошли при создании поточных шифров замены.

Шифры многозначной замены. Шифр многозначной замены задается таблицей,

А

Б

В

Г

Д

Е

Ж

...

а1

б1

в1

г1

д1

е1

ж1

...

а2

б2

в2

ж2

а3

...

в которой каждой букве отвечает несколько символов шифртекста. Алфавит шифртекста по смыслу дела больше алфавита открытого текста. Шифровальщик, зашифровывая открытый текст, должен выбрать для каждой буквы одно из обозначений, например А зашифровывается в а1, или в а2, и т.д. Данный шифр при грамотном использовании может значительно выровнить диаграмму встречаемости символов в шифртексте.

Коды. Идея увеличения алфавита открытого текста реализована в кодах. Код представляет собой два словаря. Первый словарь предназначен для зашифрования, а второй – для расшифрования. В словаре для зашифрования в алфавитном порядке написаны символы алфавита открытого текста: отдельные буквы, слова, целые предложения и для каждого символа указано его кодообозначение. При шифровании шифровальщик каждый символ (или слово, предложение) заменяет с помощью первого словаря на кодообозначение. Это преобразование неоднозначно. Слово можно заменить по буквам или попытаться подобрать кодообозначение для целого слова или фразы. При расшифровании используется второй словарь, в котором в алфавитном порядке записаны кодообозначения, и расшифрование сводится к замене их на символы открытого текста. Словарь может состоять из тысяч, десятков тысяч слов. Дешифровать код достаточно сложно. Для этого необходимо набрать достаточно много материала. Коды находят определенное применение, например, есть военно-морские коды, дипломатические коды и т.п. Недостаток этой системы шифрования – каждый код – это две книги, их надо напечатать без ошибок, разослать всем участникам закрытой связи. Если одна такая книга попадет злоумышленнику, то код надо срочно менять, система инерционная.

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

Блочный шифр «Два квадрата» Блочные шифры, в которых заменялись пары букв, применяли во время второй мировой войны немцы в низовых линиях связи. Они основаны на блочном шифре Плейфейра (у него был один квадрат). При шифровании открытый текст разбивался на блоки по две буквы

КР ИП ТО ГР АФ ИЯ

Ключом являлись два квадрата, в которых записывался алфавит в произвольном порядке.

ы

щ

э

ю

ь

Ц

ю

э

ч

ь

м

б

г

д

е

Е

м

н

о

ш

В

ж

И

з`

К

Ж

л

К

п`

щ

Л

с

н

о

п

Б

в

а

г

д

А

т

р

у

ф

Р

з

и

ф

я

Х

ц

ч

ш

я

С

т

у

х

ы

Первая буква выбиралась в левом квадрате, вторая – в правом. Мысленно строился прямоугольник, и в шифртекст включались буквы из незанятых его углов. Так, в примере е на место К ставилась буква из соответствующего незанятого угла прямоугольника второго квадрата Ж, а вместо Р ставилась Ф. Если буквы оказывались в одной строке, то буква заменялась на букву той же позиции, но из другого квадрата. Так, в примере вместо И ставилась буква этого же столбца второго квадрата К, а вместо П – соответствующая буква первого квадрата З. Таким образом, слово криптография после зашифрования имело бы вид

ЖФКЗФБЕРРУЩР.

Советским криптографам в годы войны шифры типа «Два квадрата» удавалось дешифровывать, но это требовало значительных усилий и опыта.

Преимуществом данных шифров перед кодами были достаточная простота и быстрота зашифрования и расшифрования, отсутствие потребности в словарях, простота в смене ключевых квадратов. Практически шифр «Два квадрата» является забытым шифром англичанина Чарльза Уинстона (1854г.), который назывался «двойным квадратом».

Идея Х. Фейстеля. Блочные шифры это шифры простой замены с большим алфавитом «открытого текста». Обычно к-граммы текста объявляются символами нового алфавита.

Многие блочные шифры используют в своем построении так называемую идею Х. Фейстеля, состоящую в реализации многих «раундов» шифрования, каждый из которых реализуется криптосхемой, идея которой заключается в том, что исходный блок длины 2k двоичной информации B(F2)2k делится на два подблока L,R(F2)k одинаковой длины, (L,R)=B, которые преобразуются по правилу

(L,R)(R, L+F(K,R)),

где К(F2)k – ключ раунда шифрования, + покомпонентное сложение векторов по модулю 2, а F – произвольное фиксированное отображение (F2)2k в (F2)k. Многие блочные шифры построены на этом принципе и отличаются длиной k блоков, функцией F, числом раундов шифрования.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]