русс | укр

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

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

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

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


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

Алгоритм шифрования IDEA


Дата добавления: 2013-12-23; просмотров: 1034; Нарушение авторских прав


Лекция 7

DES-OFB

DES-CFB

DES-CBC

 

Исходный текст разбивается на 64 битовые блоки. 1-ый блок М1 складывается по модулю 2 с 64-битным начальным вектором, который меняется ежедневно и держится в секрете. Полученная сумма затем шифруется по алгоритму DES с использованием ключа, известного и отправителю и получателю. Полученный 64-битный блок складывается по модулю 2 со вторым блоком исходного текста и аналогично получают 2 блок зашифрованного текста и так далее. Процедура повторяется, пока не зашифруются все блоки исходного текста.

 

 

 

C(i) = DES (M(i) XOR C(i-1)) – шифрование

C(0) = IV

M(i) = C(i-1) XOR DES-1 (C(i)) - расшифрование

 

Достоинством данного режима является то, что он не позволяет накапливаться ошибке при передаче. Блок M(i) является функцией C(i) и C(i-1), поэтому ошибка при передаче приведет к потере только 2 блоков исходного текста.

 

 

 

 

 

Размер блока может отличаться от 4.

Исходный файл М считывается последовательными t битными блоками (t<=64). Остаток дописывается нулями либо пробелами. 64 битный сдвиговый регистр в начале содержит вектор инициализации IV выровненный по правому краю (младшие регистры). Для каждого сеанса использования используется новый ключ.

Для всех i блоков шифр записывается

C(i) = M(i) XOR P(i-1)

где P(i-1) – старшие t битов операции DES(C(i-1))

С(0) = IV

Восстановление по обратному алгоритму M(i) = C(i) XOR P(i-1)

 

 

Отличие от CFB состоит только в методе обновления сдвигового регистра. Осуществляется путем удаления его старших t бит и дописывания справа P(i-1)

 

 

 

 

Алгоритм шифрования IDEA является блочным шифром и оперирует 64-битовыми блоками открытого текста.



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

Алгоритм IDEA использует при шифровании процессы смешивания и рассеивания, которые хорошо реализуются аппаратными и программными методами.

В алгоритме используются следующие математические операции:

 

1.

 
+
Поразрядное сложение по модулю 2

(исключающее ИЛИ, обозначается (+) )

 
+


2. Сложение беззнаковых целых по модулю 2^16( [+] )

 

3. Умножение беззнаковых целых по модулю 2^16 +1 (.)

 

Все операции выполняются над 16-битовыми субблоками.

Эти 3 операции несовместимы в том случае, что никакая пара из этих 3х операций не удовлетворяет ассоциативному закону.

a[+](b(+)c) != (a[+]b)(+)с

Никакая пара не удовлетворяет дистрибутивному закону

a[+](b(.)c) != (a(+)b)(.)(a[+]c)

Использование этих 3х операций обеспечивают комплексное преобразование входных данных, существенно затрудняя криптоанализ IDEA по сравнению с DES, который использует только операции исключающее ИЛИ.

 

 
+
 
+
 
+
 
+
Z5(1)
Z6(1)
Z1(1)
X1
 
+
Z2(1)
X2
 
+
Z3(1)
X3
Z4(1)
X4
 
+
Y1
Z1(9)
 
+
 
+
Y3
Z3(9)
 
+
 
+
Y2
Z2(9)
 
+
Y4
Z4(9)

 


Входной 64-битный текст делится на 4 16-битовых блока. Эти 4 субблока становятся входами в 1ый цикл алгоритма. Всего выполняется 8 циклов. Между циклами 2ой и 3ий блоки меняются местами.

В каждом цикле выполняются следующие операции:

1 – умножение субблока x1 и 1го подключа (Z)

2 – сложение субблока x2 и второго подключа

3 – сложение субблока x3 и 3го подключа

4 – умножение субблока 4 и 4го подключа

5 – сложение результатов шагов 1 и 3

6 – сложение результатов шагов 2 и 4

7 - умножение 5го подключа и результатов 5го шага

Всего 14 шагов.

Выходом являются 4 субблока, которые получаются как результат выполнения шагом 11,12,13,14.

В завершении цикла 2ой и 3ий субблоки меняются местами, за исключением последнего цикла.

После 8го цикла осуществляется заключительное формирование выхода.

Полученные субблоки y1,y2,y3,y4 объединяются в блок шифра текста (64битный).

 



<== предыдущая лекция | следующая лекция ==>
DES-ECB | Алгоритм создания поключей.


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


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

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

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


 


Полезен материал? Поделись:

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

 
 

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

Генерация страницы за: 0.003 сек.