APP下载

基于可编辑区块链的指纹识别系统

2022-01-19朱艳艳李晟冯国瑞张新鹏

应用科学学报 2021年2期
关键词:变色龙指纹识别哈希

朱艳艳,李晟,冯国瑞,张新鹏

1.上海大学通信与信息工程学院,上海200444

2.复旦大学计算机科学技术学院,上海200433

指纹识别系统已经广泛应用于公司门禁、手机支付、公安备案等领域。然而,现有的指纹识别系统一般采用数据库存储原始指纹图像或特征,数据库中的指纹数据存在被盗或者被篡改的风险。被盗的指纹数据将会给用户带来永久且不可弥补的安全隐患。在2015年,有黑客从美国政府数据库中窃取了560万美国联邦雇员的指纹数据[1],带来了无法估量的巨大风险。因此,迫切需要研究能够对指纹数据进行安全存储的指纹识别系统,防止指纹数据被盗或篡改,提高指纹识别的安全性和可靠性。

区块链[2-3]是实现数据安全存储的有效手段。它运用分布式存储、数据加密、时间戳、共识机制等手段,在无需互相信任的节点中实现去中心化的点对点交易,并按照时间顺序以链条的方式存储数据区块,由此实现数据的放分布式存储,保证了数据的不可篡改性。

目前,区块链和生物特征识别结合的研究还处于发展初期。文献[4]提出基于区块链技术的生物特征和口令双因子跨域认证方案,解决了传统跨域认证方式不多且方案复杂的问题。该方法优点是采用模糊提取技术解决了生物特征泄漏导致永久不可用的问题,采用区块链存储技术解决模糊提取技术易受主动攻击的威胁。但采用的公有链网络对数据达成的共识效率还有待提高。文献[5]提出了基于区块链和人脸识别的双因子身份认证模型,将人脸图像直接存储于去中心化的区块链实现身份认证。该方法的优点是利用区块链去中心化和链式数据结构等特点实现上链后的人脸图像信息不易被篡改。但人脸图像数据被直接存储于区块链上,存在信息泄漏的风险。文献[4-5]所提方法都无法对已上链生物数据进行编辑,不易于管理。

针对上述问题,本文提出了基于可编辑区块链的指纹识别系统。首先搭建私有链环境,实现多节点集群互连,然后计算指纹哈希并将其存储于区块链。为了方便管理员对指纹识别系统中的用户进行更新,本文利用变色龙哈希算法对所构建的私有链区块体数据计算哈希。拥有变色龙哈希私钥的管理员可对区块体中的数据进行编辑,从而在不改变区块链结构的基础上实现对用户指纹数据的删除或修改。

1 指纹哈希计算

目前,针对指纹哈希的研究较多且能达到较理想的指纹哈希识别准确率。文献[6]基于细节圆柱码[7](minutia cylinder-code,MCC)生成二进制向量,并对生成向量之间的相似性进行数值近似处理,设计了一种新的指纹索引算法。文献[8]在文献[7]的基础上提出用于指纹认证的索引一阶哈希的单因素可取消生物识别技术。文献[9-10]基于MCC使用内核方法根据指纹细节生成固定长度的实值生物特征向量,再采用最大索引算法计算出具有鲁棒性的定长指纹哈希。文献[11]提出一种单因素可取消生物测量方案即扩展指纹特征向量哈希,它将指纹特征作为输入,利用与生物特征数据分离的置换密钥作匹配的标识符得到扩展指纹特征向量哈希。文献[12]提出将指纹细节与指纹纹理特征融合,融合后的局部结构通过K-means聚类算法将局部结构转换成k位有序的位串,将其定义为指纹哈希。

通过以上关于指纹哈希算法的比较,本文最终采用文献[10]提出的一种基于高斯随机投影的最大索引算法,首先基于MCC提取定长的指纹图像实值特征向量,然后采用高斯随机投影最大索引算法得到具有良好鲁棒性的定长指纹哈希。

2 基于可编辑区块链的指纹识别系统

本文所提系统如图1所示,给定用于注册的用户指纹图像。首先计算其哈希,然后通过节点挖矿将该哈希存储于私有链上并为其设置ID,同时私有链中其他节点同步存储该区块的信息。在验证阶段,系统先采集待验证用户的指纹图像采用注册阶段相同的哈希算法计算其指纹哈希,然后与根据ID从区块链提取的指纹哈希进行比对,实现身份认证。

图1 可编辑区块链指纹识别系统框图Figure 1 Editable blockchain f ingerprint identif ication system layout

