APP下载

基于同态加密的人脸识别隐私保护方法

2023-09-06李雅硕魏金侠

信息安全研究 2023年9期
关键词:同态密文特征向量

李雅硕 龙 春 魏金侠 李 婧 杨 帆 李 婧

1(中国科学院大学 北京 100049)

2(中国科学院计算机网络信息中心 北京 100083)

3(广州大学计算机科学与网络工程学院 广州 510006)

(liyashuo21@mails.ucas.ac.cn)

随着大数据技术的不断发展,数据以指数级上升的趋势爆炸式增长.随着不断出现的隐私泄露等问题,人们对于个体隐私越来越重视,隐私保护的相关问题越来越迫切需要解决.传统的生物认证技术在提取用户隐私数据以及对隐私数据进行处理的过程中均以明文形式进行,这显然不能满足当下对于用户隐私性的保护要求[1].因此可以将用户隐私保护与同态加密技术相结合,同态加密可在密文状态下进行同态加法和乘法,该特点能满足大数据复杂环境下的安全身份认证技术要求,在当前显得尤为重要.

身份认证是确认用户身份的过程.从该技术提出至今,经历了从软件认证到硬件认证、从单因子认证到多因子认证、从静态认证到动态认证的发展过程[2].目前的认证类型主要分为以下3种[3]:

1) 基于口令的身份认证.该类型基于用户所了解的信息,如口令密码,是目前最简单且最常用的认证方式.用户可以自己设定口令并自己保管,只需输入正确的密码即可认证为合法用户.根据调查显示,绝大多数用户在设置自己的认证口令时会选择具有特殊意义的字符串,如自己的生日、手机号码等.在当前大数据广泛发展的前提下,该认证方式极易被攻破,因此需要安全等级更高的认证方式.

2) 基于标识物的身份认证.该类型基于用户所拥有的物体包含的信息,如U盾、证件等.相较于基于口令认证,该类型需要硬件的协同配合,因此安全等级有了显著提高.但用户需要随身携带标识物,一旦出现遗失、被盗等情况,则会存在被顶替认证的可能性.

3) 基于生物特征的身份认证.该类型基于用户自身所携带的不可更改、更不可伪造的敏感信息,如虹膜、人脸、指纹等.该类型将所采集的用户生物特征存储在较安全的数据库中作为已知模板,登录时经用户同意现场采集生物特征,并将其与事先存储的已知模板进行比较,通过计算现场采集的生物特征与已知模板的相似度,并与预先设定好的阈值进行比较,从而确定用户是否为合法用户.使用该认证方式可以有效避免撞库攻击,用户的使用体验也相对友好.但目前数据库中的模板往往以明文形式进行存储,由于人体的生物特征具有单一性,若数据库受到攻击导致用户的生物特征模板被盗用,同样存在被仿冒认证的安全隐患[4].

为了解决上述基于生物特征的身份认证安全问题,本文提出一种基于同态加密的人脸识别隐私保护方法.该方法使用CKKS全同态加密技术,利用同态加密在密文状态下进行加乘运算后解密的结果与明文状态下进行相同运算的结果相等或相似的特点,在客户端与云服务器之间进行身份认证,其中涉及用户的人脸信息全部以密文形式进行运算.

本文优势包括以下3个方面:

1) 使用CKKS全同态加密技术,使得用户的人脸信息在传输到第三方云服务器以及在第三方云服务器平台进行身份认证的过程中,不因网络攻击或云服务器的非法窥探而泄露.

2) 引入与人脸特征向量维度相同的随机数向量,在其传递到云服务器之前在客户端与人脸特征向量进行哈达玛积运算.云服务器每次可以得到独一无二的人脸特征向量,防止非法用户冒充客户端对云服务器进行重放攻击.

3) 不同于常规同态加密技术追求解密结果与明文完全一致,CKKS是作近似计算.放宽准确性的要求使得CKKS相较其他基于R-LWE困难问题的同态加密方案在细节上有了很大优化,计算效率也有了很大提升[5].

1 相关研究

近年来,国内外相关领域学者对生物认证技术作了大量研究,但多是基于生物认证的准确性而非安全性.目前主流的身份识别方法如FaceNet,SphereFace等已经能够满足认证准确性要求,焦点应更多集中在如何使得身份认证技术更加安全.其中,生物特征模板的安全性是最应当关注的,也是生物识别身份认证系统安全的核心部分[6].

自同态加密技术成为密码学领域的研究热点,国内外学者开始在身份认证过程中使用同态加密技术,并取得了广泛的研究成果.将同态加密与生物特征认证相结合可以解决将生物特征模板数据及其操作委托给第三方的安全问题,提高生物特征认证系统的安全性.2010年,Upmanyu等人[7]提出一种基于RSA算法的乘法同态加密生物特征盲认证方案.同年,Failla等人[8]参考了前人提出的同态加密算法,首次实现了多个生物特征的融合认证.但该方案的认证过程中多个主机之间存在交互过程,认证效率较低,且多次交互过程更容易被黑客恶意拦截.2012年,Hirano等人[9]提出一种基于BGN同态加密方案的生物特征认证协议.2013年Bringer等人[10]通过分析基于加法同态的指纹及人脸认证方法,总结了基于加法同态的生物识别认证.2016年,Abduljabbar等人[11]将同态加密应用于物联网生物特征图像检索.同年,Hahn等人[12]利用同态加密技术在Amazon EC2云上实现了基于指纹的安全身份认证.2017年,Yasuda[13]采用基于理想格和基于R-LWE的2种同态加密技术,实现了高效计算生物敏感信息向量的海明距离.2020年,杨雄等人[15]使用全同态加密算法数据库中保存的人脸特征模板,无须解密人脸特征即可完成身份认证.2021年,Zhu等人[14]将量子同态加密技术应用于多用户量子隐私数据查询,实现了密文搜索功能,避免了外部窃听攻击.2022年,刘尧等人[16]采用BGN同态加密技术,利用第三方认证中心进行密钥分割,实现了门限身份认证方案.

以上研究均使用同态加密技术对用户生物特征进行保护,但一些技术效率较低,同时无法满足保护用户隐私行为的需求.本文基于以上分析对基于生物特征的认证方式进行改进,提出一种基于CKKS全同态加密的人脸信息外包认证计算方案.

2 背景知识

2.1 CKKS全同态加密

定义1.CKKS全同态加密.CKKS全同态加密算法主要包含7个部分:初始化(setup)、密钥生成(key generation)、加密(encryption)、解密(decryption)、加法(addition)、乘法(multiplication)、重缩放(rescaling).

1) 初始化.定义参数λ为安全等级,L代表深度上限.选择一个近似等于2的幂的正整数N,基p>0,p0>0以及一个特殊模数P>0(用于重缩放).定义Q=p0·pL,同时使得N和P·Q满足安全等级λ.这里需要注意的是,CKKS是一个层次型全同态加密,每个密文对应一个深度,一共有L层.最上层中的模数为Q=p0·pL,接着是p0·pL-1,p0·pL-2,…,p0.随着层数的减少,层的模数也在不断减小.这个设定是为了解决乘法中密文增大的问题,密文一旦足够大,计算效率就会下降.用q表示任意层的模数,q是Q的约数.选择一个私钥相关的分布χs、一个误差分布χe以及一个随机分布χr.

3) 加密.随机选择r←χr以及e0,e1←χe.对于明文多项式m∈R,输出一个密文c←r·pk+(m+e0,e1) modQ.

2.2 FaceNet人脸识别模型

FaceNet模型建立了一个从人脸图像到128维欧几里得空间的一一映射.在欧几里得空间中,特征向量的距离可以一一对应人脸的相似度[17].相同的人对应的多张人脸图像,其人脸图像之间的相似度要大于不同人对应的人脸图像之间的相似度,因此可以通过设置欧氏距离阈值来达到人脸识别的效果,该阈值保证来自不同人的不同人脸图像可以被准确区别.设2个n维向量V1(x11,x12,…,x1n)与V2(x21,x22,…,x2n),则欧氏距离公式如下:

(1)

由于CKKS全同态加密并不支持开根操作,因而对FaceNet模型的距离计算稍作改动,将2个人脸图像特征向量之间的欧几里得距离转换为欧几里得平方距离,以方便进行同态运算.

3 方案设计

3.1 总体方案

本文构建了一个使用同态加密算法的人脸识别隐私保护方法,实现了在身份认证外包方案中对客户的人脸信息进行保护,使得服务器在用户进行身份认证的过程中无法获取具体哪位用户正在进行身份认证,从而保护了用户的隐私信息.根据身份认证的基本过程,方案分为注册与认证2个部分.在注册部分,用户向客户端发出注册请求,客户端提取用户的生物特征,使用明文存储在云平台的服务器中;在认证部分,用户向客户端发出认证请求,客户端提取用户的生物特征并进行同态加密,并将云平台中的模板特征向量使用相同公钥进行加密,对待认证的用户生物特征向量与模板特征向量计算欧氏距离平方.

此外,在打包与同态加密相结合的过程中,额外添加了随机数的处理过程.与其他文献不同的是,本文将该随机数作为生物特征向量的一部分,始终伴随着用户的注册与认证过程,可以进一步保护用户的生物特征数据在传输过程中的安全性,同时也可以帮助第三方云服务器抵御冒充客户端的非法重放攻击.

图1为基于同态加密的人脸识别隐私保护方法的整体流程:

图1 基于同态加密的人脸识别隐私保护方法整体流程

3.2 注册过程

在注册过程中,首先,由用户向客户端发起注册请求,客户端收到并响应请求,通过摄像设备提取用户的人脸特征,得到人脸多维特征向量集合A={V1,V2,…,Vn}.然后,对A进行FaceNet人脸特征提取,得到单个128维生物特征向量Q.接着,客户端将提取的生物特征向量Q传递给云服务器,云服务器收到Q后,通过将Q与自身服务器模板M={Q1,Q2,…,Qn}中的特征向量计算欧氏距离,判断其是否在自身服务器模板M中.如果存在,则向客户端返回注册失败;否则,向客户端返回注册成功,并将该Q存储到M中.

3.3 认证过程

在认证过程中,由用户向客户端发起认证请求,客户端收到并响应请求,通过摄像设备提取用户的人脸特征,得到人脸多维特征向量集合A={V1,V2,…,Vn}.对A进行FaceNet人脸特征提取,得到单个128维生物特征向量Q.客户端生成与加密相关的公钥public_key、与解密相关的私钥secret_key以及计算辅助密钥relin_key和gaolois_key.根据公钥生成加密器encryptor,根据私钥生成解密器decryptor以及计算器evaluator.与此同时,云服务器生成128维随机数向量R,R中的每个元素均为随机生成的[0.8,1]之间的浮点数,云服务器将R传递给客户端.

客户端收到云服务器发来的随机数向量R后,将Q与R进行哈达玛积运算得到新的向量N.将N使用公钥进行加密,得到加密向量N_enc.将N_enc与公钥同时发送给云服务器.

云服务器收到N_enc与公钥之后,将其模板M={Q1,Q2,…,Qn}中的所有向量使用该公钥进行加密,得到加密模板M_enc={Q1_enc,Q2_enc,…,Qn_enc}.将M_enc中的所有加密向量分别与N_enc同态计算欧氏距离平方,得到n个密文欧氏距离平方数D_enc={dis(N_enc,Q1_enc),dis(N_enc,Q2_enc),…,dis(N_enc,Qn_enc)}.将D_enc传递给客户端.

客户端收到D_enc后使用私钥解密,得到n个欧氏距离平方数D={dis(N,Q1),dis(N,Q2),…,dis(N,Qn)},找到其中最小的欧氏距离平方数Dmin,将其与预先设定好的阈值τ进行比较.若Dmin<τ,则认证成功;否则认证失败,将认证结果返回给用户.

图2为认证的详细过程:

图2 人脸特征认证过程

4 实验设计及结果

4.1 实验环境

本文使用开源数据集CelebA,该数据集包含超过1万个身份的20万张人脸图像.实验全部在Virtual box Ubuntu 17.1虚拟机上进行,虚拟机配置为4核4GB,宿主机CUP型号为Intel®CoreTMi7-7700HQ.

4.2 实验结果及分析

1) 密文平均计算时间.

在CelebA中随机挑选1张人脸图像进行FaceNet人脸识别,测量得到明文状态下进行1次FaceNet人脸识别平均时间约为0.427ms.然后在密文状态下进行FaceNet人脸识别并计算其平均识别时间.采用文献[15]作为对比方法,文献[15]使用FHE同态加密算法对开源人脸数据集(LFW,LJB-A,LJB-B,CASIA)中的人脸信息进行加密,并使用FaceNet及SphereFace模型进行人脸识别计算.表1为本文方案与文献[15]使用FaceNet模型进行密文人脸识别的平均计算时间对比:

表1 密文人脸识别平均计算时间

从表1可以看出,使用CKKS全同态加密算法进行FaceNet人脸识别,密文平均计算时间约为3.982ms,效率远高于文献[15]使用的FHE加密算法.

2) 认证准确率.

为了验证CKKS全同态加密在人脸识别中的准确率,将实验分为5组,每组分别在数据集中随机选择50,100,200,500,1000张人脸图像.每组实验中,对所有选取出来的人脸图像使用FaceNet模型进行特征提取,将提取出的特征向量进行CKKS全同态加密,然后进行认证,输出认证准确率,即算法能够识别且正确匹配用户信息的数量与进行人脸识别总次数之比.本文对提取出的5组人脸信息特征向量分别以明文和密文形式进行完整的FaceNet人脸识别,计算时间与准确率如表2所示:

表2 明文和密文计算时间与准确率

表3为文献[15]使用FHE同态加密算法在不同编码精度、不同错误接受率的条件下,对人脸信息进行FaceNet人脸识别的准确率:

表3 文献[15]方案在不同编码精度和不同错误接受率下的准确率

由表2和表3可以看出,在密文状态下进行人脸识别计算,2种方案都能达到与明文状态下几乎相同的准确率,但文献[15]使用的FHE同态加密算法的准确率会随着编码精度的提高而大幅下降,但过低的编码精度又会导致密文安全性的降低,因此本文方案更加满足安全性、准确性以及效率要求.

5 安全性分析

在大数据时代,越来越多的企业选择将数据外包,以获得企业不具备的计算能力.本文提出的基于CKKS全同态加密的人脸识别隐私保护方法可以较好地满足生物特征数据的私密性要求.该方法具备以下基本安全特性:

1) 抵御第三方服务器的非法窥探.本文方法中虽然第三方服务器以明文形式存储生物信息模板,但在整个生物信息认证过程中,服务器都以密文形式接收敏感数据,因此服务器无法窥探到具体哪个用户在进行身份认证,从而无法窥探用户的行为隐私.

2) 在不安全的网络环境中抵御监听和窃取中间数据攻击.本文方法中用户和服务器之间传输生物特征数据均以密文形式进行.假设攻击者监听并窃取用户与服务器之间的交互数据,只能获得一些难以破解的密文.因此,本文方法能够在不安全的网络环境中抵御监听和窃取中间数据攻击.

3) 抵御重放攻击.本文方法中,服务器在注册和认证阶段使用2种不同的消息编码方案.在注册阶段,客户端通过FaceNet模型进行人脸生物特征提取,将提取到的特征向量Q以明文形式传递给云平台,云平台将其作为模板存储起来.在认证阶段,客户端将提取到的Q通过CKKS进行同态加密,引入随机数向量R,与Q进行哈达玛积运算后,将得到新向量N传递给云服务器.即使是来自同一个人的Q,因为R的存在,服务器每次收到的N也不相同.假设攻击者窃取到经随机数处理的用户模板信息,并向服务器重复发送试图获得认证,显然不可能成功.因此本文方法可以有效抵御重放攻击.

6 结 语

使用CKKS全同态加密对人脸特征向量进行加密,在计算时间与空间消耗上都有所增加,其中密文状态下进行FaceNet特征提取耗时约为明文状态下的9倍,密文状态下进行距离计算耗时约为明文状态下的10倍.但考虑到实际场景中,几乎不会出现对1个人连续多次进行人脸识别认证,且增加的特征认证时间在人脸识别体系中(包括摄像头进行人脸采集所花费的时间,注册、网络通信耗时等)仅占不到10%[18],且密文状态下进行完整的特征认证时间消耗仍处于毫秒级,因此认为该方法足以满足日常所需.

在准确率方面,使用CKKS全同态加密进行生物特征认证虽然较明文状态略有下降,但仍处于合理范围内,且该方法仅可能使得正确的人脸特征匹配失败,不会使得人脸特征产生错误匹配,因此CKKS带来的略微误差可以忽略不计.

在大数据技术快速发展的时代,个人信息保护受到空前挑战.本文探讨了基于同态加密的人脸识别隐私保护方法,使得云服务器虽然保留注册用户的人脸特征向量,但却无法窥探用户的隐私行为.该方法准确率与在明文状态下进行认证的准确率相差无几,能够满足实际应用的准确率与性能需求.

猜你喜欢

同态密文特征向量
一种针对格基后量子密码的能量侧信道分析框架
二年制职教本科线性代数课程的几何化教学设计——以特征值和特征向量为例
克罗内克积的特征向量
一种支持动态更新的可排名密文搜索方案
基于模糊数学的通信网络密文信息差错恢复
关于半模同态的分解*
拉回和推出的若干注记
一类特殊矩阵特征向量的求法
EXCEL表格计算判断矩阵近似特征向量在AHP法检验上的应用
一种基于LWE的同态加密方案