CN114070561A - 一种基于sm2算法的零知识证明方法和*** - Google Patents

一种基于sm2算法的零知识证明方法和*** Download PDF

Info

Publication number
CN114070561A
CN114070561A CN202210046827.0A CN202210046827A CN114070561A CN 114070561 A CN114070561 A CN 114070561A CN 202210046827 A CN202210046827 A CN 202210046827A CN 114070561 A CN114070561 A CN 114070561A
Authority
CN
China
Prior art keywords
knowledge proof
user
data type
zero knowledge
zero
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202210046827.0A
Other languages
English (en)
Inventor
罗影
张文科
许莹莹
冷昌琦
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Industrial Information Security Sichuan Innovation Center Co ltd
Original Assignee
Industrial Information Security Sichuan Innovation Center Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Industrial Information Security Sichuan Innovation Center Co ltd filed Critical Industrial Information Security Sichuan Innovation Center Co ltd
Priority to CN202210046827.0A priority Critical patent/CN114070561A/zh
Publication of CN114070561A publication Critical patent/CN114070561A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0869Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3066Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3218Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using proof of knowledge, e.g. Fiat-Shamir, GQ, Schnorr, ornon-interactive zero-knowledge proofs

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Algebra (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Mathematical Physics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Storage Device Security (AREA)

Abstract

本发明提供一种基于SM2算法的零知识证明方法和***,所述方法包括如下步骤:步骤100,证明方用户A生成SM2零知识证明信息;步骤200,证明方用户A发送SM2零知识证明信息;步骤300,验证方用户B验证SM2零知识证明信息。本发明能够解决用户在证明自己知道某个公钥对应的私钥又不希望泄露私钥时,现有零知识证明方案存在的问题。

Description

一种基于SM2算法的零知识证明方法和***
技术领域
本发明涉及信息安全技术领域,具体而言,涉及一种基于SM2算法的零知识证明方法和***。
背景技术
SM2椭圆曲线公钥密码算法(elliptic curve cryptography,ECC)是我国公钥密码算法标准,参见GB/T 32918(所有部分)《信息安全技术 SM2椭圆曲线公钥密码算法》,SM2算法的主要内容包括3部分:数字签名算法、密钥交换协议、公钥加密算法。由于在相同安全强度下ECC比RSA的私钥位长及***参数小得多,这使得ECC比RSA更适合实现到资源严重受限的设备中,如低功耗要求的工业控制设备、移动通信设备、无线通信设备和智能卡等。目前SM2算法正在我国商用密码行业进行大规模应用和推广,2011年3月中国人民银行发布的PBOC3.0规范采用SM2算法增强金融IC卡应用的安全性,国际可信计算组织发布的TPM2.0规范也采纳了SM2算法。
零知识证明(Zero Knowledge Proof)是由S.Goldwasser、S.Micali及C.Rackoff在20世纪80年代初提出的。它指的是证明者能够在不向验证者提供任何有用信息的情况下,使验证者相信某个论断是正确的。零知识证明实质上是一种涉及两方或更多方的协议,即两方或更多方完成一项任务所需采取的一系列步骤。证明者向验证者证明并使其相信自己知道或拥有某一消息,但证明过程不能向验证者泄漏任何关于被证明消息的信息。大量事实证明,零知识证明的应用范围非常广泛,用于验证时可以有效解决许多问题。目前已有大量的零知识证明方案提出,这些方案主要基于区块链、格理论、同态加密等,例如基于轻量级同态加密和零知识证明的区块链隐私保护方案(王瑞锦, 唐榆程, 裴锡凯, 等. 基于轻量级同态加密和零知识证明的区块链隐私保护方案[J]. 计算机科学, 2021, 48(S2):547-551.)、基于区块链与零知识证明的物流隐私保护研究(刘明瑶, 余益民. 基于区块链与零知识证明的物流隐私保护研究[J]. 软件导刊, 2021, 20(05): 153-157.)、基于区块链和零知识证明的能源交易隐私保护(Pop Claudia Daniela, Antal Marcel, CioaraTudor, Anghel Ionut, Salomie Ioan. Block chain and Demand Response: Zero-Knowledge Proofs for Energy Transactions Privacy.[J]. Sensors (Basel,Switzerland),2020,20(19):)、格上零知识证明(邓宇奇. 格上零知识证明及其在区块链中的应用研究[D]. 云南大学, 2020.)。
但是针对上述用户如何证明自己知道某个公钥对应的私钥又不希望泄露私钥的问题,现有零知识证明方案存在如下不足:
1、现有方案主要基于区块链、基于同态、基于格等,由于理论复杂,导致计算量大,消耗证明方和验证方大量的资源,如已有的格上零知识证明和在区块链中应用的方案;此外,这些方案还要占用大量的传输资源,传输量大,不利于实施,特别不利于工业控制***、物联网等资源受限、实时性要求高、能耗限制严格的应用场景。
2、现有方案需要的交互次数较多,比如需要五轮才能完成的零知识身份认证方案;交互次数越多越容易导致异常发生,也更加容易受到网络拥塞的影响导致方案中断,无法满足工业控制***等对实时性要求高的应用场景。
3、现有方案需要数字证书或PKI***的支持,在工业控制***、嵌入式***、物联网等应用场景部署PKI是一个过于重量级的应用方式,负担太重,不利于部署实施,也会对***的稳定性、能源供应、电池续航带来巨大的挑战。
4、现有方案中未发现与我国现有SM2算法进行复用和兼容的方案;如果使用过多的密码体系必将增加应用***安全解决方案的复杂性和部署实施的难度,对***的稳定运行也会增加很多不确定因素。因此,能兼容我国现有的SM2、SM3等算法的方案是一种更加实用、更易推广的方案。
发明内容
本发明旨在提供一种基于SM2算法的零知识证明方法和***,以解决上述用户在证明自己知道某个公钥对应的私钥又不希望泄露私钥时,现有零知识证明方案存在的问题。
本发明提供的一种基于SM2算法的零知识证明方法,包括如下步骤:
步骤100,证明方用户A生成SM2零知识证明信息;
步骤200,证明方用户A发送SM2零知识证明信息;
步骤300,验证方用户B验证SM2零知识证明信息。
在一些实施例中,步骤100中证明方用户A生成SM2零知识证明信息的方法包括如下子步骤:
步骤110,证明方用户A执行预处理操作:
如果证明方用户A没有预存Z A 值,则按SM2标准第1部分给出的数据类型转换方式将椭圆曲线***参数abG点(x G ,y G )的两个坐标和P A 点(x A ,y A )的两个坐标的数据类型转换为字节串,并计算:
Z A =H(ENTL A ||ID A ||a||b||x G ||y G ||x A ||y A );
其中,Z A 为证明方用户A的可辨别标识ID A 、椭圆曲线***参数和证明方用户A的公钥P A 的杂凑值;ENTL A 为可辨别标识ID A 的比特长度entlen A 转为两个字节的字节串;ab均为F q 中的元素;F q 为包含q个元素的有限域;G点为椭圆曲线的一个基点,其阶为素数;H()为密码杂凑函数;
步骤120,证明方用户A执行SM2零知识证明信息生成操作:
步骤121,用随机数发生器产生随机数k∈[1,n-1];其中,nG点的阶,k是正整数;
步骤122,计算椭圆曲线点(x 1,y 1)=[k]G,[k]G表示G点的k倍点,即kG点相加,并按SM2标准第1部分给出的数据类型转换方式将x 1y 1的数据类型转换为字节串;
步骤123,计算
Figure 734328DEST_PATH_IMAGE001
;若
Figure 983169DEST_PATH_IMAGE002
,则返回步骤121;否则,按SM2标准第1部分给出的数据类型转换方式将
Figure DEST_PATH_IMAGE003
的数据类型转换为整数,然后执行步骤124;其中,EXT为可选的协议扩展信息;
步骤124,计算
Figure 131254DEST_PATH_IMAGE004
;若
Figure DEST_PATH_IMAGE005
,则返回步骤121,否则执行步骤125;其中,d A 为证明方用户A的私钥,modn表示模n运算;
步骤125,按SM2标准第1部分给出的数据类型转换方式将
Figure 14896DEST_PATH_IMAGE003
Figure 488603DEST_PATH_IMAGE006
的数据类型转换为字节串,返回证明方用户A的公钥P A 的SM2零知识证明信息
Figure DEST_PATH_IMAGE007
在一些实施例中,所述证明方用户A的公钥P A 在执行所述零知识证明方法前发送给验证方用户B,或者在执行步骤200中证明方用户A发送SM2零知识证明信息
Figure 457696DEST_PATH_IMAGE008
时,将公钥P A 和SM2零知识证明信息
Figure DEST_PATH_IMAGE009
一起发送给验证方用户B。
在一些实施例中,步骤200中证明方用户A发送SM2零知识证明信息时,需要将SM2零知识证明信息以一种明确无歧义的编码方式发送给验证方用户B,该编码方式明确地标识各个字段的边界和长度;
如果是将证明方用户A的公钥P A 和SM2零知识证明信息
Figure 940630DEST_PATH_IMAGE007
一起发送给验证方用户B时,则将证明方用户A的公钥P A 和SM2零知识证明信息
Figure 413199DEST_PATH_IMAGE007
一起以一种明确无歧义的编码方式发送给验证方用户B,该编码方式明确地标识各个字段的边界和长度。
在一些实施例中,步骤300中验证方用户B验证SM2零知识证明信息的方法包括如下子步骤:
步骤310,验证方用户B首先执行如下预处理:
当证明方用户A的公钥P A 在执行所述零知识证明方法前发送给验证方用户B并且将SM2零知识证明信息
Figure 792228DEST_PATH_IMAGE009
以一种明确无歧义的编码方式发送给验证方用户B时,验证方用户B解码出SM2零知识证明信息
Figure 750082DEST_PATH_IMAGE009
;当将证明方用户A的公钥P A 和SM2零知识证明信息
Figure 239969DEST_PATH_IMAGE010
一起以一种明确无歧义的编码方式发送给验证方用户B时,验证方用户B解码出公钥P A 和SM2零知识证明信息
Figure 98204DEST_PATH_IMAGE009
如果解码失败或数据长度异常,则验证不通过;
如果解码成功且数据长度正常,则按SM2标准第1部分给出的数据类型转换方式将椭圆曲线***参数abG点(x G ,y G )的两个坐标和P A 点(x A ,y A )的两个坐标的数据类型转换为字节串,并计算:
Z A =H(ENTL A ||ID A ||a||b||x G ||y G ||x A ||y A );
步骤320,验证方用户B执行SM2零知识证明信息验证操作:
步骤321,按SM2标准第1部分给出的数据类型转换方式将
Figure DEST_PATH_IMAGE011
的数据类型转换为整数;检验
Figure 913713DEST_PATH_IMAGE012
是否成立,若不成立则验证不通过,若成立则执行步骤322;
步骤322,按SM2标准第1部分给出的数据类型转换方式将
Figure DEST_PATH_IMAGE013
的数据类型转换为整数;检验
Figure 857398DEST_PATH_IMAGE014
是否成立,若不成立则验证不通过,若成立则执行步骤323;
步骤323,计算
Figure DEST_PATH_IMAGE015
;若t=0则验证不通过,否则执行步骤324;
步骤324,计算
Figure 416556DEST_PATH_IMAGE016
;按SM2标准第1部分给出的数据类型转换方式将
Figure 129297DEST_PATH_IMAGE017
Figure 850128DEST_PATH_IMAGE018
的数据类型转换为字节串;其中,
Figure DEST_PATH_IMAGE019
表示G点的
Figure 48153DEST_PATH_IMAGE013
倍点,即
Figure 879843DEST_PATH_IMAGE013
G点相加;[t]表示P A 点的t倍点,即tP A 点相加;
步骤325,计算
Figure 181512DEST_PATH_IMAGE020
;按SM2标准第1部分给出的数据类型转换方式将
Figure DEST_PATH_IMAGE021
的数据类型转换为整数;检验
Figure 604403DEST_PATH_IMAGE022
是否成立,若成立则验证通过;否则验证不通过。作为优选,密码杂凑函数H()为SM3算法。
本发明还提供一种基于SM2算法的零知识证明***,包括:相连接的零知识证明信息生成子***和零知识证明信息验证子***;
所述零知识证明信息生成子***部署在证明方,用于证明方用户A生成并发送SM2零知识证明信息;所述零知识证明信息生成子***包括第一控制调度模块以及与第一控制调度模块连接的第一杂凑模块、第一SM2模块、第一传输数据编解码模块和随机数发生器模块;
所述零知识证明信息验证子***部署在验证方,用于验证方用户B验证SM2零知识证明信息;所述零知识证明信息验证子***包括第二控制调度模块以及与第二控制调度模块连接的第二杂凑模块、第二SM2模块和第二传输数据编解码模块。
综上所述,由于采用了上述技术方案,本发明的有益效果是:
1、本发明提出的方法和***无需数字证书或PKI***的支持,即可以去除冗余的PKI***,轻量化安装,这一优势使得本发明特别适合在工业控制***、嵌入式***、物联网等资源严重受限或难以部署PKI的应用场景中部署实施。
2、本发明提出的方法和***采用非交互式通信,即双方无需来回交换信息,仅需一次单向数据传输即可,避免了网络传输拥塞导致的执行延时,使得协议的执行更加流畅、高效、快捷。也使得本发明的计算量比传统的基于区块链、同态、格的零知识证明算法的交互次数和传输数据降低了很多。
3、本发明提出的方法和***采用零知识证明技术,不会泄露证明方私钥的额外信息,这使得本发明更加安全,且SM2算法低层原理的安全性也为本发明的安全性提供了进一步的保证。
4、本发明提出的方法和***兼容SM2算法,本发明复用了SM2算法的多个部件,比如Z A 值、ID A 等,本发明的所有执行步骤都可以由SM2的低层算法库支持,这使得本发明更易于软硬件实现,方便在现有的支持SM2算法的产品上进行简单的升级改造。这也使得本发明是目前唯一的一个兼具非交互式通信和兼容SM2的零知识证明方法。
5、本发明提出的方法和***计算量很小,即证明方仅需1次多倍点乘,验证方仅需1次执行1次特定的双多倍点乘
Figure DEST_PATH_IMAGE023
,通过研究表明,该运算的计算量大约为1.2次多倍点乘。这使得本发明的计算量比传统的基于区块链、同态、格的零知识证明算法的计算量降低了很多。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例中的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本发明实施例1的基于SM2算法的零知识证明方法的总体流程图。
图2为本发明实施例1的基于SM2算法的零知识证明方法中证明方用户A生成SM2零知识证明信息的流程图。
图3为本发明实施例1的基于SM2算法的零知识证明方法中验证方用户B验证SM2零知识证明信息的流程图。
图4为本发明实施例2的基于SM2算法的零知识证明***的结构图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。
因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例1
首先说明本发明使用的记号、缩写与符号:
A:证明者用户A
B:验证者用户B
ab:有限域F q 中的元素,它们定义有限域F q 上的一条椭圆曲线E
d A :用户A的私钥。
E(F q ):有限域F q 上椭圆曲线E的所有有理点(包括无穷远点或零点O)组成的集合。
F q :包含q个元素的有限域。
G:椭圆曲线E的一个基点,其阶为素数。
H():密码杂凑函数,可以选择为SM3算法,SM3算法的详情参见GB/T 32905《信息安全技术 SM3密码杂凑算法》。
ID A :用户A的可辨别标识。
mod n:模n运算。例如,23 mod 7 = 2。
nG点的阶(n是#E(F q )的素因子)。
O:椭圆曲线E上的无穷远点或零点,是椭圆曲线加法群的单位元。
P A :用户A的公钥P A =(x A ,y A )。
x||yxy的拼接,其中xy可以是比特串或字节串。
Z A :证明方用户A的可辨别标识ID A 、椭圆曲线***参数和证明方用户A的公钥P A 的杂凑值。
[k]P:椭圆曲线上点Pk倍点,即[k]PkP点相加,k是正整数。
[x,y]:大于或等于x且小于或等于y的整数的集合。
#E(F q ):E(F q )上点的数目,称为椭圆曲线E(F q )的阶。
EXT:可选的协议扩展信息,可以为空串,也可以包含用户额外信息。当EXT为空串时可以省略此参数。
证明方用户A在没有或者不使用PKI(Public Key Infrastructure,公钥基础设施)***及数字证书***的前提下,一方面希望向验证方用户B证明自己知道公钥P A =[d A ]G对应的私钥d A ,另一方面又不想泄露私钥d A 的信息,为此,如图1所示,本实施例提出一种基于SM2算法的零知识证明方法,包括如下步骤:
步骤100,证明方用户A生成SM2零知识证明信息;
其中,证明方用户A具有如下信息:
密钥对,包括私钥d A 和公钥P A =[d A ]G=(x A ,y A )。
可辨别标识ID A ,其比特长度为entlen A
ENTL A ,可辨别标识ID A 的比特长度entlen A 转为两个字节的字节串。例证明方用户A的身份是[email protected],用GB/T 1988提供的编码,ID A 是“414C 49434531 3233405941484F4F 2E434F4D”,共有18个字节,entlen A =18×8=144,ENTL A =“0090”。
证明方用户A的杂凑值Z A ,按SM2标准第1部分给出的数据类型转换方式将椭圆曲线***参数abG的两个坐标(x G ,y G )和P A 的两个坐标(x A ,y A )的数据类型转换为字节串,可计算得到:
Z A =H(ENTL A ||ID A ||a||b||x G ||y G ||x A ||y A )。
EXT:可选的协议扩展信息,可以为空串,也可以包含时间戳、用户email通信方式等信息。
如图2所示,步骤100中证明方用户A生成SM2零知识证明信息的方法包括如下子步骤:
步骤110,证明方用户A执行预处理操作:
如果证明方用户A没有预存Z A 值,则按SM2标准第1部分给出的数据类型转换方式将椭圆曲线***参数abG点(x G ,y G )的两个坐标和P A 点(x A ,y A )的两个坐标的数据类型转换为字节串,并计算:
Z A =H(ENTL A ||ID A ||a||b||x G ||y G ||x A ||y A );
步骤120,证明方用户A执行SM2零知识证明信息生成操作:
步骤121,用随机数发生器产生随机数k∈[1,n-1];
步骤122,计算椭圆曲线点(x 1,y 1)=[k]G,并按SM2标准第1部分给出的数据类型转换方式将x 1y 1的数据类型转换为字节串;
步骤123,计算
Figure 257101DEST_PATH_IMAGE024
;若
Figure DEST_PATH_IMAGE025
,则返回步骤121;否则,按SM2标准第1部分给出的数据类型转换方式将
Figure 423640DEST_PATH_IMAGE003
的数据类型转换为整数,然后执行步骤124;其中,EXT为可选的协议扩展信息;
步骤124,计算
Figure 845394DEST_PATH_IMAGE026
;若
Figure DEST_PATH_IMAGE027
,则返回步骤121,否则执行步骤125;其中,d A 为证明方用户A的私钥,modn表示模n运算;
步骤125,按SM2标准第1部分给出的数据类型转换方式将
Figure 173607DEST_PATH_IMAGE003
Figure 313602DEST_PATH_IMAGE006
的数据类型转换为字节串,返回证明方用户A的公钥P A 的SM2零知识证明信息
Figure 982699DEST_PATH_IMAGE007
需要说明的是,证明方用户A应在执行步骤100时显式或隐式地标明各个字段的边界和长度。
步骤200,证明方用户A发送SM2零知识证明信息;即证明方用户A将公钥P A 的SM2零知识证明信息
Figure 258960DEST_PATH_IMAGE009
发送给验证方用户B。
其中,所述证明方用户A的公钥P A 在执行所述零知识证明方法前发送给验证方用户B,或者在执行步骤200中证明方用户A发送SM2零知识证明信息
Figure 492495DEST_PATH_IMAGE007
时一起发送给验证方用户B。
进一步,步骤200中证明方用户A发送SM2零知识证明信息时,需要将SM2零知识证明信息以一种明确无歧义的编码方式发送给验证方用户B,该编码方式明确地标识各个字段的边界和长度;
如果是将证明方用户A的公钥P A 和SM2零知识证明信息
Figure 119786DEST_PATH_IMAGE007
一起发送给验证方用户B时,则将证明方用户A的公钥P A 和SM2零知识证明信息
Figure 96969DEST_PATH_IMAGE007
一起以一种明确无歧义的编码方式发送给验证方用户B,该编码方式可以明确地标识各个字段的边界和长度。
步骤300,验证方用户B验证SM2零知识证明信息,如图3所示,包括如下子步骤:
步骤310,验证方用户B首先执行如下预处理:
当证明方用户A的公钥P A 在执行所述零知识证明方法前发送给验证方用户B并且将SM2零知识证明信息
Figure 493315DEST_PATH_IMAGE009
以一种明确无歧义的编码方式发送给验证方用户B时,验证方用户B解码出SM2零知识证明信息
Figure 897752DEST_PATH_IMAGE009
;当将证明方用户A的公钥P A 和SM2零知识证明信息
Figure 481180DEST_PATH_IMAGE010
一起以一种明确无歧义的编码方式发送给验证方用户B时,验证方用户B先解码出公钥P A 和SM2零知识证明信息
Figure 527633DEST_PATH_IMAGE009
如果解码失败或数据长度异常,则验证不通过;
如果解码成功且数据长度正常,则按SM2标准第1部分给出的数据类型转换方式将椭圆曲线***参数abG点(x G ,y G )的两个坐标和P A 点(x A , y A )的两个坐标的数据类型转换为字节串,并计算:
Z A =H(ENTL A ||ID A ||a||b||x G ||y G ||x A ||y A );
步骤320,验证方用户B执行SM2零知识证明信息验证操作:
步骤321,按SM2标准第1部分给出的数据类型转换方式将
Figure 778486DEST_PATH_IMAGE011
的数据类型转换为整数;检验
Figure 353824DEST_PATH_IMAGE012
是否成立,若不成立则验证不通过,若成立则执行步骤322;
步骤322,按SM2标准第1部分给出的数据类型转换方式将
Figure 690127DEST_PATH_IMAGE013
的数据类型转换为整数;检验
Figure 9113DEST_PATH_IMAGE014
是否成立,若不成立则验证不通过,若成立则执行步骤323;
步骤323,计算
Figure 615937DEST_PATH_IMAGE015
;若t=0则验证不通过,否则执行步骤324;
步骤324,计算
Figure 362176DEST_PATH_IMAGE023
;按SM2标准第1部分给出的数据类型转换方式将
Figure 451355DEST_PATH_IMAGE017
Figure 42873DEST_PATH_IMAGE018
的数据类型转换为字节串;其中,
Figure 533898DEST_PATH_IMAGE019
表示G点的
Figure 451038DEST_PATH_IMAGE013
倍点,即
Figure 496354DEST_PATH_IMAGE013
G点相加;[t]表示P A 点的t倍点,即tP A 点相加;
步骤325,计算
Figure 422722DEST_PATH_IMAGE020
;按SM2标准第1部分给出的数据类型转换方式将
Figure 502674DEST_PATH_IMAGE021
的数据类型转换为整数;检验
Figure 590715DEST_PATH_IMAGE022
是否成立,若成立则验证通过;否则验证不通过。作为优选,密码杂凑函数H()为SM3算法。
以SM3算法为密码杂凑函数H(),EXT为空串为示例:
步骤100,证明方用户A生成SM2零知识证明信息:
步骤110,证明方用户A执行预处理操作:
如果证明方用户A没有预存Z A 值,则按SM2标准第1部分给出的数据类型转换方式将椭圆曲线***参数abG点(x G ,y G )的两个坐标和P A 点(x A ,y A )的两个坐标的数据类型转换为字节串,并计算:
Z A =SM3(ENTL A ||ID A ||a||b||x G ||y G ||x A ||y A );
步骤120,证明方用户A执行SM2零知识证明信息生成操作:
步骤121,用随机数发生器产生随机数k∈[1,n-1];
步骤122,计算椭圆曲线点(x 1,y 1)=[k]G,并按SM2标准第1部分给出的数据类型转换方式将x 1y 1的数据类型转换为字节串;
步骤123,计算
Figure 123328DEST_PATH_IMAGE028
;若
Figure 853386DEST_PATH_IMAGE002
,则返回步骤121;否则,按SM2标准第1部分给出的数据类型转换方式将
Figure 787844DEST_PATH_IMAGE003
的数据类型转换为整数,然后执行步骤124;
步骤124,计算
Figure 548252DEST_PATH_IMAGE004
;若
Figure 568161DEST_PATH_IMAGE005
,则返回步骤121,否则执行步骤125;
步骤125,按SM2标准第1部分给出的数据类型转换方式将
Figure 101910DEST_PATH_IMAGE003
Figure 890875DEST_PATH_IMAGE006
的数据类型转换为字节串,返回证明方用户A的公钥P A 的SM2零知识证明信息
Figure DEST_PATH_IMAGE029
步骤200,证明方用户A将公钥P A =(x A ,y A )和公钥P A 的SM2零知识证明信息
Figure 586298DEST_PATH_IMAGE030
发送给验证方用户B。其中,将公钥P A =(x A ,y A )和公钥P A 的SM2零知识证明信息
Figure 93503DEST_PATH_IMAGE029
编码为
Figure DEST_PATH_IMAGE031
;公钥P A 的X坐标x A 、公钥P A 的Y坐标y A
Figure 430943DEST_PATH_IMAGE003
Figure 74414DEST_PATH_IMAGE006
都是长度为32字节的字节串,ENTL A 是长度为2字节的字节串,ID A 是长度为ENTL A 字节的字节串。
步骤300,验证方用户B验证SM2零知识证明信息:
步骤310,验证方用户B首先执行如下预处理:
当收到编码信息
Figure 940739DEST_PATH_IMAGE031
后,验证方用户B先解码出公钥P A 和SM2零知识证明信息
Figure 935240DEST_PATH_IMAGE032
如果解码失败或数据长度异常,则验证不通过;
如果解码成功且数据长度正常,则按SM2标准第1部分给出的数据类型转换方式将椭圆曲线***参数abG点(x G ,y G )的两个坐标和P A 点(x A , y A )的两个坐标的数据类型转换为字节串,并计算:
Z A =SM3(ENTL A ||ID A ||a||b||x G ||y G ||x A ||y A );
步骤320,验证方用户B执行SM2零知识证明信息验证操作:
步骤321,按SM2标准第1部分给出的数据类型转换方式将
Figure 545213DEST_PATH_IMAGE011
的数据类型转换为整数;检验
Figure 544655DEST_PATH_IMAGE012
是否成立,若不成立则验证不通过,若成立则执行步骤322;
步骤322,按SM2标准第1部分给出的数据类型转换方式将
Figure 581881DEST_PATH_IMAGE013
的数据类型转换为整数;检验
Figure 63678DEST_PATH_IMAGE014
是否成立,若不成立则验证不通过,若成立则执行步骤323;
步骤323,计算
Figure 946184DEST_PATH_IMAGE015
;若t=0则验证不通过,否则执行步骤324;
步骤324,计算
Figure 829826DEST_PATH_IMAGE023
;按SM2标准第1部分给出的数据类型转换方式将
Figure 37953DEST_PATH_IMAGE017
Figure 741467DEST_PATH_IMAGE018
的数据类型转换为字节串;
步骤325,计算
Figure 958822DEST_PATH_IMAGE033
;按SM2标准第1部分给出的数据类型转换方式将
Figure 431392DEST_PATH_IMAGE034
的数据类型转换为整数;检验
Figure 810420DEST_PATH_IMAGE035
是否成立,若成立则验证通过;否则验证不通过。
实施例2
为了实现实施例1的基于SM2算法的零知识证明方法,如图4所示,本实施例提出一种基于SM2算法的零知识证明***,包括:相连接的零知识证明信息生成子***和零知识证明信息验证子***;
所述零知识证明信息生成子***部署在证明方,用于证明方用户A生成并发送SM2零知识证明信息;具体地,所述零知识证明信息生成子***包括第一控制调度模块以及与第一控制调度模块连接的第一杂凑模块、第一SM2模块、第一传输数据编解码模块和随机数发生器模块;
所述零知识证明信息生成子***中各模块的功能如下:
随机数发生器模块:产生高质量且安全的随机数。
第一SM2模块:执行SM2算法中涉及的整数运算、椭圆曲线多倍点运算、数据类型转化(如按SM2标准第1部分给出的数据类型转换方式执行整数和字节串的互转等)、数据比较等。此处的第一SM2模块可以是提供上述功能的SM2标准算法密码模块。
第一杂凑模块:执行杂凑运算。
第一传输数据编解码模块:对待传输数据执行数据编码,对收到的编码数据执行解码。
第一控制调度模块:对整个执行流程进行控制调度,并接收输入数据,传出输出数据。
所述零知识证明信息验证子***部署在验证方,用于验证方用户B验证SM2零知识证明信息;具体地,所述零知识证明信息验证子***包括第二控制调度模块以及与第二控制调度模块连接的第二杂凑模块、第二SM2模块和第二传输数据编解码模块。
所述零知识证明信息验证子***中各模块的功能如下:
第二SM2模块:执行SM2算法中涉及的整数运算、椭圆曲线多倍点运算、数据类型转化(如按SM2标准第1部分给出的数据类型转换方式执行整数和字节串的互转等)、数据比较等。此处的第二SM2模块可以是提供上述功能的SM2标准算法密码模块。
第二杂凑模块:执行杂凑运算。
第二传输数据编解码模块:对待传输数据执行数据编码,对收到的编码数据执行解码。
第二控制调度模块:对整个执行流程进行控制调度,并接收输入数据,传出输出数据。
对应所述基于SM2算法的零知识证明方法的基于SM2算法的零知识证明***的运行原理如下:
首先,证明方用户A将椭圆曲线***参数、可辨别标识ID A 、公钥P A 、私钥d A 、可选的扩展信息EXT输入零知识证明信息生成子***,零知识证明信息生成子***按如下步骤产生公钥P A 的SM2零知识证明信息。
步骤SYS-A1:如果证明方用户A没有预存Z A 值,则第一控制调度模块调用第一SM2模块按SM2标准第1部分给出的数据类型转换方式将椭圆曲线***参数abG点(x G ,y G )的两个坐标和P A 点(x A ,y A )的两个坐标的数据类型转换为字节串,然后控制调度模块调用杂凑模块计算:
Z A =H(ENTL A ||ID A ||a||b||x G ||y G ||x A ||y A )。
步骤SYS-A2:第一控制调度模块调用随机数发生器模块产生随机数k∈[1,n-1];
步骤SYS-A3:第一控制调度模块调用第一SM2模块计算椭圆曲线点(x 1,y 1)=[k]G,然后第一控制调度模块调用第一SM2模块按SM2标准第1部分给出的数据类型转换方式将x 1y 1的数据类型转换为字节串;
步骤SYS-A4:第一控制调度模块调用第一杂凑模块计算
Figure 1230DEST_PATH_IMAGE036
;然后第一控制调度模块调用第一SM2模块判断
Figure 756697DEST_PATH_IMAGE002
是否成立,若成立则返回步骤SYS-A2;否则,第一控制调度模块调用第一SM2模块按SM2标准第1部分给出的数据类型转换方式将
Figure 349352DEST_PATH_IMAGE037
的数据类型转换为整数,并执行步骤SYS-A5;
步骤SYS-A5:第一控制调度模块调用第一SM2模块计算
Figure 129308DEST_PATH_IMAGE038
;然后第一控制调度模块调用第一SM2模块判断
Figure 807414DEST_PATH_IMAGE005
是否成立,若成立则返回步骤SYS-A2;否则执行步骤SYS-A6;
步骤SYS-A6:第一控制调度模块调用第一SM2模块按SM2标准第1部分给出的数据类型转换方式将
Figure 366572DEST_PATH_IMAGE003
Figure 813734DEST_PATH_IMAGE006
的数据类型转换为字节串,然后第一控制调度模块调用第一传输数据编解码模块对公钥P A 和公钥P A 的SM2零知识证明信息
Figure 534565DEST_PATH_IMAGE007
进行编码后输出。
然后,证明方用户A将零知识证明信息生成子***输出的已编码的公钥P A 和公钥P A 的SM2零知识证明信息
Figure 699967DEST_PATH_IMAGE009
发送给验证方用户B。
最后,为验证公钥P A 的SM2零知识证明信息
Figure 531657DEST_PATH_IMAGE007
,验证方用户B执行如下步骤:
步骤SYS-B1:第二控制调度模块调用第二传输数据编解码模块,对收到的已编码的公钥P A 和公钥P A 的SM2零知识证明信息
Figure 98904DEST_PATH_IMAGE007
进行解码,得到公钥P A 和SM2零知识证明信息
Figure 990637DEST_PATH_IMAGE009
,如果解析失败或数据长度异常,则输出验证不通过;
步骤SYS-B2:解码成功且数据长度正常后,第二控制调度模块调用第二SM2模块按SM2标准第1部分给出的数据类型转换方式将椭圆曲线方程参数abG点(x G ,y G )的两个坐标和P A 点(x A ,y A )的数据类型转换为字节串,并计算:
Z A =H(ENTL A ||ID A ||a||b||x G ||y G ||x A ||y A );
步骤SYS-B3:第二控制调度模块调用第二SM2模块按SM2标准第1部分给出的数据类型转换方式将
Figure 643335DEST_PATH_IMAGE003
的数据类型转换为整数;然后第二控制调度模块调用第二SM2模块检验
Figure 278716DEST_PATH_IMAGE039
是否成立,若不成立则输出验证不通过,若成立则执行步骤SYS-B4;
步骤SYS-B4:第二控制调度模块调用第二SM2模块按SM2标准第1部分给出的数据类型转换方式将
Figure 700470DEST_PATH_IMAGE013
的数据类型转换为整数;然后第二控制调度模块调用第二SM2模块检验
Figure 763104DEST_PATH_IMAGE040
是否成立,若不成立则输出验证不通过,若成立则执行步骤SYS-B5;
步骤SYS-B5:第二控制调度模块调用第二SM2模块计算
Figure 404563DEST_PATH_IMAGE041
;接下来第二控制调度模块调用第二SM2模块判断t=0是否成立,若成立则输出验证不通过,否则执行步骤SYS-B6;
步骤SYS-B6:第二控制调度模块调用第二SM2模块计算
Figure 578055DEST_PATH_IMAGE042
;然后第二控制调度模块调用第二SM2模块按SM2标准第1部分给出的数据类型转换方式将
Figure 854316DEST_PATH_IMAGE017
Figure 87851DEST_PATH_IMAGE018
的数据类型转换为字节串;
步骤SYS-B7:第二控制调度模块调用第二杂凑模块计算
Figure 715142DEST_PATH_IMAGE043
;然后第二控制调度模块调用第二SM2模块按SM2标准第1部分给出的数据类型转换方式将
Figure 957904DEST_PATH_IMAGE021
的数据类型转换为整数;接着,第二控制调度模块调用第二SM2模块检验
Figure 88671DEST_PATH_IMAGE022
是否成立,若成立则输出验证通过;否则输出验证不通过。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (7)

1.一种基于SM2算法的零知识证明方法,其特征在于,包括如下步骤:
步骤100,证明方用户A生成SM2零知识证明信息;
步骤200,证明方用户A发送SM2零知识证明信息;
步骤300,验证方用户B验证SM2零知识证明信息。
2.根据权利要求1所述的基于SM2算法的零知识证明方法,其特征在于,步骤100中证明方用户A生成SM2零知识证明信息的方法包括如下子步骤:
步骤110,证明方用户A执行预处理操作:
如果证明方用户A没有预存Z A 值,则按SM2标准第1部分给出的数据类型转换方式将椭圆曲线***参数abG点(x G ,y G )的两个坐标和P A 点(x A ,y A )的两个坐标的数据类型转换为字节串,并计算:
Z A =H(ENTL A ||ID A ||a||b||x G ||y G ||x A ||y A );
其中,Z A 为证明方用户A的可辨别标识ID A 、椭圆曲线***参数和证明方用户A的公钥P A 的杂凑值;ENTL A 为可辨别标识ID A 的比特长度entlen A 转为两个字节的字节串;ab均为F q 中的元素;F q 为包含q个元素的有限域;G点为椭圆曲线的一个基点,其阶为素数;H()为密码杂凑函数;
步骤120,证明方用户A执行SM2零知识证明信息生成操作:
步骤121,用随机数发生器产生随机数k∈[1,n-1];其中,nG点的阶,k是正整数;
步骤122,计算椭圆曲线点(x 1,y 1)=[k]G,[k]G表示G点的k倍点,即kG点相加,并按SM2标准第1部分给出的数据类型转换方式将x 1y 1的数据类型转换为字节串;
步骤123,计算
Figure 123699DEST_PATH_IMAGE001
;若
Figure 640131DEST_PATH_IMAGE002
,则返回步骤121;否则,按SM2标准第1部分给出的数据类型转换方式将
Figure 716933DEST_PATH_IMAGE003
的数据类型转换为整数,然后执行步骤124;其中,EXT为可选的协议扩展信息;
步骤124,计算
Figure 53237DEST_PATH_IMAGE004
;若
Figure 637802DEST_PATH_IMAGE005
,则返回步骤121,否则执行步骤125;其中,d A 为证明方用户A的私钥,modn表示模n运算;
步骤125,按SM2标准第1部分给出的数据类型转换方式将
Figure 743161DEST_PATH_IMAGE003
Figure 489400DEST_PATH_IMAGE006
的数据类型转换为字节串,返回证明方用户A的公钥P A 的SM2零知识证明信息
Figure 313000DEST_PATH_IMAGE007
3.根据权利要求2所述的基于SM2算法的零知识证明方法,其特征在于,所述证明方用户A的公钥P A 在执行所述零知识证明方法前发送给验证方用户B,或者在执行步骤200中证明方用户A发送SM2零知识证明信息
Figure 435677DEST_PATH_IMAGE008
时,将公钥P A 和SM2零知识证明信息
Figure 395542DEST_PATH_IMAGE007
一起发送给验证方用户B。
4.根据权利要求3所述的基于SM2算法的零知识证明方法,其特征在于,步骤200中证明方用户A发送SM2零知识证明信息时,需要将SM2零知识证明信息以一种明确无歧义的编码方式发送给验证方用户B,该编码方式明确地标识各个字段的边界和长度;
如果是将证明方用户A的公钥P A 和SM2零知识证明信息
Figure 578262DEST_PATH_IMAGE007
一起发送给验证方用户B时,则将证明方用户A的公钥P A 和SM2零知识证明信息
Figure 889158DEST_PATH_IMAGE007
一起以一种明确无歧义的编码方式发送给验证方用户B,该编码方式明确地标识各个字段的边界和长度。
5.根据权利要求4所述的基于SM2算法的零知识证明方法,其特征在于,步骤300中验证方用户B验证SM2零知识证明信息的方法包括如下子步骤:
步骤310,验证方用户B首先执行如下预处理:
当证明方用户A的公钥P A 在执行所述零知识证明方法前发送给验证方用户B并且将SM2零知识证明信息
Figure 549946DEST_PATH_IMAGE008
以一种明确无歧义的编码方式发送给验证方用户B时,验证方用户B解码出SM2零知识证明信息
Figure 629898DEST_PATH_IMAGE008
;当将证明方用户A的公钥P A 和SM2零知识证明信息
Figure 717939DEST_PATH_IMAGE009
一起以一种明确无歧义的编码方式发送给验证方用户B时,验证方用户B解码出公钥P A 和SM2零知识证明信息
Figure 984973DEST_PATH_IMAGE008
如果解码失败或数据长度异常,则验证不通过;
如果解码成功且数据长度正常,则按SM2标准第1部分给出的数据类型转换方式将椭圆曲线***参数abG点(x G ,y G )的两个坐标和P A 点(x A ,y A )的两个坐标的数据类型转换为字节串,并计算:
Z A =H(ENTL A ||ID A ||a||b||x G ||y G ||x A ||y A );
步骤320,验证方用户B执行SM2零知识证明信息验证操作:
步骤321,按SM2标准第1部分给出的数据类型转换方式将
Figure 918293DEST_PATH_IMAGE010
的数据类型转换为整数;检验
Figure 587172DEST_PATH_IMAGE011
是否成立,若不成立则验证不通过,若成立则执行步骤322;
步骤322,按SM2标准第1部分给出的数据类型转换方式将
Figure 846115DEST_PATH_IMAGE012
的数据类型转换为整数;检验
Figure 447384DEST_PATH_IMAGE013
是否成立,若不成立则验证不通过,若成立则执行步骤323;
步骤323,计算
Figure 981133DEST_PATH_IMAGE014
;若t=0则验证不通过,否则执行步骤324;
步骤324,计算
Figure 770098DEST_PATH_IMAGE015
;按SM2标准第1部分给出的数据类型转换方式将
Figure 199942DEST_PATH_IMAGE016
Figure 707147DEST_PATH_IMAGE017
的数据类型转换为字节串;其中,
Figure 779008DEST_PATH_IMAGE018
表示G点的
Figure 422479DEST_PATH_IMAGE012
倍点,即
Figure 554383DEST_PATH_IMAGE012
G点相加;[t]表示P A 点的t倍点,即tP A 点相加;
步骤325,计算
Figure 784769DEST_PATH_IMAGE019
;按SM2标准第1部分给出的数据类型转换方式将
Figure 394742DEST_PATH_IMAGE020
的数据类型转换为整数;检验
Figure 423878DEST_PATH_IMAGE021
是否成立,若成立则验证通过;否则验证不通过。
6.根据权利要求1所述的基于SM2算法的零知识证明方法,其特征在于,密码杂凑函数H()为SM3算法。
7.一种基于SM2算法的零知识证明***,其特征在于,包括:相连接的零知识证明信息生成子***和零知识证明信息验证子***;
所述零知识证明信息生成子***部署在证明方,用于证明方用户A生成并发送SM2零知识证明信息;所述零知识证明信息生成子***包括第一控制调度模块以及与第一控制调度模块连接的第一杂凑模块、第一SM2模块、第一传输数据编解码模块和随机数发生器模块;
所述零知识证明信息验证子***部署在验证方,用于验证方用户B验证SM2零知识证明信息;所述零知识证明信息验证子***包括第二控制调度模块以及与第二控制调度模块连接的第二杂凑模块、第二SM2模块和第二传输数据编解码模块。
CN202210046827.0A 2022-01-17 2022-01-17 一种基于sm2算法的零知识证明方法和*** Pending CN114070561A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210046827.0A CN114070561A (zh) 2022-01-17 2022-01-17 一种基于sm2算法的零知识证明方法和***

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210046827.0A CN114070561A (zh) 2022-01-17 2022-01-17 一种基于sm2算法的零知识证明方法和***

Publications (1)

Publication Number Publication Date
CN114070561A true CN114070561A (zh) 2022-02-18

Family

ID=80231045

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210046827.0A Pending CN114070561A (zh) 2022-01-17 2022-01-17 一种基于sm2算法的零知识证明方法和***

Country Status (1)

Country Link
CN (1) CN114070561A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114793228A (zh) * 2022-03-29 2022-07-26 上海万向区块链股份公司 基于零知识证明防止商户作恶的数据源筛选方法和***

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150124970A1 (en) * 2011-11-30 2015-05-07 China Iwncomm Co., Ltd. Key negotiation method and apparatus according to sm2 key exchange protocol
CN108667626A (zh) * 2018-07-20 2018-10-16 陕西师范大学 安全的两方协作sm2签名方法
CN111817856A (zh) * 2020-06-30 2020-10-23 北京安御道合科技有限公司 基于零知识证明和密码技术的身份认证方法及认证***
CN112367175A (zh) * 2020-11-12 2021-02-12 西安电子科技大学 基于sm2数字签名的隐式证书密钥生成方法
CN112422288A (zh) * 2020-10-26 2021-02-26 中国科学院大学 一种抗能量分析攻击的基于sm2算法的两方协同签名方法
CN113660092A (zh) * 2021-07-30 2021-11-16 国网天津市电力公司 一种基于零知识证明的电力数据上传***和方法

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150124970A1 (en) * 2011-11-30 2015-05-07 China Iwncomm Co., Ltd. Key negotiation method and apparatus according to sm2 key exchange protocol
CN108667626A (zh) * 2018-07-20 2018-10-16 陕西师范大学 安全的两方协作sm2签名方法
CN111817856A (zh) * 2020-06-30 2020-10-23 北京安御道合科技有限公司 基于零知识证明和密码技术的身份认证方法及认证***
CN112422288A (zh) * 2020-10-26 2021-02-26 中国科学院大学 一种抗能量分析攻击的基于sm2算法的两方协同签名方法
CN112367175A (zh) * 2020-11-12 2021-02-12 西安电子科技大学 基于sm2数字签名的隐式证书密钥生成方法
CN113660092A (zh) * 2021-07-30 2021-11-16 国网天津市电力公司 一种基于零知识证明的电力数据上传***和方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
KEHE WU,RUI CHENG,WENCHAO CUI,WEI LI: "A lightweight SM2-based security authentication scheme for smart grids", 《ALEXANDRIA ENGINEERING JOURNAL(2021)》 *
王婧,吴黎兵,罗敏,何德彪: "安全高效的两方协同ECDSA签名方案", 《通信学报》 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114793228A (zh) * 2022-03-29 2022-07-26 上海万向区块链股份公司 基于零知识证明防止商户作恶的数据源筛选方法和***

Similar Documents

Publication Publication Date Title
Camenisch et al. Confirmer signature schemes secure against adaptive adversaries
CN110247757B (zh) 基于国密算法的区块链处理方法、装置及***
CN102983971B (zh) 网络环境中进行用户身份认证的无证书签名方法
CN110830236B (zh) 基于全域哈希的身份基加密方法
CN108667626A (zh) 安全的两方协作sm2签名方法
CN110896351B (zh) 基于全域哈希的身份基数字签名方法
CN110505058A (zh) 跨链场景下异构区块链的身份认证方法
US20120096274A1 (en) Authenticated encryption for digital signatures with message recovery
CN110880977B (zh) 一种安全高效的sm9环签名生成与验证方法
EP2498437A2 (en) Issuing implicit certificates
CN110086599B (zh) 基于同态变色龙哈希函数的哈希计算方法及签密方法
CN101383707A (zh) 一种轻量级认证***及其关键算法
CN111147245A (zh) 一种区块链中使用国家密码进行加密的算法
CN104780052B (zh) 一种软件定义网络中网络设备群组认证方法
CN109450640A (zh) 基于sm2的两方签名方法及***
CN103718501A (zh) 信息处理设备、信息处理方法、程序和记录介质
CN106936584A (zh) 一种无证书公钥密码***的构造方法
CN107171788A (zh) 一种基于身份且签名长度恒定的在线离线聚合签名方法
US7995762B2 (en) Key issuing method, group signature system, information processing apparatus, and program
CA2669472A1 (en) Compressed ecdsa signatures
CN114070561A (zh) 一种基于sm2算法的零知识证明方法和***
CN112800482B (zh) 基于身份的在线/离线安全云存储审计方法
Limkar et al. A mechanism to ensure identity-based anonymity and authentication for IoT infrastructure using cryptography
CN103748830A (zh) 信息处理设备、签名提供方法、签名验证方法、程序和记录介质
CN109617700A (zh) 基于无证书的单向多跳代理重签名方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication

Application publication date: 20220218

RJ01 Rejection of invention patent application after publication