APP下载

基于区块链的基因组数据安全共享方案

2023-08-02巫光福魏泰桂李恩宁

电脑知识与技术 2023年17期
关键词:私钥密文密钥

巫光福,魏泰桂,李恩宁

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

0 引言

基因测序等技术的高速发展,大大降低了基因数据获取难度和成本,促使基因组数据持续性增长。研究员能通过基因组信息探索疾病的致病机理,尤其是在癌症诊断方面[1],进而开展特定药物研发和制定个性化医疗方案。基因组数据具有极高的隐私性,其中包含人体大量特征信息,并且通过对基因组信息分析能预测个体患病风险。基因组数据一般都是中心化云存储,其控制权一般是在第三方生物科技等公司手中[2],如23andme,数据所有者很难接触自己的数据。同时第三方也会限制数据的访问权限,形成数据壁垒。基因组数据的共享能有效促进医疗水平的提高,加快生命科学的研究进度。但其数据共享亟须解决上述的数据隐私保护和数据壁垒及权限控制等管理问题。

区块链技术的出现为这些问题解决提供新的方案。区块链技术具有去中心化、不可篡改、分布式存储等特性,它给数据共享提供一个安全平等的平台,能将数据的管理权限下放,支持用户管控自己的数据。并且区块链还支持添加额外密码协议来保护用户的数据隐私[3]。正因为区块链这些优势,使得区块链技术在医疗领域受到广泛关注。Al Omer 等人[4]提出基于区块链的电子健康记录(Electronic Health Record,EHR)共享平台,将敏感数据加密保存在区块链上,解决传统中心化存储问题。Genesy[5]是一个基于区块链的基因组共享项目,它旨在消除第三方,给数据所有者带来用自己基因组数据获利的机会。然而,这些方案在数据共享时效率不高,甚至有隐私泄露风险,例如文献[6],患者在给医生共享生理数据时,还需选择性共享自己的私钥。如果患者重新选择共享对象时,还需更新密钥甚至重新加密上传数据。对于以上情况,Wang 等人[7]提出基于代理重加密技术(Proxy Re-Encryption,PRE)的EHR 共享云系统,实现细粒度数据共享,保证患者密钥安全。但此方案中EHR因云存储有被篡改和丢失风险。文献[8]中提出了一个基于区块链和PHR的文件共享方案,并创新性提出可扩展密钥管控方案,但是该文献缺少实施细节。文献[9]提出一个基于区块链的物联网数据存储共享模型,该方案考虑物联网应用情景,引入边缘设备进行密集计算,利用PRE在保障数据安全性和完整性的情况下进行细粒度数据共享。Luo等人[10]提出一个基于区块链的EHR 共享协议,该协议使用分布式密钥生成(Distributed Key Generation,DKG)技术和PRE 来实现EHR的细粒度共享。但其DKG 合成的系统私钥和用户私钥有泄露风险,且方案缺少数据认证体系。

文献[11]使用条件代理重加密和DKG 来实现电子处方的细粒度共享,该方案一定程度上弥补文献[10]中认证体系缺失问题,但与文献[10]一样,存在私钥泄露风险。

受基因组数据共享需求及上述研究成果启发,本文提出一个基于区块链和身份代理重加密的基因组数据共享方案。该方案借助区块链去中心化、不可篡改等特性,保障基因组数据的完整性,使数据所有者对自己基因组数据有完整的控制权。在此方案中,根据基因组数据特点对身份代理重加密技术进行适配改进,使其在进行细粒度数据可信共享同时还具备验证性。同时,此方案还采用了DKG技术解决系统密钥托管问题,并针对文献[10]出现的问题进行解决,引入监管节点群可靠安全地进行私钥合成和管控。针对文献[12]提及的紧急情况基因组学信息访问的开放性问题,该方案给出了可行的解决方法。最后,对方案安全性和正确性进行论证,并将此方案和同类型文献进行对比分析。基因组大数据的时代即将到来,基因组测序也将纳入临床护理常规项目[13],该方案的提出为即将面临的基因组数据管理和共享问题提供解决方案,有助于促进医疗体系现代化建设。

1 背景知识

1.1 基因组信息

