新编密码学——分组密码

文章目录

  • 一、分组密码的设计思想
    • 1.1、分组密码的定义
    • 1.2、分组密码的作用
    • 1.3、分组密码的五要素
    • 1.4、分组密码的要求
    • 1.5、分组密码的设计原则
      • 1.5.1、安全性设计原则
      • 1.5.2、迭代分组密码基本设计原则
      • 1.5.3、实现性设计原则
    • 1.6、分组密码设计思想
      • 1.6.1、分组迭代密码
      • 1.6.2、分组密码的轮函数
      • 1.6.3、轮函数G—S盒与P盒实现
      • 1.6.4、迭代型密码的基本结构
  • 二、DES(重点)
    • 2.1、基本参数(重点)
    • 2.2、加密流程
    • 2.3、加密过程详细说明
      • 2.3.1、初始置换
      • 2.3.2、密钥置换
      • 2.3.3、扩展变换(E—盒)
      • 2.3.4、S-盒变换(重点)
      • 2.3.5、P-盒替换
      • 2.3.6、逆初始置换
      • 2.3.7、DES解密
    • 2.4、DES安全性分析
      • 2.4.1、互补性
      • 2.4.2、弱密钥
      • 2.4.3、半弱密钥
      • 2.4.4、双重DES
      • 2.4.5、三重DES
  • 三、AES(重点)
    • 3.1、数学基础(重点)
    • 3.2、基本参数(重点)
    • 3.3、加密过程
  • 四、IDEA,SM4,RC5
    • 4.1、IDEA
      • 4.1.1、基本参数
      • 4.1.2、加密流程
    • 4.2、SM4
      • 4.2.1、基本参数
    • 4.3、RC5
  • 五、分组密码的工作模式(记住五种模式名称)
    • 5.1、电码本模式(ECB)
    • 5.2、密文分组链接模式(CBC)
    • 5.3、密文反馈模式(CFB)
    • 5.4、输出反馈模式(OFB)
    • 5.5、计数器模式(CTR)
    • 5.6、比较

一、分组密码的设计思想

1.1、分组密码的定义

分组密码是指对固定长度的一组明文进行加密的一种加密算法,这一固定长度称为分组长度。

1.2、分组密码的作用

  • 消息加密
  • 伪造伪随机数生成器(用于产生性能良好的随机数)
  • 消息认证/数据完整性保护(通过用于构造消息认证码(MAC)来实现
  • 构造流密码
  • 构成其他密码协议的基本模块(如秘钥管理协议,身份认证协议)

1.3、分组密码的五要素

明文、密文、加密算法、解密算法、秘钥

新编密码学——分组密码_第1张图片

1.4、分组密码的要求

  • 对于每一个k,Ek : {0,1}^n --> {0,1}^n 是一一映射的
  • 加密函数易记算
  • 从方程c = E(m,k) 或 m = D(c,k)中解出k是一个困难问题

1.5、分组密码的设计原则

1.5.1、安全性设计原则

  • 混淆原则(数据关系变复杂):明文、密文、密钥之间的依赖关系相当复杂,防止密码分享者利用统计分析方法进行破译攻击
  • 扩散原则(微小输入改变导致输出多位变化):
    • 密钥的每一个比特影响密文的每一个比特,以防止对密钥进行逐段破译
    • 明文的每一个比特影响密文的每一个比特,以便最充分地隐蔽明文的统计特性。

1.5.2、迭代分组密码基本设计原则

  • 分组长度n要足够大:防止明文穷举攻击
  • 密钥长度l要足够大:尽可能不存在弱密钥和防止密钥穷举攻击
  • 加解密算法要足够复杂:实现混淆与扩散
  • 加解密运算简单:易于软硬件高速实现
  • 数据扩展:采用随机化加密等技术时,可引入。

1.5.3、实现性设计原则

  • 软件实现的设计原则
    • 将分组n划分成若干字块。子块的数据长度能自然适应软件编程,如8,16,32比特
    • 选择简单的运算,如模加、移位、异或、乘等。
  • 硬件实现的设计原则
    • 硬件实现时,应该保证加密和解密的相似性,即 加密和解密可以便用同样的器件来实现

1.6、分组密码设计思想

  • 直接构造密码学性质强的复杂函数(不常用)
  • 迭代型分组密码:构造密码学性质相对较弱的 简单函数,并且基于简单函数进行多次迭代(常用)

1.6.1、分组迭代密码

  • 每一迭代称为一轮,相应的函数G称作轮函数
  • 每一轮输入都是前一轮输出的函数
  • 其中Ki是第i轮的字密钥,由秘密密钥K作为种子密钥通过密钥扩展算法生成。

新编密码学——分组密码_第2张图片

1.6.2、分组密码的轮函数

新编密码学——分组密码_第3张图片

1.6.3、轮函数G—S盒与P盒实现

S盒:非线性部件,规模较小,局部混淆

  • 非线性关系:实现混淆
  • 规模:较小
    • DES(6进4出)
    • AES(8进8出)
    • SM4(8进8出)
  • 局部:各个S盒之间没有关联,混淆是在各个S盒之内进行的,是局部的。

P盒:线性部件,整体扩散。

1.6.4、迭代型密码的基本结构

  • Feistel结构(典型代表DES,SM4)
    • 加解密算法相同,只是轮密钥逆序使用
    • 结构保证可逆,但S盒不需要可逆
  • SPN结构(AES)
    • 加解密结构相似
    • S盒通常需要可逆
    • 扩散速度较Feistel快,因而轮数比Feistel少。

二、DES(重点)

DES是一个包含16个阶段的“替换—置换”的分组密码,以56位为分组对数据进行加密

2.1、基本参数(重点)

  • 分组长度:64比特
  • 密钥长度:64比特。实际上用户只提供56位(通常是转换成ASCII位的7个字母单词作为密钥),其他的8位由算法提供,分别放在8,16,24,32,40,48,56,64)位上。添加的位是有选择的,使得每个8位的块都含有奇数个奇偶检验位(1的个数是奇数)。
  • 轮数:16
  • 结构:Feistel结构
  • 基本思想:利用乘积密码(顺序的执行两个或多个基 本密码系统,使得最后结 果的密码强度高每个基本 密码系统产生的结果)实现混淆和扩散。

