眩しさだけは、忘れなかった。|

图解密码技术

参考书籍:《图解密码技术:第3版》


一、对称密码和公钥密码

对称密码系统

加密

加密

解密

解密

明文

密文

密钥

明文

公钥密码系统

加密

加密

解密

解密

明文

密文

公钥

私钥

明文

公钥通信的流程

消息接收者B消息发送者A消息接收者B消息发送者A消息B的公钥B的私钥【A进行加密】消息+B的公钥→密文【B进行解密】密文+B的私钥→消息请把B的公钥发来B的公钥密文

对称密码与公钥密码的比较

项目 对称密码 公钥密码
发送者 用共享密钥加密 用公钥加密
接收者 用共享密钥解密 用私钥解密
密钥配送问题 存在(Diffie-Hellman密钥交换算法可解决) 不存在,但公钥需要另外认证
机密性
常见算法 DES、3DES、AES RSA、ElGamal、Rabin、椭圆曲线密码

Diffie-Hellman算法的有效性依赖于计算离散对数的难度,离散对数的概念:如果对于一个整数 b 和素数 p 的一个原根 a,可以找到一个唯一的指数 i,使得

b=aimodp, 0ip1

分组密码的模式

分组密码:每次只能处理特定长度的一组数据的一类密码算法。常用模式有:

  • ECB模式:电子密码本模式
  • CBC模式:密码分组链接模式
  • CFB模式:密文反馈模式
  • OFB模式:输出反馈模式
  • CTR模式:计数器模式

中间人攻击(man-in-the-middle attack)

消息接收者B中间攻击者M消息发送者A消息接收者B中间攻击者M消息发送者A消息伪消息M的公钥M的私钥B的公钥B的私钥M拦截并保存B的公钥【A进行加密】消息+M的公钥(误以为B的公钥)→密文【M拦截并解密】密文+M的公钥→消息【M伪造消息】伪消息+B的公钥→伪密文【B进行解密】伪密文+B的私钥→伪消息请把B的公钥发来B的公钥M的公钥密文伪密文

中间人攻击问题的实质是公钥分配问题,该问题的解决需要引入数字签名和证书功能。


二、混合密码系统

加密流程

生成

对称加密<明文>

对称加密<密钥>

公钥加密<明文>

公钥加密<密钥>

组合

组合

伪随机数生成器

会话密钥

消息明文

对称加密的消息密文

公钥加密的会话密钥

接收者B的公钥

会话密钥+消息密文

解密流程

分离

分离

对称解密<密文>

公钥解密<密文>

公钥解密<密钥>

对称解密<密钥>

会话密钥+消息密文

公钥加密的会话密钥

对称加密的消息密文

消息明文

会话密钥

接收者B的私钥

伪随机数生成器

随机数的分类:

随机数的种类 随机性 不可预测性 不可重现性
弱伪随机数(不可用于密码技术) x x
强伪随机数(可用于密码技术) x
真伪随机数(可用于密码技术)

随机数生成器:通过硬件生成的随机数列。

伪随机数生成器:通过软件生成的伪随机数列,需要种子(seed)对生成器的内部状态进行初始化。具体的伪随机数生成器有:

  • 线性同余法(不可用于安全相关的用途)
  • 单向散列函数法(如SHA-1等)
  • 密码法(如AES、RSA等)
  • ANSI X9.17
  • 梅森旋转算法(不可用于安全相关的用途)

三、消息鉴别——消息认证码(MAC)

消息鉴别的流程

发送方:

拼接

散列计算

散列计算

拼接

消息

消息+MAC

消息认证码MAC

共享密钥

接收方:

分离

分离

散列计算

散列计算

消息+MAC

MAC

消息

MAC

共享密钥

对比

单向散列函数

单向散列函数,又称为消息摘要函数、哈希函数:

消息
or
原像

单向散列函数
or
消息摘要函数
or
哈希函数

散列值
or
消息摘要
or
指纹

单向散列函数的常见算法:

算法 版本
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)

消息接收者B中间攻击者M消息发送者A消息接收者B中间攻击者M消息发送者A发送者根据消息计算MAC值攻击者窃听、保存接收者验证报文是否被篡改攻击者在之后时间内,不断发送窃听而来的消息消息+正确MAC消息+正确MAC消息+正确MAC消息+正确MAC

抵御重放攻击——不重数(nonce)

消息接收者B消息发送者A消息接收者B消息发送者A消息B的公钥B的私钥随机生成一个不重数R,B的私钥加密不重数R用B的公钥解密得到不重数R【A进行加密】消息+不重数R+B的公钥→密文【B进行解密并核对不重数R】密文+B的私钥→消息+不重数R下一次通信时,再随机生成另外的不重数R请把B的公钥发来B的公钥加密的不重数R密文

四、实体鉴别——数字签名与证书

数字签名的流程

发送方:

拼接

散列计算

加密

加密

拼接

消息

消息+签名

消息摘要

发送方的私钥

签名

接收方:

分离

分离

散列计算

散列计算

散列计算

消息+签名

签名

消息

消息摘要

散列值

发送方的公钥

对比

数字签名与消息认证码的比较

项目 消息认证码(MAC) 数字签名
发送方 用共享密钥计算MAC值 用私钥生成签名
接收方 用共享密钥计算MAC值 用公钥验证签名
密钥配送问题 存在 不存在,但公钥需要另外认证
完整性
认证 仅限通信双方 可适用于任何第三方
防止否认 不能防止 可以防止

证书和认证机构(CA)

B的公钥

保存证书(=B的公钥+CA的数字签名)

下载证书(=B的公钥+CA的数字签名)

消息接收者B(B生成密钥对)

可靠的认证机构CA(注册B的公钥)

仓库(证书目录)

消息发送者A(确认B公钥的合法性)


五、基于口令的密码(PBE)

加密流程

散列计算

散列计算

对称加密<明文>

对称加密<密钥>

对称加密<密钥>

对称加密<明文>

用户记忆

口令

密钥加密密钥KEK

伪随机数生成器

会话密钥CEK

KEK加密后的CEK

用会话密钥加密的消息

消息

最后,用户将“盐”和“KEK加密后的CEK”保存在安全的地方。

解密流程

散列计算

散列计算

对称解密<密钥>

对称解密<密文>

对称解密<密钥>

对称解密<密文>

用户记忆

口令

密钥加密密钥KEK

会话密钥CEK

KEK加密后的CEK

消息

用会话密钥加密的消息


六、密码软件PGP的原理

发送者A:生成数字签名并加密

生成数字签名:

散列计算

散列计算

对称解密<密钥>

对称解密<密文>

散列计算

公钥加密<明文>

公钥加密<密钥>

发送者A的记忆

口令

私钥的解密密钥

A的私钥

已加密的A的私钥

消息

消息摘要

数字签名

消息加密:

拼接

拼接

压缩

对称加密<明文>

对称加密<密钥>

公钥加密<明文>

公钥加密<密钥>

拼接

拼接

数字签名

签名+消息

消息

压缩消息

加密的压缩消息

会话密钥

伪随机数生成器

加密的会话密钥

接收者B的公钥

报文数据

接收者B:解密并验证数字签名

消息解密:

散列计算

散列计算

对称解密<密钥>

对称解密<密文>

分解

公钥解密<密钥>

公钥解密<密文>

对称解密<密钥>

分解

对称解密<密文>

接收者B的记忆

口令

私钥的解密密钥

B的私钥

已加密的B的私钥

报文数据

加密的会话密钥

会话密钥

压缩消息

加密的压缩消息

验证数字签名:

解压缩

分解

分解

散列计算

公钥解密<密文>

公钥解密<密钥>

压缩消息

消息+签名

数字签名

消息

消息摘要

散列值

A的公钥

对比

本文作者:漫舞八月(Mount256)

本文链接:https://www.cnblogs.com/Mount256/p/18005005

版权声明:本作品采用CC 4.0 BY-SA许可协议进行许可。

posted @   漫舞八月(Mount256)  阅读(45)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示
评论
收藏
关注
推荐
深色
回顶
展开
  1. 1 Main Menu Theme Syd Matters
  2. 2 Luminous Memory (Acyanxi Remix) Acyanxi
  3. 3 夏影 麻枝准
  4. 4 潮騒の香り 水月陵
  5. 5 stand still 井口裕香 (いぐち ゆか)
  6. 6 流星雨 麻枝准
  7. 7 Summer Fantasy 傅许
  8. 8 失う 米白
  9. 9 epilogue 霜月はるか
  10. 10 夏に君を待ちながら 小原好美
  11. 11 桜のような恋でした 鹿乃 (かの)
  12. 12 風は微かに、熱を残し… 水月陵
  13. 13 夏凪ぎ 麻枝准/やなぎなぎ
  14. 14 空に光る 戸越まごめ
  15. 15 木漏れ日 riya
  16. 16 Songbirds Homecomings (ホームカミングス)
  17. 17 宝物になった日 麻枝准/やなぎなぎ
  18. 18 夏影~あの飛行機雲を超えた、その先へ~ 雪桜草 (雪樱草)
  19. 19 快晴 Orangestar (蜜柑星P),初音未来 (初音ミク)
  20. 20 永遠 霜月はるか
  21. 21 Sion 天門
  22. 22 遙かな年月-piano- 麻枝准
  23. 23 夏恋慕 kobasolo/春茶
  24. 24 夏凪ぎ-piano ver.- MANYO/麻枝准
  25. 25 Goodbye Seven Seas -piano ver.- MANYO/麻枝准
  26. 26 Light Years 麻枝准/やなぎなぎ
  27. 27 優しさの記憶 鹿乃 (かの)
夏影 - 麻枝准
00:00 / 00:00
An audio error has occurred, player will skip forward in 2 seconds.