ToolActToolAct

Инструмент шифрования и дешифрования DES

Поддержка DES и Triple DES (3DES), пять режимов шифрования

Настройки шифрования

Ввод
Символов: 0
Байт: 0
Результат
Символов: 0
Байт: 0

Что такое DES?

DES (Data Encryption Standard) появился в 1977 году, разработан IBM и доработан АНБ перед утверждением в качестве федерального стандарта США. Использует сеть Фейстеля, разделяющую 64-битный открытый текст на две половины и проходящую 16 раундов преобразований. Ключ номинально составляет 64 бита, но 8 бит зарезервированы для проверки чётности — остаётся 56 бит полезной длины ключа. В своё время 56 бит считались надёжными, но в 1999 году специализированное оборудование смогло подобрать ключ методом перебора за 22 часа. Triple DES (3DES) был разработан для продления жизни DES: он применяет шифрование DES трижды с тремя разными ключами, достигая 168 бит полезной длины. 3DES по-прежнему широко используется в финансовом секторе — в EMV-чип картах и банковских протоколах. Хотя AES официально заменил DES как стандарт шифрования, оба алгоритма продолжают работать в унаследованных системах, финансовых протоколах и встроенных устройствах. Этот инструмент поддерживает оба алгоритма с режимами CBC, ECB, CFB, OFB и CTR.

Как использовать

Как использовать

  1. Выберите алгоритм: DES (56-битный ключ) или 3DES (168-битный ключ)
  2. Выберите режим шифрования — рекомендуется CBC
  3. Выберите схему дополнения — PKCS#7 подходит для большинства случаев
  4. Введите ключ или нажмите «Generate Random Key»
  5. Для режимов, требующих IV, введите или сгенерируйте его
  6. Введите открытый текст (для шифрования) или шифротекст (для дешифрования) слева
  7. Результат появляется справа автоматически

Режимы шифрования

  • CBCРежим сцепления блоков шифротекста (Cipher Block Chaining). Над каждым блоком открытого текста выполняется операция XOR с предыдущим блоком шифротекста перед шифрованием. Требует вектор инициализации (IV). Высокий уровень безопасности, самый распространённый режим.
  • ECBРежим электронной кодовой книги (Electronic Codebook). Каждый блок шифруется независимо — одинаковые блоки открытого текста дают одинаковый шифротекст. Подходит для отдельных 8-байтовых блоков, не рекомендуется для более длинных данных.
  • CFBРежим обратной связи по шифротексту (Cipher Feedback). Превращает блочный шифр в потоковый. Подходит для побайтовой обработки данных или небольших фрагментов.
  • OFBРежим обратной связи по выходу (Output Feedback). Похож на CFB, но ошибки не распространяются. Полезен при зашумлённом канале связи.
  • CTRРежим счётчика (Counter mode). Использует инкрементируемый счётчик для генерации потока ключей. Поддерживает параллельное шифрование и дешифрование с высокой производительностью.

Советы

  • Используйте AES, если есть возможность — DES существует в основном для обратной совместимости
  • 3DES значительно безопаснее DES, но примерно в три раза медленнее
  • Всегда используйте уникальный случайный IV для каждого шифрования
  • Не используйте ECB для шифрования данных длиной более 8 байт
  • Генерируйте случайные ключи, а не придумывайте запоминаемые строки

Применение

Воспроизведение унаследованных интеграций DES и TripleDESВыберите DES с 8-байтным ключом или TripleDES с 24-байтным ключом, затем подберите режим ECB, CBC, CFB, OFB или CTR при сопровождении старых платёжных, телекоммуникационных, устройственных или корпоративных протоколов. Реализация на базе сети Фейстеля работает полностью через crypto-js в браузере, поэтому 56-битный (DES) или 168-битный (3DES) ключ и открытый текст никогда не покидают локальную вкладку — удобно при воспроизведении примера вендора без отправки реальных платёжных данных через удалённый инструмент.
Точное согласование форматов ключа, IV и шифротекстаВводите ключи и IV в виде hex, Base64 или текста, генерируйте случайные значения при необходимости и проверяйте наличие обязательного 8-байтного IV для режимов, отличных от ECB, перед сравнением результата с другой системой. Страница позволяет быстро определить, является ли расхождение следствием неверной длины ключа (DES требует 8 байт, 3DES — 24), отсутствующего или устаревшего IV, либо граничного случая дополнения PKCS#7 на последнем блоке.
Документирование причин изоляции унаследованного шифраИспользуйте инструмент для тестов совместимости и заметок о миграции, а не для проектирования новой безопасности. DES устарел (специализированная машина взломала его за 22 часа в 1999 году, а современные GPU-кластеры справляются значительно быстрее), а TripleDES считается унаследованным. Современные системы должны предпочитать аутентифицированное шифрование вроде AES-GCM, а примеры DES следует чётко маркировать, чтобы их случайно не скопировали в новые задачи безопасности.
Проверка соответствия шифротекста примеру вендораЗашифруйте известный открытый текст опубликованным ключом и IV партнёра, затем расшифруйте и побайтово сравните результат при интеграции с платёжными терминалами, SIM-инструментами или унаследованными API. Используйте счётчик длины в байтах, чтобы убедиться, что результат соответствует ожидаемой 8-байтной границе блока вендора, поскольку обрезанное дополнение или лишние пробелы вокруг поля Base64 — частая причина скрытых сбоев.
Переключение между hex, Base64 и текстом для согласования форматов передачиПодберите вариант кодирования под поле, принимающее шифротекст, так как сервис, работающий только с Base64, отклонит чистый hex, даже если базовый результат DES идентичен. Один и тот же ключ в hex ('0123456789abcdef') и Base64 ('ASNFZ4mrze8=') расшифровывается в один и тот же текст — полезно при диагностике сообщений партнёра о «неверном формате».

