CN108629027B - 基于区块链的用户数据库重建方法、装置、设备及介质 - Google Patents
基于区块链的用户数据库重建方法、装置、设备及介质 Download PDFInfo
- Publication number
- CN108629027B CN108629027B CN201810436868.4A CN201810436868A CN108629027B CN 108629027 B CN108629027 B CN 108629027B CN 201810436868 A CN201810436868 A CN 201810436868A CN 108629027 B CN108629027 B CN 108629027B
- Authority
- CN
- China
- Prior art keywords
- data
- user
- key
- blockchain
- data item
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/382—Payment protocols; Details thereof insuring higher security of transaction
- G06Q20/3829—Payment protocols; Details thereof insuring higher security of transaction involving key management
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/04—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
- H04L63/0428—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Business, Economics & Management (AREA)
- Accounting & Taxation (AREA)
- Finance (AREA)
- Strategic Management (AREA)
- Physics & Mathematics (AREA)
- General Business, Economics & Management (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Storage Device Security (AREA)
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
Abstract
本发明公开了一种区块链上用户数据库重建方法、装置、终端设备及存储介质。该区块链上用户数据库重建方法,包括:读取区块链上所有的数据条目,每一所述数据条目通过采用预设的加密算法进行加密后获取;采用与所述加密算法相对应的解密算法,对每一所述数据条目进行解密,获取每一所述数据条目的解密结果;若所述解密结果携带所述用户标识,则确定所述数据条目为与所述用户标识相对应的用户的数据信息,保存所述数据信息;基于所述索引和所述数据密钥,建立区块链上所述数据信息的对应关系,在区块链上重建用户数据库。采用该区块链上用户数据库重建方法能够使得区块链上用户找回丢失的数据,并重建用户数据库。
Description
技术领域
本发明涉及区块链技术领域,尤其涉及一种区块链上用户数据库重建方法、装置、设备及介质。
背景技术
当区块链上用户进行通信时,区块链上用户加密存储所有的数据条目,在正常应用过程中,区块链上用户保存各自所有的数据条目的索引和数据密钥,用户具备所有自己数据的完整明文状态。由于区块链上用户间进行授权和读取的需求,需要维护对存储安全性要求非常高的K<->KC<->Key(其中,K为索引,KC为加密索引(即数据条目的索引),Key为数据密钥,“<->”表示数据间的双向对应关系)对应关系,这样在多用户的区块链系统中,如果某个用户拥有的索引和数据密钥丢失,该用户将无法找回丢失的索引和数据密钥。
发明内容
本发明实施例提供一种区块链上用户数据库重建方法、装置、设备及介质,以解决区块链上用户无法找回丢失的索引和数据密钥的问题。
第一方面,本发明实施例提供一种区块链上用户数据库重建方法,包括:
读取区块链上所有的数据条目,每一所述数据条目以键值对的方式存储,每一所述数据条目通过采用预设的加密算法进行加密后获取,每一所述数据条目的索引包括用户标识;
采用与所述加密算法相对应的解密算法,对每一所述数据条目进行解密,获取每一所述数据条目的解密结果;
若所述解密结果携带所述用户标识,则确定所述数据条目为与所述用户标识相对应的用户的数据信息,保存所述数据信息,其中,所述数据信息包括索引和数据密钥;
基于所述索引和所述数据密钥,建立区块链上所述数据信息的对应关系,在区块链上重建用户数据库。
第二方面,本发明实施例提供一种区块链上用户数据库重建装置,包括:
读取模块,用于读取区块链上所有的数据条目,每一所述数据条目以键值对的方式存储,每一所述数据条目通过采用预设的加密算法进行加密后获取,每一所述数据条目的索引包括用户标识;
解密模块,用于采用与所述加密算法相对应的解密算法,对每一所述数据条目进行解密,获取每一所述数据条目的解密结果;
保存模块,用于若所述解密结果携带所述用户标识,则确定所述数据条目为与所述用户标识相对应的用户的数据信息,保存所述数据信息,其中,所述数据信息包括索引和数据密钥;
重建模块,用于基于所述索引和所述数据密钥,建立区块链上所述数据信息的对应关系,在区块链上重建用户数据库。
第三方面,本发明实施例提供一种终端设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现所述区块链上用户数据库重建方法的步骤。
第四方面,本发明实施例提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现所述区块链上用户数据库重建方法的步骤。
本发明实施例所提供的区块链上用户数据库重建方法、装置、设备及介质中,首先读取区块链上所有的数据条目,每一数据条目以键值对的方式存储,每一数据条目通过采用预设的加密算法进行加密后获取,每一数据条目的索引包括用户标识,为后续用户从区块链上所有的数据条目中获取与该用户相关的索引和数据密钥提供了基础。接着采用与加密算法相对应的解密算法,对每一数据条目进行解密,获取每一数据条目的解密结果若解密结果携带用户标识,则确定数据条目为与用户标识相对应的用户的数据信息,保存数据信息,通过对区块链上所有的数据条目的解密,根据解密结果携带的用户标识确定数据条目所属的用户,实现从加密的数据条目中获取与用户自身相关的数据信息。最后基于索引和数据密钥,建立区块链上数据信息的对应关系,在区块链上重建用户数据库,通过重新建立用户数据信息的对应关系,实现用户数据库的重建,能够实现将原本的对应关系,这种对存储安全性非常高的要求,降级为一般的存储安全性要求。对应关系丢失后只需要重建用户数据库即可,不会导致区块链上用户原有数据的丢失。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例的描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例1中区块链上用户数据库重建方法的一流程图。
图2是图1中步骤S20的一具体流程图。
图3是图1中步骤S40的一具体流程图。
图4是本发明实施例2中区块链上用户数据库重建装置的一原理框图。
图5是本发明实施例4中终端设备的一示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例1
图1示出本实施例中区块链上用户数据库重建方法的一流程图。该区块链上用户数据库重建方法可应用在以区块链为技术基础的应用系统上,用于当区块链上用户丢失索引和数据密钥时,能够重新建立用户的应用数据库。如图1所示,该区块链上用户数据库重建方法包括如下步骤:
S10:读取区块链上所有的数据条目,每一数据条目以键值对的方式存储,每一数据条目通过采用预设的加密算法进行加密后获取,每一数据条目的索引包括用户标识。
区块链是分布式数据存储、共识机制和加密算法等计算机技术的新型应用模式。本实施例是基于区块链系统实现的,本实施例中提及的区块链应以区块链系统来理解,其中,区块链系统,其本质是一个去中心化的分布式数据库系统。此外,本实施例中区块链上的用户应理解为在区块链系统上的各个用户节点,即区块链系统上各个相关的终端设备,该终端设备可以是通过区块链网络相连的手机、电脑、平板和服务器等终端设备。
其中,数据条目即区块链上存储数据的条目,数据条目包括该数据条目上的数据和该数据对应的索引,即每一数据条目以键值对的方式存储,其中,键相当于该数据条目中的索引,值相当于该数据条目中的数据。用户在区块链上进行通信等其他需要安全要求的行为时,用户的数据条目是加密的,在索引和数据密钥未丢失的情况下,每一用户具备所有自己的数据的完整明文状态。当区块链上用户想要获取其他用户的明文数据时,必须经过授权才能获取。需要说明的是,每一数据条目的索引包括用户标识中的用户标识不是明文状态,需要对数据条目的索引进行解密后才能得到用户标识。本实施例中数据条目的索引即加密索引KC。
具体地,每一数据条目通过采用预设的加密算法进行加密后获取,每一数据条目的索引包括用户标识。其中,该用户标识用于唯一区分区块链上不同的用户。
本实施例中,区块链上丢失索引和数据密钥的用户读取区块链上所有的数据条目,为后续用户从区块链上所有的数据条目中获取与用户相关的索引和数据密钥提供了基础。
具体地,读取区块链上所有的数据条目,具体包括如下步骤:通过遍历操作读取区块链上所有的数据条目。本实施例中,采用遍历操作读取区块链上所有的数据条目,具体的遍历指令可以是ReadAllKeys(),执行该遍历指令能够获取所有的数据条目。
在一具体实施方式中,在步骤S10之前,即在读取区块链上所有的数据条目之前,该区块链上用户数据库重建方法还包括如下步骤:采用SM4-CBC模式或者AES-CBC模式进行加密获取每一数据条目,数据条目加密前的索引(即索引K)采用用户标识作为索引的前缀;加密所需的加密密钥为基于用户私钥派生生成的加密子密钥,SM4-CBC模式或者AES-CBC模式中的初始化变量采用随机数(即random)。
其中,SM4算法为国密算法之一,SM4算法是一种分组算法,该算法的分组长度为128比特,密钥长度为128比特。SM4算法中的加密算法与密钥扩展算法都采用32轮非线性迭代结构。解密算法与加密算法的结构相同,只是轮密钥的使用顺序相反,解密轮密钥是加密轮密钥的逆序。SM4的优点是安全性非常高,并且有较高的效率。
AES算法是一种对称分组密码体制,采用代替/置换网络,每轮由线性混合层、非线性层和密钥加密层组成。其中,线性混合层用于确保多轮之上的高度扩散,非线性层由16个S盒组成并起到混淆的作用,密钥加密层用于将子密钥异或到中间状态。AES是一个迭代分组密码,其分组长度和密钥长度都是可变的,因满足AES的要求才限定处理的分组大小为128位,而密钥长度为128位、192位或256位,相应的迭代轮数N,为10轮、12轮和14轮。AES汇聚了安全性能、效率、可实现性和灵活性等优点。最大的优点是可以给出算法的最佳查分特征的概率,并分析算法抵抗查分密码分析及线性密码分析的能力。
本实施例中将采用SM4-CBC模式进行说明(采用AES-CBC模式的过程也是相同的,故不重复说明)。
本实施例中,区块链上用户通过用户自身私钥派生生成加密子密钥,该生成加密子密钥的公式为Key=Hash(HMACHash(d)random)((这里加密子密钥采用的是对称密钥,加密和解密用的都是同一把密钥,由对称密钥的概念可知,该加密子密钥的公式即解密子密钥的公式),其中,Key为解密密钥,Hash为单向散列函数,HMAC为密钥相关的哈希运算消息认证码,d为用户私钥,random为随机数。SM4-CBC模式中初始化变量IV采用的随机数即生成加密子密钥公式中的random。
本实施例中,区块链上每一用户各自拥有唯一的用户标识,如将用户A的用户名“A”作为独一无二的用户标识。在采用SM4-CBC模式加密数据条目时,加密前数据条目的索引(即索引K)需将用户标识A添加到索引中作为该索引的前缀,表示为“A+K”,该“A+K”为最终进行加密的索引。具体地,区块链上有一未加密的数据条目为{K:V},其中,K为索引,V为数据,该加密过程为:
1)用户A根据上述Key=Hash(HMACHash(d)random)确定每一数据条目的Key,并且,SM4-CBC加密模式所需的初始化变量IV即式中的random。
2)用户A使用Key和IV对K进行加密,KC=SM4_CBC(K),密钥为Key,IV为random。特别地,K即未加密的数据条目的索引,即键值对中的键,在这里需将用户标识A添加到索引中作为该索引的前缀,表示为“A+K”,该“A+K”才是最终进行加密的索引。
3)用户A使用Key和IV对V进行加密,VC=SM4_CBC(V),密钥为Key,
SM4-CBC模式中所需的初始化变量IV为random。
4)用户A将数据{KC:VC+random}写回到区块链上。
其中,KC即数据条目上的索引(加密索引),VC为加密后的数据,VC+random为数据条目上的数据,IV为CBC模式所需的初始化变量,即随机数random,该数据条目中的random为明文状态,用户可以通过读键KC获取到VC+random中明文状态的random。
加密数据条目不仅限于将用户标识作为索引K(未加密的索引)的前缀,只需要将用户标识添加到数据条目的索引K中即可,通过将用户标识添加到数据条目的索引K中,能够让用户在后续解密加密索引KC并获取索引K时,根据索引K包含的用户标识确定该数据条目在区块链系统上所属的用户。
S20:采用与加密算法相对应的解密算法,对每一数据条目进行解密,获取每一数据条目的解密结果。
本实施例中,采用与加密算法相对应的解密算法,区块链上用户对每一数据条目进行解密,获取每一数据条目的解密结果,以根据解密结果从加密的所有数据条目中获取与用户相关的数据条目。
在一具体实施方式中,步骤S20中,采用与加密算法相对应的解密算法,对每一数据条目进行解密,获取每一数据条目的解密结果,具体包括如下步骤:
S21:获取每一数据条目上的随机数。
本实施例中,数据条目可以表示为:{KC:VC+random},数据条目上的索引KC和加密后的数据VC都是加密的,用户先读取数据条目上的索引KC,再读取加密索引KC对应的数据VC+random,从该数据上读取随机数random。该随机数random在进行加密时是以明文形式存在的,用户可以在加密的数据上获取明文形式存在的随机数。该随机数是在用户丢失索引K和数据密钥key情况下用户唯一能够在区块链系统上获取的信息。由于区块链系统具有数据共享的特点,区块链上任意用户都可以获取数据条目中的随机数。基于区块链系统本身的数据共享性以及每个数据条目的加密密钥都是通过用户自身的私钥生成的,能够通过该获取的随机数random以及用户私钥d,结合SM4-CBC模式重新获取丢失的索引K和数据密钥key,重新建立用户数据库。
S22:根据每一随机数和用户私钥获取每一数据条目的解密密钥。
本实施例中,根据在数据条目上的数据所读取到的随机数,采用该随机数以及用户私钥计算并获取每一数据条目的解密密钥。
在一具体实施方式中,步骤S22中,具体还包括:根据每一随机数和用户私钥获取每一数据条目的解密密钥的计算公式为
Key=Hash(HMACHash(d)random),其中,Key为解密密钥,Hash为单向散列函数,HMAC为密钥相关的哈希运算消息认证码,d为用户私钥,random为随机数。
可以理解地,当待解密的数据条目是属于相对应的解密用户时,由于解密密钥Key都是有用户私钥d派生获取的,通过该相对应的解密用户的私钥d和随机数random获取的解密密钥Key,必定能解密属于该用户的数据条目。不是该待解密的数据条目的用户,则通过用户私钥d和随机数random获取的解密密钥Key将无法解密该数据条目。例如,如果是属于用户A的数据条目,用户A就能够通过计算获取的解密密钥解密属于用户A的数据条目,而用户B的私钥与用户A的不同,故无法解密该属于用户A的数据条目。
S23:根据每一数据条目的随机数和对应的解密密钥,解密每一数据条目,获取每一数据条目的解密结果。
本实施例中,根据每一数据条目的随机数和对应的解密密钥,由SM4-CBC模式可以解密每一数据条目,并获取每一数据条目的解密结果。具体地,以用户A举例,该解密过程为:
1.用户A在区块链上读取KC,得到VC和random。(步骤S21-S22)
2.用户A使用Key和random对KC进行解密,K=SM4_CBC(KC),密钥为Key,SM4-CBC模式中所需的初始化变量IV为random。
3.用户A使用Key和random对VC进行解密,V=SM4_CBC(VC),密钥为Key,SM4-CBC模式中所需的初始化变量IV为random。
通过采用随机数random和对应的解密密钥Key解密数据条目,获取解密结果。
本实施例中,采用与加密算法相对应的解密算法,如加密算法选择的是SM4的CBC模式时,其对应的解密算法同样是SM4的CBC模式,由于区块链系统上加密数据条目采用的加密密钥都是由Key=Hash(HMACHash(d)random)计算后生成的,因此,可以根据该特点,当用户在丢失密钥时,能够通过在VC+random中获取随机数,采用该随机数以及用户私钥获取密钥Key,再将随机数作为SM4-CBC模式中的初始化变量IV,结合密钥Key对区块链上所有数据条目进行解密,获取解密结果,使得用户能够根据该方式解密区块链上所有数据条目,为后续根据解密结果包含用户标识,以确定数据条目所属的用户提供了有力的技术基础。
S30:若解密结果携带用户标识,则确定数据条目为与用户标识相对应的用户的数据信息,保存数据信息,其中,数据信息包括索引和数据密钥。
本实施例中,判断解密结果的情况,根据采用预设的加密算法(如SM4-CBC模式)加密数据条目可知,未加密的数据条目的索引(即索引K)添加了用户标识作为前缀,如A(用户A的用户标识)+K(索引)。则相应地,在采用与该加密算法相对应的解密算法解密数据条目之后,如果解密使用的解密密钥(Key)与待解密的数据条目相关联,解密出来的数据条目的索引应该带有用户标识,由于每一用户标识都是独一无二的,所以解密出来的带有用户标识的数据条目必定属于该用户标识相对应的用户。
可以理解地,由于解密密钥是通过每一用户的私钥生成的,故该解密的过程实际上就是:用户读取数据条目,获取数据条目上数据的随机数,根据该随机数和用户私钥获取解密密钥,并用该生成的解密密钥以及随机数解密该数据条目。若该数据条目是属于该用户的,则采用该用户的私钥生成的解密密钥恰好能够解密该数据条目,并得到含有该用户标识的索引;若该数据条目不属于该用户的,则采用该用户的私钥生成的解密密钥将不能解密该数据条目。在对每一数据条目进行解密并判断解密结果是否携带用户标识后,获取并保存与用户标识相对应的用户的数据信息,该数据信息即用户丢失的信息,包括索引K和数据密钥Key,还包括索引K对应的数据V。通过解密数据条目获取并保存数据信息,实现从数据条目中获取与用户自身相关的数据信息。
S40:基于索引和数据密钥,建立区块链上数据信息的对应关系,在区块链上重建用户数据库。
本实施例中,基于索引和数据密钥,在区块链系统上重新建立数据信息的对应关系,即将丢失的信息重新建立起对应关系,在区块链上重建用户数据库。区块链系统,其本质是一个去中心化的分布式数据库系统。正常状态下,区块链上的用户具备所有自己的数据的完整明文状态,在信息丢失后,需要将丢失的信息重新建立起对应关系,并保存对应关系,重建用户数据库。
在一具体实施方式中,如图3所示,步骤S40中,基于索引和数据密钥,建立区块链上数据信息的对应关系,在区块链上重建用户数据库,具体包括如下步骤:
S41:基于索引和数据密钥,建立索引与加密索引的第一双向对应关系,并建立加密索引与数据密钥的第二双向对应关系,其中,加密索引为数据条目的索引。
本实施例中,基于索引和数据密钥,建立索引与加密索引的第一双向对应关系,可以表示为K<->KC(其中,K为索引,KC为加密索引);并建立加密索引和数据密钥的第二双向对应关系,可以表示为KC<->Key(其中,KC为加密索引,Key为数据密钥)。可以理解地,建立后的对应关系可以表示为K<->KC<->Key,此外,还应建立K和V为一个键值对的关系,以使在读取K后能够获取对应的数据V。则当用户A授权K给用户B时,只需要将KC和Key发送给B即可,用户B采用数据密钥Key和随机数random根据SM4-CBC模式或者AES-CBC模式解密KC获取索引K,再根据K和V是一个键值对的关系获取数据V,数据V即用户B希望获取的目标数据。(这里这个对应关系K<->KC<->Key必须维护,否则用户A授权K给用户B的时候,将无法得到KC和Key,因为用户A本地没有保存random,没有random也就不能得到KC和Key。当然维护K<->random的对应关系也是可以的,但是这样授权的时候要通过K、random和用户私钥d重新计算一次KC和Key,性能较低)。
S42:基于第一双向对应关系和第二双向对应关系,在区块链上重建用户数据库。
本实施例中,基于第一双向对应关系和第二双向对应关系,保存该对应关系,在区块链上重建用户数据库。通过重新建立和保存用户数据信息的对应关系,实现区块链上用户数据库的重建。
本实施例所提供的区块链上用户数据库重建方法中,首先读取区块链上所有的数据条目,每一数据条目以键值对的方式存储,每一数据条目通过采用预设的加密算法SM4-CBC模式或者AES-CBC模式进行加密获取,待加密数据(V)对应的索引(K)采用用户标识作为前缀(A+K);加密所需的加密密钥为基于随机数和用户私钥派生生成的加密子密钥,该获取加密子密钥计算公式为Key=Hash(HMACHash(d)random)。加密后的每一数据条目的索引(即KC)包括用户标识,为后续用户从区块链上所有的数据条目中获取与该用户相关的索引和数据密钥提供了基础,并且,采用随机数和用户私钥派生生成加密子密钥能够让区块链上用户基于根密钥(即用户私钥)就能实现用户对自身所有数据的加密,每条数据的密钥不需要重新生成,不需要进行额外的密钥的保存。接着采用与加密算法相对应的解密算法,对每一数据条目进行解密,获取每一数据条目的解密结果,若解密结果携带用户标识,则确定数据条目为与用户标识相对应的用户的数据信息,保存数据信息,其中,数据信息包括索引和数据密钥,通过对区块链上所有的数据条目的解密,根据解密结果携带的用户标识确定数据条目所属的用户,实现从区块链上所有的数据条目中获取与用户自身相关的、丢失的数据信息。最后基于数据信息中的索引和数据密钥,建立区块链上索引与加密索引的第一双向对应关系和建立加密索引与数据密钥的第二双向对应关系,在区块链上重建用户数据库,通过重新建立、保存用户数据信息的对应关系K<->KC<->Key,实现用户数据库的重建。该区块链上用户数据库重建方法能够实现将原本K<->KC<->key对应关系这种对存储安全性非常高的要求,降级为一般的存储安全性要求。对应关系丢失后只需要重建用户数据库即可,不会导致区块链上用户原有数据的丢失。
应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
实施例2
图4示出与实施例1中区块链上用户数据库重建方法一一对应的区块链上用户数据库重建装置的原理框图。如图4所示,该区块链上用户数据库重建装置包括读取模块10、解密模块20、保存模块30和重建模块40。其中,读取模块10、解密模块20、保存模块30和重建模块40的实现功能与实施例1中区块链上用户数据库重建方法对应的步骤一一对应,为避免赘述,本实施例不一一详述。
读取模块10,用于读取区块链上所有的数据条目,每一数据条目以键值对的方式存储,每一数据条目通过采用预设的加密算法进行加密后获取,每一数据条目的索引包括用户标识。
解密模块20,用于采用与加密算法相对应的解密算法,对每一数据条目进行解密,获取每一数据条目的解密结果。
保存模块30,用于若解密结果携带用户标识,则确定数据条目为与用户标识相对应的用户的数据信息,保存数据信息,其中,数据信息包括索引和数据密钥。
重建模块40,用于基于索引和数据密钥,建立区块链上数据信息的对应关系,在区块链上重建用户数据库。
优选地,区块链上每一用户各自拥有唯一的用户标识。
优选地,该区块链上用户数据库重建装置还包括加密模块50,用于采用SM4-CBC模式进行加密获取每一数据条目,数据条目加密前的索引采用用户标识作为前缀;加密所需的加密密钥为基于用户私钥派生生成的加密子密钥,SM4-CBC模式中的初始化变量采用随机数。
优选地,读取模块10,用于通过遍历操作读取区块链上所有的数据条目。
优选地,解密模块20包括随机数获取单元21、解密密钥获取单元22和解密结果获取单元23。
随机数获取单元21,用于获取每一数据条目上的随机数。
解密密钥获取单元22,用于根据每一随机数和用户私钥获取每一数据条目的解密密钥。
解密结果获取单元23,用于根据每一数据条目的随机数和对应的解密密钥,解密每一数据条目,获取每一数据条目的解密结果。
优选地,解密密钥的计算公式为Key=Hash(HMACHash(d)random),其中,Key为解密密钥,Hash为单向散列函数,HMAC为密钥相关的哈希运算消息认证码,d为用户私钥,random为随机数。
优选地,重建模块40包括对应关系建立单元41和数据库重建单元42。
实施例3
本实施例提供一计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现实施例1中区块链上用户数据库重建方法,为避免重复,这里不再赘述。或者,该计算机程序被处理器执行时实现实施例2中区块链上用户数据库重建装置中各模块/单元的功能,为避免重复,这里不再赘述。
实施例4
图5是本实施例中终端设备的示意图。如图5所示,终端设备60包括处理器61、存储器62以及存储在存储器62中并可在处理器61上运行的计算机程序63。处理器61执行计算机程序63时实现实施例1中区块链上用户数据库重建方法的各个步骤,例如图1所示的步骤S10至S40。或者,处理器61执行计算机程序63时实现实施例2中区块链上用户数据库重建装置各模块/单元的功能,如图4所示读取模块10、解密模块20、保存模块30和重建模块40的功能。
示例性的,计算机程序63可以被分割成一个或多个模块/单元,一个或者多个模块/单元被存储在存储器62中,并由处理器61执行,以完成本发明。一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述计算机程序63在终端设备60中的执行过程。例如,计算机程序63可被分割成实施例2中的读取模块10、解密模块20、保存模块30和重建模块40,各模块的具体功能如实施例2所示,为避免重复,此处不一一赘述。
终端设备60可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。终端设备可包括,但不仅限于,处理器61、存储器62。本领域技术人员可以理解,图5仅仅是终端设备60的示例,并不构成对终端设备60的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如终端设备还可以包括输入输出设备、网络接入设备、总线等。
所称处理器61可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
存储器62可以是终端设备60的内部存储单元,例如终端设备60的硬盘或内存。存储器62也可以是终端设备60的外部存储设备,例如终端设备60上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。进一步地,存储器62还可以既包括终端设备60的内部存储单元也包括外部存储设备。存储器62用于存储计算机程序以及终端设备所需的其他程序和数据。存储器62还可以用于暂时地存储已经输出或者将要输出的数据。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括是电载波信号和电信信号。
以上所述实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围,均应包含在本发明的保护范围之内。
Claims (7)
1.一种基于区块链的用户数据库重建方法,其特征在于,包括:
读取区块链上所有的数据条目,每一所述数据条目以键值对的方式存储,每一所述数据条目通过采用预设的加密算法进行加密后获取,每一所述数据条目的索引包括用户标识;
采用与所述加密算法相对应的解密算法,对每一所述数据条目进行解密,获取每一所述数据条目的解密结果;
若所述解密结果携带所述用户标识,则确定所述数据条目为与所述用户标识相对应的用户的数据信息,保存所述数据信息,其中,所述数据信息包括索引和数据密钥;
基于所述索引和所述数据密钥,建立区块链上所述数据信息的对应关系,在区块链的用户对应的终端设备上重建用户数据库;
在读取区块链上所有的数据条目之前,所述方法还包括:采用SM4-CBC模式或AES-CBC模式进行加密获取每一所述数据条目,所述数据条目加密前的索引采用所述用户标识作为前缀;加密所需的加密密钥为基于用户私钥派生生成的加密子密钥,SM4-CBC模式或AES-CBC模式中的初始化变量采用随机数;
其中,所述采用与所述加密算法相对应的解密算法,对每一所述数据条目进行解密,获取每一所述数据条目的解密结果,包括:获取每一所述数据条目上的所述随机数;根据每一所述随机数和所述用户私钥获取每一数据条目的解密密钥;根据每一所述数据条目的随机数和对应的所述解密密钥,解密每一所述数据条目,获取每一所述数据条目的解密结果。
2.根据权利要求1所述的基于区块链的用户数据库重建方法,其特征在于,所述读取区块链上所有的数据条目,包括:
通过遍历操作读取区块链上所有的数据条目。
3.根据权利要求1所述的基于区块链的用户数据库重建方法,其特征在于,所述根据每一所述随机数和所述用户私钥获取每一数据条目的解密密钥的计算公式为Key=Hash(HMACHash(d)random),其中,Key为所述解密密钥,Hash为单向散列函数,HMAC为密钥相关的哈希运算消息认证码,d为所述用户私钥,random为所述随机数。
4.根据权利要求1所述的基于区块链的用户数据库重建方法,其特征在于,所述基于所述索引和所述数据密钥,建立区块链上所述数据信息的对应关系,在区块链上重建用户数据库,包括:
基于所述索引和所述数据密钥,建立所述索引与加密索引的第一双向对应关系,并建立所述加密索引与所述数据密钥的第二双向对应关系,其中,所述加密索引为所述数据条目的索引;
基于第一双向对应关系和第二双向对应关系,在区块链的用户对应的终端设备上重建用户数据库。
5.一种基于区块链的用户数据库重建装置,其特征在于,包括:
加密模块,用于采用SM4-CBC模式进行加密获取每一所述数据条目,所述数据条目加密前的索引采用所述用户标识作为前缀;加密所需的加密密钥为基于用户私钥派生生成的加密子密钥,SM4-CBC模式中的初始化变量采用随机数;
读取模块,用于读取区块链上所有的数据条目,每一所述数据条目以键值对的方式存储,每一所述数据条目通过采用预设的加密算法进行加密后获取,每一所述数据条目的索引包括用户标识;
解密模块,用于采用与所述加密算法相对应的解密算法,对每一所述数据条目进行解密,获取每一所述数据条目的解密结果;
保存模块,用于若所述解密结果携带所述用户标识,则确定所述数据条目为与所述用户标识相对应的用户的数据信息,保存所述数据信息,其中,所述数据信息包括索引和数据密钥;
重建模块,用于基于所述索引和所述数据密钥,建立区块链上所述数据信息的对应关系,在区块链的用户对应的终端设备上重建用户数据库;
其中,解密模块包括:
随机数获取单元,用于获取每一所述数据条目上的所述随机数;
解密密钥获取单元,用于根据每一所述随机数和所述用户私钥获取每一数据条目的解密密钥;
解密结果获取模块,用于根据每一所述数据条目的随机数和对应的所述解密密钥,解密每一所述数据条目,获取每一所述数据条目的解密结果。
6.一种终端设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至5任一项所述基于区块链的用户数据库重建方法的步骤。
7.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至5任一项所述基于区块链的用户数据库重建方法的步骤。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810436868.4A CN108629027B (zh) | 2018-05-09 | 2018-05-09 | 基于区块链的用户数据库重建方法、装置、设备及介质 |
PCT/CN2018/095871 WO2019214066A1 (zh) | 2018-05-09 | 2018-07-17 | 区块链上用户数据库重建方法、装置、设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810436868.4A CN108629027B (zh) | 2018-05-09 | 2018-05-09 | 基于区块链的用户数据库重建方法、装置、设备及介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108629027A CN108629027A (zh) | 2018-10-09 |
CN108629027B true CN108629027B (zh) | 2023-08-01 |
Family
ID=63692183
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810436868.4A Active CN108629027B (zh) | 2018-05-09 | 2018-05-09 | 基于区块链的用户数据库重建方法、装置、设备及介质 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN108629027B (zh) |
WO (1) | WO2019214066A1 (zh) |
Families Citing this family (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109284206A (zh) * | 2018-10-29 | 2019-01-29 | 深圳市元征科技股份有限公司 | 一种基于区块链的数据库备份方法及相关设备 |
CN109617677A (zh) * | 2018-11-20 | 2019-04-12 | 深圳壹账通智能科技有限公司 | 基于对称加密的秘钥丢失找回方法及相关设备 |
CN110008738B (zh) * | 2019-02-21 | 2021-06-25 | 网易(杭州)网络有限公司 | 用于区块链合约数据的缓存方法、装置、介质和计算设备 |
CN110061840B (zh) * | 2019-03-12 | 2022-10-28 | 平安科技(深圳)有限公司 | 数据加密方法、装置、计算机设备及存储介质 |
US11392702B2 (en) * | 2019-03-17 | 2022-07-19 | Microsoft Technology Licensing, Llc | Discovery and matching of internet of things (IoT) devices and services using a secure global registry |
CN110297822B (zh) * | 2019-05-22 | 2023-06-02 | 平安科技(深圳)有限公司 | 面向区块链的密钥管理方法、装置、设备及存储介质 |
CN111130751A (zh) * | 2019-11-04 | 2020-05-08 | 杭州云萃流图网络科技有限公司 | 基于区块链的约定信息处理方法、装置、系统及电子设备 |
CN112926974B (zh) * | 2019-12-06 | 2024-02-13 | 环球数科集团有限公司 | 一种基于分布式账本原理的可离线票防伪方法 |
CN111130770B (zh) * | 2019-12-18 | 2023-04-28 | 杭州云萃流图网络科技有限公司 | 基于区块链的信息存证方法、系统、用户终端、电子设备及存储介质 |
US11314885B2 (en) | 2020-03-04 | 2022-04-26 | Rubidex, LLC | Cryptographic data entry blockchain data structure |
CN111339209B (zh) * | 2020-05-19 | 2020-08-28 | 鹏城实验室 | 基于区块链的信息管理方法和信息管理系统 |
CN112133386A (zh) * | 2020-09-29 | 2020-12-25 | 深圳壹账通智能科技有限公司 | 一种基于区块链的信息处理方法、装置、设备及介质 |
CN112688784B (zh) * | 2020-12-23 | 2023-04-11 | 中科美络科技股份有限公司 | 一种数字签名、验证方法、装置及系统 |
CN112733169A (zh) * | 2021-01-13 | 2021-04-30 | 深圳市星际大陆科技有限公司 | 一种基于区块链的数据管理方法、系统及终端设备 |
WO2022204495A2 (en) | 2021-03-25 | 2022-09-29 | Rubidex, LLC | Cryptographic data entry and transmission of sensor data |
CN114338665A (zh) * | 2021-12-01 | 2022-04-12 | 浪潮软件股份有限公司 | 基于区块链的申报材料防篡改系统 |
CN114866317B (zh) * | 2022-04-29 | 2023-01-10 | 中国科学院信息工程研究所 | 多方的数据安全计算方法、装置、电子设备和存储介质 |
CN117459634A (zh) * | 2023-11-22 | 2024-01-26 | 深圳市众智达信息科技有限公司 | 提升跨数据中心黑名单接口访问性能方法、系统和介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB201709367D0 (en) * | 2017-06-13 | 2017-07-26 | Nchain Holdings Ltd | Computer-implemented system and method |
CN107294709A (zh) * | 2017-06-27 | 2017-10-24 | 阿里巴巴集团控股有限公司 | 一种区块链数据处理方法、装置及系统 |
CN107528688A (zh) * | 2017-09-30 | 2017-12-29 | 矩阵元技术(深圳)有限公司 | 一种基于加密委托技术的区块链密钥保管及恢复方法、装置 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170048209A1 (en) * | 2015-07-14 | 2017-02-16 | Fmr Llc | Crypto Key Recovery and Social Aggregating, Fractionally Efficient Transfer Guidance, Conditional Triggered Transaction, Datastructures, Apparatuses, Methods and Systems |
KR101720268B1 (ko) * | 2015-10-26 | 2017-03-27 | (주)아이알엠 | 환자정보 보호를 위한 의료영상의 클라우드 데이터베이스 구축 및 판독 방법 |
CN106506493A (zh) * | 2016-10-27 | 2017-03-15 | 摩登大道时尚电子商务有限公司 | 基于区块链平台的数据处理方法 |
CN107273556A (zh) * | 2017-08-23 | 2017-10-20 | 上海点融信息科技有限责任公司 | 区块链数据索引方法和设备 |
CN107622096B (zh) * | 2017-08-31 | 2020-06-05 | 上海保险交易所股份有限公司 | 基于区块链系统的异步多方数据交互方法和存储介质 |
CN107682337B (zh) * | 2017-10-11 | 2020-09-29 | 深圳市轱辘汽车维修技术有限公司 | 一种车辆数据的处理方法及系统 |
-
2018
- 2018-05-09 CN CN201810436868.4A patent/CN108629027B/zh active Active
- 2018-07-17 WO PCT/CN2018/095871 patent/WO2019214066A1/zh active Application Filing
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB201709367D0 (en) * | 2017-06-13 | 2017-07-26 | Nchain Holdings Ltd | Computer-implemented system and method |
CN107294709A (zh) * | 2017-06-27 | 2017-10-24 | 阿里巴巴集团控股有限公司 | 一种区块链数据处理方法、装置及系统 |
CN107528688A (zh) * | 2017-09-30 | 2017-12-29 | 矩阵元技术(深圳)有限公司 | 一种基于加密委托技术的区块链密钥保管及恢复方法、装置 |
Also Published As
Publication number | Publication date |
---|---|
CN108629027A (zh) | 2018-10-09 |
WO2019214066A1 (zh) | 2019-11-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108629027B (zh) | 基于区块链的用户数据库重建方法、装置、设备及介质 | |
CN108377189B (zh) | 区块链上用户通信加密方法、装置、终端设备及存储介质 | |
US6898288B2 (en) | Method and system for secure key exchange | |
US10291392B2 (en) | Method and system for encrypting data | |
US8681975B2 (en) | Encryption method and apparatus using composition of ciphers | |
US20190140819A1 (en) | System and method for mekle puzzles symeteric key establishment and generation of lamport merkle signatures | |
US11128452B2 (en) | Encrypted data sharing with a hierarchical key structure | |
US11108543B2 (en) | Method for encrypting data for distributed storage | |
JP2016158189A (ja) | 鍵付替え方向制御システムおよび鍵付替え方向制御方法 | |
WO2021129470A1 (zh) | 基于多项式完全同态的二进制数据加密系统及方法 | |
Almuzaini et al. | Key aggregation cryptosystem and double encryption method for cloud-based intelligent machine learning techniques-based health monitoring systems | |
US20240063999A1 (en) | Multi-party cryptographic systems and methods | |
Zegers et al. | A lightweight encryption and secure protocol for smartphone cloud | |
US20230153445A1 (en) | Enhanced security systems and methods using a hybrid security solution | |
US20220360429A1 (en) | Location-key encryption system | |
KR101812311B1 (ko) | 사용자 단말 및 속성 재암호 기반의 사용자 단말 데이터 공유 방법 | |
KR101566416B1 (ko) | 보안성이 향상된 암·복호화 장치 및 방법 | |
CN111314287A (zh) | 一种公钥加密通信方式和装置 | |
CN112765671B (zh) | 本地化数据隐私加密方法及系统 | |
WO2018011825A1 (en) | Encryption and decryption of messages | |
CN113381854B (zh) | 数据传输方法、装置、设备和存储介质 | |
US20220368527A1 (en) | Location key search of encrypted files without decryption | |
Almuzaini et al. | Research Article Key Aggregation Cryptosystem and Double Encryption Method for Cloud-Based Intelligent Machine Learning Techniques-Based Health Monitoring Systems | |
Nishchal | Enhanced lightweight encryption algorithm for smartphone | |
CN116796343A (zh) | 多方数据加密处理方法、系统及终端 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 1254571 Country of ref document: HK |
|
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |