数字签名从字面上理解,是数字化签名。签名由来已久,用途极广。早在中国古代签名便已经广泛应用。我们最熟悉的可能是电视剧中,官老爷升堂断案,对堂下贫民,私用大刑,屈打成招。最后签字画押,按上红手印,这人就天牢见了。
时间挪移到现代,签名已经广泛应用到方方面面:购物刷信用卡时,需要签名;友人互达书信时需要签名;公司双方签署合同或协议时也需要签名。而这些基本都是手写签名。
在网络时代,人们通过网络支付费用、买卖股票,为了保证网上商务活动的安全,需要一个很重要的安全机制——数字签名。
数字签名是手写签名数字化的产物,但又有着显著的区不同消息的签名不同,甚至相同消息也有不同的签名,否则签名就会被获取并复制到另外的文件中。数字签名的基础是公钥密码学。
数字签名(又称公钥数字签名)是只有信息的发送者才能产生的别人无法伪造的一段数字串,这段数字串同时也是对信息的发送者发送信息真实性的一个有效证明。
它是一种类似写在纸上的普通的物理签名,但是使用了公钥加密领域的技术来实现的,用于鉴别数字信息的方法。一套数字签名通常定义两种互补的运算,一个用于签名,另一个用于验证。数字签名是非对称密钥加密技术与数字摘要技术的应用。
数字签名的原理:
数字签名的文件完整性是很容易验证的(不需要骑缝章,骑缝签名,也不需要笔迹专家),而且数字签名具有不可抵赖性(不可否认性)。
简单地说,所谓数字签名就是附加在数据单元上的一些数据,或是对数据单元所作的密码变换。这种数据或变换允许数据单元的接收者用以确认数据单元的来源和数据单元的完整性并保护数据,防止被人(例如接收者)进行伪造。
它是对电子形式的消息进行签名的一种方法,一个签名消息能在一个通信网络中传输。基于公钥密码体制和私钥密码体制都可以获得数字签名,主要是基于公钥密码体制的数字签名。
包括普通数字签名和特殊数字签名。普通数字签名算法有RSA、ElGamal、Fiat-Shamir、Guillou-Quisquarter、Schnorr、Ong-Schnorr-Shamir数字签名算法、Des/DSA,椭圆曲线数字签名算法和有限自动机数字签名算法等。特殊数字签名有盲签名、代理签名、群签名、不可否认签名、公平盲签名、门限签名、具有消息恢复功能的签名等,它与具体应用环境密切相关。
数字签名方案一般包括三个过程:
系统初始化过程:产生数字签名方案中的所有系统和用户参数(公开的+秘密的)。
签名过程:用户利用给定的签名算法对消息签名,签名过程可以公开也可以不公开,但一定包含仅签名者才拥有的秘密信息(签名密钥)。
验证过程:验证者利用公开的验证方法对给定消息的签名进行验证。
数字签名的目的:保证信息的完整性和真实性,即消息没有被篡改,而且签名也没有被篡改,消息只能始发于所声称的一方。
一个完善的签名方案应满足以下三个条件:
不可伪造性:其他任何人均不能伪造签名,也不能对接收或发送的信息进行篡改、伪造和冒充。
不可否认性:签名者事后不能否认或抵赖自己的签名。
公正的仲裁:若当事双方对签名真伪发生争执时,能通过公正的仲裁者验证签名来确定其真伪。