CN108140334A - 隐匿检索系统、管理装置、隐匿检索方法和隐匿检索程序 - Google Patents

隐匿检索系统、管理装置、隐匿检索方法和隐匿检索程序 Download PDF

Info

Publication number
CN108140334A
CN108140334A CN201580083638.9A CN201580083638A CN108140334A CN 108140334 A CN108140334 A CN 108140334A CN 201580083638 A CN201580083638 A CN 201580083638A CN 108140334 A CN108140334 A CN 108140334A
Authority
CN
China
Prior art keywords
data
retrieval
encryption
similarity
ciphertext
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
CN201580083638.9A
Other languages
English (en)
Other versions
CN108140334B (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.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric Corp
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 Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Publication of CN108140334A publication Critical patent/CN108140334A/zh
Application granted granted Critical
Publication of CN108140334B publication Critical patent/CN108140334B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/33Querying
    • G06F16/3331Query processing
    • G06F16/334Query execution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/903Querying
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/951Indexing; Web crawling techniques
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09CCIPHERING OR DECIPHERING APPARATUS FOR CRYPTOGRAPHIC OR OTHER PURPOSES INVOLVING THE NEED FOR SECRECY
    • G09C1/00Apparatus or methods whereby a given sequence of signs, e.g. an intelligible text, is transformed into an unintelligible sequence of signs by transposing the signs or groups of signs or by replacing them by others according to a predetermined system
    • 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
    • H04L9/0869Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
    • 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/0894Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage

Landscapes

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

Abstract

具有:加密相似度计算部(504),其对通过同态加密进行加密后的保管数据即保管加密数据(620)和在保管数据的检索中使用的通过同态加密进行加密后的检索数据即检索加密数据(720)进行同态运算,由此计算通过同态加密对保管数据与检索数据的相似度进行加密而成的加密相似度(5041);以及加密结果发送部(505),其使用加密相似度(5041)生成表示相似度是否在阈值θ以内的加密检索结果(5001),并发送给检索装置。

Description

隐匿检索系统、管理装置、隐匿检索方法和隐匿检索程序
技术领域
本发明涉及隐匿检索系统、管理装置、隐匿检索方法和隐匿检索程序。
背景技术
隐匿检索是能够在对检索对象数据和检索内容进行加密的状态下进行检索的技术。
近年来,由于云服务等的普及,已经能够在互联网上进行数据管理。但是,在互联网上的数据管理中,存在由于数据管理委托目的地即云服务器感染计算机病毒等恶意软件、或者服务器的管理者进行不正当动作等而向外部泄漏寄存数据的危险性。如果服务器中寄存的数据是个人信息或企业机密数据,则该泄漏是非常严重的问题。
作为避免这种安全性威胁的方法,存在加密技术。但是,当单纯地对数据进行加密并保管在服务器中时,产生无法进行数据检索这样的问题。为了避免这种问题,以往采取在进行检索时暂时对服务器上保管的加密数据进行解密后进行检索这样的方法。但是,数据在服务器内在一定期间内返回到明文,因此,作为安全性对策并不充分。因此,提出了能够在对数据加密后的状态下进行检索的加密技术即隐匿检索技术,近年来公开了很多隐匿检索技术的具体方法。
在非专利文献1中,作为隐匿检索技术中的检索功能,公开了能够进行单纯检索即完全一致检索的方式。
并且,在专利文献1、专利文献2、专利文献3和非专利文献2中公开了能够进行更加灵活的检索即相似度检索的方式。此后,将能够进行相似度检索的隐匿检索技术称作隐匿相似度检索技术。在专利文献1和非专利文献2中公开了使用能够在加密后的状态下进行运算的被称作同态加密的特殊加密技术高效地计算海明距离的隐匿相似度检索技术。
并且,在非专利文献3、非专利文献4、非专利文献5、非专利文献6中也公开了同态加密。
在隐匿相似度检索技术中,能够根据数据登记者在服务器中保管的加密数据和数据检索者希望检索的数据的密文,在进行隐匿而不对它们进行解密的状态下,计算各自的明文之间的相似度。此后,将数据登记者在服务器中保管的加密数据称作保管加密数据。并且,将数据检索者希望检索的数据的密文称作检索加密数据。并且,作为明文之间的相似度的具体例,是保管加密数据的明文与检索加密数据的明文的欧几里德平方距离等。
在服务器中,如果存在来自数据检索者的检索请求即相似度计算请求,则在对相似度进行隐匿的状态下进行计算,向数据检索者发送其计算结果。然后,数据检索者通过进行解密,能够得知相似度。这样,隐匿相似度检索技术不仅具有作为检索的方面,而且具有作为隐匿分析技术的方面。
作为具体例,在设数据登记者为患者、数据检索者为分析者时,隐匿相似度检索技术能够在保护患者隐私的状态下,即进行加密而不公开患者的个人数据的状态下进行分析。因此,患者能够安心地委托数据分析者进行分析。由此,从隐私保护的观点来看,这种隐匿相似度检索技术也非常有用。
现有技术文献
专利文献
专利文献1:日本特开2015-031935号公报
专利文献2:日本特开2013-105207号公报
专利文献3:国际公开第2013/038698号
非专利文献
非专利文献1:D.Boneh,G.D.Crescenzo,R.Ostrovsky,and G.Persiano,“PublicKey Encryption with Keyword Search”,EUROCRYPT 2004,Lecture Notes in ComputerScience 3027,Springer,2004.
非专利文献2:小暮、安田、下山、小柴、横山.“準同型暗号を用いた秘匿検索”,第31回暗号と情報セキュリティシンポジウム(SCIS2014),1D3-5,2014.
非专利文献3:C.Gentry,“Fully Homomorphic Encryption Using IdealLattices”,ACM Symposium on Theory of Computing,p.169-178,2009.
非专利文献4:D.Boneh,E-J.Goh,and K.Nissim,“Evaluating 2-DNF Formulason Ciphertexts”,TCC 2005,Lecture Notes in Computer Science 3378,Springer,2005.
非专利文献5:P.Paillier,“Public-Key Cryptosystems Based on CompositeDegree Residuosity Classes”,Eurocrypt 1999,Lecture Notes in Computer Science1592,Springer,1999.
非专利文献6:D.Catalano and D.Fiore,“Boosting Linearly-HomomorphicEncryption to Evaluate Degree-2 Functions on Encrypted Data”,IACR CryptologyePrint Archive:Report 2014/813.
发明内容
发明要解决的课题
对现有的隐匿相似度检索技术的课题进行说明。
在专利文献1和非专利文献2中公开了使用能够在加密后的状态下进行运算的被称作同态加密的特殊加密技术高效地计算海明距离的隐匿相似度检索技术。在此公开的方法中,数据检索者进行数据检索的结果是,数据检索者能够通过明文得知保管加密数据的明文与检索加密数据的明文的相似度。另外,在服务器上完全不出现该相似度的值。此时,数据检索者有可能能够根据检索加密数据的明文和相似度这2个数据,推测保管加密数据的明文。
利用具体例进行说明。当设保管加密数据的明文为(0,0,0,1,1)、检索加密数据的明文为(0,0,0)时,数据检索者能够得到(0,1,2)作为检索结果的相似度即海明距离。具体而言,在利用(0,0,0)检索(0,0,0,1,1)的情况下,数据检索者能够得到(0,0,0,1,1)的最初的3个成分即(0,0,0)与(0,0,0)的海明距离(=0)、(0,0,0,1,1)的接下来的3个成分即(0,0,1)与(0,0,0)的海明距离(=1)、(0,0,0,1,1)的接下来的3个成分即(0,1,1)与(0,0,0)的海明距离(=2)。
另一方面,设检索加密数据的明文为(0,0,0),数据检索者得到(0,1,2)作为该明文(0,0,0)与保管加密数据的明文的海明距离。此时,数据检索者能够简单地将该保管加密数据的明文确定为(0,0,0,1,1)。
如上所述,在设数据登记者为患者、数据检索者为分析者时,分析者有可能能够根据检索数据和相似度推测患者的数据。因此,存在即使使用专利文献1和非专利文献2公开的方法也无法保护患者隐私这样的课题。
在专利文献2中公开了使用将与保管加密数据的明文有关的哈希值和保管加密数据关联起来进行保管的明文的辅助信息的隐匿相似度检索技术。但是,该明文的辅助信息是保管加密数据的明文的直接的部分信息,因此,有可能根据该辅助信息推测保管加密数据的明文。由此,存在即使使用专利文献2的方法也无法实现充分的安全性这样的课题。
在专利文献3中公开了如下方式的隐匿相似度检索技术:针对数据检索者不公开相似度本身,仅在相似度在阈值以内的情况下公开相似度,或者仅公开相似度是否在阈值以内。但是,在专利文献3中由服务器进行的相似度计算处理中,使用登记数据的明文进行处理。因此,是以保管着的数据未被加密为前提的。即,认为服务器不是第三方的,而是数据登记者的所有物。由此,存在在数据登记者未持有服务器的状态下无法在保护隐私的状态下委托外部进行分析这样的课题。
本发明的目的在于,提供一种隐匿检索系统,能够根据保管加密数据和检索加密数据进行相似度计算而完全不使用明文信息,并且输出表示相似度是否在阈值以内的信息。
用于解决课题的手段
本发明的隐匿检索系统具有管理装置和检索装置,所述管理装置具有:加密相似度计算部,其对通过同态加密进行加密后的保管数据即保管加密数据和在所述保管数据的检索中使用的通过所述同态加密进行加密后的检索数据即检索加密数据进行同态运算,由此计算通过所述同态加密对所述保管数据与所述检索数据的相似度进行加密而成的加密相似度;以及加密结果发送部,其使用所述加密相似度生成表示所述相似度是否在阈值以内的加密检索结果,发送所生成的所述加密检索结果,所述检索装置具有:解密部,其对从所述管理装置发送的所述加密检索结果进行解密,输出解密后的所述加密检索结果作为检索结果;以及输出部,其根据所述检索结果输出表示所述相似度是否在所述阈值以内的检索结果信息。
发明效果
本发明的隐匿检索系统具有管理装置,该管理装置具有:加密相似度计算部,其对保管加密数据和检索加密数据进行同态运算,由此,计算对保管数据与检索数据的相似度进行加密而成的加密相似度而不使用作为明文的保管数据和检索数据;以及加密结果发送部,其使用加密相似度生成表示相似度是否在阈值以内的加密检索结果,发送所生成的加密检索结果。并且,本发明的隐匿检索系统具有检索装置,该检索装置具有:解密部,其对从管理装置接收到的加密检索结果进行解密,作为检索结果进行输出;以及输出部,其根据检索结果输出表示相似度是否在阈值以内的检索结果信息。由此,根据本发明的隐匿检索系统,能够根据保管加密数据和检索加密数据计算加密后的加密相似度而不使用明文,并且,输出表示相似度是否在阈值以内的检索结果信息而不输出相似度本身,因此,能够提供安全性更高的隐匿检索系统。
附图说明
图1是实施方式1的隐匿检索系统100的系统结构图。
图2是实施方式1的密钥生成装置200的结构框图。
图3是实施方式1的登记装置300的结构框图。
图4是实施方式1的检索装置400的结构框图。
图5是实施方式1的管理装置500的结构框图。
图6是示出实施方式1的隐匿检索系统100的隐匿检索方法9100、隐匿检索程序9200的隐匿检索处理S100的流程的流程图。
图7是示出实施方式1的隐匿检索系统100的密钥生成处理S110的流程图。
图8是示出实施方式1的隐匿检索系统100的登记处理S120的流程图。
图9是示出实施方式1的隐匿检索系统100的检索处理S130的流程图。
图10是示出实施方式1的隐匿检索系统100的删除处理S140的流程图。
图11是实施方式2的管理装置500a的结构框图。
图12是示出实施方式2中的隐匿检索系统100的检索处理S130a的流程图。
图13是示出实施方式3中的隐匿检索系统100的检索处理S130b的流程图。
图14是示出实施方式4中的隐匿检索系统100的检索处理S130c的流程图。
图15是密钥生成装置200、登记装置300、检索装置400、管理装置500、500a的各装置的硬件结构图。
具体实施方式
下面,使用附图对实施方式进行说明。另外,在各图中,对彼此相同或相当的结构部标注相同标号。在实施方式的说明中,针对彼此相同或相当的结构部,适当省略或简化其说明。
实施方式1
在本实施方式中,对使用作为加密技术之一的同态加密的隐匿相似度检索技术进行说明。
首先,对同态加密及其应用进行说明。
同态加密是能够在加密后不对加密数据进行解密的状态下进行四则运算的加密技术。
针对明文x和明文y,将使用同态加密进行加密后的各个密文写成E(x)和E(y)。
在同态加密中,当对E(x)和E(y)进行运算时,能够得到明文为x+y的密文E(x+y)。将其称作同态加法,在本实施方式中,将该运算表示为◇,写成E(x)◇E(y)=E(x+y)。
并且,当对E(x)和E(y)进行运算时,能够得到明文为x-y的密文E(x-y)。将其称作同态减法,在本实施方式中,将该运算表示为◆,写成E(x)◆E(y)=E(x-y)。
并且,当对E(x)和E(y)进行运算时,能够得到明文为x×y的密文E(x×y)。将其称作同态乘法,在本实施方式中,将该运算表示为□,写成E(x)□E(y)=E(x×y)。
并且,当对E(x)和E(y)进行运算时,能够得到明文为x/y的密文E(x/y)。将其称作同态除法,在本说明书中,将该运算表示为■,写成E(x)■E(y)=E(x/y)。
另外,在同态加密中,存在只能进行同态加法和同态减法的方式、以及同态加法和同态减法没有次数限制但是同态乘法和同态除法有次数限制的方式。并且,存在同态加法和同态减法以及同态乘法和同态除法均没有次数限制的方式。
作为同态加密的应用的具体例,能够根据服务器中保管的保管加密数据和数据检索者的检索加密数据,在加密后的状态下计算相似度的密文。在以下的说明中,有时将相似度的密文称作加密相似度。
首先,对具体例1进行说明。对使用具体例1的同态加密在加密后的状态下求出(x1,x2)与(y1,y2)之间的欧几里德平方距离的密文即加密相似度的例子进行说明。另外,(x1,x2)与(y1,y2)之间的欧几里德平方距离能够计算为(x1-y1)×(x1-y1)+(x2-y2)×(x2-y2)来求出。其中,设x1、x2、y1、y2为整数。
这里,设保管加密数据为E(x1,x2)=(E(x1),E(x2))、检索加密数据为E(y1,y2)=(E(y1),E(y2))。即,各自的密文是在成分中具有各明文的密文的向量。
此时,为了计算加密欧几里德平方距离,首先,计算T1=E(x1-y1)=E(x1)◆E(y1)和T2=E(x2-y2)=E(x2)◆E(y2)。然后,计算T3=T1□T1=E((x1-y1)2)和T4=T2□T2=E((x2-y2)2)。最后,计算T3◇T4=E((x1-y1)2+(x2-y2)2)即可。
接着,对具体例2进行说明。在具体例2中,对求出保管加密数据E(x1,x2,x3)与检索加密数据E(y1,y2)的加密相似度的例子进行说明。具体例2的同态加密与上述具体例1的同态加密不同,能够统一对明文的向量进行加密,能够利用一个密文来表现。
在具体例2的第1个例子中,使用海明距离作为相似度,设(x1,x2)与(y1,y2)的海明距离为S1、(x2,x3)与(y1,y2)的海明距离为S2。具体例2的第1个例子是根据保管加密数据E(x1,x2,x3)和检索加密数据E(y1,y2)高效地计算E(S1,S2)的方法。另外,与欧几里德平方距离的计算方法同样,(x1,x2)与(y1,y2)之间的海明距离能够计算为(x1-y1)×(x1-y1)+(x2-y2)×(x2-y2)来求出。其中,设x1、x2、y1、y2为0或1的整数。
并且,在具体例2的第2个例子中,使用只能进行同态加法和同态减法的同态加密方式,计算保管着的明文数据与检索加密数据的明文的加密Tversky系数即加密相似度。进而,根据计算出的加密相似度,生成仅知道解密后的明文的相似度是否在某个阈值以内的密文即加密检索结果。但是,在该具体例2的第2个例子中,由于是求出保管着的明文数据与检索加密数据的明文的加密相似度的方式,因此,安全方面的安全性较低。
***结构的说明***
下面,对本实施方式的概要进行说明。
图1是示出本实施方式的隐匿检索系统100的系统结构的图。
如图1所示,隐匿检索系统100具有密钥生成装置200、多个登记装置300、多个检索装置400、管理装置500。管理装置500a在实施方式2中进行说明。
在隐匿检索系统100中,密钥生成装置200、多个登记装置300、多个检索装置400、管理装置500分别经由网络101进行连接。
网络101是连接密钥生成装置200、多个登记装置300、多个检索装置400、管理装置500的通信路径。具体而言,网络101是互联网、LAN(Local Area Network:局域网),也可以使用其他种类的网络。
密钥生成装置200生成同态加密的公开密钥和秘密密钥的对,经由网络101向多个登记装置300、多个检索装置400、管理装置500发送公开密钥和秘密密钥。另外,也可以不经由网络101而通过邮寄等直接向多个登记装置300、多个检索装置400、管理装置500发送公开密钥和秘密密钥。密钥生成装置200向多个登记装置300、管理装置500仅发送公开密钥。密钥生成装置200向多个检索装置400发送公开密钥和秘密密钥。
具体而言,登记装置300是PC(Personal Computer:个人计算机)。登记装置300是作为在管理装置500中登记保管加密数据的登记终端进行动作的计算机。
登记装置300作为加密装置和登记装置发挥功能。即,登记装置300生成保管加密数据,请求管理装置500进行保管加密数据的保管。
并且,登记装置300作为删除请求装置发挥功能。即,登记装置300请求管理装置500删除保管着的保管加密数据。
具体而言,检索装置400是PC。检索装置400向管理装置500发送检索加密数据,然后,从管理装置500接收加密检索结果。而且,检索装置400是作为对接收到的加密检索结果进行解密的终端进行动作的计算机。
检索装置400作为检索请求装置发挥功能。即,检索装置400向管理装置500发送检索加密数据,请求计算与保管加密数据和检索加密数据有关的加密相似度。
检索装置400作为解密装置发挥功能。即,检索装置400对从管理装置500返回的加密检索结果进行解密。
管理装置500是具有对由登记装置300生成的保管加密数据进行保管的大容量记录介质的装置。
管理装置500作为保管装置发挥功能。即,如果存在来自登记装置300的保管加密数据的保管请求,则管理装置500对保管加密数据进行保管。
管理装置500作为检索执行装置发挥功能。即,如果存在来自检索装置400的检索请求,则管理装置500根据保管加密数据和检索加密数据计算加密相似度,然后,根据加密相似度计算加密检索结果,向检索装置400发送加密检索结果。
管理装置500作为删除装置发挥功能。即,如果存在来自登记装置300的保管加密数据的删除请求,则管理装置500删除保管着的保管加密数据。
另外,可以在相同PC内同时包含密钥生成装置200、登记装置300、检索装置400中的至少2个装置。
保管加密数据和检索加密数据均被加密。并且,加密相似度和加密检索结果也被加密。在检索装置400以外的不具有秘密密钥SK的装置中,无法根据保管加密数据、检索加密数据、加密相似度、加密检索结果得到有用的信息。
下面,对本实施方式的结构进行详细说明。
如图1所示,隐匿检索系统100具有密钥生成装置200、登记装置300、检索装置400、管理装置500。下面,依次对密钥生成装置200的结构、登记装置300的结构、检索装置400的结构、管理装置500的结构进行说明。
图2是示出本实施方式的密钥生成装置200的块结构的图。
如图2所示,密钥生成装置200具有密钥生成部201、密钥发送部202。并且,虽然未图示,但是,密钥生成装置200具有存储在密钥生成装置200的各部中使用的数据的记录介质。
密钥生成部201生成用于对数据进行加密和解密的同态加密的公开密钥PK和秘密密钥SK。秘密密钥SK是检索装置400中保管的秘密信息,因此严格生成。另外,在本实施方式中,使用公开密钥加密系统的同态加密进行说明,但是,也可以使用共享密钥加密系统的同态加密。此时,密钥生成部201仅生成秘密密钥SK=公开密钥PK。在登记装置300、检索装置400、管理装置500中严格保管该秘密密钥SK。
密钥发送部202向登记装置300和管理装置500发送由密钥生成部201生成的公开密钥PK。并且,密钥发送部202向检索装置400发送由密钥生成部201生成的公开密钥PK和秘密密钥SK的对。
图3是示出本实施方式的登记装置300的块结构的图。
如图3所示,登记装置300具有密钥接收部301、密钥保管部302、输入部303、加密部304、数据发送部305。虽然未图示,但是,登记装置300具有存储在登记装置300的各部中使用的数据的记录介质。
密钥接收部301接收从密钥生成装置200发送来的公开密钥PK。
密钥保管部302保管由密钥接收部301接收到的公开密钥PK。
输入部303接受由数据登记者输入的保管数据610。另外,在本实施方式中,假设从数据登记者接受向量(x1,x2,…,xk)(k为k≧1的整数)作为保管数据610进行说明。
并且,输入部303也可以与保管数据610同时,从数据登记者接受与该保管数据610有关的保管数据标识符。具体而言,保管数据标识符是保管加密数据名、登记的时刻、数据登记者的姓名等能够标识保管数据的信息即可。
并且,输入部303从数据登记者接受用于标识管理装置500中保管的保管加密数据中的希望删除的保管加密数据的删除对象数据标识符。具体而言,删除对象数据标识符是保管加密数据名、登记的时刻、数据登记者的姓名等能够标识保管数据的信息即可。
加密部304从密钥保管部302中读出公开密钥PK,使用公开密钥PK对从输入部303接受的保管数据(x1,x2,…,xk)进行加密,生成保管加密数据620。另外,在本实施方式中,将保管加密数据620表示为E(PK,x1,x2,…,xk)。
另外,在使用如上述具体例2的同态加密那样能够统一对向量进行加密的同态加密的情况下,E(PK,x1,x2,…,xk)可以视为一个加密。另一方面,在使用上述具体例1的同态加密的情况下,需要按照每个向量成分进行加密。由此,在使用具体例1的同态加密的情况下,E(PK,x1,x2,…,xk)可视为各向量成分的密文的向量(E(PK,x1),E(PK,x2),…,E(PK,xk))。
数据发送部305向管理装置500发送从加密部304接受的保管加密数据E(PK,x1,x2,…,xk)。如果与保管数据同时从数据登记者还输入了保管数据标识符,则向管理装置500发送保管加密数据和保管数据标识符双方。
并且,数据发送部305向管理装置500发送从输入部303接受的删除对象数据标识符。
图4是示出本实施方式的检索装置400的块结构的图。
如图4所示,检索装置400具有接收部401、密钥保管部402、输入部403、加密部404、检索数据发送部405、解密部406、输出部407。虽然未图示,但是,检索装置400具有存储在检索装置400的各部中使用的数据的记录介质。
接收部401接收从密钥生成装置200发送来的公开密钥PK和秘密密钥SK的对。并且,接收部401从管理装置500接收加密检索结果5001。另外,根据相似度计算的内容,加密检索结果5001有时是一个密文或多个密文。加密检索结果5001是表示保管数据与检索数据的相似度是否在阈值以内的信息。但是,在加密检索结果5001中,表示保管数据与检索数据的相似度是否在阈值以内的信息已被加密,不包含相似度的值本身。
密钥保管部402保管从接收部401接受的公开密钥PK和秘密密钥SK的对。
输入部403接受由数据检索者输入的检索数据710。另外,在本实施方式中,假设从数据检索者接受向量(y1,y2,…,ym)(m为m≧1的整数)作为检索数据710进行说明。这里,检索数据的长度m可以与保管数据的长度n相同,或者也可以不同。依赖于数据检索者希望进行哪种相似度计算来决定该m的值。
并且,输入部403也可以与检索数据710一起从数据检索者接受用于指定根据该检索数据710检索的保管加密数据620的检索对象数据标识符。根据检索数据710检索的保管加密数据是作为根据检索数据710计算相似度的对象的保管加密数据。作为检索对象数据标识符,具体而言,是保管加密数据名、登记的时刻、数据登记者的姓名等能够确定保管加密数据的信息即可。
加密部404从密钥保管部402中读出公开密钥PK,使用公开密钥PK对从输入部403接受的检索数据710即向量(y1,y2,…,ym)进行加密,生成检索加密数据720。在本实施方式中,将检索加密数据表示为E(PK,y1,y2,…,ym)。
检索数据发送部405向管理装置500发送从加密部404接受的检索加密数据720即E(PK,y1,y2,…,ym)。如果与检索数据710一起由数据检索者输入了检索对象数据标识符,则检索数据发送部405向管理装置500发送检索加密数据720和检索对象数据标识符双方。
解密部406对从管理装置500发送的加密检索结果5001进行解密,输出解密后的加密检索结果5001作为检索结果4061。
解密部406从密钥保管部402中读出秘密密钥SK,对从接收部401接受的加密检索结果5001进行解密,提取检索结果4061。
输出部407根据检索结果4061输出表示相似度是否在阈值θ以内的检索结果信息4071。
输出部407也可以直接对数据检索者输出从解密部406接受的检索结果4061。
图5是示出本实施方式的管理装置500的块结构的图。
如图5所示,管理装置500具有数据接收部501、密钥保管部502、数据保管部503、加密相似度计算部504、加密结果发送部505、阈值保管部506。加密结果发送部505具有相似密文生成部5051、明文随机化部5052、结果发送部5053。
虽然未图示,但是,管理装置500具有存储在管理装置500的各部中使用的数据的记录介质。
数据接收部501接收从密钥生成装置200发送来的公开密钥PK。
并且,数据接收部501接收在保管数据610的检索中使用的通过同态加密进行加密后的检索数据710即检索加密数据720。
数据接收部501接收从登记装置300发送来的保管加密数据620即E(PK,x1,x2,…,xk)。除了保管加密数据E(PK,x1,x2,…,xk)以外,有时数据接收部501还从登记装置300接收保管数据标识符和删除对象数据标识符。并且,如上所述,除了检索加密数据E(PK,y1,y2,…,ym)以外,有时数据接收部501还接收从检索装置400发送来的检索对象数据标识符。
密钥保管部502保管从数据接收部501接受的公开密钥PK。
数据保管部503保管通过同态加密进行加密后的保管数据610作为保管加密数据620。
数据保管部503将从数据接收部501接受的保管加密数据E(PK,x1,x2,…,xk)和保管数据标识符对应起来进行保管。如果不存在保管数据标识符,则作为保管数据标识符,数据保管部503根据数据登记者名或登记时刻等生成保管数据标识符,将其与保管加密数据对应起来进行保管。
并且,数据保管部503根据从数据接收部501接受的删除对象数据标识符,删除保管着的保管加密数据。
加密相似度计算部504对通过同态加密进行加密后的保管数据即保管加密数据620和在保管数据的检索中使用的通过同态加密进行加密后的检索数据即检索加密数据720进行同态运算,由此计算通过同态加密对保管数据与检索数据的相似度进行加密而成的加密相似度5041。
加密相似度计算部504从数据接收部501接受检索加密数据E(PK,y1,y2,…,ym)和检索对象数据标识符。并且,加密相似度计算部504从密钥保管部502中读出公开密钥PK。然后,加密相似度计算部504根据检索对象数据标识符,从数据保管部503中读出保管加密数据E(PK,x1,x2,…,xk)。如果不存在检索对象数据标识符,则从数据保管部503中读出全部保管加密数据620。
然后,加密相似度计算部504使用公开密钥PK、各保管加密数据620、检索加密数据720进行同态运算,计算加密相似度5041。这里,将保管加密数据E(PK,x1,x2,…,xk)与检索加密数据E(PK,y1,y2,…,ym)的加密相似度5041表示为E(PK,S1,S2,…,Sn)。
如上所述,在使用具体例1的同态加密求出(x1,x2)与(y1,y2)(k=m=2)之间的欧几里德平方距离的情况下,n=1,认为S1是(x1,x2)与(y1,y2)的欧几里德平方距离。并且,在使用具体例2的同态加密求出与(x1,x2,x3)(k=3)和(y1,y2)(m=2)的海明距离有关的相似度的情况下,n=2,认为S1是(x1,x2)与(y1,y2)的海明距离,S2是(x2,x3)与(y1,y2)的海明距离。
加密结果发送部505使用加密相似度5041生成表示相似度是否在阈值以内的加密检索结果5001,发送所生成的加密检索结果5001。
相似密文生成部5051生成通过同态加密对以相似度相似的在相似度在阈值以内的情况下至少一个为0的多个明文分别进行加密而成的多个相似密文50510。
相似密文生成部5051从密钥保管部502中读出公开密钥PK,从阈值保管部506中读出阈值θ。相似密文生成部5051根据公开密钥PK和阈值θ,使用同态运算,生成具有与从加密相似度计算部504接受的加密相似度5041的明文(S1,S2,…,Sn)接近的值的多个密文。将该生成的密文称作相似密文50510,将各相似密文表示为E(PK,AS1,AS2,…,ASn)。
阈值保管部506保管阈值θ。其中,θ为1以上的整数。另外,该阈值θ的设定可以由密钥生成装置200决定,也可以由登记装置300的数据登记者决定。或者,阈值θ可以使用系统中事前决定的值。并且,阈值也可以不是唯一的,根据要计算的相似度而具有多个。
明文随机化部5052对多个相似密文50510的多个明文进行随机化,生成通过同态加密对随机化后的多个明文分别进行加密而成的随机密文的集合。
明文随机化部5052读出密钥保管部502中保管的公开密钥PK,对从相似密文生成部5051接受的各相似密文E(PK,AS1,AS2,…,ASn)的明文(AS1,AS2,…,ASn)的各成分进行随机化。明文随机化部5052生成对各相似密文E(PK,AS1,AS2,…,ASn)的明文(AS1,AS2,…,ASn)的各成分进行随机化而成的随机密文50520。这里,将随机密文50520表示为E(PK,R1,…,Rn)。
明文随机化部5052设多个明文中的值为0的明文为0,并且对多个明文中的值不为0的明文进行随机化,生成通过同态加密对随机化后的多个明文分别进行加密而成的随机密文50520的集合。
即,明文随机化部5052进行如下特殊的随机化处理:使用不为0的多个随机数和同态运算,对明文为0以外的密文进行转换以使明文随机,并且,对明文为0的密文进行转换以使明文不变而依然为0。由此,随机密文E(PK,R1,…,Rn)也称作各零保存随机密文E(PK,R1,…,Rn)。
结果发送部5053使用由明文随机化部5052生成的随机密文50520的集合生成加密检索结果5001,发送所生成的加密检索结果5001。结果发送部5053向检索装置400发送从明文随机化部5052接受的随机密文50520的集合作为加密检索结果5001。
***动作的说明***
图6是示出本实施方式的隐匿检索系统100的隐匿检索方法9100、隐匿检索程序9200的隐匿检索处理S100的流程的流程图。
隐匿检索处理S100具有密钥生成处理S110、登记处理S120、检索处理S130。
在密钥生成处理S110中,通过密钥生成装置200生成密钥并将其保管在各装置中。
在登记处理S120中,对保管数据进行加密,作为保管加密数据保管在管理装置500中。
在检索处理S130中,根据来自检索装置的请求,计算检索加密数据和保管加密数据中的加密相似度,生成表示检索数据与保管数据的相似度是否在阈值以内的加密检索结果而不使用明文信息。
图7是示出本实施方式的隐匿检索系统100的密钥生成处理S110的流程图。
图7的S601~S608是密钥生成装置200、登记装置300、检索装置400、管理装置500执行的处理。S601~S602由密钥生成装置200执行。S603~S604由登记装置300执行。S605~S606由检索装置400执行。S607~S608由管理装置500执行。
<密钥生成装置200的处理>
在S601中,密钥生成部201生成用于进行数据的加密和解密的同态加密的公开密钥PK及其秘密密钥SK。另外,这里使用公开密钥加密系统的同态加密进行说明,但是,也可以使用共享密钥加密系统的同态加密。该情况下,密钥生成部201设定公开密钥PK作为秘密密钥SK,以与公开密钥加密系统的情况相同的方式实施以后的处理即可。
在S602中,密钥发送部202向登记装置300和管理装置500发送在S601中生成的公开密钥PK。并且,密钥发送部202向检索装置400发送在S601中生成的公开密钥PK和秘密密钥SK的对。
<登记装置300的处理>
在S603中,密钥接收部301接收在S602中发送的公开密钥PK。
在S604中,密钥保管部302在存储介质中保管在S603中接收到的公开密钥PK。
<检索装置400的处理>
在S605中,接收部401接收在S602中发送的公开密钥PK和秘密密钥SK的对。
在S606中,密钥保管部402在存储介质中保管在S605中接收到的公开密钥PK和秘密密钥SK的对。另外,秘密密钥SK是秘密信息,因此,严格进行保管以不对检索装置400和使用检索装置400的数据检索者以外公开。
<管理装置500的处理>
在S607中,数据接收部501接收在S602中发送的公开密钥PK。
在S608中,密钥保管部502在存储介质中保管在S607中接收到的公开密钥PK。
以上,隐匿检索系统100的密钥生成保管处理结束。
如果公开密钥PK=秘密密钥SK,则公开密钥PK也成为秘密信息,因此,在密钥保管部302、密钥保管部402、密钥保管部502中均严格保管公开密钥PK。
以上,隐匿检索系统100的密钥生成处理S110结束。
图8是示出本实施方式的隐匿检索系统100的登记处理S120的流程图。
图8的S701~S705是登记装置300和管理装置500执行的处理。S701~S703是由登记装置300执行的处理。S704~S705是由管理装置500执行的处理。
<登记装置300的处理>
在S701中,输入部303接受由数据登记者输入的保管数据(x1,x2,…,xk)(k≧1)。输入部303也可以与保管数据一起,从数据登记者接受与该保管数据有关的保管数据标识符。
在S702中,加密部304使用密钥保管部302中保管的公开密钥PK对在S701中输入的保管数据(x1,x2,…,xk)进行加密,生成保管加密数据E(PK,x1,x2,…,xk)。
在S703中,数据发送部305向管理装置500发送在S702中生成的保管加密数据E(PK,x1,x2,…,xk)。如果在S702中还输入了保管数据标识符,则还同时发送保管数据标识符。
<管理装置500的处理>
在S704中,数据接收部501接收在S703中发送的保管加密数据E(PK,x1,x2,…,xk)。如果在S704中还发送了保管数据标识符,则还接收保管数据标识符。
在S705中,数据保管部503保管在S704中接收到的保管加密数据E(PK,x1,x2,…,xk)。如果在S704中还接收了保管数据标识符,则与该保管加密数据关联起来进行保管。
以上,隐匿检索系统100的登记处理S120结束。
图9是示出本实施方式的隐匿检索系统100的检索处理S130的流程图。
图9的S801~S812是检索装置400和管理装置500执行的处理。S801~S803和S810~S812是由检索装置400执行的处理。S804~S809是由管理装置500执行的处理。
<检索装置400的处理>
在S801中,输入部403接受由数据检索者输入的检索数据(y1,y2,…,ym)。输入部403也可以与检索数据同时,从数据检索者接受表示希望进行检索的保管加密数据的检索对象数据标识符。
在S802中,加密部404使用密钥保管部402中保管的公开密钥PK对在S801中输入的检索数据(y1,y2,…,ym)进行加密,生成检索加密数据E(PK,y1,y2,…,ym)。
在S803中,检索数据发送部405向管理装置500发送在S802中生成的检索加密数据E(PK,y1,y2,…,ym)。如果在S801中还输入了检索对象数据标识符,则还同时发送检索对象数据标识符。
<管理装置500的处理>
如上所述,管理装置500保管通过同态加密进行加密后的保管数据610作为保管加密数据620。
<数据接收处理S804>
数据接收部501执行如下的数据接收处理S804:接收在保管数据610的检索中使用的通过同态加密进行加密后的检索数据710即检索加密数据720。
在数据接收处理S804中,数据接收部501接收在S803中发送的检索加密数据E(PK,y1,y2,…,ym)。如果在S803中还发送了检索对象数据标识符,则还接收检索对象数据标识符。
在S805中,加密相似度计算部504从数据保管部503中读出保管加密数据E(PK,x1,x2,…,xk)。另外,在S804中还接收了检索对象数据标识符的情况下,加密相似度计算部504根据接收到的检索对象数据标识符读出作为对象的保管加密数据。在S804中未接收到检索对象数据标识符的情况下,加密相似度计算部504读出全部的保管加密数据。
<加密相似度计算处理S806>
加密相似度计算部504执行如下的加密相似度计算处理S806:对保管加密数据620和检索加密数据720进行同态运算,由此计算通过同态加密对保管数据610与检索数据710的相似度进行加密而成的加密相似度5041。
在加密相似度计算处理S806中,加密相似度计算部504使用密钥保管部502中保管的公开密钥PK,在S805中读出的各保管加密数据E(PK,x1,x2,…,xk)与在S804中接收到的检索加密数据E(PK,y1,y2,…,ym)之间进行同态运算,计算加密相似度E(PK,S1,S2,…,Sn)。
例如,加密相似度计算部504使用上述具体例1的同态加密计算欧几里德平方距离,由此计算加密相似度E(PK,S1,S2,…,Sn)。
并且,例如,加密相似度计算部504使用上述具体例2的同态加密计算海明距离,由此计算加密相似度E(PK,S1,S2,…,Sn)。
<相似密文生成处理S807>
相似密文生成部5051执行如下的相似密文生成处理S807:生成通过同态加密对以相似度相似的在相似度在阈值以内的情况下至少一个为0的多个明文分别进行加密而成的多个相似密文。
在相似密文生成处理S807中,相似密文生成部5051从密钥保管部502中读出公开密钥PK,从阈值保管部506中读出阈值θ。相似密文生成部5051根据公开密钥PK和阈值θ,使用同态运算,生成具有与从加密相似度计算部504接受的加密相似度5041的明文(S1,S2,…,Sn)接近的值的多个密文。这里生成的多个密文分别是相似密文E(PK,AS1,AS2,…,ASn)。
具体而言,相似密文生成部5051使用密钥保管部502中保管的公开密钥PK和阈值保管部506中保管的阈值θ,生成θ+1个相似密文50510。这里,将生成的相似密文50510的集合表示为{c0,c1,…,cθ},将各c表示为E(PK,AS1,AS2,…,ASn)。并且,设相似密文的集合内的密文按照c0,c1,…,cθ的顺序排列。
对具体的相似密文的生成方法进行说明。使用同态加法,生成为c0=E(PK,S1,S2,…,Sn),c1=E(PK,-1+S1,-1+S2,…,-1+Sn),…,cθ=E(PK,-θ+S1,-θ+S2,…,-θ+Sn)。
相似密文生成处理S807是如下的处理:如果在加密相似度E(PK,S1,S2,…,Sn)中存在相似度在θ以内的明文Si,则利用同态运算对密文进行转换,生成一个作为明文出现0的相似密文。
这里,第0个相似密文是从加密相似度中减去0而得到的值,第1个相似密文是从加密相似度中减去1而得到的值,…,第θ个相似密文是从加密相似度中减去θ而得到的值。即,在相似度在阈值θ以内的情况下,相似密文生成部5051生成通过同态加密对从开头起第相似度的值个明文为0的多个明文分别进行加密而成的多个相似密文。
<明文随机化处理S808>
明文随机化部5052执行如下的明文随机化处理S808:对多个相似密文50510的多个明文进行随机化,生成通过同态加密对随机化后的多个明文分别进行加密而成的随机密文50520的集合。
在明文随机化处理S808中,明文随机化部5052使用密钥保管部502中保管的公开密钥PK,对在相似密文生成处理S807中生成的相似密文的集合的各相似密文c进行明文的随机化。明文随机化部5052对各相似密文c进行明文的随机化的结果是生成θ+1个随机密文。这里,将生成的随机密文的集合表示为{C0,C1,…,Cθ},将各随机密文C表示为E(PK,R1,…,Rn)。并且,设随机密文的集合内的密文按照C0,C1,…,Cθ的顺序排列。
另外,如上所述,该随机化是如下的特殊随机化处理:使用同态运算,对明文为0以外的相似密文进行转换以使明文随机,并且,对明文为0的相似密文进行转换以使明文不变而依然为0。
具体而言,首先,生成不为0的随机数ri(i为满足0≦i≦θ的整数)。然后,针对各相似密文c=E(PK,AS1,AS2,…,ASn),使用同态运算计算C=E(PK,R1,R2,…,Rn)=E(PK,r1×AS1,r2×AS2,…,rn×ASn)。另外,如果ASi为0,则即使乘以随机数ri也依然为0。
如果在加密相似度E(PK,S1,S2,…,Sn)中存在相似度在θ以内的明文Si,则在相似密文生成处理S807中使用同态运算对密文进行转换的结果是,生成作为明文为0即ASi=0的密文。由此,即使由明文随机化部5052进行随机化,Ri(=ri×ASi)也依然保存0。在Ri(=ri×ASi)依然保存0的情况下,当对随机密文E进行解密时出现0。
在取对偶时,在仅出现不为0的明文的情况下,即,即使解密也不出现0的情况下,无法得知相似度Si的值,仅得知相似度Si不在阈值以内。
<结果发送处理S809>
结果发送部5053执行如下的结果发送处理S809:使用通过明文随机化处理S808生成的随机密文50520的集合,生成表示相似度是否在阈值θ以内的加密检索结果5001,发送所生成的加密检索结果5001。
结果发送部5053向检索装置400发送通过明文随机化处理S808生成的随机密文的集合{C0,C1,…,Cθ}作为加密检索结果5001。
<检索装置400的处理>
在S810中,接收部401接收在结果发送处理S809中发送的加密检索结果5001即随机密文的集合{C0,C1,…,Cθ}。
在S811中,解密部406使用密钥保管部402中保管的秘密密钥SK对在结果发送处理S809中接收到的加密检索结果{C0,C1,…,Cθ}进行解密,得到检索结果4061。
在S812中,输出部407根据检索结果4061判定多个明文中是否存在值为0的明文,在判定为存在值为0的明文的情况下,输出表示相似度在阈值θ以内的检索结果信息4071。并且,输出部407在判定为多个明文中不存在值为0的明文的情况下,输出表示相似度大于阈值θ的检索结果信息4071。
并且,输出部407在判定为多个明文中存在值为0的明文的情况下,取得多个明文中的值为0的明文的顺次。输出部407也可以将取得的顺次确定为相似度,输出所确定的相似度。
通过S812,隐匿检索系统100的检索处理结束。
<检索处理的具体例10的说明>
这里,根据上述具体例1的同态加密对本实施方式的检索处理S130的具体例10进行说明。这里,设保管数据为(0,0,1)、检索数据为(0,0,0)、θ=1进行说明。此时的保管数据与检索数据的欧几里德平方距离为1。在本实施方式中,希望向数据检索者告知保管数据与检索数据的相似度为1。
在S801中,输入部403接受(0,0,0)作为数据检索者的检索数据。
在S802中,加密部404使用公开密钥PK计算检索加密数据E(PK,0,0,0)=(E(PK,0),E(PK,0),E(PK,0))。
在S803中,检索数据发送部405向管理装置500发送检索加密数据E(PK,0,0,0)。
在S804中,数据接收部501接收检索加密数据E(PK,0,0,0)。
在S805中,加密相似度计算部504读出保管加密数据E(PK,0,0,1)=(E(PK,0),E(PK,0),E(PK,1))。
在S806中,加密相似度计算部504计算加密相似度E(PK,1)。
在S807中,相似密文生成部5051进行同态减法,根据E(PK,1)生成2个密文E(PK,1-0)=E(PK,1)和E(PK,1-1)=E(PK,0)。即,生成{c0,c1}={E(PK,1),E(PK,0)}。
在S808中,明文随机化部5052生成不为0的随机数r0和r1,进行同态加法,如下面的式1和式2那样计算{C0,C1}。
式1:C0=E(PK,R0)=r0×c0=E(PK,1)◇…◇E(PK,1)=E(PK,r0)
式2:C1=E(PK,R1)=r1×c1=E(PK,0)◇…◇E(PK,0)=E(PK,0)
在S809中,结果发送部5053发送{E(PK,r0),E(PK,0)}。
在S810中,接收部401接收{E(PK,r0),E(PK,0)}。
在S811中,解密部406使用秘密密钥SK对E(PK,r0)和E(PK,0)进行解密,得到r0和0作为明文。
在S812中,由于进行解密而出现0,因此,输出部407在显示装置等显示表示保管加密数据的明文(0,0,1)与检索数据(0,0,0)的相似度(欧几里德平方距离)为1的检索结果信息4071。数据检索者根据显示着的检索结果信息4071,得知相似度(欧几里德平方距离)为1。
<检索处理的具体例20的说明>
接着,作为与检索处理的具体例10不同的例子,对检索处理的具体例20进行说明。这里,对保管数据为(0,1,1)、检索数据为(0,0,0)、θ=1进行说明。此时,保管数据(0,1,1)与检索数据(0,0,0)的欧几里德平方距离为2。在本实施方式中,相似度在阈值θ以上,因此,希望向数据检索者仅告知保管数据与检索数据的相似度大于阈值这样的事实。
S801~S805的处理省略。
在S806中,加密相似度计算部504计算E(PK,2)作为加密相似度。
在S807中,明文随机化部5052生成E(PK,2-0)=E(PK,2)和E(PK,2-1)=E(PK,1)。
在S808中,明文随机化部5052生成随机数r0和r1,进行同态加法,生成C0=E(PK,R0)=E(PK,2×r0)和C1=E(PK,R1)=E(PK,r1)。
在S809中,结果发送部5053发送{E(PK,2×r0),E(PK,r1)}。
在S810中,接收部401接收{E(PK,2×r0),E(PK,r1)}。
在S811中,解密部406使用秘密密钥SK对E(PK,2×r0)和E(PK,r1)进行解密,得到2×r0和r1作为明文。
在S812中,由于进行解密也不出现0,因此,输出部407显示表示保管加密数据的明文(0,1,1)与检索数据(0,0,0)的相似度(欧几里德平方距离)大于阈值θ的检索结果信息4071。此时,相似度本身的值(=2)在检索处理的过程中不出现也不显示。由此,数据检索者即使进行解密,也只能得到随机数2×r0和r1。因此,数据检索者仅得知保管数据与检索数据的相似度大于阈值1这样的事实。
另外,上述例子使用欧几里德平方距离作为相似度进行了说明,但是,也可以使用其他相似度的指标。具体而言,在Lp准则或Tversky系数等中,使用本实施方式中说明的方法,也能够在对保管数据和检索数据都进行加密的状态下来执行。
图10是示出本实施方式的隐匿检索系统100的删除处理S140的流程图。
图10的S901~S904是登记装置300和管理装置500执行的处理。S901~S902是由登记装置300执行的处理。S903~S904是由管理装置500执行的处理。
<登记装置300的处理>
在S901中,输入部303从数据登记者接受与希望删除的保管加密数据有关的删除对象数据标识符。如上所述,删除对象数据标识符是能够识别作为删除对象的保管数据的信息即可,可以是任意的。
在S902中,数据发送部305向管理装置500发送在S901中输入的删除对象数据标识符。
<管理处理500的处理>
在S903中,数据接收部501接收在S902中从登记装置300发送来的删除对象数据标识符。
在S904中,数据保管部503根据在S903中接收到的删除对象数据标识符,删除保管着的保管加密数据。
通过S904,隐匿检索系统100的删除处理结束。
***本实施方式的效果的说明***
本实施方式发挥以下效果。
根据本实施方式的隐匿检索系统100,对保管数据进行加密来进行保管,因此,即使从管理装置500泄漏保管加密数据,也不会得知保管数据的内容本身。
并且,根据本实施方式的隐匿检索系统100,能够在不仅检索数据被加密而且保管数据也被加密的状态下进行处理,因此,能够实现安全性更高的隐匿相似度检索。
并且,根据本实施方式的隐匿检索系统100,即使使用公开密钥加密也能够实现隐匿相似度检索,因此,能够分离数据登记者和数据检索者的责任而不用在数据登记者与数据检索者之间共享秘密密钥。
并且,根据本实施方式的隐匿检索系统100,如果相似度在某个阈值以内,则检索装置的输出部输出相似度的准确值,如果相似度超过阈值,则检索装置的输出部仅输出超过阈值这样的信息。因此,在相似度超过阈值的情况下,数据检索者无法得知相似度的准确值,无法根据相似度推测保管加密数据的明文。
并且,在本实施方式的隐匿检索系统100中,生成若干个相似密文,对这些相似密文进行特殊的随机化,由此,如果相似度在某个阈值以内,则能够输出相似度的准确值,如果相似度超过阈值,则能够仅输出超过阈值这样的信息。
并且,在本实施方式的隐匿检索系统100中,管理装置能够在对保管数据和检索数据都进行加密的状态下计算相似度的密文,并且,通过扰乱该密文,能够仅输出相似度是否在阈值以内的信息。
如上所述,根据本实施方式的隐匿检索系统100,能够根据保管加密数据和检索加密数据进行相似度计算而完全不使用明文信息。进而,根据本实施方式的隐匿检索系统100,针对数据检索者不公开相似度本身,如果相似度在阈值以内,则公开相似度,或者能够仅公开是否在阈值以内。
***其他结构***
隐匿检索系统100可以具有多个密钥生成装置200。并且,隐匿检索系统100可以仅具有一个登记装置300。并且,隐匿检索系统100可以仅具有一个检索装置400。隐匿检索系统100可以具有多个管理装置500。
密钥生成装置200、多个登记装置300、多个检索装置400、管理装置500也可以分别不经由网络101进行连接,而是设置在铺设于相同企业内的LAN(Local Area Network:局域网)内。
也可以构成为在相同PC内同时包含密钥生成装置200、登记装置300、检索装置400中的至少2个。
实施方式2
在本实施方式中,主要对与实施方式1的不同之处进行说明。
在实施方式1的隐匿检索系统100中,如果保管数据与检索数据的相似度在阈值以内,则数据检索者能够得知相似度本身。但是,在本实施方式中,对如下的隐匿检索系统100进行说明,该隐匿检索系统100的目的在于,即使相似度在阈值以内,数据检索者也只能得知相似度在阈值以内。
***结构的说明***
图11是示出本实施方式的管理装置500的结构的框图。
在本实施方式中,对具有与实施方式1中说明的结构部相同的功能的结构部标注相同标号并省略其说明。
在本实施方式中,结果发送部5053具有密文扰乱部50531、发送部50532。
密文扰乱部50531扰乱由明文随机化部5052生成的随机密文50520的集合,生成扰乱后的随机密文50520的集合作为扰乱随机密文5002。
具体而言,密文扰乱部50531在随机密文50520的集合中对随机密文50520的集合中的随机密文50520的顺序进行变更,由此扰乱随机密文50520的集合。密文扰乱部50531生成对顺序进行变更后的随机密文50520的集合作为扰乱随机密文5002。
密文扰乱部50531读出密钥保管部502中保管的公开密钥PK,对从明文随机化部5052接受的随机密文E(PK,R1,…,Rn)进行扰乱处理,生成扰乱随机密文5002。扰乱随机密文5002有时为一个,有时为多个。
另外,执行密文扰乱部50531的处理,使得即使对加密检索结果进行解密也不会出现相似度本身。即,是用于转换成仅得知相似度是否在某个阈值以内的密文的最终处理。具体而言,对随机密文50520的集合的各随机密文的顺次即顺序进行随机置换,或者对随机密文之间的成分进行随机交换,或者进行同态运算而将随机密文耦合成一个密文等。这些具体处理容后再述。
发送部50532向检索装置400发送由密文扰乱部50531生成的扰乱随机密文5002的集合作为加密检索结果5001。
检索装置400的输出部407判定多个明文中是否存在值为0的明文,在判定为存在值为0的明文的情况下,输出表示相似度在阈值θ以内的检索结果信息4071。并且,检索装置400的输出部407在判定为多个明文中不存在值为0的明文的情况下,输出表示相似度大于阈值θ的检索结果信息4071。
***动作的说明***
图12是示出本实施方式中的隐匿检索系统100的检索处理S130a的流程图。
在本实施方式中,对如下的隐匿检索系统100进行说明:使用置换函数π:{0,1,…,θ}→{0,1,…,θ}执行检索处理,由此,很难得知相似度,进一步提高安全性。
在本实施方式的隐匿检索系统100的动作中,与实施方式1的不同之处仅在于检索处理的一部分。
图12的S1001~S1013是检索装置400和管理装置500执行的处理。S1001~S1003和S1011~S1013是由检索装置400执行的处理。S1004~S1010是由管理装置500执行的处理。
另外,本实施方式的检索处理S130a中的S1001~S1008是与实施方式1的S801~S808相同的处理,因此,这里省略说明。
<管理装置500的处理>
在S1009中,密文扰乱部50531针对在S1008中生成的随机密文的集合{C0,C1,…,Cθ},随机进行随机密文的顺序变更,生成扰乱随机密文的集合。另外,进行该顺序变更的结果是,能够使用置换函数π:{0,1,…,θ}→{0,1,…,θ}表示为{Cπ(0),Cπ(1),…,Cπ(θ)},设扰乱随机密文的顺次也这样排列。另外,如果π(i)=π(j),则i=j。
在S1010中,发送部50532向检索装置400发送在S1009中生成的扰乱随机密文的集合{Cπ(1),Cπ(2),…,Cπ(θ)}作为加密检索结果5001。
<检索装置400的处理>
在S1011中,接收部401接收在S1010中发送的加密检索结果{Cπ(1),Cπ(2),…,Cπ(θ)}。
在S1012中,解密部406使用密钥保管部402中保管的秘密密钥SK对在S1011中接收到的加密检索结果{Cπ(1),Cπ(2),…,Cπ(θ)}进行解密,得到检索结果4061。
在S1013中,输出部407根据判定出在S1012中得到的检索结果的结果,对数据检索者输出检索结果信息4071。
输出部407使用检索结果4061判定扰乱随机密文的多个明文中是否存在0的明文,在判定为存在0的明文的情况下,输出表示相似度在阈值θ以内的检索结果信息4071。并且,输出部407在判定为扰乱随机密文的多个明文中不存在0的明文的情况下,输出表示相似度大于阈值θ的检索结果信息4071。
通过S1013,隐匿检索系统100的检索处理结束。
<检索处理的具体例30的说明>
这里,根据上述具体例1的同态加密对本实施方式的检索处理的具体例30进行说明。这里,设保管数据为(0,0,1)、检索数据为(0,0,0)、θ=1进行说明。此时的保管数据(0,0,1)与检索数据(0,0,0)的欧几里德平方距离为1。在本实施方式中,希望向数据检索者仅告知保管数据与检索数据的相似度在1以内。
在S1006中,加密相似度计算部504计算加密相似度E(PK,1)。
在S1007中,相似密文生成部5051进行同态减法,根据E(PK,1)生成2个密文E(PK,1-0)=E(PK,1)和E(PK,1-1)=E(PK,0)。即,生成{c0,c1}={E(PK,1),E(PK,0)}。
在S1008中,明文随机化部5052生成不为0的随机数r0和r1,进行同态加法,如下面的式3和式4那样计算{C0,C1}。
式3:C0=E(PK,R0)=r0×c0=E(PK,1)◇…◇E(PK,1)=E(PK,r0)
式4:C1=E(PK,R1)=r1×c1=E(PK,0)◇…◇E(PK,0)=E(PK,0)。
在S1009中,密文扰乱部50531随机决定置换π。这里,设选择π(0)=1,π(1)=0这样的π。此时,{C0,C1}={E(PK,r0),E(PK,0)}的顺序被变更成{Cπ(0),Cπ(1)}={C1,C0}={E(PK,0),E(PK,r0)}。
在S1010中,结果发送部5053发送{E(PK,0),E(PK,r0)}。
在S1011中,接收部401接收{E(PK,0),E(PK,r0)}。
在S1012中,解密部406使用秘密密钥SK对E(PK,0)和E(PK,r0)进行解密,得到0和随机数r0作为明文。
在S1013中,由于进行解密而出现0,因此,输出部407输出表示保管加密数据的明文(0,0,1)与检索数据(0,0,0)的相似度即欧几里德平方距离在阈值θ以内即1以内这样的事实的检索结果信息4071。
这里,在S1009中未通过密文扰乱部50531执行顺序变更的情况下,数据检索者始终得知第0个密文是从加密相似度中减去0而得到的值、第1个密文是从加密相似度中减去1而得到的值、…、第θ个密文是从加密相似度中减去θ而得到的值。由此,当进行解密而在第j个出现0时,数据检索者简单地得知相似度为j。由此,通过在S1009中由密文扰乱部50531进行顺序变更,能够转换成仅表示保管数据与检索数据的相似度是否在阈值以内的信息。
***本实施方式的效果的说明***
如上所述,根据本实施方式的隐匿检索系统100,除了得到与实施方式1相同的效果以外,数据检索者根据检索结果只能得知保管数据与检索数据的相似度是否在阈值以内,因此,安全性进一步提高。
实施方式3
在本实施方式中,主要对与实施方式1、2的不同之处进行说明。
在本实施方式中,对用于达到与实施方式2相同的目的但与实施方式2不同的隐匿检索方法进行说明。
在本实施方式中,对与实施方式2同样使用置换函数π:{0,1,…,θ}→{0,1,…,θ},与实施方式2同样提高隐匿检索系统的安全性的方法进行说明。
本实施方式的隐匿检索系统与实施方式2大致相同,仅检索处理的一部分不同。
***结构的说明***
本实施方式的隐匿检索系统100的结构与实施方式2中说明的结构相同。
在本实施方式中,对具有与实施方式2中说明的结构部相同的功能的结构部标注相同标号并省略其说明。
本实施方式的密文扰乱部50531在随机密文50520的集合中的2个随机密文中对一个随机密文的成分和另一个随机密文的成分进行交换,由此扰乱随机密文50520的集合。密文扰乱部50531生成扰乱后的随机密文50520的集合作为扰乱随机密文5002。
***动作的说明***
图13是示出本实施方式中的隐匿检索系统100的检索处理S130b的流程图。
图13的S1101~S1113是检索装置400和管理装置500执行的处理。S1101~S1103和S1111~S1113是由检索装置400执行的处理。S1104~S1110是由管理装置500执行的处理。
另外,本检索处理中的S1101~S1108是与实施方式2的S1001~S1008相同的处理,因此,这里省略说明。
<管理装置500的处理>
在S1109中,密文扰乱部50531针对在S1108中生成的随机密文的集合{C0,C1,…,Cθ},随机交换某个随机密文Ci=E(PK,Ri1,Ri2,…,Rin)的明文(Ri1,Ri2,…,Rin)和某个随机密文Cj=E(PK,Rj1,Rj2,…,Rjn)的明文(Rj1,Rj2,…,Rjn)的相同位置的成分。密文扰乱部50531反复进行这种交换,由此生成扰乱随机密文的集合{RC1,RC2,…,RCn}。
具体而言,密文扰乱部50531仅交换Ci的Ri1和Cj的Rj1,生成新的密文RCi=E(PK,Rj1,Ri2,…,Rin)和RCj=E(PK,Ri1,Rj2,…,Rjn)。密文扰乱部50531反复进行这种处理,生成扰乱随机密文{RC1,RC2,…,RCn}。
在S1110中,发送部50532向检索装置400发送在S1109中生成的扰乱随机密文的集合{RC1,RC2,…,RCn}作为加密检索结果5001。
<检索装置400的处理>
在S1111中,接收部401接收在S1110中发送的加密检索结果{RC1,RC2,…,RCn}。
在S1112中,解密部406使用密钥保管部402中保管的秘密密钥SK对在S1011中接收到的加密检索结果{RC1,RC2,…,RCn}进行解密,得到检索结果4061。
在S1113中,输出部407根据在S1112中得到的检索结果4061输出检索结果信息4071。
通过S1113,隐匿检索系统100的检索处理S130b结束。
<检索处理的具体例40的说明>
这里,根据上述具体例1的同态加密对本实施方式的检索处理S130b的具体例40进行说明。这里,设保管数据为(0,1,2)、检索数据为(0,0,0)、θ=2进行说明。此时,保管数据(0,1,2)与检索数据(0,0,0)的欧几里德平方距离为10。并且,如果以二进制数表现为3=10,则保管数据(0,1,2)与检索数据(0,0,0)的海明距离为2。这里,S1=10、S2=2。在本实施方式中,作为保管数据与检索数据的相似度,希望向数据检索者告知欧几里德平方距离大于2且海明距离在2以内。
在S1106中,加密相似度计算部504计算加密相似度E(PK,S1,S2)=(E(PK,10),E(PK,2))。
在S1107中,相似密文生成部5051进行同态减法,根据E(PK,S1,S2)=(E(PK,10),E(PK,2))生成E(PK,10,2)=(E(PK,10),E(PK,2)),E(PK,9,1)=(E(PK,9),E(PK,1)),E(PK,8,0)=(E(PK,8),E(PK,0))。即,生成{c0,c1,c2}={E(PK,10,2),E(PK,9,1),E(PK,8,0)}。
在S1108中,明文随机化部5052生成不为0的随机数,进行同态加法,如下所述计算{C0,C1,C2}。
C0=E(PK,R0,R1)
C1=E(PK,R2,R3)
C2=E(PK,R4,0)
其中,R0、R1、R2、R3、R4为随机数。
在S1109中,设密文扰乱部50531选择π1(1)=2,π1(2)=1,π1(3)=3和π2(1)=3,π2(2)=2,π1(3)=2,作为随机置换第1个成分的π1和随机置换第2个成分的π2。此时,{RC0,RC1,RC2}={E(PK,R2,0),E(PK,R0,R1),E(PK,R4,R3)}。关于该密文彼此的成分的交换,单纯调换密文即可,因此,能够简单地执行。
在S1110中,结果发送部5053发送{E(PK,R2,0),E(PK,R0,R1),E(PK,R4,R3)}。
在S1111中,接收部401接收{E(PK,R2,0),E(PK,R0,R1),E(PK,R4,R3)}。
在S1112中,解密部406使用秘密密钥SK对E(PK,R2,0),E(PK,R0,R1),E(PK,R4,R3)进行解密。解密部406得到R2、R0、R4作为与S1有关的明文,得到0、R1、R3作为与S2有关的明文。
在S1113中,由于未出现0作为与S1有关的明文,因此,输出部407输出表示与保管数据和检索数据的欧几里德平方距离有关的相似度大于阈值即大于2的检索结果信息4071。并且,由于出现0作为与S2有关的明文,因此,输出部407输出表示与保管数据和检索数据的海明距离有关的相似度在阈值以内即2以内的检索结果信息4071。
***本实施方式的效果的说明***
如上所述,根据本实施方式的隐匿检索系统100,除了得到与实施方式1相同的效果以外,数据检索者根据检索结果只能得知保管数据与检索数据的相似度是否在阈值以内,因此,能够进一步提高安全性。
并且,在本实施方式中,能够使用与实施方式2不同的扰乱手法得到与实施方式2相同的效果。
实施方式4
在本实施方式中,主要对与实施方式1~3的不同之处进行说明。
在本实施方式中,对用于达到与实施方式2、3相同的目的但使用与实施方式2、3不同的方法的隐匿检索方法进行说明。
并且,在本实施方式的隐匿检索系统中,与实施方式1~3相比,具有能够减小加密检索结果的大小这样的优点。另一方面,在本实施方式的隐匿检索系统中,需要使用能够进行θ+1次同态乘法的同态加密。
本实施方式的隐匿检索系统与实施方式3大致相同,仅检索处理的一部分不同。
***结构的说明***
本实施方式的隐匿检索系统100的结构与实施方式2中说明的结构相同。
在本实施方式中,对具有与实施方式2中说明的结构部相同的功能的结构部标注相同标号并省略其说明。
密文扰乱部50531通过同态乘法对随机密文50520的集合中包含的全部随机密文进行耦合,由此扰乱随机密文50520的集合。密文扰乱部50531生成将随机密文50520的集合耦合而成的一个耦合密文作为扰乱随机密文5002。
***动作的说明***
图14是示出本实施方式中的隐匿检索系统100的检索处理S130c的流程图。
图14的S1201~S1213是检索装置400和管理装置500执行的处理。S1201~S1203和S1211~S1213是由检索装置400执行的处理。S1204~S1210是由管理装置500执行的处理。
另外,本实施方式的检索处理S130c中的S1201~S1208是与实施方式3的S1101~S1108相同的处理,因此,这里省略说明。
在S1209中,密文扰乱部50531使用密钥保管部502中保管的公开密钥PK,针对在S1208中生成的随机密文的集合{C0,C1,…,Cθ}计算耦合密文CC=C0◇C1◇…◇Cθ=E(PK,Z1,Z2,…,Zn)。其中,设Ci=E(PK,Ri1,Ri2,…,Rin)(i为满足0≦i≦θ的整数)、Zj=R0j×R1j×…×Rθj(i为满足0≦i≦θ的整数)。
这里,注意如果存在Rij=0的(i,j),则Zj=R0j×R1j×…×Rθj=0。
在S1210中,结果发送部5053向检索装置400发送在S1209中生成的耦合密文CC作为加密检索结果5001。
在S1211中,接收部401接收在S1210中发送的加密检索结果CC。
在S1212中,解密部406使用密钥保管部402中保管的秘密密钥SK对在S1211中接收到的加密检索结果CC进行解密,得到检索结果Z1,Z2,…,Zn。
在S1213中,输出部407输出在S1212中得到的检索结果。
这里,根据能够进行θ+1次同态乘法的同态加密,对本实施方式的检索处理S130c的例子进行说明。这里,设保管数据为(0,1,2)、检索数据为(0,0,0)、θ=2进行说明。此时,保管数据(0,1,2)与检索数据(0,0,0)的欧几里德平方距离为10。并且,如果以二进制数表现为3=10,则保管数据(0,1,2)与检索数据(0,0,0)的海明距离为2。这里,S1=10、S2=2。在本实施方式中,作为保管数据与检索数据的相似度,希望向数据检索者告知欧几里德平方距离大于2且海明距离在2以内。
在S1206中,加密相似度计算部504计算加密相似度E(PK,S1,S2)=(E(PK,10),E(PK,2))。
在S1207中,相似密文生成部5051进行同态减法,根据E(PK,S1,S2)=(E(PK,10),E(PK,2))生成E(PK,10,2)=(E(PK,10),E(PK,2)),E(PK,9,1)=(E(PK,9),E(PK,1)),E(PK,8,0)=(E(PK,8),E(PK,0)),从而{c0,c1,c2}={E(PK,10,2),E(PK,9,1),E(PK,8,0)}。
在S1208中,明文随机化部5052生成不为0的随机数,进行同态加法,如下所述计算{C0,C1,C2}。
C0=E(PK,R0,R1)
C1=E(PK,R2,R3)
C2=E(PK,R4,0)
其中,R0、R1、R2、R3、R4为随机数。
在S1209中,密文扰乱部50531进行同态乘法,计算耦合密文CC=E(PK,R0×R2×R4,R1×R3×0)=E(PK,R,0)。其中,设R=R0×R2×R4。
在S1210中,发送部50532发送CC=E(PK,R,0)。
在S1211中,接收部401接收E(PK,R,0)。
在S1212中,解密部406使用秘密密钥SK对E(PK,R,0)进行解密,得到R作为与S1有关的明文,得到0作为与S2有关的明文。
在S1213中,由于出现随机数R作为与S1有关的明文,因此,输出部407输出表示与保管数据和检索数据的欧几里德平方距离有关的相似度大于阈值即大于2的检索结果信息4071。并且,由于出现0作为与S2有关的明文,因此,输出部407输出表示与保管数据和检索数据的海明距离有关的相似度在阈值以内即2以内的检索结果信息4071。
***本实施方式的效果的说明***
如上所述,根据本实施方式的隐匿检索系统100,除了得到与实施方式2和实施方式3相同的效果以外,通过使用利用同态运算对密文进行耦合这样的扰乱方法,与实施方式1~3相比,能够减小加密检索结果的大小。
***硬件结构例的说明***
最后,使用图15对密钥生成装置200、登记装置300、检索装置400、管理装置500、500a的各装置的硬件结构的一例进行说明。
密钥生成装置200、登记装置300、检索装置400、管理装置500、500a的各装置是计算机。
密钥生成装置200、登记装置300、检索装置400、管理装置500、500a的各装置具有处理器901、辅助存储装置902、存储器903、通信装置904、输入接口905、显示器接口906这样的硬件。
处理器901经由信号线910而与其它硬件连接,对这些其他硬件进行控制。
输入接口905与输入装置907连接。
显示器接口906与显示器908连接。
处理器901是进行处理的IC(Integrated Circuit:集成电路)。
作为具体例,处理器901是CPU(Central Processing Unit:中央处理单元)、DSP(Digital Signal Processor:数字信号处理器)、GPU(Graphics Processing Unit:图形处理单元)。
作为具体例,辅助存储装置902是ROM(Read Only Memory:只读存储器)、闪存、HDD(Hard Disk Drive:硬盘驱动器)。
作为具体例,存储器903是RAM(Random Access Memory:随机存取存储器)。
通信装置904包含接收数据的接收机9041和发送数据的发送机9042。
作为具体例,通信装置904是通信芯片或NIC(Network Interface Card:网络接口卡)。
输入接口905是连接输入装置907的缆线911的端口。
作为具体例,输入接口905是USB(Universal Serial Bus:通用串行总线)端子。
显示器接口906是连接显示器908的缆线912的端口。
作为具体例,显示器接口906是USB端子或HDMI(注册商标)(High DefinitionMultimedia Interface:高分辨率多媒体接口)端子。
作为具体例,输入装置907是鼠标、键盘或触摸面板。
作为具体例,显示器908是LCD(Liquid Crystal Display:液晶显示器)。
在计算机为密钥生成装置200的情况下,在辅助存储装置902中存储有实现图2所示的密钥生成部和密钥发送部的功能的程序。
并且,在计算机为登记装置300的情况下,在辅助存储装置902中存储有实现图3所示的输入部、加密部、数据发送部、密钥接收部、密钥保管部的功能的程序。
并且,在计算机为检索装置400的情况下,在辅助存储装置902中存储有实现图4所示的接收部、输入部、加密部、密钥保管部、检索数据发送部、解密部、输出部的功能的程序。
并且,在计算机为管理装置500的情况下,在辅助存储装置902中存储有实现图5所示的数据接收部、数据保管部、阈值保管部、密钥保管部、加密相似度计算部、相似密文生成部、明文随机化部、结果发送部的功能的程序。
并且,在计算机为管理装置500a的情况下,在辅助存储装置902中存储有实现图11所示的数据接收部、数据保管部、阈值保管部、密钥保管部、加密相似度计算部、相似密文生成部、明文随机化部、密文扰乱部、发送部的功能的程序。
下面,按照每个装置,将密钥生成装置200、登记装置300、检索装置400、管理装置500、500a的各装置中列举的结构部统一表记为“部”。
另外,登记装置300的输入部303、检索装置400的输入部403可以通过输入接口905和输入装置907实现。
并且,检索装置400的输出部407可以通过显示器接口906和显示器908实现。
并且,密钥生成装置200的密钥发送部202、检索装置400的检索数据发送部405、管理装置500的结果发送部5053、管理装置500a的发送部50532可以通过通信装置904实现。
并且,检索装置400的接收部401、管理装置500,500a的数据接收部501可以通过通信装置904实现。
并且,登记装置300的密钥保管部302、检索装置400的密钥保管部402可以通过辅助存储装置902实现。并且,管理装置500的数据保管部503、密钥保管部502、阈值保管部506也可以通过辅助存储装置902实现。
实现“部”的功能的程序可以是一个程序,也可以由多个程序构成。
该程序载入到存储器903,读入到处理器901,由处理器901来执行。
进而,在辅助存储装置902中还存储有OS(Operating System:操作系统)。
而且,OS的至少一部分载入到存储器903,处理器901执行OS,并且执行实现“部”的功能的程序。
在图15中,图示出一个处理器901,但是,密钥生成装置200、登记装置300、检索装置400、管理装置500、500a的各装置也可以具有多个处理器901。
而且,多个处理器901也可以协作执行实现“部”的功能的程序。
并且,表示“部”的处理结果的信息、数据、信号值和变量值中的至少任意一方存储在存储器903、辅助存储装置902或处理器901内的寄存器或高速缓冲存储器中。
并且,实现“部”的功能的程序存储在磁盘、软盘、光盘、高密度盘、蓝光(注册商标)盘、DVD等存储介质中。
也可以利用“处理电路系统”来提供“部”。
并且,也可以将“部”改写成“电路”或“工序”或“步骤”或“处理”。
“电路”和“处理电路系统”是不仅包含处理器901而且包含逻辑IC或GA(GateArray:门阵列)或ASIC(Application Specific Integrated Circuit:面向特定用途的集成电路)或FPGA(Field-Programmable Gate Array:现场可编程门阵列)这样的其他种类的处理电路的概念。
另外,被称作程序产品的是记录有实现作为“部”说明的功能的程序的存储介质和存储装置,与外观的形式无关,载入计算机能读取的程序。
在上述实施方式中,在密钥生成装置200、登记装置300、检索装置400、管理装置500、500a的各装置中,“部”分别作为独立的功能块来构成各装置。但是,各装置也可以不是上述结构,各装置的结构是任意的。各装置的功能块能够实现上述实施方式中说明的功能即可,是任意的。也可以通过其他任意组合构成这些功能块,或者,也可以通过任意的块结构来构成密钥生成装置200、登记装置300、检索装置400、管理装置500、500a的各装置。
并且,密钥生成装置200、登记装置300、检索装置400、管理装置500、500a的各装置也可以不是一个装置,而是由多个装置构成的系统。
并且,对实施方式1~4进行了说明,但是,也可以部分地组合实施这4个实施方式中的多个实施方式。或者,也可以部分地实施这4个实施方式中的一个实施方式。而且,也可以作为整体或部分地任意组合实施这4个实施方式。
另外,上述实施方式是本质上优选的例示,并不意图限制本发明及其应用物和用途的范围,能够根据需要进行各种变更。
标号说明
100:隐匿检索系统;101:网络;200:密钥生成装置;201:密钥生成部;202:密钥发送部;300:登记装置;301:密钥接收部;302:密钥保管部;303:输入部;304:加密部;305:数据发送部;400:检索装置;401:接收部;402:密钥保管部;403:输入部;404:加密部;405:检索数据发送部;406:解密部;4061:检索结果;407:输出部;4071:检索结果信息;500、500a:管理装置;5001:加密检索结果;5002:扰乱随机密文;501:数据接收部;502:密钥保管部;503:数据保管部;504:加密相似度计算部;5041:加密相似度;505:加密结果发送部;5051:相似密文生成部;50510:相似密文;5052:明文随机化部;50520:随机密文;5053:结果发送部;50531:密文扰乱部;50532:发送部;506:阈值保管部;θ:阈值;610:保管数据;620:保管加密数据;710:检索数据;720:检索加密数据;901:处理器;902:辅助存储装置;903:存储器;904:通信装置;905:输入接口;906:显示器接口;907:输入装置;908:显示器;910:信号线;911、912:缆线;9041:接收机;9042:发送机;9100:隐匿检索方法;9200:隐匿检索程序;S100:隐匿检索处理;S110:密钥生成处理;S120:登记处理;S130、S130a、S130b、S130c:检索处理;S806:加密相似度计算处理;S807:相似密文生成处理;S808:明文随机化处理;S809:结果发送处理;PK:公开密钥;SK:秘密密钥。

Claims (11)

1.一种隐匿检索系统,其中,
所述隐匿检索系统具有管理装置和检索装置,
所述管理装置具有:
加密相似度计算部,其对通过同态加密进行加密后的保管数据即保管加密数据和在所述保管数据的检索中使用的通过所述同态加密进行加密后的检索数据即检索加密数据进行同态运算,由此计算通过所述同态加密对所述保管数据与所述检索数据的相似度进行加密而成的加密相似度;以及
加密结果发送部,其使用所述加密相似度生成表示所述相似度是否在阈值以内的加密检索结果,发送所生成的所述加密检索结果,
所述检索装置具有:
解密部,其对从所述管理装置发送的所述加密检索结果进行解密,输出解密后的所述加密检索结果作为检索结果;以及
输出部,其根据所述检索结果输出表示所述相似度是否在所述阈值以内的检索结果信息。
2.根据权利要求1所述的隐匿检索系统,其中,
所述加密结果发送部具有:
相似密文生成部,其生成通过所述同态加密对以所述相似度相似的当所述相似度在所述阈值以内的情况下至少一个为0的所述多个明文分别进行加密而成的多个相似密文;
明文随机化部,其对所述多个相似密文的多个明文进行随机化,生成通过所述同态加密对随机化后的所述多个明文分别进行加密而成的随机密文的集合;以及
结果发送部,其使用由所述明文随机化部生成的所述随机密文的集合生成所述加密检索结果,发送所生成的所述加密检索结果。
3.根据权利要求2所述的隐匿检索系统,其中,
所述明文随机化部将所述多个明文中的值为0的明文设为0,并且对所述多个明文中的值不为0的明文进行随机化,生成通过所述同态加密对随机化后的所述多个明文分别进行加密而成的所述随机密文的集合,
所述输出部根据所述检索结果判定所述多个明文中是否存在值为0的明文,在判定为存在值为0的明文的情况下,输出表示所述相似度在所述阈值以内的所述检索结果信息,在判定为所述多个明文中不存在值为0的明文的情况下,输出表示所述相似度大于所述阈值的所述检索结果信息。
4.根据权利要求3所述的隐匿检索系统,其中,
当所述相似度在所述阈值以内的情况下,所述相似密文生成部生成通过所述同态加密对从开头起第所述相似度的值个明文为0的所述多个明文分别进行加密而成的所述多个相似密文,
在判定为所述多个明文中存在值为0的明文的情况下,所述输出部取得所述多个明文中的所述值为0的明文的顺次,将所述顺次确定为所述相似度,输出所确定的所述相似度。
5.根据权利要求2或3所述的隐匿检索系统,其中,
所述结果发送部具有:
密文扰乱部,其扰乱由所述明文随机化部生成的所述随机密文的集合,生成扰乱后的所述随机密文的集合作为扰乱随机密文;以及
发送部,其发送由所述密文扰乱部生成的所述扰乱随机密文的集合作为所述加密检索结果,
所述输出部判定所述多个明文中是否存在值为0的明文,在判定为存在值为0的明文的情况下,输出表示所述相似度在所述阈值以内的所述检索结果信息,在判定为所述多个明文中不存在值为0的明文的情况下,输出表示所述相似度大于所述阈值的所述检索结果信息。
6.根据权利要求5所述的隐匿检索系统,其中,
所述密文扰乱部在所述随机密文的集合中对所述随机密文在所述随机密文的集合中的顺序进行变更,由此扰乱所述随机密文的集合,生成对顺序进行变更后的所述随机密文的集合作为扰乱随机密文。
7.根据权利要求5所述的隐匿检索系统,其中,
所述密文扰乱部在所述随机密文的集合中的2个随机密文中,对一个随机密文的成分和另一个随机密文的成分进行交换,由此扰乱所述随机密文的集合,生成扰乱后的所述随机密文的集合作为所述扰乱随机密文。
8.根据权利要求5所述的隐匿检索系统,其中,
所述密文扰乱部通过同态乘法对所述随机密文的集合中包含的全部随机密文进行耦合,由此扰乱所述随机密文的集合,生成将所述随机密文的集合耦合而成的一个耦合密文作为所述扰乱随机密文。
9.一种管理装置,其中,所述管理装置具有:
加密相似度计算部,其对通过同态加密进行加密后的保管数据即保管加密数据和在所述保管数据的检索中使用的通过所述同态加密进行加密后的检索数据即检索加密数据进行同态运算,由此计算通过所述同态加密对所述保管数据与所述检索数据的相似度进行加密而成的加密相似度;
相似密文生成部,其生成通过所述同态加密对以所述相似度相似的当所述相似度在阈值以内的情况下至少一个为0的多个明文分别进行加密而成的多个相似密文;
明文随机化部,其对所述多个相似密文的多个明文进行随机化,生成通过所述同态加密对随机化后的所述多个明文分别进行加密而成的随机密文的集合;以及
结果发送部,其使用由所述明文随机化部生成的所述随机密文的集合,生成表示所述相似度是否在所述阈值以内的加密检索结果,发送所生成的所述加密检索结果。
10.一种隐匿检索系统的隐匿检索方法,该隐匿检索系统具有保管通过同态加密进行加密后的保管数据作为保管加密数据的管理装置和使用检索数据检索所述保管数据的检索装置,其中,
所述管理装置的加密相似度计算部对所述保管加密数据和通过所述同态加密对所述检索数据进行加密而成的检索加密数据进行同态运算,由此计算通过所述同态加密对所述保管数据与所述检索数据的相似度进行加密而成的加密相似度,
所述管理装置的加密结果发送部使用所述加密相似度生成表示所述相似度是否在阈值以内的加密检索结果,发送所生成的所述加密检索结果,
所述检索装置的解密部对从所述管理装置发送的所述加密检索结果进行解密,输出解密后的所述加密检索结果作为检索结果,
所述检索装置的输出部根据所述检索结果输出表示所述相似度是否在所述阈值以内的检索结果信息。
11.一种管理装置的隐匿检索程序,该管理装置保管通过同态加密进行加密后的保管数据作为保管加密数据,其中,所述隐匿检索程序具有使计算机执行以下处理:
加密相似度计算处理,对所述保管加密数据和在所述保管数据的检索中使用的通过所述同态加密进行加密后的检索数据即检索加密数据进行同态运算,由此计算通过所述同态加密对所述保管数据与所述检索数据的相似度进行加密而成的加密相似度;
相似密文生成处理,生成通过所述同态加密对以所述相似度相似的当所述相似度在阈值以内的情况下至少一个为0的多个明文分别进行加密而成的多个相似密文;
明文随机化处理,对所述多个相似密文的多个明文进行随机化,生成通过所述同态加密对随机化后的所述多个明文分别进行加密而成的随机密文的集合;以及
结果发送处理,使用通过所述明文随机化处理而生成的所述随机密文的集合,生成表示所述相似度是否在所述阈值以内的加密检索结果,发送所生成的所述加密检索结果。
CN201580083638.9A 2015-10-09 2015-10-09 隐匿检索系统、管理装置、隐匿检索方法和记录介质 Active CN108140334B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2015/078712 WO2017061024A1 (ja) 2015-10-09 2015-10-09 秘匿検索システム、管理装置、秘匿検索方法及び秘匿検索プログラム

Publications (2)

Publication Number Publication Date
CN108140334A true CN108140334A (zh) 2018-06-08
CN108140334B CN108140334B (zh) 2021-03-23

Family

ID=56843292

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201580083638.9A Active CN108140334B (zh) 2015-10-09 2015-10-09 隐匿检索系统、管理装置、隐匿检索方法和记录介质

Country Status (5)

Country Link
US (1) US10673614B2 (zh)
EP (1) EP3361469B8 (zh)
JP (1) JP5985123B1 (zh)
CN (1) CN108140334B (zh)
WO (1) WO2017061024A1 (zh)

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7024709B2 (ja) * 2016-06-02 2022-02-24 日本電気株式会社 暗号化情報照合装置、暗号化情報照合方法、及び、暗号化情報照合プログラム
US10812252B2 (en) * 2017-01-09 2020-10-20 Microsoft Technology Licensing, Llc String matching in encrypted data
CN106953722B (zh) * 2017-05-09 2017-11-07 深圳市全同态科技有限公司 一种全同态加密的密文查询方法和系统
US11196539B2 (en) 2017-06-22 2021-12-07 Microsoft Technology Licensing, Llc Multiplication operations on homomorphic encrypted data
US10541805B2 (en) 2017-06-26 2020-01-21 Microsoft Technology Licensing, Llc Variable relinearization in homomorphic encryption
US10749665B2 (en) 2017-06-29 2020-08-18 Microsoft Technology Licensing, Llc High-precision rational number arithmetic in homomorphic encryption
JP7132506B2 (ja) * 2019-01-07 2022-09-07 富士通株式会社 秘密情報検索システム、秘密情報検索プログラム、および秘密情報検索方法
US11764940B2 (en) 2019-01-10 2023-09-19 Duality Technologies, Inc. Secure search of secret data in a semi-trusted environment using homomorphic encryption
US11907952B2 (en) * 2019-03-12 2024-02-20 Cox Communications, Inc. Secured analytics using encrypted data
JPWO2021029173A1 (zh) * 2019-08-09 2021-02-18
US11070357B2 (en) * 2019-10-17 2021-07-20 Raytheon Company Techniques for privacy-preserving data processing across multiple computing nodes
CN111159745B (zh) * 2019-12-30 2023-04-07 深圳前海微众银行股份有限公司 一种适用于区块链的验证方法及装置
US11308234B1 (en) 2020-04-02 2022-04-19 Wells Fargo Bank, N.A. Methods for protecting data
US11816212B2 (en) * 2020-04-15 2023-11-14 Inferati Inc. Large scale zero trust malware detection
US11238168B2 (en) * 2020-04-20 2022-02-01 Cyberark Software Ltd. Secure, efficient, and flexible searchable-encryption techniques
KR102522708B1 (ko) * 2020-06-15 2023-04-18 주식회사 크립토랩 동형 암호문에 대한 통계 연산 수행하는 장치 및 방법
RU2763394C1 (ru) * 2021-03-30 2021-12-28 Автономная некоммерческая организация высшего образования «Университет Иннополис» Способ и устройство шифрования данных
JP2023019432A (ja) * 2021-07-29 2023-02-09 株式会社日立製作所 情報処理システム及び情報処理方法
CN115001649A (zh) * 2022-04-15 2022-09-02 支付宝(杭州)信息技术有限公司 批量加密方法、相关装置、系统、设备、介质及程序产品
WO2024015101A1 (en) * 2022-07-15 2024-01-18 Google Llc Private pre-fetching of search results

Citations (9)

* 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
CN103380591A (zh) * 2011-02-22 2013-10-30 三菱电机株式会社 类似度计算系统、类似度计算装置、计算机程序以及类似度计算方法
CN103744976A (zh) * 2014-01-13 2014-04-23 北京工业大学 一种基于同态加密的图像安全检索方法
US20140140514A1 (en) * 2009-11-10 2014-05-22 International Business Machines Corporation Fully Homomorphic Encryption Method Based On A Bootstrappable Encryption Scheme, Computer Program And Apparatus
US20140208101A1 (en) * 2011-09-27 2014-07-24 Hitachi, Ltd. Confidential computation system, confidential computation method, and confidential computation program
CN104169818A (zh) * 2012-03-19 2014-11-26 三菱电机株式会社 定序程序生成装置
US20150046450A1 (en) * 2013-08-08 2015-02-12 Hitachi Solutions, Ltd. Searchable code processing system and method
US20150207630A1 (en) * 2014-01-20 2015-07-23 Fujitsu Limited Information processing apparatus, and information processing method
CN104967693A (zh) * 2015-07-15 2015-10-07 中南民族大学 面向云存储的基于全同态密码技术的文档相似度计算方法

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4395611B2 (ja) 2003-10-28 2010-01-13 独立行政法人情報通信研究機構 暗号化データベース検索装置および方法ならびに暗号化データベース検索プログラム
EP1815637B1 (en) * 2004-11-16 2016-04-20 Koninklijke Philips N.V. Securely computing a similarity measure
JP2007114494A (ja) 2005-10-20 2007-05-10 Nippon Telegr & Teleph Corp <Ntt> 秘匿計算方法及び装置
JP2010165275A (ja) 2009-01-19 2010-07-29 Mitsubishi Electric Corp データ格納システム及び情報送信装置及びサーバ装置
US9215068B2 (en) 2011-09-14 2015-12-15 National Institute Of Advanced Industrial Science And Technology Search system, search method, and program
JP5720536B2 (ja) 2011-11-10 2015-05-20 富士通株式会社 秘匿化データの検索のための情報処理方法及び装置
JP5948060B2 (ja) 2012-01-13 2016-07-06 株式会社日立製作所 暗号化データの高速な類似検索処理システム
JP6083234B2 (ja) 2012-12-27 2017-02-22 富士通株式会社 暗号処理装置
JP2014126865A (ja) 2012-12-27 2014-07-07 Fujitsu Ltd 暗号処理装置および方法
JP6244728B2 (ja) 2013-08-07 2017-12-13 富士通株式会社 情報処理方法及びプログラム

Patent Citations (9)

* 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
US20140140514A1 (en) * 2009-11-10 2014-05-22 International Business Machines Corporation Fully Homomorphic Encryption Method Based On A Bootstrappable Encryption Scheme, Computer Program And Apparatus
CN103380591A (zh) * 2011-02-22 2013-10-30 三菱电机株式会社 类似度计算系统、类似度计算装置、计算机程序以及类似度计算方法
US20140208101A1 (en) * 2011-09-27 2014-07-24 Hitachi, Ltd. Confidential computation system, confidential computation method, and confidential computation program
CN104169818A (zh) * 2012-03-19 2014-11-26 三菱电机株式会社 定序程序生成装置
US20150046450A1 (en) * 2013-08-08 2015-02-12 Hitachi Solutions, Ltd. Searchable code processing system and method
CN103744976A (zh) * 2014-01-13 2014-04-23 北京工业大学 一种基于同态加密的图像安全检索方法
US20150207630A1 (en) * 2014-01-20 2015-07-23 Fujitsu Limited Information processing apparatus, and information processing method
CN104967693A (zh) * 2015-07-15 2015-10-07 中南民族大学 面向云存储的基于全同态密码技术的文档相似度计算方法

Also Published As

Publication number Publication date
EP3361469B1 (en) 2020-12-23
EP3361469B8 (en) 2021-03-10
US20180278410A1 (en) 2018-09-27
EP3361469A4 (en) 2018-08-15
CN108140334B (zh) 2021-03-23
WO2017061024A1 (ja) 2017-04-13
EP3361469A1 (en) 2018-08-15
JP5985123B1 (ja) 2016-09-06
US10673614B2 (en) 2020-06-02
JPWO2017061024A1 (ja) 2017-10-05

Similar Documents

Publication Publication Date Title
CN108140334A (zh) 隐匿检索系统、管理装置、隐匿检索方法和隐匿检索程序
JP5253567B2 (ja) 暗号システム、暗号通信方法、暗号化装置、鍵生成装置、復号装置、コンテンツサーバ装置、プログラム、記憶媒体
CN106533650B (zh) 面向云端的交互型隐私保护方法和系统
US11341269B2 (en) Providing security against user collusion in data analytics using random group selection
Datta et al. Full-hiding (unbounded) multi-input inner product functional encryption from the k-linear assumption
US20200151356A1 (en) System and method for fast and efficient searching of encrypted ciphertexts
JP5422053B2 (ja) 暗号システム、暗号通信方法、暗号化装置、鍵生成装置、復号装置、コンテンツサーバ装置、プログラム、記憶媒体
US8539220B2 (en) Secure computation using a server module
Cheng et al. Secure similar sequence query on outsourced genomic data
JP6363032B2 (ja) 鍵付替え方向制御システムおよび鍵付替え方向制御方法
JP5432736B2 (ja) 暗号化された情報のためのキーワード検索システム、キーワード検索方法、検索要求装置、検索代行装置、プログラム、記録媒体
EP3075098A1 (en) Server-aided private set intersection (psi) with data transfer
CN113868708B (zh) 基于双链架构的可监管数据安全共享方法及设备
CN110176983A (zh) 基于全同态加密的隐私保护关联规则挖掘方法
CN110866135B (zh) 一种基于响应长度隐藏的k-NN图像检索方法及系统
Sokouti et al. Medical image encryption: an application for improved padding based GGH encryption algorithm
CN114598472A (zh) 基于区块链的条件隐藏可搜索代理重加密方法及存储介质
Reyad et al. Hash-enhanced elliptic curve bit-string generator for medical image encryption
Banfi et al. Composable and finite computational security of quantum message transmission
Devi et al. A comparative study on homomorphic encryption algorithms for data security in cloud environment
Chandran et al. Reducing Depth in Constrained PRFs: From Bit-Fixing to
Armour et al. Subverting Deniability
Gordon et al. More efficient (reusable) private set union
Zhang Practical Functional Encryption Techniques and Their Applications
Wang et al. Secure decision tree classification with decentralized authorization and access control

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