JP6584723B2 - 検索装置、検索システム、検索方法及び検索プログラム - Google Patents
検索装置、検索システム、検索方法及び検索プログラム Download PDFInfo
- 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
Links
Images
Classifications
-
- 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
- G06F16/90348—Query processing by searching ordered data, e.g. alpha-numerically ordered data
-
- 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/9032—Query formulation
- G06F16/90324—Query formulation using system suggestions
- G06F16/90328—Query formulation using system suggestions using search space presentation or visualization, e.g. category or range presentation and selection
-
- 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/602—Providing 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の技術では、文書を構成するテキストが複数のブロックに分割される。また、各ブロックのハッシュ値が位置情報と共にテキストに付与され、テキストとハッシュ値と位置情報が登録される。そして、検索時に位置情報とハッシュ値を基にして文書が検索される。
より具体的には、特許文献2及び特許文献3の技術では、検索対象となるキーワード列が文字ごとに分解される。また、各文字の位置情報及びキーワードの属性情報が文字種ごとにグループ化された検索ファイルが生成される。そして、検索時に検索入力を構成する文字の位置情報を検索ファイルから取り出して照合することで、検索入力と文字順序が等しくかつキーワードの属性情報が同じキーワード列が検索ファイルから取り出される。
特許文献4の技術では、登録装置が、保管データである文字列データを文字ごとに分解し、各文字から生成した部分文字列を暗号化する。更に、登録装置が、暗号化した部分文字列を位置情報と共に暗号化して保管暗号化データを生成する。そして、登録装置が、保管暗号化データを管理装置に登録する。
また、検索時には、検索装置が、検索データである文字列データを暗号化して検索暗号化データを生成する。そして、検索装置は、検索暗号化データを管理装置に送信する。管理装置は、受信した検索暗号化データを位置情報と共に暗号化し、暗号化後の検索暗号化データを保管暗号化データと照合する。
上記の方法により、特許文献4では、保管データの文字列データ及び検索データの文字列データが管理装置内で露見することなく、部分的に文字列が一致する文字データを検索することができる。
しかしながら、文字データが数値であり、特定の数値範囲に含まれる数値を検索するという状況においては、該当しない文字データがノイズとして検索結果に含まれることがあるという課題がある。
例えば、「100〜109」という数値範囲に含まれる数値を検索する例を想定する。特許文献1〜4の技術では、「100〜109」の各値に共通する「10」という数字(文字列)を検索データにして検索を行うことができる。登録データに「100〜109」に該当しない「10」又は「1000」が含まれる場合がある。この場合には、これらの数値は検索データ「10」に合致する数字を含んでいるため、数値範囲「100〜109」に含まれる数値ではないにも関わらず、検索結果として出力されてしまう。
なお、このように検索の意図とは異なる検索結果が出力されないように、特定の数値範囲に含まれる数値の全てについて個別に検索を行うことが考えられる。しかし、特定の数値範囲に含まれる数値の個数に比例して検索を行う回数が増え、全体としての検索時間が増大してしまう。
1桁以上の数字の配列である数値の各桁の数字と、桁を表現する記号である桁表現との桁ごとの対応付けにより前記数値を管理する管理装置に、検索条件を送信する検索装置であって、
検索対象である、それぞれが1桁以上の数字の配列である複数の検索対象数値を、桁数の共通性及び上位桁からの数字の配列の共通性を基準にしてグルーピングして、1つ以上の数値グループを生成するグルーピング部と、
数値グループごとに、数値グループに含まれる検索対象数値間で数字の配列が共通している範囲である配列共通範囲の各桁の数字と、前記配列共通範囲の各桁の前記桁表現とを対応付けて検索条件要素を生成し、数値グループごとの前記検索条件要素を統合して前記検索条件を生成する検索条件生成部と、
前記検索条件生成部により生成された前記検索条件を前記管理装置に送信する送信部とを有する。
本実施の形態では、文字データが数値である場合に、特定の数値範囲に含まれる数値を検索する例を説明する。また、本実施の形態では、検索時間の増大を抑えつつ、正確な検索結果を出力する検索システムを説明する。
図1は、本実施の形態に係る検索システム100の構成例を示す。
図1に示すように、検索システム100は、複数の登録装置200と、複数の検索装置300と、管理装置400とを備える。
ネットワーク101は、複数の登録装置200と、複数の検索装置300と、管理装置400とを接続する通信路である。
例えば、ネットワーク101は、インターネット又は企業内に敷設されたLAN(Local Area Network)である。
ネットワーク101は、複数の登録装置200と、複数の検索装置300と、管理装置400とを接続する通信路である。
図1に示したように、検索システム100は、登録装置200と、検索装置300と、管理装置400とを備える。
以下では、登録装置200の構成、検索装置300の構成、管理装置400の構成について順番に説明する。
A={(wLdL),(wLdLwL−1dL−1),・・・,(wLdL・・・w1d1)}。
例えば、部分文字列生成部205は、桁表現付文字集合(1γ,2β,3α)から、A={(1γ),(1γ,2β),(1γ,2β,3α)}を生成する。
以降では、集合Aを部分文字列集合Aという。部分文字列集合Aには、数値データDNの各桁の数字と桁表現との桁ごとの対応関係が示される。部分文字列集合は、対応付け情報に相当する。
B={(L,wLdL),(L−1,wLdLwL−1dL−1),・・・,(1,wLdL・・・w1d1)}。
例えば、位置情報割当部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))を、保管データ集合という。
図3に示すように、検索装置300は、入力部301と、検索範囲分割部302と、検索式生成部303と、桁表現文字列追加部304と、送信部305と、受信部306と、出力部307とを備える。なお、図3には図示していないが、後述するように、検索装置300は、検索装置300の各構成要素で使用されるデータを記憶する記録媒体を備える。
ここで、検索範囲データsは、二つの数値(NS,NB)で構成されており、Ns≦NBである。
NSとNBと、NSとNBとの間の数値は、それぞれ、1桁以上の数字の配列である。これらNSとNBと、NSとNBとの間の数値は、それぞれ検索対象数値に相当する。
2.検索範囲分割部302は、NS,NS+1,・・・,NB−1,NBを、桁数ごとにグループに分け、1桁の数値はG1、2桁の数値はG2に配置し、・・・、l桁の数値はGlに配置する。
例えば、NS=17、NB=2121の場合、G1を空集合であり、G2={17,18,・・・,99}、G3={100,101,・・・,999}、G4={1000,1001,・・・,2121}である。
3.検索範囲分割部302は、Ga(a=1,・・・,l)のそれぞれについて、構成している数値を最上位桁の値でグループに分け、最上位桁が1の数値はGa1、最上位桁が2の数値はGa2、・・・、最上位桁が9の数値はGa9に配置する。ここで、検索範囲分割部302は、Gab(a=1,・・・,l、b=1,・・・,9)の内、空集合ではない、かつ、NSまたはNBを含まないグループを、分割範囲集合Gに加える。また、検索範囲分割部302は、NSを含むグループをGSとして生成し、NBを含むグループをGBとして生成する。
例えば、NS=17、NB=2121の場合、G1は空集合であり、G2={17,18,・・・,99}、G3={100,101,・・・,999}、G4={1000,1001,・・・,2121}である。このため、G11〜G19は空集合である。G21={17、18、19}、G22={20、21、・・・、29}、・・・、G41={1000、・・・、1999}、G42={2000、・・・、2121}である。検索範囲分割部302は、G22〜G41を分割範囲集合Gに加える。また、GS=G21、GB=G42である。
4.検索範囲分割部302は、M=2を設定する。
5.検索範囲分割部302は、GSを構成している数値を上位からM番目の桁の値でグループに分け、空集合ではない、かつ、NSを含まないグループを、分割範囲集合Gに加える。また、検索範囲分割部302は、NSを含むグループをGSに設定する。
6.ここで、GSを構成する数値がNSのみとなった場合、検索範囲分割部302は、以下の7に進む。GSを構成する数値がNS以外にもある場合は、検索範囲分割部302は、M=M+1を設定して、上記の5に戻る。
7.検索範囲分割部302は、M=2を設定する。
8.検索範囲分割部302は、GBを構成している数値を上位からM番目の桁の値でグループに分け、空集合ではない、かつ、NBを含まないグループを、分割範囲集合Gに加える。また、検索範囲分割部302は、NBを含むグループをGBに設定する。
9.ここで、GBを構成する数値がNBのみとなった場合、検索範囲分割部302は、以下の10に進む。GBを構成する数値がNB以外にもある場合は、検索範囲分割部302は、M=M+1を設定して、上記の8に戻る。
10.検索範囲分割部302は、GBとGSを分割範囲集合Gに加える。
検索範囲分割部302は、グルーピング部に相当する。また、検索範囲分割部302が行う処理は、グルーピング処理に相当する。
例えば、GC={w20、w21、・・・、w29}のとき、検索データFCは、(2、w2)と表現される。GC={w4w300、・・・、w4w399}のとき、検索データFCは、(3、w4w3)と表現される。
また、以降では、すべての検索データFCの集合を検索データ集合Fという。
以降では、すべての桁表現付検索データSCの集合を桁表現付検索データ集合Sという。
そして、桁表現文字列追加部304は、数値グループごとの桁表現付検索データSCを統合して桁表現付検索データ集合S(検索条件に相当)を生成する。
検索データ生成部303及び桁表現文字列追加部304は、検索条件生成部に相当する。また、検索データ生成部303及び桁表現文字列追加部304により行われる処理は、検索条件生成処理に相当する。
出力部307は、受信部306により受信された検索結果を通知するメッセージをデータ検索者に対して出力する。
照合部403は、すべての保管データ集合(ID(D),B(D))について、位置情報付部分文字列集合B(D)と、桁表現付検索データ集合Sに含まれている桁表現付検索データSCとを照合する。そして、照合部403は、桁表現付検索データSCと同じ要素が位置情報付部分文字列集合B(D)に含まれているかを確認する。桁表現付検索データSCと同じ要素が位置情報付部分文字列集合B(D)に含まれているならば、照合部403は、当該位置情報付部分文字列集合B(D)のID(D)を集合Rに加える。以上の処理の結果、最終的に生成される集合Rを検索結果Rという。
なお、照合部403は、受信部401が保管データ名も受信していれば、保管データ名に基づいてデータ保管部402から対象の保管データ集合(ID(D),B(D))のみを読み出す。そして、照合部403は、読み出した保管データ集合(ID(D),B(D))にのみ、上記の処理を行う。
図9は、実施の形態1に係る登録装置200と、検索装置300と、管理装置400とのハードウェア構成例を示す。
また、登録装置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として、検索データが記憶される。
以下では、本実施の形態に係る検索システム100の動作例を説明する。
図5及び図6は、検索システム100の登録処理を示すフローチャートである。
図5のステップS501〜ステップS507は、登録装置200が実行する処理である。図6のステップS508〜ステップS509は管理装置400が実行する処理である。
ここでwiを要素データと呼ぶ。データ分割部305は、文字列データである数値データDNを、数値データDNの始まりから終わりに向かうL個の要素データwL,...,w1に分割する。
A={(wLdL),(wLdLwL−1dL−1),・・・,(wLdL・・・w1d1)}。
B={(L,wLdL),(L−1,wLdLwL−1dL−1),・・・,(1,wLdL・・・w1d1)}。
ステップS509により、検索システム100の登録処理は終了する。
図7のステップS601〜ステップS605及びステップS610〜ステップS611は検索装置300が実行する処理である。図8のステップS606〜ステップS609は管理装置400が実行する処理である。
1.検索範囲分割部302は、空集合の分割範囲集合Gを生成する。
2.検索範囲分割部302は、NS,NS+1,・・・,NB−1,NBを、桁数ごとにグループに分け、1桁の数値はG1、2桁の数値はG2に配置し、・・・、l桁の数値はGlに配置する。
3.検索範囲分割部302は、Ga(a=1,・・・,l)のそれぞれについて、構成している数値を最上位桁の値でグループに分け、最上位桁が1の数値はGa1、最上位桁が2の数値はGa2、・・・、最上位桁が9の数値はGa9に配置する。ここで、検索範囲分割部302は、Gab(a=1,・・・,l、b=1,・・・,9)の内、空集合ではない、かつ、NSまたはNBを含まないグループを、分割範囲集合Gに加える。また、検索範囲分割部302は、NSを含むグループをGSとして生成し、NBを含むグループをGBとして生成する。
4.検索範囲分割部302は、M=2を設定する。
5.検索範囲分割部302は、GSを構成している数値を上位からM番目の桁の値でグループに分け、空集合ではない、かつ、NSを含まないグループを、分割範囲集合Gに加える。また、検索範囲分割部302は、NSを含むグループをGSに設定する。
6.ここで、GSを構成する数値がNSのみとなった場合、検索範囲分割部302は、以下の7に進む。GSを構成する数値がNS以外にもある場合は、検索範囲分割部302は、M=M+1を設定して、上記の5に戻る。
7.検索範囲分割部302は、M=2を設定する。
8.検索範囲分割部302は、GBを構成している数値を上位からM番目の桁の値でグループに分け、空集合ではない、かつ、NBを含まないグループを、分割範囲集合Gに加える。また、検索範囲分割部302は、NBを含むグループをGBに設定する。
9.ここで、GBを構成する数値がNBのみとなった場合、検索範囲分割部302は、以下の10に進む。GBを構成する数値がNB以外にもある場合は、検索範囲分割部302は、M=M+1を設定して、上記の8に戻る。
10.検索範囲分割部302は、GBとGSを分割範囲集合Gに加える。
前述したように、すべての検索データFCの集合を検索データ集合Fという。
前述したように、すべての桁表現付検索データSCの集合を桁表現付検索データ集合Sという。
照合部403は、すべての保管データ集合(ID(D),B(D))について、位置情報付部分文字列集合B(D)と、桁表現付検索データ集合Sに含まれている桁表現付検索データSCとを照合する。そして、照合部403は、桁表現付検索データSCと同じ要素が位置情報付部分文字列集合B(D)に含まれているか否かを確認する。もし、桁表現付検索データSCと同じ要素が位置情報付部分文字列集合B(D)に含まれているならば、照合部403は、当該位置情報付部分文字列集合B(D)のID(D)を集合Rに加える。以上の処理の結果、最終的に生成される集合Rを検索結果Rという。
以下では、保管データD1=123A、
ID(D1)=1、
また、保管データD2=B12、
ID(D2)=2、
検索範囲データs=(28,125)、
桁表現(d1,d2,d3)=(α,β,γ)
を想定する。
ステップ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=(28,125)より、NS=28,NB=125であるため、検索範囲分割部302は、空集合のG1を生成する。また、検索範囲分割部302は、G2={28,・・・,99}及びG3={100,・・・,125}を生成する。
また、検索範囲分割部302は、空集合のG21を生成する。また、検索範囲分割部302は、G22={28,29}、・・・、G29={90,・・・,99}、G31={100,・・・,125}を生成する。
ここで、G22はNSを含み、G31はNBを含む。このため、G={G23,・・・,G29}
である。
次に、検索範囲分割部302は、M=2を設定する。
このため、検索範囲分割部302は、G22に対して、上位から2番目の桁の値でグループ分けを行う。この結果、G22は、{28}と{29}にグループ分けされる。そして、{29}がGに加えられる。
また、{28}はNS(=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はNB(=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}はNB(=125)のみで構成されるグループである。このため、{125}もGに加えられる。
従って、G={G23,・・・,G29,{28},{29},G310,G311,{121},{122},{123},{124},{125}}が得られる。
前述したように、G={G23,・・・,G29,{28},{29},G310,G311,{121},{122},{123},{124},{125}}が得られている。
検索データ生成部303は、G23からF23を以下のように生成する。
G23={30,31,・・・,39}より、G23を構成する値は3w1と表現できる。つまり、j=2、w2=3である。
このため、検索データ生成部303は、F23=(2,3)を生成する。
同様に、検索データ生成部303は、G24〜G29からF24〜F29を以下のように生成する。
F24=(2,4)、F25=(2,5)、F26=(2,6)、F27=(2,7)、F28=(2,8)、F29=(2,9)。
また、検索データ生成部303は、G310、G311からF310、F311を以下のように生成する。
G310={100,101,・・・,109}、G311={110,111,・・・,119}である。このため、G310を構成する値は10w1と表現でき、j=2、w3w2=10である。G311を構成する値は11w1と表現でき、j=2、w3w2=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)}
を生成する。
(d1,d2,d3)=(A,B,C)であるため、桁表現文字列追加部304は、S={(2,3B),・・・,(2,9B),(2,1C0B),(2,1C1B),(1,2B8A),(1,2B9A),(1,1C2B1A),・・・,(1,1C2B5A)}を生成する。
ステップS608において、照合部403は、桁表現付検索データ集合Sの要素がB(D1)及びB(D2)に含まれているか否かを確認する。
本例では、B(D1)には(1,1C2B3A)が含まれ、B(D2)にはSの要素は含まれていない。
よって、ID(D1)=1であるため、照合部403は、検索結果R={1}を生成する。
本実施の形態によれば、例えば、以下のような効果を得ることができる。
(1)本実施の形態によれば、登録処理の時点で保管データの中から数値を抽出しているため、検索処理において保管データから数値を抽出する必要がなく、検索速度を向上させることができる。
(2)また、本実施の形態によれば、保管データと検索データの両方に桁表現が付与されているため、検索条件に部分的に合致するが検索条件から外れる数値が検索結果に含まれるという事態を回避することができる。本実施の形態によれば、例えば10を検索条件として指定した際に100、210等が検索結果に含まれるという事態を回避することができる。このため、本実施の形態によれば、正確な検索結果を得ることができる。
(3)また、本実施の形態によれば、保管データと検索データの両方に桁表現が付与されているため、複数の数値に対する検索条件を一つの検索データにまとめることができる。本実施の形態によれば、例えば10〜19に対する検索条件を1Bとして一つの検索データにまとめることができる。このため、本実施の形態によれば、検索回数が増えることによる検索時間の増大を抑えることができる。
本実施の形態では、実施の形態1に示す手順に秘匿検索技術を適用する例を説明する。
本実施の形態では、主に実施の形態1との差異を説明する。
なお、以下で説明していない事項は、実施の形態1と同様である。
図10は、本実施の形態に係る検索システム800の構成例を示す。
図10に示すように、本実施の形態に係る検索システム800は、複数の登録装置200aと、複数の検索装置300aと、管理装置400aと、鍵生成装置1200を備える。
図10に示したように、検索システム800は、登録装置200aと、検索装置300aと、管理装置400aと、鍵生成装置1200を備える。
以下では、登録装置200aの構成、検索装置300aの構成、管理装置400aの構成、鍵生成装置1200の構成について順番に説明する。
以降では、すべての(i,w)の暗号文の集合を保管暗号化データC(D)という。また、以降では、ペア(ID(D),C(D))を保管暗号化データ集合という。
図12に示すように、検索装置300aは、入力部301と、検索範囲分割部302と、検索式生成部303と、桁表現文字列追加部304と、送信部305aと、受信部306aと、出力部307aと、鍵保管部308と、暗号化部309と、復号部310とを備える。なお、図12では図示していないが、検索装置300aは、検索装置300aの各構成要素で使用されるデータを記憶する記録媒体を備える。
以降、桁表現付検索データ集合Sに含まれるすべての桁表現付検索データSCを暗号化した検索暗号化データの集合を検索暗号化データ集合Q(S)という。
図13に示すように、管理装置400aは、受信部401aと、データ保管部402aと、照合部403aと、送信部404とを備える。なお、図13では図示していないが、管理装置400aは、管理装置400aの各構成要素で使用されるデータを記憶する記録媒体を備える。
照合部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))にのみ、上記の処理を行う。
図14に示すように、鍵生成装置1200は、鍵生成部1201と、パラメータ生成部1202と、送信部1203とを備える。なお、図14では図示していないが、鍵生成装置1200は、鍵生成装置1200の各構成要素で使用されるデータを記憶する記録媒体を備える。
また、鍵生成装置1200のハードウェア構成例も、図9に示す通りである。つまり、図14に示す構成要素がプログラム922として補助記憶装置920に格納されている。そして、プロセッサ901がプログラム922を実行して、図14に示す構成要素を実現する。
以下では、本実施の形態に係る検索システム800の動作例を説明する。
図15及び図16は、検索システム800の登録処理を示すフローチャートである。
図15のステップS1301〜ステップS1309は登録装置200aが実行する処理である。図16のステップS1310〜ステップS1311は管理装置400aが実行する処理である。
前述のように、すべての(i,w)を暗号化した暗号文の集合を保管暗号化データC(D)という。また、前述したように、ペア(ID(D),C(D))を保管暗号化データ集合という。
ステップS1311により、検索システム800の登録処理は終了する。
図17のステップS1401〜ステップS1406及びステップS1412〜ステップS1413は検索装置300aが実行する処理である。図18のステップS1407〜ステップS1411は管理装置400aが実行する処理である。
前述したように、桁表現付検索データ集合Sに含まれるすべての桁表現付検索データSCを暗号化して得られる検索暗号化データの集合は検索暗号化データ集合Q(S)という。
ステップS1413により、検索システム800の検索処理は終了する。
本実施の形態によれば、例えば、以下のような効果を得ることができる。
(1)本実施の形態では、保管データを暗号化して保管しているため、たとえ管理装置500から保管暗号化データが漏洩しても、保管データの中身を知られることはない。
(2)本実施の形態では、検索データも暗号化したまま処理することができるため、検索暗号化データから検索データの中身を知られることはない。
(3)本実施の形態では、保管暗号化データと暗号化桁表現付検索データから得られる検索結果にはデータ名と位置情報しか現れないため、鍵Kをもたないエンティティに対しては保管データ及び検索データの中身を知られることはない。
あるいは、これら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)である。
また、登録装置200、登録装置200a、検索装置300、検索装置300a、管理装置400及び管理装置400aは、ロジックIC(Integrated Circuit)、GA(Gate Array)、ASIC(Application Specific Integrated Circuit)、FPGA(Field−Programmable Gate Array)といった処理回路により実現されてもよい。
なお、本明細書では、プロセッサと、メモリと、プロセッサとメモリの組合せと、処理回路との上位概念を、「プロセッシングサーキットリー」という。
つまり、プロセッサと、メモリと、プロセッサとメモリの組合せと、処理回路とは、それぞれ「プロセッシングサーキットリー」の具体例である。
Claims (8)
- 1桁以上の数字の配列である数値の各桁の数字と、桁を表現する記号である桁表現との桁ごとの対応付けにより前記数値を管理する管理装置に、検索条件を送信する検索装置であって、
検索対象である、それぞれが1桁以上の数字の配列である複数の検索対象数値を、桁数の共通性及び上位桁からの数字の配列の共通性を基準にしてグルーピングして、1つ以上の数値グループを生成するグルーピング部と、
数値グループごとに、数値グループに含まれる検索対象数値間で数字の配列が共通している範囲である配列共通範囲の各桁の数字と、前記配列共通範囲の各桁の前記桁表現とを対応付けて検索条件要素を生成し、数値グループごとの前記検索条件要素を統合して前記検索条件を生成する検索条件生成部と、
前記検索条件生成部により生成された前記検索条件を前記管理装置に送信する送信部とを有する検索装置。 - 前記グルーピング部は、
前記複数の検索対象数値から、相互に桁数が一致し、最下位桁の数字のみが異なる検索対象数値を抽出し、抽出した検索対象数値が含まれる数値グループを生成する請求項1に記載の検索装置。 - 前記検索装置は、更に、
前記検索条件生成部により生成された前記検索条件を暗号化する暗号化部を有し、
前記送信部は、
前記暗号化部により暗号化された前記検索条件を前記管理装置に送信する請求項1に記載の検索装置。 - 1桁以上の数字の配列である数値の各桁の数字と、桁を表現する記号である桁表現との桁ごとの対応付けにより前記数値を管理する管理装置と、
前記管理装置に検索条件を送信する検索装置とを有する検索システムであって、
前記検索装置は、
検索対象である、それぞれが1桁以上の数字の配列である複数の検索対象数値を、桁数の共通性及び上位桁からの数字の配列の共通性を基準にしてグルーピングして、1つ以上の数値グループを生成するグルーピング部と、
数値グループごとに、数値グループに含まれる検索対象数値間で数字の配列が共通している範囲である配列共通範囲の各桁の数字と、前記配列共通範囲の各桁の前記桁表現とを対応付けて検索条件要素を生成し、数値グループごとの前記検索条件要素を統合して前記検索条件を生成する検索条件生成部と、
前記検索条件生成部により生成された前記検索条件を前記管理装置に送信する送信部とを有する検索システム。 - 前記検索システムは、更に、
前記管理装置に管理させる、1桁以上の数字の配列である管理対象数値の各桁の数字に、桁ごとに前記桁表現を対応付け、
前記管理対象数値の各桁の数字と前記桁表現との桁ごとの対応付けが示される対応付け情報を前記管理装置に送信する登録装置を有し、
前記管理装置は、
前記対応付け情報を用いて前記管理対象数値を管理する請求項4に記載の検索システム。 - 前記登録装置は、
前記対応付け情報を暗号化し、暗号化された前記対応付け情報を前記管理装置に送信し、
前記管理装置は、
暗号化された前記対応付け情報を用いて前記管理対象数値を管理し、
前記検索装置は、更に、
前記検索条件生成部により生成された前記検索条件を暗号化する暗号化部を有し、
前記送信部は、
前記暗号化部により暗号化された前記検索条件を前記管理装置に送信する請求項4に記載の検索システム。 - 1桁以上の数字の配列である数値の各桁の数字と、桁を表現する記号である桁表現との桁ごとの対応付けにより前記数値を管理する管理装置に、検索条件を送信するコンピュータが、
検索対象である、それぞれが1桁以上の数字の配列である複数の検索対象数値を、桁数の共通性及び上位桁からの数字の配列の共通性を基準にしてグルーピングして、1つ以上の数値グループを生成し、
数値グループごとに、数値グループに含まれる検索対象数値間で数字の配列が共通している範囲である配列共通範囲の各桁の数字と、前記配列共通範囲の各桁の前記桁表現とを対応付けて検索条件要素を生成し、数値グループごとの前記検索条件要素を統合して前記検索条件を生成し、
生成された前記検索条件を前記管理装置に送信する検索方法。 - 1桁以上の数字の配列である数値の各桁の数字と、桁を表現する記号である桁表現との桁ごとの対応付けにより前記数値を管理する管理装置に、検索条件を送信するコンピュータに、
検索対象である、それぞれが1桁以上の数字の配列である複数の検索対象数値を、桁数の共通性及び上位桁からの数字の配列の共通性を基準にしてグルーピングして、1つ以上の数値グループを生成するグルーピング処理と、
数値グループごとに、数値グループに含まれる検索対象数値間で数字の配列が共通している範囲である配列共通範囲の各桁の数字と、前記配列共通範囲の各桁の前記桁表現とを対応付けて検索条件要素を生成し、数値グループごとの前記検索条件要素を統合して前記検索条件を生成する検索条件生成処理と、
前記検索条件生成処理により生成された前記検索条件を前記管理装置に送信する送信処理とを実行させる検索プログラム。
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)
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)
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 | 三菱電機株式会社 | 暗号化装置、暗号化方法、暗号化プログラム及び保管装置 |
-
2017
- 2017-04-25 EP EP17907937.1A patent/EP3605360A4/en not_active Ceased
- 2017-04-25 CN CN201780089701.9A patent/CN110546631A/zh active Pending
- 2017-04-25 WO PCT/JP2017/016358 patent/WO2018198192A1/ja unknown
- 2017-04-25 US US16/490,445 patent/US11106740B2/en active Active
- 2017-04-25 JP JP2019514916A patent/JP6584723B2/ja active Active
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 |