笔记:Modern Cryptography
一、Backlog
详见: https://www.processon.com/view/link/69b8c34cf1f9d079f908c814
二、Ai Prompt
1 | |
三、Related Link
Mind Map LinkWikipedia Link
1.Hexo Blog LinkArchitecture Diagram Link
四、Related Attachement
eddx
五、Public-key cryptography
1. 📄 概述
Public-key cryptography 是指:基于一对密钥,对数据进行操作
2. 📄 基本用法
- 同钥协商
- 公钥上封-私钥解封
- 私钥加签-公钥解签
2.1. 同钥协商
2.1.1. 📄 实现方式
2.1.1.1. 方式・壹
2.1.1.1.1. 📄 相关流程
- 发送方
- 首先,将公钥_1发送给接收方
- 然后,当接收到来自接收方的公钥_2时,基于私钥_1,使用协商算法,将公钥_2 -> 同钥
- 接收方
- 首先,将公钥_2发送给发送方
- 然后,当接收到来自发送方的公钥_1时,基于私钥_2,使用协商算法,将公钥_1 -> 同钥

2.1.1.2. 方式・贰
2.1.1.2.1. 📄 相关流程
- 发送方
- 首先,基于公钥,使用上封算法,将同钥 -> 密文
- 然后,将密文发送给接收方
- 接收方
- 当接收到来自发送发的密文后,基于私钥,使用解封算法,将密文 -> 同钥

- 当接收到来自发送发的密文后,基于私钥,使用解封算法,将密文 -> 同钥
2.2. 公钥上封-私钥解封
2.2.1. 📄 相关流程
- 发送方
- 首先,基于公钥,使用上封算法,将明文 -> 密文
- 然后,将密文发送给接收方
- 接收方
- 当接收到来自发送方的密文后,基于私钥,使用解封算法,将密文 -> 明文

- 当接收到来自发送方的密文后,基于私钥,使用解封算法,将密文 -> 明文
📄 优劣分析
优势
劣势
2.3. 私钥加签-公钥鉴签
2.3.1. 📄 实现方式
- 方式・壹:私钥加签-公钥解签
- 方式・贰:私钥加签-公钥验签
2.3.1.1. 方式・壹:私钥加签-公钥解签
2.3.1.1.1. 📄 相关流程
- 发送方
- 首先,使用哈希函数,将明文 -> 哈希值_1
- 然后,基于私钥,使用加签算法,将哈希值_1 -> 签名
- 接着,将(签名、明文)发送给接收方
- 接收方
- 首先,当接收到来自发送方的(签名、明文)后
- 基于公钥,使用解签算法,将签名 -> 哈希值_1
- 使用哈希函数,将明文 -> 哈希值_2
- 然后,将(哈希值_1、哈希值_2)进行对比
- 首先,当接收到来自发送方的(签名、明文)后

2.3.1.2. 方式・贰:私钥加签-公钥验签
2.3.1.2.1. 📄 相关流程
- 发送方
- 首先,使用哈希函数,将明文 -> 哈希值_1
- 然后,基于私钥,使用加签算法,将哈希值_1 -> 签名
- 接着,将(签名、明文)发送给接收方
- 接收方
- 首先,当接收到来自发送方的(签名、明文)后,使用哈希函数,将明文 -> 哈希值_2
- 然后,基于(签名、公钥、哈希值_2),使用验签算法,获得
Boolean data type

六、Symmetric-key algorithm
1. 📄 概述
Symmetric-key algorithm 是指:基于一个密钥,对数据进行操作
2. 📄 基本用法
- 数据上封
- 数据加签
2.1. 数据上封
2.1.1. 📄 相关分类
2.1.1.1. Block cipher
2.1.1.1.1. 📄 相关流程
1.
Block cipher 是指:
- 发送方
- 首先,将数据切分为多个长度相同的数据块
- 然后,使用上封算法,将每个数据块 -> 密文块
- 接着,拼接所有的密文块,生成密文
- 接收方
2.1.1.1.2. 📄 实现方式
详见: https://en.wikipedia.org/wiki/Block_cipher_mode_of_operation
2.1.1.1.3. 📄 适用场景
- 杜绝误码
- 硬件资源充足
- 需要离线处理数据
- 需要处理的数据的长度固定
2.1.1.2. Stream cipher
2.1.1.2.1. 📄 相关流程
Stream cipher 是指:
- 发送方
- 以长度较小的数据为一个数据块,源源不断的使用特定的算法,将数据块 -> 密文块
- 接收方
- 源源不断的使用解封算法,将密文块 -> 数据块
2.1.1.2.2. 📄 适用场景
- 容忍误码
- 硬件资源受限
- 需要实时处理数据
- 需要处理的数据的长度未知
2.1.2. 📄 相关流程
- 发送方
- 首先,基于同钥,使用上封算法,将明文 -> 密文
- 然后,将密文发送给接收方
- 接收方
- 当接收到来自发送方的密文时,基于同钥,使用解封算法,将密文 -> 明文

- 当接收到来自发送方的密文时,基于同钥,使用解封算法,将密文 -> 明文
2.2. 数据加签
2.2.1. 📄 实现方式
2.2.1.1. 方式・壹
2.2.1.1.1. 📄 相关流程
- 发送方
- 首先,使用哈希函数,将明文 -> 哈希值_1
- 然后,基于同钥,使用加签算法,将哈希值_1 -> 签名
- 接着,将(签名、明文)发送给接收方
- 接收方
- 当接收到来自发送方的(签名、明文)后
- 基于同钥,使用解签算法,将签名 -> 哈希值_1
- 使用哈希函数,将明文 -> 哈希值_2
- 然后,将(哈希值_1、哈希值_2)进行对比

- 当接收到来自发送方的(签名、明文)后
2.2.1.2. 方式・贰
2.2.1.2.1. 📄 相关流程
- 发送方
- 首先,使用哈希函数,将明文 -> 哈希值_1
- 然后,基于同钥,使用加签算法,将哈希值_1 -> 签名_1
- 接着,将(签名_1、明文)发送给接收方
- 接收方
- 当接收到来自发送方的(签名_1、明文)后
- 使用哈希函数,将明文 -> 哈希值_2
- 基于同钥,使用加签算法,将哈希值_2 -> 签名_2
- 然后,将(签名_1、签名_2)进行对比

- 当接收到来自发送方的(签名_1、明文)后
2.2.1.3. 方式・參
2.2.1.3.1. 📄 相关流程
- 发送方
- 首先,使用哈希函数,将(明文、同钥)-> 哈希值_1
- 然后,将(哈希值_1、明文)发送给接收方
- 接收方
- 当接收到来自发送方的(哈希值_1、明文)后,使用哈希函数,将(明文、同钥) -> 哈希值_2
- 然后,将(哈希值_1、哈希值_2)进行对比

2.2.1.4. 方式・肆
2.2.1.4.1. 📄 相关流程
- 发送方
- 首先,基于同钥,使用加签算法,将明文 -> 签名_1
- 然后,将(签名_1、明文)发送给接收方
- 接收方
- 在接收到来自发送方的(签名_1、明文)后,基于同钥,使用加签算法,将明文 -> 签名_2
- 然后,将(签名_1、签名_2)进行对比

笔记:Modern Cryptography
https://wangjia5289.github.io/2026/03/16/笔记:ModernCryptography/
