欢迎来到知嘟嘟! 联系电话:13095918853 卖家免费入驻,海量在线求购! 卖家免费入驻,海量在线求购!
知嘟嘟
我要发布
联系电话:13095918853
知嘟嘟经纪人
收藏
专利号: 2023107130880
申请人: 成都信息工程大学
专利类型:发明专利
专利状态:已下证
专利领域: 计算;推算;计数
更新日期:2024-06-26
缴费截止日期: 暂无
价格&联系人
年费信息
委托购买

摘要:

权利要求书:

1.一种基于区块链的医疗数据分类加密共享方法,其特征是,包括以下步骤:S1、系统初始化:包括数据模板初始化、区块链初始化以及属性授权机构初始化;所述数据模板初始化包括设定数据模板:将医疗数据按照患者基本信息、疾病所属科室以及科室中每类疾病进行分类整理得到;

S2、医疗数据加密处理:具体包括:

S21、将医疗数据按照设定数据模板进行处理,采用AES算法对处理后的数据进行加密,并存储至星际文件系统;

S22、设置数据访问策略:将相同科室或相同基本信息类的数据设置相同的访问策略;

S23、修改访问策略:分析访问策略,保留重复部分的访问策略,并采用智能合约属性替换不同部分的访问策略;

S24、属性加密医疗数据的对称密钥,生成属性加密密文,并存储至区块链上;

S3、密钥生成:属性授权机构生成用户密钥以及区块链密钥;

S4、数据共享:数据使用者发送数据请求,通过访问授权,以及区块链解密、属性加密解密以及AES解密后,获得医疗数据。

2.根据权利要求1所述的基于区块链的医疗数据分类加密共享方法,其特征是,所述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 )。

3.根据权利要求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}},将密文存储至星际文件系统。

4.根据权利要求3所述的基于区块链的医疗数据分类加密共享方法,其特征是,所述S22包括以下步骤:设定数据M'的访问策略P={pi|i∈{1,2,3…,u}},并将访问策略P发送给数据管理者;

其中,相同科室或基本信息类的数据对应相同的访问策略。

5.根据权利要求4所述的基于区块链的医疗数据分类加密共享方法,其特征是,所述S23包括以下步骤:挑选拟简化的访问策略,分析该策略的重复部分,保留重复部分并使用智能合约属性替换不同部分的访问策略,并将被替换的访问策略记录为Q={qi|i∈{1,2,3…,u}},qi=0则表示pi未修改;

对访问策略修改后得到P'={pi'|i∈{1,2,3,...,u}},其中,使用智能合约属性的访问策略pi'相同。

6.根据权利要求3所述的基于区块链的医疗数据分类加密共享方法,其特征是,所述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生成多项式为LRl,选择随机值SRl∈Zp,设置 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通过智能合约存入区块链。

7.根据权利要求1所述的基于区块链的医疗数据分类加密共享方法,其特征是,所述S3包括以下步骤:S31、属性授权机构CA生成用户密钥;

S311、用户向属性授权机构CA发送自己的属性集S;

S312、属性授权机构CA选择一个随机数r∈Zp,以及为属性集S中的每个属性w∈S,挑选随机数rj∈Zp,然后计算出密钥:并将密钥通过安全信道发送

给用户;

S32、属性授权机构CA生成区块链密钥:

(α+r)/β

S321、用户将自己密钥中的密钥组件Dp=g 发送给属性授权机构CA;

S322、属性授权机构CA对密钥进行处理,则该用户对应的区块链的密钥为:属性授权机构CA将SKbc上传至区块

链。

8.根据权利要求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是叶子节点时,按上一步骤计算出再计算 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',获得医疗数据