单钥加密过程实现报告.doc_第1页
单钥加密过程实现报告.doc_第2页
单钥加密过程实现报告.doc_第3页
单钥加密过程实现报告.doc_第4页
单钥加密过程实现报告.doc_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

_ 信息安全技术课程设计系统分析和设计报告所选题目:3.单钥加密过程实现目 录1系统分析31.1 背景31.2需求确定41.3系统要完成的主要功能42系统设计42.1系统主要目标42.1.1主要软件需求(运行环境)42.2 系统结构52.2.2 系统处理过程52.2.3功能模块53 系统功能程序设计53.1 DES算法53.2初始置换73.3密钥置换83.4扩展置换93.5 S盒代替93.6 P盒置换123.7末置换133.8加密133.9解密133.10程序界面预览134测试报告145结论14参考文献151系统分析1.1 背景在计算机网络技术深入各行各业的信息时代,全球国际互联网用户数正在急剧增长,网络信息已广泛应用在军事、金融、工业和贸易等各个领域。人们在实现资源共享的同时,也感受到信息安全问题日益突出。互联网是一把双刃剑。一方面,网络的发展推动了科技的发展和社会的进步;另一方面,网络也带来信息污染、信息侵权、信息渗透,乃至信息犯罪。信息安全已成为各国极为关注的问题。信息加密技术是保障信息安全的最基本、最核心的技术措施和理论基础,信息加密过程由多种加密算法来具体实施,将信息明文变换成密文进行发送,使截取者、窃听者无法破译,保证信息安全的传递到接收者而不被第三方窃取。目前加密技术主要是:对称密钥和非对称密钥。对称密钥是指加密与解密使用的是相同的密钥,密钥通过安全的方式传递给收发双方。本论文主要研究的是单钥加密过程的实现。单钥加密,加密密钥和解密密钥是一样的,或实质上是等同的,这种情况下,密钥就经过安全的密钥信道由发方传给收方。单钥密码的特点是无论加密还是解密都使用同一个密钥,因此,此密码体制的安全性就是密钥的安全。如果密钥泄露,则此密码系统便被攻破。最有影响的单钥密码是1977年美国国家标准局颁布的DES算法。数据加密标准DES (Data Encryption Standard)曾被美国国家标准局NBS (现为国家标准与技术研究所NIST)确定为联邦信息处理标准(FIPS PUB 46),得到过广泛使用,特别是在金融领域,曾是对称密码体制事实上的世界标准。目前在国内,随着三金工程尤其是金卡工程的启动,DES算法在POS、ATM、智能卡、加油站、高速公路收费站等领域被广泛使用,以此来实现关键数据加密,如信用卡持卡人的PIN的加密传输、IC卡与POS间的双向认证、金融交易数据包的MAC校验等,均用到DES算法。DES起源于1973年美国国家标准局NBS征求国家密码标准方案。IBM就提交了其在20世纪60年代末设立的一个计算机密码编码学方面的研究项目的结果,这个项目在1971年结束时研制出了一种称为Lucifer算法。它是当时提出来的最好的算法,因而在1977年被选为数据加密标准,有效期为5年,随后在1983年、1987年和1993年三次再度授权该算法续用5年。DES使用一个56位的密钥以及附加的8位奇偶校验位,产生最大64位的分组大小。这是一个迭代的分组密码,使用称为 Feistel 的技术,其中将加密的文本块分成两半。使用子密钥对其中一半应用循环功能,然后将输出与另一半进行“异或”运算;接着交换这两半,这一过程会继续下去,但最后一个循环不交换,DES 使用 16 个循环。1.2需求确定在一些特殊场合,人们交换信息并不希望被其他人知道,需要把消息进行一系列转换后在公共信道中传输,接收方再通过一些手段将消息转换回来,本系统用单钥加密中的DES对称密钥加密算法对信息进行加、解密,使得在A、B两人有密切的信息来往的情况下,保证往来信息的保密性,从而达到保密传递信息的目的。1.3系统要完成的主要功能根据单钥加密中的DES对称密钥加密算法实现信息的加密解密。向用户提供良好的交互,具有良好的操作性。使得A、B两人有密切的信息来往需要保密传递信息并在一方发送信息前已经共享了会话密钥的情况下,实现A、B双方的发送和接受信息的程序,保证在一方发送信息之前需要用单钥加密算法进行加密,接收方收到信息后可以解密,从而实现往来信息的保密性。2.系统设计2.1系统主要目标2.1.1主要软件需求(运行环境)本系统是用C+语言编写,编译成功后可执行文件可以在任何装有C+相关编译器的计算机上使用。本系统设计符合本小组在信息安全技术课程设计中所选的设计题目:假设A、B两人有密切的信息来往,并需要保证往来信息的保密性,假设在一方发送信息前已经共享了会话密钥情况下,用单钥密码体制设计一个系统以实现实现A、B双方的发送和接受信息的程序,在一方发送信息之前需要用单钥加密算法进行加密,接收方收到信息后可以解密中所提的三个要求。测试平台:Windows Vista /Windows XP/ Windows 20032.2 系统结构2.2.2 系统处理过程输入:输入明文,输入8位密钥。点击“加密”按钮,即可获得加密密文。输出:在编辑框中显示密文。点击“解密”按钮,即可获得明文。2.2.3功能模块编 号模 块 名 称1f 函数2S 盒代替3变换4异或5循环左移6字节组转换成位组7位组转换成字节组8加密9解密3 系统功能程序设计 3.1 DES算法DES算法只不过是加密的两个基本技术混乱和扩散的组合,即先代替后置换,它基于密钥作用于明文,这是一轮(round),DES在明文分组上实施16轮相同的组合技术。如下图所示:DES对64位明文分组进行操作。通过一个初始置换,将明文分组分成左半部分和右半部分,各32位长。然后进行16轮完全相同的运算,这些运算被称为函数f,在运算过程中数据与密钥结合。经过16轮后,左、右半部分合在一起经过一个末置换(初始置换的逆置换),算法就完成了。在每一轮中,密钥位移位,然后再从密钥的56位中选出48位。通过一个扩展置换将数据的右半部分扩展成48位,并通过一个异或操作与48位密钥结合,通过8个S盒将这48位替代成新的32位数据,再将其置换一次。这四步运算构成了函数f。然后,通过另一个异或运算,函数f的输出与左半部分结合,其结果即成为新的左半部分。将该操作重复16次,便实现了DES的16轮运算。一轮DES如下图所示: 假设Bi是第i次迭代的结果,Li和Ri是Bi的左半部分和右半部分,Ki是第i轮的48位密钥,且f是实现代替、置换及密钥异或等运算的函数,那么每一轮就是: Li=Ri-1 Ri=Li-1f(Ri-1,Ki)3.2初始置换初始置换在第一轮运算之前进行,对输入分组实施如下表所示的变换。初始置换把明文的第58位换到第1位的位置,把第50位换到第2位的位置,把第42位换到第3位的位置,依此类推。58, 50, 42, 34, 26, 18, 10, 2, 60, 52, 44, 36, 28, 20, 12, 462, 54, 46, 38, 30, 22, 14, 6, 64, 56, 48, 40, 32, 24, 16, 857, 49, 41, 33, 25, 17, 9, 1, 59, 51, 43, 35, 27, 19, 11, 361, 53, 45, 37, 29, 21, 13, 5, 63, 55, 47, 39, 31, 23, 15, 7初始置换和对应的末置换并不影响DES的安全性,它们的主要目的是为了更容易地将明文和密文数据以字节大小放入DES芯片中。3.3密钥置换由于不考虑每个字节的第8位,DES的密钥由64位减至56位,每个字节第8位作为奇偶校验以确保密钥不发生错误。如下表所示:57, 49, 41, 33, 25, 17, 9, 1, 58, 50, 42, 34, 26, 1810, 2, 59, 51, 43, 35, 27, 19, 11, 3, 60, 52, 44, 36 63, 55, 47, 39, 31, 23, 15, 7, 62, 54, 46, 38, 30, 2214, 6, 61, 53, 45, 37, 29, 21, 13, 5, 28, 20, 12, 4在DES的每一轮中,从56位密钥产生出不同的48位子密钥(subkey),这些子密钥是这样确定的:首先,56位密钥被分成两部分,每部分28位。然后,根据轮数,这两部分分别循环左移1位或2位。每轮移动的位数如下表:轮 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16位数1 1 2 2 2 2 2 2 1 2 2 2 2 2 2 1移动后,就从56位中选出48位。这个运算既置换了每位的顺序,也选择了子密钥,被称为压缩置换(compression permutation)。下表即定义了压缩置换:14, 17, 11, 24, 1, 5, 3, 28, 15, 6, 21, 1023, 19, 12, 4, 26, 8, 16, 7, 27, 20, 13, 241, 52, 31, 37, 47, 55, 30, 40, 51, 45, 33, 4844, 49, 39, 56, 34, 53, 46, 42, 50, 36, 29, 32可以看出,第33位的那一位在输出时移到了第35位,而处于第18位的那一位被忽略了。3.4扩展置换这个运算将数据的右半部分从32位扩展到48位。这个操作两方面的目的:它产生了与密钥同长度的数据以进行异或运算;它提供了更长的结果,使得在替代运算中能进行压缩。如下图所示: 对每个4位输入分组,第1位和第4位分别表示输出分组中的两位,而第2位和第3位分别表示输出分组中的一位,下表给出了哪一输出位对应哪一输入位:32, 1,2, 3, 4, 5, 4, 5, 6, 7, 8, 98, 9, 10, 11, 12, 13, 12, 13, 14, 15, 16, 1716, 17, 18, 19, 20, 21, 20, 21, 22, 23, 24, 2524, 25, 26, 27, 28, 29, 28, 29, 30, 31, 32, 1处于输入分组中第3位的位置移到了输出分组中的第4位,而输入分组的第21位则移到了输出分组的第30位和第32位。尽管输出分组大于输入分组,但每一个输入分组产生唯一的输出分组。3.5 S盒代替压缩后的密钥与扩展分组异或以后,将48位的结果送入,进行代替运算。替代由8个S盒完成,每一个S盒都由6位输入,4位输出,且这8个S盒是不同的。48位的输入被分为8个6位的分组,每一个分组对应一个S盒代替操作:分组1由S盒1操作,分组2由S盒2操作等等。如下图所示:每一个S盒是一个4行、16列的表。盒中的每一项都是一个4位的数。S盒的6个位输入确定了其对应的输出在哪一行哪一列。下表列出所有8个S盒:S盒1:14, 4, 13, 1, 2, 15, 11, 8, 3, 10, 6, 12, 5, 9, 0, 70, 15, 7, 4, 14, 2, 13, 1, 10, 6, 12, 11, 9, 5, 3, 84, 1, 14, 8, 13, 6, 2, 11, 15, 12, 9, 7, 3, 10, 5, 015, 12, 8, 2, 4, 9, 1, 7, 5, 11, 3, 14, 10, 0, 6, 13S盒2:15, 1, 8, 14, 6, 11, 3, 4, 9, 7, 2, 13, 12, 0, 5, 103, 13, 4, 7, 15, 2, 8, 14, 12, 0, 1, 10, 6, 9, 11, 50, 14, 7, 11, 10, 4, 13, 1, 5, 8, 12, 6, 9, 3, 2, 1513, 8, 10, 1, 3, 15, 4, 2, 11, 6, 7, 12, 0, 5, 14, 9S盒3:10, 0, 9, 14, 6, 3, 15, 5, 1, 13, 12, 7, 11, 4, 2, 813, 7, 0, 9, 3, 4, 6, 10, 2, 8, 5, 14, 12, 11, 15, 113, 6, 4, 9, 8, 15, 3, 0, 11, 1, 2, 12, 5, 10, 14, 71, 10, 13, 0, 6, 9, 8, 7, 4, 15, 14, 3, 11, 5, 2, 12S盒4:7, 13, 14, 3, 0, 6, 9, 10, 1, 2, 8, 5 ,11, 12, 4, 1513, 8, 11, 5, 6, 15, 0, 3, 4, 7, 2, 12, 1, 10, 14, 910, 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, 14S盒5:2, 12, 4, 1, 7, 10, 11, 6, 8, 5, 3, 15, 13, 0, 14, 914, 11, 2, 12, 4, 7, 13, 1, 5, 0, 15, 10, 3, 9, 8, 64, 2, 1, 11, 10, 13, 7, 8, 15, 9, 12, 5, 6, 3, 0, 1411, 8, 12, 7, 1, 14, 2, 13, 6, 15, 0, 9, 10, 4, 5, 3S盒6:12, 1, 10, 15, 9, 2, 6, 8, 0, 13, 3, 4, 14, 7, 5, 1110, 15, 4, 2, 7, 12, 9, 5, 6, 1, 13, 14, 0, 11, 3, 89, 14, 15, 5, 2, 8, 12, 3, 7, 0, 4, 10, 1, 13, 11, 64, 3, 2, 12, 9, 5, 15, 10, 11, 14, 1, 7, 6, 0, 8, 13 S盒7:4, 11, 2, 14, 15, 0, 8, 13, 3, 12, 9, 7, 5, 10, 6, 113, 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, 26, 11, 13, 8, 1, 4, 10, 7, 9, 5, 0, 15, 14, 2, 3, 12S盒8:13, 2, 8, 4, 6, 15, 11, 1, 10, 9, 3, 14, 5, 0, 12, 71, 15, 13, 8, 10, 3, 7, 4, 12, 5, 6, 11, 0, 14, 9, 27, 11, 4, 1, 9, 12, 14, 2, 0, 6, 10, 13, 15, 3, 5, 82, 1, 14, 7, 4, 10, 8, 13, 15, 12, 9, 0, 3, 5, 6, 11假定将S盒的6位的输入标记位b1、b2、b3、b4、b5、b6。则b1和b6组合构成了一个2位数,从0到3,它对应着表的一行。从b2到b5构成了一个4位数,从0到15,对应着表中的一列。例如,假设第6个S盒的输入为110011,第1位和第6位组合形成了11,对应着第6个S盒的第三行,中间4位组合形成了1001,它对应着同一个S盒的第9列,S盒6在第三行第9列的数是14,则用值1110来代替110011。这是DES算法的关键步骤,所有其他的运算都是线性的,易于分析,而S盒是非线性的,它比DES的其他任何一步提供了更好的安全性。这个代替过程的结果是8个4位的分组,他们重新合在一起形成了一个32位的分组。3.6 P盒置换S盒代替运算的32位输出依照P盒进行置换。该置换把每输入位映射到输出位,任一位不能被映射两次,也不能被略去,下表给出了每位移至的位置:16, 7, 20, 21, 29, 12, 28, 17, 1, 15, 23, 26, 5, 18, 31, 102, 8, 24, 14, 32, 27, 3, 9, 19, 13, 30, 6, 22, 11, 4, 25第21位移到了第4位,同时第4位移到了第31位。最后,将P盒置换的结果与最初的64位分组的左半部分异或,然后左、右半部分交换,接着开始另一轮。3.7末置换末置换是初始置换的逆过程。DES在最后一轮后,左半部分和右半部分并未交换,而是将两部分并在一起形成一个分组作为末置换的输入,该置换如下表如示:40, 8, 48, 16, 56, 24, 64, 32, 39, 7

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论