CN112328606B - 基于区块链的关键字可搜索加密方法 - Google Patents

基于区块链的关键字可搜索加密方法 Download PDF

Info

Publication number
CN112328606B
CN112328606B CN202011368814.2A CN202011368814A CN112328606B CN 112328606 B CN112328606 B CN 112328606B CN 202011368814 A CN202011368814 A CN 202011368814A CN 112328606 B CN112328606 B CN 112328606B
Authority
CN
China
Prior art keywords
data
node
ciphertext
keyword
key
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
CN202011368814.2A
Other languages
English (en)
Other versions
CN112328606A (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.)
Qilu University of Technology
Original Assignee
Qilu University of Technology
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 Qilu University of Technology filed Critical Qilu University of Technology
Priority to CN202011368814.2A priority Critical patent/CN112328606B/zh
Publication of CN112328606A publication Critical patent/CN112328606A/zh
Application granted granted Critical
Publication of CN112328606B publication Critical patent/CN112328606B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • G06F16/2246Trees, e.g. B+trees
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2458Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
    • G06F16/2471Distributed queries
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Health & Medical Sciences (AREA)
  • Fuzzy Systems (AREA)
  • Mathematical Physics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Computing Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种基于区块链的关键字可搜索加密方法,属于关键字密文搜索技术领域,要解决的技术问题为如何基于区块链实现可搜索对称加密。包括如下步骤:数据所有者生成密钥数组,将密钥数组中一部分密钥作为第一密钥组共享至数据用户,将密钥数组中剩余部分密钥作为第二密钥组共享至数据搜索者;数据所有者基于第一密钥组对每个明文对称加密生成密文,以交易的形式将密文上传区块链;数据所有者通过完全二叉树的叶节点表示交易标识符,得到完全二叉树形式的索引,并将索引上传区块链;数据用户基于搜索关键字生成陷门,并将陷门上传区块链,数据搜索者基于第二密钥组和陷门检索密文;数据用户对于验证通过的密文进行解密,得到明文。

Description

