1. 消息认证码
1.1 消息认证
-
思考改进方案?
从哈希函数入手
需要将要发送的数据进行哈希运算, 将哈希值和原始数据一并发送
需要在进行哈希运算的时候引入加密的步骤
- 在alice对数据进行哈希运算的时候引入一个秘钥, 让其参与哈希运算, 生成散列值
- bob对数据校验
- bob收到原始和散列值之后,
- 处理原始数据: 通过秘钥和哈希算法对原始数据生成散列值
- 散列值比较: 生成的散列值 和 接收到的散列值进行比对
- bob收到原始和散列值之后,
1.2 消息认证码的使用步骤
1.3 go中对消息认证码的使用
1.4 消息认证码的问题
- 弊端
- 有秘钥分发困难的问题
- 无法解决的问题
- 不能进行第三方证明
- 不能防止否认
2. 数字签名
2.1 签名的生成和验证
2.2 非对称加密和数字签名
2.3 数字签名的方法
2.4 使用RSA进行数字签名
-
使用rsa生成密钥对
-
使用私钥进行数字签名
-
使用公钥进行签名认证
2.5 使用椭圆曲线进行数字签名
-
秘钥对称的生成, 并保存到磁盘
-
使用私钥进行数字签名
-
使用公钥验证数字签名