数据加密技术的设计与应用_第1页
数据加密技术的设计与应用_第2页
数据加密技术的设计与应用_第3页
数据加密技术的设计与应用_第4页
数据加密技术的设计与应用_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

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

文档简介

1、论文题目:数据加密技术的设计与应用摘要在竞争激烈的信息时代,信息不仅给我们带来很大的方便,同样,信息也可以用来对他们构成威胁、造成破坏。因此,在客观上就需要一种强有力的安全措施来保护机密数据不被窃取或篡改,数据加密技术就应运而生。所谓数据加密技术是指将一个信息经过加密钥匙及加密函数转换,变成无意义的密文,而接收方则将此密文经过解密函数、解密钥匙还原成明文。加密技术是网络安全技术的基石。所谓加密,就是把数据信息即明文转换为不可辨识的形式即密文的过程,目的是使不应了解该数据信息的人不能够知道和识别。将密文转变为明文的过程就是解密。加密和解密过程形成加密系统,明文与密文统称为报文。任何加密系统,不论

2、形式如何复杂,实现的算法如何不同,但其基本组成部分是相同的。 本文是一篇讨论关于常用文件加密解密算法的毕业设计论文,它详细的讲述了文件加密解密算法实现的过程中所用到的方法、技术。对公钥密码体制和私钥密码体制进行了分析和研究,并对公钥密码体制和私钥密码体制的代表RSA算法和DES算法进行了研究和比较。关键词 解密 文件加密 密码体制 DES RSAAbstractIn the fierce competition in the information age, information not only bring us a lot of convenience, the same, the in

3、formation can also be used to pose a threat, they cause damage. Therefore, in which they need a strong security measures to protect confidential data is not theft or falsified, data encryption technology is made. The so-called data encryption technology refers to an information encrypted key and enc

4、ryption function conversion, become meaningless ciphertext, and receiving party will the ciphertext after decryption function, decryption key reduction into plaintext. Encryption technology is the foundation of network security technology. The so-called encryption, data is the information that is no

5、t expressly converted to the form of identification is ciphertext process, the purpose is to make should not understand the data information of people cant know and identification. Will ciphertext into plaintext process is decryption. Encryption and decryption process forms encryption system, plaint

6、ext and ciphertext collectively referred to as message. Any encryption system, no matter how complex form, the algorithm is realized how different, but the basic component is the same. This paper is a discussion about the common file encryption decryption algorithm graduation design paper, it detail

7、ed tells the story of file encryption decryption algorithm used in the process of the method and technology. To public key cryptosystems and private key cipher system were analyzed and investigated, and the public key cryptosystem and the private key cipher system on behalf of the RSA algorithm and

8、DES algorithm are studied and compared. KEY WORD ecryption File encryption The password system DES RSA目录第一章 绪 言.1第二章 需求分析.1第一节 概述1第二节 密码学的发展2第三节 文件机密解密中密码体制研究4第三章 分组加密解密算法.5第一节 DES算法5第二节 RSA算法6第三节 工作原理6第四节 DES算法实例演示10第五节 测试分析15结束语16谢辞17参考文献18电子科技大学毕业论文(设计) 数据加密技术的设计与应用 第一章 绪 言信息安全是一个综合性的交叉学科领域,广泛涉及数

9、学、密码学、计算机、通信、控制、人工智能、安全工程、人文科学等诸多学科,是近几年迅速发展的一个热点学科领域。信息对抗和网络安全是信息安全的核心热点,它的研究和发展又将刺激、推动和促进相关学科的研究与发展。至今,密码技术是取得信息安全性最有效的一种方法, 密码技术是信息安全的核心技术。通过数据加密,人们可以有效地保证通信线路上的内容不被泄露,而且还可以检验传送信息的完整性。进一步,密码技术可以应用于数字签名、身份认证和信息鉴定,这些应用对于资源存取控制以及其它安全措施是必须而且有效的。信息安全产品从应用类型上可以分为防火墙类产品、防病毒类产品、防攻击类产品、密码类产品、认证类产品和访问控制类产品

