APP下载

可验证的云存储医疗加密数据统计分析方案

2021-06-18张晓均张经伟

计算机工程 2021年6期
关键词:可验证同态数字签名

张晓均,张经伟,黄 超,唐 伟

(1.西南石油大学 计算机科学学院,成都 610500;2.西南石油大学 网络空间安全研究中心,成都 610500)

0 概述

移动互联、物联网、云计算和大数据等新兴信息技术与信息感知方式的快速发展,改变了传统的医疗与健康服务模式[1-3]。近年来,随着移动医疗等新技术的应用,电子健康档案、临床检测数据、可穿戴传感器感知的个人健康状态记录等医疗数据都呈现爆炸式增长[4-6]。医疗大数据处理技术在临床决策支持系统、远程病人监控数据以及对病人健康档案等精准分析方面发挥着重要作用,已成为提高诊疗效率、减少可避免的人为误差与缓解医疗资源分布不均问题的有效途径。同时,云计算技术因其高效的计算能力和强大的存储空间,可以有效集成在无线医疗网络环境中,减缓医疗数据剧增所带来的存储和处理压力[7-9]。

尽管云计算技术在管理健康医疗大数据方面呈现明显优势,但是外包云存储医疗数据容易遭受各种安全性威胁[10-12],其中,受影响最大的是数据的机密性[13]。事实上,用户健康医疗数据的敏感性导致其往往以密文形式存储在云服务器,这将失去部分甚至大部分数据的可用性。因此,如何在数据隐私得到有效保护的情况下对云存储外包医疗数据进行快速医学统计分析,具有重要的研究价值和实际意义。

加密数据聚合[14]可有效促进具有隐私保护的医疗数据的统计分析。密码学中具有加法同态特性的加密算法首先被集成到聚合方案中[15],然后通过云服务器对大量的医疗数据密文进行同态聚合,并将聚合后的密文发送给医疗数据分析中心(DAC),同时有效降低通信带宽,最后在医疗数据分析中心端进行聚合数据解密,进一步进行具有隐私保护的大数据的统计分析。此外,数据完整性在医疗云存储环境应用中也极为关键[16-17],原因是恶意敌手为了某种利益可能在用户和云服务器的传输信道中截取数据并执行替换或篡改攻击。由于云服务器同时要处理来自不同用户的海量医疗数据,在进行加密聚合的过程中,可能会因操作失误导致错误地聚合原始外包密文数据,这样最终返回的聚合数值并非真实结果。因此,可验证的加密数据聚合方案是医疗数据分析中心进行大数据深度准确统计分析的有效保证。

近年来,已出现各种加密聚合方案,但这些方案用在医疗数据统计分析领域还相对较少[18-19],而且很多方案缺乏可验证功能[20-21]。一些可以部署在无线医疗网络且支持可验证功能的加密聚合方案[22-23],由于在设计过程中需要的双线性对计算开销与原始用户数量呈线性增长趋势,因此方案效率不高。

本文提出一种可验证的外包云存储医疗加密数据统计分析方案,该方案采用改进的BGN 同态加密算法使云服务器可以对密文进行聚合运算,从而减轻医疗数据分析中心的计算压力。同时,设计一种基于椭圆曲线的同态数字签名算法,使医疗数据分析中心在使用云端聚合的数据时,只需执行恒定的运算量即可高效地验证加密医疗聚合数据的完整性。

1 预备知识

1.1 双线性对

基于椭圆曲线的双线性对定义如下:

定义1给定一个双线性对映射其中,加法循环群G1与乘法循环群G2有共同的阶q1,且V是G1的生成元。基于椭圆曲线的双线性对满足以下性质:

1)双线性。对任意2 个群上的元素P、V∊G1和任意的a、b∊,双线性对运算满足

2)非退化性。对于加法循环群上存在的2 个元素P、V∊G1,,此处1 是G2的单位元。

3)可计算性。对于加法循环群上任意的2 个元素P、V∊G1,都能找到一个有效的算法计算(P,V)。

1.2 BGN 公钥加密系统

BGN 公钥加密系统[24]主要包括密钥生成、加密和解密3 个算法。

1)密钥生成。给定安全参数κ,合数阶双线性对产生器输出(n,g,G,GT,e),其中,n=pq,p、q是长度为κbit的大素数,G、GT是2 个阶为n的循环群,g是n阶循环群G的生成元,e:G×G→GT是一个非退化的双线性对映射。设置u=gp,则u是G的q阶循环子群的生成元。公钥是pk=(n,G,GT,e,g,u),私钥是sk=q。

2)加密。假设明文空间是一个整数集{1,2,…,T},其中,T

