掌桥专利:专业的专利平台
掌桥专利
首页

一种指纹密钥生成方法、系统、介质及设备

文献发布时间:2023-06-19 18:37:28


一种指纹密钥生成方法、系统、介质及设备

技术领域

本申请涉及生物特征采集与识别的技术领域,具体而言,涉及一种指纹密钥生成方法、系统、介质及设备。

背景技术

随着网络信息化技术的发展,网络应用系统在各个领域都得到了普遍应用,给人们的生产和生活带来了极大的便利。但是,在使用这些网络应用系统时人们经常被各种账号和口令所困扰。如何能在保证用户账号安全的同时,准确且方便地对用户进行身份认证是网络应用系统必须解决的首要问题。

传统的认证方法主要通过账号与口令对用户身份进行验证,但是口令容易遗忘、泄露或者被盗,从而造成用户账号丢失、冒用、盗用等诸多网络安全问题。而生物特征识别是近年来迅速发展起来的一种身份认证技术,它利用人与生俱来的生物特征充当身份认证时的信物凭证。由于人的生物特征具备唯一性、方便性与终身不变性等特点,使采用生物特征进行身份认证的方法克服了传统身份认证方案中的系列难题,逐渐成为近年来身份认证领域学术研究的热点问题。

传统的基于生物特征识别的身份认证方法需要在应用系统中保存用户的生物特征模板,容易造成用户生物特征的丢失和泄露。

发明内容

本申请实施例的目的在于提供一种指纹密钥生成方法,其无需保存任何指纹特征数据或信息,在每次需要密钥时,仅通过随时采集指纹图像即可重构指纹密钥,完全克服了传统指纹密钥生成方法中使用中间存储介质的局限性,极大程度地保证了指纹数据的安全性,提升了用户体验值,且有效降低用户生物特征的丢失和遗漏的风险。

本申请实施例的第二目的还在于提供一种实现上述方法的指纹密钥生成系统。

本申请实施例的第三目的还在于提供一种计算机存储介质,其存储有计算机程序,该程序被处理器执行时实现上述的指纹密钥生成方法。

本申请实施例的第四目的还在于提供一种计算机设备,包括存储器及处理器,所述存储器存储有计算机程序,该程序被处理器执行时实现上述的指纹密钥生成方法。

第一方面,提供了一种指纹密钥生成方法,包括以下步骤:S1、指纹图像预处理:S2、确定出稳定特征点集合:S3、构造密钥特征点集合:S4、计算特征距离:S5、生成原始指纹密钥。

其中,步骤S1指纹图像预处理包括以下步骤S11至S12:

S11、采指纹图像预处理集同一手指的K副指纹图像;

S12、提取每副指纹图像中多个特征点组成指纹特征点集合,K副指纹图像得到K个指纹特征点集合

步骤S2确定出稳定特征点集合包括以下步骤S21至S28:

S21、任取指纹特征总集合FM中的一个集合

S22、将其它K-1个指纹特征点集合作为K-1个对比集合,每个对比集合记为

S23、将参考集合中的每个特征点与每个对比集合中的特征点逐个进行匹配;

S24、计算参考集合与每个对比集合中类型相同的两个特征点

S25、把每个对比集合FM

S26、计算FM

其中,p

S27、计算最大匹配度q

S28、把步骤S27中计算得到的q

步骤S3构造密钥特征点集合包括以下步骤S31至S33:

S31、按照标签值是否相同依次检查每个稳定特征点集合FM'

S32、从FM”中任取m

S33、令M=m

步骤S4计算特征距离包括以下步骤S41至S42:

S41、计算SM

S42、设定最佳中心点

其中

步骤S5生成原始指纹密钥包括以下步骤S51至S55:

S51、从每个切尾均值小数点后最后一位小数开始往前依次进行四舍五入,直到个位上的数完成四舍五入,经过这样处理之后的切尾均值全部变成了个位上是零的整数;

S52、把个位上是零的切尾均值分别除以10,得到只保留了10进位以上的整数;

S53、把每个十进制数依次转化为二进制数据;

S54、截取二进制数据右边的L比特,不足L比特的在左边用0补齐;

S55、把N-1个L比特的二进制比特串依次连接在一起形成L×(N-1)比特的原始指纹密钥BK。

在一种可实施的方案中,还包括步骤S6、利用公式HK=Hash(BK||Salt)在原始指纹密钥BK后添加特定字符串进行加盐处理,利用单向Hash函数进行消息摘要计算,将摘要值HK作为该组指纹图像的指纹密钥。

在一种可实施的方案中,还包括步骤S7、在步骤S6中的指纹密钥泄漏时,改变HK=Hash(BK||Salt)中的Salt值,以更新指纹密钥HK。

在一种可实施的方案中,步骤S26中欧式距离的设定阈值Δd的数值为10.5~11.5;步骤S26中方向场之差的设定阈值Δθ的数值为13.5~14.5;步骤S32中的参数m

在一种可实施的方案中,步骤S26中欧式距离的设定阈值Δd的数值为11;步骤S26中方向场之差的设定阈值Δθ的数值为14;步骤S32中的参数m

根据本申请的第二方面,还提供了一种指纹密钥生成系统,用于实现上述方案中的指纹密钥生成方法,包括预处理模块、稳定特征点处理模块、密钥特征点生成模块、特征距离计算模块和原始密钥生成模块。预处理模块用于进行指纹图像预处理,实现上述的步骤S1;稳定特征点处理模块,用于确定出稳定特征点集合,实现上述的步骤S2;密钥特征点生成模块,用于构造密钥特征点集合,实现上述的步骤S3;特征距离计算模块,用于计算特征距离,实现上述的步骤S4;原始密钥生成模块,用于生成原始指纹密钥,实现上述的步骤S5。

在一种可实施的方案中,还包括加盐模块,用于利用公式HK=Hash(BK||Salt)在原始指纹密钥BK后添加特定字符串进行加盐处理,利用单向Hash函数进行消息摘要计算,将摘要值HK作为该组指纹图像的指纹密钥。

在一种可实施的方案中,还包括密钥更新模块,在上述的步骤S6中的指纹密钥泄漏时,用于改变HK=Hash(BK||Salt)中的Salt值,以更新指纹密钥HK。

根据本申请的第三方面,还提供了一种计算机存储介质,其存储有计算机程序,该程序被处理器执行时实现上述方案中的指纹密钥生成方法。

根据本申请的第四方面,还提供了一种计算机设备,其特征在于,包括存储器及处理器,存储器存储有计算机程序,该程序被处理器执行时实现上述方案中的指纹密钥生成方法。

与现有技术相比,本申请的有益效果为:

综上,本申请的方法无需保存任何指纹特征数据或信息,在每次需要密钥时,仅通过随时采集指纹图像即可重构指纹密钥,完全克服了传统指纹密钥生成方法中使用中间存储介质的局限性,极大程度地保证了指纹数据的安全性,提升了用户体验值,且有效降低用户生物特征的丢失和遗漏的风险。

此外,利用加盐的方法实现指纹密钥的可撤销和指纹密钥的更新,基本解除了指纹数据丢失与泄露风险。

附图说明

为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。

图1为根据本申请实施例示出的一种指纹密钥生成方法的流程简图;

图2为根据本申请实施例示出的指纹密钥生成方法的步骤S2的代码结构简图;

图3为根据本申请实施例示出的指纹密钥生成方法的步骤S3的代码结构简图;

图4为根据本申请实施例示出的指纹密钥生成方法的切尾均值生成示意图;

图5为根据本申请实施例示出的指纹密钥生成方法的步骤S5的代码结构简图;

图6为根据本申请实施例示出的另一种指纹密钥生成方法的流程简图;

图7为根据本申请实施例示出的指纹密钥生成方法的生成摘要值HK的表单示意图;

图8为本申请中不同的欧氏距离的设定阈值Δd影响下解密尝试次数与解密成功率的关系趋势图;

图9为本申请中不同的方向场之差的设定阈值Δθ影响下解密尝试次数与解密成功率的关系趋势图;

图10为本申请中不同的重复选取次数m

图11为本申请中两种Δd、Δθ及m

图12为根据本申请实施例示出的一种指纹密钥生成系统的流程简图。

具体实施方式

为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。

因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

根据本申请的第一方面,首先提供一种指纹密钥生成方法。

实施例1:

如图1所示为一种指纹密钥生成方法,包括以下步骤:

S1、指纹图像预处理:S2、确定出稳定特征点集合:S3、构造密钥特征点集合:S4、计算特征距离:S5、生成原始指纹密钥。

其中,步骤S1指纹图像预处理包括以下步骤S11至S12:

S11、采指纹图像预处理集同一手指的K副指纹图像;

需要说明的是,步骤S11采用传统的方法进行指纹图像处理,包括但不限于去除指纹图像中的噪声,使指纹图像清晰、边缘明显,以便于提高特征点提取的准确率。这包括指纹区域检测、图像质量判断、方向图和频率估计、图像增强、指纹图像二值化和细化等过程。

S12、提取每副指纹图像中多个特征点组成指纹特征点集合,K副指纹图像得到K个指纹特征点集合

如图2所示的程序代码结构图,步骤S2确定出稳定特征点集合包括以下步骤S21至S28:

S21、任取指纹特征总集合FM中的一个集合

S22、将其它K-1个指纹特征点集合作为K-1个对比集合,每个对比集合记为

S23、将参考集合中的每个特征点与每个对比集合中的特征点逐个进行匹配;

S24、计算参考集合与每个对比集合中类型相同的两个特征点

S25、把每个对比集合FM

因为参考集合FM

S26、计算FM

其中,p

S27、计算最大匹配度q

S28、把步骤S27中计算得到的q

总的特征点集合数是K个,任选一个集合FM

如图3所示的程序代码结构图,步骤S3构造密钥特征点集合包括以下步骤S31至S33:

S31、按照标签值是否相同依次检查每个稳定特征点集合FM'

需要说明的是,特征点设置有标签值l,步骤S31中的预定顺序可以为按照特征点标签值l从小到大的顺序。因为由S28产生的稳定特征点集合FM'

S32、从FM”中任取m

S33、令M=m

其中,

经过以上步骤S31至S33得到的密钥特征点集合具有相同的元素个数,即每个密钥特征点集合包含相同数量的特征点,特征点在集合中按照标签值从小到大的顺序排列,而且包含一个特殊的特征点,即最佳中心点。

步骤S4计算特征距离包括以下步骤S41至S42:

S41、参考步骤S28计算最佳中心点的方法计算SM

S42、设定最佳中心点

如图4所示,其中

如图5所示的程序代码结构图,步骤S5生成原始指纹密钥包括以下步骤S51至S55:

S51、从每个切尾均值小数点后最后一位小数开始往前依次进行四舍五入,直到个位上的数完成四舍五入,经过这样处理之后的切尾均值全部变成了个位上是零的整数;

S52、把个位上是零的切尾均值分别除以10,得到只保留了10进位以上的整数;

S53、把每个十进制数依次转化为二进制数据;

S54、截取二进制数据右边的L比特,不足L比特的在左边用0补齐;需要说明的是,L为系统参数,根据重现指纹密钥的概率进行调整,目的是使得指纹信息的稳定部分成为影响密钥的主要因素。

S55、把N-1个L比特的二进制比特串依次连接在一起形成L×(N-1)比特的原始指纹密钥BK。

由上述步骤可以看出,本实施例的方法无需保存任何指纹特征数据或信息,在每次需要密钥时,仅通过随时采集指纹图像即可重构指纹密钥,完全克服了传统指纹密钥生成方法中使用中间存储介质的局限性,极大程度地保证了指纹数据的安全性,提升了用户体验值,且有效降低用户生物特征的丢失和遗漏的风险。

在一种实施方案中,如图6所示,还包括以下步骤:

S6、利用公式HK=Hash(BK||Salt)在原始指纹密钥BK后添加特定字符串进行加盐处理,利用单向Hash函数进行消息摘要计算,将摘要值HK作为该组指纹图像的指纹密钥。

加盐是密码学领域的一个专业术语,意思是在字符串的前后增加部分额外的数据,这部分数据可以有效丰富原字符串所表达的含义,比如可以通过增加时间信息使得原字符串可以产生与时间相关的密钥。另外通过加盐的方法也可以增强安全性,增加破解难度。

在一种实施方案中,还包括以下步骤:

S7、在步骤S6中的指纹密钥泄漏时,改变HK=Hash(BK||Salt)中的Salt值,以更新指纹密钥HK。

步骤S6是对原始指纹密钥BK的进一步加密处理,由于Salt值的取值随机性,可有效提高指纹密钥的安全性。特别地,若已生成的指纹密钥遭到泄露或其他安全原因需进行更换,只需将公式HK=Hash(BK||Salt)输入的自定义内容(Salt值)更换即可生成新的HK。指纹密钥时加盐的方法可以实现指纹密钥的可撤销和指纹密钥的更新,基本解除了指纹数据丢失与泄露风险。

另外,指纹密钥的长度由摘要值计算函数决定,通常使用256位的Hash算法,摘要值长度为256位,直接暴力破解的可能性为2

实施例2:

如图7所示,本实施例2提供了一种实施例1中的指纹密钥生成方法的实际例子,如下所示:

