基于受限可净化签名的电子病历安全共享方法及系统

文档序号:33946044发布日期:2023-04-26 08:01阅读:95来源:国知局
基于受限可净化签名的电子病历安全共享方法及系统

本发明属于医疗数据共享,具体涉及一种基于受限可净化签名的电子病历安全共享方法及系统。


背景技术:

1、电子病历(ehr)作为提高患者医疗保健质量和满意度的有效方案被广泛应用于医疗管理、科学研究和保险理赔等场景。目前常使用数字签名技术来保护医疗信息的真实性和完整性。对经过签名的数据进行任何轻微的修改都将导致签名失效,从而无法验证数据的有效性。但是,对于某些不需要完整的电子病历的场景,如果允许患者从原始数据中删除某些敏感数据将有助于保护个人隐私。例如,当电子病历被提供给其他医疗机构或科学机构用以研究分析时,与病症无关的个人信息(例如住址、医保卡号等)是需要被隐藏的。当电子病历被提供给保险公司进行医疗索赔时,隐藏与索赔无关的其他敏感病症可以避免对患有某种疾病的患者的歧视。可以采用的一种解决方案是要求医生仅签署需要被共享的部分信息。但是,该方案要求每次共享电子病历的新子集时,医生都要重新签名,这将导致高昂的计算成本。因此,如何为患者授予合适的权限以更改签名病历是一个重要的研究问题。在理想情况下,甚至不用和原始签名者进行交互就可以完成对签名消息的修改且保持签名有效性。

2、可净化签名(sanitizable signature schemes,sss)在2005年由ateniese等人提出,其允许指定的第三方(sanitizer,净化者)以受控且非交互式的方式更改签名的数据,且生成的签名仍能被成功验证,相比于传统数字签名,更适用于某些不需要完整电子病历的场景,其授予患者对自身病历一定的修改权限,允许患者从原始数据中删除某些敏感数据以保护个人隐私。ateniese等人介绍了sss的安全属性,包括不可伪造性、不可篡改性、隐私性、透明性和可审计性。这些属性对于医疗数据安全共享都是必要的。其中,不可伪造性确保用户不能在没有相应密钥的情况下生成有效的签名。不可篡改性确保净化者无法对未经签名者允许的内容进行修改。隐私性确保没有人能恢复已经被净化的部分消息。透明性确保了由签名者和净化者计算的签名是不可区分的。可审计性保证恶意的签名者和净化者都不能否认由自己生成的消息签名对。目前绝大多数满足可审计性的可净化签名方案仅允许由签名者生成关于消息签名对生成者的证明,这导致当签名者因丢失密钥或其他原因不能生成证明时,无法判断消息是否经过净化。brzuska等人提出非交互式的公开可审计性,其可以在无需签名者或净化者提供任何信息的情况下推断出生成消息签名对的责任方,解决了原始方案需要签名者私钥才能揭示责任方的问题,但这种可审计性过于强大,与透明性是无法同时满足的。因此,如何定义强度合适的可审计性,在不影响透明性的同时又允许签名者和净化者各自独立地生成证明是一个重要问题。

3、可净化签名在为医疗数据共享提供灵活高效的操作支持的同时也会导致净化者修改权限的滥用,从而引发欺诈问题。例如,患者有可能伪造病历来骗取高额保险金,而医保商保领域的欺诈行为会严重危害行业秩序,给社会带来负担。因此,对净化者的权限加以限制是另一个重要问题。

4、目前仅有少数的工作将重心放在限制净化者的权限上,它们提出扩展的可净化签名方案(extened sss),通过将修改内容固定为某个特定集合、对不同的消息块进行同样的修改、限制修改消息块的数量和签名消息的版本数来降低净化者修改消息的能力。但其中大部分方案由于签名算法需要交互或没有考虑到不可链接性和不可见性等原因,并不适用于医疗场景。在电子病历的安全共享中,不可链接性和不可见性是十分重要的。brzuska等人在2010年提出不可链接性的概念,并采用群签名实现了额外满足不可链接性的可净化签名方案。不可链接性确保经过净化的签名无法和原始签名相链接。满足不可链接性的签名可以防止电子病历的接收者可以相互串通,重建完整的电子病历。

