CN108475480A - 加密装置、加密方法和加密程序 - Google Patents

加密装置、加密方法和加密程序 Download PDF

Info

Publication number
CN108475480A
CN108475480A CN201680076736.4A CN201680076736A CN108475480A CN 108475480 A CN108475480 A CN 108475480A CN 201680076736 A CN201680076736 A CN 201680076736A CN 108475480 A CN108475480 A CN 108475480A
Authority
CN
China
Prior art keywords
data
retrieval
encryption
keeping
encrypted
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
CN201680076736.4A
Other languages
English (en)
Other versions
CN108475480B (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 CN108475480A publication Critical patent/CN108475480A/zh
Application granted granted Critical
Publication of CN108475480B publication Critical patent/CN108475480B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/14Details of searching files based on file metadata
    • G06F16/148File search processing
    • G06F16/152File search processing using file content signatures, e.g. hash values
    • 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/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • H04L9/0631Substitution permutation network [SPN], i.e. cipher composed of a number of stages or rounds each involving linear and nonlinear transformations, e.g. AES algorithms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • 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

Landscapes

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

Abstract

数据分割部(305)将保管数据D分割成所述字符串数据D的从头到尾的N个元素数据w1,w2,...,wN。部分字符串生成部(306)根据元素数据w1,w2,...,wN生成集合A={A1,A2,...,AN},集合A的元素Ai={(wi),(wiwi+1),...,(wiwi+ 1...wN)},i=1,...,N。位置信息分配部(307)使位置信息i与元素Ai的成分即(wi),(wiwi+1),...,(wiwi+1...wN)分别对应,由此,生成集合B={B1,B2,...,BN},集合B的元素Bi={(i,wi),(i,wiwi+1),...,(i,wiwi+1...wN)}。加密部(308)对元素Bi中包含的成分即(i,wi),(i,wiwi+1),...,(i,wiwi+1...wN)分别进行加密。

Description

加密装置、加密方法和加密程序
技术领域
本发明涉及检索系统、管理装置、登记装置、检索装置、密钥生成装置、检索方法、服务器程序和终端程序。发明例如涉及隐匿检索系统。
背景技术
隐匿检索是能够在对检索对象数据和检索内容进行加密的状态下进行检索的技术。近年来,由于云服务等的普及,已经能够在互联网上进行数据管理。
但是,在互联网上的数据管理中,存在由于作为数据管理委托目的地的云等服务器感染计算机病毒等恶意软件、或服务器的管理者进行不正当动作等而向外部泄露寄存数据的危险性。如果服务器中寄存的数据是个人信息或企业机密数据,则该泄露是非常严重的问题。
作为避免这种安全性威胁的方法,存在加密技术,但是,当单纯地对数据进行加密并保管在服务器中时,产生无法进行数据检索这样的问题。
为了避免这种问题,以往采取在进行检索时暂时对服务器上保管的加密数据进行解密后进行检索这样的方法,但是,数据在服务器内在一定期间内返回到明文,因此,作为对策并不充分。
因此,提出能够在对数据进行加密的状态下进行检索的加密技术即“隐匿检索技术”,近年来公开了很多隐匿检索技术的具体方法。
在隐匿检索技术中,主要研究了能够进行作为单纯检索的“完全一致检索”的方式(例如参照非专利文献1),但是,近年来,还研究了能够进行更加灵活的检索例如“部分一致检索”的方式(例如参照专利文献1、非专利文献2)和能够进行“相似检索”的方式(例如参照非专利文献3、非专利文献2)等。以下,将能够进行部分一致检索的方式称作“隐匿部分一致检索技术”,将能够进行相似检索的隐匿检索技术称作“隐匿相似检索技术”。另外,隐匿检索技术大致存在RSA加密方式(RSA为注册商标)这样的基于公开密钥加密的方式和AES加密方式这样的基于共享密钥加密的方式这2种。
现有技术文献
专利文献
专利文献1:日本特开2014-126621号公报
非专利文献
非专利文献1:R.Curtmola,J.Garay,S.Kamara,and R.Ostrovsky.“SearchableSymmetric Encryption:Improved Definitions and Efficient Constructions”.ACMCCS2006.
非专利文献2:M.Chase and E.Shen.“Substring-Searchable SymmetricEncryption”,PETS 2015.
非专利文献3:J.Li,Q.Wang,C.Wang,N.Cao,K.Ren,and W.Lou.“Fuzzy KeywordSearch over Encrypted Data in Cloud Computing”,Mini-Conference at IEEEInfocom2010.
非专利文献4:C.Wang,K.Ren,S.Yu,and K.M.R.Urs.“Achieving Usable andPrivacy-assured Similarity Search over Outsourced Cloud Data”,IEEE Infocom2012.
发明内容
发明要解决的课题
AES、HMAC和SHA-256这样的基于共享密钥加密技术的现有的高速隐匿部分一致检索技术存在以下这种课题。
在专利文献1中公开了如下技术:以几个字符为单位对数据进行分割,分别进行加密,由此,在加密后的状态下实现部分一致检索。例如,以1个字符或2个字符等为单位划分数据并对数据进行加密。
但是,当以较少字符数对数据进行分割时,可能出现较多的完全相同的分割数据。在本技术中,利用根据相同数据总是生成相同密文的确定加密方式,因此,即使对相同分割数据进行加密,也生成完全相同的密文,因此,存在容易受到频率分析攻击这样的课题。
这里,频率分析攻击是指如下的攻击方法:对具有相同值的密文的频率和与频率有关的公共信息(例如日本人的名字的分布等)进行核对,由此,即使不使用加密中使用的密钥,也能够根据密文推测原来的数据。
另外,为了不受到这种攻击,考虑使用即使是相同数据也每次转换成不同字符的概率加密方式,但是,当在本技术中使用这种加密方式时,存在无法进行检索这样的课题。
作为其他对策,还可考虑增大要分割的字符数的对策,但是,该情况下,存在很难进行部分一致检索这样的课题。
在非专利文献2中公开了如下的隐匿部分一致检索技术:不会受到上述这种频率分析攻击,并且,能够减小利用某种树构造进行保管的加密数据(以后称作保管加密数据)的大小。但是,在本技术中,检索中使用的加密数据(以后称作检索加密数据)的大小增大,在检索时用户与服务器的对话次数较多,因此,通信量存在课题。
在非专利文献3和非专利文献4中公开了还包含部分一致检索的隐匿相似检索技术。与部分一致检索相比,这些技术能够进行灵活的检索,但是,存在保管加密数据的大小和检索加密数据的大小均较大这样的课题。
本发明的目的在于,提供实现对频率分析等攻击具有耐性的较高安全性、数据大小较小且通信量较小的隐匿部分一致检索技术。
用于解决课题的手段
本发明的加密装置的特征在于,所述加密装置具有:数据分割部,其将字符串数据D分割成所述字符串数据D的从头到尾的N个元素数据w1,w2,...,wN;部分字符串生成部,其根据所述N个元素数据w1,w2,...,wN生成集合A={A1,A2,...,AN},集合A的元素Ai={(wi),(wiwi+1),...,(wiwi+1...wN)},i=1,...,N;位置信息分配部,其使位置信息i与所述元素Ai的成分即(wi),(wiwi+1),...,(wiwi+1...wN)分别对应,由此,生成集合B={B1,B2,...,BN},集合B的元素Bi={(i,wi),(i,wiwi+1),...,(i,wiwi+1...wN)};以及加密部,其对所述元素Bi中包含的成分即(i,wi),(i,wiwi+1),...,(i,wiwi+1...wN)分别进行加密。
发明效果
根据本发明,在构成作为保管数据的字符串数据的部分字符串中加上位置信息进行加密,因此,在进行频率分析攻击后,无法进行重要字符串数据的密文彼此的比较。由此,能够提高针对频率分析攻击的安全性。
附图说明
图1是实施方式1的图,是示出隐匿检索系统的结构的框图。
图2是实施方式1的图,是示出密钥生成装置的结构的框图。
图3是实施方式1的图,是示出登记装置的结构的框图。
图4是实施方式1的图,是示出检索装置的结构的框图。
图5是实施方式1的图,是示出管理装置的结构的框图。
图6是实施方式1的图,是示出隐匿检索系统的密钥生成/保管处理的流程图。
图7是实施方式1的图,是示出隐匿检索系统的数据登记处理的流程图。
图8是实施方式1的图,是示出隐匿检索系统的数据检索处理的流程图。
图9是实施方式1的图,是示出隐匿检索系统的数据删除处理的流程图。
图10是实施方式1的图,是示出隐匿检索系统的硬件资源的一例的图。
图11是实施方式2的图,是示出密钥生成装置的结构的框图。
图12是实施方式2的图,是示出登记装置的结构的框图。
图13是实施方式2的图,是示出检索装置的结构的框图。
图14是实施方式2的图,是示出管理装置的结构的框图。
图15是实施方式2的图,是示出检索系统的密钥生成/保管处理的流程图。
图16是实施方式2的图,是示出检索系统的数据登记处理的流程图。
图17是实施方式2的图,是示出检索系统的数据检索处理的流程图。
图18是实施方式3的图,是示出密钥生成装置的结构的框图。
图19是实施方式3的图,是示出登记装置的结构的框图。
图20是实施方式3的图,是示出检索装置的结构的框图。
图21是实施方式3的图,是示出管理装置的结构的框图。
图22是实施方式3的图,是示出检索系统的密钥生成/保管处理的流程图。
图23是实施方式3的图,是示出检索系统的数据登记处理的流程图。
图24是实施方式3的图,是示出检索系统的数据检索处理的流程图。
具体实施方式
下面,使用附图对本发明的实施方式进行说明。另外,在各图中,对相同或相当的部分标注相同标号。在实施方式的说明中,针对相同或相当的部分,适当省略或简化其说明。
实施方式1
在本实施方式中,公开一种高安全且高效的隐匿部分一致检索技术。
下面,对本实施方式的概要进行说明。
图1是示出本实施方式的隐匿检索系统100的结构的框图。如图1所示,隐匿检索系统100具有密钥生成装置200、多个登记装置300、多个检索装置400和管理装置500。
<***结构的说明***>
隐匿检索系统100可以具有多个密钥生成装置200。隐匿检索系统100可以仅具有一个登记装置300。隐匿检索系统100可以仅具有一个检索装置400。隐匿检索系统100可以具有多个管理装置500。在隐匿检索系统100中,密钥生成装置200、多个登记装置300、多个检索装置400和管理装置500也可以分别不经由互联网101连接,而是设置在铺设于相同企业内的LAN(Local Area Network:局域网)内。互联网101是连接密钥生成装置200、多个登记装置300、多个检索装置400和管理装置500的通信路径。互联网101是网络的例子。也可以代替互联网101而使用其他种类的网络。
密钥生成装置200生成加密中利用的密钥,经由互联网101向多个登记装置300和多个检索装置400发送密钥。另外,也可以不经由互联网101而通过邮寄等直接向多个登记装置300和多个检索装置400发送该密钥。
登记装置300例如是个人计算机。登记装置300是作为在管理装置500中登记保管加密数据的登记终端进行动作的计算机。登记装置300作为加密装置和登记装置发挥功能。即,登记装置300生成保管加密数据,请求管理装置500对保管加密数据进行保管。登记装置300作为删除请求装置发挥功能。即,登记装置300请求管理装置500删除保管着的保管加密数据。
检索装置400例如是个人计算机。检索装置400是向管理装置500发送检索加密数据,然后从管理装置500接收加密检索结果并输出加密检索结果的计算机。检索装置400作为检索请求装置发挥功能。即,检索装置400向管理装置500发送加密检索数据,请求对保管加密数据和检索加密数据进行核对。检索装置400作为输出装置发挥功能。即,检索装置400输出从管理装置500返回的检索结果。
管理装置500是具有对由登记装置300生成的保管加密数据进行保管的大容量记录介质的装置。管理装置500作为保管装置发挥功能。即,如果被登记装置300请求对保管加密数据进行保管,则管理装置500对保管加密数据进行保管。管理装置500作为检索装置发挥功能。即,如果被检索装置400请求进行检索,则管理装置500对保管加密数据和检索加密数据进行核对,向检索装置400发送检索结果。管理装置500作为删除装置发挥功能。即,如果被登记装置300请求删除保管加密数据,则管理装置500删除保管着的保管加密数据。
另外,可以在相同个人计算机内同时包含密钥生成装置200、登记装置300和检索装置400中的任意装置。
另外,保管加密数据和检索加密数据均被加密。除了不具有密钥的登记装置300和检索装置400以外,很难根据保管加密数据和检索加密数据得到有用的信息。
下面,对本实施方式的结构进行说明。
如图1所示,隐匿检索系统100具有密钥生成装置200、登记装置300、检索装置400和管理装置500。
下面,依次对密钥生成装置200的结构、登记装置300的结构、检索装置400的结构和管理装置500的结构进行说明。
图2是示出密钥生成装置200的结构的框图。如图2所示,密钥生成装置200具有密钥生成部201、参数生成部202和发送部203。虽然未图示,但是,密钥生成装置200具有存储在密钥生成装置200的各部中使用的数据的记录介质。
密钥生成部201生成用于对数据进行加密和解密的密钥K。密钥K是登记装置300和检索装置400中保管的秘密信息,因此严格生成。另外,这里,使用共享密钥加密技术进行说明,但是,也可以使用公开密钥加密技术。
参数生成部202生成在数据的加密和数据的核对时所需要的参数。例如,作为参数,存在将登记数据分割成若干个字符串时的最大长度L。另外,L是大于0的整数。并且,L不是秘密信息,因此,也可以公共地公开。
发送部203向登记装置300和检索装置400发送由密钥生成部201生成的密钥K,并且,向登记装置300和管理装置500发送由参数生成部生成的参数L。
图3是示出登记装置300的结构的框图。如图3所示,登记装置300具有接收部301、密钥保管部302、参数保管部303、输入部304、数据分割部305、部分字符串生成部306、位置信息分配部307、加密部308和发送部309。虽然未图示,但是,登记装置300具有存储在登记装置300的各部中使用的数据的记录介质。
接收部301接收从密钥生成装置200发送来的密钥K和参数L。密钥保管部302保管从接收部301接收到的密钥K。参数保管部303保管从接收部301接收到的参数L。
输入部304接收数据登记者输入的保管数据和数据名。另外,在本实施方式中,设保管数据D和数据名为ID(D)进行说明。如果数据登记者没有输入数据名,则输入部304可以对输入的保管数据D的数据名ID(D)分配随机数,也可以以不与其他保管数据的数据名重复的方式依次分配大于0的整数值。数据名的ID(D)是标识保管数据D的标识符。
并且,输入部304从数据登记者接收与希望删除的保管加密数据有关的删除数据名。删除数据名例如是登记时输入的数据名、登记的时刻、数据登记者的姓名等能够确定保管数据的信息即可,可以是任意的。
数据分割部305从参数保管部303中读出参数L,将从输入部304接收到的保管数据D分割成(w1,…,wL)。
其中,各wi(1≦i≦L)可以是按照1个字符或多个字符依次分割数据而得到的,也可以按照单词单位进行分割。并且,也可以进行数据分割,以使数据D成为(w1,...,wk)且k≦L。如果不管如何分割数据,分割数都小于L,则可以就这样小于L,也可以使用“*”或null等特殊字符补充不足的字符数,进行调整以使长度成为L。下面,对设分割数为L的情况进行说明,但是,即使小于L,也实施大致相同的步骤即可。
部分字符串生成部306根据从数据分割部305接收到的分割数据(w1,…,wL)生成如下的集合A。
A={{(w1),(w1w2),…,(w1…wL)},{(w2),(w2w3),…,(w2…wL)},…,{(wL)}}。
下面,将集合A称作部分字符串集合。
位置信息分配部307如下所述对从部分字符串生成部306接收到的部分字符串集合A中的各部分字符串分配位置信息,生成集合B。
B={(1,w1),(1,w1w2),…,(1,w1…wL)},{(2,w2),(2,w2w3),…,(2,w2···wL)},…,{(L,wL)}}。
这里,以后将集合B称作带位置信息的部分字符串集合。
加密部308从密钥保管部302中读出密钥K,如下所述生成针对从位置信息分配部307接收到的带位置信息的部分字符串集合B中的各带位置信息的部分字符串的密文C。针对位置信息和部分字符串的各对(p,w),生成C=E(E(K,w),p,ID(D))。
另外,E是加密函数。例如,AES这样的共享密钥加密方式、HMAC这样的消息认证码、SHA-256这样的哈希函数是E的一例。
这里,将对全部(i,w)加密后的密文的集合写成C(D)。
下面,将对(ID(D),C(D))称作保管加密数据集合。
发送部309向管理装置500发送从加密部308接收到的保管加密数据集合(ID(D),C(D))。并且,发送部309向管理装置500发送从输入部304接收到的删除数据名。
图4是示出检索装置400的结构的框图。如图4所示,检索装置400具有接收部401、密钥保管部402、输入部403、加密部404、发送部405和输出部406。虽然未图示,但是,检索装置400具有存储在检索装置400的各部中使用的数据的记录介质。
接收部401接收从密钥生成装置200发送来的密钥K或从管理装置500发送来的检索结果。密钥保管部402保管从接收部401接收到的密钥K。输入部403接收数据检索者输入的检索数据s。并且,输入部403也可以与检索数据同时,从数据检索者还接收多个指定该检索数据和希望检索的保管加密数据集合的保管数据名。
加密部404从密钥保管部402中读出密钥K,针对从输入部403接收到的检索数据s,如下所述使用密钥K生成密文t。
t=E(K,s)。
下面,将该t称作检索加密数据。
发送部405向管理装置500发送从加密部404接收到的检索加密数据t。如果与检索数据同时数据检索者还输入了保管数据名,则向管理装置500发送检索加密数据和保管数据名双方。
输出部406根据从接收部401接收到的检索结果,对数据检索者输出检索结果。如果对检索结果进行了加密,则使用密钥保管部402中保管的密钥K等对检索结果进行解密后输出。
图5是示出管理装置500的结构的框图。如图5所示,管理装置500具有接收部501、参数保管部502、数据保管部503、核对部504和发送部505。虽然未图示,但是,管理装置500具有存储在管理装置500的各部中使用的数据的记录介质。
接收部501接收从密钥生成装置200发送来的参数L、从登记装置300发送来的保管加密数据集合(ID(D),C(D))和删除数据名、从检索装置400发送来的检索加密数据t和保管数据名。
参数保管部502保管从接收部501接收到的参数L。
数据保管部503保管从接收部501接收到的保管加密数据集合(ID(D),C(D))。如果需要,则也可以还同时保管发送来的日期时间等。
并且,数据保管部503根据从接收部501接收到的删除数据名,删除保管着的保管加密数据集合。
核对部504生成与检索结果有关的空集合R,从数据保管部503中读出全部保管加密数据集合(ID(D),C(D)),根据从接收部501接收到的检索加密数据t,如下所述进行核对并生成检索结果。
核对部504计算T1=E(t,1,ID(D)),…,TL=E(t,L,ID(D)),确认各Tp(1≦p≦L)是否包含在C(D)中。
如果Tp包含在C(D)中,则在R中加上对(ID(D),p)。
该(ID(D),p)意味着“在ID(D)的第p个位置出现检索数据”。下面,将各Tp称作核对数据,将{T1,…,TL}称作核对数据集合。
并且,将本处理的结果即最终生成的集合R称作检索结果。
另外,如果接收部501从检索装置400还接收到保管数据名,则核对部504根据该保管数据名,从数据保管部503中仅读出作为对象的保管加密数据集合,进行同样的处理。
发送部505向检索装置400发送从核对部504接收到的检索结果R。
下面,对与本实施方式的加密方法和检索方法相当的隐匿检索系统100的动作进行说明。
图6是示出隐匿检索系统100的密钥生成/保管处理的流程图。图6的步骤S601~步骤S612是密钥生成装置200、登记装置300、检索装置400和管理装置500执行的处理。步骤S601~步骤S605由密钥生成装置200来执行,步骤S606~步骤S608由登记装置300来执行,步骤S609~步骤S610由检索装置400来执行,步骤S611~步骤S612由管理装置500来执行。
另外,下面,步骤S601等步骤编号记为S601等。图7~图9、实施方式的图15~图17和实施方式3的图22~图24的步骤编号也相同。
在S601中,密钥生成部201生成用于对数据进行加密的密钥K。另外,在本案中,使用共享密钥加密技术进行说明,但是,也可以使用公开密钥加密技术。该情况下,密钥生成部201设定公开密钥PK和秘密密钥SK的对作为密钥K,同样实施以后的处理即可。
在S602中,参数生成部202生成参数L。另外,如上所述,L是对保管数据进行分割时出现的字符串的最大数。
在S603中,发送部203向登记装置300发送在S601中生成的密钥K和在S602中生成的参数L。
在S604中,发送部203向检索装置400发送在S601中生成的密钥K。
在S605中,发送部203向管理装置500发送在S602中生成的参数L。
在S606中,接收部301接收在S603中发送的密钥K和参数L。
在S607中,密钥保管部302在存储介质中保管在S606中接收到的密钥K。
在S608中,参数保管部303在存储介质中保管在S606中接收到的参数L。
在S609中,接收部401接收在S604中发送的密钥K。
在S610中,密钥保管部402在存储介质中保管在S609中接收到的密钥K。
在S611中,接收部501接收在S605中发送的参数L。
在S612中,参数保管部502在存储介质中保管在S611中接收到的参数L。通过S612,隐匿检索系统100的密钥生成/保管处理结束。另外,密钥K是秘密信息,因此,密钥保管部302和密钥保管部402需要严格保管以使密钥K不会泄露到外部。
图7是示出隐匿检索系统100的登记处理的流程图。图7的S701~S708是登记装置300和管理装置500执行的处理。S701~S706是由登记装置300执行的处理,S707~S708是由管理装置500执行的处理。
在S701中,输入部304接收数据登记者输入的保管数据D和数据名ID(D)。另外,如上所述,如果数据登记者没有输入数据名,则输入部304可以对输入的保管数据D的数据名ID(D)分配随机数,也可以以不与其他保管数据的数据名重复的方式依次分配大于0的整数值。
在S702中,数据分割部305从参数保管部303中读出参数L,将在S701中数据登记者接收到的保管数据D分割成(w1,…,wL)。
另外,如上所述,各wi(1≦i≦L)可以是按照1个字符或多个字符依次分割数据而得到的,也可以按照单词单位进行分割。并且,也可以进行数据分割,以使数据D成为(w1,...,wk)且k≦L。
如果不管如何分割数据,分割数都小于L,则可以就这样小于L,也可以使用“*”或null等特殊字符补充不足的字符数。
这里,如果将wi称作元素数据,则数据分割部305将作为字符串数据的保管数据D分割成保管数据D的从头到尾的N个元素数据w1,...,wN。N为L以下。
从以下的S703起,对保管数据D被分割成L个的情况进行说明。在保管数据D被分割成N个的情况下,在以下的说明中,将L改写成N即可。
在S703中,部分字符串生成部306根据在S702中生成的分割数据(w1,…,wL),生成以下的部分字符串集合A。
A={A1,A2,...,AL}、
将集合A的元素A1等记作Ai(i=1,...,L)。
集合A的元素如下所述。
集合A的元素为
A1={(w1),(w1w2),…,(w1…wL)}、
A2={(w2),(w2w3),…,(w2…wL)}、
...
AL={(wL)}。
各元素为Ai={(wi),(wiwi+1),…,(wi…wL)}、(i=1,...,L)。
下面,有时将元素Ai的元素称作成分。即,Ai具有(L-i+1)个成分即(wi),(wiwi+1),…,(wi…wL)。
在S704中,位置信息分配部307如下所述对在S703中生成的部分字符串集合A中的各部分字符串分配位置信息,生成带位置信息的部分字符串集合B。
集合B={B1,B2,...,BL}、
集合B的元素Bi={(i,wi),(i,wiwi+1),...,(i,wiwi+1...wL)}。
元素Bi是对元素Ai的各成分附加位置信息i而生成的。这里,位置信息i中的{i}是元素Ai中的下标{i}。
如果具体记载元素Bi,则
B1={(1,w1),(1,w1w2),…,(1,w1…wL)}、
B2={(2,w2),(2,w2w3),…,(2,w2…wL)}、
....
BL={(L,wL)}。
集合B的各元素为Bi={(i,wi),(i,wiwi+1),…,(i,wi…wL)},(i=1,...,L)。
下面,有时将Bi的元素即(i,wi),(i,wiwi+1),…,(i,wi…wL)称作成分。
这样,位置信息分配部307使位置信息i与集合A的元素Ai的成分即(wi),(wiwi+1),...,(wiwi+1...wL)分别对应,由此,生成具有元素Bi(i=1,...,L)的带位置信息的部分字符串集合B。
在S705中,加密部308从密钥保管部302中读出密钥K,如下所述生成在S704中生成的带位置信息的部分字符串集合B中的各带位置信息的部分字符串的密文C。
针对位置信息和部分字符串的各对(p,w),生成
C=E(E(K,w),p,ID(D))(式1)
如果利用Bi进行说明,则对(p,w)是(i,wi),(i,wiwi+1),…,(i,wi…wL)的(L-i+1)个各成分。如果是(i,wi)的情况,则p=i,w=wi
设对全部(p,w)加密后的密文的集合为C(D),生成保管加密数据集合(ID(D),C(D))。
即,C(D)是对
B1={(1,w1),(1,w1w2),…,(1,w1…wL)}、
B2={(2,w2),(2,w2w3),…,(2,w2…wL)}、
...,
BL={(L,wL)},
的全部成分加密后的信息。这样,加密部308对元素Bi中包含的(i,wi),(i,wiwi+1),...,(i,wiwi+1...wL)分别被加密。
另外,如上述式1所示,加密部308在对元素Bi中包含的各成分进行加密的情况下,与标识作为字符串数据的保管数据D的标识符的数据名ID(D)一起,对元素Bi中包含的各成分进行加密。
并且,如上所述,E是加密函数,例如,AES这样的共享密钥加密方式、HMAC这样的消息认证码、SHA-256这样的哈希函数是E的一例。
在S706中,发送部309向管理装置500发送在S705中生成的保管加密数据集合(ID(D),C(D))。
在S707中,接收部501接收在S706中发送的保管加密数据集合(ID(D),C(D))。
在S708中,数据保管部503保管在S707中接收到的保管加密数据集合(ID(D),C(D))。
通过S708,隐匿检索系统100的登记处理结束。
图8是示出隐匿检索系统100的检索处理的流程图。图8的S801~S810是检索装置400和管理装置500执行的处理。S801~S803和S809~S810是由检索装置400执行的处理,S804~S808是由管理装置500执行的处理。
在S801中,输入部403接收数据检索者输入的检索数据s。另外,也可以同时接收多个检索数据。该情况下,对各检索数据同样实施以后的处理即可。并且,如上所述,输入部403也可以与检索数据同时,从数据检索者还接收多个指定该检索数据和希望检索的保管加密数据集合的保管数据名。
在S802中,加密部404从密钥保管部402中读出密钥K,针对在S801中接收到的检索数据s,如下所述使用密钥K生成检索加密数据t。这里,t=E(K,s)。
在S803中,发送部405向管理装置500发送在S802中生成的检索加密数据t。如果在S801中还输入了保管数据名,则还同时发送保管数据名。
在S804中,接收部501接收在S803中发送的检索加密数据t。如果在S803中还发送了保管数据名,则还接收保管数据名。
在S805中,核对部504从数据保管部503中读出保管加密数据集合(ID(D),C(D))。另外,如果在S804中还接收到保管数据名,则根据该保管数据名,仅读出作为对象的保管加密数据集合。如果在S804中未接收到保管数据名,则读出保管着的全部保管加密数据集合。
在S806中,核对部504从参数保管部502中读出参数L,基于在S805中读出的保管加密数据集合(ID(D),C(D))的ID(D),根据在S804中接收到的检索加密数据t,生成针对ID(D)的各核对数据Tp(1≦p≦L)。
这里,各Tp为
T1=E(t,1,ID(D)),…,TL=E(t,L,ID(D))
如果在S805中读出的保管加密数据集合为多个,则生成与各ID(D)对应的核对数据。
在S807中,核对部504生成与检索结果有关的空集合R,确认在S806中生成的各核对数据Tp(1≦p≦L)是否包含在C(D)中。如果Tp包含在C(D)中,则在R中加上对(ID(D),p)。如果在S806中生成的核对数据集合为多个,则在相同的R中加上与上述检索结果有关的对。
在S808中,发送部505向检索装置400发送在S807中生成的检索结果R。
在S809中,接收部401接收在S808中发送的检索结果R。
在S810中,输出部406针对在S809中接收到的检索结果R,如下所述对数据检索者进行输出。针对检索结果R中包含的各(ID(D),p),输出为“在ID(D)的第p个位置出现检索数据”。如果R为空集合,则输出为“在任何数据中均不包含检索数据”。通过S810,隐匿检索系统100的检索处理结束。
图9是示出隐匿检索系统100的删除处理的流程图。图9的S901~S904是登记装置300和管理装置500执行的处理。S901~S902是由登记装置300执行的处理,S903~S904是由管理装置500执行的处理。
在S901中,输入部304从数据登记者接收与希望删除的保管加密数据集合有关的删除数据名。另外,如上所述,删除数据名能够确定保管加密数据集合即可,可以是任意的。
在S902中,发送部309向管理装置500发送在S901中输入的删除数据名。
在S903中,接收部501接收在S902中从登记装置300发送来的删除数据名。
在S904中,数据保管部503根据在S903中接收到的删除数据名,删除保管着的保管加密数据集合。
通过S904,隐匿检索系统100的删除处理结束。
<本实施方式的动作具体例>
下面,示出本实施方式的动作的具体例。
这里,设参数L=3、保管数据D1=ABC、ID(D1)=1、D2=BC、ID(D2)=2、检索数据s=BC,对本实施方式的动作进行说明。
并且,使用哈希函数对加密函数E进行说明。
首先,对D1和D2的登记处理进行说明。
在S702中,分割成D1=(A,B,C)、D2=(B,C)。
在S703中,生成A1={{(A),(AB),(ABC)},{(B),(BC)},{(C)}}和A2={{(B),(BC)},{(C)}}。
在S704中,生成B1={{(1,A),(1,AB),(1,ABC)},{(2,B),(2,BC)},{(3,C)}}和B2={{(1,B),(1,BC)},{(2,C)}}。
在S705中,生成C11=E(E(K,A),1,1)、C12=E(E(K,AB),1,1)、C13=E(E(K,ABC),1,1)、C14=E(E(K,B),2,1)、C15=E(E(K,BC),2,1)、C16=E(E(K,C),3,1)和C21=E(E(K,B),1,2)、C22=E(E(K,BC),1,2)、C23=E(E(K,C),2,2),生成保管加密数据集合(1,C(D1))和保管加密数据集合(2,C(D2))作为保管加密数据集合(ID(D)、C(D))。
其中,设
C(D1)={C11,C12,C13,C14,C15,C16}、
C(D2)={C21,C22,C23}。
这里,注意C=E(E(K,s),p,ID(D))。
通过S707和S708,上述保管加密数据集合即(1,C(D1))和(2,C(D2))保管在管理装置500中。
接着,对设检索数据s为s=BC时的检索处理进行说明。
在S802中,计算加密数据t=E(K,s)。
在S805中,读出(1,C(D1))和(2,C(D2))。
在S806中,计算T11=E(t,1,1)、T12=E(t,2,1)、T13=E(t,3,1)和T21=E(t,1,2)、T22=E(t,2,2)、T23=E(t,3,2)。
在S807中,确认T11、T12、T13是否包含在C(D1)中,并且T21、T22、T23是否包含在C(D2)中。
实际上,T12包含在C(D1)中(与C15一致),T21包含在C(D2)中(与C22一致)。
由此,生成以(ID(D),p)为元素的集合的检索结果R作为检索结果R={(1,2),(2,1)}。
这里,注意检索结果R的元素为(ID(D),p)。
在S810中,根据检索结果R,输出“从保管数据名为“1”的数据的“第2个”位置出现检索数据BC”、“从保管数据名为“2”的数据的“第1个”位置出现检索数据BC”这样的检索结果。
以上是具体例的说明。
图10是示出实施方式1中的密钥生成装置200、登记装置300、检索装置400和管理装置500的硬件资源的一例的图。
在图10中,密钥生成装置200、登记装置300、检索装置400和管理装置500具有CPU1001(Central Processing Unit:中央处理单元)。
CPU1001经由总线1002而与ROM1003、RAM1004、通信板1005、显示器1011(显示装置)、键盘1012、鼠标1013、驱动器1014和磁盘装置1020等硬件器件连接,对这些硬件设备进行控制。
驱动器1014是对FD(Flexible Disk Drive:软盘驱动器)、CD(Compact Disc:光盘)、DVD(Digital Versatile Disc:数字通用光盘)等存储介质进行读写的装置。
ROM1003、RAM1004、磁盘装置1020和驱动器1014是存储装置的一例。键盘1012、鼠标1013和通信板1005是输入装置的一例。显示器1011和通信板1005是输出装置的一例。
通信板1005以有线或无线的方式与LAN(Local Area Network:局域网)、互联网、电话线路等通信网连接。
在磁盘装置1020中存储有OS1021(操作系统)、程序组1022和文件组1023。在程序组1022中包含执行在本实施方式中作为“~部”说明的功能的程序。程序(例如加密程序、数据检索程序、数据登记程序)由CPU1001读出并执行。即,程序使计算机作为“~部”发挥功能,并且,使计算机执行“~部”的步骤和方法。在文件组1023中包含在本实施方式中说明的“~部”中使用的各种数据(输入、输出、判定结果、计算结果、处理结果等)。
在本实施方式中,结构图和流程图中包含的箭头主要表示数据和信号的输入输出。根据流程图等说明的本实施方式的处理使用CPU1001、存储装置、输入装置、输出装置等硬件来执行。在本实施方式中作为“~部”说明的部分可以是“~电路”、“~装置”、“~设备”、“电路系统”,并且,也可以是“~步骤”、“~顺序”、“~处理”。即,作为“~部”说明的部分可以通过固件、软件、硬件和它们的组合中的任意一方来安装。
<***实施方式1的效果***>
本实施方式例如发挥以下效果。
(1)在本实施方式中,即使在服务器中保管相同的保管数据,也根据位置信息或每次不同的数据名生成每次必定不同的保管加密数据,因此,不容易受到频率分析攻击等,能够实现达成较高安全性的隐匿部分一致检索。
(2)在本实施方式中,对保管数据加密后进行保管,因此,即使保管加密数据从管理装置500泄露,也无法得知保管数据的内容。
(3)在本实施方式中,不仅检索数据,而且保管数据也能够在加密状态下进行处理,因此,不会根据检索加密数据得知检索数据的内容。
(4)在本实施方式中,在根据保管加密数据和检索加密数据得到的检索结果中仅出现数据名和位置信息,因此,针对服务器等不具有密钥的实体,不会得知保管数据和检索数据的内容。
(5)在本实施方式中,在检索结果中,除了检索命中的事实以外,还得知与在哪个位置出现检索数据有关的位置信息,因此,具有灵活的部分一致检索功能。
(6)在本实施方式中,检索加密数据仅由一个密文构成,因此,在检索中使用的数据大小非常小,并且,在检索时,仅产生一次数据检索者与服务器的交换,因此,能够高效地进行隐匿部分一致检索。
(7)在本实施方式中,能够全部根据共享密钥加密技术构成,因此,能够实现高效的隐匿部分一致检索。
实施方式2
接着,对本实施方式的隐匿检索系统进行说明。在实施方式1中,是针对新追加的保管加密数据集合((ID(D),C(D))),能够直接应用过去使用的检索加密数据(t=E(K,s))。
实施方式2中公开的技术无法针对新追加的保管加密数据集合应用过去使用的检索加密数据t。因此,能够实现更高的安全性。为了实现这种更高的安全性,公开使用哈希锁定等多重加密的方法。
在实施方式2中,针对加密函数E,在记作“E^M(K,w)”时,设(K,M)为初始值,表示计算M次的加密函数E(换言之,实施M次的多重加密)。例如,作为这种多重加密,广泛公知有哈希锁定。
例如,设E^M(K,w)为针对第M次保管的数据的检索加密数据t。
这里,当设针对第M+1次保管的数据的检索加密数据t为tM=E^(M-1)(K,w)时,对第M+1次的检索加密数据tM=E^(M-1)(K,w)进行再次加密,由此,能够生成针对第M次保管的数据的检索加密数据E^M(K,w)。
另一方面,如果是哈希函数等加密函数,则一般很难根据E^M(K,w)计算E^(M-1)(K,w)。
因此,无法针对新追加的保管加密数据集合应用过去使用的检索加密数据,能够实现更高的安全性。
本实施方式的隐匿检索系统100的一部分与实施方式1不同。
密钥生成装置200被变更成密钥生成装置200a,登记装置300被变更成登记装置300a,检索装置400被变更成检索装置400a,管理装置500被变更成管理装置500a。
下面,对本实施方式的结构进行说明。下面,依次对密钥生成装置200a的结构、登记装置300a的结构、检索装置400a的结构、管理装置500a的结构进行说明。
图11是示出密钥生成装置200a的结构的框图。如图11所示,密钥生成装置200a具有密钥生成部201、参数生成部202a和发送部203a。虽然未图示,但是,密钥生成装置200a具有存储在密钥生成装置200a的各部中使用的数据的记录介质。密钥生成部201的说明已经叙述,因此省略。
参数生成部202a在生成所述参数L的同时,生成表示多重加密的最大次数的参数M。该M表示能够使用相同密钥K将保管数据保管在管理装置500a中的保管加密数据集合的最大数。如果希望保管超过M的保管加密数据集合,则生成新的密钥K′和M′,能够新登记M′个。另外,M是大于1的整数。并且,与L同样,M不是秘密信息,因此,也可以公共地公开。
发送部203a向登记装置300a和检索装置400a发送由密钥生成部201生成的密钥K,并且,向登记装置300a、检索装置400a和管理装置500a发送由参数生成部202a生成的参数(L、M)。
图12是示出登记装置300a的结构的框图。如图12所示,登记装置300a具有接收部301a、密钥保管部302、参数保管部303a、输入部304、数据分割部305、部分字符串生成部306、位置信息分配部307、多重加密部308a和发送部309a。虽然未图示,但是,登记装置300a具有存储在登记装置300a的各部中使用的数据的记录介质。密钥保管部302、输入部304、数据分割部305、部分字符串生成部306和位置信息分配部307的说明已经叙述,因此省略。
接收部301a接收从密钥生成装置200a发送来的密钥K和参数(L,M)。
参数保管部303a保管从接收部301a接收到的参数(L,M),还保管表示使用密钥K和参数M加密后的管理装置500a中保管的保管加密数据集合的数量的参数m。
多重加密部308a从密钥保管部302中读出密钥K,从参数保管部303a中读出参数m,如下所述生成针对从位置信息分配部307接收到的带位置信息的部分字符串集合B中的各带位置信息的部分字符串的密文C。
针对位置信息和部分字符串的各对(p,w),生成C=E(E^(M+1-m)(K,w),p,ID(D))。
这里,将对全部(p,w)加密后的密文的集合写成C(D)。这里,以下将(ID(D),m,C(D))称作保管加密数据集合。
另外,在计算E^i(i≧1)的情况下,如果E为AES这样的加密函数,则每当计算E时需要密钥,因此,例如可以事前决定值全部为0或全部为1等的密钥并作为参数进行保管,也可以使用已经保管的参数L或M等作为密钥。如果E为哈希函数,则不需要这种密钥以进行多重加密。
发送部309a向管理装置500a发送从加密部308接收到的保管加密数据集合(ID(D),m,C(D)),并且向检索装置400a发送参数m。并且,发送部309a向管理装置500发送从输入部304接收到的删除数据名。
图13是示出检索装置400a的结构的框图。如图13所示,检索装置400a具有接收部401a、密钥保管部402、输入部403、多重加密部404a、发送部405、输出部406和参数保管部407a。虽然未图示,但是,检索装置400a具有存储在检索装置400a的各部中使用的数据的记录介质。
密钥保管部402、输入部403、发送部405和输出部406的说明已经叙述,因此省略。
接收部401a接收从密钥生成装置200a发送来的密钥K和参数M、从登记装置300a发送来的参数m、从管理装置500a发送来的检索结果。
多重加密部404a从密钥保管部402中读出密钥K,从参数保管部407a中读出参数m,针对从输入部403接收到的检索数据s,如下所述使用密钥K和参数m生成密文t。
多重加密部404a生成t=E^(M+1-m)(K,s)。
下面,将该t称作检索加密数据。
另外,如上所述,在计算E^i(i≧1)的情况下,如果E为AES这样的加密函数,则每当计算E时需要密钥,因此,例如可以事前决定值全部为0或全部为1等的密钥并作为参数进行保管,也可以使用已经保管的参数L或M等作为密钥。如果E为哈希函数,则不需要这种密钥以进行多重加密。
参数保管部407a保管从接收部401接收到的参数M。并且,在从接收部401接收到的参数为对m的情况下,参数保管部407a对已经保管的(M,m)的m的参数进行更新。
图14是示出管理装置500a的结构的框图。如图14所示,管理装置500a具有接收部501a、参数保管部502a、数据保管部503、核对部504a、发送部505和多重加密部506a。虽然未图示,但是,管理装置500a具有存储在管理装置500a的各部中使用的数据的记录介质。
数据保管部503和发送部505的说明已经叙述,因此省略。
接收部501a接收从密钥生成装置200a发送来的参数(L,M)、从管理装置500a发送来的保管加密数据集合(ID(D),m,C(D))和删除数据名、从检索装置400a发送来的检索加密数据t和保管数据名。
参数保管部502a一起保管从接收部501a接收到的参数(L,M)和保管加密数据集合(ID(D),m,C(D))的m。
核对部504a生成与检索结果有关的空集合R,从数据保管部503中读出全部保管加密数据集合(ID(Di),m,C(Di))(1≦i≦m),根据从后述多重加密部506a接收到的多重加密数据集合{(1,t1)、(2,t2),…,(m,tm)},如下所述进行核对并生成检索结果。
核对部504a针对各i(1≦i≦m),提取成为(ID(Di),i,C(Di))的保管加密数据集合,计算Xi={T1_i=E(ti,1,ID(Di)),…,TL_i=E(ti,L,ID(Di))}。
然后,核对部504a确认各Tp_i(1≦p≦L)是否包含在C(Di)中。如果Tp_i包含在C(Di)中,则在R中加上对(ID(Di),p)。该(ID(Di),p)意味着“在ID(Di)的第p个位置出现检索数据”。
下面,将各Tp_i称作针对ID(Di)的核对数据,将{T1,…,TL}称作针对ID(Di)的核对数据集合。并且,将本处理的结果即最终生成的集合R称作检索结果。
另外,如果接收部501a从检索装置400a还接收到保管数据名,则核对部504a根据该保管数据名,从数据保管部503中仅读出作为对象的保管加密数据集合,进行同样的处理。
多重加密部506a从参数保管部502a中读出参数m,根据从接收部501接收到的检索加密数据t,生成如下的多重加密数据。
t1=E^(m-1)(t),
t2=E^(m-2)(t),
…,
tm=E^0(t)=t。
以下,将集合{(1,t1)、(2,t2),…,(m,tm)}称作多重加密数据集合。
另外,如上所述,在计算E^i(i≧1)的情况下,如果E为AES这样的加密函数,则每当计算E时需要密钥,因此,例如可以事前决定值全部为0或全部为1等的密钥并作为参数进行保管,也可以使用已经保管的参数L或M等作为密钥。如果E为哈希函数,则不需要这种密钥以进行多重加密。
下面,对与本实施方式的检索方法相当的隐匿检索系统100的动作进行说明。
图15是示出本实施方式中的隐匿检索系统100的密钥生成/保管处理的流程图。图15的S601~S612a是密钥生成装置200a、登记装置300a、检索装置400a、管理装置500a执行的处理。S601~S605a是由密钥生成装置200a执行的处理,S606a~S608a是由登记装置300a执行的处理,S609a~S610a2是由检索装置400a执行的处理,S611a~S612a是由管理装置500a执行的处理。
另外,本检索处理中的S601和S607是与实施方式1分别相同的处理,因此这里省略。
在S602a中,参数生成部202a生成参数L和M。另外,如上所述,L是对保管数据进行分割时出现的字符串的最大数,并且,M表示能够使用相同的密钥K将保管数据保管在管理装置500a中的保管加密数据集合的最大数。
在S603a中,发送部203a向登记装置300a发送在S601中生成的密钥K和在S602a中生成的参数(L,M)。
在S604a中,发送部203a向检索装置400a发送在S601中生成的密钥K和在S602a中生成的参数(L,M)。
在S605a中,发送部203a向管理装置500a发送在S602中生成的参数(L,M)。
在S606a中,接收部301a接收在S603a中发送的密钥K和参数(L,M)。
在S608a中,参数保管部303a在存储介质中保管在S606a中接收到的参数(L,M)。
在S609a中,接收部401a接收在S604a中发送的密钥K和参数(L,M)。
在S610a1中,密钥保管部402在存储介质中保管在S609a中接收到的密钥K。
在S610a2中,参数保管部407a在存储介质中保管在S609a中接收到的参数(L,M)。
在S611a中,接收部501a接收在S605a中发送的参数(L,M)。
在S612a中,参数保管部502a在存储介质中保管在S611a中接收到的参数(L,M)。通过S612a,隐匿检索系统100的密钥生成/保管处理结束。
图16是示出实施方式2的隐匿检索系统100的登记处理的流程图。图16的S701~S712a是登记装置300a、检索装置400a和管理装置500a执行的处理。S701~S706、S709a、S712a是由登记装置300a执行的处理,S707~S708a2是由管理装置500a执行的处理,S710a~S711a是由检索装置400a执行的处理。
另外,本检索处理中的S701~S704、S706~S707是与实施方式1分别相同的处理,因此这里省略。
在S705a中,多重加密部308从密钥保管部302中读出密钥K,从参数保管部303a中读出参数m,如下所述生成在S704中生成的带位置信息的部分字符串集合B中的各带位置信息的部分字符串的密文C。
多重加密部308针对位置信息和部分字符串的各对(p,w),计算C=E(E^(M+1-m)(K,w),p,ID(D))。并且,设对全部(p,w)加密后的密文的集合为C(D),生成保管加密数据集合(ID(D),m,C(D))。
在S708a1中,数据保管部503保管在S707中接收到的保管加密数据集合(ID(D),m,C(D))。
在S708a2中,参数保管部502a根据在S707中接收到的保管加密数据集合(ID(D),m,C(D))的m,对保管着的m的值进行更新。
在S709a中,发送部309a向检索装置400a发送在S705a中读出的参数m。
在S710a中,接收部401a接收在S710a中发送的参数m。
在S711a中,参数保管部407a将保管着的参数m置换成在S711a中接收到的参数m进行更新。
在S712a中,参数保管部303a对参数m的值加1,对m的值进行更新。通过S712a,隐匿检索系统100的登记处理结束。
图17是示出实施方式2的隐匿检索系统100的检索处理的流程图。图17的S801~S810是检索装置400a和管理装置500a执行的处理。S801~S803和S809~S810是由检索装置400a执行的处理,S804~S808是由管理装置500a执行的处理。
另外,本检索处理中的S801、S803、S804、S808~S810是与实施方式1分别相同的处理,因此这里省略。
在S802a中,多重加密部404a从密钥保管部402中读出密钥K,从参数保管部407a中读出参数m,针对在S801中接收到的检索数据s,如下所述使用密钥K生成检索加密数据t。
t=E^(M+1-m)(K,s)。
在S805a1中,多重加密部506a从参数保管部502a中读出参数m,根据在S804中接收到的检索加密数据t,生成如下的多重加密数据集合{(1,t1)、(2,t2),…,(m,tm)}。
其中,
t1=E^(m-1)(t),t2=E^(m-2)(t),…,tm=E^0(t)=t
在S805a2中,核对部504a从数据保管部503中读出保管加密数据集合(ID(D),C(D))。另外,如果在S804中还接收到保管数据名,则根据该保管数据名,仅读出作为对象的保管加密数据集合。如果在S804中未接收到保管数据名,则读出保管着的全部保管加密数据集合。这里,设读出的多个保管加密数据集合为{(ID(D1),1,C(D1)),…,(ID(Dm),m,C(Dm))}。
在S806a中,核对部504a从参数保管部502a中读出参数L,针对在S805a2中读出的各(ID(Di),i,C(Di))(1≦i≦m),根据在S805a1中生成的多重加密数据(i,ti),生成针对ID(Di)的核对数据集合Xi={T1_i,…,TL_i}。
其中,
T1_i=E(ti,1,ID(Di)),…,TL_i=E(ti,L,ID(Di))。
在S807a中,核对部504a生成与检索结果有关的空集合R,针对各p(1≦p≦L)进行如下处理。
确认在S806a中生成的针对ID(Di)的各核对数据Tp_i(1≦p≦L)是否包含在C(Di)中。如果Tp_i包含在C(Di)中,则在R中加上对(ID(Di),p)。
通过S810,隐匿检索系统100的检索处理结束。在本实施方式中,也进行与实施方式1相同的删除处理,由此能够删除保管加密数据集合。
<本实施方式的动作具体例>
这里,设参数L=3、参数M=2、最初的保管数据D1=ABC、ID(D1)=1、接下来的保管数据D2=BC、ID(D2)=2、检索数据=BC,对本实施方式的动作进行说明。
并且,使用哈希函数对加密函数E进行说明。
首先,对D1的登记处理进行说明。
在S702中,分割成D1=(A,B,C)。
在S703中,生成A1={{(A),(AB),(ABC)},{(B),(BC)},{(C)}}。
在S704中,生成B1={{(1,A),(1,AB),(1,ABC)},{(2,B),(2,BC)},{(3,C)}}。
在S705a中,读出m=1,生成C11=E(E^2(K,A),1,1)、C12=E(E^2(K,AB),1,1)、C13=E(E^2(K,ABC),1,1)、C14=E(E^2(K,B),2,1)、C15=E(E^2(K,BC),2,1)、C16=E(E^2(K,C),3,1),生成保管加密数据集合(1,C(D1))。
其中,
C(D1)={C11,C12,C13,C14,C15,C16}
M+1-m=2。
通过S707和S708a1,对保管加密数据集合(1,1,C(D1))进行保管。通过S708a2~S712a,参数保管部303a的参数m被更新成2,参数保管部407a和参数保管部502a的参数m被更新成1。
接着,对针对D1使用s的检索处理进行说明。
在S802a中,读出m=1,计算t=E^2(K,s)。
其中,M+1-m=2。
在S805a1中,读出m=1,计算t1=t,生成多重加密数据集合{(1,t1)}。
在S805a2中,读出(1,1,C(D1))。
在S806a中,计算T1_1=E(t1,1,1)、T2_1=E(t1,2,1)、T3_1=E(t1,3,1)。
在S807a中,确认T1_1、T2_1、T3_1是否包含在C(D1)中。实际上,T2_1包含在C(D1)中(与C15一致)。
由此,生成检索结果R={(1,2)}。
在S810中,根据R,输出“从保管数据名为“1”的数据的“第2个”位置出现检索数据BC”这样的检索结果。
接着,进行D2的登记处理。
在S702中,被分割成D2=(B,C)。
在S703中,生成A2={{(B),(BC)},{(C)}}。
在S704中,生成B2={{(1,B),(1,BC)},{(2,C)}}。
在S705a中,读出m=2,生成C21=E(E^1(K,B),1,2)、C22=E(E^1(K,BC),1,2)、C23=E(E^1(K,C),2,2),生成保管加密数据集合(2,C(D2))。
其中,
C(D2)={C21,C22,C23}
M+1-m=1。
并且,E^1=E。
通过S707和S708a1,对保管加密数据集合(2,2,C(D2))进行保管。
通过S708a2~S712a,参数保管部303a的参数m被更新成3,参数保管部407a和参数保管部502a的参数m被更新成2。
接着,对针对D1和D2再次使用s的检索处理进行说明。
在S802a中,读出m=2,计算t=E(K,s)。
其中,M+1-m=1。
在S805a1中,读出m=2,计算t1=E(t),t2=t,生成多重加密数据集合{(1,t1)、(2,t2)}。
在S805a2中,读出(1,1,C(D1))和(2,2,C(D2))。
在S806a中,计算T1_1=E(t1,1,1)、T2_1=E(t1,2,1)、T3_1=E(t1,3,1)和T1_2=E(t2,1,2)、T2_2=E(t2,2,2)、T3_2=E(t2,3,2)。
在S807a中,确认T1_1、T2_1、T3_1是否包含在C(D1)中,并且T1_2、T2_2、T3_2是否包含在C(D2)中。
实际上,T2_1包含在C(D1)中(与C15一致),T1_2包含在C(D2)中(与C22一致)。
由此,生成检索结果R={(1,2),(2,1)}。
在S810中,根据R,输出“从保管数据名为“1”的数据的“第2个”位置出现检索数据BC”、“从保管数据名为“2”的数据的“第1个”位置出现检索数据BC”这样的检索结果。
另外,第一次检索到的检索数据和第二次检索到的检索数据相同(s=BC),但是,检索加密数据分别是E^2(K,s)、E(K,s),因此生成不同的值。并且,能够根据E(K,s)计算E^2(K,s),因此,能够根据第二次检索到的检索加密数据生成第一次检索到的检索加密数据。另一方面,一般很难根据E^2(K,s)计算E(K,s),因此,很难根据第一次检索到的检索加密数据生成第二次检索到的检索加密数据。
以上是具体例的说明。
本实施方式中的硬件资源的一例与实施方式1相同,因此省略。本实施方式例如发挥以下效果。
<***实施方式2的效果***>
在本实施方式中,除了得到与实施方式1相同的效果以外,通过使用哈希锁定等多重加密,无法针对新追加的保管加密数据集合应用过去使用的检索加密数据,因此,能够实现更高的安全性。
实施方式3
接着,对本实施方式的隐匿检索系统进行说明。
在实施方式2中,通过使用哈希锁定等多重加密,由此能够实现更高的安全性,但是,能够利用相同密钥K生成和保管的保管加密数据集合的数量依赖于参数M和线性,因此,需要取大到某种程度的M。
另一方面,当取过大的M时,多重加密处理花费时间。
因此,在本实施方式中公开如下的技术:不是一个一个地对保管数据进行保管,而是集中保管多个保管数据,由此,即使选择与实施方式2相同的M,也能够增大能够利用相同密钥K加密和保管的保管数据的最大数,并且提高检索效率。
在本实施方式中公开如下的方法:不是一个一个地对保管数据进行保管,而是同时保管多个保管数据作为索引。
本实施方式的隐匿检索系统100的一部分与实施方式2不同。密钥生成装置200a被变更成密钥生成装置200b,登记装置300a被变更成登记装置300b,检索装置400a被变更成检索装置400b,管理装置500a被变更成管理装置500b。
下面,对本实施方式的结构进行说明。下面,依次对密钥生成装置200b的结构、登记装置300b的结构、检索装置400b的结构和管理装置500b的结构进行说明。
图18是示出密钥生成装置200b的结构的框图。如图18所示,密钥生成装置200b具有密钥生成部201、参数生成部202b和发送部203b。虽然未图示,但是,密钥生成装置200b具有存储在密钥生成装置200b的各部中使用的数据的记录介质。密钥生成部201的说明已经叙述,因此省略。
参数生成部202b在生成所述参数L、M的同时,生成表示一次能够保管的保管数据的最大数的参数N。即,各索引能够保持与最大N个保管数据有关的信息。如果一次保管的保管数据数超过N,则生成多个索引以使各索引最多与N个保管数据对应。另外,N是大于1的整数。并且,与L、M同样,N不是秘密信息,因此,也可以公共地公开。
发送部203b向登记装置300b和检索装置400b发送由密钥生成部201生成的密钥K,并且,向登记装置300b和管理装置500b发送由参数生成部202b生成的参数(L,M,N),并且,向检索装置400b发送参数(L,M)。
图19是示出登记装置300b的结构的框图。如图19所示,登记装置300b具有接收部301b、密钥保管部302、参数保管部303b、输入部304b、数据分割部305、部分字符串生成部306、位置信息分配部307、多重加密部308b、发送部309b和集约部310b。虽然未图示,但是,登记装置300b具有存储在登记装置300b的各部中使用的数据的记录介质。
密钥保管部302、数据分割部305、部分字符串生成部306和位置信息分配部307的说明已经叙述,因此省略。
接收部301b接收从密钥生成装置200b发送来的密钥K和参数(L,M,N)。
参数保管部303b保管从接收部301b接收到的参数(L,M,N),并且还保管表示使用密钥K和参数M加密后的管理装置500a中保管的索引的数量的参数m。另外,m的初始值示出1,在从多重加密部308a中读出m后,对m的值加1,对m的值进行更新。
输入部304b从数据登记者接收保管数据和保管数据名的对的集合{(ID(D1),D1),…,(ID(Dn),Dn)}以及索引名ID(I)。
另外,保管数据和保管数据名也可以不是集合而是单一的。
如果n>N,则进行分割以使n=n1+…+nk且nj≦n(1≦j≦n),针对各nj执行k次的以下处理即可。
如果数据登记者没有输入索引名,则输入部304b可以对ID(I)分配随机数,也可以以不与其他索引名重复的方式依次分配大于0的整数值。
这里,数据分割部305、部分字符串生成部306和位置信息分配部307针对上述{(ID(D1),D1),…,(ID(Dn),Dn)},如下所述进行处理。
各数据被分割成D1=(w1_1,…,wL_1),…,Dn=(w1_n,…,wL_n),各带位置信息的部分字符串集合Bi(1≦i≦n)如下生成:
{(1,w1_i),(1,w1_iw2_i),…,(1,w1_i…wL_i)},
{(2,w2_i),(2,w2_iw3_i),…,(2,w2_i…wL_i)},
…,
{(L,wL_i)}}。
多重加密部308b接收从后述集约部310b接收到的集约数据集合Y,从密钥保管部302中读出密钥K,从参数保管部303b中读出参数(m,M,N),如下所述生成Y的各元素的密文和集合I。
针对各元素(p,w,{ID(D_i1),…,ID(D_ik)},{ID(D_ik+1),…,ID(D_in)}),生成
C1=E(E^(M+1-m)(K,w,0),p,1,ID(I)),
…,
Ck=E(E^(M+1-m)(K,w,0),p,k,ID(I)),
Ck+1=E(E^(M+1-m)(K,w,1),p,k+1,ID(I)),
…,
Cn=E(E^(M+1-m)(K,w,1),p,n,ID(I)),
设集合I={(Cj,ID(D_ij))}。以后,将该集合I称作索引。
并且,将(ID(I),m,I)称作保管索引。
发送部309b向管理装置500b发送从多重加密部308b接收到的保管索引(ID(I),m,I),并且,向检索装置400b发送生成索引I时使用的参数m。
集约部310b针对从位置信息分配部307接收到的B1,…Bn,生成如下的集合Y。
关于集合Y的各元素,(p,w,{ID(D_i1),…,ID(D_ik)},{ID(D_ik+1),…,ID(D_in)})意味着“(p,w)分别包含在Bi1,…,Bik中,但是未包含在Bik+1,…,Bin中”。
另外,设该对(p,w)必定包含在B1,…,Bn中的任意一方中。并且,也可以包含在B1,…,Bn中的多方中。即,Y能够视为对B1,…,Bn的元素进行集约后的集合。并且,{ID(D_i1),…,ID(D_in)}={ID(D1),…,ID(Dn)}。下面,将Y称作集约数据集合。
图20是示出检索装置400b的结构的框图。如图20所示,检索装置400b具有接收部401a、密钥保管部402、输入部403b、多重加密部404b、发送部405b、输出部406和参数保管部407a。虽然未图示,但是,检索装置400b具有存储在检索装置400b的各部中使用的数据的记录介质。
接收部401a、密钥保管部402、输出部406和参数保管部407a的说明已经叙述,因此省略。
输入部403b接收从数据检索者输入的检索数据s。并且,输入部403b也可以与检索数据同时,从数据检索者还接收多个该检索数据和指定希望检索的保管索引的保管索引名。
多重加密部404b从密钥保管部402中读出密钥K,从参数保管部407a中读出参数m,针对从输入部403b接收到的检索数据s,如下所述使用密钥K和参数m生成密文t。
多重加密部404b生成t=E^(M+1-m)(K,s,0)。
下面,将该t称作检索加密数据。
发送部405b向管理装置500b发送从多重加密部404b接收到的检索加密数据t。如果与检索数据同时数据检索者还输入了保管索引名,则向管理装置500b发送检索加密数据和保管索引名双方。
图21是示出管理装置500b的结构的框图。如图21所示,管理装置500b具有接收部501b、参数保管部502b、数据保管部503b、核对部504b、发送部505和多重加密部506a。虽然未图示,但是,管理装置500b具有存储在管理装置500b的各部中使用的数据的记录介质。
发送部505和多重加密部506a的说明已经叙述,因此省略。
接收部501b接收从密钥生成装置200b发送来的参数(L,M,N)、从登记装置300b发送来的保管加密数据集合(ID(I),m,I)和删除索引名、从检索装置400b发送来的检索加密数据t和保管索引名。
参数保管部502b一起保管从接收部501b接收到的参数(L,M,N)和保管索引(ID(I),m,I)的m。
数据保管部503b保管从接收部501b接收到的保管索引(ID(I),m,I)。如果需要,也可以同时保管发送来的日期时间等。并且,数据保管部503b根据从接收部501b接收到的删除索引名,删除保管着的保管索引。
核对部504b生成与检索结果有关的空集合R,从数据保管部503b中读出全部保管索引(ID(I),m,I),根据从多重加密部506a接收到的多重加密数据集合{(1,t1)、(2,t2),…,(m,tm)},如下所述进行核对并生成检索结果。
核对部504b针对各i(1≦i≦m),提取成为(ID(I),i,I)的保管索引,反复执行以下处理。
核对部504b针对各p(1≦p≦L)和各j(1≦j≦N)计算C_pj=E(ti,p,j,ID(I))(全部L×N个计算),确认各C_pj是否包含在索引I中,如果包含,则提取与C_pj成对保管的ID(D),在空集合R中追加(ID(D),p)。
另外,如果C_pj包含在I中但是C_pj+1=E(ti,p,j+1,ID(I))未包含在索引I中,则E(ti,p,j+2,ID(I)),…,E(ti,p,N,ID(I))也未包含在索引I中,因此,能够省略这些计算而提高检索效率。
下面,将各C_pj(1≦p≦L,1≦j≦N)称作针对ID(I)的核对数据。并且,将本处理的结果即最终生成的集合R称作检索结果。
另外,如果接收部501b从检索装置400b还接收到保管索引名,则核对部504b根据该保管索引名,从数据保管部503b中仅读出作为对象的保管索引,进行同样的处理。
下面,对与本实施方式的检索方法相当的隐匿检索系统100的动作进行说明。
图22是示出本实施方式中的隐匿检索系统100的密钥生成/保管处理的流程图。图22的S601~S612b是密钥生成装置200b、登记装置300b、检索装置400b和管理装置500b执行的处理。S601~S605b是由密钥生成装置200b执行的处理,S606b~S608b是由登记装置300b执行的处理,S609a~S610a2是由检索装置400b执行的处理,S611b~S612b是由管理装置500a执行的处理。
另外,本检索处理中的S601、S604a、S607、S609a~S610a2是与实施方式2分别相同的处理,因此这里省略。
在S602b中,参数生成部202b生成参数L、M、N。另外,如上所述,L是对保管数据进行分割时出现的字符串的最大数,并且,M表示能够使用相同的密钥K保管在管理装置500b中的保管索引的最大数,N是一次能够登记的保管数据的最大数。
在S603b中,发送部203b向登记装置300b发送在S601中生成的密钥K和在S602b中生成的参数(L,M,N)。
在S605b中,发送部203b向管理装置500b发送在S602b中生成的参数(L,M,N)。
在S606b中,接收部301b接收在S603b中发送的密钥K和参数(L,M,N)。
在S608b中,参数保管部303b在存储介质中保管在S606b中接收到的参数(L,M,N)。
在S611b中,接收部501b接收在S605b中发送的参数(L,M,N)。
在S612b中,参数保管部502b在存储介质中保管在S611b中接收到的参数(L,M,N)。
通过S612b,隐匿检索系统100的密钥生成/保管处理结束。
图23是示出隐匿检索系统100的登记处理的流程图。图23的S701~S712a是登记装置300b、检索装置400b和管理装置500b执行的处理。S701~S706b、S709a、S712a是由登记装置300b执行的处理,S707b~S708b2是由管理装置500b执行的处理,S710a~S711a是由检索装置400b执行的处理。
另外,本检索处理中的S701~S704、S709a2~S712a是与实施方式2分别相同的处理,因此这里省略。
在S705b1中,集约部310b针对在S704中生成的B1,…Bn,生成集约数据集合Y。另外,如上所述,Y的各元素表示成(p,w,{ID(D_i1),…,ID(D_ik)},{ID(D_ik+1),…,ID(D_in)})。
在S705b2中,多重加密部308b接收在S705b1中生成的集约数据集合Y,从密钥保管部302中读出密钥K,从参数保管部303b中读出参数(m,M,N),生成保管索引(ID(I),m,I)。
另外,如上所述,索引I表示成I={(Cj,ID(D_ij))},并且,Y的各元素(p,w,{ID(D_i1),…,ID(D_ik)},{ID(D_ik+1),…,ID(D_in)})中的C1,…,Cn如下表示。
C1=E(E^(M+1-m)(K,w,0),p,1,ID(I)),
…,
Ck=E(E^(M+1-m)(K,w,0),p,k,ID(I)),
Ck+1=E(E^(M+1-m)(K,w,1),p,k+1,ID(I)),
…,
Cn=E(E^(M+1-m)(K,w,1),p,n,ID(I))。
在S706b中,发送部309b向管理装置500b发送在S705b2中生成的保管索引(ID(I),m,I)。
在S707b中,接收部501b接收在S706b中发送的保管索引(ID(I),m,I)。
在S708b1中,数据保管部503b保管在S707b中接收到的保管索引(ID(I),m,I)。
在S708b2中,参数保管部502b根据在S707b中接收到的保管索引(ID(I),m,I)的m,对保管着的m的值进行更新。
通过S712a,隐匿检索系统100的登记处理结束。
图24是示出隐匿检索系统100的检索处理的流程图。图24的S801~S810是检索装置400b和管理装置500b执行的处理。S801~S803和S809~S810是由检索装置400b执行的处理,S804~S808是由管理装置500a执行的处理。
另外,本检索处理中的S801、S803、S804~S805a1、S808~S810是与实施方式2分别相同的处理,因此这里省略。
在S802b中,多重加密部404b从密钥保管部402中读出密钥K,从参数保管部407a中读出参数m,针对在S801中接收到的检索数据s,如下所述使用密钥K生成检索加密数据t。
t=E^(M+1-m)(K,s,0)。
在S805b2中,核对部504b从数据保管部503b中读出全部保管索引(ID(I),m,I)。另外,如果在S804中还接收到保管索引名,则根据该保管索引名,仅读出作为对象的保管索引。如果在S804中未接收到保管索引名,则读出保管着的全部保管索引。这里,设读出的多个保管加密数据集合为{(ID(I1),1,I1)),…,(ID(Im),m,Im)}。
在S806b中,核对部504b从参数保管部502b中读出参数(L,N),针对在S805b2中读出的各保管索引的(ID(Ii),i,Ii)(1≦i≦m),根据在S805a1中生成的多重加密数据(i,ti),如下所述生成针对各Ii的核对数据集合Xi。
针对各p(1≦p≦L)和各j(1≦j≦N),计算C_pj=E(ti,p,j,ID(Ii)),设该L×N个核对数据的集合为Xi。另外,在本步骤中,生成核对数据集合X1,…,Xm。
在S807b中,核对部504b生成与检索结果有关的空集合R,针对在S806b中生成的各核对数据集合的Xi={C_pj}(1≦i≦m,1≦p≦L,1≦j≦N),如下所述进行核对处理,生成检索结果R。
确认各C_pj是否包含在Ii中,如果包含,则提取与C_pj成对保管的ID(D),在R中追加(ID(D),p)。
另外,如上所述,如果C_pj包含在Ii中但是C_pj+1=E(ti,p,j+1,ID(I))未包含在Ii中,则E(ti,p,j+2,ID(I)),…,E(ti,p,N,ID(I))也未包含在Ii中,因此,能够省略这些核对处理而提高检索效率。
通过S810,隐匿检索系统100的检索处理结束。另外,在S806b中,在针对各Ii的核对数据集合Xi中生成全部C_pj(1≦p≦L,1≦j≦N),但是,如上所述,如果C_pj包含在Ii中但是C_pj+1=E(ti,p,j+1,ID(I))未包含在Ii中,则E(ti,p,j+2,ID(I)),…,E(ti,p,N,ID(I))也未包含在Ii中,因此,能够省略与若干个C_pj的生成有关的处理。具体而言,如果不是完全分割S806b和S807b的步骤,而是反复进行S806b和S807b的处理以使在刚刚生成各C_pj之后进行核对处理,则能够实现该高效化。
在本实施方式中,通过将删除数据名改写成删除索引名,进行与实施方式1相同的删除处理,由此,能够删除保管索引。
<本实施方式的动作具体例>
这里,设参数L=3、参数M=2、参数N=3、保管数据D1=ABC、ID(D1)=1和保管数据D2=BBC、ID(D2)=2、索引名=3、检索数据s=BC,对本实施方式的动作进行说明。
并且,使用哈希函数对加密函数E进行说明。
首先,对D1和D2的登记处理进行说明。
在S702中,分割成D1=(A,B,C)、D2=(B,B,C)。
在S703中,生成A1={{(A),(AB),(ABC)},{(B),(BC)},{(C)}}和A2={{(B),(BB),(BBC)},{(B),(BC)},{(C)}}。
在S704中,生成B1={{(1,A),(1,AB),(1,ABC)},{(2,B),(2,BC)},{(3,C)}}和B2={{(1,B),(1,BB),(1,BBC)},{(2,B),(2,BC)},{(3,C)}}。
在S705b1中,如下所述进行集约。
(1,A,{1},{2}),
(1,AB,{1},{2}),
(1,ABC,{1},{2}),
(1,B,{2},{1}),
(1,BB,{2},{1}),
(1,BBC,{2},{1}),
(2,B,{1,2},{}),
(2,BC,{1,2},{}),
(3,C,{1,2},{})。
在S705b2中,读出m=1,生成I={(C11,1),(C12,2),(C21,1),(C22,2),(C31,1),(C32,2),(C41,2),(C42,1),(C51,2),(C52,1),(C61,2),(C62,1),(C71,1),(C72,2),(C81,1),(C82,2),(C91,1),(C92,2)},生成保管索引(3,1,I)。
其中,
C11=E(E^2(K,A,0),1,1,3),
C12=E(E^2(K,A,1),1,2,3),
C21=E(E^2(K,AB,0),1,1,3),
C22=E(E^2(K,AB,1),1,2,3),
C31=E(E^2(K,ABC,0),1,1,3),
C32=E(E^2(K,ABC,1),1,2,3),
C41=E(E^2(K,B,0),1,1,3),
C42=E(E^2(K,B,1),1,2,3),
C51=E(E^2(K,BB,0),1,1,3),
C52=E(E^2(K,BB,1),1,2,3),
C61=E(E^2(K,BBC,0),1,1,3),
C62=E(E^2(K,BBC,1),1,2,3),
C71=E(E^2(K,B,0),2,1,3),
C72=E(E^2(K,B,0),2,2,3),
C81=E(E^2(K,BC,0),2,1,3),
C82=E(E^2(K,BC,0),2,2,3),
C91=E(E^2(K,C,0),3,1,3),
C92=E(E^2(K,C,0),3,2,3),
并且,M+1-m=2。
通过S707b和S708b1,对保管索引(3,1,I)进行保管。
通过S708b2~S712a,参数保管部303a的参数m被更新成2,参数保管部407a和参数保管部502a的参数m被更新成1。
接着,对s=BC的检索处理进行说明。
在S802a中,读出m=2,计算t=E^2(K,s,0)。其中,M+1-m=2。
在S805a1中,读出m=1,设t1=t,生成(1,t1)。
在S805b2中,读出(3,1,I)。
在S806b中,读出L=3和N=3,计算C_11=E(t1,1,1,3)、C_12=E(t1,1,2,3)、C_13=E(t1,1,3,3)、C_21=E(t1,2,1,3)、C_22=E(t1,2,2,3)、C_23=E(t1,2,3,3)、C_31=E(t1,3,1,3)、C_32=E(t1,3,2,3)、C_33=E(t1,3,3,3)。
在S807b中,确认C_11,…,C_33是否包含在I中。
实际上可知
C_21
=E(t1,2,1,3)
=C81,C_22
=E(t1,2,2,3)
=C82
根据(C81,1)和(C82,2)生成检索结果R={(1,2),(2,2)}。
在S810中,根据R,输出“从保管数据名为“1”的数据的“第2个”位置出现检索数据BC”、“从保管数据名为“2”的数据的“第2个”位置出现检索数据BC”这样的检索结果。
另外,在S806b中,针对生成的C_11立即进行S807b的核对处理,由此,C_11未包含在I中,因此,能够省略C_12和C_13的生成。同样,C_31也未包含在I中,因此,能够省略C_32和C_33的生成。这样,能够提高检索效率。
以上是具体例的说明。
本实施方式中的硬件资源的一例与实施方式1相同,因此省略。
<***实施方式3的效果***>
本实施方式例如发挥以下效果。
在本实施方式中,不是一个一个地对保管数据进行保管,而是集中保管多个保管数据,由此,即使选择与实施方式2相同的M,也能够增大能够利用相同密钥K加密和保管的保管数据的最大数,并且提高检索效率。
以上说明了本发明的实施方式,但是,也可以组合实施这些实施方式中的2个以上的实施方式。或者,也可以部分地实施这些实施方式中的一个实施方式。或者,也可以部分地组合实施这些实施方式中的2个以上的实施方式。另外,本发明不限于这些实施方式,能够根据需要进行各种变更。
标号说明
100:隐匿检索系统;101:互联网;200、200a、200b:密钥生成装置;201:密钥生成部;202、202a、202b:参数生成部;203、203a、203b:发送部;300、300a、300b:登记装置;301、301a、301b:接收部;302:密钥保管部;303、303a、303b:参数保管部;304、304b:输入部;305:数据分割部;306:部分字符串生成部;307:位置信息分配部;308:加密部;308a、308b:多重加密部;309、309a、309b:发送部;310b:集约部;400、400a、400b:检索装置;401、401a:接收部;402:密钥保管部;403、403b:输入部;404:加密部;404a、404b:多重加密部;405、405b:发送部;406:输出部;407a:参数保管部;500、500a、500b:管理装置;501、501a、501b:接收部;502、502a、502b:参数保管部;503、503b:数据保管部;504、504a、504b:核对部;505:发送部;506a:多重加密部;1001:CPU;1002:总线;1003:ROM;1004:RAM;1005:通信板;1011:显示器;1012:键盘;1013:鼠标;1014:驱动器;1020:磁盘装置;1021:OS;1022:程序组;1023:文件组。