采集同一手指的8张指纹图像;

利用实施例1中的步骤S1的方法,处理得到每张指纹图像中各个特征点

利用实施例1中的步骤S2的方法,平移旋转得到7(K-1)个稳定特征点集合;

利用实施例1中的步骤S3的方法,生成M=m

利用实施例1中的步骤S41的方法,计算每个密钥特征点集合最佳中心点与其它特征点的欧式距离,前5个集合的计算结果如图7第3个表单所示;

利用实施例1中的步骤S42的方法,计算得到切尾均值结合FD,如图7第4个表单所示;

利用实施例1中的步骤S5的方法,计算得到原始密钥BK,如图7第5个表单所示;

利用实施例1中的步骤S46和S7的方法,生成指纹密钥HK,如图7第7个表单所示。

实施例3:

提供了一种对实施例1或实施例2中的指纹密钥生成方法进行验证的实例,实例包括加密和解密部分。

加密部分,利用指纹密钥HK对明文p加密,得到密文c,即c=E

解密部分,利用指纹密钥HK尝试对密文c进行解密。即p‘=D

验证过程中,本申请召集了155个志愿者进行实验,采集每个志愿者的同一个手指的8副图像,共得到155*8幅图像作为基础实验数据。实际上就是每人连续刷8次指纹,每次刷指纹时尽量保持同一个姿势,得到8副较为工整的指纹图像。这里的8对应本申请中形式化描述中的参数K。

首先,按照实施例1或2方案为每人生成一个原始指纹密钥,并让每人使用自己的指纹密钥加密明文数据,保存明文-密文对。加密公式为c

然后,多次尝试生成指纹密钥,使用新生成的指纹密钥解密自己的密文,如果能够恢复出已保存的明文数据,证明测试系统成功重现了加密时所用的指纹密钥。记录并统计155位志愿者的解密成功率或密钥重现率。解密成功就意味着密钥重现成功,或者说只有通过解密成功才能证明成功找到了密钥,也就是密钥重现成功,所以可将解密成功率等于密钥重现率。

需要说明的是,对于每一次尝试实际上是利用采集的8副图像利用实施例1、2提供的方法重新生成密钥,因为在这个过程实施例1中S32步存在随机性,所以这个过程实际上模拟了重新采集指纹并重新生成密钥的过程。这里的尝试次数是指的155个人的平均尝试次数。

针对志愿者的实验数据,本实施例3进一步对步骤S26中的欧式距离的设定阈值Δd、步骤S26中的方向场之差的设定阈值Δθ以及步骤S32中的选择密钥特征点集合时的重复次数m

首先,分析实施例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。

其次,分析实施例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。

再次,分析实施例1和2的步骤S32中的选取次数参数m

通过上述分析和实现得到两种优选的组合方案,第一种为Δd=11、Δθ=14和m

根据本申请的第二方面,还提供了一种能够实现上述指纹密钥生成方法的生成系统,如图12所示,该指纹密钥生成系统包括预处理模块100、稳定特征点处理模块200、密钥特征点生成模块300、特征距离计算模块400和原始密钥生成模块500。预处理模块100,其用于进行指纹图像预处理,实现实施例1的步骤S1;稳定特征点处理模块200,用于确定出稳定特征点集合,实现步骤S2;密钥特征点生成模块300,用于构造密钥特征点集合,实现实施例1的步骤S3;特征距离计算模块400,用于计算特征距离,实现实施例1的步骤S4;原始密钥生成模块500,用于生成原始指纹密钥,实现实施例1的步骤S5。

在一种实施方案中,如图12所示,还包括加盐模块600,用于利用公式HK=Hash(BK||Salt)在原始指纹密钥BK后添加特定字符串进行加盐处理,利用单向Hash函数进行消息摘要计算,将摘要值HK作为该组指纹图像的指纹密钥。

在一种实施方案中,如图12所示,还包括密钥更新模块700,在实施例1的步骤S6中的指纹密钥泄漏时,用于改变HK=Hash(BK||Salt)中的Salt值,以更新指纹密钥HK。

根据本申请的第三方面,还提供了一种计算机存储介质,其存储有计算机程序,该程序被处理器执行时实现上述方案中的指纹密钥生成方法。

根据本申请的第四方面,还提供了一种计算机设备,包括存储器及处理器,存储器存储有计算机程序,该程序被处理器执行时实现实现上述方案中的指纹密钥生成方法。

以上仅为本申请的优选实施例而已,并不用于限制本申请,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

技术分类

06120115637934