RSA模数生成方法、RSA密钥生成方法、计算机设备及介质技术

技术编号:17659900 阅读:35 留言:0更新日期:2018-04-08 11:35
本发明专利技术涉及一种RSA模数生成方法、RSA密钥生成方法、计算机设备和介质,一个实施例的RSA模数生成方法包括:当前参与方产生第一长度随机数、第二长度随机数;与对端参与方执行乘法转加法协议处理获得第一加法参数和第二加法参数,第一加法参数与对端参与方持有的第三加法参数共享所述第一长度随机数与对端参与方产生的对端第一长度随机数的乘积,第二加法参数与对端参与方持有的第四加法参数共享第二长度随机数与对端参与方产生的对端第二长度随机数的乘积;根据第一长度随机数、第二长度随机数、第一加法参数、第二加法参数确定第一模数初始分量;基于第一模数初始分量和对端参与方持有的第二模数初始分量确定RSA模数。本实施例方案在满足安全性的情况下提高了整体效率。

【技术实现步骤摘要】
RSA模数生成方法、RSA密钥生成方法、计算机设备及介质
本专利技术涉及密码学
,特别是涉及一种RSA模数生成方法、RSA密钥生成方法、计算机设备和计算机存储介质。
技术介绍
RSA分布式密钥托管通过在托管平台和客户端分别存储RSA私钥的分量,并要求客户端与托管平台协同执行RSA签名生成操作,以防止密钥托管机构滥用权力。为了确保分布式托管的私钥安全,在生成私钥的阶段就要求两个或多个参与方通过执行安全多方计算协议来产生私钥分量,而不能有任何一个参与方获得完整的RSA私钥。RSA私钥的生成,需要获得一个模数N,该模数N必须是两个素数P和Q的乘积。如何通过安全计算协议来获得满足条件的N成为分布式生成RSA私钥的关键技术。而目前的计算模数N的方案,需要消耗大量运算资源,导致效率低下。根据实际测试,对于1024比特的RSA模数平均需要1小时才能计算出一组RSA私钥。而对于2048比特的RSA模数,大约需要1~2天才能够计算出一组RSA私钥,显然并不具有工程实用价值。
技术实现思路
基于此,有必要提供一种RSA模数生成方法、RSA密钥生成方法、计算机设备和计算机存储介质。一种RSA模数生成方法,所述方法包括:当前参与方产生第一长度随机数,第二长度随机数;当前参与方与对端参与方执行乘法转加法协议处理,当前参与方获得第一加法参数和第二加法参数;第一加法参数与对端参与方持有的第三加法参数共享所述第一长度随机数与对端参与方产生的对端第一长度随机数的乘积,第二加法参数与对端参与方持有的第四加法参数共享第二长度随机数与对端参与方产生的对端第二长度随机数的乘积;当前参与方根据第一长度随机数、第二长度随机数、所述第一加法参数、第二加法参数确定第一模数初始分量;当前参与方基于第一模数初始分量和所述对端参与方持有的第二模数初始分量确定RSA模数。一种RSA模数生成方法,所述方法包括:第一参与方产生长度一第一随机数,长度二第一随机数;第二参与方产生长度一第二随机数和长度二第二随机数;第一参与方基于所述长度一第一随机数与长度二第一随机数,所述第二参与方基于长度一第二随机数和长度二第二随机数,执行乘法转加法协议处理,第一参与方获得第一加法参数和第二加法参数,第二参与方获得第三加法参数和第四加法参数;第一加法参数与第三加法参数共享长度一第一随机数与长度一第二随机数的乘积,第二加法参数与第四加法参数共享长度二第一随机数与长度二第二随机数的乘积;第一参与方根据长度一第一随机数、长度二第一随机数、所述第一加法参数、第二加法参数确定第一模数初始分量;所述第二参与方根据所述长度一第二随机数、长度二第二随机数、第三加法参数、第四加法参数确定第二模数初始分量;第一参与方与第二参与方基于第一模数初始分量和第二模数初始分量确定RSA模数。一种RSA私钥生成方法,包括步骤:当前参与方获得素数一当前参与方分量、素数二当前参与方分量;其中素数一当前参与方分量与对端参与方获得的素数一对端参与方分量共享素数一,素数二当前参与方分量与对端参与方获得的素数二对端参与方分量共享素数二;当前参与方根据素数一当前参与方分量、素数二当前参与方分量与对端参与方共享欧拉函数值,获得第一欧拉函数分量;当前参与方基于选择的第一选择随机数、第二选择随机数,与对端参与方执行安全点积协议,获得第三点积协议分量;当前参与方基于第三点积协议分量、第一选择随机数、第一欧拉函数分量、第二选择随机数以及公开指数,确定第一共享参数分量;当前参与方与对端参与方交换第一共享参数分量和对端参与方确定的第二共享参数分量后,确定第一整数和第二整数,其中,第一共享参数分量与第二共享参数分量的和值与第一整数的第一乘积,与第二整数与所述公开指数的第二乘积的和值为预设整数;当前参与方根据第一整数和第二整数,确定第一RSA私钥分量。一种RSA私钥生成方法,包括步骤:第一参与方获得素数一第一分量、素数二第一分量,第二参与方获得素数一第二分量、素数二第二分量,素数一第一分量与素数一第二分量共享素数一,素数二第一分量与素数二第二分量共享素数二;第一参与方与第二参与方根据素数一第一分量、素数二第一分量素数一第二分量、素数二第二分量共享欧拉函数值,第一参与方获得第一欧拉函数分量,第二参与方获得第二欧拉函数分量;基于第一参与方选择的第一选择随机数、第二选择随机数,以及第二参与方选择的第三选择随机数、第四选择随机数,第一参与方与第二参与方执行安全点积协议,第一参与方获得第三点积协议分量,第二参与方获得第四点积协议分量;第一参与方基于第三点积协议分量、第一选择随机数、第一欧拉函数分量、第二选择随机数以及公开指数,确定第一共享参数分量;第二参与方基于第三点积协议分量、第三选择随机数、第二欧拉函数分量、第四选择随机数以及所述公开指数,确定第二共享参数分量;第一参与方与第二参与方交换第一共享参数分量和第二共享参数分量后,确定第一整数和第二整数,其中,第一共享参数分量与第二共享参数分量的和值与第一整数的第一乘积,与第二整数与公开指数的第二乘积的和值为预设整数;第一参与方根据第一整数、第二选择随机数和第二整数,确定第一RSA私钥分量,第二参与方根据第一整数、第四选择随机数,确定第二RSA私钥分量。一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述方法的步骤。一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述方法的步骤。根据如上所述的实施例的方案,通过引入较短的随机数,然后基于较短的随机数进行处理得到多个较长的随机数,通过引入随机数的方式来完成RSA模数和RSA密钥,一定程度上兼顾了客户端计算资源不足的缺陷,也在满足一定安全性的情况下提高了整体效率。附图说明图1为一个本实施例方案的应用环境的示意图;图2为一个实施例中的RSA模数生成方法的流程示意图;图3为另一个实施例中的RSA模数生成方法的流程示意图;图4为一个具体示例中的生成RSA模数的交互流程示意图;图5为一个实施例的RSA密钥生成方法的流程示意图;图6为另一个实施例的RSA密钥生成方法的流程示意图;图7为一个具体示例中的生成RSA私钥的交互流程示意图;图8是一个实施例中的计算机设备的内部结构示意图。具体实施方式为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。图1为一个实施例中的RSA模数和RSA密钥生成方法的应用环境图。参照图1,该方法涉及两个设备,即设备101和设备102,在一些实施例中,该设备102也可以是服务器,从而实现终端与服务器之间协同生成RSA模数或RSA密钥。设备101、设备102具体可以是台式终端、移动终端以及其他的可以或者用以协同生成RSA模数或RSA密钥的设备,在设备102为服务器时,其可以是独立的服务器或者是多个服务器组成的服务器集群。图2示出了一个实施例中的RSA模数生成方法的示意图,该实施例是以其中图1中的一个设备(设备101或设备102)的处理过程为例进行说明。如图2所示,该实施例中的RSA模数生成方法包括步骤S201至步骤S204。步骤S201:当本文档来自技高网...
RSA模数生成方法、RSA密钥生成方法、计算机设备及介质

【技术保护点】
一种RSA模数生成方法,其特征在于,所述方法包括:当前参与方产生第一长度随机数,第二长度随机数;当前参与方与对端参与方执行乘法转加法协议处理,当前参与方获得第一加法参数和第二加法参数,第一加法参数与对端参与方持有的第三加法参数共享所述第一长度随机数与对端参与方产生的对端第一长度随机数的乘积,第二加法参数与对端参与方持有的第四加法参数共享第二长度随机数与对端参与方产生的对端第二长度随机数的乘积;当前参与方根据第一长度随机数、第二长度随机数、所述第一加法参数、第二加法参数确定第一模数初始分量;当前参与方基于第一模数初始分量和所述对端参与方持有的第二模数初始分量确定RSA模数。

【技术特征摘要】
1.一种RSA模数生成方法,其特征在于,所述方法包括:当前参与方产生第一长度随机数,第二长度随机数;当前参与方与对端参与方执行乘法转加法协议处理,当前参与方获得第一加法参数和第二加法参数,第一加法参数与对端参与方持有的第三加法参数共享所述第一长度随机数与对端参与方产生的对端第一长度随机数的乘积,第二加法参数与对端参与方持有的第四加法参数共享第二长度随机数与对端参与方产生的对端第二长度随机数的乘积;当前参与方根据第一长度随机数、第二长度随机数、所述第一加法参数、第二加法参数确定第一模数初始分量;当前参与方基于第一模数初始分量和所述对端参与方持有的第二模数初始分量确定RSA模数。2.根据权利要求1所述的方法,其特征在于:当前参与方基于第一模数初始分量和所述对端参与方持有的第二模数初始分量确定RSA模数的方式包括:当前参与方与对端参与方交换第一模数初始分量和第二模数初始分量;当前参与方根据所述第一模数初始分量和第二模数初始分量确定RSA模数。3.根据权利要求1所述的方法,其特征在于:当前参与方基于第一模数初始分量和所述对端参与方持有的第二模数初始分量确定RSA模数的方式包括:当前参与方产生第三长度随机数,使得所述第二长度随机数与所述第三长度随机数之和为奇数、模4余3的奇数、素数或者Blum素数;当前参与方以所述第二长度随机数、第三长度随机数为输入参数,与所述对端参与方执行安全点积协议,获得第一点积协议分量;当前参与方根据第一模数初始分量、第一长度随机数、第三长度随机数以及第一点积协议分量确定第一中间分量;当前参与方与对端参与方交换第一中间分量和所述对端参与方确定的第二中间分量,并根据第一中间分量和第二中间分量确定RSA模数。4.根据权利要求3所述的方法,其特征在于,当前参与方与所述对端参与方执行安全点积协议,获得第一点积协议分量的步骤包括:当前参与方随机生成随机参数;当前参与方以所述第二长度随机数、第三长度随机数以及所述随机参数构建当前参与方点积输入向量,与所述对端参与方执行安全点积协议,获得第一点积协议分量。5.根据权利要求3或4所述的方法,其特征在于,在确定RSA模数之后,还包括步骤:当前参与方在所述RSA模数满足模数试除条件时,放弃该RSA模数。6.根据权利要求3或4所述的方法,其特征在于,在确定RSA模数之后,还包括步骤:当前参与方接收所述对端参与方发送的对端参与方验证参数,并根据所述RSA模数、第一长度随机数、第二长度随机数以及第三长度随机数,确定当前参与方验证参数;当前参与方在所述当前参与方验证参数与所述对端参与方验证参数满足预定关系时,将所述RSA模数作为最终确定的RSA模数。7.根据权利要求3或4所述的方法,其特征在于,在确定RSA模数之后,还包括步骤:当前参与方基于第二长度随机数、第三长度随机数、第一长度随机数以及所述RSA模数,确定当前参与方验证参数,并将该当前参与方验证参数发送给对端参与方;所述当前参与方验证参数用于指示所述对端参与方确定对端参与方验证参数后,在所述当前参与方验证参数与所述对端参与方验证参数满足预定关系时,将所述RSA模数作为最终确定的RSA模数。8.一种RSA模数生成方法,其特征在于,所述方法包括:第一参与方产生长度一第一随机数,长度二第一随机数;第二参与方产生长度一第二随机数和长度二第二随机数;第一参与方基于所述长度一第一随机数与长度二第一随机数,所述第二参与方基于长度一第二随机数和长度二第二随机数,执行乘法转加法协议处理,第一参与方获得第一加法参数和第二加法参数,第二参与方获得第三加法参数和第四加法参数;第一加法参数与第三加法参数共享所述长度一第一随机数与长度一第二随机数的乘积,第二加法参数与第四加法参数共享长度二第一随机数与长度二第二随机数的乘积;所述第一参与方根据所述长度一第一随机数、所述长度二第一随机数、所述第一加法参数、第二加法参数确定第一模数初始分量;所述第二参与方根据所述长度一第二随机数、长度二第二随机数、所述第三加法参数、第四加法参数确定第二模数初始分量;第一参与方与第二参与方基于第一模数初始分量和第二模数初始分量确定RSA模数。9.根据权利要求8所述的方法,其特征在于:第一参与方与第二参与方基于第一模数初始分量和第二模数初始分量确定RSA模数的方式包括:第一参与方与第二参与方交换第一模数初始分量和第二模数初始分量;所述第一参与方或者所述第二参与方根据所述第一模数初始分量和第二模数初始分量确定RSA模数。10.根据权利要求8所述的方法,其特征在于:第一参与方与第二参与方基于第一模数初始分量和第二模数初始分量确定RSA模数的方式包括:第一参与方产生长度三第一随机数,使得所述长度二第一随机数与所述长度三第一随机数之和为奇数、模4余3的奇数、素数或者Blum素数;第二参与方产生长度三第二随机数,使得所述长度二第二随机数与所述长度三第二随机数之和为奇数、模4余3的奇数、素数或者Blum素数;第一参与方以所述长度二第一随机数、长度三第一随机数为输入参数,所述第二参与方以所述长度二第二随机数、长度三第二随机数为输入参数,第一参与方与第二参与方执行安全点积协议,第一参与方获得第一点积协议分量,第二参与方获得第二点积协议分量;第一参与方根据第一模数初始分量、长度一第一随机数、长度三第一随机数以及第一点积协议分量确定第一中间分量;第二参与方根据第二模数初始分量、长度一第二随机数、长度三第二随机数以及第二点积协议分量确定第二中间分量;第一参与方与第二参与方交换第一中间分量和第二中间分量,并根据第一中间分量和第二中间分量确定RSA模数。11.根据权利要求10所述的方法,其特征在于,第一参与方与第二参与方执行安全点积协议,第一参与方获得第一点积协议分量,第二参与方获得第二点积协议分量的步骤包括:第一参与方随机生成第一随机参数,第二参与方随机生成第二随机参数;第一参与方以所述长度二第一随机数、所述长度三第一随机数以及所述第一随机参数构建第一参与方点积输入向量,第二参与方以所述长度二第二随机数、长度三第二随机数以及所述第二随机参数构建第二参与方点积输入向量;第一参与方基于第一参与方点积输入向量、第二参与方基于第二参与方点积输入向量,第一参与方与第二参与方执行安全点积协议,第一参与方获得第一点积协议分量,第二参与方获得第二点积协议分量。12.根据权利要求10或11所述的方法,其特征在于,在确定RSA模数之后,还包括步骤:第一参与方或第二参与方在所述RSA模数满足模数试除条件时,放弃该RSA模数。13.根据权利要求10或11所述的方法,其特征在于,在确定RSA模数之后,还包括下述两项中的至少一项::第一项:第二参与方基于长度二第二随机数、长度三第...

【专利技术属性】
技术研发人员:张永强
申请(专利权)人:数安时代科技股份有限公司
类型:发明
国别省市:广东,44

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

1