CN110011784B - 支持隐私保护的knn分类服务系统及方法 - Google Patents

支持隐私保护的knn分类服务系统及方法 Download PDF

Info

Publication number
CN110011784B
CN110011784B CN201910271239.5A CN201910271239A CN110011784B CN 110011784 B CN110011784 B CN 110011784B CN 201910271239 A CN201910271239 A CN 201910271239A CN 110011784 B CN110011784 B CN 110011784B
Authority
CN
China
Prior art keywords
data
client
encrypted
fhe
ciphertext
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201910271239.5A
Other languages
English (en)
Other versions
CN110011784A (zh
Inventor
徐剑
王安迪
王琛
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Northeastern University China
Original Assignee
Northeastern University China
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Northeastern University China filed Critical Northeastern University China
Priority to CN201910271239.5A priority Critical patent/CN110011784B/zh
Publication of CN110011784A publication Critical patent/CN110011784A/zh
Application granted granted Critical
Publication of CN110011784B publication Critical patent/CN110011784B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/21Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
    • G06F18/214Generating training patterns; Bootstrap methods, e.g. bagging or boosting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/24Classification techniques
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/008Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols involving homomorphic encryption

Landscapes

  • Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Theoretical Computer Science (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Evolutionary Biology (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • General Engineering & Computer Science (AREA)
  • Evolutionary Computation (AREA)
  • Physics & Mathematics (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computer Security & Cryptography (AREA)
  • Storage Device Security (AREA)

Abstract

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

Description

支持隐私保护的KNN分类服务系统及方法
技术领域
本发明属于机器学习与隐私保护领域,具体涉及一种支持隐私保护的KNN分类服务系统及方法。
背景技术
KNN分类服务,即k近邻(k-Nearest Neighbor,KNN)分类器在样本训练和分类阶段都可能发生用户隐私信息的泄露。在样本训练阶段,数据拥有者不希望自己拥有的数据信息被泄露出去,甚至对训练者也要进行保密,这就需要对训练数据进行加密处理。在分类阶段,训练者会将得到的模型W作为分类器的构成部分,并将分类器发布出去提供服务,但不希望成果被第3方获取,这就需要对分类模型和测试向量进行加密。因此,对于分类器而言,不论是训练阶段还是分类阶段,数据的隐私保护问题都急需被解决。
目前,针对数据分类过程中的隐私保护研究方法主要有三类:1)数据扰动技术,直接通过添加随机噪声的方式来扰动各个数据记录的值,使得扰动数据的分布看起来与实际数据的分布非常不同。但是扰动数据不具备语义安全性,并且对于分类器而言,无法产生精确的分类结果;2)安全多方计算技术。这类技术假定数据集是水平或垂直分割并分布存储在各参与方的。各参与方之后可以联合对数据进行挖掘并得出数据挖掘结果,且在处理过程中,各方数据不会泄露给其他方仅被自身获知。然而,这类方法的中间计算任务是基于非加密数据,且数据在传输过程中也是未加密的,容易在数据传输过程泄露隐私信息;3)同态加密技术,相较于传统的只支持密文存储的加密算法,其允许用户直接对密文进行特定的代数运算,得到的数据仍是加密的结果,且与对明文进行同样的操作再将结果加密一样,主要包括全同态加密和部分同态加密技术。全同态加密技术理论上允许第三方在未解密的条件下对密文执行任意运算,但是其在实际应用中仍旧存在一些约束,例如,计算代价昂贵;只支持整数类型的数据;需要固定的乘法深度,不能无限进行加法和乘法运算;以及全同态加密不支持比较和取最值运算等。部分同态加密技术,能够满足乘法或加法同态属性,然而,依然无法支持比较和取最值运算。
综上所述,现有的隐私保护技术无法直接运用于数据分类过程的隐私保护当中,其实际应用存在以下约束:1)当前技术无法保证数据的语义安全,分类结果不精确;2)数据以明文形式传输,无法保证数据在传输过程中不被窃取造成隐私泄露;3)针对加密数据,全同态加密虽然能够满足任意运算但效率低下,部分同态加密仅支持加法或者乘法运算,且两者都不支持比较和求最值运算。
为解决上述问题,大量学者纷纷开展了数据分类过程的隐私保护研究工作,借助安全多方计算构造适合基于同态加密数据的机器学习分类器的协议,通过协议的线性组合来完成分类器的构造是主要解决方法。例如,2013年Graepel等人基于安全多方协议与同态加密方案训练几种简单的分类器,例如线性分类器,该分类器是支持加密数据分类的,但是其构造的模型安全性较低,导致客户端不仅能够得知最终的分类结果,还可能会获取分类模型的信息,造成分类模型信息的泄露;2016年Liu等人设计了一种加法同态代理聚合方案实现了云端患者的历史数据的隐私保护,引入了隐私保护的top-k疾病名称检索协议保证了朴素贝叶斯分类器的安全性;2017年Ligier等人提出了将线性分类器和IPE(InnerProduct Encryption)相结合的方法来对加密数据进行分类。其隐私保护分类方案允许用户的数据被加密,但服务器能够获知最终的加密结果。
虽然将同态加密方案和安全多方计算结合起来能够部分解决分类器数据隐私保护问题,并且已有一些关于分类器隐私保护的研究成果,但仍存在以下问题:1)大部分方案都是针对训练阶段数据的隐私保护,很少有针对分类模型和分类过程的保护;2)其安全性设置较低,容易泄露分类模型及分类结果;;3)同态加密运算支持加法和乘法运算的多项式运算,比较运算也能够通过安全多方计算得到,但机器学习计算开销较大,效率较低。因此,设计基于分类器基本操作的加密协议并以模块化顺序组合的方法构造安全的分类器,使之从训练阶段到分类过程都能保证安全性,同时保证模型、分类结果及待测数据的隐私安全并获得一个准确的类别是当前机器学习隐私保护的重要研究方向之一。
发明内容
针对上述存在的技术问题,本发明提供一种支持隐私保护的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分类服务系统的方法,采用所述的支持隐私保护的KNN分类服务系统,包括:
一、准备阶段,模型拥有者和客户端生成公私钥,模型拥有者根据公钥对训练数据进行加密;
二、分类阶段,当客户端希望通过模型拥有者拥有的分类算法及训练数据进行分类预测时,向模型拥有者发送进行分类预测的请求,然后双方交互密钥;客户端通过公钥加密待测数据,模型拥有者基于加密的训练数据使用安全协议协同客户端完成加密数据分类,最终得到分类结果并发送至客户端。
所述的支持隐私保护的KNN分类服务系统的方法,包括以下步骤:
步骤1,模型拥有者生成用于加解密训练数据及待测数据的Paillier加密方案和FHE加密方案的公私钥,客户端生成用于辅助密文比较的QR加密方案的公私钥;
步骤2,客户端输入待测数据
Figure BDA0002018471360000041
将待测数据x和模型拥有者的训练数据集
Figure BDA0002018471360000042
进行浮点数据处理,得到整型的待测数据x和训练数据集D,其中d表示数据的维度,m表示训练数据个数,i表示第i个训练数据,取值范围为1≤i≤m,浮点数转换为整型数据的转换步骤如下:
步骤2.1,使用IEEE754双精度浮点数格式来存储浮点数据,即一个实数v在IEEE754双精度标准中可以用v=(-1)S·M·2E的形式表示,其中S为符号位,决定实数是正数还是负数,占1比特;指数E是2的幂,作用是对浮点数加权,占11比特;有效数字M是二进制小数,(M)2=(1.ff...f)2,其中1.ff...f为有效数字,f∈{0,1},取值范围为1≤M<2,占52比特;M可表示为:
Figure BDA0002018471360000043
其中,
Figure BDA0002018471360000044
Figure BDA0002018471360000045
为整数集;
此时,实数v可以表示为v=M′·2E-52,忽略v的符号;
步骤2.2,寻找合适的常量K,使得对于1≤i≤m,K满足
Figure BDA0002018471360000046
其中,
Figure BDA0002018471360000047
步骤2.3,令e*=mini∈{1,...m}Eii=Ei-e*≥0,则
Figure BDA0002018471360000051
令K=252-e*,则
Figure BDA0002018471360000052
因此,经过上述计算可以得出常量K=252-e*,则训练数据和待测数据转换后的数据表示为:训练数据集D:
Figure BDA0002018471360000053
待测数据
Figure BDA0002018471360000054
其中j表示待测数据x和训练数据yi的第j个特征值,i表示第i个训练数据,1≤i≤m;
步骤3,客户端向模型拥有者发送进行分类预测的请求;模型拥有者接收到请求后,双方建立可信网络连接,客户端将QR的公钥pkQR发送给模型拥有者,模型拥有者将FHE和Paillier的公钥pkFHE和pkp发送给客户端,私钥本地保存,不被对方获知;
步骤4,模型拥有者使用FHE公钥pkFHE加密训练数据集D,得到加密后的训练数据集
Figure BDA0002018471360000055
将加密后的训练数据发送给客户端,客户端使用FHE公钥pkFHE加密待测数据x,得到加密后的待测数据
Figure BDA0002018471360000056
其中m表示训练数据个数,d表示待测数据和训练数据的维度;
然后利用同态加密属性,结合接收到的加密后的训练数据集,进行分类计算过程,分类过程全程基于密文运算,由两方共同参与,期间双方仅能得到随机值或加密后的随机值;
经过步骤3和步骤4,客户端和模型拥有者除拥有FHE、QR和Paillier的公钥外,客户端还拥有QR的私钥以及FHE加密后的待测数据,可以表示为
Figure BDA0002018471360000057
模型拥有者还拥有Paillier和FHE的私钥以及FHE加密后的训练数据集,可以表示为
Figure BDA0002018471360000058
步骤5,客户端和模型拥有者协同进行欧氏距离计算,得到FHE加密后的欧式距离集合
Figure BDA0002018471360000059
其中m表示训练数据个数,yi表示第i个训练数据,d(x,yi)表示待测数据x和训练数据yi的欧式距离,欧式距离的计算方法如下:
客户端接收加密后的训练数据集,利用FHE的加法和乘法同态属性通过欧式距离公式计算各加密后的训练数据
Figure BDA00020184713600000510
与待测数据
Figure BDA00020184713600000511
的欧式距离,为降低密文运算开销,采用距离的平方作为评估标准,由于同时取平方,因此变化后不会影响后续的比较操作;所述欧式距离公式为;
Figure BDA0002018471360000061
式(5)中A=(x1,x2,...,xd),B=(y1,y2,...,yd),其对应的密文计算表达式如公式(6)(7)所示:
Figure BDA0002018471360000062
Figure BDA0002018471360000063
式(6)中
Figure BDA0002018471360000064
是FHE加密后的待测数据,
Figure BDA0002018471360000065
是FHE加密后的第i个训练数据,
Figure BDA0002018471360000066
是加密后的训练数据与加密后的待测数据的各个属性做差后的加密结果,其中z=yi-x,;式(7)中
Figure BDA0002018471360000067
是欧式距离的平方,
Figure BDA0002018471360000068
x,y,z皆为向量,维度为d,vi为整数,是欧式距离的平方,其中i表示第i个训练数据与待测数据的欧式距离;
循环执行步骤5直到遍历所有的训练数据,最终,客户端得到待测数据与所有训练数据的FHE加密后的欧式距离,记作
Figure BDA0002018471360000069
步骤6,由于密文比较操作的输入数据为Paillier加密的密文数据,因此在进行密文比较前,需将FHE加密的欧式距离
Figure BDA00020184713600000610
转换为Paillier加密的欧式距离
Figure BDA00020184713600000611
转换方法如下:
步骤6.1,对于1≤i≤m,客户端均匀随机选择一个数ri←p,p是大素数,使用FHE公钥对ri加密得到加密后的
Figure BDA00020184713600000612
根据式(8)为欧式距离
Figure BDA00020184713600000613
增加随机数
Figure BDA00020184713600000614
得到
Figure BDA00020184713600000615
并发送给模型拥有者;
Figure BDA00020184713600000616
式(8)中
Figure BDA00020184713600000617
表示FHE加密的欧式距离,
Figure BDA00020184713600000618
表示FHE加密的随机数,
Figure BDA00020184713600000619
表示增加随机数的FHE加密的欧式距离;
步骤6.2,模型拥有者接收到数据
Figure BDA00020184713600000620
使用FHE私钥进行解密得到vi+ri,然后使用Paillier公钥重新进行加密得到Paillier加密的数据
Figure BDA00020184713600000621
并将其发送给客户端;
步骤6.3,客户端接收
Figure BDA00020184713600000622
i表示第i个欧式距离;
步骤6.4,通过去除随机数ri,客户端得到Paillier加密后的欧式距离
Figure BDA00020184713600000623
步骤7,对Paillier加密后的欧式距离
Figure BDA0002018471360000071
进行密文比较;
步骤7.1,寻求距离待测数据最小的K个近邻训练数据:
K表示距离待测数据最小的训练数据个数;令
Figure BDA0002018471360000072
其中m表示欧式距离的个数,共三层循环;
步骤7.2,最外层循环与k比较,若小于k值,令
Figure BDA0002018471360000073
步骤7.3内部操作是对数组Dis_中的元素
Figure BDA0002018471360000074
进行操作,然后进入第二层循环,即步骤7.3;若不小于k值,则进入步骤8;
步骤7.3,第二层循环判断条件如式(9)所示,i从1开始,i表示欧式距离的下标;若满足式(9)则进入第三层循环,即步骤7.4;若不满足则进入步骤7.8;
Figure BDA0002018471360000075
步骤7.4,第三层循环判断条件如式(10)所示,j从1开始,j表示欧式距离的下标;若满足式(10),则进入第三层循环内部执行密文比较,密文比较执行分两种情况:当i=1时,执行步骤7.5;当i>1时,执行步骤7.6;当不满足条件(10)时,执行步骤7.7;
Figure BDA0002018471360000076
步骤7.5,客户端调用密文比较协议和服务器协同完成
Figure BDA0002018471360000077
Figure BDA0002018471360000078
的比较,得到比较结果
Figure BDA00020184713600000726
表示
Figure BDA00020184713600000710
小于等于
Figure BDA00020184713600000711
反之,
Figure BDA00020184713600000712
大于
Figure BDA00020184713600000713
比较过程如下:
步骤7.5.1,对于
Figure BDA00020184713600000714
客户端首先通过公式
Figure BDA00020184713600000715
计算得到
Figure BDA00020184713600000716
其中a表示
Figure BDA00020184713600000717
b表示
Figure BDA00020184713600000718
l表示
Figure BDA00020184713600000719
Figure BDA00020184713600000720
的二进制位数,N表示Paillier的模数,然后随机选取随机数r,并使用Paillier的公钥进行加密得到加密后的
Figure BDA00020184713600000721
随后通过公式
Figure BDA00020184713600000722
Figure BDA00020184713600000723
添加随机数
Figure BDA00020184713600000724
得到
Figure BDA00020184713600000725
并将其发送给模型拥有者;
步骤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即
Figure BDA0002018471360000081
通过步骤7.5.1至步骤7.5.4,客户端得到
Figure BDA0002018471360000082
Figure BDA0002018471360000083
的比较结果;
步骤7.5.5,一次比较完成后,客户端将比较数据中较小的值赋给下标为2j-1的密文,即
Figure BDA0002018471360000084
将比较数据中较大的值赋值为0,即
Figure BDA0002018471360000085
进入步骤7.4;
步骤7.6,客户端调用密文比较协议执行
Figure BDA0002018471360000086
Figure BDA0002018471360000087
的比较,得到比较结果
Figure BDA0002018471360000088
表示
Figure BDA0002018471360000089
小于等于
Figure BDA00020184713600000810
反之,
Figure BDA00020184713600000811
大于
Figure BDA00020184713600000812
比较过程与步骤7.5.1~7.5.4相同,只是第一步通过公式计算
Figure BDA00020184713600000813
时,将a替换成
Figure BDA00020184713600000814
b替换为
Figure BDA00020184713600000815
经过与步骤7.5.1~7.5.4相同的计算过程,客户端得到比较结果
Figure BDA00020184713600000816
一次比较完成后,客户端将比较数据中较小的值赋给下标为1+(j-1)·2i的密文,即
Figure BDA00020184713600000817
将比较数据中较大的值赋值为0,即
Figure BDA00020184713600000818
进入步骤7.4;
步骤7.7,令
Figure BDA00020184713600000819
i加1;进入步骤7.3;
步骤7.8,步骤7.2一次循环结束后,客户端可以得到一个最小的欧式距离
Figure BDA00020184713600000820
及其下标min,然后将欧式距离和下标保存到k近邻数组dis_k中,将数组Dis中的
Figure BDA00020184713600000821
重置为
Figure BDA00020184713600000822
即最大值,其中l表示二进制表示的比特位数,刷新数组Dis中m个加密的欧式距离后,当前循环条件k加1,进入步骤7.2;
步骤8,客户端得到k个最近邻训练数据,记作
Figure BDA00020184713600000823
其对应的类别标签集记为
Figure BDA00020184713600000824
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加密方案的公私钥对<pkp,skp>及FHE加密方案的公私钥对<pkFHE,skFHE>;所述客户端生成QR加密方案的公私钥<pkQR,skQR>;
其中的私钥skp、skFHE和skQR由各自存储在本地;当客户端向模型拥有者发送分类请求时,双方将公钥pkp、pkFHE和pkQR发送给对方;
所述密文数据分类功能为:
所述模型拥有者使用加密后的训练数据,客户端使用加密后的待测数据,双方通过密文欧式距离计算和密文比较实现对加密后的待测数据的分类,最后客户端得到分类结果;
所述数据可视化功能为:
本系统将客户端和模型拥有者在密文数据分类过程中的所有操作动态显示在客户端,使得客户端和模型拥有者能对密文数据分类过程有直观的了解,最终将分类结果以文字的形式显示在终端;
本发明提供的支持隐私保护的KNN分类服务系统根据功能层次分为四个模块:客户端模块、模型拥有者模块、密钥管理模块以及密文运算模块;系统模块架构如图4所示。
所述客户端模块是系统的服务对象,其处理流程如图5所示,输入待测数据,输入方式有两种:手动输入待测数据和选择文件上传,然后向模型拥有者申请分类服务,得到对方响应后,共同执行密文分类计算任务,得到分类结果;
所述模型拥有者模块是系统的服务提供者,其处理流程如图6所示,实现目标有:①通过模型加密功能,将训练数据转换为整型数据并使用加密密钥加密后存储,用于后续分类;②通过密钥管理功能,调用密钥管理模块的密钥生成、分发,生成Paillier和FHE公私钥对,将公钥发送给客户端;③通过密文分类服务功能,实现密文数据的分类运算;
所述密钥管理模块主要包括四部分:①密钥生成、②密钥分发、③加密算法以及④解密算法。所述密钥管理模块使用了两种同态加密方案,即Goldwasser-Micali的二次剩余加密系统QR和Paillier加密系统,并使用了一种全同态加密方案FHE对数据进行加密;前两种加密方案满足加法同态,后一种加密方案同时满足加法同态与乘法同态;以上三种加密方案的符号描述見表1所示;
表1符号描述
Figure BDA0002018471360000101
Figure BDA0002018471360000111
其中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,客户端输入待测数据
Figure BDA0002018471360000112
将待测数据x和模型拥有者的训练数据集
Figure BDA0002018471360000113
进行浮点数据处理,得到整型的待测数据x和训练数据集D,其中d表示数据的维度,m表示训练数据个数,i表示第i个训练数据,取值范围为1≤i≤m,浮点数转换为整型数据的转换步骤如下:
步骤2.1,使用IEEE754双精度浮点数格式来存储浮点数据,即一个实数v在IEEE754双精度标准中可以用v=(-1)S·M·2E的形式表示,其中S为符号位,决定实数是正数还是负数,占1比特;指数E是2的幂,作用是对浮点数加权,占11比特;有效数字M是二进制小数,(M)2=(1.ff...f)2,其中1.ff...f为有效数字,f∈{0,1},取值范围为1≤M<2,占52比特。M可表示为:
Figure BDA0002018471360000121
其中,
Figure BDA0002018471360000122
Figure BDA0002018471360000123
为整数集。
此时,实数v可以表示为v=M′·2E-52,忽略v的符号。
步骤2.2,寻找合适的常量K,使得对于1≤i≤m,K满足
Figure BDA0002018471360000124
其中,
Figure BDA0002018471360000125
步骤2.3,令e*=mini∈{1,...m}Eii=Ei-e*≥0,则
Figure BDA0002018471360000126
令K=252-e*,则
Figure BDA0002018471360000127
因此,经过上述计算可以得出常量K=252-e*,则本发明的训练数据和待测数据转换后的数据表示为:训练数据集D:
Figure BDA0002018471360000128
待测数据
Figure BDA0002018471360000129
其中j表示待测数据x和训练数据yi的第j个特征值,i表示第i个训练数据,1≤i≤m;
步骤3,客户端向模型拥有者发送进行分类预测的请求;模型拥有者接收到请求后,双方建立可信网络连接,客户端将QR的公钥pkQR发送给模型拥有者,模型拥有者将FHE和Paillier的公钥pkFHE和pkp发送给客户端,私钥本地保存,不被对方获知;
步骤4,模型拥有者使用FHE公钥pkFHE加密训练数据集D,得到加密后的训练数据集
Figure BDA00020184713600001210
将加密后的训练数据发送给客户端,客户端使用FHE公钥pkFHE加密待测数据x,得到加密后的待测数据
Figure BDA00020184713600001211
其中m表示训练数据个数,d表示待测数据和训练数据的维度;
然后利用同态加密属性,结合接收到的加密后的训练数据集,进行分类计算过程,分类过程全程基于密文运算,由两方共同参与,期间双方仅能得到随机值或加密后的随机值,保证了双方输入数据及中间结果的隐私安全;
经过步骤3和步骤4,客户端和模型拥有者除拥有FHE、QR和Paillier的公钥外,客户端还拥有QR的私钥以及FHE加密后的待测数据,可以表示为
Figure BDA0002018471360000131
模型拥有者还拥有Paillier和FHE的私钥以及FHE加密后的训练数据集,可以表示为
Figure BDA0002018471360000132
步骤5,客户端和模型拥有者协同进行欧氏距离计算,得到FHE加密后的欧式距离集合
Figure BDA0002018471360000133
其中m表示训练数据个数,yi表示第i个训练数据,d(x,yi)表示待测数据x和训练数据yi的欧式距离,欧式距离的计算方法如下:
客户端接收加密后的训练数据集,利用FHE的加法和乘法同态属性通过欧式距离公式计算各加密后的训练数据
Figure BDA0002018471360000134
与待测数据
Figure BDA0002018471360000135
的欧式距离,为降低密文运算开销,采用距离的平方作为评估标准,由于同时取平方,因此变化后不会影响后续的比较操作;所述欧式距离公式为;
Figure BDA0002018471360000136
式(5)中A=(x1,x2,...,xd),B=(y1,y2,...,yd),其对应的密文计算表达式如公式(6)(7)所示:
Figure BDA0002018471360000137
Figure BDA0002018471360000138
式(6)中
Figure BDA0002018471360000139
是FHE加密后的待测数据,
Figure BDA00020184713600001310
是FHE加密后的第i个训练数据,
Figure BDA00020184713600001311
是加密后的训练数据与加密后的待测数据的各个属性做差后的加密结果,其中z=yi-x;式(7)中
Figure BDA00020184713600001312
是欧式距离的平方,
Figure BDA00020184713600001313
x,y,z皆为向量,维度为d,vi为整数,是欧式距离的平方,其中i表示第i个训练数据与待测数据的欧式距离;
循环执行步骤5直到遍历所有的训练数据,最终,客户端得到待测数据与所有训练数据的FHE加密后的欧式距离,记作
Figure BDA00020184713600001314
步骤6,由于密文比较操作的输入数据为Paillier加密的密文数据,因此在进行密文比较前,需将FHE加密的欧式距离
Figure BDA0002018471360000141
转换为Paillier加密的欧式距离
Figure BDA0002018471360000142
转换方法如下:
步骤6.1,对于1≤i≤m,客户端均匀随机选择一个数ri←p,p是大素数,使用FHE公钥对ri加密得到加密后的
Figure BDA0002018471360000143
根据式(8)为欧式距离
Figure BDA0002018471360000144
增加随机数
Figure BDA0002018471360000145
得到
Figure BDA0002018471360000146
并发送给模型拥有者;
Figure BDA0002018471360000147
式(8)中
Figure BDA0002018471360000148
表示FHE加密的欧式距离,
Figure BDA0002018471360000149
表示FHE加密的随机数,
Figure BDA00020184713600001410
表示增加随机数的FHE加密的欧式距离;
步骤6.2,模型拥有者接收到数据
Figure BDA00020184713600001411
使用FHE私钥进行解密得到vi+ri,然后使用Paillier公钥重新进行加密得到Paillier加密的数据
Figure BDA00020184713600001412
并将其发送给客户端;
步骤6.3,客户端接收
Figure BDA00020184713600001413
i表示第i个欧式距离;
步骤6.4,通过去除随机数ri,客户端得到Paillier加密后的欧式距离
Figure BDA00020184713600001414
步骤7,对Paillier加密后的欧式距离
Figure BDA00020184713600001415
进行密文比较;
步骤7.1,寻求距离待测数据最小的K个近邻训练数据:
K表示距离待测数据最小的训练数据个数;
本实施例中,使用Iris鸢尾花数据集,Wine酒数据集,glass玻璃数据集以及Zoo动物数据集作为明文KNN分类实验的对象,其属性及数据个数情况见表2所示;
表2标准数据集
Figure BDA00020184713600001416
明文KNN分类实验结果表明,K的取值分别为3,3,5,3时,分类预测正确率最佳;
Figure BDA00020184713600001417
其中m表示欧式距离的个数,共三层循环;
步骤7.2,最外层循环与k比较,若小于k值,令
Figure BDA00020184713600001418
步骤7.3内部操作是对数组Dis_中的元素
Figure BDA0002018471360000151
进行操作,然后进入第二层循环,即步骤7.3;若不小于k值,则进入步骤8;
步骤7.3,第二层循环判断条件如式(9)所示,i从1开始,i表示欧式距离的下标;若满足式(9)则进入第三层循环,即步骤7.4;若不满足则进入步骤7.8;
Figure BDA0002018471360000152
步骤7.4,第三层循环判断条件如式(10)所示,j从1开始,j表示欧式距离的下标;若满足式(10),则进入第三层循环内部执行密文比较,密文比较执行分两种情况:当i=1时,执行步骤7.5;当i>1时,执行步骤7.6;当不满足条件(10)时,执行步骤7.7;
Figure BDA0002018471360000153
步骤7.5,客户端调用密文比较协议和服务器协同完成
Figure BDA0002018471360000154
Figure BDA0002018471360000155
的比较,得到比较结果
Figure BDA0002018471360000156
表示
Figure BDA0002018471360000157
小于等于
Figure BDA0002018471360000158
反之,
Figure BDA0002018471360000159
大于
Figure BDA00020184713600001510
比较过程如下:
步骤7.5.1,对于
Figure BDA00020184713600001511
客户端首先通过公式
Figure BDA00020184713600001512
计算得到
Figure BDA00020184713600001513
其中a表示
Figure BDA00020184713600001514
b表示
Figure BDA00020184713600001515
l表示
Figure BDA00020184713600001516
Figure BDA00020184713600001517
的二进制位数,N表示Paillier的模数,然后随机选取随机数r,并使用Paillier的公钥进行加密得到加密后的
Figure BDA00020184713600001518
随后通过公式
Figure BDA00020184713600001519
Figure BDA00020184713600001520
添加随机数
Figure BDA00020184713600001521
得到
Figure BDA00020184713600001522
并将其发送给模型拥有者。
步骤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即
Figure BDA00020184713600001523
通过步骤7.5.1至步骤7.5.4,客户端得到
Figure BDA00020184713600001524
Figure BDA00020184713600001525
的比较结果,本发明分别对64比特和128比特的数据进行了密文比较测试,测试结果见表3所示;
表3比较协议评估
Figure BDA0002018471360000161
步骤7.5.5,一次比较完成后,客户端将比较数据中较小的值赋给下标为2j-1的密文,即
Figure BDA0002018471360000162
将比较数据中较大的值赋值为0,即
Figure BDA0002018471360000163
进入步骤7.4;
步骤7.6,客户端调用密文比较协议执行
Figure BDA0002018471360000164
Figure BDA0002018471360000165
的比较,得到比较结果
Figure BDA0002018471360000166
表示
Figure BDA0002018471360000167
小于等于
Figure BDA0002018471360000168
反之,
Figure BDA0002018471360000169
大于
Figure BDA00020184713600001610
比较过程与步骤7.5.1~7.5.4相同,只是第一步通过公式计算
Figure BDA00020184713600001611
时,将a替换成
Figure BDA00020184713600001612
b替换为
Figure BDA00020184713600001613
经过与步骤7.5.1~7.5.4相同的计算过程,客户端得到比较结果
Figure BDA00020184713600001614
一次比较完成后,客户端将比较数据中较小的值赋给下标为1+(j-1)·2i的密文,即
Figure BDA00020184713600001615
将比较数据中较大的值赋值为0,即
Figure BDA00020184713600001616
进入步骤7.4;
步骤7.7,令
Figure BDA00020184713600001617
i加1;进入步骤7.3;
步骤7.8,步骤7.2一次循环结束后,客户端可以得到一个最小的欧式距离
Figure BDA00020184713600001618
及其下标min,然后将欧式距离和下标保存到k近邻数组dis_k中,将数组Dis中的
Figure BDA00020184713600001619
重置为
Figure BDA00020184713600001620
即最大值,其中l表示二进制表示的比特位数,本发明设l为64,刷新数组Dis中m个加密的欧式距离后,当前循环条件k加1,进入步骤7.2。
步骤8,客户端得到k个最近邻训练数据,记作
Figure BDA00020184713600001621
其对应的类别标签集记为
Figure BDA00020184713600001622
s表示类别数目,k表示数组dis_k的第k个元素,i表示第i个类别;
步骤9,客户端统计k个最近邻训练数据的类别数目,类别数目最多的类别为待测数据所属的类别。
本发明在Iris、Wine、Zoo、Glass Identification公共数据集上进行分类器性能测试,待测数据与训练数据都是按一定比例随机进行抽取,各训练数据数量如表2所示,数据集中剩余数据作为待测数据集,本发明从客户端和服务器(即模型拥有者)各自的计算、比较时间,交换数据总量及交换次数几个方面进行评估,具体实验结果如表4所示。
表4基于不同测试加密数据的支持隐私保护的KNN分类器性能
Figure BDA0002018471360000181
下面以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。

