您好, 访客   登录/注册

基于金库算法理论对指纹密钥算法的分析与改进

来源:用户上传      作者: 马 俊 李新中

  摘要:本文证明了模糊金库算法中存在一个设计错误,即算法中对于 RS 码的使用是不合理性,在模糊金库算法的基础上设计了一种改进的指纹密钥算法,理论分析和实验仿真证明了该算法能够克服已有指纹密钥算法存在的大部分问题,同时对影响指纹密钥算法性能的各种因素进行了分析。
  关键词:指纹识别;指纹密钥算法;模糊金库
  
  一、引言
  
   1998 年美国 RSA 实验室的 Juels 等在文献《ACM Conference on Computer and Communications Security》里提出了“模糊承诺算法”, 这个算法将纠错码和密码学相结合从而获得一种新的密码学思想,称为模糊承诺,和传统密码学中的承诺算法相似,这个算法能够实现隐藏和绑定,既能使攻击者无法获得承诺值,又能使承诺者用不止一种方法来解密承诺值,这种模糊性能保证用户在所持有的信息有微小错误的情况下可以成功求得承诺值。
   U.Uludag等人提出了一种基于指纹特征的金库算法,该算法的指纹特征数据中除了指纹特征点的xy坐标外,还有相应的脊线的角度,这个算法在生成指纹密钥之前首先对模板和输入的指纹进行校准消除由于旋转等等引起的角度变化,参与比对的是指纹的x,y坐标,如果前后两个指纹的某两个点的xy坐标值相差在一个阈值之内,则认为相同的点。
   本文首先对模糊金库算法进行了介绍,并在算法设计、性能分析和实验设计几个方面进行了分析。在此基础对基于指纹特征的金库算法改进提出一种改进方法。同时从理论分析和实验仿真证明了该算法能够克服已有指纹密钥算法存在的大部分问题,同时对影响指纹密钥算法性能的各种因素进行了分析。
  
  二、对模糊金库算法的分析
  
   1.模糊金库算法简介
   在文献《IEEE International Symposium on Information Theory》中Juels提出了新的密码学概念模糊金库(fuzzy vault),这个概念基本思想是:一个用户 Alice 可以将一个秘密值 s 放在一个模糊金库里,使用一个集合 A 将其上锁,另外一个用户 Bob 如果想解锁这个金库,他只需使用一个与集合 A 相近的集合 B,即这两个集合在一定程度上相交,即可获得秘密s。
   在上锁算法里,集合 A 指的是 R 里“正确”点的横坐标,所谓“正确”点指其函数值是根据真的多项式求得的点。在解锁过程里,用户 Bob 将提供一个与集合 A 相近的集合 B,集合 B 的作用是从 R 认选出正确的点及其相应的函数值。如果集合 B 和集合 A 足够相近,那么集合 B 就能从 R 认选出较多的正确点对,但由于集合 B 只是和集合 A 相近而不是相同,因而不可能将所有正确的点对都认选出来。
  
   2.模糊金库算法分析
   假如需要生成一个纠错能力为c的RS码,首先,必须生成在GF(q)的生成多项式,这个多项式必须满足如下条件:“纠错能力为c的RS码的生成多项式必须有 2c个根,且这些根为α的连续的指数,即:
  
  
  
   三、改进的指纹密钥算法
  
   指纹密钥算法可以分成两个部分指纹密钥的生成和密码密钥的恢复。
  
   1.指纹密钥算法设计改进
   算法的第一部分是指纹密钥的生成,用户通过指纹采集器采集生成指纹图像,通过方向场的估计、Gabor 滤波等步骤对指纹图像预处理。并采取指纹图像后处理技术对伪特征的去除。
   (1)指纹密钥的生成
   由于实际中使用指纹图像的处理方法提取指纹的细节点,细节点表示成{ },这里和指该细节点的坐标,为该细节点的方向,指以逆时针方向从x轴转到该细节点局部脊线方向之间的角度,指细节点的类型,和分别指与细节点相连的脊线上采样点和细节点连线的长度及该连线与对应方向之间的夹角。
   同模糊金库算法相似,由用户指纹图像处理后生成的指纹细节点数据构成了上锁集合A。用户的密码密钥隐藏在一个与之对应的多项式里,密码密钥每隔 16 位作为一个系数嵌入一个多项式里,直到整个密码密钥都嵌入一个多项式里,便生成了与这个密码密钥对应的多项式p,用户细节点和噪声点的横坐标与纵坐标都将被输入该多项式计算对应多项式值。
   噪声点的生成方法如下:在用户真实细节点周围一定范围内禁止生成噪声点,用一个大小为τ的正方形来代表这个范围,对于噪声点的特征数据{,(),}和{,,}生成方法如下:
   由VC中随机函数在整个指纹图像里不属于正方形区域随机选择噪声点的横坐标xi和纵坐标,这样便可决定。
   同样由随机函数选择噪声点的类型,计算出用户真实细节点和的最大值dmax,和最小值,。
   (2)密码密钥的恢复
   同指纹密钥的生成过程一样密码密钥恢复仍需对采集得的用户指纹图像进行处理,处理方法指纹密钥生成对图像处理过程,最终应得到指纹的细节点数据,每个细节点数据内容和指纹密钥生成过程中获得的指纹细节点内容一样,也表示成{}。
   指纹密钥和用户的指纹细节点数据一起输入密码密钥恢复算法能够恢复出用户的密码密钥,密码密钥恢复的算法内容如下:
   步骤 1. 参考点对的选择
  
  
   kl=1 的点,这些点作为解锁点集合从指纹密钥中认选出来的候选点用以求解密钥k,这里候选点集合的大小c有可能大于多项式的次数k-1,只需以组合的方式每次从候选点集合中选出k个点计算密钥k’,如果k’对应的哈希值和预先存储的密钥k对应的哈希值相同,则认为密钥恢复成功,否则继续上述过程,直到穷尽候选点集合中所有大小为k的组合为止。
  作者单位:焦作大学
  
  参考文献:
  [1]A. Juels. A Fuzzy Vault Scheme. IEEE International Symposium on Information Theory, 2002:408-409.
  [2]林煌. 指纹密钥算法研究[D]. 哈尔滨工业大学 , 2006.
  [3]贾聪智. 指纹识别系统中的匹配算法研究与实现[D]. 电子科技大学 , 2004.
  [4]吕述望,王挺. 现代密码技术的应用局限[J].计算机应用研究 , 2000, 7:45-47.
  [5]朱丽娟,须文波,刘渊. 基于指纹的网络身份认证技术的研究与实现[J].计算机工程与应用 , 2003,31:56-58.
  [6]苏文新,郑东. 一种基于一次性口令和指纹识别的身份认证方案[J].计算机工程 , 2004, S1:22-25.
  
  注:本文中所涉及到的图表、注解、公式等内容请以PDF格式阅读原文。


转载注明来源:https://www.xzbu.com/2/view-385697.htm