CN108055128B - Rsa密钥的生成方法、装置、存储介质及计算机设备 - Google Patents

Rsa密钥的生成方法、装置、存储介质及计算机设备 Download PDF

Info

Publication number
CN108055128B
CN108055128B CN201711365065.6A CN201711365065A CN108055128B CN 108055128 B CN108055128 B CN 108055128B CN 201711365065 A CN201711365065 A CN 201711365065A CN 108055128 B CN108055128 B CN 108055128B
Authority
CN
China
Prior art keywords
factor
prime
server
private key
pair
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
CN201711365065.6A
Other languages
English (en)
Other versions
CN108055128A (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.)
Shuan Times Technology Co ltd
Original Assignee
Shuan Times 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 Shuan Times Technology Co ltd filed Critical Shuan Times Technology Co ltd
Priority to CN201711365065.6A priority Critical patent/CN108055128B/zh
Priority to US15/871,156 priority patent/US10295796B1/en
Publication of CN108055128A publication Critical patent/CN108055128A/zh
Application granted granted Critical
Publication of CN108055128B publication Critical patent/CN108055128B/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/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • 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/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3006Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters
    • H04L9/302Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters involving the integer factorization problem, e.g. RSA or quadratic sieve [QS] schemes
    • 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/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3006Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters
    • H04L9/3033Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters details relating to pseudo-prime or prime number generation, e.g. primality test

Landscapes

  • Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Storage Device Security (AREA)
  • Computer And Data Communications (AREA)

Abstract

本申请涉及一种RSA密钥生成方法、装置、计算机可读存储介质及计算机设备,所述方法包括:接收服务端发送的第一密钥生成请求,所述第一密钥生成请求包括第一素数因子对;接收客户端发送的第二密钥生成请求,所述第二密钥生成请求包括第二素数因子对;对所述第一素数因子对和所述第二素数因子对进行合成,获得合成素数对;基于所述合成素数对计算RSA模数和欧拉函数值;根据所述RSA模数和所述欧拉函数值获得RSA密钥。本申请提供的方案能够有效地降低RSA密钥生成过程中通信和计算的复杂程度,提高RSA密钥的生成效率。

Description