2.2、加密流程

新编密码学——分组密码_第4张图片

2.3、加密过程详细说明

2.3.1、初始置换

简称IP置换,在第一轮运算之前执行。数组打乱

2.3.2、密钥置换

DES加密算法输入的初始密钥大小为8个字节,每个字节的第8位作为检验位,所以初始密钥不考虑每个字节的第8位。实际上是对56位先进行密钥置换(顺序打乱),再通过压缩置换选出48位字密钥。

2.3.3、扩展变换(E—盒)

也被称为E-盒,将64位输入序列的右半部分Ri扩展到48位。

2.3.4、S-盒变换(重点)

经过密钥置换得到的48位轮密钥和拓展变换得到的分组进行异或运算,得到48位结果序列,对这个序列进行替换运算。替换由8个替换盒(S-盒)。每个S-盒对应6位的输入序列,得到相应的4位输出序列。每个S盒大小为64.

输入输出序列转换:

输入b1,b2, b3, b4, b5, b6 ; b1b6表示行。b2,b3b4b5表示列

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
0 10 0 9 14 6 3 15 5 1 13 12 7 11 4 2 8
1 13 7 0 9 3 4 6 10 2 8 5 14 12 11 15 1
2 13 6 4 9 8 15 3 0 11 1 2 12 5 10 14 7
3 1 10 13 0 6 9 8 7 4 15 14 3 11 5 2 12

例如输入101011 行:11 = 3,列0101 = 5 输出9 = 1001

2.3.5、P-盒替换

经S-盒替换运算得到的32位输出再进行置换,结果与本轮输入的64位分组的左半部分进行异或,得到本轮的右半部分;本轮加密输入序列的右半部分直接输出,作为本轮加密输出的左半部分。

P-盒设计特点:

  • P盒的各输入组的4个比特都分配到不同的输出组之中
  • P盒的各输入组的4个比特都 分配到不同的输出组之中
  • P盒的各输入组的4个比特都 分配到不同的输出组之中

2.3.6、逆初始置换

初始置换的逆过程。

2.3.7、DES解密

解密过程是加密的逆过程。

2.4、DES安全性分析

2.4.1、互补性

新编密码学——分组密码_第5张图片

2.4.2、弱密钥

密钥k满足

DESk(m) = DESk ^ -1 (m)

四种弱密钥:

  • k = 01 01 01 01 01 01 01 01
  • k = 1F 1F 1F 1F 1F 1F 1F 1F
  • k = E0 E0 E0 E0 E0 E0 E0 E0
  • k = FE FE FE FE FE FE FE FE

2.4.3、半弱密钥

密钥k和k`满足:

DESk(m) = DESk ^ -1 (m)。

2.4.4、双重DES

新编密码学——分组密码_第6张图片

2.4.5、三重DES

新编密码学——分组密码_第7张图片

三、AES(重点)

3.1、数学基础(重点)

AES中的运算是按字节或4字节的字定义的,并把1字节看成系数在GF(2)上的次数小于8的多项式,即是GF(2^8)中的一个元素;把一个4字节的字看成系数在GF(2 ^8)上且次数小于4的多项式。

新编密码学——分组密码_第8张图片

新编密码学——分组密码_第9张图片

新编密码学——分组密码_第10张图片

3.2、基本参数(重点)

  • 分组长度:128

  • 密钥长度及轮次

    AES-128 AES-192 AES-256
    密钥长度 128 192 256
    轮数 10 12 14

3.3、加密过程

新编密码学——分组密码_第11张图片

四、IDEA,SM4,RC5

4.1、IDEA

4.1.1、基本参数

  • 密钥长度:128
  • 分组长度:64
  • 轮数:8
  • 结构:LAI-MASSEY

4.1.2、加密流程

新编密码学——分组密码_第12张图片

新编密码学——分组密码_第13张图片

新编密码学——分组密码_第14张图片

新编密码学——分组密码_第15张图片

4.2、SM4

4.2.1、基本参数

  • 密钥长度:128
  • 分组长度:128
  • 轮数:32
  • 结构:非平衡型FEISTEL

4.3、RC5

特点:

  • 简单、加解密速度快,因为只用基本计算机运算 (模加、异或、移位等)

  • 灵活:轮数可变,密钥位数可变

    参数 定义 取值范围
    w word (字长) 一次加密2个word 16, 32, 64
    r 加密轮数 0~255
    b 密钥大小对应的字节个数 0~255

五、分组密码的工作模式(记住五种模式名称)

5.1、电码本模式(ECB)

新编密码学——分组密码_第16张图片

5.2、密文分组链接模式(CBC)

新编密码学——分组密码_第17张图片

新编密码学——分组密码_第18张图片

5.3、密文反馈模式(CFB)

新编密码学——分组密码_第19张图片

5.4、输出反馈模式(OFB)

新编密码学——分组密码_第20张图片

新编密码学——分组密码_第21张图片

5.5、计数器模式(CTR)

新编密码学——分组密码_第22张图片

5.6、比较

新编密码学——分组密码_第23张图片

你可能感兴趣的:(杂项,安全,分组密码)