APP下载

基于BFV同态加密神经网络参数设置实证研究

2023-07-06董建锋

信息安全学报 2023年3期
关键词:同态模数密文

杨 涛, 董建锋,

1浙江工商大学, 计算机科学与技术学院, 杭州 中国 310012

2中国科学院信息工程研究所, 信息安全国家重点实验室, 北京 100093

1 引言

随着国内外对于隐私安全、数据安全关注的加深以及相关法律法规的出台, 越来越多的人工智能技术开始关注其所在应用场景的隐私安全问题[1]。如在依靠人脸识别信息的进行身份认证时, 人们关心自己的人脸信息有没有被滥用。在医院使用基于深度学习模型时, 人们关心自己的病例信息会不会被用来训练模型, 并造成隐私外泄。其中许多深度学习的隐私安全问题, 都涉及云计算场景中的隐私安全。在该场景下深度学习模型成为一种可调用的远程功能模块为用户提供如语音识别、目标检测、人脸识别等服务。用户只需将自己的数据上传到云端, 通过部署在云端的深度学习模型的处理, 即可得到自己所需要的结果。然而在该种场景下用户的数据需要上传到云端的服务器, 数据离开本地在传输的过程中或云端处理的过程中, 都存在隐私泄露的风险。部署于云端平台上的深度学习模型, 在为用户远程提供深度学习服务的同时, 如何能保证用户上传的数据的隐私不会被泄露, 成为了一个亟需解决问题。

为了构建适用于云端的隐私安全深度学习模型,研究者尝试了同态加密、差分隐私和安全多方计算等多种方法。差分隐私原本是一种防范差分攻击的方法, 通过向数据集中添加随机噪声, 使得某一特定样本包括或不包括在数据集中, 对查询的结果不产生影响, 以此使得在数据集中的隐私数据不会泄露。当差分隐私技术应用于深度学习模型的训练时,通过向每次反向传递的梯度中添加一定量的噪声,使得训练得到的参数并不完全反映数据集的分布,从而保护数据集的隐私, 构造满足差分隐私要求的深度学习训练系统[2]。多方安全计算则是面向一组计算的参与者, 每位参与者拥有自己的数据, 且不信任其他参与者与任何第三方, 如何对各自私密的数据计算出一个目标结果的过程。多方安全计算的关键在于设计一个能让各方参与者诚实执行的协议。然而在实际应用的过程中, 差分隐私和多方安全计算技术, 都存在一定的局限性。差分隐私不能保护数据在传输过程中的隐私暴露问题。如果未经加密的数据在传输过程中被截取, 则存在隐私暴露的风险。多方安全计算的应用需要精心设计安全协议, 甚至需要额外的硬件设备才能完成; 一些计算方法与没有使用多方安全计算时的方法差别甚大, 不利于将现有神经网络模型转化成符合多方安全计算的模型。此外, 多方安全计算的协议往往需要不同参与者之间的交互, 与现有神经网络训练和预测端到端一步完成的形式, 差别较大。因此在深度学习领域的实现还存在较大的难度。

本论文所关注的同态加密技术, 可以在密文状态下完成计算, 可以保证在数据传输时的安全性。同时现有的计算操作与同态加密操作的转换相对简单,与神经网络技术结合紧密, 可以在无需用户交互的情况下完成同态加密神经网络的训练和预测。因此同态加密技术正越来越多地被应用到各个场景中。其中微软公司所提出的Cryptonets[3-4], 以及之前公开的SEAL同态加密库[5], 是目前应用最广泛的模型和同态加密神经网络框架之一。Cryptonets主要利用同态加密技术改造Lenet5神经网络模型, 并在密文的状态下完成对加密的手写字母图片完成识别, 以此作为一套原型系统来验证其对神经网络改造的有效性。

在使用同态加密技术时, 由于额外的加密解密计算、以及在密文状态下计算使得整个计算过程的时间复杂度与空间复杂度都大为增加, 这不但是人们在使用同态加密技术时最关心的问题, 而且也是限制同态加密技术进一步推广应用的原因之一。

