下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、睨將老丈发未平台四川期刊釆编中心ww. scEQikan- com信息安全中的加密技术的实现研究摘要:随着网络的应用与发展,信息安全问题日益突出。本文讨论的数据加密技术是实现计算 机信息安全的重要手段之一,它是一种主动安全防御策略,为信息传输提供安全保护。文章介绍了DES RSA、MD5 等数据加密技术以及链路加密和端对端加密两种网络数据加密方式。数据库加密是 信息安全的核心问题,文章介绍了库内加密、库外加密、硬件加密三种数据库加密方式。最后文章 介绍了几种流行的软件加密技术。关键词:信息安全;数据加密;对称式密钥加密技术DES 公开密钥加密技术 RSA 单项散列算法 MD5Research
2、of Encryption In the Information SecurityAbstract:Along with the network development, the information security is day by day prominent. Thedata encryption is one of the important methods to realize information security, which is defending strategy thathas initiative and security and provides the pro
3、tection for the information transmission. This paper introducesdata encryption: DES, RSA, MD5 and so on as well as the link encryption and the end-to-end en crypti on on network. The database en crypti on is the core of in formatio n security. The article discusses three database encrypti on: the in
4、 side storehouse en crypti on, the outside storehouse en crypti on and the hardware en crypti on.Fin ally it an alyzes several kinds of popular software en crypti ons .Key words: i nformation security ; data encryption ; DES ; RSA ; MD5頂將老丈发表平台四川期刊采编中心www. seEdikan- comB11 信息安全概述1. 1 信息信息是通过在数据上施加某些
5、约定而赋予这些数据的特殊含义。一般意义上,信息 是指事物运动的状态和方式,是事物的一种属性,在引入必要的约束条件后可以形成特 定的概念体系。对现代企业来说,信息也是一种资产,包括计算机和网络中的数据,还 包括专利、标准、商业机密、文件、图纸、管理规章、关键人员等,就象其它重要的商 业资产那样,信息资产具有重要的价值,因而需要进行妥善保护。1. 2 信息安全信息安全(In formation Security ,In foSec )的任务,就是要采取措施(技术手 段及有效管理)让这些信息资产免遭威胁,或者将威胁带来的后果降到最低程度,以此 维护组织的正常运作。凡是涉及到保密性、完整性、可用性、可
6、追溯性、真实性和可靠性保护等方面的技 术和理论,都是信息安全所要研究的范畴,也是信息安全所要实现的目标。 信息安全通常强调所谓 CIA 三元组的目标,即保密性、完整性和可用性。保密性(Con fide ntiality)- 确保信息在存储、使用、传输过程中不会泄漏给非授权用户或实体。完整性(Integrity )确保信息在存储、使用、传输过程中不会被非授权用户 篡改,同时还要防止授权用户对系统及信息进行不恰当的篡改,保持信息内、外部表示 的一致性。可用性(Availability )确保授权用户或实体对信息及资源的正常使用不会 被异常拒绝,允许其可靠而及时地访问信息及资源。除了 CIA,信息安
7、全的其它标准还有一些其他原则,包括可追溯性(Accountability ) 不可抵赖性(Non-repudiation )、真实性(authenticity )等,这些都是对 CIA 原则的 细化、补充或加强。2 数据加密技术2. 1 密码学简介数据加密技术是对信息进行重新编码,从而达到隐藏信息内容,使非法用户无法获 得信息真实内容的一种技术手段。网络中的数据加密则是通过对网络中传输的信息进行 数据加密,满足网络安全中数据加密、数据完整性等要求,而基于数据加密技术的数字 签名技术则可满足防低赖等安全要求。可见,数据加密技术是实现信息安全的关键技术。2 . 1 . 1数据加密、解密基本过程通常
8、情况下,人们将可懂的文本称为明文(pla in text);将明文变换成的不可懂的形式的文本称为密文(ciphertext);把明文变换成密文的过程叫加密(encipher);其逆 过程,即把密文变换成明文的过程叫解密(decipher)。密钥(keyword)是用于加解密的一些特殊信息,它是控制明文与密文之间变换的关键,它可以是数字、词汇或语句。密 钥分为加密密钥(Encry ption Key)和解密密钥(Decryption Key)。完成加密和解密的算法称为密码体制(Cipher Sy stem)。传统的密码体制所用的加密密钥和解密密钥相同, 形成了对称式密钥加密技术;在一 些新体制中
9、,加密密钥和解密密钥不同,形成非对B2睨辅老丈发未平台四川期刊采编中心www. scEQikarL- com称式密码加密技术,即公开密钥加密技术 。数据加密或解密变换过程如图 1 所示明文供钮馆丈斛密图 1 加密或解密变换2.1.2 加密和解密表示方法明文用 M (消息)或 P (明文)表示,它可能是比特流(文本文件、位图、数字化的 语音流或数字化的视频图像)。至于涉及到计算机,P 是简单的二进制数据。明文可被传送或存储,无论在哪种情况,M 指待加密的消息。密文用 C 表示,它也是二进制数据,有时和 M样大,有时稍大(通过压缩和加密 的结合,C 有可能比 P 小些。然而,单单加密通常达不到这一
10、点)。加密函数 E 作用于 M 得到密文 C,用数学表示为:E ( M =C.相反地,解密函数 D 作用于 C 产生 MD ( C)=M.先加密后再解密消息,原始的明文将恢复出来,下面的等式必须成立:D (E( M)=M2.1.3鉴别、完整性和抗抵赖除了提供机密性外,密码学通常有其它的作用:.(a)鉴别消息的接收者应该能够确认消息的来源;入侵者不可能伪装成他人。(b)完整性检验消息的接收者应该能够验证在传送过程中消息没有被修改;入侵者不可能用假消息代替合法消息。(c)抗抵赖发送者事后不可能虚假地否认他发送的消息。2.1.4 算法和密钥密码算法也叫密码,是用于加密和解密的数学函数。 (通常情况下
11、,有两个相关的 函数:一个用作加密,另一个用作解密如果算法的保密性是基于保持算法的秘密,这种算法称为受限制的算法。受限制的 算法具有历史意义,但按现在的标准,它们的保密性已远远不够。大的或经常变换的用 户组织不能使用它们,因为每有一个用户离开这个组织,其它的用户就必须改换另外不 同的算法。如果有人无意暴露了这个秘密,所有人都必须改变他们的算法。更糟的是,受限制的密码算法不可能进行质量控制或标准化。每个用户组织必须有 他们自己的唯一算法。这样的组织不可能采用流行的硬件或软件产品。但窃听者却可以 买到这些流行产品并学习算法,于是用户不得不自己编写算法并予以实现,如果这个组 织中没有好的B3密码学家
12、,那么他们就无法知道他们是否拥有安全的算法。尽管有这些主要缺陷,受限制的算法对低密级的应用来说还是很流行的,用户或者頂將老丈发表平台四川期刊采编中心www. seEdikan- comB4没有认识到或者不在乎他们系统中内在的问题。现代密码学用密钥解决了这个问题, 密钥用 K 表示。K 可以是很多数值里的任意值。密钥 K 的可能值的范围叫做密钥空间。加密和解密运算都使用这个密钥(即运算都依赖 于密钥,并用 K 作为下标表示),这样,加/解密函数现在变成:EK(M)=CDK(C)=M.这些函数具有下面的特性:DK (EK()=M.有些算法使用不同的加密密钥和解密密钥,也就是说加密密钥 K1 与相应
13、的解密密钥 K2 不同,在这种情况下:EK1(M)=CDK2(C)=MDK2 (EK1(M)=M所有这些算法的安全性都基于密钥的安全性;而不是基于算法的细节的安全性。这 就意味着算法可以公开,也可以被分析,可以大量生产使用算法的产品,即使偷听者知 道你的算法也没有关系;如果他不知道你使用的具体密钥,他就不可能阅读你的消息。 密码系统由算法、以及所有可能的明文、密文和密钥组成的。2. 2 对称式密钥加密技术对称式密钥加密技术是指加密和解密均采用同一把秘密钥匙,而且通信双方必须都要获得这把钥匙,并保持钥匙的秘密。当给对方发信息时,用自己的加密密钥进行加密, 而在接收方收到数据后,用对方所给的密钥进
14、行解密。故它也称为秘密钥匙加密法。对称算法的加密和解密表示为:EK (=CDK(C) =M实现对称式密钥加密技术的加密算法主要有两种:DES 算法、IDEA 算法。2.2.1 DES(Data En cryption Sta ndard)算法DES 即数据加密标准,是 1977 年美国国家标准局宣布用于非国家保密机关的数据保 护。这种加密算法是由 IBM 研究提出来,它综合运用了置换、代替、代数多种密码技术, 把信息分成 64 位大小的块,使用 56 位密钥,迭代轮数为 16 轮的加密算法。DES 是一个分组加密算法。其中有极少量的数被认为是弱密匙,但是很容易避开他 们。所以保密性依赖于密钥。
15、算法功能是把输入的 64 位数据块按位重新组合,并把输出分为 LO、R0 两部分,每分各 长 32位,其置换规则见下表:58,50,12,34,26,18,10,2,60,52,44,36,28,20,12,4,62,54,46,38,30,22,14,6,64,56,48,40,32,24,16,8,57,49,41,33,25,17, 9,1,59,51,43,35,27,19,11,3,61,53,45,37,29,21,13,5,63,55,47,39,31,23,15,7,即将输入的第 58 位换到第一位,第 50 位换到第 2 位,依此类推,最后一位 是原来的第 7 位。L0、R0
16、 则是换位输出后的两部分,L0 是输出的左 32 位,R0 是右 32 位,例:设置换前的输入值为D1D2D3D64,则经过初始置换后的结果为:L0=D58D50.D8; R0=D57D49.D7。经过 16 次迭代运算后。得到 L16、R16,将此作为输入,进行逆置换,即得到密文 输出。逆置换正好是初始置的逆运算,例如,第1 位经过初始置换后,处于第 40 位,頂將老丈发表平台四川期刊采编中心www. seEdikan- comB5而通过逆置换,又将第 40 位换回到第 1 位,其逆置换规则如下表所示:40,8,48,16,56,24,64,32,39,7,47,15,55,23,63,31
17、,38,6,46,14,54,22,62,30,37,5,45,13,53,21,61,29,.9.59.27,34,2,42,10,50,18,58 26,33,1,41, 9,49,17,57,25,放大换位表32, 1,2, 3, 4, 5, 4, 5, 6, 7, 8, 9, 8, 9, 10,11,12,13,12,13,14,15,16,17,16,17,18,19,20,21,20,21,22,23,24,25,24,25,26,27,28,29,28,29,30,31,32, 1,单纯换位表16,7,20
18、,21,29,12,28,17, 1,15,23,26, 5,18,31,10,4.32.27,3, 9,19,13,30, 6,22,11,4,25,在 f(Ri,Ki)算法描述图中,S1,S2.S8 为选择函数,其功能是把 6bit 数据变为 4bit 数据。下面给出选择函数 Si(i=1,28)的功能表:选择函数 SiS1:14,4,13,1,2,15,11,8,3,10,6,12,5,9,0,7,0,15,7,4,14,2,13,1,10,6,12,11,9,5,3,8,4,1,14,8,13,6,2,11,15,12,9,7,3,10,5,0,15,12,8,2,4,
19、9,1,7,5,11,3,14,10,0,6,13,S2:15,1,8,14,6,11,3,4,9,7,2,13,12,0,5,10,3,13,4,7,15,2,8,14,12,0,1,10,6,9,11,5,0,14,7,11,10,4,13,1,5,8,12,6,9,3,2,15,13,8,10,1,3,15,4,2,11,6,7,12,0,5,14,9,S3:10,0,9,14,6,3,15,5,1,13,12,7,11,4,2,8,13,7,0,9,3,4,6,10,2,8,5,14,12,11,15,1,13,6,4,9,8,15,3,0,11,1,2,12,5,10,14,7,I,
20、 10,13,0,6,9,8,7,4,15,14,3,11,5,2,12,S4:7,13,14,3,0,6,9,10,1,2,8,5,11,12,4,15,13,8,11,5,6,15,0,3,4,7,2,12,1,10,14,9,10,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,14,S5:2,12,4,1,7,10,11,6,8,5,3,15,13,0,14,9,14,11,2,12,4,7,13,1,5,0,15,10,3,9,8,6,4,2,1,11,10,13,7,8,15,9,12,5,
21、6,3,0,14,II,8,12,7,1,14,2,13,6,15,0,9,10,4,5,3,S6:12,1,10,15,9,2,6,8,0,13,3,4,14,7,5,11,10,15,4,2,7,12,9,5,6,1,13,14,0,11,3,8,9,14,15,5,2,8,12,3,7,0,4,10,1,13,11,6,4,3,2,12,9,5,15,10,11,14,1,7,6,0,8,13,頂將老丈发表平台四川期刊采编中心www. seEdikan- comB6S7:4,11,2,14,15,0,8,13,3,12,9,7,5,10,6,1,13,0,11,7,4,9,1,10,14
22、,3,5,12,2,15,8,6,1,4,11,13,12,3,7,14,10,15,6,8,0,5,9,2,6,11,13,8,1,4,10,7,9,5,0,15,14,2,3,12,S8:13,2,8,4,6,15,11,1,10,9,3,14,5,0,12,7,1,15,13,8,10,3,7,4,12,5,6,11,0,14,9,2,7,11,4,1,9,12,14,2,0,6,10,13,15,3,5,8, 2,1,14,7,4,10,8,13,15,12,9,0,3,5,6,11, 在此以 S1为例说明其功能,我们可以看到:在 S1 中,共有 4 行数据,命名为 0, 1、2、3
23、行;每行有16 列,命名为 0、1、2、3,14、15 列。现设输入为:D = D1D2D3D4D5D6令:列=D2D3D4D5= D1D6然后在 S1 表中查得对应的数,以 4 位二进制表示,此即为选择函数 S1 的输出。 下面给出子密钥 Ki(48bit)的生成算法:从子密钥 Ki 的生成算法描述图中我们可以看到:初始 Key 值为 64 位,但 DES 算 法规定,其中第& 16、64位是奇偶校验位,不参与 DES 运算。故 Key 实际可用位数便只有 56 位。即:经过缩小选择换位表 1 的变换后,Key 的位数由 64 位变成了 56 位,此 56 位分为 C0 D0 两部分
24、, 各 28 位, 然后分别进行第 1 次循环左移, 得到 C1、D1,将 C1 (28位)、D1 (28 位)合并得到 56 位,再经过缩小选择换位 2,从而便得到 了密钥 K0 (48 位)。依此类推,便可得到 K1、K2、K15,不过需要注意的是,16 次循环左移对应的左移位数要依据下述规则进行: 循环左移位数1,1,2,2,2,2,2,2,1,2,2,2,2,2,2,1以上介绍了 DES 算法的加密过程。DES 算法的解密过程是一样的,区别仅仅在于第 一次迭代时用子密钥 K15,第二次 K14,最后一次用 K0,算法本身并没有任何 变化。2.2.2 IDEA(International
25、 Data Encryption Algorithm)算法IDEA 是一种国际信息加密算法。它是 1991 年在瑞士 ETH Zurich 由 James Massey 和Xueiia Lai 发明,于 1992 年正式公开,是一个分组大小为 64 位,密钥为 128 位, 迭代轮数为八轮的迭代型密码体制。此算法使用长达128 位的密钥,在效地消除了任何试图穷尽搜索密钥的可能性。这比 DES 提供了更多的安全性,但是在选择用于 IDEA 的 密钥时,应该排除那些称为“弱密钥”的密钥。DES 只有四个弱密钥和 12 个次弱密钥,而 IDEA 中的弱密钥数相当可观,有 2 的 51 次方个。但是,
26、如果密钥的总数非常大,达 到 2的 128 次方个,那么仍有 2 的 77 次方个密钥可供选择。IDEA 被认为是极为安全的。使用 128位的密钥,蛮力攻击中需要进行的测试次数与DES 相比会明显增大,甚至允许对弱密钥测试。而且,它本身也显示了它尤其能抵抗专业形式的分析性攻击。IDEA 的软件实现速度与 DES 差不多。但硬件实现速度要比 DES 快得多,快将近 10 倍。 设计者们声称由 ETH Zurich 开发的一种芯片,采用 IDEA 算法的加密速率可达到 177M 比特/秒。IDEA 密码中使用了以下三种不同的运算:(1) 逐比特异或运算;(2) 模 2 加运算;(3) 模 2+1
27、乘运算,0 与 2 对应。IDEA 算法是由 8 圈迭代和随后的一个输出变换组成。它将64 比特的数据分成 4 个子块,每个 16 比特,令这四个子块作为迭代第一轮的输出,全部共 8 圈迭代。每圈迭 代都是4 个子块彼此间以及 16 比特的子密钥进行异或,MOD 加运算,MOD2+乘运算。 任何一轮迭頂將老丈发表平台四川期刊采编中心www. seEdikan- comB7代第三和第四子块互换。该算法所需要的 混淆可通过连续使用三个不相 容的群运算于两个16 比特 子块来获得,并且该算法所选择使用的 MA-(乘加)结构可 提供必要的扩散。2.2.3 对称式密钥加密技术的优缺点对称式密钥加密技术具
28、有加密速度快,保密度高等优点。但也有其缺点:1密钥是保密通信安全的关键,发信方必须安全、妥善地把钥匙护送到收信方,不 能泄露其 内容,如何才能把密钥安全地送到收信方,是对称密钥加密技术的突出问题, 可见,此方法 的密钥分发过程十分复杂,所花代价高。2多人通信时密钥的组合的数量,会出现爆炸性的膨胀,使密钥分发更加复杂化, n 个人进行两两通信,总需要的密钥数为 n(n-1)/2。3通信双方必须统一密钥,才能发送保密的信息。如果发信者与收信人是素不相识 的,这就 无法向对方发送秘密信息了。2.3公开密钥加密技术(RSA)公开密钥加密技术要求密钥成对使用,即加密和解密分别由两个密钥来实现。每个 用户
29、都有一对选定的密钥,一个可以公开,即公共密钥,用于加密;另一个由用户安全 拥有,即秘密密钥,用于解密。公共密钥和秘密密钥之间有密切的关系。当给对方发信 息时,用对方的公开密钥进行加密,而在接收方收到数据后,用自己的秘密密钥进行解 密。故此技术也称为非对称密码加密技术。公开密钥加密算法主要是 RSA加密算法。 此算法是美国 MIT的Rivest、 Shamir和 Adleman于 1978 年提出的,它是第一个成熟的、迄今为止理论上最为成功的公开密钥密 码体制,它的安全性基于数论中的 Euler 定理和计算复杂性理论中的下述论断:求两个 大素数的乘积是容易的,但要分解两个大素数的乘积,求出它们的
30、素因子则是非常困难 的,它属于 NP-完全类。2.3.1 RSA 实现过程RSA 加密、解密过程由密钥生成、加密过程和解密过程组成。(1) 密钥对的产生选择两个大素数,p 和 q。计算:n = p * q选择加密密钥 e,要求 e 和(p - 1 ) * ( q - 1 )互质。最后,利用 Euclid 算法计算解密密钥 d,满足 e * d = 1 ( mod ( p - 1 ) * ( q-1 )其中 n 和 d 也要互质。数 e 和 n 是公钥,d 是私钥。两个素数 p 和 q 不再需要,应 该丢弃,不要让任何人知道。(2) 加密过程加密信息 m (二进制表示)时,首先把 m 分成等长数
31、据块 m1 ,m2,., mi ,块长 s,其中2As = n, s尽可能的大。对应的密文是:ci = miAe ( mod n ) ( a )(3) 解密过程解密时作如下计算:mi = ciAd ( mod n ) ( b )RSA 可用于数字签名,方案是用(a)式签名,(b)式验证。具体操作时考虑到安全性 和 m信息量较大等因素,一般是先作 HASH 运算。2.3.2 RSA 的安全性RSA 的安全性依赖于大数分解,但是否等同于大数分解一直未能得到理论上的证明, 因为没有证明破解 RSA 就一定需要作大数分解。假设存在一种无须分解大数的算法,那 它肯定可以修改成为大数分解算法。目前,RSA
32、 的一些变种算法已被证明等价于大数分解。不管怎样,分解 n 是最显然 的攻頂將老丈发表平台四川期刊采编中心www. seEdikan- comB8击方法。现在,人们已能分解 140 多个十进制位的大素数。因此,模数 n 必须选大 一些,因具体适用情况而定。2.3.3 RSA 的速度由于进行的都是大数计算,使得 RSA 最快的情况也比 DES 慢上 100 倍,无论是软件 还是硬件实现。速度一直是 RSA 的缺陷。一般来说只用于少量数据加密。2.3.4 RSA 的选择密文攻击RSA 在选择密文攻击面前很脆弱。一般攻击者是将某一信息作一下伪装(Blind),让 拥有私钥的实体签署。然后,经过计算就
33、可得到它所想要的信息。实际上,攻击利用的 都是同一个弱点,即存在这样一个事实:乘幕保留了输入的乘法结构:(XM )Ad = XAd *MAd mod n前面已经提到,这个固有的问题来自于公钥密码系统的最有用的特征一每个人都能 使用公钥。但从算法上无法解决这一问题,主要措施有两条:一条是采用好的公钥协议, 保证工作过程中实体不对其他实体任意产生的信息解密,不对自己一无所知的信息签 名;另一条是决不对陌生人送来的随机文档签名,签名时首先使用 One-Way HashFunction 对文档作 HASH 处理,或同时使用不同的签名算法。下面介绍几种不同类 型的攻击方法。(1)RSA 的公共模数攻击。
34、若系统中共有一个模数,只是不同的人拥有不同的e 和 d,系统将是危险的。最普遍的情况是同一信息用不同的公钥加密,这些公钥共模而且互质,那末该信息无需私钥 就可得到恢复。设 P 为信息明文,两个加密密钥为 e1 和 e2,公共模数是 n,贝 U:C1 = pAel mod nC2 = pAe2 mod n密码分析者知道 n、e1、e2、C1 和 C2,就能得到 P。因为 el 和 e2 互质,故用 Euclidean 算法能找到 r 和 s,满足:r * el + s * e2 = 1假设 r 为负数,需再用 Euclidean 算法计算 3 八(-1),贝 U(C1A(-1) )A(-r) *
35、 C2As = P mod n另外,还有其它几种利用公共模数攻击的方法。总之,如果知道给定模数的一对e和 d, 是有利于攻击者分解模数,一是有利于攻击者计算出其它成对的 e和 d,而 无需分解模数。解决办法只有一个,那就是不要共享模数 n。(2)RSA 的小指数攻击。有一种提高 RSA 速度的建议是使公钥 e 取较小的值,这样会使加密变得易于实现, 速度有所提高。但这样作是不安全的,对付办法就是e 和 d 都取较大的值。RSA 算法是第一个能同时用于加密和数字签名的算法,也易于理解和操作。2.3.5 RSA 的优缺点RSA 的缺点主要有:1产生密钥很麻烦,受到素数产生技术的限制,因而难以做到一
36、次一密。2分组长度太大,为保证安全性,n 至少也要 600 bits 以上,使运算代价很高,尤其是速度较慢,较对称密码算法慢几个数量级;且随着大数分解技术的发展,这个长 度还在增加,不利于数据格式的标准化。目前,SET(Secure Electro nic Tran sactio n)协议中要求 CA 采用 2048 比特长的密钥,其他实体使用 1024 比特的密钥。脱称老丈发表平台四川期刊采编中心ww. scEQikan- comB9RSA 的优点是:1密钥少便于管理,网络中的每一用户只需保存自己的解密密钥,则N 个用户仅需产生 N 对密钥。2密钥分配简单,加密密钥分发给用户,而解密密钥则由
37、用户自己保管。3不需要秘密的通道和复杂的协议来传送密钥。4可以实现数字签名和数字鉴别。2.4 对称密钥和公开密钥相结合的加密技术鉴于对称密钥和公开密钥加密技术的特点,在实际应用中将两种加密技术相结合,即结合使用 DES/IDEA 和 RSA 对于网络中传输的数据用 DES 或 IDEA 加密,而加密用的 密钥则用RSA 加密传送,此方法既保证了数据安全又提高了加密和解密的速度。DES/IDEA和 RSA 结合使用如图 2 所示。图 2 DES/IDEA 和 RSA 结合的加密技术示意图首先发信者使用 DES/IDEA 算法用对称钥将明文原信息加密获得密文, 然后使用接 收者的RSA 公开钥将对
38、称钥加密获得加密的 DES 或 IDEA 密钥,将密文和加密的密钥一 起通过网络传送给 接收者。接收方接收到密文信息后,首先用自己的密钥解密而获得 DES 或 IDEA 密钥,再用这个密钥将密文解密而最后获得明文原信息。由此,起到了对明文信息保密的作用。著名的 PGP(Pretty GoodPrivacy)软件就是使用 RSA 和 IDEA 相结合进行数据加密。另外,保密增强邮件(PRM 将 RSA 和 DES 结合起来,成为一种保密的 Email 通信标准。 常用到的 SSL(S ecure Sockets Layer,安全套层)安全措施也是利用两种加密技术对客 户机和服务器之间所传输的信息
39、进行加密的。2.5 单向散列函数单向散列函数 H (M 作用于一个任意长度的消息 M 它返回一个固定长度的散列 值 h,其中 h 的长度为 m .输入为任意长度且输出为固定长度的函数有很多种,但单向散列函数还有使其单向的其它特性:(1)给定 M,很容易计算 h ;(2)给定 h,根据 H (M)= h 计算 M 很难;(3) 给定 M,要找到另一个消息 M 并满足 H (M = H (M)很难。在许多应用中,仅有单向性是不够的,还需要称之为“抗碰撞”的条件:要找出两个随机的消息 M 和 M ,使 H (M = H (M)满足很难。由于散列函数的这些特性,由于公开密码算法的计算速度往往很慢,所以
40、,在一些 密码协议中,它可以作为一个消息 M 的摘要,代替原始消息 M,让发送者为 H ( M 签 名而不是对 M签名.单向散列函数一般用于产生消息摘要,密钥加密等,常见的有:(1)MD5( Message Digest Algorithm 5 ):是 RSA 数据安全公司开发的一种单向散列頂將老丈发表平台四川期刊采编中心www. seEdikan- comB10算法 MD5 被广泛使用,可以用来把不同长度的数据块进行暗码运算成一个128 位的数值;(2) SHA(Secure Hash Algorithm )这是一种较新的散列算法,可以对任意长度的数 据运算生成一个 160 位的数值;(3)
41、 MAC( Message Authentication Code ):消息认证代码,是一种使用密钥的单向函 数,可以用它们在系统上或用户之间认证文件或消息。 HMAC 用于消息认证的密钥散列 法)就是这种函数的一个例子。(4)CRC( Cyclic Redundancy Check ):循环冗余校验码,CRC 校验由于实现简单,检 错能力强,被广泛使用在各种数据校验应用中。占用系统资源少,用软硬件均能实现, 是进行数据传输差错检测地一种很好的手段(CRC 并不是严格意义上的散列算法,但它 的作用与散列算法大致相同,所以归于此类)。下面介绍一下 MD5:MD5 的典型应用是对一段信息(mess
42、age 产生信息摘要(message-digest ),以防 止被篡改。比如,在 unix 下有很多软件在下载的时候都有一个文件名相同,文件扩展 名为.MD5 的文件,在这个文件中通常只有一行文本,大致结构如:MD5 (tan ajiya.tar.gz) = 0ca175b9c0f726a831d895e269332461这就是 tanajiya.tar.gz文件的数字签名。MD5 将整个文件当作一个大文本信息,通过其不可逆的字符串变换算法,产生了这个唯一的MD5 信息摘要。如果在以后传播这个文件的过程中,无论文件的内容发生了任何形式的改变(包括人为修改或者下载过程 中线路不稳定引起的传输错误
43、等),只要你对这个文件重新计算 MD5 时就会发现信息摘 要不相同,由此可以确定你得到的只是一个不正确的文件。如果再有一个第三方的认证 机构,用 MD5 还可以防止文件作者的抵赖,这就是所谓的数字签名应用。MD5 还广泛用于加密和解密技术上。比如在 unix 系统中用户的密码就是以 MD5(或 其它类似的算法)经加密后存储在文件系统中。当用户登录的时候,系统把用户输入的 密码计算成MD5 值,然后再去和保存在文件系统中的 MD5 值进行比较,进而确定输入的 密码是否正确。通过这样的步骤, 系统在并不知道用户密码的明码的情况下就可以确定 用户登录系统的合法性。这不但可以避免用户的密码被具有系统管
44、理员权限的用户知 道,而且还在一定程度上增加了密码被破解的难度。正是因为这个原因,现在被黑客使用最多的一种破译密码的方法就是一种被称为跑字典的方法。有两种方法得到字典,一种是日常搜集的用做密码的字符串表,另一 种是用排列组合方法生成的,先用 MD5 程序计算出这些字典项的 MD5 值,然后再用目标 的 MD5值在这个字典中检索。我们假设密码的最大长度为8 位字节(8 bytes ),同时密码只能是字母和数字,共26+26+10=62 个字符,排列组合出的字典的项数则是p(62,1)+p(62,2).+p(62,8),那也已经是一个很天文的数字了,存储这个字典就需要 tb 级的磁盘阵列,而且这种
45、方法还有一个前提,就是能获得目标账户的密码 MD5S的情 况下才可以。这种加密技术被广泛的应用于unix 系统中,这也是为什么 unix 系统比一般操作系统更为坚固一个重要原因。对 MD5 算法简要的叙述可以为:MD5 512 位分组来处理输入的信息,且每一分组 又被划分为 16 个 32 位子分组,经过了一系列的处理后,算法的输出由四个32 位分组组成,将这四个 32 位分组级联后将生成一个 128 位散列值。在 MD 翼法中,首先需要对信息进行填充,使其字节长度对 512 求余的结果等于 448。因此,信息的字节长度(bits length )将被扩展至 n*512+448,即 n*64+
46、56 个字节(bytes ), n 为一个正整数。填充的方法如下,在信息的后面填充一个1 和无数个 0,直到满足上面的条件时才停止用 0 对信息的填充。然后,在在这个结果后面附加一个以64 位二进制表示的填充前信息长度。经过这两步的处理,现在的信息字节长度=n*512+448+64=(n+1)*512,即长度恰好是 512 的整数倍。这样做的原因是为满足后面 处理中頂將老丈发表平台四川期刊采编中心www. seEdikan- comB11对信息长度的要求。頂將老丈发表平台四川期刊采编中心www. seEdikan- comBi oMD5 中有四个 32 位被称作链接变量(chaining va
47、riable)的整数参数,他们分别为:a=0 x01234567, b=0 x89abcdef, c=0 xfedcba98,d=0 x76543210b当设置好这四个链接变量后,就开始进入算法的四轮循环运算。循环的次数是信息 中 512位信息分组的数目。将上面四个链接变量复制到另外四个变量中:a 到 a,b 到 b,c 到 c,d 到 d。主循环有四轮(md4 只有三轮),每轮循环都很相似。第一轮进行16 次操作。每次操作对 a、b、c 和 d 中的其中三个作一次非线性函数运算,然后将所得结果加上第四个 变量,文本的一个子分组和一个常数。再将所得结果向右环移一个不定的数,并加上 a、b、c
48、或 d 中之一。最后用该结果取代 a、b、c 或 d 中之一。以一下是每次操作中用到的四个非线性函数(每轮一个)。f(x,y,z) =(x&y)|(x) &z)g(x,y,z) =(x&z)|(y&(z) h(x,y,z) =xAyAzi(x,y,z)=yA(x|(z)(&是与,|是或,是非,A 是异或)这四个函数的说明:如果 x、y 和 z 的对应位是独立和均匀的,那么结果的每一位 也应是独立和均匀的。即,如果 x,那么 y,否则 z。函数 h 是逐位奇偶操作符ff(a,b,c,d,m0,7,0 xd76aa478) ff(d,a,b,c,m1,12,
49、0 xe8c7b756)ff(c,d,a,b,m2,17,0 x242070db) ff(b,c,d,a,m3,22,0 xc1bdceee) ff(a,b,c,d,m4,7,0 xf57c0faf)ff(d,a,b,c,m5,12,0 x4787c62a) ff(c,d,a,b,m6,17,0 xa8304613) ff(b,c,d,a,m7,22,0 xfd469501)ff(a,b,c,d,m8,7,0 x698098d8) ff(d,a,b,c,m9,12,0 x8b44f7af) ff(c,d,a,b,m10,17,0 xffff5bb1)ff(b,c,d,a,m11,22,0 x8
50、95cd7be) ff(a,b,c,d,m12,7,0 x6b901122)ff(d,a,b,c,m13,12,0 xfd987193) ff(c,d,a,b,m14,17,0 xa679438e)ff(b,c,d,a,m15,22,0 x49b40821) 第二轮gg(a,b,c,d,m1,5,0 xf61e2562) gg(d,a,b,c,m6,9,0 xc040b340)gg(c,d,a,b,m11,14,0 x265e5a51)是一个逐位运算的函数假设 mj 表示消息的第 j 个子分组(从 ff(a,b,c,d,mj,s,ti) gg(a,b,c,d,mj,s,ti) hh(a,b,c
51、,d,mj,s,ti) ii(a,b,c,d,mj,s,ti)这四轮(64 步)是: 第一轮0 到 15),表示 a=b+(a+(f(b,c,d)+mj+ti) 表示 a=b+(a+(g(b,c,d)+mj+ti) 表示 a=b+(a+(h(b,c,d)+mj+ti) 表示 a=b+(a+(i(b,c,d)+mj+ti)頂將老丈发表平台四川期刊采编中心www. seEdikan- comB11gg(b,c,d,a,m0,20,0 xe9b6c7aa) gg(a,b,c,d,m5,5,0 xd62f105d)gg(d,a,b,c,m10,9,0 x02441453) gg(c,d,a,b,m15
52、,14,0 xd8a1e681)gg(b,c,d,a,m4,20,0 xe7d3fbc8) gg(a,b,c,d,m9,5,0 x21e1cde6)gg(d,a,b,c,m14,9,0 xc33707d6) gg(c,d,a,b,m3,14,0 xf4d50d87)gg(b,c,d,a,m8,20,0 x455a14ed) gg(a,b,c,d,m13,5,0 xa9e3e905)gg(d,a,b,c,m2,9,0 xfcefa3f8) gg(c,d,a,b,m7,14,0 x676f02d9)gg(b,c,d,a,m12,20,0 x8d2a4c8a) 第三轮hh(a,b,c,d,m5,4,
53、0 xfffa3942) hh(d,a,b,c,m8,11,0 x8771f681)hh(c,d,a,b,m11,16,0 x6d9d6122) hh(b,c,d,a,m14,23,0 xfde5380c)hh(a,b,c,d,m1,4,0 xa4beea44) hh(d,a,b,c,m4,11,0 x4bdecfa9)hh(c,d,a,b,m7,16,0 xf6bb4b60) hh(b,c,d,a,m10,23,0 xbebfbc70)hh(a,b,c,d,m13,4,0 x289b7ec6) hh(d,a,b,c,m0,11,0 xeaa127fa)hh(c,d,a,b,m3,16,0 x
54、d4ef3085) hh(b,c,d,a,m6,23,0 x04881d05)hh(a,b,c,d,m9,4,0 xd9d4d039) hh(d,a,b,c,m12,11,0 xe6db99e5)hh(c,d,a,b,m15,16,0 x1fa27cf8) hh(b,c,d,a,m2,23,0 xc4ac5665) 第四轮ii(a,b,c,d,m0,6,0 xf4292244) ii(d,a,b,c,m7,10,0 x432aff97)ii(c,d,a,b,m14,15,0 xab9423a7) ii(b,c,d,a,m5,21,0 xfc93a039)ii(a,b,c,d,m12,6,0 x
55、655b59c3) ii(d,a,b,c,m3,10,0 x8f0ccc92)ii(c,d,a,b,m10,15,0 xffeff47d) ii(b,c,d,a,m1,21,0 x85845dd1)ii(a,b,c,d,m8,6,0 x6fa87e4f) ii(d,a,b,c,m15,10,0 xfe2ce6e0)ii(c,d,a,b,m6,15,0 xa3014314) ii(b,c,d,a,m13,21,0 x4e0811a1)ii(a,b,c,d,m4,6,0 xf7537e82) ii(d,a,b,c,m11,10,0 xbd3af235)B12脱將老丈发表平台四川期刊采编中心www.
56、 sesaikaii- comii(c,d,a,b,m2,15,0 x2ad7d2bb)ii(b,c,d,a,m9,21,0 xeb86d391)常数 ti 可以如下选择:在第 i 步中,ti 是 4294967296*abs(sin(i)的整数部分,i 的单位是弧度。(4294967296 等于 2 的 32 次方)所有这些完成之后,将 a、b、c、d 分别加上 a、b、c、d。然后用下一分组数据继 续运行算法,最后的输出是 a、b、c 和 d 的级联。MD5 相对 md4 所作了一些改变改进:1. 增加了第四轮;2. 每一步均有唯一的加法常数;3. 为减弱第二轮中函数 g 的对称性从(x&
57、amp;y)|(x&z)|(y&z)变为(x&z)|(y&(z);4. 第一步加上了上一步的结果,这将引起更快的雪崩效应;5. 改变了第二轮和第三轮中访问消息子分组的次序,使其更不相似;6. 近似优化了每一轮中的循环左移位移量以实现更快的雪崩效应。各轮的位移量互不 相同。3 网络中的数据加密方式数据加密可以在网络 OSI 七层协议的多层上实现,从加密技术应用的逻辑位置看, 主要有链路加密和端对端加密两种方式。3.1 链路加密方式面向链路的加密方式将网络看作由链路连接的结点集合,每一个链路被独立的加密。它用于 保护通信结点间传输的数据。每一个连接相当于 OSI 参
58、考模型建立在物理层之 上的链路层。 链路加密方式如图 3 所示:姻靈1站*左W *3图 3 链路加密方式示意图3.1.1 设计思想(1) 截取数据帧NDIS 库为微端口驱动程序提供了一系列接口函数。 微端口驱动程序可以利用这些函 数在主机与网络之间建立联系,也可以利用这些函数来截取数据。在发送本机数据到网卡之前,可以在微端口驱动程序中加入截取子程序截获数据帧,并 把数据帧送入加密模块进行加密,然后将加密后的密文送入网卡缓冲区中。 接收数据时, 从网卡缓冲区中接收的密文被送入主机内存。密文在送往上层网络驱动(2) 加解密模块考虑到帧长的限制,对于数据帧加密要求必须保证其明文和密文长度相等。因此在
59、 加解密模块当中采用分组密码算法。分组密码的工作方式是将明文分成固定长度的组(块),用同一密钥对每一块加密,输出也是固定长度的密文,本文以DES 为例。考虑到软件加解密过程速度较慢,为了提高速度,直接将加解密模块嵌入到微端口驱动 程序中,这样所有对数据的处理将全部在系统底层进行,大大提高了数据处理的效率。 最后将所有模块集成在一起,编译生成网卡驱动程序MYNE200.SY 文件,分别安装在两頂將老丈发表平台四川期刊采编中心www. seEdikan- comB13台主机中进行测试。程序之前被接收截取子程序截获,并调用解密模块将其解密成明文,之后再将明文数据 送交上层处理。3.1.2 实现方案(
60、1)实现工具及环境本方案提出在微端口驱动程序中实施加解密,因此要选用适当的工具对微端口驱动程序进行改造。开发驱动程序的工具有很多种,本方案采用的是 NuMega 公司的驱动程序开发工具DriverStudio。这套软件开发工具包括 SoftICE、DriverWorks、DriverNetWorks、VtoolsD 和DriverAgent 等多种软件工具。可以使用针对 Windows 网络驱动程序的开发工具DriverNetworks。在安装了Win dows2000DD 的环境下,该工具为 NDIS 驱动程序开发者提供了一个框架,开发者可 以很方便地在已有的框架中添加程序并对程序进行编译。该工具可以生成 VC+所需的源文件、DSP 文件以及 INF 文件,方便了驱动程
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 危重患者护理未来发展趋势
- 剖宫产产妇的便秘护理
- 护理与急救护理
- 快递行业项目部负责人面试手册
- 旅游酒店业酒店总经理招聘要点
- 快递公司办公室管理岗位面试要点详解
- 客户满意度提升计划分行版
- 基于现代技术的农村电商发展研究
- 连锁便利店长候选人资格条件解析
- 旅游行业客户服务专员培训资料
- 2026年青海省海南藏族自治州单招职业适应性测试题库附参考答案详解(模拟题)
- 电动单梁起重机培训
- 腹腔镜结肠癌手术步骤
- TGDNAS 043-2024 成人静脉中等长度导管置管技术
- 钢构厂房施工合同范本(2024版)
- TB 10752-2018 高速铁路桥涵工程施工质量验收标准
- 应急资源调查研究报告范文
- 定量药理学的发展及其在新药研制与临床合理用药中的课件
- 2023学年完整公开课版《字母表》教学
- 公务摄影拍摄技巧分享课件
- 华东师范大学 PPT 37
评论
0/150
提交评论