安全电子邮件的设计与实现*杨雪涛李涛刘晓洁任静****(四川大学(西区)计算机学院四川成都610065)摘要:电子邮件作为广泛使用的网络工具,人们对它的安全性需求日益突出。本文提出了一套完整的安全电子邮件解决方案,包括对电子邮件的数字签名、数据加密以及同CA的协同工作。从而提供了电子邮件的保密性、认证身份、完整性和不可否认性。有效的解决了传统电子邮件存在的若干安全性问题,与国外的安全产品相比具有高加密强度并没有安全后门。达到了商用水平,适合国内普通用户乃至重要机密部门使用。关键字:电子邮件数据加密数字签名CAPKI中图分类号:TP393.098文献标识码:AThedesignandimplementofsecureemailYangXue-tao,LiTao,LiuXiao-jie,Renjing(Dept.ofComputer,SichuanUniv.,Chengdu610065,China)Abstract:AsEmailisawidelyusedinternettool,itssecurityrequesthasbeenincreasingurgently.ThethesispresentsacomprehensivesolutionforsecurityEmail,includingdigitalsignatureandencryptionandinterfaceforCA.ThissolutionprovidesEmailconfidentiality,authentication,messageintegrityassurance,andnonrepudiationoforigin.IteffectivelysolvesseveralsecureproblemsintraditionalEmailSystemandhasn’tnetworksecureholesincontrasttoproductsabroadandachieveshighcryptographiclevel.Itreachesthelevelofcommerceandissuitablenotonlyforgeneralusersbutalsoforconfidentialdepartments.Keywords:Email;DigitalSignature;Encryption;CA;PKI1引言电子邮件以其方便、快捷、便宜、容易存储和管理等特点,随着计算机网络的日益普及,在人们的工作和生活中得到了越来越广泛的应用。然而,传统的电子邮件存在着诸多不安全因素:如邮件可能在不为通信双方所知的情况下被读取、篡改或截获;发信者的身份可能被伪造等。所有这些,使得重要的信息不宜或不敢使用电子邮件来传递。随着我国电子信息化水平的不断提高,电子商务和电子政务的发展,对电子邮件的安全性也提出了更高的要求。本文实现了一个提供数据加密和数字签名的安全电子邮件系统——鸡毛信。该系统提供了电子邮件的保密性、完整性、和不可否认性。同时还实现了对CA(CertificationAuthority)的支持,从而使鸡毛信能够基于PKI(PublicKeyInfrastructure)实现更广泛的应用。2安全电子邮件系统——鸡毛信的设计与实现在实现电子邮件安全发送与接收之前,鸡毛信系统首先实现了基本的电子邮件系统协议如SMTP、POP3、MIME等。在实现了基本的电子邮件协议基础上,进而实现安全电子邮件系统。目前比较著名的安全电子邮件协议有PEM、PGP、S/MIME、MOSS等。本系统采用了MOSS协议。*本文承蒙四川省科技厅重点基金项目的资助。****杨雪涛(1975-),男,四川南充人,硕士研究生,研究方向:计算机网络与互联网;李涛(1965-),男,四川人,教授,博士生导师,研究方向:计算机网络安全,人工智能。MOSS提供了三种功能:1)加密:提供和保障邮件的保密性;2)数字签名:防止邮件伪冒、发送方抵赖和邮件被篡改;3)数字签名和数据加密服务:对只签名或者只加密的数据可以进行嵌套。这样加密的数据可以被签名,对数字签名的数据可以加密。本系统同时实现了对邮件的数字签名和加密。系统对写好的邮件首先进行数字签名,然后对签名的邮件进行加密再发送。接收到加密邮件后系统先解密邮件,再验证它的数字签名。从而保证了电子邮件的保密性、完整性和不可否认性。2.1数据加密和数字签名目前的数据加密技术在算法上主要分为对称算法和公开密钥算法。所谓对称算法即是采用加密和解密用同一把秘密钥匙(简称“密钥”)的方式,应用较广的对称算法有:DES、三重DES、RC2、RC4、RC5和IDEA算法。而公开密钥算法是指用于加密的密钥不同于用于解密的密钥,并且从其中一个很难推断出另一个。其中一个密钥公之于众,称为“公开密钥”(public-key),另一个密钥由用户自己保存,称为“秘密密钥”(private-key),这两个密钥之间存在着相互依存关系:用其中任一个密钥加密的信息只能用另一个密钥进行解密。公开密钥算法最为典型的代表是RSA算法。这...