本文发表在 rolia.net 枫下论坛你如果知道原理就会发现一些行业的问题,其实2017年之后,各个行业都在悄悄的不用RSA而改用ECC了。原因就是2017出现了加强版的数论筛法,进一步降低了数因子分解的复杂度,目前复杂度已经降低到了sub-exponential的程度了。这样就给RSA带来了问题,因为RSA是依赖质数生成密钥的,而加强筛法把它分解强度降低到sub-exp以后,4096的密钥位数都显得不够,而如果上8192密钥长度则有了另一个数学上非常头痛的问题,你怎么知道你手上的那么长bit的数字是个质数?它很可能通过了所有的质数测试但实际上不是一个质数,形式可能是 x=pq,甚至x=pql,是个不折不扣的伪质数,生成的密钥质量会非常差。而数学上寻找质数的算法多少年没有改进了,在长度过长的上面会变得非常的慢且目前来看,找到伪质数的概率会随着数字增大而变得越来越高。其实这个从理论上来说可以这么理解,目前依赖于NP数论问题的加密算法很可能随着筛法的改进已经变得不再是强指数增长复杂度了,也就是我们的加密算法必须在NP-complete级别上找,但NPC几乎没有数论问题,所以NPC无法用在加密上,那么我们只能继续跳一步,在NP-Hard问题上寻找,还好NP-Hard里有很多数论的问题,目前ECC就是比较成熟的方案,因为ECC(椭圆曲线)依赖的伽罗华域同构是个不折不扣的NP-Hard问题。更多精彩文章及讨论,请光临枫下论坛 rolia.net