
- •Вибір Поля
- •Математичний опис алгоритмів шифрування та дешифрування.
- •Робота алгоритму гост 28147-89 у режимі простої заміни.
- •Режим простої заміни
- •Функція шифрування
- •Робота алгоритму гост 28147-89 в режимі гамування Режим гамування
- •Робота алгоритму гост 28147-89 в режимі гамування зі зворотним зв'язком Режим гамування зі зворотним зв'язком
- •Робота алгоритму гост 28147-89 у режимі виробки імітовставки.
- •Режим виробки імітовставки
- •4.2 Модель порушника управління ключами
- •Описание
- •Особенности гост р 34.11-94
- •Алгоритм вычисления шаговой функции хэширования
- •Генерация ключей
- •Шифрующее преобразование
- •Перемешивающее преобразование
- •1.1 Протоколи автентифікації що грунтуються на симетричних криптоперетворень(іso/iec 9798 2).
- •1.2 Протоколи автентифікації що грунтуються на асиметричних криптоперетворень(іso/iec 9798 3).
Описание
Основой
описываемой хэш-функции является шаговая
функция хэширования
где
Hout, Hin, m —
блоки длины 256 бит.
Входное сообщение M разделяется на блоки mn,mn − 1,mn − 2,...,m1 по 256 бит. В случае если размер последнего блока mn меньше 256 бит, то к нему приписываются слева нули для достижения заданной длины блока.
Каждый
блок сообщения, начиная с первого,
подаётся на шаговую функцию для вычисления
промежуточного значения хэш-функции:
Значение
H1 можно выбрать произвольным.
После вычисления Hn + 1 конечное значение хэш-функции получают следующим образом:
, где L — Длина сообщения M в битах по модулю 2256
, где K — Контрольная сумма сообщения M: m1 + m2 + m3 + ... + mn
h — значение хэш-функции сообщения M
Алгоритм
Инициализация:
— Начальное значение хэш-функции. Т.е. - 256 битовый IV вектор, определяется пользователем.
— Контрольная сумма
— Длина сообщения
Функция сжатия внутренних итераций: для i = 1 … n — 1 выполняем следующее (пока | M | > 256):
- итерация метода последовательного хэширования
- итерация вычисления длины сообщения
- итерация вычисления контрольной суммы
Функция сжатия финальной итерации:
- вычисление полной длины сообщения
- набивка последнего блока
- вычисление контрольной суммы сообщения
- MD - усиление
Выход. Значением хэш-функции является h,
Замечание: так как длина сообщения участвует в хэшировании, то нет необходимости указывать в передаваемом сообщении количество добавленных нулей к блоку mn.
Особенности гост р 34.11-94
При обработке блоков используются преобразования по алгоритму ГОСТ 28147—89;
Обрабатывается блок длиной 256 бит, и выходное значение тоже имеет длину 256 бит.
Применены меры борьбы против поиска коллизий, основанном на неполноте последнего блока.
Обработка блоков происходит по алгоритму шифрования ГОСТ 28147—89, который содержит преобразования на S-блоках, что существенно осложняет применение метода дифференциального криптоанализа к поиску коллизий.
Алгоритм вычисления шаговой функции хэширования
Шаговая
функция хэширования f отображает
два блока длиной 256 бит в один блок длиной
256 бит:
и
состоит из трех частей:
Генерирование ключей
Шифрующее преобразование — шифрование
с использованием ключей
Перемешивающее преобразование результата шифрования
Генерация ключей
В алгоритме генерации ключей используются:
Два преобразования блоков длины 256 бит:
Преобразование
, где
— подблоки блока Y длины 64 бит.
Преобразование
, где
, а
— подблоки блока Y длины 8 бит.
Три константы:
C2 = 0
C3 = 0xff00ffff000000ffff0000ff00ffff0000ff00ff00ff00ffff00ff00ff00ff00
C4 = 0
Алгоритм:
Для j = 2,3,4 выполняем следующее:
Шифрующее преобразование
После
генерирования ключей происходит
шифрование Hin по ГОСТ
28147—89 в режиме простой замены
на ключах Ki (для i: =
1,2,3,4), процедуру шифрования обозначим
через E (Примечание: функция шифрования
E по ГОСТ 28147 шифрует 64 битные данные 256
битным ключом). Для шифрования Hin
разделяют на четыре блока по 64 бита:
и
зашифровывают каждый из блоков:
s1 = E(h1,K1)
s2 = E(h2,K2)
s3 = E(h3,K3)
s4 = E(h4,K4)
После
чего блоки собирают в 256 битный блок: