面向电子病历的单向多跳身份基条件代理重加密方案

2020-06-09 06:21范春芳李文超钟俊宏吴佳欣徐千寓王振国
医疗卫生装备 2020年5期
关键词:私钥密文密钥

范春芳,卜 婧,李文超,宋 冬,熊 虎,钟俊宏,吴佳欣,徐千寓,王振国*

(1.武警特色医学中心,天津300162;2.电子科技大学信息与软件工程学院,成都610054;3.武警后勤学院,天津300309)

0 引言

随着云计算的发展,越来越多的医疗系统采用云服务存储患者的电子病历(electronic medical record,EMR)[1]。在基于云存储的EMR 中,采用加密算法对重要信息加密来保证信息安全是必然选择。在公钥加密体制下,每个用户需要独一无二的密钥,而密钥需要密钥分配中心统一分配,大量的密钥成为了系统管理的难题。虽然基于身份的加密(identity-based encryption,IBE)方案既能保证信息传输的安全[2],又能解决密钥管理问题,但当用户需要传输信息时,此方案只能通过发送私钥给该用户或使用对方的公钥重新加密。这种以牺牲用户隐私安全为代价或承担巨大运算开销的数据共享方式应用在目前的医疗系统中存在着很大的局限性。

针对上述问题,Blaze 等[3]在1998 年的欧洲密码学年会上首次提出代理重加密(proxy re-encryption,PRE)方案。该方案是一种能够灵活分享加密数据的方法,可让用户在一个半可信代理服务器的帮助下完成对加密后密文的安全转换。半可信代理服务器利用转换密钥将授权人(delegator)公钥加密的密文转换成被授权人(delegatee)通过私钥可以解密的密文。Green 等[4]提出了基于身份的代理重加密(identity-based proxy re-encryption,IB-PRE)方案,该方案结合了上述身份基加密和代理重加密二者的优点,不但克服了公钥加密中的密钥管理难题,还可以实现数据的安全、灵活共享。但在实际应用中需要患者授权医生查看本人病历,而医生不能授权患者查看医疗信息库,因此需要单向身份基代理重加密(unidirectional IB-PRE)以实现单向的访问授权。若出现患者的病历涉及到医院转诊,该患者的主治医生、主管护士、科室主任、护士长等均需要了解该患者的病情,或者该患者需要多部门多名医生进行会诊,对患者病历信息还需多次授权的情况,这就需要利用带有多跳功能的身份基代理重加密(multi-hop IB-PRE,MH-IB-PRE)方案将医疗记录进行多次授权。在当前互联网医疗信息系统的构建过程中,患者的主治医生、主管护士、科室主任、护士长应当在一定程度上共享经该患者授权的全部或者部分信息,而疾控中心根据疾病防控情况也有可能需要了解该患者信息,这又涉及了多次授权的问题。但是,在传统的代理重加密中,代理服务器一旦获得用户授权的转换密钥,就可以不受限制地重加密用户的所有病历记录,这样不利于保护用户的隐私。由此,Shao 等[5]在随机预言机模型下提出身份基条件代理重加密(identity-based conditional proxy re-encryption,IBCPRE)方案对代理服务器的重加密权力进行限制,然而该方案仅实现了单向单跳条件代理重加密。基于此,本文基于双线性映射提出了单向多跳身份基条件代理重加密(unidirectional multi-hop IB-CPRE,UMH-IB-CPRE)方案。在该方案中,重加密的密文长度固定不变,不受重加密次数影响,这避免了多跳重加密的密文增长的负担,且本方案中代理重加密具有非交互性、抗共谋性。

1 预备知识

1.1 双线性映射

双线性配对(bilinear pairing)也叫双线性映射,是研究现代密码学的基础。2001 年,Boneh 等[2]利用双线性配对构造了第一个实用并且可证安全的基于身份的加密方案。自此之后,双线性映射在密码学中得到了广泛应用,成了构造众多加密方案的有效工具。双线性映射中定义了阶数为素数q的乘法循环群G 和GT,f,k为生成元,定义在这2 个乘法循环群上的一个映射关系e:G×G→GT,其中箭头表示映射关系。如果该映射同时满足以下性质,那么称e是一个双线性映射:

(1)双线性:e(fa,kb)=e(f,k)ab对于任意(f,k)∈G×G 与任意a,b∈Z*q均成立;

(2)非退化性:只要f,k≠1G就有e(f,k)≠1GT;(3)可计算性:对于任意(f,k)∈G×G,在多项式时间内e(f,k)的结果是可以计算的。

1.2 相关的困难问题

本方案是基于DBDH(decisional bilinear Diffie-Hellman)问题的,DBDH 问题在基于身份密码体制中有广泛的应用。

在该问题中,给出元组(u,ua,ub,uc,T)作为输入,其中,需判断T=e(u,u)abc是否成立。算法A 为概率多项式时间(probabilistic polynomial time,PPT),本方案中概率多项式时间算法A解决DBDH 问题的优势被定义为(u,ua,ub,uc,e(u,u)abc=1)]-Pr[A(u,ua,ub,uc,T=1)]|。若对于任意概率多项式时间算法A,均无法以不可忽略的优势解决DBDH 问题,则称DBDH 问题是困难的。

1.3 UMH-IB-CPRE 方案系统模型

UMH-IB-CPRE 方案由系统建立、密钥生成、重加密密钥生成、一级加密、二级加密、重加密、一级解密和二级解密8 个算法构成,具体的形式化描述如下:

(1)系统建立。Setup(1k)→(msk,par):k作为安全参数输入系统后,主密钥msk和公共参数par被输出。

(2)密钥生成。KeyGen(msk,par,I)→skI:在该算法中输入主密钥msk、公共参数par和用户身份I,则算法返回私钥skI。

(3)重加密密钥生成。ReKeyGen(par,skI,ω,I')→rk(I→I'|ω):公共参数par、授权用户私钥skI、条件ω 和被授权用户身份I'作为输入,算法返回转换密钥rk(I→I'|ω)。

(4)一级加密。Enc1(par,M,I)→σI:加密者对算法输入用户身份I、加密消息M和公共参数par,则算法输出基于用户身份I的一级密文σI。

(5)二级加密。Enc2(par,ω,M,I)→σ(I,ω):加密用户输入用户身份I、明文M、条件ω 和公共参数par,算法输出二级密文σ(I,ω)。

(6)一级解密。Dec1(σI,skI)→M:将基于用户身份I加密的一级密文σI、用户I的私钥skI作为输入,算法返回明文M。

(7)重加密。ReEnc(σ(I,ω),rk(I→I'|ω))→σ(I',ω):输入密文σ(I,ω)和对应的转换密钥rk(I→I'|ω),则算法输出重加密密文σ(I',ω)。

(8)二级解密。Dec2(σ(I',ω),skI')→M:输入重加密密文σ(I',ω)和用户I'的私钥skI',则算法输出明文M。

此外,对于任意par,任意M∈GT,以及任意私钥skI、skI',该方案需满足:

Dec1(Enc1(par,M,I),skI)=M;

Dec2(Enc2(par,M,I),skI)=M;

Dec2(ReEnc(Enc2(par,ω,M,I), ReKeyGen(par,skI,ω,I')),skI')=M。

1.4 UMH-IB-CPRE 方案安全模型

UMH-IB-CPRE 方案需可以抵抗选择明文攻击(chosen-plaintext attack,CPA),故本方案包含一级密文和二级密文2 种安全模型。

1.4.1 一级密文安全模型

一级密文安全模型是不含有条件的、满足普通重加密需要的密文安全模型。在一级密文安全模型中,C 作为挑战者,A 作为敌手,如果A 不能够以不可忽略的优势赢得游戏,那么认定UMH-IB-CPRE方案中的一级密文达到CPA 安全。一级密文安全模型的建立过程如下:

(1)系统初始化。C 建立系统,并将公开参数par传输给A。

(2)阶段1。A 发出查询命令,C 返回相应的回应。私钥生成预言机Osk(Ii):A 输入身份信息Ii,C 将skIi←KeyGen(par,msk,Ii)发送给A。转换密钥生成预言机Ork(Ii,Ij,ω):A 输入信息(Ii,Ij,ω),C 将rk(I→I'|ω)←ReKeyGen(par,skIi,ω,Ij)发送给A。

(3)挑战阶段。A 提交目标元组(I*,M0,M1),同时A 发出的询问受以下限制:

①A 不能查询身份I*的私钥;

②消息M0,M1∈GT且长度相同。

C 随机选取d∈{0,1},并把一级密文(par,Md,I*)作为挑战密文发送给A。

(4)阶段2。A 重复阶段1 中的询问,但不能对I*进行私钥查询。

(5)猜测阶段。

A 输出d'∈{0,1},若d'=d,则A 胜出;否则一级密文达到CPA 安全。

1.4.2 二级密文安全模型

二级密文安全模型是带有条件的密文安全模型,其构建过程如下:

(1)系统初始化。同1.4.1。

(2)阶段1。A 发出查询命令,C 返回相应的回应。私钥生成预言机Osk(Ii):同1.4.1。转换密钥生成预言机Ork(Ii,Ij,ω):同1.4.1。代理重加密预言机Ore(Ii,Ij,ω,σ(Ii,ω)):A 输 入信 息(Ii,Ij,ω,σ(Ii,ω)),C将σ(I',ω)←ReEnc(σ(I,ω),rk(I→I'|ω))发送给A。其中rk(I→I'|ω)←ReKeyGen(par,skIi,ω,Ij)。

(3)挑战阶段。A 提交一个目标元组(I*,ω*,M0,M1),对A 的提交行为做如下限制:

①同1.4.1;

②同1.4.1;

③对于A 在上阶段的任意转换密钥查询输入(Ii,Ij,ω),均满足Ii≠I*或ω≠ω*。

C 随机选取d∈{0,1},并将二级密文σ*(I*,ω*)←Enc2(par,ω*,Md,I*)作为挑战密文发送给A。

(4)阶段2。A 重复阶段1 中的询问,并受以下限制:

①A 不能查询身份信息I*的私钥;

②查询转换密钥时输入(Ii,Ij,ω),其中Ii≠I*或ω≠ω*;

③对于代理重加密查询输入(Ii,Ij,ω,σ(Ii,ω))需满足Ii≠I*或ω≠ω*。

(5)猜测阶段。同1.4.1。

2 UMH-IB-CPRE 具体方案

本文基于身份的加密技术和代理重加密技术提出的UMH-IB-CPRE 的具体方案如下:

(1)系统建立。Setup(1k):安全参数k作为输入,算法返回一个双线性映射,记为(q,G,GT,e)。其中,q为乘法循环群G 和GT的阶数,e表示映射e:G×G→GT。随机选取为G 中不同的2 个生成元。用户身份空间为消息空间为GT,系统的主密钥为msk:{a,b,c}(主密钥在全方案各个算法中可以被重复使用,并在密钥生成算法中用于加密生成密钥),最后输出公开参数par:

(2)密钥生成。KG(msk,par,I):主密钥msk、公共参数par与用户身份作为输入,选取t,x,y∈R并计算:α=a+x,β=b+y;sk={c(/a+bI),α(/a+bI),β/(a+bI),kx,ky,s/(a+bI)}。最后输出用户I的私钥skI=(sk1,sk2,sk3,sk4,sk5,sk6)。

(3)重加密密钥生成。RKG(par,skI,ω,I'):输入公共参数par、授权用户私钥skI、被授权用户身份I'∈和条件ω,计算最后输出转换密钥rk(I→I'|ω)=(rk1,rk2,rk3)。

(4)一级加密。Enc1(par,M,I):为基于用户身份I加密明文M∈GT并生成一级密文σI,数据发送者需执行如下步骤:

②计算A=M·e(f,k)cα,B=e(f,k)(a+bI)α,A、B表示密文内容,共同组成一级密文;

③输出一级密文σI=(A,B)。

(5)二级加密。Enc2(par,ω,M,I):用户输入身份I、条件ω 和明文M∈GT,并生成二级密文σ(I,ω),具体加密过程如下:

②计算A'=M·e(f,k)cr,B'=f r,C'=e(f,k)(a+bI)r,D'=(ks)ω;

③输出二级密文σ(I,ω)=(A',B',C',D')。

(6)一级解密。Dec1(σI,skI):输入密文σI=(A,B)和私钥skI,恢复明文M的解密计算为M=A/Bsk1。

(7)重加密。RE(σ(I,ω),rk(I→I'|ω)):输入基于用户身份I及条件ω 加密的二级密文σ(I,ω)=(A',B',C',D'),代理服务器利用重加密密钥rk(I→I'|ω)对二级密文进行重加密计算:

最后输出重加密密文σ(I',ω)=(A'',B'',C'',D'')。

(8)二级解密。Dec2(σ(I',ω),skI'):输入σ(I,ω)=(A',B',C',D')和σ(I',ω)=(A'',B'',C'',D''),二 者 结 构 相同,均可通过公式M=A''/(C'')sk1来恢复明文M。

3 性能分析

表1 和表2 分别为UMH-IB-CPRE 方案与其他单向MH-PRE 方案和双向MH-PRE 方案的属性比较。为进一步分析本方案在同类条件代理重加密方案中的性能,对UMH-IB-CPRE 方案与其他IB-CPRE方案的计算用时进行了对比,详见表3。

表1 UMH-IB-CPRE 方案与单向MH-PRE 方案的属性比较

表2 UMH-IB-CPRE 方案与双向MH-PRE 方案的属性比较

表3 UMH-IB-CPRE 与其他IB-CPRE 方案的时间消耗比较

由表1、2 可知,本文提出的方案与其他MHPRE 方案相比,在实现密文定长、非交互、抗同谋等属性的基础上还支持条件控制的代理重加密。由表3 可知,本方案仅在二级加密Enc2 算法上比Zhou等[10]提出的方案耗时略高,其余算法的平均耗时都相对较低,尤其是解密算法的平均耗时大幅减少,降低了用户端的运行负担。虽然Luo 等[7]和Xiong 等[11]提出的2 个多跳IB-CPRE 方案可以抵抗选择密文攻击(chosen-ciphertext attack,CCA),但是付出了较高的时间及运行成本,使得各项运算的时间消耗成本远高于本方案。相比而言,UMH-IB-CPRE 方案实现了CPA 安全,且获得了较高的运算效率。

与身份基条件代理重加密方案相比较得出的各算法的时间消耗仿真实验也验证了UMH-IB-CPRE方案的优势,如图1 所示。

图1 各方案算法的时间消耗比较

时间消耗仿真实验通过Windows7 操作系统(3.2 GHz 主频,i5-4460 CPU,4 GB 内存,64 位)下运行VC++6.0 来完成。

4 安全性证明

本文将通过证明相关定理来表明UMH-IBCPRE 方案的两类密文可以在标准模型下抵抗自适应身份选择明文攻击,达到CPA 安全。为验证UMHIB-CPRE 方案的安全性,需要应用基于DBDH 问题的定理,其定义如下:若有一个PPT 算法A 在CPA安全意义下攻破UMH-IB-CPRE 方案的一级或二级密文加密方案的优势是不可忽略的,那么一定存在一个PPT 算法C 能以不可忽略的优势解决双线性映射中的DBDH 问题。

该定理在UMH-IB-CPRE 方案中的证明如下:假设存在一个PPT 算法A 攻破UMH-IB-CPRE 方案的优势是不可忽略的,则利用A 来构造一个PPT算法C 能以不可忽略优势解决双线性映射(q,G,GT,e)中的DBDH 困难问题。C 收到DBDH 困难问题输入值〈G=〈u〉,ua,ub,uc,T〉来判断T是否等于e(u,u)abc。为了达到目的,C与A 之间需进行密文安全性证明。

4.1 一级密文安全性证明

在一级密文安全性证明中,C 通过私钥查询、转换密钥查询进行询问,具体如下:

(2)阶段1。A 发出查询命令,C 返回相应的回应。私钥查询:A 输入身份信息Ii,C 记录下Ii,然后执行算法KeyGen(par,msk={a0,b0,c0},Ii)→skIi,并将skIi发送给A。转换密钥查询:A 输入(Ii,Ij,ω),C 记录下(Ii,Ij,ω),执行KeyGen(par,msk={a0,b0,c0},Ii)获 取skIi,然后运行ReKeyGen(par,skIi,ω,Ij),获取rk(I→I'|ω)并返回给A。

(3)挑战阶段。A 提交目标元组(I*,M0,M1),A 发出的询问受以下限制:

①A 没有查询过I*身份相应的私钥,即C 没有I*的私钥查询记录;

②明文M0,M1∈GT且长度相同。

C 随机选取d∈{0,1},s0∈Z*q,并计算A*=Md·T,作为挑战密文返回给A。

(4)阶段2。A 重复阶段1 中的询问,但A 不能对I*进行私钥查询。

(5)猜测阶段。可验证,当T=e(u,u)abc时σ*I*与基于I*加密的一级密文在形式上相同,σ*I*中s=s0,r=c/c0-s0。根据假设,此时A 在攻破密文σ*I*并猜中d值方面的优势是不可忽略的。但是,如果T是GT中的随机元,则Md被隐藏,即A 猜中d的值的概率不会大于1/2。

如果A 猜中d,则C 判定T=e(u,u)abc,否则C 判定T≠e(u,u)abc。通过上述方法实现A 以不可忽略的优势破解一级密文到C 以不可忽略的优势解决DBDH 问题上的归约。而DBDH 困难问题是公认的数学困难问题,A 无法破解DBDH 数学困难问题,则不能攻破一级密文,由此完成了一级密文的安全证明。

4.2 二级密文安全性证明

在二级密文安全性证明中,C 通过私钥查询、转换密钥查询及代理服务器重加密查询进行询问,具体如下:

(1)系统建立。同4.1。

(2)阶段1。C 对于A 给出的查询给予相应的回应,包括私钥查询,同4.1;转换密钥查询,同4.1;代理重加密查询:A 输入信息(Ii,Ij,ω,σ(Ii,ω)),C 记录下(Ii,Ij,ω)并生成rk(I→I'|ω),然后运行ReEnc(σ(I,ω),rk(I→I'|ω))→σ(I',ω),并把σ(I',ω)返回给A。

(3)挑战阶段。A 发送目标元组(I*,ω*,M0,M1),需要对A 的提交行为做如下限制:

①同4.1;②同4.1;

③A 查询转换密钥时输入(Ii,Ij,ω),其中Ii≠I*或ω≠ω*。C 查询转换密钥时输入(Ii,Ij,ω),其中Ii≠I*或ω≠ω*。

C 随机选取d∈{0,1},并计算

(4)阶段2。A 可以进行与阶段1 中相同的查询,但要做出如下限制:

①不允许A 对身份信息I*进行私钥查询;

②对于转换密钥查询输入(Ii,Ij,ω)需满足Ii≠I*或ω≠ω*;

③对于代理重加密查询输入(Ii,Ij,ω,σ(Ii,ω))需满足Ii≠I*或ω≠ω*。

(5)猜测阶段。可验证,当T=e(u,u)abc时与基于I*和ω*加密的二级密文在形式上相同中随机数为r=c/c0。根据假设,A 在攻破密文并猜中d值方面的优势是不可忽略的。但是,如果T是GT中的随机元,则Md被隐藏,即A 猜中d的值的概率不会大于1/2。

若A 猜中d,则C 判定T=e(u,u)abc,否则C 判定T≠e(u,u)abc。通过上述方法实现A 以不可忽略的优势破解二级密文到C 以不可忽略的优势解决DBDH困难问题上的归约。而DBDH 困难问题是公认的数学困难问题,A 无法破解DBDH 数学困难问题,则不能攻破一级密文,由此完成了一级密文的安全证明。

综上所述,C 模拟了游戏中的挑战者。若A 能够攻破UMH-IB-CPRE 方案,即攻破本文的一级密文和二级密文加密方案的优势是不可忽略的,那么

5 结语

本文基于Xiong 等[11]的方案提出了一个高效的、加条件的、基于身份的单向多跳代理重加密方案,满足抗共谋性、重加密密文长度固定等良好属性,能够应用于物联网云存储系统中。通过测试各个方案算法的时间消耗仿真实验比较的结果表明,UMH-IB-CPRE 方案与其他IB-CPRE 方案相比显著高效,且不受重加密次数影响,从而使解密步骤的成本大大减少。同时本方案的条件加密功能使加密者能决定密文是否能被重加密或满足特定条件才可被重加密,在一定程度上限制了代理服务器的重加密行为。本方案在较好地保护用户(患者)隐私安全的前提下大大地减少了运算成本,尤其在患者异地就诊就医、多人异地同时会诊,疾控中心、医疗机构等经授权对医疗信息数据进行共享等场景下更具有显著优势,能够解决现实情况下用户隐私不安全和反复授权耗费巨大算力的问题,具有广泛的应用前景。

猜你喜欢
私钥密文密钥
清扫机器人避障系统区块链私钥分片存储方法
一种支持动态更新的可排名密文搜索方案
比特币的安全性到底有多高
幻中邂逅之金色密钥
基于模糊数学的通信网络密文信息差错恢复
Spatially defined single-cell transcriptional profiling characterizes diverse chondrocyte subtypes and nucleus pulposus progenitors in human intervertebral discs
密码系统中密钥的状态与保护*
密钥共享下跨用户密文数据去重挖掘方法*
TPM 2.0密钥迁移协议研究
一种基于虚拟私钥的OpenSSL与CSP交互方案