Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Сборная ответов к госэкзаменам.doc
Скачиваний:
108
Добавлен:
02.09.2019
Размер:
7 Mб
Скачать

Аутентификация сообщений

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

а1, а2, …аn – о.т., b1,b2, …bn – ш.т.

  1. Сообщение передается в открытом виде (a1,a2…..an, U). U = bn – вектор аутентификации. Приемник зашифровывает (a1,a2…..an) и проверяет последний зашифрованный бит с U. Вероятность принять искажение за истину = ½ в степени n. Рекомендуется n =24.

  2. Сообщение передается в шифрованном виде. U – первые m бит последнего зашифрованного блока. Угадать U практически невозможно. Передается (b1,b2…..bn, U). После получения сравниваем.

Вопрос 41.1. Итерационные системы блочного шифрования. Особенности строения и ключевой системы шифров Rijndael. Режимы шифрования. Аутентификация сообщений с использованием блочного шифра

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

Сети Фейстеля

Большинство блочных алгоритмов являются сетями Фейстеля. Возьмите блок длиной n и разделите его на две половины длиной n/2: L и R. Конечно, n должно быть четным. Можно определить итеративный блочный шифр, в котором результат j-го этапа определяется результатом предыдущего этапа:

Li = Ri-1, Ri = Li-1  f(Ri-1, Ki), где Ki - это подключ, используемый на j-ом этапе, а f - это произвольная функция этапа.

Эту концепцию можно увидеть в DES, Lucifer, FEAL, Khufu, Khafre, LOKI, COST, CAST, Blowfish и других алгоритмах. Почему это так важно? Гарантируется, что эта функция является обращаемой. Так как для объединения левой половины с результатом функции этапа используется XOR, следующее выражение обязательно является истинным: Li-1  f(Ri-1, Ki)  f(Ri-1, Ki)= Li-1

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

Победитель aes – шифр Rijndael

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

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

Алгоритм состоит из некоторого количества раундов (от 10 до 14 – это зависит от размера блока и длины ключа), в которых последовательно выполняются следующие операции:

  • ByteSub – табличная подстановка 8х8 бит (рис.1),

Рис.1.

  • ShiftRow – сдвиг строк в двумерном массиве на различные смещения (рис.2),

Рис.2.

  • MixColumn – математическое преобразование, перемешивающее данные внутри столбца (рис.3),

Рис.3.

  • AddRoundKey – добавление материала ключа операцией XOR (рис.4).

Рис.4.

В последнем раунде операция перемешивания столбцов отсутствует, что делает всю последовательность операций симметричной