CN116611083A - 一种医疗数据共享方法及系统 - Google Patents
一种医疗数据共享方法及系统 Download PDFInfo
- Publication number
- CN116611083A CN116611083A CN202310393869.6A CN202310393869A CN116611083A CN 116611083 A CN116611083 A CN 116611083A CN 202310393869 A CN202310393869 A CN 202310393869A CN 116611083 A CN116611083 A CN 116611083A
- Authority
- CN
- China
- Prior art keywords
- user
- key
- attribute
- ciphertext
- cloud server
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 46
- 230000000875 corresponding effect Effects 0.000 claims description 18
- 238000006243 chemical reaction Methods 0.000 claims description 16
- 238000004364 calculation method Methods 0.000 claims description 12
- 238000004422 calculation algorithm Methods 0.000 claims description 8
- 238000012795 verification Methods 0.000 claims description 7
- 230000008859 change Effects 0.000 claims description 6
- 230000000977 initiatory effect Effects 0.000 claims description 6
- 238000013507 mapping Methods 0.000 claims description 6
- 238000012508 change request Methods 0.000 claims description 4
- 230000008569 process Effects 0.000 claims description 4
- 238000012545 processing Methods 0.000 claims description 4
- 238000012217 deletion Methods 0.000 claims description 3
- 230000037430 deletion Effects 0.000 claims description 3
- 239000011159 matrix material Substances 0.000 claims description 3
- 238000012797 qualification Methods 0.000 claims description 3
- 230000008520 organization Effects 0.000 claims description 2
- 238000010586 diagram Methods 0.000 description 3
- 238000002474 experimental method Methods 0.000 description 3
- 230000009286 beneficial effect Effects 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 238000004088 simulation Methods 0.000 description 2
- 101100460704 Aspergillus sp. (strain MF297-2) notI gene Proteins 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000000052 comparative effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 208000019622 heart disease Diseases 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000004321 preservation Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/604—Tools and structures for managing or administering access control systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
- G06F21/6245—Protecting personal data, e.g. for financial or medical purposes
-
- G—PHYSICS
- G16—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR SPECIFIC APPLICATION FIELDS
- G16H—HEALTHCARE INFORMATICS, i.e. INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR THE HANDLING OR PROCESSING OF MEDICAL OR HEALTHCARE DATA
- G16H10/00—ICT specially adapted for the handling or processing of patient-related medical or healthcare data
- G16H10/60—ICT specially adapted for the handling or processing of patient-related medical or healthcare data for patient-specific data, e.g. for electronic patient records
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Bioethics (AREA)
- Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Medical Informatics (AREA)
- Automation & Control Theory (AREA)
- Databases & Information Systems (AREA)
- Epidemiology (AREA)
- Primary Health Care (AREA)
- Public Health (AREA)
- Storage Device Security (AREA)
- Medical Treatment And Welfare Office Work (AREA)
Abstract
本发明属于信息安全的技术领域,公开了一种医疗数据共享方法及系统,基于联盟区块链,利用区块链具有的去中心化、不可篡改、安全可信等特点解决医疗数据共享难题。此外,通过属性基可搜索加密,对用户在密文域上关键字的搜索权限进行细粒度访问控制,保护患者隐私安全。本发明充分考虑了在属性基加密中,云服务器与用户之间的不可信关系,将属性分为属性名与属性值,访问策略只显式地表示属性名,而将敏感的属性值隐藏在密文中。另外,通过分配属性组密钥,实现高效的属性和用户撤销,以充分保证用户隐私安全。
Description
技术领域
本发明涉及信息安全的技术领域,尤其涉及一种医疗数据共享方法及系统。
背景技术
随着我国智慧医疗的稳步发展和医疗规模的不断扩大,医疗领域正逐渐步入数字化时代,医疗数据共享可以提高医疗服务质量并且降低成本。然而,医疗数据具有隐私性强,数据量大,利用价值高等特点,共享医疗数据容易泄露患者的隐私。此外,不同的医疗机构之间也很难实现医疗数据的共享。
为了解决上述问题,本文引入了区块链技术、可搜索加密以及属性基加密。区块链技术具有的去中心化、不可篡改、安全可信等特点,已广泛应用于各个领域,包括医疗领域。其中,区块链的不可篡改特性为数据价值的共享提供了载体,可以很好的解决医疗数据共享难的问题。本发明充分利用区块链的特性,将区块链的存储和计算能力融入方案中,例如存储系统公共参数、生成数据访问日志、智能合约承担计算和返回数据。所有的数据共享交易ID都被记录到联盟区块链,用于联盟验证和追溯。可搜索加密算法则支持用户在密文域上进行关键字搜索,保护用户隐私的同时,也提高了数据使用的灵活度,这一特性使得可搜索加密在数据共享时代得到了广泛的运用。然而,在医疗场景中,数据共享还需要考虑数据用户细粒度搜索权限的问题。在本发明中,将属性基加密与可搜索加密相结合,即通过属性基加密来控制用户搜索权限,对密文的搜索形成访问控制。但是,在传统的属性基加密算法中,明文形式的访问策略也可能泄露数据拥有者的隐私。针对上述问题,本发明充分考虑了在属性基加密中云服务器与用户之间的不可信关系,将属性分为属性名与属性值,访问策略只显式的表示属性名,而将更敏感的属性值隐藏在密文中,从而云服务器无法知道特定的属性值。此外,还针对单关键字属性基可搜索加密搜索效率低的问题,提出一种高效的多关键字属性基可搜索加密算法。另外,还分配属性组密钥,实现高效的属性和用户撤销,以充分保证用户隐私安全。
发明内容
本部分的目的在于概述本发明的实施例的一些方面以及简要介绍一些较佳实施例。在本部分以及本申请的说明书摘要和发明名称中可能会做些简化或省略以避免使本部分、说明书摘要和发明名称的目的模糊,而这种简化或省略不能用于限制本发明的范围。
鉴于上述现有存在的问题,提出了本发明。
因此,本发明解决的技术问题是:现有技术存在容易泄露患者隐私以及难以实现医疗数据共享的问题。
为解决上述技术问题,本发明提供如下技术方案:
第一方面,本发明实施例提供了一种医疗数据共享方法,包括:
基于用户上传的信息初始化系统参数,生成用户属性密钥和路径密钥,上传至云服务器;
云服务器将用户密文及多关键字索引密文重新加密并保存;
当需要使用用户信息时,发送搜索陷门至云服务器,云服务器通过判断索引与搜索陷门是否匹配,将信息发送给使用者;
使用者基于收到的信息更新密钥并上传至云服务器,云服务器通过判断用户属性是否满足访问策略,将解密密文发送给使用者,从而解密得到明文。
作为本发明所述的医疗数据共享方法的一种优选方案,其中:定义所述系统的全局属性名集合为:
定义全体用户集合为:
定义一组用户集合为:
其中,为该集合用户的属性;
定义属性组集合为:
定义为属性名/>对应的属性组密钥,所述/>被/>中未被撤销的用户所共享。
作为本发明所述的医疗数据共享方法的一种优选方案,其中:所述初始化系统参数,包括:
定义初始化系统安全参数为;
定义一个双线性对表示为:
定义所述系统的哈希函数为:
其中,和/>表示素数阶为/>的乘法循环群,/>表示一个大素数,/>的一个生成元为/>;
对的每一个属性名,进行哈希值计算,表示为:
其中,表示属性名/>的哈希值,/>表示一个将/>映射成为属性名的函数;
随机选择,并分别计算:/>,/>,/>;
保存所述系统主密钥,发布全局公共参数/>,表示为:
其中,表示随机数,/>,/>表示/>中的元素,/>表示/>中的元素。
作为本发明所述的医疗数据共享方法的一种优选方案,其中:所述用户属性密钥,包括:
随机选择,输入公共参数/>和用户的属性集合/>;
其中,表示用户的属性名集合,/>表示用户的属性值集合,/>表示具体的属性值,计算得到:
随机选择,计算:
生成所述用户密钥,表示为:
其中,分别表示用户属性密钥中的各个组件;
将每个属性名对应的属性组/>发送至所述云服务器;
所述路径密钥,包括:
所述云服务器为用户定义一个KEK二叉树,在/>中的每一个用户都对应KEK树中的一个叶子节点;
在二叉树中,每一个节点都存储了一个随机密钥KEK,用/>来表示,随机密钥彼此之间相互独立;
从叶子节点到根节点的路径节点上的一组KEKs表示为路径密钥。
作为本发明所述的医疗数据共享方法的一种优选方案,其中:用户信息加密,包括:
电子病历的加密与上传,包括:
在所述云服务器中部署用于数据分享的智能合约;
为用户随机选择一个对称密钥,对电子病历文件/>加密得到明文文件/>;
用户将上传至所述云服务器,从系统返回得到密文地址;
加密多关键字索引,包括:
用户从电子病历中选取包含个关键字的多关键字集/>,表示为:
其中,表示多关键字集/>中的第/>个关键字;
用户输入公共参数以及多关键字集/>,对于/>用户随机选择/>,/>,计算:
输出多关键字索引密文,表示为:
其中,分别表示多关键字索引密文中的各个组件;
文件加密密钥和地址加密,包括:
用户输入公共参数、对称密钥/>、密文地址/>以及访问策略/>;
其中,是一个/>的矩阵,/>是/>中的一行映射到属性名的一个映射函数,是与/>相关的属性值;
用户随机选择一个向量,用来分享秘密值/>;
其中,为一组随机数;
对每个,随机选择/>,并计算/>;
其中,表示一个属性名/>的一个秘密份额,/>表示矩阵的第/>行,计算:
用户输出密文,表示为:
其中,表示删除属性值集合后不完整的访问策略,分别表示密文/>中的各个组件;
用户将上传至所述云服务器;
对密文重加密,包括:
所述云服务器对于每一个,随机选择一个/>;
其中,表示密文/>与多关键字索引密文/>的结合信息,/>是构建密文的访问策略中所有属性名对应的属性组,/>表示一组随机数;
重加密密文表示为:
其中,为密文/>中组件/>重加密后更新后新的组件;
所述云服务器对于每一个,在KEK树中选择一个可以覆盖/>中所有用户的根节点,根节点的集合表示为/>;
重加密密文的标题信息/>表示为:
所述云服务器保存;
所述智能合约生成的哈希值、时间戳、交易发起用户以及其他信息上传至医疗联盟区块链,在共识节点确认交易并同步到区块链后,将返回交易ID;
其中,表示重加密密文/>、多关键字索引密文/>以及标题信息的结合信息。
作为本发明所述的医疗数据共享方法的一种优选方案,其中:所述搜索陷门,包括:
输入公共参数、用户密钥/>以及想查询的关键字集合/>,对于选择随机数/>,计算:
输出搜索陷门,表示为:
其中,表示/>集合中第/>个关键字,/>表示搜索陷门,/>分别表示搜索陷门中各个组件;
数据使用者将上传至所述云服务器,并调用智能合约。
作为本发明所述的医疗数据共享方法的一种优选方案,其中:所述判断索引与搜索陷门是否匹配,包括:
所述云服务器收到数据使用者发送的搜索陷门时,将/>与多关键字索引密文进行匹配;
由所述云服务器验证匹配公式是否成立,所述匹配公式表示为:
当验证不成立时,设置搜索状态为,系统显示搜索失败;
当验证成立时,设置搜索状态为,所述云服务器返回与重加密密文相对应的标题信息/>给数据使用者,数据使用者利用标题信息进行密钥更新;
智能合约将搜索状态、交易发起用户、时间戳以及其他信息上传至医疗联盟区块链,并返回交易ID;
密钥更新过程包括:
当数据使用者收到对应密文的标题信息时,首先从中获得所有与自身拥有属性名对应的属性组密钥;
定义数据使用者属性名为/>,使用/>与/>交集的KEK,从/>中解密得到属性组密钥/>,表示为:
使用者根据属性组密钥更新密钥/>,表示为:
其中,表示更新后的密钥,/>为用户属性密钥/>中组件/>密钥更新后新的组件;
使用者随机选择,计算:
使用者将转换密钥发送给所述云服务器,所述转换密钥表示为:
其中,表示转换因子,/>表示转换密钥,/>分别表示转换密钥/>中的各个组件。
作为本发明所述的医疗数据共享方法的一种优选方案,其中:所述解密密文,包括:
当云服务器收到使用者的转换密钥时,云服务器根据访问策略/>执行密文/>的部分解密算法;
当使用者满足访问策略时,对于,云服务器在选择一组系数,使/>,/>,则所述部分解密密文表示为:
其中,;
使用者收到后,输入用户密钥/>以及转换因子/>来解密得到对称密钥/>以及密文地址/>,表示为:
使用者在星际文件系统中输入文件地址来下载加密文件/>,再使用对称密钥/>解密密文获得明文文件/>。
作为本发明所述的医疗数据共享方法的一种优选方案,其中:当云服务器收到用户信息更改请求时,更新受成员资格更改影响的属性名的属性组密钥/>;
当属性组中有任何成员资格更改时,步骤包括:
所述云服务器随机选择一个以及一个与之前属性组密钥/>不同的/>,并输入公共参数/>来重加密密文,重加密密文/>表示为:
对属性名的用户资格列表进行更新,所述云服务器为/>选择新的最小覆盖集,并利用更新后的/>,为密文/>形成新的标题信息/>,表示为:
当数据使用者搜索密文成功后,所述云服务器用上述更新后的密文标题进行响应。
第二方面,本发明实施例提供了一种医疗数据共享系统,包括:
机构端,用于生成系统公共参数、主密钥/>以及用户端和使用端属性相关的密钥/>;还用于监督和审核云服务端,确保医疗联盟区块链的安全运行;
云服务端,用于执行系统中分配的任务,运行医疗联盟区块链,处理用户端的电子医疗记录,以及运行星际文件系统,存储患者的电子病历文件;
用户端,用于通过访问策略对密钥以及返回的文件地址进行加密,与多关键字索引密文一起上传至云服务端;
使用端,用于当使用者需要访问数据时,生成搜索陷门发送至云服务端,以检索所需要的加密文件,当使用端生成的搜索陷门与用户端生成的多关键字索引密文相匹配且属性满足访问策略,加密文件才能被有效共享。
本发明的有益效果:本发明提供的一种医疗数据共享方法及系统,基于联盟区块链,利用区块链具有的去中心化、不可篡改、安全可信等特点解决医疗数据共享难题。此外,通过属性基可搜索加密,对用户在密文域上关键字的搜索权限进行细粒度访问控制,保护患者隐私安全。本发明充分考虑了在属性基加密中,云服务器与用户之间的不可信关系,将属性分为属性名与属性值,访问策略只显式地表示属性名,而将敏感的属性值隐藏在密文中。另外,通过分配属性组密钥,实现高效的属性和用户撤销,以充分保证用户隐私安全。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其它的附图。其中:
图1为本发明一个实施例所述的医疗数据共享方法的算法流程示意图;
图2为本发明一个实施例所述的医疗数据共享方法的系统结构示意图;
图3为本发明一个实施例所述的医疗数据共享方法的加密阶段的时间比较图;
图4为本发明一个实施例所述的医疗数据共享方法的陷门生成阶段的时间比较图;
图5为本发明一个实施例所述的医疗数据共享方法的解密阶段的时间比较图。
实施方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合说明书附图对本发明的具体实施方式做详细的说明,显然所描述的实施例是本发明的一部分实施例,而不是全部实施例。基于本发明中的实施例,本领域普通人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明的保护的范围。
在下面的描述中阐述了很多具体细节以便于充分理解本发明,但是本发明还可以采用其他不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本发明内涵的情况下做类似推广,因此本发明不受下面公开的具体实施例的限制。
其次,此处所称的“一个实施例”或“实施例”是指可包含于本发明至少一个实现方式中的特定特征、结构或特性。在本说明书中不同地方出现的“在一个实施例中”并非均指同一个实施例,也不是单独的或选择性的与其他实施例互相排斥的实施例。
本发明结合示意图进行详细描述,在详述本发明实施例时,为便于说明,表示器件结构的剖面图会不依一般比例作局部放大,而且所述示意图只是示例,其在此不应限制本发明保护的范围。此外,在实际制作中应包含长度、宽度及深度的三维空间尺寸。
同时在本发明的描述中,需要说明的是,术语中的“上、下、内和外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。此外,术语“第一、第二或第三”仅用于描述目的,而不能理解为指示或暗示相对重要性。
本发明中除非另有明确的规定和限定,术语“安装、相连、连接”应做广义理解,例如:可以是固定连接、可拆卸连接或一体式连接;同样可以是机械连接、电连接或直接连接,也可以通过中间媒介间接相连,也可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本发明中的具体含义。
实施例1
参照图1—2,为本发明的第一个实施例,该实施例提供了一种医疗数据共享方法,其特征在于,包括:
S1:基于用户上传的信息初始化系统参数,生成用户属性密钥和路径密钥,上传至云服务器;
更进一步的,定义系统的全局属性名集合为:
定义全体用户集合为:
定义一组用户集合为:
其中,为该集合用户的属性;
定义属性组集合为:
定义为属性名/>对应的属性组密钥,所述/>被/>中未被撤销的用户所共享。
更进一步的,初始化系统参数,包括:
定义初始化系统安全参数为;
定义一个双线性对表示为:
定义所述系统的哈希函数为:
其中,和/>表示素数阶为/>的乘法循环群,/>表示一个大素数,/>的一个生成元为/>;
对的每一个属性名,进行哈希值计算,表示为:
其中,表示属性名/>的哈希值,/>表示一个将/>映射成为属性名的函数;
随机选择,并分别计算:/>,/>,/>;
保存所述系统主密钥,发布全局公共参数/>,表示为:
其中,表示随机数,/>,/>表示/>中的元素,/>表示/>中的元素。
更进一步的,用户属性密钥,包括:
随机选择,输入公共参数/>和用户的属性集合/>;
其中,表示用户的属性名集合,/>表示用户的属性值集合,/>表示具体的属性值,计算得到:
随机选择,计算:
生成用户密钥,表示为:
其中,分别表示用户属性密钥中的各个组件;
将每个属性名对应的属性组/>发送至所述云服务器;
路径密钥,包括:
所述云服务器为用户定义一个KEK二叉树,在/>中的每一个用户都对应KEK树中的一个叶子节点;
在二叉树中,每一个节点都存储了一个随机密钥KEK,用/>来表示,随机密钥彼此之间相互独立;
从叶子节点到根节点的路径节点上的一组KEKs表示为路径密钥。
S2:云服务器将用户密文及多关键字索引密文重新加密并保存;
更进一步的,用户信息加密,包括:
电子病历的加密与上传,包括:
在云服务器中部署用于数据分享的智能合约;
应说明的是,智能合约是指是一种达到触发条件就自动执行的复杂脚本代码。
为用户随机选择一个对称密钥,对电子病历文件/>加密得到明文文件/>;/>
用户将上传至所述云服务器,从系统返回得到密文地址;
加密多关键字索引,包括:
用户从电子病历中选取包含个关键字的多关键字集/>,表示为:
其中,表示多关键字集/>中的第/>个关键字;
用户输入公共参数以及多关键字集/>,对于/>用户随机选择/>,/>,计算:
输出多关键字索引密文,表示为:
其中,分别表示多关键字索引密文中的各个组件;
文件加密密钥和地址加密,包括:
用户输入公共参数、对称密钥/>、密文地址/>以及访问策略/>;
其中,是一个/>的矩阵,/>是/>中的一行映射到属性名的一个映射函数,是与/>相关的属性值;
用户随机选择一个向量,用来分享秘密值/>;
其中,为一组随机数;
对每个,随机选择/>,并计算/>;
其中,表示一个属性名/>的一个秘密份额,/>表示矩阵的第/>行,计算:
用户输出密文,表示为:
其中,表示删除属性值集合后不完整的访问策略,/>分别表示密文/>中的各个组件;
用户将上传至所述云服务器;
对密文重加密,包括:
云服务器对于每一个,随机选择一个/>;
其中,表示密文/>与多关键字索引密文/>的结合信息,/>是构建密文的访问策略中所有属性名对应的属性组,/>表示一组随机数;
重加密密文表示为:
其中,为密文/>中组件/>重加密后更新后新的组件;
云服务器对于每一个,在KEK树中选择一个可以覆盖/>中所有用户的根节点,根节点的集合表示为/>;
应说明的是,这个集合覆盖了所有中的用户,对于那些不属于/>中的用户,他们无法得知/>中的任何信息。
重加密密文的标题信息/>表示为:
云服务器保存;
智能合约生成的哈希值、时间戳、交易发起用户以及其他信息上传至医疗联盟区块链,在共识节点确认交易并同步到区块链后,将返回交易ID;
其中,表示重加密密文/>、多关键字索引转化密文/>以及标题信息/>的结合信息。
S3:当需要使用用户信息时,发送搜索陷门至云服务器,云服务器通过判断索引与搜索陷门是否匹配,将信息发送给使用者;
更进一步的,搜索陷门,包括:
输入公共参数、用户密钥/>以及想查询的关键字集合/>,对于选择随机数/>,计算:
输出搜索陷门,表示为:
其中,表示/>集合中第/>个关键字,/>表示搜索陷门,/>分别表示搜索陷门中各个组件;
数据使用者将上传至所述云服务器,并调用智能合约。
更进一步的,判断索引与搜索陷门是否匹配,包括:
云服务器收到数据使用者发送的搜索陷门时,将/>与多关键字索引密文/>进行匹配;
由云服务器验证匹配公式是否成立,所述匹配公式表示为:
当验证不成立时,设置搜索状态为,系统显示搜索失败;
当验证成立时,设置搜索状态为,所述云服务器返回与重加密密文相对应的标题信息/>给数据使用者,数据使用者利用标题信息进行密钥更新;
智能合约将搜索状态、交易发起用户、时间戳以及其他信息上传至医疗联盟区块链,并返回交易ID;
密钥更新过程包括:
当数据使用者收到对应密文的标题信息时,首先从中获得所有与自身拥有属性名对应的属性组密钥;
定义数据使用者属性名为/>,使用/>与/>交集的KEK,从/>中解密得到属性组密钥/>,表示为:
使用者根据属性组密钥更新密钥/>,表示为:
其中,表示更新后的密钥,/>为用户属性密钥/>中组件/>密钥更新后新的组件;
使用者随机选择,计算:
使用者将转换密钥发送给所述云服务器,所述转换密钥表示为:/>
其中,表示转换因子,/>表示转换密钥,/>分别表示转换密钥/>中的各个组件。
S4:使用者基于收到的信息更新密钥并上传至云服务器,云服务器通过判断用户属性是否满足访问策略,将解密密文发送给使用者,从而解密得到明文。
更进一步的,解密密文,包括:
当云服务器收到使用者的转换密钥时,云服务器根据访问策略/>执行密文/>的部分解密算法;
当使用者满足访问策略时,对于,云服务器在选择一组系数,使/>,/>,则所述部分解密密文表示为:
其中,;
使用者收到后,输入用户密钥/>以及转换因子/>来解密得到对称密钥/>以及密文地址/>,表示为:
使用者在星际文件系统中输入文件地址来下载加密文件/>,再使用对称密钥/>解密密文获得明文文件/>。
应说明的是,数据使用者能够获得对称密钥以及文件地址/>当且仅当数据使用者查询的搜索陷门/>与多关键字索引密文/>相匹配且数据使用者的属性集合满足访问策略。
应说明的是,在数据加密中访问策略中的属性被分为属性名与属性值,将更敏感的属性值嵌入密文中,当进行到数据解密时,有当使用者查询的搜索陷门与多关键字索引密文相匹配且数据使用者的属性集合满足访问策略才会返回部分解密密文,这样就可以保证访问策略不会泄露患者隐私。
例如,Alice用访问策略(“科室:内科”and“部门:心脏部门”)or“职业:医生”来加密电子病历,并将其同密文一同上传至云端,对于半可信云服务器来说,则可以通过明文形式的访问策略知道Alice大概率患有心脏方面的疾病,这无疑是患者不想看到的。另外,在数据加密中,云服务器在存储密文之前需要用属性组密钥对密文进行重加密,只有那些属于该属性组的用户才能共享该属性组密钥,其他用户无从得知。例如,假设,则/>,因为/>和节点是能覆盖/>中用户的最小覆盖集,此集合只覆盖了/>中的所有用户,其他不属于的用户无法知道/>中的任何信息,所以通过后续对属性组成员信息的修改以及对密文标题信息的更新,能够实现对属性及用户的撤销功能。最后,方案充分利用区块链的存储和计算能力,将各个医疗机构视作医疗联盟区块链中的分布式节点,利用共识机制将各种信息上传至联盟区块链,并部署智能合约承担计算和返回数据。因此,我们的发明在一定程度上提高了患者在共享医疗数据时的安全性和灵活度。
更进一步的,当云服务器收到用户信息更改请求时,更新受成员资格更改影响的属性名的属性组密钥/>;
当属性组中有任何成员资格更改时,步骤包括:
所述云服务器随机选择一个以及一个与之前属性组密钥/>不同的/>,并输入公共参数/>来重加密密文,重加密密文/>表示为:
对属性名的用户资格列表进行更新,所述云服务器为/>选择新的最小覆盖集,并利用更新后的/>,为密文/>形成新的标题信息/>,表示为:
当数据使用者搜索密文成功后,云服务器用上述更新后的密文标题进行响应。
应说明的是,密钥更新过程是通过向机构端发送用户对某些属性组的加入或离开请求来启动的。在接收到某些属性组的成员资格更改请求后,机构端将事件通知医院端,并向其发送更新后的属性组成员资格列表。
上述为本实施例的一种医疗数据共享方法的示意性方案。需要说明的是,该医疗数据共享系统的技术方案与上述的医疗数据共享方法的技术方案属于同一构思,本实施例中医疗数据共享系统的技术方案未详细描述的细节内容,均可以参见上述医疗数据共享方法的技术方案的描述。
图2是本发明提供的一种医疗数据共享系统的结构示意图,本实施例可适用于医疗数据共享方法的情况。
参见图2,本实施例中医疗数据共享系统,包括:
机构端100,用于生成系统公共参数、主密钥/>以及用户端300和使用端400属性相关的密钥/>;还用于监督和审核云服务端200,确保医疗联盟区块链的安全运行;
云服务端200,用于执行系统中分配的任务,运行医疗联盟区块链,处理用户端300的电子医疗记录,以及运行星际文件系统,存储患者的电子病历文件;
用户端300,用于通过访问策略对密钥以及返回的文件地址进行加密,与多关键字索引密文一起上传至云服务端200;
使用端400,用于当使用者需要访问数据时,生成搜索陷门发送至云服务端200,以检索所需要的加密文件,当使用端400生成的搜索陷门与用户端300生成的多关键字索引密文相匹配且属性满足访问策略,加密文件才能被有效共享。
应说明的是,云服务端200主要分为两个部分组成:其一是医院云服务器,用于运行星际文件系统,存储患者的电子病历文件;其二是医院服务器用于执行系统中分配的任务,运行医疗联盟区块链,处理用户端的电子医疗记录。
实施例2
参照图3—5,为本发明的一个实施例,该实施例提供了一种医疗数据共享方法及系统,为了验证本发明的有益效果,通过对比试验进行科学论证。
在本实施例中,通过将本发明与现有BMDS方案分别在加密阶段、陷门生成阶段和解密阶段分别进行比较,具体如下:
实验根据PCB库中的A类曲线模拟方案的计算时间,仿真平台使用LinuxUbuntu16.04,CPU为Inter(R)Core(TM)i5-6300HQ @2.30GHz。由于BMDS是单关键字搜索,本发明是多关键字搜索,故实验时统一为单关键字。实验分别对比属性个数为2、4、6、8、10个时的加密阶段、陷门生成阶段、解密阶段计算开销情况。
如图3—5所示,通过比较,我方发明在加密阶段、陷门生成阶段和解密阶段均优于BMDS方案。
在BMDS方案中,未考虑实际应用场景中用户属性可能发生更改的需求、未考虑显示地访问策略可能会泄露数据拥有着的隐私问题以及单关键字搜索结果可能过于粗糙的问题。本发明中,将属性分为属性名与属性值,访问策略只显式的表示属性名,而将更敏感的属性值隐藏在密文中,从而云服务器无法知道特定的属性值。此外,还针对单关键字属性基可搜索加密搜索效率低的问题,提出一种高效的多关键字属性基可搜索加密算法。另外,还分配属性组密钥,实现高效的属性和用户撤销,以充分保证用户隐私安全。故,我方发明相较于现有技术具有很好的实用性。
应说明的是,以上实施例仅用以说明本发明的技术方案而非限制,尽管参照较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或者等同替换,而不脱离本发明技术方案的精神和范围,其均应涵盖在本发明的权利要求范围当中。
Claims (10)
1.一种医疗数据共享方法,其特征在于,包括:
基于用户上传的信息初始化系统参数,生成用户属性密钥和路径密钥,上传至云服务器;
云服务器将用户密文及多关键字索引密文重新加密并保存;
当需要使用用户信息时,发送搜索陷门至云服务器,云服务器通过判断索引与搜索陷门是否匹配,将信息发送给使用者;
使用者基于收到的信息更新密钥并上传至云服务器,云服务器通过判断用户属性是否满足访问策略,将解密密文发送给使用者,从而解密得到明文。
2.如权利要求1所述的医疗数据共享方法,其特征在于,还包括:
定义所述系统的全局属性名集合为:
定义全体用户集合为:
定义一组用户集合为:
其中,为该集合用户的属性;
定义属性组集合为:
定义为属性名/>对应的属性组密钥,所述/>被/>中未被撤销的用户所共享。
3.如权利要求2所述的医疗数据共享方法,其特征在于:所述初始化系统参数,包括:
定义初始化系统安全参数为;
定义一个双线性对表示为:
定义所述系统的哈希函数为:
其中,和/>表示素数阶为/>的乘法循环群,/>表示一个大素数,/>的一个生成元为/>;
对的每一个属性名,进行哈希值计算,表示为:
其中,表示属性名/>的哈希值,/>表示一个将/>映射成为属性名的函数;
随机选择,并分别计算:/>,/>,/>;
保存所述系统主密钥,发布全局公共参数/>,表示为:
其中,表示随机数,/>,/>表示/>中的元素,/>表示/>中的元素。
4.如权利要求3所述的医疗数据共享方法,其特征在于:所述用户属性密钥,包括:
随机选择,输入公共参数/>和用户的属性集合/>;
其中,表示用户的属性名集合,/>表示用户的属性值集合,/>表示具体的属性值,计算得到:
随机选择,计算:
生成所述用户密钥,表示为:
其中,分别表示用户属性密钥中的各个组件;
将每个属性名对应的属性组/>发送至所述云服务器;
所述路径密钥,包括:
所述云服务器为用户定义一个KEK二叉树,在/>中的每一个用户都对应KEK树中的一个叶子节点;
在二叉树中,每一个节点都存储了一个随机密钥KEK,用/>来表示,随机密钥彼此之间相互独立;
从叶子节点到根节点的路径节点上的一组KEKs表示为路径密钥。
5.如权利要求4所述的医疗数据共享方法,其特征在于:用户信息加密,包括:
电子病历的加密与上传,包括:
在所述云服务器中部署用于数据分享的智能合约;
为用户随机选择一个对称密钥,对电子病历文件/>加密得到明文文件/>;
用户将上传至所述云服务器,从系统返回得到密文地址;
加密多关键字索引,包括:
用户从电子病历中选取包含个关键字的多关键字集/>,表示为:
其中,表示多关键字集/>中的第/>个关键字;
用户输入公共参数以及多关键字集/>,对于/>用户随机选择/>,/>,计算:
输出多关键字索引密文,表示为:
其中,分别表示多关键字索引密文中的各个组件;
文件加密密钥和地址加密,包括:
用户输入公共参数、对称密钥/>、密文地址/>以及访问策略/>;
其中,是一个/>的矩阵,/>是/>中的一行映射到属性名的一个映射函数,是与/>相关的属性值;
用户随机选择一个向量,用来分享秘密值/>;
其中,为一组随机数;
对每个,随机选择/>,并计算/>;
其中,表示一个属性名/>的一个秘密份额,/>表示矩阵的第/>行,计算:
用户输出密文,表示为:
其中,表示删除属性值集合后不完整的访问策略,分别表示密文/>中的各个组件;
用户将上传至所述云服务器;
对密文重加密,包括:
所述云服务器对于每一个,随机选择一个/>;
其中,表示密文/>与多关键字索引密文/>的结合信息,/>是构建密文的访问策略中所有属性名对应的属性组,/>表示一组随机数;
重加密密文表示为:
其中,为密文/>中组件/>重加密后更新后新的组件;
所述云服务器对于每一个,在KEK树中选择一个可以覆盖/>中所有用户的根节点,根节点的集合表示为/>;
重加密密文的标题信息/>表示为:
所述云服务器保存;
所述智能合约生成的哈希值、时间戳、交易发起用户以及其他信息上传至医疗联盟区块链,在共识节点确认交易并同步到区块链后,将返回交易ID;
其中,表示重加密密文/>、多关键字索引密文/>以及标题信息/>的结合信息。
6.如权利要求5所述的医疗数据共享方法,其特征在于:所述搜索陷门,包括:
输入公共参数、用户密钥/>以及想查询的关键字集合/>,对于选择随机数/>,计算:
输出搜索陷门,表示为:
其中,表示/>集合中第/>个关键字,/>表示搜索陷门,/>分别表示搜索陷门中各个组件;
数据使用者将上传至所述云服务器,并调用智能合约。
7.如权利要求6所述的医疗数据共享方法,其特征在于:所述判断索引与搜索陷门是否匹配,包括:
所述云服务器收到数据使用者发送的搜索陷门时,将/>与多关键字索引密文/>进行匹配;
由所述云服务器验证匹配公式是否成立,所述匹配公式表示为:
当验证不成立时,设置搜索状态为,系统显示搜索失败;
当验证成立时,设置搜索状态为,所述云服务器返回与重加密密文相对应的标题信息/>给数据使用者,数据使用者利用标题信息进行密钥更新;
智能合约将搜索状态、交易发起用户、时间戳以及其他信息上传至医疗联盟区块链,并返回交易ID;
密钥更新过程包括:
当数据使用者收到对应密文的标题信息时,首先从中获得所有与自身拥有属性名对应的属性组密钥;
定义数据使用者属性名为/>,使用/>与/>交集的KEK,从/>中解密得到属性组密钥/>,表示为:
使用者根据属性组密钥更新密钥/>,表示为:
其中,表示更新后的密钥,/>为用户属性密钥/>中组件/>密钥更新后新的组件;
使用者随机选择,计算:
使用者将转换密钥发送给所述云服务器,所述转换密钥表示为:
其中,表示转换因子,/>表示转换密钥,/>分别表示转换密钥/>中的各个组件。
8.如权利要求7所述的医疗数据共享方法,其特征在于:所述解密密文,包括:
当云服务器收到使用者的转换密钥时,云服务器根据访问策略/>执行密文的部分解密算法;
当使用者满足访问策略时,对于,云服务器在选择一组系数/>,使/>,/>,则所述部分解密密文表示为:
其中,;
使用者收到后,输入用户密钥/>以及转换因子/>来解密得到对称密钥/>以及密文地址/>,表示为:
使用者在星际文件系统中输入文件地址来下载加密文件/>,再使用对称密钥解密密文获得明文文件/>。
9.如权利要求1所述的医疗数据共享方法,其特征在于,还包括:
当云服务器收到用户信息更改请求时,更新受成员资格更改影响的属性名的属性组密钥/>;
当属性组中有任何成员资格更改时,步骤包括:
所述云服务器随机选择一个以及一个与之前属性组密钥/>不同的/>,并输入公共参数/>来重加密密文,重加密密文/>表示为:
对属性名的用户资格列表进行更新,所述云服务器为/>选择新的最小覆盖集,并利用更新后的/>,为密文/>形成新的标题信息/>,表示为:
当数据使用者搜索密文成功后,所述云服务器用上述更新后的密文标题进行响应。
10.一种医疗数据共享系统,应用于如权利要求1至9任一所述的医疗数据共享方法,其特征在于,包括:
机构端(100),用于生成系统公共参数、主密钥/>以及用户端(300)和使用端(400)属性相关的密钥/>;还用于监督和审核云服务端(200),确保医疗联盟区块链的安全运行;
云服务端(200),用于执行系统中分配的任务,运行医疗联盟区块链,处理用户端(300)的电子医疗记录,以及运行星际文件系统,存储患者的电子病历文件;
用户端(300),用于通过访问策略对密钥以及返回的文件地址进行加密,与多关键字索引密文一起上传至云服务端(200);
使用端(400),用于当使用者需要访问数据时,生成搜索陷门发送至云服务端(200),以检索所需要的加密文件,当使用端(400)生成的搜索陷门与用户端(300)生成的多关键字索引密文相匹配且属性满足访问策略,加密文件才能被有效共享。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310393869.6A CN116611083A (zh) | 2023-04-13 | 2023-04-13 | 一种医疗数据共享方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310393869.6A CN116611083A (zh) | 2023-04-13 | 2023-04-13 | 一种医疗数据共享方法及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116611083A true CN116611083A (zh) | 2023-08-18 |
Family
ID=87682481
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310393869.6A Pending CN116611083A (zh) | 2023-04-13 | 2023-04-13 | 一种医疗数据共享方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116611083A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117494221A (zh) * | 2024-01-03 | 2024-02-02 | 齐鲁工业大学(山东省科学院) | 一种区块链协助搜索的物联网数据共享方法 |
-
2023
- 2023-04-13 CN CN202310393869.6A patent/CN116611083A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117494221A (zh) * | 2024-01-03 | 2024-02-02 | 齐鲁工业大学(山东省科学院) | 一种区块链协助搜索的物联网数据共享方法 |
CN117494221B (zh) * | 2024-01-03 | 2024-04-02 | 齐鲁工业大学(山东省科学院) | 一种区块链协助搜索的物联网数据共享方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Yang et al. | A blockchain-based approach to the secure sharing of healthcare data | |
Guo et al. | Fine-grained database field search using attribute-based encryption for e-healthcare clouds | |
Pasupuleti et al. | An efficient and secure privacy-preserving approach for outsourced data of resource constrained mobile devices in cloud computing | |
Salam et al. | Implementation of searchable symmetric encryption for privacy-preserving keyword search on cloud storage | |
CN108768951B (zh) | 一种云环境下保护文件隐私的数据加密和检索方法 | |
CN107948146B (zh) | 一种混合云中基于属性加密的连接关键词检索方法 | |
CN112365945B (zh) | 基于区块链的电子病历细粒度访问控制和密文可搜索方法 | |
CN109740364B (zh) | 可控搜索权限的基于属性的密文搜索方法 | |
CN114826703B (zh) | 基于区块链的数据搜索细粒度访问控制方法及系统 | |
CN108632385B (zh) | 基于时间序列的多叉树数据索引结构云存储隐私保护方法 | |
CN110866135B (zh) | 一种基于响应长度隐藏的k-NN图像检索方法及系统 | |
CN112000632B (zh) | 密文的分享方法、介质、分享客户端及系统 | |
Huang et al. | FSSR: Fine-grained EHRs sharing via similarity-based recommendation in cloud-assisted eHealthcare system | |
Sun et al. | Research on logistics information blockchain data query algorithm based on searchable encryption | |
CN108092766A (zh) | 一种密文搜索权限验证方法及其系统 | |
CN110611662A (zh) | 一种基于属性基加密的雾协同云数据共享方法 | |
CN114598472A (zh) | 基于区块链的条件隐藏可搜索代理重加密方法及存储介质 | |
CN106326666A (zh) | 一种健康档案信息管理服务系统 | |
CN116611083A (zh) | 一种医疗数据共享方法及系统 | |
CN115603934A (zh) | 基于区块链的多用户可搜索加密方法和装置 | |
Noorallahzade et al. | A survey on public key encryption with keyword search: Taxonomy and methods | |
Gajmal et al. | Blockchain-based access control and data sharing mechanism in cloud decentralized storage system | |
Yan et al. | Secure and efficient big data deduplication in fog computing | |
Luo et al. | Accountable data sharing scheme based on blockchain and SGX | |
CN116663046A (zh) | 基于区块链的隐私数据共享和检索方法、系统及设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |