首页> 中国专利> 登记装置、检索操作装置、数据管理装置、登记程序、检索操作程序以及数据管理程序

登记装置、检索操作装置、数据管理装置、登记程序、检索操作程序以及数据管理程序

摘要

登记装置(500)受理明文、具有参照所述明文的权限的利用者的属性信息、以及在生成用于生成检索查询的用户密钥时使用的登记密钥。所述登记装置通过汇集所述属性信息中包含的多个属性值而生成示出1个以上的汇集值的汇集信息。所述登记装置通过将所述汇集信息中包含的各汇集值泛化,生成示出针对各汇集值的多个泛化值的泛化信息。所述登记装置使用所述明文、所述属性信息、所述泛化信息以及所述登记密钥,生成包含加密后的所述明文的密文数据。所述登记装置将所述密文数据登记于数据库。

著录项

  • 公开/公告号CN114945963A

    专利类型发明专利

  • 公开/公告日2022-08-26

    原文格式PDF

  • 申请/专利权人 三菱电机株式会社;

    申请/专利号CN202080091858.7

  • 申请日2020-01-14

  • 分类号G09C1/00(2006.01);

  • 代理机构北京三友知识产权代理有限公司 11127;

  • 代理人孙明浩

  • 地址 日本东京都

  • 入库时间 2023-06-19 16:31:45

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2022-09-13

    实质审查的生效 IPC(主分类):G09C 1/00 专利申请号:2020800918587 申请日:20200114

    实质审查的生效

说明书

技术领域

本公开涉及隐匿检索技术。

背景技术

隐匿检索是对加密数据在加密的状态下进行检索的技术。

即,隐匿检索是不对加密数据解密而进行检索的技术。

近年来,隐匿检索作为用于在云服务中保护机密信息不被服务器管理者窃听的安全技术而受到关注。

即,隐匿检索作为用于在因特网中管理数据的安全技术而受到关注。

作为隐匿检索方式,存在公共密钥方式和公开密钥方式这2个种类。

在公共密钥方式中,利用共通加密密钥技术,限定登记者和检索者。

在公开密钥方式中,利用公开密钥加密技术,限定检索者但不限定登记者。

专利文献1公开了多用户型的公共密钥方式。

在多用户型的公共密钥方式中,登记者使用各检索者的私密密钥对数据进行加密。在所登记的加密数据中附加有加密标签。在加密标签中能够嵌入关键字和检索权限。

例如,仅能够由检索者A检索这样的权限被嵌入到加密标签中。此外,检索者B使用自身的私密密钥和检索关键字而生成检索查询。在该情况下,检索者B不具有检索权限,因此,即便检索者B的检索查询中的检索关键字与加密标签中的关键字相同,也得不到加密数据作为检索结果。

现有技术文献

专利文献

专利文献1:国际公开第2019/142651号

发明内容

发明要解决的问题

在多用户型的公共密钥方式中,存在针对多个合法用户的合谋攻击的脆弱性这样的问题。

例如,如果合法用户X和合法用户Y合谋,则能够使用合法用户X的私密密钥SK_X和合法用户Y的SK_Y双方。在该情况下,能够生成可对合法用户X或合法用户Y应该无法单独检索的加密数据进行检索的私密密钥。具体而言,可能通过总务科的科长和人事科的担当者合谋,生成人事科的科长的私密密钥。

本公开的目的在于,提高多用户型的公共密钥方式的安全性。

用于解决问题的手段

本公开的登记装置具备:受理部,其受理明文、属性信息以及登记密钥,该属性信息示出识别具有参照所述明文的权限的利用者的多个属性的多个属性值,该登记密钥与在生成用于生成检索查询的用户密钥时使用的密钥相同;汇集信息生成部,其通过汇集所述属性信息中包含的多个属性值而生成汇集信息,该汇集信息示出分别由1个以上的属性值构成的1个以上的汇集值;泛化信息生成部,其针对所述汇集信息中包含的各汇集值,生成多个由代替汇集值中的零个以上的属性值的零个以上的通配符和汇集值中的剩余的属性值构成的泛化值,并生成泛化信息,该泛化信息示出针对所述汇集信息中包含的各汇集值的多个泛化值;密文数据生成部,其使用所述明文、所述属性信息、所述泛化信息以及所述登记密钥,生成包含加密后的所述明文的密文数据;加密标签生成部,其使用与所述明文相关的关键字、所述属性信息、所述泛化信息以及所述登记密钥,生成包含加密后的所述关键字的加密标签;以及登记部,其将所述密文数据与所述加密标签的组登记于数据库。

发明的效果

根据本公开,汇集具有参照明文的权限的利用者的多个属性值,基于1个以上的汇集值,生成密文数据和加密标签。

由此,能够提高针对多个合法用户的合谋攻击的耐性。即,能够提高多用户型的公共密钥方式的安全性。

附图说明

图1是实施方式1中的隐匿检索系统100的结构图。

图2是实施方式1中的主密钥装置200的结构图。

图3是实施方式1中的登记密钥装置300的结构图。

图4是实施方式1中的用户密钥装置400的结构图。

图5是实施方式1中的登记装置500的结构图。

图6是实施方式1中的检索操作装置600的结构图。

图7是实施方式1中的数据管理装置700的结构图。

图8是实施方式1中的隐匿检索方法的流程图。

图9是实施方式1中的主密钥生成(S120)的流程图。

图10是实施方式1中的登记密钥生成(S130)的流程图。

图11是实施方式1中的用户密钥生成(S140)的流程图。

图12是示出实施方式1中的属性信息的一例的图。

图13是示出实施方式1中的汇集信息的一例的图。

图14是实施方式1中的数据登记(S150)的流程图。

图15是示出实施方式1中的登记数据库791的图。

图16是实施方式1中的检索操作(S160)的流程图。

图17是实施方式1中的步骤S173的流程图。

图18是实施方式1中的步骤S176的流程图。

图19是实施方式1中的数据检索(S170)的流程图。

图20是实施方式1中的数据删除(S180)的流程图。

图21是实施方式1中的主密钥装置200的硬件结构图。

图22是实施方式1中的登记密钥装置300的硬件结构图。

图23是实施方式1中的用户密钥装置400的硬件结构图。

图24是实施方式1中的登记装置500的硬件结构图。

图25是实施方式1中的检索操作装置600的硬件结构图。

图26是实施方式1中的数据管理装置700的硬件结构图。

具体实施方式

在实施方式和附图中,针对相同的要素或对应的要素标注相同的标号。适当省略或简化标注了与已经说明的要素相同的标号的要素的说明。图中的箭头主要示出数据流或者处理的流程。

实施方式1.

基于图1至图26,对通过多用户型的公共密钥方式进行隐匿检索的方式进行说明。

***结构的说明***

基于图1,对隐匿检索系统100的结构进行说明。

隐匿检索系统100具备主密钥装置200、登记密钥装置300、用户密钥装置400、登记装置500、检索操作装置600、以及数据管理装置700。

隐匿检索系统100的各装置经由网络101相互进行通信。

基于图2对主密钥装置200的结构进行说明。

主密钥装置200是具备处理器201、存储器202、辅助存储装置203、输入输出接口204以及通信装置205这样的硬件的计算机。这些硬件经由信号线相互连接。

处理器201是进行运算处理的IC,对其他的硬件进行控制。例如,处理器201是CPU、DSP或GPU。

IC是Integrated Circuit(集成电路)的简称。

CPU是Central Processing Unit(中央处理单元)的简称。

DSP是Digital Signal Processor(数字处理器)的简称。

GPU是Graphics Processing Unit(图形处理单元)的简称。

存储器202是易失性或非易失性的存储装置。存储器202也称为主存储装置或主存储器。例如,存储器202是RAM。存储器202所存储的数据根据需要而保存于辅助存储装置203。

RAM是Random Access Memory的简称。

辅助存储装置203是非易失性的存储装置。例如,辅助存储装置203是ROM、HDD或者闪存。辅助存储装置203所存储的数据根据需要被加载到存储器202中。