3)解密。给定密文c=gmur,利用私钥q计算cq=(gmur)q=(gq)m,然后计算以gq为底的cq的离散对数,即可恢复m。由于0 ≤m≤T,根据文献[24]中Pollard的lambda 解密方法,BGN 公钥加密算法可在时间复杂度内解密出明文。

2 方案设计

2.1 系统模型

可验证的外包云存储医疗加密数据聚合方案的系统模型,包含用户、云服务器、医疗数据分析中心和可信中心(TA)4 个通信实体,如图1 所示。

图1 加密数据聚合方案的系统模型Fig.1 System model of encrypted data aggregation scheme

系统模型中的4 个通信实体具体如下:

1)用户。通过可穿戴设备收集健康医疗数据,使用移动终端计算设备对医疗数据进行加密,产生密文对应的数字签名,最后将所有密文及对应的数字签名集合上传到远程云服务器。

2)云服务器。拥有巨大的计算和存储能力,在本模型中主要用于存储用户上传的加密数据及数字签名集合。一旦接收到医疗数据分析中心的挑战请求,云服务器会对挑战位置的加密数据及数字签名进行同态聚合运算,并返回最终结果到医疗数据分析中心。

3)医疗数据分析中心。当接收到来自云服务器返回的聚合结果时,医疗数据分析中心首先进行加密数据完整性验证,然后利用私钥来解密以获得不同用户医疗数据的聚合值,最后对用户的医疗数据进行隐私保护统计分析。

4)可信中心。负责设置并发布系统的公开密码参数,系统初始化阶段通过安全信道为各通信实体发送私钥。

本文提出的可验证外包云存储医疗加密数据聚合方案,重点解决云存储医疗数据的机密性、完整性以及数据统计分析可用性问题。因此,本系统中引入的可信中心实际上需要使用相关身份认证技术[25-27],对每个通信实体进行身份验证后才能进入医疗云存储系统并为其颁发对应的公私钥。

2.2 具体步骤

可验证外包云存储医疗加密数据聚合方案具体包括4 个阶段:系统初始化,医疗数据加密和签名上传,加密医疗数据同态聚合,验证和聚合数据解密。

1)系统初始化。可信中心TA 生成用于同态加密、同态数字签名和验证的系统公共参数。同时,TA 将秘密参数发送给医疗数据分析中心以及对应的用户。系统初始化阶段具体步骤如下:

(1)TA 选取长度相等的大素数p1和p2,满足n=p1p2,设置双线性对映射e:Ga×Ga→Gb,其中,Ga为n阶乘法循环群,g为Ga的生成元,选取Ga的p1阶子群的生成元x=。

(2)TA 选取有限域Fp(p是大素数)上的椭圆曲线E,并基于该椭圆曲线设置另外一个双线性对映射:G1×G1→G2,V是基于椭圆曲线E的q阶加法循环群G1的生成元。TA 设置需要外包到云服务器的具有某一类型的医疗数据的用户数量为N,对于第i个用户,TA为其生成私钥zi∊Zq,并计算公钥Ui=ziV。TA设置2个抗碰撞的哈希函数H1:{0,1}*→G1,H2:{0,1}*→。

最后,TA 公开如下的系统公共参数:

TA 通过安全信道将私钥p1发送给医疗数据分析中心,将私钥zi发送给对应的用户i。

2)医疗数据加密和签名上传。用户i利用医疗数据分析中心的公钥生成医疗数据mi的密文,同时使用私钥对密文数据产生对应的数字签名σi,最后将密文和对应的数字签名数据上传到云服务器。医疗数据加密和签名上传阶段具体步骤如下:

(1)对于明文数据mi,其最大值T小于p2,随机选取si∊Zn,计算密文

(2)计算数字签名σi=(zi+H2(ci))H1(type),其中,type 是医疗数据的类型。

最后,每一个用户i将自己生成的签名数据和密文数据{σi,ci}一起上传到远程云服务器。

3)加密医疗数据同态聚合:当医疗数据分析中心需要分析某一类型的敏感医疗数据时,使用伪随机数发生器生成含l个伪随机数的伪随机序列{t1,t2,…,tl-2,α,β},将医疗数据类型type 和伪随机序列一起作为挑战信息chal 发送给云服务器。然后,云服务器根据type 类型医疗数据上N个用户的外包密文数据和这些数据对应的数字签名,分别进行聚合。加密医疗数据同态聚合阶段具体步骤如下:

(1)云服务器对N个加密数据进行同态聚合:

(2)根据双线性对的运算性质和同态加密性质,对每个密文ci=Enc(mi,si)进行如下聚合:

(3)基于以上2个聚合数据值SC、QSC和挑战信息,云服务器利用哈希函数H2产生新的随机数tl-1=H2(SC||α)和tl=H2(QSC||β),云服务器进一步基于挑战信息中的伪随机序列{t1,t2,…,tl-2,tl-1,tl}对N个数字签名数据σ1,σ2,…,σN进行聚合,σ=(tj H1(type)+σi),其中,i∊{1,2,…,N},j∊{1,2,…,l},l

最后,云服务器将所有聚合数据Agg={σ,c,U,SC,QSC}发送给医疗数据分析中心。

4)验证和聚合数据解密:当接收到云服务器发送的聚合数据后,医疗数据分析中心执行数据完整性验证,并对聚合密文SC 和QSC 进行解密。验证和聚合数据解密阶段具体步骤如下:

(1)计 算tl-1=H2(SC||α)、tl=H2(QSC||β)以 及t=,其中,j=(i-1)modl+1,验证如下方程是否成立:

(2)一旦验证上述方程成立,医疗数据分析中心确信外包云存储密文数据未被云服务器错误聚合或者被外部敌手恶意替换、篡改。根据文献[24]中Pollard 的lambda 解密方法,医疗数据分析中心利用私钥p1进行条件性穷举暴力破解,在时间复杂度为的情况下可有效求解离散对数,进而恢复该类医疗数据的统计和。同样,医疗数据分析中心可有效求解离散对数,恢复医疗数据的平方和。

2.3 加密数据聚合的正确性及统计分析

医疗数据分析中心通过检验完整性验证方程是否成立,以判断云服务器是否按照正确步骤进行同态加密聚合。完整性验证方程推导如下:

当医疗数据分析中心得到正确的type 类型医疗数据的统计和以及平方和时,其可计算出该类医疗数据的平均值和方差统计数据,分别如下:

最后,医疗数据分析中心根据上述统计数据,可在保护用户医疗数据隐私的情况下进行大数据处理和深度分析。图2 所示为详细的数据聚合与统计分析流程。

图2 数据聚合与统计分析流程Fig.2 Procedure of data aggregation and statistical analysis

3 安全性证明

定理1可验证的外包云存储医疗加密数据聚合方案可确保用户外包云存储医疗数据的机密性。

证明每一个移动终端用户i产生医疗数据mi的密文,发送到云服务器,ci本质上是改进的BGN同态加密系统的密文,由于此密码系统满足选择明文安全的语义安全性,即便敌手在用户和云服务器的公开信道截获到相关密文,也不能恢复用户的原始医疗数据。此外,一旦接收到来自N个用户的所有加密医疗数据ci,i=1,2,…,N,云服务器则对N个加密数据进行同态聚合:

经过上述过程,这N个用户的加密医疗数据被云服务器聚合为SC 和QSC 2 个密文,两者本质上也分别是的改进BGN 加密系统的密文。同样,根据BGN 加密系统选择明文的语义安全性,即便敌手在云服务器和医疗数据分析中心的公开信道截获到这2 个聚合密文,也不能恢复用户原始医疗数据的统计和与平方和。

定理2可验证的外包云存储医疗加密数据聚合方案可确保云存储加密医疗数据聚合的可验证性。

证明在医疗数据加密和签名上传阶段,加密医疗数据的数字签名σi=(zi+H2(ci))H1(type)是用户利用自己的私钥zi产生的,任意敌手如果能在多项式时间内伪造一个新的数字签名,其必然在多项式时间内可以求解基于椭圆曲线的离散对数困难问题。因此,单个密文的数字签名伪造是不可行的。同样,敌手在多项式时间内伪造聚合的加密医疗数据数字签名(tj H1(type)+σi)(j=(i-1)modl+1)也是不可行的。此外,由于是用户利用医疗数据分析中心的公钥产生的,敌手自己可能产生一个替换的密文,因此云服务器在产生聚合密文信息SC=和之后,在返回给医疗数据分析中心的过程中,2 个信息可能被替换为SC*和QSC*。于是,篡改的聚合信息Agg*={σ,c,SC*,QSC*}要通过医疗数据分析中心的验证,其必须满足如下方程:

设置W=(tl-1+tl)H1(type),可以求解H1(type)和W之间的离散对数,这与基于椭圆曲线的离散对数困难问题假设是矛盾的。因此,根据以上安全性分析得知本文方案可确保云存储加密医疗数据聚合的可验证性,即医疗数据分析中心可以验证云服务器加密聚合过程的正确性以及聚合密文的完整性。

4 性能分析