Технический принцип

DES — блочный шифр сети Фейстеля, опубликованный как FIPS 46 в 1977 году. Он работает с 64-битными блоками при 64-битном ключе, из которых 8 бит — контрольные (parity), оставляя 56 бит полезного ключевого материала. Шифрование начинается с начальной перестановки (IP), разделяет 64-битное состояние на две 32-битные половины L0 и R0 и выполняет 16 раундов Фейстеля вида (L_{i+1}, R_{i+1}) = (R_i, L_i XOR F(R_i, K_i)). Раундовая функция F расширяет 32 бита до 48 бит через E-блок, выполняет XOR с 48-битным раундовым ключом K_i, полученным по расписанию ключей PC-1 / PC-2, применяет восемь S-блоков 6→4 бита (S1..S8) и выполняет перестановку P-блока. Финальная перестановка (FP = IP^-1) даёт шифротекст. Triple DES, определённый в NIST SP 800-67, применяет DES трижды в конструкции «зашифровать-расшифровать-зашифровать» (EDE): C = E_{K3}(D_{K2}(E_{K1}(P))). Вариант ключа 1 использует три независимых 56-битных ключа (168 бит «сырого» материала, ~112 бит эффективной защиты от атаки «встреча посередине»); вариант ключа 2 устанавливает K1 = K3 (~80 бит эффективной защиты). Режимы блочных шифров оборачивают DES/3DES для обработки сообщений длиннее 64 бит: ECB шифрует каждый блок независимо и раскрывает закономерности открытого текста; CBC связывает блоки по формуле C_i = E_K(P_i XOR C_{i-1}) со случайным 8-байтовым IV; CFB и OFB превращают блочный шифр в самосинхронизирующийся или синхронный потоковый шифр; CTR выполняет XOR открытого текста с E_K(nonce || counter). Пространство ключей DES в 2^56 ≈ 7,2 × 10^16 допускает полный перебор: машина EFF DES Cracker вскрыла DES-задачу за 22 часа в 1998 году на специализированных ASIC, а современные GPU/FPGA-кластеры справляются за часы. NIST SP 800-131A вывел одинарный DES из употребления в 2005 году и запретил Triple DES для шифрования после 2023 года; атака Sweet32 по принципу дня рождения (CVE-2016-2183) дополнительно ослабляет 3DES в TLS, поскольку его 64-битный размер блока допускает коллизии после ~2^32 блоков (~32 ГБ) при одном ключе. Современные системы должны использовать AES-128 или AES-256 в аутентифицированном режиме, таком как GCM или ChaCha20-Poly1305.

  • Ключ DES — 8 байт, включая контрольные биты (56 полезных бит); ключи 3DES — 16 байт (2-ключевой, ~80 бит защиты) или 24 байта (3-ключевой, ~112 бит защиты от атаки «встреча посередине»).
  • Размер блока — 64 бита / 8 байт; CBC, CFB, OFB и CTR требуют 8-байтовый IV/nonce, ECB не использует IV (и раскрывает закономерности на уровне блоков).
  • Дополнение PKCS#7 добавляет N байт со значением N (1 ≤ N ≤ 8); полный 8-байтовый блок 0x08 добавляется, когда длина открытого текста уже кратна 8.
  • Слабые ключи 0x0101010101010101, 0xFEFEFEFEFEFEFEFE и четыре пары полуслабых ключей дают K1 = K2 в расписании ключей, поэтому E_K = D_K — избегайте их при генерации случайных ключей.
  • Sweet32 (CVE-2016-2183) эксплуатирует 64-битный блок 3DES: при одном ключе коллизии возникают после ~2^32 блоков (~32 ГБ открытого текста при одном ключе в режиме CBC).
  • NIST SP 800-67 Rev. 2 запретил Triple DES для шифрования после 31 декабря 2023 года; в новых решениях следует использовать AES-GCM или ChaCha20-Poly1305, а не DES или 3DES.
  • EFF DES Cracker (Deep Crack) взломал DES за 22 часа в июле 1998 года менее чем за $250 000 в ценах 1998 года; современные GPU-кластеры справляются за часы, поэтому одинарный DES не обеспечивает конфиденциальность.

