在 RSA 中,我基本上有 3 个数字:d
, e
,n
公钥是(e, n)
,私钥是(d, n)
服务器将m
通过计算签名一个数字,c=m^d mod n
客户端将通过计算解密签名m=c^e mod n
。
在我的情况下,客户端的计算能力是有限的(它发生在浏览器中的 Javascript 中)——我想让公钥操作尽可能高效。
所以我的问题是——有没有办法生成一个 RSA 密钥(d, e, n)
,使系统的安全性仍然很高——但公钥操作性能好?
有没有办法使e
公钥中的数字变小(可能是 64 位)和大数字n
(d
可能是 1024 位或 2048 位)。
我随机生成了一些大密钥,并测试了一些javascript RSA库的性能,性能极差。大小为 1024 位的密钥需要永远计算。
我使用的图书馆取自这里
也许我的问题是我正在使用的库的算法性能很差?
我需要快速的公钥操作,我不想牺牲安全性。