Интернет магазин китайских планшетных компьютеров



Компьютеры - Криптосервисы .NET Framework - Цифровая подпись

28 апреля 2011


Оглавление:
1. Криптосервисы .NET Framework
2. Алгоритмы шифрования
3. Обмен симметричными ключами
4. Хэширующие алгоритмы
5. Цифровая подпись
6. Ограничения



Метод SignHash классов RSACryptoServiceProvider и DSACryptoServiceProvider вычисляет подпись для созданного по специальному алгоритму хэша данных. Алгоритм хэширования передается в качестве второго параметра в виде идентификатора, который может быть вычислен с помощью функции MapNameToOID. Для RSACryptoServiceProvider это SHA1 и MD5, а для DSACryptoServiceProvider — только SHA1.

rsaCSP.SignHash);

Классы RSAPKCS1SignatureFormatter/Deformatter и DSASignatureFormatter/Deformatter создают цифровую подпись. Обе пары классов унаследованы от классов AsymmetricSignatureFormatter/Deformatter, предоставляющих стандартный интерфейс создания и верификации цифровой подписи — методы CreateSignature и VerifySignature. Перед вычислением или проверкой цифровой подписи нужно обязательно установить алгоритм хэширования, который будет использоваться в процессе работы, с помощью вызова SetHashAlgorithm. RSAPKCS1SignatureFormatter понимает два алгоритма хэширования — MD5 и SHA1, а DSASignatureFormatter — только SHA1.

// создание цифровой подписи RSA
AsymmetricSignatureFormatter sf;
sf = new RSAPKCS1SignatureFormatter; // создаем форматер
sf.SetHashAlgorithm; // выбираем алгоритм хэширования
sig = sf.CreateSignature; // создаем подпись

//проверка цифровой подписи RSA
AsymmetricSignatureDeformatter df;
df = new RSAPKCS1SignatureDeformatter; // создаем деформатер
df.SetHashAlgorithm;
if) // проверяем подпись
{
  // подпись верна
}
else
{
  // подпись неверна
}



Просмотров: 3219


<<< Криптос
Криптосистема >>>