我想构建一个中继服务器,可以安全地在2个对等体之间中继消息(用于nat遍历)以进行P2P通信。特别是,我参考了document图中的步骤来交换密钥......
特别是,它表示“用B的公钥编码的A的公钥”,反之亦然。但是,我偶然发现了一个问题:当我使用两个密钥为1024位时,当我尝试使用公钥对另一个进行编码时,我实际上得到了illegalblocksizeexception
。
阅读其他问题,有人回答说公众可以使用RSA加密的数据大小有限。我是否知道有些细节我可能会遗漏,图中省略了,或者我做错了什么,试图交换密钥......
答案 0 :(得分:1)
RSA公钥无法加密长于其模数位长度的数据。因此,1024位RSA公钥只能加密最多1024位数据。 1024位公钥文件将大于1024位,因为模数仅为总数据的 part 。因此,1024位RSA公钥不能加密另一个1024位RSA公钥。
更重要的是:您不应该使用任何加密公钥。公钥只是公开的;谈到他们的内容时,不需要保密。如果您希望“祝福”公钥适合特定用途,请使用具有某种意义的私钥对其进行签名。或者更好的是,从协议的所有参与者都信任的证书颁发机构颁发公钥证书。