基于无证书的身份匿名隐私保护医疗数据完整性验证方法转让专利

申请号 : CN202210700508.7

文献号 : CN115134132B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 黄荷姣赵芥向文羽顾崇林王明月张银星

申请人 : 哈尔滨工业大学(深圳)

摘要 :

本发明公开了一种基于无证书的身份匿名隐私保护医疗数据完整性验证方法,包括:计算用户秘密值、匿名身份信息和第一用户公钥,并生成用户注册信息;根据用户注册信息生成第二用户公钥和第二用户私钥;患者生成第三用户私钥和第三用户公钥;患者将医疗数据文件发送给云服务器;验证者生成并发送最终审计挑战信息给云服务器;云服务器生成并发送响应审计证明信息给验证者;验证者基于审计挑战信息和响应审计证明信息验证医疗数据文件是否完整;患者在医疗数据文件不完整时发出用户自认证信息,云服务器对用户自认证信息进行验证,若验证成功,则支付赔偿金,否则云服务器拒绝赔偿。本发明解决了医疗数据块签名计算过程中计算成本过大的问题。

权利要求 :

1.基于无证书的身份匿名隐私保护医疗数据完整性验证方法,应用于医疗网络信息系统,所述医疗网络信息系统包括患者、密钥生成中心、云服务器和验证者,所述患者分别与密钥生成中心、云服务器和验证者通信连接,所述云服务器与验证者通信连接,其特征在于,所述身份匿名隐私保护医疗数据完整性验证方法包括:S100.密钥生成中心生成医疗网络信息系统的系统参数;

S200.患者计算用户秘密值、匿名身份信息和第一用户公钥,并根据用户秘密值和匿名身份信息生成用户注册信息,并将用户注册信息发送给密钥生成中心;

S300.密钥生成中心根据所述用户注册信息生成第二用户公钥和第二用户私钥,并将所述第二用户公钥和第二用户私钥发送给患者;

S400.患者根据所述用户秘密值和第二用户私钥生成第三用户私钥,根据所述第一用户公钥和第二用户公钥生成第三用户公钥;

S500.患者对医疗数据文件进行签名和加密,并将签名和加密后的医疗数据文件发送给云服务器,云服务器验证医疗数据文件的完整性,若验证通过,则云服务器存储所述医疗数据文件;

S600.验证者在接收到患者发送的审计代理请求任务后生成最终审计挑战信息,并将最终审计挑战信息发送给云服务器;

S700.云服务器在接收到最终审计挑战信息后生成响应审计证明信息,并将响应审计证明信息发送给验证者;

S800.验证者基于最终审计挑战信息和响应审计证明信息验证医疗数据文件是否完整无缺,并输出验证结果,若该医疗数据文件完整,则结束验证,若该医疗数据文件不完整,则执行S900;

S900.患者向云服务器发送用户自认证信息,云服务器对所述用户自认证信息进行验证,若验证成功,则云服务器向患者支付赔偿金,若验证失败,则云服务器拒绝赔偿,并将该患者的匿名身份信息提交给密钥生成中心;

所述S100包括以下步骤:

S110.密钥生成中心获取安全参数λ;

S120.密钥生成中心选择两个大素数p和q,并在有限域 上定义一个椭圆曲线E,其中,P是阶为q的加法循环群G=<P>的一个生成元,大素数p和q的比特大小为|p|=|q|=λ;

S130.密钥生成中心选择一个随机值 作为医疗网络信息系统的系统主私钥,并计算对应的系统主公钥Ppub=sP,其中, 是一个q模剩余类环;

S140.密钥生成中心设置伪随机函数 伪随机排列其中n'表示伪随机排列生成的序列的数量;

S150.密钥生成中心定义第一哈希函数 第二哈希函数第三哈希函数 第四哈希函数

第五哈希函数 第六哈希函数

* *

第七哈希函数 {0,1} →{0,1} ,其中,*、l和l1分别表示不同比特位长度的集合;

S160.密钥生成中心保存系统主私钥s,并公开系统参数所述S200包括以下步骤:

S210.患者选择一个随机值 作为用户秘密值,并计算第一用户公钥X=xP;

S220.患者计算其匿名身份信息 其中,Time表示匿名身份信息l

Aid的有效期,Id∈{0,1}为患者的真实身份信息;

S230.患者将用户注册信息Reg=(Aid,Pw,X,Time)发送给密钥生成中心,其中,为患者的初始登录密码;

所述S300包括以下步骤:

