CN112163854B - 一种层级化基于区块链公钥可搜索加密方法及*** - Google Patents

一种层级化基于区块链公钥可搜索加密方法及*** Download PDF

Info

Publication number
CN112163854B
CN112163854B CN202010963368.3A CN202010963368A CN112163854B CN 112163854 B CN112163854 B CN 112163854B CN 202010963368 A CN202010963368 A CN 202010963368A CN 112163854 B CN112163854 B CN 112163854B
Authority
CN
China
Prior art keywords
retrieval
ciphertext
layer
search
data
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
CN202010963368.3A
Other languages
English (en)
Other versions
CN112163854A (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.)
Beijing Institute of Technology BIT
Original Assignee
Beijing Institute of Technology BIT
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 Beijing Institute of Technology BIT filed Critical Beijing Institute of Technology BIT
Priority to CN202010963368.3A priority Critical patent/CN112163854B/zh
Publication of CN112163854A publication Critical patent/CN112163854A/zh
Application granted granted Critical
Publication of CN112163854B publication Critical patent/CN112163854B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION 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/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/382Payment protocols; Details thereof insuring higher security of transaction
    • G06Q20/3829Payment protocols; Details thereof insuring higher security of transaction involving key management

Landscapes

  • Business, Economics & Management (AREA)
  • Engineering & Computer Science (AREA)
  • Accounting & Taxation (AREA)
  • Computer Security & Cryptography (AREA)
  • Finance (AREA)
  • Strategic Management (AREA)
  • Physics & Mathematics (AREA)
  • General Business, Economics & Management (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请中一个或多个实施例提供一种层级化基于区块链公钥可搜索加密方法及***,包括:检索层获取加密公钥pk、明文m和检索关键字W′;检索层利用加密公钥pk加密明文m以生成密文,密文包括:数据密文Cm和搜索密文集PEKS(pk,W);检索层将搜索密文集PEKS(pk,W)发送至智能合约层,将数据密文Cm发送至服务器;检索层根据检索关键字W′生成检索口令TW′并存储;智能合约层获取用户的交易信息,并判断交易信息是否满***易条件,若满足,则获取数据密文Cm,将搜索密文集PEKS(pk,W)和数据密文Cm发送至检索层;检索层根据检索口令TW′执行检索操作以解密搜索密文集PEKS(pk,W)和数据密文Cm获得明文m,将明文m反馈至用户。

Description

一种层级化基于区块链公钥可搜索加密方法及***
技术领域
本申请中一个或多个实施例涉及区块链技术领域,尤其涉及一种层级化基于区块链公钥可搜索加密方法及***。
背景技术
现有技术中,区块链技术都是与对称密钥可搜索机制(SSE)相结合,但是对称密钥可搜索机制在理论上对于数据的共享有一定的限制,而区块链的设计就是面向数据共享的,所以两者结合存在一定冲突,现有技术中基于区块链的对称密钥可搜索机制无法支持数据的共享。现有技术中对称密钥可搜索机制需要管理复杂的密钥,且由于对称密钥的存在无法实现数据的共享,在各种利益诉求和软件入侵的情况下,都会引起对称密钥可搜索机制的服务器的恶意转变,导致其偏离搜索协议,只返回部分检索结果甚至是不正确的检索结果,而用户所支付的检索费用不会被返还,严重破坏了检索过程中的公平性和可靠性。现有技术中的对称密钥可搜索机制与区块链技术结合无法实现共享,存在复杂的密钥管理问题,无法保证检索结果的正确性和可靠性。
发明内容
有鉴于此,本申请中一个或多个实施例的目的在于提出一种层级化基于区块链公钥可搜索加密方法及***,以解决现有技术存在数据无法共享和检索结果可靠性低的问题。
基于上述目的,本申请中一个或多个实施例提供了一种层级化基于区块链公钥可搜索加密方法,包括:
检索层获取加密公钥pk、明文m和检索关键字W′;
所述检索层利用所述加密公钥pk加密所述明文m以生成密文,所述密文包括:数据密文Cm和搜索密文集PEKS(pk,W),其中W表示与所述明文m关联的明文关联关键字;所述检索层将所述搜索密文集PEKS(pk,W)发送至智能合约层,将所述数据密文Cm发送至服务器;所述检索层根据所述检索关键字W′生成检索口令TW′并存储;
所述智能合约层获取用户的交易信息,并判断所述交易信息是否满***易条件,若满足,则获取所述数据密文Cm,将所述搜索密文集PEKS(pk,W)和数据密文Cm发送至所述检索层;
所述检索层根据所述检索口令TW′执行检索操作以解密所述搜索密文集PEKS(pk,W)和数据密文Cm获得所述明文m,将所述明文m反馈至所述用户。
可选的,所述检索层获取加密公钥pk、明文m和检索关键字W′,包括:
选择安全参数s、随机数α、第一循环群G1、第二循环群G2和生成元g;
根据所述安全参数s、随机数α、第一循环群G1、第二循环群G2和生成元g获取所述加密公钥pk;
从用户处获取所述明文m和检索关键字W′。
可选的,还包括:
所述智能合约层建立检索账户$Buser并设置检索单价$offer和押金账户$deposit以初始化所述智能合约。
可选的,所述检索层利用所述加密公钥pk加密所述明文m以生成密文,包括:
基于非对称加密算法利用所述加密公钥pk加密所述明文m以得到所述数据密文Cm
根据双线性对得到所述搜索密文集PEKS(pk,W),所述搜索密文集PEKS(pk,W)包括:M个搜索密文CW
将所述数据密文Cm和搜索密文集PEKS(pk,W)进行编号得到关联编号N,根据所述关联编号N确定检索索引I,并将所述关联编号N发送至所述智能合约层和服务器。
可选的,所述交易信息,包括:押金,所述押金通过所述检索账户$Buser向所述押金账户$deposit中存储。
可选的,所述判断所述交易信息是否满***易条件,若满足,则获取所述数据密文Cm,将所述搜索密文集PEKS(pk,W)和数据密文Cm发送至所述检索层,包括:
估算检索交易的检索费用$cost;
判断所述押金账户$deposit中的所述押金是否满足所述交易条件,所述交易条件指所述押金不小于所述检索费用$cost,若满足,则获取所述数据密文Cm,将所述搜索密文集PEKS(pk,W)和数据密文Cm发送至所述检索层,利用所述检索账户$Buser与椭圆曲线对所述检索索引I签名以得到签名数据;
利用递归长度前缀编码对所述签名数据进行编码;
生成检索交易并广播所述检索交易。
可选的,若所述押金账户$deposit中的所述押金不满足所述交易条件,则所述智能合约层终止所述检索交易,将所述押金账户$deposit中的所述押金返还至所述检索账户$Buser
可选的,所述检索层根据所述检索口令TW′执行检索操作以解密所述搜索密文集PEKS(pk,W)和数据密文Cm获得所述明文m,将所述明文m反馈至所述用户,包括:
根据所述搜索密文集PEKS(pk,W)和检索口令TW′,对每个所述搜索密文CW执行搜索匹配算法Test(pk,CW,TW′);
判断每个所述搜索密文CW是否满足所述搜索匹配算法Test(pk,CW,TW′),若满足则解密所述搜索密文集PEKS(pk,W)和数据密文Cm以获得所述明文m。
可选的,还包括:
所述智能合约层根据所述关联编号N查找第一哈希值Hm
所述智能合约层根据所述关联编号N和数据密文Cm进行哈希运算确定第二哈希值Hm′,若Hm′=Hm,则所述智能合约层获取的数据密文Cm被验证为正确。
基于同一发明构思,本申请中一个或多个实施例还提出了一种层级化基于区块链公钥可搜索加密***,包括:
检索层和由区块链与部署在所述区块链上的智能合约构成的智能合约层;
所述检索层,被配置为获取加密公钥pk、明文m和检索关键字W′;利用所述加密公钥pk加密所述明文m以生成密文,所述密文包括:数据密文Cm和搜索密文集PEKS(pk,W),其中W表示与所述明文m关联的明文关联关键字;将所述搜索密文集PEKS(pk,W)发送至智能合约层,将所述数据密文Cm发送至服务器;根据所述检索关键字W′生成检索口令TW′并存储;根据所述检索口令TW′执行检索操作以解密所述搜索密文集PEKS(pk,W)和数据密文Cm获得所述明文m,将所述明文m反馈至用户;
所述智能合约层,被配置为获取用户的交易信息,并判断所述交易信息是否满***易条件,若满足,则获取所述数据密文Cm,将所述搜索密文集PEKS(pk,W)和数据密文Cm发送至所述检索层。
从上面所述可以看出,本申请中一个或多个实施例提供的一种层级化基于区块链公钥可搜索加密方法及***,包括:检索层获取加密公钥pk、明文m和检索关键字W′,基于公钥可搜索加密机制获取加密公钥pk;所述检索层利用所述加密公钥pk加密所述明文m以生成密文,所述密文包括:数据密文Cm和搜索密文集PEKS(pk,W),其中W表示与所述明文m关联的明文关联关键字;所述检索层将所述搜索密文集PEKS(pk,W)发送至智能合约层,将所述数据密文Cm发送至服务器;所述检索层根据所述检索关键字W′生成检索口令TW′并存储,基于公钥可搜索加密机制利用加密公钥pk对明文m进行加密,不需要管理复杂的密钥,而且通过加密公钥pk进行数据加密能够实现数据共享,检索口令TW′能够在保证搜索公平性和关键字隐私性的前提下,支持数据共享模式下的有效搜索;所述智能合约层获取用户的交易信息,并判断所述交易信息是否满***易条件,若满足,则获取所述数据密文Cm,将所述搜索密文集PEKS(pk,W)和数据密文Cm发送至所述检索层,利用区块链作为底层技术用来支持智能合约,能够使得智能合约在没有第三方干涉的情况下进行可信交易,利用智能合约的机制可以判断合约参与方的诚信,从而保障检索交易过程中的公平性;所述检索层根据所述检索口令TW′执行检索操作以解密所述搜索密文集PEKS(pk,W)和数据密文Cm获得所述明文m,将所述明文m反馈至所述用户,使检索操作脱离智能合约,避免智能合约承受非常大的计算量,保证智能合约的安全性,并保障智能合约运行的流畅性,从而解决了现有技术存在数据无法共享和检索结果可靠性低的问题。
附图说明
为了更清楚地说明本申请中一个或多个实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中一个或多个实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请中一个或多个实施例中一种层级化基于区块链公钥可搜索加密方法的流程图;
图2为本申请中一个或多个实施例中一种层级化基于区块链公钥可搜索加密方法实施方式的流程图;
图3为本申请中一个或多个实施例中一种层级化基于区块链公钥可搜索加密***的结构图;
图4为本申请中一个或多个实施例中用户平均等待时间和服务器处理时间随VU变化的实验数据图;
图5为本申请中一个或多个实施例中各层结构的每秒事务处理数和数据传输率的实验数据图;
图6为本申请中一个或多个实施例中检索层中用户等待时间和服务器处理时间随VU变化的实验数据图;
图7为本申请中一个或多个实施例中检索层中每秒事务处理数和数据传输率的实验数据图。
具体实施方式
为使本公开的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本公开进一步详细说明。
需要说明的是,除非另外定义,本申请中一个或多个实施例使用的技术术语或者科学术语应当为本公开所属领域内具有一般技能的人士所理解的通常意义。本申请中一个或多个实施例中使用的“第一”、“第二”以及类似的词语并不表示任何顺序、数量或者重要性,而只是用来区分不同的组成部分。“包括”或者“包含”等类似的词语意指出现该词前面的元件或者物件涵盖出现在该词后面列举的元件或者物件及其等同,而不排除其他元件或者物件。“连接”或者“相连”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电性的连接,不管是直接的还是间接的。“上”、“下”、“左”、“右”等仅用于表示相对位置关系,当被描述对象的绝对位置改变后,则该相对位置关系也可能相应地改变。
本申请中一个或多个实施例提供了一种层级化基于区块链公钥可搜索加密方法及***。
发明人通过研究发现现有技术中区块链技术都是与对称密钥可搜索机制(也可称为SSE)相结合。在这个基础之上,相关工作主要被分为两类:一类是采用智能合约作为执行搜索匹配的实体,借助智能合约的内在公平性避免传统服务器的恶意行为,从而保证搜索可靠性;另一类在原有的SSE框架下增加区块链***作为一个额外的实体,服务器仍然保留原有的搜索功能,通过与区块链的交易来保证服务器和用户之间的利益公平。目前,SSE在理论上对于数据的共享有一定的限制,而区块链的设计就是面向数据共享的,所以两者结合过程中会有一定冲突,基于区块链的SSE无法支持数据的共享。若把存储与检索都放在区块链上,智能合约承受不了如此大的计算量,会变得缓慢和昂贵。比如在上述提到的第一类基于区块链的对称密钥可搜索***在10万条数据中检索一次平均耗时为24分钟。所以现有技术中存在区块链技术与SSE无法实现数据共享、检索速度慢、开销大和检索结果可靠性低的问题。
参考图1,因此本申请中一个或多个实施例提供的一种层级化基于区块链公钥可搜索加密方法,包括以下步骤:
S101检索层获取加密公钥pk、明文m和检索关键字W′。
本实施例中,对于公钥可搜索加密机制(也可称为PEKS),采取固定的参数,使双线性映射固定下来,便于后续操作能够在同一组参数的基础上运行,在密钥生成函数KeyGen()中,输入第一密钥安全参数qbits和第二密钥安全参数rbits,本实施例中,qbits=512,rbits=160,从而确定选取的循环群以及返回的公共参数params。在实例化双线性对对象时,直接利用Python软件中的pypbc库中的Pairing()函数,将公共参数params输入,生成双线性对对象pairing,同时,对于第一循环群G1生成元的选取,也直接调用pypbc库中的Element.random()函数,输入之前生成的双线性对对象pairing以及第二循环群G2,随机生成。本实施例中的第一哈希函数H1()和第二哈希函数H2()直接引用Python软件中的hashlib的库hashlib.sha256生成。对于智能合约层中的智能合约,主要采用了字典的数据结构来存储搜索密文集PEKS(pk,W)与关联编号N。并提供接口,可以让外界通过交易得到索密文集PEKS(pk,W)。为了排除其他因素的干扰,本实施例在以太坊中搭建了一条私链,并将智能合约部署在此私链上,在以太坊环境中搭建了一条私链作为智能合约的运行环境,此条私链的ID,即chainId为528,创世区块的时间戳,即timestamp为0x5ddf8f3e,以太坊的难度,即difficulty为0x002,私链的端口为3333,远程过程调用端口为4444。在此私链中部署了智能合约,部署后得到智能合约的地址为0xc4ca68caa8ecc4a46b475161e3161eb228b0e01a。检索层由多个能够与客户端、智能合约层以及服务器能够进行信息交互的节点和/或检索服务器组成。
本实施例中,先选择一个安全参数s,再选取一个随机数
Figure GDA0003710504780000071
以及第一循环群G1、第二循环群G2和生成元g,其中
Figure GDA0003710504780000072
表示p-1阶循环群,根据安全参数s、随机数α、第一循环群G1、第二循环群G2和生成元g获取加密公钥pk和加密私钥sk,其中加密私钥sk为sk=α,加密公钥pk为pk=(g,h=gα),其中g和h表示加密公钥pk的两个部分。参考图2,客户端中包括数据拥有者用户和检索用户,根据数据拥有者用户,获取明文m,明文m关联有明文关键字W,根据检索用户获取检索关键字W′。
作为一个可选的实施例,在智能合约层中,数据拥有者用户注册得到拥有者账户$Bowner,智能合约层为检索用户建立检索账户$Buser并设置检索单价$offer和押金账户$deposit以初始化智能合约,检索用户需要向检索账户$Buser中存款。
S102所述检索层利用所述加密公钥pk加密所述明文m以生成密文,所述密文包括:数据密文Cm和搜索密文集PEKS(pk,W),其中W表示与所述明文m关联的明文关联关键字;所述检索层将所述搜索密文集PEKS(pk,W)发送至智能合约层,将所述数据密文Cm发送至服务器;所述检索层根据检索关键字W′生成检索口令TW′并存储。
本实施例中,利用加密公钥pk加密明文m以生成密文,密文包括:数据密文Cm和搜索密文集PEKS(pk,W),具体地,基于RSA非对称加密算法利用所述加密公钥pk加密所述明文m以得到所述数据密文Cm;在计算搜索密文集PEKS(pk,W)时,随机选取一个随机数
Figure GDA0003710504780000073
计算t=e(H1(W),hr)∈G2,其中t表示第二哈希函数的自变量,e表示双线性对,H1()表示第一哈希函数,然后得到搜索密文集PEKS(pk,W),搜索密文集PEKS(pk,W)=(gr,H2(t)),H2()表示第二哈希函数,其中搜索密文集PEKS(pk,W)包括:M个搜索密文CW。数据拥有者用户在检索层将数据密文Cm和搜索密文集PEKS(pk,W)进行编号得到关联编号N,再将数据密文Cm与关联编号N进行哈希计算得到第一哈希值Hm,根据关联编号N确定检索索引I,将关联编号N添加至检索层的检索索引I中,其中I={N1,N2,N3,......},N1,N2,……表示具体的每个关联编号N。检索层将搜索密文集PEKS(pk,W)以及关联编号N发送至智能合约层进行存储并等待查询,将数据密文Cm、关联编号N与第一哈希值Hm发送至服务器进行存储,其中第一哈希值Hm=hash(Cm,N)。根据加密私钥sk和用户想要检索的检索关键字W′,得到检索口令TW′=H1(W′)α∈G1,检索层将存储检索口令TW′
S103所述智能合约层获取用户的交易信息,并判断所述交易信息是否满***易条件,若满足,则获取所述数据密文Cm,将所述搜索密文集PEKS(pk,W)和数据密文Cm发送至所述检索层。
本实施例中,智能合约层获取用户的交易信息,交易信息,包括:押金,押金是通过检索用户利用检索账户$Buser向押金账户$deposit中进行存款操作,从而存储在押金账户$deposit中。智能合约层建立检索交易,其中包括:检索账户$Buser以及包含了搜索密文集PEKS(pk,W)和关联编号N的检索索引I。首先验证检索账户$Buser的合法性,然后智能合约层中的智能合约估算此次检索交易需要的检索费用$cost←$offer+Glimit×$gasprice,其中$offer表示检索单价,Glimit表示预估所花最大燃料,$gasprice表示燃料单价;判断交易信息是否满***易条件,交易条件是指押金账户$deposit中的押金不小于检索费用$cost,判断交易信息是否满***易条件即判断押金账户$deposit中的押金是否满足押金不小于检索费用$cost的交易条件,若满足,则继续发布检索交易,具体包括以下步骤:
首先使用检索账户$Buser对应的加密公钥pk与secp256k1椭圆曲线对检索索引I签名以得到签名数据;
然后利用递归长度前缀编码对所述签名数据进行编码,将检索交易的指针指向智能合约层中的前一个区块,验证检索交易并将其广播到P2P网络中;
最后检索交易产生交易ID,即txHash,检索交易发布成功后,则将检索索引I中关联编号N对应的搜索密文集PEKS(pk,W)上传至检索层。
若检索用户在押金账户$deposit中预存的押金不满***易条件,即押金不足以支付检索费用$cost,则终止检索交易,并将押金账户$deposit中预存的押金返回至检索用户的检索账户$Buser。从而解决了现有技术中由于存在恶意的服务器在无法为检索用户提供检索交易,即当押金不满***易条件时,将不会返还押金,造成检索用户的资源损失。
作为一个可选的实施例,当智能合约层判断交易信息满***易条件时,能够直接根据服务器获取存储在服务器中的数据密文Cm,并验证获取到的数据密文Cm的真实性,如果获取到的数据密文Cm与关联编号N存在编号时的对应关系,则获取到的数据密文Cm的真实性验证成功,将数据密文Cm上传至检索层。
S104所述检索层根据所述检索口令TW′执行检索操作以解密所述搜索密文集PEKS(pk,W)和数据密文Cm获得所述明文m,将所述明文m反馈至所述用户。
本实施例中,检索层针对检索用户提供的检索关键字W′生成的检索索引I和检索口令TW′,向智能合约层请求对应的搜索密文集PEKS(pk,W),对于搜索密文集PEKS(pk,W)中的每个搜索密文CW执行搜索匹配算法Test(pk,CW,TW′)的验证,其中搜索密文CW=[A,B]=PEKS(pk,W),A表示搜索密文CW的第一部分,B表示搜索密文CW的第二部分,判断每个搜索密文CW是否满足搜索匹配算法Test(pk,CW,TW′),即判断H2(e(TW′,A))=B是否成立,其中H2()表示第二哈希函数,如果成立,则搜索匹配算法Test(pk,CW,TW′)输出1,如果不成立,则搜索匹配算法Test(pk,CW,TW′)输出0。若搜索匹配算法Test(pk,CW,TW′)输出1,则表明检索成功,将满足搜索匹配算法Test(pk,CW,TW′)的搜索密文CW对应的关联编号N下发至智能合约层,若不存在能使搜索匹配算法Test(pk,CW,TW′)输出1的搜索密文CW,则表明数据拥有者用户存储的密文中未包含检索用户想要检索的明文,此时将关联编号N置为-1,并将关联编号N下发至智能合约层。
作为一个可选的实施例,当搜索匹配算法Test(pk,CW,TW′)输出1时,则表明检索成功,检索层接收智能合约层获取的搜索密文集PEKS(pk,W)和数据密文Cm,并解密搜索密文集PEKS(pk,W)和数据密文Cm,从而获得明文m,并将解密得到的明文m发送至检索用户。
作为一个可选的实施例,服务器需要通过验证后,再上传数据密文Cm,具体包括:智能合约层中的智能合约会进行验证操作计算,具体地,当智能合约接收到来自检索层的关联编号N后,智能合约首先判断关联编号N是否为-1,若为-1,则生成输出为0的验证算法Verify(Cm,N);若关联编号N不为-1,则智能合约通过关联编号N向服务器请求关联编号N对应的数据密文Cm,此时智能合约需要验证服务器是否上传了错误的密文或者数据密文Cm是否被恶意破坏或篡改,具体地,智能合约通过关联编号N查找智能合约层对应的第一哈希值Hm,然后再根据关联编号N和数据密文Cm进行哈希运算确定第二哈希值Hm′,如果Hm′=Hm,则表明服务器上传的数据密文Cm验证成功,生成输出为1的验证算法Verify(Cm,N),如果Hm′≠Hm,则表明服务器上传的数据密文Cm验证失败,所构成输出为0的验证算法Verify(Cm,N)。智能合约判断验证算法Verify(Cm,N)的输出值,若验证算法Verify(Cm,N)输出为1,则计算在完成检索交易后扣除检索费用$cost后剩余的押金,将剩余的押金退回至检索用户的检索账户$Buser中,并将数据密文Cm通过智能合约层上传至检索层,检索层解密搜索密文集PEKS(pk,W)和数据密文Cm以获得明文m,检索层将得到的明文m上传至客户端中的检索用户;如果验证算法Verify(Cm,N)输出为0,则直接将押金账户$deposit中的押金退回至检索用户的检索账户$Buser
参考图2,作为一个可选的实施例,一种层级化基于区块链公钥可搜索加密方法的实施方式,包括以下步骤:
初始化智能合约层中的智能合约,并建立检索交易;
客户端中的数据拥有者用户将明文m和明文m对应的明文关键字W传入检索层;
检索层利用加密公钥pk对明文m加密以获得数据密文Cm和搜索密文集PEKS(pk,W),将数据密文Cm和搜索密文集PEKS(pk,W)进行编号得到关联编号N;
检索层根据关联编号N确定检索索引I,并将检索索引I存储于检索层;
检索层将数据密文Cm和关联编号N上传至服务器;
检索层将搜索密文集PEKS(pk,W)和关联编号N上传至智能合约层;
客户端中的检索用户将检索关键字W′和押金上传至检索层;
检索层根据检索关键字W′生成检索口令TW′并存储;
检索层将押金发送至智能合约层;
智能合约层验证押金是否满***易条件,若满足,则将搜索密文集PEKS(pk,W)上传至检索层,若不满足,则将押金退回至检索用户;
检索层根据搜索密文集PEKS(pk,W)和检索口令TW′确定对应的数据密文Cm的初步检索结果,将初步检索结果发送至智能合约层,初步检索结果为检索层通过检索确定的搜索密文CW与数据密文Cm的对应关系;
智能合约层根据初步检索结果确定搜索密文CW和数据密文Cm对应的关联编号N,并将关联编号N发送至服务器;
服务器根据关联编号N将对应的数据密文Cm发送至智能合约层;
智能合约层对数据密文Cm进行验证,若数据密文Cm通过验证,则将数据密文Cm发送至检索层,若数据密文Cm没有通过验证,则将押金返还至客户端中的检索用户;
检索层根据数据密文Cm和搜索密文集PEKS(pk,W)中的至少一个搜索密文CW解密获得明文m,并将明文m发送至客户端中的检索用户;
在检索用户收到明文m后,智能合约层将检索费用$cost发送至数据拥有者用户,将扣除检索费用$cost后剩余的押金返还至检索用户。
从上面所述可以看出,本申请中一个或多个实施例提供的一种层级化基于区块链公钥可搜索加密方法及***,包括:检索层获取加密公钥pk、明文m和检索关键字W′,基于公钥可搜索加密机制获取加密公钥pk;所述检索层利用所述加密公钥pk加密所述明文m以生成密文,所述密文包括:数据密文Cm和搜索密文集PEKS(pk,W),其中W表示与所述明文m关联的明文关联关键字;所述检索层将所述搜索密文集PEKS(pk,W)发送至智能合约层,将所述数据密文Cm发送至服务器;所述检索层根据检索关键字W′生成检索口令TW′并存储,基于公钥可搜索加密机制利用加密公钥pk对明文m进行加密,不需要管理复杂的密钥,而且通过加密公钥pk进行数据加密能够实现数据共享,检索口令TW′能够在保证搜索公平性和关键字隐私性的前提下,支持数据共享模式下的有效搜索;所述智能合约层获取用户的交易信息,并判断所述交易信息是否满***易条件,若满足,则获取所述数据密文Cm,将所述搜索密文集PEKS(pk,W)和数据密文Cm发送至所述检索层,利用区块链作为底层技术用来支持智能合约,能够使得智能合约在没有第三方干涉的情况下进行可信交易,利用智能合约的机制可以判断合约参与方的诚信,从而保障检索交易过程中的公平性;所述检索层根据所述检索口令TW′执行检索操作以解密所述搜索密文集PEKS(pk,W)和数据密文Cm获得所述明文m,将所述明文m反馈至所述用户,使检索操作脱离智能合约,避免智能合约承受非常大的计算量,保证智能合约的安全性,并保障智能合约运行的流畅性,从而解决了现有技术存在数据无法共享和检索结果可靠性低的问题,而且本申请提供的方法及***采用分层结构,能够避免将检索工作放入智能合约中,造成智能合约的运行速度缓慢,以及当智能合约无法承受检索与存储的计算量后造成的损失,通过分层结构,解决了现有技术中出现的检索速度慢以及资源开销大的问题,从而实现一个具有实用价值的公平可靠的基于区块链公钥可搜索加密方法及***。
参考图3,基于同一发明构思,本申请中一个或多个实施例还提出了一种层级化基于区块链公钥可搜索加密***,包括:
检索层和由区块链与部署在所述区块链上的智能合约构成的智能合约层;
所述检索层,被配置为获取加密公钥pk、明文m和检索关键字W′;利用所述加密公钥pk加密所述明文m以生成密文,所述密文包括:数据密文Cm和搜索密文集PEKS(pk,W),其中W表示与所述明文m关联的明文关联关键字;将所述搜索密文集PEKS(pk,W)发送至智能合约层,将所述数据密文Cm发送至服务器;根据检索关键字W′生成检索口令TW′并存储;根据所述检索口令TW′执行检索操作以解密所述搜索密文集PEKS(pk,W)和数据密文Cm获得所述明文m,将所述明文m反馈至所述用户;
所述智能合约层,被配置为获取用户的交易信息,并判断所述交易信息是否满***易条件,若满足,则获取所述数据密文Cm,将所述搜索密文集PEKS(pk,W)和数据密文Cm发送至所述检索层。
本申请中一个或多个实施例还提出了一种层级化基于区块链公钥可搜索加密***,还包括:承载检索用户和数据拥有者用户的客户端,以及接收并存储数据密文Cm和关联编号N的服务器。
上述对本申请中特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
为了验证本申请中一个或多个实施例提供的一种层级化基于区块链公钥可搜索加密方法及***的有益效果,设置了仿真试验对本申请的方案进行验证。实验环境基于以太坊平台搭建,使用的操作***为ubuntu18.04,客户端使用了Django框架与html5、Javascript技术来保证其与后端的交互,为了实验结果的准确并减少其它因素的干扰,智能合约部署在以太坊私链中,实验在具有4个Intel i7-7500内核的PC上执行,操作***为Ubuntu18.04,内存为5.8G,实验过程中保持合约启动状态,然后使用Apache Bench进行压力测试,设置对服务器的数据请求总数固定为600,并固定传输数据长度,改变***面对的并发请求数量,对用户平均等待时间、服务器平均请求处理时间等指标进行统计与分析,从而验证本申请提供的方案的可行性,具体参数参考表1。
表1仿真实验相关参数
Figure GDA0003710504780000131
实验分为两组,每组根据VU的不同又分为15组参数,每组参数重复测试3次取平均值,总共进行90次测试,针对各层消息发送能力进行测试时,消息长度为4640bytes,改变VU数量使其在10到600的范围内递增,记录每组数据下用户平均等待时间、服务器平均请求处理时间、TPS以及DTR的值;针对检索层检索能力进行测试时,消息长度为3247bytes,改变改变VU数量使其在10到600的范围内递增,并记录上述性能参数数值。
经过测试,整个实验过程中模拟用户失败的请求个数都是0,在正常情况下,服务器对用户请求的响应能力维持着较高的水平,各层的功能也做到完整而稳定地运行。参考图4和图5,可以直观地展示出用户等待时间与***响应时间同时与DTR有关,DTR越高,TPS越大,用户的请求等待时间越短,另一方面,当VU在10到600范围内变化时,各层的用户请求等待时间和服务器请求处理时间也随VU线性地增加,相应的TPS逐渐下降,可以推测,在并发数600之内,***可以正常且完整地完成信息发送,但是并发数增大时,***的响应时间会有一定的延长。
参考图6和图7,当其他条件不变、VU在10到600范围内变化的情况下,检索层各性能参数的变化情况,检索层各参数随VU的变化与图4和图5中各参数变化情况处于相同趋势。需要说明的是,服务器响应时间与用户等待时间在很大程度上依赖于网络上的数据传输速率,因此在不同时刻、不同网段中使用同一套参数重复验证时,尽管数据由于网速的变化而大不相同,但是各参数之间的依赖关系和变化趋势依然不会改变。
所属领域的普通技术人员应当理解:以上任何实施例的讨论仅为示例性的,并非旨在暗示本公开的范围(包括权利要求)被限于这些例子;在本公开的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,步骤可以以任意顺序实现,并存在如上所述的本申请中一个或多个实施例的不同方面的许多其它变化,为了简明它们没有在细节中提供。
本申请中一个或多个实施例旨在涵盖落入所附权利要求的宽泛范围之内的所有这样的替换、修改和变型。因此,凡在本申请中一个或多个实施例的精神和原则之内,所做的任何省略、修改、等同替换、改进等,均应包含在本公开的保护范围之内。

Claims (10)

1.一种层级化基于区块链公钥可搜索加密方法,其特征在于,包括:
检索层获取加密公钥pk、明文m和检索关键字W′;
所述检索层利用所述加密公钥pk加密所述明文m以生成密文,所述密文包括:数据密文Cm和搜索密文集PEKS(pk,W),其中W表示与所述明文m关联的明文关联关键字;所述检索层将所述搜索密文集PEKS(pk,W)发送至智能合约层,将所述数据密文Cm发送至服务器;所述检索层根据所述检索关键字W′生成检索口令TW′并存储;
所述智能合约层获取用户的交易信息,并判断所述交易信息是否满***易条件,若满足,则获取所述数据密文Cm,将所述搜索密文集PEKS(pk,W)和数据密文Cm发送至所述检索层;
所述检索层根据所述检索口令TW′执行检索操作以解密所述搜索密文集PEKS(pk,W)和数据密文Cm获得所述明文m,将所述明文m反馈至所述用户。
2.根据权利要求1所述的方法,其特征在于,所述检索层获取加密公钥pk、明文m和检索关键字W′,包括:
选择安全参数s、随机数α、第一循环群G1、第二循环群G2和生成元g;
根据所述安全参数s、随机数α、第一循环群G1、第二循环群G2和生成元g获取所述加密公钥pk;
从用户处获取所述明文m和检索关键字W′。
3.根据权利要求1所述的方法,其特征在于,还包括:
所述智能合约层建立检索账户$Buser并设置检索单价$offer和押金账户$deposit以初始化所述智能合约。
4.根据权利要求3所述的方法,其特征在于,所述检索层利用所述加密公钥pk加密所述明文m以生成密文,包括:
基于非对称加密算法利用所述加密公钥pk加密所述明文m以得到所述数据密文Cm
根据双线性对得到所述搜索密文集PEKS(pk,W),所述搜索密文集PEKS(pk,W)包括:M个搜索密文CW
将所述数据密文Cm和搜索密文集PEKS(pk,W)进行编号得到关联编号N,根据所述关联编号N确定检索索引I,并将所述关联编号N发送至所述智能合约层和服务器。
5.根据权利要求4所述的方法,其特征在于,所述交易信息,包括:押金,所述押金通过所述检索账户$Buser向所述押金账户$deposit中存储。
6.根据权利要求5所述的方法,其特征在于,所述判断所述交易信息是否满***易条件,若满足,则获取所述数据密文Cm,将所述搜索密文集PEKS(pk,W)和数据密文Cm发送至所述检索层,包括:
估算检索交易的检索费用$cost;
判断所述押金账户$deposit中的所述押金是否满足所述交易条件,所述交易条件指所述押金不小于所述检索费用$cost,若满足,则获取所述数据密文Cm,将所述搜索密文集PEKS(pk,W)和数据密文Cm发送至所述检索层,利用所述检索账户$Buser与椭圆曲线对所述检索索引I签名以得到签名数据;
利用递归长度前缀编码对所述签名数据进行编码;
生成检索交易并广播所述检索交易。
7.根据权利要求6所述的方法,其特征在于,若所述押金账户$deposit中的所述押金不满足所述交易条件,则所述智能合约层终止所述检索交易,将所述押金账户$deposit中的所述押金返还至所述检索账户$Buser
8.根据权利要求4所述的方法,其特征在于,所述检索层根据所述检索口令TW′执行检索操作以解密所述搜索密文集PEKS(pk,W)和数据密文Cm获得所述明文m,将所述明文m反馈至所述用户,包括:
根据所述搜索密文集PEKS(pk,W)和检索口令TW′,对每个所述搜索密文CW执行搜索匹配算法Test(pk,CW,TW′);
判断每个所述搜索密文CW是否满足所述搜索匹配算法Test(pk,CW,TW′),若满足则解密所述搜索密文集PEKS(pk,W)和数据密文Cm以获得所述明文m。
9.根据权利要求4所述的方法,其特征在于,还包括:
所述智能合约层根据所述关联编号N查找第一哈希值Hm
所述智能合约层根据所述关联编号N和数据密文Cm进行哈希运算确定第二哈希值Hm′,若Hm′=Hm,则所述智能合约层获取的数据密文Cm被验证为正确。
10.一种层级化基于区块链公钥可搜索加密***,其特征在于,包括:
检索层和由区块链与部署在所述区块链上的智能合约构成的智能合约层;
所述检索层,被配置为获取加密公钥pk、明文m和检索关键字W′;利用所述加密公钥pk加密所述明文m以生成密文,所述密文包括:数据密文Cm和搜索密文集PEKS(pk,W),其中W表示与所述明文m关联的明文关联关键字;将所述搜索密文集PEKS(pk,W)发送至智能合约层,将所述数据密文Cm发送至服务器;根据所述检索关键字W′生成检索口令TW′并存储;根据所述检索口令TW′执行检索操作以解密所述搜索密文集PEKS(pk,W)和数据密文Cm获得所述明文m,将所述明文m反馈至用户;
所述智能合约层,被配置为获取用户的交易信息,并判断所述交易信息是否满***易条件,若满足,则获取所述数据密文Cm,将所述搜索密文集PEKS(pk,W)和数据密文Cm发送至所述检索层。
CN202010963368.3A 2020-09-14 2020-09-14 一种层级化基于区块链公钥可搜索加密方法及*** Active CN112163854B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010963368.3A CN112163854B (zh) 2020-09-14 2020-09-14 一种层级化基于区块链公钥可搜索加密方法及***

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010963368.3A CN112163854B (zh) 2020-09-14 2020-09-14 一种层级化基于区块链公钥可搜索加密方法及***

Publications (2)

Publication Number Publication Date
CN112163854A CN112163854A (zh) 2021-01-01
CN112163854B true CN112163854B (zh) 2022-08-05

Family

ID=73857487

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010963368.3A Active CN112163854B (zh) 2020-09-14 2020-09-14 一种层级化基于区块链公钥可搜索加密方法及***

Country Status (1)

Country Link
CN (1) CN112163854B (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 华中科技大学 一种保障可搜索公钥加密检索完备性的方法及***
CN112560075B (zh) * 2021-02-22 2021-05-25 西南石油大学 一种基于椭圆曲线的轻量级可搜索加密方法及装置
CN113162768B (zh) * 2021-02-24 2022-07-22 北京科技大学 一种基于区块链的智能物联网设备认证方法及***
CN112751673B (zh) * 2021-04-02 2021-06-25 之江实验室 一种基于端边云协同的可监管数据隐私共享方法
CN114422176B (zh) * 2021-12-10 2023-03-10 北京理工大学 基于区块链的动态访问控制方法及装置

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105553660A (zh) * 2016-01-25 2016-05-04 华中科技大学 一种动态可搜索公钥加密方法
JP6362811B1 (ja) * 2017-09-12 2018-07-25 三菱電機株式会社 登録端末、鍵サーバ、検索システム、登録プログラム
CN109672525A (zh) * 2018-12-14 2019-04-23 华中科技大学 一种具有高效前向索引的可搜索公钥加密方法及***
CN110599147A (zh) * 2019-09-17 2019-12-20 福州大学 一种基于区块链的密文检索公平支付方法及***
CN110717191A (zh) * 2019-10-24 2020-01-21 兰州理工大学 基于可搜索属性加密的区块链数据隐私保护访问控制方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105553660A (zh) * 2016-01-25 2016-05-04 华中科技大学 一种动态可搜索公钥加密方法
JP6362811B1 (ja) * 2017-09-12 2018-07-25 三菱電機株式会社 登録端末、鍵サーバ、検索システム、登録プログラム
CN109672525A (zh) * 2018-12-14 2019-04-23 华中科技大学 一种具有高效前向索引的可搜索公钥加密方法及***
CN110599147A (zh) * 2019-09-17 2019-12-20 福州大学 一种基于区块链的密文检索公平支付方法及***
CN110717191A (zh) * 2019-10-24 2020-01-21 兰州理工大学 基于可搜索属性加密的区块链数据隐私保护访问控制方法

Also Published As

Publication number Publication date
CN112163854A (zh) 2021-01-01

Similar Documents

Publication Publication Date Title
CN112163854B (zh) 一种层级化基于区块链公钥可搜索加密方法及***
CN109639677B (zh) 一种可限制访问次数的云存储外包解密属性基加密方法
EP2716006B1 (en) Method and apparatus for achieving data security in a distributed cloud computing environment
US8898478B2 (en) Method for querying data in privacy preserving manner using attributes
US10897456B2 (en) Cryptography using multi-factor key system and finite state machine
Yang et al. Achieving efficient and privacy-preserving cross-domain big data deduplication in cloud
US11374975B2 (en) TLS integration of post quantum cryptographic algorithms
US11546348B2 (en) Data service system
CN106487506B (zh) 一种支持预加密和外包解密的多机构kp-abe方法
CN110866135B (zh) 一种基于响应长度隐藏的k-NN图像检索方法及***
EP3759864A1 (en) Computer implemented voting process and system
US9641328B1 (en) Generation of public-private key pairs
CN114039785B (zh) 数据加密、解密、处理方法、装置、设备和存储介质
CN108111587A (zh) 一种基于时间释放的云存储搜索方法
CN111159352B (zh) 一种支持多关键词加权检索和结果排序且可验证的加解密方法
CN116830523A (zh) 阈值密钥交换
JP2018037938A (ja) 鍵交換方法、鍵交換システム
US8594329B2 (en) Non-interactive verifiable, delegated computation
CN107360252B (zh) 一种异构云域授权的数据安全访问方法
Yoosuf et al. FogDedupe: A Fog‐Centric Deduplication Approach Using Multi‐Key Homomorphic Encryption Technique
Murthy Cryptographic secure cloud storage model with anonymous authentication and automatic file recovery
Liu et al. Video data integrity verification method based on full homomorphic encryption in cloud system
Park et al. A symmetric key based deduplicatable proof of storage for encrypted data in cloud storage environments
CN113094735A (zh) 隐私模型训练的方法
CN112671543A (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