基于函数加密的人脸识别隐私保护研究

2024-05-06 05:55
西藏科技 2024年3期
关键词:内积位数特征向量

康 缘

西安外事学院生物医学工程,西安 710077

人脸识别技术[1]是指用摄像设备采集含有人脸的图像或视频流,并自动在图像中检测和追踪人脸,进而对检测到的人脸进行脸部识别的一系列相关技术。随着科学技术的进步和时代的发展,人脸识别技术被广泛应用于人们的日常生活中,例如,刷脸支付、人脸识别闸机系统等等[2-5]。这一技术的运用在给人们带来便利的同时,也伴随着隐私泄露的风险。

生物特征相对于密码更容易泄露,而且一旦泄露了也无法撤销。密码可以换新的密码,但人体固有的生物特征无法改变。由于个人的生物学数据具有稳定不变性,一旦泄露,相应的风险及危害即不可逆转,也无法有效弥补[6]。人脸数据的泄露,所带来的潜在的安全风险,可能比手机号与账户信息的泄露更为严重。例如,通过“照片活化”工具可将人脸照片修改为执行“眨眨眼、张张嘴、点点头”等操作的人脸验证视频[7]。匹配了身份信息的照片,经过“照片活化”后,能实名注册市面上大多数软件,加上验证码破解方式,不法分子在办理网贷、精准诈骗等方面几乎毫无障碍。因此,除了在法律法规层面规范人脸识别技术的应用[8,9]之外,在技术层面对人脸识别隐私保护的研究也是很有必要的。

本文提出基于内积函数的加密人脸识别方案,整体分为注册和识别两个阶段。注册时,用户初次注册,系统录入提取用户人脸特征向量,并加密存储在后台数据库;识别时,再次录入提取用户人脸特征向量,与数据库人脸做匹配,并给予结果。我们采用内积函数加密方案,对注册阶段的人脸和识别阶段的人脸都进行加密处理,并在解密时只关注加密向量的内积,可以保证不会暴露原始的人脸特征向量,保证了安全。后台数据库存放的也不是人脸向量的明文信息,即使数据被泄露,也无法从中提取出人脸特征,保证系统安全。但是在同时请求次数过多的时候,一般的内积加密也满足不了安全需要。本文在内积函数加密的基础上追求紧的内积加密,可以在有大量请求的同时也能保护系统安全参数等不被泄露。

(1)基于内积函数方法提出加密人脸识别方案,通过加密人脸特征向量或图像,可以防止未经授权的访问和使用。

(2)人脸识别加密可以实现对人脸数据共享的精细控制。加密技术使得数据所有者能够选择性地共享人脸数据,并灵活地指定授权方和访问权限。这种可控共享的特性可以促进人脸数据的有效利用,同时保护数据隐私。

(3)邀请了9名志愿者进行了实验,对每名志愿者人脸认证的性能进行了评估,实验结果表明了基于内积函数加密的人脸识别方案能够有效进行用户识别的同时保护用户隐私。

1 相关工作

针对人脸特征保护的研究,已经有很多相关研究工作。黄文军等[10]提出了一种合适的人脸特征模板保护方案,利用密码学中的Hash 函数实现模板与待测特征信息之间的匹配。陶晓燕等[11]提出了正交邻域保护嵌入算法,降低了人脸识别的误差率。Meden等[12]提出了一种可控人脸去识别技术,平衡了图像质量、身份保护和数据效用。Mai 等[13]提出了一个随机CNN 来生成受保护的人脸生物识别模板,增强了人脸原始图像的安全性。此外,人脸活体认证技术通过用户活动人脸面部器官,防止伪造的人脸图片被合法认证。然而,通过“照片活化”工具可将人脸照片修改为执行“眨眨眼、张张嘴、点点头”等操作的人脸验证视频[7]。匹配了身份信息的照片,经过“照片活化”后,能实名注册市面上大多数软件,加上验证码破解方式,不法分子在办理网贷、精准诈骗等方面几乎毫无障碍。

目前的生物特征模板保护研究主要采用生物特征+密码学的方式[14-16],通过提取生物特征作为原始数据,输入到一个密码学的框架中进行加密处理。因此,问题的关键在于采用何种加密算法。Boneh 等[17]最早提出函数加密的概念。函数加密(Function Encryption,FE)是公钥密码学的一个新热点,不同于传统的公钥加密,函数加密中拥有私钥的用户可以对密文进行计算,得到的是关于明文x 的函数f(x,y),却不知道明文的其他任何信息,有效防止了明文的敏感信息外泄。Abdalla 等[18]人提出了内积函数加密(Inner Product Function Encryption,IPFE),其使用向量y 的密钥解密加密的向量x将只透露,而不会透露其它任何信息。Bishop 等[19]提出了一种函数隐藏内积(Function-Hiding Inner Product Encryption,FHIPE)方案,该方案是一种私钥函数加密方案,采用了非对称双线性映射。杨雄等[20]提出了全同态加密的人脸特征密文认证系统,通过在加密域中进行人脸特征匹配,数据库中保存的是人脸特征模板的同态密文,系统无需解密人脸特征模板就可完成认证,有效保护了人脸特征。

