DES加密算法的原理
论文的结构和主要内容
DES密钥 DES各个阶段
DES密钥
64位密钥
PC-1
28位C0 左移 28位C1 左移
图1.1 子密钥生成略图
28位D0 左移
28位D1
PC-2
Ki
左移
DES的各个阶段
DES每个阶段使用的是不同的子密钥和上一阶段的输出, 但执行的操作相同。这些定义在三种“盒(box)”,分别成 为扩充盒(expansion box,E盒),替换盒( substitution box,S盒)和置换盒(permutation box,P盒)在DES的每个阶段中,这三个盒的应用顺序如图 1.2。
DES的各个阶段
S盒的作用 将E盒的输出与48位的子密钥进行XOR运算得到的新 的48位的块作为S盒的输入。S盒是DES强大功能的源泉 ,这8个盒定义了8种替换模式,每个盒定义了6位的输入 ,输出一个4位的输出。一个S盒有16列和4行,它的每个 元素是一个4位的块,通常用十进制表示。例如:输入 011101,S盒的行号为1,列号为14. S盒有两个特征:非线性与一位影响多位。非线性意味着 给定一个输入-输出的组合,很难预计所有S盒的输出。一 位改变将影响多位输出,是一个很有用的特征,输入微小 的改变,在输出中将产生更大的改变。
DES加密算法原理
LOGO
简介
DES 使用一个 56 位的密钥以及附加的 8 位奇偶 校验位,产生最大 64 位的分组大小。这是一个迭代 的分组密码,使用称为 Feistel 的技术,其中将加 密的文本块分成两半。使用子密钥对其中一半应用循 环功能,然后将输出与另一半进行“异或”运算;接 着交换这两半,这一过程会继续下去,但最后一个循 环不交换。DES 使用 16 个循环,使用异或,置换, 代换,移位操作四种基本运算。
DES的各个阶段
左 位
E盒
右32位
32
XOR
Ki
S盒
48 位 子 密 钥
在每个阶பைடு நூலகம்中,大约多余一 半的位发生改变
P盒
XOR 32 32
图1.2 DES的某一个阶段
DES的各个阶段
E盒的作用
E盒的真正作用是确保最终的密文与所有的明文位都有关,下面 举例来看第一位通过E盒操作的情况。 初始 第1阶段 第2阶段 第3阶段 第4阶段 第5阶段 第6阶段 第7阶段 第8阶段 1000_0000_0000_0000_0000_0000_0000_0000 0100_0000_0000_0000_0000_0000_0000_0001 1010_0000_0000_0000_0000_0000_0000_0010 0101_0000_0000_0000_0000_0000_0000_0101 1010_1000_0000_0000_0000_0000_0000_1010 0101_0100_0000_0000_0000_0000_0001_0101 1010_1111_0100_0000_0000_0010_1010_1010 0101_0101_1110_0010_0101_0101_0101_0101 1010_1010_1011_1111_1010_1110_1010_1010