自适应指纹细节点数量的密钥绑定方法与流程

文档序号:11263510阅读:307来源:国知局

本发明涉及一种密钥绑定方法,特别涉及一种自适应指纹细节点数量的密钥绑定方法。



背景技术:

指纹是几乎每个人自身拥有的生物特征,相对于传统的个人身份识别方式,如记忆密码或携带身份证明,指纹不会丢失和遗忘,因此指纹用作身份识别更安全可靠,如今,指纹识别技术已经广泛地应用在刑侦鉴定、企业管理、出入境管理、金融服务、电子商务、信息安全、个人隐私保护等各个方面,近年来,指纹识别在移动终端特别是智能手机上的应用为人们带来了极大的便利。

但是,指纹用于身份识别有利有弊,它可以保证用户身份唯一,但由于目前的识别技术需要存储指纹模板,因此模板一旦泄露或丢失,就无法像密码一样更改或撤销。传统的指纹识别系统大部分采用细节点作为识别特征,并且把细节点位置存储到模板中用于匹配,但系统不采用任何加密措施,整个指纹识别系统的安全性就无法得到保障,从而使得用户身份的安全性和隐私性受到威胁。

文献“fingerprint-basedfuzzyvault:implementationandperformance.ieeetransactionsoninformationforensicsandsecurity,2007,2(4),pp.744-757”提出了一种基于指纹的fuzzyvault方法,该方法使用指纹细节点信息与密钥进行绑定,得到模糊保险箱,较好的解决了指纹和密钥的安全问题。文献所述的方法存在以下问题,(1)当采集仪采集面积过小,采集到的指纹细节点个数过少时,该方法会判定获取指纹失败,这导致面积小的指纹无法进行fuzzyvault编码;(2)当需要保护的密钥过长,常规采集到的指纹细节点个数无法满足密钥绑定的需求时,该方法无法进行fuzzyvault编码;(3)该方法中使用的crc循环冗余校验方法安全性不高;(4)该方法中绑定的密钥的长度需要为16比特的倍数。



技术实现要素:

为了克服现有密钥绑定方法安全性差的不足,本发明提供一种自适应指纹细节点数量的密钥绑定方法。该方法首先对密钥进行补位处理,不满足16比特倍数的情况下补足,同时在进行fuzzyvault运算之前,根据采集到的指纹细节点数目和密钥长度,由系统提供一个公共点集合,公共点集合与细节点集合配合使用,以满足fuzzyvault编码需求,在fuzzyvault解码时,使用密码哈希函数进行校验,提高了密钥绑定方法的安全性。

本发明解决其技术问题所采用的技术方案:一种自适应指纹细节点数量的密钥绑定方法,其特点是包括以下步骤:

步骤一、计算密钥k的长度l,l的单位为比特,将密钥k拆分为长度为16比特的t个子比特串r0,r2,…,rt-1,rt-1不足16比特时,以数字0补齐至16比特;

步骤二、使用密码哈希函数h(x)计算密钥k的哈希值hk=h(k),在hk中随机选取连续的16比特作为rt;

步骤三、提取注册指纹的细节点集合m,m中细节点个数为n,若n<nmin,则此指纹无法注册,要求重新获取用户的指纹信息,nmin为注册时需要的最少细节点个数,否则,执行步骤四;

步骤四、系统公布一个与细节点集合m无交集的公共点集合pm,pm中点的个数为p,其中当n≥t时p=0,否则,p=t-n;

步骤五、将公共点集合pm与细节点集合m进行合并得到合并点集am,使用r0,r2,…,rt和am进行fuzzyvault编码,得到模糊保险箱v,将v、pm以及l作为密钥绑定部分的结果,密钥绑定部分结束;

步骤六、获取密钥绑定部分的结果v、pm以及l,并提取验证指纹的细节点集合m';

步骤七、判断pm是否为空,若pm为空,执行步骤八,否则执行步骤九;

