Triple DES: продление срока службы DES
Узнайте, как 3DES продлил безопасность DES за счёт многократного шифрования и где он всё ещё используется
«Triple DES: продление срока службы DES» — бесплатный урок Cryptology Academy на CoddyKit. Это урок 3 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Cryptology Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Cryptology Academy содержит 4 уроков всего.
Атака «встреча посередине» на двойной DES
Очевидное решение проблемы малой длины ключа DES — применить его дважды (двойной DES): C = DES_K2(DES_K1(P)). При использовании двух 56-битных ключей номинальное пространство ключей составляет 2^112.
Однако атака «встреча посередине» разрушает это преимущество: нужно зашифровать все открытые тексты со всеми 2^56 значениями K1, расшифровать все шифротексты со всеми 2^56 значениями K2 и найти совпадающие промежуточные значения. Атака требует всего 2^56 операций и 2^56 единиц хранения, поэтому двойной DES не обеспечивает преимуществ в безопасности по сравнению с обычным DES.
Безопасность двухключевого тройного DES
Двухключевой тройной DES использует три операции DES, но только два ключа: C = DES_K1(DES^-1_K2(DES_K1(P))). Порядок EDE (Encrypt-Decrypt-Encrypt) используется для обратной совместимости.
Уровень безопасности двухключевого тройного DES против известных атак составляет примерно 112 битов, хотя атаки «встреча посередине» несколько снижают его. Двухключевой тройной DES используется во многих унаследованных банковских и платёжных системах.
Трёхключевой тройной DES
Трёхключевой тройной DES использует три независимых ключа K1, K2 и K3: C = DES_K3(DES^-1_K2(DES_K1(P))). Номинальная длина ключа составляет 3 x 56 = 168 битов, но эффективный уровень безопасности против лучших известных атак — около 112 битов.
Трёхключевой тройной DES обеспечивает более высокий уровень безопасности, чем двухключевой, и рекомендовался для новых приложений в таких стандартах, как NIST SP 800-131A, до того как сам тройной DES был объявлен устаревшим.
Объяснение режима EDE
Структура Encrypt-Decrypt-Encrypt (EDE) тройного DES не случайна. Если K1 = K2 = K3, средняя расшифровка отменяет первое шифрование, а последнее шифрование даёт тот же результат, что и обычный DES.
Такая обратная совместимость с обычным DES была критически важна для постепенного перехода. Существующие аппаратные и программные средства DES могли взаимодействовать с системами тройного DES в переходный период без потери данных.
Обратная совместимость с обычным DES
Тройной DES можно свести к обычному DES, установив все три ключа равными. Это означает, что оборудование для тройного DES может обрабатывать данные, зашифрованные DES и тройным DES, используя одну и ту же схему.
Это было особенно важно для банковских и платёжных систем, располагающих инфраструктурой на основе DES стоимостью в миллиарды долларов. Тройной DES обеспечил постепенный переход с обратной совместимостью без необходимости одновременно заменять всё оборудование.
Тройной DES в банковской сфере и EMV
Тройной DES по-прежнему широко используется в банковской инфраструктуре, хотя для новых приложений он объявлен устаревшим. Чиповые платёжные карты EMV используют тройной DES для аутентификации карт и криптографической защиты транзакций.
Межбанковская система обмена сообщениями SWIFT также использует тройной DES для устаревших кодов аутентификации сообщений. Огромный масштаб уже развёрнутой финансовой инфраструктуры означает, что тройной DES будет сохраняться в эксплуатации ещё много лет, несмотря на объявление устаревшим.
Отказ NIST от тройного DES (2023)
NIST официально объявил тройной DES устаревшим в 2023 году в редакции 2 документа SP 800-131A. Теперь любое использование тройного DES считается устаревшим: его не следует применять в новых системах, а в унаследованных системах от него следует отказаться.
Рекомендуемой заменой является AES. AES работает быстрее, использует блоки большего размера (128 битов против 64), поддерживает длину ключа 128, 192 или 256 битов и не имеет известных практических уязвимостей.
Атака Sweet32 по парадоксу дней рождения
Атака Sweet32, опубликованная в 2016 году, продемонстрировала практическую атаку на тройной DES в HTTPS. Размер блока 64 бита означает, что после обработки 2^32 блоков (примерно 32 ГБ данных) в режиме CBC начинают возникать коллизии из-за парадокса дней рождения, раскрывающие информацию об открытых текстах.
Для сеансов HTTPS атака Sweet32 требовала около 785 ГБ трафика с одним и тем же ключом — это достижимо при длительном аутентифицированном сеансе. Атака побудила браузеры отдавать приоритет AES-GCM и удалить тройной DES из наборов шифров по умолчанию.
Недостаток производительности тройного DES
Тройной DES выполняет три операции DES для каждого блока. Сам DES медленно работает на современном оборудовании, поскольку был разработан для аппаратуры 1970-х годов, использовавшей другие шаблоны побитовых операций, чем современные CPU.
AES, разработанный с расчётом на эффективную работу в программном обеспечении и использование современных аппаратных инструкций AES-NI, в программной реализации работает в 10–100 раз быстрее тройного DES. AES-NI в современных процессорах Intel/AMD позволяет шифровать несколько гигабайтов в секунду, тогда как тройной DES с трудом достигает скорости 100 МБ/с.
Размер блока остаётся равным 64 битам
Несмотря на использование трёх операций DES и более длинных ключей, 3DES сохраняет размер блока DES — 64 бита. Размер блока — фундаментальный параметр структуры Фейстеля, и его нельзя изменить без переработки алгоритма.
Именно этот размер блока 64 бита является первопричиной уязвимости Sweet32. Размер блока AES в 128 бит означает, что для атак типа «дней рождения» потребуется 2^64 блоков (примерно 18 эксабайт), что на практике вычислительно невыполнимо.
Путь перехода NIST с 3DES на AES
Публикация NIST SP 800-131A содержит подробное руководство по переходу с 3DES на AES. В ней рекомендуется использовать AES с ключами длиной 128, 192 или 256 бит в качестве замены во всех случаях применения 3DES — от наборов шифров TLS до шифрования хранимых данных.
Миграция хорошо обеспечена: каждая современная криптографическая библиотека и аппаратная платформа поддерживает AES, часто с аппаратным ускорением. Организациям рекомендуется рассматривать миграцию как обновление конфигурации программного обеспечения, а не как проект по замене оборудования.
Викторина по вариантам ключей 3DES
Проверьте свои знания о конфигурациях Triple DES.
Основные выводы: Triple DES
Triple DES был создан, чтобы продлить срок службы DES с помощью структуры EDE. Атаки «встреча посередине» не позволяют двойному DES обеспечить двукратное повышение безопасности. 3DES с одинаковыми ключами сводится к одиночному DES, обеспечивая обратную совместимость.
3DES признан устаревшим NIST (2023) из-за уязвимости 64-битного размера блока (Sweet32) и низкой производительности по сравнению с AES. Он сохраняется в банковской инфраструктуре и инфраструктуре EMV как часть устаревших систем.
Часто задаваемые вопросы
Урок «Triple DES: продление срока службы DES» бесплатный?
Да — полный текст урока «Triple DES: продление срока службы DES» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Cryptology Academy, подпишись на CoddyKit PRO. Курс Cryptology Academy содержит 4 уроков всего.
Чему я научусь в уроке «Triple DES: продление срока службы DES»?
Узнайте, как 3DES продлил безопасность DES за счёт многократного шифрования и где он всё ещё используется Ты практикуешь Cryptology Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.
Нужен ли мне опыт, чтобы начать Cryptology Academy?
Предыдущий опыт не требуется. Cryptology Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 3 из 4.
Сколько времени занимает урок «Triple DES: продление срока службы DES»?
Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.
Можно ли писать и запускать код в этом уроке Cryptology Academy?
Да. Каждый урок Cryptology Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.
Все уроки этого курса
- Разработка DES и шифр Люцифера
- Как был взломан DES
- Triple DES: продление срока службы DES
- Уроки DES: чему мы научились