一种基于深度学习和同态加密的安全高效的人脸识别方法与流程

文档序号:16504954发布日期:2019-01-05 08:58阅读:1884来源:国知局
一种基于深度学习和同态加密的安全高效的人脸识别方法与流程

本发明属于密码学、计算机视觉、人脸识别、图像盲运算领域,具体地说是一种基于深度学习(dnn)和同态加密的安全高效的人脸识别方法。



背景技术:

近年来随着人脸识别技术的逐渐成熟,人脸识别技术的应用越来越广泛。而随着云计算的出现,改变了传统人脸识别方案,大量的人脸图像数据开始存储在云端,并且人脸识别程序也被部署到云端。显而易见,这种方案可以支持大规模的视频监控应用,因而可以应用在实际生活中很多方面。最典型的应用就是嫌疑人搜索。可以在一些公共重要场所,例如火车站,汽车站等,安装专用摄像头,作为客户端用来获取人脸图像,而云上服务端在特定数据库中进行人脸识别。

在看到这种方案巨大的实际应用意义的同时,也应该注意到它的弊端——对人们隐私的侵犯。在嫌疑人搜索的过程中将嫌疑人的人脸信息直接发送到云上服务器进行人脸识别显然是不合适的,这样不利于隐私保护。另外,需要防止数据库中的数据被大众获取。因为这些人资料的泄露很可能给公众带来安全隐患。

为了解决这类问题,更好的保护隐私安全,早在2010年,osadchy就提出scifi(securecomputation)方案。这个方案采用安全的人脸识别,从而达到隐私保护的目的。这是安全人脸识别的开端。后来,luong等人提出了根据重建碎片人脸攻击scifi方案的方法,使得scifi方案不再安全。而近几年,刘妍等人提出了两种新的安全人脸识别方案,一种基于高效隐秘海明距离,另外一种基于稀疏表示。她们给出了一种新型的安全的人脸识别的思想,可以使得客户端和云端服务端之间不能获取对方信息,从而保护隐私安全。

近年来,随着卷积神经网络技术的迅速发展,cnn已经应用到越来越多的领域,包括自然语言处理,图像处理,无人驾驶等等。很多实验表明cnn在人脸图像特征提取中具有很好的效果。2017年,马玉坤等人发表在ieee上的一篇论文中提出了一种安全的人脸认证方案,这种方案是基于卷积神经网络和同态加密的,与以往方案相比,提高了人脸认证的准确率和效率。因此,将cnn引入人脸识别方法中,设计出一种基于深度学习和同态加密的安全高效的人脸识别方法。该方法与之前的方法对比在保证安全人脸识别基础上提高了识别的正确率和效率。



技术实现要素:

本发明要解决技术问题为:克服现有技术的不足,提供一种基于深度学习(dnn)和同态加密的安全高效的人脸识别方法,该方法能够在保护隐私安全的情况下,降低人脸特征数据的体积,有效提高人脸识别的效率和正确率。

本发明采用的技术方案为:一种基于深度学习(dnn)和同态加密的安全高效的人脸识别方法,实现步骤如下:

(1)一个或者多个客户端获取人脸图像然后对获取的人脸图像提取特征数据w;

(2)客户端将提取出的特征数据进行加密,得到加密的特征数据epk(w)后,客户端将加密后的特征数据epk(w)以及想要查询的对象索引值i发送给云端的服务器;

(3)对应的云端服务器收到客户端发送来的加密的特征数据后,无需解密这些特征数据,在密文状态下利用高效隐秘海明距离计算公式与云端数据库中的存储好的人脸特征数据计算密文海明距离epk(dh),给密文的海明距离加上对应的随机数得到数据epk(dh+r),再发送给客户端,其中dh表示客服端特征数据在未加密状态下与云端数据库中的人脸特征数据的海明距离,r表示对应随机数;

(4)客户端接收到已经加上随机数的密文海明距离后进行解密,然后将解密结果dh+r发送给云端服务器;

(5)云端服务器收到epk(dh+r)解密得出的海明距离dh与随机数r的和dh+r以后利用ot协议将这个数据映射成一组0,1向量的输出值x0···x128,然后将这组输出发送给客户端;

(6)客户端接收数据,得到最后与终端云上数据库中对应人脸的识别结果。

其中步骤(1)中,对获取的人脸图像提取特征数据w采取以下步骤:

(11)客户端对获取的人脸图像采用inception-resnet-v2网络来进行人脸特征提取,并在后面接一个特征归一化层;

(12)然后将人脸图像中头像的特征都映射到一个球面上,即将人脸特征都嵌入到128维超球面上,来降低由于人脸的图像环境差异带来的一些问题;

(13)最后采用triplet_loss作为损失函数,加上随机梯(sdg,stochasticgradientdescent)进行反向传播,得到128维的特征数据。

(14)对128维的特征数据做二值化操作,即将大于0的数据置为1,其余数据置为0。最后得到128bit的特征数据。

其中所述步骤(2)中加密特征数据采取以下步骤:

(21)利用paillier加密算法加密特征数据。首先需要生成密钥。随机选择两个大素数p和q,计算n=pq,e(n)=lcm(p-1,q-1),g为模n2的乘法群,即随机选择g∈g,使得g满足gcd(l(gemodn2),n)=1,则该加密方案的公钥为(g,n),私钥为e(n),明文取值域为zn,即范围为m<n。

(22)然后对特征数据进行加密。设被加密的数据为m∈zn随机选择数则m加密后的密文为:c=gmrnmodn2。其中c为最后加密得到的密文,(g,n)为公钥,m为需要加密的特征数据,r为随机数。

其中所述步骤(3)中,对加密得到的特征数据epk(w)计算密文海明距离采取以下步骤:

(31)采用一个高效隐秘海明距离计算公式计算密文海明距离。具体公式为:epk(dh)=epk(j+∑wi-∑wj)=epk(j)+hepk(∑wi)-hepk(∑wj)。

公式中的i和j分别表示服务器端向量v中0和1的索引,对于提取的128bit的特征向量来说,j为服务器端向量v中1的个数,是小于等于128,wi与wj为客户端中的向量值,+h代表乘运算,-h代表减运算;

(32)首先计算epk(j),即在服务器端对云上数据库中所有数据做一个预处理,得到云端数据库中每个向量v对应的j,并将j存储在服务器端,计算epk(j)时,直接调用预处理得到的j直接加密;

(33)计算epk(∑wi)和epk(∑wj),最后计算epk(dh)=epk(j)+hepk(∑wj)-h(wj)得到结果加上随机数得到epk(dh+r)。上述i和j分别表示服务器端向量v中0和1的索引,对于提取的128bit的特征向量来说,j为服务器端向量v中1的个数,是小于等于128,wi与wj为客户端中的向量值,+h代表乘运算,-h代表减运算;

其中所述步骤(4)中,解密采取以下步骤:

(41)解密方案:c为密文,m为解密得出的明文,e为私钥。

所述步骤(2)引入了并行计算的方法,并行加密客户端的3个明文特征数据,得到的加密结果与原来加密1个明文特征数据类似,然后计算密文海明距离(与非并行加密得到的密文计算海明距离方法一样),该密文海明距离实际上包含了3个海明距离,然后直接解密,解密后将解密的数据拆分成为3个海明距离,并行计算采用以下步骤:

(51)用9个bit来表示原来的一个明文特征数据,明文数据放在9个bit中的最低位,其余位补上0,并行加密3个人脸图像的明文特征数据,一共需要27个bit,将128个27bit的明文数据利用paillier加密,然后发送到服务器上;

(52)服务器上存储的云端数据库中每个人脸特征数据向量v中1的个数j也需要按照这种方式转变为27bit的数据,然后加密;

(53)根据这些加密后的数据做进一步的处理,求得加密的海明距离;

(54)密文海明距离解密得到的结果为3个海明距离与对应随机数和的拼接数据,每9bit数据去掉最高位的溢出位,就为对应的一个海明距离与其随机数的和。

本发明的原理在于:

根据目前安全人脸识别方案的缺陷和不足,可以总结出设计基于深度神经网络(dnn)和同态加密的安全高效的人脸识别方法的一些规则,如下所述:

(1)为了保护信息安全,整个人脸识别工作必须在一个隐私保护的方式下完成。即云端和终端都不会获得额外的信息。具体而言,客户端不会获得除最后匹配结果的任何信息,云端不会获得任何信息。为实现这个目的,要寻找一个方法,在客户端传来的密文特征数据上直接计算海明距离,而不需要解密;

(2)为了提高识别的效率,需要降低计算量。而为了降低计算量,可以降低人脸特征数据的体积。要找到一个提取人脸特征数据的方法,尽可能降低人脸特征数据的体积;

(3)为了提高识别的效率,需要提高计算的速度。每个图像的特征数据进行加密、计算密文海明距离、解密密文海明距离的过程是一致的,所以需要设计一个并行计算的方案,并行加密特征数据、计算密文海明距离、解密密文海明距离,达到高效目的;

根据上述规则,本发明利用深度神经网络(dnn)、同态加密算法——paillier加密算法、高效隐秘海明距离计算公式、并行计算方案,设计了一种新的安全高效的人脸识别方案。整个方案主要分为两部分:客户端和云上服务端。客户端负责获取人脸的图像,利用深度神经网络inception-resnet-v2提取得到图片的128bit的人脸特征数据,再将提取出的特征数据利用paillier加密算法进行加密,最后将加密后的特征数据发送给服务器。服务器接收到客户端发送的加密的特征数据后,与数据库中的指定的人脸特征数据利用高效隐秘海明距离公式进行密文海明距离的计算,最终将是否匹配的结果利用ot协议映射成一组0,1向量发送给给客户端。在加密特征数据、计算密文海明距离、解密密文海明距离的过程中引入并行计算的方案,将数据并行处理,大大提高了识别的效率,达到高效的目的。云端即服务器端不会获得客户端的任何信息,而客户端也不会获得任何服务器端数据库中的信息,只会得到最后的匹配结果,达到保护隐私安全的目的。实验分析表明基于深度神经网络和同态加密的安全高效人脸识别方案,适合实际的人脸识别应用。

本发明与现有的技术相比,其优势在于:

(1)在人脸特征数据提取部分,使用深度神经网络inception-resnet-v2,并将提取出的128维的特征数据二值化,大大降低了人脸特征数据的数据量,有利于简化后续的计算。

(2)在计算海明距离部分,引用高效隐秘海明距离计算,不需要解密客户端传来的密文,直接计算密文海明距离,并对服务器上数据库中的数据做了预处理,在计算中可以直接使用,提高了整体计算效率。

(3)根据每次特征数据加密、计算密文海明距离、解密密文海明距离过程的一致性,引入并行计算的方案,将并行进行3个特征数据加密,对应并行计算密文海明距离和解密密文海明距离。这样大大提高了整个方案的效率。

附图说明

图1是本发明应用场景图;

图2是本发明方案流程图。

具体实施方式:

下面结合附图和具体实施方式对本发明作进一步详细的说明。

整体流程:

客户端拥有加密的公钥和解密的私钥,以及想要查找服务器中数据的索引i。服务器端有加密的公钥以及人脸识别的阈值t。通过实验为整个数据库中的人脸设定了一个统一的阈值。在图2中i和j分别表示服务器端向量v中0和1的索引,对于提取的128bit的特征向量来说,j为服务器端向量v中1的个数,是小于等于128,wi与wj为客户端中的向量值,+h代表乘运算,-h代表减运算,dh为海明距离,r为随机数,xk为对应的0,1向量;

客户端:

客户端获取人脸图像后,将人脸图像利用深度神经网络inception-resnet-v2提取特征后,对特征数据做二值化操作,得到128bit的特征数据。

对特征数据进行加密,采用paillier加密算法。首先生成密钥,随机选择两个大素数p和q,计算n=pq,e(n)=lcm(p-1,q-1),g为模n2的乘法群,即随机选择g∈g,使得g满足gcd(l(gemodn2),n)=1,则该加密方案的公钥为(g,n),私钥为e(n),明文取值域为zn,即范围为m<n。

密钥生成以后采用公式(1)对特征数据进行加密。被加密的数据为m∈zn随机选择数则m加密后的密文为:

c=gmrnmodn2(1)

客户端将加密后的特征数据发送给服务器。

服务器端:

服务器收到客户端发来的特征数据以后,无需解密特征数据,直接采用高效隐秘海明距离计算公式(2)与云上数据库中的数据做计算,得到密文海明距离epk(dh)。

epk(dh)=epk(j)+hepk(∑wi)-hepk(∑wj)(2)

云端服务器在计算得到密文海明距离结果后,为了防止客户端直接得到海明距离,进一步得到数据库中数据信息,需要给海明距离加上一个随机数,即得到epk(dh+r)。并将这个结果发送给客户端。

客户端:

客户端接收到epk(dh+r)后,对其利用私钥按照公式(3)进行解密,得到解密结果dh+r。并将这个结果返回给服务器。

云端服务器:

云端服务器接收到dh+r后,利用ot协议将其按照公式(4)映射成一组0,1向量,并发送给客户端。其中k为dh+r,ri为随机数,dmax=128,t为提前设置好的阈值。

客户端:

客户端接收到这组0,1向量后,从中获得最后的结果。

并行计算方案:

在实际的人脸识别过程中,很多时候可能出现一个客户端同时获取n个人脸图像,或者有n个客户端同时获取了m个人脸发送给服务器端来进行查找和匹配。这种情况中,如果还是按照之前的处理过程,一个一个的处理,那么效率无疑是很低的。为了解决这种情况,提出了一种并行计算人脸识别的方案,并行的进行特征数据加密和海明距离计算。

并行加密3个人脸图像特征数据,因为海明距离dmax最大值为128,所以本发明用8个二进制表示,而由于在后面需要进一步加上一个随机数r,所以预留一个溢出位,总共用9个bit来表示原来的一个明文特征数据,实际的明文数据放在9个bit中的最低位,其余位补上0。则原来的3个明文数据一共需要27个bit。将128个27bit的明文数据利用paillier加密,然后发送到服务器上。

云端服务器上原来存储的j也需要按照这种方式转变为27bit的数据,然后加密。根据这些加密后的数据做进一步的处理,求得加密的海明距离。这个加密的海明距离解密得到的结果为三个海明距离与对应随机数和的拼接数据。每9bit数据去掉最高位的溢出位,就为对应的一个海明距离与其随机数的和。

通过实验表明其中人脸特征数据降低到128bit,人脸识别的正确率在faces94数据集上达到99.36%,在lfw数据集上达到99.27%,整个方法所用时间为0.1047s(并行加密3个人脸图像的特征数据的时间与求取密文海明距离并解密的时间和)。对比于在2017年发表于ieee上的一种基于深度学习和同态加密的人脸认证方案,通过仿真实验得到数据,人脸特征数据为256bit,识别正确率为96.60%,识别时间为0.5210s。通过对比数据可知本方法人脸特征数据的大小降低了50%,而识别正确率提高了2.76%,识别时间降低了80%。这些数据表明本发明能够在保护隐私安全的情况下,降低人脸特征数据的体积,有效提高人脸识别的效率和正确率。

总之,本发明中提出的安全高效的隐秘人脸识别方法能够在密文状态下进行人脸识别,与此同时可以保护客户端和云端双方的数据安,客户端不能得知除了最后识别结果以外的任何信息,而服务器端不能获得任何信息。本发明利用深度神经网络inception-resnet-v2、paillier算法、高效隐秘海明距离计算公式、并行计算方案、ot协议等技术实现了在密文状态下进行安全的人脸识别。利用深度神经网络inception-resnet-v2来提取人脸特征大大降低了特征数据的数据量和识别的准确率。利用高效隐秘海明距离计算公式和并行计算方案,大大提高了整个方案的效率。通过实验显示出本发明提出的方法能够有效的进行人脸识别,是一种效率很高的隐秘人脸识别方法。并且该隐秘人脸识别方法很容易通过软件实现,本发明可广泛应用推广到视频监控嫌疑人搜索等。

以上所述仅为本发明的一些基本说明,依据本发明的技术方案所做的任何等效变换,均应属于本发明的保护范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1