JP6144992B2 - 検索可能暗号処理システム及び方法 - Google Patents

検索可能暗号処理システム及び方法 Download PDF

Info

Publication number
JP6144992B2
JP6144992B2 JP2013165187A JP2013165187A JP6144992B2 JP 6144992 B2 JP6144992 B2 JP 6144992B2 JP 2013165187 A JP2013165187 A JP 2013165187A JP 2013165187 A JP2013165187 A JP 2013165187A JP 6144992 B2 JP6144992 B2 JP 6144992B2
Authority
JP
Japan
Prior art keywords
data
search
unit
client
secret
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2013165187A
Other languages
English (en)
Other versions
JP2015035072A (ja
JP2015035072A5 (ja
Inventor
雅之 吉野
雅之 吉野
尚宜 佐藤
尚宜 佐藤
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2013165187A priority Critical patent/JP6144992B2/ja
Priority to EP14179580.7A priority patent/EP2894810B1/en
Priority to US14/451,469 priority patent/US9892211B2/en
Publication of JP2015035072A publication Critical patent/JP2015035072A/ja
Publication of JP2015035072A5 publication Critical patent/JP2015035072A5/ja
Application granted granted Critical
Publication of JP6144992B2 publication Critical patent/JP6144992B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/903Querying
    • G06F16/90335Query processing
    • 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/008Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols involving homomorphic encryption
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/70Information retrieval; Database structures therefor; File system structures therefor of video data
    • G06F16/78Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually
    • G06F16/783Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually using metadata automatically derived from the content
    • G06F16/7837Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually using metadata automatically derived from the content using objects detected or recognised in the video content
    • 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

Description

本発明は、サーバ/クライアントモデルにおいて、サーバが、クライアントの要求に従って、暗号化データを復号せずに、預託された暗号化データを検索する、検索処理システム及び方法に関する。
情報システムの開発・運用管理費の効率化を目的に、近年、情報システムを自組織が維持するのではなく、他組織が提供する情報システムを利用する、クラウドと呼ばれる運用管理形態が脚光を浴びている。一方、クラウドにおいては、情報システムを管理する組織が、情報システムを利用する組織とは異なるため、情報漏えい等を防止する策や、事故発生後の原因究明、再発防止策等が自組織だけでは立てにくい。そのため、事前に、データの不正流出の予防策として、暗号技術を活用し、データの機密性を確保する必要がある。
サーバ/クライアントモデルにおいて、クライアントが、サーバにデータを預託しながら、サーバに対し、預託したデータの情報漏洩を防ぐ技術として、暗号技術を利用した方式が知られている。例えば、非特許文献1や特許文献1には、クライアントの要求に従って、暗号化データを復号せずに、預託された暗号化データを検索する、検索処理方式が記載されている。この検索処理方式は、平文と暗号文が一対一の単純な対応関係を有する決定的暗号化方式よりも安全な、平文と暗号文が一対mの複雑な対応関係を有する確率的暗号化方式を採用しており、サーバ管理者への情報漏洩を防ぎながら、かつサーバに預託したデータを安全に検索するための技術が開示されている。
Dawn Xiaodong Song, David Wagner, Arian Perrig."Practical Techniques for Searches on Encrypted Data". In Proceedings of the 2000 IEEE Symposium on Security and Privacy, pages 44−55(2000).
特開2012−123614号公報
しかしながら、非特許文献1に記載された技術では、クライアントからの検索キーワードの暗号化には、安全性の低い決定的暗号化方式を用いているため、頻度分析等の不正攻撃に対して脆弱である。一方、特許文献1に記載された技術では、預託する平文データと検索キーワードの双方を確率的に暗号化しており、安全性が高い。ただし、暗号文のデータサイズの縮小に関して、十分な検討がされていない。例えば、標準的な暗号化方式であるAES暗号(Advanced Encryption Standard,出力長128ビット)と標準的な暗号化ハッシュ関数であるSHA256(Secure HashAlgorithm 256bit,出力長256ビット)を用いて、128ビットの平文を暗号化した場合、サーバに預託する暗号化データのサイズはAES暗号とSHA256ハッシュ関数のそれぞれの出力長を合計した384ビット(128ビット+256ビット)以上になる。即ち、暗号化前(128ビット)に比べ、3倍にデータサイズが膨れ上がってしまう。検索キーワードの暗号化に関しても、同様にデータサイズの縮小に十分な検討がされていない。具体的には、検索キーワードを暗号化すると、同程度の長さの暗号文が作成される。この暗号文はネットワーク経由で送受信される。従って、検索キーワードのサイズが大きい場合、クライアントとサーバ間のネットワークに負荷がかかってしまう。
前記課題を解決するために、検索可能暗号処理システムは、データを預かる管理サーバと、管理サーバにデータを預託する登録クライアントと、管理サーバにデータを検索させる検索クライアントがネットワーク経由で連携し、登録クライアントは、ハッシュ値と準同型関数の出力値によるマスクを用いた確率的暗号化方式を用いつつ、検索用に作成する検索タグのサイズを圧縮した暗号化データをサーバに預託し、検索クライアントは、検索用のキーワードの暗号化に、同様に確率的暗号化を用いつつ、効率的に圧縮して暗号化した検索キーワードを管理サーバに送信し、管理サーバに暗号化データと暗号化キーワードの乱数のマスクを解除させずに、管理サーバに検索に該当するデータを検索結果として出力させ、検索クライアントは、検索結果の誤検索を検知し、検索結果を復号する。
クライアントが管理サーバに預託する暗号化データのサイズが小さいため、管理サーバのストレージを効率的に利用できる。検索用に暗号化した検索キーワードのサイズも小さくできるため、ネットワークにおける通信量を抑えることができる。さらに、クライアントは管理サーバが誤検索をした場合も、検索結果から誤りを検知できる。
検索可能暗号処理システムの概略を例示する図である。 登録クライアントの機能の概略を例示する図である。 検索クライアントの機能の概略を例示する図である。 管理サーバの機能の概略を例示する図である。 コンピュータの概略構成を例示する図である。 乱数の生成方法及び暗号化方法を例示する図である。 登録クライアントにおける秘匿データの作成手順を例示するブロック図である。 検索クライアントにおける秘匿キーワードの作成手順を例示するブロック図である。 管理サーバにおける秘匿データの検索手順を例示するブロック図である。 検索クライアントにおける秘匿データの誤検索の検知手順を例示するブロック図である。 検索クライアントにおける秘匿データの復号手順を例示するブロック図である。 管理サーバと登録クライアントにおける秘匿データの登録手順を例示するフローチャートを示す図である。 管理サーバと検索クライアントにおける秘匿データの検索手順を例示するフローチャートを示す図である。 暗号文のフォーマットを示す図である。 検索誤りの検知処理を示す図である。
以下、本発明の実施の形態を図面に基づいて詳細に説明する。
図1は、本実施形態の検索処理システムの概略図である。図示するように、検索処理システムは、登録クライアント100(Registration Client)と、検索クライアント200(Search Client)と、管理サーバ300(Management Server)とを備え、登録クライアント100と管理サーバ300、検索クライアント200と管理サーバ300は、ネットワーク400を介して相互に情報を送受信できるように構成されている。
ここで、本実施形態における登録クライアント100は、秘匿化したデータを管理サーバ300に送信するデータ登録用の送受信装置として機能し、検索クライアント200は、秘匿化したキーワードを管理サーバ300に送信し、検索結果を受信する、検索用の送受信装置として機能し、管理サーバ300は、秘匿化したデータをデータベース341に保管し、またデータベース341内のデータを検索する送受信装置として機能する。
図2は、登録クライアント100の機能概略図である。図示するように、登録クライアント100は、制御部110と、記憶部120と、入力部101と、出力部102と、通信部103とを備える。
記憶部120は、データ記憶部130と、鍵記憶部150と、一時記憶部180とを備える。
データ記憶部130には、管理サーバ300に送信するデータである平文が記憶される。ここで、本実施形態においては、入力部101を介して、受け付けた平文データ131と、管理サーバ300に登録する秘匿データ132とが記憶される。また、秘匿データ132の一部分のデータ長を意味する、タグ長135を記憶する。また、秘匿データ132の作成時に用いる初期ベクトル136を記憶する。鍵記憶部150には、安全性の観点から登録クライアント100が秘密に管理すべき、乱数用秘密鍵151とデータ暗号化鍵152が記憶される。一時記憶部180には、制御部110での処理で必要となる情報が記憶される。
制御部110は、全体処理部111と、暗号化部112と、擬似乱数生成部114と、不可逆変換部115と、準同型関数部116と、基本演算部117とを備える。
全体処理部111は、登録クライアント100における全ての処理を制御する。例えば、本実施形態において、全体処理部111は、入力部101を介して入力を受け付けた情報を、データ記憶部130に平文データ131として記憶する処理を行う。また、本実施形態において、全体処理部111は、平文データ131を出力部102に表示する処理を行う。
また、本実施形態において、全体処理部111は、データ記憶部130に記憶した平文データ131を読み込み、それぞれ、暗号化部112と、擬似乱数生成部114と、不可逆変換部115と、準同型関数部116と、基本演算部117とに入力し、出力されたデータを、データ記憶部130に秘匿データ132として記憶する処理を行う。
また、本実施形態において、全体処理部111は、秘匿データ132を、通信部103を介して管理サーバ300に送信する処理を行う。さらに、本実施形態において、全体処理部111は、管理サーバ300より通信部103を介して受信した秘匿データ132を、一時記憶部180に記憶する処理と出力部102に表示する処理を行う。
暗号化部112は、入力されたデータを暗号化したデータを出力する処理を行う。例えば、本実施形態においては、全体処理部111からデータとデータ暗号化鍵152が入力され、暗号化したデータを出力する処理を行う。例えば、標準的な暗号化アルゴリズムの実装により、暗号化部112は実現される。
擬似乱数生成部114は、擬似乱数を出力する処理を行う。例えば、擬似乱数生成部114は、温度、時間、電力量、等の物理現象から、乱数を出力する。本実施形態においては、擬似乱数生成部114は、全体処理部111から入力された乱数用秘密鍵151を用い、擬似乱数を出力する。また、乱数用秘密鍵151のデータ値は新しいデータ値に更新され、再び、全体処理部111により鍵記憶部150に記憶される。例えば、標準的な擬似乱数生成アルゴリズムの実装により、擬似乱数生成部114は実現される。
不可逆変換部115は、入力されたデータを圧縮したデータを出力する処理を行う。例えば、本実施形態においては、全体処理部111から入力されたデータを固定長(hビット)の別のデータに変換し、出力する処理を行う。例えば、標準的な暗号ハッシュ関数アルゴリズムであるSHA−256関数の実装により、任意長の入力データを256ビットのデータへ変換する不可逆変換部115が実現できる。
準同型関数部116は、入力データに対し、準同型性を有する関数の出力結果をデータとして出力する処理を行う。ただし、準同型を有する関数(以降、準同型関数と呼ぶ)とは、関数Fと、入力変数x、入力変数yに対し、以下の数1が成り立つ関数を指す。
(数1) F(x・y)=F(x)?F(y)
ただし、「・」と「?」は、演算記号を表わし、加算用の演算記号+、乗算用の演算記号*、ビット毎の排他的論理和であるXOR(eXclusive OR)演算用の演算記号xor等が入る。このとき、数1において、「・」と「?」にXOR演算記号xorが入る場合、以下の数2が成り立つ。
(数2) F(x xor y)=F(x)xor F(y)
基本演算部117は、加算、減算、比較算や、AND、OR、XOR等の基本的な算術演算に関する処理を行う。例えば、本実施形態においては、基本演算部117は、全体処理部111から入力された2つのデータのビット毎の排他的論理和であるXOR演算や、比較演算の等号成立または不成立の検証結果を、データとして出力する処理を行う。
以上に示した登録クライアント100は、例えば、図5(コンピュータの概略図)に示すような、CPU(Central Processing Unit)501と、メモリ502と、HDD(Hard Disk Drive)等の外部記憶装置503と、CD(Compact Disk)やDVD(Digital Versatile Disk)等の可搬性を有する記憶媒体508に対して情報を読み書きする読書装置507と、キーボードやマウス等の入力装置506と、ディスプレイ等の出力装置505と、通信ネットワークに接続するためのNIC(Network Interface Card)等の通信装置504と、これらを連結するシステムバス等の内部通信線(システムバスという)509と、を備えた一般的なコンピュータ500で実現できる。
例えば、記憶部120は、CPU501がメモリ502または外部記憶装置503を利用することにより実現可能であり、制御部110と制御部110に含まれる各処理部は、外部記憶装置503に記憶されている所定のプログラムをメモリ502にロードしてCPU501で実行することで実現可能であり、入力部101は、CPU501が入力装置506を利用することで実現可能であり、出力部102は、CPU501が出力装置505を利用することで実現可能であり、通信部103は、CPU501が通信装置504を利用することで実現可能である。
この所定のプログラムは、読書装置507を介して記憶媒体508から、あるいは、通信装置504を介してネットワークから、外部記憶装置503に記憶(ダウンロード)され、それから、メモリ502上にロードされて、CPU501により実行されるようにしてもよい。また、読書装置507を介して、記憶媒体508から、あるいは通信装置504を介してネットワークから、メモリ502上に直接ロードされ、CPU501により実行されるようにしてもよい。
図3は、検索クライアント200の機能概略図である。図示するように、検索クライアント200は、制御部210と、記憶部220と、入力部201と、出力部202と、通信部203とを備える。
記憶部220は、データ記憶部230と、鍵記憶部250と、一時記憶部280とを備える。
データ記憶部230には、管理サーバ300に送信するデータである、送信文を特定する情報と通信部203を介して受信したデータを特定する情報が記憶される。本実施形態においては、検索クライアント200が、入力部201を介して受け付けた平文キーワード241を特定する情報と、管理サーバ300に送信する秘匿キーワード242と、平文キーワード241が記憶される。また、通信部203を介して管理サーバ300から受信したデータを特定する情報が、秘匿データ232として記憶され、秘匿データ232から、秘匿化を解除したデータを、平文データ231としてデータ記憶部230に記憶する。また、秘匿データ232の作成時に用いる初期ベクトル236を記憶する。
鍵記憶部250には、安全性の観点から検索クライアント200が秘密に管理すべき、乱数用秘密鍵251(K2)、データ暗号化鍵252(K1)、データ復号化鍵253(K1)、関数値暗号化鍵254(K3)を特定する情報が記憶される。なお、データ復号化鍵253は、上記のようにデータ暗号化鍵252と同じであってもよいし、異なっていてもよい。
一時記憶部280には、制御部210での処理で必要となる情報が記憶される。
制御部210は、全体処理部211と、暗号化部212と、復号化部213と、擬似乱数生成部214と、不可逆変換部215と、準同型関数部216と、基本演算部217とを備える。
全体処理部211は、検索クライアント200における全ての処理を制御する。例えば、本実施形態において、全体処理部211は、入力部201を介して入力を受け付けた情報を、データ記憶部230に平文キーワード241として記憶する処理を行う。
また、本実施形態において、全体処理部211は、平文キーワード241を出力部202に表示する処理を行う。
また、本実施形態において、全体処理部211は、データ記憶部230に記憶した平文キーワード241を読み込み、それぞれ、暗号化部212と、擬似乱数生成部214と、不可逆変換部215と、準同型関数部216と、基本演算部217とに入力し、出力されたデータを秘匿キーワード242としてデータ記憶部230に記憶する処理を行う。
また、本実施形態において、全体処理部211は、通信部203を介して、秘匿キーワード242を管理サーバ300に送信する処理を行う。また、本実施形態において、全体処理部211は、通信部203を介して、秘匿データ232を管理サーバ300から受信する処理を行う。
また、本実施形態において、全体処理部211は、通信部203を介して、受信した秘匿データ232をデータ記憶部230に秘匿データ232として記憶する処理を行う。また、本実施形態において、全体処理部211は、データ記憶部230に記憶した秘匿データ232を読み込み、それぞれ、復号化部213と、不可逆変換部215と、準同型関数部216と、基本演算部217とに入力し、出力されたデータを平文データ231としてデータ記憶部230に記憶する処理を行う。
また、本実施形態において、全体処理部211は、平文データ231を出力部202に表示する処理を行う。さらに、全体処理部211は、管理サーバ300より、通信部203を介して受信したデータを、一時記憶部280に記憶する処理と、出力部202に表示する処理を行う。
暗号化部212は、入力されたデータを暗号化したデータを出力する処理を行う。例えば、本実施形態においては、全体処理部211からデータとデータ暗号化鍵252が入力され、暗号化したデータを出力する処理を行う。
復号化部213は、入力されたデータを復号化したデータを出力する処理を行う。例えば、本実施形態においては、全体処理部211から暗号化したデータとデータ復号化鍵253が入力され、データを復号する処理を行う。
擬似乱数生成部214は、擬似乱数を出力する処理を行う。例えば、擬似乱数生成部214は、温度、時間、電力量、等の物理現象から、乱数を出力する。本実施形態においては、擬似乱数生成部214は、全体処理部211から入力された乱数用秘密鍵251を用い、擬似乱数を出力する。
また、乱数用秘密鍵251のデータ値は新しいデータ値に更新され、再び、全体処理部211により鍵記憶部250に記憶される。例えば、本実施形態においては、全体処理部211から入力された乱数用秘密鍵251を用い、擬似乱数を出力する処理を行う。
不可逆変換部215は、入力されたデータを不可逆変換したデータを出力する処理を行う。例えば、本実施形態においては、全体処理部211から入力されたデータを固定長(hビット)の別のデータに変換し、出力する処理を行う。例えば、標準的な暗号ハッシュ関数アルゴリズムであるSHA−256の実装により、任意長の入力データを256ビットのデータへ変換する不可逆変換部215が実現できる。
準同型関数部216は、入力されたデータに対し、準同型性関数の出力結果をデータとして出力する処理を行う。ただし、準同型関数とは、関数Fと、入力変数x、入力変数yに対し、数2が成り立つ場合を示す。なお、ビット毎の排他的論理和であるXOR演算以外の演算記号で準同型性が成り立つ時も、本実施形態は同様に実施できる。
基本演算部217は、加算、減算、比較算や、AND、OR、XOR等の基本的な算術演算に関する処理を行う。
以上に示した検索クライアント200は、例えば、図5(コンピュータの概略図)に示すような、CPU501と、メモリ502と、HDD等の外部記憶装置503と、CDやDVD等の可搬性を有する記憶媒体508に対して情報を読み書きする読書装置507と、キーボードやマウス等の入力装置506と、ディスプレイ等の出力装置505と、通信ネットワークに接続するためのNIC等の通信装置504と、これらを連結するシステムバス等の内部通信線(システムバスという)と、を備えた一般的なコンピュータで実現できる。
例えば、記憶部220は、CPU501がメモリ502または外部記憶装置503を利用することにより実現可能であり、制御部210と制御部210に含まれる各処理部は、外部記憶装置503に記憶されている所定のプログラムをメモリ502にロードしてCPU501で実行することで実現可能であり、入力部201は、CPU501が入力装置506を利用することで実現可能であり、出力部202は、CPU501が出力装置505を利用することで実現可能であり、通信部203は、CPU501が通信装置504を利用することで実現可能である。
この所定のプログラムは、読書装置507を介して記憶媒体508から、あるいは、通信装置504を介してネットワークから、外部記憶装置503に記憶(ダウンロード)され、それから、メモリ502上にロードされて、CPU501により実行されるようにしてもよい。また、読書装置507を介して、記憶媒体508から、あるいは通信装置504を介してネットワークから、メモリ502上に直接ロードされ、CPU501により実行されるようにしてもよい。
図4は、管理サーバ300の機能概略図である。図示するように、管理サーバ300は、制御部310と、記憶部320と、入力部301と、出力部302と、通信部303と、を備える。
記憶部320は、データ記憶部330と、一時記憶部380とを備える。
データ記憶部330には、通信部303を介して受信したデータを特定する情報が記憶される。ここで、本実施形態においては、通信部303を介して登録クライアント100から受信した情報を、データ記憶部330にデータベース341の構成情報として記憶する処理を行う。また、データ記憶部330には、通信部303を介して受信したキーワードを特定する情報が記憶される。ここで、本実施形態においては、通信部303を介して検索クライアント200から受信した情報を、データ記憶部330に秘匿キーワード342として記憶する処理を行う。また、秘匿データの一部分のデータ長を意味する、タグ長335を記憶する。
一時記憶部380には、制御部310での処理で必要となる情報が記憶される。
制御部310は、全体処理部311と、復号化部313と、不可逆変換部315と、準同型関数部316と、基本演算部317と、を備える。
全体処理部311は、管理サーバ300における全ての処理を制御する。例えば、本実施形態において、全体処理部311は、通信部303を介して秘匿データ132を、登録クライアント100から受信する処理を行う。
また、本実施形態において、全体処理部311は、通信部303を介して受信した秘匿データ132を、データ記憶部330、データベース341の構成情報として記憶する処理を行う。また、本実施形態において、全体処理部311は、通信部303を介して秘匿キーワード342を、検索クライアント200から受信する処理を行う。また、本実施形態において、全体処理部311は、通信部303を介して受信した秘匿キーワード342を、データ記憶部330に秘匿キーワード342として記憶する処理を行う。
また、本実施形態において、全体処理部311は、データ記憶部330に記憶した秘匿キーワード342を読み込み、それぞれ、不可逆変換部315と、準同型関数部316と、基本演算部317とに入力し、出力されたデータを、通信部303を介して、検索クライアント200に送信する処理を行う。
さらに、全体処理部311は、検索クライアント200または登録クライアント100より、通信部303を介して受信したデータに関する情報を、一時記憶部380に記憶する処理と、出力部302に表示する処理を行う。
復号化部313は、入力されたデータを復号化したデータを出力する処理を行う。例えば、本実施形態においては、全体処理部311から暗号化した関数値を有するデータと関数値復号化鍵351が入力され、関数値を有するデータを復号する処理を行う。
不可逆変換部315は、入力されたデータを不可逆変換したデータを出力する処理を行う。例えば、本実施形態においては、全体処理部311から入力されたデータを固定長(hビット)の別のデータに変換し、出力する処理を行う。例えば、標準的な暗号ハッシュ関数アルゴリズムであるSHA−256関数の実装により、任意長の入力データを256ビットのデータへ変換する不可逆変換部115が実現できる。
準同型関数部316は、入力されたデータに対し、準同型関数の出力結果をデータとして出力する処理を行う。ただし、準同型関数とは、関数Fと、入力変数x、入力変数yに対し、数2が成り立つ場合を示す。なお、ビット毎の排他的論理和であるXOR演算以外の演算記号で準同型性が成り立つ時も、本実施形態は同様に実施できる。
基本演算部217は、加算、減算、比較算や、AND、OR、XOR等の基本的な算術演算に関する処理を行う。
以上に示した登録クライアント100、検索クライアント200、及び管理サーバ300は、例えば、図5(コンピュータの概略図)に示すような、CPU501と、メモリ502と、HDD等の外部記憶装置503と、CDやDVD等の可搬性を有する記憶媒体508に対して情報を読み書きする読書装置507と、キーボードやマウス等の入力装置506と、ディスプレイ等の出力装置505と、通信ネットワークに接続するためのNIC等の通信装置504と、これらを連結するシステムバス等の内部通信線(システムバスという)とを備えた一般的なコンピュータで実現できる。
例えば、記憶部120、220、320は、CPU501がメモリ502または外部記憶装置503を利用することにより実現可能であり、制御部110、210、310と制御部110、210、310に含まれる各処理部は、外部記憶装置503に記憶されている所定のプログラムをメモリ502にロードしてCPU501で実行することで実現可能であり、入力部101、201、301は、CPU501が入力装置506を利用することで実現可能であり、出力部102、202、302は、CPU501が出力装置505を利用することで実現可能であり、通信部103、203、303は、CPU501が通信装置504を利用することで実現可能である。
この所定のプログラムは、読書装置507を介して記憶媒体508から、あるいは、通信装置504を介してネットワークから、外部記憶装置503に記憶(ダウンロード)され、それから、メモリ502上にロードされて、CPU501により実行されるようにしてもよい。また、読書装置507を介して記憶媒体508から、あるいは通信装置504を介してネットワークから、メモリ502上に直接ロードされ、CPU501により実行されるようにしてもよい。
<秘匿データの登録フロー>
図12は、本実施形態において、ネットワーク400を経由し、登録クライアント100が、秘匿データ132を、管理サーバ300へ登録する処理を示すシーケンス図である。シーケンス1は登録クライアント100が実行する処理であり、シーケンス2はシーケンス1と同期して管理サーバ300が実行する処理である。
登録クライアント100は、入力部101を経由し、ユーザから入力された情報を平文データ131として、記憶部120へ記憶する処理を行う(S1202)。登録クライアント100は、制御部110により、秘匿データ132を作成し、記憶部120へ記憶する処理を行う(S1203)。登録クライアント100は、通信部103から、ネットワーク400を経由し、秘匿データ132を、管理サーバ300へ、送信する処理を行う(S1204)。
管理サーバ300は、通信部303から、ネットワーク400を経由し、登録クライアント100が送信した秘匿データ132を受信する処理を行う(S1205)。管理サーバ300は、制御部310により、受信した秘匿データ132を、データベース341の構成情報として、記憶部320へ記憶する処理を行う(S1206)。管理サーバ300は、秘匿データ132の登録処理の成否を、通信部303から、ネットワーク400を経由し、登録サーバへ送信する処理を行う(S1207)。
登録クライアント100は、通信部103から、ネットワーク400を経由し、管理サーバ300が送信した秘匿データ132の登録処理の成否を受信する処理を行う(S1208)。登録クライアント100は、出力部102を経由し、ユーザに、登録処理の成否を含む登録情報について、表示する処理を行う(S1209)。
なお、必ずしも上記に記述された手順を全て処理する必要はない。例えば、S1203の処理手順を省いてもよい。
<秘匿データの検索フロー>
図13は、本実施形態において、ネットワーク400を経由し、検索クライアント200が送信した秘匿キーワード242を用い、管理サーバ300が、データベース341を検索する処理を示すシーケンス図である。シーケンス1は検索クライアント200が実行する処理であり、シーケンス2はシーケンス1と同期して管理サーバ300が実行する処理である。
検索クライアント200は、入力部201を経由し、ユーザから入力された情報を平文キーワード241として、記憶部220へ記憶する処理を行う(S1302)。検索クライアント200は、制御部210により、秘匿キーワード242を作成し、記憶部220へ記憶する処理を行う(S1303)。検索クライアント200は、通信部203から、ネットワーク400を経由し、秘匿キーワード242を、管理サーバ300へ送信する処理を行う(S1304)。
管理サーバ300は、通信部303から、ネットワーク400を経由し、検索クライアント200が送信した秘匿キーワード242を受信する処理を行う(S1305)。管理サーバ300は、制御部310により、データベース341から、秘匿キーワード342に関係する秘匿データを検索する処理を行う(S1306)。管理サーバ300は、秘匿キーワード342に該当する検索結果(秘匿データを含む場合と含まない場合がある)を、通信部303から、ネットワーク400を経由し、検索サーバへ送信する処理を行う(S1307)。
検索クライアント200は、通信部203から、ネットワーク400を経由し、管理サーバ300が送信した、秘匿キーワード242に該当する検索結果を受信する処理を行う(S1308)。
秘匿データが検索結果に含まれる場合、検索クライアント200は、制御部210により、検索結果に誤検索が含まれていないか、誤検索の検知処理を行う(S1309)。検索結果から、誤検索と判断された秘匿データとそれに関連するデータを除く(S1310)。
秘匿データが検索結果に含まれる場合、検索クライアント200は、制御部210により、秘匿キーワード242に該当する検索結果から、平文データ231を復元する(S1311)。検索クライアント200は、出力部202を経由し、抽出した平文データ231を記憶部220に記憶する。また、抽出した平文データ231を、出力部202に表示する処理を行ってもよい(S1312)。
なお、必ずしも上記に記述された手順を全て処理する必要はない。例えば、S1309とS1310の処理手順を省いてもよい。
<秘匿データの生成方法>
登録クライアント100における秘匿データ132の生成方法の処理手順を図6と図7を用いて示す。
登録クライアント100の全体処理部111は、鍵記憶部150から乱数用秘密鍵151とデータ暗号化鍵152、データ記憶部130から初期ベクトル136、タグ長135を取得する。登録クライアント100の全体処理部111は、秘匿データ132の生成に必要な作業領域を一時記憶部180に確保する。
登録クライアント100の全体処理部111は、平文データ131を取得し、暗号化部112が処理可能なサイズに分割する。例えば、暗号化部112が共通鍵暗号AESを実装している場合、図6(b)に示すように、平文データMをM1、M2、……Mnの128ビット毎のブロックに分割する。
登録クライアント100の全体処理部111は、初期ベクトル136、データ暗号化鍵151、分割されたn個の平文データ131を暗号化部112に入力し、出力されたn個の中間暗号化データC1、C2、……Cnを取得する。平文データ131の暗号化では、先に作成した中間暗号化データを利用し、次の中間暗号化データを作成する。例えば、図6(b)に示すように以前の中間暗号化データと平文データ131の排他的論理和(xor算)を計算したデータを暗号化し、次の中間暗号化データを作成する。従って、ブロックMnに対応する中間暗号化データCnには、平文における他のブロックM1、M2、……Mn−1の内容が反映されている。
登録クライアント100の全体処理部111は、擬似乱数生成部114に初期ベクトル136と乱数用秘密鍵を入力し、n個分の中間暗号化データに用いる乱数を生成する。例えば、図6上側の図6(a)に示すように、初期ベクトル136と定数を連結したデータを、乱数用秘密鍵K2とともに擬似乱数生成部(RNG)114に入力し、128ビット毎のn個分の乱数R1、R2、……Rnを生成する。
登録クライアント100の全体処理部111は、準同型関数部116にn個目の乱数Rnを入力し、出力されたデータを関数値Xとして取得する。例えば、図7に示すように、128ビットの乱数を準同型関数部116に入力し、96ビットの関数値を得る。
登録クライアント100の全体処理部111は、不可逆変換部115に関数値Xを入力し、出力されたデータを不可逆変換値Hとして取得する。例えば、不可逆変換部115がハッシュ関数SHA256を実装している場合、96ビットの関数値を256ビットのハッシュ値(不可逆変換値)に変換する。例えば、図7に示すように、256ビットのハッシュ値のうち、最下位32ビットを全体処理部111は抽出し、秘匿データ用の検索タグDn+1を得る。その結果、元のデータよりもデータサイズが小さい検索用のデータが得られる。
上記の処理によって生成された暗号文のフォーマットを図14に示す。暗号文は、ヘッダ部分である8ビットのNonce、平文を構成する各ブロックを乱数によって暗号化した暗号文本体、及び乱数の準同型関数値のハッシュ値である検索タグから構成される。
登録クライアント100の全体処理部111は、不可逆変換値Hから、タグ長135に記録されたビット長を秘匿データ用の検索タグDn+1として取得する。例えば、図7に示すように、256ビットのハッシュ値のうち、最下位32ビットを全体処理部が抽出し、照合データD'n+1を得る。なお、不可逆変換値Hから、抽出するビットは最下位ビットからに限らず、最上位ビットから抽出してもよく、既定のビットを抽出、あるいはランダムに各ビットを抽出してもよい。また、選択するビット長も任意である。
登録クライアント100の全体処理部111は、基本演算部117にn個分の中間暗号化データと乱数を入力し、基本演算部117は、以下の数3に示すように、それぞれの排他的論理和(XOR算)を計算し、出力結果D1、D2、……Dnを暗号文本体として取得する。
(数3) Di=Ci xor Ri(i=1、・・・n)
登録クライアント100の全体処理部111は、初期ベクトル136と暗号文本体D1、D2、……Dnと、検察タグDn+1を連結し、これを秘匿データ132としてデータ記憶部130に格納する。
このように、秘匿データの生成において、秘匿データ用の検索タグDn+1を不可逆変換値Hから抽出して作成することにより、秘匿データのサイズを小さく抑えることができる。例えば、図7に従って、128ビットの平文から秘匿データを作成した場合、初期ベクトルのサイズ(仮に32ビットとする)に、暗号文本体の128ビットと秘匿データの32ビットを合計し、192ビット程度ですむ。
一方で、秘匿データ用の検索タグのサイズを小さくすると、検索タグにおける情報量が十分に足りず、管理サーバにおける誤検索の発生確率が高まるという副作用も生じる。この副作用を抑えるための、本実施例では、誤検索の検知手段について図10を用いて後述する。
なお、上記の秘匿データを作成する手順は、必ずしも上記に記述された通りの順序で処理する必要はなく、異なる順序で実施してもよい。
<秘匿キーワードの生成方法>
検索クライアント200における秘匿キーワード242の生成方法の処理手順を、図8を用いて示す。
検索クライアント200の全体処理部211は、鍵記憶部250から乱数用秘密鍵251、データ暗号化鍵252と関数値暗号化鍵254を取得し、データ記憶部230から初期ベクトル236を取得する。検索クライアント200の全体処理部211は、秘匿キーワード242の生成に必要な作業領域を一時記憶部280に確保する。
検索クライアント200の全体処理部211は、平文キーワード241を取得し、暗号化部212が処理可能なサイズに分割する。例えば、図6(b)における平文データ131の暗号化同様、128ビット毎に平文キーワードMをM1、M2、……Mnに分割する。
検索クライアント200の全体処理部211は、初期ベクトル236、データ暗号化鍵252、分割された平文キーワード241を暗号化部212に入力し、出力されたn個の中間暗号化キーワードC1、C2、……Cnを取得する。
平文キーワード241の暗号化は、平文データ131の暗号化と同様、先に作成した中間暗号化キーワードを利用し、次の中間暗号化キーワードを作成する。例えば、図6下側の図6(b)に示すように、以前の中間暗号化キーワードと平文キーワード241をxorしたデータを暗号化し、次の中間暗号化キーワードを作成する。
検索クライアント200の全体処理部211は、擬似乱数生成部214に初期ベクトル(W0)236と乱数用秘密鍵(K2)251を入力し、n番目の中間暗号化キーワードCnとのxorに用いる1個分の乱数R'nを生成する。
検索クライアント200の全体処理部211は、準同型関数部216に乱数R'nを入力し、出力されたデータを関数値Xとして取得する。例えば、図8に示すように、128ビットの乱数R'nを準同型関数部216に入力し、96ビットの関数値Xを得る。
検索クライアント200の全体処理部211は、関数値暗号化鍵(K3)254と関数値Xを暗号化部212に入力し、出力されたデータを秘匿キーワード用の検索タグWn+1として取得する。例えば、図8に示すように、暗号化部212が96ビットの関数値Xをデータ暗号化鍵(K1)252と初期ベクトル(W0)236を用い、128ビットの暗号文を出力し、それを秘匿キーワード用の検索タグWn+1とする。
検索クライアント200の全体処理部211は、基本演算部217にn個目の中間暗号化キーワードCnと乱数R'nを入力し、基本演算部217はその排他的論理和(XOR算)を計算し、出力結果Wnを暗号化キーワード本体として取得する。
検索クライアント200の全体処理部211は、初期ベクトルW0、暗号化キーワード本体Wnと秘匿キーワード用の検察タグWn+1を連結し、これを秘匿キーワード242としてデータ記憶部230に格納する。
全体処理部は、以下の数4に示すように、n番目の中間暗号化キーワードCnと乱数R'nの排他的論理和(XOR算)をとったデータを暗号化キーワード本体Wnとする。
(数4) Wn=Cn xor R'n
これら秘匿キーワード用の検索タグWn+1と暗号化キーワード本体Wnに、秘匿キーワード用の索タグを連結したデータを秘匿キーワード242とする。
このように、秘匿キーワードの生成において、暗号化キーワードのブロック数がn個ある場合でも、秘匿キーワードは2ブロック分の暗号文のサイズに抑えることができる。例えば、図7に従って、12800(n=100)ビットの平文から秘匿キーワードを作成した場合に、秘匿キーワードは256ビット(128ビット2個分)程度ですむ。
なお、上記の秘匿キーワードを作成する手順は、必ずしも上記に記述された通りの順序で処理する必要はなく、異なる順序で実施してもよい。
<秘匿データの検索方法>
管理サーバ300における秘匿データの検索方法の処理手順を、図9を用いて示す。具体的には、管理サーバ300は、秘匿データと秘匿キーワード342を用い、平文データと平文キーワード241が同一であるかを検知する処理手順を示す。
管理サーバ300の全体処理部311は、鍵記憶部350から関数値復号鍵354、データ記憶部330から秘匿キーワード342、タグ長335、データベース341内に格納されている秘匿データを取得する。管理サーバ300の全体処理部311は、秘匿データの検索に必要な作業領域を一時記憶部380に確保する。
管理サーバ300の全体処理部311は、秘匿データにおける暗号文本体を取得し、暗号化部112が処理したサイズに分割されたブロックのうち、n番目のブロックを取り出す。例えば、秘匿データDをD0、D1、D2、……Dn、Dn+1と分割されたブロックの集合とみなし、データDnを取り出す。
管理サーバ300の全体処理部311は、秘匿キーワード342における暗号化キーワード本体を取得する。例えば、秘匿キーワードWをW0、Wn、Wn+1と3分割されたブロックの集合とみなし、2番目のデータWnを取り出す。
管理サーバ300の全体処理部311は、基本演算部317に暗号文本体Dnと暗号化キーワードWnを入力し、基本演算部317はその排他的論理和(XOR算)を計算し、数5に沿って、出力結果を取得する。
(数5) Dn xor Wn=(Cn xor Rn)xor(Cn xor R'n)
ここで、平文データと平文キーワードの値が同じである場合、それらを暗号化した中間暗号化データと中間暗号文の値が等しいため、以下の数6が導ける。
(¬(A xor B)=A・B+¬A・¬Bより、但し¬は否定又は補集合)
(数6) Dn xor Wn = Rn xor R'n
即ち、乱数(RnとR'n)の情報のみが数6に残される。
管理サーバ300の全体処理部311は、基本演算部317の出力結果を準同型関数部316に入力し、準同型関数部316の出力結果である関数値Yを取得する。例えば、図9に示すように、暗号化データ本体におけるn番目の128ビットのブロックDnと128ビットの秘匿キーワード本体との排他的論理和(XOR)をとり、その値を準同型関数部316に入力し、以下の数7に示すように、例えば96ビットの関数値Yを得る。
(数7) Y=F(Dn xor Wn)
数6が成り立つ場合、数7から以下の数8が導ける。
(数8) Y=F(Rn xor R'n)
管理サーバ300の全体処理部311は、秘匿キーワード342における秘匿キーワードの検索タグを取得する。例えば、秘匿キーワードWをW0、Wn、Wn+1と3分割されたブロックの集合とみなし、3番目のデータWn+1を取り出す。
管理サーバ300の全体処理部311は、関数値復号化鍵(K3)354、秘匿キーワードの検索タグWn+1を復号化部313に入力し、復号された関数値Xを取得する。関数値Xは、乱数Rnと数2における準同型関数Fを用い、以下の数9で表わされる。
(数9) X=F(Rn)
管理サーバ300の全体処理部311は、基本演算部317に関数値Xと関数値Yを入力し、基本演算部317はその排他的論理和(XOR算)を計算し、出力された関数値Zを取得する。関数値Zに対しては以下に示す数10が成り立つ。
(A xor (A xor B)=A・¬(A xor B)+¬A・(A xor B)=A・B+¬A・B=Bより、データ(B)に他のデータ(A)による排他的論理和の演算を2度施すと元のデータ(B)が得られる)
(数10)
Z= X xor Y
= F(Rn)xor(F(Rn xor R'n))
= F(Rn)xor(F(Rn)xor F(R'n)) (数2より)
= F(R'n)
管理サーバ300の全体処理部311は、不可逆変換部315に関数値Zを入力し、出力されたデータを不可逆変換値Hとして取得する。例えば、図9に示すように、不可逆変換部315がハッシュ関数SHA256を実装している場合、96ビットの関数値Xと関数値Yの排他的論理和の値を256ビットのハッシュ値(不可逆変換値)に変換する。
管理サーバ300の全体処理部311は、不可逆変換値Hから、タグ長335に記録されたビット長を照合データSとして取得する。例えば、図9に示すように、256ビットのハッシュ値のうち、最下位32ビットを全体処理部が抽出し、照合データD'n+1を得る。なお、不可逆変換値Hから、抽出するビットは最下位ビットからに限らず、最上位ビットから抽出してもよく、既定のビットを抽出、あるいはランダムに各ビットを抽出してもよい。また、選択するビット長も任意である。
管理サーバ300の全体処理部311は、秘匿データにおける秘匿データの検索タグを取得する。例えば、秘匿データDにおけるデータDn+1を取り出す。
管理サーバ300の全体処理部311は、基本演算部317に照合データDと秘匿データの検索タグを入力し、基本演算部317はその比較をし、同一であればTRUE(=1)を、同一でなければFALSE(=0)を出力する。
最後に、秘匿データの検索タグDn+1と照合データD'n+1を比較し、同一であるならば検索に該当、異なれば検索に非該当と判断する。
なお、上記の秘匿データを検索する手順は、必ずしも上記に記述された通りの順序で処理する必要はなく、異なる順序で実施してもよい。
<秘匿データの誤検索の検知方法>
検索タグの大きさによっては、検索結果に誤りが含まれる可能性がある。例えば、不可逆変換部115の出力するデータが一様に分布するとしたとき、秘匿データの検索タグを8ビットにした場合、1/256の確率で不可逆変換値の値が衝突してしまうため、平文データと平文キーワードの値が異なる場合にも、同一であると誤判断してしまう。即ち、正しい(平文キーワードと等しい平文データに相当する)検索結果に加え、誤った検索結果(平文データと平文キーワードの値が異なる)が含まれてしまう。同様に、検索タグを8ビットから16ビットに変更した場合、誤検索の確率は1/65536に低下する。不可逆変換値そのもの(例えば、256ビット)を秘匿データの検索タグとして利用した場合は、誤検索が発生する確率は漸近的にはほぼ0(真に0ではない)であるが、秘匿データが肥大化し、管理サーバのストレージを圧迫してしまう。そこで、検索クライアントにおいて、この誤検索を検知する手順を以下に説明する。
検索クライアント200における秘匿データ232の誤検知の処理手順を、図10を用いて示す。具体的には、検索クライアント200は、秘匿データ232と秘匿キーワード242を用い、平文データと平文キーワード241が同一であるかを検知する処理手順を示す。
検索クライアント200の全体処理部211は、鍵記憶部250から乱数用秘密鍵(K2)254、データ記憶部230から初期ベクトル(D0)236、一時記憶部280から中間暗号化キーワード(C1〜Cn)を取得する。
検索クライアント200の全体処理部211は、秘匿データ232の誤検知に必要な作業領域を一時記憶部280に確保する。
検索クライアント200の全体処理部211は、秘匿データ232における初期ベクトル236を取得する。例えば、秘匿データDをD0、D1、D2、……Dn、Dn+1と分割されたブロックの集合とみなし、初期ベクトルD0を取り出す。
検索クライアント200の全体処理部211は、擬似乱数生成部214に初期ベクトル236と乱数用秘密鍵254を入力し、暗号文本体に用いる乱数を生成する。例えば、図6上側の図6(a)に示すように、初期ベクトル236と定数を連結したデータを、乱数用秘密鍵(K2)254と共に擬似乱数生成部214に入力し、128ビット毎のn個分の乱数R1、R2、……Rnを生成する。
図15に、以下に述べる検索誤りの検知処理の概要を示す。
検索クライアント200の全体処理部211は、基本演算部217に暗号文本体と乱数を入力し、基本演算部217はそれぞれの排他的論理和(XOR算)を計算し、出力結果C'1、C'2、……C'nを中間暗号化データとして取得する。C'iと、Di及びRiとの間には以下の数11に示す関係が成り立つ。
(数11) C'i = Di xor Ri (i=1、・・・n)
平文データと平文キーワードの値が等しい場合は、それらの中間暗号文と中間暗号化キーワードの値が等しい。
そこで、数3と数11より、Di=Ci xor Ri、C'i =Di xor Ri=(Ci xor Ri) xor Ri=Ciであるので、C'i =Ciであれば、平文データと平文キーワードの値が等しいとみなせる。検索クライアント200は、これを確認する。
検索クライアント200の全体処理部211は、基本演算部217に中間暗号化データと中間暗号化キーワードを入力し、基本演算部217はそれらが等しいかを判定する。基本演算部217は、同一(C'i =Ci)であればTRUE(=1)を、異なればFALSE(=0)を出力する。全体処理部は、FALSEが返ってきた場合、誤検索が発生したと判断する。
なお、上記の誤検索を検知する手順は、必ずしも上記に記述された通りの順序で処理する必要はなく、異なる順序で実施してもよい。
以上に述べたように、本実施例の検索処理では、平文に対応する暗号文が一致するかどうかは、暗号化に用いた乱数から生成される検索タグが一致するかどうかを判定している。平文を暗号化して中間暗号を生成するときに用いた乱数は、暗号化したまま行われる本実施例の検索処理における平文の一致を特徴づける量である。即ち、この乱数から生成される検索タグは、平文を直接反映したものではないが、平文に対応する量となっている。
また、以上に述べたように、本実施例における検索タグを用いた検索処理は、nビットの検索タグを用いて1/2の精度で、1次検索がサーバ側で行われ(Precision(検索結果の適合率)<1)、データを復号して比較(中間暗号レベルで比較可能)する2次検索がクライアント側で行われる(最終的にPrecisionを1にする)。
<秘匿データの復号方法>
検索クライアント200における秘匿データ232の復号方法の処理手順を、図11を用いて示す。
検索クライアント200の全体処理部211は、鍵記憶部250から乱数用秘密鍵251とデータ復号化鍵253、データ記憶部230から初期ベクトル236を取得する。
検索クライアント200の全体処理部211は、秘匿データ232の復号に必要な作業領域を一時記憶部280に確保する。
検索クライアント200の全体処理部211は、秘匿データ232における初期ベクトル236を取得する。例えば、秘匿データDをD0、D1、D2、……Dn、Dn+1と分割されたブロックの集合とみなし、初期ベクトルD0を取り出す。
検索クライアント200の全体処理部211は、擬似乱数生成部214に初期ベクトル236と乱数用秘密鍵251を入力し、暗号文本体に用いるn個分の乱数を生成する。例えば、図6上側の図6(a)に示すように、初期ベクトル236と定数を連結したデータを、乱数用秘密鍵251と共に擬似乱数生成部214に入力し、128ビット毎のn個分の乱数R1、R2、……Rnを生成する。
検索クライアント200の全体処理部211は、基本演算部217に暗号文本体と乱数を入力し、基本演算部217はそれぞれの排他的論理和(XOR算)を計算し、出力結果C'1、C'2、……C'nを中間暗号化データとして取得する。
検索クライアント200の全体処理部211は、初期ベクトル236、データ復号化鍵253、n個の中間暗号化データを復号化部に入力し、出力されたn個の平文データM1、M2、……Mnを取得する。中間暗号化データの復号は、例えば、図11に示すように以前の中間暗号化データと平文データをxorしたデータを平文データ231としてデータ記憶部230に格納する。
なお、秘匿データの復号手順は、必ずしも上記に記述された通りの順序で処理する必要はなく、異なる順序で実施してもよい。
100:登録クライアント、200:検索クライアント、300:管理サーバ、400:ネットワーク、500:コンピュータ、101、201、301:入力部、102、202、302:出力部、103、203、303:通信部、110、210、310:制御部、111、211、311:全体処理部、112、212:暗号化部、213、313:復号化部、114、214:擬似乱数生成部、115、215、315:不可逆変換部、116、216、316:準同型関数部、117、217、317:基本演算部、120、220、320:記憶部、130、230、330:データ記憶部、131、231:平文データ、132、232:秘匿データ、241:平文キーワード、242、342:秘匿キーワード、341:データベース、150、250、350:鍵記憶部、151、251:乱数用秘密鍵、152、252:データ暗号化鍵、253:データ復号化鍵、254、354:関数値暗号化鍵、135、335:タグ長、136,236:初期ベクトル、180、280、380:一時記憶部、501:CPU(Central Processing Unit)、502:メモリ、503:外部記憶装置、508:記憶媒体、507:読書装置、506:入力装置、505:出力装置、504:通信装置、509:内部通信線

Claims (8)

  1. 登録クライアントと検索クライアントと管理サーバがネットワークで接続された検索可能暗号処理システムであって、
    前記登録クライアントは、登録用の平文データを暗号化した秘匿データを作成する手段を有し、
    前記管理サーバは、検索に用いる検索タグを含む秘匿データを格納する手段を有し、
    前記登録クライアントは、更に、データ記憶部に格納されたタグ長に従って、秘匿データの検索タグの長さを決定し、秘匿データの検索タグを作成する手段を有し、
    前記登録クライアントが初期ベクトルを用いて乱数を生成し、
    秘匿データが前記初期ベクトルを含み、
    前記検索クライアントが検索用の平文キーワードを暗号化した暗号化キーワードを作成し、前記暗号化キーワードの一部を乱数でマスクしたデータを秘匿キーワードに含めることにより、検索用の平文キーワードを暗号化した秘匿キーワードを作成して、ネットワーク経由で前記管理サーバに送信し、ネットワーク経由で送信された検索結果を前記管理サーバから受信し、
    前記管理サーバがネットワーク経由で前記秘匿キーワードを受信し、秘匿データと秘匿キーワードの検索を行い、検索結果の一部に秘匿データを含め、ネットワーク経由で、前記検索クライアントに送信すること、
    を特徴とする検索可能暗号処理システム。
  2. 前記検索可能暗号処理システムにおいて、
    前記登録クライアントが平文データを暗号化した中間暗号化データを作成し、
    前記乱数を用いて中間暗号化データをマスクした暗号文本体を作成し、
    前記秘匿データが前記暗号文本体を含むこと、
    を特徴とする請求項記載の検索可能暗号処理システム。
  3. 前記検索可能暗号処理システムにおいて、
    前記検索クライアントが前記秘匿データに埋め込まれた前記初期ベクトルを用いて、前記登録クライアントが生成した前記乱数と同一の乱数を生成すること、
    を特徴とする請求項記載の検索可能暗号処理システム。
  4. 前記検索可能暗号処理システムにおいて、
    前記検索クライアントが前記秘匿データに埋め込まれた前記初期ベクトルを用いて、前記登録クライアントが生成した前記乱数を生成し、
    前記暗号文本体をマスクした前記乱数のマスクを解除すること、
    を特徴とする請求項記載の検索可能暗号処理システム。
  5. 前記検索可能暗号処理システムにおいて、
    前記検索クライアントが前記乱数のマスクを解除した前記暗号文本体と、暗号化キーワードを比較すること、
    を特徴とする請求項記載の検索可能暗号処理システム。
  6. 前記登録クライアントが、データ記憶部に格納されたタグ長と異なる長さをもつ、秘匿データの検索タグを作成すること、
    を特徴とする請求項1記載の検索可能暗号処理システム。
  7. 登録クライアントと検索クライアントと管理サーバがネットワークで接続されたシステムにおける検索可能暗号処理方法であって、
    前記登録クライアントは、
    平文データを暗号化した中間暗号化データを作成し、
    乱数を用いて中間暗号化データをマスクした暗号文本体を作成し、
    秘匿データに前記暗号文本体を含めることにより、
    登録用の平文データを暗号化した秘匿データを作成し、
    前記管理サーバは、検索に用いる検索タグを含む秘匿データを格納し、
    前記登録クライアントは、更に、初期ベクトルを用いて乱数を生成し、データ記憶部に格納されたタグ長に従って、秘匿データの検索タグの長さを決定し、秘匿データの検索タグを作成
    前記検索クライアントが前記秘匿データに埋め込まれた初期ベクトルを用いて、前記乱数と同一の乱数を生成すること、
    を特徴とする検索可能暗号処理方法。
  8. 前記検索可能暗号処理方法において、
    前記検索クライアントが前記乱数のマスクを解除した前記暗号文本体と、暗号化キーワードを比較すること、
    を特徴とする請求項記載の検索可能暗号処理方法。
JP2013165187A 2013-08-08 2013-08-08 検索可能暗号処理システム及び方法 Active JP6144992B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2013165187A JP6144992B2 (ja) 2013-08-08 2013-08-08 検索可能暗号処理システム及び方法
EP14179580.7A EP2894810B1 (en) 2013-08-08 2014-08-01 Searchable Code Processing System and Method
US14/451,469 US9892211B2 (en) 2013-08-08 2014-08-05 Searchable code processing system and method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013165187A JP6144992B2 (ja) 2013-08-08 2013-08-08 検索可能暗号処理システム及び方法

Publications (3)

Publication Number Publication Date
JP2015035072A JP2015035072A (ja) 2015-02-19
JP2015035072A5 JP2015035072A5 (ja) 2016-06-09
JP6144992B2 true JP6144992B2 (ja) 2017-06-07

Family

ID=51266139

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013165187A Active JP6144992B2 (ja) 2013-08-08 2013-08-08 検索可能暗号処理システム及び方法

Country Status (3)

Country Link
US (1) US9892211B2 (ja)
EP (1) EP2894810B1 (ja)
JP (1) JP6144992B2 (ja)

Families Citing this family (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015163822A1 (en) * 2014-04-23 2015-10-29 Agency For Science, Technology And Research Method and system for generating / decrypting ciphertext, and method and system for searching ciphertexts in a database
JP2016224400A (ja) * 2015-05-29 2016-12-28 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカPanasonic Intellectual Property Corporation of America 類似情報検索方法、端末装置及び類似情報検索システム
US10673614B2 (en) * 2015-10-09 2020-06-02 Mitsubishi Electric Corporation Secret search system, management device, secret search method and computer readable medium
CN107113177B (zh) 2015-12-10 2019-06-21 深圳市大疆创新科技有限公司 数据连接、传送、接收、交互的方法及系统,及存储器、飞行器
WO2017122326A1 (ja) 2016-01-14 2017-07-20 三菱電機株式会社 秘匿検索システム、秘匿検索方法及び秘匿検索プログラム
WO2017122352A1 (ja) 2016-01-15 2017-07-20 三菱電機株式会社 暗号化装置、暗号化方法及び暗号化プログラム
CN108370312B (zh) 2016-01-18 2021-01-05 三菱电机株式会社 加密装置、检索装置、计算机能读取的记录介质、加密方法和检索方法
WO2017168798A1 (ja) * 2016-03-30 2017-10-05 株式会社日立ソリューションズ 暗号化検索インデックスマージサーバ、暗号化検索インデックスマージシステム、及び暗号化検索インデックスマージ方法
WO2018003953A1 (ja) * 2016-06-29 2018-01-04 株式会社プロスパークリエイティブ データマスキングシステム
WO2018042071A1 (en) * 2016-08-30 2018-03-08 Nokia Technologies Oy Controlling transmission of information on radio links used in aggregation
US10812252B2 (en) 2017-01-09 2020-10-20 Microsoft Technology Licensing, Llc String matching in encrypted data
US11139952B2 (en) 2017-01-18 2021-10-05 Mitsubishi Electric Corporation Homomorphic computation device, encryption system, and computer readable medium
WO2018198192A1 (ja) 2017-04-25 2018-11-01 三菱電機株式会社 検索装置、検索システム、検索方法及び検索プログラム
CN107196918B (zh) * 2017-04-27 2020-10-30 北京小米移动软件有限公司 一种匹配数据的方法和装置
US11196539B2 (en) 2017-06-22 2021-12-07 Microsoft Technology Licensing, Llc Multiplication operations on homomorphic encrypted data
US10541805B2 (en) 2017-06-26 2020-01-21 Microsoft Technology Licensing, Llc Variable relinearization in homomorphic encryption
US10749665B2 (en) 2017-06-29 2020-08-18 Microsoft Technology Licensing, Llc High-precision rational number arithmetic in homomorphic encryption
CN107357632A (zh) * 2017-07-17 2017-11-17 郑州云海信息技术有限公司 一种命令行解析方法及装置
JP6840692B2 (ja) * 2018-02-22 2021-03-10 株式会社日立製作所 計算機システム、接続装置、及びデータ処理方法
EP3584991A1 (en) * 2018-06-18 2019-12-25 Koninklijke Philips N.V. Device for data encryption and integrity
US11764940B2 (en) 2019-01-10 2023-09-19 Duality Technologies, Inc. Secure search of secret data in a semi-trusted environment using homomorphic encryption
EP4040934A4 (en) * 2019-09-30 2022-10-12 Fuji Corporation DATA MANAGEMENT SYSTEM

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7139679B1 (en) * 2002-06-27 2006-11-21 Cisco Technology, Inc. Method and apparatus for cryptographic protection from denial of service attacks
WO2005101975A2 (en) * 2004-04-22 2005-11-03 Fortress Gb Ltd. Accelerated throughput synchronized word stream cipher, message authenticator and zero-knowledge output random number generator
US7636439B2 (en) * 2004-09-10 2009-12-22 Hitachi Kokusai Electric, Inc. Encryption method, encryption apparatus, data storage distribution apparatus and data delivery system
US7856100B2 (en) * 2005-12-19 2010-12-21 Microsoft Corporation Privacy-preserving data aggregation using homomorphic encryption
US20090119510A1 (en) * 2007-11-06 2009-05-07 Men Long End-to-end network security with traffic visibility
JP5285778B2 (ja) * 2009-08-03 2013-09-11 日本電信電話株式会社 関数暗号応用システム及び方法
CN102713996A (zh) * 2010-01-13 2012-10-03 三菱电机株式会社 隐匿检索系统以及公开参数生成装置以及加密装置以及用户秘密密钥生成装置以及查询发布装置以及检索装置以及计算机程序以及隐匿检索方法以及公开参数生成方法以及加密方法以及用户秘密密钥生成方法以及查询发布方法以及检索方法
EP2525340B1 (en) * 2010-01-15 2018-06-06 Mitsubishi Electric Corporation Confidential search system and encryption processing system
US8533489B2 (en) * 2010-09-29 2013-09-10 Microsoft Corporation Searchable symmetric encryption with dynamic updating
JP5412414B2 (ja) * 2010-12-08 2014-02-12 株式会社日立製作所 検索可能暗号処理システム
JP5420085B2 (ja) * 2011-01-13 2014-02-19 三菱電機株式会社 データ処理装置及びデータ保管装置
CN103380591B (zh) * 2011-02-22 2016-03-30 三菱电机株式会社 类似度计算系统、类似度计算装置以及类似度计算方法
US8667062B2 (en) * 2011-02-22 2014-03-04 Nokia Corporation Method and apparatus for preserving privacy for appointment scheduling
WO2013080365A1 (ja) * 2011-12-01 2013-06-06 株式会社日立製作所 秘匿検索方法および秘匿検索装置
USRE48146E1 (en) * 2012-01-25 2020-08-04 Mitsubishi Electric Corporation Data search device, data search method, computer readable medium storing data search program, data registration device, data registration method, computer readable medium storing data registration program, and information processing device
KR101437033B1 (ko) * 2012-06-21 2014-11-03 기초과학연구원 저성능 디바이스의 인증 방법
WO2014109828A2 (en) * 2012-11-16 2014-07-17 Raytheon Bbn Technologies Corp. Method for secure substring search
JP2014119486A (ja) * 2012-12-13 2014-06-30 Hitachi Solutions Ltd 秘匿検索処理システム、秘匿検索処理方法、および秘匿検索処理プログラム
JP2014126865A (ja) * 2012-12-27 2014-07-07 Fujitsu Ltd 暗号処理装置および方法

Also Published As

Publication number Publication date
EP2894810B1 (en) 2020-07-15
JP2015035072A (ja) 2015-02-19
EP2894810A1 (en) 2015-07-15
US20150046450A1 (en) 2015-02-12
US9892211B2 (en) 2018-02-13

Similar Documents

Publication Publication Date Title
JP6144992B2 (ja) 検索可能暗号処理システム及び方法
JP5412414B2 (ja) 検索可能暗号処理システム
US10489604B2 (en) Searchable encryption processing system and searchable encryption processing method
JP5306465B2 (ja) セキュアなメモリに応用するメッセージ認証コードの事前計算
KR101829267B1 (ko) 암호문의 크기가 감소되는 동형 암호화 방법
Debnath et al. Brief review on journey of secured hash algorithms
US11233629B2 (en) Registration apparatus, search operation apparatus, data management apparatus
CN111010266B (zh) 消息的加解密、读写方法、装置、计算机设备和存储介质
CN106778292B (zh) 一种Word加密文档的快速还原方法
JP2008513811A (ja) 計算変換の方法及びシステム
JP6961324B2 (ja) 検索可能暗号処理システム
Sharma et al. Analysis of AES Encryption with ECC
CN108512840A (zh) 一种基于泄序加密的密文检索方法
Prasanna et al. Performance analysis of md5 and sha-256 algorithms to maintain data integrity
CN106789007B (zh) 一种基于密文检索的网络信息审查方法与系统
CN111475690B (zh) 字符串的匹配方法和装置、数据检测方法、服务器
Zhang et al. An extensive analysis of truecrypt encryption forensics
Sri et al. Concealing the Data using Cryptography
Adak et al. Dynamic Data Masking by Two-Step Encryption
Banga et al. Protecting User Credentials against SQL Injection through Cryptography and Image Steganography
JP7317261B2 (ja) 暗号化装置、復号装置、暗号化方法、暗号化プログラム、復号方法及び復号プログラム
Thewar et al. CARS: A Hybrid Security Approach to Secure Cloud Data Through Mobile Devices
Thangapalani et al. Securing Medical Image Transmission using Memetic Algorithm
Sood Physically Unclonable Functions with Confidential Computing for Enhanced Encryption of EHRs
Al-Nemri A Modified Block Cipher Encryption Based on OTP Algorithm

Legal Events

Date Code Title Description
A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A712

Effective date: 20150827

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160413

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20160413

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20170131

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170207

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170313

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170407

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: 20170425

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170512

R150 Certificate of patent or registration of utility model

Ref document number: 6144992

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150