Блочные системы шифрования Криптографическая защита информации Лекция 5
Учебные вопросы Принципы построения блочных шифров Примеры блочных шифров Американский стандарт шифрования DES Стандарт шифрования ГОСТ
Введение Блочные и поточные шифры Энтропия текста Сложность реализации преобразования алфавитов большой мощности
Принципы построения блочных шифров Y=E k (X) X=D k (Y) N -> 2 n > лет Известные открытые и зашифрованные части блоков
Условия стойкого блочного алгоритма Функция E k (X) должна быть обратимой. Не должно существовать иных методов прочтения сообщения X по известному блоку Y, кроме как полным перебором ключей k. Не должно существовать иных методов определения, каким ключом k было произведено преобразование известного сообщения X в сообщение Y, кроме как полным перебором ключей.
Представление целых чисел 32 бита ->0… > 2 x 0… > 4 x 0…256
Биективные математические функции сложение (X'=X+V); исключающее ИЛИ (X'=X XOR V); умножение по модулю 2 N+1 (X'=(X*V) mod (2 N+1 )); умножение по модулю 2 N (X'=(X*V) mod (2 N ));
Битовые сдвиги арифметический сдвиг влево/вправо(X'=X SHL/SHR V); циклический сдвиг влево/вправо(X'=X ROL/ROR V);
Табличные подстановки S-box (англ. substitute) (X'=Table[X,V]).
Параметр V фиксированное число (например, X'=X+125); число, получаемое из ключа (например, X'=X+F(k)); число, получаемое из независимой части блока (например, X2'=X2+F(X1)).
Сеть Фейстеля (Feistel Network)
Y 1 = X 2, Y 2 = X 1 i (X 2,k i ), X – входной блок, разделённый на две половины X 1 и X 2, (Y 1,Y 2 ) – результат зашифрования блока X на ключе k i с помощью функции i.
Сеть Фейстеля (Feistel Network) X 1 = Y 2 i (Y 1,k i ), X 2 = Y 1.
Примеры блочных шифров Название алгоритма Автор Размер блока Длина ключа IDEA Xuejia Lia and James Massey 64 бита 128 бит CAST бита 128 бит BlowFish Bruce Schneier 64 бита 128 – 448 бит ГОСТНИИ ***64 бита 256 бит TwoFish Bruce Schneier 128 бит 128 – 256 бит
Американский стандарт шифрования DES Национальное Бюро Стандартов (National Bureau of Standards, NBS) Национальным институтом стандартов и технологий США (National Institute of Standards and Technology, NIST)
Критерии оценки алгоритма 1 часть из 2 алгоритм должен обеспечивать высокий уровень безопасности; алгоритм должен быть полностью определён и легко понятен; безопасность алгоритма должна основываться на ключе и не должна зависеть от сохранения в тайне самого алгоритма; алгоритм должен быть доступен всем пользователям;
Критерии оценки алгоритма 2 часть из 2 алгоритм должен позволять адаптацию к различным применениям; алгоритм должен позволять экономичную реализацию в виде электронных приборов; алгоритм должен быть эффективным в использовании; алгоритм должен предоставлять возможности проверки; алгоритм должен быть разрешён для экспорта.
DES (Data Encryption Standard) опубликован Национальным бюро стандартов США в 1977 г. В 1980 г.алгоритм был принят NIST в качестве первого стандарта шифрования данных для защиты от несанкционированного доступа к важной, но несекретной информации в государственных и коммерческих организациях США.
Схема алгоритма DES
Обозначения L i и R i - левая и правая половины 64- битного блока L i R i ; - операция побитового сложения векторов-блоков по модулю 2; k i – 48-битовые ключи; - функция шифрования; IP – начальная перестановка степени 64.
Начальная перестановка
бит 58 блока T становится битом 1, бит 50 – битом 2 и т.д. Полученный после перестановки блок IP(T) разделяется на две половины: L 0, состоящую из 32 старших бит, и R 0, состоящую из 32 младших бит.
Итеративный процесс шифрования 16 циклов преобразований Фейстеля. T i-1 = L i-1 R i-1 – результат (i-1)-й итерации. T i = L i R i L i = R i-1, R i = L i-1 (R i-1, k i ), i = 1…16. - функция шифрования R i-1 – 32 бита k i – 48 бит K – 56 бит T 16 = R 16 L 16. IP -1
Расшифрование R i-1 = L i, L i-1 = R i (L i, k i ), i = 16…1. от L 16 и R 16 к L 0 и R 0
схема вычисления значения функции (R i-1, k i )
функция расширения E; преобразование S, составленное из восьми преобразований S-блоков S 1,S 2,…,S 8 ; перестановка P.
Перестановка с расширением
Формула E(R i-1 ) k i = B 1 …B 8.
Таблица S-блоков
Преобразование блока B j в B ' j B 2 = a = 1….0 (двоичнойой.) b= (двоичнойой.) 0 a 3, 0 b 15 a=2 (дес.) b=13 (дес.)
Таблица S-блоков a b B 2 = 0011
(R i-1, k i ) Перестановка P B 1 B 2 …B 8
Обработка ключей k – 56 бит k i – 48 бит 8,16,24,32,40,48,56,64
C0C0 D0D0
С i-1 и D i-1 -> C i и D i
Ключи k i 1 i 16, 48 бит C i D i
Перестановка со сжатием 9, 18, 22, 25, 35, 38, 43, 54 из C i D i отсутствуют в k i
Стандарт шифрования данных ГОСТ Алгоритм реализует шифрование 64- битовых блоков данных с помощью 256-битового ключа.
Стандарт шифрования данных ГОСТ N 1 и N 2 – 32-х разрядные накопители; СМ 1 – сумматор по модулю 2 32 (операция +); СМ 2 – сумматор по модулю 2 (операция ); R – 32-разрядный регистр циклического сдвига; КЗУ – ключевое запоминающее устройство объёмом 256 бит, состоящее из восьми 32- разрядных накопителей; S – блок подстановки, состоящий из восьми узлов замены (S-блоков замены) S 1,S 2,…S 8.
Стандарт шифрования данных ГОСТ разрядный блок T 0 32 цикла (j = 1…32). 256 бит ключа k, Восемь 32-разрядных подключей k i k=k 7 k 6 k 5 k 4 k 3 k 2 k 1 k 0.
Стандарт шифрования данных ГОСТ T 0 =(a 1 (0),…,a 32 (0), b 1 (0),…,b 32 (0)) a(0)=(a 32 (0),a 31 (0),…,a 1 (0)), b(0)= (b 32 (0),b 31 (0),…,b 1 (0)).
Стандарт шифрования данных ГОСТ N 1 и N 2 N 1 - a(0), N 2 - b(0).
Стандарт шифрования данных ГОСТ a(j)=(a 32 (j),…,a 1 (j)), b(j)=(b 32 (j),…,b 1 (j)) N 1 и N 2 после j-го цикла зашифрования - обозначение функции шифрования.
Стандарт шифрования данных ГОСТ a(j)= (a(j-1)+k j-1(mod8) ) b(j-1), b(j)=a(j-1), при j=1…24
Стандарт шифрования данных ГОСТ a(j)= (a(j-1)+k 32-j(mod8) ) b(j-1), b(j)=a(j-1), при j=25…31
Стандарт шифрования данных ГОСТ a(32)=a(31), b(32)= (a(31)+k 0 ) b(31).
Вычисление функции 1 этап 32-битовый аргумент x, S восемь последовательных 4-битовых вектора узел замены S i, i=8...1 таблица перестановки – битовый вектор S(x)
Вычисление функции 2 этап R циклический сдвиг вектора влево на 11 позиций
Стандарт шифрования данных ГОСТ результатом зашифрования блока T 0 является блок T ш T ш = (а 1 (32),а 2 (32),...,а 32 (32), b 1 (32),b 2 (32),...,b 32 (32)).
Режимы использования блочных шифров режим электронной кодовой книги (ECB – Electronic Code Book); режим сцепления блоков (CBC – Cipher Block Chaining); режим обратной связи по шифр тексту (CFB – Cipher Feed Back); режим обратной связи по выходу (OFB – Output Feed Back).
Режим сцепления блоков (CBC – Cipher Block Chaining) C i, i 1 M i+1 С 0 = IV (Initial Vector) C i =DES k (C i-1 M i )
Режим обратной связи по шифр тексту (CFB – Cipher Feed Back) Z 0,Z 1,… Z 0 = IV i 1 Z i = DES k (C i-1 ) C i = M i Z i, i 1
Режим m-битовой обратной связи 1 m 64. IV, выровненный по правому краю C i = M i P i P i – вектор, состоящий из старших битов блока DES k (C i-1 )
Режимы использования ГОСТ – режим простой замены режим шифрования с обратной связью режим гаммирования с обратной связью ECB, CBC, CFB
Режим гаммирования C i = М i F( i ), i = 1,2,...,
Комбинирование алгоритмов блочного шифрования С = Е k2 (Е k1 (М)) С = Е k1 (D k20 (Е k1 (М))) С = Е k3 (D k2 (Е k1 (М)))