APP下载

基于全同态加密的安全人脸识别算法*

2021-08-24王璐瑶

网络安全与数据管理 2021年8期
关键词:同态密文人脸

王璐瑶

(浙江理工大学 信息学院,浙江 杭州 310018)

0 引言

人脸识别技术是一种能够根据人的面部轮廓比较和分析图案来唯一地验证或识别人身份的生物特征识别技术[1]。通俗地说,人脸识别技术需要用户的人脸图像与数据库中每一个图像进行识别,从而判断用户的人脸图像是否在数据库里。

目前,人脸识别技术的应用已经十分广泛,如在车站安检、手机解锁及众多实用的应用场地。通常在人脸识别技术中使用客户端-服务器模型,服务器存储用户的人脸图像并提供人脸识别服务,客户端采集用户的人脸图像并请求服务器进行人脸识别。但是,恶意的服务器会收集或滥用用户的人脸图像,导致人脸信息的泄露,如科勒卫浴门店的摄像头恶意收集用户人脸,因此,保护用户人脸隐私的重要性不容忽视[2]。

2009年,Erkin等[3]在客户端-服务器模型下提出基于加法同态加密的保护隐私的人脸识别算法。在该算法中,客户端拥有一个人脸图像,服务器保存人脸模板数据库。客户端将加密的图像发送给服务器,服务器计算加密特征向量与数据库中所有人脸模板之间的欧式距离。然后,服务器与客户端共同执行加密协议,找到最小值。如果最小值小于阈值,则客户端获得索引值,否则,客户端会获得一个特殊符号“┸”。

同年,Sadeghi等[4]研究了在客户端-服务器模型下基于加法同态加密和混淆电路的保护隐私的人脸识别算法。在该算法中,服务器通过加密的人脸图像进行人脸识别,并在客户端和服务器之间运行一个混淆电路协议,运行结束后,客户端输出带有识别结果的索引。

2014年,Chun等[5]研究了在双服务器模型下基于加法同态加密和混淆电路的保护隐私的生物特征识别算法。在该算法中,服务器保存了加密的生物特征模板,保护了生物特征模板的安全性,最后,服务器向客户端返回识别结果。

2019年,Drozdowski等[6]研究了在双服务器模型下基于全同态加密的保护隐私的人脸识别算法。服务器在加密的人脸图像上执行人脸识别,并在某个时候请求拥有私钥的受信任的第三方(a Trusted Third Party,TTP)对密文进行解密。最后,TTP向客户端返回指示识别结果的位0/1。

但是,上述的人脸识别算法都有一些缺点:(1)人脸模板以明文形式存储在服务器中;(2)服务器解密中间结果或知道识别结果位,导致信息的泄露;(3)双服务器容易受到合谋攻击。本文提出了一种基于全同态加密的人脸识别算法,使用单指令多数据 流 (Single Instruction Multiple Data,SIMD)技 术[7]将向量加密为单个密文,不仅提高了计算效率,还可以有效地保护用户人脸图像在服务器端的隐私性,保证在识别过程中,服务器不会学习到用户人脸图像的任何信息。

1 基础知识

1.1 安全模型

本文的模型由两个部分组成:资源受限的客户端和功能强大的服务器,如图1所示。客户端拥有一对密钥,即公钥/私钥(Public Key/Secret Key,PK/SK),主要作用有两点:(1)获取用户的人脸图像并用公钥PK将图片特征向量加密传给服务器;(2)将服务器传送回来的密文用私钥SK解密,在解密结果中查询最小值,并将其与预先设定的阈值t比较,得出识别结果。服务器的主要作用是存储加密的注册模板数据库并提供人脸识别服务。

图1 安全模型

在本模型中,假设客户端是诚实的,服务器是半诚实的[8],即服务器遵循协议规范,但可能会对获取用户面部图像的某些信息感兴趣。还假设客户端与服务器之间存在一个SSL/TLS的安全通道[9],以防止对手获取交换的信息。本文的目标是确保在提供人脸识别服务时,服务器无法学习到用户图像和识别结果的任何信息。

1.2 全同态加密

2009年,Gentry[10]提出第一个全同态加密,全同态加密是公钥加密的一种特殊形式,解决了密文在不可靠不安全环境下的计算难题。全同态加密技术可以在对密文不解密的前提下对密文进行计算,计算结果也以密文形式保存并传递,并且密文解密的结果与明文进行相同计算的结果相同,充分保护了数据的隐私。

全同态加密的一个显著特征是它支持SIMD技术,该技术将含n个元素的向量加密为单个密文。SIMD技术可以实现并行化计算,即在密文域中对向量中n个元素执行加法、减法和乘法操作,仅需要对密文向量进行一次运算。假设 c1=Enc(x1,…,xn),c2=Enc(y1,… ,yn)是 分 别 由 向 量(x1,… ,xn)和 向 量(y1,…,yn)加密而来的,则对于任意的xi,yi∈M,有:

其中 Dec表示解密操作,+、-和×是明文空间 M上的操作。SIMD计算也支持在密文空间上进行旋转操作,假设密文 c=Enc(z1,…,zn)是由向量(z1,…,zn)加密而来的,则对于任意的 l∈N,有:

其中Rotate表示旋转操作。

1.3 图像预处理

深度学习是机器学习中的新研究方向,该学习方法的模式特征是计算机自动学习,极大地增强了学习的效率[11]。Facenet算法采用基于深度学习神经网络的图像映射技术与三元组损失函数去训练神经网络,将人脸图像映射到多维空间,其距离对应于人脸相似性的度量[12]。Facenet最大的创新点是采用了三元组损失函数,即具有相同身份标签的两张图片向量(x,y)的平方欧式距离尽量接近;反之,具有不同身份标签的两张图片向量的距离尽量远离。其中平方欧式距离的定义如下:

其中,x=(x1,x2,…,xn),y=(y1,y2,…,yn)。

Facenet提供了两个预训练模型,分别是基于CASIA-WebFace和VGGFace2人脸训练库。在本文的实验中,使用预训练模型CASIA-WebFace数据库来训练卷积神经网络,并且使用野生人脸数据集(Labled Faces in the Wild,LFW)[13]进行本次实验。注意,本文使用的两个数据集之间是没有交集的。

图2展示了LFW数据集中的一些人脸图片。由于LFW数据集中的图片提供的是250×250像素,而模型中要求输入的像素为 160×160,因此,本文预处理了这些图片,使图片转化为模型中要求的像素,如图 3所示。

图2 LFW原始图片

图3 预处理图片

将预处理过的图片加载到训练好的模型CASIAWebFace中,每一张图片都会产生一个512维的特征向量。

2 基于全同态加密的安全人脸识别算法

本文提出了基于全同态加密的安全人脸识别算法,有效地保护了用户人脸图像的隐私,其基本步骤如下:

(1)预处理:通过Facenet深度学习模型,将原始图像作为输入,输出表示原始图像的n维实值特征向量。

(2)注册阶段:将所有的实值特征向量加密后传给服务器,建立一个注册模板数据库。

(3)识别阶段:计算某个用户的特征向量与注册模板数据库中所有密文之间的平方欧式距离。

(4)查找最小值:在平方欧式距离中找出最小的距离值,并将其与预先设定的阈值进行比较,输出识别结果。

整个算法流程如图4所示。

图4 算法流程图

2.1 注册阶段

客户端通过摄像头采集用户的人脸图像,并将其加载到 Facenet模型中,生成特征向量 yi=(yi1,yi2,…,yin),其中 n 表示特征向量的维数,i=1,2,…,N。客户端使用全同态加密中的SIMD技术加密特征向量,并将加密后的向量传给服务器保存,创建一个注册模板数据库,如下所示:

其中Enc表示用公钥PK加密;N表示注册模板数据库中图片的数量。

2.2 识别阶段

在此阶段,本文需要识别某个用户是否在注册模板数据库中。首先,客户端获取某个用户的人脸图像,将其加载到模型中,生成特征向量 x=(x1,x2,…,xn),并将其用公钥 PK加密为密文 ct*,表示如下:

加密完成后,客户端将密文ct*传给服务器。

2.2.1 平方欧式距离的同态计算

服务器收到密文ct*后,需要将该密文与注册模板数据库中的每一个密文进行平方欧式距离计算,具体步骤如下:

(1)服务器执行(ct*⊖cti)⊗(ct*⊖cti)的运算,获得密文 csi,即:

其中,i=1,2,…,N。

(2)计算密文里各元素的和。SIMD加密是将向量加密为单个密文,因此无法访问密文里的单个元素。本文使用文献[14]提出的通过重复运用旋转和加法操作来完成向量中元素的求和,即:

其中 j=0,1,…,log2n-1。该方法可以使密文向量csi里的每个元素都表示为x和yi的平方欧式距离的值 di,令 cri=csi,则:

(3)合并距离。每个cri里的元素是相同的,为了减少通信量,本文将其合并到一个密文里。在cri中保留第i个元素,其余的元素通过与0相乘清除,即:

将 cdi中元素相加得到密文 cd*,即:

2.2.2 阈值比较

服务器将密文cd*传给客户端,客户端将其解密后,获得明文向量D=(d1,…,dN)。在 D中查找最小值dmin,并将其与预先设定的阈值t进行比较。若dmin<t,则识别成功,即该用户在注册模板数据库中;否则识别失败,如图5所示,MIN表示求最小值,CMP表示比较运算,0/1表示是否识别成功(“0”表示识别成功,“1”表示识别失败)。

图5 阈值比较

3 结果分析

3.1 实验结果

本文中的实验是在具有2.10 GHz和30 GB RAM的Intel(R)Xeon(R)E5-2620 v2 CPU上运行。使用的全同态加密库是HElib1.0.2[15]。在本文中,人脸图片通过Facenet模型输出的特征向量是实数,而本文使用的HElib仅支持整数运算,因此,需要将向量中的实数转换为整数,设置一个常数c=10 000,将其乘以特征向量,使实数扩展为整数。

表1总结了客户端与服务器的计算复杂性。客户端使用了一次全同态加密和一次全同态解密。在服务器端,最耗费时间的是用户的特征向量需要与注册模板数据库中的每个密文进行平方欧式距离的计算,即每进行一次距离计算需要一次乘法、l=log2n次加法和 l=log2n次旋转操作,总共需要进行I次;另外还需要I次乘法进行合并距离的操作。

表1 计算复杂性

表2总结了算法计算一次平方欧式距离的时间。本文选择参数 p=262 963 247,m=9 697,保证了明文槽的数量大于注册模板数据库中的图片数量(本文使用了 I=9 000张图片);L=120保证了本实验所需要的最少乘法深度。其中p是明文模数,m是分圆多项式的次数,L是密文容量。这些参数的选择确保了算法的安全性,使安全级别大于80。

表2 运行时间

3.2 与相关工作的比较

文献[3]和文献[4]提出的算法需要客户端与服务器之间进行多轮交互,增加了客户端的计算负担;并且服务器上注册模板数据库是以明文形式存储的,增加了数据泄露的风险。

文献[5]和文献[6]提出的算法服务器中的注册模板数据库是以密文形式存储的,但是服务器会解密中间结果或知道识别结果位,导致信息的泄露;其次,双服务器易受到合谋攻击,增加了安全隐患。

本文提出的算法有以下优点:首先,服务器中的注册模板数据库是加密的,服务器无法读取明文用户人脸图像,并且也不能获取识别结果;其次,本文使用了SIMD技术将向量加密为单个密文,提高了计算效率;最后,客户端与服务器只有上传和下载数据两轮交互。表3总结了各个算法之间的差异。

表3 和其他算法的比较

3.3 安全性分析

本文假设客户端是诚实的,服务器是半诚实的。本文的数据是以密文的形式存储在服务器中的,且在计算过程中,始终是以密文形式进行计算,确保了数据在服务器端的安全性。

4 结论

本文主要研究了基于全同态加密的人脸识别算法。首先,使用SIMD技术将向量加密为单个密文,节约了存储空间,且SIMD技术支持并行计算,大大提高了计算效率;其次,本文在服务器端执行人脸识别算法,人脸信息始终是以密文的形式存储的,且不会在计算过程中解密中间密文,使服务器不会了解到人脸图像的任何信息,保证了在服务器端图像数据的安全性。但是本文所提出的算法在平方欧式距离的同态计算时耗时较多,有待进一步改进,以提高计算速度。

猜你喜欢

同态密文人脸
一种支持动态更新的可排名密文搜索方案
基于模糊数学的通信网络密文信息差错恢复
有特点的人脸
一起学画人脸
关于半模同态的分解*
拉回和推出的若干注记
τ-内射模的若干性质①
三国漫——人脸解锁
一种基于LWE的同态加密方案
一种基于密文分析的密码识别技术*