S310.密钥生成中心利用系统主密钥s从接收到的用户注册信息Reg=(Aid,Pw,X,Time)中恢复患者的真实身份信息S320.密钥生成中心设置患者的最终登录密码为 并将(Aid,Pw)添加到用户注册列表中;

S330.密钥生成中心选择一个随机值 并计算第二用户公钥R=rP,然后计算对应的第二用户私钥μ=r+sh2(Aid,Ppub,X,R)(mod q);

S340.密钥生成中心将二元组(μ,R)发送给患者;

所述S400包括以下步骤:

S410.患者通过方程一验证第二用户私钥是否正确有效,若方程一成立,则患者接受所述二元组(μ,R),否则,患者要求密钥生成中心重新生成第二用户私钥,所述方程一为:S420.患者设置第三用户私钥为Ssk=(x,μ),其对应的第三用户公钥为PK=(X,R);

所述S500包括以下步骤:

S510.患者选择一个随机值 并计算第一文件标识符Tag=h3(Aid,fname,n,Δ),*其中,fname∈{0,1} 为医疗数据文件 的文件名,n表示医疗数据文件分成的数据块的数量;

S520.患者从剩余类环 中随机选择一个秘密值κ作为伪随机函数Prf的输入,并对每一个医疗数据块mi进行盲化加密: 其中, 为医疗数据块mi进行盲化加密得到的密文数据块;i表示某个位置或顺序的下标,其范围是1≤i≤n;

S530.患者选择一个随机值 并计算对应的倍点值βi=αiP和第一哈希值S540.患者生成每个密文数据块 的签名标签δi=xh5(Aid,Tag,i,PK)+αiVi+μ(mod q),其中i∈[1,n];

S550.患者生成密文数据文件 的签名标签集φ={(βi,δi)}1≤i≤n,并*发送存储数据Ω=(Aid,fname,Δ,M ,φ)到云服务器进行存储;

S560.云服务器计算第二文件标识符Tag'=h3(Aid,fname,n,Δ)和第二哈希值并通过方程二来验证所述存储数据的完整性,如果方程二不成立,则云服务器发送第一状态消息给该患者,并拒绝存储该存储数据Ω;否则,云服务器接受存储数据Ω,并向该患者发送第二状态消息,所述方程二为:其中,公钥集W=R+Ppubh2(Aid,Ppub,X,R);

*

S570.患者接收到第二状态消息时,计算一个身份认证标签σ=xh6(Aid,Tag,M ,φ,PK);

所述S600包括以下步骤:

S610.验证者在收到患者的审计代理请求任务 后,选择一个初始审计挑战消息chal={c,k1,k2},其中 表示审计代理授权凭证信息, 是应该挑战的文件块的数量, 分别作为伪随机序列Prp和伪随机函数Prf的随机密钥;

S620.验证者将最终审计挑战信息Chal=(Aid,fname,chal)发送给云服务器;

所述S700包括以下步骤:

S710.云服务器获取两个密钥值k1,k2,并调用伪随机函数Prf和伪随机序列Prp来计算被随机挑战到的第一数据块序号 以及计算对应的第一随机值 其中1≤j≤c;

S720.云服务器根据文件位置定位标识Local={Aid,fname,ij}1≤j≤c定位到对应的数据文件、以及检索出被挑战的数据块 和签名信息S730.云服务器计算组合公钥值 聚合签名信息第一部分 和聚合签名信息第二部分

S740.云服务器发送响应审计证明信息Proof={Y,ξ,δ}给验证者;

所述S800包括以下步骤:

S810.验证者获取两个密钥值k1,k2,并调用伪随机函数Prf和伪随机序列Prp来计算随机挑战到的第二数据块序号 以及计算对应的第二随机值 其中1≤j≤c;

S820.验证者通过方程三审计医疗数据文件的完整性,若方程三成立,则验证者输出验证成功的审计结果,并结束验证,否则输出验证失败的审计结果,并执行S900;所述方程三为:所述S900包括以下步骤:

S910.患者将对应的用户自认证信息(Aid,fname′,σ)发送给云服务器,其中,fname′表示已被损坏或丢失的数据文件名;

S920.云服务器接收到用户自认证信息(Aid,fname′,σ)后,恢复已被损坏的医疗数据块;

S930.云服务器计算第三文件标识符Tag”=h3(Aid,fname′,n,Δ),并通过方程四验证该患者的用户自认证信息,若方程四成立,则云服务器向患者支付相应的赔偿金,否则,云服务器拒绝赔偿,并将该患者标记为冒充者,并将该冒充者对应的匿名身份Aid提交给密钥生成中心,从而溯源和揭露该冒充者,所述方程四为:

说明书 :

基于无证书的身份匿名隐私保护医疗数据完整性验证方法

技术领域

[0001] 本发明属于网络空间安全下的面向云存储外包医疗数据的隐私保护技术领域,特别是涉及一种基于无证书的身份匿名隐私保护医疗数据完整性验证方法。

背景技术

[0002] 当前,随着国家老龄化进程的加快和各种慢性疾病的常态化,以及人们对“互联网+大健康医疗”服务需求的不断增加,使得各大医疗机构或健康服务中心在救治病人、防御疾病、应急处理、远程医疗等方面都已面临着一个巨大的挑战。医疗网络信息系统(Medical Cyber‑Physical Systems,MCPSs)作为一个智能系统,它可以利用各种类型的智能传感器或无线医疗设备收集用户的生命体征,并持续监测他们的健康状况,这就使得医疗网络信息系统在实际的医疗环境中发挥着重要的作用。例如,使得远程医生能够为患者做出准确的诊断,实现各级医疗资源分级化分配与管理,为患者提供多样化的医疗服务等。然而,对患者进行持续监测并将其医疗数据记录在本地存储磁盘将给传统的医疗网络信息系统带来繁重的存储和管理负担,同时,这也不利于医疗的共享。值得注意的是在医疗网络信息系统,患者的医疗数据不仅代表基本生理特征(如温度、呼吸频率、血压、心率等),还包括脑电图、X光线胸片等大容量的图像数据,这些数据文件需要被远程医生快速访问和处理,并及时为患者反馈治疗与诊断信息。传统的医疗网络信息系统无法解决这些固有的缺点。幸运的是,随着云计算的快速发展,基于云辅助的医疗网络信息系统可以为云用户提供强大的信息处理能力和海量数据存储空间。同时,通过使用基于云辅助的医疗网络信息系统,监护人可以实时了解患者的健康状况,可信的医学研究中心也可以借助云辅助的医疗网络信息系统进行医学大数据分析,从而为对某些疾病提供正确的诊断与用药。
[0003] 虽然基于云辅助的网络信息系统为云用户带来了众多的好处,但在医疗数据外包存储过程中仍面临多种潜在的安全威胁,可能会影响医院和患者对云存储服务的信任。其中,医疗数据隐私保护和外包数据完整性验证是两个亟待解决的安全问题。一方面,医疗数据是极其敏感的,其在传输、存储和共享过程中都是在公共开放的网络环境中进行,因此医疗数据外包的首要任务是保证医疗数据的机密性与隐私保护。另一方面,由于云服务器会因为自然灾害或人为错误而使得硬件故障、软件Bugs,从而可能会破坏患者的外包存储数据的完整性。事实上,云服务器可能会删除用户(包括病人和医护人员)许久未访问的医疗数据来节省自身存储空间,却对外声称这些医疗数据是完整无缺的。更糟糕的是,恶意的云服务器可能会篡改某些患者的一些医疗数据,以获取额外的利益或迎合他人。然而,轻微的数据损坏即可能导致患者的误诊,甚至给患者带来死亡的威胁。因此,对存储在云服务器上的医疗数据进行定期的完整性审计是一件必要的程序。
[0004] 数据完整性审计机制可以有效检查存储在云服务器上的医疗数据是否完整。迄今为止,已经提出了大量的数据完整性审计方案,但绝大多数方案都是构造在基于公钥基础设施(Public Key Infrastructure,PKI)或基于身份的公钥密码机制(Identity‑based Public Key Cryptography,ID‑based PKC)上的,这些方案往往面临着复杂的公钥证书管理的问题或忍受着密钥托管的固有缺陷。基于无证书公钥密码机制(Certificateless‑based Public Key Cryptography,CPKC)是同时解决公钥证书管理和密钥托管问题的一种很好的选择,但其也面临着各种各型的协议漏洞攻击。与此同时,基于无证书公钥密码机制中的密钥生成中心被视为一个具有被动且易妥协特征的实体,这使得它无法像基于身份的公钥密码系统模型中密钥生成中心(Key Generation Center,KGC)那样参与患者的身份匿名计算。众所周知,在云辅助医疗网络信息环境中,患者的身份隐私保护与医疗数据的机密性一样重要。因为医疗数据往往与患者的身份牢牢的捆绑在一起,而患者总是不希望除医生以外的人知晓自己数据隐私。在数据被共享时,他们也总是不愿意向医疗数据分析中心提供与自己真实身份相关的敏感医疗数据。因此,为了在基于云辅助的医疗网络信息中实现患者的身份隐私保护,并进一步监视和溯源有恶意行为的患者的真实身份,设计出一个基于无证书的条件身份匿名隐私保护完整性审计方案在实际的应用环境中是更具有吸引力和实际价值的。
[0005] 除了上述障碍之外,我们还注意到,尽管许多研究人员对具有数据恢复和身份匿名性的数据完整性审计机制进行了深入的研究,但他们并未考虑补偿机制。也就是,当验证者的对存储在云服务器上的外包医疗数据进行审计挑战‑验证,其最终的审计验证结果为“False”,云服务器不仅要快速定位和恢复被损坏的医疗数据块,还要对受损的患者进行一定程度的理赔。对于受损的患者来说,他们需要向云服务器提供有力的证据来证明他/她是真正的数据所有者,而其他人是无法冒充该患者来获得这个补偿金。需要注意的是系统中的患者是以匿名的形式存在,而直接地将匿名身份发送给密钥生成中心KGC进行认证,而这样操作不仅不能有效地核实谁是真正的原始数据拥有者,反而可能会泄露患者的身份隐私信息。那么,如何在不泄露患者的任何敏感身份信息的情况下又能对真实数据上传者进行安全补偿是一个非常现实应用意义但又充满困难的研究内容。

发明内容

[0006] 本发明的目的在于克服现有技术的一项或多项不足,提供一种基于无证书的身份匿名隐私保护医疗数据完整性验证方法。
[0007] 本发明的目的是通过以下技术方案来实现的:基于无证书的身份匿名隐私保护医疗数据完整性验证方法,应用于医疗网络信息系统,所述医疗网络信息系统包括患者、密钥生成中心、云服务器和验证者,所述患者分别与密钥生成中心、云服务器和验证者通信连接,所述云服务器与验证者通信连接。所述身份匿名隐私保护医疗数据完整性验证方法包括:
[0008] S100.密钥生成中心生成医疗网络信息系统的系统参数;
[0009] S200.患者计算用户秘密值、匿名身份信息和第一用户公钥,并根据用户秘密值和匿名身份信息生成用户注册信息,并将用户注册信息发送给密钥生成中心;
[0010] S300.密钥生成中心根据所述用户注册信息生成第二用户公钥和第二用户私钥,并将所述第二用户公钥和第二用户私钥发送给患者;
[0011] S400.患者根据所述用户秘密值和第二用户私钥生成第三用户私钥,根据所述第一用户公钥和第二用户公钥生成第三用户公钥;
[0012] S500.患者对医疗数据文件进行签名和加密,并将签名和加密后的医疗数据文件发送给云服务器,云服务器验证医疗数据文件的完整性,若验证通过,则云服务器存储所述医疗数据文件;
[0013] S600.验证者在接收到患者发送的审计代理请求任务后生成最终审计挑战信息,并将最终审计挑战信息发送给云服务器;
[0014] S700.云服务器在接收到最终审计挑战信息后生成响应审计证明信息,并将响应审计证明信息发送给验证者;
[0015] S800.验证者基于最终审计挑战信息和响应审计证明信息验证医疗数据文件是否完整无缺,并输出验证结果,若该医疗数据文件完整,则结束验证,若该医疗数据文件不完整,则执行S900;
[0016] S900.患者向云服务器发送用户自认证信息,云服务器对所述用户自认证信息进行验证,若验证成功,则云服务器向患者支付赔偿金,若验证失败,则云服务器拒绝赔偿,并将该患者的匿名身份信息提交给密钥生成中心。
[0017] 优选的,所述S100包括以下步骤:
[0018] S110.密钥生成中心获取安全参数λ;
[0019] S120.密钥生成中心选择两个大素数p和q,并在有限域 上定义一个椭圆曲线E,其中,P是阶为q的加法循环群G=<P>的一个生成元,大素数p和q的比特大小为|p|=|q|=λ;
[0020] S130.密钥生成中心选择一个随机值 作为医疗网络信息系统的系统主私钥,并计算对应的系统主公钥Ppub=sP,其中, 是一个q模剩余类环;
[0021] S140.密钥生成中心设置伪随机函数Prf: Prp:其中n'表示伪随机排列生成的序列的数量;
[0022] S150.密钥生成中心定义第一哈希函数h1: 第二哈希函数h2:第三哈希函数h3: 第四哈希函数h4:
第五哈希函数h5: 第六哈希函数h6:
* *
第七哈希函数 {0,1} →{0,1} ,其中,*、l和l1分别表示
不同比特位长度的集合;
[0023] S 1 6 0 .密 钥 生 成 中 心 保 存 系 统 主 私 钥 s ,并 公 开 系 统 参 数[0024] 优选的,所述S200包括以下步骤:
[0025] S210.患者选择一个随机值 作为用户秘密值,并计算第一用户公钥X=xP;
[0026] S220.患者计算其匿名身份信息 其中,Time表示匿名身份l
信息Aid的有效期,Id∈{0,1}为患者的真实身份信息;
[0027] S230.患者将用户注册信息Reg=(Aid,Pw,X,Time)发送给密钥生成中心,其中,为患者的初始登录密码。
[0028] 优选的,所述S300包括以下步骤:
[0029] S310.密钥生成中心利用系统主密钥s从接收到的用户注册信息Reg=(Aid,Pw,X,Time)中恢复患者的真实身份信息
[0030] S320.密钥生成中心设置患者的最终登录密码为 并将(Aid,Pw)添加到用户注册列表中;
[0031] S330.密钥生成中心选择一个随机值 并计算第二用户公钥R=rP,然后计算对应的第二用户私钥μ=r+sh2(Aid,Ppub,X,R)(mod q);
[0032] S340.密钥生成中心将二元组(μ,R)发送给患者。
[0033] 优选的,所述S400包括以下步骤:
[0034] S410.患者通过方程一验证第二用户私钥是否正确有效,若方程一成立,则患者接受所述二元组(μ,R),否则,患者要求密钥生成中心重新生成第二用户私钥,所述方程一为:
[0035]
[0036] S420.患者设置第三用户私钥为Ssk=(x,μ),其对应的第三用户公钥为PK=(X,R)。
[0037] 优选的,所述S500包括以下步骤:
[0038] S510.患者选择一个随机值 并计算第一文件标识符Tag=h3(Aid,fname,*n,Δ),其中,fname∈{0,1} 为医疗数据文件 的文件名,n表示医疗数
据文件分成的数据块的数量;
[0039] S520.患者从剩余类环 中随机选择一个秘密值κ作为伪随机函数Prf的输入,并对每一个医疗数据块mi进行盲化加密: 其中, 为医疗数据块mi进行盲化加密得到的密文数据块;i表示某个位置或顺序的下标,其范围是1≤i≤n;
[0040] S530.患者选择一个随机值 并计算对应的倍点值βi=αiP和第一哈希值[0041] S540.患者生成每个密文数据块 的签名标签δi=xh5(Aid,Tag,i,PK)+αiVi+μ(mod q),其中i∈[1,n];
[0042] S550.患者生成密文数据文件 的签名标签集φ={(βi,*
δi)}1≤i≤n,并发送存储数据Ω=(Aid,fname,Δ,M ,φ)到云服务器进行存储;
[0043] S560.云服务器计算第二文件标识符Tag'=h3(Aid,fname,n,Δ)和第二哈希值并通过方程二来验证所述存储数据的完整性,如果方程二不成立,则云服务器发送第一状态消息给该患者,并拒绝存储该存储数据Ω;否则,云服务器接受存储数据Ω,并向该患者发送第二状态消息,所述方程二为:
[0044]
[0045] 其中,公钥集W=R+Ppubh2(Aid,Ppub,X,R);
[0046] S570.患者接收到第二状态消息时,计算一个身份认证标签σ=xh6(Aid,Tag,M*,φ,PK)。
[0047] 优选的,所述S600包括以下步骤:
[0048] S610.验证者在收到患者的审计代理请求任务 后,选择一个初始审计挑战消息chal={c,k1,k2},其中 表示审计代理授权凭证信息, 是应该挑战的文件块的数量, 分别作为伪随机序列Prp和伪随机函数Prf的随机密钥;
[0049] S620.验证者将最终审计挑战信息Chal=(Aid,fname,chal)发送给云服务器。
[0050] 优选的,所述S700包括以下步骤:
[0051] S710.云服务器获取两个密钥值k1,k2,并调用伪随机函数Prf和伪随机序列Prp来计算被随机挑战到的第一数据块序号 以及计算对应的第一随机值其中1≤j≤c;
[0052] S720.云服务器根据文件位置定位标识Local={Aid,fname,ij}1≤j≤c定位到对应的数据文件、以及检索出被挑战的数据块 和签名信息
[0053] S730.云服务器计算组合公钥值 聚合签名信息第一部分 和聚合签名信息第二部分
[0054] S740.云服务器发送响应审计证明信息Proof={Y,ξ,δ}给验证者。
[0055] 优选的,所述S800包括以下步骤:
[0056] S810.验证者获取两个密钥值k1,k2,并调用伪随机函数Prf和伪随机序列Prp来计算随机挑战到的第二数据块序号 以及计算对应的第二随机值 其中1≤j≤c;
[0057] S820.验证者通过方程三审计医疗数据文件的完整性,若方程三成立,则验证者输出验证成功的审计结果,并结束验证,否则输出验证失败的审计结果,并执行S900;所述方程三为:
[0058]
[0059] 优选的,所述S900包括以下步骤:
[0060] S910.患者将对应的用户自认证信息(Aid,fname′,σ)发送给云服务器,其中,fname′表示已被损坏或丢失的数据文件名;
[0061] S920.云服务器接收到用户自认证信息(Aid,fname′,σ)后,恢复已被损坏的医疗数据块;
[0062] S930.云服务器计算第三文件标识符Tag”=h3(Aid,fname′,n,Δ),并通过方程四验证该患者的用户自认证信息,若方程四成立,则云服务器向患者支付相应的赔偿金,否则,云服务器拒绝赔偿,并将该患者标记为冒充者,并将该冒充者对应的匿名身份Aid提交给密钥生成中心,从而溯源和揭露该冒充者,所述方程四为:
[0063]
[0064] 本发明的有益效果是:
[0065] (1)本发明通过结合云计算技术和无证书的密码机制提出了一个基于无证书的条件身份匿名隐私保护医疗数据完整性验证方法,该方法使用了轻量级的盲化过滤技术来确保医疗数据的机密性与隐私保护,在此基础上,该方法使用基于椭圆曲线签名算法来进一步对加了密的医疗数据块进行签名,这不仅确保了外包存储医疗数据的正确性和完整性验证,而且从根本上解决了医疗数据块签名计算、外包数据审计挑战‑验证过程中的通信开销和计算成本过大的问题;
[0066] (2)本发明利用安全的密钥交换技术和使用基于椭圆曲线的数据签名算法在无证书密码机制上实现了患者条件身份隐私,即,在医疗信息系统中的任何实体(除了密钥生成中心)都无法知晓患者的真实身份;即使攻击者(例如云服务器或验证者)打破了密文的不可分辨性,从而获得了对应医疗数据的明文信息,它也不能推断出相应医疗数据的实际拥有者;同时,当存在有恶意行为的患者滥用该医疗网络信息系统时,本方法也能有效地溯源,追踪和撤销行为不端恶意用户;
[0067] (3)本发明提出了一个安全且实际的补偿机制,任何用户都不能冒充真实的原始数据拥有者来欺骗云服务器,从而获得补偿金;此外,本方法在随机语言模型下是可证明安全的,其能够抵御公钥替换攻击、主私钥泄露攻击,任何攻击者都无法成功伪造有效的数据块标签以通过原始存储数据的正确性验证,而恶意的云服务器也不能生成一个有效的响应审计证明信息来通过验证者的数据完整性审计验证方程。

附图说明

[0068] 图1为医疗网络信息系统的一种组成示意图;
[0069] 图2为基于无证书的身份匿名隐私保护医疗数据完整性验证方法的一种流程图。

具体实施方式

[0070] 下面将结合实施例,对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有付出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0071] 参阅图1‑图2,本实施例提供了一种基于无证书的身份匿名隐私保护医疗数据完整性验证方法:
[0072] 基于无证书的身份匿名隐私保护医疗数据完整性验证方法,应用于医疗网络信息系统,如图1所示,所述医疗网络信息系统包括患者、密钥生成中心、云服务器和验证者,所述患者分别与密钥生成中心、云服务器和验证者通信连接,所述云服务器与验证者和通信连接。
[0073] 如图2所示,所述身份匿名隐私保护医疗数据完整性验证方法包括:
[0074] S100.密钥生成中心生成医疗网络信息系统的系统参数。
[0075] 在一个实施例中,所述S100包括以下步骤:
[0076] S110.密钥生成中心获取安全参数λ。
[0077] S120.密钥生成中心选择两个大素数p和q,并在有限域 上定义一个椭圆曲线E,其中,P是阶为q的加法循环群G=<P>的一个生成元,大素数p和q的比特大小为|p|=|q|=λ。
[0078] S130.密钥生成中心选择一个随机值 作为医疗网络信息系统的系统主私钥,并计算对应的系统主公钥Ppub=sP,其中, 是一个q模剩余类环。
[0079] S140.密钥生成中心设置伪随机函数Prf: Prp:其中n'表示伪随机排列生成的序列的数量。
[0080] S150.密钥生成中心定义第一哈希函数h1: 第二哈希函数h2:第三哈希函数h3: 第四哈希函数h4:
第五哈希函数h5: 第六哈希函数h6:
* *
第七哈希函数 {0,1} →{0,1} ,其中,*、l和l1分别表示
不同比特位长度的集合。
[0081] S 1 6 0 .密 钥 生 成 中 心 保 存 系 统 主 私 钥 s ,并 公 开 系 统 参 数[0082] S200.患者计算用户秘密值、匿名身份信息和第一用户公钥,并根据用户秘密值和匿名身份信息生成用户注册信息,并将用户注册信息发送给密钥生成中心。
[0083] 在一个实施例中,所述S200包括以下步骤:
[0084] S210.患者选择一个随机值 作为用户秘密值,并计算第一用户公钥X=xP。
[0085] S220.患者计算其匿名身份信息 其中,Time表示匿名身份l
信息Aid的有效期,Id∈{0,1}为患者的真实身份信息。
[0086] S230.患者将用户注册信息Reg=(Aid,Pw,X,Time)发送给密钥生成中心,其中,为患者的初始登录密码。
[0087] S300.密钥生成中心根据所述用户注册信息生成第二用户公钥和第二用户私钥,并将所述第二用户公钥和第二用户私钥发送给患者。
[0088] 在一个实施例中,所述S300包括以下步骤:
[0089] S310.密钥生成中心利用系统主密钥s从接收到的用户注册信息Reg=(Aid,Pw,X,Time)中恢复患者的真实身份信息
[0090] S320.密钥生成中心设置患者的最终登录密码为 并将(Aid,Pw)添加到用户注册列表中。
[0091] S330.密钥生成中心选择一个随机值 并计算第二用户公钥R=rP,然后计算对应的第二用户私钥μ=r+sh2(Aid,Ppub,X,R)(mod q)。
[0092] S340.密钥生成中心将二元组(μ,R)发送给患者。
[0093] S400.患者根据所述用户秘密值和第二用户私钥生成第三用户私钥,根据所述第一用户公钥和第二用户公钥生成第三用户公钥。
[0094] 在一个实施例中,所述S400包括以下步骤:
[0095] S410.患者通过方程一验证第二用户私钥是否正确有效,若方程一成立,则患者接受所述二元组(μ,R),否则,患者要求密钥生成中心重新生成第二用户私钥,所述方程一为:
[0096]
[0097] S420.患者设置第三用户私钥为Ssk=(x,μ),其对应的第三用户公钥为PK=(X,R)。
[0098] S500.患者对医疗数据文件进行签名和加密,并将签名和加密后的医疗数据文件发送给云服务器,云服务器验证医疗数据文件的完整性,若验证通过,则云服务器存储所述医疗数据文件。
[0099] 在一个实施例中,所述S500包括以下步骤:
[0100] S510.患者选择一个随机值 并计算第一文件标识符Tag=h3(Aid,fname,*n,Δ),其中,fname∈{0,1} 为医疗数据文件 的文件名,n表示医疗数
据文件分成的数据块的数量。
[0101] S520.患者从剩余类环 中随机选择一个秘密值κ作为伪随机函数Prf的输入,并对每一个医疗数据块mi进行盲化加密: 其中, 为医疗数据块mi进行盲化加密得到的密文数据块;i表示某个位置或顺序的下标,其范围是1≤i≤n。
[0102] S530.患者选择一个随机值 并计算对应的倍点值βi=αiP和第一哈希值[0103] S540.患者生成每个密文数据块 的签名标签δi=xh5(Aid,Tag,i,PK)+αiVi+μ(mod q),其中i∈[1,n]。
[0104] S550.患者生成密文数据文件 的签名标签集φ={(βi,*
δi)}1≤i≤n,并发送存储数据Ω=(Aid,fname,Δ,M ,φ)到云服务器进行存储。
[0105] S560.云服务器计算第二文件标识符Tag'=h3(Aid,fname,n,Δ)和第二哈希值并通过方程二来验证所述存储数据的完整性,如果方程二不成立,则云服务器发送第一状态消息给该患者,并拒绝存储该存储数据Ω;否则,云服务器接受存储数据Ω,并向该患者发送第二状态消息,所述方程二为:
[0106]
[0107] 其中,公钥集W=R+Ppubh2(Aid,Ppub,X,R)。
[0108] 一般的,所述第一状态消息为Error,表示验证失败;所述第二状态消息为Success,表示验证成功。
[0109] S570.患者接收到第二状态消息时,计算一个身份认证标签σ=xh6(Aid,Tag,M*,φ,PK)。
[0110] 在又一个实施例中,患者在计算身份认证标签后清空本地存储数据Ω中除了用户自认证信息(Aid,fname,σ)以外的数据。
[0111] S600.验证者在接收到患者发送的审计代理请求任务后生成最终审计挑战信息,并将最终审计挑战信息发送给云服务器。
[0112] 在一个实施例中,所述S600包括以下步骤:
[0113] S610.验证者在收到患者的审计代理请求任务 后,选择一个初始审计挑战消息chal={c,k1,k2},其中 表示审计代理授权凭证信息, 是应该挑战的文件块的数量, 分别作为伪随机序列Prp和伪随机函数Prf的随机密钥。
[0114] S620.验证者将最终审计挑战信息Chal=(Aid,fname,chal)发送给云服务器。
[0115] S700.云服务器在接收到最终审计挑战信息后生成响应审计证明信息,并将响应审计证明信息发送给验证者。
[0116] 在一个实施例中,所述S700包括以下步骤:
[0117] S710.云服务器获取两个密钥值k1,k2,并调用伪随机函数Prf和伪随机序列Prp来计算被随机挑战到的第一数据块序号 以及计算对应的第一随机值其中1≤j≤c。
[0118] S720.云服务器根据文件位置定位标识Local={Aid,fname,ij}1≤j≤c定位到对应的数据文件、以及检索出被挑战的数据块 和签名信息
[0119] S730.云服务器计算组合公钥值 聚合签名信息第一部分 和聚合签名信息第二部分
[0120] S740.云服务器发送响应审计证明信息Proof={Y,ξ,δ}给验证者。
[0121] S800.验证者基于最终审计挑战信息和响应审计证明信息验证医疗数据文件是否完整无缺,并输出验证结果,若该医疗数据文件完整,则结束验证,若该医疗数据文件不完整,则执行S900。
[0122] 在一个实施例中,所述S800包括以下步骤:
[0123] S810.验证者获取两个密钥值k1,k2,并调用伪随机函数Prf和伪随机序列Prp来计算随机挑战到的第二数据块序号 以及计算对应的第二随机值 其中1≤j≤c。
[0124] S810中的密钥值k1,k2与S710中的密钥值k1,k2相同。
[0125] S820.验证者通过方程三审计医疗数据文件的完整性,若方程三成立,则验证者输出验证成功的审计结果,并结束验证,否则输出验证失败的审计结果,并执行S900;所述方程三为:
[0126]
[0127] S900.患者向云服务器发送用户自认证信息,云服务器对所述用户自认证信息进行验证,若验证成功,则云服务器向患者支付赔偿金,若验证失败,则云服务器拒绝赔偿,并将该患者的匿名身份信息提交给密钥生成中心。
[0128] 在一个实施例中,所述S900包括以下步骤:
[0129] S910.患者将对应的用户自认证信息(Aid,fname′,σ)发送给云服务器,其中,fname′表示已被损坏或丢失的数据文件名。
[0130] S920.云服务器接收到用户自认证信息(Aid,fname′,σ)后,恢复已被损坏的医疗数据块。
[0131] S930.云服务器计算第三文件标识符Tag”=h3(Aid,fname′,n,Δ),并通过方程四验证该患者的用户自认证信息,若方程四成立,则云服务器向患者支付相应的赔偿金,否则,云服务器拒绝赔偿,并将该患者标记为冒充者,并将该冒充者对应的匿名身份Aid提交给密钥生成中心,从而溯源和揭露该冒充者,所述方程四为:
[0132]
[0133] 本实施例中基于无证书的身份匿名隐私保护医疗数据完整性验证方法的正确性推导如下:
[0134] 患者PU通过方程一验证密钥生成中心KGC发过来的第二用户私钥的正确性和有效性,方程一的推导过程如下:
[0135]
[0136] 云服务器通过方程二检查患者PU上传的存储数据的完整性,方程二的推导过程如下:
[0137]
[0138] 验证者通过方程三检存储在云服务器上的医疗数据文件的完整性,方程三的推导过程如下:
[0139]
[0140] 以上所述仅是本发明的优选实施方式,应当理解本发明并非局限于本文所披露的形式,不应看作是对其他实施例的排除,而可用于各种其他组合、修改和环境,并能够在本文所述构想范围内,通过上述教导或相关领域的技术或知识进行改动。而本领域人员所进行的改动和变化不脱离本发明的精神和范围,则都应在本发明所附权利要求的保护范围内。