一种处理隐私保护数据的神经网络*

2019-06-10 06:43王启正
密码学报 2019年2期
关键词:同态加密算法密文

王启正,高 玲

山东师范大学信息科学与工程学院,济南 250100

1 引言

1.1 研究背景

云计算是近年来新兴的一种新型计算模式,可以灵活配置多种计算环境,满足用户的计算需求.2011年,在IT 行业十大战略技术报告中,Gartner 认为云计算技术是十大战略技术中最重要的技术[1].随着云计算使用者数量的增长,出现的问题也变得尖锐,在Gartner 的调查报告中,87.5% 的用户担心安全问题.不管是以往发生过的泄密事件,还是刚刚发现的CPU 漏洞(Meltdown,Spectre),都让人在使用这个工具的同时,为自己数据的安全担心.

对于用户来说,数据保护显得非常被动,虽然云计算安全一直在发展,但大多是策略层面的访问控制,一旦云端的防护被攻破,用户的数据将会直接暴露给攻击者.但是如果存放的是使用传统的加密方法加密的数据,又无法满足密态数据计算的要求.同态加密的特性恰好契合数据保密和运算的需求.

从Agrawal 和Srikant 提出隐私保护的数据挖掘技术[2](privacy-preserving data mining)以来,主流的机器学习技术都出现了隐私保护问题的解决方案,比如:决策树[3]、神经网络[4]、支持向量机[5]等.

隐私数据处理出于两个层面的考虑,一是在不暴露自己数据给对方的前提下,获得自己想要的计算结果;另一个是,在攻击方攻破防护,得到的数据或者中间数据依然是没有意义的密文.

本文中的隐私保护数据使用神经网络分类,可以描述为:两个参与方Alice 和Bob,Alice 是数据持有方,Bob 是神经网络持有方.Alice 想要在不泄露自己信息的前提下,使用Bob 的神经网络来获得自己想要的分类结果.在Alice 得到结果后,Bob 不知道Alice 的数据,Alice 也不知道关于Bob 的神经网络的内容.

1.2 神经网络

二十世纪八十年代以来,神经网络就成为人工智能领域研究的热点之一.神经网络是一定程度上人脑神经网络的抽象,通过不同的权重、不同的网络结构、不同的激励函数的组合,构成一个数学模型,来对输入数据与输出数据形成一个线性或非线性的映射关系.一个训练好的神经网络可以高效准确地完成对输入数据的分类和识别.一般来说,可以把神经网络分为前馈神经网络和递归神经网络.在前馈网络中神经网络分为三层:输入层、隐藏层和输出层,信息仅从一个方向传输,从输入层节点,通过隐藏层节点传输到输出层节点.前馈网络因此没有周期或循环.19 世纪末,美国心理学家James 关于人脑与功能的研究打开了神经网络的大门.50年后,由McCulloch 和Pitts 创建的M-P 模型,开创了神经网络研究的新时代[6].神经网络整个发展历史可以总结为启蒙、低潮、复兴和高潮,时至今日,神经网络仍处于发展的高峰期.经典的神经网络有:BP 神经网络[7]、SOFM 神经网络[8]、玻尔兹曼机[9]等.

1.3 本文主要做的工作与结构

本文使用同态加密(homomorphic encryption,HE)来构造了一个可以对隐私保护数据进行处理的神经网络,设计了一个可以支持同态运算属性的激励函数.文章分6 节:第1 节介绍神经网络处理隐私保护数据的研究背景,以及介绍本文所做的工作以及文章的结构.第2 节介绍使用的工具,第3 节构造一种处理隐私保护数据的神经网络.第4 节提出一种基于茫然传输(obvious transfer)的解决方案,进一步优化神经网络的安全方面表现,第5 节分析本文构造的神经网络的速度上的表现.第6 节总结全文.

2 基础知识

2.1 同态加密算法

同态加密(HE)是安全多方计算的常用技术,是当今网络时代的热门技术之一.同态加密可以有效减少数据持有方的数据在网络环境中出现的次数.设Encrypt 是加密算法,Decrypt 是解密算法,m是明文,f代表某个二元函数,⊕代表某种代数运算.传统的加密算法中,Decrypt(f(Encrypt(m1),Encrypt(m2)))Decrypt(m1⊕m2),此时会面临安全与计算能力的取舍.

同态加密可以实现Decrypt(f(Encrypt(m1),Encrypt(m2)))=Decrypt(m1⊕m2),这就为密文在网络中进行复杂运算提供了可能性.现在使用最多的是部分同态加密,根据满足运算的不同,分为加同态和乘同态.比如Paillier 加密是加法同态[10],RSA 是乘法同态[11,12].如果加法和乘法都满足则称作全同态加密算法[13],全同态加密的概念已经提出了很久,但直到2009年Gentry 才构造出基于“格” 的全同态加密算法[14],但由于计算效率低,还无法大规模的应用.

同态加密是安全多方计算中重要的工具.在Li 等人提出的同态加密之前[15],不管是Paillier、RSA还是ElGamal,这些同态加密算法都是公钥体系下的加密算法,加密解密的过程计算量很大,Li 等人设计出的对称同态加密方案,跳脱出了公钥加密体系,所以在时间表现上比传统的非对称同态加密方案好很多.

2.1.1 Li的同态加密算法

文献[15]设计的加密算法是一种加同态、有限次乘同态的对称加密算法,其同态特性表现为对密文进行某种计算,解密后与明文进行相应的计算结果相同.这种加密算法是一种概率加密算法,对于同一明文,n次加密得到的结果均不相同,保证了密文的语义安全.这种加密算法的加密解密过程如下:

密钥生成:将密钥生成算法记为KeyGen()

密钥生成算法KeyGen()是一个概率加密算法,它将安全参数λ作为输入并输出密钥SK=(s,q)以及公共参数p.p和q都是大素数,其中,p远大于q(p≫q).q的比特长度取决于λ,s是中的一个随机数.

加密算法:将加密算法记为E():

加密算法E()是一种概率算法,它采用秘密密钥SK,明文m∈Fq和参数d作为输入,加密算法会得到一个密文c:

参数d是一个可选的小整数,我们称作d为密文等级,将c称作d等级的密文.r是一个正随机数,我们记|r| 为r的比特长度,|q| 和|p| 分别是q和p的比特长度,这三个参数需要满足|r|+|q|<|p|,很显然,r就是密文c的随机元素,加密明文m的过程我们简称为E(m).

解密算法:将解密算法记为D():

解密算法D()是一个确定性算法,它将秘密密钥SK,密文c∈Fq和密文的密文等级d作为输入,该算法输出明文m←D(SK,c,d).令s−d表示字段Fq中sd的乘法倒数.下面证明解密算法的正确性:

乘法同态性质的说明:让c1,c2作为明文m1,m2的密文,然后,我们有随机因素r1、r2的式子c1=sd1(r1q+m1)modp和c2=sd2(r2q+m2)modp.如下所示,给出d1等级的密文c1和d2等级的密文c2,m1×m2的d1+d2等级的密文可以用一个模乘来计算.在密文中如果想通过解密得到m1×m2,必须满足(r1r2q+r1m2+m1r2)q+m1×m2|m1|、|q|>|m2| 且|r1r2q|>|r1m2|+|m1r2|,所以我们只需保证|r1|+|r2|+2|q|+1<|p|.

运算过程如下:

加法同态性质的说明:让c1,c2作为明文m1,m2的密文,由于modp的存在,m1+m2的结果是p群里的结果.如果d1=d2,则可以通过模加的运算得到密文,其中必须满足(r1+r2)q+m1+m2

运算过程如下:

纯量乘法同态性质的说明:让c1作为明文m1的密文,明文m2,为了正确解密c1×m2,必须满足(r1m2q+m1m2)

2.2 1-out-of-n茫然传输

茫然传输最初由Rabin 在1981年提出[16],发展到今天已经成为重要的基础原语,并且被广泛用于其他密码学协议的构造.茫然传输协议包含两个参与方:R和S,其中S有n个值,R希望得到自己想要的值,但是不泄露自己的选择信息,而S希望R只得到自己想要的信息,而不能得到S其他的信息,具体表述如下:

输入:S输入若干个值,(x1,x2,···,xn)∈{0,1}n,R 输入一个值i∈(1,2,···,n).

输出:R输出xi.

针对FOT1n构造的协议必须满足R 仅能得到xi而不泄露i.

3 隐私保护的神经网络

本节假设存在一个经过训练的神经网络,并根据这个神经网络构造一个可以处理隐私保护数据的神经网络.然后针对激励函数进行进一步的构造,使其可以适应隐私保护数据的计算.

3.1 原始的神经网络

Rumelhart 和McCelland 提出的多层前馈网络的误差反向传播算法(error back propagation)是一个经典的神经网络算法,简称为BP 算法[17].本文中以一个3 层BP 神经网络为例(输入层,隐藏层,输出层).文中的构造方法是以一个训练好的神经网络为例,所以我们假设算法持有方有一个已经训练好的神经网络.神经网络结构如图1 所示,左边是输入层,中间是多个隐藏层,右边是输出层.每个节点的值都是上一层若干个节点的值乘以相应权重和激励函数的映射后的值通过累加得到的.我们设节点的值为p,节点所在的层数为i,节点所在该层的位置为j,权重为w,w下标代表连接的两个节点的位置,例如w(i,j)(i+1,j+1)代表节点pi,j与节点pi+1,j+1连接的权重.我们设第i层有m个节点.激励函数为f(),则神经网络中节点之间的计算可以用下面的算式来表示:

由于神经网络的连接结构不同,可能上面会有缺项.

图1 神经网络结构图Figure 1 Neural network structure diagram

3.2 神经网络的激励函数

一个神经网络如果没有激励函数(activation function)的话,在某些情景下,无法准确的描述数据与类型之间的关系[18].人脑对刺激的反应特点之一是人脑对刺激的反应并不是与刺激的强度呈线性正相关[19].本文中的神经网络使用同态加密可以对隐私保护数据进行分类,为了迎合同态计算,并考虑激励函数的作用,设计了一个分段函数的激励函数,其中每一段函数都是线性的.

该激励函数有两个特点:一是可以将各个节点的值映射到(0,1)范围内,二是通过控制k与b的值使得该节点对很高或很低的值的变化反应不明显,对中间范围的值的变化反应明显.激励函数图像见图2.

图2 激励函数图像Figure 2 Activation function image

3.3 可对隐私保护数据分类的神经网络

考虑到实际应用的场景,我们提出了图3 的结构.该结构有3 个参与方:数据持有方,算法持有方和云.其中数据持有方不想向算法持有方和云端暴露自己的数据,并且算法持有方不想向数据持有方暴露自己的神经网络.

图3 隐私保护的神经网络协议结构图Figure 3 Neural network protocol structure diagram of privacy protection

第一步,在3.2 节的激励函数中,由于输入算法的密文,无法直接和b相加,出于计算方便的考虑,算法持有方会把激励函数参数b发送到数据持有方,生成密钥SK(s,q,p)=KeyGen(λ),生成随机数ri对参数b进行加密然后发还给算法持有方:

在数据持有方本地,对数据的矩阵[m1,m2,···,mi]进行加密.如第2 节中描述的,在本地对数据矩阵进行加密,使用第一步生成的密钥SK 与选取的随机数ri得到密文ci:

在3.1 节中的算式可以看到,如果激励函数使用3.2 节中我们构造的算式,神经网络的算式全都是线性计算.

