层次公私钥对生成方法和装置制造方法及图纸

技术编号:19865828 阅读:14 留言:0更新日期:2018-12-22 13:45
本发明专利技术提供了一种层次公私钥对生成方法和装置,属于信息安全技术领域。本发明专利技术提供的一种层次公私钥对生成方法和装置,具体包括:将父公钥和子密钥索引顺序连接,以父链码作为哈希密钥,根据预设算法计算连接数据的哈希值,划分哈希值的低位端预设长度的数据作为子链码,划分哈希值的高位端预设长度的数据和父公钥做ECC乘法运算,如果哈希值的高位端预设长度的数据小于椭圆曲线基点的阶并且ECC乘法运算结果不是无穷远点,则将ECC乘法运算结果作为子公钥,减少了子公钥生成过程中的ECC加法运算,从而降低子公钥生成过程的计算复杂度,提高计算效率。

【技术实现步骤摘要】
层次公私钥对生成方法和装置
本专利技术涉及信息安全
,具体而言,涉及一种层次公私钥对生成方法和装置。
技术介绍
随着互联网技术的迅猛发展,网上交易变得愈发频繁,而数字货币是网络交易中电子货币形式的替代货币。为了保证数字货币流通的安全性,采用了椭圆曲线密码学,基于椭圆曲线密码学的设计使数字货币只能被真实的拥有者支付或转移。基于椭圆曲线密码学的BIP32协议提供了由父私钥、父公钥、父链码及子密钥索引生成子私钥、子公钥和子链码的方法,但是椭圆曲线的相关运算复杂度要远高于其他运算,BIP32协议在生成子公钥的过程中,涉及到多次ECC乘法、ECC加法运算,所以该协议在生成子公钥的过程中的计算复杂度较高,计算效率较低。
技术实现思路
针对上述现有技术中存在的问题,本专利技术提供了一种层次公私钥对生成方法和装置,在保持同等安全强度的条件下,可以降低生成子公钥计算的复杂度,提高计算效率。为了实现上述目的,本专利技术的技术方案如下:本专利技术技术方案一提出了一种层次公私钥对生成方法,根据父公钥、父私钥、父链码及子密钥索引生成子公钥及子链码,所述方法包括:将所述父公钥与所述子密钥索引顺序连接得到第一连接数据;以所述父链码为哈希密钥,根据预设算法计算所述第一连接数据的哈希值;对所述第一连接数据的哈希值进行划分,得到子链码和第一数据;对所述第一数据和所述父公钥进行ECC乘法运算,得到第一运算结果;如果所述第一数据小于预设椭圆曲线基点的阶并且所述第一运算结果不是无穷远点,则将所述第一运算结果作为子公钥;如果所述第一数据大于等于预设椭圆曲线基点的阶或者所述第一运算结果是无穷远点,则将所述子密钥索引递增,根据所述父公钥、所述父链码及递增后的子密钥索引重新生成子公钥和子链码。本专利技术技术方案二在技术方案一的基础上提出,所述父公钥与所述子密钥索引顺序连接得到第一连接数据的步骤之前,所述方法还包括:判断所述子密钥索引是否大于或等于预设值;如果是,提示失败;如果否,执行所述父公钥与所述子密钥索引顺序连接得到第一连接数据的步骤。本专利技术技术方案三在技术方案一的基础上提出,所述对所述第一连接数据的哈希值进行划分,得到子链码和第一数据的步骤,包括:将所述第一连接数据的哈希值的低位端预设长度的数据作为子链码;将所述第一连接数据的哈希值的高位端预设长度的数据作为第一数据;所述低位端预设长度与所述高位端预设长度之和为所述第一连接数据的哈希值的长度。本专利技术技术方案四在技术方案一的基础上提出,所述方法还包括:对所述父私钥进行高位补位,将所述补位后的父私钥与所述子密钥索引顺序连接得到第二连接数据;以所述父链码为哈希密钥,根据预设算法计算所述第二连接数据的哈希值;对所述第二连接数据的哈希值进行划分,得到子链码和第二数据;以所述椭圆曲线基点的阶为模数,对所述补位前的父私钥和所述第二数据的乘积做模运算,得到第二运算结果;如果所述第二数据小于所述椭圆曲线基点的阶并且所述第二运算结果不为0,则将所述第二运算结果作为子私钥;如果所述第二数据大于等于所述椭圆曲线基点的阶或者所述第二运算结果为0,则将所述子密钥索引递增,根据所述父私钥、所述父链码及所述递增后的子密钥索引重新生成子私钥和子链码;对所述子私钥和所述椭圆曲线的基点做ECC乘法运算,得到子公钥。本专利技术技术方案五在技术方案四的基础上提出,在所述对所述父私钥进行高位补位,将所述补位后的父私钥与所述子密钥索引顺序连接得到第二连接数据步骤之前,所述方法还包括:判断所述子密钥索引是否大于或等于预设值;如果是,执行所述对父私钥进行高位补位,将补位后的父私钥与子密钥索引顺序连接得到第二连接数据的步骤;如果否,将所述父私钥与所述椭圆曲线的基点做ECC乘法运算,将所述ECC乘法运算结果与子密钥顺序连接得到第二连接数据。本专利技术技术方案六在技术方案四的基础上提出,所述对所述第二连接数据的哈希值进行划分,得到子链码和第二数据的步骤,包括:将所述第二连接数据的哈希值的低位端预设长度的数据作为子链码;将所述第二连接数据的哈希值的高位端预设长度的数据作为第二数据;所述低位端预设长度与所述高位端预设长度之和为所述第二连接数据的哈希值的长度。本专利技术技术方案七在技术方案一的基础上提出,所述方法还包括:对所述父私钥和所述椭圆曲线的基点做ECC乘法运算,得到父公钥;将所述父公钥与所述子密钥索引顺序连接得到第三连接数据;以所述父链码为哈希密钥,根据预设算法计算所述第三连接数据的哈希值;对所述第三连接数据的哈希值进行划分,得到子链码和第三数据;对所述第三数据和所述父公钥进行ECC乘法运算,得到第三运算结果;如果所述第三数据小于所述预设椭圆曲线基点的阶并且所述第三运算结果不是无穷远点,则将所述第三运算结果作为子公钥;如果所述第三数据大于等于所述椭圆曲线基点的阶或者所述第三运算结果是无穷远点,则将所述子密钥索引递增,根据所述父公钥、所述父链码及所述递增后的子密钥索引重新生成子公钥和子链码。本专利技术技术方案八在技术方案七的基础上提出,在所述父公钥与所述子密钥索引顺序连接得到第三连接数据的步骤之前,所述方法还包括:判断所述子密钥索引是否大于或等于预设值;如果是,提示失败;如果否,执行所述父公钥与所述子密钥索引顺序连接得到第三连接数据的步骤。本专利技术技术方案九在技术方案七的基础上提出,所述对所述第三连接数据的哈希值进行划分,得到子链码和第三数据的步骤,包括:将所述第三连接数据的哈希值的低位端预设长度的数据作为子链码;将所述第三连接数据的哈希值的高位端预设长度的数据作为第三数据;所述低位端预设长度与所述高位端预设长度之和为所述第三连接数据的哈希值的长度。本专利技术技术方案十还提出了一种层次公私钥对生成装置,根据父公钥、父私钥、父链码及子密钥索引生成子公钥及子链码,所述装置包括:第一连接单元,用于第一比较单元为否时,将所述父公钥与所述子密钥索引顺序连接得到第一连接数据;第一哈希单元,用于以所述父链码为哈希密钥,根据预设算法计算所述第一连接单元得到的第一连接数据的哈希值;第一划分单元,用于划分所述第一哈希单元得到的第一拼接数据的哈希值的低位端预设长度的数据作为子链码;高位端预设长度的数据作为第一数据;所述低位端预设长度与所述高位端预设长度之和为所述第一连接数据的哈希值的长度;第一运算单元,用于对所述第一数据和父公钥做ECC乘法运算,得到第一运算结果;第一选择单元,用于所述第一数据大于等于预设椭圆曲线的基点阶或者所述第一运算结果是无穷远点时,选择第一递增单元;所述第一数据小于预设椭圆曲线的基点阶并且所述第一运算结果不是无穷远点时,选择第一密钥获取单元;第一递增单元,用于将子密钥索引递增;第一密钥获取单元,用于将第一运算结果作为子公钥。与现有技术相比,本专利技术实施例提供的层次公私钥对生成方法和装置,将父公钥和子密钥索引顺序连接,使父链码作为哈希密钥,根据预设算法计算连接数据的哈希值,划分哈希值的低位端预设长度的数据作为子链码,划分哈希值的高位端预设长度的数据和父公钥做ECC乘法运算,如果哈希值的高位端预设长度的数据小于椭圆曲线基点的阶并且ECC乘法运算结果不是无穷远点,则将运算结果作为子公钥,减少了子公钥生成过程中的ECC加法运算,从而降低生成子公钥的计算复杂度,提高计算效率。为使本专利技术的本文档来自技高网...

