图解密码技术-CTR模式

常见的分组密码以及特点

常见的分组密码有DES、AES、SM4、Blowfish等。

分组密码的特点

  1. 分组长度固定,常见的块长度有64位、128位、256位等
  2. 可以将数据进行分组,切割为不同的数据块,每一块数据单独处理加密
  3. 使用对称密钥,加解密使用的是同一个密钥
  4. 加解密算法是确定的,相同的明文、密钥和加密算法会产生相同的密文

分组密码的工作模式

图解密码技术-对CFB模式的攻击

CFB模式简介

CFB模式全称是(Cipher FeedBack)密文反馈模式。加密方式是前一个密文分组会被送回到密码算法的输入端。简单理解就是,前一个密文分组在此加密后会当作下一次与明文异或运算的一部分,依次类推。如图:

image-20230810223911494

CFB模式的解密

因为CFB模式的加密利用了前一个密文分组,则解密的核心思路就是利用前一个明文分组的加密结果和当前密文进行异或运算得到当前明文。

文字步骤如下:

  1. 解密端获得密文块C1、C2、C3…以及一个初始向量IV。
  2. 将IV进行加密,获得第一个密钥块K1。(使用的密钥和加密算法与加密端相同)
  3. 将密钥块K1与密文块C1进行异或,得到明文块P1。
  4. 将刚刚解密得到的明文块P1再次进行加密,生成下一个密钥块K2。
  5. 将K2与下一个密文块C2进行异或,得到明文块P2。
  6. 依此类推,重复步骤4和5,直到所有密文全部解密。

图示:

image-20230814225641064

CFB模式的攻击

书中提到了一种攻击方式是重放攻击。(replay attack)

加入小美发送了一条信息,这条信息由4个密文组成。主动攻击者小明将消息的后3个密文分组保存下来,等第二天小美使用相同密钥再一次发送新消息的时候(新消息由4个新的密文组成)。小明就可以将昨天保存的密文分组进行替换。那么在解密的时候就会得到错误的信息。在真实的网络环境中,服务器与服务器之间的对话如果被攻击者利用进行重新发送或者延迟发送数据就会达到欺骗用户的目的。

图解密码技术-OFB模式

常见的分组密码以及特点

常见的分组密码有DES、AES、SM4、Blowfish等。

分组密码的特点

  1. 分组长度固定,常见的块长度有64位、128位、256位等

  2. 可以将数据进行分组,切割为不同的数据块,每一块数据单独处理加密

  3. 使用对称密钥,加解密使用的是同一个密钥

  4. 加解密算法是确定的,相同的明文、密钥和加密算法会产生相同的密文

图解密码技术-CFB模式

分组密码(Block Cipher)是一种密码对称加密算法,特点是按照固定长度的块(block)来对数据进行加密和解密。

常见的分组密码以及特点

常见的分组密码有DES、AES、SM4、Blowfish等。

分组密码的特点

  1. 分组长度固定,常见的块长度有64位、128位、256位等
  2. 可以将数据进行分组,切割为不同的数据块,每一块数据单独处理加密
  3. 使用对称密钥,加解密使用的是同一个密钥
  4. 加解密算法是确定的,相同的明文、密钥和加密算法会产生相同的密文

分组密码的工作模式

分组密码算法只能加密固定长度的分组,但是我们需要加密的明文可能会超过分组密码分组的长度,这时候就需要对明文进行切割,分成几组分别进行加密,直到所有的明文加密完成。这种方式就称之为分组密码的模式

图解密码技术-CBC模式

分组密码(Block Cipher)是一种密码对称加密算法,特点是按照固定长度的块(block)来对数据进行加密和解密。

常见的分组密码以及特点

常见的分组密码有DES、AES、SM4、Blowfish等。

分组密码的特点

  1. 分组长度固定,常见的块长度有64位、128位、256位等
  2. 可以将数据进行分组,切割为不同的数据块,每一块数据单独处理加密
  3. 使用对称密钥,加解密使用的是同一个密钥
  4. 加解密算法是确定的,相同的明文、密钥和加密算法会产生相同的密文

分组密码的工作模式

代理模式-静态代理

代理模式简述

代理模式(Proxy Pattern)是程序设计中的一种设计模式。

所谓的代理可以简单理解为是一个中介。举一个生活中常见的例子:假如小王需要请刘德华唱歌,但是小王自己联系不到刘德华本人,小王只能联系他的经纪人,那么这个经纪人就是刘德华的代理。