重大疫情患者隐私数据保护方案研究

2022-02-23 10:03吕英泽王嘉乾
计算机与生活 2022年2期
关键词:解密加密区块

韩 刚,吕英泽,罗 维,王嘉乾

西安邮电大学 网络空间安全学院,西安710000

新冠肺炎作为席卷全球的传染疾病,对全球人类的生命健康造成了巨大的威胁,极大地影响了社会的正常运行,同时也对世界各国的医疗系统运行带来了巨大的挑战。在中国,疫情虽已得到控制,但仍存在风险,一旦发现新冠肺炎疑似或确诊病例,政府部门和医疗机构会立即展开行动,对患者的个人信息和最近行程进行统计,并传递至下一级部门,下一级部门搜寻密切接触者,并对密切接触者进行隔离观察。政府部门还会以匿名形式向公众公布新冠肺炎确诊患者的最近行程以及接触人群信息。但在政府或医疗机构将患者基本信息传送至下一级部门的过程中,可能会造成患者身份证号码、家庭住址等个人信息泄露,引发诸如社会恐慌、对患者歧视等次生灾害。此外,政府机构和医疗机构的患者数据类型不统一、存储方式不统一,无法实现患者数据信息的安全、实时共享。因此,患者个人信息数据以及医疗记录数据的安全问题显得十分紧迫。

区块链技术的蓬勃发展为各个行业提供了新的发展方向,区块链技术在保护患者隐私方面展现出巨大的潜力,世界各国针对区块链隐私保护进行了大量研究。Nathan 等人提出了一种基于区块链的个人信息管理系统,使用区块链来储存、传递、下载分析数据。Lazarovich提出使用区块链技术保护个人隐私,以保护医疗患者数据为例阐述基于区块链审计技术的隐形墨水系统。Azaria 等人首次提出了基于区块链技术的电子病历系统,通过在链上部署智能合约来完成病例的修改、删除、更改权限和信息共享等功能。Chen等人提出利用区块链和云存储技术来实现一个患者医疗数据管理储存方案。Omar等人提出了一种基于联盟链的患者医疗数据隐私保护平台,将数据加密存储至链上,数据拥有者可授权数据访问者的访问权限。薛腾飞等人提出了一种区块链医疗数据共享模型,根据多维度评价指标,选用股份授权证明机制(delegated proof of stake,DPoS)分配权限。张超等人提出使用基于实用拜占庭容错算法(practical Byzantine fault tolerance,pBFT)的联盟链医疗区块链系统,系统可以有效防止医疗数据被泄露。但是,上述研究依然存在系统性能不够高效,患者数据安全性无法完全保障的问题。

综合上述情况,本文提出了结合区块链的重大疫情患者隐私数据保护方案,该方案可满足患者隐私数据的完整性、可限制性、不可篡改性以及可审计性等数据安全需求。方案采用联盟链,将重大疫情治理的主要参与者和次要参与者分布在主、侧两链上,采用侧链技术在主链和侧链之间使用智能合约进行信息交互,并对主链进行扩容。使用改进的拜占庭容错机制(delegated Byzantine fault tolerant,dBFT)保障系统的性能同时保证患者的个人隐私安全,实现医疗数据共享;提出了分级加密方案(hierarchical data encryption scheme,HDES),对患者数据进行加密,保护患者个人隐私。若患者隐私数据遭到泄露,系统可利用区块链审计技术,追溯数据泄露方,追究泄露方法律责任。

1 基础知识

区块链包含底层交易数据、分布式账本、共识机制、分布式网络、分布式应用这几个要素。区块链基本架构如图1 所示。

图1 区块链基本架构Fig.1 Blockchain basic architecture

1.1 共识机制

共识机制是系统的核心要素。由于区块链具有去中心化的性质,在进行信息传输时,共识机制保证每一次数据交互在所有记账节点上的一致性和正确性。基于区块链的系统中主流共识算法包括:工作量证明(proof of work,PoW)、权益证明(proof of stake,PoS)、股份授权证明、实用拜占庭容错机制、改进的拜占庭容错机制等。

1.2 分布式账本

分布式记账本被称为狭义的区块链,由区块头和区块体构成。区块头内容一般包含上一区块头的散列值、时间戳、Merkle 的根,并根据不同的共识机制存储相应的信息。区块体则包含了一个区块的完整交易信息,以Merkle 树的形式组织在一起。在一定时间内,多个交易信息形成一个数据块,将数据块关联起来。这些决策规则的核心就是共识机制,共识机制用来保证分布式账本的一致性。

1.3 智能合约

“智能合约”的概念在1995 年由密码学家Szabo首次提出,是对现实中的合约条款执行电子化的量化交易协议。区块链的出现,支持了可编程合约的数字系统和技术,让智能合约的理论变为现实。本质上讲,智能合约是一段程序,以计算机指令的方式自动化处理了传统的合约,就是双方在区块链资产上交易时,触发的一段代码,去中心化、可信息共享的程序代码。智能合约一旦启动就会自动运行,不需要任何合约参与部署方的操作。因此这种技术是在没有第三方监控的情况下进行的可信交易。目前,智能合约已经不仅用于金融领域,并且在分布式计算、物联网等领域有着广阔的应用前景。

1.4 公有链、联盟链和私有链

区块链根据不同的应用场景和中心化程度,分成三种不同的区块链,分别是公有链、联盟链和私有链。

(1)公有链

公有链为任何节点都可参与的去中心化区块链。记账者为区块链内的所有节点,信任机制为工作量证明。代表为比特币和以太坊。

(2)联盟链

联盟链为预先设定参与者的多中心化区块链。记账者由参与者协商决定,信任机制为共识机制。联盟链所存储的数据访问受到参与者的约束。联盟链可以对控制权进行限定,但是联盟链存在匿名性和数据透明性以及审计便利性的综合问题。假设公司是联盟链的应用场景,若保留匿名性,那么公司内部数据审计无法开展。若联盟链不匿名,那么必须保证数据的透明性低,因为每个公司都不想让竞争对手知道自己的详细信息,若将数据进行加密,那么会增加审计的工作量。一般金融领域联盟会使用到联盟链。代表为Hyperledger Fabric和openchain 等。

(3)私有链

私有链为中心控制着参与人员的中心化区块链。信任机制和记账者都是内部指定。私有链无需考虑共识问题,交易量无限制,速度快。所有节点按内部权限、程序和规则展开工作。但是私有链存在细粒度权限分配问题。对每个节点的访问权限都需要详细规定。由于私有链是中心化区块链,私有链可能存在内部攻击,区块链的不可篡改性可能会被破坏。

2 重大疫情患者隐私数据保护方案模型

当医疗机构或者政府部门发现患者后,将会立即隔离并对患者进行调查,统计患者的基本信息如姓名、性别、身份证号、家庭住址等隐私信息和近期行程、症状表现等基础数据。并立即将患者的基本信息和近期行程等数据发送至下一级疫情管理部门,调查近期行程便于找出密切接触者并及时隔离,对患者经过地点及时进行消杀。疫情管理部门还应立即将患者的近期行程数据匿名公布,使人民群众产生警惕,注意自身防护,有相似行程并出现类似疫情症状表现的民众应立即报告并紧急隔离。

当政府部门将患者的各项数据下发至下一级疫情管理部门时,只将患者的近期行程和症状表现等数据公布至民众。但由于管理的疏忽或攻击者恶意将患者的姓名、身份证号、家庭住址等个人敏感信息公之于众,造成患者的个人信息泄露,严重影响患者正常生活。

根据此,本文提出了一个结合区块链的重大疫情患者隐私数据保护方案。医疗机构或政府部门将患者隐私数据上传至区块链,各地医疗机构和疫情管理部门从区块链上取得信息并及时做出响应。鉴于中国医疗卫生数据系统现状,重大疫情医疗信息一般由重点三甲医院掌握,选择各地疫情防控管理部门、政府部门、各地三甲医疗机构为超级节点。系统围绕超级节点展开一系列患者隐私数据的共享服务,其中政府部门起监督管理作用,有权对参与数据共享的机构进行管理。采用联盟链将若干个机构形成联盟共同管理,每个机构都运行着一个或者多个节点,系统只允许被授权的机构或者个人查看数据。由于各节点的权限不同,利用联盟链可以更好地保护隐私数据。共识机制选用dBFT 机制,系统拓扑图如图2 所示。

图2 系统拓扑图Fig.2 System topology diagram

考虑到患者数据的安全性以及重要性,将政府部门、各地疫情管理部门和各地医疗机构作为主链,三方互相合作,在保证患者个人隐私的前提下进行数据共享。由于将患者数据上传至主链上会增加主链压力,可能会造成较高的确认延迟。为了提高系统效率,本文使用侧链技术对区块链进行扩容。并将民众、科研机构和社区等节点加入侧链,通过侧链技术与主链使用智能合约进行对接,从而实现患者数据信息共享。

2.1 患者隐私数据保护框架

若将患者的隐私数据明文text直接上链,没有任何的隐私保护措施,容易造成敏感数据泄露。若仅将患者隐私数据的哈希值Hash上链存储,那么患者真实数据并不在链上,链下数据存储容易存在数据丢失、被破坏等安全隐患。因此,患者的隐私数据加密并存放于主链上,才能使用智能合约完成对患者隐私数据的保护和分享,才能真正利用区块链的可追溯、不可篡改等特性。

政府机构_将患者的个人基础数据和行程数据以及病历加密上传至区块链,其他节点无法获得隐私数据DATA的具体内容。区块链审计机构构建在区块链上,可对链上所有数据操作行为进行审计。该机构将对主链和侧链任何读写操作以及更新数据进行记录,加强了、各方的操作合规性。患者自己也能申请查看区块链审计机构的审计结果,增强患者隐私数据传输过程的透明度。

、上的各个机构对患者隐私数据传输流程如图3 所示。

图3 主链隐私数据传输流程Fig.3 Main chain privacy data transfer process

患者将隐私数据和具体行程告知_。由于、各个机构或者民众的权限不同,能够看到患者数据的敏感程度不同。即上的机构不仅可以看到患者的近期行程路线等基本信息,用来对高危场所及时实施消杀,对密切接触者及时隔离,还可以掌握例如身份信息、家庭住址等患者敏感信息用作记录档案。而为了保护患者个人隐私,防止患者因身份泄露而造成影响正常生活的不良后果,上的民众只能掌握患者近期内的行程路线和病症,以提示民众近期不要前往高危地区。科研机构等可根据医疗机构提供的病症以及一些科研所需数据,例如病毒基因序列、病毒分型等进行疫苗研发以及科研攻关。社区可根据疫情发展等综合因素配合疫情管理部门进行基层工作。因此应采取分级加密的方式对链上数据进行加密。

2.2 患者个人数据信息单

个人数据信息单中应储存的内容包括患者个人隐私信息DATA、患者医疗信息DATA、患者行程信息DATA、主治医师信息DATA等。

(1)患者个人隐私信息DATA。主要记录患者的基本资料,如姓名、性别、年龄、地址、单位、电话号码、手机号码、身份证号、患者编号等。

(2)患者医疗信息DATA。主要包括诊断、处方、检查和检验结果、医嘱、病例等。

(3)患者行程信息DATA。患者在近14 天之内所去过的所有场所以及患者的密切接触者。

(4)主治医师信息DATA。主要记录主治医师所在的医院、医院等级、科室以及医师的姓名、身份证号等个人信息。

医疗机构提供DATADATA,疫情防控部门提供DATADATA。政府机构将整合以上信息并进行对称加密上传至区块链,可供链上的任何节点下载数据,并根据主侧链权限查看相应数据。系统每隔一段时间会检查一遍各节点是否存在同步出错或者恶意篡改链上数据的情况。新节点加入也需对区块链上数据进行校验。为了方便检索,本系统需要对每一个患者个人数据单设计一个唯一ID,ID的命名规则为=(ID,ID),其中ID为患者编号,ID为患者个人数据分类编号。具体组成结构如图4所示。患者个人数据单上链时按照如图4 的层次排序,患者、政府部门以及医疗机构可以细粒度地控制患者个人数据单。假如某节点想要搜索101 号患者行程信息,其ID 为(101,4)。此方法可快速查找到所需记录,将患者的个人数据单信息进行归纳整合。

