Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
lab_1.doc
Скачиваний:
15
Добавлен:
01.03.2016
Размер:
182.78 Кб
Скачать

Шифры замены

Шифр Цезаря(1 в. до н.э.), по свидетельству летописцев применявшийся в пере­писке с подотчетными ему правителями покоренных земель и в военных походах, состоял иззаменыодних буки на соответствующие им другие во всем тексте. Закон замены был очень прост: при шифровании сообщения вместо пятой буквы латинского алфавита стави­лась вторая, вместо четвертой — первая, вместо третьей — двадцать шестая и т. д. При дешифровании, естественно, сдвиг уже нужно было делать в прямом направлении: вместо первой буквы брать четвертую и т. д.

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

А Б В Г Д Е Ж … Э Ю Я

Г Д Е Ж … Э Ю Я А Б В

Конечно же, Юлий Цезарь не был автором этой идеи, а почерпнул ее из более ран­них источников. Однако с его легкой руки шифр побуквенной замены прижился в древ­нем Риме, а с различными модификациями спустя годы и века распространился на всю Европу, контролируемую тогда римлянами. В современной терминологии шифр Цезаря и его модификации, отличающиеся только законом выбора соответствий между буквами открытого и секретного текстов, относятся к одноалфавитным подстановкам или алфа­витным заменам. Пожалуй, ни один из шифров за историю человечества не имел столько вариантов, областей применения и связанных с ним судеб, как этот. Его увековечило произведение, вошедшее в классику литературного жанра, — “Пляшущие человечки” Ар­тура Конан Дойла.

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

Первой уязвимостью одноалфавитных замен, замеченной нашими предками, была неизменность частот появления определенных букв в среднестатистическом тексте, т. е., если буква “О” является бесспорным лидером по частоте появления в русском языке, то с очень большой вероятностью буква, появляющаяся в зашифрованном тексте чаще всего, — скажем “Ф” — заменяет в нем “О”, далее аналогично по убыванию частот. Зависимость частот появления распространенных букв можно довольно отчетливо проследить уже, скажем, в 100—буквенном послании. Редкие буквы обычно отслеживают подобным спо­собом — их просто подбирают по смыслу в тех словах, где большая часть распространен­ных букв уже раскрыта. Данный способ получил название метод частотного анализа, позднее он применялся по той же самой схеме для пар рядом стоящих букв — биграмм, и даже для буквенных троек — триграмм. Конечно, в этом случае для анализа требовался больший объем шифрованного текста, однако сам метод зачастую оказывался намного быстрее и эффективнее.

Вторая уязвимость схем, подобных шифру Цезаря, связана с короткими часто встречающимися словами — предлогами, союзами и местоимениями. Их роль в тексте часто довольно важна, чтобы допускать их пропуск, а вот человеку пытающемуся разга­дать шифр, они дают очень многое. Например, не каждая буква алфавита может встре­чаться в тексте в полном одиночестве. А чего стоит специфичный русский союз “или”! К слову сказать, очень простое решение этой проблемы было известно уже грекам и римля­нам — в шифрованом сообщении полностью удалялись пробелы, а иногда получившаяся строка еще и разбивалась на «неправильные» слова случайным образом. Но еще много веков спустя подобные шифры ломались из-за того, что шифровальщики- самоучки не учитывали специфику языка исходного сообщения.

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

Рис.1. Квадрат Полибия

Вместо буквы в письме записывалась пара чисел: номер строки и номер столбца ячейки, в котором она располагалась. Также как и у шифра Цезаря у данной схемы не счесть модификаций. Всвязис тем, что в латинском алфавите 26 букв (а в современном русском — 33), и оба эти числа очень «неудачно” раскладываются на сомножители, мо­дификации либо выбрасывали редко встречающиеся буквы, либо добавляли знаки препи­нания и пустые элементы, добиваясь прямоугольников и квадратов: 5х5, 5х6, 4х7, 6х6, 5х7

Пример,

1

2

3

4

5

1

A

B

C

D

E

2

F

G

H

J

K

3

L

M

N

O

P

4

Q

R

S

T

U

5

V

W

X

Y

Z

При шифровании буквы открытого текста заменяются парой чисел: номер столбца и номер строки соответствующей буквы в таблице

Открытый текст:

R

E

A

D

Y

Шифротекст:

24

51

11

41

45

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

Примерно в одно время с Кардано французкий дипломат Блез де Виженер предло­гает модификацию шифра замены, получившей название таблица Виженера. Для шифро­вания по этой схеме необходима таблица из 26 латинских алфавитов, в каждом из которых по какому-либо (не обязательно одинаковому) закону изменен порядок букв, и секретное слово — пароль, известный только отправителю и получателю.

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

