[0051] 以下结合说明书附图对本发明的技术方案作进一步说明。
[0052] 一种基于陈氏混沌系统与指静脉辅助数据的安全认证方法如图1所示,包括获取用户指静脉图像,提取全局特征模板,存储指静脉图像质心位置信息;利用Arnold Cat变换置乱全局特征模板像素位置;指静脉辅助数据结合陈氏混沌系统加密全局特征模板像素灰度值;存储加密后的特征模板用于认证时模板匹配;提示用户输入存储口令,存储相应数据。认证时,对比当前获得的质心位置与注册时获得的质心位置距离,判断是否直接提取辅助数据用于重构加密矩阵;加密后的特征模板匹配在加密域中完成。
[0053] 1、用户指静脉全局特征模板提取部分,其具体步骤如下:
[0054] 1.1获取用户原始指静脉图像,计算图像的质心位置,将指静脉图像的质心位置存于数据库中;利用该质心位置信息完成原始图像的旋转校正;通过子窗口获取指静脉的ROI(感兴趣区域)图像。
[0055] 质心位置信息的作用为,在图像处理部分利用该信息完成图像的旋转校正;在用户认证过程中,通过判断注册与认证获取的2个质心信息的距离是否处于设定阈值内,来判断是否获取数据库中正确辅助数据,以生成正确的加密矩阵。使用质心位置信息有效的降低了认证过程中的拒真率。
[0056] 1.2利用Niblack算法从得到的指静脉ROI图像中提取指静脉全局特征模板;将提取的全局特征模板进行滤波、填充、图像细化,最后将其归一化为64×96的图像矩阵,设为F。根据经验,本发明推荐在Niblack算法中,设置窗口大小为4,系数为0.05。
[0057] 2、Arnold Cat变换置乱指静脉全局特征模板像素位置,其具体步骤如下:
[0058] 2.1将64×96的指静脉全局特征模板F进行切割,获得3个大小分别为64×64、32×32、32×32的正方形子特征模板,设为F1,F2,F3。
[0059] 2.2在指静脉ROI图像中随机抽取4个像素位置,获得与之对应的像素灰度值,设为:f1,f2,f3,f4;利用随机数发生器产生4个范围在[1,10000]内的随机数,设为:r1,r2,r3,r4;将f1,f2,f3,f4与r1,r2,r3,r4对应相乘:a1=f1×r1,b1=f2×r2,c1=f3×r3,d1=f4×r4,所得结果组成一个2×2的矩阵。
[0060] 由于现在普遍使用的Arnold Cat映射如下表达式所示:
[0061]
[0062] 其中,xn,yn为像素的灰度位置,M为当下处理的图像的大小,a,b,c,d满足下列条件:
[0063]
[0064] 若该2×2的矩阵行列式满足行列式(2),则将该矩阵视为一个有效的变换矩阵;若不满足行列式(2),则重新生成矩阵,直至满足行列式(2)的条件。将该步骤重复执行3次,获得3个2×2的相互独立的变换矩阵,设为T1,T2,T3。
[0065] 2.3提示用户输入3个迭代次数,设为:k1,k2,k3,取值范围为[1,108‑1],k1,k2,k3被视为第一个密钥组,设为K1(k1,k2,k3),由用户自行保管。
[0066] 用户在认证时需正确输入这3个迭代次数,若输入错误,将会导致后续结果出错,最后认证失败如图2所示。
[0067] 2.4将所得的3个子特征模板、3个变换矩阵以及3个迭代次数分别对应进入Arnold Cat变换中;将变换后的3个子特征模板重新拼接成64×96的变换后的全局特征模板,设为FT1。
[0068] 该步骤的目的是破坏原始特征模板数据之间的相关性,抵抗相关系数攻击,并达到基本的视觉混淆目的。
[0069] 但由于形如表达式(1)的Arnold Cat映射容易产生周期,这就意味着若攻击者尝试通过穷举法频繁输入不同的迭代次数,很可能会产生伪造的特征模板在Arnold Cat变换后,有一部分是原始正确变换结果的情况。更进一步,由于置乱像素位置并不会对像素灰度值产生实质性的影响,变换后的特征模板仍旧无法抵御统计分析攻击,因此才需对特征模板像素灰度值进行加密操作,以保证用户指静脉信息的安全性。
[0070] 3、指静脉辅助数据结合陈氏混沌系统加密特征模板像素灰度值。
[0071] 3.1随机生成8个行值与8个列值,设为n1,n2,n3,n4,n5,n6,n7,n8与m1,m2,m3,m4,m5,m6,m7,m8,行列值的范围由当前指静脉ROI图像的大小决定;根据这些行列值在当前ROI图像中获取对应的8个像素灰度值,设为:g(n1,m1),g(n2,m2),g(n3,m3),g(n4,m4),g(n5,m5),g(n6,m6),g(n7,m7),g(n8,m8)。
[0072] 由于ROI图像中的像素个数远大于8,任意获取8个像素灰度值不会泄露任何关于用户指静脉特征的显著信息,这些像素灰度值可被视为辅助数据,这些辅助数据被用于生成后续加密使用的密钥。
[0073] 3.2将当前所得的8个灰度值转化成8bit位的二进制数,且两两前后拼接形成4个16bit位二进制数,设为:q1,q2,q3,q4;x0=q1⊕q2⊕q3⊕q4,x0作为进入陈氏混沌系统的第一个初始值。
[0074] 将x0表示成16bit位的二进制数:x0=x01 x02 x03…x014 x015 x016 ,x0循环左移一位,获得第二个初始值y0=x016 x01 x02 x03…x014 x015,循环左移两位获得第三个初始值z0=x015 x016 x01 x02 x03…x014。
[0075] x0,y0,z0被视为第二个密钥组,设为K2(x0,y0,z0)。
[0076] 在这里使用到的陈氏混沌系统属于三维混沌系统,需同时使用3个初始值进入混沌映射生成对应的混沌序列。相较普遍使用的一维混沌系统,陈氏混沌系统可以实现快速扩散,具有更高的随机性和不可预测性,且密钥空间更大,因而抵御攻击能力更强。在这个方案使用到的陈氏混沌映射表达式如下:
[0077]
[0078] 3.3将获得的初始值(x0,y0,z0)代入陈氏混沌映射中,迭代192次获得对应的混沌序列组,设为:(L1,L2,L3)。其中L1,L2,L3各代表一组序列,每组序列的元素个数均为192。
[0079] 在计算中,为了避免产生数据过大超出计算机运算能力,在这里对每一次迭代的结果都进行第一次取模运算,模数取2048;完成迭代后,为了确保迭代数据能够充能利用,对L1,L2,L3中的每一个元素进行第二次取模,模数取256。如此,使得最后的数据全部分布在[0,255]之中。
[0080] 3.4保留L1,L2,L3。L4=L1⊕L2⊕L3,将L1,L2,L3,L4中所有元素排列构成大小为8×96子加密矩阵。
[0081] 3.5将上述4个步骤重复进行8次获得8个大小为8×96的子加密矩阵,将所有子加密矩阵拼接,获得用于置换像素灰度值的加密矩阵E。矩阵E大小为64×96。
[0082] 3.6提示用户输入存储口令ps,该口令用于存储64对行列值,方便用户在认证时提取;另外,64个灰度值会被另外存储,用户在认证时输入口令ps不能直接提取。
[0083] 3.7将置乱像素位置的指静脉全局特征模板FT1与加密矩阵E异或:FE1=FT1⊕E,获得加密后的特征模板FE1。将其存于数据库,方便认证时用于匹配。
[0084] 到此用户注册功能完成,显示窗口告知当前注册成功如图3所示。
[0085] 在用户认证中,指静脉特征模板的提取以及特征模板像素位置的置乱都与注册时步骤相同,但在生成上述加密矩阵的整个过程有些许不同。由于噪声,采集角度等因素的影响,同一用户的同一指静脉在每次采集中生成图像的灰度值都会有一定的细微偏差。
[0086] 仅根据数据库中的64个行列值在当前的ROI图像中获取对应的灰度值,使用其重新构成初始值x0′,y0′,z0′,进而构成新的加密矩阵E′。根据混沌系统对于初始值的敏感依赖性,由于初始值的不同使得混沌序列相较于注册时的有很大的不同,如此生成的E′必定与注册时生成的加密矩阵E有非常大的不同。这会使得本方案在认证中存在极高的拒真率。
[0087] 3.8故在用户认证时,首先提示用户输入注册时存储信息的口令ps,判断当前输入口令ps′正误。如口令ps′正确,提取存于数据库的64个行列值;如口令ps′错误,终止当前认证过程。
[0088] 3.9计算认证过程中得到的指静脉图像质心位置与存于数据库中质心位置之间的距离,这里的距离单位用元素个数表示。
[0089] 3.10若两质心位置距离在阈值[0,μ]中,提取注册时存储于数据库中的64个灰度值,直接使用这些辅助数据构成加密矩阵;若不在阈值[0,μ]中,利用提取的64个行列值,按照对应位置在当前ROI图像中获取灰度值来生成加密矩阵并提示用户当前处理的指静脉信息可能有误如图4所示。根据经验,推荐阈值设为[0,3]。
[0090] 3.11当前生成的加密矩阵E′与当前完成位置置乱的特征模板FT′1异或:FE′1=FT′1⊕E′,得到认证过程中灰度值被加密了的全局特征模板FE′1。
[0091] 4、在加密域中进行模板匹配
[0092] 4.1因为对于灰度值的加密操作是将特征模板FT1与加密矩阵E进行异或,故在用户认证的匹配过程中,只需在加密域上计算两加密过后的特征模板之间距离即可。
[0093] 4.2若该距离在方案设定的阈值中,用户认证成功如图5所示;反之,用户认证失败。根据实经验,推荐阈值设定为[0,1]。
[0094] 本发明所述的一种基于陈氏混沌系统与指静脉辅助数据的安全认证方案,并不限于说明书和实施方式中的描述。凡在本发明的精神和原则之内,所做的任何修改、同等替换、改进等,均包含在本发明的权利要求范围之内。