- •1. Начальная перестановка (Initial Permutation, ip)
- •2. 16 Раундов сети Фейстеля
- •3. Конечная перестановка (Final Permutation, fp)
- •Атаки на основе особенностей алгоритма:
- •Тип алгоритма: Симметричный блочный шифр.
- •Размер блока: 64 бита.
- •1. Подготовка ключа
- •2. 32 Раунда сети Фейстеля
- •3. Режимы работы
- •Ключевые отличия и преимущества перед des
- •Тип алгоритма: Симметричный блочный шифр
- •Атака на подобранном шифртексте.
- •1. Конструкция Дэвиса-Мейера (Davies-Meyer)
- •2. Конструкция Матьяса-Мейера-Осеаса (Matyas-Meyer-Oseas)
- •3. Конструкция Миягучи-Пренеля (Miyaguchi-Preneel)
- •1. Проблема фиксированных точек (Fixed Points)
- •2. Атаки на связанных ключах (Related-Key Attacks)
- •3. Требования к размеру
- •Системы защиты информации
- •Банковские приложения
- •Государственные информационные системы
- •Понятная математическая основа
- •Вычисление вспомогательных величин:
Что такое DES?
DES (Data Encryption Standard) — это симметричный алгоритм блочного шифрования, который стал одним из самых известных и влиятельных криптографических стандартов в истории. Он был официально принят в США в 1977 году и использовался десятилетиями, пока не был вытеснен более современными алгоритмами.
Историческая справка
Разработка: Алгоритм был разработан в начале 1970-х годов компанией IBM на основе более раннего шифра «Lucifer».
Утверждение: После консультаций с Агентством национальной безопасности (NSA) и некоторыми модификаций (в частности, уменьшения размера ключа со 128 до 56 бит), он был утвержден Национальным институтом стандартов и технологий (NIST) как федеральный стандарт США (FIPS PUB 46).
Значение: DES стал первым открытым, прозрачным криптографическим стандартом, что позволило криптографам со всего мира изучать его и заложило основы современной криптографии.
Ключевые характеристики DES
Тип алгоритма: Симметричный блочный шифр.
Симметричный: Для шифрования и дешифрования используется один и тот же ключ.
Блочный: Обрабатывает данные блоками фиксированного размера.
Размер блока: 64 бита.
Размер ключа: 56 бит (+8 бит контроля четности, итого 64 бита для хранения).
Структура: Сеть Фейстеля (Feistel network). Это была гениальная инженерная находка, которая упростила реализацию как шифрования, так и дешифрования.
Как работает DES? Обзор структуры
Процесс шифрования состоит из трех основных этапов:
1. Начальная перестановка (Initial Permutation, ip)
Открытый текст (64 бита) проходит через начальную перестановку, где биты перемешиваются по фиксированному правилу. Это не добавляет безопасности, а является историческим наследием.
2. 16 Раундов сети Фейстеля
Это сердце DES. Каждый раунд выполняет одну и ту же функцию, но с разным подключом (subkey), полученным из основного ключа.
Схема одного раунда:
Вход: Блок делится на две половины по 32 бита: L (левый) и R (правый).
Функция Фейстеля (f):
Расширение (Expansion): Правая половина R (32 бита) расширяется до 48 бит путем дублирования некоторых битов.
Сложение с ключом (Key Mixing): Расширенная правая половина складывается по модулю 2 (XOR) с 48-битным подключом для этого раунда.
Подстановка (Substitution — S-boxes): Результат разбивается на 8 блоков по 6 бит. Каждый блок проходит через свою S-бокс (таблицу подстановки). S-бокс принимает 6 бит на входе и выдает 4 бита на выходе. Это нелинейная и самая важная для безопасности часть алгоритма, обеспечивающая стойкость к криптоанализу.
Перестановка (Permutation — P-box): Выходы всех S-боксов (8*4=32 бита) затем перемешиваются по фиксированному правилу.
Выход раунда:
Новая левая половина = старая правая половина.
Новая правая половина = результат функции f(R, K) складывается по XOR со старой левой половиной.
После 16 раундов левая и правая половины меняются местами в последний раз.
3. Конечная перестановка (Final Permutation, fp)
Финальный блок проходит через перестановку, обратную начальной. Результат — 64 бита шифртекста.
Дешифрование выполняется абсолютно аналогично, но с применением подключей в обратном порядке (K16, K15, ..., K1).
Генерация подключей (Key Schedule)
Из основного 56-битного ключа генерируется 16 48-битных подключей для каждого раунда. Процесс включает:
Перестановка со сжатием (Permuted Choice 1): Из 64-битного ключа (с битами четности) выбираются и перемешиваются 56 бит.
Разделение: Ключ делится на две половины по 28 бит.
Циклический сдвиг: Для каждого раунда обе половины циклически сдвигаются влево на 1 или 2 бита (в зависимости от раунда).
Перестановка со сжатием (Permuted Choice 2): Из сдвинутых половин выбираются и перемешиваются 48 бит, формируя подключ для текущего раунда.
Криптоанализ и уязвимости DES
Малая длина ключа (56 бит): Это главная и фатальная уязвимость DES в современном мире. Количество возможных ключей составляет "всего" 2^56 ~ 7.2*10^16.
Машина EFF DES Cracker: В 1998 году организация Electronic Frontier Foundation построила специализированный компьютер за $250,000, который вскрыл DES-шифр за 56 часов методом полного перебора (brute-force). Сегодня это можно сделать за часы или даже минуты на облачных вычислениях.
Атаки на основе особенностей алгоритма:
Дифференциальный криптоанализ: Был теоретически известен создателям DES (и, как выяснилось, NSA) еще в 1970-х, но опубликован лишь в 1990-х. S-боксы DES оказались очень устойчивы к этой атаке, что говорит о высоком уровне проектирования.
Линейный криптоанализ: Еще более эффективный метод, также нейтрализованный грамотным дизайном S-боксов.
Наследие DES и эволюция
Из-за малой длины ключа "одиночный" DES стал небезопасен. Это привело к появлению следующих модификаций:
Triple DES (3DES): Был временным решением.
Шифрование: Шифртекст = E(K3, D(K2, E(K1, Открытый_текст))) (E-шифрование, D-дешифрование).
Использует 2 или 3 ключа, что эффективно увеличивает длину ключа до 112 или 168 бит.
Надежен, но очень медленный из-за троекратного выполнения алгоритма.
AES (Advanced Encryption Standard): Преемник DES.
В 2001 году NIST выбрал новый алгоритм Rijndael, который стал стандартом AES.
AES использует размеры ключей 128, 192 и 256 бит, что делает полный перебор практически невозможным.
Быстрее и безопаснее DES. Сегодня AES является мировым стандартом.
Вывод
DES — это исторически чрезвычайно важный алгоритм, который заложил фундамент для современной криптографии. Он продемонстрировал ценность открытого дизайна и выдержал десятилетия интенсивного криптоанализа, доказав свою внутреннюю прочность. Однако его короткий 56-битный ключ сделал его уязвимым к brute-force-атакам с ростом вычислительной мощности. На сегодняшний день DES считается абсолютно устаревшим и не должен использоваться для защиты новых данных. Его место уверенно занял AES.
Что такое ГОСТ 28147-89?
ГОСТ 28147-89 — это советский и российский стандарт симметричного блочного шифрования, полное название: "Системы обработки информации. Защита криптографическая. Алгоритм криптографического преобразования".
Это один из самых известных и уважаемых криптографических алгоритмов в мире, обладающий значительным запасом прочности.
Исторический контекст
Разработка: Алгоритм был разработан в недрах 8-го Главного управления КГБ СССР (будущая ФАПСИ) и принят в 1989 году.
Секретность: В отличие от DES, который был открытым стандартом, структура ГОСТа и особенно таблицы замен (S-блоки) изначально держались в секрете. Это вызывало как доверие (считалось, что алгоритм обладает скрытыми механизмами стойкости), так и критику со стороны криптографического сообщества.
Современный статус: В 2015 году он был заменен новым стандартом ГОСТ Р 34.12-2015 ("Кузнечик" и "Магма"), но до сих пор широко используется, особенно в государственных информационных системах и банковской сфере.
Ключевые характеристики ГОСТ 28147-89
