基于指纹奇异点和Bloom过滤器的指纹加密方案
2019-05-17林波刘嘉勇徐鹏张鹏
林波,刘嘉勇,徐鹏,张鹏
(1.四川大学电子信息学院,成都 610065;2.四川大学网络空间安全学院,成都 610065;3.成都卓越华安信息技术服务有限公司,成都 610000)
0 引言
生物特征保护技术主要分两类[1]:一是生物特征加密技术,将生物特征与传统密码算法结合,生成保护模板。生物特征加密概念最早由文献[2]提出,其安全性依赖于加密算法或安全密钥,因此其安全性与基于口令的系统的安全性一样,一旦密钥丢失,生物特征数据就会被盗。二是可撤销模板保护技术,基于生物特征变换后,形成新的特征模板,存储在信息库中。文献[3]率先引入可撤销生物保护技术的概念,在图像域中应用不可逆几何变换,获得可撤销的面部图像和指纹。在进一步的工作中,文献[4]引入基于Bloom过滤器的模板保护技术,通过将未受保护的二进制模板转换为不可逆模板。这种方法已应用于多种生物特征,如虹膜[4]、面部[5]和指纹[6]等。由于生物特征中指纹具有唯一性、易采集,算法也最成熟,使得指纹识别的理论研究和实际应用最为广泛。本文以指纹作为研究对象,研究指纹模板加密技术。
1 相关研究工作
指纹识别系统易受环境影响,当手指磨损严重,干湿度发生变化都将对其识别产生影响,同时指纹模板也易被复制、被破解,造成安全隐患。文献[7]提出了基于指纹细节点比特串的不可逆模板保护方案,采用几何哈希技术变换指纹原始细节点,用相对特征向量表示细节点在图像中的相对位置,然后投影到三维空间矩阵中,以可变的顺序遍历它,提取出特征比特串,生成指纹保护模板。该算法不仅具有很好的安全性而且不需要对指纹进行预配准,但是构造三维空间的计算代价较大,且提取的指纹比特串长度很长,在匹配时会花费很多时间,因此实际应用性不强。文献[8]在此基础上提出了一种基于指纹奇异点的二进制串提取方法,首先提取二进制串之前先利用复数滤波器检测和提取指纹奇异点,再以指纹奇异点为基点计算其他指纹细节点相对于基点的距离和角度,以此生成几何哈希表,再从生成的几何哈希表中提取指纹二进制串,由于提取的指纹奇异点及与奇异点相关联的细节点数目远远小于指纹细节点总数,减少了比特串的提取数量,因此提高了计算速率,节省了较大的存储空间。文献[9]提出了一种基于Bloom过滤器的不可逆指纹模板算法,该算法使用可有效描述细节信息的细节关系代码(MRC),以及可实现不可逆性的Bloom过滤器,有效提高了指纹模板的安全性。文献[10]提出基于Bloom过滤器生成受保护的指纹模板,其基本思想是:先对指纹图像进行预校准,再选取指纹细节点进行特征提取生成二进制模板,然后在对二进制模板计算Bloom过滤器,生成新的保护模板,有效提高了指纹模板认证的准确性。
上述方案在指纹模板保护方面取得了一定的成效,但是也存在一些不足:
一是基于指纹奇异点的二进制串提取[8],由于提取的指纹细节点数量较少,导致鲁棒性不好,使得指纹匹配时的准确性偏低。
二是生成的二进制串中“0”表示无细节点的单元格,“1”表示有细节点的单元格,容易泄露位置信息,安全性不高。
三是基于Bloom过滤器的指纹模板保护方案[9-10],因为选取指纹细节点领域内的所有细节点,导致细节点数量过多,从而计算代价偏高。
针对以上分析,本文提出一种结合指纹奇异点和Bloom过滤器的指纹加密优化方案。先选取指纹奇异点,再以指纹奇异点为基点计算其他指纹细节点相对于基点的距离和角度,以此生成几何哈希表,再从生成的几何哈希表中提取指纹二进制串,生成一个二进制指纹模板,通过对二进制指纹模板进行分块,并将特征块结构进行重新排列,最后利用Bloom过滤器映射每个特征块,生成不可逆指纹模板。通过实验验证,这种方案具有很好的鲁棒性,提高了验证的准确率和模板的安全性,又减少了计算代价。
2 基于指纹奇异点的二进制模板提取
指纹奇异点是指纹脊线的凸脊的最大曲率处的指纹特征细节点。主要分为两类:一类是中心点(core):指纹脊线上曲率最大的点且周围的脊线大概是半圆的走向,另一类是三角点(delta):三条走向不同的指纹纹线的交汇点。
如图1所示,首先,对采集的指纹图像进行预处理,然后利用复数滤波器[11]检测和提取指纹奇异点,再以指纹奇异点为基点计算其他指纹细节点相对于基点的距离和角度,以此生成几何哈希表,再从生成的几何哈希表中提取指纹二进制串,最后对每一个指纹细节点进行同样操作,得到多条指纹特征二进制串,生成指纹特征二进制模板。
2. 1 指纹奇异点的选取
首先定义p(x,y)=(fx+fy)2,用于描述指纹平方复数点方向场。其中 fx是原始指纹图像x方向上的导数,fy是原始指纹图像y方向上的导数;其次定义一阶复数滤波器模型为exp{iφ},用于平方复数点方向场对奇异点进行判定,复数滤波器的响应c=μexp{ia(x,y)},其中 μ是某种对称模型,a是对称模型的几何方向;最后通过调整合适的 μ1和 μ2,使得| μ1|>T1,| μ2|>T2,T1和T2是阈值,则得到的滤波器响应分别近似于中心点和三角点局部方向场,由此选取指纹奇异点。
2. 2 生成几何哈希表
为了降低比特串的冗余量,减少计算代价,以指纹奇异点为基点进行几何哈希运算,经过几何哈希变换后,指纹原始信息隐藏在相对特征向量中,达到了保护指纹隐私的目的。具体步骤如下;
(1)选取奇异点sb=(xb,yb,θb,tb)作为基点。其中xb,yb,θb,tb,分别表示横坐标、纵坐标、方向场角度及细节点类型(中心点或三角点)。
(3)通过公式(1)计算Sb集合中所有点相对于奇异点sb之间的欧几里得距离差ED(i)(Euclidean Distance)和方向角度差值θ(i):
(4)依次遍历以指纹奇异点为基点的其他指纹细节点,重复以上步骤,产生多个链表,组成一个链表矩阵,此矩阵表示集合S中细节点与奇异点之间的相对特征向量。
2. 3 提取二进制模板
设原始指纹图像的大小为 x∈[0,X],y∈[0,Y],θ∈[0,2π],构建由d个单元格的2D平面结构,如图2所示,其中2D平面结构的长Lx和宽Ly满足Lx=2,LY=4π。将此2D平面结构划分为长为Cx,宽为Cy的单元格。2D平面结构所含的单元的个数d可以用公式(2)计算(表示向上取整)。
图2 2D平面结构图
将几何哈希链中的相对特征向量对[ED(i),θ(i)]投射到2D平面结构中,若投射后矩阵单元格中有一个或多个特征向量对,则标记此单元格为1,否则标记为0。然后按照一定顺序读取标记后的d个矩阵单元,最后得到由0和1组成的二进制串且长度为d,即指纹奇异点sb对应的比特串ai=(a1a2···ad)。然后对以奇异点为基点的其他指纹细节点进行同样操作,得到多条指纹二进制串,构成指纹二进制模板。
3 结合Bloom过滤器的优化方案
基于指纹奇异点提取的二进制模板具有自动配准和计算代价小的优点,但提取的指纹细节点数目过少,在交叉匹配的攻击中,容易暴露二进制矩阵中细节点的位置信息,从而恢复出准确的原始模板,因此安全性不高。所以在原有方案的基础上引入一种特殊加密技术,即Bloom过滤器[12]方案。
它是一种空间效率极高的随机数据结构,具有不可逆性[13],因此不能从基于Bloom过滤器的模板中准确恢复出原始模板,从而解决了安全性不高的问题。首先对基于指纹奇异点提取的二进制模板进行分块,并将特征块结构进行重新排列,最后利用Bloom过滤器映射每个特征块,生成不可逆指纹模板
结合Bloom过滤器的指纹模板优化方案,如图3所示。
首先将基于指纹奇异点提取的二进制模板分为N个特征块,每个特征块的大小为L×W(L是特征块的垂直大小,W是特征块的水平大小)。为了实现不可链接性,应该消除生物特征向量的信息成分,所以每个特征块被重新分为n个组合,然后对每个组合中的垂直行进行重新排列,通过这种方式,在每个组合之间交换行,既可以防止信息扩散又提高了防止基于特征块攻击的能力。
设定一个初始值为零,长度为2L的Bloom过滤器b,Bloom过滤器b取k个独立的哈希函数h1,h2···,hk,索引范围k∈[0,2L-1]。对于每个特征块,分别将每列转化为十进制数,并将其在Bloom过滤器b上对应索引下的值设置为1,从而得到经过Bloom过滤器b映射后的向量bk,遍历所有特征块,重复上述相同的步骤,得到可撤销模板C={bk|i=1,2,···N}。Bloom过滤器b的每个特征块可以被多次设置为1,但只有第一个更改有效,从而隐藏了它的细节点数量及其位置,结果实现不可逆性。
图3 结合Bloom过滤器的指纹模板优化方案图
4 实验测试与性能分析
为了验证本文方案性能,实验采用实际采集指纹库和公开标准指纹库FVC2002-DB2[14]两套独立的数据库进行测试。
4. 1 实验参数选取
采用实际采集指纹库进行实验参数选取,该指纹库中共有75个手指,每个手指有5枚指纹样本,则指纹库中共有375枚。本文结合Bloom过滤器的优化方案存在的三个参数关系如下:S=N×L×W,其中S表示原始模板的大小,由于模板是固定的,只需要为L和W建立值,那么N的值也被确定。L大小与Bloom过滤器b的长度有关,W值与每个Bloom过滤器中映射的细节点数量有关。因此,L直接影响Bloom过滤器的鲁棒性,如果选择的值太大,准确性就会降低;如果选择的值较小,根据W选定值,就会有大量的碰撞,也会导致准确性降低。而W值则直接影响模板的不可逆性,W值太大会导致冲突增加,准确性下降;W值太小将导致不可逆性很弱。通过实验表明,W的适当取值范围取决于所选的L值。
(1)参数L值的选取
由于二进制模板中相关性越强,相邻的W就越相似。通过估算模板的自由度df,选取L的最优值:
为了估算模板的自由度df,通过模拟汉明距离HD分布与二项分布均值p和标准差σ[15]:
为了选取最优的L值,df需要考虑模板内垂直的所有关联。
图4 实际采集指纹数据库中指纹特征的汉明距离分布
根据图4显示的指纹汉明距离分布图,结合公式(3-4)计算L的最优值,结果如表2所示。
表2 L的最优值
从表2结果显示,L的最优值是11。
(2)参数W值的选取
在Bloom过滤器中,W值会影响每一个块中不同序列的数量,L值越大,被激活的块中序列数就越多,块中细节点之间的碰撞可能性就越大。由于指纹特征样本内存在的相关性,并非所有的细节点都有同等可能性,所以选取原始模板不同细节点的平均值k。对于映射的细节点数量,不同序列被激活的概率p为:
为了设置概率p的边界,引入细节点分布的重新映射率rmR[16],对每个块中的细节点之间的非独立性进行建模,概率p为:
为了达到模板不可逆性之间的平衡和验证的准确性,设置rmR在10%-45%之间。
表3 W的最优值
从表3结果显示,W∈[40,175],由于原始模板的大小是可变的,所以需要考虑水平方向上模板的细节点的平均数量,即模板的维度U=160。同时为了保持准确性,我们选择在水平方向上映射的Bloom过滤器数量的最低值。因此,平均
4. 2 实验测试分析
在实验测试中采用公开标准指纹库FVC2002-DB2进行测试,该指纹库中由100个手指样本组成,每个手指有8枚指纹样本,共有800枚指纹样本。
(1)实验评价指标
评价指纹算法性能好坏的两个重要的指标:拒识率(FRR)和误识率(FAR)。FRR:把应该相互匹配成功的指纹当成不能匹配的指纹的比例,FAR:把不应该匹配的指纹当成匹配的指纹的比例。其计算公式如下:
(2)准确性分析
将最优值L=11和最优值W=40应用于系统中测试准确性,如果测试结果显示性能参数有所提高,则结合Bloom过滤器的指纹加密优化方案可行。测试结果如图5和表4所示。
表4 最优结果对比
图5 ROC曲线
通过对比,拒识率FRR和误识率FAR都有所降低,识别性能效果更好。说明本文提出的结合Bloom过滤器的指纹加密优化方案具有很好的鲁棒性,有效降低了错误率,提高了指纹模板识别的准确性。
(3)安全性分析
①暴力破解攻击
当攻击者无法获得指纹密钥时,只能通过暴力破解的方式获得可撤销指纹模板。在模型中暴力攻击的效率在于密钥t的大小,攻击者需要在特征块中同时猜测正确的细节点分布顺序和密钥才能成功,其成功的概率可以估算2(r-N/n×|t|)-1=2-1279[17(]其中r代表每个块的序列平均数为240,总块数N为1024,n为32的二进制组合,密钥|t|=(5×32)!32≈230,261),在计算上暴力破解难度比较大;如果同时攻击每个特征块,由于攻击是并行化,所以成功率依然很低。
②重建攻击
在交叉匹配的情况下,这种攻击目的是模拟保护模板并与原始模板产生相关性,由于暴力攻击的概率很低,我们只考虑原始模板。冒名攻击者的汉明距离值低于改进系统的结果,那么重建的模板不被系统所接受。因此,基于Bloom过滤器的方案不接受对接近原始模板的假模板进行有效重建,所以安全性得到保障。
5 结语
本文研究了基于指纹奇异点的二进制串提取技术,在此基础上结合Bloom过滤器进行了改进,提出结合指纹奇异点和Bloom过滤器的优化指纹加密方案。通过实验验证,这种方案具有很好的鲁棒性,降低了错误率,既提高了验证的准确率,又增加了模板的不可逆性。