Автор работы: Пользователь скрыл имя, 27 Сентября 2011 в 18:02, курсовая работа
К защите информации можно подходить по-разному. Можно попытаться создать абсолютно надежный и недоступный другим канал связи. К сожалению, достичь этого сложно, по крайней мере на современном уровне развития науки и техники, поскольку существующие методы и средства передачи информации одновременно дают возможность несанкционированного доступа к ней. Так же можно использовать общедоступные каналы связи и при этом скрыть сам факт передачи информации.
Введение 3
1 Классификация криптографических алгоритмов 6
2 Криптографичия в Java 9
2.1 Алгоритма шифрования/дешифрования AES 10
2.1.1 Реализация алгоритма AES 11
2.1.1.1 Работа отправителя 11
2.1.1.2 Работа получателя 12
2.1.2 Тестирование программы 13
2.2 Алгоритм криптографического хеширования SHA 15
2.2.1 Реализация алгоритма SHA 16
2.2.2 Тестирование программы 16
3 Криптография в Delphi 19
3.1 Алгоритма шифрования/дешифрования DES 20
3.1.1 Реализация алгоритма DES 20
3.1.2 Тестирование программы 21
3.2 Реализация криптографического хеширования 23
3.2.1 Тестирование программы 25
4 Асимметричная криптография в Perl 27
4.1 Алгоритма RSA 27
4.1.1 Реализация алгоритма RSA 28
4.1.1.1 Основные методы работы с RSA 28
4.1.1.2 Пример исользования цифровой подписи 29
5 Microsoft CryptoAPI 31
6 Сравнение криптографических средств языков программирования 32
Заключение 34
Список используемых источников 35
Приложение
Содержание
Введение
Наше время часто называют переходным от индустриальной цивилизации к цивилизации преимущественно информационной. Вследствие этого роль накопленных и обработанных знаний постоянно растет. Появление и стремительное развитие компьютерных сетей обеспечило эффективные способы передачи данных и быстрый доступ к информации, как для отдельных люднй, так и для крупных организаций. Однако известно, что локальные и глобальные компьютерные сети могут представлять угрозу для безопасности данных, особенно при отсутствии мер защиты от несанкционированного доступа.
По мере становления информационного общества средства защиты превращаются в один из основных инструментов, поскольку они обеспечивают конфиденциальность, секретность, авторизацию, корпоративную безопасность, возможность осуществления электронных платежей и множество других важных элементов современной жизни. В связи с этим наличие встроенных механизмов защиты информации и эффективность их работы в прикладных системах стали определяющими факторами при выборе потребителями оптимального решения.
Надлежащий уровень защиты может быть обеспечен с помощью криптографических методов. Математическая криптография возникла как наука о шифровании и о криптосистемах. В классической модели системы секретной связи имеются два участника, которым необходимо передать секретную (конфиденциальную) информацию, не предназначенную для третьих лиц. Обеспечение конфиденциальности, защиты секретной информации от внешнего вмешательства является одной из главных задач криптографии.
К защите информации можно подходить по-разному. Можно попытаться создать абсолютно надежный и недоступный другим канал связи. К сожалению, достичь этого сложно, по крайней мере на современном уровне развития науки и техники, поскольку существующие методы и средства передачи информации одновременно дают возможность несанкционированного доступа к ней. Так же можно использовать общедоступные каналы связи и при этом скрыть сам факт передачи информации. Этим направлением занимается стеганография, но применяемые здесь методы не гарантируют должного уровня конфиденциальности. Можно использовать общедоступный канал связи, но передавать данные в преобразованном виде, чтобы восстановить их мог лишь адресат. Разработкой методов преобразования информации, обеспечивающей ее шифрование, и занимается криптография.
Любая современная криптосистема работает по определенной методологии и использует следующие компоненты:
Пример схемы методологии шифрования с использованием ключей представлен на рисунке 1.
Рисунок 1 - Схема шифрования
Наличие встроенных механизмов защиты информации в прикладных системах все чаще становится определяющим фактором при их выборе потребителями, о чем хорошо знают все разработчики программных средств. Однако работы по созданию и тестированию криптографической защиты требуют существенных финансовых затрат. Кроме того, необходимы квалифицированные сотрудники, в частности криптографы и программисты с математическим образованием. Все это в значительной степени определяет качество разработки и успех реализации универсальных интерфейсов.
Многие
фирмы, в том числе крупнейшие
системные интеграторы, применяя криптографическую
защиту в своих прикладных системах, пошли
по пути реализации универсальных интерфейсов.
В их задачи входит предоставление приложению
широкого набора возможностей по вызову
криптографических сервисов, что обеспечивает
гибкость системы и определенную ее независимость
от алгоритмов. В результате такого подхода
разработчикам программного обеспечения
нет необходимости задумываться над тем,
какие именно алгоритмы криптографической
защиты будут реализованы в конечном продукте
— используются лишь интерфейсы вызовов
функций защиты, созданных сторонними
производителями. Примером может служить
фирма Sun Microsystems, предлагающая разработчикам
программного обеспечения язык Java с широким
набором интерфейсов, реализующих основные
криптографические алгоритмы и протоколы.
1 Классификация
криптографических алгоритмов
В качестве основного критерия классификации криптографических алгоритмов используется тип выполняемого над исходным текстом преобразования. Классификация по этому критерию представлена на рисунке 2.
Рисунок 2 – Общая классификация криптографических алгоритмов
Тайнопись предполагает, что отправитель и получатель производят над сообщением преобразования, известные только им двоим. Сторонним лицам неизвестны выполняемые алгоритмом изменения над открытым текстом, что и является гарантией нераскрываемости данных на этапе анализа.
В противовес тайнописи, криптоалгоритмы с ключом построены на принципе, что алгоритм воздействия на передаваемые данные известен всем сторонним лицам, но он зависит от некоторого параметра, который держится в секрете – «ключа», который известен только двум лицам, участвующим в обмене информацией. Стойкость шифра определяться только секретностью ключа, т.е. криптоаналитику могут быть известны все детали алгоритма шифрования и дешифрования, но неизвестно, какой ключ использован для шифрования данного текста. В настоящее время криптография занимается исключительно алгоритмами с ключами.
Криптосистемы с ключом делятся на симметричные и асимметричные системы шифрования. Модель симметричной системы шифрования представлена на рисунке 3.
Рисунок 3 – Обобщенная модель симметричной системы шифрования
Отличительной чертой симметричных алгоритмов шифрования является наличие одного ключа шифрования – k, который должен быть известен только отправителю и получателю сообщения. Отправитель при помощи ключа k шифрует сообщение, получатель дешифрует полученный шифротекст ключом k. Криптоаналитик может перехватить шифротекст Y, передаваемый по открытым каналам связи, но, так как он не знает ключа, задача вскрытия шифротекста является очень трудоемкой.
Асимметричная система шифрования работает по схеме, представленной на рисунке 4.
Рисунок 4 – Обобщенная модель асимметричной системы шифрования
Отличительной особенностью асимметричных алгоритмов является наличие пары ключей шифрования: открытого kот, который передается второй стороне по незащищенному каналу связи и поэтому может быть известен криптоаналитику, а также закрытого kзак, который известен лишь одному человеку (получателю сообщения) и держится в секрете. Пара ключей обладает тем свойством, что сообщение, зашифрованное на одном из ключей, может быть расшифровано только на другом ключе.
В зависимости от размера блока шифруемой информации криптоалгоритмы делятся на блочные и поточные шифры. Единицей кодирования в потоковых шифрах является один бит. Результат кодирования не зависит от прошедшего ранее входного потока. Схема применяется в системах передачи потоков информации, то есть в тех случаях, когда передача информации начинается и заканчивается в произвольные моменты времени и может случайно прерываться. Для блочных шифров единицей кодирования является блок из нескольких байтов. Результат кодирования зависит от всех исходных байтов этого блока.
Еще одним критерием классификации криптоалгоритмов является тип выполняемых преобразований над блоками открытого текста. По этому критерию криптоалгоритмы разделяют на подстановочные и перестановочные. В перестановочных шифрах блоки информации не изменяются сами по себе, но изменяется их порядок следования, что делает информацию недоступной стороннему наблюдателю. Подстановочные шифры изменяют сами блоки информации по определенным законам.
Деление криптоалгоритмов на моноалфавитные и многоалфавитные характерно для подстановочных шифров. Моноалфавитные криптоалгоритмы заменяют блок входного текста (символ входного алфавита) на один и тот же блок шифротекта (символ выходного алфавита). В многоалфавитных шифрах одному и тому же блоку входного текста могут соответствовать разные блоки шифротекста, что существенно затрудняет криптоанализ.
2 Криптографическая в Java
Разработчик языка Java, компания Oracle (бывшая Sun Microsystems), предоставляет встроенные возможности для шифрования данных и построения безопасного программного обеспечения. Программисту предоставляется весь спектр возможностей построения системы:
Механизмы безопасности в JDK оформлены в виде четырех основных пакетов и трех пакетов расширения:
Пакеты java.security и javax.crypto содержат классы, отображающие основные понятия криптографии:
Все
методы классов делятся на две
части – Application Programming Interface и Service
Provider Interface (методы, которые надо реализовать
самому).
2.1
Алгоритм шифрования/дешифрования AES
Advanced
Encryption Standard (AES), также известный как
Rijndael –симметричный алгоритм блочного
шифрования (размер блока 128 бит, ключ 128/192/256
бит), принятый в качестве стандарта шифрования
правительством США по результатам конкурса
AES. Этот алгоритм хорошо проанализирован
и сейчас широко используется, как это
было с его предшественником DES. Национальный
институт стандартов и технологий США
опубликовал спецификацию AES 26 ноября
2001. 26 мая 2002 года AES был объявлен стандартом
шифрования. По состоянию на 2009 год AES является
одним из самых распространённых алгоритмов
симметричного шифрования. Поддержка
AES (и только его) введена фирмой Intel в семейство
процессоров x86 начиная с Intel Core i7-980X Extreme
Edition, а затем на процессорах Sandy Bridge.
Информация о работе Сравнение криптографических средств языков программирования