Claims (1)

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,客户端输入待测数据
Figure FDA0003029067100000021
将待测数据x和模型拥有者的训练数据集
Figure FDA0003029067100000022
进行浮点数据处理,得到整型的待测数据x和训练数据集D,其中d表示数据的维度,m表示训练数据个数,i表示第i个训练数据,取值范围为1≤i≤m,浮点数转换为整型数据的转换步骤如下:
步骤2.1,使用IEEE754双精度浮点数格式来存储浮点数据,即一个实数v在IEEE754双精度标准中可以用v=(-1)S·M·2E的形式表示,其中S为符号位,决定实数是正数还是负数,占1比特;指数E是2的幂,作用是对浮点数加权,占11比特;有效数字M是二进制小数,(M)2=(1.ff...f)2,其中1.ff...f为有效数字,f∈{0,1},取值范围为1≤M<2,占52比特;M可表示为:
Figure FDA0003029067100000023
其中,
Figure FDA0003029067100000024
Figure FDA0003029067100000025
为整数集;
此时,实数v可以表示为v=M′·2E-52,忽略v的符号;
步骤2.2,寻找合适的常量K,使得对于1≤i≤m,K满足
Figure FDA0003029067100000026
其中,
Figure FDA0003029067100000027
步骤2.3,令e*=mini∈{1,...,m}Eii=Ei-e*≥0,则
Figure FDA0003029067100000031
Figure FDA00030290671000000310
Figure FDA0003029067100000032
因此,经过上述计算可以得出常量
Figure FDA00030290671000000311
则训练数据和待测数据转换后的数据表示为:训练数据集D:
Figure FDA0003029067100000033
待测数据
Figure FDA0003029067100000034
其中j表示待测数据x和训练数据yi的第j个特征值,i表示第i个训练数据,1≤i≤m;
步骤3,客户端向模型拥有者发送进行分类预测的请求;模型拥有者接收到请求后,双方建立可信网络连接,客户端将QR的公钥pkQR发送给模型拥有者,模型拥有者将FHE和Paillier的公钥pkFHE和pkp发送给客户端,私钥本地保存,不被对方获知;
步骤4,模型拥有者使用FHE公钥pkFHE加密训练数据集D,得到加密后的训练数据集
Figure FDA0003029067100000035
将加密后的训练数据发送给客户端,客户端使用FHE公钥pkFHE加密待测数据x,得到加密后的待测数据
Figure FDA0003029067100000036
其中m表示训练数据个数,d表示待测数据和训练数据的维度;
然后利用同态加密属性,结合接收到的加密后的训练数据集,进行分类计算过程,分类过程全程基于密文运算,由两方共同参与,期间双方仅能得到随机值或加密后的随机值;
经过步骤3和步骤4,客户端和模型拥有者除拥有FHE、QR和Paillier的公钥外,客户端还拥有QR的私钥以及FHE加密后的待测数据,可以表示为
Figure FDA0003029067100000037
模型拥有者还拥有Paillier和FHE的私钥以及FHE加密后的训练数据集,可以表示为
Figure FDA0003029067100000038
步骤5,客户端和模型拥有者协同进行欧氏距离计算,得到FHE加密后的欧式距离集合
Figure FDA0003029067100000039
其中m表示训练数据个数,yi表示第i个训练数据,d(x,yi)表示待测数据x和训练数据yi的欧式距离,欧式距离的计算方法如下:
客户端接收加密后的训练数据集,利用FHE的加法和乘法同态属性通过欧式距离公式计算各加密后的训练数据
Figure FDA0003029067100000041
与待测数据
Figure FDA0003029067100000042
的欧式距离,为降低密文运算开销,采用距离的平方作为评估标准,由于同时取平方,因此变化后不会影响后续的比较操作;所述欧式距离公式为;
Figure FDA0003029067100000043
式(5)中A=(x1,x2,...,xd),B=(y1,y2,...,yd),其对应的密文计算表达式如公式(6)(7)所示:
Figure FDA0003029067100000044
Figure FDA0003029067100000045
式(6)中
Figure FDA0003029067100000046
是FHE加密后的待测数据,
Figure FDA0003029067100000047
是FHE加密后的第i个训练数据,
Figure FDA0003029067100000048
是加密后的训练数据与加密后的待测数据的各个属性做差后的加密结果,其中z=yi-x;式(7)中
Figure FDA0003029067100000049
表示加密后的欧式距离的平方,其中
Figure FDA00030290671000000410
x,y,z皆为向量,维度为d,vi为整数,是欧式距离的平方,其中i表示第i个训练数据,vi表示第i个训练数据与待测数据的欧式距离的平方;
循环执行步骤5直到遍历所有的训练数据,最终,客户端得到待测数据与所有训练数据的FHE加密后的欧式距离,记作
Figure FDA00030290671000000411
步骤6,由于密文比较操作的输入数据为Paillier加密的密文数据,因此在进行密文比较前,需将FHE加密的欧式距离
Figure FDA00030290671000000412
转换为Paillier加密的欧式距离
Figure FDA00030290671000000413
转换方法如下:
步骤6.1,对于1≤i≤m,客户端均匀随机选择一个数ri←p,p是大素数,使用FHE公钥对ri加密得到加密后的
Figure FDA00030290671000000414
根据式(8)为欧式距离
Figure FDA00030290671000000415
增加随机数
Figure FDA00030290671000000416
得到
Figure FDA00030290671000000417
并发送给模型拥有者;
Figure FDA00030290671000000418
式(8)中
Figure FDA00030290671000000419
表示FHE加密的欧式距离,
Figure FDA00030290671000000420
表示FHE加密的随机数,
Figure FDA00030290671000000421
表示增加随机数的FHE加密的欧式距离;
步骤6.2,模型拥有者接收到数据
Figure FDA00030290671000000422
使用FHE私钥进行解密得到vi+ri,然后使用Paillier公钥重新进行加密得到Paillier加密的数据
Figure FDA00030290671000000423
并将其发送给客户端;
步骤6.3,客户端接收
Figure FDA0003029067100000051
i表示第i个训练数据;
步骤6.4,通过去除随机数ri,客户端得到Paillier加密后的欧式距离
Figure FDA0003029067100000052
步骤7,对Paillier加密后的欧式距离
Figure FDA0003029067100000053
进行密文比较;
步骤7.1,寻求距离待测数据最小的K个近邻训练数据:
K表示距离待测数据最小的训练数据个数;令k=K,
Figure FDA0003029067100000054
num=m,其中m表示训练数据的个数,共三层循环;
步骤7.2,最外层循环与k比较,若小于k值,令
Figure FDA0003029067100000055
步骤7.3内部操作是对数组Dis_中的元素
Figure FDA0003029067100000056
进行操作,然后进入第二层循环,即步骤7.3;若不小于k值,则进入步骤8;
步骤7.3,第二层循环判断条件如式(9)所示,i从1开始,i表示欧式距离的下标;若满足式(9)则进入第三层循环,即步骤7.4;若不满足则进入步骤7.8;
Figure FDA0003029067100000057
步骤7.4,第三层循环判断条件如式(10)所示,j从1开始,j表示欧式距离的下标;若满足式(10),则进入第三层循环内部执行密文比较,密文比较执行分两种情况:当i=1时,执行步骤7.5;当i>1时,执行步骤7.6;当不满足条件(10)时,执行步骤7.7;
Figure FDA0003029067100000058
步骤7.5,客户端调用密文比较协议和服务器协同完成
Figure FDA0003029067100000059
Figure FDA00030290671000000510
的比较,得到比较结果
Figure FDA00030290671000000511
表示
Figure FDA00030290671000000512
小于等于
Figure FDA00030290671000000513
反之,
Figure FDA00030290671000000514
大于
Figure FDA00030290671000000515
比较过程如下:
步骤7.5.1,对于
Figure FDA00030290671000000516
客户端首先通过公式
Figure FDA00030290671000000517
计算得到
Figure FDA00030290671000000518
其中a表示
Figure FDA00030290671000000519
b表示
Figure FDA00030290671000000520
l表示
Figure FDA00030290671000000521
Figure FDA00030290671000000522
的二进制位数,N表示Paillier的模数,然后随机选取随机数r,并使用Paillier的公钥进行加密得到加密后的
Figure FDA00030290671000000523
随后通过公式
Figure FDA00030290671000000524
Figure FDA00030290671000000525
添加随机数
Figure FDA00030290671000000526
得到
Figure FDA00030290671000000527
并将其发送给模型拥有者;
步骤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即
Figure FDA0003029067100000061
通过步骤7.5.1至步骤7.5.4,客户端得到
Figure FDA0003029067100000062
Figure FDA0003029067100000063
的比较结果;
步骤7.5.5,一次比较完成后,客户端将比较数据中较小的值赋给下标为2j-1的密文,即
Figure FDA0003029067100000064
将比较数据中较大的值赋值为0,即
Figure FDA0003029067100000065
进入步骤7.4;
步骤7.6,客户端调用密文比较协议执行
Figure FDA0003029067100000066
Figure FDA0003029067100000067
的比较,得到比较结果
Figure FDA0003029067100000068
表示
Figure FDA0003029067100000069
小于等于
Figure FDA00030290671000000610
反之,
Figure FDA00030290671000000611
大于
Figure FDA00030290671000000612
比较过程与步骤7.5.1~7.5.4相同,只是第一步通过公式计算
Figure FDA00030290671000000613
时,将a替换成
Figure FDA00030290671000000614
b替换为
Figure FDA00030290671000000615
经过与步骤7.5.1~7.5.4相同的计算过程,客户端得到比较结果
Figure FDA00030290671000000616
一次比较完成后,客户端将比较数据中较小的值赋给下标为1+(j-1)·2i的密文,即
Figure FDA00030290671000000617
将比较数据中较大的值赋值为0,即
Figure FDA00030290671000000618
进入步骤7.4;
步骤7.7,令
Figure FDA00030290671000000619
i加1;进入步骤7.3;
步骤7.8,步骤7.2一次循环结束后,客户端可以得到一个最小的欧式距离
Figure FDA00030290671000000620
及其下标min,然后将欧式距离和下标保存到k近邻数组dis_k中,将数组Dis中的
Figure FDA00030290671000000621
重置为
Figure FDA00030290671000000622
即最大值,其中l表示二进制表示的比特位数,刷新数组Dis中m个加密的欧式距离后,当前循环条件k加1,进入步骤7.2;
步骤8,客户端得到k个最近邻训练数据,记作
Figure FDA00030290671000000623
其对应的类别标签集记为
Figure FDA00030290671000000624
s表示类别数目,k表示数组dis_k的第k个元素,i表示第i个类别;
步骤9,客户端统计k个最近邻训练数据的类别数目,类别数目最多的类别为待测数据所属的类别。
CN201910271239.5A 2019-04-04 2019-04-04 支持隐私保护的knn分类服务系统及方法 Active CN110011784B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910271239.5A CN110011784B (zh) 2019-04-04 2019-04-04 支持隐私保护的knn分类服务系统及方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910271239.5A CN110011784B (zh) 2019-04-04 2019-04-04 支持隐私保护的knn分类服务系统及方法

