CN116561786B - 一种基于区块链的医疗数据分类加密共享方法 - Google Patents
一种基于区块链的医疗数据分类加密共享方法 Download PDFInfo
- Publication number
- CN116561786B CN116561786B CN202310713088.0A CN202310713088A CN116561786B CN 116561786 B CN116561786 B CN 116561786B CN 202310713088 A CN202310713088 A CN 202310713088A CN 116561786 B CN116561786 B CN 116561786B
- Authority
- CN
- China
- Prior art keywords
- data
- attribute
- blockchain
- access
- encryption
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 45
- 201000010099 disease Diseases 0.000 claims abstract description 20
- 208000037265 diseases, disorders, signs and symptoms Diseases 0.000 claims abstract description 20
- 238000012545 processing Methods 0.000 claims description 12
- JMYHHWKXFCFDSK-UHFFFAOYSA-N 2-(2,4-dimethylphenyl)indene-1,3-dione Chemical compound CC1=CC(C)=CC=C1C1C(=O)C2=CC=CC=C2C1=O JMYHHWKXFCFDSK-UHFFFAOYSA-N 0.000 claims description 10
- 238000011282 treatment Methods 0.000 claims description 8
- 238000013475 authorization Methods 0.000 claims description 6
- 238000013507 mapping Methods 0.000 claims description 3
- 238000004364 calculation method Methods 0.000 abstract description 8
- 238000005516 engineering process Methods 0.000 abstract description 6
- 238000011160 research Methods 0.000 description 6
- 238000010586 diagram Methods 0.000 description 4
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 208000003556 Dry Eye Syndromes Diseases 0.000 description 1
- 206010013774 Dry eye Diseases 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000003759 clinical diagnosis Methods 0.000 description 1
- 238000007405 data analysis Methods 0.000 description 1
- 238000003745 diagnosis Methods 0.000 description 1
- 210000000887 face Anatomy 0.000 description 1
- 210000000214 mouth Anatomy 0.000 description 1
- 208000001491 myopia Diseases 0.000 description 1
- 230000004379 myopia Effects 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/602—Providing cryptographic facilities or services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/24—Classification techniques
- G06F18/241—Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches
-
- 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/64—Protecting data integrity, e.g. using checksums, certificates or signatures
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02A—TECHNOLOGIES FOR ADAPTATION TO CLIMATE CHANGE
- Y02A90/00—Technologies having an indirect contribution to adaptation to climate change
- Y02A90/10—Information and communication technologies [ICT] supporting adaptation to climate change, e.g. for weather forecasting or climate simulation
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Data Mining & Analysis (AREA)
- Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- General Health & Medical Sciences (AREA)
- Bioethics (AREA)
- Software Systems (AREA)
- Databases & Information Systems (AREA)
- Life Sciences & Earth Sciences (AREA)
- Computing Systems (AREA)
- Artificial Intelligence (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Bioinformatics & Computational Biology (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Evolutionary Biology (AREA)
- Evolutionary Computation (AREA)
- Storage Device Security (AREA)
Abstract
本发明提供基于区块链的医疗数据分类加密共享方法,属于信息安全技术领域,该方法包括:系统初始化、医疗数据加密处理、密钥生成以及数据共享等步骤;本发明采用星际文件系统存储加密医疗数据,区块链存储医疗数据描述、访问策略、密钥等信息的方式减轻区块链存储压力,将医疗数据按照基本信息、医疗科室、疾病进行细粒度划分后分类加密,按需共享数据,避免数据滥用,并利用区块链技术和加密算法相结合的方法提供灵活的访问控制,对称加密和基于属性的加密相结合的方法减小计算开销。
Description
技术领域
本发明涉及信息安全技术领域,尤其涉及一种基于区块链的医疗数据分类加密共享方法。
背景技术
当今社会,医疗数据是医学研究、临床诊断和治疗的重要基础,共享医疗数据能促进数据分析、支持临床决策和加快疾病研究。然而,由于医疗数据涉及到患者的隐私等敏感信息,医疗数据共享面临着诸多的技术和隐私保护等挑战。目前大多医疗数据共享方案结合区块链技术与密码学技术实现对医疗数据确权、追溯,并保证数据的机密性、完整性和真实性。其中一些方案共享患者的全部医疗数据,并不能很好地保护用户隐私。故部分方案也将患者数据划分为共享部分和隐私部分进行隐私保护,这虽然相比传统方案共享患者的整份电子健康记录有更好的细粒度控制,但仍没有满足共享医疗数据时最小必要原则。考虑到患者可能会跨多个医疗机构就诊,机构之间需要患者的相关科室数据以及研究人员需要对某种疾病进行研究,但不能获得与研究疾病不相关的病人其他信息,而现有方案的数据细粒度不能满足上述需求,故需要进一步提升数据细粒度的控制。而将患者的医疗数据划分成多个子数据,再对这些子数据使用属性加密,这会带来比原本加密一份完整数据更大的计算开销。
发明内容
本发明所要解决的技术问题是提供一种结合区块链技术、基于属性的加密算法和对称加密算法的医疗数据分类加密共享方法,解决现有方案中医疗数据细粒度不满足医疗数据共享最小必要原则、对大量子数据加密计算开销大的问题,有效避免数据滥用和减少计算开销。
为了达到以上目的,本发明采用的技术方案为:
本方案提供一种基于区块链的医疗数据分类加密共享方法,包括以下步骤:
S1、系统初始化:包括数据模板初始化、区块链初始化以及属性授权机构初始化;所述数据模板初始化包括设定数据模板:将医疗数据按照患者基本信息、疾病所属科室以及科室中每类疾病进行分类整理得到;
S2、医疗数据加密处理:具体包括:
S21、将医疗数据按照设定数据模板进行处理,采用AES算法对处理后的数据进行加密,并存储至星际文件系统IPFS,IPFS返回内容标识符CID;
S22、设置数据访问策略:将相同科室或相同基本信息类的数据设置相同的访问策略;
S23、修改访问策略:分析访问策略,保留重复部分的访问策略,并采用智能合约属性替换不同部分的访问策略;
S24、属性加密医疗数据的对称密钥,生成属性加密密文,并存储至区块链上;
S3、密钥生成:属性授权机构生成用户密钥以及区块链密钥;
S4、数据共享:数据使用者发送数据请求,通过访问授权,以及区块链解密、属性加密解密以及AES解密后,获得医疗数据。
进一步地,所述S1包括以下步骤:
S101、数据模板初始化:数据管理者将个人医疗数据按照患者基本信息类、科室类对数据进行分类,再对每个科室中的每类疾病进行分类,得到数据模板;
设定个人医疗数据表示为M,对M按照上述方法进行分类得到数据模板M':
M'={mij|i∈{1,2,...,u},j∈{1,2,...,v}}
其中,患者基本信息集表示为m1j={m11,m12,m13,...,m1v},患者基本信息包括患者姓名、患者性别、患者所属地区信息、患者习惯以及其它基本数据;m11为患者姓名,m12为患者性别,m13为患者所属地区信息,m14为患者习惯,m1j为患者其他基本数据;
其中,{mnj,j∈{1,2,3,...,v}},表示某患者某一科室数据;mij,i≠1,表示模板M'中i类科室j类疾病信息;mij≠0,表示患者i类科室的j类疾病数据;
S102、区块链初始化:用户使用带有身份属性的证书加入区块链,数据管理者注册编号DMID,数据使用者注册编号DUID;区块链上的智能合约部署完成;
S103、加密系统初始化:属性授权机构执行基于属性加密算法的初始化:属性授权机构选择安全参数q,生成一个阶为素数p且生成元为g的双线性群G0和一个双线性映射e:G0×G0→G1,再选择两个随机参数α,β∈Zp,属性授权机构生成系统公钥:PK=(G0,g,h=gβ,e(g,g)α)及系统密钥:MK=(β,gα,g-α)。
进一步地,所述S2包括以下步骤:
S21、将医疗数据按照设定数据模板进行处理,采用AES算法对处理后的数据进行加密,并存储至星际文件系统IPFS,IPFS返回内容标识符CID;
S211、将患者的医疗数据M进行数据模板处理,得到M'={mij},若mij=0,表示该项无数据;
S212、对称加密:采用AES算法对称加密数据M'中的每个子数据mij;
S213、生成对称加密密钥;一一对应生成kij,K={kij}作为对称加密密钥集合;
S214、对医疗数据mij加密得到密文Tij=AES.encrypt(kij,mij);则M'对称加密后得到密文T={Tij|i∈{1,2,...,u},j∈{1,2,...,v}},将密文存储至星际文件系统。
进一步地,所述S22包括以下步骤:
设定数据M'的访问策略P={pi|i∈{1,2,3,...,u}},并将访问策略P发送给数据管理者;其中,相同科室或基本信息类的数据对应相同的访问策略。
进一步地,所述S23包括以下步骤:
挑选拟简化的访问策略,分析该策略的重复部分,保留重复部分并使用智能合约属性替换不同部分的访问策略,并将被替换的访问策略记录为Q={qi|i∈{1,2,3...,u}},qi=0则表示pi未修改;
对访问策略修改后得到P'={pi'|i∈{1,2,3,...,u}},其中,使用了智能合约属性的访问策略pi'相同。
进一步地,所述S24包括以下步骤:
S241、构建访问结构树:根据数据T的访问控制树τ={τi|i∈{1,2,3,...,u}},构建u个访问控制树;访问控制树由叶子节点和非叶子节点两类组成,单个叶子节点代表访问策略中的一个属性,单个非叶子节点代表访问策略中的门限;
S242、计算访问结构树:加密数据Tij,从根节点R开始选择随机值SR∈Zp,生成多项式为LR,多项式LR的度dR比该节点R的门限值kR少1,并设置LR(0)=SR;为根节点的左孩子节点Rl生成多项式为选择随机值/>设置/>index(Rl)是节点Rl的索引值;根节点的右孩子节点Rr生成多项式为/>选择随机值/>设置index(Rr)是节点Rr的索引值;
计算所有其他节点x,选取多项式Lx,设置多项式Lx的度dx及其秘密值Sx,令Lx(0)=Sx=Lparent(x)(index(x)),其中,parent(x)为节点x的父亲节点,index(x)是节点x的索引值;
S243、生成属性加密密文;令访问结构τi中叶子节点集合为Y,则明文kij在访问结构τi下的密文为:
其中SR是访问结构树τi的根节点选取的随机值,att(y)是叶子节点y的属性值,H表示将任意01字符串映射到G1的方法,则数据M'经过属性加密后的密文:CT={CTij,i∈{1,2,3,...,u},j∈{1,2,3,...,v}};DM为CT生成密文编号CTID。
S244、数据上传至区块链:将数据模板M'、密文CT、内容标识符CID、区块链访问策略Q、密文CT的密文编号CTID和数据管理者编号DMID通过智能合约存入区块链。
进一步地,所述S3包括以下步骤:
S31、属性授权机构CA生成用户密钥;
S311、用户向属性授权机构CA发送自己的属性集S;
S312、属性授权机构CA选择一个随机数r∈Zp,以及为属性集S中的每个属性w∈S,挑选随机数rj∈Zp,然后计算出密钥:
并将密钥通过安全信道发送给用户;
S32、属性授权机构CA生成区块链密钥:
S321、用户将自己密钥中的密钥组件Dp=g(α+r)/β发送给属性授权机构CA;
S322、属性授权机构CA对密钥进行处理,则该用户对应的区块链的密钥为:属性授权机构CA将SKbc上传至区块链。
进一步地,所述S4包括以下步骤:
S41、数据查询:数据使用者DU将数据使用者编号DUID、数据管理者编号DMID、密文编号CTID和序号IJ发送给区块链,申请获得患者的部分数据CT';
S42、患者授权:智能合约检查数据使用者的身份是否符合Q中序号IJ对应部分的访问策略Q',若符合则进行下一步,不符合则区块链返回,用户无权访问数据;
S43、区块链解密:调用对应该用户的区块链密钥SKbc,计算属性值是智能合约sc的叶子节点:
并将DMID、CTID、计算值att(y)=sc、序号IJ、CID、CT'发送给数据使用者;
S44、用户解密:数据使用者使用公开参数PK和属性密钥SK将CT'解密,具体为:
S441、对于单个加密数据CTij计算访问控制树中的叶子节点,若用户的属性值与叶子节点的属性值匹配,则通过如下公式计算:
若属性值不匹配,则该DN(CTij,SKp,y)=⊥;
再递归计算所有非叶子节点x,对于节点x的所有子节点z,找到用户拥有的满足节点z的属性,当节点z是叶子节点时,按上一步骤计算出
再计算a=index(z),S'x={index(z):z∈Sx},Sx是Fz≠⊥的kx个z节点的集合;
递归计算至根节点得到
最后解密属性加密的密文获得kij:
S442、使用上述方法解密CT',获得AES密钥
S45、获取加密数据:数据使用者使用CID从星际文件系统IPFS中得到AES加密的医疗数据
S46、AES解密获得医疗数据,具体为:
S461、用户使用AES密钥kij解密Tij获得单个医疗数据mij:
mij=AES.decrypt(kij,Tij);
S462、同理可由AES算法解密T',获得医疗数据
与现有技术相比,采用本发明的技术方案,所带来的有益效果为:
(1)本发明采用星际文件系统存储加密医疗数据,区块链存储医疗数据描述、访问策略、密钥等信息的方式减轻区块链存储压力,将医疗数据按照基本信息、医疗科室、疾病进行细粒度划分后分类加密,按需共享数据,避免数据滥用,并利用区块链技术和加密算法相结合的方法提供灵活的访问控制,对称加密和基于属性的加密相结合的方法减小计算开销。
(2)本发明在共享医疗数据时为了满足最小必要原则,采用按基本信息、科室、疾病对医疗数据进行更细粒度的划分,能更加精准地共享医疗数据,避免数据滥用。
(3)相比现有方案中仅依靠分级关系才能合并访问控制树,本方案通过修改访问策略,即保留多条策略中的相同部分,用智能合约属性替换不同部分,从而统一访问结构树,减少计算和存储开销。
(4)本发明在区块链上存储被智能合约属性替换掉的访问策略并依此策略实施访问控制,相比传统方案的属性加密算法实现属性撤销更加灵活。
附图说明
图1为本发明的方法流程图。
图2为本发明实施例中医疗数据模板处理示意图。
图3为本发明实施例中医疗数据访问结构树合并图。
图4为本发明一种基于区块链的医疗数据分类加密共享方法的时序图。
具体实施方式
下面对本发明的具体实施方式进行描述,以便于本技术领域的技术人员理解本发明,但应该清楚,本发明不限于具体实施方式的范围,对本技术领域的普通技术人员来讲,只要各种变化在所附的权利要求限定和确定的本发明的精神和范围内,这些变化是显而易见的,一切利用本发明构思的发明创造均在保护之列。
实施例
如图1-图3所示,本发明提供了一种基于区块链的医疗数据分类加密共享方法,包括以下步骤:
步骤S1:系统初始化;具体包括以下步骤:
步骤S11、数据模板初始化,如图1所示,表示医疗数据M的模板处理示意图;数据管理者将个人医疗数据按照基本信息类、科室类对数据进行划分,再对每个科室中的每类疾病进行划分,得到数据模板;
设定个人医疗数据表示为M,对M按照上述方法进行分类得到数据模板M':
M'={mij|i∈{1,2,...,u},j∈{1,2,...,v}}
其中,患者基本信息集合表示为m1j={m11,m12,m13,...,m1v},例如:m11存储患者姓名信息,m12存储患者性别信息,m13存储为患者所属地区信息,m14存储为患者习惯信息,m1j存储患者其他基本数据;
其中,{mnj,j∈{1,2,3,...,v}},表示某患者某一科室数据,例如:{m2j}表示患者眼科数据,{m3j}表示患者口腔科数据;mij,i≠1,表示模板M'中i类科室j类疾病信息,例如:{m21}记录近视疾病的诊疗信息,{m22}可记录干眼症的相关信息等;mij≠0,表示患者i类科室的j类疾病数据;同时,医疗机构也可根据自己的实际情况构建模板。
步骤S12、区块链初始化:所有用户使用带有身份属性的证书加入区块链,区块链上的智能合约部署完成。
步骤S13、加密系统初始化:属性授权机构执行基于属性加密算法的初始化:属性授权机构选择安全参数q,生成一个阶为素数p且生成元为g的双线性群G0和一个双线性映射e:G0×G0→G1,再选择两个随机参数α,β∈Zp,属性授权机构生成系统公钥:PK=(G0,g,h=gβ,e(g,g)α)及系统密钥:MK=(β,gα,g-α)。
步骤S2:医疗数据加密处理,具体包括以下步骤:
S21、将医疗数据按照设定数据模板进行处理,采用AES算法对处理后的数据进行加密,并存储至星际文件系统IPFS,IPFS返回内容标识符CID,具体包括:
S211、数据处理:数据管理者DM将患者个人医疗数据M按照步骤S1生成的数据模板处理为M'={mij},若mij=0,表示该项无数据;
S212、对称加密:数据管理者使用AES算法加密数据M'中的每个子数据mij;
S213、生成对称加密密钥;一一对应生成kij,K={kij}作为对称加密密钥集合;
S214、数据管理者对医疗数据mij加密得到密文Tij=AES.encrypt(kij,mij);同理则整个数据M'对称加密后得到密文T={Tij|i∈{1,2,...,u},j∈{1,2,...,v}},将经对称加密后的数据T存储在星际文件系统IPFS;IPFS返回给数据管理者数据T的CID={CIDij},其中CIDij是数据Tij的内容标识符;
S22、设置数据访问策略;设定数据M'的访问策略P={pi|i∈{1,2,3,...,u}},并将访问策略P发送给数据管理者;同一科室或基本信息类的数据对应相同的访问策略,如眼科类的{m2j}都使用访问策略p2加密;
S23、修改访问策略:数据管理者挑选拟简化的访问策略,分析这些策略的重复部分,保留重复部分并使用智能合约属性sc代替不同部分的访问策略,并将被替换的访问策略记录为Q={qi|i∈{1,2,3...,u}},qi=0则表示pi未修改;对访问策略修改后得到P'={pi'|i∈{1,2,3,...,u}},其中,使用了智能合约属性的访问策略pi'相同,如眼科的数据设定访问策略:
p2={眼科AND(医院OR研究机构)AND(国内)OR(国外AND一级)}
口腔科的数据设定访问策略:p3={口腔AND(医院OR研究机构)}
保留两条策略重复的部分:AND(医院OR研究机构)
将其余部分用智能合约属性替换,则
p2'=p3'=(智能合约AND(医院OR研究机构))
q2=(眼科AND(国内OR(国外AND一级)))
q3=(口腔)。
步骤S24、属性加密医疗数据的对称密钥,具体包括:
S241、构建访问结构树:数据管理者根据数据T的访问结构树τ={τi|i∈{1,2,3,...,u}},构建u个访问控制树;访问控制树由叶子节点和非叶子节点两类组成,单个叶子节点代表访问策略中的一个属性,单个非叶子节点代表访问策略中的门限;当如图2,其中包含智能合约属性的访问控制树τ2和τ3相同;
S242、计算访问结构树:加密数据Tij,从根节点R开始选择随机值SR∈Zp,生成多项式为LR,多项式LR的度dR比该节点R的门限值kR少1,并设置LR(0)=SR;为根节点的左孩子节点Rl生成多项式为选择随机值/>设置/>index(Rl)是节点Rl的索引值;根节点的右孩子节点Rr生成多项式为/>选择随机值/>设置index(Rr)是节点Rr的索引值;
同理计算其他节点x,选取多项式Lx,设置多项式Lx的度dx及其秘密值Sx,令Lx(0)=Sx=Lparent(x)(index(x)),其中,parent(x)为节点x的父亲节点,index(x)是节点x的索引值;
S243、生成属性加密密文;令访问结构τi中叶子节点集合为Y,则明文kij在访问结构τi下的密文为:
其中SR是访问结构树τi的根节点选取的随机值,att(y)是叶子节点y的属性值,H表示将任意01字符串映射到G1的方法,则医疗数据M'经过属性加密后的密文:CT={CTij|i∈{1,2,3,...,u},j∈{1,2,3,...,v}};DM为CT生成密文编号CTID;使用智能合约属性的合并访问结构树τi相同,如τ2和τ3的访问结构树相同,则密文中Cij、Cy、Cy'仅需计算一次,减少了计算开销;
S244、数据上传至区块链:数据管理者将数据模板M'、密文CT、内容标识符CID、区块链访问策略Q、密文CT的密文编号CTID和数据管理者编号DMID通过智能合约存入区块链。
步骤S3:密钥生成,具体包括以下步骤:
S31、属性授权机构CA生成用户密钥;
S311、用户向属性授权机构CA发送自己的属性集S;
S312、属性授权机构CA选择一个随机数r∈Zp,以及为属性集S中的每个属性w∈S,挑选随机数rj∈Zp,然后计算出密钥:
并将密钥通过安全信道发送给用户;
S32、属性授权机构生成区块链密钥:
S321、用户将自己密钥中的密钥组件Dp=g(α+r)/β发送给属性授权机构CA;
S322、属性授权机构CA对密钥进行处理,则该用户对应的区块链的密钥为:属性授权机构CA将SKbc上传至区块链。
步骤S4:数据共享:数据使用者发送数据请求,通过访问授权,以及区块链解密、属性加密解密以及AES解密后,获得医疗数据,具体包括以下步骤:
S41、数据查询:数据使用者DU将数据使用者编号DUID、数据管理者编号DMID、密文编号CTID和序号IJ发送给区块链,申请获得患者的部分数据CT';
S42、患者授权:智能合约检查数据使用者的身份是否符合Q中序号IJ对应部分的访问策略Q',若符合则进行下一步,不符合则区块链返回,用户无权访问数据;
S43、区块链解密:调用对应该用户的区块链密钥SKbc,计算属性值是智能合约sc的叶子节点:
并将DMID、CTID、计算值att(y)=sc、序号IJ、CID、CT'发送给数据使用者;
S44、用户解密:数据使用者使用公开参数PK和属性密钥SK将CT'解密,具体为:
S441、对于单个加密数据CTij计算访问控制树中的叶子节点,若用户的属性值与叶子节点的属性值匹配,则通过如下公式计算:
若属性值不匹配,则该DN(CTij,SKp,y)=⊥;
接下来再递归计算所有非叶子节点x,对于节点x的所有子节点z,找到用户拥有的满足节点z的属性,当节点z是叶子节点时,按上一步骤计算出
再计算a=index(z),S'x={index(z):z∈Sx},Sx是Fz≠⊥的kx个z节点的集合;
递归计算至根节点得到
最后解密属性加密的密文获得kij:
S442、使用上述方法解密CT',获得AES密钥
步骤S45:获取加密数据:数据使用者使用CID从星际文件系统IPFS中得到AES加密的医疗数据
步骤S46:AES解密获得医疗数据,具体为:
S461、用户使用AES密钥kij解密Tij获得单个医疗数据mij:
mij=AES.decrypt(kij,Tij);
S462、同理可由AES算法解密T',获得医疗数据
本发明提供的基于区块链的医疗数据分类加密共享方法基本思想是采用星际文件系统存储加密医疗数据,区块链存储医疗数据描述、访问策略、密钥等信息的方式减轻区块链存储压力,将医疗数据按照基本信息、医疗科室、疾病进行细粒度划分后分类加密,按需共享数据,避免数据滥用,并利用区块链技术和加密算法相结合的方法提供灵活的访问控制,对称加密和基于属性的加密相结合的方法减小计算开销。
本领域的普通技术人员将会意识到,这里所述的实施例是为了帮助读者理解本发明的原理,应被理解为本发明的保护范围并不局限于这样的特别陈述和实施例。本领域的普通技术人员可以根据本发明公开的这些技术启示做出各种不脱离本发明实质的其它各种具体变形和组合,这些变形和组合仍然在本发明的保护范围内。
Claims (7)
1.一种基于区块链的医疗数据分类加密共享方法,其特征是,包括以下步骤:
S1、系统初始化:包括数据模板初始化、区块链初始化以及属性授权机构初始化;所述数据模板初始化包括设定数据模板:将医疗数据按照患者基本信息、疾病所属科室以及科室中每类疾病进行分类整理;
S2、医疗数据加密处理:具体包括:
S21、将医疗数据按照设定数据模板进行处理,采用AES算法对处理后的数据进行加密,并存储至星际文件系统;
S22、设置数据访问策略:将相同科室或相同基本信息类的数据设置相同的访问策略;
S23、修改访问策略:分析访问策略,保留重复部分的访问策略,并采用智能合约属性替换不同部分的访问策略;
S24、属性加密医疗数据的对称密钥,生成属性加密密文,并存储至区块链上;
S3、密钥生成:属性授权机构生成用户密钥以及区块链密钥;
S4、数据共享:数据使用者发送数据请求,通过访问授权,以及区块链解密、属性加密解密以及AES解密后,获得医疗数据;
所述S1包括以下步骤:
S11、数据模板初始化:数据管理者将个人医疗数据按照患者基本信息类、科室类对数据进行分类,再对每个科室中的每类疾病进行分类,得到数据模板;
设定个人医疗数据表示为M,对M按照上述方法进行分类得到数据模板M':M'={mij|i∈{1,2,...,u},j∈{1,2,...,v}}
其中,患者基本信息集表示为m1j={m11,m12,m13,...,m1v},患者基本信息包括患者姓名、患者性别、患者所属地区信息、患者习惯以及其它基本数据;m11为患者姓名,m12为患者性别,m13为患者所属地区信息,m14为患者习惯,m1j为患者其他基本数据;
其中,{mnj|j∈{1,2,3,...,v}},表示某患者某一科室数据;mij,i≠1,表示模板M'中i类科室j类疾病信息;mij≠0,表示患者i类科室的j类疾病数据;
S12、区块链初始化:用户使用带有身份属性的证书加入区块链,区块链上的智能合约部署完成;
S13、加密系统初始化:属性授权机构执行基于属性加密算法的初始化:属性授权机构选择安全参数q,生成一个阶为素数p且生成元为g的双线性群G0和一个双线性映射e:G0×G0→G1,再选择两个随机参数α,β∈Zp,属性授权机构生成系统公钥:PK=(G0,g,h=gβ,e(g,g)α)及系统密钥:MK=(β,gα,g-α)。
2.根据权利要求1所述的基于区块链的医疗数据分类加密共享方法,其特征是,所述S2包括以下步骤:
S21、将医疗数据按照设定数据模板进行处理,采用AES算法对处理后的数据进行加密,并存储至星际文件系统IPFS,IPFS返回内容标识符CID;
S211、将患者的医疗数据M进行数据模板处理,得到M'={mij},若mij=0,表示对应项无数据;
S212、对称加密:采用AES算法对称加密数据M'中的每个子数据mij;
S213、生成对称加密密钥;一一对应生成kij,K={kij}作为对称加密密钥集合;
S214、对数据mij加密得到密文Tij=AES.encrypt(kij,mij);则M'对称加密后得到密文T={Tij|i∈{1,2,…,u},j∈{1,2,…,v}},将密文存储至星际文件系统。
3.根据权利要求2所述的基于区块链的医疗数据分类加密共享方法,其特征是,所述S22包括以下步骤:
设定数据M'的访问策略P={pi|i∈{1,2,3…,u}},并将访问策略P发送给数据管理者;其中,相同科室或基本信息类的数据对应相同的访问策略。
4.根据权利要求3所述的基于区块链的医疗数据分类加密共享方法,其特征是,所述S23包括以下步骤:
挑选拟简化的访问策略,分析该策略的重复部分,保留重复部分并使用智能合约属性替换不同部分的访问策略,并将被替换的访问策略记录为Q={qi|i∈{1,2,3…,u}},qi=0则表示pi未修改;
对访问策略修改后得到P'={pi'|i∈{1,2,3,...,u}},其中,使用智能合约属性的访问策略pi'相同。
5.根据权利要求2所述的基于区块链的医疗数据分类加密共享方法,其特征是,所述S24包括以下步骤:
S241、构建访问结构树:根据数据T的访问控制树τ={τi|i∈{1,2,3,…,u}},构建u个访问控制树;访问控制树由叶子节点和非叶子节点两类组成,单个叶子节点代表访问策略中的一个属性,单个非叶子节点代表访问策略中的门限;
S242、计算访问结构树:加密数据Tij,从根节点R开始选择随机值SR∈Zp,生成多项式为LR,多项式LR的度dR比该节点R的门限值kR少1,并设置LR(0)=SR;为根节点的左孩子节点Rl生成多项式为选择随机值/>设置/>index(Rl)是节点Rl的索引值;根节点的右孩子节点Rr生成多项式为/>选择随机值/>设置index(Rr)是节点Rr的索引值;
计算所有其它节点x,选取多项式Lx,设置多项式Lx的度dx及其秘密值Sx,令Lx(0)=Sx=Lparent(x)(index(x)),其中,parent(x)为节点x的父亲节点,index(x)是节点x的索引值;
S243、生成属性加密密文;令访问结构树τi中叶子节点集合为Y,则明文kij在访问结构τi下的密文为:
其中SR是访问结构树τi的根节点选取的随机值,att(y)是叶子节点y的属性值,H表示将任意01字符串映射到G1的方法,则数据M'经过属性加密后的密文:CT={CTij|i∈{1,2,3,...,u},j∈{1,2,3,...,v}};DM为CT生成密文编号CTID;
S244、数据上传至区块链:将数据模板M'、密文CT、内容标识符CID、区块链访问策略Q、密文CT的密文编号CTID和数据管理者编号DMID通过智能合约存入区块链。
6.根据权利要求1所述的基于区块链的医疗数据分类加密共享方法,其特征是,所述S3包括以下步骤:
S31、属性授权机构CA生成用户密钥;
S311、用户向属性授权机构CA发送自己的属性集S;
S312、属性授权机构CA选择一个随机数r∈Zp,以及为属性集S中的每个属性w∈S,挑选随机数rj∈Zp,然后计算出密钥:
并将密钥通过安全信道发送给用户;
S32、属性授权机构CA生成区块链密钥:
S321、用户将自己密钥中的密钥组件Dp=g(α+r)/β发送给属性授权机构CA;
S322、属性授权机构CA对密钥进行处理,则该用户对应的区块链的密钥为:属性授权机构CA将SKbc上传至区块链。
7.根据权利要求1所述的基于区块链的医疗数据分类加密共享方法,其特征是,所述S4包括以下步骤:
S41、数据查询:数据使用者DU将数据使用者编号DUID、数据管理者编号DMID、密文编号CTID和序号IJ发送给区块链,申请获得患者的部分数据CT';
S42、患者授权:智能合约检查数据使用者的身份是否符合Q中序号IJ对应部分的访问策略Q',若符合则进行下一步,不符合则区块链返回,用户无权访问数据;
S43、区块链解密:调用对应该用户的区块链密钥SKbc,计算属性值是智能合约sc的叶子节点:
并将DMID、CTID、计算值att(y)=sc、序号IJ、CID、CT'发送给数据使用者;
S44、用户解密:数据使用者使用公开参数PK和属性密钥SK将CT'解密,具体为:
S441、对于单个加密数据CTij计算访问控制树中的叶子节点,若用户的属性值与叶子节点的属性值匹配,则通过如下公式计算:
若属性值不匹配,则该DN(CTij,SKp,y)=⊥;
再递归计算所有非叶子节点x,对于节点x的所有子节点z,找到用户拥有的满足节点z的属性,当节点z是叶子节点时,按上一步骤计算出
再计算Sx是Fz≠⊥的kx个z节点的集合;
递归计算至根节点得到
最后解密属性加密的密文获得kij:
S442、解密CT',获得AES密钥
S45、获取加密数据:数据使用者使用CID从星际文件系统IPFS中得到AES加密的医疗数据
S46、AES解密获得医疗数据,具体为:
S461、用户使用AES密钥kij解密Tij获得单个医疗数据mij:
mij=AES.decrypt(kij,Tij);
S462、同理可由AES算法解密T',获得医疗数据
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310713088.0A CN116561786B (zh) | 2023-06-14 | 2023-06-14 | 一种基于区块链的医疗数据分类加密共享方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310713088.0A CN116561786B (zh) | 2023-06-14 | 2023-06-14 | 一种基于区块链的医疗数据分类加密共享方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116561786A CN116561786A (zh) | 2023-08-08 |
CN116561786B true CN116561786B (zh) | 2024-01-26 |
Family
ID=87493121
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310713088.0A Active CN116561786B (zh) | 2023-06-14 | 2023-06-14 | 一种基于区块链的医疗数据分类加密共享方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116561786B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109741803A (zh) * | 2019-01-14 | 2019-05-10 | 南京大学 | 基于区块链的医疗数据安全协作系统 |
CN112365945A (zh) * | 2020-10-27 | 2021-02-12 | 扬州大学 | 基于区块链的电子病历细粒度访问控制和密文可搜索方法 |
KR20210063619A (ko) * | 2019-11-25 | 2021-06-02 | 서강대학교산학협력단 | 속성을 기반으로 한 블록체인 네트워크에서의 접근 권한 제어 시스템 및 접근 권한 제어 방법 |
CN114679271A (zh) * | 2022-05-25 | 2022-06-28 | 南京理工大学 | 区块链隐私数据访问控制方法和系统 |
-
2023
- 2023-06-14 CN CN202310713088.0A patent/CN116561786B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109741803A (zh) * | 2019-01-14 | 2019-05-10 | 南京大学 | 基于区块链的医疗数据安全协作系统 |
KR20210063619A (ko) * | 2019-11-25 | 2021-06-02 | 서강대학교산학협력단 | 속성을 기반으로 한 블록체인 네트워크에서의 접근 권한 제어 시스템 및 접근 권한 제어 방법 |
CN112365945A (zh) * | 2020-10-27 | 2021-02-12 | 扬州大学 | 基于区块链的电子病历细粒度访问控制和密文可搜索方法 |
CN114679271A (zh) * | 2022-05-25 | 2022-06-28 | 南京理工大学 | 区块链隐私数据访问控制方法和系统 |
Also Published As
Publication number | Publication date |
---|---|
CN116561786A (zh) | 2023-08-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Prince et al. | Privacy enforced access control model for secured data handling in cloud-based pervasive health care system | |
Guo et al. | Flexible and efficient blockchain-based ABE scheme with multi-authority for medical on demand in telemedicine system | |
CN111916173B (zh) | 基于ipfs和联盟链的医疗数据安全共享系统及方法 | |
US11425171B2 (en) | Method and system for cryptographic attribute-based access control supporting dynamic rules | |
JP4975035B2 (ja) | 暗号化による役割ベースのアクセス制御 | |
US8635464B2 (en) | Attribute-based access-controlled data-storage system | |
US8996863B2 (en) | Attribute-based access-controlled data-storage system | |
Barua et al. | ESPAC: Enabling Security and Patient-centric Access Control for eHealth in cloud computing | |
Li et al. | EHRChain: A blockchain-based EHR system using attribute-based and homomorphic cryptosystem | |
Nabeel et al. | Attribute Based Group Key Management. | |
CN104135473B (zh) | 一种由密文策略的属性基加密实现身份基广播加密的方法 | |
Kim et al. | MPPDS: multilevel privacy-preserving data sharing in a collaborative eHealth system | |
CN110611662B (zh) | 一种基于属性基加密的雾协同云数据共享方法 | |
US20230094541A1 (en) | Dynamic encryption/decryption of genomic information | |
Liu et al. | Anonymous electronic health record sharing scheme based on decentralized hierarchical attribute-based encryption in cloud environment | |
CN115296845A (zh) | 一种基于属性加密的医疗数据分级访问控制方法及系统 | |
Zhang et al. | Efficient hierarchical data access control for resource-limited users in cloud-based e-health | |
Guo et al. | A hybrid blockchain-edge architecture for electronic health record management with attribute-based cryptographic mechanisms | |
CN113411323A (zh) | 基于属性加密的医疗病历数据访问控制系统及方法 | |
Guan et al. | Achieving secure and efficient data access control for cloud-integrated body sensor networks | |
CN114553582A (zh) | 基于国密算法和ipfs的电子病历共享方法 | |
CN111901328B (zh) | 一种基于素数阶群的基于属性加密方法 | |
CN116561786B (zh) | 一种基于区块链的医疗数据分类加密共享方法 | |
Rai et al. | Pseudonymization techniques for providing privacy and security in EHR | |
CN115174072B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |