什么是素数(数学家研究素数的意义是什么)

/ 0评 / 0

什么是素数(数学家研究素数的意义是什么)

素数或质数是指大于1的自然数,只能被1和自身整除。对于其他大于1的自然数,都是复合数,可以是除1和自身以外的其他数的整数。显然,素数乘以素数一定是一个复合数。

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

为什么素数可以用在加密算法中?

这个问题涉及到Baxter网络和大数的素因子分解。如果一个复合数是由两个较小的素数相乘得到的,那么很容易分解成两个素数(1和自身的组合除外)。例如,百特51的两个质因数是3和17。但是,如果把两个大素数相乘得到一个非常大的复合数,就很难把这个数反过来分解成两个素数。比如511883,分解成两个素因子,就是557和百特网919;2,538,952,327(超过25亿),分解成两个素因子后分别是29,179和87,013,显然比上一个困难很多。

截至今年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加密信(www.isoyu.com原创版权)息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加密算法的安全性能非常安全,这也是它被广泛使用的原因。