Publications (2)

Publication Number Publication Date
CN110011784A CN110011784A (zh) 2019-07-12
CN110011784B true CN110011784B (zh) 2021-06-08

Family

ID=67169950

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910271239.5A Active CN110011784B (zh) 2019-04-04 2019-04-04 支持隐私保护的knn分类服务系统及方法

Country Status (1)

Country Link
CN (1) CN110011784B (zh)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110765473A (zh) * 2019-10-11 2020-02-07 矩阵元技术(深圳)有限公司 数据处理方法、装置、计算机设备和存储介质
US20210150266A1 (en) * 2019-11-15 2021-05-20 International Business Machines Corporation Enabling boosting protocols on encrypted data
CN111159727B (zh) * 2019-12-11 2022-12-09 西安交通大学医学院第一附属医院 一种面向多方协同的贝叶斯分类器安全生成系统及方法
CN111143865B (zh) * 2019-12-26 2022-12-30 国网湖北省电力有限公司 一种密文数据上标签自动生成的用户行为分析系统及方法
CN111260081B (zh) * 2020-02-14 2023-03-14 广州大学 一种非交互式隐私保护多方机器学习方法
CN111461309B (zh) * 2020-04-17 2022-05-17 支付宝(杭州)信息技术有限公司 实现隐私保护的更新强化学习系统的方法及装置
CN112598251A (zh) * 2020-12-16 2021-04-02 百度在线网络技术(北京)有限公司 分类模型预测结果的处理方法、装置、设备和存储介质
CN113190858B (zh) * 2021-04-20 2024-02-02 中国人民大学 一种基于隐私保护的图像处理方法、系统、介质和设备
CN113177595B (zh) * 2021-04-29 2022-07-12 北京明朝万达科技股份有限公司 文档分类模型构建、训练、测试方法及模型构建系统
CN113221155B (zh) * 2021-05-29 2022-07-01 合肥学院 一种多层级与多等级加密的云储存系统
CN113626871A (zh) * 2021-08-31 2021-11-09 支付宝(杭州)信息技术有限公司 保护隐私数据的两方多分支条件实现方法和系统
CN113468334B (zh) * 2021-09-06 2021-11-23 平安科技(深圳)有限公司 密文情感分类方法、装置、设备及存储介质
CN114154554B (zh) * 2021-10-28 2024-06-28 上海海洋大学 一种基于非共谋双云服务器的隐私保护外包数据knn方法
CN114510730B (zh) * 2022-01-11 2023-06-13 暨南大学 位置隐私保护的多机器人分布式围捕方法、设备与介质
CN114866221A (zh) * 2022-06-07 2022-08-05 贵州数据宝网络科技有限公司 一种支持浮点运算的改进加法同态加密方法
CN114817999B (zh) * 2022-06-28 2022-09-02 北京金睛云华科技有限公司 一种基于多密钥同态加密的外包隐私保护方法和设备
CN116992204B (zh) * 2023-09-26 2023-12-29 蓝象智联(杭州)科技有限公司 一种基于隐私保护的数据点乘运算方法
CN118368153B (zh) * 2024-06-20 2024-09-20 杭州靖安防务科技有限公司 一种数据安全传输系统和方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107169114A (zh) * 2017-05-12 2017-09-15 东北大学 一种海量数据多维排序搜索方法
CN108111294A (zh) * 2017-12-13 2018-06-01 南京航空航天大学 一种基于ML-kNN的保护隐私的多标记分类方法
CN108717514A (zh) * 2018-05-21 2018-10-30 中国人民大学 一种机器学习中的数据隐私保护方法和系统
CN109344640A (zh) * 2018-12-20 2019-02-15 东北大学 一种基于同态加密和多项式计算的子图匹配方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9825758B2 (en) * 2014-12-02 2017-11-21 Microsoft Technology Licensing, Llc Secure computer evaluation of k-nearest neighbor models

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107169114A (zh) * 2017-05-12 2017-09-15 东北大学 一种海量数据多维排序搜索方法
CN108111294A (zh) * 2017-12-13 2018-06-01 南京航空航天大学 一种基于ML-kNN的保护隐私的多标记分类方法
CN108717514A (zh) * 2018-05-21 2018-10-30 中国人民大学 一种机器学习中的数据隐私保护方法和系统
CN109344640A (zh) * 2018-12-20 2019-02-15 东北大学 一种基于同态加密和多项式计算的子图匹配方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
(全)同态加密及其在云计算中的应用研究;蒋林智;《中国博士学位论文全文数据库 信息科技辑》;20181015(第10期);第15-43页 *
保护隐私的多标记分类方法;刘洋;《中国优秀硕士学位论文全文数据库 信息科技辑》;20190215(第2期);第68-80页 *

Also Published As

Publication number Publication date
CN110011784A (zh) 2019-07-12

Similar Documents

Publication Publication Date Title
CN110011784B (zh) 支持隐私保护的knn分类服务系统及方法
CN110008717B (zh) 支持隐私保护的决策树分类服务系统及方法
Zhang et al. A privacy-preserving and verifiable federated learning scheme
Hao et al. Towards efficient and privacy-preserving federated deep learning
Li et al. Differentially private Naive Bayes learning over multiple data sources
Li et al. Outsourced privacy-preserving classification service over encrypted data
Li et al. Privacy-preserving machine learning with multiple data providers
Liu et al. Privacy-preserving patient-centric clinical decision support system on naive Bayesian classification
CN106803784B (zh) 安全多媒体云存储中基于格的多用户模糊可搜索加密方法
Wang et al. Search in my way: Practical outsourced image retrieval framework supporting unshared key
Geng Homomorphic encryption technology for cloud computing
Liu et al. Secure multi-label data classification in cloud by additionally homomorphic encryption
Liu et al. Revfrf: Enabling cross-domain random forest training with revocable federated learning
Hou et al. Verifiable privacy-preserving scheme based on vertical federated random forest
Zhang et al. PPDDS: A privacy-preserving disease diagnosis scheme based on the secure Mahalanobis distance evaluation model
Zhou et al. Privacy‐Preserving Federated Learning Framework with General Aggregation and Multiparty Entity Matching
Chen et al. Fed-EINI: An efficient and interpretable inference framework for decision tree ensembles in vertical federated learning
CN109359588A (zh) 一种新的隐私保护下非交互式的k近邻分类方法
Sun et al. An efficient secure k nearest neighbor classification protocol with high‐dimensional features
Wei et al. Privacy-preserving two-parties logistic regression on vertically partitioned data using asynchronous gradient sharing
CN116451805A (zh) 一种基于区块链抗毒化攻击的隐私保护联邦学习方法
Zhao et al. SGBoost: An efficient and privacy-preserving vertical federated tree boosting framework
Rong et al. Privacy‐Preserving k‐Means Clustering under Multiowner Setting in Distributed Cloud Environments
Sun et al. Privacy-preserving vertical federated logistic regression without trusted third-party coordinator
Malik et al. A homomorphic approach for security and privacy preservation of Smart Airports

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant