Алгоритм шифрирование DES

Автор работы: Пользователь скрыл имя, 30 Ноября 2011 в 17:40, реферат

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

DES (Data Encryption Standard) — симметричный алгоритм шифрования, разработанный фирмой IBM и утвержденный правительством США в 1977 году как официальный стандарт (FIPS 46-3). DES имеет блоки по 64 бита и 16 цикловую структуру сети Фейстеля, для шифрования использует ключ с длиной 56 бит. Алгоритм использует комбинацию нелинейных (S-блоки) и линейных (перестановки E, IP, IP-1) преобразований. Для DES рекомендовано несколько режимов:

Содержание работы

1 История
2 Блочный шифр
3 Преобразования Сетью Фейстеля
4 Схема шифрования алгоритма DES
4.1 Начальная перестановка
4.2 Циклы шифрования
4.3 Основная функция шифрования (функция Фейстеля)
4.4 Генерирование ключей ki
4.5 Конечная перестановка
5 Схема расшифрования
6 Режимы использования DES
7 Криптостойкость алгоритма DES
7.1 Слабые ключи
7.2 Частично слабые ключи
7.3 Известные атаки на DES
8 Увеличение криптостойкости DES
9 Применение
10 Литература

Содержимое работы - 1 файл

Алгоритм шифрирование DES.doc

— 592.50 Кб (Скачать файл)

Первые три бита вектора E(Ri − 1) являются битами 32, 1, 2 вектора Ri − 1. По таблице 2 видно, что биты 1, 4, 5, 8, 9, 12, 13, 16, 17, 20, 21, 24, 25, 28, 29, 32 дублируются. Последние 3 бита вектора E(Ri − 1) — это биты 31, 32, 1 вектора Ri − 1. Полученный после перестановки блок E(Ri − 1) складывается по модулю 2 с ключами ki и затем представляется в виде восьми последовательных блоков B1,B2,...B8
E(Ri − 1) = B1B2...B8 
Каждый Bj является 6-битовым блоком. Далее каждый из блоков Bj трансформируется в 4-битовый
блок B'j с помощью преобразований Sj. Преобразования Sj определяются таблицей 3.

Рис.5 Схема работы функции f

Таблица 3. Преобразования Si, i=1…8
  0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15  
                                   
0 14 4 13 1 2 15 11 8 3 10 6 12 5 9 0 7  
1 0 15 7 4 14 2 13 1 10 6 12 11 9 5 3 8 S1
2 4 1 14 8 13 6 2 11 15 12 9 7 3 10 5 0  
3 15 12 8 2 4 9 1 7 5 11 3 14 10 0 6 13  
                                   
0 15 1 8 14 6 11 3 4 9 7 2 13 12 0 5 10  
1 3 13 4 7 15 2 8 14 12 0 1 10 6 9 11 5 S2
2 0 14 7 11 10 4 13 1 5 8 12 6 9 3 2 15  
3 13 8 10 1 3 15 4 2 11 6 7 12 0 5 14 9  
                                   
0 10 0 9 14 6 3 15 5 1 13 12 7 11 4 2 8  
1 13 7 0 9 3 4 6 10 2 8 5 14 12 11 15 1 S3
2 13 6 4 9 8 15 3 0 11 1 2 12 5 10 14 7  
3 1 10 13 0 6 9 8 7 4 15 14 3 11 5 2 12  
                                   
0 7 13 14 3 0 6 9 10 1 2 8 5 11 12 4 15  
1 13 8 11 5 6 15 0 3 4 7 2 12 1 10 14 9 S4
2 10 6 9 0 12 11 7 13 15 1 3 14 5 2 8 4  
3 3 15 0 6 10 1 13 8 9 4 5 11 12 7 2 14  
                                   
0 2 12 4 1 7 10 11 6 8 5 3 15 13 0 14 9  
1 14 11 2 12 4 7 13 1 5 0 15 10 3 9 8 6 S5
2 4 2 1 11 10 13 7 8 15 9 12 5 6 3 0 14  
3 11 8 12 7 1 14 2 13 6 15 0 9 10 4 5 3  
                                   
0 12 1 10 15 9 2 6 8 0 13 3 4 14 7 5 11  
1 10 15 4 2 7 12 9 5 6 1 13 14 0 11 3 8 S6
2 9 14 15 5 2 8 12 3 7 0 4 10 1 13 11 6  
3 4 3 2 12 9 5 15 10 11 14 1 7 6 0 8 13  
                                   
