CN114760055B - 基于梅森素数的秘密分享方法、系统、存储介质及设备 - Google Patents

基于梅森素数的秘密分享方法、系统、存储介质及设备 Download PDF

Info

Publication number
CN114760055B
CN114760055B CN202210670514.2A CN202210670514A CN114760055B CN 114760055 B CN114760055 B CN 114760055B CN 202210670514 A CN202210670514 A CN 202210670514A CN 114760055 B CN114760055 B CN 114760055B
Authority
CN
China
Prior art keywords
secret
algorithm
modular
multiplication
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.)
Active
Application number
CN202210670514.2A
Other languages
English (en)
Other versions
CN114760055A (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.)
Shandong Huaqing Cryptography Technology Co ltd
Original Assignee
Shandong Blockchain Research Institute
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 Shandong Blockchain Research Institute filed Critical Shandong Blockchain Research Institute
Priority to CN202210670514.2A priority Critical patent/CN114760055B/zh
Publication of CN114760055A publication Critical patent/CN114760055A/zh
Application granted granted Critical
Publication of CN114760055B publication Critical patent/CN114760055B/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/085Secret sharing or secret splitting, e.g. threshold schemes

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Complex Calculations (AREA)

Abstract

本发明涉及秘密分享技术领域,提供了基于梅森素数的秘密分享方法、系统、存储介质及设备,包括:在进行秘钥生成时,基于门限值和梅森素数,将待分享的秘密分散为每个参与者持有的密钥;在进行秘密恢复时,获取若干个参与者持有的密钥,基于门限值和梅森素数,恢复出秘密;其中,在密钥生成中,遇到乘法计算调用模乘算法,遇到加法计算调用模加算法;在秘密恢复中,遇到减法计算调用模减算法,遇到乘法计算调用模乘算法,遇到除法运算时,将除以分母转为乘以分母的逆后,对分母的逆调用模逆算法。提高了秘密分享的效率。

Description

