DES算法原理
来源:互联网 发布:淘宝的电子发票在哪里 编辑:程序博客网 时间:2024/06/09 21:20
1977年,DES成为一个标准,以后每五年进行一次再验证,这通常在12月份进行。所有的美国联邦机构和其他处理信息的组织为了各自的利益都必须使用DES(用于非机密文档)。在非政府公司中,DES也得到了广泛的使用。这个算法基于IBM的LUCIFER系统,该系统使用128位的密钥。通常,密钥越长,系统越安全。DES使用64位密钥;但是其中8位用于错误检测,因此实际上从安全性角度看DES是个56位的密钥系统。由于该加密系统以64位的二进制数据为一组进行加密,因此它也被称为分组密码。DES的安全性取决于密钥的保密,而不是算法的保密。通过密钥的长度可以进一步增强安全性,因为存在着7亿亿(70,000,000,000,000,000)种可能的密钥;因此推断密钥的可能性很小,足以保护大部分分布式环境。当然,随着普通PC的能力持续提高,连续搜索密钥和破译代码的能力也成比例的提高。该加密算法有三个阶段,在图1中进行了描述。解密是通过逆序执行这三个阶段来实现的,包括逆序使用阶段2中所提到的密钥分组(从K16到K1)。
DES加密算法原理
DES使用一个56位的密钥以及附加的8位奇偶校验位,产生最大64位的分组大小。这是一个迭代的分组密码,使用称为Feistel的技术,其中将加密的文本块分成两半。使用子密钥对其中一半应用循环功能,然后将输出与另一半进行“异或”运算;接着交换这两半,这一过程会继续下去,但最后一个循环不交换。DES使用16个循环,使用异或,置换,代换,移位操作四种基本运算。
DES密钥
DES的各个阶段
DES每个阶段使用的是不同的子密钥和上一阶段的输出,但执行的操作相同。这些定义在三种“盒(box)”,分别成为扩充盒(expansion box,E盒),替换盒(substitution box,S盒)和置换盒(permutation box,P盒)在DES的每个阶段中,这三个盒的应用顺序如图1.2。
E盒的作用
E盒的真正作用是确保最终的密文与所有的明文位都有关,下面举例来看第一位通过E盒操作的情况。
初始 1000_0000_0000_0000_0000_0000_0000_0000
第1阶段 0100_0000_0000_0000_0000_0000_0000_0001
第2阶段 1010_0000_0000_0000_0000_0000_0000_0010
第3阶段 0101_0000_0000_0000_0000_0000_0000_0101
第4阶段 1010_1000_0000_0000_0000_0000_0000_1010
第5阶段 0101_0100_0000_0000_0000_0000_0001_0101
第6阶段 1010_1111_0100_0000_0000_0010_1010_1010
第7阶段 0101_0101_1110_0010_0101_0101_0101_0101
第8阶段 1010_1010_1011_1111_1010_1110_1010_1010
S盒的作用
将E盒的输出与48位的子密钥进行XOR运算得到的新的48位的块作为S盒的输入。S盒是DES强大功能的源泉,这8个盒定义了8种替换模式,每个盒定义了6位的输入,输出一个4位的输出。一个S盒有16列和4行,它的每个元素是一个4位的块,通常用十进制表示。例如:输入011101,S盒的行号为1,列号为14.
S盒有两个特征:非线性与一位影响多位。非线性意味着给定一个输入-输出的组合,很难预计所有S盒的输出。一位改变将影响多位输出,是一个很有用的特征,输入微小的改变,在输出中将产生更大的改变。
- DES算法原理详述
- DES算法原理完整版
- DES算法原理
- DES加密/解密算法原理
- ECB CBC DES TDES 算法原理
- DES算法原理C++模拟实现
- DES原理
- DES & 3DES算法
- DES算法
- des算法
- DES算法
- DES算法
- DES算法
- DES算法
- DES算法
- DES算法
- DES算法
- des算法
- jmeter学习笔记(三)-性能测试概念
- 获取表单 input框中输入的值
- bootstrap里的弹框组件Model
- The tidy tools manifesto
- 解决“要登录到这台远程计算机,你必须被授予“的远程无法登陆问题
- DES算法原理
- Android新建文件夹的步骤
- 【iOS_Development】文件操作
- 在安卓手机中读写文件基本方法
- Java 注解
- Java DOM4J 方式解析XML文件
- 说明
- samba服务器启动前配置步骤
- NIO基础