C# NET 4.0中的私钥加密数量非常大

C# NET 4.0中的私钥加密数量非常大,c#,.net,encryption,encryption-asymmetric,elliptic-curve,C#,.net,Encryption,Encryption Asymmetric,Elliptic Curve,在我的场景中,我想用私钥加密一个非常大的数字(10^27),然后用公钥解密。我的问题是,我想保持加密文本的大小尽可能小 我知道.NET支持公钥加密(RSACryptServiceProvider),但加密文本太大了 将私钥视为公钥是否有效 椭圆曲线加密会产生更小的输出吗?首先,如果你想实现机密性,你应该始终使用公钥加密,而不是私钥。RSA加密未定义为使用私钥进行加密,结果可能会有所不同(尤其是应用的填充类型) 对于直接RSA加密,加密消息的大小与模数相同。现在,模数至少应该是2048位,而您的消

在我的场景中,我想用私钥加密一个非常大的数字(10^27),然后用公钥解密。我的问题是,我想保持加密文本的大小尽可能小

我知道.NET支持公钥加密(RSACryptServiceProvider),但加密文本太大了

将私钥视为公钥是否有效


椭圆曲线加密会产生更小的输出吗?

首先,如果你想实现机密性,你应该始终使用公钥加密,而不是私钥。RSA加密未定义为使用私钥进行加密,结果可能会有所不同(尤其是应用的填充类型)


对于直接RSA加密,加密消息的大小与模数相同。现在,模数至少应该是2048位,而您的消息只有(27/3)*10=90位。因此,RSA的开销很大,与使用的密钥无关。因此,使用ECIES可能会带来显著的好处。

?加密文本是非常大的数字,还是其他什么?在您的情况下,RSA加密或解密的结果是什么?你把公共和私人搞混了,还是这是签名是一个介于0和模量之间的数字,可能没有明显的冗余,因此不可压缩。我不认为ECC或DSA会有什么不同:情况会是一样的。任何良好的对称加密数据都无法与随机数据区分开来,因此也不可压缩:在加密之前必须进行压缩。@Rup,“大数字”是我想要加密的@Rup注释的第一部分是有意义的。ECC使用的密钥大小要小得多,因此差异会很大。也没有人在谈论压缩。@Artem,使用@来确保Rup被通知了注释。。。请说明您是否只想通过给定代码实现机密性,或者是否希望实现身份验证等。