Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Сборная ответов к госэкзаменам.doc
Скачиваний:
107
Добавлен:
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). После получения сравниваем.

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

На примере 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 настолько сложной, насколько захотим, и нам не потребуется реализовывать два различных алгоритма - один для шифрования, а другой для дешифрирования. Структура сети Фейстела автоматически позаботится об этом

IDEA

Шифр IDEA (International Data Encryption Algorithm, международный алгоритм шифрования данных), предложенный Ксуеджа Лай (Xuejia Lai) и Джеймсом Масси (James Massey), появился в 1992 году. Это один из самых лучших и самых безопасных блочных алгоритмов, опубликованных на сегодня.

Обзор idea

IDEA является блочным шифром, он работает с 64-битовыми блоками открытого текста. Длина ключа - 128 битов. Для шифрования и расшифрирования используется один и тот же алгоритм.

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

  • XOR (поразрядное двоичное суммирование)

  • Сложение по модулю 216

  • Умножение по модулю 216 + 1. (Это операцию можно рассматривать как S-блок IDEA.)

Все эти операции (а в алгоритме используются только они, перестановки на битовом уровне не применяются) работают с 16-битовыми подблоками. Этот алгоритм даже эффективнее на 16-битовых процессорах.