一种保护患者隐私和数据泄漏的在线诊断系统及方法

文档序号:26885941发布日期:2021-10-09 11:45阅读:137来源:国知局
一种保护患者隐私和数据泄漏的在线诊断系统及方法

1.本发明属于医疗信息隐私保护,机器学习和云计算领域;涉及一种利用机器学习中的支持向量机svm分类算法进行疾病诊断;针对用户医疗信息,医疗机构诊断模型的隐私保护需要,设计的一种具有隐私保护的用户,云服务器,医疗数据终端(医疗服务机构)三方的在线诊断系统及方法。
技术背景
2.当前,为提高医疗诊断服务的便利性,一些平台和机构都着眼于推出基于机器学习分类算法的在线疾病诊断服务。在线诊断服务是指,用户向服务提供者发送诸如年龄,性别,症状,体检指标等医疗数据,服务提供者利用其所拥有的诊断模型对用户医疗数据分类,得到用户的某种疾病诊断结果呈阴性或是阳性。由于用户的医疗数据基本为明文传输,用户的个人信息和健康状态数据极易泄露,危及用户的隐私安全乃至人身安全。此外,服务提供者的模型数据一般也以明文形式存储在云服务器中,同样有泄露的风险。因此,提出一种隐私保护且高效的临床诊断系统及方法是十分必要的。


技术实现要素:

3.为解决上述在线医疗诊断系统中的隐私保护问题,本发明提供了一种保护患者隐私和数据泄漏的临床诊断系统及方法。
4.本发明的系统所采用的技术方案是:一种保护患者隐私和数据泄漏的在线诊断系统,包括医疗用户终端、医疗云服务器、医疗数据终端;
5.所述医疗用户终端,包括初始化模块和诊断请求模块;所述初始化模块,用于完成系统初始化;所述诊断请求模块,用于产生临床诊断服务请求并发送给医疗云服务器,接收来自医疗云服务器的响应并获得诊断结果;
6.所述医疗云服务器,包括注册模块和医疗诊断模块;所述注册模块,用于为用户提供注册;所述医疗诊断模块,用于接收来自用户终端的服务请求和医疗数据终端的分类模型参数,实现分类过程中的安全计算过程,并将计算结果作为响应返还至用户终端;
7.所述医疗数据终端,包括初始化模块、模型存储模块、份额产生模块、数据处理模块和模型更新模块;所述初始化模块,用于完成系统初始化;所述模型存储模块,用于存储现有的支持向量机分类模型参数;所述份额产生模块,用于产生svm分类器参数的秘密份额并分配给各医疗云服务器;所述数据处理模块,用于与用户终端交互,协助用户终端获得最终结果;所述模型更新模块,用于对svm分类器进行更新维护。
8.医疗用户终端通过向n个不共谋的医疗云服务器分发自己的医疗数据份额发出服务请求,各医疗云服务器从医疗用户终端处接收到医疗数据份额后从医疗数据终端获得svm分类器参数份额和随机数份额;各医疗云服务器在份额上对用户的医疗数据进行归一化和放缩预处理后,利用预处理过的用户数据份额与分类器参数份额同态计算出决策函数值份额;各医疗云服务器利用随机数份额对决策函数指进行保护,并将带随机数的决策函
数值份额返还给医疗用户终端;医疗用户终端利用份额恢复出带随机数决策函数值,并与医疗数据终端交互后获得分类结果。
9.本发明的方法所采用的技术方案是:一种保护患者隐私和数据泄漏的在线诊断方法,利用shamir门限方案将用户医疗数据和svm分类器参数分割,利用shamir门限方案的同态性在份额上通过svm二分类器对用户医疗数据进行预测,生成对应类标签的份额,恢复所得类标签值对应诊断结果呈阴性或阳性。具体包括以下步骤:
10.步骤1:系统初始化;
11.医疗用户终端与医疗数据终端约定一个大素数p;医疗数据终端将大素数p公开给各医疗云服务器;其中,p≥n+1,n为医疗云服务器数量;
12.步骤2:服务请求;
13.医疗用户终端产生医疗数据的秘密份额,将份额按顺序分发给n个医疗云服务器;各医疗云服务器收到来自用户的医疗数据份额后向医疗数据终端发出分类器参数请求;
14.其中,医疗用户按照(k,n)

shamir秘密分割门限方案产生医疗数据的秘密份额,要求n≥2k+1,其中k表示shamir秘密分割方案的门限;用户的医疗数据为m维的向量,表示为t=(t1,...,t
m
);份额产生方法为:在gf(p)\{0}上随机选择k

1个系数a1,a2,...,a
k
‑1构造一个k

1次多项式f(x)≡a0+a1x+

+a
k
‑1x
k
‑1(modp),其中,用系数a0作为秘密,gf(p)表示模p的有限域,{(i,f(i))|i=1,2,...,n}为a0的n个秘密份额,a0秘密分割记作[a0;f]
k
;用户分别以医疗数据向量的各维为秘密构造m个多项式,产生m组秘密份额,记作[t1;f1]
k
,[t2;f2]
k
,...,[t
m
;f
m
]
k
,将每组的n个秘密份额按顺序分发给n个医疗云服务器;
[0015]
步骤3:服务响应;
[0016]
各医疗云服务器计算决策函数值份额;用医疗数据终端选择的随机数r保护决策函数值;
[0017]
步骤4:响应接收;
[0018]
医疗用户终端还原带随机数的决策函数值;医疗用户终端与医疗数据终端联合消除随机数干扰;医疗用户终端获得分类结果。
[0019]
本发明方法与现有技术相比有以下优势:
[0020]
1.实现了用户医疗数据的隐私保护。本发明中用户医疗数据以秘密份额的形式分布存储在多个不共谋的服务器中,且份额经由安全信道传输,各医疗云服务器,数据终端以及任何黑客都无法获得用户的医疗信息,确保了用户医疗信息的隐私。
[0021]
2.实现了svm分类器模型参数的隐私保护。本发明中svm分类器模型参数以秘密份额的形式分布存储在多个不共谋的服务器中,且份额经由安全信道传输,各医疗云服务器,用户终端以及任何黑客都无法获得分类器模型的相关信息,确保了分类器模型参数的隐私。
[0022]
3.较现存安全在线诊断方案效率高。本发明中安全诊断过程利用同态秘密共享技术实现,无需加解密过程,具有较高分类效率,能提供高效的在线诊断服务。
附图说明
[0023]
图1:本发明实施例的系统构架图;
[0024]
图2:本发明实施例的方法流程图;
[0025]
图3:本发明实施例的决策函数值份额计算方法流程图。
具体实施方式
[0026]
为了便于本领域普通技术人员理解和实施本发明,下面结合附图及实施例对本发明作进一步的详细述,应当理解,此处所述的实施示例仅用于说明和解释本发明,并不用于限定本发明。
[0027]
临床诊断是一种基于临床医疗数据的分类服务。需要诊断服务的用户希望在服务器和服务提供者在不知道其医疗数据的情况下,获得某种疾病的诊断结果,在保证用户隐私的情况下实现高效可靠的疾病诊察。因此,隐私保护的诊断服务有很好的实际意义和应用价值。
[0028]
请见图1,本发明提供的一种保护患者隐私和数据泄漏的在线诊断系统,包括医疗用户终端、医疗云服务器、医疗数据终端;
[0029]
医疗用户终端,包括初始化模块和诊断请求模块;初始化模块,用于完成系统初始化;诊断请求模块,用于产生临床诊断服务请求并发送给医疗云服务器,接收来自医疗云服务器的响应并获得诊断结果;
[0030]
医疗云服务器,包括注册模块和医疗诊断模块;注册模块,用于为用户提供注册;医疗诊断模块,用于接收来自用户终端的服务请求和医疗数据终端的分类模型参数,实现分类过程中的安全计算过程,并将计算结果作为响应返还至用户终端;
[0031]
医疗数据终端,包括初始化模块、模型存储模块、份额产生模块、数据处理模块和模型更新模块;初始化模块,用于完成系统初始化;模型存储模块,用于存储现有的svm分类器参数;份额产生模块,用于产生svm分类器参数的秘密份额并分配给各医疗云服务器;数据处理模块,用于与用户终端交互,协助用户终端获得最终结果;模型更新模块,用于对svm分类器进行更新维护。
[0032]
诊断请求模块,包括份额产生子模块和秘密恢复子模块;份额产生子模块,用于构造多项式实现shamir门限方案,产生用户医疗数据的秘密份额,并将份额分发给所有医疗云服务器;秘密恢复子模块,用于接收来自各医疗云服务器的秘密份额,并通过拉格朗日插值公式恢复秘密内容。
[0033]
医疗诊断模块,包括份额产生子模块和安全计算子模块;份额产生子模块,用于构造多项式实现shamir门限方案,产生svm分类器参数的秘密份额,并将份额分发给包含自己在内的所有医疗云服务器;安全计算子模块,用于接收来自其他医疗云服务器的秘密份额,并利用shamir门限方案的同态性进行安全计算。
[0034]
医疗用户利用用户终端向医疗云服务器发出服务请求,n个不共谋的服务器从医疗数据终端获得各自分类器参数份额后,利用shamir秘密分割方案的同态性计算出决策函数值份额,并将份额返还给用户以获得决策函数的符号,进而得到分类结果。整个协议过程中各医疗云服务器得不到用户数据和分类器参数的任何信息,医疗数据终端得不到用户医疗数据的任何信息,用户得不到分类器参数的任何信息,并且分类结果只有用户能够获得,实现了隐私保护功能。
[0035]
请见图2,医疗用户通过向n个不共谋的医疗云服务器分发自己的医疗数据份额法出服务请求,各医疗云服务器从用户处接收到医疗数据份额后从医疗数据终端获得svm分
类器参数份额和随机数份额。各服务器在份额上对用户数据进行归一化和放缩预处理后,利用预处理过的用户数据份额与分类器参数份额同态计算出决策函数值份额。接着,各服务器利用随机数份额对决策函数指进行保护,并将带随机数的决策函数值份额返还给用户。最后,用户利用份额恢复出带随机数决策函数值,并与医疗数据终端交互后获得分类结果。具体实现包括四个步骤:系统初始化、服务请求、服务响应、响应接受。
[0036]
步骤1:系统初始化;
[0037]
步骤1.1:医疗用户与数据终端约定一个大素数p,满足p≥n+1,后续步骤中用户与数据终端均以p为shamir秘密分割方案的模数产生各自秘密份额。
[0038]
步骤1.2:数据终端将大素数p公开给各医疗云服务器。
[0039]
步骤2:服务请求;
[0040]
步骤2.1:医疗用户按照(k,n)

shamir秘密分割门限方案产生医疗数据的秘密份额,要求n≥2k+1,其中k表示shamir秘密分割方案的门限;用户的医疗数据为m维的向量,表示为t=(t1,...,t
m
)。份额产生方法为:在gf(p)\{0}上随机选择k

1个系数a1,a2,...,a
k
‑1构造一个k

1次多项式f(x)≡a0+a1x+

+a
k
‑1x
k
‑1(modp),其中,将系数a0作为秘密,gf(p)表示模p的有限域,{(i,f(i))|i=1,2,...,n}为a0的n个秘密份额,a0秘密分割记作[a0;f]
k
。用户分别以医疗数据向量的各维为秘密构造m个多项式,产生m组秘密份额,记作[t1;f1]
k
,[t2;f2]
k
,...,[t
m
;f
m
]
k
,将每组的n个秘密份额按顺序分发给n个医疗云服务器。例如:第i个服务器获得m个秘密份额,分别为:(i,f1(i)),(i,f2(i)),...,(i,f
m
(i))。
[0041]
步骤2.2:各医疗云服务器收到来自用户的医疗数据份额后向医疗数据终端发出分类器参数请求。
[0042]
步骤3:服务响应;
[0043]
步骤3.1:医疗数据终端收到来自医疗云服务器的分类器参数请求后,选择随机数r,用于保护后续步骤中计算出的决策函数值。
[0044]
步骤3.2:医疗数据终端按照(k,n)

shamir秘密分割门限方案产生svm分类模型参数和所选随机数的秘密份额。svm分类模型是形如
[0045]
的函数,分类器参数主要包括以下信息:支持向量支持向量对应的标签值拉格朗日乘子截距参数b和核函数指数参数d,其中是支持向量的集合。此外,为了后续让各服务器在份额上对用户医疗数据进行归一化和放缩预处理数据终端还需向各服务器分发预处理过程必须的参数。预处理方法为:其中γ为放缩倍数,σ为所有训练样本的标准差,为所有样本的均值。数据终端与计算出α
s
y
s
以及后,构造多项式生成预处理参数份额,分类器参数份额和随机数r的份额。用于用户医疗数据预处理的份额包括用于决策函数值计算的份额包括其中,μ1,μ2,...,μ
m
,ξ、τ、分别表示各参数的秘密分割所对应的k

1次多项式;数据终端将
上述份额按顺序分发给各服务器,同时将核函数指数d广播给所有服务器。
[0046]
步骤3.3:各医疗云服务器收到来自数据终端的所有份额后利用预处理份额对用户医疗数据份额进行预处理;
[0047]
步骤3.3.1:各服务器计算预处理后的医疗数据份额。以用户医疗数据的第j维为例:第i个服务器持有医疗数据份额(i,f
j
(i)),样本均值份额(i,g
j
(i)),参数份额(i,h(i));其中,f
j
、g
j
、h分别表示t
j
、的秘密分割所对应的k

1次多项式;根据预处理公式计算出预处理后的医疗数据向量第j维的第i个份额(i,h(i)(f
j
(i)

g
j
(i))),对于所有服务器,可表示为他们共同持有的秘密分割新产生的秘密分割的门限会从k上升为2k,由于函数h和函数f

g均为k

1次多项式,相乘所得函数为2(k

1)次多项式,求解所需的方程数量相应翻倍,恢复秘密所需的份额也相应翻倍。
[0048]
步骤3.3.2:医疗云服务器对预处理后的医疗数据份额进行下降处理,将的秘密分割门限下降至k。定义函数f

=h(f

g),则各服务器分别持有份额(i,f

(i)),i=1,2,...,m,由拉格朗日插值公式有:
[0049][0050]
其中该式对于任意最高次小于n的多项式f

(x)都成立。各服务器分别以自己持有的预处理后医疗数据份额为秘密产生份额[f

(i);λ
i
]
k
并分发给包含自己在内的所有医疗云服务器;各服务器收到所有来自其它服务器的份额后计算:
[0051][0052]
即可把下降为定义预处理后的医疗数据向量表示为
[0053]
步骤3.4:各医疗云服务器计算决策函数值份额,具体流程参见图3;
[0054]
步骤3.4.1:计算核函数底数部分:核函数形如本步骤计算其底数部分其中,x
s
、分别表示支持向量和预处理后的医疗数据向量;
[0055]
服务器计算:
[0056][0057]
对进行下降,定义函数
o
表示门限下降后的秘密分割所对应k

1次多项式,则下降后的秘密分割用表示,接着计算其中,v表示整数1的秘密分割对应的k

1次多项
式;
[0058]
步骤3.4.2:核函数底数累乘。
[0059]
服务器计算:
[0060][0061]
步骤3.4.3:计算结果下降。下降方法与步骤3.3.2相同,下降后的秘密分割用表示。重复步骤3.4.2和步骤3.4.3的底数累乘和下降操作直到累乘d

1次,求得核函数的秘密分割表示为其中,δ、ε
s
分别表示的秘密分割对应的k

1次多项式,表示支持向量的集合;
[0062]
步骤3.4.4:计算决策函数值份额。决策函数的形式为:
[0063][0064]
服务器计算
[0065][0066]
后进行下降,下降方法与步骤3.3.2相同,下降后的秘密分割用分割用表示。再加上截距部分:
[0067][0068]
算出决策函数值的秘密分割,记作[d(t);π+ξ]
k

[0069]
步骤3.5:用数据终端选择的随机数r保护决策函数值。在引入随机数前要先对决策函数值进行一次乘二操作得到2d(t)的秘密分割[2d(t);2(π+ξ)]
k
。由于整个shamir门限方案是在模p的有限域上设计的,最终还原出的秘密也是模p的,即2d(t)modp。如步骤3.2所述分类结果为决策函数d(t)的正负,由于|d(t)|远小于大素数p,显然:d(t)<0时,d(t)modp>p/2,2d(t)modp=2d(t)

p,由于p为奇数,2d(t)modp也为奇数;d(t)>0时,d(t)modp<p/2,2d(t)modp=2d(t),显然,2d(t)modp为偶数。后续可通过恢复秘密2d(t)modp的最低位判断分类结果:最低位为1表示患者检查结果呈阴性;最低位为0表示患者检查结果呈阳性。接着用随机数r保护决策函数值得到[2d(t)+r;2(π+ξ)+τ]
k
,用[2d(t)+r;f]
k
表示,所有服务器将各自持有的2d(t)+r的份额发送给医疗用户。
[0070]
步骤4:响应接收;
[0071]
步骤4.1:还原带随机数的决策函数值。医疗用户接收到所有来自服务器的秘密份额后,利用拉格朗日插值公式对秘密2d(t)+r进行还原:
[0072][0073]
步骤4.2:医疗用户与数据终端联合消除随机数干扰。用户还原出的秘密记作s=2d(t)+r(modp),其最低位记作s0;如步骤3.5所述分类结果对应2d(t)modp的最低位,记作
v0;r的最低位记作r0。考虑到随机数r的引入可能导致值溢出的现象,即2d(t)+r>p,也就是s<r,进而有:
[0074][0075]
医疗用户和数据终端利用安全比较协议比较s与r的大小,结果用一个比特c表示:c=0表示s>r;c=1表示s<r。c由用户获得,同时数据终端将r0发送给用户。
[0076]
步骤4.3:获得分类结果。用户利用比较结果c和来自数据终端的r0计算有:
[0077]
本发明提出一种具有隐私保护的医疗诊断方案,基于shamir门限方案的同态性在云计算环境下实现了该方案。该方案不仅能够在不泄露患者隐私信息和服务提供者诊断模型的情况下为用户产生辅助诊断结果,而且还能减少计算量缩短服务响应时间。
[0078]
应当理解的是,本说明书未详细阐述的部分均属于现有技术。
[0079]
应当理解的是,上述针对较佳实施例的描述较为详细,并不能因此而认为是对本发明专利保护范围的限制,本领域的普通技术人员在本发明的启示下,在不脱离本发明权利要求所保护的范围情况下,还可以做出替换或变形,均落入本发明的保护范围之内,本发明的请求保护范围应以所附权利要求为准。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1