JP5420085B2 - データ処理装置及びデータ保管装置 - Google Patents
データ処理装置及びデータ保管装置 Download PDFInfo
- Publication number
- JP5420085B2 JP5420085B2 JP2012552574A JP2012552574A JP5420085B2 JP 5420085 B2 JP5420085 B2 JP 5420085B2 JP 2012552574 A JP2012552574 A JP 2012552574A JP 2012552574 A JP2012552574 A JP 2012552574A JP 5420085 B2 JP5420085 B2 JP 5420085B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- bit
- encrypted
- search
- index
- 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 OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0894—Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
- G06F21/6272—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database by registering files or documents with a third party
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/2107—File encryption
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- Bioethics (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Storage Device Security (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Description
近年は、クラウドサービスなどのインターネット上でデータを管理する際に、サーバ管理者による盗聴からも機密情報を守るためのセキュリティ技術として注目されている。
確定的暗号とは、同一のキーワードを暗号化した際に、何回繰り返して暗号化しても同一の暗号文が得られるという特徴を持つ暗号化方式である。
そのため、従来のデータベースで実現されている高速化手法を利用して、検索を高速に実施することができるという特徴がある。
その一方で、暗号化データの出現頻度をカウントする事ができるため、例えばキーワードが名字であった場合、一般的に知られている名字の人口比率の情報等を元にして、暗号化データの中身が推測できてしまうという欠点も持っている(例えば非特許文献2)。
したがって、単純に暗号化データ同士を比較してもキーワードが同一かどうか分からないため、確定的暗号で問題となっていた出現頻度のカウントによるキーワードの推測ができない様になっており、その安全性が高い事が特徴である。
その一方で、キーワードの同一性すら分からないため、従来のデータベースで実現されていた高速化手法が使えず、検索が遅いという欠点がある(例えば非特許文献1、非特許文献3、非特許文献4、非特許文献5)。
これは、一般的な検索では同じキーワードで2回以上検索される事があるという特徴に着目したもので、1回目の検索では時間がかかるものの、その結果をキャッシュして2回目以降はキャッシュした結果を返すだけにする事で、検索の高速化を図るものである(例えば特許文献1)。
まず、データを暗号化するユーザ(暗号化者)は、データを暗号化して暗号化データを作成するが、それと同時に暗号化データを検索するためのキーワードを暗号化データに関連付ける。
もちろん関連付けたキーワードもデータに関する情報であるため、これも暗号化して暗号化タグを生成し、暗号化データと暗号化タグをデータセンタ装置401に保管する。
暗号化タグは1個である必要はなく、複数関連付ける事ができる。
また、暗号化タグからキーワードが漏れる事はない。
検索クエリは、秘密鍵を用いてキーワードをランダム化したものであるため、検索クエリ自身から秘密鍵を類推するのは難しい。
そして、この検索クエリをデータセンタ装置401に送付し、検索を要求する。
検索者から検索クエリを受け取ったら、自身が保管する暗号化タグの中から、検索クエリの生成に用いられたキーワードと同一のキーワードを含むものを検索する。
この時、データセンタ装置401は秘匿検索のための特殊な演算を行う事によって、暗号化タグを復号してキーワードを取り出すことなく、暗号化タグのキーワードと、検索クエリのキーワードが同一かどうかを判定できる。
そして、キーワードが検索クエリと同一と判定された暗号化タグと関連付けられた暗号化データを検索者に返却する。
上述の従来技術は、いずれも公開鍵方式の秘匿検索方式である。
これは、前述の様に、同一のキーワードを暗号化した際に、何回繰り返して暗号化しても同一の暗号化タグが得られるという特徴を持つ。
そのため、暗号化タグのデータビットを比較する事でキーワードの同一性が判定でき、かつ暗号化タグ同士で大小比較を行う事ができるため、従来のデータベースで高速化のために実現されている2分木によるインデックス情報を作成する事ができる。
また、本方式では検索クエリも公開鍵を用いて生成し、暗号化タグと検索クエリの比較もバイナリデータとして完全に一致するかどうかで判断ができるため、検索処理を高速化できるという特徴がある。
例えば、コンピュータのログファイルで、メッセージ種別としてInfo/Errorの2種類が保管されている事を考える。
ここで、暗号化タグの統計を取った結果、“AAAAA”という暗号化タグが99%の出現頻度、“BBBBB”という暗号化タグが1%の出現頻度であったと仮定する。
一般的に、正しく運用されたコンピュータシステムでは、Errorが発生する頻度は極めて低いと考えられる事から、“AAAAA”はInfoを意味しており、“BBBBB”はErrorを意味していると推測ができてしまう。
そのため、検索が高速に実施できるというメリットがあるものの、高い機密性が求められるシステムでは確率的暗号をベースにした秘匿検索の方が推奨される事が多い。
IBEは、メールアドレスや氏名などのIDを公開鍵としてデータの暗号化を行う事が可能な暗号化方式である。
暗号化データは、IDに対応するユーザ秘密鍵を持つユーザだけが復号できる。
なお、ユーザ秘密鍵はマスター鍵を持つPKG(Private−Key Generator)によって生成され、IDと対応する正規のユーザに対してのみ発行する。
秘匿検索では、暗号化データから暗号化に用いたIDが分からないというID秘匿性を持ったIBEが利用される。
また、確率的暗号であるため、同一のIDで同一のメッセージを暗号化しても、常に異なる暗号文となるため、複数の暗号文を並べてみても同一のメッセージを暗号化したものかどうかの区別がつかないという特徴も持っている。
この乱数と暗号化乱数の対を暗号化タグとして、暗号化データと共にデータセンタ装置に保管する。
次に検索者は、自身が持つマスター鍵を元に、検索キーワードをIDとしてユーザ秘密鍵を生成する。
このユーザ秘密鍵は、キーワードを用いて暗号化されたデータを復号できる秘密鍵であり、これを検索クエリとしてデータセンタに送付して、検索を要求する。
もし、暗号化乱数を生成する際に用いたキーワード(ID)と、検索クエリ(ユーザ秘密鍵)を生成する際に用いたキーワード(ID)が同一であれば、正しく暗号化乱数を復号可能である事から、暗号化タグと検索クエリが同一のキーワードから生成されていた事が分かる。
しかし、確率的暗号である事から、暗号化タグ同士を比較しても、同一のキーワードから生成されたかの判断がつかない。
そのため、従来のデータベースで高速化のために実現されている2分木によるインデックス情報を作成する事ができず、結果として保管されている全ての暗号化タグを、それぞれ検索クエリと比較する必要が生じてしまい、検索の速度が非常に遅くなってしまうとい課題ある。
しかし、非特許文献1と同様に、保管されている全ての暗号化タグを、それぞれ検索クエリと比較する必要が生ずる点は同一であり、検索の速度が非常に遅くなってしまうという課題がある。
しかし、非特許文献1と同様に、保管されている全ての暗号化タグを、それぞれ検索クエリと比較する必要が生ずる点は同一であり、検索の速度が非常に遅くなってしまうとい課題がある。
本方式は、繰り返し同一キーワードで検索される場合に有効である。
そのため、膨大なタグを保存するデータベースで、検索キーワードが初めて指定されるキーワードであった場合に、検索結果を得るのに多大な時間を要するという課題がある。
複数の暗号化データと、各暗号化データに対応付けられている、暗号化データの検索の際に照合されるタグデータとを保管するデータ保管装置に接続され、
前記データ保管装置での保管の対象となる保管対象データのキーワードを保管キーワードとして指定するキーワード指定部と、
前記データ保管装置へのビット値の開示を許可するビット位置を許可ビット位置として指定する許可ビット位置指定部と、
所定の生成手順にて、前記保管キーワードから所定のビット列を保管インデックス導出ビット列として生成するインデックス導出ビット列生成部と、
前記保管インデックス導出ビット列内の前記許可ビット位置のビット値は前記データ保管装置に開示し前記保管インデックス導出ビット列内の前記許可ビット位置以外のビット値は前記データ保管装置に秘匿する秘匿化処理を行い、前記保管対象データの暗号化データに対応付けられるタグデータを保管する際に前記データ保管装置が前記タグデータに付す保管インデックス値を、前記データ保管装置に、前記保管インデックス導出ビット列内の前記許可ビット位置の開示されたビット値から導出させる秘匿化処理部とを有することを特徴とする。
このため、データ保管装置は、保管インデックス値を付してタグデータを保管することができ、一度も検索を行っていないキーワードであっても、保管インデックス値を用いて暗号化データを高速に検索することができる。
また、許可ビット位置以外のビット値は秘匿しているため、保管キーワードに関してデータ保管装置に漏洩する情報量を限定することができる。
実施の形態1及び2では、確率的暗号を用いた秘匿検索方式において、暗号化タグに対してキーワードの部分情報も追加で添付する事で、データセンタ装置によるインデックス作成を可能とする仕組みを説明する。
更に、実施の形態1及び2では、登録された暗号化データ数が増加して検索処理が遅くなった際に、キーワードの部分情報を更に追加で開示する仕組みを提供する事で、確率的暗号を利用した秘匿検索を安全に高速化する仕組みを説明する。
鍵管理サーバ装置201とアクセス端末装置301とは、社内LAN(Local Area Network)102に接続されている。
社内LAN102は、ネットワーク101を介してデータセンタ装置401と接続されている。
なお、アクセス端末装置301はデータ処理装置の例であり、データセンタ装置401はデータ保管装置の例である。
なお、アクセス端末装置301はアクセス端末と略記する場合があり、また、データセンタ装置401はデータセンタと略記する場合がある。
また、各ユーザのID(Identificaiton)を管理するとともに、そのIDに基づいてユーザに対してユーザ秘密鍵を発行する。
アクセス端末装置301は、データセンタ装置401での保管対象となる保管対象データを作成し、生成した保管対象データを暗号化し、暗号化データをデータセンタ装置401に保管するとともに、データセンタ装置401に蓄積した暗号化データを検索し、データセンタ装置401から取り出した暗号化データを復号して編集する。
データは暗号化された状態で保管されるため、データセンタ装置401では中身を閲覧することができない。
例えば、インターネットなどが代表的なネットワーク101の例である。
なお、複数の建物にオフィスを持つ場合は、ルータや専用線などを介して複雑な通信路構成となる。
タグデータは、暗号化データの検索の際に照合されるデータである。
また、アクセス端末装置301は、データセンタ装置401へのビット値の開示を許可するビット位置を許可ビット位置として指定する。
更に、アクセス端末装置301は、保管対象データのキーワードに対して所定の演算を行って所定のビット列(保管インデックス導出ビット列の例)を生成する。
そして、アクセス端末装置301は、ビット列内の許可ビット位置のビット値はデータセンタ装置401に開示しビット列内の許可ビット位置以外のビット値はデータセンタ装置401に秘匿する秘匿化処理を行う。
アクセス端末装置301は、保管対象データの暗号化データに対応付けられるタグデータを保管する際にデータセンタ装置401がタグデータに付すインデックス値(保管インデックス値の例)を、データセンタ装置401に、ビット列内の許可ビット位置の開示されたビット値から導出させる。
なお、このインデックス値は、いずれかのアクセス端末装置301から検索要求があった場合に、データセンタ装置401において、検索要求に含まれるトラップドア(暗号化された検索キーワード)と照合するタグデータを特定するために用いられる。
アクセス端末装置301は、許可ビット位置ごとに、許可ビット位置の暗号化ビットの復号に用いられる復号鍵であるグループ判定鍵(許可ビット復号鍵の例)を生成し、グループ判定鍵をデータセンタ装置401に送信する。
本実施の形態では、1ビット単位で許可ビット位置を指定するため、例えば、アクセス端末装置301が上位3ビットのビット値をデータセンタ装置401に開示する場合は、各ビットに対応させて3つのグループ判定鍵が順にデータセンタ装置401に送信される。
また、アクセス端末装置301は、保管対象データのキーワードから生成したビット列に対して暗号化を行う。
より具体的には、アクセス端末装置301は、許可ビット位置の暗号化ビットはグループ判定鍵により復号され、許可ビット位置以外の暗号化ビットはグループ判定鍵により復号されない暗号化方式にてビット列を暗号化する。
暗号化されたビット列は、グループ化情報という。
データセンタ装置401では、タグデータと対応付けて暗号化データを保管する。
また、データセンタ装置401では、グループ判定鍵を用いてグループ化情報の許可ビット位置の暗号化ビットを復号し、復号により得られたビット値からインデックス値を生成し、タグデータとインデックス値とを対応付けて保管する。
なお、グループ判定鍵及びグループ化情報における“グループ”とは、タグデータのグループを意味している。
例えば、許可ビット位置が上位3ビットであり、あるタグデータのグループ化情報の上位3ビットの復号から得られたインデックス値が“011”であれば、当該タグデータは、“011”のインデックス値が得られた他のタグデータと同じグループに分類されることになる。
また、アクセス端末装置301は、許可ビット位置の暗号化ビットはグループ判定鍵により復号され、許可ビット位置以外の暗号化ビットはグループ判定鍵により復号されない暗号化方式にてビット列を暗号化して、グループ化情報を生成する。
そして、アクセス端末装置301は、トラップドアとグループ化情報が含まれる検索クエリ(検索要求の例)をデータセンタ装置401に送信する。
なお、データセンタ装置401に暗号化データを登録するアクセス端末装置301と、データセンタ装置401に暗号化データの検索を要求するアクセス端末装置301は一致していなくてもよい。
次に、データセンタ装置401は、導出したインデックス値と同じインデックス値が付されているタグデータをトラップドアとの照合対象として選出する。
例えば、グループ化情報をグループ判定鍵で復号して“011”のインデックス値が得られた場合には、インデックス値“011”が付されて保管されているタグデータが選出される。
データセンタ装置401は、トラップドアとタグデータとの照合の結果、トラップドアの生成に用いられたキーワードと同じキーワードで生成されているタグデータを特定し、特定したタグデータと対応付けられている暗号化データを抽出し、抽出した暗号化データを検索要求の送信元のアクセス端末装置301に送信する。
鍵管理サーバ装置201は、マスター鍵生成部202、鍵保管部203、ユーザ秘密鍵生成部204、PKG側データ送受信部205、ユーザID情報管理部206を備える。
また、PKG側データ送受信部205は、ユーザ秘密鍵をアクセス端末装置301へ送信するためにも用いる。
また、PKG側データ送受信部205は、ユーザID情報を企業内のユーザに対して開示するために、ユーザの要求によってユーザIDをアクセス端末装置301に送信する場合もある。
また、ユーザID情報管理部206は、現時点での属性情報だけでなく、過去の属性情報も履歴として管理する。
アクセス端末装置301は、データ暗号化部302、暗号化タグ生成部303、タグ付き暗号化データ生成部304、ユーザ秘密鍵管理部305、検索クエリ生成部306、データ復号部307、グループ判定鍵生成部308、端末側データ送受信部309、グループ化情報生成部310を備える。
また、データ暗号化部302は、保管対象データから後で検索に利用されるキーワード(保管キーワード)を複数抽出し、またユーザからデータに関連付けるキーワードを受領する。
このように、データ暗号化部302は、保管対象データからのキーワード抽出又はユーザからのキーワード受領により、保管対象データのキーワード(保管キーワード)を指定しており、キーワード指定部の例に相当する。
また、後述のグループ化情報生成部310により生成されたグループ化情報とタグを結合して、複数の暗号化タグを生成する。
このように、検索クエリ生成部306は、ユーザの指示に従って、データセンタ装置401に暗号化データの検索を行わせるキーワード(検索キーワード)を指定しており、キーワード指定部の例に相当する。
より具体的には、グループ判定鍵生成部308は、グループ化情報のうちデータセンタ装置401にビット値の開示を許可する許可ビット位置を指定し、許可ビット位置の暗号化ビットを復号化するための復号鍵であるグループ判定鍵を生成する。
生成されたグループ判定鍵は、後述の端末側データ送受信部309によりデータセンタ装置401に送信され、データセンタ装置401ではグループ判定鍵を用いてグループ化情報の許可ビット位置の暗号化ビットを復号する。
このように、グループ判定鍵生成部308は、許可ビット位置を指定しており、許可ビット位置指定部の例に相当する。
また、グループ判定鍵生成部308は、グループ判定鍵のデータセンタ装置401への提供により、グループ化情報の許可ビット位置のビット値をデータセンタ装置401の開示し、保管対象データの暗号化データに対応付けられるタグデータを保管する際にデータセンタ装置401がタグデータに付すインデックス値(保管インデックス値の例)を、データセンタ装置401に、グループ化情報の許可ビット位置の開示されたビット値から導出させる。
このように、グループ判定鍵生成部308は、後述するグループ化情報生成部310とともに、秘匿化処理部の例に相当する。
なお、後述するように、データセンタ装置401では許可ビット位置をノードの階層構造に対応付けて管理するため、以下では、許可ビット位置を階層としても表す。
例えば、上位n番目のビット位置を、第n層と表記する。
端末側データ送受信部309は、グループ判定鍵を送信する。
また、端末側データ送受信部309は、作成したタグ付き暗号化データ(保管要求の例)をデータセンタ装置401に送信する。
また、端末側データ送受信部309は、データセンタ装置401へ検索クエリ(検索要求の例)を送付したり、検索結果である暗号化データをデータセンタ装置401から受領したりする。
端末側データ送受信部309は、許可ビット復号鍵送信部、保管要求送信部及び検索要求送信部の例である。
前述したように、このインデックス値は、いずれかのアクセス端末装置301から検索要求があった場合に、データセンタ装置401において、検索要求に含まれるトラップドアと照合するタグデータを特定するために用いられる。
グループ化情報生成部310は、保管対象データのキーワードに対して所定の演算を行って所定のビット列(保管インデックス導出ビット列の例)を生成する。
そして、グループ化情報生成部310は、許可ビット位置の暗号化ビットはグループ判定鍵により復号され、許可ビット位置以外の暗号化ビットはグループ判定鍵により復号されない暗号化方式にてビット列を暗号化する。
暗号化されたビット列が、グループ化情報となる。
このように、グループ化情報生成部310は、保管対象データのキーワードからビット列(保管インデックス導出ビット列の例)を生成するとともに、暗号化によりビット列を秘匿する処理を行っており、インデックス導出ビット列生成部の例に相当し、更に、前述のグループ判定鍵生成部308とともに秘匿化処理部の例に相当する。
グループ化情報生成部310は、保管対象データの保管時のみならず暗号化データの検索時においてもグループ化情報を生成する。
暗号化データの検索時のグループ化情報の生成手順自体は、保管対象データの保管時のグループ化情報と同じである。
保管対象データの保管時のグループ化情報は保管対象データのキーワード(保管キーワード)から生成しているのに対し、データ検索時のグループ化情報は、ユーザから指示された検索のためのキーワード(検索キーワード)から生成しているという点が異なるのみである。
データセンタ装置401は、センタ側データ送受信部402、保管要求処理部403、暗号化データ管理部404、インデックス管理部405、検索処理部406を備える。
また、センタ側データ送受信部402は、アクセス端末装置301からタグ付き暗号化データを受信する。
また、センタ側データ送受信部402は、アクセス端末装置301から検索クエリを受信し、その応答として暗号化データを送信する。
また、センタ側データ送受信部402は、鍵管理サーバ装置201から公開パラメータを受信する。
センタ側データ送受信部402は、保管要求受信部及び検索要求受信部の例に相当する。
暗号化データ管理部404は、アクセス端末装置301から受信した暗号化データをタグと対応付けて保管する。
このため、インデックス管理部405は、許可ビット復号鍵管理部の例に相当する。
また、インデックス管理部405は、アクセス端末装置301から受信した暗号化タグの検索に適したデータ構造にてインデックス値を生成し、インデックス値に対応付けて暗号化タグを保管する。
より具体的には、インデックス管理部405は、グループ化情報内の許可ビット位置の暗号化ビットをグループ判定鍵を用いて復号し、復号により得られるビット値からインデックス値を導出し、導出したインデックス値と暗号化タグとを対応付けて保管する。
また、インデックス管理部405は、アクセス端末装置301からの検索クエリが受信された場合に、グループ判定鍵を用いて、検索クエリに含まれているグループ化情報内の許可ビット位置の暗号化ビットを復号し、復号により得られるビット値からインデックス値を導出し、導出したインデックス値と同じインデックス値と対応付けられている暗号化タグを抽出する。
また、インデックス管理部405は、新しくグループ判定鍵を受信した際、暗号化タグを保管しているインデックス情報の再構成を実施する。
検索処理部406は、この照合処理によって、タグに含まれるキーワードと、検索クエリに含まれるキーワードが一致するかどうかを判定する。
その後、検索処理部406は、検索にヒットしたタグと関連付けられた暗号化データを暗号化データ管理部404から取得し、センタ側データ送受信部402を介してアクセス端末装置301に返送する。
システム初期設定は、鍵管理サーバ装置201で実施される処理であり、秘匿検索システム100を利用する前に1回実施される処理である。
データN個に対して関連付けられたキーワードの合計がM個の場合、従来方式ではMに比例した検索時間を要するが、インデックス値を使う事でM/2^Lに比例した検索時間に削減する事ができる。
そこで、最大ツリー階層数Lは、格納するデータの最大個数、データに関連付けるキーワード数、既存秘匿検索方式と既存暗号化方式の処理時間、および検索時に求められるレスポンス時間を加味して決定する。
なお、最大ツリー階層数Lは、許可ビット位置の最大個数に相当する。
本実施の形態では、非特許文献4に記載のグループ共有型秘匿検索方式を既存秘匿検索方式として利用し、階層型IDベース暗号をグループ化情報生成に用いる既存暗号化方式Aとして利用し、データ本体の暗号化に利用する既存暗号化方式Bとして利用する。
そして、既存秘匿検索方式の利用方法を決定する。
本実施の形態で利用する既存秘匿検索方式では、マスター鍵生成部202は、タグID階層数とタグID階層構造を決定する。
例えば、図12のタグID階層構造に示す様に、マスター鍵生成部202は、タグIDは3階層で構成され、検索可能なユーザが所属する部や課等のグループ名称を格納するグループ名欄、氏名などを保管するユーザ名欄、データに関連付けたキーワードを設定するキーワード欄で構成する、等を決定する。
そして、マスター鍵生成部202は、グループ化情報生成のための既存暗号化方式Aの利用方法を決定する。
本実施の形態で利用する既存暗号化方式Aでは、マスター鍵生成部202は、グループ化情報ID階層数とグループ化情報ID階層構造を決定する。
例えば、図13の様なグループ化情報ID階層構造を利用する事を決定する。
図13のグループ化情報ID階層構造において、グループ名欄とユーザ名欄は図12のタグID階層構造のグループ名欄とユーザ名欄と同一で、キーワードの代わりに階層番号を格納する点が異なる。
階層番号に、インデックス値のツリー階層の番号(許可ビット位置の番号)を入れる事で、そのツリー階層の各層に対応したグループ化情報生成鍵が生成される。
後述するように、グループ化情報生成鍵は、アクセス端末装置301においてグループ化情報を生成する際に用いられる暗号鍵である。
同様に、マスター鍵生成部202は、データ本体を暗号化するための既存暗号化方式Bの利用方法を決定する。
本実施の形態では、復号者ID階層数と復号者ID階層構造を決定する。
例えば、図14の様な復号者ID階層構造を決定する。
図14の復号者ID階層構造において、グループ名欄とユーザ名欄は図12のタグID階層構造のグループ名欄とユーザ名欄と同一である。
ユーザID情報データベースは、ユーザ秘密鍵を作成するために必要な情報、及びアクセス端末装置301がデータを暗号化する際に、相手のグループ名/ユーザ名を特定するために必要な情報が保管されているものである。
例えば、図15に示すように、ユーザID情報データベースには、グループIDである部名、ユーザIDである氏名、所属情報、役職情報、その所属/役職等にいた期間、等が格納される。
また、ユーザID情報データベースには、最新の状況だけでなく、過去の履歴を全て格納するようにしてもよい。
同様に、マスター鍵生成部202は、既存暗号化方式Aのマスター鍵生成アルゴリズムを実行してグループ化情報用マスター鍵とグループ化情報用公開パラメータを生成し、既存暗号化方式Bのマスター鍵生成アルゴリズムを実行して暗号化用マスター鍵と暗号化用公開パラメータを生成する。
以降、秘匿検索用マスター鍵とグループ化情報用マスター鍵と暗号化用マスター鍵をまとめてマスター鍵、秘匿検索用公開パラメータとグループ化情報用公開パラメータと暗号化用公開パラメータをまとめて公開パラメータと呼ぶ事とする。
なお、S503で生成したユーザID情報データベースは、システムの運用において、ユーザの人事異動や入社や退社があるたびに内容がメンテナンスされる。
ユーザ秘密鍵発行処理は、主に鍵管理サーバ装置201とアクセス端末装置301で実施される処理であり、新規ユーザを追加した場合や、ユーザの所属するグループ名が変わった時などに実施される。
既存秘匿検索方式では、秘匿検索用ユーザ秘密鍵を生成する際にタグID階層構造を指定する必要があるが、S601にて取得したグループ名をグループ名欄に、同じくユーザ名をユーザ名に設定し、キーワードは委譲可能な要素(アクセス端末装置301で指定可能な要素)として指定する事で、秘匿検索用ユーザ秘密鍵が生成できる。
既存暗号化方式Aでは、グループ化情報用ユーザ秘密鍵を生成する際にグループ化情報階層構造を指定する必要があるが、S601にて取得したグループ名をグループ名欄に、同じくユーザ名をユーザ名に設定し、階層番号は委譲可能な要素(アクセス端末装置301で指定可能な要素)として指定する事で、グループ化情報用ユーザ秘密鍵が生成できる。
同様に、既存暗号化方式Bで暗号化用ユーザ秘密鍵を生成する際に復号者ID階層構造を指定する必要があるが、S601にて取得したグループ名をグループ名欄に、同じくユーザ名をユーザ名に指定する事で、暗号化用ユーザ秘密鍵が生成できる。
上記で生成した秘匿検索用ユーザ秘密鍵、グループ化情報用ユーザ秘密鍵、暗号化用ユーザ秘密鍵の3個をまとめてユーザ秘密鍵と呼ぶ事にする。
データ暗号化処理は、主にアクセス端末装置301とデータセンタ装置401で実施される処理であり、保管対象データを暗号化してデータセンタ装置401に保管する時に実施される。
受け取るグループ名やユーザ名は一つである必要はなく、復号可能なユーザが複数名いる場合は複数受け取る事もできる。
なお、本実施の形態で利用する既存秘匿検索方式や既存暗号化方式Aや既存暗号化方式Bは、グループ名やユーザ名として誰でも良い事を意味するワイルドカードを受け取る事も可能である。
キーワードは、保管対象データから自動的に抽出しても良いし、ユーザから受領する様にしても良い。
また、キーワードは1個である必要はなく、複数関連付けて良い。
具体的には、データ暗号化部302は、ランダムにセッション鍵を生成し、そのセッション鍵でAES(Advanced Encryption Standard)やCamellia(登録商標)等の共通鍵暗号を用いて保管対象データを暗号化し、暗号化データ本体を生成する。
次に、データ暗号化部302は、復号者ID階層構造のグループ名とユーザ名に、S701で受け取ったグループ名とユーザ名をそれぞれ指定して、これを暗号化用公開鍵として既存暗号化方式Bを用いてセッション鍵を暗号化し、暗号化セッション鍵を生成する。
そして、データ暗号化部302は、前述の2個の暗号化結果を組み合わせる事で、暗号化データを生成する。
生成した暗号化データのデータ構造を図16に示す。
なお、S701にて複数のグループ名とユーザ名を受領している場合、全てのグループ名とユーザ名の組に対して暗号化セッション鍵を生成する必要がある。
具体的には、グループ化情報生成部310は、グループ化情報ID階層構造(図13)のグループ名とユーザ名に、S701で受け取ったグループ名とユーザ名をそれぞれ指定して、階層番号に1からL(図5のS501で決定されたインデックス情報の最大ツリー階層数)までの数を文字列として設定する事で、L個のグループ化情報生成鍵を作成する。
なお、階層番号に1が設定されたグループ化情報ID階層構造が第1階層のグループ化情報生成鍵となり、階層番号にLが設定されたグループ化情報ID階層構造が第L階層のグループ化情報生成鍵となる。
次に、グループ化情報生成部310は、キーワードを元にLビットのビット列を生成する。
これは例えば、SHA−2等のハッシュ関数を用いてキーワードのハッシュ値を生成し、その中から任意のLビットを抽出する事で作成する事ができる。
このため、ハッシュ値においてLビットを連続させて選択してもよいし、例えばハッシュ値の1ビット目と3ビット目と6ビット目と11ビット目というように非連続にLビットを選択してもよい。
但し、検索時に生成するグループ化情報においても、同じビット位置でLビットを選択する必要がある。
また、グループ化情報生成部310は、抽出ビット列の1つ目を第1階層グループ化情報生成鍵を用いて既存暗号化方式Aにて暗号化して暗号化第1情報を作成し、2つ目を第2階層グループ化情報生成鍵を用いて既存暗号化方式Aにて暗号化して暗号化第2情報を作成し、順番にL個目まで全てを暗号化し、これらをまとめてグループ化情報とする。
このように、グループ化情報生成部310は、保管対象データに対するアクセスが許可されるユーザのユーザ情報が反映されているL個のグループ化情報生成鍵を用いて、キーワードのハッシュ値のLビットを暗号化して、グループ化情報を生成する。
生成したグループ化情報の構成を図17に示す。
なお、S701にて複数のグループ名とユーザ名を受領している場合、全てのグループ名とユーザ名の組に対してグループ化情報を生成する。
具体的には、暗号化タグ生成部303は、タグID階層構造のグループ名とユーザ名にS701で受け取ったグループ名とユーザ名を、キーワード欄にS702にて決定したキーワードをそれぞれ指定し、このタグID階層構造を暗号鍵にして乱数を暗号化し、既存秘匿検索方式でタグを作成する。
そして、暗号化タグ生成部303は、このタグと、S704にて同じキーワードから作られたグループ化情報を結合して暗号化タグとする。
生成した暗号化タグの構成を図16に示す。
なお、上記はキーワード1個に対する処理であるため、これをデータに関連付けられた全てのキーワードに対して実施する。
また、S701にて複数のグループ名とユーザ名を受領している場合、全てのグループ名とユーザ名の組に対して暗号化タグを生成する。
この時、データセンタ装置401でタグ付き暗号化データの保管を容易にするため、S701にて受領したグループ名とユーザ名を共に送付する。
図16では、グループ名とユーザ名をタグ付き暗号化データに含めた構成のタグ付き暗号化データを示している。
そして、暗号化データ管理部404にて暗号化データを保管する。
なお、暗号化データ管理部404は、S706にてタグ付き暗号化データに含められたグループ名とユーザ名ごとに暗号化データを分けて保管し、さらに保管した暗号化データに管理番号を付与して、後で管理番号から暗号化データを一意に特定できる様にする。
なお、暗号化データが複数のグループ名やユーザ名と関連付けられている場合、ぞれぞれのグループ名とユーザ名に対して暗号化データを関連付けて保管する。
複数のグループ名とユーザ名に関連付けられている場合、暗号化データは1個だけ格納し、他は参照情報のみを保管する様にすることでディスク容量の節約が可能である。
図18は、暗号化データの保管例を示している。
図18の様に、グループ名が“総務部”でユーザ名が“*”(ワイルドカード)である暗号化データと管理番号をまとめて管理し、さらにグループ名が“開発部”でユーザ名が“*”である暗号化データと管理番号をまとめて管理する、という様に保管する。
また、総務部と開発部の両方に開示されるデータがあった場合、例えば管理番号000002に暗号化データ本体を関連付けて保管し、管理番号100002には暗号化データとして管理番号000002を参照する様なポインタを保管する。
インデックス管理部405は、S706にてタグ付き暗号化データに含められたグループ名とユーザ名ごとに分けて、受け取った暗号化タグと管理番号を保管する。
なお、図19の例に示す様に、インデックス情報もグループ名、ユーザ名ごとに管理しているものとする。
また、図19のインデックス情報において、グループ判定鍵セットの第1層目用のグループ判定鍵は、グループ化情報内の暗号化第1情報(図17)を復号するための復号鍵、つまり、許可ビット位置の1ビット目の暗号化ビットを復号するための復号鍵である。
同様に、グループ判定鍵セットの第2層目用のグループ判定鍵は、グループ化情報内の暗号化第2情報(図17)を復号するための復号鍵、つまり、許可ビット位置の2ビット目の暗号化ビットを復号するための復号鍵である。
また、インデックス情報内のノードとは、暗号化タグ(タグ+グループ化情報)に対応付けられるインデックス値である。
例えば、ノード“01”は、グループ化情報の暗号化第1情報を復号して得られたビット値が“0”であり、暗号化第2情報を復号して得られたビット値が“1”であり、これらを連結して“01”が得られたことを示している。
つまり、図19の例では、アクセス端末装置301からは、上位2つのビット位置しかビット値の開示が許可されておらず、2つのグループ判定鍵のみがデータセンタ装置401に提供されており、このため、インデックス値は2ビットになる。
ここでグループ判定鍵は階層ごと(許可ビット位置ごと)に1個ずつ割り当てられており、後述する様に第1階層目から順番に1個ずつアクセス端末装置301から開示されるため、ここでは合計L’(L’≦L)個のグループ判定鍵が保管されていたと仮定する。
アクセス端末装置301によるグループ判定鍵の生成、アクセス端末装置301からデータセンタ装置401へのグループ判定鍵の送付、データセンタ装置401におけるグループ判定鍵の保管は、図7及び図8に示すフローとは非同期に行われ、ここでは、既に、L’個のグループ判定鍵がアクセス端末装置301により生成され、データセンタ装置401のインデックス管理部405に保管済みであると仮定する。
なお、アクセス端末装置301によるグループ判定鍵の生成、データセンタ装置401におけるグループ判定鍵の保管の詳細は図11を参照して後述する。
そして、暗号化第1情報から暗号化第L’情報までを、第1層目用のグループ判定鍵から第L’層目用のグループ判定鍵までを用いて復号し、第1情報から第L’情報を取得する。
そして、インデックス管理部405は、S705にて受領したグループ名とユーザ名に対応した2分木の中から該当するノードを特定し、そのノードに関連付けてS802で取り出した暗号化タグと、S707にて受領した管理番号を保管する。
例えば、図20に示す様に、最初はルートノード(N(R))を起点として、第1情報が0か1かによって、左右のいずれかの子ノードを取り出す。
同様に第2情報が0か1かによって、左右のいずれかの子ノードを取り出す。
これを保有する全ての情報を用いて実施する。
なお、図20の右側の矢印内の“1”は、第1情報によって第1層のノードが選択されることを示しており、また、矢印内の“2”は、第2情報によって第2層のノードが選択されることを示している。
例えば、第1情報が0、第2情報が1の場合、図20に示すノード01(N(01))が該当ノードとして検出され、そのノード01に暗号化タグと管理番号を関連付けて保管する。
前述の図19では、第1情報から第L’情報(図19では、L’=2)までを並べて作成したノードを表す番号(インデックス値)と、暗号化タグと、対応する暗号化データの管理番号を、表形式にて保管しているインデックス情報の例を示している。
もし残っていればS802の処理に戻り、残っていなければ終了する。
暗号化データ検索処理は、主にアクセス端末装置301とデータセンタ装置401で実施される処理であり、データセンタ装置401に保管された暗号化データを取得する時に実施される。
更に、検索クエリ生成部306は、受け取った検索キーワードをグループ化情報生成部310に通知する。
本処理は、ステップS704の処理と同一である。
つまり、グループ化情報生成部310は、アクセス端末装置301のグループ名とユーザ名(暗号化データを検索しようとするユーザの所属グループのグループ名と当該ユーザのユーザ名)を入力し、入力したグループ名とユーザ名をグループ化情報ID階層構造(図13)のグループ名とユーザ名に指定して、階層番号に1からLまでの数を文字列として設定する事で、L個のグループ化情報生成鍵を作成する。
次に、グループ化情報生成部310は、例えば、SHA−2等のハッシュ関数を用いて検索キーワードからLビットのビット列を生成する。
なお、ハッシュ値からのLビットの抽出は、暗号化データ保管時と同じビット位置のハッシュ値を抽出する。
また、グループ化情報生成部310は、抽出ビット列の1つ目を第1階層グループ化情報生成鍵を用いて既存暗号化方式Aにて暗号化して暗号化第1情報を作成し、2つ目を第2階層グループ化情報生成鍵を用いて既存暗号化方式Aにて暗号化して暗号化第2情報を作成し、順番にL個目まで全てを暗号化し、これらをまとめてグループ化情報とする。
具体的には、秘匿検索用ユーザ秘密鍵と検索キーワードを入力として、既存秘匿検索方式の検索クエリ生成関数を実行して、トラップドアを生成する。
次に、検索クエリ生成部306は、S902にて生成したグループ化情報とトラップドアを結合して検索クエリとする。
生成した検索クエリの構成を図21に示す。
そして、検索クエリ生成部306は、端末側データ送受信部309を介して、生成した検索クエリをデータセンタ装置401に送付する。
この時、ユーザ自身のグループ名とユーザ名も送付する。
なお、インデックス管理部405における暗号化タグの取得処理は複雑であるため、図10を用いて詳細を説明する。
そして、未処理のインデックス情報を、これから処理を行う対象のインデックス情報として特定する。
つまり、インデックス管理部405は、グループ化情報を分解して暗号化第1情報から暗号化第L情報(図17)までを取り出す。
そして、暗号化第1情報から暗号化第L’情報までを、第1層目用のグループ判定鍵から第L’層目用のグループ判定鍵までを用いて復号し、第1情報から第L’情報を取得する。
そして、そのポインタが指すノードに関連付けられた暗号化タグと管理番号の組を全て取り出し、検索処理部406に送付する。
つまり、インデックス管理部405は、第1情報から第L’情報で示されているビット値から得られる値(インデックス値)と同じ値のノード番号をS1001で特定したインデックス情報において特定し、特定したノード番号に対応付けられている暗号化タグと管理番号の組を全て取り出し、検索処理部406に送付する。
もし存在する様であればステップS1006へ、存在しない様ならステップS1007に処理を進める。
例えば、ポインタがルートノードを指している様であれば親ノードは存在しないため、ステップS1007の処理に進む。
S1005及びS1006は、図11を用いて後述するインデックス再構成処理の最中に検索クエリを受信した場合に対処するための処理である。
つまり、インデックス再構成処理において、全ての暗号化タグと管理番号の組が新たなノード番号(L’+1階層のノード番号)へ振り分けられる前に、検索クエリを受信した場合には、L’+1階層のノード番号についての検索のみならず、振り分けが完了していないL’階層のノード番号(親ノード)についての検索も必要になるため、S1005及びS1006の処理を行う。
例えば、ポインタが図20のノード01(N(01))を指している場合は、親ノードであるノード0(N(0))の暗号化タグと管理番号の組を取り出す。
その後、S1005の処理に進む。
既存秘匿検索技術の判定処理は、1個のタグと、1個のトラップドアの比較しか実施できないため、これをS904にて取得した全ての暗号化タグに対して実施する。
そして、検索処理部406は、判定処理の結果、一致と判定された暗号化タグに関連付けられた管理番号を特定する。
これを全ての暗号化データに対して実施する。
インデックス再構成処理は、主にアクセス端末装置301とデータセンタ装置401で実施される処理である。
データセンタ装置401では、暗号化データの開示先であるグループ名とユーザ名ごとにインデックス情報を管理しているため、ここで受け取ったグループ名とユーザ名を用いて、再構成するインデックス情報を一意に特定する事ができる。
そして、グループ判定鍵生成部308は、新たに発行するグループ判定鍵の階層L’+1を特定する。
つまり、グループ判定鍵生成部308は、新たな許可ビット位置であるL’+1ビット目を指定する。
グループ化情報用ユーザ秘密鍵は、グループ化情報ID階層構造(図13)のグループ名とユーザ名が指定された状態で発行されているため、グループ判定鍵生成部308は、新たに階層番号L’+1を指定して、既存暗号化方式の鍵委譲機能を実行する事で、階層L’+1に対応するグループ判定鍵を生成する。
そして、グループ判定鍵生成部308は、生成したグループ判定鍵を、S1101にて受け取った再構成したいインデックス情報に関連付けられたグループ名とユーザ名と共に、端末側データ送受信部309を介してデータセンタ装置401に送付する。
なお、グループ判定鍵生成部308による新たな階層L’+1に対応するグループ判定鍵の生成及びデータセンタ装置401への送付は、新たな許可ビット位置を指定すること及び新たな許可ビット位置の暗号化ビットの復号を許可することに相当する。
そして、グループ化情報の暗号化第L’+1情報を、階層L’+1用のグループ判定鍵を用いて、既存暗号化方式で復号する事で、暗号化タグを第L’+1階層に振り分けるための第L’+1情報を取得する。
そして、暗号化タグと管理番号を、選択した第L’階層ノードの子ノードのいずれに振り分けるかを第L’+1情報を元に決定し、第L’階層ノードの関連付けを削除して、新たに第L’+1階層ノードに関連付けて保存する。
これを選択した第L’階層に関連付けられた全ての暗号化タグに対して実施する。
本処理のイメージを図22に示す。
もし処理をしていないノードが存在する場合はステップS1107に進み、処理を行っていないノードが無い場合は終了する。
暗号化タグには、グループ化情報が含まれている。
図19の例では、グループ化情報の上位2ビットのみが復号され、3ビット目以降は秘匿されているままの状態である。
このとき、アクセス端末装置301が、グループ化情報の上位3ビット目までのビット値の開示を許可した場合には、3ビット目の復号のためのグループ判定鍵(第3層目用のグループ判定鍵)がアクセス端末装置301からデータセンタ装置401に送信される。
図19のグループ名:総務部、ユーザ名:*のインデックス情報を例にして説明すると、1行目のレコードの暗号化タグ(“2j0”#%Dq”)に含まれているグループ化情報の3ビット目の暗号化ビット(暗号化第3情報)を第3層目用のグループ判定鍵を用いて復号し、3ビット目の復号値(第3情報)を取得する。
この結果、3ビット目の復号値が、例えば、“0”であれば、新たなノード番号として、“010”が設定され、この新たなノード番号“010”に対して、暗号化タグ“2j0”#%Dq”と管理番号“000001”との組が対応付けられる。
他のレコードに対しても同様の処理が行われる。
例えば、グループ名:総務部、ユーザ名:*のインデックス情報の2行目のレコードに対してグループ化情報の3ビット目の暗号化ビットを復号して、新たなノード番号“011”が得られた場合には、1行目のレコードのタグと2行目のレコードのタグは異なるグループに属することになる。
このように、ノード番号のビット数が増えると、各グループに含まれるタグの数が減り、検索クエリを受信した際のトラップドアとタグとの照合処理に要する時間を低減することができる。
検索の際にも、検索クエリに含まれるキーワードに応じてグループ化情報を作成しているため、必要に応じてデータセンタ装置401はこのグループ化情報とグループ判定鍵を使う事で、検索したいキーワードがどの暗号化タグのグループに対応しているかを一意に特定する事ができる。
そのため、全ての暗号化タグに対して既存秘匿検索技術の判定処理を行う必要が無くなり、特定のグループに属する暗号化タグに対してのみ既存秘匿検索技術の判定処理を行えばよく、秘匿検索の時間を大きく削減する事ができる。
例えば、L’個のグループ判定鍵がデータセンタ装置401に開示されている状況では、暗号化タグM個を2^L’個のグループに分割する事ができるため、各グループには平均的にM/2^L’個の暗号化タグが含まれる。
そのため、本実施の形態によって、検索処理は2^L’倍に高速化される。
そのため、開示するグループ判定鍵の数によって、ユーザがグループ化のレベルを調整する事ができる。
例えば、L’個のグループ判定鍵を開示している状況で、暗号化データの保管数が増えるに従って検索時間がT時間になり、運用に支障が生じたとする。
この時、新しくL’+1階層目に対応したグループ判定鍵を開示する事で、暗号化タグを2倍のグループに分割する事ができるため、検索時間をT/2に削減する事ができる様になる。
一方、暗号アルゴリズム開発の世界では、暗号化データ中に含まれるキーワードによって、暗号化データのグループ化ができない事が高い安全性を持つ暗号と評価される。
そのため、データの機密性を保護したいユーザは、不必要にデータセンタ装置401に暗号化データをグループ化されてしまう事は望まない。
本実施の形態によれば、ユーザが求める安全性のレベルと検索処理の応答時間に応じて、必要最小限のグループ判定鍵のみをデータセンタ装置401に与える様にユーザ自身が制御する事ができる。
そのため、グループ化情報としてLビットの情報を付加していたとしても、開示するグループ判定鍵の数を調整する事で、ユーザ自身によって安全性と高速性のバランスを調整する事ができる。
そのため、本実施の形態で示した既存秘匿検索方式だけでなく、提案されている様々な既存秘匿検索方式に対して適用可能であり、その検索性能を向上させる事ができる。
本実施の形態では、非特許文献4の記載の方式に適用した例を示したが、非特許文献4が実現した暗号化データのグループ共有が可能という特徴を失うことなく、秘匿検索の検索速度を高速化できる。
同様に、例えば非特許文献1に記載の方式にも適用できるし、非特許文献3に記載の方式などでも適用可能であり、あらゆる既存秘匿検索方式に対して適用可能である。
そのため、一般的によく利用されているRSA(登録商標)(Rivest Shamir Adleman)暗号などを利用する事も可能である。
一般的に秘匿検索の検索時間だけを見れば確定的暗号に基づく方式が早いが、暗号化データの出現頻度を分析して平文を推定できるという課題がある。
一方、確率的暗号に基づく方式は、暗号化データの出現頻度がキーワードの出現頻度と無関係なため、出現頻度の分析による平文の推定に対して安全であるが、検索処理にとても時間がかかるという課題がある。
しかし、本実施の形態では、確率的暗号に基づいているため、検索が高速化されているにもかかわらず、出現頻度による分析に対しての安全性が残っているというメリットがある。
そのため、ユーザが検索を行う場合、元々読む事ができない暗号化データが含まれるインデックス情報を検索する必要が無くなるため、検索処理を大きく向上させる事ができる。
本実施の形態では、グループ判定鍵の開示は、グループ名とユーザ名の組と関連付けられたインデックスに対して実施する様な仕組みとした。
そのため、開示範囲ごとに安全性と高速性のバランスを調整する事ができる。
そのため、追加でグループ判定鍵を受け取ってインデックス情報の再構成を行っている最中に検索クエリを受け取ったとしても、検索対象とすべき暗号化タグを漏らすことなくチェックする事ができる。
具体的には、グループ名とユーザ名と最大階層数Lだけを送付すれば、アクセス端末装置301にてグループ化情報ID階層構造に受領した値を設定する事で、L個のグループ情報生成鍵を生成する事ができるため、通信コストを削減する事ができる。
同様に、グループ化情報を生成したり、暗号化タグを生成したりするための補助にもなる。
なお、本実施の形態では、2分木を用いたインデックス情報を構成する例を示した。
しかし、生成するインデックスは2分木に限る必要はなく、グループ化情報から生成する事ができるものであれば、より一般的な木構造であっても良く、ハッシュテーブルであっても良い。
また、インデックス情報として作成した2分木は、その構造を保ったままディスクに保管する必要はなく、例として示した様にノード番号を割り当てて表形式で保管しても良いし、その他のデータ形式で保管しても良い。
また、本実施の形態では、キーワードから生成したビット列の第iビットを暗号化する事で、グループ化情報の暗号化第i情報を生成する様にした。
しかし、1ビットずつ暗号化する必要はなく、2ビット以上の情報を用いて暗号化第i情報を生成する様にしても良い。
例えば、キーワードから2Lビットのビット列を生成し、その第2i−1ビット目と第2iビット目を暗号化して、暗号化第i情報を生成するようにすることも可能である。
また、本実施の形態では、グループ化情報の暗号化第i情報には、0や1といった1ビットの情報を含める例を示した。
しかし、グループ化情報の暗号化第i情報を用いて2分木の子ノード(左)か子ノード(右)かを判断できればいいので、必ずしも0や1の1ビットの情報である必要はない。
例えば、第i情報に任意の数値を指定して暗号化第i情報を作成しておき、偶数の場合は子ノード(左)、奇数の場合は子ノード(右)と割り振っても良い。
他にも、第i情報に0から100までの数値を指定して暗号化第i情報を作成しておき、50未満の場合は子ノード(左)、50以上の場合は子ノード(右)と割り振っても良い。
この様に、第i情報として指定する値は、子ノードの判定方法と関連付いていれば、どの様な情報を設定しても良い。
また、本実施の形態では、グループ化情報の暗号化第i情報をグループ判定鍵を用いて復号する事で、2分木の子ノード(左)か子ノード(右)かを判定する0/1の情報を得ていた。
しかし、かならずしもこの様にする必要はなく、例えば実施の形態2で示す様に、グループ判定鍵(暗号化タグ用)とグループ判定鍵(検索クエリ用)を用いて、データセンタ装置401側で第i情報を生成する様な仕組みとしても良い。
この場合、グループ化情報に設定した値自身もデータセンタ装置401には分からないため、それがキーワードのハッシュ値であったとしてもキーワードの推測が困難であり、安全性を向上させる事ができる。
また、本実施の形態では、グループ化情報を作成する際に全てのビットを暗号化する様にしたが、一部もしくは全てを暗号化せずに平文のまま送っても良い。
例えば、データセンタ装置401側で保持するグループ判定鍵の数が分かっている場合、その対応するビットは暗号化してもデータセンタ装置401側で復号される事が分かるので、そこは平文のまま送る様にしても良い。
また、本実施の形態では、キーワードからLビットのビット列を作成する際に、例えばSHA−2等のハッシュ関数を利用する事を例示したが、Lビットのビット列が作れるものであればアルゴリズムは何でも良い。
例えば、SHA−2以外のハッシュ関数を用いても良いし、HMAC等の鍵付きハッシュや、AES等の共通鍵暗号や、RSA(登録商標)暗号等の公開鍵暗号を用いても良い。
なお、鍵付きハッシュや共通鍵暗号や公開鍵暗号を用いる場合は、グループ情報生成鍵に加えてハッシュ鍵や共通鍵や秘密鍵も配布する必要がある。
また、キーワードを乱数のシードとして、疑似乱数生成アルゴリズムでLビットの乱数を生成する様にしても良い。
他にも、キーワードとLビット列の対応表を使う様にしても良い。
特に、Lビット列の対応表を用いる場合、キーワードの出現頻度を考慮してLビット列の発生頻度を平準化できるため、安全性が更に向上する事が期待できる。
また、本実施の形態では、ユーザがグループ判定鍵を1個ずつ開示する事を想定した例を記載したが、1回に1個ずつと制限する必要はなく、同時に2個や3個のグループ判定鍵を公開する様にしても良い。
また、本実施の形態では、システム利用前にグループ化情報ID階層構造を定めておき、ユーザがグループ化情報を生成するタイミングでグループ名・ユーザ名・階層番号を指定してグループ化情報生成鍵を生成していた。
しかし、グループ化情報生成鍵はシステム利用前やユーザ秘密鍵発行時などのタイミングで一括して発行しても良い。
特に、既存暗号化方式としてAESやRSA(登録商標)暗号などを使う場合は、暗号化より前のタイミングで生成する事が必要となる。
また、本実施の形態では、タグID階層構造やグループ化情報ID階層構造や復号者ID階層構造にて、グループ名とユーザ名の2種類の情報を用いて復号・検索が可能なユーザやグループを指定する例を示した。
しかし、この2種類の情報に制限する必要はなく、例えば部名・課名・氏名の3種を用いても良いし、氏名だけを用いても良い。
また、もっと多くの情報を用いて受信者を指定しても良い。
また、本実施の形態では、タグ付き暗号化データを生成する際、タグID階層構造やグループ化情報ID階層構造や復号者ID階層構造に、グループ名とユーザ名として同じ値を設定する例を示した。
しかし、これらは同じ値にせず、異なる値を設定しても良い。
例えば、グループ判定鍵の生成をユーザ自身に実施させずに管理者が実施する場合は、タグID階層構造と復号者ID階層構造には開示先ユーザのグループ名とユーザ名を設定しておき、グループ化情報ID階層構造にはグループ判定鍵の生成が可能な管理者のグループ名とユーザ名を指定する様にすればよい。
また、ユーザには検索だけ許可し、暗号化データ自身の復号は許可したくない場合は、タグID階層構造にはユーザのグループ名とユーザ名を設定し、復号者ID階層構造には別の復号可能なユーザのグループ名とユーザ名を設定すればよい。
また、本実施の形態では、鍵管理サーバ装置201が1台の例を示したが、1台に制限する必要はない。
例えば、非特許文献4の方式や、その他の秘匿検索方式では、鍵管理サーバ装置にも階層構造を持たせ、複数台に役割を分散して運用する形態も記載されている。
本実施の形態でも同様にして、鍵管理サーバ装置に階層構造を持たせた形で利用する事も可能である。
また、本実施の形態では、IDベース暗号に基づく既存秘匿検索方式や既存暗号化方式Aや既存暗号化方式Bを用いた例を示した。
しかし、IDベース暗号に基づく方式に制約するものではなく、AESやCamellia(登録商標)やHMACなどの共通鍵暗号や、RSA(登録商標)暗号などの公開鍵暗号を用いる事も可能である。
また、本実施の形態では、IDベース暗号に基づく既存秘匿検索方式や既存暗号化方式Aや既存暗号化方式Bを用いた例を示したが、それぞれ異なる公開パラメータを利用する様にした。
しかし、例えば利用する楕円曲線など、公開パラメータの一部の情報を共通化して利用する事も可能である。そのため、共通化できるものは共通化して利用しても構わない。
また、本実施の形態では、検索キーワードが1個の場合を示したが、必ずしも検索キーワードを1個に制限する必要はない。
例えば、複数の検索キーワードがある場合、それぞれのキーワードに対して検索クエリを生成して、全ての検索クエリをデータセンタ装置401に送付しても良い。
またその時、例えば1個の検索クエリでヒットと判定された暗号化データを取得するとか、検索クエリAと検索クエリBの両方がヒットした暗号化データを取得する等、任意の条件も送付して良い。
また、本実施の形態では、インデックス管理部405から取得した暗号化タグの全てを検索クエリと判定する様にした。
しかし、検索にヒットしたと判定された暗号化データに関しては、それ以降、その暗号化データに関連付けられた暗号化タグのチェックをしなくても構わない。また、検索結果として例えば10件の結果を返せばいい場合においても、規定個数以上の検索結果が見つかったら、それ以降の暗号化タグのチェックを行わなくても良い。
また、本実施の形態では、鍵管理サーバ装置201にユーザID情報データベースを設け、その情報を元にユーザ秘密鍵の生成を行っていた。
しかし、ユーザID情報データベースは必ずしも必須なものではなく、ユーザ秘密鍵を発行する際に鍵管理サーバ装置201の管理者によって指定する様にしても良いし、アクセス端末装置301から受領する様にしても良い。
また、本実施の形態では、アクセス端末装置301は一人のユーザが操作するものと仮定した記載とした。
しかし、アクセス端末装置301自身は一人のユーザが占有するものではなく、複数名で共有する様な仕組みでも良い。
この場合、ユーザ秘密鍵管理部305ではユーザごとに1個のユーザ秘密鍵が割り当てられるため、複数のユーザ秘密鍵を保管する様にして、アクセス端末装置301で操作者の認証をする事で、どのユーザ秘密鍵を利用すべきかを判断する事が好ましい。
また、ユーザ秘密鍵を社員証などに保管して管理する事も可能である。
この場合、ユーザ秘密鍵管理部305がICカードに相当する機能だが、ユーザ秘密鍵を用いた処理をICカードにて全て行わせる場合、必要に応じて検索クエリ生成部306やデータ復号部307やグループ判定鍵生成部308の一部の処理をICカードに実施させても良い。
また、本実施の形態では、データを暗号化する際にAESやCamellia(登録商標)を自動的に用いる事を例示したが、これはシステム内で事前に利用する方式を決定しておいても良いし、ユーザによって設定できる様にしておいても良い。
また、本実施の形態では、検索の結果、ヒットした暗号化データを全て返却する様な例を示したが、必ずしも検索時に同時に全ての暗号化データ自身を返却する必要はない。
例えば、ヒットした暗号化データのうち数個を返すだけにするとか、個数だけを返す様にするとか、暗号化データのリストだけを返却する様にしても良い。
また、本実施の形態では、鍵管理サーバ装置201とアクセス端末装置301が企業内にあり、データセンタ装置401がインターネットなどに接続された外部サービスとして存在した例を示した。
しかし、本発明はこの様なシステム構成に限定されるものではない。
例えば、データセンタ装置401が企業内にあっても良いし、鍵管理サーバ装置201やアクセス端末装置301が企業外のネットワークに接続されていても良い。
アクセス端末装置301のグループ化情報生成部310は、
保管キーワードのハッシュ値から、インデックス情報のノードの最大階層数と同数であるLビットのビット列を抽出し、抽出したLビットのビット列をIDベース暗号化方式で暗号化してグループ化情報を生成していることを説明した。
換言すると、グループ化情報生成部310(インデックス導出ビット列生成部、秘匿化処理部)は、
保管キーワードから一意に得られる乱数値のビット列から、許可ビット位置として指定できる最大数と同数のビット数のビット列を抽出して、保管インデックス導出ビット列を生成し、生成した保管インデックス導出ビット列をIDベース暗号化方式で暗号化している。
グループ化情報生成部310が、
保管キーワードのハッシュ値から連続するLビットを抽出してもよく、また、1ビット目と3ビット目と6ビット目と11ビット目というように非連続にLビットを抽出するようにしてもことを説明した。
換言すると、グループ化情報生成部310は、
保管インデックス導出ビット列の生成の際に、保管キーワードから一意に得られる乱数値のビット列から、許可ビット位置として指定できる最大数と同数の連続ビットを抽出してもよく、また、許可ビット位置として指定できる最大数と同数の非連続ビットを抽出してもよい。
グループ化情報生成部310は、
Lビットのビット列の各ビットで異なるグループ化情報生成鍵を用いて暗号化を行って、グループ化情報を生成していることを説明した。
換言すると、グループ化情報生成部310は、
保管インデックス導出ビット列の暗号化の単位ビットごとに異なる暗号鍵を用いている。
グループ化情報生成部310は、
グループ化情報ID階層構造(図13)のグループ名及びユーザ名の少なくともいずれかにワイルドカード指定して、L個のグループ化情報生成鍵を生成できることを説明した。
換言すると、グループ化情報生成部310は、
保管対象データに対するアクセスが許可されるユーザのユーザ情報をワイルドカードを用いて定義し、ワイルドカードを用いて定義されたユーザ情報が反映されている暗号鍵を用いて、保管インデックス導出ビット列を暗号化することができる。
データセンタ装置401のインデックス管理部405は、
暗号化データ管理部404が保管対象の暗号化データを暗号化タグと対応付けて保管する際に、グループ化情報をグループ判定鍵を用いて復号し、復号により得られるノード番号と暗号化タグを対応付けて保管することを説明した。
換言すると、インデックス管理部405は、
暗号化データ管理部404が保管対象の暗号化データをタグデータと対応付けて保管する際に、暗号化されたビット列内の許可ビット位置の暗号化ビットを許可ビット復号鍵を用いて復号し、復号により得られるビット値からインデックス値を導出し、導出したインデックス値とタグデータとを対応付けて保管している。
インデックス管理部405は、
検索クエリを受信した際に、グループ化情報の復号により得られたノードに対応付けられている暗号化タグと管理番号の組を取り出すとともに、当該ノードの親ノードに関連付けられた暗号化タグと管理番号の組を全て取り出し、検索処理部406に送付することを説明した。
換言すると、インデックス管理部405は、
検索要求に含まれる暗号化されたビット列内の許可ビット位置の暗号化ビットを復号し、復号により得られる許可ビット位置のビット値からインデックス値を導出し、導出したインデックス値と同じインデックス値と対応付けられているタグデータを抽出し、
更に、許可ビット位置のうち最下位の許可ビット位置を除く許可ビット位置の暗号化ビットの復号により得られるビット値からインデックス値を導出し、導出したインデックス値と同じインデックス値と対応付けられているタグデータを抽出する。
以上の実施の形態1では、グループ化情報生成のための既存暗号化方式Aとして階層型IDベース暗号を用いたものであるが、次に非特許文献5に記載の内積述語暗号を用いて、タグ自身にグループ化情報も含める事が可能な実施の形態を示す。
内積述語暗号では、属性ベクトルというベクトルを公開鍵として用いて、任意のメッセージを暗号化する事ができる。
ユーザ秘密鍵には、述語ベクトルというベクトルが埋め込まれており、この述語ベクトルはユーザごとに異なるベクトルを用いる事が多い。
そして、暗号化データに埋め込まれた属性ベクトルと、ユーザ秘密鍵に埋め込まれた述語ベクトルの内積が0となる場合にのみ、そのユーザ秘密鍵を用いて、その暗号化データを復号できる。
もし内積が0にならない場合は、正しく復号できないという方式である。
そして、そのIDが一致する時にのみ、そのユーザ秘密鍵を用いて、その暗号化データが復号できた。
そのため、内積述語暗号はIDベース暗号を一般化したものと考える事ができる。
さらに、ANDやOR等の論理式をベクトルの内積を用いて評価できるという特徴があるため、IDベース暗号よりも復号条件を柔軟に指定可能であるという特徴もある。
データ暗号化部302、暗号化タグ生成部303、タグ付き暗号化データ生成部304、ユーザ秘密鍵管理部305、検索クエリ生成部306、データ復号部307、端末側データ送受信部309に関しては、実施の形態1の図3で示したものと同一である。
グループ化ビット列生成部2301は、実施の形態1におけるグループ化情報生成部310に対応する要素であり、インデックス導出ビット列生成部の例及び秘匿化処理部の例に相当する。
なお、グループ判定鍵は、暗号化タグのグループ化に用いるグループ判定鍵(暗号化タグ用)と、検索クエリがどのグループの暗号化タグを参照しているかを判定するために用いるグループ判定鍵(検索クエリ用)の2種から構成される。
なお、本実施の形態においても、グループ判定鍵生成部308は、許可ビット位置指定部の例及び秘匿化処理部の例に相当する。
なお、処理の流れ自体は実施の形態1で示した方式と類似しているが、既存秘匿検索方式や既存暗号化方式のアルゴリズムの相違から処理内容が若干異なっている。
そのため、実施の形態1で示した図5の処理の流れを用いて、その差異を中心に説明する。
なお、既存秘匿検索方式がグループ化情報を含む暗号化タグの生成に用いるもので、既存暗号化方式がデータ本体を暗号化するために用いる方式である。
例えば、図29のタグID階層構造に示す様に、タグIDは3階層で構成され、検索可能なユーザが所属する部や課等のグループ名称を格納するグループ名欄、氏名などを保管するユーザ名欄、データに関連付けたキーワードを設定するキーワード欄で構成する、等を決定する。
また、キーワード欄はグループ化情報とキーワード情報の2要素で構成され、グループ化情報は第1情報から第L情報までの要素で構成する、等を決定する。
このタグID述語ベクトルvTの生成例を図30に、タグID属性ベクトルxTの生成例を図31に示す。
例えばタグID階層構造のグループ名からベクトルの要素を導出する場合、タグID述語ベクトルの場合は(v1,v2)=(1,−“グループ名”)とし、タグID属性ベクトルの場合は(x1,x2)=(“グループ名”,1)とする。両者のベクトルの内積を取ると、グループ名が同一であった場合のみ内積値が0となり、異なる場合は0以外の値となる。
同様に、ユーザ名や第i情報や残ビット情報もベクトルの値に対応づける。
なお例外として、要素がワイルドカードであった場合、そのベクトルは(0,0)とする。
例えば、ユーザ名にワイルドカードが指定されている場合、タグID述語ベクトルなら(v3,v4)=(0,0)とし、タグID属性ベクトルなら(x3,x4)=(0,0)とする。
他の要素にワイルドカードが指定されている場合にも、同様にベクトルに対応づける事ができる。
また、図の様に対応づけた場合、非特許文献5のマスター鍵生成アルゴリズム(Setup)に記載の各パラメータは、n=6+2L、d=3+L、μ1=2、μ2=4、・・・、μ(3+L)=6+2Lとなる。
本実施の形態では、復号者ID階層数が2とし、復号者ID階層構造として、実施の形態1と同様にグループ名とユーザ名からなる復号者ID階層構造を持つものと仮定する。
なお、復号者ID階層構造の全ての要素が一致した場合に検索にヒットする事とし、それに対応した復号者ID述語ベクトルと復号者ID属性ベクトルの生成方法を導出する。
この復号者ID述語ベクトルvDの生成例を図32に、復号者ID属性ベクトルxDの生成例を図33に示す。
ベクトルの各要素の導出方法は、タグIDの場合と同様である。
また、この場合、非特許文献5のマスター鍵生成アルゴリズムに記載の各パラメータは、n=4、d=2、μ1=2、μ2=4となる。
同様に、既存暗号化方式のマスター鍵生成アルゴリズムを実行して暗号化用マスター鍵と暗号化用公開パラメータを生成する。
以降、秘匿検索用マスター鍵と暗号化用マスター鍵をまとめてマスター鍵、秘匿検索用公開パラメータと暗号化用公開パラメータをまとめて公開パラメータと呼ぶ事とする。
以上の手順によって、本秘匿検索システムのセットアップが完了する。
なお、処理の流れ自体は実施の形態1で示した方式と類似しているが、既存秘匿検索方式や既存暗号化方式のアルゴリズムの相違から処理内容が若干異なっている。
そのため、実施の形態1で示した図6の処理の流れを用いて、その差異を中心に説明する。
既存秘匿検索方式では、秘匿検索用ユーザ秘密鍵を生成する際にタグID階層構造を指定する必要があるが、ユーザ秘密鍵生成部204は、S601にて取得したグループ名をグループ名欄に、同じくユーザ名をユーザ名に設定し、キーワード欄内の全ての要素は委譲可能な要素として指定する。
この値を設定したタグID階層構造をステップS502で決定したベクトル生成ルールに基づいてベクトル化を行ってタグID述語ベクトルを生成し、既存秘匿検索方式のユーザ秘密鍵生成アルゴリズム(GenKey)を実行する事で、秘匿検索用ユーザ秘密鍵が生成できる。
同様に、既存暗号化方式で暗号化用ユーザ秘密鍵を生成する際に復号者ID階層構造を指定する必要があるが、S601にて取得したグループ名をグループ名欄に、同じくユーザ名をユーザ名に指定し、ユーザ秘密鍵生成部204は、この値を設定した復号者ID階層構造をステップS502で決定したベクトル生成ルールに基づいてベクトル化を行う事で復号者ID述語ベクトルを生成し、既存暗号化方式のユーザ秘密鍵生成アルゴリズムを実行する事で、暗号化用ユーザ秘密鍵が生成できる。
上記で生成した秘匿検索用ユーザ秘密鍵、暗号化用ユーザ秘密鍵をまとめてユーザ秘密鍵と呼ぶ事にする。
以上の手順によって、鍵管理サーバ装置201はアクセス端末装置301を操作するユーザに対してユーザ秘密鍵を発行する事ができる。
なお、処理の流れ自体は実施の形態1で示した方式と類似しているが、既存秘匿検索方式や既存暗号化方式のアルゴリズムの相違から処理内容が若干異なっている。
そのため、実施の形態1で示した処理の流れとの差異を中心に説明する。
具体的には、グループ化ビット列生成部2301は、キーワードを元にLビットのビット列と、任意のキーワード情報を生成する。
これは例えば、SHA−2等のハッシュ関数を用いてキーワードのハッシュ値を生成し、その中から任意のLビットを抽出してLビットのビット列とし、残りのビット列を並べたもの、もしくはハッシュ値全体をキーワード情報とする事などで生成できる。
具体的には、暗号化タグ生成部303は、タグID階層構造のグループ名とユーザ名にS701で受け取ったグループ名とユーザ名を、キーワード欄にS2404にて生成したグループ化ビット列をそれぞれ指定して、その値が設定されたタグID階層構造からタグID属性ベクトルを生成し、既存秘匿検索方式の暗号化アルゴリズム(Enc)でタグを作成する。
このタグを暗号化タグとする。
非特許文献5では、秘匿検索用のタグの生成方式は明示的に記載されていないが、一般的に次の様に実施すれば良い事が知られている。
最初に、乱数Rを選び、この乱数RをタグID属性ベクトルを用いて暗号化する事で暗号文Cを得る。
そして、タグを(乱数R、暗号文C)の組とすれば良い。
なお、上記はキーワード1個に対する処理であるため、これをデータに関連付けられた全てのキーワードに対して実施する。
また、S701にて複数のグループ名とユーザ名を受領している場合、全てのグループ名とユーザ名の組に対して暗号化タグを生成する。
この時、データセンタ装置401でタグ付き暗号化データの保管を容易にするため、タグ付き暗号化データ生成部304は、S701にて受領したグループ名とユーザ名を共に送付する。
ステップS2405での暗号化タグの生成処理が若干変更になっているため、タグ付き暗号化データの構成も図34で示した様に、実施の形態1の図16から暗号化タグの構成が変わった構成となっている。
なお、実施の形態1と同様に、インデックス情報もグループ名、ユーザ名ごとに管理しているものとする。
具体的には、インデックス管理部405は、例えば第1階層に対応したグループ判定鍵(暗号化タグ用)でタグ(R,C)のうち暗号文Cを復号し、復号結果が乱数Rと同一であった場合、第1情報を0とし、同一でなかった場合は第1情報を1とする。
同様の手順にて、第1情報から第L’情報までを決定する。
以上の手順により、アクセス端末装置301はデータを暗号化してデータセンタ装置401に保管を要求し、データセンタ装置401は受け取ったタグ付き暗号化データの保管を行う事ができる。
なお、処理の流れ自体は実施の形態1で示した方式と類似しているが、既存秘匿検索方式や既存暗号化方式のアルゴリズムの相違から処理内容が若干異なっている。
そのため、実施の形態1で示した処理の流れとの差異を中心に説明する。
本処理は、ステップS2404の処理と同一であるため省略する。
具体的には、秘匿検索用ユーザ秘密鍵には、タグID階層構造のグループ名とユーザ名に値が設定されているが、キーワード欄に関しては値が設定されておらず、後でユーザによって値の設定ができる様になっている。
そこで、検索クエリ生成部306は、キーワード欄に設定する値であるグループ化ビット列を指定して生成したタグID述語ベクトルと、秘匿検索用ユーザ秘密鍵と入力として、既存秘匿検索方式の検索クエリ生成関数(Delegate関数)を実行して、生成された秘密鍵をトラップドアとする。
このトラップドアは、タグID階層構造で示した全ての要素に値が設定された状態となっている。
このトラップドアを検索クエリとする。
そして、生成した検索クエリをデータセンタ装置401に送付する。
この時、ユーザ自身のグループ名とユーザ名も送付する。
具体的には、インデックス管理部405は、例えば第1階層に対応したグループ判定鍵(検索クエリ用)は(R,C)から構成されているため、トラップドアを用いて暗号文Cを復号し、復号結果が乱数Rと同一であった場合、第1情報を0とし、同一でなかった場合は第1情報を1とする。
同様の手順にて、第1情報から第L’情報までを決定する。
そして、そのポインタが指すノードに関連付けられた暗号化タグと管理番号の組を全て取り出し、検索処理部406に送付する。
次に、ステップS1005とステップS1006とステップS1007は、実施の形態1と同様であるため説明を省略する。
以上により、ステップS2604で実施する、インデックス情報から検索の候補となる暗号化タグを全て取得する処理が終了する。
具体的には、検索処理部406は、トラップドアでタグ(R,C)のうち暗号文Cを復号し、復号結果が乱数Rと同一であった場合、キーワードが一致したと判定する。
同一でなかった場合は、キーワードが一致しなかったと判定する。
なお、既存秘匿検索技術の判定処理は、1個のタグと、1個のトラップドアの比較しか実施できないため、これをS904にて取得した全ての暗号化タグに対して実施する。
そして、判定処理の結果、一致と判定された暗号化タグに関連付けられた管理番号を特定する。
以上の手順により、アクセス端末装置301はユーザから検索キーワードを受け取り、そのキーワードを含む暗号化データをデータセンタ装置401から取得し、それを復号して閲覧する事ができる。
なお、処理の流れ自体は実施の形態1で示した方式と類似しているが、既存秘匿検索方式や既存暗号化方式のアルゴリズムの相違から処理内容が若干異なっている。
そのため、実施の形態1で示した処理の流れとの差異を中心に説明する。
そして、グループ判定鍵生成部308は、新たに発行するグループ判定鍵の階層L’+1を特定する。
次に、グループ判定鍵生成部308は、タグID階層構造のグループ化情報のうち第L’+1情報に0を指定する。
その他の第1情報から第L’情報と、第L’+2情報から第L情報と、キーワード情報にはワイルドカードを指定する。
このタグID階層構造に対して、グループ判定鍵生成部308は、ユーザ秘密鍵に埋め込まれたグループ名とユーザ名を組み合わせる事でタグID述語ベクトルを生成すると共に、S1101にて受け取ったグループ名とユーザ名を組み合わせる事でタグID属性ベクトルを生成する。
そして、グループ判定鍵生成部308は、秘匿検索用ユーザ秘密鍵と、上記で生成したタグID述語ベクトルを入力として、既存秘匿検索方式の検索クエリ生成関数(Delegate関数)を実行する事で、第L’+1階層に対応するグループ判定鍵(暗号化タグ用)を生成する。
更に、グループ判定鍵生成部308は、ステップS2405と同様の手順にて、上記で生成したタグID属性ベクトルを入力としてタグ(R,C)を生成し、これをグループ判定鍵(検索クエリ用)とする。
そして、グループ判定鍵生成部308は、生成したグループ判定鍵(暗号化タグ用)とグループ判定鍵(検索クエリ用)を合わせてグループ判定鍵として、再構成したいインデックスに関連付けられたグループ名とユーザ名と共にデータセンタ装置401に送付する。
そして、インデックス管理部405は、ステップS2503と同様の手順にて、タグから第L’+1階層に振り分けるための第L’+1情報を取得する。
そして、インデックス管理部405は、暗号化タグと管理番号を、選択した第L’階層ノードの子ノードのいずれに振り分けるかを第L’+1情報を元に決定し、第L’階層ノードの関連付けを削除して、新たに第L’+1階層ノードに関連付けて保存する。
これを選択した第L’階層に関連付けられた全ての暗号化タグに対して実施する。
以上の手順により、アクセス端末装置301はデータセンタ装置401に対してグループ判定鍵を新たに生成してインデックス情報の再構成を要求し、データセンタ装置401は自身が管理するインデックス情報の再構成を行う事で、インデックス情報の階層数を1階層増やす事ができる。
検索の際にも、検索クエリとグループ判定鍵(検索クエリ用)を用いて検索対象の暗号化タグのグループを一意に特定できる様にしているため、全ての暗号化タグに対して既存秘匿検索技術の判定処理を行う必要が無くなり、特定のグループに属する暗号化タグに対してのみ既存秘匿検索技術の判定処理を行えばよく、秘匿検索の時間を大きく削減する事ができる。
例えば、L’個のグループ判定鍵がデータセンタ装置401に開示されている状況では、暗号化タグM個を2^L’個のグループに分割する事ができるため、各グループには平均的にM/2^L’個の暗号化タグが含まれる。
そのため、本実施の形態によって、検索処理は2^L’倍に高速化される。
そのため、開示するグループ判定鍵の数によって、ユーザがグループ化のレベルを調整する事ができる。
例えば、L’個のグループ判定鍵を開示している状況で、暗号化データの保管数が増えるに従って検索時間がT時間になり、運用に支障が生じたとする。
この時、新しくL’+1階層目に対応したグループ判定鍵を開示する事で、暗号化タグを2倍のグループに分割する事ができるため、検索時間をT/2に削減する事ができる様になる。
そのため、データの機密性を保護したいユーザからすれば、不必要にデータセンタ装置401に暗号化データをグループ化されてしまう事は望まない。
本実施の形態では、ユーザが求める安全性のレベルと検索処理の応答時間に応じて、必要最小限のグループ判定鍵のみをデータセンタ装置401に与える様にユーザ自身が制御する事ができる。
そのため、グループ化情報としてLビットの情報を付加していたとしても、開示するグループ判定鍵の数を調整する事で、ユーザ自身によって安全性と高速性のバランスを調整する事ができる。
そのため、グループ化情報に設定した値自身もデータセンタ装置401には分からないため、それがキーワードのハッシュ値であったとしてもキーワードの推測が困難であり、安全性を向上させる事ができる。
そのため、本実施の形態で示した既存秘匿検索方式だけでなく、提案されている様々な既存秘匿検索方式に対して適用可能であり、その検索性能を向上させる事ができる。
本実施の形態では、非特許文献5の記載の方式に適用した例を示したが、例えば非特許文献3に記載の方式にも適用できるし、その他の内積述語暗号や関数型暗号など、あらゆる既存秘匿検索方式に対して適用可能である。
そのため、一般的によく利用されているRSA(登録商標)暗号などを利用する事も可能である。
また、本実施の形態では確率的暗号に基づく秘匿検索技術を高速化する手法について示した。
一般的に秘匿検索の検索時間だけを見れば確定的暗号に基づく方式が早いが、暗号化データの出現頻度を分析して平文を推定できるという課題がある。
一方、確率的暗号に基づく方式は、暗号化データの出現頻度がキーワードの出現頻度と無関係なため、出現頻度の分析による平文の推定に対して安全であるが、検索処理にとても時間がかかるという課題がある。
しかし、本実施の形態は確率的暗号に基づいているため、検索が高速化されているにもかかわらず、出現頻度による分析に対しての安全性が残っているというメリットがある。
そのため、ユーザが検索を行う場合、元々読む事ができない暗号化データが含まれるインデックス情報を検索する必要が無くなるため、検索処理を大きく向上させる事ができる。
本実施の形態では、グループ判定鍵の開示は、グループ名とユーザ名の組と関連付けられたインデックスに対して実施する様な仕組みとした。
そのため、開示範囲ごとに安全性と高速性のバランスを調整する事ができる。
そのため、追加でグループ判定鍵を受け取ってインデックス情報の再構成を行っている最中に検索クエリを受け取ったとしても、検索対象とすべき暗号化タグを漏らすことなくチェックする事ができる。
同様に、暗号化タグを生成したりするための補助にもなる。
なお、本実施の形態では、2分木を用いたインデックス情報を構成する例を示した。
しかし、生成するインデックスは2分木に限る必要はなく、グループ化情報から生成する事ができるものであれば、より一般的な木構造であっても良く、ハッシュテーブルであっても良い。
また、インデックス情報として作成した2分木は、その構造を保ったままディスクに保管する必要はなく、例として示した様にノード番号を割り当てて表形式で保管しても良いし、その他のデータ形式で保管しても良い。
また、本実施の形態では、キーワードから生成したビット列の第iビットを第i情報として用いる様にした。
しかし、1ビットずつ利用する必要はなく、2ビット以上の情報を用いて第i情報を生成する様にしても良い。
例えば、キーワードから2Lビットのビット列を生成し、その第2i−1ビット目と第2iビット目を第i情報として利用することも可能である。
また、本実施の形態では、グループ化情報の第i情報には、0や1といった1ビットの情報を含める例を示した。
しかし、本情報を用いて2分木の子ノード(左)か子ノード(右)かを判断できればいいので、必ずしも0や1の値である必要はない。
例えば、1と−1でも良いし、その他の値を入れる様にしても良い。
しかし、必ずしも0を設定する必要はなく、1を設定する様にしても良い。
また、第i情報が1と−1のいずれかを設定する様にした場合は−1でも良いし、その他の値を入れる様にしても良い。
しかし、この0と1の割り振りは逆であっても良い。
また、本実施の形態では、キーワードからLビットのビット列を作成する際に、例えばSHA−2等のハッシュ関数を利用する事を例示したが、Lビットのビット列が作れるものであればアルゴリズムは何でも良い。
例えば、SHA−2以外のハッシュ関数を用いても良いし、HMAC等の鍵付きハッシュや、AES等の共通鍵暗号や、RSA(登録商標)暗号等の公開鍵暗号を用いても良い。
なお、鍵付きハッシュや共通鍵暗号や公開鍵暗号を用いる場合は、秘匿検索用ユーザ秘密鍵に加えてハッシュ鍵や共通鍵や秘密鍵も配布する必要がある。
また、キーワードを乱数のシードとして、疑似乱数生成アルゴリズムでLビットの乱数を生成する様にしても良い。
他にも、キーワードとLビット列の対応表を使う様にしても良い。
特に、Lビット列の対応表を用いる場合、キーワードの出現頻度を考慮してLビット列の発生頻度を平準化できるため、安全性が更に向上する事が期待できる。
また、本実施の形態では、ユーザがグループ判定鍵を1個ずつ開示する事を想定した例を記載したが、1回に1個ずつと制限する必要はなく、同時に2個や3個のグループ判定鍵を公開する様にしても良い。
また、本実施の形態では、ユーザがインデックス再構成を行うタイミングでグループ判定鍵を生成していた。
しかし、グループ判定鍵はインデックス再構成を行う前であればいつ生成しても良い。
更に、ユーザではなく、鍵管理サーバ装置201がユーザ秘密鍵発行時に代行して生成しても良い。
また、本実施の形態では、タグID階層構造や復号者ID階層構造にて、グループ名とユーザ名の2種類の情報を用いて復号・検索が可能なユーザやグループを指定する例を示した。
しかし、この2種類の情報に制限する必要はなく、例えば部名・課名・氏名の3種を用いても良いし、氏名だけを用いても良い。
また、内積述語暗号ではANDやOR等の条件を用いて受信者の属性を指定できるので、その様に柔軟に受信者を指定できるようにしても良い。
また、本実施の形態では、タグID階層構造をタグID述語ベクトルやタグID属性ベクトルに変換する方式として、タグID述語ベクトルの場合は(v1,v2)=(1,−“グループ名”)とし、タグID属性ベクトルの場合は(x1,x2)=(“グループ名”,1)とする例を示した。
しかし、例えば(v1,v2)=(1,−“グループ名”)と(x1,x2)=(“グループ名”,1)としても良いし、他の変換方法を用いても構わない。
タグID階層構造からタグID述語ベクトルやタグID属性ベクトルへの変換方法に制約はなく、一般的に知られた様々な方法を利用する事ができる。
同様に、復号者ID階層構造に関しても同様である。
また、本実施の形態では、タグ付き暗号化データを生成する際、タグID階層構造や復号者ID階層構造に、グループ名とユーザ名として同じ値を設定する例を示した。
しかし、これらは同じ値にせず、異なる値を設定しても良い。
例えば、ユーザには検索だけ許可し、暗号化データ自身の復号は許可したくない場合は、タグID階層構造にはユーザのグループ名とユーザ名を設定し、復号者ID階層構造には別の復号可能なユーザのグループ名とユーザ名を設定すればよい。
また、本実施の形態では、鍵管理サーバ装置201が1台の例を示したが、1台に制限する必要はない。
例えば、非特許文献5の方式や、その他の秘匿検索方式では、鍵管理サーバ装置にも階層構造を持たせ、複数台に役割を分散して運用する形態も記載されている。
本実施の形態でも同様にして、鍵管理サーバ装置に階層構造を持たせた形で利用する事も可能である。
また、本実施の形態では、内積述語暗号に基づく既存秘匿検索方式や既存暗号化方式を用いた例を示した。
しかし、内積述語暗号に基づく方式に制約するものではなく、同様の機能を実現した関数型暗号などを用いる事も可能であるし、AESやCamellia(登録商標)やHMACなどの共通鍵暗号や、RSA(登録商標)暗号などの公開鍵暗号を用いる事も可能である。
また、本実施の形態では、既存秘匿検索方式や既存暗号化方式に非特許文献5に記載の内積述語暗号を用いた例を示したが、それぞれ異なる公開パラメータを利用する様にした。
しかし、例えば利用する楕円曲線など、公開パラメータの一部の情報を共通化して利用する事も可能である。そのため、共通化できるものは共通化して利用しても構わない。
また、本実施の形態では、検索キーワードが1個の場合を示したが、必ずしも検索キーワードを1個に制限する必要はない。
例えば、複数の検索キーワードがある場合、それぞれのキーワードに対して検索クエリを生成して、全ての検索クエリをデータセンタ装置401に送付しても良い。
またその時、例えば1個の検索クエリでヒットと判定された暗号化データを取得するとか、検索クエリAと検索クエリBの両方がヒットした暗号化データを取得する等、任意の条件も送付して良い。
また、本実施の形態では、インデックス管理部405から取得した暗号化タグの全てを検索クエリと判定する様にした。
しかし、検索にヒットしたと判定された暗号化データに関しては、それ以降、その暗号化データに関連付けられた暗号化タグのチェックをしなくても構わない。また、検索結果として例えば10件の結果を返せばいい場合においても、規定個数以上の検索結果が見つかったら、それ以降の暗号化タグのチェックを行わなくても良い。
また、本実施の形態では、鍵管理サーバ装置201にユーザID情報データベースを設け、その情報を元にユーザ秘密鍵の生成を行っていた。
しかし、ユーザID情報データベースは必ずしも必須なものではなく、ユーザ秘密鍵を発行する際に鍵管理サーバ装置201の管理者によって指定する様にしても良いし、アクセス端末装置301から受領する様にしても良い。
また、本実施の形態では、アクセス端末装置301は一人のユーザが操作するものと仮定した記載とした。
しかし、アクセス端末装置301自身は一人のユーザが占有するものではなく、複数名で共有する様な仕組みでも良い。
この場合、ユーザ秘密鍵管理部305ではユーザごとに1個のユーザ秘密鍵が割り当てられるため、複数のユーザ秘密鍵を保管する様にして、アクセス端末装置301で操作者の認証をする事で、どのユーザ秘密鍵を利用すべきかを判断する事が好ましい。
また、ユーザ秘密鍵を社員証などに保管して管理する事も可能である。
この場合、ユーザ秘密鍵管理部305がICカードに相当する機能だが、ユーザ秘密鍵を用いた処理をICカードにて全て行わせる場合、必要に応じて検索クエリ生成部306やデータ復号部307やグループ判定鍵生成部308の一部の処理をICカードに実施させても良い。
また、本実施の形態では、データを暗号化する際にAESやCamellia(登録商標)を自動的に用いる事を例示したが、これはシステム内で事前に利用する方式を決定しておいても良いし、ユーザによって設定できる様にしておいても良い。
また、本実施の形態では、検索の結果、ヒットした暗号化データを全て返却する様な例を示したが、必ずしも検索時に同時に全ての暗号化データ自身を返却する必要はない。
例えば、ヒットした暗号化データのうち数個を返すだけにするとか、個数だけを返す様にするとか、暗号化データのリストだけを返却する様にしても良い。
また、本実施の形態では、鍵管理サーバ装置201とアクセス端末装置301が企業内にあり、データセンタ装置401がインターネットなどに接続された外部サービスとして存在した例を示した。
しかし、本発明はこの様なシステム構成に限定されるものではない。
例えば、データセンタ装置401が企業内にあっても良いし、鍵管理サーバ装置201やアクセス端末装置301が企業外のネットワークに接続されていても良い。
アクセス端末装置301のグループ化ビット列生成部2301(インデックス導出ビット列、秘匿化処理部)は、実施の形態1と異なり、内積述語暗号を用いていることを説明した。
グループ化ビット列生成部2301は、
保管キーワードのハッシュ値から、インデックス情報のノードの最大階層数と同数であるLビットのビット列を抽出するとともに、ハッシュ値の他のビット又はハッシュ値全体をキーワード情報とし、
更に、暗号化タグ生成部303は、Lビットのビット列及びキーワード情報を暗号化し、暗号化したLビットのビット列及びキーワード情報を暗号化タグとし、暗号化タグをデータセンタ装置401に送信することを説明した。
換言すると、グループ化ビット列生成部2301は、
保管キーワードから一意に得られる乱数値のビット列から、許可ビット位置として指定できる最大数と同数のビット数の保管インデックス導出ビット列を生成し、更に、乱数値のビット列の他のビット又は乱数値のビット列全体をキーワード情報とし、
暗号化タグ生成部303は、
保管インデックス導出ビット列及びキーワード情報を暗号化し、暗号化した保管インデックス導出ビット列及びキーワード情報をタグデータとし、タグデータをデータセンタ装置401(データ保管装置)に送信している。
グループ化ビット列生成部2301は、
検索キーワードのハッシュ値から、インデックス情報のノードの最大階層数と同数であるLビットのビット列を抽出するとともに、ハッシュ値の他のビット又はハッシュ値全体をキーワード情報とし、
更に、暗号化タグ生成部303は、Lビットのビット列及びキーワード情報を暗号化し、暗号化したLビットのビット列及びキーワード情報をトラップドアとし、トラップドアをデータセンタ装置401に送信することを説明した。
換言すると、グループ化ビット列生成部2301は、
検索キーワードから一意に得られる乱数値のビット列から、許可ビット位置として指定できる最大数と同数のビット数の検索インデックス導出ビット列を生成し、更に、乱数値のビット列の他のビット又は乱数値のビット列全体をキーワード情報とし、
暗号化タグ生成部303は、
検索インデックス導出ビット列及びキーワード情報を暗号化し、暗号化した検索インデックス導出ビット列及びキーワード情報を暗号化した検索キーワードとし、暗号化した検索キーワードをデータセンタ装置401(データ保管装置)に送信している。
データセンタ装置401のインデックス管理部405は、
タグ付き暗号化データを受信した際に、暗号化タグをグループ判定鍵で復号し、正しく復号できた場合にビット値0とし、復号できなかった場合にビット値を1とすることで、L’個分のビット値を導出してノード番号としている。
換言すれば、インデックス管理部405は、
保管要求を受信した際に、タグデータ内の暗号化ビットのうち許可ビット位置の暗号化ビットを許可ビット復号鍵で復号し、正しく復号できた場合にビット値0とし、復号できなかった場合にビット値を1とすることで、復号結果から保管インデックス値の各ビットのビット値を導出し、導出した各ビットのビット値を連結して保管インデックス値を導出している。
データセンタ装置401のインデックス管理部405は、
検索クエリを受信した際に、トラップドアをグループ判定鍵で復号し、正しく復号できた場合にビット値0とし、復号できなかった場合にビット値を1とすることで、L’個分のビット値を導出してノード番号としている。
換言すれば、インデックス管理部405は、
検索要求を受信した際に、暗号化された検索キーワード内の暗号化ビットのうち許可ビット位置の暗号化ビットを許可ビット復号鍵で復号し、正しく復号できた場合にビット値0とし、復号できなかった場合にビット値を1とすることで、復号結果から検索インデックス値の各ビットのビット値を導出し、導出した各ビットのビット値を連結して検索インデックス値を導出している。
図35は、実施の形態1及び2に示す鍵管理サーバ装置201、アクセス端末装置301及びデータセンタ装置401のハードウェア資源の一例を示す図である。
なお、図35の構成は、あくまでも鍵管理サーバ装置201、アクセス端末装置301及びデータセンタ装置401のハードウェア構成の一例を示すものであり、鍵管理サーバ装置201、アクセス端末装置301及びデータセンタ装置401のハードウェア構成は図35に記載の構成に限らず、他の構成であってもよい。
また、鍵管理サーバ装置201、アクセス端末装置301及びデータセンタ装置401は、それぞれ異なるハードウェア構成であってもよい。
CPU911は、バス912を介して、例えば、ROM(Read Only Memory)913、RAM(Random Access Memory)914、通信ボード915、表示装置901、キーボード902、マウス903、磁気ディスク装置920と接続され、これらのハードウェアデバイスを制御する。
更に、CPU911は、FDD904(Flexible Disk Drive)、コンパクトディスク装置905(CDD)と接続していてもよい。
また、磁気ディスク装置920の代わりに、SSD(Solid State Drive)、光ディスク装置、メモリカード(登録商標)読み書き装置などの記憶装置でもよい。
RAM914は、揮発性メモリの一例である。ROM913、FDD904、CDD905、磁気ディスク装置920の記憶媒体は、不揮発性メモリの一例である。これらは、記憶装置の一例である。
例えば、実施の形態1及び2で説明した鍵保管部203、ユーザID情報管理部206、ユーザ秘密鍵管理部305、インデックス管理部405及び暗号化データ管理部404は、RAM914、磁気ディスク装置920等に、各種鍵、インデックス情報、暗号化データ、タグデータ等を保管している。
通信ボード915、キーボード902、マウス903、FDD904などは、入力装置の一例である。
また、通信ボード915、表示装置901などは、出力装置の一例である。
例えば、通信ボード915は、社内LAN(ローカルエリアネットワーク)、インターネットの他、WAN(ワイドエリアネットワーク)、SAN(ストレージエリアネットワーク)などに接続されていても構わない。
プログラム群923のプログラムは、CPU911がオペレーティングシステム921、ウィンドウシステム922を利用しながら実行する。
また、RAM914には、CPU911による処理に必要な各種データが格納される。
鍵管理サーバ装置201、アクセス端末装置301及びデータセンタ装置401の起動時には、ROM913のBIOSプログラム及び磁気ディスク装置920のブートプログラムが実行され、BIOSプログラム及びブートプログラムによりオペレーティングシステム921が起動される。
「〜ファイル」や「〜データベース」は、ディスクやメモリなどの記録媒体に記憶される。
ディスクやメモリなどの記憶媒体に記憶された情報やデータや信号値や変数値やパラメータは、読み書き回路を介してCPU911によりメインメモリやキャッシュメモリに読み出される。
そして、読み出された情報やデータや信号値や変数値やパラメータは、抽出・検索・参照・比較・演算・計算・処理・編集・出力・印刷・表示などのCPUの動作に用いられる。
抽出・検索・参照・比較・演算・計算・処理・編集・出力・印刷・表示のCPUの動作の間、情報やデータや信号値や変数値やパラメータは、メインメモリ、レジスタ、キャッシュメモリ、バッファメモリ等に一時的に記憶される。
また、実施の形態1及び2で説明しているフローチャートの矢印の部分は主としてデータや信号の入出力を示す。
データや信号値は、RAM914のメモリ、FDD904のフレキシブルディスク、CDD905のコンパクトディスク、磁気ディスク装置920の磁気ディスク、その他光ディスク、ミニディスク、DVD等の記録媒体に記録される。
また、データや信号は、バス912や信号線やケーブルその他の伝送媒体によりオンライン伝送される。
すなわち、実施の形態1及び2で説明したフローチャートに示すステップ、手順、処理により、データ処理装置及びデータ保管装置を方法として把握することができる。
また、「〜部」として説明しているものは、ROM913に記憶されたファームウェアで実現されていても構わない。
或いは、ソフトウェアのみ、或いは、素子・デバイス・基板・配線などのハードウェアのみ、或いは、ソフトウェアとハードウェアとの組み合わせ、さらには、ファームウェアとの組み合わせで実施されても構わない。
ファームウェアとソフトウェアは、プログラムとして、磁気ディスク、フレキシブルディスク、光ディスク、コンパクトディスク、ミニディスク、DVD等の記録媒体に記憶される。
プログラムはCPU911により読み出され、CPU911により実行される。
すなわち、プログラムは、実施の形態1及び2の「〜部」としてコンピュータを機能させるものである。あるいは、実施の形態1及び2の「〜部」の手順や方法をコンピュータに実行させるものである。
そして、上記したように「〜部」として示された機能をこれら処理装置、記憶装置、入力装置、出力装置を用いて実現するものである。
Claims (14)
- 複数の暗号化データと、各暗号化データに対応付けられている、暗号化データの検索の際に照合されるタグデータとを保管するデータ保管装置に接続されたデータ処理装置であって、
前記データ保管装置での保管の対象となる保管対象データのキーワードを保管キーワードとして指定するキーワード指定部と、
前記データ保管装置へのビット値の開示を許可するビット位置を許可ビット位置として指定する許可ビット位置指定部と、
所定の生成手順にて、前記保管キーワードから所定のビット列を保管インデックス導出ビット列として生成するインデックス導出ビット列生成部と、
前記保管インデックス導出ビット列内の前記許可ビット位置のビット値は前記データ保管装置に開示し前記保管インデックス導出ビット列内の前記許可ビット位置以外のビット値は前記データ保管装置に秘匿する秘匿化処理を行い、前記保管対象データの暗号化データに対応付けられるタグデータを保管する際に前記データ保管装置が前記タグデータに付す保管インデックス値を、前記データ保管装置に、前記保管インデックス導出ビット列内の前記許可ビット位置の開示されたビット値から導出させる秘匿化処理部とを有し、
前記秘匿化処理部は、
許可ビット位置ごとに、許可ビット位置の暗号化ビットの復号に用いられる復号鍵を許可ビット復号鍵として生成し、
前記データ処理装置は、更に、
前記許可ビット復号鍵を前記データ保管装置に対して送信する許可ビット復号鍵送信部を有し、
前記秘匿化処理部は、
前記許可ビット位置の暗号化ビットは前記許可ビット復号鍵により復号され、前記許可ビット位置以外の暗号化ビットは前記許可ビット復号鍵により復号されない暗号化方式にて前記保管インデックス導出ビット列を暗号化し、
前記データ処理装置は、更に、
前記保管対象データの暗号化データと、前記保管対象データの暗号化データに対応付けられるタグデータと、暗号化された前記保管インデックス導出ビット列とが含まれる保管要求を前記データ保管装置に対して送信する保管要求送信部を有することを特徴とするデータ処理装置。 - 前記データ処理装置は、
暗号化された検索キーワードと、開示が許可されているビット位置のビット値の開示により前記暗号化された検索キーワードとの照合の対象となるタグデータのインデックス値が導出される検索インデックス導出ビット列とが含まれる検索要求を受信した際に、前記検索インデックス導出ビット列内のビット値の開示により得られるインデックス値に基づき、前記暗号化された検索キーワードとの照合の対象となるタグデータを特定し、特定したタグデータと前記暗号化された検索キーワードとを照合して暗号化データを検索するデータ保管装置に接続され、
前記インデックス導出ビット列生成部は、
前記データ保管装置において前記検索インデックス導出ビット列から得られるインデックス値と比較される保管インデックス値が、前記秘匿処理部による前記データ保管装置への前記許可ビット位置のビット値の開示により導出される保管インデックス導出ビット列を生成することを特徴とする請求項1に記載のデータ処理装置。 - 前記許可ビット位置指定部は、
順次新たな許可ビット位置を指定し、
前記秘匿化処理部は、
前記許可ビット位置指定部により新たな許可ビット位置が指定された場合に、前記保管インデックス導出ビット列内の既存の許可ビット位置のビット値に加えて新たに指定された許可ビット位置のビット値を前記データ保管装置に開示する秘匿化処理を行い、保管インデックス値のビット数を増加させることを特徴とする請求項1に記載のデータ処理装置。 - 前記秘匿化処理部は、
前記保管対象データに対するアクセスが許可されるユーザのユーザ情報が反映されている復号鍵を、前記許可ビット復号鍵として生成し、
前記保管対象データに対するアクセスが許可されるユーザのユーザ情報が反映されている暗号鍵を用いて、前記保管インデックス導出ビット列を暗号化することを特徴とする請求項1に記載のデータ処理装置。 - 前記許可ビット位置指定部は、
順次新たな許可ビット位置を指定し、
前記秘匿化処理部は、
前記許可ビット位置指定部により新たな許可ビット位置が指定された場合に、新たに指定された許可ビット位置の暗号化ビットの復号に用いられる許可ビット復号鍵を生成し、
前記許可ビット復号鍵送信部は、
前記秘匿化処理部により生成された新たな許可ビット復号鍵を前記データ保管装置に対して送信することを特徴とする請求項1に記載のデータ処理装置。 - 前記データ処理装置は、
暗号化された検索キーワードとの照合の対象となるタグデータを特定し、特定したタグデータと前記暗号化された検索キーワードとを照合して暗号化データを検索するデータ保管装置に接続され、
前記キーワード指定部は、
前記データ保管装置に暗号化データの検索を行わせる検索キーワードを指定し、
前記インデックス導出ビット列生成部は、
前記保管インデックス導出ビット列と同じ生成手順にて、前記キーワード指定部により指定された前記検索キーワードから所定のビット列を検索インデックス導出ビット列として生成し、
前記秘匿化処理部は、
前記データ保管装置へのビット値の開示が許可されているビット位置である許可ビット位置の暗号化ビットは、前記データ保管装置が保有する許可ビット復号鍵により復号され、前記許可ビット位置以外の暗号化ビットは前記許可ビット復号鍵により復号されない暗号化方式にて前記検索インデックス導出ビット列を暗号化し、
暗号化された検索キーワードとの照合の対象となるタグデータを抽出する際に前記データ保管装置が保管インデックス値と比較する検索インデックス値を、前記データ保管装置に、暗号化された前記検索インデックス導出ビット列内の前記許可ビット位置の暗号化ビットの復号により前記データ保管装置に開示される前記許可ビット位置のビット値から導出させ、
前記データ処理装置は、更に、
暗号化された前記検索キーワードと、暗号化された前記検索インデックス導出ビット列とが含まれる検索要求を前記データ保管装置に対して送信する検索要求送信部を有することを特徴とする請求項5に記載のデータ処理装置。 - 前記秘匿化処理部は、
前記データ処理装置のユーザのユーザ情報が反映されている暗号鍵を用いて、前記検索インデックス導出ビット列を暗号化することを特徴とする請求項6に記載のデータ処理装置。 - データ処理装置に接続され、前記データ処理装置から送信された暗号化データを保管するデータ保管装置であって、
復号が許可されている許可ビット位置ごとに、許可ビット位置の暗号化ビットの復号に用いられる許可ビット復号鍵を保管する許可ビット復号鍵管理部と、
保管対象の暗号化データと、暗号化データの検索の際に照合されるタグデータと、前記保管対象の暗号化データに指定された保管キーワードを用いて生成された暗号化されたビット列とが含まれる保管要求を前記データ処理装置から受信する保管要求受信部と、
前記保管要求に含まれる前記保管対象の暗号化データを、前記タグデータと対応付けて保管する暗号化データ管理部と、
前記保管要求に含まれる前記暗号化されたビット列内の許可ビット位置の暗号化ビットを前記許可ビット復号鍵を用いて復号し、復号により得られるビット値からインデックス値を導出し、導出したインデックス値と前記保管要求に含まれる前記タグデータとを対応付けて保管するインデックス管理部とを有することを特徴とするデータ保管装置。 - 前記許可ビット復号鍵管理部は、
ユーザ情報と対応付けて許可ビット復号鍵を保管し、
前記保管要求受信部は、
前記保管対象の暗号化データに対するアクセスが許可されるユーザのユーザ情報が含まれる保管要求を受信し、
前記インデックス管理部は、
前記保管要求に含まれるユーザ情報と合致するユーザ情報と対応付けられている許可ビット復号鍵を用いて、前記保管要求に含まれる前記暗号化されたビット列内の許可ビット位置の暗号化ビットを復号し、インデックス値を導出することを特徴とする請求項8に記載のデータ保管装置。 - 前記許可ビット復号鍵管理部は、
ユーザ情報が反映されている許可ビット復号鍵を、前記ユーザ情報と対応付けて保管し、
前記保管要求受信部は、
前記保管対象の暗号化データに対するアクセスが許可されるユーザのユーザ情報が反映されている暗号鍵により暗号化されたビット列が含まれる保管要求を受信することを特徴とする請求項9に記載のデータ保管装置。 - 前記インデックス管理部は、
前記保管要求に含まれる前記暗号化されたビット列に対する復号により得られるビット値を連結してインデックス値を導出し、
前記保管要求に含まれるユーザ情報に、導出したインデックス値と、前記保管要求に含まれる前記タグデータと、前記暗号化されたビット列内の復号されていない暗号化ビットとを対応付けて保管し、
前記許可ビット復号鍵管理部は、
新たな許可ビット位置が指定されると、新たな許可ビット位置の暗号化ビットの復号に用いられる新たな許可ビット復号鍵と、前記新たな許可ビット復号鍵と対応付けられるユーザ情報とを取得し、
前記インデックス管理部は、
前記許可ビット復号鍵管理部により取得された前記ユーザ情報と合致するユーザ情報に対応付けられている暗号化ビットを抽出し、抽出した暗号化ビットのうち前記新たな許可ビット位置に対応する暗号化ビットを前記新たな許可ビット復号鍵を用いて復号し、復号により得られたビット値を、共通のユーザ情報に対応付けられているインデックス値に追加して新たなインデックス値を導出することを特徴とする請求項9又は10に記載のデータ保管装置。 - 前記データ保管装置は、
複数のデータ処理装置に接続され、
前記データ保管装置は、更に、
前記複数のデータ処理装置のうち暗号化データの検索を要求する検索要求データ処理装置から、暗号化された検索キーワードと、暗号化前の検索キーワードを用いて生成された暗号化されたビット列と、前記検索要求データ処理装置のユーザのユーザ情報が含まれる検索要求を受信する検索要求受信部を有し、
前記インデックス管理部は、
前記検索要求に含まれるユーザ情報と合致するユーザ情報と対応付けられている許可ビット復号鍵を用いて、前記検索要求に含まれる前記暗号化されたビット列内の許可ビット位置の暗号化ビットを復号し、復号により得られる前記許可ビット位置のビット値からインデックス値を導出し、導出したインデックス値と同じインデックス値と対応付けられているタグデータを抽出し、
前記データ保管装置は、更に、
前記インデックス管理部により抽出されたタグデータと前記検索要求に含まれる前記暗号化された検索キーワードとを照合し、前記インデックス管理部により抽出されたタグデータの中から、前記検索キーワードと同じキーワードから生成されているタグデータを特定し、特定したタグデータに対応付けられている暗号化データを前記暗号化データ管理部から取得する検索処理部を有することを特徴とする請求項9〜11のいずれかに記載のデータ保管装置。 - 前記許可ビット復号鍵管理部は、
ユーザ情報が反映されている許可ビット復号鍵を、前記ユーザ情報と対応付けて保管し、
前記検索要求受信部は、
前記検索要求データ処理装置のユーザのユーザ情報が反映されている暗号鍵により暗号化されたビット列が含まれる検索要求を受信することを特徴とする請求項12に記載のデータ保管装置。 - 前記インデックス管理部は、
前記保管要求に含まれるユーザ情報に、導出したインデックス値と、前記保管要求に含まれる前記タグデータとを対応付けて保管し、
前記検索要求受信部により前記検索要求が受信された場合に、
前記検索要求に含まれるユーザ情報と合致するユーザ情報と対応付けられている許可ビット復号鍵を用いて、前記検索要求に含まれる前記暗号化されたビット列内の許可ビット位置の暗号化ビットを復号し、復号により得られる前記許可ビット位置のビット値からインデックス値を導出し、前記検索要求に含まれるユーザ情報と合致するユーザ情報と対応付けられているタグデータの中から、導出したインデックス値と同じインデックス値と対応付けられているタグデータを抽出することを特徴とする請求項12又は13に記載のデータ保管装置。
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| PCT/JP2011/050393 WO2012095973A1 (ja) | 2011-01-13 | 2011-01-13 | データ処理装置及びデータ保管装置 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JP5420085B2 true JP5420085B2 (ja) | 2014-02-19 |
| JPWO2012095973A1 JPWO2012095973A1 (ja) | 2014-06-09 |
Family
ID=46506896
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2012552574A Active JP5420085B2 (ja) | 2011-01-13 | 2011-01-13 | データ処理装置及びデータ保管装置 |
Country Status (5)
| Country | Link |
|---|---|
| US (1) | US9111106B2 (ja) |
| EP (1) | EP2665052B1 (ja) |
| JP (1) | JP5420085B2 (ja) |
| CN (1) | CN103329184B (ja) |
| WO (1) | WO2012095973A1 (ja) |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US11170123B2 (en) | 2017-09-12 | 2021-11-09 | Mitsubishi Electric Corporation | Registration terminal, key server, search system, and computer readable medium |
Families Citing this family (68)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2013111284A1 (ja) | 2012-01-25 | 2013-08-01 | 三菱電機株式会社 | データ検索装置、データ検索方法、データ検索プログラム、データ登録装置、データ登録方法、データ登録プログラムおよび情報処理装置 |
| EP2899648A1 (en) | 2012-09-20 | 2015-07-29 | Kabushiki Kaisha Toshiba | Data processing device, data management system, data processing method, and program |
| US20140168264A1 (en) | 2012-12-19 | 2014-06-19 | Lockheed Martin Corporation | System, method and computer program product for real-time alignment of an augmented reality device |
| CN104995621B (zh) | 2013-02-25 | 2018-06-05 | 三菱电机株式会社 | 服务器装置以及隐匿检索系统 |
| JP6054790B2 (ja) * | 2013-03-28 | 2016-12-27 | 三菱スペース・ソフトウエア株式会社 | 遺伝子情報記憶装置、遺伝子情報検索装置、遺伝子情報記憶プログラム、遺伝子情報検索プログラム、遺伝子情報記憶方法、遺伝子情報検索方法及び遺伝子情報検索システム |
| KR102131306B1 (ko) * | 2013-05-09 | 2020-07-07 | 삼성전자주식회사 | 데이터관리장치, 데이터관리방법 및 데이터관리시스템 |
| WO2014203339A1 (ja) * | 2013-06-18 | 2014-12-24 | 株式会社日立製作所 | 保持数検証システム |
| US10122714B2 (en) | 2013-08-01 | 2018-11-06 | Bitglass, Inc. | Secure user credential access system |
| US9552492B2 (en) * | 2013-08-01 | 2017-01-24 | Bitglass, Inc. | Secure application access system |
| US9553867B2 (en) | 2013-08-01 | 2017-01-24 | Bitglass, Inc. | Secure application access system |
| JP6144992B2 (ja) * | 2013-08-08 | 2017-06-07 | 株式会社日立製作所 | 検索可能暗号処理システム及び方法 |
| DE102013108714B3 (de) * | 2013-08-12 | 2014-08-21 | Deutsche Post Ag | Unterstützung einer Entschlüsselung von verschlüsselten Daten |
| US9178855B1 (en) * | 2013-08-25 | 2015-11-03 | Google Inc. | Systems and methods for multi-function and multi-purpose cryptography |
| US9825920B1 (en) | 2013-08-25 | 2017-11-21 | Google Llc | Systems and methods for multi-function and multi-purpose cryptography |
| US20160203142A1 (en) * | 2013-08-29 | 2016-07-14 | Cognitee Inc. | Information processing apparatus, information processing method and non-transitory computer readable information recording medium |
| US9792315B2 (en) | 2014-08-21 | 2017-10-17 | Dropbox, Inc. | Multi-user search system with methodology for bypassing instant indexing |
| DE102014221893A1 (de) * | 2014-10-28 | 2016-04-28 | Robert Bosch Gmbh | Verfahren und Vorrichtung zum Erzeugen eines geheimen Schlüssels |
| US10599677B2 (en) * | 2015-01-22 | 2020-03-24 | Brian J. Bulkowski | Methods and systems of splitting database indexes and digests |
| US9384226B1 (en) | 2015-01-30 | 2016-07-05 | Dropbox, Inc. | Personal content item searching system and method |
| US9183303B1 (en) | 2015-01-30 | 2015-11-10 | Dropbox, Inc. | Personal content item searching system and method |
| JP6348072B2 (ja) * | 2015-02-09 | 2018-06-27 | 日本電信電話株式会社 | 暗号システム、属性管理装置、および鍵生成方法 |
| US10592682B2 (en) * | 2015-02-20 | 2020-03-17 | Mitsubishi Electric Corporation | Data storage apparatus, data processing method, and computer readable medium adding a user attribute of a revoked user to an embedded decryption condition while encrypted data remains in an encrypted state |
| WO2016135943A1 (ja) * | 2015-02-27 | 2016-09-01 | 三菱電機株式会社 | データ編集装置、データ編集方法及びデータ編集プログラム |
| US9992175B2 (en) * | 2016-01-08 | 2018-06-05 | Moneygram International, Inc. | Systems and method for providing a data security service |
| WO2017122326A1 (ja) | 2016-01-14 | 2017-07-20 | 三菱電機株式会社 | 秘匿検索システム、秘匿検索方法及び秘匿検索プログラム |
| WO2017122352A1 (ja) * | 2016-01-15 | 2017-07-20 | 三菱電機株式会社 | 暗号化装置、暗号化方法及び暗号化プログラム |
| US9922199B2 (en) * | 2016-02-18 | 2018-03-20 | Bank Of America Corporation | Document security tool |
| BR112018016815A2 (pt) | 2016-02-23 | 2018-12-26 | Nchain Holdings Ltd | método para gestão e registro automático para contratos inteligentes aplicados através de blockchain |
| GB2558484A (en) | 2016-02-23 | 2018-07-11 | Nchain Holdings Ltd | A method and system for the secure transfer of entities on a blockchain |
| JP6995762B2 (ja) | 2016-02-23 | 2022-01-17 | エヌチェーン ホールディングス リミテッド | ブロックチェーンからのデータのセキュアな抽出のための暗号方法及びシステム |
| JP6515246B2 (ja) * | 2016-02-23 | 2019-05-15 | エヌチェーン ホールディングス リミテッドNchain Holdings Limited | 情報及び階層的で決定性の暗号化鍵のセキュアな交換のための共通秘密の決定 |
| JP6799061B2 (ja) | 2016-02-23 | 2020-12-09 | エヌチェーン ホールディングス リミテッドNchain Holdings Limited | ウォレット管理システムと併せたブロックチェーンベースのシステムのための暗号鍵のセキュアなマルチパーティ損失耐性のある記憶及び転送 |
| JP6528008B2 (ja) | 2016-02-23 | 2019-06-12 | エヌチェーン ホールディングス リミテッドNchain Holdings Limited | 秘密共有のための楕円曲線暗号化を利用したパーソナルデバイスセキュリティ |
| GB2562656A (en) | 2016-02-23 | 2018-11-21 | Nchain Holdings Ltd | Agent-based turing complete transactions integrating feedback within a blockchain system |
| SG10202011641RA (en) | 2016-02-23 | 2021-01-28 | Nchain Holdings Ltd | Tokenisation method and system for implementing exchanges on a blockchain |
| MX2018010056A (es) | 2016-02-23 | 2019-01-21 | Nchain Holdings Ltd | Un metodo y sistema para asegurar software de computadora usando un cuadro hash distribuido y una cadena de bloques. |
| CN116934328A (zh) | 2016-02-23 | 2023-10-24 | 区块链控股有限公司 | 用于经由区块链控制资产有关的动作的系统及方法 |
| CN109155035B (zh) | 2016-02-23 | 2023-07-04 | 区块链控股有限公司 | 用于使用区块链在点对点分布式账簿上有效转移实体的方法及系统 |
| WO2017145021A1 (en) | 2016-02-23 | 2017-08-31 | nChain Holdings Limited | Method and system for efficient transfer of cryptocurrency associated with a payroll on a blockchain that leads to An Automated payroll method and system based on smart contracts |
| JP6942136B2 (ja) | 2016-02-23 | 2021-09-29 | エヌチェーン ホールディングス リミテッドNchain Holdings Limited | デジタルコンテンツの制御及び配信のためのブロックチェーンにより実施される方法 |
| JP6925346B2 (ja) | 2016-02-23 | 2021-08-25 | エヌチェーン ホールディングス リミテッドNchain Holdings Limited | ブロックチェーンベースのトークナイゼーションを用いた交換 |
| EP3748903A1 (en) | 2016-02-23 | 2020-12-09 | Nchain Holdings Limited | Universal tokenisation system for blockchain-based cryptocurrencies |
| NZ746878A (en) * | 2016-04-01 | 2022-11-25 | Jpmorgan Chase Bank Na | Systems and methods for providing data privacy in a private distributed ledger |
| JP6381861B2 (ja) * | 2016-05-27 | 2018-08-29 | 三菱電機株式会社 | 登録先決定装置、登録装置、秘匿検索システム、登録先決定方法及び登録先決定プログラム |
| JP6721832B2 (ja) * | 2016-08-24 | 2020-07-15 | 富士通株式会社 | データ変換プログラム、データ変換装置及びデータ変換方法 |
| JP6781373B2 (ja) * | 2016-10-05 | 2020-11-04 | 富士通株式会社 | 検索プログラム、検索方法、および検索装置 |
| JP6737117B2 (ja) * | 2016-10-07 | 2020-08-05 | 富士通株式会社 | 符号化データ検索プログラム、符号化データ検索方法および符号化データ検索装置 |
| EP3528498A1 (en) * | 2016-11-21 | 2019-08-21 | Panasonic Intellectual Property Corporation of America | Coding device, decoding device, coding method, and decoding method |
| CN109997359B (zh) | 2016-11-21 | 2023-05-09 | 松下电器(美国)知识产权公司 | 编码装置、解码装置、编码方法及解码方法 |
| CN110226190A (zh) * | 2017-01-27 | 2019-09-10 | 三菱电机株式会社 | 检索装置、监视装置、监视方法和检索程序 |
| EP3605360A4 (en) | 2017-04-25 | 2020-02-12 | Mitsubishi Electric Corporation | SEARCH DEVICE, SEARCH SYSTEM, SEARCH PROCEDURE AND SEARCH PROGRAM |
| JP6351890B1 (ja) | 2017-05-18 | 2018-07-04 | 三菱電機株式会社 | 検索装置、秘匿検索システム及び検索プログラム |
| US10891366B1 (en) * | 2017-08-18 | 2021-01-12 | Jonetix Corporation | Secure hardware signature and related methods and applications |
| JP6940812B2 (ja) * | 2017-09-11 | 2021-09-29 | ブラザー工業株式会社 | 情報処理装置、および、コンピュータプログラム |
| JP6632780B2 (ja) * | 2017-09-12 | 2020-01-22 | 三菱電機株式会社 | データ処理装置、データ処理方法及びデータ処理プログラム |
| EP3509247A1 (de) * | 2018-01-03 | 2019-07-10 | Siemens Aktiengesellschaft | Verfahren und schlüsselgenerator zum rechnergestützten erzeugen eines gesamtschlüssels |
| JP6462968B1 (ja) * | 2018-01-17 | 2019-01-30 | 三菱電機株式会社 | データ管理装置、データ管理方法及びデータ管理プログラム |
| WO2019142268A1 (ja) * | 2018-01-17 | 2019-07-25 | 三菱電機株式会社 | 登録装置、検索操作装置、データ管理装置、登録プログラム、検索操作プログラムおよびデータ管理プログラム |
| CN108471417B (zh) * | 2018-03-28 | 2021-05-04 | 湖南大学 | 一种云环境下基于层次属性的关键字查询方法 |
| US11611539B2 (en) * | 2018-12-16 | 2023-03-21 | Auth9, Inc. | Method, computer program product and apparatus for encrypting and decrypting data using multiple authority keys |
| CN110266490B (zh) * | 2019-07-25 | 2023-04-21 | 西南石油大学 | 云存储数据的关键词密文生成方法及装置 |
| US11216433B2 (en) * | 2019-12-12 | 2022-01-04 | Google Llc | Encrypted search with no zero-day leakage |
| US11250151B2 (en) * | 2020-05-05 | 2022-02-15 | Google Llc | Encrypted search over encrypted data with reduced volume leakage |
| US11539676B2 (en) * | 2020-11-12 | 2022-12-27 | Bank Of America Corporation | Encrypted tagging system for protection of network-based resource transfers |
| CN117651983A (zh) * | 2021-07-27 | 2024-03-05 | 三菱电机株式会社 | 检索执行装置、检索执行方法、检索执行程序和隐匿检索系统 |
| CN113641769B (zh) * | 2021-08-20 | 2024-02-20 | 湖南快乐阳光互动娱乐传媒有限公司 | 一种数据处理方法及装置 |
| CN114884660B (zh) * | 2022-07-12 | 2022-09-20 | 西南石油大学 | 一种基于通配符身份的可搜索加密方法 |
| US12197615B2 (en) | 2022-07-19 | 2025-01-14 | IronCore Labs, Inc. | Secured search for ready-made search software |
Citations (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2006520493A (ja) * | 2002-09-06 | 2006-09-07 | ユナイテッド ステイツ ポスタル サービス | 安全な事前処理が施されたアクセス情報により、保護されているデータを効率的に検索する方法及びシステム |
| JP2007052698A (ja) * | 2005-08-19 | 2007-03-01 | Kddi Corp | 暗号化された文書のためのインデックス生成および検索方法ならびに暗号化文書検索システム |
| JP2010164835A (ja) * | 2009-01-16 | 2010-07-29 | Mitsubishi Electric Corp | 検索システム及び索引暗号化装置及び検索暗号化装置及び検索装置及びコンピュータプログラム及び検索方法 |
| JP2010205258A (ja) * | 2008-11-11 | 2010-09-16 | Nec (China) Co Ltd | 検索方法、検索装置、索引生成方法、索引生成装置 |
| JP2010267227A (ja) * | 2009-05-18 | 2010-11-25 | Nec Corp | 情報検索システム、情報検索装置、情報検索端末、情報検索方法、及びプログラム |
Family Cites Families (16)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US6094649A (en) * | 1997-12-22 | 2000-07-25 | Partnet, Inc. | Keyword searches of structured databases |
| JP2002108910A (ja) * | 2000-09-27 | 2002-04-12 | Nec Soft Ltd | 暗号化ファイルシステム及び暗号化ファイル検索方法並びにコンピュータ可読記録媒体 |
| US7484092B2 (en) * | 2001-03-12 | 2009-01-27 | Arcot Systems, Inc. | Techniques for searching encrypted files |
| JP2002278970A (ja) | 2001-03-16 | 2002-09-27 | Ricoh Co Ltd | 文書管理システム |
| US7461251B2 (en) * | 2002-05-09 | 2008-12-02 | Canon Kabushiki Kaisha | Public key certification issuing apparatus |
| US7159119B2 (en) | 2002-09-06 | 2007-01-02 | United States Postal Service | Method and system for efficiently retrieving secured data by securely pre-processing provided access information |
| JP4395611B2 (ja) | 2003-10-28 | 2010-01-13 | 独立行政法人情報通信研究機構 | 暗号化データベース検索装置および方法ならびに暗号化データベース検索プログラム |
| WO2005119960A2 (en) * | 2004-06-01 | 2005-12-15 | Ben-Gurion University Of The Negev Research And Development Authority | Structure preserving database encryption method and system |
| FR2898747A1 (fr) | 2006-03-15 | 2007-09-21 | Gemplus Sa | Procede de chiffrement cherchable dechiffrable, systeme pour un tel chiffrement |
| WO2007120625A2 (en) * | 2006-04-10 | 2007-10-25 | Sawteeth, Inc | Secure and granular index for information retrieval |
| KR20080067075A (ko) * | 2007-01-15 | 2008-07-18 | 주식회사 히타치엘지 데이터 스토리지 코리아 | 광디스크의 암호화 데이터 기록 및 재생방법 |
| JP5245835B2 (ja) * | 2007-02-13 | 2013-07-24 | 日本電気株式会社 | 鍵生成装置、鍵導出装置、暗号化装置、復号化装置、方法、及び、プログラム |
| CN101593196B (zh) * | 2008-05-30 | 2013-09-25 | 日电(中国)有限公司 | 用于快速密文检索的方法、装置和系统 |
| EP2525339A4 (en) | 2010-01-13 | 2013-09-11 | Mitsubishi Electric Corp | SECRET RECOVERY SYSTEM, PUBLIC PARAMETER GENERATION DEVICE, ENCRYPTION DEVICE, SECRET USER KEY GENERATION DEVICE, REQUEST TRANSMITTING DEVICE, RECOVERY DEVICE, COMPUTER PROGRAM, SECRET RECOVERY METHOD, GENERATION METHOD PUBLIC PARAMETER METHOD, ENCRYPTION METHOD, SECRET USER KEY GENERATION METHOD, REQUESTING METHOD FOR REQUESTING, AND RECOVERY METHOD |
| WO2011086687A1 (ja) | 2010-01-15 | 2011-07-21 | 三菱電機株式会社 | 秘匿検索システム及び暗号処理システム |
| US8429421B2 (en) * | 2010-12-17 | 2013-04-23 | Microsoft Corporation | Server-side encrypted pattern matching |
-
2011
- 2011-01-13 WO PCT/JP2011/050393 patent/WO2012095973A1/ja not_active Ceased
- 2011-01-13 US US13/979,508 patent/US9111106B2/en active Active
- 2011-01-13 EP EP11855270.2A patent/EP2665052B1/en active Active
- 2011-01-13 CN CN201180064828.8A patent/CN103329184B/zh active Active
- 2011-01-13 JP JP2012552574A patent/JP5420085B2/ja active Active
Patent Citations (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2006520493A (ja) * | 2002-09-06 | 2006-09-07 | ユナイテッド ステイツ ポスタル サービス | 安全な事前処理が施されたアクセス情報により、保護されているデータを効率的に検索する方法及びシステム |
| JP2007052698A (ja) * | 2005-08-19 | 2007-03-01 | Kddi Corp | 暗号化された文書のためのインデックス生成および検索方法ならびに暗号化文書検索システム |
| JP2010205258A (ja) * | 2008-11-11 | 2010-09-16 | Nec (China) Co Ltd | 検索方法、検索装置、索引生成方法、索引生成装置 |
| JP2010164835A (ja) * | 2009-01-16 | 2010-07-29 | Mitsubishi Electric Corp | 検索システム及び索引暗号化装置及び検索暗号化装置及び検索装置及びコンピュータプログラム及び検索方法 |
| JP2010267227A (ja) * | 2009-05-18 | 2010-11-25 | Nec Corp | 情報検索システム、情報検索装置、情報検索端末、情報検索方法、及びプログラム |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US11170123B2 (en) | 2017-09-12 | 2021-11-09 | Mitsubishi Electric Corporation | Registration terminal, key server, search system, and computer readable medium |
Also Published As
| Publication number | Publication date |
|---|---|
| EP2665052A1 (en) | 2013-11-20 |
| EP2665052A4 (en) | 2017-08-09 |
| US20130287210A1 (en) | 2013-10-31 |
| JPWO2012095973A1 (ja) | 2014-06-09 |
| CN103329184B (zh) | 2016-02-03 |
| US9111106B2 (en) | 2015-08-18 |
| WO2012095973A1 (ja) | 2012-07-19 |
| CN103329184A (zh) | 2013-09-25 |
| EP2665052B1 (en) | 2018-08-15 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP5420085B2 (ja) | データ処理装置及びデータ保管装置 | |
| Huang et al. | Survey on securing data storage in the cloud | |
| JP5606642B2 (ja) | データ検索装置、データ検索方法、データ検索プログラム、データ登録装置、データ登録方法、データ登録プログラムおよび情報処理装置 | |
| Salam et al. | Implementation of searchable symmetric encryption for privacy-preserving keyword search on cloud storage | |
| CN108140334B (zh) | 隐匿检索系统、管理装置、隐匿检索方法和记录介质 | |
| CN107077469B (zh) | 服务器装置、检索系统、终端装置以及检索方法 | |
| JP2012164031A (ja) | データ処理装置及びデータ保管装置及びデータ処理方法及びデータ保管方法及びプログラム | |
| JP5670365B2 (ja) | 暗号文検索システム、検索情報生成装置、検索実行装置、検索要求装置、暗号文検索方法、検索情報生成方法、検索実行方法、検索要求方法、およびプログラム | |
| JP6632780B2 (ja) | データ処理装置、データ処理方法及びデータ処理プログラム | |
| WO2017122326A1 (ja) | 秘匿検索システム、秘匿検索方法及び秘匿検索プログラム | |
| Deng et al. | Achieving fine-grained data sharing for hierarchical organizations in clouds | |
| JPWO2018047698A1 (ja) | 暗号化メッセージ検索方法、メッセージ送受信システム、サーバ、端末、プログラム | |
| Ha et al. | Scalable and popularity-based secure deduplication schemes with fully random tags | |
| Chamili et al. | Searchable encryption: a review | |
| JPWO2017126000A1 (ja) | 暗号化装置、暗号化プログラム及び暗号化方法 | |
| KR20100003093A (ko) | 암호문 크기를 줄이기 위한 공개키 기반의 검색가능암호문생성 방법과, 그에 따른 공개키 기반의 데이터 검색 방법 | |
| Huang et al. | Achieving data privacy on hybrid cloud | |
| JP6381861B2 (ja) | 登録先決定装置、登録装置、秘匿検索システム、登録先決定方法及び登録先決定プログラム | |
| WO2015107561A1 (ja) | 検索システム、検索方法および検索プログラム | |
| JP7378675B2 (ja) | 暗号化タグ生成装置、秘匿検索システム、暗号化タグ生成方法及び暗号化タグ生成プログラム | |
| Lee et al. | A study of practical proxy reencryption with a keyword search scheme considering cloud storage structure | |
| Jospin Jeya et al. | Efficient Ranked and Secure File Retrieval in Cloud Computing | |
| Chebrolu et al. | An efficiency and privacy-preserving biometric identification scheme in cloud computing | |
| CN120811599A (zh) | 一种支持模式泄漏调控与动态权限管理的多用户密态检索方法 | |
| Kate | An encrypted and searchable audit log |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| 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: 20131022 |
|
| A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20131119 |
|
| R150 | Certificate of patent or registration of utility model |
Ref document number: 5420085 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 |
|
| R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
| R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
| R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
| R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
| R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
| R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
| R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
| R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |