在我的场景中,我想使用私钥加密一个非常大的数字 (10^27),然后使用公钥对其进行解密。我遇到的问题是我想使加密文本的大小尽可能小。
我知道 .NET 支持公钥加密 (RSACryptoServiceProvider),但加密文本变得如此庞大。
将私钥视为公钥是否可行?
椭圆曲线密码学会产生较小的输出吗?
最佳答案
首先,如果您想实现 secret 性,您应该始终使用公钥而不是私钥进行加密。 RSA 加密未定义为使用私钥加密,结果可能会有所不同(尤其是应用的填充类型)。
对于直接 RSA 加密,加密消息的大小与模数相同。现在模数应该至少是 2048 位,而你的消息只有 (27/3)*10=90 位。所以 RSA 会有很大的开销,与使用的 key 无关。因此,使用 ECIES 可能会带来显着的好处。
关于c# - .NET 4.0 中大量的私钥加密,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20903182/