ROM是Read Only Memory(只读存储器)的简称。

HDD是Hard Disk Drive(硬盘驱动器)的简称。

输入输出接口204是与输入装置及输出装置连接的端口。例如,输入输出接口204是USB端子,输入装置是键盘和鼠标,输出装置是显示器。

USB是Universal Serial Bus(通用串行总线)的简称。

通信装置205是接收器和发射器。例如,通信装置205是通信芯片或NIC。

NIC是Network Interface Card(网络接口卡)的简称。

主密钥装置200具备受理部210、生成部220以及输出部230这样的要素。这些要素由软件实现。

在辅助存储装置203中,存储有用于使计算机作为受理部210、生成部220以及输出部230发挥功能的主密钥程序。主密钥程序被加载到存储器202中,由处理器201执行。

在辅助存储装置203中还存储有OS。OS的至少一部分被加载到存储器202中,由处理器201执行。

处理器201一边执行OS,一边执行主密钥程序。

OS是Operating System(操作系统)的简称。

主密钥程序的输入输出数据被存储在存储部290中。

辅助存储装置203作为存储部290发挥功能。但是,存储器202、处理器201内的寄存器以及处理器201内的高速缓冲存储器等存储装置也可以代替辅助存储装置203或者与辅助存储装置203一起作为存储部290发挥功能。

主密钥装置200也可以具备代替处理器201的多个处理器。多个处理器分担处理器201的功能。

主密钥程序能够以计算机可读取的方式记录(存储)在光盘或闪存等非易失性的记录介质中。

基于图3对登记密钥装置300的结构进行说明。

登记密钥装置300是具备处理器301、存储器302、辅助存储装置303、输入输出接口304以及通信装置305这样的硬件的计算机。这些硬件经由信号线相互连接。

处理器301是进行运算处理的IC,对其他硬件进行控制。例如,处理器301是CPU、DSP或GPU。

存储器302是易失性或非易失性的存储装置。存储器302也称为主存储装置或主存储器。例如,存储器302是RAM。存储器302所存储的数据根据需要被保存于辅助存储装置303。

辅助存储装置303是非易失性的存储装置。例如,辅助存储装置303是ROM、HDD或者闪存。辅助存储装置303所存储的数据根据需要被加载到存储器302中。

输入输出接口304是与输入装置及输出装置连接的端口。例如,输入输出接口304是USB端子,输入装置是键盘和鼠标,输出装置是显示器。

通信装置305是接收器和发射器。例如,通信装置305是通信芯片或NIC。

登记密钥装置300具备受理部310、生成部320以及输出部330这样的要素。这些要素由软件实现。

在辅助存储装置303中,存储有用于使计算机作为受理部310、生成部320以及输出部330发挥功能的登记密钥程序。登记密钥程序被加载到存储器302中,由处理器301执行。

在辅助存储装置303中还存储有OS。OS的至少一部分被加载到存储器302中,由处理器301执行。

处理器301一边执行OS,一边执行登记密钥程序。

登记密钥程序的输入输出数据被存储在存储部390中。

辅助存储装置303作为存储部390发挥功能。但是,存储器302、处理器301内的寄存器以及处理器301内的高速缓冲存储器等存储装置也可以代替辅助存储装置303或者与辅助存储装置303一起作为存储部390发挥功能。

登记密钥装置300也可以具备代替处理器301的多个处理器。多个处理器分担处理器301的功能。

登记密钥程序能够以计算机可读取的方式记录(存储)于光盘或闪存等非易失性的记录介质。

基于图4,对用户密钥装置400的结构进行说明。

用户密钥装置400是具备处理器401、存储器402、辅助存储装置403、输入输出接口404以及通信装置405这样的硬件的计算机。这些硬件经由信号线相互连接。

处理器401是进行运算处理的IC,对其他硬件进行控制。例如,处理器401是CPU、DSP或GPU。

存储器402是易失性或非易失性的存储装置。存储器402也称为主存储装置或主存储器。例如,存储器402是RAM。存储器402所存储的数据根据需要被保存于辅助存储装置403。

辅助存储装置403是非易失性的存储装置。例如,辅助存储装置403是ROM、HDD或闪存。辅助存储装置403所存储的数据根据需要被加载到存储器402中。

输入输出接口404是与输入装置及输出装置连接的端口。例如,输入输出接口404是USB端子,输入装置是键盘和鼠标,输出装置是显示器。

通信装置405是接收器和发射器。例如,通信装置405是通信芯片或NIC。

用户密钥装置400具备受理部410、生成部420以及输出部430这样的要素。

生成部420具备汇集信息生成部421和用户密钥生成部422这样的要素。

这些要素由软件实现。

在辅助存储装置403中,存储有用于使计算机作为受理部410、生成部420以及输出部430发挥功能的用户密钥程序。用户密钥程序被加载到存储器402中,由处理器401执行。

在辅助存储装置403中还存储有OS。OS的至少一部分被加载到存储器402中,由处理器401执行。

处理器401一边执行OS,一边执行用户密钥程序。

用户密钥程序的输入输出数据被存储在存储部490中。

辅助存储装置403作为存储部490发挥功能。但是,存储器402、处理器401内的寄存器以及处理器401内的高速缓冲存储器等存储装置也可以代替存储器402或者与存储器402一起作为存储部490发挥功能。

用户密钥装置400也可以具备代替处理器401的多个处理器。多个处理器分担处理器401的功能。

用户密钥程序能够以计算机可读取的方式记录(存储)于光盘或闪存等非易失性的记录介质。

基于图5对登记装置500的结构进行说明。

登记装置500是具备处理器501、存储器502、辅助存储装置503、输入输出接口504以及通信装置505这样的硬件的计算机。这些硬件经由信号线相互连接。

处理器501是进行运算处理的IC,对其他硬件进行控制。例如,处理器501是CPU、DSP或GPU。

存储器502是易失性或非易失性的存储装置。存储器502也称为主存储装置或主存储器。例如,存储器502是RAM。存储器502所存储的数据根据需要被保存于辅助存储装置503。

辅助存储装置503是非易失性的存储装置。例如,辅助存储装置503是ROM、HDD或闪存。辅助存储装置503所存储的数据根据需要被加载到存储器502中。

输入输出接口504是与输入装置及输出装置连接的端口。例如,输入输出接口504是USB端子,输入装置是键盘和鼠标,输出装置是显示器。

通信装置505是接收器和发射器。例如,通信装置505是通信芯片或NIC。

登记装置500具备受理部510、生成部520以及登记部530这样的要素。

生成部520具备随机数生成部521、汇集信息生成部522、泛化信息生成部523、密文数据生成部524、关键字生成部525以及加密标签生成部526这样的要素。

这些要素由软件实现。

在辅助存储装置503中,存储有用于使计算机作为受理部510、生成部520以及登记部530发挥功能的登记程序。登记程序被加载到存储器502中,由处理器501执行。

在辅助存储装置503中还存储有OS。OS的至少一部分被加载到存储器502中,由处理器501执行。

处理器501一边执行OS,一边执行登记程序。

登记程序的输入输出数据被存储在存储部590中。

辅助存储装置503作为存储部590发挥功能。但是,存储器502、处理器501内的寄存器以及处理器501内的高速缓冲存储器等存储装置也可以代替存储器502或者与存储器502一起作为存储部590发挥功能。

登记装置500也可以具备代替处理器501的多个处理器。多个处理器分担处理器501的功能。

登记程序能够以计算机可读取的方式记录(存储)于光盘或闪存等非易失性的记录介质。

基于图6对检索操作装置600的结构进行说明。

检索操作装置600是具备处理器601、存储器602、辅助存储装置603、输入输出接口604以及通信装置605这样的硬件的计算机。这些硬件经由信号线相互连接。

处理器601是进行运算处理的IC,对其他硬件进行控制。例如,处理器601是CPU、DSP或GPU。

存储器602是易失性或非易失性的存储装置。存储器602也称为主存储装置或主存储器。例如,存储器602是RAM。存储器602所存储的数据根据需要被保存于辅助存储装置603。

辅助存储装置603是非易失性的存储装置。例如,辅助存储装置603是ROM、HDD或闪存。辅助存储装置603所存储的数据根据需要被加载到存储器602中。

输入输出接口604是与输入装置及输出装置连接的端口。例如,输入输出接口604是USB端子,输入装置是键盘和鼠标,输出装置是显示器。

通信装置605是接收器和发射器。例如,通信装置605是通信芯片或NIC。

检索操作装置600具备受理部610、生成部620、请求部630、解密部640以及输出部650这样的要素。

生成部620具备汇集标志生成部621、位置信息生成部622以及检索查询生成部623这样的要素。

解密部640具备汇集标志生成部641、位置信息生成部642以及检索结果解密部643这样的要素。

这些要素由软件实现。

在辅助存储装置603中,存储有用于使计算机作为受理部610、生成部620、请求部630、解密部640以及输出部650发挥功能的检索操作程序。检索操作程序被加载到存储器602中,由处理器601执行。

在辅助存储装置603中,还存储有OS。OS的至少一部分被加载到存储器602中,由处理器601执行。

处理器601一边执行OS,一边执行检索操作程序。

检索操作程序的输入输出数据被存储在存储部690中。

辅助存储装置603作为存储部690发挥功能。但是,存储器602、处理器601内的寄存器以及处理器601内的高速缓冲存储器等存储装置也可以代替辅助存储装置603或者与辅助存储装置603一起作为存储部690发挥功能。

检索操作装置600也可以具备代替处理器601的多个处理器。多个处理器分担处理器601的功能。

检索操作程序能够以计算机可读取的方式记录(存储)于光盘或闪存等非易失性的记录介质。

基于图7对数据管理装置700的结构进行说明。

数据管理装置700是具备处理器701、存储器702、辅助存储装置703、输入输出接口704以及通信装置705这样的硬件的计算机。这些硬件经由信号线相互连接。

处理器701是进行运算处理的IC,对其他硬件进行控制。例如,处理器701是CPU、DSP或GPU。

存储器702是易失性或非易失性的存储装置。存储器702也称为主存储装置或主存储器。例如,存储器702是RAM。存储器702所存储的数据根据需要被保存于辅助存储装置703。

辅助存储装置703是非易失性的存储装置。例如,辅助存储装置703是ROM、HDD或闪存。辅助存储装置703所存储的数据根据需要被加载到存储器702中。

输入输出接口704是与输入装置及输出装置连接的端口。例如,输入输出接口704是USB端子,输入装置是键盘和鼠标,输出装置是显示器。

通信装置705是接收器和发射器。例如,通信装置705?是通信芯片或NIC。

数据管理装置700具备受理部710、检索部720、输出部730以及管理部740这样的要素。

检索部720具备对照部721和提取部722这样的要素。

这些要素由软件实现。

在辅助存储装置703中,存储有用于使计算机作为受理部710、检索部720以及输出部730发挥功能的数据管理程序。数据管理程序被加载到存储器702中,由处理器701执行。

在辅助存储装置703中,还存储有OS。OS的至少一部分被加载到存储器702中,由处理器701执行。

处理器701一边执行OS,一边执行数据管理程序。

数据管理程序的输入输出数据被存储在存储部790中。

辅助存储装置703作为存储部790发挥功能。但是,存储器702、处理器701内的寄存器以及处理器701内的高速缓冲存储器等存储装置也可以代替辅助存储装置703或者与辅助存储装置703一起作为存储部790发挥功能。

数据管理装置700也可以具备代替处理器701的多个处理器。多个处理器分担处理器701的功能。

数据管理程序能够以计算机可读取的方式记录(存储)于光盘或闪存等非易失性的记录介质。

***动作的说明***

隐匿检索系统100的动作的步骤相当于隐匿检索方法。

基于图8对隐匿检索方法的概要进行说明。

在步骤S101中,主密钥装置200生成主密钥MK。

在步骤S102中,登记密钥装置300使用主密钥MK生成登记密钥EK。

在步骤S103中,用户密钥装置400使用登记密钥EK生成用户密钥UK。

在步骤S111中,登记装置500使用登记密钥EK生成密文数据C与加密标签CT的组,将生成的组登记于数据库。

密文数据C是通过对明文M进行加密而生成的。

加密标签CT是通过对用于检索密文数据C的关键字进行加密而生成的。关键字不会从加密标签CT泄漏。

在数据库中,登记有多个密文数据C与加密标签CT的组。

在步骤S112中,检索操作装置600使用用户密钥UK生成检索查询SQ。

检索查询SQ通过使用用户密钥UK并将指定的关键字随机化而生成。

在步骤S113中,检索操作装置600通过向数据管理装置700发送检索查询SQ而请求检索。

数据管理装置700接收检索查询SQ,通过特殊的运算来检索与检索查询SQ一致的加密标签CT。

在特殊的运算中,不对各加密标签CT进行解密,对检索查询SQ的关键字与各加密标签CT的关键字进行比较。

在步骤S114中,数据管理装置700通过向检索操作装置600发送与和检索查询SQ一致的加密标签CT对应的密文数据C而响应检索结果。

检索操作装置600接收密文数据C,使用用户密钥UK从密文数据C解密明文M。

基于图9对主密钥生成(S120)进行说明。

主密钥生成(S120)是由主密钥装置200执行的处理。

在步骤S121中,受理部210受理密钥长度BIT。

例如,受理部210经由输入输出接口204受理向主密钥装置200输入的密钥长度BIT。受理部210也可以从在主密钥装置200中执行的应用程序受理密钥长度BIT。

密钥长度BIT是主密钥MK的比特长度。

在步骤S122中,生成部220生成主密钥MK。

具体而言,生成部220生成具有与密钥长度BIT相同的长度的随机的比特串。所生成的比特串是主密钥MK。

例如,在密钥长度BIT为256比特的情况下,生成部220生成256比特的随机的比特串。由此,得到256比特的主密钥MK。

在步骤S123中,生成部220将主密钥MK存储于存储部290。由此,主密钥MK被保管在存储部290中。

在步骤S124中,输出部230输出主密钥MK。

例如,输出部230使用通信装置205,向登记密钥装置300发送主密钥MK。

基于图10对登记密钥生成(S130)进行说明。

登记密钥生成(S130)是由登记密钥装置300执行的处理。

在步骤S131中,受理部310受理主密钥MK。

例如,受理部310使用通信装置305,从主密钥装置200接收主密钥MK。受理部310也可以经由输入输出接口304受理向登记密钥装置300输入的主密钥MK。

在步骤S132中,生成部320使用主密钥MK,生成数据密钥DK和标签密钥TK。

具体而言,生成部320将主密钥MK作为输入而执行函数F_1,由此生成2个随机数。各随机数是随机的比特串。

函数F_1的一例是伪随机函数。

伪随机函数是加密的函数,当决定了密钥时,根据输入值确定地返回随机数。

函数F_1也可以是SHA-1这样的加密的哈希函数或者AES这样的公共密钥加密方式的函数。

通过函数F_1而生成的2个随机数中的一方的随机数是数据密钥DK。数据密钥DK能够如下那样表示。

DK=F_1(MK,1)

通过函数F_1而生成的2个随机数中的另一方的随机数是标签密钥TK。标签密钥TK能够如下那样表示。

TK=F_1(MK,2)

将数据密钥DK与标签密钥TK的组称为“登记密钥EK”。登记密钥EK能够如下那样表示。

EK=(DK,TK)

在步骤S133中,生成部320将登记密钥EK存储于存储部390。由此,登记密钥EK被保管在存储部390中。

在步骤S134中,输出部330输出登记密钥EK。

例如,输出部330使用通信装置305,向用户密钥装置400和登记装置500分别发送登记密钥EK。

基于图11对用户密钥生成(S140)进行说明。

用户密钥生成(S140)是由用户密钥装置400执行的处理。

在步骤S141中,受理部410受理登记密钥EK。

例如,受理部410使用通信装置405,从登记密钥装置300接收登记密钥EK。受理部410也可以经由输入输出接口404受理向用户密钥装置400输入的登记密钥EK。

然后,受理部410将登记密钥EK存储于存储部490。由此,登记密钥EK被保管在存储部490中。

在登记密钥EK已经被保管于存储部490的情况下,不需要步骤S141。

登记密钥EK具有数据密钥DK和标签密钥TK。

在步骤S142中,受理部410受理属性信息A。

例如,受理部410经由输入输出接口404受理向用户密钥装置400输入的属性信息A。受理部410也可以从在用户密钥装置400中执行的应用程序受理属性信息A。

属性信息A是检索者的属性信息。

检索者是检索操作装置600的利用者,对密文C′进行检索。

利用者具有形成阶层的多个属性。

属性信息示出与多个属性对应的多个属性值。

各属性值识别各层中的利用者的属性。

基于图12对属性信息的例子进行说明。

属性信息示出与4个层对应的4个属性值。

第1层的属性(第1属性)是事业部。

第2层的属性(第2属性)是部。

第3层的属性(第3属性)是科。

第4层的属性(第4属性)是姓名。

第1个属性信息是Ne先生/女士的属性信息。Ne先生/女士属于Di事业部的De部的Sc科。

第2个属性信息是Nf先生/女士的属性信息。Nf先生/女士属于Di事业部的De部的Sd科。

第3个属性信息是Sc科员的属性信息。Sc科员属于Di事业部的De部的Sc科。第4属性值是通配符“*”,因此,姓名不被限定。

第4个属性信息是De部员的属性信息。De部员属于Di事业部的De部。第3属性值和第4属性值是通配符“*”,因此,科和姓名不被限定。

返回图11,继续说明步骤S142。

将用于表现利用者的属性的阶层的层数记作“L”。L是2以上的整数。

属性信息示出L个属性值。

属性信息A能够如下那样表示。

A=(A_1,……,A_L)

属性信息A涉及检索和解密的权限控制。

具体而言,使用基于属性信息A的数据,来设定检索权限和解密权限。

属性信息A也可以是检索权限用的属性信息和解密权限用的属性信息这2个属性信息。

在步骤S143中,汇集信息生成部421将属性信息A所包含的多个属性值汇集为1组以上的块(block)。由此,生成汇集信息A′。

汇集信息A′是汇集后的属性信息A。

汇集信息A′的各块由1个以上的属性值构成。

将汇集信息A′的各块所示的值称为汇集值。

基于图13,对汇集属性信息(参照图12)而得到的汇集信息的例子进行说明。“|”是表示连结的记号。

汇集信息的第1要素是连结了第1属性与第2属性的要素。

汇集信息的第2要素是连结了第3属性与第4属性的要素。

第1个汇集信息是Ne先生/女士的汇集信息。

Ne先生/女士的属性信息(参照图12)是(Di、De、Sc、Ne)。

Ne先生/女士的汇集信息(参照图13)是(Di|De、Sc|Ne)。

第1属性值Di和第2属性值De通过连结而汇集为1个字符串Di|De。

第3属性值Sc和第4属性值Ne通过连结而汇集为1个字符串Sc|Ne。

其他的汇集信息也与第1个汇集信息同样地被表现。

返回图11,继续说明步骤S142。

将用于表现利用者的属性的阶层的汇集后的层数记作“k”。k是1以上的整数。

汇集信息示出k个汇集值。

汇集值是汇集1个以上的属性值而得到的值。具体而言,汇集值是连结1个以上的属性值而得到的字符串。

汇集信息A′能够如下那样表示。m是1以上的整数。i_1、……、i_m是正整数。

A′=(A′_1,……,A′_k)

A′_i=A_(i_1)|A_(i_2)|……|A_(i_m)

i_1<……<i_m、以及i_1+1=i_2、i_2+1=i_3、……、i_(m-1)+1=i_m、i_m+1=(i+1)_1成立。

这里,将图12中的第1个属性信息称为属性信息A。

此外,将图13中的第1个汇集信息称为汇集信息A1′。

汇集信息A1′能够如下那样表示。

A1′=(A1′_1,A1′_2)=(A1_1|A1_2,A1_3|A1_4)=(Di|De,Sc|Ne)

对汇集方法没有制约。但是,在隐匿检索系统100中,使用1个汇集方法。即,用户密钥装置400和其他的装置使用相同的汇集方法。

在步骤S144中,用户密钥生成部422使用数据密钥DK、属性信息A以及汇集信息A′,生成用户数据密钥UDK。数据密钥DK包含在登记密钥EK中。

用户数据密钥UDK具有数据属性密钥UDK_i和标志值Db_j。

i是1以上且k以下的整数。j是1以上且L以下的整数。

用户密钥生成部422如以下那样计算数据属性密钥UDK_i。

首先,用户密钥生成部422连结汇集值A′_i与编号i。将得到的比特串所表示的值称为连结值A′_i|i。

然后,用户密钥生成部422将数据密钥DK和连结值A′_i|i作为输入而执行函数F_2。得到的值是数据属性密钥UDK_i。

函数F_2与函数F_1同样地是伪随机函数、哈希函数或公共密钥加密方式的函数。

用户密钥生成部422如以下那样决定标志值Db_j。

用户密钥生成部422判定属性值A_j是否为通配符“*”。

在属性值A_j是通配符“*”的情况下,标志值Db_j是1。

在属性值A_j不是通配符“*”的情况下,标志值Db_j是0。

标志值Db_j表示属性值A_j是否为通配符“*”。

用户数据密钥UDK能够如下那样表示。i是1以上且k以下的整数。j是1以上且L以下的整数。

UDK=(UDK_1,……,UDK_k、Db_1,……,Db_L)

在为A_j=*的情况下,Db_j=1

在为A_j≠*的情况下,Db_j=0

UDK_i=F_2(DK,A′_i|i)

在步骤S145中,用户密钥生成部422使用标签密钥TK、属性信息A以及汇集信息A′,生成用户标签密钥UTK。标签密钥TK包含在登记密钥EK中。

用户标签密钥UTK具有标签属性密钥UTK_i和标志值Tb_j。

i是1以上且k以下的整数。j是1以上且L以下的整数。

用户密钥生成部422如以下那样计算标签属性密钥UTK_i。

首先,用户密钥生成部422连结汇集值A′_i与编号i。将得到的比特串所表示的值称为连结值A′_i|i。

然后,用户密钥生成部422将标签密钥TK和连结值A′_i|i作为输入而执行函数F_2。得到的值是标签属性密钥UTK_i。

用户密钥生成部422如以下那样决定标志值Tb_j。

用户密钥生成部422判定属性值A_j是否为通配符“*”。

在属性值A_j是通配符“*”的情况下,标志值Tb_j是1。

在属性值A_j不是通配符“*”的情况下,标志值Tb_j是0。

标志值Tb_j表示属性值A_j是否为通配符“*”。

用户标签密钥UTK能够如下那样表示。i是1以上且k以下的整数。j是1以上且L以下的整数。

UTK=(UTK_1,……,UTK_k,Tb_1,……,Tb_L)

在为A_j=*的情况下,Tb_j=1

在为A_j≠*的情况下,Tb_j=0

UTK_i=F_2(TK,A′_i|i)

将用户数据密钥UDK和用户标签密钥UTK的组称为“用户密钥UK”。用户密钥UK能够如下那样表示。

UK=(UDK,UTK)

在步骤S146中,生成部420将用户密钥UK存储于存储部490。由此,用户密钥UK被保管在存储部490中。

在步骤S147中,输出部430输出用户密钥UK。

例如,输出部430使用通信装置405,向检索操作装置600发送用户密钥UK。

基于图14对数据登记(S150)进行说明。

