第18卷第1期陶永明:一种新型逻辑函数化简方法———立体化简法Vol.18No.1Feb .2010第18卷第1期2010年2月电脑与信息技术Computer and Information Technology文章编号:1005-1228(2010)01-0049-04收稿日期:2009-10-27作者简介:石翠(1981-),女(满族),讲师,研究方向为多媒体与数字加密技术。
数字签名技术在电子邮件中的应用石翠(辽宁商贸职业学院信息技术系,沈阳110161)电子邮件是最常用的一种网络应用,人们常常用它来传递一些普通信息,有时也包括一些敏感信息,但是最初的电子邮件系统很不安全。
对于电子邮件的安全,总的来说应该保证两条:其一是保证只有收信人才能阅读信件内容,这可以通过加密技术来解决;其二是收信人能够判断出信件确由发件人发送,而不是被别人伪造或经过篡改的,这就要由数字签名来解决。
保证网上传输数据的安全和交易对方的身份确认是电子邮件安全的关键性问题。
而数字签名技术是保证信息传输的保密性、数据交换的完整性、发送信息的不可否认性、交易者身份的确定性的一种有效的解决方案。
使用数字签名技术可以在电子事务中证明自己的身份,就像兑付支票时要出示有效证件一样,可以用它来加密邮件以保护个人隐私,享受到保障重要电子服务安全所带来的方便。
总之,数字签名是对Internet 上的通信方式进行的革命。
数字签名的实现基础是加密技术,加密技术主要使用公钥加密算法与散列函数。
常用的数字签名算法有:RSA 、DES 等,本文对此从技术角度进行了探讨。
1数字签名的含义和功能数字签名是通过一个单向函数对要传送的报文进行处理,得到的用以认证报文来源并核实报文是否发生变化的一个字母数字串。
数字签名主要有以下几个功能:(1)数据的保密性用于防止非法用户进入系统及合法用户对系统资源的非法使用;通过对一些敏感的数据文件进行加密来保护系统之间的数据交换,防止除接收方之外的第三方截获数据及即使获取文件也无法得到其内容。
如在电子交易中,避免遭到黑客攻击丢失信用卡信息的问题。
(2)数据的完整性防止非法用户修改交换的数据或因此造成的数据丢失等。
(3)数据的不可否认性对数据和信息的来源进行验证,以确保数据由合法的用户发出;防止数据发送方在发出数据后又加以否认,同时防止接收方在收到数据后又否认曾收到过此数据或篡改数据。
摘要:数字签名是网络安全的核心技术,在网络传输中显得非常重要。
它在保证数据的完整性、私有性、不可抗抵赖性方面起着重要的作用。
文章介绍了数字签名的含义,及Hash 函数、对称加密算法和非对称加密算法的签名体制,结合电子邮件数字签名方案的签名过程和验证过程进行相应分析,最后总结了数字签名技术的发展方向。
关键词:数字签名;公钥密码;R SA 中图分类号:TP393.08文献标识码:AApplication of Digital Signature in E-mailSHI Cui(Department of Information Technology ,Liaoning Vocational College of Commerce ,Shenyang 110161,China )Abstract :Digital signature is the core technology of network safety,which is very important in network transmission.It plays an important role in insuring the integrality,private and non-repudiation of the data.The symmetric encryption algorithm,asymmetric encryption algorithm,hash function and define of digital signature were introduced,then the digital signature scheme and verification process of e-mail were analyzed,finally summarizes the development of the digital signature technology.Key words:digital signature;public key;R SA电脑与信息技术2010年2月2数字签名的实现方法2.1Hash函数单向Hash函数的工作原理如下:(1)通过数学算法,把未做处理的报文(不论是明文还是密文)转换为不定长的待输入字符串,称为预映射值。
(2)将预映射值再次转换为定长(一般更短)的输出字串,称hash值,又叫消息摘要(Message Digest),预映射值可任意长,但hash值总是定长;报文或预映射值有丝毫改动,则Hash值完全不同。
这里所谓“单向”,是指不可能由hash值反推出预映射值或报文,但又不是加密,因为不存在解密的问题。
正由于其单向,也就没有了运算速度的障碍。
最常用的Hash算法叫做MD5,可以用M D5对消息产生散列值,或用发送者的私钥加密消息散列值(即消息摘要)。
2.2用对称加密算法进行数字签名2.2.1对称加密算法的含义对称加密算法所用的加密密钥和解密密钥通常是相同的,即使不同也可以很容易地由其中的任意一个来推导出另一个。
在此算法中,加/解密双方所用的密钥都要保守秘密,由于计算速度快而广泛应用于对大量数据如文件的加密过程中。
常用的加密算法有DES 等。
2.2.2DES算法DES全称Data Encryption Standard即数据加密算法,它是IBM公司研究成功并公开发表的。
DES算法的入口参数有三个:Key、Data、M ode。
其中Key为8个字节共64位,是DES算法的工作密钥;Data也为8个字节64位,是要被加密或被解密的数据;Mode为DES 的工作方式,有两种:加密或解密。
DES算法是这样工作的:如M ode为加密,则用Key去把数据Data进行加密,生成Data的密码形式(64位)作为DES的输出结果;如Mode为解密,则用Key去把密码形式的数据Data解密,还原为Data的明码形式(64位)作为DES的输出结果。
在通信网络的两端,双方约定一致的Key,在通信的源点用Key对核心数据进行DES加密,然后以密码形式在公共通信网中传输到通信网络的终点,数据到达目的地后,用同样的Key对密码数据进行解密,便再现了明码形式的核心数据。
这样,便保证了核心数据(如PIN、MAC等)在公共通信网中传输的安全性和可靠性。
DES加密系统的算法是公开的,因而其保密性仅取决于对密钥的保密程度。
通过定期在通信网络的源端和目的端同时改用新的Key,以便进一步提高数据的保密性。
但是这种算法的不足之处在于交易双方都使用同样的密钥,这就着发送者或接收者单方面泄露密码的可能。
此外,每个用户每次使用对称式算法都需要使用其他人不知道的唯一的钥匙,以保证信息的机密性,这就使得密钥对的数量以几何级数增长。
DES算法从公布到现在已有2O多年的历史,随着计算机能力的飞速发展,DES的56位密钥长度显得有些短了。
现在,已经有可能通过穷举的方法来对其进行攻击。
2.3用非对称加密算法进行数字签名2.3.1非对称加密算法的含义与对称型密钥加密系统不同,非对称型密钥加密系统的特点是:加、解密过程使用不同的密钥,并且若仅仅知道加密密钥,也无法推断出解密密钥,这样就可把加密密钥向整个安全通信网公开,用户只须保存解密密钥即可。
所以,非对称加密算法有时又称为公开密钥加密算法,其中最具有代表性的是RSA公钥密码体制。
2.3.2签名和验证过程目前的数字签名是建立在公共密钥体制基础上,它是公用密钥加密技术的一种应用,主要涉及到两方:发送方和接受方。
(1)发送方对发送文档采用特定的算法(如哈希算法)进行运算,得到一个固定长度的数字串,称为消息摘要(Message digest),不同的文档所得到的消息摘要各异,但对相同的文档它的消息摘要却是唯一的。
(2)发送方生成文档的消息摘要,用自己的私钥对摘要进行加密来形成发送方的数字签名。
(3)这个数字签名将作为文档的附件和文档一起发送给接收方。
(4)接收方首先从接收到的原始文档中用同样的算法计算出新的消息摘要,再用发送方的公钥对文档附件的数字签名进行解密,比较两个消息摘要,如果值相同,接收方就能确认该数字签名是发送方的。
这样的签名方法是符合可靠性原则的。
即:签字是可以被确认的,签字是无法被伪造的,签字是无法重复使用的,文件被签字以后是无法被篡改的,总之签字具有不可否认性。
2.3.3RSA算法(1)随机选取的大素数p和q,还有n,其中n=p*q,p和q保密,n公开。
(2)取Φ(n)=(p-1)(q-1),其中Φ(n)表示比n小的素数的个数,随机选取e∈N,且(e,Φ(n))=1,e为加密密钥,公开。
·50·第18卷第1期(3)计算d,使e*d≡1(modΦ(n)),称d为e对模Φ(n)的逆,其中d为解密密钥,保密。
在RSA系统中,设m为明文,且明文块的数值大小小于n,c为密文,则其加密和解密算法如下:加密算法:c=E(m)≡m e(modn)解密算法:m=D(c)≡c d(modn)在RSA系统中(e,n)构成加密密钥,即公钥,(d,n)构成解密密钥,即私钥。
在RSA的构造过程中,我们应该按照安全素数的要求选择安全素数,这样,RSA的安全性才能达到最高。
自1978年RSA算法公布以来,公开密钥密码已从理论研究进入实际应用研究阶段。
到目前为止,不容易找到一个有效的算法来分解两大素数之积,分解2048bit的大整数已经超过了64位计算机的运算能力,因此,在目前和预见的将来,它是足够安全的。
3电子邮件的数字签名电子邮件的安全需要有效的协议来协调通讯双方的操作。
概括其基本协议,可归纳为以下几条:(1)发件人取得发信人的公钥;(2)发件人用自己的私钥签名;(3)发件人用收件人的公钥加密消息;(4)发件人发送加密后的消息与签名结果数据;(5)收件人用自己的私钥解密消息;(6)收信人取得发件人的公钥,并用该公钥认证签名的有效性。
此外,考虑到电子邮件的信息量可能会很大,需要使用ZIP压缩消息,以便于存储和传输。
其中采用了IDEA加密算法来加密压缩后的消息。
RSA则用来加密IDEA所用的会话密钥。
下面介绍电子邮件数字签名技术的实现:如图1所示,首先产生要签名的消息M,发信方根据用户输入的收信人标识信息,找到收件人的公开钥匙。