CoderTools

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

Быстрый симметричный блочный шифр, разработанный Брюсом Шнайером

⚠️ Предупреждение о безопасности

64-битный размер блока Blowfish может быть уязвим для атак дня рождения при больших объёмах данных. Для максимальной безопасности рассмотрите использование AES-256 для новых проектов.

Длина ключа Blowfish: 4-56 байт (32-448 бит). Рекомендуется: 16 байт (128 бит) или более
Параметры формата

О шифровании Blowfish

Blowfish — это блочный шифр с симметричным ключом, разработанный Брюсом Шнайером в 1993 году. Это был один из первых безопасных блочных шифров, не защищённых патентами и доступных бесплатно.

Blowfish использует 64-битный размер блока и поддерживает переменную длину ключа от 32 до 448 бит. Он использует 16-раундовую структуру сети Фейстеля, что делает его быстрым и безопасным.

Основные характеристики

  • Переменная длина ключа: от 32 до 448 бит (от 4 до 56 байт), обеспечивая гибкость безопасности
  • 64-битный размер блока: обрабатывает данные блоками по 8 байт
  • 16-раундовая сеть Фейстеля: обеспечивает сильное рассеивание и перемешивание
  • Быстрое шифрование: оптимизирован для 32-битных процессоров, значительно быстрее DES

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

  • CBC: Каждый блок открытого текста XOR-ится с предыдущим блоком шифротекста перед шифрованием. Требует IV, наиболее безопасный.
  • ECB: Каждый блок шифруется независимо. IV не требуется, но одинаковый открытый текст даёт одинаковый шифротекст.
  • CFB: Преобразует блочный шифр в поточный. Требует IV.
  • OFB: Режим обратной связи по выходу, преобразует блочный шифр в поточный. Требует IV.

Сравнение алгоритмов

Алгоритм Длина ключа Размер блока Безопасность Скорость
Blowfish 32-448 бит 64 bits Хорошая Быстрая
AES 128/192/256 bits 128 bits Отличная Быстрая
DES 56 bits 64 bits Слабая Быстрая
3DES 112/168 bits 64 bits Средняя Медленная

Рекомендации по безопасности

  • 64-битный размер блока Blowfish делает его уязвимым для атак дня рождения при шифровании больших объёмов данных (>32 ГБ) одним ключом.
  • Для новых проектов, требующих максимальной безопасности, рассмотрите использование AES или Twofish, преемника Blowfish.
  • Всегда используйте режим CBC или другие режимы сцепления вместо ECB для лучшей безопасности.
  • Используйте уникальный IV для каждой операции шифрования с одним ключом.

Примеры использования

  • Хеширование паролей: bcrypt основан на Blowfish и широко используется для хранения паролей
  • Шифрование файлов: подходит для шифрования отдельных файлов и архивов
  • VPN и защищённые коммуникации: используется в OpenVPN и других протоколах безопасности
  • Совместимость с устаревшими системами: поддержка совместимости с системами, использующими Blowfish

Ссылки