私钥的生成方法、装置、电子设备及计算机可读存储介质与流程

文档序号:25229393发布日期:2021-05-28 14:35阅读:75来源:国知局
私钥的生成方法、装置、电子设备及计算机可读存储介质与流程

本申请涉及密码学技术领域,具体而言,本申请涉及一种私钥的生成方法、装置、电子设备及计算机可读存储介质。



背景技术:

当前的助记词方案通常根据随机数生成一组助记词,再根据助记词生成随机种子和公私钥对。

由于可以通过助记词计算出账户私钥,因此资产安全性很大程度依赖于助记词的秘密性,一旦用户钱包中助记词泄露,则会导致整体数字资产的安全性降低。



技术实现要素:

本申请的目的旨在至少能解决上述的技术缺陷之一。本申请所采用的技术方案如下:

第一方面,本申请实施例提供了一种私钥的生成方法,该方法包括:

确定初始助记词表;

基于预设的混淆算法,并基于预设的助记词密码对初始助记词表进行混淆,得到目标助记词表;

基于目标助记词表生成私钥。

可选地,确定初始助记词表,包括:

基于bip39协议生成候选助记词表;

基于助记词密码以及候选助记词表的个数,从候选助记词表中确定初始助记词表。

可选地,基于预设的混淆算法,并基于预设的助记词密码对初始助记词表进行混淆,得到目标助记词表,包括:

将初始助记词表中的各助记词分别与助记词密码进行拼接得到拼接结果;

将拼接结果的哈希值与助记词密码的哈希值进行模运算得到模运算结果;

将排序后的模运算结果作为目标助记词表。

可选地,基于目标助记词表生成私钥,包括:

基于目标助记词表确定助记词字符串;

基于助记词字符串以及助记词密码生成私钥。

可选地,基于目标助记词表确定助记词字符串,包括:

基于预设的随机数生成算法生成随机数;

基于目标助记词表以及随机数确定助记词字符串。

可选地,基于助记词字符串以及助记词密码生成私钥,包括:

基于助记词密码确定盐值;

基于盐值以及助记词字符串生成随机种子;

基于随机种子确定私钥。

可选地,上述方法还包括:

基于椭圆曲线算法,通过私钥生成公钥。

第二方面,本申请实施例提供了一种私钥的生成装置,该装置包括:

初始助记词表模块,用于确定初始助记词表;

目标助记词表模块,用于基于预设的混淆算法,并基于预设的助记词密码对初始助记词表进行混淆,得到目标助记词表;

私钥生成模块,用于基于目标助记词表生成私钥。

可选地,初始助记词表模块具体用于:

基于bip39协议生成候选助记词表;

基于助记词密码以及候选助记词表的个数,从候选助记词表中确定初始助记词表。

可选地,目标助记词表模块具体用于:

将初始助记词表中的各助记词分别与助记词密码进行拼接得到拼接结果;

将拼接结果的哈希值与助记词密码的哈希值进行模运算得到模运算结果;

将排序后的模运算结果作为目标助记词表。

可选地,私钥生成模块具体用于:

基于目标助记词表确定助记词字符串;

基于助记词字符串以及助记词密码生成私钥。

可选地,私钥生成模块在基于目标助记词表确定助记词字符串时,具体用于:

基于预设的随机数生成算法生成随机数;

基于目标助记词表以及随机数确定助记词字符串。

可选地,私钥生成模块在基于助记词字符串以及助记词密码生成私钥时,具体用于:

基于助记词密码确定盐值;

基于盐值以及助记词字符串生成随机种子;

基于随机种子确定私钥。

可选地,上述装置还包括:

公钥生成模块,用于基于椭圆曲线算法,通过私钥生成公钥。

第三方面,本申请实施例提供了一种电子设备,该电子设备包括:处理器和存储器;

存储器,用于存储操作指令;

处理器,用于通过调用操作指令,执行如本申请的第一方面的任一实施方式中所示的私钥的生成方法。

第四方面,本申请实施例提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现本申请的第一方面的任一实施方式中所示的私钥的生成方法。

本申请实施例提供的技术方案带来的有益效果是:

