[0001]
本发明属于信息安全和隐私保护领域,具体涉及一种安全的在线指纹匹配方法,在 利用同态bgn加密算法对用户指纹特征进行隐私保护,在密文状态下进行特征匹配的 方法。
背景技术:[0002]
基于生物特征的身份识别最早是在1994年提出来的。但是生物特征识别系统的安 全性是在近几年才开始受到广泛的关注。生物特征数据的加密类型的不同可以分为:特 征模板加密;可搜索加密;同态加密;矩阵加密。2006年jules等人提出一种fuzzy vault 方法,将生物特征数据映射到密钥构造的多项式上得到真实点,再添加大量随机杂凑值, 验证时输入生物特征数据,当能够提取出足够数量的真实点,就能够恢复出密钥。该方 法非常适用于无序的生物特征数据集合。这种方法较好的解决了密码体制精确性和生物 特征模糊性之间的矛盾,然而fuzzy vault方法存在严重的安全缺陷:(1)通过交叉比 较多个模糊金库可以得到原始特征点模板的数据;(2)一旦密钥被盗,攻击者可以将 部分随机杂凑值换成其他值,就可以通过验证这些值来冒充合法用户通过系统验证。 2000年song等人构造了首个可搜索加密方法,该方法可以实现在密文域遍历密文匹配 来实现查找,但是效率较低。2010年li等人提出了一种基于模糊关键字的搜索方法, 该方法通过计算关键字之间的距离定义关键字之间的相似性。2017年,yang等人提出 了基于双因子排序的模糊关键字检索方法,并以汉明距离和相似度评分作为判断依据。 2005年abdalla等人利用公钥密码系统提出了一种身份加密搜索方法。2004年golle等 人提出了多关键字搜索的安全威胁模型。2015年mohammad等人利用可搜索加密技术, 提出了一个隐私保护的生物特征识别解决方法,名为cloudid。cloudid可以在加密域 中执行生物识别的操作,来确保云服务器或潜在攻击者无法直接访问敏感数据。2016 年朱斌瑞等人也将生物特征和可搜索加密结合,实现了安全快捷的生物特征关键词搜 索。可搜索加密方法主要是利用公钥密码体制来实现生物特征认证系统中的模板密文搜 索模块的隐私保护,该类型方法不能为认证系统提供完整的隐私保护,也不能完成系统 中复杂的数据密文计算。同态密码体制于1978年首次提出,其特点是可以对密文进行 计算,在不需要解密的情况下完成对加密数据运算。在保证生物特征数据安全的前提下 又不影响认证的准确度,是基于生物特征进行身份安全认证方法研究的热点。常用的同 态加密算法paillier和rsa首先被用于人脸、虹膜、掌纹和指纹认证系统中来保证生物 特征数据的隐私保护。
[0003]
2010年barni等人提出的基于paillier的fingercode指纹认证方法,在不影响 fingercode指纹识别方法认证准确性的情况下实现了两方交互的场景下指纹数据隐私 保护。2014年li等人提出了基于乱码电路和同态加密算法指纹细节点匹配认证方法, 实现了匹配模板数据的加密存储和两方安全计算。同年chun等人利用同态密码体制构 造了欧氏距离和汉明距离的安全两方计算方法,实现了基于两种距离计算的多种生物特 征认证方法的隐私保护。2015年blanton等人利用同态加密技术为指纹和虹膜认证系统 设计了隐私
保护方法,实现了大数据场景下的两方安全计算。2017年masaya等人提出 了基于两种基于理想格的同态加密方法,用于解决生物特征识别中安全计算汉明距离的 问题。然而,上述的全同态加密技术计算复杂度较高,实现成本高,而部分同态加密算 法支持的运算方式较少,不能够完全适用于复杂的生物特征数据匹配计算。
[0004]
本申请基于e-finger隐私保护方法,引入lwe问题的实例,提出一种新的安全的在 线指纹认证方法,称为security e-finger。我们提出的security e-finger方法采用同态加密 技术,在组合阶群下计算安全欧氏距离,保护用户的指纹信息,实现机密性,实现高效 安全的在线指纹认证。
技术实现要素:[0005]
本发明的目的在于提出一种安全的在线指纹匹配方法,该方法能够使服务器实现安 全高效的在线指纹认证,且不需要知道用户加密指纹特征的私钥,保证了用户的指纹特 征的隐私性。
[0006]
为了达到上述目的,本发明采用的技术方法如下:
[0007]
利用同态bgn密码算法,将用户的指纹特征信息使用同态的bgn加密算法进行保 护。
[0008]
设计方法加入lwe问题实例,在用户的提出服务请求时,对用户的指纹特征加入 一个lwe问题的实例,扰乱用户的指纹特征的分布情况,增加系统的安全性。
[0009]
包括以下步骤:
[0010]
步骤一:安全认证中心初始化阶段,安全认证中心生成系统参数,用户和服务商在 安全认证中心注册,生成各自的公私钥对,用户指纹特征采集并提交模版数据;
[0011]
步骤二:用户模版数据授权阶段,用户在服务提商处注册后,服务商向安全认证中 心申请获取该用户的模版数据;
[0012]
步骤三:用户服务请求阶段,用户端对用户的特征信息进行采集,使用同态bgn 密码算法生成临时验证指纹密文信息;
[0013]
步骤四:密文匹配阶段,服务商接收到用户的验证请求后,与数据库中该用户的模 版数据进行匹配,匹配结果为真,则通过用户的服务请求,否则拒绝用户的服务请求。
[0014]
作为本发明方法进一步的说明:
[0015]
步骤一:安全认证中心初始化
[0016]
系统初始化以及系统参数分发:
①
用户(u)在安全认证中心处的注册,用户选取随机数 作为自己的私钥并计算得出公钥
②
分配安全参数k
i
和生成用户 加密参数
③
服务提供商(oas)在安全认证中心处的注册,服务商 选取随机作为私钥计算出公钥安全认证中心获取模板:
④
安全认 证中心采集注册用户的指纹特征计算出加密模版数据 [0017]
步骤二:用户模板授权
[0018]
⑤
用户在服务提供商(oas)注册:用户用自己的私钥对自己的id进行签名发送给oas: 其中
[0019]
⑥
服务提供商验证用户的签名正确性后,向安全认证中心申请用户模板:服务提供商用 自己的私钥进行签名并把发 送给安全认证中心;
[0020]
⑦
认证中心验证用户和服务提供商的签名的正确性后,提供用户模板:安全认证中心接 收到服务提供商的请求后,安全认证中心首先验证签名时效性,用户的和服务提供商的 验证签名的正确性;验证正确后安全认证中心用私钥sk
ta
构造签名, 将指纹模版数据包 发送给服务提供方;
[0021]
步骤三:用户的服务请求
[0022]
用户首先利用终端设备采集自己的指纹图像,在通过gabor滤波器的图像处理以及特征 提取,获取指纹的矢量信息给特征加入冗余后,用同态bgn算 法加密得到指纹特征的密文
⑧
用户用自己私钥对构 造好的验证指纹信息进行签名;签名信息为签名 完成后将验证请求数据包发送给服务提供商;
[0023]
步骤四:密文匹配阶段
[0024]
服务提供商接收到用户的验证请求数据包后,首先验证用户的 签名的正确性,验证通过后,计算用户的匹配参数m
d
;
[0025]
服务提供商在布隆过滤器bf
rdsi
上运行bf.test,计算来判断匹配参数m
d
是否为属于参 考集合rds
i
;得到匹配结果rs,若rs为真,则验证成功,否则验证失败;
⑨
对rs 加密后得到将c
rs
发送用户。
[0026]
作为本发明方法进一步的说明:所述步骤一的具体操作为:安全认证中心初始化选 择一个安全参数运行函数keygen(l):生成参数 <g,g
t
,e,q1,q2,g,h,n=q1*q2>,q1,q2为l比特的素数,g,u是环g的生成元,环g的 阶为n;计算出两个秘密的数值在g中生成子环,阶 是q1;认证中心选择随机参数作为认证中心的公钥sk
ta
,计算出安全认证中心公钥 安全认证中心选取一个非对称的加密算法e(),哈希函数哈希函数最终ta保存秘密参数<q1,sk
ta
>;公开参数 <g,g
t
,e,g,h,n,pk
s
,e(),h1(),h2()>;
[0027]
(1)服务提供商(oas)的注册:服务提供商需要在安全权认证中心进行注册以 获得使用指纹模版来进行身份认证服务的服务资格;当在安全认证中心出进行注册时, 服务提供商首先要选择随机数作为自己的私钥计算出公钥并将公 钥和服务商信息一起提交给安全认证中心,之后安全认证中心将分配给成功注册的服务 商一个秘密身份验证码ic
s
;
[0028]
(2)用户(u)在认证中心的注册:用户选择一个随机数作为自己的私钥
并计算得出公钥把公钥信息发送给认证中心;这时,认证中心为每个用户u
i
选择一个随机性的安全参数k
i
和并计算以及用户加密参 数安全认证中心将参数发送给用户;
[0029]
(3)保存模版:ta将采集注册用户的指纹,并通过图像处理以及特征提取,得到 用户指纹的fingercode向量安全认证中心通过以下步骤将数据进行 加密存储:首先利用用户的冗余参数k
i
和哈希函数加冗余值,如公 式(1-1)所示:
[0030][0031]
选择n个随机数计算出加密模版数据具体计 算方法如公式(1-2)所示:
[0032][0033]
(4)安全认证中心计算每个用户u
i
的rds
i
,其中
ꢀꢀ
是判断两个fingercode是否匹配的欧氏距离的门限值; 基于rds
i
,安全认证中心为每个用户构造一个bloomfilterbf
rdsi
;用户永久保存指纹分 量线性组合t
(1)
,...,t
(l)
,其中选取的lwe分布t
(j)
,1≤j≤l,满足条件 其中e
j
服从离散高斯分布。
[0034]
作为本发明方法进一步的说明:所述步骤二的具体操作为:
[0035]
(1)用户在服务提供商(oas)的注册:用户用自己的私钥对自己的id进行签名 发送给oas:其中其中ts1是 时间戳,是每个用户的id号;服务提供商接受到用户的请求数据后,首先验证ts1的时效性;然后验证是否成立;如果等式成 立,则验证通过;
[0036]
(2)服务提供商申请用户模板:服务提供商验证通过用户的申请数据后,服务商 用自己的私钥进行签名并把发
行签名。签名信息为签名完成后将验证请求数据包 发送给服务提供商。
[0046]
作为本发明方法进一步的说明:所述步骤四的具体操作为:
[0047]
(1)验证用户请求数据包:首先,服务提供商接受到用户的验证请求数据包 后,首先验证用户的身份标识以及时间戳ts4的时效性, 然后利用用户的公钥验证用户的签名验证用户的签名如果等式成立,则用户的签名有效,用户的 请求成功;
[0048]
(2)计算匹配参数:根据用户的服务提供商在数据库中找到用户对应的匹 配模板得到该用户的加密指纹模版数据以及布隆过滤器 bf
rdsi
;服务提供商利用指纹模版数据和用户的验证指纹数据计算匹配参数m
d
;具体 公式如(1-5)所示:
[0049][0050]
得出验证结果:服务提供商在布隆过滤器bf
rdsi
上运行bf.test计算来判断匹配参数 m
d
是否为属于参考集合rds
i
;
[0051]
(3)返回匹配结果的密文:服务提供商加密匹配结果构造签名 后,将数据包发送给用户
[0052]
与现有技术相比,本发明具有以下有益效果:
[0053]
本发明对e-finger方法的在线指纹认证方法过程进行了如下改进:
[0054]
(1)在用户的注册阶段,安全认证中心会给每个用户选择一个随机参数k
i
',进而 生成每个用户所独有的系统参数其中不同的 用户使用不同的系统参数值,即使有合谋攻击的存在,泄露了系统安全参数值,也不会 对其他的用户造成安全隐患。
[0055]
(2)用户在进行服务请求时,将数据包发送给服务提供方, 其中即使在通信信道中有攻击者c的存在,因为数据包 中包含有用户信息以及服务商信息id
s
;攻击者c也无法使用该数据包向安全认 证中
心进行模版数据的申请。
[0056]
(3)在本申请方法中,引入lwe问题实例,使得每次用户处理过的临时验证指纹 信息和满足正态分布的信息无法区分,且每次用户的提交的临时验证指纹信息相差较 大,无法从多次验证请求信息中获取到其他有用的信息;在系统注册阶段,系统给用户 生成指纹分量线性组合t
(1)
,...,t
(l)
其中选取的lwe分布t
(j)
,1≤j≤l,满足条 件其中e
j
服从离散高斯分布;用户在进行验证请求时,只需要随 机的选择线性组合t
(j)
,加密时进行运算rq
y
=sb
u2y
′
+t
;使得系统安全性规约到解决lwe 困难问题中。
附图说明
[0057]
图1是本发明方法系统模型流程图;
[0058]
图2是本发明实施例中的时间线性增长图。
具体实施方式
[0059]
本申请提出了一种新的安全的隐私保护方案——security e-finger方案,该方案中引 入lwe问题的思想,对用户的临时指纹特征信息进行隐私保护。本申请提出的securitye-finger方案能够解决在线指纹认证系统中的指纹数据的隐私保护的安全性问题,同时 兼顾了系统对效率的要求,为生物特征认证系统提供一种新的隐私保护技术方案,为安 全指纹认证系统的推广提供了理论依据和技术支撑。
[0060]
结合图1介绍本申请具体的实施过程:
[0061]
安全认证中心初始化阶段
[0062]
具体操作为:安全认证中心初始化选择一个安全参数运行函数 keygen(l):生成参数<g,g
t
,e,q1,q2,g,h,n=q1*q2>,q1,q2为l比特的素数,g,u是环 g的生成元,环g的阶为n。计算出两个秘密的数值生成元,环g的阶为n。计算出两个秘密的数值在 g中生成子环,阶是q1。认证中心选择随机参数作为认证中心的公钥sk
ta
,计算出安全 认证中心公钥安全认证中心选取一个非对称的加密算法e(),哈希函数 哈希函数最终ta保存秘密参数<q1,sk
ta
>;公开参数 <g,g
t
,e,g,h,n,pk
s
,e(),h1(),h2()>。
[0063]
(1)服务提供商(oas)的注册:服务提供商需要在安全权认证中心进行注册以 获得使用指纹模版来进行身份认证服务的服务资格。当在安全认证中心出进行注册时, 服务提供商首先要选择随机数作为自己的私钥计算出公钥并将公 钥和服务商信息一起提交给安全认证中心,之后安全认证中心将分配给成功注册的服务 商一个秘密身份验证码ic
s
。
[0064]
(2)用户(u)在认证中心的注册:用户选择一个随机数作为自己的私钥并计算得出公钥把公钥信息发送给认证中心。这时,认证中心为每个用户u
i
选
择一个随机性的安全参数k
i
和并计算以及用户加密参 数安全认证中心将参数发送给用户。
[0065]
(3)保存模版:ta将采集注册用户的指纹,并通过图像处理以及特征提取,得到 用户指纹的fingercode向量安全认证中心通过以下步骤将数据进行 加密存储:首先利用用户的冗余参数k
i
和哈希函数加冗余值,如公 式(1)所示。
[0066][0067]
选择n个随机数计算出加密模版数据具体计 算方法如公式(2)所示。
[0068][0069]
用户模版数据授权阶段
[0070]
具体操作为:(1)用户在服务提供商(oas)的注册:用户用自己的私钥对自己 的id进行签名发送给oas:其中 其中ts1是时间戳,是每个用户的id号。服务提供 商接受到用户的请求数据后,首先验证ts1的时效性。然后验证 是否成立。如果等式成立,则验证通过。
[0071]
(2)服务提供商申请用户模板:服务提供商验证通过用户的申请数据后,服务商 用自己的私钥进行签名并把发送给安全认证中心。
[0072]
(3)认证中心提供永久指纹模板:当安全认证中心接收到服务提供商的请求后, 安全认证中心首先验证签名的时间戳ts1和ts2的时效性,以及用户身份标识u
i
和指纹 认证服务提供商的id
s
。之后用用户的公钥和服务提供商的公钥pk
s
验证签名的正 确性,即验证和 e(g,sig
s
)=e(pk
s
,h1(id
s
||ts2))的正确性。如果这两个等式都成立,则用户和指纹认证 服务器签名有效,那么安全认证中心通过服务提供商的指纹模版请求。安全认证中心用 私钥sk
ta
构造签名,
签名结束后,安全认证 中心将指纹模版数据包发送给服务提供方。
[0073]
(4)服务提供商保存用户的模板信息:服务提供商接受到安全认证中心发来的指 纹模版数据包后,首先验证时间戳信息ts3的时效性,然后验证中心的签名信息, 如若签名信息没有问题,则服务提 供商保存用户的授权指纹模板
[0074]
用户服务请求阶段
[0075]
具体操作为:(1)指纹信息采集:用户首先利用终端设备采集自己的指纹图像, 在通过gabor滤波器的图像处理以及特征提取,获取指纹的矢量信息然后利用给矢量信息加入冗余如公式(3)所示。
[0076][0077]
(2)生成扰乱密文偏量t:用户随机选择s∈{0,1}
l
,计算得出扰乱密文偏量t, t=(t
(1)
,...,t
(l)
)s其中t
(1)
,...,t
(l)
为用户在安全认证中心提交指纹模版时返回的指纹分分量 线性组合。
[0078]
(3)用户验证指纹构造:用户利用指纹匹配门限值δ
d
以及扰乱密文偏量t,构造 用户用于验证的指纹信息具体计算公式如(4)所示。
[0079][0080]
(4)验证指纹信息的提交:用户用自己私钥对构造好的验证指纹信息进 行签名。签名信息为签名完成后将验证请求数据包 发送给服务提供商。
[0081]
密文匹配阶段
[0082]
具体操作为:(1)验证用户请求数据包:首先,服务提供商接受到用户的验证请 求数据包后,首先验证用户的身份标识以及时间戳ts4的 时效性,然后利用用户的公钥验证用户的签名
如果等式成立,则用户的签名有效,用户的 请求成功。
[0083]
(2)计算匹配参数:根据用户的服务提供商在数据库中找到用户对应的匹 配模板得到该用户的加密指纹模版数据以及布隆过滤器 bf
rdsi
。服务提供商利用指纹模版数据和用户的验证指纹数据计算匹配参数m
d
。具体 公式如(5)所示。
[0084][0085]
得出验证结果:服务提供商在布隆过滤器bf
rdsi
上运行bf.test计算来判断匹配参数m
d
是否为属于参考集合rds
i
。
[0086]
(3)返回匹配结果的密文:服务提供商加密匹配结果构造签名 后,将数据包发送给用户。
[0087]
方案的安全性分析:
[0088]
(1)用户数据隐私性
[0089]
在本方案中,客户端提取并加密的用户指纹数据会发送给服务器提供商,在数据传 输过程中,有攻击者监听通信通道并获取通信数据,用户的指纹数据的隐私性依然可以 被保证。首先为了防止攻击者进行穷举攻击,对用户的特征向量添加 扰乱因子增加扰乱因子后,使得样本空间被扩展,可以有效保护用户的指纹特 征数据信息。在添加扰乱因子之后,通过公式(4)得到加密数据 每一个加密分量都用不同的密文偏量t。针对不同的用 户使用不同的参数对即使攻击者获取到用户的参数对信息,也能保证其 他用户的信息的安全性。即使攻击者获取到参数,想要计算出用户指纹数据 是离散对数问题,这样的离散对数问题在有限域上是困难的。每次加 密使用了扰乱密文偏量t,有效的防止攻击者进行穷举攻击。综上所述,本方案在用户 数据的隐私性可以得到保证
[0090]
(2)模板数据机密性
[0091]
在本方案中,加密模板数据将被授权给服务器提供商,存在攻击者监听通信信道并 获取通信数据,用户的模板数据的机密性依然可以被保证。首先,为了防止攻击者使用 穷举攻击获取指纹特征,安全认证中心通过计算公式(1)为提取出的模板fingercode向 量
添加扰乱因子在添加扰乱之后,扩大了样本空间,可以有效 防止穷举攻击。之后,安全认证中心对添加扰乱后的向量进行加密计算,通过计算公式 (2)得到加密后的指纹匹配模板数据是n个随机数, 可以使得相同的特征加密后的模板值不相同。针对不同的用户使用不同的参考数据集 构造一个用户专用的布隆过滤器bf
rdsi
,服务器提供商无 法通过布隆过滤器得到参考数据集的具体数据。服务器提供商除了最后的匹配结果之外 无法得到其他有关原始模板数据的信息,每个服务器提供商得到的指纹模板是不同的, 在安全中心为提取出的模板fingercode向量添加扰乱因子的过程 中,其中是服务提供商的身份验证码,保证了每个服务器得到的指纹模板是独一 无二。在本方案中,安全中心加密存储的指纹模板数据的机密性可以得到保证。
[0092]
(3)信息通信的安全性
[0093]
用户方,服务提供方和安全认证中心三方之间所有进行的信息通信都可以被认证。 三方进行信息传输都使用的bls短签名技术进行签名。bls短签名在随机预言机中基 于cdh问题是可证明安全的,可以实现消息的有效认证。例如,用户在指服务提供商 处注册时,对自己的身份标识id
s
,服务商的身份标识id
s
,公钥pk
s
以及时间戳ts1进 行签名时间戳ts1可以防止重放攻击,服务商标识id
s
可 以防止其他服务商冒领模板,签名的用户私钥可以保证签名的不可抵赖性。服务提 供商收到用户请求之后,通过验证时间戳的时效性,验证签名是否有效。同理,所有三 方进行的其他所有信息通信都使用相同方式进行签名和验证。通过验证消息的时效性、 完整性和消息来源,判断通信消息是否被攻击者更改或者替换,完成对消息的有效性认 证。
[0094]
实验环境:
[0095]
实验环境:客户端使用java作为开发语言,core i5-6300-2.3gh四核核处理器,16gbram,windows10操作系统。
[0096]
实验结果:
[0097]
客户端的主要计算操作在加密客户端采集的指纹数据向量部分。客户端将获取的用 户指纹fingercode进行加密计算得到加密指纹数据其中影 响计算效率的最重要的参数是向量维度n以及增加的扰乱密文偏量t。因此,选择不同 维度大小对比客户端的计算性能。fingercode向量维度选取100到1000,计算时间线性 增长,如图2所示。
[0098]
本发明引入了lwe问题的实例,在用户提交验证指纹信息时,每个指纹特征信息 加入一个高斯分布t
(j)
的分量,使得用户的指纹特征满足高斯分布,隐藏了用户的指纹 特征的分布情况,更好的保护用户指纹特征信息。即使在通信信道中存在不法分子,在 获取到用户的密文以及模版数据后,仍然无法获取任何有关用户指纹特征、系统加密私 钥以及验证请求结果的信息。在安全性方面,本发明涉及到的基础加密方法为bgn同 态加密方法,在模版保护上是基于cdh问题是可证明安全的,在用户验证信息上是基 于解决lwe困难问题,能够有效抵抗量子攻击,因此安全性能够得到保证。
[0099]
以上内容是结合具体的优选实施方式对本发明所作的进一步详细说明,不能认定本 发明的具体实施只局限于这些说明。对于本发明所属技术领域的普通技术人员来说,在 不脱离本发明构思的前提下,还可以做出若干简单推演或替换,都应当视为属于本发明 的保护范围。