为了方便管理员对指纹识别系统中的用户数据进行更新,本文采用变色龙哈希计算区块体中存储的指纹哈希,仅拥有变色龙哈希私钥的管理员可对区块链进行编辑。由此可达到在不改变区块链结构的基础上实现对用户指纹数据的删除或修改。

2.1 私有链搭建

区块链根据节点情况分为公有链、私有链和联盟链。本系统采用私有链作为指纹哈希存储。如图2所示,私有链搭建主要分为两个步骤。

图2 私有链搭建流程图Figure 2 Flow chart of private chain construction

一是单节点的私有链环境配置,以保证单节点可以正常接入私有链网络,其具体步骤为:1)为私有链中的每个节点构造相同的创世区块,即被最早构建拥有唯一ID的区块;2)初始化区块链将创世区块信息写入私有链,同时搭建区块存储环境;3)启动私有链。

二是构建私有链中的多节点集群,其步骤为:通过每个节点对应的唯一节点信息进行相互添加连接,若添加成功可看到该节点连接的节数。其目的是将多个单节点实现互连形成一个分布式存储结构。

2.2 可编辑区块结构

一般而言,区块链的可编辑性可由以下两种方式实现:

1)采用变色龙哈希算法

文献[13]首次提出采用变色龙哈希算法实现区块链可编辑。针对文献[13]存在的风险点,文献[15]提出采用秘密共享技术将使用变色龙算法得到的私钥分成多份分配给网络中的节点,半数以上节点同意才可再恢复变色龙私钥,实现多节点参与区块链数据的编辑。

2)设计全新的机制

文献[16]提出基于门限环签名的可删除区块链。首先对门限环签名方案进行改进,然后基于空间证明的共识机制提出可删除区块链来解决链中过期数据占用大量存储空间的问题。

第二种方式需要构建全新的区块生成和删除机制,操作困难且不易在真实的私有链上实现。因此,本文采用变色龙哈希算法实现区块可编辑。变色龙哈希算法原理简单易实现,且适用于大多数的区块结构,具有广阔的应用前景。

可编辑区块结构如图3所示,私有链区块主要由区块头和区块体两部分组成。区块体存储用户指纹哈希,同时把通过变色龙哈希算法计算得到的指纹变色龙哈希传递给区块头。区块头包含版本号、时间戳、随机数、难度值、上一个区块的哈希值、指纹变色龙哈希和整个区块头信息计算得到哈希即本区块哈希值。本区块的哈希值会传递给下一个区块实现区块与区块间的链式连接。

图3 区块链数据结构Figure 3 Blockchain data structure

2.3 变色龙哈希算法

采用变色龙哈希算法的目的是使拥有变色龙哈希私钥的管理员,可找到已有区块数据的碰撞,在不改变区块链结构的基础上实现对用户指纹哈希的删除或修改,实现对区块链上数据的编辑。同时,没有变色龙私钥的变色龙哈希算法与传统哈希算法一样具有较高的安全性。变色龙哈希算法实现区块可编辑的步骤如下:

步骤1为每个指纹哈希生成一对公钥PK和私钥SK,同时分配一个随机数r,即(PK,SK,r);

步骤2以公钥PK,原消息m和对应的随机数r作为输入,通过变色龙哈希计算输出原消息m对应的变色龙哈希值CH;

步骤3以私钥SK、原消息m、其对应的随机数r、修改后消息m′作为输入,通过公式计算得到m′、对应的随机数r′,只有拥有私钥SK才能得到相应的r′;

步骤4同步骤2,以(PK,m′,r′)作为输入,通过相同的变色龙哈希计算使得到m′与m有相同的变色龙哈希值CH。

综上,变色龙哈希方法在不改变区块链的整体结构基础上,可实现对区块体中的存储信息进行编辑。因此,本文对区块头延用传统哈希算法,而区块体采用变色龙哈希算法,两种算法结合既保证区块链整体链式结构不改变又实现区块结构可编辑。

3 实验与分析

3.1 私有链搭建与指纹哈希上链

私有链搭建设备1是配置为1.6 GHz Intel Core i5处理器,4 GB内存的MacBook Air,设备2配置为3.9 GHz Intel Core i3处理器,8 GB内存以及其他多台不同设备。数据上链的时间与私有链中节点数目以及一次性上链数据大小相关。因此,本实验记录了节点分别取2、5、10、20,一次性上链指纹哈希数目分别为1、2、5、10时对应上链的时间,实验结果如表1所示。

表1 数据上链时间比较Table 1 Comparison of data winding time s

