Реализовать RSA шифрование собственными методами языка - C#

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

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

Доброго времени суток. У меня проблема следующая: Пытаюсь по-детски и в лоб реализовать RSA шифрование собственными методами языка:
byte[] P = { 0xE5, 0xD };
byte[] Q = { 0x13, 0xA };
byte[] Modulus = { 0xFF, 0xF9, 0x8B };
byte[] Exponent = { 0x3 };
byte[] D = { 0x5B, 0x41, 0x5D };
byte[] DP = { 0x43, 0x9 };
byte[] DQ = { 0xB7, 0x6 };
byte[] InverseQ = { 0xFE, 0x3 };
 
RSAParameters rsaparam = new RSAParameters();
rsaparam.P = P;
rsaparam.Q = Q;
rsaparam.Modulus = Modulus;
rsaparam.Exponent = Exponent;
rsaparam.D = D;
rsaparam.DP = DP;
rsaparam.DQ = DQ;
rsaparam.InverseQ = InverseQ;
 
RSACryptoServiceProvider rsa = new RSACryptoServiceProvider();
rsa.ImportParameters(rsaparam);
rsa.ExportParameters(false);
 
byte[] data = { 0x7, 0xB2, 0x1 };
string s=rsa.Encrypt(data, false).ToString();
Console.WriteLine(s);
Примеры констант взяты с википедии: https://ru.wikipedia.org/wiki/RSA Обращаю внимание, что в байтовом представлении числа переворачиваю так, как бы они хранились в машинном коде. Поэтому немного страшновато. Те константы, которых в примере на вики нет, а являются как бы дополнительными либо тупо высчитал на калькуляторе, либо маленький скриптик писал ( в случае для InverseQ ) После запуска, сообщение, что "Плохие данные". Подскажите, если не сложно, в чем тут затык. Спасибо тем, кто потратил время

Решение задачи: «Реализовать RSA шифрование собственными методами языка»

textual
Листинг программы
        RSACryptoServiceProvider rsa = new RSACryptoServiceProvider(dwKeySize);
        RSAParameters RSAKeyInfo = new RSAParameters();
        RSAKeyInfo.Modulus = Modulus;
        RSAKeyInfo.Exponent = Exponent ;
        
        rsa.ImportParameters(RSAKeyInfo); ;

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


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

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

13   голосов , оценка 3.923 из 5
Похожие ответы