身份验证系统及身份验证方法转让专利

申请号 : CN201410264485.5

文献号 : CN103997504B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 谭知微

申请人 : 谭知微澳门培正中学

摘要 :

本发明提供一种身份验证系统及身份验证方法,身份验证方法包括生物信息获取及存储步骤:获取生物信息,并将获取的生物信息数值化,对数值化的生物信息进行加密,并将加密后的数据分散处理形成三个以上的数据块,将每一数据块分别存储到不同的存储装置中,且每一数据块均不包含生物信息的完整数据;验证步骤:获取多个存储装置所存储的数据,对获得的数据进行合并,将合并后的数据解密,将解密后的数据与身份验证设备获得的生物信息数值化后的数据进行对比,根据对比结果验证身份的真实性。身份验证系统应用上述的方法对身份进行验证。本发明能提高数据存储的安全性,避免数据泄露导致完整的个人信息泄露。

权利要求 :

1.身份验证系统,包括:

生物信息获取及存储装置,包括生物信息获取模块,用于获取生物信息,并将获取的所述生物信息数值化;

其特征在于:

所述生物信息获取及存储装置还包括分散处理模块,用于对数值化的所述生物信息进行加密,并将加密后的数据分散处理形成三个以上的数据块,将每一所述数据块分别存储到不同的存储装置中,且每一所述数据块均不包含所述生物信息的完整数据;

所述身份验证系统还具有验证装置,所述验证装置具有

数据获取模块,用于获取多个所述存储装置所存储的数据;

数据合并模块,用于对获得的数据进行合并,并将合并后的数据解密;

验证模块,将解密后的数据与所述生物信息获取模块获得的生物信息数值化后的数据进行对比,根据对比结果验证身份的真实性;

所述分散处理模块将加密后的数据分散处理形成多个数据块时,选取一个一元二次函数以及钥对(m1,m2),将所述加密后的数据的二进制数值作为一个二元字符串s,所述二元字符串中的相邻的两个字符形成位对αβ,设定字符串s的长度为2N,且s=α1β1α2β2…αNβN,且所述一元二次函数为 并将所述二进制数值转换为不少于所述存储装置数量的多个矩阵,

多个矩阵为

其中,j=1,2,…,M,并且 M为所述数据块的数量,k是取值1、2、3…N的自然数;

取α以及β的值分别为(α=0、β=0)、(α=0、β=1)、(α=1、β=0)、(α=1、β=1)时,计算fαβ(0)的值,并使用α的值、β的值以及fαβ(0)的值形成查找表格;

每一个矩阵的一个纵列的值为以所述钥对及所述二进制数值为参数的所述一元二次函数的值,以每一个所述矩阵作为一个所述数据块;

所述验证装置还设有数据恢复模块,在所述数据合并模块对数据进行合并出错时,根据其他三个所述存储装置所存储的数据生成所述生物信息加密后的数据,并将所述数据分散处理。

2.根据权利要求1所述的身份验证系统,其特征在于:

所述数据合并模块对数据进行合并时,获取任意三个数据块的矩阵合并形成收集矩阵,选取所述收集矩阵的一行数据作为字符串,设置所述字符串的初始值,并计算所述字符串对应的所述一元二次函数的截距,根据所述查找表格查找出所述截距对应的二进制数值,将所查找到的所述二进制数值作为位对α以及β的值,并根据α以及β的值代入所述一元二次函数并重复计算得到合并后的字符串。

3.根据权利要求1或2所述的身份验证系统,其特征在于:

所述分散处理模块应用迭代置换加密方法和/或数字置换加密方法实现对所述生物信息加密。

4.身份验证方法,包括

生物信息获取及存储步骤:获取生物信息,并将获取的所述生物信息数值化;

其特征在于:

对数值化的所述生物信息进行加密,并将加密后的数据分散处理形成三个以上的数据块,将每一所述数据块分别存储到不同的存储装置中,且每一所述数据块均不包含所述生物信息的完整数据;

验证步骤:获取多个所述存储装置所存储的数据,对获得的数据进行合并,将合并后的数据解密,将解密后的数据与生物信息获取模块获得的生物信息数值化后的数据进行对比,根据对比结果验证身份的真实性;

