logo资料库

DES算法及流程图.doc

第1页 / 共15页
第2页 / 共15页
第3页 / 共15页
第4页 / 共15页
第5页 / 共15页
第6页 / 共15页
第7页 / 共15页
第8页 / 共15页
资料共15页,剩余部分请下载后查看
一、简单DES
1、加密过程
2、加密算法构成:
(1)初始置换函数IP
(2)fk函数
(3)F(R,SK)函数
(4)交换函数(SW) :
(5)逆置换函数IP-1
3、子密钥生成
(1)子密钥生成过程
(2)算法构成:
(3)子密钥生成
4、加密过程举例
二、DES加密:
1、加密过程
2、加密算法的构成:
(1)IP置换
图6.24IP置换
(2)扩展置换
(3)S盒
(4)置换函数P
(5)IP-1逆置换
3、子密钥生成
数据加密标准 DES(data encryption standard)算法是由美国 IBM 公司研制 的一种分组密码算法,是一个迭代分组密码。 DES 是一个使用最为广泛的加密算法,虽然从 DES 出现后又产生了许多常规 加密算法,但 DES 仍是此类算法中最重要的一个。 在正式讨论 DES 算法之前,为了更好的理解算法的实际工作过程,我们先来 看一个简化的 DES 算法,以此加深对 DES 算法的理解。 图 6.9 简单 DES 的加密过程 一、简单 DES 简单 DES 的加密算法是以 8bit 的明文分组和 10bit 密钥作为输入,产生 8bit 密文分组作为输出。 1、加密过程 简单 DES 的加密过程如图 6.9 所示。 2、加密算法构成:
简单 DES 的加密算法包括 4 个基本函数:一个初始置换函数 IP;一个 fk 函 数;一个用来交换数据的 SW 置换函数;一个逆置换函数 IP-1。 (1)初始置换函数 IP 数据原先 所在位置 IP 置换 2 6 3 1 4 8 5 7 初始置换 IP 是将明文 M 中数据的排列顺序按一定的规则重新排列,而生成 新的数据序列的过程。如图 6.10 所示: 图 6.10 简单 DES 的初始置换 设 8bit 数据 K 各位分别为 K1、K2、K3、K4、K5、K6、K7、K8,则经过 IP 置换后,各位分别为 K2、K6、K3、K1、K4、K8、K5、K7。 例:设 8bit 数据为 11110011 ,则初始置换的结果为: 经 IP 置换 11110011 10111101 (2)fk 函数 fk 函数是多个置换函数和替代函数的组合函数。fk 函数将输入它的 8bit 数 据进行分组,分成左 4 位和右 4 位,然后进行如下运算。 fk(L,R)=(L⊕F(R,SK),R) L 输入的左边 4 位分组 R 输入的右边 4 位分组 ⊕ 逐位异或
(3)F(R,SK)函数 F(R,SK)函数是 fk 函数的核心函数,其中 SK 是子密钥。F(R,SK)函数 的运算方法如下: E/P 4 1 2 3 2 3 4 1 1)扩展/置换 E/P 图 6.11 简单 DES 的扩展/置换 扩展/置换是将 4bit 输入数据经过置换和扩展而产生 8bit 数据的算法,如 图 6.11 所示。 2)与 8 位子密钥 SK 逐位异或 异或运算如图 6.12 所示。 A ⊕ B 结果 0 0 1 1 1 0 0 1 1 0 1 0 图 6.12 异或运算 1 3 0 3 0 2 2 1 3 1 1 3 2 0 3 2
0 2 3 2 1 0 0 1 2 1 1 0 3 3 0 3 S0 = S1= 图 6.13 S 盒 图 6.14 S 盒运算 3)S 盒输出 简单 DES 算法使用两个 S 盒 S0 和 S1。如图 6.13 所示。其运算方法是将 4bit 数据输入 S 盒,第一和第四比特数据作为 2 比特数值,这个数值用来指定 S 盒的 一行。第二和第三比特数据也作为 2 比特数值,这个数值用来指定 S 盒的一列。 对应 S 盒中该行该列的数值用二进制表示,既为 S 盒的 2bit 输出。其运算方法 如图 6.14 所示。 4)P4 置换 P4
2 4 3 1 由 S0 和 S1 产生的 4bit 数据经 P4 置换,产生 4bit 数据的输出。P4 置换的方 法如图 6.15 所示。 图 6.15 P4 置换 (4)交换函数(SW) : 交换函数 SW 是将 8bit 输入数据的左四位与右四位交换位置之后产生 8bit 数据的输出。其运算方法如图 6.16 所示。 1 1 0 1 1 0 1 1 1 1 1 0 0 1 1 1 图 6.16 SW 运算 (5)逆置换函数 IP-1 逆置换函数 IP-1 是将 8bit 输入数据置换为 8bit 数据输出。其运算方法如图 6.17 所示。 IP-1 4 1 3 5 7 2 8 6
图 6.17 逆置换函数 IP-1 3、子密钥生成 简单 DES 密钥是使用 一个发送方和接收方共 享的 10bit 密钥。运算中 使用的两个 8bit 子密钥 就是从这个 10bit 密钥生 成。 输入:10bit 密钥 输出:两个 8bit 子密钥 图 6.18 简单 DES 的子密钥生成 (1)子密钥生成过程 简单 DES 的两个 8bit 子密钥的生成过程如图 6.18 所示。 (2)算法构成: P10 3 5 2 7 4 10 1 9 8 6 P8 6 3 7 4 8 5 10 9 简单 DES 的子密钥生成算法主要由置换函数 P10 和置换函数 P8 这两个置换 函数加上循环左移构成。设 10bit 数据从左到右依次为 (k1,k2,k3,k4,k5,k6,k7,k8,k9,k10)则置换方式如图 6.19 所示。 10000 01100 00001 11000 1010000010
10100100 00100 00011 01000011 子密钥 K1 子密钥 K2 图 6.19 P10 和 P8 置换 图 6.20 子密钥的生成 P10(k1,k2,k3,k4,k5,k6,k7,k8,k9,k10)= (k3,k5,k2,k7,k4,k10,k1,k9,k8,k6,); P8(k1,k2,k3,k4,k5,k6,k7,k8,k9,k10)=(k6,k3,k7,k4,k8,k5,k10,k9) (3)子密钥生成 例:设密钥为 1010000010 ,则子密钥的生成过程如图 6.20 所示。 4、加密过程举例 设 8bit 明文为 11110011,使用前例中的子密钥进行加密,其过程如图 6.21 所示。
二、DES 加密: 在讨论完简单 DES 加密的基础上,我们来进一步探讨 DES 的加密过程。 1、加密过程 DES 的加密过程如图 6.22 所示,其中的一轮运算要循环 16 次,每一次循环 都执行相同的过程,其具体过程如图 6.23 所示。 2、加密算法的构成: DES 的加密算法和简单 DES 的加密算法相类似,也是主要包括 4 个基本函数: 一个初始置换函数 IP;一个 fk 函数;一个用来交换数据的 SW 置换函数;一个逆 置换函数 IP-1。 (1)IP 置换 图 6.22 DES 算法的一般过程
分享到:
收藏