毕业设计论文移动充值卡密加密技术

上传人:无*** 文档编号:78950499 上传时间:2022-04-22 格式:DOC 页数:45 大小:434.50KB
返回 下载 相关 举报
毕业设计论文移动充值卡密加密技术_第1页
第1页 / 共45页
毕业设计论文移动充值卡密加密技术_第2页
第2页 / 共45页
毕业设计论文移动充值卡密加密技术_第3页
第3页 / 共45页
点击查看更多>>
资源描述
移动充值卡密加密技术作者姓名:栾学文 专业班级:2008050103 指导老师:李勇摘 要随着信息社会的到来,人们在享受信息资源所带来的巨大的利益的同时,也面临着信息安全的严峻考验。信息安全已经成为世界性的现实问题,信息安全问题已威胁到国家的政治、经济、军事、文化、意识形态等领域,同时,信息安全问题也是人们能否护自己的个人隐私的关键。信息安全是社会稳定安全的必要前提条件。本文通过对各种软件和算法的研究,最后采用VC+编写程序,实现了DES加密算法,对移动充值卡密进行加密。将移动充值卡密以文件形式进行加密后,其中信息不会被轻易盗用,保证了信息的安全性。关键词:解密 加密 DES 移动充值卡密 信息安全 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, 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 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 informationKeywords: 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 实例程序 文件加密程序21结 论23致 谢24参考文献25附 录2642成都理工大学2012届本科毕业设计(论文)第1章 前 言信息安全是一个综合性的交叉学科领域,广泛涉及数学、密码学、计算机、通信、控制、人工智能、安全工程、人文科学等诸多学科,是近几年迅速发展的一个热点学科领域。信息对抗和网络安全是信息安全的核心热点,它的研究和发展又将刺激、推动和促进相关学科的研究与发展。至今,密码技术是取得信息安全性最有效的一种方法, 密码技术是信息安全的核心技术1。通过数据加密,人们可以有效地保证通信线路上的内容不被泄露,而且还可以检验传送信息的完整性。进一步,密码技术可以应用于数字签名、身份认证和信息鉴定,这些应用对于资源存取控制以及其它安全措施是必须而且有效的。信息安全产品从应用类型上可以分为防火墙类产品、防病毒类产品、防攻击类产品、密码类产品、认证类产品和访问控制类产品。相对于防病毒软件和防火墙软件来说,基于密码技术密码类产品、认证类产品份额相对较小,但随着金融、电信、政府等行业信息化建设对于网络安全整体解决方案需求的增加,将会有较大的增长。在本次毕业设计中,使用典型的加密算法-DES对移动充值卡密进行加密,从而达到防止别人盗用此卡密的目的。第2章 需求分析2.1 系统概述移动通信充值卡加密系统是针对移动通信后付费业务而提出的一种便利而又安全的解决方案。然而这种加密系统又由几部分决定其安全性:一是加密算法的安全性,即加密技术。二是密钥的管理。本文主要针对加密算法进行研究。2.1.1概述在现代社会中,信息处理和通信技术日益发展,保护信息的安全,特别是保护重要信息的安全,越来越成受到国内外有关研究人员的极大重视。当前由于信息的保护不利和失误,世界各国遭受的损失是巨大的。现在,国际互联网上的各站点,几乎都有各种各样的安全措施,例如防火墙(FireWall)、网络加密、加密狗等。但是,这些都是系统或网站层次的安全设施。对于广大用户来说,更为直接、也更为有效的办法,就是使用信息加密技术。加密技术是一门实用的技术,有着悠久的历史。过去,加密技术仅被军事和谋报人员以及某些大型商业企业所采用,应用范围十分有限。加密学也是一门与数学有关的深奥的科学,有能力研究加密学的人为数不多。恐怕这也是它鲜为人知、较少应用的原因。信息安全的内容主要包括五个部分:信息的保密性、信息的完整性、信息的可用性、信息的可控性、信息的不可否认性。密码技术是保证信息安全的核心。2.2密码学的发展密码学的发展历程大致经历了四个阶段:古代加密方法、古典密码、近代密码以及当代加密。1.古代加密方法(手工阶段)源于应用的无穷需求总是推动技术发明和进步的直接动力。存于石刻或史书中的记载表明,许多古代文明,包括埃及人、希伯来人、亚述人都在实践中逐步发明了密码系统。从某种意义上说,战争是科学技术进步的催化剂。人类自从有了战争,就面临着通信安全的需求,密码技术源远流长。古代加密方法大约起源于公元前440年出现在古希腊战争中的隐写术。当时为了安全传送军事情报,奴隶主剃光奴隶的头发,将情报写在奴隶的光头上,待头发长长后将奴隶送到另一个部落,再次剃光头发,原有的信息复现出来,从而实现这两个部落之间的秘密通信。 公元前400年,斯巴达人就发明了“塞塔式密码”,即把长条纸螺旋形地斜绕在一个多棱棒上,将文字沿棒的水平方向从左到右书写,写一个字旋转一下,写完一行再另起一行从左到右写,直到写完。解下来后,纸条上的文字消息杂乱无章、无法理解,这就是密文,但将它绕在另一个同等尺寸的棒子上后,就能看到原始的消息。这是最早的密码技术。 我国古代也早有以藏头诗、藏尾诗、漏格诗及绘画等形式,将要表达的真正意思或“密语”隐藏在诗文或画卷中特定位置的记载,一般人只注意诗或画的表面意境,而不会去注意或很难发现隐藏其中的“话外之音”。 比如:我画蓝江水悠悠,爱晚亭枫叶愁。秋月溶溶照佛寺,香烟袅袅绕轻楼.传输密文的发明地是古希腊,一个叫Aeneas Tacticus的希腊人在论要塞的防护一书中对此做了最早的论述。公元前2世纪,一个叫Polybius的希腊人设计了一种将字母编码成符号对的方法,他使用了一个称为Polybius的校验表,这个表中包含许多后来在加密系统中非常常见的成分,如代替与换位。Polybius校验表由一个55的网格组成(如表1-1所示),网格中包含26个英文字母,其中I和J在同一格中。每一个字母被转换成两个数字,第一个是字母所在的行数,第二个是字母所在的列数。如字母A就对应着11,字母B就对应着12,以此类推。使用这种密码可以将明文“message”置换为密文“32154343112215”。在古代,这种棋盘密码被广泛使用。2.古典密码(机械阶段)古典密码的加密方法一般是文字置换,使用手工或机械变换的方式实现。古典密码系统已经初步体现出近代密码系统的雏形,它比古代加密方法复杂,其变化较小。古典密码的代表密码体制主要有:单表代替密码、多表代替密码及转轮密码。Caesar密码及其改进方法公元前60年(大约两千年前),古罗马统帅“朱利叶斯凯撒”(Caesar),第一个用当时发明的“凯撒密码”书写军事文书,用于战时通信。后来他成了古罗马帝王,就是“凯撒”(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密文: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 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.栅栏加密技术的变形之简单分栏式变换加密技术,将栅栏加密技术二中的顺序读取方法变成随机读取。将明文信息一行一行地写入预定长度的矩形中的。假设矩形为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.近代密码(计算机阶段) 密码形成一门新的学科是在20世纪70年代,这是受计算机科学蓬勃发展刺激和推动的结果。快速电子计算机和现代数学方法一方面为加密技术提供了新的概念和工具,另一方面也给破译者提供了有力武器。计算机和电子学时代的到来给密码设计者带来了前所未有的自由,他们可以轻易地摆脱原先用铅笔和纸进行手工设计时易犯的错误,也不用再面对用电子机械方式实现的密码机的高额费用。总之,利用电子计算机可以设计出更为复杂的密码系统。1.常见的对称加密算法:DES、IDEA、RC系列(RC2,RC4,RC5)、CAST和Blowfish. 2.常见的非对称加密算法:RSA、Elgamal、背包算法、Rabin、D-H、ECC(椭圆曲线加密算法)。 而非对称密码与对称密码比较,非对称加密运算速度比对称加密要慢数千倍。并且其算法也较复杂,所以本文用比较常用的对称加密算法,且对密码学发展史上有着重要作用的DES算法对移动充值卡加密进行探讨。4. 当代密码 由于技术发展,当代加密技术更加先进,更加难以破解。当代加密系统除了加强以前的经典加密算法外,已经研究出图像加密以及生物加密。已经广泛使用的就是一维码和二维码。生物加密是指根据指纹以及瞳孔等人体生物特征对重要文件或者其他重要东西进行加密。2.3 文件加密解密中密码体制研究就整体而言,计算机中的加密问题应包括文件存储加密、口令存储加密、数据库数据加密、电子邮件加密等信息加密和数据传输加密(信道加密)以及密码体制、密钥管理中心等三个方面的内容,下面我们通过加密原理和密码体制来概略地讲讲这三个方面的内容: 2.3.1密码原理(1)密码原理。所谓加密,就是将正常情况下可懂的文件数据输入密码机,由密码机变成不可懂的乱码,即将“明文”变成“密文”;所谓解密,就是上述过程的逆过程,即将“密文” 变成“明文”。密码机可看做是一个用电子元件实现一种复杂数学运算的机器。复杂数学运算可记为,这里C=密文,p=明文,k=密钥,f是密码算法。K是自变量,C是因变量。不同的K有不同的C,对于某个密码算法f,K的选择范围越大,C的变化就越多,这个密码算法被人破译的难度就越大,保密强度就越高。如何评价K的选择范围大小呢?一般是看K的位数,位数长的(如128位以上)选择范围大,位数短的(如56位)选择范围小。一个国家的密码政策,通常是用位数长的高强度密码(位数可达)保护国家秘密,其它用于保护商业秘密。 在数据传输加密过程中,收发双方线路密码机使用的是相同的密码算法,注入了相同的密钥,发方向收方发出明文,经密码机变成密文后送上公网通信线路,到达收方后先经密码机解密再送到收方电脑上。密文在公用通信网上传输时,如果被截收,窃密方收到的是不可懂的乱码,无法窃取信息内容。 在文件存储加密中,加密解密卡加解密采用同一种算法和同一个密钥,工作人员用电脑处理文件后先将文件加密再存入磁盘,以防窃密者盗用磁盘窃取文件。工作人员调用该文件时,文件先经解密再从显示器上显示出来以供使用。2.3.2密码体制 密码体制:密码体制也叫密码系统,是指能完整地解决信息安全中的机密性、数据完整性、认证、身份识别、可控性及不可抵赖性等问题中的一个或几个的一个系统。对一个密码体制的正确描述,需要用数学方法清楚地描述其中的各种对象、参数、解决问题所使用的算法等。密码体制又分为私用密钥加密技术(对称加密)和公开密钥加密技术(非对称加密)。 1、对称密码体制 对称密码体制是一种传统密码体制,也称为私钥密码体制。在对称加密系统中,加密和解密采用相同的密钥。因为加解密密钥相同,需要通信的双方必须选择和保存他们共同的密钥,各方必须信任对方不会将密钥泄密出去,这样就可以实现数据的机密性和完整性。对于具有n个用户的网络,需要n(n-1)/2个密钥,在用户群不是很大的情况下,对称加密系统是有效的。但是对于大型网络,当用户群很大,分布很广时,密钥的分配和保存就成了问题。对机密信息进行加密和验证随报文一起发送报文摘要(或散列值)来实现。比较典型的算法有DES(Datall Encryption Standard数据加密标准)算法及其变形Triple DES(三重DES),GDES(广义DES);欧洲的IDEA;日本的FEAL N、RC5等。DES标准由美国国家标准局提出,主要应用于银行业的电子资金转帐(EFT)领域。DES的密钥长度为56bit。Triple DES使用两个独立的56bit密钥对交换的信息进行3次加密,从而使其有效长度达到112bit。RC2和RC4方法是RSA数据安全公司的对称加密专利算法,它们采用可变密钥长度的算法。通过规定不同的密钥长度,,C2和RC4能够提高或降低安全的程度。对称密码算法的优点是计算开销小,加密速度快,是目前用于信息加密的主要算法。它的局限性在于它存在着通信的贸易双方之间确保密钥安全交换的问题。此外,某一贸易方有几个贸易关系,他就要维护几个专用密钥。它也没法鉴别贸易发起方或贸易最终方,因为贸易的双方的密钥相同。另外,由于对称加密系统仅能用于对数据进行加解密处理,提供数据的机密性,不能用于数字签名。因而人们迫切需要寻找新的密码体制。 2、非对称密码体制 非对称密码体制也叫公钥加密技术,该技术就是针对私钥密码体制的缺陷被提出来的。在公钥加密系统中,加密和解密是相对独立的,加密和解密会使用两把不同的密钥,加密密钥(公开密钥)向公众公开,谁都可以使用,解密密钥(秘密密钥)只有解密人自己知道,非法使用者根据公开的加密密钥无法推算出解密密钥,顾其可称为公钥密码体制。如果一个人选择并公布了他的公钥,另外任何人都可以用这一公钥来加密传送给那个人的消息。私钥是秘密保存的,只有私钥的所有者才能利用私钥对密文进行解密。公钥密码体制的算法中最著名的代表是RSA系统,此外还有:背包密码、McEliece密码、Diffe_Hellman、Rabin、零知识证明、椭圆曲线、EIGamal算法等。公钥密钥的密钥管理比较简单,并且可以方便的实现数字签名和验证。但算法复杂,加密数据的速率较低。公钥加密系统不存在对称加密系统中密钥的分配和保存问题,对于具有n个用户的网络,仅需要2n个密钥。公钥加密系统除了用于数据加密外,还可用于数字签名。公钥加密系统可提供以下功能:A、机密性(Confidentiality):保证非授权人员不能非法获取信息,通过数据加密来实现;B、确认(Authentication):保证对方属于所声称的实体,通过数字签名来实现;C、数据完整性(Datall integrity):保证信息内容不被篡改,入侵者不可能用假消息代替合法消息,通过数字签名来实现;D、不可抵赖性(Nonrepudiation):发送者不可能事后否认他发送过消息,消息的接受者可以向中立的第三方证实所指的发送者确实发出了消息,通过数字签名来实现。可见公钥加密系统满足信息安全的所有主要目标。第3章 分组加密解密算法-DES算法3.1 DES算法简介 DES算法为密码体制中的对称密码体制,又被成为美国数据加密标准,是1972年美国IBM公司研制的对称密码体制加密算法。其密钥长度为56位,明文按64位进行分组,将分组后的明文组和56位的密钥按位替代或交换的方法形成密文组的加密方法。DES加密算法特点:分组比较短、密钥太短、密码生命周期短、运算速度较慢。DES工作的基本原理是,其入口参数有三个:key、data、mode。 key为加密解密使用的密钥,data为加密解密的数据,mode为其工作模式。当模式为加密模式时,明文按照64位进行分组,形成明文组,key用于对数据加密,当模式为解密模式时,key用于对数据解密。实际运用中,密钥只用到了64位中的56位,这样才具有高的安全性。DES( Data Encryption Standard)算法,于1977年得到美国政府的正式许可,是一种用56位密钥来加密64位数据的方法。虽然56位密钥的DES算法已经风光不在,而且常有用Des加密的明文被破译的报道,但是了解一下昔日美国的标准加密算法总是有益的,而且目前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,k64实际上是不起作用的。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位,第50位换到第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码字划分的关系,并将原来明文的第位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定义的置换,产生的结果即为函数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-盒有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 015 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 815 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 615 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 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表可知第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子密钥生成流程图图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(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算法的解密过程跟加密过程是一样的,区别仅仅在于第一次迭代时用密钥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) s 盒置换void Extend(unsigned int x,unsigned int y2) 扩展换算unsigned int LTr(unsigned int x,unsigned int y) 28位密钥 移位void Ckey(unsigned int x2,unsigned int y162) 密钥生成void cryption(unsigned int text2,unsigned int key162,int flag)unsigned int chtoint(char ch4)void inttoch(_int64 temp,char ch4)4.2 DES实现文件加密函数及其代码运用DES算法可以对目标进行加密使其成为密文,下面函数便是对运用算法对文件加密,使得文件内容变得不可读取。int filecryption(char *fname,char ch9,int crypflag)FILE *fp;char ckey14=0,0,0,0,ckey24=0,0,0,0;unsigned keyn2;unsigned skeyn162;char text14,text24;unsigned int textn2;ckey10=ch0; ckey11=ch1; ckey12=ch2;ckey13=ch3;ckey20=ch4;ckey21=ch5;ckey22=ch6;ckey23=ch7;keyn0=chtoint(ckey1);keyn1=chtoint(ckey2);Ckey(keyn,skeyn);fp=fopen(fname,rb+);if(fp=NULL)return 2;int ftel=fseek(fp,0,2);ftel=ftell(fp);ftel=ftel%8;for(int j=ftel;0j&j=7;j+)fputc( ,fp); char filetemp20000;int filelength=ftell(fp);rewind(fp); fread(filetemp,filelength,1,fp);int endflag=0;for(;endflag+8=filelength;)text10=filetempendflag+0;text11=filetempendflag+1; text12=filetempendflag+2;text13=filetempendflag+3;text20=filetempendflag+4;text21=filetempendflag+5;text22=filetempendflag+6;text23=filetempendflag+7;textn0=chtoint(text1);textn1=chtoint(text2);cryption(textn,skeyn,crypflag);inttoch(textn0,text1);inttoch(textn1,text2);filetempendflag+0=text10;filetempendflag+1=text11; filetempendflag+2=text12;filetempendflag+3=text13;filetempendflag+4=text20;filetempendflag+5=text21; filetempendflag+6=text22;filetempendflag+7=text23; endflag+=8;rewind(fp);fwrite(filetemp,filelength,1,fp);fclose(fp);return 1;第5章 DES加密算法实例5.1 实例程序 文件加密程序这是文件加密系统 的截图 ,使用编写软件为vc+6.0图5-1 文件加密程序截图使用此程序加密文件使其成为无法识别的密文,从而达到对里面内容的保密。而文件内容就好比移动充值卡的卡号,只有知道密钥的人才能得到真正的卡号,从而达到充值的目的。所以加密成功后密钥的管理也是很重要的一个环节。加密前文件内容截图图5-2 文件加密前加密后文件内容截图图5-3 文件加密后截图结 论经过多月的学习,在老师和同学的支持与帮助之下,我顺利地完成了这次论文设计。使我对DES加密算法有了一定的了解,随着Internet的高速发展和应用,其安全越来越引起人们的关注、如何保护企业和个人在网络上的敏感信息不受侵犯己成为当前摆在人们面前的一个重大问题。加密作为一种用来保护用户内部第一道安全屏障,始终受到人们的关注和重视,并成为网络安全产品的首选。从当初确定题目到最后一个功能模块的完成,经历了无数次的错误、修改代码、运行的过程,感觉到平时学的知识是多么的浅薄,书到用时方恨少,现在是体验的真真切切。本来已经耳熟能详的代码,一到VC中书写,却提笔忘字,这充分的反应了我平时的基本功不扎实,常用代码的不熟练。给我以后的工作敲响了警钟,有了努力的方向。本次设计是我工作前一次很好的演练和实践的机会,是培养独立思考问题和自学能力的锻炼,使我意识到必须努力的学习才能在工作中体现自己的价值,适应社会的需要。虽然本文只研究了最基础的DES加密算法,但是加密学已成为现代社会一个重要的分支学科,关系到人们生活的方方面面。也出现了许多更复杂的,更难破译的算法,比如:AES, MD5 ,RC4等等。以及现在出现的某些生物加密,如通过瞳孔和指纹等生物特征来实现加密的。保证了人们的信息和财产安全。致 谢我首先要感谢我的导师李勇老师给予我的帮助与关怀,从他的身上我学到的不仅仅是知识,更多的是做人。李老师严谨治学,为人谦逊,在论文的写作过程中,李老师没有给我任何压力,让我拥有了很大的发挥空间。 一日为师终身为父。在此,我也要向四年来辛勤培养和教育,关心,帮助我的恩师们表示我最诚挚的敬意和感谢!记得李老师说过,对于父母不能用感谢,更多的是愧疚。的确,每每想到我的父母,眼底总是涌动出愧疚的泪水,他们给了我生命、思想和全部的爱,在我近二十年的读书生涯中,他们用自己微薄的力量保护着我,用自己辛勤的劳动支持着我,我无以为报,只能让自己在今后的道路上踏实向上,走好每一步。 同窗的友情同样难忘,砚湖畔、南强灯下,我们一同嬉笑过、拼搏过,这一路与你们同行真好!感谢我所有朋友对我的包容、体谅,谢谢大家 也许永远没有那一天,前程如朝霞般绚烂;也许永远没有那一天,成功如灯火般辉煌;也许只能是这样,攀援却达不到顶峰,也许一路走来,只为今天在我毕业论文的最后, 对所有关心帮助我的人说一声:谢谢参考文献1 邱志聪 等. 加密解密技能百练丛书M.北京: 中国铁道出版社,20052 Atul Kahata 等. CRYPTOGRAPHY AND NETWORK SECURITYM.北京:清华大学出版社,2009.3 Michael Welschenbach等. kryptographie in cund C+ zweite,uberarbeitete und erweiterte AuflageM. 电子工业出版社, 2003年.4 徐若智等. 信息安全与密码学M. 北京:清华大学出版社,2007年.5 K.Campbell , M.Wiener. DES is not a group,Advances in Cryptology-CRYPTO 92M.Lecture Notes in Computer Science 740 Springer-Verlag,1993, 512-520.6 孙淑玲 . 应用密码学M. 北京: 清华大学出版社,2004年, 11-19.7 陈刚 等 .移动通信充值卡加密系统的数据安全策略M. 北方交通大学计算机科学技术系 ,北京10004.8 肖国镇 . 密码学现状与展望J.电子学报.第5期 , 1987.9.9 胡忠旭 等.基于数字串加密算法的研究与实现J.红河学院学报.第4期 ,2011.8.10 刘晓真 等 .几种加密算法安全性的概率分析J. 河南教育学院学报( 自然科学版).第4期 ,2004.12.11 卢开橙 等.计算机密码学计算机网络中的数据保密与安全M.北京:清华大学出版社,2003年,38-48.12 赖溪松 等.计算机密码学及其应用M.北京:国防工业出版社,2007, 43-49.13 D.Coppersmith . The Data Encryption Standard (DES) and its strength against attacksM. IBM Journal of Research and Development, 38(3).243-250.14 Richard Spillman著,叶阮健,曹英,张长富译.经典密码学与现代密码学M.北京:清华大学出版社,2005,124-133.15 Oded Goldreich. Foundations of Cryptography Volume Basic ApplicationsM.BEIJING:Publishing House of Electronics Industry,2005年,375-379.附 录DES实现文件加密源程序代码:#include stdafx.h#include file_des_mfc.h#includestdio.h#includeiostream.h#include math.h#include stdlib.h#include file_des_mfcDoc.h#include file_des_mfcView.h#ifdef _DEBUG#define new DEBUG_NEW#undef THIS_FILEstatic char THIS_FILE = _FILE_;#endifCString s;int sflag=0;/ CFile_des_mfcViewIMPLEMENT_DYNCREATE(CFile_des_mfcView, CFormView)BEGIN_MESSAGE_MAP(CFile_des_mfcVi
展开阅读全文
相关资源
相关搜索

最新文档


当前位置:首页 > 压缩资料 > 基础医学


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!