利索能及
我要发布
收藏
专利号: 2022106676830
申请人: 杭州电子科技大学
专利类型:发明专利
专利状态:已下证
更新日期:2026-08-04
缴费截止日期: 暂无
联系人

摘要:

权利要求书:

1.一种基于零知识证明的生物特征密钥验证方法,其特征在于,包括如下步骤:步骤1:系统初始化:系统初始化阶段,密钥生成中心在本地随机选取人脸数据库,使用特征脸算法,计算出本地人脸数据库的特征脸模板;

步骤1.1:将人脸图像进行预处理操作;

步骤1.2:将人脸图像转换为一个列向量:经过灰度化处理的图像是一个矩阵,将这个矩阵的每一个行连接到一起,变成一个向量,将该向量转换为列向量;

步骤1.3:将数据库中的所有图像转换为向量后合并,得到一个矩阵,在此基础上进行零均值化处理,即将所有的人脸图像在对应的维度求平均,得到一个平均脸向量,最后将每个人脸图像对应的向量减去该平均脸向量完成零均值化处理;

步骤1.4:将经过零均值化处理的图像组合在一起,得到一个矩阵,通过该矩阵得到PCA算法的协方差矩阵;计算协方差矩阵的特征值与特征向量,每一个特征向量的维度与原始图像的维度是一致的,因此这些特征向量可以看作一个图像,这些特征向量就是所谓的特征脸;选取最大的前k个特征向量V,作为特征脸模板,其中V=(v1,v2,…,vk),vi是第i个特征向量;

步骤1.5:将前k个特征向量V的值转化到有限域上得到新的k个特征向量V′,其中V′=(v′1,v′2,…,v′k);并将每个特征向量v′i内的所有值相加会得到新的值ai,最后将得到一个向量A=(a1,a2,…,ak),该向量A中的每个值对应有限域内k个特征向量V′对应位置的向量的值的和;

步骤1.6:使用Pederson承诺方案对向量A中的每一个值计算承诺将得到一组新的向量,即 其中comck()是承诺函数,ck是密钥生成中心的承诺密钥,ri是计算承诺时选取的随机数,最后将 向整个网络公布;

步骤2:构造加密系统;

步骤2.1:首先对图像进行预处理操作:

步骤2.1.1:首先获取人脸图像;

步骤2.1.2:将人脸图像进行灰度化处理;

步骤2.1.3:随后将人脸图像进行重置大小,转化为固定大小的图像;

步骤2.1.4:将图像进行降噪处理;排除获取图像时,因为周围环境或设备原因产生的噪声干扰;

步骤2.1.5:对图像进行直方图均衡化处理;对在图像中像素个数多的灰度值进行展宽,而对像素个数少的灰度值进行归并;

步骤2.2:将图像预处理阶段的输出图像A,求其逆元素,生成新的图像矩阵A′;

根据公式f′(x)=255‑f(x,y)求其图像对应逆元素,生成新的图像A′,其中f(x,y)为坐标(x,y)在原始图像上的像素值;f’(x,y)为新的图像在坐标(x,y)上的像素值;

步骤2.3:求图像哈希;对原始图像和新生成的图像进行哈希运算;根据Y=Hash(X)公式,对图像X求哈希值,Y为哈希函数的输出;采用的Hash函数为SHA‑512,对A与A’分别做哈希运算,生成Y1=Hash(A),Y2=Hash(A’);

步骤2.4:构造用户的公私钥;

根据Paillier算法与步骤2.3的图像哈希值,构造出用户的公私钥;其中大素数p为大于A且与A最近的素数,大素数q为大于A’且与A’最近的素数,并且满足gcd(pq,(p‑1)(q‑1))=1;

根据公式λ=lcm(p‑1,q‑1),计算出p‑1与q‑1的最小公倍数;

根据公式N=pq,计算出N;

λ 2

随机选取整数g,且满足gcd(L(gmod N),N)=1,2

其中mod表示为取模运算,gcd表示求最大公倍数操作;G表示集合{0,1,2,3,…,N‑1}内的元素,L(u)=u‑1/N;

