【寒江雪】数据加密标准(DES)
来源:互联网 发布:ipad pro 生产力 知乎 编辑:程序博客网 时间:2024/06/05 01:54
数据加密标准
乘积密码
Feistel密码
分组加密设计原则
DES:概述
- 世界上使用最广泛的分组加密算法
- 1977年被美国国家标准与技术研究院通过
- 属于Feistel密码结构
- 使用56位密钥加密64位分组
- 进行16轮加密
- 有很广泛的商业用途
- 关于其安全性的争论已经很久了
DES加密过程
- 加密处理由两个置换组成,分别是初始置换和逆初始置换
- 初始置换:IP
- 逆初始置换:IP-1
- 初始置换和逆初始置换是straight P-boxes,因此彼此是互逆的。
- 两次置换之间有16轮处理过程
- 他们对加密没有多大的意义
DES加密轮加密过程
- DES进行16轮加密。每一轮的DES加密都是Feistel密码
DES加密的轮函数
- DES的核心就是DES函数
- DES函数使用48位轮密钥给分组最右边32位加密,产生32位输出
- 由于输入是32位的,密钥是48位的,因此需要对32位的输入进行扩充,这就是扩充置换。(使用E-Pbox)
- 置换过程如图
- 将扩充后的48位分组输入与密钥进行异或操作,再将48位输出通过8个S-Boxs,得到32位输出。
- S-Box
- S-boxes实现混淆。
- DES使用8个S-Boxes,每一个都有6位的输入和4位的输出。
- 最后一项操作就是将S-boxes的32位输出作为Straight置换的输入。
DES解密标准
- 与加密使用相同的算法
- 加密过程使用的密钥是K1->K16
- 解密过程使用的密钥是K16->K1
密钥产生和扩展
- 随机产生的64比特的数字
- 删掉8位并且置换成56位的密钥
- 将64位的密钥排成8行,删掉每行的第八位
- 从56位中产生48位的子密钥
- 子密钥产生算法
- 将56位分解成左右两半,每一半28位
- 分别移动这两部分
- 将他们结合起来,进行选择置换。得到48位的子密钥
- 位移后的左右两部分结果作为下一轮56位的密钥输入
DES的安全性
- 容易引发雪崩效应
DES的弱点
在过去几年中,评论家已经发现了DES的一些弱点。
* S-Boxes比较弱
* P-Boxes比较弱
* 密钥比较短
密钥长度
- 56位密钥有256=7.2×1016种可能的取值。
- 暴力搜索看起来似乎很艰难
- 目前研究发现搜索似乎是可行的
- 1997年,穷尽所有密钥需要几个月
- 1998年,只需要几天
- 1999年,只需要22小时
- 仍然必须能够认出明文
- 必须寻找DES的替代品
在DES上做的密码分析
- 在DES上进行统计性质的攻击。包括以下几点
- 微分密码分析
- 线性密码分析
- 相关密钥攻击
为什么要进行多重加密
- 替代DES
- 扩展密钥长度
2-DES
- C=EK2(EK1(P))
- P=DK1(DK2(C))
- 受到中间相遇搜索攻击
3-DES
- 使用两个密钥的3-DES
- C=EK1(DK2(EK1(P)))
- P=DK1(EK2(DK1(C)))
- 使用3个密钥的3-DES
- C=EK3(DK2(EK1(P)))
- P=DK1(EK2(DK3(C)))
- 比DES更加安全,但是加密的代价更高
Copyright© by 寒江雪
Date:2016-12-3
0 0
- 【寒江雪】数据加密标准(DES)
- 数据加密标准—DES
- 算法-加密/解密-DES(数据加密标准)
- 信息安全--八:数据加密标准(DES)
- 对称密码学:02 数据加密标准(DES)
- DES数据加密标准---初步了解
- MATLAB 数据加密标准DES算法
- DES:Data Encryption Standard, 数据加密标准
- DES 数据加密标准 结构详解
- Data Encryption Standard(DES) 数据加密标准算法描述。
- Data Encryption Standard(DES) 数据加密标准算法描述
- Data Encryption Standard(DES) 数据加密标准算法描述
- 信息论与编码——DES数据加密标准
- 【寒江雪】高级数据加密标准(AES)
- DES对称数据加密
- DES 数据加密
- Android DES数据加密
- 24、数据加密-DES
- 静态顺序表的基本操作
- 第15周OJ实践4 字符串长度
- **31电话列表
- C++构造函数初始化列表与构造函数中的赋值的区别
- JZOJ 4920 降雷皇(最长上升子序列、线段树)
- 【寒江雪】数据加密标准(DES)
- 建议对php变量进行初始化、用完后清空
- AVL Tree
- Gradle For Android—从Gradle和Android Studio开始
- 重拾python 三十三
- mysql 解除正在死锁的状态
- 从jar中拷贝资源文件
- 【寒江雪】分组密码设计原则
- ZooKeeper的部署以及简单使用