1.一种基于特征脸的隐私身份认证方法,其特征在于,包括如下步骤:步骤1:可信第三方计算特征模板;
步骤2:构造加密系统;
步骤3:发送Statement(陈述);
步骤4:发送加密图像与公钥;
步骤5:计算人脸特征值;
步骤6:求线性等式;
步骤7:计算中间值;
步骤8:返回密文Witness;
步骤9:生成CRS;
步骤10:解密Witness;
步骤11、步骤12:发送CRS;
步骤13:发送证明;
步骤14:验证证明;
步骤15:返回验证结果。
2.根据权利要求1所述的基于特征脸的隐私身份认证方法,其特征在于,所述步骤1包括如下具体步骤:
步骤1.1:将人脸图像进行预处理操作;
步骤1.2:将人脸图像转换为一个列向量:经过灰度化处理的图片是一个矩阵,将这个矩阵的每一个行连接到一起,变成一个向量,将该向量转换为列向量;
步骤1.3:将数据集中的所有图片转换为向量后,得到一个矩阵,在此基础上进行零均值化处理,将所有的人脸在对应的维度求平均,得到一个平均脸向量;每个人脸向量,减去该向量完成零均值化处理;
步骤1.4:将经过零均值化处理的图像组合在一起,得到一个矩阵,通过该矩阵得到PCA算法的协方差矩阵;计算协方差矩阵的特征值与特征向量,选取最大的n个特征向量,作为特征脸模板;
3.根据权利要求2所述的基于特征脸的隐私身份认证方法,其特征在于,所述的步骤2包括:
步骤2.1:首先对图像进行预处理操作;
步骤2.2:将图像预处理阶段的输出图像A,求其逆元素,生成新的图像矩阵A';
步骤2.3:求图像哈希;
步骤2.4:构造用户的公私钥;
步骤2.5:加密个人图像;
所述步骤2.1的具体步骤如下:步骤2.1.1:首先获取人脸图像;
步骤2.1.2:将人脸图像进行灰度化处理;
步骤2.1.3:随后将人脸图像进行重置大小,转化为固定大小的图像;
步骤2.1.4:将图像进行降噪处理;排除获取图像时,因为周围环境或设备原因产生的噪声干扰;
步骤2.1.5:对图像进行直方图均衡化处理;
所述步骤2.2的具体步骤如下:根据公式f'(x,y)=255‑f(x,y)求其图像对应逆元素,生成新的图像A'。其中f(x,y)为坐标(x,y)在原始图像上的像素值;f'(x,y)为新的图像在坐标(x,y)上的像素值;
所述步骤2.3的具体步骤如下:对原始图像和新生成的图像进行哈希运算;根据Y=Hash(X)公式,对图像X求哈希值,Y为哈希函数的输出;
对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=p·q,计算出N;
λ 2
随机选取整数g,且满足gcd(L(gmodN),N)=12
其中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 rmodNf(x,y)表示预处理后的图像在坐标(x,y)下的像素值;r是一个随机数,表示集合{0,1,
2,…,N}的一个与N互素的元素;G(x,y)表示为原图像在坐标(x,y)下的加密值;
将加密后的图像转换为向量形式,加密的图像是一个矩阵,将这个矩阵的每一个行连接到一起,变成一个向量,将该向量转换为列向量。
4.根据权利要求3所述的基于特征脸的隐私身份认证方法,其特征在于,所述的步骤3包括如下具体步骤:
服务器根据步骤1计算出前n个最大特征模板(X1,X2,X3,…,Xn)(特征向量),其中每一个参数Xi均为一个m维特征脸模板;将每个特征模板内的值进行相加,再进行取整操作,转化为整数值,从而得到将n个整数(Y1,Y2,Y3,…,Yn);
将n个整数(Y1,Y2,Y3,…,Yn)作为零知识证明中的Statement(陈述)以秘密的方式发给验证者;
所述步骤4包括如下具体步骤:用户将加密后的列向量与Paillier算法产生的公钥对(g,N)发给可信第三方;
所述步骤5包括如下具体步骤:可信第三方收到用户加密图像的列向量与用户的公钥后,进行计算用户人脸密文特征值(θ′1,θ′2,θ′3,…,θ′n);
按照如下公式计算用户的特征向量:其中Γ表示为人脸向量的数据,Ψ表示PCA算法计算初期时,由人脸向量的维度的均值构成的向量,也就是平均脸;
给定加密的人脸图像密文与用户的公钥,根据Paillier算法的加法同态性即求出密文形式的人脸特征值(θ′1,θ′2,θ′3,…,θ′n)。
5.根据权利要求4所述的基于特征脸的隐私身份认证方法,其特征在于,所述的步骤6包括如下具体步骤:
根据特征脸算法的特性,将输入的人脸图像用如下公式表示:θ1·X1+θ2·X3+θ3·X3+…+θn·Xn≈Y
其中(θ1,θ2,θ3,…,θn)为明文人脸特征值,(X1,X2,X3,…,Xn)中每一个参数Xi均为一个m维特征脸模板,Y为m维输入明文人脸向量;
随后将本地n个m维特征脸模板(X1,X2,X3,…,Xn)内每一个特征模板Xi的所有值相加后取整数,向量Y内的所有值相加后取整数得到整数Y',从而将等式近似转化为:θ1·Y1+θ2·Y2+θ3·Y3+…+θn·Yn≈Y',其中整数Yi为第i个特征模板Xi内所有值相加后取整,整数Y'为人脸列向量的明文形式相加后取整;
根据等式左边可计算出密文整数Z,即:θ1·Y1+θ2·Y2+θ3·Y3+…+θn·Yn=Z,其中Z表示为人脸图像内的所有像素值相加,即Y'≈Z且|Y'‑Z|<δ,δ为一个非常小的实数;
所述步骤7包括如下具体步骤:根据公式θ1·Y1+θ2·Y2+θ3·Y3+…+θn·Yn=Z,利用Paillier算法的加法同态性,计算出中间秘密隐藏值(C′1,C′2,C′3,…,C′n,Z');其中,明文形式的Ci=θi·Yi,(C′1,C′2,C′3,…,C′n,Z')均为密文形式,(Y1,Y2,Y3,…,Yn)为明文形式存储在本地;
6.根据权利要求5所述的基于特征脸的隐私身份认证方法,其特征在于,所述的步骤8包括如下具体步骤:
可信第三方根据用户发送的密文人脸信息与公钥,采用同态加密技术,计算出零知识证明中的Witness;
将密文的Witness发给用户;
其中的Witness密文为(θ′1,θ′2,θ′3,…,θ′n,C′1,C′2,C′3,…,C′n,Z');
所述步骤9包括如下具体步骤:可信第三方采用零知识证明技术,对θ1·Y1+θ2·Y2+θ3·Y3+…+θn·Yn=Z,进行处理;
Statement(陈述)(Y1,Y2,Y3,…,Yn)是固定值;不同用户使用不同的人脸图像,会生成不同的Witness,即 可信第三方根据上述等式转化为Algebraic Circuit,从Algebraic Circuit转化为R1CS,从R1CS转化为QAP/QSP,最后变成zk‑SNARKs问题,同时根据等式结构挑选随机数生成Common Reference String(CRS);
CRS如下所示:
可信第三方随机选取α,β,γ,δ, 定义τ=(α,β,δ,x),并计算CRS=([σ1]1,[σ2]2),
x x
其中,[x]1表示为g ,[x]2表示为h ,g,h都是群G1,G2的生成元,并且[a]1·[b]2=[a·a·b
b]T=e(g,h) 。
7.根据权利要求6所述的基于特征脸的隐私身份认证方法,其特征在于,所述的步骤10包括如下具体步骤:
用户收到可信第三方发送的密文Witness,根据自己的私钥(p,q)进行解密,得出明文Witness。
步骤11、步骤12包括如下具体步骤:可信第三方根据步骤9生成相应的CRS,并将CRS以明文公开的方式发送给验证者与用户;
所述的步骤13包括如下具体步骤:用户收到可信第三方发送的CRS后,选取相应的随机数 并根据明文Witness进行计算证明π=([A]1,[C]1,[B]2),其中上述等式中的ai,i∈l+1,l+2,…,m为用户(证明者)向第三方获取的Witness,Witness为(θ′1,θ′2,θ′3,…,θ′n,C′1,C′2,C′3,…,C′n,Z');
将计算好的证明π=([A]1,[C]1,[B]2)发送给验证者。
8.根据权利要求7所述的基于特征脸的隐私身份认证方法,其特征在于,所述的步骤14包括如下具体步骤:
验证者收到用户(证明者)的证明后,解析证明π=([A]1,[C]1,[B]2);结合可信第三方发给自己的Statement,验证以下等式是否成立:其中上述等式中的ai,i∈0,1,2,3,…,l为可信第三方向验证者秘密发送的Statement,Statement为(Y1,Y2,Y3,…,Yn);
若等式验证通过,即等式两边相等,则该用户为可信第三方认证的合法用户;若等式验证不通过,则用户为非法用户。
9.根据权利要求8所述的基于特征脸的隐私身份认证方法,其特征在于,所述的步骤15包括如下具体步骤:
验证者根据步骤14的等式验证结果进行相应的处理:若验证为合法用户,则对用户返回认证成功;若验证失败,则对用户返回验证失败;
10.根据权利要求9所述的基于特征脸的隐私身份认证方法,其特征在于,所述的步骤
15在进行身份认证时,验证者对多个证明者的证明进行聚合验证;具体步骤为:验证者初始化四个元素(A,B,C,D)令其值为零,并采用如下公式进行聚合:其中证明π=([Ai]1,[Bi]2,[Ci]1),i∈{1,2,3,…,N}表示为i个用户发给验证者的证明;
最后验证如下等式是否成立:
若等式成立,则N个用户的身份都为合法用户,否则该聚合的证明中存在非法用户,等式无法验证通过。