一种分布式账户系统中双密钥防盗方法与流程

文档序号:15831263发布日期:2018-11-07 07:20阅读:210来源:国知局
一种分布式账户系统中双密钥防盗方法与流程

本发明涉及电子交易技术领域,尤其涉及一种分布式账户系统中双密钥防盗方法。

背景技术

随着互联网技术不断发展,电子交易的应用越来越广泛,其中包括传统的银行账户交易以及比特币等应用区块链技术的电子交易。然而不管哪种电子交易方式,其现有的技术中用户一般采用单密钥的方式进行签名,如输入正确的密钥则视为账户所有人随意进行交易操作。而上述单密钥的验证方式存在密钥被破解或者窃听的风险,一旦其被盗取会为用户造成极大的财产损失。



技术实现要素:

本发明的目的在于克服现有技术的不足,提供一种具有利用双密钥方式实现账户防盗并提高电子交易安全性的分布式账户系统中双密钥防盗方法。

为了实现以上目的,本发明所采用的技术方案是:

一种分布式账户系统中双密钥防盗方法,包括以下步骤:

s1.设定两组字符串,每组字符串包括至少一串字符,该两组字符串分别为第一字符串组和第二字符串组;

s2.利用第一字符串组和第二字符串组生成操作码和防盗码,并通过字符串拼接操作码和防盗码生成复合地址码;

s3.输入并验证操作码以向指定账户转账;

s4.如步骤s3中的操作码被盗取,公开第一字符串组和第二字符串组并生成复合地址码,通过验证复合地址码无效交易。

本发明采用上述技术方案后,其有益效果在于:本发明与现有技术相比本发明将原来的单一密钥控制的地址信息改为双密钥控制,其双密钥包括用于进行通常交易操作的操作码和用于在账户被盗用时用于声明交易无效的防盗码。假设用户操作码被破解,可以通过防盗码来声明交易无效,提高电子交易安全性,保障用户利益。

优选地,所述复合地址码的生成过程如下:

a.设定两组字符串,每组字符串包括至少一串字符,该两组字符串分别为第一字符串组和第二字符串组;

b.输入第一字符串组并通过非对称密钥生成算法生成一组私钥和公钥;

c.利用算法对该组公钥加密生成操作码;

d.利用签名算法对私钥以及第二字符串组进行签名并生成签名数据;

e.利用算法并以第二字符串组作为密钥地签名数据进行加密生产加密防盗码;

f.字符串拼接操作码和防盗码生成复合地址码。

本发明采用上述方案后,可利用两组字符串生成包含操作码和防盗码的复合地址码,并且由于其防盗码在生成过程中需要同时利用第一字符串组生成的公钥以及第二字符串组,因此相对而言防盗码更难被破解,其安全性更高。

优选地,所述步骤s4中,以该转账账户作为输入项的所有交易及后续交易都可视为无效交易。本发明利用该方法不仅能对已发生的交易进行无效,还对该账户的后续交易无效,冻结其账户交易保障用户财产安全。

优选地,所述步骤s3中向指定账户转账的方法包括以下步骤:首先,构建一笔未签名的交易数据,所述交易数据包括转账账户、转账金额以及该转账账户的复合地址;然后利用所述私钥对该笔未签名交易数据进行签名;最后对该笔交易数据的进行合法性验证。本发明在进行一般的交易操作时仅需要输入操作码即可,无需输入防盗码,有利于提高交易操作的便捷性,同时也避免防盗码在进行一般交易操作时被泄露破解的情况,提高安全性。

优选地,所述合法性验证包括:第一,先根据交易id查询一笔交易是否存在,再查询所有引用该交易作为输入项的交易,确认对应输出项账户没有作为任一交易的输入;

第二,验证公钥是否能推导出该操作码,即使用公钥对该笔交易数据进行算法生成操作码,验证其获得操作码与用户输入的操作码是否一致,若结果一致则通过该验证,若结果不一致则推断该笔交易不合法;

第三,使用公钥验证签名是否匹配,即通过哈希算法计算该笔交易记录的hash值后,再利用算法验证该笔交易记录的hash值、私钥k、公钥p三者是否匹配,若三者匹配则该笔要以通过验证,若结果不匹配则判定该笔交易记录不合法;

第四,验证交易中的输入金额之和是否大于或等于输出金额,若以上等式成立则该笔交易通过验证。

本发明采用上述的方案后,通过以上四个验证步骤对交易的合法性进行验证,提高交易的安全性。

附图说明

图1为本发明的流程图。

图2为本发明的复合地址码的生成过程流程图。

具体实施方式

现结合附图和具体实施例对本发明所要求保护的技术方案作进一步详细说明。

参见图1和图2所示,本发明的分布式账户系统中双密钥防盗方法,该方法包括以下步骤:设定两组字符串,每组字符串包括至少一串字符,该两组字符串分别为第一字符串组x和第二字符串组y。

利用第一字符串组x和第二字符串组y分别生成操作码b和防盗码c,并通过字符串拼接操作码b和防盗码c生成复合地址码a,在本实施例中复合地址码a的生成过程如下:a.输入第一字符串组并通过非对称密钥生成算法生成一组私钥k和公钥p,在本实施例中,该步骤采用的非对称密钥生成算法为ed25519和rsa等。b.利用算法对该组公钥p加密生成操作码b,在本实施例中该步骤所采用的算法为sha256,md5等哈希算法;c.利用签名算法对私钥k以及第二字符串组y进行签名并生成签名数据;d.利用算法并以第二字符串组作为密钥地签名数据进行加密生产加密防盗码c,在本实施例中该步骤所采用的算法为aes、des等对称加密算法,也可为ed25519和rsa等非对称密钥生成算法。e.字符串拼接操作码b和防盗码c生成复合地址码a。

输入并验证操作码以向指定账户转账,在本实施例中其转账过程如下:首先构建一笔未签名的交易数据,该交易数据中包括转账账户、转账金额以及该转账账户的复合地址等信息;然后利用sha256哈希算法后得到该笔未签名交易数据的hash值,并利用私钥k对该笔未签名的交易数据进行签名。

当签名完成后系统还需要对该笔交易的合法性进行验证,在本实施例中其合法性验证的方式主要包括:第一,先根据交易id查询一笔交易是否存在,再查询所有引用该交易作为输入项的交易,确认对应输出项账户没有作为任一交易的输入。第二,验证公钥p是否能推导出该操作码,即使用公钥p对该笔交易数据的hash值进行sha256哈希算法,验证其获得操作码与用户输入的操作码是否一致,若结果一致则通过该验证,若结果不一致则推断该笔交易不合法。第三,使用公钥验证签名是否匹配,即通过sha256哈希算法计算该笔交易记录的hash值后,再利用ed25519算法验证该笔交易记录的hash值、私钥k、公钥p三者是否匹配,若三者匹配则该笔要以通过验证,若结果不匹配则判定该笔交易记录不合法。第四,验证交易中的输入金额之和是否大于或等于输出金额,若以上等式成立则该笔交易通过验证。从以上的方式可见用户在进行一般的交易时,只需要输入操作码b进行验证即可,其有利于提高交易操作的便捷性,同时也避免防盗码在进行一般交易操作时被泄露破解的情况,提高安全性。

当用户发明账户被盗取后,可通过公开第一字符串组和第二字符串组并生成复合地址码,以验证复合地址码a的方式无效交易。其具体方式如下:首先基于上述交易方式,一笔交易的输出项(账户)只能作为输入项被引用一次。如果被盗意味着这个账户消费过一次,通过交易id查询可以查询到。当确认账户被到盗用后,可公开第一字符串组x和第二字符串组y,然后利用上述的方式让第一字符串组x和第二字符串组y通过算法生成复合地址a,该复合地址a中包含操作码b和防盗码c,通过验证复合地址a确认用户身份后,用户可声明以该转账账户作为输入项的所有交易及后续交易都可视为无效交易,从而保障用户利益。与现有技术相比本发明将单一密钥控制的地址信息改为双密钥分别控制的操作码和防盗码。假设用户操作码被破解,可以通过防盗码来声明交易无效,提高电子交易安全性,保障用户利益。

以上所述之实施例仅为本发明的较佳实施例,并非对本发明做任何形式上的限制。任何熟悉本领域的技术人员,在不脱离本发明技术方案范围情况下,都可利用上述揭示的技术内容对本发明技术方案作出更多可能的变动和润饰,或修改为等同变化的等效实施例。故凡未脱离本发明技术方案的内容,依据本发明之思路所作的等同等效变化,均应涵盖于本发明的保护范围内。

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