本发明涉及信息安全技术领域,并且更具体地,涉及一种用于恢复数字钱包密钥的方法及系统。
背景技术:
私钥,是掌握数字钱包的入口,只有私钥,才能证明你是钱包中资产的主人,而且这串私钥除了你之外,没有任何人知道,这是加密数字货币和银行账户最大的区别,你的数字资产,由你自己掌控,没有中心化的机构介入其中。私钥是由加密算法生成的一个32字节随机数,由64个十六进制的字符组成,而且一个钱包只有一个私钥,不能修改,私钥的生成没有规则可循,而且非常难记。
目前,用户在使用数字钱包时,公钥和私钥都在用户终端(手机或pc)中产生,如果终端丢失,则意味着私钥丢失,将对用户造成巨大的经济损失。
技术实现要素:
针对上述问题,本发明提出了一种用于恢复数字钱包密钥的方法,包括:
获取用户创建数字钱包时,采集用户识别信息,并对识别信息进行存档生成存档识别信息,数字钱包进行一次加密生成临时公钥和临时私钥,并根据临时公钥和临时私钥,生成密钥申请请求,请求申请密钥对;
接收密钥申请请求,根据密钥申请请求,生成私钥和公钥;
对临时私钥进行二次加密,生成私钥加密文件,对临时公钥进行哈希处理,获取临时公钥的哈希值;
对公钥、私钥加密文件和公钥的哈希值进行存储;
根据临时私钥对私钥加密文件进行解密,获取根据密钥申请请求生成的私钥;
获取数字钱包对根据密钥申请请求生成的私钥进行加密的二次私钥加密文件;
获取用户身份信息,对用户身份信息进行加密、并对加密的用户身份信息、二次私钥加密文件和公钥哈希值进行绑定,并将用户身份证号码写入二次私钥加密文件;
所述二次加密密文文件为用户自定义的字符串及用户的自定义密码;
当用户丢失私钥时,用户请求恢复密钥,接收用户请求后,采集用户识别信息,对识别信息与用户存档识别信息进行对比,对比通过后调用加密的用户身份信息,根据用户身份获取二次私钥加密文件和公钥哈希值;
获取数字钱包用户输入的自定义密码,与二次私钥加密文件进行对比,当自定义密码与二次加密文件一致时,请求获取用户身份证号码根据二次私钥加密文件中写入的用户身份证号码,进行二次验证,验证通过后对公钥哈希值进行解析,获取公钥,调用私钥加密文件并对私钥加密文件进行解析,获取私钥;
将私钥和公钥,返回数字钱包,使用私钥和公钥对用户密钥进行恢复或生成。
可选的,获取数字钱包用户输入的自定义密码时,若多次自定义密码与二次加密文件不一致,对数字钱包进行锁定。
可选的,二次验证多次未通过验证,对数字钱包进行锁定。
可选的,识别信息存储至公安人脸识别平台。
可选的,用户身份证号码写入二次私钥加密文件时,对用户身份证号码进行加密,并在调用用户身份证号码时进行解密。
本发明还提出了一种用于恢复数字钱包密钥的系统,包括:
密钥生成模块,获取用户创建数字钱包时,采集用户识别信息,并对识别信息进行存档生成存档识别信息,数字钱包进行一次加密生成临时公钥和临时私钥,并根据临时公钥和临时私钥,生成密钥申请请求,请求申请密钥对;
接收密钥申请请求,根据密钥申请请求,生成私钥和公钥;
对临时私钥进行二次加密,生成私钥加密文件,对临时公钥进行哈希处理,获取临时公钥的哈希值;
对公钥、私钥加密文件和公钥的哈希值进行存储;
根据临时私钥对私钥加密文件进行解密,获取根据密钥申请请求生成的私钥;
获取数字钱包对根据密钥申请请求生成的私钥进行加密的二次私钥加密文件;
获取用户身份信息,对用户身份信息进行加密、并对加密的用户身份信息、二次私钥加密文件和公钥哈希值进行绑定,并将用户身份证号码写入二次私钥加密文件;
所述二次加密密文文件为用户自定义的字符串及用户的自定义密码;
密钥恢复模块,确定当用户丢失私钥时,用户请求恢复密钥,接收用户请求后,采集用户识别信息,对识别信息与用户存档识别信息进行对比,对比通过后调用加密的用户身份信息,根据用户身份获取二次私钥加密文件和公钥哈希值;
获取数字钱包用户输入的自定义密码,与二次私钥加密文件进行对比,当自定义密码与二次加密文件一致时,请求获取用户身份证号码根据二次私钥加密文件中写入的用户身份证号码,进行二次验证,验证通过后对公钥哈希值进行解析,获取公钥,调用私钥加密文件并对私钥加密文件进行解析,获取私钥;
将私钥和公钥,返回数字钱包,使用私钥和公钥对用户密钥进行恢复或生成。
可选的,获取数字钱包用户输入的自定义密码时,若多次自定义密码与二次加密文件不一致,对数字钱包进行锁定。
可选的,二次验证多次未通过验证,对数字钱包进行锁定。
可选的,识别信息存储至公安人脸识别平台。
可选的,用户身份证号码写入二次私钥加密文件时,对用户身份证号码进行加密,并在调用用户身份证号码时进行解密。
本发明使用户的敏感信息在传输过程中,一直处于加密状态,避免了用户信息被窃取,恢复密钥时,需要借助用户提供的自定义字符串,避免了通过其他介质存储私钥相关信息可能导致的信息泄露,恢复密钥时,需要借助于在线实名认证,确保只有用户自己才能恢复自己的密钥对,杜绝了目前传统密钥恢复时,其他人通过获得用户助记词等信息来恢复密钥对的行为。
附图说明
图1为本发明一种用于恢复数字钱包密钥的方法流程图;
图2为本发明一种用于恢复数字钱包密钥的方法实施例密钥生成流程图;
图3为本发明一种用于恢复数字钱包密钥的方法实施例恢复密钥流程图;
图4为本发明一种用于恢复数字钱包密钥的系统结构图。
具体实施方式
现在参考附图介绍本发明的示例性实施方式,然而,本发明可以用许多不同的形式来实施,并且不局限于此处描述的实施例,提供这些实施例是为了详尽地且完全地公开本发明,并且向所属技术领域的技术人员充分传达本发明的范围。对于表示在附图中的示例性实施方式中的术语并不是对本发明的限定。在附图中,相同的单元/元件使用相同的附图标记。
除非另有说明,此处使用的术语(包括科技术语)对所属技术领域的技术人员具有通常的理解含义。另外,可以理解的是,以通常使用的词典限定的术语,应当被理解为与其相关领域的语境具有一致的含义,而不应该被理解为理想化的或过于正式的意义。
本发明提出了一种用于恢复数字钱包密钥的方法,如图1所示,包括:
获取用户创建数字钱包时,采集用户识别信息,并对识别信息进行存档生成存档识别信息,数字钱包进行一次加密生成临时公钥和临时私钥,并根据临时公钥和临时私钥,生成密钥申请请求,请求申请密钥对;
接收密钥申请请求,根据密钥申请请求,生成私钥和公钥;
对临时私钥进行二次加密,生成私钥加密文件,对临时公钥进行哈希处理,获取临时公钥的哈希值;
对公钥、私钥加密文件和公钥的哈希值进行存储,并将公钥和私钥加密文件返回数字钱包;
根据临时私钥对私钥加密文件进行解密,获取根据密钥申请请求生成的私钥;
获取数字钱包对根据密钥申请请求生成的私钥进行加密的二次私钥加密文件;
获取用户身份信息,对用户身份信息进行加密、并对加密的用户身份信息、二次私钥加密文件和公钥哈希值进行绑定,并将用户身份证号码写入二次私钥加密文件;
所述二次加密密文文件为用户自定义的字符串及用户的自定义密码;
当用户丢失私钥时,用户请求恢复密钥,接收用户请求后,采集用户识别信息,对识别信息与用户存档识别信息进行对比,对比通过后调用加密的用户身份信息,根据用户身份获取二次私钥加密文件和公钥哈希值;
获取数字钱包用户输入的自定义密码,与二次私钥加密文件进行对比,当自定义密码与二次加密文件一致时,请求获取用户身份证号码根据二次私钥加密文件中写入的用户身份证号码,进行二次验证,验证通过后对公钥哈希值进行解析,获取公钥,调用私钥加密文件并对私钥加密文件进行解析,获取私钥;
将私钥和公钥,返回数字钱包,使用私钥和公钥对用户密钥进行恢复或生成。
获取数字钱包用户输入的自定义密码时,若多次自定义密码与二次加密文件不一致,对数字钱包进行锁定。
二次验证多次未通过验证,对数字钱包进行锁定。
识别信息存储至公安人脸识别平台。
用户身份证号码写入二次私钥加密文件时,对用户身份证号码进行加密,并在调用用户身份证号码时进行解密。
下面结合实施例,对本发明进行进一步说明:
产生和托管密钥对的过程,如图2所示:
用户下载电子钱包并安装到终端,申请创建钱包;
钱包app产生临时公钥tempkey和临时私钥tempprikey;
钱包app将临时公钥tempkey作为参数传给秘钥托管平台km的相关接口,申请获得密钥对;
km产生密钥对,生成公钥pubkey和私钥prikey;
km用tempkey加密上一步生成的私钥prikey,得到加密后的文件prikey’;
km对tempkey做哈希处理,得到其哈希值tempkeyhash;
km将用户密钥相关信息存储在平台本地,存储的信息包括tempkeyhash、pubkey、prikey’、身份证号,其中tempkeyhash作为数据表主键,此时身份证号为空值;
km将pubkey和prikey’,以及平台的公钥返回给调用方(钱包app);
钱包app在本地用tempprikey解密prikey’,得到原始私钥prikey;
钱包app采用对称加密的方式,对prikey进行加密,得到密文prikey”,对称加密的密钥由用户提供的自定义字符串randomkey产生;
用户调用密钥托管平台的接口,绑定用户的密钥对信息和个人信息,发送的参数包括临时公钥的哈希值tempkeyhash、密文prikey”、身份证号码,其中,身份证号码将使用平台公钥对其加密再传输;
平台接收参数,通过tempkeyhash在本地数据库中查找到唯一的数据记录,并将该记录中的prikey’更新为prikey”,将身份证号码(用平台私钥解密后)写入记录中。
恢复密钥对的过程,如图3所示:
用户申请恢复钱包;
钱包app激活摄像头,调用人脸识别功能;
钱包app采集人脸信息,将特征值发送至密钥托管平台km;
km调用公安人脸识别服务,将特征值传送给相关接口;
公安人脸识别平台(服务)根据特征值,查找到用户信息,并将该用户的身份证号码返回给km;
km根据身份证号查找本地数据库表中的数据,由于身份证号的唯一性,该查找结果将是唯一的;
km将pubkey和prikey”返回给调用方(钱包app);
钱包app在终端,通过对称加密算法,解密prikey”,获得最初的私钥prikey,解密密钥是有用户输入的自定义字符串randomkey生成,至此,用户获得了pubkey和prikey,完成了密钥恢复。
本发明还提出了一种用于恢复数字钱包密钥的系统200,如图4所示,包括:
密钥生成模块201,获取用户创建数字钱包时,采集用户识别信息,并对识别信息进行存档生成存档识别信息,数字钱包进行一次加密生成临时公钥和临时私钥,并根据临时公钥和临时私钥,生成密钥申请请求,请求申请密钥对;
接收密钥申请请求,根据密钥申请请求,生成私钥和公钥;
对临时私钥进行二次加密,生成私钥加密文件,对临时公钥进行哈希处理,获取临时公钥的哈希值;
对公钥、私钥加密文件和公钥的哈希值进行存储,并将公钥和私钥加密文件返回数字钱包;
根据临时私钥对私钥加密文件进行解密,获取根据密钥申请请求生成的私钥;
获取数字钱包对根据密钥申请请求生成的私钥进行加密的二次私钥加密文件;
获取用户身份信息,对用户身份信息进行加密、并对加密的用户身份信息、二次私钥加密文件和公钥哈希值进行绑定,并将用户身份证号码写入二次私钥加密文件;
所述二次加密密文文件为用户自定义的字符串及用户的自定义密码;
密钥恢复模块202,确定当用户丢失私钥时,用户请求恢复密钥,接收用户请求后,采集用户识别信息,对识别信息与用户存档识别信息进行对比,对比通过后调用加密的用户身份信息,根据用户身份获取二次私钥加密文件和公钥哈希值;
获取数字钱包用户输入的自定义密码,与二次私钥加密文件进行对比,当自定义密码与二次加密文件一致时,请求获取用户身份证号码根据二次私钥加密文件中写入的用户身份证号码,进行二次验证,验证通过后对公钥哈希值进行解析,获取公钥,调用私钥加密文件并对私钥加密文件进行解析,获取私钥;
将私钥和公钥,返回数字钱包,使用私钥和公钥对用户密钥进行恢复或生成。
获取数字钱包用户输入的自定义密码时,若多次自定义密码与二次加密文件不一致,对数字钱包进行锁定。
二次验证多次未通过验证,对数字钱包进行锁定。
识别信息存储至公安人脸识别平台。
用户身份证号码写入二次私钥加密文件时,对用户身份证号码进行加密,并在调用用户身份证号码时进行解密。
本发明使用户的敏感信息在传输过程中,一直处于加密状态,避免了用户信息被窃取,恢复密钥时,需要借助用户提供的自定义字符串,避免了通过其他介质存储私钥相关信息可能导致的信息泄露,恢复密钥时,需要借助于在线实名认证,确保只有用户自己才能恢复自己的密钥对,杜绝了目前传统密钥恢复时,其他人通过获得用户助记词等信息来恢复密钥对的行为。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
最后应当说明的是:以上实施例仅用以说明本发明的技术方案而非对其限制,尽管参照上述实施例对本发明进行了详细的说明,所属领域的普通技术人员应当理解:依然可以对本发明的具体实施方式进行修改或者等同替换,而未脱离本发明精神和范围的任何修改或者等同替换,其均应涵盖在本发明的权利要求保护范围之内。
1.一种用于恢复数字钱包密钥的方法,所述方法包括:
获取用户创建数字钱包时,采集用户识别信息,并对识别信息进行存档生成存档识别信息,数字钱包进行一次加密生成临时公钥和临时私钥,并根据临时公钥和临时私钥,生成密钥申请请求,请求申请密钥对;
接收密钥申请请求,根据密钥申请请求,生成私钥和公钥;
对临时私钥进行二次加密,生成私钥加密文件,对临时公钥进行哈希处理,获取临时公钥的哈希值;
对公钥、私钥加密文件和公钥的哈希值进行存储;
根据临时私钥对私钥加密文件进行解密,获取根据密钥申请请求生成的私钥;
获取数字钱包对根据密钥申请请求生成的私钥进行加密的二次私钥加密文件;
获取用户身份信息,对用户身份信息进行加密、并对加密的用户身份信息、二次私钥加密文件和公钥哈希值进行绑定,并将用户身份证号码写入二次私钥加密文件;
所述二次加密密文文件为用户自定义的字符串及用户的自定义密码;
当用户丢失私钥时,用户请求恢复密钥,接收用户请求后,采集用户识别信息,对识别信息与用户存档识别信息进行对比,对比通过后调用加密的用户身份信息,根据用户身份获取二次私钥加密文件和公钥哈希值;
获取数字钱包用户输入的自定义密码,与二次私钥加密文件进行对比,当自定义密码与二次加密文件一致时,请求获取用户身份证号码根据二次私钥加密文件中写入的用户身份证号码,进行二次验证,验证通过后对公钥哈希值进行解析,获取公钥,调用私钥加密文件并对私钥加密文件进行解析,获取私钥;
将私钥和公钥,返回数字钱包,使用私钥和公钥对用户密钥进行恢复或生成。
2.根据权利要求1所述的方法,所述获取数字钱包用户输入的自定义密码时,若多次自定义密码与二次加密文件不一致,对数字钱包进行锁定。
3.根据权利要求1所述的方法,所述二次验证多次未通过验证,对数字钱包进行锁定。
4.根据权利要求1所述的方法,所述识别信息存储至公安人脸识别平台。
5.根据权利要求1所述的方法,所述用户身份证号码写入二次私钥加密文件时,对用户身份证号码进行加密,并在调用用户身份证号码时进行解密。
6.一种用于恢复数字钱包密钥的系统,所述系统包括:
密钥生成模块,获取用户创建数字钱包时,采集用户识别信息,并对识别信息进行存档生成存档识别信息,数字钱包进行一次加密生成临时公钥和临时私钥,并根据临时公钥和临时私钥,生成密钥申请请求,请求申请密钥对;
接收密钥申请请求,根据密钥申请请求,生成私钥和公钥;
对临时私钥进行二次加密,生成私钥加密文件,对临时公钥进行哈希处理,获取临时公钥的哈希值;
对公钥、私钥加密文件和公钥的哈希值进行存储;
根据临时私钥对私钥加密文件进行解密,获取根据密钥申请请求生成的私钥;
获取数字钱包对根据密钥申请请求生成的私钥进行加密的二次私钥加密文件;
获取用户身份信息,对用户身份信息进行加密、并对加密的用户身份信息、二次私钥加密文件和公钥哈希值进行绑定,并将用户身份证号码写入二次私钥加密文件;
所述二次加密密文文件为用户自定义的字符串及用户的自定义密码;
密钥恢复模块,确定当用户丢失私钥时,用户请求恢复密钥,接收用户请求后,采集用户识别信息,对识别信息与用户存档识别信息进行对比,对比通过后调用加密的用户身份信息,根据用户身份获取二次私钥加密文件和公钥哈希值;
获取数字钱包用户输入的自定义密码,与二次私钥加密文件进行对比,当自定义密码与二次加密文件一致时,请求获取用户身份证号码根据二次私钥加密文件中写入的用户身份证号码,进行二次验证,验证通过后对公钥哈希值进行解析,获取公钥,调用私钥加密文件并对私钥加密文件进行解析,获取私钥;
将私钥和公钥,返回数字钱包,使用私钥和公钥对用户密钥进行恢复或生成。
7.根据权利要求6所述的系统,所述获取数字钱包用户输入的自定义密码时,若多次自定义密码与二次加密文件不一致,对数字钱包进行锁定。
8.根据权利要求6所述的系统,所述二次验证多次未通过验证,对数字钱包进行锁定。
9.根据权利要求6所述的系统,所述识别信息存储至公安人脸识别平台。
10.根据权利要求6所述的系统,所述用户身份证号码写入二次私钥加密文件时,对用户身份证号码进行加密,并在调用用户身份证号码时进行解密。
技术总结