一直不明白RSA公钥私钥算法和质数有什么关系。
文章《可以公开的密码:大质数基础上RSA加密算法》https://m.sohu.com/a/272982577_814235说了一个例子,还是有点不太清楚,自己想了一下。
其实是这样的:
选2个质数7和11(不公开),相乘得77(公开)
再选一个数13(公开)
↓
7(不公开)、11(不公开)、13(公开)可以计算得到秘密捷径即解码密钥:37(不公开)
这样数据加密、解密是这样:
20→→→公钥质数77、公钥13→→→69
20←←←←←私钥37←←←←←←←69
用私钥加密的数据,只能用公钥解开。
用公钥加密的数据,只能用私钥解开。
这里的要点就是:7和11千万不能公开。很容易知道一个数是不是质数,而很难知道一个质数是由哪二个质数相乘得到的,如果是一个非常大的质数的话!
因为那么大的质数计算要花上百年,全世界都没有计算过。
当然,除非你用一个别人计算过的质数来做公钥,这基本是不可能的啦。