我正在使用RSA算法生成密码文本,它工作正常。但问题是,我生成的密文非常高。
例如:
纯文本 : 249488213
生成到,
密文 : 94489103D862769B7AE21EA42C2D400A584D0F919BBCAE2450AD1BE57EAC64E4A2F75FAB9F8FA25BCBC12AAAE58F43CCB071DC002332FF4C736F4DA96A36C3ED
这对于我的用例来说太大了,因为它将我的纯文本文件的文件大小增加到大约 2.5 倍。
所以我担心的是,我们是否可以将密文的长度减少到某个最小长度(尽管我们使用密钥大小),或者是否有任何其他非对称算法可以帮助我实现这一目标。
任何帮助,不胜感激。谢谢。
RSA 加密被描述为
c = m^e mod N,
其中c
是密文,m
是原始消息,e
是公共指数(通常为 65537),N
是公共模数。
因此,c
总是小于N
,但在大多数情况下与它的顺序相同。当然,您可以选择N
和m
来获得一个小c
,但这显然会导致加密变弱,并且每条消息都需要一个特殊的密钥。
可能,同样的问题将出现在其他非对称密码系统上。较短的密文更容易恢复。但是您可以使用 AES,它可以在计数器模式下生成与原始消息大小相同的密文。这会向攻击者显示消息的大小。