Claims (9)

1.一种加密装置,其中,所述加密装置具有:
数据分割部,其将字符串数据D分割成所述字符串数据D的从头到尾的N个元素数据w1,w2,...,wN
部分字符串生成部,其根据所述N个元素数据w1,w2,...,wN生成集合A={A1,A2,...,AN},集合A的元素Ai={(wi),(wiwi+1),...,(wiwi+1...wN)},i=1,...,N;
位置信息分配部,其使位置信息i与所述元素Ai的成分即(wi),(wiwi+1),...,(wiwi+ 1...wN)分别对应,由此,生成集合B={B1,B2,...,BN},集合B的元素Bi={(i,wi),(i,wiwi+1),...,(i,wiwi+1...wN)};以及
加密部,其对所述元素Bi中包含的成分即(i,wi),(i,wiwi+1),...,(i,wiwi+1...wN)分别进行加密。
2.根据权利要求1所述的加密装置,其中,
所述加密部在对所述元素Bi中包含的各成分进行加密的情况下,与标识所述字符串数据D的标识符一起,对所述元素Bi中包含的各成分进行加密。
3.根据权利要求1或2所述的加密装置,其中,
所述加密部在对所述元素Bi中包含的各成分进行加密的情况下,对所述元素Bi的成分中包含的所述元素Ai的成分进行加密,与和加密后的所述元素Ai的成分成对的位置信息一起,对加密后的所述元素Ai的成分进行加密。
4.根据权利要求3所述的加密装置,其中,
所述加密部在对所述元素Bi的成分中包含的所述元素Ai的成分进行加密的情况下,进行反复多次加密的多重加密。
5.根据权利要求1~4中的任意一项所述的加密装置,其中,
所述加密装置还具有参数保管部,该参数保管部保管指定所述字符串数据D的分割数的参数,
所述数据分割部将所述字符串数据D分割成所述参数指定的分割数以下的N个。
6.一种加密方法,其中,
数据分割部将字符串数据D分割成所述字符串数据D的从头到尾的N个元素数据w1,w2,...,wN
部分字符串生成部根据所述N个元素数据w1,w2,...,wN生成集合A={A1,A2,...,AN},集合A的元素Ai={(wi),(wiwi+1),...,(wiwi+1...wN)},i=1,...,N,
位置信息分配部使位置信息i与所述元素Ai的成分即(wi),(wiwi+1),...,(wiwi+1...wN)分别对应,由此,生成集合B={B1,B2,...,BN},集合B的元素Bi={(i,wi),(i,wiwi+1),...,(i,wiwi+1...wN)},
加密部对所述元素Bi中包含的成分即(i,wi),(i,wiwi+1),...,(i,wiwi+1...wN)分别进行加密。
7.一种加密程序,其中,所述加密程序用于使计算机执行以下处理:
将字符串数据D分割成所述字符串数据D的从头到尾的N个元素数据w1,w2,...,wN
根据所述N个元素数据w1,w2,...,wN生成集合A={A1,A2,...,AN},集合A的元素Ai={(wi),(wiwi+1),...,(wiwi+1...wN)},i=1,...,N;
使位置信息i与所述元素Ai的成分即(wi),(wiwi+1),...,(wiwi+1...wN)分别对应,由此,生成集合B={B1,B2,...,BN},集合B的元素Bi={(i,wi),(i,wiwi+1),...,(i,wiwi+1...wN)};以及
对所述元素Bi中包含的成分即(i,wi),(i,wiwi+1),...,(i,wiwi+1...wN)分别进行加密。
8.一种加密装置,其中,所述加密装置具有:
数据分割部,其将字符串数据D分割成所述字符串数据D的从头到尾的N个元素数据w1,w2,...,wN;以及
加密部,其对所述N个元素数据w1,w2,...,wN的各元素数据进行加密,与标识所述字符串数据D的标识符一起,对加密后的各元素数据进行加密。
9.根据权利要求8所述的加密装置,其中,
所述加密装置还具有部分字符串生成部,该部分字符串生成部根据所述N个元素数据w1,w2,...,wN生成集合A={A1,A2,...,AN},集合A的元素Ai={(wi),(wiwi+1),...,(wiwi+ 1...wN)},i=1,...,N,
所述加密部对集合A的元素Ai的成分即(wi),(wiwi+1),...,(wiwi+1...wN)的各成分进行加密,与所述标识符一起对加密后的各成分进行加密。
CN201680076736.4A 2016-01-15 2016-01-15 加密装置、加密方法和保管装置 Active CN108475480B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2016/051158 WO2017122352A1 (ja) 2016-01-15 2016-01-15 暗号化装置、暗号化方法及び暗号化プログラム

Publications (2)

Publication Number Publication Date
CN108475480A true CN108475480A (zh) 2018-08-31
CN108475480B CN108475480B (zh) 2021-03-23

Family

ID=57483104

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201680076736.4A Active CN108475480B (zh) 2016-01-15 2016-01-15 加密装置、加密方法和保管装置

Country Status (5)

Country Link
US (1) US11005645B2 (zh)
EP (1) EP3392865B1 (zh)
JP (1) JP6038427B1 (zh)
CN (1) CN108475480B (zh)
WO (1) WO2017122352A1 (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017122352A1 (ja) 2016-01-15 2017-07-20 三菱電機株式会社 暗号化装置、暗号化方法及び暗号化プログラム
JP6879311B2 (ja) * 2016-12-20 2021-06-02 日本電信電話株式会社 メッセージ送信システム、通信端末、サーバ装置、メッセージ送信方法、およびプログラム
US11106740B2 (en) 2017-04-25 2021-08-31 Mitsubishi Electric Corporation Search device, search system, search method, and computer readable medium
US10742401B2 (en) * 2017-12-19 2020-08-11 International Business Machines Corporation Half-pyramid data encryption
WO2019142268A1 (ja) * 2018-01-17 2019-07-25 三菱電機株式会社 登録装置、検索操作装置、データ管理装置、登録プログラム、検索操作プログラムおよびデータ管理プログラム
WO2020136884A1 (ja) 2018-12-28 2020-07-02 三菱電機株式会社 秘匿検索システムおよび秘匿検索方法

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002278970A (ja) * 2001-03-16 2002-09-27 Ricoh Co Ltd 文書管理システム
JP2005101883A (ja) * 2003-09-25 2005-04-14 Hitachi Ltd 電子メール文書原本性保証装置
JP2006072585A (ja) * 2004-08-31 2006-03-16 Planet:Kk 移動体通信端末を用いた認証方法
JP2006113704A (ja) * 2004-10-13 2006-04-27 Toshiba Corp 医用システムのパスワード管理方法及び医用装置用パスワード管理システム
US20120159180A1 (en) * 2010-12-17 2012-06-21 Microsoft Corporation Server-side Encrypted Pattern Matching
CN102985920A (zh) * 2010-07-08 2013-03-20 三菱电机株式会社 关键词变换装置、关键词变换程序、记录介质以及关键词变换方法
CN103329184A (zh) * 2011-01-13 2013-09-25 三菱电机株式会社 数据处理装置以及数据保管装置
WO2015050361A1 (ko) * 2013-10-01 2015-04-09 주식회사 파수닷컴 데이터 컬럼 암호화 장치 및 방법

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2519130B2 (ja) 1991-01-10 1996-07-31 株式会社テレマティーク国際研究所 マルチキ―ワ―ド情報検索処理方式および検索ファイル作成装置
JP2519129B2 (ja) 1991-01-10 1996-07-31 株式会社テレマティーク国際研究所 マルチキ―ワ―ド情報検索処理方式および検索ファイル作成装置
JP3143079B2 (ja) 1997-05-30 2001-03-07 松下電器産業株式会社 辞書索引作成装置と文書検索装置
JP2002108910A (ja) * 2000-09-27 2002-04-12 Nec Soft Ltd 暗号化ファイルシステム及び暗号化ファイル検索方法並びにコンピュータ可読記録媒体
JP4011383B2 (ja) * 2002-04-04 2007-11-21 Kddi株式会社 データ検索方法、データ検索システム、検索キーワード生成装置、及びコンピュータプログラム
JP4395611B2 (ja) 2003-10-28 2010-01-13 独立行政法人情報通信研究機構 暗号化データベース検索装置および方法ならびに暗号化データベース検索プログラム
JP2009048621A (ja) * 2007-07-26 2009-03-05 Ricoh Co Ltd データ提供装置、データ提供方法、及びプログラム
TW201027375A (en) 2008-10-20 2010-07-16 Ibm Search system, search method and program
JP5140026B2 (ja) 2009-03-19 2013-02-06 株式会社日立製作所 データベース処理方法、データベース処理プログラム、および、暗号化装置
US8533489B2 (en) 2010-09-29 2013-09-10 Microsoft Corporation Searchable symmetric encryption with dynamic updating
JP5412414B2 (ja) 2010-12-08 2014-02-12 株式会社日立製作所 検索可能暗号処理システム
JP2012164031A (ja) 2011-02-03 2012-08-30 Mitsubishi Electric Corp データ処理装置及びデータ保管装置及びデータ処理方法及びデータ保管方法及びプログラム
JP5442161B2 (ja) 2011-02-22 2014-03-12 三菱電機株式会社 検索システム、検索システムの検索方法、情報処理装置、検索プログラム、対応キーワード管理装置および対応キーワード管理プログラム
JP5307199B2 (ja) * 2011-07-15 2013-10-02 株式会社エアー データ管理システム及びデータ管理方法
JP5816299B2 (ja) 2011-12-01 2015-11-18 株式会社日立製作所 秘匿検索方法および秘匿検索装置
JP5800720B2 (ja) 2012-01-24 2015-10-28 三菱電機株式会社 情報処理装置及び情報処理方法及びプログラム
JP5255154B1 (ja) 2012-12-26 2013-08-07 株式会社エアー 部分一致検索の可能な暗号システム
US10235539B2 (en) * 2013-02-25 2019-03-19 Mitsubishi Electric Corporation Server device, recording medium, and concealed search system
JP6054790B2 (ja) * 2013-03-28 2016-12-27 三菱スペース・ソフトウエア株式会社 遺伝子情報記憶装置、遺伝子情報検索装置、遺伝子情報記憶プログラム、遺伝子情報検索プログラム、遺伝子情報記憶方法、遺伝子情報検索方法及び遺伝子情報検索システム
JP6144992B2 (ja) 2013-08-08 2017-06-07 株式会社日立製作所 検索可能暗号処理システム及び方法
JP6208586B2 (ja) 2014-01-16 2017-10-04 株式会社日立製作所 検索可能暗号処理システムおよび検索可能暗号処理方法
US9489519B2 (en) * 2014-06-30 2016-11-08 Nicira, Inc. Method and apparatus for encrypting data messages after detecting infected VM
DE112014007083T5 (de) 2014-10-21 2017-07-13 Mitsubishi Electric Corporation Servervorrichtung, Suchsystem, Endgerätevorrichtung, Suchverfahren, Serverprogramm und Endgeräteprogramm
JP6381128B2 (ja) 2015-02-05 2018-08-29 国立研究開発法人産業技術総合研究所 検索システム、クライアント、サーバ、検索プログラムおよび検索方法
US9894042B2 (en) 2015-07-24 2018-02-13 Skyhigh Networks, Inc. Searchable encryption enabling encrypted search based on document type
WO2017122352A1 (ja) 2016-01-15 2017-07-20 三菱電機株式会社 暗号化装置、暗号化方法及び暗号化プログラム

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002278970A (ja) * 2001-03-16 2002-09-27 Ricoh Co Ltd 文書管理システム
JP2005101883A (ja) * 2003-09-25 2005-04-14 Hitachi Ltd 電子メール文書原本性保証装置
JP2006072585A (ja) * 2004-08-31 2006-03-16 Planet:Kk 移動体通信端末を用いた認証方法
JP2006113704A (ja) * 2004-10-13 2006-04-27 Toshiba Corp 医用システムのパスワード管理方法及び医用装置用パスワード管理システム
CN102985920A (zh) * 2010-07-08 2013-03-20 三菱电机株式会社 关键词变换装置、关键词变换程序、记录介质以及关键词变换方法
US20120159180A1 (en) * 2010-12-17 2012-06-21 Microsoft Corporation Server-side Encrypted Pattern Matching
CN103329184A (zh) * 2011-01-13 2013-09-25 三菱电机株式会社 数据处理装置以及数据保管装置
WO2015050361A1 (ko) * 2013-10-01 2015-04-09 주식회사 파수닷컴 데이터 컬럼 암호화 장치 및 방법

Also Published As

Publication number Publication date
EP3392865B1 (en) 2021-06-02
CN108475480B (zh) 2021-03-23
EP3392865A4 (en) 2019-03-13
JPWO2017122352A1 (ja) 2018-01-18
WO2017122352A1 (ja) 2017-07-20
JP6038427B1 (ja) 2016-12-07
US20190036679A1 (en) 2019-01-31
EP3392865A1 (en) 2018-10-24
US11005645B2 (en) 2021-05-11

Similar Documents

Publication Publication Date Title
Jiang et al. Privacy-preserving and efficient multi-keyword search over encrypted data on blockchain
CN108475480A (zh) 加密装置、加密方法和加密程序
US10367786B2 (en) Configuration management for a capture/registration system
Salam et al. Implementation of searchable symmetric encryption for privacy-preserving keyword search on cloud storage
EP2731046A1 (en) Client computer for querying a database stored on a server via a network
US20130287210A1 (en) Data processing apparatus and data storage apparatus
Cai et al. Hardening distributed and encrypted keyword search via blockchain
US10872158B2 (en) Secret search system, secret search method, and computer readable medium
JP2012164031A (ja) データ処理装置及びデータ保管装置及びデータ処理方法及びデータ保管方法及びプログラム
CN107077469A (zh) 服务器装置、检索系统、终端装置、检索方法、服务器程序以及终端程序
KR101979267B1 (ko) 클라우드 저장 기반 암호화 시스템 및 방법
JP6632780B2 (ja) データ処理装置、データ処理方法及びデータ処理プログラム
JP6289768B2 (ja) 暗号化装置、暗号化プログラム及び暗号化方法
WO2021144834A1 (ja) 秘匿検索システム、秘匿検索方法、及び、秘匿検索プログラム
Sabbu et al. An oblivious image retrieval protocol
CN111602127B (zh) 数据管理装置、数据管理方法和计算机能读取的存储介质
Huang et al. A verifiable encryption scheme supporting fuzzy search
WO2024029123A1 (ja) ソフトウェア情報管理装置、ソフトウェア情報管理方法
Göge et al. Improving fuzzy searchable encryption with direct bigram embedding
CN112000632A (zh) 密文的分享方法、介质、分享客户端及系统
Zhao Implementing a segmentation-based oblivious RAM
RAJESH et al. PRIVACY-ENHANCED SEARCHS SUPPORTING SYNONYM QUERY OVER ENCRYPTED DATA IN CLOUD COMPUTING
GARIKIPATI LAHARI et al. A NEW FEATURE MATCHING RANKED SEARCH MECHANISM (FMRSM) FOR ENCRYPTED CLOUD DATA

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