一种基于全连接层全同态加密运算的加速器安全分类方法转让专利

申请号 : CN202110997014.5

文献号 : CN113704833B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 杨晨侯佳苏阳杨泽鹏

申请人 : 西安交通大学

摘要 :

本发明公开了一种基于全连接层全同态加密运算的加速器安全分类方法:1)针对全连接最后一层的权值矩阵W,将数据按列映射为m个明文多项式;2)采用基于RLWE的全同态加密实现方案YASHE对映射后的明文多项式进行离线加密,转换为m个密文多项式并存储在加速器内部;3)按照明文标量‑密文多项式的计算方式,在加速器片内将上层神经元输出的明文特征值和密文权值多项式相乘,输出m个密文多项式;4)在片内将m个密文多项式累加,输出分类结果多项式out_c_p;5)全同态加密实现方案YASHE的参数确定。本发明提供的一种基于全连接层全同态加密运算的加速器安全分类方法,使神经网络加速器分类结果以密文形式生成、存储和传输,保护加速器中的分类结果安全。

权利要求 :

1.一种基于全连接层全同态加密运算的加速器安全分类方法,其特征在于,包括以下步骤:

1)选择神经网络全连接最后一层未加密的权值数据矩阵W,将每列数据映射为单个多项式,得到m个明文多项式,即p1,p2,…,pm;

2)采用基于RLWE的全同态加密实现方案YASHE对映射后的明文多项式进行离线加密,转换为m个密文多项式,即{c_p1,c_p2,…,c_pm},将全连接最后一层权值数据以密文形式存储在神经网络加速器内部;

3)采用明文标量‑密文多项式的计算方式,在神经网络加速器片内对上层神经元输出的明文特征值和存储的密文权值多项式进行相乘,输出m个密文多项式结果,即{m_c_p1,m_c_p2,…,m_c_pm};

4)在神经网络加速器片内将m个密文多项式结果累加,输出分类结果多项式out_c_p;

5)基于RLWE的全同态加密实现方案YASHE的参数确定。

2.根据权利要求1所述的一种基于全连接层全同态加密运算的加速器安全分类方法,其特征在于,步骤1)的具体实现方法如下:

101)选择神经网络全连接最后一层应用全同态加密算法在密文域运算;

n k

102)使用不可约多项式f(x)=x +1且次数n=2 ,k为整数,定义一个多项式环则环Rt中的元素表示次数最大为n‑1且其系数在{0,1,…,t‑1}中;

103)将全连接最后一层未加密的权值数据矩阵W编码映射到多项式环Rt,表达为下式:式中, 为全连接最后一层权值数据矩阵W,{p1,p2,…,pm}为权值数据映射到环Rt空间的明文多项式。

3.根据权利要求2所述的一种基于全连接层全同态加密运算的加速器安全分类方法,其特征在于,步骤2)的具体实现方法如下:

201)定义密文多项式环Rq,随机选择环Rq中的元素f′生成私钥,私钥需满足存在逆元,表达为下式:f=[tf′+1]q   (2)

式中,f为私钥,t为明文模数,f′为环Rq中的随机元素,[]q为多项式系数模q运算;

202)使用私钥f生成公钥h,表达为下式:

‑1

h=[tgf ]q   (3)

‑1

式中,h为公钥,t为明文模数,g为属于环Rq的多项式,f 为私钥f的逆元,[]q为多项式系数模q运算;

203)采用基于RLWE的全同态加密实现方案YASHE,其加密运算表达为下式:式中,c为密文多项式,q为密文模数,t为明文模数, 为向下取整,m为明文多项式,e为属于环Rq的噪声多项式,h为公钥,s为属于环Rq的噪声多项式,[]t为多项式系数模t运算,[]q为多项式系数模q运算;

204)使用全同态加密实现方案YASHE的加密运算式,对权值明文多项式进行加密{p1,p2,…,pm},转换为密文多项式{c_p1,c_p2,…,c_pm},并将密文形式的权值数据存储在神经网络加速器内部。

