APP下载

区块链与可搜索加密结合的电子病历共享方案

2021-11-12贺智明徐亿达

计算机工程与应用 2021年21期
关键词:关键字密文门限

贺智明,徐亿达

江西理工大学 信息工程学院,江西 赣州341000

电子病历(Electronic Medical Record,EMR)作为在医疗中临床诊断和治疗的高度敏感的私人信息,而EMR共享是提高医疗服务质量、加速生物医学发现和降低医疗成本的一种有效的方法[1]。然而,大多数私人诊所和医疗机构通常使用内部网络来跟踪他们的患者,但不与其他医疗机构实现数据共享[2],从而导致医疗服务难度大和费用高以及信息孤岛现象。为了解决现有EMR共享的问题,需要构建一个安全的数据共享基础设施。如今,随着医疗数据激增,对存储和计算资源的需求也日益增加[3],很多医疗机构倾向于将数据外包存储在数据中心。因为可能存在敏感信息,甚至数据中心也可能是恶意的,所以数据通常在外包前加密。然而,加密反过来会阻碍数据的利用,例如频繁的搜索操作会消耗带宽。因此,需要提出关键字可搜索加密技术来解决上述问题。

使用传统的加密机制来确保静态数据和传输数据的机密性。但是,这种方法限制了用户共享和搜索加密数据的能力,从而影响了用户的搜索体验。为了最小化强加给数据用户的解密开销,外包解密机制的密文-策略属性基加密利用转换密钥将原始密文转换成一个可以用一次幂运算解密的密文。然而,不能保证恶意云服务器执行转换的正确性。另一个缺点是密文长度随着每个访问策略的复杂性而线性增加,因为描述访问策略的布尔公式通常是根据线性秘密共享方案(Linear Secret Sharing Scheme,LSSS)设计的[4]。布尔公式的大小通常比析取范式(Disjunctive Normal Form,DNF)[5]中子句的数量大得多。考虑到恶意云服务器可能执行一小部分搜索操作并返回一小部分错误的搜索结果,因此,出现了可靠性问题。

区块链技术显示了其解决可靠性问题的潜力。在医疗保健领域,隐私、安全和互操作性这三个因素极其重要。医疗机构之间的互操作性仍然是一个严峻的挑战。一种名为区块链的新兴技术被研究作为EMR管理的潜在解决方案[6]。区块链是一种适用于EMR存储和查询的高度分布式数据结构,区块链固有地使EMR中的添加、查询和修改能够通过所有相关方的共识得到验证和记录[7]。然而,EMR使用区块链的一个关键挑战是,区块链设计的最初重点不是限制未经授权的粒度访问,以避免使用区块链实施的EMR的特定机密部分[8],这意味着区块链设计可以保护EMR的数据完整性。

到目前为止,已经有很多关于区块链技术与可搜索加密技术的方案被提出。Liu等提出了一种具有高效撤销和解密功能的区块链辅助可搜索属性加密算法,在区块链的协助下解决了在选择明文攻击和选择关键字攻击下的安全性安全问题[9],但是造成了密文长度过大的问题。Yang等提出了一种基于区块链的EMR数据搜索方案,基于属性加密机制,实现了云数据的细粒度访问控制,并利用属性签名技术验证了EMR数据源的真实性[10],这无疑使带宽和通信消耗过大。Niu等提出了一种基于许可区块链的医疗数据共享方案,该方案使用基于密文的属性加密来保证医疗数据的机密性和访问控制,在随机预言模型下对自适应选择关键词攻击具有不可区分性[11],但是存在计算开销大的问题。Jiang等提出了一个布隆过滤器支持的多关键字搜索协议,提高了效率和隐私保护,基于属性加密机制的解密开销随着访问策略的复杂性或数据用户属性的数量而线性增加[12],但是存在较高的误报率。

因此,为了解决现有的问题,本文提出了基于区块链的可搜索EMR数据共享方案,解决了带宽和通信消耗大、密文长度长、搜索速度慢且计算开销大的问题。本方案的主要贡献如下:

(1)原始的EMR存储在私有链中,索引存储在防篡改的联盟链中。

(2)通过基于密文策略属性的关键字搜索实现细粒度的访问控制。通过用属性上的任何布尔公式指定表达性访问策略,实现了对加密数据的细粒度访问控制,可以进一步最小化带宽和通信消耗。

(3)短密文长度。本文的方案中的密文长度随DNF形式的子句数或访问结构中布尔公式的大小(取决于哪个值较小)而灵活地线性增长。此外,门限签名机制将由门限数目的数据拥有者生成的多个签名转换为单个门限签名,进一步减少了密文长度。

