第34卷 第11期 Vo1.34 ・计算机工程 2008年6月 June 2008 No。ll Computer Engineering 安全技术・ 一文章编号:100o_-3428(2008)11—0174-_o3 文献标识码:A 中图分类号:TP309・7 种改进的PGP安全电子邮件系统 陈静 ,徐洁 ,俸志刚 (1.电子科技大学软件学院,成都610054;2.电子科技大学计算机学院,成都610054) 摘要:USB安全锁是网络身份认证系统中常用的信息载体,具有较高的可靠性。该文引入N分法密钥概念,结合USB安全锁的认证协 议,提出一种改进的PGP电子邮件系统。在安全通信时,利用USB安全锁进行身份认证和密钥管理,无须可信第三方的介入。实验结果 证明,该系统可以有效地抵抗重放攻击和中间人攻击。 关健词:加密;USB安全锁;身份认证 Improved PGP Secure E-mail System CHEN Jing ,XU Jie ,FENG Zhi.gang (1.College ofSoftware,University ofElectronic Science andTechnology ofChina,Chengdu 610054; 2.College of Computer,Universiy tof Electronic Science nd aTechnology of China,Chengdu 610054) [Abstract]USB device Can be used as a USB security key.When it is used as n aidentity token in n anetwork Identity(ID)authentication system, adopting the correspondence of the USB security key is more safe than having no adoptive correspondence.By introducing the concept of N—dimensional security key and combining a two—way USB security key authentication protoco1.this paper proposes an improved PGP e—mail system.Making use of the USB security key to carry on an identity attestation and manage wih atirtight key while carrying out safety correspondence,this system does not need the help of trusted third party.Experimental result shows that the system resists man—in—the-middle attack nd ainterleaving attack. [Key words]encryption;USB securiy tkey;Identity(n3)authentication 1概述 作为目前流行的一种加密软件,PGP将RSA公匙算法的 常规加密算法(IDEA)、散列算法(MD5)组成。 可靠性和传统加密算法的高速度有效地结合,在防止邮件的 非法篡改方面性能优越。PGP具有如下优点:对邮件进行保 密以防止非授权者阅读;对用户的邮件进行数字签名,使收 2.1 RSA算法的原理及其安全性 RSA算法是在1978年首次提出,其既可用于加密又可 用于签名的公开密钥算法。它的保密性是基于一个数学假设: 对一个很大的合数进行质因数分解是不可能的。RSA用到的 信人可以确信发信人的身份;让用户可以安全地进行通信, 不需要采取任何保密措施来传递密钥。PGP采用了混合加密 算法的加密体系,包含4个密码算法单元:对称加密算 法(IDEA),非对称加密算法(RSA),单向散列算法(杂凑函数), 随机数产生器(从用户击键频率产生伪随机数序列的种子) 】。 每种算法都是PGP不可分割的组成部分,PGP集中了几种加 密算法的优点。但是PGP也有固有的缺点。通信双方的密钥 是两个非常大的质数的乘积,用目前的计算机水平是无法分 解的。这2个很大的质数:一个公开给世界(公匙);一个不 告诉任何人(私匙)。这2个密匙是互补的,就是说用公匙加 密的密文可以用私匙解密,反过来也一样。 RSA的安全性依赖于大数分解的难度。目前还没有一种 可以便捷地产生一个大质数的算法。因此,PGP实际采用的 方法是产生一个大奇数,对其做费马测试然后测试它的质数 管理和身份认证是建立在信任度模型的基础上的,每个PGP 用户都可以给他认为是真实的公开密钥签发证书,并且可以 拥有多个证明机构颁发的证书。然而,这种信任体系的完备 性和权威性存在较大隐患,同时在密钥废除时也不可能及时 通知到通信双方。在针对外来攻击如重放攻击时,即使在改 进邮件加密算法中,PGP也不能很好地保护通信者的安全。 如何克服和避免这些安全隐患也就成为了亟待解决的问题。 一性。质数的个数是无穷的,甚至它的分布密度也超出一般人 的想象,数论给出的结论表明, 以内的质数的个数趋近于 n/lnn。但是随着计算机性能的提高和数论的发展,人们也许 会找到一种以多项式方式增长的分解算法,虽然目前这种漏 洞可以通过增加RSA钥匙长度的方法来暂时弥补,但是钥 匙长度的倍增影响了加密的效率和可应用的范围。 2.2 IDEA算法的原理及其安全性 IDEA是一个迭代分组密码,分组长度为64 bit,密钥长 度为128 bit。在IDEA密码中使用了3种不同的运算:逐比 特“异或”运算;模2加运算;模2+1乘运算(0与2对应)。 作者筒介:陈静(1976--),男,硕士研究生,主研方向:网络安全, 嵌入式软件开发;徐洁,副教授;俸志刚,讲师 些学者借用可信中介CA进行密钥安全管理和双方认证, 的隐患。网络通信安全设计应该是建立在不可信任模型的基 但实际上又增加了中介认证机构CA(无论可信度多高)泄密 础上,最安全的通信要求双方互通而无须第三方的认证和密 钥管理。为此,笔者提出一种新的密钥认证和管理方法。 2 PGP的算法原理说明及安全性 PGP算法是一个杂凑算法,主要由公开密钥算法(RSA)、 一收稿日期:2007—08—25 E—mail:cjywcy@163.com 174_一 维普资讯 http://www.cqvip.com IDEA算法是由8圈迭代和一个输出变换组成的。它将 破解,如果没有接收方的USB安全锁,密文还是比较难以破 64 bit的数据分成4个16 bit子块,令这4个子块作8圈迭代。 每圈迭代都是4个子块彼此间以及16 bit的子密钥进行异或, MOD2加运算,MOD2+I乘运算。任何一轮迭代第3子块和 第4子块互换。该算法所需要的“混淆”可通过连续使用 3个“不相容”的群运算,在2个16 bit子块中来获得,该算 法使用的MA一(乘加)结构可提供必要的“扩散”。已证明IDEA 算法在其8圈迭代的第4圈之后便不受差分密码分析的影响 了。假定穷举法攻击有效的话,那么即使设计一种每秒可以 解,因为就现在计算机速度和算法而言,IDEA还是非常安 全的。同时“N分法”使通信双方不需要密钥交换,因此, 基本上避免了因传递而泄漏了密钥的可能性,通信双方的 USB安全锁自动为通信双方生成了一系列对原文进行加、解 密的随机密钥,这使得USB安全锁成为PGP中最简单易行 并且安全的密钥管理办法。 试验1O亿个密钥的专用芯片,并将1O亿片这样的芯片用于 此项工作,仍需1 013年才能解决该问题。由此看出,idea 3.2基于RSA的USB安全锁认证协议 在基于RSA安全通信模型中,考虑到只有合法的USB 安全锁用户才可以利用此.USB安全锁进行安全通信,因此, 在安全通信之前要对双方的USB安全锁及其通信双方的公 钥的可信度进行认证,只有证明双方身份及公钥的可信,用 加解密算法是比较可靠的。 2.3杂凑函数算法及其安全性 杂凑函数算法采用单向哈希函数算法,将任意长度的输 入报文,经过计算得出固定位的输出,称为报文摘要。所谓 单向是指该算法是不可逆的,找出具有同一报文摘要的两个 不同报文是很困难的;找出具有同一给定报文摘要的两个不 同的报文更为困难。由于哈希算法的单向性和严密性,接收 方可确保没有其他人能够生成与收到的报文摘要相同的新消 息或原始报文的签名。PGP采用MD5算法和SHA(Secure Hash Algorithm)算法。它接收到一段明文,以2 bit数据块为 单位,以不可逆的方式转换成160 bit的消息摘要(通常比明 文更短),将一串输入码(预映射或信息)转化为长度较短和位 数固定的输出序列,即散列值(信息摘要或信息认证代码)。 但是任何一种杂凑函数都会产生一定概率的类似散列值,如 果攻击者一旦发现规律,就有可能利用这些缺陷(如尝试利用 户才能使用USB安全锁进行安全信息通信。 结合RSA的身份认证协议原理、USB安全锁本身具有的 特点,USB认证模型见图2。 甩PA 甩PB 图2 USB身份认证 利用USB安全锁进行身份和公钥认证过程的如下: (1)用户A插入USB安全锁A到PC的USB接口上,并 输入自己的用户名PⅣ和密码PS。 (2)USB安全锁A产生随机数 1,并取得 1(当前时间) 和T2(有效时间),并将以上数据和自身的KeylD以及PⅣ, PS一起组成明文Ma。 完全不同的文件或数据生成同一个类似散列值)展开攻击。 3基于PGP系统中USB安全锁的设计 3,1 USB安全锁设计及密钥管理功能 在PGP系统中,USB取代网络专门认证中心(cA)对通信 双方进行认证。它的实现方法由预处理、加密和解密3个部 (3)USB安全锁A产生随机数R2并对USB盘里的固定 密钥UP进行“U(n= 2)分法”产生新的随机密钥VUP。 (4)用户A将Ma使用VUP密钥进行idea算法加密,其 结果和R2合并成密文c口,然后使用用户B公钥Rb(可以从 网站或其他途径获得)对 进行公钥算法,加密成Cm发往 用户B,如下: Ca-((Ma)IDEA( ))J JR1;Cm=-Ca Rb 分组成Bj。在预处理部分,根据要实现的功能(加密和身份认 证)确定使用的算法(IDEA)和基于“N分法”产生的随机数及 随机密钥。在加密部分,对明文分组并将其编码,对编码后 的信息进行和随机数合并,然后将密文传送给对方。在解密 部分,对密文进行拆分,根据随机数得到密钥,再对密文分 (5)用户B使用自己的私钥解开加密信Cm,并将其分解 为密文和随机数 2。’ 组解密并恢复出明文。USB相关软件设计见图1。 (6)USB安全锁B接到用户B的USB接口上,并输入用 户B的PⅣ和密码,USB安全锁B上的固定密钥和接收到的 随机数 2利用盘里固定密钥 和“N分法”产生IDEA密 码VUP并解开对方的明文Ma得到随机数 1。 (7)USB安全锁B产生随机数 3和新的随机密钥OVUP。 (8)用户B将 1和USB安全锁的KeylD、73(获取时间)、 PⅣ(B的用户名)组成明文并使用OVUP密钥进行idea算法加 密成密文Mb,其结果和R3合并成密文Oca,将Oca使用A 方公钥Ra(也是可以从网站或服务器上获得)进行RSAJJII密成 Ocm,并发往A方通信PC机。 (9)用户A用私钥解开Ocm密文获得随机数 3,并利用 ’和“N分法”获得随机密钥OVUP,然后进行IDEA解密 图1 USB相关软件设计 获得明文Mb及随机数 1,比较获得的 1和发送的 1,若 相同则表示双方的公钥得到认证,并确认对方安全锁的身份 和双方获得了安全通信的权限。 (1O)用户A在有效时间 内,没有收到用户B的反馈 信息,重复(1),M(有效门限)次均未收到用户B的消息,认 为所得到用户B公钥为假或B方收件人不在,安全认证过程 一在传统PGP设计中,IDEA算法加密的随机密钥是在和 邮件加密后一起传输给对方,一旦对方私钥泄漏,IDEA的 密钥也将失去安全性。笔者把产生IDEA的随机密钥及算法 加密的完成都放在USB中实现,同时IDEA随机密钥的产生 是基于“N分法”。这样即使在通信过程中,私钥出现泄漏或 175— 维普资讯 http://www.cqvip.com
终止。 (11)结束。 4改进的PGP电子邮件系统的模型 目前,PGP在网络上的资源是免费的,但是算法程序是 相对独立的。PGP的实现依赖于各种邮件客户机。所有的邮 件传递都是透明的,不需要用户直接干预,为此,笔者设计 了USB安全锁,并依照PGP的原理模型自行实现一组安全 加密过程。假定通信双方的公钥和USB身份都得到认证。该 通信过程模型把加解密算法如IDEA的密钥及其实现放在 USB中去完成,和RSA在PC机上加密分离,所以,一旦当 RSA的私钥泄密或者被其他方调换,如果没有USB安全锁, 信件内容还是无法取得,IDEA仍是目前最可靠的加解密算 法。同时IDEA的随机密钥是由USB的固定密钥和N分法发 生器所产生,如果想破解USB的固定密钥,就必须截获连续 的 ≥64)个报文,并将其全部破译。其中有一个未截获或 未破译,都无法破译该密钥。由于N分密钥法可以确保黑客 无法连续破译 个报文,使通信系统具有极高的不可破译性, 能够抵挡邮件的重放攻击”J。安全通信过程设计见图3、图4。 图4接收靖处理过程 5结束语 公钥的认证和身份管理是PGP系统设计的难点。本文的 模型建立在不可信任模型上。USB的普及使直接通信成为可 能,利用独创的USB安全锁就可以确定对方公钥的真伪性和 通信对方的身份,在RSA的公钥加密基础上增加了一层可信 度,“N分法”对IDEA的密钥进行了良好的管理。密钥和算 法分开存储的PGP系统,实现了真正意义上的安全通信。 参考文献 [1]Networks Associates Tecll【lo1ogy Inc PGP Windows User’S Guide[Z] 2002 [2]USB Implement Forum USB Implement Forum[Z].1996. [3]李晓波.N分密钥系统在湖南长沙问世[EB/OL] (1999—10—01). 图3发送靖处理过程 httD:#www.3nette1.com/tsxz/mm3.htm. (上接第167页) 优于单个神经网络分类器的性能。但是,使用不同集成方法 其检测性能是不同的。另外,使用不同的聚类技术及不同的 融合方法,检测率与误报率是不同的,其中使用Hiermax _Ensembles[J] Machine Learning,2003,5 1(2):181—207. [2]Aksela M,Laaksonen J.Using Diversitv of Errors for Selecting Members of a Committee Classiifer[J].Pattern Recognition,2006, 39(4):608—623. 方法获得了较好的性能,可训练的融合方法要比固定的融合 方法更能提高检测性能。 由表3可以知道,使用DBNNE,Bagging,Adaboost集成 方法的性能是类似的,这充分说明集成方法DBNNE在较大 [3]李凯,黄厚宽 一种提高神经网络集成差异性的学习方法[J】 .电子学报,2005,33(8):1387—1390. [4]Giacinto G Roli E Didaci L.Fusion of Multiple Classifiers for Intrusion Detection in Computer Networks[J】.Pattern Recognition 的数据集上与Bagging和Adaboost相比,性能优越。 参考文献 [1]Kuncheva L I,Whitaker C.Measures of Diversity in Classifier Letters,2003,24(12):1795—1803. [5]李凯,李昆仑,崔丽娟.模型聚类及在集成学习中的应用研究 [J】.计算机研究与发展,2007,44(增刊):203—07.2
因篇幅问题不能全部显示,请点此查看更多更全内容