三DES算法加解密过程1密钥生成-Read

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

三 DES算法加解密过程
明文:m1m2…m64
密钥:e1e2…e64
DES加密(16次迭代)
密文:e1e2…e64
三 DES算法加解密过程
3.1密钥生成-等分密钥
K=K1K2…K63K64
通过等分密钥表(表1,表2)划分密钥
A(0)=K57K49…K36
B(0)=K63K55…K4
3.1密钥生成-密钥移位
三 DES算法加解密过程-IP置换
明文:M=m1m2…m64 IP置换(通过IP置换表)
Mip=m58m50…m15m7
L0(MIp前32位)
R0(MIp后32位)
三 DES算法加解密过程-16次跌代
L0 R0
f
L1=R0 R2=L1 + f(R0,K1)
k1
+ 表示不进位的加 法运算.
三 DES算法加解密过程-f变换
A(0)=K57K49…K36 B(0)=K63K55…K4
密钥移位表(表3)
A(i)=⊙A(i-1)(i=0,..16) B(i)=⊙B(i-1) (i=0,..16)
循 环 16 次
合并A(i),B(i) C(i)=A(i) ∪B(i)=C1C2…C56 密钥选取表选取密钥生成第i组密钥 K(i) = C14C17C11…C29C32
三 DES算法在C++语言下的实现
四 总结以及课后作业

本节课程主要介绍了DES算法加密和解密 的过程及其在C++语言下的实现. 1 DES的C++程序使其能对任意长度的字符串 加解密. 2 需要加密的明文中含有中文怎么转换?

R0 = r1r2…r32 E变换扩充为48位 E = r32r1…r31
K1
E1(6b)
E2(6b) … E7(6b) E8(6b)
S1
S2ቤተ መጻሕፍቲ ባይዱ

S7
S8
P变换 f(R0,K1)
合并为32比特
三 DES算法加解密过程-S盒变换
b1 b2 b3 b4 b5 b6
Si(S盒)
t1 t2 t3 t4
输入 b1,b2,b3,b4,b5,b6 中,计算出 x=b1*2+b6, y=b5+b4*2+b3*4+b2*8,再从Si表中查出x 行, y 列的值 Sxy。将 Sxy化为二进制,即得 Si盒的 输出。
DES 加 密 算 法 及 实 现
肖大伟 重庆邮电大学 计算机应用专业
一 课程设计目的
1 使同学们掌握DES加密算法的加解密过程,从该算法的设计 思路中得到一定的启发.
2 利用编程工具实现DES加密解密算法,提高同学们的 实际动手能力.
二 DES加密算法简绍
美国国家标准局(NBS)于1997年公布了一个由IBM公司研制 的一种加密算法,并且确定为非机要部门使用的数据加密标准, 简称DES(Data Encrypton Standard)。自公布之日起,DES算 法作为国际上商用保密通信和计算机通信的最常用算法,一直 活跃在国际保密通信的舞台上,扮演了十分突出的角色。 DES是一种用56位密钥来加密64位数据的方法。虽然56位密 钥的 DES算法已经风光不在 ,而且常有用 Des加密的明文被破译 的报道,但是了解一下昔日美国的标准加密算法总是有益的 ,而且 目前DES算法得到了广泛的应用,在某些场合,她仍然发挥着余热 ^_^.
相关文档
最新文档