RSA加密算法的前提
x mod n = x除以n的余数;
[(a mod n) + (b mod n)] mod n = (a+b) mod n
[(a mod n) - (b mod n)] mod n = (a-b) mod n
[(a mod n) * (b mod n)] mod n = (a*b) mod n
那么
RSA生成公钥/私钥对
选择2个大质数p和q;1024位的大质数;
计算n=p*q,z=(p-1)*(q-1)
选择e,满足e<n,使得e和z之间没有公因子,即e和z互质;
选择d使得e*d-1刚好可以被z整除(e*d mod z = 1);
得出公钥(n,e);私钥(n,d)
RSA:加密、解密
RSA的理论依据
RSA的安全性建立在“大数分解和素性检测”这个数论难题的基础上;两个大素数相乘在计算上容易实现,而将该乘积分解的计算量相当大;
RSA的实际应用
RSA的幂运算强度很大;
DES至少比RSA快100倍;
利用公钥加密建立安全连接,然后建立第二个密钥-对称会话密钥,用于加密数据;
会话密钥
Bob和Alice利用RSA交换对称会话密钥Ks,利用Ks加密/解密会话数据;
<hr/>身份认证(Authentication)
AP协议来完成身份认证
AP1.0:Alice 声明I am Alice