Processing math: 22%
  • 中国精品科技期刊
  • CCF推荐A类中文期刊
  • 计算领域高质量科技期刊T1类
高级检索

基于SM9数字签名的环签名及其在区块链隐私保护中的应用

安浩杨, 何德彪, 包子健, 彭聪, 罗敏

安浩杨, 何德彪, 包子健, 彭聪, 罗敏. 基于SM9数字签名的环签名及其在区块链隐私保护中的应用[J]. 计算机研究与发展, 2023, 60(11): 2545-2554. DOI: 10.7544/issn1000-1239.202330265
引用本文: 安浩杨, 何德彪, 包子健, 彭聪, 罗敏. 基于SM9数字签名的环签名及其在区块链隐私保护中的应用[J]. 计算机研究与发展, 2023, 60(11): 2545-2554. DOI: 10.7544/issn1000-1239.202330265
An Haoyang, He Debiao, Bao Zijian, Peng Cong, Luo Min. Ring Signature Based on the SM9 Digital Signature And Its Application in Blockchain Privacy Protection[J]. Journal of Computer Research and Development, 2023, 60(11): 2545-2554. DOI: 10.7544/issn1000-1239.202330265
Citation: An Haoyang, He Debiao, Bao Zijian, Peng Cong, Luo Min. Ring Signature Based on the SM9 Digital Signature And Its Application in Blockchain Privacy Protection[J]. Journal of Computer Research and Development, 2023, 60(11): 2545-2554. DOI: 10.7544/issn1000-1239.202330265
安浩杨, 何德彪, 包子健, 彭聪, 罗敏. 基于SM9数字签名的环签名及其在区块链隐私保护中的应用[J]. 计算机研究与发展, 2023, 60(11): 2545-2554. CSTR: 32373.14.issn1000-1239.202330265
引用本文: 安浩杨, 何德彪, 包子健, 彭聪, 罗敏. 基于SM9数字签名的环签名及其在区块链隐私保护中的应用[J]. 计算机研究与发展, 2023, 60(11): 2545-2554. CSTR: 32373.14.issn1000-1239.202330265
An Haoyang, He Debiao, Bao Zijian, Peng Cong, Luo Min. Ring Signature Based on the SM9 Digital Signature And Its Application in Blockchain Privacy Protection[J]. Journal of Computer Research and Development, 2023, 60(11): 2545-2554. CSTR: 32373.14.issn1000-1239.202330265
Citation: An Haoyang, He Debiao, Bao Zijian, Peng Cong, Luo Min. Ring Signature Based on the SM9 Digital Signature And Its Application in Blockchain Privacy Protection[J]. Journal of Computer Research and Development, 2023, 60(11): 2545-2554. CSTR: 32373.14.issn1000-1239.202330265

基于SM9数字签名的环签名及其在区块链隐私保护中的应用

基金项目: 山东省重点研发项目(2021CXGC010107); 国家自然科学基金项目(U21A20466, 62172307, 62202339)
详细信息
    作者简介:

    安浩杨: 1997年生. 博士研究生. 主要研究方向为应用密码学与区块链技术

    何德彪: 1980年生. 博士,教授,博士生导师. 主要研究方向为密码学和信息安全

    包子健: 1994年生. 博士研究生. 主要研究方向为应用密码学与区块链技术

    彭聪: 1989年生. 博士,副研究员. 主要研究方向为密码学和信息安全

    罗敏: 1974年生. 博士,教授. 主要研究方向为密码学和信息安全

    通讯作者:

    何德彪(hedebiao@whu.edu.cn

  • 中图分类号: TP391

Ring Signature Based on the SM9 Digital Signature And Its Application in Blockchain Privacy Protection

Funds: This work was supported by the Shandong Provincial Key Research and Development Program (2021CXGC010107) and the National Natural Science Foundation of China (U21A20466, 62172307, 62202339).
More Information
    Author Bio:

    An Haoyang: born in 1997. PhD candidate. His main research interests include applied cryptography and blockchain technology

    He Debiao: born in 1980. PhD, professor, PhD supervisor. His main research interests include cryptography and information security

    Bao Zijian: born in 1994. PhD candidate. His main research interests include applied cryptography and blockchain technology. (baozijian@whu.edu.cn)

    Peng Cong: born in 1989. PhD, associate professor. His main research interests include cryptography and information security. (cpeng@whu.edu.cn)

    Luo Min: born in 1974. PhD, professor. His main research interests include cryptography and information security. (mluo@whu.edu.cn)

  • 摘要:

    随着区块链技术的发展及应用,区块链技术在提供了不可篡改性、透明性的同时带来的隐私泄露问题也愈加严重. 虽然环签名技术已被广泛应用于区块链隐私保护方案,但现有方案基于公钥基础设施体系,证书管理成本较高. 另外,随着区块链系统国产化的应用需求不断增加,现有的国密算法已不能满足日益复杂的区块链应用需求. 为解决这个问题,提出了一种基于SM9数字签名的常数级大小环签名方案,并在随机谕言机模型下证明了该方案满足不可伪造性和匿名性. 此外,基于该环签名算法,对Hyperledger Fabric联盟链结构进行修改以实现交易方身份隐私保护. 利用Miracl库测试运算耗时,分析了所提方案的计算开销和通信开销. 实验分析结果表明,与现有的方案相比,所提方案在签名生成和验证方面实现了数倍的效率提升. 当环成员数量大于20时,所提方案在签名通信开销上具有明显优势.

    Abstract:

    With the development and application of blockchain technology, the privacy leakage problem brought by blockchain technology has become increasingly serious while providing immutability and transparency. Although ring signature has been widely used in blockchain privacy protection schemes, existing schemes are based on public key infrastructure system with high certificate management costs. In addition, with the increasing demand for domestic application of blockchain systems, existing national commercial cryptographic algorithms can no longer meet the increasingly complex application requirements of blockchain. To solve these problems, we propose a constant-size ring signature scheme based on SM9 digital signature algorithm and prove its security under the random oracle model. In addition, based on this ring signature algorithm, we modify the consortium blockchain, Hyperledger Fabric, to achieve transaction sender identity privacy protection. We utilize the Miracl library to test the computation time and analyze the computational and communication costs of our approach. The experimental analysis results demonstrate that compared with existing solutions, our approach achieves several times efficiency improvement in signature generation and verification. When the number of ring members exceeds 20, our approach exhibits significant advantages in terms of signature communication costs.

  • 区块链[1]是一种去中心化的分布式账本技术,具有不可篡改、去中心化和公开透明等特点. 随着区块链技术的应用与发展,数字身份和交易数据的重要性日益增加,同时也带来了更多隐私泄露的风险. 环签名概念最初由Rivest等人[2]提出,它允许一个实体代表一个潜在的签名者群体(称为环)签署消息,同时在环中保持匿名性. 与群签名相比,环签名被认为是简化的群签名[3]. 环签名不需要群管理员和其他环成员的合作或批准,可以实现自组织的匿名认证. 环签名在区块链隐私保护、匿名凭证、车辆自组织网络等方面都有许多应用. 门罗币[4]使用了可链接环签名[5]技术实现了交易方身份隐私保护. Bünz等人[6]结合了环签名技术,提出了一种基于账户模型的区块链隐私保护方案Zether.

    然而,文献[2-6]的方案基于公钥基础设施体系(public key infrastructure, PKI),用户公钥需要由可信证书颁发机构(certificate authority, CA)签署的证书进行认证. 在该体系中,证书的管理包括证书的吊销、存储、分发和验证,代价是较高的. 为解决该问题,Adi[7]在1984年提出了基于身份的公钥密码学(identity-based public key cryptography, ID-PKC). ID-PKC允许用户公钥是任何能够唯一标识用户的字符串(例如电子邮件地址),从而消除了证书的需要. 同时,引入了一个完全可信的密钥生成中心,根据用户的身份标识生成并发放用户私钥. 已有科研人员提出了基于身份的数字签名方案[8-10].

    SM9数字签名算法[11]是由中国国家密码管理局于2016年发布,并于2018年纳入国际标准的基于身份的密码算法. SM9数字签名算法采用了非对称双线性对技术,具有可证明的安全性和高效性[12],适用于各种需要身份认证和通信安全的场景,例如区块链、电子现金、电子投票等. 随着区块链系统国产化的应用需求不断增加,现有的国密算法已不能满足日益复杂的区块链应用需求. 已有科研人员提出了基于SM9标识密码算法的功能型密码算法[13-15]. 彭聪等人[16]提出了一种基于SM9标识密码算法的环签名方案. 然而,现有方案的计算开销和通信开销均随着环成员数量的增加而增加.

    本文的主要贡献有3个方面:

    1) 提出了一种基于SM9数字签名的常数级大小环签名方案,并基于该环签名算法设计了一种区块链隐私保护方案;

    2) 在随机谕言机模型下证明了本文方案满足不可伪造性和匿名性;

    3) 分析了本文方案的计算开销和通信开销,并与现有的方案做对比,实验分析结果表明本文方案实现了环签名大小不随环用户数量变化的需求,因而具有更高的实用性.

    Rivest等人[2]提出的环签名方案是基于RSA加密算法的. Abe等人[17]提出了基于离散对数问题的环签名方案. Wong等人[18]利用Reed-Solomon码的擦除校正技术和多项式插值之间的等价性提出了一种环签名方案. 为了抵抗量子计算机的攻击,Wang等人[19]提出了一种基于多变量的环签名方案,随后他们又利用基于格的无陷门签名方案[20]提出了一种基于格的环签名方案[21]. 为了减少签名大小,Dodis等人[22]利用基于单向域的累加器提出了首个常数级大小的环签名方案,且该方案所有身份验证的时间都与环成员数量无关.

    Zhang等人[23]提出了基于双线性对的基于身份的环签名方案. Herranz等人[24]提出了一种基于身份的环签名方案,并将他们的方案扩展到匿名子集场景. Awasthi等人[25]提出了一种基于身份的环签名方案和代理环签名方案. Nguyen[26]提出了一个基于双线性对的动态累加器方案,并基于此构建了一个具有常数级签名大小的基于身份环签名方案. Chow等人[27]提出了高效的基于身份的环签名方案,对于任意环成员数量仅需要2个双线性对计算,并在随机谕言机模型下证明对自适应选择的消息和身份攻击具有存在性不可伪造. 包嘉斌[28]提出了基于SM9标识密码算法的环签密方案. 邓浩明等人[29]提出了基于SM9标识密码算法的门限环签名方案.

    本节给出了符号约定、双线性对、数学困难问题、SM9数字签名算法、知识签名和动态累加器的概念.

    本文使用λ表示安全参数,ϵ表示可忽略函数,PPT表示概率多项式时间,pN为大素数,ZN={1,2,,N}Fp是阶为p的有限域,E(Fp)表示以Fp为基域的椭圆曲线,kP表示椭圆曲线上点Pk倍点,KGC表示密钥生成中心,ID表示用户身份标识.

    G1是由P1作为生成元的N阶加法循环群,G2是由P2作为生成元的N阶加法循环群,GT是阶为N的乘法循环群,双线性对是满足下列性质的一个映射e:G1×G2GT.

    1) 双线性. 对于任意的UG1,VG2a,bZN,都有e(aU,bV)=e(U,V)ab.

    2) 非退化性. 存在a,bZN,使得e(U,V)1.

    3) 可计算性. 对于所有UG1,VG2,存在多项式时间算法有效计算e(U,V).

    定义1. q-SDH问题(q-strong Diffie-Hellman problem, q-SDH). 对于UG1VG2,未知的aZN,给定U,V,aV,a2V,,aqV,PPT敌手输出(c,(a+c)1),其中cZN.

    定义2. 离散对数问题(discrete logarithm problem, DLP). 对于UG1,未知的aZN,给定W=aU,PPT敌手输出a.

    SM9数字签名算法包括4个算法,分别是系统初始化算法、密钥提取算法、签名算法和签名验证算法.

    1) 系统初始化算法. 输入安全参数λ,选取特定曲线生成参数t,构建椭圆曲线基域Fp,构建E(Fp)上的双线性对e:G1×G2GT,选择哈希函数H1(),H2():{0,1}ZN. KGC随机选取dZN作为签名主密钥msk,并计算主公钥Ppub=dP2. 最后,输出系统参数Params={e,G1,G2,GT,P1,P2,Ppub,H1,H2}作为以下算法的默认输入.

    2) 密钥提取算法. 给定用户A的身份标识IDA,为产生用户A的签名私钥dAID,KGC计算dAID=d(H1(IDA)+d)1P1,输出用户A的私钥dAID.

    3) 签名算法. 给定用户A的私钥dAID,消息m和主公钥Ppub,随机选取rZN,计算σ1=H2(me(P1,Ppub)r),σ2=(rσ1)dAID,输出签名值σ=(σ1,σ2).

    4) 签名验证算法. 给定主公钥Ppub,用户A的身份标识IDA,消息m和签名值σ,验证者计算P=H1(IDA)P2+Ppub,验证σ1=H2(me(σ2,P)e(P1,Ppub)σ1)是否成立,若成立,则σ为合法签名,否则签名无效.

    知识签名(signatures of knowledge, SoK)是一种证明系统,证明者可以证明知道某个论断而不泄露对应的证据,它可以用于构造数字签名方案来提供认证性、完整性和不可否认性. 例如,SoK{(x)|X=xP1}(m)表示证明者拥有知识x满足关系X=xP1,且不泄露x的真实值,并对消息m进行签名. 知识签名需要满足正确性、可靠性、零知识性和存在性不可伪造,它包含3个算法:

    1) 密钥生成. 输入安全参数λ,输出系统公开参数Params.

    2) 证明. 输入系统公开参数Params,消息m和关系(x,X)R,输出知识签名π.

    3) 验证. 给定消息m和知识签名π,输出accept,表明证明有效;反之,则证明无效.

    动态累加器可以让用户证明一个元素属于一个集合,而不用透露集合中的单个成员. 它可以用于匿名凭证、群签名和环签名等应用场景,可以实时地对集合状态进行更新,同时存储和计算规模不会随着元素数量的增加而受到影响. 本文结合了Nguyen[26]提出的动态累加器方案,包含以下4个算法:

    1) 累加器初始化算法. 按照2.2节定义双线性对e:G1×G2GT,随机选择sZNL={P1,sP1,s2P1,,sqP1},其中q是可以被累加器累加的最大上限值. 创建动态累加器实例,随机选择uZN,累加器值初始化为V0=uP1.

    2) 累加器评估算法. 给定累加器值V0和集合X={x1,,xk}ZN{d},k,累加器值\displaystyle \prod\limits_{i = 1}^k ({x_i} + d) {V_0}可以通过元组L在不知道s的情况下计算.

    3) 累加器成员增加算法. 增加成员x' \notin X,更新累加器值为V' = (x' + d)V,并更新证据W' = V + (x' - x)W.

    4) 累加器成员删除算法. 删除成员x' \in X,更新累加器值为V' = {(x' + d)^{ - 1}}V,并更新证据W' = {(x' - x)^{ - 1}}(W - V').

    本节介绍了如图1所示的基于身份环签名的系统模型和安全模型,并提出了基于SM9数字签名的常数级大小环签名方案.

    图  1  基于身份的环签名模型
    Figure  1.  Identity-based ring signature model

    基于身份的环签名包含3种角色:KGC、签名者和验证者. 其中可信的KGC负责初始化系统公开参数,并为用户生成对应其身份标识的私钥. 基于身份的环签名包含4个算法:

    1) 系统初始化算法Setup(\lambda ). 由KGC执行,输入安全参数\lambda ,输出系统公开参数Params和KGC的主密钥msk.

    2) 密钥提取算法Extract(ID,msk). 由KGC执行,输入用户身份标识ID和KGC主密钥msk,输出用户私钥{d_{ID}}.

    3) 环签名算法RS ign(m,{Y_n},{d_{ID}}). 由签名者执行,输入消息m,环用户标识集合{Y_n} = \{ I{D_1},I{D_2},…,I{D_n}\},用户私钥{d_{ID}},输出环签名值\sigma .

    4) 签名验证算法{R V e ri f y}(m,\sigma ,{Y_n}). 由验证者执行,输入消息m,签名\sigma ,环用户集合{Y_n} = \{ I{D_1},I{D_2},…,I{D_n}\},输出accept/reject.

    正确性. 对于环签名算法生成的签名,能够通过验证算法,即满足等式:

    Pr \left[ {{R V e ri f y}(m,\sigma ,{Y_n}) = {\rm{accept}} \left| \begin{gathered} S etup(\lambda ) \to (Params,msk) \\ Extract(ID,msk) \to {d_{ID}} \\ RS ign(m,{Y_n},{d_{ID}}) \to \sigma \\ \end{gathered} \right.} \right] = 1 .

    基于身份的环签名需要满足:1) 在自适应选择消息和身份攻击下的存在性不可伪造(existential unforgeability under adaptive chosen-message-and-identity attack, EUF-CMIA);2) 匿名性.

    定义3. EUF-CMIA. 使用模拟器{{\mathcal{S}}}与敌手{{\mathcal{A}}}之间的游戏来定义该性质.

    1) 系统初始化. {{\mathcal{S}}}调用Setup(\lambda )生成系统参数Params和KGC的主公私钥对({P_{{\text{pub}}}},msk). {{\mathcal{S}}}Params{P_{{\text{pub}}}}发送给敌手{{\mathcal{A}}}.

    2) 询问阶段. {{\mathcal{A}}}以自适应的方式进行3个查询:

    ①哈希谕言机查询. {{\mathcal{A}}}询问任意输入的哈希值.

    ②密钥提取查询. {{\mathcal{A}}}询问身份标识 ID {{\mathcal{S}}}返回对 应的私钥.

    ③签名查询. {{\mathcal{A}}}询问环用户集合{Y_n} =\left \{ I{D_1},I{D_2},…, \right. \left. I{D_n} \right\} 和一个消息m{{\mathcal{S}}}返回对应的签名\sigma .

    3) 伪造阶段. {{\mathcal{A}}}伪造挑战用户集合Y_n^* = \{ ID_1^*,ID_2^*,…, ID_n^*\}对消息{m^*}的签名{\sigma ^*}{{\mathcal{A}}}从未询问过Y_n^*对消息{m^*}的签名,且从未询问过Y_n^*中任何一个用户的私钥,伪造的签名值{\sigma ^*}可以通过验证算法,则敌手{{\mathcal{A}}} 赢得游戏.

    定义敌手{{\mathcal{A}}}赢得EUF-CMIA游戏的优势为Adv_\mathcal{A}^{{\rm{EUF}}} = Pr[RVerify({m^*},{\sigma ^*},Y_n^*) = {\text{accept}}]. 如果该优势可忽略,则称该方案是EUF-CMIA安全的.

    定义4. 匿名性. 使用模拟器{{\mathcal{S}}}与敌手{{\mathcal{A}}}之间的游戏来定义该性质.

    1) 系统初始化. {{\mathcal{S}}}调用Setup(\lambda )生成系统参数Params和KGC的主公私钥对({P_{{\text{pub}}}},msk). {{\mathcal{S}}}Params{P_{{\text{pub}}}}发送给{{\mathcal{A}}}.

    2) 询问阶段. {{\mathcal{A}}}以自适应的方式进行3个查询:

    ①哈希谕言机查询. {{\mathcal{A}}}询问任意输入的哈希值.

    ②密钥提取查询. {{\mathcal{A}}}询问身份标识ID{{\mathcal{S}}}返回对 应的私钥.

    ③签名查询. {{\mathcal{A}}}询问环用户集合{Y_n} = \{ I{D_1},I{D_2}, …, I{D_n}\} 和一个消息m{{\mathcal{S}}}返回对应的签名值\sigma .

    3) 挑战阶段. {{\mathcal{A}}}{{\mathcal{S}}}提交一个挑战用户集合Y_n^* = \{ ID_1^*,ID_2^*,…,ID_n^*\}和2个用户标识I{D_{{\delta _1}}},I{D_{{\delta _2}}} \in Y_n^*{{\mathcal{S}}}随机选择b \in \{ 0,1\} 并使用I{D_{{\delta _b}}}的私钥对消息{m^*}进行环签名,将签名值{\sigma ^*}发送给{{\mathcal{A}}}.

    4) 猜测阶段. {{\mathcal{A}}}输出一个{b'} \in \{ 0,1\} ,如果{b'} = b{{\mathcal{A}}}赢得游戏.

    定义敌手{{\mathcal{A}}}赢得游戏的优势为Adv_\mathcal{A}^{{\rm{ANO}}} = Pr[{b'} = b]. 如果该优势可忽略,则称该方案满足匿名性.

    1) 系统初始化算法Setup. 由KGC运行,输入安全参数λ,输出系统公开参数Params和KGC的主密钥msk. 参数选取同国密标准SM9数字签名算法.

    ①选取{G_1},{G_2},{G_3} \in {\mathbb{G}_1}.

    ②产生随机数 d \in \mathbb{Z}_N^* 作为主密钥msk,并计算主 公钥{P_{{\text{pub}}}} = d \cdot {P_2}.

    ③创建动态累加器实例,随机选择 u \in \mathbb{Z}_N^* ,累加 器值初始化为{V_0} = u \cdot {P_1}.

    ④随机选择 s \in \mathbb{Z}_N^* ,计算{S_{{\text{pub}}}} = s \cdot {P_2}L = \left\{ {P_1},s \cdot {P_1}, \right. \left. s^2 \cdot {P_1},…,{s^q} \cdot {P_1}\right\},其中q是可以被累加器累加的最 大上限值.

    ⑤公共参数为 Params = \left\{ \lambda ,{G_1},{G_2},{G_3},{P_1},{P_2},{P_{{\text{pub}}}},\right. \left.{S_{{\text{pub}}}}, {V_0},L,{H_1},{H_2}\right\},作为下面算法的默认输入.

    2) 密钥提取算法 Extract . 由KGC运行,输入用户A的身份标识I{D_A},KGC主密钥msk,输出用户A(签名者)的私钥d_{ID}^A.

    KGC计算用户A的私钥d_{ID}^A = d \cdot {({H_1}(I{D_A}) + d)^{ - 1}} \cdot {P_1}并发送给用户A.

    3) 环签名算法 RS ign . 由用户A运行,输入用户A的私钥d_{ID}^An个成员标识组成的环用户集合{Y_n} = \{ I{D_1},I{D_2},…,I{D_n}\},待签名消息m,输出环签名值\sigma .

    ①对于i \in [1,n],计算{x_i} = {H_1}(I{D_i}),设{x_\delta } = {H_1}(I{D_A})1 \leqslant \delta \leqslant n.

    ②对集合X = \{ {x_1},{x_2},…,{x_n}\}n的最大值为q - 1,计算 V = \displaystyle\prod\limits_{i = 1}^n {({x_i} + s) \cdot {V_0}}. 注意 V 值的计算不需要知道s, 在已知L的情况下,V可以在多项式时间内被计算.

    ③计算证据{W_A} = \displaystyle\prod\limits_{i = 1,i \ne \delta }^n {({x_i} + s) \cdot {V_0}}.

    ④知识签名由两部分组成,用户A的证据{W_A}证明 {x_A} = {H_1}(I{D_A})确实在V中、用户A的私钥d_{ID}^A合法. 非交互式零知识证明

    \pi = S oK\left\{ {\left.\left( \begin{gathered} {x_A}, \\ d_{ID}^A, \\ {W_A} \\\end{gathered} \right) \right| \begin{gathered} e({W_A},{x_A} \cdot {P_2} + {S_{{\text{pub}}}}) = e(V,{P_2}) \wedge \\ e(d_{ID}^A,{x_A} \cdot {P_2} + {P_{{\text{pub}}}}) = e({P_1},{P_{{\text{pub}}}}) \\\end{gathered} } \right\}(m). 具体展开为:

    选取随机值{r_1},{r_2},{r_3} \in \mathbb{Z}_N^*,计算

    {A_1} = {r_1} \cdot {G_1} + {r_2} \cdot {G_2} + {r_3} \cdot {G_3};\qquad\qquad\qquad\quad\quad
    {A_2} = {W_A} + {r_1} \cdot {G_2};\qquad\qquad\qquad\qquad\qquad\qquad
    {A_3} = d_{ID}^A + {r_2} \cdot {G_3};\qquad\qquad\qquad\qquad\qquad\qquad
    {\alpha _1} = {r_1} \cdot {x_A};{\alpha _2} = {r_2} \cdot {x_A};{\alpha _3} = {r_3} \cdot {x_A};\qquad\qquad\quad

    \pi 等价于{\pi '}

    \pi ' = S o K \left\{ {\left( \begin{gathered} {r_1},{r_2}, \\ {r_3},{x_A}, \\ {\alpha _1},{\alpha _2}, \\ {\alpha _3} \\ \end{gathered} \right) \left| \begin{gathered} {A_1} = {r_1} \cdot {G_1} + {r_2} \cdot {G_2} + {r_3} \cdot {G_3} \wedge \\ {x_A} \cdot {A_1} = {\alpha _1} \cdot {G_1} + {\alpha _2} \cdot {G_2} + {\alpha _3} \cdot {G_3} \wedge \\ e({A_2},{S_{{\text{pub}}}})e{(V,{P_2})^{ - 1}} = \\ e{({A_2},{P_2})^{ - {x_A}}}e{({G_2},{S_{{\text{pub}}}})^{{r_1}}}e({G_2},\\{P_2})^{{\alpha _1}} \wedge e({A_3},{P_{{\text{pub}}}})e{({P_1},{P_{{\text{pub}}}})^{ - 1}} = \\ e{({A_3},{P_2})^{ - {x_A}}}e{({G_3},{P_{{\text{pub}}}})^{{r_2}}}e{({G_3},{P_2})^{{\alpha _2}}} \\ \end{gathered} \right.} \right\} ( m ).

    选取随机值{k_1},{k_2},…,{k_7} \in \mathbb{Z}_N^*,计算

    \begin{gathered} {T_1} = {k_1} \cdot {G_1} + {k_2} \cdot {G_2} + {k_3} \cdot {G_3}; \\ {T_2} = {k_4} \cdot {G_1} + {k_5} \cdot {G_2} + {k_6} \cdot {G_3} - {k_7} \cdot {A_1}; \\ {T_3} = e{({A_2},{P_2})^{ - {k_7}}}e{({G_2},{S_{{\text{pub}}}})^{{k_1}}}e{({G_2},{P_2})^{{k_4}}}; \\ {T_4} = e{({A_3},{P_2})^{ - {k_7}}}e{({G_3},{P_{{\text{pub}}}})^{{k_2}}}e{({G_3},{P_2})^{{k_5}}}; \\ ch = {H_2}(Params\parallel {A_1},…,{A_3}\parallel {T_1},…,{T_4}\parallel m); \\ {s_1} = {k_1} + ch \cdot {r_1};{s_2} = {k_2} + ch \cdot {r_2}; \\ {s_3} = {k_3} + ch \cdot {r_3};{s_4} = {k_4} + ch \cdot {\alpha _1}; \\ {s_5} = {k_5} + ch \cdot {\alpha _2};{s_6} = {k_6} + ch \cdot {\alpha _3}; \\ {s_7} = {k_7} + ch \cdot {x_A}; \\ \end{gathered}

    ⑤输出消息m的签名值\sigma =\left (ch,{s_1},…,{s_7},{A_1},…,{A_3}, \right. \left.{T_1},…,{T_4},V\right).

    4) 签名验证算法 RVerify . 由验证者运行,输入消息m,签名值\sigma = (ch,{s_1},…,{s_7},{A_1},…, {A_3}, {T_1},…,{T_4},V),环用户标识集合{Y_n} = \{ I{D_1},I{D_2},…,I{D_n}\},输出accept/reject.

    验证等式:

    \begin{gathered} \qquad{T_1} = {s_1} \cdot {G_1} + {s_2} \cdot {G_2} + {s_3} \cdot {G_3} - ch \cdot {A_1}; \\\qquad {T_2} = {s_4} \cdot {G_1} + {s_5} \cdot {G_2} + {s_6} \cdot {G_3} - {s_7} \cdot {A_1}; \\\qquad {T_3} = e{({A_2},{P_2})^{ - {s_7}}}e{({G_2},{S_{{\text{pub}}}})^{{s_1}}}e{({G_2},{P_2})^{{s_4}}}e{({A_2},{S_{{\text{pub}}}})^{ - ch}}\\ \qquad e{(V,{P_2})^{ch}}; \\ \qquad {T_4} = e{({A_3},{P_2})^{ - {s_7}}}e{({G_3},{P_{{\text{pub}}}})^{{s_2}}}e{({G_3},{P_2})^{{s_5}}}e{({A_3},{P_{{\text{pub}}}})^{ - ch}}\\ \qquad e{({P_1},{P_{{\text{pub}}}})^{ch}} . \\ \qquad \end{gathered}

    若等式成立,则签名有效,返回accept;否则,签名无效,返回reject.

    \begin{aligned} {T_1} = &{s_1} \cdot {G_1} + {s_2} \cdot {G_2} + {s_3} \cdot {G_3} - ch \cdot {A_1} = \\ &({k_1} + ch \cdot {r_1}) \cdot {G_1} + ({k_2} + ch \cdot {r_2}) \cdot {G_2} + ({k_3} + ch \cdot \\ &{r_3}) \cdot {G_3} - ch \cdot {A_1} = {k_1} \cdot {G_1} + {k_2} \cdot {G_2} + {k_3} \cdot {G_3}; \end{aligned}
    \begin{aligned}{T_2} = &{s_4} \cdot {G_1} + {s_5} \cdot {G_2} + {s_6} \cdot {G_3} - {s_7} \cdot {A_1} = \\ & ({k_4} + ch \cdot {\alpha _1}) \cdot {G_1} + ({k_5} + ch \cdot {\alpha _2}) \cdot {G_2} + \\ & ({k_6} + ch \cdot {\alpha _3}) \cdot {G_3} - ({k_7} + ch \cdot {x_A}) \cdot {A_1} = \\ & ({k_4} + ch \cdot {r_1} \cdot {x_A}) \cdot {G_1} + ({k_5} + ch \cdot {r_2} \cdot {x_A}) \cdot {G_2} + \\ & ({k_6} + ch \cdot {r_3} \cdot {x_A}) \cdot {G_3} - ({k_7} + ch \cdot {x_A}) \cdot {A_1} = \\ &{k_4} \cdot {G_1} + {k_5} \cdot {G_2} + {k_6} \cdot {G_3} - {k_7} \cdot {A_1} + \\ &ch \cdot {r_1} \cdot {x_A} \cdot {G_1} + ch \cdot {r_2} \cdot {x_A} \cdot {G_2} + \\ & ch \cdot {r_3} \cdot {x_A} \cdot {G_3} - ch \cdot {x_A} \cdot ({r_1} \cdot {G_1} + {r_2} \cdot {G_2} + {r_3} \cdot {G_3}) = \\ & {k_4} \cdot {G_1} + {k_5} \cdot {G_2} + {k_6} \cdot {G_3} - {k_7} \cdot {A_1};\end{aligned}
    \begin{aligned} {T_3} = &e{({A_2},{P_2})^{ - {s_7}}}e{({G_2},{S_{{\rm{pub}}}})^{{s_1}}}e{({G_2},{P_2})^{{s_4}}}e{({A_2},{S_{{\rm{pub}}}})^{ - ch}}\cdot \\ &e{(V,{P_2})^{ch}} = e{({A_2},{P_2})^{ - {k_7} - ch \cdot {x_A}}}e{({G_2},{S_{{\rm{pub}}}})^{{k_1} + ch \cdot {r_1}}}\cdot\\ &e{({G_2},{P_2})^{{k_4} + ch \cdot {\alpha _1}}}e{({A_2},{S_{{\rm{pub}}}})^{ - ch}}e{(V,{P_2})^{ch}} = e{({A_2},{P_2})^{ - {k_7}}}\cdot\\ &e{({G_2},{S_{{\rm{pub}}}})^{{k_1}}}e{({G_2},{P_2})^{{k_4}}}e{({A_2},{x_A} \cdot {P_2} + {S_{{\rm{pub}}}})^{ - ch}}\cdot\\ & e{({G_2},{S_{{\rm{pub}}}})^{ch \cdot {r_1}}}e{({G_2},{P_2})^{ch \cdot {r_1} \cdot {x_A}}}e{(V,{P_2})^{ch}} = e{({A_2},{P_2})^{ - {k_7}}}\cdot \\ &e{({G_2},{S_{{\rm{pub}}}})^{{k_1}}}e{({G_2},{P_2})^{{k_4}}}e{({A_2},{x_A} \cdot {P_2} + {S_{{\rm{pub}}}})^{ - ch}} \cdot\\ &e{({G_2},{x_A} \cdot {P_2} + {S_{{\rm{pub}}}})^{ch \cdot {r_1}}}e{(V,{P_2})^{ch}} = e{({A_2},{P_2})^{ - {k_7}}}\cdot\\ &e{({G_2},{S_{{\rm{pub}}}})^{{k_1}}}e{({G_2},{P_2})^{{k_4}}} e{({r_1} \cdot {G_2} - {A_2},{x_A} \cdot {P_2} + {S_{{\rm{pub}}}})^{ch}}\cdot\\ &e{(V,{P_2})^{ch}} = e{({A_2},{P_2})^{ - {k_7}}}e{({G_2},{S_{{\rm{pub}}}})^{{k_1}}}e{({G_2},{P_2})^{{k_4}}} \cdot \\ &e{({W_A},{x_A} \cdot {P_2} + {S_{{\rm{pub}}}})^{ - ch}}e{(V,{P_2})^{ch}} = \\ &e{({A_2},{P_2})^{ - {k_7}}}e{({G_2},{S_{{\rm{pub}}}})^{{k_1}}}e{({G_2},{P_2})^{{k_4}}}; \end{aligned}
    \begin{aligned} {T_4} =& e{({A_3},{P_2})^{ - {s_7}}}e{({G_3},{P_{{\text{pub}}}})^{{s_2}}}e{({G_3},{P_2})^{{s_5}}}e{({A_3},{P_{{\text{pub}}}})^{ - ch}}\cdot\\ &e{({P_1},{P_{{\text{pub}}}})^{ch}} =e{({A_3},{P_2})^{ - {k_7} - ch \cdot {x_A}}}e{({G_3},{P_{{\text{pub}}}})^{{k_2} + ch \cdot {r_2}}}\cdot\\ &e{({G_3},{P_2})^{{k_5} + ch \cdot {\alpha _2}}}e{({A_3},{P_{{\text{pub}}}})^{ - ch}}e{({P_1},{P_{{\text{pub}}}})^{ch}} =\\ & e{({A_3},{P_2})^{ - {k_7}}}e{({G_3},{P_{{\text{pub}}}})^{{k_2}}}e{({G_3},{P_2})^{{k_5}}}e{({A_3},{P_2})^{ - ch \cdot {x_A}}} \cdot\\ &e{({G_3},{P_{{\text{pub}}}})^{ch \cdot {r_2}}}e{({G_3},{P_2})^{ch \cdot {r_2} \cdot {x_A}}}e{({A_3},{P_{{\text{pub}}}})^{ - ch}}e{({P_1},{P_{{\text{pub}}}})^{ch}} = \\ & e{({A_3},{P_2})^{ - {k_7}}}e{({G_3},{P_{{\text{pub}}}})^{{k_2}}} e{({G_3},{P_2})^{{k_5}}}e{({r_2} \cdot {G_3} - {A_3},{P_2})^{ch \cdot {x_A}}} \cdot\\ &e{({G_3},{P_{{\text{pub}}}})^{ch \cdot {r_2}}}e{({A_3},{P_{{\text{pub}}}})^{ - ch}}e{({P_1},{P_{{\text{pub}}}})^{ch}} = e{({A_3},{P_2})^{ - {k_7}}}\cdot\\ &e{({G_3},{P_{{\text{pub}}}})^{{k_2}}}e{({G_3},{P_2})^{{k_5}}}e{(d_{ID}^A,{x_A} \cdot {P_2} + {P_{{\text{pub}}}})^{ - ch}}\cdot\\ &e{({P_1},{P_{{\text{pub}}}})^{ch}} = e{({A_3},{P_2})^{ - {k_7}}}e{({G_3},{P_{{\text{pub}}}})^{{k_2}}}e{({G_3},{P_2})^{{k_5}}}. \end{aligned}

    本节将给出基于SM9数字签名的环签名方案的安全性证明. 假设KGC是可信的,仅考虑恶意用户作为敌手. 假设q-SDH问题是困难的,本文使用的累加器方案满足抗碰撞性,其中q是累加器要累加元素的上限,文献[26]中给出了具体的证明,本文不再赘述.

    定理1. 在随机谕言机模型下,假设群{{G}_1}上的离散对数问题是困难的,本文方案中的知识签名\pi 满足完备性、可靠性和零知识性.

    证明.完备性可由4.1节得证. 本节只证明可靠性和零知识性.

    1)可靠性. 假设群{{\mathbb{G}}_1}上的离散对数问题是困难的,如果协议以可忽略的概率通过验证,PPT的证明者必须具有 {x_A},d_{ID}^A,{W_A} 的知识. 假设协议接受具有相同的承诺({A_1},…,{A_3},{T_1},…,{T_4})和2个不同的挑战和响应对(ch,{s_1},{s_2},…,{s_7})(c{h'},s_1',s_2',…,s_7').

    {t_i} = ({s_i} - s_i'){(c{h_i} - ch_i')^{ - 1}}i = 1,2,…,7,则

    {T_1} = {s_1} \cdot {G_1} + {s_2} \cdot {G_2} + {s_3} \cdot {G_3} - ch \cdot {A_1};\; (1)
    {T_2} = {t_4} \cdot {G_1} + {t_5} \cdot {G_2} + {t_6} \cdot {G_3} - {t_7} \cdot {A_1};\;\quad\; (2)
    \begin{gathered} {T_3} = e{({A_2},{P_2})^{ - {t_7}}}e{({G_2},{S_{{\text{pub}}}})^{{t_1}}}e{({G_2},{P_2})^{{t_4}}}; \\ {T_4} = e{({A_3},{P_2})^{ - {t_7}}}e{({G_3},{P_{{\text{pub}}}})^{{t_2}}}e{({G_3},{P_2})^{{t_5}}}. \\ \end{gathered}

    根据式(1)(2),证明者具有o = ({t_4} - {t_7}{t_1}){G_1} + ({t_5} - {t_7}{t_2}){G_2} + ({t_6} - {t_7}{t_3}){G_3} \in {{\mathbb{G}}_1}. 在{{\mathbb{G}}_1}的离散对数假设下,意味着{t_4} = {t_7}{t_1}{t_5} = {t_7}{t_2}. 令{x_A} = {t_7}{W_A} = {A_2} - {t_1}{G_2}d_{ID}^A = {A_3} - {t_2}{G_3},则e({W_A},{x_A} \cdot {P_2} + {S_{{\text{pub}}}}) = e(V,{P_2})e(d_{ID}^A,{x_A} \cdot {P_2} + {P_{{\text{pub}}}}) = e({P_1},{P_{{\text{pub}}}}). 因此,证明者具有满足这些关系的知识 {x_A},d_{ID}^A,{W_A} .

    2)零知识性. 模拟器{{\mathcal{S}}}随机选择ch,{s_1},{s_2},…, {s_7} \in \mathbb{Z}_N^*{A_1},{A_2},{A_3} \in {{\mathbb{G}}_1},并计算

    \begin{gathered} {T_1} = {s_1} \cdot {G_1} + {s_2} \cdot {G_2} + {s_3} \cdot {G_3} - ch \cdot {A_1}; \\ {T_2} = {s_4} \cdot {G_1} + {s_5} \cdot {G_2} + {s_6} \cdot {G_3} - {s_7} \cdot {A_1}; \\ {T_3} = e{({A_2},{P_2})^{ - {s_7}}}e{({G_2},{S_{{\text{pub}}}})^{{s_1}}}e{({G_2},{P_2})^{{s_4}}}e{({A_2},{S_{{\text{pub}}}})^{ - ch}}\cdot \\e{(V,{P_2})^{ch}}; \\ {T_4} = e{({A_3},{P_2})^{ - {s_7}}}e{({G_3},{P_{{\text{pub}}}})^{{s_2}}}e{({G_3},{P_2})^{{s_5}}}e{({A_3},{P_{{\text{pub}}}})^{ - ch}} \cdot\\e{({P_1},{P_{{\text{pub}}}})^{ch}} . \\ \end{gathered}

    可以得到模拟的分布与真实记录的分布相同. 证毕.

    定理2. 在随机谕言机模型下,假设q-SDH问题是困难的,累加器方案满足抗碰撞性,知识签名\pi 满足零知识性,我们的基于SM9签名的环签名方案满足匿名性.

    定理3. 在随机谕言机模型下,假设q-SDH问题是困难的,累加器方案满足抗碰撞性,知识签名\pi 满足可靠性,我们的基于SM9签名的环签名方案是EUF-CMIA安全的.

    证明.由于本文方案是基于非交互式零知识证明构造的知识签名方案,定理2和定理3可以很容易地从定理1的结论中得出,故省略. 证毕.

    本文对Hyperledger Fabric联盟链结构进行修改,利用提出的环签名方案,设计了一种区块链隐私保护方案. 用户通过使用该环签名签署交易提案,实现了交易发起方的身份隐私保护. 交易核心过程如图2所示.

    图  2  基于环签名的区块链交易流程
    Figure  2.  Blockchain transaction process based on ring signature

    该区块链隐私保护方案包含3个实体,即KGC、用户、区块链节点,其中区块链节点可以分为背书节点、排序节点和记账节点. 本文方案使用KGC替换了Fabric框架中的CA模块,避免了PKI体系带来的证书管理问题,在本文方案中KGC是可信的. 具体核心交易流程描述如下:

    ⓪ 由KGC执行Setup算法,完成系统初始化.

    ①用户向KGC提交自己的身份标识ID以请求用户密钥.

    ②KGC执行Extract算法,生成用户的私钥{d_{ID}}并发送给用户.

    ③用户在发送交易之前,先构造交易提案,随机选取n个成员标识组成的环用户集合{Y_n} = \{ I{D_1},I{D_2},\cdots, I{D_n}\} ,使用RSign算法对交易提案进行签署,并发送给背书节点.

    ④背书节点首先使用RVerify算法验证交易提案签名,根据背书策略,模拟交易执行,完成交易验证.

    ⑤背书节点对交易提案进行签名背书,并发送给交易发起方用户.

    ⑥用户收集到一定数量的背书签名后,发送交易给排序节点.

    ⑦排序节点对收集到的交易进行排序,构造交易区块.

    ⑧排序节点广播交易区块给其他节点.

    ⑨记账节点使用RVerify算法验证交易签名,验证背书签名.

    ⑩记账节点将确认后的交易区块写入公开账本.

    本节从计算开销和通信开销两方面对基于身份的环签名方案进行评估,将本文所提出的SM9环签名方案与文献[16]中的基于SM9标识密码算法的环签名方案和文献[27]所提出的基于身份的环签名方案进行了比较.

    在计算开销方面,主要考虑密钥提取、环签名算法和签名验证算法的计算开销. 本文使用256 b的BN曲线实例化双线性对,使用SHA-256算法实例化哈希函数,省略了耗时很短的哈希运算和加法运算. 首先在电脑端利用Miracl库测试1000次取平均值得到方案所需运算的,其中平台参数为DELL牌电脑,Windows 11操作系统,i7-10700 2.90 GHz处理器和16 GB内存. 为方便起见,表1给出了符号定义和运算耗时结果. 表2分析了3个方案的计算开销.

    表  1  符号定义和运行时间
    Table  1.  Symbol Definition and Running Time
    符号运算描述运行时间/ms
    HTPHash To Point4.95
    P{M}_{ {{\mathbb{G}} }_{1} }{\mathbb{G}}_1中的点乘1.73
    PM_{{\mathbb{G}}_2 }{{\mathbb{G}}_2}中的点乘5.19
    E_{{\mathbb{G}}_T }{\mathbb{G}}_T中的取幂19.07
    BP双线性对62.34
    {M}_{ {{\mathbb{G}}}_{T} }{\mathbb{G}}_T中的乘法0.04
    M{E}_{{\mathbb{Z}}_{N}^{*}} \mathbb{Z}_N^*中的模幂0.14
    M{I}_{ {\mathbb{Z} }_{N}^{*} } \mathbb{Z}_N^*中的模逆0.05
    下载: 导出CSV 
    | 显示表格
    表  2  环签名方案的计算开销对比
    Table  2.  Comparison of Computation Costs for Ring Signature Schemes
    方案密钥提取签名生成签名验证
    文献[27]方案HTPn \times HTP + 2n \times P{M_{ {{\mathbb{G}}_2} } }2BP + n \times P{M_{ {{\mathbb{G}}_2} } }
    文献[16]方案P M_{{\mathbb{G}}_{1} }+M{I}_{ {\mathbb{Z} }_{N}^{*} }2n \times P{M_{ {{\mathbb{G}}_1} } } + n\times BP + (n - 1) \times {M_{ {{\mathbb{G}}_T} } }n \times P{M_{ { {\mathbb{G}}_1} } } + n \times BP + n \times {M_{ { {\mathbb{G}}_T} } }
    本文方案P M_{{\mathbb{G}}_{1} }+M{I}_{ {\mathbb{Z} }_{N}^{*} }14 P M_{{\mathbb{G}}_{1} }+2 B P+4 M_{{\mathbb{G}}_{T} }+6 M E_{\mathbb{Z}_N^* }9 P{M_{ {{\mathbb{G}}_1} } } + 5 BP + 8 {M_{ {{\mathbb{G}}_T} } } + 10M{E_{\mathbb{Z}_N^*} }
    下载: 导出CSV 
    | 显示表格

    本文方案的签名生成算法需要计算14个{\mathbb{G}_1}点乘运算、6个双线性对运算、4个{\mathbb{G}_T}乘法运算和6个\mathbb{Z}_N^*模幂运算,耗时399.3 ms,使用预计算方法提高计算效率后,签名生成计算可以减少4个双线性对运算,仅需耗时149.9 ms. 签名验证算法需要计算9个{\mathbb{G}_1}点乘运算、10个双线性对运算、8个{\mathbb{G}_T}乘法运算和10个\mathbb{Z}_N^*模幂运算,耗时640.7 ms,使用预计算方法后,签名验证计算可以减少5个双线性对运算,仅需耗时329 ms.

    图3所示,本文方案在签名生成算法的计算开销是常数级别的,当环成员数量为10时,本文方案的计算开销与方案[27]相似.与基于SM9的环签名方案[16]相比,本文方案性能优势更加明显,当环成员数量为10时,本文方案签名生成算法的计算开销仅为方案[16]的22.7%.

    图  3  签名生成计算开销对比
    Figure  3.  Signature generation computational cost comparison

    图4所示,本文方案在签名验证算法的计算开销也是常数级别的.当环成员数量为10时,本文方案签名验证计算开销大约是方案[27]的2倍,不具有优势;当环成员数量超过40个时,本文方案签名验证计算开销与方案[27]相似.与基于SM9的环签名方案[16]相比,本文方案性能优势明显,当环成员数量为10时,本文方案签名验证计算开销仅为方案[16]的一半.

    图  4  签名验证计算开销对比
    Figure  4.  Signature verification computational cost comparison

    在通信开销方面,主要考虑主公钥、用户私钥、和签名的通信开销. 本文使用 \left| {{\mathbb{G}_1}} \right|,\left| {{\mathbb{G}_2}} \right|,\left| {{\mathbb{G}_T}} \right|,\left| {\mathbb{Z}_N^*} \right| 分别表示 {\mathbb{G}_1},{\mathbb{G}_2},{\mathbb{G}_T},\mathbb{Z}_N^* 中元素的比特位长. 其中, \left| {{\mathbb{G}_1}} \right| = 512 b,\left| {{\mathbb{G}_2}} \right| = 1\;024 b,\left| {{\mathbb{G}_T}} \right| = 3\;072 b, \left| {\mathbb{Z}_N^*} \right| = 256 b. 表3分析了3个方案的通信开销.

    表  3  环签名方案的通信开销对比
    Table  3.  Comparison of Communication Costs for Ring Signature Schemes b
    方案主公钥用户私钥签名
    文献[27]方案 \left| {{\mathbb{G}_2}} \right| \left| {{\mathbb{G}_1}} \right| (n + 1)\left| {{\mathbb{G}_2}} \right|
    文献[16]方案 \left| {{\mathbb{G}_1}} \right| + \left| {{\mathbb{G}_2}} \right| \left| {{\mathbb{G}_1}} \right| \left| {\mathbb{Z}_N^*} \right| + n\left| {{\mathbb{G}_1}} \right|
    本文方案 \left| {{\mathbb{G}_1}} \right| + \left| {{\mathbb{G}_2}} \right| \left| {{\mathbb{G}_1}} \right| 8\left| {\mathbb{Z}_N^*} \right| + 6\left| {{\mathbb{G}_1}} \right| + 2\left| {{\mathbb{G}_T}} \right|
    下载: 导出CSV 
    | 显示表格

    图5所示,本文方案的签名通信开销是常数级别的,当环成员数量小于10时,本文方案与方案[27]相比不具有优势.当环成员数量小于20时,本文方案与方案[16]对比不具有优势.随着环成员数量的增长,本文方案的优势明显.

    图  5  签名通信开销对比
    Figure  5.  Comparison of signature communication cost

    环签名技术是一种重要的区块链身份隐私保护技术,基于身份的环签名方案具有广泛的应用场景,它可以避免PKI体系带来的证书管理问题,也具有环签名的匿名性和不可伪造性. 随着区块链系统国产化的应用需求,传统的国密算法已无法满足复杂的区块链应用需求,本文提出了一种基于SM9数字签名的环签名方案,并在随机谕言机模型下证明了其安全性,与现有的方案相比,本文方案性能优势明显. 当环成员数量大于20时,本文方案在签名通信开销上具有明显优势. 随着环签名算法对环用户数量增长的应用需求,本文方案具备更高的实用性,有效解决了区块链中的身份隐私泄露问题. 未来工作,将研究降低环签名通信开销,设计面向轻量级设备的基于身份环签名方案.

    作者贡献声明:安浩杨提出了算法方案并撰写论文;何德彪和包子健提出了指导意见;彭聪指导了实验分析部分;罗敏修改了论文.

  • 图  1   基于身份的环签名模型

    Figure  1.   Identity-based ring signature model

    图  2   基于环签名的区块链交易流程

    Figure  2.   Blockchain transaction process based on ring signature

    图  3   签名生成计算开销对比

    Figure  3.   Signature generation computational cost comparison

    图  4   签名验证计算开销对比

    Figure  4.   Signature verification computational cost comparison

    图  5   签名通信开销对比

    Figure  5.   Comparison of signature communication cost

    表  1   符号定义和运行时间

    Table  1   Symbol Definition and Running Time

    符号运算描述运行时间/ms
    HTPHash To Point4.95
    P{M}_{ {{\mathbb{G}} }_{1} }{\mathbb{G}}_1中的点乘1.73
    PM_{{\mathbb{G}}_2 }{{\mathbb{G}}_2}中的点乘5.19
    E_{{\mathbb{G}}_T }{\mathbb{G}}_T中的取幂19.07
    BP双线性对62.34
    {M}_{ {{\mathbb{G}}}_{T} }{\mathbb{G}}_T中的乘法0.04
    M{E}_{{\mathbb{Z}}_{N}^{*}} \mathbb{Z}_N^*中的模幂0.14
    M{I}_{ {\mathbb{Z} }_{N}^{*} } \mathbb{Z}_N^*中的模逆0.05
    下载: 导出CSV

    表  2   环签名方案的计算开销对比

    Table  2   Comparison of Computation Costs for Ring Signature Schemes

    方案密钥提取签名生成签名验证
    文献[27]方案HTPn \times HTP + 2n \times P{M_{ {{\mathbb{G}}_2} } }2BP + n \times P{M_{ {{\mathbb{G}}_2} } }
    文献[16]方案P M_{{\mathbb{G}}_{1} }+M{I}_{ {\mathbb{Z} }_{N}^{*} }2n \times P{M_{ {{\mathbb{G}}_1} } } + n\times BP + (n - 1) \times {M_{ {{\mathbb{G}}_T} } }n \times P{M_{ { {\mathbb{G}}_1} } } + n \times BP + n \times {M_{ { {\mathbb{G}}_T} } }
    本文方案P M_{{\mathbb{G}}_{1} }+M{I}_{ {\mathbb{Z} }_{N}^{*} }14 P M_{{\mathbb{G}}_{1} }+2 B P+4 M_{{\mathbb{G}}_{T} }+6 M E_{\mathbb{Z}_N^* }9 P{M_{ {{\mathbb{G}}_1} } } + 5 BP + 8 {M_{ {{\mathbb{G}}_T} } } + 10M{E_{\mathbb{Z}_N^*} }
    下载: 导出CSV

    表  3   环签名方案的通信开销对比

    Table  3   Comparison of Communication Costs for Ring Signature Schemes b

    方案主公钥用户私钥签名
    文献[27]方案 \left| {{\mathbb{G}_2}} \right| \left| {{\mathbb{G}_1}} \right| (n + 1)\left| {{\mathbb{G}_2}} \right|
    文献[16]方案 \left| {{\mathbb{G}_1}} \right| + \left| {{\mathbb{G}_2}} \right| \left| {{\mathbb{G}_1}} \right| \left| {\mathbb{Z}_N^*} \right| + n\left| {{\mathbb{G}_1}} \right|
    本文方案 \left| {{\mathbb{G}_1}} \right| + \left| {{\mathbb{G}_2}} \right| \left| {{\mathbb{G}_1}} \right| 8\left| {\mathbb{Z}_N^*} \right| + 6\left| {{\mathbb{G}_1}} \right| + 2\left| {{\mathbb{G}_T}} \right|
    下载: 导出CSV
  • [1] 蒋宇娜,葛晓虎,杨旸,等. 面向6G的区块链物联网数据共享和存储机制[J]. 通信学报,2020,41(10):48−58

    Jiang Yuna, Ge Xiaohu, Yang Yang, et al. 6G oriented blockchain based Internet of things data sharing and storage mechanism[J]. Journal on Communications, 2020, 41(10): 48−58 (in Chinese)

    [2]

    Rivest R L, Shamir A, Tauman Y. How to leak a secret[C] //Proc of Annual Int Conf on the Theory and Application of Cryptology and Information Security (ASIACRYPT). Berlin: Springer, 2001: 552–565

    [3]

    Chaum D, Eugène V H. Group signatures[C] //Proc of Int Conf on the Theory and Applications of Cryptographic Techniques (EUROCRYPT). Berlin: Springer, 1991: 257−265

    [4]

    Shen N. Ring signature confidential transactions for monero [EB/OL]. [2015-12-17]. https://eprint.iacr.org/2015/1098

    [5]

    Sun Shifeng, Man H A, Joseph K L, et al. RingCT 2.0: A compact accumulator-based (linkable ring signature) protocol for blockchain cryptocurrency Monero[C] //Proc of European Symp on Research in Computer Security (ESORICS). Berlin: Springer, 2017: 456−474

    [6]

    Bünz B, Shashank A, Mahdi Z, et al. Zether: Towards privacy in a smart contract world[C] //Proc of Financial Cryptography and Data Security (FC). Berlin: Springer, 2020: 423–443

    [7]

    Adi S. Identity-based cryptosystems and signature schemes[C] //Proc of Int Cryptology Conf (CRYPTO). Berlin: Springer, 1984: 47−53

    [8]

    Hess F. Efficient identity based signature schemes based on pairings[C] //Proc of Selected Areas in Cryptography (SAC). Berlin: Springer, 2002: 310−324

    [9]

    Barreto P S L M, Benoît L, Noel M, et al. Efficient and provably-secure identity-based signatures and signcryption from bilinear maps[C] //Proc of Annual Int Conf on the Theory and Application of Cryptology and Information Security (ASIACRYPT). Berlin: Springer, 2005: 515−532

    [10]

    Paterson K G, Jacob C S. Efficient identity-based signatures secure in the standard model[C] //Proc of Australasia Conf on Information Security and Privacy (ACISP). Berlin: Springer, 2006: 207−222

    [11] 中国国家标准化管理委员会. GM/T0044−2016 信息安全技术 SM9标识密码算法 第2部分: 数字签名算法[S]. 北京: 中国标准出版社, 2016

    National Standardization Management Committee of China. GM/T0044−2016 Information Security Technology SM9 Identity Password Algorithm Part 2: Digital Signature Algorithm [S]. Beijing: China Standard Press, 2016 (in Chinese)

    [12] 赖建昌,黄欣沂,何德彪,等. 国密SM9数字签名和密钥封装算法的安全性分析[J]. 中国科学:信息科学,2021,51(11):1900−1913

    Lai Jianchang, Huang Xinyi, He Debiao, et al. Security analysis of national secret SM9 digital signature and key encapsulation algorithm[J]. SCIENTIA SINICA Informationis, 2021, 51(11): 1900−1913 (in Chinese)

    [13] 朱留富,李继国,赖建昌等. 基于商密SM9的属性基在线/离线签名方案[J]. 计算机研究与发展,2023,60(2):362−370

    Zhu Liufu, Li Jiguo, Lai Jianchang, et al. Attribute-based online/offline signature scheme based on commercial secret SM9[J]. Journal of Computer Research and Development, 2023, 60(2): 362−370 (in Chinese)

    [14] 赖建昌,黄欣沂,何德彪. 一种基于商密SM9的高效标识广播加密方案[J]. 计算机学报,2021,44(5):897−907

    Lai Jianchang, Huang Xinyi, He Debiao. An efficient identity broadcast encryption scheme based on commercial secret SM9[J]. Chinese Journal of Computers, 2021, 44(5): 897−907 (in Chinese)

    [15] 张超,彭长根,丁红发,等. 基于国密SM9的可搜索加密方案[J]. 计算机工程,2022,48(7):159−167

    Zhang Chao, Peng Changgen, Ding Hongfa, et al. Searchable encryption scheme based on national secret SM9[J]. Computer Engineering, 2022, 48(7): 159−167 (in Chinese)

    [16] ,彭聪,何德彪,罗敏,等. 基于SM9标识密码算法的环签名方案[J]. 密码学报,2021,8(4):724−734

    Peng Cong, He Debiao, Luo Min, et al. Ring signature scheme based on SM9 identity password algorithm[J]. Journal of Cryptologic Research, 2021, 8(4): 724−734 (in Chinese)

    [17]

    Abe M, Miyako O, Koutarou S. 1-out-of-n signatures from a variety of keys[C] //Proc of Annual Int Conf on the Theory and Application of Cryptology and Information Security (ASIACRYPT). Berlin: Springer, 2002: 415−432

    [18]

    Wong D S, Karyin F, Joseph K L, et al. On the RS-code construction of ring signature schemes and a threshold setting of RST[C] //Proc of Int Conf on Information and Communications Security (ICICS). Berlin: Springer, 2003: 34−46

    [19]

    Wang Shangping, Ma Rui, Zhang Yaling, et al. Ring signature scheme based on multivariate public key cryptosystems[J]. Computers & Mathematics with Applications, 2011, 62(10): 3973−3979

    [20]

    Lyubashevsky V. Lattice signatures without trapdoors[C] //Proc of Int Conf on the Theory and Applications of Cryptographic Techniques (EUROCRYPT). Berlin: Springer, 2012: 738−755

    [21]

    Wang Shangping, Zhao Ru, Zhang Yaling. Lattice-based ring signature scheme under the random oracle model[J]. International Journal of High Performance Computing and Networking, 2018, 11(4): 332−341 doi: 10.1504/IJHPCN.2018.093236

    [22]

    Dodis Y, Aggelos K, Antonio N, et al. Anonymous identification in ad hoc groups[C] //Proc of Int Conf on the Theory and Applications of Cryptographic Techniques (EUROCRYPT). Berlin: Springer, 2004: 609−626

    [23]

    Zhang Fangguo, Kwangjo K. ID-based blind signature and ring signature from pairings[C] //Proc of Annual Int Conf on the Theory and Application of Cryptology and Information Security (ASIACRYPT). Berlin: Springer, 2002: 533−547

    [24]

    Herranz J, Germán S. New identity-based ring signature schemes[C] //Proc of Int Conf on Information and Communications Security (ICICS). Berlin: Springer, 2004: 27−39

    [25]

    Awasthi A K, Sunder L. ID-based ring signature and proxy ring signature schemes from bilinear pairings [EB/OL]. [2005-04-23]. https://arxiv.org/abs/cs/0504097

    [26]

    Nguyen L. Accumulators from bilinear pairings and applications[C] //Proc of the Cryptographer’s Track at RSA Conf (CT-RSA). Berlin: Springer, 2005: 275−292

    [27]

    Chow S, Siu-Ming Y, Lucas C K H. Efficient identity based ring signature[C] //Proc of Int Conf on Applied Cryptography and Network Security (ACNS). Berlin: Springer, 2005: 499−512

    [28] 包嘉斌. 基于SM9标识密码算法的环签密方案设计及其应用研究[D]. 武汉: 武汉大学, 2022

    Bao Jiabin. Design and application research of ring signature encryption scheme based on SM9 identity password algorithm [D]. Wuhan: Wuhan University, 2022 (in Chinese)

    [29] 邓浩明, 彭长根, 丁红发, 等. 基于国密SM9算法的门限环签名方案[J]. 计算机技术与发展, 2022, 32(12): 95−102

    Deng Haoming, Peng Changgen, Ding Hongfa, et al. A threshold ring signature scheme based on GM SM9 algorithm[J]. Computer Technology and Development, 2022, 32(12): 95−102 (in Chinese)

  • 期刊类型引用(0)

    其他类型引用(2)

图(5)  /  表(3)
计量
  • 文章访问数:  274
  • HTML全文浏览量:  86
  • PDF下载量:  149
  • 被引次数: 2
出版历程
  • 收稿日期:  2023-03-31
  • 修回日期:  2023-06-07
  • 网络出版日期:  2023-06-25
  • 刊出日期:  2023-11-14

目录

/

返回文章
返回