浅谈数字签名

时间:2022-09-19 07:41:37

浅谈数字签名

[摘 要]随着网络通信的发展,数字签名作为信息安全技术认证技术中的一项关键技术,可以解决否认、伪造、篡改及冒充问题,用来保证信息传输过程中的完整性,提供信息发送者的身份认证和不可抵赖性。具有其它技术所无法替代的作用,在信息安全领域得到广泛的应用。

[关键词]计算机技术 数字签名 应用

[中图分类号]TP[文献标识码]A[文章编号]1007-9416(2010)03-0050-02

目前,随着越来越多的政府部门和企业机构开始应用Internet,他们的信息共享程度与网上业务不断增加。与此同时,网络攻击和犯罪活动也日益猖獗。如何防止机密信息在网络中被泄露或窜改、如何有效地抵制和打击信息犯罪、保障网络与信息安全等,给人们提出了严峻的挑战。

在因特网这个虚拟的世界中,该通过何种措施来使人们相信因特网信息的准确性呢?当然可以采用强大的安全保障机制,来保证网上的信息不被那些“非法分子”入侵。目前有许多种技术来保证信息的安全不受侵犯,例如加密技术,访问控制技术、认证技术以及安全审计技术等,但这些技术大多数是用来预防用的,而且一旦被攻破,我们就不能保证信息的完整性。为此,只有在信息本身的安全上作出努力,数字签名技术应运而生。

1 数字签名的概念

数字签名不是指将你的签名扫描成数字图像,或者用触摸板获取的签名,更不是你的落款。数字签名(又称公钥数字签名、电子签章)是一种类似写在纸上的普通的物理签名,但是使用了公钥加密领域的技术实现,用于鉴别数字信息的方法。其验证的准确度是一般手工签名和图章的验证而无法比拟的。

简单地说,所谓数字签名就是附加在数据单元上的一些数据,或是对数据单元所作的密码变换。这种数据或变换允许数据单元的接收者用以确认数据单元的来源和数据单元的完整性并保护数据,防止被人(例如接收者)进行伪造。它是对电子形式的消息进行签名的一种方法。一个签名消息能在一个通信网络中传输。基于公钥密码体制和私钥密码体制都可以获得数字签名,目前主要是基于公钥密码体制的数字签名。包括普通数字签名和特殊数字签名。普通数字签名算法有RSA、ElGamal、Fiat-Shamir、Guillou- Quisquarter、Schnorr、Ong-Schnorr-Shamir数字签名算法、Des/DSA,椭圆曲线数字签名算法和有限自动机数字签名算法等。特殊数字签名有盲签名、签名、群签名、不可否认签名、公平盲签名、门限签名、具有消息恢复功能签名等,它与具体应用环境密切相关。

“数字签名”是目前电子商务、电子政务中应用最普遍、技术最成熟的、可操作性最强的一种电子签名方法。它采用了规范化的程序和科学化的方法,用于鉴定签名人的身份以及对一项电子数据内容的认可。它还能验证出文件的原文在传输过程中有无变动,确保传输电子文件的完整性、真实性和不可抵赖性。这样数字签名就可用来防止有人修改信息;或冒用别人名义发送伪造信息;或发出(收到)信息后又加以否认等情况的发生。

2 数字签名的工作原理及实现

一套数字签名通常定义两种互补的运算,一个用于签名,另一个用于验证。

通常要验证文档未被篡改,而不必加密文档。数字签名可以验证文档未被篡改和确实来自有关方面。

数字签名有两个基本组件:安全散列函数和公用密钥加密。安全散列算法取一块数据并将其分解成小位块。这个算法每次运行时对特定位模式产生相同的散列值。这样,发送文件之间计算散列时,接收计算相同的散列值。一个好的散列算法在文档少量改变时也能使结果大大改变。这样,别人篡改文档之后就很难保持相同的散列值。

例如,创设散列算法根据文档中的各个字符计算数值,不管字符顺序。这样,ABC与CBA有相同散列值。因此别人可以把文档内容做顺序上的调整,面散列值却不变,从而使数字签名仍然有效。

MD5和SHA之类的安全散列算法考虑字节顺序,几乎不可能对文档进行小改而散列值不变。这两种广泛应用的签名算法都是基于非对称加密即公钥密码学,目前已被破解。

