1.本技术涉及生物特征采集与识别的技术领域,具体而言,涉及一种指纹密钥生成方法、系统、介质及设备。
背景技术:2.随着网络信息化技术的发展,网络应用系统在各个领域都得到了普遍应用,给人们的生产和生活带来了极大的便利。但是,在使用这些网络应用系统时人们经常被各种账号和口令所困扰。如何能在保证用户账号安全的同时,准确且方便地对用户进行身份认证是网络应用系统必须解决的首要问题。
3.传统的认证方法主要通过账号与口令对用户身份进行验证,但是口令容易遗忘、泄露或者被盗,从而造成用户账号丢失、冒用、盗用等诸多网络安全问题。而生物特征识别是近年来迅速发展起来的一种身份认证技术,它利用人与生俱来的生物特征充当身份认证时的信物凭证。由于人的生物特征具备唯一性、方便性与终身不变性等特点,使采用生物特征进行身份认证的方法克服了传统身份认证方案中的系列难题,逐渐成为近年来身份认证领域学术研究的热点问题。
4.传统的基于生物特征识别的身份认证方法需要在应用系统中保存用户的生物特征模板,容易造成用户生物特征的丢失和泄露。
技术实现要素:5.本技术实施例的目的在于提供一种指纹密钥生成方法,其无需保存任何指纹特征数据或信息,在每次需要密钥时,仅通过随时采集指纹图像即可重构指纹密钥,完全克服了传统指纹密钥生成方法中使用中间存储介质的局限性,极大程度地保证了指纹数据的安全性,提升了用户体验值,且有效降低用户生物特征的丢失和遗漏的风险。
6.本技术实施例的第二目的还在于提供一种实现上述方法的指纹密钥生成系统。
7.本技术实施例的第三目的还在于提供一种计算机存储介质,其存储有计算机程序,该程序被处理器执行时实现上述的指纹密钥生成方法。
8.本技术实施例的第四目的还在于提供一种计算机设备,包括存储器及处理器,所述存储器存储有计算机程序,该程序被处理器执行时实现上述的指纹密钥生成方法。
9.第一方面,提供了一种指纹密钥生成方法,包括以下步骤:s1、指纹图像预处理:s2、确定出稳定特征点集合:s3、构造密钥特征点集合:s4、计算特征距离:s5、生成原始指纹密钥。
10.其中,步骤s1指纹图像预处理包括以下步骤s11至s12:
11.s11、采指纹图像预处理集同一手指的k副指纹图像;
12.s12、提取每副指纹图像中多个特征点组成指纹特征点集合,k副指纹图像得到k个指纹特征点集合k个指纹特征点集合组成一个指纹特征总集合fm={fmi|i=1,2,
…
,k},fmi表示由第i个指纹图像得到的特征点集合,k表示
指纹图像的数量,ki等于fmi的基数表示集合fmi包含的特征点个数,分别表示第i副指纹图像的第j个特征点的横坐标、纵坐标、类型和方向场。
13.步骤s2确定出稳定特征点集合包括以下步骤s21至s28:
14.s21、任取指纹特征总集合fm中的一个集合作为参考集合,其中1≤r≤k;
15.s22、将其它k-1个指纹特征点集合作为k-1个对比集合,每个对比集合记为1个对比集合,每个对比集合记为其中1≤s≤k且s≠r;
16.s23、将参考集合中的每个特征点与每个对比集合中的特征点逐个进行匹配;
17.s24、计算参考集合与每个对比集合中类型相同的两个特征点s24、计算参考集合与每个对比集合中类型相同的两个特征点与之间的欧式距离和方向场之差
18.s25、把每个对比集合fms中的特征点分别按照其对应的和进行平移和旋转,得到kr×ks
个临时特征点集合tm
ij
;
19.s26、计算fmr与每个tm
ij
的匹配度,匹配度计算方法为:
[0020][0021]
其中,p
ij
为fmr与每个tm
ij
中匹配成功的特征点的个数,如果特征点与临时特征点集合tm
ij
中的第m个特征点的特征点之间的欧式距离小于设定阈值δd且方向场之差小于设定阈值δθ,则认为这两个特征点匹配成功,给特征点贴上标签值l,表示特征点与fmr里的第l个特征点是同一个特征点;
[0022]
s27、计算最大匹配度q
uv
,即比较步骤s26中得到的kr×ks
个q
ij
并把数值最大的一个记为q
uv
;
[0023]
s28、把步骤s27中计算得到的q
uv
对应的临时特征点集合tm
uv
中所有匹配成功的特征点选出来组成新特征点集合,称为稳定特征点集合,记作fm's,记ns=|fm's|,把特征点作为稳定特征点集合fm's的最佳中心点,同时得到稳定特征点集合的集合fm',即fm
′
={fm
′s|s=1,2,
…
,k-1,ns=|fm
′s|}。
[0024]
步骤s3构造密钥特征点集合包括以下步骤s31至s33:
[0025]
s31、按照标签值是否相同依次检查每个稳定特征点集合fm's里的特征点是否也存在于集合fm'的其它稳定特征点集合中;若存在,则把当前特征点按顺序放入等长稳定特征点集合中,记为fm's',同时得到等长稳定特征点集合的集合fm”={fm
″s|s=1,2,
…
,k-1},其中每一个fm
″s都具有相同的元素个数,记|fm
″s|=n;
[0026]
s32、从fm”中任取m1个等长稳定特征点集合,随机取m2次,得到m1*m2个等长稳定特征点集合,这m1*m2个等长稳定特征点集合称作密钥特征点集合;
[0027]
s33、令m=m1*m2,则m个密钥生成特征点集合可以表示为
[0028]
步骤s4计算特征距离包括以下步骤s41至s42:
[0029]
s41、计算smk的最佳中心点与smk中其余特征点中其余特征点之间的欧氏距离o∈{1,2,
…
,n},1≤j≤n且j≠o,得到指纹特征点特征距离集合,记作
[0030]
s42、设定最佳中心点与其它特征点之间的切尾均值,切尾均值的计算公式为:
[0031][0032]
其中d
j,min
为至中的最小值,d
j,max
为至中的最大值,得到切尾均值集合fd={dj∣j=1,2,
…
,n-1}。
[0033]
步骤s5生成原始指纹密钥包括以下步骤s51至s55:
[0034]
s51、从每个切尾均值小数点后最后一位小数开始往前依次进行四舍五入,直到个位上的数完成四舍五入,经过这样处理之后的切尾均值全部变成了个位上是零的整数;
[0035]
s52、把个位上是零的切尾均值分别除以10,得到只保留了10进位以上的整数;
[0036]
s53、把每个十进制数依次转化为二进制数据;
[0037]
s54、截取二进制数据右边的l比特,不足l比特的在左边用0补齐;
[0038]
s55、把n-1个l比特的二进制比特串依次连接在一起形成l
×
(n-1)比特的原始指纹密钥bk。
[0039]
在一种可实施的方案中,还包括步骤s6、利用公式hk=hash(bk||salt)在原始指纹密钥bk后添加特定字符串进行加盐处理,利用单向hash函数进行消息摘要计算,将摘要值hk作为该组指纹图像的指纹密钥。
[0040]
在一种可实施的方案中,还包括步骤s7、在步骤s6中的指纹密钥泄漏时,改变hk=hash(bk||salt)中的salt值,以更新指纹密钥hk。
[0041]
在一种可实施的方案中,步骤s26中欧式距离的设定阈值δd的数值为10.5~11.5;步骤s26中方向场之差的设定阈值δθ的数值为13.5~14.5;步骤s32中的参数m2的数值取值为4~6次。
[0042]
在一种可实施的方案中,步骤s26中欧式距离的设定阈值δd的数值为11;步骤s26中方向场之差的设定阈值δθ的数值为14;步骤s32中的参数m2的数值取值为4或6次。
[0043]
根据本技术的第二方面,还提供了一种指纹密钥生成系统,用于实现上述方案中的指纹密钥生成方法,包括预处理模块、稳定特征点处理模块、密钥特征点生成模块、特征距离计算模块和原始密钥生成模块。预处理模块用于进行指纹图像预处理,实现上述的步骤s1;稳定特征点处理模块,用于确定出稳定特征点集合,实现上述的步骤s2;密钥特征点生成模块,用于构造密钥特征点集合,实现上述的步骤s3;特征距离计算模块,用于计算特征距离,实现上述的步骤s4;原始密钥生成模块,用于生成原始指纹密钥,实现上述的步骤s5。
[0044]
在一种可实施的方案中,还包括加盐模块,用于利用公式hk=hash(bk||salt)在原始指纹密钥bk后添加特定字符串进行加盐处理,利用单向hash函数进行消息摘要计算,将摘要值hk作为该组指纹图像的指纹密钥。
[0045]
在一种可实施的方案中,还包括密钥更新模块,在上述的步骤s6中的指纹密钥泄漏时,用于改变hk=hash(bk||salt)中的salt值,以更新指纹密钥hk。
[0046]
根据本技术的第三方面,还提供了一种计算机存储介质,其存储有计算机程序,该程序被处理器执行时实现上述方案中的指纹密钥生成方法。
[0047]
根据本技术的第四方面,还提供了一种计算机设备,其特征在于,包括存储器及处理器,存储器存储有计算机程序,该程序被处理器执行时实现上述方案中的指纹密钥生成方法。
[0048]
与现有技术相比,本技术的有益效果为:
[0049]
综上,本技术的方法无需保存任何指纹特征数据或信息,在每次需要密钥时,仅通过随时采集指纹图像即可重构指纹密钥,完全克服了传统指纹密钥生成方法中使用中间存储介质的局限性,极大程度地保证了指纹数据的安全性,提升了用户体验值,且有效降低用户生物特征的丢失和遗漏的风险。
[0050]
此外,利用加盐的方法实现指纹密钥的可撤销和指纹密钥的更新,基本解除了指纹数据丢失与泄露风险。
附图说明
[0051]
为了更清楚地说明本技术实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本技术的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
[0052]
图1为根据本技术实施例示出的一种指纹密钥生成方法的流程简图;
[0053]
图2为根据本技术实施例示出的指纹密钥生成方法的步骤s2的代码结构简图;
[0054]
图3为根据本技术实施例示出的指纹密钥生成方法的步骤s3的代码结构简图;
[0055]
图4为根据本技术实施例示出的指纹密钥生成方法的切尾均值生成示意图;
[0056]
图5为根据本技术实施例示出的指纹密钥生成方法的步骤s5的代码结构简图;
[0057]
图6为根据本技术实施例示出的另一种指纹密钥生成方法的流程简图;
[0058]
图7为根据本技术实施例示出的指纹密钥生成方法的生成摘要值hk的表单示意图;
[0059]
图8为本技术中不同的欧氏距离的设定阈值δd影响下解密尝试次数与解密成功率的关系趋势图;
[0060]
图9为本技术中不同的方向场之差的设定阈值δθ影响下解密尝试次数与解密成功率的关系趋势图;
[0061]
图10为本技术中不同的重复选取次数m2影响下解密尝试次数与解密成功率的关系趋势图。
[0062]
图11为本技术中两种δd、δθ及m2的取值方案影响下解密尝试次数与解密成功率的关系趋势图。
[0063]
图12为根据本技术实施例示出的一种指纹密钥生成系统的流程简图。
具体实施方式
[0064]
为使本技术实施例的目的、技术方案和优点更加清楚,下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本技术一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本技术实施例的组件可以以各种不同的配置来布置和设计。
[0065]
因此,以下对在附图中提供的本技术的实施例的详细描述并非旨在限制要求保护的本技术的范围,而是仅仅表示本技术的选定实施例。基于本技术中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
[0066]
根据本技术的第一方面,首先提供一种指纹密钥生成方法。
[0067]
实施例1:
[0068]
如图1所示为一种指纹密钥生成方法,包括以下步骤:
[0069]
s1、指纹图像预处理:s2、确定出稳定特征点集合:s3、构造密钥特征点集合:s4、计算特征距离:s5、生成原始指纹密钥。
[0070]
其中,步骤s1指纹图像预处理包括以下步骤s11至s12:
[0071]
s11、采指纹图像预处理集同一手指的k副指纹图像;
[0072]
需要说明的是,步骤s11采用传统的方法进行指纹图像处理,包括但不限于去除指纹图像中的噪声,使指纹图像清晰、边缘明显,以便于提高特征点提取的准确率。这包括指纹区域检测、图像质量判断、方向图和频率估计、图像增强、指纹图像二值化和细化等过程。
[0073]
s12、提取每副指纹图像中多个特征点组成指纹特征点集合,k副指纹图像得到k个指纹特征点集合k个指纹特征点集合组成一个指纹特征总集合fm={fmi|i=1,2,
…
,k},fmi表示由第i个指纹图像得到的特征点集合,k表示指纹图像的数量,ki等于fmi的基数表示集合fmi包含的特征点个数,分别表示第i副指纹图像的第j个特征点的横坐标、纵坐标、类型和方向场。
[0074]
如图2所示的程序代码结构图,步骤s2确定出稳定特征点集合包括以下步骤s21至s28:
[0075]
s21、任取指纹特征总集合fm中的一个集合作为参考集合,其中1≤r≤k;
[0076]
s22、将其它k-1个指纹特征点集合作为k-1个对比集合,每个对比集合记为1个对比集合,每个对比集合记为其中1≤s≤k且s≠r;
[0077]
s23、将参考集合中的每个特征点与每个对比集合中的特征点逐个进行匹配;
[0078]
s24、计算参考集合与每个对比集合中类型相同的两个特征点s24、计算参考集合与每个对比集合中类型相同的两个特征点与之间的欧式距离和方向场之差
[0079]
s25、把每个对比集合fms中的特征点分别按照其对应的和进行平移和旋转,得到kr×ks
个临时特征点集合tm
ij
;
[0080]
因为参考集合fmr中有kr个点,某一个对比集合fms中有ks个点,当参考集合fmr中的每一个点逐个与对比集合fms中的每一个点对比时,共有kr×ks
次对比,产生kr×ks
个和按照每次的和值平移和旋转,每平移旋转一次产生一个临时集合,共产生kr×ks
个临时集合tm
ij
。
[0081]
s26、计算fmr与每个tm
ij
的匹配度,匹配度计算方法为:
[0082][0083]
其中,p
ij
为fmr与每个tm
ij
中匹配成功的特征点的个数,如果特征点与临时特征点集合tm
ij
中的第m个特征点的特征点之间的欧式距离小于设定阈值δd且方向场之差小于设定阈值δθ,则认为这两个特征点匹配成功,给特征点贴上标签值l,表示特征点与fmr里的第l个特征点是同一个特征点;
[0084]
s27、计算最大匹配度q
uv
,即比较步骤s26中得到的kr×ks
个q
ij
并把数值最大的一个记为q
uv
;
[0085]
s28、把步骤s27中计算得到的q
uv
对应的临时特征点集合tm
uv
中所有匹配成功的特征点选出来组成新特征点集合,称为稳定特征点集合,记作fm's,记ns=|fm's|,把特征点作为稳定特征点集合fm's的最佳中心点,同时得到稳定特征点集合的集合fm',即fm
′
={fm
′s|s=1,2,
…
,k-1,ns=|fm
′s|}。
[0086]
总的特征点集合数是k个,任选一个集合fmr作为参考集合。剩余的k-1个集合作为对比特征点集合,每一个对比集合fms都会经过kr×ks
次平移和旋转得到kr×ks
个临时特征点集合并由最大匹配度的方法得到一个稳定特征点集合fm's,共有k-1个对比特征点集合,所以共产生了k-1个稳定特征点集合fm's,这k-1个稳定特征点集合组成了稳定特征点集合的集合fm'。
[0087]
如图3所示的程序代码结构图,步骤s3构造密钥特征点集合包括以下步骤s31至s33:
[0088]
s31、按照标签值是否相同依次检查每个稳定特征点集合fm's里的特征点是否也存在于集合fm'的其它稳定特征点集合中;若存在,则把当前特征点按预定顺序放入等长稳定特征点集合中,记为fm
″s,同时得到等长稳定特征点集合的集合fm”={fm
″s|s=1,2,
…
,k-1},其中每一个fm
″s都具有相同的元素个数,记|fm
″s|=n;
[0089]
需要说明的是,特征点设置有标签值l,步骤s31中的预定顺序可以为按照特征点标签值l从小到大的顺序。因为由s28产生的稳定特征点集合fm's中的每个特征点都是匹配成功的特征点,所以每一个特征点都有一个标签值l。但这些稳定特征点集合(共k-1个)包含的点的个数不一定相等。按照s31检查每个稳定特征点集合fm's中每个特征点的标签值,看看该特征点是否同时在其它k-2个稳定特征点集合中,如果在选出来按照标签值从小到大的顺序放入一个新集合fm
″s中,这样共产生k-1个fm
″s。每个fm
″s中的点的个数相同。步骤
s31中的等长就是说集合包含的点的个数相同,因此给这种集合统一名称为“等长稳定特征点集合”。
[0090]
s32、从fm”中任取m1个等长稳定特征点集合,随机取m2次,得到m1*m2个等长稳定特征点集合,这m1*m2个等长稳定特征点集合称作密钥特征点集合;
[0091]
s33、令m=m1*m2,则m个密钥生成特征点集合可以表示为,则m个密钥生成特征点集合可以表示为
[0092]
其中,表示第k个密钥特征点集合中的第i个特征点。
[0093]
经过以上步骤s31至s33得到的密钥特征点集合具有相同的元素个数,即每个密钥特征点集合包含相同数量的特征点,特征点在集合中按照标签值从小到大的顺序排列,而且包含一个特殊的特征点,即最佳中心点。
[0094]
步骤s4计算特征距离包括以下步骤s41至s42:
[0095]
s41、参考步骤s28计算最佳中心点的方法计算smk的最佳中心点与smk中其余特征点之间的欧氏距离o∈{1,2,
…
,n},1≤j≤n且j≠o,得到指纹特征点特征距离集合,记作征点特征距离集合,记作
[0096]
s42、设定最佳中心点与其它特征点之间的切尾均值,切尾均值的计算公式为:
[0097][0098]
如图4所示,其中d
j,min
为至中的最小值,d
j,max
为至中的最大值,得到切尾均值集合fd={dj∣j=1,2,
…
,n-1}。
[0099]
如图5所示的程序代码结构图,步骤s5生成原始指纹密钥包括以下步骤s51至s55:
[0100]
s51、从每个切尾均值小数点后最后一位小数开始往前依次进行四舍五入,直到个位上的数完成四舍五入,经过这样处理之后的切尾均值全部变成了个位上是零的整数;
[0101]
s52、把个位上是零的切尾均值分别除以10,得到只保留了10进位以上的整数;
[0102]
s53、把每个十进制数依次转化为二进制数据;
[0103]
s54、截取二进制数据右边的l比特,不足l比特的在左边用0补齐;需要说明的是,l为系统参数,根据重现指纹密钥的概率进行调整,目的是使得指纹信息的稳定部分成为影响密钥的主要因素。
[0104]
s55、把n-1个l比特的二进制比特串依次连接在一起形成l
×
(n-1)比特的原始指纹密钥bk。
[0105]
由上述步骤可以看出,本实施例的方法无需保存任何指纹特征数据或信息,在每次需要密钥时,仅通过随时采集指纹图像即可重构指纹密钥,完全克服了传统指纹密钥生成方法中使用中间存储介质的局限性,极大程度地保证了指纹数据的安全性,提升了用户体验值,且有效降低用户生物特征的丢失和遗漏的风险。
[0106]
在一种实施方案中,如图6所示,还包括以下步骤:
[0107]
s6、利用公式hk=hash(bk||salt)在原始指纹密钥bk后添加特定字符串进行加盐处理,利用单向hash函数进行消息摘要计算,将摘要值hk作为该组指纹图像的指纹密钥。
[0108]
加盐是密码学领域的一个专业术语,意思是在字符串的前后增加部分额外的数据,这部分数据可以有效丰富原字符串所表达的含义,比如可以通过增加时间信息使得原字符串可以产生与时间相关的密钥。另外通过加盐的方法也可以增强安全性,增加破解难度。
[0109]
在一种实施方案中,还包括以下步骤:
[0110]
s7、在步骤s6中的指纹密钥泄漏时,改变hk=hash(bk||salt)中的salt值,以更新指纹密钥hk。
[0111]
步骤s6是对原始指纹密钥bk的进一步加密处理,由于salt值的取值随机性,可有效提高指纹密钥的安全性。特别地,若已生成的指纹密钥遭到泄露或其他安全原因需进行更换,只需将公式hk=hash(bk||salt)输入的自定义内容(salt值)更换即可生成新的hk。指纹密钥时加盐的方法可以实现指纹密钥的可撤销和指纹密钥的更新,基本解除了指纹数据丢失与泄露风险。
[0112]
另外,指纹密钥的长度由摘要值计算函数决定,通常使用256位的hash算法,摘要值长度为256位,直接暴力破解的可能性为2-256
。
[0113]
实施例2:
[0114]
如图7所示,本实施例2提供了一种实施例1中的指纹密钥生成方法的实际例子,如下所示:
[0115]
采集同一手指的8张指纹图像;
[0116]
利用实施例1中的步骤s1的方法,处理得到每张指纹图像中各个特征点利用实施例1中的步骤s1的方法,处理得到每张指纹图像中各个特征点信息,生成k(k=8)个指纹特征点集合,如图7中的第1个表单所示;
[0117]
利用实施例1中的步骤s2的方法,平移旋转得到7(k-1)个稳定特征点集合;
[0118]
利用实施例1中的步骤s3的方法,生成m=m1×
m2(m1=5,m2=4)个密钥特征点集合;
[0119]
利用实施例1中的步骤s41的方法,计算每个密钥特征点集合最佳中心点与其它特征点的欧式距离,前5个集合的计算结果如图7第3个表单所示;
[0120]
利用实施例1中的步骤s42的方法,计算得到切尾均值结合fd,如图7第4个表单所示;
[0121]
利用实施例1中的步骤s5的方法,计算得到原始密钥bk,如图7第5个表单所示;
[0122]
利用实施例1中的步骤s46和s7的方法,生成指纹密钥hk,如图7第7个表单所示。
[0123]
实施例3:
[0124]
提供了一种对实施例1或实施例2中的指纹密钥生成方法进行验证的实例,实例包括加密和解密部分。
[0125]
加密部分,利用指纹密钥hk对明文p加密,得到密文c,即c=e
hk
(p),其中e
hk
()表示加密过程。明文表示没有加密之前的信息,在密码学中加密过程或者加密方法用密码学原语e()来表示。e
hk
()表示实用加密密钥hk通过加密过程e()进行加密。在这里“明文”、“密文”、“加密”、“解密”、加密过程e(),都是密码学原语,明文一般用p表示,密文一般用c表
示。
[0126]
解密部分,利用指纹密钥hk尝试对密文c进行解密。即p
‘
=d
hk
(c),其中d
hk
(c)表示解密过程。
[0127]
验证过程中,本技术召集了155个志愿者进行实验,采集每个志愿者的同一个手指的8副图像,共得到155*8幅图像作为基础实验数据。实际上就是每人连续刷8次指纹,每次刷指纹时尽量保持同一个姿势,得到8副较为工整的指纹图像。这里的8对应本技术中形式化描述中的参数k。
[0128]
首先,按照实施例1或2方案为每人生成一个原始指纹密钥,并让每人使用自己的指纹密钥加密明文数据,保存明文-密文对。加密公式为ci=e
hki
(pi),其中,pi表示第i个志愿者待加密的明文,ci表示pi表示加密之后的密文,hki表示加第i个志愿者加密时使用的密钥,e()表示加密过程,e
hki
(pi)表示第i个志愿者实用其密钥hki通过加密过程e()对明文pi进行加密。
[0129]
然后,多次尝试生成指纹密钥,使用新生成的指纹密钥解密自己的密文,如果能够恢复出已保存的明文数据,证明测试系统成功重现了加密时所用的指纹密钥。记录并统计155位志愿者的解密成功率或密钥重现率。解密成功就意味着密钥重现成功,或者说只有通过解密成功才能证明成功找到了密钥,也就是密钥重现成功,所以可将解密成功率等于密钥重现率。
[0130]
需要说明的是,对于每一次尝试实际上是利用采集的8副图像利用实施例1、2提供的方法重新生成密钥,因为在这个过程实施例1中s32步存在随机性,所以这个过程实际上模拟了重新采集指纹并重新生成密钥的过程。这里的尝试次数是指的155个人的平均尝试次数。
[0131]
针对志愿者的实验数据,本实施例3进一步对步骤s26中的欧式距离的设定阈值δd、步骤s26中的方向场之差的设定阈值δθ以及步骤s32中的选择密钥特征点集合时的重复次数m2进行分析,来体现实施例1及实施例2的指纹密钥生成方法的指纹密钥的重现率。
[0132]
首先,分析实施例1和2的步骤s26中的欧式距离的设定阈值δd的选取对解密成功概率的影响。先保持方向场之差的设定阈值δθ不变,设定不同的欧式距离的设定阈值δd,发明人发现欧式距离的设定阈值δd既不是越大越好,也并非越小越好,而是存在一个最优范围10.5~11.5,当设定阈值δd在这个范围之内时,指纹密钥能够获得较好的重现效果。如图8所示,δd分别取值9.5、10、10.5、、11、11.5、12和12.5,5次尝试能够重现指纹密钥的概率已经超过70%,当尝试次数为60时,指纹密钥的重现率接近100%。其中,通过图8可以看出,欧式距离的设定阈值δd=11时,解密成功的平均概率最高,因此优选欧式距离的设定阈值δd=11。
[0133]
其次,分析实施例1和2的步骤s26中的方向场之差的设定阈值δθ的选取对解密成功概率的影响。发明人令欧式距离的阈值δd=11,设定不同的方向场之差的设定阈值δθ,发明人发现方向场之差的设定阈值δθ同样既不是越大越好,也并非越小越好,而是存在一个最优范围13.5~14.5,当设定阈值δθ在这个范围之内时,指纹密钥能够获得较好的重现效果。如图9所示,δθ分别取值12.5、13、13.5、14、14.5、15和15.5,10次尝试能够重现指纹密钥的概率已经超过70%,当尝试次数为60时,指纹密钥的重现率接近100%。其中,通过图9可以看出,方向场之差的设定阈值δθ=14时,解密成功的平均概率最高,因此优选方向场
之差的设定阈值δθ=14。
[0134]
再次,分析实施例1和2的步骤s32中的选取次数参数m2的选取对解密成功概率的影响。由于每次选取稳定特征点集合的事件都是独立的,为了保证多次选取的稳定特征点集合尽可能覆盖全部的稳定特征点集合,这里的重复选取次数参数m2不应太小,但是考虑到系统的执行效率,该参数也不宜过大。如图10所示,m2分别取值2、3、4、5和6,20次尝试能够重现指纹密钥的概率基本已经超过70%,当尝试次数为60时,指纹密钥的重现率接近100%。其中,通过图10可以看出,当重复选取次数参数m2=4或6时,解密成功的平均概率最高,因此优选参数m2=4或6。
[0135]
通过上述分析和实现得到两种优选的组合方案,第一种为δd=11、δθ=14和m2=4,第二种为δd=11、δθ=14和m2=6。先对两种取值组合进行试验,如图11所示,在对155个志愿者的指纹密钥进行解密试验后,两种取值方案都能报保证较好的解密成功率。在尝试次数10次就能成功重现指纹密钥的概率不低于0.7354,尝试次数多于60次仍未成功的比例为不超过0.0194,即在尝试60次能实现指纹密钥重现率为98.06%。因此,实验证明本技术所提供的指纹密钥生成方法能够提供一个良好的指纹密钥重现率。
[0136]
根据本技术的第二方面,还提供了一种能够实现上述指纹密钥生成方法的生成系统,如图12所示,该指纹密钥生成系统包括预处理模块100、稳定特征点处理模块200、密钥特征点生成模块300、特征距离计算模块400和原始密钥生成模块500。预处理模块100,其用于进行指纹图像预处理,实现实施例1的步骤s1;稳定特征点处理模块200,用于确定出稳定特征点集合,实现步骤s2;密钥特征点生成模块300,用于构造密钥特征点集合,实现实施例1的步骤s3;特征距离计算模块400,用于计算特征距离,实现实施例1的步骤s4;原始密钥生成模块500,用于生成原始指纹密钥,实现实施例1的步骤s5。
[0137]
在一种实施方案中,如图12所示,还包括加盐模块600,用于利用公式hk=hash(bk||salt)在原始指纹密钥bk后添加特定字符串进行加盐处理,利用单向hash函数进行消息摘要计算,将摘要值hk作为该组指纹图像的指纹密钥。
[0138]
在一种实施方案中,如图12所示,还包括密钥更新模块700,在实施例1的步骤s6中的指纹密钥泄漏时,用于改变hk=hash(bk||salt)中的salt值,以更新指纹密钥hk。
[0139]
根据本技术的第三方面,还提供了一种计算机存储介质,其存储有计算机程序,该程序被处理器执行时实现上述方案中的指纹密钥生成方法。
[0140]
根据本技术的第四方面,还提供了一种计算机设备,包括存储器及处理器,存储器存储有计算机程序,该程序被处理器执行时实现实现上述方案中的指纹密钥生成方法。
[0141]
以上仅为本技术的优选实施例而已,并不用于限制本技术,对于本领域的技术人员来说,本技术可以有各种更改和变化。凡在本技术的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本技术的保护范围之内。