图4 ID 结构Fig.4 ID structure

2.3 患者数据上链后区块链系统共识过程

本文采用dBFT 机制完成联盟链的共识过程。患者数据上链后,通过联盟链上各个节点进行共识后,记录在区块中。系统中由_内部选取一个节点作为主节点,该节点只起共识过程的发起与引导作用,可以将上链请求排序。上除主节点外的其他节点设置为代理节点,上的节点为普通节点。代理节点有记账权,普通节点可以看到共识过程,并同步账本信息,但不参与记账。具体共识过程如下:

(1)患者数据产生后由政府机构节点ψ经过预处理提取其摘要后,向区块链网络中的主、侧链分别广播该摘要值记录,其中D为加密过的患者数据:

(2)主节点收到足够多的患者数据摘要后,将这些患者数据排序并上传至新区块上,对新区块进行签名并将其Hash 值(D) 广播至主链网络中。上的其他代理节点收到该区块后,将区块中的患者数据添加至自己的账本中,再对区块中的患者数据进行Hash 运算,与主节点发来的新区块Hash值(′)比较,若两Hash值相同,则代理节点认为该区块是正确的,并广播确认信息至区块链网络上。

2.4 区块链分级加密患者隐私保护方案

由上述隐私数据保护方案可知,、的权限不同,允许查看患者隐私数据的敏感程度不同。接触患者隐私数据的敏感程度高,接触患者隐私数据的敏感程度低。因此通过采取HDES 分级加密的方法来保护患者隐私数据。

HDES 方案中把患者数据可分为基础数据和隐私数据两部分:

(1)隐私数据DATA:患者个人隐私信息DATA、主治医师信息DATA

(2)基础数据DATA:患者医疗信息DATA、患者行程信息DATA

侧链节点只允许查看DATA,主链节点允许查看DATADATA。加密后的患者数据还需要支持授权共享,例如区块链系统如何授权新的主链机构给予其隐私数据查看权限。

HDES 方案主要包括_提供患者个人数据的加密存储和上各个患者数据使用方对数据的解密读取、对新加入节点授予权限。通过将患者数据分为基础数据和隐私数据两部分进行不同级别的保护,达到在区块链上对数据操作、患者数据隐私保护和新加入节点数据共享的目的。

_对患者个人数据加密的流程如图5所示,其加密过程描述如下。

图5 患者个人数据加密流程Fig.5 Patient personal data encryption process

加密患者数据算法本文方案选择AES-256 算法,加密对称加密密钥选择RSA-OAEP 算法。假设、为主链上的机构MChainMChain,为侧链上的机构SChain。且_已经授权并分配给MChainMChain私钥_MP、_MP和公钥_MS、_MS,并分配给SChain私钥_SP和公钥_SS

(1)第一级加密

使用智能合约生成的K对患者的DATA进行逐个对称加密形成密文text。此时患者的DATA是明文状态text。导出类似患者1:text的键值对,将text上链。

MChain使用_授权分配的_MSK进行非对称加密,K-C为使用_MS加密K的密文。

导出类似于MChainK-C的键值对并写入区块链上。

(2)第二级加密

MChainSChain为例。使用智能合约随机生成侧链节点公钥_SS=(,)和私钥_SP=(,)。其中,是两个随机大素数之积,1 ≤≤(),且gcd(,())=1,=2 mod(())。

使用Ktexttext进行逐个加密,text表示第二级加密密文,此时的DATA是二次加密状态,DATA是一次加密状态。

MChainSChain使用_授权分配的_MS和_SSK逐个进行非对称加密,其中K-C为使用_SS加密K的密文。

导出类似于SChainK-C的键值对并写入区块链上。

导出类似于患者1:text的键值对并写入区块链上。

主、侧链上患者个人数据使用方解密的流程如图6 所示,现在MChain对区块链上患者数据进行解密,具体流程如下:

图6 患者个人数据解密流程Fig.6 Patient personal data decryption process

(1)主链机构第一级解密