2 系统设计

本文提出基于函数加密的人脸识别系统,大体分为注册阶段和匹配阶段两部分,如图1 所示。注册阶段主要用于用户人脸的录入和加密,得到参考模板ski。用户初次注册,系统录入提取用户人脸特征向量,并加密存储在后台数据库。匹配阶段实时地采集人脸信息,生成生物模板c,计算参考模板与该生物模板的内积,若内积的最大值大于阈值则人脸匹配通过,否则人脸匹配不通过。

图1 基于函数加密的人脸识别系统流程Figure 1 The process of facial recognition system based on function encryption

(1)注册阶段:在加密器中,用给定的参数生成主密钥msk;注册组件录入人脸,用生物特征提取技术提取人脸特征,并转化为向量,记参考模板yi;利用函数加密FE 计算出加密的参考模块ski,保护录入的人脸特征数据,计算方式如下:

在该阶段,用户注册时录入人脸数据用于后续登录验证。

(2)匹配阶段:人脸信息捕捉组件捕捉实时生物特征得到实时生物模块x,用FE 加密实时生物模块为c,匹配组件用c和ski计算隐私保护的内积:

找到其中相似度评分最高的Fi与设定的相似性阈值比较,如果大于阈值,则得到对应用户标识和最高得分i 的索引的匹配,完成登录;若小于等于阈值,则表明与存储的任何一个人脸图像都不匹配,则未能通过验证。

在该方案中,采用内积函数加密方案,对注册阶段的人脸和识别阶段的人脸都进行加密处理,并在解密时只关注加密向量的内积,可以保证不会暴露原始的人脸特征向量,人脸特征以向量形式加密存储在数据库中,人脸识别的精确度依赖于特征向量的提取,保证了人脸数据的安全。此外,采用TensorFlow 的特征提取器,保证了提取特征向量的精度。后台数据库存放的也不是人脸向量的明文信息,即使数据被泄露,也无法从中提取出人脸特征,保证系统安全。但是在同时请求次数过多的时候,一般的内积加密也满足不了安全需要,本文在内积函数加密的基础上追求紧的内积加密,可以在有大量请求的同时也能保护系统安全参数等不被泄露。

3 人脸特征提取与处理

在计算机视觉任务中,人脸识别是非常重要的一环。在本文中,首先需要提取人脸的特征,以便于后续的加密参考模板计算。本系统使用OpenCV 检测图像中的人脸区域,然后截取人脸区域,将其调整为固定大小,并将其转换为特征向量。为了实现后续内积计算相似度,还对向量进行归一化处理,该归一化过程可以通过每个向量的L2 范数来完成,如下式所示:

其中,yi表示特征向量表示归一化后的特征向量,‖ y‖2表示y向量的L2范数,n 表示特征向量的维度得到。归一化后的特征向量可以提升数据准确性,并提高人脸识别的准确度。

此外,在加密做内积运算的过程中,过长的向量长度会影响加密速率,不能较好满足人脸识别的应用场景。而降低向量长度会降低匹配准确率。本文通过主成分分析方法(Principal Component Analysis,PCA)[21]方法进行降维处理,可以保证平衡一定的精度和匹配速率。

由于加密库不支持小数运算,只能支持整数运算。因此需要对归一化的浮点数向量进行缩放,阈值也要做相应缩放。为了保证较高精度,我们对每个元素扩大到乘以2 的20 次方,并向下取整完成转换。

4 加密方案

加密方案首先需要生成加密参数向量以生成公钥和私钥,随后对注册阶段的参考模板y 和匹配阶段的生物模板x加密,保护人脸数据隐私。

4.1 加密参数向量生成

我们先定义参加密向量的长度l,循环群每次操作的位数,以及限制向量元素的上界,输入这些参数初始化方案,生成一个整数模p的环Zp和循环群G。

4.2 公钥和私钥生成

定义向量长度L,定义方案需要的参数k,在Zp中均匀取样,生成(k+1)×(k)的满秩矩阵A,即:

对A 进行如下排列,采用对A 与(k×L)×(k×L)的对角线为1,其余为0 的矩阵进行克罗内克积运算,实现生成把A 按照对角线排列成(k×L)×(k×L)的矩阵A1,即:

在A1 中均匀取样,生成L×(k×(k+1)×L)的随机矩阵W,即:

将W 与A1 矩阵相乘,得到Wa。并将Wa 的每个元素进行转换,利用循环群G,使该位置元素为幂并取模p,即:

对A 进行类似Wa 的处理,把矩阵映射到循环群G上:

最终组成公钥PubKey和私钥SecKey:

4.3 参考模板y加密