基于梅森素数的秘密分享方法、系统、存储介质及设备
技术领域
本发明属于秘密分享技术领域,尤其涉及基于梅森素数的秘密分享方法、系统、存储介质及设备。
背景技术
本部分的陈述仅仅是提供了与本发明相关的背景技术信息,不必然构成在先技术。
秘密分享技术是一种在一组参与者之间分配秘密的方法,通过这种技术,可以把秘密拆分成份额分散在多个参与者之间,使得持有份额的参与者在一定条件下可以联合恢复原本的秘密。
Shamir(k,n)门限秘密分享方案通过构造k-1次多项式,将需要分享的秘密d作为多项式的常数项,将秘密分成n个秘密份额分别分给n个参与者,k个或k个以上的参与者合作,利用拉格朗日插值公式可以恢复出所分享的秘密d,但少于k个参与者合作不能得到关于所分享的秘密的任何信息。
但是,Shamir(k,n)门限秘密分享方案在实际的工程使用中还存在一些问题:一方面是秘密分享是基于密码学中大数模运算的,但是,目前大数的模运算在工程实现中效率较低;另一方面是针对不同长度的秘密可能需要不同的模数P来完成。
发明内容
为了解决上述背景技术中存在的技术问题,本发明提供基于梅森素数的秘密分享方法、系统、存储介质及设备,基于梅森素数的模运算进行,提高了秘密分享的效率。
为了实现上述目的,本发明采用如下技术方案:
本发明的第一个方面提供基于梅森素数的秘密分享方法,其包括:
在进行秘钥生成时,基于门限值和梅森素数,将待分享的秘密分散为每个参与者持有的密钥;
在进行秘密恢复时,获取若干个参与者持有的密钥,基于门限值和梅森素数,恢复出秘密;
其中,在密钥生成中,遇到乘法计算调用模乘算法,遇到加法计算调用模加算法;在秘密恢复中,遇到减法计算调用模减算法,遇到乘法计算调用模乘算法,遇到除法运算时,将除以分母转为乘以分母的逆后,对分母的逆调用模逆算法。
进一步地,所述模加算法的流程为:
获取进行模加算法的两个元素,且两个元素均大于等于0且小于等于所述梅森素数,梅森素数表示为p=2 q -1;
基于CPU的工作环境,对两个元素的和进行进制转换,得到转换结果;
判断转换结果的溢出位是否为1,若是,则转换结果只保留其低q位,并令转换结果加1;否则,转换结果不变;
输出转换结果,即为两个元素的模加结果。
进一步地,所述模乘算法的流程为:
获取进行模乘算法的两个元素,且两个元素均大于等于0且小于等于所述梅森素数,梅森素数表示为p=2 q -1;
基于CPU的工作环境,对两个元素的乘积进行进制转换,得到转换结果;
获取转换结果的低q比特c low 和高q比特c high
调用模加算法计算c=(c low +c high ) (mod(p));
输出c,即为两个元素的模乘结果。
进一步地,所述模减算法的流程为:
获取进行模减算法的两个元素,且两个元素均大于等于0且小于等于所述梅森素数,梅森素数表示为p=2 q -1;
基于CPU的工作环境,对两个元素的差进行进制转换,得到转换结果;
判断转换结果的借位位是否为1,若是,则转换结果只保留其低q位,并令转换结果减1;否则,转换结果不变;
输出转换结果,即为两个元素的模减结果。
进一步地,所述模逆算法的流程为:
(1)获取进行模逆算法的元素a,且满足0≤a<pp为所述梅森素数;
(2)令u=av=px 1=1,x 2=0;
(3)判断uv是否均不等于1,若是,则执行步骤(4);否则,执行步骤(9);
(4)判断u是否为偶数,若是,执行步骤(5);否则,执行步骤(6);
(5)更新uu= u/2;并判断x 1是否为偶数,若是x 1=x 1/2,否则,x 1=(x 1+p)/2;然后返回步骤(4);
(6)判断v是否为偶数,若是,执行步骤(7);否则,执行步骤(8);
(7)更新vv= v/2;并判断x 2是否为偶数,若是x 2=x 2/2,否则,x 2=(x 2+p)/2;然后返回步骤(6);
(8)如果uvu=u-vx 1=x 1-x 2;如果u<vv=v-ux 2=x 2-x 1;并返回步骤(3);
(9)如果u=1,则返回c=x 1(mod(p));如果v=1,则返回c=x 2(mod(p));
(10)输出c,即为(a -1)(mod(p))的结果。
进一步地,第i个参与者持有的密钥的密钥值为:
keyvalue i = ( msg + i ra 1 + i 2ra 2 + ⋯ + i k-1ra k-1 )(mod(p))
其中,msg为待分享的秘密,ra 1 、ra 2 直到ra k-1 为根据所述门限值k,生成的k-1个模p的随机数,p为所述梅森素数。
进一步地,恢复出的秘密表示为:
Figure 100002_DEST_PATH_IMAGE001
其中,p为所述梅森素数,k为所述门限值,value i 为用于进行复原秘密的第i个密钥的密钥值,num i 为用于进行复原秘密的第i个密钥的编号。
本发明的第二个方面提供基于梅森素数的秘密分享系统,其包括:
密钥生成模块,其被配置为:在进行秘钥生成时,基于门限值和梅森素数,将待分享的秘密分散为每个参与者持有的密钥;
秘密恢复模块,其被配置为:在进行秘密恢复时,获取若干个参与者持有的密钥,基于门限值和梅森素数,恢复出秘密;
其中,在密钥生成中,遇到乘法计算调用模乘算法,遇到加法计算调用模加算法;在秘密恢复中,遇到减法计算调用模减算法,遇到乘法计算调用模乘算法,遇到除法运算时,将除以分母转为乘以分母的逆后,对分母的逆调用模逆算法。
本发明的第三个方面提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如上述所述的基于梅森素数的秘密分享方法中的步骤。
本发明的第四个方面提供一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述所述的基于梅森素数的秘密分享方法中的步骤。
与现有技术相比,本发明的有益效果是:
本发明提供了基于梅森素数的秘密分享方法,其是基于模运算的,基于梅森素数的模运算效率较高,因此秘密分享的效率有所提高。
本发明提供了基于梅森素数的秘密分享方法,其根据待分享秘密的长度选择不同的梅森素数,可以对任意长度的秘密,实现高效的秘密分享。
附图说明
构成本发明的一部分的说明书附图用来提供对本发明的进一步理解,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。
图1是本发明实施例一的密钥生成流程图;
图2是本发明实施例一的秘密恢复流程图。
具体实施方式
下面结合附图与实施例对本发明作进一步说明。
应该指出,以下详细说明都是例示性的,旨在对本发明提供进一步的说明。除非另有指明,本文使用的所有技术和科学术语具有与本发明所属技术领域的普通技术人员通常理解的相同含义。
需要注意的是,这里所使用的术语仅是为了描述具体实施方式,而非意图限制根据本发明的示例性实施方式。如在这里所使用的,除非上下文另外明确指出,否则单数形式也意图包括复数形式,此外,还应当理解的是,当在本说明书中使用术语“包含”和/或“包括”时,其指明存在特征、步骤、操作、器件、组件和/或它们的组合。
实施例一
本实施例提供了基于梅森素数的秘密分享方法,如图1和图2所示,具体包括以下步骤:
步骤1、密钥生成:即在进行秘钥生成时,基于门限值和梅森素数,将待分享的秘密分散为每个参与者持有的密钥,具体步骤为:
步骤101、获取待分享的秘密(消息)msg、参与者个数n、门限值k和梅森素数p,为每个参与者生成一个编号i,并告知每个参与者自己的编号以及参与者的总数(参与者个数n)。
其中,梅森素数p=2 q -1,根据梅森素数的表达式可知:2 q ≡1(mod(p)),指数q的取值可以为:2、3、5、7、13、17、19、31、61、89、107、127、521、607、1279、2203、2281、3217、4253、4423、9689、9941、11213、19937、21701、23209、44497、86243、110503、132049、216091、756839、859433、1257787、1398269、2976221、3021377、6972593、13466917、20996011、24036583、25964951、30402457、32582657、37156667、42643801、43112609、57885161、74207281、77232917或82589933。
具体的,可以根据待分享的秘密msg的长度选取梅森素数p
步骤102、对待分享的秘密msg进行处理,即,当待分享的秘密的长度不足时,即,如果msg长度小于梅森素数p的长度,根据选定的梅森素数p的长度,在待分享的秘密msg前进行补0。
步骤103、根据门限值k,生成k-1个模p的随机数,记作ra 1ra 2、…、ra k-1
步骤104、基于待分享的秘密msg、梅森素数pk-1个模p的随机数,生成结构体格式的密钥key i ,包括msg的初始长度、编号i以及密钥值keyvalue i ,并发送给对应编号的编号i的参与者。
其中,密钥值keyvalue i 的生成方法为:将待分享的秘密msg视为多项式的0次项,k-1个模p的随机数作为多项式的其他项,生成n个密钥值,则第i个参与者持有的密钥的密钥值为:
keyvalue i = ( msg + i ra 1 + i 2ra 2 + ⋯ + i k-1ra k-1 )(mod(p))
其中,msg为待分享的秘密,ra 1 、ra 2 直到ra k-1 为根据所述门限值k,生成的k-1个模p的随机数,p为所述梅森素数,ra 1ra 2直到ra k-1的系数i、i 2直到i k-1,可以自定义;在密钥生成中,遇到乘法计算调用模乘算法,即,i ra 1i 2ra 2直到i k-1ra k-1均调用模乘算法ab(mod(p)),其中,ii 2直到i k-1均看作模乘算法中的一个元素ara 1ra 2直到ra k-1均看作模乘算法中的另一个元素b;在密钥生成中,遇到加法计算调用模加算法,即msg + i ra 1msg + i ra 1的结果加i 2ra 2、直到msg + i ra 1 + i 2ra 2 + ⋯ + i k-2ra k-2的结果加i k-1ra k-1均调用模加算法(a+b)(mod(p))。
在进行模加算法时,对于模加算法中的两个元素
Figure 910809DEST_PATH_IMAGE002
,分别基于CPU的工作环境,进行进制转换。具体的,将模加算法中的两个元素,通过进制转换,表示为2 w 进制形式。假设CPU的工作环境为w比特,w一般为32或者64,那么数组长度为t=⌈q/w⌉,因为q为素数,不一定可以整除w,所以tq/w的值向上取整;则大数a可以表示为w比特的t维数组:a=(A[t-1],…,A[1],A[0]),A[i]表示a的第iw比特字(w比特组成的数),比如q=521,w=64,那么t=9,a为一个521比特的数,那么A[0]就表示a的1-64比特,A[1]就表示a的65-128比特,依次类推;数学上这个表示对应于整数a的2 w 进制表示:
a=2(t-1)w A[t-1]+2(t-2)w A[t-2]+⋯+2 w A[1]+A[0]
同理,b的2 w 进制表示:
b=2(t-1)w B[t-1]+2(t-2)w B[t-2]+⋯+2 w B[1]+B[0]
其中,B[i]表示b的第iw比特字。
则,a+b的2 w 进制表示为:
a+b=2(t-1)w C[t-1]+2(t-2)w C[t-2]+⋯+2 w C[1]+C[0]
其中,C[i]为进制转换中第i位的系数,模加算法中的C[i]=(A[i]+B[i]+δ i-1)(mod2 w ),这里的δ i 表示低w位向高w位的进位值,且δ -1=0。
模加算法的一般方法为在大数加法的基础上,判断是否有溢出,即a+bp,如果有溢出,则进行减p操作;可以根据溢出位是否为1,判断a+b是否溢出,溢出位,即2 q ,根据2 q ≡1(mod(p)),减p即为取c的低q位,然后执行加1操作。
综上,模加算法的流程如下:
(1)获取梅森素数p和进行模加算法的两个元素ab,且两个元素均大于等于0且小于等于梅森素数,即满足0≤a,b<p;
(2)基于CPU的工作环境,对两个元素的和a+b进行进制转换,得到转换结果,即两个元素的和a+b的2 w 进制表示a+b=2(t-1)w C[t-1]+2(t-2)w C[t-2]+⋯+2 w C[1]+C[0];
(3)令c=2(t-1)w C[t-1]+2(t-2)w C[t-2]+⋯+2 w C[1]+C[0];
(4)判断C[t-1]对应2 q 的比特位值(转换结果的溢出位)是否为1;
(5)如果为1,则转换结果c只保留其低q位,并令转换结果加1,即执行c=c+1;如果为0,则转换结果c保持不变;
(6)输出转换结果,即为两个元素的模加结果,即,输出c,即为(a+b)(mod(p))的结果。
在进行模乘算法时,与模加算法相同,对于模乘算法中的两个元素
Figure DEST_PATH_IMAGE003
,分别基于CPU的工作环境,进行进制转换,表示为2 w 进制形式:a的2 w 进制表示:
a=2(t-1)w A[t-1]+2(t-2)w A[t-2]+⋯+2 w A[1]+A[0]
b的2 w 进制表示:
b=2(t-1)w B[t-1]+2(t-2)w B[t-2]+⋯+2 w B[1]+B[0]
其中,A[i]表示a的第iw比特字,B[i]表示b的第iw比特字。
ab的2 w 进制表示为:
ab=2((2t-1)w) C[2t-1]+2((2t-2)w) C[2t-2]…+2 w C[1]+C[0]
乘法的结果长度为q长度的两倍,因此需要归约算法来计算ab(mod(p))。针对梅森素数的特性2 q ≡1(mod(p)),得出其高q位的归约算法。即将ab的结果分为高q位和低q位,直接对高q位和低q位执行模加算法,即可得到ab(mod(p))的归约值。
综上,模乘算法的流程如下:
(1)获取梅森素数p和进行模乘算法的两个元素ab,且满足0≤a,b<p
(2)基于CPU的工作环境,对两个元素的乘积进行进制转换,得到转换结果,即,得到ab的2 w 进制表示ab=2((2t-1)w) C[2t-1]+2((2t-2)w) C[2t-2]…+2 w C[1]+C[0];
(3)获取转换结果的低q比特c low 和高q比特c high ,令c low 等于转换结果ab的低q比特,c high 等于ab的高q比特;其中,取c low c high 均可以通过移位的方式来实现;
(4)调用模加算法计算c=(c low +c high ) (mod(p));
(5)输出c,即为两个元素的模乘结果,即ab(mod(p))的结果。
步骤2、秘密恢复:在进行秘密恢复时,获取若干个参与者持有的密钥,基于门限值和梅森素数,恢复出秘密。秘密的恢复流程包括:
步骤201、获取多份密钥key i ,即若干个参与者持有的密钥key i
步骤202、判断获取的密钥的数量,如果密钥数量小于门限值k,则返回解密失败;
步骤203、当获取的密钥的数量大于等于门限值k时,读取各个密钥的编号以及密钥信息,根据各个密钥的编号,选前k个密钥进行复原秘密,将前k个密钥的编号分别记为num i ,密钥值记为value i
步骤204、复原秘密:即将前k个密钥的密钥信息(密钥值)代入k-1次多项式解密,即恢复出的秘密表示为:
Figure 521919DEST_PATH_IMAGE004
其中,p为所述梅森素数,k为所述门限值,value i 为用于进行复原秘密的第i个密钥的密钥值,num i 为用于进行复原秘密的第i个密钥的编号
步骤205、输出秘密msg
在秘密恢复中,k个或k个以上的参与者合作,利用拉格朗日插值公式可以恢复出所共享的秘密,但少于k个参与者合作不能得到关于共享秘密的任何信息。
在秘密恢复中,遇到减法计算调用模减算法,即,0-num j num i - num j 均调用模减算法(a-b)(mod(p));在秘密恢复中,遇到除法运算时,将除以分母转为乘以分母的逆,即将
Figure 609960DEST_PATH_IMAGE005
转化为(0-num j ) •(num i - num j )-1后,对分母的逆调用模逆算法;在秘密恢复中,遇到乘法计算调用模乘算法,即,
Figure 470469DEST_PATH_IMAGE006
调用模乘算法ab(mod(p))。
在进行模减算法时,与模加算法相同,对于模减算法中的两个元素
Figure 872632DEST_PATH_IMAGE003
,分别基于CPU的工作环境,进行进制转换,表示为2 w 进制形式:a的2 w 进制表示:
a=2(t-1)w A[t-1]+2(t-2)w A[t-2]+⋯+2 w A[1]+A[0]
b的2 w 进制表示:
b=2(t-1)w B[t-1]+2(t-2)w B[t-2]+⋯+2 w B[1]+B[0]
其中,A[i]表示a的第iw比特字,B[i]表示b的第iw比特字。
a-b的2 w 进制表示为:
a-b=2(t-1)w C[t-1]+2(t-2)w C[t-2]+⋯+2 w C[1]+C[0]
其中,模减算法中的C[i]=(A[i]-B[i]-η i-1)(mod 2 w ),这里的η i 表示低w位向高w位的借位值,且η -1=0。
模减算法在大数加法的基础上,判断是否有借位,即a-b<0,如果有借位,则进行加p操作;可以根据借位位是否为1,判断a+b是否借位,借位位即2 q ,因为默认大于2 q 也为0,如果有借位,则C[t-1]的最高位也一定为1;则根据2 q ≡1(mod(p)),加p即为取c的低q位,然后执行减1的操作。
模减算法的流程如下:
(1)获取梅森素数p和进行模减算法的两个元素ab,且满足0≤a,b<p
(2)基于CPU的工作环境,对两个元素的差进行进制转换,得到转换结果,即,得到a-b的2 w 进制表示a-b=2(t-1)w C[t-1]+2(t-2)w C[t-2]+⋯+2 w C[1]+C[0];
(3)令c=2(t-1)w C[t-1]+2(t-2)w C[t-2]+⋯+2 w C[1]+C[0];
(4)判断C[t-1]的最高比特位值(转换结果的借位位)是否为1;
(5)如果为1,则转换结果c只保留其低q位,并令转换结果减1,即执行c=c-1;如果为0,则转换结果不变,即c保持不变;
(6)输出转换结果,即为两个元素的模减结果,即输出c,即为(a-b)(mod(p))的结果。
在进行模逆算法时,对于
Figure DEST_PATH_IMAGE007
,求模p的逆可以采用二元求逆法,求逆过程中的除以2的操作可以通过右移一位进行,对于奇数x,执行(x+p)/2时,因为x是奇数,等价于(x-1)/2+(p+1)/2,根据计算机内部右移直接将低位抛弃的特点,将x右移一位等价于(x-1)/2,因为(p+1)=2 q ,所以(p+1)/2即2 q-1,2 q-1= 2(t-1)w C[t-1]+2(t-2)w C[t-2]+⋯+2 w C[1]+C[0],且2 q-1的低位全为0,最高位为1,故只需要将C[t-1]与(x-1)/2的最高位进行一次加法即可。
模逆算法的具体流程如下:
(1)获取梅森素数p和进行模逆算法的元素a,且满足0≤a<p
(2)令u=av=px 1=1,x 2=0;
(3)判断uv是否均不等于1,若是,则执行步骤(4);否则,执行步骤(9);
(4)判断u是否为偶数(even),若是,执行步骤(5);否则,执行步骤(6);
(5)更新uu= u/2;并判断x 1是否为偶数,若是x 1=x 1/2,否则,x 1=(x 1+p)/2;然后返回步骤(4);
(6)判断v是否为偶数(even),若是,执行步骤(7);否则,执行步骤(8);
(7)更新vv= v/2;并判断x 2是否为偶数,若是x 2=x 2/2,否则,x 2=(x 2+p)/2;然后返回步骤(6);
(8)如果uvu=u-vx 1=x 1-x 2;如果u<vv=v-ux 2=x 2-x 1;并返回步骤(3);
(9)如果u=1,则返回c=x 1(mod(p));如果v=1,则返回c=x 2(mod(p));
(10)输出c,即为(a -1)(mod(p))的结果。
其中,模逆算法中的u=u-vx 1=x 1-x 2v=v-ux 2=x 2-x 1均调用模减算法。
本发明的基于梅森素数的秘密分享方法是基于模运算的,基于梅森素数p的模运算效率较高,因此秘密分享的效率有所提高。
本发明的基于梅森素数的秘密分享方法根据待分享秘密的长度选择不同的梅森素数,可以对任意长度的秘密,实现高效的秘密分享。
实施例二
本实施例提供了基于梅森素数的秘密分享系统,其具体包括如下模块:
密钥生成模块,其被配置为:在进行秘钥生成时,基于门限值和梅森素数,将待分享的秘密分散为每个参与者持有的密钥;
秘密恢复模块,其被配置为:在进行秘密恢复时,获取若干个参与者持有的密钥,基于门限值和梅森素数,恢复出秘密;
其中,在密钥生成中,遇到乘法计算调用模乘算法,遇到加法计算调用模加算法;在秘密恢复中,遇到减法计算调用模减算法,遇到乘法计算调用模乘算法,遇到除法运算时,将除以分母转为乘以分母的逆后,对分母的逆调用模逆算法。
此处需要说明的是,本实施例中的各个模块与实施例一中的各个步骤一一对应,其具体实施过程相同,此处不再累述。
实施例三
本实施例提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如上述实施例一所述的基于梅森素数的秘密分享方法中的步骤。
实施例四
本实施例提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述实施例一所述的基于梅森素数的秘密分享方法中的步骤。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用硬件实施例、软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(RandomAccessMemory,RAM)等。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (7)

1.基于梅森素数的秘密分享方法,其特征在于,包括:
在进行秘钥生成时,基于门限值和梅森素数,将待分享的秘密分散为每个参与者持有的密钥;第i个参与者持有的密钥的密钥值为:keyvalue i = ( msg+ ira 1 + i 2ra 2 + ⋯+ i k-1ra k-1 )(mod(p)),其中,msg为待分享的秘密,ra 1 、ra 2 直到ra k-1 为根据所述门限值k,生成的k-1个模p的随机数,p为所述梅森素数;
在进行秘密恢复时,获取若干个参与者持有的密钥,基于门限值和梅森素数,恢复出秘密;恢复出的秘密表示为:
Figure DEST_PATH_IMAGE001
其中,p为所述梅森素数,k为所述门限值,value i 为用于进行复原秘密的第i个密钥的密钥值,num i 为用于进行复原秘密的第i个密钥的编号;
其中,在密钥生成中,遇到乘法计算调用模乘算法,遇到加法计算调用模加算法;在秘密恢复中,遇到减法计算调用模减算法,遇到乘法计算调用模乘算法,遇到除法运算时,将除以分母转为乘以分母的逆后,对分母的逆调用模逆算法;
所述模逆算法的流程为:
(1)获取进行模逆算法的元素a,且满足0≤a<pp为所述梅森素数;
(2)令u=av=px 1=1,x 2=0;
(3)判断uv是否均不等于1,若是,则执行步骤(4);否则,执行步骤(9);
(4)判断u是否为偶数,若是,执行步骤(5);否则,执行步骤(6);
(5)更新uu= u/2;并判断x 1是否为偶数,若是x 1=x 1/2,否则,x 1=(x 1+p)/2;然后返回步骤(4);
(6)判断v是否为偶数,若是,执行步骤(7);否则,执行步骤(8);
(7)更新vv= v/2;并判断x 2是否为偶数,若是x 2=x 2/2,否则,x 2=(x 2+p)/2;然后返回步骤(6);
(8)如果uvu=u-vx 1=x 1-x 2;如果u<vv=v-ux 2=x 2-x 1;并返回步骤(3);
(9)如果u=1,则返回c=x 1(mod(p));如果v=1,则返回c=x 2(mod(p));
(10)输出c,即为(a -1)(mod(p))的结果。
2.如权利要求1所述的基于梅森素数的秘密分享方法,其特征在于,所述模加算法的流程为:
获取进行模加算法的两个元素ab,且两个元素均大于等于0且小于等于所述梅森素数,梅森素数表示为p=2 q -1,q为指数;
基于CPU的工作环境,对两个元素的和进行进制转换,得到转换结果,a+b的2 w 进制表示为:a+b=2(t-1)wC [t-1]+2(t-2)wC [t-2]+⋯+2 w C[1]+C[0],其中,CPU的工作环境为w比特,t=⌈q/w⌉,C[i]为进制转换中第i位的系数;
判断转换结果的溢出位是否为1,若是,则转换结果只保留其低q位,并令转换结果加1;否则,转换结果不变;
输出转换结果,即为两个元素的模加结果。
3.如权利要求1所述的基于梅森素数的秘密分享方法,其特征在于,所述模乘算法的流程为:
获取进行模乘算法的两个元素ab,且两个元素均大于等于0且小于等于所述梅森素数,梅森素数表示为p=2 q -1,q为指数;
基于CPU的工作环境,对两个元素的乘积进行进制转换,得到转换结果,即得到ab的2 w 进制表示ab=2((2t-1)w) C[2t-1]+2((2t-2)w) C[2t-2]…+2 w C[1]+C[0],其中,CPU的工作环境为w比特,t=⌈q/w⌉,C[i]为进制转换中第i位的系数;
获取转换结果的低q比特c low 和高q比特c high
调用模加算法计算c=(c low +c high ) (mod(p));
输出c,即为两个元素的模乘结果。
4.如权利要求1所述的基于梅森素数的秘密分享方法,其特征在于,所述模减算法的流程为:
获取进行模减算法的两个元素,且两个元素均大于等于0且小于等于所述梅森素数,梅森素数表示为p=2 q -1,q为指数;
基于CPU的工作环境,对两个元素的差进行进制转换,得到转换结果;
判断转换结果的借位位是否为1,若是,则转换结果只保留其低q位,并令转换结果减1;否则,转换结果不变;
输出转换结果,即为两个元素的模减结果。
5.基于梅森素数的秘密分享系统,其特征在于,包括:
密钥生成模块,其被配置为:在进行秘钥生成时,基于门限值和梅森素数,将待分享的秘密分散为每个参与者持有的密钥;第i个参与者持有的密钥的密钥值为:keyvalue i = (msg+ ira 1 + i 2ra 2 + ⋯ + i k-1ra k-1 )(mod(p)),其中,msg为待分享的秘密,ra 1 ra 2 直到ra k-1 为根据所述门限值k,生成的k-1个模p的随机数,p为所述梅森素数;
秘密恢复模块,其被配置为:在进行秘密恢复时,获取若干个参与者持有的密钥,基于门限值和梅森素数,恢复出秘密;恢复出的秘密表示为:
Figure 779943DEST_PATH_IMAGE001
其中,p为所述梅森素数,k为所述门限值,value i 为用于进行复原秘密的第i个密钥的密钥值,num i 为用于进行复原秘密的第i个密钥的编号;
其中,在密钥生成中,遇到乘法计算调用模乘算法,遇到加法计算调用模加算法;在秘密恢复中,遇到减法计算调用模减算法,遇到乘法计算调用模乘算法,遇到除法运算时,将除以分母转为乘以分母的逆后,对分母的逆调用模逆算法;
所述模逆算法的流程为:
(1)获取进行模逆算法的元素a,且满足0≤a<pp为所述梅森素数;
(2)令u=av=px 1=1,x 2=0;
(3)判断uv是否均不等于1,若是,则执行步骤(4);否则,执行步骤(9);
(4)判断u是否为偶数,若是,执行步骤(5);否则,执行步骤(6);
(5)更新uu= u/2;并判断x 1是否为偶数,若是x 1=x 1/2,否则,x 1=(x 1+p)/2;然后返回步骤(4);
(6)判断v是否为偶数,若是,执行步骤(7);否则,执行步骤(8);
(7)更新vv= v/2;并判断x 2是否为偶数,若是x 2=x 2/2,否则,x 2=(x 2+p)/2;然后返回步骤(6);
(8)如果uvu=u-vx 1=x 1-x 2;如果u<vv=v-ux 2=x 2-x 1;并返回步骤(3);
(9)如果u=1,则返回c=x 1(mod(p));如果v=1,则返回c=x 2(mod(p));
(10)输出c,即为(a -1)(mod(p))的结果。
6.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-4中任一项所述的基于梅森素数的秘密分享方法中的步骤。
7.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1-4中任一项所述的基于梅森素数的秘密分享方法中的步骤。
CN202210670514.2A 2022-06-15 2022-06-15 基于梅森素数的秘密分享方法、系统、存储介质及设备 Active CN114760055B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210670514.2A CN114760055B (zh) 2022-06-15 2022-06-15 基于梅森素数的秘密分享方法、系统、存储介质及设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210670514.2A CN114760055B (zh) 2022-06-15 2022-06-15 基于梅森素数的秘密分享方法、系统、存储介质及设备

