质数有什么作用 质数是什么意思



质数有什么作用 质数是什么意思

文章插图
素数或者说质数 , 是指只能被1和自身整除的大于1的自然数 。对于其他比1大的自然数 , 它们就都是合数 , 能够被除了1和自身之外的其他数整数 。显然 , 质数和质数相乘所得到的数必然是合数 。
一直以来 , 质数的研究被认为只有纯数学上的意义 , 实际并没有什么价值 。直到上个世纪70年代 , 麻省理工学院(MIT)的三位数学家李维斯特、萨莫尔和阿德曼共同提出了一种公开密钥加密算法 , 也就是后来被广泛应用于银行加密的RSA算法 , 人们才认识到了质数的巨大作用 。
质数为什么能用于加密算法?【质数有什么作用 质数是什么意思】这个问题就要涉及到大数的质因数分解 。如果把一个由较小的两个质数相乘得到一个合数 , 将其分解成两个质数(除了1和自身的组合之外)很容易 , 例如 , 51的两个质因数为3和17 。然而 , 如果两个很大的质数相乘之后得到一个非常大的合数 , 想要逆过来把该数分解成两个质数非常困难 。例如 , 511883 , 分解成两个质因数之后为557和919;2538952327(超过25亿) , 分解成两个质因数之后为29179和87013 , 这个难度明显要比上一个数大得多 。
质数有什么作用 质数是什么意思

文章插图
截至今年一月份 , 目前已知最大的质数是2^82589933?1 , 这个数拥有超过2486万位 。即便是超级计算机 , 也很难有效对两个质数相乘得到的合数进行质因数分解 , 所以这样的原理可以用于加密算法 。
什么是RSA加密算法?RSA算法是一种非对称加密算法 , 加密和解密所用的密钥是不一样的 , 解密所用的密钥对应于加密所用的密钥 。假设甲向乙发送信息a , 那么 , a是需要进行加密的信息;再假设b是一个由两个质数相乘得到的合数;c是一个与欧拉函数有关的数 , 这是公钥;d是c关于欧拉函数值的模倒数 , d就是私钥 。
信息加密乙在产生合数b和公钥c、私钥d之后 , 乙会把b和c传给甲 , d则保密不被传输 。甲利用公钥c对信息a进行加密 , 即计算a^c除以b的余数e , 即a^c mod b=e , 所得到的e就是密文 。于是 , 甲把密文e传送给乙 。
信息解密乙在得到密文之后 , 利用私钥d对密文e进行解密 。可以证明 , e^d除以b的余数正是信息a , 即e^d mod b=a , 这样就完成了信息的解密 。
质数有什么作用 质数是什么意思

文章插图
由于合数b、公钥c、密文e都会被传送 , 这些信息就有可能被窃取 。如果窃取者想要破解信息 , 需要知道私钥d 。想要通过公钥c来算出密钥d , 就需要对合数b进行质因数分解 。但合数b是由两个质数相乘得到的大数 , 想要成功分解该数极其困难 。
目前 , RSA加密算法用到的大数已经有数百位 , 它们一般都是分解成两个上百位的质数 。如果继续增加大数的位数 , 还能进一步降低被破解的风险 。因此 , RSA加密算法的安全性能十分有保障 , 这就是为什么它会被广泛应用的原因 。