基因组常指个体生物遗传信息总和,通常是以DNA 和RNA 为载体。在医学研究中,与基因组相对应的表型数据是必不可缺的。表型是指生物性状的表现,它主要受基因的表达调控以及生存环境影响。通过对表型信息分析才能初步定位进行性状表达的基因组片段,进而研究该疾病的致病机理,进行相关疾病的基因定点治疗。本文中所指基因组数据则包含了基因组和表型数据。对于研究人员和群众来说,最直观且最易收集的表型数据是EHR 和PHR (Personal Health Record)。因此文章出现的表型数据以EHR和PHR为例。

1.2 身份代理重加密

代理重加密是由Blaze等人[14]首先提出,该技术通过半可信的代理来实现将数据所有者公钥加密的密文转换成数据申请者可以用私钥解密的密文。数据所有者或可信第三方生成重加密密钥。代理人运行重加密算法,用重加密密钥重新加密密文,然后发给数据申请者,进行数据共享。在数据共享的过程代理人和其他非授权的第三方是无法获取明文的任何信息。为了进一步加强PRE的性能,已由诸多尝试性方案提出,其中基于身份加密(Identity-based Encryption,IBE)技术备受青睐。IBE 是指使用数据发送者以数据接收者身份作为公钥加密数据进行传递。IBE可以缓解密钥分发问题,并已基于此开发几个密码协议,例如公钥可搜索加密[15]。IBE和PRE结合能进行更细粒度的数据共享权限管理,同时可以缓解系统密钥分发问题。

1.3 区块链

区块链技术概念是由Nakamoto[16]提出,其中比特币是其代表性应用。区块链是由若干块通过hash 算法链接而成。它是由参与者共同维护,数据分布式管理的,且借助hash算法实现数据校验和防篡改。对区块链本质的探讨,已有诸多文献成果,例如文献[17]。区块链技术的进一步升华得益于以太坊的出现。以太坊给区块链技术带来了智能合约和分布式应用。智能合约可以实现区块链底层自动化,提高区块链的性能,也能让用户对自己的数据进行细粒度访问控制。分布式应用则拓展区块链可实现的功能,它允许用户部署APIs 来开发数据分析等应用,例如Nebula基因组区块链项目[18]可以在链上系统提供基因组数据分析等服务。这些特性也正是区块链技术在医疗数据管理被广泛应用的重要因素。

2 方案实施

2.1 模型概述

基于区块链和身份代理重加密的基因组数据共享方案的主要角色有5 个,如图1 所示,分别是:数据所有者、数据申请者、外部存储提供方、代理者和区块链维护者。

图1 系统模型

(1)数据所有者:即拥有自身基因组测序序列和表型数据的用户。该用户可以自主选择数据存储方式,并对自己数据有绝对控制权。

(2)数据申请者:一般为医学研究所、生物科技公司等。他们可以在区块链系统维护的描述性文件数据库中搜索自己感兴趣的基因组数据,并向数据所有者发送访问请求。

(3)存储服务供应方:即基因组数据存储的供应商。基因组数据通常从几GB到上百GB,直接上传到区块链保存的可操作性偏低,这就需要外部存储。IPFS分布式文件存储系统已成为常用存储方案,因其可以解决传统中心化存储、数据篡改以及节点宕机等问题。当然用户可以自主选择其他可信存储方式,比如华为家庭云存储设备,自己做存储供应方管理数据,管理更个性化,灵活控制访问权限。

(4)代理者:代理者主要负责对密文进行重加密操作,在此过程中数据所有者无须共享自己私钥就可实现访问权限再分配。

(5)区块链维护者:即区块链共识过程的参与者,他们共同维护区块链系统正常运转。其中,具体成员可分为以政府的监管部门和技术部门为主的监督委员、受行业或政府部门高度认可的医疗机构和研究所等权威中心以及提供相关保健诊疗服务的医疗科技公司等。

区块链系统能保证数据的完整性和不可篡改性,同时管理员可以借助其智能合约实现一定的身份认证和权限审核。监督委员和权威中心共同维护区块链系统中云服务器,该服务器提供包括文件检索等服务,其中监督委员在区块链系统中管理监管节点。

2.2 方案细节

如图1所示,基因组数据共享方案整体可分为密钥生成、数据存储和数据共享三大部分,具体过程可分为以下5大步骤。

2.2.1 系统初始化

2.2.2 用户分布式密钥生成

2.2.3 基因组数据存储

2.2.4 数据访问请求及代理过程

数据申请者请求iddq在区块链云服务器中检索基因组描述文件,此时智能合约自动运行,检测申请者的权限是否符合智能合约中内置的访问条件。如果符合,则可以对描述文件进行检索,选择感兴趣的基因组数据,并可向数据所有者发送数据访问申请。

2.2.5 基因组数据获取

2.3 紧急情况基因组数据访问

在某些突发情况下,需要直接访问基因组数据,来执行应对措施。例如,医院在接受突发疾病的病人时,需要了解其病史、药物过敏、基因类遗传疾病等信息,来诊断疾病和制定个性化治疗方案,而患者却无法独自解密获取相关加密的存储信息。针对此类情况,基于本文的分布式密钥系统提出以下方案,可以有效解决紧急情况的信息访问问题,具体模型如图2所示。

图2 紧急情况下基因组信息访问方案

监管节点收到医院提供与患者相关证明文件,并验证其可信性。通过验证后,监管节点调用系统私钥合成患者私钥,并通过限时链接返回给医院。医院通过患者私钥解密文件得到HashIPFS和aes,进而访问患者的EHR,进行相关诊断。限制时间一到,监管节点则会在自己本地删除此过程中合成相关成员的私钥,并将私钥合成记录和数据访问记录上传到区块链,以便后续审计,维护患者数据所有权和知情权。

3 方案分析和评估

该章节就本文基因组信息共享方案的正确性和安全性进行证明,分析了该方案面对一些主流攻击的安全性问题。此外,还与现有同类型数据共享方案进行对比,对本文方案的综合性能进行评估。

3.1 方案正确性证明

该方案的正确性主要体现在密文CT3的正确性、代理重加密密文CT3′的正确性和各方签名的正确性。对该方案的正确性证明如下所示。

3.2 方案安全性分析

在此将分析本文方案在面对主流攻击时的安全性问题。

(1)抗中间人攻击。本文方案对中间人攻击是安全的。中间人攻击一般是针对传统的证书颁发机构(Certificate Authority,CA),向用户发送伪造的公钥,从而获取隐私信息。此方案中,用户会根据自己注册的ID产生公钥,并在区块链中进行广播。区块链系统中共识节点充当CA 角色,保证用户公钥不被篡改。并且本方案还使用DKG技术,共识节点参与用户私钥合成,进一步保证用户密钥安全,攻击者是很难发布假的密钥来获得隐私信息。

(2)抗合谋攻击。在该方案中,合谋攻击主要针对两个点,分别是用户私钥合成和代理重加密密文合成。在用户私钥合成部分,攻击者可以串谋部分共识节点截取用户的部分私钥,但每个部分私钥都通过用户临时公钥加密过的,攻击者无法获取明文信息,进而无法合成用户私钥。针对代理重加密过程,代理者和其他节点可能会联合发动合谋攻击来尝试性获取数据所有者的明文信息。攻击者冒充合规节点申请数据访问,联合代理者进行重加密操作,但得到重加密密文需要合规节点私钥才能正常解密,故此攻击者是无法获取用户的明文信息。综上所述,本文方案对合谋攻击是安全的。

(3)抗统计分析攻击。本文中基因组信息链接和对称密钥在初步加密和代理重加密过程中引入随机数,这使得同一明文在相同加密体制下可以生成不同密文,因此该方案可以有效抵御统计分析攻击。

3.3 方案安全性证明

本文方案的安全性是基于群G1和G2中决策双线性Diffie-Hellman (DBDH,decisional bilinear Diffie-Hellman)假设,其定义如下所示。

DBDH 困难问题定义:对于给定形如(g,gu,gv,gw,J)的五元组,令算法A 进行J=(g,g)uvw的运算,当且仅当条件(1)成立,则表明A 具有ε优势解决DBDH问题,其中u,v,w∈,J则是G2中元素。

DBDH假设:不存在算法A,使其在概率多项式时间内具有ε优势解决DBDH 问题,则称DBDH 假设成立。

根据本文基因组数据共享机制可知,本文方案的安全性是依托于PRE 的安全性和选择明文攻击下的不可知性。参考文献[9],构建安全模型,并对其安全性进行证明。安全模型构建如下。

对手A 在此可对密钥生成KeyGen、重密钥生成Rekey、解密Dec、重加密ReEnc等过程进行查询和挑战。在对手A和挑战者C这场安全游戏中,可分为以下四个阶段。

(1)初始化:挑战者C 生成系统参数params,并随机选择系统主密钥msk,并将系统参数params发给敌手A。

(2)查询阶段:敌手A进行以下查询,并在查询阶段结束时选择挑战对象id*∈(0,1)*和(m0,m1)。

①A向C查询用户id对应的密钥,即(KeyGen,id),C进行计算并将id对应的密钥skid返回给A。

②A 向C 查询iddo与iddq之间的重加密密钥,即(Rekey,iddo,iddq),当iddo≠iddq时,C 计算重加密密钥并返回给A。

③当A向C查询密文CT解密时,即(Dec,id,CT),C返回⊥。

④当A向C查询重加密密文时,返回⊥。

在此阶段结束时,A选择的id*要查询阶段未出现过的,避免A用查询阶段生成密钥进行常规解密。

(3)决策与挑战阶段:敌手A 选择挑战对象id*和(m0,m1),并将其发送给C。C接受到后计算密文CT*=Enc(params,id*,mμ),并 将CT*返 回 给A,其 中μ∈(0,1)。

(4)猜测阶段:敌手A 执行与查询阶段类似的查询操作,直到A结束输出猜测μ*。如果μ*=μ,则敌手A 获得胜利。将A 在上述挑战获胜的优势定义为ε,且ε可以忽略不计,则称该方案对多项式时间算法A来说该方案是能够满足身份和选择明文攻击下的不可区分性(Indistinguishability under identity and chosen-plaintext attack,IND-ID-CPA)安全的。优势ε定义,如(2)所示。

定理1 在DBDH 假设下,该方案是满足INDID-CPA安全的。

证明:假设存在敌手A 有不可忽略的优势ε打破IND-ID-CPA 安全。构造一个挑战者C,通过与A 交互,使C 能以不可忽视的优势解决G1,G2中DBDH 困难问题。对于C给定输入g,gu,gv,gw∈G1,J∈G2,判断J=(g,g)uvw是否成立,成立则输出1。A与C的交互如下所示。

C 模拟随机预言机H1:{0,1}* →G1:当C 接收关于ID 查询时,C 选择一个随机数θ∈,并以Pr[η=1]=χ的概率分布产生随机币η∈(0,1),如果η=1,h=(gw)θ,否则h=gθ。C 记录元组(ID,h,θ,η),并将h作为A 的查询结果返回,且h具有随机分布性。C 继续模拟随机预言机H2:G2→G1,结果是返回G1中的随机元素。在此,C对随机预言机H3:{0,1}* →的模拟可以忽略,因为在游戏博弈过程中,H3仅出现在重加密密钥生成部分,起验证作用,且H3进行模拟计算得到的值是ID对应下初始密文CT的哈希值。对于A和C 而言,它是一个确定值。因此,模拟过程中可做常数1处理。

(1)初始化:C 生成系统参数params,并选择系统密钥对。

(2)查询阶段:A 向C 发送(KeyGen,id)请求,C 进行H(id)模拟,并得到四元组(id,h,θ,η)。C随后产生id的私钥(gu)θ返回给A。当A 继续发送(Rekey,iddo,iddq)请求,C选择随机数r∈、φ∈G1和r3∈G2,并分别对iddo和iddq求H1→(η1,θ1)和H2→(η2,θ2)。该过程会出现以下两种结果。

(3)挑战阶段:A 输出自己想挑战对象id*和(m0,m1),其中id*的选择是查询阶段未出现过的。C选择μ∈(0,1),并计算H1(id*)得到四元组(id*,h,θ,η)。C将密文CT*=(gv,Jθ·mμ)返回给A。

(4)猜测阶段:A 重复查询阶段操作,进行分析,最后输出猜测μ*。当然A 被限制进行一些能轻易破解密文的查询操作,比如密文解密结果查询。如果以下任何一条条件被证明为假,C将中止模拟。否则,继续执行模拟,如果μ*=μ,则C输出1,否则输出0。

①id*、η=0的对应值。

②A所做的每个id对应的(KeyGen,id)查询。

