一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种基于区块链的医生推荐方法、区块链设备及存储介质与流程

2022-11-23 13:32:05 来源:中国专利 TAG:


1.本发明涉及计算机技术领域,更具体地说,涉及一种基于区块链的医生推荐方法、区块链设备及存储介质。


背景技术:

2.随着《中华人民共和国数据安全法》、《中华人民共和国个人信息保护法》和《信息安全技术健康医疗数据安全指南》于2021年相继实施,个人隐私保护已成为人们生活中非常重要的一部分,在医疗领域更是如此。随着互联网技术的快速发展,医疗服务已经向数字智能化转型。数字医疗系统涉及的机构、参与者众多,为了消除数据孤岛,实现数据价值利用率最大化,医疗机构之间的数据共享已经成为一种趋势。然而,数字医疗系统里包含了大量的个人健康隐私,如病患的过往病史、就医记录等,这样的分享模式给病患的隐私保护带来了严峻的挑战。
3.访问控制(access control)作为数据分享、隐私保护的主要方式受到了各界人士广泛地关注。访问控制机制是依据访问策略(授权)对提出数据资源访问请求加以控制的一种机制。访问控制可以限制对隐私数据资源的访问,防止非法用户的非授权访问以及合法用户的失误操作导致的隐私数据泄漏。
4.在基于属性的访问控制机制中,当数据用户的属性满足数据拥有者的访问策略时,该用户即可以被允许访问该数据拥有者的数据资源。医生优选作为访问控制的应用实例在数字医疗系统中发挥着重要作用,当医生的属性满足病患需求的属性(病症)时,该医生即可以被系统选中推荐给病患,从而实现细粒度的医生优选。
5.目前医疗系统中都存在一个中央管理平台,这种做法存在一些缺点:首先,当大量用户进行信息读取、存储和更新时,中央管理服务器可能成为整个系统的瓶颈。其次,信息的集中存储使管理服务器成为黑客的可能目标,这使管理服务器面临单点故障的风险。
6.区块链的发展为解决上述问题提供了新思路。区块链的核心优势是去中心化。它通过数据加密、时间戳、分布式共识和激励等手段,在节点不需要彼此信任的分布式系统中,实现基于去中心化信任的点对点交易、协调和协作。在我们所提出的分布式医生推荐方法中,区块链被作为第三方可信平台以取代传统的中央管理平台。
7.此外,目前医生推荐方案多是根据医生信誉来选择医生,这种做法过于片面,无法实现细粒度的医生推荐。
8.前面的叙述在于提供一般的背景信息,并不一定构成现有技术。


技术实现要素:

9.本发明的目的在于提供一种基于区块链的医生推荐方法、区块链设备及存储介质,该基于区块链的医生推荐方法实现了细粒度的医生优选和推荐,解决了传统集中式系统中中央管理平台容易遭受ddos攻击并导致单点失败的问题。
10.本发明提供一种基于区块链的医生推荐方法,包括以下步骤:
11.s1:注册;
12.s2:初始化;
13.s3:访问策略部署;
14.s4:录入医生资料;
15.s5:医生推荐。
16.进一步地,所述步骤s1包括:
17.s11:用户向数字医疗系统进行注册,ca对注册用户认证并颁发证书;用户的真实身份作为单向陷门函数ohd()的输入,输出作为该用户的假名,记为ifi=ohd(iri);
18.s12:用户执行nizk的初始化算法gcc
←r{0,1}
poly(k)
生成公共参考串gcc,并执行证明算法ev

prove(gcc,iri,ifi)生成证据ev;随后,用户将假名、公共参考串gcc和证据ev发给系统;
19.进一步地,所述步骤s11中d为单向陷门函数的陷门,由系统妥善保存,iri为用户useri的真实身份,ifi为用户useri的注册假名。
20.进一步地,所述步骤s2包括:
21.s21:令g为素数阶p的群的生成元,双线性映射k为表示群大小的安全参数,为素数阶p的群;对于和群中的元素集合s,定义拉格朗日系数为属性域表示为au,属性集合大小为|au|;集合au的元素表示为前|au|个元素,即1,