Publications (2)

Publication Number Publication Date
CN114760055A CN114760055A (zh) 2022-07-15
CN114760055B true CN114760055B (zh) 2022-09-09

Family

ID=82337154

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210670514.2A Active CN114760055B (zh) 2022-06-15 2022-06-15 基于梅森素数的秘密分享方法、系统、存储介质及设备

Country Status (1)

Country Link
CN (1) CN114760055B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116303308B (zh) * 2022-12-30 2023-12-08 北京海泰方圆科技股份有限公司 秘密数据分享方法、装置、电子设备及存储介质

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105593919A (zh) * 2013-10-10 2016-05-18 日本电信电话株式会社 秘密商转移装置、秘密比特分解装置、秘密模数转换装置、秘密商转移方法、秘密比特分解方法、秘密模数转换方法、程序
CN106850212A (zh) * 2017-03-06 2017-06-13 西安电子科技大学 基于rsa密码算法的密钥生成系统及方法
CN107735830A (zh) * 2015-06-24 2018-02-23 日本电信电话株式会社 秘密计算装置、秘密计算方法和程序
CN109756335A (zh) * 2018-12-28 2019-05-14 江宝安 一种阶为梅森素数的有限域乘法群的公钥加密解密方法
CN112805770A (zh) * 2018-10-10 2021-05-14 日本电信电话株式会社 秘密右移位运算系统、秘密除法运算系统、它们的方法、秘密计算装置以及程序
CN113591116A (zh) * 2021-08-04 2021-11-02 天津大学 一种高效门限可验证多秘密分享方法
CN114157427A (zh) * 2021-12-02 2022-03-08 南京邮电大学 基于sm2数字签名的门限签名方法

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105593919A (zh) * 2013-10-10 2016-05-18 日本电信电话株式会社 秘密商转移装置、秘密比特分解装置、秘密模数转换装置、秘密商转移方法、秘密比特分解方法、秘密模数转换方法、程序
CN107735830A (zh) * 2015-06-24 2018-02-23 日本电信电话株式会社 秘密计算装置、秘密计算方法和程序
CN106850212A (zh) * 2017-03-06 2017-06-13 西安电子科技大学 基于rsa密码算法的密钥生成系统及方法
CN112805770A (zh) * 2018-10-10 2021-05-14 日本电信电话株式会社 秘密右移位运算系统、秘密除法运算系统、它们的方法、秘密计算装置以及程序
CN109756335A (zh) * 2018-12-28 2019-05-14 江宝安 一种阶为梅森素数的有限域乘法群的公钥加密解密方法
CN113591116A (zh) * 2021-08-04 2021-11-02 天津大学 一种高效门限可验证多秘密分享方法
CN114157427A (zh) * 2021-12-02 2022-03-08 南京邮电大学 基于sm2数字签名的门限签名方法

