随着互联网的兴起,越来越多的信息和资源要通过网络传输完成;然而在这些数据传输中总有一些“无关人员”做一些窃听、盗取、篡改等危害数据安全的行为,所以我们要对数据进行加密处理,以保证数据的安全传输;
所以有了一下几种加密方式:
一、对称加密:
这种算法简单来说就是 数据的发送方和接收方都必须要有同一种密钥(加密数据所用到的密钥),在数据的传输中 数据与密钥都通过加密的方式传送;
特性:在数据加密中,数据被分成固定大的块,逐个加密;加密和解密速度也快;
缺陷:因为加密和解密使用同一种密钥,所以需要发送方和传送方都要保留密钥,导致对于保存密钥的数量也会越来越多;密钥的分发的保密性也过于困难;
二、单向加密:
这种加密方式就是单纯的加密过程,无法自己进行解密;所以不能用作直接进行加密数据信息。常用的算法有两种:MD5和SHA算法,用这种方法对数据中的某一段进行加密处理,获得一个叫“特征码”的东西。 这种“特征码”可以用来确定原数据真伪性和数据的完整性;
特性:定长输出;雪崩效应(更改原数据中任意一个字节,都会使得特征码有截然不同的变化)
三、公钥加密算法:
这种算法中所用到的密钥有两种:私钥和公钥(由私钥抽取生成的)
私钥的大小:512bit、1024bit、2048bit、4096bit、8192bit、16384bit;
这种加密方式对数据的加密安全等级较高;简单来说就是使用私钥加密数据,解密则必须用公钥来解密;若使用公钥加密,则必须使用私钥来解密;
由于私钥的大小过大,对于数据的加密所消耗的系统资源和时间也会过多;所以就产生了缺陷;
通常这种加密方式很少用来加密大批量的数据,所以它可以用来加密以下几种:
⑴数字签名的加密
数字签名是用来让数据的接收方确认发送方的身份的;
⑵密钥加密
在对称加密中的密钥交换时,可以用公钥加密法来加密密钥;
⑶小段数据的加密
当所需要传送的数据是少量的情况下,可以使用公钥加密;
常用的公钥加密算法:
RSA:加密数字签名
DSA:数字签名算法;只能实现数字签名的功能;有时该算法被称为DSS;
ELgamal
有了以上几种加密方式,在数据传输中的联合应用,就可以达到安全传输数据的目的;
从公钥加密方式可知,传输数据双方都要有对方的公钥才可以对数据进行解密;那么问题来了,这个公钥如何获得?所以这里产生了第三方机构,也就是CA(Certification Authority)。
CA是认证身份的中心,是用来确认公钥拥有者的真实身份的;类似于我们生活中的身份证;
CA机构的工作:
1.通信双方交换证书;
2.双方协商加密算法;
3.双方验证证书的真伪;
4.用CA的公钥解密证书中CA的签名,能解密说明证书来源可靠
5.用通用的加密算法加密证书,取得特征值;与解密出来的特征值比较,如果相同,说明证书完整性可靠;
6.检查证书的有效期是否在合法时间范围,如果过期则证书不被认可;
7.检查证书的主体名称和此通信的目标是否能够对应
国际标准化组织(ISO)定义了证书的机构和认证标准,X.509协议标准
证书里面主要包括:
拥有者的名称:
拥有者所提交的公钥
有效期
证书的版本号
证书的序列号
签发算法ID
签发CA的名称
主体名称
发证者的唯一标识
发证者的数字签名;
扩展信息;
有了这个机构我们就能安心的在网络中传输数据了;简单的总结下数据是如何传输的:
1.通信双方互相交换证书,并到信任的CA进行证书验证;
2.发送方使用某种对称加密算法对数据进行加密;对加密后的数据使用单向加密计算其特征值;发送方再用自己的私钥加密此特征值,以证明数据来源的可靠;发送方使用接收方的证书加密对称密钥;
3.接收方在收到数据之后,先使用自己的私钥解密对称密钥;然后使用发送方的公钥解密特征值,再利用相同的单向加密算法,重新结算加密数据的特征值;比较两个特征值;如果特征值一致,则表明数据完整;再用解密出来的对称密钥解密出原始数据