一种基于陈氏混沌系统与指静脉辅助数据的安全认证方法与流程

文档序号:17725468发布日期:2019-05-22 02:28阅读:239来源:国知局
一种基于陈氏混沌系统与指静脉辅助数据的安全认证方法与流程

本发明属于生物特征安全和密码学技术领域,具体涉及一种基于陈氏混沌系统与指静脉辅助数据的安全认证方法,利用指静脉全局特征模板、指静脉辅助数据与陈氏混沌系统以完成用户安全身份认证的方法。



背景技术:

指静脉是位于手指表皮之下的生物特征,它难以被物理窃取,不会因外界环境和皮肤表皮的变化而产生改变。非接触式采集装置对于人体没有危害,采集获得的指静脉文件小,匹配速度快。以上特性使得该项生物特征技术愈加广泛的应用于身份认证中。

指静脉辅助数据,来自于用户的指静脉特征信息。指静脉辅助数据的信息总量远小于指静脉特征的总体信息量,它不会泄露任何关于用户指静脉特征的显著信息,可将其利用在加密中的密钥产生与重构。

混沌系统近年来从简单向复杂化发展,相比于传统密码学加密算法,混沌系统对于初始值更加敏感,甚至初始值发生细微的变化,对应生成的混沌序列都会有非常大的不同;混沌系统具有内随机性,有难以预测的和分析的复杂行为和遍历性;由混沌系统生成的信号具有类似于白噪声的统计信息,可视为一种伪随机信号。

若一指静脉信息不做任何加密操作就以明文的形式应用于身份认证系统中,该指静脉信息将极易受到恶意攻击者的威胁。攻击者能轻而易举地获取该与身份认证相关的信息,从而伪造虚假的用户身份,破坏身份认证系统的安全。因此,一个有效且安全的指静脉身份认证方案成为眼下必要的研究方向。

在2016年garimamehta与malaykishoredutta提出“biometricdataencryptionusing3-dchaoticsystem”。在他们所提出的生物特征数据加密方案中,将用户的虹膜特征模板信息通过置乱像素位置与置换像素灰度值的方法来进行加密。该方法虽然具有较大的密钥空间、能抵御部分攻击、有一定的安全性,但该方案仍存在一些缺陷。用于生成和重构加密矩阵的密钥完全依靠系统生成,与用户自身生物特征信息不相关使得该方案能被功能相似的其他方案替代。且在置换像素灰度值中使用的加密矩阵大小与原始虹膜特征模板大小不一,一旦破解这部分加密矩阵,上述保护方案存在被攻破的风险。



技术实现要素:

针对现有技术的不足,本发明提供了一种基于陈氏混沌系统与指静脉辅助数据的安全认证方法,能够有效避免现有技术中被攻破的危险,提高了指静脉识别的可靠性和安全性。

一种基于陈氏混沌系统与指静脉辅助数据的安全认证方法,包括以下步骤:

步骤1:获取用户指静脉图像,提取全局特征模板,存储指静脉图像质心位置;

步骤2:利用arnoldcat变换置乱全局特征模板像素位置;

步骤3:指静脉辅助数据结合陈氏混沌系统加密全局特征模板像素灰度值;

步骤4:在加密域中完成加密后的指静脉全局特征模板的匹配。

进一步的,所述的步骤1具体如下:

步骤1.1获取用户原始指静脉图像,计算获得图像质心位置,将其存于数据库中;利用此质心位置信息完成原始图像的旋转校正;通过子窗口获取指静脉的roi(感兴趣区域)图像;

质心位置信息的作用为,在图像处理部分利用该信息完成图像的旋转校正;在用户认证过程中,通过判断注册与认证时获取的两质心位置距离是否处于设定阈值内,决定是否获取数据库中正确辅助数据,以生成正确的加密矩阵;

步骤1.2利用niblack算法从当前roi图像中提取指静脉全局特征模板;对全局特征模板进行滤波、填充、图像细化,最后将其归一化为64×96的图像矩阵,设为:f。

进一步的,所述的步骤2具体如下:

步骤2.1:将64×96的全局特征模板f进行切割,获得3个大小分别为64×64、32×32、32×32的正方形子特征模板,设为:f1,f2,f3;

步骤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的矩阵,该矩阵的行列式结果需满足为1,则重新生成矩阵;将该步骤重复执行3次,获得3个2×2的相互独立的变换矩阵,设为:t1,t2,t3;

步骤2.3:提示用户输入3个迭代次数,设为:k1,k2,k3,其取值范围为[1,108-1],k1,k2,k3被视为第一个密钥组,设为k1(k1,k2,k3),由用户自行保管;

用户在认证时需正确输入这3个迭代次数,若输入错误,将会导致后续结果出错,最后认证失败;

步骤2.4将所得的3个子特征模板、3个变换矩阵以及3个迭代次数分别对应进入arnoldcat变换中;将变换后的3个子特征模板重新拼接成64×96的变换后全局特征模板,设为:ft1。

进一步的,所述的步骤3具体如下:

步骤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);

步骤3.2:将当前所得的8个灰度值转化成8bit位的二进制数,且两两前后拼接形成4个16bit位的二进制数,设为:q1,q2,q3,q4;x0=q1⊕q2⊕q3⊕q4,x0作为进入陈氏混沌系统的第一个初始值;

将x0表示成16bit位的二进制数:x0=x01x02x03…x014x015x016,x0循环左移一位,获得第二个初始值y0=x016x01x02x03…x014x015,循环左移两位,获得第三个初始值z0=x015x016x01x02x03…x014;

(x0,y0,z0)被视为第二个密钥组,设为k2(x0,y0,z0);

步骤3.3:将获得的初始值(x0,y0,z0)代入陈氏混沌映射中,迭代192次获得对应的混沌序列组,设为:(l1,l2,l3);其中l1,l2,l3各代表一组混沌序列,每组序列的元素个数均为192;

步骤3.4:保留l1,l2,l3,l4=l1⊕l2⊕l3,将l1,l2,l3,l4中所有元素排列构成大小为8×96子加密矩阵;

步骤3.5:将上述4个步骤重复进行8次获得8个大小为8×96的子加密矩阵,将所有子加密矩阵拼接,获得用于置换像素灰度值的加密矩阵e,大小为64×96;

步骤3.6:提示用户输入存储口令ps,该口令用于存储64对的行列值,方便用户在认证时提取;另外,64个灰度值会被另外存储,用户在认证时输入口令不能直接提取;

步骤3.7:将已经置乱像素位置的指静脉全局特征ft1模板与加密矩阵e异或:fe1=ft1⊕e,得到灰度值被加密的特征模板fe1,将其存储于数据库,方便认证时用于匹配,到此用户注册完成。

进一步的,所述的步骤3包括:

步骤3.8:在户认证时,提示用户输入注册时存储信息的口令ps,判断当前输入口令ps'正误。如口令ps'正确,提取存于数据库的64个行列值;如口令ps'错误,终止当前认证过程。

进一步的,所述的步骤3包括:

步骤3.9:计算认证过程中得到的指静脉图像质心位置与存于数据库中质心位置之间的距离,这里的距离单位用元素个数表示;

步骤3.10:判断距离是否在设定阈值中;若两质心位置距离在[0,3]中,提取注册时存储于数据库中的64个灰度值,直接使用这些辅助数据构成加密矩阵;若不在[0,3]中,利用提取的64个行值与列值,按照对应位置在当前roi图像中获取灰度值来生成加密矩阵并提示用户当前处理的指静脉信息可能有误;

步骤3.11:当前生成的加密矩阵e′与当前完成位置置乱的特征模板ft′1异或:fe′1=ft′1⊕e′,得到认证过程中灰度值被加密了的全局特征模板fe′1。

进一步的,所述的陈氏混沌映射表达式如下:

进一步的,所述的步骤3.3中,对每一次迭代的结果都进行第一次取模运算,模数取2048;完成迭代后,为了确保迭代数据能够充能利用,对l1,l2,l3中的每一个元素进行第二次取模,模数取256,使得最后的数据全部分布在[0,255]之中。

进一步的,所述的步骤4具体如下:

步骤4.1:在加密域上计算fe′1与fe1之间距离,距离单位用元素个数表示;

步骤4.2:判断距离是否在设定阈值中;若该距离在[0,1]中,用户认证成功;若不在[0,1]中,用户认证失败。

本发明的有益效果:本发明提供了一种基于陈氏混沌系统与指静脉辅助数据的安全认证方案,为各类基于手指静脉特征的身份认证系统提供一种间接生成密钥与保护原始指静脉特征信息安全的方法,确保指静脉信息的机密性、完整性及系统的可行性。本发明提供置乱指静脉特征模板像素位置与加密指静脉特征模板像素灰度值的功能,有效增强指静脉特征模板抵御相关系数分析与抵御统计分析攻击的能力;在加密过程中结合辅助数据,具有较大密钥空间(约3.4×1062)。本发明在所有具有指静脉身份认证的系统上均可使用,具有很强的可推广性。