数据登记(S150)是由登记装置500执行的处理。

在步骤S151中,受理部510受理登记密钥EK。

例如,受理部510使用通信装置505,从登记密钥装置300接收登记密钥EK。受理部510也可以经由输入输出接口504受理向登记装置500输入的登记密钥EK。

然后,受理部510将登记密钥EK存储于存储部590。由此,登记密钥EK被保管在存储部590中。

在登记密钥EK已经保管于存储部590的情况下,不需要步骤S151。

登记密钥EK具有数据密钥DK和标签密钥TK。

在步骤S152中,受理部510受理明文M和属性信息B。

例如,受理部510经由输入输出接口504受理向登记装置500输入的明文M和属性信息B。受理部510也可以从在登记装置500中执行的应用程序受理明文M和属性信息B。

明文M是未加密的数据。

在明文M中包含文件名File(M)作为元数据。

属性信息B是权限者的属性信息。

权限者是检索操作装置600的利用者的一部分,具有参照明文M的权限。

例如,属性信息B是图12所示的属性信息。

属性信息B能够如下那样表示。

B=(B_1,……,B_L)

属性信息B与属性信息A同样地涉及检索和解密的权限控制。

在步骤S153中,随机数生成部521生成数据随机数组r=(r_1,……,r_k,rs)和标签随机数组R=(R_1,……,R_k,RS)。

数据随机数组r和标签随机数组R分别由(k+1)个随机数构成。各随机数都是均匀地被随机生成。

在步骤S154中,汇集信息生成部522将属性信息B所包含的多个属性值汇集成1组以上的块。由此,生成汇集信息B′。

汇集信息B′是汇集后的属性信息B。

汇集信息B′的各块由1个以上的属性值构成。

将汇集信息B′的各块所示的值称为汇集值。

汇集信息B′用的汇集方法与汇集信息A′用的汇集方法(参照图11的步骤S143)相同。

例如,汇集信息B′是图13所示的汇集信息。

汇集信息B′能够如以下那样表示。m是1以上的整数。i_1、……、i_m是正整数。

B′=(B′_1,……,B′_k)

B′_i=B_(i_1)|B_(i_2)|……|B_(i_m)

i_1<……<i_m、以及i_1+1=i_2、i_2+1=i_3、……、i_(m-1)+1=i_m、i_m+1=(i+1)_1成立。

在步骤S155中,泛化信息生成部523使用通配符将汇集信息B′所包含的各汇集值泛化。由此,生成泛化信息B^。

泛化信息B^示出针对各汇集值的多个泛化值。

泛化值由代替汇集值中的零个以上的属性值的零个以上的通配符和汇集值中的剩余的属性值构成。

具体而言,泛化信息生成部523针对汇集信息B′所包含的第i个汇集值B′_i,如以下那样生成Ii个泛化值B′_i^。

B′_i^0=B′_i

=B_(i_1)|B_(i_2)|……|B_(i_m)

B′_i^1=*|B_(i_2)|……|B_(i_m)

B′_i^2=B_(i_1)|*|B_(i_3)|……|B_(i_m)

B′_i^3=*|*|B_(i_3)|……|B_(i_m)

B′_i^4=B_(i_1)|B_(i_2)|*|B_(i_4)|……|B_(i_m)

……

B′_i^Ii=*|*|……|*

Ii=2

这里,将图13中的第1个汇集信息称为汇集信息B′。

此外,将汇集信息B′所包含的第1汇集值称为汇集值B′_1

针对汇集值B′_1,生成以下的4个泛化值B′_1^。

B′_1^0=B′_1=Di|De

B′_1^1=*|De

B′_1^2=Di|*

B′_1^3=*|*

这里,将汇集信息B′所包含的第2汇集值称为汇集值B′_2。

针对汇集值B′_2,生成以下的4个泛化值B′_2^。

B′_2^0=B′_2=Sc|Ne

B′_2^1=*|Ne

B′_2^2=Sc|*

B′_2^3=*|*

返回图14,从步骤S156继续进行说明。

在步骤S156中,密文数据生成部524使用数据密钥DK、明文M、属性信息B、泛化信息B^以及数据随机数组r,生成密文数据C。数据密钥DK包含在登记密钥EK中。

密文数据C具有属性要素C_{i,h}、随机数要素C_rs以及密文C′。

i是1以上且k以下的整数。h是0以上且2

密文数据生成部524如以下那样计算属性要素C_{i,h}。

首先,密文数据生成部524将泛化信息B^所包含的泛化值B′_i^h与编号i连结。将得到的比特串所表示的值称为连结值B′_i^h|i。

接着,密文数据生成部524将数据密钥DK和连结值B′_i^h|i作为输入而执行函数F_2。将得到的值称为函数值(DK,B′_i^h|i)。

接着,密文数据生成部524将函数值(DK,B′_i^h|i)和数据随机数组r所包含的随机数rs作为输入而执行函数F_3。将得到的值称为函数值(DK,B′_i^h|i,rs)。

函数F_3与函数F_1及函数F_2同样地是伪随机函数、哈希函数或公共密钥加密方式的函数。

然后,密文数据生成部524计算函数值(DK,B′_i^h|i,rs)与数据随机数组r所包含的随机数r_i的异或。得到的值是属性要素C_{i,j}。

密文数据生成部524将数据随机数组r所包含的随机数rs设定为随机数要素C_rs。

密文数据生成部524如以下那样计算密文C′。

首先,密文数据生成部524计算数据随机数组r所包含的k个随机数(r_1,……,r_k)的异或。将得到的值称为随机数和r+。

接着,密文数据生成部524将随机数和r+作为输入而执行函数F_4。将得到的值称为函数值(r+)。

函数F_4与函数F_3同样地是伪随机函数、哈希函数或公共密钥加密方式的函数。

然后,密文数据生成部524计算函数值(r+)与明文M的异或。得到的值是密文C′。

密文C′是加密后的明文M。

密文数据C能够如以下那样表示。但是,在实施方式1中,(+)是指异或(XOR)。i是1以上且k以下的整数。m是1以上的整数。

C=((C_{1,0},C_{1,1},……,C_{1,I1}),(C_{2,0},C_{2,1},……,C_{2,I2}),……,(C_{k,0},C_{k,1},……,C_{k,Ik}),C_rs,C′)

C_{i,h}=F_3(F_2(DK,B′_i^h|i),rs)(+)r_i

C_rs=rs

C′=F_4(r_1(+)……(+)r_k)(+)M

Ii=2

在步骤S157中,关键字生成部525生成与明文M相关的关键字。

具体而言,关键字生成部525通过对明文M进行词素解析或自然语言处理等,从明文M中提取关键字。

但是,关键字生成部525也可以经由输入输出接口504受理向登记装置500输入的关键字。此外,关键字生成部525也可以从在登记装置500中执行的应用程序受理与明文M相关的关键字。

将与明文M相关的关键字称为“登记关键字W”。

登记关键字W也可以具有多个。在具有多个登记关键字W的情况下,针对各登记关键字W生成加密标签CT。

在步骤S158中,加密标签生成部526使用标签密钥TK、属性信息B、泛化信息B^、标签随机数组R以及登记关键字W,生成加密标签CT。标签密钥TK包含在登记密钥EK中。

加密标签CT具有属性要素CT_{i,h}、随机数要素CT_RS以及验证要素CT_V。

i是1以上且k以下的整数。h是0以上且2

加密标签生成部526如以下那样计算属性要素CT_{i,h}。

首先,加密标签生成部526将泛化信息B^所包含的泛化值B′_i^h与编号i连结。将得到的比特串所表示的值称为连结值B′_i^h|i。

接着,加密标签生成部526将标签密钥TK和连结值B′_i^h|i作为输入而执行函数F_2。将得到的值称为函数值(TK,B′_i^h|i)。

接着,加密标签生成部526将函数值(TK,B′_i^h|i)和登记关键字W作为输入而执行函数F_5。将得到的值称为函数值(TK,B′_i^h|i,W)。