10、。相对于防病毒软件和防火墙软件来说,基于密码技术密码类产品、认证类产品份额相对较小,但随着金融、电信、政府等行业信息化建设对于网络安全整体解决方案需求的增加,将会有较大的增长。在本次毕业设计中,对公钥密码体制和私钥密码体制进行了分析和研究,并对公钥密码体制和私钥密码体制的代表RSA算法和DES算法进行了研究和比较。并且实现了基本的文件加密解密的处理流程,能提供对文件的安全、有效的保护。第二章 需求分析第一节 概述信息是一种资源,也是一种财富。在现代社会中,信息处理和通信技术日益发展,保护信息的安全,特别是保护重要信息的安全,越来越成受到国内外有关研究人员的极大重视。当前由于信息的保护不利和失误

11、,世界各国遭受的损失是巨大的。现在,国际互联网上的各站点,几乎都有各种各样的安全措施,例如防火墙(FireWall)、网络加密、加密狗等。但是,这些都是系统或网站层次的安全设施。对于广大用户来说,更为直接、也更为有效的办法,就是使用信息加密技术。加密技术是一门实用的技术,有着悠久的历史。过去,加密技术仅被军事和谋报人员以及某些大型商业企业所采用,应用范围十分有限。加密学也是一门与数学有关的深奥的科学,有能力研究加密学的人为数不多。恐怕这也是它鲜为人知、较少应用的原因。信息安全的内容主要包括五个部分:信息的保密性、信息的完整性、信息的可用性、信息的可控性、信息的不可否认性。密码技术是保证信息安全

12、的核心。第二节 密码学的发展认证过程中,用户必须向系统提供能够证明自己身份的信息,证明用户身份的信息种类很多,可以是用户所知道的秘密(口令),也可以是生物特征(如指纹)等,但目前使用最广泛的仍然是用户口令(password)。在认证系统中口令占据了非常重要的地位,因此对口令的保护就变得至关重要。人们提出了许多保护口令的方法,力图保障口令的安全与秘密。这些保护认证信息的方法以及认证系统是随着密码学的发展一起发展的,密码学为我们提供了保护口令的一个重要方向。归根结底,用户用以证明自己身份的是一段信息,不论它是口令还是指纹。而迄今为止,确保信息安全的最重要手段是加密。对信息的加密、解密、信息的保密传

13、输,这正是密码学研究的内容。密码学泛指一切有关研究密码通信的学问,其中包括下面两个领域:如何达成秘密通信,以及如何破译秘密通信。也就是密码编码学:指如何达到信息的秘密性,鉴别性的科学;密码分析学:泛指如何破解密码系统,或伪造信息使密码系统误以为真的科学。从密码学的发展来看,它经历了传统(古典)密码学、近代密码学、现代密码学几个阶段,计算机、数学领域的最新成果往往与密码学有关或被应用于密码学研究中。传统密码学、近代密码学的发展 密码学拥有悠久、丰富多彩的历史。作为古典密码其中的一种,早期出现的密写术形式只需要纸和笔就可以完成。古典密码学的两大范畴是将消息内容进行重新排列的位移密码和系统地将字母进

14、行替换的替换密码。古典密码学会透露出与明文统计学结果相关的大量信息,因此容易被破解,如对频率分析可以有效地攻击古典密码。尽管保密强度很低,由于实现难度低,加密解密快,古典密码至今仍然被广泛使用。在古典密码学中,有四种类型的代替密码: (一)简单代替密码,或单字母密码:就是明文的一个字符用相应的一个密文字符代替。Caesar 密码就是典型的简单替代密码。(二)多编码代替密码:它与简单代替密码系统相似,唯一的不同是单个字符明文可以映射成密文的几个字符之一,例如 A 可能对应于5、13、25 或 56,“B”可能对应于 7、19、31 或 42,等等。(三)字母代替密码:字符块被成组加密,例如“AB

15、A”可能对应于“RTQ”,ABB 可能对应于“SLL”等。(四)多表代替密码:由多个简单的代替密码构成,例如,可能有 5 个被使用的不同的简单代替密码,单独的一个字符用来改变明文的每个字符的位置。 20 世纪初,包括转轮机在内的一些机械密码加密装置被发明出来,其中最有名的是二次世界大战中德国使用的恩尼格码(Enigma)机。由这些装置实现的密码显著提高了密码分析的复杂程度,大量的攻击也仅仅取得了有限的结果。 古典密码学以移位密码、替换密码、转轮机为代表,以替代和置换为基础的密码系统在今天看来已经不堪一击,无法保证信息的安全,对处心积虑的攻击者来说形同虚设,因为已经有成熟的分析方法来破解这一类的

