Компьютеры - SEAL (криптографический алгоритм) - Описание12 февраля 2011
Оглавление: 1. SEAL (криптографический алгоритм) 2. История 3. Описание 4. Свойства и практическое применение
При описании алгоритма используются следующие операции и обозначения:
- числа шестнадцатеричной системы счисления начинаются с символов «0x» и используют в записи кроме десятичных цифр символы «a», «b», «c», «d», «e» и «f», которые обозначают десятичные числа от 10 до 15 соответственно;
- под выражением Y t следует понимать циклический сдвиг регистра Y вправо на t бит;
- под выражением Y t следует понимать циклический сдвиг регистра Y влево на t бит;
- операция X Y означает побитовое логическое умножение регистров X и Y;
- операция X Y означает побитовое логическое сложение регистров X и Y;
- операция X Y означает побитовое сложение по модулю 2 регистров X и Y;
- под X Y следует понимать конкатенацию регистров X и Y;
- выражение odd обозначает логическую функцию аргумента X, которая принимает значение ИСТИНА только, если X чётное число.
Создание таблиц шифрования из ключа
Чтобы избежать потери скорости шифрования на медленных операциях алгоритм использует три таблицы: R, S и T. Эти таблицы вычисляются с помощью процедуры из алгоритма SHA-1 и зависят только от ключа. Заполнение данных таблиц можно описать с помощью функции G, которая из 160-битной строки и 32-битного числа возвращает 160-битное значение .
Введем следующие функции и переменные в зависимости от индекса :
- для установим и
- для установим и
- для установим и
- для установим и
Затем 160-битную строка разбивается на пять 32-битных слов так, что
Также создается шестнадцать 32-битных слов
Затем выполняются финальные вычисления:
-
Введем функцию где для
Тогда таблицы:
Далее ключ в алгоритме не используется.
Инициализация служебных регистров
Перед генерацией псевдослучайной функции нужно подготовить четыре 32-битовых служебных регистра и четыре 32-битовых слова. Их значения определяются из таблиц R и T, 32-битового числа n и некоторого числа l в следующей процедуре.
Создание псевдослучайной функции
Для шифрования текста необходимо создать псевдослучайную функцию.
Процесс шифрования состоит из большого числа итераций, каждая из которых завершается генерацией псевдослучайной функции. Количество пройденных итераций показывает счетчик l. Все они подразделяются на несколько этапов с похожими операциями. На каждом этапе старшие 9 битов одного из регистров используются в качестве указателя, по которому из таблицы T выбирается значение. Это значение складывается арифметически или поразрядно по модулю 2 со следующим регистром. Затем первый выбранный регистр преобразуется циклическим сдвигом вправо на 9 позиций. Далее либо значение второго регистра модифицируется сложением или XORом с содержимым первого и выполняется переход к следующему этапу, либо этот переход выполняется сразу. После 8 таких этапов значения A, B, C и D складываются с определенными словами из таблицы S и добавляются в ключевую последовательность y. Завершающий этап итерации заключается в прибавлении к регистрам дополнительных 32-битных значений. Причем выбор конкретного значения зависит от четности номера данной итерации.
Просмотров: 6362
|