一种基于人脸特征的模糊保险箱远程身份认证方法转让专利

申请号 : CN201110132424.X

文献号 : CN102215223B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 毋立芳袁松龙江思源刘兴胜肖鹏周鹏

申请人 : 北京工业大学

摘要 :

本发明公开了信息安全领域中的一种基于人脸特征的模糊保险箱远程身份认证方法。包括:根据人脸特征和用户口令生成模糊保险箱数据,模糊保险箱数据中包括人脸特征值和密钥信息,将模糊保险箱数据存储在服务器中。客户端在用户注册时获取用户人脸图像和口令,并对获取的人脸特征加密,生成模糊保险箱数据,并发送到数据库服务器中;数据库服务器通过计算模糊保险箱数据得到用户注册密钥和用户登陆密钥,将用户登录密钥与注册密钥进行比对;若两密钥相同,认为该用户可以进入系统。用户可以选取不同的口令对自身的人脸特征进行保护,因此本发明能够有效地防止跨数据库搜索,有效地保证了本方法的安全性和隐私性,具有应用价值。

权利要求 :

1.一种基于人脸特征的模糊保险箱远程身份认证方法,其特征在于:该方法包括如下步骤:

1.1对人脸图像进行特征提取得到有序人脸特征序列;

1.2生成多个生物哈希序列:由用户输入的密码作为随机种子产生一系列伪随机数,将得到的数组进行二值化,生成字符串序列,即生成生物哈希序列;

1.3有序模糊保险箱编码:

1.3.1)生成多项式:由用户输入的密码生成密钥,对密钥进行分割作为待生成的多项式的系数;把步骤1.2得到的生物哈希序列依次代入到多项式中求得对应的函数值,并进行存储,结果存在一个二维数组G中,第一列代表生物哈希值,第二列代表生物哈希序列投影到多项式后的投影序列;

1.3.2)在帮助数据中间插多组干扰数据,最终形成模糊保险箱;至此,1.1-1.3完成了模糊保险箱的编码过程;

1.4.客户端计算机最终将用户名,密钥和模糊保险箱三种数据传送到服务器中进行存储;

在认证阶段,用户依旧提供用户名,密码和人脸图像;步骤如下:

2.1提取人脸特征:客户端计算机对人脸图像进行特征提取,得到有序人脸特征值;

2.2生成生物哈希序列:由密码作为随机种子,由人脸特征生成多个生物哈希序列,将用户名和生物哈希序列发送给服务器;

2.3模糊保险箱解码:服务器根据客户端提供的用户名,提取对应的密码和模糊保险箱;并由模糊保险箱和客户端提供的生物哈希序列进行有序模糊保险箱解码,生成相应的密钥;

2.4匹配:如果生成的密钥和服务器上保存的密钥一致,则通过认证,否则认证失败。

说明书 :

一种基于人脸特征的模糊保险箱远程身份认证方法

技术领域

[0001] 本发明是一种基于加密人脸的实名身份认证方法和系统,属于信息安全领域。

背景技术

