Blowfish

В криптографии Blowfish - это симметричный блочный шифр с ключом, изготовленный в 1993 году Брюсом Шнайером и с 1993 года включенный (собранный) в большое количество продуктов для шифрования. Blowfish имеет хорошую скорость шифрования в программном обеспечении, и до 2008 года не было найдено ни одной криптоаналитической модели атаки на него. Однако, алгоритм шифрования блоков AES теперь пользуется большим вниманием.

Шнайер сделал Blowfish алгоритмом общего назначения, который должен был заменить старый алгоритм DES и устранить проблемы и трудности других алгоритмов шифрования. На момент выхода Blowfish многие другие алгоритмы были проприетарными или являлись секретами. Шнайер сказал, что "Blowfish не запатентована, и останется такой во всех странах". Настоящим алгоритм помещен в общественное достояние и может быть свободно использован любым человеком".

Основные особенности конструкции включают в себя S-боксы, зависящие от ключа, и очень сложную шкалу ключей. Blowfish является одним из самых быстрых шифров блоков, используемых многими людьми, за исключением случаев смены ключей. Каждый новый ключ должен быть предварительно обработан, что занимает то же время, что и шифрование около 4 килобайт текста, что очень медленно по сравнению с другими блочными шифрами. Это прекращает его использование в некоторых приложениях (например, в самых маленьких встроенных системах, таких как ранние смарт-карты), но в других приложениях это не является проблемой. В одном из приложений это на самом деле хорошо: метод хэширования паролей, используемый в OpenBSD, использует алгоритм, исходящий от Blowfish, который использует медленное расписание клавиш; идея заключается в том, что дополнительные вычислительные усилия, необходимые для этого, дают защиту от атак по словарю. См. укрепление ключей.

Blowfish имеет 64-битный размер блока и переменную длину ключа от 0 до 448 бит Это 16-круглый шифр Feistel и использует большие S-боксы, зависящие от ключа. По своей структуре он похож на CAST-128, в котором используются фиксированные S-боксы.

В 1996 году Сергей Воденай обнаружил известную атаку обычным текстом, для разлома которой требовалось 28r + 1 известный обычный текст, где r - количество раундов. Более того, он также обнаружил класс слабых ключей, которые могут быть обнаружены и сломаны одной и той же атакой только с 24r + 1 известными текстовыми связками. Эта атака не может быть использована против обычного Blowfish, она предполагает знание S-боксов, зависящих от ключа. Винсент Раймен в своей докторской диссертации представил дифференциальную атаку второго порядка, которая может разбить четыре раунда и не более. До сих пор нет известного способа сломать целых 16 раундов, кроме поиска с применением грубой силы. Ошибка расширения знака в одном из опубликованных C-кодов была найдена в 1996 году.

Хорошего криптоанализа на полной версии Blowfish, известной публично до 2008 года, не существует. Однако в 2007 году Брюс Шнайер отметил, что хотя Blowfish все еще используется, он рекомендовал использовать вместо него новый алгоритм Twofish.

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

Вопросы и ответы

В: Что такое Blowfish?


О: Blowfish - это симметричный блочный шифр с ключом, который был создан в 1993 году Брюсом Шнайером. С тех пор он был включен во многие продукты для шифрования.

В: Для чего был создан Blowfish?


О: Blowfish был создан как алгоритм общего назначения, чтобы заменить старый алгоритм DES и устранить проблемы и трудности других алгоритмов шифрования.

В: Какой может быть длина ключа для Blowfish?


О: Длина ключа для Blowfish может варьироваться от 0 до 448 бит.

В: Каковы некоторые особенности конструкции Blowfish?


О: Некоторые особенности конструкции включают в себя S-боксы, зависящие от ключа, и очень сложное расписание ключей.

В: Известен ли криптоанализ полнораундовой версии Blowfish?


О: По состоянию на 2008 год, не существует известного способа взлома полных 16 раундов, кроме перебора.

В: Какой тип атаки против Blowfish обнаружил Серж Воденей?


О: Серж Воденей нашел атаку с известным открытым текстом, для взлома которой требуется 28r + 1 известных открытых текстов, где r - количество раундов. Он также обнаружил класс слабых ключей, которые могут быть обнаружены и взломаны этой же атакой только с 24r + 1 известными открытыми текстами.

В: Рекомендует ли Брюс Шнайер сейчас использовать Twofish вместо Blowfish?


О: Да, Брюс Шнайер рекомендует сейчас использовать Twofish вместо Blowfish из-за его улучшенных мер безопасности по сравнению со старыми алгоритмами, такими как DES или даже более новыми, такими как AES.

AlegsaOnline.com - 2020 / 2023 - License CC3