云/服务器端得到加密的数据矩阵和神经网络,含参数加密cbi的激励函数记做f,我们设节点的值为pi,j,节点所在的层数为i,节点所在该层的位置为j,权重为w,w下标代表连接的两个节点的位置,例如w(i,j)(i+1,j+1)代表节点pi,j与节点pi+1,j+1连接的权重,k为激励函数的斜率,k下标代表连接的两个节点的位置,例如k(i,j)(i+1,j+1)代表节点pi,j与节点pi+1,j+1之间的对应k的值,b为激励函数的截距,b下标代表连接的两个节点的位置,例如b(i,j)(i+1,j+1)代表节点pi,j与节点pi+1,j+1之间的对应b的值.节点间计算如图4 所示,

我们设第i层有m个节点,则神经网络中节点之间的运算,在密态数据下可以写做:

图4 节点间计算示意图Figure 4 Computing schematic diagram among nodes

正确性分析:文中的神经网络第2 层第j个节点接收输入层的密文的加权数据,经过激励函数f()的运算,得到下个节点的值,解密后结果与明文做相应运算结果相同.现证明如下:

设输入数据为[m1,m2,···,mm],对应的密文为[c1,c2,···,cm]:

安全性分析:本文中构造的神经网络,可以实现数据的安全,并且神经网络不暴露给数据持有方.

数据安全:数据持有方的数据使用文献[13]的对称同态加密算法,同态加密方案的安全性取决于求解非线性系统的难度.在本文使用的同态加密方案中,为了加密一个明文mi并获得相应的密文ci,我们需要使用两个秘密参数q,s和一个随机数ri.从已知的(mi,ci)对中,攻击者需要求解三个未知数q,s,ri的非线性方程:

我们认为攻击者具有多项式计算能力,这个方案是NP 难问题,所以我们认为这个方案是安全的.

算法安全:假设云/服务器端与数据持有方不合谋.算法持有方在方案中只会向数据持有方透露自己激励函数的参数b.数据持有方在整个方案中,只知道自己的数据mi和神经网络激励函数的参数b,算法持有方不会向数据持有方暴露自己的算法.

4 不泄露数据范围的处理隐私保护数据的神经网络

第3 节构造的神经网络,虽然实现了对原数据的信息加密,但是在输入层和第一层隐藏层之间的激励函数处理数据的时候,神经网络会对数据进行范围判断,如果攻击者攻击了云/服务器,就会泄露原数据的范围.为了隐藏输入数据的范围,本文使用了1-out-of-n茫然传输协议.

4.1 输入数据范围的隐藏

出于隐藏数据范围的考虑,我们设计了图5 的协议,这个协议中有4 个参与方:数据持有方、算法持有方、云A 和云B.其中数据持有方不想让算法持有方、云A 和云B 学习到关于自己数据的任何信息,包括数据的范围,同时算法持有方不想将自己算法暴露给数据持有方.

图5 基于茫然传输的隐私保护神经网络结构图Figure 5 Schematic diagram of privacy protection neural network based on obvious transfer

假设协议中任意两方不合谋.Cloud A 将激励函数发送到Cloud B,但并未告知Cloud B 激励函数的分段范围,而是将分段范围告知了local,并与local 协商了分段范围与标记的对应关系,local 将数据发往Cloud B,选择某段函数进行运算,运算结果发回Cloud A 进行下一步运算.整个方案Cloud B 仅得知了激励函数,由于不知道激励函数的分段,也仅得到数据的密文,所以不知道local 数据的范围;local 知道激励函数的范围,但是不知道激励函数的算式,假设任意两方不合谋,所以可以有效的实现local 数据持有方数据的隐藏,算法持有方算法不向数据持有方暴露.协议中各参与方的信息掌握情况如表1 所示.

5 效率分析与比较

5.1 与已存在的安全分类器比较

