{ Криптография By Yozik
Потоковые Потоковые Блочные Блочные Виды шифров
При блочном шифровании, текст разделяется на блоки равной длины и шифруется. Шифры перестановки (permutation cyphers). Шифры перестановки (permutation cyphers). Шифры замены (substitution cyphers). Шифры замены (substitution cyphers). Блочные
Шифры перестановок переставляют элементы открытых данных (биты, буквы, символы) в некотором новом порядке. Permutation cyphers
ТНПВЕГЛ ЕАРАДОН РТИЕЬВО МОБТМПЧ ИРЫСООЬ Пример ТЕРМИНАТОР ПРИБЫВАЕТ СЕДЬМОГО В ПОЛНОЧЬ ТНПВЕ ГЛЕАР АДОНР ТИЕЬВ ОМОБТ МПЧИР ЫСООЬ
Шифры замены заменяют элементы открытых данных на другие элементы по определенному правилу. Substitution cyphers
Шифр Цезаря это вид шифра подстановки, в котором каждый символ в открытом тексте заменяется символом находящимся на некотором постоянном числе позиций левее или правее него в алфавите. Например, в шифре со сдвигом 3 А была бы заменена на Г, Б станет Д, и так далее. Пример K = 3 Исходный алфавит: АБВГДЕЁЖЗИЙКЛМН ОПРСТУФХЦЧШЩЪЫ ЬЭЮЯ Шифрованный: ГДЕЁЖЗИЙКЛМНОП РСТУФХЦЧШЩЪЫЬЭ ЮЯАБВ Ёжик и котик Ийлн л нсхлн
Поточный шифр это шифр, в котором каждый символ открытого текста преобразуется в символ шифрованного текста в зависимости не только от используемого ключа, но и от его расположения в потоке открытого текста. Поточные || Потоковые
1 ^ 0 = 1 1 ^ 1 = 0 0 ^ 1 = 1 0 ^ 0 = 0 A ^ A = 0 A ^ B ^ C ^ A ^ C = B XOR
Perfect Secrecy Perfect Secrecy Key length Key length Two times pad Two times pad XOR шифрование (Виженер)
New key = function(old key) New key = function(old key) New key 2 = function (New key) New key 2 = function (New key) … Гаммирование
Однонаправленные функции Однонаправленные функции Коллизии 1 рода Коллизии 1 рода Коллизии 2 рода Коллизии 2 рода Md5, sha, … Md5, sha, … Только bruteforce Только bruteforce Хэши
Стойкость Стойкость длина ключа длина ключа число раундов число раундов длина обрабатываемого блока длина обрабатываемого блока сложность аппаратного/программного воплощения сложность аппаратного/программного воплощения Func(func(text,key),key) = text Func(func(text,key),key) = text Симметричные алгоритмы
Достоинства скорость скорость простота реализации (за счёт более простых операций) простота реализации (за счёт более простых операций) меньшая требуемая длина ключа для сопоставимой стойкости меньшая требуемая длина ключа для сопоставимой стойкости изученность (за счёт большего возраста) изученность (за счёт большего возраста)Недостатки сложность управления ключами в большой сети. Означает квадратичное возрастание числа пар ключей, которые надо генерировать, передавать, хранить и уничтожать в сети. Для сети в 10 абонентов требуется 45 ключей, для 100 уже 4950, для сложность управления ключами в большой сети. Означает квадратичное возрастание числа пар ключей, которые надо генерировать, передавать, хранить и уничтожать в сети. Для сети в 10 абонентов требуется 45 ключей, для 100 уже 4950, для сложность обмена ключами. Для применения необходимо решить проблему надёжной передачи ключей каждому абоненту, так как нужен секретный канал для передачи каждого ключа обеим сторонам. сложность обмена ключами. Для применения необходимо решить проблему надёжной передачи ключей каждому абоненту, так как нужен секретный канал для передачи каждого ключа обеим сторонам. Сравнение
Func(Func(text,keyE),keyD) = text Func(Func(text,keyE),keyD) = text keyE != keyD keyE != keyD Асимметричные алгоритмы
Протокол Диффи-Хэллмана - криптографический протокол, позволяющий двум и более сторонам получить общий секретный ключ, используя незащищенный от прослушивания канал связи. Полученный ключ используется для шифрования дальнейшего обмена с помощью алгоритмов симметричного шифрования. Обмен ключами
10 mod 9 = 1 ( 10 = 9 +1 ) 100 mod 3 = 1 (100 = ) … Модули
Предположим, существует два абонента: Алиса и Боб. Обоим абонентам известны некоторые два числа g и p, которые не являются секретными и могут быть известны также другим заинтересованным лицам. Для того, чтобы создать неизвестный более никому секретный ключ, оба абонента генерируют большие случайные числа: Алиса число a, Боб число b. A = g^a mod p B = g^b mod p
Алиса передает A Бобу. Боб передает B Алисе. Алиса вычисляет B^a mod p = g^(a*b) mod p Боб вычисляет A^b mod p = g^(a*b) mod p Атакующий знает только A и B. A * B = g^(a+b) mod p
Kblab.kctf.ru Раздел задачи Задачи
Fin