基于区块链的关键字可搜索加密方法
技术领域
本发明涉及关键字密文搜索技术领域,具体地说是一种基于区块链的关键字可搜索加密方法。
背景技术
区块链技术是近几年来兴起的重要领域,特别是作为特殊区块链的以太坊更是在学术界和商业界产生了极其重要的影响。实际上,区块链是将许多区块链接起来的链,它就像一个公开的账本,账本的每一页是一个区块,账本就是区块链。如果将数据上传到区块链,只要是合法用户,都可以访问区块链中的数据,这对医学、银行、物流等领域都具有潜在的重要应用价值。区块链具有去中心化和不可篡改两个重要特征,其中去中心化保证了数据不会泄露给好奇的管理员,而不可篡改性和数据的加密上传保证了数据的隐私性和私密性。
将数据上传到区块链的目的是方便数据的使用,也就是数据的搜索,但是在上传数据的时候,为了保护数据的安全,需要将数据加密之后再上传到区块链。如果用户想使用数据,将面对的是区块链上的密文,为了解决这一问题,可搜索对称加密应运而生,在可搜索对称加密中,可以在密文上进行搜索,它有效的保护了用户的隐私。
目前大多数可搜索对称加密方案都不是基于区块链技术的,但是随着区块链技术的发展,区块链已经是一种非常方便的存储数据的结构,因此,使用可搜索对称加密方案在区块链上进行搜索显得尤为重要。而且将数据上传到区块链对各个领域都具有潜在的价值,所以,无论是机构还是个人都可以将数据上传到区块链,显然,区块链上的数据会变得越来越多,当人们想要搜索数据时,会变得非常困难。因此,单纯的使用可搜索对称加密方案保护用户的隐私而不提高搜索效率是不符合实际的。因此,迫切需要一个能够提高搜索效率的区块链搜索方案。
基于上述,如何基于区块链实现可搜索对称加密,是需要解决的技术问题。
发明内容
本发明的技术任务是针对以上不足,提供基于区块链的关键字可搜索加密方法,来解决如何基于区块链实现可搜索对称加密的问题。
本发明提供一种基于区块链的关键字可搜索加密方法,应用于包括区块链以及加入区块链的数据所有者、数据用户和数据搜索者的系统,所述方法包括如下步骤:
数据所有者生成密钥数组,将密钥数组中一部分密钥作为第一密钥组共享至数据用户,将密钥数组中剩余部分密钥作为第二密钥组共享至数据搜索者;
数据所有者基于第一密钥组对每个明文对称加密生成密文,以交易的形式将密文上传区块链,记录并向区块链广播每个密文对应的交易标识符;
数据所有者基于所有明文提取关键字组成关键字集,通过完全二叉树的叶节点表示交易标识符,基于第二密钥以及每个明文中包含的关键字在关键字集中的位置进行加密计算,得到完全二叉树形式的索引,并将索引上传区块链;
数据用户基于搜索关键字生成陷门,并将陷门上传区块链,数据搜索者基于第二密钥组和陷门检索密文,并将密文返回数据用户;
数据用户基于搜索关键字在关键字集中的位置验证所述密文的正确性,对于验证通过的密文进行解密,得到明文。
作为优选,所述数据用户能够作为数据搜索者。
作为优选,区块链通过矿工收集每条交易并记录到对应区块中,所述区块中存储有对应的时间戳。
作为优选,数据所有者通过第一密钥组K1和对称加密算法ω=(ω.Enc,ω.Dec)对称加密每个明文生成密文,密文表达式为:
Ci=ω.Enc(K1,Di)(1≤i≤n)
其中,Ci表示第i个密文,Di表示第i个明文,n表示数据所有者拥有的明文个数。
作为优选,数据所有者通过完全二叉树的叶节点表示交易标识符,通过加密函数以及哈希函数对完全二叉树、关键字集以及第二密钥进行计算得到索引,包括如下步骤:
构建具有n个叶节点的完全二叉树I,所述完全二叉树的叶节点用于表示交易标识符
Figure GDA0003978653530000034
所述完全二叉树的内部节点通过1,2,......,n-1;
对于完全二叉树的叶节点,构建向量vetoru,vetoru=(u1,u2,......,uj,......,um),当且仅当明文Di中包含关键字wj时,
Figure GDA0003978653530000035
m表示关键字集中关键字的个数,uj∈{0,1}(1≤j≤m),H表示哈希函数;
对于完全二叉树的内部节点,计算向量vetoru,计算公式为:
vetoru=vetork∨vetorrc
将关键字集中的所有关键字直接连接计算得到w',对于每个关键字wj,以w'和第二密钥组K2为输入,通过伪随机函数F计算gw',并以gw'和vetoru为输入,通过加密函数Enc计算ti,上述计算公式为:
gw'=F(K2,w')
ti=ω.Enc(gw',vetoru)(1≤i≤2n-1),
通过哈希函数H'计算用于验证的
Figure GDA0003978653530000031
计算公式为:
Figure GDA0003978653530000032
Figure GDA0003978653530000033
其中C表示包含关键字wj的密文;
数据所有者以交易的形式将上述索引I上传区块链。
作为优选,数据用户基于搜索关键字生成陷门,包括如下步骤:
数据用户计算搜索关键字w在向量vetoru中的位置,计算公式为:
Figure GDA0003978653530000036
gw'=F(K2,w')
数据用户将上述陷门上传区块链。
作为优选,数据用户将陷门上传区块链后,指定数据搜索者O,O={O1,O2,......,Ol}。
作为优选,对于单个数据搜索者,数据搜索者基于第二密钥组和陷门检索密文,包括如下步骤:
数据搜索者初始化一个结果集result;
数据搜索者从完全二叉树的根节点开始搜索,将根节点存放的
Figure GDA0003978653530000041
取出,并存放至结果集result;
计算如下公式:
vetoru=ω.Dec(gw',ti)
如果vetour[s]=0,放弃所述对应节点的左右子树,如果所述节点为叶节点,表示所述节点代表的明文不包含关键字wj
如果vetoru[s]=1,继续搜索所述节点的左右子树,如果所述节点为叶节点,表示所述节点代表的明文不包含关键字wj,将所述节点对应的交易标识符存放至结果集result;
所述完全二叉树搜索结束后,基于结果集result中的交易标识符得到对应的密文
Figure GDA0003978653530000043
将密文
Figure GDA0003978653530000044
返回数据用户。
作为优选,对于多个数据搜索者,数据搜索者基于第二密钥组和陷门检索密文,包括如下步骤:
(1)数据搜索者O1初始化一个结果集result;
(2)数据搜索者O1从完全二叉树的根节点开始搜索,将根节点存放的
Figure GDA0003978653530000042
取出,并存放至结果集result;
(3)数据搜索者O1计算如下公式:
vetoru=ω.Dec(gw',ti)
i=1
如果vetour[s]=0,放弃搜索所述节点的左右子树,如果所述节点为叶节点,表示所述节点代表的明文不包含关键字wj
如果vetoru[s]=1,将数据搜索者O1作为当前数据搜索者,执行循环步骤L继续搜索所述节点的左右子树,如果所述节点为叶节点,表示所述节点代表的明文包含关键字wj,将所述节点对应的交易标识符存放至结果集result;
所述循环步骤L包括:
由当前数据搜索者Oi搜索左子树,由当前数据搜索者Oi相关的其他数据搜索者{Oi+1,Oi+2,......,Ol}搜索右子树;
每个数据搜索者Oi搜索时,执行如下步骤:
计算如下公式:
vetoru=ω.Dec(gw',ti)
如果vetour[s]=0,放弃搜索所述节点的左右子树,如果所述节点为叶节点,表示所述节点代表的明文不包含关键字wj
如果vetoru[s]=1,基于循环步骤L继续搜索所述节点的左右子树,如果所述节点为叶节点,表示所述节点代表的明文包含关键字wj,将所述节点对应的交易标识符存放至结果集result;
(4)执行步骤(3)对完全二叉树搜索结束后,基于结果集result中的交易标识符得到对应的密文
Figure GDA0003978653530000056
将密文
Figure GDA0003978653530000057
返回数据用户。
作为优选,数据用户接收密文后,通过验证gw'
Figure GDA0003978653530000051
是否一致验证密文的正确性;
验证通过后,执行如下操作解密密文
Figure GDA0003978653530000052
Figure GDA0003978653530000053
其中,
Figure GDA0003978653530000054
表示密文
Figure GDA0003978653530000055
解密得到的明文。
本发明的基于区块链的关键字可搜索加密方法具有以下优点:
1、引入完全二叉树,基于完全二叉树构建索引,改进了区块链中的数据搜索的效率;
2、数据用户可以指定数据搜索者的数目,可以单个数据搜索者或者多个数据搜索者进行搜索,改进了搜索效率;
3、在构建索引时,引入了用于验证的
Figure GDA0003978653530000061
存放在根结点中,数据用户接受到搜索结果后基于
Figure GDA0003978653530000062
验证搜索结果的正确性,确保了搜索的准确性。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
下面结合附图对本发明进一步说明。
图1为实施例1基于区块链的关键字可搜索加密方法的流程框图。
具体实施方式
下面结合附图和具体实施例对本发明作进一步说明,以使本领域的技术人员可以更好地理解本发明并能予以实施,但所举实施例不作为对本发明的限定,在不冲突的情况下,本发明实施例以及实施例中的技术特征可以相互结合。
本发明实施例提供基于区块链的关键字可搜索加密方法,用于解决如何基于区块链实现可搜索对称加密的技术问题。
实施例:
本发明的基于区块链的关键字可搜索加密方法,应用于包括区块链以及加入区块链的数据所有者、数据用户和数据搜索者的系统。
该方法包括如下步骤:
S100、数据所有者生成密钥数组,将密钥数组中一部分密钥作为第一密钥组共享至数据用户,将密钥数组中剩余部分密钥作为第二密钥组共享至数据搜索者;
S200、数据所有者基于第一密钥组对每个明文对称加密生成密文,以交易的形式将密文上传区块链,记录并向区块链广播每个密文对应的交易标识符;
S300、数据所有者基于所有明文提取关键字组成关键字集,通过完全二叉树的叶节点表示交易标识符,基于第二密钥以及每个明文中包含的关键字在关键字集中的位置进行加密计算,得到完全二叉树形式的索引,并将索引上传区块链;
S400、数据用户基于搜索关键字生成陷门,并将陷门上传区块链,数据搜索者基于第二密钥组和陷门检索密文,并将密文返回数据用户;
S500、数据用户基于搜索关键字在关键字集中的位置验证所述密文的正确性,对于验证通过的密文进行解密,得到明文。
本实施例中,数据所有者利用密钥生成算法Gen,生成一个密钥数组K,将密钥数组中一部分密钥作为第一密钥组K1共享至数据用户,将密钥数组中剩余部分密钥作为第二密钥组K2共享至数据搜索者,K=(K1,K2)。
数据所有者利用对称加密算法ω=(ω.Enc,ω.Dec)和第一密钥组K1将明文加密呈密文,密文Ci的表达式为:
Ci=ω.Enc(K1,Di)(1≤i≤n)
其中,其中,Ci表示第i个密文,Di表示第i个明文,n表示数据所有者拥有的明文个数。
数据所有者将计算得到的密文Ci以交易的形式上传区块链中,区块链中矿工收集交易,如果矿工发现新的区块,将每条交易记录到对应的区块中,区块中存储有对应的时间戳。数据所有者记录相应的交易标识符
Figure GDA0003978653530000071
并将交易标识符
Figure GDA0003978653530000072
广播至区块链中。每个密文对应一条交易,每个交易对应一个交易标识符。
对明文加密后,数据所有者基于上述交易标识符构建完全二叉树式的索引。具体步骤为:
(1)构建具有n个叶节点的完全二叉树I,上述完全二叉树的叶节点用于表示交易标识符
Figure GDA0003978653530000073
上述完全二叉树的内部节点通过1,2,......,n-1;
(2)对于完全二叉树的叶节点,构建向量vetoru,vetoru=(u1,u2,......,uj,......,um),
当且仅当明文Di中包含关键字wj时,
Figure GDA0003978653530000085
m表示关键字集中关键字的个数,uj∈{0,1}(1≤j≤m),H表示哈希函数;
(3)对于完全二叉树的内部节点,计算向量vetoru,计算公式为:
vetoru=vetork∨vetorrc
(4)将关键字集中的所有关键字直接连接计算得到w',对于每个关键字wj,以w'和第二密钥组K2为输入,通过伪随机函数F计算gw',并以gw'和vetoru为输入,通过加密函数Enc计算ti,上述计算公式为:
gw'=F(K2,w')
ti=ω.Enc(gw',vetoru)(1≤i≤2n-1),
(5)通过哈希函数H'计算用于验证的
Figure GDA0003978653530000081
计算公式为:
Figure GDA0003978653530000082
Figure GDA0003978653530000083
其中C表示包含关键字wj的密文;
(6)数据所有者以交易的形式将上述索引I上传区块链。
数据所有者将密文和索引上传区块链后,数据用户基于其搜索关键字生成陷门,将陷门上传区块链进行搜索。具体步骤为:
(1)数据用户计算搜索关键字w在向量vetoru中的位置,计算公式为:
Figure GDA0003978653530000086
gw'=F(K2,w')
(2)数据用户将上述陷门上传区块链。
数据用户可指定数据搜索者的个数,具体的指定数据搜索者O,O={O1,O2,......,Ol}。
当只有一个搜索者,即l=1时,搜索过程如下:
(1)数据搜索者初始化一个结果集result;
(2)数据搜索者从完全二叉树的根节点开始搜索,将根节点存放的
Figure GDA0003978653530000084
取出,并存放至结果集result;
(3)计算如下公式:
vetoru=ω.Dec(gw',ti)
如果vetour[s]=0,放弃所述对应节点的左右子树,如果所述节点为叶节点,表示所述节点代表的明文不包含关键字w;
如果vetoru[s]=1,继续搜索所述节点的左右子树,如果所述节点为叶节点,表示所述节点代表的明文不包含关键字w,将所述节点对应的交易标识符存放至结果集result;
(4)完全二叉树搜索结束后,基于结果集result中的交易标识符得到对应的密文
Figure GDA0003978653530000091
将密文
Figure GDA0003978653530000092
返回数据用户。
当有多个数据搜索者,即O={O1,O2,......,Ol}时,如果有多个数据搜索者,多数据搜索者的情况明显会加快搜索效率,各个数据搜索者之间通过交易进行通信。具体搜索流程为:
(1)数据搜索者O1初始化一个结果集result;
(2)数据搜索者O1从完全二叉树的根节点开始搜索,将根节点存放的
Figure GDA0003978653530000093
取出,并存放至结果集result;
(3)数据搜索者O1计算如下公式:
vetoru=ω.Dec(gw',ti)
i=1
如果vetour[s]=0,放弃搜索所述节点的左右子树,如果所述节点为叶节点,表示所述节点代表的明文不包含关键字w;
如果vetoru[s]=1,将数据搜索者O1作为当前数据搜索者,执行循环步骤L继续搜索上述节点的左右子树,如果上述节点为叶节点,表示上述节点代表的明文包含关键字w,将上述节点对应的交易标识符存放至结果集result;
上述循环步骤L包括:
由当前数据搜索者Oi搜索左子树,由当前数据搜索者Oi相关的其他数据搜索者{Oi+1,Oi+2,......,Ol}搜索右子树;
每个数据搜索者Oi搜索时,执行如下步骤:
计算如下公式:
vetoru=ω.Dec(gw',ti)
如果vetour[s]=0,放弃搜索上述节点的左右子树,如果上述节点为叶节点,表示上述节点代表的明文不包含关键字w;
如果vetoru[s]=1,基于循环步骤L继续搜索所述节点的左右子树,如果上述节点为叶节点,表示上述节点代表的明文包含关键字w,将所述节点对应的交易标识符存放至结果集result;
(4)执行步骤(3)对完全二叉树搜索结束后,基于结果集result中的交易标识符得到对应的密文
Figure GDA0003978653530000101
将密文
Figure GDA0003978653530000102
返回数据用户。
数据用户得到密文
Figure GDA0003978653530000103
后,通过判断gw'
Figure GDA0003978653530000104
是否一致验证密文的正确性,验证通过后,执行
Figure GDA0003978653530000105
如下操作解密密文
Figure GDA0003978653530000106
其中,
Figure GDA0003978653530000107
表示密文
Figure GDA0003978653530000108
解密得到的明文。
本实施例中随机选取使用伪随机置换模拟真实随机。
上文通过附图和优选实施例对本发明进行了详细展示和说明,然而本发明不限于这些已揭示的实施例,基与上述多个实施例本领域技术人员可以知晓,可以组合上述不同实施例中的代码审核手段得到本发明更多的实施例,这些实施例也在本发明的保护范围之内。

Claims (10)

1.基于区块链的关键字可搜索加密方法,其特征在于应用于包括区块链以及加入区块链的数据所有者、数据用户和数据搜索者的系统,所述方法包括如下步骤:
数据所有者生成密钥数组,将密钥数组中一部分密钥作为第一密钥组共享至数据用户,将密钥数组中剩余部分密钥作为第二密钥组共享至数据搜索者;
数据所有者基于第一密钥组对每个明文对称加密生成密文,以交易的形式将密文上传区块链,记录并向区块链广播每个密文对应的交易标识符;
数据所有者基于所有明文提取关键字组成关键字集,通过完全二叉树的叶节点表示交易标识符,基于第二密钥以及每个明文中包含的关键字在关键字集中的位置进行加密计算,得到完全二叉树形式的索引,并将索引上传区块链;
数据用户基于搜索关键字生成陷门,并将陷门上传区块链,数据搜索者基于第二密钥组和陷门检索密文,并将密文返回数据用户;
数据用户基于搜索关键字在关键字集中的位置验证所述密文的正确性,对于验证通过的密文进行解密,得到明文。
2.根据权利要求1所述的基于区块链的关键字可搜索加密方法,其特征在于所述数据用户能够作为数据搜索者。
3.根据权利要求1所述的基于区块链的关键字可搜索加密方法,其特征在于区块链通过矿工收集每条交易并记录到对应区块中,所述区块中存储有对应的时间戳。
4.根据权利要求1、2或3所述的基于区块链的关键字可搜索加密方法,其特征在于数据所有者通过第一密钥组K1和对称加密算法ω=(ω.Enc,ω.Dec)对称加密每个明文生成密文,密文表达式为:
Ci=ω.Enc(K1,Di)(1≤i≤n)
其中,Ci表示第i个密文,Di表示第i个明文,n表示数据所有者拥有的明文个数。
5.根据权利要求4所述的基于区块链的关键字可搜索加密方法,其特征在于数据所有者通过完全二叉树的叶节点表示交易标识符,通过加密函数以及哈希函数对完全二叉树、关键字集以及第二密钥进行计算得到索引,包括如下步骤:
构建具有n个叶节点的完全二叉树I,所述完全二叉树的叶节点用于表示交易标识符
Figure FDA0003978653520000021
所述完全二叉树的内部节点通过1,2,......,n-1;
对于完全二叉树的叶节点,构建向量vetoru,vetoru=(u1,u2,......,uj,......,um),当且仅当明文Di中包含关键字wj时,
Figure FDA0003978653520000022
m表示关键字集中关键字的个数,uj∈{0,1}(1≤j≤m),H表示哈希函数;
对于完全二叉树的内部节点,计算向量vetoru,计算公式为:
vetoru=vetork∨vetorrc
将关键字集中的所有关键字直接连接计算得到w',对于每个关键字wj,以w'和第二密钥组K2为输入,通过伪随机函数F计算gw',并以gw'和vetoru为输入,通过加密函数Enc计算ti,上述计算公式为:
gw'=F(K2,w')
ti=ω.Enc(gw',vetoru)(1≤i≤2n-1),
通过哈希函数H'计算用于验证的
Figure FDA0003978653520000023
计算公式为:
Figure FDA0003978653520000024
Figure FDA0003978653520000025
其中C表示包含关键字wj的密文;
数据所有者以交易的形式将上述索引I上传区块链。
6.根据权利要求5所述的基于区块链的关键字可搜索加密方法,其特征在于数据用户基于搜索关键字生成陷门,包括如下步骤:
数据用户计算搜索关键字w在向量vetoru中的位置,计算公式为:
Figure FDA0003978653520000026
gw'=F(K2,w')
数据用户将上述陷门上传区块链。
7.根据权利要求6所述的基于区块链的关键字可搜索加密方法,其特征在于数据用户将陷门上传区块链后,指定数据搜索者O,O={O1,O2,......,Ol}。
8.根据权利要求7所述的基于区块链的关键字可搜索加密方法,其特征在于对于单个数据搜索者,数据搜索者基于第二密钥组和陷门检索密文,包括如下步骤:
数据搜索者初始化一个结果集result;
数据搜索者从完全二叉树的根节点开始搜索,将根节点存放的
Figure FDA0003978653520000031
取出,并存放至结果集result;
计算如下公式:
vetoru=ω.Dec(gw',ti)
如果vetour[s]=0,放弃所述对应节点的左右子树,如果所述节点为叶节点,表示所述节点代表的明文不包含关键字wj
如果vetoru[s]=1,继续搜索所述节点的左右子树,如果所述节点为叶节点,表示所述节点代表的明文不包含关键字wj,将所述节点对应的交易标识符存放至结果集result;
所述完全二叉树搜索结束后,基于结果集result中的交易标识符得到对应的密文
Figure FDA0003978653520000032
将密文
Figure FDA0003978653520000033
返回数据用户。
9.根据权利要求7所述的基于区块链的关键字可搜索加密方法,其特征在于对于多个数据搜索者,数据搜索者基于第二密钥组和陷门检索密文,包括如下步骤:
(1)数据搜索者O1初始化一个结果集result;
(2)数据搜索者O1从完全二叉树的根节点开始搜索,将根节点存放的
Figure FDA0003978653520000034
取出,并存放至结果集result;
(3)数据搜索者O1计算如下公式:
vetoru=ω.Dec(gw',ti)
i=1
如果vetour[s]=0,放弃搜索所述节点的左右子树,如果所述节点为叶节点,表示所述节点代表的明文不包含关键字wj
如果vetoru[s]=1,将数据搜索者O1作为当前数据搜索者,执行循环步骤L继续搜索所述节点的左右子树,如果所述节点为叶节点,表示所述节点代表的明文包含关键字wj,将所述节点对应的交易标识符存放至结果集result;
所述循环步骤L包括:
由当前数据搜索者Oi搜索左子树,由当前数据搜索者Oi相关的其他数据搜索者{Oi+1,Oi+2,......,Ol}搜索右子树;
每个数据搜索者Oi搜索时,执行如下步骤:
计算如下公式:
vetoru=ω.Dec(gw',ti)
如果vetour[s]=0,放弃搜索所述节点的左右子树,如果所述节点为叶节点,表示所述节点代表的明文不包含关键字wj
如果vetoru[s]=1,基于循环步骤L继续搜索所述节点的左右子树,如果所述节点为叶节点,表示所述节点代表的明文包含关键字wj,将所述节点对应的交易标识符存放至结果集result;
(4)执行步骤(3)对完全二叉树搜索结束后,基于结果集result中的交易标识符得到对应的密文
Figure FDA0003978653520000041
将密文
Figure FDA0003978653520000042
返回数据用户。
10.根据权利要求6所述的基于区块链的关键字可搜索加密方法,其特征在于数据用户接收密文后,通过验证gw'
Figure FDA0003978653520000043
是否一致验证密文的正确性;
验证通过后,执行如下操作解密密文
Figure FDA0003978653520000044
Figure FDA0003978653520000045
其中,
Figure FDA0003978653520000051
表示密文
Figure FDA0003978653520000052
解密得到的明文。
CN202011368814.2A 2020-11-30 2020-11-30 基于区块链的关键字可搜索加密方法 Active CN112328606B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011368814.2A CN112328606B (zh) 2020-11-30 2020-11-30 基于区块链的关键字可搜索加密方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011368814.2A CN112328606B (zh) 2020-11-30 2020-11-30 基于区块链的关键字可搜索加密方法

Publications (2)

Publication Number Publication Date
CN112328606A CN112328606A (zh) 2021-02-05
CN112328606B true CN112328606B (zh) 2023-02-21

Family

ID=74309309

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011368814.2A Active CN112328606B (zh) 2020-11-30 2020-11-30 基于区块链的关键字可搜索加密方法

Country Status (1)

Country Link
CN (1) CN112328606B (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113014563B (zh) * 2021-02-10 2022-03-25 华中科技大学 一种保障可搜索公钥加密检索完备性的方法及系统
CN113177048A (zh) * 2021-04-28 2021-07-27 中国工商银行股份有限公司 数据处理方法、终端、节点、系统、电子设备和存储介质
CN114021196A (zh) * 2021-11-18 2022-02-08 贵州大学 公平可搜索加密方法、公平可搜索加密系统
CN115174042B (zh) * 2022-05-24 2024-04-19 西安电子科技大学 基于区块链合约的可搜索加密方法
CN115314295B (zh) * 2022-08-08 2024-04-16 西安电子科技大学 一种基于区块链的可搜索加密技术方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108388807A (zh) * 2018-02-28 2018-08-10 华南理工大学 一种支持偏好搜索和逻辑搜索的高效可验证的多关键字排序可搜索加密方法
CN111143471A (zh) * 2019-12-27 2020-05-12 北京工业大学 一种基于区块链的密文检索方法
CN111641641A (zh) * 2020-05-29 2020-09-08 兰州理工大学 基于可搜索代理重加密的区块链数据共享方法
CN111914027A (zh) * 2020-08-05 2020-11-10 北京科技大学 一种区块链交易关键字可搜索加密方法及系统

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108388807A (zh) * 2018-02-28 2018-08-10 华南理工大学 一种支持偏好搜索和逻辑搜索的高效可验证的多关键字排序可搜索加密方法
CN111143471A (zh) * 2019-12-27 2020-05-12 北京工业大学 一种基于区块链的密文检索方法
CN111641641A (zh) * 2020-05-29 2020-09-08 兰州理工大学 基于可搜索代理重加密的区块链数据共享方法
CN111914027A (zh) * 2020-08-05 2020-11-10 北京科技大学 一种区块链交易关键字可搜索加密方法及系统

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
一种支持优先级排序的动态安全可搜索加密方案;陈垚等;《网络空间安全》;20200825;第11卷(第8期);第51-55页 *
基于可搜索加密的区块链数据隐私保护机制;刘格昌等;《计算机应用》;20191230;第39卷(第s2期);第140-146页 *

Also Published As

Publication number Publication date
CN112328606A (zh) 2021-02-05

Similar Documents

Publication Publication Date Title
CN112328606B (zh) 基于区块链的关键字可搜索加密方法
Ge et al. Towards achieving keyword search over dynamic encrypted cloud data with symmetric-key based verification
CN108388807B (zh) 一种支持偏好搜索和逻辑搜索的高效可验证的多关键字排序可搜索加密方法
Wang et al. Searchable encryption over feature-rich data
Liu et al. Secure multi-keyword fuzzy searches with enhanced service quality in cloud computing
Peng et al. An efficient ranked multi-keyword search for multiple data owners over encrypted cloud data
CN109493017B (zh) 基于区块链的可信外包存储方法
WO2022099495A1 (zh) 云计算环境中的密文搜索方法及系统、设备
CN111026788B (zh) 一种混合云中基于同态加密的多关键词密文排序检索方法
CN112332979B (zh) 云计算环境中的密文搜索方法及系统、设备
CN111552849B (zh) 可搜索加密方法、系统、存储介质、车载网、智能电网
Chen et al. EliMFS: achieving efficient, leakage-resilient, and multi-keyword fuzzy search on encrypted cloud data
CN109739945B (zh) 一种基于混合索引的多关键词密文排序检索方法
Dai et al. A privacy-preserving multi-keyword ranked search over encrypted data in hybrid clouds
CN115314295B (zh) 一种基于区块链的可搜索加密技术方法
Li et al. Enabling efficient fuzzy keyword search over encrypted data in cloud computing
Yin et al. A fine-grained authorized keyword secure search scheme with efficient search permission update in cloud computing
Peng et al. LS-RQ: A lightweight and forward-secure range query on geographically encrypted data
Kim et al. 3-Multi ranked encryption with enhanced security in cloud computing
KR100951034B1 (ko) 암호문 크기를 줄이기 위한 공개키 기반의 검색가능암호문생성 방법과, 그에 따른 공개키 기반의 데이터 검색 방법
CN113904823B (zh) 常数级授权计算复杂度的属性基可搜索加密方法及系统
Bu et al. SEF: a secure, efficient, and flexible range query scheme in two-tiered sensor networks
Xue et al. Cuckoo-filter based privacy-aware search over encrypted cloud data
CN107679408A (zh) 安全云存储中的正则语言检索系统
CN114528370A (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