Криптографические алгоритмы защиты информации Blowfish

Автор: Пользователь скрыл имя, 08 Декабря 2011 в 19:45, курсовая работа

Краткое описание

Стремительное развитие средств вычислительной техники и открытых сетей передачи данных обусловило их широкое распространение в повседневной жизни и предпринимательской деятельности. Мощные вычислительные возможности и оперативность передачи информации не только оказали большое влияние на принципы ведения бизнеса, сложившиеся в большинстве традиционных отраслей, но и открыли новые направления развития предпринимательской деятельности. В современных условиях автоматизация банковской деятельности и управления предприятиями является «modus vivendi», а такие слова, как «Internet-banking», «e-commerce» и «smart-cards», уже не вызывают всеобщего удивления и жарких дебатов.
Однако последние достижения человеческой мысли в области компьютерных технологий связаны с появлением не только персональных компьютеров, сетей передачи данных и электронных денег, но и таких понятий, как хакер, информационное оружие, компьютерные вирусы и т.п. Оказывается, что под информационной безопасностью подразумевается одно из ведущих направлений развития информационных технологий - круг задач, решаемых в этой области, постоянно расширяется как в количественном, так и в качественном отношении.

Оглавление

Введение 4
1 Алгоритм Blowfish 29
1.1 Сеть Фейстеля 30
1.2 Описание алгоритма 33
1.3 Стойкость алгоритма 36
2 Криптографические системы 6
2.1 Основные понятия 6
2.2 Требования к криптографическим системам 7
2.3 Симметричные криптосистемы 9
2.4 Ассиметричные криптосистемы 11
2.5 Математические основы 15
3 Выбор оптимального блочного алгоритма шифрования 19
3.1 Сравнительная характеристика алгоритмов 19
3.2 Криптостойкость рассмотренных алгоритмов 25
4 Описание работы программы 38
Заключение 41
Список используемых источников 42
Приложение А Исходный код алгоритма Blowfish 43

Файлы: 1 файл

курсовая blowfish.docx

— 446.14 Кб (Скачать)
  • Blowfish.

    Параметры алгоритма: размер блока 64 бита размер ключа 32-448 бит число раундов 16. Использование необратимых подстановок, зависимость узлов замен от ключа, большой размер узлов замен (используются 4 узла замен 8-в-32 бита, зависящих от ключа), переменный размер ключа от 32 до 448 бит, сложная схема выработки ключевых элементов - подготовка ключевых элементов требует выполнения 521 цикла шифрования, что существенно затрудняет переборную атаку на алгоритм, однако, делает его непригодным для использования в системах, где ключ часто меняется и на каждом ключе шифруется небольшие по объему данные. Алгоритм лучше всего подходит для систем, в которых на одном и том же ключе шифруются большие массивы данных [8].

  • IDEA (International Decryption-Encryption Algorithm).

    Параметры алгоритма: размер блока 64 бита размер ключа 128 бит число раундов 8. Использование шифрующих SP-сетей общего типа с инвариантом раунда, являющимся побитовой суммой по модулю 2 старшей и младшей половин шифруемого блока, относительно сложная структура раунда при небольшом (8) их количестве, функция шифрования с использованием аддитивных и мультипликативных операций, прямая модификация шифруемого блока между раундами с использованием ключевых элементов, манипулирование четверть-блоками (16-битовыми целыми), отсутствие битовых перестановок и табличных подстановок - целиком "арифметический" алгоритм. Оптимизирован для 16-разрядных процессоров с быстрой командой умножения. Очень простая схема выработки раундовых ключевых элементов из ключа.

  • ГОСТ 28147-89. Стандарт Российской Федерации на шифрование и имитозащиту данных.

    Параметры алгоритма: размер блока 64 бита размер ключа 256 бит число раундов 32. Упрощенная структура раунда шифрования и простая  обратимая функция шифрования, увеличенное  число раундов, тривиальная схема  генерации ключевых элементов из ключа - в качестве ключевых элементов  на раундах шифрования используются 32-битные фрагменты ключа, каждый фрагмент используется 4 раза. Алгоритм не содержит нерегулярных битовых перестановок и оптимизирован для программной  реализации. Таблица подстановок  не фиксирована в алгоритме и  является долговременным ключевым элементом [8].

      В таблице 3 изображены параметры  алгоритмов.

 Таблица 3 - Параметры представленных алгоритмов шифрования