RSA密钥的生成方法、装置、存储介质及计算机设备
技术领域
本申请涉及密码学与信息安全技术领域,特别是涉及一种RSA密钥的生成方法、装置、存储介质及计算机设备。
背景技术
为了保证计算机信息传递的安全性,需要使用密钥对信息进行保密处理后传递。因此,密钥生成技术是信息安全领域中的关键技术。RSA算法是国际认可的公钥密码算法,提供密钥生成功能。在某些应用场景下,为保障RSA密钥生成过程的公平性和协作性,需要多个参与方协同生成RSA密钥,即各参与方在***露自己秘密的情况下,协同完成各方预定的任务。
在传统的多方协同生成RSA密钥的方法中,参与方需使用茫然传输协议及同态密码算法等高消耗密码工具,对大量隐私数据进行复杂的盲化、混淆和加密处理。然而,实现上述密码工具需各参与方之间多次进行交互,且该密码工具均使用了复杂的数学运算,例如模幂运算及乘法运算等,本身消耗高。因而该方法的通信过程及计算过程复杂,导致密钥的生成效率低下。
发明内容
基于此,有必要针对传统方法中通信及计算复杂的技术问题,提供一种RSA密钥的生成方法、装置、计算机可读存储介质及计算机设备。
一种RSA密钥生成方法,所述方法包括:
接收服务端发送的第一密钥生成请求,所述第一密钥生成请求包括第一素数因子对;
接收客户端发送的第二密钥生成请求,所述第二密钥生成请求包括第二素数因子对;
对所述第一素数因子对和所述第二素数因子对进行合成,获得合成素数对;
基于所述合成素数对计算RSA模数和欧拉函数值;
根据所述RSA模数和所述欧拉函数值获得RSA密钥。
在一个实施例中,所述第一素数因子对包括第一服务端素数因子和第二服务端素数因子,所述第二素数因子对包括第一客户端素数因子和第二客户端素数因子,所述第一素数因子对的数目大于一个;
所述对所述第一素数因子对和所述第二素数因子对进行合成,获得合成素数对的步骤,包括:
从各所述第一服务端素数因子中选取一个第一服务端素数因子,作为当前待合成第一服务端素数因子;
对所述第一客户端素数因子和所述当前待合成第一服务端素数因子进行第一预定运算,获得第一待定合成因子;
若获得的第一待定合成因子为合数,则选取下一个未进行过所述第一预定运算的第一服务端素数因子作为所述当前待合成第一服务端素数因子,并返回所述进行第一预定预算的步骤,直至获得的第一待定合成因子为素数;
从各所述第二服务端素数因子中选取一个第二服务端素数因子,作为当前待合成第二服务端素数因子;
对所述第二客户端素数因子和所述当前待合成第二服务端素数因子进行第二预定运算,获得第二待定合成因子;
若获得的第二待定合成因子为合数,则选取下一个未进行过所述第二预定运算的第二服务端素数因子作为所述当前待合成第二服务端素数因子,并返回所述进行第二预定预算的步骤,直至获得的第二待定合成因子为素数;
所述合成素数对包括为素数的所述第一待定合成因子和为素数的所述第二待定合成因子。
在一个实施例中,所述第一素数因子对包括第一服务端素数因子和第二服务端素数因子,所述第二素数因子对包括第一客户端素数因子和第二客户端素数因子,且所述第一素数因子对的数目为一;
所述对所述第一素数因子对和所述第二素数因子对进行合成,获得合成素数对的步骤,包括:
对所述第一服务端素数因子和所述第一客户端素数因子进行第一预定运算,获得第一待定合成因子;
检测所述第一待定合成因子的第一属性,所述第一属性包括合素性;
若所述第一待定合成因子为合数,获取第一调整值,并基于所述第一调整值更新所述第一待定合成因子,并返回所述检测所述第一待定合成因子的属性的步骤,直至更新获得的所述第一待定合成因子为素数;
对所述第二服务端素数因子和所述第二客户端素数因子进行第二预定运算,获得第二待定合成因子;
检测所述第二待定合成因子的第二属性,所述第二属性包括合素性;
若所述第二待定合成因子为合数,获取第二调整值,并基于所述第二调整值更新所述第二待定合成因子,并返回所述检测所述第二待定合成因子的属性的步骤,直至更新获得的所述第二待定合成因子为素数;
所述合成素数对包括为素数的所述第一待定合成因子和为素数的所述第二待定合成因子。
在一个实施例中,所述第一属性和所述第二属性均还包括奇偶性;
在检测所述第一待定合成因子的合素性的步骤之前,还包括:
检测所述第一待定合成因子的奇偶性;
若所述第一待定合成因子为偶数,则将所述第一待定合成因子调整为奇数;
在检测所述第二待定合成因子的合素性的步骤之前,还包括:
检测所述第二待定合成因子的奇偶性;
若所述第二待定合成因子为偶数,则将所述第二待定合成因子调整为奇数。
在一个实施例中,所述基于所述RSA模数及所述欧拉函数值获得RSA密钥的步骤,包括:
获取公钥指数;
基于所述公钥指数及所述欧拉函数值计算私钥指数;
获取所述客户端/所述服务端的私钥指数份额;
基于所述私钥指数、所述客户端/所述服务端的私钥指数份额以及所述欧拉函数值计算所述服务端/所述客户端的私钥指数份额;
所述RSA密钥包括所述RSA模数、所述客户端的私钥指数份额和所述服务端的私钥指数份额。
在一个实施例中,所述第一密钥生成请求还包括第一私钥因子,所述第二密钥生成请求还包括第二私钥因子;
所述基于所述RSA模数及所述欧拉函数值获得RSA密钥的步骤,包括:
获取公钥指数;
基于所述欧拉函数值、所述第一私钥因子、所述第二私钥因子、所述公钥指数生成第一参数;
当所述第一参数与所述公钥指数互质时,基于所述第一参数和所述公钥指数计算公开参数对;
获取基于所述公开参数对生成的所述服务端的私钥指数份额及所述客户端的私钥指数份额;
所述RSA密钥包括所述RSA模数、所述客户端的私钥指数份额和所述服务端的私钥指数份额。
在一个实施例中,所述获取基于所述公开参数对生成的所述服务端的私钥指数份额及所述客户端的私钥指数份额的步骤,包括下述两项中的任意一项:
基于所述第一私钥因子及所述公开参数对生成所述服务端的私钥指数份额,并基于所述第二私钥因子及所述公开参数对生成所述客户端的私钥指数份额;
将所述公开参数对发送至所述服务端和所述客户端,以使所述服务端基于所述第一私钥因子及所述公开参数对生成所述服务端的私钥指数份额,并使得所述客户端基于所述第二私钥因子及所述公开参数对生成所述客户端的私钥指数份额。
一种RSA密钥生成装置,所述装置包括:
第一请求接收模块,用于接收服务端发送的第一密钥生成请求,所述第一密钥生成请求包括第一素数因子对;
第二请求接收模块,接收客户端发送的第二密钥生成请求,所述第二密钥生成请求包括第二素数因子对;
素数对合成模块,用于对所述第一素数因子对和所述第二素数因子对进行合成,获得合成素数对;
RSA参数计算模块,用于基于所述合成素数对计算RSA模数和欧拉函数值;
RSA密钥获取模块,用于基于所述RSA模数和所述欧拉函数值获得RSA密钥。
一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时,使得所述处理器执行如上所述的RSA密钥的生成方法的步骤。
一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行如上所述的RSA密钥的生成方法的步骤。
上述RSA密钥的生成方法、装置、计算机可读存储介质及计算机设备,获取服务端和客户端发送的密钥生成请求,并基于获得的密钥生成请求获得合成素数对,再基于该合成素数对计算RSA模数及欧拉函数值,以及基于该RSA模数及欧拉函数值生成RSA密钥。可见,将复杂的运算移交第三方设备完成,无需服务端和客户端之间进行多次交互,且能够避免使用高消耗的密码工具,因而有效地降低了通信和计算的复杂程度,提高了RSA密钥的生成效率。
附图说明
图1为一个实施例中RSA密钥的生成方法的应用环境图;
图2为一个实施例中RSA密钥的生成方法的流程示意图;
图3为一个实施例中获得为素数的第一待定合成因子的步骤的流程示意图;
图4为一个实施例中获得为素数的第二待定合成因子的步骤的流程示意图;
图5为另一个实施例中获得为素数的第一待定合成因子的步骤的流程示意图;
图6为一个实施例中获得为素数的第二待定合成因子的步骤的流程示意图;
图7为一个实施例中RSA密钥的生成装置的结构框图;
图8为一个实施例中计算机设备的结构框图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
图1为一个实施例中RSA密钥的生成方法的应用环境图。参照图1,该应用环境一般涉及服务端110、用户终端120以及可信服务端130。其中,服务端110和可信服务端130之间、以及用户终端120和可信服务端130之间均通过网络连接。服务端110和可信服务端130均可以用独立的服务器或者是多个服务器组成的服务器集群来实现。用户终端120可以为手机、平板电脑、笔记本电脑、台式电脑等中的至少一种。
在实际应用中,服务端110和用户终端120之间可进行加密通信,即通过密钥保护进行信息传递。服务端110可以为第一通信参与方,用户终端120可以为第二通信参与方,可信服务端130为区别于服务端110和用户终端120的第三方设备。其中,可信服务端130可用于生成供服务端110和用户终端120进行加密通信的密钥,其可以为具有丰富的运算资源、且物理和数字防篡改的高安全级别的运算设备,在运算过程中,其通常不会对中间数据进行存储和日志记录。
在传统的多方协同生成RSA密钥的方法中,在协议执行过程中,需要对大量隐私数据均进行复杂的盲化、混淆和加密,以此来保证协议交互过程中敏感数据传输的安全性。为了达到盲化、混淆和加密的目的,需要大量使用茫然传输协议、同态密码算法等高数学消耗的密码工具,然而这些密码工具,均具有复杂的数学结构,使用了耗时的数学运算,例如模幂运算和乘法运算等。此外,要实现这些密码工具,本身也需要各通信参与方多次进行交互。因此,传统方法中存在运算复杂度上的弊端,并且在生成过程中,还会多次触及这些弊端,从而使得缺点呈指数化放大。从产品使用的角度,在传统方法下,为了获得一个RSA密钥,服务端110和用户终端120均需耗费很长的时间,并且服务端110和用户终端120之间需要进行多次交互。因此,虽然传统方法能够实现协同生成RSA密钥,但它难以适应实际生产和使用环境,而仅能停留在理论层面。
基于此,本申请的各实施例,引入了可信服务端,并将大量敏感数据外包给可信服务端进行内部运算,一定程度上,可以看成可信服务端的单方运算,无需使用上文提到的茫然传输协议和同态密码算法等高消耗的密码工具,因此,本申请的各实施例均能够大大提高RSA密钥的生成效率。
如图2所示,在一个实施例中,提供了一种RSA密钥的生成方法。本实施例主要以该方法应用于上述图1中的可信服务端130来举例说明。参照图2,该RSA密钥的生成方法具体包括如下步骤S202至S210。
S202,接收服务端发送的第一密钥生成请求,所述第一密钥生成请求包括第一素数因子对。
第一密钥生成请求可由服务端生成,并发送至可信服务端。在一个具体的示例中,服务端可通过SSL(Secure Sockets Layer,安全套接层)安全信道向可信服务端发送第一密钥生成请求。
需要说明的是,第一密钥生成请求中可包括M个第一素数因子对,M为正整数。具体实施时,M的数值可基于服务端的数据处理能力进行设定及调整。
各第一素数因子对均可包括两个随机数,这两个随机数的位数可均为
Figure BDA0001512695530000071
比特。另外,第一素数因子对的数据结构可为元组。
S204,接收客户端发送的第二密钥生成请求,所述第二密钥生成请求包括第二素数因子对。
第二密钥生成请求可由客户端生成,并发送至可信服务端。在一个具体的示例中,客户端可通过SSL安全信道向可信服务端发送第二密钥生成请求。
此外,客户端的数目可为T个,T为正整数。当T等于1时,意味着只有一个客户端与上述服务端进行加密通信,相应地,可信服务端仅能够接收到一个客户端发送的第二密钥生成请求;当T大于1时,意味着有多个客户端,且各客户端均可分别与上述服务端进行加密通信,则各客户端均可向可信服务端发送与之对应的第二密钥生成请求,相应地,可信服务端可接收到多个第二密钥生成请求,且各第二密钥生成请求均一一对应一个客户端。
各第二素数因子对均可包括两个随机数,这两个随机数的位数可均为
Figure BDA0001512695530000072
比特。另外,第二素数因子对的数据结构可为元组。
需要说明的是,服务端向可信服务端发送第一密钥生成请求与客户端向可信服务端发送第二密钥生成请求没有必然的时间先后顺序。相应地,对于可信服务端而言,在执行步骤S202和步骤S204的过程中,两者也没有必然的时间先后顺序,即,可以先执行步骤S202,再执行步骤S204,也可以先执行步骤S204,再执行步骤S202,还可以并行执行步骤S202和步骤S204。
S206,对所述第一素数因子对和所述第二素数因子对进行合成,获得合成素数对。
可信服务端接收到第一素数因子对和第二素数因子对后,可对第一素数因子对中的一个随机数与第二素数因子对中的一个随机数进行合成,获得一个素数,并对第一素数因子对中的另一个随机数与第二素数因子对中的另一个随机数进行合成,获得另一个素数,以获得包括这两个素数的合成素数对。在一个具体的示例中,第一素数因子对中的两个随机数和第二素数因子对中的两个随机数均具有预定的位置编号,在此情况下,可以将第一素数因子对中的第一个随机数与第二素数因子对中的第一个随机数进行合成,获得一个素数,并将第一素数因子对中的第二个随机数与第二素数因子对中的第二个随机数进行合成,获得另一个素数,以获得包括这两个素数的合成素数对,可见,本示例能够有效地避免合成过程中出现数据混乱,从而保证合成操作的顺利进行。此外,合成操作可为执行预定的运算,例如加法运算。
S208,基于所述合成素数对计算RSA模数和欧拉函数值。
可采用下述公式计算RSA模数:N=pq,其中,N为RSA模数,p和q分别为合成素数对中的两个素数。
可采用下述公式计算欧拉函数值:
Figure BDA0001512695530000081
其中,
Figure BDA0001512695530000082
为欧拉函数值,p和q分别为合成素数对中的两个素数。
此外,计算得到RSA模数和欧拉函数值后,可信服务端可将合成素数对从本地数据库中销毁,以防止数据泄露,增强密钥生成的安全性。
S210,根据所述RSA模数和所述欧拉函数值获得RSA密钥。
RSA密钥可包括公钥及私钥,RSA模数可用于获得公钥,欧拉函数值可用于获得私钥。
上述RSA密钥的生成方法,获取服务端和客户端发送的密钥生成请求,并基于获得的密钥生成请求获得合成素数对,再基于该合成素数对计算RSA模数及欧拉函数值,以及基于该RSA模数及欧拉函数值生成RSA密钥。可见,将复杂的运算移交第三方设备完成,无需服务端和客户端之间进行多次交互,且能够避免使用高消耗的密码工具,因而有效地降低了通信和计算的复杂程度,提高了RSA密钥的生成效率。
为进一步对本申请的方案进行更详细的说明,下文对本申请的一些优选实施例进行具体描述或举例说明。
在一个实施例中,所述第一素数因子对包括第一服务端素数因子和第二服务端素数因子,所述第二素数因子对包括第一客户端素数因子和第二客户端素数因子,并且可信服务器接收到的来自服务端的第一密钥生成请求中包括的第一素数因子对的数目可以大于一个。
在此情况下,一并参照图3和图4,图2中示出的步骤S206,可以包括如下步骤S301至步骤S303、以及步骤S401至步骤S403。
S301,从各所述第一服务端素数因子中选取一个第一服务端素数因子,作为当前待合成第一服务端素数因子;
S302,对所述第一客户端素数因子和所述当前待合成第一服务端素数因子进行第一预定运算,获得第一待定合成因子;
S303,若获得的第一待定合成因子为合数,则选取下一个未进行过所述第一预定运算的第一服务端素数因子作为所述当前待合成第一服务端素数因子,并返回所述步骤S302,直至获得的第一待定合成因子为素数。
S401,从各所述第二服务端素数因子中选取一个第二服务端素数因子,作为当前待合成第二服务端素数因子;
S402,对所述第二客户端素数因子和所述当前待合成第二服务端素数因子进行第二预定运算,获得第二待定合成因子;
S403,若获得的第二待定合成因子为合数,则选取下一个未进行过所述第二预定运算的第二服务端素数因子作为所述当前待合成第二服务端素数因子,并返回所述步骤S402,直至获得的第二待定合成因子为素数。
所述合成素数对包括为素数的所述第一待定合成因子和为素数的所述第二待定合成因子。
需要说明的是,本实施例中,步骤S301~步骤S303,与步骤S401~步骤S403,两者可彼此独立,互不影响,并且,在执行过程中,两者没有必然的时间先后顺序。即,在一个具体的示例中,可以先执行步骤S301~步骤S303,以获得为素数的第一待定合成因子,再执行步骤S401~步骤S403,以获得为素数的第二待定合成因子;在另一个具体的示例中,也可以先执行步骤S401~步骤S403,再执行步骤S301~步骤S303;在又一个具体的示例中,步骤S301~步骤S303和步骤S401~步骤S403,两者可以并行执行。
以下结合一个具体示例对本实施例获取合成素数对的方法进行详细说明。
假设,可信服务端接收到服务端发送的M个第一素数因子对,分别为:
Figure BDA0001512695530000091
Figure BDA0001512695530000092
M为大于1的正整数,接收到T个客户端发送的第二素数因子对,分别为
Figure BDA0001512695530000093
T为正整数,并且,第一预定预算和第二预定运算均为加法运算。另外,分别用p和q两个参数来表示合成素数对中的两个素数。
一方面,可信服务端从M个第一服务端素数因子
Figure BDA0001512695530000094
中,选取
Figure BDA0001512695530000095
作为当前待合成第一服务端素数因子。再计算当前第一待定合成因子p1
Figure BDA0001512695530000096
然后对p1进行合素性检测,若p1为素数,则意味着找到了合成素数对中的一个素数,则设p=p1;若p1为合数(即非素数),则选取
Figure BDA0001512695530000097
作为当前待合成第一服务端素数因子,并计算当前第一待定合成因子p2
Figure BDA0001512695530000098
再次对p2进行合素性检测,若p2为素数,则设p=p2,若p2仍为合数,则选取
Figure BDA0001512695530000101
作为当前待合成第一服务端素数因子,以此类推,执行相同的操作,直至获得的第一待定合成因子为素数时,将该为素数的第一待定合成因子设为p。
另一方面,可信服务端从M个第二服务端素数因子
Figure BDA0001512695530000102
中,选取
Figure BDA0001512695530000103
作为当前待合成第二服务端素数因子。再计算当前第二待定合成因子q1
Figure BDA0001512695530000104
然后采用预定的素性检测算法对
Figure BDA0001512695530000105
进行素性验证,若
Figure BDA0001512695530000106
为素数,则意味着找到了合成素数对中的另一个素数,设
Figure BDA0001512695530000107
Figure BDA0001512695530000108
为合数,则选取
Figure BDA0001512695530000109
作为当前待合成第二服务端素数因子,并计算当前第二待定合成因子q2
Figure BDA00015126955300001010
再次对q2进行素性验证,若q2为素数,则设q=q2;若q2仍为合数,则选取
Figure BDA00015126955300001011
作为当前待合成第二服务端素数因子,以此类推,执行相同的操作,直至当前第二待定合成因子为素数时,将该为素数的第二待定合成因子设为q。
最终,合成素数对包括素数p和素数q。
还需要说明的是,在本实施例中,若对第一客户端素数因子和本次接收到的M个第一服务端素数因子中的各第一服务端素数因子分别进行加法运算后,均未获得为素数的第一待定合成因子,则可向服务端发送重发通知,该重发通知用于触发服务端重新生成预设个数的第一服务端素数因子,并将其发送给可信服务端。相应地,可信服务端重新执行上述获取为素数的第一待定合成因子的操作。对于第二客户端素数因子和第二服务端素数因子的处理类似,此处不加赘述。
此外,得到合成素数对后,可信服务端可将获得该合成素数对所使用的第一素数因子对和第二素数因子对从本地数据库中销毁,以防止数据泄露,增强密钥生成的安全性。
基于本实施例获得的合成素数对,有利于构造基于因式分解困难的RSA密钥。
在另一个实施例中,所述第一素数因子对包括第一服务端素数因子和第二服务端素数因子,所述第二素数因子对包括第一客户端素数因子和第二客户端素数因子,并且可信服务器接收到的来自服务端的第一密钥生成请求中包括的第一素数因子对的数目、以及来自客户端的第二密钥生成请求中包括的第二素数因子对的数目可均为一个。
在此情况下,一并参照图5和图6,图2中示出的步骤S206,可以包括如下步骤S501至步骤S503、以及步骤S601至步骤S603。
S501,对所述第一服务端素数因子和所述第一客户端素数因子进行第一预定运算,获得第一待定合成因子;
S502,检测所述第一待定合成因子的第一属性,所述第一属性包括合素性;
S503,若所述第一待定合成因子为合数,获取第一调整值,并基于所述第一调整值更新所述第一待定合成因子,并返回所述步骤S502,直至更新获得的所述第一待定合成因子为素数。
S601,对所述第二服务端素数因子和所述第二客户端素数因子进行第二预定运算,获得第二待定合成因子;
S602,检测所述第二待定合成因子的第二属性,所述第二属性包括合素性;
S603,若所述第二待定合成因子为合数,获取第二调整值,并基于所述第二调整值更新所述第二待定合成因子,并返回所述步骤S602,直至更新获得的所述第二待定合成因子为素数。
所述合成素数对包括为素数的所述第一待定合成因子和为素数的所述第二待定合成因子。
需要说明的是,本实施例中,步骤S501~步骤S503,与步骤S601~步骤S603,两者可彼此独立,互不影响,并且,在执行过程中,两者没有必然的时间先后顺序。即,在一个具体的示例中,可以先执行步骤S501~步骤S503,以获得为素数的第一待定合成因子,再执行步骤S601~步骤S603,以获得为素数的第二待定合成因子;在另一个具体的示例中,可以先执行步骤S601~步骤S603,再执行步骤S501~步骤S503;在又一个具体的示例中,步骤S501~步骤S503和步骤S601~步骤S603,两者可以并行执行。
第一调整值可以为位数为
Figure BDA0001512695530000111
比特的种子因子。此外,第一调整值可以为预设的固定值,也可以为变化的数值,即每次执行步骤S503后,获取的第一调整值可互不相同。需要说明的是,第二调整值类似,此处不加赘述。
步骤S503中,基于第一调整值更新第一待定合成因子是指,使执行步骤S503之前的第一待定合成因子,与执行完步骤S503后获得的第一待定合成因子不相同。
在一个具体的示例中,可以为对当前第一调整值和当前第一服务端素数因子进行预定的运算,获得更新后的第一服务端素数因子,从而计算更新后的第一待定合成因子。例如,当前第一服务端素数因子为ps,当前第一客户端素数因子为pc,当前第一待定合成因子为p,且p=ps+pc,当前第一调整值为seedp,并且预定的运算为异或运算,则可以先获得更新后的第一服务端素数因子p's
Figure BDA0001512695530000121
再计算更新后的第一待定合成因子p',p'=p′s+pc
在另一个具体的示例中,也可以为对当前第一调整值和当前第一客户端素数因子进行预定的运算,获得更新后的第一客户端素数因子,从而计算更新后的第一待定合成因子。例如,当前第一服务端素数因子为ps,当前第一客户端素数因子为pc,当前第一待定合成因子为p,且p=ps+pc,当前第一调整值为seedp,并且预定的运算为异或运算,则可以先获得更新后的第一客户端素数因子p'c
Figure BDA0001512695530000122
再计算更新后的第一待定合成因子p',p'=ps+p'c
在又一个具体的示例中,还可以为对第一调整值和当前第一合成因子进行预定的运算,获得更新后的第一合成素数因子。例如,当前第一服务端素数因子为ps,当前第一客户端素数因子为pc,当前第一待定合成因子为p,且p=ps+pc,当前第一调整值为seedp,并且预定的运算为异或运算,则可以直接计算更新后的第一待定合成因子p',
Figure BDA0001512695530000123
此外,需要说明的是,对于步骤S603中,基于第二调整值更新第二待定合成因子的处理类似,此处不加赘述。
此外,上述运算的运算规则可基于实际需求进行设定。设定为异或运算时,可以更好地保持数据运算过程中的随机性,提高获得为素数的第一待定合成因子和为素数的第二待定合成因子的速度,从而提高生成RSA密钥的效率。
以下结合一个具体示例对本实施例获取合成素数对的方法进行详细说明。
假设,可信服务端接收到的服务端发送的第一素数因子对为(ps1,qs1),接收到T个客户端发送的第二素数因子对,分别为
Figure BDA0001512695530000124
T为正整数,并且,第一预定预算和第二预定运算均为加法运算。另外,分别用p和q两个参数来表示合成素数对中的两个素数。
一方面,可信服务端计算当前第一待定合成因子p1
Figure BDA0001512695530000125
然后通过预定的合素性检测算法对p1进行合素性检测,若p1为素数,则意味着找到了合成素数对中的一个素数,则设p=p1;若p1为合数,则获取当前第一调整值seedp1,计算当前第一服务端素数因子ps2
Figure BDA0001512695530000126
并计算当前第一待定合成因子p2
Figure BDA0001512695530000127
然后对p2进行合素性检测,若p2为素数,则设p=p2,若p2仍为合数,则获取当前第一调整值seedp2,计算当前第一服务端素数因子ps3
Figure BDA0001512695530000128
以此类推,执行相同的操作,直至获得的第一待定合成因子为素数时,将该为素数的第一待定合成因子设为p。
另一方面,可信服务端计算当前第二待定合成因子q1
Figure BDA0001512695530000131
然后通过预定的合素性检测算法对q1进行合素性检测,若q1为素数,则意味着找到了合成素数对中的另一个素数,设q=q1;若q1为合数,则获取当前第二调整值seedq1,计算当前第二服务端素数因子qs2
Figure BDA0001512695530000132
并计算当前第二待定合成因子q2
Figure BDA0001512695530000133
然后对q2进行合素性检测,若q2为素数,则设q=q2,若q2仍为合数,则获取当前第二调整值seedq2,计算当前第二服务端素数因子qs3
Figure BDA0001512695530000134
以此类推,执行相同的操作,直至获得的第二待定合成因子为素数时,将该为素数的第二待定合成因子设为q。
最终,合成素数对包括素数p和素数q。
此外,得到合成素数对后,可信服务端可将获得该合成素数对所使用的第一素数因子对和第二素数因子对从本地数据库中销毁,以防止数据泄露,增强密钥生成的安全性。
基于本实施例获得的合成素数对,有利于构造基于因式分解困难的RSA密钥。
在又一个实施例中,所述第一属性和所述第二属性均还包括奇偶性。
在此情况下,在检测所述第一待定合成因子的合素性的步骤之前,还包括:
检测所述第一待定合成因子的奇偶性;
若所述第一待定合成因子为偶数,则将所述第一待定合成因子调整为奇数。
另外,在检测所述第二待定合成因子的合素性的步骤之前,还包括:
检测所述第二待定合成因子的奇偶性;
若所述第二待定合成因子为偶数,则将所述第二待定合成因子调整为奇数。
需要说明的是,本实施例在上一个实施例的区别在于,本实施例在检测第一待定合成因子和第二待定合成因子的合素性的步骤之前,分别增设了检测第一待定合成因子和第二待定合成因子的奇偶性的步骤。即,在本实施例中,上述步骤S502可包括如下步骤:先检测第一待定合成因子的奇偶性,若检测到该第一待定合成因子为奇数,则进一步检测该第一待定合成因子的合素性;若检测到该第一待定合成因子为偶数,则先将该第一待定合成因子调整为奇数,再检测调整后的第一待定合成因子的合素性。此外,所述步骤S602类似,此处不加赘述。
还需要说明的是,与上一个实施例类似,在本实施例中,若检测到第一待定合成因子为合数,则获取第一调整值,并基于该第一调整值更新该第一待定合成因子。具体地,可以基于当前第一调整值分别对当前第一服务端素数因子和当前第一客户端素数因子进行预定的运算,获得更新后的第一服务端素数因子和更新后的第一客户端素数因子,从而计算更新后的第一待定合成因子。其中,预定的运算可基于实际需求进行设定,例如,可以设定为加法运算。例如,当前第一服务端素数因子为ps,当前第一客户端素数因子为pc,当前第一待定合成因子为p,且p=ps+pc,当前第一调整值为1,并且预定的运算为加法运算,则可以先获得更新后的第一服务端素数因子p's和更新后的第一客户端因子p'c,p's=ps+1,p'c=pc+1,再计算更新后的第一待定合成因子p',p'=p's+p'c
此外,对第二待定合成因子的处理过程类似,此处不加赘述。
可以理解的是,除2以外的偶数,均不是素数,相较于合素性检测,奇偶性检测更为简单,并且在RSA密钥生成过程中,一般不考虑2这个较小的数。因此,本实施例中,先对第一待定合成因子进行奇偶性检测,若检测到第一待定合成因子为偶数,则先将该第一待定合成因子调整为奇数,再对调整后的第一待定合成因子进行合素性检测,能够避免不必要的运算,从而有效地提高获得为素数的第一待定合成因子的效率。需要说明的是,对第二待定合成因子的处理类似,此处不加赘述。
在一个实施例中,可信服务端可先生成完整的私钥指数,再获得该私钥指数包含的服务端的私钥指数份额和客户端的私钥指数份额。
在此情况下,所述步骤S210,可以包括如下步骤:
获取公钥指数;
基于所述公钥指数及所述欧拉函数值计算私钥指数;
获取所述客户端/所述服务端的私钥指数份额;
基于所述私钥指数、所述客户端/所述服务端的私钥指数份额以及所述欧拉函数值计算所述服务端/所述客户端的私钥指数份额;
所述RSA密钥包括所述RSA模数、所述客户端的私钥指数份额和所述服务端的私钥指数份额。
其中,公钥指数需满足国际加密消息的语法标准(PKCS#1)对RSA密钥的要求,具体地,公钥指数需大于1且小于欧拉函数值,并且与欧拉函数值互质。此外,公钥指数可以随机生成。
在一个具体的示例中,可以采用下述公式计算私钥指数:
Figure BDA0001512695530000141
其中,d为私钥指数;
Figure BDA0001512695530000151
为欧拉函数值;e为公钥指数。
在一个实施例中,可以获取客户端的私钥指数份额,再基于私钥指数、该客户端的私钥指数份额以及欧拉函数值计算服务端的私钥指数份额。
在一个具体的示例中,客户端的私钥指数份额可以由可信服务端随机生成。另外,可以采用下述公式计算服务端的私钥指数份额:
Figure BDA0001512695530000152
其中,ds为服务端的私钥指数份额;d为私钥指数;
Figure BDA0001512695530000153
为T个客户端中的第t个客户端的私钥指数份额,t为小于或等于T的正整数。
需要说明的是,在另一个实施例中,可以获取服务端的私钥指数份额,再基于私钥指数、该服务端的私钥指数份额以及欧拉函数值计算客户端的私钥指数份额。类似地,服务端的私钥指数份额可以由可信服务端随机生成。
基于此,在一个具体示例中,对于客户端数目只有一个的情况,可以由可信服务端随机生成服务端的私钥指数份额,再基于
Figure BDA0001512695530000154
这一公式计算该客户端的私钥指数份额。其中,dc为客户端的私钥指数份额,ds为服务端的私钥指数份额,d为私钥指数。
在另一个具体示例中,对于客户端数目为T个,且T为大于1的正整数的情况,可以由可信服务端随机生成服务端的私钥指数份额和(T-1)个客户端的私钥指数份额,再基于
Figure BDA0001512695530000155
这一公式计算T个客户端中剩余的一个客户端(以下简称剩余客户端)的私钥指数份额。其中,
Figure BDA0001512695530000156
为剩余客户端的私钥指数份额,即第j个客户端的私钥指数份额;ds为服务端的私钥指数份额;d为私钥指数;
Figure BDA0001512695530000157
为(T-1)个客户端中的第t个客户端的私钥指数份额,t为小于或等于(T-1),且不等于j的正整数。
此外,在又一个具体示例中,对于服务端数目为T个,且T大于1,客户端数目为一个的情况,可以由可信服务端随机生成各服务端的私钥指数份额,再基于
Figure BDA0001512695530000158
这一公式,计算客户端的私钥指数份额。其中,dc为客户端的私钥指数份额;d为私钥指数;
Figure BDA0001512695530000159
为T个服务端中的第t个服务端的私钥指数份额,t为小于或等于T的正整数。
可信服务端获得服务端的私钥指数份额和客户端的私钥指数份额后,可将服务端的私钥指数份额发送至服务端,服务端可将接收到的服务端的私钥指数份额安全地存储或保持秘密。并且,可将客户端的私钥指数份额发送至对应的客户端,类似地,客户端可将接收到的相应客户端的私钥指数份额安全地存储或保持秘密。其中,可信服务端可通过SSL安全信道向服务端和客户端发送对应的私钥指数份额。
此外,需要说明的是,RSA密钥的公钥包括RSA模数和公钥指数。RSA密钥的私钥可包括两个部分,一个部分可包括服务端的私钥指数份额、以及与生成的合成素数对相匹配的服务端发送的第一素数因子对,这部分可由服务端安全地存储或保持秘密。另一个部分可包括客户端的私钥指数份额以及与生成的合成素数对相匹配的客户端发送的第二素数因子对,这部分可由客户端安全地存储或保持秘密。
还需要说明的是,与生成的合成素数对相匹配的服务端发送的第一素数因子对,指的是可信服务端生成合成素数对所使用的服务端发送的第一素数因子对,类似地,与生成的合成素数对相匹配的客户端发送的第二素数因子对,指的是可信服务端生成合成素数对所使用的客户端发送的第二素数因子对。例如,可信服务端接收到客户端发送的第二素数因子对为
Figure BDA0001512695530000161
接收到服务端发送的4个第一素数因子对,分别为:
Figure BDA0001512695530000162
Figure BDA0001512695530000163
最终,可信服务端基于
Figure BDA0001512695530000164
生成了合成素数对,在此情况下,
Figure BDA0001512695530000165
则为与生成的合成素数对相匹配的客户端发送的第二素数因子对,
Figure BDA0001512695530000166
则为与生成的合成素数对相匹配的服务端发送的第一素数因子对。
在一个具体的示例中,将服务端的私钥指数份额和客户端的私钥指数份额分别发送至服务端和客户端后,可信服务端可将私钥指数、服务端的私钥指数份额、客户端的私钥指数份额以及欧拉函数值从本地数据库中销毁,以防止数据泄露,提高RSA密钥生成的安全性。
还需要说明的是,在传统方法中,私钥指数是由各通信参与方(服务端和客户端)协同计算获得,需要使用茫然传输协议等高消耗的密码工具,因而开销比较大。但在本实施例中,私钥指数由可信服务端单方运算完成,避开了传统方法中所使用的高消耗的密码工具,大大简化了计算过程。
在另一个实施例中,所述第一密钥生成请求还包括第一私钥因子,所述第二密钥生成请求还包括第二私钥因子,可信服务端可计算公开参数对,再获得基于该公开参数对生成的服务端的私钥指数份额和客户端的私钥指数份额。
在此情况下,所述步骤S210,可以包括如下步骤:
获取公钥指数;
基于所述欧拉函数值、所述第一私钥因子、所述第二私钥因子、所述公钥指数生成第一参数;
当所述第一参数与所述公钥指数互质时,基于所述第一参数和所述公钥指数计算公开参数对;
获取基于所述公开参数对生成的所述服务端的私钥指数份额及所述客户端的私钥指数份额;
所述RSA密钥包括所述RSA模数、所述客户端的私钥指数份额和所述服务端的私钥指数份额。
需要说明的是,本实施例中的公钥指数与上一个实施例中的公钥指数相同,此处不加赘述。
其中,第一私钥因子和第二私钥因子均可以为随机数,且它们的位数可均为3σ比特。
在一个具体的示例中,可以采用下述公式计算第一参数:
Figure BDA0001512695530000171
其中,γ为第一参数;λ为位数为2σ比特的随机数;
Figure BDA0001512695530000172
为欧拉函数;rs为第一私钥因子;
Figure BDA0001512695530000173
为T个所述客户端中的第t个客户端的第二密钥请求中的第二私钥因子,t为小于或等于T的正整数;e为公钥指数。
在一个具体的示例中,可以基于扩展欧几里得算法计算公开参数对(x,y),其中,x和y满足下述条件:xγ+ye=1。
并且,公开参数对(x,y)可用于生成服务端的私钥指数份额和客户端的私钥指数份额。具体地,T个客户端中的第t个客户端的私钥指数份额为
Figure BDA0001512695530000174
服务端的私钥指数份额为ds,ds=xrs+y。
此外,需要说明的是,RSA密钥的公钥包括RSA模数和公钥指数。RSA密钥的私钥可包括两个部分,一个部分可包括服务端的私钥指数份额、以及与生成的合成素数对相匹配的服务端发送的第一素数因子对,这部分可由服务端安全地存储或保持秘密。另一个部分可包括客户端的私钥指数份额以及与生成的合成素数对相匹配的客户端发送的第二素数因子对,这部分可由客户端安全地存储或保持秘密。
还需要说明的是,与生成的合成素数对相匹配的服务端发送的第一素数因子对,指的是可信服务端生成合成素数对所使用的服务端发送的第一素数因子对;类似地,与生成的合成素数对相匹配的客户端发送的第二素数因子对,指的是可信服务端生成合成素数对所使用的客户端发送的第二素数因子对。例如,可信服务端接收到客户端发送的第二素数因子对为
Figure BDA0001512695530000181
接收到服务端发送的4个第一素数因子对,分别为:
Figure BDA0001512695530000182
Figure BDA0001512695530000183
最终,可信服务端基于
Figure BDA0001512695530000184
生成了合成素数对,在此情况下,
Figure BDA0001512695530000185
则为与生成的合成素数对相匹配的客户端发送的第二素数因子对,
Figure BDA0001512695530000186
则为与生成的合成素数对相匹配的服务端发送的第一素数因子对。
在一个实施例中,可信服务端计算获得公开参数对后,可继续由可信服务端生成服务端的私钥指数份额和客户端的私钥指数份额。
在此情况下,所述获取基于所述公开参数对生成的所述服务端的私钥指数份额及所述客户端的私钥指数份额的步骤,可以包括如下步骤:
基于所述第一私钥因子及所述公开参数对生成所述服务端的私钥指数份额,并基于所述第二私钥因子及所述公开参数对生成所述客户端的私钥指数份额。
在本实施例中,可由可信服务端生成服务端的私钥指数份额和客户端的私钥指数份额,后续再将服务端的私钥指数份额发送至服务端,将客户端的私钥指数份额发送至相应的客户端。
此外,将服务端的私钥指数份额和客户端的私钥指数份额分别发送至服务端和对应的客户端后,可信服务端还可将欧拉函数值、第一私钥因子、第二私钥因子、服务端的私钥指数份额以及客户端的私钥指数份额从本地数据库中销毁,以防止数据泄露,提高RSA密钥生成的安全性。
在另一个实施例中,可信服务端计算获得公开参数对后,可由服务端和相应的客户端自行生成对应的私钥指数份额。
在此情况下,所述获取基于所述公开参数对生成的所述服务端的私钥指数份额及所述客户端的私钥指数份额的步骤,可以包括如下步骤:
将所述公开参数对发送至所述服务端和所述客户端,以使所述服务端基于所述第一私钥因子及所述公开参数对生成所述服务端的私钥指数份额,并使得所述客户端基于所述第二私钥因子及所述公开参数对生成所述客户端的私钥指数份额。
在本实施例中,可信服务端可将生成的公开参数对发送至服务端和对应的客户端,使服务端自行生成服务端的私钥指数份额,以及使对应的客户端自行生成客户端的私钥指数份额。需要说明的是,相较于上一个实施例,本实施例的安全性更高。
需要说明的是,可信服务端可通过普通或安全信道将公开参数对直接发送至服务端和对应的客户端,或者,可信服务端可将公开参数对公开,如在预定的网站上进行公布,以供服务端和客户端下载。
此外,生成公开参数对后,可信服务端还可将欧拉函数值、第一私钥因子、第二私钥因子从本地数据库中销毁,以防止数据泄露,提高RSA密钥生成的安全性。
应该理解的是,虽然图2至图6的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2至图6中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
基于与上述方法相同的思想,一个实施例中还提供一种RSA密钥生成装置,参照图7,所述装置700包括:
第一请求接收模块702,用于接收服务端发送的第一密钥生成请求,所述第一密钥生成请求包括第一素数因子对;
第二请求接收模块704,接收客户端发送的第二密钥生成请求,所述第二密钥生成请求包括第二素数因子对;
素数对合成模块706,用于对所述第一素数因子对和所述第二素数因子对进行合成,获得合成素数对;
RSA参数计算模块708,用于基于所述合成素数对计算RSA模数和欧拉函数值;
RSA密钥获取模块710,用于基于所述RSA模数和所述欧拉函数值获得RSA密钥。
上述RSA密钥生成装置,获取服务端和客户端发送的密钥生成请求,并基于获得的密钥生成请求获得合成素数对,再基于该合成素数对计算RSA模数及欧拉函数值,以及基于该RSA模数及欧拉函数值生成RSA密钥。可见,将复杂的运算移交第三方设备完成,无需服务端和客户端之间进行多次交互,且能够避免使用高消耗的密码工具,因而有效地降低了通信和计算的复杂程度,提高了RSA密钥的生成效率。
在一个实施例中,所述第一素数因子对包括第一服务端素数因子和第二服务端素数因子,所述第二素数因子对包括第一客户端素数因子和第二客户端素数因子,所述第一素数因子对的数目大于一个。此时,所述素数对合成模块706,可以包括:
第一初始因子选取单元,用于从各所述第一服务端素数因子中选取一个第一服务端素数因子,作为当前待合成第一服务端素数因子;
第一合成因子获取单元,用于对所述第一客户端素数因子和所述当前待合成第一服务端素数因子进行第一预定运算,获得第一待定合成因子;
第一服务端因子更新单元,用于若获得的第一待定合成因子为合数,则选取下一个未进行过所述第一预定运算的第一服务端素数因子作为所述当前待合成第一服务端素数因子,并调用所述第一合成因子获取单元,直至获得的第一待定合成因子为素数;
第二初始因子选取单元,用于从各所述第二服务端素数因子中选取一个第二服务端素数因子,作为当前待合成第二服务端素数因子;
第二合成因子获取单元,用于对所述第二客户端素数因子和所述当前待合成第二服务端素数因子进行第二预定运算,获得第二待定合成因子;
第二服务端因子更新单元,用于若获得的第二待定合成因子为合数,则选取下一个未进行过所述第二预定运算的第二服务端素数因子作为所述当前待合成第二服务端素数因子,并调用所述第二合成因子获取单元,直至获得的第二待定合成因子为素数;
所述合成素数对包括为素数的所述第一待定合成因子和为素数的所述第二待定合成因子。
在另一个实施例中,所述第一素数因子对包括第一服务端素数因子和第二服务端素数因子,所述第二素数因子对包括第一客户端素数因子和第二客户端素数因子,且所述第一素数因子对的数目为一。此时,所述素数对合成模块706,可以包括:第三合成因子获取单元,用于对所述第一服务端素数因子和所述第一客户端素数因子进行第一预定运算,获得第一待定合成因子;
第一属性检测单元,用于检测所述第一待定合成因子的第一属性,所述第一属性包括合素性;
第一合成因子更新单元,用于在所述第一待定合成因子为合数时,获取第一调整值,并基于所述第一调整值更新所述第一待定合成因子,以及调用所述第一属性检测单元,直至更新获得的所述第一待定合成因子为素数;
第四合成因子获取单元,用于对所述第二服务端素数因子和所述第二客户端素数因子进行第二预定运算,获得第二待定合成因子;
第二属性检测单元,用于检测所述第二待定合成因子的第二属性,所述第二属性包括合素性;
第二合成因子更新单元,用于当所述第二待定合成因子为合数时,获取第二调整值,并基于所述第二调整值更新所述第二待定合成因子,以及调用所述第二属性检测单元,直至更新获得的所述第二待定合成因子为素数;
所述合成素数对包括为素数的所述第一待定合成因子和为素数的所述第二待定合成因子。
在一个实施例中,所述第一属性和所述第二属性均还包括奇偶性;
此时,所述第一属性检测单元,还可以包括:
第一奇偶性检测子单元,用于检测所述第一待定合成因子的奇偶性,并在所述第一待定合成因子为偶数时,将所述第一待定合成因子调整为奇数;
另外,所述第二属性检测单元,还可以包括:
第二奇偶性检测子单元,用于检测所述第二待定合成因子的奇偶性,并在所述第二待定合成因子为偶数时,将所述第二待定合成因子调整为奇数。
在一个实施例中,所述RSA密钥获取模块710,可以包括:
第一公钥指数模块,用于获取公钥指数;
私钥指数计算模块,用于基于所述公钥指数及所述欧拉函数值计算私钥指数;
第一客户端/所述服务端份额获取模块,用于获取所述客户端/所述服务端的私钥指数份额;
第一服务端/所述客户端份额计算模块,用于基于所述私钥指数、所述客户端/所述服务端的私钥指数份额以及所述欧拉函数值计算所述服务端/所述客户端的私钥指数份额;
所述RSA密钥包括所述RSA模数、所述客户端的私钥指数份额和所述服务端的私钥指数份额。
在一个实施例中,所述第一密钥生成请求还包括第一私钥因子,所述第二密钥生成请求还包括第二私钥因子。此时,所述RSA密钥获取模块710,可以包括:
第二公钥指数模块,用于获取公钥指数;
第一参数生成模块,用于基于所述欧拉函数值、所述第一私钥因子、所述第二私钥因子、所述公钥指数生成第一参数;
参数对计算模块,用于当所述第一参数与所述公钥指数互质时,基于所述第一参数和所述公钥指数计算公开参数对;
私钥份额获取模块,用于获取基于所述公开参数对生成的所述服务端的私钥指数份额及所述客户端的私钥指数份额;
所述RSA密钥包括所述RSA模数、所述客户端的私钥指数份额和所述服务端的私钥指数份额。
在一个实施例中,上述私钥份额获取模块,可以包括:
第一私钥份额获取单元,用于基于所述第一私钥因子及所述公开参数对生成所述服务端的私钥指数份额,并基于所述第二私钥因子及所述公开参数对生成所述客户端的私钥指数份额。
在另一个实施例中,上述私钥份额获取模块,可以包括:
第二私钥份额获取单元,用于将所述公开参数对发送至所述服务端和所述客户端,以使所述服务端基于所述第一私钥因子及所述公开参数对生成所述服务端的私钥指数份额,并使得所述客户端基于所述第二私钥因子及所述公开参数对生成所述客户端的私钥指数份额。
图8示出了一个实施例中计算机设备的内部结构图。该计算机设备具体可以是图1中的可信服务端130。如图8所示,该计算机设备包括通过***总线连接的处理器、存储器和网络接口。其中,存储器包括非易失性存储介质和内存储器。该计算机设备的非易失性存储介质存储有操作***,还可存储有计算机程序,该计算机程序被处理器执行时,可使得处理器实现RSA密钥的生成方法。该内存储器中也可储存有计算机程序,该计算机程序被处理器执行时,可使得处理器执行RSA密钥的生成方法。
本领域技术人员可以理解,图8中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个具体的示例中,本申请的各实施例提供的RSA密钥的生成装置可以实现为一种计算机程序的形式,计算机程序可在如图8所示的计算机设备上运行。计算机设备的存储器中可存储组成该RSA密钥的生成装置的各个程序模块,比如,图5所示的第一请求接收模块702、第二请求接收模块704、素数对合成模块706、RSA参数计算模块708和RSA密钥获取模块710。各个程序模块构成的计算机程序使得处理器执行本说明书中描述的本申请各个实施例的RSA密钥的生成方法中的步骤。
例如,图8所示的计算机设备可以通过如图7所示的RSA密钥的生成装置中的第一请求接收模块702执行步骤S202,可通过第二请求接收模块704执行步骤S204,可通过素数对合成模块706执行步骤S206,以及可通过RSA密钥获取模块710执行步骤S210等。
为此,一个实施例中还提供一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行本申请提供的任一实施例中的RSA密钥的生成方法的步骤。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一非易失性计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
为此,一个实施例中还提供一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时,使得所述处理器执行本申请提供的任一实施例中的RSA密钥的生成方法的步骤。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。

Claims (14)

1.一种RSA密钥生成方法,其特征在于,所述方法包括:
接收服务端发送的第一密钥生成请求,所述第一密钥生成请求包括第一素数因子对;
接收客户端发送的第二密钥生成请求,所述第二密钥生成请求包括第二素数因子对;
对所述第一素数因子对和所述第二素数因子对进行合成,获得合成素数对;
基于所述合成素数对计算RSA模数和欧拉函数值;
根据所述RSA模数和所述欧拉函数值获得RSA密钥;
所述第一素数因子对包括第一服务端素数因子和第二服务端素数因子,所述第二素数因子对包括第一客户端素数因子和第二客户端素数因子;
在所述第一素数因子对的数目大于一个时,所述对所述第一素数因子对和所述第二素数因子对进行合成,获得合成素数对的步骤,包括:
从各所述第一服务端素数因子中选取一个第一服务端素数因子,作为当前待合成第一服务端素数因子;
对所述第一客户端素数因子和所述当前待合成第一服务端素数因子进行第一预定运算,获得第一待定合成因子;
若获得的第一待定合成因子为合数,则选取下一个未进行过所述第一预定运算的第一服务端素数因子作为所述当前待合成第一服务端素数因子,并返回所述进行第一预定预算的步骤,直至获得的第一待定合成因子为素数;
从各所述第二服务端素数因子中选取一个第二服务端素数因子,作为当前待合成第二服务端素数因子;
对所述第二客户端素数因子和所述当前待合成第二服务端素数因子进行第二预定运算,获得第二待定合成因子;
若获得的第二待定合成因子为合数,则选取下一个未进行过所述第二预定运算的第二服务端素数因子作为所述当前待合成第二服务端素数因子,并返回所述进行第二预定预算的步骤,直至获得的第二待定合成因子为素数;
所述合成素数对包括为素数的所述第一待定合成因子和为素数的所述第二待定合成因子;
在所述第一素数因子对的数目为一时,所述对所述第一素数因子对和所述第二素数因子对进行合成,获得合成素数对的步骤,包括:
对所述第一服务端素数因子和所述第一客户端素数因子进行第一预定运算,获得第一待定合成因子;检测所述第一待定合成因子的第一属性,所述第一属性包括合素性;若所述第一待定合成因子为合数,获取第一调整值,并基于所述第一调整值更新所述第一待定合成因子,并返回所述检测所述第一待定合成因子的第一属性的步骤,直至更新获得的所述第一待定合成因子为素数;
对所述第二服务端素数因子和所述第二客户端素数因子进行第二预定运算,获得第二待定合成因子;检测所述第二待定合成因子的第二属性,所述第二属性包括合素性;若所述第二待定合成因子为合数,获取第二调整值,并基于所述第二调整值更新所述第二待定合成因子,并返回所述检测所述第二待定合成因子的第二属性的步骤,直至更新获得的所述第二待定合成因子为素数;
所述合成素数对包括为素数的所述第一待定合成因子和为素数的所述第二待定合成因子。
2.根据权利要求1所述的方法,其特征在于,所述第一属性和所述第二属性均还包括奇偶性;
在检测所述第一待定合成因子的合素性的步骤之前,还包括:
检测所述第一待定合成因子的奇偶性;
若所述第一待定合成因子为偶数,则将所述第一待定合成因子调整为奇数;
在检测所述第二待定合成因子的合素性的步骤之前,还包括:
检测所述第二待定合成因子的奇偶性;
若所述第二待定合成因子为偶数,则将所述第二待定合成因子调整为奇数。
3.根据权利要求1或2所述的方法,其特征在于,所述基于所述RSA模数及所述欧拉函数值获得RSA密钥的步骤,包括:
获取公钥指数;
基于所述公钥指数及所述欧拉函数值计算私钥指数;
获取所述客户端/所述服务端的私钥指数份额;
基于所述私钥指数、所述客户端/所述服务端的私钥指数份额以及所述欧拉函数值计算所述服务端/所述客户端的私钥指数份额;
所述RSA密钥包括所述RSA模数、所述客户端的私钥指数份额和所述服务端的私钥指数份额。
4.根据权利要求1或2所述的方法,其特征在于,所述第一密钥生成请求还包括第一私钥因子,所述第二密钥生成请求还包括第二私钥因子;
所述基于所述RSA模数及所述欧拉函数值获得RSA密钥的步骤,包括:
获取公钥指数;
基于所述欧拉函数值、所述第一私钥因子、所述第二私钥因子、所述公钥指数生成第一参数;
当所述第一参数与所述公钥指数互质时,基于所述第一参数和所述公钥指数计算公开参数对;
获取基于所述公开参数对生成的所述服务端的私钥指数份额及所述客户端的私钥指数份额;
所述RSA密钥包括所述RSA模数、所述服务端的私钥指数份额及所述客户端的私钥指数份额。
5.根据权利要求4所述的方法,其特征在于,所述获取基于所述公开参数对生成的所述服务端的私钥指数份额及所述客户端的私钥指数份额的步骤,包括:
基于所述第一私钥因子及所述公开参数对生成所述服务端的私钥指数份额,并基于所述第二私钥因子及所述公开参数对生成所述客户端的私钥指数份额。
6.根据权利要求4所述的方法,其特征在于,所述获取基于所述公开参数对生成的所述服务端的私钥指数份额及所述客户端的私钥指数份额的步骤,包括:
将所述公开参数对发送至所述服务端和所述客户端,以使所述服务端基于所述第一私钥因子及所述公开参数对生成所述服务端的私钥指数份额,并使得所述客户端基于所述第二私钥因子及所述公开参数对生成所述客户端的私钥指数份额。
7.一种RSA密钥生成装置,其特征在于,所述装置包括:
第一请求接收模块,用于接收服务端发送的第一密钥生成请求,所述第一密钥生成请求包括第一素数因子对,所述第一素数因子对包括第一服务端素数因子和第二服务端素数因子;
第二请求接收模块,接收客户端发送的第二密钥生成请求,所述第二密钥生成请求包括第二素数因子对,所述第二素数因子对包括第一客户端素数因子和第二客户端素数因子;
素数对合成模块,用于对所述第一素数因子对和所述第二素数因子对进行合成,获得合成素数对;
RSA参数计算模块,用于基于所述合成素数对计算RSA模数和欧拉函数值;
RSA密钥获取模块,用于基于所述RSA模数和所述欧拉函数值获得RSA密钥;
所述第一素数因子对的数目大于一个时,所述素数对合成模块包括:
第一初始因子选取单元,用于从各所述第一服务端素数因子中选取一个第一服务端素数因子,作为当前待合成第一服务端素数因子;
第一合成因子获取单元,用于对所述第一客户端素数因子和所述当前待合成第一服务端素数因子进行第一预定运算,获得第一待定合成因子;
第一服务端因子更新单元,用于若获得的第一待定合成因子为合数,则选取下一个未进行过所述第一预定运算的第一服务端素数因子作为所述当前待合成第一服务端素数因子,并调用所述第一合成因子获取单元,直至获得的第一待定合成因子为素数;
第二初始因子选取单元,用于从各所述第二服务端素数因子中选取一个第二服务端素数因子,作为当前待合成第二服务端素数因子;
第二合成因子获取单元,用于对所述第二客户端素数因子和所述当前待合成第二服务端素数因子进行第二预定运算,获得第二待定合成因子;
第二服务端因子更新单元,用于若获得的第二待定合成因子为合数,则选取下一个未进行过所述第二预定运算的第二服务端素数因子作为所述当前待合成第二服务端素数因子,并调用所述第二合成因子获取单元,直至获得的第二待定合成因子为素数;
所述合成素数对包括为素数的所述第一待定合成因子和为素数的所述第二待定合成因子;
所述第一素数因子对的数目为一时,所述素数对合成模块包括:
第三合成因子获取单元,用于对所述第一服务端素数因子和所述第一客户端素数因子进行第一预定运算,获得第一待定合成因子;
第一属性检测单元,用于检测所述第一待定合成因子的第一属性,所述第一属性包括合素性;
第一合成因子更新单元,用于在所述第一待定合成因子为合数时,获取第一调整值,并基于所述第一调整值更新所述第一待定合成因子,以及调用所述第一属性检测单元,直至更新获得的所述第一待定合成因子为素数;
第四合成因子获取单元,用于对所述第二服务端素数因子和所述第二客户端素数因子进行第二预定运算,获得第二待定合成因子;
第二属性检测单元,用于检测所述第二待定合成因子的第二属性,所述第二属性包括合素性;
第二合成因子更新单元,用于当所述第二待定合成因子为合数时,获取第二调整值,并基于所述第二调整值更新所述第二待定合成因子,以及调用所述第二属性检测单元,直至更新获得的所述第二待定合成因子为素数;
所述合成素数对包括为素数的所述第一待定合成因子和为素数的所述第二待定合成因子。
8.根据权利要求7所述的装置,其特征在于,所述第一属性和所述第二属性均还包括奇偶性;
所述第一属性检测单元,还包括:第一奇偶性检测子单元,用于检测所述第一待定合成因子的奇偶性,并在所述第一待定合成因子为偶数时,将所述第一待定合成因子调整为奇数;
所述第二属性检测单元,还包括:第二奇偶性检测子单元,用于检测所述第二待定合成因子的奇偶性,并在所述第二待定合成因子为偶数时,将所述第二待定合成因子调整为奇数。
9.根据权利要求7所述的装置,其特征在于,所述RSA密钥获取模块包括:
第一公钥指数模块,用于获取公钥指数;
私钥指数计算模块,用于基于所述公钥指数及所述欧拉函数值计算私钥指数;
第一客户端/所述服务端份额获取模块,用于获取所述客户端/所述服务端的私钥指数份额;
第一服务端/所述客户端份额计算模块,用于基于所述私钥指数、所述客户端/所述服务端的私钥指数份额以及所述欧拉函数值计算所述服务端/所述客户端的私钥指数份额;
所述RSA密钥包括所述RSA模数、所述客户端的私钥指数份额和所述服务端的私钥指数份额。
10.根据权利要求7所述的装置,其特征在于,所述第一密钥生成请求还包括第一私钥因子,所述第二密钥生成请求还包括第二私钥因子;所述RSA密钥获取模块,包括:
第二公钥指数模块,用于获取公钥指数;
第一参数生成模块,用于基于所述欧拉函数值、所述第一私钥因子、所述第二私钥因子、所述公钥指数生成第一参数;
参数对计算模块,用于当所述第一参数与所述公钥指数互质时,基于所述第一参数和所述公钥指数计算公开参数对;
私钥份额获取模块,用于获取基于所述公开参数对生成的所述服务端的私钥指数份额及所述客户端的私钥指数份额;
所述RSA密钥包括所述RSA模数、所述客户端的私钥指数份额和所述服务端的私钥指数份额。
11.根据权利要求10所述的装置,其特征在于,所述私钥份额获取模块,包括:
第一私钥份额获取单元,用于基于所述第一私钥因子及所述公开参数对生成所述服务端的私钥指数份额,并基于所述第二私钥因子及所述公开参数对生成所述客户端的私钥指数份额。
12.根据权利要求10所述的装置,其特征在于,所述钥份额获取模块,包括:
第二私钥份额获取单元,用于将所述公开参数对发送至所述服务端和所述客户端,以使所述服务端基于所述第一私钥因子及所述公开参数对生成所述服务端的私钥指数份额,并使得所述客户端基于所述第二私钥因子及所述公开参数对生成所述客户端的私钥指数份额。
13.一种计算机可读存储介质,存储有计算机程序,其特征在于,所述计算机程序被处理器执行时,使得所述处理器执行如权利要求1至6中任一项所述方法的步骤。
14.一种计算机设备,包括存储器和处理器,其特征在于,所述存储器存储有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行如权利要求1至6中任一项所述方法的步骤。
CN201711365065.6A 2017-12-18 2017-12-18 Rsa密钥的生成方法、装置、存储介质及计算机设备 Active CN108055128B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201711365065.6A CN108055128B (zh) 2017-12-18 2017-12-18 Rsa密钥的生成方法、装置、存储介质及计算机设备
US15/871,156 US10295796B1 (en) 2017-12-18 2018-01-15 Camera optical lens

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201711365065.6A CN108055128B (zh) 2017-12-18 2017-12-18 Rsa密钥的生成方法、装置、存储介质及计算机设备

Publications (2)

Publication Number Publication Date
CN108055128A CN108055128A (zh) 2018-05-18
CN108055128B true CN108055128B (zh) 2021-11-19

Family

ID=62133580

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201711365065.6A Active CN108055128B (zh) 2017-12-18 2017-12-18 Rsa密钥的生成方法、装置、存储介质及计算机设备

Country Status (1)

Country Link
CN (1) CN108055128B (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108833091B (zh) * 2018-05-28 2021-03-12 武汉斗鱼网络科技有限公司 一种日志文件的加密方法、解密方法及装置
CN110098940B (zh) * 2019-06-10 2020-02-11 卓尔智联(武汉)研究院有限公司 电子邮件签名方法、装置及存储介质
CN111683071B (zh) 2020-05-29 2023-02-28 百度在线网络技术(北京)有限公司 区块链的隐私数据处理方法、装置、设备以及存储介质
CN113381854B (zh) * 2021-05-21 2022-05-31 杭州趣链科技有限公司 数据传输方法、装置、设备和存储介质
CN117792660B (zh) * 2024-02-23 2024-05-24 南京聚铭网络科技有限公司 关键数据抗抵赖方法及***

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1402920A (zh) * 1999-11-29 2003-03-12 通用仪器公司 使用单向函数的数学约束型密钥的生成
CN101420300A (zh) * 2008-05-28 2009-04-29 北京易恒信认证科技有限公司 双因子组合公钥生成和认证方法
CN101814990A (zh) * 2010-04-15 2010-08-25 华中科技大学 一种面向家庭网络的数字版权证书管理***
CN102904713A (zh) * 2011-07-25 2013-01-30 深圳市金溢科技有限公司 用于密钥加密通信***中的密钥交换方法
CN103425941A (zh) * 2013-07-31 2013-12-04 广东数字证书认证中心有限公司 云存储数据完整性的验证方法、设备和服务器
CN103812648A (zh) * 2014-03-13 2014-05-21 深圳数字电视国家工程实验室股份有限公司 Rsa密钥生成方法及装置
CN105307165A (zh) * 2015-10-10 2016-02-03 中国民生银行股份有限公司 基于移动应用的通信方法、服务端和客户端
CN106416121A (zh) * 2014-06-10 2017-02-15 高通股份有限公司 用于签名产生和加密/解密的共模rsa密钥对
CN106888083A (zh) * 2015-12-15 2017-06-23 ***通信集团公司 物联网下组密钥生成方法及通信节点
CN107222305A (zh) * 2017-06-06 2017-09-29 北京洋浦伟业科技发展有限公司 保护rsa加密算法的私钥安全的方法和装置

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5588061A (en) * 1994-07-20 1996-12-24 Bell Atlantic Network Services, Inc. System and method for identity verification, forming joint signatures and session key agreement in an RSA public cryptosystem
US5768389A (en) * 1995-06-21 1998-06-16 Nippon Telegraph And Telephone Corporation Method and system for generation and management of secret key of public key cryptosystem
TWI244610B (en) * 2001-04-17 2005-12-01 Matsushita Electric Ind Co Ltd Information security device, prime number generation device, and prime number generation method
KR100720726B1 (ko) * 2003-10-09 2007-05-22 삼성전자주식회사 Rsa 알고리즘을 이용한 보안유지시스템 및 그 방법
US7958362B2 (en) * 2005-10-11 2011-06-07 Chang Gung University User authentication based on asymmetric cryptography utilizing RSA with personalized secret
CN101043335A (zh) * 2007-03-12 2007-09-26 中国建设银行股份有限公司 一种信息安全控制***
CN101247230B (zh) * 2008-02-28 2010-07-28 唐跃文 一种基于非接触ic卡的防伪方法
CN101827106A (zh) * 2010-04-29 2010-09-08 华为技术有限公司 一种dhcp安全通信方法、装置和***
WO2012098543A2 (en) * 2011-01-18 2012-07-26 Fortress Gb Ltd. System and method for computerized negotiations based on coded integrity
JP5848106B2 (ja) * 2011-11-28 2016-01-27 ルネサスエレクトロニクス株式会社 半導体装置及びicカード
CN103684763A (zh) * 2012-09-19 2014-03-26 北京握奇数据***有限公司 基于rsa算法的数据加密方法、装置及智能卡
FR3004043B1 (fr) * 2013-03-29 2018-06-01 Idemia France Procedes de generation et d'utilisation de cles cryptographiques privees pour le rsa-crt ou les variantes du rsa-crt
CN103617532A (zh) * 2013-12-16 2014-03-05 杭州信雅达科技有限公司 一种移动终端的离线付款、收款方法及装置
CN105991569A (zh) * 2015-02-09 2016-10-05 中国科学院信息工程研究所 一种tls通讯数据安全传输方法
CN106487512A (zh) * 2015-08-31 2017-03-08 北京同方微电子有限公司 一种rsa密钥对快速生成***及方法
CN107294937B (zh) * 2016-04-11 2020-11-24 平安科技(深圳)有限公司 基于网络通信的数据传输方法、客户端及服务器

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1402920A (zh) * 1999-11-29 2003-03-12 通用仪器公司 使用单向函数的数学约束型密钥的生成
CN101420300A (zh) * 2008-05-28 2009-04-29 北京易恒信认证科技有限公司 双因子组合公钥生成和认证方法
CN101814990A (zh) * 2010-04-15 2010-08-25 华中科技大学 一种面向家庭网络的数字版权证书管理***
CN102904713A (zh) * 2011-07-25 2013-01-30 深圳市金溢科技有限公司 用于密钥加密通信***中的密钥交换方法
CN103425941A (zh) * 2013-07-31 2013-12-04 广东数字证书认证中心有限公司 云存储数据完整性的验证方法、设备和服务器
CN103812648A (zh) * 2014-03-13 2014-05-21 深圳数字电视国家工程实验室股份有限公司 Rsa密钥生成方法及装置
CN106416121A (zh) * 2014-06-10 2017-02-15 高通股份有限公司 用于签名产生和加密/解密的共模rsa密钥对
CN105307165A (zh) * 2015-10-10 2016-02-03 中国民生银行股份有限公司 基于移动应用的通信方法、服务端和客户端
CN106888083A (zh) * 2015-12-15 2017-06-23 ***通信集团公司 物联网下组密钥生成方法及通信节点
CN107222305A (zh) * 2017-06-06 2017-09-29 北京洋浦伟业科技发展有限公司 保护rsa加密算法的私钥安全的方法和装置

Also Published As

Publication number Publication date
CN108055128A (zh) 2018-05-18

Similar Documents

Publication Publication Date Title
CN108055128B (zh) Rsa密钥的生成方法、装置、存储介质及计算机设备
US11477019B2 (en) Elliptic curve random number generation
JP6720424B1 (ja) 鍵共有デバイス及び方法
US10027475B2 (en) Key agreement device and method
US20210243005A1 (en) Fully homomorphic encryption method and device and computer readable storage medium
EP4026273A1 (en) Systems and methods for signing of a message
US11658815B2 (en) System and method for performing key operations during a multi-party computation process
CN114661680B (zh) 一种私有数据隐匿共享方法
US10630476B1 (en) Obtaining keys from broadcasters in supersingular isogeny-based cryptosystems
CN107888385B (zh) Rsa模数生成方法、rsa密钥生成方法、计算机设备及介质
CN113726517A (zh) 一种信息共享方法及装置
CN114021198B (zh) 一种保护数据隐私的确定共有数据的方法及装置
CN112100144A (zh) 区块链文件共享方法、装置、存储介质及电子设备
Huang et al. Block-Level Message-Locked Encryption with Polynomial Commitment for IoT Data.
CN115001674A (zh) 分享ot协议的执行方法、安全多方计算方法及装置
US10511434B2 (en) Method and encryption node for encrypting message
CN116170142B (zh) 分布式协同解密方法、设备和存储介质
CN114362912A (zh) 基于分布式密钥中心的标识密码生成方法、电子设备及介质
US10615961B2 (en) Method and encryption node for encrypting message
Kiruthika Preserving the Privacy of Remote Data in Cloud using Bilinear Pairing Auditing Mechanism
Wu et al. Batch public key cryptosystem with batch multi-exponentiation
CN114095157B (zh) 密钥管理方法、装置、计算机设备及可读存储介质
US11438146B1 (en) System and method for performing key exchange while overcoming a malicious adversary party
US20230085577A1 (en) Secured performance of an elliptic curve cryptographic process
US11228589B2 (en) System and method for efficient and secure communications between devices

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