,|au|(modp);
22.s22:病患从均匀随机选择t1,

,t
|au|
和y;公开参数为:
[0023][0024]
主密钥为:
[0025]
msk=(t1,

,t
|au|
,y)。
[0026]
进一步地,所述步骤s3包括:
[0027]
s31:病患将访问树tr和主密钥msk作为输入,输出一系列d,访问策略镶嵌在d中;
[0028]
s32:从根节点r开始从上往下遍历整个访问树tr,为每个节点x设置一个随机多项式,包括叶子节点;多项式次数为d
x
=k
x-1,其中d
x
为节点x的门限值;令num
x
为x的孩子节点个数,使得0《k
x
≤num
x
;随机选取多项式的d
x
个非常数项系数;
[0029]
进一步地,所述步骤s32中数项系数按如下方式选取:
[0030]
如果x=r,则qr(0)=y;
[0031]
如果x≠r,则q
x
(0)=q
parent(x)
(index(x));
[0032]
对于每个叶子节点x,计算:
[0033]
令d={d
x
};接着,病患向区块链提交{d,tr}。
[0034]
进一步地,所述步骤s4包括:
[0035]
s41:系统为每个医生从随机选取一个s;r为医生的属性集合;接着,计算:req=(r,ys,{ci=t
is
}
i∈r
);并将req上链。
[0036]
进一步地,所述步骤s5包括:
[0037]
s51:对于tr的节点x,病患定义两个集合;
[0038]sx
为x的孩子节点的集合,s'
x
={j|z∈s
x
,j=index(z)}为x的孩子节点的指标集合;
[0039]
s52:接着,定义一个递归算法ver(req,d,x);
[0040]
该算法将req=(r,ys,{ci}
i∈r
),d={d
x
}和访问树tr的节点x作为输入,并输出群的元素或


[0041]
s53:如果x为叶子节点,则令i=att(x),计算:
[0042][0043]
如果x为非叶子节点,则对于所有孩子节点z∈s
x
,计算fz=ver(req,d,z)和有
[0044]
s54:区块链智能合约自动判断医生属性集合是否满足病患的访问策略;如果fr=ys,则医生的req满足访问树tr;该医生即可被系统推荐给病患。
[0045]
本发明还提供一种区块链设备,包括存储器及处理器,所述存储器用于存储计算机程序,所述处理器运行所述计算机程序以使所述区块链设备执行上述的医生推荐方法。
[0046]
本发明还提供一种计算机可读存储介质,其存储有计算机程序,所述计算机程序被处理器执行时实现上述的医生推荐方法。
[0047]
本发明提供的基于区块链的医生推荐方法,通过使用单向陷门函数,将用户真实身份隐藏,保护用户隐私;利用ca为用户颁发证书,确保ca记录中每个成员的身份是独一无二的,同时保证用户匿名性并预防女巫攻击;为了抵抗用户伪造真实身份攻击,使用nizk算法为用户的真实身份生成证据,可以防止用户不使用注册时的真实身份来产生假名;当需要对用户真实身份进行验证时,可通过执行nizk的验证算法来判断用户的真实身份;通过引入区块链技术,设计分布式的数字医疗系统,以解决传统中心化管理平台带来的瓶颈问题;利用kp-abe技术,实现细粒度的医生推荐功能。
附图说明
[0048]
图1为本发明实施例1提供的基于区块链的医生推荐方法的流程示意图。
[0049]
图2为图1中基于区块链的医生推荐方法的步骤s1的过程示意图。
[0050]
图3为图1中基于区块链的医生推荐方法的步骤s5的过程示意图。
具体实施方式
[0051]
下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。以下实施例用于说明本发明,但不用来限制本发明的范围。
[0052]
本发明的说明书和权利要求书中的术语“第一”、“第二”、“第三”、“第四”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。
[0053]
实施例1
[0054]
图1为本发明实施例1提供的基于区块链的医生推荐方法的流程示意图,图2为图1中基于区块链的医生推荐方法的步骤s1的过程示意图、图3为图1中基于区块链的医生推荐方法的步骤s5的过程示意图。请参照图1、图2、图3,本发明实施例提供的基于区块链的医生推荐方法,包括以下步骤:
[0055]
s1:注册;
[0056]
需要说明的是,本发明注册阶段利用ca(certificate authority,证书颁发机构)对用户的真实身份和公钥进行验证并颁发证书;这一步确保ca记录中每个成员的身份是独一无二的;因此,ca的使用可以同时保证用户匿名性并预防女巫攻击;用户使用nizk算法为自己的真实身份生成证据ev,这使得用户的真实身份与假名是一一对应的;证据ev可以防止用户不使用注册时的真实身份来产生假名;当需要对用户真实身份进行验证时,可通过执行nizk的验证算法verify(gcc,iri,ev)来判断用户的真实身份;如果verify(gcc,iri,ev)=1,则表示iri为useri的真实身份;因此,可以防止用户伪造真实身份攻击;在注册阶段,用户会先使用单向陷门函数生成假名,并利用假名进行系统注册;这可以防止用户真实身份被泄漏;从而可以保护用户匿名性;
[0057]
具体地,所述步骤s1包括:
[0058]
s11:用户向数字医疗系统进行注册,ca对注册用户认证并颁发证书;用户的真实身份作为单向陷门函数ohd()的输入,输出作为该用户的假名,记为ifi=ohd(iri);其中d为单向陷门函数的陷门,由系统妥善保存,iri为用户useri的真实身份,ifi为用户useri的注册假名;
[0059]
s12:用户执行nizk的初始化算法gcc
←r{0,1}
poly(k)
生成公共参考串gcc,并执行证明算法ev