Also Published As

Publication number Publication date
CN114760055A (zh) 2022-07-15

Similar Documents

Publication Publication Date Title
Eisenträger et al. Supersingular isogeny graphs and endomorphism rings: reductions and solutions
CA2150683C (en) A cryptographic method
CN107533812A (zh) 秘密分散方法、秘密分散系统、分散装置和程序
CN109067538B (zh) 安全协议方法、计算机设备及存储介质
JPS6318387A (ja) 暗号法及びこの方法の実施のための暗号プロセツサ
CN112070222B (zh) 用于联邦学习的处理装置、加速器及方法
KR101269737B1 (ko) 암호 처리 장치 및 암호 처리 방법과 프로그램을 기록한 컴퓨터 판독 가능한 기록매체
EP1708081B1 (en) Method and device for calculating a Montgomery conversion parameter
CN111475854A (zh) 保护两方数据隐私的协同计算方法及系统
CN114760055B (zh) 基于梅森素数的秘密分享方法、系统、存储介质及设备
US11863657B2 (en) Using cryptographic blinding for efficient use of montgomery multiplication
JP3542278B2 (ja) モンゴメリ・リダクション装置及び記録媒体
US7050579B1 (en) Cryptographic methods and apparatus using word-wise montgomery multiplication
CN111740821B (zh) 建立共享密钥的方法及装置
US11343070B2 (en) System and method for performing a fully homomorphic encryption on a plain text
JPWO2020165931A1 (ja) 情報処理装置、秘密計算方法及びプログラム
CN111614465B (zh) 基于超奇异同源秘钥封装协议的公钥生成方法和装置
US6477556B1 (en) Method and apparatus for arithmetic operation and recording medium of method of operation
EP1818811A2 (en) Recursive VHDL compiler and method for designing logic circuits
JP2005055488A (ja) 楕円曲線暗号におけるスカラー倍計算方法と、その装置およびそのプログラム
JP2000132096A (ja) スカラー倍算方法およびその装置
CN114868175A (zh) 最终幂计算装置、配对运算装置、加密处理装置、最终幂计算方法和最终幂计算程序
CN114143005B (zh) 一种Tate双线性对及其变体的加速方法
Téllez et al. Supersingular Isogeny and Ring Learning With Errors-Based Diffie-Hellman Cryptosystems: A Performance and Security Comparison
JP3136709B2 (ja) べき積演算装置

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
TR01 Transfer of patent right

Effective date of registration: 20240930

Address after: 250000, 19th Floor, Building 4, Block A7, Hanyu Financial and Business Center, No. 7000 Jingshi Road, Jinan Area, China (Shandong) Pilot Free Trade Zone, Jinan City, Shandong Province

Patentee after: Shandong Huaqing Cryptography Technology Co.,Ltd.

Country or region after: China

Address before: Room 1901-1, Building 4, Hanyu Financial and Business Center, No. 7000, Jingshi Road, High tech Zone, Jinan, Shandong 250000

Patentee before: Shandong blockchain Research Institute

Country or region before: China