RSACryptoServiceProvider - генерация ключа - C#

Узнай цену своей работы

Формулировка задачи:

По описанию RSA (клик) можно понять, что числа P и Q должны быть простыми. Что же мы видим в C#?
RSACryptoServiceProvider rsa = new RSACryptoServiceProvider(2048);
RSAParameters RSAP = rsa.ExportParameters(true); // стандартная генерация и экспорт ключа
Console.WriteLine((new BigInteger(RSAP.P)).ToString()); // P - получаемое число не всегда простое
Console.WriteLine((new BigInteger(RSAP.Q)).ToString()); // Q - аналогично
В некоторых источниках было сказано, что P и Q - беззнаковые, и правильно делать так:
byte[] somebytes = new byte[RSAP.P.Length + 1];
somebytes[somebytes.Length - 1] = 0x00;
RSAP.P.CopyTo(somebytes,0);
Console.WriteLine((new BigInteger(somebytes)).ToString());
Всё-равно получаемое число не является простым. Что я делаю не так?

Решение задачи: «RSACryptoServiceProvider - генерация ключа»

textual
Листинг программы
Console.WriteLine(new BigInteger((x.P.Reverse().Concat(new byte[] { 0 })).ToArray()));

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

10   голосов , оценка 4.3 из 5