输入SecKey、PubKey 和人脸特征向量y,计算Seckey 中W 的转置,并求逆,并进行模P 运算,得到加密的向量k1(负号表示求逆运算):

对y进行模p运算,得到k2:

从而得到加密后的向量key(函数私钥):

4.4 生物模块×加密

输入SecKey、PubKey 和人脸特征向量x,先在Zp均匀取样,生成随机向量s:

接着计算A与s的乘积,并得到c1:

接着,计算c2:

最终得到密文Ct:

4.5 内积运算

输入Ct和key,作如下运算:

并在-LXλYλ到LXλYλ进行穷举搜索,如果找到d,则输出识别通过;否则输出识别未通过。

5 实验评估

5.1 实验设置

本文程序运行在主频2.9GHz 的酷睿i7 处理器,内存16GB 的电脑上。人脸向量维度为1280,并进行归一化处理。相似度阈值设定为0.95。由于加密库仅支持大整数,我们对向量每个元素扩大处理。为了控制原向量精度的损失,经过实验调整,我们设定上界为220。笔者邀请了9名志愿者参与实验,年龄跨度从20岁到55岁,每名志愿者采集100次人脸数据用于认证性能评估。

5.2 实验评估

通过设置不同的加密向量位数计算用户的错误接受率(False Accept Rate,FAR)和错误拒绝率(False Reject Rate,FRR),FAR 表示非同一个人的错误样本被正确识别的比例,FRR 表示同一个人的正确样本被错误拒绝的比例,即:

其中TA 表示合法用户的人脸样本被正确接受的次数,FR 表示合法用户的人脸样本中被错误拒绝的次数,FA表示将其余8位志愿者的人脸数据当作非法用户数据中被错误接受的次数,TR 表示非法用户中被正确拒绝的次数。图2 展示了合法用户的FAR 和FRR 随着加密向量位数的变化,可以看到随着加密向量位数的增加FAR 逐渐降低而FRR 逐渐上升。实验结果证明了通过对人脸数据进行加密可以有效保护用户隐私,降低系统被非合法用户数据认证通过率。同时,合法用户被拒识的概率会随着加密向量位数的增加而增加,用户可以再次进行人脸认证来通过系统识别。相比于FRR,人们更在意FAR,因为FAR 的提升会增加系统被非法数据攻破的概率,威胁系统的安全性。

图2 FAR和FRR与加密向量位数的关系Figure 2 The relationship between FAR and FRR with the number of bits of the encryption vector

对于其他的用户认证系统,由于人脸数据认证方法的差异,加密后的人脸数据不会暴露原始的人脸特征向量,无法应用于其他系统,即使数据被泄露,也无法从中提取出人脸特征,保证了用户认证系统的安全性。如果需要对人脸数据共享,使合法用户也能认证其他系统,可以选择性地共享数据加密密钥,促进人脸数据的有效利用。

5.3 不同用户的识别性能

我们对9 名志愿者计算了FAR 和FRR,设置加密向量位数为32,实验结果如图3 所示。可以看到,不同用户的FAR 和FRR 都很低,平均FAR 为0.099%,平均FRR 为0.22%,证明了系统的认证性能对用户具有鲁棒性,能够有效进行用户识别的同时保护用户隐私。

图3 不同用户的FAR和FRRFigure 3 FAR and FRR for different users

5.4 认证时间

此外,向量位数的设置中,一次加密处理的位数越低,匹配效率越高,但也会导致错误接受率增加。图4 展示了测试中加密向量位数与运行时间的统计,认证时间随着加密向量位数的增加而上升,当位数为32 时认证时间为3.19s,这对于用户人脸认证是可以接受的。局限于硬件水平,内积运算在生成主密钥和主私钥的时候会带来产生大量的内存资源消耗,故处理位数超过100 后,会提示内存不足强制终止运行。我们对向量切割,以损失整体精度来保证部分的高精度和运算效率与较低的内存损耗。

图4 认证时间随着加密向量位数的增加而上升Figure 4 The authentication time increases with the increase in the number of bits of the encryption vector

6 结论

紧密安全的内积函数加密人脸识别是使用加密技术保护人脸识别算法中敏感信息的一种安全形式,本文使用紧密安全的内积函数加密算法对人脸数据进行加密处理,保护了人脸特征和身份信息的安全性,避免了信息泄露风险。同时,本文对人脸识别算法进行评估和分析,证明了该方法的有效性,保证了人脸识别系统的安全性。

猜你喜欢
内积位数特征向量
二年制职教本科线性代数课程的几何化教学设计——以特征值和特征向量为例
克罗内克积的特征向量
五次完全幂的少位数三进制展开
一类特殊矩阵特征向量的求法
EXCEL表格计算判断矩阵近似特征向量在AHP法检验上的应用
基于矩阵的内积函数加密
关于矩阵的Frobenius内积的一个推广
遥感卫星CCD相机量化位数的选择
关于概率内积空间定义的平凡性
“判断整数的位数”的算法分析