CN114615050B - 基于区块链存储的可验证的可搜索对称加密方法 - Google Patents

基于区块链存储的可验证的可搜索对称加密方法 Download PDF

Info

Publication number
CN114615050B
CN114615050B CN202210228130.5A CN202210228130A CN114615050B CN 114615050 B CN114615050 B CN 114615050B CN 202210228130 A CN202210228130 A CN 202210228130A CN 114615050 B CN114615050 B CN 114615050B
Authority
CN
China
Prior art keywords
abs
algorithm
label
data
block
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
Application number
CN202210228130.5A
Other languages
English (en)
Other versions
CN114615050A (zh
Inventor
张方国
陈建彰
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sun Yat Sen University
Original Assignee
Sun Yat Sen University
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Sun Yat Sen University filed Critical Sun Yat Sen University
Priority to CN202210228130.5A priority Critical patent/CN114615050B/zh
Publication of CN114615050A publication Critical patent/CN114615050A/zh
Application granted granted Critical
Publication of CN114615050B publication Critical patent/CN114615050B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0869Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network 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
    • H04L63/0442Network 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 wherein the sending and receiving network entities apply asymmetric encryption, i.e. different keys for encryption and decryption
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information
    • H04L63/123Applying verification of the received information received data contents, e.g. message integrity
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic 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/321Cryptographic 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 involving a third party or a trusted authority
    • H04L9/3213Cryptographic 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 involving a third party or a trusted authority using tickets or tokens, e.g. Kerberos

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明属于信息检索和密码学技术领域,更具体地,涉及一种基于区块链存储的可验证的可搜索对称加密方法。本发明为方便查找表数据结构和可搜索对称加密方案的设计与实现,对区块链的存储机制进行高层次的功能抽象,屏蔽了区块链具体实现的细节;为实现紧密的空间存储和高效的检索性能,本发明基于二叉搜索树提出了一个高效的查找表数据结构实现,其中节点使用仅追加块存储的数据块进行紧密的打包存储,而检索操作则使用二分查找的思路来减少查询工作量;为实现可搜索对称加密的可验证性,本发明使用消息认证码,对与关键字所关联的次序和结果等信息进行了签名,实现了结果的可验证性和不可伪造性,从而抵御了恶意服务器的伪造行为。

Description

基于区块链存储的可验证的可搜索对称加密方法
技术领域
本发明属于信息检索和密码学技术领域,更具体地,涉及一种基于区块链存储的可验证的可搜索对称加密方法。
背景技术
可搜索对称加密(Searchable Symmetric Encryption,缩写SSE)是近年来应用密码学领域的研究热点之一,其旨在保护外包数据隐私性的同时,使得对密文数据的检索成为可能。2000年,Song等人首次提出可搜索对称加密方案;随后,Goh以及Chang等人分别提出两个基于正向索引的可搜索对称加密方案;2006 年,Curtmola等人研究了基于倒排索引的可搜索对称加密,并第一次对SSE的安全性做出正式定义。此后,许多SSE方案被相继提出,就SSE的功能和安全性方面做出了扩展。可验证的可搜索对称加密(Verifiable SSE,缩写VSSE)是该领域的一个研究分支,其使用消息认证码等工具,使得数据用户能够校验服务器返回结果的正确性,从而抵御了不诚实的服务器返回不正确或不完整结果的问题。
然而,现有的大多数工作都聚焦单一服务器的场景,因此可能会导致以下问题:第一,单一服务器场景容易发生单点故障,即一旦服务器发生了故障,则索引数据有可能会丢失且不可挽回;第二,不诚实的服务器可能会返回不正确的结果,但由于只有一台服务器,数据用户不能通过切换服务器来寻求正确的结果;第三,在不清楚数据是否有效、服务器是否可靠的情况下,数据用户将索引数据迁移到其他云服务器上是困难的。近年来学术界有多个工作聚焦于基于区块链存储的可搜索对称加密,根据加密数据库存储的方式,主要分为两个主流研究方向:第一,将加密数据库存储在交易数据中,以李会格等人的工作为代表,其使用多个交易分块地存储大规模的索引数据,并使用链表的机制将这些索引分块串接起来。但该方案涉及较多的区块链运作细节,因此可读性和可扩展性不够强,且使用链表机制存储大规模数据的做法使得方案的存取效率仍有一定的提升空间;第二,采取智能合约来存储索引数据,以胡胜山等人的工作为代表。这些方案屏蔽了区块链底层的运作细节,因而具备较强的可扩展性,但由于该方案的初始化操作和搜索操作都交由智能合约完成,因此会引入高昂的性能开销和金钱开销,导致方案对于大规模数据的场合不够高效和实用。
综上所述,即便有些基于区块链存储的工作针对单一服务器场景的三个问题提出了优秀的解决方法,但仍不可避免地在可扩展性、性能等方面做出了妥协。因此,如何在大数据的背景下针对上述问题设计一个高效的、高可扩展性的可验证的可搜索对称加密搜索方法,成为急需解决的关键问题。
发明内容
本发明为克服上述现有技术中的缺陷,提供一种基于区块链存储的可验证的可搜索对称加密方法,可用于在大数据的背景下实现索引数据的多服务器去中心化存储,并具有良好的扩展性和高效的搜索效率。
为解决上述技术问题,本发明采用的技术方案是:一种基于区块链存储的可验证的可搜索对称加密方法,包括:
S1.密钥生成算法:运行于数据用户端,数据用户输入安全参数λ,密钥生成算法使用随机数生成算法产生密钥K,K′←{0,1}λ,之后,数据用户将密钥K,K′妥善保存在本地存储中;
S2.初始化算法:运行于数据用户端,用户输入密钥K,K′,以及数据库DB,初始化算法为数据库DB生成加密数据库EDB=(LT1,LT2),并写入到仅追加块存储ABS模型中;其中,LT1存储了加密数据库,用于加密搜索;而LT2存储了每个关键字对应的证据,用于结果验证;
S3.令牌生成算法:运行于数据用户端,用户输入待搜索关键字w,以及密钥K1,K2,令牌生成算法生成一个与待搜索关键字w相关联的搜索令牌τ=(K1,K2,label),并将搜索令牌τ发送至服务提供者端;
S4.搜索算法:运行于服务提供者端,当服务提供者收到数据用户发来的搜索令牌τ后,对保存在ABS模型的加密数据库EDB=(LT1,LT2)进行检索,调用搜索算法从LT1中得到相匹配的文件标识符集合
Figure GDA0003889803680000021
并从LT2提取出相应的证据prf,最后将/>
Figure GDA0003889803680000022
和prf发送至数据用户端;
S5.验证算法:运行于数据用户端,当数据用户收到服务提供者返回的结果
Figure GDA0003889803680000031
后,输入上述结果、密钥K′以及令牌生成阶段输出的label,验证算法校验服务提供者返回的结果是否正确,如果结果正确,则读取结果集合/>
Figure GDA0003889803680000032
的文件标识符进行后续的操作;否则,数据用户选择继续和其他服务提供者沟通,重新执行搜索算法和验证算法以获取可靠的结果。
进一步的,所述的仅追加块存储ABS模型用于对区块链存储进行高层次的功能抽象,以屏蔽区块链的运作细节,以便基于区块链存储的可搜索对称加密方法的设计与分析;ABS模型使用数据块的结构组织数据,不能修改或删除已写入的块,只能将新的块写入到存储中;当一个块被写入后,ABS模型会返回指向该块的地址;ABS模型的数据块长度是固定的,由公共参数γ指定;当待写入数据的长度大于γ时,ABS模型终止写入而不会切分数据;如果待写入数据的长度小于块的长度,ABS模型在写入前使用足够多个0填充数据,直至数据长度等于块的长度。
进一步的,所述的ABS模型包括:
ABS←Init(γ):初始化ABS算法,其接受一个公开参数γ作为输入,并输出一个仅追加块存储ABS,其中γ指定块的长度;
v/⊥←Get(ABS,addr):获取块数据算法,其输入一个仅追加块存储ABS和一个块地址addr,如果addr指定的块存在,它返回该块所有的内容v;否则,它返回空指示符⊥;
(ABS′,addr)←Put(ABS,v):写入块数据算法,其输入一个仅追加块存储ABS 和一个要写入的数据v,如果v的长度大于块长度γ,算法就会终止;否则,算法输出更新后的仅追加块存储ABS′以及该数据所在的块地址addr。
进一步的,还包括基于区块链存储的静态查找表数据结构的实现方法,用于在区块链存储中实现较高效的键-值存储和读取效率,包括:
(LT,ABS′)←LTInit({(l1,v1),…,(ln,vn)},ABS):初始化算法LTlnit,其接受一组键-值对{(li,vi)}1≤i≤n和仅追加块存储ABS作为输入,然后输出更新后的块存储 ABS′,以及存储在ABS′中的查找表LT;
v/⊥←LTGet(l,LT,ABS):查找表检索算法LTGet,其接受一个键l、查找表LT以及仅追加块存储ABS作为输入,如果查找表LT中存在键为l的项,则输出对应的值 v;否则,输出空指示符⊥。
进一步的,基于二叉搜索树的思想,给出具体的基于区块链存储的静态查找表数据结构BinST的实现方法;一棵M阶的BinST结点的数据成员中,最多有M个键-值对,且最多包含两个子结点(左孩子和右孩子)。对于BinST的结点,将该结点所包含的键集合中的最小者称为结点的最小键,将其中最大者称为结点的最大键。M阶BinST具有以下性质:若任意结点的左子树不空,则左子树上所有结点的键均小于它的根结点的最小键;若任意结点的右子树不空,则右子树上所有结点的键均大于它的根结点的最大键;任意结点的左、右子树也分别为M阶BinST。
给定n个键-值对{(l1,v1),…,(ln,vn)},M阶BinST的初始化算法LTlnit包括:
若n=0,返回空树(其中根节点地址表示为空指示符⊥);否则,对 {(l1,v1),…,(ln,vn)}按键的非降序进行排序,结果为{(l′1,v′1),…,(l′n,v′n)};
将有序的键-值对{(l′1,v′1),…,(l′n,v′n)}切分为
Figure GDA0003889803680000049
个子集合 {(l′1,v′1),…,(l′M,v′M)},…,/>
Figure GDA0003889803680000041
为简化表示,使用符号Bi来表示第i个子集合;
对于子集合列表
Figure GDA0003889803680000042
调用以下子例程自底向上地构造BinST:
读取子例程的输入,即子集合列表B={B1,B2,…,Bm};若列表B为空,输出空树(其中根节点地址表示为空指示符⊥);否则,从列表B中选择中间元素
Figure GDA0003889803680000043
构造BinST结点x,将/>
Figure GDA0003889803680000044
中的键-值对按序写入到结点x的相应数据成员中;对于位于/>
Figure GDA0003889803680000045
左边的子列表
Figure GDA0003889803680000046
递归调用该子例程生成左子树bl,将bl的根结点作为x的左孩子;同理,对于位于/>
Figure GDA0003889803680000047
右边的子列表/>
Figure GDA0003889803680000048
递归调用该子例程生成右子树br,将br的根结点作为x的右孩子;通过调用方法(ABS,addrx)←Put(ABS,x),将节点x写入到块存储ABS中,输出以结点x为根的BinST子树b,其中b的根节点地址为addrx
在BinSTb(其中b的根节点表示为b.root,而根节点地址表示为addrb.root) 中查找键l详细步骤,即查找表检索算法LTGet包括:
根据b的根节点地址addrb.root,如果addrb.root为空指示符⊥,则b为空树,查找失败,算法结束;否则,调用方法b.root←Get(ABS,addrb.root)读取b.root的详细数据;
若l小于b.root的最小键,则根据b.root的左孩子地址,递归搜索左子树;
若l大于b.root的最大键,则根据b.root的右孩子地址,递归搜索右子树,重复查找步骤;否则,
对b.root中包含的键集合进行二分查找,如果查找成功,返回相应的值;否则,查找失败,算法结束。
进一步的,S2中的初始化算法具体包括:
S21.初始化两个空列表L1,L2
S22.对于数据库DB包含的每一个关键字w,进行以下操作:
计算K1←F(1||w),K2←F(2||w),并初始化一个用于计数的变量c←0以及一个空字符串
Figure GDA0003889803680000051
对于包含于DB(w)的每一个文档标识符id,计算l←F(K1,c),d←E(K2,id),并自增计数器c←c+1,然后将二元组(l,d)添加至列表L1中,并将id追加到字符串
Figure GDA0003889803680000052
上,即
Figure GDA0003889803680000053
计算labelw←F(K3,w),以及
Figure GDA0003889803680000054
并将二元组 (labelw,prfw)添加到列表L2中;
S23.对列表L2按字典序的增序进行排序;
S24.初始化另一个空列表L′2,并令i←0;
S25.顺序遍历列表L2中的每一个元组(label,prf),计算 prf′←Sign(K′,label||i),将四元组(label,prf,i,prf′)添加到列表L′2中,并自增计数器i←i+1;
S26.最后将两个列表分别构建两个静态查找表(LT1,ABS′)←LTInit(L1,ABS),(LT2,ABS′)←LTInit(L′2,ABS)。
进一步的,S3中的令牌生成算法具体包括:
S31.计算K1←F(1||w),K2←F(2||w)以及label←F(K3,w);
S32.返回搜索令牌τ=(K1,K2,label)。
进一步的,S4中的搜索算法具体包括:
S41.将加密数据库EDB解析为二元组(LT1,LT2),并将搜索令牌τ解析为三元组(K1,K2,label);
S42.初始化一个空列表
Figure GDA0003889803680000061
并初始化一个计数器c←0;
S43.开始以下循环,直至循环内部发生终止:
获取d←LTGet(F(K1,c),LT1,ABS),如果d为空白指示符⊥,则循环终止;否则,计算id←D(K2,d),并将id添加到列表
Figure GDA00038898036800000610
上;
自增计数器c←c+1;
S44.如果列表
Figure GDA0003889803680000069
不为空,则获取(prf,i,prf′)←LTGet(label,LT2,ABS),并跳过步骤S45执行步骤S46;否则,执行步骤S45;
S45.找到i,使得labeli<label<labeli+1,并获取(prfi,i,prf′i)← LTGet(labeli,LT2,ABS),以及(prfi+1,i+1,prf′i+1)←LTGet(labeli+1,LT2,ABS);此时,构造证据prf←(labeli,i,prf′i,labeli+1,i+1,prf′i+1);
S46.返回二元组
Figure GDA0003889803680000062
进一步的,S5中的验证算法具体包括:
S51.如果服务提供者返回的结果集合
Figure GDA0003889803680000063
不为空,则算法将其解析为
Figure GDA0003889803680000064
并依次串接成字符串/>
Figure GDA0003889803680000065
最后调用消息认证码的验证算法/>
Figure GDA0003889803680000066
如果验证算法校验成功,则结果集合/>
Figure GDA0003889803680000067
是正确且完整的,算法返回True;否则,服务提供者返回的结果有误,算法返回 False;
S52.如果服务提供者返回的结果集合
Figure GDA0003889803680000068
为空,则解析prf为 (labeli,i,prf′i,labeli+1,i+1,prf′i+1);并检查是否满足labeli≤label≤labeli+1,如果不满足,意味着服务提供者返回的结果有误,算法返回False;否则,继续执行步骤S53;
S53.分别调用两次消息认证码的验证算法Verify(K′,labeli||i,prf′i)以及Verify(K′,labeli+1||i+1,prf′i+1);如果两次消息认证码的验证算法都返回成功,则意味着相应关键字的结果确实为空,算法返回True;否则,服务提供者返回的结果有误,算法返回False。
本发明还提供一种电子设备,包括:存储器、处理器以及存储在存储器上并可在处理器上运行计算机程序,所述的处理器执行所述计算机程序,实现以上所述的基于区块链存储的可验证的可搜索对称加密方法。
与现有技术相比,有益效果是:本发明提供的一种基于区块链存储的可验证的可搜索对称加密方法,而实现了数据索引的完整性、不可篡改性以及去中心化存储;本发明具有可验证性,得益于消息认证码的不可伪造性,数据用户使用自己的本地密钥检验服务提供者的结果是否正确,抵御了恶意服务提供者的伪造和破坏行为;另外,本发明还提出了一种高效的数据索引存储机制,相比已有工作,具有更高的可扩展性,以及高效的存储和检索性能,适用于当下大数据的使用场景。
附图说明
图1是本发明提出的基于区块链存储的静态查找表实现BinST的示意图。
图2为静态查找表BinST的初始化步骤流程图。
图3为静态查找表BinST子树的构造子例程步骤流程图。
图4为静态查找表BinST的检索步骤流程图。
图5为静态查找表BinST的检索步骤示意图。
图6为基于区块链存储的可验证的可搜索对称加密方法的流程图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明的一部分实施例,而不是全部的实施例。下面结合具体实施方式对本发明作在其中一个实施例中说明。其中,附图仅用于示例性说明,表示的仅是示意图,而非实物图,不能理解为对本专利的限制;为了更好地说明本发明的实施例,附图某些部件会有省略、放大或缩小,并不代表实际产品的尺寸;对本领域技术人员来说,附图中某些公知结构及其说明可能省略是可以理解的。
在本发明的描述中,需要理解的是,若有术语“上”、“下”、“左”、“右”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此附图中描述位置关系的用语仅用于示例性说明,不能理解为对本专利的限制,对于本领域的普通技术人员而言,可以根据具体情况理解上述术语的具体含义。另外,若本发明实施例中有涉及“第一”、“第二”等的描述,则该“第一”、“第二”等的描述仅用于描述目的,而不能理解为指示或暗示其相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。另外,全文中出现的“和/或”的含义为,包括三个并列的方案,以“A和/或B”为例,包括A方案,或B方案,或A和B同时满足的方案。
实施例1:
本实施例公开了一种抽象存储模型,名为仅追加块存储(Append-only BlockStore,缩写ABS)模型,该模型用于对区块链存储进行高层次的功能抽象,以屏蔽区块链的运作细节,方便下文查找表数据结构和可搜索对称加密方法的设计与分析。ABS模型使用数据块的结构组织数据,其不能修改或删除已写入的块,只能将新的块写入到存储中。当一个块被写入后,ABS模型会返回指向该块的地址。ABS模型的数据块长度是固定的,由公共参数γ指定。当待写入数据的长度大于γ时,ABS模型终止写入而不会切分数据,这意味着调用者必须自行切分数据。如果待写入数据的长度小于块的长度,ABS在写入前使用足够多个0填充数据,直至数据长度等于块的长度。
具体而言,ABS模型具有下述三个方法:
ABS←Init(γ):初始化ABS算法,其接受一个公开参数γ作为输入,并输出一个仅追加块存储ABS。其中γ指定块的长度;
v/⊥←Get(ABS,addr):获取块数据算法,其输入一个仅追加块存储ABS和一个块地址addr。如果addr指定的块存在,它返回该块所有的内容v;否则,它返回空指示符⊥;
(ABS′,addr)←Put(ABS,v):写入块数据算法,其输入一个仅追加块存储ABS 和一个要写入的数据v。如果v的长度大于块长度γ,算法就会终止;否则,算法输出更新后的仅追加块存储ABS′以及该数据所在的块地址addr。
实施例2
本实施例公开了一种基于区块链存储的静态查找表数据结构的实现方法,该方法用于在区块链存储中实现较高效的键-值存储和读取效率,方便可搜索对称加密方案的设计与分析。
基于区块链存储的静态查找表数据结构在ABS模型的基础上建立,其提供两个方法:
(LT,ABS′)←LTlnit({(l1,v1),…,(ln,vn)},ABS):初始化算法,其接受一组键-值对{(li,vi)}1≤i≤n和仅追加块存储ABS作为输入,然后输出更新后的块存储ABS′,以及存储在ABS′中的查找表LT;
v/⊥←LTGet(l,LT,ABS):查找表检索算法,其接受一个键l、查找表LT以及仅追加块存储ABS作为输入。如果查找表LT中存在键为l的项,则输出对应的值v;否则,输出空指示符⊥。
本实施例基于二叉搜索树的设计思想,提出了静态查找表数据结构BinST 的实现方法。一棵M阶的BinST中单个结点的数据成员中,最多有M个键-值对,且最多包含两个子结点(左孩子和右孩子)。对于BinST的结点,将该结点所包含的键集合中的最小者称为结点的最小键,将其中最大者称为结点的最大键。图1 所示的是一棵三阶的BinST,其中键的数据类型为整型,每个结点最多能存放3 个键。在图1中,每个结点的左孩子和右孩子的指针显式地表示为“lc”和“rc”。为了简化表示,图1不展示BinST结点中键所对应的值。
一棵M阶的BinST具有以下性质:
1、若任意结点的左子树不空,则左子树上所有结点的键均小于它的根结点的最小键;
2、若任意结点的右子树不空,则右子树上所有结点的键均大于它的根结点的最大键;
3、任意结点的左、右子树也分别为M阶BinST。
M阶BinST的初始化算法和搜索算法的具体步骤如下:
根据附图2所示,给定n个键-值对{(l1,v1),…,(ln,vn)},M阶BinST的初始化算法步骤如下:
若n=0,返回空树(其中根节点地址表示为空指示符⊥);否则,对 {(l1,v1),…,(ln,vn)}按键的非降序进行排序,结果为{(l′1,v′1),…,(l′n,v′n)};
将有序的键-值对{(l′1,v′1),…,(l′n,v′n)}切分为
Figure GDA0003889803680000093
个子集合 {(l′1,v′1),…,(l′M,v′M)},…,/>
Figure GDA0003889803680000091
为简化表示,使用符号Bi来表示第i个子集合;
如图3所示,对于子集合列表
Figure GDA0003889803680000092
调用以下子例程自底向上地构造BinST:
读取子例程的输入,即子集合列表B={B1,B2,…,Bm};若列表B为空,输出空树(其中根节点地址表示为空指示符⊥);否则,从列表B中选择中间元素
Figure GDA0003889803680000101
构造BinST结点x,将/>
Figure GDA0003889803680000102
中的键-值对按序写入到结点x的相应数据成员中;对于位于/>
Figure GDA0003889803680000103
左边的子列表
Figure GDA0003889803680000104
递归调用该子例程生成左子树bl,将bl的根结点作为x的左孩子;同理,对于位于/>
Figure GDA0003889803680000105
右边的子列表/>
Figure GDA0003889803680000106
递归调用该子例程生成右子树br,将br的根结点作为x的右孩子;通过调用方法(ABS,addrx)←Put(ABS,x),将节点x写入到块存储ABS中,输出以结点x为根的BinST子树b,其中b的根节点地址为addrx
如图4所示,在BinSTb(其中b的根节点表示为b.root,而根节点地址表示为addrb.root)中查找键l详细步骤,即查找表检索算法LTGet包括:
根据b的根节点地址addrb.root,如果addrb.root为空指示符⊥,则b为空树,查找失败,算法结束;否则,调用方法b.root←Get(ABS,addrb.root)读取b.root的详细数据;
若l小于b.root的最小键,则根据b.root的左孩子地址,递归搜索左子树;
若l大于b.root的最大键,则根据b.root的右孩子地址,递归搜索右子树,重复查找步骤;否则,
对b.root中包含的键集合进行二分查找,如果查找成功,返回相应的值;否则,查找失败,算法结束。
图5给出了BinST查找算法的例子。在图5中,待查找的键为49。算法首先从根结点出发,发现49大于根结点的最大键21,此时进入右子树继续查找;在该右子树的根结点中,算法发现49小于其最小键56,此时进入该结点的左子树继续下去;最终,在查找路径的第三个结点中,算法发现待查找键49位于该结点的最小键和最大键之间,并通过二分查找找到了键49对应的项,搜索成功。
实施例3
本实施例公开了一种基于区块链存储的可验证的可搜索对称加密方法。该方法以实施例1的ABS模型和实施例2的查找表数据结构作为基础,可用于在大数据的背景下实现索引数据的多服务器去中心化存储,并具有良好的扩展性和高效的搜索效率。该方法支持单关键字检索,并支持结果的可验证性。
该方法应用于包含数据用户端、服务提供者端和区块链平台的应用系统中,其中数据用户是一个想在区块链平台上存储以及搜索其数据的实体,而服务提供者是一个拥有完整区块链数据的全节点。由于数据用户端本地不存储完整的区块链数据,它需要将查询操作外包给存储完整区块链数据的服务提供者。当服务提供者成功地从区块链中搜索到数据用户的数据时,它将结果和相应的证据发送给数据用户。数据用户可以通过校验服务提供者返回的证据,检查结果是否正确和完整。一旦数据用户发现结果有误,其可以选择请求其他的服务提供者检索其数据。由于区块链具有去中心化和不可篡改的特性,因此所述方法保证了索引数据的可靠性和去中心化。
在介绍所述方法的详细步骤前,首先给出符号定义。假设有一个由d个文件组成的集合,文件标识符分别为id1,id2,…,idd。数据库
Figure GDA0003889803680000111
是一个由索引-关键字集合对组成的元组列表,其中idi∈{0,1}l以及/>
Figure GDA0003889803680000112
关键字w∈Wi当且仅当idi标识的文件包含关键词w。数据库DB包含的关键词集合为/>
Figure GDA0003889803680000113
令|W|表示不同关键词的总数,N表示文件-关键词对的数量(即/>
Figure GDA0003889803680000114
)。DB(w)={idi|w∈Wj}指的是包含关键词w的文件标识符集合,则Nw=|DB(w)|表示DB(w)的大小。令F:{0,1}λ×{0,1}*→{0,1}λ为一个可变长输入的伪随机函数;ε=(E,D)为一个对称密钥加密方案,其中E为加密算法,D为解密算法;/>
Figure GDA0003889803680000115
为一个消息认证码方案,其中Sign为签名算法, Verfiy为验证算法。
根据附图6所示,一种基于区块链存储的可验证的可搜索对称加密方法的详细步骤如下:
S1.密钥生成算法:运行于数据用户端。数据用户输入安全参数λ,算法使用随机数生成算法产生密钥K,K′←{0,1}λ。之后,数据用户将密钥K,K′妥善保存在本地存储中。
S2.初始化算法:运行于数据用户端。用户输入密钥K,K′,以及数据库DB,算法为数据库DB生成加密数据库EDB,并写入到仅追加块存储ABS中。值得注意的是,数据用户端本身不存储完整的区块链数据,因此在ABS模型下,其只能对ABS存储进行写入操作,而不具备读取功能。初始化算法的详细步骤如下:
S21.初始化两个空列表L1,L2
S22.对于数据库DB包含的每一个关键字w,进行以下操作:
计算K1←F(1||w),K2←F(2||w),并初始化一个用于计数的变量c←0以及一个空字符串
Figure GDA0003889803680000121
对于包含于DB(w)的每一个文档标识符id,计算l←F(K1,c),d←E(K2,id),并自增计数器c←c+1,然后将二元组(l,d)添加至列表L1中,并将id追加到字符串
Figure GDA0003889803680000122
上,即
Figure GDA0003889803680000123
计算labelw←F(K3,w),以及
Figure GDA0003889803680000124
并将二元组 (labelw,prfw)添加到列表L2中;
S23.对列表L2按字典序的增序进行排序;
S24.初始化另一个空列表L′2,并令i←0;
S25.顺序遍历列表L2中的每一个元组(label,prf),计算prf′←Sign(K′,label||i),将四元组(label,prf,i,prf′)添加到列表L′2中,并自增计数器i←i+1;
S26.最后将两个列表分别构建两个静态查找表(LT1,ABS′)←LTInit(L1,ABS),(LT2,ABS′)←LTInit(L′2,ABS)。
S3.令牌生成算法:运行于数据用户端。用户输入待搜索关键字w,以及密钥K1,K2,算法生成一个搜索令牌τ,并将搜索令牌τ发送至服务提供者端。该算法生成令牌的步骤如下:
S31.计算K1←F(1||w),K2←F(2||w)以及label←F(K3,w);
S32.返回搜索令牌τ=(K1,K2,label)。
S4.搜索算法:运行于服务提供者端。当服务提供者收到数据用户发来的搜索令牌τ后,对保存在ABS的加密数据库EDB进行检索,调用该算法得到相匹配的文件标识符集合
Figure GDA0003889803680000125
及相应的证据prf,并将/>
Figure GDA0003889803680000126
和prf发送至数据用户端。值得注意的是,服务提供者端本身存储着完整的区块链数据,因此在ABS模型下,其具备读取功能。搜索算法的详细步骤如下:
S41.将加密数据库EDB解析为二元组(LT1,LT2),并将搜索令牌τ解析为三元组(K1,K2,label);
S42.初始化一个空列表
Figure GDA0003889803680000127
并初始化一个计数器c←0;
S43.开始以下循环,直至循环内部发生终止:
获取d←LTGet(F(K1,c),LT1,ABS),如果d为空白指示符⊥,则循环终止;否则,计算id←D(K2,d),并将id添加到列表
Figure GDA00038898036800001310
上;
自增计数器c←c+1;
S44.如果列表
Figure GDA00038898036800001311
不为空,则获取(prf,i,prf′)←LTGet(label,LT2,ABS),并跳过步骤S45执行步骤S46;否则,执行步骤S45;
S45.找到i,使得labeli<label<labeli+1,并获取(prfi,i,prf′i)← LTGet(labeli,LT2,ABS),以及(prfi+1,i+1,prf′i+1)←LTGet(labeli+1,LT2,ABS);此时,构造证据prf←(labeli,i,prf′i,labeli+1,i+1,prf′i+1);
S46.返回二元组
Figure GDA0003889803680000131
S5.验证算法:运行于数据用户端。当数据用户收到服务提供者返回的结果
Figure GDA0003889803680000132
后,输入上述结果、密钥K′以及令牌生成阶段产生的label,调用该算法校验服务提供者返回的结果是否正确。如果结果正确,则可以读取结果集合/>
Figure GDA0003889803680000133
的文件标识符进行后续的操作;否则,数据用户可以选择联系其他的服务提供者,重新执行步骤S3-S5以获取可靠的结果。验证算法的详细步骤如下:
S51.如果服务提供者返回的结果集合
Figure GDA0003889803680000134
不为空,则算法将其解析为
Figure GDA0003889803680000135
并依次串接成字符串/>
Figure GDA0003889803680000136
最后调用消息认证码的验证算法/>
Figure GDA0003889803680000137
如果验证算法校验成功,则结果集合/>
Figure GDA0003889803680000138
是正确且完整的,算法返回True;否则,服务提供者返回的结果有误,算法返回 False;
S52.如果服务提供者返回的结果集合
Figure GDA0003889803680000139
为空,则解析prf为 (labeli,i,prf′i,labeli+1,i+1,prf′i+1);并检查是否满足labeli≤label≤labeli+1,如果不满足,意味着服务提供者返回的结果有误,算法返回False;否则,继续执行步骤S53;
S53.分别调用两次消息认证码的验证算法Verify(K′,labeli||i,prf′i)以及Verify(K′,labeli+1||i+1,prf′i+1);如果两次消息认证码的验证算法都返回成功,则意味着相应关键字的结果确实为空,算法返回True;否则,服务提供者返回的结果有误,算法返回False。
在本发明中,为方便查找表数据结构和可搜索对称加密方案的设计与实现,本发明对区块链的存储机制进行高层次的功能抽象,屏蔽了区块链具体实现的细节;为实现紧密的空间存储和高效的检索性能,本发明基于二叉搜索树提出了一个高效的查找表数据结构实现,其中节点使用仅追加块存储的数据块进行紧密的打包存储,而检索操作则使用二分查找的思路来减少查询工作量;为实现可搜索对称加密的可验证性,本发明使用消息认证码,对与关键字所关联的次序和结果等信息进行了签名,实现了结果的可验证性和不可伪造性,从而抵御了恶意服务器的伪造行为。
显然,本发明的上述实施例仅仅是为清楚地说明本发明所作的举例,而并非是对本发明的实施方式的限定。对于所属领域的普通技术人员来说,在上述说明的基础上还可以做出其它不同形式的变化或变动。这里无需也无法对所有的实施方式予以穷举。凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明权利要求的保护范围之内。

Claims (8)

1.一种基于区块链存储的可验证的可搜索对称加密方法,其特征在于,包括:
S1.密钥生成算法:运行于数据用户端,数据用户输入安全参数λ,密钥生成算法使用随机数生成算法产生密钥K,K′←{0,1}λ,之后,数据用户将密钥K,K′妥善保存在本地存储中;
S2.初始化算法:运行于数据用户端,用户输入密钥K,K′,以及数据库DB,初始化算法为数据库DB生成加密数据库EDB=(LT1,LT2),并写入到仅追加块存储ABS模型中;其中,LT1存储了加密数据库,用于加密搜索;而LT2存储了每个关键字对应的证据,用于结果验证;
S3.令牌生成算法:运行于数据用户端,用户输入待搜索关键字w,以及密钥K1,K2,令牌生成算法生成一个与待搜索关键字w相关联的搜索令牌τ=(K1,K2,label),并将搜索令牌τ发送至服务提供者端;
S4.搜索算法:运行于服务提供者端,当服务提供者收到数据用户发来的搜索令牌τ后,对保存在ABS模型的加密数据库EDB=(LT1,LT2)进行检索,调用搜索算法从LT1中得到相匹配的文件标识符集合
Figure FDA0003889803670000011
并从LT2提取出相应的证据prf,最后将/>
Figure FDA0003889803670000012
和prf发送至数据用户端;
S5.验证算法:运行于数据用户端,当数据用户收到服务提供者返回的结果
Figure FDA0003889803670000013
后,输入上述结果、密钥K′以及令牌生成阶段输出的label,验证算法校验服务提供者返回的结果是否正确,如果结果正确,则读取结果集合/>
Figure FDA0003889803670000014
的文件标识符进行后续的操作;否则,数据用户选择继续和其他服务提供者沟通,重新执行搜索算法和验证算法以获取可靠的结果;
其中,所述的仅追加块存储ABS模型用于对区块链存储进行高层次的功能抽象,以屏蔽区块链的运作细节,以便基于区块链存储的可搜索对称加密方法的设计与分析;ABS模型使用数据块的结构组织数据,不能修改或删除已写入的块,只能将新的块写入到存储中;当一个块被写入后,ABS模型会返回指向该块的地址;ABS模型的数据块长度是固定的,由公共参数γ指定;当待写入数据的长度大于γ时,ABS模型终止写入而不会切分数据;如果待写入数据的长度小于块的长度,ABS模型在写入前使用足够多个0填充数据,直至数据长度等于块的长度;
所述的ABS模型包括:
ABS←Init(γ):初始化ABS算法,其接受一个公开参数γ作为输入,并输出一个仅追加块存储ABS,其中γ指定块的长度;
v/⊥←Get(ABS,addr):获取块数据算法,其输入一个仅追加块存储ABS和一个块地址addr,如果addr指定的块存在,它返回该块所有的内容v;否则,它返回空指示符⊥;
(ABS′,addr)←Put(ABS,v):写入块数据算法,其输入一个仅追加块存储ABS和一个要写入的数据v,如果v的长度大于块长度γ,算法就会终止;否则,算法输出更新后的仅追加块存储ABS′以及该数据所在的块地址addr。
2.根据权利要求1所述的基于区块链存储的可验证的可搜索对称加密方法,其特征在于,还包括基于区块链存储的静态查找表数据结构的实现方法,用于在区块链存储中实现较高效的键-值存储和读取效率,包括:
(LT,ABS′)←LTInit({(l1,v1),…,(ln,vn)},ABS):初始化算法LTInit,其接受一组键-值对{(li,vi)}1≤i≤n和仅追加块存储ABS作为输入,然后输出更新后的块存储ABS′,以及存储在ABS′中的查找表LT;
v/⊥←LTGet(l,LT,ABS):查找表检索算法LTGet,其接受一个键l、查找表LT以及仅追加块存储ABS作为输入,如果查找表LT中存在键为l的项,则输出对应的值v;否则,输出空指示符⊥。
3.根据权利要求2所述的基于区块链存储的可验证的可搜索对称加密方法,其特征在于,基于二叉搜索树的思想,给出具体的基于区块链存储的静态查找表数据结构BinST的实现方法;给定n个键-值对{(l1,v1),…,(ln,vn)},M阶BinST的初始化算法LTInit包括:
若n=0,返回空树,其中根节点地址表示为空指示符⊥;否则,对{(l1,v1),…,(ln,vn)}按键的非降序进行排序,结果为{(l′1,v′1),…,(l′n,v′n)};
将有序的键-值对{(l′1,v′1),…,(l′n,v′n)}切分为
Figure FDA0003889803670000021
个子集合
Figure FDA0003889803670000022
为简化表示,使用符号Bi来表示第i个子集合;
对于子集合列表
Figure FDA0003889803670000023
调用以下子例程自底向上地构造BinST:
读取子例程的输入,即子集合列表B={B1,B2,…,Bm};若列表B为空,输出空树,其中根节点地址表示为空指示符⊥;否则,从列表B中选择中间元素
Figure FDA0003889803670000031
构造BinST结点x,将
Figure FDA0003889803670000032
中的键-值对按序写入到结点x的相应数据成员中;对于位于/>
Figure FDA0003889803670000033
左边的子列表
Figure FDA0003889803670000034
递归调用该子例程生成左子树bl,将bl的根结点作为x的左孩子;同理,对于位于/>
Figure FDA0003889803670000035
右边的子列表/>
Figure FDA0003889803670000036
递归调用该子例程生成右子树br,将br的根结点作为x的右孩子;通过调用方法(ABS,addrx)←Put(ABS,x),将节点x写入到块存储ABS中,输出以结点x为根的BinST子树b,其中b的根节点地址为addrx
在BinST子树b中查找键l详细步骤,即查找表检索算法LTGet,其中b的根节点表示为b.root,而根节点地址表示为addrb.root;查找表检索算法LTGet包括:
根据b的根节点地址addrb.root,如果addrb.root为空指示符⊥,则b为空树,查找失败,算法结束;否则,调用方法b.root←Get(ABS,addrb.root)读取b.root的详细数据;
若l小于b.root的最小键,则根据b.root的左孩子地址,递归搜索左子树;
若l大于b.root的最大键,则根据b.root的右孩子地址,递归搜索右子树,重复查找步骤;否则,
对b.root中包含的键集合进行二分查找,如果查找成功,返回相应的值;否则,查找失败,算法结束。
4.根据权利要求3所述的基于区块链存储的可验证的可搜索对称加密方法,其特征在于,S2中的初始化算法具体包括:
S21.初始化两个空列表L1,L2
S22.对于数据库DB包含的每一个关键字w,进行以下操作:
计算K1←F(1||w),K2←F(2||w),并初始化一个用于计数的变量c←0以及一个空字符串
Figure FDA0003889803670000037
对于包含于DB(w)的每一个文档标识符id,计算l←F(K1,c),d←E(K2,id),并自增计数器c←c+1,然后将二元组(l,d)添加至列表L1中,并将id追加到字符串
Figure FDA0003889803670000038
上,即/>
Figure FDA0003889803670000039
计算labelw←F(K3,w),以及
Figure FDA0003889803670000041
并将二元组(labelw,prfw)添加到列表L2中;/>
S23.对列表L2按字典序的增序进行排序;
S24.初始化另一个空列表L′2,并令i←0;
S25.顺序遍历列表L2中的每一个元组(label,prf),计算prf′←Sign(K′,label||i),将四元组(label,prf,i,prf′)添加到列表L′2中,并自增计数器i←i+1;
S26.最后将两个列表分别构建两个静态查找表(LT1,ABS′)←LTlnit(L1,ABS),(LT2,ABS′)←LTInit(L′2,ABS)。
5.根据权利要求4所述的基于区块链存储的可验证的可搜索对称加密方法,其特征在于,S3中的令牌生成算法具体包括:
S31.计算K1←F(1||w),K2←F(2||w)以及label←F(K3,w);
S32.返回搜索令牌τ=(K1,K2,label)。
6.根据权利要求5所述的基于区块链存储的可验证的可搜索对称加密方法,其特征在于,S4中的搜索算法具体包括:
S41.将加密数据库EDB解析为二元组(LT1,LT2),并将搜索令牌τ解析为三元组(K1,K2,label);
S42.初始化一个空列表
Figure FDA0003889803670000042
并初始化一个计数器c←0;
S43.开始以下循环,直至循环内部发生终止:
获取d←LTGet(F(K1,c),LT1,ABS),如果d为空白指示符⊥,则循环终止;否则,计算id←D(K2,d),并将id添加到列表
Figure FDA0003889803670000045
上;
自增计数器c←c+1;
S44.如果列表
Figure FDA0003889803670000043
不为空,则获取(prf,i,prf′)←LTGet(label,LT2,ABS),并跳过步骤S45执行步骤S46;否则,执行步骤S45;
S45.找到i,使得labeli<label<labeli+1,并获取(prfi,i,prfi′)←LTGet(labeli,LT2,ABS),以及(prfi+1,i+1,prf′i+1)←LTGet(labeli+1,LT2,ABS);此时,构造证据prf←(labeli,i,prf′i,labeli+1,i+1,prf′i+1);
S46.返回二元组
Figure FDA0003889803670000044
7.根据权利要求6所述的基于区块链存储的可验证的可搜索对称加密方法,其特征在于,S5中的验证算法具体包括:
S51.如果服务提供者返回的结果集合
Figure FDA0003889803670000051
不为空,则算法将其解析为/>
Figure FDA0003889803670000052
并依次串接成字符串/>
Figure FDA0003889803670000053
最后调用消息认证码的验证算法
Figure FDA0003889803670000054
如果验证算法校验成功,则结果集合/>
Figure FDA0003889803670000055
是正确且完整的,算法返回True;否则,服务提供者返回的结果有误,算法返回False;
S52.如果服务提供者返回的结果集合
Figure FDA0003889803670000056
为空,则解析prf为(labeli,i,prf′i,labeli+1,i+1,prf′i+1);并检查是否满足labeli≤label≤labeli+1,如果不满足,意味着服务提供者返回的结果有误,算法返回False;否则,继续执行步骤S53;
S53.分别调用两次消息认证码的验证算法Verify(K′,labeli||i,prfi′)以及Verify(K′,labeli+1||i+1,prf′i+1);如果两次消息认证码的验证算法都返回成功,则意味着相应关键字的结果确实为空,算法返回True;否则,服务提供者返回的结果有误,算法返回False。
8.一种电子设备,包括:存储器、处理器以及存储在存储器上并可在处理器上运行计算机程序,其特征在于,所述的处理器执行所述计算机程序,实现权利要求1至7任一项所述的基于区块链存储的可验证的可搜索对称加密方法。
CN202210228130.5A 2022-03-08 2022-03-08 基于区块链存储的可验证的可搜索对称加密方法 Active CN114615050B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210228130.5A CN114615050B (zh) 2022-03-08 2022-03-08 基于区块链存储的可验证的可搜索对称加密方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210228130.5A CN114615050B (zh) 2022-03-08 2022-03-08 基于区块链存储的可验证的可搜索对称加密方法

Publications (2)

Publication Number Publication Date
CN114615050A CN114615050A (zh) 2022-06-10
CN114615050B true CN114615050B (zh) 2023-03-28

Family

ID=81861459

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210228130.5A Active CN114615050B (zh) 2022-03-08 2022-03-08 基于区块链存储的可验证的可搜索对称加密方法

Country Status (1)

Country Link
CN (1) CN114615050B (zh)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109740364A (zh) * 2019-01-04 2019-05-10 大连大学 可控搜索权限的基于属性的密文搜索方法
CN110135986A (zh) * 2019-04-23 2019-08-16 武汉大学 一种基于区块链智能合约实现的可搜索加密文件数据方法
WO2022007889A1 (zh) * 2020-07-08 2022-01-13 浙江工商大学 基于区块链与同态加密的可搜索加密数据共享方法及系统

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11170114B2 (en) * 2017-06-06 2021-11-09 City University Of Hong Kong Electronic storage system and a method of data management
US10902419B2 (en) * 2019-02-22 2021-01-26 Omnichain Solutions Inc. Blockchain-based system for efficient storage and retrieval of disparate supply-side transaction information

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109740364A (zh) * 2019-01-04 2019-05-10 大连大学 可控搜索权限的基于属性的密文搜索方法
CN110135986A (zh) * 2019-04-23 2019-08-16 武汉大学 一种基于区块链智能合约实现的可搜索加密文件数据方法
WO2022007889A1 (zh) * 2020-07-08 2022-01-13 浙江工商大学 基于区块链与同态加密的可搜索加密数据共享方法及系统

Non-Patent Citations (11)

* Cited by examiner, † Cited by third party
Title
Authorized Keyword Searches on Public Key Encrypted Data With Time Controlled Keyword Privacy;Lingling Xu;《IEEE TRANSACTIONS ON INFORMATION FORENSICS AND SECURITY》;全文 *
Verifiable evaluation of private polynomials;Xu Ma;《2013 Fourth International Conference on Emerging Intelligent Data and Web Technologies》;全文 *
一个安全,高效的广义可验证秘密分享协议;张福泰;《软件学报》;全文 *
一种高效的倒排索引存储结构;邓攀;《计算机工程与应用》;全文 *
从双线性对到多线性映射;张方国;《密码学报》(第03期);全文 *
区块链数据分析:现状、趋势与挑战;陈伟利等;《计算机研究与发展》(第09期);全文 *
基于以太坊区块链的公平可搜索加密方案;聂梦飞等;《计算机工程与应用》(第04期);全文 *
基于区块链且支持验证的属性基搜索加密方案;闫玺玺等;《通信学报》(第02期);全文 *
基于区块链的公钥可搜索加密方案;杜瑞忠等;《通信学报》(第04期);全文 *
基于区块链的支持访问控制的可搜索加密方案;许宗莲;《无线电通信技术》;全文 *
边缘计算数据安全与隐私保护研究综述;张佳乐等;《通信学报》(第03期);全文 *

Also Published As

Publication number Publication date
CN114615050A (zh) 2022-06-10

Similar Documents

Publication Publication Date Title
Chen et al. An efficient privacy-preserving ranked keyword search method
Martel et al. A general model for authenticated data structures
CN109885615B (zh) 一种基于索引的面向区块链轻客户端的范围查询可验证查询方法
US7257711B2 (en) Efficient authenticated dictionaries with skip lists and commutative hashing
Awad et al. Chaotic searchable encryption for mobile cloud storage
Esiner et al. Flexdpdp: Flexlist-based optimized dynamic provable data possession
US9740879B2 (en) Searchable encryption with secure and efficient updates
US8316417B2 (en) Method for dynamic secure management of an authenticated relational table in a database
Liu et al. Merkle tree: A fundamental component of blockchains
Zhu et al. A novel verifiable and dynamic fuzzy keyword search scheme over encrypted data in cloud computing
Li et al. Integrity-verifiable conjunctive keyword searchable encryption in cloud storage
CN114531220A (zh) 一种基于前向和后向隐私的高效容错动态短语搜索方法
KR20220123221A (ko) 효율적인 데이터 검증을 위한 데이터 구조
JP2008501175A (ja) プロテクトされた構造化されたデータのクエリ方法及び装置
Wang et al. A verifiable symmetric searchable encryption scheme based on the AVL tree
Panigrahy et al. A geometric approach to lower bounds for approximate near-neighbor search and partial match
Zhang et al. Practical wildcard searchable encryption with tree‐based index
CN114615050B (zh) 基于区块链存储的可验证的可搜索对称加密方法
Wei et al. Integrity assurance for outsourced databases without DBMS modification
Blibech et al. Chronos: an authenticated dictionary based on skip lists for timestamping systems
Chatterjee et al. Secure and efficient wildcard search over encrypted data
Zhang et al. Tree‐Based Public Key Encryption with Conjunctive Keyword Search
CN113535803B (zh) 一种基于关键字索引的区块链高效检索及可靠性验证方法
CN110363000B (zh) 识别恶意文件的方法、装置、电子设备及存储介质
CN111400624A (zh) 一种多功能排序系统

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