毕业设计(论文)移动充值卡密加密技术.doc

上传人:laozhun 文档编号:3984308 上传时间:2023-03-30 格式:DOC 页数:45 大小:409.50KB
返回 下载 相关 举报
毕业设计(论文)移动充值卡密加密技术.doc_第1页
第1页 / 共45页
毕业设计(论文)移动充值卡密加密技术.doc_第2页
第2页 / 共45页
毕业设计(论文)移动充值卡密加密技术.doc_第3页
第3页 / 共45页
毕业设计(论文)移动充值卡密加密技术.doc_第4页
第4页 / 共45页
毕业设计(论文)移动充值卡密加密技术.doc_第5页
第5页 / 共45页
点击查看更多>>
资源描述

《毕业设计(论文)移动充值卡密加密技术.doc》由会员分享,可在线阅读,更多相关《毕业设计(论文)移动充值卡密加密技术.doc(45页珍藏版)》请在三一办公上搜索。

1、移动充值卡密加密技术作者姓名:栾学文 专业班级:2008050103 指导老师:李勇摘 要随着信息社会的到来,人们在享受信息资源所带来的巨大的利益的同时,也面临着信息安全的严峻考验。信息安全已经成为世界性的现实问题,信息安全问题已威胁到国家的政治、经济、军事、文化、意识形态等领域,同时,信息安全问题也是人们能否护自己的个人隐私的关键。信息安全是社会稳定安全的必要前提条件。本文通过对各种软件和算法的研究,最后采用VC+编写程序,实现了DES加密算法,对移动充值卡密进行加密。将移动充值卡密以文件形式进行加密后,其中信息不会被轻易盗用,保证了信息的安全性。关键词:解密 加密 DES 移动充值卡密 信

2、息安全 Mobile phone card dense encryption technologyAbstract: With the advent of the information society, people in the enjoyment of information resources brought about tremendous benefits, but also faced with a letter Income security, a severe test. Information security has become a worldwide reality,

3、 information security has been a threat to the countrys political .Governance, economic, military, cultural, ideological and other areas at the same time, the issue of information security is also a possibility of retaining their own personal Privacy key. Information security and social stability is

4、 a necessary precondition for security.Based on various software and algorithm research, Useing VC+ implement DES encryption algorithm to encrypt mobile recharge card. Mobile recharge card in the form of a document is encrypted, the information will not be easily stolen, ensures the security of info

5、rmationKeywords: Decode, Encode, DES,Mobile recharge information,Information Security目 录第1章 前 言1第2章 需求分析22.1 系统概述22.1.1概述22.2密码学的发展22.3 文件加密解密中密码体制研究62.3.1密码原理62.3.2密码体制7第3章 分组加密解密算法-DES算法103.1 DES算法简介103.2 DES加密过程详解10第4章 DES算法的C+实现194.1DES加密中所使用的函数194.2DES实现文件加密函数及其代码19第5章 DES加密算法实例215.1 实例程序 文件加密程

6、序21结 论23致 谢24参考文献25附 录26第1章 前 言信息安全是一个综合性的交叉学科领域,广泛涉及数学、密码学、计算机、通信、控制、人工智能、安全工程、人文科学等诸多学科,是近几年迅速发展的一个热点学科领域。信息对抗和网络安全是信息安全的核心热点,它的研究和发展又将刺激、推动和促进相关学科的研究与发展。至今,密码技术是取得信息安全性最有效的一种方法, 密码技术是信息安全的核心技术1。通过数据加密,人们可以有效地保证通信线路上的内容不被泄露,而且还可以检验传送信息的完整性。进一步,密码技术可以应用于数字签名、身份认证和信息鉴定,这些应用对于资源存取控制以及其它安全措施是必须而且有效的。信

7、息安全产品从应用类型上可以分为防火墙类产品、防病毒类产品、防攻击类产品、密码类产品、认证类产品和访问控制类产品。相对于防病毒软件和防火墙软件来说,基于密码技术密码类产品、认证类产品份额相对较小,但随着金融、电信、政府等行业信息化建设对于网络安全整体解决方案需求的增加,将会有较大的增长。在本次毕业设计中,使用典型的加密算法-DES对移动充值卡密进行加密,从而达到防止别人盗用此卡密的目的。第2章 需求分析2.1 系统概述移动通信充值卡加密系统是针对移动通信后付费业务而提出的一种便利而又安全的解决方案。然而这种加密系统又由几部分决定其安全性:一是加密算法的安全性,即加密技术。二是密钥的管理。本文主要

8、针对加密算法进行研究。2.1.1概述在现代社会中,信息处理和通信技术日益发展,保护信息的安全,特别是保护重要信息的安全,越来越成受到国内外有关研究人员的极大重视。当前由于信息的保护不利和失误,世界各国遭受的损失是巨大的。现在,国际互联网上的各站点,几乎都有各种各样的安全措施,例如防火墙(FireWall)、网络加密、加密狗等。但是,这些都是系统或网站层次的安全设施。对于广大用户来说,更为直接、也更为有效的办法,就是使用信息加密技术。加密技术是一门实用的技术,有着悠久的历史。过去,加密技术仅被军事和谋报人员以及某些大型商业企业所采用,应用范围十分有限。加密学也是一门与数学有关的深奥的科学,有能力

9、研究加密学的人为数不多。恐怕这也是它鲜为人知、较少应用的原因。信息安全的内容主要包括五个部分:信息的保密性、信息的完整性、信息的可用性、信息的可控性、信息的不可否认性。密码技术是保证信息安全的核心。2.2密码学的发展密码学的发展历程大致经历了四个阶段:古代加密方法、古典密码、近代密码以及当代加密。1.古代加密方法(手工阶段)源于应用的无穷需求总是推动技术发明和进步的直接动力。存于石刻或史书中的记载表明,许多古代文明,包括埃及人、希伯来人、亚述人都在实践中逐步发明了密码系统。从某种意义上说,战争是科学技术进步的催化剂。人类自从有了战争,就面临着通信安全的需求,密码技术源远流长。古代加密方法大约起

10、源于公元前440年出现在古希腊战争中的隐写术。当时为了安全传送军事情报,奴隶主剃光奴隶的头发,将情报写在奴隶的光头上,待头发长长后将奴隶送到另一个部落,再次剃光头发,原有的信息复现出来,从而实现这两个部落之间的秘密通信。 公元前400年,斯巴达人就发明了“塞塔式密码”,即把长条纸螺旋形地斜绕在一个多棱棒上,将文字沿棒的水平方向从左到右书写,写一个字旋转一下,写完一行再另起一行从左到右写,直到写完。解下来后,纸条上的文字消息杂乱无章、无法理解,这就是密文,但将它绕在另一个同等尺寸的棒子上后,就能看到原始的消息。这是最早的密码技术。 我国古代也早有以藏头诗、藏尾诗、漏格诗及绘画等形式,将要表达的真

11、正意思或“密语”隐藏在诗文或画卷中特定位置的记载,一般人只注意诗或画的表面意境,而不会去注意或很难发现隐藏其中的“话外之音”。 比如:我画蓝江水悠悠,爱晚亭枫叶愁。秋月溶溶照佛寺,香烟袅袅绕轻楼.传输密文的发明地是古希腊,一个叫Aeneas Tacticus的希腊人在论要塞的防护一书中对此做了最早的论述。公元前2世纪,一个叫Polybius的希腊人设计了一种将字母编码成符号对的方法,他使用了一个称为Polybius的校验表,这个表中包含许多后来在加密系统中非常常见的成分,如代替与换位。Polybius校验表由一个55的网格组成(如表1-1所示),网格中包含26个英文字母,其中I和J在同一格中。

