DES 加密算法流程
2019-12-05 10:10:32 1 举报
DES加密算法主要流程
作者其他创作
大纲/内容
置换2
k16
64位密钥
L16 = R15
S1
C16
C2
K16
置换1
R0
扩展位
逆初始置换 IP-1
40 8 48 16 56 24 64 3239 7 47 15 55 23 63 3138 6 46 14 54 22 62 3037 5 45 13 53 21 61 2936 4 44 12 52 20 60 2835 3 43 11 51 19 59 2734 2 42 10 50 18 58 2633 1 41 9 49 17 57 25
+
第 3 次至第 15 次循环
置换运算 P
16 7 20 2129 12 28 171 15 23 265 18 31 102 8 24 1432 27 3 919 13 30 622 11 4 25
循环左移
选择运算 E
32 1 2 3 4 54 5 6 7 8 98 9 10 11 12 1312 13 14 15 16 1716 17 18 19 20 2120 21 22 23 24 2524 25 26 27 28 2928 29 30 31 32 1
32位明文
D1
DES 加密算法相关概念:1、DES 数据加密标准 Data Encryption Standard;2、DES 分组长度为 64 比特,使用 56 比特密钥对 64 位比特的明文串进行 16 轮加密,得到 64 位的密文串;3、DES 使用了对合运算,加密和解密公用同一算法;4、DES 解密是以密文为输入,逆序执行加密过程,只有子密钥使用次序不同;5、DES 安全性:DES 安全性包含两点:A、如果 DES 密钥太短经不起穷尽攻击;B、DES 存在弱密钥和半弱密钥:弱密钥:如果存在一个密钥,由其产生的子密钥是相同的,则称其为弱密钥。生成弱密钥的原因是,子密钥生成时,C 和 D 中的数据进行循环移位后,得到结果仍然时重复数据。全 0 和全 1 的密钥显示是弱密钥。DES 存在 4 个弱密钥。弱密钥特性:明文加密两次能得到明文,加密和解密的结果一致。半弱密钥:由 K 产生的子密钥 K1、K2、…… K16 中,有些子密钥相同但不完全,则 K 是半弱密钥。DES 至少有 12 个半弱密钥。3DES 安全强度较高,可以抵抗穷举攻击,但是用软件实现起来速度比较慢3DES 有两种加密方式:1、第一、第三次加密使用同一密钥,这种方式的密钥长度 128 位(112 位有效)。128 = 64 + 64,112 = 56 + 56 。2、三次加密使用不同密钥,这种方式的密钥长度 192 位(168 位有效)。 192 = 64 + 64 + 64, 168 = 56 + 56 + 56 。中国人民银行的智能卡技术规范支持 3DES 。
固定位
D2
DES 加密过程公式
K1
S2
L17 = R16
C1
D15
选择算法E
L1 = R0
S8
C15
64 位明文
K2
L15 = R14
f
初始置换 IP
58 50 42 34 26 18 10 260 52 44 36 28 20 12 462 54 46 38 30 22 14 664 56 48 40 32 24 16 857 49 41 33 25 17 9 159 51 43 35 27 19 11 361 53 45 37 29 21 13 563 55 47 39 31 23 15 7
S3 …… S7
D0
置换选择 1
57 49 41 33 25 17 91 58 50 42 34 26 1810 2 59 51 43 35 2719 11 3 60 52 44 3663 55 47 39 31 23 157 62 54 46 38 30 2214 6 61 53 45 37 2921 13 5 28 20 12 4
扫码关注我吧
64 位密钥生成 48 位子密钥 1、置换选择 1:生成各 28 位的 C0 和 D0 2、循环左移:按照循环次数循环左移位数不同 3、置换选择 2:把 56 位的 C 和 D 处理为 48 位的子密钥
64位密文
k1
逆初始置换IP-1
D16
F 函数:1、32 位明文输入2、选择算法 E:扩展 32 位的明文到 48 位的中间结果3、异或4、代替函数组:进行 S 盒代换,第 0 位和第 5 位形成行,中间 4 位形成列,进行查表,从 48 位的值变成 32 位的值5、置换 P:将 32 位的值顺序打乱6、32 位密文
K15
L0
C0
DES 加密算法流程
初始置换IP
DES 加密算法流程: 1、64 位明文输入 2、子密钥生成 3、初始置换 IP 4、F 函数 5、交换 L16 和 R16 6、逆初始置换 IP-1 7、64 位密文输出
第 2 次至第 16 次加密迭代
32位密文
循环左移与迭代次数的对应关系
迭代次数 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16循环左移位数 1 1 2 2 2 2 2 2 1 2 2 2 2 2 2 1
48位中间结果
R17 = L16
置换P
置换选择 2
14 17 11 24 1 53 28 15 6 21 1023 19 12 4 26 816 7 27 20 13 241 51 31 37 47 5530 40 51 45 33 4844 49 39 56 34 5346 42 50 36 29 32
0 条评论
下一页