是否听说过对称加密、非对称加密、摘要、数字签名、数字证书?
这些东西是如何使用的?为什么要使用这些?本文会进行一些简单的阐述并配备图片进行讲解
对称加密
采用单钥密码系统的加密方法,同一个密钥可以同时用作信息的加密和解密,这种加密方法称为对称加密,也称为单密钥加密。
-
特点:
-
速度快、效率高
-
加密方解密方持同一个密钥
-
密钥传输过程不安全
-
-
算法:
-
DES:数据加密标准,速度快,适合加密大量数据
-
3DES:基于DES,对一块数据用3个不同密钥进行3次加密,加密强度高
-
AES:高级加密标准,速度快,安全级别高,支持128、256位等密钥加密
-
-
图解:
-
流程:
-
双方事先商定密钥
-
发送方用密钥加密消息后发送给接收方
-
接收方用密钥解密获得原消息
-
-
-
缺点:密钥的商定存在隐患、密钥不易管理
非对称加密
非对称加密是指用来加密和解密的是不同的秘钥,它们是成对出现的,称为公钥和私钥,知道其中一个秘钥是无法推导出另外一个秘钥的。用公钥加密的内容需要用私钥才能解密,用私钥加密的内容需要用公钥才能解密。(没有公开的是私钥,公开的是公钥)
-
特点:
-
非对称加密的特点是安全性高
-
加密速度慢。
-
-
算法:RSA、Elliptic Curve Cryptography(ECC,椭圆曲线加密算法)、ElGamal、背包算法、Rabin、Diffie-Hellman
-
图解:(方便理解:将公钥画成锁、私钥画成钥匙,加密则给消息上锁,解密则解锁)
-
加密流程:
-
接收方已有公钥和私钥,私钥留存,公钥给消息发送方
-
发送方用公钥加密消息
-
接收方用自己私钥解密消息
-
-
-
存在问题:
-
消息是否被篡改(验证消息摘要可以解决)
-
消息是否是用户B发出(验证数字证书可以解决)
-
摘要
-
摘要算法:把任意长度的输入揉和,产生长度固定的伪随机输出的算法。(生成的输出即为摘要)
-
算法:MD5、SHA-1、以及大量变体
-
特点:
-
保证信息完整性(内容改变一个字节,生成的摘要就会改变)
-
不可逆(只能加密,不可解密)
-
数字签名
由发送方使用私钥对消息(消息摘要)进行加密,生成一个特定的签名值,并将签名值与消息一起发送给接收方。接收方可以使用发送方的公钥对签名值进行解密和验证,从而确定消息的真实性和完整性。
-
特点:
-
保证消息完整性(包含摘要)
-
保证消息真实性(只能用发送发签名解密签名)
-
-
带有数字签名的消息发送图解:
-
流程:
-
发送方用摘要算法a生成消息的摘要,并用自己的私钥加密摘要
-
接收方用发送发公钥解密数字签名获取摘要,并对文件用摘要算法a算出一个摘要
-
和数字签名中的摘要进行比对,不一致则说明文件已被篡改
-
-
-
存在问题:
消息是否是用户B发出(验证数字证书可以解决)
伪造公钥B',替换用户A的公钥B,伪造者则可以冒充用户B给用户A发送消息。因为用户A不知道公钥B已经被替换
数字证书
数字证书是一个经证书授权中心生成的文件,数字证书一般包含公钥、公钥拥有者名称、CA数字签名、有效期、CA名称、证书序列号等信息。其中CA的数字签名是验证证书是否被篡改的关键,它其实就是对证书里面除了CA的数字签名以外的内容进行摘要算法得到一个摘要,CA机构用自己的私钥对这个摘要进行加密就生成了CA数字签名,CA机构会公开它的公钥,验证证书时就是用这个公钥解密CA的数字签名,然后用来验证证书是否被篡改。
-
带有数字证书的消息发送图解:
-
流程:
-
发送方在权威机构用个人信息和公钥生成数字证书,并将数字签名、加密后的消息发送给接收方
-
接收方用权威机构的公钥解密数字证书获取发送方的公钥
-
接收方使用解密出的公钥解密数字签名获取摘要
-
接收方使用私钥A解密消息后使用摘要算法a获取消息的摘要
-
和数字签名中的摘要进行比对,不一致则说明文件已被篡改
-
-
最后
一下是我个人博客链接,感谢关注!