目录
哈希算法
对称加密算法
非对称加密算法
哈希算法
作用:对任意一组输入的数据进行计算,得到一个长度固定的输出摘要。
目的:为了验证原始数据是否被篡改。
特点:相同的输入一定得到相同的输出,不同的输入大概率得到不同的输出。
对称加密算法
优点:算法公开、计算量小、加密速度快、加密效率高;
缺点:密钥协商过程中,一旦密钥泄露,别人可以获取到密钥,这样也能对密文进行解密。另外,每对用户每次使用对称加密算法时,都需要使用其他人不知道的独一密钥,这会使得收、发双方所拥有的钥匙数量巨大,密钥管理成为双方的负担。
非对称加密算法
非对称加密算法在加密和解密时使用两个不同的密钥,其中一个可以公开的密钥被称为公钥,另外一个完全保密的密钥被称为私钥。只有同一个公钥私钥对才能正常加密和解密。
对于同一个公钥私钥对,如果使用公钥对数据进行加密,只有用对应的私钥才能进行解密;如果使用私钥对数据进行加密,只有用对应的公钥才能进行解密。
RSA
RSA算法利用了两个数论特性:
p1、p2为两个质数, n=p1 * p2。已知p1、p2求n简单,已知n求p1、p2很难。
(m^e) mod n=c,已知m、e、n求c简单,已知e、n、c求m很难。
公钥私钥生成过程:随机选取两个质数p1、p2,n=p1 * p2,再随机选取一个与φ(n)互质且小于φ(n)的整数e,然后再计算e对于φ(n)的模反元素d,最后得到n和e为公钥,n和d为私钥。
加密过程:(m^e) mod n = c,其中m为明文,c为密文,n和e为公钥。
解密过程:(c^d) mod n = m,其中m为明文,c为密文,n和d为私钥。
DSA
私钥加密生成数字签名,公钥验证数据及签名,如果数据和签名不匹配则认为验证失败。数字签名的作用就是校验数据在传输过程中不被修改,数字签名,是单向加密的升级。