Система Виженера

Шифруемый текст

З

А

Щ

И

Т

А

И

Н

Ф

О

Р

М

А

Ц

И

И

Ключ

М

О

Р

Е

М

О

Р

Е

М

О

Р

Е

М

О

Р

Е

Зашифрованный текст

У

О

И

О

Э

О

Ш

Т

Я

Ы

Я

С

М

Г

Ш

О

А

Б

В

Г

Д

Е

Ж

З

И

К

Л

М

Н

О

П

Р

С

Т

У

Ф

Х

Ц

Ч

Ш

Щ

Ъ

Ы

Ь

Э

Ю

Я

М

М

Н

О

П

Р

С

Т

У

Ф

Х

Ц

Ч

Ш

Щ

Ъ

Ы

Ь

Э

Ю

Я

А

Б

В

Г

Д

Е

Ж

З

И

К

Л

О

О

П

Р

С

Т

У

Ф

Х

Ц

Ч

Ш

Щ

Ъ

Ы

Ь

Э

Ю

Я

А

Б

В

Г

Д

Е

Ж

З

И

К

Л

М

Н

Р

Р

С

Т

У

Ф

Х

Ц

Ч

Ш

Щ

Ъ

Ы

Ь

Э

Ю

Я

А

Б

В

Г

Д

Е

Ж

З

И

К

Л

М

Н

О

П

Е

Е

Ж

З

И

К

Л

М

Н

О

П

Р

С

Т

У

Ф

Х

Ц

Ч

Ш

Щ

Ъ

Ы

Ь

Э

Ю

Я

А

Б

В

Г

Д

Алгоритм расшифрования

Ключ

МОРЕ

МОРЕ

МОРЕ

МОРЕ

Шифр

УОИО

ЭОШТ

ЯЫЯС

МГШО

Расшифрованный текст

ЗАЩИ

ТАИН

ФОРМ

АЦИИ

АЛГОРИТМ ШИФРОВАНИЯ:

1. Под каждой буквой открытого текста записываются буквы ключи, повторяющие ключ требуемое число раз (чтобы покрыть все буквы текста).

2. Шифруемый текст по подматрице МОРЕ заменяется буквами, расположенными на пересечении линий, соединяющих буквы первой строки и буквы ключа, находящейся под ней.

Алгоритм расшифрования

Ключ

МОРЕ

МОРЕ

МОРЕ

МОРЕ

Шифр

УОИО

ЭОШТ

ЯЫЯС

МГШО

Расшифрованный текст

ЗАЩИ

ТАИН

ФОРМ

АЦИИ

В строках М, О, Р, Е отыскиваются буквы шифрованного текста и заменяются бук­вами первой строки. Это шифр сложной заменыилимногоалфавитный шифр замены.

Пример,

 

АБВГДЕЁЖЗИКЛМНОПРСТУФХЧШЩЪЫЬЭЮЯ_

А

АБВГДЕЁЖЗИКЛМНОПРСТУФХЧШЩЪЫЬЭЮЯ_

Б

_АБВГДЕЁЖЗИКЛМНОПРСТУФХЧШЩЪЫЬЭЮЯ

В

Я_АБВГДЕЁЖЗИКЛМНОПРСТУФХЧШЩЪЫЬЭЮ

Г

ЮЯ_АБВГДЕЁЖЗИКЛМНОПРСТУФХЧШЩЪЫЬЭ

.

…………

Я

ВГДЕЁЖЗИКЛМНОПРСТУФХЧШЩЪЫЬЭЮЯ_АБ

_

БВГДЕЁЖЗИКЛМНОПРСТУФХЧШЩЪЫЬЭЮЯ_А

Каждая строка в этой таблице соответствует одному шифру замены аналогично шифру Цезаря для алфавита, дополненного пробелом. При шифровании сообщения его выписывают в строку, а под ним ключ. Если ключ оказался короче сообщения, то его циклически повторяют. Шифротекст получают, находя символ в колонке таблицы по букве текста и строке, соответствующей букве ключа. Например, используя ключ АГАВА, из сообщения ПРИЕЗЖАЮ ШЕСТОГО получаем следующую шифровку:

Сообщение

ПРИЕЗЖАЮ_ШЕСТОГО

Ключ

АГАВААГАВААГАВАА

Шифровка

ПНИГЗЖЮЮЮАЕОТМГО

