支持混合秘密共享的SM9数字签名协同生成方法及系统技术方案

技术编号:22172680 阅读:63 留言:0更新日期:2019-09-21 13:23
发明专利技术为SM9数字签名方法:m个装置分别有整数秘密ci,非秘密Pi=[bi]dA,gi=g^bi,i=1,…,m,m≥2,dA是私钥,g=e(P1,Ppub),^是幂运算;初始化时从t1=c1通过与c2,...,cm的模n加或乘递进计算得到t2,...,tm,c=tm,计算PA=[c

SM9 Digital Signature Collaborative Generation Method and System Supporting Hybrid Secret Sharing

【技术实现步骤摘要】
支持混合秘密共享的SM9数字签名协同生成方法及系统
本专利技术属于信息安全
,特别是一种支持混合秘密共享的SM9数字签名协同生成方法及系统。
技术介绍
SM9是由国家密码管理局颁布的一种基于双线性映射(配对运算)的标识密码算法,其中的双线性映射(配对运算)为:e:G1×G2→GT时,其中G1、G2是加法循环群,GT是一个乘法循环群,G1、G2、GT的阶是素数n(注:在SM9规范中,G1、G2、GT的阶用的是大写字母N,本专利申请采用小写n),即若P、Q、R分别为G1、G2中的元,则e(P,Q)为GT中的元,且:e(P+R,Q)=e(P,Q)e(R,Q),e(P,Q+R)=e(P,Q)e(P,R),e(aP,bQ)=e(P,Q)ab。基于SM9算法能实现基于标识的数字签名、密钥交换及数据加密。针对SM9,本专利申请的专利技术人曾提出了相应的基于秘密共享的数字签名生成方案,但有关方案仅支持求和秘密共享(多个秘密份额的和构成了秘密)或乘积秘密共享(多个秘密份额的乘积构成了秘密),不支持求和与乘积混合的秘密共享(混合秘密共享),这就是本专利申请的专利技术要解决的问题。
技术实现思路
本专利技术的目的是提出一种支持混合秘密共享的数字签名协同生成方法及系统。针对本专利技术的目的,本专利技术提出的技术方案包括支持混合秘密共享的SM9数字签名协同生成方法及系统。在以下对本专利技术技术方案的描述中,若P、Q是加法群G1、G2中的元,则P+Q表示P、Q在加法群上的加,P-Q表示P加上Q的逆元(加法逆元),[k]P表示k个P在加法群上的加,即P+P+...+P(共有k个P),若k是负数,则是|k|个P相加的结果的加法逆元([k]P表示与SM9算法规定的符号一致)。省略号“...”,表示多个同样(类型)的数据项或多个同样的运算。若a、b是乘法群GT中的元,则ab或a〃b表示a、b在乘法群GT上的乘(只要不产生无二义性,“〃”可以省略),a-1表示a在乘法群中逆元(乘法逆元),at表示t个a在乘法群GT上相乘(t是负数,则是|t|个a相乘的结果的乘法逆元),即幂运算,at的另一种表达方式是a^t;若c为整数,则c-1表示整数c的模n乘法逆(即cc-1modn=1);如无特别说明,本专利专利技术中整数的乘逆都是针对群G1、G2、GT的阶n的模n乘法逆;多个整数相乘(包括整数符号相乘、常数与整数符号相乘),在不产生二义性的情况下,省略掉乘号“〃”,如k1〃k2简化为k1k2,3〃c,简化为3c;modn表示模n运算(modulooperation),对应于SM9规范中的modN;还有,模n运算的算子modn的优先级是最低的,如a+bmodn等同于(a+b)modn,a-bmodn等同于(a-b)modn,abmodn等同于(ab)modn。本专利技术的支持混合秘密共享的SM9数字签名协同生成方法具体如下。所述方法涉及m个装置,其中m≥2;m个装置分别标号为第1号到第m号装置;m个装置分别保存有在[1,n-1]内随机选择的整数秘密c1,c2,…,cm,其中n为SM9密码算法中群G1、G2、GT的阶,ci是第i号装置保存的秘密,i=1,…,m;第i号装置,i=1,…,m,保存有Pi=[bi]dA,gi=g^bi(Pi和gi不必是秘密),其中dA是用户的SM9标识私钥,bi是[1,n-1]中的且m个装置都不知的整数秘密(bi也不为第i号装置所知),^表示幂运算,g=e(P1,Ppub),P1为G1中的生成元,Ppub为主公钥(即Ppub=[s]P2,s为主私钥或主密钥,P2为G2中的生成元,参见SM9规范);在初始化阶段按如下方式计算得到秘密c(在将c1,c2,…,cm分配给m个装置之前或之后,由m个装置中的一个装置或m个装置之外的装置或m个装置协同计算):第1步:设置t1=c1,进入第2步;第i步:i=2,…m,计算ti=(ti-1+ci)modn,或ti=(citi-1)modn;若i=m,则令c=tm,完成c的计算,否则进入第i+1步,直到第m步计算得到tm;以上计算c的过程中每步独立选择计算公式;之后,计算PA=[c-1]dA;之后,将PA分发给m个装置,将dA、c销毁;当需要使用用户的SM9标识私钥dA针对消息M进行数字签名时,m个装置按如下方式进行数字签名的生成(需要使用用户的SM9标识私钥dA、针对消息M进行数字签名的主体可以是调用这m个装置的密码应用程序、系统或密码模块,或者m个装置之一中的密码应用程序、系统):第1号装置在[1,n-1]内随机选择一个整数r1,计算u1=g1^r1,然后将u1传送第2号装置;第i号装置,i=2,…,m,在[1,n-1]内随机选择一个整数ri,并按如下方式计算ui:若计算ti时采用的公式是ti=(ti-1+ci)modn,则ui=ui-1(gi^ri);若计算ti时采用的公式是ti=(citi-1)modn,则ui=(ui-1^ci)(gi^ri);若i=m,则令w=um,转入后续处理,否则,第i号装置将ui传送第i+1号装置,直到第m号装置完成um计算;m个装置中的一个装置(可以是其中任一个装置)计算h=H2(M||w,n),其中H2为SM9中规定的散列函数,M||w表示将w转化成字串后与M的字串合并,n为SM9密码算法中群G1、G2、GT的阶;(这里h无需保密,可在装置间传送)之后,第1号装置计算S1=[r1]P1-[c1h]PA,这里r1与计算u1时的r1相同;第1号装置将S1传送给第2号装置;第i号装置,i=2,…,m,按如下方式计算Si:若计算ui采用的公式是ui=ui-1(gi^ri),则Si=Si-1+[ri]Pi-[cih]PA;若计算ui采用的公式是ui=(ui-1^ci)(gi^ri),则Si=[ci]Si-1+[ri]Pi,这里ri与计算ui时的ri相同;若i=m,则令S=Sm,(h,S)即是针对消息M的数字签名,否则,第i号装置将Si传送第i+1号装置,直到第m号装置计算得到Sm。对于以上所述支持混合秘密共享的SM9数字签名协同生成方法,在ti计算过程中,i=2,…,或m,若出现ti=0,则重新在[1,n-1]内选择整数秘密c1,…,ci,重新设置t1,重新计算tj,j=2,…,i,直到ti≠0,i=2,…,m。对于以上所述支持混合秘密共享的SM9数字签名协同生成方法,所述整数秘密bi,i=1,…,m,是初始化阶段在[1,n-1]中随机选择的一个整数,或者是m个装置都不知道的一个整数秘密(比如,c-1或其他秘密数);针对m个装置的整数秘密bi,i=1,…,m,不必不同。对于以上所述支持混合秘密共享的SM9数字签名协同生成方法,若第i号装置完成ui计算后,检查发现ui是单位元,则第1号到第i号装置重新选取rt,重新计算ut,t=1,…,i,直到ui不是单位元。对于以上所述支持混合秘密共享的SM9数字签名协同生成方法,若计算得到h后,(m个装置的一个装置)检查发现w=g^h,则m个装置重新选取ri,重新计算ui,i=1,…,m,重新计算h,直到w≠g^h。对于以上所述支持混合秘密共享的SM9数字签名协同生成方法,若第i号装置完成Si计算后,检查发现Si是零元(椭圆曲线点群的无穷远点),则m本文档来自技高网...

【技术保护点】
1.一种支持混合秘密共享的SM9数字签名协同生成方法,其特征是:所述方法涉及m个装置,其中m≥2;m个装置分别标号为第1号到第m号装置;m个装置分别保存有在[1,n‑1]内随机选择的整数秘密c1,c2,…,cm,其中n为SM9密码算法中群G1、G2、GT的阶,ci是第i号装置保存的秘密,i=1,…,m;第i号装置,i=1,…,m,保存有Pi=[bi]dA,gi=g^bi,其中dA是用户的SM9标识私钥,bi是[1,n‑1]中的且m个装置都不知道的整数秘密,^表示幂运算,g=e(P1,Ppub),P1为G1中的生成元,Ppub为主公钥;在初始化阶段按如下方式计算得到秘密c:第1步:设置t1=c1,进入第2步;第i步:i=2,…m,计算ti=(ti‑1+ci)mod n,或ti=(citi‑1)mod n;若i=m,则令c=tm,完成c的计算,否则进入第i+1步,直到第m步计算得到tm;以上计算c的过程中每步独立选择计算公式;之后,计算PA=[c

【技术特征摘要】
1.一种支持混合秘密共享的SM9数字签名协同生成方法,其特征是:所述方法涉及m个装置,其中m≥2;m个装置分别标号为第1号到第m号装置;m个装置分别保存有在[1,n-1]内随机选择的整数秘密c1,c2,…,cm,其中n为SM9密码算法中群G1、G2、GT的阶,ci是第i号装置保存的秘密,i=1,…,m;第i号装置,i=1,…,m,保存有Pi=[bi]dA,gi=g^bi,其中dA是用户的SM9标识私钥,bi是[1,n-1]中的且m个装置都不知道的整数秘密,^表示幂运算,g=e(P1,Ppub),P1为G1中的生成元,Ppub为主公钥;在初始化阶段按如下方式计算得到秘密c:第1步:设置t1=c1,进入第2步;第i步:i=2,…m,计算ti=(ti-1+ci)modn,或ti=(citi-1)modn;若i=m,则令c=tm,完成c的计算,否则进入第i+1步,直到第m步计算得到tm;以上计算c的过程中每步独立选择计算公式;之后,计算PA=[c-1]dA;之后,将PA分发给m个装置,将dA、c销毁;当需要使用用户的SM9标识私钥dA针对消息M进行数字签名时,m个装置按如下方式进行数字签名的生成:第1号装置在[1,n-1]内随机选择一个整数r1,计算u1=g1^r1,然后将u1传送第2号装置;第i号装置,i=2,…,m,在[1,n-1]内随机选择一个整数ri,并按如下方式计算ui:若计算ti时采用的公式是ti=(ti-1+ci)modn,则ui=ui-1(gi^ri);若计算ti时采用的公式是ti=(citi-1)modn,则ui=(ui-1^ci)(gi^ri);若i=m,则令w=um,转入后续处理,否则,第i号装置将ui传送第i+1号装置,直到第m号装置完成um计算;m个装置中的一个装置计算h=H2(M||w,n),其中H2为SM9中规定的散列函数,M||w表示将w转化成字串后与M的字串合并,n为SM9密码算法中群G1、G2、GT的阶;之后,第1号装置计算S1=[r1]P1-[c1h]PA,这里r1与计算u1时的r1相同;第1号装置将S1传送给第2号装置;第i号装置,i=2,…,m,按如下方式计算Si:若计算ui采用的公式是ui=ui-1(gi^ri),则Si=Si-1+[ri]Pi-[cih]PA;若计算ui采用的公式是ui=(ui-1^ci)(gi^ri),则Si=[ci]Si-1+[ri]Pi,这里ri与计算ui时的ri相同;若i=m,则令S=Sm,(h,S)即是针对消息M的数字签名,否则,第i号装置将Si传送第i+1号装置,直到第m号装置计算得到Sm。2.根据权利要求1所...

【专利技术属性】
技术研发人员:龙毅宏
申请(专利权)人:武汉理工大学
类型:发明
国别省市:湖北,42

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1