CN110971405A - 多方协同的sm2签名、解密方法及其系统 - Google Patents

多方协同的sm2签名、解密方法及其系统 Download PDF

Info

Publication number
CN110971405A
CN110971405A CN201911246954.XA CN201911246954A CN110971405A CN 110971405 A CN110971405 A CN 110971405A CN 201911246954 A CN201911246954 A CN 201911246954A CN 110971405 A CN110971405 A CN 110971405A
Authority
CN
China
Prior art keywords
fragment
private key
slice
fragments
signature
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
CN201911246954.XA
Other languages
English (en)
Other versions
CN110971405B (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.)
Alipay Hangzhou Information Technology Co Ltd
Original Assignee
Alipay Hangzhou Information Technology 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 Alipay Hangzhou Information Technology Co Ltd filed Critical Alipay Hangzhou Information Technology Co Ltd
Priority to CN201911246954.XA priority Critical patent/CN110971405B/zh
Publication of CN110971405A publication Critical patent/CN110971405A/zh
Application granted granted Critical
Publication of CN110971405B publication Critical patent/CN110971405B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/0825Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using asymmetric-key encryption or public key infrastructure [PKI], e.g. key signature or public key certificates
    • 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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0891Revocation or update of secret information, e.g. encryption key update or rekeying

Landscapes

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

Abstract

本说明书中的实施例提供了多方协同的SM2签名、解密方法及其系统,涉及多方协同的私钥分片生成方法、私钥更新方法、SM2公钥生成方法、SM2签名方法、SM2解密方法及其系统。通过提供的方法和系统,多个协同方可协作完成私钥分片的生成、私钥分片更新、SM2公钥生成以及SM2签名/解密。其中,协同方可指持有私钥分片的任一方。本说明书的实施例可以用于多方安全计算中的数据加密或传输,以保护各计算方的隐私安全。

Description

