Слайд 2RSACryptoServiceProvider rsa =
new RSACryptoServiceProvider();
Запись в XML
//открытый и секретный ключи RSA
string publicPrivateKeyXML =
rsa.
![RSACryptoServiceProvider rsa = new RSACryptoServiceProvider(); Запись в XML //открытый и секретный ключи](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/889053/slide-1.jpg)
ToXmlString(true) ;
//только открытый ключ RSA
string publicOnlyKeyXML =
rsa.ToXmlString(false);
Чтение из XML
rsa. FromXmlString (publicPrivateKeyXML) ;
Слайд 4Цифровой сертификат - это документ, который удостоверяет вашу личность в сообщениях или
![Цифровой сертификат - это документ, который удостоверяет вашу личность в сообщениях или](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/889053/slide-3.jpg)
транзакциях через посредство Internet.
Существует множество коммерческих центров сертификации (например, Verysign), а сама сертификация существует во многих вариантах, отличающихся ценой и уровнем доверия.
В Microsoft Outlook для получения доступа к центру сертификации и создания сертификата, необходимо выбрать:
Сервис / Параметры / Безопасность / Получить удостоверение.
Слайд 6Асимметричные алгоритмы используются не только для достижения конфиденциальности, но и для аутентификации,
![Асимметричные алгоритмы используются не только для достижения конфиденциальности, но и для аутентификации,](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/889053/slide-5.jpg)
контроля целостности и подтверждения обязательств.
Для цифровой подписи требуется «криптографический хеш».
Хеш - это функция, которая ставит в соответствие небольшой, фиксированного размера объем двоичных данных произвольному, сколь угодно большому объему входных данных. Хеш называют также дайджестом сообщения или отпечатком пальца.
Слайд 7Характеристики хорошей хеш-функции
Любая хорошая хеш-функция должна
обладать следующими свойствами:
□ входные данные могут
![Характеристики хорошей хеш-функции Любая хорошая хеш-функция должна обладать следующими свойствами: □ входные](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/889053/slide-6.jpg)
обладать произвольными размерами;
□ выходные данные всегда обладают небольшим, фиксированным размером, вытекающим из используемого алгоритма;
□ функция быстро вычисляется;
□ ее трудно обратить (то есть это односторонняя функция);
□ вероятность возникновения коллизий невелика.
Слайд 8Хеш-алгоритмы, поддерживаемые в .NET
Наиболее часто используются хеш-алгоритмы SHA-1 и MD5. Алгоритм SHA-1
![Хеш-алгоритмы, поддерживаемые в .NET Наиболее часто используются хеш-алгоритмы SHA-1 и MD5. Алгоритм](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/889053/slide-7.jpg)
создает 160-битовый хеш, а алгоритм MD5 - 128-битовый. Для достижения более высоких степеней безопасности могут использоваться SHA-256, SHA-384 и SHA-512, создающие, соответственно, значения размером 256, 384 и 512 бит.
Слайд 9HashAlgorithm
KeyedHashAlgorithm
HMACSHA1
MACRtipleDES
MD5
MD5CryptoServiceProvider
SHA1
SHA1CryptoServiceProvider
SHA1Managed
SHA256
SHA256Managed
SHA384
SHA384Managed
SHA512
SHA512Managed
![HashAlgorithm KeyedHashAlgorithm HMACSHA1 MACRtipleDES MD5 MD5CryptoServiceProvider SHA1 SHA1CryptoServiceProvider SHA1Managed SHA256 SHA256Managed SHA384 SHA384Managed SHA512 SHA512Managed](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/889053/slide-8.jpg)
Слайд 10Классы, имена которых заканчиваются на CryptoServiceProvider, реализованы с использованием интерфейса CryptoAPI, предоставляемого
![Классы, имена которых заканчиваются на CryptoServiceProvider, реализованы с использованием интерфейса CryptoAPI, предоставляемого](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/889053/slide-9.jpg)
операционной системой.
Классы, имени которых заканчиваются на Managed, реализованы полностью средствами контролируемого С#-кода, без использования CryptoAPI.
Класс HMACSHA1 производит ключевой хеш при помощи хеш-функции SHA1.
Класс MACТripleDES производит ключевой хеш при помощи шифровалия Triple DES.
Слайд 11Метод вычисления хеша в .NET
HashAlgorithm sha1 = new SHA1CryptoServiceProyider();
byte[] sha1Hash =
![Метод вычисления хеша в .NET HashAlgorithm sha1 = new SHA1CryptoServiceProyider(); byte[] sha1Hash = sha1.ComputeHash(messageByteArray); Идентификаторы объектов](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/889053/slide-10.jpg)
sha1.ComputeHash(messageByteArray);
Идентификаторы объектов