CN109687975B - 一种硬件钱包可脱机进行初始化的实现方法及装置 - Google Patents
一种硬件钱包可脱机进行初始化的实现方法及装置 Download PDFInfo
- Publication number
- CN109687975B CN109687975B CN201811630994.XA CN201811630994A CN109687975B CN 109687975 B CN109687975 B CN 109687975B CN 201811630994 A CN201811630994 A CN 201811630994A CN 109687975 B CN109687975 B CN 109687975B
- Authority
- CN
- China
- Prior art keywords
- user
- mnemonic
- module
- hardware wallet
- length
- 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/0894—Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
- H04L9/0897—Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage involving additional devices, e.g. trusted platform module [TPM], smartcard or USB
-
- 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
- H04L9/0869—Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/71—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
- G06F21/76—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information in application-specific integrated circuits [ASIC] or field-programmable devices, e.g. field-programmable gate arrays [FPGA] or programmable logic devices [PLD]
-
- 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/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
- H04L9/0643—Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
-
- 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
-
- 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
- H04L9/0863—Generation of secret information including derivation or calculation of cryptographic keys or passwords involving passwords or one-time passwords
-
- 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/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3226—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using a predetermined code, e.g. password, passphrase or PIN
-
- 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/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3236—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/56—Financial cryptography, e.g. electronic payment or e-cash
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Power Engineering (AREA)
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
Abstract
本发明公开一种硬件钱包可脱机进行初始化的实现方法及装置,该方法包括:当硬件钱包接收到创建硬件钱的操作触发信息时,根据用户输入的助记短语长度生成密钥种子,根据助记短语长度和密钥种子生成多个助记单词标识,根据助记单词标识在预设字典中查找对应的助记单词,将助记单词依次拼接得到助记短语,根据密钥种子生成主密钥并保存;将硬件钱包状态设置为已初始化;当接收到恢复硬件钱包的操作触发信息时,根据用户输入的单词字母在预设字典中查找对应的助记单词,根据选择信息的长度获取密钥种子,根据密钥种子生成主密钥并进行验证,如验证通过则保存主密钥,并将硬件钱包状态设置为已初始化。本发明方案使用硬件钱包过程更加安全可靠。
Description
技术领域
本发明涉及电子产品领域,尤其涉及一种硬件钱包可脱机进行初始化的实现方法及装置。
背景技术
硬件钱包是指将数字资产私钥单独储存在一个芯片中,与互联网隔离,即插即用。现有硬件钱包必须使用有线方式与上位机进行连接,例如USB连接线。
硬件钱包使用有线方式与上位机连接时在进行初始化过程中,需要使用者在上位机中输入机密信息,一旦上位机被恶意软件所控制,将能够截取到使用者的隐私信息,进而偷盗使用者的数字资产,造成损失。
发明内容
本发明的目的是为了克服现有技术的不足,提供一种硬件钱包可脱机进行初始化的实现方法及装置。
本发明提供了一种硬件钱包可脱机进行初始化的实现方法,包括:
步骤S1:当硬件钱包接收到用户的操作触发信息时,判断所述操作触发信息的类型,如为创建硬件钱包则执行步骤S2,如为恢复硬件钱包则执行步骤S4;
步骤S2:所述硬件钱包提示用户输入助记短语长度,根据接收到的所述助记短语长度生成密钥种子,根据所述助记短语长度和所述密钥种子生成多个助记单词标识,依次根据不同的助记单词标识在预设字典中查找对应的助记单词,并将查找到的助记单词依次拼接得到助记短语,根据所述密钥种子生成主密钥并保存;
步骤S3:所述硬件钱包将硬件钱包状态设置为已初始化,进行正常工作;
步骤S4:所述硬件钱包提示用户输入单词字母,根据接收到的单词字母在预设字典中查找对应的助记单词并显示所述查找到的助记单词,提示用户进行选择;
步骤S5:当所述硬件钱包接收到用户的选择信息时,所述硬件钱包判断用户输入的选择信息是否为完整的助记短语,是则执行步骤S6,否则返回步骤S4;
步骤S6:所述硬件钱包根据用户输入的选择信息的长度获取密钥种子,根据所述密钥种子生成主密钥并进行验证,如验证通过则保存所述主密钥,并将硬件钱包状态设置为已初始化,进行正常工作。
进一步地,所述步骤S1之前包括:所述硬件钱包上电,判断硬件钱包是否进行过初始化,是则所述硬件钱包进行正常工作,否则执行步骤S1。
进一步地,所述判断硬件钱包是否进行过初始化,具体为:所述硬件钱包根据所述硬件钱包状态判断是否进行过初始化,如硬件钱包状态为已初始化则所述硬件钱包进行正常工作,否则执行步骤S1。
进一步地,所述步骤S1具体为:
所述硬件钱包显示初始化交互选项界面,等待并接收用户通过人机交互模块发送的操作触发信息,判断接收到的操作触发信息的类型,如为创建硬件钱包则执行步骤S2,如为恢复硬件钱包则执行步骤S4。
进一步地,在所述步骤S1与所述步骤S2之间包括:所述硬件钱包通知用户设置身份认证方式,如设置成功则执行步骤S2,否则报错;
在所述步骤S1与所述步骤S4之间包括:所述硬件钱包通知用户设置身份认证方式,如设置成功则执行步骤S4,否则报错。
进一步地,所述硬件钱包通知用户设置身份认证方式,具体为:所述硬件钱包通知用户设置PIN码。
进一步地,所述硬件钱包通知用户设置PIN码,包括:
步骤A1:所述硬件钱包提示用户设置PIN码,当接收到用户输入的PIN码时判断PIN码是否合法,是则执行步骤A2,否则返回步骤A1;
步骤A2:所述硬件钱包判断用户输入合法PIN码的次数,如为两次则执行步骤A3,如为一次则更新用户输入合法PIN码的次数,返回步骤A1,如为三次则报错;
步骤A3:所述硬件钱包判断两次接收到的合法PIN码是否一致,是则用户身份验证通过,否则返回步骤S1。
进一步地,所述判断PIN码是否合法具体为:判断所述PIN码的长度是否在预设范围内,是则合法,否则不合法。
进一步地,在步骤A1判断为否返回步骤A1之前还包括:硬件钱包判断设置PIN码错误次数是否达到预定次数,是则报错,返回步骤S1,否则更新所述设置PIN码错误次数,返回步骤A1。
进一步地,所述步骤S2包括:
步骤S2-1:所述硬件钱包提示用户输入助记短语长度,当接收到用户输入的助记短语长度时,根据助记短语长度计算密钥种子长度和第一校验值,根据所述密钥种子长度生成对应长度的密钥种子;
步骤S2-2:所述硬件钱包清空安全存储区中的数据,根据所述密钥种子通过第二预设算法生成主密钥,并将所述主密钥保存到安全存储区中;
步骤S2-3:所述硬件钱包使用第一预设算法对密钥种子进行计算得到第一计算结果,从第一计算结果的起始位置开始截取第一校验值长度的数据得到第一校验值,将第一校验值拼接在密钥种子之后得到助记短语标识;在助记短语标识中依次截取预设长度的数据段得到多个助记单词标识;根据助记单词标识在预设字典中查找对应的助记单词,并将查找到的助记单词顺序拼接得到助记短语。
进一步地,所述步骤S2-1中的所述根据助记短语长度计算密钥种子长度和第一校验值,具体为:所述硬件钱包将助记短语长度乘以第二预设值生成助记短语标识长度;根据预设比值从助记短语标识长度中获取密钥种子长度和第一校验值长度;
所述根据密钥种子长度生成对应长度的密钥种子,具体为:所述硬件钱包使用真随机数生成器生成长度为密钥种子长度的随机数作为密钥种子。
进一步地,所述步骤S2-2中的所述根据所述密钥种子通过第二预设算法生成主密钥,具体为:根据第二预设算法对密钥种子进行哈希运算得到哈希值;将得到的所述哈希值的高位端预定长度的数据作为主密钥。
进一步地,在所述步骤S2与步骤S3之间包括:
步骤P1:所述硬件钱包根据所述助记短语和所述预设字典生成考试词语并显示,提示用户进行选择;
步骤P2:当所述硬件钱包接收到用户的选择信息时,根据所述助记单词判断用户输入的选择信息是否正确,是则执行步骤S3,否则返回步骤P1。
进一步地,所述步骤P1具体为:所述硬件钱包通过人机交互模块的显示屏显示助记短语,根据主语短语和预设字典生成考试词语并在显示屏上显示,然后通过显示屏提示用户进行选择。
进一步地,所述步骤P2判断为否还包括:所述硬件钱包复位用户选择次数;
所述步骤P2与步骤S3之间还包括:所述硬件钱包判断所述用户选择次数是否到达预设次数,是则执行步骤S3,否则更新所述用户选择次数,返回步骤 P1。
进一步地,所述步骤S4具体为:所述硬件钱包通过人机交互模块的显示屏提示用户输入单词字母,当接收到用户通过人机交互模块的按键输入的字母时,根据所述字母在预设字典中查询对应的助记单词;所述硬件钱包通过人机交互模块的显示屏显示查询到的助记单词并在显示屏上显示提示用户进行选择的信息。
进一步地,所述步骤S4之前包括:所述硬件钱包提示用户输入助记短语长度,当接收到助记短语长度时执行步骤S4;
所述步骤S5具体为:当所述硬件钱包接收到用户的选择信息时,所述硬件钱包判断用户输入的选择信息的长度是否等于所述助记短语长度,是则执行步骤S6,否则返回步骤S4。
进一步地,所述步骤S6包括:
步骤S6-1:所述硬件钱包清空安全存储区中的数据,在助记短语预设字典中查找与各个助记单词对应的助记单词标识,将查找到的助记单词标识顺序拼接得到助记短语标识;
步骤S6-2:所述硬件钱包根据助记短语标识的长度计算密钥种子长度,从助记短语标识中顺序截取密钥种子长度的数据得到密钥种子,将助记短语标识中除密钥种子之外的数据作为第二校验值;
步骤S6-3:所述硬件钱包使用第一预设算法对密钥种子进行运算得到第一计算结果,从第一计算结果的开始位置截取长度与第二校验值相同的数据得到第一比较值,判断第二校验值与第一比较值是否匹配,是则执行步骤S6-4,否则报错;
步骤S6-4:所述硬件钱包根据密钥种子通过第二预设算法生成主密钥并保存到安全存储区中,将硬件钱包状态设置为已初始化,通过显示屏通知用户初始化成功,进行正常工作。
本发明又提供了一种硬件钱包可脱机进行初始化的实现装置,包括:
第一接收模块,用于接收用户的操作触发信息;
第一判断模块,用于判断所述第一接收模块接收到的操作触发信息的类型,如为创建硬件钱包则触发提示生成模块,如为恢复硬件钱包则触发提示查找模块;
所述提示生成模块,用于提示用户输入助记短语长度,根据接收到的所述助记短语长度生成密钥种子,根据所述助记短语长度和所述密钥种子生成多个助记单词标识,依次根据不同的助记单词标识在预设字典中查找对应的助记单词,并将查找到的助记单词依次拼接得到助记短语,根据所述密钥种子生成主密钥并保存,触发第一设置模块;
所述第一设置模块,用于将硬件钱包状态设置为已初始化,硬件钱包进行正常工作;
所述提示查找模块,用于提示用户输入单词字母,根据接收到的单词字母在预设字典中查找对应的助记单词并显示所述查找到的助记单词,提示用户进行选择,并接收用户的选择信息;
第二判断模块,用于判断所述提示查找模块接收到的选择信息是否为完整的助记短语,是则触发获取验证模块,否则触发所述提示查找模块;
所述获取验证模块,用于根据用户输入的选择信息的长度获取密钥种子,根据所述密钥种子生成主密钥并进行验证;
保存设置模块,用于在所述获取验证模块验证通过后保存所述主密钥,并将硬件钱包状态设置为已初始化,硬件钱包进行正常工作。
进一步地,所述装置还包括:
第三判断模块,用于在所述硬件钱包上电后判断硬件钱包是否进行过初始化,是则所述硬件钱包进行正常工作,否则触发所述第一接收模块。
进一步地,所述第三判断模块具体用于在所述硬件钱包上电后根据所述硬件钱包状态判断是否进行过初始化,如硬件钱包状态为已初始化则所述硬件钱包进行正常工作,否则触发所述第一接收模块。
进一步地,所述第一接收模块,具体用于显示初始化交互选项界面,等待并接收用户通过人机交互模块发送的操作触发信息。
进一步地,所述装置还包括:
第二设置模块,用于在所述第一判断模块判断为是时通知用户设置身份认证方式,如设置成功则触发所述提示生成模块;还用于在所述第一判断模块判断为否时通知用户设置身份认证方式,如设置成功则触发所述提示查找模块,设置不成功则报错。
进一步地,所述第二设置模块具体用于在所述第一判断模块判断为是时通知用户设置PIN码,如设置成功则触发所述提示生成模块;还用于在所述第一判断模块判断为否时通知用户设置PIN码,如设置成功则触发所述提示查找模块,设置不成功则报错。
进一步地,所述第二设置模块包括:
第一提示接收单元,用于提示用户设置PIN码,并接收用户输入的PIN码;
第一判断单元,用于当所述提示接收单元接收到用户输入的PIN码时判断 PIN码是否合法,是则触发第二判断单元,否则触发所述提示接收单元;
所述第二判断单元,用于判断用户输入合法PIN码的次数,如为两次则触发第三判断单元,如为一次则更新用户输入合法PIN码的次数,触发所述提示判断单元,如为三次则报错;
所述第三判断单元,用于判断两次接收到的合法PIN码是否一致,是则用户身份验证通过,触发所述提示生成模块或所述提示查找模块,否则触发所述提示接收单元。
进一步地,所述第一判断单元具体用于当所述提示接收单元接收到用户输入的PIN码时判断所述PIN码的长度是否在预设范围内,是则合法,触发第二判断单元,否则不合法,触发所述提示接收单元。
进一步地,所述第二设置模块还包括:
第四判断单元,用于在第一判断单元判断为否时判断设置PIN码错误次数是否达到预定次数,是则报错,触发所述第一接收模块,否则更新所述设置PIN 码错误次数,触发所述第一提示接收单元。
进一步地,所述提示生成模块包括:
第二提示接收单元,用于提示用户输入助记短语长度,并接收用户输入的助记短语长度;
计算生成单元,用于根据所述第二提示接收单元接收到的助记短语长度计算密钥种子长度和第一校验值,根据所述密钥种子长度生成对应长度的密钥种子;
生成保存单元,用于清空安全存储区中的数据,根据所述计算生成单元生成的密钥种子通过第二预设算法生成主密钥,并将所述主密钥保存到安全存储区中;
计算拼接单元,用于使用第一预设算法对密钥种子进行计算得到第一计算结果,从第一计算结果的起始位置开始截取第一校验值长度的数据得到第一校验值,将第一校验值拼接在密钥种子之后得到助记短语标识;在助记短语标识中依次截取预设长度的数据段得到多个助记单词标识;根据助记单词标识在预设字典中查找对应的助记单词,并将查找到的助记单词顺序拼接得到助记短语,触发所述第一设置模块。
进一步地,所述计算生成单元具体用于将助记短语长度乘以第二预设值生成助记短语标识长度;根据预设比值从助记短语标识长度中获取密钥种子长度和第一校验值长度;使用真随机数生成器生成长度为密钥种子长度的随机数作为密钥种子。
进一步地,所述生成保存单元具体用于清空安全存储区中的数据,根据第二预设算法对所述计算生成单元生成的密钥种子进行哈希运算得到哈希值;将得到的所述哈希值的高位端预定长度的数据作为主密钥,并将所述主密钥保存到安全存储区中。
进一步地,所述装置还包括:
第一生成模块,用于根据所述提示生成模块得到的助记短语和所述预设字典生成考试词语;
显示提示模块,用于显示所述第一生成模块生成的考试词语,提示用户进行选择并接收用户的选择信息;
第四判断模块,用于根据所述助记单词判断所述显示提示模块接收到的用户输入的选择信息是否正确,是则触发所述第一设置模块,否则触发所述第一生成模块。
进一步地,所述显示提示模块具体用于通过人机交互模块的显示屏显示助记短语,在显示屏上显示所述第一生成模块生成的考试词语,通过显示屏提示用户进行选择并接收用户的选择信息。
进一步地,所述装置还包括:
复位模块,用于当所述第四判断模块判断为否时复位用户选择次数;
判断更新模块,用于在所述第四判断模块判断为是时判断所述用户选择次数是否到达预设次数,是则触发所述第一设置模块,否则更新所述用户选择次数,触发所述第一生成模块。
进一步地,所述提示查找模块具体用于通过人机交互模块的显示屏提示用户输入单词字母,当接收到用户通过人机交互模块的按键输入的字母时,根据所述字母在预设字典中查询对应的助记单词;通过人机交互模块的显示屏显示查询到的助记单词并在显示屏上显示提示用户进行选择的信息,并接收用户的选择信息。
进一步地,所述装置还包括:
提示接收模块,用于在所述第一判断模块判断为恢复硬件钱包时提示用户输入助记短语长度,当接收到助记短语长度时触发所述提示查找模块;
所述第二判断模块具体用于判断所述提示查找模块的选择信息的长度是否等于所述助记短语长度,是则触发获取验证模块,否则触发所述提示查找模块。
进一步地,所述获取验证模块包括:
查找拼接单元,用于清空安全存储区中的数据,在助记短语预设字典中查找与各个助记单词对应的助记单词标识,将查找到的助记单词标识顺序拼接得到助记短语标识;
计算截取单元,用于根据助记短语标识的长度计算密钥种子长度,从助记短语标识中顺序截取密钥种子长度的数据得到密钥种子,将助记短语标识中除密钥种子之外的数据作为第二校验值;
计算判断单元,用于使用第一预设算法对密钥种子进行运算得到第一计算结果,从第一计算结果的开始位置截取长度与第二校验值相同的数据得到第一比较值,判断第二校验值与第一比较值是否匹配,是则触发所述保存设置模块具体,否则报错;
所述保存设置模块具体用于根据密钥种子通过第二预设算法生成主密钥并保存到安全存储区中,将硬件钱包状态设置为已初始化,通过显示屏通知用户初始化成功,硬件钱包进行正常工作。
本发明与现有技术相比,具有以下优点:
本发明技术方案实现了硬件钱包在脱机状态下同样能够进行初始化操作,使用硬件钱包过程更加安全可靠。
附图说明
图1为本发明实施例一提供的一种硬件钱包可脱机进行初始化的实现方法流程图;
图2为本发明实施例二提供的一种硬件钱包可脱机进行初始化的实现方法流程图;
图3为本发明实施例三提供的一种硬件钱包可脱机进行初始化的实现装置方框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例一
本发明实施例一提供了一种硬件钱包可脱机进行初始化的实现方法,如图1 所示,包括:
步骤S1:当硬件钱包接收到用户的操作触发信息时,判断操作触发信息的类型,如为创建硬件钱包则执行步骤S2,如为恢复硬件钱包则执行步骤S4;
优选的,在步骤S1之前包括:硬件钱包上电,判断硬件钱包是否进行过初始化,是则执行步骤S1,否则硬件钱包进行正常工作;
其中,判断硬件钱包是否进行过初始化,具体为:硬件钱包根据硬件钱包状态判断是否进行过初始化,如硬件钱包状态为已初始化则硬件钱包进行正常工作,否则执行步骤S1;
步骤S2:硬件钱包提示用户输入助记短语长度,根据接收到的助记短语长度生成密钥种子,根据助记短语长度和密钥种子生成多个助记单词标识,依次根据不同的助记单词标识在预设字典中查找对应的助记单词,并将查找到的助记单词依次拼接得到助记短语,根据密钥种子生成主密钥并保存;
步骤S3:硬件钱包将硬件钱包状态设置为已初始化,进行正常工作;
步骤S4:硬件钱包提示用户输入单词字母,根据接收到的单词字母在预设字典中查找对应的助记单词并显示查找到的助记单词,提示用户进行选择;
步骤S5:当硬件钱包接收到用户的选择信息时,硬件钱包判断用户输入的选择信息是否为完整的助记短语,是则执行步骤S6,否则返回步骤S4;
步骤S6:硬件钱包根据用户输入的选择信息的长度获取密钥种子,根据密钥种子生成主密钥并进行验证,如验证通过则保存主密钥,并将硬件钱包状态设置为已初始化,进行正常工作。
在本实施例中,步骤S6中如对主密钥进行验证未通过则报错。
可选的,在本实施例中,步骤S1与步骤S2之间包括:硬件钱包通知用户设置身份认证方式,如设置成功则执行步骤S2,否则报错;
在步骤S1与步骤S4之间包括:硬件钱包通知用户设置身份认证方式,如设置成功则执行步骤S4,否则报错。
本实施例中的身份认证方式包括但不限于PIN码、指纹、虹膜等;具体的以PIN码为例进行详述;
具体的,硬件钱包通知用户设置PIN码,包括:
步骤A1:硬件钱包提示用户设置PIN码,当接收到用户输入的PIN码时判断PIN码是否合法,是则执行步骤A2,否则返回步骤A1;
可选的,判断PIN码是否合法具体为:判断PIN码的长度是否在预设范围内,是则合法,否则不合法;
在步骤A1判断为否返回步骤A1之前还包括:硬件钱包判断设置PIN码错误次数是否达到预定次数,是则报错,返回步骤S1,否则更新设置PIN码错误次数,返回步骤A1;
步骤A2:硬件钱包判断用户输入合法PIN码的次数,如为两次则执行步骤 A3,如为一次则更新用户输入合法PIN码的次数,返回步骤A1,如为三次则报错;
步骤A3:硬件钱包判断两次接收到的合法PIN码是否一致,是则用户身份验证通过,否则返回步骤S1。
实施例二
本发明实施例二提供了一种硬件钱包可脱机进行初始化的实现方法,如图2 所示,包括:
步骤101:硬件钱包上电,判断是否进行过初始化,是则硬件钱包进行正常工作,否则执行步骤102;
可选的,在本实施例中,硬件钱包根据硬件钱包状态判断是否进行过初始化,如硬件钱包状态为已初始化则执行步骤124,否则执行步骤102;
步骤102:硬件钱包显示初始化交互选项界面,等待并接收用户通过人机交互模块发送的操作触发信息,判断接收到的操作触发信息的类型,如为创建硬件钱包则执行步骤103,如为恢复硬件钱包则执行步骤113;
在本实施例中,人机交互模块包括按键和显示屏;硬件钱包通过显示屏显示初始化交互选项界面,然后用户通过按键和显示屏输入操作触发信息;
步骤103:硬件钱包提示用户设置PIN码,当接收到用户输入的PIN码时判断PIN码是否合法,是则执行步骤104,否则返回步骤103;
具体的,步骤103包括:硬件钱包通过人机交互模块的显示屏提示用户设置PIN码,当接收到用户通过人机交互模块的按键输入的PIN码时,判断PIN 码是否合法,是则执行步骤104,否则返回步骤103;
在本实施例中,判断PIN码是否合法具体为:判断PIN码的长度是否在预设范围内,是则合法,否则不合法;
优选的,在步骤103判断为否返回步骤103之前还包括:硬件钱包判断设置PIN码错误次数是否达到预定次数,是则通过显示屏显示错误信息,返回步骤102,否则更新设置PIN码错误次数,返回步骤103;
例如更新设置PIN码错误次数可以为更新设置PIN码错误次数自加1;
步骤104:硬件钱包判断用户输入合法PIN码的次数,如为两次则执行步骤 105,如为一次则更新用户输入合法PIN码的次数,返回步骤103,如为三次则报错;
具体的,本实施例中的报错可以为通过显示屏显示错误信息;例如更新用户输入合法PIN码的次数可以为更新用户输入合法PIN码的次数自加1;
步骤105:硬件钱包判断两次接收到的合法PIN码是否一致,是则执行步骤 106,否则返回步骤102;
步骤106:硬件钱包提示用户输入助记短语长度,当接收到用户输入的助记短语长度时,根据助记短语长度计算密钥种子长度和第一校验值长度,根据密钥种子长度生成对应长度的密钥种子;
优选的,本实施例中的密钥种子为一随机数;硬件钱包通过人机交互模块中的显示屏提示用户输入助记短语长度;
可选的,助记短语长度具体为助记短语中包含的助记单词的个数,例如可以为12或者15或者18或者21或者24;
具体的,硬件钱包将助记短语长度乘以第二预设值生成助记短语标识长度;根据预设比值从助记短语标识长度中获取密钥种子长度和第一校验值长度;
在本实施例中吗,第二预设值为助记短语中每个助记单词在预设字典中助记单词标识的比特数;例如第二预设值为11bit,助记短语长度为24,则得到的助记短语标识长度为264bit;
由于助记短语标识长度=密钥种子长度+第一校验值长度,且密钥种子长度与第一校验值长度的预设比值为32,根据上述关系,可以根据助记短语标识长度计算出密钥种子长度和第一校验值长度;本实施例中,密钥种子长度为 256bit,第一校验值长度为8bit;
随后硬件钱包使用真随机数生成器生成长度为密钥种子长度(即256bit) 的随机数作为密钥种子;
步骤107:硬件钱包清空安全存储区中的数据,根据密钥种子通过第二预设算法生成主密钥,并将主密钥保存到安全存储区中;
具体地,步骤107中的根据密钥种子通过第二预设算法生成主密钥具体为:根据第二预设算法对密钥种子进行哈希运算得到哈希值;将得到的哈希值的高位端预定长度的数据作为主密钥;
本实施例中,第二预设算法优选为HMAC-SHA512算法。
本实施例中,高位端预定长度的数据优选为高256比特的数据,低位端预定长度的数据优选为低256比特的数据。
步骤108:硬件钱包使用第一预设算法对密钥种子进行计算得到第一计算结果,从第一计算结果的起始位置开始截取第一校验值长度的数据得到第一校验值,将第一校验值拼接在密钥种子之后得到助记短语标识;在助记短语标识中依次截取预设长度的数据段得到多个助记单词标识;根据助记单词标识在预设字典中查找对应的助记单词,并将查找到的助记单词顺序拼接得到助记短语;
例如,本实施例中的预设字典里有2048个单词;
优选的,创建硬件钱包指令中还包括:语言类型;语言类型具体包括:简体中文、繁体中文和英语;
可选的,在本实施例,步骤107与步骤108的顺序可调换;
步骤109:硬件钱包显示助记短语,根据助记短语和预设字典生成考试词语并显示,提示用户进行选择;
在本实施例中,步骤109具体为:硬件钱包通过人机交互模块的显示屏显示助记短语,根据主语短语和预设字典生成考试词语并在显示屏上显示,然后通过显示屏提示用户进行选择;
步骤110:当硬件钱包接收到用户的选择信息时,根据助记单词判断用户输入的选择信息是否正确,是则执行步骤111,否则复位用户选择次数,返回步骤 109;
例如,本实施例中的用户选择次数初始值为0;
步骤111:硬件钱包判断用户选择次数是否达到预设次数,是则执行步骤 112,否则更新用户选择次数,返回步骤109;
例如,本实施例中的更新用户选择次数可以为用户选择次数自加1;
步骤112:硬件钱包将硬件钱包状态设置为已初始化,通过显示屏通知用户初始化成功,进行正常工作;
步骤113:硬件钱包提示用户设置PIN码,当接收到用户输入的PIN码时判断PIN码是否合法,是则执行步骤114,否则返回步骤113;
具体的,步骤113包括:硬件钱包通过人机交互模块的显示屏提示用户设置PIN码,当接收到用户通过人机交互模块的按键输入的PIN码时,判断PIN 码是否合法,是则执行步骤114,否则返回步骤113;
在本实施例中,判断PIN码是否合法具体为:判断PIN码的长度是否在预设范围内,是则合法,否则不合法;
优选的,在步骤113判断为否返回步骤113之前还包括:硬件钱包判断设置PIN码错误次数是否达到预定次数,是则通过显示屏显示错误信息,返回步骤102,否则更新设置PIN码错误次数,返回步骤113;
例如更新设置PIN码错误次数可以为更新设置PIN码错误次数自加1;
步骤114:硬件钱包判断用户输入合法PIN码的次数,如为两次则执行步骤 115,如为一次则更新用户输入合法PIN码的次数,返回步骤113,如为三次则报错;
具体的,本实施例中的报错可以为通过显示屏显示错误信息;例如更新用户输入合法PIN码的次数可以为更新用户输入合法PIN码的次数自加1;
步骤115:硬件钱包判断两次输入的合法PIN码是否一致,是则执行步骤 116,否则返回步骤101;
步骤116:硬件钱包提示用户输入助记短语长度,当接收到助记短语长度时执行步骤117;
在本实施例中,步骤116具体为:硬件钱包通过人机交互模块的显示屏提示用户输入助记短语长度;
步骤117:硬件钱包提示用户输入单词字母,当接收到单词字母时,根据单词字母在预设字典中查询对应的助记单词;
在本实施例中,步骤117具体为:硬件钱包通过人机交互模块的显示屏提示用户输入单词字母,当接收到用户通过人机交互模块的按键输入的字母时,根据单词字母在预设字典中查询对应的助记单词;
步骤118:硬件钱包显示查询到的助记单词并提示用户进行选择;
具体的,在本实施例中,硬件钱包通过人机交互模块的显示屏显示查询到的助记单词并在显示屏上显示提示用户进行选择的信息;
步骤119:当硬件钱包接收到用户的选择信息时根据助记短语长度判断接收到的选择信息是否为完整的助记短语,是则执行步骤120,否则返回步骤117;
具体的,硬件钱包判断接收到的选择信息的长度是否等于助记短语长度,是则为完成的助记短语长度短语,否则为不完整的助记短语;
步骤120:硬件钱包清空安全存储区中的数据,在助记短语预设字典中查找与各个助记单词对应的助记单词标识,将查找到的助记单词标识顺序拼接得到助记短语标识;
步骤121:硬件钱包根据助记短语标识的长度计算密钥种子长度,从助记短语标识中顺序截取密钥种子长度的数据得到密钥种子,将助记短语标识中除密钥种子之外的数据作为第二校验值;
步骤122:硬件钱包使用第一预设算法对密钥种子进行运算得到第一计算结果,从第一计算结果的开始位置截取长度与第二校验值相同的数据得到第一比较值,判断第二校验值与第一比较值是否匹配,是则执行步骤123,否则报错;
步骤123:硬件钱包根据密钥种子通过第二预设算法生成主密钥并保存到安全存储区中,将硬件钱包状态设置为已初始化,通过显示屏通知用户初始化成功,进行正常工作。
实施例三
本发明实施例三提供一种硬件钱包可脱机进行初始化的实现装置,如图3 所示,包括:
第一接收模块301,用于接收用户的操作触发信息;
第一判断模块302,用于判断第一接收模块301接收到的操作触发信息的类型,如为创建硬件钱包则触发提示生成模块303,如为恢复硬件钱包则触发提示查找模块305;
提示生成模块303,用于提示用户输入助记短语长度,根据接收到的助记短语长度生成密钥种子,根据助记短语长度和密钥种子生成多个助记单词标识,依次根据不同的助记单词标识在预设字典中查找对应的助记单词,并将查找到的助记单词依次拼接得到助记短语,根据密钥种子生成主密钥并保存,触发第一设置模块304;
第一设置模块304,用于将硬件钱包状态设置为已初始化,硬件钱包进行正常工作;
提示查找模块305,用于提示用户输入单词字母,根据接收到的单词字母在预设字典中查找对应的助记单词并显示查找到的助记单词,提示用户进行选择,并接收用户的选择信息;
第二判断模块306,用于判断提示查找模块接收到的选择信息是否为完整的助记短语,是则触发获取验证模块307,否则触发提示查找模块305;
获取验证模块307,用于根据用户输入的选择信息的长度获取密钥种子,根据密钥种子生成主密钥并进行验证;
保存设置模块308,用于在获取验证模块307验证通过后保存主密钥,并将硬件钱包状态设置为已初始化,硬件钱包进行正常工作。
可选的,本实施例的装置还包括:
第三判断模块,用于在硬件钱包上电后判断硬件钱包是否进行过初始化,是则硬件钱包进行正常工作,否则触发第一接收模块301。
其中,第三判断模块具体用于在硬件钱包上电后根据硬件钱包状态判断是否进行过初始化,如硬件钱包状态为已初始化则硬件钱包进行正常工作,否则触发第一接收模块301。
在本实施例中,第一接收模块301,具体用于显示初始化交互选项界面,等待并接收用户通过人机交互模块发送的操作触发信息。
可选的,本实施例的装置还包括:
第二设置模块,用于在第一判断模块302判断为是时通知用户设置身份认证方式,如设置成功则触发提示生成模块303;还用于在第一判断模块302判断为否时通知用户设置身份认证方式,如设置成功则触发提示查找模块305,设置不成功则报错。
其中,第二设置模块具体用于在第一判断模块302判断为是时通知用户设置PIN码,如设置成功则触发提示生成模块303;还用于在第一判断模块302 判断为否时通知用户设置PIN码,如设置成功则触发提示查找模块305,设置不成功则报错。
进一步地,第二设置模块包括:
第一提示接收单元,用于提示用户设置PIN码,并接收用户输入的PIN码;
第一判断单元,用于当提示接收单元接收到用户输入的PIN码时判断PIN 码是否合法,是则触发第二判断单元,否则触发提示接收单元;
优选的,第一判断单元具体用于当提示接收单元接收到用户输入的PIN码时判断PIN码的长度是否在预设范围内,是则合法,触发第二判断单元,否则不合法,触发提示接收单元;
第二判断单元,用于判断用户输入合法PIN码的次数,如为两次则触发第三判断单元,如为一次则更新用户输入合法PIN码的次数,触发提示判断单元,如为三次则报错;
第三判断单元,用于判断两次接收到的合法PIN码是否一致,是则用户身份验证通过,触发提示生成模块303或提示查找模块305,否则触发第一提示接收单元。
可选的,第二设置模块还包括:
第四判断单元,用于在第一判断单元判断为否时判断设置PIN码错误次数是否达到预定次数,是则报错,触发第一接收模块301,否则更新设置PIN码错误次数,触发提示接收单元。
在本实施例中,提示生成模块303包括:
第二提示接收单元,用于提示用户输入助记短语长度,并接收用户输入的助记短语长度;
计算生成单元,用于根据第二提示接收单元接收到的助记短语长度计算密钥种子长度和第一校验值,根据密钥种子长度生成对应长度的密钥种子;
进一步地,计算生成单元具体用于将助记短语长度乘以第二预设值生成助记短语标识长度;根据预设比值从助记短语标识长度中获取密钥种子长度和第一校验值长度;使用真随机数生成器生成长度为密钥种子长度的随机数作为密钥种子;
生成保存单元,用于清空安全存储区中的数据,根据计算生成单元生成的密钥种子通过第二预设算法生成主密钥,并将主密钥保存到安全存储区中;
进一步地,所述生成保存单元具体用于清空安全存储区中的数据,根据第二预设算法对所述计算生成单元生成的密钥种子进行哈希运算得到哈希值;将得到的所述哈希值的高位端预定长度的数据作为主密钥,并将所述主密钥保存到安全存储区中;
计算拼接单元,用于使用第一预设算法对密钥种子进行计算得到第一计算结果,从第一计算结果的起始位置开始截取第一校验值长度的数据得到第一校验值,将第一校验值拼接在密钥种子之后得到助记短语标识;在助记短语标识中依次截取预设长度的数据段得到多个助记单词标识;根据助记单词标识在预设字典中查找对应的助记单词,并将查找到的助记单词顺序拼接得到助记短语。
可选的,本实施例的装置还包括:
第一生成模块,用于根据提示生成模块303得到的助记短语和预设字典生成考试词语;
显示提示模块,用于显示第一生成模块生成的考试词语,提示用户进行选择并接收用户的选择信息;
进一步地,显示提示模块具体用于通过人机交互模块的显示屏显示助记短语,在显示屏上显示第一生成模块生成的考试词语,通过显示屏提示用户进行选择并接收用户的选择信息;
第四判断模块,用于根据助记单词判断显示提示模块接收到的用户输入的选择信息是否正确,是则触发第一设置模块304,否则触发第一生成模块。
可选的,本实施例的装置还包括:
复位模块,用于当第四判断模块判断为否时复位用户选择次数;
判断更新模块,用于在第四判断模块判断为是时判断用户选择次数是否到达预设次数,是则触发第一设置模块304,否则更新用户选择次数,触发第一生成模块。
优选的,在本实施例中的提示查找模块305具体用于通过人机交互模块的显示屏提示用户输入单词字母,当接收到用户通过人机交互模块的按键输入的字母时,根据字母在预设字典中查询对应的助记单词;通过人机交互模块的显示屏显示查询到的助记单词并在显示屏上显示提示用户进行选择的信息,并接收用户的选择信息。
可选的,本实施例的装置还包括:
提示接收模块,用于在第一判断模块302判断为恢复硬件钱包时提示用户输入助记短语长度,当接收到助记短语长度时触发提示查找模块305;
第二判断模块306具体用于判断提示查找模块305的选择信息的长度是否等于助记短语长度,是则触发获取验证模块307,否则触发提示查找模块305。
优选的,本实施例中的获取验证模块307包括:
查找拼接单元,用于清空安全存储区中的数据,在助记短语预设字典中查找与各个助记单词对应的助记单词标识,将查找到的助记单词标识顺序拼接得到助记短语标识;
计算截取单元,用于根据助记短语标识的长度计算密钥种子长度,从助记短语标识中顺序截取密钥种子长度的数据得到密钥种子,将助记短语标识中除密钥种子之外的数据作为第二校验值;
计算判断单元,用于使用第一预设算法对密钥种子进行运算得到第一计算结果,从第一计算结果的开始位置截取长度与第二校验值相同的数据得到第一比较值,判断第二校验值与第一比较值是否匹配,是则触发保存设置模块具体,否则报错;
保存设置模块具体用于根据密钥种子通过第二预设算法生成主密钥并保存到安全存储区中,将硬件钱包状态设置为已初始化,通过显示屏通知用户初始化成功,硬件钱包进行正常工作。
本发明技术方案实现了硬件钱包在脱机状态下同样能够进行初始化操作,使用硬件钱包过程更加安全可靠。
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明公开的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。
Claims (32)
1.一种硬件钱包可脱机进行初始化的实现方法,其特征在于,包括:
步骤S1:当硬件钱包接收到用户的操作触发信息时,判断所述操作触发信息的类型,如为创建硬件钱包则执行步骤S2,如为恢复硬件钱包则执行步骤S4;
步骤S2:所述硬件钱包提示用户输入助记短语长度,根据接收到的所述助记短语长度生成密钥种子,根据所述助记短语长度和所述密钥种子生成多个助记单词标识,依次根据不同的助记单词标识在预设字典中查找对应的助记单词,并将查找到的助记单词依次拼接得到助记短语,根据所述密钥种子生成主密钥并保存;
步骤S3:所述硬件钱包将硬件钱包状态设置为已初始化,进行正常工作;
步骤S4:所述硬件钱包提示用户输入单词字母,根据接收到的单词字母在预设字典中查找对应的助记单词并显示所述查找到的助记单词,提示用户进行选择;
步骤S5:当所述硬件钱包接收到用户的选择信息时,所述硬件钱包判断用户输入的选择信息是否为完整的助记短语,是则执行步骤S6,否则返回步骤S4;
步骤S6:所述硬件钱包根据用户输入的选择信息的长度获取密钥种子,根据所述密钥种子生成主密钥并进行验证,如验证通过则保存所述主密钥,并将硬件钱包状态设置为已初始化,进行正常工作;
在所述步骤S2与步骤S3之间包括:
步骤P1:所述硬件钱包根据所述助记短语和所述预设字典生成考试词语并显示,提示用户进行选择;
步骤P2:当所述硬件钱包接收到用户的选择信息时,根据所述助记单词判断用户输入的选择信息是否正确,是则执行步骤S3,否则返回步骤P1;
所述步骤S1具体为:
所述硬件钱包显示初始化交互选项界面,等待并接收用户通过人机交互模块发送的操作触发信息,判断接收到的操作触发信息的类型,如为创建硬件钱包则执行步骤S2,如为恢复硬件钱包则执行步骤S4。
2.如权利要求1所述的方法,其特征在于,所述步骤S1之前包括:所述硬件钱包上电,判断硬件钱包是否进行过初始化,是则所述硬件钱包进行正常工作,否则执行步骤S1。
3.如权利要求2所述的方法,其特征在于,所述判断硬件钱包是否进行过初始化,具体为:所述硬件钱包根据所述硬件钱包状态判断是否进行过初始化,如硬件钱包状态为已初始化则所述硬件钱包进行正常工作,否则执行步骤S1。
4.如权利要求1所述的方法,其特征在于,在所述步骤S1与所述步骤S2之间包括:所述硬件钱包通知用户设置身份认证方式,如设置成功则执行步骤S2,否则报错;
在所述步骤S1与所述步骤S4之间包括:所述硬件钱包通知用户设置身份认证方式,如设置成功则执行步骤S4,否则报错。
5.如权利要求4所述的方法,其特征在于,所述硬件钱包通知用户设置身份认证方式,具体为:所述硬件钱包通知用户设置PIN码。
6.如权利要求5所述的方法,其特征在于,所述硬件钱包通知用户设置PIN码,包括:
步骤A1:所述硬件钱包提示用户设置PIN码,当接收到用户输入的PIN码时判断PIN码是否合法,是则执行步骤A2,否则返回步骤A1;
步骤A2:所述硬件钱包判断用户输入合法PIN码的次数,如为两次则执行
步骤A3,如为一次则更新用户输入合法PIN码的次数,返回步骤A1,如为三次则报错;
步骤A3:所述硬件钱包判断两次接收到的合法PIN码是否一致,是则用户身份验证通过,否则返回步骤S1。
7.如权利要求6所述的方法,其特征在于,所述判断PIN码是否合法具体为:判断所述PIN码的长度是否在预设范围内,是则合法,否则不合法。
8.如权利要求6所述的方法,其特征在于,在步骤A1判断为否返回步骤A1之前还包括:硬件钱包判断设置PIN码错误次数是否达到预定次数,是则报错,返回步骤S1,否则更新所述设置PIN码错误次数,返回步骤A1。
9.如权利要求1所述的方法,其特征在于,所述步骤S2包括:
步骤S2-1:所述硬件钱包提示用户输入助记短语长度,当接收到用户输入的助记短语长度时,根据助记短语长度计算密钥种子长度和第一校验值,根据所述密钥种子长度生成对应长度的密钥种子;
步骤S2-2:所述硬件钱包清空安全存储区中的数据,根据所述密钥种子通过第二预设算法生成主密钥,并将所述主密钥保存到安全存储区中;
步骤S2-3:所述硬件钱包使用第一预设算法对密钥种子进行计算得到第一计算结果,从第一计算结果的起始位置开始截取第一校验值长度的数据得到第一校验值,将第一校验值拼接在密钥种子之后得到助记短语标识;在助记短语标识中依次截取预设长度的数据段得到多个助记单词标识;根据助记单词标识在预设字典中查找对应的助记单词,并将查找到的助记单词顺序拼接得到助记短语。
10.如权利要求9所述的方法,其特征在于,所述步骤S2-1中的所述根据助记短语长度计算密钥种子长度和第一校验值,具体为:所述硬件钱包将助记短语长度乘以第二预设值生成助记短语标识长度;根据预设比值从助记短语标识长度中获取密钥种子长度和第一校验值长度;
所述根据密钥种子长度生成对应长度的密钥种子,具体为:所述硬件钱包使用真随机数生成器生成长度为密钥种子长度的随机数作为密钥种子。
11.如权利要求9所述的方法,其特征在于,所述步骤S2-2中的所述根据所述密钥种子通过第二预设算法生成主密钥,具体为:根据第二预设算法对密钥种子进行哈希运算得到哈希值;将得到的所述哈希值的高位端预定长度的数据作为主密钥。
12.如权利要求1所述的方法,其特征在于,
所述步骤P1具体为:所述硬件钱包通过人机交互模块的显示屏显示助记短语,根据主语短语和预设字典生成考试词语并在显示屏上显示,然后通过显示屏提示用户进行选择。
13.如权利要求1所述的方法,其特征在于,所述步骤P2判断为否还包括:所述硬件钱包复位用户选择次数;
所述步骤P2与步骤S3之间还包括:所述硬件钱包判断所述用户选择次数是否到达预设次数,是则执行步骤S3,否则更新所述用户选择次数,返回步骤P1。
14.如权利要求1所述的方法,其特征在于,所述步骤S4具体为:所述硬件钱包通过人机交互模块的显示屏提示用户输入单词字母,当接收到用户通过人机交互模块的按键输入的字母时,根据所述字母在预设字典中查询对应的助记单词;所述硬件钱包通过人机交互模块的显示屏显示查询到的助记单词并在显示屏上显示提示用户进行选择的信息。
15.如权利要求1所述的方法,其特征在于,所述步骤S4之前包括:所述硬件钱包提示用户输入助记短语长度,当接收到助记短语长度时执行步骤S4;
所述步骤S5具体为:当所述硬件钱包接收到用户的选择信息时,所述硬件钱包判断用户输入的选择信息的长度是否等于所述助记短语长度,是则执行步骤S6,否则返回步骤S4。
16.如权利要求1所述的方法,其特征在于,所述步骤S6包括:
步骤S6-1:所述硬件钱包清空安全存储区中的数据,在助记短语预设字典中查找与各个助记单词对应的助记单词标识,将查找到的助记单词标识顺序拼接得到助记短语标识;
步骤S6-2:所述硬件钱包根据助记短语标识的长度计算密钥种子长度,从助记短语标识中顺序截取密钥种子长度的数据得到密钥种子,将助记短语标识中除密钥种子之外的数据作为第二校验值;
步骤S6-3:所述硬件钱包使用第一预设算法对密钥种子进行运算得到第一计算结果,从第一计算结果的开始位置截取长度与第二校验值相同的数据得到第一比较值,判断第二校验值与第一比较值是否匹配,是则执行步骤S6-4,否则报错;
步骤S6-4:所述硬件钱包根据密钥种子通过第二预设算法生成主密钥并保存到安全存储区中,将硬件钱包状态设置为已初始化,通过显示屏通知用户初始化成功,进行正常工作。
17.一种硬件钱包可脱机进行初始化的实现装置,其特征在于,包括:
第一接收模块,用于接收用户的操作触发信息;
第一判断模块,用于判断所述第一接收模块接收到的操作触发信息的类型,如为创建硬件钱包则触发提示生成模块,如为恢复硬件钱包则触发提示查找模块;
所述提示生成模块,用于提示用户输入助记短语长度,根据接收到的所述助记短语长度生成密钥种子,根据所述助记短语长度和所述密钥种子生成多个助记单词标识,依次根据不同的助记单词标识在预设字典中查找对应的助记单词,并将查找到的助记单词依次拼接得到助记短语,根据所述密钥种子生成主密钥并保存,触发第一设置模块;
所述第一设置模块,用于将硬件钱包状态设置为已初始化,硬件钱包进行正常工作;
所述提示查找模块,用于提示用户输入单词字母,根据接收到的单词字母在预设字典中查找对应的助记单词并显示所述查找到的助记单词,提示用户进行选择,并接收用户的选择信息;
第二判断模块,用于判断所述提示查找模块接收到的选择信息是否为完整的助记短语,是则触发获取验证模块,否则触发所述提示查找模块;
所述获取验证模块,用于根据用户输入的选择信息的长度获取密钥种子,根据所述密钥种子生成主密钥并进行验证;
保存设置模块,用于在所述获取验证模块验证通过后保存所述主密钥,并将硬件钱包状态设置为已初始化,硬件钱包进行正常工作;
所述装置还包括:
第一生成模块,用于根据所述提示生成模块得到的助记短语和所述预设字典生成考试词语;
显示提示模块,用于显示所述第一生成模块生成的考试词语,提示用户进行选择并接收用户的选择信息;
第四判断模块,用于根据所述助记单词判断所述显示提示模块接收到的用户输入的选择信息是否正确,是则触发所述第一设置模块,否则触发所述第一生成模块;
所述第一接收模块,具体用于显示初始化交互选项界面,等待并接收用户通过人机交互模块发送的操作触发信息。
18.如权利要求17所述的装置,其特征在于,还包括:
第三判断模块,用于在所述硬件钱包上电后判断硬件钱包是否进行过初始化,是则所述硬件钱包进行正常工作,否则触发所述第一接收模块。
19.如权利要求18所述的装置,其特征在于,所述第三判断模块具体用于在所述硬件钱包上电后根据所述硬件钱包状态判断是否进行过初始化,如硬件钱包状态为已初始化则所述硬件钱包进行正常工作,否则触发所述第一接收模块。
20.如权利要求17所述的装置,其特征在于,还包括:
第二设置模块,用于在所述第一判断模块判断为是时通知用户设置身份认证方式,如设置成功则触发所述提示生成模块;还用于在所述第一判断模块判断为否时通知用户设置身份认证方式,如设置成功则触发所述提示查找模块,设置不成功则报错。
21.如权利要求20所述的装置,其特征在于,所述第二设置模块具体用于在所述第一判断模块判断为是时通知用户设置PIN码,如设置成功则触发所述提示生成模块;还用于在所述第一判断模块判断为否时通知用户设置PIN码,如设置成功则触发所述提示查找模块,设置不成功则报错。
22.如权利要求21所述的装置,其特征在于,所述第二设置模块包括:
第一提示接收单元,用于提示用户设置PIN码,并接收用户输入的PIN码;
第一判断单元,用于当所述提示接收单元接收到用户输入的PIN码时判断PIN码是否合法,是则触发第二判断单元,否则触发所述提示接收单元;
所述第二判断单元,用于判断用户输入合法PIN码的次数,如为两次则触发第三判断单元,如为一次则更新用户输入合法PIN码的次数,触发所述提示判断单元,如为三次则报错;
所述第三判断单元,用于判断两次接收到的合法PIN码是否一致,是则用户身份验证通过,触发所述提示生成模块或所述提示查找模块,否则触发所述提示接收单元。
23.如权利要求22所述的装置,其特征在于,所述第一判断单元具体用于当所述提示接收单元接收到用户输入的PIN码时判断所述PIN码的长度是否在预设范围内,是则合法,触发第二判断单元,否则不合法,触发所述提示接收单元。
24.如权利要求22所述的装置,其特征在于,所述第二设置模块还包括:
第四判断单元,用于在第一判断单元判断为否时判断设置PIN码错误次数是否达到预定次数,是则报错,触发所述第一接收模块,否则更新所述设置PIN码错误次数,触发所述第一提示接收单元。
25.如权利要求17所述的装置,其特征在于,所述提示生成模块包括:
第二提示接收单元,用于提示用户输入助记短语长度,并接收用户输入的助记短语长度;
计算生成单元,用于根据所述第二提示接收单元接收到的助记短语长度计算密钥种子长度和第一校验值,根据所述密钥种子长度生成对应长度的密钥种子;
生成保存单元,用于清空安全存储区中的数据,根据所述计算生成单元生成的密钥种子通过第二预设算法生成主密钥,并将所述主密钥保存到安全存储区中;
计算拼接单元,用于使用第一预设算法对密钥种子进行计算得到第一计算结果,从第一计算结果的起始位置开始截取第一校验值长度的数据得到第一校验值,将第一校验值拼接在密钥种子之后得到助记短语标识;在助记短语标识中依次截取预设长度的数据段得到多个助记单词标识;根据助记单词标识在预设字典中查找对应的助记单词,并将查找到的助记单词顺序拼接得到助记短语,触发所述第一设置模块。
26.如权利要求25所述的装置,其特征在于,所述计算生成单元具体用于将助记短语长度乘以第二预设值生成助记短语标识长度;根据预设比值从助记短语标识长度中获取密钥种子长度和第一校验值长度;使用真随机数生成器生成长度为密钥种子长度的随机数作为密钥种子。
27.如权利要求25所述的装置,其特征在于,所述生成保存单元具体用于清空安全存储区中的数据,根据第二预设算法对所述计算生成单元生成的密钥种子进行哈希运算得到哈希值;将得到的所述哈希值的高位端预定长度的数据作为主密钥,并将所述主密钥保存到安全存储区中。
28.如权利要求17所述的装置,其特征在于,
所述显示提示模块具体用于通过人机交互模块的显示屏显示助记短语,在显示屏上显示所述第一生成模块生成的考试词语,通过显示屏提示用户进行选择并接收用户的选择信息。
29.如权利要求17所述的装置,其特征在于,还包括:
复位模块,用于当所述第四判断模块判断为否时复位用户选择次数;
判断更新模块,用于在所述第四判断模块判断为是时判断所述用户选择次数是否到达预设次数,是则触发所述第一设置模块,否则更新所述用户选择次数,触发所述第一生成模块。
30.如权利要求17所述的装置,其特征在于,所述提示查找模块具体用于通过人机交互模块的显示屏提示用户输入单词字母,当接收到用户通过人机交互模块的按键输入的字母时,根据所述字母在预设字典中查询对应的助记单词;通过人机交互模块的显示屏显示查询到的助记单词并在显示屏上显示提示用户进行选择的信息,并接收用户的选择信息。
31.如权利要求17所述的装置,其特征在于,还包括:
提示接收模块,用于在所述第一判断模块判断为恢复硬件钱包时提示用户输入助记短语长度,当接收到助记短语长度时触发所述提示查找模块;
所述第二判断模块具体用于判断所述提示查找模块的选择信息的长度是否等于所述助记短语长度,是则触发获取验证模块,否则触发所述提示查找模块。
32.如权利要求17所述的装置,其特征在于,所述获取验证模块包括:
查找拼接单元,用于清空安全存储区中的数据,在助记短语预设字典中查找与各个助记单词对应的助记单词标识,将查找到的助记单词标识顺序拼接得到助记短语标识;
计算截取单元,用于根据助记短语标识的长度计算密钥种子长度,从助记短语标识中顺序截取密钥种子长度的数据得到密钥种子,将助记短语标识中除密钥种子之外的数据作为第二校验值;
计算判断单元,用于使用第一预设算法对密钥种子进行运算得到第一计算结果,从第一计算结果的开始位置截取长度与第二校验值相同的数据得到第一比较值,判断第二校验值与第一比较值是否匹配,是则触发所述保存设置模块具体,否则报错;
所述保存设置模块具体用于根据密钥种子通过第二预设算法生成主密钥并保存到安全存储区中,将硬件钱包状态设置为已初始化,通过显示屏通知用户初始化成功,硬件钱包进行正常工作。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811630994.XA CN109687975B (zh) | 2018-12-29 | 2018-12-29 | 一种硬件钱包可脱机进行初始化的实现方法及装置 |
US17/294,496 US20210409213A1 (en) | 2018-12-29 | 2019-11-05 | Method for realizing off-line initialization of hardware wallet and equipment thereof |
PCT/CN2019/115620 WO2020134591A1 (zh) | 2018-12-29 | 2019-11-05 | 一种硬件钱包可脱机进行初始化的实现方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811630994.XA CN109687975B (zh) | 2018-12-29 | 2018-12-29 | 一种硬件钱包可脱机进行初始化的实现方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109687975A CN109687975A (zh) | 2019-04-26 |
CN109687975B true CN109687975B (zh) | 2020-11-03 |
Family
ID=66190121
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811630994.XA Active CN109687975B (zh) | 2018-12-29 | 2018-12-29 | 一种硬件钱包可脱机进行初始化的实现方法及装置 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20210409213A1 (zh) |
CN (1) | CN109687975B (zh) |
WO (1) | WO2020134591A1 (zh) |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8579853B2 (en) * | 2006-10-31 | 2013-11-12 | Abbott Diabetes Care Inc. | Infusion devices and methods |
CN109687975B (zh) * | 2018-12-29 | 2020-11-03 | 飞天诚信科技股份有限公司 | 一种硬件钱包可脱机进行初始化的实现方法及装置 |
US10614208B1 (en) * | 2019-02-21 | 2020-04-07 | Capital One Services, Llc | Management of login information affected by a data breach |
CN110310105B (zh) * | 2019-06-28 | 2022-03-18 | 飞天诚信科技股份有限公司 | 一种安全的恢复硬件钱包主密钥的实现方法及装置 |
CN112732288B (zh) * | 2020-12-11 | 2024-05-28 | 北京握奇智能科技有限公司 | 一种数字货币硬件钱包应用升级的方法和装置 |
US11973865B2 (en) * | 2021-03-05 | 2024-04-30 | Michael Heu | Device and method of storing a seed phrase |
CN113190471B (zh) * | 2021-06-30 | 2021-09-28 | 飞天诚信科技股份有限公司 | 一种助记词的管理方法及装置 |
KR20230027964A (ko) * | 2021-08-20 | 2023-02-28 | 삼성전자주식회사 | 개인키의 복원 문구를 생성하기 위한 전자 장치 및 그 전자 장치에서의 동작 방법 |
US11777727B1 (en) * | 2022-08-29 | 2023-10-03 | Osom Products, Inc. | Distributed digital wallet seed phrase |
KR102629335B1 (ko) * | 2023-01-11 | 2024-01-25 | 주식회사 그루핀 | 이중화된 니모닉 코드 기반 디지털 월렛 관리를 위한 전자 장치 및 이의 동작 방법 |
CN117235761B (zh) * | 2023-09-22 | 2024-04-19 | 北京宝联之星科技股份有限公司 | 一种基于云计算的数据安全处理方法、系统和存储介质 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20160117679A1 (en) * | 2014-10-28 | 2016-04-28 | Total System Services, Inc. | Automated Payment Information Update With Vendors |
US10832247B2 (en) * | 2016-09-15 | 2020-11-10 | American Express Travel Related Services Company, Inc. | Systems and methods for blockchain based payment networks |
CN107480986B (zh) * | 2017-08-14 | 2019-08-09 | 飞天诚信科技股份有限公司 | 一种利用硬件实现数字货币钱包的方法及硬件钱包 |
CN108665250B (zh) * | 2018-05-21 | 2022-05-31 | 北京橙鑫数据科技有限公司 | 一种信息处理方法、装置、硬件钱包以及系统 |
CN108510258A (zh) * | 2018-06-01 | 2018-09-07 | 黄君 | 一种基于usb otg设备的区块链数字货币转账系统 |
CN108960824A (zh) * | 2018-06-22 | 2018-12-07 | 杨俊佳 | 基于区块链的移动终端 |
US20200193420A1 (en) * | 2018-09-04 | 2020-06-18 | Bit Key, Inc. | Data management systems and methods |
CA3115834A1 (en) * | 2018-10-12 | 2020-04-16 | Zeu Crypto Networks Inc. | Biocrypt digital wallet |
CN109687975B (zh) * | 2018-12-29 | 2020-11-03 | 飞天诚信科技股份有限公司 | 一种硬件钱包可脱机进行初始化的实现方法及装置 |
CN109687959B (zh) * | 2018-12-29 | 2021-11-12 | 上海唯链信息科技有限公司 | 密钥安全管理系统和方法、介质和计算机程序 |
-
2018
- 2018-12-29 CN CN201811630994.XA patent/CN109687975B/zh active Active
-
2019
- 2019-11-05 WO PCT/CN2019/115620 patent/WO2020134591A1/zh active Application Filing
- 2019-11-05 US US17/294,496 patent/US20210409213A1/en active Pending
Also Published As
Publication number | Publication date |
---|---|
WO2020134591A1 (zh) | 2020-07-02 |
US20210409213A1 (en) | 2021-12-30 |
CN109687975A (zh) | 2019-04-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109687975B (zh) | 一种硬件钱包可脱机进行初始化的实现方法及装置 | |
US9350728B2 (en) | Method and system for generating and authorizing dynamic password | |
KR101860096B1 (ko) | 패스워드 검증 장치 및 방법 | |
CN106022172B (zh) | 一种保护密码键盘按键输入操作的密码输入方法及系统 | |
US9122310B2 (en) | Input device and method for protecting input information from exposure | |
US8661532B2 (en) | Method and apparatus for authenticating password | |
CN106650460A (zh) | 一种版本校验方法、装置及终端设备 | |
CN109063489A (zh) | 一种启动方法及装置 | |
CN108809982B (zh) | 一种基于可信执行环境的免密认证方法及系统 | |
CN110807536A (zh) | 账户信息关联方法、装置、电子设备及存储介质 | |
CN109214167B (zh) | 一种智能密钥安全设备及其密钥恢复方法、存储介质 | |
CN114861844A (zh) | 车辆交接方法、装置、设备及介质 | |
CN105184140A (zh) | 一种密码输入方法、装置及移动终端 | |
CN107037294A (zh) | 一种上位机、变频一体板的检测方法及检测系统 | |
CN110674493B (zh) | 一种bim系统登陆验证方法和系统 | |
CN104615267B (zh) | 密码输入管理方法、系统及电子装置 | |
CN105069332A (zh) | 基于指纹的密码验证方法和密码验证装置 | |
CN112929350B (zh) | 信息处理方法、装置、电子设备及存储介质 | |
CN106941496B (zh) | 一种登录验证方法及装置 | |
CN112286733B (zh) | 备份数据恢复时间确定方法、装置、设备及存储介质 | |
CN112541761B (zh) | 离线支付码的生成、扫描方法、生成装置以及扫描装置 | |
CN110059474B (zh) | 一种pin码修改的方法及装置 | |
CN113626837A (zh) | 一种参数管理方法、设备及计算机可读存储介质 | |
KR20120033774A (ko) | 스마트 카드를 사용하여 사용자 인증을 수행하는 화상형성장치 및 방법 | |
WO2010023508A1 (en) | Method, apparatus and computer program product for providing device security |
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 |