对于正确形成的DBDH 元组(g,gu,gv,gw,J),在挑战者C不终止模拟情况下,在这游戏中敌手A给出的视图是与真实攻击相同。因此,A 是不能区分模拟的,因为A不能辨别出错误形成的重加密密钥。并且对于相同的mμ输入,因为选择的随机数不同,形成的初始密文也不相同,产生的重加密密钥也不同。当C输入的是DBDH 元组时,如果CT*是在id*下mμ正确形成的初始密文,则A 是满足定义ε=|Pr[μ*=μ]-1/2|,因此,C 输入1 的概率为|Pr[μ*=μ]|=ε+1/2。然而,对于C的随机输入,CT*是为G2中的随机元素形成的初始密文,不同的随机元素输入会产生不同的密文,与C 选择的μ无关,即C 输出1 的概率是|Pr[μ*=μ]|=1/2。因此,C 具有不可忽略的优势辨别DBDH元组。

证毕。

3.4 方案对比与评估

为了评估本文所提方案的综合性能,对现有同类数据共享文献进行了比较与评估。具体结果详见表1、表2和表3。

表1 方案对比

表2 计算时间复杂度对比

表3 实验性能对比

表2 中,计算成本时间消耗主要考虑了数据在加密和解密过程中的配对运算Tp和指数运算TE。其中,Enc-1 表示区块链上传数据的加密过程,Enc-2 则表示其代理重加密过程,Dec-1 和Dec-2 则分别对应上述的解密过程。表3则是相应的实验结果,该实验是在配置为Intel i7-7500u 2.7Ghz CPU、RAM 8G、Windows 操作系统的计算机上运行,在本地搭建环境,使用JPCB 2.0 版提供的加密函数进行实验。表3 中,每个操作执行100次,其每个操作的运行时间取平均值,其单位为ms。

从表1可知,以上文献具有访问控制能力,并且均通过PRE实现更细致的权限分配,以保护密钥和密文安全进行数据共享。相比之下,文献[7]、文献[11]和本文方案有更为完善认证体系,用户可以通过签名及其相关条件保障数据安全共享,且整体过程可追溯,但文献[7]使用的传统云存储,有数据篡改丢失风险。此外,文献[11]和本文方案都使用DKG 技术,可以缓解密钥托管问题,但文献[11]存在系统私钥和用户私钥泄露问题,而本文方案在此方面进行改进,通过密文方式传递系统和用户的部分私钥,并引入监管节点群管理系统私钥,防止系统私钥被不可信共识节点泄露。

本文在PRE 过程中引入参数δ,使得数据申请者可以通过δ来判断代理加密文件是否是自己所申请的,来确认代理者是否存在恶意攻击行为。此外,基于此方案的密钥生成及管理系统,本文还开创性提出紧急情况下基因组数据访问方案,来实现在患者无法自理提供相关医疗信息情况下制定个性化医疗方案,提高医疗效率,减少患者不必要的医疗开支。

从表2、表3 可以看出本文方案整体的计算复杂度和时间开销是小于文献[7]和[11],与文献[9]接近。其中文献[7]和[11]方案设计时未综合考虑实施性能,且为了满足其应用场景需求有额外开销。本文方案在重加密等阶段加入相关认证参数,增加相应的计算开销,但控制在适当范围内,提高了方案的安全性。

因此,综上所述,本文提出的基因组数据共享方案有更优异的综合性能。

4 结束语

随着医疗技术的发展,基因组数据将迎来急剧增长的时代。本文提出一个基于区块链和身份代理重加密的基因组数据安全共享方案,让用户即可自由掌握自己的基因组数据又可在保护自己数据隐私情况下进行数据分享,充分发挥基因组数据的本身价值。并且本方案对传统身份代理重加密进行适配改进,设计有完善的加密和认证体系,且整体方案可以抵抗合谋攻击和中间人攻击,满足IND-ID-CPA 安全的。对于密钥托管问题,本文提出一个更安全的分布式密钥生成方案,并基于此方案还提出一个新的在紧急情况下数据访问方法,为后续此方面研究提供新思路。最后,从多角度与相同类型文献进行对比分析,结果表明本文方案有更优的综合性能。

猜你喜欢

私钥密文密钥
探索企业创新密钥
一种针对格基后量子密码的能量侧信道分析框架
清扫机器人避障系统区块链私钥分片存储方法
一种支持动态更新的可排名密文搜索方案
比特币的安全性到底有多高
基于模糊数学的通信网络密文信息差错恢复
基于改进ECC 算法的网络信息私钥变换优化方法
密码系统中密钥的状态与保护*
一种基于虚拟私钥的OpenSSL与CSP交互方案
一种对称密钥的密钥管理方法及系统