当前位置:   article > 正文

新编密码学——分组密码_新编密码学知识点

新编密码学知识点

一、分组密码的设计思想

1.1、分组密码的定义

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

1.2、分组密码的作用

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

1.3、分组密码的五要素

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

在这里插入图片描述

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作为种子密钥通过密钥扩展算法生成。

在这里插入图片描述

1.6.2、分组密码的轮函数

在这里插入图片描述

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、加密流程

在这里插入图片描述

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表示列

0123456789101112131415
01009146315511312711428
11370934610285141211151
21364981530111212510147
31101306987415143115212

例如输入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、互补性

在这里插入图片描述

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

在这里插入图片描述

2.4.5、三重DES

在这里插入图片描述

三、AES(重点)

3.1、数学基础(重点)

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

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

3.2、基本参数(重点)

  • 分组长度:128

  • 密钥长度及轮次

    AES-128AES-192AES-256
    密钥长度128192256
    轮数101214

3.3、加密过程

在这里插入图片描述

四、IDEA,SM4,RC5

4.1、IDEA

4.1.1、基本参数

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

4.1.2、加密流程

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

4.2、SM4

4.2.1、基本参数

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

4.3、RC5

特点:

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

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

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

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

5.1、电码本模式(ECB)

在这里插入图片描述

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

在这里插入图片描述

在这里插入图片描述

5.3、密文反馈模式(CFB)

在这里插入图片描述

5.4、输出反馈模式(OFB)

在这里插入图片描述

在这里插入图片描述

5.5、计数器模式(CTR)

在这里插入图片描述

5.6、比较

在这里插入图片描述

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/从前慢现在也慢/article/detail/226271?site
推荐阅读
相关标签
  

闽ICP备14008679号