一 RSA算法描述
RSA算法是一种非对称密码算法,所谓非对称,就是指该算法需要一对密钥,使用其中一个加密,则需要用另一个才能解密。
RSA的算法涉及三个参数,n、e1、e2:
l 其中,n是两个大质数p、q的积,n的二进制表示时所占用的位数,就是所谓的密钥长度。
l e1和e2是一对相关的值,e1可以任意取,但要求e1与(p-1)*(q-1)互质;再选择e2,要求 (e2*e1)mod((p-1)*(q-1))=1。 (n及e1),(n及e2)就是密钥对。
l RSA加解密的算法完全相同,设A为明文,B为密文,则:A=B^e1 mod n;B=A^e2 mod n;
e1和e2可以互换使用,即: A=B^e2 mod n;B=A^e1 mod n;
结论: 使用RSA算法加密/解密数据,需按照上述步骤生成一对密钥,如(n,e1)和(n,e2),待加密数据可以任取密钥对中的一个密钥对其加密形成密文,对密文解密时使用密钥对中另外一个密钥进行解密.
由于RSA算法的上述特性,在实际应用中,可以把生成的两个密钥交给两个人进行保管,每个人保管
密钥对中一个密钥,从而可以让一个人对数据加密,而另一个人对数据解密.
RKM技术正是采用了RSA的这个特性保证了密钥交换和加解密过程的安全性.