MChain向数据系统提出数据获取请求,发送当前时间戳并加密,格式如下:request_=(DATA||DATA||)。随后数据系统验证MChain的身份时,MChain重新生成一个验证时间戳并进行加密,格式如下:verify_=(DATA||DATA||′),若数据系统验证身份成功,则将加密后的患者数据reply_=(text||″)返回至MChain。并由区块链审计机构进行审计。

MChain使用智能合约从区块链上读取_MPK-C键值对,MChain使用_授权分配的私钥_MPK-C进行解密。并由区块链审计机构进行审计,生成数据操作记录。

MChain使用Ktext进行解密,并由区块链审计机构进行审计。由于K只能解密患者的DATA,此时的DATA依旧是密文状态text

将患者的texttext进行分离,text用于第二层解密。

(2)第二级解密

MChain使用智能合约从区块链数据系统读取K-CMChain使用_授权分配的_MPK进行解密,并由区块链审计机构进行审计,生成数据操作记录。

得到K后,MChain使用智能合约在区块链数据系统中获取患者1:text的键值对。

MChain使用Ktext进行解密,得到text,并由区块链审计机构进行审计。

侧链上的民众或者机构只需要进行第一级解密,就可以得到患者的基础数据DATA,在此不再赘述。

本文在HDES 方案中还需考虑新加入节点的数据共享问题。若此时机构D 申请加入区块链成为一个节点,假设其加入侧链,则通过_分配公私钥对。假设其加入主链,则使用pBFT 共识机制,由主链上具有投票权的机构进行投票,当超过51%的节点同意其加入主链,达成共识,那么机构D 即可加入主链。新加入节点共享患者数据流程图如图7 所示。具体流程如下:

图7 新加入节点共享患者数据流程Fig.7 Newly joined nodes share patient data process

假设机构已通过投票成为MChain

_为MChain分配公私钥对_MP、_MS

使用主链或者侧链任意节点(图中为MChain)的私钥_MP解密随机密钥密文K-C,得到K的明文。

使用MChain的公钥_MS加密K,随后添加进公钥对应K-C的键值对列表。

MChain为主链机构,使用主链任意节点(图中为MChain)的私钥_MP解密随机密钥密文K-C,得到K的明文。

使用MChain的公钥_MS加密随机密钥K,随后添加进公钥对应K-的键值对列表,增加权限流程结束。

当主链或者侧链上某个节点退出区块链,或者_将其节点强制封禁时需撤销其权限。但是由于区块链具有不可篡改性,不可以直接从区块链账本上删除类似:K-的键值对来撤销权限,系统需要通过对区块链账本添加撤销指令,用以撤销节点查看信息的权限。将新的撤销指令添加到区块链账本上,由于区块链上的区块以时间顺序连接在一起,在查看访问策略时,先查看最新添加的访问控制信息,一旦检索到节点的访问控制策略后,随即停止检索。即可做到节点查看患者个人信息权限的撤销。

3 安全性与性能分析

3.1 安全性分析

本文方案中,当发现疫情相关患者后,政府机构及时将患者的个人信息、近期行程以及治疗细节加密上传至链上,密文可以保证数据的安全性。全国各地经过政府机构验证的主链节点和注册验证的侧链,个人或者机构可下载加密数据并使用私钥进行解密,使得全网可快速、安全地共享患者个人数据而不会泄露患者的隐私。

本文系统为基于联盟链的双链系统。由疾控系统中担任的角色以及责任划分为主链和侧链,并将患者数据分为隐私数据DATA和基础数据DATA。上由_主导,医疗机构与疫情防控管理部门共同合作共享DATA,则由民众、科研机构以及社区组成,可查看DATA。各个节点之间无需互相信任,每一个节点都无法控制或者修改患者数据,只攻击系统中的一个或者一部分节点不会造成系统网络瘫痪。本系统将患者数据进行加密后直接存储在链上,首先是为了方便智能合约对数据进行处理;其次,患者个人隐私数据不选择储存在第三方中心化云存储服务器上,更有效地利用区块链系统的去中心化特点,使系统具有更加良好的抗单点失效攻击性能。

本系统采用区块链作为底层架构,节点ℓ 与数据系统进行交互时均发送了系统当前时间戳,过程如下所示:

节点ℓ 向数据系统提出数据获取请求,并对该时间戳进行了加密_=(DATA||DATA||),此时攻击者无法获得该时间戳。

数据系统验证节点ℓ 身份时,节点ℓ 又将重新生成一个时间戳′并进行加密,将_=(DATA||DATA||′) 发送至数据系统。若数据系统验证身份成功,则将加密后的患者数据_=(text||″)返回至节点ℓ。在此过程中,假设攻击者截获了{_,_},但是依旧不能获得患者数据的明文形式。当数据系统解密获得两个时间戳{,′}后,只需判断两个时间戳之间的时间差,若′->Δ,则说明系统中存在重放攻击,因此本文方案可以抵抗重放攻击。

(1)节点ℓ 向数据系统提出数据获取请求_=(DATA||DATA||),假设在此过程中,攻击者获取了_,但无法解密该密文,因此无法修改其中的身份信息。

(2)假设攻击者拦截节点ℓ 向数据系统发出的数据访问请求_=(DATA||DATA||),并将此请求发送至数据系统。此时系统认为是节点ℓ 发送的请求,并继续截获_=(DATA||DATA||′)发送给数据系统。数据系统将加密后的患者个人数据单_=(text||″) 返回,攻击者先将患者个人数据单text备份存储至本地,然后将text转发给节点ℓ。此时攻击者虽然得到加密后的数据,但由于没有授权的私钥_,无法解密加密数据text

区块链系统本身包含很多个节点,一旦数据被写入区块链,每个节点都会备份该数据,由于区块链账本是分布式储存的,这种分布式特性使单个节点无法修改链上内容。

假设攻击者为系统中的一个节点,其试图修改患者数据。主节点_将患者数据的摘要值(,()) 广播至链上,修改患者数据并且广播修改后的患者数据摘要值′(′,(′))。根据2.3 节所述的dBPF 共识机制过程,其他正常代理节点将收到一个否认信息,但是dBPF 共识机制可以容忍不超过整个网络节点数目1/3 的节点误差,因此其他代理节点将确认信息结果同步至本地帐本。攻击者此时并不能修改患者数据。

若攻击者想要攻击成功,必须控制系统中超过1/3 的代理节点。但是,此系统选用的是联盟链,与公有链不同,联盟链拥有主节点,主节点具有身份认证和权限设置的功能。主链上为医疗机构、政府机构,是社会中公信力较强的机构。因此出现大范围主动攻击区块链系统的可能性极小。故此系统能够抵抗恶意篡改攻击。

区块链系统中每生成一个区块,区块头中会写入区块产生的时间戳,区块链上的区块以时间顺序连接在一起。本系统将记录主侧链上各个节点查看隐私数据的操作,并以日志的形式存放在链上。如果发生患者隐私数据泄露事件,区块链审计机构将所有节点的数据动作进行溯源,追究数据泄露方责任。如果发生恶意篡改患者隐私数据事件并且恶意篡改的节点不超过系统总节点数的1/3,区块链审计机构将此区块的信息进行审计和溯源,对修改区块信息的恶意攻击行为进行责任追究。

3.2 实验分析

本小节将对基于侧链技术的重大疫情防控系统使用Ethereum 作为系统的区块链平台进行实验测试,实验环境为IntelCorei7-7700HQ CPU@2.80 GHz的CPU,RAM 为8 GB 的服务器,使用docker容器模拟10 个侧链节点,向主链发送查看数据的请求。在固定时间内侧链交易池中确认的数据请求量如表1 所示。从表1 中可以看出吞吐量能够稳定在130 transaction/s 以上,此系统具备承载医疗应用的能力。

表1 数据请求确认量Table 1 Number of data request confirmation

本文针对现有患者隐私数据进行统计与分析,发现单个患者个人隐私数据的文件大小约为1 KB,本文使用RSA-OAEP 和AES 分级加密算法对上述数据文件进行加密、解密以及授权仿真,并对第一、二级加密和第一、二级解密的时间进行测试,测试结果如图8(a)~(c)所示。

