一是质数还是合数 质数是什么意思(质数和合数是什么含义)

编辑:
发布时间: 2021-03-01 06:19:01
分享:

长期以来,素数的研究被认为具有纯粹的数学意义,但在实践中没有价值。直到20世纪70年代,麻省理工学院的三位数学家李·韦斯特(Lee West)、萨莫尔(Samol)和阿德曼(Aderman)共同提出了一种公钥加密算法,后来被广泛应用于银行加密,人们才意识到素数的巨大作用。

质数为什么能用于加密算法?

这个问题涉及到大数的素因子分解。如果一个复合数是由两个较小的素数相乘得到的,很容易分解成两个素数。例如,51的两个质因数是3和17。但是,如果把两个大素数相乘得到一个非常大的复合数,就很难把这个数反过来分解成两个素数。比如511883,分解成两个质因数,就是557和919;2538952327,分解成两个质因数后,是29179和87013,显然比上一个数字难多了。

截至今年1月,已知最大素数为2 825 899 331,位数超过2486万。即使是超级计算机也很难对两个素数相乘得到的复合数进行有效的素因子分解,所以这个原理可以用于加密算法中。

什么是RSA加密算法?

RSA算法是一种非对称加密算法。加密和解密密钥是不同的,解密密钥对应于加密密钥。假设A向B发送信息A,那么A就是需要加密的信息;然后假设b是两个素数相乘得到的合成数;c是与欧拉函数有关的数字,是公钥;d是c关于欧拉函数值的模倒数,d是私钥。

信息加密

B生成复合号B、公钥C和私钥D后,B将B和C传输给A,D保密不传输。a用公钥c加密信息a,即计算a c除以b的余数e,即a c mod b = e,得到的e就是密文。然后,A将密文E发送给b。

信息解密

b得到密文后,用私钥d解密密文e,可以证明ed除以b的余数恰好是信息a,即e d mod b = a,从而完成信息的解密。

因为复合号B、公钥C、密文E都会被传输,所以这个信息可能会被盗。如果小偷想破解信息,他需要知道私钥d,如果你想从公钥c计算出密钥d,你需要对复合数B进行素因子分解,但是复合数B是两个素数相乘得到的大数,成功分解这个数是极其困难的。

目前,RSA加密算法已经使用了几百位,一般分解成两个几百位的素数。如果继续增加位数,可以进一步降低被破解的风险。因此,RSA加密算法的安全性能非常安全,这也是它被广泛使用的原因。

相关阅读
热门精选
孩子 孕妇