Исходный текст разбивается на 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битный).