Skip to content

kit-software-development/exam-molodikova

Repository files navigation

Ассиметричное шифрование с использованием криптосистемы RSA

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

Но C# предоставляет нам удобные классы и методы для решения задач криптографии. Чтобы получить доступ к данным классам, в директиву using необходимо добавить пространства имен System.Security.Cryptography и System.Security.Cryptography.Xml.

У класса RSACryptoServiceProvider есть метод ExportParameters, возвращающий структуру RSAParameters, которая содержит сведения ключа. Метод принимает логическое значение, указывающее, следует ли возвращать только сведения об открытом ключе или сведения как об открытом, так и о закрытом ключе. А также метод ImportParameters, значением структуры RSAParameters которого можно инициализировать класс.

Об алгоритме

Шифрование происходит с использованием:

  • private key
  • public key

Сторона A, осуществляющая асимметричное шифрование, использует открытый ключ, созданный другой стороной B. Так метод Encrypt принимает данные в виде строки и ключа для шифрования, а возвращает строку зашифрованных данных.

Полученные данные сторона B расшифровывает с помощью соответствующего (открытому ключу) закрытого ключа. Расшифровка осуществляется методом Decrypt, который принимает зашифрованную строку, а возвращает - исходную.

About

exam-molodikova created by GitHub Classroom

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages