Разработка DES и шифр Люцифера
Проследите путь DES от шифра Люцифера IBM через изменения NSA до принятия в качестве федерального стандарта US
«Разработка DES и шифр Люцифера» — бесплатный урок Cryptology Academy на CoddyKit. Это урок 1 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Cryptology Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Cryptology Academy содержит 4 уроков всего.
Шифр Lucifer компании IBM
В 1971 году Хорст Фейстель из исследовательского центра IBM разработал шифр под названием Lucifer в рамках проекта по обеспечению безопасности банковских операций для Lloyd's of London. Lucifer был одним из первых современных блочных шифров и использовал ключ размером 128 бит и блоки размером 128 бит.
Lucifer показал, что надёжный блочный шифр можно построить на основе структуры Фейстеля: чередующихся раундов подстановки и перестановки, применяемых к половинам блока. Он стал непосредственным предшественником DES.
Структура DES на основе сети Фейстеля
DES применяет 16 раундов структуры Фейстеля к блокам размером 64 бита. В каждом раунде 64-битный блок разделяется на две половины по 32 бита. Правая половина расширяется до 48 бит, объединяется операцией XOR с подключом размером 48 бит, проходит через S-блоки, переставляется и объединяется операцией XOR с левой половиной.
Затем половины меняются местами, и процесс повторяется. После 16 раундов конечная перестановка создаёт 64-битный шифротекст. Расшифровка использует ту же структуру, но подключи применяются в обратном порядке.
Размер блока DES: 64 бита
DES шифрует данные блоками размером 64 бита (8 байт). Такой фиксированный размер блока подходил для аппаратного обеспечения 1977 года, но со временем стал фактором риска для безопасности. При обработке достаточного объёма данных коллизии из-за парадокса дней рождения становятся вероятными.
Для блоков размером 64 бита статистические закономерности проявляются примерно после 2^32 блоков (около 32 ГБ данных, зашифрованных с одним и тем же ключом). Атака Sweet32 сделала 3DES небезопасным для больших объёмов трафика, например HTTPS.
Эффективный ключ размером 56 бит
DES использует ключ размером 64 бита, но 8 бит являются битами чётности и используются для обнаружения ошибок, а не для шифрования. Поэтому эффективная длина ключа составляет всего 56 бит.
Это означает, что существует всего 2^56 (примерно 72 квадриллиона) возможных ключей DES. По стандартам 1977 года этого считалось достаточно. К 1997 году было наглядно доказано, что такой ключ может взломать целеустремлённый противник.
Начальная и конечная перестановки
DES начинается с начальной перестановки (IP), которая изменяет порядок 64 битов блока открытого текста, и заканчивается конечной перестановкой (IP^-1), являющейся её точной обратной операцией. Эти перестановки не повышают криптографическую стойкость.
Они были разработаны для эффективной аппаратной реализации на конкретных архитектурах микросхем 1970-х годов и обеспечивали более быструю загрузку битов в регистры. Современный анализ подтверждает, что они никак не влияют на безопасность.
Восемь S-блоков
Восемь S-блоков (блоков подстановки) являются основой нелинейности DES. Каждый S-блок получает 6 входных битов и выдаёт 4 выходных бита с помощью фиксированной таблицы поиска. Внешние 2 бита выбирают строку, а внутренние 4 бита — столбец.
Без нелинейности, обеспечиваемой S-блоками, DES был бы полностью линейным шифром, который можно было бы тривиально взломать с помощью линейной алгебры. Конкретная конструкция S-блоков DES обеспечивает устойчивость к дифференциальному криптоанализу.
Перестановка P-блока
После S-блоков DES применяет перестановку P-блока, изменяющую порядок 32 выходных битов S-блоков. Это обеспечивает диффузию: результат каждого S-блока распространяется так, чтобы влиять на несколько S-блоков в следующем раунде.
P-блок был тщательно спроектирован для максимальной диффузии: каждый выходной бит одного S-блока влияет как минимум на два разных S-блока в следующем раунде, обеспечивая быстрое лавинное распространение.
Расписание ключей: 16 подключей
DES выводит 16 различных 48-битных подключей из 56-битного главного ключа — по одному для каждого раунда. Расписание ключей начинается с применения перестановочного выбора (PC-1), который удаляет биты чётности и меняет порядок битов ключа.
56 битов разделяются на две 28-битные половины, которые в каждом раунде циклически сдвигаются влево на 1 или 2 позиции. Затем перестановочный выбор (PC-2) выбирает 48 из 56 битов, формируя подключ каждого раунда.
Участие NSA и споры
NSA сотрудничало с IBM при разработке DES, уменьшив длину ключа со 128 битов шифра «Люцифер» до 56 битов и изменив конструкцию S-блоков. Это вызвало многолетние споры о том, были ли внедрены потайные уязвимости.
В 1990-х годах представители NSA подтвердили, что усилили S-блоки против дифференциального криптоанализа — метода, открытого IBM в 1974 году. NSA знало о дифференциальном криптоанализе за несколько лет до академического сообщества, что указывает: организация сделала DES более устойчивым, а не менее защищённым.
DES как FIPS 46 (1977)
DES был принят как федеральный стандарт обработки информации 46 в январе 1977 года после конкурсной оценки. Он стал стандартным шифром для несекретных государственных данных и получил широкое распространение в банковской сфере и промышленности.
Стандартизация DES имела историческое значение: это был первый общедоступный криптографический алгоритм, одобренный государством. Она стимулировала разработку аппаратных реализаций и заложила основу для будущих процессов стандартизации шифров.
Режимы работы DES
Сам по себе DES является блочным шифром и шифрует ровно 64 бита за раз. Реальные сообщения длиннее, поэтому режимы работы определяют, как применять шифр к нескольким блокам. К распространённым режимам относятся ECB (шифрование каждого блока независимо), CBC (применение XOR к каждому блоку с предыдущим шифротекстом перед шифрованием), CFB, OFB и CTR.
ECB — самый слабый режим: одинаковые блоки открытого текста дают одинаковые блоки шифротекста, из-за чего становятся видны закономерности. Режимы CBC и CTR устраняют эту уязвимость и предпочтительны для практического использования DES и тройного DES.
Викторина по параметрам DES
Проверьте свои знания о параметрах конструкции DES.
Основные выводы: конструкция DES
DES развился из шифра Lucifer компании IBM в 16-раундовый шифр Фейстеля с 64-битными блоками и эффективными ключами длиной 56 битов. Его безопасность обеспечивают 8 нелинейных S-блоков, создающих запутывание, P-блок, обеспечивающий рассеивание, и 16 раундов, усиливающих лавинный эффект.
Участие NSA в разработке S-блоков вызывало споры, но в итоге повысило устойчивость к дифференциальному криптоанализу. 56-битный ключ DES, рассчитанный на аппаратное обеспечение 1977 года, к концу 1990-х оказался недостаточно защищённым.
Изучай Cryptology Academy с ИИ-репетитором — бесплатно
Пиши и запускай код прямо в браузере, получай мгновенную помощь от ИИ-репетитора 24/7 и продолжи учиться на сайте или в приложении.
- Курсы
- 67
- Уроки
- 261
Часто задаваемые вопросы
Урок «Разработка DES и шифр Люцифера» бесплатный?
Да — полный текст урока «Разработка DES и шифр Люцифера» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Cryptology Academy, подпишись на CoddyKit PRO. Курс Cryptology Academy содержит 4 уроков всего.
Чему я научусь в уроке «Разработка DES и шифр Люцифера»?
Проследите путь DES от шифра Люцифера IBM через изменения NSA до принятия в качестве федерального стандарта US Ты практикуешь Cryptology Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.
Нужен ли мне опыт, чтобы начать Cryptology Academy?
Предыдущий опыт не требуется. Cryptology Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 1 из 4.
Сколько времени занимает урок «Разработка DES и шифр Люцифера»?
Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.
Можно ли писать и запускать код в этом уроке Cryptology Academy?
Да. Каждый урок Cryptology Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.
Все уроки этого курса
- Разработка DES и шифр Люцифера
- Как был взломан DES
- Triple DES: продление срока службы DES
- Уроки DES: чему мы научились