Алгоритм  шифрования Размер ключа, бит Длина

блока,

бит

Число

циклов

Основные операции
DES 56 64 16 Подстановка, перестановка, кольцевая сумма.
IDEA 128 64 8 Умножение по модулю 216+1, сложение по модулю 216 , кольцевая сумма
Blowfish 32-448 64 16 Сложение по модулю 232, подстановка, кольцевая сумма
ГОСТ

28147-89

256 64 32 Сложение по модулю 232, перестановка, кольцевая сумма, циклический сдвиг
 
 

 

Таблица 4 – Скорость шифрования на Intel486SX/33МГц (Кбайт/с)

Алгоритм Скорость шифрования на Intel486SX/33МГц (Кбайт/с) Размер ключа, бит
IDEA 70 128
DES 35 56
Blowfish 135 448
ГОСТ 53 256
 

     Как видно из таблицы 3, размер ключа у IDEA больше, чем у DES, но меньше, чем у ГОСТ 28147-89 и Blowfish. Как видно из таблицы 4 скорость шифрования IDEA на Intel486SX/33МГц больше в 2 раза, чем у DES, выше чем у ГОСТ 28147-89, но почти в 2 раза меньше, чем у Blowfish.

     Далее приведена таблица 5 сравнения скоростей в программной реализации на процессорах Pentium, Pentium MMX, Pentium II, Pentium III. В приведенной таблице скорости отмасштабированы на гипотетическую 3200 МГц машину [9].

Таблица 5 – Таблица сравнения скоростей

Блочный шифр Длина блока, бит Число

циклов

Скорость шифрования, Mбайт/с Автор Процессор
 Blowfish 64 158 154,4 Bosselaers Pentium
DES 64 340 72,0 Bosselaers Pentium
IDEA 64 358 68.0 Limpaa Pentium MMX
IDEA 64 590 41.2 Bosselaers Pentium

   3.2 Криптостойкость рассмотренных алгоритмов

     Блок  подстановок в DES допускает аппроксимацию  аффинными преобразованиями. Многие булевы функции, используемые в подстановках, отличаются от аффинных функций лишь для двух из шестнадцати возможных  наборов аргументов, т.е. нелинейность подстановки DES равна двум (максимально  достижимая нелинейность 4-битной подстановки  равна четырем). Это обусловливает  уязвимость DES к дифференциальному  и линейному методам криптоанализа. Кроме того, DES облагает свойством дополнения, а именно, если х, z- открытый текст и ключ соответственно, то имеет место равенство DES(x,z) = DES(x,z). При подборе ключа это позволяет нарушителю вдвое сократить объем перебора, т.е. ключ можно искать с точностью до инверсии. До 1990 г. перебор был наилучшим алгоритмом раскрытия ключа DES. Появление дифференциального метода криптоанализа привело к снижению стойкости сначала "усеченных" версий, а затем и полного алгоритма до уровня 237 при требуемом объеме известных блоков открытого текста 236. В дальнейшем стойкость DES была снижена линейным методом. Следует отметить, что раскрытие ключа дифференциальным методом проводится в предположении, что на каждом цикле используется свой ключ. Поэтому увеличение объема ключа DES не позволяет заметно увеличить стойкость [8].

     Алгоритм IDEA благодаря использованию операции умножения по модулю 216+l, обладающей сильным перемешивающим эффектом, представляется достаточно стойким по отношению к линейному криптоанализу. Стойкость этого алгоритма по отношению к дифференциальному методу криптоанализа не очевидна. IDEA ориентирован на программную или аппаратную реализацию с использованием встроенного аппаратного умножителя. Однако даже в этом случае умножение по модулю 216+l выполняется программно заметно медленнее, чем сложение, что обусловлено необходимостью выполнения дополнительных операций, кроме собственно умножения 16-битных чисел. Количество машинных тактов для шифрования IDEA в программной реализации при отсутствии специальных мер зависит от вида ключа и шифруемого текста. Поэтому точное измерение длительности шифрования каждого блока позволяет извлечь дополнительную информацию о ключе. Очевидно, это обстоятельство может заметно снизить стойкость IDEA. Кроме того, для этого алгоритма существует класс слабых ключей [8].

     Исследования  Blowfish показали, что для этого алгоритма существуют слабые ключи (S-блоки, в которых есть одинаковые слова). При использовании таких ключей дифференциальный криптоанализ позволяет восстановить массив подключей для 8 циклов с помощью 223 выбранных открытых текстов, а для 16 циклов - с помощью 3*251 выбранных открытых текстов. Если слабые ключи не используются, то для 8 циклов восстановить массив подключей можно с помощью 248 выбранных открытых текстов. В 1998 г. алгоритм Blowfish представлен в качестве кандидата на стандарт шифрования США.

     В алгоритме шифрования ГОСТ 28147-89 блок подстановки не фиксирован, как в DES, и является секретным параметром. Ключ гораздо больше - 256 бит, что  делает невозможной атаку перебором. Опыт DES показывает, что выбор подстановки  решающим образом влияет на стойкость  шифра. Механизмы рассеивания в  ГОСТ 28147-89 и DES различаются. Если в DES рассеивание  достигается перестановкой бит  в блоке текста и подстановкой, то в ГОСТ 28147-89 оно осуществляется в основном сложением по модулю 232, подстановкой и сдвигом. Для повышения стойкости к дифференциальному и линейному методам криптоанализа желательно выбирать экстремальные подстановки с нелинейностью 4 и рассеиванием 1 . Кроме того, наиболее вероятная разность двух выходов подстановки при фиксированной разности входов должна иметь малую вероятность (разности определяются суммой по модулю 2). Однако нахождение таких подстановок сопряжено со значительными трудностями. Число циклов в ГОСТ 28147-89 по сравнению с DES увеличено вдвое. Криптоанализ усеченного 24-циклового ГОСТ 28147-89 без последних восьми циклов показал, что стойкость его превышает 254 для случайного блока подстановки [8].

     Международные юридические аспекты использования  алгоритмов шифрования  указаны в таблице 6.

