—130— 一种高效的代理多重盲签名方案胡振鹏,钱海峰,李志斌(华东师范大学计算机科学技术系,上海 200062)摘 要:代理多重签名和盲签名在电子商务和电子现金系统中有着广泛的应用。
结合这两种方案的特点,基于Schnorr 签名和Chaum 盲签名体制,该文提出一种高效的代理多重盲签名方案。
该方案具有计算量小、效率高和安全性强等优点,且签名长度不随原始签名人的增加而增长,并能广泛应用于电子货币和电子投票等领域。
关键词:代理签名;盲签名;代理盲签名;代理多重盲签名Efficient Proxy Blind Multi-signature SchemeHU Zhen-peng, QIAN Hai-feng, LI Zhi-bin(Department of Computer Science and Technology, East China Normal University, Shanghai 200062)【Abstract 】Digital proxy multi-signature scheme and blind signature are very suitable for electronic commerce and payment. Based on the Schnorr signature and Chaum blind signature scheme, this paper presents an efficient proxy blind multi-signature scheme, which satisfies the security properties of both the blind signature scheme and the proxy multi-signature scheme. This scheme has advantages such as the low computation load,high efficiency and security, and the length of signature does not increase when the new original signers join in. It is very important in an electronic cash and electronic vote system.【Key words 】proxy signature; blind signature; proxy blind signature; proxy blind multi-signature计 算 机 工 程Computer Engineering 第34卷 第13期Vol.34 No.13 2008年7月July 2008·安全技术·文章编号:1000—3428(2008)13—0130—03文献标识码:A中图分类号:TP309.71 概述1983年,文献[1]提出了第一个盲签名方案,盲签名是一种特殊的数字签名技术,除了满足一般数字签名的基本特征外,盲签名还必须满足:(1)盲性签名者不知道所签文件或消息的具体内容。
(2)不可追踪性在签名被文件或消息的拥有者公布后,签名者不能追踪签名。
1996年,文献[2]提出了代理签名的概念。
代理签名人代表原始签名人对消息进行代理签名。
代理签名的基本方法是原始签名人对委托信息(一般是代理签名人的身份信息或其他有效的委托信息)生成一个签名,并将其秘密地交给代理签名人,代理签名人直接使用该签名作为代理私钥,或者用该签名生成一个代理私钥进行代理签名。
这样,代理签名人就可以应用代理密钥通过选定的代理签名方案对消息生成代理签名。
代理签名至少需要满足以下性质: (1)不可伪造性除了原始签名人和代理签名人之外,任何其他没有被指定为代理签名人的人都无法伪造一个代表原始签名人的代理签名。
(2)可验证性任何验证签名的人都可以验证代理签名是否有效,并且根据有效的代理签名确认原始签名人承认被签名的文件。
代理多重签名[3]指在代理签名方案中,一个代理签名人可以代表多个原始签名人的利益在一个文件上签字。
文献[4]将代理签名和盲签名结合,提出了代理盲签名方案,文献[5]还给出了代理盲签名方案在电子货币中的应用,并介绍了利用代理盲签名方案实现电子货币的生成、发行和验证。
可是在很多应用中,需要一个代理签名人能够代表多个原始签名人进行代理盲签名,例如多家上市公司委托证券交易所发行一种股票,多家银行委托货币发行部门发行一种货币等。
针对此类情况,文献[6]提出了一个代理多重盲签名方案(Lu 方案)。
Lu 方案在随机预言模型下证明是安全的,但在Lu 方案中,传递代理信息时,原始签名人需要对其加密;同时,代理签名人在验证代理信息时要进行解密,因此,Lu 方案的计算量大,且最后的签名长度会随原始签名人的增加而增长。
考虑到网络中的广泛应用,本文在Schnorr 签名方案[7]和Chaum 盲签名[1]的基础上,提出了一种高效的代理多重盲签名方案,该方案具有签名长度短、计算量小、效率高和安全性强等优点。
2 代理多重盲签名方案方案参加者包括:原始签名人A 1,A 2,…,A n ,代理签名人作者简介:胡振鹏(1984-),男,硕士研究生,主研方向:信息安全;钱海峰,副教授;李志斌,教授、博士生导师 收稿日期:2007-09-23 E-mail :lizb@—131—B ,签名的接收者R 。
2.1 初始化阶段认证中心(CA)选择大素数p 和q (满足安全要求),其中q 为p -1的大素数因子,然后选择*p g Z ∈,满足1(mod )q g p ≡。
这里,p , q , g 是公开参数。
()H ⋅为安全的哈希函数。
A 1,A 2,…,A n 的密钥对分别为:111(,mod )A X A A X Y g p = 222(,mod )A X A A X Y g p =…(,mod )An X An An X Y g p =其中,*Ai q X Z ∈为私钥,Y Ai 为公钥(1≤i ≤n )。
B 随机选取2个大素数p 0和q 0(满足安全要求),计算 000n p q =×000()(1)(1)n p q φ=−×−B 选取一个大整数e ,使得0(,())1e n φ=,B 用扩展Euclidean 算法计算d ,使得01mod ()ed n φ=,即01mod ()d e n φ−=0(,)e n 是B 的公钥,d 为B 的私钥,2个大素数0p 和0q 由B 秘密保存。
本方案由CA 发布使用的公钥都经过CA 的验证。
CA 发行公钥证书时,必须核实请求证书主体的有效性。
当然这类的核实应该包括一些物理(非密码的)识别方法,与通常商务业务一样(如在银行开账号)。
主体也应该证明他知道要签发的公钥对应的私钥。
这种证明可以以用户生成对一条询问消息签名的形式来证明,其签名可以用公钥来验证,或者以用户和CA 之间进行零知识证明的形式[8]。
2.2 代理授权阶段A 1,A 2,…,A n 和B 协商生成代理授权书m w , m w 主要包括A 1,A 2,…,A n 、B 的标志、B 的代理期限、代理签名文件的范围等信息。
2.2.1 代理信息生成和发送A 1,A 2,…,A n 中有一个为签名收集者,A 1,A 2,…,A n 中任何一个都可以作为签名收集者,不妨设A j (1≤j ≤n )为签名收集者。
(1)对于A 1,A 2,…,A n 中每一个A i (1≤i ≤n )随机选择*Ai R q k Z ∈,并计算mod Ai k Ai r g p = (1)i A 将r Ai 广播给A 1,A 2,…,A n 中每个人。
(2)对于每个A i (1≤i ≤n )收到r Ai (1≤i ≤n )后计算1mod nA Ai i r r p ==∏ (2)(,)mod w A h H m r q = (3)mod Ai Ai Ai S X h k q =+ (4)A i 将S Ai 广播。
(3)签名收集者A j 收到r Ai ,S Ai ,对每一对(r Ai ,S Ai )(1≤i ≤n )验证下面等式:mod AiS hAi Ai gr Y p = (5)如果式(5)成立,(r Ai , m w , S Ai )就是一个有效的子代理密钥,否则他拒绝接收这个密钥,而请求A i 重新发送一个有效的子代理密钥,或者终止协议。
A j 确认所有(r Ai , m w , S Ai )(1≤i ≤n )都是有效的,A j 计算:1mod nA Ai i S S q ==∑ (6)并向B 发送代理消息(m w , h , S A ),不需要通过安全信道,因为m w 中已明确指明B 的标志,其他任何人获得代理信息(m w , h , S A )都是没有意义的,且S Ai 是原始签名人A i 对m w 的签名,任何人都不能伪造,否则,不能通过验证式(5)。
2.2.2 代理信息确认和生成代理密钥B 收到代理信息(m w , h , S A )后计算1()mod A nS h A Ai i r g Y p −==∏ (7)验证等式(,)mod w A h H m r q = (8)是否成立,如果式(8)成立,则B 认为(m w , h , S A )是有效的代理信息,并接受原始签名人A 1,A 2,…,A n 的委托,接着将自己的私钥d 作为代理私钥,e 为对应的代理公钥。
2.3 签名生成阶段(1)签名请求者R 向代理签名者B 发出签名请求,B 将(m w , h , S A )发给R 。
(2)R 随机选择0R n r Z ∈,计算0(,)mod e w H m m r n λ=,再把λ发给B 。
(3)B 收到λ,对λ进行签名:计算0'mod d S n λ=,把'S 发给R 。
(4)R 接收到'S ,除盲:计算0'1mod S S r n −=。
(m , (m w , h , S A ),S )就是对文件m 的代理多重盲签名。
2.4 签名验证阶段签名验证者收到签名(m , (m w , h , S A ),S )后,验证文件m 是否满足代理授权书m w 的约定,若满足,利用式(7)计算r A ,验证等式:(,)mod w A h H m r q = 是否成立,如果成立,则签名验证者承认B 的代理权是有效的,接着验证等式:0(,)mod e w H m m S n = (9)如果式(9)成立,则代理多重盲签名(m , (m w , h , S A ),S )是有效的,否则,签名无效。