1/9
文档分类:IT计算机

《DES程序设计》课程设计作业.pdf.pdf


下载后只包含 1 个 PDF 格式的文档,没有任何的图纸或源代码,查看文件列表

特别说明:文档预览什么样,下载就是什么样。

下载所得到的文件列表
《DES程序设计》课程设计作业.pdf.pdf
文档介绍:
《DES程序设计》课程设计作业软件工程0805班组员: 谢龙恩U200817970 庞亮U200818042 罗康琦U200817949 胡志洋U200818037 时间:2011年6月 DES程序设计实验报告一、实验目的 1. 理解一种典型的加密解密算法; 2. 学会用包、类对加密解密算法进行实现; 3. 理解公钥和私钥的区别与联系。二、实验环境开发环境:Microsoft Visual Studio 2010 运行环境:Windows XP/7 with .Net Framework 4.0 三、实验程序设计与实现 1.DES加密算法简介 DES是一种典型的块密码—一种将固定长度的平文通过一系列复杂的操作变成同样长度的密文的算法。它基于使用56位密钥的对称算法。对DES而言,块长度为64 位。同时,DES使用密钥来自定义变换过程,因此算法认为只有持有加密所用的密钥的用户才能解密密文。密钥表面上是64位的,然而只有其中的56位被实际用于算法,其余8位可以被用于奇偶校验,并在算法中被丢弃。因此,DES的有效密钥长度为56位, 通常称DES的密钥长度为56位。 2.加密流程算法的整体结构下图所示:有16个相同的处理过程,称为“回次”(round),并在首位各有一次置换,称为IP与FP(或称IP-1,FP为IP的反函数(即IP“撤销”FP的操作,反之亦然)。在主处理回次前,数据块被分成两个32位的半块,并被分别处理;这种保证了加密和解密过程足够相似—唯一的区别在于子密钥在解密时是以反向的顺序应用的,而剩余部分均相同。图中的⊕符号代表异或(XOR)操作。“F函数”将数据半块与某个子密钥进行处理。然后,一个F函数的输出与另一个半块异或之后,再与原本的半块组合并交换顺序,进入下一个回次的处理。在最后一个回次完成时,两个半块不必交换顺序,这以保证加解密的过程相似。加密解密主流程图 f(R,K)流程如下图所示,扩张—用扩张置换(图中的E)将32位的半块扩展到48位, 其输出包括8个6位的块,每块包含4位对应的输入位,加上两个邻接的块中紧邻的位。与密钥混合—用异或操作将扩张的结果和一个子密钥进行混合。16个48位的子密钥—每个用于一个回次的F变换—是利用密钥调度从主密钥生成的(见下文)。 S盒—在与子密钥混合之后,块被分成8个6位的块,然后使用“S盒”,或称“置换盒”进行处理。8个S盒的每一个都使用以查找表方式提供的非线性的变换将它的6 个输入位变成4个输出位。S盒提供了DES的核心安全性—如果没有S盒,密码会是线性的,很容易破解。置换—最后,S盒的32个输出位利用固定的置换,“P置换”进行重组。这个设计是为了将每个S盒的4位输出在下一回次的扩张后,使用4个不同的S盒进行处理。 f(R,K)流程图下图显示了加密过程中的密钥调度—产生子密钥的算法。首先,使用选择置换1(PC-1) 从64位输入密钥中选出56位的密钥—剩下的8位要么直接丢弃,要么作为奇偶校验位。然后,56位分成两个28位的半密钥;每个半密钥接下来都被分别处理。在接下来的回次中,两个半密钥都被左移1或2位(由回次数决定),然后通过选择置换2(PC-2)产生48位的子密钥—每个半密钥24位。移位(图中由<<标示)表明每个子密钥中使用了不同的位,每个位大致在16个子密钥中的14个
内容来自淘豆网www.taodocs.com转载请标明出处.