
- •Основные понятия. Конфиденциальность, целостность, доступность.
- •Криптография. Алгоритм Цезаря. Алгоритм Вижинера. Квадрат Кардано.
- •Основные понятия криптографию Открытый текст, закрытый текст, шифрование, расшифрование, дешифрование.
- •Симметричные алгоритмы шифрования.
- •Сети Фейстеля.
- •Алгоритм rc5.
- •Криптоанализ симметричных алгоритмов.
- •Ассиметричные алгоритмы шифрования
- •Алгоритм rsa.
- •Криптоанализ ассиметричных алгоритмов.
- •Смешанные алгоритмы шифрования
- •Алгоритмы Хеширования. Цифровая подпись.
Симметричные алгоритмы шифрования.
Симметричное шифрование, симметричные шифры) — способ шифрования, в котором для шифрования и расшифровывания применяется один и тот же криптографический ключ.
Существует множество (не менее двух десятков) алгоритмов симметричных шифров, существенными параметрами которых являются:
стойкость
длина ключа
число раундов
длина обрабатываемого блока
сложность аппаратной/программной реализации
сложность преобразования
Достоинства
скорость
простота реализации (за счёт более простых операций)
меньшая требуемая длина ключа для сопоставимой стойкости
изученность (за счёт большего возраста)
Недостатки
сложность управления ключами в большой сети. Означает квадратичное возрастание числа пар ключей, которые надо генерировать, передавать, хранить и уничтожать в сети. Для сети в 10 абонентов требуется 45 ключей, для 100 уже 4950, для 1000 — 499500 и т. д.
сложность обмена ключами. Для применения необходимо решить проблему надёжной передачи ключей каждому абоненту, так как нужен секретный канал для передачи каждого ключа обеим сторонам.
Для компенсации недостатков симметричного шифрования в настоящее время широко применяется комбинированная (гибридная) криптографическая схема, где с помощью асимметричного шифрования передаётся сеансовый ключ, используемый сторонами для обмена данными с помощью симметричного шифрования.
Важным свойством симметричных шифров является невозможность их использования для подтверждения авторства, так как ключ известен каждой стороне.
Сети Фейстеля.
Алгоритм rc5.
RC5 (Ron’s Code 5 или Rivest’s Cipher 5) — это блочный шифр, разработанный Роном Ривестом из компании RSA Security Inc. с переменным количеством раундов, длиной блока и длиной ключа.
В классическом алгоритме используются три примитивных операции и их инверсии:
сложение по модулю
побитовое исключающее ИЛИ (XOR)
операции циклического сдвига на переменное число бит (
).
Криптоанализ симметричных алгоритмов.
// Криптоанализ блочных симметричных шифров
Наиболее распространенными видами криптоанализа блочных шифров являются дифференциальный и линейный криптоанализ.
Дифференциальный криптоанализ
Понятие дифференциального криптоанализа было введено Эли Бихамом (Biham) и Ади Шамиром (Shamir) в 1990 году. Конечная задача дифференциального криптоанализа - используя свойства алгоритма, в основном свойства S-box, определить подключ раунда. Конкретный способ дифференциального криптоанализа зависит от рассматриваемого алгоритма шифрования.
Если в основе алгоритма лежит сеть Фейстеля, то можно считать, что блок m состоит из двух половин - m0 и m1. Дифференциальный криптоанализ рассматривает отличия, которые происходят в каждой половине при шифровании. Выбирается пара незашифрованных текстов с фиксированным отличием. Затем анализируются отличия, получившиеся после шифрования одним раундом алгоритма, и определяются вероятности различных ключей. Если для многих пар входных значений, имеющих одно и то же отличие Х, при использовании одного и того же подключа одинаковыми (Y) оказываются и отличия соответствующих выходных значений, то можно говорить, что Х влечет Y с определенной вероятностью. Если эта вероятность близка к единице, то можно считать, что подключ раунда найден с данной вероятностью. Так как раунды алгоритма независимы, вероятности определения подключа каждого раунда следует перемножать. Считается, что результат шифрования данной пары известен. Результаты дифференциального криптоанализа используются как при разработке конкретных S-box, так и при определении оптимального числа раундов.
Линейный криптоанализ
Другим способом криптоанализа является линейный криптоанализ, который использует линейные приближения преобразований, выполняемых алгоритмом шифрования. Данный метод позволяет найти ключ, имея достаточно большое число пар (незашифрованный текст, зашифрованный текст). Рассмотрим основные принципы, на которых базируется линейный криптоанализ.
Уравнения составляются следующим образом. Вычисляются значения левой части для большого числа пар соответствующих фрагментов незашифрованного и зашифрованного блоков. Если результат оказывается равен нулю более чем в половине случаев, то полагают, что K[γ1, …, γс] = 0. Если в большинстве случаев получается 1, полагают, что K[γ1, …, γс] = 1. Таким образом получают систему уравнений, решением которой является ключ.
Как и в случае дифференциального криптоанализа, результаты линейного криптоанализа должны учитываться при разработке алгоритмов симметричного шифрования.