加密算法的分类:
双向加密:分为对称加密和非对称加密。
对称加密
采用单钥密码系统的加密方法,同一个密钥可以同时用作信息的加密和解密,这种加密方法称为对称加密,也称为单密钥加密。 需要对加密和解密使用相同密钥的加密算法。由于其速度,对称性加密通常在消息发送方需要加密大量数据时使用。对称性加密也称为密钥加密。 所谓对称,就是采用这种加密方法的双方使用方式用同样的密钥进行加密和解密。密钥是控制加密及解密过程的指令。 算法是一组规则,规定如何进行加密和解密。因此对称式加密本身不是安全的。
非对称加密
1976年,美国学者Dime和Henman为解决信息公开传送和密钥管理问题,提出一种新的密钥交换协议,允许在不安全的媒体上的通讯双方交换信息,安全地达成一致的密钥,这就是“公开密钥系统”。相对于“对称加密算法”这种方法也叫做“非对称加密算法”。 与对称加密算法不同,非对称加密算法需要两个密钥:公开密钥(publickey)和私有密钥 (privatekey)。公开密钥与私有密钥是一对,如果用公开密钥对数据进行加密,只有用对应的私有密钥才能解密;如果用私有密钥对数据进行加密,那么只有用对应的公开密钥才能解密。因为加密和解密使用的是两个不同的密钥,所以这种算法叫作非对称加密算法。
单向加密(信息摘要):
1. MD5 即Message-Digest Algorithm 5(信息-摘要算法 5),用于确保信息传输完整一致。是计算机广泛使用的杂凑算法之一(又译摘要算法、哈希算法),
主流编程语言普遍已有MD5实现。将数据(如汉字)运算为另一固定长度值,是杂凑算法的基础原理,MD5的前身有MD2、MD3和MD4。MD5的作用是让
大容量信息在用数字签名软件签署私人密钥前被"压缩"成一种保密的格式(就是把一个任意长度的字节串变换成一定长的十六进制数字串)。 除了MD5以外,其中比较有名的还有sha-1、RIPEMD以及Haval等
2、SHA 是一种数据加密算法,该算法经过加密专家多年来的发展和改进已日益完善,现在已成为公认的最安全的散列算法之一,并被广泛使用。
该算法的思想是接收一段明文,然后以一种不可逆的方式将它转换成一段(通常更小)密文,也可以简单的理解为取一串输入码(称为预映射或信息),
并把它们转化为长度较短、位数固定的输出序列即散列值(也称为信息摘要或信息认证代码)的过程。散列函数值可以说时对明文的一种“指纹”或是“摘要”所以
对散列值的数字签名就可以视为对此明文的数字签名。
加密的实质就是数学运算. 对于对称加密,存在一个KEY,所以,对称算法都是可逆的.逆运算就可以得到原文.
RSA是可逆的.它是由公钥/私钥组成.公钥加密后,只有配套私钥能解. 例子: A与B通信 A生成密钥公钥A/私钥A. B生成密钥公钥B/私钥B. * A通过网络之类把公钥A发送给B,反之亦然. 以后,A发送给B的数据,先用公钥B加密,加密后,只有B能解开,因为只有他拥有私钥B.反之亦然.
中间人欺骗: * 假设C位于A与B之间,那么A发送公钥A给B的时候,C拦截下来,把公钥C发给B.反之亦然. * 然后,A发送数据,用公钥C加密,C接收后,用私钥C解密.然后再用公钥B加密后发送给B.反之亦然.
实际项目中的加密流程:
1、根据上面的介绍,我们解密数据,考虑安全性,首选非对称性加密,如RSA加密算法。
但是非对称加密算法的效率一般都比对称加密算法(如DES)低。
2、对称加密算法(DES)虽然效率高,但是安全性不高。例如DES秘钥泄露的话,加密数据会被零成本的翻译成明文。
3、折中的办法是 大量数据用DES加密传输,DES的秘钥用RSA算法加密。这样既保证了安全性也又提高了效率。
4、RSA加密DES的秘钥 在网络上传输的话,还存在RSA的中间人欺骗问题。
5、为解决中间人欺骗的问题,我们需要公证的第三方认证,即ca认证。
转载请注明原文地址: https://ju.6miu.com/read-680266.html