一种基于特征距离与生成区间的指纹密钥生成方法与流程

文档序号:17428922发布日期:2019-04-17 03:13阅读:153来源:国知局
一种基于特征距离与生成区间的指纹密钥生成方法与流程

本发明属于生物特征识别技术和信息安全领域,具体涉及一种利用指纹特征距离与生成区间机制的指纹密钥生成与保护方法。



背景技术:

技术发展过程中,传统数字密钥逐渐暴露出遗失、盗取、不易记忆等缺陷,而生物特征因其唯一与稳定的特性,展现出极大优势,但随之也暴露出精确性不足、特征泄露易失效等弊端。随着隐私安全日益受到关注与重视,结合生物特征识别技术与密码学技术的生物特征加密技术应运而生,发挥生物特征优势同时利用密码学技术保障安全性。其中,生物密钥生成是指直接通过某种生物特征,如指纹、虹膜、人脸等生成实际可应用密码密钥,其核心问题是如何从具有模糊性的生物特征当中提取生成完全相同的密钥同时保障生物特征数据的安全性。

2004年,dodis等人提出了两个关键的新概念:模糊提取器和安全草图,前者使得系统设计具有容错性,而后者利用随机性函数确保恢复密钥的可靠性。2010年,rathgeb和uhl积累研究经验,创新“前后文”筛选法,并提出虹膜密钥生成方案,采用了映射量化策略构造虹膜特征密钥,实现生物密钥可撤销性的同时提高了生物特征的保密性。

在生物密钥生成与保护技术当中,有两个至关重要的关键点:首先是保证数据传输安全的同时确保生物模板避免破坏、盗取或丢失而导致生物特征失效;其次是平衡生物特征的模糊性与密码学的精确性,系统都应具备一定的容错性以达到减小生物特征类内差异的作用。



技术实现要素:

为了解决现有技术中存在的上述技术问题,在真实可靠的实验条件下,本发明提供了一种实用化的基于特征距离与生成区间的指纹密钥生成方法。

一种基于特征距离与生成区间的指纹密钥生成方法,确保一定密钥释放率的前提下,将指纹特征点间的距离作为密钥生成对象,引入生成区间机制,生成用户最终指纹密钥。同时采用双层纠错技术、sha256函数来提高指纹密钥的容错性与可信度。该方法避免存储指纹特征直接相关信息,极大程度上保障了指纹本身安全。

1、所述基于指纹高频特征点之间的特征距离,利用生成区间以及编码生成用户指纹密钥,其具体步骤如下:

1.1利用指纹图像预处理、特征提取算法提取到用户待注册指纹的指纹特征点集合,提取获得用户注册的m个指纹对应的m组指纹特征点集合。特征点集合记为fk={f=(xi,yi,ti,θi)|i=1,2,...,nk},k=1,2,...,m,其中括号内的参数xi和yi分别代表该特征点横纵坐标,ti代表该特征点类型,θi代表该特征点方向场值,nk为当前指纹的特征点总数。

1.2匹配统计m组指纹特征点集合中特征点出现频率,按频率从高到低进行排序并筛选出前n+1个(实际取值根据所需指纹密钥长度进行调整)高频特征点。其次,依次计算每组首个特征点与剩余n个特征点之间欧氏距离以及对应的特征类型差和方向场差值,最终得到m组指纹特征距离集合,记作fdk={(dkj,δtkj,δθkj)|j=1,2,...,n},k=1,2,...,m,其中特征类型差和方向场差值作为指纹密钥辅助信息;

最后进行取模运算,作用是保证特征距离的范围统一。模值大小为特征空间大小,而特征空间大小则取决于后续特征值编码长度x。

1.3定义生成区间机制:首先,依次为每组特征距离构造独一无二的特征生成区间,区间左右边界分别是当前组当中最小值和最大值经过预设量化值扩张后的值。然后,所有生成区间将通过预设编码规则进行区间编码,编码规则根据实际需求选定或系统随机选定;

依次构造n组指纹特征距离{d1j,...,dmj},j=1,2,...,n的生成区间为[lj,rj],区间左边界为lj=dmin-δ,右边界为rj=dmax+δ,其中,dmin=min(d1j,...,dmj)和dmax=max(d1j,...,dmj),δ为预设量化值,其目的是将区间扩大以确保系统更好的容错性。最终获得指纹特征距离对应的一系列生成区间,记为

gi={[lj,rj]|j=1,2,...,n};

