分享
分享赚钱 收藏 举报 版权申诉 / 16

类型数据加密标准DES.doc

  • 上传人:saw518
  • 文档编号:6624744
  • 上传时间:2019-04-18
  • 格式:DOC
  • 页数:16
  • 大小:382.50KB
  • 配套讲稿:

    如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。

    特殊限制:

    部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。

    关 键  词:
    数据加密标准DES.doc
    资源描述:

    1、数据加密标准 DES1977 年 1 月,美国政府将 IBM 研制的一种乘积密码宣布为国家的数据加密标准。这个标准的确立刺激了很大一批厂商去实现加密算法的硬件化,以提高处理速度。这种密码术的核心是乘积变换,在硬件产业中常常简称为 DES(Data Encryption Standard)。这样一来,由于可以得到便宜高速的硬件,所以反过来也鼓励了许多其他用户采纳 DES。1DES 算法描述现在我们来说明 DES 算法,它的过程如图 92 所示。对明文按 64 位分组,每组明文经初始排列(第 1 步),通过子密钥 K1-K16 进行 16 次乘积变换(第 2 步),再通过最终排列(第 3 步)得到

    2、 64 位密文。图 9-2 DES 算法过程图16 次乘积变换的目的是使明文增大其混乱性和扩散性,使得输出不残存统计规律,使破译者不能从反向推算出密钥。第 1 步:初始排列(IP)IP(Initial Permutation)取排数据的方法如表 9-2 所示,其中的数据表示明文的位标(164)。例如, 58 指该组明文中的第 58 位,50 指该组明文中的第 50 位,其他类推。第 l步初始排列的目的是将明文的顺序打乱。表 92 初始排列法(IP)例 12-1明文 X=0123456789ABCDEF(十六进制形式),写成二进制形式,共 64 位:X=0000 0001 0010 0011 0

    3、100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111 经过初始排列(IP)后,结果变成:1100 1100 0000 0000 1100 1100 1111 1111 1111 0000 1010 1010 1111 0000 1010 1010 即写成十六进制形式是:CC00CCFFFOAAFOAA。第 2 步:乘积变换把通过第 1 步得出的 64 位一分为二,用 L0 表示前 32 位,R 0 表示后 32 位,那么在上例中有:L0CC00CCFF R 0FOAAFOAA其 16 次乘积变换的过程可以用图 93 表示。其中 K

    4、1K16 为 16 次变换所采用的密钥。每一个密码函数 f(R i-1,K i)(i 1,16)都是通过 3 个子过程(扩展置换,压缩代换,P 排列)得到的。由于 16 次变换过程是类似的,我们只要对其中的一个展开讨论就行了。在上面的例子中,我们不妨看一下 i=1(第 1 次变换)的情况。其具体过程如图 9-4 所示。图 9-3 16 乘积变换过程(1)扩展置换扩展置换又称 E(Expand)函数,是一个与密钥无关的纯移位变换,它把 32 位扩展成48 位。将 32 位分成 4 位一组,共 8 组,记作 a 1(1)a4(1), a1(2)a4(2),a1(8)a4(8) 。每组扩展成 6 位

    5、,共 48 位,记作 b1(1)b6(1), b1(2)b6(2),b1(8)b6(8) 。其扩展公式可以表示成:当 j=l 时,有 bl(1)=a4(8),j=8 时有 b6(8)=a1(1),也就是:图 9-4 第 1 次变换的过程例 12-1中,R 0=F0AAF0AA,经过扩展置换就变成了:把扩展置换的结果与子密钥进行异或,16 个子密钥的顺序是第 i 次变换用子密钥 Ki。我们不妨先假设子密钥 K1=0B02679B49A5,则 7A15557A1555 0B02679B49A5=711732E15CF0。(2)压缩替换压缩替换也称压缩编码(compressed encoding),

    6、通过压缩替换将输入的 48 位变换为 32位输出,其主要方法是利用替换盒(substitution box),简称 S 盒。S 盒是指这样的函数,它把 6 个输入位映射为 4 个输出位。作为一个密码表,它是由015 组成的 4 行 16 列的随机数表,此密码表就是 S 盒。一个 S 盒中有 4 个替换表(行编号为 0,1,2,3)。因为 48 位分成 6 位一组,共分 8 组,故应有 8 个不同的 S 盒,记为S1,S 2 ,S 8,它们的构成见表 9-3。表 9-3 S 盒的构成我们以 Sl 为例来看一看如何由 6 位生成 4 位。把输入 6 位中的头尾两位合起来构成的两位二进制数表示行数,

    7、中间 4 位二进制数表示列数,在 S1 盒中查找对应的数,该数化成二进制形式就是输出的 4 位。如果输入为 101100,那么在 Sl 中查到 2 行 6 列所对应的数为 2,即 0010,故其输出的 4 位为 0010,可写成或写成。整个压缩替换可用图 95 表示。图 9-5 压缩替换前面的例子经第 1 子过程后,得 711732E15CF0H(48 位),分成011100,010001,011100,110010,111000,010101,110011 和 110000 8 个组,经压缩替换后得到:即经压缩替换的结果是用十六进制表示的 0C216D50,或 32 位二进制。(3) P 排

    8、列P 排列也称换位表变换,将压缩替换后得到的 32 位按表 94 所示顺序重新排列的 32 位,即密码函数。表 9-4 P 排列在前面的例子中,经压缩替换后的 32 位是:0000 1100 0010 0001 0110 1101 0101 0000即有:故 。最后,得到 Ll、R l 后,再重复上述乘积变换(共 16 次),得 L16、R 16 组成 64 位。第 3 步:最终排列它是初始排列的逆变换,即(IP) 1 ,其排列顺序可用表 9-5 示意。联合 R16L16,共 64位,经(IP ) 1 操作后就能得到该组的密文。表 95 (IP) 12DES 算法密钥的生成过程取 64 位作为

    9、初始密钥(或称主密钥),每 8 位中有 1 位奇偶检验位,故主密钥实质上只有 56 位,经过排列选择 1,简称 PC1(PC 是 permutation choose 的缩写),分成 C0 和 D0两部分,各 28 位。将 C0、D 0 各循环左移 1 位得到 C 1、D 1,再经过排列选择 2(PC 2)得到了密钥 K1;对 C1、D 1;作循环左移位后得到 C2、D 2,经过 PC2 得到子密钥 K2;直到产生子密钥 K16,其过程如图 96 所示。图 96 密钥生成过程其中 LSi 表示第 i 次循环左移的位数。初始密钥 K 去掉第8,16,24,32,40,48,56,64 位后余下

    10、56 位,对这 56 位 通过 PC1 作重新排列,用以确定 C0 的顺序如下:用以确定 D0 的顺序如下:其中的顺序号均指初始密钥 K 的位置标号。由 Ci、D i 经循环左移位后得到 Cil 、D il ,为了保证经 16 次移位后能恰好循环移动 28位,使 C16=C0、 D16=D0, 故各次的移位数不全相等,具体的移位数 LSi 在表 9-6 中给出。表 96 左移位数表为了更清楚地说明密钥生成过程,我们把经 PC1 处理后得到的 C0、D O,经 LS 1 次循环左移后的 C1、D l,经 LS2 次循环左移后的 C2、D 2,经 LS3 次循环左移后的 C3、D 3 的情况列在表

    11、 97 中,表的第 1 行表示 C、D 的位标,表的第 2 行以后 的数都是初始密钥 K 中的位标,其值只能是 0 或 1。表 9-7 CiDi 变化表图 9-6 中的 PC 2 是从 56 位(C i,D i)中重新排列选择出 48 位的子集,该子集就是初始密钥 K 的子密钥 Ki,PC2 的置换表如下。表中的数值是 C、D 的位标。对 Ci、 Di 通过 PC2 处理就产生 Ki(去掉 Ci、D i 的第 9、 18、22、25、35、38、43、54 位后的重新排列)。为了使 Ki 与初始密钥 K 的位标相对应,表 98 给出 K1 、K 2、K 3 与 Ci、D i 的位标及 K 的位

    12、标的对应表,其中第 1 行是 Ki 的位标,从 l 到 48;第 2 行是 PC2 的选择,其数值是 Ci、D i 的位标,从 1 到 56; 第 3 行开始的数值是初始密钥 K 中的位标,从 l 到 63。当然,子密钥 Ki 的最后值只是由 0 和 1 组成的一个 48 位的二进制序列。类似地,也有 K4K16 与 Ci、D i 的位标及 K 的位标的对应关系。 由主密钥 K 产生密钥 K1K16 的全过程也可以用图 9-7 来表示。表 9-8 位标对应表图 9-7 由主密钥 K 产生密钥 K1 一 K16 的全过程例12-2 取密钥 K(64 位)K = 0000 0001 * 0010

    13、0011 * 0100 0101 * 0110 0111 * 1000 100l * 1010 1011 * 1100 110l * 1110 1111 *其中标上*号的位是奇偶校验位。去掉校验位后经过 PC1 选择得 C0、D 0(56 位),分别为:C0 = 1111 0000 1100 1100 1010 1010 0000D0 = 1010 1010 1100 1100 1111 0000 0000循环左移 LS1(=1)位后得 C1、D 1:C1 1110 0001 1001 1001 0101 0100 0001D1 0101 0101 1001 1001 1110 0000 00

    14、01C1、D 1 经 PC2 选择后得 K1(48 位)如下:K1 0000 1011 0000 0010 0110 0111 1001 1011 0100 1001 1010 0101用十六进制形式书写,有 K1 = 0B02679B49A5。因为 Ki 是由主密钥通过一些指定的移位、排列选择得到的,因此只要对用户给出主密钥即可。3解密运算由于模 2 加法的特性和最终排列与初始排列的可逆性,解密运算与加密运算一样,只是所取子密钥的顺序不同。 加密时候的顺序是:;解密时的顺序则为:因此,我们可以把加密和解密过程统一画在图 9-6 所示的流程图中。虽然 DES 算法如此复杂,但它基本上还是采用一

    15、个 64 比特字符的单字母表替换密码。当明文是 64 个 0 并且密钥也是 56 个 0 时, 利用 DES 算法所得的密文将是:8CA64DE9C1B123A7(十六进制)。增强 DES(或任一密码)的一种办法是:根据一定义良好的规则(例如,每第 n 个字符有效,其他字符无效) 在明文中插入随机字符。此外,还可根据另一条规则在两条真正的报文之间插入一些假报文,这称为空密码(null cipher)。空密码要浪费一些带宽,但不容易被破译,因为真正的字符和报文位置是严格保密的,而且随密钥的改变而变化。值得一提的是,对于租用的专用线路,只要有空闲就可传输一些无用的报文。图 9-8 DES 算法的加

    16、密、解密流程图4流加密另一种加大 DES 密码分析难度的办法是把它当作一个流密码来进行操作,如图 9-9 所示,而不是我们迄今为止一直在讨论的块加密。当使用一个密码时,发送者和接收者都让他们的 DES 处于加密方式进行操作。 各 DES 芯片有一个 64 位输入寄存器(移位寄存器),还有一个 64 位输出寄存器(非移位寄存器)。当一个明文字符到达时,它与输出寄存器O1(O 2 到 O8 未用)的 8 个比特相异或,所生成的字符被传送给接收方, 同时将该字符移入输入寄存器,它把 I8 顶出。于是 DES 芯片开始工作,为下一输入计算输出。在接收端,收到的字符首先与 O1 相异或(产生出明文)。然

    17、后把所收到字符移入 I1, 如果收发双方芯片的输入寄存器内容最初相同,那么它们将永远保持一致。这也就是说收发双方的 O1 始终相同。 由于进入发送端的明文与之作异或操作的字符相同于进入接收器的密文与之作异或操作的字符(即都是 O1 中的字符), 因此,接收器的输出即为最初的明文。流加密有价值的特征是 O1 依赖于明文的整个历史, 因此明文中重复的字组不会被生成为加密文中重复的字组。流加密也非常适用于终端,因为这样不必在发送加密文之前收齐 8 个字符, 每敲击一次键盘就可以立即生成加密输出。5 对 DES 算法的评价DES 开创了算法全部公开的先例。有关部门与学者经过多年研究和全面考核,普遍认为DES 的保密性良好, 对它的批评是:密钥长度(56 位)不够长,迭代次数(16 次)不够多。Diffie 和 Hellman 设想了一种专用机,搜索 256 个密钥只要一天的时间。另外,S 盒中可能有不安全因素, 虽然 S 盒不是线性的,但也不是随机的(后来有人对 S 盒作了随机性检验,认为它是随机的)。还有一个缺点是软件实现时间太长, 用 C 语言编制的程序在IBMPC 机上加密 816 位的信息要用 1 秒钟。但用 DES 来对密钥加密看来还是很有效的。图 9-9 流加密

    展开阅读全文
    提示  道客多多所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    关于本文
    本文标题:数据加密标准DES.doc
    链接地址:https://www.docduoduo.com/p-6624744.html
    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    道客多多用户QQ群:832276834  微博官方号:道客多多官方   知乎号:道客多多

    Copyright© 2025 道客多多 docduoduo.com 网站版权所有世界地图

    经营许可证编号:粤ICP备2021046453号    营业执照商标

    1.png 2.png 3.png 4.png 5.png 6.png 7.png 8.png 9.png 10.png



    收起
    展开