CN116318636A - 一种基于sm2的门限签名方法 - Google Patents
一种基于sm2的门限签名方法 Download PDFInfo
- Publication number
- CN116318636A CN116318636A CN202111563163.7A CN202111563163A CN116318636A CN 116318636 A CN116318636 A CN 116318636A CN 202111563163 A CN202111563163 A CN 202111563163A CN 116318636 A CN116318636 A CN 116318636A
- Authority
- CN
- China
- Prior art keywords
- secret value
- signature
- devices
- public key
- private key
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 41
- 238000010276 construction Methods 0.000 claims description 6
- 238000004422 calculation algorithm Methods 0.000 abstract description 19
- 238000004364 calculation method Methods 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 6
- 230000006870 function Effects 0.000 description 3
- 238000013507 mapping Methods 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 239000003054 catalyst Substances 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/085—Secret sharing or secret splitting, e.g. threshold schemes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic 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/3247—Cryptographic 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
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Storage Device Security (AREA)
Abstract
本发明涉及一种基于SM2的门限签名方法,属于数字签名技术领域,解决了现有技术中门限签名算法运算效率低及门限值范围受限的问题。若存在可信中心,则可信中心产生秘密值并分享秘密值到m个装置,得到每一装置保存的秘密值份额;并根据可信中心产生的秘密值,得到用户签名公钥;若不存在可信中心,则依次将每一装置作为可信中心产生秘密值并分享秘密值到m个装置,得到每一装置保存的秘密值份额;根据每一装置产生的秘密值,得到用户签名公钥;根据任意t'个装置的秘密值份额可以对消息M进行签名运算;其中,t'≥t;t为恢复秘密值所需的装置最小数量;基于SM2并根据用户签名公钥、待签名消息M和t'个装置各自的私钥分量得到消息M的完整签名。
Description
技术领域
本发明涉及数字签名技术领域,尤其涉及一种基于SM2的门限签名方法。
背景技术
随着网络技术的飞速发展,网络安全问题日益重要,而信息加密技术则是网络安全技术中的核心技术。数字签名(Digital Signatures)是众多信息加密技术中使用较为广泛的技术,数字签名是一种以电子形式存储的消息签名的方法,可以提供消息的不可伪造性、真实性和完整性,在目前的网络通信、金融、商务等领域使用非常广泛。在数字签名算法中私钥的安全是关键所在,SM2椭圆曲线公钥密码算法与RSA公钥密码算法相比具有安全性高、密钥短、速度快等优势,在数字签名算法中广泛应用,但是,普通的签名算法中私钥仅由一个用户持有,如果该用户私钥被窃取,则攻击者可以伪造签名,存在较高的安全风险。
目前,为解决私钥由单个用户完全掌握存在较高安全风险的问题,通常采用门限签名,门限签名由于私钥由多个用户存储,且不需要全部用户就可以完成签名算法,一方面门限签名提高了系统的健壮性,即使少量用户丢失密钥,也可以进行签名运算,不会导致密码系统丧失功能性;另一方面,门限签名提高了系统的安全性,恶意敌手即使窃取了部分(少于门限值)用户的密钥,也难以打破密码系统的安全性。但是,目前的基于SM2的门限签名算法,用到同态、零知识证明等复杂运算,运算效率低,或者要求满足诚实者大多数的条件,门限值t与所有用户个数m需要满足特定的条件,限制了签名算法的使用范围,局限性较大。
发明内容
鉴于上述的分析,本发明实施例旨在提供一种基于SM2的门限签名方法,用以解决现有门限签名算法运算效率低以及门限值范围受限的问题。
本发明实施例提供了一种基于SM2的门限签名方法,包括以下步骤:
密钥生成过程:
若应用系统存在可信中心,则可信中心产生秘密值并分享秘密值到m个装置,得到每一装置保存的秘密值份额;并根据可信中心产生的秘密值,得到用户签名公钥;
若应用系统不存在可信中心,则依次将每一装置作为可信中心产生秘密值并分享秘密值到m个装置,得到每一装置保存的秘密值份额;根据每一装置产生的秘密值,得到用户签名公钥;
其中,m≥2,为装置个数;
签名生成过程:
根据任意t'个装置的秘密值份额重构出各自的私钥分量;其中,t'≥t;t为恢复秘密值所需的装置最小数量,2≤t≤m;
基于SM2并根据用户签名公钥、待签名消息M和t'个装置各自的私钥分量得到消息M的完整签名。
进一步地,若应用系统存在可信中心,则可信中心通过执行以下步骤得到每一装置保存的秘密值份额:
可信中心随机产生秘密值w,其中,w∈[1,n'-1],n'满足n'整除(n-1)且n'不包含小于m的素因子;n为G的阶,G为SM2的椭圆曲线基点;
构造多项式f(x)=at-1xt-1+at-2xt-2+…+a1x+w;其中,ak为可信中心产生的随机数,ak∈[1,n'-1],k=1,2,…,t-1;
根据下式得到每一装置的秘密值份额,并发送给相应装置:
yi=f(i)mod n′,
式中,yi表示装置i的秘密值份额,1≤i≤m;mod为求模运算。
进一步地,若应用系统存在可信中心,则通过执行以下步骤得到用户签名公钥:
基于可信中心产生的秘密值w,通过下式得到用户签名私钥d:
d=(gwmod n)-1,
式中,g∈[1,n-1],且g的阶为n';
根据用户签名私钥d,通过下式得到用户签名公钥P:
P=[d]G。
进一步地,若应用系统不存在可信中心,则可信中心通过执行以下步骤得到每一装置保存的秘密值份额:
依次将每一装置作为可信中心,得到各装置为可信中心时每一装置的秘密值份额分量:
将装置i作为可信中心随机产生秘密值wi,其中,wi∈[1,n'-1],n'满足n'整除(n-1)且n'不包含小于m的素因子,i=1,2,…,m,n为G的阶,G为SM2的椭圆曲线基点;
构造多项式fi(x)=at-1xt-1+at-2xt-2+…+a1x+wi;其中,ak为可信中心产生的随机数,ak∈[1,n'-1],k=1,2,…,t-1;
根据下式得到装置i为可信中心时装置j的秘密值份额分量yi,j,并发送给装置j:
yi,j=fi(j)mod n′;
式中,mod为求模运算;
基于各装置作为可信中心时每一装置获得的秘密值份额分量,利用下式得到每一装置的秘密值份额:
式中,yi表示装置i的秘密值份额。
进一步地,若应用系统不存在可信中心,则通过执行以下步骤得到用户签名公钥:
基于每一装置产生的秘密值,根据下式得到每一装置的私钥分量:
式中,wi表示装置i产生的秘密值;d′i表示装置i的私钥分量;g∈[1,n-1],且g的阶为n';
根据每一装置的私钥分量,通过下述方式得到用户签名公钥:
装置1根据公式P1=[d'1]G计算得到椭圆曲线点P1,并将P1发送给装置2;
对于装置2至装置m-1,依次执行公式Pi=[d'i]Pi-1,i=2,…,m-1,并将Pi发送给装置i+1,直至装置m接收到Pm-1;
装置m执行公式P=[d'm]Pm-1-G,将P记作用户签名公钥。
进一步地,得到用户签名公钥还包括:若P=O,则判断生成用户签名公钥失败,否则记P为用户签名公钥;其中,O为SM2椭圆曲线上的无穷远点。
进一步地,在签名生成过程中,通过执行以下方式根据任意t'个装置的秘密值份额重构出t'个装置各自的私钥分量:
将任意t'个装置重新编号为l1,l2,…,lt',其中,l1,l2,…,lt'的值为在m个装置中的位置编号;
根据下式计算t'个装置中每一装置的重构秘密值份额:
其中,
基于每一装置的重构秘密值份额,通过下式重构每一装置的私钥分量:
式中,dq1表示装置lq1的签名私钥分量;g∈[1,n-1],且g的阶为n';n为G的阶,G为SM2的椭圆曲线基点。
进一步地,所述基于SM2并根据用户签名公钥、待签名消息M和t'个装置各自的私钥分量得到消息M的完整签名,包括:
基于SM2,并根据用户签名公钥将待签名消息M生成消息摘要e;
根据t'个装置产生的随机数、各自的私钥分量和所述消息摘要e生成第一部分签名;
再利用t'个装置产生的随机数、各自的私钥分量和所述第一部分签名生成第二部分签名,得到消息M的完整签名。
进一步地,所述基于SM2,并根据用户签名公钥将待签名消息M生成消息摘要e,公式表示为:
e=H256(ZU||M);
式中,H256()为消息摘要长度256比特的密码杂凑函数,ZU为用户U的身份标识、部分椭圆曲线参数和用户签名公钥的杂凑;ZU||M表示杂凑ZU和待签名消息M的拼接。
进一步地,m个装置共享SM2的椭圆曲线参数E(Fp)、(p,a,b,G,n,h),其中,椭圆曲线E为定义在包含p个元素的素域Fp上的椭圆曲线,E(Fp)为Fp上椭圆曲线E的包括无穷远点O的所有有理点组成的集合,a和b为Fp中的元素,G为椭圆曲线E上n阶的基点,h为余因子。
与现有技术相比,本发明可实现如下有益效果:
本发明提供的一种基于SM2的门限签名方法,
通过是否存在可信中心,采用不同的秘密值份额生成方式,能够支持不同的应用系统,通过每一装置的秘密值份额生成用户签名私钥,将私钥信息分享给多个装置,任意不小于门限值数量的装置可以进行签名运算,提高了系统的健壮性和安全性,以及通过任意大于等于t的t'个装置重构私钥,进而得到完整用户签名,计算简单,运算效率高,并且恢复秘密值所需的装置最小数量任意设置,使用条件和范围更加宽泛,局限性小。
本发明中,上述各技术方案之间还可以相互组合,以实现更多的优选组合方案。本发明的其他特征和优点将在随后的说明书中阐述,并且,部分优点可从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过说明书以及附图中所特别指出的内容中来实现和获得。
附图说明
附图仅用于示出具体实施例的目的,而并不认为是对本发明的限制,在整个附图中,相同的参考符号表示相同的部件。
图1为本发明实施例提供的基于SM2的门限签名方法的流程示意图。
具体实施方式
下面结合附图来具体描述本发明的优选实施例,其中,附图构成本申请一部分,并与本发明的实施例一起用于阐释本发明的原理,并非用于限定本发明的范围。
缩略语和关键术语:
Fp:包含p个元素的素域。
(p,a,b,G,n,h):SM2算法的曲线参数,其中,p为一个256比特长度的素数;a和b为素数域Fp中的元素,用于定义Fp上的一条椭圆曲线E;G为基点,用坐标表示G=(xG,yG);n为G的阶;h为余因子。
E(Fp):Fp上椭圆曲线E的所有有理点(包括无穷远点O)组成的集合。
Hv():消息摘要长度为v比特的密码杂凑函数,该杂凑函数使用SM3。
mod n:模n运算。
O:椭圆曲线上的一个特殊点,称为无穷远点或零点,是椭圆曲线加法群的单位元。
x||y:x与y的拼接,其中x、y是比特串或字节串。
PA:用户A的签名公钥,用坐标表示PA=(xA,yA)。
IDA:用户A的身份标识。
ENTLA:IDA的长度,ENTLA的长度为2个字节。
ZA:关于用户A的身份标识、部分椭圆曲线系统参数和用户A签名公钥的杂凑值,具体为Z=H256(ENTLA||IDA||a||b||xG||yG||xA||yA)。
本发明的技术基础:假设用户身份为U,其用户签名公钥为P,其用户签名私钥由秘密值份额生成,秘密值份额分别存放在m(m≥2)个装置,分别称为装置1、装置2、…、装置m。
本发明的一个具体实施例,公开了一种基于SM2的门限签名方法,如图1所示,包括以下步骤:
密钥生成过程:
若应用系统存在可信中心,则可信中心产生秘密值并分享秘密值到m个装置,得到每一装置保存的秘密值份额;并根据可信中心产生的秘密值,得到用户签名公钥;
若应用系统不存在可信中心,则依次将每一装置作为可信中心产生秘密值并分享秘密值到m个装置,得到每一装置保存的秘密值份额;根据每一装置产生的秘密值,得到用户签名公钥;
其中,m≥2,为装置个数;
签名生成过程:
根据任意t'个装置的秘密值份额重构出各自的私钥分量;其中,t'≥t;t为恢复秘密值所需的装置最小数量,2≤t≤m;
基于SM2,并根据用户签名公钥、待签名消息M和t'个装置各自的私钥分量得到消息M的完整签名。
与现有技术相比,本实施例提供的一种基于SM2的门限签名方法通过是否存在可信中心,采用不同的秘密值份额生成方式,能够支持不同的应用系统,通过每一装置的秘密值份额生成用户签名私钥,将私钥信息分享给多个装置,任意不小于门限值数量的装置可以进行签名运算,提高了系统的健壮性和安全性,以及通过任意大于等于t的t'个装置重构私钥,进而得到完整用户签名,计算简单,运算效率高,并且恢复秘密值所需的装置最小数量任意设置,使用条件和范围更加宽泛,局限性小。
需要说明的是,将门限签名方法在应用系统中使用时,可根据应用系统的自身信息得出该应用系统是否存在可信中心,根据是否存在可信中心选择不同的方式生成秘密值份额,具体如下:
情况一:若应用系统存在可信中心,则可信中心产生秘密值并分享秘密值到m个装置,得到每一装置保存的秘密值份额;并根据可信中心产生的秘密值,得到用户签名公钥。
实施时,若应用系统存在可信中心,则可信中心通过执行以下步骤得到每一装置保存的秘密值份额:
可信中心随机产生秘密值w,其中,w∈[1,n'-1],n'满足n'整除(n-1)且n'不包含小于m的素因子,n为G的阶,G为SM2的椭圆曲线基点;
构造多项式f(x)=at-1xt-1+at-2xt-2+…+a1x+w;其中,ak为可信中心产生的随机数,ak∈[1,n'-1],k=1,2,…,t-1;t为恢复秘密值所需的装置最小数量,2≤t≤m;
根据下式得到每一装置的秘密值份额,并发送给相应装置:
yi=f(i)mod n′,
式中,yi表示装置i的秘密值份额,1≤i≤m;mod为求模运算。
实施时,若应用系统存在可信中心,则通过执行以下步骤得到用户签名公钥:
基于可信中心产生的秘密值w,通过下式得到用户签名私钥d:
d=(gwmod n)-1,
式中,g∈[1,n-1],且g的阶为n';
根据用户签名私钥d,通过下式得到用户签名公钥P:
P=[d]G。
情况二:若应用系统不存在可信中心,则依次将每一装置作为可信中心产生秘密值并分享秘密值到m个装置,得到每一装置保存的秘密值份额;根据每一装置产生的秘密值,得到用户签名公钥。
实施时,若应用系统不存在可信中心,则可信中心通过执行以下步骤得到每一装置保存的秘密值份额:
依次将每一装置作为可信中心,得到各装置为可信中心时每一装置的秘密值份额分量:
将装置i作为可信中心随机产生秘密值wi,其中,wi∈[1,n'-1],n'满足n'整除(n-1)且n'不包含小于m的素因子,i=1,2,…,m,n为G的阶,G为SM2的椭圆曲线基点;
构造多项式fi(x)=at-1xt-1+at-2xt-2+…+a1x+wi;其中,ak为可信中心产生的随机数,ak∈[1,n'-1],k=1,2,…,t-1;
根据下式得到装置i为可信中心时装置j的秘密值份额分量yi,j,并发送给装置j:
yi,j=fi(j)mod n′;
式中,mod为求模运算;
基于各装置作为可信中心时每一装置获得的秘密值份额分量,利用下式得到每一装置的秘密值份额:
式中,yi表示装置i的秘密值份额。
实施时,若应用系统不存在可信中心,则通过执行以下步骤得到用户签名公钥:
基于每一装置产生的秘密值,根据下式得到每一装置的私钥分量:
式中,wi表示装置i产生的秘密值;d′i表示装置i的私钥分量;g∈[1,n-1],且g的阶为n';
根据每一装置的私钥分量,通过下述方式得到用户签名公钥:
装置1根据公式P1=[d'1]G计算得到椭圆曲线点P1,并将P1发送给装置2;
对于装置2至装置m-1,依次执行公式Pi=[d'i]Pi-1,i=2,…,m-1,并将Pi发送给装置i+1,直至装置m接收到Pm-1;
装置m执行公式P=[d'm]Pm-1-G,将P记作用户签名公钥。
可以理解的是,根据恢复秘密值所需的装置最小数量t,即门限值,构建多项式,生成每一装置保存的秘密值份额,能够在签名计算过程中,通过任意不小于t个装置就可以进行签名运算,而小于t个装置则不可以进行签名运算,且小于t个的装置联合也不会泄露任何消息,更加灵活,不需要所有用户参与,只需要部分装置就可以进行签名,保障了系统的健壮性。此外,在进行用户签名私钥和用户签名公钥中,过程简单,运算效率较高。
需要说明的是,在实际应用中,可根据需要将装置m得到的用户签名公钥发送给其他的装置(装置1至装置m-1);还可以根据需要从装置m'据开始计算,直到装置m'-1得到用户签名公钥;其中,2≤m'≤m;示例性地,m'=3,即从装置3开始计算,直到装置2得到用户签名公钥。
具体实施时,在情况一和情况二两种情况下得到用户签名公钥还包括:若P=O,则判断生成用户签名公钥失败,否则记P为用户签名公钥;其中,O为SM2椭圆曲线上的无穷远点。
需要说明的是,根据上述得到每一装置保存的秘密值份额,和用户签名公钥,根据任意t个及以上的装置共同参与才能恢复秘密;根据参与装置的秘密值份额,得到每一装置的私钥分量,进而生成完成签名,具体如下:
根据任意t'个装置的秘密值份额重构出各自的私钥分量;其中,t'≥t;t为恢复秘密值所需的装置最小数量,2≤t≤m;
基于SM2,并根据用户签名公钥、待签名消息M和t'个装置各自的私钥分量得到消息M的完整签名。
实施时,在签名生成过程中,通过执行以下方式根据任意t'个装置的秘密值份额重构出t'个装置各自的私钥分量:
将任意t'个装置重新编号为l1,l1,…,lt',其中,l1,l2,…,lt'的值为在m个装置中的位置编号;示例性地,m=5,t'=3分别为装置1,装置3,装置5,则重新编号后l1=1,l2=3,l3=5;
根据下式计算t'个装置中每一装置的重构秘密值份额:
其中,
基于每一装置的重构秘密值份额,通过下式重构每一装置的私钥分量:
式中,dq1表示装置lq1的签名私钥分量;g∈[1,n-1],且g的阶为n';n为G的阶,G为SM2的椭圆曲线基点。
可以理解的是,本实施例中签名算法中,是通过不同装置保存秘密值份额,由秘密值份额重构出签名算法中私钥分量,并不对私钥分量进行直接存储,安全性更高。
可选地,在不存在可信中心时,在得到用户签名公钥时,还可以由m个装置中的任意t'个装置生成,其中,t'≥t;具体为:
通过上述方式根据任意t'个装置的秘密值份额重构出t'个装置各自的私钥分量;
根据t'个装置中每一装置的私钥分量,通过下述方式得到用户签名公钥:
装置l1根据公式P1=[d1]G计算得到椭圆曲线点P1,并将P1发送给装置;
对于装置l2至装置l′t-1,依次执行公式Pq1=[dq1]Pq1-1,q1=2,…,t′-1,并将Pq1发送给装置q1+1,直至装置lt'接收到Pt'-1;
装置lt'执行公式P=[d't']Pt'-1-G,将P记作用户签名公钥。
实施时,所述基于SM2,并根据用户签名公钥、待签名消息M和t'个装置各自的私钥分量得到消息M的完整签名,包括:
基于SM2,并根据用户签名公钥将待签名消息M生成消息摘要e;
根据t'个装置产生的随机数、各自的私钥分量和所述消息摘要e生成第一部分签名;
再利用t'个装置产生的随机数、各自的私钥分量和所述第一部分签名生成第二部分签名,得到消息M的完整签名。
具体实施时,所述基于SM2,并根据用户签名公钥将待签名消息M生成消息摘要e,公式表示为:
e=H256(ZU||M);
式中,H256()为消息摘要长度256比特的密码杂凑函数,ZU为用户U的身份标识、部分椭圆曲线参数和用户签名公钥的杂凑;ZU||M表示杂凑ZU和待签名消息M的拼接。
需要说明的是,消息摘要e的计算可在m个装置中任意一个,若非装置m计算时,只需要将e传送到装置m即可。
具体实施时,所述根据t'个装置产生的随机数、各自的私钥分量和所述消息摘要e生成第一部分签名,具体为:
装置l1产生随机数k1,k1∈[1,n-1],根据公式R1=[k1]G计算得到满足椭圆曲线方程的椭圆曲线点R1,并将R1发送给装置l2;
对于装置l2至装置lt'-1,依次执行公式Rq1=[dq1]Rq1-1+[kq1]G,将满足椭圆曲线方程的椭圆曲线点Rq1发送给装置lq1+1,直至计算得到满足椭圆曲线方程的椭圆曲线点Rt'-1发送给装置lt';其中,dq1为装置lq1的私钥分量,kq1为装置lq1产生的随机数,kq1∈[1,n-1],q1=2,3,…,t'-1,G为SM2的椭圆曲线基点,n为G的阶,mod为求模运算。
装置lt'产生随机数kt',kt'∈[1,n-1],根据公式(x1,y1)=[dt']Rt'-1+[kt']G计算得到椭圆曲线点(x1,y1),若(x1,y1)≠O则根据公式r=(e+x1)mod n计算得到r;若r不等于0则作为第一部分签名r。
具体实施时,所述再利用t'个装置产生的随机数、各自的私钥分量和所述第一部分签名生成第二部分签名,得到消息M的完整签名,具体为:
对于lt'至装置l2,依次执行公式tq1-1=dq1 -1(kq1+tq1)mod n,将r和tq1-1发送给装置lq1-1,直至将t1发送给装置l1;其中,若tq1=0或k q1+tq1=n则判断出现错误不再执行;
其中,tq1-1为装置lq1计算得到后传送给装置lq1-1的参数,q1=m,m-1,…,2,tm=r;
装置l1根据公式s=(d1 -1(k1+t1)-r)mod n计算得到第二部分签名s。
实施时,m个装置共享SM2的椭圆曲线参数E(Fp)、(p,a,b,G,n,h),其中,椭圆曲线E为定义在包含p个元素的素域Fp上的椭圆曲线,E(Fp)为Fp上椭圆曲线E的包括无穷远点O的所有有理点组成的集合,a和b为Fp中的元素,G为椭圆曲线E上n阶的基点,h为余因子。
需要说明的是,本实施中的门限签名算法中将SM2算法私钥的取值空间由映射到一个加法群Zn-1上,但由于n-1不是素数,且包含有小的素因子,仍然不能直接使用门限秘密共享。由此,将SM2算法私钥的取值空间减少到了/>的一个阶为n'的循环子群Gn'上,将Gn'映射到Zn'上,这里要求n'整除(n-1),且n'不包含小于m的素因子。虽然此时SM2算法私钥的取值空间减少到了Gn'上,但是由于n'与n-1只相差一个较小的常数,所以安全性没有影响。
示例性地,本实施例根据密码行业标准《GM/T 0003-2012SM2椭圆曲线公钥密码算法第5部分参数定义》给出参数n和n-1的取值为n=0xFFFFFFFEFFFFFFFFFFFFFFFFFFFFFFFF7203DF6B21C6052B53BBF40939D54123,n-1=2×3×0x1E4F×0x36E9×0x543D32E5×0x13F1F3759051C182B92C3AD803BF3CB6B53F7B1C01A44AC369。并且本实施例中,门限签名算法中选取参数n'和g的值为n'=(n-1)/6=0x2AAAAAAA7FFFFFFFFFFFFFFFFFFFFFFFE855FA91DAF65631E349FE0189A38ADB,g=4。此时,装置个数m小于7759(即0x1E4F)。可以理解的是,在实际应用中m的值一般远小于这个数,因此本实施中选取的n'和g的值既不会影响安全性,也不会影响实际的应用。
本领域技术人员可以理解,实现上述实施例方法的全部或部分流程,可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于计算机可读存储介质中。其中,所述计算机可读存储介质为磁盘、光盘、只读存储记忆体或随机存储记忆体等。
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。
Claims (10)
1.一种基于SM2的门限签名方法,其特征在于,包括以下步骤:
密钥生成过程:
若应用系统存在可信中心,则可信中心产生秘密值并分享秘密值到m个装置,得到每一装置保存的秘密值份额;并根据可信中心产生的秘密值,得到用户签名公钥;
若应用系统不存在可信中心,则依次将每一装置作为可信中心产生秘密值并分享秘密值到m个装置,得到每一装置保存的秘密值份额;根据每一装置产生的秘密值,得到用户签名公钥;
其中,m≥2,为装置个数;
签名生成过程:
根据任意t'个装置的秘密值份额重构出各自的私钥分量;其中,t'≥t;t为恢复秘密值所需的装置最小数量,2≤t≤m;
基于SM2并根据用户签名公钥、待签名消息M和t'个装置各自的私钥分量得到消息M的完整签名。
2.根据权利要求1所述的基于SM2的门限签名方法,其特征在于,若应用系统存在可信中心,则可信中心通过执行以下步骤得到每一装置保存的秘密值份额:
可信中心随机产生秘密值w,其中,w∈[1,n'-1],n'满足n'整除(n-1)且n'不包含小于m的素因子;n为G的阶,G为SM2的椭圆曲线基点;
构造多项式f(x)=at-1xt-1+at-2xt-2+…+a1x+w;其中,ak为可信中心产生的随机数,ak∈[1,n'-1],k=1,2,…,t-1;
根据下式得到每一装置的秘密值份额,并发送给相应装置:
yi=f(i)mod n′,
式中,yi表示装置i的秘密值份额,1≤i≤m;mod为求模运算。
3.根据权利要求2所述的基于SM2的门限签名方法,其特征在于,若应用系统存在可信中心,则通过执行以下步骤得到用户签名公钥:
基于可信中心产生的秘密值w,通过下式得到用户签名私钥d:
d=(gwmod n)-1,
式中,g∈[1,n-1],且g的阶为n';
根据用户签名私钥d,通过下式得到用户签名公钥P:
P=[d]G。
4.根据权利要求1所述的基于SM2的门限签名方法,其特征在于,若应用系统不存在可信中心,则可信中心通过执行以下步骤得到每一装置保存的秘密值份额:
依次将每一装置作为可信中心,得到各装置为可信中心时每一装置的秘密值份额分量:
将装置i作为可信中心随机产生秘密值wi,其中,wi∈[1,n'-1],n'满足n'整除(n-1)且n'不包含小于m的素因子,i=1,2,…,m,n为G的阶,G为SM2的椭圆曲线基点;
构造多项式fi(x)=at-1xt-1+at-2xt-2+…+a1x+wi;其中,ak为可信中心产生的随机数,ak∈[1,n'-1],k=1,2,…,t-1;
根据下式得到装置i为可信中心时装置j的秘密值份额分量yi,j,并发送给装置j:
yi,j=fi(j)mod n′;
式中,mod为求模运算;
基于各装置作为可信中心时每一装置获得的秘密值份额分量,利用下式得到每一装置的秘密值份额:
式中,yi表示装置i的秘密值份额。
5.根据权利要求4所述的基于SM2的门限签名方法,其特征在于,若应用系统不存在可信中心,则通过执行以下步骤得到用户签名公钥:
基于每一装置产生的秘密值,根据下式得到每一装置的私钥分量:
式中,wi表示装置i产生的秘密值;di′表示装置i的私钥分量;g∈[1,n-1],且g的阶为n';
根据每一装置的私钥分量,通过下述方式得到用户签名公钥:
装置1根据公式P1=[d'1]G计算得到椭圆曲线点P1,并将P1发送给装置2;
对于装置2至装置m-1,依次执行公式Pi=[d'i]Pi-1,i=2,…,m-1,并将Pi发送给装置i+1,直至装置m接收到Pm-1;
装置m执行公式P=[d'm]Pm-1-G,将P记作用户签名公钥。
6.根据权利要求3或5所述的基于SM2的门限签名方法,其特征在于,得到用户签名公钥还包括:若P=O,则判断生成用户签名公钥失败,否则记P为用户签名公钥;其中,O为SM2椭圆曲线上的无穷远点。
7.根据权利要求2或4所述的基于SM2的门限签名方法,其特征在于,在签名生成过程中,通过执行以下方式根据任意t'个装置的秘密值份额重构出t'个装置各自的私钥分量:
将任意t'个装置重新编号为l1,l2,…,lt',其中,l1,l2,…,lt'的值为在m个装置中的位置编号;
根据下式计算t'个装置中每一装置的重构秘密值份额:
其中,
基于每一装置的重构秘密值份额,通过下式重构每一装置的私钥分量:
式中,dq1表示装置lq1的签名私钥分量;g∈[1,n-1],且g的阶为n';n为G的阶,G为SM2的椭圆曲线基点。
8.根据权利要求1所述的基于SM2的门限签名方法,其特征在于,所述基于SM2并根据用户签名公钥、待签名消息M和t'个装置各自的私钥分量得到消息M的完整签名,包括:
基于SM2,并根据用户签名公钥将待签名消息M生成消息摘要e;
根据t'个装置产生的随机数、各自的私钥分量和所述消息摘要e生成第一部分签名;
再利用t'个装置产生的随机数、各自的私钥分量和所述第一部分签名生成第二部分签名,得到消息M的完整签名。
9.根据权利要求1所述的基于SM2的门限签名方法,其特征在于,所述基于SM2,并根据用户签名公钥将待签名消息M生成消息摘要e,公式表示为:
e=H256(ZU||M);
式中,H256()为消息摘要长度256比特的密码杂凑函数,ZU为用户U的身份标识、部分椭圆曲线参数和用户签名公钥的杂凑;ZU||M表示杂凑ZU和待签名消息M的拼接。
10.根据权利要求1所述的基于SM2的门限签名方法,其特征在于,m个装置共享SM2的椭圆曲线参数E(Fp)、(p,a,b,G,n,h),其中,椭圆曲线E为定义在包含p个元素的素域Fp上的椭圆曲线,E(Fp)为Fp上椭圆曲线E的包括无穷远点O的所有有理点组成的集合,a和b为Fp中的元素,G为椭圆曲线E上n阶的基点,h为余因子。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111563163.7A CN116318636A (zh) | 2021-12-20 | 2021-12-20 | 一种基于sm2的门限签名方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111563163.7A CN116318636A (zh) | 2021-12-20 | 2021-12-20 | 一种基于sm2的门限签名方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116318636A true CN116318636A (zh) | 2023-06-23 |
Family
ID=86813615
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111563163.7A Pending CN116318636A (zh) | 2021-12-20 | 2021-12-20 | 一种基于sm2的门限签名方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116318636A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117155584A (zh) * | 2023-10-27 | 2023-12-01 | 北京信安世纪科技股份有限公司 | Schnorr数字签名方法、系统及设备 |
-
2021
- 2021-12-20 CN CN202111563163.7A patent/CN116318636A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117155584A (zh) * | 2023-10-27 | 2023-12-01 | 北京信安世纪科技股份有限公司 | Schnorr数字签名方法、系统及设备 |
CN117155584B (zh) * | 2023-10-27 | 2024-01-26 | 北京信安世纪科技股份有限公司 | Schnorr数字签名方法、系统及设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10211981B2 (en) | System and method for generating a server-assisted strong password from a weak secret | |
CN111314089B (zh) | 一种基于sm2的两方协同签名方法及解密方法 | |
CN113364576B (zh) | 一种基于区块链的数据加密存证与共享方法 | |
US8713323B2 (en) | Codeword-enhanced peer-to-peer authentication | |
JP2001513227A (ja) | ネットワーク環境における秘密最新乱数の管理および使用 | |
CN111404952B (zh) | 变电站数据加密传输方法、装置、计算机设备和存储介质 | |
CN113711564A (zh) | 用于加密数据的计算机实现的方法和系统 | |
CN111010276A (zh) | 一种多方联合sm9密钥生成、密文解密方法与介质 | |
CN110855425A (zh) | 一种轻量级多方协同sm9密钥生成、密文解密方法与介质 | |
CN111030801A (zh) | 一种多方分布式的sm9密钥生成、密文解密方法与介质 | |
EP3854052A1 (en) | Computer implemented system and method for sharing a common secret | |
Yang | Application of hybrid encryption algorithm in hardware encryption interface card | |
Pu et al. | Post quantum fuzzy stealth signatures and applications | |
CN116318636A (zh) | 一种基于sm2的门限签名方法 | |
CN116346336B (zh) | 一种基于多层密钥生成中心的密钥分发方法及相关系统 | |
Lin et al. | F2p-abs: A fast and secure attribute-based signature for mobile platforms | |
Harkins | Secure pre-shared key (PSK) authentication for the internet key exchange protocol (IKE) | |
CN114189329B (zh) | 一种公钥认证可否认加密方法及系统 | |
US11930117B2 (en) | Method and apparatus for reversible tokenization with support for embeddable role-based access control | |
JP5392741B2 (ja) | Rsaをベースとしたパスワード認証方式及びその応用 | |
Das | A hybrid algorithm for secure cloud computing | |
Indesteege | Analysis and design of cryptographic hash functions | |
Tang | Lecture Notes on “Introduction to Modern Cryptography” | |
Bhatia | Cryptography-The Hidden Message | |
Mathews et al. | QS-Auth: A Quantum-secure mutual authentication protocol based on PUF and Post-Quantum Signature for Heterogeneous Delay-Tolerant Networks |
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 |