CN115544552A - 一种不暴露明文数据的相似性检测方法、装置及存储介质 - Google Patents

一种不暴露明文数据的相似性检测方法、装置及存储介质 Download PDF

Info

Publication number
CN115544552A
CN115544552A CN202211508242.2A CN202211508242A CN115544552A CN 115544552 A CN115544552 A CN 115544552A CN 202211508242 A CN202211508242 A CN 202211508242A CN 115544552 A CN115544552 A CN 115544552A
Authority
CN
China
Prior art keywords
ciphertext
database
hash
data
plaintext data
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.)
Granted
Application number
CN202211508242.2A
Other languages
English (en)
Other versions
CN115544552B (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.)
Lanxiang Zhilian Hangzhou Technology Co ltd
Original Assignee
Lanxiang Zhilian Hangzhou Technology Co ltd
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 Lanxiang Zhilian Hangzhou Technology Co ltd filed Critical Lanxiang Zhilian Hangzhou Technology Co ltd
Priority to CN202211508242.2A priority Critical patent/CN115544552B/zh
Publication of CN115544552A publication Critical patent/CN115544552A/zh
Application granted granted Critical
Publication of CN115544552B publication Critical patent/CN115544552B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • G06F21/6245Protecting personal data, e.g. for financial or medical purposes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/008Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols involving homomorphic encryption
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/0825Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using asymmetric-key encryption or public key infrastructure [PKI], e.g. key signature or public key certificates
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • General Physics & Mathematics (AREA)
  • Signal Processing (AREA)
  • Health & Medical Sciences (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Databases & Information Systems (AREA)
  • Medical Informatics (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请实施例公开了一种不暴露明文数据的相似性检测方法、装置及存储介质,其中方法包括步骤:生成同态加密的公钥和对应的私钥,使用公钥对数据库中的数据集合进行对齐加密,得到第一密文集合和密文映射,利用哈希算法对数据库中的数据集合进行处理,得到第一哈希集合;将公钥发送给采集端,以得到第二密文集合,以及得到第二哈希集合;将第一密文集合、密文映射、第一哈希集合、公钥和数据库的数据库ID发送给计算端,以得到候选密文与第二密文集合之间的密态余弦距离;接收候选数据库ID和对应的密态余弦距离,使用私钥对密态余弦距离进行解密得到对应的明文值,根据余弦距离的明文值和对应的数据库ID确定出数据库中与明文数据集合最接近的数据。

Description

一种不暴露明文数据的相似性检测方法、装置及存储介质
技术领域
本申请涉及计算机信息处理技术领域,具体涉及一种不暴露明文数据的相似性检测方法、装置及存储介质。
背景技术
现有的基于个人信息保护目的的相似性检测方法,在保存个人信息的明文数据库中存在大量数据的情况下,存在单条加密后整体密文膨胀过大以及计算密文距离时需要和密文数据库全量计算导致密文计算量过大的问题。
因此,基于隐私保护的需求,和解决数据孤岛的问题,需要提出一种在不暴露原始信息数据的基础上和数据库中的信息进行比对找出相近的数据索引的方案来解决上述现有的基于个人信息保护目的的相似性检测方法所存在的问题。
发明内容
本申请实施例的目的在于提供一种不暴露明文数据的相似性检测方法、装置及存储介质,用以解决现有技术中的基于个人信息保护目的的相似性检测方法,在保存个人信息的明文数据库中存在大量数据的情况下,存在单条加密后整体密文膨胀过大以及计算密文距离时需要和密文数据库全量计算导致密文计算量过大,从而难以在不暴露原始数据的基础上和数据库中的信息进行比对找出相近数据索引的问题。
为实现上述目的,本申请实施例提供一种不暴露明文数据的相似性检测方法,包括步骤:生成同态加密的公钥和对应的私钥,使用所述公钥对数据库中的数据集合进行对齐加密,得到第一密文集合和密文映射,利用哈希算法对所述数据库中的数据集合进行处理,得到第一哈希集合;
将所述公钥发送给采集端,以使所述采集端使用所述公钥对采集到的明文数据集合进行同态加密,得到第二密文集合,以及利用所述哈希算法对所述明文数据集合进行处理,得到第二哈希集合;
将所述第一密文集合、密文映射、第一哈希集合、公钥和所述数据库的数据库ID发送给计算端,以使所述计算端在得到所述采集端发来的所述第二密文集合和第二哈希集合之后,根据所述第一哈希集合和第二哈希集合之间的汉明距离,确定出汉明距离最近的前预设数量条数据所对应的若干候选数据库ID,并根据所述密文映射,确定在所述第一密文集合中与所述候选数据库ID对应的候选密文,以及利用所述公钥通过计算得到所述候选密文与所述第二密文集合之间的密态余弦距离;
获取所述计算端发送的所述候选数据库ID和对应的所述密态余弦距离,使用所述私钥对所述密态余弦距离进行解密得到对应的明文值,根据所述余弦距离的明文值和对应的所述数据库ID确定出所述数据库中与所述明文数据集合最接近的数据。
可选地,在所述采集端对采集到的所述明文数据集合进行同态加密之前,包括:
所述采集端对采集到的所述明文数据集合进行扩充补零,所述扩充补零的方法包括:生成四个长度均为4n的向量,其中n代表所述明文数据集合中的明文数据的向量长度,分别向四个向量中区间为[1:n] [n+1:2n] [2n+1:3n] [3n+1:4n]的位置写入所述明文数据,其他位置的数据依旧为0。
可选地,在将所述数据库ID发送给所述计算端之前,还包括:
对所述数据库ID进行脱敏处理,所述脱敏处理的方法包括通过使用sha256哈希对原始的所述数据库ID计算哈希值的方式得到脱敏处理后的所述数据库ID,脱敏处理后的所述数据库ID与所述第一哈希集合中的数据存在一一对应关系。
可选地,所述哈希算法为生物哈希算法,所述生物哈希算法的计算方法包括:
从[0,1]的均匀分布中生成随机矩阵,维度为n×n,其中n为所述生物哈希算法的输入向量的长度;
使用正交三角分解法对所述随机矩阵进行分解得到一个正交矩阵和一个上三角矩阵;
初始化长度为n所述生物哈希算法的结果向量;
获取特征向量和所述正交矩阵的列向量之间的点积,并将结果存入所述结果向量的对应位置,然后对所述结果向量进行二值化处理,对所述结果向量内的值求均值并对大于均值的位置取1,对小于均值的位置取0得到最终的所述结果向量。
可选地,利用所述公钥通过计算得到所述密态余弦距离的方法包括:
利用公式:
Figure 598942DEST_PATH_IMAGE001
计算得到所述密态余弦距离,其中
Figure 54457DEST_PATH_IMAGE002
为所述密态余弦距离,X1代 表数据库中的明文数据,Y代表采集端得到的明文数据,
Figure 972734DEST_PATH_IMAGE003
代表所述第二密文集合中的一 条密文,
Figure 811377DEST_PATH_IMAGE004
代表所述候选密文中的一条密文,n代表所述明文数据集合中的明文数据的长 度。
为实现上述目的,本申请还提供一种不暴露明文数据的相似性检测装置,包括:存储器;以及
与所述存储器连接的处理器,所述处理器被配置成:
生成同态加密的公钥和对应的私钥,使用所述公钥对数据库中的数据集合进行对齐加密,得到第一密文集合和密文映射,利用哈希算法对所述数据库中的数据集合进行处理,得到第一哈希集合;
将所述公钥发送给采集端,以使所述采集端使用所述公钥对采集到的明文数据集合进行同态加密,得到第二密文集合,以及利用所述哈希算法对所述明文数据集合进行处理,得到第二哈希集合;
将所述第一密文集合、密文映射、第一哈希集合、公钥和所述数据库的数据库ID发送给计算端,以使所述计算端在得到所述采集端发来的所述第二密文集合和第二哈希集合之后,根据所述第一哈希集合和第二哈希集合之间的汉明距离,确定出汉明距离最近的前预设数量条数据所对应的若干候选数据库ID,并根据所述密文映射,确定在所述第一密文集合中与所述候选数据库ID对应的候选密文,以及利用所述公钥通过计算得到所述候选密文与所述第二密文集合之间的密态余弦距离;
获取所述计算端发送的所述候选数据库ID和对应的所述密态余弦距离,使用所述私钥对所述密态余弦距离进行解密得到对应的明文值,根据所述余弦距离的明文值和对应的所述数据库ID确定出所述数据库中与所述明文数据集合最接近的数据。
为实现上述目的,本申请还提供一种计算机存储介质,其上存储有计算机程序,其中所述计算机程序被机器执行时实现如上所述的方法的步骤。
本申请实施例具有如下优点:
本申请实施例提供一种不暴露明文数据的相似性检测方法,包括步骤:生成同态加密的公钥和对应的私钥,使用所述公钥对数据库中的数据集合进行对齐加密,得到第一密文集合和密文映射,利用哈希算法对所述数据库中的数据集合进行处理,得到第一哈希集合;将所述公钥发送给采集端,以使所述采集端使用所述公钥对采集到的明文数据集合进行同态加密,得到第二密文集合,以及利用所述哈希算法对所述明文数据集合进行处理,得到第二哈希集合;将所述第一密文集合、密文映射、第一哈希集合、公钥和所述数据库的数据库ID发送给计算端,以使所述计算端在得到所述采集端发来的所述第二密文集合和第二哈希集合之后,根据所述第一哈希集合和第二哈希集合之间的汉明距离,确定出汉明距离最近的前预设数量条数据所对应的若干候选数据库ID,并根据所述密文映射,确定在所述第一密文集合中与所述候选数据库ID对应的候选密文,以及利用所述公钥通过计算得到所述候选密文与所述第二密文集合之间的密态余弦距离;获取所述计算端发送的所述候选数据库ID和对应的所述密态余弦距离,使用所述私钥对所述密态余弦距离进行解密得到对应的明文值,根据所述余弦距离的明文值和对应的所述数据库ID确定出所述数据库中与所述明文数据集合最接近的数据。
通过上述方法,可以在不暴露原始数据的基础上和数据库中的信息进行比对找出相近的索引,更进一步可以将数据库中的信息进行密文存储,同时可以将计算端设置为承担计算任务的云端,从而在结合高速发展的云计算技术在解决隐私保护的基础上,将大量计算剥离至云端。
附图说明
为了更清楚地说明本申请的实施方式或现有技术中的技术方案,下面将对实施方式或现有技术描述中所需要使用的附图作简单地介绍。显而易见地,下面描述中的附图仅仅是示例性的,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图引伸获得其它的实施附图。
图1为本申请实施例提供的一种不暴露明文数据的相似性检测方法的流程图;
图2为本申请实施例提供的一种不暴露明文数据的相似性检测方法的整体流程示意图;
图3为本申请实施例提供的一种不暴露明文数据的相似性检测方法的数据端初始化过程示意图;
图4为本申请实施例提供的一种不暴露明文数据的相似性检测方法的采集端计算过程示意图;
图5为本申请实施例提供的一种不暴露明文数据的相似性检测方法的计算端计算流程示意图;
图6为本申请实施例提供的一种不暴露明文数据的相似性检测方法的计算端对齐相乘过程示意图;
图7为本申请实施例提供的一种不暴露明文数据的相似性检测装置的模块框图。
具体实施方式
以下由特定的具体实施例说明本申请的实施方式,熟悉此技术的人士可由本说明书所揭露的内容轻易地了解本申请的其他优点及功效,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
此外,下面所描述的本申请不同实施方式中所涉及的技术特征只要彼此之间未构成冲突就可以相互结合。
本申请的实施例中主要以密态人脸数据检测为例来解释说明本申请的方案,应当理解的是,本申请的方案可以应用在以不暴露明文信息的相似性检测为需求的任何应用场景中,例如对指纹信息、瞳孔信息等个人信息的不暴露明文数据的相似性检测,在这些场景中的应用均为本申请的保护范围。
本申请一实施例提供一种不暴露明文数据的相似性检测方法,参考图1和图2,图1为本申请的一实施方式中提供的一种不暴露明文数据的相似性检测方法的流程图,图2为本申请实施例提供的一种不暴露明文数据的相似性检测方法的整体流程示意图,应当理解的是,该方法还可以包括未示出的附加框和/或可以省略所示出的框,本申请的范围在此方面不受限制。
在步骤101处,生成同态加密的公钥和对应的私钥,使用所述公钥对数据库中的数据集合进行对齐加密,得到第一密文集合和密文映射,利用哈希算法对所述数据库中的数据集合进行处理,得到第一哈希集合。
在一些实施例中,所述哈希算法为生物哈希算法。
在一些实施例中,还包括:对所述数据库ID进行脱敏处理,所述脱敏处理的方法包括通过使用sha256哈希对原始的所述数据库ID计算哈希值的方式得到脱敏处理后的所述数据库ID,脱敏处理后的所述数据库ID与所述第一哈希集合中的数据存在一一对应关系。
具体地,由具有全量的人脸数据的数据端来生成同态加密的公钥
Figure 498711DEST_PATH_IMAGE005
和私钥
Figure 826924DEST_PATH_IMAGE006
,将
Figure 966918DEST_PATH_IMAGE006
进行本地安全保存,使用
Figure 671569DEST_PATH_IMAGE005
对数据库中的全量数据集合
Figure 213409DEST_PATH_IMAGE007
进行对齐加密得到对应的第 一密文集合
Figure 213988DEST_PATH_IMAGE008
和密文映射f(又称为ID映射,指根据ID和映射关系可以找到该ID对 应的明文数据在同态加密后得到的密文所存储的位置),同时利用生物哈希(Biohash)算法 对数据集合
Figure 106858DEST_PATH_IMAGE007
中的每条数据计算Biohash,得到对应的第一哈希集合
Figure 84041DEST_PATH_IMAGE009
。 参考图3,其中①代表对数据库中的每条数据计算Biohash,如果数据库中的数据对应的ID 具有敏感信息,并不希望在后续步骤中的计算端暴漏出原始ID,则对数据库中的ID进行脱 敏处理,可以使用sha256哈希对原始数据库ID计算哈希值等等方式得到脱敏后的数据库ID (脱敏ID),脱敏ID和集合
Figure 745966DEST_PATH_IMAGE010
中的数据存在一一对应关系。对数据库中的数据集合X进 行对齐加密处理得到同态密文数据库,加密秘钥为
Figure 415982DEST_PATH_IMAGE005
,对齐加密过程中记录密文映射。
其中,对齐加密和计算包括:工业生产中多较多利用余弦距离来评价两个向量之间的相似度,并且为了降低计算复杂性,通常会在数据预处理过程中进行平方归一化处理,如此一来两条向量只需要计算点乘即可得到它们之间的余弦距离。对齐加密是为了解决数据端单独对每条数据进行加密导致整体加密后密文膨胀过大而无法一次性加载到内存中参与计算的问题,比如ckks算法(同态加密算法)中参数设置为整体可编码的空间为2048,单条待加密的明文数据的长度为512,则可以按照图3的方式将四条明文数据拼为长度为2048的向量后进行加密,同时记录明文和密文之间的映射关系记为密文映射。即通过密文映射可以唯一确定明文对应密文的所处位置,每一个ID都有一个长度为2的密文映射向量,其中第一个数记录了是第几条密文,第二个数记录了处于密文的第几区间。
其中,生物哈希算法包括:
1.从[0,1]的均匀分布中生成随机矩阵rand_mat,维度为n×n,其中n为输入Biohash的向量长度;
2.使用QR(正交三角)分解法对随机矩阵rand_mat进行分解得到一个正交矩阵Q_mat和一个上三角矩阵R_mat;
3.初始化长度为n的Biohash结果向量bio_vec;
4.计算特征向量和正交矩阵Q_mat列向量之间的点积,并将结果存入向量bio_vec的对应位置;
5.对第四步得到的向量bio_vec进行二值化处理,对向量bio_vec内的值求均值并对大于均值的位置取1对小于均值的位置取0得到最终的biohash结果向量bio_vec。
在步骤102处,将所述公钥发送给采集端,以使所述采集端使用所述公钥对采集到的明文数据集合进行同态加密,得到第二密文集合,以及利用所述哈希算法对所述明文数据集合进行处理,得到第二哈希集合。
在一些实施例中,在所述采集端对采集到的所述明文数据集合进行同态加密之前,还包括:
所述采集端对采集到的所述明文数据集合进行扩充补零,所述扩充补零的方法包括:生成四个长度均为4n的向量,其中n代表所述明文数据集合中的明文数据的长度,分别向四个向量中区间为[1:n] [n+1:2n] [2n+1:3n] [3n+1:4n]的位置写入所述明文数据,其他位置的数据依旧为0。
具体地,采集端在接收到数据端的公钥
Figure 530569DEST_PATH_IMAGE011
后,对采集到的明文数据集合
Figure 311443DEST_PATH_IMAGE012
进行扩 充补零后使用
Figure 31137DEST_PATH_IMAGE011
进行加密,得到对应的第二密文集合
Figure 872054DEST_PATH_IMAGE013
,同时使用和数据端相同的 Biohash算法对
Figure 975402DEST_PATH_IMAGE012
计算得到对应的第二哈希集合
Figure 559967DEST_PATH_IMAGE014
。参考图4,其中① 代表Biohash计算得到计算结果为
Figure 930905DEST_PATH_IMAGE015
。②代表将数据Y用数据端发来的公钥
Figure 942724DEST_PATH_IMAGE011
进行 同态加密,加密过程中首先对Y进行扩展补零,假设Y向量的长度为n,扩展补零的具体实现 为: 生成四个长度均为4n的零向量,分别向四个向量中区间为[1:n] [n+1:2n] [2n+1:3n] [3n+1:4n]的位置写入Y,其他位置的数据依旧为0。即第一个零向量中区间为[1:n]的位置 写入采集到的明文数据、第二个零向量中区间为[n+1:2n]的位置写入采集到的明文数据、 第三个零向量中区间为[2n+1:3n]的位置写入采集到的明文数据、第四个零向量中区间为 [3n+1:4n]的位置写入采集到的明文数据。对扩展补零后的新向量使用公钥
Figure 766323DEST_PATH_IMAGE016
进行同态加 密得到一组密文{E1 , E2 , E3 , E4}。假设采集到的数据维度n为512维,则生成四个长度 为2048维度的全零向量并分别在四个区间为[1:512] [513:1024] [1025:1536] [1537: 2048]的位置将512维的明文数据填入,得到四条长度为2048的明文数据,并对这四条向量 进行同态加密得到四个密文。
在步骤103处,将所述第一密文集合、密文映射、第一哈希集合、公钥和所述数据库的数据库ID发送给计算端,以使所述计算端在得到所述采集端发来的所述第二密文集合和第二哈希集合之后,根据所述第一哈希集合和第二哈希集合之间的汉明距离,确定出汉明距离最近的前预设数量条数据所对应的若干候选数据库ID,并根据所述密文映射,确定在所述第一密文集合中与所述候选数据库ID对应的候选密文,以及利用所述公钥通过计算得到所述候选密文与所述第二密文集合之间的密态余弦距离。
具体地,采集端将第二密文集合
Figure 154579DEST_PATH_IMAGE017
和第二哈希集合
Figure 380024DEST_PATH_IMAGE018
发送至计算 端,数据端将第一密文集合
Figure 828323DEST_PATH_IMAGE019
、第一哈希集合
Figure 906263DEST_PATH_IMAGE020
、密文映射f、公钥
Figure 832630DEST_PATH_IMAGE005
发送至 计算端,计算端根据根据
Figure 647003DEST_PATH_IMAGE018
Figure 266203DEST_PATH_IMAGE021
之间的汉明距离(hamming distance,两个等 长字符串在对应位置上不同字符的数目),找出汉明距离最近的前
Figure 329974DEST_PATH_IMAGE022
条脱敏ID(候选数据库 ID)。然后根据该
Figure 794453DEST_PATH_IMAGE022
条脱敏ID和第一密文集合
Figure 994490DEST_PATH_IMAGE019
之间的映射关系找到密态数据库 (第一密文集合)里对应的候选密文,利用公钥
Figure 784592DEST_PATH_IMAGE005
计算同态加密下的密态余弦距离,得到密 态下的密态余弦距离
Figure 294246DEST_PATH_IMAGE023
。参考图5。(注:密文集合在发送过之前首先需要要进行 序列化处理,计算端在接收到序列化后的密文集合以及公钥后可以反序列化密文集合至内 存中进行同态计算。)
其中,利用公钥
Figure 827996DEST_PATH_IMAGE005
计算同态加密下的密态余弦距离的对齐计算流程如图6所示,假 设将长度为n的向量X1、X2、X3、X4拼接到一个长度为4n的向量中得到向量T,长度为n的数据 Y经扩展补零预处理后得到四个长度为4n的向量,分别为E1、E2、E3、E4 。如果需要计算Y· X1 则通过计算E1·T得到,因此在要计算Y和X1同态加密后之间的密态余弦距离,只需计算 E1和T同态加密后的点乘即可。在得到密态余弦距离后用私钥解密得到对应的余弦距离明 文,相似地,如需计算Y和X2同态加密后之间的密态余弦距离可通过计算E2和T同态加密后 的点乘得到。
本申请对于密态余弦距离的计算简化包括:
长度为n的两条向量X1和Y之间的余弦距离计算公式如下:
Figure 882540DEST_PATH_IMAGE024
为了简化同态密文下的计算过程,将向量统一进行平方归一化处理,使向量X1和 向量Y满足
Figure 577963DEST_PATH_IMAGE025
,则上式的余弦距离计算公式可以化简为下式:
Figure 554009DEST_PATH_IMAGE026
因此,在密文下计算密态余弦距离,只需要用到密态乘法和密态加法即可,无需计算密态除法,提高同态下密文间的计算效率。
综上所述X1和Y之间的密态余弦距离密文计算为:
Figure 625871DEST_PATH_IMAGE027
其中
Figure 534921DEST_PATH_IMAGE028
为所述密态余弦距离,其中
Figure 666825DEST_PATH_IMAGE029
代表所述采集端采集的所述 明文数据Y扩展补0后得到的第一条数据E1同态加密后所对应的密文,
Figure 661326DEST_PATH_IMAGE030
代表数据库中X1、 X2、X3、X4向量对齐拼接得到的向量T进行同态加密后的密文,n代表原始单条明文数据的长 度(即
Figure 38343DEST_PATH_IMAGE029
代表所述第二密文集合中的一条密文,
Figure 333058DEST_PATH_IMAGE031
代表所述候选密文中的一条密文,n代表 所述明文数据集合中单条明文数据的长度)。
在步骤104处,获取所述计算端发送的所述候选数据库ID和对应的所述密态余弦距离,使用所述私钥对所述密态余弦距离进行解密得到对应的明文值,根据所述余弦距离的明文值和对应的所述数据库ID确定出所述数据库中与所述明文数据集合最接近的数据。
具体地,计算端将脱敏ID和计算后的密态余弦距离密文集合
Figure 370284DEST_PATH_IMAGE032
发送至数据 端后,数据端根据私钥
Figure 117660DEST_PATH_IMAGE033
对密态余弦距离密文集合
Figure 531324DEST_PATH_IMAGE034
进行解密得到余弦距离的明 文值,然后就可以根据所述明文值确定与采集端采集的数据最接近的数据库中的数据。
通过上述方法,通过对齐加密解决了数据库中大量数据情况下单条加密后整体密文膨胀过大的问题,相比于现有单条加密方案,可以降低密文膨胀为单条数据加密后膨胀的四分之一,以及预先计算Biohash,并根据Biohash的结果计算汉明距离,根据汉明距离筛选候选密文,相比于直接和全量数据计算密文距离,在牺牲了一定精度的情况下极大减小了密文的计算量,满足了实际生产场景中的实时性需求,从而可以在不暴露原始人脸数据的基础上和数据库中的人脸信息进行比对找出相近的人脸索引,更进一步可以将数据库中的人脸信息进行密文存储,同时可以将计算端设置为承担计算任务的云端,从而在结合高速发展的云计算技术在解决隐私保护的基础上,将大量计算剥离至云端,提高了整体的扩展性,更加易用且不会暴漏数据库中的明文至第三方云计算厂商。
以下实施例通过实例对本申请的方法进行举证说明:
假设采集端和数据端协商随机种子后得到随机矩阵rand_mat为:
[[0.77132064 0.02075195 0.63364823 0.74880388 0.49850701 0.22479665
0.19806286 0.76053071 0.16911084 0.08833981]
[0.68535982 0.95339335 0.00394827 0.51219226 0.81262096 0.61252607
0.72175532 0.29187607 0.91777412 0.71457578]
[0.54254437 0.14217005 0.37334076 0.67413362 0.44183317 0.43401399
0.61776698 0.51313824 0.65039718 0.60103895]
[0.80522320.52164715 0.90864888 0.31923609 0.09045935 0.30070006
0.11398436 0.82868133 0.04689632 0.62628715]
[0.54758616 0.8192870.19894754 0.85685030.35165264 0.75464769
0.29596171 0.88393648 0.32551164 0.1650159 ]
[0.39252924 0.09346037 0.82110566 0.15115202 0.38411445 0.94426071
0.98762547 0.45630455 0.82612284 0.25137413]
[0.59737165 0.90283176 0.53455795 0.59020136 0.03928177 0.35718176
0.07961309 0.30545992 0.33071931 0.7738303 ]
[0.03995921 0.42949218 0.31492687 0.63649114 0.34634715 0.04309736
0.87991517 0.76324059 0.87809664 0.41750914]
[0.60557756 0.51346663 0.59783665 0.26221566 0.30087131 0.02539978
0.30306256 0.24207588 0.55757819 0.56550702]
[0.47513225 0.29279798 0.06425106 0.97881915 0.33970784 0.49504863
0.97708073 0.44077382 0.31827281 0.51979699]]
则经过QR分解后得到的正交矩阵Q_mat为
[[-0.41755602 0.53881591 -0.1024212 0.18323167 0.05974535 0.30394324
0.469413380.118163060.38834368 -0.10093163]
[-0.37102095 -0.38952875 -0.45919869 -0.32506432 0.55080340.02209136
-0.06794998 -0.03819522 0.09422619 -0.27432372]
[-0.29370751 0.26052358 -0.11791083 0.2318475 0.10479844 -0.02908078
-0.02139343 0.10829834 -0.85611341 -0.14581617]
[-0.43590923 0.0981627 0.30505791 -0.30967696 -0.3328939 0.05471165
-0.173255 -0.64190647 -0.02605612 -0.23416924]
[-0.29643689 -0.36466965 -0.13289569 0.22724468 -0.14011847 -0.36806989
0.51307664 -0.28727874 -0.06041508 0.45310538]
[-0.21249651 0.19721714 0.52643057 -0.02510806 0.44195024 -0.62172789
-0.09368333 0.15805114 0.14371079 0.04377164]
[-0.32338837 -0.40623576 0.21149861 -0.01693723 -0.45675032 -0.03693509
0.066811290.601012590.02949994 -0.32990719]
[-0.021632 -0.36995865 0.42611251 0.59352008 0.32194706 0.40571832
-0.034939 -0.19883482 0.02191543 -0.13903646]
[-0.32783066 -0.03869343 0.16713313 -0.25746573 0.073129160.42774217
-0.23484077 0.22920754 -0.08247752 0.70285683]
[-0.25721382 0.07185884 -0.35022241 0.48989198 -0.19665504 -0.17982071
-0.64163855 -0.00306904 0.27248059 0.09520325]]
数据库中有6条带脱敏ID的数据如下,其单条数据长度均为10:
IDXXXX1:[3.14191292e-01 6.28382583e-01 2.85628447e-03 5.71256894e-03
1.14251379e-02 2.85628447e-03 3.45610421e-01 3.28472714e-01
4.42724093e-01 2.87913474e-01]
IDXXXX2:[1.78605137e-02 3.57210273e-02 4.10791814e-01 5.91183002e-01
4.30438379e-01 4.48298893e-01 2.89340321e-01 2.32186678e-02
9.82328252e-02 1.42884109e-03]
IDXXXX3:[2.99902512e-01 2.98410460e-03 3.43172029e-01 4.93869312e-01
6.57995065e-01 7.60946673e-02 9.25072426e-02 3.17807140e-01
8.20628765e-03 1.19364184e-03]
IDXXXX4:[5.22227558e-04 1.67112818e-01 6.78895825e-02 2.77302833e-01
2.14113299e-02 3.92192896e-01 4.50160155e-01 4.76793760e-01
5.50950073e-01 5.26405378e-02]
IDXXXX5:[1.18516619e-01 1.80596753e-01 2.42676887e-01 2.99677737e-01
2.31389590e-02 4.23838005e-01 3.49906209e-02 5.15265111e-01
5.95404921e-01 5.68879772e-02]
IDXXXX6:[1.94164118e-01 3.88328237e-01 5.29538504e-03 1.76512835e-03
3.70676953e-03 9.00215458e-03 4.62463627e-01 3.75972338e-01
4.23630804e-01 5.26008248e-01]
根据正交矩阵Q_mat对每条数据计算Biohash得到对应结果:
IDXXXX1: [0 0 0 1 1 1 0 1 1 0]
IDXXXX2: [0 1 1 1 1 0 1 0 0 1]
IDXXXX3: [0 0 1 1 0 1 1 0 0 1]
IDXXXX4: [0 0 1 1 1 1 0 1 0 1]
IDXXXX5: [0 0 1 1 1 1 0 0 0 1]
IDXXXX6: [0 0 0 1 1 1 0 1 1 1]
生成公钥pk和私钥sk,pk发送至采集端,将6条数据使用对齐加密,每3条数据拼成在一起使用公钥pk加密得到两条密文,并在此过程中生成密文映射:
使用公钥pk加密加密如下两条对齐后的数据进行加密
[ 3.14191292e-01 6.28382583e-01 2.85628447e-03 5.71256894e-03
1.14251379e-02 2.85628447e-03 3.45610421e-01 3.28472714e-01
4.42724093e-01 2.87913474e-01 1.78605137e-02 3.57210273e-02
4.10791814e-01 5.91183002e-01 4.30438379e-01 4.48298893e-01
2.89340321e-01 2.32186678e-02 9.82328252e-02 1.42884109e-03
2.99902512e-01 2.98410460e-03 3.43172029e-01 4.93869312e-01
6.57995065e-01 7.60946673e-02 9.25072426e-02 3.17807140e-01
8.20628765e-03 1.19364184e-03]
[ 5.22227558e-04 1.67112818e-01 6.78895825e-02 2.77302833e-01
2.14113299e-02 3.92192896e-01 4.50160155e-01 4.76793760e-01
5.50950073e-01 5.26405378e-02 1.18516619e-01 1.80596753e-01
2.42676887e-01 2.99677737e-01 2.31389590e-02 4.23838005e-01
3.49906209e-02 5.15265111e-01 5.95404921e-01 5.68879772e-02
1.94164118e-01 3.88328237e-01 5.29538504e-03 1.76512835e-03
3.70676953e-03 9.00215458e-03 4.62463627e-01 3.75972338e-01
4.23630804e-01 5.26008248e-01]
得到数据端密文1和数据端密文2。
密文映射如下:
IDXXXX1:(1, 1)
IDXXXX2:(1, 2)
IDXXXX3:(1, 3)
IDXXXX4:(2, 1)
IDXXXX5:(2, 2)
IDXXXX6:(2, 3)
整体结果如下:
Figure 414966DEST_PATH_IMAGE035
将脱敏ID、Biohash结果、数据端密文1、数据端密文2、密文映射发送至计算端。
采集端采集数据为:
[0.00384850.00769701 0.42333529 0.46182032 0.46566882 0.47336583
0.40794128 0.00500305 0.00731216 0.00423335]
根据正交矩阵Q_mat计算Biohash得到对应的结果:
[0 1 1 1 0 0 1 1 0 1]
对采集数据进行扩展补零:
[0.00384850.00769701 0.42333529 0.46182032 0.46566882 0.47336583
0.40794128 0.00500305 0.00731216 0.00423335 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0]
[0 0 0 0 0 0 0 0 0 00.00384850.00769701 0.42333529 0.461820320.46566882 0.47336583
0.40794128 0.00500305 0.00731216 0.004233350 0 0 0 0 0 0 0 0 0]
[0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.00384850.007697010.42333529 0.46182032 0.46566882 0.47336583 0.40794128 0.00500305 0.007312160.00423335]
并对上面三条补零后的数据使用数据端发来的pk进行加密得到采集端密文1 采集端密文2 采集端密文3, 将三条密文和Biohash结果发送至计算端。
计算端在接收到数据端和采集端发送来的数据后,先根据两边Biohash的结果计算汉明距离,得到:
Figure 826356DEST_PATH_IMAGE036
根据汉明距离找出排在前3的候选密文进行计算,由上表可知IDXXXX2、IDXXXX3、IDXXXX4为候选密文对应的脱密ID,根据这两个脱敏ID对应的密文映射分别为(1,2) (1,3)(2,1) 可知需要计算同态:
①数据端密文1点乘采集端密文2得到密态余弦距离密文1;
②数据端密文1点乘采集端密文3得到密态余弦距离密文2;
③数据端密文2点乘采集端密文1得到密态余弦距离密文3。
将{IDXXXX2,密态余弦距离密文1}{IDXXXX3,密态余弦距离密文2} {IDXXXX4,密态余弦距离密文3}发送至数据端。
数据端在接收到计算端发来的{IDXXXX2,密态余弦距离密文1}{IDXXXX3,密态余弦距离密文2} {IDXXXX4,密态余弦距离密文3}后,使用私钥sk对密态余弦距离密文记性解密得到距离明文分别为:
{IDXXXX2, 0.9787921549119598},
{IDXXXX3, 0.7563538488613263},
{IDXXXX4, 0.5439895343424688},
由此可知采集端采集到的数据和数据库中IDXXXX2所对应的数据最为接近。
图7为本申请实施例提供的一种不暴露明文数据的相似性检测装置的模块框图。该装置包括:
存储器201;以及与所述存储器201连接的处理器202,所述处理器202被配置成:生成同态加密的公钥和对应的私钥,使用所述公钥对数据库中的数据集合进行对齐加密,得到第一密文集合和密文映射,利用哈希算法对所述数据库中的数据集合进行处理,得到第一哈希集合;
将所述公钥发送给采集端,以使所述采集端使用所述公钥对采集到的明文数据集合进行同态加密,得到第二密文集合,以及利用所述哈希算法对所述明文数据集合进行处理,得到第二哈希集合;
将所述第一密文集合、密文映射、第一哈希集合、公钥和所述数据库的数据库ID发送给计算端,以使所述计算端在得到所述采集端发来的所述第二密文集合和第二哈希集合之后,根据所述第一哈希集合和第二哈希集合之间的汉明距离,确定出汉明距离最近的前预设数量条数据所对应的若干候选数据库ID,并根据所述密文映射,确定在所述第一密文集合中与所述候选数据库ID对应的候选密文,以及利用所述公钥通过计算得到所述候选密文与所述第二密文集合之间的密态余弦距离;
获取所述计算端发送的所述候选数据库ID和对应的所述密态余弦距离,使用所述私钥对所述密态余弦距离进行解密得到对应的明文值,根据所述余弦距离的明文值和对应的所述数据库ID确定出所述数据库中与所述明文数据集合最接近的数据。
在一些实施例中,所述处理器202还被配置成:在所述采集端对采集到的所述明文数据集合进行同态加密之前,还包括:
所述采集端对采集到的所述明文数据集合进行扩充补零,所述扩充补零的方法包括:生成四个长度均为4n的向量,其中n代表所述明文数据集合中的明文数据的长度,分别向四个向量中区间为[1:n] [n+1:2n] [2n+1:3n] [3n+1:4n]的位置写入所述明文数据,其他位置的数据依旧为0。
在一些实施例中,所述处理器202还被配置成:在将所述数据库ID发送给所述计算端之前,还包括:
对所述数据库ID进行脱敏处理,所述脱敏处理的方法包括通过使用sha256哈希对原始的所述数据库ID计算哈希值的方式得到脱敏处理后的所述数据库ID,脱敏处理后的所述数据库ID与所述第一哈希集合中的数据存在一一对应关系。
在一些实施例中,所述处理器202还被配置成:所述哈希算法为生物哈希算法,所述生物哈希算法的计算方法包括:
从[0,1]的均匀分布中生成随机矩阵,维度为n×n,其中n为所述生物哈希算法的输入向量的长度;
使用正交三角分解法对所述随机矩阵进行分解得到一个正交矩阵和一个上三角矩阵;
初始化长度为n所述生物哈希算法的结果向量;
获取特征向量和所述正交矩阵的列向量之间的点积,并将结果存入所述结果向量的对应位置,然后对所述结果向量进行二值化处理,对所述结果向量内的值求均值并对大于均值的位置取1,对小于均值的位置取0得到最终的所述结果向量。
在一些实施例中,所述处理器202还被配置成:利用所述公钥通过计算得到所述密态余弦距离的方法包括:
利用公式:
Figure 795449DEST_PATH_IMAGE037
计算得到所述密态余弦距离,其中
Figure 12804DEST_PATH_IMAGE038
为所述密态余弦距离,X1代表数 据库中的明文数据,Y代表采集端得到的明文数据,
Figure 252418DEST_PATH_IMAGE039
代表所述第二密文集合中的一条密 文,
Figure 897025DEST_PATH_IMAGE040
代表所述候选密文中的一条密文,n代表所述明文数据集合中的明文数据的长度。
具体实现方法参考前述方法实施例,此处不再赘述。
本申请可以是方法、装置、系统和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用于执行本申请的各个方面的计算机可读程序指令。
计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是――但不限于――电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式压缩盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的计算机可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其他自由传播的电磁波、通过波导或其他传输媒介传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输的电信号。
这里所描述的计算机可读程序指令可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。
用于执行本申请操作的计算机程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码,所述编程语言包括面向对象的编程语言—诸如Smalltalk、C++等,以及常规的过程式编程语言—诸如“C”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实施例中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA),该电子电路可以执行计算机可读程序指令,从而实现本申请的各个方面。
这里参照根据本申请实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本申请的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。
这些计算机可读程序指令可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理单元,从而生产出一种机器,使得这些指令在通过计算机或其他可编程数据处理装置的处理单元执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。
也可以把计算机可读程序指令加载到计算机、其他可编程数据处理装置、或其他设备上,使得在计算机、其他可编程数据处理装置或其他设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其他可编程数据处理装置、或其他设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。
附图中的流程图和框图显示了根据本申请的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,所述模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
注意,除非另有直接说明,否则本说明书(包含任何所附权利要求、摘要和附图)中所揭示的所有特征皆可由用于达到相同、等效或类似目的的可替代特征来替换。因此,除非另有明确说明,否则所公开的每一个特征仅是一组等效或类似特征的一个示例。在使用到的情况下,进一步地、较优地、更进一步地和更优地是在前述实施例基础上进行另一实施例阐述的简单起头,该进一步地、较优地、更进一步地或更优地后带的内容与前述实施例的结合作为另一实施例的完整构成。在同一实施例后带的若干个进一步地、较优地、更进一步地或更优地设置之间可任意组合的组成又一实施例。
虽然,上文中已经用一般性说明及具体实施例对本申请作了详尽的描述,但在本申请基础上,可以对之作一些修改或改进,这对本领域技术人员而言是显而易见的。因此,在不偏离本申请精神的基础上所做的这些修改或改进,均属于本申请要求保护的范围。

Claims (10)

1.一种不暴露明文数据的相似性检测方法,其特征在于,包括以下步骤:
生成同态加密的公钥和对应的私钥,使用所述公钥对数据库中的数据集合进行对齐加密,得到第一密文集合和密文映射,利用哈希算法对所述数据库中的数据集合进行处理,得到第一哈希集合;
将所述公钥发送给采集端,以使所述采集端使用所述公钥对采集到的明文数据集合进行同态加密,得到第二密文集合,以及利用所述哈希算法对所述明文数据集合进行处理,得到第二哈希集合;
将所述第一密文集合、密文映射、第一哈希集合、公钥和所述数据库的数据库ID发送给计算端,以使所述计算端在得到所述采集端发来的所述第二密文集合和第二哈希集合之后,根据所述第一哈希集合和第二哈希集合之间的汉明距离,确定出汉明距离最近的前预设数量条数据所对应的若干候选数据库ID,并根据所述密文映射,确定在所述第一密文集合中与所述候选数据库ID对应的候选密文,以及利用所述公钥通过计算得到所述候选密文与所述第二密文集合之间的密态余弦距离;
获取所述计算端发送的所述候选数据库ID和对应的所述密态余弦距离,使用所述私钥对所述密态余弦距离进行解密得到对应的明文值,根据对应的余弦距离的明文值和对应的所述数据库ID确定出所述数据库中与所述明文数据集合最接近的数据。
2.根据权利要求1所述的不暴露明文数据的相似性检测方法,其特征在于,在所述采集端对采集到的所述明文数据集合进行同态加密之前,还包括:
所述采集端对采集到的所述明文数据集合进行扩充补零,所述扩充补零的方法包括:生成四个长度均为4n的向量,其中n代表所述明文数据集合中的明文数据的向量长度,分别向四个向量中区间为[1:n] [n+1:2n] [2n+1:3n] [3n+1:4n]的位置写入所述明文数据,其他位置的数据依旧为0。
3.根据权利要求1所述的不暴露明文数据的相似性检测方法,其特征在于,在将所述数据库ID发送给所述计算端之前,还包括:
对所述数据库ID进行脱敏处理,所述脱敏处理的方法包括通过使用sha256哈希对原始的所述数据库ID计算哈希值的方式得到脱敏处理后的所述数据库ID,脱敏处理后的所述数据库ID与所述第一哈希集合中的数据存在一一对应关系。
4.根据权利要求1所述的不暴露明文数据的相似性检测方法,其特征在于,所述哈希算法为生物哈希算法,所述生物哈希算法的计算方法包括:
从[0,1]的均匀分布中生成随机矩阵,维度为n×n,其中n为所述生物哈希算法的输入向量的长度;
使用正交三角分解法对所述随机矩阵进行分解得到一个正交矩阵和一个上三角矩阵;
初始化长度为n所述生物哈希算法的结果向量;
获取特征向量和所述正交矩阵的列向量之间的点积,并将结果存入所述结果向量的对应位置,然后对所述结果向量进行二值化处理,对所述结果向量内的值求均值并对大于均值的位置取1,对小于均值的位置取0得到最终的所述结果向量。
5.根据权利要求1所述的不暴露明文数据的相似性检测方法,其特征在于,利用所述公钥通过计算得到所述密态余弦距离的方法包括:
利用公式:
Figure DEST_PATH_IMAGE001
计算得到所述密态余弦距离,其中
Figure 920300DEST_PATH_IMAGE002
为所述密态余弦距离,
Figure DEST_PATH_IMAGE003
代表 所述第二密文集合中的一条密文,
Figure 899757DEST_PATH_IMAGE004
代表所述候选密文中的一条密文,n代表所述明文数 据集合中的明文数据的长度。
6.一种不暴露明文数据的相似性检测装置,其特征在于,包括:
存储器;以及
与所述存储器连接的处理器,所述处理器被配置成:
生成同态加密的公钥和对应的私钥,使用所述公钥对数据库中的数据集合进行对齐加密,得到第一密文集合和密文映射,利用哈希算法对所述数据库中的数据集合进行处理,得到第一哈希集合;
将所述公钥发送给采集端,以使所述采集端使用所述公钥对采集到的明文数据集合进行同态加密,得到第二密文集合,以及利用所述哈希算法对所述明文数据集合进行处理,得到第二哈希集合;
将所述第一密文集合、密文映射、第一哈希集合、公钥和所述数据库的数据库ID发送给计算端,以使所述计算端在得到所述采集端发来的所述第二密文集合和第二哈希集合之后,根据所述第一哈希集合和第二哈希集合之间的汉明距离,确定出汉明距离最近的前预设数量条数据所对应的若干候选数据库ID,并根据所述密文映射,确定在所述第一密文集合中与所述候选数据库ID对应的候选密文,以及利用所述公钥通过计算得到所述候选密文与所述第二密文集合之间的密态余弦距离;
获取所述计算端发送的所述候选数据库ID和对应的所述密态余弦距离,使用所述私钥对所述密态余弦距离进行解密得到对应的明文值,根据余弦距离的明文值和对应的所述数据库ID确定出所述数据库中与所述明文数据集合最接近的数据。
7.根据权利要求6所述的不暴露明文数据的相似性检测装置,其特征在于,所述处理器还被配置成:
在所述采集端对采集到的所述明文数据集合进行同态加密之前,还包括:
所述采集端对采集到的所述明文数据集合进行扩充补零,所述扩充补零的方法包括:生成四个长度均为4n的向量,其中n代表所述明文数据集合中的明文数据的向量长度,分别向四个向量中区间为[1:n] [n+1:2n] [2n+1:3n] [3n+1:4n]的位置写入所述明文数据,其他位置的数据依旧为0。
8.根据权利要求6所述的不暴露明文数据的相似性检测装置,其特征在于,所述处理器还被配置成:
在将所述数据库ID发送给所述计算端之前,还包括:
对所述数据库ID进行脱敏处理,所述脱敏处理的方法包括通过使用sha256哈希对原始的所述数据库ID计算哈希值的方式得到脱敏处理后的所述数据库ID,脱敏处理后的所述数据库ID与所述第一哈希集合中的数据存在一一对应关系。
9.根据权利要求6所述的不暴露明文数据的相似性检测装置,其特征在于,所述处理器还被配置成:
所述哈希算法为生物哈希算法,所述生物哈希算法的计算方法包括:
从[0,1]的均匀分布中生成随机矩阵,维度为n×n,其中n为所述生物哈希算法的输入向量的长度;
使用正交三角分解法对所述随机矩阵进行分解得到一个正交矩阵和一个上三角矩阵;
初始化长度为n所述生物哈希算法的结果向量;
获取特征向量和所述正交矩阵的列向量之间的点积,并将结果存入所述结果向量的对应位置,然后对所述结果向量进行二值化处理,对所述结果向量内的值求均值并对大于均值的位置取1,对小于均值的位置取0得到最终的所述结果向量。
10.一种计算机存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被机器执行时实现如权利要求1至5中任一项所述的方法的步骤。
CN202211508242.2A 2022-11-29 2022-11-29 一种不暴露明文数据的相似性检测方法、装置及存储介质 Active CN115544552B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211508242.2A CN115544552B (zh) 2022-11-29 2022-11-29 一种不暴露明文数据的相似性检测方法、装置及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211508242.2A CN115544552B (zh) 2022-11-29 2022-11-29 一种不暴露明文数据的相似性检测方法、装置及存储介质

Publications (2)

Publication Number Publication Date
CN115544552A true CN115544552A (zh) 2022-12-30
CN115544552B CN115544552B (zh) 2023-03-14

Family

ID=84721872

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211508242.2A Active CN115544552B (zh) 2022-11-29 2022-11-29 一种不暴露明文数据的相似性检测方法、装置及存储介质

Country Status (1)

Country Link
CN (1) CN115544552B (zh)

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170201371A1 (en) * 2016-01-07 2017-07-13 Empire Technology Development Llc Homomorphic public-key encryption scheme
CN112860933A (zh) * 2021-01-15 2021-05-28 韩山师范学院 密文图像检索方法、装置、终端设备及存储介质
CN114239074A (zh) * 2022-02-25 2022-03-25 蓝象智联(杭州)科技有限公司 一种不暴露中间结果的私有数据隐匿求交方法
CN114239031A (zh) * 2021-12-21 2022-03-25 深圳市中悦科技有限公司 一种用户隐私数据的处理方法及处理装置
WO2022068354A1 (zh) * 2020-09-29 2022-04-07 深圳壹账通智能科技有限公司 数据验证方法、装置、设备以及存储介质
WO2022120699A1 (zh) * 2020-12-10 2022-06-16 深圳大学 单向代理重加密方法、装置、电子设备及系统
CN114785480A (zh) * 2022-04-12 2022-07-22 支付宝(杭州)信息技术有限公司 多方安全计算的方法、装置及系统
CN114943090A (zh) * 2022-07-22 2022-08-26 图灵人工智能研究院(南京)有限公司 一种基于同态加密大规模人脸库隐匿查询的方法
WO2022213956A1 (zh) * 2021-04-06 2022-10-13 京东科技控股股份有限公司 数据传输方法、装置及电子设备、存储介质

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170201371A1 (en) * 2016-01-07 2017-07-13 Empire Technology Development Llc Homomorphic public-key encryption scheme
WO2022068354A1 (zh) * 2020-09-29 2022-04-07 深圳壹账通智能科技有限公司 数据验证方法、装置、设备以及存储介质
WO2022120699A1 (zh) * 2020-12-10 2022-06-16 深圳大学 单向代理重加密方法、装置、电子设备及系统
CN112860933A (zh) * 2021-01-15 2021-05-28 韩山师范学院 密文图像检索方法、装置、终端设备及存储介质
WO2022213956A1 (zh) * 2021-04-06 2022-10-13 京东科技控股股份有限公司 数据传输方法、装置及电子设备、存储介质
CN114239031A (zh) * 2021-12-21 2022-03-25 深圳市中悦科技有限公司 一种用户隐私数据的处理方法及处理装置
CN114239074A (zh) * 2022-02-25 2022-03-25 蓝象智联(杭州)科技有限公司 一种不暴露中间结果的私有数据隐匿求交方法
CN114785480A (zh) * 2022-04-12 2022-07-22 支付宝(杭州)信息技术有限公司 多方安全计算的方法、装置及系统
CN114943090A (zh) * 2022-07-22 2022-08-26 图灵人工智能研究院(南京)有限公司 一种基于同态加密大规模人脸库隐匿查询的方法

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
HAIHUALIANG 等: "《Huffman-code based retrieval for encrypted JPEG images》", 《JOURNAL OF VISUAL COMMUNICATION AND IMAGE REPRESENTATION》 *
李浪等: "HES:一种更小公钥的同态加密算法", 《衡阳师范学院学报》 *
杨竞: "《同态加密关键技术研究》", 《中国博士学位论文全文数据库》 *

Also Published As

Publication number Publication date
CN115544552B (zh) 2023-03-14

Similar Documents

Publication Publication Date Title
Hu et al. Securing SIFT: Privacy-preserving outsourcing computation of feature extractions over encrypted image data
US10826680B2 (en) Collation system, collation method, and non-transitory recording medium
JP6413743B2 (ja) 暗号処理装置、暗号処理方法、及び暗号処理プログラム
JP2014126865A (ja) 暗号処理装置および方法
JP2014002365A (ja) プライバシーを保護することができる暗号化データの問い合わせ方法及びシステム
JP2016080766A (ja) 暗号処理方法、暗号処理装置、及び暗号処理プログラム
EP3644544A1 (en) Method for comparing ciphertext using homomorphic encryption and apparatus for executing thereof
CN115567188B (zh) 一种多键值隐匿求交方法、装置及存储介质
JP6451938B2 (ja) 暗号文照合システム、方法、およびプログラム
Gupta et al. Session key based novel lightweight image encryption algorithm using a hybrid of Chebyshev chaotic map and crossover
Kim et al. A privacy-preserving k-means clustering algorithm using secure comparison protocol and density-based center point selection
JP5972181B2 (ja) 改ざん検知装置、改ざん検知方法、およびプログラム
EP3633656B1 (en) Secret tampering detection system, secret tampering detection apparatus, secret tampering detection method, and program
CN111475690B (zh) 字符串的匹配方法和装置、数据检测方法、服务器
CN115544552B (zh) 一种不暴露明文数据的相似性检测方法、装置及存储介质
KR102515682B1 (ko) 분산형 기계 학습 모델의 트레이닝 방법, 장치, 설비 및 매체
CN111931204A (zh) 用于分布式系统的加密去重存储方法、终端设备
US20240048360A1 (en) Method for processing multi-source data
CN111935163B (zh) 保护隐私的数据联合处理方法及装置
Ibarrondo et al. Funshade: Function Secret Sharing for Two-Party Secure Thresholded Distance Evaluation
CN114095157B (zh) 密钥管理方法、装置、计算机设备及可读存储介质
CN114817970B (zh) 基于数据来源保护的数据分析方法、系统及相关设备
US10903975B2 (en) Apparatus and method for performing operation being secure against side channel attack
EP4024755B1 (en) Secured performance of an elliptic curve cryptographic process
CN116318621B (zh) 一种基于同态加密的产业物联数据隐私保护系统

Legal Events

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