步骤八、使用m'与v进行fuzzyvault解码,得到r'0,r'2,…,r't,将r'0,r'2,…,r't-1合并,并取前l位重构出密钥k',使用密码哈希函数h(x)计算k'的哈希值hk'=h(k'),判断r't与hk'中的某个连续16比特是否对应,若对应,则密钥解绑定成功,返回密钥k',否则密钥解绑定失败,密钥解绑定部分结束;

步骤九、将pm与m'进行合并得到合并点集am',使用am'与v进行fuzzyvault解码,得到r'0,r'2,…,r't,将r'0,r'2,…,r't-1合并,并取前l位重构出密钥k',使用密码哈希函数h(x)计算k'的哈希值hk'=h(k'),判断r't是否与hk'中的某个连续16比特对应,若对应,则密钥解绑定成功,返回密钥k',否则密钥解绑定失败,密钥解绑定部分结束。

本发明的有益效果是:该方法首先对密钥进行补位处理,不满足16比特倍数的情况下补足,同时在进行fuzzyvault运算之前,根据采集到的指纹细节点数目和密钥长度,由系统提供一个公共点集合,公共点集合与细节点集合配合使用,以满足fuzzyvault编码需求,在fuzzyvault解码时,使用密码哈希函数进行校验,提高了密钥绑定方法的安全性。由系统提供一个公共点集合,使得当需要的密钥过长,常规采集到的指纹细节点个数无法满足密钥绑定的需求时,指纹细节点集合配合公共点集合可以满足fuzzyvault方法的编码需求。由于对密钥长度进行补位处理,密钥的长度要求不再受限制。

下面结合附图和具体实施方式对本发明作详细说明。

附图说明

图1是本发明自适应指纹细节点数量的密钥绑定方法的流程图。

具体实施方式

名词解释:

k:密钥,表示为比特串。

l:密钥的长度,单位为比特。

t:密钥k拆分出来的子比特串个数。

r0,r2,…,rt-1:密钥k拆分出来的长度为16比特的子比特串。

h(x):密码哈希函数,如md5、md4、sha1等。

hk:密钥k的哈希值。

rt:hk中随机选取连续的16比特的子比特串。

f:拉格朗日多项式。

m:注册指纹细节点集合。

n:注册指纹细节点个数。

nmin:注册时需要的最少细节点个数。

pm:系统提供的公共点集合。

p:公共点集合中点的个数。

am:公共点集合pm与细节点集合m合并后的合并点集。

cm:fuzzyvault方法添加的杂凑点集。

s:cm中点的个数。

v:模糊保险箱,使用cm、am、f进行fuzzyvault编码得到。

m':验证指纹的细节点集合。

d:m'中点的个数。

f':拉格朗日插值公式。

am':pm与m'进行合并得到合并点集。

r'0,r'2,…,r't:使用fuzzyvault方法解码出来的子字符串。

k':由r'0,r'2,…,r't-1重构出来的密钥。

hk':使用密码哈希函数h(x)计算k'得到的哈希值。

参照图1。本发明自适应指纹细节点数量的密钥绑定方法具体步骤如下:

步骤一、计算密钥k的长度l,l的单位为比特,将密钥k拆分为长度为16比特的t个子比特串r0,r2,…,rt-1,rt-1不足16比特时,以数字0补齐至16比特;

步骤二、使用密码哈希函数h(x)计算密钥k的哈希值hk=h(k),在hk中随机选取连续的16比特作为rt;

步骤三、提取注册指纹的细节点集合m,m中细节点个数为n,若n<nmin,则此指纹无法注册,要求重新获取用户的指纹信息,nmin为注册时需要的最少细节点个数,否则,执行步骤四;

步骤四、系统公布一个与细节点集合m无交集的公共点集合pm,pm中点的个数为p,其中当n≥t时p=0,否则,p=t-n;

步骤五、将公共点集合pm与细节点集合m进行合并得到合并点集am,使用r0,r2,…,rt和am进行fuzzyvault编码,得到模糊保险箱v,将v、pm以及l作为密钥绑定部分的结果,密钥绑定部分结束;

步骤六、获取密钥绑定部分的结果v、pm以及l,并提取验证指纹的细节点集合m';

步骤七、判断pm是否为空,若pm为空,执行步骤八,否则执行步骤九;

步骤八、使用m'与v进行fuzzyvault解码,得到r'0,r'2,…,r't,将r'0,r'2,…,r't-1合并,并取前l位重构出密钥k',使用密码哈希函数h(x)计算k'的哈希值hk'=h(k'),判断r't与hk'中的某个连续16比特是否对应,若对应,则密钥解绑定成功,返回密钥k',否则密钥解绑定失败,密钥解绑定部分结束;

步骤九、将pm与m'进行合并得到合并点集am',使用am'与v进行fuzzyvault解码,得到r'0,r'2,…,r't,将r'0,r'2,…,r't-1合并,并取前l位重构出密钥k',使用密码哈希函数h(x)计算k'的哈希值hk'=h(k'),判断r't是否与hk'中的某个连续16比特对应,若对应,则密钥解绑定成功,返回密钥k',否则密钥解绑定失败,密钥解绑定部分结束。

应用实施例:

步骤一,将长度为l的密钥k拆分为长度为16比特的t个子比特串r0,r2,…,rt-1,rt-1不足16比特时,以数字0补齐至16比特。

选取一种密码哈希函数h(x),密码哈希函数具有易计算、不易反向推导出信息、哈希值唯一以及可抵御绝大多数攻击手段等特点,密码哈希函数有多种,如md4、md5、sha1等,本实施例使用md5密码哈希函数,该函数的计算过程见r.rivest,mitlaboratoryforcomputerscienceandrsadatasecurityinc.april1992。

使用h(x)计算密钥k的哈希值hk=h(k),在hk中随机选取连续的16比特作为rt,将r0,r2,…,rt作为多项式系数构造拉格朗日多项式f

f(x)=r0+r1x+r2x2+...+rtxt

f(x)将用于fuzzyvault的编码计算;

步骤二,获取注册指纹的细节点集合其中n是提取到的细节点个数,设定nmin为注册时需要的最少细节点个数,在本实施例中,nmin=5,若n<nmin,则此指纹无法注册,不执行后续步骤,并要求用户重新录入指纹,否则,执行下一步。

系统构造公共点集合pm中点的个数为p,当n≥t时,p=0,否则,p=t-n。pm中的点随机给出,但需要满足pm与m没有交集,将pm和m进行合并,得到合并点集am。

系统产生杂凑点集合cm中点的个数为s,cm中的点随机给出,但需要满足cm与am没有交集。

步骤三,参照fingerprint-basedfuzzyvault:implementationandperformance.ieeetransactionsoninformationforensicsandsecurity,2007,2(4),pp.744-757中vaultencoding部分,使用cm、am、f进行fuzzyvault编码,最终得到模糊保险箱v,将v、pm以及l共同作为密钥绑定部分的结果。

步骤四,提取验证指纹的细节点集合其中d是m'中点的个数;构造拉格朗日插值公式f’

其中a、b分别是用于fuzzyvault解码的点的横坐标和纵坐标。

步骤五,判断公共点集pm是否为空,若pm为空,执行步骤六,否则执行步骤七;

步骤六,参照fingerprint-basedfuzzyvault:implementationandperformance.ieeetransactionsoninformationforensicsandsecurity,2007,2(4),pp.744-757中vaultdecoding部分,使用m'、v以及f'进行fuzzyvault解码,得到r'0,r'2,…,r't,将r'0,r'2,…,r't-1合并,并取前l位作为密钥k',使用密码哈希函数h(x)计算k'的哈希值hk'=h(k'),判断r't与hk'中的某个连续16比特是否对应,若对应,则密钥解绑定成功,返回密钥k',否则密钥解绑定失败,密钥解绑定部分结束;

步骤七,将pm与m'进行合并得到合并点集am',使用ap'与v进行fuzzyvault解码,得到r'0,r'2,…,r't,将r'0,r'2,…,r't-1合并,并取前l位作为密钥k',使用密码哈希函数h(x)计算k'的哈希值hk'=h(k'),判断r't是否与hk'中的某个连续16比特对应,若对应,则密钥解绑定成功,返回密钥k',否则密钥解绑定失败,密钥解绑定部分结束。

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