4.根据权利要求3所述的一种基于全连接层全同态加密运算的加速器安全分类方法,其特征在于,步骤3)的具体实现方法如下:

301)全同态加密运算满足明文标量‑密文多项式运算结果解密后等于明文‑明文相乘运算结果,明文标量‑密文多项式表达为下式:c′=ca   (5)

式中,c′为明文和密文相乘后的结果;a为已知的明文常数标量,这本质上在噪声扩大a倍的情况下对am整体进行同态加密,表达为下式:式中,c′为明文和密文相乘后的结果;a为已知的明文常数标量, 为向下取整,m为明文多项式,e为属于环Rq的噪声多项式,h为公钥,s为属于环Rq的噪声多项式,e′为噪声e扩大a倍;s′为噪声s扩大a倍;

302)基于式(5),将上层神经元输出的明文特征值{a1,a2,…,am}分别与已加密的密文权值多项式{c_p1,c_p2,…,c_pm}对应相乘,输出{m_c_p1,m_c_p2,…,m_c_pm},表达为下式:m_c_pi=ai×c_pi(i=1,2,…m)   (7)式中,m_c_pi为明文特征值与密文权值多项式相乘后的结果多项式;ai为上层神经元输出的明文特征数据;c_pi为已加密的权值多项式。

5.根据权利要求4所述的一种基于全连接层全同态加密运算的加速器安全分类方法,其特征在于,步骤4)的具体实现方法如下:

401)全同态加密运算满足密文相加运算结果解密后等于明文相加运算结果,密文相加运算表达为下式:Add(c1,c2)=c1+c2   (8)

式中,Add(c1,c2)为密文多项式相加后的结果,c1和c2分别为两个密文多项式;

402)密文多项式{m_c_p1,m_c_p2,…,m_c_pm}相同位置项的所有系数就是上层单个神经元输出层中单个神经元的相乘结果,将{m_c_p1,m_c_p2,…,m_c‑pm}进行累加则可得到分类结果多项式,表达为下式:式中,out_c_p为分类结果多项式,m_c_pi为密文多项式{m_c_p1,m_c_p2,…,m_c_pm}。

6.根据权利要求5所述的一种基于全连接层全同态加密运算的加速器安全分类方法,其特征在于,步骤5)的具体实现方法如下:

601)基于RLWE的全同态加密实现方案YASHE的参数设置,其中多项式环空间R的维数n取1024大于输出层神经元个数以满足R上元素多项式系数对应神经元输出结果;

28

602)明文模数t取2 +1能够保证量化的数据进行卷积运算后所能达到的最大位宽以避免计算结果溢出造成的运算错误;

92

603)密文模数q取2 +1远大于明文模数,噪声e和s取较小系数的元素多项式避免同态运算过程中噪声增长引起无法解密还原明文信息。

说明书 :

一种基于全连接层全同态加密运算的加速器安全分类方法

技术领域

[0001] 本发明属于硬件安全领域,具体涉及一种基于全连接层全同态加密运算的加速器安全分类方法。

背景技术

[0002] 在医疗、金融、云服务等领域的智能系统中,神经网络加速器计算输出的推理结果往往涉及到个人隐私或商业秘密,因此,防止神经网络加速器内部的关键结果数据被泄露,对于加速器的安全至关重要。虽然新型的全同态加密方案能够直接在密文域完成神经网络的运算过程、得到加密的推理结果,能够防止分类结果泄露和被利用,但是也会造成运算量和存储量的急剧增长,带来巨大的硬件开销和严重的性能退化,无法在神经网络加速器上集成和应用。

发明内容

[0003] 本发明目的是提供一种基于全连接层全同态加密运算的加速器安全分类方法,该方法利用全同态加密算法支持神经网络推理的核心算子——卷积运算的特点,将基于RLWE全同态加密的YASHE实现方案应用于神经网络全连接最后一层的运算执行,以密文形式生成推理的分类结果,实现神经网络加速器的安全分类。
[0004] 本发明采用如下技术方案来实现的:
[0005] 一种基于全连接层全同态加密运算的加速器安全分类方法,包括以下步骤:
[0006] 1)选择神经网络全连接最后一层未加密的权值数据矩阵W,将每列数据映射为单个多项式,得到m个明文多项式,即p1,p2,…,pm;
[0007] 2)采用基于RLWE的全同态加密实现方案YASHE对映射后的明文多项式进行离线加密,转换为m个密文多项式,即{c_p1,c_p2,…,c_pm},将全连接最后一层权值数据以密文形式存储在神经网络加速器内部;
[0008] 3)采用明文标量‑密文多项式的计算方式,在神经网络加速器片内对上层神经元输出的明文特征值和存储的密文权值多项式进行相乘,输出m个密文多项式结果,即{m_c_p1,m_c_p2,…,m_c_pm};
[0009] 4)在神经网络加速器片内将m个密文多项式结果累加,输出分类结果多项式out_c_p;
[0010] 5)基于RLWE的全同态加密实现方案YASHE的参数确定。
[0011] 本发明进一步的改进在于,步骤1)的具体实现方法如下:
[0012] 101)选择神经网络全连接最后一层应用全同态加密算法在密文域运算;
[0013] 102)使用不可约多项式f(x)=xn+1且次数n=2k,k为整数,定义一个多项式环则环Rt中的元素表示次数最大为n‑1且其系数在{0,1,…,t‑1}中;
[0014] 103)将全连接最后一层未加密的权值数据矩阵W编码映射到多项式环Rt,表达为下式:
[0015]
[0016] 式中, 为全连接最后一层权值数据矩阵W,{p1,p2,…,pm}为权值数据映射到环Rt空间的明文多项式。
[0017] 本发明进一步的改进在于,步骤2)的具体实现方法如下:
[0018] 201)定义密文多项式环Rq,随机选择环Rq中的元素f′生成私钥,私钥需满足存在逆元,表达为下式:
[0019] f=[tf′+1]q  (2)
[0020] 式中,f为私钥,t为明文模数,f′为环Rq中的随机元素,[]q为多项式系数模q运算;
[0021] 202)使用私钥f生成公钥h,表达为下式:
[0022] h=[tgf‑1]q  (3)
[0023] 式中,h为公钥,t为明文模数,g为属于环Rq的多项式,f‑1为私钥f的逆元,[]q为多项式系数模q运算;
[0024] 203)采用基于RLWE的全同态加密实现方案YASHE,其加密运算表达为下式:
[0025]
[0026] 式中,c为密文多项式,q为密文模数,t为明文模数, 为向下取整,m为明文多项式,e为属于环Rq的噪声多项式,h为公钥,s为属于环Rq的噪声多项式,[]t为多项式系数模t运算,[]q为多项式系数模q运算;
[0027] 204)使用全同态加密实现方案YASHE的加密运算式,对权值明文多项式进行加密{p1,p2,…,pm},转换为密文多项式{c_p1,c_p2,…,c_pm},并将密文形式的权值数据存储在神经网络加速器内部。
[0028] 本发明进一步的改进在于,步骤3)的具体实现方法如下:
[0029] 301)全同态加密运算满足明文标量‑密文多项式运算结果解密后等于明文‑明文相乘运算结果,明文标量‑密文多项式表达为下式:
[0030] c′=ca  (5)
[0031] 式中,c′为明文和密文相乘后的结果;a为已知的明文常数标量,这本质上在噪声扩大a倍的情况下对am整体进行同态加密,表达为下式:
[0032]
[0033] 式中,c′为明文和密文相乘后的结果;a为已知的明文常数标量, 为向下取整,m为明文多项式,e为属于环Rq的噪声多项式,h为公钥,s为属于环Rq的噪声多项式,e′为噪声e扩大a倍;s′为噪声s扩大a倍;
[0034] 302)基于式(5),将上层神经元输出的明文特征值{a1,a2,…,am}分别与已加密的密文权值多项式{c_p1,c_p2,...,c_pm}对应相乘,输出{m_c_p1,m_c_p2,...,m_c_pm},表达为下式:
[0035] m_c_pi=ai×c_pi(i=1,2,…m)  (7)
[0036] 式中,m_c_pi为明文特征值与密文权值多项式相乘后的结果多项式;ai为上层神经元输出的明文特征数据;c_pi为已加密的权值多项式。
[0037] 本发明进一步的改进在于,步骤4)的具体实现方法如下:
[0038] 401)全同态加密运算满足密文相加运算结果解密后等于明文相加运算结果,密文相加运算表达为下式:
[0039] Add(c1,c2)=c1+c2  (8)
[0040] 式中,Add(c1,c2)为密文多项式相加后的结果,c1和c2分别为两个密文多项式;
[0041] 402)密文多项式{m_c_p1,m_c_p2,…,m_c_pm}相同位置项的所有系数就是上层单个神经元输出层中单个神经元的相乘结果,将{m_c_p1,m_c_p2,…,m_c_pm}进行累加则可得到分类结果多项式,表达为下式:
[0042]
[0043] 式中,out_c_p为分类结果多项式,m_c_pi为密文多项式{m_c_p1,m_c_p2,...,m_c_pm}。
[0044] 本发明进一步的改进在于,步骤5)的具体实现方法如下:
[0045] 601)基于RLWE的全同态加密实现方案YASHE的参数设置,其中多项式环空间R的维数n取1024大于输出层神经元个数以满足R上元素多项式系数对应神经元输出结果;
[0046] 602)明文模数t取228+1能够保证量化的数据进行卷积运算后所能达到的最大位宽以避免计算结果溢出造成的运算错误;
[0047] 603)密文模数q取292+1远大于明文模数,噪声e和s取较小系数的元素多项式避免同态运算过程中噪声增长引起无法解密还原明文信息。
[0048] 本发明至少具有如下有益的技术效果:
[0049] 本发明提出了一种基于全连接层全同态加密运算的加速器安全分类方法,基于RLWE全同态加密的YASHE实现方案应用于神经网络全连接最后一层的运算执行,将全连接最后一层的权值数据使用YASHE全同态加密算法进行离线加密并存储在神经网络加速器内部,使得神经网络加速器的分类结果以密文形式生成、存储和传输,避免神经网络加速器的分类结果被窃取和利用。
[0050] 神经网络加速器作为人工智能系统的决策者,其安全可靠性对系统安全起到至关重要的作用,防止输出环节的隐私结果数据泄露是保护神经网络加速器整体安全的关键一环。本发明从神经网络模型的结构出发,结合全同态加密算法的特性并考虑基于此的安全防护技术在神经网络加速器的硬件集成问题,提出一种基于全同态加密方案YASHE对神经网络模型的全连接层最后一层在密文域进行运算的轻量化安全防护方案,使分类结果以密文形式输出,保证了神经网络加速器的安全分类。本发明既解决了硬件木马和旁路攻击等手段窃取分类结果的问题,也避免了全同态加密整个神经网络带来的硬件实现难题。

附图说明

[0051] 图1为全连接层最后一层结构图。
[0052] 图2为每列明文数据打包映射到多项式环空间的应用图。
[0053] 图3为明文多项式离线加密转换为密文多项式应用图。
[0054] 图4为本发明相比于其它全同态加密神经网络方案的复杂度对比柱状图。

具体实施方式

[0055] 下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。需要说明的是,在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本发明。
[0056] 主要特点:
[0057] 1.基于神经网络模型的特点,结合全同态加密算法的特性并考虑基于此的安全防护技术在神经网络加速器的硬件集成问题,选择神经网络的全连接层最后一层应用全同态加密算法在密文域运算。
[0058] 2.基于对全连接层最后一层应用全同态加密算法在密文域运算,选择YASHE作为全同态加密算法的实现方案。
[0059] 3.采用明文标量‑密文多项式的计算方式完成卷积中的乘法运算,其中上层神经元输出的特征数据为明文形式标量,全连接层最后一层的权值数据为密文多项式。
[0060] 4.对相乘后的多个密文多项式进行累加,以密文多项式形式生成分类结果。
[0061] 主要优点:
[0062] 1.选择神经网络的全连接层最后一层应用全同态加密算法,在安全输出分类结果的同时避免了全同态加密整个神经网络带来的硬件实现难题。
[0063] 2.选择YASHE作为全同态加密算法的实现方案,只需要一个多项式表示密文和密钥,能够减少用向量表示密文和密钥引起的较大计算操作数和存储容量,也能够避免同态乘法运算中对密文和密钥进行张量计算造成的密文和密钥维数扩张。
[0064] 3.采用明文标量‑密文多项式相乘的计算方式,简化运算操作,避免了同态乘法中的高复杂度的密文多项式‑密文多项式相乘运算引起的高额计算资源开销。
[0065] 4.分类结果以密文多项式的形式输出,使加速器片内不存在以任何明文形式生成、存储和传输分类结果,保护了分类结果安全。
[0066] 本发明基于神经网络的全连接层最后一层,其结构如图1。a1,a2…am为上层神经元的输出数据,z1,z2…zk为输出层神经元的分类结果,输出层神经元与上层神经元全部连接,其连接权值为W,全连接层的核心操作是矩阵与向量乘积,可以表达为下式:
[0067] Z=Wa  (1)
[0068] 式中,Z为[z1,z2…zk]T,W为权值矩阵,a为[a1,a2…am]T,可以写成如下矩阵形式:
[0069]
[0070] 展开为下式:
[0071]
[0072] 通过这种计算方式,整合前面卷积层或者池化层中具有类别区分性的局部信息,起到整个神经网络分类器的作用,给出对数据信息推理的决策结果。
[0073] 本发明提出的一种基于全同态加密方案YASHE对神经网络模型的全连接层最后一层在密文域进行运算的轻量化安全防护方案,使分类结果以密文形式输出。具体方法如下:
[0074] 1)明文权值数据映射到多项式环空间
[0075] YASHE全同态加密算法实现方案是在多项式环 空间进行,其环上元素都是n‑1阶多项式,因此需要将明文数据映射到n‑1阶多项式环上。如果将每个数据映射为单个多项式,则对于明文空间Rt的多项式中只有单个数据所在的那一项系数不为0,而其他项没有实际应用造成一定的浪费,并且单个数据映射为一个n‑1阶多项式意味着密态卷2
积运算的计算复杂度扩大n倍,即从明文域计算复杂度O(n)变为密文域复杂度O(n)。这样的数据映射方式引起的计算复杂度提升,导致了计算资源的巨大消耗和计算性能的严重损失。为了解决这一问题,该方案采用数据打包的计算方式,具体实现方法如图2所示,选择一个n‑1(n≥k)阶多项式,将权值矩阵W中的每列明文数据映射到明文多项式空间Rt,得到m个多项式,即{p1,p2…pm}。
[0076] 2)明文多项式离线加密转换成密文多项式
[0077] 权值数据矩阵W是在神经网络模型训练阶段生成的,因此这些数据是已知的参数,可以对这些数据进行离线加密,只需将加密后的密文数据保存在片内而不需要片内进行加密。如图3所示,通过加密算式将明文多项式{p1,p2…pm}逐个加密为密文多项式{c_p1,c_p2,…,c_pm},完成明文空间Rt到密文空间Rq的转换。这种数据离线加密存储的好处在于不仅节省了片内加密运算操作,而且避免了片内密钥管理的安全问题。
[0078] 3)特征数据明文标量‑权值数据密文多项式相乘
[0079] 在完成数据映射和转换后,接下来需要进行卷积运算中的乘法计算。为了保证高效和准确的同态乘法运算,采用明文标量‑密文多项式相乘的计算方式,即上层神经元输出的特征数据明文标量和已加密的权值密文多项式对应相乘,输出密文多项式,可以表达为下式:
[0080] m_c_pi=ai×c_pi(i=1,2,…m)  (4)
[0081] 式中,m_c_pi为明文特征值与密文权值多项式相乘后的结果多项式;ai为特征数据;c_pi为已加密的权值多项式,可以展开为如下形式:
[0082]
[0083] 式中,w′为已加密的权值多项式系数。
[0084] 4)密文多项式同态加输出分类结果密文多项式
[0085] 在完成卷积中的乘法运算后,需要进行卷积中的加和运算。从式(5)可以看出,{m_c_p1,m_c_p2,…,m_c_pm}中相同位置项的所有系数就是上层单个神经元与输出层中单个神经元的相乘结果,并且这个结果是以密文形式表达,因此要计算最终的分类结果,需要将这m个多项式累加,可以表达为下式:
[0086]
[0087] 式中,out_c_p为最终的分类结果密文多项式,将多项式out_c_p的表达形式具体展开:
[0088]
[0089] 式中, 为明文zk对应的密文数据。
[0090] 本发明的性能测试:
[0091] 表1 YASHE全同态加密算法应用于全连接层最后一层计算的复杂度
[0092]
[0093] 本发明提出将YASHE全同态加密算法应用于全连接层最后一层计算,是一种保护分类结果安全的轻量化实现方案,其相比于其它应用全同态加密算法进行安全推理具有显著的优势。表1列举了YASHE全同态加密算法应用于全连接层最后一层计算的复杂度,可以看出,该保护方案一方面在运算操作中不含有高复杂度密文多项式‑密文多项式同态相乘运算,仅包含4096次明文标量‑密文多项式同态乘法和4095次密文多项式‑密文多项式同态加法;另一方面只对全连接层最后一层的权值进行加密转化为密文存储,包含较小的密文数据。图4表明了本发明所提的轻量化防护方案相比于其它全同态加密神经网络方案的复杂度大幅下降,相比于其它的应用全同态加密算法进行安全推理的方案,包括CryptoNets、CryptoDL、Faster CryptoNets、HCNN,密文多项式‑密文多项式同态加法操作分别下降了98.7%、99.9%、89.3%、91.1%,明文标量‑密文多项式同态乘法操作分别下降了98.7%、
99.9%、83.0%、91.1%,密文参数大小分别下降了87.4%、88.7%、88.7%、95.4%。
[0094] 实施例
[0095] 本发明的YASHE全同态加密算法应用于全连接层最后一层计算,以已有的神经网络加速器推理AlexNet模型为例,加速器将数据量化为8位定点数执行一轮卷积运算,AlexNet最后一层包含1000个输出层神经元,需要完成1次同态乘法运算和4095次同态加法运算。本发明是通过使用Python语言对算法应用于全连接层最后一层计算过程进行描述,进行正确性验证。
[0096] 使用Python语言,构造函数随机生成4096组随机数作为权值数据矩阵W,其中每组4095
包含1024个8位随机数。在生成权值参数后,使用私钥f=‑x 对权值数据矩阵W进行加密,得到密文多项式集合{c_p1,c_p2,…,c_pm}。按照式(4)和式(6)描述的计算过程在密文域进行卷积计算,从而输出密文分类结果out_c_p。使用由私钥f生成的公钥h对密文分类结果out_c_p进行解密,并与在不适用全同态加密方法的全连接层最后一层计算结果进行比对,其比较结果一致性说明了本发明的YASHE全同态加密算法应用于全连接层最后一层计算保护分类结果的有效性。
[0097] 虽然,上文中已经用一般性说明及具体实施方案对本发明作了详尽的描述,但在本发明基础上,可以对之作一些修改或改进,这对本领域技术人员而言是显而易见的。因此,在不偏离本发明精神的基础上所做的这些修改或改进,均属于本发明要求保护的范围。