[0002] 随着社会网络化和信息化的发展,人们面临了一个非常普遍的问题,那就是如何更加快速、便捷、安全的进行身份认证。身份认证在安全系统中占有极其重要的地位,是最基本的安全服务,其它的安全服务都要依赖于它。一旦身份认证系统被攻破,那么系统的其他所有安全措施都将形同虚设。而黑客攻击的目标往往就是身份认证系统。因此要加快信息安全的建设,加强身份认证理论及其应用的研究就显得更加重要。另外,除了黑客之外的高级权限用户(比如管理员)登录系统后,能够轻易修改普通用户的敏感数据,并且宣称系统遭受到了黑客攻击。
[0003] 现有身份认证方法主要有如下三类:
[0004] 一、基于传统密码学身份认证方法
[0005] 传统密码学方法通过加密密钥对用户的内容进行保密。这种方法要求用户输入特定的密码。若采用单纯的基于密码的身份认证技术,当用户密码被盗取或丢失,身份认证就无安全可言。加密密钥通常都是由随机生成的长比特串组成,密钥丢失一旦丢失,用户可以方便的对密钥进行重置。然而对于用户来说,随机生成的密钥是难以记忆的;
[0006] 二、基于生物特征的身份认证方法
[0007] 基于生物特征的身份认证方法,即通过使用生物的指纹、虹膜、掌纹、人脸等特征进行身份认证的方法。这类方法的好处是,无须用户记忆任何东西,只需要提供自己的生物特征即可通过认证,应用方便,唯一性好,且不容易被盗取。随着生物特征认证技术的广泛应用,生物特征的安全性和隐私性问题突显出来。首先生物特征属于个人隐私,如果被盗个人隐私就被暴露。其次,生物特征有很强的唯一性,以指纹特征为例,每个人的指纹特征都是不同的,即便是同一个人的不同手指,指纹也不相同。密码丢失后用户更换新密码即可,生物特征被盗取后相当于人的身份信息被盗取,手指无法更换,即指纹特征不会发生变化,因此说生物特征不具有可撤销性。
[0008] 三、基于生物特征加密的身份认证方法
[0009] 针对传统密码学和生物特征认证方法的优势劣势,人们想到如果能将生物特征和用户密码相结合,那么即便用户将密码丢失,如果攻击者不能提供正确的生物特征数据,则身份认证同样就不能成功。一种针对有序生物特征进行加密的身份认证系统应运而生。这种方法既有传统的生物特征识别方便携带、唯一性好等优点,又能够有效的对用户的原始生物模板进行保护。
[0010] 研究如何保护原始生物特征模板,目的在于既可以用生物特征进行身份认证,又能保证该生物特征的安全性和隐私性,同时一旦经过保护的生物特征被盗取,人们能够方便的将其撤销,改其为新的经过保护的生物特征即可。
[0011] 典型的生物特征模板保护方法大致分为两类:基于变换的方法和与密码学相结合的方法。前者将原始生物特征经过随机变换,变换为一组新的特征用于身份认证;后者将生物特征与密码学相结合,包括绑定密钥和生成密钥两类,密钥生成过程中,可以直接利用生物特征进行生成,并应用于身份认证过程中。密码绑定过程是将生物特征与密钥绑定在一起,两者互相隐藏,从而达到保护生物模板的目的。典型生物模板保护方法有模糊保险箱和模糊提取等。
[0012] 模糊保险箱是由Juels and Sudan提出的基于多项式插值的秘密共享方法,其主要思想是首先将用户密钥信息隐藏于多项式的系数中,之后将用户生物特征的各个特征值投影到多项式上,得到多项式对应的投影值,这些投影值中隐藏着用户密钥和用户生物特征信息,称为帮助数据。生成大量的干扰数据,将帮助数据隐藏在干扰数据中,生成模糊保险箱。在用户进行身份认证时,需要根据用户提供的生物特征从模糊保险箱中提取出帮助数据,再由帮助数据重建出多项式,最后从多项式的系数中提取出用户密钥进行身份认证。在模糊保险箱方法中利用到的多项式重建原理中,由P+1个帮助数据即可重建P次多项式,多项式重建过程不要求特征具有有序性。在对指纹进行描述的时候,常常要用到指纹的细节特征,是典型的无序特征。模糊保险箱作为一种加密方法,首先是由Clancy等人将其应用于指纹生物特征模板保护中,后来很多人对该算法进行了改进。由于帮助数据中仍然包含原始生物特征信息,因此,该方案存在以下问题:
[0013] 1)当确认成功时,原始生物特征模板被暴露,非常危险;
[0014] 2)该方法不具有上述的多样性和可撤销性特征;
[0015] 3)原始生物特征的非均匀分布特性可能是的方法的安全性下降。
[0016] 也有人把模糊保险箱用于人脸特征,但效果不是很好。分析其原因我们觉得有以下方面:
[0017] 1)指纹识别是典型的无序特征;
[0018] 2)指纹特征相对来讲类内变化较小,所以对特征进行量化后可以容忍一定程度的类内变化;
[0019] 3)指纹细节特征各分量之间唯一性较好,一般不会出现各分量之间的交叉匹配的现象。相对来讲,人脸特征一般为有序特征,上述方案没有充分利用人脸特征的有序性;
[0020] 4)人脸特征的类内变化较大,一定步长的量化级数很难容忍类内变化;很多人脸特征如PCA、LDA等都是由一些分布在一定范围内的标量组成,这些标量之很容易相同,因此,特征各分量间的唯一性不好,很容易出现各分量之间交叉匹配。
[0021] 于此同时,电子商务的快速发展对在线的身份认证的安全性能也提出了更高的要求。基于上述几点原因,我们提出了基于人脸特征的模糊保险箱远程身份认证方法,并将其应用于在线身份认证。这种方法能够保证人脸生物特征的可撤销性和安全性,并能保证一定的认证性能,且可以根据不同的密钥生成多种生物特征模板,即本方法具有多样性。

发明内容

[0022] 我们提出了一种基于有序人脸生物统计特征的模糊保险箱方案,并将其应用于在线身份认证过程中。实验证明,这一方案能够保证人脸生物特征的多样性、可撤销性和安全性,并能保证一定的认证性能。
[0023] 根据常见的身份认证系统的面向客户端/服务器结构结构,我们将人脸特征的模糊保险箱认证方案分为两个阶段:注册阶段和认证阶段。
[0024] 在注册阶段,用户提供用户名,密码和人脸图像三种信息。客户端计算机做几件事:
[0025] 一种基于人脸特征的模糊保险箱远程身份认证方法,其特征在于:该方法包括如下步骤:
[0026] 1.1对人脸图像进行特征提取得到有序人脸特征序列;
[0027] 1.2生成多个生物哈希序列:由用户输入的密码作为随机种子产生一系列伪随机数,将得到的数组进行二值化,生成字符串序列,即生成生物哈希序列;
[0028] 1.3有序模糊保险箱编码:
[0029] 1.3.1)生成多项式:由用户输入的密码生成密钥,对密钥进行分割作为待生成的多项式的系数;把步骤1.2得到的生物哈希序列依次代入到多项式中求得对应的函数值,并进行存储,结果存在一个二维数组G中,这个二维数组称为帮助数据,第一列代表生物哈希值,第二列代表生物哈希序列投影到多项式后的投影序列;
[0030] 1.3.2)在帮助数据中间插多组干扰数据,最终形成模糊保险箱;至此,1.1-1.3完成了模糊保险箱的编码过程;
[0031] 1.4.客户端计算机最终将用户名,密钥和模糊保险箱三种数据传送到服务器中进行存储;
[0032] 在认证阶段,用户依旧提供用户名,密码和人脸图像;步骤如下:
[0033] 2.1提取人脸特征:客户端计算机对人脸图像进行特征提取,得到有序人脸特征值;
[0034] 2.2生成生物哈希序列:由密码作为随机种子,由人脸特征生成多个生物哈希序列,将用户名和生物哈希序列发送给服务器;
[0035] 2.3模糊保险箱解码:服务器根据客户端提供的用户名,提取对应的密码和模糊保险箱;并由模糊保险箱和客户端提供的生物哈希序列进行有序模糊保险箱解码,生成相应的密钥;
[0036] 2.4匹配:如果生成的密钥和服务器上保存的密钥一致,则通过认证,否则认证失败。
[0037] 本方案的有益效果如下:
[0038] 1)具有可撤销性
[0039] 将人脸特征通过随机映射得到生物哈希序列,服务器最终存储的是人脸特征经过随机变换得到的帮助数据,帮助数据中包含人脸信息和用户的密码信息,结构复杂,它不是直接的人脸图像,从而保证了用户数据安全性,生物哈希序列的产生方法可以有多种,产生过程中,只要选取不同的参数,就会得出完全不同的结果,这就为算法提供了可撤销性,即服务器中存储的人脸模板丢失后,若重新进行注册,只需要改变哈希过程中的参数,即可得到不同的人脸模板,从而为算法提供可撤销性;
[0040] 2)大大降低了FAR认假率
[0041] 我们提出了有序模糊保险箱编解码方案,充分利用了人脸特征的有序性,避免了不同特征的混叠匹配,大大降低了FAR认假率,即非注册用户通过认证;通过有序的插入真实模板,缩小查找配准的范围,将会大大增加配准的成功率。
[0042] 3)保证了系统的安全性
[0043] 由于前面采用了生物哈希的方法将人脸特征变换为随机序列,因此,在模糊保险箱生成过程中的有序插入干扰点对安全性能的影响不大。理论上讲正确得到9个帮助数据即可通过身份认证。假设攻击者知道我们的规则即每一组帮助数据中插入干扰点个数为20,由A个原始人脸PCA特征得到B个生物哈希序列,在没有任何先验知识的情况下,攻击者需要从每20个随机数中找到一个真正的帮助数据计算量为 找到9个真正的帮助数据即可通过身份认证,最少需要计算 种组合。这样做的代价是相当大
的。由此可以得出结论,系统的安全性得到了提高
[0044] 本文方案虽然是基于有序人脸生物特征提出的,但是它同样适用于所有有序生物特征,在应用的过程中,只要把人脸特征替换成其他的有序生物特征即可,如规范有序的虹膜特征,MB-LBP特征,PCA等。数学中的随机映射方法被用于生成生物哈希序列,保证了方案的多样化和可撤销性。有序模糊保险箱编码和解码充分利用了人脸特征的有序性,同时改善了算法认证性能。

