图解密码技术
目录
参考书籍:《图解密码技术:第3版》
一、对称密码和公钥密码
对称密码系统
公钥密码系统
公钥通信的流程
对称密码与公钥密码的比较
项目 | 对称密码 | 公钥密码 |
---|---|---|
发送者 | 用共享密钥加密 | 用公钥加密 |
接收者 | 用共享密钥解密 | 用私钥解密 |
密钥配送问题 | 存在(Diffie-Hellman密钥交换算法可解决) | 不存在,但公钥需要另外认证 |
机密性 | 好 | 好 |
常见算法 | DES、3DES、AES | RSA、ElGamal、Rabin、椭圆曲线密码 |
Diffie-Hellman算法的有效性依赖于计算离散对数的难度,离散对数的概念:如果对于一个整数 和素数 的一个原根 ,可以找到一个唯一的指数 ,使得
分组密码的模式
分组密码:每次只能处理特定长度的一组数据的一类密码算法。常用模式有:
- ECB模式:电子密码本模式
- CBC模式:密码分组链接模式
- CFB模式:密文反馈模式
- OFB模式:输出反馈模式
- CTR模式:计数器模式
中间人攻击(man-in-the-middle attack)
中间人攻击问题的实质是公钥分配问题,该问题的解决需要引入数字签名和证书功能。
二、混合密码系统
加密流程
解密流程
伪随机数生成器
随机数的分类:
随机数的种类 | 随机性 | 不可预测性 | 不可重现性 |
---|---|---|---|
弱伪随机数(不可用于密码技术) | √ | x | x |
强伪随机数(可用于密码技术) | √ | √ | x |
真伪随机数(可用于密码技术) | √ | √ | √ |
随机数生成器:通过硬件生成的随机数列。
伪随机数生成器:通过软件生成的伪随机数列,需要种子(seed)对生成器的内部状态进行初始化。具体的伪随机数生成器有:
- 线性同余法(不可用于安全相关的用途)
- 单向散列函数法(如SHA-1等)
- 密码法(如AES、RSA等)
- ANSI X9.17
- 梅森旋转算法(不可用于安全相关的用途)
三、消息鉴别——消息认证码(MAC)
消息鉴别的流程
发送方:
接收方:
单向散列函数
单向散列函数,又称为消息摘要函数、哈希函数:
单向散列函数的常见算法:
算法 | 版本 |
---|---|
MD | MD4、MD5 |
SHA | SHA-1、SHA-2(SHA-224、SHA-256、SHA-512/224、SHA-512/256、SHA-384、SHA-512)、SHA-3(Keccak) |
RIPEMD | RIPEMD-160、RIPEMD-128、RIPEMD-256、RIPEMD-320 |
重放攻击(replay attack)
抵御重放攻击——不重数(nonce)
四、实体鉴别——数字签名与证书
数字签名的流程
发送方:
接收方:
数字签名与消息认证码的比较
项目 | 消息认证码(MAC) | 数字签名 |
---|---|---|
发送方 | 用共享密钥计算MAC值 | 用私钥生成签名 |
接收方 | 用共享密钥计算MAC值 | 用公钥验证签名 |
密钥配送问题 | 存在 | 不存在,但公钥需要另外认证 |
完整性 | 好 | 好 |
认证 | 仅限通信双方 | 可适用于任何第三方 |
防止否认 | 不能防止 | 可以防止 |
证书和认证机构(CA)
五、基于口令的密码(PBE)
加密流程
最后,用户将“盐”和“KEK加密后的CEK”保存在安全的地方。
解密流程
六、密码软件PGP的原理
发送者A:生成数字签名并加密
生成数字签名:
消息加密:
接收者B:解密并验证数字签名
消息解密:
验证数字签名:
本文作者:漫舞八月(Mount256)
本文链接:https://www.cnblogs.com/Mount256/p/18005005
版权声明:本作品采用CC 4.0 BY-SA许可协议进行许可。
分类:
【其他】读书笔记
, 【专业课】计算机专业基础课
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步