本发明属于计算机信息安全,尤其涉及一种基于双服务器模型的加密人脸识别方法。
背景技术:
1、随着生物识别技术以及人工智能技术的不断发展,人脸识别由于其独特的非侵犯性、唯一性、普适性和便捷性,被广泛应用于社会治理、企业管理、身份核验、电子商务等领域。人脸识别通常部署在客户机/服务器环境,其中用户将人脸识别服务外包到第三方云服务器,从而减轻本地计算机设备维护成本。然而,基于云计算环境的人脸识别方法面临一些隐私性挑战。由于云服务供应商所提供的云服务器可能是恶意的,人脸数据又十分敏感,因此人脸特征数据若以不加密的方式上传到云端服务器,用户面部图像信息可能会被恶意的云服务器收集和滥用,从而危害用户的信息安全。因此,云计算环境中保护敏感的生物特征数据的识别方法是重要的研究课题。
2、目前主流的人脸识别隐私保护协议主要有同态加密、安全多方计算。同态加密方法计算量大,面对大型数据处理比较慢;安全多方计算方法相对性能更高,然而通信量相对较大,需要客户端和服务器之间频繁通讯交互。因此,本发明采用安全多方计算中的秘密分享技术研究进行提出一种基于双服务器模型的加密人脸识别方法,它既解决同态加密方法计算量大的问题,又解决安全多方计算通信量大的问题。本发明客户端仅需要上传和下载两轮通信,所有计算均在两个高性能的服务器之间进行,因而适用于资源受限的客户端如移动端场景。
技术实现思路
1、本发明的目的在于针对现有技术的不足,提供了一种基于双服务器模型的加密人脸识别方法。
2、本发明的目的是通过以下技术方案来实现的:一种基于双服务器模型的加密人脸识别方法,包括以下步骤:
3、(1)在注册阶段,客户端收集n个用户的人脸图像,通过facenet特征提取器对每一个用户的人脸图像提取n维模板特征向量,得到mi{i=1,...,n},其中,表示第i个用户ei第j维的特征;随后客户端以算术秘密分享形式将每一个模板特征向量mi分别拆分为第一模板特征向量和第二模板特征向量并分别上传储存至服务器s1和服务器s2;第一模板特征向量<mi>1中第j维的特征和第二模板特征向量<mi>2中第j维的特征满足其中,l为一个正整数;
4、(2)在识别阶段,客户端对待测用户的人脸图像通过facenet特征提取器,提取n维查询特征向量随后以算术秘密分享形式将n维查询特征向量m*拆分为第一查询特征向量和第二查询特征向量分别上传储存至服务器s1和服务器s2;第一查询特征向量<m*>1中第j维的特征和第二查询特征向量<m*>2中第j维的特征满足
5、(3)根据服务器s1拥有的第一模板特征向量<mi>1{i=1,...,n}和第一查询特征向量<m*>1以及服务器s2拥有的第二模板特征向量<mi>2{i=1,...,n}和第二查询特征向量<m*>2进行交互计算,计算得到平方欧氏距离(<yi>1{i=1,...,n};<yi>2{i=1,...,n})=dist(<mi>1{i=1,...,n},<m*>1;<mi>2{i=1,...,n},<m*>2);
6、其中,<yi>1{i=1,...,n}为服务器s1计算得到的计算结果,<yi>2{i=1,...,n}为服务器s2计算得到的计算结果;
7、(4)根据服务器s1拥有的计算结果<yi>1{i=1,...,n}以及服务器s2拥有的计算结果<yi>2{i=1,...,n}进行最小平方欧氏距离计算,选出最小值和对应的索引随后根据服务器s1拥有的和服务器s2拥有的与预先设定的阈值t进行比较,服务器s1得到比较结果<z>1并返回给客户端,服务器s2得到比较结果<z>2并返回给客户端;
8、(5)客户端根据<z>1+<z>2mod2l=z得到完整的对比结果z,若z=-1表示待测用户无匹配结果,若z=id表示待测用户与用户eid匹配成功。
9、进一步地,所述步骤(3)具体包括以下子步骤:
10、(3.1)服务器s1根据第一模板特征向量<mi>1{i=1,...,n}和第一查询特征向量<m*>1,进行减法运算,得到计算结果<subi>1{i=1,...,n},计算公式如下:
11、
12、其中,表示计算结果<subi>1第j维的特征;
13、服务器s2根据第二模板特征向量<mi>2{i=1,...,n}和第二查询特征向量<m*>2,进行减法运算,得到计算结果<subi>2{i=1,...,n},计算公式如下:
14、
15、其中,表示计算结果<subi>2第j维的特征;
16、(3.2)可信任的第三方随机生成n个乘法三元组向量:其中,
17、并将分别拆分为和并分别分配给服务器s1和服务器s2,其中,
18、(3.3)服务器s1计算得到和其中,服务器s1随后将和发送给服务器s2;
19、服务器s2计算得到和其中,服务器s2随后将和发送给服务器s1;
20、服务器s1和服务器s2分别计算得到和(fi1,…,fij,…,fin){i=1,...,n},其中,fij=<fij>1+<fij>2;
21、服务器s1计算得到其中,
22、服务器s2计算得到其中,
23、(3.4)服务器s1计算得到计算结果<yi>1{i=1,...,n},计算公式如下:
24、
25、服务器s2计算得到计算结果<yi>2{i=1,...,n},计算公式如下:
26、
27、进一步地,所述步骤(4)具体包括以下子步骤:
28、(4.1)电路转换:根据服务器s1拥有的计算结果<yi>1{i=1,...,n}以及服务器s2拥有的计算结果<yi>2{i=1,...,n}进行交互计算,转换成布尔电路表示,通过布尔加法电路完成,其中,服务器s1得到服务器s2得到
29、(4.2)最小平方欧氏距离计算:使用树的方式两两比较得出最小值和对应的索引,通过极小值电路完成,其中每个树结点都以两个l位值及其索引作为输入,经过一个整数比较器和两个多路复用器,输出最小值和对应的索引;最后,服务器s1得到服务器s2得到
30、(4.3)阈值比较:通过一个比较门得到比较结果位<b>1和<b>2,并根据比较结果位执行一个多路复用器mux(<b>1,<id>1,-1;<b>2,<id>2,-1);若<b>1+<b>2=1,则服务器s1得到比较结果<z>1=<id>1,服务器s2得到比较结果<z>2=<id>2;反之则服务器s1得到比较结果<z>1=<-1>1,服务器s2得到比较结果<z>2=<-1>2;随后服务器s1将比较结果<z>1返回给客户端,服务器s2将比较结果<z>2返回给客户端。
31、本发明的有益效果是:客户端将人脸模板数据秘密分享存储在两个服务器上,因此服务器在注册阶段只能得到加密的人脸模板数据库,无法得知人脸图像的任何信息。在人脸识别阶段,无论是计算平方欧氏距离还是与阈值进行比较,所有计算过程中人脸数据均为秘密分享,两个服务端同样无法得知人脸图像的任何信息。其次,本发明客户端仅需要上传和下载两轮通信,所有计算均在两个高性能的服务器之间进行,因而适用于资源受限的客户端如移动端场景。
1.一种基于双服务器模型的加密人脸识别方法,其特征在于,包括以下步骤:
2.根据权利要求1所述的一种基于双服务器模型的加密人脸识别方法,其特征在于,所述步骤(3)具体包括以下子步骤:
3.根据权利要求2所述的一种基于双服务器模型的加密人脸识别方法,其特征在于,所述步骤(4)具体包括以下子步骤:
