什么是RSA算法?
RSA加密算法是一种非对称加密算法。在公开密钥加密和电子商业中RSA被广泛使用。RSA是1977年由罗纳德·李维斯特(Ron Rivest)、阿迪·萨莫尔(Adi Shamir)和伦纳德·阿德曼(Leonard Adleman)一起提出的。当时他们三人都在麻省理工学院工作。RSA就是他们三人姓氏开头字母拼在一起组成的。
大数的质因素分解决定RSA算法
的可靠性,让合理时间内破解加密数据成为不可能。
要了解RSA加密算法
首先要了解素数。
什么是非对称加密?
非对称加密需要两个密钥,一个公开密钥一个私有密钥。使用公钥加密的数据只能用私钥解开,
所以公钥可以公开给他人,而私钥要保护起来。其实公钥就像🔒,私钥就像🔑,把🔒给别人锁住数据,然后传递回来用🔑解开取出数据。这样就算中途被他人截获了没有🔑也没法查看数据内容。
欧拉函数
欧拉函数是说,对正整数,欧拉函数是小于或等于的正整数中与互质的数的数目。比如因为和互质。有一种情况很好计算就是当等于素数时,因为素数和小于它的所有正整数互质,所以当等于素数时,且当都是素数时
欧拉定理
欧拉定理(也称费马-欧拉定理)是一个关于同余的性质。欧拉定理表明,若为正整数,且互素,则 。
RSA加密算法
RSA加密算法
是根据一个容易运算但是如果没有特殊信息逆运算非常困难的函数,,这非常容易计算,但是给定却很困难得到。
那么怎么让它的逆运算也容易呢?要有一个让成立,这公式也可以写成,这样只要知道就可以得到了。
那么怎么计算,这时候就要用到欧拉定理
,,也可以写成,就是将原等式的任何数次方,然后再乘以。
现在就有了和,就可以算出等于
这时就相当于公钥,就相当于私钥。
那么RSA加密算法
过程为:
1)第一步是首先找出两个大质数,大质数可以使用两步生成。(具体可以看费马小定理)
- 随机生成一个大数
- 测试是不是素数
然后将相乘得到,根据欧拉定理
可知。
2)第二步找到一个奇数,而且与互质。
3)根据上面公式计算出一个正整数,有人证明如果可以根据很有效的推出,所以必须足够大。
4)将和发送给他人加密数据(),得到(消息是小于的正整数,如果太大可以分段)。
5)取回加密数据, 就等于消息。
安全性
根据上面步骤可以看出要破解加密必须要得到,而得到就要找到,这就要对进行质因素分解,然而根据现在计算机的速度对一个大数在一个合理时间内质因素分解非常困难。