1、密码学报ISSN 2095-7025 CN 10-1195/TNJournal of Cryptologic Research,2023,10(5):9861000密码学报编辑部版权所有.E-mail:http:/Tel/Fax:+86-10-82789618新环境下的密码应用专栏基于内积加密的双向隐私保护医疗诊断云服务方案*蔡梦媛1,张明武1,21.桂林电子科技大学 计算机与信息安全学院,桂林 5410042.湖北工业大学 计算机学院,武汉 430068通信作者:张明武,E-mail:摘要:部署于云平台的医疗诊断服务不仅推进了医疗资源的整合,还提高了病情诊断的精准性和高效性,但是该场景用户失
2、去了对个人信息的掌控,对高度敏感的病理数据来说安全与隐私保护是实现基于云平台决断的前提.云端医疗数据的隐私保护可以通过差分隐私、安全多方计算和同态加密等密码学技术实现,避免泄露用户医疗大数据中的隐私信息.差分隐私中引入随机噪声会降低计算精度,安全多方计算技术面临昂贵的通信成本,同态加密需要花费较大的时间加密深度学习模型.本文基于内积加密技术提出一种实现双向隐私保护的医疗诊断云服务方案,不仅保护用户医疗大数据中的个人隐私,而且帮助模型开发方避免云端部署造成的模型信息泄漏风险,甚至能降低隐私保护技术对医疗诊断效率和准确率造成的影响.为了保障用户个人隐私,方案中用户上传密文形态的个人医疗数据到云端服
3、务器,云服务器通过密文数据预测疾病的结果.该方案的疾病诊断服务由云服务器提供并维护,而疾病诊断服务的实现依赖于模型开发方部署到云端的模型.模型开发方使用自行的深度学习算法训练明文形式的数据集,并获得预训练模型,使之可以处理密文形式的数据.实验分析表明,所述模型能完成 CRC-VAL-HE-7K 数据集上的结直肠癌诊断,与传统云端 EfficientNet 相比,本文方案仅损失少量的性能和响应效率.关键词:电子医疗信息;隐私保护;内积加密中图分类号:TP309.7文献标识码:ADOI:10.13868/ki.jcr.000652中文引用格式:蔡梦媛,张明武.基于内积加密的双向隐私保护医疗诊断云服
4、务方案J.密码学报,2023,10(5):9861000.DOI:10.13868/ki.jcr.000652英文引用格式:CAI M Y,ZHANG M W.Bilaterally privacy-preserving medical diagnosis scheme withfunctional inner-product encryptionJ.Journal of Cryptologic Research,2023,10(5):9861000.DOI:10.13868/ki.jcr.000652Bilaterally Privacy-Preserving Medical Diagnos
5、is Scheme withFunctional Inner-Product EncryptionCAI Meng-Yuan1,ZHANG Ming-Wu1,21.School of Computer Science and Information Security,Guilin University of Electronic Technology,Guilin541004,China*基金项目:国家自然科学基金(62072134);湖北省重点研发计划(2021BEA163);湖北省重大研究计划(2023BAA027);广西自然科学基金重点项目(2019JJD170020)Foundatio
6、n:National Natural Science Foundation of China(62072134);Key Research and Development Programof Hubei Province(2021BEA163);Major Research Plan of Hubei Provience(2023BAA027);Key Project of NaturalScience Foundation of Guangxi(2019JJD170020)收稿日期:2023-06-27定稿日期:2023-09-30蔡梦媛 等:基于内积加密的双向隐私保护医疗诊断云服务方案98
7、72.School of Computers,Hubei University of Technology,Wuhan 430068,ChinaCorresponding author:ZHANG Ming-Wu,E-mail:Abstract:Medical diagnostic services deployed on the cloud platform can promote the integra-tion of medical resources and make the diagnosis of medical conditions more accurate and effic
8、ient.However,users may lose control of their personal information.Currently,cloud-based medical dataprivacy-preserving schemes can effectively protect users privacy using cryptographic techniques such asdifferential privacy,secure multi-party computation,and homomorphic encryption.However,schemesusi
9、ng differential privacy or secure multi-party computation usually incur expensive communicationcosts,while homomorphic encryption-based solutions can hardly achieve efficient computation.Moreimportantly,those schemes ignore the risk of model information disclosure.This paper proposes aprivacy-preser
10、ving scheme for medical diagnosis based on inner-product encryption,which aims toprotect the privacy of individuals in medical data,prevent the leakage of model information whenmodel providers deploy models in the cloud,and improve the efficiency and accuracy of medical di-agnosis.The proposed schem
11、e allows users to upload their medical data to the cloud in ciphertext toensure data confidentiality,and the server can determine the likelihood of diagnosing diseases with thedata in ciphertext.The model for this prediction service is trained by the model provider using theunencrypted dataset and i
12、t is converted to a form that can handle ciphertext data after the training iscompleted.Moreover,the weights of the model are deployed to the cloud server in ciphertext form toprovide online medical diagnosis service.The experimental analysis in this paper shows that the pro-posed model and framewor
13、k exhibit practical effectiveness for colorectal cancer diagnosis tasks on theCRC-VAL-HE-7K dataset,with only a small performance degradation and latency increase comparedto the traditional cloud-based EfficientNet.Key words:electronic medical information;privacy preservation;inner-product encryptio
14、n1引言云端医疗诊断系统不仅可以给患者提供在线实时远程医疗服务1,而且可以帮助医生实时监测慢性病患者的身体状况并及时发现潜在的并发症2,还可以根据患者的健康状况、遗传因子以及生活习惯等多种因素制定个性化的诊疗计划3.传统的医疗诊断过程中,医生需要凭借个人知识储备和分析能力,整理分析包括症状、检验结果等在内的临床数据.然而,由于医学病灶的形状、位置和结构具有高度可变性4,医生难以始终精确且高效地完成批量的医疗诊断任务5.如今,医疗诊断服务可以借助深度学习算法等辅助手段实现自动化分析和诊断,帮助医生更细致地解析医学图像,减少医生判断失误导致的误诊情况.深度学习算法的引入,不仅能够提高医疗诊断的准确
15、性和高效性,而且可以提供在线实时的云端医疗诊断服务.云端医疗诊断服务利用大数据分析和人工智能技术,提供更便捷、更高效的医疗诊断,比如帮助医生快速而精确地分析病症的智能辅助诊断服务、帮助医生识别 X 射线和 CT 等影像的医学影像诊断服务以及通过生物传感器监测患者生理数据的健康状况监测服务等.云端医疗诊断服务通过收集整理包括患者特征、患者药物不良反应、临床检验数据等用户临床数据,利用大数据技术和人工智能算法分析、概括、应用临床数据,为临床诊断提供多方面的依据,为后续医疗决策提供支撑.云计算能够为医疗机构的智能化业务提供高效便捷的数据存储和共享技术,然而云计算的无边界性和流动性会造成云环境中数据的
16、安全和隐私问题6,7.云服务器上存储的生物信息、电子病历、诊疗数据、医学影像数据等用户医疗大数据,面临着严峻的机密性、完整性和可用性挑战.云端医疗诊断服务不仅需要避免用户医疗大数据和预训练模型信息的隐私泄露,而且需要应对云环境恶意攻击者造成的数据安全性和机密性挑战,还需要综合地考虑医疗诊断的计算效率和功能实现.为了提供满足云端数据安全隐私性、高效可用性的医疗诊断服务,差分隐私8,9、安全多方计算10、同态加密11,12和函数加密1315等密码学技术被引入云计算领域.这些隐私保护措施不仅可以防止云计算处理数据时不慎泄露用户敏感988Journal of Cryptologic Research
17、密码学报 Vol.10,No.5,Oct.2023图 1 单向隐私保护和双向隐私保护的医疗诊断协议对比Figure 1Comparison of medical diagnosis protocols with unilateral privacy-preserving and bilateral privacy-preserving信息,而且可以有效地控制医疗诊断的时间成本和计算开销,从而适应大数据应用环境.在这些技术中,差分隐私通过向数据中添加噪声来掩藏计算结果中可能泄露的敏感信息;安全多方计算允许多个参与方共同计算而不向彼此泄露自己输入的私有信息;同态加密允许对密文数据进行计算并产生加密
18、结果;函数加密能够在密文数据上计算获得明文结果.相比之下,函数加密具有更低的通信成本和计算开销13.用户个人信息通常可以表示为向量形式,内积加密是能够安全地计算两个向量内积值的函数加密,因此更适应医疗机构智能化业务的隐私保护任务16.本文提出一种云端医疗诊断的双向隐私保护方法,不仅可以保护用户医疗大数据中的隐私信息,而且能够帮助模型开发方避免云端模型的信息泄漏风险,从而提供双向隐私保护的医疗诊断服务,如图1所示.服务器提供的医疗诊断服务依赖于模型开发方部署到服务器的预训练模型.模型开发方使用自行研发的深度学习算法训练明文形式的数据集,并修改获得的预训练模型,使之可以处理密文形式的数据.随后模型
19、开发方使用密钥加密模型权重等信息,并将加密后的预训练模型部署到云服务器.而在用户使用医疗诊断服务时,首先将个人健康数据(例如结肠镜检查图像等)提供给智能手机或智能手表等个人终端.个人终端使用密钥加密用户输入的健康数据后将其发送到云服务器.云服务器在接收到个人终端发送的医疗数据后,提供医疗诊断服务,得到用户的疾病出现概率,并将结果返回给用户个人终端.最后,由个人终端向用户呈现诊断结果.本文方案可实现用户医疗大数据和预训练模型信息的双向隐私保护.该方案不仅考虑到传统云端医疗诊断服务中用户面临的个人医疗大数据的隐私泄露风险,还特别关注了模型开发方部署到云端的预训练模型的信息泄漏问题.该方案的诊断任务
20、直接使用收到的密文数据计算,无需且无法解密获得数据的明文,并且一次诊断任务中各个实体之间最多进行一轮通信.标签可以使用 onehot 编码,不泄露标签的语义信息.预测标签直接以明文形式发回用户个人终端,用户终端根据约定的标签编码规则解析预测标签.相较于传统医疗诊断云服务方案,该方案具有高效、安全、便利的优点.本文还通过生成元求逆与零向量编码方法改造内积加密方案17,18,实现负向量和零向量的安全内积计算,增强内积加密方案的实用性和安全性.此外,针对内积加密算法只能在整数上执行的问题,本文的浮点数缩放取整方法可以灵活调整缩放精度,从而动态适应医疗诊断服务要求的预测精度.2相关工作近来,决策树19
21、、支持向量机20、k-近邻、随机森林和神经网络21,22等机器学习算法已经被广泛应用到了生物医学领域,并构造了各类疾病预测模型、药物分析算法与健康监测系统.深度学习算法能够通过学习大规模医学图像数据,实现高效的医学图像智能分析,其中卷积神经网络在肺炎诊断21、肿瘤检测22、视网膜病变识别等方面取得了许多显著的成就.在开展深度学习相关的生物医学工作时,疾病预测系统的设计需要重视医疗大数据的隐私保护,防止生命体征、病历病史、个人信息等敏感数据被云服务器滥用或误用.因此,生物医疗领域的深度学习算法开发与设计,需要探索如何在不泄露医疗大数据和预测模型的情况下诊断疾病出现的可能性.此外,深度学习的医疗系
22、统设计时还需要权衡安全性、有效性和效率.密码学技术能够防止云端存储的医疗大数据泄露,保护用户敏感信息,从而确保云端预测服务能够蔡梦媛 等:基于内积加密的双向隐私保护医疗诊断云服务方案989有效运行.在云服务器上,差分隐私、安全多方计算、同态加密和函数加密等传统密码学技术都可以保障医疗大数据的安全性和机密性.在训练或预测时,差分隐私通过添加噪声保护样本数据中的敏感信息,并通过控制噪声大小调整原始数据的保留信息量,从而调整噪声对模型质量的影响.Lu 等人8针对移动医疗紧急情况提出了安全的隐私保护计算框架(SPOC),引入以用户为中心的属性基访问控制和隐私保护标量积计算.Khanna 等人9提出了预
23、测乳腺癌状态的联邦学习隐私保护方案,客户端使用来自服务器的模型参数在本地数据上训练迭代,训练好的权重在添加差分隐私的噪声后发回服务器.安全多方计算技术有助于实现多个客户端与服务器间不透露各自输入数据的协作计算,确保机器学习的各参与方能够在不暴露原始信息的情况下共享和处理敏感数据.Knott 等人10开发了一个安全多方计算的机器学习框架 CRYPTEN,可作为通用的机器学习 API,实现文本分类、语音识别和图像分类等任务中张量的安全计算,然而该方案难以实现加密标记数据的质量控制.同态加密(homomorphic encryption,HE)可以在不暴露原始数据信息的情况下完成各种复杂的安全计算操
24、作,确保机器学习算法使用的数据在计算过程中始终处于密文状态.Xie 等人11通过 HE 技术提供了安全预测方案,用户使用第三方预测模型时不会泄露私有信息,但第三方返回的预测结果为密文形式,需要用户自行解密.Sarkar 等人12设计了一种有效处理高维数据的快速矩阵乘法算法,旨在以高性能实现隐私保护的癌症预测.函数加密(functional encryption,FE)技术允许接收者访问密文数据的特定部分,而不泄露关于明文的额外信息,能够保护机器学习各参与方的数据隐私并减少数据泄漏风险.Ligier 等人14结合 FE 方案与机器学习算法,提出了一种保护隐私的数据分类协议.Dufour-Sans
25、 等人15构建了一种高效计算加密向量二次多元多项式的 FE 方案,并设计了密文数据分类技术.在文献 15 的基础上,Nguyen 等人13使用 HE 和 FE 分别提出了预测加密电子邮件标签的垃圾邮件分类方案,其中 FE 方案在 31 秒内预测出加密邮件的标签,而 HE 方案则需要 265 秒才能完成,但 FE 方案更容易造成潜在的信息泄露.Zhang 等人23基于内积加密方案提出了多客户端分布式敏感数据的安全预测方法,具有比二次多项式方案更高效的加密计算和更高的预测精度,然而可能损失一定解密效率.云环境中大量的恶意攻击可能导致模型无法正常运行,甚至可能泄露用户隐私6,7.为了保障模型和数据的
26、安全性,不仅需要确保模型和数据不受非法访问和恶意攻击,还要确保模型能够在云环境中正常运行.然而,传统的医疗诊断隐私保护技术815只关注医疗大数据的隐私,却很少关注模型结构和参数的泄露.本文采用内积加密方案,能够高效预测疾病并实现双向隐私保护.3预备知识对偶向量空间(dual pairing vector space,DPVS)24是由 n 个素阶群的直积展成的空间,其上的双线性运算相当于在 n 个素阶群上的双线性运算.通过 DPVS 的单位正交向量(b,b)构造密文和密钥,可以实现双系统加密,也可以在保证同等安全性的同时牺牲存储复杂度提高双线性映射运算的计算效率.3.1内积加密内积加密(inn
27、er product encryption,IPE)是一种特殊的函数加密方案,Abdalla 等人18在 2015年提出的经典内积加密方案能够满足线性密钥同态性和线性密码文本同态性,可以通过密文和解密密钥解密获得关联向量的内积值.该方案可以抵抗选择明文攻击,但没有考虑私钥中敏感信息的隐私问题.内积加密方案 IPE包括四个 PPT 算法,即 Setup,Keygen,Encrypt 和 Decrypt,如下所示:Setup(1,n)(mpk,msk):给定安全参数 和向量长度 n,Setup 算法输出关于 和 n 的公共参数 mpk 和主密钥 msk.具体而言,Setup 生成 p 阶群 G,及
28、其生成元 g G.接着,算法随机生成向量 s=(s1,s2,sn)$Znp.最后,算法置公共参数 mpk=(hi=gsi)in和主密钥msk=s.Keygen(msk,y)sky:给定主密钥 msk 和向量 y=(y1,y2,yn)Znp,输出密钥sky=y,s.990Journal of Cryptologic Research 密码学报 Vol.10,No.5,Oct.2023 Encrypt(mpk,x)ctx:给定主密钥 msk 和向量 x=(x1,x2,xn)Znp,随机选择r$Zp,加密算法输出密文 ctx=(ct0,(cti)in)=(gr,(hri gxi)in).Decryp
29、t(mpk,ctx,sky)z:给定公共参数 mpk,密钥 sky和密文 ctx=(ct0,(cti)in),解密算法计算 z=inctyiictsky0.3.2函数隐藏内积加密函数隐藏内积加密(function hiding inner product encryption,FHIPE)是一种能保证函数隐私的内积加密方案.Bishop 等人25提出了基于 SXDH(symmetric external Diffie-Hellman)假设的 FHIPE,满足不可区分性定义,并考虑了自适应攻击者.然而,该方案的安全模型较弱,攻击者的所有密文查询和密钥查询都受限于=.其后,Datta 等人26的方
30、案将攻击者的查询限制扩展到=,但该安全模型仍然不够强大.本文采用了 Kim 等人17提出的完备安全的 FHIPE,只使用一组对偶正交基就能在一般群模型下达到模拟安全性,其参数大小和运行时间复杂度低于文献 25 和文献 26.FHIPE=(Setup,LeftEncrypt,RightEncrypt,Decrypt),如下所示:Setup(1,1n)(mpk,msk):给定安全参数 和向量长度 n,Setup 算法输出关于 和 n 的公共参数 mpk 和主密钥 msk.具体而言,Setup 生成非对称双线性映射(G1,G2,GT,p,e),及群上生成元 u G1和 v G2.接着,算法生成矩阵
31、B GLn(Zp),其中 GLn(Zp)是 Zp上(nn)矩阵的一般线性群.然后,使用 B 的行列式 det(B)和逆矩阵 B1的转置(B1)T设置矩阵 B=det(B)(B1)T.最后,算法输出公共参数 mpk=(G1,G2,GT,p,e)和保存主密钥msk=(u,v,B,B).LeftEncrypt(msk,y)EL(y):给定主密钥 msk 和向量 y=(y1,y2,yn),均匀随机数$Zp,输出密文 EL(y)=(L1,L2)=(udet(B),uyB).RightEncrypt(msk,x)ER(x):给定主密钥 msk 和向量 x=(x1,x2,xn),均匀选择随机数$Zp,输出密
32、文 ER(x)=(R1,R2)=(v,vxB).Decrypt(mpk,EL(y),ER(x)z:给定 mpk,密文 EL(y)=(L1,L2)和 ER(x)=(R1,R2),解密算法 Decrypt 计算:D1=e(L1,R1)和 D2=e(L2,R2).如果能够解决离散对数问题找到一个满足(D1)z=D2的 z,则解密算法输出 z 且 z=,否则输出 表示无法找到一个有效的 z.4双向隐私保护云端医疗诊断方案4.1符号定义表1概述了本文中出现的一些符号.表 1 本文符号定义Table 1Notations and terms符号说明符号说明x向量xZl网络第 l 层的输出安全参数Wl网络第
33、 l 层的权重xx 的密文W模型的权重xx 的向下取整X输入网络的样本数据4.2系统模型本文描述的医疗诊断系统涉及以下四个角色,其作用描述如下:可信第三方(third party authority,TPA):受信任的第三方机构,可视为受信任的密钥分发中心或任何其他受信任的机构实体,主要任务是生成系统参数并分发.TPA 执行系统初始化算法,并蔡梦媛 等:基于内积加密的双向隐私保护医疗诊断云服务方案991调用 IPE.Setup 和 FHIPE.Setup 算法,生成密码系统参数(mpkIPE、mskIPE、mpkFHIPE及mskFHIPE).在完成系统初始化后,TPA 向数据持有者、模型持有
34、者和云服务器发送且仅发送一次系统参数.数据持有者(data owner,DO):接收来自 TPA 的 mskFHIPE,拥有个人医疗数据.DO 首先进行浮点数处理、零向量编码、数据 im2col 调整等预处理操作,然后调用 FHIPE.RightEncrypt 算法使用 mskFHIPE加密持有的数据,并将密文数据提交给服务器进行诊断.模型持有者(model owner,MO):MO 先训练出模型,调整模型以识别密文数据,然后调用FHIPE.LeftEncrypt 和 IPE.Encrypt 算法使用 mskFHIPE和 mskIPE加密预训练模型参数.最后MO 将受保护的模型提交给服务器以提
35、供医疗诊断服务.云服务器(cloud server,CS):接收来自 TPA 的 mpkFHIPE和 mpkIPE,提供存储和计算资源,基于 MO 部署的预训练模型提供在线医疗诊断服务.当 CS 从 DO 接收到医疗数据时,调用IPE.Decrypt 和 FHIPE.Decrypt 安全地执行具有双向隐私保护的图像识别算法.4.3威胁模型在本文中,TPA 是一个可信的第三方,负责所有密码系统参数的生成和分配,确保所有参数的安全性和正确性.在实际应用中,它通常由公钥基础设施提供服务.面对来自 DO、MO、CS 和外部攻击者的攻击,本文考虑了以下威胁模型:诚实但好奇的 DO:DO 持有医疗数据并使
36、用云端诊断服务,诚实地执行系统算法并遵循系统的协议,能访问用户医疗数据.DO 会通过 FHIPE加密用户数据并准确无误地发送到云服务器 CS,但DO 会好奇 MO 持有的模型参数,即通过监听 MO 和 CS 的通道收集加密的模型参数,从中获取MO 持有的模型信息.诚实但好奇的 MO:MO 训练明文形式的数据集,并修改预训练模型使之能够识别密文数据,会诚实地执行系统算法并遵循系统的协议,能自行研发深度学习算法并训练模型.MO 会通过 IPE和FHIPE加密本地模型参数并准确无误地发送到云服务器 CS,但 MO 会好奇 DO 持有的用户医疗数据,即通过监听 DO 和 CS 的通道收集加密的医疗数据
37、,从中获取 DO 持有的医疗数据.诚实但好奇的 CS:为 DO 提供云端预测服务,为 MO 提供部署预训练模型的云平台,CS 被认为是诚实但好奇的,会诚实地执行系统算法并遵循系统的协议,但会好奇 DO、MO 的私有信息.恶意攻击者:系统外部攻击者,可以窃听各个通信通道,具有入侵云服务器 CS 以获取更多敏感信息的能力.4.4设计目标本文方案的设计目标是避免 DO 的医疗数据和 MO 的模型信息泄露,并通过部署在 CS 上的预训练模型提供有效的医疗诊断服务.DO 和 MO 的明文数据在整个运行过程中必须得到充分的保护.所以我们需要满足以下设计要求:安全性和隐私性:需要实现双向隐私保护,同时保护
38、DO 持有的医疗数据和 MO 持有的模型参数,并避免泄露给任何其他实体.此外,还需要具有足够的安全性以抵御来自 DO、MO、CS 和任何外部攻击者的攻击.功能性:模型训练需要和原模型有相同的图像识别功能和相似的精度,所以要求能够安全且正确地计算模型参数和各层输入的内积值,并且能够正确处理浮点数和负数的输入值.可扩展性:需要支持不同的神经网络架构,并且神经网络和激活函数可以针对不同的应用场景进行调整.有效性:需要实现高效、准确的医疗诊断,同时满足双向隐私保护功能.4.5具体实现本小节给出了一个在线医疗诊断的双向隐私保护方案(参见图2)的具体实现,由四个阶段组成:系统初始化、数据预处理、模型生成以
39、及安全医疗诊断.系统初始化(参见算法1)由 TPA 生成密码系统参数,992Journal of Cryptologic Research 密码学报 Vol.10,No.5,Oct.2023随后向 DO 和 MO 发送加密密钥.数据预处理由 DO 对医疗数据 x=(x1,x2,xn)预处理后加密,并发送医疗数据密文 X 给 CS.模型生成是指 MO 训练一个 EfficientNet27模型,并修改使之能够识别密文数据.然后 MO 加密模型权重矩阵 W,并部署受保护的模型 W 到 CS.安全预测是让 CS 执行神经网络的安全前向传播算法,从而获得最终的预测标签并发送给 DO.图 2 双向隐私保
40、护医疗诊断系统Figure 2 Bilateral privacy-preserving medical diagnosis system process算法 1 系统初始化Input:network information N,security parameter Output:cryptosystem parameter mpkIPE,mskIPE,mpkFHIPEand mskFHIPE1TPA collect the network information N and security parameter from CS;2mpkIPE,mskIPE IPE.Setup(,N);3mp
41、kFHIPE,mskFHIPE FHIPE.Setup(,N);4TPA send the public parameter mpkIPE,mskIPE,mpkFHIPEand mskFHIPEto CS,DO,MO,respectively.4.5.1数据预处理在加密医疗数据之前,DO 需要从 CS 获取医疗诊断云服务的神经网络采用的填充策略和内核大小等网络信息,并且进行数据预处理操作(参见算法2).DO 首先将每张医学图像映射成向量,接着根据 im2col算法整理图像向量,然后处理浮点数和零向量的问题,最后加密图像向量并发送到 CS.算法 2 数据预处理与加密Input:user data
42、 X,cryptosystem parameter mskFHIPE,network information NOutput:encrypted data X1X padding(X);2X im2col(X,N);3X X 2p;4X Encoding1(X);5x FHIPE.RightEncrypt(mskFHIPE,X).由于本文采用的神经网络第一层是卷积层,因此 DO 需要填充周围的样本数据,然后根据卷积核滑动采样,从而利用卷积值填充输出特征图.其中,根据 im2col 算法28,29的卷积核滑动采样思想(参见图3),首先将样本数据根据卷积核的大小分割成若干个小块,然后按顺序排列各个
43、小块的像素值,最后将各个小块的像素值拼接成为一个一维矩阵,方便后续通过 FHIPE加密样本数据.内积加密方案只能在有限整数域上操作,但训练样本和模型参数通常会涉及负数和浮点数.本文使用生成元求逆方法扩展内积加密技术的向量有效范围,可以处理涉及负数的情况(参见4.5.3节).而关于原蔡梦媛 等:基于内积加密的双向隐私保护医疗诊断云服务方案993图 3 im2col 算法描述Figure 3 Description for im2col algorithm始数据中的浮点数处理问题,本文采用数值缩放后向下取整的方法:a=a 2p,(1)其中 p 是预定义的缩放值,用以控制计算精度,可以根据实际使用中
44、不同的预测精度需求调整,从而降低浮点数的预处理对预测服务的影响.缩放实数的基本运算如下:a+b=a+b,a b=a b2p.(2)其中 a 和 b 的乘法需要除去 2p,是因为 a,b 都放大了 2p导致 a b 放大了 22p,但实际上只需要比 a b放大 2p即可.浮点数处理后的医疗数据 X 或模型权重 W 可以作为内积加密的消息向量和密钥向量.本文使用的 FHIPE17结构源自文献 25,26 中的方案,虽然论文中没有明确提及,但三者的安全性证明(文献 25 中不允许攻击者查询零向量)和实验中发现的问题(文献 17 中零向量以明文的形式出现在密文数据),表明三者对零向量的处理有所欠缺.本
45、文方案向消息向量 x 和密钥向量 y 分别添加 2 个槽,可以在保持内积值不变的前提下消除上述限制,即分别编码为 x (0,1,x)和 y (1,0,y),具体如下:Encode1:x=(x0,x1,xn)x=(0,1,x0,xn).(3)Encode2:y=(y0,y1,yn)y=(1,0,y0,yn).(4)在数据预处理之后,DO 调用 FHIPE.RightEncrypt 算法加密处理后的数据,并向服务器提交密文数据.而服务器使用从 TPA 获取的公共参数 mpkFHIPE,调用 FHIPE.Decrypt 算法便可以在密文上实现安全前向传播(参见4.5.3节).4.5.2模型生成在模型
46、生成(参见算法3)阶段,MO 使用自行研发的深度学习算法(如 EfficientNet,见图4)训练明文形式的数据集获得预训练模型.当 MO 想要将模型部署到 CS 时,本文给出的方案是改造模型的前向传播计算,使其能够对加密的医疗数据进行实时预测.其中,模型第一层的计算涉及用户数据和模型权重,因此使用 FHIPE 保护双向隐私.其后的各层计算只需考虑模型权重,则使用 IPE 保护.994Journal of Cryptologic Research 密码学报 Vol.10,No.5,Oct.2023算法 3 模型生成Input:pretrained model weight W,cryptos
47、ystem parameter mpkIPEand mskFHIPE,network information NOutput:encrypted weight W1W list.initialize();2for w in W do3only if;4if w is first layer then5W Encoding2(W);6W.append(FHIPE.LeftEncrypt(mskFHIPE,w);7else8W.append(IPE.Encrypt(mpkIPE,w);9end10end图 4 EfficientNet 网络架构Figure 4 Architecture of Ef
48、ficientNet云端的在线医疗诊断服务对实时性要求较高,而激活函数 Sigmoid 算法的计算时间较长,因此本文考虑了各类与 Sigmoid 算法性质相似但计算速度更快的变体.Sigmoid 作为最基本的激活函数,广泛应用于各种场景,有 Fast Sigmoid 和 Hard Sigmoid30等变体:Sigmoid(x)=11+exp(x).(5)Fast Sigmoid(x)=0.5(x0.99|x|+|x|+1).(6)Hard Sigmoid(x)=0,x 3x6+12,else.(7)从图5可以看出,Fast Sigmoid 的曲线更接近 Sigmoid,且计算效率更高,因此本文
49、方案采用 FastSigmoid 作为 Sigmoid 的高效替代.4.5.3安全医疗诊断CS 为 DO 提供的在线医疗诊断服务依赖于 MO 部署到 CS 的预训练模型,并由 CS 负责医疗诊断服务的运行和维护,在 DO 提交医疗数据时 CS 执行安全医疗诊断算法(参见算法4).本文方案的神经网络架构为 EfficientNet(参见图4),其第一层网络是 3 3 卷积层,而且受到 FHIPE保护,因此计算第一层输出 W1 X=Decrypt(X,W1)=Decrypt(RightEncrypt(X),LeftEncrypt(W1).此外,其他层受 IPE保护,CS 需要使用其前一层的输出 Z
50、l1来调用 IPE的 Keygen 算法,随后 CS 计算第 l蔡梦媛 等:基于内积加密的双向隐私保护医疗诊断云服务方案995算法用时(s)Sigmoid1.9 105Fast Sigmoid1.3 105Hard Sigmoid1.6 105图 5 Sigmoid 算法及其变体性能比较Figure 5 Comparison of Sigmoid variants层输出 Zl为 Zl=Decrypt(Wl,Zl1)=Decrypt(Encrypt(Wl),Keygen(Zl1).算法 4 在线医疗诊断算法Input:encrypted data X,encrypted weight param