CN117155584A - Schnorr数字签名方法、系统及设备 - Google Patents

Schnorr数字签名方法、系统及设备 Download PDF

Info

Publication number
CN117155584A
CN117155584A CN202311411764.5A CN202311411764A CN117155584A CN 117155584 A CN117155584 A CN 117155584A CN 202311411764 A CN202311411764 A CN 202311411764A CN 117155584 A CN117155584 A CN 117155584A
Authority
CN
China
Prior art keywords
user
signature
user set
users
value
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.)
Granted
Application number
CN202311411764.5A
Other languages
English (en)
Other versions
CN117155584B (zh
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.)
WUHAN ARGUSEC TECHNOLOGY CO LTD
Beijing Infosec Technologies Co Ltd
Original Assignee
WUHAN ARGUSEC TECHNOLOGY CO LTD
Beijing Infosec Technologies 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 WUHAN ARGUSEC TECHNOLOGY CO LTD, Beijing Infosec Technologies Co Ltd filed Critical WUHAN ARGUSEC TECHNOLOGY CO LTD
Priority to CN202311411764.5A priority Critical patent/CN117155584B/zh
Publication of CN117155584A publication Critical patent/CN117155584A/zh
Application granted granted Critical
Publication of CN117155584B publication Critical patent/CN117155584B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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/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/3247Cryptographic 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 involving digital signatures
    • H04L9/3252Cryptographic 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 involving digital signatures using DSA or related signature schemes, e.g. elliptic based signatures, ElGamal or Schnorr schemes
    • 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/3247Cryptographic 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 involving digital signatures
    • H04L9/3255Cryptographic 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 involving digital signatures using group based signatures, e.g. ring or threshold signatures

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Storage Device Security (AREA)

Abstract

本发明实施例提供一种Schnorr数字签名方法、系统及设备,包括:签名端根据签名控制策略确定待签名用户集合;根据待签名用户集合各用户对应的随机数与基点的积,确定第一签名值;各第二用户端根据第二用户集合中各用户对应的秘密分量、用户标识、随机数、生成第一用户集合中各用户对应于第二用户集合中各用户的第一数值;各第一用户端根据第一用户集合中各用户对应于第二用户集合中各用户的第一数值、秘密分量、用户标识和随机数,确定第二签名值;根据第一签名值和第二签名值,生成待签名消息所对应的目标签名,以此,在保证数字签名的安全性和隐私性的同时,支持两个不同权限层级的签名方集合进行Schnorr数字签名。

Description

Schnorr数字签名方法、系统及设备
技术领域
本发明涉及信息安全数据处理技术领域,尤其涉及一种Schnorr数字签名方法、系统及设备。
背景技术
Schnorr数字签名是一种数字签名方案,可以高效且安全地对交易和消息进行签名,作为一种利用椭圆曲线密码学的算法,Schnorr因简单性、可证明的安全性和线性性而被广泛应用,Schnorr签名具有多种优势,包括高效性、增强的隐私性,同时保留了ECDSA(Elliptic Curve Digital Signature Algorithm,椭圆曲线数字签名算法)的所有功能和安全假设,Schnorr签名可以实现较小的签名大小、更快的验证时间,并且对某些类型的攻击具有改进的抵抗能力。
但在某些场景下,私钥需要分散掌握,并且各个持有者权限不同。例如,银行规定,签发一张支票需要至少3个员工,并且其中至少要有1个经理,剩余的为普通员工,显然,经理权限高于普通员工;在签名时, 2个经理和1个普通员工协作签发,或者是3个经理协作签发均满足要求,但是3个普通员工协作签发则不能满足要求,而现有的Schnorr签名方案不能满足该场景下的签名需求。
发明内容
本发明实施例提供一种Schnorr数字签名方法、系统及设备,用以支持两个不同权限层级的签名方集合进行数字签名,扩展Schnorr数字签名的应用场景。
第一方面,本发明实施例提供一种Schnorr数字签名方法,应用于签名端、第一用户端和第二用户端,所述方法包括:
签名端获取待签名消息,根据签名控制策略确定待签名用户集合,根据所述待签名用户集合中各用户对应的随机数与椭圆曲线的基点的积,确定第一签名值,其中,所述待签名用户集合包括第一用户集合和第二用户集合,所述签名控制策略包括第一门限值和第二门限值,所述第一门限值用于确定所述第一用户集合中的最少用户数量,第二门限值用于确定待签名用户集合的总用户数量;
与所述第二用户集合中各用户对应的各第二用户端,根据所述第二用户集合中各用户对应的秘密分量、用户标识、随机数、以及第一用户集合中各用户对应的用户标识,生成第一用户集合中各用户对应于第二用户集合中各用户的第一数值;其中,所述第一数值反映了第一用户集合中各用户在第二用户集合中各用户保存的秘密分量对应的函数分量上的取值;第二用户集合中各用户保存的秘密分量为根据初始多项式函数的第一部分生成,第二用户集合中各用户保存的秘密分量对应的函数分量重构得到初始多项式函数的第一部分;
与所述第一用户集合中各用户对应的各第一用户端,根据所述第一用户集合中各用户对应于第二用户集合中各用户的第一数值、以及第一用户集合中各用户对应的秘密分量、用户标识和随机数,确定由私钥参与计算的第二签名值,其中,所述私钥包含于初始多项式函数的第二部分,所述初始多项式函数由所述第一部分和第二部分组成,所述第一部分与所述第二部分具有不同的阶,所述第一用户集合中各用户对应的秘密分量为根据所述初始多项式函数生成;
签名端根据所述第一签名值和所述第二签名值,生成所述待签名消息对应的目标签名。
第二方面,本发明实施例提供一种Schnorr数字签名系统,包括:
签名端、各第一用户端和各第二用户端,其中,各第一用户端与第一用户集合中各用户对应,各第二用户端与第二用户集合中各用户对应;
所述签名端,用于获取待签名消息,根据签名控制策略确定待签名用户集合,根据所述待签名用户集合中各用户对应的随机数与椭圆曲线的基点的积,确定第一签名值,其中,所述待签名用户集合包括第一用户集合和第二用户集合,所述签名控制策略包括第一门限值和第二门限值,所述第一门限值用于确定所述第一用户集合中的最少用户数量,第二门限值用于确定待签名用户集合的总用户数量;
所述各第二用户端,用于根据所述第二用户集合中各用户对应的秘密分量、用户标识、随机数、以及第一用户集合中各用户对应的用户标识,生成第一用户集合中各用户对应于第二用户集合中各用户的第一数值;其中,所述第一数值反映了第一用户集合中各用户在第二用户集合中各用户保存的秘密分量对应的函数分量上的取值;第二用户集合中各用户保存的秘密分量为根据初始多项式函数的第一部分生成,第二用户集合中各用户保存的秘密分量对应的函数分量重构得到初始多项式函数的第一部分;
所述各第一用户端,用于根据所述第一用户集合中各用户对应于第二用户集合中各用户的第一数值、以及第一用户集合中各用户对应的秘密分量、用户标识和随机数,确定由私钥参与计算的第二签名值,其中,所述私钥包含于初始多项式函数的第二部分,所述初始多项式函数由所述第一部分和第二部分组成,所述第一部分与所述第二部分具有不同的阶,所述第一用户集合中各用户对应的秘密分量为根据所述初始多项式函数生成;
所述签名端,用于根据所述第一签名值和所述第二签名值,生成所述待签名消息对应的目标签名。
第三方面,本发明实施例提供一种电子设备,包括:存储器、处理器、通信接口;其中,所述存储器上存储有可执行代码,当所述可执行代码被所述处理器执行时,使所述处理器至少可以实现如第一方面所述的Schnorr数字签名方法。
第四方面,本发明实施例提供了一种非暂时性机器可读存储介质,所述非暂时性机器可读存储介质上存储有可执行代码,当所述可执行代码被电子设备的处理器执行时,使所述处理器至少可以实现如第一方面所述的Schnorr数字签名方法。
本发明实施例提供的一种Schnorr数字签名方法,签名端获取待签名消息,根据签名控制策略,确定待签名用户集合,该待签名用户集合包括两个不同权限层级的用户集合,分别为第一用户集合和第二用户集合,第一用户集合中各用户的权限层级高于第二用户集合中各用户的权限层级,当不同权限层级用户协作签名时,通过第一门限值确定参与签名的第一用户集合中的最少用户数量,确保重要用户(高权限层级用户)参与签名的数量,提升签名的安全性和有效性,第二门限值用于确定待签名用户集合的总用户数量,总用户数量用以保证待签名用户集合中各用户在根据各自保存的秘密分量进行隐私计算后,协作完成有效签名,使得签名符合Schnorr数字签名的要求。
进一步地,在签名时,首先,与第二用户集合中各用户对应的各第二用户端,根据第二用户集合中各用户对应的秘密分量、用户标识、随机数、以及第一用户集合中各用户对应的用户标识,生成第一用户集合中各用户对应于第二用户集合中各用户的第一数值;其中,第一数值反映了第一用户集合中各用户在第二用户集合中各用户保存的秘密分量对应的函数分量上的取值;然后,与第一用户集合中各用户对应的各第一用户端,根据第一用户集合中各用户对应于第二用户集合中各用户的第一数值、以及第一用户集合中各用户对应的秘密分量、用户标识和随机数,确定由私钥参与计算的第二签名值,其中,该私钥包含于初始多项式函数的第二部分,该初始多项式函数由第一部分和第二部分组成,第一部分与第二部分具有不同的阶;最后,签名端根据第一签名值和第二签名值,生成待签名消息对应的目标签名。在上述签名过程中,根据不同的权限层级,第一用户集合和第二用户集合中各用户分别进行不同的签名流程;同时,第一用户集合协作确定第二签名值,根据Schnorr数字签名要求,第二签名值由私钥参与运算,由此可以看出,第一用户集合掌握着私钥,具有更高权限层级,对签名具有决定性地位;同时,第一用户集合确定第二签名值时,需要根据第二用户集合中各用户计算出的第一数值,第二用户集合中各用户在签名中也不可或缺,以此通过对两个不同权限层级的用户集合进行不同的签名处理,支持两个不同权限层级的签名方集合协同进行Schnorr数字签名,增加了私钥重构的难度,保证重要用户的签名参与度,在提升签名安全性的同时,扩展签名的应用场景。
另外,在根据高权限层级的各第一用户端根据第一用户集合中各用户在第二用户集合中各用户所掌握的秘密分量对应的函数分量上的取值,最终由高权限层级的各第二用户终端生成第二签名值的过程中,第二用户集合中各用户使用对应的随机数来增强用户之间协作计算时的隐私保护,同时,各第一用户端在确定第二签名值时,私钥未单独被重构出,在保证签名中的安全性和隐私性的同时,实现不同权限层级的两个用户集合协作签名。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图:
图1为本发明实施例提供的一种Schnorr数字签名方法的流程示意图;
图2为本发明实施例提供的一种Schnorr数字签名方法的签名过程示意图;
图3为本发明实施例提供的一种Schnorr数字签名方法的流程示意图;
图4为本发明实施例提供的一种Schnorr数字签名方法的流程示意图;
图5为本发明实施例提供的一种Schnorr数字签名系统的结构示意图;
图6为本发明实施例提供的一种电子设备的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。另外,下述各方法实施例中的步骤时序仅为一种举例,而非严格限定。
需要说明的是,本发明实施例中所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据,并且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准,并提供有相应的操作入口,供用户选择授权或者拒绝。
首先对本发明实施例中涉及到的一些概念进行解释说明。
门限签名(Threshold Signature Scheme,TSS)是一种多方协同签名方案。在一组签名者中间,一部分签名者可以代替整个组对消息进行签名,这能极大的提升数字签名系统的安全性和隐私性。门限签名系统中,首先会生成一个私钥,但是这个私钥不会发送给任何签名者。每个签名者只能拿到私钥的一部分,达到一定数量的签名者,能够代替整个签名组,对某条消息进行签名。
在上述签名系统中,签名者均拥有私钥的一部分,在签名过程中,各签名者具有同等的签名权限和相同的签名处理流程,而在一些场景中,私钥除了分散掌握,还会要求各个私钥持有者权限不同。例如,银行规定,签发一张支票需要至少3个员工,并且其中至少要有1个经理,剩余的为普通员工,显然,经理权限高于普通员工;在签名时, 2个经理和1个普通员工协作签发,或者是3个经理协作签发均满足要求,但是3个普通员工协作签发则不能满足要求,而现有的门限签名方案不能满足该场景下的签名需求。
本发明实施例中,提供了一种Schnorr数字签名方法,将待签名用户集合根据权限层级高低分成重要权限层级的第一用户集合和非重要权限层级的第二用户集合,通过签名控制策略中的第一门限值,确保重要用户(高权限层级用户)参与签名的数量。在签名时,对不同权限层级的用户集合,采用不同的签名处理流程,首先,由非重要权限层级的第二用户集合中各用户对应的各第二用户端,根据第二用户集合中各用户对应的秘密分量,生成第一用户集合中各用户对应于第二用户集合中各用户的第一数值,也就是,各第二用户端通过重构初始多项式函数的第一部分,并确定第一用户集合中各用户在初始多项式函数的第一部分的取值,且使用随机数对各第一数值进行随机化,以隐藏秘密分量;然后,与第一用户集合中各用户对应的各第一用户端,根据第一用户集合中各用户在初始多项式函数的第一部分的取值以及秘密分量,通过重构位于初始多项式函数的第二部分的私钥的方式,生成第二签名值,完成Schnorr数字签名,同样地,在生成第二签名值的过程中,均存在各用户对应的随机数参与计算,以保证数值在待签名用户集合内部公开或用户间协作公开时的随机化,隐藏秘密分量和私钥,从而在保证数字签名的安全性和隐私性的同时,支持两个不同权限层级的签名方集合协作进行Schnorr分层门限数字签名。
通过下述实施例对本发明进行详细的解释和说明。
图1为本发明实施例提供的一种Schnorr数字签名方法的流程示意图,如图1所示,应用于签名端、第一用户端和第二用户端,该方法包括:
S101:签名端获取待签名消息,根据签名控制策略确定待签名用户集合,根据待签名用户集合中各用户对应的随机数与椭圆曲线的基点G的积,确定第一签名值R,其中,待签名用户集合包括第一用户集合和第二用户集合,签名控制策略包括第一门限值和第二门限值/>,第一门限值用于确定第一用户集合中的最少用户数量,第二门限值用于确定待签名用户集合的总用户数量;
S102:与第二用户集合中各用户对应的各第二用户端,根据第二用户集合中各用户对应的秘密分量、用户标识、随机数、以及第一用户集合中各用户对应的用户标识,生成第一用户集合中各用户对应于第二用户集合中各用户的第一数值;其中,第一数值反映了第一用户集合中各用户在第二用户集合中各用户保存的秘密分量对应的函数分量上的取值;第二用户集合中各用户保存的秘密分量为根据初始多项式函数的第一部分生成,第二用户集合中各用户保存的秘密分量对应的函数分量重构得到初始多项式函数的第一部分;
S103:与第一用户集合中各用户对应的各第一用户端,根据第一用户集合中各用户对应于第二用户集合中各用户的第一数值、以及第一用户集合中各用户对应的秘密分量、用户标识和随机数,确定由私钥参与计算的第二签名值,其中,私钥包含于初始多项式函数的第二部分,初始多项式函数由第一部分和第二部分组成,第一部分与第二部分具有不同的阶,第一用户集合中各用户对应的秘密分量为根据初始多项式函数生成;
S104:签名端根据第一签名值和第二签名值,生成待签名消息对应的目标签名。
在本发明实施例中,签名端可以为服务器或者其他计算机设备,当签名端为服务器时,并不限定服务器的实现形态,例如服务器可以是常规服务器、云服务器、云主机、虚拟中心等服务器设备。其中,服务器的构成主要包括处理器、硬盘、内存、系统总线等,和通用的计算机架构类型;与第二用户集合中各用户对应的各第二用户端以及与第一用户集合中各用户对应的各第一用户端可以为用户终端,也可以为用户终端中安装的某种客户端。
在本发明实施例中,签名端获取待签名消息,根据签名控制策略确定待签名用户集合,其中,待签名用户集合包括第一用户集合和第二用户集合,签名控制策略包括第一门限值和第二门限值/>,第一门限值用于确定第一用户集合中的最少用户数量,第二门限值用于确定待签名用户集合的总用户数量。
在上述实施例中,待签名用户集合包括重要权限层级的第一用户集合和非重要权限层级的第二用户集合,以此将两个不同权限层级的待签名用户进行分组,对不同权限层级的第一用户集合和第二用户集合中各用户的秘密分量进行不同的数字签名流程,其中,重要权限也可以理解为高权限,非重要权限也可以理解为低权限。
进一步地,引入了签名控制策略的概念,签名控制策略包括第一门限值和第二门限值/>,以用于限定参与签名的不同权限用户集合的用户数量,具体地,第一门限值用于确定第一用户集合中的最少用户数量,通过第一门限值/>确保参与签名的重要权限的用户数量,提升数字签名的签名门槛,进而提升数字签名的安全性和有效性。
根据上述对门限签名的介绍,可设置初始待签名用户集合,根据初始待签名用户权限层级,将初始待签名用户集合分为第三用户集合和第四用户集合。待签名用户集合通常为初始待签名用户集合的子集,待签名用户集合包括第一用户集合和第二用户集合。在签名时,根据签名控制策略从第三用户集合中选取适当数量的待签名用户,得到第一用户集合,使得第一用户集合中用户数量大于或等于第一门限值;然后,根据第二门限值,从第四用户集合中选取剩余待签名用户,使得待签名用户集合中的总用户数,即第一用户集合和第二用户集合中用户数总和为第二门限值/>,第二门限值/>用于确定待签名用户集合的总用户数量,以保证参与签名的各用户通过独立处理各用户私有的秘密分量,能够协作生成有效签名,使得签名符合Schnorr数字签名的要求。同时,由于每次签名可以从初始待签名用户集合中选取符合签名控制策略的不同用户进行签名,增加签名的灵活性。
在本发明实施例中,签名端根据待签名用户集合中各用户对应的随机数与椭圆曲线基点G的积,确定第一签名值R。椭圆曲线加密算法是一种非对称加密算法,基于椭圆曲线进行私钥和公钥签名算法,具有更快的计算速度和更高的安全性。启动签名时,待签名用户集合中各用户生成一个私有随机数,将各用户对应的私有随机数与基点G的积在待签名用户集合中内部公开,签名端根据各用户对应的私有随机数与基点G的积,生成第一签名值,第一签名值满足Schnorr数字签名要求。其中,椭圆曲线基点G为公开参数,待签名用户集合中各用户的用户标识在待签名用户集合中内部公开。
在本发明实施例中,根据第一用户集合和第二用户集合用户权限层级的不同,采用不同的签名处理流程进行签名处理,首先,与第二用户集合中各用户对应的各第二用户端,根据第二用户集合中各用户对应的秘密分量、用户标识、随机数、以及第一用户集合中各用户对应的用户标识,生成第一用户集合中各用户对应于第二用户集合中各用户的第一数值;其中,第一数值反映了第一用户集合中各用户在第二用户集合中各用户保存的秘密分量对应的函数分量上的取值;第二用户集合中各用户保存的秘密分量对应的函数分量重构得到初始多项式函数的第一部分。
可以理解的是,在数字签名中,待签名用户使用私钥进行加密,接收签名方使用公钥进行解密。在本发明实施例中,使用初始多项式生成私钥或者秘密分量,初始多项式的阶为初始多项式最高次项的次数,初始多项式的一般形式为:
其中,n为椭圆曲线基点G的阶,为/>次多项式,/>的阶为/>
在本发明的上述实施例中,第二用户集合中各用户保存的秘密分量用于生成第一用户集合中各用户对应于第二用户集合中各用户的第一数值,也就是,通过第二用户集合中各用户保存的秘密分量,由各第二用户端确定第二用户集合中各用户保存的秘密分量对应的函数分量上第一用户集合中各用户的取值,该取值即为第一用户集合中各用户对应于第二用户集合中各用户的第一数值,同时,第二用户集合中各用户保存的秘密分量对应的函数分量重构得到初始多项式函数的第一部分,因此,第一用户集合中各用户对应于第二用户集合中各用户的第一数值可重构得到第一用户集合中各用户在初始多项式函数的第一部分的取值。在上述过程中,第一用户集合中各用户对应于第二用户集合中各用户的第一数值由各第二用户端独立生成,且第二用户集合中各用户对应的随机数参与各第一数值的生成,充分保证了第二用户集合中各用户的秘密分量的隐私性,其中,各第二用户端与第二用户集合中各用户对应。
在生成第一用户集合中各用户对应于第二用户集合中各用户的第一数值后,各第二用户端将第一用户集合中各用户对应的第一数值在待签名用户集合中分享或发送给第一用户集合中各用户,由第一用户集合中各用户继续进行签名过程,具体地,与第一用户集合中各用户对应的各第一用户端,根据第一用户集合中各用户对应于第二用户集合中各用户的第一数值、以及第一用户集合中各用户对应的秘密分量、用户标识和随机数,确定由私钥参与计算的第二签名值,其中,私钥包含于初始多项式函数的第二部分,初始多项式函数由第一部分和第二部分组成,第一部分与第二部分具有不同的阶。
最后,签名端根据第一签名值和第二签名值,生成待签名消息对应的目标签名,完成Schnorr数字签名。
在本发明的上述实施例中,初始多项式函数由第一部分和第二部分组成,私钥位于初始多项式函数的第二部分,一般地,确定初始多项式中的为私钥,即确定初始多项式中的常数项为私钥。各第一用户端根据收到各自对应于第二用户集合中各用户的多个第一数值、第一用户集合中各用户对应的秘密分量、用户标识和随机数,通过重构私钥的方式,确定由私钥参与计算的第二签名值,因此,第二签名值由第一用户集合确定,第二签名值是由私钥参与计算,满足Schnorr数字签名要求,因此,从签名流程上也可以看出,第一用户集合对签名起决定性作用,相对于第二用户集合,具有更重要权限层级或更高权限层级。
图2为本发明实施例提供的一种Schnorr数字签名方法的签名过程示意图,如图2所示,比如:
第一用户集合有个用户,第二用户集合则有/>个用户,与第二用户集合中用户/>对应的第二用户端/>,根据用户/>对应的秘密分量、用户标识、私有随机数/>、以及第一用户集合中用户/>的用户标识,生成第一用户集合中用户/>对应于第二用户集合中用户/>的第一数值/>
类似地,第二用户端,根据第二用户集合中用户/>对应的秘密分量、用户标识、私有随机数/>、以及第一用户集合中用户/>的用户标识,生成第一用户集合中用户对应于第二用户集合中用户/>的第一数值/>。显然,各第一数值由各第二用户端独立生成,同时,在各第一数值的生成中,私有随机数/>的参与使得在公开第一数值时,隐藏了用户/>保存的秘密分量,使得签名过程更加安全,其中,/>
当与第一用户集合中用户对应的第一用户端/>,收到来自于各第二用户端分别生成的第一数值/>,/>,/>…,/>时,第一用户端/>根据这些第一数值、以及第一用户集合中用户/>对应的秘密分量、用户标识和私有随机数,确定第二签名值,第二签名值由密钥参与运算,满足Schnorr数字签名要求。
最后,签名端根据第一签名值和第二签名值,生成待签名消息对应的目标签名,完成Schnorr数字签名。
综上所述,在进行数字签名时,第二用户集合先进行签名处理,通过第二用户集合中各用户对秘密分量的处理,重构初始多项式函数的第一部分,根据第一用户集合中各用户在初始多项式函数第一部分上的取值,以及第一用户集合中各用户对应的用户标识,重构初始多项式函数的第二部分,私钥包含于初始多项式函数的第二部分,在不生成私钥以及不暴露私钥的前提下,各第二用户端在还原或重构初始多项式第二部分的过程中,确定由私钥参与计算的第二签名值,第二签名值与第一签名值组成目标签名值,完成Schnorr数字签名。
进一步地,第一用户集合和第二用户集合中各用户所保存的秘密分量并不为私钥分量,秘密分量用于通过还原或重构初始多项式的过程中,生成由私钥参与计算的第二签名值,私钥在整个签名中并没有单独生成,任何一个用户端以及签名端均无法获取到私钥,各用户端之间以及与签名端之间协作公开的数值均为经过各用户私有随机数进行随机化计算之后的取值,整个签名过程中,攻击者需要成功入侵待签名用户集合中所有用户,才能完成有效签名,大大增加了数字签名入侵的难度,提升签名的安全性和有效性,同时,根据权限重要性设计第一用户集合和第二用户集两种不同权限层级的用户分步协作完成签名,在增强签名安全性和有效性的同时,扩展了Schnorr数字签名的应用场景。
图3为本发明实施例提供的一种Schnorr数字签名方法的流程示意图,如图3所示,该方法包括:
S301:签名端获取待签名消息,根据签名控制策略确定待签名用户集合,根据待签名用户集合中各用户对应的随机数与椭圆曲线的基点G的积,确定第一签名值R,其中,待签名用户集合包括第一用户集合和第二用户集合,签名控制策略包括第一门限值和第二门限值/>,第一门限值用于确定第一用户集合中的最少用户数量,第二门限值用于确定待签名用户集合的总用户数量。
S302:签名端根据初始多项式函数、第一门限值以及待签名用户集合中各用户对应的用户标识,生成待签名用户集合中各用户对应的秘密分量,其中,第二门限值等于初始多项式函数的阶加1。
S303:与第二用户集合中各用户对应的各第二用户端,根据第二用户集合中各用户对应的秘密分量、用户标识、随机数、以及第一用户集合中各用户对应的用户标识,生成第一用户集合中各用户对应于第二用户集合中各用户的第一数值;其中,第一数值反映了第一用户集合中各用户在第二用户集合中各用户保存的秘密分量对应的函数分量上的取值;第二用户集合中各用户保存的秘密分量为根据初始多项式函数的第一部分生成,第二用户集合中各用户保存的秘密分量对应的函数分量重构得到初始多项式函数的第一部分。
S304:与第一用户集合中各用户对应的各第一用户端,根据第一用户集合中各用户对应于第二用户集合中各用户的第一数值、以及第一用户集合中各用户对应的秘密分量、用户标识和随机数,确定由私钥参与计算的第二签名值,其中,私钥包含于初始多项式函数的第二部分,初始多项式函数由第一部分和第二部分组成,第一部分与第二部分具有不同的阶,第一用户集合中各用户对应的秘密分量为根据初始多项式函数生成。
S305:签名端根据第一签名值和第二签名值,生成待签名消息对应的目标签名。
数字签名通常包括如下几个阶段:秘密分量生成、签名以及验签过程。因此,在生成第二签名值之前,签名端首先为待签名用户集合中各用户生成秘密分量:签名端根据初始多项式函数、第一门限值以及待签名用户集合中各用户对应的用户标识,生成待签名用户集合中各用户对应的秘密分量,其中,第二门限值等于初始多项式函数的阶加1。
为待签名用户集合中各用户生成秘密分量的时机,可以是签名端在获取待签名消息之后进行数字签名之前;也可以在获取待签名消息之前,提前为待签名用户集合中各用户生成秘密分量,使得签名端获取到待签名消息时,直接进行数字签名。
进一步地,签名端除了为待签名用户集合中各用户生成秘密分量外,还可以同时为有资格参与签名的其它任一用户生成秘密分量,以便于在每次进行数字签名时,签名端从有资格参与签名的用户中选取参与当前签名的待签名用户,组成待签名用户集合,这样,每次在数字签名时,签名端可以选取不同的签名用户组成待签名用户集合,提升数字签名的灵活性。
本发明实施例中,使用初始多项式函数生成私钥或者秘密分量,初始多项式函数的阶为初始多项式最高次项的次数。初始多项式函数由签名端随机选取,初始多项式不公开,比如:随机定义初始多项式函数为:/>,其中,/>为椭圆曲线基点G的阶。
当第二门限值为时,则初始多项式函数/>的最高次项系数则为/>
可选地,签名端根据第一门限值,对初始多项式函数进行求导运算,以生成分量多项式函数;根据分量多项式函数以及第二用户集合中各用户对应的用户标识,生成第二用户集合中各用户对应的秘密分量,其中,求导运算的求导阶数为第一门限值,分量多项式函数对应于初始多项式函数的第一部分;签名端根据初始多项式函数以及第一用户集合中各用户对应的用户标识,生成第一用户集合中各用户对应的秘密分量。下面将进行详细说明。
根据上述随机定义的初始多项式函数,对初始多项式函数/>进行/>阶求导运算,得到分量多项式函数/>,其中,/>为第一门限值。
=/>
根据多项式导函数的性质,分量多项式函数中的多项式系数与初始多项式函数中的多项式系数有如下关系:
显然,将初始多项式函数的高次项看作是初始多项式函数的第一部分,则分量多项式函数对应于初始多项式函数的第一部分,由分量多项式函数可以重构或者得到初始多项式函数的第一部分。
签名端根据分量多项式函数,将第二用户集合中各用户的用户标识作为因变量/>,生成各用户在分量多项式函数/>上对应的取值,将该取值作为第二用户集合中各用户的秘密分量,即由第二用户集合中各用户对应的(用户标识,秘密分量)组成的二维空间点,为分量多项式函数/>上的点。
同样地,签名端根据初始多项式函数,将第一用户集合中各用户的用户标识作为因变量/>,生成各用户在初始多项式函数/>上对应的取值,将该取值作为第一用户集合中各用户的秘密分量,即由第一用户集合中各用户对应的(用户标识,秘密分量)组成的二维空间点,为初始多项式函数/>上的点。
其中,签名端设置私钥,则公钥/>,其中,/>为椭圆曲线基点,因为/>包含在初始多项式函数中,不在分量多项式函数/>中,因此,由初始多项式函数生成第一用户集合中的秘密分量的重要性要高于由分量多项式函数生成的第二用户集合中的秘密分量,且最终由私钥参与计算的第二签名值由各第一用户端最终生成,因此,在签名中,第一用户集合与第二用户集合具有不同的签名流程,且第一用户集合在签名中具有更重要的地位,以此扩展Schnorr数字签名的应用场景;进一步地,最终签名权由更重要或权限层级更高的用户掌握,提升签名的安全性和有效性。
举例来说,比如:时,设定第一用户集合/>,第一用户集合有3个用户/>、/>、/>,对应的用户标识分别为/>、/>、/>;第二用户集合,则第二用户集合有/>2,2个用户/>、/>,对应的用户标识分别为/>,签名端随机选取多项式/>
显然,的3阶导函数为/>,显然,/>对应于/>的高2次项。
根据上述秘密分量的生成方法,则签名端生成的第一用户集合中3个用户分别对应的秘密分量为、/>、/>,对应的二维空间点的坐标为、/>、/>;第二用户集合中2个用户分别对应的秘密分量为/>、/>,对应的二维空间点的坐标为、/>。/>
之后,签名端将秘密分量分发到待签名用户集合中各用户进行私有保存。
可选地,签名端根据第一门限值,将初始多项式函数的第一部分作为分量多项式函数;根据分量多项式函数以及第二用户集合中各用户对应的用户标识,生成第二用户集合中各用户对应的秘密分量,其中,初始多项式函数的第一部分对应于初始多项式函数的高项。
显然,也可以直接将初始多项式函数的第一部分作为分量多项式函数,即将作为分量多项式函数,其中,分量多项式函数对应于初始多项式函数的第一部分。同样地,将第二用户集合中各用户的用户标识作为/>的因变量/>,则计算得到第二用户集合中各用户对应的秘密分量。
可选地,签名端根据第一门限值,将初始多项式函数的第一部分作为分量多项式函数;根据分量多项式函数以及第二用户集合中各用户对应的用户标识,生成第二用户集合中各用户对应的秘密分量,其中,初始多项式函数的第一部分对应于初始多项式函数的高项。
当收到待签名消息时,签名端获取待签名消息,根据签名控制策略确定待签名用户集合,根据待签名用户集合中各用户对应的随机数与椭圆曲线的基点G的积,确定第一签名值R。其中,签名控制策略包括第一门限值和第二门限值/>
可选地,签名端根据第二用户集合中各用户对应的随机数与椭圆曲线的基点G的积,确定第一签名值R。
比如:
定义,其中,/>为常量。
可选地,签名端根据待签名用户集合中各用户对应的随机数与椭圆曲线的基点G的积,确定第一签名值R。
比如:
定义,其中,/>、/>为常量,/>为第一用户集合中用户/>对应的随机数,/>为第二用户集合中用户/>对应的随机数。
同时,签名端计算,/>为待签名消息,/>为公钥,签名端公开/>,以使得数字签名的接收端通过/>对签名值进行验签。
之后的签名处理流程在前面实施例中已经介绍,再此不再赘述。
图4为本发明实施例提供的一种Schnorr数字签名方法的流程示意图,如图4所示,该方法包括:
S401:签名端获取待签名消息,根据签名控制策略确定待签名用户集合,根据待签名用户集合中各用户对应的随机数与椭圆曲线的基点G的积,确定第一签名值R,其中,待签名用户集合包括第一用户集合和第二用户集合,签名控制策略包括第一门限值和第二门限值/>,第一门限值用于确定第一用户集合中的最少用户数量,第二门限值用于确定待签名用户集合的总用户数量。
S402:与第二用户集合中各用户对应的各第二用户端,根据所述第二用户集合中各用户对应的秘密分量和用户标识,生成第二用户集合中各用户保存的秘密分量对应的函数分量,其中,第二用户集合中各用户保存的秘密分量为根据初始多项式函数的第一部分生成,第二用户集合中各用户保存的秘密分量对应的函数分量重构得到初始多项式函数的第一部分。
S403:与第二用户集合中各用户对应的各第二用户端,根据第二用户集合中各用户保存的秘密分量对应的函数分量、各用户对应的随机数、以及第一用户集合中各用户对应的用户标识,生成第一用户集合中各用户对应于第二用户集合中各用户的第一数值,其中,第一数值反映了第一用户集合中各用户在第二用户集合中各用户保存的秘密分量对应的函数分量上的取值。
S404:与第一用户集合中各用户对应的各第一用户端,根据第一用户集合中各用户对应于第二用户集合中各用户的第一数值、以及第一用户集合中各用户对应的秘密分量、用户标识和随机数,确定由私钥参与计算的第二签名值,其中,私钥包含于初始多项式函数的第二部分,初始多项式函数由第一部分和第二部分组成,第一部分与第二部分具有不同的阶,第一用户集合中各用户对应的秘密分量为根据初始多项式函数生成。
S405:签名端根据第一签名值和第二签名值,生成待签名消息对应的目标签名。
在本发明实施例中,与第二用户集合中各用户对应的各第二用户端,根据所述第二用户集合中各用户对应的秘密分量和用户标识,生成第二用户集合中各用户保存的秘密分量对应的函数分量,其中,第二用户集合中各用户保存的秘密分量为根据初始多项式函数的第一部分生成,第二用户集合中各用户保存的秘密分量对应的函数分量重构得到初始多项式函数的第一部分。
可选地,各第二用户端根据第二用户集合中各用户对应的秘密分量和用户标识,通过拉格朗日插值的方式,生成第二用户集合中各用户保存的秘密分量对应的函数分量。
拉格朗日插值多项式是指,一个通过n个点并且次数不大于(n-1)的多项式,可以通过公式/>给出,其中,其中,定义。因此,当多项式的阶,即多项式最高项的次数为n-1时,已知经过该多项式的n个点,则可以通过上述插值公式重构还原该多项式。
由于第二用户集合中各用户保存的秘密分量为根据初始多项式函数的第一部分生成,因此,将每个待签名用户对应的用户标识和秘密分量组成二维空间的一个点,通过第二用户集合中各用户所组成的点,根据拉格朗日插值公式,重构第二用户集合所对应的多项式。比如:第二用户集合中有3个用户,分别为、/>、/>,对应的秘密分量分别为、/>、/>,对应的用户标识分别为/>、/>、/>,待重构的多项式函数的阶为2,则根据拉格朗日插值公式,由各用户对应的用户标识和秘密分量组成的的3个二维空间点的坐标分别为:/>、/>、/>,则重构得到的2阶多项式函数为:
其中,用户根据对应的秘密分量和用户标识重构得到的函数分量为;用户/>根据对应的秘密分量和用户标识重构得到的函数分量为/>;用户/>根据对应的秘密分量和用户标识重构得到的函数分量为/>;用户/>、/>、/>聚合得到2阶多项式函数。由于第二用户集合中各用户保存的秘密分量对应的函数分量重构得到初始多项式函数的第一部分,可知,/>对应于初始多项式函数的第一部分,可以是/>经过转换得到初始多项式函数的第一部分;也可以是/>直接是初始多项式函数的第一部分。
可以理解的是,一个2阶多项式函数,至少需要已知3个位于该多项式函数上点,也就是至少需要3个用户根据用户对应的秘密分量和用户标识组成的二维空间的点,才能通过拉格朗日插值公式重构得到,因此,若第二用户集合的用户数等于第二门限值与第一门限值的差,第二用户集合中用户数所对应的点的个数满足重构初始多项式函数的第一部分的条件。
可选地,若第二用户集合的用户数小于第二门限值与第一门限值的差,则签名端根据第一用户集合中各用户对应的秘密分量与对应的随机数运算后的取值、以及第二用户集合中各用户对应的秘密分量与对应的随机数运算后的取值,确定至少一个模拟第二用户,以将至少一个模拟第二用户加入第二用户集合,使得更新后第二用户集合的用户数等于第二门限值与第一门限值的差,其中,至少一个模拟第二用户对应至少一个模拟第二用户端。
在上述实施例中,若第二用户集合的用户数小于第二门限值与第一门限值的差,此时,第二用户集合中用户数所对应的点的个数不满足重构出初始多项式函数的第一部分的条件,则签名端需要确定至少一个模拟第二用户加入第二用户集合,以重构出初始多项式函数的第一部分。同样地,每个模拟第二用户均对应一个模拟第二用户端,签名端可以作为模拟第二用户端,执行第二用户集合中模拟第二用户的签名操作,模拟第二用户端具有与各第二用户端相同的签名处理流程。
另外,需要说明的是,在确定待签名用户集合之后,若第二用户集合的用户数小于第二门限值与第一门限值的差,则签名端首先确定至少一个模拟第二用户,将该至少一个模拟第二用户加入第二用户集合,在后续整个签名过程中,第二用户集合均指更新后第二用户集合,即加入至少一个模拟第二用户后的第二用户集合。
可选地,签名端根据第一用户集合中各用户对应的秘密分量与对应的随机数运算后的取值、以及第二用户集合中各用户对应的秘密分量与对应的随机数运算后的取值,通过矩阵线性变换,从第一用户集合中获取至少一个第一用户,以用于与第二用户集合中所有用户通过求解线性方程组重构初始多项式函数的第一部分;根据初始多项式函数的第一部分,确定至少一个模拟第二用户。
具体地,签名端可以通过以下方法确定至少一个模拟第二用户。
首先,对于第一用户集合来说,定义第一用户集合中的用户个数为(),此时,第二用户集合中的用户数为/>,显然/>,即第二用户集合的用户数小于第二门限值与第一门限值的差。
对于第一用户集合来说,第一用户集合中各用户对应的秘密分量为根据初始多项式函数生成,因此,第一用户集合中所有用户的秘密分量满足:
=/>
其中,,为用户标识对应的矩阵,在待签名用户集合内部公开;/>,为未知;/>,每一行为对应用户的秘密分量与对应随机数的和,其中,/>。/>
根据线性代数的性质,签名端将矩阵A经过线性变换后得到:满足前列全部为0的/>个线性无关的行向量,对列矩阵C进行同样的线性变换得到/>
同样地,对于第二用户集合来说,第二用户集合中各用户对应的秘密分量为根据初始多项式函数的第一部分生成,因此,第二用户集合中所有用户的秘密分量满足:
=
签名端根据上述得到的个线性无关的行向量以及/>中对应的数值,以及第二用户集合对应的/>个线性方程组,即可组成/>个线性方程,通过线性转换求解得到第二用户集合对应的多项式函数的各项系数,重构第二用户集合对应的多项式函数,其中,第二用户集合对应的多项式函数与初始多项式函数的第一部分相对应,为根据初始多项式函数的第一部分生成。
然后,签名端根据重构出的第二用户集合对应的多项式函数,确定个模拟第二用户,模拟第二用户对应的用户标识可以通过随机数生成,模拟第二用户对应的秘密分量为根据重构得到的第二用户集合对应的多项式函数生成,即根据初始多项式函数的第一部分生成。
最后,签名端作为模拟第二用户端执行第二用户集合中模拟第二用户的签名操作,模拟第二用户端具有与各第二用户端相同的签名处理流程,即签名端根据各模拟第二用户对应的秘密分量和用户标识,生成各模拟第二用户保存的秘密分量对应的函数分量。
各第二用户端生成各用户保存的秘密分量对应的函数分量之后,与第二用户集合中各用户对应的各第二用户端,根据第二用户集合中各用户保存的秘密分量对应的函数分量、各用户对应的随机数、以及第一用户集合中各用户对应的用户标识,生成第一用户集合中各用户对应于第二用户集合中各用户的第一数值;其中,第一数值反映了第一用户集合中各用户在第二用户集合中各用户保存的秘密分量对应的函数分量上的取值;若第一用户集合的用户数大于第一门限值,则上述各第二用户端包括至少一个虚拟第二用户端,第二用户集合包括至少一个虚拟第二用户。
可选地,根据上述举例,设定时,第一用户集合/>中有3个用户,则第二用户集合/>中有2个用户,对于第二用户集合/>中用户/>,其对应的用户标识为/>,则用户/>的秘密分量对应的函数分量为:,其中,/>为/>次多项式,/>为用户/>的秘密分量对应的函数分量。
可选地,比如:为初始多项式函数的/>阶导函数的函数分量,因此,根据多项式导函数的性质,可以重构或还原得到初始多项式函数的第一部分的函数分量,显然,初始多项式函数的第一部分为初始多项式函数的高/>次项,是一个/>次多项式。
进一步地,根据由第二用户集合中用户/>重构出的初始多项式函数的第一部分的函数分量/>,以及第一用户集合/>中用户/>的用户标识/>,可计算得到用户/>在由用户/>重构出的初始多项式函数的第一部分的函数分量上的取值,用户/>根据对应的私有随机数/>对/>进行随机化后,生成第一用户集合/>中用户/>对应于第二用户集合/>中用户/>的第一数值/>,用户/>通知给用户/>,其中,/>
可选地,设定-/>。根据不同的需要,可以设定不同的第一数值的计算方法,需要说明的是,第二用户集合/>中所有用户需要使用相同的第一数值计算方式,显然,第一数值/>反映了用户/>在用户/>保存的秘密分量对应的函数分量上的取值,即用户/>在由用户/>重构出的初始多项式函数的第一部分的函数分量上的取值。
同样地,可计算得到用户在分别由用户/>重构出的初始多项式函数的第一部分的函数分量上的取值/>,用户/>根据对应的私有随机数/>进行随机化后,生成第一用户集合/>中用户/>对应于第二用户集合/>中用户/>的第一数值/>,用户/>将/>通通知给用户/>,其中,/>
与第一用户集合中各用户对应的各第一用户端,根据第一用户集合中各用户对应于第二用户集合中各用户的第一数值、以及第一用户集合中各用户对应的秘密分量、用户标识和随机数,确定由私钥参与计算的第二签名值,其中,私钥包含于初始多项式函数的第二部分,初始多项式函数由第一部分和第二部分组成,第一部分与第二部分具有不同的阶。
可选地,各第一用户端根据第一用户集合中各用户对应于第二用户集合中各用户的第一数值、以及第一用户集合中各用户对应的秘密分量,确定第一用户集合中各用户对应的第二数值,第二数值反映了第二用户集合中各用户在初始多项式函数的第二部分的取值;各第一用户端根据第一用户集合中各用户对应的第二数值、随机数、以及用户标识,确定由私钥参与计算的第二签名值。
可选地,根据上述举例,与第一用户集合中用户对应的第一用户端/>,接收到第二用户集合/>中用户/>以及/>发送的用户/>对应于用户/>以及/>的第一数值/>和/>后,确定第一用户集合中用户/>对应第二数值/>,使得/>能够反映用户/>在初始多项式函数的第二部分的取值。
可以理解的是,初始多项式函数由第一部分和第二部分组成,第一用户集合中用户的秘密分量为根据初始多项式函数生成,用户/>对应于用户/>以及/>的第一数值/>和/>聚合,可得到用户/>在初始多项式函数的第一部分/>上的取值,因此,根据用户/>的秘密分量以及用户/>在初始多项式函数的第一部分/>上的取值,即可得到/>在初始多项式函数的第二部分的取值/>
可选地,设定:
即,
其中,反映了/>在初始多项式函数的第二部分的取值。
同样地,确定第一用户集合中用户、以及用户/>分别在初始多项式函数的第二部分的取值/>以及/>
进一步地,根据第一用户集合中用户、/>以及用户/>通过重构初始多项式函数的第二部分的过程中,生成第二签名值s。
可选地,设定:
由拉格朗日插值公式可知,,因此,
若签名端在生成第一签名值时,设置:
则第二签名值符合Schnorr数字签名算法。
由上可知,在整个签名中,各第二用户端与各第一用户端之间的协作数值均为根据各用户私有随机数随机化之后的数值,且整个签名过程中,并未涉及到任何秘密分量的公开以及私钥的单独生成,待签名用户集合中的任何用户无法获取到私钥,私钥在整个签名过程中不可见,因此,攻击者需要成功入侵所有待签名用户才能生成第二签名值,完成签名,大大提升了Schnorr签名的安全性和有效性。
可选地,数字签名的接收端,可以使用如下方法对签名值进行验签:根据公钥、第一签名值R和待签名消息M,计算杂凑值e;根据Schnorr算法的验签算法,若满足第二签名值s与椭圆曲线基点G的乘积等于公钥与杂凑值e的乘积再加上第一签名值R的和,即,则验签成功,接收端将第一签名值和第二签名值作为待签名消息M的数字签名。
图5为本发明实施例提供的一种Schnorr数字签名系统的结构示意图,如图5所示,该系统包括:签名端11、各第一用户端12和各第二用户端13,其中,各第一用户端12与第一用户集合中各用户对应,各第二用户端13与第二用户集合中各用户对应。
签名端11,用于获取待签名消息,根据签名控制策略确定待签名用户集合,根据所述待签名用户集合中各用户对应的随机数与椭圆曲线的基点G的积,确定第一签名值R,其中,所述待签名用户集合包括第一用户集合和第二用户集合,所述签名控制策略包括第一门限值和第二门限值/>,所述第一门限值用于确定所述第一用户集合中的最少用户数量,第二门限值用于确定待签名用户集合的总用户数量。
各第二用户端13,用于根据所述第二用户集合中各用户对应的秘密分量、用户标识、随机数、以及第一用户集合中各用户对应的用户标识,生成第一用户集合中各用户对应于第二用户集合中各用户的第一数值;其中,所述第一数值反映了第一用户集合中各用户在第二用户集合中各用户保存的秘密分量对应的函数分量上的取值;第二用户集合中各用户保存的秘密分量为根据初始多项式函数的第一部分生成,第二用户集合中各用户保存的秘密分量对应的函数分量重构得到初始多项式函数的第一部分。
各第一用户端12,用于根据所述第一用户集合中各用户对应于第二用户集合中各用户的第一数值、以及第一用户集合中各用户对应的秘密分量、用户标识和随机数,确定由私钥参与计算的第二签名值,其中,所述私钥包含于初始多项式函数的第二部分,所述初始多项式函数由所述第一部分和第二部分组成,所述第一部分与所述第二部分具有不同的阶,所述第一用户集合中各用户对应的秘密分量为根据所述初始多项式函数生成。
签名端11,用于根据所述第一签名值和所述第二签名值,生成所述待签名消息对应的目标签名。
可选地,所述各第二用户端13具体用于:
根据所述第二用户集合中各用户对应的秘密分量和用户标识,生成第二用户集合中各用户保存的秘密分量对应的函数分量;根据所述第二用户集合中各用户保存的秘密分量对应的函数分量、各用户对应的随机数、以及第一用户集合中各用户对应的用户标识,生成第一用户集合中各用户对应于第二用户集合中各用户的第一数值。
可选地,所述各第二用户端13还具体用于:根据所述第二用户集合中各用户对应的秘密分量和用户标识,通过拉格朗日插值的方式,生成第二用户集合中各用户保存的秘密分量对应的函数分量。
可选地,所述各第一用户端12具体用于:根据所述第一用户集合中各用户对应于第二用户集合中各用户的第一数值、以及第一用户集合中各用户对应的秘密分量,确定第一用户集合中各用户对应的第二数值,所述第二数值反映了第二用户集合中各用户在所述初始多项式函数的第二部分的取值;根据第一用户集合中各用户对应的第二数值、随机数、以及用户标识,确定由私钥参与计算的第二签名值。
可选地,在根据签名控制策略确定待签名用户集合之后,所述签名端11用于:若所述第二用户集合的用户数小于第二门限值与所述第一门限值的差,则根据所述第一用户集合中各用户对应的秘密分量与对应的随机数运算后的取值、以及第二用户集合中各用户对应的秘密分量与对应的随机数运算后的取值,确定至少一个模拟第二用户,以将所述至少一个模拟第二用户加入所述第二用户集合,使得更新后第二用户集合的用户数等于所述第二门限值与所述第一门限值的差,其中,所述至少一个模拟第二用户对应至少一个模拟第二用户端。
可选地,所述签名端11具体用于:根据所述第一用户集合中各用户对应的秘密分量与对应的随机数运算后的取值、以及第二用户集合中各用户对应的秘密分量与对应的随机数运算后的取值,通过矩阵线性变换,从第一用户集合中获取至少一个第一用户,以用于与第二用户集合中所有用户通过求解线性方程组重构所述初始多项式函数的第一部分;根据所述初始多项式函数的第一部分,确定至少一个模拟第二用户。
可选地,所述签名端11用于:根据所述初始多项式函数、所述第一门限值以及所述待签名用户集合中各用户对应的用户标识,生成所述待签名用户集合中各用户对应的秘密分量,其中,所述第二门限值等于所述初始多项式的阶加1。
可选地,所述签名端11具体用于:根据所述第一门限值,对所述初始多项式函数进行求导运算,以生成分量多项式函数;根据所述分量多项式函数以及第二用户集合中各用户对应的用户标识,生成第二用户集合中各用户对应的秘密分量,其中,所述求导运算的求导阶数为第一门限值,所述分量多项式函数对应于所述初始多项式函数的第一部分;根据所述初始多项式函数以及第一用户集合中各用户对应的用户标识,生成第一用户集合中各用户对应的秘密分量。
图5所示系统可以执行前述实施例中Schnorr数字签名步骤,详细的执行过程和技术效果参见前述实施例中的描述,在此不再赘述。
在一个可能的设计中,上述图5所示Schnorr数字签名系统的结构可实现为一电子设备。如图6所示,该电子设备可以包括:处理器21、存储器22、通信接口23。其中,存储器22上存储有可执行代码,当所述可执行代码被处理器21执行时,使处理器21至少可以实现如前述实施例中客户端执行的垃圾回收方法。
另外,本发明实施例提供了一种非暂时性机器可读存储介质,非暂时性机器可读存储介质上存储有可执行代码,当可执行代码被电子设备的处理器执行时,使处理器至少可以实现如前述实施例中提供的Schnorr数字签名方法。
以上所描述的装置实施例仅仅是示意性的,其中作为分离部件说明的单元可以是或者也可以不是物理上分开的。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助加必需的通用硬件平台的方式来实现,当然也可以通过硬件和软件结合的方式来实现。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以计算机产品的形式体现出来,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

Claims (10)

1.一种Schnorr数字签名方法,其特征在于,应用于签名端、第一用户端和第二用户端,所述方法包括:
签名端获取待签名消息,根据签名控制策略确定待签名用户集合,根据所述待签名用户集合中各用户对应的随机数与椭圆曲线的基点的积,确定第一签名值,其中,所述待签名用户集合包括第一用户集合和第二用户集合,所述签名控制策略包括第一门限值和第二门限值,所述第一门限值用于确定所述第一用户集合中的最少用户数量,第二门限值用于确定待签名用户集合的总用户数量;
与所述第二用户集合中各用户对应的各第二用户端,根据所述第二用户集合中各用户对应的秘密分量、用户标识、随机数、以及第一用户集合中各用户对应的用户标识,生成第一用户集合中各用户对应于第二用户集合中各用户的第一数值;其中,所述第一数值反映了第一用户集合中各用户在第二用户集合中各用户保存的秘密分量对应的函数分量上的取值;第二用户集合中各用户保存的秘密分量为根据初始多项式函数的第一部分生成,第二用户集合中各用户保存的秘密分量对应的函数分量重构得到初始多项式函数的第一部分;
与所述第一用户集合中各用户对应的各第一用户端,根据所述第一用户集合中各用户对应于第二用户集合中各用户的第一数值、以及第一用户集合中各用户对应的秘密分量、用户标识和随机数,确定由私钥参与计算的第二签名值,其中,所述私钥包含于初始多项式函数的第二部分,所述初始多项式函数由所述第一部分和第二部分组成,所述第一部分与所述第二部分具有不同的阶,所述第一用户集合中各用户对应的秘密分量为根据所述初始多项式函数生成;
签名端根据所述第一签名值和所述第二签名值,生成所述待签名消息对应的目标签名。
2.根据权利要求1所述的方法,其特征在于,所述与所述第二用户集合中各用户对应的各第二用户端,根据所述第二用户集合中各用户对应的秘密分量、用户标识、随机数、以及第一用户集合中各用户对应的用户标识,生成第一用户集合中各用户对应于第二用户集合中各用户的第一数值,包括:
各第二用户端根据所述第二用户集合中各用户对应的秘密分量和用户标识,生成第二用户集合中各用户保存的秘密分量对应的函数分量;
各第二用户端根据第二用户集合中各用户保存的秘密分量对应的函数分量、各用户对应的随机数、以及第一用户集合中各用户对应的用户标识,生成第一用户集合中各用户对应于第二用户集合中各用户的第一数值。
3.根据权利要求2所述的方法,其特征在于,所述各第二用户端根据所述第二用户集合中各用户对应的秘密分量和用户标识,生成第二用户集合中各用户保存的秘密分量对应的函数分量,包括:
所述各第二用户端根据所述第二用户集合中各用户对应的秘密分量和用户标识,通过拉格朗日插值的方式,生成第二用户集合中各用户保存的秘密分量对应的函数分量。
4.根据权利要求1所述的方法,其特征在于,所述与所述第一用户集合中各用户对应的各第一用户端,根据所述第一用户集合中各用户对应于第二用户集合中各用户的第一数值、以及第一用户集合中各用户对应的秘密分量、用户标识和随机数,确定由私钥参与计算的第二签名值,包括:
所述各第一用户端根据所述第一用户集合中各用户对应于第二用户集合中各用户的第一数值、以及所述第一用户集合中各用户对应的秘密分量,确定第一用户集合中各用户对应的第二数值,所述第二数值反映了第二用户集合中各用户在所述初始多项式函数的第二部分的取值;
所述各第一用户端根据第一用户集合中各用户对应的第二数值、随机数、以及用户标识,确定由私钥参与计算的第二签名值。
5.根据权利要求1所述的方法,其特征在于,在根据签名控制策略确定待签名用户集合之后,所述方法还包括:
若所述第二用户集合的用户数小于第二门限值与所述第一门限值的差,则签名端根据所述第一用户集合中各用户对应的秘密分量与对应的随机数运算后的取值、以及所述第二用户集合中各用户对应的秘密分量与对应的随机数运算后的取值,确定至少一个模拟第二用户,以将所述至少一个模拟第二用户加入所述第二用户集合,使得更新后第二用户集合的用户数等于所述第二门限值与所述第一门限值的差,其中,所述至少一个模拟第二用户对应至少一个模拟第二用户端。
6.根据权利要求5所述的方法,其特征在于,所述签名端根据所述第一用户集合中各用户对应的秘密分量与对应的随机数运算后的取值、以及所述第二用户集合中各用户对应的秘密分量与对应的随机数运算后的取值,确定至少一个模拟第二用户,包括:
所述签名端根据所述第一用户集合中各用户对应的秘密分量与对应的随机数运算后的取值、以及所述第二用户集合中各用户对应的秘密分量与对应的随机数运算后的取值,通过矩阵线性变换,从第一用户集合中获取至少一个第一用户,以用于与第二用户集合中所有用户通过求解线性方程组重构所述初始多项式函数的第一部分;根据所述初始多项式函数的第一部分,确定至少一个模拟第二用户。
7.根据权利要求1-6任一项所述的方法,其特征在于,所述方法还包括:
所述签名端根据所述初始多项式函数、所述第一门限值以及所述待签名用户集合中各用户对应的用户标识,生成所述待签名用户集合中各用户对应的秘密分量,其中,所述第二门限值等于所述初始多项式的阶加1。
8.根据权利要求7所述的方法,其特征在于,所述签名端根据所述初始多项式函数、所述第一门限值以及所述待签名用户集合中各用户对应的用户标识,生成所述待签名用户集合中各用户对应的秘密分量,包括:
所述签名端根据所述第一门限值,对所述初始多项式函数进行求导运算,以生成分量多项式函数;根据所述分量多项式函数以及第二用户集合中各用户对应的用户标识,生成所述第二用户集合中各用户对应的秘密分量,其中,所述求导运算的求导阶数为第一门限值,所述分量多项式函数对应于所述初始多项式函数的第一部分;
签名端根据所述初始多项式函数以及第一用户集合中各用户对应的用户标识,生成所述第一用户集合中各用户对应的秘密分量。
9.一种Schnorr数字签名系统,其特征在于,包括:
签名端、各第一用户端和各第二用户端,其中,各第一用户端与第一用户集合中各用户对应,各第二用户端与第二用户集合中各用户对应;
所述签名端,用于获取待签名消息,根据签名控制策略确定待签名用户集合,根据所述待签名用户集合中各用户对应的随机数与椭圆曲线的基点的积,确定第一签名值,其中,所述待签名用户集合包括第一用户集合和第二用户集合,所述签名控制策略包括第一门限值和第二门限值,所述第一门限值用于确定所述第一用户集合中的最少用户数量,第二门限值用于确定待签名用户集合的总用户数量;
所述各第二用户端,用于根据所述第二用户集合中各用户对应的秘密分量、用户标识、随机数、以及第一用户集合中各用户对应的用户标识,生成第一用户集合中各用户对应于第二用户集合中各用户的第一数值;其中,所述第一数值反映了第一用户集合中各用户在第二用户集合中各用户保存的秘密分量对应的函数分量上的取值;第二用户集合中各用户保存的秘密分量为根据初始多项式函数的第一部分生成,第二用户集合中各用户保存的秘密分量对应的函数分量重构得到初始多项式函数的第一部分;
所述各第一用户端,用于根据所述第一用户集合中各用户对应于第二用户集合中各用户的第一数值、以及第一用户集合中各用户对应的秘密分量、用户标识和随机数,确定由私钥参与计算的第二签名值,其中,所述私钥包含于初始多项式函数的第二部分,所述初始多项式函数由所述第一部分和第二部分组成,所述第一部分与所述第二部分具有不同的阶,所述第一用户集合中各用户对应的秘密分量为根据所述初始多项式函数生成;
所述签名端,用于根据所述第一签名值和所述第二签名值,生成所述待签名消息对应的目标签名。
10.一种电子设备,其特征在于,包括:存储器、处理器、通信接口;其中,所述存储器上存储有可执行代码,当所述可执行代码被所述处理器执行时,使所述处理器执行如权利要求1至8中任一项所述的Schnorr数字签名方法。
CN202311411764.5A 2023-10-27 2023-10-27 Schnorr数字签名方法、系统及设备 Active CN117155584B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311411764.5A CN117155584B (zh) 2023-10-27 2023-10-27 Schnorr数字签名方法、系统及设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311411764.5A CN117155584B (zh) 2023-10-27 2023-10-27 Schnorr数字签名方法、系统及设备

Publications (2)

Publication Number Publication Date
CN117155584A true CN117155584A (zh) 2023-12-01
CN117155584B CN117155584B (zh) 2024-01-26

Family

ID=88908424

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311411764.5A Active CN117155584B (zh) 2023-10-27 2023-10-27 Schnorr数字签名方法、系统及设备

Country Status (1)

Country Link
CN (1) CN117155584B (zh)

Citations (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107342990A (zh) * 2017-06-23 2017-11-10 西南交通大学 一种分布式授权的属性基网络环签名方法
US20190312734A1 (en) * 2018-04-05 2019-10-10 Ares Technologies, Inc. Systems and methods authenticating a digitally signed assertion using verified evaluators
CN111064583A (zh) * 2020-03-17 2020-04-24 北京信安世纪科技股份有限公司 一种门限sm2数字签名方法、装置、电子设备及存储介质
CN111934877A (zh) * 2020-06-23 2020-11-13 中国科学院信息工程研究所 一种sm2协同门限签名方法及电子装置
US20210194676A1 (en) * 2019-12-20 2021-06-24 Fujitsu Limited Secure key management
WO2021195219A1 (en) * 2020-03-24 2021-09-30 Ares Technologies, Inc Methods and systems for implementing mixed protocol certificates
CN113507374A (zh) * 2021-07-02 2021-10-15 恒生电子股份有限公司 门限签名方法、装置、设备以及存储介质
US20210359863A1 (en) * 2020-05-14 2021-11-18 Chiu Hung Hung Method for creating a hierarchical threshold signature digital asset wallet
CN113972981A (zh) * 2021-09-29 2022-01-25 中国科学院大学 一种基于sm2密码算法的高效门限签名方法
WO2022116175A1 (zh) * 2020-12-04 2022-06-09 上海阵方科技有限公司 数字签名的生成方法、装置和服务器
WO2022256053A1 (en) * 2021-06-05 2022-12-08 Hewlett-Packard Development Company, L.P. Generation of signing keys
US20230097738A1 (en) * 2021-03-02 2023-03-30 Tencent Technology (Shenzhen) Company Limited Data processing method and apparatus, device, and storage medium
CN116318736A (zh) * 2023-03-28 2023-06-23 中国电子科技集团公司第十五研究所 一种用于分级管理的二级门限签名方法及装置
CN116318636A (zh) * 2021-12-20 2023-06-23 数据通信科学技术研究所 一种基于sm2的门限签名方法
CN116346328A (zh) * 2023-03-03 2023-06-27 郑州师范学院 一种数字签名方法、系统、设备及计算机可读存储介质
CN116566619A (zh) * 2023-05-23 2023-08-08 合肥工业大学 一种动态可追溯的隐私保护分布式门限签名系统与方法

Patent Citations (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107342990A (zh) * 2017-06-23 2017-11-10 西南交通大学 一种分布式授权的属性基网络环签名方法
US20190312734A1 (en) * 2018-04-05 2019-10-10 Ares Technologies, Inc. Systems and methods authenticating a digitally signed assertion using verified evaluators
US20210194676A1 (en) * 2019-12-20 2021-06-24 Fujitsu Limited Secure key management
CN111064583A (zh) * 2020-03-17 2020-04-24 北京信安世纪科技股份有限公司 一种门限sm2数字签名方法、装置、电子设备及存储介质
WO2021195219A1 (en) * 2020-03-24 2021-09-30 Ares Technologies, Inc Methods and systems for implementing mixed protocol certificates
US20210359863A1 (en) * 2020-05-14 2021-11-18 Chiu Hung Hung Method for creating a hierarchical threshold signature digital asset wallet
CN111934877A (zh) * 2020-06-23 2020-11-13 中国科学院信息工程研究所 一种sm2协同门限签名方法及电子装置
WO2022116175A1 (zh) * 2020-12-04 2022-06-09 上海阵方科技有限公司 数字签名的生成方法、装置和服务器
US20230097738A1 (en) * 2021-03-02 2023-03-30 Tencent Technology (Shenzhen) Company Limited Data processing method and apparatus, device, and storage medium
WO2022256053A1 (en) * 2021-06-05 2022-12-08 Hewlett-Packard Development Company, L.P. Generation of signing keys
CN113507374A (zh) * 2021-07-02 2021-10-15 恒生电子股份有限公司 门限签名方法、装置、设备以及存储介质
CN113972981A (zh) * 2021-09-29 2022-01-25 中国科学院大学 一种基于sm2密码算法的高效门限签名方法
CN116318636A (zh) * 2021-12-20 2023-06-23 数据通信科学技术研究所 一种基于sm2的门限签名方法
CN116346328A (zh) * 2023-03-03 2023-06-27 郑州师范学院 一种数字签名方法、系统、设备及计算机可读存储介质
CN116318736A (zh) * 2023-03-28 2023-06-23 中国电子科技集团公司第十五研究所 一种用于分级管理的二级门限签名方法及装置
CN116566619A (zh) * 2023-05-23 2023-08-08 合肥工业大学 一种动态可追溯的隐私保护分布式门限签名系统与方法

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
HAN LIU等: "IdenMultiSig: Identity-Based Decentralized Multi-Signature in Internet of Things", 《IEEE TRANSACTIONS ON COMPUTATIONAL SOCIAL SYSTEMS》, vol. 10, no. 4, pages 1711 - 1721 *
SINAN ERGEZER等: "A Survey on Threshold Signature Schemes Sinan Ergezer,", 《NETWORK ARCHITECTURES AND SERVICES》, pages 1 - 5 *
范家幸: "基于动态门限环签名的分级匿名表决研究", 《中国优秀硕士学位论文全文数据库信息科技辑》 *

Also Published As

Publication number Publication date
CN117155584B (zh) 2024-01-26

Similar Documents

Publication Publication Date Title
CN107948143B (zh) 一种云存储中基于身份的隐私保护完整性检测方法和系统
CN107302438B (zh) 一种基于密钥更新的私钥保护方法、系统及装置
CN102984156B (zh) 一种可验证的分布式隐私数据比较与排序方法及装置
CN109905247B (zh) 基于区块链的数字签名方法、装置、设备及存储介质
CN110225023B (zh) 一种可追踪的匿名认证方法和系统
CN109617692B (zh) 一种基于区块链的匿名登陆方法及系统
CN109818730B (zh) 盲签名的获取方法、装置和服务器
CN109936455B (zh) 一种数字签名的方法、装置和系统
CN106357401A (zh) 一种私钥存储及使用方法
CN106330448B (zh) 一种用户合法性验证方法、装置及系统
CN113360943A (zh) 一种区块链隐私数据的保护方法及装置
CN116566626B (zh) 环签名方法和设备
CN113779606A (zh) 一种降低隐私泄露风险的信息校验方法及系统
CN112436938A (zh) 数字签名的生成方法、装置和服务器
CN106603236A (zh) 一种用于生成签名的方法和装置
CN115174104A (zh) 基于商密sm9的属性基在线/离线签名方法与系统
CN111241492A (zh) 一种产品多租户安全授信方法、系统及电子设备
CN111191262B (zh) 一种基于两方签名的区块链钱包客户端私钥保护方法
CN117155584B (zh) Schnorr数字签名方法、系统及设备
CN111245594B (zh) 一种基于同态运算的协同签名方法及系统
CN114697019B (zh) 一种用户账号隐私保护方法及系统
CN115442036A (zh) 基于拆分混洗的联邦学习方法、装置、设备和介质
CN109218016B (zh) 数据传输方法及装置、服务器、计算机设备和存储介质
CN114186998A (zh) 一种基于区块链隐私通讯方法
CN112019335A (zh) 一种基于sm2算法的多方协同加解密方法及装置、系统、介质

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
GR01 Patent grant
GR01 Patent grant