CN110445602B - 密钥生成方法及电子设备 - Google Patents
密钥生成方法及电子设备 Download PDFInfo
- Publication number
- CN110445602B CN110445602B CN201910473424.2A CN201910473424A CN110445602B CN 110445602 B CN110445602 B CN 110445602B CN 201910473424 A CN201910473424 A CN 201910473424A CN 110445602 B CN110445602 B CN 110445602B
- Authority
- CN
- China
- Prior art keywords
- key
- key parameter
- parameter
- nth
- generating
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Mobile Radio Communication Systems (AREA)
- Storage Device Security (AREA)
Abstract
本申请实施例公开了一种密钥生成方法及电子设备。所述密钥生成方法,包括:利用第一函数以第一密钥参数为已知量,计算得到第二密钥参数;向响应端发送携带有所述第二密钥参数的密钥申请;接收所述响应端基于所述第二密钥参数返回的第三密钥参数;基于所述第三密钥参数及所述第一密钥参数,生成私钥。
Description
技术领域
本发明涉及信息技术领域,尤其涉及一种密钥生成方法及电子设备。
背景技术
在信息传输过程中,为了减少信息泄露会利用密钥进行加密。例如,利用非对称密钥进行加密,利用非对称密钥进行加密和解密时,所涉及的密钥包括公钥和私钥。
在设置密码时,需要进行密钥推导和传输的过程中,存在密钥托管或泄露导致的安全性问题。
发明内容
有鉴于此,本发明实施例期望提供一种密钥生成方法及电子设备。
本发明的技术方案是这样实现的:
一种密钥生成方法,包括:
利用第一函数以第一密钥参数为已知量,计算得到第二密钥参数;
向响应端发送携带有所述第二密钥参数的密钥申请;
接收所述响应端基于所述第二密钥参数返回的第三密钥参数;
基于所述第三密钥参数及所述第一密钥参数,生成私钥。
基于上述方案,所述利用第一函数以第一密钥参数为已知量,计算得到第二密钥参数,包括:
利用单向函数以所述第一密钥参数为已知量,计算得到所述第二密钥参数。
基于上述方案,所述向响应端发送携带有所述第二密钥参数的密钥申请,包括:
向所述响应端发送携带有所述第二密钥参数及请求申请的密钥对数量N, N为正整数;
所述接收所述密钥生成端基于所述第二密钥参数返回的第三密钥参数,包括:
接收所述响应端基于所述第二密钥参数返回的N个所述第三密钥参数;
所述基于所述第三密钥参数及所述第一密钥参数,生成私钥,包括:
基于N个所述第三密钥参数,生成N个私钥。
基于上述方案,所述方法还包括:
接收所述响应端基于所述第二密钥参数返回的第四密钥参数,其中,所述第四密钥参数与请求端的标识,共同用于生成与所述私钥对应的公钥。
基于上述方案,所述方法还包括:
验证所述私钥和所述公钥之间的对应关系;
若通过所述验证,应用所述私钥和所述公钥形成的非对称加密对。
基于上述方案,所述方法还包括:
确定随机生成的所述第一密钥参数是否第一预定值;
若所述第一密钥参数为第一预定值,重新计算所述第一密钥参数。
一种密钥生成方法,包括:
接收请求端发动的密钥申请,其中,所述密钥申请携带有第二密钥参数,其中,所述第二密钥参数为所述请求端利用第一函数以第一密钥参数为已知量生成的;
基于所述第二密钥参数,生成第三密钥参数;
将所述第三密钥参数发送给所述请求端,其中,所述第三密钥参数和所述第一密钥参数,共同用于供所述请求端生成私钥。
基于上述方案,所述密钥申请还携带了密钥对数量N;
所述基于所述第二密钥参数,生成第三密钥参数,包括:
基于所述第二密钥参数,生成N个所述第三密钥参数,其中,一个所述第三密钥参数,用于供请求端自动生成一个所述私钥。
基于上述方案,所述基于所述第二密钥参数,生成N个所述第三密钥参数,包括:
随机选择随机数的种子索引;
在生成第n个所述第二密钥参数时,基于所述种子索引及n确定第n个随机数索引,n为小于或等于N的正整数;
基于所述第n随机数索引,确定第n个第四密钥参数,其中,所述第四密钥参数与请求端的标识,共同用于生成与所述私钥对应的公钥;
基于所述第n个所述第四密钥参数,确定所述第三密钥参数。
基于上述方案,所述方法还包括:
基于第二函数以所述第n个所述第四密钥参数为已知量,计算m个函数值,其中,m为小于或等于N的正整数;
若第1个所述函数值为第二预定值或者m个所述函数值均为所述第二预定值,更新基于所述第n随机数索引产生的第五密钥参数,并基于更新后的第五密钥参数重新计算第n个所述第四密钥参数及第n个所述第三密钥参数。
一种电子设备,包括:
计算模块,用于利用第一函数以第一密钥参数为已知量,计算得到第二密钥参数;
第一发送模块,用于向响应端发送携带有所述第二密钥参数的密钥申请;
第一接收模块,用于接收所述响应端基于所述第二密钥参数返回的第三密钥参数;
生成模块,用于基于所述第三密钥参数及所述第一密钥参数,生成私钥。
一种电子设备,包括:
第二接收模块,用于接收请求端发动的密钥申请,其中,所述密钥申请携带有第二密钥参数,其中,所述第二密钥参数为所述请求端利用第一函数以第一密钥参数为已知量生成的;
第二生成模块,用于基于所述第二密钥参数,生成第三密钥参数;
第二发送模块,用于将所述第三密钥参数发送给所述请求端,其中,所述第三密钥参数和所述第一密钥参数,共同用于供所述请求端生成私钥。
本发明实施例提供的技术方案,首先由第一密钥参数生成第二密钥参数,发送携带有第二密钥参数的密钥申请;响应端拿到密钥申请之后,基于密钥申请生成的是第三密钥参数,而非直接生成私钥,而私钥的生成由请求端基于第一密钥参数和第三密钥参数自行生成;如此,响应端无需托管请求端的私钥,在网络中也没有传输私钥,减少了私钥在托管和传输过程中的泄露现象,减少了因为泄露导致的安全性问题。
附图说明
图1为本发明实施例提供的第一种密钥生成方法的流程示意图;
图2为本发明实施例提供的第二种密钥生成方法的流程示意图;
图3为本发明实施例提供的第三种密钥生成方法的流程示意图;
图4为本发明实施例提供的第四种密钥生成方法的流程示意图;
图5为本发明实施例提供的第三密钥参数的生成示意图;
图6为本发明实施例提供的第一种电子设备的结构示意图;
图7为本发明实施例提供的第二种电子设备的结构示意图;
图8为本发明实施例提供的第五种密钥生成方法的流程示意图。
具体实施方式
以下结合说明书附图及具体实施例对本发明的技术方案做进一步的详细阐述。
如图1所示,本实施例提供一种密钥生成方法,包括:
步骤S110:利用第一函数以第一密钥参数为已知量,计算得到第二密钥参数;
步骤S120:向响应端发送携带有所述第二密钥参数的密钥申请;
步骤S130:接收所述响应端基于所述第二密钥参数返回的第三密钥参数;
步骤S140:基于所述第三密钥参数及所述第一密钥参数,生成私钥。
本实施例提供的密钥生成方法,应用于请求端,该请求端可为各种类型的电子设备,该电子设备包括终端、服务器或者通信网元等。
请求端可以请求分配用于后续信息确保通信安全的密钥对。该密钥对包括仅供请求端自行使用的私钥,以及公开在网络中的公钥。
在本实施例中,为了减少私钥托管或者私钥传输导致的安全性问题,步骤 S120中发送携带的是第二密钥参数的密钥申请;响应端基于第二密钥参数推导出第三密钥参数,而第三密钥参数并非是直接推导出的私钥,而请求端在拿到所述第三密钥参数之后,不会直接将所述第三密钥参数当做私钥使用额,若是会进一步基于推导第二密钥参数的第一密钥参数和所述第三密钥参数自行生成所述私钥。如此,私钥是由请求端自行生成,并没有在网络中,也没有保管在响应端,相当于响应端不用托管请求端生成的私钥,在网络中也没有直接传输私钥,故减少私钥传输和私钥托管导致的安全性问题,提升了私钥的安全性,从而提升了使用私钥加密数据的安全性。
在一些实施例中,所述步骤S110可包括:
利用单向函数以所述第一密钥参数为已知量,计算得到所述第二密钥参数。
为了防止第二密钥参数和第一函数都在网络中进行了传输,被非法端获取到了之后,基于第二密钥参数和第一函数自行推导出第一密钥参数,再通过拦截第三密钥参数推导出请求端的私钥的现象,在本实施例中,所述第一函数为单向函数。
单向函数又称之为单射函数,单向函数具有如下特点:
对于每一个输入,函数值都容易计算(多项式时间),但是给出一个随机输入的函数值,算出原始输入却比较困难(无法在多项式时间内使用确定性图灵机计算)。如此,即便非法端拿到了第二密钥参数和所述单向函数,推导出所述第一密钥参数的难度也是非常大的,如此,大大增加了第一密钥参数被破解的难度,降低了私钥被泄露的风险,提升了私钥的安全性。
进一步地,所述步骤S120可包括:向所述响应端发送携带有所述第二密钥参数及请求申请的密钥对数量N,N为正整数;
所述步骤S130可包括:接收所述响应端基于所述第二密钥参数返回的N 个所述第三密钥参数;
所述步骤S140可包括:基于N个所述第三密钥参数,生成N个私钥。
在本实施例中,一个所述密钥申请可以申请多对密钥,而一个所述第二密钥参数可以共同用于这N对密钥的生成参数。例如,若N为等于或小于2的正整数时,则一个密钥申请和一个第二密钥参数就可以用于至少不少于2个密钥对的生成。
请求端若请求了N个密钥对,则会收到N个第三密钥参数,基于一个第三密钥参数就可以生成一个私钥,如此,基于N个第三密钥参数就会生成N个私钥。
请求端根据自身的需求可以设置所述N的数值,具体的设置方法包括但不限于:从人机交互接口接收所述N;根据业务类型的种类数确定所述N;根据应用场景的个数确定所述N。例如,在支付场景、在社交场景可以使用不同的密钥对,则可以2个密钥对。
在一些实施例中,所述方法还包括:
步骤S131:接收所述响应端基于所述第二密钥参数返回的第四密钥参数,其中,所述第四密钥参数与请求端的标识,共同用于生成与所述私钥对应的公钥。
在一些实施例中,所述第四密钥参数可为与所述第三密钥参数一同接收的,也可以是分别接收的。
在一些实施例中,若所述N=1,则步骤S131中请求端会收到一个第四密钥参数;若N等于或大于2,则步骤S131中请求端会收到一个以上的第四密钥参数。
在另一些实施例中,不管N为1或大于1的正整数,请求端都仅会收到一个第四密钥参数,基于该第四密钥参数推导出一个公钥,该公钥可与2个或2 个以上的私钥组成密钥对。
在收到所述第四密钥参数以后,可以基于所述第四密钥参数推导出公钥。
在另一些实施例中,所述公钥可以直接由所述响应端进行推导,此时,所述请求端直接接收所述响应端基于所述密钥申请下发的所述公钥。如此,请求端就不用再自行生成公钥了。
在另外一些实施例中,如图3所示,所述方法还包括:
步骤S150:验证所述私钥和所述公钥之间的对应关系;
步骤S160:若通过所述验证,应用所述私钥和所述公钥形成的非对称加密对。
在请求端分别获得公钥和私钥之后,需要进行公钥和私钥的验证,减少请求端和/或响应端在密钥生成过程中的错误导致的生成的密钥对无法使用的现象。这种无法使用的现象包括但不限于:利用私钥加密的内容,无法利用公钥进行解密,和/或,利用公钥加密的内容无法利用私钥进行解密。
如此,在本实施例中应用所述非对称加密对之前,会验证所述私钥和公钥的验证关系。
具体例如,所述步骤S150可包括:
利用私钥生成验证参数;
将所述验证参数,与利用第四密钥参数生成的公钥进行比对;
若所述验证采参数与所述公钥一致,可认为所述私钥和所述公钥之间的对应关系通过验证,否则不通过验证。
总之在本实施例中,通过私钥和公钥之间的对应关系的验证,可以减少非对称加密对中密钥的不对称性等异常现象,确保非对称加密对的正常使用。
在一些实施例中,所述方法还包括:
确定随机生成的所述第一密钥参数是否第一预定值;
若所述第一密钥参数为第一预定值,重新计算所述第一密钥参数。
所述第一密钥参数可是采用各种方式生成的,在本实施例中,所述第一密钥参数是随机生成的,由于是随机生成的,则第一密钥参数的随机性大,被按照一定规律破解的可能性低,确保了第一密钥参数的安全性。
但是在一些情况下,随机生成的第一密钥参数可能是一些特定值,而这些特定值可能会使得最终的私钥过于简单。故在本实施例中将设置一个或多个第一预定值,这些第一预定值可为导致私钥过于简单或者过于容易破解的经验值。具体如,所述第一预定值包括但不限于0。例如,多第一预定值为0,则在第一密钥参数为0时,重新生成第一密钥参数,直到生成不是0的第一密钥参数。
在一些实施例中,所述申请端的标识信息、所述第二密钥参数及第四密钥参数中的部分或全部公开在网络中,具体如,将所述标识信息、所述第二密钥参数及所述第四密钥参数的部分或全部写入到区块链中,供任意用户查询。该区块链可为公共链或者联盟链等。
如图4所示,本实施例提供一种密钥生成方法,包括:
步骤S210:接收请求端发动的密钥申请,其中,所述密钥申请携带有第二密钥参数,其中,所述第二密钥参数为所述请求端利用第一函数以第一密钥参数为已知量生成的;
步骤S220:基于所述第二密钥参数,生成第三密钥参数;
步骤S230:将所述第三密钥参数发送给所述请求端,其中,所述第三密钥参数和所述第一密钥参数,共同用于供所述请求端生成私钥。
在本实施例中提供的密钥生成方法可应用于响应端,该响应端包括但不限于密钥生成中心(Key Generation Centre)。
响应端会从请求端接收到密钥申请,在本申请实施例中,密钥申请携带的是第二密钥参数。
在拿到第二密钥参数之后,响应端根据第二密钥参数生成第三密钥参数,而非直接是私钥。第三密钥参数用于请求端自行根据生成第二密钥参数的第一密钥参数共同推导出私钥。如此,响应端不用管理请求端的私钥,也不用将私钥通过网络传输给请求端,减少了托管和传输私钥导致的私钥泄露现象,提升了私钥的安全性。
在一些实施例中,所述密钥申请还携带了密钥对数量N;
所述步骤S220可包括:
基于所述第二密钥参数,生成N个所述第三密钥参数,其中,一个所述第三密钥参数,用于供请求端自动生成一个所述私钥。
所述密钥申请可以携带有密钥对数量字段,或者不携带有密钥对数量字段,若未携带有密钥对数量字段,则响应端默认请求端请求生成一个密钥对。若密钥申请携带有密钥对数量字段,则响应端会根据所述密钥对数量字段携带的N 的数值N生成对应对数的密钥对。
若请求生成N给密钥对,则响应端会生成N个第三密钥参数,一个第三密钥参数可用于一个私钥的生成,如此,实现了请求端通过一个密钥申请和一个第二密钥参数就可以一次性申请到N个密钥对。
进一步地,如图5所示,所述步骤S220可包括:
步骤S221:随机选择随机数的种子索引;
步骤S222:在生成第n个所述第二密钥参数时,基于所述种子索引及n确定第n个随机数索引,n为小于或等于N的正整数;
步骤S223:基于所述第n随机数索引,确定第n个第四密钥参数,其中,所述第四密钥参数与请求端的标识,共同用于生成与所述私钥对应的公钥;
步骤S224:基于所述第n个所述第四密钥参数,确定所述第三密钥参数。
在本实施例中,随机选择随机数的种子索引,该种子索引指向了一个随机数。例如,在响应端中存储有一个随机数列表,该随机数列表中包含有多个随机数,这些随机数的索引不同。在本申请中在接收到密钥申请之后,先随机选择一个随机数的索引,该索引作为种子索引。该种子索引可以作为N个密钥对中生成第1个密钥对所对应随机数的索引,也可以不作为第1个密钥对的所对应随机数的索引。
在步骤S220中可以根据各种算法,基于种子索引推导出对应密钥对所对应随机数的索引。例如,假设种子索引为CLAIndex;则第n个随机数索引可为:CLAIndex+n或者,CLAIndex-n。当然以上加减法是运算第n随机数索引的举例,具体实现方式可以有多种,不局限于上述任意一种。总之,以种子索引和n为已知量,可以通过查表或函数运算关系等方式得到各个密钥对的随机索引。基于该随机索引查找到对应的密钥对的随机数。
在基于随机索引查找到随机数之后,基于随机数会生成可用于公钥生成的第四密钥参数,然后基于对应的第四密钥参数会生成对应的第三密钥参数。
进一步地,所述方法还包括:
基于第二函数以所述第n个所述第四密钥参数为已知量,计算m个函数值,其中,m为小于或等于N的正整数;
若第1个所述函数值为第二预定值或者m个所述函数值均为所述第二预定值,更新基于所述第n随机数索引产生的第五密钥参数,并基于更新后的第五密钥参数重新计算第n个所述第四密钥参数及第n个所述第三密钥参数。
在一些实施例中,为了减少密钥参数为特定值导致的私钥的泄露,会确定第二函数以第n个所述第密钥参数为已知量进行函数值的计算,若有一个或多个函数值为第二预定值,而该函数值是用于第三密钥参数的生成的,则此时会重新更新第n随机数索引。
进一步地,所述方法还包括:
公开发布所述请求段的所述第四密钥参数。
在推导出第四密钥参数之后,会将第四密钥参数公开在网络中,其他节点接收到第四密钥参数及公开的函数关系是可以推导出公钥的。
在另一些实施例中,由于公钥本身就需要公开在网络中,所述响应端也可以直接推导出公钥,直接公开公钥即可。
如图6所示,本实施例还提供一种电子设备,包括:
计算模块110,用于利用第一函数以第一密钥参数为已知量,计算得到第二密钥参数;
第一发送模块120,用于向响应端发送携带有所述第二密钥参数的密钥申请;
第一接收模块130,用于接收所述响应端基于所述第二密钥参数返回的第三密钥参数;
生成模块140,用于基于所述第三密钥参数及所述第一密钥参数,生成私钥。
本实施例所述电子设备即对应于前述的请求端。
在一些实施例中,所述计算模块110、第一发送模块120、第一接收模块 130及生成模块140可为程序模块,所述程序模块被处理器执行之后,能够实现前述任意模块的功能。
在另一些实施例中,所述计算模块110、第一发送模块120、第一接收模块 130及生成模块140可为软硬结合模块,所述软硬结合模块包括但不限于各种可编程阵列;所述可编程阵列包括但不限于复杂可编程阵列或现场可编程阵列。
在还有一些实施例中,所述计算模块110、第一发送模块120、第一接收模块130及生成模块140可为纯硬件模块;所述纯硬件模块包括但不限于专用集成电路。
在一些实施例中,所述计算模块110,具体用于利用单向函数以所述第一密钥参数为已知量,计算得到所述第二密钥参数。
在一些实施例中,所述第一发送模块120,具体用于向所述响应端发送携带有所述第二密钥参数及请求申请的密钥对数量N,N为正整数;
所述第一接收模块130,具体用于接收所述响应端基于所述第二密钥参数返回的N个所述第三密钥参数;
所述第一生成模块140,具体用于基于N个所述第三密钥参数,生成N个私钥。
在一些实施例中,所述第一接收模块130,还用于接收所述响应端基于所述第二密钥参数返回的第四密钥参数,其中,所述第四密钥参数与请求端的标识,共同用于生成与所述私钥对应的公钥。
在另一些实施例中,所述电子设备还包括:
验证模块,用于验证所述私钥和所述公钥之间的对应关系;
应用模块,用于若通过所述验证,应用所述私钥和所述公钥形成的非对称加密对。
在还有一些实施例中,所述电子设备还包括:
确定模块,用于确定随机生成的所述第一密钥参数是否第一预定值;
所述计算模块110,还用于若所述第一密钥参数为第一预定值,重新计算所述第一密钥参数。
如图7所示,本实施例还提供一种电子设备,包括:
第二接收模块210,用于接收请求端发动的密钥申请,其中,所述密钥申请携带有第二密钥参数,其中,所述第二密钥参数为所述请求端利用第一函数以第一密钥参数为已知量生成的;
第二生成模块220,用于基于所述第二密钥参数,生成第三密钥参数;
第二发送模块230,用于将所述第三密钥参数发送给所述请求端,其中,所述第三密钥参数和所述第一密钥参数,共同用于供所述请求端生成私钥。
在一些实施例中,所述第二接收模块210、第二生成模块220及第二发送模块230可为程序模块,所述程序模块被处理器执行之后,能够实现前述任意模块的功能。
在另一些实施例中,所述第二接收模块210、第二生成模块220及第二发送模块230可为软硬结合模块,所述软硬结合模块包括但不限于各种可编程阵列;所述可编程阵列包括但不限于复杂可编程阵列或现场可编程阵列。
在还有一些实施例中,所述第二接收模块210、第二生成模块220及第二发送模块230可为纯硬件模块;所述纯硬件模块包括但不限于专用集成电路。
在一些实施例中,所述密钥申请还携带了密钥对数量N;
所述第二生成模块220,具体用于基于所述第二密钥参数,生成N个所述第三密钥参数,其中,一个所述第三密钥参数,用于供请求端自动生成一个所述私钥。
在一些实施例中,所述第二生成模块220,具体用于随机选择随机数的种子索引;在生成第n个所述第二密钥参数时,基于所述种子索引及n确定第n 个随机数索引,n为小于或等于N的正整数;基于所述第n随机数索引,确定第n个第四密钥参数,其中,所述第四密钥参数与请求端的标识,共同用于生成与所述私钥对应的公钥;基于所述第n个所述第四密钥参数,确定所述第三密钥参数。
在还有一些实施例中,所述电子设备还包括:
函数模块,用于基于第二函数以所述第n个所述第四密钥参数为已知量,计算m个函数值,其中,m为小于或等于N的正整数;
更新模块,用于若第1个所述函数值为第二预定值或者m个所述函数值均为所述第二预定值,更新基于所述第n随机数索引产生的第五密钥参数,并基于更新后的第五密钥参数重新计算第n个所述第四密钥参数及第n个所述第三密钥参数。
以下结合上述任意实施例提供一个个具体示例:
本示例提供一种密钥生成方法,以下首先介绍几个相关定义:
1.椭圆曲线密码系统(Elliptic Curve Cryptosystems,简称ECC)
2.以素数p为模的整数域,记为Fp,
3.Fp上的椭圆曲线,设点(x,y)为满足以下条件的集合:
其中(xy)、a、b属于Fp,{O}为无穷远处点,记为Ep(a,b),简称为E。
4.椭圆曲线的基点G:随着参数a、b、p确定,这条曲线Ep(a,b)就定下来了。先随机产生0到p-1间的整数作为基点x坐标,计算y的结果再开方就得出基点y坐标。
5.有限域椭圆曲线点的阶n:如果椭圆曲线上一点P,存在最小的正整数 n使得数乘nP={O},则将n称为P的阶,若n不存在,则P是无限阶的
6.Zn:整数模n的剩余类环。
在方案中主要涉及四个算法:系统初始化算法,部分私钥生成算法,私钥生成算法,公钥生成算法。如图8所示,本示例提供的方法可包括如下步骤:
1.系统初始化:
设E:y2=x3+ax+b为有限域Fq上的椭圆曲线,n为素数,m≥1为正整数,G是E上的一个n阶基点,h0(),h1()...hm()是一组{0,1}*→[1,n-1]的哈希 (hash)函数,并使得hi():{0,1}*→Zp。KGC随机选择m个私密值作为系统主私钥,计算系统公钥:P1=s1G,...Pm=smG。KGC保密s1,...,sm,公开系统参数为
2.部分私钥生成:
(1)标识为IDA的用户实体随机选择私密值检验若xA=0,则重新选择xA;xA为前述的第一密钥参数;(2)用户A计算XA=xAG。发送 (IDA,XA,N)至KGC,其中N表示用户本次申请的密钥对数量。XA为前述的第二密钥参数;G为前述的第一函数;(3)KGC在收到(IDA,XA,N)后,检验用户IDA和身份的合法性。(4)KGC随机选择种子密钥计算KeyDF_key=HMAC(KGC_KDF_key,IDA),KGC随机选择种子索引派生时计算CLAIndex+j,j=1,2,...,N,则yAj=HMAC(KeyDF_key,CLAIndex);yAj为前述的第五密钥参数;(5)KGC 计算:PAj=XAj+yAjG,ei=hi(IDA||PAj),i=0,1,...,m,j=1,...,N,如果e0=0或者e1,...em全为0,则重新选择yAj。最后生成用户部分私钥:zAj=e0yAj+e1s1+...+emsm(modn),回送({PAj},{zAj})至用户,并将PAj作为用户的部分公钥(对应于前述第四密钥参数)公开发布。为保证系统安全,KGC应保证对于不同的用户选择不同的yAj和不同的PAj。其中,符号||表示数据串接。zAj为前述的第三密钥参数,在本示例中又称之为部分私钥。3.私钥生成用户接收到({PAj},{zAj})后,计算ei=hi(IDAj||PAj),dAj=e0xAj+zAj(modn),4.公钥生成用户计算QAj=dAjG并验证QAj=e0PAj+e1P1+...+emPm是否成立。
若成立,则设置dAj为用户的私钥,PAj为用户的部分公钥,QAj为用户的公钥。
在本实施例中,将公开参数(IDA,XA,PAj)存到区块链上。例如,在生成QAj之前,先从区块链上获取上述公开参数。
在本申请所提供的几个实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。以上所描述的设备实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,如:多个单元或组件可以结合,或可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的各组成部分相互之间的耦合、或直接耦合、或通信连接可以是通过一些接口,设备或单元的间接耦合或通信连接,可以是电性的、机械的或其它形式的。
上述作为分离部件说明的单元可以是、或也可以不是物理上分开的,作为单元显示的部件可以是、或也可以不是物理单元,即可以位于一个地方,也可以分布到多个网络单元上;可以根据实际的需要选择其中的部分或全部单元来实现本实施例方案的目的。
另外,在本发明各实施例中的各功能单元可以全部集成在一个处理模块中,也可以是各单元分别单独作为一个单元,也可以两个或两个以上单元集成在一个单元中;上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
本申请任意实施例公开的技术特征,在不冲突的情况下,可以任意组合形成新的方法实施例或设备实施例。
本申请任意实施例公开的方法实施例,在不冲突的情况下,可以任意组合形成新的方法实施例。
本申请任意实施例公开的设备实施例,在不冲突的情况下,可以任意组合形成新的设备实施例。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:移动存储设备、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。
Claims (8)
1.一种密钥生成方法,包括:
利用第一函数以第一密钥参数为已知量,计算得到第二密钥参数;
向响应端发送携带有所述第二密钥参数及请求申请的密钥对数量N的密钥申请,N为正整数;
接收所述响应端基于所述第二密钥参数返回的N个第三密钥参数;所述第三密钥参数是由第四密钥参数确定的;其中,第n个所述第四密钥参数是基于第n个随机数索引确定的,且所述第n个随机数索引是由所述响应端在生成第n个所述第三密钥参数时基于随机选择随机数的种子索引及n确定的,且所述第四密钥参数与请求端的标识共同用于生成与私钥对应的公钥,n为小于或等于N的正整数;
基于N个所述第三密钥参数及所述第一密钥参数,生成N个私钥。
2.根据权利要求1所述的方法,其中,所述利用第一函数以第一密钥参数为已知量,计算得到第二密钥参数,包括:
利用单向函数以所述第一密钥参数为已知量,计算得到所述第二密钥参数。
3.根据权利要求1至2任一项所述的方法,其中,所述方法还包括:
接收所述响应端基于所述第二密钥参数返回的第四密钥参数,其中,所述第四密钥参数与请求端的标识,共同用于生成与所述私钥对应的公钥。
4.根据权利要求3所述的方法,其中,所述方法还包括:
验证所述私钥和所述公钥之间的对应关系;
若通过所述验证,应用所述私钥和所述公钥形成的非对称加密对。
5.根据权利要求1至2任一项所述的方法,其中,所述方法还包括:
确定随机生成的所述第一密钥参数是否为第一预定值;
若所述第一密钥参数为第一预定值,重新计算所述第一密钥参数。
6.一种密钥生成方法,包括:
接收请求端发送的密钥申请,其中,所述密钥申请携带有第二密钥参数及密钥对数量N,其中,所述第二密钥参数为所述请求端利用第一函数以第一密钥参数为已知量生成的;N为正整数;
基于所述第二密钥参数,生成N个第三密钥参数;
将所述第三密钥参数发送给所述请求端,其中,一个所述第三密钥参数和所述第一密钥参数,共同用于供所述请求端生成私钥;
其中,所述基于所述第二密钥参数,生成N个所述第三密钥参数,包括:
随机选择随机数的种子索引;
在生成第n个所述第三密钥参数时,基于所述种子索引及n确定第n个随机数索引,n为小于或等于N的正整数;
基于所述第n个随机数索引,确定第n个第四密钥参数,其中,所述第四密钥参数与请求端的标识,共同用于生成与所述私钥对应的公钥;
基于所述第n个所述第四密钥参数,确定所述第三密钥参数。
7.一种电子设备,包括:
计算模块,用于利用第一函数以第一密钥参数为已知量,计算得到第二密钥参数;
第一发送模块,用于向响应端发送携带有所述第二密钥参数及请求申请的密钥对数量N的密钥申请,N为正整数;
第一接收模块,用于接收所述响应端基于所述第二密钥参数返回的N个第三密钥参数;所述第三密钥参数是由第四密钥参数确定的;其中,第n个所述第四密钥参数是基于第n个随机数索引确定的,且所述第n个随机数索引是由所述响应端在生成第n个所述第三密钥参数时基于随机选择随机数的种子索引及n确定的,且所述第四密钥参数与请求端的标识共同用于生成与私钥对应的公钥,n为小于或等于N的正整数;
生成模块,用于基于N个所述第三密钥参数及所述第一密钥参数,生成N个私钥。
8.一种电子设备,包括:
第二接收模块,用于接收请求端发送的密钥申请,其中,所述密钥申请携带有第二密钥参数及密钥对数量N,其中,所述第二密钥参数为所述请求端利用第一函数以第一密钥参数为已知量生成的;N为正整数;
第二生成模块,用于基于所述第二密钥参数,生成N个第三密钥参数;
第二发送模块,用于将所述第三密钥参数发送给所述请求端,其中,一个所述第三密钥参数和所述第一密钥参数,共同用于供所述请求端生成私钥;
其中,所述第二生成模块,具体用于随机选择随机数的种子索引;在生成第n个所述第三密钥参数时,基于所述种子索引及n确定第n个随机数索引,n为小于或等于N的正整数;基于所述第n个随机数索引,确定第n个第四密钥参数,其中,所述第四密钥参数与请求端的标识,共同用于生成与所述私钥对应的公钥;基于所述第n个所述第四密钥参数,确定所述第三密钥参数。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910473424.2A CN110445602B (zh) | 2019-05-31 | 2019-05-31 | 密钥生成方法及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910473424.2A CN110445602B (zh) | 2019-05-31 | 2019-05-31 | 密钥生成方法及电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110445602A CN110445602A (zh) | 2019-11-12 |
CN110445602B true CN110445602B (zh) | 2021-09-14 |
Family
ID=68428774
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910473424.2A Active CN110445602B (zh) | 2019-05-31 | 2019-05-31 | 密钥生成方法及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110445602B (zh) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103795534A (zh) * | 2012-10-31 | 2014-05-14 | 三星Sds株式会社 | 基于口令的认证方法及用于执行该方法的装置 |
CN104539423A (zh) * | 2014-12-16 | 2015-04-22 | 熊荣华 | 一种无双线性对运算的无证书公钥密码体制的实现方法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101340282B (zh) * | 2008-05-28 | 2011-05-11 | 北京易恒信认证科技有限公司 | 复合公钥的生成方法 |
JP2014175970A (ja) * | 2013-03-12 | 2014-09-22 | Fuji Xerox Co Ltd | 情報配信システム、情報処理装置及びプログラム |
-
2019
- 2019-05-31 CN CN201910473424.2A patent/CN110445602B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103795534A (zh) * | 2012-10-31 | 2014-05-14 | 三星Sds株式会社 | 基于口令的认证方法及用于执行该方法的装置 |
CN104539423A (zh) * | 2014-12-16 | 2015-04-22 | 熊荣华 | 一种无双线性对运算的无证书公钥密码体制的实现方法 |
Also Published As
Publication number | Publication date |
---|---|
CN110445602A (zh) | 2019-11-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR100715738B1 (ko) | 식별 정보를 노출하지 않고 신용을 수립하기 위한 시스템및 방법 | |
CN111989891B (zh) | 数据处理方法、相关装置及区块链系统 | |
US10846372B1 (en) | Systems and methods for trustless proof of possession and transmission of secured data | |
JP4731686B2 (ja) | 秘密鍵の妥当性および確認 | |
CN113569294B (zh) | 一种零知识证明方法及装置、电子设备、存储介质 | |
US8472621B2 (en) | Protection of a prime number generation for an RSA algorithm | |
US9882890B2 (en) | Reissue of cryptographic credentials | |
CN111131336B (zh) | 多方授权场景下的资源访问方法、装置、设备及存储介质 | |
KR102372718B1 (ko) | 발행인 익명성 인증서 시스템을 위한 분산화된 그룹 서명 방법 | |
US11416821B1 (en) | Apparatuses and methods for determining and processing dormant user data in a job resume immutable sequential listing | |
CN112118245B (zh) | 密钥管理方法、系统和设备 | |
WO2019110399A1 (en) | Two-party signature device and method | |
US11645409B2 (en) | Search and access pattern hiding verifiable searchable encryption for distributed settings with malicious servers | |
CN104012036A (zh) | 组合式数字证书 | |
CN113779606A (zh) | 一种降低隐私泄露风险的信息校验方法及系统 | |
CN111161075B (zh) | 区块链交易数据证明监管方法、系统及相关设备 | |
CN110719172A (zh) | 区块链系统中的签名方法、签名系统以及相关设备 | |
CN109302286B (zh) | 一种Fido设备密钥索引的生成方法 | |
CN114726536A (zh) | 一种时间戳生成方法、装置、电子设备及存储介质 | |
CN115913521A (zh) | 基于量子密钥进行身份认证的方法 | |
CN110266478B (zh) | 一种信息处理方法、电子设备 | |
CN115632777B (zh) | 数据处理方法及电子设备 | |
CN110445602B (zh) | 密钥生成方法及电子设备 | |
JP4772965B2 (ja) | エンティティの真正性および/またはメッセージの完全性を証明するための方法 | |
CN112003690A (zh) | 密码服务系统、方法及装置 |
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 |