多方协同的SM2签名、解密方法及其系统
技术领域
本说明书实施例涉及信息技术领域,特别涉及一种多方协同的SM2签名方法、公钥生成方法及系统。
背景技术
私钥的保护和使用是账户安全的重要问题之一。例如,在比特币或其他密码货币中,数字签名算法被广泛用于生成交易,即:交易发起方用私钥对一笔交易进行签名运算以生成数字签名,再将该笔交易和数字签名一起发送给验证节点。若验证节点使用交易发起方的公钥成功验签(即,验证数字签名得到的交易与接收到的交易一致),则说明该笔交易合法;否则,则说明该笔交易不合法。可以看出,一方面数字签名可用于证明交易的发起方即是账户私钥的拥有者,另一方面数字签名还可以保证交易在传输过程中没有被修改过,即实现了密码学中身份认证和数据完整性两项功能。
有鉴于此,希望提供一种安全有效的私钥保护和使用方法。
发明内容
本说明书实施例之一提供一种多方协同的SM2签名方法,其中,所述方法由t个参与方中的某一参与方的至少一个处理器执行,t为大于1的整数,所述方法包括:获取私钥分片;基于预设算法计算待签名消息的映射值;生成第一随机数分片;将所述第一随机数分片与SM2公共系统参数中的第一参数进行运算,得到第一运算分片,并将第一运算分片发送给其他参与方;累加自身的第一运算分片以及来自其他t-1个参与方的第一运算分片,得到第一运算值;基于待签名消息的映射值、第一运算值以及SM2公共系统参数中的第二参数,计算SM2签名的第一部分;生成第二随机数分片;至少根据所述私钥分片、第一随机数分片、第二随机数分片和SM2签名的第一部分,计算SM2签名的第二部分的分片;将所述SM2签名的第二部分的分片发送给其他参与方;累加自身的SM2签名的第二部分的分片以及来自其他t-1个参与方的SM2签名的第二部分的分片,得到SM2签名的第二部分。
本说明书实施例之一提供一种多方协同的SM2签名系统,其中,所述系统对应于t个参与方中的某一参与方,t为大于1的整数,所述系统包括:私钥分片获取模块,用于获取私钥分片;映射值计算模块,用于基于预设算法计算待签名消息的映射值;第一随机数生成模块,用于生成第一随机数分片;第一运算分片发送模块,用于将所述第一随机数分片与SM2公共系统参数中的第一参数进行运算,得到第一运算分片,并将第一运算分片发送给其他参与方;第一运算值计算模块,用于累加自身的第一运算分片以及来自其他t-1个参与方的第一运算分片,得到第一运算值;签名第一部分计算模块,用于基于待签名消息的映射值、第一运算值以及SM2公共系统参数中的第二参数,计算SM2签名的第一部分;第二随机数生成模块,用于生成第二随机数分片;签名第二部分分片计算模块,用于至少根据所述私钥分片、第一随机数分片、第二随机数分片和SM2签名的第一部分,计算SM2签名的第二部分的分片;签名第二部分分片发送模块,用于将所述SM2签名的第二部分的分片发送给其他参与方;签名第二部分计算模块,用于累加自身的SM2签名的第二部分的分片以及来自其他t-1个参与方的SM2签名的第二部分的分片,得到SM2签名的第二部分。
本说明书实施例之一提供一种多方协同的SM2签名装置,其中,包括至少一个处理器和至少一个存储设备,所述存储设备用于存储指令,当至少一个处理器执行指令时,实现如本说明书任一实施例所述的多方协同的SM2签名方法。
本说明书实施例之一提供一种多方协同的SM2解密方法,其中,所述方法由t个参与方中的某一参与方的至少一个处理器执行,t为大于1的整数,待解密密文包括三部分,所述方法包括:获取私钥分片;将验证结果为合法的第一部分密文与私钥分片进行运算得到协同解密分片,并将所述协同解密分片发送给其他参与方;基于自身的协同解密分片以及来自其他t-1个参与方的协同解密分片,生成中间结果(x2,y2);基于所述中间结果(x2,y2)进行后续解密流程。
本说明书实施例之一提供一种多方协同的SM2解密系统,其中,所述系统对应于t个参与方中的某一参与方,t为大于1的整数,待解密密文包括三部分,所述系统包括:私钥分片获取模块,用于获取私钥分片;协同解密分片发送模块,用于将验证结果为合法的第一部分密文与私钥分片进行运算得到协同解密分片,并将所述协同解密分片发送给其他参与方;中间结果计算单元,用于基于自身的协同解密分片以及来自其他t-1个参与方的协同解密分片,生成中间结果(x2,y2);解密模块,用于基于所述中间结果(x2,y2)进行后续解密流程。
本说明书实施例之一提供一种多方协同的SM2解密装置,其中,包括至少一个处理器和至少一个存储设备,所述存储设备用于存储指令,当至少一个处理器执行指令时,实现如本说明书任一实施例所述的多方协同的SM2解密方法。
本说明书实施例之一提供一种多方协同的SM2公钥生成方法,其中,所述方法由M个协同方中的某一协同方的至少一个处理器执行,M为大于1的整数,所述方法包括:获取私钥分片;将所述私钥分片与SM2公共系统参数中的第一参数进行运算,得到私钥分享分片,并将所述私钥分享分片发送给其他参与方;根据自身的私钥分享分片以及来自其他M-1个协同方的私钥分享分片,生成公钥。
本说明书实施例之一提供一种多方协同的SM2公钥生成系统,其中,所述系统对应于M个协同方中的某一协同方,M为大于1的整数,所述系统包括:私钥分片获取模块,用于获取私钥分片;私钥分享分片发送模块,用于将所述私钥分片与SM2公共系统参数中的第一参数进行运算,得到私钥分享分片,并将所述私钥分享分片发送给其他参与方;公钥生成模块,用于根据自身的私钥分享分片以及来自其他M-1个协同方的私钥分享分片,生成公钥。
本说明书实施例之一提供一种多方协同的SM2公钥生成装置,其中,包括至少一个处理器和至少一个存储设备,所述存储设备用于存储指令,当至少一个处理器执行指令时,实现如本说明书任一实施例所述的多方协同的SM2公钥生成方法。
本说明书实施例之一提供一种多方协同的私钥分片生成方法,其中,所述方法由N个协同方中的某一协同方的至少一个处理器执行,N为大于t的整数,t为大于1的整数,各协同方具有公开且互不相同的标识数值,所述方法包括:随机生成t-1次第一多项式;分别将各协同方的标识数值带入所述第一多项式,计算得到N个第一多项式分片;将其中N-1个第一多项式分片对应发送给其他N-1个协同方;累加自身标识数值对应的第一多项式分片以及来自其他N-1个协同方的第一多项式分片,得到门限分片,将所述门限分片确定为私钥分片。
本说明书实施例之一提供一种多方协同的私钥分片生成系统,其中,所述系统对应于N个协同方中的某一协同方,N为大于t的整数,t为大于1的整数,各协同方具有公开且互不相同的标识数值,所述系统包括:第一多项式生成模块,用于随机生成t-1次第一多项式;第一多项式分片计算模块,用于分别将各协同方的标识数值带入所述第一多项式,计算得到N个第一多项式分片;第一多项式分片发送模块,用于将其中N-1个第一多项式分片对应发送给其他N-1个协同方;私钥分片私钥分片生成模块,用于累加自身标识数值对应的第一多项式分片以及来自其他N-1个协同方的第一多项式分片,得到门限分片,将所述门限分片确定为私钥分片。
本说明书实施例之一提供一种多方协同的私钥分片生成装置,其中,包括至少一个处理器和至少一个存储设备,所述存储设备用于存储指令,当至少一个处理器执行指令时,实现如本说明书任一实施例所述的多方协同的私钥分片生成方法。
本说明书实施例之一提供一种多方协同的私钥分片更新方法,其中,所述方法由M个协同方中的某一协同方的至少一个处理器执行,M为大于1的整数,各协同方具有公开且互不相同的标识数值,以及私钥分片,所述方法包括:随机生成t-1次第二多项式,且满足其常数项为0;t为不大于M的整数;分别将各协同方的标识数值带入所述第二多项式,计算得到M个第二多项式分片;将其中M-1个第二多项式分片对应发送给其他M-1个协同方;累加自身标识数值对应的第二多项式分片以及来自其他M-1个协同方的第二多项式分片,得到更新分片;基于所述更新分片更新所述密钥分片。
本说明书实施例之一提供一种多方协同的私钥分片更新系统,其中,所述系统对应于M个协同方中的某一协同方,M为大于1的整数,各协同方具有公开且互不相同的标识数值,以及私钥分片,所述系统包括:第二多项式生成模块,用于随机生成t-1次第二多项式,且满足其常数项为0;t为不大于M的整数;第二多项式分片计算模块,用于分别将各协同方的标识数值带入所述第二多项式,计算得到M个第二多项式分片;第二多项式分片发送模块,用于将其中M-1个第二多项式分片对应发送给其他M-1个协同方;更新分片计算模块,用于累加自身标识数值对应的第二多项式分片以及来自其他M-1个协同方的第二多项式分片,得到更新分片;基于所述更新分片更新所述私钥分片。
本说明书实施例之一提供一种多方协同的私钥分片更新装置,其中,包括至少一个处理器和至少一个存储设备,所述存储设备用于存储指令,当至少一个处理器执行指令时,实现如本说明书任一实施例所述的多方协同的私钥分片更新方法。
附图说明
本说明书将以示例性实施例的方式进一步说明,这些示例性实施例将通过附图进行详细描述。这些实施例并非限制性的,在这些实施例中,相同的编号表示相同的结构,其中:
本说明书将以示例性实施例的方式进一步说明,这些示例性实施例将通过附图进行详细描述。这些实施例并非限制性的,在这些实施例中,相同的编号表示相同的结构,其中:
图1是根据本说明书一些实施例所示的多方协同的私钥分片生成方法的示例性流程图;
图2是根据本说明书一些实施例所示的多方协同的私钥分片生成系统的示例性框图;
图3是根据本说明书一些实施例所示的多方协同的私钥分片更新方法的示例性流程图;
图4是根据本说明书一些实施例所示的多方协同的私钥分片更新系统的示例性框图;
图5是根据本说明书一些实施例所示的多方协同的SM2公钥生成方法的示例性流程图;
图6是根据本说明书一些实施例所示的多方协同的SM2公钥生成系统的示例性框图;
图7是根据本说明书一些实施例所示的多方协同的SM2签名方法的示例性流程示意图;
图8是根据本申请一些实施例所示的计算SM2签名的第二部分的分片的示例性流程示意图;
图9是根据本说明书一些实施例所示的多方协同的SM2签名系统的示例性框图;
图10是根据本说明书一些实施例所示的SM2解密方法的示例性流程示意图;
图11是根据本说明书一些实施例所示的SM2解密系统的示例性框图。
具体实施方式
为了更清楚地说明本说明书实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单的介绍。显而易见地,下面描述中的附图仅仅是本说明书的一些示例或实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图将本说明书应用于其它类似情景。除非从语言环境中显而易见或另做说明,图中相同标号代表相同结构或操作。
应当理解,本文使用的“系统”、“装置”、“单元”和/或“模组”是用于区分不同级别的不同组件、元件、部件、部分或装配的一种方法。然而,如果其他词语可实现相同的目的,则可通过其他表达来替换所述词语。
如本说明书和权利要求书中所示,除非上下文明确提示例外情形,“一”、“一个”、“一种”和/或“该”等词并非特指单数,也可包括复数。一般说来,术语“包括”与“包含”仅提示包括已明确标识的步骤和元素,而这些步骤和元素不构成一个排它性的罗列,方法或者设备也可能包含其它的步骤或元素。
本说明书中使用了流程图用来说明根据本说明书的实施例的系统所执行的操作。应当理解的是,前面或后面操作不一定按照顺序来精确地执行。相反,可以按照倒序或同时处理各个步骤。同时,也可以将其他操作添加到这些过程中,或从这些过程移除某一步或数步操作。
本说明书中的实施例提供了多方协同的私钥分片生成方法、私钥更新方法、SM2公钥生成方法、SM2签名方法、SM2解密方法及其系统。其中,SM2是国家密码管理局发布的一种椭圆曲线公钥密码算法(以下称为SM2标准或SM2算法)。通过提供的方法和系统,多个协同方可协作完成私钥分片的生成、私钥分片更新、SM2公钥生成以及SM2签名/解密。其中,协同方可指持有私钥分片的任一方。
应当注意的是,本说明书涉及的一种或多种运算可以是广义上的。例如,加减乘除可以是通常所理解的四则运算,也可以属于SM2标准下椭圆曲线点群所规定的运算体系。由于群所规定的运算体系所满足的性质(如,封闭性、结合律、有单位元、有逆元等)类似于常见的四则运算,为了方便表示和理解,本说明书也对其采用了相同或类似于四则运算的表述,例如,加、和、差、乘积等。
本说明书一些实施例提供的各种多方协同方法(如,SM2公钥生成方法、SM2签名方法、SM2解密方法等)以私钥分片技术为基础。
在一些实施例中,私钥分片可以是基于加法秘密分享算法获得的加法分片。加法秘密分享算法中,各加法分片相加可得到分享的值(即秘密)。若以加法分片作为私钥分片,各协同方可以随机生成一个数值作为其私钥分片(即加法分片),将所有协同方的私钥分片相加可以恢复私钥,缺少任意协同方的私钥分片的情况下无法获得私钥的任何信息。
在一些实施例中,私钥分片可以是基于门限秘密分享算法的门限分片。门限秘密分享算法中,存在某t-1次多项式(以下称为私钥多项式),该私钥多项式并不为任一协同方知晓,其常数项作为分享的值(即秘密),其中t为小于N的正整数,相应地,N个协同方中的每一个持有一个门限分片(关于门限分片的生成过程可以参见图1的相关说明)。前述私钥多项式满足:将某协同方的标识数值带入私钥多项式后,其值等于该协同方的门限分片。若以门限分片作为私钥分片,则通过来自N个协同方的任意至少t个参与方的私钥分片可恢复私钥。对于门限分片性质的私钥分片,任意至少t个参与方可利用各自的私钥分片协作完成签名/解密。应当注意的是,本说明书中提及的参与方特指参与私钥签名/解密的协同方。
关于基于门限秘密分享的私钥分片的生成方法,可以参考图1及其相关描述。
图1是根据本说明书一些实施例所示的多方协同的私钥分片生成方法的示例性流程图。该流程100可由N个协同方中的某一协同方的至少一个处理器执行,N为大于t的整数,t为大于1的整数。该流程100可包括:
步骤110,随机生成t-1次第一多项式。
步骤120,分别将各协同方的标识数值代入第一多项式,计算得到N个第一多项式分片。
步骤130,将其中N-1个第一多项式分片对应发送给其他N-1个协同方。
步骤140,累加自身标识数值对应的第一多项式分片以及来自其他N-1个协同方的第一多项式分片,得到门限分片,将所述门限分片确定为私钥分片。
这里不妨假设:N个协同方的标识数值为1~N,其中标识数值为i的协同方生成的第一多项式为f_i(x)。那么,对于标识数值为i的协同方,流程100可表示为:随机生成f_i(x);分别将1~N代入f_i(x),得到f_i(1)~f_i(N);将f_i(j)发送给标识数值为j的协同方,其中,j≠i;累加f_1(i)~f_N(i),得到门限分片,将该门限分片确定为私钥分片。
当需要进行签名或解密时,仅需要来自N个协同方的不少于t个的参与方即可完成签名或解密操作。在一些实施例中,在完成签名或解密时,可以先将门限分片转化成加法分片,再利用各参与方的加法分片进行签名/解密流程。对于任一参与方,该转化方法可以包括:根据自身的标识数值和其他t-1个参与方的标识数值计算拉格朗日插值系数,将拉格朗日插值系数与门限分片的乘积确定为转化后的加法分片。在一些实施例中,沿用前面的假设,标识数值为i的参与方的拉格朗日插值系数可以是x取0时计算式
Figure BDA0002307307920000101
的值。
私钥分片可以应用于各种场景。在一些实施例中,用户的私钥可以以多个私钥分片的形式存储在多个密钥管理服务器(Key Management System,KMS)中,其中每个KMS即相当于一个协同方,当需要进行私钥签名/解密时,则调用足够的密钥管理服务API(Application Programming Interface,应用程序接口)来生成签名或解密密文,其中每个API对应的KMS也相当于一个参与方。如此,即使部分KMS中的私钥分片泄露,也不会导致私钥的暴露,提高了私钥保护和使用的安全性。在一些实施例中,多个协同方可以指共同管理同一账户的不同角色,例如,区块链系统中管理同一账户的监管机构、银行、用户、授权方等,他们各自拥有并保管其私钥分片,当需要生成公钥或签名/解密时,至少部分协同方利用各自的私钥分片协作完成SM2公钥的生成和SM2签名/解密。
图2是根据本说明书一些实施例所示的多方协同的私钥分片生成系统的示例性框图。该系统200对应于N个协同方中的某一协同方,其中,N的定义与图1相同。在一些实施例中,该系统200可以包括第一多项式生成模块210、第一多项式分片计算模块220、第一多项式分片发送模块230和私钥分片生成模块240。
在一些实施例中,第一多项式生成模块210可以用于随机生成t-1次第一多项式。关于第一多项式生成模块210的具体实施方式,可以参考图1披露的步骤110的相关描述。即,步骤110可以由第一多项式生成模块210执行。
在一些实施例中,第一多项式分片计算模块220可以用于分别将各协同方的标识数值代入第一多项式,计算得到N个第一多项式分片。关于第一多项式分片计算模块220的具体实施方式,可以参考图1披露的步骤120的相关描述。即,步骤120可以由第一多项式分片计算模块220执行。
在一些实施例中,第一多项式分片发送模块230可以用于将其中N-1个第一多项式分片对应发送给其他N-1个协同方。关于第一多项式分片发送模块230的具体实施方式,可以参考图1披露的步骤130的相关描述。即,步骤130可以由第一多项式分片发送模块230执行。
在一些实施例中,私钥分片生成模块240可以用于累加自身标识数值对应的第一多项式分片以及来自其他N-1个协同方的第一多项式分片,得到门限分片,将所述门限分片确定为私钥分片。关于私钥分片生成模块240的具体实施方式,可以参考图1披露的步骤140的相关描述。即,步骤140可以由私钥分片生成模块240执行。
图3是根据本说明书一些实施例所示的多方协同的私钥分片更新方法的示例性流程图。该流程300可由M个协同方中的某一协同方的至少一个处理器执行,M为大于1的整数,各协同方具有私钥分片和公开且互不相同的标识数值。这里的标识数值可以与图1中的相同。协同方是指持有私钥分片的全体,M是协同方的总数,当私钥分片是基于门限秘密分享算法时,M等于N。该流程300可包括:
步骤310,随机生成t-1次第二多项式,且满足其常数项为0,t为不大于M的整数。
步骤320,分别将各协同方的标识数值代入第二多项式,计算得到M个第二多项式分片。
步骤330,将其中M-1个第二多项式分片对应发送给其他M-1个协同方。
步骤340,累加自身标识数值对应的第二多项式分片以及来自其他M-1个协同方的第二多项式分片,得到更新分片。
步骤350,基于更新分片更新私钥分片。
在一些实施例中,私钥分片可以是加法分片性质的随机数。根据前述关于门限分片的描述,可知步骤330得到的更新分片属于门限分片,因此在更新加法分片性质的私钥分片时需要将门限分片性质的更新分片转化为加法更新分片,并将私钥分片与转化后的加法更新分片之和值作为更新后的私钥分片。关于将门限分片性质的更新分片转化为加法更新分片的方法,可以参考前文对将门限分片转换为加法分片的描述。
在一些实施例中,私钥分片可以是门限分片,则参与方可直接将私钥分片与更新分片之和值作为更新后的私钥分片。
应当注意的是,可以证明:各参与方的私钥分片对应的私钥在更新前后不会发生变化。如此,各协同方无需重新计算共同的公钥。
通过持续更新私钥分片,攻击者需要在私钥分片的两次更新之间获得足够数量的参与方的私钥分片,才可以恢复出私钥,使得私钥获得了更好的保护。
图4是根据本说明书一些实施例所示的多方协同的私钥分片更新系统的示例性框图。该系统400可对应于M个协同方中的某一协同方,M为大于1的整数,各协同方具有私钥分片和公开且互不相同的标识数值。这里的标识数值可以与图1中的相同。协同方是指持有私钥分片的全体,M是协同方的总数,当私钥分片是基于门限秘密分享算法时,M等于N。在一些实施例中,该系统400可包括:第二多项式生成模块410、第二多项式分片计算模块420、第二多项式分片发送模块430、更新分片计算模块440和更新模块450。
在一些实施例中,第二多项式生成模块410可以用于随机生成t-1次第二多项式,且满足其常数项为0,t为不大于M的整数。关于第二多项式生成模块410的具体实施方式,可以参考图3披露的步骤310的相关描述。即,步骤310可由第二多项式生成模块410执行。
在一些实施例中,第二多项式分片计算模块420可以用于分别将各协同方的标识数值代入第二多项式,计算得到M个第二多项式分片。关于第二多项式分片计算模块420的具体实施方式,可以参考图3披露的步骤320的相关描述。即,步骤320可由第二多项式分片计算模块420执行。
在一些实施例中,第二多项式分片发送模块430可以用于将其中M-1个第二多项式分片对应发送给其他M-1个协同方。关于第二多项式分片发送模块430的具体实施方式,可以参考图3披露的步骤330的相关描述。即,步骤330可由第二多项式分片发送模块430执行。
在一些实施例中,更新分片计算得模块440可以用于累加自身标识数值对应的第二多项式分片以及来自其他M-1个协同方的第二多项式分片,得到更新分片。关于更新分片计算模块440的具体实施方式,可以参考图3披露的步骤340的相关描述。即,步骤340可由更新分片计算模块440执行。
在一些实施例中,更新模块450可以用于基于更新分片更新私钥分片。关于更新模块450的具体实施方式,可以参考图3披露的步骤350的相关描述。即,步骤350可由更新模块450执行。
图5是根据本说明书一些实施例所示的多方协同的SM2公钥生成方法的示例性流程图。该流程500可由M个协同方中的某一协同方的至少一个处理器执行,M的定义与图3中的相同。该流程500可包括:
步骤510,获取私钥分片。
任一协同方的私钥分片不对外(例如,对其他协同方)公开。
在一些实施例中,私钥分片可以是加法分片。进一步地,加法分片可以是随机生成的数值(即随机数)。在一些实施例中,私钥分片可以取正整数。进一步地,私钥分片可以取数值较大的正整数,以降低私钥分片的数值被试验出的概率。
在一些实施例中,私钥分片可以是门限分片。关于门限分片的获取方式,可以参考图1及其相关描述。
步骤520,将私钥分片与SM2公共系统参数中的第一参数进行运算,得到私钥分享分片,并将私钥分享分片发送给其他协同方。
私钥分享分片使得各协同方可利用私钥分片参与公钥生成,同时也可以对私钥分片起到隐匿作用(即不对外公开私钥分片)。
在一些实施例中,SM2公共系统参数可以包括椭圆曲线参数、工作的循环群的基点和阶等等。其中,基点为SM2椭圆曲线上的一点。任一协同方在执行SM2算法的相关操作前,可以先获取SM2要使用的公共系统参数,且各协同方获取的SM2公共系统参数应当是相同的。
在一些实施例中,第一参数可以包括基点,私钥分片可以取正整数。相应地,将私钥分片与SM2公共系统参数中的第一参数运算可以包括根据私钥分片和基点计算椭圆曲线上的另一点(称为倍点),倍点和基点的关系可表示为D=[d]G,其中,D表示倍点,d表示私钥分片,[]符号表示对其内容取整数,G表示基点。应当理解,基于一正整数和椭圆曲线上一点(以下称为原始点),可得到也位于该椭圆曲线上的该点的倍点。
可以证明:已知倍点和原始点,反推出两者对应正整数的难度极大。因此,倍点可以对相应的正整数起到隐匿作用。举例来说,将根据基点和取正整数的私钥分片计算出的倍点作为私钥分享分片时,私钥分享分片将不会暴露私钥分片。
步骤530,根据自身的私钥分享分片以及来自其他M-1个协同方的私钥分享分片,生成公钥。
每一协同方都需要向其他协同方发送私钥分享分片。对于任意协同方,当其接收到来自其他M-1个协同方的私钥分享分片后,根据自身的私钥分享分片以及来自其他M-1个协同方的私钥分享分片可得到公钥。应当注意的是,任意协同方获得的公钥按预期应是相同的。
在一些实施例中,当私钥分片为加法分片时,任一协同方累加自身的私钥分享分片以及来自其他M-1个协同方的私钥分享分片得到公钥。在一些实施例中,当私钥分片为门限分片时,任一协同方还需要额外计算各协同方对应的拉格朗日插值系数,进而分别将各协同方对应的拉格朗日插值系数和私钥分享分片运算,并累加各协同方对应的运算结果得到公钥。以运算采用计算倍点为例,首先假定:d_1~d_M表示M个协同方的私钥分片,r_1~r_M表示M个协同方对应的拉格朗日插值系数,G表示基点,P_A表示公钥。那么:对于加法分片,满足
Figure BDA0002307307920000151
对于门限分片,满足
Figure BDA0002307307920000152
关于拉格朗日差值系数的计算方法,可以参照前文关于将门限分片转化成加法分片的描述。
图6是根据本说明书一些实施例所示的多方协同的SM2公钥生成系统的示例性框图。该系统600可对应于M个协同方中的某一协同方,M的定义与图3中的相同。在一些实施例中,该系统600可以包括私钥分片获取模块610、私钥分享分片发送模块620和公钥生成模块630。
在一些实施例中,私钥分片获取模块610可以用于获取私钥分片。关于私钥分片获取模块610的具体实施方式,可以参考图5披露的步骤510的相关描述。即,步骤510可由私钥分片获取模块610执行。
在一些实施例中,私钥分享分片发送模块620可以用于将私钥分片与SM2公共系统参数中的第一参数运算,得到私钥分享分片,并将私钥分享分片发送给其他协同方。关于私钥分享分片发送模块620的具体实施方式,可以参考图5披露的步骤520的相关描述。即,步骤520可由私钥分享分片发送模块620执行。
在一些实施例中,公钥生成模块630根据自身的私钥分享分片以及来自其他M-1个协同方的私钥分享分片,生成公钥。关于公钥生成模块630的具体实施方式,可以参考图5披露的步骤530的相关描述。即,步骤530可由公钥生成模块630执行。
图7是根据本说明书一些实施例所示的多方协同的SM2签名方法的示例性流程示意图。该流程700可由t个参与方中的某一参与方的至少一个处理器执行,当私钥分片为加法分片时,t个参与方等同于拥有加法分片的全体协同方,当私钥分片为门限分片时,t个参与方来自N个协同方,t是小于N的正整数,t与各多项式中的t相同。该流程700可包括:
步骤702,获取私钥分片。
在一些实施例中,私钥分片可以是加法分片。进一步地,参与方可以生成随机数作为加法分片。
在一些实施例中,私钥分片可以是由参与方的门限分片转化而来的。即,步骤702可以包括:获取门限分片,基于获取的门限分片生成加法分片。关于门限分片和将门限分片转换成加法分片的更多细节,可以参照前文的相关描述。当私钥分片为门限分片时,需要基于其转换后的加法分片参与后续流程。
步骤704,基于预设算法计算待签名消息的映射值。
映射值可以用于唯一标识其映射的消息。在一些实施例中,预设算法可以是哈希算法,相应地,映射值可以是哈希值(也称为数字摘要)。
步骤706,生成第一随机数分片。
步骤706中第一随机数分片和步骤716中的第二随机数分片均由每个参与方独立生成并保管,不对外(例如,对其他参与方)公开。在一些实施例中,第一/第二随机数分片可以取正整数。进一步地,第一/第二随机数分片可以取数值较大的正整数,以降低第一/第二随机数分片的数值被试验出的概率。
步骤708,将第一随机数分片与SM2公共系统参数中的第一参数进行运算,得到第一运算分片,并将第一运算分片发送给其他参与方。
第一运算分片使得各参与方可利用第一随机数分片参与签名,同时也可以对第一随机数分片起到隐匿作用(即不对外公开私钥分片)。
在一些实施例中,第一参数可以包括基点,第一随机数分片可以取正整数。相应地,将第一随机数分片与SM2公共系统参数中的第一参数运算可以包括根据第一随机数分片和基点计算倍点。进而,每个参与方将计算出的倍点作为第一运算分片发送给其他参与方。
步骤712,累加自身的第一运算分片以及来自其他t-1个参与方的第一运算分片,得到第一运算值。
每一参与方都需要向其他参与方发送第一运算分片。对于任意参与方,当其接收到来自其他t-1个参与方的第一运算分片后,累加自身的第一运算分片以及来自其他t-1个参与方的第一运算分片可得到第一运算值。以将倍点作为第一运算分片为例,假设:t个参与方的第一随机数分片为k_1~k_t,G表示基点,Q表示第一运算值,则第一运算值可按计算式
Figure BDA0002307307920000171
计算。
步骤714,基于待签名消息的映射值、第一运算值以及SM2公共系统参数中的第二参数,计算SM2签名的第一部分。
在一些实施例中,当第一运算值按前述计算式
Figure BDA0002307307920000172
计算时,第二参数可以包括循环群的阶,并且,步骤714可以包括:计算映射值与第一运算值的横坐标的和值,将所述和值相相对循环群的阶求模,得到SM2签名的第一部分。即,SM2签名的第一部分可按计算式r=(e+x_1)mod n计算,其中,r表示SM2签名的第一部分,e表示待签名消息的映射值,x_1表示第一运算值的横坐标,n表示循环群的阶。
步骤716,生成第二随机数分片。
关于第二随机数的具体描述类似于第一随机数。
步骤718,至少根据私钥分片、第一随机数分片、第二随机数分片和SM2签名的第一部分,计算SM2签名的第二部分的分片。
关于步骤718的具体实现方式,可以参考图8及其相关描述。
步骤722,将SM2签名的第二部分的分片发送给其他参与方。
步骤724,累加自身的SM2签名的第二部分的分片以及来自其他t-1个参与方的SM2签名的第二部分的分片,得到SM2签名的第二部分。
每一参与方都需要向其他参与方SM2签名的第二部分的分片。对于任意参与方,当其接收到来自其他t-1个参与方的SM2签名的第二部分的分片后,累加自身的SM2签名的第二部分的分片以及来自其他t-1个参与方的SM2签名的第二部分的分片可得到SM2签名的第二部分。
SM2算法中,SM2签名的第一部和第二部分即组成SM2签名。在一些实施例中,当任一参与方获得SM2签名后,可以利用公钥对SM2签名进行验证。若验证通过,说明签名有效,则可以输出签名。若验证未通过,说明签名无效,则可进行报错。公钥基于各参与方的私钥分享分片获得,其中,各参与方的私钥分享分片为各参与方基于其私钥分片计算得到。关于公钥的更多细节,可以参考图5及其相关描述。
应当注意的是,任意参与方计算签名过程中得到的第一运算值以及SM2签名的第一部分和第二部分按预期均应是相同的。
图8是根据本申请一些实施例所示的计算SM2签名的第二部分的分片的示例性流程示意图。该流程800可包括:
步骤810,基于私钥分片生成第一输入分片。
在一些实施例中,步骤810可以包括:将参与方的数量(即t)对第二参数求模,计算私钥分片与求模结果的逆的和,得到第一输入分片。以第二参数为循环群的阶为例,假设:循环群的阶为n,d_i表示第i参与方的私钥分片,其中i为整数且1≤i≤t。则第一输入分片可以按计算式d_i=1/t+d_i计算。需要指出的是,目标值的倒数符号应当理解为对该目标值对循环群的阶(n)求模后对求模结果进一步求逆的结果。例如,1/t或t-1是指t对n的求模结果的逆。又如,1/u或u-1是指u对n的求模结果的逆。
步骤820,根据第一输入分片和第二随机数分片,利用多方乘法子协议计算第一输出分片,使得第一输出分片能够满足:各参与方的第一输出分片之和等于各参与方第一输入分片之和与各参与方第二随机数分片之和的乘积。
多方乘法子协议使各参与方在计算时使用的两个输入(记为第一输入和第二输入)和一个输出满足:各参与方的输出之和等于各参与方的第一输入之和与各参与方的第二输入之和的乘积。不妨假设:t个参与方的两个输入为α_1~α_t和β_1~β_t,t个参与方的输出为γ_1~γ_t。则多方乘法子协议满足
Figure BDA0002307307920000191
步骤830,将第一输出分片发送给其他参与方。
步骤840,累加第一输出分片以及来自其他t-1个参与方的第一输出分片,得到第一输出。
每一参与方都需要向其他参与方第一输出分片。对于任意参与方,当其接收到来自其他t-1个参与方的第一输出分片后,累加自身的第一输出分片以及来自其他t-1个参与方的第一输出分片可得到第一输出。
步骤850,基于第一输出和第二随机数分片,得到第二输入分片v_i。
在一些实施例中,参与方可计算第一输出相对循环群的阶的求模结果的逆与第二随机数分片的乘积,得到第二输入分片。即,参与方可按计算式v_i=a_i*u-1计算,其中,v_i表示任一参与方的第二输入分片,a_i表示该参与方的第二随机数分片,u表示第一输出,u-1表示第一输出相对循环群的阶的求模结果的逆。
步骤860,基于第一随机数分片、SM2签名的第一部分以及私钥分片中的一个或多个,得到第三输入分片w_i。
步骤870,根据第二输入分片v_i和第三输入分片w_i,利用多方乘法子协议计算第二输出分片s_i’,使得第二输出分片s_i’满足:各参与方的第二输出分片s_i’的和等于各参与方第二输入分片v_i的和与各参与方第三输入分片w_i的和的乘积。
步骤880,基于第二输出分片s_i’获得SM2签名的第二部分的分片s_i。
第三输入分片的构造方式可以有多种,由第二输入分片和不同的第三输入分片得到的第二输出分片是不同的,进而基于不同的第二输出分片获得SM2签名的第二部分的分片的方式也有所不同。下面分别介绍三种第三输入分片w_i的构造方式(对应步骤860)及相应的签名第二部分分片获得方式(对应步骤880)。
在一些实施例中,参与方可计算SM2签名的第一部分与私钥分片的乘积,并计算第一随机数分片与该乘积的差,得到第三输入分片w_i,即第三输入分片w_i=k_i-r*d_i,其中,k_i表示第一随机数分片,r表示SM2签名的第一部分,d_i表示私钥分片。基于此,参与方可以直接将第二输出分片s_i’确定为SM2签名的第二部分的分片s_i。
在一些实施例中,参与方可以将其第一随机数分片确定为第三输入分片w_i。基于此,步骤880可以包括:计算第二输入分片与SM2签名的第一部分的第一乘积,计算第二输出分片与第一乘积的和值,计算SM2签名的第一部分与参与方的数量相对循环群的阶的求模结果的逆的第二乘积,计算该和值与该第二乘积的差值,得到SM2签名的第二部分的分片s_i,即SM2签名的第二部分的分片s_i=s_i’+r*v_i-r/t,其中,r表示SM2签名的第一部分,r/t表示第二乘积。
在一些实施例中,参与方可以计算SM2签名的第一部分与参与方的数量对循环群的阶的求模结果的逆的乘积,并计算第一随机数分片与该乘积的和,得到第三输入分片w_i,即,第三输入分片w_i=k_i+r/t。基于此,步骤880可以包括:计算第二输出分片与该逆的差,得到SM2签名的第二部分的分片s_i,即,SM2签名的第二部分的分片s_i=s_i’-r/t。其中,s_i表示SM2签名的第二部分的分片,s_i’表示二输出分片,v_i表示第二输入分片,r表示SM2签名的第一部分,r/t表示第二乘积。
应当注意的是,本说明书对如何构造多方乘法子协议中的输入不做任何限制,例如,第三输入分片w_i的构造方式可以有多种,只要满足以下条件都可以视为本说明书公开的范围:基于多方乘法子协议中的输出获得的SM2签名的第二部分的分片之和等于SM2签名的第二部分的值。其中,SM2签名的第二部分的值等于表达式(k-r*d_A)*(1+d_A)-1的值,其中,k等于各参与方的第一随机数分片之和,d_A等于各参与方的加法性质的私钥分片之和,r表示SM2签名的第一部分。
图9是根据本说明书一些实施例所示的多方协同的SM2签名系统的示例性框图。该系统900可对应于t个参与方中的某一参与方,当私钥分片为加法分片时,t个参与方等同于拥有加法分片的全体协同方,当私钥分片为门限分片时,t个参与方来自N个协同方,t是小于N的正整数,t与各多项式中的t相同。在一些实施例中,该系统900可包括:私钥分片获取模块902、映射值计算模块904、第一随机数生成模块906、第一运算分片发送模块908、第一运算值计算模块912、签名第一部分计算模块914、第二随机数生成模块916、签名第二部分分片计算模块918、签名第二部分分片发送模块922、签名第二部分计算模块924。
在一些实施例中,私钥分片获取模块902可以用于获取私钥分片。关于私钥分片获取模块902的具体实施方式,可以参考图7披露的步骤702的相关描述。即,步骤702可由私钥分片获取模块902执行。
在一些实施例中,映射值计算模块904可以用于基于预设算法计算待签名消息的映射值。关于映射值计算模块904的具体实施方式,可以参考图7披露的步骤704的相关描述。即,步骤704可由映射值计算模块904执行。
在一些实施例中,第一随机数生成模块906可以用于生成第一随机数分片。关于第一随机数生成模块906的具体实施方式,可以参考图7披露的步骤706的相关描述。即,步骤706可由第一随机数生成模块906执行。
在一些实施例中,第一运算分片发送模块908可以用于将第一随机数分片与SM2公共系统参数中的第一参数进行运算,得到第一运算分片,并将第一运算分片发送给其他参与方。关于第一运算分片发送模块908的具体实施方式,可以参考图7披露的步骤708的相关描述。即,步骤708可由第一运算分片发送模块908执行。
在一些实施例中,第一运算值计算模块912可以用于累加自身的第一运算分片以及来自其他t-1个参与方的第一运算分片,得到第一运算值。关于第一运算值计算模块912的具体实施方式,可以参考图7披露的步骤712的相关描述。即,步骤712可由第一运算值计算模块912执行。
在一些实施例中,签名第一部分计算模块914可以用于基于待签名消息的映射值、第一运算值以及SM2公共系统参数中的第二参数,计算SM2签名的第一部分。关于签名第一部分计算模块914的具体实施方式,可以参考图7披露的步骤714的相关描述。即,步骤714可由签名第一部分计算模块914执行。
在一些实施例中,第二随机数生成模块916可以用于生成第二随机数分片。关于第二随机数生成模块916的具体实施方式,可以参考图7披露的步骤716的相关描述。即,步骤716可由第二随机数生成模块916执行。
在一些实施例中,签名第二部分分片计算模块918可以用于至少根据私钥分片、第一随机数分片、第二随机数分片和SM2签名的第一部分,计算SM2签名的第二部分的分片。关于签名第二部分分片计算模块918的具体实施方式,可以参考图7披露的步骤718的相关描述以及图8披露的流程800的相关描述。即,步骤718(或流程800)可由签名第二部分分片计算模块918执行。
在一些实施例中,签名第二部分分片发送模块922可以用于将SM2签名的第二部分的分片发送给其他参与方。关于将SM2签名的第二部分的分片发送给其他参与方的具体实施方式,可以参考图7披露的步骤722的相关描述。即,步骤722可由将SM2签名的第二部分的分片发送给其他参与方执行。
在一些实施例中,签名第二部分计算模块924可以用于累加SM2签名的第二部分的分片以及来自其他t-1个参与方的SM2签名的第二部分的分片,得到SM2签名的第二部分。关于签名第二部分计算模块924的具体实施方式,可以参考图7披露的步骤724的相关描述。即,步骤724可由签名第二部分计算模块924执行。
图10是根据本说明书一些实施例所示的SM2解密方法的示例性流程示意图。该流程1000可由t个参与方中的某一参与方的至少一个处理器执行,t为大于1的整数,待解密密文包括三部分,该流程1000可包括:
步骤1010,获取私钥分片。
在一些实施例中,私钥分片可以是加法分片。进一步地,加法分片可以是参与方生成的随机数。
在一些实施例中,私钥分片可以是由参与方的门限分片转化而来的。即,步骤402可以包括:获取门限分片,基于获取的门限分片生成加法分片。关于门限分片和将门限分片转换成加法分片的更多细节,可以参照前文的相关描述。当私钥分片为门限分片时,需要基于其转换后的加法分片参与后续流程。
步骤1020,将验证结果为合法的第一部分密文与私钥分片进行运算得到协同解密分片,并将协同解密分片发送给其他参与方。
SM2算法中,待解密密文被组织成串接的三部分,可表示为C=C1||C2||C3,其中,C表示完整的待解密密文,C1、C2、C3分别表示第一、第二、第三部分密文,“||”为串接符号。验证结果为合法是指第一部分密文满足SM2椭圆曲线方程且[h]C1不是无穷远点,其中,h表示余因子。在一些实施例中,可基于验证结果为合法的第一部分密文与私钥分片计算倍点,将计算出的倍点确定为协同解密分片,具体可以参考文中其他地方有关倍点的描述。
步骤1030,累加自身的协同解密分片以及来自其他t-1个参与方的协同解密分片,得到中间结果(x2,y2)。
中间结果(x2,y2)也是SM2椭圆曲线上一点。在一些实施例中,任一参与方可按计算式
Figure BDA0002307307920000241
计算中间结果,其中,d_i表示任一参与方的私钥分片,C1表示第一部分密文,[]符号表示对其内容取整。
步骤1040,基于中间结果(x2,y2)进行后续解密流程。
基于SM2标准,得到中间结果(x2,y2)后,进一步计算s=KDF(x2||y2,klen),其中KDF()代表密钥派生函数,klen为常数,表示明文长度。接着检测s是否为全零串,如果s为全零串,则报错,且不再继续解密,如果不是全零串则继续后续解密流程。
得到s后,计算
Figure BDA0002307307920000251
表示异或运算,C2表示第二部分密文。再接下来计算o=Hash(x2||M’||y2),Hash()表示对()内容进行哈希运算。得到o后,将其与第三部分密文C3比较,如果o不等于C3,则报错并结束解密流程,否则输出解密得到的明文M’。
图11是根据本说明书一些实施例所示的SM2解密系统的示例性框图。该系统1100可对应于t个参与方中的某一参与方,t为大于1的整数,待解密密文包括三部分。在一些实施例中,该系统1100可包括私钥分片获取模块1110、协同解密分片发送模块1120、中间结果计算单元1130和解密模块114。
在一些实施例中,私钥分片获取模块1110可以用于获取私钥分片。关于私钥分片获取模块1110的具体实施方式,可以参考图10披露的步骤1010的相关描述。即,步骤1010可由私钥分片获取模块1110执行。
在一些实施例中,协同解密分片发送模块1120可以用于获取私钥分片。关于协同解密分片发送模块1120的具体实施方式,可以参考图10披露的步骤1020的相关描述。即,步骤1020可由协同解密分片发送模块1120执行。
在一些实施例中,中间结果计算单元1130可以用于累加自身的协同解密分片以及来自其他t-1个参与方的协同解密分片,得到中间结果(x2,y2)。关于中间结果计算单元1130的具体实施方式,可以参考图10披露的步骤1030的相关描述。即,步骤1030可由中间结果计算单元1130执行。
在一些实施例中,解密模块1140可以用于基于中间结果(x2,y2)进行后续解密流程。关于解密模块1140的具体实施方式,可以参考图10披露的步骤1040的相关描述。即,步骤1040可由解密模块1140执行。
本说明书的一个或多个实施例涉及一个协同方/参与方向其他协同方/参与方传输数据,传输的数据包括但不限于第一/第二多项式分片、更新分片、私钥分享分片、第一运算分片、第一输出分片或SM2签名的第二部分的分片。在一些实施例中,若各协同方/参与方无法互相信任或数据在传输过程中可能被攻击,导致某一协同方/参与方发送方可能接收到错误的数据,则需要采用安全的数据传输方式。
在一些实施例,可以对待传输的目标数据生成证明,该证明用于证明目标数据满足预设关系,将所述证明与目标数据一并发送给其他协同方/参与方,接收方可以基于证明验证接收到的目标数据是满足预设关系。预设关系可以包括计算目标数据所用到的数学关系。
在一些实施例中,可以基于承诺机制传输目标数据。承诺机制的运行过程包括生成、打开和验证三个阶段。在生成阶段,发送方利用预设算法将要承诺的内容(例如,目标数据)生成对应的承诺,并将生成的承诺发送给接收方。承诺可以对其承诺的内容起到唯一标识和隐匿作用,具体地,可以参照本说明书对映射值的描述。在一些实施例中,对某一内容的承诺可以是该内容的哈希值。在打开阶段,发送方将承诺的内容发送给接收方。在验证阶段,接收方基于接收到的承诺的内容生成承诺,将生成的承诺与接收到的承诺进行比对,若比对结果为一致则承诺验证通过。在一些实施例中,在多方互相传输数据的情况下,任一方在打开阶段需要确保接收到所有其他方发送的承诺,才能将承诺的内容发送给其他所有方。否则,可能出现任一方确认接收到其他方正确的目标数据后,对自身原始的目标数据进行改动,基于改动后的目标数据生成承诺并发送承诺给其他方,以及将改动后的目标数据发送给其他方,如此将会导致其他方验证承诺通过后误信接收到的是未经改动的目标数据。
在一些实施例,还可以结合证明以及承诺机制完成数据传输。
以传输数据为倍点D_i=[d_i]G为例,N个协同方或t个参与方中的某一方结合证明以及承诺机制完成数据传输的流程可以包括:
为(D_i,d_i,G)生成离散对数证明作为倍点D_i的证明。倍点的证明能够证明存在一正整数使得将该正整数与基点运算可得到该倍点且证明生成方知道该整数的值。在一些实施例中,倍点的证明可以基于sigma协议生成。d_i可以是私钥分片,G可以是基点。
生成对目标数据D_i及其证明的承诺。
将承诺发送给其他N-1个协同方或其他t-1个参与方。
接收到其他N-1个协同方或其他t-1个参与方的承诺后,或者待其他N-1个协同方或其他t-1个参与方将各自的承诺发送出来以后,再将目标数据D_i及其证明发送给其他N-1个协同方或其他t-1个参与方。
验证其他N-1个协同方的承诺。
若承诺验证通过,则进一步基于接收到的目标数据D_i及其证明验证两者是否匹配。在一些实施例中,可以基于sigma协议验证证明。
若承诺和证明均验证通过,即承诺比对结果为一致且接收到的目标数据及其证明匹配时,可以认为接收到正确的目标数据,即可基于接收到的目标数据执行后续流程,例如,基于接收到的各倍点D_i生成公钥。应当理解,正确的目标数据包含两层意义:第一,目标数据未被改变过;第二,目标数据是按照预设关系得到的。
在一些实施例中,在执行多方协同的SM2签名流程时,当某参与方生成了第二随机数分片a_i后,也可以基于类似上述的流程,广播[a_i](G+P_A)及相关证明的承诺给其他方。待承诺打开后,所述某参与方验证接收到各其他方发送的承诺与证明,验证均通过后再继续后续的签名流程,如计算SM2签名的第二部分的分片等后续流程。
应当注意的是,上述一个或多个流程的描述仅仅是为了示例和说明,而不限定本申请的适用范围。对于本领域技术人员来说,在本申请的指导下可以对一个或多个流程进行各种修正和改变。然而,这些修正和改变仍在本申请的范围之内。
应当理解,图2、图4、图6、图9和图11所示的系统及其模块可以利用各种方式来实现。例如,在一些实施例中,系统及其模块可以通过硬件、软件或者软件和硬件的结合来实现。其中,硬件部分可以利用专用逻辑来实现;软件部分则可以存储在存储器中,由适当的指令执行系统,例如微处理器或者专用设计硬件来执行。本领域技术人员可以理解上述的方法和系统可以使用计算机可执行指令和/或包含在处理器控制代码中来实现,例如在诸如磁盘、CD或DVD-ROM的载体介质、诸如只读存储器(固件)的可编程的存储器或者诸如光学或电子信号载体的数据载体上提供了这样的代码。本说明书的系统及其模块不仅可以有诸如超大规模集成电路或门阵列、诸如逻辑芯片、晶体管等的半导体、或者诸如现场可编程门阵列、可编程逻辑设备等的可编程硬件设备的硬件电路实现,也可以用例如由各种类型的处理器所执行的软件实现,还可以由上述硬件电路和软件的结合(例如,固件)来实现。
需要注意的是,以上对于系统及其模块的描述,仅为描述方便,并不能把本说明书限制在所举实施例范围之内。可以理解,对于本领域的技术人员来说,在了解系统的原理后,可能在不背离这一原理的情况下,对各个模块进行任意组合,或者构成子系统与其他模块连接。例如,在一些实施例中,图2中披露的第一多项式分片计算模块220和第一多项式分片发送模块230可以由一个模块(如第一多项式分片发送模块230)实现这两个模块的功能。又如,图6披露的私钥分享分片发送模块620可以有一个系统的两个模块(如私钥分享分片生产模块,及私钥分享分片发送模块)来实现。在一些实施例中,图9中披露的私钥分片获取模块902和图11中披露的私钥分片获取模块1110可以是属于不同系统的两个模块,也可以是指同一个模块。诸如此类的变形,均在本说明书的保护范围之内。
本说明书实施例可能带来的有益效果包括但不限于:(1)SM2私钥以分片形式由多个协同方保管和使用,实现了多方协同的SM2私钥/公钥生成、私钥更新、私钥签名/解密;(2)每个协同方的私钥分片都是参与方独立生成或由参与方独立随机生成的数据以及其他参与方发送过来的数据共同生成的,能够恢复私钥的足够数量的私钥分片从未一起出现在任意地方,保证了私钥的安全性;(3)对于门限分片性质的私钥分片,不必所有持有私钥分片的协同方全部参与私钥签名/解密;(4)私钥分片的更新在保证私钥不变的基础上可以更好地保护私钥。需要说明的是,不同实施例可能产生的有益效果不同,在不同的实施例里,可能产生的有益效果可以是以上任意一种或几种的组合,也可以是其他任何可能获得的有益效果。
上文已对基本概念做了描述,显然,对于本领域技术人员来说,上述详细披露仅仅作为示例,而并不构成对本说明书实施例的限定。虽然此处并没有明确说明,本领域技术人员可能会对本说明书实施例进行各种修改、改进和修正。该类修改、改进和修正在本说明书实施例中被建议,所以该类修改、改进、修正仍属于本说明书示范实施例的精神和范围。
同时,本说明书使用了特定词语来描述本说明书的实施例。如“一个实施例”、“一实施例”、和/或“一些实施例”意指与本说明书至少一个实施例相关的某一特征、结构或特点。因此,应强调并注意的是,本说明书中在不同位置两次或多次提及的“一实施例”或“一个实施例”或“一个替代性实施例”并不一定是指同一实施例。此外,本说明书的一个或多个实施例中的某些特征、结构或特点可以进行适当的组合。
此外,本领域技术人员可以理解,本说明书实施例的各方面可以通过若干具有可专利性的种类或情况进行说明和描述,包括任何新的和有用的工序、机器、产品或物质的组合,或对他们的任何新的和有用的改进。相应地,本说明书实施例的各个方面可以完全由硬件执行、可以完全由软件(包括固件、常驻软件、微码等)执行、也可以由硬件和软件组合执行。以上硬件或软件均可被称为“数据块”、“模块”、“引擎”、“单元”、“组件”或“系统”。此外,本说明书实施例的各方面可能表现为位于一个或多个计算机可读介质中的计算机产品,该产品包括计算机可读程序编码。
计算机存储介质可能包含一个内含有计算机程序编码的传播数据信号,例如在基带上或作为载波的一部分。该传播信号可能有多种表现形式,包括电磁形式、光形式等,或合适的组合形式。计算机存储介质可以是除计算机可读存储介质之外的任何计算机可读介质,该介质可以通过连接至一个指令执行系统、装置或设备以实现通讯、传播或传输供使用的程序。位于计算机存储介质上的程序编码可以通过任何合适的介质进行传播,包括无线电、电缆、光纤电缆、RF、或类似介质,或任何上述介质的组合。
本说明书实施例各部分操作所需的计算机程序编码可以用任意一种或多种程序语言编写,包括面向对象编程语言如Java、Scala、Smalltalk、Eiffel、JADE、Emerald、C++、C#、VB.NET、Python等,常规程序化编程语言如C语言、VisualBasic、Fortran2003、Perl、COBOL2002、PHP、ABAP,动态编程语言如Python、Ruby和Groovy,或其他编程语言等。该程序编码可以完全在用户计算机上运行、或作为独立的软件包在用户计算机上运行、或部分在用户计算机上运行部分在远程计算机运行、或完全在远程计算机或处理设备上运行。在后种情况下,远程计算机可以通过任何网络形式与用户计算机连接,比如局域网(LAN)或广域网(WAN),或连接至外部计算机(例如通过因特网),或在云计算环境中,或作为服务使用如软件即服务(SaaS)。
此外,除非权利要求中明确说明,本说明书实施例所述处理元素和序列的顺序、数字字母的使用、或其他名称的使用,并非用于限定本说明书实施例流程和方法的顺序。尽管上述披露中通过各种示例讨论了一些目前认为有用的发明实施例,但应当理解的是,该类细节仅起到说明的目的,附加的权利要求并不仅限于披露的实施例,相反,权利要求旨在覆盖所有符合本说明书实施例实质和范围的修正和等价组合。例如,虽然以上所描述的系统组件可以通过硬件设备实现,但是也可以只通过软件的解决方案得以实现,如在现有的处理设备或移动设备上安装所描述的系统。
同理,应当注意的是,为了简化本说明书实施例披露的表述,从而帮助对一个或多个发明实施例的理解,前文对本说明书实施例的描述中,有时会将多种特征归并至一个实施例、附图或对其的描述中。但是,这种披露方法并不意味着本说明书实施例对象所需要的特征比权利要求中提及的特征多。实际上,实施例的特征要少于上述披露的单个实施例的全部特征。
针对本说明书引用的每个专利、专利申请、专利申请公开物和其他材料,如文章、书籍、说明书、出版物、文档等,特此将其全部内容并入本说明书作为参考。与本说明书内容不一致或产生冲突的申请历史文件除外,对本申请权利要求最广范围有限制的文件(当前或之后附加于本说明书中的)也除外。需要说明的是,如果本说明书附属材料中的描述、定义、和/或术语的使用与本说明书所述内容有不一致或冲突的地方,以本说明书的描述、定义和/或术语的使用为准。
最后,应当理解的是,本说明书中所述实施例仅用以说明本说明书实施例的原则。其他的变形也可能属于本说明书实施例的范围。因此,作为示例而非限制,本说明书实施例的替代配置可视为与本说明书的教导一致。相应地,本说明书的实施例不仅限于本说明书明确介绍和描述的实施例。

