JP2020004199A - 情報処理装置および情報処理方法 - Google Patents

情報処理装置および情報処理方法 Download PDF

Info

Publication number
JP2020004199A
JP2020004199A JP2018124466A JP2018124466A JP2020004199A JP 2020004199 A JP2020004199 A JP 2020004199A JP 2018124466 A JP2018124466 A JP 2018124466A JP 2018124466 A JP2018124466 A JP 2018124466A JP 2020004199 A JP2020004199 A JP 2020004199A
Authority
JP
Japan
Prior art keywords
encryption
bit
keyword
encrypted
information processing
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.)
Pending
Application number
JP2018124466A
Other languages
English (en)
Inventor
篤史 内田
Atsushi Uchida
篤史 内田
信也 丸山
Shinya Maruyama
信也 丸山
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sony Corp
Original Assignee
Sony Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sony Corp filed Critical Sony Corp
Priority to JP2018124466A priority Critical patent/JP2020004199A/ja
Priority to PCT/JP2019/021072 priority patent/WO2020003859A1/ja
Priority to US17/253,032 priority patent/US11887508B2/en
Publication of JP2020004199A publication Critical patent/JP2020004199A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09CCIPHERING OR DECIPHERING APPARATUS FOR CRYPTOGRAPHIC OR OTHER PURPOSES INVOLVING THE NEED FOR SECRECY
    • G09C1/00Apparatus or methods whereby a given sequence of signs, e.g. an intelligible text, is transformed into an unintelligible sequence of signs by transposing the signs or groups of signs or by replacing them by others according to a predetermined system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/903Querying
    • G06F16/90335Query processing
    • G06F16/90344Query processing by using string matching techniques
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0643Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/065Encryption by serially and continuously modifying data stream elements, e.g. stream cipher systems, RC4, SEAL or A5/3
    • H04L9/0656Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher
    • H04L9/0662Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher with particular pseudorandom sequence generator
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0869Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • H04L9/3242Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving keyed hash functions, e.g. message authentication codes [MACs], CBC-MAC or HMAC
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/58Random or pseudo-random number generators
    • G06F7/588Random number generators, i.e. based on natural stochastic processes

Abstract

【課題】検索性能とセキュリティ性を両立する情報検索が可能となる。【解決手段】情報検索に係るキーワードから鍵付ハッシングを用いて算出したハッシュ値を所定長のビット列にマッピングした暗号化ビット列を生成し、動的に生成された乱数に基づいて、前記暗号化ビット列から所定の数のビットを選択し、選択した前記所定の数のビットを反転し、前記暗号化ビット列、および前記ビット反転部が反転したビットの数を示す反転ビット数情報を外部装置に送信する情報処理装置が提供される。【選択図】図5

Description

本開示は、情報処理装置および情報処理方法に関する。
近年、クラウドサービスの普及に伴って、データを外部の情報処理サーバに預ける機会が増えている。上記のような情報処理サーバでは、セキュリティ性確保のためにデータの暗号化などを行うのが一般的である。また、近年では、セキュリティ性をより向上させる方策の一つとして、データを暗号化したまま外部サーバに送信し、情報検索を実行することが可能な検索可能暗号技術が開発されている。例えば、特許文献1では、ノイズを加えた測定値と検索対象データとの差分を計算することで、データを暗号化したまま検索の実行を可能にする技術が開示されている。
特表2015−510343号公報
しかし、特許文献1に開示される装置では、同一内容のデータを暗号化する場合、同一のノイズが加えられてしまうため、暗号化データの出現頻度などから、暗号化前のデータが推測される可能性がある。
そこで、本開示では、検索性能とセキュリティ性を両立する情報検索が可能な情報処理装置、方法を提案する。
本開示によれば、情報検索に係るキーワードから鍵付ハッシングを用いて算出したハッシュ値を所定長のビット列にマッピングした暗号化ビット列を生成する暗号化部と、動的に生成された乱数に基づいて、前記暗号化ビット列から所定の数のビットを選択し、選択した前記所定の数のビットを反転するビット反転部と、前記暗号化ビット列、および前記ビット反転部が反転したビットの数を示す反転ビット数情報を外部装置に送信する通信部と、を備える情報処理装置が提供される。
本開示によれば、クライアント端末から、暗号化キーワード、および前記暗号化キーワードの反転ビット数を示す反転ビット数情報を受信する通信制御部と、前記暗号化キーワードと保存する暗号化インデックスの排他的論理和を計算したビット計算結果と、前記ビット計算結果に対するビットカウント結果とを取得するビット計算部と、前記暗号化キーワードの反転ビット数および前記暗号化インデックスの反転ビット数の合計と、前記ビットカウント結果との大小関係の比較に基づいて、前記暗号化キーワードが前記暗号化インデックスに含まれているか否かを判定するビット一致判定部と、を備え、前記暗号化キーワードおよび前記暗号化インデックスは、鍵付ハッシングを用いて算出されたハッシュ値を所定長のビット列にマッピングした後、動的に生成された乱数に基づいて所定の数のビットが反転された暗号化ビット列であり、前記通信制御部は、前記暗号化キーワードが前記暗号化インデックスに含まれていると前記ビット一致判定部が判定した場合、前記暗号化キーワードに対応する検索結果を前記クライアント端末に送信する情報処理装置が提供される。
本開示によれば、プロセッサが、情報検索に係るキーワードから、鍵付ハッシングを用いて算出したハッシュ値を所定長のビット列にマッピングした暗号化ビット列を生成することと、動的に生成された乱数に基づいて、前記暗号化ビット列から所定の数のビットを選択し、選択した前記所定の数のビットを反転することと、反転したビットの数に係る反転ビット数情報および前記暗号化ビット列を外部装置に送信することと、を含む情報処理方法が提供される。
本開示によれば、プロセッサが、クライアント端末から、暗号化キーワード、および前記暗号化キーワードの反転ビット数を示す反転ビット数情報を受信することと、前記暗号化キーワードと保存する暗号化インデックスの排他的論理和を計算したビット計算結果と、前記ビット計算結果に対するビットカウント結果とを取得することと、前記暗号化キーワードの反転ビット数および前記暗号化インデックスの反転ビット数の合計と、前記ビットカウント結果との大小関係の比較に基づいて、前記暗号化キーワードが前記暗号化インデックスに含まれているか否かを判定することと、を含み、前記暗号化キーワードおよび前記暗号化インデックスは、鍵付ハッシングを用いて算出されたハッシュ値を所定長のビット列にマッピングした後、動的に生成された乱数に基づいて所定の数のビットが反転された暗号化ビット列であり、前記暗号化キーワードが前記暗号化インデックスに含まれていると前記ビット一致判定部が判定した場合、前記暗号化キーワードに対応する検索結果を前記クライアント端末に送信する情報処理方法が提供される。
以上説明したように本開示によれば、検索性能とセキュリティ性を両立する情報検索が可能である。
なお、上記の効果は必ずしも限定的なものではなく、上記の効果とともに、または上記の効果に代えて、本明細書に示されたいずれかの効果、または本明細書から把握され得る他の効果が奏されてもよい。
検索可能暗号技術の概要を説明するための図である。 本実施形態に係る情報処理システムの構成例を示すブロック図である。 同実施形態に係る情報処理端末10の機能構成例を示すブロック図である。 同実施形態に係る情報処理サーバ20の機能構成例を示すブロック図である。 同実施形態に係る情報処理端末10による暗号化ビット列の生成について説明するための図である。 同実施形態に係る情報処理サーバ20による検索処理について説明するための図である。 同実施形態に係る情報処理サーバ20による検索処理について説明するための図である。 同実施形態に係る検索処理の誤判定の検出動作を説明するための図である。 同実施形態に係る複数の暗号化ビット列、反転したビットの数に係る複数の反転ビット数情報、および論理条件を含む情報検索に係る動作を説明するための図である。 同実施形態に係る暗号化インデックスを情報処理サーバ20に登録する動作の流れの一例を示す図である。 同実施形態に係る暗号化キーワードを含む暗号化インデックスを検索する動作の流れの一例を示す図である。 本開示の一実施形態に係る情報処理端末10および情報処理サーバ20のハードウェア構成例を示すブロック図である。
以下に添付図面を参照しながら、本開示の好適な実施の形態について詳細に説明する。なお、本明細書及び図面において、実質的に同一の機能構成を有する構成要素については、同一の符号を付することにより重複説明を省略する。
なお、説明は以下の順序で行うものとする。
1.概要
2.システム構成例
3.情報処理端末10の機能構成例
4.情報処理サーバ20の機能構成例
5.動作例
6.動作の流れ
7.ハードウェア構成例
8.まとめ
<1.概要>
まず、本開示の一実施形態の概要について説明する。近年、クラウドサービスの普及に伴って、データを外部の情報処理サーバに預ける機会が増えている。それに伴い重要なデータがインターネットを通じて利用されることになるため、クラウドサービスの利用に関して、データ漏洩などに関する不安の声が挙がっている。対策として、暗号化通信を利用することで、一定のセキュリティ性を確保することは可能である。しかしながら、ローカルに設置されるクライアント端末から、クラウドに設置されるサーバへ情報検索を行う場合は、少なくとも1回は復号処理を実行する必要がある。だが近年、検索データおよび検索キーワードを暗号化したまま検索を実行することが可能な検索可能暗号技術が開発されている。
ここで、検索可能暗号技術について説明する。図1は、検索可能暗号技術の概要を説明するための図である。図1の左側には、検索対象データの登録処理の様子が示されている。図1左側において、ユーザUは、まず、ローカルに設置されたクライアント端末を用いて、平文データDと平文データから抽出されたキーワードリストを、ユーザ鍵UKを用いて暗号化している。次に、ユーザUは、クラウド側に設置されるサーバに、平文データDが暗号化された暗号化データED、およびキーワードリストが暗号化された暗号化インデックスEIを送信している。
また、図1右側には、検索処理の様子が示されている。ユーザUは、ローカル側で検索キーワードを、ユーザ鍵UKを用いて暗号化し、暗号化キーワードEKWをクラウド側に送信している。クラウド側では、受信した暗号化キーワードEKWと、保管する暗号化インデックスEIの比較を行い、暗号化キーワードEKWが、保管する暗号化インデックスEIに含まれるか否かの判定を行っている。暗号化キーワードEKWを含む暗号化インデックスEIが存在する場合、当該暗号化インデックスEIに対応する暗号化データEDが、ローカル側へと送信される。最終的に、ユーザUは、暗号化データEDがローカル側で復号されることで、検索対象である平文データDを入手する。
このように、上述の検索可能暗号技術によれば、ユーザUは、クラウド側に保存されている暗号化データEDを復号することなく、暗号化キーワードEKWおよびを用いて暗号化データEDを取得することが可能となる。しかしながら、上述の検索可能暗号技術の場合、同じキーワードの検索インデックスから、常に同じ暗号化インデックスが生成されるため、暗号化インデックスの頻出具合に基づいて、暗号化前の検索インデックスが推定される可能性がある。それに対して、確率暗号を用いて暗号化を実行することで、毎回異なる暗号文を生成することが可能となる。しかし一方で、検索性能は低くなってしまう。
本開示の一実施形態に係る技術思想は、上記の点に着目して発想されたものであり、検索性能とセキュリティ性を両立した情報検索が可能である。このために、本開示の一実施形態に係る情報処理装置は、情報検索に係るキーワードから、鍵付ハッシングを用いて算出したハッシュ値を所定のビット列にマッピングした暗号化ビット列を生成することを特徴の一つとする。また、本実施形態に係る情報処理装置は、動的に生成された乱数に基づいて、暗号化ビット列から所定の数のビットを選択し、選択した所定の数のビットを反転することを特徴の一つとする。また、本実施形態に係る情報処理装置は、ビット反転部が反転したビットの数に係る反転ビット数情報および暗号化ビット列を外部装置に送信することを特徴の一つとする。
ここで、情報検索に係るキーワードとは、例えば検索キーワードや検索インデックスをいう。またここで、検索インデックスとは、平文データの内容を検索するための索引をいう。また、反転ビット数情報とは、暗号化ビット列のビットを構成するビットのうち、暗号化後に値が反転したビットの数である反転ビット数に関する情報、をいう。
また、本開示の一実施形態に係る情報処理装置は、クライアント端末から、暗号化キーワード、および暗号化キーワードの反転ビット数を示す反転ビット数情報を受信することを特徴の一つとする。また、本開示の一実施形態に係る情報処理装置は、暗号化キーワードと保存する暗号化インデックスの排他的論理和を計算したビット計算結果と、ビット計算結果に対するビットカウント結果とを取得することを特徴の一つとする。暗号化キーワードの反転ビット数および暗号化インデックスの反転ビット数の合計と、ビットカウント結果との大小関係の比較に基づいて、暗号化キーワードが暗号化インデックスに含まれているか否かを判定することを特徴の一つとする。ここで、ビットカウントとは、ビット列に含まれる1値ビットの数を数えることである。
係る情報処理端末10および情報処理サーバ20の特徴によれば、例えば十分な検索スピードを保ったまま、情報漏えいの可能性がより少ない情報検索が可能となる。
<2.システム構成例>
次に、本開示の一実施形態に係る情報処理システムの構成例について説明する。図2は、本実施形態に係る情報処理システムの構成例を示すブロック図である。当該情報処理システムは、情報処理端末10、情報処理サーバ20を備える。また、上記の各構成は、互いに情報通信が行えるように、ネットワーク30を介して接続される。
なお、本開示では、情報処理端末10を、クライアントと称する場合がある。また、本開示では、情報処理端末10による処理を、ローカル側の処理、と称する場合がある。また、本開示では、情報処理サーバ20を、単に、サーバと称する場合がある。また、本開示では、情報処理サーバ20による処理を、クラウド側の処理、と称する場合がある。
(情報処理端末10)
本実施形態に係る情報処理端末10は、ユーザの入力操作に基づいて、データを暗号化データの登録や検索可能暗号を用いた情報検索するための情報処理装置である。また、本実施形態に係る情報処理端末10は、情報検索に係るキーワードから、鍵付ハッシングを用いて算出したハッシュ値を所定のビット列にマッピングした暗号化ビット列を生成する情報処理装置である。
ユーザは、情報処理端末10により検索性能とセキュリティ性を両立する情報検索を行うことが可能である。本実施形態に係る情報処理端末10は、例えば、携帯電話、スマートフォン、タブレット端末、ウェアラブル装置、PC(Personal Computer)などであり得る。しかし、本実施形態に係る情報処理端末10は係る例に限定されず、上記の処理の実行が可能な種々の装置であり得る。
(情報処理サーバ20)
本実施形態に係る情報処理サーバ20は、情報処理端末10から送信された暗号化データを保存する情報処理装置である。
また、本実施形態に係る情報処理サーバ20は、情報処理端末10から送信された暗号化キーワードに対応する検索結果を情報処理端末10へ送信する情報処理装置である。またここで、検索結果とは、例えば暗号化データや、暗号化データに係るリストを含む。
(ネットワーク30)
ネットワーク30は、情報処理端末10と情報処理サーバ20とを接続する機能を有する。ネットワーク30は、インターネット、電話回線網、衛星通信網などの公衆回線網や、Ethernet(登録商標)を含む各種のLAN(Local Area Network)、WAN(Wide Area Network)などを含んでもよい。また、ネットワーク30は、IP−VPN(Internet Protocol−Virtual Private Network)などの専用回線網を含んでもよい。また、ネットワーク30は、Wi−Fi(登録商標)、Bluetooth(登録商標)など無線通信網を含んでもよい。
以上、本実施形態に係る情報処理システムの構成例について説明した。なお、図2を用いて説明したシステム構成はあくまで一例であり、本実施形態に係る情報処理システムの構成は、仕様や運用に応じて柔軟に変形可能である。
<3.情報処理端末10の機能構成例>
次に、本実施形態に係る情報処理端末10の機能構成例について説明する。図3は、本実施形態に係る情報処理端末10の機能構成例を示すブロック図である。図3を参照すると、本実施形態に係る情報処理端末10は、入力部11、抽出部12、暗号化部13、鍵管理部14、ビット反転部15、乱数生成部16、通信部17、出力部18および復号部19を備える。
(入力部11)
本実施形態に係る入力部11は、ユーザによる入力操作を受け付け、平文データや検索キーワードを、後述する抽出部12または暗号化部13に出力する機能を有する。
(抽出部12)
本実施形態に係る抽出部12は、入力部11がユーザから受け付けた平文データから、単語もしく単語の組み合わせを抽出することで、検索インデックスを生成する機能を有する。抽出部12は、形態素解析やn−gramを用いて当該データから所定のキーワードを抽出することで、検索インデックスを生成してもよい。
(暗号化部13)
本実施形態に係る暗号化部13は、入力部11により入力された平文データまたは検索キーワード、並びに抽出部12に抽出されたキーワードリストを、鍵付ハッシングを用いて算出したハッシュ値を所定長のビット列にマッピングする、ハッシュ方式を用いることで暗号化ビット列を生成する機能を有する。なお、ハッシュ方式は、検索キーワード数に依存しない固定長ビット列を用いるため、公開鍵暗号方式や共通鍵方式と比べて、種々の処理が高速である点が長所である。またここで、本実施形態に係る暗号化部13は,当該暗号化ビット列として、ブルームフィルタ、カウンティングフィルタのようなAMQ(Appriximate Membership Query)形式にエンコードしたものなどを利用してよい。
また、平文データを暗号化し、暗号化データを生成してよい。また、暗号化部13は、HMACアルゴリズムを用いて、暗号化ビット列を生成してよい。また、複数の暗号化ビット列の論理和を計算することで集合暗号化ビット列を生成し、当該集合暗号化ビット列を暗号化インデックスまたは暗号化キーワードとみなしてもよい。
(鍵管理部14)
本実施形態に係る鍵管理部14は、平文データ、検索インデックスおよび検索キーワードを暗号化するために用いられる鍵を管理する機能を有する。鍵管理部14は、暗号化部13の要求に基づいて、鍵を暗号化部13に送信する。なお、暗号化部13へ送信された鍵は、暗号化部13によりハッシュ関数に代入される。また、本実施形態に係る鍵管理部14は、復号部19が暗号化データ、暗号化インデックスおよび暗号化キーワードを復号するために用いられる鍵を管理する機能を有する。
(ビット反転部15)
本実施形態に係るビット反転部15は、動的に生成された乱数に基づいて、暗号化ビット列から所定の数のビットを選択し、選択した所定の数のビットを反転する機能を有する。本実施形態に係るビット反転部15が有する上記の機能によれば、情報処理端末10と情報処理サーバ20との間で送受信される所定の数のビットが反転された暗号化ビット列を、毎回異なるビット列とすることが可能となる。
また、ビット反転部15は、動的に生成された乱数に基づいて、暗号化ビット列から、所定の数の0値ビットを選択し、選択した所定の数の0値ビットを1値ビットに反転してよい。
(乱数生成部16)
本実施形態に係る乱数生成部16は、乱数を生成する機能を有する。本実施形態に係る乱数生成部16は、生成した乱数をビット反転部15に送信する機能を有する。なお、乱数生成部16が生成した乱数は、ビット反転部15による暗号化ビット列のビットの反転処理に用いられる。
(通信部17)
本実施形態に係る通信部17は、暗号化ビット列およびビット反転部15が反転したビットの数を示す反転ビット数情報を情報処理サーバ20などの外部装置に送信する機能を有する。また、本実施形態に係る通信部17は、暗号化キーワードおよびビット反転部15が反転したビットの数に係る反転ビット数情報を情報処理サーバ20に送信し、送信した暗号化キーワードに対する暗号検索結果を受信してよい。ここで、暗号検索結果は、検索可能暗号に係る技術を用いて実行する情報検索の結果をいう。またここで、暗号化キーワードに対する検索結果とは、例えば当該暗号化キーワードを含む暗号化インデックスや、当該暗号化インデックスに対応する暗号化データ、を含む。
また、本実施形態に係る通信部17は、複数の暗号化ビット列、ビット反転部が反転したビットの数に係る複数の反転ビット数情報および論理条件をさらに送信してもよい。ここで、論理条件とは、例えば論理和条件や論理積条件をいう。また、本実施形態に係る通信部17は、送信した暗号化キーワードに対応する所定の数のビットが反転された暗号化インデックスおよび、暗号化インデックスに対応する反転ビット数情報を受信してよい。
(出力部18)
本実施形態に係る出力部18は、情報処理サーバ20から通信部17が受信した暗号検索結果をユーザに対し出力する機能を有する。本実施形態に係る出力部18は、視覚情報を提示する表示デバイスなどを備える。上記の表示デバイスには、例えば、液晶ディスプレイ(LCD:Liquid Crystal Display)装置、OLED(Organic Light Emitting Diode)ディスプレイ装置、などが挙げられる。
(復号部19)
本実施形態に係る復号部19は、暗号化された情報を復号する機能を有する。また、本実施形態に係る復号部19は、情報処理サーバ20から受信された暗号化インデックスおよび、暗号化インデックスに対応する反転ビット数情報を用いて、ビットが反転される前の暗号化インデックスを生成してよい。復号部19は、復号した情報を出力部18へ送信してもよい。なお、復号対象の情報としては、暗号化データ、暗号化インデックス、暗号化キーワード、暗号化された反転ビット数情報、などが挙げられる。
以上、本実施形態に係る情報処理端末10の機能構成例について説明した。なお、図3を用いて説明した上記の構成はあくまで一例であり、本実施形態に係る情報処理端末10の機能構成は係る例に限定されない。本実施形態に係る情報処理端末10の機能構成は、仕様や運用に応じて柔軟に変形可能である。
<4.情報処理サーバ20の機能構成例>
次に、本実施形態に係る情報処理サーバ20の機能構成例について説明する。図4は、本実施形態に係る情報処理サーバ20の機能構成例を示すブロック図である。図4を参照すると、本実施形態に係る情報処理サーバ20は、通信制御部21、検索部22、記憶部23、ビット計算部24およびビット一致判定部25を備える。
(通信制御部21)
本実施形態に係る通信制御部21は、情報処理端末10から、暗号化キーワード、および暗号化キーワードの反転ビット数を示す反転ビット数情報を受信する機能を有する。
また、本実施形態に係る通信制御部21は、ビット一致判定部25が、暗号化キーワードが暗号化インデックスに含まれていると判定した場合、暗号化キーワードに対応する検索結果を情報処理端末10に送信してもよい。
(検索部22)
本実施形態に係る検索部22は、後述するビット計算部24およびビット一致判定部25を備え、通信制御部21を介して受信した暗号化キーワードが、暗号化インデックスに含まれているか否かを判定する機能を有する。また、本実施形態に係る検索部22は、記憶部23から暗号化インデックスを取り出す機能を有する。
(記憶部23)
本実施形態に係る記憶部23は、各種情報を一時的または恒常的に記憶するための記憶領域である。例えば、記憶部23には、情報検索に係る各種情報が記憶されてもよい。具体的な一例として、本実施形態に係る記憶部23は、暗号化データ、暗号化インデックス、またはビット反転部15が反転したビットの数に係る反転ビット数情報を記憶する。もちろん、上記はあくまで一例であり、記憶部23に記憶される情報の種別は特に限定されない。
(ビット計算部24)
本実施形態に係るビット計算部24は、暗号化キーワードと保存する暗号化インデックスの排他的論理和を計算したビット計算結果と、ビット計算結果に対するビットカウント結果とを取得する機能を有する。また、本実施形態に係るビット計算部24は、複数の暗号化キーワードのそれぞれに関し、暗号化インデックスとの排他的論理和を計算してビット計算結果、およびビットカウントを実行してビットカウント結果を取得してよい。ここで、ビットカウントとは、対象のビット列中の1値ビットがいくつ存在するか数えることをいう。
(ビット一致判定部25)
本実施形態に係るビット一致判定部25は、暗号化キーワードの反転ビット数および暗号化インデックスの反転ビット数の合計と、ビットカウント結果との大小関係の比較に基づいて、暗号化キーワードが暗号化インデックスに含まれているか否かを判定する機能を有する。本実施形態に係るビット一致判定部25は、ビット計算結果が、暗号化キーワードと暗号化インデックスの双方の反転されたビット数の合計以下である場合、検索キーワードが検索インデックスに含まれていると判定してよい。
以上、本実施形態に係る情報処理サーバ20の機能構成例について説明した。なお、図3を用いて説明した上記の構成はあくまで一例であり、本実施形態に係る情報処理端末10の機能構成は係る例に限定されない。本実施形態に係る情報処理サーバ20の機能構成は、仕様や運用に応じて柔軟に変形可能である。
<5.動作例>
次に、本実施形態に係る情報処理端末10および情報処理サーバ20の情報検索に係る動作の流れについて説明する。図5は、本実施形態に係る情報処理端末10による暗号化ビット列の生成について説明するための図である。図5には、情報検索に係るキーワードから鍵付ハッシュ関数を用いて暗号化ビット列が生成され、動的に生成された乱数に基づいて、当該暗号化ビット列のうち所定の数のビットが反転される流れが示されている。
ここで、暗号化ビット列は、検索キーワードが暗号化された暗号化キーワード、または検索インデックスが暗号化された暗号化インデックスである。情報処理端末10が、検索キーワードまたは検索インデックスを暗号化して、所定の数のビットを反転する動作の流れは同一であるため、以下まとめて説明する。
図5において、まず本実施形態に係るビット反転部15は、情報検索に係るキーワード101から、ユーザ鍵201およびハッシュ関数202を用いて暗号化ビット列102を生成する。ここで、暗号化部13は、HMACアルゴリズムを用いて、暗号化ビット列102を生成してもよい。
より具体的には、まず本実施形態に係る暗号化部13は、情報検索に係るキーワード101から、ユーザ鍵201および202ハッシュ関数を用いてハッシュ値を算出する。図5の一例において、情報検索に係るキーワード101は、検索キーワードであるが、検索インデックスであってもよい。暗号化部13は、算出したハッシュ値を所定長のビット列にマッピングすることで、値が「00101010」である暗号化ビット列102を生成する。
一方、乱数生成部16は、乱数103を動的に生成する。次に、ビット反転部15は、乱数生成部16が生成した乱数103を用いて、暗号化ビット列102と同じ長さの乱数ビット列104を生成する。図5に示す一例の場合、ビット反転部15は、値が「00010100」である乱数ビット列104を生成している。また、ビット反転部15は、乱数ビット列104に対して、ビットカウントを行い、値が「2」であるビットカウント結果106を生成している。
さらに、本実施形態に係るビット反転部15は、暗号化ビット列102と乱数ビット列104の論理和を計算し、所定の数のビットが反転された、値が「00111110」である暗号化ビット列105を生成する。
図5において、情報検索に係るキーワード101が検索インデックスである場合、上記の処理の後、暗号化ビット列105である暗号化インデックスは、情報処理サーバ20へ送信され、記憶部23に格納される。なお、以下では、上記のように生成された暗号化ビット列105が暗号化キーワードであり、情報処理サーバ20が当該暗号化キーワードを用いて検索処理を行う場合の動作の流れについて説明する。
図6および図7は、本実施形態に係る情報処理サーバ20による検索処理について説明するための図である。図6には、暗号化キーワードと暗号化インデックスの排他的論理和を計算し、計算結果から、反転したビットの数を取得する流れが示されている。
具体的に説明する。図6に示す一例において、本実施形態に係るビット計算部24は、まず、情報処理端末10から受信した、値が「00111110」である暗号化キーワード105と、値が「00101111」である暗号化インデックス107の排他的論理和を計算し、値が「00010001」であるビット計算結果108を取得する。次に、本実施形態に係るビット計算部24は、ビット計算結果108にビットカウントを行い、1値ビットの数「2」のビットカウント結果109を生成する。
図7は、暗号化キーワードが暗号化インデックスに含まれているか否かを判定する流れを示す図である。図7において、本実施形態に係るビット一致判定部25は、暗号化キーワード105の反転された反転ビット数106と暗号化インデックス107の反転された反転ビット数110の合計の、値が「3」である反転合計111を算出する。次に、本実施形態に係るビット一致判定部25は、ビット計算部24が算出した、ビット計算結果108のビットカウント結果109と反転合計111との大小関係を判定する。
ここで、ビット一致判定部25は、ビットカウント結果109が、反転合計111以下である場合、暗号化キーワード105が暗号化インデックス107に含まれていると判定してよい。当該判定の理由を以下に説明する。暗号化キーワード105が暗号化インデックス107に含まれている場合、排他的論理和を計算することにより、ビットが反転される前の暗号化ビット列部分が相殺される。そのため、最終的に当該排他的論理和の計算結果として残るのは、暗号化キーワード105と暗号化インデックス107の乱数ビット列のみである。つまり、ビットカウント結果109は、暗号化キーワード105が暗号化インデックス107に含まれている場合、反転合計111以下の値となる。
図7に示す一例では、値が「2」である暗号化キーワード105の反転ビット数106と、値が「1」である暗号化インデックス107の反転された反転ビット数110が示されている。本実施形態に係るビット一致判定部25は、値が「3」である反転ビット数106と、反転ビット数110の合計「3」である反転合計111を算出する。次に、本実施形態に係るビット一致判定部25は、値が「3」である反転合計111と値が「2」であるビットカウント結果109との大小関係を判定している。
次に、本実施形態に係るビット一致判定部25は、大小関係の判定の結果、ビットカウント結果109が反転合計111以下であることから、暗号化キーワード105が暗号化インデックス107に含まれていると判定している。言い換えれば、本実施形態に係るビット一致判定部25は、当該暗号化ビット列105に対応する検索キーワードが当該暗号化インデックス107に対応する検索インデックスに含まれていると判定している。
このように、本実施形態に係る情報処理端末10および情報処理サーバ20は、暗号化キーワードおよび暗号化インデックスに乱数ビット列を加えた情報検索を実行することを特徴の一つとする。係る特徴によれば、確率暗号を用いておらず、また乱数ビット列が判明しなければ元の暗号化キーワードが分からないため、検索性能とセキュリティ性を両立させた情報検索が可能となる。
以上、本実施形態に係る情報検索の基本的な動作ついて説明した。一方、ブルームフィルタのようなあるビット列が他のビット列の集合に含まれているか否かを確率的に検索するために用いられるフィルタを暗号化ビット列として用いる場合、検索対象の検索キーワードに対応する暗号化キーワードが、当該暗号化キーワードと一致しない暗号化インデックスに対して、一致すると誤判定されてしまう場合もある。そこで、本実施形態では、情報処理端末10は、当該誤判定を検出することが可能である。以下、一例として、動的に生成された乱数に基づいて選択された、所定の数の0値ビットが1値ビットに反転された暗号化インデックスに係る検出動作の場合について説明する。図8は、本実施形態に係る検索処理の誤判定の検出動作を説明するための図である。
図8に示す一例では、ビット一致判定部25により暗号化ビット列102が含まれていると判定された暗号化インデックス107および暗号化インデックス114が情報処理サーバ20に保存されている。また、情報処理サーバ20には、暗号化インデックス107に対応する乱数ビット列112が暗号化された暗号化乱数ビット列118、暗号化インデックス114に対応する乱数ビット列116が暗号化された暗号化乱数ビット列115も併せて保存されている。
以下、ビット一致判定部25による判定が、誤判定であるか否かを判定する動作の流れについて説明する。まず、情報処理サーバ20の通信制御部21は、値が「00101111」である暗号化インデックス107、および暗号化乱数ビット列118を情報処理端末10へ送信する。次に、情報処理端末10の復号部19は、受信された暗号化乱数ビット列118を復号し、値が「00000101」である乱数ビット列112を生成する。復号部19は、乱数ビット列112と暗号化キーワードである暗号化ビット列102の論理積を計算し、値が「00000000」である判定結果ビット列113を生成する。ここで、暗号化インデックス107が暗号化キーワードである暗号化ビット列102と一致する場合、図8に示す一例のように、判定結果ビット列113は、0値ビットのみのビット列になる。
また同様に、情報処理サーバ20の通信制御部21は、値が「00101111」である暗号化インデックス114、および暗号化乱数ビット列115を情報処理端末10へ送信する。情報処理端末10の復号部19は、受信された暗号化乱数ビット列115を復号し、値が「00000010」である乱数ビット列116を生成する。復号部19は、乱数ビット列116と暗号化キーワードである暗号化ビット列102の論理積を計算し、値が「00000010」である判定結果ビット列117を生成する。ここで、暗号化インデックス114が、暗号化キーワードである暗号化ビット列102と一致しない場合、図8に示す一例のように、判定結果ビット列117は、1値ビットが存在するビット列になる。
このように、情報処理端末10は、ビット一致判定部25による判定が誤判定であるか否かを判定することが可能である。係る機能によれば、検索精度の向上を実現することが可能である。
なお、上記では、単一の暗号化キーワードを検索する場合の例について説明してきた。一方、情報処理端末10が情報処理サーバ20へ送信する検索条件は、検索対象とする暗号化キーワードは複数含んでいてもよい。また、当該検索条件は、論理条件をさらに含んでよい。図9は、本実施形態に係る複数の暗号化ビット列、反転したビットの数に係る複数の反転ビット数情報、および論理条件を含む情報検索に係る動作の流れについて説明するための図である。図9には、複数の暗号化キーワードと論理条件が示されている。
図9を参照すると、情報処理端末10の通信部17は、値が「00101010」である第1の暗号化キーワード119および値が「00101011」である第2の暗号化キーワード121、値が「2」である反転ビット数情報120および値が「1」である反転ビット数情報122、論理条件203を情報処理サーバ20へ送信している。ここで、論理条件は、例えば論理和条件や論理積条件、をいう。すなわち、論理条件は、例えばAND条件やOR条件、をいう。ここで、情報処理サーバ20のビット一致判定部25は、通信制御部21が受信した複数の検索キーワードと論理条件を用いて、当該複数の検索キーワードの検索結果が、当該論理条件を満たしているか否かを判定することができる。ビット計算部24は、複数の暗号化キーワードと、暗号化インデックスの排他的論理和を計算し、それぞれビット計算結果を取得する。また、ビット一致判定部25は、複数の暗号化キーワードと暗号化インデックスの双方の反転されたビット数の合計と、ビット計算結果との大小関係に基づいて、暗号化キーワードが暗号化インデックスに含まれているか否かをそれぞれ判定する。通信制御部21は、受信された論理条件に関する判定をさらに実行する。
情報処理サーバ20は、情報処理端末10が送信した上記情報に対する検索結果を情報処理端末10へ送信する。論理条件が論理和条件の場合、複数の暗号化キーワードのうち、少なくとも1の暗号化キーワードが暗号化インデックスに含まれているとビット一致判定部25が判定した場合、複数の暗号化キーワードに対応する検索結果を送信する。図9の一例の場合、値が「00101010」である第1の暗号化キーワード119と、値が「00101011」である第2の暗号化キーワード121のいずれかが暗号化インデックスに含まれているとビット一致判定部25が判定した場合、暗号化インデックスに含まれていると判定された暗号化キーワードに対する検索結果を情報処理端末10へ送信する。
なお、上記では、論理条件が論理和条件である例について説明したが、論理条件が論理積条件でもよい。本実施形態に係る情報処理端末10は、ビット反転部15が反転したビットの数に係る複数の反転ビット数情報、論理積条件および複数の暗号化キーワードをさらに送信してよい。本実施形態に係る情報処理サーバ20は、複数の暗号化キーワードのすべてが暗号化インデックスに含まれていると前記ビット一致判定部が判定した場合、前記複数の暗号化キーワードに対応する検索結果を送信してよい。
係る機能によれば、利便性とセキュリティ性を両立し、また柔軟な情報検索が可能となる。
以上説明したように、本実施形態に係る情報処理端末10および情報処理サーバ20によれば、暗号化データおよび暗号化インデックスの生成や、暗号化キーワードを用いた検索を実現することが可能である。また、情報処理端末10おとび情報処理サーバ20は、暗号化データおよび暗号化インデックスの更新または削除の処理の実行も可能である。
情報処理端末10は、更新対象または削除対象となる暗号化データに対応する暗号化インデックスおよび反転ビット数情報を情報処理サーバ20から取得する。次に、情報処理端末10は、受信された暗号化インデックスを復号することで、検索インデックスを生成し、復号された検索インデックスが検索キーワードと一致するか否かを判定する。復号された検索インデックスが検索キーワードと一致すると判定された場合、情報処理端末10は、当該検索インデックスに対応する平文データの更新処理または削除処理の実行を情報処理サーバ20に依頼する。
このように、情報処理端末10および情報処理サーバ20が有する機能によれば、検索性能とセキュリティ性を両立しながら、コンピュータソフトウェアの基本処理を実行することが可能となる。
<6.動作の流れ>
次に本実施形態に係る情報処理端末10と情報処理サーバ20の暗号化インデックスを登録する動作の流れについて説明する。図10は、本実施形態に係る暗号化インデックスを情報処理サーバ20に登録する動作の流れの一例を示す図である。
図10を参照すると、まず、情報処理端末10の入力部11がユーザによる入力操作を受け付け、平文データを受信する(S1101)。次に、抽出部12は、ステップS1101で受信された平文データに基づいて、検索インデックスを生成する(S1102)。次に、暗号化部13は、ステップS1102で生成された検索インデックスから、鍵付ハッシングを用いて算出したハッシュ値を所定のビット列にマッピングし、暗号化インデックスを生成する(S1103)。
一方、乱数生成部16は乱数を生成し、ビット反転部15は、乱数生成部16が生成した乱数に基づいて、暗号化ビット列と同じ長さである乱数ビット列を生成する(S1104)。次に、ビット反転部15は、ステップS1104で生成された乱数ビット列と暗号化ビット列との排他的論理和を計算する(S1105)。次に、通信部17は、暗号化データ、暗号化インデックスおよび反転ビット数情報を情報処理サーバ20へ送信する(S1106)。
情報処理サーバ20の通信制御部21は、ステップS1106で送信された暗号化データ、暗号化インデックスおよび反転ビット数情報を受信し、記憶部23へ送信する。記憶部23は、受信した暗号化データ、暗号化インデックスおよび反転ビット数情報を記憶領域へ格納する(S1107)。
次に、所定の検索キーワードを含む平文データを検索する動作の流れについて説明する。図11は、本実施形態に係る暗号化キーワードを含む暗号化インデックスを検索する動作の流れの一例を示す図である。図11を参照すると、まず、情報処理端末10の入力部11がユーザによる入力操作を受け付け、検索キーワードを受信する(S1201)。次に、暗号化部13は、ステップS1201で受信された検索キーワードから、鍵付ハッシングを用いて算出したハッシュ値を所定のビット列にマッピングした暗号化キーワードを生成する(S1202)。
一方、乱数生成部16は乱数を生成し、ビット反転部15は、乱数生成部16が生成した乱数に基づいて、暗号化ビット列と同じ長さである乱数ビット列を生成する(S1203)。次に、ビット反転部15は、ステップS1203で生成された乱数ビット列に基づいて、暗号化キーワードから所定の数のビットを選択し、選択した所定の数のビットを反転する(S1204)。次に、通信部17は、ステップS1204で生成された暗号化ビット列および反転ビット数情報を情報処理サーバ20へ送信する(S1205)。
情報処理サーバ20の通信制御部21は、ステップS1205で送信された暗号化キーワードおよび反転ビット数情報を受信する(S1205)。次に、検索部22は、記憶部23に格納された暗号化インデックスを取り出し、ビット計算部24へ送信する(S1206)。次に、ビット計算部24は、ステップS1206で取り出された暗号化キーワードと、ステップS1205で受信した暗号化インデックスの排他的論理和を計算する(S1207)。次に、ビット一致判定部25は、ステップS1206で計算されたビット計算結果に対しビットカウントを行い、ビットカウント結果を生成する(S1208)。次に、暗号化キーワードの反転ビット数および暗号化インデックスの反転ビット数の合計と、ステップS1208で生成されたビットカウント結果との大小関係の比較に基づいて、暗号化キーワードが暗号化インデックスに含まれているか否かを判定する(S1209)。ビット一致判定部25が暗号化インデックスに暗号化キーワードが含まれていると判定した場合、通信制御部21は、暗号化キーワードに対応する検索結果を情報処理端末10へ送信する(S1210)。
<7.ハードウェア構成例>
次に、本開示の一実施形態に係る情報処理端末10および情報処理サーバ20のハードウェア構成例について説明する。図12は、本開示の一実施形態に係る情報処理端末10および情報処理サーバ20のハードウェア構成例を示すブロック図である。図12を参照すると、情報処理端末10および情報処理サーバ20は、例えば、プロセッサ871と、ROM872と、RAM873と、ホストバス874と、ブリッジ875と、外部バス876と、インターフェース877と、入力装置878と、出力装置879と、ストレージ880と、ドライブ881と、接続ポート882と、通信装置883と、を有する。なお、ここで示すハードウェア構成は一例であり、構成要素の一部が省略されてもよい。また、ここで示される構成要素以外の構成要素をさらに含んでもよい。
(プロセッサ871)
プロセッサ871は、例えば、演算処理装置又は制御装置として機能し、ROM872、RAM873、ストレージ880、又はリムーバブル記録媒体901に記録された各種プログラムに基づいて各構成要素の動作全般又はその一部を制御する。
(ROM872、RAM873)
ROM872は、プロセッサ871に読み込まれるプログラムや演算に用いるデータ等を格納する手段である。RAM873には、例えば、プロセッサ871に読み込まれるプログラムや、そのプログラムを実行する際に適宜変化する各種パラメータ等が一時的又は永続的に格納される。
(ホストバス874、ブリッジ875、外部バス876、インターフェース877)
プロセッサ871、ROM872、RAM873は、例えば、高速なデータ伝送が可能なホストバス874を介して相互に接続される。一方、ホストバス874は、例えば、ブリッジ875を介して比較的データ伝送速度が低速な外部バス876に接続される。また、外部バス876は、インターフェース877を介して種々の構成要素と接続される。
(入力装置878)
入力装置878には、例えば、マウス、キーボード、タッチパネル、ボタン、スイッチ、及びレバー等が用いられる。さらに、入力装置878としては、赤外線やその他の電波を利用して制御信号を送信することが可能なリモートコントローラ(以下、リモコン)が用いられることもある。また、入力装置878には、マイクロフォンなどの音声入力装置が含まれる。
(出力装置879)
出力装置879は、例えば、CRT(Cathode Ray Tube)、LCD、又は有機EL等のディスプレイ装置、スピーカ、ヘッドホン等のオーディオ出力装置、プリンタ、携帯電話、又はファクシミリ等、取得した情報を利用者に対して視覚的又は聴覚的に通知することが可能な装置である。また、本開示に係る出力装置879は、触覚刺激を出力することが可能な種々の振動デバイスを含む。
(ストレージ880)
ストレージ880は、各種のデータを格納するための装置である。ストレージ880としては、例えば、ハードディスクドライブ(HDD)等の磁気記憶デバイス、半導体記憶デバイス、光記憶デバイス、又は光磁気記憶デバイス等が用いられる。
(ドライブ881)
ドライブ881は、例えば、磁気ディスク、光ディスク、光磁気ディスク、又は半導体メモリ等のリムーバブル記録媒体901に記録された情報を読み出し、又はリムーバブル記録媒体901に情報を書き込む装置である。
(リムーバブル記録媒体901)
リムーバブル記録媒体901は、例えば、DVDメディア、Blu−ray(登録商標)メディア、HD DVDメディア、各種の半導体記憶メディア等である。もちろん、リムーバブル記録媒体901は、例えば、非接触型ICチップを搭載したICカード、又は電子機器等であってもよい。
(接続ポート882)
接続ポート882は、例えば、USB(Universal Serial Bus)ポート、IEEE1394ポート、SCSI(Small Computer System Interface)、RS−232Cポート、又は光オーディオ端子等のような外部接続機器902を接続するためのポートである。
(外部接続機器902)
外部接続機器902は、例えば、プリンタ、携帯音楽プレーヤ、デジタルカメラ、デジタルビデオカメラ、又はICレコーダ等である。
(通信装置883)
通信装置883は、ネットワークに接続するための通信デバイスであり、例えば、有線又は無線LAN、Bluetooth(登録商標)、又はWUSB(Wireless USB)用の通信カード、光通信用のルータ、ADSL(Asymmetric Digital Subscriber Line)用のルータ、又は各種通信用のモデム等である。
<8.まとめ>
以上説明したように、本開示の一実施形態に係る情報処理端末10および情報処理サーバ20は、乱数に基づいて、暗号化キーワードおよび暗号化インデックスから選択された所定のビットを反転して、情報検索を行うことが可能となる。係る機能によれば、検索性能とセキュリティ性を両立する通信により情報検索を実行することができる。
以上、添付図面を参照しながら本開示の好適な実施形態について詳細に説明したが、本開示の技術的範囲はかかる例に限定されない。本開示の技術分野における通常の知識を有する者であれば、特許請求の範囲に記載された技術的思想の範疇内において、各種の変更例または修正例に想到し得ることは明らかであり、これらについても、当然に本開示の技術的範囲に属するものと了解される。
また、本明細書に記載された効果は、あくまで説明的または例示的なものであって限定的ではない。つまり、本開示に係る技術は、上記の効果とともに、または上記の効果に代えて、本明細書の記載から当業者には明らかな他の効果を奏しうる。
また、本明細書の情報処理端末10および情報処理サーバ20の処理に係る各ステップは、必ずしもシーケンス図に記載された順序に沿って時系列に処理される必要はない。例えば、情報処理端末10および情報処理サーバ20の処理に係る各ステップは、フローチャートに記載された順序と異なる順序で処理されても、並列的に処理されてもよい。
なお、以下のような構成も本開示の技術的範囲に属する。
(1)
情報検索に係るキーワードから鍵付ハッシングを用いて算出したハッシュ値を所定長のビット列にマッピングした暗号化ビット列を生成する暗号化部と、
動的に生成された乱数に基づいて、前記暗号化ビット列から所定の数のビットを選択し、選択した前記所定の数のビットを反転するビット反転部と、
前記暗号化ビット列、および前記ビット反転部が反転したビットの数を示す反転ビット数情報を外部装置に送信する通信部と、
を備える、
情報処理装置。
(2)
前記情報検索に係るキーワードは、検索キーワードであり、
前記暗号化部は、前記検索キーワードおよび鍵付ハッシングを用いて算出したハッシュ値を所定長のビット列にマッピングした暗号化キーワードを生成し、
前記ビット反転部は、前記動的に生成された乱数に基づいて、前記暗号化キーワードから所定の数のビットを選択し、選択した前記所定の数のビットを反転し、
前記通信部は、前記暗号化キーワード、および前記暗号化キーワードに係る反転ビット数情報を外部装置に送信し、前記暗号化キーワードに対応する暗号検索結果を受信し、
前記暗号検索結果は、検索可能暗号に係る技術を用いて実行する情報検索の結果である、
前記(1)に記載の情報処理装置。
(3)
前記暗号化ビット列は、ブルームフィルタである、
前記(1)または(2)に記載の情報処理装置。
(4)
前記暗号化部は、複数の前記暗号化ビット列の論理和の計算結果である集合暗号化ビット列を生成し、
前記ビット反転部は、前記動的に生成された乱数に基づいて、前記集合暗号化ビット列から、所定の数のビットを選択し、選択した前記所定の数のビットを反転し、
前記通信部は前記反転されたビットの数に係る反転ビット数情報および前記集合暗号化ビット列を送信する、
前記(1)〜(3)のいずれかに記載の情報処理装置。
(5)
前記通信部は、前記ビット反転部が反転したビットの数に係る複数の反転ビット数情報、論理条件および複数の前記暗号化ビット列をさらに送信する、
前記(1)〜(4)のいずれかに記載の情報処理装置。
(6)
前記論理条件は、論理和条件または論理積条件であり、
送信した前記暗号化ビット列に対する暗号検索結果は、少なくとも2つ以上の前記暗号化ビット列との論理和条件または論理積条件に基づく暗号検索結果である、
前記(5)に記載の情報処理装置。
(7)
前記ビット反転部は、前記動的に生成された乱数に基づいて、前記暗号化ビット列から、所定の数の0値ビットを選択し、前記選択した記所定の数の0値ビットを1値ビットに反転する、
前記(1)〜(6)のいずれかに記載の情報処理装置。
(8)
前記情報検索に係るキーワードは、検索インデックスであり、
前記暗号化部は、前記検索インデックスおよび鍵付ハッシングを用いて算出したハッシュ値を所定長のビット列にマッピングした暗号化インデックスを生成し、
前記ビット反転部は、前記動的に生成された乱数に基づいて、前記暗号化インデックスから所定の数のビットを選択し、選択した前記所定の数のビットを反転する、
前記(1)、3〜(7)のいずれかに記載の情報処理装置。
(9)
前記通信部は、送信した暗号化キーワードに対応する、前記所定の数のビットが反転された前記暗号化インデックスに対応する暗号化された前記反転ビット数情報を、検索結果としてさらに受信し、
前記暗号化された反転ビット数情報に基づいて、暗号化される前の前記反転ビット数情報を生成する復号部をさらに備え、
前記復号部は、前記暗号化キーワードと前記暗号化される前の反転ビット数情報の論理積を計算し、前記計算の結果に基づいて、前記検索結果が誤判定であるか否かを判定する、
前記(8)に記載の情報処理装置。
(10)
前記暗号化部は、HMACアルゴリズムを用いて、前記暗号化ビット列を生成する、
前記(1)〜(9)のいずれかに記載の情報処理装置。
(11)
クライアント端末から、暗号化キーワード、および前記暗号化キーワードの反転ビット数を示す反転ビット数情報を受信する通信制御部と、
前記暗号化キーワードと保存する暗号化インデックスの排他的論理和を計算したビット計算結果と、前記ビット計算結果に対するビットカウント結果とを取得するビット計算部と、
前記暗号化キーワードの反転ビット数および前記暗号化インデックスの反転ビット数の合計と、前記ビットカウント結果との大小関係の比較に基づいて、前記暗号化キーワードが前記暗号化インデックスに含まれているか否かを判定するビット一致判定部と、
を備え、
前記暗号化キーワードおよび前記暗号化インデックスは、鍵付ハッシングを用いて算出されたハッシュ値を所定長のビット列にマッピングした後、動的に生成された乱数に基づいて所定の数のビットが反転された暗号化ビット列であり、
前記通信制御部は、前記暗号化キーワードが前記暗号化インデックスに含まれていると、前記ビット一致判定部が判定した場合、前記暗号化キーワードに対応する検索結果を前記クライアント端末に送信する、
情報処理装置。
(12)
前記検索結果は、暗号化データまたは、前記暗号化データに係るリストを含む、
前記(11)に記載の情報処理装置。
(13)
前記ビット一致判定部は、前記ビットカウント結果が、前記暗号化キーワードと前記暗号化インデックスの双方の反転されたビット数の合計以下である場合、前記暗号化キーワードが前記暗号化インデックスに含まれていると判定する、
前記(11)または(12)に記載の情報処理装置。
(14)
前記通信制御部は、複数の前記暗号化キーワード、複数の前記暗号化キーワードに係る複数の反転ビット数情報、および論理条件を受信し、
前記ビット計算部は、複数の前記暗号化キーワードのそれぞれに関し、前記暗号化インデックスとの排他的論理和を計算して前記ビット計算結果および前記ビットカウント結果を取得し、
前記ビット一致判定部は、前記複数の暗号化キーワードと前記暗号化インデックスの双方の反転されたビット数の合計と、前記ビット計算結果との大小関係に基づいて、前記検索キーワードが前記検索インデックスに含まれているか否かをそれぞれ判定し、
前記通信制御部は、前記複数の暗号化キーワードに対応する判定が論理条件満たしている場合、検索結果を送信する、
前記(11)に記載の情報処理装置。
(15)
前記論理条件は、論理和条件であり、
前記通信制御部は、論理和条件に基づいて、前記複数の暗号化キーワードのうち、少なくとも1つの前記の暗号化キーワードが前記暗号化インデックスに含まれていると前記ビット一致判定部が判定した場合、前記複数の暗号化キーワードに対応する検索結果を送信する、
前記(14)に記載の情報処理装置。
(16)
前記論理条件は、論理積条件であり、
前記通信制御部は、論理積条件に基づいて、前記複数の暗号化キーワードのうち、全部の前記暗号化キーワードが前記暗号化インデックスに含まれていると前記ビット一致判定部が判定した場合、前記複数の暗号化キーワードに対応する検索結果を送信する、
前記(14)に記載の情報処理装置。
(17)
プロセッサが、
情報検索に係るキーワードから、鍵付ハッシングを用いて算出したハッシュ値を所定長のビット列にマッピングした暗号化ビット列を生成することと、
動的に生成された乱数に基づいて、前記暗号化ビット列から所定の数のビットを選択し、選択した前記所定の数のビットを反転することと、
反転したビットの数に係る反転ビット数情報および前記暗号化ビット列を外部装置に送信することと、
を含む、情報処理方法。
(18)
プロセッサが、
クライアント端末から、暗号化キーワード、および前記暗号化キーワードの反転ビット数を示す反転ビット数情報を受信することと、
前記暗号化キーワードと保存する暗号化インデックスの排他的論理和を計算したビット計算結果と、前記ビット計算結果に対するビットカウント結果とを取得することと、
前記暗号化キーワードの反転ビット数および前記暗号化インデックスの反転ビット数の合計と、前記ビットカウント結果との大小関係の比較に基づいて、前記暗号化キーワードが前記暗号化インデックスに含まれているか否かを判定することと、
を含み、
前記暗号化キーワードおよび前記暗号化インデックスは、鍵付ハッシングを用いて算出されたハッシュ値を所定長のビット列にマッピングした後、動的に生成された乱数に基づいて所定の数のビットが反転された暗号化ビット列であり、
前記暗号化キーワードが前記暗号化インデックスに含まれていると判定した場合、前記暗号化キーワードに対応する検索結果を前記クライアント端末に送信する、
情報処理方法。
10 情報処理端末
11 入力部
12 抽出部
13 暗号化部
14 鍵管理部
15 ビット反転部
16 乱数生成部
17 通信部
18 出力部
19 復号部
20 情報処理サーバ
21 通信制御部
22 検索部
23 記憶部
24 ビット計算部
25 ビット一致判定部
30 ネットワーク

Claims (18)

  1. 情報検索に係るキーワードから鍵付ハッシングを用いて算出したハッシュ値を所定長のビット列にマッピングした暗号化ビット列を生成する暗号化部と、
    動的に生成された乱数に基づいて、前記暗号化ビット列から所定の数のビットを選択し、選択した前記所定の数のビットを反転するビット反転部と、
    前記暗号化ビット列、および前記ビット反転部が反転したビットの数を示す反転ビット数情報を外部装置に送信する通信部と、
    を備える、
    情報処理装置。
  2. 前記情報検索に係るキーワードは、検索キーワードであり、
    前記暗号化部は、前記検索キーワードおよび鍵付ハッシングを用いて算出したハッシュ値を所定長のビット列にマッピングした暗号化キーワードを生成し、
    前記ビット反転部は、前記動的に生成された乱数に基づいて、前記暗号化キーワードから所定の数のビットを選択し、選択した前記所定の数のビットを反転し、
    前記通信部は、前記暗号化キーワード、および前記暗号化キーワードに係る反転ビット数情報を外部装置に送信し、前記暗号化キーワードに対応する暗号検索結果を受信し、
    前記暗号検索結果は、検索可能暗号を用いた情報検索の結果である、
    請求項1に記載の情報処理装置。
  3. 前記暗号化ビット列は、ブルームフィルタである、
    請求項1に記載の情報処理装置。
  4. 前記暗号化部は、複数の前記暗号化ビット列の論理和の計算結果である集合暗号化ビット列を生成し、
    前記ビット反転部は、前記動的に生成された乱数に基づいて、前記集合暗号化ビット列から、所定の数のビットを選択し、選択した前記所定の数のビットを反転し
    前記通信部は前記反転されたビットの数に係る反転ビット数情報および前記集合暗号化ビット列を送信する、
    請求項1に記載の情報処理装置。
  5. 前記通信部は、複数の前記暗号化ビット列、前記ビット反転部が反転したビットの数に係る複数の反転ビット数情報、および論理条件をさらに送信する、
    請求項2に記載の情報処理装置。
  6. 前記論理条件は、論理和条件または論理積条件であり、
    送信した前記暗号化ビット列に対する暗号検索結果は、少なくとも2つ以上の前記暗号化ビット列との論理和条件または論理積条件に基づく暗号検索結果である、
    請求項5に記載の情報処理装置。
  7. 前記ビット反転部は、前記動的に生成された乱数に基づいて、前記暗号化ビット列から、所定の数の0値ビットを選択し、前記選択した記所定の数の0値ビットを1値ビットに反転する、
    請求項1に記載の情報処理装置。
  8. 前記情報検索に係るキーワードは、検索インデックスであり、
    前記暗号化部は、前記検索インデックスおよび鍵付ハッシングを用いて算出したハッシュ値を所定長のビット列にマッピングした暗号化インデックスを生成し、
    前記ビット反転部は、前記動的に生成された乱数に基づいて、前記暗号化インデックスから所定の数のビットを選択し、選択した前記所定の数のビットを反転する、
    請求項1に記載の情報処理装置。
  9. 前記通信部は、送信した暗号化キーワードに対応する、前記所定の数のビットが反転された前記暗号化インデックスに対応する暗号化された前記反転ビット数情報を、検索結果としてさらに受信し、
    前記暗号化された反転ビット数情報に基づいて、暗号化される前の前記反転ビット数情報を生成する復号部をさらに備え、
    前記復号部は、前記暗号化キーワードと前記暗号化される前の反転ビット数情報の論理積を計算し、前記計算の結果に基づいて、前記検索結果が誤判定であるか否かを判定する、
    請求項8に記載の情報処理装置。
  10. 前記暗号化部は、HMACアルゴリズムを用いて、前記暗号化ビット列を生成する、
    請求項1に記載の情報処理装置。
  11. クライアント端末から、暗号化キーワード、および前記暗号化キーワードの反転ビット数を示す反転ビット数情報を受信する通信制御部と、
    前記暗号化キーワードと保存する暗号化インデックスの排他的論理和を計算したビット計算結果と、前記ビット計算結果に対するビットカウント結果とを取得するビット計算部と、
    前記暗号化キーワードの反転ビット数および前記暗号化インデックスの反転ビット数の合計と、前記ビットカウント結果との大小関係の比較に基づいて、前記暗号化キーワードが前記暗号化インデックスに含まれているか否かを判定するビット一致判定部と、
    を備え、
    前記暗号化キーワードおよび前記暗号化インデックスは、鍵付ハッシングを用いて算出されたハッシュ値を所定長のビット列にマッピングした後、動的に生成された乱数に基づいて所定の数のビットが反転された暗号化ビット列であり、
    前記通信制御部は、前記暗号化キーワードが前記暗号化インデックスに含まれていると、前記ビット一致判定部が判定した場合、前記暗号化キーワードに対応する検索結果を前記クライアント端末に送信する、
    情報処理装置。
  12. 前記検索結果は、暗号化データまたは前記暗号化データに係るリストのうち少なくともいずれかを含む、
    請求項11に記載の情報処理装置。
  13. 前記ビット一致判定部は、前記ビットカウント結果が、前記暗号化キーワードと前記暗号化インデックスの双方の反転されたビット数の合計以下である場合、前記暗号化キーワードが前記暗号化インデックスに含まれていると判定する、
    請求項11に記載の情報処理装置。
  14. 前記通信制御部は、複数の前記暗号化キーワード、複数の前記暗号化キーワードに係る複数の反転ビット数情報、および論理条件を受信し、
    前記ビット計算部は、複数の前記暗号化キーワードのそれぞれに関し、前記暗号化インデックスとの排他的論理和を計算して前記ビット計算結果および前記ビットカウント結果を取得し、
    前記ビット一致判定部は、前記複数の暗号化キーワードと前記暗号化インデックスの双方の反転されたビット数の合計と、前記ビット計算結果との大小関係に基づいて、前記暗号化キーワードが前記暗号化インデックスに含まれているか否かをそれぞれ判定し、
    前記通信制御部は、前記複数の暗号化キーワードに対応する判定が論理条件を満たしている場合、検索結果を送信する、
    請求項11に記載の情報処理装置。
  15. 前記論理条件は、論理和条件を含み、
    前記通信制御部は、論理和条件に基づいて、前記ビット一致判定部が前記複数の暗号化キーワードのうち、少なくとも1つの前記暗号化キーワードが前記暗号化インデックスに含まれていると判定した場合、前記複数の暗号化キーワードに対応する検索結果を送信する、
    請求項14に記載の情報処理装置。
  16. 前記論理条件は、論理積条件を含み、
    前記通信制御部は、論理積条件に基づいて、前記ビット一致判定部が前記複数の暗号化キーワードのすべてが前記暗号化インデックスに含まれていると判定した場合、前記複数の暗号化キーワードに対応する検索結果を送信する、
    請求項14に記載の情報処理装置。
  17. プロセッサが、
    情報検索に係るキーワードから鍵付ハッシングを用いて算出したハッシュ値を所定長のビット列にマッピングした暗号化ビット列を生成することと、
    動的に生成された乱数に基づいて、前記暗号化ビット列から所定の数のビットを選択し、選択した前記所定の数のビットを反転することと、
    反転したビットの数に係る反転ビット数情報および前記暗号化ビット列を外部装置に送信することと、
    を含む、情報処理方法。
  18. プロセッサが、
    クライアント端末から、暗号化キーワード、および前記暗号化キーワードの反転ビット数を示す反転ビット数情報を受信することと、
    前記暗号化キーワードと保存する暗号化インデックスの排他的論理和を計算したビット計算結果と、前記ビット計算結果に対するビットカウント結果とを取得することと、
    前記暗号化キーワードの反転ビット数および前記暗号化インデックスの反転ビット数の合計と、前記ビットカウント結果との大小関係の比較に基づいて、前記暗号化キーワードが前記暗号化インデックスに含まれているか否かを判定することと、
    を含み、
    前記暗号化キーワードおよび前記暗号化インデックスは、鍵付ハッシングを用いて算出されたハッシュ値を所定長のビット列にマッピングした後、動的に生成された乱数に基づいて所定の数のビットが反転された暗号化ビット列であり、
    前記暗号化キーワードが前記暗号化インデックスに含まれていると判定した場合、前記暗号化キーワードに対応する検索結果を前記クライアント端末に送信する、
    情報処理方法。
JP2018124466A 2018-06-29 2018-06-29 情報処理装置および情報処理方法 Pending JP2020004199A (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2018124466A JP2020004199A (ja) 2018-06-29 2018-06-29 情報処理装置および情報処理方法
PCT/JP2019/021072 WO2020003859A1 (ja) 2018-06-29 2019-05-28 情報処理装置および情報処理方法
US17/253,032 US11887508B2 (en) 2018-06-29 2019-05-28 Information processing apparatus and information processing method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2018124466A JP2020004199A (ja) 2018-06-29 2018-06-29 情報処理装置および情報処理方法

Publications (1)

Publication Number Publication Date
JP2020004199A true JP2020004199A (ja) 2020-01-09

Family

ID=68986425

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018124466A Pending JP2020004199A (ja) 2018-06-29 2018-06-29 情報処理装置および情報処理方法

Country Status (3)

Country Link
US (1) US11887508B2 (ja)
JP (1) JP2020004199A (ja)
WO (1) WO2020003859A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023112176A1 (ja) * 2021-12-14 2023-06-22 三菱電機株式会社 秘匿検索システム、秘匿検索方法、及び、秘匿検索プログラム

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006060695A (ja) * 2004-08-23 2006-03-02 Science Univ Of Tokyo 情報復号方法、情報符号化方法、情報通信方法、情報復号装置、送信装置及び情報通信システム
US8996886B2 (en) 2012-02-17 2015-03-31 International Business Machines Corporation Encrypted biometric data management and retrieval
CN110086830B (zh) * 2012-08-15 2022-03-04 维萨国际服务协会 可搜索的经加密的数据
JP6208586B2 (ja) * 2014-01-16 2017-10-04 株式会社日立製作所 検索可能暗号処理システムおよび検索可能暗号処理方法
US10728028B2 (en) * 2016-02-18 2020-07-28 Gideon Samid Transmitter for encoding information with randomly flipped bits and transmitting that information through a communications channel

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023112176A1 (ja) * 2021-12-14 2023-06-22 三菱電機株式会社 秘匿検索システム、秘匿検索方法、及び、秘匿検索プログラム
JP7455287B2 (ja) 2021-12-14 2024-03-25 三菱電機株式会社 秘匿検索システム、秘匿検索方法、及び、秘匿検索プログラム

Also Published As

Publication number Publication date
US20210118332A1 (en) 2021-04-22
US11887508B2 (en) 2024-01-30
WO2020003859A1 (ja) 2020-01-02

Similar Documents

Publication Publication Date Title
JP6208586B2 (ja) 検索可能暗号処理システムおよび検索可能暗号処理方法
JP5420085B2 (ja) データ処理装置及びデータ保管装置
JP5963936B2 (ja) サーバ装置、秘匿検索プログラム,記録媒体及び秘匿検索システム
JP5442161B2 (ja) 検索システム、検索システムの検索方法、情報処理装置、検索プログラム、対応キーワード管理装置および対応キーワード管理プログラム
JP7302600B2 (ja) 情報処理システムおよび情報処理方法
CN107257974A (zh) 用于提供隐私信息检索的系统、方法和装置
JP2014002365A (ja) プライバシーを保護することができる暗号化データの問い合わせ方法及びシステム
JP2012164031A (ja) データ処理装置及びデータ保管装置及びデータ処理方法及びデータ保管方法及びプログラム
WO2017122326A1 (ja) 秘匿検索システム、秘匿検索方法及び秘匿検索プログラム
EP3657475B1 (en) Data processing apparatus, data processing method, and data processing program
CN111753312B (zh) 数据处理方法、装置、设备和系统
WO2020110830A1 (ja) 情報処理装置および情報処理方法
JP2012248940A (ja) データ生成装置、データ生成方法、データ生成プログラム及びデータベースシステム
WO2020003859A1 (ja) 情報処理装置および情報処理方法
US9489501B2 (en) Authentication method, authentication device, and system
US11461551B1 (en) Secure word search
US9218296B2 (en) Low-latency, low-overhead hybrid encryption scheme
KR102375973B1 (ko) 사례기반 추론엔진을 이용한 보안 서버 및 보안 기능의 설치를 위한 저장 매체
KR102375144B1 (ko) 블록체인을 이용하여 개인키를 관리하는 장치, 방법, 시스템 및 컴퓨터 판독가능 저장 매체
JP7378675B2 (ja) 暗号化タグ生成装置、秘匿検索システム、暗号化タグ生成方法及び暗号化タグ生成プログラム
JPWO2017203698A1 (ja) 登録先決定装置、登録装置、秘匿検索システム、登録先決定方法及び登録先決定プログラム
WO2017138122A1 (ja) 暗号情報検索方法、暗号情報検索システム、及び暗号情報検索プログラム
KR20170022451A (ko) 데이터 저장장치 및 데이터 저장장치의 동작 방법