自己搞了一个 RSA 加密的实时通话工具,客户端生成公私钥,公钥上传服务器来当作电话号码。用户通过其他软件如微信互相分享公钥后即可开始通话。
现在的问题是,众所周知 RSA 加密的私钥长度 1024 以上为佳。然而,即使是 1024 长度,解密的延迟也高到让人难以忍受(和手机只剩一格信号差不多)。经反复尝试,最后觉得 512 长度的私钥解密通话延迟勉强在可接受范围内。
可问题是 512 长度的私钥是会被破解的。那这个解密的过程有没有加速的可能?
市场上那些号称使用 RSA 加密的即时通讯软件,比如 Telegram,他们是怎么实现低延迟 RSA 加密实时通话的呢?
1
sbw 2020-07-02 19:22:42 +08:00
用 rsa 传输其它速度快的加密方式的密钥
|
2
xiangyuecn 2020-07-02 19:23:39 +08:00 1
RSA 直接加密数据?不卡才怪
RSA 正确食用方法是:用来加密对称加密秘钥,如 AES 的秘钥,用对称加密来加密数据。 |
3
shansing 2020-07-02 19:24:55 +08:00
赞 #1 。一般不会直接用 RSA 来加密解密大量数据。这些活用 AES 之类的对称加密干就行了。
|
4
kernelpanic 2020-07-02 19:26:42 +08:00
就算 https 也不是直接用 RSA 加密数据啊
|
5
PopRain 2020-07-02 19:26:59 +08:00
几乎所有对传输速度有要求的应用,都是用 RSA 去交换对称加密的密钥,包括 HTTPS ....
|
6
GM 2020-07-02 19:29:34 +08:00
看到大家都把点子说到位了,我就不狗尾续貂了。
|
7
mxT52CRuqR6o5 2020-07-02 19:31:39 +08:00 via Android
用 rsa 去协商一个对称加密算法的秘钥。。。。。。
|
8
zooo 2020-07-02 19:33:40 +08:00
楼上回答都到点子上了
|
9
Corua 2020-07-02 19:41:32 +08:00 via Android 1
建议了解 diffie-hellman
|
10
xdeng 2020-07-02 19:56:56 +08:00
RSA 是用来前期商量对称加密的密钥的,不会一直用 RSA 的。
|