我们认为对密码方案中参数设置, 以及神经网络中的一些关键参数的设置将会对时间复杂度与空间复杂度, 以及神经网络模型的预测准确率带来较大的影响。参数设置对加密神经网络性能的定量分析一直比较缺乏。尤其对最终神经网络识别和判断的准确率有多少影响, 一直没有一个清楚的认识。这使得用户在利用BFV密码方案时, 不但需要经过长时间的调参, 才能找到适应具体任务的参数配置,而且一旦选取了不合适的参数, 不但影响模型的计算效率, 同时也将影响模型的准确率。

本论文将对应用于SEAL中已实现的BFV密码方案中的多个关键参数, 以及其在Cryptonets网络模型中的多个重要参数进行评测, 研究不同参数对于计算过程中密文增长、时间复杂度、以及网络预测准确率的影响, 为普通用户正确地选择合适的BFV参数提供合理的建议。

本论文第二部分介绍同态加密、隐私安全神经网络、同态加密框架的相关背景。第三部分将讨论BFV密码方案与Cryptonets同态加密神经网络中多个重要参数的含义及原理。第四章介绍相关实验环境的搭建与实验结果。第五章为全文的总结和对未来BFV方案参数设置的建议。

2 相关工作

2.1 全同态与有限同态加密

同态加密是加密的一种形式, 其允许对加密后的数据进行一些特定的代数运算, 计算得到的结果解密后将与直接在明文数据上进行运算的结果相同。由于所有的运算都是在加密域中完成, 因此能够保证数据的隐私性。同态加密的概念最早由Rives等人在1978年提出[6], 之后Elgamel[7]与Paillier[8]分别提出了基于加法同态的加密方案。

假设有两个正整数x1、x2, 经过公钥pk加密后可得密文态的在最早的几年中, 在加法同态加密中的⊕操作已经可以完成操作。在之后的几年里, 带常数的乘法同态加密也可以实现。在2009年时Gentry等人首先提出了基于理想格的可以完成任意次数的加法与乘法运算的全同态加密方案[9]以及基于最大近似公因子问题的变种方案DGHV[10], 被称为第一代全同态加密方案。然而由于其密钥尺寸过大, 计算效率较低,很快被第二代全同态加密取代。基于格上的“带错误学习(Learning With Error, LWE)”被称为第二代全同态加密, 该种全同态加密实现了在标准格上的同态加密, 但是由于密文是向量, 通过张量积的操作实现同态加密使得密文的维数急剧增加, 带来计算开销过大。第三代全同态加密方案是由Gentry等人提出的基于矩阵近似特征向量的GSW同态加密方案[11], 该方案的特点为密文有一个矩阵构成, 可以进行自然的乘法加法运算, 避免了密文维数膨胀的问题。

由于全同态加密的效率问题, 人们在提出全同态加密之后, 后续又提出了有限同态加密(somewhat homomorphic encryption)的概念。有限同态加密允许对密文进行有限次数多项式函数运算。其中具有代表性的有[12-14], 有限同态加密对被加密的多项式的最高次数有要求。高次的多项式在加密时需要大的参数, 不但带来更大的计算复杂度, 也会导致体量较大的密文, 使得整体效率降低。在同态加密技术的应用中, 运行效率问题一直人们比较关注的问题。其核心问题是如何在效率与安全性上找到一个平衡点,在不牺牲太多运行效率的同时, 保证数据的安全性。

2.2 隐私安全的神经网络

近些年来, 神经网络的快速发展已经推动人工智能领域进入了一个新的阶段。人们已经根据实际的种种需要研发出了不同种类的神经网络, 如深度置信神经网络, 卷积神经网络, 循环神经网络。考虑到数据的隐私性和安全性, 在本世纪初研究人员提出了加密神经网络的概念。加密神经网络是指在密文上进行训练和预测的神经网络[3], 现有的方法都是基于安全多方计算或是同态加密的方法, 或是它们两者的结合。Barni等人[15]结合了安全多方计算与同态加密的方法, 其中同态加密的方案使用的是Paillier[8]基于加法的同态加密, 所用到的安全多方运算协议基于Yao百万富翁问题[16]。之后Orlandi等人[17]于次年进一步改进了[15]的方法, 采用了更为先进的同态加密方案[18], 同时中间结果将被隐藏直到最后才向客户端公开。[15]与[17]提出了Oblivious neural network的概念, 即为数据所有方与计算服务方互相之间不清楚对方的情况, 数据所有方只是使用计算服务方所提供的模型服务, 对其中的参数并不清楚。计算服务方只是提供计算服务给数据所有方使用, 对上传进来的数据具体情况并不知情。这样的神经网络保护了双方的隐私不被泄露,为以后的安全神经网络做出了启示。类似[15]和[17]这样基于同态加密与多方安全计算的方法近年来还有很多, 如[19-20], 由于多方计算需要人们对协议的交互性输入, 系统整体的计算复杂度与传输损耗仍然很大。Gilad 等人提出了一种可应用于加密数据的近似神经网CryptoNets[3]。它不借助客户端与服务器端的交互, 数据在客户端上加密之后, 传输到服务器端。服务器端运行的网络也是在原有网络基础上改进的可以处理加密数据的网络, 数据一直在加密域中处理, 直到最后传输给客户端后再由客户端解密。CryptoNets在MNIST手写识别数据集上做了测试达到了较高的准确率, 然而由于它所采用的平方函数作为激活函数使得无法处理较深层的网络,并将原有max-pooling函数改为mean-pooling使得识别的准确性有所降低, 并且在训练时需要积累数据达到一定数量后, 成批次训练, 无法满足可用性的需求, 因此仍然没有达到实用性的要求。

3 BFV密码方案与关键参数

3.1 BFV同态加密方案

BFV(Brakerski-Fan-Vercauteren)密码方案是第一代全同态算法改良后的第二代全同态方案。BFV方案基于带误差的环学习(RLWE)困难问题。与第一代算法相比, BFV通过重线性化技术[21]来控制密文的维度, 进而通过维度-模数约减技术减少解密算法的复杂性, 提升运算效率。由于BFV方案的数学基础是环, 所以明文与密文都是由环上的多项式组成。其主要思想是将明文放在密文的高位, 在解密时通过整除的方式, 去除低位上的噪声, 得到明文。以下实现过程为生成公私钥, 加密, 解密, 和重线性化的一些步骤:

首先p为明文模,q为一个大整数模, 明文空间为环R/pR.

1) 生成私钥sk: 选取s←χ, 输出sk=(1,s).χ为一个随机分布。私钥分布与噪声分布一般是一个分布, 实际中往往选择是离散高斯分布。

2) 生成公钥pk: 设定s=sk, 选取a←Rq,e←χ, 输出pk=(b,a), 其中b=-(as+e).a由明文空间均匀随机采样得到,e由噪声空间采样得到。

3) 加密函数(pk,m): 对于一个明文首先需要将其编码到明文空间R/pR.编码方法是需要一个整数t,一个数可以表示为t进制数相加的形式, 因此消息m∊Rt, 加密得到密文ct=(c0,c1), 其中c0=bu+e1+ωm,c1=au+e2.e1和e2为从噪声分布中两次采样取得的噪声,u为从私钥空间取得的随机数。ω为。

4) 解密函数(sk,ct): 设定s=sk, 密文ct=(c0,c1)解密为

5) 加法同态性: 假设cti(i∊1,2)为两个密文, 那么Add(ct1,ct2,):=(ct1[0]+ct2[0],ct1[1]+ct2[1]).

6) 乘法同态性: 步骤为先将cti(i∊1,2)相乘, 再重线性化。假设ct1=(a0,a1),ct2=(b0,b1), 相乘后密文为ct1ct2=(a0b0,a0b1+a1b0,a1b1), 其密文的私钥s=(1,2s,s2), 因为cs∙cs=cc∙s2

乘法运算后密文由二维变为三维, 需要重线性化, 重线性化需要借助辅助密钥, 通过重新计算噪声, 能够将密文转为二维。

从以上的步骤中可以可以看出, 同态的加法和乘法都遵循不同于普通加法乘法运算的规则。由于在同态加密运算规则涉及更多的参数运算, 并且需要妥善处理随时可能增长的噪声, 因此采用以同态加密作为隐私保护方法的神经网络, 其时间复杂度和空间复杂将远超过普通神经网络。其中可以看出由于重线性化步骤的加入, 同态加密乘态加密乘法和加法对时间复杂度和密文增长的影响展开评测,探究参数的变化对同态加密乘法和加法运算效率的影响。法的复杂度远大与加法运算。

3.2 编码

同态加密的运算对象为环上的多项式, 所有参与BFV同态加密运算的整数或浮点数都需要转化为多项式的形式才能参与运算, 这一个转化为多项式的过程被称为编码。

将整数转化为多项式的方法有多种, 以下是SEAL类库所支持的几种编码方式。

表1 SEAL中可用于BFV的编码方式Table 1 Encoding method in BFV scheme provided by SEAL Library

Cryptonets在实现时采用了批处理编码的方式,每次将N张图片同时处理, 以降低单张图片的时间和空间开销。然而当每次批处理时, 输入图片的数量没有达到足够的数量, 单张图片的时间空间开销仍然会很大。

3.3 矩阵旋转与Galois密钥

在对密文进行连乘连加操作时, 需要进行矩阵的旋转操作。矩阵的旋转操作就是将矩阵内的元素按行或列循环移位。在密文态下, 旋转需要先生成Galois Keys。

在SEAL库中, Galois密钥的生成被封装成函数,可以自动生成。只有通过修改配置文件才能修改。在设置Galois Keys时, 可以对Galois Decomposition BitCount进行设置。

3.4 加密

在加密过程中影响时间和空间复杂性的参数包括图片的尺寸、参与预测的图片数量, 编码形式, 以及神经网络中批处理大小(一次有多少张图片参与运算)。在Cryptonets中, 因为使用了SIMD技术, 一次参与运算的图片量由N多项式模数决定。模型为了提高整体的处理效率, 一次将对N张图片进行预测。如果输入图片数量未达到N张, 将由0补齐。

3.5 解密和解码

解密和解码过程中所涉及的参数与编码和加密中, 只是解密与加密不同的是, 解密过程所用到的密钥是私钥。解密通过私钥将密文解密为一个明文多项式。最后将编码的多项式还原为预测结果。

Cryptonets模型的基本流程如下图1所示。N为多项式模数,q为系数模量,T为选取的基准。

图1 Cryptonets 加解密与预测示意图Figure 1 Cryptonets encryption/decryption and inference process

图2 测试平台与云服务器数据流图Figure 2 The dataflow between testing platform and the server in the cloud

4 Cryptonets神经网络及其关键参数

Cryptonets 网络结构与Lenet-5手写数字识别模型类似, 只是通过BFV同态加密密码方案将普通运算如乘法运算, 替换为符合同态加密规则的运算。其中一些非线性的函数如激活函数, 还将被替换为线性函数, 并将其转化为符合同态加密规则的函数运算。经过修改后的Lenet-5的网络模型可以处理加密后的数字图片, 并将识别后的结果以加密数据的形式返回给用户。用户可以将加密后的手写数字图片上传, 并能够在密文状态下识别手写数字图片。

本节将对加密神经网络中多个可能影响性能的参数进行分析。

4.1 Cryptonets 神经网络基本架构

表2中介绍Cryptonets网络各个网络层的参数。在训练时各个层级都会发挥作用, 但是当预测时,只有第一层、第二层、第三层、第七层、第九层发挥了作用。

表2 Cryptonets网络结构Table 2 Cryptonets Network Structure

表3 所测试系统的硬件配置Table 3 Our testing system’s hardware configuration

对于一个加密神经网络来说, 训练阶段往往是在明文的状态下, 由大规模的明文数据训练得到。普通用户更关心经过同态加密改造后的模型在使用加密数据预测时的运行效率。

在第五节实验部分我们将对预测模型不同层级的时间复杂度和空间复杂度进行评测, 为普通用户在设计同态加密神经网络架构时提供建议。

4.2 卷积

在卷积神经网络中卷积层中的卷积操作是提取图像特征的重要方法。其中所涉及的参数有卷积核尺寸、填充(padding)、步长、卷积核数量等。这些参数参与卷积层的运算, 并对整体的时间复杂度和空间复杂度产生影响。

卷积核尺寸:在卷积时卷积核的尺寸控制了感受野的大小, 标志在多大范围内的信息参与运算。不同尺寸的卷积核影响了同时有多少像素值参与乘法运算与加法运算。

填充(padding):padding的作用是调整输入特征图的大小。通过在图片周围添加填充物以满足不同卷积核的计算。

步长:步长和填充一起对最后生成的特征图尺寸产生影响。一般情况下, 步长越大输出特征图相对于输入特征图缩小得越多, 后续所需的计算量也将减少。

卷积核数量:参与卷积运算的卷积核一般随机生成, 卷积核数量对应着最后生成的特征图通道的数量。所需要的特征图通道越多, 所需的计算量越大,时间复杂度也相应的增加。

4.3 层级

不同网络层级经过同态加密函数转换之后, 各层所需要的计算时间有所不同。本论文将对预测时各层所需的时间加以评测, 确定各层的时间复杂度。为用户设计网络架构提供效率方面的建议。

4.4 激活函数

在Lenet-5的网络模型中, 激活函数为ReLU函数。由于ReLU函数不属于线性函数, 不能被同态加密转化, 因此在Cryptonets的实现中将ReLU函数替换为平方函数。平方函数所涉及到的同态加密中的乘法运算所需要的时间将多于ReLU函数。

然而平方函数在后续的实验中也发现收敛效果不佳, 如果换成其他激活函数, 其时间复杂度也将是需要考察的因素。

4.5 池化层

池化层的作用是将特征做一个筛选, 降低特征的维度。降低特征的维度不但是防止模型过拟合、增加模型不变性的需要, 而且也是减少计算量的要求。

在卷积神经网络中, 池化层所用到的常见方法有平均池化法、最大值池化法。由于最大值函数不是线性函数, 因此在Cryptonets同态加密神经网络中,使用了平均池化法。

在Cryptonets中, 平均池化需要对1×3×3卷积核中的每一个特征值进行平均运算, 运算量较大, 对整体时间复杂度影响较大。

5 实验测试与讨论

5.1 实验设置

本论文所涉及的实验都在阿里云服务器上完成。所租用的服务器, 具体的软硬件配置如下:

为了能对各个参数进行动态的调试, 我们开发了一个用户可自主测试模型的测试平台, 用来向服务器端的模型传递参数, 并记录返回结果, 最终生成图表。

实验中所使用的数据集为MNIST手写数字数据集。实验中我们随机选择了10000张图片参与Cryptonets模型的预测实验。

5.2 BFV方案参数对性能的影响

论文中所涉及的BFV同态加密方案来自微软SEAL同态加密库[3]。我们对多个参数进行的测试。具体如表4所示。其中最主要的参数是多项式模数N, 如3.1中的介绍, 它不但表征了输入图片每个像素值会被编码成有多少项的多项式, 而且也表征了会多少个像素值同时加密。如表5所示, 在SEAL中有三个多项式模数可以选择, 并为每个多项式模数自动生成了对应的明文模量。用户选择不同的多项式模数N, SEAL将自动选用相应的明文模量对输入信息进行编码。

表4 SEAL中BFV方案所涉及的重要参数Table 4 The key parameters in BFV scheme provided by SEAL

表5 测试中所用到的多项式模量与明文模量Table 5 Polynomial modulus and plaintext modulus in our experiments

5.2.1 多项式模与识别准确率

本实验通过调整不同的多项式模数, 测试其对最终神经网络识别准确率的影响。表6展示的是不同多项式模数对最终手写识别率的影响。当多项式模数为2048时, 识别率为10%~11%。只有十分之一的数字被正确识别, 约等于平均分布。由此可见, 此时网络基本不具备识别数字的能力, 可以推测此时过小的多项式模数使得神经网络在做乘法时产生的噪声过大, 进而在解密时不能回到正常的数值区间。由于返回的数值为一些随机的噪声, 使得最后只十分之一的数值识别正确。

表6 多项式模N与网络识别准确率的影响Table 6 The relationship between polynomial modulus and recognition accuracy

当多项式模超过4096时, 识别准确率较高, 已有97%的数字识别正确。当多项式模为8192时识别准备率达到98%~99%, 已经达到未加密的普通神经网络的水平。因此可以推测1)当多项式模足够大时可以提高神经网络识别的精度。当多项式模数较小时, 网络模型无法正常工作。2)更大的多项式模数可以有助提高精度。当神经网络结构较复杂, 层数较多时选择较大的多项式模数可以保证网络的准确性。