所述生物信息获取及存储步骤中,将加密后的数据分散处理形成多个数据块的步骤是:选取一个一元二次函数以及钥对(m1,m2),将所述加密后的数据的二进制数值作为一个二元字符串s,所述二元字符串中的相邻的两个字符形成位对αβ,设定字符串s的长度为2N,且s=α1β1α2β2…αNβN,且所述一元二次函数为 并将所述二进制数值转换为不少于所述存储装置数量的多个矩阵,

多个矩阵为

其中,j=1,2,…,M,并且 M为所述数据块的数量,k是取值1、2、3…N的自然数;

取α以及β的值分别为(α=0、β=0)、(α=0、β=1)、(α=1、β=0)、(α=1、β=1)时,计算fαβ(0)的值,并使用α的值、β的值以及fαβ(0)的值形成查找表格;

每一个矩阵的一个纵列的值为以所述钥对及所述二进制数值为参数的所述一元二次函数的值,以每一个所述矩阵作为一个所述数据块;

所述验证步骤还设有数据恢复步骤,在数据合并出错后,根据其他三个所述存储装置所存储的数据生成所述生物信息加密后的数据,并将所述生物信息加密后的数据进行分散处理。

5.根据权利要求4所述的身份验证方法,其特征在于:

所述验证步骤中,对数据进行合并的步骤包括:获取任意三个数据块的矩阵合并形成收集矩阵,选取所述收集矩阵的一行数据作为字符串,设置所述字符串的初始值,并计算所述字符串对应的所述一元二次函数的截距,根据所述查找表格查找出所述截距对应的二进制数值,将所查找到的所述二进制数值作为位对α以及β的值,并根据α以及β的值代入所述一元二次函数并重复计算得到合并后的字符串。

6.根据权利要求4或5所述的身份验证方法,其特征在于:

将加密后的数据分散处理形成三个以上的数据块的步骤中,所述分散处理是应用迭代置换加密方法和/或数字置换加密方法进行。

说明书 :

身份验证系统及身份验证方法

技术领域

[0001] 本发明涉及身份验证领域,具体地,是一种身份验证系统以及应用这个系统对身份验证的方法。

背景技术

[0002] 人们在出境或入境时通常需要进行身份验证,如对指纹进行扫描识别。通常的做法是出入境管理部门预先获取人们的指纹信息,如制作出入境证件时预先对人们的指纹进行扫描,并将扫描后的指纹图像进行数值化,并存储在出入境管理部门的服务器上。人们出境或入境时在指纹扫描设备上扫描指纹,指纹扫描设备获取指纹图像并对指纹图像进行数值化后,与存储在出入境管理部门服务器的指纹信息进行对比,从而验证出入境人员的身份真实性。
[0003] 随着网络技术与电子技术的发展,云存储技术成为一种普遍应用的互联网存储技术。为了保障网络存储的数据的安全性,通常使用密码对存储的数据进行保护。然而,由于众多不同系统和平台上的密码要求都不同,存储在不同系统的密码通常不同,造成人们记忆和管理上的困难。
[0004] 并且,若将数据存储在单一的网络系统上,对数据的安全带来极大的风险。例如,网络系统受到外来攻击、黑客入侵或病毒入侵将造成数据泄露,且数据管理漏洞也会导致数据遭复制盗用,数据也可能被意外或恶意修改、盗窃或出卖、流失等。此外,数据管理者的不合理使用,例如一个部门能随意查看到储存在另一个部门的服务器的数据等,这些都导致存储在网络的数据泄露。
[0005] 一旦出入境管理部门所存储的人们的指纹信息被泄露,将造成人们个人信息的泄露。并且,一旦人们的指纹信息被不法分子利用,还将对社会造成极大的危害。因此,如何保障互联网云存储技术所存储的数据安全,尤其保障直接关系到人们个人信息的数据的安全成为当前互联网数据存储技术的重要课题。

发明内容

