- •Способы криптографической защиты информации в радиосвязи методические указания
- •090102 “Компьютерная безопасность”, 090105 “Комплексное обеспечение информационной безопасности
- •Введение
- •Шифрование данных в группе симметричных блочных алгоритмов redoc.
- •Теоретическое введение
- •Алгоритм redoc III
- •Алгоритм зашифрования redoc III
- •Создание таблицы ключей
- •Алгоритм расшифрования redoc III
- •Шифрование данных с помощью генератора Геффе.
- •Теоретическое введение
- •Обобщенный генератор Геффе
- •Описание алгоритма решения задачи Решение данной задачи можно разбить на следующие этапы.
- •Хеширование данных с помощью алгоритма md5.
- •Теоретическое введение
- •Присоединение заполняющих (дополнительных) битов
- •Добавление длины
- •Инициализация md буфера
- •Обработка сообщения в блоках по 16 слов
- •Шифрование данных с помощью алгоритма a5.
- •Теоретическое введение
- •Шифр а5/0.
- •Шифр а5/1
- •Шифр а5/2.
- •Шифр а5/3
- •Шифрование данных с помощью алгоритма Blowfish.
- •Теоретическое введение Функциональное преобразование f(X) сети Фейстеля:
- •Алгоритм шифрования 64-битного блока с известным массивом p и f(X)
- •Алгоритм Blowfish
- •Выбор начального значения p-массива и таблицы замен
- •Шифрование данных с помощью алгоритма seal.
- •Теоретическое введение Обозначения.
- •Длина выхода.
- •Отображение ключа в таблицы.
- •Описание функции генерации таблиц.
- •Псевдослучайная функция.
- •Алгоритм seal (отображение 32-битного индекса в l бит).
- •Процедура инициализации seal.
- •Шифрование данных с помощью алгоритма rc2.
- •Теоретическое введение Структура алгоритма
- •Процедура расширения ключа
- •Шифрование данных с помощью алгоритма cast.
- •Теоретическое введение
- •Библиографический список
- •Содержание
- •Способы криптографической защиты
- •090102 “Компьютерная безопасность”, 090105 “Комплексное обеспечение информационной безопасности
- •394026 Воронеж, Московский просп., 14
Шифрование данных с помощью алгоритма seal.
Цель работы: изучить методы шифрования данных в алгоритме SEAL и освоить их практическое применение.
Теоретическое введение Обозначения.
Всюду далее 32-битная подпоследовательность именуется "слово", а 8-битная подпоследовательность - "байт". Пустая подпоследовательность обозначается λ.
Биты подпоследовательности x длины t обозначаются как x0x1...xt-1.
Шестнадцатиричные числа пишутся с помощью предшествующего им префикса "0х", символы "a"-"f" представляют числа 10-15, соответственно. Как y»»t обозначается правый циклический сдвиг слова y на t бит; другими словами, i-ый бит в y»»t - это y(i - t) mod 32.
Символами v, &, обозначены побитовые операции AND, OR и XOR; как A обозначен комплемент A, как A+B - сумма двух целых без знака, игнорирующая перенос (то есть сумма чисел по mod 232). Как "||" обозначен оператор конкатенации, как odd( ) - предикат, истинный тогда и только тогда, когда его аргумент - четное число.
Длина выхода.
SEAL полагается порождающим выход переменной длины. Пусть L - желаемое количество выходных бит. Подразумевается, что L имеет достаточно большую границу.
Алгоритм прекращает генерацию бит, как только порождено L' бит, где L' - наименьшее кратное 128, большее или равное L.
Отображение ключа в таблицы.
П
21
Таблицы задаются с помощью функции G, построенной непосредственно на основе известного алгоритма хэширования SHA, являющегося федеральным стандартом США.
Описание функции генерации таблиц.
Задается Ga(i) для 160-битовой подпоследовательности a и целого 0 ≤ i < 232.
Параметр i рассматривается как 32-битная подпоследовательность, значение которой - двоичное число без знака i.
Сначала даются следующие определения.
Для 0 ≤ t ≤ 19 положим Kt=0x5a827999 и ft(B,C,D) = (B&C)v(B&D).
Для 20 ≤ t ≤ 39 положим Kt= 0x6ed9eba1 и ft(B,C,D) = BCD.
Для 40 ≤ t ≤ 59 положим Kt= 0x8f1bbcdc и ft(B,C,D) = (B&C)v(B&D)v(C&D).
Для 60 ≤ t ≤ 79 положим Kt= 0xca62c1d6 и ft(B,C,D) = BCD.
Исходная 160-битная подпоследовательность a разбивается на пять 32-битных слов, a = H0H1H2H3H4, а 512-битная подпоследовательность M1 полагается равной i || 0480.
Затем выполняется следующая обработка:
Разделить M1 на 16 слов W0, W1, ... ,W15, где W0 - самое левое слово, так что W0=i, W1= W2=...=W15.
Для 16≤ t ≤79 пусть Wt= Wt-3⊕ Wt-8⊕ Wt-14⊕ Wt-16.
Пусть A = H0, B = H1, C = H2, D = H3, E = H4.
Для 0≤ t ≤79 выполнить:
TEMP = A 〉〉〉27 + ft(B,C,D) + E + Wt+ Kt
E = D;
D = C;
C = B 〉〉〉 2;
B
22
H0= H0+ A;
H1= H1+ B;
H2= H2+ C;
H3= H3+ D;
H4= H4+ E;
После обработки M1 значение функции Ga(i) - это 160-битная подпоследовательность H0H1H2H3H4.
Делается переиндексация функции G для построения функции Γ , образами которой являются 32-битные слова вместо 160-битных. Функция Γ задается выражением , где . Таким образом, таблица значений Γ - это в точности таблица значений G, считываемая слева направо и сверху вниз.
Теперь определяются
T[i] = Γa(i) для всех 0 ≤ i < 512,
S[j] = Γa(0x1000 + j) для всех 0 ≤ j < 256,
и
R[k] = Γa(0x2000 + k) для всех 0 ≤ k < 4(L-1)/8192.
Вычисление этих таблиц требует вычисления функции компрессии SHA применительно к переменному количеству блоков - 131 раз для получения выхода в 512 байт, 207 раз для выхода максимальной длины в 64 килобайта.