Международный алгоритм IDEA.
Данный алгоритм получает на входе 64-битовый блок открытого текста (в процессе шифрования он разбивается на четыре 16-битовых подблока) и 128-битовый ключ, из которого генерируется пятьдесят два 16-битовых подключа шифрования Z1..Z52 по шесть подключей на каждый из восьми раундов и четыре подключа для выходного преобразования. На выходе генерируется 64-битовый блок шифрованного текста. Алгоритм расшифрования IDEA полностью повторяет структуру алгоритма шифрования: в качестве входных данных использует 64-битовый блок шифрованного текста, и тот-же 128-битовый ключ, из которого генерируются пятьдесят два 16-битовых подключей расшифрования U1..U52. В результате работы алгоритм расшифрования должен генерировать 64-битовый блок открытого текста.
Алгоритм шифрования представляет собой сложную комбинацию смешанного использования трех различных операций. Каждая из операций предполагает два 16-битовых входных значения, в результате обработки которых получается одно 16-битовое выходное значение. Вот эти операции:
Побитовое исключающее "ИЛИ" (XOR, сумма по модулю 2), обозначаемое символом Å.
Сложение целых чисел по модулю 216 (по модулю 65536) с входными и выходными значениями, рассматриваемыми как 16-битовые целые числа без знака. Эта операция обозначается символом .
Умножение целых чисел по модулю 216 + 1 (по модулю 65537) с входными и выходными значениями, рассматриваемыми как 2-битовые целые числа без знака, за исключением блока состоящего из одних нулей, который интерпретируется как 216. Эта операция обозначается символом .
Упрощенно операция реализуется следующим отображением:
Обратите внимание, что (ab mod 216) соответствует 16 наименее значимым битам ab, а (ab div 216) является простым сдвигом ab вправо на 16 битов. Особенность данной операции в том, что она образует группу (т. е. каждый элемент обратим, включая 0 º 216). Эти операции являются несогласованными: 1) Никакие две из этих трех операций не подчиняются дистрибутивному закону. 2) Никакие две из этих трех операций не подчиняются ассоциативному закону.
Вычисление подключей IDEA.
В алгоритме IDEA используется 128-битовый ключ Z, который должен быть как у отправителя, так и у получателя сообщения. Из этого до начала шифрования или расшифрования генерируются пятьдесят два 16-битовых подключа. При этом применяется следующая схема. Первые восемь подключей, обозначенные Z1..Z8, образуются непосредственно из ключа: Z1 равен первым 16 битам ключа, Z2 - следующим 16 и т.д.
Затем к ключу шифрования применяется циклический сдвиг влево на 25 битов и создается восемь следующих подключей. Эта процедура повторяется до тех пор, пока не будут получены все 52 подключа. В таблице показано соответствие битов всех подключей битам исходного ключа.
Подключи расшифрования U1..U52 получаются из ключей шифрования по схеме, приведенной в таблице. Где
Zi-1 – мультипликативное обращение Zi по модулю 216+1 (простое число) то есть
Zi Zi-1 = 0000000000000001.
-Zi – аддитивное обращение Zi по модулю 216 то есть
Zi (-Zi) = 0000000000000000.
1. Первых четыре подключa для i-го раунда дешифрования получаются из первых четырех подключей (10 - i)-гo раунда шифрования, если 9-м раундом считать выходное преобразование. Первый и четвертый подключи дешифрования равны мультипликативным обращениям по модулю 216 +1 первого и четвертого подключей шифрования соответственно. Для раундов со 2-го по 8-й второй и третий подключи дешифрования равны аддитивным обращениям по модулю 216 третьего и второго подключей шифрования соответственно. Для раундов 1 и 9 второй и третий подключи дешифрования равны аддитивным обращениям по модулю 216 второго и третьего подключей шифрования соответственно.
2. Для первых восьми раундов два последних подключа i-го раунда дешифрования равны двум последним подключай (9 – i)-го раунда шифрования.
Дата добавления: 2016-02-13; просмотров: 1120;