powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Классическое RSA в C# работает медленно.
4 сообщений из 4, страница 1 из 1
Классическое RSA в C# работает медленно.
    #40081035
Fixin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нужно расшифровывать публичным 128-байтным ключом 128-байтную шифровку.


Код: c#
1.
2.
3.
            string sKeyPow = "10001"; //Pow
            string sKeyMod = "00AB25073527C39B1E934213870AB19D9CC4AF7C037F44F92462F7A896F6A22AF798741F39CD3F133BB96B13C11C8E105F231CBCBBDBA1F9BD876F07FF93151FB9E971331FB604C6A17998BDF772032DAA1DD17662D4926E8F502A22FBCE377A45595EAE7446727E777FDC4781E56E84548A9390855168DBA68E07E33D3B9BF097"; //Modulus
            string sCoded = "681FA51781F3AA4727C72374C6FE68A1C0BD3081DB1026C715CC791CA7F1CCF076143A9D15813641B2C533AE0064934B510ED42D430196A16EC9EE65743EA3E03CF674DABAF05FA647898344DB65D325A130B511E68A33E0995273D36049CBBF206E3BEE021360AACF03C12347D600DD70E34389A007704771525E11548E9DDB"; //Coded string



Написал реализацию RSA через BigInteger, безбожно тормозит (я не дождался окончания):

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
      static public string RSA_Decode_Old(string sInput, string sKeyExp, string sKeyMod)
        {
            //All strings are Hex

            string result = "";


            BigInteger biInput = BigInteger.Parse("0" + sInput, System.Globalization.NumberStyles.AllowHexSpecifier);
            BigInteger biKeyExp = BigInteger.Parse("0" + sKeyExp, System.Globalization.NumberStyles.AllowHexSpecifier);
            BigInteger biKeyMod = BigInteger.Parse("0" + sKeyMod, System.Globalization.NumberStyles.AllowHexSpecifier);

            //About hex: https://stackoverflow.com/questions/30119174/converting-a-hex-string-to-its-biginteger-equivalent-negates-the-value
            BigInteger bi = BigInteger.Pow(biInput, (int) biKeyExp);

            bi = bi % biKeyMod;

            result = bi.ToString();
            
            return result;
        }




Попробовал Microsoft RSA, но я так подозреваю, она не работает с чистым RSA, выдает ошибку: "Ключ не существует"

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
        static public string RSA_Decode(string sInput, string sKeyExp, string sKeyMod)
        {

            RSACryptoServiceProvider RSA = new RSACryptoServiceProvider();
            //RSAParameters privateKey = RSA.ExportParameters(true);
            //RSAParameters publicKey = RSA.ExportParameters(false);
            RSAParameters RSAPrm = new RSAParameters();
            RSAPrm.Exponent = HexStrToByteArray(sKeyExp);
            RSAPrm.Modulus = HexStrToByteArray(sKeyMod);
            RSA.ImportParameters(RSAPrm);
            string publicxml = RSA.ToXmlString(false); //https://stackoverflow.com/questions/27383623/c-sharp-get-public-key-from-modulus-and-exponent
            byte[] result = RSA.Decrypt(HexStrToByteArray(sInput), false);


            return "";
        }




Посоветуйте или как запустить Microsoft RSA или какую-нибудь быструю библиотеку RSA на C#.
...
Рейтинг: 0 / 0
Классическое RSA в C# работает медленно.
    #40081053
Barlone
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Попробуйте BigInteger.ModPow()
...
Рейтинг: 0 / 0
Классическое RSA в C# работает медленно.
    #40081059
Fixin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Barlone
Попробуйте BigInteger.ModPow()

Спасибо. Все так просто, оказывается.
...
Рейтинг: 0 / 0
Классическое RSA в C# работает медленно.
    #40084270
kealon(Ruslan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Fixin,

Код: c#
1.
BigInteger bi = BigInteger.Pow(biInput, (int) biKeyExp);


а долго ждал? :-)
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Классическое RSA в C# работает медленно.
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]