RSA非对称加密的算法原理

193 阅读2分钟

本文算是对RSA算法的一点数学原理的深入剖析记录,非本人原创,算是对网上各位大佬文章的一个总结搬运,因为所有加解密算法都是密码学问题,而密码学的基础就是数学。所以要真正搞懂各种加解密算法,大学高数的基础是必不可少的。

废话不多唆,先上资料地址:

阮一峰-RSA算法原理一

阮一峰-RSA算法原理二

RSA算法原理

当然这里还有更通俗的非对称加密-RSA 讲解-bilibili

小弟在这里先总结下:核心就是利用质因数分解的思想,将一个大数(很大很大,一般是1024位或者2048位的数值)进行质因数分解,分解的到的两个数就分别对应了RSA加密算法的公钥和私钥。我们可以将要发送的信息使用私钥进行加密得到一个加密后的数值,然后使用公钥进行解密就可以得到原始记录。详细可以参考下文:

image.png

image.png

NP问题(Non-deterministic Polynomial):多项式复杂程度的非确定性问题,比如,找大质数的问题。有没有一个公式能推出下一个质数是多少呢?这种问题的答案,是无法直接计算得到的,只能通过间接的“猜算”来得到结果。这也就是非确定性问题。而这些问题的通常有个算法,它不能直接告诉你答案是什么,但可以告诉你,某个可能的结果是正确的答案还是错误的。这个可以告诉你“猜算”的答案正确与否的算法,假如可以在多项式(polynomial)时间内算出来,就叫做多项式非确定性问题。

破解方式:量子计算机,可以同时输入多个位元进行运算,将大大缩短RSA公私钥的解译时间