Шифрование закрытого ключа in.NET 4.0 из очень большого числа


В моем сценарии я хотел бы зашифровать очень большое число (10^27) с помощью закрытого ключа, а затем расшифровать его с помощью открытого ключа. Проблема в том, что я хочу, чтобы размер зашифрованного текста был как можно меньше.

Я знаю, что .NET поддерживает шифрование с открытым ключом (RSACryptoServiceProvider), но зашифрованный текст становится таким огромным.

Можно ли вместо этого рассматривать закрытый ключ как открытый ключ?

Будет криптография эллиптической кривой производить меньший объем продукции?

1 3

1 ответ:

Прежде всего, если вы хотите добиться конфиденциальности, вы всегда должны шифровать с помощью открытого ключа, а не закрытого ключа. Шифрование RSA не определено для шифрования с закрытым ключом, и результаты могут отличаться (особенно вид заполнения, которое применяется).

Для прямого шифрования RSA размер зашифрованного сообщения идентичен модулю. Теперь модуль должен быть по крайней мере 2048 бит к настоящему времени, и ваше сообщение только о (27/3)*10=90 бит. Так что ОГА будет большие накладные расходы, не зависящие от используемого ключа. Использование ECIES, таким образом, вероятно, даст значительные преимущества.