Материал: Раздел 1. Криптографические одноключевые системы

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

S B C D F

G I P Q R

T U V X Z

Многоалфавитная система Виженера (1523-1596).

Квадрат Виженера выглядит следующим образом:

A B C D E F G H I J K L M N O P Q R S T U V W X Y Z

B C D E F G H I J K L M N O P Q R S T U V W X Y Z A

C D E F G H I J K L M N O P Q R S T U V W X Y Z A B

D E F G H I J K L M N O P Q R S T U V W X Y Z A B C

E F G H I J K L M N O P Q R S T U V W X Y Z A B C D

F G H I J K L M N O P Q R S T U V W X Y Z A B C D E

G H I J K L M N O P Q R S T U V W X Y Z A B C D E F

H I J K L M N O P Q R S T U V W X Y Z A B C D E F G

I J K L M N O P Q R S T U V W X Y Z A B C D E F G H

J K L M N O P Q R S T U V W X Y Z A B C D E F G H I

K L M N O P Q R S T U V W X Y Z A B C D E F G H I J

L M N O P Q R S T U V W X Y Z A B C D E F G H I J K

M N O P Q R S T U V W X Y Z A B C D E F G H I J K L

N O P Q R S T U V W X Y Z A B C D E F G H I J K L M

O P Q R S T U V W X Y Z A B C D E F G H I J K L M N

P Q R S T U V W X Y Z A B C D E F G H I J K L M N O

Q R S T U V W X Y Z A B C D E F G H I J K L M N O P

R S T U V W X Y Z A B C D E F G H I J K L M N O P Q

S T U V W X Y Z A B C D E F G H I J K L M N O P Q R

T U V W X Y Z A B C D E F G H I J K L M N O P Q R S

U V W X Y Z A B C D E F G H I J K L M N O P Q R S T

V W X Y Z A B C D E F G H I J K L M N O P Q R S T U

W X Y Z A B C D E F G H I J K L M N O P Q R S T U V

X Y Z A B C D E F G H I J K L M N O P Q R S T U V W

Y Z A B C D E F G H I J K L M N O P Q R S T U V W X

Z A B C D E F G H I J K L M N O P Q R S T U V W X Y

Система Виженера подобна системе Цезаря, в которой ключ меняется от шага к шагу. Квадрат Виженера используется как для зашифрования, так и для расшифрования. Для зашифрования читаем исходное сообщение из строк и ключи системы Цезаря из столбцов. Так, для исходного сообщения PURPLE и ключевого слова CRYPTO находим пересечение P- строки и C - столбца, получаем R Криптотекст имеет вид: RLPEES. Для расшифрования находим, в какой строке в C- столбце лежит R? Получаем P.

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

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

Криптосистема AUTOKLAVE (приписываемая математику 16 века Дж. Кардано, известному своими формулами для решения уравнений 3-й и 4-й степени) является дальнейшей модификацией системы Виженера. Исходное сообщение с некоторым сдвигом само является и ключом шифровки. В следующем сообщении ключ равен 6:

Сообщение: A I D S I S T R A N S M I T T E D T H R O U G H

Ключ: A I D S I S T RA N S M I T T E D T

Ключ используется, как в системе Виженера для подстановки Цезаря для каждой буквы. Пустые символы в начале ключа могут заполняться циклическим концом сообщения или ключевым словом. Так для ключевого слова IMMUNE получаем следующее начало для криптотекста:

Сообщение: A I D S I S T R A N S M I T T E D T H R O U G H

Ключ: I MMUNE A I D S I S T RA N S M I T T E D T

Криптотекст: I U PMVWT Z D F A E B KT RV F P K H Y J A

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

Сообщение: A I D S I S T R A N S M I T T E D T H R O U G H

Ключ: I MMUNE I U P M VWB L P Z N I J E I D O B

Криптотекст: I U PMVW B L P Z N I J E I D Q B Q V W X W I

Для криптоанализа последней версии криптоаналитику достаточно только найти длину ключа.

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

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

Системы

Контекстносвобод-ные

Контекстнозави-симые

Одноалфавитные

Цезаря

Плейфейра

Многоалфивитные

Виженера

Плейфейра с периодом

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

Система «кодовая книга» (CODE BOOK). Зашифрование осуществляется в соответствии с кодовой книгой, например,

Оригинал

Перевод

ATTACK

FISHING

...................

.............................

IN

BETWEEN

.....................

.............................

MORNING

WORK HOUR

.......................

..........................

THE

THE

В этом случае сообщение ATTACK IN THE MORNING (атака утром) будет зашифрована как FISHING BETWEEN THE WORK HOURSE (рыбалка в рабочем перерыве). Чтобы сделать криптотекст синтаксически правильным, в него добавляются разумные концовки.

1.2. Роторные криптографические машины.

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

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

До начала 50-х годов в армии США использовалась машина С-36 известного разработчика криптографических машин Бориса Хэйглина.

Некоторые известные криптографические машины, такие как немецкая ENIGMA, американская SIGABA, японские RED и PURPLE времен второй мировой войны, являются электромеханическими. Основным блоком в них является диск в виде кодового колеса с проволочными перемычками внутри, называемый ротором.

1.3.Криптографический стандарт des

В 1977 г. Был опубликован стандарт шифрования данных (DES- Data Encryption Standard) Национального бюро стандартов. DES- алгоритм был разработан специально для электронных устройств для зашифрования и расшифрования данных. До опубликования DES не было открытых публикаций, содержащих полный алгоритм для практического криптографического применения. Хотя в криптографии предполагается, что криптоаналитик знает используемую криптосистему, однако, большинство разработчиков криптосистем стараются скрыть детали их алгоритмов. DES является исключением. Существует два противоположных мнения о целесообразности опубликования общей системы шифрования данных. С одной стороны этот шаг рассматривается как вызов всем тем, кто пытается вскрывать системы. С другой стороны разработчики лучше всех знают слабости данной системы, что может позволять государственным организациям контролировать переговоры между банками, предприятиями и частными лицами.

Рассмотрим работу алгоритмов криптосистемы DES.

Пользователи выбирают ключ, содержащий 56 битов. Один и тот же ключ используется при зашифровании и расшифровании сообщений, поэтому храниться и передаваться он должен секретной почтой. В позиции 8, 16, 24,...,64 ключа добавляются двоичные символы так, чтобы сумма единиц в байтах была нечетной. Это позволяет проводить проверку ключа при передаче и хранении. 56 бит ключа, находящиеся на позициях 1,2,3,...,7,9,19,11,...17,19,20,21,...63 подвергаются следующей перестановке:

57 49 41 33 25 17 9

1 58 50 42 34 26 18

10 2 59 51 43 35 27 Блок C0

19 11 3 60 52 44 36

-----------------------------------

63 55 47 39 31 23 15

7 62 54 46 38 30 22

14 6 61 53 45 37 29 Блок D0

21 13 5 28 20 12 4

Перестановка определяется двумя блоками C0 и D0 по 28 бит в каждом. Далее используются итеративные процедуры преобразования. Получив некоторые блоки Cn-1 , Dn-1 , строим блоки Cn , Dn для n = 1,2,3,4,...,16 одним или двумя левыми сдвигами из блоков Cn-1 , Dn-1 в соответствии со следующей таблицей сдвигов:

n 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16

Число левых 1 1 2 2 2 2 2 2 1 2 2 2 2 2 2 1

сдвигов

При левых сдвигах все элементы блока смещаются влево на одну или две позиции циклически в пределах данного блока. Из блоков CnDn строятся перестановки Kn , состоящие из 48 бит (биты 9,18,22,25,35,38,43,54 в перестановки не входят). Остальные биты переставляются следующим образом:

14 17 11 24 1 5

3 28 15 6 21 10

23 19 12 4 26 8

16 7 27 20 13 2

41 52 31 37 47 55

30 40 51 45 33 48

44 49 39 56 34 53

46 42 50 36 29 32

Все вышеприведенные вычисления являются предварительными. Из исходного ключа вычислено 16 последовательностей Kn по 48 бит в каждой.

Для шифрования сообщений они представляются двоичными блоками w, содержащими по 64 бита. Сначала блок подвергается начальной перестановке:

58 50 42 34 26 18 10 2

60 52 44 36 28 20 12 4

62 54 46 38 30 22 14 6

64 56 18 40 32 24 16 8

57 49 41 33 25 17 9 1

59 51 43 35 27 19 11 3

61 53 45 37 29 21 13 5

63 55 47 39 31 23 15 7

Полученный блок w’ условно разбивается на два блока w’ = L0RO, где каждый содержит по 32 бита. Далее используется итерационная процедура. Построив блоки Ln-1 и Rn-1 , 1 £ n £ 16 определим Ln и Rn следующим образом:

Ln = Rn-1,

Rn = Ln-1 Å f ( Rn-1,Kn), где Å - сложение по модулю 2, а функция f будет определена ниже.

Расшифрование сообщения производится достаточно просто: приведенные выше уравнения могут быть представлены в виде:

Rn-1 = Ln.,

Ln-1 = Rn Å f (Ln,Kn)

Можно вычислять Ln и Rn, спускаясь до L0,R0, после чего расшифрование становится очевидным.

Функция f строит из 32 - битовых блоков Rn-1 или Ln и 48 битового блока Kn 32 - битовый блок следующим образом. Блок из 32 бит расширяется до 48 бит в соответствии с таблицей:

32 1 2 3 4 5

4 5 6 7 8 9

8 9 10 11 12 13

12 13 14 15 16 17

16 17 18 19 20 21

20 21 22 23 24 25

24 25 26 27 28 29

28 29 30 31 32 1

То есть некоторые биты из 32 битового блока повторяются в 48 - битовом блоке. После такого расширения два 48 битовых блока побитно складываются по модулю 2. Результирующий 48 битовый блок делится на 8 блоков по 6 бит каждый B = B1B2B3...B8. Затем каждый из этих восьми блоков Bi трансформируется в 4-х битовый блок Bi’ с помощью соответствующей таблицы (для каждого блока Bi - своя таблица) и ряда правил.

14 4 13 1 2 15 11 8 3 10 6 12 5 9 0 7

S1 0 15 7 4 14 2 13 1 10 6 12 11 9 5 3 8

4 1 14 8 13 6 2 11 15 12 9 7 3 10 5 0

15 12 8 2 4 9 1 7 5 11 3 14 10 0 6 13

-------------------------------------------------------------------------------------

15 1 8 14 6 11 3 4 9 7 2 13 12 0 5 10

S2 3 13 4 7 15 2 8 14 12 0 1 10 6 9 11 5

0 14 7 11 10 4 13 1 5 8 12 6 9 3 2 15

13 8 10 1 3 15 4 2 11 6 7 12 0 5 14 9

-------------------------------------------------------------------------------------

10 0 9 14 6 3 15 5 1 13 12 7 11 4 2 8

S3 13 7 0 9 3 4 6 10 2 8 5 14 12 11 15 1

13 6 4 9 8 15 3 0 11 1 2 12 5 10 14 7

1 10 13 0 6 9 8 7 4 15 14 3 11 5 2 12