图8 加解密及授权时间Fig.8 Encryption and decryption and authorization time

为了更准确地评估方案的实际加解密性能,本文利用PyCharm 2020.1.1x64 编译器对患者数据文件进行RSA 和AES 分层加解密实验仿真。图9(a)~(c)展示了在不同文件大小下的加解密时间以及第一、二级加密和第一、二级解密的时间,将包含批量患者隐私数据的文件进行加解密,患者文件大小从0 MB到16 MB,每次测试增量为2 MB,观察到加解密时间是随着患者隐私数据文件大小的增加而增加的,但在批量加解密16 MB 患者隐私数据文件时,其加解密时间分别为1 779 s与1 678 s,时间均不超过30 min,考虑到单个患者隐私数据为1 KB 级,16 MB 文件大小足以处理16 000 余人的患者隐私数据,在应对重大疫情时,能够保证数据的吞吐量。

图9 不同文件大小下的加解密时间Fig.9 Encryption and decryption time for different file sizes

图10(a)~(c)展示了一次性加解密不同数量患者隐私数据下的时间以及第一、二级加密和第一、二级解密的时间,患者人数从0 人到16 000 人,每次测试增量为2 000 人。观察到加解密时间是随着一次性加解密患者总人数的增加而增加的。考虑到一次性加密患者总人数较多,本文还可通过分批加密的方式进一步减少加解密所需时间。将2 000 人及以上的患者加密时分成以千人为单位的患者数据组,每次加密单个患者数据组,实验结果如图11 所示。

图10 不同患者人数下的加解密时间Fig.10 Encryption and decryption time with different number of patients

图11 分批加解密时间Fig.11 Batch encryption decryption time

3.3 性能对比分析

本文采取对照分析法评估重大疫情患者隐私保护方案,由于本文系统是结合区块链而提出的医疗数据的隐私保护以及共享方案,与文献[3]、文献[6]和文献[7]现有所提出的结合区块链医疗数据隐私保护及共享方案进行对比。从各个方案所采用的共识机制、算力需求、链结构、所需节点数、采用区块链类型以及加密效率来进行比较,对比结果如表2 所示。

表2 方案对比Table 2 Comparison of programs

根据对比结果可知,本文方案使用的dBFT 算法作为共识机制,相对于文献[3]使用的工作量证明,文献[6]使用的改进委托权益证明,文献[7]使用的实用拜占庭容错机制,本文方案基于共识机制所需的初始节点数相对较少,且不需要大量的算力去维护区块链系统,具有一定的易维护性。且相对于文献[6],联盟链的去中心化程度高于私有链。文献[6]中提出使用分布式数据库存储患者数据,并用格基算法对患者数据进行加密。与本文方案的加密算法相比,格基算法虽能保证较高的安全性,但是针对医疗数据,格基算法目前只能实现比特级加密,而在重大疫情发生时,所需要处理的患者数据量至少是MB 级的,格基算法效率低且不易实现。本文方案还对患者隐私数据在链上进行分层加密,方便节点使用智能合约对患者数据进行操作且安全性较高。综上所述,本文方案的去中心化程度以及效率在目前的方案当中占有一定的优势。

4 结束语

本文使用实用拜占庭容错机制的共识算法,采用联盟链并划分出主侧链,采用侧链技术对患者信息进行共享,并提出HDES 分级加密方案,根据主侧链权限不同,呈现出的患者数据也不同,实现对患者数据的细粒度访问控制,更好地保护了患者的个人隐私。及时做到医疗信息和行程信息共享,保障患者个人隐私数据安全、财产安全和社会稳定。未来将对本文方案的加解密效率和共识算法进行改进,保证系统的效率,改善系统功能,使得改进后的医疗信息系统未来能够应对类似于新冠肺炎这样的重大疫情。

猜你喜欢
解密加密区块
炫词解密
解密“一包三改”
保护数据按需创建多种加密磁盘
《红楼梦》的数字化述评——兼及区块链的启示
电力安全防护加密装置
炫词解密
炫词解密
区块链助跑财资管理
一场区块链引发的全民狂欢
区块链助力企业创新