云计算环境下基于全同态加密的神经网络分类预测研究

2024-04-15 16:06杨雄徐慧华
关键词:隐私保护神经网络

杨雄 徐慧华

文章编号  1000-5269(2024)01-0089-05

DOI:10.15958/j.cnki.gdxbzrb.2024.01.14

收稿日期:2022-11-06

基金项目:福建省社科规划青年资助项目(FJ2021C026)

作者简介:杨  雄(1986—),男,副教授,硕士,研究方向:信息安全,E-mail:83789047@qq.com.

*通讯作者:徐慧华,E-mail:61853918@qq.com.

摘  要:在云计算环境下,数据挖掘应用中的数据共享和服务外包在产生巨大财富的同时,也带来了隐私泄漏的风险,其信息安全问题亟待解决。对云计算环境下神经网络预测分类服务外包中存在的风险以及全同态加密算法的应用进行了分析,使用平方函数作为神经网络中的非线性激活函数,设计并实现了一种密文域的数据分类预测方案,并对该方案运行过程中的5个主要步骤:模型训练、模型加密、数据加密、密文计算和解密结果进行详细描述。设计的测试实验结果验证了该方案的可行性,保证了模型和数据在整个神经网络处理过程中不被泄漏,可有效保障数据和模型的安全与隐私。

关键词:神经网络;全同态加密;隐私保护

中图分类号:TP309

文献标志码:A

云计算的快速发展和数据挖掘任务的广泛应用,可以将神经网络模型部署在云服务器中来解决本地计算能力不足和资源消耗过多的问题,在降低IT服务成本,提升IT资源利用率的同时,实现服务外包,但是云计算平台在提供便利的同时也带来了隐私泄漏的风险。神经网络模型所处理的数据往往是敏感的、涉及用户私密的信息,一旦用户数据或算法模型被窃取,将造成严重后果。因此,数据和模型的机密性必须得到保证。随着信息安全和隐私保护要求的不断提升,针对云计算环境下的数据分类预测外包服务设计一种安全的隐私保护方案显得尤其重要。

当前应用于数据挖掘任务中的隐私保护主要有安全多方计算[1]、可检索加密[2]、差分隐私[3]和全同态加密技术[4]。与差分隐私和安全多方计算相比,全同态加密技术允许对密文直接进行计算,更具有普适性,其不仅是一种较好的隐私保护计算的解决方案,而且在保证数据安全性的同时,能够兼顾预测结果的准确性。但全同态加密算法仅支持对密文进行无限次数的加法、乘法运算,而不支持神经网络模型中激活函数所涉及的非线性操作。

為此,一些学者相继提出了解决方案。例如:XIE等[5]设计了一种基于同态加密技术的隐私保护神经网络模型Cryptonets,其可以直接在密文上进行预测并返回加密预测结果,但存在运算效率较低的问题。MOHASSEL等[6]提出了一种基于秘密共享的机器学习训练模型,但是服务器能够获得神经网络部分权重信息,存在模型参数泄漏的风险。YANG等[7]提出了一种基于梯度共享的线性模型,其可有效降低集中式机器学习产生的隐私数据泄露风险,但在多次迭代后可能会泄露计算参与方的信息。ZHANG等[8]提出了一种基于BGV全同态加密的深度计算模型,虽然其能有效提高大数据特征学习的效率,但存在通信复杂度较高的缺点。CHABANNE等[9]提出了一种基于ReLU激活函数的多项式逼近与批处理规范化相结合的深度神经网络分类方案,其可有效减少实际训练模型和转换模型之间的精度差距,但存在模型参数泄漏的风险。CHILLOTTI等[10]使用离散化的神经网络设计了一种FHE-DiNN框架,该框架虽然可有效提高计算速度,但预测精度较低。

本文设计了一种基于全同态加密的神经网络预测方案,使用低次多项式的平方函数作为神经网络的激活函数,并利用批处理方法解决了平方函数运算效率低的问题,实现了云计算环境下基于全同态加密的神经网络能够在保护数据和模型隐私的前提下对使用者提供的数据进行分类预测。

1  全同态加密技术

同态加密技术根据对密文数据操作支持的种类和次数,可分为半同态加密、部分同态加密和全同态加密。其中,半同态加密(partially homomorphic encryption,PHE)[11]仅支持加法或乘法(其中一种)无限次的同态运算;部分同态加密(somewhat homomorphic encryption,SWHE)[12]虽然可以同时支持加法和乘法同态运算,但是同态运算的次数有限;全同态加密(fully homomorphic encryption,FHE)[13]则支持无限次数的加法和乘法同态运算。前2种同态方案在实际应用中受到一定的限制,而全同态加密支持的密文运算门类较为齐全,诸如数据挖掘、密文检索、外包计算等密集型运算,都可以基于全同态加密算法对密文数据进行计算,因此全同态加密有着广泛的应用前景。

一个完整的全同态加密方案由密钥生成算法KeyGen、加密算法Encrypt、解密算法Decrypt和密文运算算法Eval这4个算法组成。密钥生成算法KeyGen的输入参数为安全参数λ,输出为一对公私钥(pk, sk),pk为公钥,sk为私钥。安全参数和密钥的长度相关联,足够大的安全参数λ能够保证算法的安全性。加密算法Encrypt的输入参数是明文消息m和加密公钥pk,输出为密文c。解密算法Decrypt的输入参数为密文c和私钥sk,输出则是密文c解密后得到的明文m。密文运算算法Eval的输入参数包括3个部分:公钥pk、电路和密文列表,其中,电路是任意计算算法的形式化描述,密文列表中的所有密文均使用公钥pk加密。密文运算算法是实现全同态性质的关键。Eval的结果必须能够正确解密才能使得加密的同态性成立,即

Decrypt(Eval(pk,C,c1,c2,…,cn),sk)

=C(m1,m2,…,mn)(1)

式中:ci为通过公钥pk加密明文消息mi所得到的密文;C为给定的处理方法。

2  神经网络

本文方案中使用的神经网络为前向人工神经网络。一个M层的多层前向网络包含一个输入层、M-1个隐藏层和一个输出层,其中输入层的节点数与实例的特征值数量一致,每个隐藏层都包含多个神经元节点,每个神经元的值都由与之相连的上一层各个神经元的輸出值通过函数计算得到。神经元的计算过程如图1所示。

每个神经元上的计算主要包括2个步骤:

求和操作输出:xi=∑nj=1wijuj+βi 。

激活函数输出:yi=f(xi)。

其中,激活函数常采用Sigmoid函数:

f(x)=11+e-x

式中:xi为神经元的净输入值;wij为神经元的权值;uj为上一层网络中与该神经元相连接的各神经元输出值;βi为神经元的偏置值;yi为神经元的输出值;f(xi)为神经元的激活函数。

由于全同态加密所支持的运算仅为加法、乘法,上述第一个操作仅包含加法和向量乘法,因此可基于全同态加密快速实现;而激活函数是非线性操作,它是实现全同态神经网络的难点。

综合考虑神经网络算法对非线性转换的需求和同态加密的计算效率需求,本文选择使用多项式来近似计算Sigmoid函数。平方函数不仅多项式次数低,而且具有非线性特性,是替换Sigmoid的理想选择[14]。

3  基于全同态加密的神经网络

3.1  方案设计

为了解决激活函数的非线性问题,部分全同态神经网络在训练阶段和预测阶段使用了不同的激活函数,但它们会损失预测精度。本文方案在训练和预测阶段使用了相同的神经网络结构。主流的全同态加密库HElib[15]支持2种加密方案:整数BFV[16]方案和浮点数CKKS[17]方案。由于神经网络模型参数通常为浮点数,而且神经网络运算也使用浮点数,因此采用CKKS方案。

本文方案基于全同态算法实现一个轻量级的加密神经网络,并对方案的可用性和对数据的保护效果进行了验证,其分类预测过程如图2所示。

全同态加密数据分类预测由模型训练、模型加密、数据加密、密文计算和解密结果5个步骤组成,其流程如图3所示。其中,模型训练是用神经网络模型进行训练,得到较优的网络模型参数,主要是权重和偏置值;模型加密是基于模型参数构建全同态加密神经网络;数据加密是对数据使用全同态加密;密文计算是利用加密神经网络对加密文的数据进行计算,实现分类预测;解密结果是对计算得到的结果进行解密得到分类预测值。

训练好的神经网络模型由同态加密技术加密后部署在云计算平台,同时将数据密文上传至云计算平台,然后在云计算平台中通过对加密数据执行同态计算得到预测结果密文并返回给用户,最终由用户解密得到明文的预测结果。因为云计算平台全程只处理密文,并不会接触到相关明文信息,所以该方案可以保证数据和模型的机密性。

3.2  实例流程

3.2.1  模型训练

在Credit Card Fraud数据集上,以平方函数作为激活函数,设计了含有3个全连接层的隐藏层,各个全连接层的神经元个数分别为:256、128和64,关键代码为:

model=Sequential()

model.add(Dense(256,activation=sqrt,input_dim=29))

model.add(Dense(128,activation=sqrt))

model.add(Dense(64,activation=sqrt))

model.add(Dense(1,activation=sqrt))

批量大小为128,迭代次数为10,关键代码为:

model.fit(x_train,y_train,batch_size=128, epochs=10)

print(predictmodeln(model))

训练结果如图4所示:

将训练好的模型参数保存为h5文件。模型参数主要包含了每个神经元与上一层连接的权重和偏置值。

3.2.2  模型加密

使用HElib库对模型和数据进行加密。首先是对CKKS加密方案的参数进行选择,其中最重要的参数是影响同态加密方案安全性的多项式模次数m。m的取值为2的次幂。m越大方案的安全性就越高,密文也相应加大,会导致计算效率下降。在仿真实验中,m取值512,加密context生成的关键代码为:

hePtr=HelibContext::create(HELIB_NOT_SECURE_CKKS_512_FAST);

hePtr->saveToFile(secretContext,true);

hePtr->saveToFile(publicContext,false);

代码执行完生成一对公私钥后,使用公钥对训练好的神经网络模型进行加密。模型加密的具体过程是使用公钥对神经网络模型参数各个神经元的权值和偏置值进行加密,将各个神经元的n维的权值向量进行整体加密,然后将它们以矩阵格式封装在文件中保存至云服务器。模型加密的关键代码为:

he=HeContext::loadHeContextFromFile(publicContext);

plainNet.loadh5(parser, std::vector{"dense_1", "dense_2", "dense_3","dense_4"}, std::vector{29, 256, 128, 64, 1}, batchSize);

SimpleNeuralNet netHe(*he);

netHe.initFromNet(plainNet);

netHe.saveToFile(encryptedModelFile);

云服务端的初始化操作主要是加载加密后的神经网络模型,关键代码为:

ifstream ifs(encryptedModelFile, ios::in | ios::binary);

SimpleNeuralNet net;

net.load(ifs);

encryptedNet=make_shared(net);

3.2.3  数据加密

使用加密的神经网络模型对预测数据进行预测时,先要使用公钥对预测数据进行加密得到数据密文,关键代码为:

const DoubleMatrixArray& plainSamples=ts->getSamples(batch);

CipherMatrix encryptedSamples(*he);

encoder.encodeEncrypt(encryptedSamples, plain-Samples.getTensor());

3.2.4  密文计算

加密神經网络模型中的密文计算类似于普通神经网络模型的明文预测,但是在密文下进行计算。将加密后的待预测数据密文发送至云服务器,在云服务器中将加密数据输入加密神经网络,在密文下执行神经网络的分类任务,得到加密后的预测结果。关键代码为:

CipherMatrix encryptedPredictions();

encryptedNet->predict(encryptedSamples, encryptedPredictions);

其中predict预测函数的具体实现为:

utput=sal.forward(fcl4.forward(sal.forward(fcl3.forward(sal.forward(fcl2.forward(sal.forward(fcl1.forward(input))))))));

fcl1、flc2、fcl3和fcl4为隐藏层的各层全连接层。其中的forward函数即为前向的计算过程,即在密文中通过矩阵计算得到加密后的各个神经元节点的输出值。隐藏层中的第一层结点的输入input即为加密后的待预测数据,隐藏层forward的关键代码为:

DoubleMatrixArray res=weights.getMatrixMultiply(lastInput);

res.add(bias);

sal为激活函数类的实现,将神经元的求和操作值作为激活函数的输入,得到的结果即为该神经元的输出,激活函数类中forward的关键代码为:

CipherMatrix res=inVec.getSquare();

3.2.5  解密结果

客户端在收到云服务器加密神经网络模型计算得到的结果密文后,使用秘钥进行解密得到明文的预测结果,关键代码如下:

he=HeContext::loadHeContextFromFile(secretContext);

CipherMatrix encryptedPredictions(*he);

DoubleMatrixArray plainPredictions(encoder.decryptDecodeDouble(encryptedPredictions));

实现的方案中包含2个角色:客户端和服务端。客户端负责使用全同态加密算法对明文模型和明文数据进行加密,只有客户端能够接触到未加密的数据。服务端加载加密后的模型密文后,对加密数据进行分类预测,整个计算过程在密域中进行。最后,客户端能够使用密钥解密从服务器获得预测结果。因此,在整个过程中,只有受信任的客户端才具有明文访问权限,神经网络模型和数据都受到了完全保护。

4  实验结果与分析

4.1  实验环境与数据集

为了评估方案的准确性和效率,在测试实验中,主要对Credit Card Fraud数据集中93 986条数据进行实验测试,CPU配置为Intel(R) Core(TM) i5-10400F CPU@2.90GHz,内存为8 GiB。

4.2  结果分析

4.2.1  性能分析

表1给出了加密模型分类预测各个阶段的运算时间。由于加密模型分类预测运算中包含多次的密文乘法运算,因此需要耗费较长时间。

4.2.2  准确率分析

随机选择Credit Card Fraud数据集中80%的数据作为训练集,剩余20%的数据作为测试集。将加密模型对测试集的分类预测结果进行解密后,与对应的明文标签进行比较,发现密文预测精度为91.18%,能够达到未加密数据的水准,因此该方案能够保持原生算法的预测准确率。

4.2.3  安全性分析

在整个方案中,模型和数据分别采用了FHE进行加密,云服务器中的神经网络模型和计算过程数据都以密文形式存储,使得云计算服务提供商无法获得任何数据的原始信息,因此该方案能够确保模型和数据在整个外包计算过程中的安全性。

5  结语

针对云环境下数据挖掘应用服务外包存在的隐私数据泄露问题,本文提出了一种基于全同态加密的神经网络预测方案,保护了外包计算过程中的数据隐私。该方案包括模型训练、模型加密、数据加密、密文计算和解密结果5个部分,通过使用平方函数代替非线性激活函数,解决了同态运算中的复杂运算;在一个轻量级的人工神经网络上实现了对Credit Card Fraud数据集的分类预测,得到了与明文模型一致的准确率,保持了原生算法的准确性。未来将在提升模型复杂率和算法效率上进行深入研究。

参考文献:

[1]阎允雪, 马铭, 蒋瀚. 基于秘密分享的高效隐私保护四方机器学习方案[J]. 计算机研究与发展, 2022, 59(10): 2338-2347.

[2] 季琰, 戴华, 姜莹莹, 等. 面向混合云的可并行多关键词Top-k密文检索技术[J]. 计算机科学, 2021, 48(5): 320-327.

[3] 白伍彤, 陈兰香. 基于差分隐私的健康医疗数据保护方案[J]. 计算机应用与软件, 2022, 39(8): 304-311.

[4] 徐慧华, 杨雄, 张晓惠. 云计算环境下基于全同态加密的人脸信息保护[J]. 贵州大学学报(自然科学版), 2021, 38(3): 83-91.

[5] XIE P T, BILENKO M, FINLEY T, et al. Crypto-nets: Neural networks over encrypted data[DB/OL]. (2014-12-18)[2022-11-06]. https://arxiv.org/abs/1412.6181.

[6] MOHASSEL P, ZHANG Y P. SecureML: a system for scalable privacy-preserving machine learning[C]// 2017 IEEE Symposium on Security and Privacy. Paris: IEEE, 2017: 19-38.

[7] YANG Q, LIU Y, CHEN T, et al. Federated machine learning: concept and applications[J]. ACM Transactions on Intelligent Systems and Technology (TIST), 2019, 10(2): 1-19.

[8] ZHANG Q C, YANG L T, CHEN Z K. Privacy preserving deep computation model on cloud for big data feature learning[J]. IEEE Transactions on Computers, 2016, 65(5): 1351-1362.

[9] CHABANNE H, WARGNY AD, MILGRAM J, et al. Privacy-preserving classification on deep neural network[DB/OL]. (2017-01-13) [2022-11-06]. https://eprint.iacr.org/2017/035.

[10]CHILLOTTI I, GAMMA N, GEORGIEVA M, et al. Faster fully homomorphic encryption: bootstrapping in less than 0.1 seconds[C]// International conference on the theory and application of cryptology and information security. Heidelberg: Springer, 2016: 3-33.

[11]ZHAO Q S, ZENG Q K, LIU X M, et al. Verifiable computation using re-randomizable garbled circuits[J]. Journal of Software, 2019, 30(2): 209-225.

[12]蔣林智, 许春香, 王晓芳, 等. (全)同态加密在基于密文计算模型中的应用[J]. 密码学报, 2017, 4(6): 596-610.

[13]YU L Z, LIN G X, JIE G Y, et al. Survey on homomorphic encryption algorithm and its application in the privacy-preserving for cloud computing[J]. Journal of Software, 2018, 29(7): 1830-1851.

[14]LIVNI R, SHALEV-SHWARTZ S, SHAMIR O. On the computational efficiency of training neural networks[J]. Advances in Neural Information Processing Systems, 2014, 14(10): 855-863.

[15]宋新霞, 陈智罡, 李焱华. HEBenchmark: 全同态加密测试系统设计与实现[J]. 密码学报, 2020, 7(6): 853-863.

[16]MERT A C, ZTRK E, SAVAS E. Design and implementation of encryption/decryption architectures for BFV homomorphic encryption scheme[J]. IEEE Transactions on Very Large Scale Integration (VLSI) Systems, 2020, 28(2): 353-362.

[17]CHEON J H, KIM A, KIM M, et al. Homomorphic encryption for arithmetic of approximate numbers[C]// International Conference on the Theory and Application of Cryptology and Information Security. Cham: Springer, 2017: 409-437.

(責任编辑:周晓南)

Research on Neural Network Classification Prediction Based on Fully

Homomorphic Encryption in Cloud Computing Environment

YANG Xiong1, XU Huihua*2

(1.Department of Computer Engineering, Zhicheng College of Fuzhou University, Fuzhou 350002, China;

2.Department of Economics and Law, Concord University College Fujian Normal University, Fuzhou 350117, China)

Abstract:

In the context of cloud computing, the data sharing and service outsourcing of data mining applications have generated enormous wealth, but they have also brought risks of privacy leaks, and their information security problems need to be urgently addressed. This article analyzes the risks existing in neural network prediction classification service outsourcing and the application of fully homomorphic encryption algorithms in the cloud computing environment. It uses the square function as the nonlinear activation function in the neural network, designs and implements a ciphertext-based data classification prediction solution, and provides a detailed description of the five main steps of the solution operation: model training, model encryption, data encryption, ciphertext computation, and decryption of results. The designed test experiment results verify the feasibility of the solution, ensuring that the model and data are not leaked during the entire neural network processing process, effectively guaranteeing the security and privacy of the data and model.

Key words:

neural network; fully homomorphic encryption; privacy protection

猜你喜欢
隐私保护神经网络
神经网络抑制无线通信干扰探究
基于层次和节点功率控制的源位置隐私保护策略研究
关联规则隐藏算法综述
大数据环境下用户信息隐私泄露成因分析和保护对策
大数据安全与隐私保护的必要性及措施
社交网络中的隐私关注及隐私保护研究综述
大数据时代的隐私保护关键技术研究
基于神经网络的拉矫机控制模型建立
复数神经网络在基于WiFi的室内LBS应用
基于支持向量机回归和RBF神经网络的PID整定