общие сведения о блочных шифрах.ppt
- Количество слайдов: 55
Схема работы блочного шифра описывается функциями Z=En. Crypt (X, Key) и X=De. Crypt (Z, Key) Блочные криптоалгоритмы в ходе своей работы производят преобразование блока входной информации фиксированной длины и получают результирующий блок того же объема, но недоступный для прочтения сторонним лицам, не владеющим ключом.
Z=En. Crypt (X, Key) и X=De. Crypt (Z, Key) Ключ Key является параметром блочного криптоалгоритма и представляет собой блок двоичной информации фиксированного размера. Исходный (X) и зашифрованный (Z) блоки данных имеют фиксированную разрядность, равную между собой, но необязательно равную длине ключа.
рассеивание: это свойство шифра, при котором один символ (бит) исходного текста или ключа влияет на несколько символов (битов) шифротекста. n перемешивание: это свойство шифра скрывать зависимости между символами исходного текста и шифртекста
Криптоалгоритм именуется идеально стойким, если прочесть зашифрованный блок данных можно только перебрав все возможные ключи, до тех пор, пока сообщение не окажется осмысленным. Так как по теории вероятности искомый ключ будет найден с вероятностью 1/2 после перебора половины всех ключей, то на взлом идеально стойкого криптоалгоритма с ключом длины N потребуется в среднем 2 N-1 проверок. Таким образом, стойкость блочного шифра зависит только от длины ключа и возрастает экспоненциально с ее ростом.
Функция En. Crypt должна быть обратимой. Не должно существовать иных методов прочтения сообщения X по известному блоку Z, кроме как полным перебором ключей Key. Не должно существовать иных методов определения каким ключом Key было произведено преобразование известного сообщения X в сообщение Z, кроме как полным перебором ключей.
n фиксированное число (например, X'=X+125) n число, получаемое из ключа (например, X'=X+F(Key)) n число, получаемое из независимой части блока (например, X 2'=X 2+F(X 1))
n Независимые потоки информации, порожденные из исходного блока, называются ветвями сети. В классической схеме их две. n Величины Vi именуются параметрами сети, обычно это функции от материала ключа. n Функция F называется образующей. n Действие, состоящее из однократного вычисления образующей функции и последующего наложения ее результата на другую ветвь с обменом их местами, называется циклом или раундом Оптимальное число раундов K – от 8 до 32.
n Сеть Фейштеля обратима, даже если в качестве образующей функции F будет использовано необратимое преобразование. Это происходит вследствие того, что для обратного преобразования сети Фейштеля не нужно вычислять функцию F-1. n Cеть Фейштеля симметрична. Использование операции XOR, обратимой своим же повтором, и инверсия последнего обмена ветвей делают возможным раскодирование блока той же сетью Фейштеля, но с инверсным порядком параметров Vi.
Алгоритм должен обеспечивать высокий уровень безопасности. Алгоритм должен быть полностью определен и легко понятен. Безопасность алгоритма должна основываться на ключе и не должна зависеть от сохранения в тайне самого алгоритма. Алгоритм должен позволять экономичную реализацию в виде электронных приборов. Алгоритм должен быть эффективным в использовании. Алгоритм должен быть разрешен для экспорта.
Рой Адлер (Roy Adler); Дон Копперсмит (Don Coppersmith); Хорст Фейстель (Horst Feistel); Эдна Кроссман (Edna Crossman); Алан Конхейм (Alan Konheim); Карл Майер (Carl Meyer); Билл Ноц (Bill Notz); Линн Смит (Lynn Smith); Уолт Тачмен (Walt Tuchman); Брайант Такерман (Bryant Tuckerman).
DES представляет собой блочный шифр, он шифрует данные 64 битовыми блоками. Для шифрования используется ключ длиной 64 бита.
Открытый текст Начальная перестановка R 1 L 1 f K 1 R 2=L 1 f(R 1, K 1) L 2 = R 1 . . . R 15 L 15 f L 16 = R 15 K 15 R 16=L 15 f(R 15, K 15) Заключительная перестановка Шифртекст
Перед шифрованием блок исходного текста подвергается начальной перестановке в соответствии с таблицей: 58 62 57 61 50 54 49 53 42 46 41 45 34 38 33 37 26 30 25 29 18 22 17 21 10 14 9 13 2 6 1 5 60 64 59 63 52 56 51 55 44 48 43 47 36 40 35 39 28 32 27 31 20 24 19 23 12 16 11 15 4 8 3 7
Блок исходного текста подвергается первоначальной перестановке; Блок исходного текста разбивается на правую и левую половины по 32 бита; Выполняется 16 этапов одинаковых действий F, в которых данные объединяются с ключом; Выполняется заключительная перестановка.
Li-1 Ключ Ri-1 Перестановка с расширением Сдвиг Перестановка со сжатием Подстановка в S блоках Перестановка в Р - блоке Li Ri
Ключ представляется 64 -битовым числом; Каждый восьмой бит используется для проверки чётности и отбрасывается в соответствии с таблицей:
56 -битовый ключ делится на две половины по 28 бит; Каждая половина циклически сдвигается налево на один или два бита в зависимости от номера этапа.
После сдвига выбирается 48 бит из 56. Так как при этом не только выбирается подмножество бит, но и изменяется их порядок, эта операция называется перестановка со сжатием
Эта операция расширяет правую половину данных от 32 до 48 битов. Так как при этом не просто повторяются определенные биты, но и изменяется их порядок, эта операция называется перестановкой с расширением.
Подстановки производятся в восьми блоках подстановки, (от substitution). У или S-блоках каждого S-блока 6 -битовый вход и 4 -битовый выход, всего используется восемь различных S-блоков. 48 битов делятся на восемь 6 -битовых подблока.
Каждый S-блок представляет собой таблицу из 4 строк и 16 столбцов. Каждый элемент в блоке является 4 -битовым числом. По 6 входным битам S-блока определяется, под какими номерами столбцов и строк искать выходное значение. Входные биты особым образом определяют элемент S-блока. Рассмотрим 6 -битовый вход Sблока: b 1, b 2, b 3, b 4, b 5 и b 6. Биты b 1 и b 6 объединяются, образуя 2 -битовое число от 0 до 3, соответствующее строке таблицы. Средние 4 бита, с b 2 по b 5 объединяются, образуя 4 -битовое число от 0 до 15, соответствующее столбцу таблицы.
ь Например, пусть на вход шестого S-блока 110011; попадает ь Первый и последний бит, объединяясь, образуют 11, что соответствует строке 3 шестого S-блока; ь Средние 4 бита образуют 1001, что соответствует столбцу 9 того же S-блока; ь Элемент S-блока 6, находящийся на пересечении строки 3 и столбца 9, - это 14; ь Вместо 110011 подставляется 1110.
Эта перестановка перемещает каждый входной бит в другую позицию, ни один бит не используется дважды, и ни один бит не игнорируется. Позиции, в которые перемещаются биты, показаны в таблице: 16 2 7 8 20 21 29 12 28 17 1 15 23 26 5 18 31 10 24 14 32 27 3 9 19 13 30 6 22 11 4 25
Заключительная перестановка является обратной по отношению к начальной перестановки и описана в таблице 40 8 48 16 56 24 64 32 39 7 47 15 55 23 63 31 38 6 46 14 54 22 62 30 37 5 45 13 53 21 61 29 36 4 44 12 52 20 60 28 35 3 43 11 51 19 59 27 34 2 42 10 50 18 58 26 33 1 41 9 49 17 57 25 Обратите внимание, что левая и правая половины не меняются местами последнего этапа DES
Для шифрования и дешифрирования используется один и тот же алгоритм. Отличие состоит в том, что ключи должны использоваться в обратном порядке. То есть, если на этапах шифрования использовались ключи K 1, K 2, K 3, …, K 16, то ключами дешифрирования будут K 16, K 15, K 14, …, K 1. Алгоритм, который создает ключ для каждого этапа, также цикличен. Ключ сдвигается после каждого этапа направо, а число позиций сдвига равно 0, 1, 2, 2, 2, 1.
ГОСТ состоит из алгоритмов трех уровней: 1. Практические алгоритмы, отвечающие непосредственно за шифрование (дешифрование) массивов данных. 2. Алгоритмы более низкого уровня, называемые циклами. 3. Основная функция криптопреобразования. Режимы шифрования Циклы Основная функция криптопреобразования
Ключ является массивом из восьми элементов по 32 бита. Все восемь элементов ключа используются отдельно и рассматриваются как 32 -битные целые числа без знака. Размер ключа 32*8=256 бит или 32 байта. Таблица замен представляет собой матрицу размером 8× 16. Строки матрицы называются узлами замен. Каждый узел замены должен содержать произвольную перестановку набора значений от 0 до 15. Сихропосылка – 64 бита.
N, k S = (N 2 + k) mod 232 Sm= T[m] [Sm] : m [0, 7] S <<ц = 11 S N 1 = N 2; N 2 = S N
На входе функции — две величины N и k. N — блок преобразуемой последовательности данных, состоящий из двух частей: старшей (N 2) и младшей (N 1). k - 32 -битный элемент массива ключа. Младшая часть преобразуемого блока ключа складывается по модулю 232 с элементом ключа. Результат предыдущего шага подвергается преобразованию посредством таблицы замен. Результат замены подвергается циклическому сдвигу влево на 11 разрядов. Значение предыдущего шага побитово складывается посредством операции «XOR» с младшей частью преобразуемого блока. Старшая часть преобразуемого блока переходит на место младшей, а на ее место помещается результат предыдущего шага. Возврат значения N.
Блок данных (32 бита) разбивается на восемь блоков по 4 бита: S=S 0. . . S 7. Далее каждый блок Si меняется на значение таблицы замен, находящееся на i строке, в Si столбце.
N, K N = ОФ (N, Kj) j [0, 31] N 1 N 2 N
На входе цикла две величины N и К. N — 64 -битный блок преобразуемой последовательности данных. К — 256 -битная ключевая последовательность. На вход основной функции преобразования подается кодируемая последовательность и 32 битный блок ключа. Этот шаг выполняется 32 раза. Старшая и младшая часть кодируемой последовательности меняются местами. Возврат 64 -битного блока N. Отличие циклов « 3» и «Р» друг от друга состоит в последовательности перебора частей ключа. Для цикла « 3» эта последовательность такова: S[32] = {0, 1, 2, 3, 4, 5, 6, 7, 7, 6, 5, 4, 3, 2, 1, 0} Для цикла «Р» такова: S[32] = {0, 1, 2, 3, 4, 5, 6, 7, 7, 6, 5, 4, 3, 2, 1, 0, }
Цикл «И» (имитовставка) отличается от вышеописанных циклов только по трем пунктам: основная функция преобразования вызывается не 32 раза, а только 16; отсутствует шаг 3 — обмен значениями между старшей и младшей частью кодируемого блока не происходит. Последовательность перебора частей ключа для выработки имитовставки выглядит так: S [16] = (0, 1, 2, 3, 4, 5, 6, 7, 0, 1, 2, 3, 4, 5, 6, 7).
N 0, K Nш i = «З» (N 0 i, Kj) i [0, n-1] Nш
На входе: N 0 — последовательность открытых данных и К— ключ. Последовательный перебор всех 64 -битных блоков исходного массива данных, подача их на вход цикла « 3» , последовательная запись полученных зашифрованных блоков в массив выходной информации Nш. Возврат массива зашифрованных данных Nш.
• Шифрование двух одинаковых блоков даст идентичный результат. • Если длина шифруемого блока данных не кратна 64 битам, ее надо дополнить до требуемой длины.
N, K, S S = «З» (N, K) Si = Генератор (Si-1) Si = «З» (Si, K) N 1 S i [0, n-1] N
На входе: N - исходная последовательность данных, К – ключ и S - синхропосылка. Синхропосылка подвергается шифрованию в режиме прямой замены с ключом. Генерируем очередное значение гаммы по рекуррентным формулам на основе его предыдущего значения (для первого раза это синхропосыпка). Сгенерированное значение гаммы шифруется методом прямой замены с ключом. Очередной 64 -битный блок исходных данных складывается посредством операции «XOR» . При этом старшая часть блока складывается со старшей частью гаммы, а младшая — с младшей. Возврат обработанного блока данных.
Для старшей части формула генератора гаммы такова: n Для младшей части формула генератора гаммы такова:
Данный режим отличается от режима простого гаммирования способом выработки гаммы. Очередной ее элемент не генерируется по рекуррентной формуле, а получается из предыдущего блока зашифрованных данных посредством шифрования его методом прямой замены с ключом. Первый же элемент гаммы получается из синхропосылки посредством прямой замены.
N, K, S S = «З» (S, K) Ni S S = Ni i [0, n-1] N
На входе величины N - исходная последовательность данных. К - ключ и S синхропосылка. Синхропосылка подвергается шифрованию алгоритмом прямой замены с ключом, в реэультате чего получается значение гаммы. Очередной 64 -битный блок исходных данных складывается посредством операции «XOR» с гаммой. Результат предыдущего шага используется для получения очередного элемента гаммы. Возврат обработанного блока данных.
Имитовставка — некоторая контрольная комбинация, которая зависит от открытых данных и ключевой информации. Цель использования имитовставки — обнаружение искажений в массиве кодируемых данных.
Имитовставка обладает двумя свойствами: без ключевой информации невозможно нахождение имитовставки для заданного открытого массива данных; без ключевой информации невозможен подбор данных под заданную имитовставку. Эти свойства позволяют использовать имитовставку для контроля целостности данных.
N, K I=0 I = «И» (I Ni, K) i [0, n-1] I
§ § На входе величины N — исходная последовательность данных, К—ключ. Начальное значение имитовставки обнуляется. Имитовставка складывается с очередным 64 -битным блоком входных данных посредством операции «XOR» . Результат подвергается преобразованию циклом «И» с ключом. Результат присваивается имитовставке. Возврат значения имитовставки.
общие сведения о блочных шифрах.ppt