您当前的位置:首页 > 计算机 > 加密解密

块加密 DES 原理、简介以及攻击方式

时间:03-25来源:作者:点击数:

块加密(Block Ciphers)

又称分组加密,是对称加密的一种,与流加密(Stream Cipher)的区别是,流加密采用算法和密钥生成一个随机码流,再与明文进行异或(⊕ )操作,块加密明文按照块密码的大小被分为数个块,并对每个块进行独立加密。

块加密,单个块加密的方式如下图所示:

常见的快加密方式有:DES ,3DES(n=64bits,k=168bits),AES(n=128bits,k=168bits)

理论上密钥越大,加密所需时间越长,安全性越高。

DES 数据加密标准(Data Encryption Standard)

发展史:

1970年,IBM公司开发了Lucifer加密方式,当时Key=128bits,块长=128bits

1973年,国家安全局(当然指的是米国),招标一个加密的项目,IBM拿着变种的Lucifer参加了。

1976年,联邦标准的加密方式就出来了,叫DES,不知为何大幅缩水了,Key=56bits,块长=64bits。

1997年,DES被穷举密钥攻击攻破,因为只需遍历2^56遍即可。

2000年,国家标准研究所,确立了新的加密算法AES,来替代DES。

流程:

如上图所示,输入(input)块皆为64bits的,第一步就是进行IP(置换)操作,打乱顺序,并且分出R块和L块,之后进行Feistel网络操作(下文会提到),之后再次进行IP^-1操作,也就是还原顺序,最后输出(output)相同bits的密文。

核心思想(Feistel 网络):

以上图为例,就是一个简单的Feistel网络图,R,L分别是两个需要加密的数据块,R0 L0与f1执行操作后得到R1 L1这部操作称为一个回合(或周期)。DES有16个回合,3DES有48回合,AES有10回合。

具体计算过程如下:

Ri=f(Ri-1)⊕Li
Li=Ri-1
Ps:i,i-1皆为角标

f为其中的方法,f操作皆为f(R,key),每一个f因为key的不同方法也不同,但是都是可逆操作,如图:

逆向操作:

input:Ri+1,Li+1
output::Ri=Li+1  Li=fi+1(Li+1)⊕ Ri+1
Ps:i,i+1皆为角标

加密时DES会执行类似操作,总计16回合。

Key每轮密钥48bits,16回合总计16个48bits,解码时候,反向使用这16个48bits的Key,执行上述的逆向操作即可。

其中,方法f(x,k)中还包括S Box(Substitution-box,置换盒)概念,简述其作用就是模糊密钥与密文之间的关系,在这里就不展开了,展开又是一大章(其实是因为还没去具体的了解)

攻击方式(Attack):

1.暴力破解:不用多说,2^56次尝试即可。

2.边信道攻击(Side Channel Attack):

就是利用测量物理数据的方式推测出可能的密钥,如上图是测量时间,两头密集的波形是在进行IP(置换操作),中间整齐的看似像周期的波形是DES的16次回合。

3.错误注入攻击(Fault Attack)

4.线性攻击,差分密码攻击等一系列我听都听不懂的数学方法。

5.量子攻击(Quantum Attack):bu懂这个、、、

方便获取更多学习、工作、生活信息请关注本站微信公众号城东书院 微信服务号城东书院 微信订阅号
推荐内容
相关内容
栏目更新
栏目热门