发明名称 一种基于加密人脸的匿名身份认证方法和系统
摘要 本发明公开了信息安全领域中的一种基于加密人脸的匿名身份认证方法和系统。包括:根据Paillier公钥密码体制生成公钥和私钥,将公钥分配给客户端,将私钥存储在应用服务器。客户端在用户注册时获取用户身份并对获取的人脸特征加密,客户端在匿名用户登录时对获取的人脸特征加密;数据库服务器将用户登录加密信息与注册加密信息进行计算;应用服务器利用私钥解密计算得到解密信息,若满足条件,认为该用户可以进入系统。本发明由于Paillier公钥密码体制是单向的并且在语义上是安全的,以及匿名用户的加密人脸特征和私钥不在同一个服务器内,即使是高级权限用户也无法获知用户的信息,所以可以保证身份认证系统的安全性。
申请公布号 CN101984576A 申请公布日期 2011.03.09
申请号 CN201010522427.X 申请日期 2010.10.22
申请人 北京工业大学 发明人 毋立芳;肖鹏;吴雪;曹连超;仲盛;陈婷婷
分类号 H04L9/32(2006.01)I;H04L29/06(2006.01)I 主分类号 H04L9/32(2006.01)I
代理机构 北京思海天达知识产权代理有限公司 11203 代理人 张慧
主权项 1.一种基于加密人脸的匿名身份认证方法,其特征在于,该方法根据Paillier算法的同态性,将Paillier公钥密码体制对人脸特征加密并采用欧氏距离进行度量的人脸身份认证方法,该方法包括两个阶段:注册阶段和认证阶段;由应用服务器根据Paillier公钥密码体制生成身份认证系统的密钥对:公钥(n,g)和私钥(λ,μ),同时将公钥(n,g)分配给客户端,将私钥(λ,μ)存储在应用服务器中;所述注册阶段包括:a.M个用户在客户端进行注册,客户端获取用户的身份信息和人脸特征向量A<sub>i</sub>:(a<sub>i1</sub>,a<sub>i2</sub>…a<sub>ij</sub>…a<sub>iN</sub>),i=1,2…M,j=1,2…N,A<sub>i</sub>是第i个用户的人脸特征向量,a<sub>ij</sub>是第i个用户的人脸特征向量的第j个特征值,N为人脸特征向量的维数;b.使用公钥(n,g)对这M个用户的人脸特征进行加密,根据公式(1)和(2)计算U<sub>ij</sub>和V<sub>ij</sub>:<maths num="0001"><![CDATA[<math><mrow><msub><mi>U</mi><mi>ij</mi></msub><mo>=</mo><mi>E</mi><mrow><mo>(</mo><msubsup><mi>a</mi><mi>ij</mi><mn>2</mn></msubsup><mo>,</mo><msubsup><mi>r</mi><mi>ij</mi><mi>a</mi></msubsup><mo>)</mo></mrow><mo>=</mo><msup><mi>g</mi><msubsup><mi>a</mi><mi>ij</mi><mn>2</mn></msubsup></msup><mo>&CenterDot;</mo><mi></mi><msup><mrow><mo>(</mo><msubsup><mi>r</mi><mi>ij</mi><mi>a</mi></msubsup><mo>)</mo></mrow><mi>n</mi></msup><msup><mrow><mi>mod</mi><mi>n</mi></mrow><mn>2</mn></msup><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>1</mn><mo>)</mo></mrow></mrow></math>]]></maths><maths num="0002"><![CDATA[<math><mrow><msub><mi>V</mi><mi>ij</mi></msub><mo>=</mo><mi>E</mi><mrow><mo>(</mo><msub><mrow><mn>2</mn><mi>a</mi></mrow><mi>ij</mi></msub><mo>,</mo><msubsup><mi>r</mi><mi>ij</mi><mi>a</mi></msubsup><mo>)</mo></mrow><mo>=</mo><msup><mi>g</mi><msub><mrow><mn>2</mn><mi>a</mi></mrow><mi>ij</mi></msub></msup><mo>&CenterDot;</mo><msup><mrow><mo>(</mo><msubsup><mi>r</mi><mi>ij</mi><mi>a</mi></msubsup><mo>)</mo></mrow><mi>n</mi></msup><msup><mrow><mi>mod</mi><mi>n</mi></mrow><mn>2</mn></msup><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>2</mn><mo>)</mo></mrow></mrow></math>]]></maths>其中,U<sub>ij</sub>和V<sub>ij</sub>是两组加密值,<img file="FSA00000322440900013.GIF" wi="47" he="70" />是一组和人脸特征向量维数相同的随机数,且<img file="FSA00000322440900014.GIF" wi="62" he="46" />1≤i≤M,<img file="FSA00000322440900015.GIF" wi="64" he="49" />1≤j≤N;c.将M个用户的身份信息和人脸特征的加密值通过应用服务器的数据转发存储在数据库服务器中;认证阶段包括:d.匿名用户在客户端进行登录,客户端按照与所述步骤a相同的方法获取匿名用户的人脸特征向量B:(b<sub>1</sub>,b<sub>2</sub>,…b<sub>j</sub>…,b<sub>N</sub>),j=1,2…N,b<sub>j</sub>是匿名用户的人脸特征向量的第j个特征值;e.使用所述公钥(n,g)对该用户的人脸特征进行加密,根据公式(3)计算W<sub>j</sub>,j=1,2L N:<maths num="0003"><![CDATA[<math><mrow><msub><mi>W</mi><mi>j</mi></msub><mo>=</mo><mi>E</mi><mrow><mo>(</mo><msubsup><mi>b</mi><mi>j</mi><mn>2</mn></msubsup><mo>,</mo><msubsup><mi>r</mi><mi>j</mi><mi>b</mi></msubsup><mo>)</mo></mrow><mo>=</mo><msup><mi>g</mi><msubsup><mi>b</mi><mi>j</mi><mn>2</mn></msubsup></msup><mo>&CenterDot;</mo><msup><mrow><mo>(</mo><msubsup><mi>r</mi><mi>j</mi><mi>b</mi></msubsup><mo>)</mo></mrow><mi>n</mi></msup><msup><mrow><mi>mod</mi><mi>n</mi></mrow><mn>2</mn></msup><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>3</mn><mo>)</mo></mrow></mrow></math>]]></maths>其中,W<sub>j</sub>是一组加密值,<img file="FSA00000322440900017.GIF" wi="47" he="80" />是一组和人脸特征个数相同且不同于<img file="FSA00000322440900018.GIF" wi="48" he="70" />的随机数;f.将该匿名用户人脸特征的加密值通过应用服务器的数据转发子模块输出到数据库服务器中与在注册阶段存储在数据库服务器中的M个用户人脸特征的加密值按照公式(4)计算加密域距离P<sub>i</sub>,i=1,2L M:<maths num="0004"><![CDATA[<math><mrow><msub><mi>P</mi><mi>i</mi></msub><mo>=</mo><munderover><mi>&Pi;</mi><mrow><mi>j</mi><mo>=</mo><mn>1</mn></mrow><mrow><mi>j</mi><mo>=</mo><mi>N</mi></mrow></munderover><msub><mi>U</mi><mi>ij</mi></msub><msub><mi>W</mi><mi>j</mi></msub><msup><msub><mi>V</mi><mi>ij</mi></msub><mrow><mi>n</mi><mo>-</mo><msub><mi>b</mi><mi>j</mi></msub></mrow></msup><msup><mrow><mi>mod</mi><mi>n</mi></mrow><mn>2</mn></msup><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>4</mn><mo>)</mo></mrow></mrow></math>]]></maths>g.应用服务器的认证子模块利用私钥(λ,μ)通过公式(5),(6)对M个加密值进行解密,得到M个欧氏距离d<sub>i</sub>(A<sub>i</sub>,B),i=1,2L M:<maths num="0005"><![CDATA[<math><mrow><msub><mi>D</mi><mi>i</mi></msub><mrow><mo>(</mo><msub><mi>P</mi><mi>i</mi></msub><mo>)</mo></mrow><mo>=</mo><mfrac><mrow><mrow><mo>(</mo><msup><msub><mi>P</mi><mi>i</mi></msub><mi>&lambda;</mi></msup><msup><mrow><mi>mod</mi><mi>n</mi></mrow><mn>2</mn></msup><mo>-</mo><mn>1</mn><mo>)</mo></mrow><mo>*</mo><mi>&mu;</mi></mrow><mi>n</mi></mfrac><mi>mod</mi><mi>n</mi><mo>,</mo><mi>i</mi><mo>=</mo><mn>1,2</mn><mo>,</mo><mi>LM</mi><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>5</mn><mo>)</mo></mrow></mrow></math>]]></maths>d<sub>i</sub>(A<sub>i</sub>,B)=(D<sub>i</sub>(P<sub>i</sub>))<sup>1/2</sup>                    (6)h.若其中的最小欧氏距离小于设定阈值,则认为该用户通过身份认证,允许进入系统,否则,认为该用户没有通过身份认证,用户登录系统失败,并将是否成功登录系统的信息反馈到客户端的登录子模块。
地址 100124 北京市朝阳区平乐园100号