APP下载

基于区块链的分布式EHR 细粒度可追溯方案

2021-06-04应作斌斯元平马建峰刘西蒙

通信学报 2021年5期
关键词:身份证明解密密钥

应作斌,斯元平,马建峰,3,刘西蒙

(1.安徽大学计算机科学与技术学院,安徽 合肥 230601;2.安徽大学物质科学与信息技术研究院,安徽 合肥 230601;3.西安电子科技大学网络与信息安全学院,陕西 西安 710071;4.福州大学数学与计算机科学学院,福建 福州 350108)

1 引言

目前,电子健康档案(EHR,electronic health record)已经成为提高医疗诊断效率的工具之一,其数据从可穿戴设备、智能传感器等来源收集。随着智慧医疗的逐步发展,EHR 数据量呈指数级增长。电子病历的数据量将以每年48%的速度增长[1]。但是,EHR 数据共享面临存储安全性和隐私泄露的问题。密文策略属性基加密(CP-ABE,ciphertext policy attribute based encryption)专门为一对多加密而设计,适合作为EHR 的访问控制解决方案。面对海量的EHR 数据,本地存储解决方案已不再适用,而集中式云存储方案存在数据泄露和单点故障问题,区块链技术成为EHR 数据管理的有前途的解决方案。考虑到区块链的块大小有限,将加密的EHR 文件存储于分布式存储系统,如星际文件系统(IPFS,inter planetary file system),而将EHR 的密文及其IPFS 中的下载地址等数据上链,可以有效节省区块链的存储空间。

基于区块链的EHR 访问控制方案的研究大多侧重于隐私保护[2-3],而实现隐私保护的同时带来了监管问题。区块链中强大的隐私保护滋生了许多安全问题,例如,所有勒索软件攻击中有88%发生在医疗保健系统中[4]。文献[5]指出,2009—2017 年发生了约1 138 起违规事件,影响了1.64 亿患者的医疗数据。这些安全问题不仅对用户利益构成严重威胁,而且严重阻碍了区块链在EHR 大规模共享中的开发和应用。跟踪用户身份是解决区块链监管问题的关键。

为了应对这些挑战,本文提出了一种基于区块链的分布式EHR细粒度可追溯方案,能够实现EHR在分布式存储中的隐私保护和细粒度的访问控制,并完成用户的追溯。此外,为了消除分布式存储中密钥管理的单点故障(SPoF,single point of failure)问题,本文设计了一种分布式CP-ABE 方案。本文主要的贡献总结如下。

1) 提出了一种基于区块链的可追溯分布式EHR 细粒度访问控制方案,解决分布式存储中EHR数据的密钥管理和恶意用户的追溯问题。

2) 融合变色龙哈希和零知识证明技术完成链上节点的注册验证和生成身份证明,通过节点的公开信息可以追溯节点的身份证明,获得注册节点的真实ID,从而实现用户的追溯。

3) 结合分布式密钥生成(DKG,distributed key generation)协议,设定多个解密机构节点作为授权中心,设计分布式CP-ABE 方案。安全性证明表明,基于区块链的可追溯分布式属性基加密算法在随机预言机模型下是自适应安全的。

2 相关工作

2008 年,中本聪在比特币中使用了哈希链和工作量证明[6]。区块链[7]是按时间排序的数据区块,包括完整和有效的交易记录列表。近年来,区块链技术已应用于金融服务[8]、医疗保健[2,9]、物联网[10-11]和车联网[2,12]等领域。将区块链应用于医疗保健领域的趋势正在增加[13-16]。文献[13]提出了使用区块链技术的去中心化电子病历管理系统——MedRec,它是一种模块化设计,可管理参与者之间的权限和数据共享。与MedRec 类似,文献[14]提出了一个基于以太坊的区块链Ancile,它利用智能合约来增强访问控制和数据混淆。文献[15]构建了云环境中电子病历的基于区块链的数据共享框架。文献[16]提出通过区块链进行高效、安全的医疗数据共享,利用基于混合区块链的架构保护电子病历。

在基于区块链的存储EHR 数据的应用中,研究者提出加密方案来增强EHR 的安全性和有效性。文献[17]采用离散波长变换和遗传算法来增强安全性并优化系统性能。类似地,文献[18]通过在密钥的共享中采用密文策略的属性基加密,并结合区块链技术,实现了云存储中的细粒度访问控制,并支持验证搜索。文献[19]将基于分层身份的加密系统(HIBE,hierarchical identity based encryption)和CP-ABE 组合在一起,以实现在云服务器上有效的数据加密共享。文献[20]提出了一种用于大数据访问的有效可撤销CP-ABE 方案,使用基于代理的更新在云中进行控制。Lewko和Waters[21]提出在没有中央授权的情况下提供分布式CP-ABE 方案。Hu 等[22]和Li 等[23]提出了具有隐私保护和基于双方属性的密钥协议的多权限CP-ABE 方案。

但是,上述应用均集中在增强安全性和隐私保护方面,密钥生成的单点故障问题依然影响安全,且对于区块链的可追溯功能的研究是有限的。EHR数据具有高度敏感性,在此类数据的共享中,一旦发生非法访问,将会造成极大的不良影响。文献[24]中比特币地址被认证,只要用户使用新的地址,就必须通过权威机构获取认证,大大降低了方案的执行效率。文献[25]设计了新的分布式匿名支付系统以解决监管问题,但系统只适用于Zerocash[26]。本文提出了一种灵活的基于区块链的分布式EHR 细粒度可追溯方案。

分布式密钥生成。DKG 协议是(t,n)阈值密码系统的组成部分之一[27]。它允许n方共同生成密钥对(即公共密钥和私有密钥),而不需要让任何一方重建或存储密钥。如果不超过t+1个参与方被破坏,则该协议是安全的。此外,文献[28]通过统一的随机性提高了DKG 协议的安全性。通过运行DKG 协议,每个诚实方将拥有密钥a的份额ai。对于N 组中t+1个正确份额,其中是集合N 的拉格朗日内插系数,t−安全DKG 协议将始终满足以下特性。

①正确性。t+1份额的任何子集都定义相同的私钥a(a∈Zp),并且各方共享相同的公钥GP=ga。

② 保密性。除了GP=ga外,没有关于a的任何信息。

3 系统模型

系统模型如图1 所示,涉及7 个参与方:用户节点、医生节点、验证节点、仲裁节点、解密机构节点、区块链平台、分布式数据存储系统。表1 列出了主要参数及含义。

图1 系统模型

表1 主要参数及含义

验证节点主要用于生成链上节点的身份证明。用户生成注册信息,并将其发送给验证节点,完成注册信息的验证。成功注册的用户将得到由验证节点生成的身份证明,身份证明和私人信息之间存在一一对应的绑定关系。

用户节点由Pu标识,指可以提供EHR 健康数据的患者。用户节点需要进行节点注册,从验证节点获得身份证明。Pu提交电子健康记录EHR,用对称加密算法加密EHR 得到CEHR,并发送到链外的IPFS 中,IPFS 将返回一个下载链接τ用于检索数据,再用非对称加密算法将对称加密的密钥ε加密得到Cε。Pu将传送给仲裁节点F。经F验证后上传到区块链B存储,且Pu节点的公开信息和身份证明在链上公开显示。

医生节点由Du标识,指申请访问EHR 的实体。医生节点需要进行节点注册,从验证节点获得身份证明,并将传送给仲裁节点F。经F验证后上传到区块链B存储。当医生节点Du请求访问数据文件时,Du将自己的属性集以及身份证明发送给链上仲裁节点F。验证通过后,F返回访问凭证res。Du获得访问凭证后,发送给解密机构节点Ai,获得足够的密钥份额,获得,完成解密操作。

仲裁节点由F标识,是指可以验证用户节点身份以及数据内容的节点,且可以为数据访问节点生成访问凭证。链上文件访问异常时,可通过查找用户身份实现追溯。

解密机构节点由Ai标识,是指使用DKG 协议共同维护主密钥的实体。他们提供密钥份额以允许仲裁节点生成访问凭证res。特别地,Du需要获得至少t+1份额才能解密从区块链获得的数据。

区块链平台由B标识,是由多个区块链节点维护的许可区块链。上述几个角色都充当区块链节点,允许获得许可的参与者加入该区块链系统。追溯记录在B中,使公众可以审计调查的有效性和合法性。

分布式存储系统是指存储相关数据的数据存储系统,本文方案采用了分布式数据存储系统IPFS。数据在加密后存入IPFS 中,如果Du想检索数据,则需要获得访问权限以获得解密密钥。

设定仲裁节点F和验证节点比其他节点具有更高的权重来维护B的安全性,区块链基于权益证明(PoS,proof of stake),如果存在可疑行为需要调查,F将在区块链数据中追踪用户的真实身份,采用混合加密的方式加强数据保密性,提高加密效率。

4 算法设计

4.1 算法定义

1) 初始化算法

初始化算法输入安全参数λ,得到公共参数pp,主密钥MSK=a,全局参数GP=ga。

2) 解密机构和用户节点初始化阶段

获得每个解密机构Ai的私钥为,对应的公钥为以及属性公钥。用户私钥和公钥为,且是解密机构对应用户uid的属性集。用户uid发送密钥份额申请app 给解密机构Ai,解密机构Ai将计算并返回属性私钥份额SKatt。

3) 节点注册与节点验证阶段

节点注册阶段。输入公共参数pp 和用户节点的真实身份uid,返回节点的注册信息regmess=(CTmess,ςmess)。

节点验证阶段。输入公共参数pp、注册信息regmess,以及注册信息的私钥skenrol,验证节点身份id 是否有效,验证有效,输出1;否则输出0。

4) 身份证明的生成和验证阶段

身份证明的生成阶段。输入公共参数pp、节点的公开和保密信息对(conf,pers)、用户身份的变色龙哈希值、变色龙哈希的公私钥对pkchame和skchame、随机值c、Merkle 树根节点rt、树叶节点到树根节点的路径,输出节点的身份证明。

身份证明的验证阶段。输入公共参数pp、节点的公开信息conf、节点的身份证明,输出验证结果,若验证成功,则b=1。

5) 数据生成阶段

在此阶段使用混合加密算法加密数据,且将数据密文存储于分布式存储系统IPFS 中。对称加密算法,如AES(advanced encryption standard)加密原数据,对称加密算法的密钥由CP-ABE 实现加密。为了消除单点故障,本文方案采用DKG 协议。假设有N个解密机构(也属于用户节点)分布于区块链上,每个解密机构Ai获得a的一个秘密份额ai,将数据加密的密文存储于IPFS 中,IPFS 返回数据的下载链接。数据的密文CEHR、密文在IPFS 中的下载链接τ、数据加密的完成时间timestamp,以及密钥加密结果都被上传到区块链中存储。

6) 数据访问权请求和授权阶段

当链上节点请求访问数据文件时,用户节点将自己的属性集合发送给链上仲裁节点F。如果用户的属性集合满足访问策略(M,ρ),则仲裁节点F将访问授权凭证发送给用户节点。

7) 解密并获取数据阶段

用户节点得到授权后,将获得凭证(包含足够的密钥份额),进而有权获得区块链中存储的,可以完成解密操作。首先,用户节点利用访问授权凭证解密密钥密文,从而获得对称加密算法的密钥;然后,利用IPFS下载链接得到密文CEHR;最后,利用对称加密算法的密钥解密数据密文,从而得到数据明文,完成访问。

8) 追溯阶段

仲裁节点F获得链上数据,解密后将得到其变色龙哈希公钥,通过检索验证节点上的记录信息,从而获得与用户节点变色龙哈希公钥对应的用户真实id,输出用户节点的身份序列ID。

4.2 具体方案构造

1) 系统初始化阶段

Setup(1λ) → pp 。初始化算法输入安全参数λ,得到公共参数pp 。公共参数组成如下:用于zk-SNARK(zero knowledge succinct non-interactive argument of knowledge)中的ςmess的证明和验证密钥对(pkmess,vkmess)、用于zk-SNARK 中ςcert的证明和验证密钥对(pkcert,vkcert)、注册机构的公钥pkenrol以及用于变色龙哈希的公共参数ppchame。,其中,x为mess或cert,表明给定pkx、陈述dx和见证ox,ρnizk将返回一个证明ςx。onizk(vkx,dx,ςx)用于验证,给定验证密钥vkx、陈述dx和ρnizk所得证明ξx,如果验证成功,则onizk返回1,否则返回0。

