发明名称 一种基于指纹特征数据与匹配算法的新型模糊金库方法
摘要 本发明涉及一种基于指纹特征数据与匹配算法的新型模糊金库方法。该方法中的上锁过程是先将随机密钥数据进行CRC编码,然后构造一个关联多项式,接着进行杂凑点的添加,然后对集合中的各个点进行特征量化过程,并打乱集合中各个点的顺序,用集合来生成一个注册哈希表。解锁过程是首先对输入细节点特征数据进行提取,接着对每个细节点特征数据进行量化,然后生成一个验证哈希表,利用匹配算法将验证哈希表与注册哈希表进行比对,获取子集,进行拉格朗日插值重构多项式。最后对重构得到的多项式的系数数据进行CRC校验过程。本发明将密钥信息和指纹特征数据有机地融合在一起,既有效地保护了密钥同时又隐藏了用户的指纹特征模板信息。
申请公布号 CN102510330B 申请公布日期 2014.07.09
申请号 CN201110341284.7 申请日期 2011.11.02
申请人 杭州电子科技大学 发明人 游林;王升国;陆捷;吴安宁
分类号 H04L9/08(2006.01)I;G06K9/00(2006.01)I 主分类号 H04L9/08(2006.01)I
代理机构 杭州求是专利事务所有限公司 33200 代理人 杜军
主权项 一种基于指纹特征数据与匹配算法的新型模糊金库方法,其特征在于该方法包括随机密钥的上锁过程和随机密钥的解锁过程;所述的随机密钥的上锁过程具体如下:步骤1.由系统产生一个长度为128bit随机密钥作为系统的启动,将该长度为128bit的随机密钥每隔16位作为多项式的一个系数,依次赋值为1次项至8次项系数,生成一个8次多项式p(x),而该多项式的常数项是由CRC校验码组成;将密钥和该多项式关联起来,并加入了CRC校验码,该CRC校验码的生成多项式选用了CRC16_IBM:x<sup>16</sup>+x<sup>15</sup>+x<sup>2</sup>+1;步骤2.输入一幅指纹图像,并对这幅指纹图像进行如下操作:对该指纹图像进行分割操作,方向场和梯度的计算,均衡,收敛,平滑,增强,二值化,细化操作,得到一幅清晰的保持了指纹特征信息二值图像;然后提取该图像中的所有细节点,并过滤和去除其中的伪细节点,保留原始图像的真实细节点,得到真实细节点所在纹线的方向角,每个真实细节点的特征信息标记为(x,y,θ);步骤3.针对采集得到的256×288的指纹图像进行操作,x,y的坐标范围为0~287;对x,y的坐标进行量化操作,每个值都除以8,量化到0~35,分别用6个bit来表示;θ的范围0~359,θ值除以22.5,量化到0~15,共4bit;从而一个指纹细节点的特征信息(x,y,θ)共需要16bit来表示;步骤4.从输入指纹图像中可得到了s个细节点特征的集合G={(x<sub>i1</sub>,y<sub>i1</sub>,d<sub>i1</sub>)|0≤i1&lt;s},并且每个细节点特征信息都用16bit来表示,然后使用均匀分布的方式随机添加杂凑点,即在整个指纹图像有效区域内,让杂凑点符合均匀分布的规律且杂凑点到真实细节点的距离和方差都加以限制,杂凑点经过与真实细节点同样的量化过程,使得后续过滤杂凑点的步骤变得有效而简单;步骤5.设添加得到的t个杂凑点集合C={(x<sub>i2</sub>,y<sub>i2</sub>,θ<sub>i2</sub>)|0≤i2&lt;t},最后形成了r=s+t个点的集合L={(x<sub>i</sub>,y<sub>i</sub>,θ<sub>i</sub>)|0≤i&lt;r},并将这样形成的点集合中的顺序置乱;步骤6.对集合L运用几何哈希技术生成一个注册哈希表,具体如下:步骤6‑1.从集合L中选择第一个点作为基准点,记M<sub>0</sub>=(x<sub>0</sub>,y<sub>0</sub>,θ<sub>0</sub>),其它点依次记为M<sub>1</sub>,M<sub>2</sub>,M<sub>3</sub>,…,M<sub>r‑1</sub>;步骤6‑2.进行细节点的变换和量化过程,在选择了M<sub>0</sub>作为基准点以后,其它点M<sub>1</sub>,M<sub>2</sub>,M<sub>3</sub>,…,M<sub>r‑1</sub>将根据它进行校准过程,其变换公式为:<maths num="0001" id="cmaths0001"><math><![CDATA[<mrow><msup><mi>TR</mi><mrow><msub><mi>M</mi><mi>i</mi></msub><mrow><mo>(</mo><mn>0</mn><mo>)</mo></mrow></mrow></msup><mo>=</mo><mfenced open='(' close=')'><mtable><mtr><mtd><msup><mi>TR</mi><mrow><msub><mi>x</mi><mi>i</mi></msub><mrow><mo>(</mo><mn>0</mn><mo>)</mo></mrow></mrow></msup></mtd></mtr><mtr><mtd><msup><mi>TR</mi><mrow><msub><mi>y</mi><mi>i</mi></msub><mrow><mo>(</mo><mn>0</mn><mo>)</mo></mrow></mrow></msup></mtd></mtr><mtr><mtd><msup><mi>TR</mi><mrow><msub><mi>&theta;</mi><mi>i</mi></msub><mrow><mo>(</mo><mn>0</mn><mo>)</mo></mrow></mrow></msup></mtd></mtr></mtable></mfenced><mo>=</mo><mfenced open='(' close=')'><mtable><mtr><mtd><mi>cos</mi><mrow><mo>(</mo><msub><mi>&theta;</mi><mn>0</mn></msub><mo>)</mo></mrow></mtd><mtd><mi>sin</mi><mrow><mo>(</mo><msub><mi>&theta;</mi><mn>0</mn></msub><mo>)</mo></mrow></mtd><mtd><mn>0</mn></mtd></mtr><mtr><mtd><mo>-</mo><mi>sin</mi><mrow><mo>(</mo><msub><mi>&theta;</mi><mn>0</mn></msub><mo>)</mo></mrow></mtd><mtd><mi>cos</mi><mrow><mo>(</mo><msub><mi>&theta;</mi><mn>0</mn></msub><mo>)</mo></mrow></mtd><mtd><mn>0</mn></mtd></mtr><mtr><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>1</mn></mtd></mtr></mtable></mfenced><mfenced open='(' close=')'><mtable><mtr><mtd><msub><mi>x</mi><mi>i</mi></msub><mo>-</mo><msub><mi>x</mi><mn>0</mn></msub></mtd></mtr><mtr><mtd><msub><mi>y</mi><mi>i</mi></msub><mo>-</mo><msub><mi>y</mi><mn>0</mn></msub></mtd></mtr><mtr><mtd><msub><mi>&theta;</mi><mi>i</mi></msub><mo>-</mo><msub><mi>&theta;</mi><mn>0</mn></msub></mtd></mtr></mtable></mfenced><mo>,</mo><mn>1</mn><mo>&le;</mo><mi>i</mi><mo>&lt;</mo><mi>r</mi></mrow>]]></math><img file="FDA0000451901750000021.GIF" wi="1078" he="270" /></maths><img file="FDA0000451901750000023.GIF" wi="548" he="65" />分别表示当以M<sub>0</sub>为基准点的情况下,点M<sub>i</sub>=(x<sub>i</sub>,y<sub>i</sub>,θ<sub>i</sub>)(1≤i&lt;r)变换后的横坐标,纵坐标和脊线方向角值;这里集合<img file="FDA0000451901750000024.GIF" wi="600" he="65" />代表以M<sub>0</sub>为基准点时的变换特征点的集合;然后对这个集合T<sub>0</sub>中的每一点进行如下量化过程:<img file="FDA0000451901750000022.GIF" wi="812" he="329" />这里形成的点Mi(0)=(x<sub>i</sub>(0),y<sub>i</sub>(0),θ<sub>i</sub>(0))是量化后的结果,其中坐标值和角度的量化参数α和β的选择与注册阶段提取的细节点坐标值的范围和验证阶段系统要达到的精度有关,此时形成的集合E<sub>H0</sub>=M<sub>0</sub>∪{M<sub>i</sub>(0)=(x<sub>i</sub>(0),y<sub>i</sub>(0),θ<sub>i</sub>(0))|1≤i&lt;r},即是当以M<sub>0</sub>为基准点时,其它各点形成的注册哈希表中的其中一组值;步骤6‑3.其它各组注册哈希表的生成过程,只需重复步骤6‑1和步骤6‑2,直到所有其它的点(M<sub>1</sub>,M<sub>2</sub>,M<sub>3</sub>…M<sub>r‑1</sub>)依次作为基准点为止,其它各组的注册哈希表分别记为<img file="FDA0000451901750000025.GIF" wi="321" he="61" />最后形成完整的注册哈希表<img file="FDA0000451901750000026.GIF" wi="492" he="70" />步骤7.用集合L中的每一个含有16bit信息的点作为横坐标代入多项式p(x)中,得到一个纵坐标的值;遍历集合L中的所有点,生成一个包含r个点对的集合,记作集合F,即为生成的模糊金库;至此上锁过程完成,系统保存的数据为一个完整的注册哈希表数据E<sub>H</sub>和模糊金库F,其中保存注册哈希表的目的是校准注册指纹图像和查询指纹图像的细节点特征信息;所述的随机密钥的解锁过程具体如下:步骤A.首先由用户输入查询指纹图像进行验证,然后对该输入的查询指纹图像进行分割操作,方向场和梯度的计算,均衡,收敛,平滑,增强,二值化,细化操作得到一幅清晰的保持了指纹特征信息二值图像;然后提取该图像中的所有细节点,并过滤和去除其中的伪细节点,提取得到l个真实细节点G′={g′(i3)=(x<sub>i3</sub>,y<sub>i3</sub>,θ<sub>i3</sub>)|0≤i3&lt;l},该集合G′也必须经过特征量化的过程,保证每个点的信息为16bit;步骤B.从G′中任意选择一个细节点作为基准点,用几何哈希技术生成含有l个元素的一组验证哈希表,将它与保存在系统中的注册哈希表E<sub>H</sub>中的r组数据进行比对;将匹配数目最多的一组数据作为候选的真实细节点集合;设经过匹配算法,比对得到的候选真实细节点的集合为G″={g″(i4)=(x<sub>i4</sub>,y<sub>i4</sub>,θ<sub>i4</sub>)|0≤i4&lt;q},如果匹配的数目小于9,必须重新选择基准点,并在计算得到了一组新哈希值后,再重新进行匹配获取候选真实细节点的过程,如果遍历G″中的每一个点,还是无法从r组哈希值中获取一组匹配数目大于9的数据,则验证失败;步骤C.从集合G″={g″(i4)=(x<sub>i4</sub>,y<sub>i4</sub>,θ<sub>i4</sub>)|0≤i4&lt;q}中任意选择9个细节点特征数据,结合模糊金库F中的点对进行多项式重构,运用拉格朗日插值重构8次多项式p(x)<maths num="0002" id="cmaths0002"><math><![CDATA[<mrow><mi>p</mi><mrow><mo>(</mo><mi>x</mi><mo>)</mo></mrow><mo>=</mo><munderover><mi>&Sigma;</mi><mrow><mi>i</mi><mn>5</mn><mo>=</mo><mn>0</mn></mrow><mn>8</mn></munderover><mfrac><mrow><mo>&lsqb;</mo><mi>x</mi><mo>-</mo><msup><mi>g</mi><mrow><mo>&prime;</mo><mo>&prime;</mo><mo>&prime;</mo></mrow></msup><mrow><mo>(</mo><mn>0</mn><mo>)</mo></mrow><mo>&rsqb;</mo><mo>&CenterDot;</mo><mo>&CenterDot;</mo><mo>&CenterDot;</mo><mo>&lsqb;</mo><mi>x</mi><mo>-</mo><msup><mi>g</mi><mrow><mo>&prime;</mo><mo>&prime;</mo><mo>&prime;</mo></mrow></msup><mrow><mo>(</mo><mi>i</mi><mn>5</mn><mo>-</mo><mn>1</mn><mo>)</mo></mrow><mo>&rsqb;</mo><mo>&lsqb;</mo><mi>x</mi><mo>-</mo><msup><mi>g</mi><mrow><mo>&prime;</mo><mo>&prime;</mo><mo>&prime;</mo></mrow></msup><mrow><mo>(</mo><mi>i</mi><mn>5</mn><mo>+</mo><mn>1</mn><mo>)</mo></mrow><mo>&rsqb;</mo><mo>&CenterDot;</mo><mo>&CenterDot;</mo><mo>&CenterDot;</mo><mo>&lsqb;</mo><mi>x</mi><mo>-</mo><msup><mi>g</mi><mrow><mo>&prime;</mo><mo>&prime;</mo><mo>&prime;</mo></mrow></msup><mrow><mo>(</mo><mn>8</mn><mo>)</mo></mrow><mo>&rsqb;</mo></mrow><mrow><mo>&lsqb;</mo><msup><mi>g</mi><mrow><mo>&prime;</mo><mo>&prime;</mo><mo>&prime;</mo></mrow></msup><mrow><mo>(</mo><mi>i</mi><mn>5</mn><mo>)</mo></mrow><mo>-</mo><msup><mi>g</mi><mrow><mo>&prime;</mo><mo>&prime;</mo><mo>&prime;</mo></mrow></msup><mrow><mo>(</mo><mn>0</mn><mo>)</mo></mrow><mo>&rsqb;</mo><mo>&CenterDot;</mo><mo>&CenterDot;</mo><mo>&CenterDot;</mo><mo>&lsqb;</mo><msup><mi>g</mi><mrow><mo>&prime;</mo><mo>&prime;</mo><mo>&prime;</mo></mrow></msup><mrow><mo>(</mo><mi>i</mi><mn>5</mn><mo>)</mo></mrow><mo>-</mo><msup><mi>g</mi><mrow><mo>&prime;</mo><mo>&prime;</mo><mo>&prime;</mo></mrow></msup><mrow><mo>(</mo><mi>i</mi><mn>5</mn><mo>-</mo><mn>1</mn><mo>)</mo></mrow><mo>&rsqb;</mo><mo>&lsqb;</mo><msup><mi>g</mi><mrow><mo>&prime;</mo><mo>&prime;</mo><mo>&prime;</mo></mrow></msup><mrow><mo>(</mo><mi>i</mi><mn>5</mn><mo>)</mo></mrow><mo>-</mo><msup><mi>g</mi><mrow><mo>&prime;</mo><mo>&prime;</mo><mo>&prime;</mo></mrow></msup><mrow><mo>(</mo><mi>i</mi><mn>5</mn><mo>+</mo><mn>1</mn><mo>)</mo></mrow><mo>&rsqb;</mo><mo>&CenterDot;</mo><mo>&CenterDot;</mo><mo>&CenterDot;</mo><mo>&lsqb;</mo><msup><mi>g</mi><mrow><mo>&prime;</mo><mo>&prime;</mo><mo>&prime;</mo></mrow></msup><mrow><mo>(</mo><mi>i</mi><mn>5</mn><mo>)</mo></mrow><mo>-</mo><msup><mi>g</mi><mrow><mo>&prime;</mo><mo>&prime;</mo><mo>&prime;</mo></mrow></msup><mrow><mo>(</mo><mn>8</mn><mo>)</mo></mrow><mo>&rsqb;</mo></mrow></mfrac><msub><mi>y</mi><mrow><mi>i</mi><mn>6</mn></mrow></msub></mrow>]]></math><img file="FDA0000451901750000031.GIF" wi="1528" he="123" /></maths>其中g″′(i5)(0≤i5≤8)为从G"中选出的其中9个候选真实细节点信息,y<sub>i6</sub>(0≤i6≤8)为储存在模糊金库中的点对值的纵坐标,如果CRC校验成功后,展开上述的拉格朗日多项式得到的系数就能恢复原始密钥。
地址 310018 浙江省杭州市下沙高教园区2号大街