当前位置 : 主页 > 编程语言 > 其它开发 >

密码学-分组密码

来源:互联网 收集:自由互联 发布时间:2022-06-07
视频:地址 本章主要内容:分组密码定义、分组密码的发展历史、保密系统的安全性分析及分组密码的攻击方式、DES、AES、SM4、分组密码的运行模式 规定:在以下算法中,信息都转化

视频:地址

本章主要内容:分组密码定义、分组密码的发展历史、保密系统的安全性分析及分组密码的攻击方式、DES、AES、SM4、分组密码的运行模式

规定:在以下算法中,信息都转化为二进制流的数据流处理,即message=(0,1)

分组密码定义

分组密码算法是现代密码学中的重要体制之一,其主要任务是提供数据保密性

分组密码加解密速度快(相比于公钥密码)

分组密码应用广泛,可用于构造伪随机数生成器、流密码、认证密码和哈希函数等

分组密码的发展历史

二十世纪之前的密码算法:算法、密钥保密

二十世纪之后的密码算法:密码算法公开,密钥保密

密码算法为什么要公开?

1、民用

2、无陷门

3、安全强度高

4、标准化通信

DES(数据加密标准),由IBM给出

AES(高级数据加密标准),分组长度128,支持可变密钥长度为128、192、256比特

保密系统的安全性及分组密码的攻击方式 分组密码设计准则

1、迭代结构

选择较为简单的密码变换,在密钥控制下以迭代方式多次利用它进行加密变换,就可以实现预期的扩散和混乱的结果

2、混淆

在加密变换过程中是明文、密钥以及密文之间的关系尽可能的复杂化,以防止密码破译者采用统计分析法进行破译。

3、扩散

明文和密钥中任意比特值改变,都会在某种程度上影响到密文值的变化,以防止将密钥分解成若干个孤立的小部分,然后各个击破。

分析方式

1、唯密文攻击

密码分析者有一个或更多的用同一个密钥加密的密文,通过对这些截获的密文进行分析得出明文或密钥。

难度最大,几乎是不可能的!

2、已知明文攻击

分析者除知道一些带解密的密文外,还有一些明文和用同一个密钥加密这些明文所对应的密文(之前在加密机房待过,知道一些明文和密文的对应信息,现在出来了,给出一些密文,去分析得出明文或密钥)。

属于被动攻击! 

3、选择明文攻击

密码分析者可得到所需要的任何明文所对应的密文,这些密文与待解密的密文是用同一个密钥加密得来的(之前在加密机房待过,现在还在加密机房,给出一些密文,去分析得出明文或密钥)。

4、选择密文攻击

密码分析者可得到所需要的任何密文所对应的明文,解密这些密文所使用的密钥与解密待解密的密文的密钥一样(之前在解密机房待过,现在出来了,给出一些密文,去分析得出明文或密钥)。

最简单的

5、自适应选择明文攻击

密码分析者可得到所需的任何明文所对应的密文,这些密文与待解密的密文是用同一个密钥加密得来的,明文可以在看到加密机的返回结果后随时选取。

6、自适应选择密文攻击

密码分析者可得到所需的任何密文所对应的明文,这些密文与待解密的密文是用同一个密钥加密得来的,密文可以在看到解密机的返回结果后随时选取。

属于主动攻击! 

攻击方式

1、穷举法

2、差分分析

3、线性分析

4、相关性分析

5、侧信道分析

DES 概述

1、明文和密文分组长度为64bit

2、算法包含:迭代加解密和秘钥编排

3、Feistel结构:加密和解密除密钥编排不同外,完全相同

4、密钥长度:56bit(DES的密钥空间:2^56),每7bit后为一个奇偶校验位(第8位),共64bit

5、轮函数采用混乱和扩散的组合,共16轮

整体结构

IP置换

16轮迭代

Feistel结构,按照如下规则进行16次迭代

f是轮函数,k是子密钥

IP逆置换

轮函数

E扩展

AES 概述 

1、明文长度:128/256bit,密文长度:128/192/256bit

2、SPN结构:轮函数包括代换层-置换层-密钥混合层

3、密钥长度:128bit,10轮

更多:

1、AES数学基础

2、AES 逻辑 

SM4

无线局域网密码算法,明文和密文分组长度为128bit,广义Feistel结构,基本操作单元为32bit

更多:

1、SM4原理介绍

2、SM4代码实现

加密模式 

参考:https://blog.csdn.net/huangjinjin520/article/details/122725745

电码本模式 (Electronic Code Book,ECB)

这种模式是最早采用和最简单的模式,它将加密的数据分成若干组,每组的大小跟加密密钥长度相同,然后每组都用相同的密钥进行加密

优点:

1.简单;

2.有利于并行计算;

3.误差不会被传送;

缺点:

1.不能隐藏明文的模式;

2.可能对明文进行主动攻击;

电码本模式用一个密钥加密消息的所有块,如果原消息中重复明文块,则加密消息中的相应密文块也会重复【重放攻击】,因此,电码本薄模式适于加密小消息。

密码反馈模式(Cipher Feedback Mode,CFB)

面向字符的应用程序的加密要使用流加密法,可以使用密码反馈模式。在此模式下,数据用更小的单元加密,如可以是8位,这个长度小于定义的块长(通常是64位)。其加密步骤是:

a)使用64位的初始化向量,初始化向量放在移位寄存器中,在第一步加密,产生相应的64位初始化密文;
b)始化向量最左边的8位与明文前8位进行异或运算,产生密文第一部分(假设为c),然后将c传输到接收方;

c)向量的位(即初始化向量所在的移位寄存器内容)左移8位,使移位寄存器最右边的8位为不可预测的数据,在其中填入c的内容;

d)第1-3步,直到加密所有的明文单元。

解密过程相反

优点:

1.隐藏了明文模式;

2.分组密码转化为流模式;

3.可以及时加密传送小于分组的数据;

缺点:

1.不利于并行计算;

2.误差传送:一个明文单元损坏影响多个单元;

3.唯一的IV;

密码分组链接模式(Cipher Block Chaining,CBC)

CBC模式的加密首先也是将明文分成固定长度的块,然后将前面一个加密块输出的密文与下一个要加密的明文块进行异或操作,将计算结果再用密钥进行加密得到密文。第一明文块加密的时候,因为前面没有加密的密文,所以需要一个初始化向量。跟ECB方式不一样,通过连接关系,使得密文跟明文不再是一一对应的关系,破解起来更困难,而且克服了只要简单调换密文块可能达到目的的攻击。

优点:

1.不容易主动攻击,安全性好于ECB,适合传输长度长的报文,是SSL、IPSec的标准。

缺点:

1.不利于并行计算;

2.误差传递;

3.需要初始化向量IV

输出反馈模式(Output Feedback Mode,OFB)

输出反馈模式与CFB相似,惟一差别是,CFB中密文填入加密过程下一阶段,而在OFB中,初始化向量加密过程的输入填入加密过程下一阶段

优点:

1.隐藏了明文模式;

2.分组密码转化为流模式;

3.可以及时加密传送小于分组的数据;

缺点:

1.不利于并行计算;

2.对明文的主动攻击是可能的;

3.误差传送:一个明文单元损坏影响多个单元;

计数模式(CRT)

 
网友评论