Криптографические методы защиты в языках программирования

Автор работы: Пользователь скрыл имя, 20 Марта 2013 в 13:24, реферат

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

Надлежащий уровень защиты может быть обеспечен с помощью криптографических методов. Математическая криптография возникла как наука о шифровании и о криптосистемах. В классической модели системы секретной связи имеются два участника, которым необходимо передать секретную (конфиденциальную) информацию, не предназначенную для третьих лиц. Обеспечение конфиденциальности, защиты секретной информации от внешнего противника является одной из главных задач криптографии.

Содержание

Основные проблемы и способы их решения
Классификация криптографических алгоритмов
Криптография в Java
Алгоритм DSA
Работа отправителя
Генерация ключей
Создание подписи
Сохранение подписи
Работа получателя
Работа с ключом: чтение из файла и преобразование в PrivateKey
Проверка подлинности (верификация)
Исходные программы
Асимметричная криптография в Perl
Алгоритм RSA
Основные методы работы с RSA
Пример использования цифровой подписи
RSA
DSA
Универсальные криптографические интерфейсы
Microsoft CryptoAPI
Использование криптозащиты в других языках
Заключение

Прикрепленные файлы: 1 файл

Криптографические методы защиты в языках программировани1.doc

— 200.00 Кб (Скачать документ)


 

Microsoft CryptoAPI

Порядок взаимодействия приложений с  криптографическими модулями операционной системы регламентирует документ, который  называется Microsoft Cryptographic Application Programming Interface (MS CryptoAPI). Функции, описанные в нем, поддерживаются Windows 9x и Windows NT/2000/XP. В последних ОС функции CryptoAPI содержатся в модулях crypt32.dll и advapi32.dll, но они не реализуют криптографических алгоритмов, а обращаются к другим модулям, называемым Cryptographic Service Providers (CSP). Одновременно в операционной системе можно установить несколько CSP. При первом обращении к CryptoAPI прикладная программа выбирает, с каким именно модулем CSP она будет работать в зависимости от того, какие криптографические алгоритмы ей необходимы (рис. 7). Следует отметить, что система по организации похожа на ту, что используется в Java.

CryptoAPI позволяет шифровать данные, подписывать документы цифровой подписью и многое другое. Существуют и встроенные средства, например Microsoft Base Cryptographic Provider. Имеется возможность использовать CryptoAPI в таких программах разработки, как Visual Studio, то есть автоматически осуществляется поддержка таких языков, как Visual C++, Visual Basic, Visual FoxPro и др. С развитием компанией Microsoft языковой платформы .NET большинство языков программирования, включая набирающий популярность язык C#, поддерживают криптографические методы защиты.

Примером функции генерации ключей может быть CryptGenKey(), а шифрования и дешифрования — CryptEncrypt() и CryptDecrypt() и т.д.


 

Использование криптозащиты в других языках

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

Допустим, имеется ряд языков, на которых уже реализованы нужные алгоритмы. Трансляторами с этих языков обеспечивается получение объектных  кодов, которые можно использовать при разработке приложения на другом языке. Естественно, это не всегда легко реализовать, но такие языки, как, например, Алгол, Фортран, PL1, благодаря схожему синтаксису языковых конструкций и реализации трансляторов, как правило, в этом смысле вполне совместимы.

Пример такой работы представлен на рис. 8.

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


 

Заключение

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

Как показывает практика, криптографические  методы защиты действительно обеспечивают безопасность на достаточно высоком уровне. Несомненно, что данное направление будет быстро развиваться с появлением новых коммуникационных аппаратно-программных средств. Большинство современных компаний стараются разработать универсальные криптографические интерфейсы и избавить разработчика программного обеспечения от самостоятельных реализаций сложных алгоритмов. И JDK security API, и CryptoAPI, и встроенные средства .NET предоставляют богатый набор средств шифрования, позволяющих организовать собственную систему защиты данных. Однако надо отметить, что на пути реализации эффективной защиты информации существует множество технологических трудностей. Поскольку соответствующие аппаратно-программные средства стремительно развиваются, это позволяет рассчитывать на появление новых решений, которые будут лишены существующих недостатков.  

 

Литература:

  1. Введение в криптографию / Под общ. ред. В.В.Ященко. М.:МЦНМО, «ЧеРо», 1998. 
  2. А.Никитин. Универсальные криптографические интерфейсы // Защита информации, Конфидент, № 5, 1997.
  3. М.Могран. Java 2. Руководство разработчика. Пер. с англ.: Уч. пос. М.: «Вильямс», 2000. 
  4. Vipul Ved Prakash, Benjamin Trott. Asymmetric Cryptography in Perl. O’Reilly, 2001.
  5. R.Coleridge. The Cryptography API, or How to Keep a Secret. MSDN, 1996.
  6. D.Esposito. Supporting CryptoAPI in Real-World Applications. MSDN, 1997.
  7. http://java.sun.com.
  8. S.K.Parmar. An introduction to security. Fred Cohen &Associates, 2000.
  9. R.L/Rivest, A.Shamir and L.Adleman. A method for obtaining digital signatures and public key cryptosystems. // Commun. ACM, vol.21, 1978.
  10. W.Diffie and M.E.Hellman. New directions in cryptograpgy. // IEEE Trans.Inf.Theory, vol.IT-22, № 6, Nov. 1976.
  11. A.Menezes, P.van Oorschot, S.Vanstone. Handbook of applied cryptography. CRC Press, 1996.

КомпьютерПресс 3'2003

http://library.tuit.uz/skanir_knigi/book/zashita_info/zash_info_07.htm


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