基于des的对称加密算法的设计与实现(编辑修改稿)内容摘要:
b i t 图 单轮算法示意图 将图 中中间部分抽取出来就得到了图 ,其中可以看到每轮运算的细节实现。 64 位的明文被分成了左右两个 32 位的明文块 L 和 R。 过程可以用公式简单的表达为: Li+1 = Ri Ri+1 = Li○+F(Ri,Ki+1) 延边大学本科毕业设计说明书 8 R ( 3 2 )E4 8 位+K 4 8 位S 1 S 2 S 3 S 4 S 5 S 6 S 7 S 8P3 2 位 图 S 盒示意图 上图 是具体 F 函数的操作细节:对右边的明文块 R 使用 E(表 )扩展置换为 48 位,再与 48 位的子密钥进行异或,得到的结果再通过 S 盒还原为32 位的数据,最后通过置换函数 P(表 )得到 F 函数的输出。 32 1 2 3 4 5 4 5 6 7 8 9 8 9 10 11 12 13 12 13 14 15 16 17 16 17 18 19 20 21 20 21 22 23 24 25 24 25 26 27 28 29 28 29 30 31 32 1 表 ( E 扩展置换 ) 16 7 20 21 9 12 28 17 1 15 23 26 5 18 31 10 2 8 24 14 32 27 3 9 19 13 30 6 22 11 4 25 表 ( P置换函数 ) 延边大学本科毕业设计说明书 9 如果仔细观察一下扩展置换矩阵 E(表 )就会发现,他的作用其实是将 32 位数据块分成 4 位 4 位的 8 份,然后每组与前后两组的末尾和开头组成 6位,形成新的一行。 例如有下面这么一些数据: asdf qwer zxcv qwer 扩展置换后变为 Rasdfq fqwerz rzxcvq vqwera 在进行 S 盒变换的时候,每 6 位一组的外面 2 位代表着每个小 S 盒中 4 种可能中的一种,中间 4 位代表了这一行中具体选择哪一位来输出。 8 个 S 盒的 32 位输出经过置换,使得每个 S 盒的输出在下一 轮中尽可能的影响更多的其他数据位 S1 14 4 13 1 2 15 11 8 3 10 6 12 5 9 0 7 0 15 7 4 14 2 13 1 10 6 12 11 9 5 3 8 4 1 14 8 13 6 2 11 15 12 9 7 3 10 5 0 15 12 8 2 4 9 1 7 5 11 3 14 10 0 6 13 S2 15 1 8 14 6 11 3 4 9 7 2 13 12 0 5 10 3 13 4 7 15 2 8 14 12 0 1 10 6 9 11 5 0 14 7 11 10 4 13 1 5 8 12 6 9 3 2 15 13 8 10 1 3 15 4 2 11 6 7 12 0 5 14 9 S3 10 0 9 14 6 3 15 5 1 13 12 7 11 4 2 8 13 7 0 9 3 4 6 10 2 8 5 14 12 11 15 1 13 6 4 9 8 15 3 0 11 1 2 12 5 10 14 7 1 10 13 0 6 9 8 7 4 15 14 3 11 5 2 12 S4 7 13 14 3 0 6 9 10 1 2 8 5 11 12 4 15 13 8 11 5 6 15 0 3 4 7 2 12 1 10 14 9 10 6 9 0 12 11 7 13 15 1 3 14 5 2 8 4 3 15 0 6 10 1 13 8 9 4 5 11 12 7 2 14 S5 2 12 4 1 7 10 11 6 8 5 3 15 13 0 14 9 14 11 2 12 4 7 13 1 5 0 15 10 3 9 8 6 4 2 1 11 10 13 7 8 15 9 12 5 6 3 0 14 11 8 12 7 1 14 2 13 6 15 0 9 10 4 5 3 S6 延边大学本科毕业设计说明书 10 12 1 10 15 9 2 6 8 0 13 3 4 14 7 5 11 10 15 4 2 7 12 9 5 6 1 13 14 0 11 3 8 9 14 15 5 2 8 12 3 7 0 4 10 1 13 11 6 4 3 2 12 9 5 15 10 11 14 1 7 6 0 8 13 S7 4 11 2 14 15 0 8 13 3 12 9 7 5 10 6 1 13 0 11 7 4 9 1 10 14 3 5 12 2 15 8 6 1 4 11 13 12 3 7 14 10 15 6 8 0 5 9 2 6 11 13 8 1 4 10 7 9 5 0 15 14 2 3 12 S8 13 2 8 4 6 15 11 1 10 9 3 14 5 0 12 7 1 15 13 8 10 3 7 4 12 5 6 11 0 14 9 2 7 11 4 1 9 12 14 2 0 6 10 13 15 3 5 8 2 1 14 7 4 10 8 13 15 12 9 0 3 5 6 11 表 ( s 盒) 密钥的产生 下图 中指出的子密钥的产生过程,可以看出:输入的初始密钥为 64位的,但是 其实真正使用的只有其中的 56 位被使用了,将 64 位划分成一个 8X8矩 阵,每行的第八位都是被舍去的,第 8 位是校验位。 得到的 56 位密钥首先要经过置换选择 1(表 )处理,之后每轮产生子密钥时 56 位密钥被分为左右28 位,每次各自进行循环左移(或旋转) 1 位到 2 位,移位后的值作为下一轮的输入。 同时对它们使用置换选择 2(表 ),得到本轮的一个子密钥。 延边大学本科毕业设计说明书 11 C i( 2 8 b it) D i( 2 8 b it)左 移 ( S ) 左 移 ( S )置 换 /压 缩C i+ 1 D i+ 1K ( 5 6 b it)/ 4 8 b itK ( 6 4 b it)置 换 选 择 1 图 密钥产生示意图 57 49 41 33 25 17 9 1 58 50 42 34 26 18 10 2 59 51 43 35 27 19 11 3 60 52 44 36 63 55 47 39 31 33 15 7 62 54 46 38 30 22 14 6 61 53 45 37 29 21 13 5 28 20 12 4 表 ( PC1 表 ) 14 17 11 24 1 5 3 28 15 6 21 10 23 19 12 4 26 8 16 7 27 20 13 2 41 52 31 37 47 55 30 40 51 45 33 48 44 49 39 56 34 53 46 42 50 36 29 32 表 ( PC2 表 ) 延边大学本科毕业设计说明书 12 第二章 DES 算法的安全性分析 及改进 DES 算法基于对称加密算法的问题 DES 是对称的分组密码算法。 对称的分组密码算法最主要的问题是 : 由于加解密双方都要使用相同的密钥 , 因此在发送 、 接收数据之前必须完成密钥的分发 , 因而密钥的分发便成了该加密体系中的最薄弱风险最大的环节 , 各种基本的手段均很难保障安全地完成此项工作。 从而使密钥更新的周期加长 , 给他人破译密钥提供了机会。 同时在多人通信的过程中,密钥的 分配和 管理也是一个很大的问题。 如果大家采用的是同一个密钥 ,那么当这个密钥被破解的时候,整个通信都会变得不安全,如果大家采用的是不同的密钥,那么 N 个人参加通信的话就需要 N(N1)个密钥,如此多的密钥将会非常难以管理。 DES 算法的密钥 密钥的长度 DES 算法的密钥长度为 56 位,也就是说密钥存在 2 的 56 次方种可能,为72057594037927936 个密钥。 在设计之初,这样的密钥长度的 DES 算法是相当安全的,假设一台没毫秒执行一次 DES 解密的计算机大约需要 1000 年才能破译出密文。 在 1977 年 DES 刚被认定为标准的时候,但是如果想在是 10 小 时左右破译出密文的话,大约需要花费 2020 万美元,很显然这是得不偿失的,而随着计算机硬件能力的提升,破解的成本在逐年降低。 1993 年,迈克尔维纳设计了一部造价约 1 百万美元的破解器,大约可以在 7 小时内找到一个密钥。 但是这个机器并没有被真正制造。 1998 年,电子前哨基金会( EFF,一个信息人权组织)制造了一台 DES 破解器,造价约 250,000 美元。 该破解器可以用稍多于 2 天的时间暴力破解一个密钥,它显示了迅速破解 DES 的可能性。 延边大学本科毕业设计说明书 13 2020 年德国的鲁尔大学与基尔大学的工作组建造了 COPACOBANA,这个破 解器成本比 EFF 的破解器低了有 25 倍左右,同时这台机器还可以通过 重配置,来用于别的密码的破解, 2020 年, COPACOBANA 的改进版出现,破解的时间被缩小到了 1 天以内。 DES 算法本身存在一个缺陷: ( 1) DES 算法中存在简单关系。 简单 关系可以 用以下关系式表示: 如果 则有 而 DES 中存在下面的关系: 所以 , Pi、 Ci、Ki 是 P、 C、 K 的逐位取补,这表明在 DES 中令 K、 P、 C 的逐位取补等于 f、 g、h 就满足了简单关系,这个关系可以是 DES 的 穷举 破 解的复杂性降低 2 个因子。 ( 2) 由于 DES 具有互补性,在对 DES 进行穷举破解的时候,仅需要搜索其整个密钥空间的一半。 存在弱密码 由于算法各轮的子密钥是通过改变初始密钥这种方式得到的 , 因此有些初始密钥成了弱密钥 , 初始密钥分成两部分每部分各自独立的移动如果每一部分的所有位都是 0 或 1, 那么算法的任意一个周期的 子 密钥都是相同的 , 当密钥是全0 全 1 或者一半全 0 一半全 1 时会发生这种情况 , 下面以十六进制编码的方式给出了四种弱密钥 弱密钥值 实际密钥 0101 0101 0101 0101 0000000 0000000 1F1F 1F1F 1F1F 1F1F 0000000 FFFFFFF E0E0 E0E0 E0E0 E0E0 FFFFFFF 0000000 FEFE FEFE FEFE FEFE FFFFFFF FFFFFFF 表 弱密钥 其他还存在一些只能产生 2。基于des的对称加密算法的设计与实现(编辑修改稿)
相关推荐
上型计算机的人 们)会从中获益。 我们也将简要讲述其他三个系统。 Plan9 是一个将所有资源都视为文件的分布式系统。 从这种意义上来说,它可以被视为一个基于文件的分布式系统。 我们将讲述的另一个系统是 xFS,其与众不同之处在于它没有服务器,而是让客户实现 9 文件系统。 最后,我们会介绍 SFS,该系统强调可扩展的安全性 [3]。 SUN 网络文件系统 我们以 SUN 微系统的网络文件系统(
e%10。 write_LCD_(0x80+0x40+add)。 write_LCD_da(0x30+shi)。 write_LCD_da(0x30+ge)。 write_LCD_da(0xdf)。 write_LCD_da(0x43)。 } void DS1302_write_byte(uchar a) { uchar i。 ACC=a。 RST=1。 for(i=8。 i0。 i) {
是人工喷制,也可以直接以物体表面的自然纹理作为实验标记;另外仅需要单 个或两个固定的 CCD,来拍摄被测物体表面变形前后的数字图像。 通过计算拍摄过程中得到的一组数字图像即可得到物体表面的变形信息。 ( 2)对光源光源和隔震条件要求不高。 直接使用白光或者自然光作为照明光源,不需要激光光源和隔振台,这样对测量环境的要求非常低,非常容易实现现场测量。 ( 3)测量过程易于实现自动化。
系统的总体框图如图 23,硬件连接图如图 24。 毕业论文 (设计 ) 基于 DDS 的正弦波信号发生器设计 7 1 5 环 环M C US P C E 0 6 1 AL C D 环 环 环D D SA D 9 8 5 0F M环 环 环 环 环 环 环 环1 K ~ 1 0 M H z环 环 环环 环 环 环环 环 P S K环 环 环 环 A S K环 环 环 环 环 A M环 环 环 环
后找 到的学生信息,并释放内存空间,删除所有相关的信息。 查找模块实现功能:在已经存储的文件中查找任一指定的学生信息,可 以按照姓名,学 号,来实现查找。 输出模块实现功能:当实行显示信息功能时,输出所创建的文件中包含 的全部学生信息。 排序模块实现功能:对已经存储在文件中的学生信息,根据成绩从高到 低排序,存储,并在名次中显示出来排序结果。 修改模块实现功能
值包络为辛格函数。 因此,为了取出主频 f0,必须在 D/A 转换器的输出端接入截止频率为 fc/2 的低通滤波器。 DDS 数学原理 设有一频率为 f 的余弦信号 )(tS : )2cos()( ftS t ( 21) 现在以采样频率 cf 对 )(tS 进行采样,得到的离散序列为: )2cos ()( fnTS 2,1,0n ( 22) 其中cc fT1 为采样周期。