
- •Минобрнауки россии
- •Кафедра комплексной защиты информационных систем курсовая работа
- •Введение
- •1. Теоретико-математические основы симметричных криптосистем
- •1. 1 Общие понятия симметричных шифров
- •1. 2 Преимущества и недостатки симметричных криптосистем
- •1.3 Блочные шифры
- •2. Алгоритм шифрования blowfish
- •2. 1 Описание алгоритма Blowfish
- •2.2 Процедура расширения ключа
- •2.3 Скорость работы и криптостойкость алгоритма Blowfish
- •3 Практическая реализация алгоритма blowfish
- •3.1 Блок-схема алгоритма шифрования/расшифрования
- •3. 2 Листинг программы
- •3. 3 Интерфейс программы и результаты ее работы
- •Заключение
- •Библиографическийсписок
3. 3 Интерфейс программы и результаты ее работы
Начальный интерфейс программы
Результат работы после зашифрования
Результат после расшифрования
Заключение
Алгоритм Blowfish имеет как множество преимуществ перед другими алгоритмами, так и множество недостатков.
В своей книге "Прикладная криптография" Брюс Шнайер отметил следующие ограничения алгоритма Blowfish. Во-первых, "...алгоритм Blowfish не годится для применения в случаях, где требуется частая смена ключей". Процедура расширения ключа ресурсоемка, поэтому одно из достоинств алгоритма Blowfish - высокая скорость шифрования - проявляется только в тех случаях, если на одном ключе шифруется достаточно большой объем информации. И наоборот, если менять ключ после каждого из шифруемых блоков, скорость алгоритма становится катастрофически низкой именно из-за необходимости каждый раз выполнять расширение ключа. Сам Шнайер рекомендует в приложениях, где критична скорость, хранить уже развернутый ключ (т. е. значения K1...K18 и S1...S4) и загружать его целиком вместо того, чтобы выполнять расширение исходного ключа.
Далее, "...большие требования к памяти не позволяют использовать этот алгоритм в смарт-картах". Стоит сказать, что принципиальная возможность реализации алгоритма в смарт-картах была одним из важных условий при выборе нового стандарта шифрования США на конкурсе AES, т. е. данный недостаток алгоритма Blowfish можно считать серьезным.
Кроме того, стоит отметить и менее серьезные недостатки алгоритма: невозможность расширения ключа параллельно процессу шифрования и небольшой по современным меркам размер блока шифруемых данных.
Алгоритм Blowfish имеет и достаточно важные преимущества, в частности:
высокая скорость шифрования на развернутом ключе (как уже упоминалось выше);
простота алгоритма, снижающая вероятность ошибок при его реализации;
отсутствие успешных атак на полнораундовую версию алгоритма.
Явные достоинства и отсутствие критичных недостатков предопределили широкое использование алгоритма Blowfish в:
хешировании паролей
защите электронной почты и файлов
GnuPG (безопасное хранение и передача)
линиях связи: связка ElGamal (не запатентован) или RSA (действие патента закончилось в 2000 году) и Blowfish вместо IDEA
в маршрутизаторе Intel Express 8100 с ключом длиной 144 бита
обеспечение безопасности в протоколах сетевого и транспортного уровня
PuTTY (сетевой уровень)
SSH (транспортный уровень)
OpenVPN (создание зашифрованных каналов)
Библиографическийсписок
1. Schneier B. The Blowfish Encryption Algorithm – One Year Later/ B. Schneier// Dr. Dobb's Journal. – 1995. – № 116. – p. 32-36
2. Breeze А. На пути к Skein: просто и понятно про Blowfish/ Andrey Breeze// http://habrahabr.ru/post/140394/
3. Kaweichel An extension of blowfish for 64-bit architectures/ Kaweichel// Diester Schmidt. 2006. - №9.
4. Панасенко С.П. Алгоритмы шифрования. Специальный справочник. – СПб.: БХВ-Петербург, 2009 – 576 с.
5. Бабенко Л. К., Ищукова Е. А. Современные алгоритмы блочного шифрования и методы их анализа. – М.: Гелиос АРВ, 2006 – 376 с.