Claims (37)

1.一种多方协同的SM2签名方法,其中,所述方法由t个参与方中的某一参与方的至少一个处理器执行,t为大于1的整数,所述方法包括:
获取私钥分片;
基于预设算法计算待签名消息的映射值;
生成第一随机数分片;
将所述第一随机数分片与SM2公共系统参数中的第一参数进行运算,得到第一运算分片,并将第一运算分片发送给其他参与方;
累加自身的第一运算分片以及来自其他t-1个参与方的第一运算分片,得到第一运算值;
基于待签名消息的映射值、第一运算值以及SM2公共系统参数中的第二参数,计算SM2签名的第一部分;
生成第二随机数分片;
至少根据所述私钥分片、第一随机数分片、第二随机数分片和SM2签名的第一部分,计算SM2签名的第二部分的分片;
将所述SM2签名的第二部分的分片发送给其他参与方;
累加自身的SM2签名的第二部分的分片以及来自其他t-1个参与方的SM2签名的第二部分的分片,得到SM2签名的第二部分。
2.根据权利要求1所述的方法,其中,所述私钥分片为加法分片。
3.根据权利要求2所述的方法,其中,所述参与方来自于N个协同方,N为大于t的整数;每个协同方分别保存有门限分片;
所述获取私钥分片,还包括:
获取门限分片;
基于所述门限分片生成所述加法分片。
4.根据权利要求3所述的方法,其中,所述N个协同方分别具有公开且互不相同的标识数值;
所述基于所述门限分片生成所述加法分片,还包括:
基于自身的标识数值与其他t-1个参与方的标识数值计算拉格朗日系数;
将拉格朗日系数与所述门限分片的运算结果确定为所述加法分片。
5.根据权利要求4所述的方法,其中,所述门限分片通过以下步骤获得:
随机生成t-1次第一多项式;
分别将各协同方的标识数值带入所述第一多项式,计算得到N个第一多项式分片;
将其中N-1个第一多项式分片对应发送给其他N-1个协同方;
累加自身标识数值对应的第一多项式分片以及来自其他N-1个协同方的第一多项式分片,得到所述门限分片。
6.根据权利要求1所述的方法,其中,所述第一参数包括基点;所述将所述第一随机数分片与SM2公共系统参数中的第一参数进行运算,得到第一运算分片,包括:
基于所述基点和所述第一随机数分片计算倍点,将计算出的倍点确定为所述第一运算分片。
7.根据权利要求6所述的方法,其中,所述第二参数包括循环群的阶;所述基于待签名消息的映射值、第一运算值以及SM2公共系统参数中的第二参数,计算SM2签名的第一部分,包括:
计算所述映射值与第一运算值的横坐标的和值;
将所述和值循环群的阶求模,得到SM2签名的第一部分。
8.根据权利要求1所述的方法,其中,所述至少根据所述私钥分片、所述第一随机数分片、所述第二随机数分片和所述SM2签名的第一部分,计算SM2签名的第二部分的分片,包括:
基于所述私钥分片生成第一输入分片;
根据所述第一输入分片和第二随机数分片,利用多方乘法子协议计算第一输出分片,使得第一输出分片能够满足:各参与方的第一输出分片之和等于各参与方第一输入分片之和与各参与方第二随机数分片之和的乘积;
将所述第一输出分片发送给其他参与方;
累加自身的第一输出分片以及来自其他t-1个参与方的第一输出分片,得到第一输出;
基于所述第一输出和第二随机数分片,得到第二输入分片;
基于所述第一随机数分片、SM2签名的第一部分以及私钥分片中的一个或多个,得到第三输入分片;
根据所述第二输入分片和所述第三输入分片,利用多方乘法子协议计算第二输出分片,使得所述第二输出分片满足:各参与方的第二输出分片之和等于各参与方第二输入分片之和与各参与方第三输入分片之和的乘积;
基于所述第二输出分片获得SM2签名的第二部分的分片。
9.根据权利要求8所述的方法,其中,所述基于所述私钥分片生成第一输入分片包括:
将所述参与方的数量相对所述第二参数求模;
计算所述私钥分片与求模结果的逆的和,得到所述第一输入分片。
10.根据权利要求8所述的方法,其中,所述基于第一输出和所述第二随机数分片,得到第二输入分片,包括:
计算第一输出相对循环群的阶的求模结果的逆与第二随机数分片的乘积,得到第二输入分片。
11.根据权利要求8所述的方法,其中,所述基于所述第一随机数分片、SM2签名的第一部分以及私钥分片中的一个或多个,得到第三输入分片,包括:
计算SM2签名的第一部分与私钥分片的乘积;
计算第一随机数分片与所述乘积的差,得到第三输入分片;
且,所述基于所述第二输出分片获得SM2签名的第二部分的分片包括:
将所述第二输出分片确定为SM2签名的第二部分的分片。
12.根据权利要求8所述的方法,其中,所述基于所述第一随机数分片、SM2签名的第一部分以及私钥分片中的一个或多个,得到第三输入分片,包括:
将所述第一随机数分片确定为所述第三输入分片;
且,所述基于所述第二输出分片获得SM2签名的第二部分的分片包括:
计算第二输入分片与SM2签名的第一部分的第一乘积;
计算第二输出分片与所述第一乘积的和值;
计算SM2签名的第一部分与参与方的数量对循环群的阶的求模结果的逆的第二乘积;
计算所述和值与所述第二乘积的差值,得到所述SM2签名的第二部分的分片。
13.根据权利要求8所述的方法,其中,所述基于所述第一随机数分片、SM2签名的第一部分以及私钥分片中的一个或多个,得到第三输入分片,包括:
计算SM2签名的第一部分与参与方的数量对循环群的阶的求模结果的逆的乘积;
计算第一随机数分片与所述乘积的和,得到第三输入分片;
且,所述基于所述第二输出分片获得SM2签名的第二部分的分片包括:
计算第二输出分片与所述乘积的差,得到SM2签名的第二部分的分片。
14.根据权利要求1所述的方法,其中,还包括:
利用公钥对SM2签名进行验证;
所述公钥基于各参与方的私钥分享分片获得,其中,各参与方的私钥分享分片为各参与方基于其私钥分片计算得到;所述SM2签名包括所述第一部分及所述第二部分。
15.根据权利要求1~14任一项所述的方法,其中,还包括:
基于目标数据生成证明;
基于所述目标数据以及其证明生成承诺;
将所述承诺发送给其他参与方;
待各参与方发送完各自的承诺后,将所述目标数据及其证明发送给其他参与方;
基于来自其他参与方的承诺验证来自其他参与方的目标数据及其证明;
其中,所述目标数据基于所述私钥分片以及SM2公共系统参数中的第一参数生成,或者基于第二随机数分片、SM2公共系统参数中的第一参数以及公钥生成。
16.一种多方协同的SM2签名系统,其中,所述系统对应于t个参与方中的某一参与方,t为大于1的整数,所述系统包括:
私钥分片获取模块,用于获取私钥分片;
映射值计算模块,用于基于预设算法计算待签名消息的映射值;
第一随机数生成模块,用于生成第一随机数分片;
第一运算分片发送模块,用于将所述第一随机数分片与SM2公共系统参数中的第一参数进行运算,得到第一运算分片,并将第一运算分片发送给其他参与方;
第一运算值计算模块,用于累加自身的第一运算分片以及来自其他t-1个参与方的第一运算分片,得到第一运算值;
签名第一部分计算模块,用于基于待签名消息的映射值、第一运算值以及SM2公共系统参数中的第二参数,计算SM2签名的第一部分;
第二随机数生成模块,用于生成第二随机数分片;
签名第二部分分片计算模块,用于至少根据所述私钥分片、第一随机数分片、第二随机数分片和SM2签名的第一部分,计算SM2签名的第二部分的分片;
签名第二部分分片发送模块,用于将所述SM2签名的第二部分的分片发送给其他参与方;
签名第二部分计算模块,用于累加自身的SM2签名的第二部分的分片以及来自其他t-1个参与方的SM2签名的第二部分的分片,得到SM2签名的第二部分。
17.一种多方协同的SM2签名装置,其中,包括至少一个处理器和至少一个存储设备,所述存储设备用于存储指令,当至少一个处理器执行指令时,实现如权利要求1~15中任一项所述的方法。
18.一种多方协同的SM2解密方法,其中,所述方法由t个参与方中的某一参与方的至少一个处理器执行,t为大于1的整数,待解密密文包括三部分,所述方法包括:
获取私钥分片;
将验证结果为合法的第一部分密文与私钥分片进行运算得到协同解密分片,并将所述协同解密分片发送给其他参与方;
基于自身的协同解密分片以及来自其他t-1个参与方的协同解密分片,生成中间结果(x2,y2);
基于所述中间结果(x2,y2)进行后续解密流程。
19.根据权利要求18所述的方法,其中,所述私钥分片为加法分片;
所述基于自身的协同解密分片以及来自其他t-1个参与方的协同解密分片,生成中间结果(x2,y2),包括:
累加t个协同解密分片,得到所述中间结果(x2,y2)。
20.根据权利要求19所述的方法,其中,所述获取私钥分片,还包括:
获取门限分片;
基于所述门限分片生成所述加法分片。
21.一种多方协同的SM2解密系统,其中,所述系统对应于t个参与方中的某一参与方,t为大于1的整数,待解密密文包括三部分,所述系统包括:
私钥分片获取模块,用于获取私钥分片;
协同解密分片发送模块,用于将验证结果为合法的第一部分密文与私钥分片进行运算得到协同解密分片,并将所述协同解密分片发送给其他参与方;
中间结果计算单元,用于基于自身的协同解密分片以及来自其他t-1个参与方的协同解密分片,生成中间结果(x2,y2);
解密模块,用于基于所述中间结果(x2,y2)进行后续解密流程。
22.一种多方协同的SM2解密装置,其中,包括至少一个处理器和至少一个存储设备,所述存储设备用于存储指令,当至少一个处理器执行指令时,实现如权利要求18~20中任一项所述的方法。
23.一种多方协同的SM2公钥生成方法,其中,所述方法由M个协同方中的某一协同方的至少一个处理器执行,M为大于1的整数,所述方法包括:
获取私钥分片;
将所述私钥分片与SM2公共系统参数中的第一参数进行运算,得到私钥分享分片,并将所述私钥分享分片发送给其他参与方;
根据自身的私钥分享分片以及来自其他M-1个协同方的私钥分享分片,生成公钥。
24.根据权利要求23所述的方法,其中,所述私钥分片为加法分片;
所述基于自身的私钥分享分片以及来自其他M-1个协同方的私钥分享分片,生成所述公钥,包括:
累加自身的私钥分享分片以及来自其他M-1个协同方的私钥分享分片,得到所述公钥。
25.根据权利要求24所述的方法,其中,所述获取私钥分片,还包括:
获取门限分片;
基于所述门限分片生成所述加法分片。
26.根据权利要求25所述的方法,其中,所述M个协同方分别具有公开且互不相同的标识数值;
所述基于所述门限分片生成所述加法分片,还包括:
基于自身的标识数值与其他M-1个协同方的标识数值计算拉格朗日系数;
将所述拉格朗日系数与所述门限分片的运算结果确定为所述加法分片。
27.一种多方协同的SM2公钥生成系统,其中,所述系统对应于M个协同方中的某一协同方,M为大于1的整数,所述系统包括:
私钥分片获取模块,用于获取私钥分片;
私钥分享分片发送模块,用于将所述私钥分片与SM2公共系统参数中的第一参数进行运算,得到私钥分享分片,并将所述私钥分享分片发送给其他参与方;
公钥生成模块,用于根据自身的私钥分享分片以及来自其他M-1个协同方的私钥分享分片,生成公钥。
28.一种多方协同的SM2公钥生成装置,其中,包括至少一个处理器和至少一个存储设备,所述存储设备用于存储指令,当至少一个处理器执行指令时,实现如权利要求23~26中任一项所述的方法。
29.一种多方协同的私钥分片生成方法,其中,所述方法由N个协同方中的某一协同方的至少一个处理器执行,N为大于t的整数,t为大于1的整数,各协同方具有公开且互不相同的标识数值,所述方法包括:
随机生成t-1次第一多项式;
分别将各协同方的标识数值带入所述第一多项式,计算得到N个第一多项式分片;
将其中N-1个第一多项式分片对应发送给其他N-1个协同方;
累加自身标识数值对应的第一多项式分片以及来自其他N-1个协同方的第一多项式分片,得到门限分片,将所述门限分片确定为私钥分片。
30.一种多方协同的私钥分片生成系统,其中,所述系统对应于N个协同方中的某一协同方,N为大于t的整数,t为大于1的整数,各协同方具有公开且互不相同的标识数值,所述系统包括:
第一多项式生成模块,用于随机生成t-1次第一多项式;
第一多项式分片计算模块,用于分别将各协同方的标识数值带入所述第一多项式,计算得到N个第一多项式分片;
第一多项式分片发送模块,用于将其中N-1个第一多项式分片对应发送给其他N-1个协同方;
私钥分片私钥分片生成模块,用于累加自身标识数值对应的第一多项式分片以及来自其他N-1个协同方的第一多项式分片,得到门限分片,将所述门限分片确定为私钥分片。
31.一种多方协同的私钥分片生成装置,其中,包括至少一个处理器和至少一个存储设备,所述存储设备用于存储指令,当至少一个处理器执行指令时,实现如权利要求29所述的方法。
32.一种多方协同的私钥分片更新方法,其中,所述方法由M个协同方中的某一协同方的至少一个处理器执行,M为大于1的整数,各协同方具有公开且互不相同的标识数值,以及私钥分片,所述方法包括:
随机生成t-1次第二多项式,且满足其常数项为0;t为不大于M的整数;
分别将各协同方的标识数值带入所述第二多项式,计算得到M个第二多项式分片;
将其中M-1个第二多项式分片对应发送给其他M-1个协同方;
累加自身标识数值对应的第二多项式分片以及来自其他M-1个协同方的第二多项式分片,得到更新分片;
基于所述更新分片更新所述密钥分片。
33.根据权利要求32所述的方法,其中,M等于t,所述私钥分片为随机生成的数值,且所述基于所述更新分片更新所述密钥分片包括:
将所述更新分片转换为加法更新分片;
将私钥分片与加法更新分片之和作为更新后的私钥分片。
34.根据权利要求33所述的方法,其中,所述将所述更新分片转换为加法更新分片,包括:
基于自身的标识数值与其他M-1个协同方的标识数值计算拉格朗日系数;
将拉格朗日系数与所述更新分片的运算结果确定为所述加法更新分片。
35.根据权利要求32所述的方法,其中,t小于M,所述私钥分片为门限分片,所述基于所述更新分片更新所述密钥分片包括:
将私钥分片与更新分片之和作为更新后的私钥分片。
36.一种多方协同的私钥分片更新系统,其中,所述系统对应于M个协同方中的某一协同方,M为大于1的整数,各协同方具有公开且互不相同的标识数值,以及私钥分片,所述系统包括:
第二多项式生成模块,用于随机生成t-1次第二多项式,且满足其常数项为0;t为不大于M的整数;
第二多项式分片计算模块,用于分别将各协同方的标识数值带入所述第二多项式,计算得到M个第二多项式分片;
第二多项式分片发送模块,用于将其中M-1个第二多项式分片对应发送给其他M-1个协同方;
更新分片计算模块,用于累加自身标识数值对应的第二多项式分片以及来自其他M-1个协同方的第二多项式分片,得到更新分片;
基于所述更新分片更新所述私钥分片。
37.一种多方协同的私钥分片更新装置,其中,包括至少一个处理器和至少一个存储设备,所述存储设备用于存储指令,当至少一个处理器执行指令时,实现如权利要求32~35中任一项所述的方法。
CN201911246954.XA 2019-12-06 2019-12-06 多方协同的sm2签名、解密方法及其系统 Active CN110971405B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911246954.XA CN110971405B (zh) 2019-12-06 2019-12-06 多方协同的sm2签名、解密方法及其系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911246954.XA CN110971405B (zh) 2019-12-06 2019-12-06 多方协同的sm2签名、解密方法及其系统