0 4 11 2 14 15 0 8 13 3 12 9 7 5 10 6 1  
1 13 0 11 7 4 9 1 10 14 3 5 12 2 15 8 6 S7
2 1 4 11 13 12 3 7 14 10 15 6 8 0 5 9 2  
3 6 11 13 8 1 4 10 7 9 5 0 15 14 2 3 12  
                                   
0 13 2 8 4 6 15 11 1 10 9 3 14 5 0 12 7  
1 1 15 13 8 10 3 7 4 12 5 6 11 0 14 9 2 S8
2 7 11 4 1 9 12 14 2 0 6 10 13 15 3 5 8  
3 2 1 14 7 4 10 8 13 15 12 9 0 3 5 6 11  

Предположим, что B3 = 101111, и мы хотим найти B'3. Первый и последний разряды B3 являются двоичной записью числа а, 0<=a<=3, средние 4 разряда представляют число b, 0<=b<=15. Строки таблицы S3 нумеруются от 0 до 3, столбцы таблицы S3 нумеруются от 0 до 15. Пара чисел (а, b) определяет число, находящееся в пересечении строки а и столбца b. Двоичное представление этого числа дает B'3 . В нашем случае a = 112 = 3, b = 01112 = 7, а число, определяемое парой (3,7), равно 7. Его двоичное представление B'3=0111.

Значение функции  f(Ri − 1,ki) (32 бит) получается перестановкой Р, применяемой к 32-битовому блоку B'1B'2...B'8. Перестановка Р задана таблицей 4.

Таблица 4. Перестановка P
16 7 20 21 29 12 28 17
1 15 23 26 5 18 31 10
2 8 24 14 32 27 3 9
19 13 30 6 22 11 4 25

f(Ri − 1,ki) = P(B'1B'2...B'8
Согласно таблице 4, первые четыре бита результирующего вектора после действия функции f — это биты 16, 7, 20, 21 вектора B'1B'2...B'8

Генерирование ключей ki

Ключи ki получаются из начального ключа k (64 бит = 8 байтов или 8 символов в ASCII) таким образом. Восемь битов, находящих в позициях 8, 16, 24, 32, 40, 48, 56, 64 добавляются в ключ k таким образом чтобы каждый байт содержал нечетное число единиц. Это используется для обнаружения ошибок при обмене и хранении ключей. Затем делают перестановку для расширенного ключа (кроме добавляемых битов 8, 16, 24, 32, 40, 48, 56, 64). Такая перестановка определена как в таблице 5.

Рис.6 Схема расшифрования алгоритма DES

Таблица 5.
57 49 41 33 25 17 9 1 58 50 42 34 26 18 C0
10 2 59 51 43 35 27 19 11 3 60 52 44 36  
63 55 47 39 31 23 15 7 62 54 46 38 30 22 D0
14 6 61 53 45 37 29 21 13 5 28 20 12 4  

Эта перестановка определяется двумя блоками C0 и D0 по 28 бит каждый. Первые 3 бита C0 есть биты 57, 49, 41 расширенного ключа. А первые три бита D0 есть биты 63, 55, 47 расширенного ключа. Ci,Di i=1,2,3…получаются из Ci − 1,Di − 1 одним или двумя левыми циклическими сдвигами согласно таблице 6.

Таблица 6.
i 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

Ключ ki, i=1,…16 состоит из 48 бит, выбранных из битов вектора CiDi (56 бит) согласно таблице 7. Первый и второй биты ki есть биты 14, 17 вектора CiDi

Таблица 7.
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

Конечная перестановка

Конечная перестановка IP − 1 действует на T16 и используется для восстановления позиции. Она является обратной к перестановке IP. Конечная перестановка определяется таблицей 8.

Таблица 8. Обратная перестановка IP − 1
40 8 48 16 56 24 64 32 39 7 47 15 55 23 63 31
38 6 46 14 54 22 62 30 37 5 45 13 53 21 61 29
36 4 44 12 52 20 60 28 35 3 43 11 51 19 59 27
34 2 42 10 50 18 58 26 33 1 41 9 49 17 57 25

Информация о работе Алгоритм шифрирование DES