对称加密
对称加密是指加密key和解密key 相同
算法有AES(AES128、AES256都是AES算法只有key长度不同)、DES(key为56位)、3DES(改进版的DES算法,其中使用三个56位密钥来加密信息)SM1 (key128位,但是需要硬件支持) 等等
非对称加密
该算法会生成两个key 一个公钥一个私钥 (公钥私钥无法相互推导出对方)公钥加密 私钥解密,私钥加密公钥解密但是加密速度比较慢 ,一般用于加解密对称加密的秘钥 (公钥加密私钥解密)和证书签名(私钥加密公钥解密)
算法有RSA、DSA、ECC(椭圆曲线密码机制)、SM2(基于ECC但是更快更好)
如何加密通信
1、甲和乙通信内容要进行加密 如何加密那 使用对称加密 因为非对称太慢了
2、那如何约定双方一致的对称加密key那
3、用非对称加密 甲把甲的公钥发给乙 ,乙用公钥加密key ,然后把加密的数据发给甲
4、甲用甲的私钥解密 获取key
5、甲乙都有key 那么可以进行对称加密了
但是这样就有一个问题 如何保证乙收到的公钥是甲的 ?可以手工确认
但是 有何保证收到的甲丙丁...的公钥是的真实性? 答需要一个第三方来验证 这个第三方就是数字证书颁发机构
这里在引入三个概念
哈希算法
也叫散列算法对一个数据生成一个值(消息摘要) 此值可以标识原数据 ,如果原数据修改了(哪怕一点点)经过哈希计算那么值会发现巨大变化故此一般用于完整性校验,和数字签名
算法有MD5(生成128位的哈希值)、SHA1(生成160位哈希值)、SHA256(生成256位哈希值)SM3 (生成256位哈希值)。
数字证书:
1、每个客户端根据非对称加密产生公钥私钥
2、客户端获取数字证书颁发机构(Certificate Authority,CA)的公钥并确认(数字证书颁发机构的公钥即根证书,根证书中只有公钥没有哈希值 用于验证其他证书的 并且默认情况下存储在浏览器、操作系统和应用程序的信任存储库中。)
3、客户端提交公钥给数字证书颁发机构
4、数字证书颁发机构将公钥进行哈希 生成哈希值后 用私钥加密哈希生成数字签名
5、数字证书颁发机构将 数字签名+明文公钥+算法信息+有效期+...信息一起打包生成了 数字证书
6、颁发证书给甲
7、甲把证书发给乙 ,乙用数字证书颁发机构的公钥解密数字签名得到哈希值1 并对证书里的明文公钥进行哈希 得到哈希值2 如果哈希值1=哈希值2 说明什么?
说明
1、甲的证书是数字证书颁发机构颁发的 因为可以用数字证书颁发机构的公钥解密
2、说明没有人篡改过 篡改了哈希对不上
以上就是PKI的简单流程省略了很多哈
总结
PKI是公钥基础设施(Public Key Infrastructure),它是一种用于创建、管理和验证加密密钥对的体系结构和框架。PKI旨在提供安全的身份验证和加密服务,以确保通信的保密性、完整性和身份验证。