5.2.2 其他参数与识别准确率

在实验中我们也对BFV其他参数进行了调试,其中weightscale旨在对cryptonets中的权重加以缩放,scale是BFV中每次重线性化所使用的参数。在神经网络的运行过程中会对多项式密文做乘法, 加法运算, 乘法使得密文的噪声翻倍, 为防止密文噪声太大导致解密误差很大, 需要对乘法结果进行重线性化运算。Scale大小决定了密文还原回原大小所要约减的程度。

表7中展示了不同weightscale和Scale对识别准确率带来的影响。从实验结果可以看到, 当多项式模数固定时, 不同的weightscale和Scale的组合, 对识别准确率的影响不大。

表7 Weightscale与Scale参数对识别准确率的影响Table 7 The recognition accuracy inferenced by weightscale and scale

实验中还对神经网络中normalization factor、卷积核大小等参数进行的测试, 这些对最终的识别准确率没有影响。

5.2.3 加解密过程时间与空间复杂度

我们对选取不同的多项式模数时, 加密解密所消耗的时间, 模型预测的时间、明文密文在内存中所占空间的大小进行的评测。实验结果如表7所示。

从表8中可以看出, 随着多项式模数的增长, 明文所占空间大小和密文所占空间大小呈现出明显的翻倍的关系。明文和密文所占空间大小约为1︰100。换句话说, 加密之后密文是明文的100倍。此处, 明文是以批处理编码(batch encode)的形式编码。从明文(编码后)和消息(编码前)所占空间大小的对比可以看出, 在批处理编码之后, 明文所占空间反而缩小了一些, 说明批处理编码的高效。

表8 多项式N与加密网络时间与空间复杂度的关系Table 8 The relationship between polynomial modulus, time complexity, and spatial complexity

对比加密和解密的耗时, 可以发现加密的耗时约为解密耗时的8~10倍。加密过程的时间复杂度远大于解密过程。

从表8中可以看出, 加密和解密的耗时虽然随着N的翻倍而增加, 但是没有呈现翻倍的情况。然而,在N=8192时模型预测耗时24.374s, 而在N=2048是,模型预测耗时5.7s。当N增长4倍的时候, 模型预测的耗时增长快于4倍。由此可以推测随着N的增加会使得网络的复杂度呈快速增加, 并将影响模型整体的时间复杂度。

5.2.4 重线性化参数relinKeys

在对影响重线性化relinKeys的配置参数DecompositionBitCount的测试中我们发现, 若取值小, 则重线性化过程的计算速度较慢, 反之, 取值大,则计算速度较快。在池化层中, 模型涉及大量的乘法运算, 每次乘法运算都需要运用重线性化将密文重新回到size为2的状态。从图3a和图, 3b中可以看出,当DecompositionBitCount参数从1增加到10, 模型预测时池化层耗时也从1.6s减少到0.9s, 说明当DecompositionBitCount较大时将提高重线性化的速度。

图3 b DecompositionBitCount=10时网络各层耗时Figure 3b Time consumption in each layer when DecompositionBitCount=10

图3 a DecompositionBitCount=1时网络各层耗时Figure 3a Time consumption in each layer when DecompositionBitCount=1

然而较大的重线性化因子会导致每次运算中relinkey占据更大的噪音预算, 使得最大乘法次数降低了。因此仍需要选择合适的DecompositionBitCount.

5.3 神经网络参数对性能的影响

5.3.1 加密神经网络各层时间复杂度

我们同时对不同多项式模数下, Cryptonets网络各层中计算耗时的多少进行了测量。由图4a, 图4b,图4c可以看出, 在同态加密化后, 前三层(卷积层、池化层、激活层1)耗时最多, 且耗时相差很大, 后两层(激活层2、全连接层)耗时较少, 且耗时相差不大都在1s之内。在选择不同的多项式模数的情况下, 卷积层, 第一个平方激活层, 和池化层的耗时随N增大而增加明显, 而第二个平方激活层与全连接层则受影响较小。

图4 c N=2048时网络各层耗时Figure 4c Time consumption in each layer when N=2048

图4 b N=4096时网络各层耗时Figure 4b Time consumption in each layer when N=4096

图4 a N=8192时网络各层耗时Figure 4a Time consumption in each layer when N=8192

从图4a, 图4b和图4c中可以看出, 池化层耗时明显高于第一个平方激活层和卷积层, 最后的全连接层与第二个激活层耗时极小。池化层耗时最多的原因, 推测是由于需要将一个卷积核范围内的特征层求平均值, 涉及大量的密文乘法运算。全连接层与第二个激活层耗时较少, 符合它们输入的神经元较少的规律, 池化层压缩了特征值后将变少的神经元输出给后两层, 使得后者密文计算量变小了所以需要的计算时间较少。

5.3.2 不同卷积核大小的影响

在对加密神经网络的评测中我们也测试了不同的卷积核大小对时间复杂度的影响。由图5a, 图5b,图5c的对比中可以看出, 当使用1×1卷积核, 卷积层耗时2s左右, 池化层耗时6s左右, 激活层1耗时5.2s左右。当使用3×3卷积核, 卷积层耗时0.8s, 池化层耗时5.7s左右, 激活层1耗时6s左右。当使用5×5卷积核时, 卷积层耗时1s左右, 池化层耗时2s左右, 激活层1耗时1.4s左右。当1×1, 3×3大小的卷积核与5×5的卷积核相比时, 使用5×5的卷积核三个层级平均减少了4s左右的运算时间, 它的卷积耗时, 池化耗时和激活层耗时都更少。在三个卷积核的准确率几乎相等的情况下, 5×5的卷积核显得更高效。

图5 c 卷积核size=5时网络各层耗时Figure 5c Time consumption in each layer when kernelsize =5

图5 b 卷积核size=3时网络各层耗时Figure 5b Time consumption in each layer when kernelsize =3

图5 a 卷积核size=1时网络各层耗时Figure 5a Time consumption in each layer when kernelsize =1

在同样的准确性的前提下, 使用5×5的卷积核显得更高效一些。在卷积网络的设计中, 往往出于对计算量的考虑将5×5这样的大卷积核换成3×3的卷积核。然而在同态加密的神经网络中, 将大卷积核替换为小卷积核的优势被加密方案的开销所取代。反而使用大卷积核增大感受野, 所得到的特征图尺寸更小, 对之后的池化层, 激活层的计算都带来很大的便利。

在同态加密神经网络的设计中, 可以尽量使用大卷积核减少池化层和激活层的乘法的计算压力。

6 总结

本文通过对BFV密码方案与Cryptonets同态加密神经网络中各个参数的配置与评测, 研究BFV同态加密方案里各个参数对神经网络识别准确率以及时间空间复杂性的影响, 为BFV在其他神经网络中的应用提供配置的建议与提示。经过测试, 本论文发现多项式模数是对性能和效率影响最大的参数。一方面较大的多项式模数可以带来更精确的预测结果,另一方面随着多项式模数的增长, 时间复杂度和空间复杂度都在增长, 且时间复杂度的增长要快于空间复杂度的增长。因此, 在硬件条件允许的情况下尽量使用较大的多项式模数。在评价不同网络层级时,池化层在不同多项式模数的条件下, 一直是耗时最长的层级, 甚至超过了卷积层。为了减少池化层对预测时间的影响, 应该减少或不使用池化层, 并用其他形式如空洞卷积代替池化层。在卷积层中较大的卷积核对提高计算效率有较大的帮助。不但可以获得更大的感受野, 而且可以使特征图尺寸更小, 减少后续层级的计算量。因此, 在设计同态加密神经网络时, 应尽量使用大的卷积核。

致 谢本课题得到浙江省自然科学基金(LQ20F02 0008)与中科院信工所开放课题(2021-MS-03)提供资助。

猜你喜欢

同态模数密文
一种针对格基后量子密码的能量侧信道分析框架
一种支持动态更新的可排名密文搜索方案
基于模糊数学的通信网络密文信息差错恢复
基于单片机和模数化设计的低压侧电压监视与保护装置
关于半模同态的分解*
模数化设计方法在景观铺装设计中的应用
拉回和推出的若干注记
基于LID模式的城区排涝模数探析
一种新型的RSA密码体制模数分解算法
一种基于LWE的同态加密方案