русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Симметричные криптосистемы. Алгоритм IDEA

Алгоритм IDEA (International Data Encryption Algorithm) относится к классу симметричных шифраторов. Данный алгоритм был разработан в 1990 г. в качестве альтернативы алгоритму DES (Data Encryption Standard). В основе алгоритма лежит идея смешанного преобразования, которое случайным образом равномерно распределяет исходный текст по всему пространству шифротекста.

Смешанные преобразования реализуются при помощи перемежающихся последовательностей замен и простых операций перестановок.
Преобразование данных производится по блокам, размер которых равен 64 битам. Длина ключа в алгоритме IDEA составляет 128 бит.

Каждый 64-битный блок рассматривается как четыре 16-битных подблока, которые преобразуются с использованием следующих целочисленных операций.
1. Побитное сложение по модулю 2 (XOR) двух 16-битных операндов, которое будем обозначать как ..
2. Сложение двух целых 16-битных операндов по модулю 216, обозначенное как .
3. Умножение двух чисел без знака по модулю . Результат операции умножения усекается до длины в 16 бит. При вычислении данной операции существует исключение для кода со всеми нулями, который при умножении рассматривается как число . Данную операцию будем обозначать как .
Процедура шифрования состоит из восьми одинаковых раундов и дополнительного 9-го выходного раунда (рис. 8, а).


Рис. 8 . Алгоритм IDEA:
а – схема процедуры шифрования; б – мультипликативно-аддитивная структура
На выходе 9-го раунда формируется содержимое четырёх 16-битных подблоков, образующих блок шифротекста.
Основной частью каждого раунда является мультипликативно-аддитивная структура (рис. 8, б).

Здесь FF2 16-битные значения, полученные из открытого текста,
ZZ6 – 16-битные подключи.

Все операнды, участвующие в выполнении процедуры шифрования, имеют размерность 16 бит.
На рис. 9 приведена схема выполнения первого раунда алгоритма IDEA.

Рис. 9 . Первый раунд шифрования алгоритма IDEA
Данные, получаемые на выходе i-го раунда шифрования, подаются на вход (i+1)-го раунда. Входными данными 1-го раунда являются четыре
16-битных подблока (X1, X2, X3, X4) 64-битного блока исходного текста.

Схема выполнения 9-го раунда шифрования приведена на рис. 10.


Рис. 10 . Девятый раунд шифрования алгоритма IDEA
Следует обратить внимание на то, что второй и третий подблоки промежуточного значения W меняются местами после выполнения каждого раунда шифрования кроме восьмого.

На каждом из девяти раундов используются значения 16-битных итерационных ключей Zi, которые получаются путём преобразования исходного 128-битного ключа K.

Первые 8 итерационных ключей Z1…Z8 берутся как восемь последовательных частей 128-битного ключа. Для получения следующих восьми итерационных ключей 128-битное значение ключа K циклически сдвигается на 25 бит влево и ключи Z9…Z16 вновь берутся как его 8 последовательных частей. Данный процесс повторяется до тех пор, пока не будут получены все 52 итерационных ключа.

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

Таблица 3
Значения ключей, используемых в алгоритме IDEA
для дешифрования

При этом выполняются следующие соотношения:
                                   (9)
                                       (10)
Таким образом, для ключа Zj значение, обозначаемое как –Zj, является аддитивным инверсным по модулю , а значение, обозначаемое как
 – мультипликативным инверсным по модулю +1.

Порядок использования итерационных ключей при шифровании показан на рис. 11.

Рис. 11 . Порядок использования итерационных ключей алгоритма IDEA

При выполнении дешифрования раунды алгоритма выполняются в таком же порядке. На вход первого раунда подаётся четыре 16-битных подблока 64-битного блока шифротекста. Значения, полученные после выполнения выходного раунда, являются подблоками 64-битного блока исходного текста. Отличие от процедуры шифрования заключается в том, что вместо ключей Z1...Z52 используются ключи U1...U52.

Автор: Ярмолик, В. Н.

Просмотров: 4371

Вернуться в оглавление: элементы теории информации




Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.