最新论文笔记(+8):Blockchain based searchable encryption for electronic health record sharing /FGCS2020

Blockchain Based Searchable Encryption for Electronic Health Record Sharing (基于区块链的电子健康记录共享的可搜索加密)

在本篇论文中,作者提出了一种基于区块链的电子健康医疗的可搜索加密方案。在该方案中,索引是通过复杂的逻辑表达式构建的,并存储在区块链中,以便数据用户可以利用这些表达式来搜索索引。由于只有索引被迁移到区块链以促进传播,因此数据所有者完全可以控制谁可以查看他们的数据。

一、写作背景

论文名称 作者 / 单位 来源 年份 简要内容
Blockchain based searchable encryption for electronic health record sharing Lanxiang Chen et.al (Fujian Normal University) Future Generation Computer Systems 2020 提出了一种基于区块链的电子健康记录共享的可搜索加密方案。

从本文可知,电子健康记录(Electronic Health Record,EHR)是敏感的,需要保护以防止未经授权的访问。因此,医疗系统中最大的挑战之一是安全的共享医疗数据。作者指出EHR中数据泄露可能会导致患者隐私的泄露,而区块链可以用于促进此类数据的共享。不同的参与医疗组织和个人可以以更高的信任度访问存储在区块链上的电子病历。传统方法是为EHR构建索引并将EHR上传到公共云之前进行加密,但是这种方法有缺点:不同数据拥有者(Data Owner, DO)有自己的创建索引的方式,反过来阻碍了不同医疗组织和个人之间的是数据共享,且云服务器并不完全信任。当前文献缺少可应用于所有搜索方案的通用验证机制,也没有有效的对策来惩罚行为异常的服务器或用户

1.1 传统共享医疗数据Naive办法

将电子病历上传到云服务器之前先对其进行加密,然后再建立索引。但是有以下几个缺点

  • 1)不同的data owner创建索引的方法不同,阻碍了EHR的数据共享。
  • 2)云服务器可能不完全可信,不能保证EHR的隐私安全。
  • 3)缺乏有效的对策惩罚行为不当的用户。

在这里插入图片描述
现有的可验证可搜索加密方案不支持对恶意操纵的检测,若用户受到搜索结果后,发现这些结果是错误的,却无法惩罚失信的主体,使得user的权益得不到保障,这是不公平的。以及这些方案无法在指定的时间限制t内获得搜索过程,可能你需要某条数据时,服务器虽然能返回正确结果,但是花费了大半天事件,这也不利于用户体验。然而,本方案就基于[HCW18]这个方案,也通过智能合约来引入公平性,实现了资产公平的搜索机制。在本方案中,每个参与者都被公平的对待,并被激励去执行正确的计算。这样保证诚实的人总能得到应得的数据,而作恶的人什么也得不到。以下为本方案与[HCW18]方案的对比。
在这里插入图片描述

[HCW18] Hu S, Cai C, Wang Q, et al. Searching an encrypted cloud meets blockchain:A decentralized, reliable and fair realization[C]/IEEE INFOCOM 2018-IEEE Conference on Computer Communications. IEEE,2018:792-800.

二、主要内容

2.1 系统模型

以下是系统的模型图,包括三个主要的实体,data owneruser和区块链。DO可以是病人或者医院机构,它负责创建EHR和建立索引,并创建SC来描述如何搜索索引。一旦完成,DO将Sc和索引发送到区块链中。之后,DO使用对称加密算法对EHR进行加密,并将其存储在云服务器上。用户是DO授权搜索索引的实体,它可以请求查询、获得查询结果等操作。区块链负责存储索引和所有SC,授权用户可以在区块链中搜索一些特定的EHR,SC会产生一个正确且不可变的搜索结果,而无需user进一步验证。

在这里插入图片描述
该方案的设计目标是引入区块链来实现一个机密的、公平的和稳固的、可控的EHR共享方案。该方案有三个目标,即

  • 1)公平性:保证用户查询任务付费,能获得准确的搜索结果,查询任务由矿工或工人执行,矿工或工人将通过正确运行协议得到奖励。为了访问EHR,用户将向用户发送搜索token和DO支付费用;

  • 2)稳固性:意味着若有一个不诚实的实体没有按照预定义的方式执行协议,它将被检测到,并得不到任何奖励;

  • 3)保密性:由于新添加的文档独立于之前的文档,所以不存在前向隐私问题。此外,该方案适用于电子病历的索引,实际的EHR数据被存储到任何其他公共存储系统,并可以通过任何其他隐私保护方法进行保护。因此,我们只需保护查询表达式的机密性不受对手的攻击。

在这里插入图片描述
每个查询请求是一个复杂的表达式,不同的查询之间相互独立。搜索算法将返回满足查询的所有标识符,我们假设这些标识符将通过安全通道传输给用户。此外,我们对这些标识符进行加密。

2.2 模型构建

模型的构建是以上三个主要性质为模型目标来构造方案。

在这里插入图片描述
假设EHR明文的形式如上表所示,有姓名、性别、年龄等一些基本信息,每个EHR都被视为一个文档,并且具有唯一的文档标识符。该方案中,包括文件加密、索引构建、交易生成和搜索过程等四个过程,后面会详细说明,这里先看下一个满足布尔表达式的例子。

在这里插入图片描述

user先发送一个搜索请求,用xi来表示,包含疾病名称、年龄范围、性别、医院名称和创建时间等,然后数据库中就会查找包含这几个关键字的记录。所有搜索请求的表达式xi都用X来表示,用IDxi表示满足Xi的所有文档标识符。

如下图,为系统的模型图,包括对文件加密、索引构建、事务生成和搜索过程等四个步骤。
在这里插入图片描述

2.2.1 定义了五种多项式时间算法: S e t u p 、 B u i l d I n d e x 、 E n c 、 T r a p d o o r 和 S e a r c h Setup、BuildIndex、Enc、Trapdoor和Search SetupBuildIndexEncTrapdoorSearch

在这里插入图片描述

  • 1) ( m k , s k ) ← S e t u p ( 1 λ ) (mk, sk)\leftarrow Setup(1^λ) (mk,sk)Setup(1λ):由DO运行以设置方案,以安全参数 λ λ λ作为输入,输出主密钥 m k mk mk和秘密文件加密密钥 s k sk sk。为了更好的理解,我画了如下的流程图。基本步骤包括:DO随机生成 m k mk mk s k sk sk;用户从$ B u s e r Buser Buser中预交保证金$ d e p o s i t deposit deposit

在这里插入图片描述
在这里插入图片描述

  • 2) I ← B u i l d I n d e x ( m k , D ) I\leftarrow BuildIndex(mk, D) IBuildIndex(mk,D):它由DO运行来生成索引 I I I,以主密钥 m k mk mk和文件集合 D D D作为输入,输出可搜索的索引 I I I。为了更好的理解,我画了如下的流程图。基本步骤包括:提取满足 X X X的记录,并获取 I D ( X i ) ID(X_i) ID(Xi);将 I D ( X i ) ID(X_i) ID(Xi)分为 a + 1 a+1 a+1个段;将 ( l , d , r ) (l,d,r) (l,d,r)添加到列表 L L L中;将 L L L分成 n n n个区块 L i L_i Li,并将它们与 n n n个不同交易逐个发送到智能合约;对每个 L i L_i Li解析为 ( l , d , r ) (l,d,r) (l,d,r),并将每个 ( l , d , r ) (l,d,r) (l,d,r)添加到 I I I

在这里插入图片描述
在这里插入图片描述

  • 3) C ← E n c ( s k , D ) C\leftarrow Enc(sk, D) CEnc(sk,D):它由DO运行,用于对文档进行加密,获取秘密文件加密密钥 s k sk sk和文件收集 D D D作为输入,输出加密的文档集合。DO使用对称加密算法(例如AES)和密钥 s k sk sk对文档集合 D D D进行加密。

在这里插入图片描述

  • 4) T Q ← T r a p d o o r ( m k , Q ) T_Q\leftarrow Trapdoor(mk, Q) TQTrapdoor(mk,Q):它由DO运行,为授权用户生成 T r a p d o o r Trapdoor Trapdoor,它接受mk和查询请求 Q Q Q作为输入,并输出 t r a p d o o r T Q trapdoor T_Q trapdoorTQ。基本步骤为:用户请求查询 Q Q Q;DO检验 Q Q Q是否合法;则DO计算 k 1 , k 2 k_1,k_2 k1,k2,并发送 T Q T_Q TQ给用户;否则,返回错误。
    在这里插入图片描述

  • 5) R ← S e a r c h ( T Q , I ) R\leftarrow Search(T_Q, I) RSearch(TQ,I):它由SC运行,它以 t r a p d o o r T Q trapdoor T_Q trapdoorTQ I n d e x I Index I IndexI为输入,输出相关加密文档 R R R的标识符列表。基本步骤为:判断当前时间 T T T和押金$ d e p o s i t deposit deposit是否满足条件;用户发送搜索 t o k e n token token;计算搜索的总花费 c o s t cost cost;发送 o f f e r offer offer B o w n e r Bowner Bowner G s r c h ⋅ g a s P r i c e G_{srch}·gasPrice GsrchgasPrice给worker;计算新的 d e p o s i t deposit deposit;重新判断 d e p o s i t deposit deposit是否满足条件;是,则可继续搜索,否则,撤回 d e p o s i t deposit deposit B u s e r Buser Buser
    在这里插入图片描述

三、安全性分析与性能评估

3.1 安全分析

  • 1)公平性:通过区块链的激励机制来实现公平性。首先,恶意操纵将被检测到,不诚实的用户将一无所获;其次,用户可以在指定的时间限制 T 1 T_1 T1内,完成获得搜索结果。否则,用户的押金将被退还。

  • 2)稳固性:通过区块链的共识机制,以保证用户无需验证结果。首先,搜索结果会永久公开地保存为合约状态;其次,每个节点都可检测搜索结果的变化。

  • 3)机密性:在模拟器和敌手之间采用 r e a l − i d e a l real-ideal realideal模拟方案,并引入两个状态泄露函数 L = ( L 1 , L 2 ) L=(L_1,L_2) L=(L1,L2)
    L 1 L_1 L1被定义为 L 1 ( D ) = ( ∑ X i ∈ X L_1(D)=(\sum_{X_i\in X} L1(D)=(XiX [ ∣ I D ( X i ) ∣ p ] , m , { ∣ D j ∣ } D j ∈ D , { i d ( ∣ D j ∣ ) } D j ∈ D ) [\frac {|ID(X_i)|}{p}],m,\{|D_j|\}_{D_j\in D},\{id(|D_j|)\}_{D_j\in D)} [pID(Xi)],m,{ Dj}DjD,{ id(Dj)}DjD)
    L 2 L_2 L2被定义为 L 2 ( D , Q ) = ( I D ( Q ) = { i d j ∣ D j ∣ = Q } , T Q ) L_2(D,Q)=(ID(Q)=\{id_j|D_j|=Q\},T_Q) L2(D,Q)=(ID(Q)={ idjDj=Q},TQ)

两个模拟方案 R e a l A Π ( λ ) Real_A^{\Pi}(\lambda ) RealAΠ(λ) I d e a l A , S Π ( λ ) Ideal_{A,S}^{\Pi }(\lambda ) IdealA,SΠ(λ)分别由 C h a l l e n g e r Challenger Challenger A d v e r s a r y Adversary Adversary S i m u l a t o r Simulator Simulator进行。
在这里插入图片描述
若对任何一个概率多项式时间(PPT)敌手A,存在一个PPT模拟器S,使得
在这里插入图片描述
等式成立,则称提出的方案 Π \Pi Π对非自适应攻击具有 L − s e c u r e L-secure Lsecure

T h e o r e m Theorem Theorem:如果伪随机函数 f f f g g g是伪随机的,则提出的方案 Π \Pi Π对非自适应攻击具有 L − s e c u r e L-secure Lsecure
P r o o f Proof Proof:若存在所有 P r [ I n d A Π ( λ ) = 1 ] ≤ 1 / 2 + n e g l ( λ ) Pr[Ind_A^{\Pi}(\lambda )=1]\leq 1/2 +negl(\lambda) Pr[IndAΠ(λ)=1]1/2+negl(λ)的敌手,则改方案在非适应不可区分性意义上是安全的,并满足非自适应语义安全,其中 I n d A Π ( λ ) Ind_A^{\Pi}(\lambda ) IndAΠ(λ)表示一个概率实验,则有

在这里插入图片描述
在这里插入图片描述

3.2 性能评估

实验环境:Intel core i5-7200U2.5GHz,8GB内存,Win10操作系统,编码实现在Python2.7和MongoDB3.4企业版,选择加州大学机器学习存储库[Dataset97]中的Nursery数据集。

[ Dataset 97] University of Califormia, Irvine, Nursery data set,1997, http://archive ics. uci. edu/ml-/datasets/Nursery.

作者提出的方案将区块链应用于EHR,并使用条件表达式提取文档ID来建立索引,而不是像[1]中提出的那样建立基于单个关键字的索引。该方案产生的开销主要来自于从EHR中提取文档id,以及以太坊智能合约上的交易。在提交评估结果之前,作者将提交的方案与hu等人的方案比较总结。两种方案的索引结构均为反向索引,并存储到SC中。此外,两种方案都支持多用户设置。

  • 很明显从MongoDB中提取文档D是非常有效的。
    在这里插入图片描述
    如下图,得出以下结论:
  • 随着匹配文档数量的递增,搜索的时间逐渐降低;
  • 较大数据集产生较低的搜索开销,且搜索算法较慢。
    在这里插入图片描述

四、论文总结与思考

4.1 论文总结

总体来说,区块链是一个相对较新的趋势,它在民用和军事环境中有许多应用前景。因此,本文提出了一种基于区块链的电子病历共享可搜索加密方案,利用区块链中指定的SC代替集中式服务器,实现了不需要任何验证机制的可靠机密搜索方案。利用区块链,提议的方案获得了公平,诚实的用户将得到奖励。安全分析和性能评估表明,该方案是可行和有效的。

  • 重点1:利用复杂的布尔表达式来提取EHR,构造索引,且支持范围搜索
    在这里插入图片描述

  • 重点2:使用智能合约追踪多用户设置中涉及到各方之间的货币奖励,包括交易费和报酬。保证了数据所有者和用户之间的公平

  • 重点3:基于区块链的解决方案保证用户可以收到准确的搜索结果,而无需额外的验证。同时,索引被迁移到区块链上,对真实EHR的访问需要数据所有者进行身份验证。

4.2 我的思考

在这里插入图片描述
本方案整体来看还是不错的,它具有许多问题的启发式作用。例如,如何考虑数据所有者与用户之间的公平性问题;以及该方案未考虑的地方(不足之处),日后我们也需要多加注意。

猜你喜欢

转载自blog.csdn.net/A33280000f/article/details/117283448#comments_22521628