实际应用中,使用比较广泛的是神经网络学习算法和贝叶斯学习算法.Barni 在2006年构造了一种隐私保护的神经网络学习协议[20],整个交互的过程涉及到数据提供方和神经网络提供方,双方均不想暴露给对方自己的信息.但是数据提供方在得到返回数据时有可能得到算法提供方的激励函数.Barni 使用的Paillier 公钥加密,隐私保护数据计算本就消耗巨大,公钥加密进一步提高了计算成本.Wan 等人为安全计算梯度下降方法提供了一个通用公式[21].作者讨论了可用于训练神经网络的垂直分区数据的多方协议.为确保隐私,目标函数被定义为两个函数的组合.因此,权重可以在本地进行调整.这个方案只能应用于结构简单的神经网络模型.Han[22]等人提出了一种隐私保护版本的自组织映射(self organizing maps,SOM).SOM 属于无监督学习技术的一类,并且被应用于例如降维.作者提出了一个两方协议来反复调整垂直分区数据的网络权重.

表1 协议中参与方信息掌握情况Table 1 Information of participants in agreement

朴素贝叶斯分类法在某些数据的分类上,有着高准确率和速度,贝叶斯分类是根据贝叶斯定理:

隐私保护的朴素贝叶斯分类的核心问题是如何安全的计算P(X|Ci)×P(Ci),文献[23]中,解决办法是将这个乘问题,以取自然对数的形式转换为加问题,即:

由贝叶斯定理可知,朴素贝叶斯分类法的前提是对象的属性值对类别的影响独立于其他属性值,并且不同的属性值对类别的影响程度也是一样,在处理实际数据的时候这一条件过于苛刻,所以实际应用中大部分场景效果并不理想.

本文的神经网络在加入1-out-of-n茫然传输协议后,只会向数据持有方暴露激励函数的一个参数;并且使用的对称同态加密,一定程度上降低了计算成本.本文的神经网络是利用同态性质对已存在神经网络进行的重新构造,理论上可以适应所有的神经网络,所以适用的场景会更广一些.

5.2 复杂度分析

在前面提到,处理隐私保护数据的神经网络处理的数据是同态加密算法,最终数据持有方得到云/服务器端发回的密态结果,在本地进行解密得到分类结果.第2 节中提到的同态加密算法是一种线性时间复杂度O(n)的加密算法,设神经网络第一层为n1,第二层为n2,第i层为ni,神经网络处理一个数据的时间复杂度为O(n1×n2+n2×n3+···+ni−1×ni)=O((i−1)n2),处理m个样本的时间复杂复杂度为O(m(i−1)n2),则整体的总时间复杂度为O(m(i−1)n2+mn)=O(m(i−1)n2).因为算法选取的都是大数,运算需要使用大数运算函数,并且密文不能与小数直接做运算,不管是使用小数整数分离计算的方式,还是参数扩大的方式来消除小数部分,都会带来额外的开销,所以实际的时间消耗比时间复杂度会大一些.

6 总结与展望

隐私保护数据的分类是云计算发展和人们对信息保密性逐渐重视应运而生的产物,目的是对数据进行分类和预测的时候数据持有方不暴露给攻击者和算法持有方自己的原始数据,算法持有方也不暴露自己完整的分类器,利用安全多方计算对隐私保护数据进行分类和预测是主要思路之一.

本文基于同态加密构造了一种处理隐私保护数据的神经网络,设计了一种适用于本文神经网络的线性分段激励函数,并且进行了正确性、安全性和时间复杂度的分析.为了解决使用分段激励函数会暴露数据范围的问题,构造了一种使用1-out-of-n茫然传输协议的隐私保护神经网络.

机器学习算法如何处理隐私保护数据,是一个具有现实研究意义的问题,虽然现在已有一些机器学习的安全计算协议,但是其安全性和复杂度仍有很大的提升空间,未来面对大型数据和更深层的神经网络,复杂度问题仍然是一个核心待解决的问题.

猜你喜欢
同态加密算法密文
相对于模N的完全不变子模F的N-投射模
一种支持动态更新的可排名密文搜索方案
加密文档排序中保序加密算法的最优化选取
基于模糊数学的通信网络密文信息差错恢复
小R-投射模
支持多跳的多策略属性基全同态短密文加密方案
D4-δ-盖及其应用
密钥共享下跨用户密文数据去重挖掘方法*
DES加密算法的实现
基于整数矩阵乘法的图像加密算法