一种基于特征脸的隐私身份认证方法

文档序号:191433 发布日期:2021-11-02 浏览:27次 >En<

阅读说明:本技术 一种基于特征脸的隐私身份认证方法 (Privacy identity authentication method based on characteristic face ) 是由 游林 朱强 丁颖 于 2021-07-22 设计创作,主要内容包括:本发明属于人脸识别领域,公开了一种基于特征脸的隐私身份认证方法,核心实现步骤包括:1.第三方计算特征模板;2.图像预处理;3.图像生成Paillier公私钥;4.加密图像;5.第三方计算加密图像特征;6.生成Witness与Statement;7.生成CRS;8.用户生成证明;9.验证者验证证明;10.返回验证结果。本发明基于特征脸算法与同态加密算法,可信第三方在密文域上计算用户图像的特征值,却无法获取到用户的真实特征值,从根源上杜绝了生物特征信息被滥用、盗用的风险;实现了用户的隐私身份认证。(The invention belongs to the field of face recognition, and discloses a privacy identity authentication method based on a characteristic face, which comprises the following core implementation steps: 1. calculating a feature template by a third party; 2. preprocessing an image; 3. generating a Paillier public and private key by the image; 4. encrypting the image; 5. calculating the characteristics of the encrypted image by a third party; 6. generating Witness and State; 7. generating a CRS; 8. a user generates a proof; 9. verifying and proving by a verifier; 10. and returning a verification result. Based on the characteristic face algorithm and the homomorphic encryption algorithm, a trusted third party calculates the characteristic value of the user image in a ciphertext domain, but cannot acquire the real characteristic value of the user, so that the risk of abusing and embezzling the biological characteristic information is radically eliminated; the privacy identity authentication of the user is realized.)

一种基于特征脸的隐私身份认证方法

技术领域

本发明属于人脸识别领域,尤其涉及一种基于特征脸的隐私身份认证方法。

背景技术

特征脸法是一种较为“古老”的人脸识别算法。该算法的核心技术是PCA算法,它是一种线性降维方法,主要是将图像数据、文本数据等非结构化数据进行降维处理。特征脸法被用在人脸识别上,是由Sirovich and Kirby提出的。随后Matthew Turk和Alex Pentland提出了较为成熟的特征脸识别方法。

零知识证明是由S.Gold Wasser,S.Micali及C.Rackoff在20世纪80年代初提出的。零知识证明指的是证明者能够在不对验证者提供任何有用的信息的情况下,使验证者相信某个论断是正确的。零知识证明主要分为交互式与非交互式两种证明方式。由于交互式零知识证明中双方存在作弊的可能,通常采用非交互式零知识证明。

在传统的人脸识别场景中,验证者通过设备实时地获取证明者的人脸信息,随后通过人工智能相关技术,计算出证明者的人脸特征,最后采用聚类方法(最近邻或k近邻等)得到与已知图像的最近距离。然而该方法具有一定的缺陷。主要存在以下缺陷:一、存在人脸数据滥用与泄露的风险。二、证明者存在被AI换脸等情况,也能通过系统验证。

发明内容

本发明目的在于提供一种基于特征脸的隐私身份认证方法,以解决现有技术中人脸信息滥用、泄露、被伪造等风险的技术问题。

为解决上述技术问题,本发明的一种基于特征脸的隐私身份认证方法的具体技术方案如下:

一种基于特征脸的隐私身份认证方法,包括如下步骤:

步骤1:可信第三方计算特征模板;

步骤2:构造加密系统;

步骤3:发送Statement(陈述);

步骤4:发送加密图像与公钥;

步骤5:计算人脸特征值;

步骤6:求线性等式;

步骤7:计算中间值;

步骤8:返回密文Witness;

步骤9:生成CRS;

步骤10:解密Witness;

步骤11、步骤12:发送CRS;

步骤13:发送证明;

步骤14:验证证明;

步骤15:返回验证结果。

进一步地,所述步骤1包括如下具体步骤:

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

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

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

步骤1.4:将经过零均值化处理的图像组合在一起,得到一个矩阵,通过该矩阵得到PCA算法的协方差矩阵;计算协方差矩阵的特征值与特征向量,选取最大的n个特征向量,作为特征脸模板;

进一步地,所述的步骤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;

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

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

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

所述步骤2.5包括如下具体步骤:

根据Paillier算法产生的公钥对(g,N)对图像的每个像素值进行加密处理:

G(x,y)=gf(x,y)rN mod N2

f(x,y)表示预处理后的图像在坐标(x,y)下的像素值;r是一个随机数,表示集合{0,1,2,…,N}的一个与N互素的元素;G(x,y)表示为原图像在坐标(x,y)下的加密值;

将加密后的图像转换为向量形式,加密的图像是一个矩阵,将这个矩阵的每一行连接到一起,变成一个向量,将该向量转换为列向量。

进一步地,所述的步骤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)。

进一步地,所述的步骤6包括如下具体步骤:

根据特征脸算法的特性,将输入的人脸图像用如下公式表示:

θ1·X12·X33·X3+…+θn·Xn≈Y

其中(θ123,…,θn)为明文人脸特征值,(X1,X2,X3,…,Xn)中每一个参数Xi均为一个m维特征脸模板,Y为m维输入明文人脸列向量;

随后可信第三方将本地n个m维特征脸模板(X1,X2,X3,…,Xn)内每一个特征模板Xi的所有值相加后取整数,向量Y内的所有值相加后取整数得到整数Y',从而将等式近似转化为:θ1·Y12·Y23·Y3+…+θn·Yn≈Y',

其中整数Yi为第i个特征模板Xi内所有值相加后取整,整数Y'为人脸列向量的明文形式相加后取整;

根据等式左边可计算出密文整数Z,即:θ1·Y12·Y23·Y3+…+θn·Yn=Z,其中Z表示为人脸图像内的所有像素值相加,即Y'≈Z且|Y'-Z|<δ,δ为一个非常小的实数;

所述步骤7包括如下具体步骤:

根据公式θ1·Y12·Y23·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)为本地明文形式存储;

进一步地,所述的步骤8包括如下具体步骤:

可信第三方根据用户发送的密文人脸信息与公钥,采用同态加密技术,计算出零知识证明中的Witness;

将密文的Witness发给用户;

其中的Witness密文为(θ′1,θ′2,θ′3,,θ′n,C′1,C′2,C′3,…,C′n,Z);

所述步骤9包括如下具体步骤:

可信第三方采用零知识证明技术,对θ1·Y12·Y23·Y3+…+θn·Yn=Z,进行处理;Statement(陈述)(Y1,Y2,Y3,…,Yn)是固定值;不同用户使用不同的人脸图像,会生成不同的Witness(θ′1,θ′2,θ′3,…,θ′n,C′1,C′2,C′3,…,C′n,Z′),可信第三方根据上述等式转化为Algebraic Circuit,从Algebraic Circuit转化为R1CS,从R1CS转化为QAP/QSP,最后变成zk-SNARKs问题,同时根据步骤6的等式结构挑选随机数生成Common Reference String(CRS);

CRS如下所示:

可信第三方随机选取α,β,γ,δ,定义τ=(α,β,δ,x),并计算CRS=([σ1]1,[σ2]2),

其中,[x]1表示为gx,[x]2表示为hx,g,h都是群G1,G2的生成元,并且[a]1·[b]2=[a·b]T=e(g,h)a·b

进一步地,所述的步骤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)发送给验证者。

进一步地,所述的步骤14包括如下具体步骤:

验证者收到用户(证明者)的证明后,解析证明π=([A]1,[C]1,[B]2);结合可信第三方发给自己的Statement,验证以下等式是否成立:

其中上述等式中的ai,i∈0,1,2,3,…,l为可信第三方向验证者秘密发送的Statement,本申请实施例的Statement为(Y1,Y2,Y3,…,Yn);

若等式验证通过,即等式两边相等,则该用户为可信第三方认证的合法用户;若等式验证不通过,则用户为非法用户。

进一步地,所述的步骤15包括如下具体步骤:

验证者根据步骤14的等式验证结果进行相应的处理:

若验证为合法用户,则对用户返回认证成功;若验证失败,则对用户返回验证失败;

进一步地,所述的步骤15在进行身份认证时,验证者可对多个证明者的证明进行聚合验证;具体步骤为:

验证者初始化四个元素(A,B,C,D)令其值为零,并采用如下公式进行聚合:

其中证明π=([Ai]1,[Bi]2,[Ci]1),i∈{1,2,3,…,N}表示为第i个用户发给验证者的证明;

最后验证如下等式是否成立:

若等式成立,则N个用户的身份都为合法用户,否则该聚合的证明中存在非法用户,等式无法验证通过。

本发明的一种基于特征脸的隐私身份认证方法具有以下优点:

与现有技术相比,本申请提供了一种基于特征脸的隐私身份认证方法,利用公式θ1·Y12·Y23·Y3+…+θn·Yn=Z来实现隐私身份认证,使用零知识证明技术验证该等式是否成立。最后在Groth2016零知识算法的基础上,实现了身份聚合验证方式,仅需一次计算即可验证多个用户,且存储空间仅需4个元素。在此过程中隐藏了与用户(证明者)相关的任何信息。即验证者与可信第三方无需存储用户的任何信息,使得用户信息不存在被滥用盗用的情况。通过用户发送的证明能够验证用户的身份是否合法,但是验证者并不知道该用户的真实身份,并且验证者本地没有保存用户的真实身份信息,也无法从证明π中获取到有用的信息,从而实现了隐私身份认证。因此,本实施例既能做到保证用户(证明者)真实身份信息不会泄露,又能够做到不影响身份的合法性验证最后也提高了验证的效率。

附图说明

图1为本发明的顺序图;

图2为本发明用户在本地构建加密系统流程图;

图3为本发明用户在图像预处理阶段的流程图;

图4为本发明中验证者对多个用户聚合验证的流程图;

图5为本发明的核心流程图;

具体实施方式

为了更好地了解本发明的目的、结构及功能,下面结合附图,对本发明一种基于特征脸的隐私身份认证方法做进一步详细的描述。

根据本申请实施例的第一个方面,提供了一种基于特征脸的隐私身份认证方法,包括:用户在本地将获取的人脸图像进行图像预处理操作,例如:灰度化、重置大小、降噪等;同时根据处理后的图像,计算图像的逆元素,生成逆图像。利用两幅图像计算哈希值,来构造Paillier算法的公私钥对;使用Paillier算法的公钥将图像中的每个元素进行加密,将加密后的人脸图像转化为列向量的形式,最后将加密后的向量与公钥发给可信第三方。

根据本申请实施例的第二个方面,提供了一种基于特征脸的隐私身份认证方法,包括:可信第三方在本地随机选取人脸数据库,根据特征脸方法训练出若干特征脸模板X(特征向量);并根据特征向量计算出陈述(Statement),将陈述以秘密的形式发送给验证者;可信第三方获取用户(证明者)发给自己的加密列向量(人脸密文形式)与用户的公钥;将用户的加密列向量使用特征脸方法与同态加密技术,把密文人脸图像投影到特征脸子空间,从而得到人脸的密文特征值(θ′1,θ′2,θ′3,…,θ′n);根据特征脸方法,输入人脸图像可用特征模板线性表示:θ1·X12·X23·X3+…+θn·Xn≈Y;其中(θ123,,…θn)为人脸特征向量明文形式,(X1,X2,X3,…,Xn)中每一个参数Xi均为一个m维特征脸模板,Y为m维人脸列向量的明文形式;随后将本地n个m维特征脸模板(X1,X2,X3,…,Xn)内每一个特征模板Xi的所有值相加再取整数,向量Y内的所有值相加再取整数得到整数Y',从而将等式近似转化为:θ1·Y12·Y23·Y3+…+θn·Yn≈Y',其中整数Yi为第i个特征模板Xi内所有值相加再取整,整数Y'为人脸列向量的明文形式相加后取整;根据等式左边可计算出密文整数Z,即:θ1·Y12·Y23·Y3+…+θn·Yn=Z将该等式转化为零知识证明问题,只要验证用户拥有某些参数,即可证明用户的身份是否合法,等式中(Y1,Y2,Y3,…,Yn)为本地计算出的Statement(陈述)。随后采用Paillier算法加法同态性计算中间密文隐藏值(C1',C'2,C3',…,C'n,Z');其中,明文形式的Ci=θi·Yi;随后可信第三方将处理后的数据Witness,即…C′nZ发送给用户。

根据本申请实施例的第三个方面,提供了一种基于特征脸的隐私身份认证方法,包括:用户(证明者)收到密文后使用私钥进行解密,获得明文Witness;可信第三方根据上述等式结构使用零知识证明算法,生成Common Reference String(CRS),因为多项式结构代表的运算,并非是为了计算出结果,而是在证明者已经知晓的变量赋值的情况下,检验这个运算的过程是否正确;可信第三方采用零知识证明算法(例如SONIC,PLONK等),根据上述等式的运算结构使用随机数生成Common Reference String(CRS)并向整个网络公布,用户(证明者)收到CRS后,结合本地witness进行计算,生成证明(记为π)发送给验证者;验证者收到可信第三方发送的CRS也进行相应的参数计算,同时验证者可接受多个证明者发送的证明π,可使用相同Statement(陈述)对证明者进行一对一单独身份验证;证明者只要拥有可信第三方为自己生成的Witness,就可根据CRS生成合法的证明π,使验证者相信该用户是合法用户;但是验证者并不知道该用户的真实身份,并且验证者本地没有保存用户的真实身份信息,从而实现了隐私身份认证。

根据本申请实施例的第四个方面,提供了一种基于特征脸的隐私身份认证方法,包括:对Jens Groth于2016年在论文On the Size of Pairing-based Non-interactiveArguments(以下简称为Groth2016)中所述的零知识证明算法进行了改进,使本方案采用该算法能够实现聚合身份验证;获取多个证明者发送的证明π,验证者在本地仅需存储4个群元素,即可完成聚合验证,大大减小了验证者的存储开销;该算法在验证阶段需要验证如下等式成立:

若等式成立,则N个用户的身份均为合法用户,否则该聚合的证明中存在非法用户(未经可信第三方授权的用户),则等式无法验证通过;其中群元素(A,B,C,D)的具体构造过程如下所示:

其中,证明π=([Ai]1,[Bi]2,[Ci]1),i∈{1,2,3,…,N}表示为第i个用户发给验证者的证明。

与现有技术相比,本申请提供了一种基于特征脸的隐私身份认证方法,利用公式θ1·Y12·Y23·Y3+…+θn·Yn=Z来实现隐私身份认证,使用零知识证明技术验证该等式是否成立。最后在Groth2016零知识算法的基础上,实现了身份聚合验证方式,仅需一次计算即可验证多个用户,且存储空间仅需4个元素。在此过程中隐藏了与用户(证明者)相关的任何信息。即验证者与可信第三方无需存储用户的任何信息,使得用户信息不存在被滥用盗用的情况。通过用户发送的证明能够验证用户的身份是否合法,但是验证者并不知道该用户的真实身份,并且验证者本地没有保存用户的真实身份信息,也无法从证明π中获取到有用的信息,从而实现了隐私身份认证。因此,本实施例既能做到保证用户(证明者)真实身份信息不会泄露,又能够做到不影响身份的合法性验证最后也提高了验证的效率。

参照附图1,对本发明的步骤作进一步的详细描述。

1、可信第三方计算特征模板。可信第三方服务器在本地随机选取人脸数据库,根据特征脸算法,计算出本地特征脸模板,其具体步骤如下所示:

1.1将人脸图像进行预处理操作。例如:转化大小、灰度化等操作;

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

1.3将数据集中的所有图片转换为向量后,可以得到一个矩阵。在此基础上进行零均值化处理,就是将所有的人脸在对应的维度求平均,得到一个平均脸向量。每个人脸向量,减去该向量完成零均值化处理;

1.4将经过零均值化处理的图像组合在一起,可以得到一个矩阵,通过该矩阵可以得到PCA算法的协方差矩阵;计算协方差矩阵的特征值与特征向量,每一个特征向量的维度与原始图像的维度是一致的,因此这些特征向量可以看作一个图像,这些特征向量就是所谓的特征脸;我们选取最大的n个特征向量,作为特征脸模板。

2、构造加密系统:

参考附图2,对本发明的加密系统步骤作进一步的详细描述。

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

参考附图3,对本发明的图像预处理步骤作进一步的详细描述。

2.1.1首先获取人脸图像;

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

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

2.1.4将图像进行降噪处理;排除获取图像时,因为周围环境或设备原因产生的噪声干扰;常规的噪声有:高斯噪声、椒盐噪声、瑞利噪声等;常用的图像去噪方法有:均值滤波器、高斯滤波器、中值滤波器等。

2.1.5对图像进行直方图均衡化处理。

直方图均衡化的基本原理是:对在图像中像素个数多的灰度值(即对画面起主要作用的灰度值)进行展宽,而对像素个数少的灰度值(即对画面不起主要作用的灰度值)进行归并,从而增大对比度,使图像清晰,达到增强的目的。

2.2将图像预处理阶段的输出图像A,求其逆元素,生成新的图像矩阵A'。

根据公式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为哈希函数的输出;本发明采用的Hash函数为SHA-512。

对A与A'分别做哈希运算,生成Y1=Hash(A),Y2=Hash(A')。

2.4构造用户的公私钥。

根据Paillier算法与2.3的图像哈希值,构造出用户的公私钥;其中大素数p为大于A且与A最近的素数,大素数q为大于A'且与A'最近的素数,并且满足

根据公式计算出p-1与q-1的最小公倍数λ。

根据公式N=p·q,计算出N。

随机选取整数g,且满足

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

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

2.5加密个人图像。

根据Paillier算法产生的公钥对(g,N)对图像的每个像素值进行加密处理:

f(x,y)表示预处理后的图像在坐标(x,y)下的像素值;r是一个随机数,通常表示集合{0,1,2,…,N}的一个与N互素的元素;G(x,y)表示为原图像在坐标(x,y)下的加密值。

将加密后的图像转换为向量形式,加密的图像是一个矩阵,将这个矩阵的每一个行连接到一起,则可以变成一个向量,将该向量转换为列向量。

3、发送Statement(陈述)。

服务器根据步骤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)。

6、求线性等式。

根据特征脸算法的特性,可将输入的人脸图像用如下公式表示:

θ1·X12·X33·X3+…+θn·Xn≈Y

其中(θ123,…,θn)为明文人脸特征值,(X1,X2,X3,…,Xn)中每一个参数Xi均为一个m维特征脸模板,Y为m维输入明文人脸向量。

随后将本地n个m维特征脸模板(X1,X2,X3,…,Xn)内每一个特征模板Xi的所有值相加后取整数,向量Y内的所有值相加后取整数得到整数Y',从而将等式近似转化为:θ1·Y12·Y23·Y3+…+θn·Yn≈Y'。

其中整数Yi为第i个特征模板Xi内所有值相加后取整,整数Y'为人脸列向量的明文形式相加后取整。

根据等式左边可计算出密文整数Z,即:θ1·Y12·Y23·Y3+…+θn·Yn=Z。其中Z可近似的表示为人脸图像内的所有像素值相加,即Y'≈Z且|Y'-Z|<δ,δ为一个非常小的实数。

7、计算中间值。

根据公式θ1·Y12·Y23·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)为本地明文形式存储。

8、返回密文Witness。

可信第三方根据用户发送的密文人脸信息与公钥,采用同态加密技术,计算出零知识证明中的Witness;

将密文的Witness发给用户;

其中的Witness密文为(θ′1,θ′2,θ′3',…,θ′n,C′1,C′2,C3,…,C′n,Z′)。

9、生成CRS。

可信第三方采用零知识证明技术,对θ1·Y12·Y23·Y3+…+θn·Yn=Z,进行处理;由于可信第三方使用的特征模板固定,那么Statement(陈述)(Y1,Y2,Y3,…,Yn)一定是固定值;不同用户使用不同的人脸图像,会生成不同的Witness,即故可信第三方根据上述等式转化为AlgebraicCircuit,从Algebraic Circuit转化为R1CS,从R1CS转化为QAP/QSP,最后变成zk-SNARKs问题,同时也会根据等式结构挑选随机数生成Common Reference String(CRS);因为多项式结构代表的运算,并非是为了计算出结果,而是在证明者已经知晓的变量赋值的情况下,检验这个运算的过程是否正确。

本实施例采用的是Jens Groth于2016年在论文On the Size of Pairing-basedNon-interactive Arguments(以下简称为Groth2016)中所述的零知识证明算法;因此,本实施例根据该论文的算法与等式的结构生成相应的common reference string(CRS),CRS如下所示:

可信第三方随机选取α,β,γ,δ,定义τ=(α,β,δ,x),并计算CRS=([σ1]1,[σ2]2),

其中,[x]1表示为gx,[x]2表示为hx,g,h都是群G1,G2的生成元,并且[a]1·[b]2=[a·b]T=e(g,h)a·b

10、解密Witness。

用户收到可信第三方发送的密文Witness,根据自己的私钥(p,q)进行解密,得出明文Witness。

11、12,发送CRS。

可信第三方根据步骤9生成相应的CRS,并将CRS以明文公开的方式发送给验证者与用户。

13、发送证明。

用户收到可信第三方发送的CRS后,选取相应的随机数并根据明文Witness进行计算证明π=([A]1,[C]1,[B]2)

其中上述等式中的ai,i∈l+1,l+2,…,m为用户(证明者)向第三方获取的Witness,在本实施例中Witness为(θ′1,θ′2,θ′',…,θ′n,C′1,C′2,C′3,…,C′n,Z′)。

将计算好的证明π=([A]1,[C]1,[B]2)发送给验证者。

14、验证证明。

验证者收到用户(证明者)的证明后,解析证明π=([A]1,[C]1,[B]2);结合可信第三方发给自己的Statement,验证以下等式是否成立。

其中上述等式中的ai,i∈0,1,2,…,l为可信第三方向验证者秘密发送的Statement,在本实施例中Statement为(Y1,Y2,Y3,…,Yn)。

若等式验证通过,即等式两边相等,则该用户为可信第三方认证的合法用户;若等式验证不通过,则用户为非法用户。

15、返回验证结果。

验证者根据步骤14的等式验证结果进行相应的处理。

若验证为合法用户,则对用户返回认证成功;若验证失败,则对用户返回验证失败。

可选的,在进行身份认证时,验证者还可对多个证明者的证明进行聚合验证;将多个证明者的证明进行聚合,仅需一次验证等式,即可判断多个证明者是否都为合法用户,同时验证者的存储开销仅需4个群元素。

图4给出了本实施例提供的验证者聚合验证的结构示意图;具体的,验证者初始化四个元素(A,B,C,D)令其值为零,并采用如下公式进行聚合:

其中证明π=([Ai]1,[Bi]2,[Ci]1),i∈{1,2,3,…,N}表示为第i个用户发给验证者的证明。

最后验证如下等式是否成立:

若等式成立,则N个用户的身份都为合法用户,否则该聚合的证明中存在非法用户,等式无法验证通过。

可以理解,本发明是通过一些实施例进行描述的,本领域技术人员知悉的,在不脱离本发明的精神和范围的情况下,可以对这些特征和实施例进行各种改变或等效替换。另外,在本发明的教导下,可以对这些特征和实施例进行修改以适应具体的情况及材料而不会脱离本发明的精神和范围。因此,本发明不受此处所公开的具体实施例的限制,所有落入本申请的权利要求范围内的实施例都属于本发明所保护的范围内。

21页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:抓取图像的方法、图像展示方法、装置和存储介质

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!