Автор: Пользователь скрыл имя, 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
Параметры алгоритма: размер блока 64 бита размер ключа 32-448 бит число раундов 16. Использование необратимых подстановок, зависимость узлов замен от ключа, большой размер узлов замен (используются 4 узла замен 8-в-32 бита, зависящих от ключа), переменный размер ключа от 32 до 448 бит, сложная схема выработки ключевых элементов - подготовка ключевых элементов требует выполнения 521 цикла шифрования, что существенно затрудняет переборную атаку на алгоритм, однако, делает его непригодным для использования в системах, где ключ часто меняется и на каждом ключе шифруется небольшие по объему данные. Алгоритм лучше всего подходит для систем, в которых на одном и том же ключе шифруются большие массивы данных [8].
Параметры алгоритма: размер блока 64 бита размер ключа 128 бит число раундов 8. Использование шифрующих SP-сетей общего типа с инвариантом раунда, являющимся побитовой суммой по модулю 2 старшей и младшей половин шифруемого блока, относительно сложная структура раунда при небольшом (8) их количестве, функция шифрования с использованием аддитивных и мультипликативных операций, прямая модификация шифруемого блока между раундами с использованием ключевых элементов, манипулирование четверть-блоками (16-битовыми целыми), отсутствие битовых перестановок и табличных подстановок - целиком "арифметический" алгоритм. Оптимизирован для 16-разрядных процессоров с быстрой командой умножения. Очень простая схема выработки раундовых ключевых элементов из ключа.
Параметры
алгоритма: размер блока 64 бита размер
ключа 256 бит число раундов 32. Упрощенная
структура раунда шифрования и простая
обратимая функция шифрования, увеличенное
число раундов, тривиальная схема
генерации ключевых элементов из
ключа - в качестве ключевых элементов
на раундах шифрования используются
32-битные фрагменты ключа, каждый фрагмент
используется 4 раза. Алгоритм не содержит
нерегулярных битовых перестановок
и оптимизирован для
В таблице 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 |
Блок
подстановок в DES допускает аппроксимацию
аффинными преобразованиями. Многие
булевы функции, используемые в подстановках,
отличаются от аффинных функций лишь
для двух из шестнадцати возможных
наборов аргументов, т.е. нелинейность
подстановки DES равна двум (максимально
достижимая нелинейность 4-битной подстановки
равна четырем). Это обусловливает
уязвимость DES к дифференциальному
и линейному методам
Алгоритм
IDEA благодаря использованию
Исследования 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 - Юридические
аспекты использования алгоритмов шифрования
Алгоритм шифрования | Ограничения |
DES | Экспортные ограничения, налагаемые АНБ США |
IDEA | Запатентован Ascom-Tech, при коммерческом использовании требует обязательного лицензирования |
Blowfish | Не запатентован, свободно распространяемый |
ГОСТ 28147-89 | Не запатентован, при использовании в России требуется сертификат ФАПСИ |
Следует
отметить, что современное Российское
патентное законодательство никаким
образом не поддерживает права на
алгоритм, соответственно не выдаются
патенты на алгоритмы шифрования.
Таким образом, на территории Российской
Федерации допустимо
Учитывая приведенные выше характеристики, для реализации программного продукта был выбран алгоритм Blowfish. В его пользу говорят:
Так
же решающим фактором стала объективность
применения того или иного алгоритма.
Так как ценность используемой информации
достаточно мала, то применение сложных
алгоритмов нецелесообразно. Это только
приведет к нерациональному
Пользовательский
интерфейс представлен
На рисунке 5 мы видим окно программы сразу после запуска. В поле для ввода исходного текста находится текст по умолчанию, для удаления которого достаточно нажать кнопку «Очистить». Остальные кнопки на данном этапе неактивны. Для их активации необходимо ввести ключ шифрование в предназначенное для этого поле, что и продемонстрировано на рисунке 6.
Для шифрования исходного текста следует нажать кнопку «Шифровать текст», для дешифрации - Дешифровать текст». Результаты шифрования-дешифрования представлены на рисунке 7 и 8 соответственно.
На рисунках 9 и 10 представлено открытие файла для шифрования-дешифрования. После шифрования создается файл с таким же именем и расширением 'bfc'.
Информация о работе Криптографические алгоритмы защиты информации Blowfish