附图说明

[0045] 图1为总体方案的算法框架

具体实施方式

[0046] 我们提出的方案采用人脸哈希实现人脸特征的随机化;进一步,提出有序模糊保险箱编解码方案,该方案充分利用了人脸生物统计特征的有序性。具体方案如图1所示。
[0047] 方案面向客户端/服务器结构,包括注册和认证两个阶段。
[0048] 1.1对人脸图像进行特征提取得到有序人脸特征序列;
[0049] 1.2生成多个生物哈希序列:由用户输入的密码作为随机种子产生一系列伪随机数并按照特定顺序组成矩阵Q,对人脸特征做随机映射,即将人脸特征序列与矩阵Q相乘,将得到的数组进行二值化生,成字符串序列(即生成生物哈希序列);
[0050] 1.3有序模糊保险箱编码:
[0051] 1.3.1生成多项式:由用户输入的密码经过散列化并进行CRC循环冗余校验码生成密钥,对密钥进行分割,产生一组十进制数,作为待生成的多项式的系数。把1.2得到的生物哈希序列依次代入到多项式中求得对应的函数值,并进行存储,结果存在一个二维数组G中,这个二维数组称为帮助数据,第一列代表生物哈希值,第二列代表生物哈希值投影到多项式后的投影值。
[0052] 1.3.2在每一行中间插多组干扰数据,最终形成模糊保险箱。至此,1.1-1.3完成了模糊保险箱的编码过程。
[0053] 1.4.客户端计算机最终将用户名,密钥和模糊保险箱三种数据传送到服务器中进行存储。
[0054] 在认证阶段,用户依旧提供用户名,密码和人脸图像。步骤如下:
[0055] 2.1提取人脸特征:客户端计算机对人脸图像进行特征提取,得到有序人脸特征值;
[0056] 2.2生成生物哈希序列:由密码作为随机种子,由人脸特征生成多个生物哈希序列,将用户名和生物哈希序列发送给服务器。到此为止认证阶段的前2步都与注册阶段相同。
[0057] 2.3模糊保险箱解码:服务器根据客户端提供的用户名,提取对应的密码和模糊保险箱。并由模糊保险箱和客户端提供的生物哈希序列进行有序模糊保险箱解码,生成相应的密钥。
[0058] 2.4匹配:如果生成的密钥和服务器上保存的密钥一致,则通过认证,否则认证失败。
[0059] 下面将就本发明用到的相关技术做具体的论述。
[0060] 注册阶段
[0061] 在注册阶段,用户需要提供用户名、密码和人脸图像三种信息:
[0062] A1.提取人脸特征值
[0063] 客户端利用摄像设备拍摄人脸图像,从人脸图像中提取人脸特征,可以利用现有的人脸特征提取方式(如PCA,MB-LBP特征等)得到的人脸特征值Y,若采用PCA方式进行特征提取,Y的维数会伴随着改变人脸图像而发生变化。为了便于实现,直接根据所采图像的统计特征对维数进行限制,令其为定值,维数N的选择是经过训练得出的,一旦选定,便一直沿用,对每一张人脸图像都采用相同的维数。
[0064] A2.生成生物哈希序列
[0065] A21.利用密码学方法,生成一组随机数,生成随机数的个数应该为N×L×M个,这里对没有对L,M的取值严格要求,只需要和后续的计算保持一致即可,而N是A1.中人脸特征的维数。
[0066] 把生成的N×L×M个随机数分组,构成M个N×L的二维数组Q′={Q′1,Q′2,...,Q′M}。再对集合Q′中每一个数组进行正交化,构成新的正交数组集合Q={Q1,Q2,...Qi,...,QM}
[0067] A22.提取的人脸特征与正交的Q中的的每一个元素分别做矩阵乘法运算,人脸特征的维数为N,正交的随机矩阵Qi的维数为N×L,即有di=Y×Qi,最终得到d={d1,1 2 L
d2,...di,...,dM},di={di,di,...,di}。对d进行二值化,即
[0068]
[0069] 得到b={bij,i=1,2,...,M;j=1,2,...,L},称其为变换模板,其中[0070]j
[0071] A23.将b={bi,i=1,2,...,M;j=1,2,...,L}即变换模板中的每一列转换成字符串序列的xi形式,最终得到生物哈希序列x={x1,x2,...,xi,...,xM}。
[0072] A3.生成模糊保险箱
[0073] A31.构造多项式1 7 8
[0074] 构成形如f(x)=c0+c1x+,...,+c7x+c8x 的多项式,其中方程的系数c0,c1,..,c7,c8是用户输入的密码经过数值变换得到的,变换过程是:先将密码用MD5方法得到128bit的数据,此处得到的数据固定为128位,这是由采用MD5的算法而产生的结果,与输入密码的位数无关。经过CRC即循环冗余校验后得到144位的二进制密钥KCRC。将此密钥每间隔16位分割一次,于是KCRC被分割成了9个十进制的整数c0,c1,..,c7,c8,作为多项式f(x)
1 7 8
=c0+c1x+,...,+c7x+c8x 的系数。将x={x1,x2,...,xi,...,xM}代入到多项式f(x)=
1 6 7 8
c0+c1x+,...,+c6x+c7x+c8x 中,于是可以构造出本方案中G={(xi,f(xi)),i=1,2,...,M}。G是人脸数据和用户密码共同生成的,能够充分反映出用户的私密信息,一旦被攻击,就会带来不可估量的损失,因此需要加以保护。
[0075] A32.生成并插入干扰点
[0076] 采用生成随机数的方法生成一组干扰点,并将其与帮助数据进行混合,形成新的数据集合,称为模糊保险箱。将模糊保险箱数据存入服务器。这样做的好处是,即使服务器受到攻击,存储的模糊保险箱发生泄露,由于有干扰点的加入,使得攻击者得到的是干扰点和帮助数据的有组合,使得攻击者不能区分哪些是干扰点,哪些是帮助数据,从而有效地保护用户隐私。可以将G按照一定插入位置,插入到干扰数据集中,也可以将干扰数据按照规则插入到G中。这两种方法是等价的,都是要将两种数据进行混合。在实际应用中,为了增加模糊程度,干扰点的数量应远远大于G的维数。
[0077] 为了便于计算,方案中采用的是向干扰数据中插入G分量的方法。
[0078] 插入的步骤如下:
[0079] 1)在[1,K]范围内生成随机数q,计算机领域中通用的随机数的方式有很多;
[0080] 2)计算插入序号e=(i-1)K+q。
[0081] 3)将G的第i个分量(xi,f(xi))按照插入序号e,插入到干扰数据集合C中的第e个分量(se,we)的位置;
[0082] 对G的所有M个分量,重复上述插入过程步骤。得到最终的模糊保险箱。
[0083] A4.客户端计算机把用户名,相应的模糊保险箱,密钥KCRC发送到服务器进行存储。
[0084] 认证阶段
[0085] 在认证阶段,用户同样需要提供三种信息,即用户名,密码和人脸图像。在认证阶段前半部分B1-B2所做的工作于注册阶段的A1-A2相同,即:
[0086] B1.提取人脸特征
[0087] 通过客户端的摄像设备到用户的人脸图像,对人脸图像特征提取,记为Y′,维数仍旧为N。
[0088] B2.生成生物哈希序列
[0089] 利用密码得到一族随机数序列,将随机数序列与人脸特征数据相乘,转化成一组字符串数组,即得到生物哈希序列x′={x′1,x′2,...,x′i,...,x′M}。
[0090] B3.模糊保险箱解码
[0091] B31.计算最小汉明距离
[0092] 计算生物哈希序列x′={x′1,x′2,...,x′i,...,x′M}与注册阶段的模糊保险箱数据之间的汉明距离,并将汉明距离进行排序,选取取值最小的12个汉明距离。每一个最小的汉明距离都对应帮助数据中的一组数据,得到G′={(x1_min,f(x1_min),x2_min,f(x2_min),...,x12_min ,f(x12_min)},此数据是从模糊保险箱中提取的,既可能是帮助数据也可能是干扰点。
[0093] 理论上讲,需要9个汉明距离即可恢复出多项是的系数,因此,当采用12组汉明距离时,最多可以得到 种组合方式来恢复密钥,每种组合可以通过多项式插值的方法计算产生一个密钥。实际应用中,如果某一种组合中包含错误点,由于其为随机数,则相应的组合就无法产生一个真正的密钥。当某一组合中的点均为真实点时,才能得到密钥。实际上,所有包含全部真实点的组合产生的密钥完全相同,所以,只要得到一组密钥,直接将其输出即可。
[0094] B32.多项式插值
[0095] 将G′={(x1_min,f(x1_min),x2_min,f(x2_min),...,x12_min,f(x12_min)}代入式子2 8
f(xi_min)=c′0+c′1xi_min+c′2xi_min+L+c′8xi_min 中,通过拉格朗日插值的方法可以恢复出该多项式的系数c′0,c′1,..,c′7,c′8。
[0096] B4.比对密钥,得出认证结果
[0097] 将多项式系数c′0,c′1,..,c′7,c′8经CRC即循环冗余校验得到144位的密钥K′CRC,从服务器中取出用户对应的密钥KCRC,进行比对,若相同,则身份认证成功,若不相同,则认证失败。
[0098] 以上实例仅用以说明本发明而并非限制本发明所描述的技术方案;因此,尽管本说明书参照上述的各个实例对本发明已进行了详细的说明,但是,本领域的普通技术人员应当理解,仍然可以对本发明进行修改或等同替换;而一切不脱离发明的精神和范围的技术方案及其改进,其均应涵盖在本发明的权利要求范围当中。