目录
一、加密技术
1、概念
-
加密机制是保护数据安全的重要手段;
-
加密的基本原理就是对原来明文的消息(文件、数据),按照某种特定的算法进行处理,使其成为一段不可阅读的、不可理解的一段代码,称为密文;只有在输入特定的密钥以后,才能把对应的密文给解密出来。
2、加密技术的分类
(1)对称性加密技术
(2)非对称性加密技术
(3)单向加密(不可逆加密)
3、可逆加密技术
-
对称性、非对称性加密技术都是可还原的。
二、对称性加密技术
1、概念
-
加密和解密用的是相同的密钥;
2、特点
优点
-
算法效率高
-
速度快
-
适用于对大数据进行加密
缺点
-
密钥分发困难:例如在互联网上要与1000个用户进行通信, 要么得给1000个人每个人都准备一个密钥,此时的密钥管理起来有很大难度;要么一个密钥分发给1000个人,此时有一个人的密钥你泄露,那么整个加密体系就失效了。
3、常见加密算法
-
DES(数字加密标准)、3DES(三重数字加密标准)
-
RC-5、IDEA算法
三、非对称性加密技术
1、概念
-
加密和解密用的不是同一个密钥。
2、特点
-
密钥成对出现;用公钥加密就必须用私钥解密,用私钥加密就必须用公钥解密;
-
公钥对外公开;
-
私钥只有持有者持有;
-
公钥和私钥之间存在关联,但是密钥之间不能相互推导;
缺点
-
算法相对于对称加密算法效率低:进行大量加密解密时,比较耗时。
3、常见加密算法
-
RSA
-
ECC(椭圆曲线算法)
-
DSA
四、单向加密
1、概念
-
非可逆加密方式;
-
密码加密以后是不可还原的。
2、常见加密算法
-
MD5:用字符和算法生成对应的密文。操作系统采用的加密方式是MD5。
-
SHA:安全的hash算法。
3、hash算法
-
会按约定生成固定长度的二进制位(字符位)。
-
不管消息(文件、数据)的内容有多大,生成的字符长度是固定的。
-
只要消息的内容发生了改变,这个算法产生的hash的值就会不同;也就是说只有消息内容完全一样时,hash值才会一样。
五、加密技术考点
1、各种加密技术的特点
-
只要破解密文的代价高于获取密文中信息的回报,就认为这种加密机制是安全的 。
2、各种加密技术的代码
六、PKI中的相关概念
1、PKI的概念
-
PKI是公钥基础设施。
-
是遵循既定标准的密钥管理平台。
-
能为网络中的所有应用提供“信息加密”、“数据签名”等密码相关的服务,以及必须的密钥和证书管理系统。密钥是成对出现的,加密和解密用的不是同一个密钥。
2、CA的概念
-
证书的颁发机构。
-
向用户或者机构颁发对应的数字证书。
3、RA
-
注册机构;
-
负责接收用户对证书的申请注册。
4、数字证书
-
一个2k大的文件,也就是把一些用户信息和公钥捆绑在一起的数字文件。
-
颁发数字证书的CA会用自己的私钥对这一个颁发的数字证书进行加密,由于非对称性加密,用私钥加密就需要用公钥解密,所以CA用自己的私钥对颁发的数字证书进行加密,就需要用CA自己的公钥对数字证书进行解密,而公钥是对外公开的,所以所有用户都能对CA加密的数字证书进行解密,所以此处CA证书用自己的私钥对数字证书进行加密,是为了保证,这个数字证书,确实是由CA颁发的,也就是说可以通过CA的公钥验证数字证书的真假。
5、证书实现的安全保证
-
机密性:通过加密实现。例如用B的公钥给A的消息加密,在互联网传输的过程中,密文是不会被破解的,只有当密文到达B时,通过B的私钥才能对密文进行解密,从而保证了消息的“机密性”。
-
不可否认性:通过加密实现。
-
完整性:通过数据签名实现。例如用A的私钥给A发送的消息加密以后发送给B,如果过程中黑客修改了消息内容,数据签名就会丢失,也就是说B用A的公钥就无法解开A发送来的密文了,这时数据签名的不正常,就会让我们发现数据被篡改过了。
-
鉴别:通过数据签名实现。例如A用A的私钥加密,只能用A的公钥解密;所以用户B无法伪造A的身份发信息,就实现了身份的鉴别。
6、加密
-
用B的公钥给A的消息加密,在互联网传输的过程中,密文是不会被破解的,只有当密文到达B时,通过B的私钥才能对密文进行解密,从而保证了消息的“机密性”。
7、签名
-
用A的私钥给A的消息加密,秘文到达B后,B只能通过A的公钥进行解密,A的公钥是公开的,所以在互联网的所有用户都能解开这个密文,但是可以确认发送消息的是A,所以这里通过A的私钥给A的消息加密,起到了“签名”的作用,标识了这个消息是A发送的。
8、签名+加密
-
如果在互联网上即想实现机密性,又想实现签名,就将“签名”和“加密”两种算法结合在一起使用。
-
先对A要发送的消息进行签名(用A的私钥对消息签名),再用B的公钥对消息进行加密;B收到消息后,先用B自己的私钥解密,再用A的公钥验证签名。
-
这就同时实现了数字证书的四个作用:机密性、不可否认性、完整性、身份的鉴别性。
七、hash+签名
-
由于非对称性加密对一个明文进行加密时,速度会比较慢;但签名又无法保证机密性。
-
所以在实际的应用过程中,会用hash算法来实现数字签名的功能,以此保证消息传输的完整性。
-
hash算法是单向的,会按约定生成固定长度的二进制位(字符位)。但只要消息的内容发生了改变,算法产生的hash的值就会不同;也就是说只有消息内容完全一样时,hash值才会一样。
-
hash+签名的基本实现原理,是对hash值进行签名,因为一旦密文内容发生变化,hash也一定会发生变化的。
-
实现思路:报文通过hash算法生成对应的hash值(报文摘要),然后对hash值进行签名(用A的私钥对hash值进行签名),然后将加密后的hash值和报文捆绑在一起进行发送;B收到以后,会先用A的公钥解密hash值(核实签名),再对报文用相同的hash算法生成另一个hash值;只要新生成的hash值与之前的hash值相等,就意味着报文内容是完整的。