Publications (2)

Publication Number Publication Date
CN110971405A true CN110971405A (zh) 2020-04-07
CN110971405B CN110971405B (zh) 2022-06-14

Family

ID=70033363

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911246954.XA Active CN110971405B (zh) 2019-12-06 2019-12-06 多方协同的sm2签名、解密方法及其系统

Country Status (1)

Country Link
CN (1) CN110971405B (zh)

Cited By (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111784078A (zh) * 2020-07-24 2020-10-16 支付宝(杭州)信息技术有限公司 一种针对决策树的分布式预测方法和系统
CN112003693A (zh) * 2020-07-31 2020-11-27 大陆云盾电子认证服务有限公司 一种基于sm2的多方参与数字签名方法及系统
CN112398648A (zh) * 2020-11-05 2021-02-23 华控清交信息科技(北京)有限公司 一种密钥管理方法、装置和用于密钥管理的装置
CN112464155A (zh) * 2020-12-01 2021-03-09 华控清交信息科技(北京)有限公司 一种数据处理方法、多方安全计算系统和电子设备
CN112613882A (zh) * 2020-12-29 2021-04-06 成都知道创宇信息技术有限公司 一种分布式签名系统及管理方法
CN112653554A (zh) * 2020-12-30 2021-04-13 成都卫士通信息产业股份有限公司 一种签名方法、系统、设备及可读存储介质
CN112751667A (zh) * 2020-12-29 2021-05-04 北京百度网讯科技有限公司 密钥生成方法、签名和验签方法、装置、设备和介质
CN112906038A (zh) * 2021-03-26 2021-06-04 成都卫士通信息产业股份有限公司 基于sm9密钥的门限化处理方法、装置、设备及存储介质
CN112910645A (zh) * 2021-04-13 2021-06-04 三未信安科技股份有限公司 一种基于椭圆曲线的分布式协同解密方法
CN113300841A (zh) * 2021-05-25 2021-08-24 贵州大学 一种基于身份的协同签名方法及系统
CN113434886A (zh) * 2021-07-01 2021-09-24 支付宝(杭州)信息技术有限公司 联合生成用于安全计算的数据元组的方法及装置
CN113630240A (zh) * 2020-05-09 2021-11-09 成都天瑞芯安科技有限公司 拟态安全密码计算模型
CN113746623A (zh) * 2020-05-28 2021-12-03 华为技术有限公司 一种门限密钥验证方法及相关设备
CN114172631A (zh) * 2022-02-14 2022-03-11 支付宝(杭州)信息技术有限公司 一种基于秘密分享的排序方法和系统
CN114978536A (zh) * 2022-05-16 2022-08-30 福建凯特信息安全技术有限公司 一种基于sm2算法的多方联合签名方法及系统
WO2023070830A1 (zh) * 2021-10-28 2023-05-04 深圳前海微众银行股份有限公司 一种区块链下基于sm2的交易签名方法及装置
CN116827554A (zh) * 2023-07-24 2023-09-29 三未信安科技股份有限公司 一种基于区块链节点多路协方的策略化方法及系统
CN117439737B (zh) * 2023-12-18 2024-02-27 北京信安世纪科技股份有限公司 协同签名方法和协同签名系统

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101425902A (zh) * 2008-11-12 2009-05-06 电子科技大学 一个具有前向安全的门限数字签名方法与系统
US20150310436A1 (en) * 2014-04-23 2015-10-29 Minkasu, Inc. Securely Storing and Using Sensitive Information for Making Payments Using a Wallet Application
CN106850198A (zh) * 2017-01-16 2017-06-13 武汉理工大学 基于多装置协同的sm2数字签名生成方法及系统
CN109067538A (zh) * 2018-07-06 2018-12-21 数安时代科技股份有限公司 安全协议方法、计算机设备及存储介质
CN109088726A (zh) * 2018-07-19 2018-12-25 郑州信大捷安信息技术股份有限公司 基于sm2算法的通信双方协同签名及解密方法和系统
CN110535635A (zh) * 2019-07-19 2019-12-03 北京向芯力科技有限公司 一种支持信息隐藏的协同签名方法与系统
CN113765662A (zh) * 2021-09-10 2021-12-07 长春吉大正元信息安全技术有限公司 一种基于sm2算法的签名及解密方法和系统

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101425902A (zh) * 2008-11-12 2009-05-06 电子科技大学 一个具有前向安全的门限数字签名方法与系统
US20150310436A1 (en) * 2014-04-23 2015-10-29 Minkasu, Inc. Securely Storing and Using Sensitive Information for Making Payments Using a Wallet Application
CN106850198A (zh) * 2017-01-16 2017-06-13 武汉理工大学 基于多装置协同的sm2数字签名生成方法及系统
CN109067538A (zh) * 2018-07-06 2018-12-21 数安时代科技股份有限公司 安全协议方法、计算机设备及存储介质
CN109088726A (zh) * 2018-07-19 2018-12-25 郑州信大捷安信息技术股份有限公司 基于sm2算法的通信双方协同签名及解密方法和系统
CN110535635A (zh) * 2019-07-19 2019-12-03 北京向芯力科技有限公司 一种支持信息隐藏的协同签名方法与系统
CN113765662A (zh) * 2021-09-10 2021-12-07 长春吉大正元信息安全技术有限公司 一种基于sm2算法的签名及解密方法和系统

Cited By (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113630240A (zh) * 2020-05-09 2021-11-09 成都天瑞芯安科技有限公司 拟态安全密码计算模型
CN113630240B (zh) * 2020-05-09 2024-04-26 成都天瑞芯安科技有限公司 一种拟态安全密码计算系统
CN113746623A (zh) * 2020-05-28 2021-12-03 华为技术有限公司 一种门限密钥验证方法及相关设备
CN111784078A (zh) * 2020-07-24 2020-10-16 支付宝(杭州)信息技术有限公司 一种针对决策树的分布式预测方法和系统
CN112003693A (zh) * 2020-07-31 2020-11-27 大陆云盾电子认证服务有限公司 一种基于sm2的多方参与数字签名方法及系统
CN112398648A (zh) * 2020-11-05 2021-02-23 华控清交信息科技(北京)有限公司 一种密钥管理方法、装置和用于密钥管理的装置
CN112398648B (zh) * 2020-11-05 2023-12-29 华控清交信息科技(北京)有限公司 一种密钥管理方法、装置和用于密钥管理的装置
CN112464155A (zh) * 2020-12-01 2021-03-09 华控清交信息科技(北京)有限公司 一种数据处理方法、多方安全计算系统和电子设备
CN112464155B (zh) * 2020-12-01 2024-01-26 华控清交信息科技(北京)有限公司 一种数据处理方法、多方安全计算系统和电子设备
CN112751667A (zh) * 2020-12-29 2021-05-04 北京百度网讯科技有限公司 密钥生成方法、签名和验签方法、装置、设备和介质
CN112751667B (zh) * 2020-12-29 2023-03-14 北京百度网讯科技有限公司 密钥生成方法、签名和验签方法、装置、设备和介质
CN112613882A (zh) * 2020-12-29 2021-04-06 成都知道创宇信息技术有限公司 一种分布式签名系统及管理方法
CN112653554A (zh) * 2020-12-30 2021-04-13 成都卫士通信息产业股份有限公司 一种签名方法、系统、设备及可读存储介质
CN112906038B (zh) * 2021-03-26 2023-04-07 成都卫士通信息产业股份有限公司 基于sm9密钥的门限化处理方法、装置、设备及存储介质
CN112906038A (zh) * 2021-03-26 2021-06-04 成都卫士通信息产业股份有限公司 基于sm9密钥的门限化处理方法、装置、设备及存储介质
CN112910645A (zh) * 2021-04-13 2021-06-04 三未信安科技股份有限公司 一种基于椭圆曲线的分布式协同解密方法
CN113300841A (zh) * 2021-05-25 2021-08-24 贵州大学 一种基于身份的协同签名方法及系统
CN113300841B (zh) * 2021-05-25 2022-11-25 贵州大学 一种基于身份的协同签名方法及系统
CN113434886A (zh) * 2021-07-01 2021-09-24 支付宝(杭州)信息技术有限公司 联合生成用于安全计算的数据元组的方法及装置
CN113434886B (zh) * 2021-07-01 2022-05-17 支付宝(杭州)信息技术有限公司 联合生成用于安全计算的数据元组的方法及装置
WO2023070830A1 (zh) * 2021-10-28 2023-05-04 深圳前海微众银行股份有限公司 一种区块链下基于sm2的交易签名方法及装置
CN114172631A (zh) * 2022-02-14 2022-03-11 支付宝(杭州)信息技术有限公司 一种基于秘密分享的排序方法和系统
CN114978536B (zh) * 2022-05-16 2024-01-30 福建凯特信息安全技术有限公司 一种基于sm2算法的多方联合签名方法及系统
CN114978536A (zh) * 2022-05-16 2022-08-30 福建凯特信息安全技术有限公司 一种基于sm2算法的多方联合签名方法及系统
CN116827554A (zh) * 2023-07-24 2023-09-29 三未信安科技股份有限公司 一种基于区块链节点多路协方的策略化方法及系统
CN116827554B (zh) * 2023-07-24 2024-04-09 三未信安科技股份有限公司 一种基于区块链节点多路协方的策略化方法及系统
CN117439737B (zh) * 2023-12-18 2024-02-27 北京信安世纪科技股份有限公司 协同签名方法和协同签名系统

Also Published As

Publication number Publication date
CN110971405B (zh) 2022-06-14

Similar Documents

Publication Publication Date Title
CN110971405B (zh) 多方协同的sm2签名、解密方法及其系统
CN108667625B (zh) 协同sm2的数字签名方法
Zhou et al. ExpSOS: Secure and verifiable outsourcing of exponentiation operations for mobile cloud computing
Samanthula et al. An efficient and probabilistic secure bit-decomposition
US20230246825A1 (en) Generating secret shares
Hazay et al. Selective opening security for receivers
Kraitsberg et al. Adding distributed decryption and key generation to a ring-LWE based CCA encryption scheme
WO2023072504A1 (en) Threshold signature scheme
EP4183105A1 (en) Identifying denial-of-service attacks
CN113420886B (zh) 纵向联邦学习模型的训练方法、装置、设备及存储介质
Shankar et al. Improved Multisignature Scheme for Authenticity of Digital Document in Digital Forensics Using Edward‐Curve Digital Signature Algorithm
Tian et al. DIVRS: Data integrity verification based on ring signature in cloud storage
CN115516817A (zh) 具有秘密共享的(ec)dsa阈值签名
CN116915414A (zh) 一种实现门限签名的方法、计算机设备和存储介质
CN108964906B (zh) 协同ecc的数字签名方法
WO2023072502A1 (en) Generating shared keys
KR20240045231A (ko) 디지털 서명 셰어의 생성
JP5227816B2 (ja) 匿名署名生成装置、匿名署名検証装置、匿名署名追跡判定装置、追跡機能付き匿名署名システム、それらの方法及びプログラム
US20220345312A1 (en) Zero-knowledge contingent payments protocol for granting access to encrypted assets
Heydari et al. An Improved Authentication Scheme for Electronic Payment Systems in Global Mobility Networks
GB2610560A (en) Generating shared cryptographic keys
Wang et al. Faster fog-aided private set intersectionwith integrity preserving
JPH0695590A (ja) 電子署名システム及び電子署名方法
WO2023016728A1 (en) Generating digital signatures
KR20240045226A (ko) 디지털 서명들의 생성

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
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 40026913

Country of ref document: HK

GR01 Patent grant
GR01 Patent grant