[0006] 本发明的主要目的是提供一种有效保障数据存储安全性身份验证系统。
[0007] 本发明的另一目的是提供一种个人身份信息不易泄露的身份验证方法。
[0008] 为了实现上述的主要目的,本发明提供的身份验证系统包括生物信息获取及存储装置,其包括生物信息获取模块,用于获取生物信息,并将获取的生物信息数值化,其中,生物信息获取及存储装置还包括分散处理模块,用于对数值化的生物信息进行加密,并将加密后的数据分散处理形成三个以上的数据块,将每一数据块分别存储到不同的存储装置中,且每一数据块均不包含生物信息的完整数据,身份验证系统还具有验证装置,其具有数据获取模块、数据合并模块以及验证模块,数据获取模块用于获取多个存储装置所存储的数据,数据合并模块用于对获得的数据进行合并,并将合并后的数据解密,验证模块将解密后的数据与身份验证设备获得的生物信息数值化后的数据进行对比,根据对比结果验证身份的真实性。
[0009] 由上述方案可见,生物信息获取及存储装置将指纹信息等生物信息数值化后,分散形成多个数据块,并将多个数据块分别存储到不同的存储装置中,且每一数据块均不包含完整的生物信息。这样,即使某一存储装置受到攻击而造成数据泄露,也不会导致完整的生物信息泄露,保证数据存储的安全性,人们的个人信息安全得到保障。
[0010] 一个优选的方案是,分散处理模块将加密后的数据分散处理形成多个数据块时,选取一个一元二次函数以及钥对,将加密后的数据的二进制数值转换为不少于存储装置数量的多个矩阵,每一个矩阵的一个纵列的值为以钥对及二进制数值为参数的一元二次函数的值,以每一个矩阵作为一个数据块。
[0011] 由此可见,分散处理模块并不是将数据简单地划分为多个数据块,而是将数据转换成多个矩阵,由于每一个矩阵的内容均不能反映原始数据的情况,通过分散处理模块的分散处理,更有利于提高数据的安全性。
[0012] 进一步的方案是,数据合并模块对数据进行合并时,设置数据获取模块获得的矩阵的初始值,并计算每一个矩阵对应的一元二次函数的截距,根据钥对的查找表格查找出截距对应的二进制数值。
[0013] 由此可见,通过数据合并模块的运算能够快速有效地将原始的数据合并,身份验证时间较短。
[0014] 更进一步的方案是,验证装置还设有数据恢复模块,在数据合并模块对数据进行合并出错时,根据至少三个存储装置所存储的数据生成生物信息加密后的数据,并将数据分散处理。
[0015] 可见,一旦某一存储装置所存储的数据被修改,可以通过数据恢复模块将原始数据进行恢复,避免数据丢失,数据存储的安全性大大提高。
[0016] 为了实现上述的另一目的,本发明提供的身份验证方法包括生物信息获取及存储步骤:获取生物信息,并将获取的生物信息数值化,对数值化的生物信息进行加密,并将加密后的数据分散处理形成三个以上的数据块,将每一数据块分别存储到不同的存储装置中,且每一数据块均不包含生物信息的完整数据;验证步骤:获取多个存储装置所存储的数据,对获得的数据进行合并,将合并后的数据解密,将解密后的数据与身份验证设备获得的生物信息数值化后的数据进行对比,根据对比结果验证身份的真实性。
[0017] 由上述方案可见,由于每一数值化后的数据不会存储在单一的存储装置中,而是经过分散后分别存储到多个存储装置上,这样可以有效避免某一存储装置遭受攻击而导致完整的数据被泄露,提高数据存储的安全性。并且,由于个人的完整生物信息不容易被泄露,因此能有效保护个人信息,减少个人信息被泄露的风险。

附图说明

[0018] 图1是本发明身份验证系统的结构框图。
[0019] 图2是本发明身份验证方法中生物信息获取及存储步骤的流程图。
[0020] 图3是本发明身份验证方法中验证步骤的流程图。
[0021] 以下结合附图及实施例对本发明作进一步说明。

具体实施方式

[0022] 本发明的身份验证系统用于出入境管理部门对出入境人员的身份验证,身份验证方法主要应用上述的身份验证系统对出入境人员的身份进行验证。当然,身份验证系统还可以应用在其他需要进行身份验证的场合,如银行的金库、办公室、政府保密部门的办公场所、只允许会员进入的会所等。
[0023] 本发明的身份验证系统需要获取人们的生物信息,包括指纹信息或者虹膜信息,指纹信息可以通过指纹扫描仪获得,虹膜信息可以通过虹膜扫描仪获得,指纹扫描仪以及虹膜扫描仪均是常见的现有技术,本发明不再详细阐述。
[0024] 参见图1,本发明的身份验证系统具有指纹信息获取及存储装置10以及验证装置15,指纹信息获取及存储装置10具有指纹信息获取模块11以及分散处理模块12,验证装置
15具有数据获取模块16、数据合并模块17、数据恢复模块18以及验证模块19。
[0025] 指纹信息获取模块11可以获取指纹扫描仪生成的指纹图像,并对指纹图像进行数值化,即将图像转换成数字数据,并提取指纹的特征信息。分散处理模块12用于对获取的数据进行分散处理以形成三个以上的数据块,每一数据块均不包含完整的指纹信息,即获得任一数据块均无法生成完整的指纹信息。同时,分散处理模块12还将多个数据块分别存储到不同的存储装置中。
[0026] 如图1所示,分散处理模块12将多个数据块分别存储到至少三个存储装置21、22、23中,优选地,多个存储装置21、22、23为设置在三个不同地方的存储器,且多个存储装置
21、22、23分别应用不同的数据安全处理技术对数据进行安全保护,以避免多个存储装置
21、22、23同时受到攻击。例如,三部分数据分别存储在人们的身份证的存储芯片、出入境管理部门的服务器以及公安部门的服务器上。
[0027] 当然,加密后的数据分散可以形成更多的数据块,如五个,并将其中三个数据块分别存储到人们的身份证的存储芯片、出入境管理部门的服务器以及公安部门的服务器中,另外两个数据块作为数据恢复的备用数据块,备用数据块可以存储在出入境管理部门的特殊服务器中,且该服务器只有特定的情况下才能被访问。
[0028] 验证装置15的数据获取模块16用于从多个不同的存储装置21、22、23获取数据,如从身份证读卡器中获取所读取的存储在身份证存储芯片中的数据。
[0029] 数据合并模块17用于对获取的数据进行合并,合并后的数据即生物信息经过数值化获得的数据。当然,一旦任一个存储装置所存储的数据被修改,数据合并出错,则数据恢复模块18利用至少三个存储装置所存储的数据进行数据恢复,并将恢复后的数据分别存储到多个存储装置中。
[0030] 验证模块19接收指纹信息获取设备20的数据,指纹信息获取设备20为指纹扫描仪,扫描人们的指纹图像,并对指纹图像进行数值化,提取指纹特征信息。同时,验证模块19对从指纹信息获取设备20获得的数据与数据合并模块17获得的数据进行对比,如果对比结果是两个数据相同,则身份验证成功,否则,身份验证失败。
[0031] 下面,结合图2说明指纹信息获取及存储装置10的工作流程。首先,指纹信息获取模块11获取指纹信息,即执行步骤S1,指纹扫描仪扫描人们的指纹图像,然后执行步骤S2,对指纹图像进行数值化,提取指纹特征信息。接着,执行步骤S3,对获得的数据进行加密。本发明可以采用迭代置换加密方法或者数字置换加密方法实现加密,也可以结合两者的加密方法实现。
[0032] 迭代置换加密方法是应用Ruffini定理实现的数字迭代。下面介绍迭代加密方法的数据理论。假设σ是由集合{1,2,3,...,M}到自身的一个函数,则称σ为一个在此集合上的一个排列。若σ为一对一函数,即对任何j1,j2∈{1,2,3,...,M},若σ(j1)=σ(j2),恒有j1=j2。本申请定义SM为在{1,2,…,M}上所有排列所构成的合。
[0033] 在集合{1,2,3,...,M}上的排列总共有M!个,假设M=10,则在集合{1,2,3,...,0 k+1 k
10}上的排列就有3628800个。假定σ∈SM,j∈{1,2,3,...,M},设定σ(j)=j,σ (j)=σ(σ(j)),其中k=0,1,2,…,则存在一个最小的正整数kmin使得kmin≤M并且 本申请定义kmin为整数j对排列σ的迭代周期,并记为Tj。
[0034] 根据上述的理论,Ruffini定理如下:已知σ∈SM,并设定Tσ为最小的正整数,使得对所有j=1,2,…,M,满足σT(j)=j,则Tσ是排列σ所有迭代周期T1,T2,…,TM的最小公倍数,且Tσ称为排列σ的阶。
[0035] 设σ∈SM,且j1=1, 令j2为小于或等于M又不在A1中的最小的正整数,设 且j3为小于或等于M又不在A1及A2中的最小的
正整数,设 这样,一直做下去至有限步骤停止。
[0036] 若可无限继续而Ai的元素个数不小于1,这样是不可能的,因为{1,2,…,M}为有限集。因此,可得到一个有限的集合序列A1,A2,…,Ar。集合Ai的元素个数为 则及Tσ也是 的最小公倍数。本申请定义排列σ的模式为
[0037] 例如,假设S10是并不失一般性假定模式的迭代周期是由大到小顺序排列,则在集合{1,2,…,10}上又满足T1≥5可能的模式,则有
[0038] (10)
[0039] (9)(1)
[0040] (8)(2),(8)(1)(1)
[0041] (7)(3),(7)(2)(1),(7)(1)(1)(1)
[0042] (6)(4),(6)(3)(1),(6)(2)(2),(6)(2)(1)(1),(6)(1)(1)(1)(1)
[0043] (5)(5),(5)(4)(1),(5)(3)(2),(5)(3)(1)(1),(5)(2)(2)(1),(5)(2)(1)(1)(1),(5)(1)(1)(1)(1)(1)
[0044] 可见,以上模式所对应的最小公倍数的最大值为5×3×2=30,其是由模式(5)(3)(2)给出。当T1<5时,各迭代周期可能的数值为1,2,3和4,所以其对应的最小公倍数必小于3和4的最小公倍数即12。因此在S10中,以(5)(3)(2)为模式的排列,其阶最大并且等于30。例如
[0045]j 1 2 3 4 5 6 7 8 9 10
σ(j) 2 3 4 5 1 7 8 6 10 9
[0046] 则排列σ的阶Tσ=30。σ的模式表示为(12345)(678)(9 10)。
[0047] 将指纹信息数值化后的二进制数据视为一个二元字符串,应用上述的模式将二元字符串的数值进行排列组合,则可以改变字符串每个字符的顺序,从而实现对数据的加密。
[0048] 数字置换加密方法是将字母或字符重新排列的一种加密方法。例如利用打字机编码术,即不需键入所要的字母,而是输入的是该字母对应的一个键,这样就实现对所需要输入字母的输入。例如,所需要输入的字母是“I love you”,通过数字置换,则只需要输入“8o9f3697”即可。数字置换加密方法就是通过特定的字符置换原数据中其他字符的方式实现。
[0049] 当然,实际应用时,还可以有更多的加密方法,现有常见的加密方法均可以实现对数值化后的指纹信息的加密。
[0050] 然后,分散处理模块12执行步骤S4,对加密后的数据进行分散处理,即将数据进行转换,形成不少于需要存储装置数量的多个数据块。例如,存储装置的数量为三个,则形成的数据块的数量不少于三个,若存储装置是数量为五个,则形成的数据块的数量不少于五个。
[0051] 下面介绍对数据进行分散处理的数学理论基础。
[0052] 假设(x0,y0),(x1,y1)和(x2,y2)为实域上三点,且满足x0,x1和x2是相异的,对于一元二次函数f(x)=a0+a1(x-x0)+a2(x-x0)(x-x1),如满足以下条件:a0,a1和a2是未知常数,且[0053] f(x0)=a0
[0054] f(x1)=a0+a1(x1-x0)
[0055] f(x2)=a0+a1(x2-x0)+a2(x2-x0)(x2-x1)
[0056] 利用替代法解,可以计算出
[0057]
[0058] 因此,可得牛顿多项式
[0059]
[0060] 设x=0,则有
[0061]
[0062] 可知,f(0)也就是二次函数f的截距。
[0063] 设定实数m1和m2并且满足1<m1<m2,本申请定义序偶(m1,m2)为钥对(key pair),并定义αβ为位对。若α和β的取值为0或1,则对任意位对αβ,定义二次函数fαβ为[0064] 而对于实域下的变量x,可以获得下面的表格:
[0065]α β fαβ(x) fαβ(0)
0 0 f00(x)=(x-1)(x-1) f00(0)=1
1 0 f10(x)=(x-m1)(x-1) f10(0)=m1
0 1 f01(x)=(x-1)(x-m2) f01(0)=m2
1 1 f11(x)=(x-m1)(x-m2) f11(0)=m1m2
[0066] 由于1,m1,m2及m1m2彼此相异,因此位对αβ与fαβ(0),即函数fαβ的截距是一一对应。因此本申请定义关联钥对(m1,m2)的查找表格(Look up table)如下:
[0067]α β fαβ(0)
0 0 1
1 0 m1
0 1 m2
1 1 m1m2
[0068] 其中,
[0069] 例如,设定m1=2,m2=3,则钥对(2,3)的查找表格为
[0070]α β fαβ(0)
0 0 1
1 0 2
0 1 3
1 1 6
[0071] 并且fαβ(x)=(x-2α)(x-3β)。
[0072] 下面介绍应用上面介绍的数学理论对二进制的字符串进行转换的过程。
[0073] 设N为一正整数,s为长度为2N的二元字符串。若有s=α1β1α2β2…αNβN,且αk及βk的取值为0或1。
[0074] 预先设定钥对(m1,m2),并且设定c1,c2,…,cM为M个相异的实数,并且M>3。本申请中,M为数据分成的数据块的数量,由于数据合并与数据恢复的需要,M的取值至少为3,且M为正整数。对于长度为2N的二元字符串s=α1β1α2β2…αNβN,s相对于钥对(m1,m2)及整数M的序列为一M个N×2矩阵所组成的序列C1,C2,…,CM,并且满足
[0075]
[0076] 而j=1,2,…,M,并且
[0077] 例如,设(m1,m2)=(2,3),M=5,cj=j(j=1,2,3,4,5)。若二元字符串s为α1β1α2β2α3β3α4β4=00101101,则s的第j个数据块Cj为一4×2矩阵,该矩阵如下:
[0078]
[0079] 其中,j=1,2,3,4,5。因此,可以计算出五个矩阵如下:
[0080]
[0081] 上述矩阵中,第二个矩阵出现唯一的负值,为了计算方便,可以对二次函数进行修改,例如
[0082]
[0083] 则Cj各项均为正整数。
[0084] 假设将指纹信息经过数值化后获得的二进制数据视为一个二元字符串s,则可以应用上述的方法将长度为2N的二元字符串转换成M个矩阵,每一个矩阵就是分散获得的数据块。将二元字符串转换成多个数据块时,实际上是将二元字符串的每一个数值与钥对作为一元二次函数的参数,计算矩阵的一个纵列。
[0085] 最后,分散处理模块12执行步骤S5,将多个矩阵分别存储到多个存储装置中。
[0086] 下面结合图3介绍验证装置的工作流程。首先,验证模块19获取指纹信息获取设备20的数据,即执行步骤S11,指纹扫描仪对指纹进行扫描,获取指纹图像,并执行步骤S12,对指纹图像进行数值化,提取指纹的特征信息。
[0087] 同时,数据获取模块16执行步骤S13,从至少三个存储装置获取数据,数据合并模块17执行步骤S14,对获取的数据进行合并。下面介绍数据合并的具体过程。
[0088] 首先,获取数据分散时使用的钥对(m1,m2)以及对应的一元二次函数,假设二元字符串s的任意三个不同的数据块 及 如下
[0089]
[0090] 设定收集矩阵(collector matrix) 其中收集矩阵K的第k行(row)记为Kk,则有
[0091] 设定k=1,且长度为2N的字符串sR=s1s2s3s4…s2N-1s2N各项为0,读取收集矩阵K的第k行 对于由Kk读取的三相异点及 可以计算出:
[0092]
[0093] 这样可以计算出穿过三个相异点的二次函数fk之截距。
[0094] 然后,根据钥对(m1,m2)的查找表格查找上述步骤所计算的截距所对应的字符对αβ。然后,设定s2k-1=α及s2k=β,即计算出字符串中两个字符的数值。如此重复计算,直至k=N,则输出字符串sR。如字符串未计算完毕,则令k=k+1并继续计算。
[0095] 例如,字符串的钥对为(2,3),cj=j,j=1,2,3,4,5,即存在5个数据块。假设获取其中三个数据块如下:
[0096]
[0097] 则收集矩阵K如下:
[0098]
[0099] 则设定字符串的初始值,即设定字符串的每一个字符均为0,则有sR=s1s2s3s4s5s6s7s8=00000000,则有K1=[1 0 3 4 4 9]。此时可以获得(c1,f1(c1))=(1,0),(c3,f1(c3))=(3,4)及(c4,f1(c4))=(4,9)三相异点。计算出f1的截距为
[0100] 查找钥对(2,3)的查找表格如下:
[0101]α β f(0)
0 0 1
1 0 2
0 1 3
1 1 6
[0102] 而根据函数f(x)=(x-2α)(x-3β),可以得到f1(x)=(x-20)(x-30)。因此可以计算出s1=0,s2=0。然后,设k=k+1,重复上述过程直至k>4为止。因此,可以计算出s3=1,s4=0,s5=1,s6=1,s7=0,s8=1。最后计算出字符串sR=00101101,也就是实现了数据的合并、恢复。
[0103] 如每一个数据块的数据没有被修改,则可以计算出收集矩阵对应的截距均能在查找表格中查找到对应的数值,也就是字符串S中每一个字符的值均为0或1。一旦某一数据块被修改,收集矩阵对应的截距不能在查找表格中查找到对应的数值,也就是无法计算出字符串中每一个字符的值,数据合并失败。
[0104] 因此,步骤S15中,数据合并模块可以判断数据合并是否出错,如没有出错,表示数据块没有被修改,则执行步骤S16,对合并后的数据进行解密,解密的过程为加密过程的反过程,从而获得解密后的数据。
[0105] 如指纹信息获取及存储装置10使用迭代加密方法对数据进行加密,则应用生成的排列组合的模式反推原始数据的排列组合方式,从而对数据进行解密。如使用数字加密方法进行加密,则根据字符的替换对应关系进行相反的置换,即可以实现解密。
[0106] 步骤S15中,如判断数据合并失败,则表示至少一个数据块的数据被修改,则执行步骤S17,对数据进行恢复。根据数据合并的过程可知,数据合并不需要获取所有的数据块,而仅需要三个数据块即可。数据恢复步骤则应用存储在其他存储装置的三个数据块计算出原始的数据,并对数据执行如步骤S4的分散处理,从而获得存储到每一个存储装置的数据块,将恢复的数据块分别存储到对应的存储装置。
[0107] 如数据合并成功,则执行步骤S18,由验证模块19判断数据合并模块17合并后的数据是否与指纹信息获取设备20所获取的数据相同,如两个数据一致,则通过验证,执行步骤S19,输出通过身份验证的信息,否则,执行步骤S20,输出身份验证失败的信息。
[0108] 根据本发明的方法,人们的指纹信息的数据并不会单一地存储在一个存储装置上,即使某一个存储装置遭受攻击而导致数据泄露,也不会泄露人们的指纹信息,数据的安全性大大提高。另外,即使某一个存储装置存储的数据被修改,也可以通过其他存储装置所存储的数据快速地对数据进行恢复,更能提升数据的安全性。
[0109] 当然,上述实施例仅是本发明较佳的实施方式,实际应用时,还可以有更多的改变,例如,数据的加密、解密方法可以选用现在常见的加密、解密方法;或者,分散形成的数据块的数量可以根据实际情况增减,这样的改变也能实现本发明的目的。
[0110] 最后需要强调的是,本发明不限于上述实施方式,如选取的一元二次函数的改变、选取钥对的改变等变化也应该包括在本发明权利要求的保护范围内。