ЛАБОРАТОРНАЯ РАБОТА № 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; Мы поможем в написании вашей работы! |
Мы поможем в написании ваших работ!