如何解决golang中密钥长度为15360的RSA密钥对生成太慢需要做什么来解决这个问题?
我尝试在创建go时使用15360密钥长度的RSA密钥对。
在Windows中,它会在约2分钟内生成密钥对。但是从VM那里,它监听了超过10分钟的时间,无法生成密钥对,并以套接字挂断结束。
privateKey,err := generatePrivateKey(15360)
if err != nil {
log.Fatal(err.Error())
}
与Java实现相同,它在5次机会中在VM 3中生成密钥对的时间约为10分钟。
我可以通过什么方式改进它,以避免此类套接字挂起失败?
解决方法
我刚刚在RSA或{更快} ECC中使用nilsmagnus's gist在Go 1.14.6(Windows 10,无VM,4核)中测试了密钥的生成
我确实看到15360位RSA密钥(强度相当于256位对称密钥)需要10分钟以上的时间
2020/08/13 07:55:30 2048/224 (rsa-bitsize/ec-bitsize): 1245302200ns 1481396600ns
2020/08/13 07:55:34 3072/256 (rsa-bitsize/ec-bitsize): 2797005900ns 70036800ns
2020/08/13 07:56:41 7680/384 (rsa-bitsize/ec-bitsize): 33954637400ns 11623485000ns
2020/08/13 08:07:56 15360/521 (rsa-bitsize/ec-bitsize): 236410356300ns 17162054200ns
使用Go 1.15(昨天发布):
2020/08/13 08:11:40 2048/224 (rsa-bitsize/ec-bitsize): 1064054900ns 1486366000ns
2020/08/13 08:11:43 3072/256 (rsa-bitsize/ec-bitsize): 2799028300ns 70949100ns
2020/08/13 08:12:34 7680/384 (rsa-bitsize/ec-bitsize): 35293246300ns 9160064600ns
2020/08/13 08:24:10 15360/521 (rsa-bitsize/ec-bitsize): 236385736600ns 25844676400ns
没有明显的改善。
因此,对于这种密钥长度,使用ECC密钥代替RSA会更快。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。