欢迎光临小豌豆知识网!
当前位置:首页 > 电学技术 > 电通讯技术> 一种区块链交易关键字可搜索加密方法及系统独创技术25994字

一种区块链交易关键字可搜索加密方法及系统

2021-03-09 15:24:57

一种区块链交易关键字可搜索加密方法及系统

  技术领域

  本发明涉及区块链技术领域,特别涉及一种区块链交易关键字可搜索加密方法及系统。

  背景技术

  在区块链系统中,任何单一节点都是平等的,可以获取相应的数据,而这些数据均以分布式存储、分布式加密以及分布式记账方式存在。为了达到共识节点的一致性,区块链数据交易记录必须公开给区块链中所有的节点,这必将引发用户交易数据泄露风险。

  针对这个难题,有研究者提出对交易数据加密后上传至区块链,但这样用户对区块链上交易数据的可搜索性将变差,还需要下载所有数据到本地解密后才能进行搜索,进一步增加了搜索的时间和空间复杂度。而可搜索加密技术就是为解决此问题提出的,但是当前可搜索加密技术多是针对云计算环境下的可搜索加密算法,还缺乏在区块链系统上支持可搜索加密的相关技术。另外,目前的数字签名算法普遍是基于传统的PKI(Public KeyInfrastructure)公钥密码体系,在管理上存在一定缺陷,如证书查找、撤销、存储、颁发和验证都需要占用大量的计算、存储和网络资源。而标识密码体制可以有效解决此类问题,在该体制下,用户的公钥就是用户的公开标识信息,从而避免了传统公钥密码体制中的复杂管理问题。

  目前,对于区块链数据的隐私保护问题,有检测恶意节点和加密数据两方面解决办法。针对区块链节点的加入设置规则,没有得到认证许可的节点不能加入区块链中。对于已经存在的恶意节点,现有技术提出了一种基于恶意节点行为分析的检测方法,可以识别定位恶意节点,消除安全隐患。在数据货币中,应用广泛的是“混币(Coin Shuffle)”机制,该方案的主要措施是对交易单中的内容进行混淆,从而增加攻击者的分析难度。Zcash的加密方案是一种利用零知识证明技术(Zero-Knowledge Proof)来达到不需透露交易的相关信息,但该算法证明和计算过程过于复杂。有研究者采用区块链技术来解决物联网的隐私数据保护问题,其主要改进是对物联网中产生的数据进行区块化,实现去中心化的存储,每个区块只存储数据的一小部分,然后对其进行加密处理从而达到隐私保护的目的。这种分布式存储和计算方式资源耗费较大。还有研究者采用区块链数据库来存放个人隐私数据的加密形式,但是在构造区块链数据库时,还是保留了一些明文来达到对数据的标识,无法完全实现数据保密。还有研究者对医疗数据进行加密处理,只有病人才能对加密数据进行解密,但是由于该区块链系统同样暴露了一些明文信息,会导致恶意用户对数据的搜索和破坏,对隐私保护的能力不够彻底。还有研究者提出一种基于可搜索加密的区块链数据隐私保护机制,但搜索效率不高,仅适用于小数据量的安全存储。

  综上,现有技术主要存在以下缺点:1、上传到区块链的交易单只适用于存储少量的明文数据,网络传输消耗大。2、区块链数据库存储数据的安全保护强度不够,泄露了一些明文交易信息。3、传统的公钥加密方法存在数字证书管理困难与计算存储资源消耗过大问题。

  发明内容

  本发明提供一种区块链交易关键字可搜索加密方法及系统,以解决对区块链上的敏感交易数据加密存储、有效查询以及传统的公钥基础设施PKI密码体系存在证书管理困难的技术问题。

  为解决上述技术问题,本发明提供了如下技术方案:

  一方面,本发明提供一种区块链交易关键字可搜索加密方法,其包括:

  获取当前用户所上传的交易单信息;其中,所述交易单信息包括当前用户要上传的文件、所述文件的关键字、身份标识公钥,以及身份标识私钥;

  对所述文件进行压缩,用所述身份标识公钥对压缩后的文件进行加密处理,用所述身份标识私钥对当前待构造的交易单的哈希值进行数字签名;并利用可搜索加密算法对所述关键字进行可搜索加密处理;以完成当前交易单的构造;

  基于构造的交易单完成交易单上链处理;并在索引结构中建立当前上链的交易单所存储的经过可搜索加密处理后的关键字和相应区块序号的映射关系;

  获取当前用户所输入的搜索关键字,并根据所述搜索关键字,利用所述索引结构搜索与所述搜索关键字对应的区块,并将搜索结果返回给当前用户。

  进一步地,所述完成当前交易单的构造包括:

  将时间戳、序列化的加密文件、可搜索加密处理后的关键字、身份标识公钥、交易单哈希值的数字签名存入交易单,完成当前交易单的构造。

  进一步地,所述基于构造的交易单完成交易单上链处理,包括:

  当前区块链节点将一段时间内构造的交易单打包后,添加预准备状态的投票状态码,构成投票信息;

  当前区块链节点将所述投票信息发送给区块链中的其他节点进行PBFT共识验证,区块链中的其他节点接收所述投票信息并对其中的交易单依次验证,若验证通过,则选举记账节点;若验证失败,则退回当前交易单并不记入区块;

  由通过PBFT共识选出的记账权节点构造新区块并广播给其他节点,收到广播信息的节点对所述新区块所包含的交易单进行验证,确认有效后,接收所述新区块,并在各自区块链的尾部添加所述新区块。

  进一步地,获取当前用户所输入的搜索关键字,并根据所述搜索关键字,利用所述索引结构搜索与所述搜索关键字对应的区块,并将搜索结果返回给当前用户,包括:

  获取当前用户所输入的搜索关键字,并利用可搜索加密算法对所述搜索关键字进行可搜索加密处理,生成所述搜索关键字对应的陷门;

  将所述陷门与所述索引结构进行匹配,若陷门匹配成功,则校验相应区块,再返回匹配交易单;若陷门匹配失败,则返回无对应文件。

  进一步地,获取当前用户所输入的搜索关键字,并根据所述搜索关键字,利用所述索引结构搜索与所述搜索关键字对应的区块,并将搜索结果返回给当前用户,还包括:

  在返回匹配交易单后,对交易单的数字签名进行验证,在验证通过后对加密文件通过身份标识密钥解密,再解压缩,以得到对应的明文文件。

  另一方面,本发明还提供一种区块链交易关键字可搜索加密系统,其包括:

  交易单信息获取模块,用于获取当前用户所上传的交易单信息;其中,所述交易单信息包括当前用户要上传的文件、所述文件的关键字、身份标识公钥,以及身份标识私钥;

  数据加密模块,用于对所述文件进行压缩,用所述身份标识公钥对压缩后的文件进行加密处理,用所述身份标识私钥对当前待构造的交易单的哈希值进行数字签名;并利用可搜索加密算法对所述关键字进行可搜索加密处理;

  交易单上链模块,用于完成当前交易单的构造,并基于构造的交易单完成交易单上链处理;

  索引构造模块,用于在索引结构中建立当前上链的交易单所存储的经过可搜索加密处理后的关键字和相应区块序号的映射关系;

  交易单下链模块,用于获取当前用户所输入的搜索关键字,并根据所述搜索关键字,利用所述索引结构搜索与所述搜索关键字对应的区块,并将搜索结果返回给当前用户。

  进一步地,所述交易单上链模块完成当前交易单构造的过程包括:

  将时间戳、序列化的加密文件、可搜索加密处理后的关键字、身份标识公钥、交易单哈希值的数字签名存入交易单,完成当前交易单的构造。

  进一步地,所述交易单上链模块基于构造的交易单完成交易单上链处理的过程包括:

  当前区块链节点将一段时间内构造的交易单打包后,添加预准备状态的投票状态码,构成投票信息;

  当前区块链节点将所述投票信息发送给区块链中的其他节点进行PBFT共识验证,区块链中的其他节点接收所述投票信息并对其中的交易单依次验证,若验证通过,则选举记账节点;若验证失败,则退回当前交易单并不记入区块;

  由通过PBFT共识选出的记账权节点构造新区块并广播给其他节点,收到广播信息的节点对所述新区块所包含的交易单进行验证,确认有效后,接收所述新区块,并在各自区块链的尾部添加所述新区块。

  进一步地,所述交易单下链模块具体用于:

  获取当前用户所输入的搜索关键字,并利用可搜索加密算法对所述搜索关键字进行可搜索加密处理,生成所述搜索关键字对应的陷门;

  将所述陷门与所述索引结构进行匹配,若陷门匹配成功,则校验相应区块,再返回匹配交易单;若陷门匹配失败,则返回无对应文件。

  进一步地,所述交易单下链模块还用于:

  在返回匹配交易单后,对交易单的数字签名进行验证,在验证通过后对加密文件通过身份标识密钥解密,再解压缩,以得到对应的明文文件。

  再一方面,本发明还提供一种电子设备,其包括处理器和存储器;其中,存储器中存储有至少一条指令,所述指令由处理器加载并执行以实现上述方法。

  又一方面,本发明还提供一种计算机可读存储介质,所述存储介质中存储有至少一条指令,所述指令由处理器加载并执行以实现上述方法。

  本发明提供的技术方案带来的有益效果至少包括:

  1、本发明的方法对用户上传到区块链交易单的文件压缩后进行加密存储,节省了区块链的存储空间,同时减少了网络传输数据量;

  2、本发明的方法对交易单内的关键字进行可搜索加密处理,增加了安全性,保障了用户隐私且能有效实现关键字查询;

  3、本发明的方法使用标识密码算法对交易单内的明文数据进行加密、对交易单的散列值通过标识密码算法进行数字签名,解决了传统的PKI公钥密码体系存在的证书管理困难与资源浪费的问题。

  附图说明

  为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

  图1是本发明实施例提供的区块链交易关键字可搜索加密方法的流程图;

  图2是本发明实施例提供的系统模型图;

  图3是本发明实施例提供的区块设计图;

  图4是本发明实施例提供的交易单上链过程交互图;

  图5是本发明实施例提供的用户搜索交易单的过程交互图。

  具体实施方式

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

  第一实施例

  本实施例提供一种区块链交易关键字可搜索加密方法,该方法可以由电子设备实现,该电子设备可以是终端或者服务器。该区块链交易关键字可搜索加密方法的执行流程如图1所示,包括以下步骤:

  S101,获取当前用户所上传的交易单信息;其中,交易单信息包括当前用户要上传的文件、文件的关键字、身份标识公钥,以及身份标识私钥;

  S102,对文件进行压缩,用身份标识公钥对压缩后的文件进行加密处理,用身份标识私钥对当前待构造的交易单的哈希值进行数字签名;并利用可搜索加密算法对关键字进行可搜索加密处理;以完成当前交易单的构造;

  S103,基于构造的交易单完成交易单上链;并在索引结构中建立当前交易单所存储的经过可搜索加密处理后的关键字和相应区块序号的映射关系;

  S104,获取当前用户所输入的搜索关键字,并根据搜索关键字,利用索引结构搜索与搜索关键字对应的区块,并将搜索结果返回给当前用户。

  综上,本实施例的方法利用标识密码算法加密和签名交易单文件,利用可搜索加密算法处理交易单关键字,并将加密文件、数字签名、处理后的关键字一起存入区块链的交易单,使之与区块有效结合,并设置索引。从而解决了对区块链上的敏感交易数据加密存储、有效查询以及传统的公钥基础设施PKI密码体系存在证书管理困难的问题。有效保障了区块链用户的交易数据安全与隐私,为区块链技术在高隐私场景中的应用提供了可靠的平台级安全服务。

  第二实施例

  本实施例提供一种区块链交易关键字可搜索加密方法,该方法可以由电子设备实现,该电子设备可以是终端或者服务器。该区块链交易关键字可搜索加密方法的执行流程如图2所示,区块设计图如图3所示,该方法包括以下步骤:

  步骤一、初始化:包括可搜索加密算法参数和区块链账本数据库初始化。

  1、对可搜索加密算法的参数进行初始化,并保存到本地文件;其中,可搜索加密算法需要初始化的参数包括:两个随机生成的512位质数的乘积primeM、生成元g,以及primeM的欧拉函数值fainM。

  2、对区块链账本数据库进行初始化,构建区块链创世块,序列化后存入区块链数据库,初始化区块数量为0,计算并保存创世块区块头哈希值。

  步骤二、交易单上链,如图4所示,包括交易单构造、投票信息构造、实用拜占庭容错(Practical Byzantine Fault Tolerance,PBFT)共识,以及区块入库。

  1、交易单构造,用户输入要上传的原始文件、该文件的关键字、身份标识公钥、身份标识私钥。通过压缩算法对原始文件进行压缩,用身份标识公钥对压缩后的文件进行加密处理;从本地文件读取可搜索加密算法参数,对关键字进行可搜索加密处理;然后将时间戳、序列化的加密文件、可搜索加密处理后的关键字、身份标识秘钥、交易单哈希值的签名等五部分信息存入交易单,将交易单传给区块链节点;其中,可搜索加密处理过程包括:取大于关键字哈希值的第一个质数t1,令t2≡g^t1(mod primeM)作为可搜索加密处理结果。

  2、投票信息构造,区块链节点将一段时间内构造的交易单打包后,添加预准备状态的投票状态码,构成投票信息。

  3、PBFT共识,将投票信息发送给区块链中的其他节点进行PBFT共识验证,区块链中的其他节点接收投票信息并对其中的交易单依次验证并选举记账节点,若验证通过,则说明数据没有问题,修改投票信息的投票状态码为准备状态并转发;若验证不通过,则说明数据已被篡改,退回该交易单并不记入区块。若验证结果正确的节点数大于最少确认个数,则修改投票信息的投票状态码为提交状态;否则,则说明上传的交易单出现问题,需要再次上传以待验证。

  4、区块入库,经过PBFT共识后,由通过PBFT共识选出的记账权节点构造区块:将投票信息中的交易单存入区块体,读取数据库中的区块数量和上一区块头哈希值存入区块头,再存入时间戳、版本号、随机数、交易单哈希值的Merkle tree树根。将区块体和区块头存入区块,并将序列化后的区块存入数据库。更新区块序号和上一区块头哈希值。由获得记账权的节点把新区块广播给网络中的其他节点,收到广播信息的节点对区块所包含的交易单进行验证,确认有效后,接收该区块,并在各自区块链的尾部连接新区块。

  5、上链结果,节点将交易单上链结果返回给用户。

  步骤三、索引构建。

  节点使用列表作索引结构,如表1所示,以每个交易单存储的处理后的关键字t2作为索引,由不同的t2定位到相应区块序号并及时更新,存入数据库。

  表1索引结构

  

  

  进一步地,请参阅图5,本实施例的方法还包括以下步骤:

  步骤四、关键字搜索。

  用户输入要搜索的关键字,用户从本地文件读取primeM、g、fainM,用其对搜索的关键字进行处理:取大于搜索值哈希值的第一个质数s1,令s2为s1关于fainM的模乘逆元,即s1*s2≡1(mod fainM),s3是随机生成的512位数,则s4=s2*s3,s5≡g^s3(mod primeM),生成陷门(primeM,s4,s5)传给节点。

  步骤五、陷门匹配。

  区块链节点接收陷门,与数据库内的索引结构匹配,即计算t2^s4(mod primeM)与s5是否相等。

  步骤六、交易单下链。

  若陷门匹配成功,则得到相应区块序号,并对区块进行校验(验证完整性:从后校验区块hash,整个区块hash由下一区块存储的上一区块hash校验,再次计算区块头hash对比;校验Merkle tree根节点hash再次计算所有交易信息hash的Merkle tree根对比),再对区块内交易单签名进行验证匹配,最终返回匹配成功的交易单;若匹配失败,则返回无结果。用户对返回的交易单的签名进行验证后,对其内的加密文件采用身份标识秘钥解密,再解压缩,得到初始文件。

  综上,本实施例的方法利用标识密码算法加密和签名交易单文件,利用可搜索加密算法处理交易单关键字,并将加密文件、数字签名、处理后的关键字一起存入区块链的交易单,使之与区块有效结合,并设置索引。从而解决了对区块链上的敏感交易数据加密存储、有效查询以及传统的公钥基础设施PKI密码体系存在证书管理困难的问题。有效保障了区块链用户的交易数据安全与隐私,为区块链技术在高隐私场景中的应用提供了可靠的平台级安全服务。

  第三实施例

  本实施例提供一种区块链交易关键字可搜索加密系统,该区块链交易关键字可搜索加密系统包括以下模块:

  交易单信息获取模块,用于获取当前用户所上传的交易单信息;其中,所述交易单信息包括当前用户要上传的文件、所述文件的关键字、身份标识公钥,以及身份标识私钥;

  数据加密模块,用于对所述文件进行压缩,用所述身份标识公钥对压缩后的文件进行加密处理,用所述身份标识私钥对当前待构造的交易单的哈希值进行数字签名;并利用可搜索加密算法对所述关键字进行可搜索加密处理;

  交易单上链模块,用于完成当前交易单的构造,并基于构造的交易单完成交易单上链处理;

  索引构造模块,用于在索引结构中建立当前上链的交易单所存储的经过可搜索加密处理后的关键字和相应区块序号的映射关系;

  交易单下链模块,用于获取当前用户所输入的搜索关键字,并根据所述搜索关键字,利用所述索引结构搜索与所述搜索关键字对应的区块,并将搜索结果返回给当前用户。

  本实施例的区块链交易关键字可搜索加密系统与上述第一实施例的区块链交易关键字可搜索加密方法相对应;其中,本实施例的区块链交易关键字可搜索加密系统中的各功能模块所实现的功能与上述第一实施例的区块链交易关键字可搜索加密方法中的各流程步骤一一对应;故,在此不再赘述。

  第四实施例

  本实施例提供一种电子设备,其包括处理器和存储器;其中,存储器中存储有至少一条指令,所述指令由处理器加载并执行,以实现上述实施例的方法。

  当然,该电子设备可因配置或性能不同而产生比较大的差异,可包括一个或一个以上处理器(central processing units,CPU)和一个或一个以上的存储器。

  本实施例的电子装置利用标识密码算法加密和签名交易单文件,利用可搜索加密算法处理交易单关键字,并将加密文件、数字签名、处理后的关键字一起存入区块链的交易单,使之与区块有效结合,并设置索引。从而解决了对区块链上的敏感交易数据加密存储、有效查询以及传统的公钥基础设施PKI密码体系存在证书管理困难的问题。有效保障了区块链用户的交易数据安全与隐私,为区块链技术在高隐私场景中的应用提供了可靠的平台级安全服务。

  第五实施例

  本实施例提供一种计算机可读存储介质,该存储介质中存储有至少一条指令,所述指令由处理器加载并执行,以实现上述实施例的方法。其中,该计算机可读存储介质可以是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等。其内存储的指令可由终端中的处理器加载并执行。

  本实施例的存储介质所存储的方法利用标识密码算法加密和签名交易单文件,利用可搜索加密算法处理交易单关键字,并将加密文件、数字签名、处理后的关键字一起存入区块链的交易单,使之与区块有效结合,并设置索引。从而解决了对区块链上的敏感交易数据加密存储、有效查询以及传统的公钥基础设施PKI密码体系存在证书管理困难的问题。保障了区块链用户的交易数据安全与隐私,为区块链技术在高隐私场景中的应用提供了可靠的平台级安全服务。

  此外,需要说明的是,本发明可提供为方法、装置或计算机程序产品。因此,本发明实施例可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本发明实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质上实施的计算机程序产品的形式。

  本发明实施例是参照根据本发明实施例的方法、终端设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

  这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

  还需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。

  最后需要说明的是,以上所述是本发明优选实施方式,应当指出,尽管已描述了本发明优选实施例,但对于本技术领域的技术人员来说,一旦得知了本发明的基本创造性概念,在不脱离本发明所述原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明实施例范围的所有变更和修改。

《一种区块链交易关键字可搜索加密方法及系统.doc》
将本文的Word文档下载到电脑,方便收藏和打印
推荐度:
点击下载文档

文档为doc格式(或pdf格式)