12、每一个字母被转换成两个数字,第一个是字母所在的行数,第二个是字母所在的列数。如字母A就对应着11,字母B就对应着12,以此类推。使用这种密码可以将明文“message”置换为密文“32154343112215”。在古代,这种棋盘密码被广泛使用。2.古典密码(机械阶段)古典密码的加密方法一般是文字置换,使用手工或机械变换的方式实现。古典密码系统已经初步体现出近代密码系统的雏形,它比古代加密方法复杂,其变化较小。古典密码的代表密码体制主要有:单表代替密码、多表代替密码及转轮密码。Caesar密码及其改进方法公元前60年(大约两千年前),古罗马统帅“朱利叶斯凯撒”(Caesar),第一个用当时发明的

13、“凯撒密码”书写军事文书,用于战时通信。后来他成了古罗马帝王,就是“凯撒”(Caesar)大帝。A.替换加密法凯撒加密法是替换方法中的一个特例,消息中每一个字母换成向后三个字母的字母的。学习并演示此算法的加密与解密过程的。1:A B C D E F G H I J K L MN O P Q R S T U V W X Y Z 3个字母:2:D E F G H I J K L M N O PQ R S T U V W X Y Z A B C 4个字母:3:E F G H I J K L M N O P Q R S T U V W X Y Z A B C D 明文:SHE IS A STUDENT

14、密文:VKH LV D VWXGHQW算法:Caesar凯撒加密法密钥:Key 3(25个密钥)B.单码加密法凯撒加密法的改进就是采用单码加密法,消息中每一个字母换成26个字母中的任何一个字母(除了本身不算之外)。比如:A=B-Z B=A,C-Z C=A,B,D-Z。不过,还得满足这个单码是一个一一对应关系才行的。经过了这种单码加密之后,26个字母的任何转换与组合,就可以得到(26x25x24x23.x2)=4x(10的26次方)种的可能性的。此算法的加密与解密的讲解的。C.栅栏加密技术一明文:Come home tomorrow算法:C m h m t m r o o e o e o o r

15、 w 密文:Cmhmtmrooeoeoorw 解密: C m h m t m r o o e o e o o r w明文: Come home tomorrowD.栅栏加密技术二 将明文信息一行一行地写入预定长度的矩形中的。假设矩形为6列.明文:Come home tomorrow算法:第一列 第二列 第三列 第四列 第五列 第六列 C o m e h o m e t o m o r r o w 密文:cmr oer mto eowhmoo解密: 16/6=2-3 c o m e h o m e t o m o r r o w 明文: come home tomorrowE.栅栏加密技术的变形

16、之简单分栏式变换加密技术,将栅栏加密技术二中的顺序读取方法变成随机读取。将明文信息一行一行地写入预定长度的矩形中的。假设矩形为6列.明文:Come home tomorrow算法:第一列 第二列 第三列 第四列 第五列 第六列 C o m e h o m e t o m o r r o w 密钥:123456(顺序读取方式)密文:cmr oer mto eow hm oo 密钥:461253(随机顺序读取方式)密文:eow oo cmr oer hm mtoF:解密这种单码加密法(Caesar)变换及简单分栏式变换一般采用语言中的语句的使用频度来破解的.3.近代密码(计算机阶段) 密码形成一门

17、新的学科是在20世纪70年代,这是受计算机科学蓬勃发展刺激和推动的结果。快速电子计算机和现代数学方法一方面为加密技术提供了新的概念和工具,另一方面也给破译者提供了有力武器。计算机和电子学时代的到来给密码设计者带来了前所未有的自由,他们可以轻易地摆脱原先用铅笔和纸进行手工设计时易犯的错误,也不用再面对用电子机械方式实现的密码机的高额费用。总之,利用电子计算机可以设计出更为复杂的密码系统。1.常见的对称加密算法:DES、IDEA、RC系列(RC2,RC4,RC5)、CAST和Blowfish. 2.常见的非对称加密算法:RSA、Elgamal、背包算法、Rabin、D-H、ECC(椭圆曲线加密算法

18、)。 而非对称密码与对称密码比较,非对称加密运算速度比对称加密要慢数千倍。并且其算法也较复杂,所以本文用比较常用的对称加密算法,且对密码学发展史上有着重要作用的DES算法对移动充值卡加密进行探讨。4. 当代密码 由于技术发展,当代加密技术更加先进,更加难以破解。当代加密系统除了加强以前的经典加密算法外,已经研究出图像加密以及生物加密。已经广泛使用的就是一维码和二维码。生物加密是指根据指纹以及瞳孔等人体生物特征对重要文件或者其他重要东西进行加密。2.3 文件加密解密中密码体制研究就整体而言,计算机中的加密问题应包括文件存储加密、口令存储加密、数据库数据加密、电子邮件加密等信息加密和数据传输加密(

19、信道加密)以及密码体制、密钥管理中心等三个方面的内容,下面我们通过加密原理和密码体制来概略地讲讲这三个方面的内容: 2.3.1密码原理(1)密码原理。所谓加密,就是将正常情况下可懂的文件数据输入密码机,由密码机变成不可懂的乱码,即将“明文”变成“密文”;所谓解密,就是上述过程的逆过程,即将“密文” 变成“明文”。密码机可看做是一个用电子元件实现一种复杂数学运算的机器。复杂数学运算可记为,这里C=密文,p=明文,k=密钥,f是密码算法。K是自变量,C是因变量。不同的K有不同的C,对于某个密码算法f,K的选择范围越大,C的变化就越多,这个密码算法被人破译的难度就越大,保密强度就越高。如何评价K的选

20、择范围大小呢?一般是看K的位数,位数长的(如128位以上)选择范围大,位数短的(如56位)选择范围小。一个国家的密码政策,通常是用位数长的高强度密码(位数可达)保护国家秘密,其它用于保护商业秘密。 在数据传输加密过程中,收发双方线路密码机使用的是相同的密码算法,注入了相同的密钥,发方向收方发出明文,经密码机变成密文后送上公网通信线路,到达收方后先经密码机解密再送到收方电脑上。密文在公用通信网上传输时,如果被截收,窃密方收到的是不可懂的乱码,无法窃取信息内容。 在文件存储加密中,加密解密卡加解密采用同一种算法和同一个密钥,工作人员用电脑处理文件后先将文件加密再存入磁盘,以防窃密者盗用磁盘窃取文件

21、。工作人员调用该文件时,文件先经解密再从显示器上显示出来以供使用。2.3.2密码体制 密码体制:密码体制也叫密码系统,是指能完整地解决信息安全中的机密性、数据完整性、认证、身份识别、可控性及不可抵赖性等问题中的一个或几个的一个系统。对一个密码体制的正确描述,需要用数学方法清楚地描述其中的各种对象、参数、解决问题所使用的算法等。密码体制又分为私用密钥加密技术(对称加密)和公开密钥加密技术(非对称加密)。 1、对称密码体制 对称密码体制是一种传统密码体制,也称为私钥密码体制。在对称加密系统中,加密和解密采用相同的密钥。因为加解密密钥相同,需要通信的双方必须选择和保存他们共同的密钥,各方必须信任对方

22、不会将密钥泄密出去,这样就可以实现数据的机密性和完整性。对于具有n个用户的网络,需要n(n-1)/2个密钥,在用户群不是很大的情况下,对称加密系统是有效的。但是对于大型网络,当用户群很大,分布很广时,密钥的分配和保存就成了问题。对机密信息进行加密和验证随报文一起发送报文摘要(或散列值)来实现。比较典型的算法有DES(Datall Encryption Standard数据加密标准)算法及其变形Triple DES(三重DES),GDES(广义DES);欧洲的IDEA;日本的FEAL N、RC5等。DES标准由美国国家标准局提出,主要应用于银行业的电子资金转帐(EFT)领域。DES的密钥长度为5

23、6bit。Triple DES使用两个独立的56bit密钥对交换的信息进行3次加密,从而使其有效长度达到112bit。RC2和RC4方法是RSA数据安全公司的对称加密专利算法,它们采用可变密钥长度的算法。通过规定不同的密钥长度,,C2和RC4能够提高或降低安全的程度。对称密码算法的优点是计算开销小,加密速度快,是目前用于信息加密的主要算法。它的局限性在于它存在着通信的贸易双方之间确保密钥安全交换的问题。此外,某一贸易方有几个贸易关系,他就要维护几个专用密钥。它也没法鉴别贸易发起方或贸易最终方,因为贸易的双方的密钥相同。另外,由于对称加密系统仅能用于对数据进行加解密处理,提供数据的机密性,不能用

24、于数字签名。因而人们迫切需要寻找新的密码体制。 2、非对称密码体制 非对称密码体制也叫公钥加密技术,该技术就是针对私钥密码体制的缺陷被提出来的。在公钥加密系统中,加密和解密是相对独立的,加密和解密会使用两把不同的密钥,加密密钥(公开密钥)向公众公开,谁都可以使用,解密密钥(秘密密钥)只有解密人自己知道,非法使用者根据公开的加密密钥无法推算出解密密钥,顾其可称为公钥密码体制。如果一个人选择并公布了他的公钥,另外任何人都可以用这一公钥来加密传送给那个人的消息。私钥是秘密保存的,只有私钥的所有者才能利用私钥对密文进行解密。公钥密码体制的算法中最著名的代表是RSA系统,此外还有:背包密码、McElie

25、ce密码、Diffe_Hellman、Rabin、零知识证明、椭圆曲线、EIGamal算法等。公钥密钥的密钥管理比较简单,并且可以方便的实现数字签名和验证。但算法复杂,加密数据的速率较低。公钥加密系统不存在对称加密系统中密钥的分配和保存问题,对于具有n个用户的网络,仅需要2n个密钥。公钥加密系统除了用于数据加密外,还可用于数字签名。公钥加密系统可提供以下功能:A、机密性(Confidentiality):保证非授权人员不能非法获取信息,通过数据加密来实现;B、确认(Authentication):保证对方属于所声称的实体,通过数字签名来实现;C、数据完整性(Datall integrity):

26、保证信息内容不被篡改,入侵者不可能用假消息代替合法消息,通过数字签名来实现;D、不可抵赖性(Nonrepudiation):发送者不可能事后否认他发送过消息,消息的接受者可以向中立的第三方证实所指的发送者确实发出了消息,通过数字签名来实现。可见公钥加密系统满足信息安全的所有主要目标。第3章 分组加密解密算法-DES算法3.1 DES算法简介 DES算法为密码体制中的对称密码体制,又被成为美国数据加密标准,是1972年美国IBM公司研制的对称密码体制加密算法。其密钥长度为56位,明文按64位进行分组,将分组后的明文组和56位的密钥按位替代或交换的方法形成密文组的加密方法。DES加密算法特点:分组

27、比较短、密钥太短、密码生命周期短、运算速度较慢。DES工作的基本原理是,其入口参数有三个:key、data、mode。 key为加密解密使用的密钥,data为加密解密的数据,mode为其工作模式。当模式为加密模式时,明文按照64位进行分组,形成明文组,key用于对数据加密,当模式为解密模式时,key用于对数据解密。实际运用中,密钥只用到了64位中的56位,这样才具有高的安全性。DES( Data Encryption Standard)算法,于1977年得到美国政府的正式许可,是一种用56位密钥来加密64位数据的方法。虽然56位密钥的DES算法已经风光不在,而且常有用Des加密的明文被破译的报

28、道,但是了解一下昔日美国的标准加密算法总是有益的,而且目前DES算法得到了广泛的应用,在某些场合,仍然发挥着余热。3.2 DES加密过程详解3.2.1 DES加密流程DES是对二元数字分组加密的分组密码算法,分组长度为64比特。每64位明文加密成64位密文,没有数据压缩和扩展,密钥长度为56比特,若输入64比特,则第8,16,24,32,40,48,56,64为奇偶校验位,所以,实际密钥只有56位。DES算法完全公开,其保密性完全依赖密钥。它的缺点就在于密钥太短。设明文串m=m1m2m64;密钥串k=k1k2k64。在后面的介绍中可以看到k8,k16,k24,k32,k40,k48,k56,k

29、64实际上是不起作用的。DES的加密过程可表示为:DES(m)= IP-1T16T15T2T1IP(m).下面是完全16轮DES算法框图:图3-1 完全16轮DES算法3.2.2 初始置换IP初始置换是将输入的64位明文分为8个数组,每一组包括8位,按1至64编号。IP的置换规则如下表:表3-1 IP置换规则58504234261810 260524436282012 462544638302214 664564840322416 8574941332517 9 159514335271911 361534537292113 563554739312315 7即将输入的第58位换到第1位,第5

30、0位换到第2位,依次类推,最后一位是原来的第7位。3.2.3 IP-1是IP的逆置换表逆置换规则如下表所示:由于第1位经过初始置换后,已处于第40位。逆置换就是再将第40位换回到第1位。表3-2 IP-1置换40848165624643239 747155523633138 646145422623037 545135321612936 444125220602835 343115119592734 242105018582633 141 949175725初始置换IP及其逆置换IP-1并没有密码学意义,因为置换前后的一一对应关系是已知的。它们的作用在于打乱原来输入明文的ASC码字划分的关系,

31、并将原来明文的第位m8,m16,m24,m32,m40,m48,m56,m64位(校验位)变成IP的输出的一个字节。3.2.4 DES算法的迭代过程图3-2 DES算法的迭代过程图图中Li-1和Ri-1分别是第i-1次迭代结果的左右两部分,各32比特。即Li=Ri-1, Ri=Li-1 f(Ri-1,ki)。其中轮密钥Ki为48比特,函数F(R,K)的计算过程如图1.5所示。轮输入的右半部分R为32比特,R首先被扩展成48比特,扩展过程由表3定义,其中将R的16个比特各重复一次。扩展后的48比特再与子密钥Ki异或,然后再通过一个S盒,产生32比特的输出。该输出再经过一个由表4定义的置换,产生的

32、结果即为函数F(R,K)的输出。表3-3 扩展E32 1 2 3 4 5 4 5 6 7 8 9 8 9101112131213141516171617181920212021222324252425262728292829303132 1ki是由64比特的初始密钥(亦称种子密钥)导出的第i轮子密钥,ki是48比特DES算法的关键是f(Ri-1,ki)的功能,其中的重点又在S-盒(Substitution Boxes)上。F函数的输出是32比特。图3-3 F函数计算过程图将R经过一个扩展运算E变为48位,记为E(R)。计算E(R)K=B,对B施行代换S,此代换由8个代换盒组成,即S-盒。每个S

33、-盒有6个输入,4个输出,将B依次分为8组,每组6位,记B= B1B2B3B4B5B6B7B8其中Bj作为第j个S-盒的输入,其输出为Cj,C= C1C2C3C4C5C6C7C8就是代换S的输出,所以代换S是一个48位输入,32位输出的选择压缩运算,将结果C再实行一个置换P(表4),即得F(R,K)。其中,扩展运算E与置换P主要作用是增加算法的扩散效果。S-盒是DES算法中唯一的非线性部件,当然也就是整个算法的安全性所在。它的设计原则与过程一直因为种种不为人知的因素所限,而未被公布出来。S-盒如下表:表3-4 S-盒函数S114 413 1 21511 8 310 612 5 9 0 7 01

34、5 7 414 213 110 61211 9 5 3 8 4 114 813 6 2111512 9 7 310 5 01512 8 2 4 9 1 7 511 31410 0 613S215 1 814 611 3 4 9 7 21312 0 510 313 4 715 2 81412 0 110 6 911 5 014 71110 413 1 5 812 6 9 3 21513 810 1 315 4 211 6 712 0 514 9S310 0 914 6 315 5 11312 711 4 2 813 7 0 9 3 4 610 2 8 514121115 113 6 4 9 81