16、加密方法。 借助电子计算机的发展,人们可以实现更复杂的密码系统。与古典密码和机械密码对 26 个字母进行操作不同,计算机密码的一个显著特征是对二进制串进行操作。计算机密码对密码分析有更强的抵抗力,只有少数情况下唯密文攻击才会生效。 密码学的大发展时期是上世纪 70 年代,以 DES 和 RSA 算法的提出为代表。一系列的突破创立了新的密码学体系。DES 是对称密钥分组密码的一个典型代表,美国国家标准局于 1977 年公布了由 IBM 公司研制的一种加密算法,批准把它作为非机要部门使用的数据加密标准简称 DES,DES 是 Data Encryption Standard 的缩写。自从公布以来,

17、它一直广泛用于国际上商用保密通信和计算机通信。但由于弱密钥的问题和新的攻击手段不断出现(差分攻击、线性攻击),单纯的 DES 加密已经很少用于实际。更多的情况下是采用增加密钥长度和多重 DES 加密的办法。 RSA 作为一种成功的公钥密码系统,与传统的对称密码系统(加密、解密使用相同的密钥)相比,最大的特点就是解决了大量密钥分配、传输的问题。在公钥密码系统中,每个通信者拥有一个密钥对,可用其中一个来加密,用另一个来解密,公开其中之一(公钥)而另一半只有自己知道(私钥)。当需要向某人发送信息时,只需要用他的公开密钥对消息进行加密,接收者再用自己的私钥解密即可。而由于公钥密码的特性,这种密码系统也

18、可以用于数字签名。与对称密码一样,公钥密码也容易受到攻击,解决方法是增加密钥长度,但密钥长度的增长会使得加密、解密速度变慢,所以公钥密码目前主要仅用于密钥管理和签名中。 近代密码学的另一个分支是序列密码,这种密码体制采用与明文长度相同的密钥,利用模加(异或)的方法来掩盖明文的内容。这种加密方法虽然简单,但在使用一次性密钥的情况下,可获得极高的安全性,由于密钥不重复使用,给破译带来了极大的困难。但这种方法也有其缺点,由于密钥只使用一次,不适合对大量数据进行加密,尤其是流媒体数据,而且大量密钥的分发、传送也是一个问题。这种方法安全性的关键是要保证密钥序列的随机性,然而“真”随机数是不容易通过固定算

19、法来产生的,而使用“伪随机数”则存在着一定的风险。近年来提出的“量子密码”采用了量子状态来传递信息。“海森堡测不准原理”是量子力学的基本原理,它表明,在同一时刻以相同的精度测定量子的位置与动量是不可能的,只能精确测定两者之一。“单量子不可复制定理”是“海森堡测不准原理”的推论,它表明,在不知道量子状态的情况下复制单个量子是不可能的,因为要复制单个量子就只能先作测量,而测量必然改变量子的状态,所以说不可能。这样使用量子状态作为“一次性便签”可以达到无条件保密。因为如果量子在传输中被测量,其状态就会改变,从而在传输中监听者会因此而暴露。虽然量子密码拥有优秀的安全特性,但目前仍处于研究阶段。第三节

20、文件机密解密中密码体制研究 就整体而言,计算机网络加密问题应包括文件存储加密、口令存储加密、数据库数据加密、电子邮件加密等信息加密和数据传输加密(信道加密)以及密码体制、密钥管理中心等三个方面的内容,下面我们通过加密原理、密码体制和产品功能介绍来概略地讲讲这三个方面的内容: 一 密码原理密码原理。所谓加密,就是将正常情况下可懂的文件数据输入密码机,由密码机变成不可懂的乱码,即将“明文”变成“密文”;所谓解密,就是上述过程的逆过程,即将“密文” 变成“明文”。密码机可看做是一个用电子元件实现一种复杂数学运算的机器。复杂数学运算选择范围大,位数短的(如56位)选择范围小。一个国家的密码政策,通常是

21、用位数长的高强度密码(位数可达)保护国家秘密,其它用于保护商业秘密。 在数据传输加密过程中,收发双方线路密码机使用的是相同的密码算法,注入了相同的密钥,发方向收方发出明文,经密码机变成密文后送上公网通信线路,到达收方后先经密码机解密再送到收方电脑上。密文在公用通信网上传输时,如果被截收,窃密方收到的是不可懂的乱码,无法窃取信息内容。 在文件存储加密中,加密解密卡加解密采用同一种算法和同一个密钥,工作人员用电脑处理文件后先将文件加密再存入磁盘,以防窃密者盗用磁盘窃取文件。工作人员调用该文件时,文件先经解密再从显示器上显示出来以供使用。二 密码体制密码体制,刚才讲密码原理时,收发双方密码机的密码算

22、法一致、密钥一致,这在密码体制中叫“秘密密钥体制”或“单密钥体制”,这是一种传统的密码体制,有系统的理论研究和完善的管理机制,技术成熟,性能稳定,国内自行研制的产品安全可靠、保密强度高,一般用于文件数据加密存储和传输。国外著名的DES密码就是美国政府1977年发布的密钥长度为56位的“秘密密钥体制”的密码。这种密码的缺陷是:仅适用于内部的,点对点方式的,事前双方已知密钥的两点之间的加密传输,保守密钥的秘密十分重要,密钥一旦丢失,整个系统都要立即更换密钥,否则窃密者将可能轻而易举的破解密文。 随着近代计算机网络的发展,不同部门、不同单位网上交往增多,“单密钥体制”显出了它的局限性,人们很难对众多

23、的部门和单位保管好各自不同的密钥。于是人们又发明了“公开密钥体制”或叫“双密钥体制”。它是基于一些数学问题而发明出来的密码体制,这些数学问题可记为,其中,写在一起就是,这个公式说明有这样一种数学运算,它可以将用密钥k加密的密文用密钥k解密,国外1978年公布的RSA密码就是这种有两个密钥的密码。这种密码保密强度不如单密钥体制的密码,一般用于通信双方的身份确认和数字签名。 在实用的互联网络中,各用户通过加密传输可形成一个虚拟的保密互联网。该网要由一个各用户认可的密钥管理中心来生成、管理、分发和销毁密钥,同时各用户可将自己的“公钥”也存放在密钥管理中心。各用户需进行保密通信时,先通过公钥系统进行身

24、份确认(这个过程中密钥管理中心可起到仲裁鉴别作用),双方确认身份后由密钥管理中心分发秘密密钥,双方用得到秘密密钥进行数据或文件的加密传输。这种工作方式不但适用于党政机关内部,也同样适用于电子商务,但电子商务和党政机关不能使用同一个级别的密码设备,党政机关用的是“普密”设备,电子商务只能用“商密”设备,二者的保密强度是不一样的。第三章 分组加密解密算法第一节 DES算法 DES算法为密码体制中的对称密码体制,又被成为美国数据加密标准,是1972年美国IBM公司研制的对称密码体制加密算法。其密钥长度为56位,明文按64位进行分组,将分组后的明文组和56位的密钥按位替代或交换的方法形成密文组的加密方

25、法。DES加密算法特点:分组比较短、密钥太短、密码生命周期短、运算速度较慢。DES工作的基本原理是,其入口参数有三个:key、data、mode。 key为加密解密使用的密钥,data为加密解密的数据,mode为其工作模式。当模式为加密模式时,明文按照64位进行分组,形成明文组,key用于对数据加密,当模式为解密模式时,key用于对数据解密。实际运用中,密钥只用到了64位中的56位,这样才具有高的安全性。第二节 RSA算法当前最著名、应用最广泛的公钥系统RSA是在1978年,由美国麻省理工学院(MIT)的Ron Rivest, Adi Shamir 和Leonard Adleman在题为获得数

26、字签名和公开钥密码系统的方法的论文中提出的。它是一个基于数论的非对称(公开钥)密码体制,是一种分组密码体制。其名称来自于三个发明者的姓名首字母。 它的安全性是基于大整数素因子分解的困难性,而大整数因子分解问题是数学上的著名难题,至今没有有效的方法予以解决,因此可以确保RSA算法的安全性。RSA系统是公钥系统的最具有典型意义的方法,大多数使用公钥密码进行加密和数字签名的产品和标准使用的都是RSA算法。RSA算法是第一个既能用于数据加密也能用于数字签名的算法,因此它为公用网络上信息的加密和鉴别提供了一种基本的方法。它通常是先生成一对RSA 密钥,其中之一是保密密钥,由用户保存;另一个为公开密钥,可

