JP6584723B2 - 検索装置、検索システム、検索方法及び検索プログラム - Google Patents

検索装置、検索システム、検索方法及び検索プログラム Download PDF

Info

Publication number
JP6584723B2
JP6584723B2 JP2019514916A JP2019514916A JP6584723B2 JP 6584723 B2 JP6584723 B2 JP 6584723B2 JP 2019514916 A JP2019514916 A JP 2019514916A JP 2019514916 A JP2019514916 A JP 2019514916A JP 6584723 B2 JP6584723 B2 JP 6584723B2
Authority
JP
Japan
Prior art keywords
search
data
digit
unit
group
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
Application number
JP2019514916A
Other languages
English (en)
Other versions
JPWO2018198192A1 (ja
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
Application granted granted Critical
Publication of JP6584723B2 publication Critical patent/JP6584723B2/ja
Publication of JPWO2018198192A1 publication Critical patent/JPWO2018198192A1/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/903Querying
    • G06F16/90335Query processing
    • G06F16/90348Query processing by searching ordered data, e.g. alpha-numerically ordered data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/903Querying
    • G06F16/9032Query formulation
    • G06F16/90324Query formulation using system suggestions
    • G06F16/90328Query formulation using system suggestions using search space presentation or visualization, e.g. category or range presentation and selection
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services

Landscapes

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

Description

本発明は、データの検索に関する。
インターネット等のソースから収集したデータの中から、必要なデータを効率的に得るためのシステムとして検索システムがある。検索システムでは、検索時間の削減や検索結果の正確性の向上を目的として、収集したデータをデータベースに登録する時に検索を補助する情報がデータに付与されることがある。
例えば、特許文献1には、必要な文書を見つけやすくする検索システム及び検索方法が開示されている。
より具体的には、特許文献1の技術では、文書を構成するテキストが複数のブロックに分割される。また、各ブロックのハッシュ値が位置情報と共にテキストに付与され、テキストとハッシュ値と位置情報が登録される。そして、検索時に位置情報とハッシュ値を基にして文書が検索される。
また、特許文献2及び特許文献3には、キーワード列を検索ファイルから取り出す方法が開示されている。
より具体的には、特許文献2及び特許文献3の技術では、検索対象となるキーワード列が文字ごとに分解される。また、各文字の位置情報及びキーワードの属性情報が文字種ごとにグループ化された検索ファイルが生成される。そして、検索時に検索入力を構成する文字の位置情報を検索ファイルから取り出して照合することで、検索入力と文字順序が等しくかつキーワードの属性情報が同じキーワード列が検索ファイルから取り出される。
また、特許文献4には、部分的に文字列が一致する文字データを検索する方法が開示されている。
特許文献4の技術では、登録装置が、保管データである文字列データを文字ごとに分解し、各文字から生成した部分文字列を暗号化する。更に、登録装置が、暗号化した部分文字列を位置情報と共に暗号化して保管暗号化データを生成する。そして、登録装置が、保管暗号化データを管理装置に登録する。
また、検索時には、検索装置が、検索データである文字列データを暗号化して検索暗号化データを生成する。そして、検索装置は、検索暗号化データを管理装置に送信する。管理装置は、受信した検索暗号化データを位置情報と共に暗号化し、暗号化後の検索暗号化データを保管暗号化データと照合する。
上記の方法により、特許文献4では、保管データの文字列データ及び検索データの文字列データが管理装置内で露見することなく、部分的に文字列が一致する文字データを検索することができる。
国際公開WO2010/047286号公報 特開平04−340164号公報 特開平04−340165号公報 特許第6038427号
特許文献1〜4の技術では、文字データが文字ごとに分割され、分割後の文字が位置情報と共に登録される。そして、登録されている登録データと検索データが照合されて、登録データの中から検索データに一致する文字が含まれる登録データが検索される。
しかしながら、文字データが数値であり、特定の数値範囲に含まれる数値を検索するという状況においては、該当しない文字データがノイズとして検索結果に含まれることがあるという課題がある。
例えば、「100〜109」という数値範囲に含まれる数値を検索する例を想定する。特許文献1〜4の技術では、「100〜109」の各値に共通する「10」という数字(文字列)を検索データにして検索を行うことができる。登録データに「100〜109」に該当しない「10」又は「1000」が含まれる場合がある。この場合には、これらの数値は検索データ「10」に合致する数字を含んでいるため、数値範囲「100〜109」に含まれる数値ではないにも関わらず、検索結果として出力されてしまう。
なお、このように検索の意図とは異なる検索結果が出力されないように、特定の数値範囲に含まれる数値の全てについて個別に検索を行うことが考えられる。しかし、特定の数値範囲に含まれる数値の個数に比例して検索を行う回数が増え、全体としての検索時間が増大してしまう。
本発明は、効率的かつ正確に数値を検索できるようにすることを主な目的とする。
本発明に係る検索装置は、
1桁以上の数字の配列である数値の各桁の数字と、桁を表現する記号である桁表現との桁ごとの対応付けにより前記数値を管理する管理装置に、検索条件を送信する検索装置であって、
検索対象である、それぞれが1桁以上の数字の配列である複数の検索対象数値を、桁数の共通性及び上位桁からの数字の配列の共通性を基準にしてグルーピングして、1つ以上の数値グループを生成するグルーピング部と、
数値グループごとに、数値グループに含まれる検索対象数値間で数字の配列が共通している範囲である配列共通範囲の各桁の数字と、前記配列共通範囲の各桁の前記桁表現とを対応付けて検索条件要素を生成し、数値グループごとの前記検索条件要素を統合して前記検索条件を生成する検索条件生成部と、
前記検索条件生成部により生成された前記検索条件を前記管理装置に送信する送信部とを有する。
本発明によれば、効率的かつ正確に数値を検索することができる。
実施の形態1に係る検索システムのシステム構成例を示す図。 実施の形態1に係る登録装置の機能構成例を示す図。 実施の形態1に係る検索装置の機能構成例を示す図。 実施の形態1に係る管理装置の機能構成例を示す図。 実施の形態1に係る検索システムのデータ登録処理を示すフローチャート。 実施の形態1に係る検索システムのデータ登録処理を示すフローチャート。 実施の形態1に係る検索システムのデータ検索処理を示すフローチャート。 実施の形態1に係る検索システムのデータ検索処理を示すフローチャート。 実施の形態1に係る検索システムのハードウェア構成例を示す図。 実施の形態2に係る検索システムの構成を示す図。 実施の形態2に係る登録装置の機能構成例を示す図。 実施の形態2に係る検索装置の機能構成例を示す図。 実施の形態2に係る管理装置の機能構成例を示す図。 実施の形態2に係る鍵生成装置の機能構成例を示す図。 実施の形態2に係る検索システムのデータ登録処理を示すフローチャート。 実施の形態2に係る検索システムのデータ登録処理を示すフローチャート。 実施の形態2に係る検索システムのデータ検索処理を示すフローチャート。 実施の形態2に係る検索システムのデータ検索処理を示すフローチャート。
以下、本発明の実施の形態について、図を用いて説明する。以下の実施の形態の説明及び図面において、同一の符号を付したものは、同一の部分又は相当する部分を示す。
実施の形態1.
本実施の形態では、文字データが数値である場合に、特定の数値範囲に含まれる数値を検索する例を説明する。また、本実施の形態では、検索時間の増大を抑えつつ、正確な検索結果を出力する検索システムを説明する。
***構成の説明***
図1は、本実施の形態に係る検索システム100の構成例を示す。
図1に示すように、検索システム100は、複数の登録装置200と、複数の検索装置300と、管理装置400とを備える。
検索システム100は、1つの登録装置200のみを備えていてもよい。検索システム100は、一つの検索装置300のみを備えていてもよい。検索システム100は、複数の管理装置400を備えていてもよい。
ネットワーク101は、複数の登録装置200と、複数の検索装置300と、管理装置400とを接続する通信路である。
例えば、ネットワーク101は、インターネット又は企業内に敷設されたLAN(Local Area Network)である。
ネットワーク101は、複数の登録装置200と、複数の検索装置300と、管理装置400とを接続する通信路である。
登録装置200は、例えば、パーソナルコンピュータである。登録装置200は、保管データを管理装置400に登録する登録端末として動作するコンピュータである。登録装置200は、保管データを生成し、保管データの保管を管理装置400に要求する。登録装置200は、数値が含まれる保管データを生成する場合がある。
検索装置300は、例えば、パーソナルコンピュータである。検索装置300は、検索条件である検索データを管理装置400に送信し、その後、管理装置400から検索結果を受信し、検索結果を出力するコンピュータである。検索装置300は、検索データを管理装置400に送信して保管データと検索データの照合を要求する。検索装置300は、管理装置400から返信される検索結果を出力する。なお、検索装置300により行われる処理は、検索方法及び検索プログラムに相当する。
管理装置400は、登録装置200によって生成された保管データを保管する大容量の記録媒体を持つ。管理装置400は、登録装置200から保管データの保管の要求があれば、保管データを保管する。管理装置400が保管する保管データのうちの少なくとも一部の保管データには、数値が含まれる。管理装置400は、検索装置300から検索の要求があれば、保管データと検索データを照合し、検索結果を検索装置300に送信する。
なお、同じパーソナルコンピュータ内に、登録装置200、検索装置300が同時に含まれていてもよい。
以下、本実施の形態の構成について説明する。
図1に示したように、検索システム100は、登録装置200と、検索装置300と、管理装置400とを備える。
以下では、登録装置200の構成、検索装置300の構成、管理装置400の構成について順番に説明する。
図2は、登録装置200の機能構成例を示す。図2に示すように、登録装置200は、入力部201と、数値判定部202と、データ分割部203と、桁表現文字列追加部204と、部分文字列生成部205と、位置情報割当部206と、送信部207とを備える。なお、図2には図示していないが、後述するように、登録装置200は、登録装置200の各構成要素で使用されるデータを記憶する記録媒体を備える。
入力部201は、データ登録者(ユーザ)から入力された保管データとデータ名を取得する。なお、本実施の形態では、保管データは保管データDといい、データ名をID(D)という。データ登録者からデータ名の入力がなければ、入力部201は、入力された保管データDのデータ名ID(D)に乱数を割り当ててもよいし、他の保管データのデータ名と重複しないように0より大きい整数の値を順に割り当ててもよい。データ名ID(D)は、保管データDを識別する識別子である。
数値判定部202は、入力部201から取得した保管データDから1桁以上の数値(すなわち、1つ以上の数字が配列された文字列)が含まれているか否かを判定する。保管データDに数値が含まれている場合は、数値を数値データDNとして抽出する。なお、保管データDに含まれる数値データDNは管理対象数値に相当する。
データ分割部203は、数値判定部202から取得した数値データDNを(w,・・・,w)と分割する。ここでLは数値データDNを構成する文字の個数である。各wi(1≦i≦L)は、数値データDNを1文字ずつ順に分割して得られる各文字(各数字)である。数値データDN=123であれば、L=3である。また、W=1、W=2、W=3である。
桁表現文字列追加部204は、データ分割部203から取得した分割データ(w,・・・,w)のそれぞれに、桁ごとに割り当てられ、桁を表現する特殊な文字列(記号)である桁表現(d,・・・,d)を付加する。分割データの各文字に桁表現が付加されて得られる集合を、桁表現付文字集合(w,・・・,w)という。桁表現は、例えば、d=γ、d=β、d=αである。このため、桁表現文字列追加部204は、分割データ(1,2,3)の桁表現付文字集合として、(1γ,2β,3α)を生成する。
部分文字列生成部205は、桁表現文字列追加部204から取得した桁表現付文字集合(w,・・・,w)から、次のような集合Aを生成する。
A={(w),(wL−1L−1),・・・,(w・・・w)}。
例えば、部分文字列生成部205は、桁表現付文字集合(1γ,2β,3α)から、A={(1γ),(1γ,2β),(1γ,2β,3α)}を生成する。
以降では、集合Aを部分文字列集合Aという。部分文字列集合Aには、数値データDNの各桁の数字と桁表現との桁ごとの対応関係が示される。部分文字列集合は、対応付け情報に相当する。
位置情報割当部206は、部分文字列生成部205から取得した部分文字列集合Aの中の各部分文字列に対して次のように位置情報を割り当てて、集合Bを生成する。
B={(L,w),(L−1,wL−1L−1),・・・,(1,w・・・w)}。
例えば、位置情報割当部206は、部分文字列集合A={(1γ),(1γ,2β),(1γ,2β,3α)}に対して、以下の集合Bを生成する。
B={(3,1γ),(2,1γ,2β),(1,1γ,2β,3α)}。
以降では集合Bを位置情報付部分文字列集合という。また、保管データDに対する位置情報付部分文字列集合をB(D)という。
また、以降では、ペア(ID(D),B(D))を、保管データ集合という。
送信部207は、位置情報割当部206から取得した保管データ集合(ID(D),B(D))を管理装置400へ送信する。
図3は、検索装置300の機能構成例を示す。
図3に示すように、検索装置300は、入力部301と、検索範囲分割部302と、検索式生成部303と、桁表現文字列追加部304と、送信部305と、受信部306と、出力部307とを備える。なお、図3には図示していないが、後述するように、検索装置300は、検索装置300の各構成要素で使用されるデータを記憶する記録媒体を備える。
入力部301は、データ検索者から入力された検索範囲データsを取得する。また、入力部301は、データ検索者から、検索範囲データと同時に、その検索範囲データと検索したい保管データ集合を指定するような保管データ名も複数受けとってもよい。
ここで、検索範囲データsは、二つの数値(N,N)で構成されており、Ns≦Nである。
とNと、NとNとの間の数値は、それぞれ、1桁以上の数字の配列である。これらNとNと、NとNとの間の数値は、それぞれ検索対象数値に相当する。
検索範囲分割部302は、入力部301から取得した検索範囲データsから、検索範囲データsが示す範囲に入る数値N,N+1,・・・,N−1,Nを算出し、以下の手順にて分割範囲集合Gを生成する。
1.検索範囲分割部302は、空集合の分割範囲集合Gを生成する。
2.検索範囲分割部302は、N,N+1,・・・,N−1,Nを、桁数ごとにグループに分け、1桁の数値はG、2桁の数値はGに配置し、・・・、l桁の数値はGに配置する。
例えば、N=17、N=2121の場合、Gを空集合であり、G={17,18,・・・,99}、G={100,101,・・・,999}、G={1000,1001,・・・,2121}である。
3.検索範囲分割部302は、G(a=1,・・・,l)のそれぞれについて、構成している数値を最上位桁の値でグループに分け、最上位桁が1の数値はGa1、最上位桁が2の数値はGa2、・・・、最上位桁が9の数値はGa9に配置する。ここで、検索範囲分割部302は、Gab(a=1,・・・,l、b=1,・・・,9)の内、空集合ではない、かつ、NまたはNを含まないグループを、分割範囲集合Gに加える。また、検索範囲分割部302は、Nを含むグループをGとして生成し、Nを含むグループをGとして生成する。
例えば、N=17、N=2121の場合、Gは空集合であり、G={17,18,・・・,99}、G={100,101,・・・,999}、G={1000,1001,・・・,2121}である。このため、G11〜G19は空集合である。G21={17、18、19}、G22={20、21、・・・、29}、・・・、G41={1000、・・・、1999}、G42={2000、・・・、2121}である。検索範囲分割部302は、G22〜G41を分割範囲集合Gに加える。また、G=G21、G=G42である。
4.検索範囲分割部302は、M=2を設定する。
5.検索範囲分割部302は、Gを構成している数値を上位からM番目の桁の値でグループに分け、空集合ではない、かつ、Nを含まないグループを、分割範囲集合Gに加える。また、検索範囲分割部302は、Nを含むグループをGに設定する。
6.ここで、Gを構成する数値がNのみとなった場合、検索範囲分割部302は、以下の7に進む。Gを構成する数値がN以外にもある場合は、検索範囲分割部302は、M=M+1を設定して、上記の5に戻る。
7.検索範囲分割部302は、M=2を設定する。
8.検索範囲分割部302は、Gを構成している数値を上位からM番目の桁の値でグループに分け、空集合ではない、かつ、Nを含まないグループを、分割範囲集合Gに加える。また、検索範囲分割部302は、Nを含むグループをGに設定する。
9.ここで、Gを構成する数値がNのみとなった場合、検索範囲分割部302は、以下の10に進む。Gを構成する数値がN以外にもある場合は、検索範囲分割部302は、M=M+1を設定して、上記の8に戻る。
10.検索範囲分割部302は、GとGを分割範囲集合Gに加える。
以上のように、検索範囲分割部302は、検索対象である複数の検索対象数値を、桁数の共通性及び上位桁からの数字の配列の共通性を基準にしてグルーピングして、数値グループを1つ以上生成する。より具体的には、検索範囲分割部302は、複数の検索対象数値から、相互に桁数が一致し、最下位桁の数字のみが異なる検索対象数値を抽出し、抽出した検索対象数値が含まれる数値グループを生成する。
検索範囲分割部302は、グルーピング部に相当する。また、検索範囲分割部302が行う処理は、グルーピング処理に相当する。
検索データ生成部303は、検索範囲分割部302から取得した分割範囲集合Gを構成する要素であるグループGのそれぞれについて検索データFを生成する。検索データFは、グループGを構成するすべての数値で共通している桁と共通している数値を示す。ここで、グループGを構成する数値データDNを(w,・・・,w)と表現する。グループGを構成するすべての数値で共通している数値を表す部分文字列w・・・wと部分文字列の位置情報jを用いて、検索データFを表現すると、F=(j,w・・・w)と表現される。
例えば、G={w0、w1、・・・、w9}のとき、検索データFは、(2、w)と表現される。G={w00、・・・、w99}のとき、検索データFは、(3、w)と表現される。
また、以降では、すべての検索データFの集合を検索データ集合Fという。
桁表現文字列追加部304は、検索データ生成部303から取得した検索データ集合Fを構成する要素である検索データFから、桁表現文字列追加部204と同様の規則で、桁表現付検索データSを生成する。つまり、桁表現文字列追加部304は、検索データFが(j,w・・・w)であるとき、桁表現付検索データSとして、(j,w・・・w)を生成する。
以降では、すべての桁表現付検索データSの集合を桁表現付検索データ集合Sという。
検索データ生成部303及び桁表現文字列追加部304は、以上のように、数値グループごとに、数値グループに含まれる検索対象数値間で数字の配列が共通している範囲(w・・・w)(配列共通範囲に相当)の各桁の数字(w,wL+1,・・・,wj−1,w)と、範囲(w・・・w)の各桁の桁表現dとを対応付けて桁表現付検索データS(検索条件要素に相当)を生成する。
そして、桁表現文字列追加部304は、数値グループごとの桁表現付検索データSを統合して桁表現付検索データ集合S(検索条件に相当)を生成する。
検索データ生成部303及び桁表現文字列追加部304は、検索条件生成部に相当する。また、検索データ生成部303及び桁表現文字列追加部304により行われる処理は、検索条件生成処理に相当する。
送信部305は、桁表現文字列追加部304から取得した桁表現付検索データ集合Sを管理装置400に送信する。もし、データ検索者から検索範囲データと同時に保管データ名も入力されていた場合は、送信部305は、桁表現付検索データ集合Sと保管データ名の両方を管理装置400に送信する。
受信部306は、管理装置500から送信されてきた検索結果を受信する。
出力部307は、受信部306により受信された検索結果を通知するメッセージをデータ検索者に対して出力する。
図4は、管理装置400の機能構成例を示す。図4に示すように、管理装置400は、受信部401と、データ保管部402と、照合部403と、送信部404とを備える。なお、図4では図示していないが、後述するように、管理装置400は、管理装置400の各構成要素で使用されるデータを記憶する記録媒体を備える。
受信部401は、登録装置200から送信されてきた保管データ集合(ID(D),B(D))と、検索装置300から送信されてきた桁表現付検索データ集合Sを受信する。検索装置300から保管データ名が送信されている場合は、受信部401は保管データ名も受信する。
データ保管部402は、受信部401から取得した保管データ集合(ID(D),B(D))を保管する。データ保管部402は、必要があれば、保管データ集合(ID(D),B(D))の送信日時をあわせて保管してもよい。
照合部403は、検索結果に関わる空集合である集合Rを生成する。また、照合部403は、データ保管部402からすべての保管データ集合(ID(D),B(D))を読み出す。そして、照合部403は、受信部401から取得した桁表現付検索データ集合Sを用いて、次のような照合を行う。また、照合部403は、検索結果を生成する。
照合部403は、すべての保管データ集合(ID(D),B(D))について、位置情報付部分文字列集合B(D)と、桁表現付検索データ集合Sに含まれている桁表現付検索データSとを照合する。そして、照合部403は、桁表現付検索データSと同じ要素が位置情報付部分文字列集合B(D)に含まれているかを確認する。桁表現付検索データSと同じ要素が位置情報付部分文字列集合B(D)に含まれているならば、照合部403は、当該位置情報付部分文字列集合B(D)のID(D)を集合Rに加える。以上の処理の結果、最終的に生成される集合Rを検索結果Rという。
なお、照合部403は、受信部401が保管データ名も受信していれば、保管データ名に基づいてデータ保管部402から対象の保管データ集合(ID(D),B(D))のみを読み出す。そして、照合部403は、読み出した保管データ集合(ID(D),B(D))にのみ、上記の処理を行う。
送信部404は、照合部403から取得した検索結果Rを検索装置300に送信する。
ここで、実施の形態1に係る登録装置200と、検索装置300と、管理装置400とのハードウェア構成例を示す。
図9は、実施の形態1に係る登録装置200と、検索装置300と、管理装置400とのハードウェア構成例を示す。
図9おいて、登録装置200と、検索装置300と、管理装置400は、それぞれ、プロセッサ901を備える。
また、登録装置200と、検索装置300と、管理装置400は、それぞれ、補助記憶装置920を備える。
補助記憶装置920には、プログラム922が格納されている。これらプログラムは、登録装置200と、検索装置300と、管理装置400の機能構成を実現するプログラムである。
つまり、登録装置200では、補助記憶装置920に、入力部201、数値判定部202、データ分割部203、桁表現文字列追加部204、部分文字列生成部205、位置情報割当部206及び送信部207を実現するプログラムが格納されている。
また、検索装置300では、補助記憶装置920に、入力部301、検索範囲分割部302、検索データ生成部303、桁表現文字列追加部304、送信部305、受信部306及び出力部307を実現するプログラムが格納されている。
また、管理装置400では、補助記憶装置920に、受信部401、データ保管部402、照合部403及び送信部404を実現するプログラムが格納されている。
そして、プログラム922はメモリ902にロードされ、プロセッサ901により実行される。
登録装置200では、プロセッサ901は、プログラム922を実行することにより、入力部201、数値判定部202、データ分割部203、桁表現文字列追加部204、部分文字列生成部205、位置情報割当部206及び送信部207の機能を実現する。
また、検索装置200では、プロセッサ901は、プログラム922を実行することにより、入力部301、検索範囲分割部302、検索データ生成部303、桁表現文字列追加部304、送信部305、受信部306及び出力部307の機能を実現する。
また、管理装置400では、プロセッサ901は、プログラム922を実行することにより、受信部401、データ保管部402、照合部403及び送信部404の機能を実現する。
補助記憶装置920には、OS(Operating System)921も記憶されている。
そして、OS921の少なくとも一部がプロセッサ901により実行される。
プロセッサ901はOS921の少なくとも一部を実行しながら、プログラム922を実行する。
プロセッサ901がOS921を実行することで、タスク管理、メモリ管理、ファイル管理、通信制御等が行われる。
また、補助記憶装置920には、ファイル923も記憶されている。
また、ファイル923には、処理の結果を示す情報、データ、信号値又は変数値が含まれる。また、登録装置200及び管理装置400の補助記憶装置920では、ファイル923として、保管データが記憶される。また、検索装置300の補助記憶装置920では、ファイル923として、検索データが記憶される。
通信ボード903は、ネットワーク101を介して他の装置と通信するために用いられる。
ディスプレイ904は、ユーザに各種情報を表示するために用いられる。
キーボード905及びマウス906は、ユーザからの指示を取得するために用いられる。
***動作の説明***
以下では、本実施の形態に係る検索システム100の動作例を説明する。
図5及び図6は、検索システム100の登録処理を示すフローチャートである。
図5のステップS501〜ステップS507は、登録装置200が実行する処理である。図6のステップS508〜ステップS509は管理装置400が実行する処理である。
ステップS501において、入力部201は、ユーザであるデータ登録者から入力された保管データDとデータ名ID(D)を取得する。なお、前述の通り、データ登録者からデータ名の入力がなければ、入力部304は、入力された保管データDのデータ名ID(D)として乱数を割り当ててもよい。また、入力部304は、他の保管データのデータ名と重複しないように0より大きい整数の値をデータ名ID(D)として順に割り当ててもよい。
ステップS502において、数値判定部202は、入力部201から取得した保管データDから数字に該当する文字列が含まれているか判定する。数字に該当する文字列が含まれている場合は、数値判定部202は、その文字列を数値データDNとして抽出する。
ステップS503において、データ分割部203は、数値判定部202から取得した数値データDNを(w,・・・,w)と分割する。ここでLは数値データDNの文字数である。各wi(1≦i≦L)は、数値データDNを1文字ずつ順に分割して得られた数字である。
ここでwを要素データと呼ぶ。データ分割部305は、文字列データである数値データDNを、数値データDNの始まりから終わりに向かうL個の要素データw,...,wに分割する。
ステップS504において、桁表現文字列追加部204は、ステップS503で生成された分割データ(w,・・・,w)のそれぞれに、桁を表現する特殊な文字列である桁表現(d,・・・,d)を付与し、桁表現付文字集合(w,・・・,w)を生成する。
ステップS505において、部分文字列生成部205は、ステップS504で生成された桁表現付文字集合(w,・・・,w)から、次のような部分文字列集合Aを生成する。
A={(w),(wL−1L−1),・・・,(w・・・w)}。
ステップS506において、位置情報割当部206は、ステップS505で生成された部分文字列集合Aの中の各部分文字列に対して次のように位置情報を割り当てて、保管データDに対する位置情報付部分文字列集合B(D)を生成し、保管データ集合(ID(D),B(D))を生成する。
B={(L,w),(L−1,wL−1L−1),・・・,(1,w・・・w)}。
ステップS507において、送信部207は、ステップS506で生成した保管データ集合(ID(D),B(D))を管理装置400へ送信する。
ステップS508において、受信部401は、ステップS507で送信された保管データ集合(ID(D),B(D))を受信する。
ステップS509において、データ保管部402は、ステップS508で受信した保管データ集合(ID(D),B(D))を保管する。
ステップS509により、検索システム100の登録処理は終了する。
図7及び図8は、検索システム100の検索処理を示すフローチャートである。
図7のステップS601〜ステップS605及びステップS610〜ステップS611は検索装置300が実行する処理である。図8のステップS606〜ステップS609は管理装置400が実行する処理である。
ステップS601において、入力部301は、ユーザであるデータ検索者から入力された検索範囲データsを取得する。なお、データ検索者は、複数の検索範囲データsを同時に入力してもよい。データ検索者が複数の検索範囲データsを入力する場合は、検索装置300は、検索範囲データsごとに以降の処理を実施する。また、前述のとおり、入力部301は、データ検索者から、検索範囲データと同時に、検索対象の保管データを指定する保管データ名を1つ又は複数取得してもよい。ここで、検索範囲データsは、二つの数値(N,N)で構成されており、Ns≦Nである。
ステップS602において、検索範囲分割部302は、ステップS601で入力された検索範囲データsから、検索範囲データsが示す範囲に入る数値N,N+1,・・・,N−1,Nを算出し、前述したように、以下のように分割範囲集合Gを生成する。
1.検索範囲分割部302は、空集合の分割範囲集合Gを生成する。
2.検索範囲分割部302は、N,N+1,・・・,N−1,Nを、桁数ごとにグループに分け、1桁の数値はG、2桁の数値はGに配置し、・・・、l桁の数値はGに配置する。
3.検索範囲分割部302は、G(a=1,・・・,l)のそれぞれについて、構成している数値を最上位桁の値でグループに分け、最上位桁が1の数値はGa1、最上位桁が2の数値はGa2、・・・、最上位桁が9の数値はGa9に配置する。ここで、検索範囲分割部302は、Gab(a=1,・・・,l、b=1,・・・,9)の内、空集合ではない、かつ、NまたはNを含まないグループを、分割範囲集合Gに加える。また、検索範囲分割部302は、Nを含むグループをGとして生成し、Nを含むグループをGとして生成する。
4.検索範囲分割部302は、M=2を設定する。
5.検索範囲分割部302は、Gを構成している数値を上位からM番目の桁の値でグループに分け、空集合ではない、かつ、Nを含まないグループを、分割範囲集合Gに加える。また、検索範囲分割部302は、Nを含むグループをGに設定する。
6.ここで、Gを構成する数値がNのみとなった場合、検索範囲分割部302は、以下の7に進む。Gを構成する数値がN以外にもある場合は、検索範囲分割部302は、M=M+1を設定して、上記の5に戻る。
7.検索範囲分割部302は、M=2を設定する。
8.検索範囲分割部302は、Gを構成している数値を上位からM番目の桁の値でグループに分け、空集合ではない、かつ、Nを含まないグループを、分割範囲集合Gに加える。また、検索範囲分割部302は、Nを含むグループをGに設定する。
9.ここで、Gを構成する数値がNのみとなった場合、検索範囲分割部302は、以下の10に進む。Gを構成する数値がN以外にもある場合は、検索範囲分割部302は、M=M+1を設定して、上記の8に戻る。
10.検索範囲分割部302は、GとGを分割範囲集合Gに加える。
ステップS603において、検索データ生成部303は、ステップS602で生成した分割範囲集合Gを構成する要素であるグループGのそれぞれについて検索データFを生成する。検索データFは、前述したように、グループGを構成するすべての数値で共通している桁と共通している数値を示す。ここで、グループGを構成する数値データDNを(w,・・・,w)と表現する。グループGを構成するすべての数値で共通している数値を表す部分文字列w・・・wと部分文字列の位置情報jを用いて、検索データFを表現すると、F=(j,w・・・w)と表現される。
前述したように、すべての検索データFの集合を検索データ集合Fという。
ステップS604において、桁表現文字列追加部304は、ステップS603で生成された検索データ集合Fを構成する要素である検索データFから、桁表現文字列追加部204と同様の規則で、桁表現付検索データSを生成する。つまり、桁表現文字列追加部304は、検索データFが(j,w・・・w)であるとき、桁表現付検索データSとして、(j,w・・・w)を生成する。
前述したように、すべての桁表現付検索データSの集合を桁表現付検索データ集合Sという。
ステップS605において、送信部305は、ステップS604で生成された桁表現付検索データ集合Sを管理装置400に送信する。もし、データ検索者から検索範囲データと同時に保管データ名も入力されていた場合は、桁表現付検索データ集合Sと保管データ名の両方を管理装置400に送信する。
ステップS606において、受信部401は、ステップS605で送信された桁表現付検索データ集合Sを受信する。また、保管データ名が送信された場合は、受信部401は保管データ名も受信する。
ステップS607において、照合部403は、データ保管部402からすべての保管データ集合(ID(D),B(D))を読み出す。なお、ステップS606で受信部401が保管データ名を受信していた場合は、照合部403は、保管データ名に対応する保管データ集合のみを読み出す。ステップS606で受信部401が保管データ名を受信していない場合は、照合部403は、保管されているすべての保管データ集合を読み出す。
ステップS608において、照合部403は、検索結果に関わる空集合である集合Rを生成する。また、照合部403は、ステップS607で読み出した保管データ集合(ID(D),B(D))と、受信部401から取得した桁表現付検索データ集合Sとに基づき、次のような照合を行う。そして、照合部403は、検索結果を生成する。
照合部403は、すべての保管データ集合(ID(D),B(D))について、位置情報付部分文字列集合B(D)と、桁表現付検索データ集合Sに含まれている桁表現付検索データSとを照合する。そして、照合部403は、桁表現付検索データSと同じ要素が位置情報付部分文字列集合B(D)に含まれているか否かを確認する。もし、桁表現付検索データSと同じ要素が位置情報付部分文字列集合B(D)に含まれているならば、照合部403は、当該位置情報付部分文字列集合B(D)のID(D)を集合Rに加える。以上の処理の結果、最終的に生成される集合Rを検索結果Rという。
ステップS609において、送信部404は、ステップS608で生成された検索結果Rを検索装置300に送信する。
ステップS610において、受信部306は、ステップS609で送信された検索結果Rを受信する。
ステップS611において、出力部307は、ステップS610で受信された検索結果Rに基づき、検索結果を通知するメッセージをデータ検索者に対して出力する。
以下に本実施の形態に係る検索システムの動作を具体例を用いて説明する。
以下では、保管データD1=123A、
ID(D1)=1、
また、保管データD2=B12、
ID(D2)=2、
検索範囲データs=(28,125)、
桁表現(d,d,d)=(α,β,γ)
を想定する。
まず、保管データD1と保管データD2の登録処理について説明する。
ステップS502において、数値判定部202は、保管データD1に数値データDN1=123が含まれると判定し、保管データD2に数値データDN2=12が含まれると判定する。
ステップS503において、データ分割部203は、数値データDN1をDN1={1,2,3}と分割し、数値データDN2をDN2={1,2}と分割する。
ステップS504において、桁表現文字列追加部204は、桁表現付文字列データ集合S1={1γ,2β,3α}、桁表現付文字列データ集合S2={1β,2α}を生成する。
ステップS505において、部分文字列生成部205は、A1={1γ,1γ2β,1γ2β3α}、A2={1β,1β2α}を生成する。
ステップS506において、位置情報割当部206は、B(D1)={(3,1γ),(2,1γ2β)、(1,1γ2β3α)}、B(D2)={(2,1β),(1,1β2α)}を生成する。また、位置情報割当部206は、保管データ集合(1,B(D1))及び保管データ集合(2,B(D2))を生成する。
ステップS508において、管理装置400の受信部401が、保管データ集合(1,B(D1))と(2,B(D2))を受信する。
そして、ステップS509において、データ保管部402が、保管データ集合(1,B(D1))と(2,B(D2))を保管する。
次に、検索範囲データsをs=(28,125)とした場合の検索処理について説明する。
ステップS602において、検索範囲分割部302は、以下の処理により、分割範囲集合Gを生成する。
s=(28,125)より、N=28,N=125であるため、検索範囲分割部302は、空集合のGを生成する。また、検索範囲分割部302は、G={28,・・・,99}及びG={100,・・・,125}を生成する。
また、検索範囲分割部302は、空集合のG21を生成する。また、検索範囲分割部302は、G22={28,29}、・・・、G29={90,・・・,99}、G31={100,・・・,125}を生成する。
ここで、G22はNを含み、G31はNを含む。このため、G={G23,・・・,G29
である。
次に、検索範囲分割部302は、M=2を設定する。
このため、検索範囲分割部302は、G22に対して、上位から2番目の桁の値でグループ分けを行う。この結果、G22は、{28}と{29}にグループ分けされる。そして、{29}がGに加えられる。
また、{28}はN(=28)のみで構成されるグループであるため、{28}もGに加えられる。
このため、G={G23,・・・,G29,{28},{29}}が得られる。
同様に、検索範囲分割部302は、M=2を設定する。
このため、検索範囲分割部302は、G31に対して、上位から2番目の桁の値でグループ分けを行う。この結果、G31は、G310={100,・・・,109}、G311={110,・・・,119}、G312={121,・・・,125}にグループ分けされる。
ここで、G312はN(=125)を含むグループである。このため、G310とG311がGに加えられる。
従って、G={G23,・・・,G29,{28},{29},G310,G311}が得られる。
続いて、検索範囲分割部302は、M=2+1=3を設定する。
このため、検索範囲分割部302は、G312に対して、上位から3番目の桁の値でグループ分けを行う。この結果、G312は、{121}、{122}、{123}、{124}、{125}にグループ分けされる。そして、{121},{122},{123},{124}がGに加えられる。
また、{125}はN(=125)のみで構成されるグループである。このため、{125}もGに加えられる。
従って、G={G23,・・・,G29,{28},{29},G310,G311,{121},{122},{123},{124},{125}}が得られる。
ステップS603において、検索データ生成部303は、以下の処理により、分割範囲集合Gから検索データ集合Fを生成する。
前述したように、G={G23,・・・,G29,{28},{29},G310,G311,{121},{122},{123},{124},{125}}が得られている。
検索データ生成部303は、G23からF23を以下のように生成する。
23={30,31,・・・,39}より、G23を構成する値は3wと表現できる。つまり、j=2、w=3である。
このため、検索データ生成部303は、F23=(2,3)を生成する。
同様に、検索データ生成部303は、G24〜G29からF24〜F29を以下のように生成する。
24=(2,4)、F25=(2,5)、F26=(2,6)、F27=(2,7)、F28=(2,8)、F29=(2,9)。
また、検索データ生成部303は、G310、G311からF310、F311を以下のように生成する。
310={100,101,・・・,109}、G311={110,111,・・・,119}である。このため、G310を構成する値は10wと表現でき、j=2、w=10である。G311を構成する値は11wと表現でき、j=2、w=11である。
このため、検索データ生成部303は、F310=(2,10)、F311=(2,11)を生成する。
また、検索データ生成部303は、{28},{29},{121},・・・{125}から、検索データとして、(1,28)、(1,29)、(1,121),・・・,(1,125)を生成する。
従って、検索データ生成部303は、
F={(2,3),・・・,(2,9),(2,10),(2,11),(1,28),(1,29),(1,121),・・・,(1,125)}
を生成する。
ステップS604において、桁表現文字列追加部304は、以下の処理により、検索データ集合Fから桁表現付検索データ集合Sを生成する。
(d,d,d)=(A,B,C)であるため、桁表現文字列追加部304は、S={(2,3B),・・・,(2,9B),(2,1C0B),(2,1C1B),(1,2B8A),(1,2B9A),(1,1C2B1A),・・・,(1,1C2B5A)}を生成する。
ステップS607において、照合部403は、(1,B(D1))と(2,B(D2))を読み出す。
ステップS608において、照合部403は、桁表現付検索データ集合Sの要素がB(D1)及びB(D2)に含まれているか否かを確認する。
本例では、B(D1)には(1,1C2B3A)が含まれ、B(D2)にはSの要素は含まれていない。
よって、ID(D1)=1であるため、照合部403は、検索結果R={1}を生成する。
ステップS611において、出力部307は、検索結果Rに基づき、「保管データ名が“1”のデータに検索条件に一致する数値が含まれる」といったメッセージを出力する。
***実施の形態の効果の説明***
本実施の形態によれば、例えば、以下のような効果を得ることができる。
(1)本実施の形態によれば、登録処理の時点で保管データの中から数値を抽出しているため、検索処理において保管データから数値を抽出する必要がなく、検索速度を向上させることができる。
(2)また、本実施の形態によれば、保管データと検索データの両方に桁表現が付与されているため、検索条件に部分的に合致するが検索条件から外れる数値が検索結果に含まれるという事態を回避することができる。本実施の形態によれば、例えば10を検索条件として指定した際に100、210等が検索結果に含まれるという事態を回避することができる。このため、本実施の形態によれば、正確な検索結果を得ることができる。
(3)また、本実施の形態によれば、保管データと検索データの両方に桁表現が付与されているため、複数の数値に対する検索条件を一つの検索データにまとめることができる。本実施の形態によれば、例えば10〜19に対する検索条件を1Bとして一つの検索データにまとめることができる。このため、本実施の形態によれば、検索回数が増えることによる検索時間の増大を抑えることができる。
実施の形態2
本実施の形態では、実施の形態1に示す手順に秘匿検索技術を適用する例を説明する。
本実施の形態では、主に実施の形態1との差異を説明する。
なお、以下で説明していない事項は、実施の形態1と同様である。
***構成の説明***
図10は、本実施の形態に係る検索システム800の構成例を示す。
図10に示すように、本実施の形態に係る検索システム800は、複数の登録装置200aと、複数の検索装置300aと、管理装置400aと、鍵生成装置1200を備える。
検索システム800は、1つの登録装置200aのみを備えていてもよい。検索システム800は、一つの検索装置300aのみを備えていてもよい。検索システム800は、複数の管理装置400aを備えていてもよい。検索システム800は、複数の鍵生成装置1200を備えていてもよい。ネットワーク101は、複数の登録装置200aと、複数の検索装置300aと、管理装置400aと、鍵生成装置1200を接続する通信路である。ネットワーク101は、実施の形態1に示したように、例えば、インターネット又は企業内に敷設されたLANである。
登録装置200aは、例えば、パーソナルコンピュータである。登録装置200aは、保管暗号化データを管理装置400aに登録する登録端末として動作するコンピュータである。登録装置200aは、保管暗号化データを生成し、保管暗号化データの保管を管理装置400aに要求する。
検索装置300aは、例えば、パーソナルコンピュータである。検索装置300aは、検索暗号化データを管理装置400aに送信し、その後、管理装置400aから検索結果を受信し、検索結果を出力するコンピュータである。検索装置300aは、検索暗号化データを管理装置400aに送信して保管暗号化データと検索暗号化データの照合を要求する。検索装置300aは、管理装置400aから返信される検索結果を出力する。
管理装置400aは、登録装置200aによって生成された保管暗号化データを保管する大容量の記録媒体を持つ。管理装置400aは、登録装置200から保管暗号化データの保管の要求があれば、保管暗号化データを保管する。管理装置400は、検索装置300から検索の要求があれば、保管暗号化データと検索暗号化データを照合し、検索結果を検索装置300に送信する。
鍵生成装置1200は、暗号化に利用する鍵を生成する。そして、鍵生成装置1200は、ネットワーク101を介して、複数の登録装置200aと、複数の検索装置300aに鍵を送信する。なお、この鍵は、ネットワーク101を介さず、郵送などで直接的に、複数の登録装置200aと、複数の検索装置300aに配布してもよい。
なお、同じパーソナルコンピュータ内に、登録装置200a、検索装置300aが同時に含まれていてもよい。
なお、保管暗号化データ及び検索暗号化データは、いずれも暗号化されている。鍵を所持している登録装置200aと検索装置300a以外は、保管暗号化データ及び検索暗号化データから有益な情報を得ることはできない。
以下、本実施の形態の構成について説明する。
図10に示したように、検索システム800は、登録装置200aと、検索装置300aと、管理装置400aと、鍵生成装置1200を備える。
以下では、登録装置200aの構成、検索装置300aの構成、管理装置400aの構成、鍵生成装置1200の構成について順番に説明する。
図11は、登録装置200aの機能構成例を示す。図11に示すように、登録装置200aは、入力部201と、数値判定部202と、データ分割部203と、桁表現文字列追加部204と、部分文字列生成部205と、位置情報割当部206と、送信部207aと、受信部208と、鍵保管部209と、暗号化部210とを備える。なお、図11では、図示していないが、登録装置200aは、登録装置200aの各構成要素で使用されるデータを記憶する記録媒体を備える。
入力部201と、数値判定部202と、データ分割部203と、桁表現文字列追加部204と、部分文字列生成部205と、位置情報割当部206は、それぞれ、実施の形態1に示したものと同じであるため、これらの要素の説明を省略する。
受信部208は、鍵生成装置1200から送信された鍵Kを受信する。
鍵保管部209は、受信部208により受信された鍵Kを保管する。
暗号化部210は、鍵保管部209から鍵Kを読み出す。また、暗号化部210は、位置情報割当部206から取得した位置情報付部分文字列集合Bの中の各位置情報付部分文字列に対する暗号文Cを次のように生成する。つまり、暗号化部210は、位置情報と部分文字列の各ペア(p,w)に対して、C=E(E(K,w),p,ID(D))により、暗号文Cを生成する。なお、Eは暗号化関数である。暗号化部210は、例えば、AES(Advanced Encryption Standard)のような共通鍵暗号方式、HMAC(Hash−based Message Authentication Code)のようなメッセージ認証符号又はSHA(Secure Hash Algorithm)−256のようなハッシュ関数を用いて暗号文Cを生成する。
以降では、すべての(i,w)の暗号文の集合を保管暗号化データC(D)という。また、以降では、ペア(ID(D),C(D))を保管暗号化データ集合という。
送信部207aは、暗号化部210から取得した保管暗号化データ集合(ID(D),C(D))を管理装置400aへ送信する。
図12は、検索装置300aの機能構成例を示す。
図12に示すように、検索装置300aは、入力部301と、検索範囲分割部302と、検索式生成部303と、桁表現文字列追加部304と、送信部305aと、受信部306aと、出力部307aと、鍵保管部308と、暗号化部309と、復号部310とを備える。なお、図12では図示していないが、検索装置300aは、検索装置300aの各構成要素で使用されるデータを記憶する記録媒体を備える。
入力部301と、検索範囲分割部302と、検索式生成部303と、桁表現文字列追加部304は、それぞれ、実施の形態1に示したものと同じであるため、これらの要素の説明を省略する。
暗号化部309は、桁表現文字列追加部204から取得した桁表現付検索データ集合Sの桁表現付検索データScのそれぞれに対して鍵Kを用いて、次のように検索暗号化データQcを生成する。つまり、暗号化部309は、Qc=E(K,Sc)により、検索暗号化データQcを生成する。
以降、桁表現付検索データ集合Sに含まれるすべての桁表現付検索データSを暗号化した検索暗号化データの集合を検索暗号化データ集合Q(S)という。
送信部305aは、暗号化部309から取得した検索暗号化データ集合Q(S)を管理装置400aへ送信する。データ検索者から検索データとともに保管データ名も入力されていた場合は、送信部305aは、検索暗号化データ集合Q(S)と保管データ名の両方を管理装置400aへ送信する。
受信部306aは、鍵生成装置200aから送信されてきた鍵K、または管理装置400aから送信されてきた検索結果を受信する。
鍵保管部308は、受信部306aから取得した鍵Kを保管する。
復号部310は、受信部306aから取得した検索結果が暗号化されていた場合は、鍵保管部308に保管されている鍵Kを用いて検索結果を復号する。
出力部307aは、復号部310から取得した検索結果を通知するメッセージをデータ検索者に対して出力する。
図13は、管理装置400aの機能構成例を示す。
図13に示すように、管理装置400aは、受信部401aと、データ保管部402aと、照合部403aと、送信部404とを備える。なお、図13では図示していないが、管理装置400aは、管理装置400aの各構成要素で使用されるデータを記憶する記録媒体を備える。
受信部401aは、登録装置200aから送信されてきた保管暗号化データ集合(ID(D),C(D))と、検索装置300aから送信されてきた検索暗号化データ集合Q(S)を受信する。検索装置300から保管データ名が送信されている場合は、受信部401aは保管データ名も受信する。
データ保管部402aは、受信部401aから取得した保管暗号化データ集合(ID(D),C(D))を保管する。データ保管部402は、必要があれば、保管暗号化データ集合(ID(D),B(D))の送信日時をあわせて保管してもよい。
照合部403aは、検索結果に関わる空集合Rである集合Rを生成する。また、照合部403aは、データ保管部402aからすべての保管暗号化データ集合(ID(D),C(D))を読み出す。そして、照合部403aは、受信部401aから取得した検索暗号化データ集合Q(S)を用いて、次のような照合を行う。また、照合部403aは、検索結果を生成する。
照合部403aは、すべての保管暗号化データ集合(ID(D),C(D))について、検索暗号化データ集合Q(S)の各要素QcからID(D)に対する照合データTpを生成する。具体的には、照合部403aは、T1=E(Qc,1,ID(D)),・・・,TL=E(Qc,L,ID(D))により、各照合データTpを生成する。複数の保管暗号化データ集合(ID(D),C(D))が存在する場合は、照合部403aは、各ID(D)に対応した照合データを生成する。
照合部403aは、生成した各照合データTp(1≦p≦L)が保管暗号化データC(D)に含まれているかを確認する。各照合データTpが保管暗号化データC(D)に含まれているならば、照合部403aは、ペア(ID(D),p)を集合Rに加える。複数の保管暗号化データ集合(ID(D),C(D))に対応させて、照合データTpの集合が複数生成されている場合は、照合部403aは、照合データTpの集合ごとに、同じ集合Rに上記の検索結果に関するペアを加える。以上の処理の結果、最終的に生成される集合Rを検索結果Rという。
なお、照合部403aは、受信部401aが保管データ名も受信していれば、保管データ名に基づいてデータ保管部402aから対象となる保管暗号化データ集合(ID(D),B(D))のみを読み出す。そして、照合部403は、読み出した保管暗号化データ集合(ID(D),B(D))にのみ、上記の処理を行う。
送信部404は、実施の形態1に示したものと同じであるので、送信部404の説明を省略する。
図14は、鍵生成装置1200の機能構成例を示す。
図14に示すように、鍵生成装置1200は、鍵生成部1201と、パラメータ生成部1202と、送信部1203とを備える。なお、図14では図示していないが、鍵生成装置1200は、鍵生成装置1200の各構成要素で使用されるデータを記憶する記録媒体を備える。
鍵生成部1201は、鍵Kを生成する。鍵Kは、データの暗号化及び暗号化されたデータの復号に用いられる。鍵Kは登録装置200aと検索装置300aとに保管される秘密情報であるため、厳重に生成される。なお、以下では、鍵生成部1201が、共通鍵暗号技術を用いて鍵Kを生成する例を説明するが、鍵生成部1201は、公開鍵暗号技術を用いて鍵Kを生成してもよい。
パラメータ生成部1202は、データの暗号化及びデータの照合に必要なパラメータを生成する。パラメータ生成部1202は、例えば、登録データを文字列に分割するときの文字列の最大長Lを、パラメータとして生成する。なお、最大長Lは0より大きい整数である。また、最大長Lは秘密情報ではないため、公開されていても構わない。
送信部1203は、鍵生成部1201で生成された鍵Kを登録装置200aと検索装置300aとへ送信する。また、送信部1203は、パラメータ生成部1202で生成されたパラメータを登録装置200aと管理装置400aとへ送信する。
なお、登録装置200a、検索装置300a及び管理装置400aのハードウェア構成例は、図9に示す通りである。つまり、図11、図12及び図13に示す構成要素がプログラム922として補助記憶装置920に格納されている。そして、プロセッサ901がプログラム922を実行して、図11、図12及び図13に示す構成要素を実現する。
また、鍵生成装置1200のハードウェア構成例も、図9に示す通りである。つまり、図14に示す構成要素がプログラム922として補助記憶装置920に格納されている。そして、プロセッサ901がプログラム922を実行して、図14に示す構成要素を実現する。
***動作の説明***
以下では、本実施の形態に係る検索システム800の動作例を説明する。
図15及び図16は、検索システム800の登録処理を示すフローチャートである。
図15のステップS1301〜ステップS1309は登録装置200aが実行する処理である。図16のステップS1310〜ステップS1311は管理装置400aが実行する処理である。
ステップS1301〜ステップS1306は、図5のステップS501〜ステップS506と同じである。このため、ステップS1301〜ステップS1306の説明を省略する。
ステップS1307〜ステップS1308において、暗号化部210は、鍵保管部209から鍵Kを読み出す。そして、暗号化部210は、ステップS1306で生成された各位置情報付部分文字列集合B(D)に対する暗号文Cを次のように生成する。つまり、暗号化部210は、位置情報と部分文字列の各ペア(p,w)に対して、E(K,w)を生成し(ステップS1307)、C=E(E(K,w),p,ID(D))を生成する(ステップS1308)。なお、Eは暗号化関数である。暗号化部210は、例えば、AESのような共通鍵暗号方式、HMACのようなメッセージ認証符号又はSHA−256のようなハッシュ関数を用いて暗号文Cを生成する。
前述のように、すべての(i,w)を暗号化した暗号文の集合を保管暗号化データC(D)という。また、前述したように、ペア(ID(D),C(D))を保管暗号化データ集合という。
ステップS1309において、送信部207aは、ステップS1308で生成された保管暗号化データ集合(ID(D),C(D))を管理装置400aへ送信する。
ステップS1310において、受信部401aは、ステップS1309で送信された保管暗号化データ集合(ID(D),C(D))を受信する。
ステップS1311において、データ保管部402aは、ステップS1310で受信した保管暗号化データ集合(ID(D),C(D))を保管する。
ステップS1311により、検索システム800の登録処理は終了する。
図17及び図18は、検索システム800の検索処理を示すフローチャートである。
図17のステップS1401〜ステップS1406及びステップS1412〜ステップS1413は検索装置300aが実行する処理である。図18のステップS1407〜ステップS1411は管理装置400aが実行する処理である。
ステップS1401〜ステップS1404は、図6のステップS601〜ステップS604と同じである。このため、ステップS1401〜ステップS1404の説明を省略する。
ステップS1405において、暗号化部309は、鍵保管部308から鍵Kを読み出す。そして、暗号化部309は、ステップS604で生成された桁表現付検索データ集合Sに含まれるすべてのSc=(j,w・・・w)に対して鍵Kを用いて、次のようにして暗号化桁表現付検索データQcを生成する。つまり、暗号化部309は、Qc=E(K,w・・・w)により、暗号化桁表現付検索データQcを生成する。
前述したように、桁表現付検索データ集合Sに含まれるすべての桁表現付検索データSを暗号化して得られる検索暗号化データの集合は検索暗号化データ集合Q(S)という。
ステップS1406において、送信部305aは、ステップS1405で生成された検索暗号化データ集合Q(S)を管理装置400aに送信する。ステップS1401でデータ検索者から検索範囲データとともに保管データ名も入力されていた場合は、送信部305aは、検索暗号化データ集合Q(S)と保管データ名の両方を管理装置400aへ送信する。
ステップS1407において、受信部401aは、ステップS1406で送信された検索暗号化データ集合Q(S)を受信する。ステップS1406で保管データ名も送信されていたら、受信部401aは、保管データ名も受信する。
ステップS1408において、照合部403aは、データ保管部402aから保管暗号化データ集合(ID(D),C(D))を読み出す。なお、ステップS1407で受信部401aが保管データ名も受信していた場合は、照合部403aは、その保管データ名に基づいてデータ保管部402aから対象の保管暗号化データ集合(ID(D),B(D))のみを読み出す。ステップS1407で受信部401aが保管データ名を受信していない場合は、照合部403aは、データ保管部402aで保管されているすべての保管暗号化データ集合(ID(D),B(D))を読み出す。
ステップS1409において、照合部403aは、ステップS1408で読み出した保管暗号化データ集合(ID(D),C(D))のID(D)に基づき、ステップS1407で受信された検索暗号化データ集合Q(S)の各要素QcからID(D)に対する照合データTpを生成する。具体的には、照合部403aは、T1=E(Qc,1,ID(D)),・・・,TL=E(Qc,L,ID(D))により、照合データTpを生成する。照合部403aは、ステップS1408で複数の保管暗号化データ集合(ID(D),C(D))を読み出した場合は、各ID(D)に対応する照合データTpを生成する。
ステップS1410において、照合部403aは、検索結果に関わる空集合Rである集合Rを生成する。また、照合部403aは、ステップS1409で生成した各照合データTp(1≦p≦L)が保管暗号化データC(D)に含まれているか否かを確認する。照合データTpが保管暗号化データC(D)に含まれているならば、照合部403aは、ペア(ID(D),p)を集合Rに加える。また、ステップS1409で照合データTpの集合が複数生成されている場合は、照合部403aは同じ集合Rに上記の検索結果に関するペアを加える。
ステップS1411において、送信部404は、ステップS1410で生成された検索結果Rを検索装置300aへ送信する。
ステップS1412において、受信部306aは、ステップS1411で送信された検索結果Rを受信する。
ステップS1413において、出力部307aは、ステップS1412で受信された検索結果Rを通知するメッセージをデータ検索者に対して出力する。例えば、出力部307aは、検索結果Rに含まれている各(ID(D),p)に対して、「ID(D)のp番目の位置に検索データが現れる」とのメッセージを出力する。集合Rが空集合だった場合は、出力部307aが「どのデータにも検索データは含まれていない」とのメッセージを出力する。
ステップS1413により、検索システム800の検索処理は終了する。
***実施の形態の効果の説明***
本実施の形態によれば、例えば、以下のような効果を得ることができる。
(1)本実施の形態では、保管データを暗号化して保管しているため、たとえ管理装置500から保管暗号化データが漏洩しても、保管データの中身を知られることはない。
(2)本実施の形態では、検索データも暗号化したまま処理することができるため、検索暗号化データから検索データの中身を知られることはない。
(3)本実施の形態では、保管暗号化データと暗号化桁表現付検索データから得られる検索結果にはデータ名と位置情報しか現れないため、鍵Kをもたないエンティティに対しては保管データ及び検索データの中身を知られることはない。
以上、本発明の実施の形態について説明したが、これら2つの実施の形態を組み合わせて実施しても構わない。
あるいは、これら2つの実施の形態のうち、1つを部分的に実施しても構わない。
あるいは、これら2つの実施の形態を部分的に組み合わせて実施しても構わない。
なお、本発明は、これらの実施の形態に限定されるものではなく、必要に応じて種々の変更が可能である。
***ハードウェア構成の説明***
最後に、ハードウェア構成の補足説明を行う。
図9に示すプロセッサ901は、プロセッシングを行うIC(Integrated Circuit)である。
プロセッサ901は、CPU(Central Processing Unit)、DSP(Digital Signal Processor)等である。
図9に示す補助記憶装置920は、ROM(Read Only Memory)、フラッシュメモリ、HDD(Hard Disk Drive)等である。
図9に示すメモリ902は、RAM(Random Access Memory)である。
図9に示す通信ボード903は、データを受信するレシーバー及びデータを送信するトランスミッターを含む。
通信ボード903は、例えば、通信チップ又はNIC(Network Interface Card)である。
図2〜図4及び図11〜図13の各構成要素を実現するプログラムは、磁気ディスク、フレキシブルディスク、光ディスク、コンパクトディスク、ブルーレイ(登録商標)ディスク、DVD等の可搬記憶媒体に記憶されてもよい。
また、図2〜図4及び図11〜図13の各構成要素の末尾の「部」を、「回路」又は「工程」又は「手順」又は「処理」に読み替えてもよい。
また、登録装置200、登録装置200a、検索装置300、検索装置300a、管理装置400及び管理装置400aは、ロジックIC(Integrated Circuit)、GA(Gate Array)、ASIC(Application Specific Integrated Circuit)、FPGA(Field−Programmable Gate Array)といった処理回路により実現されてもよい。
なお、本明細書では、プロセッサと、メモリと、プロセッサとメモリの組合せと、処理回路との上位概念を、「プロセッシングサーキットリー」という。
つまり、プロセッサと、メモリと、プロセッサとメモリの組合せと、処理回路とは、それぞれ「プロセッシングサーキットリー」の具体例である。
100 検索システム、101 ネットワーク、200 登録装置、200a 登録装置、201 入力部、202 数値判定部、203 データ分割部、204 桁表現文字列追加部、205 部分文字列生成部、206 位置情報割当部、207 送信部、207a 送信部、208 受信部、209 鍵保管部、210 暗号化部、300 検索装置、300a 検索装置、301 入力部、302 検索範囲分割部、303 検索データ生成部、304 桁表現文字列追加部、305 送信部、305a 送信部、306 受信部、306a 受信部、307 出力部、307a 出力部、308 鍵保管部、309 暗号化部、310 復号部、401 受信部、401a 受信部、402 データ保管部、402a データ保管部、403 照合部、403a 照合部、404 送信部、800 検索システム、901 プロセッサ、902 メモリ、903 通信ボード、904 ディスプレイ、905 キーボード、906 マウス、920 補助記憶装置、921 OS、922 プログラム、923 ファイル、1200 鍵生成装置、1201 鍵生成部、1202 パラメータ生成部、1203 送信部。

Claims (8)

  1. 1桁以上の数字の配列である数値の各桁の数字と、桁を表現する記号である桁表現との桁ごとの対応付けにより前記数値を管理する管理装置に、検索条件を送信する検索装置であって、
    検索対象である、それぞれが1桁以上の数字の配列である複数の検索対象数値を、桁数の共通性及び上位桁からの数字の配列の共通性を基準にしてグルーピングして、1つ以上の数値グループを生成するグルーピング部と、
    数値グループごとに、数値グループに含まれる検索対象数値間で数字の配列が共通している範囲である配列共通範囲の各桁の数字と、前記配列共通範囲の各桁の前記桁表現とを対応付けて検索条件要素を生成し、数値グループごとの前記検索条件要素を統合して前記検索条件を生成する検索条件生成部と、
    前記検索条件生成部により生成された前記検索条件を前記管理装置に送信する送信部とを有する検索装置。
  2. 前記グルーピング部は、
    前記複数の検索対象数値から、相互に桁数が一致し、最下位桁の数字のみが異なる検索対象数値を抽出し、抽出した検索対象数値が含まれる数値グループを生成する請求項1に記載の検索装置。
  3. 前記検索装置は、更に、
    前記検索条件生成部により生成された前記検索条件を暗号化する暗号化部を有し、
    前記送信部は、
    前記暗号化部により暗号化された前記検索条件を前記管理装置に送信する請求項1に記載の検索装置。
  4. 1桁以上の数字の配列である数値の各桁の数字と、桁を表現する記号である桁表現との桁ごとの対応付けにより前記数値を管理する管理装置と、
    前記管理装置に検索条件を送信する検索装置とを有する検索システムであって、
    前記検索装置は、
    検索対象である、それぞれが1桁以上の数字の配列である複数の検索対象数値を、桁数の共通性及び上位桁からの数字の配列の共通性を基準にしてグルーピングして、1つ以上の数値グループを生成するグルーピング部と、
    数値グループごとに、数値グループに含まれる検索対象数値間で数字の配列が共通している範囲である配列共通範囲の各桁の数字と、前記配列共通範囲の各桁の前記桁表現とを対応付けて検索条件要素を生成し、数値グループごとの前記検索条件要素を統合して前記検索条件を生成する検索条件生成部と、
    前記検索条件生成部により生成された前記検索条件を前記管理装置に送信する送信部とを有する検索システム。
  5. 前記検索システムは、更に、
    前記管理装置に管理させる、1桁以上の数字の配列である管理対象数値の各桁の数字に、桁ごとに前記桁表現を対応付け、
    前記管理対象数値の各桁の数字と前記桁表現との桁ごとの対応付けが示される対応付け情報を前記管理装置に送信する登録装置を有し、
    前記管理装置は、
    前記対応付け情報を用いて前記管理対象数値を管理する請求項4に記載の検索システム。
  6. 前記登録装置は、
    前記対応付け情報を暗号化し、暗号化された前記対応付け情報を前記管理装置に送信し、
    前記管理装置は、
    暗号化された前記対応付け情報を用いて前記管理対象数値を管理し、
    前記検索装置は、更に、
    前記検索条件生成部により生成された前記検索条件を暗号化する暗号化部を有し、
    前記送信部は、
    前記暗号化部により暗号化された前記検索条件を前記管理装置に送信する請求項4に記載の検索システム。
  7. 1桁以上の数字の配列である数値の各桁の数字と、桁を表現する記号である桁表現との桁ごとの対応付けにより前記数値を管理する管理装置に、検索条件を送信するコンピュータが、
    検索対象である、それぞれが1桁以上の数字の配列である複数の検索対象数値を、桁数の共通性及び上位桁からの数字の配列の共通性を基準にしてグルーピングして、1つ以上の数値グループを生成し、
    数値グループごとに、数値グループに含まれる検索対象数値間で数字の配列が共通している範囲である配列共通範囲の各桁の数字と、前記配列共通範囲の各桁の前記桁表現とを対応付けて検索条件要素を生成し、数値グループごとの前記検索条件要素を統合して前記検索条件を生成し、
    生成された前記検索条件を前記管理装置に送信する検索方法。
  8. 1桁以上の数字の配列である数値の各桁の数字と、桁を表現する記号である桁表現との桁ごとの対応付けにより前記数値を管理する管理装置に、検索条件を送信するコンピュータに、
    検索対象である、それぞれが1桁以上の数字の配列である複数の検索対象数値を、桁数の共通性及び上位桁からの数字の配列の共通性を基準にしてグルーピングして、1つ以上の数値グループを生成するグルーピング処理と、
    数値グループごとに、数値グループに含まれる検索対象数値間で数字の配列が共通している範囲である配列共通範囲の各桁の数字と、前記配列共通範囲の各桁の前記桁表現とを対応付けて検索条件要素を生成し、数値グループごとの前記検索条件要素を統合して前記検索条件を生成する検索条件生成処理と、
    前記検索条件生成処理により生成された前記検索条件を前記管理装置に送信する送信処理とを実行させる検索プログラム。
JP2019514916A 2017-04-25 2017-04-25 検索装置、検索システム、検索方法及び検索プログラム Active JP6584723B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2017/016358 WO2018198192A1 (ja) 2017-04-25 2017-04-25 検索装置、検索システム、検索方法及び検索プログラム

Publications (2)

Publication Number Publication Date
JP6584723B2 true JP6584723B2 (ja) 2019-10-02
JPWO2018198192A1 JPWO2018198192A1 (ja) 2019-11-07

Family

ID=63919543

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019514916A Active JP6584723B2 (ja) 2017-04-25 2017-04-25 検索装置、検索システム、検索方法及び検索プログラム

Country Status (5)

Country Link
US (1) US11106740B2 (ja)
EP (1) EP3605360A4 (ja)
JP (1) JP6584723B2 (ja)
CN (1) CN110546631A (ja)
WO (1) WO2018198192A1 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020136884A1 (ja) * 2018-12-28 2020-07-02 三菱電機株式会社 秘匿検索システムおよび秘匿検索方法
CN116860828A (zh) * 2023-06-16 2023-10-10 深圳市世强元件网络有限公司 一种区间数值检索方法、存储介质及计算机

Family Cites Families (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6038427B2 (ja) 1976-07-12 1985-08-31 関西ペイント株式会社 水性被覆用組成物
JP3141428B2 (ja) * 1990-06-29 2001-03-05 株式会社日立製作所 数値検索装置およびその方法
JP2519130B2 (ja) 1991-01-10 1996-07-31 株式会社テレマティーク国際研究所 マルチキ―ワ―ド情報検索処理方式および検索ファイル作成装置
JP2519129B2 (ja) 1991-01-10 1996-07-31 株式会社テレマティーク国際研究所 マルチキ―ワ―ド情報検索処理方式および検索ファイル作成装置
JP3143079B2 (ja) 1997-05-30 2001-03-07 松下電器産業株式会社 辞書索引作成装置と文書検索装置
JP2005101883A (ja) 2003-09-25 2005-04-14 Hitachi Ltd 電子メール文書原本性保証装置
JP4395611B2 (ja) 2003-10-28 2010-01-13 独立行政法人情報通信研究機構 暗号化データベース検索装置および方法ならびに暗号化データベース検索プログラム
JP2006072585A (ja) 2004-08-31 2006-03-16 Planet:Kk 移動体通信端末を用いた認証方法
JP2006113704A (ja) 2004-10-13 2006-04-27 Toshiba Corp 医用システムのパスワード管理方法及び医用装置用パスワード管理システム
WO2008047432A1 (fr) * 2006-10-19 2008-04-24 Fujitsu Limited Programme de recherche d'informations, supports d'enregistrement comprenant un tel programme enregistré, procédé de recherche d'informations, dispositif de recherche d'informations
TW201027375A (en) 2008-10-20 2010-07-16 Ibm Search system, search method and program
US20100169376A1 (en) * 2008-12-29 2010-07-01 Yahoo! Inc. Visual search engine for personal dating
JP5140026B2 (ja) 2009-03-19 2013-02-06 株式会社日立製作所 データベース処理方法、データベース処理プログラム、および、暗号化装置
JP5425307B2 (ja) 2010-07-08 2014-02-26 三菱電機株式会社 キーワード変換装置、キーワード変換プログラム、記録媒体及びキーワード変換方法
JP5412414B2 (ja) 2010-12-08 2014-02-12 株式会社日立製作所 検索可能暗号処理システム
US8429421B2 (en) 2010-12-17 2013-04-23 Microsoft Corporation Server-side encrypted pattern matching
WO2012095973A1 (ja) 2011-01-13 2012-07-19 三菱電機株式会社 データ処理装置及びデータ保管装置
JP5552448B2 (ja) * 2011-01-28 2014-07-16 株式会社日立製作所 検索式生成装置、検索システム、検索式生成方法
JP2012164031A (ja) 2011-02-03 2012-08-30 Mitsubishi Electric Corp データ処理装置及びデータ保管装置及びデータ処理方法及びデータ保管方法及びプログラム
JP5442161B2 (ja) 2011-02-22 2014-03-12 三菱電機株式会社 検索システム、検索システムの検索方法、情報処理装置、検索プログラム、対応キーワード管理装置および対応キーワード管理プログラム
WO2012176374A1 (ja) * 2011-06-21 2012-12-27 日本電気株式会社 数値範囲検索装置、数値範囲検索方法、および数値範囲検索プログラム
US9311494B2 (en) 2011-12-01 2016-04-12 Hitachi, Ltd. Secure search method and secure search device
JP5800720B2 (ja) 2012-01-24 2015-10-28 三菱電機株式会社 情報処理装置及び情報処理方法及びプログラム
JP5255154B1 (ja) 2012-12-26 2013-08-07 株式会社エアー 部分一致検索の可能な暗号システム
CN104995621B (zh) 2013-02-25 2018-06-05 三菱电机株式会社 服务器装置以及隐匿检索***
JP6054790B2 (ja) * 2013-03-28 2016-12-27 三菱スペース・ソフトウエア株式会社 遺伝子情報記憶装置、遺伝子情報検索装置、遺伝子情報記憶プログラム、遺伝子情報検索プログラム、遺伝子情報記憶方法、遺伝子情報検索方法及び遺伝子情報検索システム
JP6144992B2 (ja) 2013-08-08 2017-06-07 株式会社日立製作所 検索可能暗号処理システム及び方法
JP6208586B2 (ja) 2014-01-16 2017-10-04 株式会社日立製作所 検索可能暗号処理システムおよび検索可能暗号処理方法
US9792447B2 (en) * 2014-06-30 2017-10-17 Nicira, Inc. Method and apparatus for differently encrypting different flows
JP6381128B2 (ja) 2015-02-05 2018-08-29 国立研究開発法人産業技術総合研究所 検索システム、クライアント、サーバ、検索プログラムおよび検索方法
JP6038427B1 (ja) 2016-01-15 2016-12-07 三菱電機株式会社 暗号化装置、暗号化方法、暗号化プログラム及び保管装置

Also Published As

Publication number Publication date
CN110546631A (zh) 2019-12-06
EP3605360A4 (en) 2020-02-12
US11106740B2 (en) 2021-08-31
WO2018198192A1 (ja) 2018-11-01
EP3605360A1 (en) 2020-02-05
JPWO2018198192A1 (ja) 2019-11-07
US20200142933A1 (en) 2020-05-07

Similar Documents

Publication Publication Date Title
EP3012754B1 (en) Searchable symmetric encryption processing system
CN106815350B (zh) 一种云环境中动态的密文多关键词模糊搜索方法
US10872158B2 (en) Secret search system, secret search method, and computer readable medium
US20120109990A1 (en) Information search system, information management device, information search method, information management method, and recording medium
US9300471B2 (en) Information processing apparatus, information processing method, and program
CN109063509A (zh) 一种基于关键词语义排序的可搜索加密方法
Wang et al. Privacy-preserving ranked multi-keyword fuzzy search on cloud encrypted data supporting range query
JP6038427B1 (ja) 暗号化装置、暗号化方法、暗号化プログラム及び保管装置
JP2012164031A (ja) データ処理装置及びデータ保管装置及びデータ処理方法及びデータ保管方法及びプログラム
Rane et al. Multi-user multi-keyword privacy preserving ranked based search over encrypted cloud data
EP3264314B1 (en) System and method for searching over encrypted data
CN114285575B (zh) 图像加密和解密方法和装置、存储介质及电子装置
JP6584723B2 (ja) 検索装置、検索システム、検索方法及び検索プログラム
CN108416037B (zh) 云环境中基于两级索引的中心关键词密文搜索方法
CN108027816A (zh) 数据管理***、数据管理方法及程序
KR101489876B1 (ko) 암호화 문서 검색 시스템 및 방법
JP2019207281A (ja) 大小判定サーバ、大小判定暗号化システム、及び大小判定方法
JPWO2017126000A1 (ja) 暗号化装置、暗号化プログラム及び暗号化方法
JP6672451B2 (ja) 暗号化検索インデックスマージサーバ、暗号化検索インデックスマージシステム、及び暗号化検索インデックスマージ方法
JP5800721B2 (ja) 検索装置、検索端末装置、データ登録装置、検索方法、検索プログラム、データ登録方法およびデータ登録プログラム
US20220277100A1 (en) Searchable encryption system, searchable encryption method, and non-transitory computer-readable recording medium
CN111602127B (zh) 数据管理装置、数据管理方法和计算机能读取的存储介质
CN115238689B (zh) 分词分句索引处理方法、文档检索方法、设备及存储介质
CN114860888A (zh) 面向医疗数据支持隐私保护的中文密文多关键字模糊搜索方法
CN117413489A (zh) 加密标签生成装置、隐匿检索***、加密标签生成方法和加密标签生成程序

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190513

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20190513

A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20190704

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20190806

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190903

R150 Certificate of patent or registration of utility model

Ref document number: 6584723

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250