5、不可见性的概念由camenisch等人正式提出。不可见性确保消息块是否允许修改的信息对于没有签名者密钥和净化者密钥的外部方而言是保密的,即验证者无法确定哪些消息块是可修改的,从而防止验证者推测出患者的敏感信息。sas方案利用等价类签名(equivalence class signature,eqs)来构造sss,对消息和签名进行重新随机化(re-randomization),以同时满足以上两种属性,并且对可修改的消息块数量进行限制,使其不超过。净化者造假病历通常涉及大量的病历字段的修改,因此限制可修改的病历字段数量,即消息块数量,可以一定程度上防止净化者伪造病历。

6、然而,以上工作都没有给出具备时间限制的可净化签名方案。如果患者在出院后仍保有修改电子病历的权限,则将导致病历不一致,或引起医疗纠纷等问题。因此,为了进一步确保医疗数据的安全性和正确性,防止修改权限的滥用,有必要将时间限制引入可净化签名,为修改操作增加到期时间,仅允许在到期时间之前对病历进行修改。


技术实现思路

1、本发明的目的在于提供一种基于受限可净化签名的电子病历安全共享方法及系统,该方法及系统有利于提高电子病历的安全性。

2、为实现上述目的,本发明采用的技术方案是:一种基于受限可净化签名的电子病历安全共享方法,包括:

3、(1)在系统建立阶段,可信机构ta运行setup算法,生成系统公共参数mpk和主密钥msk;并将mpk作为输入,分别运行kgensig和kgensan算法,为签名者和净化者生成密钥对(pks,sks)和(pkz,skz),并分别将其发送给签名者和净化者;

4、(2)在签名阶段,签名者生成净化者的电子病历m,并运行sign算法,在当前时间t为消息m生成签名σ;同时,签名者指定病历中的哪些字段是允许修改的、可修改的字段数量上限γ以及修改操作的时间限制τ;

5、(3)在净化阶段,净化者对消息m进行净化;净化者指定要修改的消息块mod,生成新的消息m′,并运行sanit算法,在当前时间t′为消息m′生成签名σ′;

6、(4)在验证阶段,验证者运行verify算法验证消息签名对(m,σ)的有效性;verify算法输出一个比特位b,b=1表示(m,σ)是有效的,b=0则表示无效;

7、(5)若发生关于消息签名对的生成者的争议,签名者和净化者各自生成证明发送给ta;签名者和净化者各自运行proofsig和proofsan算法,生成证明πsig、πsan,将其发送给ta,以证明自己是或不是消息签名对(m,σ)的生成者;对于由签名者发送的证明πsig,ta运行judgesig算法,判断生成者的身份;若证明πsan来自净化者,则ta运行judgesan算法;judgesig和judgesan算法输出判断d∈{signer,sanitizer,⊥},d=signer表示消息签名对(m,σ)由签名者生成,d=sanitizer表示消息签名对(m,σ)由净化者生成,d=⊥表示证明πsig、πsan是无效的。

8、进一步地,步骤(1)中,setup算法表示为:;输入安全参数λ、等价类代表大小l和时间长度,ta选取双线性对其中和是素数阶p的乘法循环群;随机选择生成元选择哈希函数然后,ta生成bbs+密钥对,随机选择计算ta发布系统公共参数保密主密钥msk=χta;

9、kgensig算法表示为:(pks,sks)←kgensig(mpk);输入系统公共参数mpk,ta为签名者生成密钥对(pks,sks);所述密钥对(pks,sks)包括等价类签名的密钥对、可验证环签名的密钥对和bbs+签名的密钥对;

10、kgensan算法表示为:(pkz,skz)←kgensan(mpk);输入系统公共参数mpk,ta为净化者生成密钥对(pkz,skz);所述密钥对(pkz,skz)包括公钥加密的密钥对和可验证环签名的密钥对。

11、进一步地,密钥对(pks,sks)中,等价类签名的密钥对的生成方法为:随机选择定义skeqs=(xi)i∈[1,l],

12、可验证环签名的密钥对的生成方法为:随机选择定义skvrs=a,pkvrs=ga;

13、bbs+签名的密钥对的生成方法为:随机选择作为私钥,计算公钥

14、则输出的密钥对(pks,sks)中,pks=(pkeqs,pkvrs,vksig),sks=(skeqs,skvrs,χsig)。

15、进一步地,密钥对(pkz,skz)中,公钥加密的密钥对的生成方法为:随机选择定义sskpke=β,

16、可验证环签名的密钥对的生成方法为:随机选择定义

17、则输出的密钥对(pkz,skz)中,pkz=(spkpke,spkvrs),skz=(sskpke,sskvrs)。

18、进一步地,步骤(2)中,签名者在当前时间t为消息m生成签名σ;签名者为消息内容和限制生成承诺c和关于承诺的证明π1和π2,以及当前时间不超过到期时间,即t<τ的证明π3,以上证明采用非交互式的零知识证明;然后,签名者对承诺c进行等价类签名,并加密净化者所需要的一些信息,最后对以上内容进行环签名;

19、sign算法表示为:(m,σ)←sign(mpk,sks,pkz,m,adm,γ,τ,t);其具体实现方法为:

20、(1)签名者将消息m分为n个块m1||…||mn;生成关于消息块mi和限制γ的承诺;随机选择计算c1=h(γ)δ;对于每一个消息块mi,计算c2,i=h(i||mi)δ;如果i∈adm,计算c3,i=f(i)δ,否则c3,i=f(i||mi)δ;

21、(2)证明净化的消息块是允许修改的消息块,即对于每个消息块mi,c3,i=f(i)δ或c3,i=f(i||mi)δ;生成证明:

22、

23、随机选择若c3,i=f(i)δ,随机选择计算否则,随机选择记

24、(3)证明净化的消息块数量不超过γ,即证明使得c1=h(i)δ,且n个消息块中存在大小为n-i的消息块集合j,对于满足c2,j=h(j||mj)δ;生成证明:

25、

26、其中,[n]={1,2,...,n};

27、对于i=γ,随机选择计算选择前n-i个满足c2,j=h(j||mj)δ的消息块,随机选择计算对于其余的i个消息块,随机选择计算

28、对于i≠γ,随机选择计算随机选择i个消息块,假设是前i个,对于j∈[1,i],随机选择计算用i+1个点和构造i次的拉格朗日多项式pi(x);对于j∈[i+1,n],计算随机选择计算得到

29、计算

30、对于i=γ,用i+1个点和构造i次的拉格朗日多项式pi(x);对于j∈j,计算得到

31、得到

32、(4)设置签名的到期时间为τ,并证明当前时间t不超过到期时间τ;签名者计算τ的bbs+签名,首先计算,然后计算,其中令到期时间信息;

33、签名者向ta请求当前时间t的信息;ta计算,并计算t的bbs+签名,其中ta令当前时间信息,将其发送给签名者;

34、若t<τ,则存在,使得τk=tk,则有签名者计算关于ak,bk,t的承诺,随机选择计算签名者令β1=ρ1ξk,β2=ρ2ξ′k,t,生成证明

35、

36、随机选择计算计算计算得到

37、(5)对承诺c=(c1,{c2,i}i∈[1,n],{c3,i}i∈[1,n])进行等价类签名;将c映射为等价类代表随机选择计算得到等价类签名

38、(6)加密签名到期时间信息ei、承诺c、指数δ和等价类签名σeqs;记mpke=(ei,c,δ,σeqs),随机选择u←{0,1}λ,计算得到其中

39、(7)对以上内容进行可验证环签名;记mvrs=(m||c||π1||π2||π3||σeqs||e);随机选择计算h=h(mvrs||r),生成关于或的证明;随机选择计算记得到可验证环签名σvrs=(r,w,π4);

40、输出签名σ=(c,π1,π2,π3,σeqs,σvrs,e)。

41、进一步地,步骤(3)中,净化者对消息m进行净化,得到新的消息m′,并在当前时间t′为消息m′生成签名σ′;净化者首先对密文e进行解密,得到净化所需要的部分信息并重新加密;然后重新随机化承诺并更新等价类签名;随后,净化者证明净化的消息块是允许修改的消息块,净化的消息块数量不超过γ,以及当前时间t′不超过到期时间τ,生成证明π′1,π′2,π′3,最后净化者对以上内容进行环签名;

42、sanit算法表示为:(m′,σ′)←sanit(mpk,pks,skz,m,σ,mod,t′);其具体实现方法为:

43、(1)净化者净化消息获得m′←mod(m);

44、(2)解密得到到期时间信息、原始承诺及其指数,以及等价类签名;计算如果则否则返回⊥;

45、(3)重新随机化承诺;随机选择令δ′=μ·δ,计算,得到c′=(c′1,{c′2,i}i∈[1,n],{c′3,i}i∈[1,n]);

46、(4)更新等价类签名;新的等价类代表为随机选择生成新的签名

47、(5)重新加密到期时间信息ei、原始承诺c及其指数δ,以及等价类签名σeqs;随机选择计算得到

48、(6)证明净化的消息块是允许修改的消息块,即对于每个消息块mi,c′3,i=f(i)δ′或c′3,i=f(i||m′i)δ′;证明同签名过程;得到

49、(7)证明净化的消息块数量不超过γ,即证明使得c′1=h(i)δ′,且n个消息块中存在大小为n-i的消息块集合j,对于满足c′2,j=h(j||m′j)δ′;证明同签名过程;得到

50、(8)证明当前时间t′不超过到期时间τ;净化者向ta请求当前时间t′的信息;净化者证明t′<τ,证明同签名过程;得到

51、(9)对以上内容进行可验证环签名;记m′vrs=(m′||c′||π′1||π′2||π′3||σ′eqs||e′),随机选择计算h′=h(m′vrs||r′),生成关于或的证明;随机选择计算记得到可验证环签名σ′vrs=(r′,w′,π′4);

52、输出签名σ′=(c′,π′1,π′2,π′3,σ′eqs,σ′vrs,e′)。

53、进一步地,步骤(4)中,verify算法表示为:b←verify(mpk,pks,pkz,m,σ,t);其具体实现方法为:

54、(1)验证对于每一个消息块mi,如果不成立,则说明该证明无效,返回0;

55、(2)验证

56、①对于i∈[1,n],验证pi(x)是否为i次多项式;

57、②对于i∈[1,n],验证是否满足

58、③对于i∈[1,n],j∈[1,n],验证是否满足和

59、④验证是否满足

60、如果以上条件有一条不满足,则说明该证明无效,返回0;

61、(3)验证证明重新计算

62、如果不成立,则说明该证明无效,返回0;

63、(4)验证等价类签名如果不成立,则说明该签名无效,返回0;

64、(5)验证环签名σvrs=(r,w,π4);计算h=(mvrs||r),如果不成立,则说明该签名无效,返回0;

65、若以上条件都满足,则该消息签名对有效,返回1。

66、进一步地,步骤(5)中,若发生关于消息签名对的生成者的争议,签名者和净化者各自生成证明发送给ta,ta根据证明判断生成者的身份;

67、proofsig算法表示为:πsig←proofsig(mpk,sks,pks,m,σ);其具体实现方法为:签名者解析签名σ,获得σvrs=(r,w,π4),mvrs=(m||c||π1||π2||π3||σeqs||e);计算和生成关于的证明;随机选择计算sπ=rπ-skvrs·cπ,输出

68、proofsan算法表示为:πsan←proofsan(mpk,skz,pkz,m,σ);其具体实现方法为:净化者解析签名σ,获得σvrs=(r,w,π4),mvrs=(m||c||π1||π2||π3||σeqs||e);计算和生成关于的证明;随机选择计算sπ=rπ-sskvrs·cπ,输出

69、judgesig算法表示为:d←judgesig(mpk,pks,m,σ,πsig);其具体实现方法为:ta解析签名σ,获得σvrs=(r,w,π4),mvrs=(m||c||π1||π2||π3||σeqs||e);ta解析获得计算验证证明πsig的有效性:若则说明πsig是有效的,即πsig由签名者生成;若则说明签名σ的生成者和πsig的生成者一致,返回signer,否则返回sanitizer;

70、judgesan算法表示为:d←judgesan(mpk,pkz,m,σ,πsan);其具体实现方法为:ta解析签名σ,获得σvrs=(r,w,π4),mvrs=(m||c||π1||π2||π3||σeqs||e);ta解析获得计算验证证明πsan的有效性:若则说明πsan是有效的,即πsan由净化者生成;若则说明签名σ的生成者和πsan的生成者一致,返回sanitizer,否则返回signer。

71、本发明还提供了一种用于实现上述方法的基于受限可净化签名的电子病历安全共享系统,包括:

72、可信机构,用于为签名者和净化者生成签名密钥;

73、签名者,用于生成患者的电子病历并签名,还用于定义可修改的内容、可修改的字段数量上限和可修改的截止时间;

74、净化者,用于在一定时间内修改病历中允许修改的部分,并为修改的数据生成新的有效签名,且生成的签名仍可被成功验证;以及

75、验证者,用于验证净化者提交的病历的有效性,验证者可访问医疗数据但不能进行修改。

76、进一步地,所述签名者为医生终端,所述净化者为签名者授权的半可信的第三方终端,包括患者终端、电子病历信息系统管理员终端,所述验证者为医疗数据的共享实体,包括医疗机构、保险公司和科研机构。

77、与现有技术相比,本发明具有以下有益效果:本发明针对现有的可净化签名方案中存在的没有对净化者的权限加以时间限制,不能同时满足多种安全属性(包括不可篡改性、透明性、不可链接性、不可见性和适当强度的可审计性),不适用于医疗数据共享场景等问题,提出了一种基于受限可净化签名的电子病历安全共享方法及系统,该方法及系统支持患者对自身电子病历的可控修改:在系统中,医生生成患者的病历并签名,允许患者在不超过到期时间τ的情况下对由医生指定的病历的某些特定字段进行修改,且所修改的字段数量不超过γ;患者无需和医生交互,即可将原始病历的签名转换为修改后病历的新签名,且该新签名与原始签名是无法区分的。而且,本发明的可净化签名支持时间和数量限制:签名者可以决定哪些字段的数据可以修改,并决定修改字段数量的上限;另一方面,净化者只能在限定的时间点前修改允许的部分字段数据。本发明同时满足不可篡改性、透明性、不可链接性和不可见性:患者只能在医生限定的范围内修改病历。获得净化后的病历的接收方(科研机构、保险公司等)不能判断该病历是否经过净化,不能判断他们所获得的病历是否来自同一个患者,也不能判断出病历的哪些字段是可修改的。从而保护患者的隐私安全。此外,本发明满足强可审计性:系统允许签名者和净化者各自独立地生成证明,证明自己是或不是消息签名对的生成者,即对于由自己生成的消息签名对,医生和患者都不能抵赖。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1