27、对外公开,甚至可在网络服务器中注册,人们用公钥加密文件发送给个人,个人就可以用私钥解密接受。为提高保密强度,RSA密钥至少为500位长,一般推荐使用1024位。该算法基于下面的两个事实,这些事实保证了RSA算法的安全有效性: (一)已有确定一个数是不是质数的快速算法; (二)尚未找到确定一个合数的质因子的快速算法。第三节 工作原理一、任意选取两个不同的大质数p和q,计算乘积r=p*q; 二 、任意选取一个大整数e,e与(p-1)*(q-1)互质,整数e用做加密密钥。注意:e的选取是很容易的,例如,所有大于p和q的质数都可用。 三 、确定解密密钥d: d * e = 1 modulo(p - 1

28、)*(q - 1) 根据e、p和q可以容易地计算出d。 四、 公开整数r和e,但是不公开d; 5) 将明文P (假设P是一个小于r的整数)加密为密文C,计算方法为: C = Pe modulo r 6) 将密文C解密为明文P,计算方法为: P = Cd modulo r 然而只根据r和e(不是p和q)要计算出d是不可能的。因此,任何人都可对明文进行加密,但只有授权用户(知道d)才可对密文解密。数学原理定理若 p, q 是相异质数, rm = 1 mod (p-1)(q-1), a 是任意一个正整数, b = am mod pq, c = br mod pq, 则 c = a mod pq 证明

