CN108370312B - 加密装置、检索装置、计算机能读取的记录介质、加密方法和检索方法 - Google Patents
加密装置、检索装置、计算机能读取的记录介质、加密方法和检索方法 Download PDFInfo
- Publication number
- CN108370312B CN108370312B CN201680074149.1A CN201680074149A CN108370312B CN 108370312 B CN108370312 B CN 108370312B CN 201680074149 A CN201680074149 A CN 201680074149A CN 108370312 B CN108370312 B CN 108370312B
- Authority
- CN
- China
- Prior art keywords
- data
- search
- random number
- encryption
- unit
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims description 64
- 230000005540 biological transmission Effects 0.000 claims description 29
- 238000007726 management method Methods 0.000 description 63
- 238000010586 diagram Methods 0.000 description 33
- 238000012545 processing Methods 0.000 description 29
- 230000006870 function Effects 0.000 description 28
- 238000004458 analytical method Methods 0.000 description 9
- 238000013500 data storage Methods 0.000 description 8
- 238000005516 engineering process Methods 0.000 description 6
- 238000012217 deletion Methods 0.000 description 5
- 230000037430 deletion Effects 0.000 description 5
- 230000000694 effects Effects 0.000 description 4
- 239000004973 liquid crystal related substance Substances 0.000 description 4
- FFBHFFJDDLITSX-UHFFFAOYSA-N benzyl N-[2-hydroxy-4-(3-oxomorpholin-4-yl)phenyl]carbamate Chemical compound OC1=C(NC(=O)OCC2=CC=CC=C2)C=CC(=C1)N1CCOCC1=O FFBHFFJDDLITSX-UHFFFAOYSA-N 0.000 description 3
- 238000013523 data management Methods 0.000 description 3
- 238000004891 communication Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000011218 segmentation Effects 0.000 description 2
- 241000700605 Viruses Species 0.000 description 1
- 239000002131 composite material Substances 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000002904 solvent Substances 0.000 description 1
- 239000000758 substrate Substances 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
- H04L9/0869—Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/903—Querying
- G06F16/90335—Query processing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6209—Protecting access to data via a platform, e.g. using keys or access control rules to a single file or object, e.g. in a secure envelope, encrypted and accessed using a key, or with access control rules appended to the object itself
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/58—Random or pseudo-random number generators
- G06F7/588—Random number generators, i.e. based on natural stochastic processes
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09C—CIPHERING OR DECIPHERING APPARATUS FOR CRYPTOGRAPHIC OR OTHER PURPOSES INVOLVING THE NEED FOR SECRECY
- G09C1/00—Apparatus 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic 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/065—Encryption by serially and continuously modifying data stream elements, e.g. stream cipher systems, RC4, SEAL or A5/3
- H04L9/0656—Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher
- H04L9/0662—Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher with particular pseudorandom sequence generator
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Computer Security & Cryptography (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Data Mining & Analysis (AREA)
- Computational Linguistics (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Computational Mathematics (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Storage Device Security (AREA)
Abstract
加密部使用将保管数据D分割而成的3个要素数据w1、w2、w3,生成依次排列第1个到第3个要素数据的第1集合A1、依次排列第2个到第3个要素数据的第2集合A2、由第3个要素数据构成的第3集合A3这3个集合。加密部使用随机数R(1),通过CBC模式对各集合中包含的各个要素数据进行加密。
Description
技术领域
本发明涉及在隐匿检索***中使用的加密装置、检索装置、加密程序、检索程序、加密方法和检索方法。
背景技术
隐匿检索是能够在对检索对象数据和检索内容进行加密的状态下进行检索的技术。
近年来,由于云服务等的普及,已经能够在互联网上进行数据管理。但是,在互联网上的数据管理中,存在由于作为数据管理委托目的地的云等服务器感染计算机病毒等恶意软件或服务器的管理者进行不正当动作等而向外部泄露寄存数据的危险性。如果服务器中寄存的数据是个人信息或企业机密数据,则该泄露是非常严重的问题。
作为避免这种安全性威胁的方法而存在加密技术,但是,当单纯地对数据进行加密并保管在服务器中时,产生无法进行数据检索的问题。为了避免该问题,以往采取在进行检索时暂时对服务器上保管的加密数据进行解密后进行检索的方法。但是,数据在服务器内在一定期间内返回到明文,因此,作为对策并不充分。
因此,提出了能够在对数据进行加密的状态下进行检索的加密技术即“隐匿检索技术”。近年来公开有很多隐匿检索技术的具体方法。
在隐匿检索技术中,主要研究了能够进行单纯检索即“完全一致检索”的方式(例如参照非专利文献1)。近年来,还研究了能够进行更加灵活的检索例如“部分一致检索”的方式(例如参照专利文献1、非专利文献2)和能够进行“相似检索”的方式 (例如参照非专利文献3、非专利文献4)等。以下,将能够进行部分一致检索的方式称作“隐匿部分一致的检索技术”,将能够进行相似检索的隐匿检索技术称作“隐匿相似的检索技术”。
另外,隐匿检索技术大致有基于公开密钥加密的方式和基于共享密钥加密的方式这2种。
现有技术文献
专利文献
专利文献1:日本特开2014-126621号公报
非专利文献
非专利文献1:R.Curtmola、J.Garay、S.Kamara、and R.Ostrovsky.“SearchableSymmetric Encryption:Improved Definitions and Efficient Constructions”.ACMCCS 2006.
非专利文献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 IEEEInfocom 2010.
非专利文献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中公开有还包含部分一致检索的隐匿相似检索技术。与部分一致检索相比,这些技术能够进行灵活的检索,但是,存在保管加密标签的大小和检索加密标签的大小均较大这样的课题。
由此,本发明的目的在于,提供针对保管加密标签和检索加密标签确保对频率分析等攻击具有耐性的较高安全性,数据大小较小且通信量较小的隐匿部分一致检索技术。
用于解决课题的手段
本发明的加密装置的特征在于,所述加密装置具有:数据分割部,其将要检索的数据分割成多个要素数据;以及加密部,其通过能够进行隐匿检索的加密模式,使用随机数对多个要素数据的各要素数据进行加密。
发明效果
根据本发明,对被检索的数据进行分割,使用随机数,以能够进行隐匿检索的加密模式进行加密。通过使用随机数,针对频率分析攻击,无法进行被检索的数据即密文彼此的比较。因此,能够提高安全性。并且,由于对数据进行分割,因此,能够在进行加密的状态下实现部分一致检索。
附图说明
图1是实施方式1的图,是隐匿检索***的框图。
图2是实施方式1的图,是密钥生成装置的框图。
图3是实施方式1的图,是登记装置的框图。
图4是实施方式1的图,是检索装置的框图。
图5是实施方式1的图,是管理装置的框图。
图6是实施方式1的图,是示出隐匿检索***的密钥生成、保管处理的流程图。
图7是实施方式1的图,是示出隐匿检索***的数据登记处理的流程图。
图8是实施方式1的图,是示出隐匿检索***的数据检索处理的流程图。
图9是实施方式1的图,是说明登记装置的加密处理的图。
图10是实施方式1的图,是说明检索装置的加密处理的图。
图11是实施方式1的图,是示出密钥生成装置、登记装置等的硬件资源的图。
图12是实施方式1的图,是示出密钥生成装置、登记装置等的硬件资源的另一个图。
图13是实施方式2的图,是说明登记装置的加密处理的图。
图14是实施方式2的图,是说明检索装置的加密处理的图。
具体实施方式
下面,使用附图对本发明的实施方式进行说明。另外,在各图中,对相同或相当的部分标注相同标号。在实施方式的说明中,针对相同或相当的部分,适当省略或简化其说明。
实施方式1
在本实施方式中,公开高安全且高效的隐匿部分一致检索技术。
下面,对本实施方式的概要进行说明。
图1是示出本实施方式的隐匿检索***100的结构的框图。如图1所示,隐匿检索***100具有密钥生成装置200、多个登记装置300、多个检索装置400和管理装置500。登记装置300是加密装置。隐匿检索***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中登记保管加密数据的登记终端进行动作的计算机。这里,保管加密数据是后述的C(D(j))={C1 →、C2 →、...、CL →}中的C1 →、C2 →等。
登记装置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以外,很难根据保管加密数据和检索加密数据得到有用的信息。
<结构的说明>
参照图2~图5依次对密钥生成装置200、登记装置300、检索装置400和管理装置500的结构进行说明。图2~图5是示出作为计算机的密钥生成装置200、登记装置300、检索装置400和管理装置500的结构的框图。
并且,图11是示出密钥生成装置200~管理装置500的硬件结构的图。图12是示出密钥生成装置200~管理装置500的硬件结构的另一个图。
在本实施方式中,密钥生成装置200、登记装置300、检索装置400和管理装置500是计算机。密钥生成装置200等具有处理器91、存储装置92、输入接口93和输出接口 94这样的硬件。下面,输入接口93、输出接口94记作输入I/F93、输出I/F94。在图2~图5中示出各功能部与硬件的关系。在图2~图5中,作为处理器91示出的“~部”由软件实现。即,作为处理器91示出的“~部”通过处理器91执行软件来实现。
并且,图3~图5中的“~保管部”由存储装置92实现。
处理器91经由信号线而与其它硬件连接,对这些其他硬件进行控制。处理器91 是进行处理的IC(Integrated Circuit:集成电路)。具体而言,处理器91是CPU(CentralProcessing Unit:中央处理单元)。
存储装置92包含辅助存储装置92a和存储器92b。具体而言,辅助存储装置92a是ROM(Read Only Memory:只读存储器)、闪存或(Hard Disk Drive:硬盘驱动器)。具体而言,存储器92b是RAM(Random Access Memory:随机存取存储器)。
输入I/F93是供信号输入的端口。并且,输入I/F93可以是与鼠标、键盘和触摸面板这样的输入装置连接的端口。具体而言,输入I/F93是USB(Universal Serial Bus:通用串行总线)端子。另外,输入I/F93也可以是与LAN(Local Area Network:局域网)连接的端口。
输出I/F94是输出信号的端口。输出I/F94可以是USB端子。
在辅助存储装置92a中存储有实现作为处理器91示出的“~部”的功能的程序。该程序载入到存储器92b,读入到处理器91,由处理器91执行。在辅助存储装置92a 中还存储有OS(Operating System:操作***)。OS的至少一部分载入到存储器92b,处理器91执行OS,并且执行实现作为处理器91示出的“~部”的功能的程序。
密钥生成装置200、登记装置300、检索装置400和管理装置500可以仅具有一个处理器91,也可以具有多个处理器91。多个处理器91可以协作执行实现“部”的功能的程序。
表示作为处理器91示出的“部”的功能的处理结果的信息、数据、信号值和变量值存储在辅助存储装置92a、存储器92b或处理器91内的寄存器或高速缓冲存储器中。
实现作为处理器91示出的“部”的功能的程序也可以存储在磁盘、软盘、光盘、高密度盘、DVD(Digital Versatile Disc:数字多功能盘)这样的移动记录介质中。
对图12进行说明。在本实施方式中,作为处理器91示出的“部”的功能由软件实现,但是,作为变形例,作为处理器91示出的“部”的功能也可以由硬件实现。即,通过处理电路99实现所述作为处理器91示出的“部”的功能和“~保管部”的功能。处理电路99与信号线99a连接。处理电路99是实现作为处理器91示出的“部”的功能和“~保管部”的功能的专用的电子电路。具体而言,处理电路99是单一电路、复合电路、程序化的处理器、并列程序化的处理器、逻辑IC、GA(Gate Array:门阵列)、 ASIC(Application Specific IntegratedCircuit:面向特定用途的集成电路)或FPGA (Field-Programmable Gate Array:现场可编程门阵列)。
作为处理器91示出的“部”的功能可以由一个处理电路99实现,也可以通过多个处理电路99分散实现。
作为另一个变形例,图2~图5所示的装置也可以由软件和硬件的组合来实现。即,也可以是,图2~图5所示的装置的一部分功能由专用硬件实现,其余功能由软件实现。
将处理器91、存储装置92和处理电路99统称作“处理电路***”。即,图2~图5 中的作为处理器91示出的“部”的功能和“~保管部”由处理电路***实现。
也可以将作为处理器91示出的“部”改写成“工序”或“步骤”或“处理”。并且,也可以利用固件实现作为处理器91示出的“部”的功能。
图2是示出密钥生成装置200的结构的框图。
如图2所示,密钥生成装置200具有输入部201、密钥生成部202和发送部203。虽然未图示,但是,密钥生成装置200具有存储在密钥生成装置200的各部中使用的数据的记录介质。
输入部201输入在本***中使用的密钥的比特长度、在检索时使用的最大字符数L等。密钥生成部202使用输入的密钥的比特长度Lbit生成用于对数据进行加密和解密的密钥K以及在检索时使用的密钥K’。密钥K和密钥K’是登记装置300、检索装置400和管理装置500中保管的秘密信息,因此严格地生成。另外,这里,使用共享密钥加密技术进行说明,但是,也可以使用公开密钥加密技术。下面,进行使用密钥K和密钥 K’的说明,但是,在不必要的情况下,也可以没有密钥K’。即,在以下的说明中出现 E(K’、*),E(K’、*)意味着利用密钥K’对数据“*”进行加密。在采用E(K’、*) 以外的加密的情况下不需要密钥K’。不需要密钥K’的情况是指该意思。
并且,下面,在存在使用密钥K或密钥K’的说明的情况下,从密钥生成装置200 发送密钥K或密钥K’。
发送部203向登记装置300和检索装置400发送由密钥生成部202生成的密钥K,向检索装置400和管理装置500发送密钥K’。发送部203向登记装置300和管理装置500发送被输入到输入部201的最大字符数L作为参数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的整数值。
并且,输入部304从数据登记者接收与希望删除的保管加密数据集合有关的删除数据名。删除数据名例如是登记时输入的数据名、登记的时刻、数据登记者的姓名等能够确定保管数据的信息即可,可以是任意的。
数据分割部305从参数保管部303中读出参数L,将从输入部304接收到的保管数据D分割成(w1、…、wL)。该情况下,分割数也可以是小于L的值。各wi(1≦i≦L) 可以是按照1个字符或多个字符依次分割数据而得到的,也可以按照单词单位进行分割。
参数保管部303保管安全性参数λ。随机数生成部306生成一个随机数R。R的大小没有特别规定,但是,优选根据参数保管部303中保管的安全性参数λ的大小而取较大值。
加密部307从密钥保管部302中读出密钥K,使用由随机数生成部306生成的随机数R,如下所述生成密文C。
针对字符wi、...wL,根据从数据分割部305接收到的分割数据(w1、…、wL),生成如下的集合A。
A={A1、A2、…、AL}。
下面,有时将集合A称作部分字符串集合。
在登记装置的动作说明中详细叙述,但是,加密部307使用集合A生成保管加密数据集合(ID(D)、C(D))。
发送部308向管理装置500发送从加密部307接收到的保管加密数据集合(ID(D)、C(D))。随机数发送部309向检索装置400发送从随机数生成部306接收到的随机数 R。该随机数R是由检索装置400管理的后述随机数R(j)。有时将随机数R(j)记作Rj。
图4是示出检索装置400的结构的框图。如图4所示,检索装置400具有随机数输入部401、随机数保管部402、接收部403、密钥保管部404、输入部405、加密部406、发送部407、输出部408和随机数生成部409。虽然未图示,但是,检索装置400具有存储在检索装置400的各部中使用的数据的记录介质。
(1)随机数输入部401接收从登记装置300发送来的随机数R。
(2)随机数保管部402与表示存储顺序的标识符j一起存储输入到随机数输入部401的随机数R。即,在随机数保管部402中,以(j、Rj)这样的对存储有多个此前输入到随机数输入部401的随机数R。随机数保管部402具有(j、Rj)作为列表。
(3)接收部403接收从密钥生成装置200发送来的密钥K和密钥K’或从管理装置500发送来的检索结果。
(4)密钥保管部404保管从接收部403接收到的密钥K。
(5)输入部405接收从数据检索者输入的检索数据S。输入部405也可以与检索数据S同时,从数据检索者接收多个指定该检索数据S和希望检索的保管加密数据集合 (ID(D)、C(D))的保管数据名。
(6)加密部406从密钥保管部404中读出密钥K和密钥K’,针对从输入部405接收到的检索数据S,使用密钥K生成以下的密文t。
在检索装置400的动作中详细叙述,但是,概要如下所述。
(1)首先,加密部406对检索数据S进行分割,设S:(s1、...、sk)。另外,分割不是必须的。
(2)接着,加密部406从随机数保管部402中读出(j、Rj),生成u=(u1、...、uk)。
即,随机数保管部402具有(1、R1)、(2、R2)、...、(M、RM)这样的M对值作为列表。M与由登记装置300登记的保管加密数据集合(ID(D)、C(D))的个数相等。使用由随机数保管部402读出的(j、Rj),加密部406根据ui=E(K、si<+>ui―1) 生成一个一个的密文。<+>是简便地表示异或运算的记号。
考虑Rj,因此设u0=Rj。
接着,选择一个生成随机数R’。生成随机数R’是随机数生成部409生成的。
然后,设tj=E(K’、R’、u1(j)、...、uk(j))。另外,E为加密函数。
另外,也可以是tj=E(K’、R’、uk(j))。加密部406针对从随机数保管部402接收到的全部(j、Rj)执行相同的处理。如果存在M对的(j、Rj),则与对对应地生成M 个tj。下面,将该全部M个tj称作检索加密数据,记作检索加密数据T→=(t(1)、...、t(M))。
发送部407向管理装置500发送从加密部406接收到的检索加密数据T→和生成随机数R’。如果与检索数据同时还从数据检索者输入了保管数据名,则向管理装置500 发送检索加密数据和保管数据名双方。
输出部408根据从接收部403接收到的检索结果,对数据检索者输出检索结果。如果对检索结果进行了加密,则使用密钥保管部404中保管的密钥K等对检索结果进行解密后输出。
图5是示出管理装置500的结构的框图。如图5所示,管理装置500具有接收部501、参数保管部502、数据保管部503、核对部504和发送部505。虽然未图示,但是,管理装置500具有存储在管理装置500的各部中使用的数据的记录介质。
(1)接收部501接收从密钥生成装置200发送来的参数L、从登记装置300发送来的保管加密数据集合(ID(D)、C(D))和删除数据名、从检索装置400发送来的检索加密数据T→、随机数R’和保管数据名。
(2)参数保管部502保管从接收部501接收到的参数L。
(3)数据保管部503保管从接收部501接收到的保管加密数据集合(ID(D)、C (D))。如果需要,则可以还同时保管发送来的日期时间等。并且,数据保管部503 根据从接收部501接收到的删除数据名,删除保管着的保管加密数据集合。
核对部504生成与检索结果有关的空集合I,从数据保管部503中读出全部保管加密数据集合(ID(D)、C(D)),根据从接收部501接收到的检索加密数据T→=(t (1)、...、t(M))进行核对。核对部504进行核对处理,或者生成检索结果。另外,在管理装置500的动作中说明详细处理。
发送部505向检索装置400发送从核对部504接收到的检索结果R。
<动作的说明>
下面,对与本实施方式的检索方法相当的隐匿检索***100的动作进行说明。
图6是示出隐匿检索***100的密钥生成/保管处理的流程图。
图6的S601~S611是密钥生成装置200、登记装置300、检索装置400、管理装置500执行的处理。S601~S604由密钥生成装置200来执行,S605~S607由登记装置300来执行,S608~S609由检索装置400来执行,S610~S611由管理装置500来执行。
(密钥生成装置200)
在S601中,密钥生成部202使用输入到输入部201的密钥的比特长度Lbit,生成在数据的加密中使用的密钥K、密钥K’。
另外,输入到输入部201的参数L是对保管数据D进行分割的最大分割数。
另外,在本实施方式中使用共享密钥加密技术进行说明,但是,也可以使用公开密钥加密技术。该情况下,密钥生成部202针对密钥K,设定公开密钥PK和秘密密钥 SK的对作为密钥K,针对密钥K’,设定公开密钥PK’和秘密密钥SK’的对作为密钥K’,同样地实施以后说明的处理即可。
在S602中,发送部203向登记装置300发送输入到输入部201的参数L和在S601中生成的密钥K。
在S603中,发送部203向检索装置400发送在S601中生成的密钥K。
在S604中,发送部203向管理装置500发送输入到输入部201的参数L。
(登记装置300)
在S605中,接收部301接收在S602中发送的密钥K和参数L。
在S606中,密钥保管部302在存储介质中保管在S605中接收到的密钥K。
在S607中,参数保管部303在存储介质中保管在S605中接收到的参数L。
(检索装置400)
在S608中,接收部403接收在S603中发送的密钥K和密钥K’。
在S609中,密钥保管部404在存储介质中保管在S608中接收到的密钥K和密钥K’。
(管理装置500)
在S610中,接收部501接收在S604中发送的密钥K’和参数L。
在S611中,参数保管部502在存储介质中保管在S610中接收到的密钥K’和参数L。
通过S611,隐匿检索***100的密钥生成/保管处理结束。
另外,密钥K和密钥K’是秘密信息,因此,登记装置300的密钥保管部302和检索装置400的密钥保管部404需要严格保管以使密钥K和密钥K’不会泄露到外部。
图7是示出隐匿检索***100的登记处理的流程图。图7的S701~S707是登记装置300和管理装置500执行的处理。S701~S705是由登记装置300执行的处理,S706~ S707是由管理装置500执行的处理。
(登记装置300)
在S701中,输入部304接收从数据登记者输入的保管数据D和数据名ID(D)。另外,如果数据登记者未输入数据名,则输入部304可以对输入的保管数据D的数据名ID (D)分配随机数,也可以按照不与其他保管数据的数据名重复的方式依次分配大于 0的整数值。
在S702中,数据分割部305将要检索的数据即保管数据D分割成多个要素数据wi。
具体而言,如下所述。
数据分割部305从参数保管部303中读出参数L,将在S701中从数据登记者接收到的保管数据D分割成(w1、…、wL)即参数L所示的L个要素数据wi,i=1、...、L。
另外,在设分割数为N的情况下,分割数N也可以是L以下的个数。
这样,保管数据D是能够从开头起依次进行分割的数据构造,数据分割部305将保管数据D从开头起依次分割成第1个到第N个这N个要素数据wi。
(具体例)
示出具体例。在参数L=3的情况下,数据分割部305可以将保管数据D三分割成(w1、w2、w3),也可以二分割成(w1、w2)。这样,分割数为参数L以下即可。
如果以(w1、w2、w3)为例进一步进行说明,则作为w1、w2、w3等,数据分割部305可以按照1个字符或多个字符依次分割保管数据D,也可以按照单词单位进行分割。
在S703中,随机数生成部306生成一个随机数R。
在S704中,加密部307从密钥保管部302中读出密钥K,使用在S703中生成的随机数R,如下所述,通过处理1的集合A的生成、处理2的Ci →的生成而生成密文C。
(处理1:集合A的生成)
下面,考虑一个保管数据D(j)。在设j=1的情况下,保管数据D(j)记作D(1)。下面,j作为对保管数据D进行区分的字符而记作(j)。并且,与保管数据D(j)对应地,由随机数生成部306生成随机数R(j)。设数据分割部305将保管数据D(1)分割成L个。
即,保管数据D(1)被分割成(w1、w2、w3、...wL)。
加密部307生成将以下的部分字符串Ai,i=1、2、...L作为要素的集合A(1)。
A={A1、A2、...、AL}
Ai=(wi、wi+1、...、wL)。
即,
A1=(w1、w2、...、wL)、
A2=(w2、w3、...、wL)、
...、
AL=(wL)。
(处理2:Ci →的生成)
针对Ai=(wi、wi+1、...、wL),i=1、2、..、L,加密部307生成Ci=(ci.i、...、ci.L)。
Ci与Ai对应地具有L-i+1个要素。
下面,为了与成分ci、i等进行区分,通过向量表记将Ci记作Ci →。
即,
Ci →=(ci.i、...、ci.L)。
作为Ci →=的成分的一个一个的密文c通过下式生成。
ci.j.=E(K、wj<+>ci.j-1)(式1)
ci.i-1=R(j)(式2)
i对应于Ai。式1的j取i~L。
式1的j与对保管数据D进行区分的(j)不同。
式1、式2表示CBC模式(Cipher Block Chaining Mode:密码分组链接模式)。
在(式1)的E(K、wj<+>ci.j-1)中,记号的意思如下所述。
如上所述,<+>表示异或运算。
由此,wj<+>ci.j-1表示wj与ci.j-1的异或运算。
并且,如上所述,E(K、*)意味着使用密钥K对*进行加密。
针对保管数据D(1),加密部307针对全部Ai生成Ci →。
针对全部Ai执行以上处理。
将汇集全部Ci →的集合写成C(D(j))。
Ci →对应于Ai,因此,C(D(j))={C1 →、C2 →、...、CL →}。
另外,E(K、wj<+>ci.j-1)中的E是加密函数。作为E,共享密钥加密方式、消息认证码、哈希函数是其一例。
利用具体例对上述处理1、处理2进行说明。
通过数据分割部305,保管数据D(1)被分割成(w1、w2、w3)。
以下全部是加密部307的处理。
加密部307生成集合A={A1、A2、A3}。
该情况下,A1=(w1、w2、w3)、A2=(w2、w3)、A3=(w3)。
加密部307针对Ai(i=1、2、3)生成Ci →。
C1 →、C2 →、C3 →对应于A1、A2、A3。
通过式1计算以下的c1.1。
式1是图9所示的CBC模式。
图9示出以下的A1~A3的情况。
i=1:(对应于A1)
C1 →=(c1.1、c1.2、c1.3)
c1.1=E(K、w1<+>c1.0)=E(K、w1<+>R(1))
c1.2=E(K、w2<+>c1.1)=E(K、w2<+>E(K、w1<+>R(1)))
c1.3=E(K、w3<+>c1.2)=E(K、w3<+>E(K、w2<+>E(K、w1<+>R(1))))
i=2:(对应于A2):
C2 →=(c2.2、c2.3)
c2.2=E(K、w2<+>c2.1)=E(K、w2<+>R(1))
c2.3=E(K、w3<+>c2.2)=E(K、w3<+>E(K、w2<+>R(1)))
i=3:(对应于A3):
C3 →=(c3.3)
=E(K、w3<+>c3.2)=E(K、w3<+>R(1))
如上所述,针对集合A={A1、A2、AL}生成C1 →、C2 →、C3 →。
由此,
C(D(1))={C1 →、C2 →、C3 →}。
这里,
C1 →=(c1.1、c1.2、c1.3)、
C2 →=(c2.2、c2.3)、
C3 →=(c3.3)。
并且,c1.1等的值基于上述E(K、w1<+>R(1))等。
以上是处理1、处理2的具体例。
如图9所示,加密部307通过能够进行隐匿检索的加密模式,使用随机数R对多个要素数据wi的各要素数据wi进行加密。在图9中,能够进行隐匿检索的加密模式是CBC 模式。
更具体而言,加密部307使用分割出的N个要素数据,生成依次排列第1个到第N 个要素数据的第1集合A1、依次排列第2个到第N个要素数据的第2集合A2、以下依次直到依次排列第N-1个到第N个要素数据的第N-1集合AN-1、由第N个要素数据构成的第N集合AN为止的这N个集合Ai。在实施方式1中,设N=L,并且,在具体例中,N=3。
而且,如图9所示,加密部307使用随机数R,通过CBC模式对各集合中包含的各个要素数据wi进行加密。
图9示出第1集合A1的情况,但是,对全部集合Ai进行与集合A1相同的处理。如图 9所示,加密部307按照从第1集合A1到所述第N集合AN的每个集合,在CBC模式的第1 段,运算随机数R与集合最初的要素数据的异或,从CBC模式的第2段起,运算前段的输出值与前段在异或的运算中使用的要素数据的下一个要素数据的异或。
在S705中,随机数发送部309向管理装置500发送在S704中生成的保管加密数据集合(ID(D)、C(D(j)))和随机数R(j)。
并且,随机数发送部309向检索装置400发送随机数R(j)。
(管理装置500)
在S706中,接收部501接收在S706中发送的保管加密数据集合。
在S707中,数据保管部503保管在S706中接收到的保管加密数据集合。
通过S707,隐匿检索***100的登记处理结束。
图8是示出隐匿检索***100的检索处理的流程图。
图8的S801~S810是检索装置400和管理装置500执行的处理。
S801~S804和S810~S811是由检索装置400执行的处理,S805~S809是由管理装置500执行的处理。
在S801中,输入部405接收从数据检索者输入的检索数据S。
输入部405是取得检索数据S的检索数据取得部。
另外,也可以同时接收多个检索数据S。
该情况下,针对各检索数据同样地实施以后的处理即可。
并且,如上所述,输入部405也可以与检索数据同时,从数据检索者还接收多个指定该检索数据和希望检索的保管加密数据集合的保管数据名。
在S802中,加密部406从随机数保管部402接收随机数(j、R(j))。其中,1≦j≦M。 M与此前由登记装置300登记的保管加密数据集合(ID(D)、C(D(j)))的个数相等。
在S802中,取得随机数R(1)~R(M)。
在S803中,加密部406对检索数据S进行加密。
S803的处理基于加密部406。加密部406从密钥保管部404中读出密钥K和密钥K’,针对在S801中接收到的检索数据S,如下所述生成检索加密数据T。检索加密数据T通常具有多个成分,因此,进行向量显示而记作T→。检索加密数据T→具有与各个j对应的成分即u(j)。u(j)也具有多个成分,因此,通过向量表记而记作u(j) →。u(j) →对应于 j,即,对应于随机数R(j)。
(j=1的情况)
首先,考虑j=1的情况。加密部406对检索数据S进行分割,生成(S1、...、Sk)。
另外,不是必须进行分割。也可以使用检索数据S而不进行分割。
加密部406在进行分割的情况下,将检索数据S分割成多个要素数据Si,i=1、...k,作为检索数据S的加密,按照每个随机数R(j),利用该随机数R(j)对各要素数据Si进行加密。利用图10在后面叙述具体例。
下面,对分割成k个的情况进行说明。并且,k可以是任意数。
接着,生成u(1) →=(u1、...、uk)。
如下式那样生成一个一个的密文。
ui(1)=E(K、Si<+>ui-1(1))(式3)
u0=R(j)(式4)
式3的意思与式1相同。
接着,加密部406取得随机数生成部409生成的一个生成随机数R’。另外,随机数生成部409按照由作为检索数据取得部的输入部405取得的多个检索数据S中的每个检索数据S生成生成随机数R’。加密部406将由随机数生成部409按照每个检索数据S生成的生成随机数R’用于对应的检索数据S。
加密部406使用生成随机数R’生成
t(j=1)=E(K’、R’、u1(1)、...、uk(1))(式5)
另外,E为加密函数。
另外,也可以是t(1)=E(K’、R’、uk(1))。
即,也可以是t(j)=E(K’、R’、uk(j))。
以上是与j=1有关的处理。
(j=2~j的处理)
加密部406针对从随机数保管部402接收到的全部(j、R(j))执行式5的t(j)的生成。
即,在式5中生成t(1),但是,同样还生成t(2)~t(M)。
如果记载这些式子,则为
t(2)=E(K’、R’、u1(2)、...、uk(2))、
...、
t(M)=E(K’、R’、u1(M)、...、uk(M))。
根据式3,在t(2)、t(3)等中,随机数R(2)、R(3)等不同。
如果存在M对的(j、R(j)),则生成M个t(j)。
如上所述,将该全部M个t(j)称作检索加密数据T→,记作T→=(t(1)、...、t(M))。
在S804中,发送部407成对地向管理装置500发送在S803中生成的检索加密数据T→和生成随机数R’。如果在S801中还输入了保管数据名,则还发送保管数据名。
具体而言,发送部407向管理装置500发送检索加密数据T→,该管理装置500具有按照与随机数保管部402中保管的多个随机数Rj相同的多个随机数Rj中的每个随机数而使用该随机数加密后的多个加密数据C(D(j))。
(检索处理的具体例)
参照图10,通过具体例对T→的生成进行说明。图10是说明检索装置的加密处理的图。
<1.检索数据S的分割>
(j=1)
(j、Rj)为(1、R1)、(2、R2)这2组。
设检索数据S被分割成S=(S1、S2)。
<2.u(j) →的生成>
u(1) →具有分割数的成分,因此是2个成分。
u(1) →=(u1(1)、u2(1))
在式3的ui(1)=E(K、si<+>ui-1(1))中,i=1、2。
图10示出j=1、2的u(1) →、u(2) →的生成。
u1(1)=E(K、S1<+>u0(1))=E(K、S1<+>R(1))、
u2(1)=E(K、S2<+>u1(1))=E(K、S2<+>E(K、S1<+>R(1)))、
(j=2)
u(2) →=(u1(2)、u2(2))的各成分相对于u(1) →而言,仅随机数R(1)成为随机数R(2)。
即,如下所述。
(j=2的情况)
u1(2)=E(K、S1<+>u0(2))=E(K、S1<+>R(2))
u2(2)=E(K、S2<+>u1(2))=E(K、S2<+>E(K、S1<+>R(2))、
如上所述,针对(1、R1)、(2、R2),生成u(1) →、u(2) →。
<3.检索加密数据的生成>
如上述式5所示,t(j)=E(K’、R’、u1(j)、...、uk(j)),但是,在具体例中,j=1、 2,
t(1)=E(K’、R’、u1(1)、u2(1))
t(2)=E(K’、R’、u1(2)、u2(2))。
由此,在具体例中,T→=(t(1)、...、t(M))成为T→=(t(1)、t(2))。
具体写出t(1)时,成为
t(1)=E(K’、R’、u1(1)、u2(1))
=E(K’、R’、E(K、S1<+>R(1))、E(K、S2<+>E(K、S1<+>R(1)))。
具体写出t(2)时,相对于t(1),仅u成分成为u(2)。
t(2)=E(K’、R’、u1(2)、u2(2))
=E(K’、R’、E(K、S1<+>R(2))、E(K、S2<+>E(K、S1<+>R(2))))。
发送部407向管理装置500发送检索加密数据T→和生成随机数即生成随机数R’。
以上是检索装置400中的具体例。
如利用图10的具体例说明的那样,加密部406通过能够进行隐匿检索的加密模式,按照随机数保管部402中保管的每个所述随机数Rj,使用随机数Rj对作为在要检索的数据的检索中使用的关键字的检索数据S进行加密,生成u(1) →、u(2) →等。然后,加密部406生成包含加密后的多个检索数据即u(1) →、u(2) →等的检索加密数据T→。加密部406使用由随机数生成部409生成的生成随机数R’对按照每个随机数R(j)使用该随机数R(j)加密后的检索数据u(1) →、u(2) →等分别进行加密,由此生成检索加密数据T→。
在S805中,管理装置500的接收部501从检索装置400接收检索加密数据T→。
在S806中,管理装置500的核对部504从数据保管部503中读出保管加密数据集合(ID(D)、C(D(j)))。另外,在S805中还接收到保管数据名的情况下,则核对部504根据该保管数据名,仅读出作为对象的保管加密数据集合。如果在S805中接收部501未接收到保管数据名,则读出保管着的全部保管加密数据集合即(ID(D)、C (D(1)))~(ID(D)、C(D(M)))。
在S807中,核对部504生成与检索结果有关的空集合I。
并且,核对部504从接收部501接收检索加密数据T→=(t(1)、...、t(M))。
在S807中,核对部504如下所述生成核对数据t’i。
下面,利用具体例进行说明。
管理装置500接收生成随机数R’、检索加密数据T→、保管加密数据集合(ID(D)、 C(D))、密钥K’和参数L。从检索装置400接收生成随机数R’和检索加密数据T→。从登记装置300接收保管加密数据集合(ID(D)、C(D))。从密钥生成装置200 接收密钥K’和参数L。管理装置500根据检索加密数据T→进行核对,输出检索结果。
设管理装置500接收到T→=(t(1)、t(2))和生成随机数R’。设管理装置500读出(ID(D)、C(D(1)))、(ID(D)、C(D(2)))这2个保管加密数据集合。
即,j=1、2。
(ID(D)、C(D(1)))是上述(ID(D)、C(Dj=1)),是C(Dj=1)={C1 →、 C2 →、C3 →}={(c1.1~c1.3)、(c2.2~c2.3)、(c3.3)}。
管理装置500根据检索加密数据T→=(t(1)、t(2)),如下所述进行核对。
针对C(D(1))={C1 →、C2 →、C3 →}的C1 →、C2 →、C3 →,计算以下的t’i。
一般而言,
t’i=E(K’、R’、Ci →)(式6)
在该例子中,按照每个C1 →、C2 →、C3 →生成t’i=。
即,
t’1=E(K’、R’、C1 →)、
t’2=E(K’、R’、C2 →)、
t’3=E(K’、R’、C3 →)。
根据S704的具体例,
C1 →=(c1.1、c1.2、c1.3)、
C2 →=(c2.2、c2.3)、
C3 →=(c3.3)。
由此,
t’1=E(K’、R’、C1 →)=E(K’、R’、c1.1、c1.2、c1.3)、
t’2=E(K’、R’、C2 →)=E(K’、R’、c2.2、c2.3)
t’3=E(K’、R’、C3 →)=E(K’、R’、c3.3)。
c1.1、c1.2等的值如在S803的说明中叙述的那样。
在上述式6中,在t’i中使用Ci →。即,在t’i的生成中使用Ci →的全部成分,但是,也可以使用Ci →的最后成分ci.L。该情况下,在S803中,以使用t(j)=E(K’、R’、uk(j)) 为前提。
在S808中,核对部504生成与检索结果有关的空集合I,确认在S807中生成的各核对数据ti(1≦i≦L)是否包含在检索加密数据T→中。针对各个核对数据t’i,如果核对数据t’i包含在检索加密数据T→中,则在空集合I中包含(ID(D)、i)。以上说明了C (D(1))的保管加密数据集合(j=1),但是,核对部504对全部保管加密数据集合(j=2~ M)进行该处理。
并且,将本处理的结果即根据初始的空集合I最终生成的集合I称作检索结果I。
在S809中,发送部505向检索装置400发送在S808中生成的检索结果I。
在S810中,检索装置400的接收部403接收在S809中发送的检索结果I。
在S811中,输出部408输出在S810中接收到的检索结果I。
通过S811,隐匿检索***100的检索处理结束。
<实施方式1的效果>
本实施方式发挥以下效果。
(1)在本实施方式中,即使在服务器中保管有相同的保管数据,也根据随机数 R生成每次必定不同的保管加密数据集合。因此,针对频率分析攻击的耐性提高,能够实现具有较高安全性的隐匿部分一致检索。
(2)在本实施方式中,检索加密数据仅由一个密文构成,因此,在检索中使用的数据大小非常小,并且,在检索时,仅产生一次数据检索者与服务器的交换,因此,能够高效地进行隐匿部分一致检索。
(3)在本实施方式中,在检索加密数据中使用生成随机数R’,因此,不容易进行频率分析攻击,频率分析攻击的耐性提高。
(4)在本实施方式中,对保管数据进行加密后进行保管,因此,即使保管加密数据集合从管理装置500泄露,也无法得知保管数据的内容。
(5)在本实施方式中,能够在不仅对检索数据而且对保管数据加密后的状态下进行处理,因此,不会根据检索加密数据得知检索数据的内容。
实施方式2
接着,对实施方式2进行说明。实施方式2与实施方式1相比,***结构和各装置的结构相同。如图9、图10所示,实施方式1使用CBC模式。实施方式2使用CTR模式 (CounterMode:计数模式)。
在实施方式1中,在登记装置300中,加密部307也可以进行以下动作。
(加密部307的动作)
加密部307从密钥保管部302中读出密钥K,使用由随机数生成部306生成的随机数R,如下所述生成密文C。
设保管数据D(1)被分割成(w1、...、wL)。
w1、...、wL是wi,i=1、2、...L。
加密部307针对(w1、...、wL),进行如下运算。
Ci=E(K、R+i-1)<+>wi(式7)
然后,加密部307生成保管加密数据集合(ID(D)、C(D(1)))。
这里,C(D(1))=(Ci、C2、..、CL)。
即,C(D(1))的成分的数量是保管数据的分割数。
图13示出通过CTR模式生成C1~C3的具体例。设保管数据D(1)被分割成(w1、 w2、w3)。
加密部307生成C(D(1))=(C1、C2、C3)。
这样,在C(D(1))中,
这里,
C1=E(K、R+0)<+>w1、
C2=E(K、R+1)<+>w2、
C3=E(K、R+2)<+>w3。
C1~C3对应于w1~w3。
即,Ci对应于wi。
(检索装置400的动作)
在使登记装置300的加密部307如上所述进行动作的情况下,检索装置400的加密部406进行以下动作。
(加密部406的动作)
图14是说明实施方式2的检索装置400的加密部406的动作的图。
参照图14进行说明。加密部406从密钥保管部404中读出密钥K,针对从输入部405接收到的检索数据S,如下所述使用密钥K生成密文t。
首先,对检索数据S进行分割,设为(S1、...、Sk)。
在图14中,分割成(S1、S2)。另外,与实施方式1同样,也可以不进行分割。
接着,加密部406从随机数保管部402中读出(j、Rj),生成u=(u1、...、uk)。
k是检索数据S的分割数。
如ui=E(K、R(j)+i-1)<+>Si那样计算一个一个的密文。i=1、...、k。
接着,加密部406取得随机数生成部409生成的一个生成随机数R’。
然后,加密部406针对j=1,计算t(1)=E(K’、R’、u1(j)、...、uk(j))。
在图14的例子中,计算t(1)=E(K’、R’、u1(1)、u2(1))。
这里,
u1(1)=E(K、R(1))<+>S1、
u2(1)=E(K、R(1)+1)<+>S2。
针对j=2,同样地,加密部406计算t(2)=E(K’、R’、u1(2)、u2(2))。
这里,
u1(2)=E(K、R(2))<+>S1、
u2(2)=E(K、R(2)+1)<+>S2。
加密部406生成检索加密数据T→(t(1)、t(2))。
发送部407向管理装置500发送索加密数据T→(t(1)、t(2))和生成随机数R’。
在使登记装置300的加密部307的动作和检索装置400的加密部406的动作如上所述进行动作的情况下,管理装置500的核对部504进行以下动作。
(核对部504的动作)
核对部504生成与检索结果有关的空集合I,从数据保管部503中读出全部保管加密数据集合(ID(D)、C(D(j)))。
核对部504根据接收到的检索加密数据T→=(t(1)、...、t(M)),如下所述进行核对并生成检索结果。
在该例子中,检索加密数据T→=(t(1)、t(2))。
下面,以上述C(D(1))=(C1、C2、C3)为例进行说明。
核对部504针对C(D(1))计算下述t’(j)。
在该例子中,j=1,因此,t’(j)=t’(1)。
计算下式。
t’(j)=E(K’、R’、C(D(j)))=E(K’、R’、C1、...、CL)(式8)
这里,C(D(1))的成分数为C1、...、CL这L个,但是,L是保管数据D(1)的分割数。
由此,在该例子中,t’(1)=E(K’、R’、C(D(1)))=E(K’、R’、C1、C2、C3)。
核对部504针对C(D(2))~C(D(M)),也进行与C(D(1))相同的处理。
核对部504针对各个t’(j)(j=1、2、...、M),如果t’(j)包含在检索加密数据T→中,则在I中包含(ID(D(j))、j)。
与实施方式1同样,将本处理的结果即最终生成的集合I称作检索结果I。
实施方式2与实施方式1相比,仅是使用的加密模式不同,因此,能够得到与实施方式1相同的效果。
另外,实施方式2的***结构、装置的功能和硬件结构也与实施方式1相同。不同之处在于加密模式。
实施方式1、实施方式2所示的密钥生成装置200、登记装置300、检索装置400和管理装置500的动作能够作为方法、程序来理解。作为加密装置的登记装置300通过加密程序进行动作。登记装置300的动作相当于加密方法。检索装置400通过检索程序进行动作。检索装置400的动作相当于检索方法。
标号说明
100:隐匿检索***;101:互联网;200:密钥生成装置;201:输入部;202:密钥生成部;203:发送部;300:登记装置;301:接收部;302:密钥保管部;303:参数保管部;304:输入部;305:数据分割部;306:随机数生成部;307:加密部; 308:发送部;309:随机数发送部;400:检索装置;401:随机数输入部;402:随机数保管部;403:接收部;404:密钥保管部;405:输入部;406:加密部;407:发送部;408:输出部;409:随机数生成部;500:管理装置;501:接收部;502:参数保管部;503:数据保管部;504:核对部;505:发送部。
Claims (12)
1.一种加密装置,其中,所述加密装置具有:
数据分割部,其将具有能够从开头起依次进行分割的数据构造的要检索的数据从开头起依次分割成第1个到第N个这N个要素数据;以及
加密部,其使用分割而成的N个要素数据,生成依次排列第1个到第N个要素数据的第1集合、依次排列第2个到第N个要素数据的第2集合、以下依次直到依次排列第N-1个到第N个要素数据的第N-1集合、由第N个要素数据构成的第N集合为止的这N个集合,使用随机数,通过作为能够进行隐匿检索的加密模式的CBC模式和作为能够进行隐匿检索的加密模式的CTR模式中的任意模式,对各集合中包含的各个要素数据进行加密。
2.根据权利要求1所述的加密装置,其中,
所述加密部使用随机数通过所述CBC模式对各集合中包含的各个要素数据进行加密,并且,在加密时,按照从所述第1集合到所述第N集合的每个集合,在所述CBC模式的第1段,运算所述随机数与所述集合最初的要素数据的异或,从所述CBC模式的第2段起,运算前段的输出值与前段在异或的运算中使用的要素数据的下一个要素数据的异或。
3.根据权利要求1所述的加密装置,其中,
所述加密部使用随机数通过所述CTR模式对各集合中包含的各个要素数据进行加密,并且,在加密时,按照从所述第1集合到所述第N集合的每个集合,在所述CTR模式的各个段中,对所述随机数与各个段中的计数值之和进行加密,并且,运算加密后的所述和的值与所述集合的要素数据的异或。
4.一种记录有加密程序的计算机能读取的记录介质,其中,所述加密程序使计算机执行以下处理:
数据分割部将具有能够从开头起依次进行分割的数据构造的要检索的数据从开头起依次分割成第1个到第N个这N个要素数据;以及
加密部使用分割而成的N个要素数据,生成依次排列第1个到第N个要素数据的第1集合、依次排列第2个到第N个要素数据的第2集合、以下依次直到依次排列第N-1个到第N个要素数据的第N-1集合、由第N个要素数据构成的第N集合为止的这N个集合,使用随机数,通过作为能够进行隐匿检索的加密模式的CBC模式和作为能够进行隐匿检索的加密模式的CTR模式中的任意模式,对各集合中包含的各个要素数据进行加密。
5.一种加密方法,该加密方法是由具有数据分割部和加密部的加密装置执行的,其中,
数据分割部将具有能够从开头起依次进行分割的数据构造的要检索的数据从开头起依次分割成第1个到第N个这N个要素数据;以及
加密部使用分割而成的N个要素数据,生成依次排列第1个到第N个要素数据的第1集合、依次排列第2个到第N个要素数据的第2集合、以下依次直到依次排列第N-1个到第N个要素数据的第N-1集合、由第N个要素数据构成的第N集合为止的这N个集合,使用随机数,通过作为能够进行隐匿检索的加密模式的CBC模式和作为能够进行隐匿检索的加密模式的CTR模式中的任意模式,对各集合中包含的各个要素数据进行加密。
6.一种检索装置,其中,所述检索装置具有:
随机数保管部,其保管有多个随机数;
随机数生成部;
加密部,其通过能够进行隐匿检索的加密模式,按照所述随机数保管部中保管的每个所述随机数,使用所述随机数对作为在要检索的数据的检索中使用的关键字的检索数据进行加密,使用由所述随机数生成部生成的生成随机数,对按照每个所述随机数使用所述随机数加密后的所述检索数据分别进行加密,生成包含通过所述生成随机数加密后的多个所述检索数据的检索加密数据;以及
发送部,其向管理装置发送所述检索加密数据,该管理装置具有按照与所述随机数保管部中保管的多个随机数相同的多个随机数中的每个随机数而使用该随机数加密后的多个加密数据。
7.根据权利要求6所述的检索装置,其中,
所述检索装置还具有检索数据取得部,该检索数据取得部取得所述检索数据,
所述随机数生成部按照由所述检索数据取得部取得的多个所述检索数据中的每个所述检索数据生成生成随机数,
所述加密部将由所述随机数生成部按照每个所述检索数据生成的生成随机数用于对应的所述检索数据的加密。
8.根据权利要求6或7所述的检索装置,其中,
所述加密部将所述检索数据分割成多个要素数据,作为所述检索数据的所述加密,按照每个所述随机数利用所述随机数对各要素数据进行加密。
9.根据权利要求6或7所述的检索装置,其中,
所述发送部成对地发送所述检索加密数据和在所述检索加密数据的生成中使用的所述生成随机数。
10.根据权利要求8所述的检索装置,其中,
所述发送部成对地发送所述检索加密数据和在所述检索加密数据的生成中使用的所述生成随机数。
11.一种记录有检索程序的计算机能读取的记录介质,其中,所述检索程序使计算机执行以下处理:
保管多个随机数;
生成随机数;
通过能够进行隐匿检索的加密模式,按照所保管的每个所述随机数,使用所述随机数对作为在要检索的数据的检索中使用的关键字的检索数据进行加密,使用通过生成随机数的所述处理而生成的生成随机数,对按照每个所述随机数使用所述随机数加密后的所述检索数据分别进行加密,生成包含通过所述生成随机数加密后的多个所述检索数据的检索加密数据;以及
向管理装置发送所述检索加密数据,该管理装置具有按照与所保管的多个随机数相同的多个随机数中的每个随机数而使用该随机数加密后的多个加密数据。
12.一种检索方法,该检索方法是由具有保管有多个随机数的随机数保管部、随机数生成部、加密部和发送部的检索装置执行的,其中,
随机数生成部生成随机数,
加密部通过能够进行隐匿检索的加密模式,按照所述随机数保管部中保管的每个所述随机数,使用所述随机数对作为在要检索的数据的检索中使用的关键字的检索数据进行加密,使用由所述随机数生成部生成的随机数即生成随机数,对按照每个所述随机数使用所述随机数加密后的所述检索数据分别进行加密,生成包含通过所述生成随机数加密后的多个所述检索数据的检索加密数据,
发送部向管理装置发送所述检索加密数据,该管理装置具有按照与所述随机数保管部中保管的多个随机数相同的多个随机数中的每个随机数而使用该随机数加密后的多个加密数据。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2016/051244 WO2017126000A1 (ja) | 2016-01-18 | 2016-01-18 | 暗号化装置、検索装置、暗号化プログラム、検索プログラム、暗号化方法及び検索方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108370312A CN108370312A (zh) | 2018-08-03 |
CN108370312B true CN108370312B (zh) | 2021-01-05 |
Family
ID=59362295
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201680074149.1A Active CN108370312B (zh) | 2016-01-18 | 2016-01-18 | 加密装置、检索装置、计算机能读取的记录介质、加密方法和检索方法 |
Country Status (5)
Country | Link |
---|---|
US (1) | US10673627B2 (zh) |
EP (1) | EP3373504B1 (zh) |
JP (1) | JP6289768B2 (zh) |
CN (1) | CN108370312B (zh) |
WO (1) | WO2017126000A1 (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107612897A (zh) * | 2017-09-07 | 2018-01-19 | 唐冬香 | 一种数据传输方法 |
WO2020136884A1 (ja) * | 2018-12-28 | 2020-07-02 | 三菱電機株式会社 | 秘匿検索システムおよび秘匿検索方法 |
KR102030785B1 (ko) * | 2019-04-26 | 2019-10-10 | 주식회사그린존시큐리티 | 의사난수를 이용한 IoT 디바이스의 데이터 난독화를 위한 장치 및 이를 위한 방법 |
CN114327371B (zh) * | 2022-03-04 | 2022-06-21 | 支付宝(杭州)信息技术有限公司 | 一种基于秘密分享的多键排序方法和*** |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101523496A (zh) * | 2006-10-16 | 2009-09-02 | 夏普株式会社 | 信息记录装置、信息再现装置、程序及记录介质 |
Family Cites Families (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5442699A (en) * | 1994-11-21 | 1995-08-15 | International Business Machines Corporation | Searching for patterns in encrypted data |
JP2002108910A (ja) | 2000-09-27 | 2002-04-12 | Nec Soft Ltd | 暗号化ファイルシステム及び暗号化ファイル検索方法並びにコンピュータ可読記録媒体 |
JP4011383B2 (ja) | 2002-04-04 | 2007-11-21 | Kddi株式会社 | データ検索方法、データ検索システム、検索キーワード生成装置、及びコンピュータプログラム |
JP2004201038A (ja) * | 2002-12-18 | 2004-07-15 | Internatl Business Mach Corp <Ibm> | データ記憶装置、これを搭載した情報処理装置及びそのデータ処理方法並びにプログラム |
US7512814B2 (en) * | 2004-11-09 | 2009-03-31 | Fortiva Inc. | Secure and searchable storage system and method |
JP5432736B2 (ja) | 2010-01-18 | 2014-03-05 | 日本電信電話株式会社 | 暗号化された情報のためのキーワード検索システム、キーワード検索方法、検索要求装置、検索代行装置、プログラム、記録媒体 |
JP5411034B2 (ja) | 2010-03-19 | 2014-02-12 | 株式会社日立ソリューションズ | データベース暗号化システム及び方法 |
JP5412414B2 (ja) * | 2010-12-08 | 2014-02-12 | 株式会社日立製作所 | 検索可能暗号処理システム |
US8429421B2 (en) * | 2010-12-17 | 2013-04-23 | Microsoft Corporation | Server-side encrypted pattern matching |
JP5486519B2 (ja) | 2011-01-20 | 2014-05-07 | 日本電信電話株式会社 | 検索システム、判定装置、ベクトル構成装置、その方法及びプログラム |
JP5442161B2 (ja) | 2011-02-22 | 2014-03-12 | 三菱電機株式会社 | 検索システム、検索システムの検索方法、情報処理装置、検索プログラム、対応キーワード管理装置および対応キーワード管理プログラム |
JP5667969B2 (ja) | 2011-12-22 | 2015-02-12 | 株式会社日立製作所 | 検索処理システムおよび部分一致検索方法 |
JP5670365B2 (ja) | 2012-01-26 | 2015-02-18 | 日本電信電話株式会社 | 暗号文検索システム、検索情報生成装置、検索実行装置、検索要求装置、暗号文検索方法、検索情報生成方法、検索実行方法、検索要求方法、およびプログラム |
US20130238646A1 (en) * | 2012-03-06 | 2013-09-12 | Evrichart, Inc. | Partial-Match Searches of Encrypted Data Sets |
JP5255154B1 (ja) | 2012-12-26 | 2013-08-07 | 株式会社エアー | 部分一致検索の可能な暗号システム |
JP6144992B2 (ja) | 2013-08-08 | 2017-06-07 | 株式会社日立製作所 | 検索可能暗号処理システム及び方法 |
US9489501B2 (en) * | 2013-09-19 | 2016-11-08 | Fujitsu Limited | Authentication method, authentication device, and system |
-
2016
- 2016-01-18 WO PCT/JP2016/051244 patent/WO2017126000A1/ja unknown
- 2016-01-18 CN CN201680074149.1A patent/CN108370312B/zh active Active
- 2016-01-18 EP EP16886243.1A patent/EP3373504B1/en active Active
- 2016-01-18 US US15/774,498 patent/US10673627B2/en active Active
- 2016-01-18 JP JP2017546744A patent/JP6289768B2/ja active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101523496A (zh) * | 2006-10-16 | 2009-09-02 | 夏普株式会社 | 信息记录装置、信息再现装置、程序及记录介质 |
Non-Patent Citations (1)
Title |
---|
Practical Techniques for Searches on Encrypted Data;Dawn Xiaodong Song等;《IEEE》;20000514;全文 * |
Also Published As
Publication number | Publication date |
---|---|
EP3373504B1 (en) | 2019-09-11 |
JPWO2017126000A1 (ja) | 2018-01-25 |
WO2017126000A1 (ja) | 2017-07-27 |
EP3373504A4 (en) | 2018-09-12 |
EP3373504A1 (en) | 2018-09-12 |
JP6289768B2 (ja) | 2018-03-07 |
US20190260583A1 (en) | 2019-08-22 |
US10673627B2 (en) | 2020-06-02 |
CN108370312A (zh) | 2018-08-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Amjad et al. | Forward and backward private searchable encryption with SGX | |
CN107077469B (zh) | 服务器装置、检索***、终端装置以及检索方法 | |
Salam et al. | Implementation of searchable symmetric encryption for privacy-preserving keyword search on cloud storage | |
US10872158B2 (en) | Secret search system, secret search method, and computer readable medium | |
CN111587452B (zh) | 登记装置、检索操作装置、数据管理装置和计算机能读取的存储介质 | |
CN108370312B (zh) | 加密装置、检索装置、计算机能读取的记录介质、加密方法和检索方法 | |
US20190036679A1 (en) | Encryption device, encryption method, computer readable medium, and storage device | |
JP6632780B2 (ja) | データ処理装置、データ処理方法及びデータ処理プログラム | |
JP2012248940A (ja) | データ生成装置、データ生成方法、データ生成プログラム及びデータベースシステム | |
JP6672451B2 (ja) | 暗号化検索インデックスマージサーバ、暗号化検索インデックスマージシステム、及び暗号化検索インデックスマージ方法 | |
US11902418B2 (en) | Registration device, search operation device, and data management device | |
JP7016458B2 (ja) | 秘匿検索システム、秘匿検索方法、及び、秘匿検索プログラム | |
JP6918253B2 (ja) | 秘匿検索システムおよび秘匿検索方法 | |
Mallaiah et al. | Word and Phrase Proximity Searchable Encryption Protocols for Cloud Based Relational Databases | |
US20130036474A1 (en) | Method and Apparatus for Secure Data Representation Allowing Efficient Collection, Search and Retrieval | |
WO2023137506A1 (en) | The bastionne blockchain |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
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 |