为生成区间编码,并且设定编码规则动态可更新,实现指纹密钥的可撤销性。最终用户指纹密钥即为所有生成区间对应编码的二进制比特连结。若编码长度为x比特,则最终原始指纹密钥长度为xn比特。

2、用户指纹密钥采用双层纠错技术进行检错纠错,并采用sha256函数验证密钥释放的正确性,其具体步骤如下:

2.1双层纠错技术:输入信息为(jh+1)比特,输出比特hadamard码,可检测至多比特错误,纠正至多比特错误,其目的是检测和纠正由于噪音干扰或者不可靠信道传输引起的错误。而辅助检测纠正由于手指旋转、图像偏移等偏差导致的突发错误,则采用reed-solomon码当输入kr个符号数信息,输出码元数为nr,校验符号数为2tr,因此之多纠正tr个符号错误,其中mr代表了一个输入符号数所包含的信息量是mr比特;

首先,将xn比特指纹密钥按序均分为n组,转化为十进制1×n向量。其次,在向量前添加(kr-n)个0,并在伽罗华域中构造多项式后编码得nr×x比特码字。最后移除前(kr-n)个0得(nr-kr+n)×x比特rs码;

为结合上述两种纠错码,需保证rs码单个符号所包含信息比特数等于hadamard码输入的比特数,即mr=jh+1。将上述rs码按序分成(nr-kr+n)组依次按照hadamard编码规则进行编码。最终可以得到(nr-kr+n)×nh比特长的双层纠错码。

2.2应用sha256函数以验证从用户智能卡中恢复的指纹密钥是否是原始指纹密钥。当且仅当恢复指纹密钥哈希值与原始生物密钥哈希值相同时,指纹密钥才是成功恢复,反之指纹密钥恢复错误;

2.3存储用户个人信息数据于个人智能卡中,包括四个部分:生成区间以及编码、辅助信息、双层纠错码及指纹密钥sha256哈希值。

3、当用户尝试释放智能卡中指纹密钥时,需重新采集指纹后进行指纹密钥的认证与释放操作,其具体步骤如下:

假设待验证指纹x尝试恢复用户智能卡t中的原始指纹密钥。

3.1从x待验证指纹中提取特征点集合f',计算每个特征点与其余特征点之间欧氏距离、特征点类型差以及方向场差,以获得待验证特征距离集合;

3.2读取用户智能卡t,得到用户指纹密钥生成区间以及对应编码,辅助信息、双层纠错码和原始指纹密钥sha256哈希值;

3.3将待验证特征距离集合按组依次映射到用户生成区间中,筛选匹配成功次数最高的待验证特征距离组。将生成区间对应编码依次比特连结,其中未匹配成功的生成区间按全零编码代入,构造出待验证的再生指纹密钥;

3.4双层纠错码进行双层解码恢复出原始指纹密钥,计算其sha256哈希值并与智能卡读取的哈希值比较,当且仅当两者一致时,原始指纹密钥才成功恢复,否则锁定智能卡t;

3.5基于步骤3.4原始指纹密钥的成功恢复。求再生指纹密钥与原始指纹密钥的汉明距离,当且仅当其值小于系统预设阈值,待验证指纹x认证成功,允许释放原始指纹密钥,否则拒绝释放,认证失败。

本发明的有益效果:本发明提供了一种基于特征距离与生成区间的指纹密钥生成方法,能为不同系统和设备提供一种用户指纹密钥生成并安全保护指纹数据的方法。本发明利用指纹的特征距离和生成区间机制生成用户指纹密钥,很大程度地避免了指纹信息的直接泄露,并且结合使用双层纠错技术和sha256函数以保障数据的准确性、完整性和系统的容错性。本发明保障指纹数据安全性同时具备良好的指纹密钥释放率,并且采用不同编码规则能够在相同应用场景下实现指纹密钥的可撤销性,在不同应用场景下实现指纹密钥的多样性,具有较强的可推广性。

附图说明

图1是用户指纹密钥生成流程图;

图2是待验证指纹释放指纹密钥流程图;

图3是双层纠错编码示意图;

图4是用户指纹密钥生成示意图;

图5是用户指纹密钥释放示意图。

具体实施方式

以下结合附图对本发明作进一步说明。

本实施例实现了一种基于特征距离与生成区间的指纹密钥生成方法。具体包括如下步骤:

1、计算指纹高频特征点之间特征距离,利用生成区间及编码生成用户指纹密钥(流程图如图1,示意图如图4),其具体实现步骤如下:

