CN103001957A - 一种密钥生成方法、设备及服务器 - Google Patents
一种密钥生成方法、设备及服务器 Download PDFInfo
- Publication number
- CN103001957A CN103001957A CN2012104890408A CN201210489040A CN103001957A CN 103001957 A CN103001957 A CN 103001957A CN 2012104890408 A CN2012104890408 A CN 2012104890408A CN 201210489040 A CN201210489040 A CN 201210489040A CN 103001957 A CN103001957 A CN 103001957A
- Authority
- CN
- China
- Prior art keywords
- equipment
- server
- array
- random
- random number
- 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.)
- Granted
Links
Images
Landscapes
- Computer And Data Communications (AREA)
Abstract
本发明涉及密钥协商相关技术领域,特别是涉及一种密钥生成方法、设备及服务器。该密钥生成方法包括:第一设备和第二设备分别选择多个随机数,计算多个相关数;发送一部分的随机数和一部分的相关数到第一服务器,以及发送另一部分的随机数和相关数到第二服务器;第一服务器和第二服务器分别根据接收到的随机数和相关数进行计算得到服务器参数;第一设备、第二设备通过第一服务器和第二服务器执行安全多方计算协议进行模指数运算得到设备参数;第一设备和第二设备采用服务器参数和设备参数的组合作为密钥。本发明的密钥生成方法,使得两个计算能力很弱的设备,在服务器不可信的情形下,也能借助服务器实现模指数的外包计算,得到一个共同的密钥。
Description
技术领域
本发明涉及密钥协商相关技术领域,特别是涉及一种密钥生成方法、设备及服务器。
背景技术
密钥协商是一个基本的密码学协议,最早的有效密钥协商协议是Diffie-Hellman协议。Diffie和Hellman已经在不安全的信道上研究了密钥交换的问题。密钥协商的目标是在两个具有计算能力的参与者中间安全交换一个密钥,该密钥能够用来作为一个密码***的加密和解密密钥。
Diffie-Hellman密钥协商协议在离散对数问题是难处理的假设下,这个方案是安全的。方案在Zp中运行,其中p是一个素数。假设g是Zp的一个生成元,g,p都是公开的。在这个协议中,因为A和B都有较强的计算能力,所以他们能够自己计算模指数。Diffie-Hellman密钥协商协议
a)A随机选择一个数α∈[0,p-2];
b)A计算gαmodp,并把它发送给B;
c)B随机选择一个数β∈[0,p-2];
d)B计算gβmodp,并把它发送给A;
e)A计算K=(gβ)αmodp,B计算K=(gα)βmodp。
则A与B获得相同的密钥K,并采用该密钥K对A与B之间的通信进行加密。
然而在不安全的环境,特别是在云计算环境中,如果A和B的计算能力太弱而无法实现模指数的计算,它们不得不求助于云计算服务器来计算模指数。把计算任务外包给一个不诚实的云计算服务商,则用户可能得到不诚实的外包服务。在一个外包计算任务的方案中,安全性应该由如下的两个方面构成:(1)私有性。一旦用户提供一个询问,服务器能使用该询问计算一个结果。对于服务器和外部攻击者,询问和结果都是在加密或隐藏的形式。(2)正确性。服务器为用户需求所计算的结果是正确的,而且用户能够有效地验证服务器返回的计算结果的正确性。除此之外,用户正确的验证应该比直接地计算结果更有效。
但是,云计算服务器执行Diffie-Hellman密钥协商协议要求A和B把他们的密钥α,β以及密钥K泄露给云计算服务器。如果用户对于抵抗内部和外部攻击者的安全性非常敏感,则在云计算中执行传统的Diffie-Hellman密钥协商协议是不可行的。
发明内容
基于此,有必要针对两个计算能力很弱的用户在服务器不诚实的情形下无法安全实现密钥协商的技术问题,提供一种密钥生成方法。
一种密钥生成方法,包括:
获取一个随机数作为第一根随机数,获取多个随机数作为第一随机数,得到包括多个第一随机数的第一随机数组;
计算多个第一相关数,得到包括多个第一相关数的第一相关数组,其中,所述每个第一相关数由一个第一随机数与第一根随机数计算得到;
根据第一随机数计算得到第一设备中间参数,并发送给第二设备;
接收第二设备发送的第二设备中间参数,所述第二设备中间参数由第二设备随机获取的多个第二随机数计算得到;
将第一随机数组分为第一随机数组第一部分和第一随机数组第二部分,将第一相关数组分为第一相关数组第一部分和第一相关数组第二部分,将第一随机数组第一部分和第一相关数组第二部分发送给第一服务器,将第一随机数组第二部分和第一相关数组第一部分发送给第二服务器;
接收第一服务器发送的第一服务器参数,其中,所述第一服务器参数由第一服务器对第一随机数组第一部分、第一相关数组第二部分进行计算得到;
接收第二服务器发送的第二服务器参数,其中,所述第二服务器参数由第二服务器对第一随机数组第二部分和第一相关数组第一部分进行计算得到;
通过第一服务器和第二服务器根据第一相关数及第二设备中间参数执行安全多方计算协议进行模指数运算得到第一设备参数,并发送到第二设备;
接收第二设备发送的第二设备参数,其中,所述第二设备参数由第二设备通过第一服务器和第二服务器根据第二相关数及第一设备中间参数执行安全多方计算协议进行模指数运算得到,所述第二相关数由第二设备根据第二随机数与第二根随机数计算得到,所述第二根随机数由第二设备随机选择;
采用第一服务器参数、第二服务器参数、第一设备参数及第二设备参数生成密钥。
在其中一个实施例中,第一相关数组第一部分中的任意一个第一相关数,由第一根随机数及第一随机数组第一部分中的一个第一随机数计算得到;第一相关数组第二部分中的任意一个第一相关数,由第一根随机数及第一随机数组第二部分中的一个第一随机数计算得到。
在其中一个实施例中,具体包括:
初始化选择一个有限域Zp,其中,p是一个素数,从Zp中选择一个生成元g;
获取一个随机数α作为第一根随机数,获取两个随机数α1和α1'作为第一随机数,得到包括α1和α1'的第一随机数组,其中,α,α1,α1'∈[0,p-2];
计算两个第一相关数α2和α2',得到包括α2和α2'的第一相关数组,其中,α2=α-α1mod(p-1),α2'=α-α1'mod(p-1);
将第一随机数组分为第一随机数组第一部分和第一随机数组第二部分,第一随机数组第一部分为α1,第一随机数组第二部分为α1',将第一相关数组分为第一相关数组第一部分和第一相关数组第二部分,第一相关数组第一部分为α2,第一相关数组第二部分为α2',将α1和α2'发送给第一服务器,将α2和α1'发送给第二服务器;
接收由第一服务器发送的第一服务器参数K11和K22',其中,K11由第一服务器根据得到,K22'由第一服务器根据计算得到,其中,β2'由第二设备根据β2'=β-β1'mod(p-1)得到,β为第二设备随机获取的第二根随机数,β∈[0,p-2];
接收第二设备发送的两个第二设备参数K12和K12',K12和K12'由第二设备、第一服务器和第二服务器共同执行安全多方计算协议进行模指数运算得到,其中,
如果K11K12K21K22=K11'K12'K21'K22',则采用K=K11K12K21K22作为密钥。
一种密钥生成设备,包括随机数选择模块、相关数计算模块、第一设备中间参数计算模块、第二设备中间参数接收模块、服务器发送模块、第一服务器参数接收模块、第二服务器参数接收模块、设备安全多方计算协议执行模块、第二设备参数接收模块和密钥生成模块:
随机数选择模块,用于获取一个随机数作为第一根随机数,获取多个随机数作为第一随机数,得到包括多个第一随机数的第一随机数组;
相关数计算模块,用于计算多个第一相关数,得到包括多个第一相关数的第一相关数组;其中,所述每个第一相关数由一个第一随机数与第一根随机数计算得到;
第一设备中间参数计算模块,用于根据第一随机数计算得到第一设备中间参数,并发送给第二设备;
第二设备中间参数接收模块,用于接收第二设备发送的第二设备中间参数,所述第二设备中间参数由第二设备随机获取的多个第二随机数计算得到;
服务器发送模块,用于将第一随机数组分为第一随机数组第一部分和第一随机数组第二部分,将第一相关数组分为第一相关数组第一部分和第一相关数组第二部分,将第一随机数组第一部分和第一相关数组第二部分发送给第一服务器,将第一随机数组第二部分和第一相关数组第一部分发送给第二服务器;
第一服务器参数接收模块,用于接收第一服务器发送的第一服务器参数,其中,所述第一服务器参数由第一服务器对第一随机数组第一部分、第一相关数组第二部分进行计算得到;
第二服务器参数接收模块,用于接收第二服务器发送的第二服务器参数,其中,所述第二服务器参数由第二服务器对第一随机数组第二部分和第一相关数组第一部分进行计算得到;
设备安全多方计算协议执行模块,用于通过第一服务器和第二服务器根据第一相关数及第二设备中间参数执行安全多方计算协议进行模指数运算得到第一设备参数,并发送到第二设备;
第二设备参数接收模块,用于接收第二设备发送的第二设备参数,其中,所述第二设备参数由第二设备通过第一服务器和第二服务器根据第二相关数及第一设备中间参数执行安全多方计算协议进行模指数运算得到,所述第二相关数由第二设备根据第二随机数与第二根随机数计算得到,所述第二根随机数由第二设备随机选择;
密钥生成模块,用于采用第一服务器参数、第二服务器参数、第一设备参数及第二设备参数生成密钥。
一种密钥生成方法,包括:
接收由第一设备生成的第一随机数组第一部分和第一相关数组第二部分;
接收由第二设备生成的第二随机数组第一部分和第二相关数第二部分组;
对接收到的第一随机数第一部分、第一相关数第二部分、第二随机数第一部分和第二相关数第二部分进行计算得到第一服务器参数,并发送给第一设备和第二设备;
与第一设备、第二服务器共同执行安全多方计算协议进行模指数运算,以生成第一设备参数,所述第一设备参数与第一服务器参数用于第一设备生成密钥;
与第二设备、第二服务器共同执行安全多方计算协议进行模指数运算,以生成第二设备参数,所述第二设备参数与第一服务器参数用于第二设备生成密钥。
在其中一个实施例中,具体包括:
选择一个有限域Zp,其中,p是一个素数,从Zp中选择一个生成元g;
接收由第一设备生成的第一随机数组第一部分α1和第一相关数组第二部分α2';
接收由第二设备生成的第二随机数组第一部分β1和第二相关数组第二部分β2';
与第一设备和第二服务器共同执行安全多方计算协议进行模指数运算,以生成两个第一设备参数K21和K21',其中, 其中,和为第一设备从第二设备接收的两个第二设备中间参数,α2和α2'由第一设备根据α2=α-α1mod(p-1)和α2'=α-α1'mod(p-1)计算得到,α1和α1'为第一设备随机选择的第一随机数,α为第一设备随机选择的第一根随机数,α,α1,α1'∈[0,p-2];
与第二设备和第二服务器共同执行安全多方计算协议进行模指数运算,以生成两个第二设备参数K12和K12',其中, 其中,和为第二设备从第一设备接收的两个第一设备中间参数,β2和β2'由第二设备根据β2=β-β1mod(p-1)和β2'=β-β1'mod(p-1)得到,β1和β1'为第二设备随机选择的第二随机数,β为第二设备随机选择的第二根随机数,β1,β1'∈[0,p-2]。
一种密钥生成服务器,包括第一设备接收模块、第二设备接收模块、第一服务器参数生成模块、协调第一设备安全多方计算协议执行模块和协调第二设备安全多方计算协议执行模块:
第一设备接收模块,用于接收由第一设备生成的第一随机数组第一部分和第一相关数组第二部分;
第二设备接收模块,用于接收由第二设备生成的第二随机数组第一部分和第二相关数组第二部分;
第一服务器参数生成模块,用于对接收到的第一随机数组第一部分、第一相关数组第二部分、第二随机数组第一部分和第二相关数组第二部分进行计算得到第一服务器参数,并发送给第一设备和第二设备;
协调第一设备安全多方计算协议执行模块,用于与第一设备、第二服务器共同执行安全多方计算协议进行模指数运算,以生成第一设备参数,所述第一设备参数与第一服务器参数用于第一设备生成密钥;
协调第二设备安全多方计算协议执行模块,用于与第二设备、第二服务器共同执行安全多方计算协议进行模指数运算,以生成第二设备参数,所述第二设备参数与第一服务器参数用于第二设备生成密钥。
一种密钥生成方法,包括:
第一设备获取一个随机数作为第一根随机数,获取多个随机数作为第一随机数,得到包括多个第一随机数的第一随机数组;
计算多个第一相关数,得到包括多个第一相关数的第一相关数组,其中,所述每个第一相关数由一个第一随机数与第一根随机数计算得到;
第二设备获取一个随机数作为第二根随机数,获取多个随机数作为第二随机数,得到包括多个第二随机数的第二随机数组;
计算多个第二相关数,得到包括多个第二相关数的第二相关数组,其中,所述每个第二相关数由一个第二随机数与第二根随机数计算得到;
第一设备将第一随机数组分为第一随机数组第一部分和第一随机数组第二部分,将第一相关数组分为第一相关数组第一部分和第一相关数组第二部分,将第一随机数组第一部分和第一相关数组第二部分发送给第一服务器,将第一随机数组第二部分和第一相关数组第一部分发送给第二服务器;
第二设备将第二随机数组分为第二随机数组第一部分和第二随机数组第二部分,将第二相关数组分为第二相关数组第一部分和第二相关数组第二部分,将第二随机数组第一部分和第二相关数组第二部分发送给第一服务器,将第二随机数组第二部分和第二相关数组第一部分发送给第二服务器;
第一服务器对接收到的第一随机数组第一部分、第一相关数组第二部分、第二随机数组第一部分和第二相关数组第二部分进行计算得到第一服务器参数,并发送给第一设备和第二设备;
第二服务器对接收到的第一随机数组第二部分、第一相关数组第一部分、第二随机数组第二部分和第二相关数组第一部分进行计算得到第二服务器参数,并发送给第一设备和第二设备;
第一设备通过第一服务器和第二服务器执行安全多方计算协议进行模指数运算得到第一设备参数,并发送给第二设备;
第二设备通过第一服务器和第二服务器执行安全多方计算协议进行模指数运算得到第二设备参数,并发送给第一设备;
第一设备和第二设备采用第一服务器参数、第二服务器参数、第一设备参数及第二设备参数的组合作为密钥。
在其中一个实施例中:
第一相关数组第一部分中的任意一个第一相关数,由第一根随机数及第一随机数组第一部分中的一个第一随机数计算得到,第一相关数组第二部分中的任意一个第一相关数,由第一根随机数及第一随机数组第二部分中的一个第一随机数计算得到;
第二相关数组第一部分中的任意一个第二相关数,由第二根随机数及第二随机数组第一部分中的一个第二随机数计算得到,第二相关数组第二部分中的任意一个第二相关数,由第二根随机数及第二随机数第二部分中的一个第二随机数计算得到。
在其中一个实施例中,具体包括:
初始化选择一个有限域Zp,其中,p是一个素数,从Zp中选择一个生成元g;
第一设备获取一个随机数α作为第一根随机数,获取两个随机数α1和α1'作为第一随机数,得到包括α1和α1'的第一随机数组,其中,α,α1,α1'∈[0,p-2],计算两个第一相关数α2和α2',得到包括α2和α2'的第一相关数组,其中,α2=α-α1mod(p-1),α2'=α-α1'mod(p-1),计算两个第一设备中间参数和把和发给第二设备;
第二设备获取一个随机数β作为第二根随机数,获取两个随机数β1和β1'作为第二随机数,得到包括β1和β1'的第二随机数组,其中,β,β1,β1'∈[0,p-2],计算两个第二相关数β2和β2',得到包括β2和β2'的第二相关数组其中,β2=β-β1mod(p-1),β2'=β-β1'mod(p-1),计算两个第二设备中间参数和把和发给第一设备;
第一设备将第一随机数组分为第一随机数组第一部分和第一随机数组第二部分,第一随机数组第一部分为α1,第一随机数组第二部分为α1',将第一相关数组分为第一相关数组第一部分和第一相关数组第二部分,第一相关数组第一部分为α2,第一相关数组第二部分为α2',将α1和α2'发送给第一服务器,将α2和α1'发送给第二服务器;
第二设备将第二随机数组分为第二随机数组第一部分和第二随机数组第二部分,第二随机数组第一部分为β1,第二随机数组第二部分为β1',将第二相关数组分为第二相关数组第一部分和第二相关数组第二部分,第二相关数组第一部分为β2,第二相关数组第二部分为β2',将β1和β2'发送给第一服务器,将β2和β1'发送给第二服务器;
第一设备发送K21和K21'给第二设备,第二设备发送K12和K12'给第一设备;
第一设备验证如果K11K12K21K22=K11'K12'K21'K22',则采用K=K11K12K21K22作为密钥;
第二设备验证如果K11K12K21K22=K11'K12'K21'K22',则采用K=K11K12K21K22作为密钥。
在其中一个实施例中,所述第一服务器与第二服务器通信隔断。以避免第一服务器与第二服务器之间互相通信交互第一设备与第二设备的安全信息。
上述的安全多方计算协议可以使用S.Hohenberger和A.Lysyanskaya提出的模指数外包计算协议。
本发明的密钥生成方法,在密钥生成的过程中,两个不诚实的服务器只能获得密钥生成过程中的部分信息,两个服务器的任何一方都不可能获得完整的秘密信息,从而保证密钥生成的安全性。因此两个计算能力很弱的设备用户,即使在服务器不可信的情形下,也能借助服务器实现模指数的外包计算,得到一个共同的密钥用于信息的加密和解密。
附图说明
图1为本发明的密钥生成***100的方框示意图;
图2为由本发明的密钥生成设备和密钥生成服务器执行的密钥生成方法的流程图;
图3为本发明的密钥生成设备300的方框示意图;
图4为本发明的密钥服务器400的方框示意图;
图5为由本发明的密钥生成设备和密钥生成服务器执行的密钥生成方法的信息交互图。
具体实施方式
下面结合附图和具体实施例对本发明做进一步详细的说明。
如图1示出了根据本发明的密钥生成***100的方框示意图。如图1所示,所述密钥生成***100包括第一设备101、第二设备102、第一服务器103和第二服务器104。
这里要说明的是,所述第一设备101、第二设备102、第一服务器103和第二服务器104应该包括本文中所公开的各种变型。
如图2示出了根据本发明的由本发明的密钥生成设备和密钥生成服务器执行的密钥生成方法的流程图。
如图2所示,结合图2的密钥生成***100
在步骤S201,初始化选择一个有限域Zp,其中,p是一个素数,从Zp中选择一个生成元g,p,g是公开的,设定一个离线的快速计算指数算法Rand1,然后转到步骤S102;
算法Rand1被一个素数p,一个生成元和一些其他的值初始化,它的每一次运算都产生一个独立的、随机的对(b,gbmodp),其中b∈[0,p-2]。一个可以替换的方法是使用一个可信任的服务器去提前多次执行算法Rand1,得到一个由独立、随机的对组成的表格,然后嵌入到要调用的设备的内存中。设备每一次运行Rand1,都输出表中的一个值。
在步骤S202,第一设备101选择一个随机数α作为第一根随机数,选择两个随机数α1和α1'作为第一随机数,得到包括α1和α1'的第一随机数组,其中α,α1,α1'∈[0,p-2],计算两个第一相关数α2和α2',得到包括α2和α2'的第一相关数组,其中α2=α-α1mod(p-1),α2'=α-α1'mod(p-1),然后运行Rand1两次,计算和把和发给第二设备102;
在步骤S203,第二设备102选择一个随机数β作为第二根随机数,选择两个随机数β1和β1'作为第二随机数,得到包括β1和β1'的第二随机数组,其中β,β1,β1'∈[0,p-2],计算两个第二相关数β2和β2',得到包括β2和β2'的第二相关数组,其中β2=β-β1mod(p-1),β2'=β-β1'mod(p-1),计算和把和发给第一设备101;
在步骤S204,第一设备101把两个第一随机数组分为第一随机数组第一部分α1和第一随机数组第二部分α1',把两个第一相关数组分为第一相关数组第一部分α2和第一相关数组第二部分α2',把第一随机数组第一部分α1和第一相关数组第二部分α2'发送给第一服务器103,把第一随机数组第二部分α1'和第一相关数组第一部分α2发送给第二服务器104,由于α2'仅与α1'及α有关,α2仅与α1及α有关,且第一服务器103和第二服务器104均不知道α,因此,第一服务器103和第二服务器104分别拿到第一设备101的部分秘密信息;
在步骤S205,第二设备102把两个第二随机数组分为第二随机数组第一部分β1和第二随机数组第二部分β1',把两个第二相关数组分为第二相关数组第一部分β2和第二相关数组第二部分β2',把第二随机数组第一部分β1和第二相关数组第二部分β2'发送给第一服务器103,把第二随机数组第二部分β1'和第二相关数组第一部分β2发送给第二服务器104,由于β2'仅与β1'及β有关,β2仅与β1及β有关,由于第一服务器103和第二服务器104均不知道β,因此,第一服务器103和第二服务器104分别拿到第二设备104的部分秘密信息;
在步骤S206,第一服务器103计算第一服务器参数和第二服务器104计算第二服务器参数和然后第一服务器103把K11和K22'发送给第一设备101和第二设备102,第二服务器104把K11'和K22发送给第一设备101和第二设备102;
在步骤S207,第一设备101、第一服务器103和第二服务器104共同执行安全多方计算协议进行模指数运算两次,分别得到两个第一设备参数K21和K21',其中K21根据α2和生成,K21'根据α2'和生成;
在步骤S208,第二设备102、第一服务器103和第二服务器104共同执行安全多方计算协议进行模指数运算两次,分别得到两个第二设备参数K12和K12',其中K12根据β2和生成,K12'根据β2'和生成;
在步骤S209,第一设备101验证K21和K21'的正确性,第二设备102验证K12和K12'的正确性。如果任何一个验证出错,则输出“错误”。否则,第一设备101发送K21和K21'给第二设备102,第二设备102发送K12和K12'给第一设备101;
在步骤S210,第一设备101和第二设备102各自验证K11K12K21K22=K11'K12'K21'K22'是否成立,如果不成立,输出“错误”,否则,第一设备101和第二设备102得到密钥K=K11K12K21K22。
在后续第一设备101与第二设备102之间的通信,均采用各自的密钥进行加密和解密,由于两个设备的密钥相同,则第一设备101和第二设备102能实现正常通信。
必须指出的是,在上述步骤S202和S203中,采用两个第一随机数作为第一随机数组、采用两个第一相关数作为第一相关数组、采用两个第二随机数作为第二随机数组以及采用两个第二相关数作为第二相关数组均是出于算法简单的考虑,实际上可以采用多于两个的第一随机数、第一相关数、第二随机数和第二相关数进行组合,只要满足以下条件,即:“第一相关数组第一部分中的任意一个第一相关数,由第一根随机数及第一随机数组第一部分中的一个第一随机数计算得到,第一相关数组第二部分中的任意一个第一相关数,由第一根随机数及第一随机数组第二部分中的一个第一随机数计算得到;第二相关数组第一部分中的任意一个第二相关数,由第二根随机数及第二随机数组第一部分中的一个第二随机数计算得到,第二相关数组第二部分中的任意一个第二相关数,由第二根随机数及第二随机数第二部分中的一个第二随机数计算得到。”则第一服务器和第二服务器仅获得第一设备和第二设备的部分信息,从而保证安全性。当采用多于两个的第一随机数、第一相关数、第二随机数和第二相关数时,需要对后续步骤做相应的修改。本领域技术人员在经过有限次计算后可以得到相应的修改步骤。
通过使用快速的离线指数计算和不可信的辅助服务器计算的预处理过程,S.Hohenberger和A.Lysyanskaya提出了一个使用不信任指数计算盒子U'=(U1',U2')去计算和检测模指数运算的外包计算协议,其中一旦协议开始,则U1'和U2'就不能交互。
在这个不信任的程序模型中,攻击者E为U1'和U2'写好代码,并把它们给诚实的用户T。如果是云计算环境中,U1'和U2'就是两个不信任的云计算服务器,而T就是一个用户。在本实施例中,第一服务器103和第二服务器104即所述的两个不可信的云计算服务器U1'和U2',而第一设备101和第二设备102即所述的诚实的用户T。
在该协议中,假设存在一个算法Rand1计算(b,gbmodp)。算法Rand1被一个素数p,一个生成元和一些其他的值初始化,它的每一次都产生一个独立的、随机的(b,gbmodp),其中b∈[0,p-2]。一个可以替换的方法是使用一个可信任的服务器去提前计算一个由独立、随机的对组成的表格,然后嵌入到T的内存中。每一次激活Rand1,它都输出表中的一个值。对于Rand1,至关重要的是它的输出与真实的随机数应该是不可区分的。
模指数外包计算算式:EXP(a,u)→uamodp,该算式表示,输入两个参数(a,u),经过运算后,输出uamodp,具体算法如下:
初始化:p,q是两个大素数,Zp *的阶是q。
1:T运行Rand1两次,输出(α,gαmodp),(β,gβmodp),其中v=gα,vb=gβ,且b=β/α。
2:T进行两次分解,一个分解是uα=(vw)α=vαwα=vbvcwα,其中w=u/v,c=α-b;另一个分解是vbvcwα=vb(fh)cwd+e=vbfchcwdwe,其中h=v/f,e=α-d。
vbfchcwdwe=vb+cwd+e=vαwα=(vw)α=uα。
作为一个例子,一种密钥协商协议:
初始化:Zp是一个有限域,p是一个素数,g是Zp的一个生成元。p,g是公开的。
3:用户A送(α1,α2')给U1,(α2,α1')给U2;
4:用户B送(β1,β2')给U1,(β2,β1')给U2;
6:用户A和U1,U2运行模指数的外包计算两次,分别得到K21和K21',其中
7:用户B和U1,U2运行模指数的外包计算两次,分别得到K12和K12',其中
8:A验证K21和K21'的正确性,B验证K12和K12'的正确性。如果任何一个验证出错,则输出“错误”。否则,A发送K21和K21'给B,B发送K12和K12'给A。
9:A和B各自验证K11K12K21K22=K11'K12'K21'K22'是否成立,如果不成立,输出“错误”,否则双方得到一个共同的密钥K=K11K12K21K22。
图3示出了根据本发明的密钥生成设备300的方框示意图。如图3所示,密钥生成设备300包括随机数选择模块301、相关数计算模块302、第一设备中间参数计算模块303、第二设备中间参数接收模块304、服务器发送模块305、第一服务器参数接收模块306、第二服务器参数接收模块307、设备安全多方计算协议执行模块308、第二设备参数接收模块309和密钥生成模块310:
随机数选择模块301,用于选择一个随机数作为第一根随机数,选择多个随机数作为第一随机数,得到包括多个第一随机数的第一随机数组;
相关数计算模块302,用于计算多个第一相关数,得到包括多个第一相关数的第一相关数组,所述每个第一相关数由一个第一随机数与第一根随机数计算得到;
第一设备中间参数计算模块303,用于根据第一随机数计算得到第一设备中间参数,并发送给第二设备;
第二设备中间参数接收模块304,用于接收第二设备发送的第二设备中间参数,所述第二设备中间参数由第二设备随机选择的多个第二随机数计算得到;
服务器发送模块305,用于把第一随机数组分为第一随机数组第一部分和第一随机数组第二部分,把第一相关数组分为第一相关数组第一部分和第一相关数组第二部分,把第一随机数组第一部分和第一相关数组第二部分发送给第一服务器,把第一随机数组第二部分和第一相关数组第一部分发送给第二服务器;
第一服务器参数接收模块306,用于接收第一服务器发送的第一服务器参数,所述第一服务器参数由第一服务器对接收到的第一随机数组第一部分、第一相关数组第二部分进行计算得到;
第二服务器参数接收模块307,用于接收第二服务器发送的第二服务器参数,所述第二服务器参数由第二服务器对接收到的第一随机数组第二部分和第一相关数组第一部分进行计算得到;
设备安全多方计算协议执行模块308,用于通过第一服务器和第二服务器根据第一相关数及第二设备中间参数执行安全多方计算协议进行模指数运算得到第一设备参数,并发送到第二设备;
第二设备参数接收模块309,用于接收第二设备发送的第二设备参数,所述第二设备参数由第二设备通过第一服务器和第二服务器根据第二相关数及第一设备中间参数执行安全多方计算协议进行模指数运算得到,所述第二相关数由第二设备根据第二随机数与第二根随机数计算得到,所述第二根随机数由第二设备随机选择;
密钥生成模块310,用于采用第一服务器参数、第二服务器参数、第一设备参数及第二设备参数的组合作为密钥。
图4示出了根据本发明的密钥生成服务器400的方框示意图。
一种密钥生成服务器400,包括第一设备接收模块401、第二设备接收模块402、第一服务器参数生成模块403、协调第一设备安全多方计算协议执行模块404和协调第二设备安全多方计算协议执行模块405:
第一设备接收模块401,用于从第一设备接收由第一设备生成的第一随机数组第一部分和第一相关数组第二部分;
第二设备接收模块402,用于从第二设备接收由第二设备生成的第二随机数组第一部分和第二相关数组第二部分;
第一服务器参数生成模块403,用于对接收到的第一随机数组第一部分、第一相关数组第二部分、第二随机数组第一部分和第二相关数组第二部分进行计算得到第一服务器参数,并发送给第一设备和第二设备;
协调第一设备安全多方计算协议执行模块404,用于与第一设备、第二服务器共同执行安全多方计算协议进行模指数运算,以生成第一设备参数,所述第一设备参数与第一服务器参数用于第一设备生成密钥;
协调第二设备安全多方计算协议执行模块405,用于与第二设备、第二服务器共同执行安全多方计算协议进行模指数运算,以生成第二设备参数,所述第二设备参数与第一服务器参数用于第二设备生成密钥。
如图5示出了根据本发明的由本发明的密钥生成设备和密钥生成服务器执行的密钥生成方法的信息交互图。
步骤S531:第一设备101给第一服务器103信息(α1,α2');
步骤S532:第一设备101给第二服务器104信息(α2,α1');
步骤S541:第二设备102给第一服务器103信息(β1,β2');
步骤S542:第二设备102给第二服务器104信息(β2,β1');
步骤S551:第一服务器103给第一设备101信息K11,K22';
步骤S552:第一服务器103给第二设备102信息K11,K22';
步骤S553:第二服务器104给第一设备101信息K11',K22;
步骤S554:第二服务器104给第二设备102信息K11',K22;
步骤S560:在第一设备101、第一服务器103和第二服务器104中执行模指数的外包计算两次。第一服务器103和第二服务器104之间的虚线表示两个服务器没有交互;
步骤S570:在第二设备102、第一服务器103和第二服务器104中执行模指数的外包计算两次。第一服务器103和第二服务器104之间的虚线表示两个服务器没有交互;
步骤S581:第一设备101给第二设备102信息K21和K21';
步骤S582:第二设备102给第一设备101信息K12和K12';
步骤S590:第一设备101计算K1=K11K12K21K22,第二设备102各自计算K2=K11K12K21K22。
对于第一服务器103和第二服务器104来说,第一服务器103缺少K11',K22,而第二服务器104缺少K11,K22',因此均无法计算出K1或者K2,从而保证了密钥生成的安全性。
作为一种具体的应用,两个服务器103和104可以为云服务器,云服务器的计算能力较强,但具有不安全性,特别适合本发明所提供的密钥生成方法。本发明提供的密钥生成方法,使得计算能力很弱的第一设备和第二设备得到一个公共的密钥K,但是云服务器没有得到K的任何信息。在密钥生成的过程中,两个不可信的服务器只能获得密钥生成过程中的部分信息,在两个服务器不能串通,即两个服务器隔绝通信的条件下,任何一方都不可能获得完整的秘密信息,从而保证密钥生成的安全性。
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。
Claims (10)
1.一种密钥生成方法,其特征在于,包括:
获取一个随机数作为第一根随机数,获取多个随机数作为第一随机数,得到包括多个第一随机数的第一随机数组;
计算多个第一相关数,得到包括多个第一相关数的第一相关数组,其中,所述每个第一相关数由一个第一随机数与第一根随机数计算得到;
根据第一随机数计算得到第一设备中间参数,并发送给第二设备;
接收第二设备发送的第二设备中间参数,所述第二设备中间参数由第二设备随机获取的多个第二随机数计算得到;
将第一随机数组分为第一随机数组第一部分和第一随机数组第二部分,将第一相关数组分为第一相关数组第一部分和第一相关数组第二部分,将第一随机数组第一部分和第一相关数组第二部分发送给第一服务器,将第一随机数组第二部分和第一相关数组第一部分发送给第二服务器;
接收第一服务器发送的第一服务器参数,其中,所述第一服务器参数由第一服务器对第一随机数组第一部分、第一相关数组第二部分进行计算得到;
接收第二服务器发送的第二服务器参数,其中,所述第二服务器参数由第二服务器对第一随机数组第二部分和第一相关数组第一部分进行计算得到;
通过第一服务器和第二服务器根据第一相关数及第二设备中间参数执行安全多方计算协议进行模指数运算得到第一设备参数,并发送到第二设备;
接收第二设备发送的第二设备参数,其中,所述第二设备参数由第二设备通过第一服务器和第二服务器根据第二相关数及第一设备中间参数执行安全多方计算协议进行模指数运算得到,所述第二相关数由第二设备根据第二随机数与第二根随机数计算得到,所述第二根随机数由第二设备随机选择;
采用第一服务器参数、第二服务器参数、第一设备参数及第二设备参数生成密钥。
2.根据权利要求1所述的密钥生成方法,其特征在于,第一相关数组第一部分中的任意一个第一相关数,由第一根随机数及第一随机数组第一部分中的一个第一随机数计算得到;第一相关数组第二部分中的任意一个第一相关数,由第一根随机数及第一随机数组第二部分中的一个第一随机数计算得到。
3.根据权利要求1所述的密钥生成方法,其特征在于,具体包括:
初始化选择一个有限域Zp,其中,p是一个素数,从Zp中选择一个生成元g;
获取一个随机数α作为第一根随机数,获取两个随机数α1和α1'作为第一随机数,得到包括α1和α1'的第一随机数组,其中,α,α1,α1'∈[0,p-2];
计算两个第一相关数α2和α2',得到包括α2和α2'的第一相关数组,其中,α2=α-α1mod(p-1),α2'=α-α1'mod(p-1);
将第一随机数组分为第一随机数组第一部分和第一随机数组第二部分,第一随机数组第一部分为α1,第一随机数组第二部分为α1',将第一相关数组分为第一相关数组第一部分和第一相关数组第二部分,第一相关数组第一部分为α2,第一相关数组第二部分为α2',将α1和α2'发送给第一服务器,将α2和α1'发送给第二服务器;
接收由第一服务器发送的第一服务器参数K11和K22',其中,K11由第一服务器根据得到,K22'由第一服务器根据计算得到,其中,β2'由第二设备根据β2'=β-β1'mod(p-1)得到,β为第二设备随机获取的第二根随机数,β∈[0,p-2];
接收第二设备发送的两个第二设备参数K12和K12',K12和K12'由第二设备、第一服务器和第二服务器共同执行安全多方计算协议进行模指数运算得到,其中,
如果K11K12K21K22=K11'K12'K21'K22',则采用K=K11K12K21K22作为密钥。
4.一种密钥生成设备,其特征在于,包括随机数选择模块、相关数计算模块、第一设备中间参数计算模块、第二设备中间参数接收模块、服务器发送模块、第一服务器参数接收模块、第二服务器参数接收模块、设备安全多方计算协议执行模块、第二设备参数接收模块和密钥生成模块:
随机数选择模块,用于获取一个随机数作为第一根随机数,获取多个随机数作为第一随机数,得到包括多个第一随机数的第一随机数组;
相关数计算模块,用于计算多个第一相关数,得到包括多个第一相关数的第一相关数组;其中,所述每个第一相关数由一个第一随机数与第一根随机数计算得到;
第一设备中间参数计算模块,用于根据第一随机数计算得到第一设备中间参数,并发送给第二设备;
第二设备中间参数接收模块,用于接收第二设备发送的第二设备中间参数,所述第二设备中间参数由第二设备随机获取的多个第二随机数计算得到;
服务器发送模块,用于将第一随机数组分为第一随机数组第一部分和第一随机数组第二部分,将第一相关数组分为第一相关数组第一部分和第一相关数组第二部分,将第一随机数组第一部分和第一相关数组第二部分发送给第一服务器,将第一随机数组第二部分和第一相关数组第一部分发送给第二服务器;
第一服务器参数接收模块,用于接收第一服务器发送的第一服务器参数,其中,所述第一服务器参数由第一服务器对第一随机数组第一部分、第一相关数组第二部分进行计算得到;
第二服务器参数接收模块,用于接收第二服务器发送的第二服务器参数,其中,所述第二服务器参数由第二服务器对第一随机数组第二部分和第一相关数组第一部分进行计算得到;
设备安全多方计算协议执行模块,用于通过第一服务器和第二服务器根据第一相关数及第二设备中间参数执行安全多方计算协议进行模指数运算得到第一设备参数,并发送到第二设备;
第二设备参数接收模块,用于接收第二设备发送的第二设备参数,其中,所述第二设备参数由第二设备通过第一服务器和第二服务器根据第二相关数及第一设备中间参数执行安全多方计算协议进行模指数运算得到,所述第二相关数由第二设备根据第二随机数与第二根随机数计算得到,所述第二根随机数由第二设备随机选择;
密钥生成模块,用于采用第一服务器参数、第二服务器参数、第一设备参数及第二设备参数生成密钥。
5.一种密钥生成方法,其特征在于,包括:
接收由第一设备生成的第一随机数组第一部分和第一相关数组第二部分;
接收由第二设备生成的第二随机数组第一部分和第二相关数第二部分组;
对接收到的第一随机数第一部分、第一相关数第二部分、第二随机数第一部分和第二相关数第二部分进行计算得到第一服务器参数,并发送给第一设备和第二设备;
与第一设备、第二服务器共同执行安全多方计算协议进行模指数运算,以生成第一设备参数,所述第一设备参数与第一服务器参数用于第一设备生成密钥;
与第二设备、第二服务器共同执行安全多方计算协议进行模指数运算,以生成第二设备参数,所述第二设备参数与第一服务器参数用于第二设备生成密钥。
6.根据权利要求5所述的密钥生成方法,其特征在于,具体包括:
选择一个有限域Zp,其中,p是一个素数,从Zp中选择一个生成元g;
接收由第一设备生成的第一随机数组第一部分α1和第一相关数组第二部分α2';
接收由第二设备生成的第二随机数组第一部分β1和第二相关数组第二部分β2';
与第一设备和第二服务器共同执行安全多方计算协议进行模指数运算,以生成两个第一设备参数K21和K21',其中, 其中,和为第一设备从第二设备接收的两个第二设备中间参数,α2和α2'由第一设备根据α2=α-α1mod(p-1)和α2'=α-α1'mod(p-1)计算得到,α1和α1'为第一设备随机选择的第一随机数,α为第一设备随机选择的第一根随机数,α,α1,α1'∈[0,p-2];
7.一种密钥生成服务器,其特征在于,包括第一设备接收模块、第二设备接收模块、第一服务器参数生成模块、协调第一设备安全多方计算协议执行模块和协调第二设备安全多方计算协议执行模块:
第一设备接收模块,用于接收由第一设备生成的第一随机数组第一部分和第一相关数组第二部分;
第二设备接收模块,用于接收由第二设备生成的第二随机数组第一部分和第二相关数组第二部分;
第一服务器参数生成模块,用于对接收到的第一随机数组第一部分、第一相关数组第二部分、第二随机数组第一部分和第二相关数组第二部分进行计算得到第一服务器参数,并发送给第一设备和第二设备;
协调第一设备安全多方计算协议执行模块,用于与第一设备、第二服务器共同执行安全多方计算协议进行模指数运算,以生成第一设备参数,所述第一设备参数与第一服务器参数用于第一设备生成密钥;
协调第二设备安全多方计算协议执行模块,用于与第二设备、第二服务器共同执行安全多方计算协议进行模指数运算,以生成第二设备参数,所述第二设备参数与第一服务器参数用于第二设备生成密钥。
8.一种密钥生成方法,其特征在于,包括:
第一设备获取一个随机数作为第一根随机数,获取多个随机数作为第一随机数,得到包括多个第一随机数的第一随机数组;
计算多个第一相关数,得到包括多个第一相关数的第一相关数组,其中,所述每个第一相关数由一个第一随机数与第一根随机数计算得到;
第二设备获取一个随机数作为第二根随机数,获取多个随机数作为第二随机数,得到包括多个第二随机数的第二随机数组;
计算多个第二相关数,得到包括多个第二相关数的第二相关数组,其中,所述每个第二相关数由一个第二随机数与第二根随机数计算得到;
第一设备将第一随机数组分为第一随机数组第一部分和第一随机数组第二部分,将第一相关数组分为第一相关数组第一部分和第一相关数组第二部分,将第一随机数组第一部分和第一相关数组第二部分发送给第一服务器,将第一随机数组第二部分和第一相关数组第一部分发送给第二服务器;
第二设备将第二随机数组分为第二随机数组第一部分和第二随机数组第二部分,将第二相关数组分为第二相关数组第一部分和第二相关数组第二部分,将第二随机数组第一部分和第二相关数组第二部分发送给第一服务器,将第二随机数组第二部分和第二相关数组第一部分发送给第二服务器;
第一服务器对接收到的第一随机数组第一部分、第一相关数组第二部分、第二随机数组第一部分和第二相关数组第二部分进行计算得到第一服务器参数,并发送给第一设备和第二设备;
第二服务器对接收到的第一随机数组第二部分、第一相关数组第一部分、第二随机数组第二部分和第二相关数组第一部分进行计算得到第二服务器参数,并发送给第一设备和第二设备;
第一设备通过第一服务器和第二服务器执行安全多方计算协议进行模指数运算得到第一设备参数,并发送给第二设备;
第二设备通过第一服务器和第二服务器执行安全多方计算协议进行模指数运算得到第二设备参数,并发送给第一设备;
第一设备和第二设备采用第一服务器参数、第二服务器参数、第一设备参数及第二设备参数的组合作为密钥。
9.根据权利要求8所述的密钥生成方法,其特征在于:
第一相关数组第一部分中的任意一个第一相关数,由第一根随机数及第一随机数组第一部分中的一个第一随机数计算得到,第一相关数组第二部分中的任意一个第一相关数,由第一根随机数及第一随机数组第二部分中的一个第一随机数计算得到;
第二相关数组第一部分中的任意一个第二相关数,由第二根随机数及第二随机数组第一部分中的一个第二随机数计算得到,第二相关数组第二部分中的任意一个第二相关数,由第二根随机数及第二随机数第二部分中的一个第二随机数计算得到。
10.根据权利要求8所述的密钥生成方法,其特征在于,具体包括:
初始化选择一个有限域Zp,其中,p是一个素数,从Zp中选择一个生成元g;
第一设备获取一个随机数α作为第一根随机数,获取两个随机数α1和α1'作为第一随机数,得到包括α1和α1'的第一随机数组,其中,α,α1,α1'∈[0,p-2],计算两个第一相关数α2和α2',得到包括α2和α2'的第一相关数组,其中,α2=α-α1mod(p-1),α2'=α-α1'mod(p-1),计算两个第一设备中间参数和把和发给第二设备;
第二设备获取一个随机数β作为第二根随机数,获取两个随机数β1和β1'作为第二随机数,得到包括β1和β1'的第二随机数组,其中,β,β1,β1'∈[0,p-2],计算两个第二相关数β2和β2',得到包括β2和β2'的第二相关数组其中,β2=β-β1mod(p-1),β2'=β-β1'mod(p-1),计算两个第二设备中间参数和把和发给第一设备;
第一设备将第一随机数组分为第一随机数组第一部分和第一随机数组第二部分,第一随机数组第一部分为α1,第一随机数组第二部分为α1',将第一相关数组分为第一相关数组第一部分和第一相关数组第二部分,第一相关数组第一部分为α2,第一相关数组第二部分为α2',将α1和α2'发送给第一服务器,将α2和α1'发送给第二服务器;
第二设备将第二随机数组分为第二随机数组第一部分和第二随机数组第二部分,第二随机数组第一部分为β1,第二随机数组第二部分为β1',将第二相关数组分为第二相关数组第一部分和第二相关数组第二部分,第二相关数组第一部分为β2,第二相关数组第二部分为β2',将β1和β2'发送给第一服务器,将β2和β1'发送给第二服务器;
第一设备发送K21和K21'给第二设备,第二设备发送K12和K12'给第一设备;
第一设备验证如果K11K12K21K22=K11'K12'K21'K22',则采用K=K11K12K21K22作为密钥;
第二设备验证如果K11K12K21K22=K11'K12'K21'K22',则采用K=K11K12K21K22作为密钥。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210489040.8A CN103001957B (zh) | 2012-11-26 | 2012-11-26 | 一种密钥生成方法、设备及服务器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210489040.8A CN103001957B (zh) | 2012-11-26 | 2012-11-26 | 一种密钥生成方法、设备及服务器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103001957A true CN103001957A (zh) | 2013-03-27 |
CN103001957B CN103001957B (zh) | 2015-07-15 |
Family
ID=47930101
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210489040.8A Active CN103001957B (zh) | 2012-11-26 | 2012-11-26 | 一种密钥生成方法、设备及服务器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103001957B (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104735081A (zh) * | 2015-04-07 | 2015-06-24 | 四川理工学院 | 一种云环境下安全模指数外包方法及*** |
CN105119929A (zh) * | 2015-09-09 | 2015-12-02 | 四川理工学院 | 单一恶意云服务器下的安全模指数外包方法及*** |
CN109787998A (zh) * | 2019-02-28 | 2019-05-21 | 矩阵元技术(深圳)有限公司 | 数据处理方法、装置、智能卡、终端设备和服务器 |
CN112003690A (zh) * | 2019-08-16 | 2020-11-27 | 华控清交信息科技(北京)有限公司 | 密码服务***、方法及装置 |
CN114826702A (zh) * | 2022-04-11 | 2022-07-29 | 中国南方电网有限责任公司 | 数据库访问密码加密方法、装置和计算机设备 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101399660A (zh) * | 2007-09-28 | 2009-04-01 | 华为技术有限公司 | 协商组群密钥的方法和设备 |
US20090287922A1 (en) * | 2006-06-08 | 2009-11-19 | Ian Herwono | Provision of secure communications connection using third party authentication |
GB2488753A (en) * | 2011-02-24 | 2012-09-12 | Carlos Eduardo Bevilacqua Leal | Encrypted communication |
-
2012
- 2012-11-26 CN CN201210489040.8A patent/CN103001957B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090287922A1 (en) * | 2006-06-08 | 2009-11-19 | Ian Herwono | Provision of secure communications connection using third party authentication |
CN101399660A (zh) * | 2007-09-28 | 2009-04-01 | 华为技术有限公司 | 协商组群密钥的方法和设备 |
GB2488753A (en) * | 2011-02-24 | 2012-09-12 | Carlos Eduardo Bevilacqua Leal | Encrypted communication |
Non-Patent Citations (3)
Title |
---|
YONGLONG TANG,CHUNMING TANG: "Efficient Round-Optimal Secure Two-Party Computation from Σ-protocol", 《2010 INTERNATIONAL CONFERENCE ON COMMUNICATIONS AND MOBILE COMPUTING》 * |
YONGLONG TANG,CHUNMING TANG: "Efficient Round-Optimal Secure Two-Party Computation from Σ-protocol", 《2010 INTERNATIONAL CONFERENCE ON COMMUNICATIONS AND MOBILE COMPUTING》, vol. 1, 31 December 2010 (2010-12-31) * |
***: "安全多方计算协议的研究与应用", 《中国优秀博硕士学位论文全文数据库(硕士) 信息科技辑(2005年)》 * |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104735081A (zh) * | 2015-04-07 | 2015-06-24 | 四川理工学院 | 一种云环境下安全模指数外包方法及*** |
CN105119929A (zh) * | 2015-09-09 | 2015-12-02 | 四川理工学院 | 单一恶意云服务器下的安全模指数外包方法及*** |
CN105119929B (zh) * | 2015-09-09 | 2019-02-01 | 四川理工学院 | 单一恶意云服务器下的安全模指数外包方法及*** |
CN109787998A (zh) * | 2019-02-28 | 2019-05-21 | 矩阵元技术(深圳)有限公司 | 数据处理方法、装置、智能卡、终端设备和服务器 |
CN112003690A (zh) * | 2019-08-16 | 2020-11-27 | 华控清交信息科技(北京)有限公司 | 密码服务***、方法及装置 |
CN112003690B (zh) * | 2019-08-16 | 2024-01-12 | 华控清交信息科技(北京)有限公司 | 密码服务***、方法及装置 |
CN114826702A (zh) * | 2022-04-11 | 2022-07-29 | 中国南方电网有限责任公司 | 数据库访问密码加密方法、装置和计算机设备 |
Also Published As
Publication number | Publication date |
---|---|
CN103001957B (zh) | 2015-07-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101575030B1 (ko) | 클라우드 상의 공유 데이터에 대한 다중 서명생성방법 | |
Tseng et al. | A chaotic maps-based key agreement protocol that preserves user anonymity | |
CN106357701B (zh) | 云存储中数据的完整性验证方法 | |
US9571274B2 (en) | Key agreement protocol | |
EP3020158B1 (en) | Key agreement device and method | |
CN104270249A (zh) | 一种从无证书环境到基于身份环境的签密方法 | |
CN111989891A (zh) | 数据处理方法、相关装置及区块链*** | |
CN101815091A (zh) | 密码提供设备、密码认证***和密码认证方法 | |
CN103414690A (zh) | 一种可公开验证云端数据持有性校验方法 | |
CN104301108A (zh) | 一种从基于身份环境到无证书环境的签密方法 | |
Kim et al. | Device authentication protocol for smart grid systems using homomorphic hash | |
CN109831306B (zh) | 基于多个密钥池的抗量子计算环签名方法和*** | |
Clarke et al. | Cryptanalysis of the dragonfly key exchange protocol | |
CN103001957A (zh) | 一种密钥生成方法、设备及服务器 | |
CN103475473A (zh) | 数字签名方法和设备、数字签名中密码运算方法和服务器 | |
CN105306212B (zh) | 一种身份隐藏且强安全的签密方法 | |
CN102291396B (zh) | 可信平台远程证明的匿名认证算法 | |
US20160352689A1 (en) | Key agreement protocol | |
Bayat et al. | A secure and efficient chaotic maps based authenticated key-exchange protocol for smart grid | |
Li et al. | Privacy-preserving large-scale systems of linear equations in outsourcing storage and computation | |
Juniawan | RSA implementation for data transmission security in BEM chairman E-voting Android based application | |
WO2016187690A1 (en) | Key agreement protocol | |
Yang et al. | Efficient certificateless encryption withstanding attacks from malicious KGC without using random oracles | |
Lee | Efficient three-party authenticated key agreements based on Chebyshev chaotic map-based Diffie–Hellman assumption | |
CN104184581B (zh) | 一种带符号二次剩余类群中的公钥加密方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
C56 | Change in the name or address of the patentee | ||
CP01 | Change in the name or title of a patent holder |
Address after: 510006 No. 230 West Ring Road, Guangzhou University, Guangdong, Guangzhou Patentee after: Guangzhou University Patentee after: Age of security Polytron Technologies Inc Address before: 510006 No. 230 West Ring Road, Guangzhou University, Guangdong, Guangzhou Patentee before: Guangzhou University Patentee before: Guangdong Certificate Authority Center Co., Ltd. |