开篇:润墨网以专业的文秘视角,为您筛选了一篇接收方不可抵赖的数字签名方案范文,如需获取更多写作素材,在线客服老师一对一协助。欢迎您的阅读与分享!
摘要:数字签名作为一项重要的数据安全技术,在保证网络通信数据的完整性、保密性和不可抵赖性方面发挥着重要的作用,并且随着网络技术的发展和普及,将会发挥更大的作用,该文首先介绍数字签名的理论基础:公开密钥体制、单向散列函数、CA 机构和证书,然后针对特定的应用场合,设计出具有特定功能的数字签名方案――双方均不可抵赖的数字签名方案。
关键词:数字签名;公钥加密体制;密钥交换;哈希函数;双方不可抵赖
中图分类号:TP309文献标识码:A文章编号:1009-3044(2008)34-1721-02
A Specific Function-both of the Transistor and Receiver Non-repudiation Signature Program
SUN Xiu-li
(China University of Geoscience, Wuhan 430074, China)
Abstract: As an important technology of data security, digital signature play an important part in ensuring the integrity, confidentiality and non-repudiation of network communication data, and it will play a greater role with the development of network technology and penetration.The paper introduced the basic theory of digital signature: public key system, a one-way hash function, CA and certificate and designed a digital signature program with a specific function-both of the transistor and receiver non-repudiation signature program.
Key word: digital signature; public key system; key switching,Hash function; transistor and receiver non-repudiation
1 数字签名技术的理论基础
公开密钥加密体制:
Bob发送消息给Tom, Tom怎么判断收到的信息是来自Bob,且使Bob不能否认发送过消息?
公开密钥密码算法能解决上面这个问题, 该算法使用两个密钥:公开密钥和私有密钥。它们分别用于对数据的加密和解密,即如果用公开密钥对数据进行加密,只有用对应的私有密钥才能进行解密;如果用私有密钥对数据进行加密,则只有用对应的公开密钥才能解密。私钥由用户本人持有,对外保密,公钥是对外开放的。
Bob用自己的私钥加密消息,发送给Tom,Tom接收到并用Bob的公钥解密,因为只有Bob本人持有私钥,可以确定消息是有Bob发送的, 且Bob不能否认发送过此消息。
目前常用的公开密钥加密体制有3种:基于大数因子分解的RSA 体制,基于离散对数的EIGamal体制和基于编码理论的McEliece体制, 使用最多的是RSA体制。
2 公钥交换问题
在上述公钥密码体制中,我们假设Tom知道Bob的公钥,这是怎么实现的呢?发送方和接收方如何讲公钥交给对方, 如何防止中间人攻击?
中间人攻击法:
发送方Bob和接收方Tom互相发送自己的公钥信息给对方, 中间人Rain是攻击者,Rain通过截获双方发送的公钥信息,并用自己的公钥值分别发给接收双方,Rain可以截获接收双发发送的秘文,并用截获的公钥进行解密,从而达到中间人攻击的目的,具体实现见图1。
在开放的网络环境中,每一用户要与其他用户进行保密通信,首先要查找对方的公开密钥,因此,如何鉴别公开密钥的真实性、合法性是公钥系统要解决的主要问题之一。公钥的管理和用户身份的合法性是通过专门的认证机构(CA)来实施的,每个用户首先提出申请,经认证机构审核认可后,签发证书。证书内容包括版本号、(唯一) 序列号、算法标识、机构、有效期、用户名、用户的公开密钥及算法、发证机构的签名等,证书具有不可伪造性。
证书的生成模式有两种:集中式和分布式。集中式生成模式,就是密钥对由CA 生成,公钥直接交给证书管理服务器生成证书,生成的证书通过适当的通道传给用户。分布式生成模式,就是密钥对由用户自己生成,公钥被送往认证中心申请认证,审核批准后,则CA 返回相应的认证证书给用户,同时将其到一些公共证书库中。
3 单向散列函数
单向散列函数定义:对于任意长度的信息m,经过单向散列函数运算后,生成一个固定长度的散列值,即:h=H(m),单向散列函数有如下性质:
1) 快速性:给定m,很容易计算出h=H(m);
2) 单向性:由输出h,根据h=H(m)求m是很困难的;
3) 抗碰撞性:已知h= H(m),欲构造H(m')=h是很困难的;
4) 雪崩性:h=H(m),h的每一比特与m 的每一比特都相关并有高度的敏感性,即每改变m的每一比特,都将对h产生明显影响。
散列函数的数字签名就是利用上述性质来保证数据的完整性和不可伪造性,生成128bit散列值,SHA也以512bit分组处理输入文本, 生成160bit散列值,SHA具有更高的安全性。
4 一般数字签名
发送方(A) 向接收方(B)用明文形式送去信息m,并附上数字签名,这些数字签名是对明文m作散列运算后形成的散列值,再进行密码变换后形成的数据,它能够使数据单元的接收者确认明文信息m的来源和明文信息的完整性,并保护数据,防止被人伪造和抵赖。其工作过程如下:
1) 发送方用一个单向散列函数对明文信息m进行运算,形成信息摘要MD(Messege Digest),采用信息摘要能够加快数字签名的速度。
2) 发送方用自己的私人密钥S 对信息摘要进行加密得到Es(MD)。
3) 将加密后的信息摘要和明文信息m一起发送出去。即:c=m+Es(MD)B。
4) 接收方用同样的单向散列函数对明文信息m进行计算,形成另一信息摘要MD'。
5) 接收方把接收到的信息摘要用发送方的公开密钥P解密,恢复出加密前信息摘要MD,并与步骤4)形成的信息摘要MD'进行比较,若两者完全一样,即MD=MD',则证明信息是完整的,并且数字签名是有效的。一般数字签名过程如图2所示。
如果BOB向Tom发送一个会议通知,Tom没有出席会议, 并以没有收到通知为由推卸责任,怎么避免这种情况的发生?
以上的数字签名较好地保证了数据的安全性和发送方的不可抵赖性,但是不能有效地防止接收方的抵赖,接收方可能会以没有收到为由而推卸责任。下面介绍一种双方均不能抵赖的数字签名方案:
1) 发送方用随机对称密钥K对信息m加密得到E(K,m),并用自己的私钥进行数字签名ESA(E(K,m)),然后用接收方的公钥加密后发送给接收方;
2) 接收方用自己的私钥解密后得到ESA(E(K,m)),再用发送方的公钥解密后得到E(K,m),验证了发送方的合法性,但是如果接收方不发送收到确认信息,就不能得到明文m;
3) 接收方用自己的私钥加密E(K,m),得到ESB(E(K,m)),再用发送方的公钥加密后送给发送方;
4) 发送方用自己的私钥解密得到ESB(E(K,m)),再用接收方的公钥解密得到E(K,m),确认接收方已收到信息;
5) 发送方把对称密钥K用自己的私钥签名,并用接收方的公钥加密,然后发送给接收方;
6) 接收方解密后,得到对称密钥K,就可以对E(K,m)解密而得到m。
双方均不能抵赖的数字签名方案的流程图如图3所示,在上述过程中,发送方加密5次,解密2次,接收方加密2次,解密5次,计算复杂,但发送方和接收方均无法抵赖,保证了信息传输的安全性,适合于安全性要求较高情况下的数据传输。
6 结束语
本文介绍了公开密码加密体制、单项散列函数、CA 认证。详细论述了一般数字签名提出了双方均不可抵赖的数字签名实现技术。一般数字签名,接收方可能会以没有接收到对方信息等原因而抵赖,从而影响数据通信的有效性,发送方也可能因此而贻误商机,造成不可估量的损失。与一般的签名技术相比较,这种数字签名技术在保证数据的保密性、有效性等方面性能更为优越。适合于通信要求较高的场合。
参考文献:
[1] 白娟,周林.数字签名技术及在Java 中的一种实现[J].微计算机息,2004,20(8):105-106.
[2] 卢开澄.计算机密码学[M].北京:清华大学出版社,1998:207.
[3] Bruce Schneier,吴世忠,等译.应用密码学[M].北京:机械工业出版社,2001:24-29,384-386.
[4] Digital Signature standard[S].Fips pub 186,1994.
[5] 陈晋大,郑纪蛟.用数字签名来保护网络通信安全[J].计算机应用研究,2000(9):43-47.