这样,数字签名的第二个部分就是某种逆公用密钥算法。通常,使用公用密钥算法时,用公用密钥加密数据,用专用密钥解密数据。对于数字签名正好相反,用专用密钥加密文本块的散列值,任何人要验证签名有效性时,就使用公用密钥验证该散列值是用相应的专用密钥加密的。

在公钥密码学中,密钥是由公开密钥和私有密钥组成的密钥对。数字签名就是用私有密钥进行加密,接受方用公开密钥进行解密,由于从公开密钥不能推算出私有密钥,所以公开密钥不会损害私有密钥的安全。公开密钥无需保密,可以公开传播,而私有密钥必须保密。因此,当某人用其私有密钥加密消息时,能够用他的公开密钥正确解密,就可以肯定该消息是某人签字的,这就是数字签名的基本原理。因为其他人的公开密钥不可能正确解密该加密过的消息,其他人也不可能拥有该人的私有密钥而制造出该加密过的消息。

3 数字签名的常用算法

数字签名用到的算法很多,大体上可以分为密钥算法和单向散列算法,除上文提到的最常用的单向散列算法MD5和SHA,应用最为广泛的三种是: Hash签名、DSS签名、RSA签名。

(1)Hash签名

Hash签名不属于强计算密集型算法,应用较广泛。很多少量现金付款系统,如DEC的Millicent和CyberCash的CyberCoin等都使用Hash签名。使用较快的算法,可降低服务器资源消耗,减轻中央服务器负荷。Hash的主要局限是接收方必须持有用户密钥的副本以检验签名,因为双方都知道生成签名的密钥,较容易攻破,存在伪造签名的可能。如果中央或用户计算机中有一个被攻破,那么其安全性就受到了威胁。

(2)DSS和RSA签名

DSS和RSA采用了公钥算法,不存在Hash的局限性。RSA是最流行的一种加密标准,许多产品的内核中都有RSA的软件和类库,早在Web飞速发展之前,RSA数据安全公司就负责数字签名软件与Macintosh操作系统的集成,在Apple的协作软件PowerTalk上还增加了签名拖放功能,用户只要把需要加密的数据拖到相应的图标上,就完成了电子形式的数字签名。RSA与Microsoft、IBM、Sun和Digital都签订了许可协议,使在其生产线上加入了类似的签名特性。与DSS不同,RSA既可以用来加密数据,也可以用于身份认证。和Hash签名相比,在公钥系统中,由于生成签名的密钥只存储于用户的计算机中,安全系数大一些。

4 数字签名的用途

在网络应用中,凡事要解决伪造、抵赖、冒充、篡改与身份鉴别的问题,都可运用数字签名来处理。

例如:网上银行通过Internet向客户提供信息查询、对账、网上支付、资金划转、信贷业务以及投资理财等金融业务。网上银行将对传统银行业带来巨变,有人估计:网上银行将使劳动生产率年均增长54%。比如工商银行发给客户的U盾,就存储了代表你身份的数字证书与其他信息,其交易过程就需要数字签名的支持。

电子商务能完成企业之间、企业与消费者之间在网上的交互活动。网上证券能在网上完成股票交易、网上证券信息服务、网上银行/证券转账业务等。这些业务需要身份鉴别防篡改等功能,也要使用数字签名。

还有电子政务。加入一个没有身份认证服务的电子政务系统,任何人都可随便签发文件散布,而不用担心事发后的追查,因为无法甄别出签字者,该电子政务系统的危害性可想而知。电子政务系统必须提供身份认证服务、权限控制服务、信息保密服务、数据完整和不可否认服务。

[参考文献]

[1] 熊德健.采用数字签名及时保障网络通信安全应用研究[J].甘肃科技,2008(22):p25~26.

[2] 陈赫贝,阮飞.XML数字签名及其应用研究[J].微机发展,2005(2):p53~54.

[3] 罗清元,王晓晓.数字签名技术的研究及应用[J].计算机安全,20084(2):p72~73.

[4] 李红艳.浅析数字签名及其在电子商务中的应用[J].胜利油田职工大学学报,2005(4):p71.

本文为全文原貌 未安装PDF浏览器用户请先下载安装 原版全文

上一篇:MPEG-7多媒体信息检索标准分析 下一篇:重钢4100mm宽厚板步进式加热炉自动控制系统