ЛАБОРАТОРНАЯ РАБОТА № 2. АСИММЕТРИЧНАЯ КРИПТОГРАФИЯ



ЦЕЛЬ РАБОТЫ:

1. Изучение принципов работы асимметричных криптосистем;

2. Изучение реализаций асимметричной криптографии в среде  .NET Framework;

3. Реализация существующих асимметричных криптоалгоритмов.

 

Теоретическое введение

В данной лабораторной работе рассматриваются возможности шифрования и дешифрирования сообщений при помощи алгоритма RSA в среде .NET Framework. В лабораторной работе также рассматривается один из возможных методов передачи открытых ключей с использованием формата XML.

Для работы с асимметричными криптосистемами в среде .NET Framework существует абстрактный класс AsymmetricAlgorithm и производные от него классы. Иерархия классов AsymmetricAlgorithm приведена на рисунке 2.1.

 

 

 

 


Для шифрования/дешифрирования используется класс RSACryptoServiceProvider, который и будет рассматриваться в лабораторной работе №2. Другой конкретный класс, DSACryptoServiceProvider используется для формирования электронной цифровой подписи,будет подробно рассматриваться в лабораторной работе № 3.

 

Метод Encrypt класса RSACryptoServiceProvider

Для шифрования класс RSACryptoServiceProvider использует метод Encrypt. Синтаксис обращения к данному  методу имеет вид:

public byte [ ] Encrypt(

byte[ ] rgb,

bool fOAEP

);

Метод Encrypt получает на входе два параметра, первый из которых должен представлять собой байтовый массив, содержащий входные данные.

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

Если второму па­раметру присвоено значение True, то для дополнения будет использовать­ся технология ОАЕР. ОАЕР (Optimal Asymmetric Encryption Padding - оптимальное дополнение для асиммет­ричного шифрования) - эта техника дополнения, разработанная Меиром Белларом (Mihir Bellare) и Филом Роуджуеем (Phil Rogaway) в 1993 году специально для RSA. Техника ОАЕР обеспечивает дополнение, гораздо более качественное с точки зрения бе­зопасности, в сравнении с обычно используемой техникой PKCS#1 vl.5. Дополнение ОАЕР доступно в системах Microsoft Windows XP, Windows 2000 и выше при установке пакета шифрования. Более ранние версии Windows не поддерживают ОАЕР, и по этой причине вызов метода Encryptсо вторым параметром, равным True, приведет к возникновению исключения CryptographicException.

Если второму па­раметру присвоено значение False, то используется традиционный режим дополнения PKCS#1 vl.5. Режим PKCS#1 vl.5 наиболее часто используется для дополнения блоков данных при шифровании RSA.

Тем не менее, рекомендуется, чтобы приложения RSA, вновь разрабатывае­мые на платформах, где поддерживается ОАЕР, использовали именно ОАЕР. 

Метод Encryptвозвращает результирующие зашифрованные данные в виде байтового массива.

Метод Decrypt класса RSACryptoServiceProvider

Противоположную операцию выполняет метод Decrypt. Синтаксис обращения к данному  методу имеет вид:

public byte[ ] Decrypt(
byte[ ] rgb,
bool fOAEP,);

Первый параметр - байтовый массив, со­держащий зашифрованные данные. Второй параметр имеет точно такой же смысл, что и в методе Encrypt. Возвращаемое значение представляет собой байтовый массив с расшифрованными данными.


Дата добавления: 2018-08-06; просмотров: 585; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!