35、5 3 011 1 212 51014 7 11013 0 6 9 8 7 41514 311 5 212S4 71314 3 0 6 910 1 2 8 51112 41513 811 5 615 0 3 4 7 212 11014 910 6 9 01211 71315 1 314 5 2 8 4 315 0 610 113 8 9 4 51112 7 214S5 212 4 1 71011 6 8 5 31513 014 91411 212 4 713 1 5 01510 3 9 8 6 4 5 1111013 7 815 912 5 6 3 01411 812 7 114 213 61

36、5 0 910 4 5 3S612 11015 9 2 6 8 013 3 414 7 5111015 4 2 712 9 5 6 11314 011 3 8 91415 5 2 812 3 7 0 410 11311 6 4 3 212 9 515101114 1 7 6 0 813S7 411 21415 0 813 312 9 7 510 6 113 011 7 4 9 11014 3 512 215 8 6 1 4111312 3 7141015 6 8 0 5 9 2 61113 8 1 410 7 9 5 01514 2 312S13 2 8 4 61511 110 9 314 5

37、 012 7 11513 810 3 7 412 5 611 014 9 2 711 4 1 91214 2 0 6101315 3 5 8 2 114 7 410 8131512 9 0 3 5 611 S-盒的置换规则为:取0,1,15上的4个置换,即它的4个排列排成4行,得一4*16矩阵。若给定该S盒的6个输入为b0 b1 b2 b3 b4 b5,在Si表中找出b0 b5行,b1b2 b3b4列的元素,以4位二进制表示该元素,此为S-盒Si的输出。例2.1 S2的输入为101011,b1 =1,b6=1,b1 b6=(11)2=3 (b2 b3 b4 b5)2=(0101)2=5查S2表

38、可知第3行第5列的输出是15,15的二进制表示为1111。则S2的输出为1111。8个S-盒的代换方式都是一样的。S盒输出的32比特经P置换,P置换的功能是将32位的输入,按以下顺序置换,然后输入仍为32比特。P置换的顺序如表3.5:表3-5 置换P_PERMUTE3216 7202129122817 1152326 5183110 2 824143227 3 9191330 62211 4253.2.5 子密钥生成初始密钥K(64bit)PC-1D0(28bit)C0(28bit)LS1LS1K1PC-2D1C1LS2LS2LS16LS16K16PC-2D16C16图3-4 DES子密钥生成

39、流程图图3.4给出了子密钥产生的流程图。首先对初始密钥经过置换PC-1(表3.67),将初始密钥的8个奇偶校验位剔除掉,而留下真正的56比特初始密钥。表3-6 密钥置换PC_PERMUTE156574941332517 9 158504234261810 259514335271911 36052443663554739312315 762544638302214 661534537292113 5282012 4然后将此56位分为C0,D0两部分,各28比特,C0,D0如下:C0=k57k49k44k36D0=k63k55k12k4然后分别进行一个循环左移函数LS1,得到C1,D1,将C1(

40、28位),D1(28位)连成56比特数据,再经过密钥置换PC-2(表2.7)做重排动作,从而便得到了密钥K1(48位)。依次类推,便可得到K2,K3K16。表3-7 密钥置换PC_PERMUTE24814171124 1 5 32815 62110231912 426 816 7272013 2415231374755304051453348444939563453464250362932其中LS1(1i16)表示一个或两个位置的循环左移,当i=1,2,9,16时,移一个位置,当i=3,4,5,6,7,8,10,11,12,13,14,15时,移两个位置。3.2.6 DES解密过程DES算法的

41、解密过程跟加密过程是一样的,区别仅仅在于第一次迭代时用密钥k16,第二次k15、,最后一次用k1,算法本身没有任何变化。第4章 DES算法的C+实现4.1 DES加密中所使用的函数void IP_PM(unsigned int x2) ip置换函数void IP_PM1(unsigned int x2) ip 逆置换void PC1(unsigned int x2) 密钥置换 64位到56位void PC2(unsigned x2) 密钥置换 56位到 48位unsigned int PM(unsigned int x) 32位置换unsigned int Sbox(unsigned int x2)

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 办公文档 > 其他范文


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号