将本文方案与文献[22-23]中的2 种可验证加密聚合方案进行性能分析与对比,所有方案都运行在处理器为Inter®CoreTMi5-2320 3.00 GHz和内存8.00 GB的主机上,操作系统为Windows10。所有方案均通过C 语言以及版本号为5.6.2 的密码算法基础函数库MIRACL 来实现,使用的椭圆曲线密码机制是MNT曲线,嵌入阶是6。定义Tpa表示双线性对运行时间,Tmu表示普通乘法运行时间,TMu表示椭圆曲线上加法循环群中倍点计算运行时间,TAd表示椭圆曲线上加法循环群中加法的运行时间,Tex表示普通模指数计算运行时间,TEx表示双线性对映射中的模指数计算运行时间,THa表示映射到椭圆曲线上加法循环群的哈希函数运行时间,Tha表示普通哈希函数的运行时间。

在本文系统模型中,各种密文同态聚合和数字签名同态聚合运算都外包给具有强大计算能力的远程云服务器,同时,各个对比方案都是通过聚合计算来降低通信开销的。因此,本节通过比较各方案在医疗数据分析中心端的数据处理中所需的计算开销,以验证本文方案在计算性能上的优势。具体地,根据分析得知,文献[22]中的SPPDA方案在验证和聚合数据解密过程中,数据中心需要执行N+1 个双线性对运算和N个普通的哈希函数,才能通过完整性验证方程,同时,数据中心需要执行1 个双线性对运算、1 个普通模指数计算和1 个普通乘法,才能实现完整聚合密文的解密。因此,SPPDA 方案中数据中心的总计算开销为(N+2)Tpa+Tex+NTha+Tmu。文献[23]方案在验证和聚合数据解密过程中,数据中心需要执行N+1 个双线性对运算、N个普通的哈希函数以及N-1 个普通乘法,才能通过完整性验证方程,同时,数据中心需要执行1 个普通模指数计算实现聚合密文的解密。因此,文献[23]方案数据中心的总计算开销为(N+1)Tpa+NTha+(N-1)Tmu+Tex。在本文方案中,医疗数据分析中心需要执行3 个双线性对运算、1 个椭圆曲线上加法循环群中的倍点计算、1 个映射到椭圆曲线上加法循环群的哈希函数以及2 个普通的哈希函数,才能通过完整性验证方程,同时,医疗数据分析中心需要执行1 个普通模指数计算和1 个双线性对映射中的模指数计算,才能实现聚合密文的解密。因此,本文方案中医疗数据分析中心总的计算开销为3Tpa+TMu+THa+2Tha+Tex+TEx。3 种方案的验证和聚合数据解密过程具体计算开销如表1 所示。

表1 3 种方案的数据分析中心计算开销对比Table 1 Comparison of computing cost of data analysis center of three schemes

从图3 可以看出,本文方案医疗数据分析中心在计算效率方面具有明显优势,特别地,随着移动终端用户数目N的增加,文献[22-23]方案的计算开销均呈线性增长,而本文方案医疗数据分析中心的计算开销保持恒定轻量级常量,并未随着移动终端用户数目N的增加而增加。

图3 3 种方案的数据分析中心计算效率比较Fig.3 Comparison of computing efficiency of data analysis center of three schemes

5 结束语

医疗数据作为用户的隐私数据,在医生对患者的病情判断中发挥重要作用,在统计分析医疗数据时必须保证其机密性和完整性。本文提出一种可验证的云存储医疗加密数据统计分析方案,基于改进的BGN 同态加密算法,在保障医疗数据机密性的同时,将加密数据聚合操作外包给云服务器,以缓解医疗数据分析中心的计算压力。同时,设计一种基于椭圆曲线的数字签名算法,使医疗数据分析中心可以快速验证云服务器所聚合医疗数据的真实性。性能分析结果表明,该方案在医疗数据分析中心只需轻量级恒定计算开销的情况下就能判断数据在传输和存储期间是否遭受篡改或替换,并据此对医疗数据进行均值和方差等统计分析。但本文研究尚未考虑用户可能不愿意上传敏感医疗数据、用户数据传输中途被中断或者其他恶意攻击行为导致数据传输失败等实际情况,因此,下一步将增加容错机制并采用门限秘密共享技术,使得本文方案在有效传输数据达到门限值的情况下即可顺利完成加密数据聚合。

猜你喜欢

可验证同态数字签名
浅析计算机安全防护中数字签名技术的应用
关于半模同态的分解*
拉回和推出的若干注记
“可验证”的专业术语解释
一种基于区块链技术的可信电子投票方法
云计算视角下可验证计算的分析研究
基于数字签名的QR码水印认证系统
一种基于LWE的同态加密方案
HES:一种更小公钥的同态加密算法
数字签名简述