【技术保护点】
1.一种层次公私钥对生成方法,其特征在于,根据父公钥、父私钥、父链码及子密钥索引生成子公钥及子链码,所述方法包括:将所述父公钥与所述子密钥索引顺序连接得到第一连接数据;以所述父链码为哈希密钥,根据预设算法计算所述第一连接数据的哈希值;对所述第一连接数据的哈希值进行划分,得到子链码和第一数据;对所述第一数据和所述父公钥进行ECC乘法运算,得到第一运算结果;如果所述第一数据小于预设椭圆曲线基点的阶并且所述第一运算结果不是无穷远点,则将所述第一运算结果作为子公钥;如果所述第一数据大于等于预设椭圆曲线基点的阶或者所述第一运算结果是无穷远点,则将所述子密钥索引递增,根据所述父公钥、所述父链码及递增后的子密钥索引重新生成子公钥和子链码。

【技术特征摘要】
1.一种层次公私钥对生成方法,其特征在于,根据父公钥、父私钥、父链码及子密钥索引生成子公钥及子链码,所述方法包括:将所述父公钥与所述子密钥索引顺序连接得到第一连接数据;以所述父链码为哈希密钥,根据预设算法计算所述第一连接数据的哈希值;对所述第一连接数据的哈希值进行划分,得到子链码和第一数据;对所述第一数据和所述父公钥进行ECC乘法运算,得到第一运算结果;如果所述第一数据小于预设椭圆曲线基点的阶并且所述第一运算结果不是无穷远点,则将所述第一运算结果作为子公钥;如果所述第一数据大于等于预设椭圆曲线基点的阶或者所述第一运算结果是无穷远点,则将所述子密钥索引递增,根据所述父公钥、所述父链码及递增后的子密钥索引重新生成子公钥和子链码。2.根据权利要求1所述的方法,其特征在于,在所述父公钥与所述子密钥索引顺序连接得到第一连接数据的步骤之前,所述方法还包括:判断所述子密钥索引是否大于或等于预设值;如果是,提示失败;如果否,执行所述父公钥与所述子密钥索引顺序连接得到第一连接数据的步骤。3.根据权利要求1所述的方法,其特征在于,所述对所述第一连接数据的哈希值进行划分,得到子链码和第一数据的步骤,包括:将所述第一连接数据的哈希值的低位端预设长度的数据作为子链码;将所述第一连接数据的哈希值的高位端预设长度的数据作为第一数据;所述低位端预设长度与所述高位端预设长度之和为所述第一连接数据的哈希值的长度。4.根据权利要求1所述的方法,其特征在于,所述方法还包括:对所述父私钥进行高位补位,将所述补位后的父私钥与所述子密钥索引顺序连接得到第二连接数据;以所述父链码为哈希密钥,根据预设算法计算所述第二连接数据的哈希值;对所述第二连接数据的哈希值进行划分,得到子链码和第二数据;以所述椭圆曲线基点的阶为模数,对所述补位前的父私钥和所述第二数据的乘积做模运算,得到第二运算结果;如果所述第二数据小于所述椭圆曲线基点的阶并且所述第二运算结果不为0,则将所述第二运算结果作为子私钥;如果所述第二数据大于等于所述椭圆曲线基点的阶或者所述第二运算结果为0,则将所述子密钥索引递增,根据所述父私钥、所述父链码及所述递增后的子密钥索引重新生成子私钥和子链码;对所述子私钥和所述椭圆曲线的基点做ECC乘法运算,得到子公钥。5.根据权利要求4所述的方法,其特征在于,在所述对所述父私钥进行高位补位,将所述补位后的父私钥与所述子密钥索引顺序连接得到第二连接数据步骤之前,所述方法还包括:判断所述子密钥索引是否大于或等于预设值;如果是,执行所述对父私钥进行高位补位,将补位后的父私钥与子密钥索引顺序连接得到第二连接数据的步骤;如果否,将所述父私钥与所述椭圆曲线的基点做ECC乘法运算,将所述ECC乘法运算结果与子密钥索引顺序连接得到第二连接数据...

【专利技术属性】
技术研发人员:张宇周海京张哲李杰
申请(专利权)人:数字钱包北京科技有限公司
类型:发明
国别省市:北京,11

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

1