实验数据表明,每次上链数据大小确定时,私有链中节点数目越多则数据上链的消耗时间越长;同样地,私有链中节点数目确定时,每次上链的指纹哈希数目越多即每次上链的数据越大,则消耗的时间也越长。分析实验数据得出,上链数据的大小对消耗的时间影响更大。

3.2 可编辑区块

该部分基于Java编程仿真实现对区块体中数据的变色龙哈希运算,使修改后的数据与原数据产生相同的哈希值,实现区块体的编辑。str Msg1表示用户1的指纹哈希,strMsgn表示其他用户n的指纹哈希,其中指纹哈希长度是299。

以17号区块进行编辑为例,图4为原始的第16~28号区块与采用变色龙哈希对区块17编辑后的第16~18号区块的结构及数据比较。

由图4发现,当区块17区块体中的数据由用户str Msg17的指纹哈希修改为其他用户的指纹哈希new strMsg17后,可以发现两个不同区块体数据计算的哈希值却保持不变,则传递给区块头的哈希值仍不改变,从而使区块体的整体结构也不改变。因此,本文定义的对区块头采用传统哈希函数,对区块体采用变色龙哈希函数能实现区块链的可编辑。

图4 区块17编辑后的16~18区块数据Figure 4 16~18 block data after editing in block 17

3.3 指纹识别系统的实验结果

本文采用文献[10]得到的长度为299的指纹向量作为高斯随机投影最大索引哈希算法的输入。对公共指纹数据集FVC2002 DB1_a进行了实验,该数据集包含100个用户,每个用户8个样本,共800幅指纹图像。本文通过FRR(false rejection rate)、FAR(false acceptance rate)和EER(equal error rate)来评估指纹识别系统的性能。即指纹识别系统的准确率取决于指纹哈希算法的鲁棒性。FRR计算公式为

式中:NFR为错误拒绝的次数,即本该匹配成功却判别为匹配失败的次数;NGRA为类内匹配的总次数。FAR计算公式为

式中:NRA为错误接受的次数,即本该匹配失败却判别为匹配成功的次数;NIRA为类间匹配的总次数。当FRR与FAR的值相等时,FRR与FAR的值称为等错误率(EER)。

本文采用高斯随机投影,因此EER是对重复5次的EER平均值进行计算获得的。关于指纹匹配,我们采用每个用户的前3个样本作为训练样本以生成指纹向量,剩余样本将用于测试。将产生1 000个FRR分数和4 950个FAR分数被用来计算指纹匹配率。如图5所示,指纹成功匹配率较高。根据实验分析,EER与产生随机高斯投影向量的次数t和每次随机高斯投影产生的q个数相关,取不同的q和m值进行实验。q取值为5、50、100、150、200、250、300,m的取值为150、200、250、300。实验结果如图6所示。

图5 传统指纹细节匹配技术的性能Figure 5 Performance of conventional f ingerprint minutiae matching technology

图6 等错误率Figure 6 Equal error rate

实验曲线表明,q值从5到350,EER上下浮动,t固定为300,当q=5时,ERR=0.23%;当q=350时,EER=0.30%。q值对EER的影响相对较小。相反,t取值变化不大但曲线趋势却相差较远,则随机高斯投影向量的次数t是决定准确率的重要因素。通过实验整体分析,本文所采用的指纹哈希方法使得指纹识别系统的准确率相对较高,且一定用户数量指纹的删除或修改对指纹识别系统的准确率的影响甚微。

4 结语

基于数据库指纹识别系统的发展与应用在给我们生活带来便利的同时,也存在个人隐私信息泄漏的风险。为保护个人隐私提高指纹识别系统的安全性,本文提出了基于可编辑区块链的指纹识别系统方案,该方案首先将指纹图像基于MCC提取定长的指纹实值特征向量,然后采用高斯随机投影最大索引算法得到具有良好鲁棒性的定长指纹哈希,最后将定长指纹哈希存储于私有链上。同时,设立拥有变色龙私钥的管理员可对区块体中数据进行编辑,方便用户数据的更新。实验结果表明,本文提出的系统不仅指纹识别效率高,且能够有效防止个人信息泄漏,增加指纹识别系统的安全性。

猜你喜欢

变色龙指纹识别哈希
神奇变色龙
文件哈希值处理一条龙
基于单片机指纹识别电子寄存柜设计
神奇的变色龙
小小变色龙
指纹识别技术综述
基于OpenCV与均值哈希算法的人脸相似识别系统
基于大容量指纹识别的实时身份认证系统
巧用哈希数值传递文件
基于线阵CCD的指纹识别实验