最后得出公钥为(g,N),私钥为(p,q);

步骤2.5:加密个人图像;

用户根据Paillier算法产生的公钥对(g,N)对获取到的生物特征图像的每个像素值进行加密处理:f(x,y) N 2

G(x,y)=g rmodN

f(x,y)表示预处理后的图像在坐标(x,y)下的像素值;r是一个随机数,表示集合{0,1,

2,…,N}的一个与N互素的元素;G(x,y)表示为原图像在坐标(x,y)下的加密值;将加密后的生物特征图像转换为向量形式,加密的图像是一个矩阵,将这个矩阵的每一个行连接到一起,则可以变成一个向量,将该向量转换为列向量Γ′;

步骤2.1:首先对图像进行预处理操作:

步骤2.2:将图像预处理阶段的输出图像A,求其逆元素,生成新的图像矩阵A′;

步骤2.3:求图像哈希;

步骤2.4:构造用户的公私钥;

步骤2.5:加密个人图像;

步骤3:计算并发送身份信息;

步骤3.1:用户随机选取参数 输入密码 设置参数υ=Γ′∥e∥pw′,其中pw′是pw的加密值;

步骤3.2:用户通过计算参数 来计算身份信息,其中 是参数υ′的数字签名,υ′是参数υ的哈希值;

步骤3.3:最后将参数υ″,公钥pk和哈希函数H()的信息添加到向密钥生成中心的请求中;

步骤4:生成密钥与验证参数;

步骤4.1:当收到用户发送的密钥生成请求时,密钥生成中心首先核实用户发送的请求的真实性,通过判断下列等式是否成立:如果上述等式成立,那么用户解析υ″去获得用户的加密生物特征信息,随机值e和加密的密码pw’;

步骤4.2:密钥生成中心使用用户的随机值e去计算一组特殊的向量(C1,C2,…,Ck),其i·e中Ci=(pw′·C) ,1≤i≤k,向量C是用户的生物特征图像Γ和选取的人脸数据库计算的均值ψ的差值的加密形式;

步骤4.3:密钥生成中心使用向量(C1,C2,…,Ck)和向量(v′1,v′2…,v′k)在对应位置做运算得到一个密文向量(θ′1,θ′2,…,θ′k),计算过程如下所示:将计算结果称为用户生物特征图像在密钥生成中心处生成的密钥的加密值,将向量(θ′1,θ′2,…,θ′k)用向量(a1,a2,…,ak)表示,同时将参数k表示成μm′;

假设向量a=(a1,a2,…,an),向量b=(b1,b2,…,bn),则 步骤4.4:密钥生成中心随机选取参数 计算参数 选取向量

并设置bμ/2=0,sμ/2=0,τμ/2=ρ,在k∈[0,…,μ‑2]的循环中,计算如下等式:

步骤4.5:密钥生成中心将使用用户生物特征生成的密钥的加密值(θ1′,θ2′,…,θ′k),向量 向量E=(E0,…,Ek),参数C发送给用户;

步骤5:生成并发送挑战值;

用户收到密钥生成中心发送的数据后,用户随机选取一个挑战值 将它发送给密钥生成中心;

步骤6:计算挑战值参数;

密钥生成中心收到用户的挑战值后,作如下计算:μ‑2 T

步骤6.1:设置向量x=(1,x,…,x ) ,计算参数s=s·x,b=b·x,ρ′=τ·x,将参数s,b和ρ′发送给用户;

i

步骤6.2:定义参数C′1,C′2,…,C′m′, y 和C″步骤6.3:对参数l=1,2,…,m′,计算参数步骤6.4:密钥生成中心将参数 (a′1,…,a′m′),(r′1,…,r′m′)和发送给用户;

步骤7:参数验证与解密生物特征密钥;

用户收到参数后,检查 和 是否成立,随后判断下列等式是否成立:

若上述等式成立,则接受密钥生成中心产生的密钥;

用户使用自己的私钥sk解密加密参数(θ1′,θ2′,…,θ′k)获取基于生物特征的密钥的明文形式(θ1,θ2,…,θk)。