1.1基于指纹图像预处理、特征提取算法提取到用户待注册指纹的指纹特征点集合,提取获得用户注册的m个指纹对应的m组指纹特征点集合。特征点集合记为fk={f=(xi,yi,ti,θi)|i=1,2,...,nk},k=1,2,...,m,其中括号内的参数xi和yi分别代表该特征点的横纵坐标,ti代表特征点类型,θi代表该特征点方向场值,nk为该指纹特征点的总数。

1.2匹配统计m组指纹特征点集合中特征点出现频率,按频率从高到低进行排序并筛选出前n+1个(本例以m=8,n=16为例)高频特征点。其次,依次计算每组首个特征点与剩余n个特征点之间欧氏距离及对应的特征类型差和方向场差值,最终得到m组指纹特征距离集合,记作fdk={(dkj,δtkj,δθkj)|j=1,2,...,n},k=1,2,...,m,其中,特征类型差和方向场差值作为指纹密钥辅助信息;

最后进行取模运算,作用是保证特征距离的范围统一。模值大小为特征空间大小,而特征空间大小取决于后续特征值编码长度x(本例以x=8为例,模值为256)。

1.3依次构造n组指纹特征距离{d1j,...,dmj},j=1,2,...,n的生成区间为[lj,rj],区间左边界为lj=dmin-δ,右边界为rj=dmax+δ,

其中,dmin=min(d1j,...,dmj)和dmax=max(d1j,...,dmj),δ为预设量化值,其目的是将扩大区间以确保系统更好的容错性(通过实验,本例选取δ=5)。最终获得生成区间,记为gi={[lj,rj]|j=1,2,...,n};

为生成区间编码,将所有生成区间对应编码的二进制比特连结,得原始指纹密钥长度xn比特(本例指纹密钥长度128比特),记作t-key。

2、用户指纹密钥采用双层纠错技术进行检错纠错提高系统容错性(如图3所示),同时采用sha256函数验证密钥释放的正确性,其具体实现步骤如下:

2.1将xn比特指纹密钥按序均分为n组,转化为十进制1×n向量。其次,在向量前添加(kr-n)个0,并在伽罗华域中构造多项式后编码得nr×x比特码字。最后移除前(kr-n)个0得(nr-kr+n)×x比特rs码;

为结合上述两种纠错码,需保证rs码单个符号所包含信息比特数等于hadamard码输入的比特数,即mr=jh+1。将上述rs码按序分成(nr-kr+n)组依次按照hadamard编码规则进行编码,最终可以得到(nr-kr+n)×nh比特长的双层纠错码字ec。

2.2应用sha256函数以验证从用户智能卡中恢复的指纹密钥是否是原始指纹密钥,记原始指纹密钥的sha256哈希值为h(t-key)。

2.3存储用户个人信息数据于个人智能卡中,包括四个部分:生成区间及编码、辅助信息、双层纠错码及指纹密钥sha256哈希值。

3、假设用户待验证指纹x尝试恢复释放智能卡t中原始指纹密钥t-key(流程图如图2,示意图如图5),其具体实现步骤如下:

3.1从x待验证指纹中提取特征点集合f',计算每个特征点与其余特征点之间欧氏距离、特征点类型差以及方向场差,以获得待验证特征距离集合cd;

3.2读取用户智能卡t,得用户指纹密钥生成区间gi以及对应编码,辅助信息、双层纠错码ec和原始指纹密钥sha256哈希值h(t-key);

3.3将待验证特征距离集合cd按组依次映射到用户生成区间中,筛选匹配成功次数最高的待验证特征距离组。将生成区间对应编码依次比特连结,其中未匹配成功的生成区间按全零编码代入,构造出待验证的再生指纹密钥x-key;

3.4双层纠错码进行双层解码恢复出原始指纹密钥t-key’,计算其sha256哈希值h(t-key’),与智能卡读取的哈希值h(t-key)比较,当且仅当两者一致时,原始指纹密钥t-key才是成功恢复,否则恢复失败,锁定智能卡t;

3.5基于步骤3.4原始指纹密钥的成功恢复。求再生指纹密钥x-key与原始指纹密钥t-key的汉明距离,当且仅当其值小于系统预设阈值时,待验证指纹x认证成功,允许释放原始指纹密钥,否则认证失败。

本发明所述的一种基于特征距离与生成区间的指纹密钥生成方法并不局限于说明书和实施方式中的描述。凡在本发明精神和原则之内,所做的任何修改、同等替换、改进等,均包含在本发明的权利要求范围之内。

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