В компьютере такая операция соответствует сложению кодов ASCII символов сообщения и ключа по модулю 256

Для проведения настолько же успешного подбора букв необходим более чем в Lраз больший объем шифрованного текста (гдеL— длина пароля). Это вызвано тем, что таб­лицы частот вычисляются отдельно для каждой изLгрупп букв, а кроме того, и сама процедура подбора несколько усложняется.

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

Во-вторых, таблица, использованная Виженером, несет по своей сути первые намеки на идею цифрового шифрования. При том, если все буквы латинского алфавита пронумеровать по порядку от 0 до 25, то процедура шифрования по такой таблице превра­тится в обычную операцию сложения, Например, буква исходного текста Б (код 1) + буква пароля В (код 2) = код3- буква Г. При дешифровании, наоборот, из кода каждой зашифро­ванной буквы вычитается код буквы пароля. Если при сложении получается число, боль­шее 25, то из него вычитается 26, если при вычитании получается отрицательное число — к нему прибавляется 26. Подобная схема сложения/вычитания называется в математике сложением по модулю — в дана случае сложением по модулю 26.

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

ШИФРЫ ПЕРЕСТАНОВКИ

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

Вы можете создать машинную версию такого шифра, поместив исходное текстовое сообщение в матрицу одним способом и выведя его другим способом. Для того чтобы сделать это, для хранения кодируемого сообщения используется одновременная строка, но сооб­щение записывается в дисковый файл в виде матрицы. В нашем вари­анте исходный текст, представляющий собой строку длиной 100 байт, записывается на диск, как матрица 5х4. Однако вы могли бы использовать матрицу любой другой размерности. Так как сообщение помещается в матрицу фиксированного размера, то существует веро­ятность того, что не все элементы матрицы будут использованы. Это делает необходимым инициализацию матрицы перед помещением в нее исходного текста. На практике лучше инициализировать матрицу про­извольными символами, однако, для простоты используется символ "#".

Если вы поместите сообщение

meet me at sunset

в матрицу, она будет выглядеть следующим образом

m

e

e

t

m

e

a

t

s

u

n

s

e

t

#

|#

#

Если вы затем осуществите запись матрицы по столбцам, то сообщение будет выглядеть следующим образом:

mm e...eest...e u...tan... ts

где точки обозначают соответствующее количество символов "#". Для

декодирования сообщения заполняются столбцы матрицы. Затем матри­ца может быть отображена в нормальном порядке.

Несколько большей стойкостью к раскрытию обладает метод одиночной перестановки по ключу. Он отличается от предыдущего тем, что столбцы таблицы переставляются по ключевому слову, фразе или набору чисел длиной в строку таблицы. Используя в качестве ключа слово ЛУНАТИК, получим следующую таблицу

Л

У

Н

А

Т

И

К

 

 

А

И

К

Л

Н

Т

У

4

7

5

1

6

2

3

 

 

1

2

3

4

5

6

7

Н

О

Н

С

Б

Н

Я

 

 

С

Н

Я

Н

Н

Б

О

Е

Е

О

Я

О

Е

Т

 

 

Я

Е

Т

Е

О

О

Е

Я

С

В

Е

Л

П

Н

 

 

Е

П

Н

Я

В

Л

С

С

Т

И

Щ

Е

О

Ы

 

 

Щ

О

Ы

С

И

Е

Т

Н

А

Т

Е

Е

Н

М

 

 

Е

Н

М

Н

Т

Е

А

До перестановки После перестановки

В верхней строке левой таблицы записан ключ, а номера под буквами ключа определены в соответствии с естественным порядком соответствующих букв ключа в алфавите. Если в ключе встретились бы одинаковые буквы, они бы нумеровались слева направо. Получается шифровка: СНЯНН БОЯЕТ ЕООЕЕ ПНЯВЛ СЩОЫС ИЕТЕН МНТЕА. Для обеспечения дополнительной скрытности можно повторно шифровать сообщение, которое уже было зашифровано. Для этого размер второй таблицы подбирают так, чтобы длины ее строк и столбцов отличались от длин строк и столбцов первой таблицы. Лучше всего, если они будут взаимно простыми.

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

2

4

1

3

 

 

1

2

3

4

 

 

1

2

3

4

4

П

Р

И

Е

 

4

И

П

Е

Р

 

1

А

З

Ю

Ж

1

З

Ж

А

Ю

 

1

А

3

Ю

Ж

 

2

Е

_

С

Ш

2

_

Ш

Е

С

 

2

Е.

_

С

Ш

 

3

Г

Т

О

О

3

Т

О

Г

О

 

3

Г

Т

О

О

 

4

И

П

Е

Р

Двойная перестановка столбцов и строк

В результате перестановки получена шифровка АЗЮЖЕ_СШГТООИПЕР. Ключом к шифру служат номера столбцов 2413 и номера строк 4123 исходной таблицы.

Число вариантов двойной перестановки достаточно быстро возрастает с увеличением размера таблицы: для таблицы 3 х 3 их 36, для 4 х 4 их 576, а для 5*5 их 14400.

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

16

3

2

13

 

 

О

И

Р

Т

5

10

11

8

 

 

З

Ш

Е

Ю

9

6

7

12

 

 

_

Ж

А

С

4

15

14

1

 

 

Е

Г

О

П

П

Р

И

Е

З

Ж

А

Ю

_

Ш

Е

С

Т

О

Г

О

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

Число магических квадратов очень резко возрастает с увеличением размера его сторон: для таблицы 3*3 таких квадратов -1; для таблицы 4*4 - 880; а для таблицы 5*5-250000

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

Для шифрования Карданапредложил использовать квадрат с прорезанными в нем несколькими ячейками (рис.3). Ячейки прорезались таким образом, чтобы при повороте квадрата вокруг своего центра на 90°, потом на 180°, а затем на 270° в прорезях пооче­редно появлялись все позиции исходного квадрата и, причем только по одному разу. При шифровании квадрат накладывался на листок для послания сначала в исходном положе­нии - выписывалась слева направо сверху вниз первая порция (четверть) послания. Затем квадрат поворачивался на 90°, скажем, по часовой стрелке - выписывалась вторая чет­верть сообщения и т. д.

Рис.3. Квадрат Кардана

Для дешифрования необходимо было иметь точную копию того квадрата, которым пользовался шифровальщик, и повторять с ней те же самые повороты. Устройство было удобно для хранения, предельно просто в обращении и при этом давало очень неплохую стойкость шифра — не зная, как именно расположены прорези на квадрате размером NхNчеловеку, перехватившему послание, теоретически нужно было перебратьвариан­тов. Например, для квадрата 6х6 это число уже равняется 262 144, т. е. несет - 18 бит ин­формации. А если бы не существовало способа по части известной о решетке информации восстанавливать поэтапно расположение остальных прорезей, учитывая особенности фо­нетики национального языка, то дешифрование квадрата 10х10 еще недавно было на грани возможностей современных ЭВМ. Ведь информация о прорезях такого квадрата со­ставляет уже около 50 бит. Подобные шифры, не модифицирующие буквы сообщения, а только меняющие их расположение, называются перестановочными.

Пример,

Зашифруем текст:

ШИФРРЕШЕТКАЯВЛЯЕТСЯЧАСТНЫМСЛУЧАЕМШИФРАМАРШРУТНОЙПЕРЕСТАНОВКИ

Наложив решетку на лист бумаги, вписываем первые 15 (по числу разрезов) букв сообщения: ШИФРРЕШЕТКАЯВЛЯЕТСЯЧАСТНЫМСЛУЧАЕМШИФРАМАРШРУТНОЙПЕРЕСТАНОВКИ. Сняв решетку, мы увидим текст:

Ш

И

Ф

Р

Р

Е

Ш

Е

Т

К

А

Я

В

Л

Я

Поворачиваем решетку на 180 градусов. В окошечке появляются новые, еще не заполненные клетки. Вписываем в них следущие 15 букв.

Е

Ш

Т

С

Я

И

Ф

Р

Р

Ч

Е

А

Ш

С

Е

Т

Т

Н

К

Ы

А

М

С

Л

У

Я

В

Л

Ч

Я

Затем переворачиваем решетку на другую сторону и зашифровываем остаток текста аналогичным образом

Е

Ш

А

Т

С

Е

М

Я

Ш

И

И

Ф

Р

Р

Ч

Е

А

Ф

Ш

С

Р

Е

Т

А

Т

Н

М

К

Ы

А

Р

А

М

С

Ш

Л

Р

У

У

Т

Я

В

Л

Ч

Я

Е

Ш

А

Т

С

Е

М

Я

Н

Ш

И

И

О

Й

Ф

П

Р

Р

Ч

Е

Р

Е

А

Ф

Е

Ш

С

Р

С

Е

Т

А

Т

Т

Н

М

А

К

Ы

А

Р

А

М

С

Ш

Л

Р

У

Н

У

О

Т

Я

В

К

В

Л

И

Ч

Я

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