本发明属于信息安全技术领域,具体涉及一种隐私保护的在线指纹认证系统及方法,可用于为用户终端提供准确高效在线指纹认证服务,并实现对用户指纹数据和指纹模板数据的有效隐私保护。
背景技术:
随着生物识别技术的发展和普及,利用生物识别技术来进行身份验证为用户提供了更加方便快捷的服务。传统的在线指纹认证系统由服务提供商采集并存储指纹匹配模板,当服务提供商需要用户提供指纹进行身份认证时,用户终端提取用户指纹发送给服务提供商,服务提供商对比存储的指纹模板,为用户终端返回认证结果。然而,这样的系统由于未涉及用户指纹和指纹模板的隐私保护,使得用户指纹和指纹模板这些敏感数据的隐私受到严重威胁。
为了解决上述问题,人们提出了一些解决方案,其中:
电子科技大学的专利“一种智能终端的安全指纹识别方法”(申请号CN201510179446.X申请公布号CN104778393A)公开了一种智能终端的安全指纹识别方法,该方法包括以下步骤:1.指纹注册,提取用户指纹并加密存储;2.请求传输指纹数据的密钥;3.接收指纹模板数据并解密;4.进行指纹匹配操作。该方法虽然能实现指纹模板在传输过程中的隐私保护,该方法由于对加密的指纹模板数据需要在发送给用户终端后被解密成明文,再进行匹配操作,因而当攻击者伪装成某用户终端发送认证请求将会得到该用户的指纹模板数据,无法实现指纹模板数据的有效隐私保护。
技术实现要素:
本发明目的在于针对上述现有技术的不足,提出一种双向隐私保护的在线指纹认证系统及方法,以保证在正常提供指纹认证服务的前提下,提高对用户指纹数据和指纹模板数据的隐私保护。
为实现上述目的,本发明的双向隐私保护的在线指纹认证系统,包括:
可信中心(1),用于完成系统初始化,为用户终端和指纹认证服务器提供注册和密钥分发,同时采集注册用户的指纹数据作为认证模板,并将该模板以密文形式授权给合法指纹认证服务器;
指纹认证服务器(2),用于提供隐私保护的指纹认证服务,通过在密文上直接计算匹配参数来判断指纹是否匹配,并在提供服务时与用户终端之间进行双向身份认证;
用户终端(3),用于发送加密的指纹作为认证请求给指纹认证服务器,对指纹认证服务器返回的认证结果解密得到查询结果,并在接收服务时与指纹认证服务器之间进行双向身份认证。
为实现上述目的,本发明的双向隐私保护的指纹认证方法,包括以下步骤:
(1)系统参数初始化:
(1a)可信中心选择一个安全参数l∈Z+;
(1b)可信中心通过运行生成双线性映射群的函数Gen(κ),得到双线性映射参数其中q1,q2分别是长度均为l比特的第一素数和第二素数,是阶为N的循环群,阶数N=q1·q2,是的映射群,e()为双线性映射函数,g是循环群的生成元,h是系统参数;
(1c)计算数据加密处理私钥和对应的公钥
(1d)可信中心随机选择SKTA∈Zq*作为自己的私钥,表示阶为q的整数群中的非零集合,同时根据生成元g计算与其私钥SKTA对应的公钥
(1e)可信中心选择一个安全的对称加密算法E()和一个安全的杂凑函数H();
(1f)可信中心选取合理的指纹匹配临界值Δd∈Zn*;
(1g)可信中心保存自己的私钥<q1,SKTA>,公开系统参数
(2)注册及密钥分发:
(2a)指纹认证服务器S在注册时,随机选择SKs∈Zn*作为自己的私钥,同时根据生成元g计算与其私钥SKs对应的公钥并将自己的公钥PKs和自己的相关信息发送给可信中心;
(2b)用户终端Ui在注册时,随机选择作为自己的私钥,同时根据生成元g计算与其私钥对应的公钥并将该公钥和用户信息发送给可信中心,同时可信中心提取n维用户指纹模板
(2c)可信中心选取随机数k∈Zn*为对称加密密钥,用步骤(1c)中生成的数据加密处理的私钥SB和公钥PB构成参数列表<SB,PB,k>,并将该参数列表发送给注册成功的用户;
(2d)可信中心对注册成功的用户及其公钥的列表进行公开;
(3)指纹模板加密:
(3a)可信中心提取用户指纹生成指纹模板数据并进行加密存储;
(3b)可信中心根据指纹匹配临界值Δd、杂凑函数H()和数据加密的公钥PB计算评估参考值RDm=H(PBm),构成评估参考数据集将该参考评估数据集RDS发送给所有注册过的指纹认证服务器,其中0≤m≤Δd;
(4)加密指纹模板授权:
(4a)指纹认证服务器S在得到用户Ui授权后构造指纹模板授权请求,并发送该请求给可信中心;
(4b)可信中心收到指纹认证服务器的指纹模板授权请求后,对该指纹模板授权请求的合法性进行验证,若验证成功,则执行步骤(4c),否则放弃这个通信包;
(4c)可信中心将该用户加密指纹模板返回给指纹认证服务器S;
(5)用户终端生成指纹认证服务请求:
(5a)用户终端对采集的用户指纹进行加密得到加密用户指纹数据和用户签名Sigi;
(5b)用户终端将加密用户指纹数据用户信息Ui、时间戳TS3和用户终端签名Sigi组成指纹认证服务请求并将该指纹认证服务请求发送给指纹认证服务器;
(6)指纹认证服务器提供服务:
(6a)指纹认证服务器收到用户终端发送的指纹认证服务请求后,对该指纹认证服务请求的合法性进行验证,若验证成功,则执行步骤(6b),否则返回步骤(5a);
(6b)指纹认证服务器根据加密用户指纹数据和加密指纹模板数据进行密文计算,得到匹配结果RS;
(6c)指纹认证服务器利用对称加密函数E()和加密用户指纹模板数据的第n+1维数据rq'y,将匹配结果RS进行加密得到加密匹配结果将该加密匹配结果与时间戳TS4共同作为杂凑函数H()的输入,得到杂凑值用自己的私钥SKS对该杂凑值进行签名构造认证结果列表并将该认证结果列表回复给用户终端;
(7)用户终端获得认证结果:
(7a)用户终端收到指纹认证服务器回复的认证结果列表之后,对该认证结果列表的合法性进行验证,若验证成功,则执行步骤(7b),否则返回步骤(5a);
(7b)用户终端使用加密用户指纹模板数据的第n+1维数据rq'y对进行解密,得到身份认证结果RS,若RS为真,则指纹认证成功,否则,指纹认证失败。
本发明与现有技术相比,具有如下优点:
1.实现了用户指纹认证请求数据的隐私保护。
本发明中用户终端在给指纹认证服务器发送服务请求前,首先对自己的指纹数据进行加密,使得用户终端的原始指纹数据不会被指纹认证服务器和攻击者得到,确保了用户终端指纹数据的隐私保护。
2.实现了指纹认证模板数据的隐私保护。
本发明中可信中心在把指纹模板授权给指纹认证服务器前,由于先对指纹模板进行了加密,使得指纹模板数据不会被指纹认证服务器和攻击者得到,确保了指纹模板数据的隐私保护。
3.实现了高效准确的指纹认证服务。
本发明中由指纹认证服务器通过对加密用户指纹数据和加密指纹模板数据完成匹配计算,且隐私保护框架不会影响指纹匹配的精确度,实现了高效准确的指纹认证服务。
附图说明
图1为本发明的系统方框图;
图2为本发明方法的实现总流程图;
图3为本发明方法中加密指纹模板授权的子流程图。
具体实施方式
下面结合附图对本发明做进一步的详细描述。
参照图1,本发明包括可信中心1、指纹认证服务器2和用户终端3这三大模块。其中:可信中心1,用于完成系统初始化,为用户终端和指纹认证服务器提供注册和密钥分发,同时采集注册用户的指纹数据作为认证模板,并将该模板以密文形式授权给合法指纹认证服务器;指纹认证服务器2,用于提供隐私保护的指纹认证服务,通过在密文上直接计算匹配参数来判断指纹是否匹配,并在提供服务时与用户终端之间进行双向身份认证;用户终端3,用于发送加密指纹作为认证请求给指纹认证服务器,对指纹认证服务器返回的认证结果解密得到查询结果,并在接收服务时与指纹认证服务器之间进行双向身份认证。
所述的可信中心1,包括:系统初始化模块11、注册模块12、数据加密模块13、加密模板授权模块14和可信中心安全支持模块15。
该系统初始化模块11,用于初始化系统,生成双线性映射群,得到系统的公共参数;
该注册模块12,用于为用户终端和指纹认证服务器提供注册,提取注册成功的用户的指纹模板,并向注册成功的用户终端和指纹认证服务器分发密钥;
该数据加密模块13,用于为提取的用户的指纹模板数据进行加密;
该加密模板授权模块14,用于认证授权信息,并为得到用户授权的指纹认证服务器发送对应用户的加密指纹匹配模板;
该可信中心安全支持模块15,用于为系统初始化模块11、数据加密模块13、加密模板授权模块14提供所需的加密算法和哈希算法。
所述的指纹认证服务器2,包括服务器认证模块21、用户注册模块22、数据存储模块23、服务提供模块24和服务器安全支持模块25。
该服务器认证模块21,用于在服务器注册时生成自己公私钥对,在给用户终端提供服务前对用户终端的签名进行验证,在得到加密指纹认证结果后对其进行签名;
该用户注册模块22,用于为用户提供注册,并对收到的用户终端的指纹模板授权签名进行验证,生成相应指纹模板授权请求发送给可信中心申请注册用户的指纹匹配模板;
该数据存储模块23,用于存储来自可信中心的加密指纹模板;
该服务提供模块24,用于根据用户请求中的加密指纹数据,在加密的指纹模板和加密用户请求上进行密文计算,并将得到的指纹认证结果加密,将加密指纹认证结果和对应签名返回给用户终端;
该服务器安全支持模块25,用于为服务器认证模块21、用户注册模块22、服务提供模块24提供所需的加密算法和哈希算法。
所述的用户终端3,包括用户认证模块31、服务请求模块32、数据解密模块33和用户安全支持模块34。
该用户认证模块31,用于用户终端在注册时生成自己的公私钥对,并生成指纹模板授权签名发送给指纹认证服务器,对生成的用户服务请求进行签名,在收到指纹认证服务器的回复后对指纹认证服务器的签名进行验证;
该服务请求模块32,用于用户终端根据采集的用户指纹数据加密生成用户服务请求,并将用户服务请求与对应签名发送给指纹认证服务器;
该数据解密模块33,用于在收到指纹认证服务器发送的加密指纹认证结果后,通过用户终端对加密指纹认证结果执行解密操作;
该用户安全支持模块34,用于为用户认证模块31、服务请求模块32、数据解密模块33提供所需的加密算法和哈希算法。
参照图2,本发明双向隐私保护的指纹认证方法,包括如下步骤:
步骤1,系统参数初始化。
1.1)可信中心选择一个安全参数l∈Z+;
1.2)可信中心通过运行生成双线性映射群的函数Gen(κ),得到双线性映射参数其中q1,q2分别是长度均为l比特的第一素数和第二素数,是阶为N的循环群,阶数N=q1·q2,是的映射群,e()为双线性映射函数,g是循环群的生成元,h是系统参数;
1.3)计算数据加密处理私钥和对应的公钥
1.4)可信中心随机选择SKTA∈Zq*作为自己的私钥,表示阶为q的整数群中的非零集合,同时根据生成元g计算与其私钥SKTA对应的公钥
1.5)可信中心选择一个安全的对称加密算法E()和一个安全的杂凑函数H();
1.6)可信中心选取指纹匹配临界值Δd∈Zn*;
1.7)可信中心保存自己的私钥<q1,SKTA>,公开系统参数
步骤2,注册及密钥分发。
2.1)指纹认证服务器S在注册时,随机选择SKs∈Zn*作为自己的私钥,同时根据生成元g计算与其私钥SKs对应的公钥并将自己的公钥PKs和自己的相关信息发送给可信中心;
2.2)用户终端Ui在注册时,随机选择作为自己的私钥,同时根据生成元g计算与其私钥对应的公钥并将该公钥和用户信息发送给可信中心,同时可信中心提取n维用户指纹模板其中xj是用户指纹模板数据的第j维数据,1≤j≤n;
2.3)可信中心选取随机数k∈Zn*为对称加密密钥,用数据加密处理的私钥SB和公钥PB构成参数列表<SB,PB,k>,并将该参数列表发送给注册成功的用户;
2.4)可信中心公开注册成功的用户及其公钥的列表
步骤3,指纹模板加密。
3.1)可信中心根据提取的n维用户指纹模板数据利用对称加密密钥k作为杂凑函数H()的输入得到扰乱数值H(k),计算添加扰乱的指纹模板数据(x'1,x'2,…,x'j,…,x'n),其中x′j是添加扰乱的指纹模板数据的第j维数据,x′j=xj+H(k);
3.2)可信中心选取n个随机数r1,r2,…,rj,…,rn,其中rj∈Zn*,1≤j≤n,并根据生成元g、系统参数h、添加扰乱的指纹模板数据(x'1,x'2,…,x'j,…,x'n)和数据加密的公钥PB,计算得到加密指纹模板数据并存储,其中是加密指纹模板数据的第j维数据,fx'是加密指纹模板数据的第n+1维数据,
3.3)可信中心根据指纹匹配临界值Δd、杂凑函数H()和数据加密的公钥PB计算评估参考值RDm=H(PBm),构成评估参考数据集该评估参考数据集将用于搜索匹配参数的杂凑值以判断匹配是否成功,将该参考评估数据集RDS发送给所有注册过的指纹认证服务器,其中0≤m≤Δd2。
步骤4,加密指纹模板授权。
参照图3,本步骤的具体实现如下:
4.1)用户终端Ui在指纹认证服务器S上进行注册时,将自己的信息Ui、时间戳TS1共同作为杂凑函数H()的输入,得到用户授权杂凑值H(Ui||TS1),并用自己的私钥对该用户授权杂凑值进行签名组成用户授权信息列表发送给指纹认证服务器,以表示用户已同意将自己的加密指纹模板授权给指纹认证服务器;
4.2)指纹认证服务器首先检查用户信息Ui,将时间戳TS1与当前时间T进行比较,若TS1早于T且|T-TS1|≤NT,则执行步骤4.3),否则,放弃这个通信包,其中NT为系统的最大通信时延;
4.3)指纹认证服务器将用户信息Ui和时间戳TS1作为杂凑函数H()的输入,计算杂凑值H(Ui||TS1),并根据该用户的公钥利用双线性映射函数e(),判断等式是否成立,若该等式成立,则签名合法,执行步骤4.4),否则,放弃通信包;
4.4)指纹认证服务器将自己的信息S、时间戳TS2共同作为杂凑函数H()的输入,得到用户授权杂凑值H(S||TS2),并用自己的私钥SKS对该杂凑值进行签名再用该签名SigS与用户授权信息列表组成模板授权请求信息列表发送给可信中心,请求Ui用户的加密指纹模板;
4.5)可信中心收到指纹认证服务器的指纹模板授权请求,首先查看指纹认证服务器S和授权用户Ui的信息,确认指纹认证服务器S和授权用户Ui是否都已经注册,再将时间戳TS2与当前时间T进行比较:若TS2早于T,且|T-TS2|≤NT,则执行步骤4.6),否则,放弃这个通信包,其中NT为系统的最大通信时延;
4.6)可信中心将用户信息Ui和时间戳TS1作为输入,计算杂凑函数H(Ui||TS1),并根据该用户的公钥利用双线性映射函数e(),判断等式是否成立,若等式成立,则用户签名合法,执行步骤4.7),否则放弃通信包;
4.7)可信中心将指纹认证服务器信息S和时间戳TS2作为输入计算杂凑函数H(S||TS2),并根据指纹认证服务器的公钥PKS,利用双线性映射函数e(),判断等式e(g,SigS)=e(PKS,H(S||TS2))是否成立,若等式成立,则该指纹模板授权请求的合法性验证成功,执行步骤4.8),否则放弃该通信包;
4.8)可信中心将该用户Ui的加密指纹模板返回给指纹认证服务器S。
步骤5,用户终端生成指纹认证服务请求。
5.1)用户终端获得自己的n维用户指纹数据后,将对称加密密钥k作为杂凑函数H()的输入得到扰乱值H(k),计算添加扰乱的用户指纹数据(y'1,y'2,…,y'j,…,y'n),其中y'j=yj+H(k),yj是用户指纹数据的第j维数据,y'j是添加扰乱的用户指纹数据的第j维数据;
5.2)用户终端根据数据处理的公钥PB和对应私钥SB,以及添加扰乱的指纹数据矢量(y'1,y'2,…,y'j,…,y'n),计算加密用户指纹数据其中是加密用户指纹数据的第j维数据,rqy'是加密用户指纹数据的第n+1维数据,
5.3)用户终端使用指纹认证服务器的公钥PKS、对称加密算法E()和加密用户指纹数据计算对称加密值并将该对称加密值与用户终端信息Ui、时间戳TS3共同作为杂凑函数H()的输入,计算用户杂凑值
5.4)用户终端用自己的私钥对该用户杂凑值进行签名,即
5.5)用户终端用加密用户指纹数据用户信息Ui、时间戳TS3和用户终端签名Sigi组成指纹认证服务请求并将该指纹认证服务请求发送给指纹认证服务器。
步骤6,指纹认证服务器提供服务。
6.1)指纹认证服务器收到用户终端发送的指纹认证服务请求后,将时间戳TS3与当前时间T进行比较,若TS3早于T,且|T-TS3|≤NT,则执行步骤6.2),否则,返回步骤5.1),其中NT为系统的最大通信时延;
6.2)用户终端将对称加密值用户信息Ui和时间戳TS3作为杂凑函数H()的输入,计算杂凑函数并根据该用户终端的公钥利用双线性映射函数e(),判断等式是否成立,若该等式成立,则该指纹认证服务请求的合法性验证成功,执行步骤6.3),否则放弃该通信包;
6.3)指纹认证服务器利用自己的私钥SKS解密对称加密值得到加密用户指纹数据
6.4)指纹认证服务器根据用户信息Ui在加密指纹模板数据库中搜索对应用户的加密指纹模板
6.5)指纹认证服务器根据加密用户指纹数据和加密指纹模板利用双线性映射函数e(),在密文上直接计算得到匹配参数:
6.6)指纹认证服务器将匹配参数Md作为杂凑函数H()的输入,计算杂凑值H(Md),并在参考评估数据集RDS中搜索该杂凑值,若能够找到该杂凑值,则证明用户指纹数据与指纹模板匹配,即匹配结果RS为真,否则,不匹配,即匹配结果RS为假;
6.7)指纹认证服务器利用对称加密函数E()和加密用户指纹模板数据的第n+1维数据rq'y,对匹配结果RS进行加密得到加密匹配结果将该加密匹配结果与时间戳TS4共同作为杂凑函数H()的输入,得到杂凑值再用自己的私钥SKS对该杂凑值进行签名构造认证结果列表并将该认证结果列表回复给用户终端。
步骤7,用户终端获得认证结果。
7.1)用户终端收到指纹认证服务器回复的认证结果列表之后,将时间戳TS4与当前时间T进行比较,若TS4早于T,且|T-TS4|≤NT,则执行步骤7.2),否则,返回步骤5.1),其中NT为系统的最大通信时延;
7.2)用户终端将加密结果和时间戳TS4作为杂凑函数H()的输入,计算杂凑值并根据指纹认证服务器的公钥PKS,利用双线性映射函数e(),判断等式是否成立,若该等式成立,则认证结果列表的合法性验证成功,执行步骤7.3),否则放弃该通信包;
7.3)用户终端使用加密用户指纹模板数据的第n+1维数据rq'y对进行解密,得到身份认证结果RS,若RS为真,则指纹认证成功,否则,指纹认证失败。
以上描述仅是本发明的一个具体实例,不构成对本发明的任何限制,显然对于本领域的专业人员来说,在了解了本发明内容和原理后,都可能在不背离本发明原理、结构的情况下,进行形式和细节上的各种修正和改变,但是这些基于本发明思想的修正和改变仍在本发明的权利要求保护范围之内。