选择G1和G2是素数阶为q的循环群,且G1的生成元为g。设有双线性映射e:G1×G1→G2、抗碰撞哈希函数H:{0,1}∗→G1。N个解密机构(也属于用户节点)分布于区块链上{Ai}i=1,2,…,N,运行DKG 协议,得到主密钥MSK=a,其中a∈Zq,每个解密机构Ai获得a的一个秘密份额ai。生成全局参数GP=ga。

2) 解密机构和用户节点初始化阶段

随机选取参数ηi,θi,κi∈Zq,每个解密机构Ai的私钥为,对应的公钥为。Ai随机选取xj∈Zq,生成属性公钥。随机选取y,z∈Zq,用户私钥公钥为,且是解密机构对应用户uid的属性集。uid发送密钥份额申请app 给解密机构Ai,如式(1)所示。

Ai将计算并返回属性私钥份额,如式(2)所示。

3) 节点注册与节点验证阶段

节点注册阶段可表示为

用户节点由ppchame生成自己的变色龙方案的公钥和私钥对(pkchame,skchame)。由uid计算其变色龙哈希 值,随 机 选 取c,得 到(pkchame,uid,c)。此时,用户可以为以下NP 关系生成zk-SNARK 证明ςmess。给定dmess=(uid,pkchame,),得到omess=(skchame,c)。其中,变色龙哈希的私钥与公钥的关系为pkchame=chamegen(skchame)。

仲裁节点F得到ςmess=ρnizk(pkmess,dmess,omess)。计算注册信息的加密密文CTmess=Enc(pkenrol,dmess),验证节点存储,同时返回

节点验证阶段可表示为

节点验证过程如图2 所示,具体步骤如下。解析regmess 为(CTmess,ςmess),由解密算法得到dmess,,并 解 析dmess为。如果所得uid不是有效身份,则输出b值为0;否则判断onizk(vkmess,dmess,ςmess)=0是否成立,若成立,则输出b=0,否则b=1。由仲裁节点存储(pkchame,uid,),并通过Merkle 树来发布。

图2 节点验证过程

4) 身份证明的生成和验证阶段

身份证明的生成阶段可表示为

身份证明的验证阶段可表示为

身份证明的验证过程如图3 所示,主要用来验证用户节点的身份证明是否有效。分离为(wcert,ςcert),设置dcert=(conf,wcert),若onizk(vkcert,dcert,ςcert)=0,则返回b=0,否则b=1。

图3 身份证明的验证过程

5) 数据生成阶段

假设患者Pu首先提交EHR,用对称加密方法加密得到CEHR并发送到链外的IPFS 中,由IPFS 返回下载地址τ;然后用分布式CP-ABE 来加密对称密钥ε;最后,Pu向区块链B提交一笔交易,将存储到链上,可以使用区块链中的防篡改交易记录来验证数据的完整性。电子健康数据的生成存储过程具体如下。

①数据加密

为了对EHR 进行加密,随机生成ε∈G2作为对称加密的密钥运行加密算法(例如AES),对数据EHR 进行加密,并计算Encε(EHR)=CEHR。将CEHR存储于IPFS 中,IPFS 返回数据的下载链接τ给Pu。

②对称加密算法中的密钥加密

其中,

Pu公开信息conf、身份证明、身份id 的加密结果C、IPFS 中的密文下载地址τ、对称密钥加密结果Cε以及数据生成的时间戳timestamp,并上传到区块链中存储,即

6) 数据访问权请求和授权阶段

其中,

访问授权凭证为

7) 解密并获取数据阶段

Du得到授权后,将获得由F发送的访问权限凭证res,从而获得区块链中存储的数据,从足够数量的解密机构处获得的拥有密钥份额的解密凭证,从而可以完成解密操作。具体分为以下两步完成。

①Du利用访问授权凭证res 和全局私钥对Cε解密,从而获得对称加密算法的密钥ε。

②利用对称加密算法和解密密钥ε来解密CEHR从而得到数据明文

8) 追溯阶段

追溯过程如图4 所示,可表示为

图4 追溯过程

5 性能分析

本文方案与其他相关方案的功能对比如表2 所示。分别对安全、隐私、用户认证、密钥管理以及可追溯性能进行比较。

表2 本文方案与其他方案的功能对比

从表2 可以看出,文献[15,29-30]方案都满足安全与隐私性能,文献[15,29]方案利用区块链的不变性追溯链上数据,但文献[15,29-30]方案均缺乏密钥管理功能,存在安全威胁。比较结果表明,本文方案优于对比方案,可以为改善当前的分布式EHR 应用提供解决方案。

5.1 设计实施

在区块链应用程序中通过私人信息生成公开信息的主要方式是使用椭圆曲线标量乘法,即conf=persG,其中,pers 是标量,G是椭圆曲线的基点,而conf 是椭圆曲线上的一个点。椭圆曲线标量乘法的实现基于MNT6 椭圆曲线。使用Java 编程语言基于zk-SNARK 库libsnark 实现本文方案的原型。在具体的实现中,使用提供128 bit 安全性的Barreto-Naehrig 椭圆曲线作为zk-SNARK 方案的基础曲线。变色龙哈希和公钥加密方案的实现基于254 bit 的质数字段。基于JPBC(基于PBC 配对的密码库)在DKG协议和CP-ABE 上实现密码算法,采用具有160 bitZq和512 bitG1的素数双线性群设置系统参数。

本节实验在个人计算机上运行,主要参数是IntelCore™ i5-5200U、2.20 GHz CPU,以及4 GB RAM。基于5 个授权机构(5 个中的3 个)设计DKG 协议,以评估通信性能和时间开销。设置阶段包括DKG 协议和CP-ABE 的初始化,使用混合加密方法计算加密和解密的时间性能。

5.2 时间开销与通信开销

设置Merkle树支持的最大用户数分别为210、220、230,评估算法性能。图5和图6展示了Setup、Genmess、Vermess、Gencert、Vercert和Trace 算法的时间开销。其中,time 代表算法的运行时间。|.|代表数据长度。例如表示注册中用于zk-SNARK 中验证密钥的长度。

图5 Setup 和Gencert 算法的时间开销

图6 Genmess、Vermess、Vercert 和Trace 算法的时间开销

1) Setup 算法在Merkle 树深度为10 时,运行时间为180 s;深度为20 时,运行时间为295 s;深度为30 时,运行时间为401 s。

2) Genmess算法在Merkle 树深度为10 时,运行时间为1 401 ms;深度为20时,运行时间为1 409 ms;深度为30时,运行时间为1525 ms。

3) Vermess算法在Merkle 树深度为10 时,运行时间为50.7 ms;深度为20时,运行时间为52.6 ms;深度为30时,运行时间为53.3 ms。

4) Gencert算法在Merkle 树深度为10 时,运行时间为53s;深度为20 时,运行时间为81 s;深度为30 时,运行时间为113 s。

5) Vercert算法在Merkle 树深度为10 时,运行时间为46.9 ms;深度为20 时,运行时间为48.1 ms;深度为30 时,运行时间为48.3 ms。

6) Trace 算法运行时间与Merkle 树深度无关,均为0.17 ms。

生成证明和验证密钥对的通信开销如表3 所示。由表3 知,用于zk-SNARK 中的ςmess的证明和验证密钥对(pkmess,vkmess)的大小分别为663 KB 和665 B。在树深度为30 时,用于zk-SNARK 中的ςcert的证明和验证密钥对(pkcert,vkcert)的大小分别为237 MB 和11 KB。zk-SNARK 中ςmess和ςcert的大小为341 B。

表3 生成证明和验证密钥对的通信开销

设S为方案加密健康数据文件时选取的属性集,为与用户属性私钥相关的属性集,分别为在群G1和G2上进行模幂运算消耗的时间,tp是双线性配对操作消耗的时间。数据文件的加密解密与属性私钥和全局私钥相关,能够有效避免解密机构节点Ai之间的联合攻击。EHR 加密与解密时间开销如图7 所示。由图7可知,方案加密数据的时间开销与加密健康数据文件时选取的属性集空间规模|S|成正相关,表达式为。而解密数据的时间开销与属性无关,表达式为。

图7 EHR 加密数据与解密数据时间开销

表4 EHR 加密数据与解密数据通信开销

6 安全性证明

追溯算法的安全性证明主要通过节点身份证明的不可区分性来实现。攻击游戏双方分别是敌手A和挑战者C,具有身份ID 的诚实用户的行为由预言机Oid实现。假设实验中的诚实用户和敌手已经在注册认证机构中成功注册,可以生成任何身份证明。挑战者C使用公共参数pp 初始化Oid。

Oid存储用于生成注册信息的秘密信息persenrol、用户生成的一组身份证明以及用户用来生成身份证明的一组证据certpers。Oid接受2 种不同的查询,具体如下。

1) 查询1。敌手不知道私人信息pers。Oid首先随机选择pers,生成公共信息conf 发布;然后,Oid调用Gencert算法以生成身份证明,并将发送给查询者。

2) 查询2。敌手知道私人信息pers,Oid首先使用pers 生成公共信息conf 发布,然后调用Gencert算法来生成身份证明,Oid将发送给查询者。

攻击游戏1Gameinden:身份证明不可区分

步骤1挑战者C选取随机值b∈{0,1},通过运行Setup(1λ)获得公共参数pp,并发送给敌手A。C初始化2 个独立的预言机

步骤2敌手A发送一系列查询。

步骤 3挑战者C对于A的查询回复为

步骤4查询结束,A向C发送一个猜测b′∈{0,1}。如果b=b′,C输出1,挑战成功;否则,C输出0。

身份证明的不可区分性要求敌手A以极低的概率赢得上述游戏。正式定义如定义1 所示。

定义1如果对于任意多项式时间敌手A,方案都满足身份证明的不可区分性,则敌手A存在可忽略优势εinden,使

定理1假设完全为零知识,加密方案Enc 满足IND-CCA2 安全性,则本方案满足身份证明不可区分性。

证明下面通过一系列混合游戏证明定理1。令Qm为敌手A发送的查询数。定义一组游戏如下。

Gamereal表示真实的IND-CCA2 游戏设置。

Game0与Gamereal除了挑战者C将模拟方案之外,其他设置相同。挑战者C调用多项式时间模拟器Snizk(λ,ACcert)获得证明和验证密钥对(pkcert,vkcert)以及门限trap。由于本文方案完全是零知识,因此模拟ςcert的分布与证明在Gamereal中计算。因此,

只需要证明不存在多项式时间的敌手A能够以可忽略的概率区分Game0和Game1。

基于对每个查询密文的标准混合参数,可以得出结论,在实验的随机性上,C′必须以至少的优势在IND-CCA2 实验中成功。因此,

证毕。

定理2如果q-BDHE 假设成立,则方案在随机预言机模型下是自适应安全的。

证明假设敌手任意选择访问结构(M′,ρ′),其中M′的列数为n′,且n′<q。

询问预言机Odkg,挑战者C响应敌手的询问。

7 结束语

本文针对EHR 在分布式存储中的密钥管理及用户身份追溯问题,提出了一种基于区块链的分布式EHR 细粒度可追溯方案;结合变色龙哈希和zk-SNARK 证明技术实现了链上节点的注册与身份证明的生成,从而能够对链上用户的追溯。此外,本文通过设置多个解密机构节点联合分发用户节点的属性私钥,消除了分布式系统中密钥管理的单点故障问题,设计的分布式密文策略的属性基加密方案实现了安全细粒度的访问控制。安全性证明表明,本文方案在随机预言机模型下是自适应安全的。理论分析和实验结果表明了本文方案在电子健康数据传输和共享方面是可行且实用的。

猜你喜欢

身份证明解密密钥
幻中邂逅之金色密钥
幻中邂逅之金色密钥
不动产登记中身份证明探析
炫词解密
解密“一包三改”
密码系统中密钥的状态与保护*
炫词解密
炫词解密
店铺侵权违规申诉材料集锦
TPM 2.0密钥迁移协议研究