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

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

Info

Publication number
CN112328606A
CN112328606A CN202011368814.2A CN202011368814A CN112328606A CN 112328606 A CN112328606 A CN 112328606A CN 202011368814 A CN202011368814 A CN 202011368814A CN 112328606 A CN112328606 A CN 112328606A
Authority
CN
China
Prior art keywords
data
keyword
node
ciphertext
blockchain
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.)
Granted
Application number
CN202011368814.2A
Other languages
English (en)
Other versions
CN112328606B (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)
  • Databases & Information Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Computing Systems (AREA)
  • Fuzzy Systems (AREA)
  • Mathematical Physics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Computational Linguistics (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 BDA0002805832350000031
所述完全二叉树的内部节点通过1,2,......,n-1;
对于完全二叉树的叶节点,构建向量vetoru,vetoru=(u1,u2,......,uj,......,um),当且仅当明文Di中包含关键字wj时,
Figure BDA0002805832350000032
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 BDA0002805832350000033
计算公式为:
Figure BDA0002805832350000034
Figure BDA0002805832350000035
其中C表示包含关键字wj的密文;
数据所有者以交易的形式将上述索引I上传区块链。
作为优选,数据用户基于搜索关键字生成陷门,包括如下步骤:
数据用户计算搜索关键字w在向量vetoru中的位置,计算公式为:
Figure BDA0002805832350000036
gw'=F(K2,w')
数据用户将上述陷门上传区块链。
作为优选,数据用户将陷门上传区块链后,指定数据搜索者O,O={O1,O2,......,Ol}。
作为优选,对于单个数据搜索者,数据搜索者基于第二密钥组和陷门检索密文,包括如下步骤:
数据搜索者初始化一个结果集result;
数据搜索者从完全二叉树的根节点开始搜索,将根节点存放的
Figure BDA0002805832350000041
取出,并存放至结果集result;
计算如下公式:
vetoru=ω.Dec(gw',ti)
如果vetour[s]=0,放弃所述对应节点的左右子树,如果所述节点为叶节点,表示所述节点代表的明文不包含关键字w;
如果vetoru[s]=1,继续搜索所述节点的左右子树,如果所述节点为叶节点,表示所述节点代表的明文不包含关键字w,将所述节点对应的交易标识符存放至结果集result;
所述完全二叉树搜索结束后,基于结果集result中的交易标识符得到对应的密文
Figure BDA0002805832350000042
将密文
Figure BDA0002805832350000043
返回数据用户。
作为优选,对于对于多个数据搜索者,数据搜索者基于第二密钥组和陷门检索密文,包括如下步骤:
(1)数据搜索者O1初始化一个结果集result;
(2)数据搜索者O1从完全二叉树的根节点开始搜索,将根节点存放的
Figure BDA0002805832350000044
取出,并存放至结果集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 BDA0002805832350000051
将密文
Figure BDA0002805832350000052
返回数据用户。
作为优选,数据用户接收密文后,通过验证gw'
Figure BDA0002805832350000053
是否一致验证密文的正确性;
验证通过后,执行如下操作解密密文
Figure BDA0002805832350000054
Figure BDA0002805832350000055
其中,
Figure BDA0002805832350000056
表示密文
Figure BDA0002805832350000057
解密得到的明文。
本发明的基于区块链的关键字可搜索加密方法具有以下优点:
1、引入完全二叉树,基于完全二叉树构建索引,改进了区块链中的数据搜索的效率;
2、数据用户可以指定数据搜索者的数目,可以单个数据搜索者或者多个数据搜索者进行搜索,改进了搜索效率;
3、在构建索引时,引入了用于验证的
Figure BDA0002805832350000061
存放在根结点中,数据用户接受到搜索结果后基于
Figure BDA0002805832350000062
验证搜索结果的正确性,确保了搜索的准确性。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
下面结合附图对本发明进一步说明。
图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 BDA0002805832350000071
并将交易标识符
Figure BDA0002805832350000072
广播至区块链中。每个密文对应一条交易,每个交易对应一个交易标识符。
对明文加密后,数据所有者基于上述交易标识符构建完全二叉树式的索引。具体步骤为:
(1)构建具有n个叶节点的完全二叉树I,上述完全二叉树的叶节点用于表示交易标识符
Figure BDA0002805832350000073
上述完全二叉树的内部节点通过1,2,......,n-1;
(2)对于完全二叉树的叶节点,构建向量vetoru,vetoru=(u1,u2,......,uj,......,um),
当且仅当明文Di中包含关键字wj时,
Figure BDA0002805832350000074
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 BDA0002805832350000081
计算公式为:
Figure BDA0002805832350000082
Figure BDA0002805832350000083
其中C表示包含关键字wj的密文;
(6)数据所有者以交易的形式将上述索引I上传区块链。
数据所有者将密文和索引上传区块链后,数据用户基于其搜索关键字生成陷门,将陷门上传区块链进行搜索。具体步骤为:
(1)数据用户计算搜索关键字w在向量vetoru中的位置,计算公式为:
Figure BDA0002805832350000084
gw'=F(K2,w')
(2)数据用户将上述陷门上传区块链。
数据用户可指定数据搜索者的个数,具体的指定数据搜索者O,O={O1,O2,......,Ol}。
当只有一个搜索者,即l=1时,搜索过程如下:
(1)数据搜索者初始化一个结果集result;
(2)数据搜索者从完全二叉树的根节点开始搜索,将根节点存放的
Figure BDA0002805832350000085
取出,并存放至结果集result;
(3)计算如下公式:
vetoru=ω.Dec(gw',ti)
如果vetour[s]=0,放弃所述对应节点的左右子树,如果所述节点为叶节点,表示所述节点代表的明文不包含关键字w;
如果vetoru[s]=1,继续搜索所述节点的左右子树,如果所述节点为叶节点,表示所述节点代表的明文不包含关键字w,将所述节点对应的交易标识符存放至结果集result;
(4)完全二叉树搜索结束后,基于结果集result中的交易标识符得到对应的密文
Figure BDA0002805832350000091
将密文
Figure BDA0002805832350000092
返回数据用户。
当有多个数据搜索者,即O={O1,O2,......,Ol}时,如果有多个数据搜索者,多数据搜索者的情况明显会加快搜索效率,各个数据搜索者之间通过交易进行通信。具体搜索流程为:
(1)数据搜索者O1初始化一个结果集result;
(2)数据搜索者O1从完全二叉树的根节点开始搜索,将根节点存放的
Figure BDA0002805832350000093
取出,并存放至结果集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 BDA0002805832350000101
将密文
Figure BDA0002805832350000102
返回数据用户。
数据用户得到密文
Figure BDA0002805832350000103
后,通过判断gw'
Figure BDA0002805832350000104
是否一致验证密文的正
确性,验证通过后,执行
Figure BDA0002805832350000105
如下操作解密密文
Figure BDA0002805832350000106
其中,
Figure BDA0002805832350000107
表示密文
Figure BDA0002805832350000108
解密得到的明文。
本实施例中随机选取使用伪随机置换模拟真实随机。
上文通过附图和优选实施例对本发明进行了详细展示和说明,然而本发明不限于这些已揭示的实施例,基与上述多个实施例本领域技术人员可以知晓,可以组合上述不同实施例中的代码审核手段得到本发明更多的实施例,这些实施例也在本发明的保护范围之内。

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 FDA0002805832340000025
所述完全二叉树的内部节点通过1,2,......,n-1;
对于完全二叉树的叶节点,构建向量vetoru,vetoru=(u1,u2,......,uj,......,um),当且仅当明文Di中包含关键字wj时,
Figure FDA0002805832340000026
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 FDA0002805832340000021
计算公式为:
Figure FDA0002805832340000022
Figure FDA0002805832340000023
其中C表示包含关键字wj的密文;
数据所有者以交易的形式将上述索引I上传区块链。
6.根据权利要求5所述的基于区块链的关键字可搜索加密方法,其特征在于数据用户基于搜索关键字生成陷门,包括如下步骤:
数据用户计算搜索关键字w在向量vetoru中的位置,计算公式为:
Figure FDA0002805832340000024
gw'=F(K2,w')
数据用户将上述陷门上传区块链。
7.根据权利要求6所述的基于区块链的关键字可搜索加密方法,其特征在于数据用户将陷门上传区块链后,指定数据搜索者O,O={O1,O2,......,Ol}。
8.根据权利要求7所述的基于区块链的关键字可搜索加密方法,其特征在于对于单个数据搜索者,数据搜索者基于第二密钥组和陷门检索密文,包括如下步骤:
数据搜索者初始化一个结果集result;
数据搜索者从完全二叉树的根节点开始搜索,将根节点存放的
Figure FDA0002805832340000031
取出,并存放至结果集result;
计算如下公式:
vetoru=ω.Dec(gw',ti)
如果vetour[s]=0,放弃所述对应节点的左右子树,如果所述节点为叶节点,表示所述节点代表的明文不包含关键字w;
如果vetoru[s]=1,继续搜索所述节点的左右子树,如果所述节点为叶节点,表示所述节点代表的明文不包含关键字w,将所述节点对应的交易标识符存放至结果集result;
所述完全二叉树搜索结束后,基于结果集result中的交易标识符得到对应的密文
Figure FDA0002805832340000032
将密文
Figure FDA0002805832340000033
返回数据用户。
9.根据权利要求7所述的基于区块链的关键字可搜索加密方法,其特征在于对于对于多个数据搜索者,数据搜索者基于第二密钥组和陷门检索密文,包括如下步骤:
(1)数据搜索者O1初始化一个结果集result;
(2)数据搜索者O1从完全二叉树的根节点开始搜索,将根节点存放的
Figure FDA0002805832340000034
取出,并存放至结果集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 FDA0002805832340000041
将密文
Figure FDA0002805832340000042
返回数据用户。
10.根据权利要求6所述的基于区块链的关键字可搜索加密方法,其特征在于数据用户接收密文后,通过验证gw'
Figure FDA0002805832340000043
是否一致验证密文的正确性;
验证通过后,执行如下操作解密密文
Figure FDA0002805832340000044
Figure FDA0002805832340000045
其中,
Figure FDA0002805832340000051
表示密文
Figure FDA0002805832340000052
解密得到的明文。
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 true CN112328606A (zh) 2021-02-05
CN112328606B 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)

Cited By (5)

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

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
刘格昌等: "基于可搜索加密的区块链数据隐私保护机制", 《计算机应用》 *
陈垚等: "一种支持优先级排序的动态安全可搜索加密方案", 《网络空间安全》 *

Cited By (8)

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

Also Published As

Publication number Publication date
CN112328606B (zh) 2023-02-21

Similar Documents

Publication Publication Date Title
CN112328606B (zh) 基于区块链的关键字可搜索加密方法
Wang et al. Searchable encryption over feature-rich data
Peng et al. An efficient ranked multi-keyword search for multiple data owners over encrypted cloud data
CN109493017B (zh) 基于区块链的可信外包存储方法
Chen et al. EliMFS: achieving efficient, leakage-resilient, and multi-keyword fuzzy search on encrypted cloud data
Wang et al. Privacy-preserving ranked multi-keyword fuzzy search on cloud encrypted data supporting range query
CN111026788A (zh) 一种混合云中基于同态加密的多关键词密文排序检索方法
CN115314295B (zh) 一种基于区块链的可搜索加密技术方法
Dai et al. A privacy-preserving multi-keyword ranked search over encrypted data in hybrid clouds
CN112332979B (zh) 云计算环境中的密文搜索方法及系统、设备
Li et al. Enabling efficient fuzzy keyword search over encrypted data in cloud computing
Rane et al. Multi-user multi-keyword privacy preserving ranked based search over encrypted cloud data
Shekokar et al. Implementation of fuzzy keyword search over encrypted data in cloud computing
CN111177787B (zh) 多数据拥有者环境中基于属性的连接关键字搜索方法
Boucenna et al. Secure inverted index based search over encrypted cloud data with user access rights management
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
Ren et al. Privacy-preserving ranked multi-keyword search leveraging polynomial function in cloud computing
Zhang et al. A verifiable and dynamic multi-keyword ranked search scheme over encrypted cloud data with accuracy improvement
Wang et al. Public key encryption with fuzzy matching
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
CN112328626B (zh) 面向云环境的支持模糊关键词排序的可搜索加密方法
CN113158245A (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