函数F_5与函数F_1及函数F_2同样地是伪随机函数、哈希函数或公共密钥加密方式的函数。

接着,加密标签生成部526将函数值(TK,B′_i^h|i,W)和标签随机数组R所包含的随机数RS作为输入而执行函数F_6。将得到的值称为函数值(TK,B′_i^h|i,W,RS)。

函数F_6与函数F_5同样地是伪随机函数、哈希函数或公共密钥加密方式的函数。

然后,加密标签生成部526计算函数值(TK,B′_i^h|i,W,RS)与标签随机数组R所包含的随机数R_i的异或。得到的值是属性要素CT_{i,h}。

加密标签生成部526将标签随机数组R所包含的随机数RS设定为随机数要素CT_RS。

加密标签生成部526如以下那样计算验证要素CT_V。

首先,加密标签生成部526计算标签随机数组R所包含的k个随机数(R_1,……,R_k)的异或。将得到的值称为随机数和R+。

然后,加密标签生成部526将随机数和R+作为输入而执行函数F_6。得到的值是验证要素CT_V。

函数F_7与函数F_6同样地是伪随机函数、哈希函数或公共密钥加密方式的函数。

加密标签CT能够如以下那样表示。但是,在实施方式1中,(+)是指异或(XOR)。i是1以上且k以下的整数。m是1以上的整数。

CT=((CT_{1,0},CT_{1,1},……,CT_{1,I1}),(CT_{2,0},CT_{2,1},……,CT_{2,I2}),……,(CT_{k,0},CT_{k,1},……,CT_{k,Ik}),CT_RS,CT_V)

CT_{i,h}=F_6(F_5(F_2(TK,B′_i^h|i),W),RS)(+)R_i

CT_RS=RS

CT_V=F_7(R_1(+)……(+)R_k)

Ii=2

在步骤S159中,登记部530将文件名File(M)、密文数据C以及加密标签CT的组登记于数据管理装置700的登记数据库791。

将文件名File(M)、密文数据C以及加密标签CT的组称为“隐匿检索数据”。

基于图15对登记数据库791进行说明。

登记数据库791是用于检索的数据库,存储在数据管理装置700的存储部790中。

在登记数据库791中,登记有文件名File(M)、密文数据C以及加密标签CT的组(隐匿检索数据)。

返回图14,继续说明步骤S159。

隐匿检索数据如以下那样被登记。

登记部530使用通信装置505,向数据管理装置700发送隐匿检索数据。在数据管理装置700中,受理部710接收隐匿检索数据,管理部740将隐匿检索数据登记于登记数据库791。

由此,文件名File(M)、密文数据C以及加密标签CT相互对应地被保管。

基于图16对检索操作(S160)进行说明。

检索操作(S160)是由检索操作装置600执行的处理。

在步骤S161中,受理部610受理用户密钥UK。

例如,受理部610使用通信装置605,从用户密钥装置400接收用户密钥UK。受理部610也可以经由输入输出接口604受理向检索操作装置600输入的用户密钥UK。

然后,受理部610将用户密钥UK存储于存储部690。由此,用户密钥UK被保管在存储部690中。

在用户密钥UK已经保管于存储部690的情况下,不需要步骤S161。

用户密钥UK具有用户数据密钥UDK和用户标签密钥UTK。

在步骤S162中,受理部610受理检索关键字w。

例如,受理部610经由输入输出接口604受理向检索操作装置600输入的检索关键字w。受理部610也可以从在检索操作装置600中执行的应用程序受理检索关键字w。

在步骤S163中,生成部620使用用户标签密钥UTK和检索关键字w,生成检索查询SQ。用户标签密钥UTK包含在用户密钥UK中。

用户标签密钥UTK如以下那样具有k个标签属性密钥{UTK_1,……,UTK_k}和L个标志值{Tb_1,……,Tb_L}。

UTK=(UTK_1,……,UTK_k,Tb_1,……,Tb_L)

将L个标志值{Tb_1,……,Tb_L}称为标志信息Tb。

基于图17对步骤S163的步骤进行说明。

在步骤S1631中,汇集标志生成部621将标志信息Tb所包含的多个标志值汇集为1组以上的块。由此,生成汇集标志Tb′。

汇集标志Tb′是汇集后的标志信息Tb。

汇集标志Tb′的各块由1个以上的标志值构成。

将汇集标志Tb′的各块所示的值称为汇集值。

汇集标志Tb′用的汇集方法与汇集信息A′(参照图11的步骤S143)及汇集信息B′(参照图14的步骤S154)用的汇集方法相同。

汇集标志Tb′能够如以下那样表示。m是1以上的整数。i_1、……、i_m是正整数。

Tb′=(Tb′_1,……,Tb′_k)

Tb′_i=(Tb_(i_1)|Tb_(i_2)|……|Tb_(i_m)

i_1<……<i_m、以及i_1+1=i_2、i_2+1=i_3、……、i_(m-1)+1=i_m、i_m+1=(i+1)_1成立。

汇集标志Tb′具有k个汇集值Tb′_i。

例如,与第1个汇集信息(参照图13)对应的汇集标志Tb1′能够如以下那样表示。

Tb1′=(Tb1′_1,Tb1′_2)=(Tb1_1|Tb1_2,Tb1_3|Tb1_4)=(0|0,0|0)

例如,与第3个汇集信息(参照图13)对应的汇集标志Tb3′能够如以下那样表示。

Tb3′=(Tb3′_1,Tb3′_2)=(Tb3_1|Tb3_2,Tb3_3|Tb3_4)=(0|0,0|1)

例如,与第4个汇集信息(参照图13)对应的汇集标志Tb4′能够如以下那样表示。

Tb4′=(Tb4′_1,Tb4′_2)=(Tb4_1|Tb4_2,Tb4_3|Tb4_4)=(0|0,1|1)

在步骤S1632中,位置信息生成部622使用汇集标志Tb′,生成检索位置信息SP。

检索位置信息SP是确定加密标签CT所包含的多个属性要素CT_中的在检索时使用的1个以上的属性要素CT_{i,h}的信息。

具体而言,检索位置信息SP示出1组以上的整数(i,h)。

检索位置信息SP能够如以下那样表示。

SP=((1,SP1),……,(k,SPk))

SP_i=Tb′_(i_1)×2

例如,与第1个汇集信息(参照图13)对应的汇集标志Tb1′能够如以下那样表示。

Tb1′=(Tb1′_1,Tb1′_2)=(Tb1_1|Tb1_2,Tb1_3|Tb1_4)=(0|0,0|0)

在该情况下,与汇集标志Tb1′对应的检索位置信息SP1能够如以下那样表示。

SP1=(SP1_1,SP1_2)

SP1_1=0×2

SP1_2=0×2

例如,与第3个汇集信息(参照图13)对应的汇集标志Tb3′能够如以下那样表示。

Tb3′=(Tb3′_1,Tb3′_2)=(Tb3_1|Tb3_2,Tb3_3|Tb3_4)=(0|0,0|1)

在该情况下,与汇集标志Tb3′对应的检索位置信息SP3能够如以下那样表示。

SP3=(SP3_1,SP3_2)

SP3_1=0×2

SP3_2=0×2

例如,与第4个汇集信息(参照图13)对应的汇集标志Tb4′能够如以下那样表示。

Tb4′=(Tb4′_1,Tb4′_2)=(Tb4_1|Tb4_2,Tb4_3|Tb4_4)=(0|0,1|1)

在该情况下,与汇集标志Tb4′对应的检索位置信息SP4能够如以下那样表示。

SP4=(SP4_1,SP4_2)

SP4_1=0×2

SP4_2=1×2

在步骤S1633中,检索查询生成部623使用标签属性密钥UTK_i、检索关键字w以及检索位置信息SP,生成检索查询SQ。

检索查询SQ具有属性关键字要素SQ_i和检索位置要素SQP_i。

检索查询生成部623如以下那样计算属性关键字要素SQ_i。

检索查询生成部623将标签属性密钥UTK_i和检索关键字w作为输入而执行函数F_5。得到的值是属性关键字要素SQ_i。

属性关键字要素SQ_i是加密后的检索关键字w(加密关键字)。

检索查询生成部623如以下那样计算检索位置要素SQP_i。

检索查询生成部623从检索位置信息SP中提取第i个要素SP_i。所提取的要素SP_i是检索位置要素SQP_i。

检索查询SQ能够如以下那样表示。i是1以上且k以下的整数。

SQ=((SQ_1,SQP_1),……,(SQ_k,SQP_k))

SQ_i=F_5(UTK_i,w)

SQP_i=SP_i

返回图16,从步骤S164开始继续说明。

在步骤S164中,请求部630使用通信装置605,向数据管理装置700发送检索查询SQ。

在步骤S165中,请求部630使用通信装置605,从数据管理装置700接收加密检索结果{C}。

加密检索结果{C}是与检索查询SQ一致的密文数据C的集合。

在加密检索结果{C}不具有密文数据C的情况下,即,在使用了检索查询SQ的检索中不存在命中的密文数据C的情况下,不需要步骤S166。

在步骤S166中,解密部640使用用户数据密钥UDK,根据加密检索结果{C}对检索结果{M}进行解密。用户数据密钥UDK包含在用户密钥UK中。

检索结果{M}是与检索查询SQ一致的明文M的集合。

用户数据密钥UDK如以下那样具有k个数据属性密钥{UDK_1,……,UDK_k}和L个标志值{Db_1,……,Db_L}。

UDK=(UDK_1,……,UDK_k,Db_1,……,Db_L)

将L个标志值{Db_1,……,Db_L}称为标志信息Db。

基于图18对步骤S166的顺序进行说明。

在步骤S1661中,汇集标志生成部641将标志信息Db所包含的多个标志值汇集为1组以上的块。由此,生成汇集标志Db′。

汇集标志Db′是汇集后的标志信息Db。

汇集标志Db′的各块由1个以上的标志值构成。

将汇集标志Db′的各块所示的值称为汇集值。

汇集标志Db′用的汇集方法与汇集标志Tb′(参照图17的步骤S1631)相同。

汇集标志Db′能够如以下那样表示。m是1以上的整数。i_1、……、i_m是正整数。

Db′=(Db′_1,……,Db′_k)

Db′_i=(Db_(i_1)|Db_(i_2)|……|Db_(i_m)

i_1<……<i_m、以及i_1+1=i_2、i_2+1=i_3、……、i_(m-1)+1=i_m、i_m+1=(i+1)_1成立

汇集标志Db′具有k个汇集值Db′_i。

在步骤S1662中,位置信息生成部642使用汇集标志Db′,生成解密位置信息DP。

解密位置信息DP是确定密文数据C所包含的多个属性要素C_中的在解密时使用的属性要素C_{i,h}的信息。

具体而言,解密位置信息DP示出1组以上的整数(i、h)。

解密位置信息DP能够如以下那样表示。

DP=((1,DP_1),……,(k,DP_k))

DP_i=Db′_(i_1)×2

在步骤S1663中,检索结果解密部643使用用户数据密钥UDK和解密位置信息DP,根据加密检索结果{C}对检索结果{M}进行解密。

具体而言,检索结果解密部643根据加密检索结果{C}的各密文数据C对明文M进行解密。

解密部640根据各密文数据C如以下那样对明文M进行解密。

首先,解密部640将用户数据密钥UDK所包含的数据属性密钥UDK_i和密文数据C所包含的随机数要素C_rs作为输入而执行函数F_3。将得到的值称为函数值(UDK_i,C_rs)。

接着,解密部640从密文数据C中选择k个属性要素(C_{1,DP_1},……,C_{k,DP_k})。DP_i是包含在解密位置信息DP中的值。

接着,解密部640计算函数值(UDK_i,C_rs)与属性要素C_{i,DP_i}的异或。将得到的值称为提取随机数r_i^。

接着,解密部640计算k个提取随机数(r_1^,……,r_k^)的异或。将得到的值称为随机数和r^+。

接着,解密部640将随机数和r^+作为输入而执行函数F_4。将得到的值称为函数值(r^+)。

然后,解密部640计算函数值(r^+)与密文数据C所包含的密文C′的异或。得到的值是明文M。

明文M能够如以下那样表示。i是1以上且k以下的整数。

M=F_4(r_1^(+)……(+)r_k^)(+)C′

r_i^=F_3(UDK_i,C_rs)(+)C_{i,DP_i}

返回图16对步骤S167进行说明。

在步骤S167中,输出部650输出检索结果{M}。

例如,输出部650经由输入输出接口604将检索结果{M}显示于显示器。

在由于加密检索结果{C}不具有密文数据C而没有执行步骤S166的情况下,得不到检索结果{M}。

在得不到检索结果{M}的情况下,输出部650代替输出检索结果{M}而输出检索错误消息。

检索错误消息示出在隐匿检索中不存在命中的明文M。

基于图19对数据检索(S170)进行说明。

数据检索(S170)是由数据管理装置700执行的处理。

在步骤S171中,受理部710使用通信装置705,从检索操作装置600接收检索查询SQ。

在步骤S172中,对照部721通过将检索查询SQ与各加密标签CT进行对照来选择与检索查询SQ一致的加密标签CT。

将与检索查询SQ一致的各加密标签CT称为“相应加密标签CT”。

具体而言,对照部721如以下那样将检索查询SQ与各加密标签CT进行对照。

首先,对照部721从加密标签CT中选择k个属性要素(CT_{1、SQP_1},……,CT_{k,SQP_k})。SQP_i是检索查询SQ所包含的要素。

接着,对照部721将检索查询SQ所包含的属性关键字要素SQ_i和加密标签CT所包含的随机数要素CT_RS作为输入而执行函数F_6。将得到的值称为函数值(SQ_i,CT_RS)。

接着,对照部721计算函数值(SQ_i,CT_RS)与属性要素CT_{i,SQP_i}的异或。将得到的值称为提取随机数R_i^。

接着,对照部721计算k个提取随机数(R_1^,……,R_k^)的异或。将得到的值称为随机数和R^+。

接着,对照部721将随机数和R^+作为输入而执行函数F_7。将得到的值称为函数值(R^+)。

然后,对照部721将函数值(R^+)与加密标签CT所包含的验证要素CT_V进行比较。

函数值(R^+)与验证要素CT_V的一致是指,嵌入到加密标签CT的登记关键字W与属性信息A一致,并且,嵌入到检索查询SQ的检索关键字w与属性信息B一致。

具有与函数值(R^+)一致的验证要素CT_V的加密标签CT是相应加密标签CT。

验证式能够如以下那样表示。i是1以上且k以下的整数。

CT_V=F_7(R_1^(+)……(+)R_k^)

R_i^=F_6(SQ_i,CT_RS)(+)CT_{i,SQP_i}

在步骤S173中,提取部722提取与各相应加密标签CT对应的密文数据C。将所提取的密文数据C称为相应密文数据C。

在步骤S174中,输出部730使用通信装置705,向检索操作装置600发送加密检索结果{C}。

加密检索结果{C}是相应密文数据C的集合。

基于图20对数据删除(S180)进行说明。

数据删除(S180)是由登记装置500和数据管理装置700执行的处理。但是,也可以代替登记装置500而由检索操作装置600进行动作。

在步骤S181中,登记装置500的受理部510受理删除文件名。例如,通过检索操作(S160)而得到的明文M中的文件名File(M)被用作删除文件名。

例如,受理部510经由输入输出接口504受理向登记装置500输入的删除文件名。受理部510也可以从在登记装置500中执行的应用程序受理删除文件名。

但是,也可以检索操作装置600的受理部610受理删除文件名。

在步骤S182中,登记装置500的登记部550使用通信装置505,向数据管理装置700发送删除文件名。

但是,也可以是,检索操作装置600的输出部650使用通信装置605,向数据管理装置700发送删除文件名。

在步骤S183中,数据管理装置700的受理部710使用通信装置705,接收删除文件名。

在步骤S184中,数据管理装置700的管理部740从登记数据库791删除与删除文件名对应的隐匿检索数据。

与删除文件名对应的隐匿检索数据具有与删除文件名相同的文件名File(M)。

***实施方式1的效果***

根据实施方式1,起到如下效果。

能够不将密文解密而进行关键字检索。

能够按照利用者的每个属性信息而生成不同的密钥。因此,能够构成多用户型的公共密钥方式。

能够使用利用者的密钥对密文的解密权限进行控制。由于难以分离密钥所包含的属性信息,因此,能够提高针对多个合法用户的合谋攻击的耐性。即,能够提高多用户型的公共密钥方式的安全性。

在将属性信息中的多个属性值汇集为几个块之后生成密钥。由此,能够将密钥的长度抑制成不与属性信息成比例。

通过生成检索位置信息和解密位置信息,能够使检索和解密高效化。

根据实施方式1,起到如下效果。

用户密钥装置400对将属性信息汇总为若干部分而向量化的数据(汇集信息、泛化信息)进行不可逆转换,生成用户密钥。

登记装置500使用该用户密钥,生成密文数据和加密标签。

检索操作装置600使用该用户密钥,生成检索查询。

由此,针对合谋攻击,提高了多用户型的公共密钥方式的安全性。

***实施方式的补充***

基于图21,对主密钥装置200的硬件结构进行说明。

主密钥装置200具备处理电路209。

处理电路209是实现受理部210、生成部220以及输出部230的硬件。

处理电路209可以是专用的硬件,也可以是执行存储于存储器202的程序的处理器201。

在处理电路209是专用的硬件的情况下,处理电路209例如是单一电路、复合电路、程序化的处理器、并行程序化的处理器、ASIC、FPGA或者它们的组合。

ASIC是Application Specific Integrated Circuit(专用集成电路)的简称。

FPGA是Field Programmable Gate Array(现场可编程门阵列)的简称。

主密钥装置200也可以具备代替处理电路209的多个处理电路。多个处理电路分担处理电路209的功能。

在处理电路209中,也可以由专用的硬件实现一部分功能,由软件或固件实现剩余的功能。

这样,主密钥装置200的功能能够通过硬件、软件、固件或者它们的组合来实现。

基于图22,对登记密钥装置300的硬件结构进行说明。

登记密钥装置300具备处理电路309。

处理电路309是实现受理部310、生成部320以及输出部330的硬件。

处理电路309可以是专用的硬件,也可以是执行存储于存储器302的程序的处理器301。

在处理电路309是专用的硬件的情况下,处理电路309例如是单一电路、复合电路、程序化的处理器、并行程序化的处理器、ASIC、FPGA或者它们的组合。

登记密钥装置300也可以具备代替处理电路309的多个处理电路。多个处理电路分担处理电路309的功能。

在处理电路309中,也可以由专用的硬件实现一部分功能,由软件或固件实现剩余的功能。

这样,登记密钥装置300的功能能够通过硬件、软件、固件或者它们的组合来实现。

基于图23对用户密钥装置400的硬件结构进行说明。

用户密钥装置400具备处理电路409。

处理电路409是实现受理部410、生成部420以及输出部430的硬件。

处理电路409可以是专用的硬件,也可以是执行存储于存储器402的程序的处理器401。

在处理电路409是专用的硬件的情况下,处理电路409例如是单一电路、复合电路、程序化的处理器、并行程序化的处理器、ASIC、FPGA或者它们的组合。

用户密钥装置400也可以具备代替处理电路309的多个处理电路。多个处理电路分担处理电路409的功能。

在处理电路409中,也可以由专用的硬件实现一部分功能,由软件或固件实现剩余的功能。

这样,用户密钥装置400的功能能够通过硬件、软件、固件或者它们的组合来实现。

基于图24对登记装置500的硬件结构进行说明。

登记装置500具备处理电路509。

处理电路509是实现受理部510、生成部520以及登记部530的硬件。

处理电路509可以是专用的硬件,也可以是执行存储于存储器502的程序的处理器501。

在处理电路509是专用的硬件的情况下,处理电路509例如是单一电路、复合电路、程序化的处理器、并行程序化的处理器、ASIC、FPGA或者它们的组合。

登记装置500也可以具备代替处理电路509的多个处理电路。多个处理电路分担处理电路509的功能。

在处理电路509中,也可以由专用的硬件实现一部分功能,由软件或固件实现剩余的功能。

这样,登记装置500的功能能够通过硬件、软件、固件或者它们的组合来实现。

基于图25对检索操作装置600的硬件结构进行说明。

检索操作装置600具备处理电路609。

处理电路609是实现受理部610、生成部620、请求部630、解密部640以及输出部650的硬件。

处理电路609可以是专用的硬件,也可以是执行存储于存储器602的程序的处理器601。

在处理电路609是专用的硬件的情况下,处理电路609例如是单一电路、复合电路、程序化的处理器、并行程序化的处理器、ASIC、FPGA或者它们的组合。

检索操作装置600也可以具备代替处理电路609的多个处理电路。多个处理电路分担处理电路609的功能。

在处理电路609中,也可以由专用的硬件实现一部分功能,由软件或固件实现剩余的功能。

这样,检索操作装置600的功能能够通过硬件、软件、固件或者它们的组合来实现。

基于图26对数据管理装置700的硬件结构进行说明。

数据管理装置700具备处理电路709。

处理电路709是实现受理部710、检索部720、输出部730以及管理部740的硬件。

处理电路709可以是专用的硬件,也可以是执行存储于存储器702的程序的处理器701。

在处理电路709是专用的硬件的情况下,处理电路709例如是单一电路、复合电路、程序化的处理器、并行程序化的处理器、ASIC、FPGA或者它们的组合。

数据管理装置700也可以具备代替处理电路709的多个处理电路。多个处理电路分担处理电路709的功能。

在处理电路709中,也可以由专用的硬件实现一部分功能,由软件或固件实现剩余的功能。

这样,数据管理装置700的功能能够通过硬件、软件、固件或者它们的组合来实现。

各实施方式是优选方式的例示,并非意在限制本公开的技术范围。各实施方式可以部分地实施,也可以与其他方式组合来实施。使用流程图等说明的步骤也可以适当变更。

作为在实施方式中说明的各装置的要素的“部”也可以替换为“处理”或“步骤”。

附图标记说明

100隐匿检索系统,101网络,200主密钥装置,201处理器,202存储器,203辅助存储装置,204输入输出接口,205通信装置,209处理电路,210受理部,220生成部,230输出部,290存储部,300登记密钥装置,301处理器,302存储器,303辅助存储装置,304输入输出接口,305通信装置,309处理电路,310受理部,320生成部,330输出部,390存储部,400用户密钥装置,401处理器,402存储器,403辅助存储装置,404输入输出接口,405通信装置,409处理电路,410受理部,420生成部,421汇集信息生成部,422用户密钥生成部,430输出部,490存储部,500登记装置,501处理器,502存储器,503辅助存储装置,504输入输出接口,505通信装置,509处理电路,510受理部,520生成部,521随机数生成部,522汇集信息生成部,523泛化信息生成部,524密文数据生成部,525关键字生成部,526加密标签生成部,530登记部,590存储部,600检索操作装置,601处理器,602存储器,603辅助存储装置,604输入输出接口,605通信装置,609处理电路,610受理部,620生成部,621汇集标志生成部,622位置信息生成部,623检索查询生成部,630请求部,640解密部,641汇集标志生成部,642位置信息生成部,643检索结果解密部,650输出部,690存储部,700数据管理装置,701处理器,702存储器,703辅助存储装置,704输入输出接口,705通信装置,709处理电路,710受理部,720检索部,721对照部,722提取部,730输出部,740管理部,790存储部,791登记数据库。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号