一种基于身份认证的数字签名算法研究
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一种基于身份认证的数字签名算法研究
作者:陈卫军牛红惠
来源:《商场现代化》2009年第06期
[摘要] 针对电子商务领域的安全问题,利用基于身份的密码体制,提出了一种高效的数字签名算法。这种算法可以解决代理签名的问题,而且具有签名长度短、系统开销小、安全程度高等特点。
[关键词] 数字签名代理签名可公开验证
一、引言
随着网络技术的发展,全球经济一体化进程的加快,电子商务在世界范围内日渐得到普及和应用。但与此同时,交易的风险性和不确定性也大大增加,安全问题已经成为电子商务发展的瓶颈。近几年来,由于数字签名技术的广泛运用,电子商务系的统安全性得到了较好的保证。
然而,在现代商务活动中,我们常常会遇到一些需要把某些权力转交给特定的代理人,人代理人代为行使这些权利。比如,又一个单位的董事长需要出国考察,在考察期间,为了不耽误公司的正常工作,董事长可以委托一个特定的人员代为行使董事长的权力。为此,基于身份的密码体制就成为解决问题的关键。基于身份的密码学是由Shamir于1984年提出的。其主要观点是,系统中不需要证书,可以使用用户的标识如姓名、IP地址、电子邮件地址等作为公钥。用户的私钥通过一个被称作私钥生成器PKG(Private key generator)的可信任第三方进行计算得到。基于身份的密码系统的主要好处是可以减少证书存储和管理开销。
1996年Mambo、Usuda和Okamoto中给出了解决上述事例的方法,首先提出了代理签名的概念,并提出了一个简单的代理签名方案。代理签名是指原始签名者可以将其签名权力授权给代理签名者,然后代理签名者就可以代表原始签名者进行签名,当验证者验证一个代理签名时,需要同时验证签名和原始签名者的授权协议。然而,代理签名者代理原始签名者行使代理权时,其签名可以被任何第三方进行验证。在某些情况下,并不希望任何人都能验证代理签名,而只有指定的验证人才能验证代理签名。这在实际中是需要的,如电子商务中的电子投标,电子投票等。
文献介绍了其他的几种代理签名方案,但是这些方案在安全性方面都不同的有缺陷。1996年,Jakobsson等介绍了一个新的原语——指定验证者签名,指定验证者签名是指一个原始签名者可以使指定验证者相信他的申明是正确的,实现了只有指定验证者才能验证原始签名者的签名的特性,原因是指定验证者可以生成与原始签名者不可区分的签名,该签名虽然外人不能
区分,是由原始签名者还是指定验证者所生成的,但却可以验证,并可以确定是他们二者之一所生成。文献中Jakobsson等人也首次提出了一种强指定验证者签名方案的概念,强指定验证者签名是指只有指定验证者可以验证原始签名者的签名的有效性,但是他对签名的验证不能使第三方相信此签名是由谁生成的,因为强指定验证者能模拟原始签名者生成一个相同的副本,而且只有强指定验证者可以验证签名。后来Saeednia,Vergnaud和Laguil-laumie给出其形式化的定义,并进一步的加以延伸。如何将强指定验证的特性引入到代理签名体制中,值得深入的研究。
2004年,Li和Chen提出了一个基于身份的代理签密方案,但是文献证明文献[7]中的方案不具有强不可伪造和前向安全的性质。在本文中,通过结合代理签名的思想,提出了一个验证代理签名的方案。该方案实现了代理签名只能被指定验证人才能验证的特性,还具有签名长度短和计算开销小的优点。
二、双线性配对和GDH群
下面描述一些常用的与双线性映射有关的数学问题。
定义1(双线性配对)设G1是阶为q的循环加法群,G2是阶为q的循环乘法群,q是一个大素数,双线性配对是一个映射e:G1×G1→G2,满足:
(1)双线性:对任意的P,Q∈G1,对任意a,b∈Zq,有e(aP,bQ)=e(P,Q)ab。
(2)非退化性:存在P,Q∈G1,使得e(P,Q)≠1。
(3)可计算性:对所有P,Q∈G1,则e(P,Q)是实际可计算的。
定义2(GDH群)如果对于一个群G,求解其上的CDH问题是困难的,而其上的DDH 问题是多项式时间可解的,则称群G为GDH群。具体描述如下:
DLP(Discrete Logarithm Problem):已知两个群元素P、Q,找一整数n使得Q=nP立。
DDHP(Decision Diffie-Hellman Problem):对于a,b,c∈RZq*,P∈G1,已知P、aP、bP、cP,判断c=ab mod q是否成立。
CDHP(Computational Diffie-Hellman Problem):对于a,b∈RZq*,P∈G1,已知P、aP、bP,计算abP。
GDHP(Gap Diffie-Hellman Problem):如果在群G1上,DDHP容易但CDHP困难,则G1被称为GDH群。
三、一种基于身份代理认证的数字签名方案
本文构造了一个新的基于身份代理认证的不可否认数字签名方案。该方案是为适应电子商务领域中签名长度短、系统开销小、安全程度高等特点而设计的,方案过程如下:
1.系统初始化
给定安全参数k,PKG选择阶为素数q的群G1、G2,群G1的生成元P,双线性映射
e:G1×G1→G2。定义密码学上安全的hash函数:H:{0,1}*→Zq*,H1:{0,1}*→G1,
H2:G2→{0,1}n,H3:{0,1}n×G2→Zq*。然后,PKG选择主密钥s∈RZq*,计算Ppub=sP,选择安全的对称加密算法(E,D)(对应的明文、密文、密钥长度均为n)。最后,PKG保密s,并公开系统参数:{G1,G2,n,q,e,P,Ppub,H,H1,H2,H3,E,D}。
2.方案的实施过程
为叙述方便,我们假定原签密人为A,代理签密者为T,签密接收人为B。在签名过程中,用户将其身份信息ID提交给PKG,PKG计算公钥QID=H1(ID),签密密钥为SID=S-1QID,解签密密钥为DID=sQID。那么,我们把原签密人为A相应的公钥、签密密钥和解签密密钥分别简记为QA,SA,DA),签密接收人T的各项记为(QT,ST,DT),代理签密者B的相应各项记为(QB,SB,DB)。
(1)原签密人A计算一个签名SW=H(mW)SA,然后将(mW,SW)发给代理签密者T。T计算并验证以下等式是否成立:如果成立,则C计算SAT=SW+H(mW)ST,并将SAT作为有效的代理签密密钥。
(2)对消息m∈{0,1}n签密时,代签人T选择随机数x'∈RZq计算QB=H1(IDB),
则为代签人的代理签密。
(3)收到时,B计算,如果,B接收m,否则拒绝。
借鉴文献的方法,可以证明解密的过程。
四、方案安全性分析
结论1所提方案是一个可公开验证的代理签名方案。
分析:在该方案中,对于消息m,任何第三方可通过(mw,c,r,S)首先恢复出k1′,然后验证
r=H3(c,k1′)是否成立来检验密文的来源和合法性。
结论2所提方案具有不可伪造性。