块加密 DES 原理、简介以及攻击方式
2016-10-02 02:59
330 查看
块加密(Block Ciphers)
又称分组加密,是对称加密的一种,与流加密(Stream Cipher)的区别是,流加密采用算法和密钥生成一个随机码流,再与明文进行异或(⊕ )操作,块加密明文按照块密码的大小被分为数个块,并对每个块进行独立加密。块加密,单个块加密的方式如下图所示:
常见的快加密方式有:DES ,3DES(n=64bits,k=168bits),AES(n=128bits,k=168bits)
理论上密钥越大,加密所需时间越长,安全性越高。
DES 数据加密标准(Data Encryption Standard)
发展史:
1970年,IBM公司开发了Lucifer加密方式,当时Key=128bits,块长=128bits1973年,国家安全局(当然指的是米国),招标一个加密的项目,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):我要懂这个,还会闲着没事再这写博客、、、
相关文章推荐
- 流加密,一次性密码本的原理,简介,事例以及攻击方式
- 白话https的传输原理以及管控方式以及SSL加密!
- AES 原理、简介及攻击方式
- 迅雷、快车、QQ旋风链接的加密解密方式原理
- 某壳对.Net程序加密的原理及解密探讨五(元数据还原以及IL解码的改进)
- 动网论坛上传文件漏洞的原理以及攻击的代码实现
- 动网论坛上传文件漏洞的原理以及攻击的代码实现
- 自已封装了一个极其易用的加密解密类,支持DES、三重DES、Rijndael、RC2、MD5、以及非对称加密算法RSA
- 一个可逆的DES和TripleDES方式加密类(downmoon原创)
- DoS攻击原理以及常见方法介绍(一)
- 关于客户端自动设置可信站点以及ActiveX控件运行方式的原理说明(转)
- DOS攻击原理以及常见方法介绍
- DOS攻击原理以及常见方法介绍
- 黑客知识之SYN攻击原理以及防范技术
- .Net 加密原理,加密壳核心的兼容性以及安全性讨论(六)
- md5加密原理 MD5简介
- .NET 与 Java 互通的 DES 加密方式
- 收藏:SYN 攻击原理以及防范技术
- Java文件上传的机制与原理以及几种协议方式
- DoS攻击原理以及常见方法介绍(三)