附图说明

图1基于陈氏混沌系统与指静脉辅助数据的安全认证方案流程图;

图2输入错误的迭代次数导致认证失败的示意图;

图3用户注册成功的示意图;

图4指静脉质心距离不匹配导致认证失败的示意图;

图5用户输入正确数据通过身份认证的示意图。

具体实施方式

以下结合说明书附图对本发明的技术方案作进一步说明。

一种基于陈氏混沌系统与指静脉辅助数据的安全认证方法如图1所示,包括获取用户指静脉图像,提取全局特征模板,存储指静脉图像质心位置信息;利用arnoldcat变换置乱全局特征模板像素位置;指静脉辅助数据结合陈氏混沌系统加密全局特征模板像素灰度值;存储加密后的特征模板用于认证时模板匹配;提示用户输入存储口令,存储相应数据。认证时,对比当前获得的质心位置与注册时获得的质心位置距离,判断是否直接提取辅助数据用于重构加密矩阵;加密后的特征模板匹配在加密域中完成。

1、用户指静脉全局特征模板提取部分,其具体步骤如下:

1.1获取用户原始指静脉图像,计算图像的质心位置,将指静脉图像的质心位置存于数据库中;利用该质心位置信息完成原始图像的旋转校正;通过子窗口获取指静脉的roi(感兴趣区域)图像。

质心位置信息的作用为,在图像处理部分利用该信息完成图像的旋转校正;在用户认证过程中,通过判断注册与认证获取的2个质心信息的距离是否处于设定阈值内,来判断是否获取数据库中正确辅助数据,以生成正确的加密矩阵。使用质心位置信息有效的降低了认证过程中的拒真率。

1.2利用niblack算法从得到的指静脉roi图像中提取指静脉全局特征模板;将提取的全局特征模板进行滤波、填充、图像细化,最后将其归一化为64×96的图像矩阵,设为f。根据经验,本发明推荐在niblack算法中,设置窗口大小为4,系数为0.05。

2、arnoldcat变换置乱指静脉全局特征模板像素位置,其具体步骤如下:

2.1将64×96的指静脉全局特征模板f进行切割,获得3个大小分别为64×64、32×32、32×32的正方形子特征模板,设为f1,f2,f3。

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的矩阵。

由于现在普遍使用的arnoldcat映射如下表达式所示:

其中,xn,yn为像素的灰度位置,m为当下处理的图像的大小,a,b,c,d满足下列条件:

若该2×2的矩阵行列式满足行列式(2),则将该矩阵视为一个有效的变换矩阵;若不满足行列式(2),则重新生成矩阵,直至满足行列式(2)的条件。将该步骤重复执行3次,获得3个2×2的相互独立的变换矩阵,设为t1,t2,t3。

2.3提示用户输入3个迭代次数,设为:k1,k2,k3,取值范围为[1,108-1],k1,k2,k3被视为第一个密钥组,设为k1(k1,k2,k3),由用户自行保管。

用户在认证时需正确输入这3个迭代次数,若输入错误,将会导致后续结果出错,最后认证失败如图2所示。

2.4将所得的3个子特征模板、3个变换矩阵以及3个迭代次数分别对应进入arnoldcat变换中;将变换后的3个子特征模板重新拼接成64×96的变换后的全局特征模板,设为ft1。

该步骤的目的是破坏原始特征模板数据之间的相关性,抵抗相关系数攻击,并达到基本的视觉混淆目的。

但由于形如表达式(1)的arnoldcat映射容易产生周期,这就意味着若攻击者尝试通过穷举法频繁输入不同的迭代次数,很可能会产生伪造的特征模板在arnoldcat变换后,有一部分是原始正确变换结果的情况。更进一步,由于置乱像素位置并不会对像素灰度值产生实质性的影响,变换后的特征模板仍旧无法抵御统计分析攻击,因此才需对特征模板像素灰度值进行加密操作,以保证用户指静脉信息的安全性。

3、指静脉辅助数据结合陈氏混沌系统加密特征模板像素灰度值。

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)。

由于roi图像中的像素个数远大于8,任意获取8个像素灰度值不会泄露任何关于用户指静脉特征的显著信息,这些像素灰度值可被视为辅助数据,这些辅助数据被用于生成后续加密使用的密钥。

3.2将当前所得的8个灰度值转化成8bit位的二进制数,且两两前后拼接形成4个16bit位二进制数,设为:q1,q2,q3,q4;x0=q1⊕q2⊕q3⊕q4,x0作为进入陈氏混沌系统的第一个初始值。

