密码基础知识(3)---对称密码体制

目录

一、对称密码概念

二、别名

三、对称密码体制的优缺点:

1、对称密码体制的缺点:

2、对称密码体制的优点:

四、对称密码的分类

1、序列密码

2、分组密码

五、分组密码的分组模式

1、ECB模式:Electronic CodeBook mode(电子密码本模式)

(1)特点:

(2)对ECB的攻击方式:

2、CBC 模式:Cipher Block Chaining mode (密码分组链接模式)

3、CFB 模式:Cipher FeedBack mode (密文反馈模式)

4、OFB模式:Output FeedBack mode( 输出反馈模式)

5、CTR模式:CounTeR mode(计数器模式)

 六、分组模式对比

七、术语解释



一、对称密码概念

对称加密(也叫私钥加密)指加密和解密使用相同密钥的加密算法。有时又叫传统密码算法,就是加密密钥能够从解密密钥中推算出来,同时解密密钥也可以从加密密钥中推算出来。而在大多数的对称算法中,加密密钥和解密密钥是相同的。

二、别名

别名:对称密码体制--共享密钥密码--对称加密算法--私钥加密算法--秘密密钥算法--单密钥算法-- 传统密码算法 

三、对称密码体制的优缺点

1、对称密码体制的缺点

  1. 密钥分发需要安全通道。发送方如何安全、高效地把密钥送到接收方是对称密码体制的软肋,对称密钥的分发过程往往很烦琐,需要付出的代价较高。

  2. 密钥量大,难以管理。多人用对称密码算法进行保密通信时,将极大地增加密钥管理(包括密钥的生成、使用、存储、备份、存档、更新等)的复杂性。

  3. 难以解决不可否认的问题。因为通信双方拥有同样的密钥,所以接收方可以否认接收到某消息,发送方也可以否认发送过某消息,即对称密码体制很难解决鉴别认证和不可否认的问题。

  4. 密钥交换缺乏安全性保证。如果密钥交换不安全,密钥的安全性就会丧失。特别是在电子商务环境下,当客户是未知的、不可信的实体时,如何使客户安全地获得密钥就成为一大难题。

2、对称密码体制的优点

  1. 加密和解密的速度都比较快,具有很高的数据吞吐率,不仅软件能实现较高的吞吐率,还易于硬件实现,硬件加密 / 解密的处理速度更快。

  2. 对称密码体制容易实现。根据对称密码体制中只存在一个单一的密钥的这种特性,单钥加解密算法可通过低费用的芯片来实现,特别是便于硬件实现和大规模生产。

  3. 对称密码体制中使用的密钥相对较短。

  4. 密文的长度往往与明文长度相同。

四、对称密码的分类

对称密码分为:序列密码和分组密码

1、序列密码

(1)常见的序列密码:

国内ZUC
国外
SNOW(如 SNOW2.0、SNOW 3G)、RC4

(2) 序列密码概念

 将明文消息按字符逐位进行加密。

  利用密钥产生一个密钥流Z=Z1Z2Z3…,然后利用此密钥流依次对明文X=X0X1X2...进行加密,这样产生的密码就是序列密码,也称流密码。密钥流由密钥流发生器f产生:zi=f(k,si),这里的si是加密器中存储器(记忆元件)在i时刻的状态,k是密钥。序列密码方案的发展是模仿“一次一密”系统的尝试。

2、分组密码

(1)常见的分组密码:

国内SM4
国外
数据加密标准(DES),三重数据加密算法(TDEA,也称 3DES),高级加密标准(AES)

(2)分组密码 概念

在分组密码中将明文消息分组(每组有多个字符),逐组进行加密。

  分组密码(block cipher)的数学模型是将明文消息编码表示后的数字(简称明文数字)序列,划分成长度为n的组(可看成长度为n的矢量),每组分别在密钥的控制下变换成等长的输出数字(简称密文数字)序列。

序列密码分组密码
加密方式将明文消息按字符逐位进行加密。在分组密码中将明文消息分组(每组有多个字符),逐组进行加密。
优点
  • 转换速度快
  • 低错误传播
  • 硬件实现电路更简单
  • 扩散性好
  • 插入敏感
缺点
  • 低扩散(意味着混乱不够)
  • 插入及修改的不敏感性
  • 加解密处理速度慢
  • 存在错误传播
适用场景世界军事、外交等领域构造伪随机数生成器、流密码、认证密码和哈希函数
不适用场景不适用于资源受限、低功耗、物联网等新的应用场景

五、分组密码的分组模式

在GB/T 17964-2021 信息安全技术 分组密码算法的工作模式中分组模式共有9种

  1. 电码本(Electronic Code Book,ECB)模式
  2. 密文分组链接(Cipher BlockChaining,CBC)模式
  3. 密文反馈(Cipher Feedback,CFB)模式
  4. 输出反馈(Output Feedback,OFB)模式
  5. 计数器(Counter,CTR)模式
  6. 分组链接(Block Chaining,BC)模式
  7. 带密文挪用的 XEX可调分组密码模式 (XTS)
  8. 带泛杂凑函数的计数器(HCTR)模式
  9. 带非线性函数的输出反馈(OutputFeedback with a Nonlinear Function,OFBNLF)模式

本次主要介绍其中的五种

1、ECB模式:Electronic CodeBook mode(电子密码本模式)

(1)特点:

  • 将明文分组加密之后的结果将直接成为密文分组。
  • 相同的密文分组会被转换成相同的明文分组。(根据重复的明文分组可以作为线索来推测密文,存在一定的风险)
  • 当最后一个明文分组的内容小于分组长度时,需要用一些特定的数据进行填充( padding)

(2)对ECB的攻击方式:

修改密文分组顺序,相应的明文也会改变,攻击者无需破译密码就能操纵明文

2、CBC 模式:Cipher Block Chaining mode (密码分组链接模式)

在 CBC 模式中,首先将明文分组与前一个密文分组进行XOR 运算,然后再进行加密。(XOR :异或运算)

其中涉及的初始向量为:随机产生的长度为分组长度的随机比特序列。

(1)特点:

  • 无法对中间的明文分组进行加密。
  • 密文分组中有一个分组损坏了(例如由于硬盘故障导致密文分组的值发生了改变等 )。在这种情况下,只要密文分组的长度没有发生变化,则解密时最多只会有 2个分组受到数据损坏的影响

(2)对CBC的攻击方式:

  • 填充提示攻击

填充提示攻击( Padding Oracle Attack )是一种利用分组密码中的填充部分来进行攻击的方法。在分组密码中,当明文长度不为分组长度的整数倍时,需要在最后一个分组中填充一些数据使其凑满一个分组长度。在填充提示攻击中,攻击者会反复发送一段密文,每次发送时都对填充的数据进行少许改变。由于接收者(服务器)在无法正确解密时会返回一个错误消息,攻击者通过这一错误消息就可以获得一部分与明文相关的信息。这一攻击方式并不仅限于 CBC 模式而是适用于所有需要进行分组填充的模式。

  • 初始向量攻击

3、CFB 模式:Cipher FeedBack mode (密文反馈模式)

(1)特点:

  • 前一个密文分组会被送回到密码算法的输入端。所谓反馈,这里指的就是返回输人端的意思。
  • 明文分组没有通过密码算法直接进行加密
  • 明文数据可以被逐比特加密,因此我们可以将 CFB 模式看作是一种使用分组密码来实现流密码的方式。
  • 密码算法的输出相当于一次性密码本中的随机比特序列。由于密码算法的输出是通过计算得到的,并不是真正的随机数,因此 CFB 模式不具备像一次性密码本那样理论上不可破译的性质。

(2)对ECB的攻击方式:

  • 重放攻击

4、OFB模式:Output FeedBack mode( 输出反馈模式)

(1)特点:

  • 密码算法的输出会返回到密码算法的输入中
  • 通过将“明文分组”和“密码算法的输出”进行 XOR 来产生“密文分组”

 

5、CTR模式:CounTeR mode(计数器模式)

(1)特点:

  • CTR模式是一种通过将逐次累加的计数器进行加密来生成密钥流的流密码。
  • 每个分组对应一个逐次累加的计数器,并通过对计数器进行加密来生成密钥流。也就是说,最终的密文分组是通过将计数器加密得到的比特序列,与明文分组进行 XOR 而得到的。
  • CTR 模式中可以以任意顺序对分组进行加密和解密,因此在加密和解密时需要用到的“计数器”的值可以由 nonce 和分组序号直接计算出来。
  • 能够以任意顺序处理分组,可以实现并行计算。在支持并行计算的系统中,CTR模式的速度是非常快的。

(2)对CTR的攻击方式: 

     比特反转:

      CTR 模式的密文分组中有一个比特被反转了,则解密后明文分组中仅有与之对应的比特会被反转,这一错误不会放大。

 

 六、分组模式对比

模式名称优点缺点备注
ECB
模式
 
Electronic
CodeBook
电子密码本模式
 
  • 简单
  • 快速
  • 支持并行计算(加密、解密)
  • 明文中的重复排列会反映在密文中
  • 通过删除、替换密文分组可以对明文进行操作
  • 对包含某些比特错误的密文进行解密时,对应的分组会出错
  • 不能抵御重放攻击
不应使用
CBC模式
 
Cipher BlockChaining
密文分组链接模式
 
  • 明文的重复排列不会反映在密中
  • 支持并行计算(仅解密)
  • 能够解密任意密文分组
  • 对包含某些错误比特的密文进行解密时,第一个分组的全部比特以及后一个分组的相应比特会出错
  • 加密不支持并行计算
CRYPTREC 推荐;《实用密码学》推荐
CFB模式
 
Cipher-FeedBack密文反馈模式
  • 不需要填充(padding)
  • ·支持并行计算(仅解密)
  • 能够解密任意密文分组
  • 加密不支持并行计算
  • 对包含某些错误比特的密文进行解密时,第一个分组的全部比特以及后一个分组的相应比特会出错
  • 不能抵御重放攻击
CRYPTREC推荐
OFB
模式



 
Output-FeedBack输出反馈模式
  • 不需要填充(padding)
  • 可事先进行加密、解密的准备
  • 加密、解密的使用相同结构
  • 对包含某些错误比特的密文进行解密时,只有明文中相对应的比特会出错
  • 不支持并行计算
  • 主动攻击者反转密文分组中的某些比特时,明文分组中相对应的比特也会被反转
CRYPTREC 推荐
CTR
模式

·

 
CounTeR
计数器模式
  • 不需要填充(padding )
  • 可事先进行加密、解密的准备
  • 加密、解密使用相同结构
  • 对包含某些错误比特的密文进行解密时,只有明文中相对应的比特会出错
  • 支持并行计算(加密、解密)

主动攻击者反转密文分组中的某些比特时,明文分组中相对应的比特也会被反转

CRYPTREC 推荐《实用密码学》推荐

七、术语解释

1、初始向量initialization vector
IV
在密码变换中,为增加安全性或使密码设备同步而引入的用于数据变换的起始数据

2、计数器 counter
长度为  比特的比特序列,用于计数器模式注:n 是分组密码的分组长度

3、填充 padding

给一个数据串附加额外比特的操作

  • 3
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

midsummer_woo

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值