基于Chebyshev混沌映射与模糊金库的指静脉安全认证方案*
2019-06-25蓝婷婷翁昕耀
蓝婷婷 ,游 林 ,翁昕耀
(1.杭州电子科技大学 通信工程学院,浙江 杭州 310018;2.杭州电子科技大学 网络空间安全学院,浙江 杭州 310018)
0 引 言
指静脉[1]是一种位于手指表皮皮肤之下的生物特征。它与其他人体生物特征相比,状态更加稳定,不会因外界环境影响或是手指表皮皮肤变化而产生明显的改变。指静脉相较于指纹更加不容易被物理盗取,且可用于提取和处理的特征信息种类更 多[2]。非接触式的指静脉采集 仪器[3]利用光学原理采集用户静脉图像,降低了用户使用的不适感。通过设备采集得到的指静脉图像文件很小,利用简单的处理算法可以达到非常快的匹配速度,减少了用户认证时消耗的时间成本。
模 糊金库[4]是通过绑定密钥来保护生物特征信息安全的加密方案。
用户注册时,模糊金库方案首先使用随机数发生器生成密钥,通过密钥构成用于生成模糊金库的多项式并对用户生物特征信息进行加密,最后得到混有杂凑点的模糊金库。
用户认证时,该方案首先提取当前用户生物特征信息与注册时生成的模糊金库进行对比,得到用于重构多项式的候选点集。从候选点集中选取一定数量的点,重构多项式进而得到密钥,通过将该密钥与注册时生成的密钥进行匹配以完成用户身份认证功能。
随着早年间提出的模糊金库出现多项式被破解、密钥匹配出现漏洞,研究学者们近年来提出了多种创新性模糊金库方案,用于增强模糊金库方案的安全性和稳定性,列举其中几种方案如下。
参考文献[5]提出了一种利用指纹特征点分类进行预对齐的模糊金库方案,降低了模糊金库认证时的误识率(False Recognition Rate,FRR)。参考文献[6]提出了一种基于面部特征与掌纹特征相结合的多模态生物特征模糊金库方案,在没有噪声的情况下将真实匹配率(Genuine Match Ratio,GMR)提升至94%。参考文献[7]提出了一种在快速在线认证(Fast Identity Online,FIDO)上的指纹模糊金库方案,通过使用快速在线认证的特性、简单的指纹细节对齐、以及点对点匹配,使得此方案具有抵御暴力攻击、相关性分析攻击和密钥反转攻击的能力。参考文献[8]提出了一种基于生物特征的模糊金库改进方案,减少了生物特征识别仪器之间因为动态随机模式的中位差异而产生 的影响。参考文献[9]提出了一种通过纠错码生成多项式的模糊金库方案,降低了用户认证时的拒真率(False Accept Rate,FAR)。
值得注意的是,近年来也出现了几种典型的针对模糊金库的攻击方法。如针对基于循环冗余校验码(Cyclic Redundancy Check,CRC)的模糊金库的CRC碰撞攻击,与针对一般模糊 金库的混合替换攻击[10]以及针对多模 态模糊金库的交叉攻击[11]。
本文提出了一种基于Chebyshev混沌映射与模糊金库的指静脉安全认证方案,以用户口令作为Chebyshev混沌映射初始值生成混沌序列,用该混沌序列生成密钥,构成用于生成CRC模糊金库的多项式。认证时,在完成CRC模糊金库认证后,通过重构密钥与混沌序列的匹配完成用户二次身份认证。
1 相关工作介绍
1.1 CRC校验码生成算法介绍
常用于模糊金库的CR C标准码有CRC-16[12](Cyclic Redundancy Check of 16 bit,16位循环冗余校验 码)、CRC-CCITT[13](Cyclic Redundancy Check based on The International Telegraph and Telephone Consultative Committee,基于国际电话电报标准的循环 冗余校验码)和CRC-32[12](Cyclic Redundancy Check of 32 bit,32位循环冗余校验码)。这些CRC标准码算法的生成多项式各不相同,分别对应生成16 bit、16 bit及32 bit的CRC校验码。
以CRC-CCITT为例,其对应的生成多项式为
若利用其生成校验码,则对应的运算域定义在GF(216)。
设进入运算的信息i为nbit位的二进制数,写成anan-1…a2a1。则将通过以下步骤完成对信息i的CRC校验码生成。
(1)将i在运算域中表示成多项式形式,形如:
(2)在 i的后面添加 16 个 0,构成 (n+16)bit位的二进制数,对应生成新的多项式形如:
(3)g(x)除以 m´(x)获得多项式,设为:
1.2 拉格朗日插值法操作介绍
在这里,做如下定义:若已知映射y=q(x)中,有n+1对满足映射的点,将它们构成的点集设为 D={(xi,yi)|i=1,2,…,n,n+1}。那么可以考虑利用点集中所有元素构造出不超过n次的多项式,设为y=qn(x),使得D中有n个点满足此多项式。
表达式(5)被称为插值条件。那么y=qn(x)可以通过以下方法被求出。
设一个整数集合为(W=1,2,…,n+1),对于任意的整数j∈W,有集合Bj={i≠j,i∈W},使得多项式 rj(x)可以写作
rj(x)为 n 次多项式,且满足对 ∀i∈ Bj有 rj(xi)=0或 rj(xi)=1。
构造多项式:
该 多项式即为拉格朗日插值多项式[9]。
1.3 Chebyshev混沌系统简 述
Chebyshev混沌系统[14]属于一维混沌系统,对于当下只需生成单组混沌序列的用户要求有很高的工作效率,由此系统生成的混沌序列有类似于白噪声的统计特性,且序列具有遍历性。
Chebyshev混沌系统是对系统迭代次数与数据精度设定之间的关系没有过多的要求,不会因为迭代次数超过设定的数据精度而产生周期性序列。由此,该混沌系统具有抵御回归映射与非线性预测攻击的能力。
Cheyshev混沌系统的映射以阶数作为参数,通用表达式如下。
其中ω表示映射的阶数,xn为进入系统的输入值,xn+1为输出值,xn∈[-1,1]。当满足条件|ω|≥2时,有Chebyshev系统进入混沌状态。
Chebyshev混沌系统对进入系统的初始值极为敏感,由系统产生的混沌序列常用二进制数表示,这样做的目的为放大序列数据之间存在的差异性。
2 方案具体实现步骤详述
本方案主要由5部分组成:指静脉图像预处理、指静脉特征细节点提取、模糊金库上锁、模糊金库解锁、数据匹配。图1为本方案的整体流程图。
图1 基于Chebyshev混沌映射和模糊金库的指静脉认证方案流程
2.1 指静脉图像预处理与特征细节点提取
在预处理中,本方案通过计算指静脉图像质心位置,利用质心位置信息计算出指静脉图片需要旋转校正的角度,并根 据该角度对指静脉图像进行旋转校正[15]。
利用边缘检测算法得到指静脉上下边缘,生成子窗口获得指静脉图像感兴趣区域(Region O f I nterest,ROI)图像[16-17]。本 方案使用的边缘检测算子为canny算子[18]。完成预处理工作, 本方案 使用Niblack局部阈值分割算法[19-21]提取指静脉骨架特征模板,并对其进行滤波、数学形态细化操作,最后将特征模板归一化为64×96的图像矩阵。
提取指静脉骨架特征上的分叉点与端点后,为了减轻图像平移给特征细节点位置造成影响,在这里计算指静脉相邻特征细节点之间最大距离与最小距离,设为dmax与dmin。并将(dmax,dmin)作为进入模糊金库的指静脉特征点,形成点集T={(dimax,dimin)|i=1,2,…,Nf},其中 Nf表示特征细节点总个数。
2.2 基于Chebyshev混沌映射的CRC模糊金库上锁
在此阶段,将Chebyshev混沌系统与CRC模糊金库上锁阶段操作结合。选取CRC-CCITT标准进行编码,运算域为GF(216),并且设生成多项式次数为12。具体操作如下。
(1)将注册用户输入口令 ps (ps∈ [-1,1])作为Chebyshev混沌映射初始密钥, 通过反复迭代得到混沌序列。对ps进行MD5函数[22]加密,将加密结果(MD5(ps)与混沌序列一同存于数据库中。
(2)将混沌序列写成8 bit位二进制数的形式(若所得数据超出8 bit位,则取前8bit数据即可),得到二进制混沌数据串,设为S。在S中随机选取一段长度为192 bit的数据串,设为k。k为生成模糊金库多项式的密钥。
(3)将k均分为12个16 bit的二进制数据串,设为a1,a2,…,a11,a12,利用CRC-CCITT编码标准对k进行编码,得到k的纠错码,设为a0。
(4)利用a0,a1,…,a11,a12构成模糊金库多项式,设为:
(5)将特征点集T中所有点做如下操作,di=dimax×dimin,由此得到新的集合,设为 T1={di|i=1,2,…,Nf}。
(6)将T1中所有元素代入多项式f(x),有
(7)由此得到点集 U={(di,ui)|i=1,2,…,Nf}。点集U就是用户指静脉特征加密点集。
(8)生成杂凑点集,并将该点集设为Z={(z1j,z2j)|j=1,2,…,Nz}。其中,Nz为杂凑点总个数,Nz>>Nf;且对于任意的点 (z1j,z2j)都不在多项式f(x)上。
(9)将点集U与点集Z合并成为模糊金库,设为 V=U ∪ Z={(v1i,v2i)|i=1,2,…,Nz+Nf}。
特别说明。因为预先设定的多项式次数为12,使用的CRC标准码为CRC-CCITT,生成的校验码长度为16 bit,故将密钥k的长度就取192 bit。
在步骤(1)中提到的迭代操作是指将当下得到的Chebyshev混沌映射输出值作为后一次的输入值,反复进行运算。由于需要192 bit的二进制混沌数据串,所以迭代次数至少要大于24。
2.3 基于Chebyshev混沌映射的CRC模糊金库解锁
在解锁阶段,获取待认证用户的指静脉原始图像,经过图像预处理、特征细节点提取得到指静脉特征细节点集 T´={(d´imax,d´imin)|i=1,2,…,N´f}。将T´中 所 有 点 做 d´i=d´imax×d´imin的 操 作, 得 到 集 合T1´={d´i|i=1,2,…,N´f}。
(1)通过T´1与模糊金库V对比得到重构多项式的候选点集,设为 C={(c1j,c2j)|j=1,2,…,N}。
其中N≥13,因为在上锁阶段利用192 bit的二进数串形成次数为12的多项式。根据拉格朗日插值法原理,至少需要13个点才可重构多项式。
(2)在C中选取若干个点,通过拉格朗日插值法重构多项式
f´(x)=a´12x12+a´11x11+…+a´1x+a´0(11)
(3)利用CRC校验判断多项式f´(x)的常数项a0´是否正确。若a0´为正确的CRC校验码,则进入下一判断步骤;若a0´不为正确的CRC校验码,则认为当前用户认证失败。
2.4 数据匹配
用户通过模糊金库解锁阶段的认证,进入此过程完成第二次身份认证。
(1)提示认证用户输入口令 ps´ (ps´∈ [-1,1]),对 ps´进行 MD5 加密,判断 MD5(ps´)的结果是否与数据库中MD5(ps)的结果一致。若结果一致,提取数据库中的Chebyshev混沌序列;若不一致,认为当前用户认证失败。
(2)将混沌序列写成二进制数据串的形式,即 S。提取重构多项式的系数 a1´,a2´,…,a11´,a12´,并将系数按序组成数据串与S进行数据匹配。若在S中存在一段数据串与系数组成的数据串匹配一致,则用户认证通过;若匹配失败,则用户认证失败。
3 实验与分析
在实验部分中,用户指静脉数据来源于实验室自制的指静脉数据库,包括186个用户,每个用户8张指静脉图像,共计1488张指静脉图像。硬件环境为第三代i5处理器,内存大小为4G,硬盘大小为100G。软件环境为Windows10,64位操作系统。仿真环境为MATLAB R2014a。
在实验和仿真中,我们还编写了实际可操作的用户界面,该操作界面包括用户注册与用户认证功能。为了使实验过程能清晰明确,在界面中显示采集获得的指静脉灰度图像、模糊金库多项式、加密后的指静脉特征数据点以及模糊金库。图2为用户注册时操作界面示意图,图3为用户认证时操作界面示意图。
图2 用户注册成功界面示意图
图3 用户认证成功界面示意图
3.1 指静脉特征点混淆
将模糊金库多项式次数设为12,用CRC-CCITT编码标准生成CRC码。随机选取数据库中任意一位用户指静脉图像,为了使实验结果清晰且满足多项式重构条件,在实验中,加入杂凑点500个,提取用户特征细节点个数为22个。用户在注册和认证中输入口令得到以下结果。
在注册过程中,得到的指静脉特征加密数据点的结果如表1所示。为了使结果直观,图4展示了这些特征加密数据点的位置分布情况。
表1 模糊金库多项式加密后的指静脉特征点数据
图4 指静脉特征加密点分布图
用户完成注册,得到模糊金库,为了使模糊金库结果直观,将模糊金库中点的位置如图5进行表示。其中,指静脉特征加密点与杂凑点用不同标志表示由于模糊金库中数据点个数庞大,故通过表2展示模糊金库中部分数据点的情况。
对比表1与表2,能够发现表2中全部为杂凑点数据,没有出现指静脉加密码数据点。虽然表2展现的只是一部分模糊金库数据点情况,但也能得出利用大量的杂凑点进行混淆能对指静脉特加密数据点起到安全保护的结论。
更进一步,由于模糊金库中用户指静脉特征点通过加密操作,以密文方式存在,指静脉的真实数据点得到了保护。模糊金库中大量杂凑点的存在,导致攻击者从中准确获取指静脉加密数据点难度很大,且杂凑点个数越多,整个模糊金库的安全性就越高。
图5 模糊金库点集示意图
表2 模糊金库部分数据表
3.2 多项式次数对指静脉认证的影响
本实验使用CRC-CCITT编码标准,随机抽取数据库中150个用户的指静脉图像,并将多项式次数分别取为10、11、12、13。为了使结果具有可比性,每一次实验中加入的杂凑点个数相同,均为500个,选取的指静脉特征细节点个数也相同,为20个。通过实验求得4种多项次数下对应的本方案的拒真率以及误识率。表3展示了实验结果。
表3 不同多项式次数下对认证方案参数的影响
根据表3结果所示,随着多项式次数的加大,误识率与拒真率都是呈下降的趋势。特别的,在误识率上,本方案达到了较好的结果,即4个不同次数情况下,误识率都小于或等于2%。
总体而言,本方案在多项式次数大于11时,有误识率小于1%,拒真率小于10%的结果。
3.3 混合替换攻击分析
关于混合替换攻击,在基于CRC的模糊金库中,攻击者可事先利用伪造密钥生成对应的CRC校验码与模糊金库多项式生成点。将伪造的模糊金库多项式生成点替换模糊金库中已有的点,在替换之后的模糊金库中既有杂凑点、合法用户的数据点、还有攻击者伪造的模糊金库多项式生成点。攻击者通过此方法使得合法用户可以通过认证的情况下,自身也能利用这个替换后的模糊金库悄然通过认证。
在本方案中,虽然攻击者能够按照模糊金库上锁过程生成相应数据,但决定模糊金库多项式的Chebyshev混沌序列是通过用户在注册时输入口令生成的,且初始值的精度由用户决定。另一方面,注册时存于数据库中的用户口令通过MD5函数加密。认证时,口令的匹配在加密域上完成,攻击者不能在此过程中截获口令的明文信息。
由于初始值的精度不确定,而Chebyshev混沌系统对于初始值具有敏感依赖性,以及Chebyshev混沌系统不会产生具有周期性的混沌序列。攻击者想要同时满足模糊金库条件与混沌系统条件以达到破解安全用户指静脉特征信息的目的是非常困难的。由此,本方案具有抵御混合替换攻击的能力。
3.4 CRC碰撞攻击分析
关于CRC碰撞,是攻击者通过多次生成与原密钥等长的伪造密钥,利用CRC编码生成对应的伪CRC校验码尝试验证,直至验证成功。这是CRC校验编码的内部缺陷,而且不管CRC验证码码长是多少,以这种方式去破解CRC校验码只是时间成本上的问题。
本方案在认证过程中,通过模糊金库解锁后,还需要进行口令匹配与数据串的匹配才能完成用户认证功能。虽然本方案不能解决基于CRC的模糊金库的固有缺陷,但是通过当前获得的多项式系数与Chebyshev混沌序列数据串的匹配能够实现二次筛选,确定用户是否合法。所以从方案整体来看,本方案具有抵御CRC碰撞攻击的能力。
4 结 语
本方案提出了基于Chebyshev混沌映射与模糊金库的指静脉安全认证方案。利用Chebyshev混沌映射迭代用户口令生成混沌序列,构造了模糊金库多项式,加密了指静脉特征细节点,达到了指静脉数据信息安全保护的目的。为了保证用户输入口令的信息安全,注册时,数据库中存储的是加密后的用户口令。并且在认证时,口令的合法性匹配也是在加密域中完成的。为了解决基于CRC的模糊金库的固有缺陷,本方案通过二次数据匹配避免了由于CRC碰撞给模糊金库带来的安全风险。通过实验与数据分析,本方案完成了利用杂凑点混淆指静脉加密数据点的功能,在模糊金库多项式次数大于11的情况下,本方案在具有较低的误识率。此外,本方案能够抵御针对模糊金库的混合替换攻击,与CRC碰撞攻击。