本申请实施例提供的方案,通过确定初始助记词表,基于预设的混淆算法,并基于预设的助记词密码对初始助记词表进行混淆,得到目标助记词表,从而基于目标助记词表生成私钥。本方案中,由于是基于混淆后的助记词来生成私钥,避免了助记词泄露时引发的私钥泄露,有利于保证数字资产的安全性。

附图说明

为了更清楚地说明本申请实施例中的技术方案,下面将对本申请实施例描述中所需要使用的附图作简单地介绍。

图1为本申请实施例提供的一种私钥的生成方法的流程示意图;

图2为本申请实施例提供的一种私钥的生成装置的结构示意图;

图3为本申请实施例提供的一种电子设备的结构示意图。

具体实施方式

下面详细描述本申请的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本申请,而不能解释为对本发明的限制。

本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本申请的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。应该理解,当我们称元件被“连接”或“耦接”到另一元件时,它可以直接连接或耦接到其他元件,或者也可以存在中间元件。此外,这里使用的“连接”或“耦接”可以包括无线连接或无线耦接。这里使用的措辞“和/或”包括一个或更多个相关联的列出项的全部或任一单元和全部组合。

为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。

下面以具体地实施例对本申请的技术方案以及本申请的技术方案如何解决上述技术问题进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。下面将结合附图,对本申请的实施例进行描述。

图1示出了本申请实施例提供的一种私钥的生成方法的流程示意图,如图1所示,该方法主要可以包括:

步骤s110:确定初始助记词表;

步骤s120:基于预设的混淆算法,并基于预设的助记词密码对初始助记词表进行混淆,得到目标助记词表;

步骤s130:基于目标助记词表生成私钥。

本申请实施例中,可以确定初始助记词表,而后基于预设的混淆算法,并基于预设的助记词密码对初始助记词表进行混淆,得到目标助记词表。

由于目标助记词表被进行了混淆,能够避免因助记词泄露导致的私钥泄露,保证私钥的安全性。

本申请实施例中,助记词密码可以用于对助记词表的混淆,作为一个示例,助记词密码可以为数字和字母组成的8位字符串。

本申请实施例提供的方法,通过确定初始助记词表,基于预设的混淆算法,并基于预设的助记词密码对初始助记词表进行混淆,得到目标助记词表,从而基于目标助记词表生成私钥。本方案中,由于是基于混淆后的助记词来生成私钥,避免了助记词泄露时引发的私钥泄露,有利于保证数字资产的安全性。

本申请实施例的一种可选方式中,确定初始助记词表,包括:

基于bip39协议生成候选助记词表;

基于助记词密码以及候选助记词表的个数,从候选助记词表中确定初始助记词表。

本申请实施例中,可以根据bip39协议中生成多个对应的候选助记词表,助记词可以为中文助记词以及英文助记词等。

本申请实施例中,在确定候选助记词表之后,可以基于助记词密码以及候选助记词表的个数,从候选助记词表中确定初始助记词表。

作为一个示例,根据bip39协议,生成t个的助记词列表t={t1t2,…,ti},i的取值范围为[0,t-1]。对助记词密码m和候选助记词表的个数t取模,如:mmodt=i,从而选取初始助记词表ti。

本申请实施例的一种可选方式中,基于预设的混淆算法,并基于预设的助记词密码对初始助记词表进行混淆,得到目标助记词表,包括:

将初始助记词表中的各助记词分别与助记词密码进行拼接得到拼接结果;

将拼接结果的哈希值与助记词密码的哈希值进行模运算得到模运算结果;

将排序后的模运算结果作为目标助记词表。

作为一个示例,本申请实施例中生成目标助记词表可以如下:

对助记词密码m进行hash运算,生成hash值hm。

初始助记词表记为[0,1,2,…,2047],将初始助记词表[0,1,2,…,2047]按元素和助记词密码m进行拼接,得到拼接结果[0m,1m,2m,…,2047m],再将拼接结果逐个进行hash运算,计算出对应的hash值[h0,h1,h2,…,h2047]。

拼接结果的hash值[h0,h1,h2,…,h2047]按元素逐个与助记词密码m的hash值hm进行模运算,即:[h0,h1,h2,…,h2047]modhm,将得到模运算结果按升序排序,从而得到目标助记词表。

