Автор: Пользователь скрыл имя, 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
В
своей книге «Прикладная
Кроме того, стоит отметить и менее серьезные недостатки алгоритма:
Алгоритм Blowfish имеет и достаточно серьезные преимущества, в частности:
Однако стоит сказать, что известный эксперт Серж Воденэ обнаружил, что методом дифференциального криптоанализа r-раундового алгоритма Blowfish с известными таблицами замен можно вычислить значения К1..K18 при наличии 28r+1 выбранных открытых текстов. Это не актуально для полнораундовой версии алгоритма (и, тем более, для описанной выше полноценной версии алгоритма с вычисляемыми таблицами замен), но при использовании слабого ключа (Серж Воденэ обнаружил также у алгоритма Blowfish наличие слабых ключей, которые приводят к генерации слабых таблиц замен) выбранных открытых текстов требуется существенно меньше: 24r + 1[5].
Слабым называют ключ, для которого два элемента данного S-блока идентичны. До выполнения расширения ключа невозможно установить факт слабости ключа.
Не
известны факты успешного криптоанализа
алгоритма Blowfish. В целях безопасности
не следует реализовывать Blowfish с уменьшенным
числом раундов. Компания Kent Marsh Ltd. встроила
алгоритм Blowfish в свой продукт FolderBolt, предназначенный
для обеспечения защиты Microsoft Windows и Macintosh.
Кроме того, алгоритм входит в Nautilus и PGPfone
[4].
Криптографическая система, или шифр представляет собой семейство Т обратимых преобразований открытого текста в шифрованный. Членам этого семейства можно взаимно однозначно сопоставить число k называемое ключом. Преобразование Тk определяется соответствующим алгоритмом и значением ключа k.
Ключ — конкретное значение некоторых параметров алгоритма криптографического преобразования, обеспечивающее выбор одного преобразования из семейства. Секретность ключа должна обеспечивать невозможность восстановление исходного текста по шифрованному.
Пространство ключей К - это набор возможных значений ключа. Обычно ключ представляет собой последовательный ряд букв алфавита. Следует отличать понятия ключ и пароль. Пароль также является секретной последовательностью букв алфавита, однако используется не для шифрования (как ключ), а для аутентификации субъектов.
Криптосистемы подразделяются на симметричные и асимметричные (или с открытым (публичным) ключом).
В симметричных криптосистемах для зашифрования и для расшифрования используется один и тот же ключ.
В системах с открытым ключом используются два ключа - открытый (публичный) и закрытый (секретный), которые математически связаны друг с другом. Информация зашифровывается с помощью открытого ключа, который доступен всем желающим, а расшифровывается с помощью закрытого ключа, известного только получателю сообщения. [3].
Процесс криптографического закрытия данных может осуществляться как программно, так и аппаратно. Аппаратная реализация отличается существенно большей стоимостью, однако ей присущи и преимущества: высокая производительность, простота, защищенность и т.д. Программная реализация более практична, допускает известную гибкость в использовании.
Независимо от способа реализации для современных криптографических систем защиты информации сформулированы следующие общепринятые требования:
1. Знание алгоритма шифрования не должно синжатъ криптостойскости шифра. Это фундаментальное требование было сформулировано в XIX веке Керкхоффом и разделяет криптосистемы общего использования (алгоритм доступен потенциальному нарушителю) и ограниченного использования (алгоритм держится в секрете). Безусловно, все массово используемые криптосистемы должны отвечать этому требованию. Взлом шифров в системе сотовой связи GSM или защите дисков DVD от незаконного воспроизведения - наглядные примеры последствий, к которым может привести несоблюдение этого требования.
2. Зашифрованное сообщение должно поддаваться чтению только при наличии ключа. Используемое в программе MS Word 6.0/95 «шифрование» документа на самом деле только запрещало его открытие в данной программе. Сам же текст не шифровался и был доступен для чтения в любом текстовом редакторе.
3. Шифр должен быть стойким даже в случае если нарущителю известно достаточно большое количество исходных данных и соответствующих им зашифрованных данных.
4. Число операций, необходимых для расшифровывания информации путем перебора всевозможных ключей должно иметь строгую нижнюю оценку и должно либо выходить за пределы возможностей современных компьютеров (с учетом возможности организации сетевых вычислений) или требовать создания использования дорогих вычислительных систем.
5. Незначительное изменение ключа или исходного текста должно приводить к существенному изменению вида зашифрованного текста. Этому требованию не соответствуют практически все шифры донаучной криптографии.
6. Структурные элементы алгоритма шифрования должны быть неизменными.
7. Длина шифрованного текста должна быть равной длине исходного текста.
8. Дополнительные биты, вводимые в сообщение в процессе шифрования, должны быть полностью и надежно скрыты в шифрованном тексте.
9. Не должно быть простых и легко устанавливаемых зависимостей между ключами, последовательно используемыми в процессе шифрования.
10. Любой ключ из множества возможных должен обеспечивать равную криптостойкостъ. В этом случае принято говорить о линейном (однородном) пространстве ключей [3].
Как уже было сказано выше криптосистемы делятся на симметричные и ассиметричные.
Симметричные криптосистемы— способ шифрования, в котором для зашифрования и расшифровывания применяется один и тот же криптографический ключ. До изобретения схемы асимметричного шифрования единственным существовавшим способом являлось симметричное шифрование. Ключ алгоритма должен сохраняться в секрете обеими сторонами. Алгоритм шифрования выбирается сторонами до начала обмена сообщениями [6].
В настоящее время симметричные шифры — это:
Большинство симметричных шифров используют сложную комбинацию большого количества подстановок и перестановок. Многие такие шифры исполняются в несколько (иногда до 80) проходов, используя на каждом проходе «ключ прохода». Множество «ключей прохода» для всех проходов называется «расписанием ключей» (key schedule). Как правило, оно создается из ключа выполнением над ним неких операций, в том числе перестановок и подстановок.
Типичным способом построения алгоритмов симметричного шифрования является сеть Фейстеля [смотреть раздел 4.1].
Достоинство симметричных криптосистем заключается в следующем:
Недостатки:
Для
компенсации недостатков
Важным свойством симметричных шифров является невозможность их использования для подтверждения авторства, так как ключ известен каждой стороне [6].
Криптографическая система с открытым ключом (или асимметричное шифрование, асимметричный шифр) — система шифрования и/или электронной цифровой подписи (ЭЦП), при которой открытый ключ передаётся по открытому (то есть незащищённому, доступному для наблюдения) каналу, и используется для проверки ЭЦП и для шифрования сообщения. Для генерации ЭЦП и для расшифрования сообщения используется секретный ключ. Криптографические системы с открытым ключом в настоящее время широко применяются в различных сетевых протоколах, в частности, в протоколах TLS и его предшественнике SSL (лежащих в основе HTTPS), в SSH. Также используется в PGP, S/MIME.
Идея
криптографии с открытым ключом очень
тесно связана с идеей
Но
сама односторонняя функция
Понять идеи и методы криптографии с открытым ключом помогает следующий пример — хранение паролей в компьютере. Каждый пользователь в сети имеет свой пароль. При входе, он указывает имя и вводит секретный пароль. Но если хранить пароль на диске компьютера, то кто-нибудь его может считать (особенно легко это сделать администратору этого компьютера) и получить доступ к секретной информации. Для решения задачи используется односторонняя функция. При создании секретного пароля в компьютере сохраняется не сам пароль, а результат вычисления функции от этого пароля и имени пользователя. Например, пользователь Алиса придумала пароль «Гладиолус». При сохранении этих данных вычисляется результат функции f(ГЛАДИОЛУС), пусть результатом будет строка РОМАШКА, которая и будет сохранена в системе. В результате файл паролей примет следующий вид:
Информация о работе Криптографические алгоритмы защиты информации Blowfish