将x0表示成16bit位的二进制数:x0=x01x02x03…x014x015x016,x0循环左移一位,获得第二个初始值y0=x016x01x02x03…x014x015,循环左移两位获得第三个初始值z0=x015x016x01x02x03…x014。

x0,y0,z0被视为第二个密钥组,设为k2(x0,y0,z0)。

在这里使用到的陈氏混沌系统属于三维混沌系统,需同时使用3个初始值进入混沌映射生成对应的混沌序列。相较普遍使用的一维混沌系统,陈氏混沌系统可以实现快速扩散,具有更高的随机性和不可预测性,且密钥空间更大,因而抵御攻击能力更强。在这个方案使用到的陈氏混沌映射表达式如下:

3.3将获得的初始值(x0,y0,z0)代入陈氏混沌映射中,迭代192次获得对应的混沌序列组,设为:(l1,l2,l3)。其中l1,l2,l3各代表一组序列,每组序列的元素个数均为192。

在计算中,为了避免产生数据过大超出计算机运算能力,在这里对每一次迭代的结果都进行第一次取模运算,模数取2048;完成迭代后,为了确保迭代数据能够充能利用,对l1,l2,l3中的每一个元素进行第二次取模,模数取256。如此,使得最后的数据全部分布在[0,255]之中。

3.4保留l1,l2,l3。l4=l1⊕l2⊕l3,将l1,l2,l3,l4中所有元素排列构成大小为8×96子加密矩阵。

3.5将上述4个步骤重复进行8次获得8个大小为8×96的子加密矩阵,将所有子加密矩阵拼接,获得用于置换像素灰度值的加密矩阵e。矩阵e大小为64×96。

3.6提示用户输入存储口令ps,该口令用于存储64对行列值,方便用户在认证时提取;另外,64个灰度值会被另外存储,用户在认证时输入口令ps不能直接提取。

3.7将置乱像素位置的指静脉全局特征模板ft1与加密矩阵e异或:fe1=ft1⊕e,获得加密后的特征模板fe1。将其存于数据库,方便认证时用于匹配。

到此用户注册功能完成,显示窗口告知当前注册成功如图3所示。

在用户认证中,指静脉特征模板的提取以及特征模板像素位置的置乱都与注册时步骤相同,但在生成上述加密矩阵的整个过程有些许不同。由于噪声,采集角度等因素的影响,同一用户的同一指静脉在每次采集中生成图像的灰度值都会有一定的细微偏差。

仅根据数据库中的64个行列值在当前的roi图像中获取对应的灰度值,使用其重新构成初始值x0′,y0′,z0′,进而构成新的加密矩阵e′。根据混沌系统对于初始值的敏感依赖性,由于初始值的不同使得混沌序列相较于注册时的有很大的不同,如此生成的e′必定与注册时生成的加密矩阵e有非常大的不同。这会使得本方案在认证中存在极高的拒真率。

3.8故在用户认证时,首先提示用户输入注册时存储信息的口令ps,判断当前输入口令ps′正误。如口令ps′正确,提取存于数据库的64个行列值;如口令ps′错误,终止当前认证过程。

3.9计算认证过程中得到的指静脉图像质心位置与存于数据库中质心位置之间的距离,这里的距离单位用元素个数表示。

3.10若两质心位置距离在阈值[0,μ]中,提取注册时存储于数据库中的64个灰度值,直接使用这些辅助数据构成加密矩阵;若不在阈值[0,μ]中,利用提取的64个行列值,按照对应位置在当前roi图像中获取灰度值来生成加密矩阵并提示用户当前处理的指静脉信息可能有误如图4所示。根据经验,推荐阈值设为[0,3]。

3.11当前生成的加密矩阵e′与当前完成位置置乱的特征模板ft′1异或:fe′1=ft′1⊕e′,得到认证过程中灰度值被加密了的全局特征模板fe′1。

4、在加密域中进行模板匹配

4.1因为对于灰度值的加密操作是将特征模板ft1与加密矩阵e进行异或,故在用户认证的匹配过程中,只需在加密域上计算两加密过后的特征模板之间距离即可。

4.2若该距离在方案设定的阈值中,用户认证成功如图5所示;反之,用户认证失败。根据实经验,推荐阈值设定为[0,1]。

本发明所述的一种基于陈氏混沌系统与指静脉辅助数据的安全认证方案,并不限于说明书和实施方式中的描述。凡在本发明的精神和原则之内,所做的任何修改、同等替换、改进等,均包含在本发明的权利要求范围之内。

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