本申请实施例的一种可选方式中,基于目标助记词表生成私钥,包括:

基于目标助记词表确定助记词字符串;

基于助记词字符串以及助记词密码生成私钥。

本申请实施例中,可以根据目标助记词表确定助记词字符串。

具体而言,基于目标助记词表确定助记词字符串,包括:

基于预设的随机数生成算法生成随机数;

基于目标助记词表以及随机数确定助记词字符串。

本申请实施例中,可以基于预设的随机数生成算法生成固定字符的长度的随机数,作为一个示例,生成随机数的过程具体如下:

(1)输入时间,并指定随机数长度为128位;

(2)将时间作为随机源,通过keccak256算法对其结果进行hash运算,获得类型为uint256的random数据s;

(3)获得random数据s后,针对随机数取值范围最大数进行模运算,smod2128=k,获得最终128位的随机数k。

作为一个示例,基于目标助记词表以及随机数确定助记词字符串的过程具体如下:

(1)将128位随机数k通过sha256哈希算法,并取哈希运算后的前4位二进制数;

(2)128位的随机数和上述前4位二进制数进行拼接,生成新的序列;

(3)把生成的新的序列分割为十二等份,得到12个11位二进制数;

(4)将得到的12个11位二进制数转换为方案5中生成的新助记词表中对应的助记词。

(5)生成混淆后的助记词,即12个助记词字符串。

本申请实施例的一种可选方式中,基于助记词字符串以及助记词密码生成私钥,包括:

基于助记词密码确定盐值;

基于盐值以及助记词字符串生成随机种子;

基于随机种子确定私钥。

本申请实施例中,加密用的盐值可以由常量字符串与助记词密码组成。

作为一个示例,基于助记词字符串以及助记词密码生成私钥的过程具体如下:

将助记词字符串和助记词密码输入keystretchingfunction(密钥延伸函数),通过pbkdf2函数使用hmac_hash算法,循环2048次推算得到512位的安全性很高的随机种子sd;将512位的随机种子通过sha512算法,生成安全性更高的512位随机数dk;取512位随机数dk的前256位作为账户主私钥;

本申请实施例的一种可选方式中,上述方法还包括:

基于椭圆曲线算法,通过私钥生成公钥。

本申请实施例中,在确定出私钥之后,可以基于椭圆曲线算法,通过私钥生成公钥,从而得到公私钥对。

基于与图1中所示的方法相同的原理,图2示出了本申请实施例提供的一种私钥的生成装置的结构示意图,如图2所示,该私钥的生成装置20可以包括:

初始助记词表模块210,用于确定初始助记词表;

目标助记词表模块220,用于基于预设的混淆算法,并基于预设的助记词密码对初始助记词表进行混淆,得到目标助记词表;

私钥生成模块230,用于基于目标助记词表生成私钥。

本申请实施例提供的装置,通过确定初始助记词表,基于预设的混淆算法,并基于预设的助记词密码对初始助记词表进行混淆,得到目标助记词表,从而基于目标助记词表生成私钥。本方案中,由于是基于混淆后的助记词来生成私钥,避免了助记词泄露时引发的私钥泄露,有利于保证数字资产的安全性。

可选地,初始助记词表模块具体用于:

基于bip39协议生成候选助记词表;

基于助记词密码以及候选助记词表的个数,从候选助记词表中确定初始助记词表。

可选地,目标助记词表模块具体用于:

将初始助记词表中的各助记词分别与助记词密码进行拼接得到拼接结果;

将拼接结果的哈希值与助记词密码的哈希值进行模运算得到模运算结果;

将排序后的模运算结果作为目标助记词表。

可选地,私钥生成模块具体用于:

基于目标助记词表确定助记词字符串;

基于助记词字符串以及助记词密码生成私钥。

可选地,私钥生成模块在基于目标助记词表确定助记词字符串时,具体用于:

基于预设的随机数生成算法生成随机数;

基于目标助记词表以及随机数确定助记词字符串。

可选地,私钥生成模块在基于助记词字符串以及助记词密码生成私钥时,具体用于:

基于助记词密码确定盐值;

基于盐值以及助记词字符串生成随机种子;

