一,数字签名
可以实现一定程度上的身份和消息认证,检查篡改
只能由持有私有密钥的 A 来加密,但只要有公开密钥,谁都可以进行解密的密文”。
这个密文作为密码似乎没有任何意义。但是换一个角度来看就会发现,它可以保证这个密文的制作者只能是持有私有密钥的 A。
从而确认消息是公钥证书所有人发送的,而不是中间有人篡改。
但由于无法确认公钥证书的所有人是否是A,所以也有可能是某个冒充A的生成的。
过程:
A准备给B发送消息;
A 使用非对称加密方式,并把公钥证书发送给 B;
A将 消息 和数字签名发(私钥证书加密消息)送给B;
B 将收到的数字签名使用A的公钥证书解码,并于消息对比查看是否一致;
二,数字证书
数字签名 无法保证公开密钥确实是来自信息的发送者,因此就算公开密钥被第三者恶意替换,接收方也不回注意到。使用数字证书可以保证公开密钥的正确性
过程
A 持有的公开密钥 想发送给 B
1,A将自身信息和公开密钥A-P发送给认证中心CA。(A需要向认证中心CA申请发行证书,证明公开密钥A-P是由自己生成的。)
2,认证中心CA认证后使用自身的私有密钥CA-S将信息资料生成数字签名并保存
3,认证中心CA将加密后的文件发送给A,这个文件就是数字证书。
4,A将数字证书作为公开密钥发送给B
5,B收到数字证书后,通过获取到的认证中心公钥CA-P对B发出的数字证书进行解密。
解密成功证明这份证书是由认证中心发行的。
根据解密后的信息对比证明了A的身份。
通过数字证书,信息的接收者可以确认公开密钥的制作者。
B 得到的公开密钥CA-P真的来自认证中心吗?
由于公开密钥自身不能表示其制作者,所以有可能是冒充认证中心的 X 所生成的。也就是说,这里同样存在公开密钥问题。
实际上,认证中心的公开密钥 PC 是以数字证书的形式交付的,会有更高级别的认证中心对这个认证中心署名。
通过大型组织对小组织的信赖担保,树结构就建立了起来。
最顶端的认证中心被称为“根认证中心”(root CA),其自身的正当性由自己证明。
对根认证中心自身进行证明的证书为“根证书”。如果根认证中心不被信任,整个组织就无法
运转。因此根认证中心多为大型企业,或者与政府关联且已经取得了社会信赖的组织。
三,混合加密
由于非对称加密存在一个问题,就是非对称加密和解密相当耗时,通过这种方式处理加解密效率太低。
TLS对对称加密和非对称加密的流程上做了优化,把两者结合起来,使得A和B可以通过对称加密进行通信,充分利用了对称加密的高效率同时又具备非对称加密的安全性:
过程
A 生成一个非对称加密的密钥对,私钥自己保存,公钥发送给B;
B拿到这个公钥之后,再生成一个对称加密的密钥,然后把对称加密的密钥通过公钥进行加密,加密之后发送给A;
A 通过私钥进行解密;
四,国密的数字信封加解密流程
对称算法:SM4算法;
非对称算法:SM2算法;
B使用非对称算法生成的私钥,公钥
A随机生成的对称算法密钥,使用对称算法密钥对数据加密,A使用B公钥对对称算法密钥进行非对称算法加密;把加密后的对称密钥和密文组合发送给B;
B接收后使用私钥对非对称算法的密文解密,在通过解密后的对称算法的密钥对数据进行解密;