Опубликован: 02.03.2017 | Уровень: для всех | Доступ: свободно
Лекция 7:

Современные симметричные алгоритмы шифрования

Аннотация: Из большого множества современных алгоритмов шифрования мы выбрали такие, которые иллюстрируют применение различных математических конструкций. В лекции представлены алгоритмы: DES, ГОСТ 28147-89, AES, IDEA. Алгоритм DES был первым, открыто опубликованным алгоритмом, послужил основой для разработки методов криптоанализа. Алгоритм ГОСТ 28147-89 и в настоящее время используется в России. Алгоритм AES интересен тем, что построен на своеобразной, весьма нетривиальной математике полей Галуа. Наконец, IDEA примечателен тем, что соединяет в себе разные алгебраические конструкции.

7.1 Алгоритм DES

Мы здесь приведем краткое описание алгоритма DES, подробное изложение можно найти в [1], [2], [3], [4].

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

Длина ключа равна 56 битам. (Ключ обычно представляется 64-битовым числом, но каждый восьмой бит используется для проверки четности и игнорируется. Биты четности являются наименьшими значащими битами байтов ключа.) Ключ, который может быть любым 56-битовым числом, можно изменить в любой момент времени. Ряд чисел считаются слабыми ключами, но их можно легко избежать. Безопасность полностью определяется ключом.

Алгоритм является комбинацией двух основных методов шифрования: смещения и диффузии. DES состоит из 16 этапов, одинаковая комбинация методов применяется к открытому тексту 16 раз.

Алгоритм использует только стандартную арифметику 64-битовых чисел и логические операции, поэтому он легко реализовывался в аппаратуре второй половины 70-x.

Схема алгоритма представлена на рисунке 7.1.

Таблица 7.1. Начальная перестановка IP шифра DES
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 48 40 32 24 16 8
57 49 41 33 25 17 9 1 59 51 43 35 27 19 14 3
61 53 45 37 29 21 13 5 63 55 47 39 31 23 15 7

Биты входных данных нумеруются по порядку, начиная с 1, и переставляются подстановкой IP согласно таблице 7.1. Таблица трактуется следующим образом: значение 58 бита входной последовательности перемещается в битовую позицию 1, бит 50 -- в битовую позицию 2, бит 42 -- в битовую позицию 3, и так далее.

После первоначальной перестановки блок разбивается на правую и левую половины длиной по 32 бита. Затем выполняется 16 этапов одинаковых действий, называемых функцией f, в которых данные объединяются с ключом. После шестнадцатого этапа правая и левая половины объединяются и алгоритм завершается заключительной перестановкой (обратной по отношению к первоначальной).

На каждом этапе (см. рис. 7.2) биты ключа сдвигаются, и затем из 56 битов ключа выбираются 48 битов. Правая половина данных увеличивается до 48 битов с помощью перестановки с расширением, объединяется посредством XOR с 48 битами смещенного и переставленного ключа, проходит через 8 S-блоков, образуя 32 новых бита, и переставляется снова. Эти четыре операции и выполняются функцией f. Затем результат функции f объединяется с левой половиной с помощью другого XOR. В итоге этих действий появляется новая правая половина, а старая правая половина становится новой левой. Эти действия повторяются 16 раз, образуя 16 этапов DES.

Один раунд шифра DES

Рис. 7.2. Один раунд шифра DES

Если B_i --- результат i-ой итерации, L_i и R_i --- левая и правая половины B_i, K_i --- 48-битовый ключ для этапа i, a f - это функция, выполняющие все подстановки, перестановки и XOR с ключом, то этап можно представить как:

L_i = R_{i-1}, \qquad R_i = L_{i-1}\oplus f(R_{i-1},K_i).

7.2 Алгоритм ГОСТ 28147-89

В алгоритме ГОСТ ключевая информация состоит из двух структур данных. Помимо собственно ключа, необходимого для всех шифров, она содержит еще и таблицу замен. Ниже приведены основные характеристики ключевых структур ГОСТа.

Ключ является массивом из восьми 32-битовых элементов кода, далее в настоящей работе он обозначается K: K=\{K_i\}_{i=0}^7.

В ГОСТе элементы ключа используются как 32-разрядные целые числа без знака: 0\leq K_i<2^{32}. Таким образом, размер ключа составляет 32\cdot 8=256 бит, или 32 байта.

Таблица замен может быть представлена в виде 8\times 16-матрицы, содержащей 4-битовые элементы, которые можно представить в виде целых чисел от 0 до 15. Строки таблицы замен называются узлами замен, они должны содержать различные значения, то есть каждый узел замен должен содержать 16 различных чисел от 0 до 15 в произвольном порядке.

Евгений Шаров
Евгений Шаров

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

Юлия Мышкина
Юлия Мышкина

Обучение с персональным тьютором осуществляется по Скайпу или посредством переписки?

Владислав Ветошкин
Владислав Ветошкин
Россия, Ижевск, Ижевский государственный технический университет имени А.Т. Калашникова, 2011
Саламат Исахан
Саламат Исахан
Россия, Turkistan