Вопрос по c# – RSA-шифрование без заполнения C #

1

Я установлю сцену,

Мне необходимо вычислить шифрование RSA для заданного набора байтов с использованием 512-битного ключа. Это может быть легко достигнуто с помощью класса RSACryptoServiceProvider, однако я должен предварительно вычислить пользовательское заполнение для шифрования перед вычислением шифрования RSA.

Это пользовательское заполнение не соответствует PKCS # 1 v1.5 или v2, предоставленным в методе шифрования RSACryptoServiceProvider. Существуют ли альтернативные классы C #, которые я мог бы использовать для вычисления RSA-шифрования, не добавляя свои собственные дополнения?

В настоящее время я рассматриваю OpenSSL.Net как альтернативу, но есть ли другие, которые лучше /

Любая помощь будет оценена. Благодарю.

Я попытался передать 512-битный блок в метод Encrypt, и я получил исключение «Bad length». Phillip Lawrence Barley
Просто подумайте, а что, если размер ваших пользовательских данных будет кратен размеру блока? Не будет ли отступление от провайдера неуместным? Henk Holterman
Обратите внимание, что сломать 512-битные ключи RSA довольно просто. CodesInChaos

Ваш Ответ

1   ответ
1

BigInteger с помощьюModPow. Но это будет относительно медленно, а для операций с закрытым ключом он широко открыт для синхронизации атак по побочным каналам.

ПолагаюMono.Security (вы можете использовать его в обычном .net) содержит классы, которые поддерживают незаполненный RSA.

Похожие вопросы