基于随机种子确定私钥。

可选地,上述装置还包括:

公钥生成模块,用于基于椭圆曲线算法,通过私钥生成公钥。

可以理解的是,本实施例中的私钥的生成装置的上述各模块具有实现图1中所示的实施例中的私钥的生成方法相应步骤的功能。该功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。该硬件或软件包括一个或多个与上述功能相对应的模块。上述模块可以是软件和/或硬件,上述各模块可以单独实现,也可以多个模块集成实现。对于上述私钥的生成装置的各模块的功能描述具体可以参见图1中所示实施例中的私钥的生成方法的对应描述,在此不再赘述。

本申请实施例提供了一种电子设备,包括处理器和存储器;

存储器,用于存储操作指令;

处理器,用于通过调用操作指令,执行本申请任一实施方式中所提供的私钥的生成方法。

作为一个示例,图3示出了本申请实施例所适用的一种电子设备的结构示意图,如图3所示,该电子设备2000包括:处理器2001和存储器2003。其中,处理器2001和存储器2003相连,如通过总线2002相连。可选的,电子设备2000还可以包括收发器2004。需要说明的是,实际应用中收发器2004不限于一个,该电子设备2000的结构并不构成对本申请实施例的限定。

其中,处理器2001应用于本申请实施例中,用于实现上述方法实施例所示的方法。收发器2004可以包括接收机和发射机,收发器2004应用于本申请实施例中,用于执行时实现本申请实施例的电子设备与其他设备通信的功能。

处理器2001可以是cpu(centralprocessingunit,中央处理器),通用处理器,dsp(digitalsignalprocessor,数据信号处理器),asic(applicationspecificintegratedcircuit,专用集成电路),fpga(fieldprogrammablegatearray,现场可编程门阵列)或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本申请公开内容所描述的各种示例性的逻辑方框,模块和电路。处理器2001也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,dsp和微处理器的组合等。

总线2002可包括一通路,在上述组件之间传送信息。总线2002可以是pci(peripheralcomponentinterconnect,外设部件互连标准)总线或eisa(extendedindustrystandardarchitecture,扩展工业标准结构)总线等。总线2002可以分为地址总线、数据总线、控制总线等。为便于表示,图3中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。

存储器2003可以是rom(readonlymemory,只读存储器)或可存储静态信息和指令的其他类型的静态存储设备,ram(randomaccessmemory,随机存取存储器)或者可存储信息和指令的其他类型的动态存储设备,也可以是eeprom(electricallyerasableprogrammablereadonlymemory,电可擦可编程只读存储器)、cd-rom(compactdiscreadonlymemory,只读光盘)或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。

可选的,存储器2003用于存储执行本申请方案的应用程序代码,并由处理器2001来控制执行。处理器2001用于执行存储器2003中存储的应用程序代码,以实现本申请任一实施方式中所提供的私钥的生成方法。

本申请实施例提供的电子设备,适用于上述方法任一实施例,在此不再赘述。

本申请实施例提供了一种电子设备,与现有技术相比,通过确定初始助记词表,基于预设的混淆算法,并基于预设的助记词密码对初始助记词表进行混淆,得到目标助记词表,从而基于目标助记词表生成私钥。本方案中,由于是基于混淆后的助记词来生成私钥,避免了助记词泄露时引发的私钥泄露,有利于保证数字资产的安全性。

本申请实施例提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该程序被处理器执行时实现上述方法实施例所示的私钥的生成方法。

本申请实施例提供的计算机可读存储介质,适用于上述方法任一实施例,在此不再赘述。

本申请实施例提供了一种计算机可读存储介质,与现有技术相比,通过确定初始助记词表,基于预设的混淆算法,并基于预设的助记词密码对初始助记词表进行混淆,得到目标助记词表,从而基于目标助记词表生成私钥。本方案中,由于是基于混淆后的助记词来生成私钥,避免了助记词泄露时引发的私钥泄露,有利于保证数字资产的安全性。

应该理解的是,虽然附图的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,其可以以其他的顺序执行。而且,附图的流程图中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,其执行顺序也不必然是依次进行,而是可以与其他步骤或者其他步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。

以上仅是本发明的部分实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1