买专利,只认龙图腾
首页 专利交易 科技果 科技人才 科技服务 商标交易 会员权益 IP管家助手 需求市场 关于龙图腾
 /  免费注册
到顶部 到底部
清空 搜索

【发明授权】支持隐私保护的KNN分类服务系统及方法_东北大学_201910271239.5 

申请/专利权人:东北大学

申请日:2019-04-04

公开(公告)日:2021-06-08

公开(公告)号:CN110011784B

主分类号:H04L9/00(20060101)

分类号:H04L9/00(20060101);G06K9/62(20060101)

优先权:

专利状态码:有效-授权

法律状态:2021.06.08#授权;2019.08.06#实质审查的生效;2019.07.12#公开

摘要:本发明属于机器学习与隐私保护领域,具体涉及一种支持隐私保护的KNN分类服务系统及方法。系统的架构包括:模型拥有者和客户端;支持隐私保护的KNN分类服务系统的方法,包括:1准备阶段,生成公私钥,根据公钥对训练数据进行加密;2分类阶段,双方交互密钥;客户端通过公钥加密待测数据,模型拥有者基于加密的训练数据使用安全协议协同客户端完成加密数据分类,最终得到分类结果并发送至客户端。本发明利用同态加密计算将训练数据与待测数据进行加密,通过将安全多方计算技术与同态加密相结合构造安全的基本协议,基于此构造安全的KNN分类器,使得双方在保证个人数据隐私不泄露的前提下实现对个人数据的分析预测。

主权项:1.一种支持隐私保护的KNN分类服务系统,其特征在于,系统的架构包括:模型拥有者和客户端;所述模型拥有者与客户端之间通过传输信息的专用安全通道连接;所述客户端是分类预测服务的请求者,用于输入并保存待测数据,负责提供密钥生成与分发功能和数据可视化功能;所述模型拥有者是分类预测服务的响应者,其拥有训练数据与分类算法,负责提供密钥生成与分发功能、密文数据分类功能;所述密钥生成与分发功能为:所述模型拥有者生成Paillier加密方案的公私钥对pkp,skp及FHE加密方案的公私钥对pkFHE,skFHE;所述客户端生成QR加密方案的公私钥pkQR,skQR;其中的私钥skp、skFHE和skQR由各自存储在本地;当客户端向模型拥有者发送分类请求时,双方将公钥pkp、pkFHE和pkQR发送给对方;所述密文数据分类功能为:所述模型拥有者使用加密后的训练数据,客户端使用加密后的待测数据,双方通过密文欧式距离计算和密文比较实现对加密后的待测数据的分类,最后客户端得到分类结果;所述数据可视化功能为:本系统将客户端和模型拥有者在密文数据分类过程中的所有操作动态显示在客户端,最终将分类结果以文字的形式显示在终端;所述支持隐私保护的KNN分类服务系统根据功能层次分为四个模块:客户端模块、模型拥有者模块、密钥管理模块以及密文运算模块;所述客户端模块是系统的服务对象,其处理流程中,输入待测数据的输入方式有两种:手动输入待测数据和选择文件上传,然后向模型拥有者申请分类服务,得到对方响应后,共同执行密文分类计算任务,得到分类结果;所述模型拥有者模块是系统的服务提供者,其处理流程实现目标有:①通过模型加密功能,将训练数据转换为整型数据并使用加密密钥加密后存储,用于后续分类;②通过密钥管理功能,调用密钥管理模块的密钥生成、分发,生成Paillier和FHE公私钥对,将公钥发送给客户端;③通过密文分类服务功能,实现密文数据的分类运算;所述密钥管理模块主要包括四部分:①密钥生成、②密钥分发、③加密算法和④解密算法;所述密钥管理模块使用了两种同态加密方案,即Goldwasser-Micali的二次剩余加密系统QR和Paillier加密系统,并使用了一种全同态加密方案FHE对数据进行加密;所述密文运算模块包含四部分:①密文比较协议:比较两个用Paillier加密的密文数据,获取明文比较结果;②密文点积协议:计算模型拥有者的FHE加密训练数据与用户的FHE加密待测数据之间的欧式距离,得到FHE加密的欧式距离;③密文转换协议:实现从FHE加密数据到Paillier加密数据的转换;④密文getMINn协议:从N个Paillier加密的密文数据中获取前n个最小值,先将数组中的值两两比较,将两者中较小的值赋给下标较小的一方,将0赋值给下标较大一方,记录原始较小方的下标,一次循环结束,所有较小方组成新的数组,然后继续比较新的数组,直到数组个数为1,该值即为最小值,其比较通过密文比较协议实现,每次比较得到一个最小值,然后将最小值重新赋值为最大值,循环k次得出k近邻样本;支持隐私保护的KNN分类服务系统,用于执行以下步骤:步骤1,模型拥有者生成用于加解密训练数据及待测数据的Paillier加密方案和FHE加密方案的公私钥,客户端生成用于辅助密文比较的QR加密方案的公私钥;步骤2,客户端输入待测数据将待测数据x和模型拥有者的训练数据集进行浮点数据处理,得到整型的待测数据x和训练数据集D,其中d表示数据的维度,m表示训练数据个数,i表示第i个训练数据,取值范围为1≤i≤m,浮点数转换为整型数据的转换步骤如下:步骤2.1,使用IEEE754双精度浮点数格式来存储浮点数据,即一个实数v在IEEE754双精度标准中可以用v=-1S·M·2E的形式表示,其中S为符号位,决定实数是正数还是负数,占1比特;指数E是2的幂,作用是对浮点数加权,占11比特;有效数字M是二进制小数,M2=1.ff...f2,其中1.ff...f为有效数字,f∈{0,1},取值范围为1≤M<2,占52比特;M可表示为: 其中,为整数集;此时,实数v可以表示为v=M′·2E-52,忽略v的符号;步骤2.2,寻找合适的常量K,使得对于1≤i≤m,K满足 其中,步骤2.3,令e*=mini∈{1,...,m}Ei,δi=Ei-e*≥0,则 令则 因此,经过上述计算可以得出常量则训练数据和待测数据转换后的数据表示为:训练数据集D:待测数据其中j表示待测数据x和训练数据yi的第j个特征值,i表示第i个训练数据,1≤i≤m;步骤3,客户端向模型拥有者发送进行分类预测的请求;模型拥有者接收到请求后,双方建立可信网络连接,客户端将QR的公钥pkQR发送给模型拥有者,模型拥有者将FHE和Paillier的公钥pkFHE和pkp发送给客户端,私钥本地保存,不被对方获知;步骤4,模型拥有者使用FHE公钥pkFHE加密训练数据集D,得到加密后的训练数据集将加密后的训练数据发送给客户端,客户端使用FHE公钥pkFHE加密待测数据x,得到加密后的待测数据其中m表示训练数据个数,d表示待测数据和训练数据的维度;然后利用同态加密属性,结合接收到的加密后的训练数据集,进行分类计算过程,分类过程全程基于密文运算,由两方共同参与,期间双方仅能得到随机值或加密后的随机值;经过步骤3和步骤4,客户端和模型拥有者除拥有FHE、QR和Paillier的公钥外,客户端还拥有QR的私钥以及FHE加密后的待测数据,可以表示为 模型拥有者还拥有Paillier和FHE的私钥以及FHE加密后的训练数据集,可以表示为步骤5,客户端和模型拥有者协同进行欧氏距离计算,得到FHE加密后的欧式距离集合其中m表示训练数据个数,yi表示第i个训练数据,dx,yi表示待测数据x和训练数据yi的欧式距离,欧式距离的计算方法如下:客户端接收加密后的训练数据集,利用FHE的加法和乘法同态属性通过欧式距离公式计算各加密后的训练数据与待测数据的欧式距离,为降低密文运算开销,采用距离的平方作为评估标准,由于同时取平方,因此变化后不会影响后续的比较操作;所述欧式距离公式为; 式5中A=x1,x2,...,xd,B=y1,y2,...,yd,其对应的密文计算表达式如公式67所示: 式6中是FHE加密后的待测数据,是FHE加密后的第i个训练数据,是加密后的训练数据与加密后的待测数据的各个属性做差后的加密结果,其中z=yi-x;式7中表示加密后的欧式距离的平方,其中x,y,z皆为向量,维度为d,vi为整数,是欧式距离的平方,其中i表示第i个训练数据,vi表示第i个训练数据与待测数据的欧式距离的平方;循环执行步骤5直到遍历所有的训练数据,最终,客户端得到待测数据与所有训练数据的FHE加密后的欧式距离,记作步骤6,由于密文比较操作的输入数据为Paillier加密的密文数据,因此在进行密文比较前,需将FHE加密的欧式距离转换为Paillier加密的欧式距离转换方法如下:步骤6.1,对于1≤i≤m,客户端均匀随机选择一个数ri←p,p是大素数,使用FHE公钥对ri加密得到加密后的根据式8为欧式距离增加随机数得到并发送给模型拥有者; 式8中表示FHE加密的欧式距离,表示FHE加密的随机数,表示增加随机数的FHE加密的欧式距离;步骤6.2,模型拥有者接收到数据使用FHE私钥进行解密得到vi+ri,然后使用Paillier公钥重新进行加密得到Paillier加密的数据并将其发送给客户端;步骤6.3,客户端接收i表示第i个训练数据;步骤6.4,通过去除随机数ri,客户端得到Paillier加密后的欧式距离步骤7,对Paillier加密后的欧式距离进行密文比较;步骤7.1,寻求距离待测数据最小的K个近邻训练数据:K表示距离待测数据最小的训练数据个数;令k=K,num=m,其中m表示训练数据的个数,共三层循环;步骤7.2,最外层循环与k比较,若小于k值,令步骤7.3内部操作是对数组Dis_中的元素进行操作,然后进入第二层循环,即步骤7.3;若不小于k值,则进入步骤8;步骤7.3,第二层循环判断条件如式9所示,i从1开始,i表示欧式距离的下标;若满足式9则进入第三层循环,即步骤7.4;若不满足则进入步骤7.8; 步骤7.4,第三层循环判断条件如式10所示,j从1开始,j表示欧式距离的下标;若满足式10,则进入第三层循环内部执行密文比较,密文比较执行分两种情况:当i=1时,执行步骤7.5;当i1时,执行步骤7.6;当不满足条件10时,执行步骤7.7; 步骤7.5,客户端调用密文比较协议和服务器协同完成和的比较,得到比较结果表示小于等于反之,大于比较过程如下:步骤7.5.1,对于客户端首先通过公式计算得到其中a表示b表示l表示和的二进制位数,N表示Paillier的模数,然后随机选取随机数r,并使用Paillier的公钥进行加密得到加密后的随后通过公式为添加随机数得到并将其发送给模型拥有者;步骤7.5.2,模型拥有者接收数据并使用Paillier私钥进行解密得到z=x+r,然后通过公式d←zmod2l计算得到整数d,对z的第l+1位zl+1进行加密得到[zl+1],其中[.]表示QR加密的数据;步骤7.5.3,客户端通过公式c←rmod2l计算得到整数c;模型拥有者通过和客户端协同执行DGK协议得到[t′]≡[d<c];步骤7.5.4,客户端对r的第l+1位rl+1进行加密得到加密后的[rl+1]并发送给模型拥有者,模型拥有者接收后,通过公式[t]←[t′]·[zl+1]·[rl+1]计算得到QR加密的[t]并将其发送给客户端,客户端解密后得到t.若t等于1时,则a≤b即通过步骤7.5.1至步骤7.5.4,客户端得到和的比较结果;步骤7.5.5,一次比较完成后,客户端将比较数据中较小的值赋给下标为2j-1的密文,即将比较数据中较大的值赋值为0,即进入步骤7.4;步骤7.6,客户端调用密文比较协议执行和的比较,得到比较结果表示小于等于反之,大于比较过程与步骤7.5.1~7.5.4相同,只是第一步通过公式计算时,将a替换成b替换为经过与步骤7.5.1~7.5.4相同的计算过程,客户端得到比较结果一次比较完成后,客户端将比较数据中较小的值赋给下标为1+j-1·2i的密文,即将比较数据中较大的值赋值为0,即进入步骤7.4;步骤7.7,令i加1;进入步骤7.3;步骤7.8,步骤7.2一次循环结束后,客户端可以得到一个最小的欧式距离及其下标min,然后将欧式距离和下标保存到k近邻数组dis_k中,将数组Dis中的重置为即最大值,其中l表示二进制表示的比特位数,刷新数组Dis中m个加密的欧式距离后,当前循环条件k加1,进入步骤7.2;步骤8,客户端得到k个最近邻训练数据,记作其对应的类别标签集记为s表示类别数目,k表示数组dis_k的第k个元素,i表示第i个类别;步骤9,客户端统计k个最近邻训练数据的类别数目,类别数目最多的类别为待测数据所属的类别。

全文数据:支持隐私保护的KNN分类服务系统及方法技术领域本发明属于机器学习与隐私保护领域,具体涉及一种支持隐私保护的KNN分类服务系统及方法。背景技术KNN分类服务,即k近邻k-NearestNeighbor,KNN分类器在样本训练和分类阶段都可能发生用户隐私信息的泄露。在样本训练阶段,数据拥有者不希望自己拥有的数据信息被泄露出去,甚至对训练者也要进行保密,这就需要对训练数据进行加密处理。在分类阶段,训练者会将得到的模型W作为分类器的构成部分,并将分类器发布出去提供服务,但不希望成果被第3方获取,这就需要对分类模型和测试向量进行加密。因此,对于分类器而言,不论是训练阶段还是分类阶段,数据的隐私保护问题都急需被解决。目前,针对数据分类过程中的隐私保护研究方法主要有三类:1数据扰动技术,直接通过添加随机噪声的方式来扰动各个数据记录的值,使得扰动数据的分布看起来与实际数据的分布非常不同。但是扰动数据不具备语义安全性,并且对于分类器而言,无法产生精确的分类结果;2安全多方计算技术。这类技术假定数据集是水平或垂直分割并分布存储在各参与方的。各参与方之后可以联合对数据进行挖掘并得出数据挖掘结果,且在处理过程中,各方数据不会泄露给其他方仅被自身获知。然而,这类方法的中间计算任务是基于非加密数据,且数据在传输过程中也是未加密的,容易在数据传输过程泄露隐私信息;3同态加密技术,相较于传统的只支持密文存储的加密算法,其允许用户直接对密文进行特定的代数运算,得到的数据仍是加密的结果,且与对明文进行同样的操作再将结果加密一样,主要包括全同态加密和部分同态加密技术。全同态加密技术理论上允许第三方在未解密的条件下对密文执行任意运算,但是其在实际应用中仍旧存在一些约束,例如,计算代价昂贵;只支持整数类型的数据;需要固定的乘法深度,不能无限进行加法和乘法运算;以及全同态加密不支持比较和取最值运算等。部分同态加密技术,能够满足乘法或加法同态属性,然而,依然无法支持比较和取最值运算。综上所述,现有的隐私保护技术无法直接运用于数据分类过程的隐私保护当中,其实际应用存在以下约束:1当前技术无法保证数据的语义安全,分类结果不精确;2数据以明文形式传输,无法保证数据在传输过程中不被窃取造成隐私泄露;3针对加密数据,全同态加密虽然能够满足任意运算但效率低下,部分同态加密仅支持加法或者乘法运算,且两者都不支持比较和求最值运算。为解决上述问题,大量学者纷纷开展了数据分类过程的隐私保护研究工作,借助安全多方计算构造适合基于同态加密数据的机器学习分类器的协议,通过协议的线性组合来完成分类器的构造是主要解决方法。例如,2013年Graepel等人基于安全多方协议与同态加密方案训练几种简单的分类器,例如线性分类器,该分类器是支持加密数据分类的,但是其构造的模型安全性较低,导致客户端不仅能够得知最终的分类结果,还可能会获取分类模型的信息,造成分类模型信息的泄露;2016年Liu等人设计了一种加法同态代理聚合方案实现了云端患者的历史数据的隐私保护,引入了隐私保护的top-k疾病名称检索协议保证了朴素贝叶斯分类器的安全性;2017年Ligier等人提出了将线性分类器和IPEInnerProductEncryption相结合的方法来对加密数据进行分类。其隐私保护分类方案允许用户的数据被加密,但服务器能够获知最终的加密结果。虽然将同态加密方案和安全多方计算结合起来能够部分解决分类器数据隐私保护问题,并且已有一些关于分类器隐私保护的研究成果,但仍存在以下问题:1大部分方案都是针对训练阶段数据的隐私保护,很少有针对分类模型和分类过程的保护;2其安全性设置较低,容易泄露分类模型及分类结果;;3同态加密运算支持加法和乘法运算的多项式运算,比较运算也能够通过安全多方计算得到,但机器学习计算开销较大,效率较低。因此,设计基于分类器基本操作的加密协议并以模块化顺序组合的方法构造安全的分类器,使之从训练阶段到分类过程都能保证安全性,同时保证模型、分类结果及待测数据的隐私安全并获得一个准确的类别是当前机器学习隐私保护的重要研究方向之一。发明内容针对上述存在的技术问题,本发明提供一种支持隐私保护的KNN分类服务系统,系统的架构包括:模型拥有者和客户端;所述模型拥有者与客户端之间通过传输信息的专用安全通道连接;所述客户端是分类预测服务的请求者,用于输入并保存待测数据,负责提供密钥生成与分发功能和数据可视化功能;所述模型拥有者是分类预测服务的响应者,其拥有训练数据与分类算法,负责提供密钥生成与分发功能、密文数据分类功能;所述密钥生成与分发功能为:所述模型拥有者生成Paillier加密方案的公私钥对及FHE加密方案的公私钥对;所述客户端生成QR加密方案的公私钥;其中的私钥skp、skFHE和skQR由各自存储在本地;当客户端向模型拥有者发送分类请求时,双方将公钥pkp、pkFHE和pkQR发送给对方;所述密文数据分类功能为:所述模型拥有者使用加密后的训练数据,客户端使用加密后的待测数据,双方通过密文欧式距离计算和密文比较实现对加密后的待测数据的分类,最后客户端得到分类结果;所述数据可视化功能为:本系统将客户端和模型拥有者在密文数据分类过程中的所有操作动态显示在客户端,最终将分类结果以文字的形式显示在终端。所述支持隐私保护的KNN分类服务系统根据功能层次分为四个模块:客户端模块、模型拥有者模块、密钥管理模块以及密文运算模块;所述客户端模块是系统的服务对象,其处理流程中,输入待测数据的输入方式有两种:手动输入待测数据和选择文件上传,然后向模型拥有者申请分类服务,得到对方响应后,共同执行密文分类计算任务,得到分类结果;所述模型拥有者模块是系统的服务提供者,其处理流程实现目标有:①通过模型加密功能,将训练数据转换为整型数据并使用加密密钥加密后存储,用于后续分类;②通过密钥管理功能,调用密钥管理模块的密钥生成、分发,生成Paillier和FHE公私钥对,将公钥发送给客户端;③通过密文分类服务功能,实现密文数据的分类运算;所述密钥管理模块主要包括四部分:①密钥生成、②密钥分发、③加密算法和④解密算法;所述密钥管理模块使用了两种同态加密方案,即Goldwasser-Micali的二次剩余加密系统QR和Paillier加密系统,并使用了一种全同态加密方案FHE对数据进行加密;所述密文运算模块包含四部分:①密文比较协议:比较两个用Paillier加密的密文数据,获取明文比较结果;②密文点积协议:计算模型拥有者的FHE加密训练数据与用户的FHE加密待测数据之间的欧式距离,得到FHE加密的欧式距离;③密文转换协议:实现从FHE加密数据到Paillier加密数据的转换;④密文getMINn协议:从N个Paillier加密的密文数据中获取前n个最小值,先将数组中的值两两比较,将两者中较小的值赋给下标较小的一方,将0赋值给下标较大一方,记录原始较小方的下标,一次循环结束,所有较小方组成新的数组,然后继续比较新的数组,直到数组个数为1,该值即为最小值,其比较通过密文比较协议实现,每次比较得到一个最小值,然后将最小值重新赋值为最大值,循环k次得出k近邻样本。一种支持隐私保护的KNN分类服务系统的方法,采用所述的支持隐私保护的KNN分类服务系统,包括:一、准备阶段,模型拥有者和客户端生成公私钥,模型拥有者根据公钥对训练数据进行加密;二、分类阶段,当客户端希望通过模型拥有者拥有的分类算法及训练数据进行分类预测时,向模型拥有者发送进行分类预测的请求,然后双方交互密钥;客户端通过公钥加密待测数据,模型拥有者基于加密的训练数据使用安全协议协同客户端完成加密数据分类,最终得到分类结果并发送至客户端。所述的支持隐私保护的KNN分类服务系统的方法,包括以下步骤:步骤1,模型拥有者生成用于加解密训练数据及待测数据的Paillier加密方案和FHE加密方案的公私钥,客户端生成用于辅助密文比较的QR加密方案的公私钥;步骤2,客户端输入待测数据将待测数据x和模型拥有者的训练数据集进行浮点数据处理,得到整型的待测数据x和训练数据集D,其中d表示数据的维度,m表示训练数据个数,i表示第i个训练数据,取值范围为1≤i≤m,浮点数转换为整型数据的转换步骤如下:步骤2.1,使用IEEE754双精度浮点数格式来存储浮点数据,即一个实数v在IEEE754双精度标准中可以用v=-1S·M·2E的形式表示,其中S为符号位,决定实数是正数还是负数,占1比特;指数E是2的幂,作用是对浮点数加权,占11比特;有效数字M是二进制小数,M2=1.ff...f2,其中1.ff...f为有效数字,f∈{0,1},取值范围为1≤M<2,占52比特;M可表示为:其中,为整数集;此时,实数v可以表示为v=M′·2E-52,忽略v的符号;步骤2.2,寻找合适的常量K,使得对于1≤i≤m,K满足其中,步骤2.3,令e*=mini∈{1,...m}Ei,δi=Ei-e*≥0,则令K=252-e*,则因此,经过上述计算可以得出常量K=252-e*,则训练数据和待测数据转换后的数据表示为:训练数据集D:待测数据其中j表示待测数据x和训练数据yi的第j个特征值,i表示第i个训练数据,1≤i≤m;步骤3,客户端向模型拥有者发送进行分类预测的请求;模型拥有者接收到请求后,双方建立可信网络连接,客户端将QR的公钥pkQR发送给模型拥有者,模型拥有者将FHE和Paillier的公钥pkFHE和pkp发送给客户端,私钥本地保存,不被对方获知;步骤4,模型拥有者使用FHE公钥pkFHE加密训练数据集D,得到加密后的训练数据集将加密后的训练数据发送给客户端,客户端使用FHE公钥pkFHE加密待测数据x,得到加密后的待测数据其中m表示训练数据个数,d表示待测数据和训练数据的维度;然后利用同态加密属性,结合接收到的加密后的训练数据集,进行分类计算过程,分类过程全程基于密文运算,由两方共同参与,期间双方仅能得到随机值或加密后的随机值;经过步骤3和步骤4,客户端和模型拥有者除拥有FHE、QR和Paillier的公钥外,客户端还拥有QR的私钥以及FHE加密后的待测数据,可以表示为模型拥有者还拥有Paillier和FHE的私钥以及FHE加密后的训练数据集,可以表示为步骤5,客户端和模型拥有者协同进行欧氏距离计算,得到FHE加密后的欧式距离集合其中m表示训练数据个数,yi表示第i个训练数据,dx,yi表示待测数据x和训练数据yi的欧式距离,欧式距离的计算方法如下:客户端接收加密后的训练数据集,利用FHE的加法和乘法同态属性通过欧式距离公式计算各加密后的训练数据与待测数据的欧式距离,为降低密文运算开销,采用距离的平方作为评估标准,由于同时取平方,因此变化后不会影响后续的比较操作;所述欧式距离公式为;式5中A=x1,x2,...,xd,B=y1,y2,...,yd,其对应的密文计算表达式如公式67所示:式6中是FHE加密后的待测数据,是FHE加密后的第i个训练数据,是加密后的训练数据与加密后的待测数据的各个属性做差后的加密结果,其中z=yi-x,;式7中是欧式距离的平方,x,y,z皆为向量,维度为d,vi为整数,是欧式距离的平方,其中i表示第i个训练数据与待测数据的欧式距离;循环执行步骤5直到遍历所有的训练数据,最终,客户端得到待测数据与所有训练数据的FHE加密后的欧式距离,记作步骤6,由于密文比较操作的输入数据为Paillier加密的密文数据,因此在进行密文比较前,需将FHE加密的欧式距离转换为Paillier加密的欧式距离转换方法如下:步骤6.1,对于1≤i≤m,客户端均匀随机选择一个数ri←p,p是大素数,使用FHE公钥对ri加密得到加密后的根据式8为欧式距离增加随机数得到并发送给模型拥有者;式8中表示FHE加密的欧式距离,表示FHE加密的随机数,表示增加随机数的FHE加密的欧式距离;步骤6.2,模型拥有者接收到数据使用FHE私钥进行解密得到vi+ri,然后使用Paillier公钥重新进行加密得到Paillier加密的数据并将其发送给客户端;步骤6.3,客户端接收i表示第i个欧式距离;步骤6.4,通过去除随机数ri,客户端得到Paillier加密后的欧式距离步骤7,对Paillier加密后的欧式距离进行密文比较;步骤7.1,寻求距离待测数据最小的K个近邻训练数据:K表示距离待测数据最小的训练数据个数;令其中m表示欧式距离的个数,共三层循环;步骤7.2,最外层循环与k比较,若小于k值,令步骤7.3内部操作是对数组Dis_中的元素进行操作,然后进入第二层循环,即步骤7.3;若不小于k值,则进入步骤8;步骤7.3,第二层循环判断条件如式9所示,i从1开始,i表示欧式距离的下标;若满足式9则进入第三层循环,即步骤7.4;若不满足则进入步骤7.8;步骤7.4,第三层循环判断条件如式10所示,j从1开始,j表示欧式距离的下标;若满足式10,则进入第三层循环内部执行密文比较,密文比较执行分两种情况:当i=1时,执行步骤7.5;当i1时,执行步骤7.6;当不满足条件10时,执行步骤7.7;步骤7.5,客户端调用密文比较协议和服务器协同完成和的比较,得到比较结果表示小于等于反之,大于比较过程如下:步骤7.5.1,对于客户端首先通过公式计算得到其中a表示b表示l表示和的二进制位数,N表示Paillier的模数,然后随机选取随机数r,并使用Paillier的公钥进行加密得到加密后的随后通过公式为添加随机数得到并将其发送给模型拥有者;步骤7.5.2,模型拥有者接收数据并使用Paillier私钥进行解密得到z=x+r,然后通过公式d←zmod2l计算得到整数d,对z的第l+1位zl+1进行加密得到[zl+1],其中[.]表示QR加密的数据;步骤7.5.3,客户端通过公式c←rmod2l计算得到整数c;模型拥有者通过和客户端协同执行DGK协议得到[t′]≡[d<c];步骤7.5.4,客户端对r的第l+1位rl+1进行加密得到加密后的[rl+1]并发送给模型拥有者,模型拥有者接收后,通过公式[t]←[t′]·[zl+1]·[rl+1]计算得到QR加密的[t]并将其发送给客户端,客户端解密后得到t.若t等于1时,则a≤b即通过步骤7.5.1至步骤7.5.4,客户端得到和的比较结果;步骤7.5.5,一次比较完成后,客户端将比较数据中较小的值赋给下标为2j-1的密文,即将比较数据中较大的值赋值为0,即进入步骤7.4;步骤7.6,客户端调用密文比较协议执行和的比较,得到比较结果表示小于等于反之,大于比较过程与步骤7.5.1~7.5.4相同,只是第一步通过公式计算时,将a替换成b替换为经过与步骤7.5.1~7.5.4相同的计算过程,客户端得到比较结果一次比较完成后,客户端将比较数据中较小的值赋给下标为1+j-1·2i的密文,即将比较数据中较大的值赋值为0,即进入步骤7.4;步骤7.7,令i加1;进入步骤7.3;步骤7.8,步骤7.2一次循环结束后,客户端可以得到一个最小的欧式距离及其下标min,然后将欧式距离和下标保存到k近邻数组dis_k中,将数组Dis中的重置为即最大值,其中l表示二进制表示的比特位数,刷新数组Dis中m个加密的欧式距离后,当前循环条件k加1,进入步骤7.2;步骤8,客户端得到k个最近邻训练数据,记作其对应的类别标签集记为s表示类别数目,k表示数组dis_k的第k个元素,i表示第i个类别;步骤9,客户端统计k个最近邻训练数据的类别数目,类别数目最多的类别为待测数据所属的类别。本发明的有益效果:本发明利用同态加密计算将训练数据与待测数据进行加密,通过将安全多方计算技术与同态加密相结合构造安全的基本协议,基于此构造安全的KNN分类器,使得双方在保证个人数据隐私不泄露的前提下实现对个人数据的分析预测。本发明提出了一个面向加密数据两方参与的支持隐私保护的KNN分类器。给出了分类器的整体框架,描述了分类器的基本组成与实体构成,对KNN分类过程进行了详细研究,提取出基本运算操作并设计了对应于明文操作的安全密文协议,使得密文的操作结果解密后与执行相同明文操作一致,并对N个数中取最小n值getMINn操作进行优化提高了密文执行效率。本发明设计合理,易于实现,具有很好的实用价值。附图说明图1是本发明实施例中的机器学习分类器监督学习过程图;图2是本发明实施例中的支持隐私保护的KNN分类服务系统架构图;图3是本发明实施例中的KNN分类服务系统流程图;图4是本发明实施例中的功能层次模块结构图;图5是本发明实施例中的客户端模块流程图;图6是本发明实施例中的模型拥有者模块流程图;图7是本发明实施例中寻求K近邻的密文getMINn流程图;图8是本发明实施例中P2P环境中的分类服务系统分类流程图。具体实施方式为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施实例,对本发明做出进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。本发明基于机器学习、密码学及隐私安全,提出了一种支持隐私保护的KNN分类服务系统,分类器的监督学习过程如图1所示,所述系统的架构如图2所示,由两部分组成:模型拥有者和客户端;所述模型拥有者与客户端之间通过传输信息的专用安全通道连接;所述客户端是分类预测服务的请求者,用于输入并保存待测数据,负责提供密钥生成与分发功能和数据可视化功能;所述模型拥有者是分类预测服务的响应者,其拥有训练数据与分类算法,负责提供密钥生成与分发功能、密文数据分类功能;所述密钥生成与分发功能为:所述模型拥有者生成Paillier加密方案的公私钥对及FHE加密方案的公私钥对;所述客户端生成QR加密方案的公私钥;其中的私钥skp、skFHE和skQR由各自存储在本地;当客户端向模型拥有者发送分类请求时,双方将公钥pkp、pkFHE和pkQR发送给对方;所述密文数据分类功能为:所述模型拥有者使用加密后的训练数据,客户端使用加密后的待测数据,双方通过密文欧式距离计算和密文比较实现对加密后的待测数据的分类,最后客户端得到分类结果;所述数据可视化功能为:本系统将客户端和模型拥有者在密文数据分类过程中的所有操作动态显示在客户端,使得客户端和模型拥有者能对密文数据分类过程有直观的了解,最终将分类结果以文字的形式显示在终端;本发明提供的支持隐私保护的KNN分类服务系统根据功能层次分为四个模块:客户端模块、模型拥有者模块、密钥管理模块以及密文运算模块;系统模块架构如图4所示。所述客户端模块是系统的服务对象,其处理流程如图5所示,输入待测数据,输入方式有两种:手动输入待测数据和选择文件上传,然后向模型拥有者申请分类服务,得到对方响应后,共同执行密文分类计算任务,得到分类结果;所述模型拥有者模块是系统的服务提供者,其处理流程如图6所示,实现目标有:①通过模型加密功能,将训练数据转换为整型数据并使用加密密钥加密后存储,用于后续分类;②通过密钥管理功能,调用密钥管理模块的密钥生成、分发,生成Paillier和FHE公私钥对,将公钥发送给客户端;③通过密文分类服务功能,实现密文数据的分类运算;所述密钥管理模块主要包括四部分:①密钥生成、②密钥分发、③加密算法以及④解密算法。所述密钥管理模块使用了两种同态加密方案,即Goldwasser-Micali的二次剩余加密系统QR和Paillier加密系统,并使用了一种全同态加密方案FHE对数据进行加密;前两种加密方案满足加法同态,后一种加密方案同时满足加法同态与乘法同态;以上三种加密方案的符号描述見表1所示;表1符号描述其中b表示一个比特,m表示整型数据,p表示大素数,N表示大整数。对于常量d,a←d表示将d赋值给元素a。对于集合G,a←G表示在集合G中随机抽样一个元素a。所述密文运算模块包含四部分:①密文比较协议:比较两个用Paillier加密的密文数据,获取明文比较结果;②密文点积协议:计算模型拥有者的FHE加密训练数据与用户的FHE加密待测数据之间的欧式距离,得到FHE加密的欧式距离;③密文转换协议:实现从FHE加密数据到Paillier加密数据的转换;④密文getMINn协议:从N个Paillier加密的密文数据中获取前n个最小值,如图7所示,先将数组中的值两两比较,将两者中较小的值赋给下标较小的一方,将0赋值给下标较大一方,记录原始较小方的下标,一次循环结束,所有较小方组成新的数组,然后继续比较新的数组,直到数组个数为1,该值即为最小值,其比较通过密文比较协议实现,每次比较得到一个最小值,然后将最小值重新赋值为最大值,循环k次得出k近邻样本。本发明基于机器学习、密码学及隐私安全,提出一种支持隐私保护的KNN分类服务系统及方法,具体为:一、准备阶段,模型拥有者和客户端生成公私钥,模型拥有者根据公钥对训练数据进行加密;二、分类阶段,当客户端希望通过模型拥有者拥有的分类算法及训练数据进行分类预测时,向模型拥有者发送进行分类预测的请求,然后双方交互密钥;客户端通过公钥加密待测数据,模型拥有者基于加密的训练数据使用安全协议协同客户端完成加密数据分类,最终得到分类结果并发送至客户端;本发明中的安全协议保证了双方数据不会泄露给对方及第三方获知。所述支持隐私保护的KNN分类服务系统的方法如图3和图8所示,包括以下步骤:步骤1,模型拥有者生成用于加解密训练数据及待测数据的Paillier加密方案和FHE加密方案的公私钥,客户端生成用于辅助密文比较的QR加密方案的公私钥;步骤2,客户端输入待测数据将待测数据x和模型拥有者的训练数据集进行浮点数据处理,得到整型的待测数据x和训练数据集D,其中d表示数据的维度,m表示训练数据个数,i表示第i个训练数据,取值范围为1≤i≤m,浮点数转换为整型数据的转换步骤如下:步骤2.1,使用IEEE754双精度浮点数格式来存储浮点数据,即一个实数v在IEEE754双精度标准中可以用v=-1S·M·2E的形式表示,其中S为符号位,决定实数是正数还是负数,占1比特;指数E是2的幂,作用是对浮点数加权,占11比特;有效数字M是二进制小数,M2=1.ff...f2,其中1.ff...f为有效数字,f∈{0,1},取值范围为1≤M<2,占52比特。M可表示为:其中,为整数集。此时,实数v可以表示为v=M′·2E-52,忽略v的符号。步骤2.2,寻找合适的常量K,使得对于1≤i≤m,K满足其中,步骤2.3,令e*=mini∈{1,...m}Ei,δi=Ei-e*≥0,则令K=252-e*,则因此,经过上述计算可以得出常量K=252-e*,则本发明的训练数据和待测数据转换后的数据表示为:训练数据集D:待测数据其中j表示待测数据x和训练数据yi的第j个特征值,i表示第i个训练数据,1≤i≤m;步骤3,客户端向模型拥有者发送进行分类预测的请求;模型拥有者接收到请求后,双方建立可信网络连接,客户端将QR的公钥pkQR发送给模型拥有者,模型拥有者将FHE和Paillier的公钥pkFHE和pkp发送给客户端,私钥本地保存,不被对方获知;步骤4,模型拥有者使用FHE公钥pkFHE加密训练数据集D,得到加密后的训练数据集将加密后的训练数据发送给客户端,客户端使用FHE公钥pkFHE加密待测数据x,得到加密后的待测数据其中m表示训练数据个数,d表示待测数据和训练数据的维度;然后利用同态加密属性,结合接收到的加密后的训练数据集,进行分类计算过程,分类过程全程基于密文运算,由两方共同参与,期间双方仅能得到随机值或加密后的随机值,保证了双方输入数据及中间结果的隐私安全;经过步骤3和步骤4,客户端和模型拥有者除拥有FHE、QR和Paillier的公钥外,客户端还拥有QR的私钥以及FHE加密后的待测数据,可以表示为模型拥有者还拥有Paillier和FHE的私钥以及FHE加密后的训练数据集,可以表示为步骤5,客户端和模型拥有者协同进行欧氏距离计算,得到FHE加密后的欧式距离集合其中m表示训练数据个数,yi表示第i个训练数据,dx,yi表示待测数据x和训练数据yi的欧式距离,欧式距离的计算方法如下:客户端接收加密后的训练数据集,利用FHE的加法和乘法同态属性通过欧式距离公式计算各加密后的训练数据与待测数据的欧式距离,为降低密文运算开销,采用距离的平方作为评估标准,由于同时取平方,因此变化后不会影响后续的比较操作;所述欧式距离公式为;式5中A=x1,x2,...,xd,B=y1,y2,...,yd,其对应的密文计算表达式如公式67所示:式6中是FHE加密后的待测数据,是FHE加密后的第i个训练数据,是加密后的训练数据与加密后的待测数据的各个属性做差后的加密结果,其中z=yi-x;式7中是欧式距离的平方,x,y,z皆为向量,维度为d,vi为整数,是欧式距离的平方,其中i表示第i个训练数据与待测数据的欧式距离;循环执行步骤5直到遍历所有的训练数据,最终,客户端得到待测数据与所有训练数据的FHE加密后的欧式距离,记作步骤6,由于密文比较操作的输入数据为Paillier加密的密文数据,因此在进行密文比较前,需将FHE加密的欧式距离转换为Paillier加密的欧式距离转换方法如下:步骤6.1,对于1≤i≤m,客户端均匀随机选择一个数ri←p,p是大素数,使用FHE公钥对ri加密得到加密后的根据式8为欧式距离增加随机数得到并发送给模型拥有者;式8中表示FHE加密的欧式距离,表示FHE加密的随机数,表示增加随机数的FHE加密的欧式距离;步骤6.2,模型拥有者接收到数据使用FHE私钥进行解密得到vi+ri,然后使用Paillier公钥重新进行加密得到Paillier加密的数据并将其发送给客户端;步骤6.3,客户端接收i表示第i个欧式距离;步骤6.4,通过去除随机数ri,客户端得到Paillier加密后的欧式距离步骤7,对Paillier加密后的欧式距离进行密文比较;步骤7.1,寻求距离待测数据最小的K个近邻训练数据:K表示距离待测数据最小的训练数据个数;本实施例中,使用Iris鸢尾花数据集,Wine酒数据集,glass玻璃数据集以及Zoo动物数据集作为明文KNN分类实验的对象,其属性及数据个数情况见表2所示;表2标准数据集明文KNN分类实验结果表明,K的取值分别为3,3,5,3时,分类预测正确率最佳;令其中m表示欧式距离的个数,共三层循环;步骤7.2,最外层循环与k比较,若小于k值,令步骤7.3内部操作是对数组Dis_中的元素进行操作,然后进入第二层循环,即步骤7.3;若不小于k值,则进入步骤8;步骤7.3,第二层循环判断条件如式9所示,i从1开始,i表示欧式距离的下标;若满足式9则进入第三层循环,即步骤7.4;若不满足则进入步骤7.8;步骤7.4,第三层循环判断条件如式10所示,j从1开始,j表示欧式距离的下标;若满足式10,则进入第三层循环内部执行密文比较,密文比较执行分两种情况:当i=1时,执行步骤7.5;当i1时,执行步骤7.6;当不满足条件10时,执行步骤7.7;步骤7.5,客户端调用密文比较协议和服务器协同完成和的比较,得到比较结果表示小于等于反之,大于比较过程如下:步骤7.5.1,对于客户端首先通过公式计算得到其中a表示b表示l表示和的二进制位数,N表示Paillier的模数,然后随机选取随机数r,并使用Paillier的公钥进行加密得到加密后的随后通过公式为添加随机数得到并将其发送给模型拥有者。步骤7.5.2,模型拥有者接收数据并使用Paillier私钥进行解密得到z=x+r,然后通过公式d←zmod2l计算得到整数d,对z的第l+1位zl+1进行加密得到[zl+1],其中[.]表示QR加密的数据。步骤7.5.3,客户端通过公式c←rmod2l计算得到整数c。模型拥有者通过和客户端协同执行DGK协议得到[t′]≡[d<c]。步骤7.5.4,客户端对r的第l+1位rl+1进行加密得到加密后的[rl+1]并发送给模型拥有者,模型拥有者接收后,通过公式[t]←[t′]·[zl+1]·[rl+1]计算得到QR加密的[t]并将其发送给客户端,客户端解密后得到t.若t等于1时,则a≤b即通过步骤7.5.1至步骤7.5.4,客户端得到和的比较结果,本发明分别对64比特和128比特的数据进行了密文比较测试,测试结果见表3所示;表3比较协议评估步骤7.5.5,一次比较完成后,客户端将比较数据中较小的值赋给下标为2j-1的密文,即将比较数据中较大的值赋值为0,即进入步骤7.4;步骤7.6,客户端调用密文比较协议执行和的比较,得到比较结果表示小于等于反之,大于比较过程与步骤7.5.1~7.5.4相同,只是第一步通过公式计算时,将a替换成b替换为经过与步骤7.5.1~7.5.4相同的计算过程,客户端得到比较结果一次比较完成后,客户端将比较数据中较小的值赋给下标为1+j-1·2i的密文,即将比较数据中较大的值赋值为0,即进入步骤7.4;步骤7.7,令i加1;进入步骤7.3;步骤7.8,步骤7.2一次循环结束后,客户端可以得到一个最小的欧式距离及其下标min,然后将欧式距离和下标保存到k近邻数组dis_k中,将数组Dis中的重置为即最大值,其中l表示二进制表示的比特位数,本发明设l为64,刷新数组Dis中m个加密的欧式距离后,当前循环条件k加1,进入步骤7.2。步骤8,客户端得到k个最近邻训练数据,记作其对应的类别标签集记为s表示类别数目,k表示数组dis_k的第k个元素,i表示第i个类别;步骤9,客户端统计k个最近邻训练数据的类别数目,类别数目最多的类别为待测数据所属的类别。本发明在Iris、Wine、Zoo、GlassIdentification公共数据集上进行分类器性能测试,待测数据与训练数据都是按一定比例随机进行抽取,各训练数据数量如表2所示,数据集中剩余数据作为待测数据集,本发明从客户端和服务器即模型拥有者各自的计算、比较时间,交换数据总量及交换次数几个方面进行评估,具体实验结果如表4所示。表4基于不同测试加密数据的支持隐私保护的KNN分类器性能下面以Iris数据集对支持隐私保护的KNN分类服务系统的使用进行详细描述:使用的鸢尾花数据集公有三个类别Iris-setosa、Iris-versicolor、Iris-virginica。模型拥有者需要先启动其分类服务的服务程序。当客户端想要使用该模型进行分类预测服务时,首先输入数据,然后与模型拥有者建立网络连接,发送分类请求,模型拥有者接收到客户端的分类请求后,将Paillier和FHE公钥发送给用户,用户将QR公钥发送给模型拥有者。密钥分发完成后,客户端使用公钥加密待测数据,模型拥有者将加密的模型发送给客户端,然后双方执行密文点积协议基于密文数据计算待测数据与训练数据集间FHE加密后的欧式距离。由于计算得到的欧式距离为FHE加密的密文数据,而密文比较协议的输入为Paillier加密的密文数据,因此需调用密文转换协议实现FHE到Paillier的密文数据转换。通过上述转换客户端得到Paillier加密的密文数据,接着调用密文getMINn协议得到距离待测数据最近的K个近邻训练数据。通过执行上述协议,最终客户端得到距离待测数据最近的K个近邻训练数据,然后根据K近邻训练数据每个训练数据的类别进行类别个数统计,数目最多的类别即为最终的分类结果。本文设定K的数目为3,经过客户端的统计,3个近邻的类别都为12。

权利要求:1.一种支持隐私保护的KNN分类服务系统,其特征在于,系统的架构包括:模型拥有者和客户端;所述模型拥有者与客户端之间通过传输信息的专用安全通道连接;所述客户端是分类预测服务的请求者,用于输入并保存待测数据,负责提供密钥生成与分发功能和数据可视化功能;所述模型拥有者是分类预测服务的响应者,其拥有训练数据与分类算法,负责提供密钥生成与分发功能、密文数据分类功能;所述密钥生成与分发功能为:所述模型拥有者生成Paillier加密方案的公私钥对及FHE加密方案的公私钥对;所述客户端生成QR加密方案的公私钥;其中的私钥skp、skFHE和skQR由各自存储在本地;当客户端向模型拥有者发送分类请求时,双方将公钥pkp、pkFHE和pkQR发送给对方;所述密文数据分类功能为:所述模型拥有者使用加密后的训练数据,客户端使用加密后的待测数据,双方通过密文欧式距离计算和密文比较实现对加密后的待测数据的分类,最后客户端得到分类结果;所述数据可视化功能为:本系统将客户端和模型拥有者在密文数据分类过程中的所有操作动态显示在客户端,最终将分类结果以文字的形式显示在终端。2.根据权利要求1所述的支持隐私保护的KNN分类服务系统,其特征在于,所述支持隐私保护的KNN分类服务系统根据功能层次分为四个模块:客户端模块、模型拥有者模块、密钥管理模块以及密文运算模块;所述客户端模块是系统的服务对象,其处理流程中,输入待测数据的输入方式有两种:手动输入待测数据和选择文件上传,然后向模型拥有者申请分类服务,得到对方响应后,共同执行密文分类计算任务,得到分类结果;所述模型拥有者模块是系统的服务提供者,其处理流程实现目标有:①通过模型加密功能,将训练数据转换为整型数据并使用加密密钥加密后存储,用于后续分类;②通过密钥管理功能,调用密钥管理模块的密钥生成、分发,生成Paillier和FHE公私钥对,将公钥发送给客户端;③通过密文分类服务功能,实现密文数据的分类运算;所述密钥管理模块主要包括四部分:①密钥生成、②密钥分发、③加密算法和④解密算法;所述密钥管理模块使用了两种同态加密方案,即Goldwasser-Micali的二次剩余加密系统QR和Paillier加密系统,并使用了一种全同态加密方案FHE对数据进行加密;所述密文运算模块包含四部分:①密文比较协议:比较两个用Paillier加密的密文数据,获取明文比较结果;②密文点积协议:计算模型拥有者的FHE加密训练数据与用户的FHE加密待测数据之间的欧式距离,得到FHE加密的欧式距离;③密文转换协议:实现从FHE加密数据到Paillier加密数据的转换;④密文getMINn协议:从N个Paillier加密的密文数据中获取前n个最小值,先将数组中的值两两比较,将两者中较小的值赋给下标较小的一方,将0赋值给下标较大一方,记录原始较小方的下标,一次循环结束,所有较小方组成新的数组,然后继续比较新的数组,直到数组个数为1,该值即为最小值,其比较通过密文比较协议实现,每次比较得到一个最小值,然后将最小值重新赋值为最大值,循环k次得出k近邻样本。3.一种支持隐私保护的KNN分类服务系统的方法,采用权利要求2所述的支持隐私保护的KNN分类服务系统,其特征在于,包括:一、准备阶段,模型拥有者和客户端生成公私钥,模型拥有者根据公钥对训练数据进行加密;二、分类阶段,当客户端希望通过模型拥有者拥有的分类算法及训练数据进行分类预测时,向模型拥有者发送进行分类预测的请求,然后双方交互密钥;客户端通过公钥加密待测数据,模型拥有者基于加密的训练数据使用安全协议协同客户端完成加密数据分类,最终得到分类结果并发送至客户端。4.根据权利要求3所述的支持隐私保护的KNN分类服务系统的方法,其特征在于,包括以下步骤:步骤1,模型拥有者生成用于加解密训练数据及待测数据的Paillier加密方案和FHE加密方案的公私钥,客户端生成用于辅助密文比较的QR加密方案的公私钥;步骤2,客户端输入待测数据将待测数据x和模型拥有者的训练数据集D=y1,...,ym,进行浮点数据处理,得到整型的待测数据x和训练数据集D,其中d表示数据的维度,m表示训练数据个数,i表示第i个训练数据,取值范围为1≤i≤m,浮点数转换为整型数据的转换步骤如下:步骤2.1,使用IEEE754双精度浮点数格式来存储浮点数据,即一个实数v在IEEE754双精度标准中可以用v=-1S·M·2E的形式表示,其中S为符号位,决定实数是正数还是负数,占1比特;指数E是2的幂,作用是对浮点数加权,占11比特;有效数字M是二进制小数,M2=1.ff...f2,其中1.ff...f为有效数字,f∈{0,1},取值范围为1≤M<2,占52比特;M可表示为:其中,为整数集;此时,实数v可以表示为v=M′·2E-52,忽略v的符号;步骤2.2,寻找合适的常量K,使得对于1≤i≤m,K满足其中,步骤2.3,令e*=mini∈{1,...m}Ei,δi=Ei-e*≥0,则令则因此,经过上述计算可以得出常量则训练数据和待测数据转换后的数据表示为:训练数据集D:待测数据其中j表示待测数据x和训练数据yi的第j个特征值,i表示第i个训练数据,1≤i≤m;步骤3,客户端向模型拥有者发送进行分类预测的请求;模型拥有者接收到请求后,双方建立可信网络连接,客户端将QR的公钥pkQR发送给模型拥有者,模型拥有者将FHE和Paillier的公钥pkFHE和pkp发送给客户端,私钥本地保存,不被对方获知;步骤4,模型拥有者使用FHE公钥pkFHE加密训练数据集D,得到加密后的训练数据集将加密后的训练数据发送给客户端,客户端使用FHE公钥pkFHE加密待测数据x,得到加密后的待测数据其中m表示训练数据个数,d表示待测数据和训练数据的维度;然后利用同态加密属性,结合接收到的加密后的训练数据集,进行分类计算过程,分类过程全程基于密文运算,由两方共同参与,期间双方仅能得到随机值或加密后的随机值;经过步骤3和步骤4,客户端和模型拥有者除拥有FHE、QR和Paillier的公钥外,客户端还拥有QR的私钥以及FHE加密后的待测数据,可以表示为模型拥有者还拥有Paillier和FHE的私钥以及FHE加密后的训练数据集,可以表示为步骤5,客户端和模型拥有者协同进行欧氏距离计算,得到FHE加密后的欧式距离集合其中m表示训练数据个数,yi表示第i个训练数据,dx,yi表示待测数据x和训练数据yi的欧式距离,欧式距离的计算方法如下:客户端接收加密后的训练数据集,利用FHE的加法和乘法同态属性通过欧式距离公式计算各加密后的训练数据与待测数据的欧式距离,为降低密文运算开销,采用距离的平方作为评估标准,由于同时取平方,因此变化后不会影响后续的比较操作;所述欧式距离公式为;式5中A=x1,x2,...,xd,B=y1,y2,...,yd,其对应的密文计算表达式如公式67所示:式6中是FHE加密后的待测数据,是FHE加密后的第i个训练数据,是加密后的训练数据与加密后的待测数据的各个属性做差后的加密结果,其中z=yi-x,;式7中是欧式距离的平方,x,y,z皆为向量,维度为d,vi为整数,是欧式距离的平方,其中i表示第i个训练数据与待测数据的欧式距离;循环执行步骤5直到遍历所有的训练数据,最终,客户端得到待测数据与所有训练数据的FHE加密后的欧式距离,记作步骤6,由于密文比较操作的输入数据为Paillier加密的密文数据,因此在进行密文比较前,需将FHE加密的欧式距离转换为Paillier加密的欧式距离转换方法如下:步骤6.1,对于1≤i≤m,客户端均匀随机选择一个数ri←p,p是大素数,使用FHE公钥对ri加密得到加密后的根据式8为欧式距离增加随机数得到并发送给模型拥有者;式8中表示FHE加密的欧式距离,表示FHE加密的随机数,表示增加随机数的FHE加密的欧式距离;步骤6.2,模型拥有者接收到数据使用FHE私钥进行解密得到vi+ri,然后使用Paillier公钥重新进行加密得到Paillier加密的数据并将其发送给客户端;步骤6.3,客户端接收i表示第i个欧式距离;步骤6.4,通过去除随机数ri,客户端得到Paillier加密后的欧式距离步骤7,对Paillier加密后的欧式距离进行密文比较;步骤7.1,寻求距离待测数据最小的K个近邻训练数据:K表示距离待测数据最小的训练数据个数;令k=K,num=m,其中m表示欧式距离的个数,共三层循环;步骤7.2,最外层循环与k比较,若小于k值,令步骤7.3内部操作是对数组Dis_中的元素进行操作,然后进入第二层循环,即步骤7.3;若不小于k值,则进入步骤8;步骤7.3,第二层循环判断条件如式9所示,i从1开始,i表示欧式距离的下标;若满足式9则进入第三层循环,即步骤7.4;若不满足则进入步骤7.8;步骤7.4,第三层循环判断条件如式10所示,j从1开始,j表示欧式距离的下标;若满足式10,则进入第三层循环内部执行密文比较,密文比较执行分两种情况:当i=1时,执行步骤7.5;当i1时,执行步骤7.6;当不满足条件10时,执行步骤7.7;步骤7.5,客户端调用密文比较协议和服务器协同完成和的比较,得到比较结果t=1表示小于等于反之,大于比较过程如下:步骤7.5.1,对于客户端首先通过公式计算得到其中a表示b表示l表示和的二进制位数,N表示Paillier的模数,然后随机选取随机数r,并使用Paillier的公钥进行加密得到加密后的随后通过公式为添加随机数得到并将其发送给模型拥有者;步骤7.5.2,模型拥有者接收数据并使用Paillier私钥进行解密得到z=x+r,然后通过公式d←zmod2l计算得到整数d,对z的第l+1位zl+1进行加密得到[zl+1],其中[.]表示QR加密的数据;步骤7.5.3,客户端通过公式c←rmod2l计算得到整数c;模型拥有者通过和客户端协同执行DGK协议得到[t′]≡[d<c];步骤7.5.4,客户端对r的第l+1位rl+1进行加密得到加密后的[rl+1]并发送给模型拥有者,模型拥有者接收后,通过公式[t]←[t′]·[zl+1]·[rl+1]计算得到QR加密的[t]并将其发送给客户端,客户端解密后得到t.若t等于1时,则a≤b即通过步骤7.5.1至步骤7.5.4,客户端得到和的比较结果;步骤7.5.5,一次比较完成后,客户端将比较数据中较小的值赋给下标为2j-1的密文,即将比较数据中较大的值赋值为0,即进入步骤7.4;步骤7.6,客户端调用密文比较协议执行和的比较,得到比较结果t=1表示小于等于反之,大于比较过程与步骤7.5.1~7.5.4相同,只是第一步通过公式计算时,将a替换成b替换为经过与步骤7.5.1~7.5.4相同的计算过程,客户端得到比较结果一次比较完成后,客户端将比较数据中较小的值赋给下标为1+j-1·2i的密文,即将比较数据中较大的值赋值为0,即进入步骤7.4;步骤7.7,令i加1;进入步骤7.3;步骤7.8,步骤7.2一次循环结束后,客户端可以得到一个最小的欧式距离及其下标min,然后将欧式距离和下标保存到k近邻数组dis_k中,将数组Dis中的重置为即最大值,其中l表示二进制表示的比特位数,刷新数组Dis中m个加密的欧式距离后,当前循环条件k加1,进入步骤7.2;步骤8,客户端得到k个最近邻训练数据,记作其对应的类别标签集记为s表示类别数目,k表示数组dis_k的第k个元素,i表示第i个类别;步骤9,客户端统计k个最近邻训练数据的类别数目,类别数目最多的类别为待测数据所属的类别。

百度查询: 东北大学 支持隐私保护的KNN分类服务系统及方法

免责声明
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。