Таблица 6 - Юридические аспекты использования алгоритмов шифрования 

Алгоритм  шифрования Ограничения
DES Экспортные  ограничения, налагаемые АНБ США
IDEA Запатентован Ascom-Tech, при коммерческом использовании требует обязательного лицензирования
Blowfish Не запатентован, свободно распространяемый
ГОСТ 28147-89 Не запатентован, при использовании в России требуется  сертификат ФАПСИ
 

     Следует отметить, что современное Российское патентное законодательство никаким  образом не поддерживает права на алгоритм, соответственно не выдаются патенты на алгоритмы шифрования. Таким образом, на территории Российской Федерации допустимо использование  любых рассмотренных алгоритмов шифрования, а вот в  случае продвижения  программы на международный рынок, использование некоторых алгоритмов либо полностью запрещено, либо требует  обязательного лицензирования у  патентообладателя [8].

     Учитывая  приведенные выше характеристики, для  реализации программного продукта был  выбран алгоритм Blowfish. В его пользу говорят:

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

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

 

   4 Описание работы программы

     Пользовательский  интерфейс представлен следующими элементами: поле для ввода пароль (Edit) - максимум 56 символов, поле для ввода исходного текста(Memo), поле для вывода зашифрованного текста (Memo), кнопки «Шифровать текст», «Дешифровать текст», «Очистить», «Открыть файл для шифрации», «Открыть файл для дешифрации», строка меню, дублирующая функции кнопок.

     

Рисунок 5 –  Окно программы при запуске

     На  рисунке 5 мы видим окно программы  сразу после запуска. В поле для  ввода исходного текста находится  текст по умолчанию, для удаления которого достаточно нажать кнопку «Очистить». Остальные кнопки на данном этапе  неактивны. Для их активации необходимо ввести ключ шифрование в предназначенное для этого поле, что и продемонстрировано на рисунке 6.

Рисунок 6 – Окно программы после ввода пароля

     Для шифрования исходного текста следует  нажать кнопку «Шифровать текст», для  дешифрации - Дешифровать текст». Результаты шифрования-дешифрования представлены на рисунке 7 и 8 соответственно.

     

Рисунок 7 – Результат шифрования

Рисунок 8 – Результат дешифрования

На рисунках 9 и 10 представлено открытие файла для шифрования-дешифрования. После шифрования создается файл с таким же именем и расширением 'bfc'.

Информация о работе Криптографические алгоритмы защиты информации Blowfish