Примеры

Шифрование DES-CBC

Открытый текст: Hello World
Ключ (hex): 0123456789abcdef
IV (hex): fedcba9876543210
Режим: CBC / PKCS#7
Выход: шифртекст в Base64

Шифрование 3DES

Алгоритм: Triple DES
Ключ (hex): 24 байта (48 hex-символов)
Режим: CBC / PKCS#7
Примечание: 168-битный ключ всё ещё считается безопасным сегодня, но для новых проектов предпочтительнее AES

ECB одиночный блок

Открытый текст: 8 байт (ровно один блок DES)
Ключ:    0123456789abcdef
Режим:   ECB / PKCS#7
Примечание:   ECB безопасен только для одного 8-байтного блока; никогда не используйте его для более длинных данных

Часто задаваемые вопросы

Безопасно ли ещё использовать DES?

Нет. У обычного DES эффективный ключ 56 бит, и он был публично взломан в 1998 году — специализированное оборудование подбирает ключ менее чем за сутки, а современные облачные GPU справляются за минуты. NIST официально отозвал DES в 2005 году. Для любой новой системы используйте AES.

А что насчёт Triple DES (3DES)?

3DES применяет DES трижды с двумя или тремя ключами, обеспечивая примерно 112 бит эффективной стойкости. NIST признал 3DES устаревшим в 2017 году и запретил его для новых приложений после 2023 года из-за атак на основе парадокса дней рождения (Sweet32) при 64-битном размере блока. Он сохраняется только в унаследованных системах (старые банковские и POS-сети) — мигрируйте, как только сможете.

Почему страница всё ещё показывает DES?

Потому что в реальном мире унаследованные системы по-прежнему его используют. Инструмент полезен, когда нужно взаимодействовать со старым банковским форматом, встроенной прошивкой или решать учебные задачи. Это не рекомендация — для нового кода используйте AES.

Какие режимы DES существуют и что они означают?

ECB шифрует каждый блок независимо и выдаёт паттерны. CBC сцепляет блоки и требует IV. CFB и OFB превращают DES в потоковый шифр. CTR использует счётчик в качестве nonce. Для DES предпочтительнее CBC с PKCS#7-дополнением, если нужна совместимость; никогда не используйте ECB на реальных данных.

Каков размер блока и ключа DES?

У DES размер блока 64 бита и размер ключа 64 бита, из которых только 56 бит — материал ключа (8 бит — биты чётности). У 3DES с тремя ключами всё ещё 64-битный блок — именно поэтому Sweet32 стал проблемой при больших объёмах данных.

Расчёт выполняется в моём браузере?

Да. DES вычисляется локально через JavaScript. Ключи и открытый текст не покидают устройство. Это можно проверить во вкладке Network во время шифрования и расшифрования.

Почему мой 3DES-результат не совпадает с системой партнёра?

Частые причины: неправильные биты чётности ключа, иной порядок байт ключа, неверный режим (ECB vs CBC), отсутствующий или лишний IV, неверное дополнение (PKCS#7 vs ZeroPadding) или вход, закодированный в UTF-8 на одной стороне и в UTF-16 на другой. Согласуйте с партнёром известный тестовый вектор, прежде чем отлаживать реальные данные.

Связанные инструменты

Шифратор/Дешифратор AES

Онлайн-инструмент AES шифрования/дешифрования. Поддержка AES-128/192/256, режимов CBC/GCM/ECB, PKCS7 padding. Локальная обработка в браузере защищает конфиденциальность данных.

Инструмент Шифрования и Дешифрования RSA

Бесплатный онлайн-инструмент RSA асимметричного шифрования. Генерация ключевых пар, шифрование открытым ключом, дешифрование закрытым ключом.

Генератор хэшей

Бесплатный онлайн-генератор хэшей: MD5, SHA-1, SHA-256 и SHA-512. Мгновенно вычисляйте хэш текста для проверки целостности данных и хранения паролей.

Генератор паролей

Бесплатный онлайн-генератор надёжных паролей с настраиваемой длиной и наборами символов. Создавайте случайные пароли локально в браузере.

Инструмент анализа JWT

Бесплатный онлайн-инструмент для декодирования и проверки JSON Web Token. Просматривайте Header и Payload и отлаживайте аутентификацию API в браузере.

Кодировщик/Декодировщик Base64

Онлайн-инструмент для кодирования и декодирования Base64 с поддержкой UTF-8 текста, кириллицы и изображений. Мгновенное кодирование без установки программ.