b. 华东交通大学 系统工程与密码学研究所, 南昌 330013
b. Research Institute of System Engineering and Cryptography, East China Jiaotong University, Nanchang 330013, China
1983年, CHAUM D用盲签名方案来构建电子现金系统[1], 在这种机制中, 签名者并不知道他所签发文件的具体内容, 也无法将签名过程和最终的签名相对应。盲签名作为一种特殊的数字签名, 其因具有盲性的特点, 可保障签署信息的匿名性, 被广泛应用于电子现金、电子投票、电子票据保护等方面[2-3]。随着微电子技术和无线网络的发展, 上述应用场景中会配置许多超低功耗的微型无线设备, 由于此类设备普遍存在计算能力弱、传输能力受限和传输不稳定等缺点, 因此适合使用短签名方案。自从短签名方案[4]被提出以来, 目前多数相关研究与分析[5-7]都是围绕文献[4]基础方案展开, 或根据具体应用场景在其基础上构造特定方案[8-9]。此外, 文献[10]提出一种可恢复消息的盲签名方案, 其中原消息无需随签名发送, 可有效缩短签名长度。
相对于普通盲签名方案, 短盲签名的构造比较困难, 难点在于为保证签名的长度较短不能增加额外的辅助验证信息。本文针对使用低功耗无线设备进行数据签名和交互传输的移动环境, 通过简化盲化和签名过程, 提出一种可证安全的短盲签名方案。
1 基础知识定义1 双线性对
在双线性映射中, 令k为一个安全参数, q为一个k bit素数, G1是由P生成的阶为素数q的循环加法群, Q∈G1, G2是有相同阶q的循环乘法群, 则双线性映射e:G1×G1→G2满足以下性质:
1) 双线性性:对于任意a, b∈
2) 非退化性:e(P, Q)≠1。
3) 易计算性:存在有效算法计算e(P, Q)。
定义2 计算性Diffie-Hellman(Computational Diffie-Hellman, CDH)问题
已知G1为由g生成的q阶循环加法群, 未知随机数a, b∈
定义3 安全模型
如果不存在概率多项式时间算法(敌手A)以一个不可忽略的优势在图 1所示的游戏中获胜, 则称盲签名在适应性选择消息和身份攻击下是存在性不可伪造的。
![]() |
Download:
|
图 1 安全游戏 |
本文提出的短盲签名方案具体描述如下:
1) 系统参数建立。给定安全参数k, 选择2个阶都为素数的群G1和G2(其中G1的生成元为g)、双线性映射e:G1×G1→G2, 以及安全的抗碰撞哈希函数H:{0, 1}*→G1, 公布系统参数{k, G1, G2, g, H}。
2) 用户私钥生成。系统密钥管理中心为每个用户秘密选择随机数x∈
3) 消息盲化。B计算h=H(IDA, yA, m), 随机选择2个秘密值u, v∈
4) 签名。A计算S1=xAλ, 将S1发送给B。
5) 脱盲。B计算S2=S1-vyA, S=u-1S2, 则S为最终A对消息m的签名。
6) 验证。任何第三方对消息签名对(m, S), 计算h=H(IDA, yA, m), 验证等式e(S, g)=e(h, yA), 等式成立则接受签名, 否则拒绝签名。正确性验证过程如下:
$ \begin{aligned} e(S, g)=& e\left(u^{-1} S_{2}, g\right)=e\left(u^{-1}\left(S_{1}-v y_{\mathrm{A}}\right), g\right)=\\ & e\left(u^{-1}\left(x_{\mathrm{A}} \lambda-v y_{\mathrm{A}}\right), g\right)=\\ & e\left(u^{-1}\left(x_{\mathrm{A}}(u h+V)-v y_{\mathrm{A}}\right), g\right)=\\ & e\left(u^{-1}\left(x_{\mathrm{A}}(u h+V)-v x_{\mathrm{A}}\right) g, g\right)=\\ & e\left(u^{-1}\left(x_{\mathrm{A}} u h\right) g\right)=e\left(x_{\mathrm{A}} h, g\right)=e\left(h, x_{\mathrm{A}} g\right)=e\left(h, y_{\mathrm{A}}\right) \end{aligned} $ |
定理1 本文方案满足盲性[1]。
证明 对于任意给定的有效签名(m, S)和签名阶段中产生的中间值(λ, V, h, S1, S2), 总存在唯一的一对盲化因子u, v∈
给定签名(m, S)和中间值(λ, V, h, S1, S2), u、v满足:
$ {\lambda = uh + V} $ | (1) |
$ {S = {u^{ - 1}}{S_2}, {S_2} = {S_1} - v{y_{\rm{A}}}, {S_1} = {x_{\rm{A}}}\lambda } $ | (2) |
$ {V = vg} $ | (3) |
由式(3)可知v=loggV∈
以下证明u、v满足式(2)中所有等式。由双线性对的不可退化性可知S2=S1-vyA⇔e(S2, yA)=e(S1-vyA, yA), 因此, 只需证明u、v满足等式e(S2, yA)=e(S1-vyA, yA)。
因为(m, S)是有效签名, 所以有:
$ e(S, g) = e\left( {h, {y_{\rm{A}}}} \right) = e\left( {{u^{ - 1}}{S_2}, g} \right) $ | (4) |
$ e\left( {{x_{\rm{A}}}\mu h, g} \right) = e\left( {{S_2}, g} \right) $ | (5) |
$ \begin{array}{l} e\left( {{S_1} - v{y_{\rm{A}}}, {y_{\rm{A}}}} \right) =& e\left( {{x_{\rm{A}}}\lambda - v{x_{\rm{A}}}g, {y_{\rm{A}}}} \right) = \\ &e\left( {{x_{\rm{A}}}(\mu h + vg) - v{x_{\rm{A}}}g, {y_{\rm{A}}}} \right){\rm{ = }}\\ &e\left( {{x_{\rm{A}}}uh, {y_{\rm{A}}}} \right) = e\left( {{S_2}, {y_{\rm{A}}}} \right) \end{array} $ | (6) |
通过攻击者Alice和用户Bob间的挑战游戏证明消息的不可区分性。游戏过程如下:
S0:运行系统参数建立和密钥生成算法, 发送相应参数给攻击者Alice和用户Bob, Alice掌握签名私钥。
S1:Alice随机选择等长的消息m0和m1发给Bob。
S2:Bob随机选择一个比特值c∈{0, 1}, 运行盲化算法生成盲化消息hc=H(IDA, yA, mc)和h1-c=H(IDA, yA, m1-c), 随机选择2组秘密值uc, vc∈
S3:Alice分别计算S1, c=xAλc和S1, 1-c=xAλ1-c, 将S1, c和S1, 1-c先后发送给Bob。
S4:Bob利用(uc, vc)、(u1-c, v1-c)和脱盲算法得到2组最终的消息签名对(mc, Sc)和(m1-c, S1-c), 并先后发送给Alice。
S5:Alice输出一个对比特值c的猜测值c′∈{0, 1}。
下面分析Alice正确猜对c的概率。因为盲化因子(uc, vc)、(u1-c, v1-c)是在
综上所述, 盲化因子u、v在签名过程中是随机选取的, 由于求解u、v都面临椭圆曲线上离散对数问题, 因此本文签名方案满足盲性。
3.2 随机预言机模型下的安全性证明定理2 本文方案在随机预言机模型和CDH困难问题假设下, 可以抵抗适应性选择消息攻击下的存在性伪造攻击。
引理1 假定存在一个适应性选择消息和身份的攻击算法
证明 假定给C一个CDH困难问题的实例为:给定ag∈G1和bg∈G1, 要输出CDH问题的一个解abg。
C的目标是通过调用算法
设定挑战身份ID的公钥为y=ag, 挑战消息为m*, C在系统初始化后公布系统参数{k, G1, G2, g, H}, 将系统参数和y发送给
1) H询问:C维护一个由数组(mi, di, hi)组成的列表, 当
(1) 如果m≠m*, 则随机选择一个d∈
(2) 如果m=m*, 则C将bg作为H(ID, y, m)的值返回给
2) 签名询问:当
(1) 当m=m*时, C返回“⊥”, 记此事件为E1。
(2) 当m≠m*时, C从L中恢复数组列表(m, d, h), 随机选择u, v∈
经过适应性询问后,
由此, C成功地计算出S*=abg, 并输出S*作为CDH问题的一个实例的解答。以下分析C成功解决困难问题的时间和优势:
1) 对于H的询问的答案是均匀且独立分布在
2) 只有当事件E1、E2不发生时, 最终的伪造签名才是有效的。
3) 如果事件E1、E2都不发生, 则C能解决CDH问题的一个实例。在签名询问阶段, 若m=m*, 即E1事件发生, 因为H询问共有qH次, 所以问到目标挑战消息m*的概率为
当
将本文方案与相关典型的签名方案进行效率对比[11], 如表 1所示, 其中, M表示G1中的标量乘, P表示双线性对运算, E表示G2中的幂乘运算, I表示
![]() |
下载CSV 表 1 方案效率比较 |
由表 1可以看出:在签名和验证签名的总效率方面, 本文方案与BLS短签名方案[4]基本相同, 与其他方案相比效率较高; 在签名长度方面, 选择阶为160 bit的椭圆曲线上的群和双线性对映射[16], 本文方案的签名长度为160 bit, 与BLS短签名方案[4]基本相同, 与文献[4, 15]方案的签名长度相同, 而与文献[10, 12-14]签名方案相比长度较短。
4.2 关键代码实现本文以斯坦福大学研究人员开发的一个开源C语言库(Pairing-based Cryptography library, PBC)为基础, 在操作系统为64位Windows 7, CPU为Intel i7-7700 3.6 GHz, 主板为华硕H270, 内存为金士顿DDR4 2 400 MHz的实验基准测试环境中实现本文方案。
本文方案首先对消息进行哈希处理, 再随机选择2个秘密值u, v∈
//盲化处理
sign_start=clock();
element_t h, u, v, V, r, uh;
charm[50]="SignMessagexpp20180218163438";
element_init_G1(h, pairing);
strcat(m, IDUi);
element_from_hash(h, m, strlen(m));
element_init_Zr(u, pairing);
element_init_Zr(v, pairing);
element_init_G1(V, pairing);
element_init_G1(r, pairing);
element_init_G1(uh, pairing);
printf("签名消息:\n%s\n\n", m);
element_random(u); //选择随机数u
element_random(v); //选择随机数v
element_mul(U, u, g); //计算U=u*g;
element_mul(uh, u, h); //计算uh=u*h;
element_add(r, uh, V); //计算r=u*h+V;
对盲化后的消息进行签名, 生成消息m的签名S的代码。图 2为对消息“SignMessagexpp201802 18163438”签名后的结果。
![]() |
Download:
|
图 2 对消息进行盲签名后的结果 |
对盲化后的签名进行脱盲处理, 具体代码如下所示, 其中S为消息m的签名。
//脱盲处理
element_init_G1(S2, pairing);
element_init_G1(temp, pairing);
element_mul(temp1, v, yA); //temp1=v^yA
element_sub(S2, S1, temp1);//计算S2=S1-v*yA;
element_init_Zr(w, pairing);
element_init_Zr(inv_u, pairing);
element_invert(inv_u, u); //求u的逆
//输出最终签名S
element_init_G1(S, pairing);
element_mul(S, inv_u, S2);//计算S=U^-1*S2;
sign_end=clock(); //结束计时
element_printf("S = %B\n", S);
第三方验证消息签名对(m, S)的代码如下所示, 验证结果如图 3所示。
![]() |
Download:
|
图 3 验证签名后的结果 |
//验证签名
element_t left, right;
verify_start=clock();
element_init_GT(left, pairing); //等式左边
element_init_GT(right, pairing); //等式右边
element_pairing(left, S, g);
element_pairing(right, h, yA);
verify_end=clock(); //运行耗时
double verifyTime=difftime(verify_end, verify_start);
element_printf("e(S, g)=\n%B\n", left);
element_printf("e(h, yA)=\n%B\n\n", right);
//左右比较
if (!element_cmp(left, right))
printf("验证成功!\n\n\n"); //左右相同
printf("待签名消息m:%s \n", m);
printf("消息长度:%d \n", strlen(m));
printf("签名生成耗时:%f ms\n", signTime);
5 结束语本文提出一种短盲签名方案, 并在随机预言机模型和CDH问题假设下, 证明该方案在适应性选择消息上是存在性不可伪造的。与典型盲签名方案相比, 本文方案签名长度短, 签名和盲化过程计算简单, 适合在带宽受限且使用超低功耗设备的环境下进行数据签名、验证以及交互传输。下一步将在文献[17-18]研究基础上, 把短签名方案应用于基于便携式设备的电子票据安全交互协议中, 实现对电子票据的匿名保护。
[1] |
CHAUM D. Blind signatures for untraceable payments[C]//Proceedings of Cryptology'83. Berlin, Germany: Springer, 1983: 199-203.
|
[2] |
SONG Chengyuan, ZHANG Chuanrong, CAO Shuai. Blind signature scheme and its application in electronic voting protocol[J]. Computer Engineering, 2012, 38(6): 139-141, 144. (in Chinese) 宋程远, 张串绒, 曹帅. 一种盲签名方案及其在电子投票协议中的应用[J]. 计算机工程, 2012, 38(6): 139-141, 144. |
[3] |
KUMAR M, KATTI C P, SAXENA P C. An untraceable identity-based blind signature scheme without pairing for e-cash payment system[C]//Proceedings of International Conference on Ubiquitous Communications and Network Computing. Berlin, Germany: Springer, 2017: 67-78.
|
[4] |
BONEH D, LYNN B, SHACHAM H. Short signatures from the Weil pairing[C]//Proceedings of the 7th International Conference on the Theory and Application of Cryptology and Information Security. Berlin, Germany: Springer, 2001: 514-532.
|
[5] |
WEI Chunyan, CAI Xiaoqiu. Efficient certificateless short signature scheme under standard model[J]. Computer Engineering, 2012, 38(13): 119-121. (in Chinese) 魏春艳, 蔡晓秋. 标准模型下的高效无证书短签名方案[J]. 计算机工程, 2012, 38(13): 119-121. |
[6] |
BAO Sigang, GU Haihua. Fault attack on BLS short signature[J]. Computer Engineering, 2014, 40(8): 112-115. (in Chinese) 包斯刚, 顾海华. 针对BLS短签名的故障攻击[J]. 计算机工程, 2014, 40(8): 112-115. DOI:10.3969/j.issn.1000-3428.2014.08.021 |
[7] |
TSAI J L. A new efficient certificateless short signature scheme using bilinear pairings[J]. IEEE Systems Journal, 2015, 11(4): 2395-2402. |
[8] |
KARATI A, BISWAS G P. Cryptanalysis and improvement of a certificateless short signature scheme using bilinear pairing[C]//Proceedings of International Conference on Advances in Information Communication Technology and Computing. New York, USA: ACM Press, 2016.
|
[9] |
LIN Chen, SHEN Zhidong, CHEN Qian, et al. A data integrity verification scheme in mobile cloud computing[J]. Journal of Network and Computer Applications, 2017, 77: 146-151. DOI:10.1016/j.jnca.2016.08.017 |
[10] |
VERMA G K, SINGH B B. Efficient identity-based blind message recovery signature scheme from pairings[J]. IET Information Security, 2017, 12(2): 150-156. |
[11] |
Certicome Corporation. SEC 2: recommended elliptic curve domain parameters[EB/OL].[2018-10-12].https://perso.univ-rennes1.fr/sylvain.duquesne/master/standards/sec2_final.pdf.
|
[12] |
ZHANG Fangguo, KIM K. ID-based blind signature and ring signature from pairings[C]//Proceedings of International Conference on Theory and Application of Cryptology and Information Security. Berlin, Germany: Springer, 2002: 533-547.
|
[13] |
ZHANG Lei, ZHANG Futai. Certificateless signature and blind signature[J]. Journal of Electronics(China), 2008, 25(5): 629-635. |
[14] |
XU Guosheng, XU Guoai. An ID-based blind signature from bilinear pairing with unlinkability[C]//Proceedings of the 3rd International Conference on Consumer Electronics, Communications and Networks. Washington D. C., USA: IEEE Press, 2013: 101-104.
|
[15] |
VERMA G K, SINGH B B. Efficient message recovery proxy blind signature scheme from pairings[J]. Transactions on Emerging Telecommunications Technologies, 2017, 28(9). |
[16] |
BONEH D, FRANKLIN M. Identity-based encryption from the Weil pairing[C]//Proceedings of Cryptology'01.Berlin, Germany: Springer, 2001: 213-229.
|
[17] |
ZUO Liming, CHEN Zuosong, XIA Pingping, et al. Efficient and provably secure short proxy signature scheme[J]. Journal of Computer Applications, 2018, 38(12): 2529-2533. (in Chinese) 左黎明, 陈祚松, 夏萍萍, 等. 一个高效的可证安全短代理签名方案[J]. 计算机应用, 2018, 38(12): 2529-2533. |
[18] |
ZUO Liming, HU Kaiyu, ZHANG Mengli, et al. A short identity-based signature scheme with bilateral security[J]. Netinfo Security, 2018(7): 47-54. (in Chinese) 左黎明, 胡凯雨, 张梦丽, 等. 一种具有双向安全性的基于身份的短签名方案[J]. 信息网络安全, 2018(7): 47-54. DOI:10.3969/j.issn.1671-1122.2018.07.006 |