基于椭圆曲线的保护签名者隐私的代理签名方案
2010-11-26王洪林
田 珂,王洪林
(1.河南工程学院 教务处,河南 郑州 451191;2.平顶山燃气有限责任公司,河南 平顶山467000)
不论是手写签名、印鉴还是数字签名,它们都代表了签名人的一种权力,这种权力可以称之为签名人的签名权力[1](Power of Signing).在现实生活中,人们常常将自己的签名(印鉴)权力委托给可信的代理人,让代理人代表他们在文件上签名(盖章).例如,一个公司的经理在外出度假期间,需要让他的秘书代替他处理公司的业务,包括以公司的名义在一些文件上签名.为此,这个经理可以将公司的公章交给秘书,让秘书能够代表公司在文件上盖章.可以看出,这种委托签名权力的方法有其特点,即公司的客户不因签名人的变更而受到影响,他们收到的印鉴都是相同的.
在使用数字签名的过程中,人们经常会遇到需要将签名权力委托给他人的情况.针对数字签名权力的委托和代理问题,Mambo等人于1996年提出了一种特殊的数字签名体制——代理签名体制[2-4](Proxy Signature Schemes).
任何一个代理签名体制都可以由以下几个部分组成[3,5,6]:
(1)初始化过程.选定签名体制的参数、用户的密钥等.
(2)数字签名权力的委托过程.原始签名人将自己的数字签名权力委托给代理签名人.
(3)代理签名的生成过程.代理签名人代表原始签名人生成数字签名.
(4)代理签名的验证过程.验证人验证代理签名的有效性.
1 代理签名方案初始化
在本方案中,用A代表原始签名人,CA代表密钥管理中心,B为代理签名人,C代表签名的验证者.
选择E为定义在域Fp上的一条椭圆曲线,P∈E,P是E上阶为n的点,这里F的特征可为2或其他素数.#E表示E中元素个数,n为#E的一个大素数因子.选择一安全单向函数h(·).mW为记载代理签名人ID的授权证书.
(1) 原始签名人A选择随机数kA作为自己的私钥,其中0 (2) 原始签名人A计算PA=kAP作为自己的公钥,公开(E,n,P,PA). (3)CA选择随机数kCA作为自己的私钥,其中0 (4)CA计算PCA=kCAP作为自己的公钥. 在本阶段,原始签名人A将委托信息发送给密钥管理中心CA.具体过程如下: (1)原始签名人A选择随机数k0, 0 (2)原始签名人A计算: Q0=k0P=(x0,y0), QCA=k0PCA=(xCA,yCA), 将(σ′,Q0)公开地发送给CA. (3)CA解密σ′,计算: kCA·Q0=(xCA,yCA), (4)CA验证是否有: σP=PA+r0Q0, 若验证成立,接收σ为A的委托信息.否则,拒绝接收. (5)CA生成代理签名密钥: σCA=σ+kCAmodn. 验证等式的正确性可由下式推得: σP=(kA+r0k0)P=kAP+r0k0P=PA+r0Q0. 为了保护代理签名人的隐私,代理签名人用别名作为自己的身份信息来签名,这样就保护了自己的真实身份信息.当待签名文件送来时,若代理签名人审核同意,则先在此阶段实行匿名隐藏.具体过程如下: (1)代理签名人B选择随机数ki, 0 (2)代理签名人B计算: (3)CA计算: (4)CA选择随机数ki′, 0 其中,c(PB)为代理签名人的身份信息. (5)CA将(hB,Qi′,Si′,c(PB))发送给代理签名人B. (6)代理签名人B验证等式 ver(c(PB))=true, 若验证成功,则B接收hB作为自己的秘密身份,CA记录(hB,IDB)信息对;否则,拒绝接收.验证等式的正确性可由下式推得: PCA·h(hB,ri′)+ri′·Qi′. (7)代理签名人B以秘密身份选择随机数khB作为自己的私钥,其中0 PhB=khB·P. 在此阶段,密钥管理中心CA将代理签名密钥发送给代理签名人B,具体过程如下: (1)CA选择随机数k0′, 0 (2)CA计算: 将(σhB′,Q0′,Q0)公开发送给代理签名人B. (3)B解密σhB′,计算: khB·Q0′=(xhB′,yhB′), 对于任何消息m, 0 (1)B选择随机数k, 0 碱破坏试验:加入1 mL 2 mol/L的氢氧化钠溶液,放置5 h,加2 mol/L的盐酸溶液调pH至中性,作为碱破坏试验样品。 (2)B计算kP=(x,y), 其中x,y∈F; 并计算e=h(m). (3)B计算: r≡xmodn, 则(m,r,s,Q0,Q0′)一起构成了代理签名. 任何一个验证人C在收到(m,r,s,Q0,Q0′)后,进行如下计算: 计算x′ modn,如果x′ modn=r,则得到验证. 本文提出的基于椭圆曲线的代理签名方案的安全性是基于椭圆曲线离散对数问题难解性的.安全性分析如下: (1) 满足可验证性.验证过程如下: s-1(h(m)+rT)P=kP=(x,y). 定理1 在本章所提出的代理签名方案中,任何人都无法在代理授权阶段获取原始签名人的私钥. 证明原始签名人A给予CA的委托信息是(σ′,Q0),其中: Q0=k0P,σ′=σ·xCA=(kA+r0k0)xCA. 由Q0可以得到r0.然而,从Q0=k0P中计算出k0是一个典型的椭圆曲线离散对数问题.同样,即使是CA也无法得到k0.已经假定椭圆曲线离散对数问题是难解的,则其他人从Q0=k0P中计算出k0是不可能的.所以,其他人不可能通过这种方式获得原始签名人的私钥.另外,因为kA,r0k0都是随机数,所以σ也是随机的.由SHANNON的信息理论可知,在未知关于r0k0的任何信息的情况下,从σ′中也不能得到任何关于kA的信息. 同理,在信息委托阶段也无法获得CA的私钥信息. (3)CA无法利用原始签名人A给的委托信息产生新的委托信息. 定理2 在本章所提出的代理签名方案中,CA无法利用原始签名人A给的委托信息产生新的委托信息. 证明: 我们先约定一个符号,设Q=(x′,y)∈E为E中的任一点,r≡x′ modn,本文约定用f表示由Q计算r的函数,亦即,记r=f(Q).这里f事实上是一个泛函数,其定义域为集合E,值域是小于n的非负整数,这样约定后,σ可表示为σ≡(kA+f(Q0)k0) modn.同样,σP=PA+f(Q0)Q0.CA为了利用原始签名人A所给的委托信息产生新的假委托信息,它随意选取一个整数k1后,再计算Q1=k1P以及Q′=Q0+Q1和σ1=(σ+f(Q1)k1) modn.但是容易看出这样得到的σ1和σ′是不符合等式σP=PA+f(Q0)Q0的.因为这时等式的左边为: σ1P=(σ+f(Q1)k1)P=PA+f(Q0)Q0+f(Q1)Q1, 等式的右边为: PA+f(Q′)Q′=PA+f(Q0+Q1)(Q0+Q1). 由于P(Q0+Q1)(Q0+Q1)≠f(Q0)Q0+f(Q1)Q1,所以委托信息σ1和Q′不满足需求,欺骗行为不能得逞.同理,代理签名人B也无法利用CA给的委托代理签名密钥产生新的代理签名密钥. (4)A赋予代理签名人的签名权利,他可以通过宣布Q0无效来撤销此代理的签名权利.因此,方案满足不可伪造性,密钥依赖性及可撤销性. (5)代理签名的不可伪造性.因为kCA是CA自己秘密随机选取的,而k和khB是代理签名人B秘密随机选取的.因此,任何人都不能伪造B的有效代理签名. (6)满足代理签名的可追踪性.在代理签名人B接收秘密身份信息后,同时CA还会记录身份信息IDB和秘密身份的信息对,这样在签名生成后,原始签名人可以通过查询CA来确定代理签名人的身份. (7)满足代理签名的可区分性.由于在验证原始签名人和代理签名人的签名时所用到的公钥不同,所以可区分代理签名和正常的原始签名人的签名. 本文提出了一种新的基于椭圆曲线密码体制的代理签名方案,该方案解决了代理签名人的匿名隐藏问题,保护了代理签名人的隐私,加强了委托信息传递的安全性.通过密钥管理中心的合理使用,保证了签名过程无需原始签名人的参与. 参考文献: [1] MITCHELL C J, PIPER F, WILD P. Digital Signatures[C]. In Contemporary Cryptology, The Science of Information Integrity, IEEE Press,1992.325-378. [2] SCHNORR C P. Efficient signature generation by smart cards [J].Journal of Cryptology, 1991,(4):161-174. [3] MAMBO M,USUDA K,OKAMOTO E. Proxy signatures for delegation signing operation[A].Pros 3td ACM Conference on Computer and Communications Security[C].ACM Press,1996.48-57. [4] MAMBO M,USUDA K,OKAMTOTO E. Proxy signatures: delegation of the power to sign messages[J].IEICE Trans Fundam,1996,(90): 1 338-1 354. [5] 徐茂智,游 林.信息安全与密码学[M].北京:清华大学出版社,2007.1-2. [6] 李继国,曹珍富,李建中.代理签名的现状与进展[J].通信学报,2003,24(10):114-123.2 代理授权阶段
3 匿名隐藏阶段
Si′P=PCA·h(hB,ri′)+ri′·Qi′.4 委托过程
σhB=σhB′·(xhB′)-1.5 代理签名产生阶段
T=σhB+khB·hB,
s=k-1(e+rT) modn.6 代理签名的验证过程
7 方案安全性分析
8 结 语