CN105447361B - 加密和相似性度量的方法、终端及服务器 - Google Patents

加密和相似性度量的方法、终端及服务器 Download PDF

Info

Publication number
CN105447361B
CN105447361B CN201410428736.9A CN201410428736A CN105447361B CN 105447361 B CN105447361 B CN 105447361B CN 201410428736 A CN201410428736 A CN 201410428736A CN 105447361 B CN105447361 B CN 105447361B
Authority
CN
China
Prior art keywords
ciphertext
plaintext
homomorphic
server
space
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201410428736.9A
Other languages
English (en)
Other versions
CN105447361A (zh
Inventor
杨浩淼
汤殿华
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
University of Electronic Science and Technology of China
Original Assignee
Huawei Technologies Co Ltd
University of Electronic Science and Technology of China
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd, University of Electronic Science and Technology of China filed Critical Huawei Technologies Co Ltd
Priority to CN201410428736.9A priority Critical patent/CN105447361B/zh
Publication of CN105447361A publication Critical patent/CN105447361A/zh
Application granted granted Critical
Publication of CN105447361B publication Critical patent/CN105447361B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明实施例提供了一种加密和相似性度量的方法。加密方法包括:终端接收用户输入的包括l个分量的生物特征向量。将生物特征向量的l个分量分别编码为l个明文子空间上的l个明文分量,l个明文子空间为将明文空间分解后的子空间。采用CRT,将l个明文分量打包为明文空间上的明文。采用同态加密方法,利用公钥将明文空间上的明文加密为密文空间上的密文。将密文发送至第二服务器,以便于第二服务器将密文与预存储的另一密文进行相似性度量。本发明实施例在加密的过程中,通过将生物特征向量的分量编码为明文子空间的明文分量,并对明文分量进行打包,这样只需对打包后的明文进行一次加密得到一个密文,能够节省加密的时间,减少通信量,进而能够提高效率。

Description

加密和相似性度量的方法、终端及服务器
技术领域
本发明实施例涉及安全技术领域,并且更具体地,涉及一种加密和相似性度量的方法、终端及服务器。
背景技术
无论基于生物特征的认证,还是在社交网络中的群体挖掘等环境,常常需要用到相似性度量。特别的,考虑到在外包计算中,数据在第三方系统中如何存储对用户来说是不透明的。这需要以用户为中心(user-centric)的数据保护机制,而非传统上的以服务器为中心的集中保护。因此,相似性度量必须是隐私保护的。隐私保护的相似性度量一般有两个应用场景:基于生物特征的认证中的内积相似性和社交网络中群体挖掘的余弦相似性。
基于生物特征的认证是通过用户的生物特征,例如指纹、虹膜、DNA等来识别用户的身份。首先用户录入其生物特征作为模板,当用户要登录系统,需要提供其生物特征和模板进行比对,如果足够相似,则用户通过系统的认证。另一方面,用户的生物特征又事关用户的隐私,需要对其保护。
具体来说,通过用户注册时的模板特征向量V=(V1,V2,...,Vl)和用户认证时的生物特征向量W=(W1,W2,...,Wl)中的各个坐标尽可能多的匹配,来返回两个向量的相似性分数。一种最常用的方法是计算两个向量的内积内积越大,相似性越高。为了保护用户的隐私,向量V和向量W都应该加密。然而加密限制了数据的使用,服务器很难采用传统的加密方法来安全计算内积。
全同态加密(Fully Homomorphic Encryption,FHE)能够在不解密的情况下直接基于密文计算。于是一种可能的解决思路是使用FHE方法来安全地计算两个密文向量内积:<V′,W′>。其中,V′是对V的加密,W′是对W的加密。
社会性网络中普遍存在群体现象,可以把网络结构中连接紧密的节点集命名为群体,类似于“好友圈”,群体与群体之间通过关键节点互联被称为稀疏网络。社交网络中群体挖掘主要基于相似性计算。相似性计算就是计算用户之间的相似情况,依靠计算每两个用户之间的相似性来构建网络拓扑结构,将大型网络社区分割成一个个具有关联性的小型的群体。一种计算相似性的常用方法是采用的余弦相似性来度量。
具体地,将社交网络建模为图,图中的顶点代表用户,顶点之间的连线代表用户之间的相似性,这个相似性的度量是通过计算每两个用户的属性集 V=(V1,V2,...,Vl)和W=(W1,W2,...,Wl)的余弦来完成,余弦的计算为:
cos(V,W)=<V,W>/(||V||·||W||),
其中||V||为向量V的模,||W||为向量W的模。为了寻找相似的顶点集,可以采用阀值为0.95的余弦值对原网络拓扑图进行修正,重构原拓扑图,得到属性值相似的群体,从而完成了社交网络中的群体挖掘。同样在这个过程中,为了保护用户的隐私,余弦相似性是利用FHE对加密后的属性集V′和W′进行同态计算得到的。
目前,全同态加密的构造有基于理想格构造、基于整数构造、基于格构造和基于数论研究单元(Number Theory Research Unit,NTRU)构造。但是,目前的全同态加密的构造的运算速度慢,导致实现的效率低。
发明内容
本发明实施例提供一种加密和相似性度量的方法、终端及服务器,运算速度快,进而能够提高效率。
第一方面,提供了一种加密的方法,所述方法包括:
终端接收用户输入的生物特征向量,其中,所述生物特征向量包括l个分量,所述l为正整数;
所述终端将所述生物特征向量的所述l个分量分别编码为l个明文子空间上的l个明文分量,其中,所述l个明文子空间为将明文空间分解后的子空间,所述明文空间是从第一服务器接收的,且所述明文空间为 为整系数多项式,f(x)为分圆多项式;
所述终端采用中国剩余定理CRT,将所述l个明文子空间上的所述l个明文分量打包为所述明文空间上的明文;
所述终端采用同态加密方法,利用公钥将所述明文空间上的明文加密为密文空间上的密文,其中,所述公钥和所述密文空间是从所述第一服务器接收的,且所述密文空间为q为奇素数;
所述终端将所述密文发送至第二服务器,以便于所述第二服务器将所述密文与预存储的另一密文进行相似性度量。
结合第一方面,在第一方面的第一种可能的实现方式中,所述生物特征向量的所述l个分量表示为W1,W2,...,Wl,其中,i=1,2,...,l,为整数域;
所述生物特征向量的分量Wi编码后在对应的明文子空间上的明文分量表示为mi(x);
所述将所述生物特征向量的所述l个分量分别编码为l个明文子空间上的 l个明文分量,包括:
将Wi转换为二进制形式其中,j=0,1,...,d-1, d=n/l,n为f(x)的次数;
确定所述明文分量mi(x)为
结合第一方面或者第一方面的第一种可能的实现方式,在第一方面的第二种可能的实现方式中,所述分圆多项式f(x)=xn+1,且log2n为整数。
第二方面,提供了一种相似性度量的方法,所述方法在密文空间执行,其中,为整系数多项式,f(x)为分圆多项式,q为奇素数,所述方法包括:
第二服务器从终端接收第一密文,所述第一密文用于与预存储的第二密文进行相似性度量,其中,所述第一密文与所述第二密文的维度相等;
所述第二服务器根据所述第一密文和所述第二密文,采用同态乘,调用N 次自同构映射和N次同态加,得到第三密文,其中,N为正整数且N与所述维度有关;
所述第二服务器将所述第三密文发送至第一服务器,以使得所述第一服务器根据所述第三密文确定第一明文和第二明文的相似度值,其中,所述第一明文为所述第一密文对应的明文,所述第二明文为所述第二密文对应的明文。
结合第二方面,在第二方面的第一种可能的实现方式中,所述根据所述第一密文和所述第二密文,采用同态乘,调用N次自同构映射和N次同态加,得到第三密文,包括:
计算所述第一密文和所述第二密文的同态乘;
对所述第一密文和所述第二密文的同态乘的结果调用N次自同构映射和 N次同态加,得到所述第三密文。
结合第二方面,在第二方面的第二种可能的实现方式中,所述根据所述第一密文和所述第二密文,采用同态乘,调用N次自同构映射和N次同态加,得到第三密文,包括:
计算所述第一密文和所述第一密文的同态乘;
对所述第一密文和所述第一密文的同态乘的结果调用N次自同构映射和 N次同态加,得到第四密文;
计算所述第二密文和所述第二密文的同态乘;
对所述第二密文和所述第二密文的同态乘的结果调用N次自同构映射和 N次同态加,得到第五密文;
计算所述第一密文和所述第二密文的同态乘;
对所述第一密文和所述第二密文的同态乘的结果调用N次自同构映射和 N次同态加,得到第六密文;
计算所述第六密文和所述第六密文的同态乘,得到第七密文;
计算所述第四密文和所述第五密文的同态乘的逆元;
计算所述第七密文与所述逆元的同态乘,得到所述第三密文。
结合第二方面或者第二方面的第一种可能的实现方式或者第二方面的第二种可能的实现方式,在第二方面的第三种可能的实现方式中,所述密文空间对应的明文空间为所述维度为l,所述自同构映射为 表示上取整。
结合第二方面或者第二方面的第一种可能的实现方式或者第二方面的第二种可能的实现方式,在第二方面的第四种可能的实现方式中,所述分圆多项式f(x)=xn+1,且log2n为整数。
第三方面,提供了一种相似性度量的方法,所述方法包括:
服务器从终端接收第一密文,所述第一密文用于与预存储的第二密文进行相似性度量,其中,所述第一密文与所述第二密文的维度相等,所述第一密文与所述第二密文所在的密文空间为 为整系数多项式, f(x)为分圆多项式,q为奇素数;
所述服务器根据所述第一密文和所述第二密文,采用同态乘,调用N次自同构映射和N次同态加,得到第三密文,其中,N为正整数且N与所述维度有关;
所述服务器采用同态解密方法,利用私钥得到所述第三密文对应的明文空间的第三明文,其中,所述明文空间为
若所述第三明文大于或等于预设阈值,则第一明文和第二明文具有相似性;
若所述第三明文小于所述预设阈值,则第一明文和第二明文不具有相似性,
其中,所述第一明文为所述第一密文对应的明文,所述第二明文为所述第二密文对应的明文。
结合第三方面,在第三方面的第一种可能的实现方式中,所述维度为l,所述自同构映射为 表示上取整。
结合第三方面或者第三方面的第一种可能的实现方式,在第三方面的第二种可能的实现方式中,所述分圆多项式f(x)=xn+1,且log2n为整数。
第四方面,提供了一种相似性度量的方法,所述方法包括:
第一服务器接收第二服务器发送的第三密文,所述第三密文是对第一密文和第二密文进行相似性度量得到的,其中,所述第一密文、所述第二密文和所述第三密文所在的密文空间为 为整系数多项式,f(x) 为分圆多项式,q为奇素数;
所述第一服务器采用同态解密方法,利用私钥得到所述第三密文对应的明文空间的第三明文,其中,所述明文空间为
若所述第三明文大于或等于预设阈值,则第一明文和第二明文具有相似性;
若所述第三明文小于所述预设阈值,则第一明文和第二明文不具有相似性,
其中,所述第一明文为所述第一密文对应的明文,所述第二明文为所述第二密文对应的明文。
结合第四方面,在第四方面的第一种可能的实现方式中,所述分圆多项式f(x)=xn+1,且log2n为整数。
第五方面,提供了一种用于加密的终端,所述终端包括:
接收单元,用于接收用户输入的生物特征向量,其中,所述生物特征向量包括l个分量,所述l为正整数;
编码单元,用于将所述接收单元接收的所述生物特征向量的所述l个分量分别编码为l个明文子空间上的l个明文分量,其中,所述l个明文子空间为将明文空间分解后的子空间,所述明文空间是从第一服务器接收的,且所述明文空间为 为整系数多项式,f(x)为分圆多项式;
打包单元,用于采用中国剩余定理CRT,将所述编码单元编码后的所述 l个明文子空间上的所述l个明文分量打包为所述明文空间上的明文;
加密单元,用于采用同态加密方法,利用公钥将所述打包单元打包后的所述明文空间上的明文加密为密文空间上的密文,其中,所述公钥和所述密文空间是从所述第一服务器接收的,且所述密文空间为q为奇素数;
发送单元,用于将所述加密单元加密后的所述密文发送至第二服务器,以便于所述第二服务器将所述密文与预存储的另一密文进行相似性度量。
结合第五方面,在第五方面的第一种可能的实现方式中,所述生物特征向量的所述l个分量表示为W1,W2,...,Wl,其中,i=1,2,...,l,为整数域;
所述生物特征向量的分量Wi编码后在对应的明文子空间上的明文分量表示为mi(x);
所述编码单元,具体用于:
将Wi转换为二进制形式其中,j=0,1,...,d-1, d=n/l,n为f(x)的次数;
确定所述明文分量mi(x)为
结合第五方面或者第五方面的第一种可能的实现方式,在第五方面的第二种可能的实现方式中,所述分圆多项式f(x)=xn+1,且log2n为整数。
第六方面,提供了一种用于相似性度量的服务器,所述服务器包括:
接收单元,用于从终端接收第一密文,所述第一密文用于与预存储的第二密文进行相似性度量,其中,所述第一密文与所述第二密文的维度相等,所述第一密文与所述第二密文所在的密文空间为 为整系数多项式,f(x)为分圆多项式,q为奇素数;
计算单元,用于根据所述第一密文和所述第二密文,采用同态乘,调用N 次自同构映射和N次同态加,得到第三密文,其中,N为正整数且N与所述维度有关;
发送单元,用于将所述计算单元得到的所述第三密文发送至另一服务器,以使得所述另一服务器根据所述第三密文确定第一明文和第二明文的相似度值,其中,所述第一明文为所述第一密文对应的明文,所述第二明文为所述第二密文对应的明文。
结合第六方面,在第六方面的第一种可能的实现方式中,所述计算单元,具体用于:
计算所述第一密文和所述第二密文的同态乘;
对所述第一密文和所述第二密文的同态乘的结果调用N次自同构映射和 N次同态加,得到所述第三密文。
结合第六方面,在第六方面的第二种可能的实现方式中,所述计算单元,具体用于:
计算所述第一密文和所述第一密文的同态乘;
对所述第一密文和所述第一密文的同态乘的结果调用N次自同构映射和 N次同态加,得到第四密文;
计算所述第二密文和所述第二密文的同态乘;
对所述第二密文和所述第二密文的同态乘的结果调用N次自同构映射和 N次同态加,得到第五密文;
计算所述第一密文和所述第二密文的同态乘;
对所述第一密文和所述第二密文的同态乘的结果调用N次自同构映射和 N次同态加,得到第六密文;
计算所述第六密文和所述第六密文的同态乘,得到第七密文;
计算所述第四密文和所述第五密文的同态乘的逆元;
计算所述第七密文与所述逆元的同态乘,得到所述第三密文。
结合第六方面或者上述第六方面任一种可能的实现方式,在第六方面的第三种可能的实现方式中,所述密文空间对应的明文空间为所述维度为l,所述自同构映射为 表示上取整。
结合第六方面或者上述第六方面任一种可能的实现方式,在第六方面的第四种可能的实现方式中,所述分圆多项式f(x)=xn+1,且log2n为整数。
第七方面,提供了一种用于相似性度量的服务器,所述服务器包括:
接收单元,用于从终端接收第一密文,所述第一密文用于与预存储的第二密文进行相似性度量,其中,所述第一密文与所述第二密文的维度相等,所述第一密文与所述第二密文所在的密文空间为 为整系数多项式,f(x)为分圆多项式,q为奇素数;
计算单元,用于根据所述第一密文和所述第二密文,采用同态乘,调用N 次自同构映射和N次同态加,得到第三密文,其中,N为正整数且N与所述维度有关;
解密单元,用于采用同态解密方法,利用私钥得到所述第三密文对应的明文空间的第三明文,其中,所述明文空间为
判断单元,用于若所述第三明文大于或等于预设阈值,则第一明文和第二明文具有相似性;
若所述第三明文小于所述预设阈值,则第一明文和第二明文不具有相似性,
其中,所述第一明文为所述第一密文对应的明文,所述第二明文为所述第二密文对应的明文。
结合第七方面,在第七方面的第一种可能的实现方式中,所述维度为l,所述自同构映射为 表示上取整。
结合第七方面或者第七方面的第一种可能的实现方式,在第七方面的第二种可能的实现方式中,所述分圆多项式f(x)=xn+1,且log2n为整数。
第八方面,提供了一种用于相似性度量的服务器,所述服务器包括:
接收单元,用于接收另一服务器发送的第三密文,所述第三密文是对第一密文和第二密文进行相似性度量得到的,其中,所述第一密文、所述第二密文和所述第三密文所在的密文空间为 为整系数多项式, f(x)为分圆多项式,q为奇素数;
解密单元,用于采用同态解密方法,利用私钥得到所述第三密文对应的明文空间的第三明文,其中,所述明文空间为
判断单元,用于若所述第三明文大于或等于预设阈值,则第一明文和第二明文具有相似性;
若所述第三明文小于所述预设阈值,则第一明文和第二明文不具有相似性,
其中,所述第一明文为所述第一密文对应的明文,所述第二明文为所述第二密文对应的明文。
结合第八方面,在第八方面的第一种可能的实现方式中,所述分圆多项式f(x)=xn+1,且log2n为整数。
本发明实施例中,使用RLWE的同态加密方案,利用打包技术,将多维向量中的所有分量进行打包后再进行加密,只需传输打包加密后的一个密文,能够减少通信量。随后同态计算过程对应于SIMD和自同构以并行的方式进行,这样进行的相似性度量的过程具有低计算量,运算速度快,实现的效率高。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是隐私保护的相似性度量的示意图。
图2是本发明一个实施例的加密的方法。
图3是本发明一个实施例的相似性度量的方法。
图4是本发明另一个实施例的相似性度量的方法。
图5是本发明另一个实施例的相似性度量的方法。
图6是本发明一个实施例的用于加密的终端的框图。
图7是本发明一个实施例的用于相似性度量的服务器的框图。
图8是本发明另一个实施例的用于相似性度量的服务器的框图。
图9是本发明另一个实施例的用于相似性度量的服务器的框图。
图10是本发明另一个实施例的终端的框图。
图11是本发明另一个实施例的服务器的框图。
图12是本发明另一个实施例的服务器的框图。
图13是本发明另一个实施例的服务器的框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1是隐私保护的相似性度量的示意图。图1中示出了用户101、认证者102和代理服务器103。可以理解,代理服务器103为第三方系统,并且该代理服务器103是半诚实的,虽然它可以基于密文同态计算内积相似性或者余弦相似性,但并不能侵犯用户101的隐私。
例如,对于基于生物特征的认证过程可以为:
11,认证者102进行系统建立。具体地,认证者102发布FHE方案的公钥。
12,用户注册。具体地,用户101输入模板特征向量V,将该模板特征向量V用FHE方案加密为V′,并将V′注册至代理服务器103。
13,用户认证请求。具体地,用户101输入生物特征向量W,将该生物特征向量W用FHE方案加密为W′,并将W′注册至代理服务器103。
14,代理服务器103进行同态计算。具体地,代理服务器103可以同态计算V′和W′的相似性。
15,代理服务器103将相似性分数返回至认证者102,认证者102将相似性分数进行解密,并判断该解密后的分数是否大于某个预设的阈值。如果大于,则用户通过认证。
应注意,本发明实施例中,用户可以是用户设备、接入终端等。认证者也可以是一种接入终端等。接入终端也可以称为系统、用户单元、用户站、移动站、移动台、远方站、远程终端、移动设备、用户终端、终端、无线通信设备、用户代理、用户装置或用户设备(UserEquipment,UE)。接入终端可以是蜂窝电话、无绳电话、会话启动协议(Session InitiationProtocol,SIP) 电话、无线本地环路(Wireless Local Loop,WLL)站、个人数字处理(Personal Digital Assistant,PDA)、具有无线通信功能的手持设备、计算设备或连接到无线调制解调器的其它处理设备。用户可以是指允许用户接入或运行的服务器或数据中心等。本发明对此不作限定。
图2是本发明一个实施例的加密的方法。包括:
201,终端接收用户输入的生物特征向量,其中,所述生物特征向量包括 l个分量,所述l为正整数。
202,所述终端将所述生物特征向量的所述l个分量分别编码为l个明文子空间上的l个明文分量,其中,所述l个明文子空间为将明文空间分解后的子空间,所述明文空间是从第一服务器接收的,且所述明文空间为 为整系数多项式,f(x)为分圆多项式。
203,所述终端采用中国剩余定理CRT,将所述l个明文子空间上的所述 l个明文分量打包为所述明文空间上的明文。
204,所述终端采用同态加密方法,利用公钥将所述明文空间上的明文加密为密文空间上的密文,其中,所述公钥和所述密文空间是从所述第一服务器接收的,且所述密文空间为q为奇素数。
205,所述终端将所述密文发送至第二服务器,以便于所述第二服务器将所述密文与预存储的另一密文进行相似性度量。
本发明实施例在加密的过程中,通过将生物特征向量的分量编码为明文子空间的明文分量,并对明文子空间的明文分量进行打包,这样只需对打包后的明文进行一次加密得到一个密文,能够节省加密的时间,减少通信量,进而能够提高效率。
本发明实施例中,假设分圆多项式(cyclotomic polynomial)f(x)的次数(degree)为n,可理解,分圆多项式f(x)为n次首一不可约多项式。
可选地,本发明实施例中,分圆多项式f(x)=xn+1,且log2n为整数。其中xn+1虽然在上不可约,但是在上是可约的,并且其中n为2的方幂,也即
应注意,本发明实施例中,分圆多项式f(x)可以为其他的形式,本发明对此不作限定。
具体地,xp-1在复数域有个本原p次单位根,其中为欧拉函数。假设个本原单位根为则Фp(x)称为分圆多项式。并且,已经被证明,该分圆多项式Фp(x)为整系数多项式。给定p时,分圆多项式Фp(x)也是唯一的。例如,Ф3(x)=x2+x+1,Ф4(x)=x2+1,Ф12(x)=x4-x2+1。
本发明实施例中,分圆多项式f(x)可以为上述的选择合适p时的分圆多项式Фp(x),并且可以不是2的方幂。
可理解,本发明实施例中,为整系数多项式环。
可理解,本方法是一种基于环上的学习错误(Ring Learn with Error, RLWE)的同态加密方案的构造。基于RLWE构造的同态加密方案以稍微同态加密(somewhatHomomorphic Encryption,SHE)方案为基础。该SHE方案为多项式时间算法的六元组(SHE.Setup,SHE.KeyGen,SHE.Enc,SHE.Dec,SHE.Add,SHE.Mult),其中,SHE.Setup为稍微同态设计,SHE.KeyGen为稍微同态密钥生成,SHE.Enc为稍微同态加密,SHE.Dec为稍微同态解密, SHE.Add为稍微同态加,SHE.Mult为稍微同态乘。具体地,
SHE.Setup(1λ):输入安全参数λ,使得RLWE问题对已知格攻击是2λ级安全的。根据安全参数建立多项式环和离散高斯分布其中σ为标准差。
假设明文空间为密文空间为其中q为奇素数。
输出公共参数params=(q,n,χ)。
应注意,本发明后续实施例中,取t=2。也就是说,本发明实施例中的明文空间为
SHE.KeyGen(params):在分布χ上随机选择一个元素s←χ以作为私钥 (secretkey),然后在Rq上随机均匀选取一个元素a1←Rq,同时在分布χ选取一个差错e←χ,计算a0=-(a1s+2e)。
设置私钥sk=s,公钥(public key)pk=(a0,a1)。
应注意,本发明实施例中,形式a←A表示:如果A是一个集合,a←A表示在A中随机均匀选取一个元素a;如果A是一个分布,a←A表示在分布A随机抽样一个元素a;如果A表示一个算法,a←A表示运行算法A输出为a。
SHE.Enc(pk,m):给定消息m∈R2,在分布χ上随机选取元素u←χ和元素 r←χ,根据公钥pk=(a0,a1)计算密文为c0=a0u+m,c1=a1u+2r。
输出密文c=(c0,c1)。
输出
SHE.Add(c,c′):输入两个密文c,c′,输出这两个密文的和c+c′。
SHE.Mult(c,c′):输入两个密文c,c′,输出这两个密文的乘积c×c′。
进一步地,对SHE进行正确性分析。
将解密(decrypt)算法SHE.Dec看成是一个关于私钥s的线性函数gc(s),
其中,gc(s)中的加法和乘法都是在环Rq上的运算,将称为噪声。如果噪声尺寸满足再对该线性函数gc(s)模2,即gc(s)mod2,便可正确地恢复出消息m。
应注意,本发明实施例中,||·||表示范数。例如可以为无穷范数||·||,或者也可以为2-范数||·||2,或者也可以为其他形式的范数,本发明对此不作限定。
假设两个消息为m和m′,且m和m′的加密分别为c=(c0,c1),c′=(c′0,c′1)。以下将分析如何根据c和c′计算消息m+m′和m·m′的加密。
根据上述对解密算法的正确性分析可知:
对于同态加SHE.Add操作,将两个关于s的多项式相加,可以得到:
按照解密的计算形式,可以看出同态加之后的密文为cAdd=(c0+c′0,c1+c′1)。为了保证解密的正确性,噪声尺寸需要满足
应注意,SHE.Add操作中,当输入的两个密文c和c′的维度不相等时,可以将维度较小的密文用0进行填充,从而使得进行同态加运算的两个密文的维度相等。
对于同态乘SHE.Mult操作,将两个关于s的多项式相乘,可以得到:
可以看出,SHE.Mult操作的结果是一个关于s的二次多项式。可以看成密文为cMult=(c0c′0,c0c′1+c1c′0,c1c′1),且对应的私钥为
并且,还可以看出,经过一次同态乘之后,密文由两个环元素变为三个环元素。也就是说,随着同态乘的不断进行,密文的尺寸会成指数级增长。
为了保证解密的正确性,噪声尺寸需要满足e≤q/2,所以该方案的评估能力可用下式表示:
其中,n为多项式环中的n,且n为2的方幂,q为模数,σ为高斯分布的标准差,D为同态乘的数目,A为同态加的数目。
可理解,本发明实施例中,在201之前,终端从第一服务器接收明文空间、密文空间和公钥。并且,第一服务器基于RLWE的同态加密方案确定明文空间和密文空间。
可选地,本发明实施例中,明文空间为密文空间为其中log2n为整数。
本发明实施例中,分圆多项式f(x)可以分解为f1(x),f2(x),...,fl(x)。其中, fi(x),i=1,...,l的次数为d=n/l。相应地,明文空间可以分解为其中的空间大小为2d-1。
例如,f(x)=xn+1。则满足xn+1=f1(x)f2(x)…fl(x)mod2。相应地,明文空间满足:
具体地,将xn+1进行分解时,首先可通过Φp(x)=xn+1和确定p,进而可取d为2在乘法群中的阶。进一步地,通过求得Φp(x)=xn+1生成的有限域GF(2d)的一个本原p次根可以计算得到其中,T={t1,t2,…,tl}代表商群
可理解,本发明实施例中,可将明文空间分解为l个明文子空间其中,fi(x),i=1,...,l的次数d=n/l。且即为202中的l个明文子空间。
这样,在明文空间的明文m(x),可以通过中国剩余定理 (ChineseRemainder Theorem,CRT)分解为对应l个明文子空间的m1(x),m2(x),...,ml(x)。其中m(x)有n个比特, mi(x),i=1,2,...,l有d个比特。相应地,在l个明文子空间的m1(x),m2(x),...,ml(x),也可以通过CRT打包为明文空间的明文 m(x)。
本发明实施例中,201中的生物特征向量表示为W,且所述生物特征向量的所述l个分量表示为W1,W2,...,Wl,其中,i=1,2,...,l,为整数域。
相应地,可将202中所述生物特征向量的分量Wi编码后在对应的明文子空间上的明文分量表示为mi(x)。那么,202可包括:将Wi转换为二进制形式其中,j=0,1,...,d-1,d=n/l,n为f(x)的次数;确定所述明文分量mi(x)为
可以理解,202是将整数域的Wi转换为明文子空间上分量mi(x)的过程,其中|Wi|<2d,i=1,...,l。并且,l个Wi与l个mi(x)与一一对应。
进一步地,可理解,203是将l个明文子空间上的 m1(x),m2(x),...,ml(x)打包为明文空间上的明文的过程。该明文表示为m(x)。
可选地,本发明实施例中,204中的同态加密方法可以为SHE.Enc,所述明文表示为m(x),所述密文表示为W′(x),所述公钥表示为pk。204可以为将SHE.Enc(pk,m(x))的结果作为W′(x)。具体地,可以用以下公式表示: W′(x)←SHE.Enc(pk,m(x))。
可选地,204中的同态加密方法可以为其他的支持打包运算的加密的方法,本发明对此不作限定。
可以理解,图2所示的方法是将W加密为W′(x)的过程。这样,在图2所示的方法中,对特征向量W进行加密的过程中,生成了一个密文W′(x)。并且,其中进行了一次CRT打包和一次加密,具有低通信量和低计算量。
具体地,假设一次CRT打包的时间为10.2s,一次加密的时间为83ms,那么,图2所示的加密过程的计算时间约为10.28s。
作为一个对比,基于理想格的FHE的加密的过程需进行一次加密和l次模乘运算。其加密过程的计算时间约为38s。
在相似性度量的场景中,图2所示的方法可以理解为图1中13,即205 可以理解为是将加密后的生物特征向量注册至第二服务器。那么相应地,可理解,终端可以为图1中用户101所在的终端,第一服务器可以为图1中认证者102所在的服务器,第二服务器可以为图1中的代理服务器103。
可理解,在相似性度量的场景中,205中的预存储的另一密文即加密后的模板特征向量。那么,在图2中的201之前,还可以包括:
接收用户输入的模板特征向量V,其中,所述模板特征向量V包括l个分量V1,V2,...,Vl。将所述模板特征向量V的所述l个分量Vi,i=1,2,...,l分别编码为l 个明文子空间上的l个明文分量m′i(x)。采用CRT,将所述l个明文子空间上的所述l个明文分量m′i(x)打包为所述明文空间上的明文m′(x)。采用同态加密方法,利用公钥将所述明文空间上的明文m′(x)加密为密文空间上的密文V′。将所述密文V′发送至第二服务器。
可理解,将模板特征向量V加密为V′的过程,与图2中的将生物特征向量W加密为W′的过程类似,为避免重复,这里不再赘述。
在相似性度量的场景中,将模板特征向量V加密为V′的过程可以理解为图1中12。
图3是本发明一个实施例的相似性度量的方法。图3所示的方法在密文空间执行,其中,为整系数多项式,f(x)为分圆多项式,q 为奇素数,该方法包括:
301,第二服务器从终端接收第一密文,所述第一密文用于与预存储的第二密文进行相似性度量,其中,所述第一密文与所述第二密文的维度相等。
302,所述第二服务器根据所述第一密文和所述第二密文,采用同态乘,调用N次自同构映射和N次同态加,得到第三密文,其中,N为正整数且N与所述维度有关。
303,所述第二服务器将所述第三密文发送至第一服务器,以使得所述第一服务器根据所述第三密文确定第一明文和第二明文的相似度值,其中,所述第一明文为所述第一密文对应的明文,所述第二明文为所述第二密文对应的明文。
本发明实施例中,通过对两个密文的同态乘和自同构映射,能够对应至明文空间的内积运算或余弦运算,从而能够便于进行相似性度量。并且,本相似性度量的方法的计算量小,运算速度快,实现的效率高。
在相似性度量的场景中,本发明实施例中,301中的第一密文可以是图2 的实施例中将生物特征向量加密后的密文W′(x)。相应地,301中预存储的第二密文为将模板特征向量加密后的密文V′(x)。
如前所述,本发明实施例中,对应的明文空间为
其中,f(x)为分圆多项式。可选地,本发明实施例中,分圆多项式 f(x)=xn+1,且log2n为整数。
可将明文空间分解为l个明文子空间
相应地,在明文空间上的一个明文m(x)可分解为l个明文子空间上的m1(x),m2(x),...,ml(x)。在明文空间上的另一个明文m′(x)可分解为l个明文子空间上的 m′1(x),m′2(x),...,m′l(x)。并且假设一个明文m(x)的密文为c(x),假设另一个明文 m′(x)的密文为c′(x)。
那么,对密文c(x)和c′(x)的同态加操作SHE.Add(c(x),c′(x)),能够对应于在明文子空间的操作为:
m1(x)+m′1(x),m2(x)+m′2(x),...ml(x)+m′l(x)。
对密文c(x)和c′(x)的同态乘操作SHE.Mult(c(x),c′(x)),能够对应于在明文子空间的操作为:
m1(x)×m′1(x)modf1(x),m2(x)×m′2(x)modf2(x),...ml(x)×m′l(x)modfl(x)。
因此,密文空间的同态操作可以看成是在明文子空间使用单指令多数据流(Simple Instruction Multiple Data,SIMD)并行执行的。
本发明实施例中,第一密文表示为W′(x),第二密文表示为V′(x)。
可选地,302中的同态乘可以为稍微同态乘SHE.Mult(V′(x),W′(x))。并且,该同态乘对应于明文子空间的操作为:
V1(x)×W1(x)modf1(x),V2(x)×W2(x)modf2(x),...Vl(x)×Wl(x)modfl(x)。
其中,W=(W1,W2,...,Wl)为所述第一密文W′(x)对应的明文,V=(V1,V2...,Vl) 为所述第二密文V′(x)对应的明文,如表一所示。
表一
可选地,本发明实施例中,302中的同态乘也可以为其他的支持打包运算的同态乘,本发明对此不作限定。
这样,本发明实施例中的操作是在打包加密后的密文上进行的,能够大大地减少计算量。
本发明实施例中,对密文进行自同构映射能够使对应在各个明文子空间的明文发生置换。具体来说,假设密文为c(x),对应在l个明文子空间的明文分别为m1(x),m2(x),...,ml(x)。那么,对密文经过自同构映射能够使对应的明文子空间循环移动i位。例如,i=1时,对密文进行自同构映射后,对应在各个明文子空间的明文置换为m2(x),m3(x)...,ml(x),m1(x)。也就是说,明文子空间的明文循环移动i=1位。
具体地:
首先密文c(x)通过替换为c(xk)。由于密文空间为因此需要对c(xk)进行模xn+1的操作。
根据前述的同态加密方案,有m(x)+2e(x)=c0(x)+c1(x)s(x),其中密文c(x)为二元组(c0(x),c1(x)),e(x)为噪声,s(x)为私钥。通过可替换为 m(xk)+2e(xk)=c0(xk)+c1(xk)s(xk),也就是说,c(xk)=(c0(xk),c1(xk))为明文m(xk)在私钥s(xk)的条件下的密文。
利用私钥更新的技巧,私钥能从s(xk)更新到s(x)。那么,可以理解为,c(xk) 为明文m(xk)在私钥s(x)的条件下的密文。因此,通过自同构映射在私钥s(x)不变的条件下,相应的明文m(x)也从变为m(xk)。
当k=2i时,根据弗罗伯尼(Frobenius)映射有相对于m(x),对应的明文子空间移动i位。
举例来说,假设m(x)=x4+x2+x+1,
对于i=1,m(x)2=(x4+x2+x+1)2=(x4)2+(x2)2+x2+12=m(x2)mod2,这是由于m(x)是在R2中,系数为2的项进行模2之后为0。
对于i>1,类似地也有成立。
因此,自同构映射能够使得对应的明文子空间循环移动i位。
基于上述描述,可理解,本发明实施例中,302中的同态乘可以看作是在明文子空间的基于SIMD的并行化操作。302中的自同构映射可以看作是在明文子空间的明文的置换操作。
在进行同态运算时,相应地明文子空间中的明文并行地进行运算。但是,只有互相对应的明文子空间中的明文才能进行运算。
例如,假设明文m(x)在明文子空间为m1(x),m2(x),...,ml(x),明文m′(x)在明文子空间为m′1(x),m′2(x),...,m′l(x)。通过SIMD,只有对应的明文子空间的明文能进行运算。
同态加:m1(x)+m′1(x),m2(x)+m′2(x),...ml(x)+m′l(x),
同态乘:m1(x)×m′1(x)modf1(x),m2(x)×m′2(x)modf2(x),...ml(x)×m′l(x)modfl(x),
而使用自同构映射,能够使各个明文子空间的明文发生置换,从而能够使原本不对应的明文子空间的明文进行运算。
例如,m1(x)+m′2(x),m2(x)+m′3(x),...ml(x)+m′1(x),或者,
m1(x)×m′3(x)modf1(x),m2(x)×m′4(x)modf2(x),...ml(x)×m′2(x)modfl(x)等等。
本发明实施例中,为了对所有明文子空间的明文进行求和运算,采用自同构映射将所有明文子空间的明文都移动到第一个明文子空间,然后再相加。
例如,假设明文m(x)在明文子空间为m1(x),m2(x),...,ml(x),为了计算将m2(x),m3(x),...,ml(x)都移到第一个明文子空间再相加。
可选地,作为一个实施例,
302可以为:计算所述第一密文和所述第二密文的同态乘;对所述第一密文和所述第二密文的同态乘的结果调用N次自同构映射和N次同态加,得到所述第三密文。
本发明实施例中,在302中,第三密文表示为c(x),该第三密文对应的在明文空间的明文表示为m(x),并且m(x)在对应的明文子空间中可分解为明文mi(x),i=1,2,...,l。
那么,可理解,第三密文c(x)对应的明文为且 mi(x)=Vi(x)Wi(x)。其中,Wi(x)为所述第一密文W′(x)对应的明文子空间中的明文,Vi(x)为所述第二密文V′(x)对应的明文子空间中的明文。本发明实施例是为了计算明文空间的在密文空间采用自同构映射。
可选地,作为一个实施例,302中,N=l-1。自同构映射为 j=0,1,...,l-1。其中l为维度。
具体地,采用N=l-1自同构映射可如表二所示。
表二
可选地,作为另一个实施例,302中,自同构映射为 其中l为维度,表示上取整。
具体地,采用次自同构映射和次同态加是交替进行的,如表三所示。
表三
举例来说,假设l=8,那么本实施例进行次自同构映射和3次同态加运算。
具体地,初始c″(x)←c(x)对应的明文子空间为:
m1(x),m2(x),m3(x),m4(x),m5(x),m6(x),m7(x),m8(x)。
进行第一次自同构映射对应的明文子空间为:
m2(x),m3(x),m4(x),m5(x),m6(x),m7(x),m8(x),m1(x);
进行第一次同态加对应的明文子空间为:
m1(x)+m2(x),m2(x)+m3(x),m3(x)+m4(x),...,m7(x)+m8(x),m8(x)+m1(x)。
进行第二次自同构映射对应的明文子空间为:
m3(x)+m4(x),m4(x)+m5(x),...,m1(x)+m2(x),m2(x)+m3(x);
进行第二次同态加对应的明文子空间为:
m1(x)+m2(x)+m3(x)+m4(x),m2(x)+m3(x)+m4(x)+m5(x),...,m8(x)+m1(x)+m2(x)+m3(x)。
进行第三次自同构映射对应的明文子空间为:
m5(x)+m6(x)+m7(x)+m8(x),m6(x)+m7(x)+m4(x)+m1(x),...,m4(x)+m5(x)+m6(x)+m7(x);
进行第三次同态加对应的明文子空间为:
m1(x)+m2(x)+m3(x)+m4(x)+m5(x)+m6(x)+m7(x)+m8(x),...。
可理解,本实施例中,每一次自同构映射都是在前一次同态加的基础上进行的,这样类似于一种二叉树的方式,能够较少自同构映射和同态加的次数,从而能够减小计算量。
这样,在本实施例中,对第一密文W′(x)和第二密文V′(x)计算内积的过程中,进行了一次同态乘、次自同构映射和次同态加加密,具有低计算量。
具体地,以l=4096为例,一次同态乘的时间约为15ms,与同态乘相比,自同构映射和同态加的时间几乎可以忽略,那么,本实施例所示的过程的计算时间约为15ms。
作为一个对比,基于整数的FHE的过程需进行l次同态乘和l-1次同态加。由于基于整数的FHE中一次同态乘的时间约为720ms,因此其过程的计算时间约为49分钟。
可理解,本实施例中,对第一密文W′(x)和第二密文V′(x)的同态乘的结果调用N次自同构映射和N次同态加,得到第三密文,能够用于对第一明文W(x) 和第二明文V(x)进行内积相似性度量。其中,第一明文W(x)为第一密文W′(x)对应的明文,第二明文V(x)为第二密文V′(x)对应的明文。
可选地,作为另一个实施例,
302可以为:计算所述第一密文和所述第一密文的同态乘;
对所述第一密文和所述第一密文的同态乘的结果调用N次自同构映射和 N次同态加,得到第四密文;
计算所述第二密文和所述第二密文的同态乘;
对所述第二密文和所述第二密文的同态乘的结果调用N次自同构映射和 N次同态加,得到第五密文;
计算所述第一密文和所述第二密文的同态乘;
对所述第一密文和所述第二密文的同态乘的结果调用N次自同构映射和 N次同态加,得到第六密文;
计算所述第六密文和所述第六密文的同态乘,得到第七密文;
计算所述第四密文和所述第五密文的同态乘的逆元;
计算所述第七密文与所述逆元的同态乘,得到所述第三密文。
可理解,本实施例能够用于对第一明文W(x)和第二明文V(x)进行余弦相似性度量。其中,第一明文W(x)为第一密文W′(x)对应的明文,第二明文V(x)为第二密文V′(x)对应的明文。并且,第三密文对应的明文为(cos(V(x),W(x)))2
具体地,余弦相似性公式为:
可理解,第四密文、第五密文和第六密文分别对应的明文为<W,W>、<V,V> 和<V,W>。
本实施例中,假设第四密文和第五密文的同态乘表示为c2(x),那么可理解第四密文和第五密文的同态乘的逆元为在密文空间的c2(x)的乘逆元,该乘逆元可表示为c2 -1(x)。例如,该乘逆元可以使用扩展欧几里得算法(Extended Euclidean algorithm)求得。
具体地,若在密文空间中的多项式a(x),满足 a(x)c2(x)=1mod(xn+1),则a(x)即为c2(x)的乘逆元,c2 -1(x)=a(x)。
可选地,本实施例中的同态乘可以为SHE.Mult,或者可以为其他的支持打包运算的同态乘,本发明对此不作限定。具体地,本实施例中的同态乘和自同构映射与前述实施例中的类似,为避免重复,这里不再赘述。
在相似性度量的场景中,图3所示的方法可以理解为图1中的14。即图 3中的第二服务器可以理解为图1中的代理服务器103,第一服务器可以理解为图1中的认证者102所在的服务器,终端可以理解为图1中的用户101所在的终端。
图4是本发明另一个实施例的相似性度量的方法。图4所示的方法包括:
401,第一服务器接收第二服务器发送的第三密文,所述第三密文是对第一密文和第二密文进行相似性度量得到的,其中,所述第一密文、所述第二密文和所述第三密文所在的密文空间为 为整系数多项式, f(x)为分圆多项式,q为奇素数。
402,所述第一服务器采用同态解密方法,利用私钥得到所述第三密文对应的明文空间的第三明文,其中,所述明文空间为
403,若所述第三明文大于或等于预设阈值,则第一明文和第二明文具有相似性;若所述第三明文小于所述预设阈值,则第一明文和第二明文不具有相似性,其中,所述第一明文为所述第一密文对应的明文,所述第二明文为所述第二密文对应的明文。
这样,本发明实施例中,通过对同态计算的结果进行解密,可得到两个向量的相似性度量值。并且,本相似性度量的方法的计算量小,运算速度快,实现的效率高。
可理解,本发明实施例中,401中的第三密文可以为前述实施例图3中的第三密文。
可选地,402中的同态解密方法可以为稍微同态解密方法SHE.Dec,所述第三密文表示为c(x),所述第三明文表示为m(x),所述私钥表示为sk。具体地,402包括:将SHE.Dec(sk,c(x))的结果作为m(x)。可用下式表示: m(x)←SHE.Dec(sk,c(x))。
可选地,402中的同态解密方法也可以为其他的支持打包运算的同态解密方法,本发明对此不作限定。
本发明实施例中,第三明文表示为m(x),403可以理解将第三明文m(x=2) 与预设阈值进行比较。即,在403中,先计算m(x=2);或者是,取x=2,计算m(x)。
应注意,本发明实施例中,预设阈值是根据对相似性度量的要求所设定的,例如,该预设阈值可以等于0.9025。本发明实施例对该预设阈值的大小不作限定。
在相似性度量的场景中,图4所示的方法可以理解为图1中的15。即图 3中的第二服务器可以理解为图1中的代理服务器103,第一服务器可以理解为图1中的认证者102所在的服务器。
可理解,在401之前,第一服务器将明文空间、密文空间和公钥发送至终端,以便于终端利用公钥将明文空间的明文加密为密文空间的密文。并且,在401之前,第一服务器将密文空间发送至第二服务器,以便于第二服务器在密文空间进行同态计算。其中,明文空间为密文空间为其中,f(x)为分圆多项式。可选地,本发明实施例中,分圆多项式f(x)=xn+1,且log2n为整数。
在相似性度量的场景中,具体地,在403中,若所述m(2)大于或等于预设阈值,则认证通过;若所述m(2)小于所述预设阈值,则认证不通过。
图5是本发明另一个实施例的相似性度量的方法。图5所示的方法包括:
501,服务器从终端接收第一密文,所述第一密文用于与预存储的第二密文进行相似性度量,其中,所述第一密文与所述第二密文的维度相等,所述第一密文与所述第二密文所在的密文空间为 为整系数多项式,f(x)为分圆多项式,q为奇素数。
502,所述服务器根据所述第一密文和所述第二密文,采用同态乘,调用 N次自同构映射和N次同态加,得到第三密文,其中,N为正整数且N与所述维度有关。
503,所述服务器采用同态解密方法,利用私钥得到所述第三密文对应的明文空间的第三明文,其中,所述明文空间为
504,若所述第三明文大于或等于预设阈值,则第一明文和第二明文具有相似性;若所述第三明文小于所述预设阈值,则第一明文和第二明文不具有相似性,其中,所述第一明文为所述第一密文对应的明文,所述第二明文为所述第二密文对应的明文。
本发明实施例中,通过对两个密文的同态乘和自同构映射,能够对应至明文空间的内积运算或余弦运算,从而能够便于进行相似性度量。并且,本相似性度量的方法的计算量小,运算速度快,实现的效率高。
在相似性度量的场景中,本发明实施例中,501中的第一密文可以是图2 的实施例中将生物特征向量加密后的密文W′(x)。相应地,501中预存储的第二密文为将模板特征向量加密后的密文V′(x)。
如前所述,本发明实施例中,密文空间为明文空间为
其中,f(x)为分圆多项式。可选地,本发明实施例中,分圆多项式 f(x)=xn+1,且log2n为整数。
在相似性度量的场景中,图5所示的方法可以理解为图1中的14和15。即图5中的服务器可以理解为图1中的代理服务器103和认证者102所在的服务器,终端可以理解为图1中的用户101所在的终端。即,图1中的代理服务器103和认证者102所在的服务器为同一个服务器。也就是说,本发明实施例中的服务器不但用于进行同态计算,还用于根据同态计算的结果进行相似性判断。
可理解,本发明实施例中,502可以参见前述实施例图3中的302,为避免重复,这里不再赘述。可选地,所述维度为l,所述自同构映射为 表示上取整。
可理解,本发明实施例中,503可以参见前述实施例图4中的402,504 可以参见前述实施例图4中的403,为避免重复,这里不再赘述。
在本发明实施例中,使用RLWE的同态加密方案,利用打包技术,将多维向量中的所有分量进行打包后再进行加密,随后同态计算过程对应于SIMD 和自同构以并行的方式进行,这样进行的相似性度量的过程具有低计算量和低通信量,运算速度快,实现的效率高。另外,本发明实施例的方法不仅能够针对比特(bit)向量,而且能够针对整数向量,具有高通用性。并且,所使用的RLWE的同态加密方案具有更好的安全性,其安全性严格规约到公认的困难性问题,因此具有合理的安全性。
图6是本发明一个实施例的用于加密的终端的框图。图6所示的终端600 包括:接收单元601、编码单元602、打包单元603、加密单元604和发送单元605。
接收单元601,用于接收用户输入的生物特征向量,其中,所述生物特征向量包括l个分量,所述l为正整数;
编码单元602,用于将所述接收单元601接收的所述生物特征向量的所述l个分量分别编码为l个明文子空间上的l个明文分量,其中,所述l个明文子空间为将明文空间分解后的子空间,所述明文空间是从第一服务器接收的,且所述明文空间为 为整系数多项式,f(x)为分圆多项式;
打包单元603,用于采用中国剩余定理CRT,将所述编码单元602编码后的所述l个明文子空间上的所述l个明文分量打包为所述明文空间上的明文;
加密单元604,用于采用同态加密方法,利用公钥将所述打包单元603 打包后的所述明文空间上的明文加密为密文空间上的密文,其中,所述公钥和所述密文空间是从所述第一服务器接收的,且所述密文空间为q为奇素数;
发送单元605,用于将所述加密单元604加密后的所述密文发送至第二服务器,以便于所述第二服务器将所述密文与预存储的另一密文进行相似性度量。
本发明实施例在加密的过程中,通过将生物特征向量的分量编码为明文子空间的明文分量,并对明文子空间的明文分量进行打包,这样只需对打包后的明文进行一次加密,从而能够节省加密的时间,进而能够提高效率。
可选地,作为一个实施例,所述生物特征向量的所述l个分量表示为 W1,W2,...,Wl,其中,i=1,2,...,l,为整数域;
所述生物特征向量的分量Wi编码后在对应的明文子空间上的明文分量表示为mi(x);
所述编码单元602,具体用于:
将Wi转换为二进制形式其中j=0,1,...,d-1, d=n/l,n为f(x)的次数;
确定所述明文分量mi(x)为
可选地,作为另一个实施例,所述分圆多项式f(x)=xn+1,且log2n为整数。
终端600能够实现图2所示的实施例中由终端实现的各个过程,为避免重复,这里不再赘述。
图7是本发明一个实施例的用于相似性度量的服务器的框图。图7所示的服务器700包括:接收单元701、计算单元702和发送单元703。
接收单元701,用于从终端接收第一密文,所述第一密文用于与预存储的第二密文进行相似性度量,其中,所述第一密文与所述第二密文的维度相等,所述第一密文与所述第二密文所在的密文空间为 为整系数多项式,f(x)为分圆多项式,q为奇素数;
计算单元702,用于根据所述第一密文和所述第二密文,采用同态乘,调用N次自同构映射和N次同态加,得到第三密文,其中,N为正整数且N与所述维度有关;
发送单元703,用于将所述计算单元702得到的所述第三密文发送至另一服务器,以使得所述另一服务器根据所述第三密文确定第一明文和第二明文的相似度值,其中,所述第一明文为所述第一密文对应的明文,所述第二明文为所述第二密文对应的明文。
本发明实施例中,通过对两个密文的同态乘和自同构映射,能够对应至明文空间的内积运算或余弦运算,从而能够便于进行相似性度量。并且,本相似性度量的方法的计算量小,运算速度快,实现的效率高。
可选地,作为一个实施例,所述计算单元702,具体用于:
计算所述第一密文和所述第二密文的同态乘;
对所述第一密文和所述第二密文的同态乘的结果调用N次自同构映射和 N次同态加,得到所述第三密文。
可选地,作为另一个实施例,所述计算单元702,具体用于:
计算所述第一密文和所述第一密文的同态乘;
对所述第一密文和所述第一密文的同态乘的结果调用N次自同构映射和 N次同态加,得到第四密文;
计算所述第二密文和所述第二密文的同态乘;
对所述第二密文和所述第二密文的同态乘的结果调用N次自同构映射和 N次同态加,得到第五密文;
计算所述第一密文和所述第二密文的同态乘;
对所述第一密文和所述第二密文的同态乘的结果调用N次自同构映射和 N次同态加,得到第六密文;
计算所述第六密文和所述第六密文的同态乘,得到第七密文;
计算所述第四密文和所述第五密文的同态乘的逆元;
计算所述第七密文与所述逆元的同态乘,得到所述第三密文。
可选地,作为另一个实施例,所述密文空间对应的明文空间为所述维度为l,所述自同构映射为 表示上取整。
可选地,作为另一个实施例,所述分圆多项式f(x)=xn+1,且log2n为整数。
服务器700能够实现图3所示的实施例中由第二服务器实现的各个过程,为避免重复,这里不再赘述。
图8是本发明另一个实施例的用于相似性度量的服务器的框图。图8中的服务器800包括:接收单元801、计算单元802、解密单元803和判断单元 804。
接收单元801,用于从终端接收第一密文,所述第一密文用于与预存储的第二密文进行相似性度量,其中,所述第一密文与所述第二密文的维度相等,所述第一密文与所述第二密文所在的密文空间为 为整系数多项式,f(x)为分圆多项式,q为奇素数;
计算单元802,用于根据所述第一密文和所述第二密文,采用同态乘,调用N次自同构映射和N次同态加,得到第三密文,其中,N为正整数且N与所述维度有关;
解密单元803,用于采用同态解密方法,利用私钥得到所述计算单元802 得到的所述第三密文对应的明文空间的第三明文,其中,所述明文空间为
判断单元804,用于若所述解密单元803得到的所述第三明文大于或等于预设阈值,则第一明文和第二明文具有相似性;
若所述第三明文小于所述预设阈值,则第一明文和第二明文不具有相似性,
其中,所述第一明文为所述第一密文对应的明文,所述第二明文为所述第二密文对应的明文。
本发明实施例中,通过对两个密文的同态乘和自同构映射,能够对应至明文空间的内积运算或余弦运算,从而能够便于进行相似性度量。并且,本相似性度量的方法的计算量小,运算速度快,实现的效率高。
可选地,作为一个实施例,所述维度为l,所述自同构映射为 表示上取整。
可选地,作为另一个实施例,所述分圆多项式f(x)=xn+1,且log2n为整数。
服务器800能够实现图5所示的实施例中由服务器实现的各个过程,为避免重复,这里不再赘述。
图9是本发明另一个实施例的用于相似性度量的服务器的框图。图9所示的服务器900包括:接收单元901、解密单元902和判断单元903。
接收单元901,用于接收另一服务器发送的第三密文,所述第三密文是对第一密文和第二密文进行相似性度量得到的,其中,所述第一密文、所述第二密文和所述第三密文所在的密文空间为 为整系数多项式,f(x)为分圆多项式,q为奇素数;
解密单元902,用于采用同态解密方法,利用私钥得到所述接收单元901 接收的所述第三密文对应的明文空间的第三明文,其中,所述明文空间为
判断单元903,用于若所述解密单元902得到的所述第三明文大于或等于预设阈值,则第一明文和第二明文具有相似性;
若所述第三明文小于所述预设阈值,则第一明文和第二明文不具有相似性,
其中,所述第一明文为所述第一密文对应的明文,所述第二明文为所述第二密文对应的明文。
本发明实施例中,通过对同态计算的结果进行解密,可得到两个向量的相似性度量值。并且,本相似性度量的方法的计算量小,运算速度快,实现的效率高。
可选地,作为一个实施例,所述分圆多项式f(x)=xn+1,且log2n为整数。
服务器900能够实现图4所示的实施例中由第一服务器实现的各个过程,为避免重复,这里不再赘述。
图10是本发明另一个实施例的终端的框图。图10所示的终端1000包括:处理器1001、接收电路1002、发送电路1003和存储器1004。
接收电路1002,用于接收用户输入的生物特征向量,其中,所述生物特征向量包括l个分量,所述l为正整数。
处理器1001,用于将所述接收电路1002接收的所述生物特征向量的所述l个分量分别编码为l个明文子空间上的l个明文分量,其中,所述l个明文子空间为将明文空间分解后的子空间,所述明文空间是从第一服务器接收的,且所述明文空间为 为整系数多项式,f(x)为分圆多项式;
用于采用中国剩余定理CRT,将所述编码后的所述l个明文子空间上的所述l个明文分量打包为所述明文空间上的明文;
用于采用同态加密方法,利用公钥将所述明文空间上的明文加密为密文空间上的密文,其中,所述公钥和所述密文空间是从所述第一服务器接收的,且所述密文空间为q为奇素数。
发送电路1003,用于将所述处理器1001加密后的所述密文发送至第二服务器,以便于所述第二服务器将所述密文与预存储的另一密文进行相似性度量。
本发明实施例在加密的过程中,通过将生物特征向量的分量编码为明文子空间的明文分量,并对明文子空间的明文分量进行打包,这样只需对打包后的明文进行一次加密,从而能够节省加密的时间,进而能够提高效率。
终端1000中的各个组件通过总线系统1005耦合在一起,其中总线系统 1005除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图10中将各种总线都标为总线系统1005。
上述本发明实施例揭示的方法可以应用于处理器1001中,或者由处理器 1001实现。处理器1001可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器1001中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器1001可以是通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(FieldProgrammable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本发明实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器1004,处理器1001读取存储器1004中的信息,结合其硬件完成上述方法的步骤。
可以理解,本发明实施例中的存储器1004可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(Read-Only Memory,ROM)、可编程只读存储器 (Programmable ROM,PROM)、可擦除可编程只读存储器(Erasable PROM, EPROM)、电可擦除可编程只读存储器(Electrically EPROM,EEPROM)或闪存。易失性存储器可以是随机存取存储器(Random Access Memory,RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(Static RAM,SRAM)、动态随机存取存储器 (Dynamic RAM,DRAM)、同步动态随机存取存储器(Synchronous DRAM, SDRAM)、双倍数据速率同步动态随机存取存储器(DoubleData Rate SDRAM,DDR SDRAM)、增强型同步动态随机存取存储器(Enhanced SDRAM,ESDRAM)、同步连接动态随机存取存储器(Synchlink DRAM, SLDRAM)和直接内存总线随机存取存储器(Direct Rambus RAM,DR RAM)。本文描述的系统和方法的存储器1004旨在包括但不限于这些和任意其它适合类型的存储器。
可以理解的是,本文描述的这些实施例可以用硬件、软件、固件、中间件、微码或其组合来实现。对于硬件实现,处理单元可以实现在一个或多个专用集成电路(ApplicationSpecific Integrated Circuits,ASIC)、数字信号处理器(Digital Signal Processing,DSP)、数字信号处理设备(DSP Device, DSPD)、可编程逻辑设备(Programmable LogicDevice,PLD)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)、通用处理器、控制器、微控制器、微处理器、用于执行本申请所述功能的其它电子单元或其组合中。
当在软件、固件、中间件或微码、程序代码或代码段中实现实施例时,它们可存储在例如存储部件的机器可读介质中。代码段可表示过程、函数、子程序、程序、例程、子例程、模块、软件分组、类、或指令、数据结构或程序语句的任意组合。代码段可通过传送和/或接收信息、数据、自变量、参数或存储器内容来稿合至另一代码段或硬件电路。可使用包括存储器共享、消息传递、令牌传递、网络传输等任意适合方式来传递、转发或发送信息、自变量、参数、数据等。
对于软件实现,可通过执行本文所述功能的模块(例如过程、函数等) 来实现本文所述的技术。软件代码可存储在存储器单元中并通过处理器执行。存储器单元可以在处理器中或在处理器外部实现,在后一种情况下存储器单元可经由本领域己知的各种手段以通信方式耦合至处理器。
可选地,作为一个实施例,所述生物特征向量的所述l个分量表示为 W1,W2,...,Wl,其中,i=1,2,...,l,为整数域;
所述生物特征向量的分量Wi编码后在对应的明文子空间上的明文分量表示为mi(x);
所述处理器1001,具体用于:
将Wi转换为二进制形式其中,j=0,1,...,d-1, d=n/l,n为f(x)的次数;
确定所述明文分量mi(x)为
可选地,作为另一个实施例,所述分圆多项式f(x)=xn+1,且log2n为整数。
终端1000能够实现图2所示的实施例中由终端实现的各个过程,为避免重复,这里不再赘述。
图11是本发明另一个实施例的服务器的框图。图11所示的服务器1100 包括:处理器1101、接收电路1102、发送电路1103和存储器1104。
接收电路1102,用于从终端接收第一密文,所述第一密文用于与预存储的第二密文进行相似性度量,其中,所述第一密文与所述第二密文的维度相等,所述第一密文与所述第二密文所在的密文空间为 为整系数多项式,f(x)为分圆多项式,q为奇素数;
处理器1101,用于根据所述第一密文和所述第二密文,采用同态乘,调用N次自同构映射和N次同态加,得到第三密文,其中,N为正整数且N与所述维度有关;
发送电路1103,用于将所述处理器1101得到的所述第三密文发送至另一服务器,以使得所述另一服务器根据所述第三密文确定第一明文和第二明文的相似度值,其中,所述第一明文为所述第一密文对应的明文,所述第二明文为所述第二密文对应的明文。
本发明实施例中,通过对两个密文的同态乘和自同构映射,能够对应至明文空间的内积运算或余弦运算,从而能够便于进行相似性度量。并且,本相似性度量的方法的计算量小,运算速度快,实现的效率高。
服务器1100中的各个组件通过总线系统1105耦合在一起,其中总线系统1105除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图11中将各种总线都标为总线系统1105。
上述本发明实施例揭示的方法可以应用于处理器1101中,或者由处理器1101实现。处理器1101可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器1101中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器1101可以是通用处理器、DSP、 ASIC、FPGA或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本发明实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器 1104,处理器1101读取存储器1104中的信息,结合其硬件完成上述方法的步骤。
可以理解,本发明实施例中的存储器1104可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是ROM、PROM、EPROM、EEPROM或闪存。易失性存储器可以是RAM,其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如SRAM、DRAM、SDRAM、DDR SDRAM、ESDRAM、SLDRAM 和DRRAM。本文描述的系统和方法的存储器1104旨在包括但不限于这些和任意其它适合类型的存储器。
可以理解的是,本文描述的这些实施例可以用硬件、软件、固件、中间件、微码或其组合来实现。对于硬件实现,处理单元可以实现在一个或多个 ASIC、DSP、DSPD、PLD、FPGA、通用处理器、控制器、微控制器、微处理器、用于执行本申请所述功能的其它电子单元或其组合中。
当在软件、固件、中间件或微码、程序代码或代码段中实现实施例时,它们可存储在例如存储部件的机器可读介质中。代码段可表示过程、函数、子程序、程序、例程、子例程、模块、软件分组、类、或指令、数据结构或程序语句的任意组合。代码段可通过传送和/或接收信息、数据、自变量、参数或存储器内容来稿合至另一代码段或硬件电路。可使用包括存储器共享、消息传递、令牌传递、网络传输等任意适合方式来传递、转发或发送信息、自变量、参数、数据等。
对于软件实现,可通过执行本文所述功能的模块(例如过程、函数等) 来实现本文所述的技术。软件代码可存储在存储器单元中并通过处理器执行。存储器单元可以在处理器中或在处理器外部实现,在后一种情况下存储器单元可经由本领域己知的各种手段以通信方式耦合至处理器。
可选地,作为一个实施例,所述处理器1101,具体用于:
计算所述第一密文和所述第二密文的同态乘;
对所述第一密文和所述第二密文的同态乘的结果调用N次自同构映射和 N次同态加,得到所述第三密文。
可选地,作为另一个实施例,所述处理器1101,具体用于:
计算所述第一密文和所述第一密文的同态乘;
对所述第一密文和所述第一密文的同态乘的结果调用N次自同构映射和 N次同态加,得到第四密文;
计算所述第二密文和所述第二密文的同态乘;
对所述第二密文和所述第二密文的同态乘的结果调用N次自同构映射和 N次同态加,得到第五密文;
计算所述第一密文和所述第二密文的同态乘;
对所述第一密文和所述第二密文的同态乘的结果调用N次自同构映射和 N次同态加,得到第六密文;
计算所述第六密文和所述第六密文的同态乘,得到第七密文;
计算所述第四密文和所述第五密文的同态乘的逆元;
计算所述第七密文与所述逆元的同态乘,得到所述第三密文。
可选地,作为另一个实施例,所述密文空间对应的明文空间为所述维度为l,所述自同构映射为 表示上取整。
可选地,作为另一个实施例,所述分圆多项式f(x)=xn+1,且log2n为整数。
服务器1100能够实现图3所示的实施例中由第二服务器实现的各个过程,为避免重复,这里不再赘述。
图12是本发明另一个实施例的服务器的框图。图12所示的服务器1200 包括:处理器1201、接收电路1202、发送电路1203和存储器1204。
接收单元1202,用于从终端接收第一密文,所述第一密文用于与预存储的第二密文进行相似性度量,其中,所述第一密文与所述第二密文的维度相等,所述第一密文与所述第二密文所在的密文空间为 为整系数多项式,f(x)为分圆多项式,q为奇素数;
处理器1201,用于根据所述第一密文和所述第二密文,采用同态乘,调用N次自同构映射和N次同态加,得到第三密文,其中,N为正整数且N与所述维度有关;
用于采用同态解密方法,利用私钥得到所述第三密文对应的明文空间的第三明文,其中,所述明文空间为
用于若所述第三明文大于或等于预设阈值,则第一明文和第二明文具有相似性;
若所述第三明文小于所述预设阈值,则第一明文和第二明文不具有相似性,
其中,所述第一明文为所述第一密文对应的明文,所述第二明文为所述第二密文对应的明文。
本发明实施例中,通过对两个密文的同态乘和自同构映射,能够对应至明文空间的内积运算或余弦运算,从而能够便于进行相似性度量。并且,本相似性度量的方法的计算量小,运算速度快,实现的效率高。
可理解,发送电路1203用于将明文空间、密文空间和公钥发送至终端。
服务器1200中的各个组件通过总线系统1205耦合在一起,其中总线系统1205除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图12中将各种总线都标为总线系统1205。
上述本发明实施例揭示的方法可以应用于处理器1201中,或者由处理器 1201实现。处理器1201可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器1201中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器1201可以是通用处理器、DSP、 ASIC、FPGA或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本发明实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器 1204,处理器1201读取存储器1204中的信息,结合其硬件完成上述方法的步骤。
可以理解,本发明实施例中的存储器1204可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是ROM、PROM、EPROM、EEPROM或闪存。易失性存储器可以是RAM,其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如SRAM、DRAM、SDRAM、DDR SDRAM、ESDRAM、SLDRAM 和DRRAM。本文描述的系统和方法的存储器1104旨在包括但不限于这些和任意其它适合类型的存储器。
可以理解的是,本文描述的这些实施例可以用硬件、软件、固件、中间件、微码或其组合来实现。对于硬件实现,处理单元可以实现在一个或多个 ASIC、DSP、DSPD、PLD、FPGA、通用处理器、控制器、微控制器、微处理器、用于执行本申请所述功能的其它电子单元或其组合中。
当在软件、固件、中间件或微码、程序代码或代码段中实现实施例时,它们可存储在例如存储部件的机器可读介质中。代码段可表示过程、函数、子程序、程序、例程、子例程、模块、软件分组、类、或指令、数据结构或程序语句的任意组合。代码段可通过传送和/或接收信息、数据、自变量、参数或存储器内容来稿合至另一代码段或硬件电路。可使用包括存储器共享、消息传递、令牌传递、网络传输等任意适合方式来传递、转发或发送信息、自变量、参数、数据等。
对于软件实现,可通过执行本文所述功能的模块(例如过程、函数等) 来实现本文所述的技术。软件代码可存储在存储器单元中并通过处理器执行。存储器单元可以在处理器中或在处理器外部实现,在后一种情况下存储器单元可经由本领域己知的各种手段以通信方式耦合至处理器。
可选地,作为一个实施例,所述维度为l,所述自同构映射为 表示上取整。
可选地,作为另一个实施例,所述分圆多项式f(x)=xn+1,且log2n为整数。
服务器1200能够实现图5所示的实施例中由服务器实现的各个过程,为避免重复,这里不再赘述。
图13是本发明另一个实施例的服务器的框图。图13所示的服务器1300 包括:处理器1301、接收电路1302、发送电路1303和存储器1304。
接收电路1302,用于接收另一服务器发送的第三密文,所述第三密文是对第一密文和第二密文进行相似性度量得到的,其中,所述第一密文、所述第二密文和所述第三密文所在的密文空间为 为整系数多项式,f(x)为分圆多项式,q为奇素数;
处理器1301,用于采用同态解密方法,利用私钥得到所述接收单元901 接收的所述第三密文对应的明文空间的第三明文,其中,所述明文空间为
用于若所述第三明文大于或等于预设阈值,则第一明文和第二明文具有相似性;
若所述第三明文小于所述预设阈值,则第一明文和第二明文不具有相似性,
其中,所述第一明文为所述第一密文对应的明文,所述第二明文为所述第二密文对应的明文。
本发明实施例中,通过对同态计算的结果进行解密,可得到两个向量的相似性度量值。并且,本相似性度量的方法的计算量小,运算速度快,实现的效率高。
可理解,发送电路1303用于将明文空间、密文空间和公钥发送至终端。
服务器1300中的各个组件通过总线系统1305耦合在一起,其中总线系统1305除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图13中将各种总线都标为总线系统1305。
上述本发明实施例揭示的方法可以应用于处理器1301中,或者由处理器 1301实现。处理器1301可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器1301中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器1301可以是通用处理器、DSP、 ASIC、FPGA或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本发明实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器 1304,处理器1301读取存储器1304中的信息,结合其硬件完成上述方法的步骤。
可以理解,本发明实施例中的存储器1304可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是ROM、PROM、EPROM、EEPROM或闪存。易失性存储器可以是RAM,其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如SRAM、DRAM、SDRAM、DDR SDRAM、ESDRAM、SLDRAM 和DRRAM。本文描述的系统和方法的存储器1104旨在包括但不限于这些和任意其它适合类型的存储器。
可以理解的是,本文描述的这些实施例可以用硬件、软件、固件、中间件、微码或其组合来实现。对于硬件实现,处理单元可以实现在一个或多个 ASIC、DSP、DSPD、PLD、FPGA、通用处理器、控制器、微控制器、微处理器、用于执行本申请所述功能的其它电子单元或其组合中。
当在软件、固件、中间件或微码、程序代码或代码段中实现实施例时,它们可存储在例如存储部件的机器可读介质中。代码段可表示过程、函数、子程序、程序、例程、子例程、模块、软件分组、类、或指令、数据结构或程序语句的任意组合。代码段可通过传送和/或接收信息、数据、自变量、参数或存储器内容来稿合至另一代码段或硬件电路。可使用包括存储器共享、消息传递、令牌传递、网络传输等任意适合方式来传递、转发或发送信息、自变量、参数、数据等。
对于软件实现,可通过执行本文所述功能的模块(例如过程、函数等) 来实现本文所述的技术。软件代码可存储在存储器单元中并通过处理器执行。存储器单元可以在处理器中或在处理器外部实现,在后一种情况下存储器单元可经由本领域己知的各种手段以通信方式耦合至处理器。
可选地,作为一个实施例,所述分圆多项式f(x)=xn+1,且log2n为整数。
服务器1300能够实现图4所示的实施例中由第一服务器实现的各个过程,为避免重复,这里不再赘述。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。

Claims (26)

1.一种加密的方法,其特征在于,所述方法包括:
终端接收用户输入的生物特征向量,其中,所述生物特征向量包括l个分量,所述l为正整数;
所述终端将所述生物特征向量的所述l个分量分别编码为l个明文子空间上的l个明文分量,其中,所述l个明文子空间为将明文空间分解后的子空间,所述明文空间是从第一服务器接收的,且所述明文空间为 为整系数多项式,f(x)为分圆多项式;
所述终端采用中国剩余定理CRT,将所述l个明文子空间上的所述l个明文分量打包为所述明文空间上的明文;
所述终端采用同态加密方法,利用公钥将所述明文空间上的明文加密为密文空间上的密文,其中,所述公钥和所述密文空间是从所述第一服务器接收的,且所述密文空间为q为奇素数;
所述终端将所述密文发送至第二服务器,以便于所述第二服务器将所述密文与预存储的另一密文进行相似性度量。
2.根据权利要求1所述的方法,其特征在于,
所述生物特征向量的所述l个分量表示为W1,W2,...,Wl,其中, 为整数域;
所述生物特征向量的分量Wi编码后在对应的明文子空间上的明文分量表示为mi(x);
所述将所述生物特征向量的所述l个分量分别编码为l个明文子空间上的l个明文分量,包括:
将Wi转换为二进制形式其中,d=n/l,n为f(x)的次数;
确定所述明文分量mi(x)为
3.根据权利要求1或2所述的方法,其特征在于,所述分圆多项式f(x)=xn+1,且log2n为整数。
4.一种相似性度量的方法,其特征在于,所述方法在密文空间执行,其中,为整系数多项式,f(x)为分圆多项式,q为奇素数,所述方法包括:
第二服务器从终端接收第一密文,所述第一密文用于与预存储的第二密文进行相似性度量,其中,所述第一密文与所述第二密文的维度相等;
所述第二服务器根据所述第一密文和所述第二密文,采用同态乘,调用N次自同构映射和N次同态加,得到第三密文,其中,N为正整数且N与所述维度有关;
所述第二服务器将所述第三密文发送至第一服务器,以使得所述第一服务器根据所述第三密文确定第一明文和第二明文的相似度值,其中,所述第一明文为所述第一密文对应的明文,所述第二明文为所述第二密文对应的明文。
5.根据权利要求4所述的方法,其特征在于,所述根据所述第一密文和所述第二密文,采用同态乘,调用N次自同构映射和N次同态加,得到第三密文,包括:
计算所述第一密文和所述第二密文的同态乘;
对所述第一密文和所述第二密文的同态乘的结果调用N次自同构映射和N次同态加,得到所述第三密文。
6.根据权利要求4所述的方法,其特征在于,所述根据所述第一密文和所述第二密文,采用同态乘,调用N次自同构映射和N次同态加,得到第三密文,包括:
计算所述第一密文和所述第一密文的同态乘;
对所述第一密文和所述第一密文的同态乘的结果调用N次自同构映射和N次同态加,得到第四密文;
计算所述第二密文和所述第二密文的同态乘;
对所述第二密文和所述第二密文的同态乘的结果调用N次自同构映射和N次同态加,得到第五密文;
计算所述第一密文和所述第二密文的同态乘;
对所述第一密文和所述第二密文的同态乘的结果调用N次自同构映射和N次同态加,得到第六密文;
计算所述第六密文和所述第六密文的同态乘,得到第七密文;
计算所述第四密文和所述第五密文的同态乘的逆元;
计算所述第七密文与所述逆元的同态乘,得到所述第三密文。
7.根据权利要求4至6任一项所述的方法,其特征在于,所述密文空间对应的明文空间为所述维度为l,所述自同构映射为 表示上取整。
8.根据权利要求4至6中任一项所述的方法,其特征在于,所述分圆多项式f(x)=xn+1,且log2n为整数。
9.一种相似性度量的方法,其特征在于,所述方法包括:
服务器从终端接收第一密文,所述第一密文用于与预存储的第二密文进行相似性度量,其中,所述第一密文与所述第二密文的维度相等,所述第一密文与所述第二密文所在的密文空间为 为整系数多项式,f(x)为分圆多项式,q为奇素数;
所述服务器根据所述第一密文和所述第二密文,采用同态乘,调用N次自同构映射和N次同态加,得到第三密文,其中,N为正整数且N与所述维度有关;
所述服务器采用同态解密方法,利用私钥得到所述第三密文对应的明文空间的第三明文,其中,所述明文空间为
若所述第三明文大于或等于预设阈值,则第一明文和第二明文具有相似性;
若所述第三明文小于所述预设阈值,则第一明文和第二明文不具有相似性,
其中,所述第一明文为所述第一密文对应的明文,所述第二明文为所述第二密文对应的明文。
10.根据权利要求9所述的方法,其特征在于,所述维度为l,所述自同构映射为 表示上取整。
11.根据权利要求9或10所述的方法,其特征在于,所述分圆多项式f(x)=xn+1,且log2n为整数。
12.一种相似性度量的方法,其特征在于,所述方法包括:
第一服务器接收第二服务器发送的第三密文,所述第三密文是对第一密文和第二密文进行相似性度量得到的,其中,所述第一密文、所述第二密文和所述第三密文所在的密文空间为 为整系数多项式,f(x)为分圆多项式,q为奇素数;
所述第一服务器采用同态解密方法,利用私钥得到所述第三密文对应的明文空间的第三明文,其中,所述明文空间为
若所述第三明文大于或等于预设阈值,则第一明文和第二明文具有相似性;
若所述第三明文小于所述预设阈值,则第一明文和第二明文不具有相似性,
其中,所述第一明文为所述第一密文对应的明文,所述第二明文为所述第二密文对应的明文。
13.根据权利要求12所述的方法,其特征在于,所述分圆多项式f(x)=xn+1,且log2n为整数。
14.一种用于加密的终端,其特征在于,所述终端包括:
接收单元,用于接收用户输入的生物特征向量,其中,所述生物特征向量包括l个分量,所述l为正整数;
编码单元,用于将所述接收单元接收的所述生物特征向量的所述l个分量分别编码为l个明文子空间上的l个明文分量,其中,所述l个明文子空间为将明文空间分解后的子空间,所述明文空间是从第一服务器接收的,且所述明文空间为 为整系数多项式,f(x)为分圆多项式;
打包单元,用于采用中国剩余定理CRT,将所述编码单元编码后的所述l个明文子空间上的所述l个明文分量打包为所述明文空间上的明文;
加密单元,用于采用同态加密方法,利用公钥将所述打包单元打包后的所述明文空间上的明文加密为密文空间上的密文,其中,所述公钥和所述密文空间是从所述第一服务器接收的,且所述密文空间为q为奇素数;
发送单元,用于将所述加密单元加密后的所述密文发送至第二服务器,以便于所述第二服务器将所述密文与预存储的另一密文进行相似性度量。
15.根据权利要求14所述的终端,其特征在于,
所述生物特征向量的所述l个分量表示为W1,W2,...,Wl,其中, 为整数域;
所述生物特征向量的分量Wi编码后在对应的明文子空间上的明文分量表示为mi(x);
所述编码单元,具体用于:
将Wi转换为二进制形式其中,d=n/l,n为f(x)的次数;
确定所述明文分量mi(x)为
16.根据权利要求14或15所述的终端,其特征在于,所述分圆多项式f(x)=xn+1,且log2n为整数。
17.一种用于相似性度量的服务器,其特征在于,所述服务器包括:
接收单元,用于从终端接收第一密文,所述第一密文用于与预存储的第二密文进行相似性度量,其中,所述第一密文与所述第二密文的维度相等,所述第一密文与所述第二密文所在的密文空间为 为整系数多项式,f(x)为分圆多项式,q为奇素数;
计算单元,用于根据所述第一密文和所述第二密文,采用同态乘,调用N次自同构映射和N次同态加,得到第三密文,其中,N为正整数且N与所述维度有关;
发送单元,用于将所述计算单元得到的所述第三密文发送至另一服务器,以使得所述另一服务器根据所述第三密文确定第一明文和第二明文的相似度值,其中,所述第一明文为所述第一密文对应的明文,所述第二明文为所述第二密文对应的明文。
18.根据权利要求17所述的服务器,其特征在于,所述计算单元,具体用于:
计算所述第一密文和所述第二密文的同态乘;
对所述第一密文和所述第二密文的同态乘的结果调用N次自同构映射和N次同态加,得到所述第三密文。
19.根据权利要求17所述的服务器,其特征在于,所述计算单元,具体用于:
计算所述第一密文和所述第一密文的同态乘;
对所述第一密文和所述第一密文的同态乘的结果调用N次自同构映射和N次同态加,得到第四密文;
计算所述第二密文和所述第二密文的同态乘;
对所述第二密文和所述第二密文的同态乘的结果调用N次自同构映射和N次同态加,得到第五密文;
计算所述第一密文和所述第二密文的同态乘;
对所述第一密文和所述第二密文的同态乘的结果调用N次自同构映射和N次同态加,得到第六密文;
计算所述第六密文和所述第六密文的同态乘,得到第七密文;
计算所述第四密文和所述第五密文的同态乘的逆元;
计算所述第七密文与所述逆元的同态乘,得到所述第三密文。
20.根据权利要求17至19任一项所述的服务器,其特征在于,所述密文空间对应的明文空间为所述维度为l,所述自同构映射为 表示上取整。
21.根据权利要求17至19中任一项所述的服务器,其特征在于,所述分圆多项式f(x)=xn+1,且log2n为整数。
22.一种用于相似性度量的服务器,其特征在于,所述服务器包括:
接收单元,用于从终端接收第一密文,所述第一密文用于与预存储的第二密文进行相似性度量,其中,所述第一密文与所述第二密文的维度相等,所述第一密文与所述第二密文所在的密文空间为 为整系数多项式,f(x)为分圆多项式,q为奇素数;
计算单元,用于根据所述第一密文和所述第二密文,采用同态乘,调用N次自同构映射和N次同态加,得到第三密文,其中,N为正整数且N与所述维度有关;
解密单元,用于采用同态解密方法,利用私钥得到所述第三密文对应的明文空间的第三明文,其中,所述明文空间为
判断单元,用于若所述第三明文大于或等于预设阈值,则第一明文和第二明文具有相似性;
若所述第三明文小于所述预设阈值,则第一明文和第二明文不具有相似性,
其中,所述第一明文为所述第一密文对应的明文,所述第二明文为所述第二密文对应的明文。
23.根据权利要求22所述的服务器,其特征在于,所述维度为l,所述自同构映射为 表示上取整。
24.根据权利要求22或23所述的服务器,其特征在于,所述分圆多项式f(x)=xn+1,且log2n为整数。
25.一种用于相似性度量的服务器,其特征在于,所述服务器包括:
接收单元,用于接收另一服务器发送的第三密文,所述第三密文是对第一密文和第二密文进行相似性度量得到的,其中,所述第一密文、所述第二密文和所述第三密文所在的密文空间为 为整系数多项式,f(x)为分圆多项式,q为奇素数;
解密单元,用于采用同态解密方法,利用私钥得到所述第三密文对应的明文空间的第三明文,其中,所述明文空间为
判断单元,用于若所述第三明文大于或等于预设阈值,则第一明文和第二明文具有相似性;
若所述第三明文小于所述预设阈值,则第一明文和第二明文不具有相似性,
其中,所述第一明文为所述第一密文对应的明文,所述第二明文为所述第二密文对应的明文。
26.根据权利要求25所述的服务器,其特征在于,所述分圆多项式f(x)=xn+1,且log2n为整数。
CN201410428736.9A 2014-08-27 2014-08-27 加密和相似性度量的方法、终端及服务器 Active CN105447361B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410428736.9A CN105447361B (zh) 2014-08-27 2014-08-27 加密和相似性度量的方法、终端及服务器

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410428736.9A CN105447361B (zh) 2014-08-27 2014-08-27 加密和相似性度量的方法、终端及服务器

Publications (2)

Publication Number Publication Date
CN105447361A CN105447361A (zh) 2016-03-30
CN105447361B true CN105447361B (zh) 2018-08-21

Family

ID=55557530

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410428736.9A Active CN105447361B (zh) 2014-08-27 2014-08-27 加密和相似性度量的方法、终端及服务器

Country Status (1)

Country Link
CN (1) CN105447361B (zh)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106790069B (zh) * 2016-12-21 2020-03-31 电子科技大学 基于向量同态加密的隐私保护k-nn分类方法
CN107154845B (zh) * 2017-04-11 2020-08-11 中国人民武装警察部队工程大学 一种基于属性的bgn型密文解密外包方案
CN108809619B (zh) * 2017-04-27 2022-11-29 郑珂威 用于完全同态加密的精度控制及累计误差消除方法
CN110011954B (zh) * 2018-11-27 2021-09-14 创新先进技术有限公司 基于同态加密的生物识别方法、装置、终端及业务服务器
US10778410B2 (en) 2019-06-18 2020-09-15 Alibaba Group Holding Limited Homomorphic data encryption method and apparatus for implementing privacy protection
CN110348231B (zh) * 2019-06-18 2020-08-14 阿里巴巴集团控股有限公司 实现隐私保护的数据同态加解密方法及装置
CN110321722B (zh) * 2019-07-08 2021-11-09 济南大学 Dna序列相似率安全计算方法及系统
CN114465708B (zh) * 2022-03-17 2023-07-21 北京绪方科技有限公司 隐私数据处理方法及装置、系统、电子设备、存储介质
CN114973351B (zh) * 2022-03-31 2023-07-25 北京瑞莱智慧科技有限公司 人脸识别方法、装置、设备及存储介质
CN115378570B (zh) * 2022-06-28 2024-08-27 中国人民武装警察部队工程大学 具有短密文的全同态加密方法
CN115050079B (zh) * 2022-06-30 2023-08-01 北京瑞莱智慧科技有限公司 人脸识别方法、装置及存储介质
CN115473703B (zh) * 2022-08-24 2024-04-12 华南农业大学 认证的基于身份的密文等值测试方法、装置、系统及介质
CN115348017B (zh) * 2022-10-18 2023-02-07 阿里巴巴(中国)有限公司 密文处理方法以及装置

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8515058B1 (en) * 2009-11-10 2013-08-20 The Board Of Trustees Of The Leland Stanford Junior University Bootstrappable homomorphic encryption method, computer program and apparatus
CN103401871A (zh) * 2013-08-05 2013-11-20 苏州大学 一种面向同态加密的密文定序方法及系统

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012149395A1 (en) * 2011-04-29 2012-11-01 International Business Machines Corporation Fully homomorphic encryption
US9281941B2 (en) * 2012-02-17 2016-03-08 International Business Machines Corporation Homomorphic evaluation including key switching, modulus switching, and dynamic noise management
US9306738B2 (en) * 2012-12-21 2016-04-05 Microsoft Technology Licensing, Llc Managed secure computations on encrypted data

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8515058B1 (en) * 2009-11-10 2013-08-20 The Board Of Trustees Of The Leland Stanford Junior University Bootstrappable homomorphic encryption method, computer program and apparatus
CN103401871A (zh) * 2013-08-05 2013-11-20 苏州大学 一种面向同态加密的密文定序方法及系统

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
"Fully Homomorphic Encryption with Polylog Overhead";Craig Gentry等;《Proceedings of 31st Annual International Conference on the Theory and Applications of Cryptographic Techniques》;20120419;第465-482页 *
"基于RLWE的全同态加密方案";汤殿华等;《通信学报》;20140125;第35卷(第1期);第173-182页 *

Also Published As

Publication number Publication date
CN105447361A (zh) 2016-03-30

Similar Documents

Publication Publication Date Title
CN105447361B (zh) 加密和相似性度量的方法、终端及服务器
CN110870250B (zh) 密钥协商设备和方法
CN111492616B (zh) 用于基于晶格的密码学的可配置设备
CN110419194B (zh) 密钥交换设备和方法
CN111162906B (zh) 一种基于茫然传输算法的协同秘密分享方法及装置、系统、介质
Almajed et al. SE-ENC: A secure and efficient encoding scheme using elliptic curve cryptography
US20190007196A1 (en) Method and system for privacy preserving computation in cloud using fully homomorphic encryption
US10367640B2 (en) Shared secret data production system
Sarkar et al. Role of cryptography in network security
CN103973439B (zh) 一种多变量公钥加密方法
US20230224285A1 (en) Affine masking for secure encryption schemes
Agrawal et al. Elliptic curve cryptography with hill cipher generation for secure text cryptosystem
Khan SMS security in mobile devices: a survey
Shi et al. An obfuscatable aggregatable signcryption scheme for unattended devices in IoT systems
US9509511B2 (en) Identity based encryption
WO2018213875A1 (en) Asymmetric cryptography and authentication
CN111817853B (zh) 一种后量子安全的签密算法
Gao et al. Comparison analysis and efficient implementation of reconciliation-based RLWE key exchange protocol
CN116488806A (zh) 一种密钥封装方法、装置、设备及存储介质
Özdemir et al. Development of Cryptography since Shannon
Rodas et al. O2MD²: A New Post-Quantum Cryptosystem With One-to-Many Distributed Key Management Based on Prime Modulo Double Encapsulation
Rawal et al. Challenges and opportunities on the horizon of post-quantum cryptography
Shen et al. Enhancing data security of iOS client by encryption algorithm
Singh A Note on Symmetric Key Cryptosystems
Gorbenko et al. Code-based hybrid cryptosystem: comparative studies and analysis of efficiency

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant