基于二次剩余构造的盲签名方案
Construction of Blind Signature Scheme Based on Quadratic Residue

作者: 罗 婧 , 范自强 :安徽理工大学数学与大数据学院,安徽 淮南;

关键词: 盲签名二次剩余分解大合数Blind Signature Quadratic Residue Decomposition of Large Composite Numbers

摘要:
盲签名是在1982年基于对保护信息的私密性而提出的签名方案,在密码学中占据着重要的地位。本文以二次剩余和整数分解的困难性为理论基础,提出了一种新的盲签名方案。通过利用Hash函数以及盲因子让待签名信息盲化,使签名者不知所签名的具体信息,从而保护了用户信息。同时,还证明了该签名的盲性以及不可伪造性。

Abstract: Blind signature was proposed based on the privacy of protected information in 1982. It plays an important role in cryptography. Based on the difficulty of quadratic residue and integer decompo-sition, a new blind signature scheme is proposed in this paper. By using Hash function and blind factor to blind signature information, it makes the content of the information has not been seen by the signer, thus protecting the user’s information. Meanwhile, it is proved that the signature is blind and cannot be forged.

1. 引言

随着计算机科学技术的发展,电子商务、电子金融等系统得到了广泛的应用,数字签名的问题就显得更加突出、更加重要。1982年Chuam [1] 为实现不可跟踪的支付系统,也就是电子现金,首次提出了盲签名的概念。盲签名与普通签名相比有两个显著特点:第一,签名者不知道所签署的数据内容。第二,在签名被接收者泄漏后,签名者不能追踪签名内容 [2]。为了满足这样的条件,用户首先将待签名的数据进行盲变换,然后把变换后的盲数据发送给签名者,经过签名者签名后再发给用户。用户对签名进行去盲变换,得到的是签名者对原数据的盲签名。

盲签名可以有效地保护用户的隐私,因而被广泛的应用于需要保护个人隐私的地方。文献 [3] 提出了一个基于二次剩余的盲签名方案,但是没有给出它的不可伪造性。文献 [4] 提出了一种基于RSA体制的盲签名,但是计算效率较低。2011年,文献 [5] 提出一种基于Schnorr盲签名的向前安全盲签名方案。之后,文献 [6] 指出文献 [5] 不满足可验证性和不可伪造性,并对其进行改进。本文基于二次剩余提出了一个新的盲签名方案,并且对该方案进行分析,证明了它满足盲性和不可伪造性。

2. 基本定义与相关定理

二次同余式求解问题可以归结到讨论形如 x 2 a ( mod m ) 的同余式,在密码学中应用很广泛,它是本文所构造的概率密码体制的数学理论基础之一。

设n是正整数集, Z n = { x | 0 x < n , n N } Z n = { x | x Z n , ( x , n ) = 1 }

定义2.1 [7] :若 a Z n ,且存在x满足二次同余式 x 2 a mod n ,则称a为模n的二次同余,称x为模n下a的平方根,模n的所有二次同余的集合记为 Q n ;若 a Z n a Q n ,称a为模n非二次同余 Q ¯ n

定义2.2:若 n = p q ,其中p和q为两个互不相同的素数,并且满足 p q 3 mod 4 ,则称n为Blum数。

定理2.1 [7] : (欧拉定理)若 ( a , n ) = 1 ,则 a ϕ ( n ) 1 mod n

定理2.2 [7] :(欧拉判别条件)若 ( a , p ) = 1 ,则a是模p的平方剩余的充分必要条件是 a p 1 2 1 ( mod p ) ;而a是模p的平方非剩余的充分必要条件是 a p 1 2 1 ( mod p )

定理2.3 [8] :设p和q为两个互不相同的素数, n = p q ,则对任一整数 a Z n ,有 a Q n ,等价于 a Q p a Q q

定理2.4 [8] :p为素数且 p 3 mod 4 a Q P ( Q p 为模p的所有二次同余的集合),则 x 2 a mod p 在模p下有且仅有两个平方根,分别为 x ± a p + 1 4 mod p

引理1 [8] :设 N = p q 为Blum数, a Q n ,则 a ϕ ( n ) 4 1 mod N

定理2.5 [8] :设 N = p q 为Blum数, a Q n ,则对于 x 2 a mod N 有:

1) 在模N下有4个平方根。

2) 这4个平方根有且仅有一个属于 Q n ,且 x a ϕ ( N ) + 4 8 mod N

定理2.6:设 N = p q ,其中p和q为两个互不相同的奇素数,则分解N计算上等价于求模N的平方根。

3. 签名与验证过程

3.1. 参数生成阶段

Step1:签名者找出两个较大的素数p、q(不能公开),使得 p q 3 mod 4 ,同时需要计算Blum数 N = p q ,将N作为验证密钥,将p、q作为签名密钥。

Step2:签名者选择一个结果为平方项的Hash函数:H: ( 0 , 1 ) Z N 。并计算 d = ( N p q + 5 ) / 8 ,公开(N,H),保密(d,p,q)。

Step3:对于明文信息 M = ( a 0 , a 1 , , a n ) ,计算 H ( a i ) , i = 0 , 1 , , n ,再选择一个盲因子 k Z n ,计算 M k 2 H ( a i ) mod N ,得到 M = ( a 0 , a 1 , , a n )

3.2. 签名过程

Step1:用户选取随机数b, b Z x 0 b 2 mod N ,并把 x 0 以及待签名信息 M = ( a 0 , a 1 , , a n ) 发送给签名者。

Step2:签名者收到用户所发送的信息后,根据d分别做如下计算:

x 1 x 0 d mod N x 2 x 1 d mod N x n + 1 x n + 2 d mod N

得到序列 A = ( x 1 , x 2 , , x n + 1 )

Step3:根据待签名信息 M = ( a 0 , a 1 , , a n ) ,签名者分别计算: y 0 = a 0 × x , 1 y 1 = a 1 × x 2 , , y n = a n × x n + 1 ,得到序列

Step4:签名者得到 S i g n ( M ) Y d mod N ,并将 ( S i g n ( M ) , x n + 1 ) 发送给用户,用户收到 ( S i g n ( M ) , x n + 1 ) 后,计算 s s i g n ( M ) / k ( mod N ) ,对M的签名是 ( s , M , x n + 1 )

3.3. 签名验证过程

验证者验证的具体步骤如下:

Step 1:根据 x n + 1 ,分别计算:

x n + 1 2 x n mod N x n 2 x n 1 mod N x 2 2 x 1 mod N

得到序列 A = ( x 1 , x 2 , , x n + 1 ) ,并计算 T H ( a i ) x i + 1 2 mod N

Step 2:验证 s 2 T mod N 是否成立,如果成立则签名有效;否则签名无效。

4. 签名方案的分析

4.1. 有效性分析

Y = ( y 0 , y 1 , , y n ) y i = a i x i + 1 2 = k 2 H ( a i ) x i + 1 2 。又因为 T = H ( a i ) x i + 1 2

S i g n ( M ) = Y d mod N s = s i g n ( M ) / k ( mod N ) 。验证 s 2 T mod N ,即 S i g n ( M ) 2 k 2 H ( a i ) x i + 1 2 mod N S i g n ( M ) 2 k 2 H ( a i ) x i + 1 2 mod N Y mod N ,说明签名 是一个有效签名。

4.2. 盲性

盲性是盲签名的主要安全需要,它可以确保被签名消息的安全性。要证明我们的方案是盲的,只要证明方案中存在随机值,可以在签名过程中有效地保护原信息,使得签名者对所签消息一无所知。由于签名者只知道,而 M = ( a 0 , a 1 , , a n ) 是用户经过盲因子盲化之后以及Hash函数计算之后所得的数据,签名者不能从盲化后的消息 M = ( a 0 , a 1 , , a n ) 中推出原消息的Hash值 H ( M ) ,更不能推出原消息M。所以,这个签名方案是满足盲性的。

4.3. 不可伪造性

攻击者想要通过公开的验证密钥N求出保密的签名密钥p,q是不可行的,因为这是基于大合数分解的困难问题。因此,该方案是可以抵御一般性的伪造攻击。如果攻击者想要伪造签名者对盲化后的 M = ( a 0 , a 1 , , a n ) 进行签名,需要先破获 x 0 。其次,攻击者需要求出d,而这是不可行的,因为 d = ( N p q + 5 ) / 8 ,想要求出d,必须要先求出p,q,这仍然是基于大合数分解的困难问题。所以,我们的盲签名方案满足不可伪造性。

4.4. 性能分析

本方案与文献 [3] 的方案同为利用二次剩余进行盲签名,但在签名方式上各不相同,故签名运算所用时间有所差异。在模运算中,模幂、模逆与模乘运算占用了大部分时间,在签名阶段本方案的运算效率高于文献 [3]。而在参数生成阶段时,文献 [3] 需要多次计算Jacobi符号也会花费时间。可以看出就整个签名方案而言,本方案的计算效率更高。

5. 结束语

盲签名因为具有盲性,它使得盲签名能有效地保护用户的隐私,所以在电子商务和电子选举等领域有着广泛的应用 [9]。本文提出一个基于二次剩余的盲签名方案,并证明了这个盲签名方案满足盲性和不可伪造性这两个基本安全需求。

文章引用: 罗 婧 , 范自强 (2019) 基于二次剩余构造的盲签名方案。 理论数学, 9, 596-600. doi: 10.12677/PM.2019.95079

参考文献

[1] Chaum, D. (1983) Blind Signatures for Untraceable Payments. In: Proceedings of CRYPTO, Plenum Press, New York, 199-203.
https://doi.org/10.1007/978-1-4757-0602-4_18

[2] Mao, W. 现代密码学理论与实践[M]. 北京: 电子工业出版社, 2004: 135-153.

[3] Fan, C.I. and Lei, C.L. (1996) Low-Computation Blind Signature Schemes Based on Quadratic Residues. Electronics Letters, 32, 1569-1570.
https://doi.org/10.1049/el:19961084

[4] Cao, Z.F., Zhu, H. and Lu, R. (2006) Provably Secure Robust Threshold Partial Blind Signature. Science in China, 49, 604-615.
https://doi.org/10.1007/s11432-006-2013-7

[5] 张席, 杭欢花. 一种改进的前向安全盲签名方案[J]. 武汉大学学报: 理学版, 2011, 57(5): 434-438.

[6] 何俊杰, 王娟, 祁传达. 一个改进的前向安全盲签名方案[J]. 计算机工程, 2012, 38(11): 133-135.

[7] 闵嗣鹤, 严士健. 初等数论[M]. 北京: 高等教育出版社, 2003: 88-91.

[8] 王小非, 崔国华, 李俊, 等. 一个数据膨胀率为1的概率公钥密码系统[J]. 计算机科学, 2007, 34(1): 117-119.

[9] 孙芳, 张雪峰, 袁小转. 一个前向安全盲签名方案的分析与改进[J]. 信阳师范学院学报(自然科学版), 2014(3): 444-446.

分享
Top