CN112699384A - 基于fpga的全同态加密深度学习推理方法及系统 - Google Patents
基于fpga的全同态加密深度学习推理方法及系统 Download PDFInfo
- Publication number
- CN112699384A CN112699384A CN202011442957.3A CN202011442957A CN112699384A CN 112699384 A CN112699384 A CN 112699384A CN 202011442957 A CN202011442957 A CN 202011442957A CN 112699384 A CN112699384 A CN 112699384A
- Authority
- CN
- China
- Prior art keywords
- deep learning
- homomorphic encryption
- ciphertext
- network
- coefficient
- 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.)
- Pending
Links
- 238000013135 deep learning Methods 0.000 title claims abstract description 65
- 238000000034 method Methods 0.000 title claims abstract description 47
- 238000012856 packing Methods 0.000 claims abstract description 33
- 238000012545 processing Methods 0.000 claims abstract description 24
- 238000004806 packaging method and process Methods 0.000 claims abstract description 13
- 238000005457 optimization Methods 0.000 claims description 15
- 239000011159 matrix material Substances 0.000 claims description 9
- 238000007781 pre-processing Methods 0.000 claims description 4
- 238000012795 verification Methods 0.000 claims 1
- 239000010410 layer Substances 0.000 description 84
- 238000004364 calculation method Methods 0.000 description 17
- 238000013461 design Methods 0.000 description 11
- 238000013528 artificial neural network Methods 0.000 description 7
- 238000010586 diagram Methods 0.000 description 5
- 230000015572 biosynthetic process Effects 0.000 description 4
- 230000008569 process Effects 0.000 description 4
- 238000003786 synthesis reaction Methods 0.000 description 4
- 238000007792 addition Methods 0.000 description 3
- 230000008901 benefit Effects 0.000 description 3
- 238000006243 chemical reaction Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 230000010354 integration Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 230000009466 transformation Effects 0.000 description 3
- 230000001133 acceleration Effects 0.000 description 2
- 238000003491 array Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 230000018109 developmental process Effects 0.000 description 2
- 238000010801 machine learning Methods 0.000 description 2
- 238000011176 pooling Methods 0.000 description 2
- 238000000844 transformation Methods 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000007812 deficiency Effects 0.000 description 1
- 238000003745 diagnosis Methods 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 238000007667 floating Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 239000011229 interlayer Substances 0.000 description 1
- 238000013139 quantization Methods 0.000 description 1
- 230000008929 regeneration Effects 0.000 description 1
- 238000011069 regeneration method Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N5/00—Computing arrangements using knowledge-based models
- G06N5/04—Inference or reasoning models
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/008—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols involving homomorphic encryption
Abstract
本发明公开一种基于FPGA的全同态加密深度学习推理方法及系统,包括:获取经同态加密算法加密的密文和编码的明文;获取初始深度学习网络的乘法深度、数据处理规模和网络层;根据明密文多项式的项数确定多项式的系数模因子的取值范围,根据乘法深度确定取值个数,根据由误差参数选取的系数模因子确定系数模;根据多项式的项数和系数模以及数据处理规模确定网络层的权重和偏差,以此得到网络层的打包策略;根据打包策略和明文对多项式的项数和系数模的选取进行判断以及对网络层的优化,构建推理模型,以此对密文输出密文推理结果。使用FPGA针对同态加密和深度学习网络结合的整体设计加速器,加快同态加密数据在深度学习网络上的推理速度。
Description
技术领域
本发明涉及同态加密算法技术领域,特别是涉及一种基于FPGA的全同态加密深度学习推理方法及系统。
背景技术
本部分的陈述仅仅是提供了与本发明相关的背景技术信息,不必然构成在先技术。
深度学习(Deep Learning)是一种机器学习(Machine Learning)的方法,而机器学习是人工智能的分支,深度学习是使用包含复杂结构或由多重非线性变换构成的多个处理层(神经网络)的运算,应用在图像识别、语音识别等技术中。以医疗领域为例,深度学习会运用在处理患者的诊断信息对其病情等情况进行预测;从道德和法律的要求下,需要对患者的诊断数据等隐私进行保护,不能让外界和医院方获得患者信息。
而目前深度学习云端或者各种平台的应用,其本身没有考虑对患者医疗数据的隐私性和安全性;传统的加密方案虽然可以提供数据安全性,但是在对数据进行计算时,必须先解密才能计算,无法达到对进行网络推理的这一方保密的效果。
同态加密(Homomorphic Encryption)的主要优势在于可以对加密的数据进行运算得到的运算结果,和对明文进行同样的操作后再结果加密是相同的,可以理解为,在密文空间对密文的操作等同于在明文空间对明文进行相同操作后加密;主要应用在云计算、电子商务、物联网、移动代码等领域;因此,同态加密达到的效果和深度学习网络需要的隐私保护的目的可以契合。然而发明人认为,同态加密技术存在一定的局限,使用同态加密算法加密后的数据通常来说是之前的数千倍;此外,同态加密支持的运算仅支持加法和乘法,目前没有成熟的方案让其支持比较等运算;而且仅乘法就比普通数字的乘法复杂很多,因为为了限制密文增长,在乘法之后还需要进行重现性操作(RelinearizationOperation)等;故而复杂的计算和大量的存储资源占有导致同态加密和深度学习的结合受到限制。
发明内容
为了解决上述问题,本发明提出了一种基于FPGA的全同态加密深度学习推理方法及系统,由于经过同态加密后的密文数据量相较于明文数据量大规模扩大,因此本发明结合同态加密和神经网络,使用FPGA针对同态加密和深度学习网络结合的整体设计加速器,加快同态加密数据在深度学习网络上的推理速度。
为了实现上述目的,本发明采用如下技术方案:
第一方面,本发明提供一种基于FPGA的全同态加密深度学习推理方法,包括:
获取经同态加密算法加密的密文和相对应编码的明文;
获取初始深度学习网络的乘法深度、数据处理规模和网络层;
根据明密文多项式的项数确定多项式的系数模因子的取值范围,根据乘法深度确定取值个数,根据由误差参数选取的系数模因子确定系数模;
根据多项式的项数和系数模以及数据处理规模确定网络层的权重和偏差,以此得到网络层的打包策略;
根据打包策略和编码后的明文对多项式的项数和系数模的选取进行判断,以及对网络层的优化,根据优化后的深度学习网络构建推理模型,以此对加密后的密文输出密文推理结果。
第二方面,本发明提供一种基于同态加密的医疗加密数据推理方法,包括:获取经同态加密算法加密的医疗数据,对加密后的医疗数据采用第一方面所述的方法经推理模型输出密文推理结果。
第三方面,本发明提供一种基于FPGA的全同态加密深度学习推理系统,包括:
第一获取模块,用于获取经同态加密算法加密的密文和相对应编码的明文;
第二获取模块,用于获取初始深度学习网络的乘法深度、数据处理规模和网络层;
同态加密参数确定模块,用于根据明密文多项式的项数确定多项式的系数模因子的取值范围,根据乘法深度确定取值个数,根据由误差参数选取的系数模因子确定系数模;
打包策略确定模块,用于根据多项式的项数和系数模以及数据处理规模确定网络层的权重和偏差,以此得到网络层的打包策略;
网络优化及推理模块,用于根据打包策略和编码后的明文对多项式的项数和系数模的选取进行判断,以及对网络层的优化,根据优化后的深度学习网络构建推理模型,以此对加密后的密文输出密文推理结果。
第四方面,本发明提供一种电子设备,包括存储器和处理器以及存储在存储器上并在处理器上运行的计算机指令,所述计算机指令被处理器运行时,完成第一方面所述的方法。
第五方面,本发明提供一种计算机可读存储介质,用于存储计算机指令,所述计算机指令被处理器执行时,完成第一方面所述的方法。
第六方面,本发明提供一种基于FPGA的全同态加密深度学习推理平台,包括:采用代码系统和HLS工具采用第一方面所述的方法构建推理模型,对加密后的密文采用推理模型输出密文推理结果。
与现有技术相比,本发明的有益效果为:
由于经过同态加密后的密文数据量相较于明文数据量大规模扩大,这对于计算资源、存储资源有着很高的挑战,因此本发明结合同态加密和神经网络应用的特点,设计合理的加速器架构,保证加速器的性能满足各项要求,基于高层次综合实现在FPGA上对支持CKKS同态加密运算的深度学习网络的转换和加速器设计。
本发明对深度学习网络处理并提取其网络特征,根据网络特征选择CKKS同态加密的参数,根据该参数和网络特质制定该网络数据和输入数据的打包策略,确定整体结构的可行性;同时将整体结构用高层次综合工具下的C/C++代码实现,使用高层次综合工具的优化指令等对整体结构进行优化;确定访存顺序,实现在FPGA上对数据加密的深度学习网络进行推理,并提升推理速度。
由于FPGA设备可以对有高计算要求的应用设计特定的计算逻辑和架构,达到对其运算加速的目的,而针对FPGA产生的HLS工具,对于实现硬件设计提供极大便利;所以,本发明采用FPGA针对同态加密和深度学习网络结合的整体设计加速器,加快同态加密数据在深度学习网络上的推理速度。
本发明附加方面的优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
构成本发明的一部分的说明书附图用来提供对本发明的进一步理解,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。
图1为本发明实施例1提供的基于FPGA的全同态加密深度学习推理方法流程图;
图2为本发明实施例1提供的输入网络结构图;
图3为本发明实施例1提供的预处理网络结构图;
图4为本发明实施例1提供的同态加密数据系数qi备选示意图;
图5为本发明实施例3提供的FPGA硬件加速结构布局架构图;
图6为本发明实施例3提供的NTT优化结果图;
图7为本发明实施例3提供的加速效果图。
具体实施方式:
下面结合附图与实施例对本发明做进一步说明。
应该指出,以下详细说明都是示例性的,旨在对本发明提供进一步的说明。除非另有指明,本文使用的所有技术和科学术语具有与本发明所属技术领域的普通技术人员通常理解的相同含义。
需要注意的是,这里所使用的术语仅是为了描述具体实施方式,而非意图限制根据本发明的示例性实施方式。如在这里所使用的,除非上下文另外明确指出,否则单数形式也意图包括复数形式,此外,还应当理解的是,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。
术语解释:
同态加密:基于数学难题的计算复杂性理论的密码学技术;对经过同态加密的数据进行处理得到一个输出,将这一输出进行解密,其结果与用同一方法处理未加密的原始数据得到的输出结果是一样的。
CKKS方案:由Cheon等人于2016年的论文“Homomorphic EncryptionforArithmetic of Approximate Numbers”中提出的近似数运算同态加密方案,又简称为HEAAN。该方案是基于格上的RLWE困难问题设计的加密算法和同态运算,其特点是将同态运算中产生的部分噪声通过rescale技术进行消除,剩余的噪声会影响解密数据的精度,因此该方案是近似数运算的加密方案,适合对浮点数进行编码和加密。
NTT:快速数论变换。
打包(packing):指利用CKKS方案把多个数字编码为明文,对源数据进行分组编码。
FPGA:现场可编程逻辑门阵列(Field Programmable Gate Array,FPGA),以PAL、GAL、CPLD等可编程逻辑器件为技术基础发展而成,作为专用集成电路中的一种半客制电路,既弥补完全客制电路不足,又克服原有可编程逻辑组件门电路数有限的缺点。
FPGA设备可以对有高计算要求的应用设计特定的计算逻辑和架构,达到对其运算加速的目的;而针对FPGA产生的高层次综合(High-level Synthesis,HLS)工具,对于实现硬件设计提供了极大便利。
本发明使用FPGA针对同态加密和深度学习网络结合的整体设计加速器,加快同态加密数据在深度学习网络上的推理速度,由于经过同态加密后的密文数据量相较于明文数据量大规模扩大,这对于计算资源、存储资源有很高的挑战,因此本发明结合同态加密和神经网络应用的特点,设计合理的加速器架构,保证加速器的性能满足各项要求。
以下结合具体实施例说明本发明的技术方案。
实施例1
如图1所示,本实施例提供一种基于FPGA的全同态加密深度学习推理方法,包括:
S1:获取经同态加密算法加密的密文和相对应编码的明文;
S2:获取初始深度学习网络的乘法深度、数据处理规模和网络层;
S3:根据明密文多项式的项数确定多项式的系数模因子的取值范围,根据乘法深度确定取值个数,根据由误差参数选取的系数模因子确定系数模;
S4:根据多项式的项数和系数模以及数据处理规模确定网络层的权重和偏差,以此得到网络层的打包策略;
S5:根据打包策略和编码后的明文对多项式的项数和系数模的选取进行判断,以及对网络层的优化,根据优化后的深度学习网络构建推理模型,以此对加密后的密文输出密文推理结果。
在本实施例中,对初始深度学习网络进行预处理,具体包括:
对初始深度学习网络中的卷积层、池化层等连续的线性层,并且中间层没有偏差特征时,将连续的线性层整合为一个全连接层,对层与层之间连续的乘法合并为一次乘法,使得整合层仅采用一层矩阵乘法即可实现。
本实施例以识别手写体数字的9层网络为例,使用MNIST数据集,该9层网络结构如图2所示,其中第三层到第六层即平均池化层、卷积层、全连接层等都是线性层,将这四层整合为一个全连接层,原本第九层的softmax函数无法用同态加密运算实现,而这一层不影响推理结果,故删除该层,所以预处理后的深度学习网络结构转化为5层,如图3所示。
所述步骤S2中,提取预处理后的初始深度学习网络的结构特征,包括乘法深度、数据处理规模和网络层类型;具体地:
S2-1:乘法深度指一个数字进行连续乘法的次数,根据乘法顺序的先后得出不同的乘法深度。以计算a×b×c×d为例,若先计算a×b,将这一步的结果乘以c,再将其结果乘以d,可以得到乘法深度为3;若分别计算a×b和c×d,此时两个结果的乘法深度都为1,然后计算(a×b)×(c×d),得到乘法深度为2,故本实施例根据此特点评估网络的乘法深度。
S2-2:数据处理规模包括输入数据大小、卷积核大小和层数、全连接层矩阵大小、每层中间输出数据大小等。
S2-3:网络层包括每一层的类型,如卷积层、激活层等。
初始化CKKS方案明文的多项式项数N,根据CKKS同态加密算法的要求,当N为2的幂时,定义N上的2N次割圆域K=Q[X]/(XN+1)和整数环R=Z[X]/(XN+1),令Rq=R/qR,环Rq上的元素表示编码和加密后的数据,因此需要选取参数N和参数q,其中N表示多项式的项数,q表示多项式的系数模。具体包括:
S3-1:由于N为2的幂,在1024,2048,4096,8192,16384或32768中取N值,针对不同的安全参数λ,预先拟定N的值;λ为密码学中定义的安全参数;
S3-2:针对不同的安全参数λ,对q的比特数有上限;本实施例采用的CKKS为RNS-CKKS版本,定义集合C={q0,…qL},令qi指q的因子,根据RNS-CKKS的rescale特性,rescale指CKKS方案的一种运算,用于对明文m和q都减小qi倍,每进行一次rescale,使即q的因子中减少一个qi;
选定一个基q’,令q’/qi∈(1-2η,1+2η),基q’设置为加密的scale参数;设q’的比特数为sbits,根据RNS-CKKS方案,s的最小取值为logN+2;
令qi的比特数也为sbits,qi的选取需要满足两个条件,一是qi≡1(mod 2N);二是qi必须是素数;从大到小选取qi放入集合C中,使qi满足设定的误差参数η,直到C中的qi个数大于乘法深度加2,选取qi后,根据确定系数模。
另外,本实施例根据减少深度学习网络数据量和减少计算复杂度的原则,以及同态加密支持的规则选取合适的同态加密参数;其中同态加密支持的规则指:CKKS方案的提出论文“Homomorphic Encryptionfor Arithmetic of Approximate Numbers”和改进论文RNS-CKKS“A Full RNS Variant ofApproximate Homomorphic Encryption”中涉及的规则。在此不做详述。
S3-3:本实施例评估误差参数η对解密误差的影响,包括一次乘法和多次乘法;其中;
一次乘法和rescale的误差为:
|qL -1·m-q-1·m|=|1-qL -1·q|·|q-1·m|≤2-η·|q-1·m|
多次乘法的误差为:
根据网络中的具体参数可选择对应的一组mi和预设的η,计算多次乘法的误差对于推理结果是否有影响,然后对设定的η进行评估,η不合适时选择其他的值;为了尽可能减少计算复杂度以及减少FPGA的资源占用,在选择N和qi时应尽可能小。
在本实施例中,同样以上述的5层的深度学习网络结构为例,确定乘法深度为5,素数模qi的个数至少为7,根据第一个素数和最后一个素数尽可能大,而中间素数尽可能相等的原则考虑,需要有5个相同大小的素数,拟定N=8192,根据由该参数生成的可选素数表,由图4可知,素数基q’的比特数s至少为20bits;
设定基q’=220=1048576,符合条件的素数qi有1032193、786433、737281、638977、557057;计算出η=1.065,对于一个m=166.48,解密误差的上界为3767,由于误差已经大于明文,因此s=20显然无法用于加密;
根据多次计算和评估,选择s=24,即q’=224=16777216,选择与q’尽可能接近的qi∈{16760833,16580609,16515073,16465921,16384001},得到η=6.455,对于一个m=166.48,解密误差的上界为20.99,对于该网络的推理,该误差基本不影响推理结果;
最终,得到加密参数N=8192,素数比特数为{26,24,24,24,24,24,26},即q的比特数为172bits,满足小于218bits的条件。
在本实施例中,确定网络层的权重和偏差以及制定打包策略;利用CKKS同态加密算法的SIMD特点(SIMD,Single Instruction Multiple Data,指一个指令可以处理多个数据),将多个数值加密到一个密文中,或将多个数值编码到一个明文中;从第一层开始,将输入图片数据和权重打包,计算第一层的输出数据的表示形式,并将其作为第二层的输入,由此设计第二层的权重打包方式,以此类推,直到明确最后一层输出的数据表示形式;数据表示形式指确定某些位置上的数据编码到同一个明文。具体如下:
S4-1:第一个进行矩阵卷积运算的卷积层将与卷积核的其中一个数字相乘的输入矩阵中的所有数字编码到一个明文中;如对于输入矩阵为28*28,卷积核的大小表示为C*H*W,即通道数*高度*宽度为5*5*5的卷积核,卷积核编码为H*W个明文,每个明文包含C组数,进行25次明密文乘法,再将所有的乘积相加,共打包为25个权重明文以及25个输入明文并加密为密文,完成第一层卷积运算。
S4-2:对于之后的卷积层,采用CKKS的旋转运算,将需要相加的数字旋转到同一位置,从而完成卷积运算,
S4-3:对于激活层,由上层传来的打包形式不变。
S4-4:对于全连接层,和上一次输出节点做矩阵乘法,假定全连接层的权重矩阵为a*b,其中a是行数,b是列数,上一层传来的节点数为a,该层的输出为b个节点;有两种打包形式;
打包方式一是:按列打包,每一列作为一个明文和上一层的密文做乘法,通过logb次旋转,即对log b向上取整,将结果中的每个元素相加之后再做加法;
打包方式二是:按行打包,不需要旋转,在乘法之后直接进行加法。对于a>b的全连接层来说,打包方式一的数据相对较少,但是需要计算复杂的旋转操作,旋转操作是CKKS同态加密的一种运算,可以改变密文中隐含的明文数组的元素位置,打包方式二不需要额外的计算,但是数据量相对较大,两种方案的选择取决于上一层输出节点的表示形式。
全连接层确定打包方式后,评估打包后的数据个数,如果个数大于N/2,则:一是选择重新指定打包策略,将无法封装在一个明文中的数据分割成多个明文,但是会导致运算次数的增加;二是选择更大的N,返回到上一个步骤,重新选择加密参数和误差参数;如果个数远小于N/2,则尽可能将多的数据打包在一个明文里。
在本实施例中,以上述的5层的深度学习网络结构为例,打包策略为:
第一层卷积层:输入矩阵为28*28,卷积核的大小表示C*H*W,即通道数*高度*宽度为5*5*5,卷积核编码为H*W个明文,每个明文包含C组数,共打包为25个权重明文以及25个输入明文并加密为密文。
第二层激活层:由上层传来的打包形式不变。
第三层全连接层:将权重按列打包为128个明文,偏差也打包为128个明文;对于每个明密文乘法之后,通过12次旋转达到需要相加的数字,进行12次加法,最终得到128个密文输出。
第四层激活层:由上层传来的打包形式不变。
第五层全连接层:将权重按行打包为128个明文,偏差为1个明文,进行128个明密文乘法,再加偏差明文,最后的结果在打包为4096个数字的最后10个数字中,即这10个数字为该层的输出节点。
根据该打包结构可知,一次打包最长的数字为3920,满足3920<4096,因此选择的N=8192是合适的,完成由深度学习网络到支持CKKS同态加密运算的网络的转化。
在本实施例中,根据打包策略和编码后的明文对多项式的项数和系数模的选取进行判断具体包括:根据打包策略的结果,明确该打包策略是否符合设定的同态加密参数,其依据的规则为同态加密支持的规则。
在更多实施例中,还提供一种基于同态加密的医疗加密数据推理方法,包括:采用实施例1所述的方法,获取经同态加密算法加密的医疗数据,对加密后的医疗数据采用推理模型输出密文推理结果。
实施例2
本实施例提供一种基于FPGA的全同态加密深度学习推理系统,包括:
第一获取模块,用于获取经同态加密算法加密的密文和相对应编码的明文;
第二获取模块,用于获取初始深度学习网络的乘法深度、数据处理规模和网络层;
同态加密参数确定模块,用于根据明密文多项式的项数确定多项式的系数模因子的取值范围,根据乘法深度确定取值个数,根据由误差参数选取的系数模因子确定系数模;
打包策略确定模块,用于根据多项式的项数和系数模以及数据处理规模确定网络层的权重和偏差,以此得到网络层的打包策略;
网络优化及推理模块,用于根据打包策略和编码后的明文对多项式的项数和系数模的选取进行判断,以及对网络层的优化,根据优化后的深度学习网络构建推理模型,以此对加密后的密文输出密文推理结果。
此处需要说明的是,上述模块对应于实施例1中的步骤S1至S5,上述模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例1所公开的内容。需要说明的是,上述模块作为系统的一部分可以在诸如一组计算机可执行指令的计算机系统中执行。
实施例3
根据网络结构、同态加密参数得到对网络模型软件层面的优化设计,然而复杂的访存模式阻碍了直接使用多线程等并行技术进行优化,因此直接将其部署到CPU上并不能完全发挥系统的性能;为了使整个系统的延迟、吞吐量、功耗等性能指标达到最优,本实施例提供一种基于FPGA的全同态加密深度学习推理平台,如图5所示;
该平台采用代码系统和HLS工具采用实施例1所述的基于FPGA的全同态加密深度学习推理方法构建推理模型,实现同态加密数据推理方法,将支持CKKS同态加密的深度学习网络使用高层次综合HLS工具转化为可用FPGA硬件加速的比特流;具体为:采用C/C++实现支持CKKS同态加密的深度学习网络;通过修改代码结构和使用HLS综合工具的Directives,更改数据类型,优化在FPGA上的资源占用和运行时间,设计数据的访存顺序,实现层内计算流水和层之间的计算流水;
其中,Directives指优化指令,例如循环展开(Loop unrolling)、数据流操作(Dataflow)、流水线操作(Pipelining)等;
更改数据类型指使用合适的ap_uint<s>类型,s为数字的长度。
在本实施例中,提出基于FPGA异构计算平台,提供一种专用的加速器架构,针对高层次综合(High-level Synthesis,HLS)工具的特点,利用HLS对算法进行代码重构,将C/C++内核编译为相应的硬件描述语言(Hardware Description Language,HDL)模块,充分运用FPGA的查找表(Look-Up-Table,LUTs)、触发器(Flip-flop,FF)、BRAM、URAM等资源;
由于高层次综合工具并不支持C++语言中的系统调用、动态内存分配等语言特性,所以针对源代码中不兼容高层次综合特性的逻辑,根据量化结果,利用高层次综合工具中的ap_fixed任意精度变量类型对原数据类型进行合理的转换,实现位宽优化,节省有限的BRAM资源,保证代码可以被综合。
在本实施例中,基于FPGA进行平台框架的设计,采用Xilinx ZCU104开发板作为硬件基础,使用高层次综合工具(HLS)对于CKKS同态加法、同态明密文乘法、同态密文乘法、重线性化、rescale、旋转等同态运算进行实现和封装;同时利用数据局部性的特性,减少存储的通信开销,减少系统层面的延迟,完成系统层面的流水线优化。
针对模块内部的流水线并行优化,包括对算法中的for循环展开,同时对数组划分,提高子模块的吞吐量;对for循环进行流水线优化,尽可能保证流水线不出现气泡;针对复杂的访存模式,对相应的数组进行重构,保证划分后的数组访问模式可以被高层次综合工具正确理解,即访存无冲突,从而保证模块的高并行度;
针对该网络的每一层内部形成流水计算,以第一层为例,先传入一对需要做乘法的明密文,在做乘法期间传入下一对明密文,保证始终有明密文对传入且有明密文在做乘法,最后将结果相加保存在BRAM作为下一层的输入。
在本实施例中,将加密后的图片数据或数字数据或医疗文字数据等和编码后的权重偏差数据存储在开发版PS端(即FPGA的处理系统)的DDR中,使用4个AXI HP接口(即FPGA连接PS和PL的接口)用burst模式把密文、权重明文、rootpowers表(NTT使用的参数表)、Kswitch Key(旋转过程使用的密钥)传入PL(即FPGA的可编程逻辑)端存入BRAM。
由于高层次综合工具默认将数组分配给BRAM,而基于同态加密的深度学习神经网络的数据量大,有限的BRAM不足以存放所有的数据,因此需要对存储资源进行合理的分配,结合模块间的数据流特点,充分运用BRAM、URAM(FPGA的存储资源Ultra RAM)、DDR(FPGA的PS端的存储资源)、L2缓存等存储资源;充分利用CPU-FPGA异构平台的优势,FPGA负责处理计算密集型任务,CPU负责控制逻辑的处理,从系统的各个层面实现粗粒度、细粒度流水。
在本实施例中,对NTT(Number Theoretic Transformation,快速数论变换)和原数据类型进行优化,NTT作为重线性和旋转计算的内部运算模块,占据大部分运算时间和资源,对NTT的数据访存和内部并行计算进行优化,其优化结果如图6所示,这大大提高计算速度。
明密文的原数据类型从uint64_t优化为ap_uint<26>,这是由于将深度学习网络转化为同态加密数据时的素数模q_i最大为26bits,此转化提升了计算效率,其优化结果与支持BFV同态加密算法的CryptoNets对比结果如图7所示。
本实施例利用部署在CPU-FPGA异构平台上的同态加密神经网络,对测试样本数据进行加密处理,保证数据的安全性,结合神经网络的结构特点、同态加密参数集的约束条件、FPGA资源约束条件,得到合理的同态加密参数集,从软件层面降低数据的存储量,同时得到合理的加速器架构优化指令,在此基础上进一步优化架构设计,形成最终的高安全性、高吞吐、低延迟、低功耗的神经网络加速器。
在更多实施例中,还提供:
一种电子设备,包括存储器和处理器以及存储在存储器上并在处理器上运行的计算机指令,所述计算机指令被处理器运行时,完成实施例1中所述的方法。为了简洁,在此不再赘述。
应理解,本实施例中,处理器可以是中央处理单元CPU,处理器还可以是其他通用处理器、数字信号处理器DSP、专用集成电路ASIC,现成可编程门阵列FPGA或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
存储器可以包括只读存储器和随机存取存储器,并向处理器提供指令和数据、存储器的一部分还可以包括非易失性随机存储器。例如,存储器还可以存储设备类型的信息。
一种计算机可读存储介质,用于存储计算机指令,所述计算机指令被处理器执行时,完成实施例1中所述的方法。
实施例1中的方法可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器、闪存、只读存储器、可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法的步骤。为避免重复,这里不再详细描述。
本领域普通技术人员可以意识到,结合本实施例描述的各示例的单元即算法步骤,能够以电子硬件或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
以上仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
上述虽然结合附图对本发明的具体实施方式进行了描述,但并非对本发明保护范围的限制,所属领域技术人员应该明白,在本发明的技术方案的基础上,本领域技术人员不需要付出创造性劳动即可做出的各种修改或变形仍在本发明的保护范围以内。
Claims (10)
1.一种基于FPGA的全同态加密深度学习推理方法,其特征在于,包括:
获取经同态加密算法加密的密文和相对应编码的明文;
获取初始深度学习网络的乘法深度、数据处理规模和网络层;
根据明密文多项式的项数确定多项式的系数模因子的取值范围,根据乘法深度确定取值个数,根据由误差参数选取的系数模因子确定系数模;
根据多项式的项数和系数模以及数据处理规模确定网络层的权重和偏差,以此得到网络层的打包策略;
根据打包策略和编码后的明文对多项式的项数和系数模的选取进行判断,以及对网络层的优化,根据优化后的深度学习网络构建推理模型,以此对加密后的密文输出密文推理结果。
2.如权利要求1所述的一种基于FPGA的全同态加密深度学习推理方法,其特征在于,对所述初始深度学习网络进行预处理,包括:对初始深度学习网络中连续的线性层整合为一个全连接层,对层与层之间连续的乘法合并为一次乘法;
或,所述乘法深度为进行连续乘法的次数,根据乘法顺序的先后得到乘法深度;
或,所述数据处理规模包括输入数据大小、卷积核大小和层数、全连接层矩阵大小和每层中间输出数据大小;
或,所述网络层包括卷积层、激活层和全连接层。
3.如权利要求1所述的一种基于FPGA的全同态加密深度学习推理方法,其特征在于,根据多项式的项数确定系数模基的比特数,根据系数模基的比特数设定系数模因子的比特数与系数模基的比特数与相等;
或,所述系数模因子为素数;
或,所述系数模因子的个数大于乘法深度加2。
4.如权利要求1所述的一种基于FPGA的全同态加密深度学习推理方法,其特征在于,根据定义的安全参数预先设定多项式的项数;
或,通过判断系数模因子与系数模基的比值是否满足误差参数方程,以此选择系数模因子;
或,所述误差参数的选择采用一次乘法和多次乘法进行验证。
5.如权利要求1所述的一种基于FPGA的全同态加密深度学习推理方法,其特征在于,所述打包策略为:从第一层网络层开始,将输入数据和网络层的权重打包,计算第一层网络层输出数据的表示形式,并将其作为第二层网络层的输入,由此设计第二层网络层的权重打包方式,以此类推,直到得到最后一层网络层输出数据的表示形式,其中输出数据的表示形式指将确定位置上的数据编码到同一个明文。
6.一种基于同态加密的医疗加密数据推理方法,其特征在于,包括:获取经同态加密算法加密的医疗数据,对加密后的医疗数据采用权利要求1-5任一项所述的方法经推理模型输出密文推理结果。
7.一种基于FPGA的全同态加密深度学习推理系统,其特征在于,包括:
第一获取模块,用于获取经同态加密算法加密的密文和相对应编码的明文;
第二获取模块,用于获取初始深度学习网络的乘法深度、数据处理规模和网络层;
同态加密参数确定模块,用于根据明密文多项式的项数确定多项式的系数模因子的取值范围,根据乘法深度确定取值个数,根据由误差参数选取的系数模因子确定系数模;
打包策略确定模块,用于根据多项式的项数和系数模以及数据处理规模确定网络层的权重和偏差,以此得到网络层的打包策略;
网络优化及推理模块,用于根据打包策略和编码后的明文对多项式的项数和系数模的选取进行判断,以及对网络层的优化,根据优化后的深度学习网络构建推理模型,以此对加密后的密文输出密文推理结果。
8.一种电子设备,其特征在于,包括存储器和处理器以及存储在存储器上并在处理器上运行的计算机指令,所述计算机指令被处理器运行时,完成权利要求1-5任一项所述的方法和/或完成权利要求6所述的方法。
9.一种计算机可读存储介质,其特征在于,用于存储计算机指令,所述计算机指令被处理器执行时,完成权利要求1-5任一项所述的方法和/或完成权利要求6所述的方法。
10.一种基于FPGA的全同态加密深度学习推理平台,其特征在于,包括:采用代码系统和HLS工具采用权利要求1-5任一项所述的方法构建推理模型,对加密后的密文采用推理模型输出密文推理结果。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011442957.3A CN112699384A (zh) | 2020-12-11 | 2020-12-11 | 基于fpga的全同态加密深度学习推理方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011442957.3A CN112699384A (zh) | 2020-12-11 | 2020-12-11 | 基于fpga的全同态加密深度学习推理方法及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112699384A true CN112699384A (zh) | 2021-04-23 |
Family
ID=75507894
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011442957.3A Pending CN112699384A (zh) | 2020-12-11 | 2020-12-11 | 基于fpga的全同态加密深度学习推理方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112699384A (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113255881A (zh) * | 2021-04-27 | 2021-08-13 | 西安交通大学 | Ps与pl协同架构的同态加密神经网络框架与推理方法 |
CN113704833A (zh) * | 2021-08-27 | 2021-11-26 | 西安交通大学 | 一种基于全连接层全同态加密运算的加速器安全分类方法 |
CN114168991A (zh) * | 2022-02-10 | 2022-03-11 | 北京鹰瞳科技发展股份有限公司 | 对加密数据进行处理的方法、电路及相关产品 |
CN114626511A (zh) * | 2022-05-16 | 2022-06-14 | 北京鹰瞳科技发展股份有限公司 | 神经网络的训练方法、推理方法及相关产品 |
US11882206B2 (en) | 2021-08-15 | 2024-01-23 | International Business Machines Corporation | Efficient convolution in an environment that enforces tiles |
WO2024077948A1 (zh) * | 2022-10-13 | 2024-04-18 | 北京沃东天骏信息技术有限公司 | 匿踪查询方法、装置和系统及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106850183A (zh) * | 2017-01-22 | 2017-06-13 | 蒋林智 | 一种全同态加密密文除法实现方法 |
CN110110852A (zh) * | 2019-05-15 | 2019-08-09 | 电科瑞达(成都)科技有限公司 | 一种深度学习网络移植到fpag平台的方法 |
CN110543901A (zh) * | 2019-08-22 | 2019-12-06 | 阿里巴巴集团控股有限公司 | 图像识别方法、装置及设备 |
CN110855421A (zh) * | 2019-10-25 | 2020-02-28 | 高秀芬 | 一种改进的全同态加密方法 |
-
2020
- 2020-12-11 CN CN202011442957.3A patent/CN112699384A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106850183A (zh) * | 2017-01-22 | 2017-06-13 | 蒋林智 | 一种全同态加密密文除法实现方法 |
CN110110852A (zh) * | 2019-05-15 | 2019-08-09 | 电科瑞达(成都)科技有限公司 | 一种深度学习网络移植到fpag平台的方法 |
CN110543901A (zh) * | 2019-08-22 | 2019-12-06 | 阿里巴巴集团控股有限公司 | 图像识别方法、装置及设备 |
CN110855421A (zh) * | 2019-10-25 | 2020-02-28 | 高秀芬 | 一种改进的全同态加密方法 |
Non-Patent Citations (4)
Title |
---|
CHEON JH, HAN K, KIM A, ET AL: "A Full RNS Variant of Approximate Homomorphic Encryption", 《INTERNATIONAL CONFERENCE ON SELECTED AREAS IN CRYPTOGRAPHY》 * |
DOWLIN N,GILAD-BACHRACH R,LAINE K,ET AL: "CryptoNets:Applying Neural Networks to Encrypted Data with High Throughput and Accuracy", 《INTERNATIONAL CONFERENCE ON MACHINE LEARNING》 * |
YANG ZX, HU SH AND CHEN K: "FPGA-Based Hardware Accelerator of Homomorphic Encryption for Efficient Federated Learning", 《ARXIV: CRYPTOGRAPHY AND SECURITY》 * |
崔建京,龙军,闵尔学等: "同态加密在加密机器学习中的应用研究综述", 《计算机科学》 * |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113255881A (zh) * | 2021-04-27 | 2021-08-13 | 西安交通大学 | Ps与pl协同架构的同态加密神经网络框架与推理方法 |
US11882206B2 (en) | 2021-08-15 | 2024-01-23 | International Business Machines Corporation | Efficient convolution in an environment that enforces tiles |
CN113704833A (zh) * | 2021-08-27 | 2021-11-26 | 西安交通大学 | 一种基于全连接层全同态加密运算的加速器安全分类方法 |
CN113704833B (zh) * | 2021-08-27 | 2022-12-09 | 西安交通大学 | 一种基于全连接层全同态加密运算的加速器安全分类方法 |
CN114168991A (zh) * | 2022-02-10 | 2022-03-11 | 北京鹰瞳科技发展股份有限公司 | 对加密数据进行处理的方法、电路及相关产品 |
CN114168991B (zh) * | 2022-02-10 | 2022-05-20 | 北京鹰瞳科技发展股份有限公司 | 对加密数据进行处理的方法、电路及相关产品 |
CN114626511A (zh) * | 2022-05-16 | 2022-06-14 | 北京鹰瞳科技发展股份有限公司 | 神经网络的训练方法、推理方法及相关产品 |
CN114626511B (zh) * | 2022-05-16 | 2023-03-24 | 北京鹰瞳科技发展股份有限公司 | 神经网络的训练方法、推理方法及相关产品 |
WO2024077948A1 (zh) * | 2022-10-13 | 2024-04-18 | 北京沃东天骏信息技术有限公司 | 匿踪查询方法、装置和系统及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112699384A (zh) | 基于fpga的全同态加密深度学习推理方法及系统 | |
Huang et al. | A pure hardware implementation of CRYSTALS-KYBER PQC algorithm through resource reuse | |
CN102356597B (zh) | 用于在网络中安全通信的方法、及其通信设备、网络 | |
US10763890B2 (en) | Computational devices using thermometer coding and scaling networks on unary encoded data | |
US10768898B2 (en) | Efficient modulo calculation | |
CN113660076A (zh) | 基于可重构技术的同态加密系统及同态加密执行方法 | |
CN115622684A (zh) | 基于全同态加密的隐私计算异构加速方法及装置 | |
CN114168991B (zh) | 对加密数据进行处理的方法、电路及相关产品 | |
CN102594566A (zh) | 一种面向无线传感器网络的混沌消息认证码实现方法 | |
Li et al. | A image encryption algorithm based on coexisting multi-attractors in a spherical chaotic system | |
Zhu et al. | FxHENN: FPGA-based acceleration framework for homomorphic encrypted CNN inference | |
CN113472525B (zh) | 基于后量子密码Saber算法的低内存占用密钥生成方法和加解密方法及其系统 | |
CN116366248B (zh) | 基于紧凑指令集扩展的Kyber实现方法及系统 | |
Hu et al. | Efficient homomorphic convolution designs on FPGA for secure inference | |
Belaïd et al. | Dynamic random probing expansion with quasi linear asymptotic complexity | |
Majzoub et al. | MorphoSys reconfigurable hardware for cryptography: the twofish case | |
CN107769911A (zh) | 一种基于Sponge结构的轻量级哈希函数构造方法 | |
Khan et al. | Area–Time Efficient Implementation of NIST Lightweight Hash Functions Targeting IoT Applications | |
Singh et al. | FHEDA: Efficient Circuit Synthesis with Reduced Bootstrapping for Torus FHE | |
Cherukupalli et al. | Hiding data by combining AES cryptography with coverless image steganography using DCGAN: A review | |
KR100954843B1 (ko) | 센서 모트에서의 블록 인덱싱 기반의 타원 곡선 암호 연산 방법, 그 장치 및 이를 기록한 기록 매체 | |
CN115037485B (zh) | 轻量级认证加密算法的实现方法、装置及设备 | |
Kaliswaran et al. | War Optimization Method for Image Encryption Algorithm Based on A Chaotic Bit-Plane Decomposition | |
Yang et al. | FPGA Acceleration of Rotation in Homomorphic Encryption Using Dynamic Data Layout | |
Yang et al. | Bandwidth efficient homomorphic encrypted matrix vector multiplication accelerator on fpga |
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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20210423 |