原文标题: Blockchain-Enabled Public Key Encryption with Multi-Keyword Search in Cloud Computing
原文作者: Zhenwei Chen,Axin Wu,Yifei Li,Qixuan Xing and Shengling Geng
原文机构: 西安邮电大学,暨南大学,青海师范大学,青海省西宁市高原科学与可持续发展研究所
原文地址: https://doi.org/10.1155/2021/6619689
发表日期/期刊: 21 January 2021/Security and Communication Networks
笔记整理: doxbwx@163.com

1. 简介

为了确保用户在检索数据时的安全,针对云环境的可搜索加密技术被广泛采用。作者针对目前已有的可搜索加密(SE)方案进行改进,提出了支持区块链的多关键词搜索的公钥加密方案(BPKEMS)
该方案的优势在于:

  • 支持文件更新
  • 利用智能合约确保data owner 和data user之间的交易公平性
  • 对文件编号来实现可验证性
  • 可以抵御内部关键字猜测攻击(KGAs),并且具有更好的计算开销

1.1 预备工作

1.1.1 双线性配对

设G1,G2是两个乘法循环群。一个映射e。G1 × G1 ⟶ G2,如果它具有以下性质,则称为对称双线性配对。

  1. 双线性。e(u^a, v^b) = e(u, v)^ab, ∀u, v∈G1, 和 ∀a, b∈Zp。
  2. 非生成的。e(g, g)≠1。让1∈G2是G2组的身份元素。
  3. 可计算。∀u, v∈G1,e(u, v);有一个多项式时间算法可以轻易计算e。

1.1.2 决策性Diffie-Hellman(DDH)问题

给定G1的一个生成器g,则{g、ga、gb、gc}∈G1,其中a、b、c∈Zp。DDH问题是要确定g^c是否等于g{ab}。假设DDH问题是困难的,这意味着没有对手能以不能忽略的概率解决这个问题。

2、方案构建

该方案的具体系统模型如下图所示:

图中DO表示data owner,DU表示data user,TA为值得信任的权威机构TA,CS为云服务器,SC是智能合约。

2.1 算法

2.1.1 Setup(1^λ)

输入安全参数λ,生成系统参数SP=(g,h,H1)
g为G1的生成器,h和H1是两个抗碰撞的哈希函数,h: {0, 1}∗ ⟶ Zp, H1: {0, 1}∗ × {0, 1}∗ ⟶ {0, 1}

2.1.2 KeyGen(SP)

  1. KeyGeno:随机选a∈ Zp作为DO的私钥sko,计算公钥pko = g^a
  2. KeyGenu:随机选b∈ Zp作为DU的私钥sku,计算DU的公钥pku = { pku1, pku2 }, where pku1 = e(g, g)^(1/b) ,pku2 = g^b
  3. KeyGens:随机选c∈ Zp作为CS的私钥sks,计算公钥pks = g^c

2.1.3 Enc (SP, pku, sko, F)

file set F = {f1,…,ft},keyword dictionary W={w1,…,wn}

  1. DO从F中提取出各个文件的keyword index Ii={I0,I1,I2,Ij} 其中i ∈ [1, t]。DO随机挑选r∈ Zp,计算Ii,0=e(g,g)^r,Ii,1=pku2^r,Ii,2=e(g,g)^(ar/b),Ii,j=g^(-rh(wj)),其中j ∈ [1, n]
  2. DO用对称加密算法加密每个fi ∈ F,计算DO和DU的共享密钥K=pku2^(sko) = g^ba。对每个文件加密,加密文件称为Ci。
  3. DO对文件进行编号,用共享密钥K加密文件索引,加密文件索引称为Ni,将Ci和Ni存储起来,进行哈希操作得到Mi=H1(Ni,Ci).

Ni和Mi打包和keyword index set一起上传给SC,file index set和密文C传给CS

2.1.4 Trap(W′, pks, pko,sku)

Trap算法是由DU运行的,DU查询操作时,需要为关键字产生一个trapdoor TW′。然而trapdoor包含两个部分,TW′,1和TW′,2

  1. DU随机挑选一个数φ ∈ Zp ,让TW′,1=φ。
  2. DU再计算TW′,2

关键字位置L={ρ(1),…,ρ(l)},表示从W '到W的位置,
其中ρ:wπ ′ = wρ(π)。W '表示搜索的关键字集,W表示关键字字典
DU设置一个time limit节点T1 。

把L位置的trapdoor传给SC,SC执行deposit操作。然后DU发送trapdoor TW′和time limit节点T1给SC,再上传userID,请求SC执行Search服务。

2.1.5 Search (I, TW′ , L,sks).

owner:DO账户
user:DU账户
userdeposit:区块链中的当前deposit
DU将账户余额deposit给user
gasprice:gasline的单位价
cost:每个完整查询操作总成本
Gaslsrch:表示gas limit
Gassrch,调用搜索算法的成本

在收到DU的ID并请求搜索服务后,执行以下算法:

其中,σ‘2作为中间值传给CS,CS计算σ2作为最终值返回给SC。再计算σ1
如果σ1 ·σ2=σ3说明查询成功

2.1.6 Verification and Decryption (SP, C, C′, Ns)

DU执行该算法,当SC将满足搜索要求的file index set Ns和DU的id发送给CS。然后CS返回file密文set C和加密index set Ns按照Ni发给DU。
当SC成功检索后,打包的密文就会发送给DU,

  1. 然后DU验证由SC发送的file index 和由CS发送的 file index。如果两者相等,则说明CS没有发送错误的文件。
  2. 再验证Mi是否等于M。如果相等,则CS没有修改密文数据
  3. DU再用共享密钥K,解密密文,然后DU就可以得到解密的file set F’。

2.1.7 正确性

以下公式可以证明index和trapdoor成功配对

3. 分析

3.1 安全分析

3.1.1 公平性

每个操作都会消耗SC上的gas,提供数据的DO会得到相应的奖励,DU也需要为检索到的文件而支付gas。没有引入第三方就可以保证正确的结果。DU也设置了一个限制时间来确保交易的公平性,因为交易都需要在特定的时间内完成,如果超时了,用户就会停止查询服务。

3.1.2 可靠性

SC上的操作都是透明的,不能够被修改的。可以完全信任SC返回的数据是可靠的,并且他能有效的阻止服务器恶意的行为,区块链以及用户端的核查都可以确保结果的正确性。可以连接到区块链中查看任意节点的行为。

3.1.1 机密性

该方案理论上可以抵抗KGAs。
**定理:**如果对手在博弈1和博弈2中以可忽略的概率解决了相应的难题,那么我们的方案是可以抵抗KGA
也就是说,只要以下两个条件满足,方案就是安全的。

在博弈1中,如果DDH假设成立,则方案达到index不可区分。
在博弈2中,该方案能够保证在随机oracle模型下抵抗所选关键字攻击

  1. 在博弈1中,DU和DO的共享密钥K是用对称密钥来加密的。CS必须要在公共传输过程中截取或者在生成共享密钥之前获取到DU或者DO的私钥。然而方案没有公共传输过程,所以CS只能在生成密钥之前获取到DU或DO的私钥来解开file fi的密文。因此,K是安全的。
  2. 方案的安全性分析可以分为两个部分。第一个部分是keyword index的生成。第二部分是要查询的keyword set。

第一部分: 假设DU想要查询一个keyword set W’。CS要想猜到的话,就必须生一个有效的keyword index I,但是根据加密算法Enc (SP, pku, sko, F),CS必须要先获取到DO的私钥sko,但是sko是私密的,CS只能猜测,猜中的概率为1/p。所以只要p足够大,CS就猜不中
第二部分: 假设CS直接猜测要查询的keyword set,假设一共有l个元素,关键字字典里有n个元素,那CS猜中的概率为
所以只要n足够大,猜中的概率几乎可以忽略。

  1. 在博弈2中,给定一个有效的keyword index I ,那CS就需要生成一个匹配的有效的trapdoor。根据Trap(W′, pks, pko,sku),生成一个trapdoor需要sku。CS猜中sku值的概率为1/p,所以这个概率几乎可以忽略。

所以只要关键字字典中的关键字数量n足够大,以及素数p的值取得足够大,该方案是可以抵抗内部KGAs的。

3.2 性能分析

3.2.1 理论分析

与其他两个方案进行对比。TM代表乘法操作,TH代表哈希操作,TE代表指数操作,TP代表对操作。G1、G2和Zp的元素长度定义为|G1|、|G2|、|Zp|。
下图表示本文方案与其他两个方案的功能对比。

各方案的计算开销如下图所示:
在Enc和Trapdoor阶段,三种发哪敢的计算量会随着加密关键字和被查询关键字的数量增加而增加,但是本文的方式是效率最高的。

各方案的通信开销如下图所示:
Enc阶段本文方案和[5]方案几乎一致,但比[37]要小。Trapdoor阶段,[37]方案随被查询的关键字数量增加而增加,而本文和[5]方案是恒定的。

3.2.2 实证分析

下图为Enc算法计算开销:
作者方案的斜率最小,随着关键字的增加,优势越来越明显。

下图为Trapdoor生成算法计算开销:
作者的方案指数运算和乘法运算的系数是常数,而哈希运算随着关键词的增加而线性增加。由图可知,哈希到Zp的时间比哈希到G的时间明显短了非常多。

下图表示Search算法的计算开销:
作者的方案与其他两个方案之间的效率差距并不明显。但是还是存在一些优势。

4. 结论

作者提出了一个区块链场景下的BPKEMS方案,它支持多关键词的安全检索、文件的动态更新和密码文本的验证。此外,作者的方案可以抵御KGAs。在效率方面,作者通过模拟实现了这个方案,并与其他方案[5, 37]进行了比较,结果表明作者方案更加实用。

[5]基于区块链的多关键字无证书可搜索公钥认证加密方案 2020
[37] Tcpedcks:时间控制的公钥加密与可委托的连接关键字搜索物联网 2019-11-20

06云计算中具有多关键字搜索的基于区块链的公钥加密相关推荐

  1. wml在文本框中输入中文关键字搜索时,服务端获取到的值总是乱码的解决方法。...

    wml在文本框中输入中文关键字搜索时,服务端获取到的值总是乱码,该如何解决? 现提供一个客户端对关键字编码,服务端再解析的方法,应该可以完美的解决这一问题. wml文件: <?xml versi ...

  2. 币须知道 |首批19家企业入驻杭州区块链产业园,纳斯达克:股市中仅5%的 IT供应商部署区块链...

    您的 转发 和吐槽是我们前进的动力 今日要闻 监管要闻 ·加拿大:投资行业监管组织成立工作组,致力于资本市场区块链应用监管 ·韩国对数字货币交易所非收款账户加强监管 ·日本监管收紧让数字货币承压 行业 ...

  3. Fabric-iot:物联网中基于区块链的访问控制系统

    原文连接https://ieeexplore.ieee.org/abstract/document/8964343/ 摘要:物联网设备具有一些特殊特征,如移动性.性能受限.分布式部署等,使得传统的集中 ...

  4. 全文解析:面向基于区块链的「机器人经济学」概念中,如何验证自主智能体的行为?...

    原文来源:arXiv 作者:Konstantin Danilov.Ruslan Rezin.Alexander Kolotov. Ilya Afanasyev 「雷克世界」编译:嗯~是阿童木呀.KAB ...

  5. 论文阅读:基于区块链的一个车联网轻量级安全V2V通信特点:利用无线网络传输在V2V通信中的信道特性,生成特殊的LF(链路指纹)用于标识每个信道,区块链技术用于生成区块

    论文阅读:基于区块链的一个车联网轻量级安全V2V通信特点:利用无线网络传输在V2V通信中的信道特性,生成特殊的LF(链路指纹)用于标识每个信道,区块链技术用于生成区块. 系统模型: 汽车使用MICAz ...

  6. 群智感知应用中基于区块链的激励机制

    主要内容: 解决问题概括: 群智感知应用利用无处不在的移动用户的智能终端采集大规模感知数据,感知任务的高效执行 依赖于高技能用户的参与,这些用户应被给予相应的报酬来弥补其在执行感知任务中的资源消耗.现 ...

  7. 比特币寒冬中,你更应该关注企业区块链!

    公众对区块链的认识也许限于比特币或以太坊,但很多却不知道 Hyperledger(超级账本).Hyperledger Fabric,是由 IBM 带头发起的一个联盟链项目,2015 年末移交给 Lin ...

  8. linux动态库ppt,LINUX系统中动态链接库创建与使用补充_区块链白皮书代写|市场计划书项目PPT设计_Tbleg...

    区块链白皮书代写 大家都知道,在WINDOWS系统中有很多动态链接库(以.DLL为后缀文件,DLL即Dynamic Link Library).这种动态链接库,和静态函数库不同,它里面函数并不是执行程 ...

  9. 区块链中的密码学,使用ABE结合区块链

    ABE 密码学,以及与区块链结合的价值 背景 区块链技术具备篡改难度高.使用成本低.分布式的优点,本应成为各行各业的重要助力.但是由于链上参与方担心自己的核心数据外泄,不愿将自己的核心数据上链,这个原 ...

最新文章

  1. Leangoo领歌敏捷项目管理工具新增测试管理功能
  2. Open vSwitch(OVS)版本与Linux内核的关系
  3. 轻松架设Win 2003用户隔离FTP站点
  4. 全球唯一标识符:GUID在线生成
  5. (转)iReaper for wp7正式发布
  6. 哈夫曼树编码与译码(完整C/C++实现代码)
  7. 我的第一个wp8小程序
  8. 电脑显示没有被指定在上运行_可以桌面显示的便条便签怎么弄?有没有电脑桌面上的便条贴...
  9. mysql-installer-community-5.5.29.0.msi 下载
  10. latex 可视化生成表格代码
  11. 数据中心机房建设标准规范
  12. Ubuntu 20.04安装微信、QQ
  13. 教你学会u盘重装win10系统,u盘系统盘安装win10
  14. Python学习初阶:Python基本介绍及常用数据类型
  15. Excel2016工作表解除密码保护
  16. RT5350订制WIFI转串口
  17. dpabi viewer使用
  18. Canvas transform浅析
  19. python自己做课程表_Python 大学生课表 iCalendar (.ics) 生成
  20. 如何预估系统QPS?

热门文章

  1. 利用angr进行二进制静态分析
  2. IT作秀大王:李开复
  3. GBase 8a Kafka 数据同步
  4. css 的 hover属性详解
  5. 安卓系统怎么安装软件_这些系统帮助我们实现了在PC上安装安卓系统!
  6. FastAdmin表格自定义操作按钮
  7. 文艺青年之——图形与图片的不同
  8. Python实训 姓名大作战进阶版(封装,继承)
  9. python的txt、csv、ini、xml、excel文件相关操作
  10. 关于如何让Excel表中输入的数值自动做乘法运算