prove(gcc,iri,ifi)生成证据ev;随后,用户将假名、公共参考串gcc和证据ev发给系统。
[0060]
s2:初始化;
[0061]
具体地,所述步骤s2包括:
[0062]
s21:令g为素数阶p的群的生成元,双线性映射k为表示群大小的安全参数,为素数阶p的群;对于和群中的元素集合s,定义拉格朗日系数为属性域表示为au,属性集合大小为|au|;集合au的元素表示为前|au|个元素,即1,

,|au|(modp);
[0063]
s22:病患从均匀随机选择t1,

,t
|au|
和y;公开参数为:
[0064][0065]
主密钥为:
[0066]
msk=(t1,

,t
|au|
,y)。
[0067]
s3:访问策略部署;
[0068]
需要说明的是,本发明访问策略部署阶段在于将访问策略部署在区块链上;具体包括以下步骤:
[0069]
s31:病患将访问树tr和主密钥msk作为输入,输出一系列d,访问策略镶嵌在d中;
[0070]
s32:从根节点r开始从上往下遍历整个访问树tr,为每个节点x设置一个随机多项式,包括叶子节点;多项式次数为d
x
=k
x-1,其中d
x
为节点x的门限值;令num
x
为x的孩子节点个数,使得0《k
x
≤num
x
;随机选取多项式的d
x
个非常数项系数;
[0071]
进一步地,数项系数按如下方式选取:
[0072]
如果x=r,则qr(0)=y;
[0073]
如果x≠r,则q
x
(0)=q
parent(x)
(index(x));
[0074]
对于每个叶子节点x,计算:
[0075]
令d={d
x
};接着,病患向区块链提交{d,tr}。
[0076]
s4:录入医生资料;
[0077]
具体地,系统为每个医生从随机选取一个s;r为医生的属性集合;接着,计算:req=(r,ys,{ci=t
is
}
i∈r
);并将req上链。
[0078]
s5:医生推荐。
[0079]
具体地,所述步骤s5包括:
[0080]
s51:对于tr的节点x,病患定义两个集合;
[0081]sx
为x的孩子节点的集合,s'
x
={j|z∈s
x
,j=index(z)}为x的孩子节点的指标集合;
[0082]
s52:接着,定义一个递归算法ver(req,d,x);
[0083]
该算法将req=(r,ys,{ci}
i∈r
),d={d
x
}(包括访问树tr)和访问树tr的节点x作为输入,并输出群的元素或


