all4web
Бесплатный доступ! подробнее...

Хотите испытать нашу систему в действии, но не хотите платить за это деньги?..

Добро пожаловать,
гость!
Войти
all4web: мы поможем сжимать Ваш трафик.


  концепция
  новости
  доводы
  службы
   сжатие HTTP
   сжатие POP3
   www by mail
  оплата
   тарифы
  регистрация
  FAQ
  центр загрузки
  личный кабинет
   вход
  общая статистика
  контакты

 


 

Алгоритм Blowfish

Алгоритм Blowfish разработан Брюсом Шнайером в 1994 г. Автор алгоритма предложил Blowfish в качестве замены стандарту DES. Несомненно, в 1994 г. замена DES на новый стандарт шифрования была уже актуальна из-за короткого ключа DES, который уже тогда можно было найти путем полного перебора. Брюс Шнайер предположил, что других реальных кандидатов на замену DES нет, в частности, по следующим причинам (описаны Шнайером в спецификации алгоритма Blowfish):
многие известные и криптографически стойкие (считающиеся таковыми на момент разработки алгоритма Blowfish) алгоритмы, например, IDEA или REDOC-II, являются запатентованными, что ограничивает их использование;
спецификация алгоритма ГОСТ 28147-89 не содержит значений таблиц замен, т. е., по мнению Шнайера, алгоритм описан не полностью;
алгоритм Skipjack вообще являлся секретным на тот момент.

Алгоритм Blowfish оказался весьма «удачным». Он очень широко реализован в различных шифровальных средствах — на сайте Шнайера приведен список из примерно 150 продуктов, которые шифруют алгоритмом Blowfish. Однако заменой стандарту DES он все же не стал. Поскольку Blowfish предполагался в качестве замены алгоритма DES, он, аналогично DES, шифрует данные 64-битными блоками. Размер ключа алгоритма является переменным — от 32 до 448 битов.

Алгоритм представляет собой сеть Фейстеля. Шифрование данных выполняется в 16 раундов, в каждом из которых над левым 32-битным субблоком данных производятся следующие действия:
Значение субблока складывается с ключом раунда операцией XOR, результат операции становится новым значением субблока.
Субблок обрабатывается функцией F (описана далее), результат обработки накладывается на правый субблок операцией XOR.
Субблоки меняются местами во всех раундах, кроме последнего.

В своей книге «Прикладная криптография» Брюс Шнайер привел следующие ограничения алгоритма Blowfish.

«Алгоритм Blowfish не годится для применения в случаях, где требуется частая смена ключей». Процедура расширения ключа является достаточно ресурсоемкой, поэтому одно из достоинств алгоритма Blowfish — достаточно высокая скорость шифрования — проявляется только в тех случаях, если на одном ключе шифруется достаточно большой объем информации. И наоборот, если менять ключ после каждого из шифруемых блоков, скорость алгоритма становится катастрофически низкой именно из-за необходимости каждый раз выполнять расширение ключа. Сам Шнайер рекомендует в приложениях, где критична скорость, хранить уже развернутый ключ и загружать его целиком вместо выполнения расширения исходного ключа шифрования. «Большие требования к памяти не позволяют использовать этот алгоритм в смарт-картах». Стоит сказать, что принципиальная возможность реализации алгоритма в смарт-картах была одним из важных условий при выборе нового стандарта шифрования США на конкурсе AES, т. е. данный недостаток алгоритма Blowfish можно считать серьезным.

Кроме того, стоит отметить и менее серьезные недостатки алгоритма:
невозможность расширения ключа параллельно процессу шифрования;
небольшой по современным меркам размер блока шифруемых данных. Алгоритм Blowfish имеет и достаточно серьезные преимущества, в частности:
как было сказано выше, высокая скорость шифрования на развернутом ключе;
простота алгоритма, снижающая вероятность ошибок при его реализации;
отсутствие известных успешных атак на полнораундовую версию алгоритма.

Однако стоит сказать, что известный эксперт Серж Воденэ обнаружил, что методом дифференциального криптоанализа r-раундового алгоритма Blowfish с известными таблицами замен можно вычислить значения КХ...КХ% при наличии 28г+1 выбранных открытых текстов. Это не актуально для полнораундовой версии алгоритма (и, тем более, для описанной выше полноценной версии алгоритма с вычисляемыми таблицами замен), но при использовании слабого ключа (Серж Воденэ обнаружил также у алгоритма Blowfish наличие слабых ключей, которые приводят к генерации слабых таблиц замен) выбранных открытых текстов требуется существенно меньше.

Явные достоинства и отсутствие критичных недостатков предопределили широкое использование алгоритма Blowfish.

По материалам книги Сергея Панасенко «Алгоритмы шифрования»

Алгоритмы шифрования

Встроенная кухня (посуда) керамическая кастрюля.
светильник
Курсы французский язык Петербург. Недорогие курсы французского языка.
Куртки, пуховики, пальто: женская одежда больших размеров.
Задумались о MBA: театральные курсы.