(4)快速(外包)解密。允许私有链服务器通过使用其密钥来执行最耗时的配对操作,这在数据用户方留下了一小部分轻量级操作。外包解密开销不会随着DNF形式的子句数量或访问布尔公式的大小而变化,这进一步加快了搜索过程。

(5)搜索结果验证。允许公共验证者代表数据用户检查搜索结果的正确性,而不会泄露隐私。这降低了资源受限的数据用户的计算需求。

1 预备知识

1.1 区块链技术

区块链是一种分布式数据库或公共分类账本[13],其中经过验证的交易和数字事件在数据区块中按时间顺序保存和连接在一起。所谓的数据块由交易发起者提交的数据和交易验证者产生的新记录组成。此外,每个块都标有时间戳和前一个块的散列,这使得区块链的数据不可改变且可追踪。该分布式P2P网络中的每个节点都保留相同的事务记录副本,这提供了对单点失效和攻击的鲁棒性[14]。一个区块链由许多与哈希值链接的区块组成,每个块包含数据、加密哈希值和时间戳,并且数据可以包含几个属性及其值。一个块的哈希值由先前的哈希值和当前块中的数据产生。这意味着哈希值用于建立两个块之间的链接,任何错误和失真的数据都将通过验证哈希值计算出来。

1.2 双线性映射

设Q、QT代表f阶的两个有限乘法群,其中f为大素数[15]。此外,设q为Q的生成元,Zf为有限域,则双线性映射e:Q×Q→QT对所有有三个特征。

1.3 LSSS矩阵

设O表示GA上的访问结构[16],则存在一个LSSS矩阵和一个将Ψ的每一行映射到O中的一个属性的函数Θ。元组( )Ψ,Θ通过与列向量o=组合来表示LSSS访问策略,其中m表示要共享的秘密值。假设M表示( )Ψ,Θ所描述的一个授权集,N*表示Ψ中的一组行,使得N*=,那么可以找到满足的常数

1.4 计算Diffie-Hellman问题

计算Diffie-Hellman问题(The Computational Diffie-Hellman Problem,CDH):

给定循环群Q,取阶为f,设q∈Q为循环群Q的

1.5 离散对数问题

离散对数问题(The Discrete Logarithm Problem,

DLP):

给定阿贝尔群(Abelian Group)又称交换群或加群G,对于任意q∈G,设m>1且令qm表示为q×q×…×q,其中q出现了m次,而寻找m是困难的。

2 系统模型

本章介绍基于区块链的可搜索EMR数据共享模型和区块链系统中EMR交易序列模型。

2.1 基于区块链的可搜索EMR数据共享模型

本方案基于密文策略属性的关键字搜索实现细粒度的访问控制。其中,私有链中存储原始的EMR,联盟链中存储关键词索引。使用门限签名机制减小密文长度,利用快速外包解密加快搜索过程。在本文的设计中,系统由以下各参与方组成:联盟链(CB)、私有链(PB)、患者(PA)和数据请求用户(DRU)。图1为本方案的系统模型。

图1 基于区块链的可搜索EMR模型Fig.1 Searchable EMR model based on blockchain

(1)联盟链(CB):所有的医疗机构共同构成,负责生成公共参数、系统密钥以及控制点和信息系统的密钥,负责授予密钥;负责存储EMR的关键字密文;一旦接收到搜索结果,CB通过以挑战-应答模式与私有链服务器交互来调用搜索结果验证机制。如果搜索结果正确,CB将它们以及转换后的密文发送给DRU,否则,拒绝服务。请注意,CB可以检查搜索结果的正确性。

(2)私有链(PB):负责存储加密后的EMR;私有链服务器(PBS):负责分发密钥,一个医疗机构的内部服务器进行部分计算,以处理搜索查询。根据DRU的搜索请求提供密文检索服务。PBS还在搜索阶段执行代价高昂的密文转换,从而在DRU上留下轻量级的密文解密操作。一旦DRU的属性和陷门分别与访问策略和索引匹配,PBS将搜索结果和转换后的密文一起返回给CB。

(3)患者(PA):根据公共参数生成自己的公钥和私钥对,使用指定的访问策略对EMR加密密钥进行加密,并根据提取的关键字建立索引,并将带有可搜索密文的文档存储在PB上。

(4)数据请求用户(DRU):每个请求用户基于动态口令生成自己的公钥和私钥对,并计算感兴趣的特定关键字的陷门。它解密从私有链返回的搜索结果,并获得满足搜索查询的文档的索引。授权用户可以发出基于关键字的搜索查询,包括单个关键字或多个关键字,从用户终端接收经过验证和转换的密文,并执行轻量级解密,以明文形式获得所需的搜索结果。

2.2 区块链系统中EMR交易序列模型

为了保障基于区块链的可搜索EMR数据共享方案中PA和DRU与PBS的安全交易,设计了EMR交易序列模型,主要由三个部分构成,如图2所示。

(1)患者决定DRU的操作权限和加密持续时长,然后通过智能合约将EMR密文和关键字密文上传到PBS。智能合约控制PBS,并将标记有患者ID的数据进行加密。

(2)有操作权限的DRU通过智能合约对数据进行操作,但DRU只能通过智能合约向PBS发出合法的操作指令,不能直接操作数据。

(3)在预定的加密持续时间结束时,智能合约将共享可向所有DRU解密密钥,所有DRU确认交易成功。

在交易过程中引入激励机制,在交易需要保密的时候,智能合约不会将解密密钥发送给DRU,使得交易内容私有化、安全化。经过一段时间的交易后,交易内容的隐私不再重要,智能合约将向所有DRU共享解密密钥。在没有欺骗者的交易中,当DRU获得密钥并解密EMR密文时,智能合约的工作就结束了。

若交易中存在欺骗者,则欺骗者的存在会伤害诚实的DRU,诚实的DRU在获得密钥后将能够看到所有数据。通过假数据上的ID标签,诚实的DRU可以很容易地找到骗子。此时,智能合约会跟进,按照设定的程序对欺骗者做出足够的惩罚,以补偿受伤的诚实DRU。欺骗者高成本的欺骗行为降低了欺骗的概率,使系统更加健康和稳定。

3 具体方案描述

基于区块链的可搜索EMR数据共享方案分为三个阶段:系统初始化阶段、EMR加密存储阶段和EMR搜索与共享阶段。

3.1 系统初始化阶段

本阶段分为Setup()和KeyGen()两个步骤。Setup():给定公共双线性参数CB选择ℜ1,ℜ2,χ∈Zf,ϑ∈Q,计算,其中ℜ=ℜ1+ℜ2。然后,为全局属性集生成n个随机元素ϑ1,ϑ2,…,ϑn∈Q。最后,选择两个防冲突散列函数H0:{0,1}*→Zf,H1:{0,1}*→Q。输出公钥PK=(BCP,ϑ,H,ϑ1,…,ϑn,e(q,q)ℜ,qχ)和主密钥MSK=( ℜ1,ℜ2)。

KeyGen(PK,MSK,Μ,Y):CB运行该算法分别为每个DRU、PBS和PA生成秘密/公共密钥对。对于属性集为M={Ma1,Ma2,…,Man′}的每个DRU,CB执行算法1。

算法1KeyGen()

假设存在PA的Y={Y1,Yν}的PA,CB为PA分配一个公私钥对(skY=s,pkY=qs),其中s∈Zf。然后,PA输出一个(ξ-1)次多项式h(u)=αξ-1uξ-1+…+α1u+α0,其中αη∈Zf(η∈[1,ξ-1]),α0=s,2ξ-1≥ν,此外,PA根据h(μ)选择ν点{(u1,ο1),(u2,ο2),…,(uν,oν)},其中oi′通过安全通道返回最后,CB用式(1)标记每个DRU、PBS和PA的公私钥对。

3.2 EMR加密存储阶段

Enc(PK,pkκ,pkm,skΥ,E,T,O)。给定文件集E={l}和关键字集T={t},PA需要生成文件密文和关键字索引,如下所示。

对于每个带有身份ID标识的文件l∈E,PA首先使用传统的对称加密密钥Λ∈QT将其加密为Cl。假设指定的访问结构O用DNF形式表示,其大小为||O,即O=co1∨co2∨…∨coϖ,其中每个子句是一组属性。如果A选择秘密共享m∈Zf并输出密钥密文。否则,PA将A描述为LSSS矩阵然后选择随机向量并计算,最后生成密文因此,PA可以通过比较ϖ和来实现短密文长度。

为了稍后验证搜索结果的正确性,每个Yi′生成他的签名在获得至少ξ(阈值)签名后,PA输出阈值签名以缩短密文长度,其中

此外,PA执行算法2为每个关键字t∈T建立索引。

算法2IndGen()

3.3 EMR搜索与共享阶段

Trap(I,skκ,pkm,PK,t′)。当搜索包含关键字t′的加密文件时,DRU首先选择两个随机元素x1,x2∈Zf,然后计算qβx1x2。最后,DRU将其属性M和陷门TR=(TR1,TR2,TRt′)发送给PBS。

Search( )PK,GA,CA,N,TR,M,skm。PBS首先检查DRU的属性集M是否满足GA。如果不满足,PBS结束这个过程。否则,PBS继续验证陷门TR是否与方程如果这个公式不成立,PBS返回出错。否则,PBS返回相应的搜索结果为了减轻资源有限的DRU的解密负担,PBS根据以下两种情况执行部分解密。如果CA中的密文分量数等于o+5,PBS通过调用等式(2)计算转换后的密文ρ,其中o表示DNF形式的子句数。否则,PBS可以通过计算注 意。最后,PBS将元组发送给CBs。

Verify(PK,ζ)。设搜索结果的个数为Δ,每个搜索结果的恒等式为CBs执行算法3进行验证。

算法3Verify()

Dec(PK,ℓ,skκ)。为了获得每个结果的文件解密密钥,DRU首先计算

4 安全分析和性能分析

4.1 安全性分析

本节在陷门不可区分性和不可伪造性方面进行具体的安全性分析。

4.1.1 陷门不可区分性

为了抵御外部关键词猜测攻击,提出的方案应该保证陷门的不可区分性,并且不允许恶意攻击者测试索引和陷门之间的关系。方案是利用乘法双线性映射而不是加法双线性映射构造的。为了进一步避免外部攻击者以穷尽的方式测试索引和陷门之间的关系,关键字通常是从低熵关键字空间中选择的,如果没有密钥,外部攻击者无法检查提交的陷门是否与索引匹配,从而避免了关键字猜测的可能性。

在搜索结果验证机制方面,要求CBs能够检查搜索结果的正确性,而敌方不能伪造可疑搜索结果的有效证明信息。基于拉格朗日多项式插值,将由至少一个门限数的PA贡献的门限签名转化为PA的签名,CBs利用公钥pk验证搜索结果的正确性,搜索结果验证机制可以被认为是修改的公共审计方案[17]。如果没有存储完整元组(ID,Cipl,Ξ*)的恶意PBS不能说服CBs,那么提出的方案被认为是合理的。提出的方案的完备性要求,对于所有文件E={l}的所有密钥对和元组(ID,Cipl,Ξ*),CBs在接收到PBS的有效证明信息时,总是决定搜索结果通过搜索结果验证。

4.1.2 不可伪造性

用以下两种案例来证明本方案的不可伪造性:

案例1假设对手A能够伪造有效的门限签名,那么就可以找到解决CDH的方法。对于(ξ-v)门限签名( 2ξ-1>v),它要求至少ξ个PA正确地输出它们各自的签名。即使恶意的敌手A可以与多达(ξ-1)个PA串通并独立输出(ξ-1)个公私/私钥对,仍然不能生成有效的门限签名。接下来,将展示一个安全游戏,其中允许A访问散列和签名预言。在给定元组(q,qα′,qβ′)的情况下,B对上述两个预言的查询结果进行标记,如下模拟这个安全游戏。

设置查询:敌手A请求初始化这个系统,首先为(ξ-1)损坏的PA输出秘密/公钥对{skη=oη,pkη=qoη}。然后,B为PA的其余部分设置相同的公钥pkηω=qα′,并将pkηω发送给A。

哈希查询:A首先对具有标识ID的文件l发出哈希查询,然后B检查元组(l,ID)是否属于表T。如果这是真的,B将相应的结果T*返回给A。否则,B选择ϒ∈Zf。注意,B需要将元组(l,Cl,ID,ϒ,T)保留在T中。由于q,qϒ,qβ′是q中的群元素,qϒ和qϒ,qβ′在q中都是随机分布的,因此A不能根据收到的哈希结果来区分查询的结果。

签名查询:A对元组(l,ID)发出签名查询的结果,然后B检查(l,ID)是否是表T中的实体。如果为真,则B将相关结果Ξ′返回给A;否则,B设置,并生成阈值特征码注意,B还需要将元组(l,Cl,ID,ϒ,Ξ′)添加到表S中。

伪造:A在(l′,ID′)上返回伪造的门限签名Ξ′。根据哈希查询和签名查询过程中生成的相应结果ϒ,B具有-1也就是说,如果A成功地伪造了门限签名,B就可以解决CDH问题,这与CDH问题假设相冲突。因此,敌手A在本方案中输出有效的阈值签名在计算上是不可行的。

如果A能够根据所有有效的门限签名生成有效的证明信息,那么就可以解决DLP,这也与DLP假设相冲突。在本方案中使用的门限签名机制是基于Boneh-Lynn-Shacham签名[18]。

根据以上分析,本方案对于敌手A伪造有效的门限签名和证明信息在计算上是不可行的,因此满足不可伪造性。

4.2 性能分析

将本方案与现有的可搜索加密方案进行对比,从带宽和通信消耗、密文长度、搜索速度、计算开销方面进行比较,结果如表1所示。可以看出,Liu[9]、Yang[10]和Niu[11]的方案带宽和通信消耗大,Liu[9]、Yang[10]的方案搜索速度慢,Liu[9]、Yang[10]、Jiang[12]和Niu[11]的方案密文长度大,Yang[10]和Niu[11]的方案计算开销大。而本方案通过用属性上的任何布尔公式指定表达性访问策略使得带宽和通信消耗更小,使用门限签名机制缩短了密文长度,通过私有链服务器使用密钥执行配对操作加快了搜索过程,允许公共验证者代表数据用户检查搜索结果的正确性使得计算开销更少,相比其他方案,本方案在带宽和通信消耗、密文长度、搜索速度和计算开销方面更具优势。

表1 不同方案的功能特性对比Table 1 Comparison of functional characteristics of different schemes

将本方案与轻量级的WBANs加密数据细粒度搜索方案[19]在密钥生成时间、加密时间、陷门生成时间、陷门生成成本、结果搜索时间和结果搜索成本方面进行性能分析比较。通过Python语言和基于配对的密码学库,在AMD Ryzen 5 2500U with Radeon Vega MobileGfx2.00 GHz的Ubuntu 20.04.2.0 LTS上模拟了一系列的实证测试。实验结果如图3所示。

从图3(a)中,注意到这两种方案在KeyGen()中具有相似的密钥生成计算时间,本方案可以很容易地实现在PBS上提供密文转换。

图3 (b)所示的实验结果表明,本方案具有更少的密文加密开销,这与E的值具有近似的线性关系。因此,得出的结论在创建阈值签名时,本方案中的Enc()在实践中仍然是有效和可行的。

在图3(c)、(d)中分析陷门生成时间和存储成本。本方案的性能只受变量的影响,而另一个方案中Trap的性能随着每个DRU的属性个数和查询关键字个数的增加而提高[19]。

在图3(e)、(f)中,考虑了查询关键词的个数和搜索文件的个数这两个因素,通过改变变量的值来分析两个方案的结果搜索时间和搜索成本的性能。两个方案的结果搜索时间和成本随着z值的增加而增加。

图3 算法的实际性能分析Fig.3 Performance analysis of algorithm

当对每个加密文件执行密文检索时,本方案所需时间更少。

通过分析表明性能受查询关键词数量和搜索文件数量的影响,当基于单个关键字搜索一个加密文件时,本方案的性能更优。虽然在本方案中验证的性能并不比基于文件/关键字哈希表的简单检查机制有效多少,但是可以支持通过利用公共验证器来保护隐私的搜索结果验证,这进一步减轻了资源有限的用户设备的额外计算负担。不可伪造性,且陷门生成时间和存储成本少、密文加密开销低、结果搜索时间短和搜索成本低,该方案具有更高的效率。

5 结束语

本文提出了一个基于区块链的EMR隐私保护数据共享方案。该方案将原始数据和关键词索引分别存储在私有链和联盟链中,解决了EMR数据存储的安全性问题。通过改进的基于密文策略属性的关键字搜索算法,使得该方案带宽和通信消耗小且密文长度短。该方案通过快速外包解密提高了搜索效率,利用搜索结果验证机制优化了计算开销。通过对该方案的安全性和性能进行评估,表明该方案具备陷门不可区分性和

猜你喜欢

关键字密文门限
履职尽责求实效 真抓实干勇作为——十个关键字,盘点江苏统战的2021
一种支持动态更新的可排名密文搜索方案
基于规则的HEV逻辑门限控制策略
基于模糊数学的通信网络密文信息差错恢复
随机失效门限下指数退化轨道模型的分析与应用
成功避开“关键字”
基于Neyman-Pearson准则的自适应门限干扰抑制算法*
一种基于密文分析的密码识别技术*
生产性服务业集聚与工业集聚的非线性效应——基于门限回归模型的分析
云存储中支持词频和用户喜好的密文模糊检索