下载

2下载券

加入VIP
  • 专属下载特权
  • 现金文档折扣购买
  • VIP免费专区
  • 千万文档免费下载

上传资料

关闭

关闭

关闭

封号提示

内容

首页 密码学数据加密标准(DES)

密码学数据加密标准(DES).doc

密码学数据加密标准(DES)

rachel
2018-09-06 0人阅读 举报 0 0 暂无简介

简介:本文档为《密码学数据加密标准(DES)doc》,可适用于IT/计算机领域

数据加密标准(DES)(DataEncryptionStandard)分组密码概述、分组密码体制的设计有下面的技术要求:()分组长度m要足够大以防止明文穷举的攻击。()密钥量应足够大以防止密钥穷举的攻击。()密码的法足够复杂使破译者除了采用穷举法攻击以外找不到其它简洁的数字破译算法。二密文块的长度与明文块长度间关系。数据加密标准(DES)一、DES加密算法简介二、DES加密算法的粗框以每一个明文块的加密过程为例给出DES加密的过程简单的用一句话可概述这个加密过程:将bit的明文块在bit的密钥控制下变换为bit的密文块其加密过程包括次选代(即圈)每次选代都由替代和移位的复合而形成的。粗框说明第i圈:输入:L(i)R(i)输出:L(i)=R(i)R(i)=gk(i)(R(i))(L(i)或令Pi=gk(i)(R(i))则R(i)=Pi(L(i)R(i)=gk(i)(L(i))(L(i)位位位三、DES加密算法的详细说明、内部密钥的派生对于每一个明文信息其加密过程要给定一个位的密钥K来确定明密文块的对应关系个内部密钥K()K()…K()如何由给定的密钥K(外部密钥)产生其过程如下:位位位表对应不同i的左循环移位位数选代次数i左移位数h(i)说明:()外部密钥K=KKK……K是bit,但其中K,K,K,K,K,K,K,K这位是奇偶校验位在进入置换选择之前就已被去掉了。()置换选择C的作用是将外部密钥剩下的位分成两个部分称为左半部分C和右半部分D各具位。具体分割算法如下:左半部分C=KKKKKKKKKKKKKKKKKKKKKKKKKKKK右半部分D=KKKKKKKKKKKKKKKKKKKKKKKKKKKK分划的规则是什么呢?也就是说K中哪些位属于C哪些位属于D。如何确定呢?有什么规律呢?我们用下面的方法来描述它的分划原则:将外部密钥K=KK…K的各位排成行列的矩阵。①②③④⑤⑥⑦⑧KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKK()C和D生成后生成K()按如下步骤进行(a)将C和D各循环左移h()=位分别得到C和D(b)通过置换选择(PC)将位的向量(CD)变成位的密钥向量K()。置换选择(PC)()置换选择(PC)假设C=cc(cD=dd(d去掉ccccdddd然后按下表置换。得K()=ccccccccccccccccccccccccdddddddddddddddddddddddd()Ci和Di生成后生成K(i)的步骤与()相同(a)将Ci和Di各循环左移h(i)位分别得到Ci和Di左移位数h(i)随着i的不同而有所差异(见表)(b)通过置换选择将位的向量(CiDi)变换成位的密钥向量K(i)K(i)=K(i)K(i)…K(i)K(i)…K(i)。DES进入加密算法之前首先必须将内部密钥K()…K()派生出来。、初始置换IP:初始置换的作用是将位的明文块X分成两部分左半部分L()和右半部分R()每一部分均匀为位。具体分法是:L()=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXR()=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX分割的规则是什么呢?亦即如何确定L()和R()各是由些什么位组成按什么样的次序组成呢?下面介绍生成L()和R()的方法。将明文块X=XX…X排成行列的矩阵(如下)R()①③⑤⑦XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX②④⑥⑧L()、逆初始置换(IP)两个bit的预输出数据块R()L()要经过逆初始置换才能产生出真正的bit的密文块y=yy…y。假设R()=r()r()…r()L()=l()l()…l()简记作R()=rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrL()=llllllllllllllllllllllllllllllll②④⑥⑧lrlrlrlrlrlrlrlrlrlrlrlrlrlrlrlrlrlrlrlrlrlrlrlrlrlrlrlrlrlrlrlr①③⑤⑦初始置换与逆初始置换的比较:初始置换:明文块X=XX…XL(),R()()将X按行的自然递增次序逐位填入*矩阵的各行中。()在矩阵中按照从下至上的方式依次取出、、、列中的元素构成左半部L()的bit。()在矩阵中按照从下至上的方式依次取出、、、列中的元素构成右半部R()的bit。逆初始置换:R()L()(密文块Y=yy…y()将左半部R()的bit按照()中取出的方式逐位还原填入矩阵的、、、列中()将右半部L()的bit按照()中取出的方式逐位还原填入矩阵的、、、列中。()将*矩阵中的元素按照行的自然递增顺序逐位取出。由上述可见逆初始置换是初始置换的逆变换。三、加密函数g的详细说明位位位位位为位位、E扩展R(i)是位E扩展将它扩展为位的E(R(i))其扩展方法如下:设R(i)=rrr…rr将其分成组每位一组(每一组扩展成位)。rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr`rrrrrrrrrrrrrrrrr则E(R(i))=rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr、替代运算(S盒)S盒S、P置换(移位变换)设B=bb…b则P(B)=bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbDES解脱密算、DES脱密算法()一个bit的数据块分成两个位的数据块()逆初始置换:是将两个位的数据合并成一个位的数据块合并的方法是(例如XLXR)逆初始置换是初始置换的逆变换。XLXRX因为初始置换将明文块X=XX…X分成了L()R()所以必可将L()R()合并成X=XX…X。()每一圈输出与输入的关系每一圈中输出对输入的一个函数依赖关系。L(i)=R(i)…()(i=…)R(i)=L(i)gK(i)(R(i))…()、进行第一圈脱密时R()C(由脱密过程的推图的第一圈)R()=L()gK()(L())=L()gK()(L())由异或运算的性质(若AB=C则BC=AAC=B)​可得DES脱密算法初始置换IP明文块X=xx。。。。。。。。xL()=l()…l()R()=r()…r()gL()=l()…l()R()=r()…r()gR()=r()…r()L()=l()…l()R()=r()…r()L()=l()…l()L()=l()…l()gR()=r()…r()L()R()逆初始置换(IP)密文块y=yy…y外部密钥K=KK…K置换选择PCK()置换选择PCC…循环左移h()位K()循环左移h()位DPCC循环左移h()位循环左移h()位循环左移h()位DC…D置换选择PCCK()R(i)E扩展E(R(i))K(i)SA=E(R(i))K(i)SBgK(i)(R(i))=Pi(B)X初始置换初始置换密文块y=yy…y初始置换L()R()gL()R()gL()R()R()L()gR()L()R()L()逆初始置换明文块X=XX…XnK()D循环左移h()位简单移位变换K()…………K()CD置换选择PCK()内部密钥产生过程位位位P(B)R(i)=L(i)P(B)L(i)=R(i)L(i)明文块X=xx……xnK()K()K()PAGEunknownunknownunknown

用户评价(0)

关闭

新课改视野下建构高中语文教学实验成果报告(32KB)

抱歉,积分不足下载失败,请稍后再试!

提示

试读已结束,如需要继续阅读或者下载,敬请购买!

文档小程序码

使用微信“扫一扫”扫码寻找文档

1

打开微信

2

扫描小程序码

3

发布寻找信息

4

等待寻找结果

我知道了
评分:

/10

密码学数据加密标准(DES)

VIP

在线
客服

免费
邮箱

爱问共享资料服务号

扫描关注领取更多福利