29、的过程, 会用到费马小定理, 叙述如下: m 是任一质数, n 是任一整数, 则 nm = n mod m (换另一句话说, 如果 n 和 m 互质, 则 n(m-1) = 1 mod m) 运用一些基本的群论的知识, 就可以很容易地证出费马小定理的. 证明因为 rm = 1 mod (p-1)(q-1), 所以 rm = k(p-1)(q-1) + 1, 其中 k 是整数 因为在 modulo 中是 preserve 乘法的 (x = y mod zandu = v mod z=xu = yv mod z), 所以, c = br = (am)r = a(rm) = a(k(p-1)(q-1

30、)+1) mod pq 一、 如果 a 不是 p 的倍数, 也不是 q 的倍数时, 则 a(p-1) = 1 mod p (费马小定理)=a(k(p-1)(q-1) = 1 mod p a(q-1) = 1 mod q (费马小定理) =a(k(p-1)(q-1) = 1 mod q 所以 p, q 均能整除 a(k(p-1)(q-1) - 1= pq | a(k(p-1)(q-1) - 1 即 a(k(p-1)(q-1) = 1 mod pq =c = a(k(p-1)(q-1)+1) = a mod pq 二、如果 a 是 p 的倍数, 但不是 q 的倍数时, 则 a(q-1) = 1 m

31、od q (费马小定理) =a(k(p-1)(q-1) = 1 mod q =c = a(k(p-1)(q-1)+1) = a mod q =q | c - a 因 p | a =c = a(k(p-1)(q-1)+1) = 0 mod p =p | c - a 所以, pq | c - a=c = a mod pq 三、 如果 a 是 q 的倍数, 但不是 p 的倍数时, 证明同上 四、 如果 a 同时是 p 和 q 的倍数时, 则 pq | a =c = a(k(p-1)(q-1)+1) = 0 mod pq =pq | c - a =c = a mod pq Q.E.D. 这个定理说明

32、a 经过编码为 b 再经过解码为 c 时, a = c mod n (n = pq). 但我们在做编码解码时, 限制 0 = a n, 0 = c n, 所以这就是说 a 等於 c, 所以这个过程确实能做到编码解码的功能. 为了说明该算法的工作过程,我们下面给出一个简单例子,显然我们在这只能取很小的数字,但是如上所述,为了保证安全,在实际应用上我们所用的数字要大的多得多。例:选取p=3, q=5,则r=15,(p-1)*(q-1)=8。选取e=11(大于p和q的质数),通过d * 11 = 1 modulo 8,计算出d =3。 假定明文为整数13。则密文C为 C = Pe modulo r

33、= 1311 modulo 15 = 1,792,160,394,037 modulo 15 = 7 复原明文P为: P = Cd modulo r = 73 modulo 15 = 343 modulo 15 = 13 因为e和d互逆,公开密钥加密方法也允许采用这样的方式对加密信息进行签名,以便接收方能确定签名不是伪造的。 两个在不安全信道中通信的人,假设为Alice(收信者)和Bob(发信者),他们希望能够安全的通信而不被他们的敌手Oscar破坏。Alice 想到了一种办法,她使用了一种锁(相当于公钥),这种锁任何人只要轻轻一按就可以锁上,但是只有Alice的钥匙(相当于私钥)才能够打开。

34、然后 Alice 对外发送无数把这样的锁,任何人比如Bob想给她寄信时,只需找到一个箱子,然后用一把Alice的锁将其锁上再寄给Alice,这时候任何人(包括 Bob自己)除了拥有钥匙的Alice,都不能再打开箱子,这样即使Oscar能找到Alice的锁,即使Oscar能在通信过程中截获这个箱子,没有 Alice的钥匙他也不可能打开箱子,而Alice的钥匙并不需要分发,这样 Oscar也就无法得到这把“私人密钥”。 一、优点RSA算法是第一个能同时用于加密和数字签名的算法,也易于理解和操作。RSA是被研究得最广泛的公钥算法,从提出到现在已近二十年,经历了各种攻击的考验,逐渐为人们接受,普遍认为

35、是目前最优秀的公钥方案之一。该算法的加密密钥和加密算法分开,使得密钥分配更为方便。它特别符合计算机网络环境。对于 网上的大量用户,可以将加密密钥用电话簿的方式印出。如果某用户想与另一用户进行保密通信,只需从公钥簿上查出对方的加密密钥,用它对所传送的信息加密发出即可。对方收到信息后,用仅为自己所知的解密密钥将信息脱密,了解报文的内容。由此可看出,RSA算法解决了大量网络用户密钥管理的难题,这是公钥密码系统相对于对称密码系统最突出的优点。二、缺点(一)产生密钥很麻烦,受到素数产生技术的限制,因而难以做到一次一密。(二)安全性, RSA的安全性依赖于大数的因子分解,但并没有从理论上证明破译RSA的难

36、度与大数分解难度等价,而且密码学界多数人士倾向于因子分解不是NPC问题。目前,人们已能分解140多个十进制位的大素数,这就要求使用更长的密钥,速度更慢;另外,目前人们正在积极寻找攻击RSA的方法,如选择密文攻击,一般攻击者是将某一信息作一下伪装(Blind),让拥有私钥的实体签署。然后,经过计算就可得到它所想要的信息。实际上,攻击利用的都是同一个弱点,即存在这样一个事实:乘幂保留了输入的乘法结构: ( XM )d = Xd *Md mod n 前面已经提到,这个固有的问题来自于公钥密码系统的最有用的特征-每个人都能使用公钥。但从算法上无法解决这一问题,主要措施有两条:一条是采用好的公钥协议,保

37、证工作过程中实体不对其他实体任意产生的信息解密,不对自己一无所知的信息签名;另一条是决不对陌生人送来的随机文档签名,签名时首先使用One-Way Hash Function对文档作HASH处理,或同时使用不同的签名算法。除了利用公共模数,人们还尝试一些利用解密指数或(n)等等攻击.3)速度太慢,由于RSA 的分组长度太大,为保证安全性,n 至少也要 600 bitx以上,使运算代价很高,尤其是速度较慢,较对称密码算法慢几个数量级;且随着大数分解技术的发展,这个长度还在增加,不利于数据格式的标准化。目前,SET(Secure Electronic Transaction)协议中要求CA采用204

38、8比特长的密钥,其他实体使用1024比特的密钥。为了速度问题,目前人们广泛使用单,公钥密码结合使用的方法,优缺点互补:单钥密码加密速度快,人们用它来加密较长的文件,然后用RSA来给文件密钥加密,极好的解决了单钥密码的密钥分发问题。公钥加密算法中使用最广的是RSA。RSA算法研制的最初理念与目标是努力使互联网安全可靠,旨在解决DES算法秘密密钥的利用公开信道传输分发的难题。而实际结果不但很好地解决了这个难题;还可利用RSA来完成对电文的数字签名以抗对电文的否认与抵赖;同时还可以利用数字签名较容易地发现攻击者对电文的非法篡改,以保护数据信息的完整性。目前为止,很多种加密技术采用了RSA算法,该算法

39、也已经在互联网的许多方面得以广泛应用,包括在安全接口层(SSL)标准(该标准是网络浏览器建立安全的互联网连接时必须用到的)方面的应用。此外,RSA加密系统还可应用于智能IC卡和网络安全产品。但目前RSA算法的专利期限即将结束,取而代之的是基于椭圆曲线的密码方案(ECC算法)。较之于RSA算法,ECC有其相对优点,这使得ECC的特性更适合当今电子商务需要快速反应的发展潮流。此外,一种全新的量子密码也正在发展中。第四节 DES算法实例演示一、实例程序 DES TOOL这是DES TOOL 的截图,MFC写的,编译器是VS 2008,见图3-1、图3-2图3-1 加密工具图3-2 加密结果二、文件功

40、能描述:DES加密类#ifndef yxyDESH#define yxyDESH#include #include #include #include using namespace std;class yxyDESpublic: yxyDES(); /类构造函数 yxyDES(); /类析构函数 void InitializeKey(string); /功能:产生16个28位的key /参数:源8位的字符串(key) /结果:函数将调用private CreateSubKey将结果存于char SubKeys1648 void EncryptData(string); /功能:加密8位字符串

41、 /参数:8位字符串 /结果:函数将加密后结果存放于private szCiphertext16 / 用户通过属性Ciphertext得到 void DecryptData(string ); /功能:解密16位十六进制字符串 /参数:16位十六进制字符串 /结果:函数将解密候结果存放于private szPlaintext8 / 用户通过属性Plaintext得到 void EncryptAnyLength(string); /功能:加密任意长度字符串 /参数:任意长度字符串 /结果:函数将加密后结果存放于private szFCiphertextAnyLength8192 / 用户通过属性

42、CiphertextAnyLength得到 void DecryptAnyLength(string); /功能:解密任意长度十六进制字符串 /参数:任意长度字符串 /结果:函数将加密后结果存放于private szFPlaintextAnyLength4096 / 用户通过属性PlaintextAnyLength得到 void SetCiphertext(char* value); /Ciphertext的set函数 char* GetCiphertext(); /Ciphertext的get函数 void SetPlaintext(char* value); /Plaintext的set函

43、数 char* GetPlaintext(); /Plaintext的get函数 char* GetCiphertextAnyLength(); /CiphertextAnyLength的get函数 char* GetPlaintextAnyLength(); /PlaintextAnyLength的get函数private: char SubKeys1648;/储存16组48位密钥 char szCiphertext16;/储存16位密文(十六进制字符串) char szPlaintext8;/储存8位明文字符串 char szFCiphertextAnyLength8192;/任意长度密文

44、(十六进制字符串) char szFPlaintextAnyLength4096;/任意长度明文字符串 void CreateSubKey(char*); /功能:生成子密钥 /参数:经过PC1变换的56位二进制字符串 /结果:将保存于char SubKeys1648 void FunctionF(char*,char*,int); /功能:DES中的F函数, /参数:左32位,右32位,key序号(0-15) /结果:均在变换左右32位 void InitialPermuteData(string,char*,bool); /功能:IP变换 /参数:待处理字符串,处理后结果存放指针,加密/解

45、密(true加密,false解密) /结果:函数改变第二个参数的内容 void ExpansionR(char* ,char*); /功能:将右32位进行扩展位48位, /参数:原32位字符串,扩展后结果存放指针 /结果:函数改变第二个参数的内容 void XOR(char* ,char* ,int ,char*); /功能:异或函数, /参数:待异或的操作字符串1,字符串2,操作数长度,处理后结果存放指针 /结果: 函数改变第四个参数的内容 string CompressFuncS(char* ); /功能:S-BOX , 数据压缩, /参数:48位二进制字符串, /结果:返回结果:32位字符串 void Permutat

温馨提示

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

评论

0/150

提交评论