- •Основы информационной безопасности и введение в современную криптологию
- •8 Глава 129
- •Предисловие
- •Введение
- •Формальная криптография;
- •Математическая криптография;
- •1. Криптографические системы «докомпьютерной эры» и проблемы современной криптографии
- •1.1 Криптография древнего мира. Шифр Цезаря и его криптостойкость
- •1.2 Шифр Атбаш и его модификации
- •1.3 Тарабарская грамота как аналог шифра Атбаш
- •1.4 Шифр Плейфера
- •1.5 Шифр adfgvx
- •1.6 Шифр Виженера
- •1.7 Формальная криптография
- •1.8 Математическая криптография
- •1.9 Современная компьютерная криптография и ее основные проблемы
- •2 Режимы шифрования для симметричных алгоритмов.
- •2.1 Режимы простой замены (электронная кодовая книга ecb)
- •2.2 Режим сцепления блоков (Cipher Block Chaining (cbc))
- •2.2 Режимы гаммирования
- •2.3 Режим гаммирования с обратной связью
- •Функции шифрования симметричных криптосистем
- •3.1 Стандарт шифрования данных des. Data Encryption Standard
- •3.2 Преобразования Сетью Фейстеля
- •3.3 Режимы работы алгоритма des
- •3.4.1Алгоритм гост – 28147-89
- •3.4.2Ключи в кзу
- •3.4.3В блоке подстановки k
- •3.5.1Описание алгоритма
- •4.Глава
- •4.1Хэш - функция
- •4.2Коллизия
- •4.4Пример простого хеширования
- •4.3Современные виды хеширования
- •5.Глава Элементы алгебры и теории чисел
- •5.1Быстрое возведение в степень.
- •5.2Нахождение простого числа
- •5.3Метод Шермана — Лемана
- •5.3Метод Раббина-Миллера
- •5.4Нахождение обратного элемента по модулю
- •5.5Теорема ферма, Эйлера
- •5.6Алгоритм Эвклида
- •5.7Расширенный алгоритм Эвклида
- •5.8 Китайская теорема об остатках
- •5.11 Нахождение с помощью расширенного алгоритма Евклида
- •5.11Квадратичные вычеты
- •5.11Нахождение генераторов
- •6. Глава
- •6.1 Алгоритм Диффи – Хеллмана
- •6.2Описание алгоритма
- •6.3Алгоритм Диффи — Хеллмана с тремя и более участниками
- •6.7Криптографическая стойкость
- •6.8Rsa алгоритм
- •6.10Алгоритм шифрования rsa
- •6.11Алгоритм подписи rsa
- •7.16Эль-Гамаля
- •6.13История dsa
- •6.14Алгоритм цифровой подписи dsa
- •6.15 Алгоритм цифровой подписи гост р 3410-94
- •7.1Эллиптическая кривая
- •7.2 Эллиптические кривые в криптографии
- •7.3 Метрика операций на эк
- •7.3.1Сложение различных точек
- •7.3.2Удвоение
- •7.7Порядок эллиптической кривой
- •7.6Теорема Хассе
- •7.5 Порядок точки на эллиптической кривой
- •7.8Порядок точки на эллиптической кривой (Теория, можешь не читат)
- •7.9Криптография на эллиптических кривых
- •7.10Пример эллиптической кривой над конечным полем.
- •7.11Кратные точки.
- •7.12Безопасность криптографии с использованием эллиптических кривых.
- •7.13Алгоритм Диффи-Хелмана на эллиптической кривой
- •7.14Алгоритм dsa на эллиптической кривой
- •7.14.1Алгоритм эцп на основе эллиптических кривых (ecdsa)
- •7.15Алгоритм Эль-Гамала на эллиптической кривой
- •Литература
- •8 Глава
- •8.1Криптоанализ
- •8.2Классический криптоанализ.
- •8.3 Современный криптоанализ
- •8.4Универсальные методы криптоанализа.
- •8.4.1Метод полного перебора
- •8.4.2Атака по ключам
- •8.4.3Частотный анализ
- •8.4.4Метод "встречи посередине"
- •8.4.5Криптоанализ симметричных шифров
- •8.4.6Дифференциальный криптоанализ
- •8.4.7Дифференциальный анализ на основе сбоев.
- •8.4.8Дифференциальный метод криптоанализа des.
- •8.4.9Линейный криптоанализ .
- •8.4.10Криптоанализ асимметричных шифров
- •8.4.11Метод безключевого чтения rsa.
- •8.4.12Криптоанализ хеш-функций
- •8.4.13Криптоанализ по побочным каналам
- •8.5Нанотехнологии в криптоанализе
2.1 Режимы простой замены (электронная кодовая книга ecb)
Режим электронной кодовой книги (Electronic Code Book – ECB) - приведен на рис. 4. Исходный текст разбивается на блоки. В этом режиме каждый блок поступает на вход алгоритма шифрования и преобразуется независимо один от другого. Расшифрование каждого блока также происходит независимо.
В ГОСТ 28147—89 называется режимом простой замены.
Принцип
шифрования.
Пусть есть сообщение,
которое нужно зашифровать. Оно делится
на блоки по
битов. Получаем последовательность
блоков
(открытый текст) последний из них при
необходимости дополняется до длины
.
По ним определяются блоки
как результат воздействия шифрующей
функции:
,
где
– номера блоков,
и
– блоки зашифрованного и открытого
соответственно, а
– функция блочного
шифрования. Расшифровка аналогична:
,
Рис. М. Режим простой замены (режим электронной кодовой книги)
2.2 Режим сцепления блоков (Cipher Block Chaining (cbc))
Режим
шифрования Cipher Block Chaining (CBC)
:Каждый
блок открытого текста (кроме первого)
побитово складывается по модулю 2
(операция XOR)
с предыдущим результатом шифрования.
Шифрование: Сначала, так же как и в случае
с ECB, первоначальное сообщение разбиваем
на блоки, при необходимости дополнив
последний до длины
,
далее следуют действия:
,
где
i
– номера блоков,
– вектор инициализации (синхропосылка),
и
– блоки зашифрованного и открытого
текстов соответственно, а
– функция блочного
шифрования. Расшифровка:
Рис. М1. Шифрование в режиме CBC
Рис. М2. Расшифрование в режиме CBC
Данный тип шифрования имеет ряд недостатков, при атаках:
- возможность определения начала изменения данных при изменении шифротекста;
- возможность переделать открытый текст при перемещении блоков;
- подмена шифротекста со следующим за ней изменением открытого текста.
Режим CBC является режимом устраняющим недостатки режима ECB, что происходит следующим образом: каждый блок открытого текста маскируется соответственно блоком шифротекста, полученном на предыдущем этапе. Скорость обработки в данном режиме также определяется скоростью шифра, при этом не ниже производительности блочного шифра — задержка при выполнении операции XOR пренебрежимо мала. Процедура шифрования в режиме СВС трудно распараллеливается, тогда, как процедура дешифрования распараллеливается легко.
2.2 Режимы гаммирования
Гаммирование – метод шифрования, основанный на «наложении» гамма-последовательности на открытый текст. Обычно это суммирование в каком-либо конечном поле (например, поле GF(2) такое суммирование принимает вид обычного «исключающего ИЛИ»). При расшифровании операция проводится повторно, в результате получается открытый текст.
Суть гамма метода состоит в том, что символы шифруемого текста последовательно складываются с символами некоторой специальной последовательности, которая называется гаммой. Иногда такой метод представляют как наложение гаммы на исходный текст, поэтому он получил название "гаммирование".
Для
начала попробуем привести пример для
понимания режима гаммирования. Пусть
Алиса не может передавать большой объем
ключа Бобу. Алиса передает Бобу только
вектор инициализации (начальное
значение), который пусть будет
значение чисел Фибоначи.
,
отсюда Боб уже может для своего ключа
вычислить сколько угодно остальные
.
Далее, Боб суммирует (как правило, по модулю числа 2) свой открытый текст, используя вычисленную последовательность гаммы. Подробнее:
а) Алиса передает Бобу вектор инициализации (начальное значение) , теперь и Боб и она могут вычислить остальные . Значить у обоих будет одинаковый бесконечный, не повторяющийся ключ.
б) Боб вычисляет нужную последовательность гаммы. Которая будет равна 1 1 2 3 5 8 13 21 34 55 89 144 и т.д. Далее, Боб свой открытый текст может суммировать с вычисленной гамма-последовательностью. Учитывая, что такую гамма-последовательность может сделать и Алиса, то они могут скрытно передавать друг другу сообщения.
В
качестве гаммы может быть использована
любая последовательность случайных
символов, например последовательность
цифр числа
,
числа е
(основание натурального логарифма) и
т.п. При шифровании с помощью ЭВМ
последовательность гаммы может
формироваться с помощью датчика
псевдослучайных чисел.
Рассмотрим криптосхему, реализующую алгоритм шифрования в режиме гаммирования, показанная на рис. 3.12. Открытые данные разбивают на 64-разрядные блоки
где
–
-й
64-разрядный блок открытых данных,
=1...m,
m
определяется объемом шифруемых данных.
Рисунок 3.12
Эти
блоки поочередно зашифровываются в
режиме гаммирования путем поразрядного
сложения по модулю 2 с гаммой шифра
,
которая вырабатывается блоками по 64
бита, т.е.
где
-
-й
64-разрядный блок,
Число
двоичных разрядов в блоке
может быть меньше 64, при этом неиспользованная
для шифрования часть гаммы шифра из
блока
отбрасывается.
Уравнение шифрования данных в режиме гаммирования имеет вид
, (3)
где
– i-й
блок 64-разрядного блока зашифрованного
текста;
функция шифрования в режиме простой
замены;
,
– 32-разрядные двоичные константы;
– 32-разрядные двоичные последовательности.
некоторая бинарная операция, в качестве
которого может выступать сложение либо
сложение по модулю 2.
Величины определяются итерационно по мере формирования гаммы следующим образом:
где
– синхропосылка (64-разрядная двоичная
последовательность),
)=(
Как
правило в «промышленной реализации»
функция шифрования
представляет собой некоторую достаточно
сложную функцию шифрования, такие как
DES,
AES,
IDEA,
ГОСТ 28147-89 и т.д. Исходя из главной цели
нашего учебника, простоты изложения, в
качестве функции шифрования
возьмем сложение по модулю 2 и циклический
сдвиг на определенное количество бит.
Рассмотрим детально частный случай реализации процедуры шифрования в режиме гаммирования.
Вначале,
обеим сторонам (гаммируюшей и
разгаммируещей) дается (синхропосылка)
,
наша задача вычислить остальные
.
Скажем
в
зададим следующие значения для
,
а значения
и
мы примем как ключи для функции шифрования
,
таким образом:
,
Используя
в качестве аргумента для функции
шифрования
,
находим
,
т.е.
,
.
Затем объединяем оба 32-битных вектора
в один 64-битный вектор (конкатенация)
и
.
Отсюда следует, что
Применяя
функция шифрования
повторно на
,
и используя сложение по модулю 2 и сдвиг,
получим
.
Этот процесс можно повторят очень много
раз. Мы каждый раз получаем разные
за счет сдвига путем итерации, аналогично
вырабатываются блоки гаммы шифра
и зашифровываются блоки открытых данных
.
В
канал связи или память ЭВМ передаются
синхропосылка
и блоки зашифрованных данных
,
.
Ниже приведены уравнение и схема расшифрования:
Следует
отметить, что дешифрование данных
возможно только при наличии синхропосылки,
которая не является секретным элементом
шифра и может храниться в памяти ЭВМ
или передаваться по каналам связи вместе
с зашифрованными данными. Реализация
выше описанной функции
в промышленных условиях не приемлема,
в силу простоты и линейности преобразования.
Как правило, в схемах используют
дополнительные нелинейные преобразования
в виде таблиц замен (
).
