一种基于CKKS同态加密与神经网络的安全人脸识别方案
2023-05-07苏昀暄王绪安
苏昀暄, 涂 正, 王绪安*, 林 川
(1. 武警工程大学 网络与信息安全武警部队重点实验室, 陕西 西安 710086; 2. 贵州大学 贵州公共大数据国家重点实验室, 贵州 贵阳 550000)
随着云计算、物联网与大数据等技术的快速发展,推动计算机视觉技术的应用融入人们生活的方方面面,如手机解锁、在线支付、考勤打卡、公共交通过闸等.相对于传统的身份识别方式,人类面部特征具有唯一性,与拥有者唯一绑定,使得人脸识别技术具有较高的安全性[1].然而,在复杂的社会系统框架下,安全措施本身也会带来新的风险.近些年来,发生了多起重大的个人隐私泄露事件,造成了巨大的社会不良影响和严重的经济损失,用户的人身安全和经济利益受到严重威胁.
在现有云环境下的人脸识别系统中,首先对人脸信息进行收集,通过训练好的神经网络模型,对人脸特征数据进行提取,而后将特征数据及响应标签存储至云服务器中.但大多数系统对人脸的特征数据保护不足,在一些实际应用中,有的系统甚至将特征数据以明文形式进行传输,存在用户敏感数据泄露的重大隐患,严重影响到系统的安全性和用户数据的机密性.如何防护人脸特征数据的安全性,保护敏感数据不被泄露,是本文研究的重点.
一个有效的安全方案,是将存储人脸特征的数据库进行加密,将密文数据进行匹配,从而实现识别用户身份.然而,这种方法在实际运用中存在困难.首先,大多数的加密方案不能支持密文域上实现特征数据匹配的基本运算.其次,一般的同态加密方案只能支持有限次的密文域上的基本运算,或者是计算复杂度过高,计算开销大效率偏低.
2017年,Cheon等[2]提出了一种支持近似计算的同态加密方法,它支持加密消息的近似加法与乘法,并可以用于管理明文大小的重新缩放过程.其可以对浮点数进行同态加密以及可观的计算效率一时间成为了密码学界的热点,得到了广泛的应用.依托云服务的人脸识别系统能够给用户提供具有一定安全性、低开销、高效能的人脸识别服务.人脸识别方案的初始阶段,是从不同的场景中检测人脸存在,并通过一些固定的算法对人脸特征信息进行收集、提取,例如几何特征参数、PCA算法、KL算法、奇异值分解法等.人脸识别技术一般是通过对图像提取人脸面部特征信息,将这些特征数据与之前存储在数据库的特征信息进行比较,从而验证身份.而这些存放在数据库中的大量敏感特征信息,对于相关个人而言至关重要.
本文基于CKKS(Cheon-Kim-Kim-Song)即近似同态加密方案提出了一种安全人脸识别方案.在该方案中,通过ResNet50模型[3]对图片进行特征提取,利用CKKS加密方案对图像特征加密,最终利用Arcface Loss函数[4]计算加密特征之间的相关性,获得最终的计算值,通过与预先设好的阈值进行大小比对判断是否为同一张人脸,最终实现密文域中安全人脸识别,避免了用户个人的肖像权和隐私遭受侵犯的情况.
1 相关工作
随着深度学习和大数据技术的快速发展,人工智能得到巨大突破,同时深度学习算法凭借其处理大规模数据的能力推动云计算的发展及平台的建设,云服务器能够提供更大的存储空间以及更强的计算能力,支持复杂的计算方案,共同推动着人脸识别技术的准确性达到更高水平,使其逐渐取代传统的身份认证技术,应用于各个领域之中[5-6].
为了解决用户隐私安全问题,保护数据安全.2012年,Rahulamathavan等[7]提出了LFDA特征提取算法,能够完成加密和不加密面部表情的识别.2017年,Alotaibi等[8]提出了一种基于全同态加密的人脸识别方案,能够无需将特征信息解密,直接在加密域中进行匹配.2018年,Kumar等[9]提出基于密文域上椭圆曲线加密算法的人脸识别方案.2019年,Yang等[10]将圆正交矩阵与基于环上的错误学习同态加密算法相结合,提出了一个实现隐私保护的特征提取方案.Wang等[11]提出的基于AES(advanced encryption standard)密文加密算法的人脸识别方案识别率可达92%.2021年,Arnia等[12]提出了一种基于相位的CSCD人脸识别方法,采用同态滤波进行光度归一化,采用带限相位相关进行图像匹配.
2 预备知识
2.1 ResNet模型
ResNet(残差网络)模型是CNN模型的系列之一,它是由何恺明博士等[2]于2015年提出的.针对在深度学习中,随着网络的加深,出现训练集准确率下降的现象,深度残差网络很好地解决了了这种问题.在ResNet Model中,采用捷径连接(shortcut connections)的方式,直接将输入的X作为输出的初始结果,所训练的目标不再是输出,而是残差F(x).训练的目标就是要将残差结果F(x)的值逼近于0,而随着网络层级的加深,F(x)越趋于0,其准确率也就越高,并最终达到一定数值.其模型如图1所示.
图1 ResNet model
ResNet50就是指需要通过训练来进行更新参数的层数,包括卷积层、全连接层等,其目的就是为了减少参数的数目.例如图2中,首先是利用1*1的卷积将256维的训练层降低到64维,而最后再经过卷积恢复到256维.相比ResNet34,ResNet50所需的计算量更少,其模型如图2所示.
图2 ResNet50 model
2.2 Arcface Loss函数
损失函数通常是用来估算模型的真实值与预测值之间差值的函数,其计算结果是非负的,通常以L(Y,f(x))来表示.损失值越小,则表明模型的鲁棒性就越好.Arcface Loss函数是由Softmax损失函数改进而来的,其利用的是直接在角度空间中最大化分类界限,其边界分类如图3所示.
图3 边界分类
Softmax Loss函数表示如下:
(1)
当bj取0时,对WT与xi做归一化,得:
(4)
所以
(5)
再给夹角乘上一个scale参数s,以及加上一个角度裕角得:
(6)
2.3 CKKS
2017年Chen等提出了一种支持近似计算的同态加密方法.下面主要介绍CKKS同态加密算法的具体流程.
给定安全参数λ, 选择两个整数的幂N.分别在R=[X]/(XN+1)上为密钥、错误学习、加密设置分布χkey,χerr,χenc.对于一个基础整数p和级别数量L,以及一个基础模数q0,设置密文的模数ql=pl·q0(1≤l≤L),对于环此处令k=2,之后随机生成参数PP,输出:pp=(N,χkey,χerr,χenc,L,ql).
1) KeyGen(params)→(pk,sk,evk)
随机生成s←χkey,并设置私钥sk←(1,s).
2) Encrypt(m,pk)→ct
c=r·pk+(m+e0,e1)(modqL)
(7)
3) Decrypt(c,sk)→m
对于同一级别l的密文,解密得到明文结果:
m′=〈c,sk〉(modql)
(8)
4) Add(c,c′)→cadd
对于密文ct,ct′,其密文相加结果为
cadd=c+c′(modql)
(9)
5) Multevk(c,c′)→cmult
对于密文c,c′:
其密文相乘结果为
(12)
由于CKKS加密算法的同态性,使得系统模型中云服务器对密文的计算等同于在明文上的计算,一定程度上保证了用户的隐私安全.
3 系统模型
如图4所示,系统模型由四部分组成,即前端服务平台(FSP)、云存储服务器(CSS)、云计算服务器(CCS)以及本地服务器(Local Server),其中云储存服务器以及云计算服务器均为云平台提供的服务,且为“诚实且好奇”的.
图4 系统模型
1) FSP:主要对用户人脸进行识别,读取用户的身份识别信息(Uid),提取人脸特征并加密,并根据本地服务器所返回的计算值判断用户是否可以通过.
2) CSS:为用户提供存储服务,拥有足够的存储空间来存储用户所上传的图片信息,并返回基于用户身份所产生的身份标识 Uid.
3) CCS:整个模型中最为重要的部分,提供过程计算服务,负责计算两张图片加密特征之间的向量相关性,并返回给本地服务器以解密.
4) Local Server:本地服务器,存有私钥,用于解密CSS所返回的计算值,并传给FSP以判断.
当有新用户注册时,FSP首先将所识别的人脸图像提取特征后加密,并与用户ID上传至CCS,之后CCS将加密后的图片特征以及用户ID存储至CSS,并生成用户唯一的身份标识Uid.
当用户进行人脸识别时,首先是FSP识别用户的身份标识Uid并发送给CSS,同时对图片进行特征提取,将所加密的人脸图像特征发送给CCS.CSS根据用户标识查找相应的加密图片特征并发送给CCS,CCS对FSP发送的图像特征与CSS发送的图像特征之间的向量相关性进行计算,将所得结果发送给Local Server以解密并传给FSP.最终,FSP根据所预设的阈值判断用户是否通过识别.
3.1 安全模型
云计算模型最为明显的问题就是服务器的可信性,即包括FSP和CSS、CCS在内的各种云计算提供的服务都不可信或者是半可信的.以下列出了在该人脸识别过程中可能会出现的安全问题:
1) CSS可能会泄漏图像的密文信息,或者故意泄漏用户标识Uid.
2) CCS中可能受到所计算得到的值会被第三方截取.
3) FSP可能受到攻击丢失公钥或者故意向第三方泄漏密钥信息.
4) 最为关键的是本地服务器的私钥可能遭到泄露.
3.2 系统算法
1) 用户user首先向CSS申请注册,并在FSP中设置阈值d,生成用户的公钥pk,通过ResNet50模型对图像进行特征提取,并由CKKS加密方案加密得到CKKS.Enc(feature,pk),再将加密图片特征以及ID上传至CSS.
2) CSS向CCS传送加密后的图像特征Encpk(feature)以及用户ID.
3) CSS根据用户ID产生身份标识Uid,将Encpk(feature)存储至云服务器,将用户身份标识Uid发送给FSP并转至用户.
诺贝丰以色列技术专家团成员土壤水科学博士Amir Polak在分享中表示,由于面临恶劣的自然环境,以色列自建国开始便大力发展水肥一体化等高效节水的农业种植模式,现已构建起体系化、智能化的水肥一体化种植系统。他表示,经过实地观摩,中国有着良好的种植水平和种植意识,中国农业正高效快速发展,希望中以两国今后继续加强在农业方面的交流与技术分享。
4) 当用户进入人脸识别时,FSP识别用户标识Uid,将Uid与Encpk(feature*)分别发给CSS与CCS.
5) CSS验证身份标识Uid的真实性,之后将服务器中对应的加密图像特征Encpk(feature)发送给CCS.
6) CCS收到FSP与CSS的Encpk(feature*)和Encpk(feature),在Arcface Loss函数下计算两张加密图片特征向量之间的相关性,返回Encpk(d0)给本地服务器以解密得到Decsk(Encpk(d0)).
7) FSP通过Decsk(Encpk(d0))获得d0的值,判断d0与阈值d的大小,如果d0>d,则识别成功,允许用户认证通过.否则识别失败,不允许用户认证通过.
为了进一步分析本文所提方案的效率,方案在IntelCoreTMi7-9750HQ CPU@2.60 GHz/8 GB Ram的环境下,在Windows10操作系统下使用PyCharm2020.3.3x64调用ResNet50和Arcface Loss模型实现人脸检测以及特征信息提取,通过调用tenseal 0.1.4实现CKKS加密方案,在LFW[13]数据集测试系统方案在本台机器上的阈值以及准确率,并测试最优系统参数下整体方案的计算效率.
3.3 安全性分析
在整个系统模型中,最终输出结果Encpk(d0)是在CKKS加密方案下得到的,其安全性可以归于CKKS加密方案的安全性,根据加密算法自身的特性,CSS与CCS均不可能从计算结果中恢复出密钥与原始数据.前端服务器FSP存储着用户的公钥,而在本地服务器中存储着用户的私钥,可以防止其他云中的服务器或者云供应商获得私钥以解密得到图片信息.另外,需要在本地设置安全监督系统,对FSP中存储的密钥信息以及与第三方的通信信息进入实时监督,以防止FSP泄漏密钥信息与最终得到的解密结果.
4 实验测试
本文首先在明文和密文上分别测试系统方案在不同预设阈值d下的准确率.遍历LFW数据集,每次随机选取两张图片进行识别,记录在此阈值下的人脸识别准确率,并绘制ROC曲线.
不同阈值下,方案在明文与密文上的识别准确率见表1所列.可见,LFW数据集上的明文与密文的识别准确率相差不大,当明文识别方案阈值为0.248,密文识别方案阈值为0.251时,明文与密文的识别准确率最高分别为99.374%和99.398%.
表1 识别准确率的测试结果
图5 ROC曲线
在此部分,通过测试CKKS加密方案在不同加密参数下,对单张图片的加密效率,以及包含不同数量图片的个人数据库的构建时间.通过调用tenseal 0.1.4,更改context函数中(poly_modulus_degree,coeff_mod_bit_sizes,scale)3个加密参数的值来实现不同参数下的CKKS加密方案.
首先,挑选8组不同加密参数,记录对单张图片加密的时间,并取30次重复实验的平均运行时间作为最终测试时间.在测试中采取3个单位元作为实验参数,即(Poly_modulus_gegree,Coeff_mod_bit_sizes,Scale),其中8种实验参数分别为:(8 192;43,23,23,23,23,23,43;23);(8 192;30,21,21,21,21,21,21,21,30;21);(16 384;43,23,23,23,23,23,23,23,23,23,43;21);(16 384;43,23,23,23,23,23,23,23,23,23,23,23,43;23);(16 384;43,23,23,23,23,23,23,23,23,23,23,23,23,23,43;23);(32 768;50,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,50;25);(32 768;50,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,50;25);(32 768;25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,50;25).
不同加密参数下,单张图片的加密时间如图6所示.可见,当coeff_mod_bit_sizes位数不变时,加密时间随poly_modulus_degree呈正比关系.当poly_modulus_degree不变时,加密时间随coeff_mod_bit_sizes位数呈正比关系.其中,由于电脑配置原因,在第6、7、8组加密参数下的加密时间过于大,因此没有记录.
图6 不同加密参数的加密效率
最终,本文选取(ploy_modulus_degrdd)=8 192,(coeff_mod_bit_sizes)=(30,21*7,30),scale=21,作为整体方案的最优参数,但还存在某些问题,比如,在对加密图片计算时,整个过程是:先对图片进行特征提取,而后计算密文特征向量的相关性,最终只能得到计算的结果,对所提取的特征并没有了解.虽然方案在明文与密文上的识别率比较高,但密文上计算花销太大.在实际应用中,不能以单个服务器进行计算,这需要庞大的计算能力,因此引入云计算而产生的新的安全问题,则有待解决.
5 实验对比
为了有一个直观的认识,现将该方案同Liu等[14]在2021年基于MTCNN算法与FaceNet算法结合CKKS加密算法而提出的人脸识别加密方案进行对比,两种方案同样在LFW数据集下进行训练.首先对不同阈值下的识别率对比,如图7所示.图7a为本文方案的计算识别率,图7b为Liu等[14]所提方案的计算识别率.本文所设计的方案识别率最高大约为99.5%,而另一种方案识别率最高大约为94.7%,表明本文所设计的方案在识别率上有更大的优势.
图7 方案识别准确率对比
其次,对单张图片的加密时间进行对比,通过选取不同的加密参数,得到对比结果如图8所示.
图8 加密时间对比
由于配置原因,本方案只能测评5组加密参数下的时间,Liu的方案可能测试出7组加密参数下的加密方案.从图8中可以明显看出,本方方案在计算开销上有很大的劣势,以不同的算法来计算则有很大的不同,这也是下步要改进的重点.
6 结论
为了保护云服务器中用户人脸特征隐私信息,同时满足人脸识别需要的准确率和计算性能,本文基于CKKS同态加密方案以及ResNet50 Model、Arcface Loss函数,提出了一种在云服务环境中对密文域的安全人脸识别方案.通过调用tenseal库实现了CKKS同态加密方案,并在LFW数据集上测试方案的识别准确率,绘制出明文与密文方案下的ROC曲线,并通过实验测试确定了最优系统参数,高效安全地实现了云服务器中安全人脸识别系统.
下一步工作中,将继续研究在密文域上训练神经网络,实现对加密图片的特征提取,进一步缩减用户本地的计算开销,并安全高效地实现密文域中人脸识别方案.
致谢:本文得到武警工程大学科研创新团队基金(KYTD201805)和武警工程大学科研骨干基金(KYGG202011)的资助,在此表示感谢.