[0084]
s53:如果x为叶子节点,则令i=att(x),计算:
[0085][0086]
如果x为非叶子节点,则对于所有孩子节点z∈s
x
,计算fz=ver(req,d,z)和有
[0087]
s54:区块链智能合约自动判断医生属性集合是否满足病患的访问策略;如果fr=ys,则医生的req满足访问树tr;该医生即可被系统推荐给病患。
[0088]
本发明提供的基于区块链的医生推荐方法,通过使用单向陷门函数,将用户真实身份隐藏,保护用户隐私;利用ca为用户颁发证书,确保ca记录中每个成员的身份是独一无二的,同时保证用户匿名性并预防女巫攻击;为了抵抗用户伪造真实身份攻击,使用nizk算法为用户的真实身份生成证据,可以防止用户不使用注册时的真实身份来产生假名;当需要对用户真实身份进行验证时,可通过执行nizk的验证算法来判断用户的真实身份;通过引入区块链技术,设计分布式的数字医疗系统,以解决传统中心化管理平台带来的瓶颈问题;利用kp-abe技术,实现细粒度的医生推荐功能。
[0089]
本发明还提供一种区块链设备,包括存储器及处理器,所述存储器用于存储计算
机程序,所述处理器运行所述计算机程序以使所述区块链设备执行上述的医生推荐方法。
[0090]
本发明还提供一种计算机可读存储介质,其存储有计算机程序,所述计算机程序被处理器执行时实现上述的医生推荐方法。
[0091]
实施例2
[0092]
为了进一步提高本发明医生推荐方法的效率,本实施例将医生的属性是否满足病人的访问策略的问题转换为验证二次算术张成方案qap的满足性,这一步由智能合约来执行。
[0093]
本阶段特征在于通过将验证医生属性是否满足病人访问策略的问题转换为验证qap的满足性;在验证qap满足性的过程中,仅需要做9次配对运算。具体做法如下:
[0094]
系统为病人创建公开参考串ekf和vkf,其中f为有限域;
[0095]
首先,(ekf,vkf)

keygen(f,1
λ
),接着,创建大小为m,度为d的qap q=(t(x),v,w,y),令e:g
×g→gt
为双线性映射,且g为群g的生成元;并且t(s)被计算,选择使得有t(s)且选择接着,令ry=rv·rw

[0096]
ekf按如下方式创建:
[0097][0098]
vkf按如下方式创建:
[0099][0100]
接着,ekf和vkf被发送给区块链;
[0101]
令{ck}
k∈[m]
为医生的属性集合,不足的部分补零;系统为医生计算:
[0102][0103][0104]
继续计算:
[0105][0106][0107]
[0108]
类似地,取得
[0109]
然后,被发送给区块链;
[0110]
为了方便描述,令为区块链收到的7个元素,验证过程执行如下:
[0111]
计算如果是群g
t
的元素,则有t(s)|(v(s)w(s)-y(s))。这是因为因为有和所以有如果是群g
t
的元素,则t(s)-1
(v(s)w(s)-y(s))是整数,这也意味着t(s)|(v(s)w(s)-y(s));
[0112]
如果则有v

(s)=αvv(s),w

(s)=αww(s),y

(s)=αyy(s);
[0113]
如果则有:
[0114][0115]
如果上述验证全部通过,则该医生被选中来执行任务。
[0116]
需要说明的是,为了提升验证效率,通过将验证医生属性是否满足病人访问策略的问题转换为验证qap的满足性;在验证qap满足性的过程中,仅需要做9次配对运算。
[0117]
基于上文的描述可知,本发明优点在于:
[0118]
1、本发明提供的基于区块链的医生推荐方法,通过使用单向陷门函数,将用户真实身份隐藏,保护用户隐私;利用ca为用户颁发证书,确保ca记录中每个成员的身份是独一无二的,同时保证用户匿名性并预防女巫攻击;为了抵抗用户伪造真实身份攻击,使用nizk算法为用户的真实身份生成证据,可以防止用户不使用注册时的真实身份来产生假名;当需要对用户真实身份进行验证时,可通过执行nizk的验证算法来判断用户的真实身份;通过引入区块链技术,设计分布式的数字医疗系统,以解决传统中心化管理平台带来的瓶颈问题;利用kp-abe技术,实现细粒度的医生推荐功能。
[0119]
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献