JPWO2017061024A1 - 秘匿検索システム、管理装置、秘匿検索方法及び秘匿検索プログラム - Google Patents

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

Info

Publication number
JPWO2017061024A1
JPWO2017061024A1 JP2016526364A JP2016526364A JPWO2017061024A1 JP WO2017061024 A1 JPWO2017061024 A1 JP WO2017061024A1 JP 2016526364 A JP2016526364 A JP 2016526364A JP 2016526364 A JP2016526364 A JP 2016526364A JP WO2017061024 A1 JPWO2017061024 A1 JP WO2017061024A1
Authority
JP
Japan
Prior art keywords
search
data
encrypted
similarity
encryption
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.)
Granted
Application number
JP2016526364A
Other languages
English (en)
Other versions
JP5985123B1 (ja
Inventor
貴人 平野
貴人 平野
豊 川合
豊 川合
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Application granted granted Critical
Publication of JP5985123B1 publication Critical patent/JP5985123B1/ja
Publication of JPWO2017061024A1 publication Critical patent/JPWO2017061024A1/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/33Querying
    • G06F16/3331Query processing
    • G06F16/334Query execution
    • 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
    • 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/95Retrieval from the web
    • G06F16/951Indexing; Web crawling techniques
    • 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
    • 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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0894Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage

Abstract

準同型暗号により暗号化された保管データである保管暗号化データ(620)と、保管データの検索に用いる検索データであって準同型暗号により暗号化された検索データである検索暗号化データ(720)とを準同型演算することにより、保管データと検索データとの類似度が準同型暗号により暗号化された暗号化類似度(5041)を算出する暗号化類似度計算部(504)と、暗号化類似度(5041)を用いて類似度が閾値θ以内であるか否かを表す暗号化検索結果(5001)を生成し、検索装置に送信する暗号化結果送信部(505)とを有する。

Description

本発明は、秘匿検索システム、管理装置、秘匿検索方法及び秘匿検索プログラムに関する。
秘匿検索とは、検索対象データと検索内容とを暗号化したまま検索できる技術である。
近年、クラウドサービス等の普及により、インターネット上でのデータ管理が可能となった。しかし、インターネット上でのデータ管理には、データ管理の委託先であるクラウドのサーバがコンピュータウィルス等のマルウェアに感染すること、あるいは、サーバの管理者が不正を働くことなどによって、預けたデータが外部に漏洩する危険性がある。もしサーバに預けたデータが個人情報あるいは企業機密データであった場合、この漏洩は非常に問題である。
このようなセキュリティの脅威を回避する方法として暗号化技術がある。しかし、単純にデータを暗号化してサーバに保管するとデータの検索ができなくなるといった問題が生じる。このような問題を回避するために、従来では、検索を行うときにサーバ上に保管された暗号化データを一旦復号してから検索を行うという手法がとられてきた。しかし、データがサーバ内で一定期間平文に戻ってしまうため、セキュリティ対策として十分とはいえない。そこで、データを暗号化したまま検索可能な暗号技術である秘匿検索技術が考案され、秘匿検索技術の具体的な手法が近年多く開示されている。
非特許文献1には、秘匿検索技術における検索機能として、単純な検索である完全一致検索ができる方式が開示されている。
また、特許文献1、特許文献2、特許文献3、及び非特許文献2には、より柔軟な検索である類似度検索ができる方式が開示されている。ここから以降、類似度検索ができる秘匿検索技術を秘匿類似度検索技術と呼ぶ。特許文献1及び非特許文献2では、暗号化したまま演算が可能な準同型暗号と呼ばれる特殊な暗号技術を用いてハミング距離を効率良く計算する秘匿類似度検索技術を開示している。
また、非特許文献3、非特許文献4、非特許文献5、非特許文献6においても準同型暗号について開示されている。
秘匿類似度検索技術では、データ登録者がサーバに保管した暗号化データと、データ検索者が検索したいデータの暗号文とから、それぞれを復号することなく秘匿したまま、それぞれの平文の間の類似度を計算することができる。ここから以降、データ登録者がサーバに保管した暗号化データを保管暗号化データと呼ぶ。また、データ検索者が検索したいデータの暗号文を検索暗号化データと呼ぶ。また、平文の間の類似度の具体例としては、保管暗号化データの平文と検索暗号化データの平文とのユークリッド2乗距離などである。
サーバは、データ検索者から検索の要求、すなわち類似度計算の要求があれば、類似度を秘匿したまま計算し、その計算結果をデータ検索者に送信する。その後、データ検索者は復号することで類似度を知ることができる。このように、秘匿類似度検索技術は、検索としてのみならず、秘匿分析技術としての側面を持っている。
具体例として、データ登録者を患者、データ検索者を分析者としたとき、秘匿類似度検索技術は、患者のプライバシを保ったまま、すなわち患者の個人データを公開することなく、暗号化したまま分析できる。このため、患者は安心してデータ分析者に分析を依頼することができる。よって、このような秘匿類似度検索技術はプライバシ保護の観点からも非常に有用である。
特開2015−031935号公報 特開2013−105207号公報 国際公開第2013/038698号
D. Boneh, G. D. Crescenzo, R. Ostrovsky, and G. Persiano, "Public Key Encryption with Keyword Search", EUROCRYPT 2004, Lecture Notes in Computer Science 3027, Springer, 2004. 小暮,安田,下山,小柴,横山."準同型暗号を用いた秘匿検索",第31回 暗号と情報セキュリティシンポジウム(SCIS2014),1D3−5,2014. C. Gentry, "Fully Homomorphic Encryption Using Ideal Lattices", ACM Symposium on Theory of Computing, p.169−178, 2009. D. Boneh, E−J. Goh, and K. Nissim, "Evaluating 2−DNF Formulas on Ciphertexts", TCC 2005, Lecture Notes in Computer Science 3378, Springer, 2005. P. Paillier,"Public−Key Cryptosystems Based on Composite Degree Residuosity Classes", Eurocrypt 1999, Lecture Notes in Computer Science 1592, Springer, 1999. D. Catalano and D. Fiore, "Boosting Linearly−Homomorphic Encryption to Evaluate Degree−2 Functions on Encrypted Data", IACR Cryptology ePrint Archive: Report 2014/813.
既存の秘匿類似度検索技術の課題について説明する。
特許文献1及び非特許文献2では、暗号化したまま演算が可能な準同型暗号と呼ばれる特殊な暗号技術を用いてハミング距離を効率良く計算する秘匿類似度検索技術を開示している。ここで開示された方法では、データ検索者がデータ検索を行った結果、保管暗号化データの平文と検索暗号化データの平文との類似度を、データ検索者は平文で知ることができる。なお、サーバ上ではこの類似度の値が一切現れない。このとき、データ検索者は、検索暗号化データの平文と類似度との2つのデータから、保管暗号化データの平文を推測できる可能性がある。
具体例で説明する。保管暗号化データの平文を(0,0,0,1,1)、検索暗号化データの平文を(0,0,0)とすると、データ検索者は検索結果の類似度、すなわちハミング距離として(0,1,2)を得ることができる。具体的には、(0,0,0,1,1)を(0,0,0)で検索する場合、(0,0,0,1,1)の最初の3成分である(0,0,0)と(0,0,0)とのハミング距離(=0)、(0,0,0,1,1)の次の3成分である(0,0,1)と(0,0,0)とのハミング距離(=1)、(0,0,0,1,1)の次の3成分である(0,1,1)と(0,0,0)とのハミング距離(=2)をデータ検索者は得ることができる。
一方で、データ検索者は、検索暗号化データの平文が(0,0,0)であり、この平文(0,0,0)と保管暗号化データの平文とのハミング距離として(0,1,2)が得られたとする。このとき、データ検索者は、この保管暗号化データの平文を(0,0,0,1,1)と簡単に特定することができる。
上述したように、データ登録者を患者、データ検索者を分析者としたとき、分析者は検索データと類似度から患者のデータを推測できる可能性がある。このため、特許文献1及び非特許文献2で開示された方法を用いても、患者のプライバシを保てないという課題がある。
特許文献2では、保管暗号化データの平文に関するハッシュ値と、保管暗号化データとを関連付けて保管する平文の補助情報を使った秘匿類似度検索技術が開示されている。しかしながら、この平文の補助情報は保管暗号化データの平文の直接的な部分情報であるため、この補助情報から保管暗号化データの平文を推測される可能性がある。よって、特許文献2の方法を用いても十分な安全性を達成できないという課題がある。
特許文献3では、データ検索者に対して、類似度そのものを公開せず、類似度が閾値以内の場合のみ類似度を公開する、もしくは類似度が閾値以内か否かのみを公開する方式の秘匿類似度検索技術が開示されている。しかしながら、特許文献3においてサーバが行う類似度計算処理は、登録データの平文を使って処理するものである。このため、保管されているデータは暗号化されていないことが前提である。つまり、サーバは第三者のものではなく、データ登録者の所有物として考えられる。よって、データ登録者がサーバを所持していない状態では、プライバシを保護したまま外部に分析を依頼することはできないという課題がある。
本発明は、平文情報を一切用いることなく、保管暗号化データと検索暗号化データとから類似度計算ができ、かつ、類似度が閾値以内か否かを表す情報を出力する秘匿検索システムを提供することを目的とする。
本発明に係る秘匿検索システムは、
準同型暗号により暗号化された保管データである保管暗号化データと、前記保管データの検索に用いる検索データであって前記準同型暗号により暗号化された検索データである検索暗号化データとを準同型演算することにより、前記保管データと前記検索データとの類似度が前記準同型暗号により暗号化された暗号化類似度を算出する暗号化類似度計算部と、
前記暗号化類似度を用いて前記類似度が閾値以内であるか否かを表す暗号化検索結果を生成し、生成した前記暗号化検索結果を送信する暗号化結果送信部と
を有する管理装置と、
前記管理装置から送信された前記暗号化検索結果を復号し、復号した前記暗号化検索結果を検索結果として出力する復号部と、
前記検索結果に基づいて、前記類似度が前記閾値以内であるか否かを表す検索結果情報を出力する出力部と
を有する検索装置と
を備える。
本発明に係る秘匿検索システムは、保管暗号化データと検索暗号化データとを準同型演算することにより、平文である保管データと検索データとを用いることなく、保管データと検索データとの類似度が暗号化された暗号化類似度を算出する暗号化類似度計算部と、暗号化類似度を用いて類似度が閾値以内であるか否かを表す暗号化検索結果を生成し、生成した暗号化検索結果を送信する暗号化結果送信部とを有する管理装置を備える。また、本発明に係る秘匿検索システムは、管理装置から受信した暗号化検索結果を復号し、検索結果として出力する復号部と、検索結果に基づいて、類似度が閾値以内であるか否かを表す検索結果情報を出力する出力部とを有する検索装置を備える。よって、本発明に係る秘匿検索システムによれば、平文を用いることなく、保管暗号化データと検索暗号化データとから暗号化された暗号化類似度を算出すると共に、類似度そのものを出力することなく、類似度が閾値以内か否かを表す検索結果情報を出力することができるので、より安全性が高い秘匿検索システムを提供することができる。
実施の形態1に係る秘匿検索システム100のシステム構成図。 実施の形態1に係る鍵生成装置200のブロック構成図。 実施の形態1に係る登録装置300のブロック構成図。 実施の形態1に係る検索装置400のブロック構成図。 実施の形態1に係る管理装置500のブロック構成図。 実施の形態1に係る秘匿検索システム100の秘匿検索方法9100、秘匿検索プログラム9200の秘匿検索処理S100の流れを示すフロー図である。 実施の形態1に係る秘匿検索システム100の鍵生成処理S110を示すフローチャート。 実施の形態1に係る秘匿検索システム100の登録処理S120を示すフローチャート。 実施の形態1に係る秘匿検索システム100の検索処理S130を示すフローチャート。 実施の形態1に係る秘匿検索システム100の削除処理S140を示すフローチャート。 実施の形態2に係る管理装置500aのブロック構成図。 実施の形態2における秘匿検索システム100の検索処理S130aを示すフローチャート。 実施の形態3における秘匿検索システム100の検索処理S130bを示すフローチャート。 実施の形態4における秘匿検索システム100の検索処理S130cを示すフローチャート。 鍵生成装置200と登録装置300と検索装置400と管理装置500,500aとの各装置のハードウェア構成図。
以下、実施の形態について、図を用いて説明する。なお、各図中、互いに同一又は相当する構成部には、同一符号を付している。実施の形態の説明において、互いに同一又は相当する構成部については、その説明を適宜省略又は簡略化する。
実施の形態1.
本実施の形態では、暗号技術の一つである準同型暗号を用いた秘匿類似度検索技術について説明する。
まずは、準同型暗号とその応用について説明する。
準同型暗号は、暗号化データを復号することなく暗号化したまま四則演算が行える暗号技術である。
平文xと平文yに対して、準同型暗号を用いて暗号化したそれぞれの暗号文をE(x)とE(y)と書くことにする。
準同型暗号では、E(x)とE(y)に対して演算を行うと、平文がx+yの暗号文E(x+y)を得ることができる。これを準同型加算と呼び、本実施の形態ではこの演算を◇と表わし、E(x)◇E(y)=E(x+y)と書くことにする。
また、E(x)とE(y)に対して演算を行うと、平文がx−yの暗号文E(x−y)を得ることができる。これを準同型減算と呼び、本実施の形態ではこの演算を◆と表わし、E(x)◆E(y)=E(x−y)と書くことにする。
また、E(x)とE(y)に対して演算を行うと、平文がx×yの暗号文E(x×y)を得ることができる。これを準同型乗算と呼び、本実施の形態ではこの演算を□と表わし、E(x)□E(y)=E(x×y)と書くことにする。
また、E(x)とE(y)に対して演算を行うと、平文がx/yの暗号文E(x/y)を得ることができる。これを準同型除算と呼び、本明細書ではこの演算を■と表わし、E(x)■E(y)=E(x/y)と書くことにする。
なお、準同型暗号の中には、準同型加算及び準同型減算しかできないものと、準同型加算及び準同型減算の回数制限はないが準同型乗算及び準同型除算の回数制限があるものとがある。また、準同型加算及び準同型減算と、準同型乗算及び準同型除算共に回数制限がないものがある。
準同型暗号の応用の具体例として、サーバに保管された保管暗号化データとデータ検索者の検索暗号化データとから、暗号化したまま類似度の暗号文を計算することができる。以下の説明では、類似度の暗号文を暗号化類似度という場合がある。
まず、具体例1について説明する。具体例1の準同型暗号を用いて、(x1,x2)と(y1,y2)の間のユークリッド2乗距離の暗号文、すなわち暗号化類似度を暗号化したまま求める例について説明する。なお、(x1,x2)と(y1,y2)の間のユークリッド2乗距離は、(x1−y1)×(x1−y1)+(x2−y2)×(x2−y2)と計算して求めることができる。ただし、x1,x2,y1,y2は、整数とする。
ここで、保管暗号化データをE(x1,x2)=(E(x1),E(x2))、検索暗号化データをE(y1,y2)=(E(y1),E(y2))とする。すなわち、それぞれの暗号文は、各平文の暗号文を成分に持つベクトルである。
このとき、暗号化ユークリッド2乗距離を計算するためには、まず、T1=E(x1−y1)=E(x1)◆E(y1)及びT2=E(x2−y2)=E(x2)◆E(y2)を計算する。その後、T3=T1□T1=E((x1−y1))及びT4=T2□T2=E((x2−y2))を計算する。最後に、T3◇T4=E((x1−y1)+(x2−y2))を計算すればよい。
次に、具体例2について説明する。具体例2では、保管暗号化データE(x1,x2,x3)と検索暗号化データE(y1,y2)との暗号化類似度を求める例について説明する。具体例2の準同型暗号は、上述した具体例1の準同型暗号とは異なり、平文のベクトルを一括で暗号化でき、1つの暗号文で表現できる。
具体例2の1つ目の例では、類似度としてハミング距離を用いており、(x1,x2)と(y1,y2)とのハミング距離をS1、(x2,x3)と(y1,y2)のハミング距離をS2としている。具体例2の1つ目の例は、保管暗号化データE(x1,x2,x3)と検索暗号化データE(y1,y2)から、E(S1,S2)を効率良く計算する方法である。なお、(x1,x2)と(y1,y2)の間のハミング距離は、ユークリッド2乗距離の計算方法と同様に、(x1−y1)×(x1−y1)+(x2−y2)×(x2−y2)と計算して求めることができる。ただし、x1,x2,y1,y2は、0または1の整数とする。
また、具体例2の2つ目の例では、準同型加算及び準同型減算しかできない準同型暗号方式を用いて、保管されている平文データと検索暗号化データの平文との暗号化Tversky係数、すなわち暗号化類似度を計算する。さらに、計算した暗号化類似度から、復号後の平文の類似度がある閾値以内か否かだけがわかるような暗号文、すなわち暗号化検索結果を生成している。しかし、この具体例2の2つ目の例では、保管されている平文データと検索暗号化データの平文との暗号化類似度を求める方式であるため、セキュリティ上の安全性が低い。
***構成の説明***
以下、本実施の形態の概要について説明する。
図1は、本実施の形態に係る秘匿検索システム100のシステム構成を示す図である。
図1に示すように、秘匿検索システム100は、鍵生成装置200と、複数の登録装置300と、複数の検索装置400と、管理装置500とを備える。管理装置500aについては実施の形態2で説明する。
秘匿検索システム100では、鍵生成装置200と、複数の登録装置300と、複数の検索装置400と、管理装置500とのそれぞれがネットワーク101を経由して接続される。
ネットワーク101は、鍵生成装置200と、複数の登録装置300と、複数の検索装置400と、管理装置500とを接続する通信路である。ネットワーク101は、具体的には、インターネット、LAN(Local Area Network)であり、他の種類のネットワークが用いられてもよい。
鍵生成装置200は、準同型暗号の公開鍵及び秘密鍵のペアを作成し、ネットワーク101を介して、複数の登録装置300と、複数の検索装置400と、管理装置500とに公開鍵及び秘密鍵を送信する。なお、公開鍵及び秘密鍵は、ネットワーク101を介さず、郵送などで直接的に、複数の登録装置300と、複数の検索装置400と、管理装置500とに送信してもよい。鍵生成装置200は、複数の登録装置300と、管理装置500とには公開鍵のみを送付する。鍵生成装置200は、複数の検索装置400には公開鍵及び秘密鍵を送付する。
登録装置300は、具体的には、PC(Personal Computer)である。登録装置300は、保管暗号化データを管理装置500に登録する登録端末として動作するコンピュータである。
登録装置300は、暗号化装置及び登録装置として機能する。すなわち、登録装置300は、保管暗号化データを生成し、保管暗号化データの保管を管理装置500に要求する。
また、登録装置300は、削除要求装置として機能する。すなわち、登録装置300は、管理装置500に対して、保管されている保管暗号化データの削除を要求する。
検索装置400は、具体的には、PCである。検索装置400は、検索暗号化データを管理装置500に送信し、その後管理装置500から暗号化検索結果を受信する。そして、検索装置400は、受信した暗号化検索結果を復号する端末として動作するコンピュータである。
検索装置400は、検索要求装置として機能する。すなわち、検索装置400は、検索暗号化データを管理装置500に送信し、保管暗号化データと検索暗号化データとに関する暗号化類似度の計算を要求する。
検索装置400は、復号装置として機能する。すなわち、検索装置400は、管理装置500から返信される暗号化検索結果を復号する。
管理装置500は、登録装置300によって作成された保管暗号化データを保管する大容量の記録媒体を持つ装置である。
管理装置500は、保管装置として機能する。すなわち、管理装置500は、登録装置300から保管暗号化データの保管の要求があれば、保管暗号化データを保管する。
管理装置500は、検索実行装置として機能する。すなわち、管理装置500は、検索装置400からの検索の要求があれば、保管暗号化データと検索暗号化データとから暗号化類似度を計算し、その後暗号化類似度から暗号化検索結果を計算し、暗号化検索結果を検索装置400に送信する。
管理装置500は、削除装置として機能する。すなわち、管理装置500は、登録装置300から保管暗号化データの削除の要求があれば、保管している保管暗号化データを削除する。
なお、同じPC内に、鍵生成装置200と登録装置300と検索装置400との少なくとも2つが同時に含まれていてもよい。
保管暗号化データ及び検索暗号化データは、いずれも暗号化されている。また、暗号化類似度及び暗号化検索結果も暗号化されている。検索装置400以外の秘密鍵SKを持たない装置では、保管暗号化データ、検索暗号化データ、暗号化類似度、暗号化検索結果から有益な情報を得ることはできない。
以下、本実施の形態の構成について詳細に説明する。
図1に示したように、秘匿検索システム100は、鍵生成装置200と、登録装置300と、検索装置400と、管理装置500とを備える。以下では、鍵生成装置200の構成、登録装置300の構成、検索装置400の構成、管理装置500の構成について順番に説明する。
図2は、本実施の形態に係る鍵生成装置200のブロック構成を示す図である。
図2に示すように、鍵生成装置200は、鍵生成部201と、鍵送信部202とを備える。また、図示していないが、鍵生成装置200は、鍵生成装置200の各部で使用されるデータを記憶する記録媒体を備える。
鍵生成部201は、データを暗号化及び復号するための準同型暗号の公開鍵PKと秘密鍵SKとを生成する。秘密鍵SKは検索装置400に保管される秘密情報であるため、厳重に生成される。なお、本実施の形態では、公開鍵暗号系の準同型暗号を用いて説明しているが、共通鍵暗号系の準同型暗号を用いてもよい。このとき、鍵生成部201は、秘密鍵SK=公開鍵PKのみを生成する。この秘密鍵SKは、登録装置300と、検索装置400と、管理装置500とに厳重に保管される。
鍵送信部202は、鍵生成部201で生成された公開鍵PKを、登録装置300と、管理装置500とに送信する。また、鍵送信部202は、鍵生成部201で生成された公開鍵PKと秘密鍵SKのペアを検索装置400へ送信する。
図3は、本実施の形態に係る登録装置300のブロック構成を示す図である。
図3に示すように、登録装置300は、鍵受信部301と、鍵保管部302と、入力部303と、暗号化部304と、データ送信部305とを備える。図示していないが、登録装置300は、登録装置300の各部で使用されるデータを記憶する記録媒体を備える。
鍵受信部301は、鍵生成装置200から送信されてきた公開鍵PKを受信する。
鍵保管部302は、鍵受信部301により受信された公開鍵PKを保管する。
入力部303は、データ登録者から入力された保管データ610を受け取る。なお、本実施の形態では、保管データ610としてベクトル(x1,x2,・・・,xk)(kは、k≧1となる整数)をデータ登録者から受け取ったものとして説明する。
また、入力部303は、データ登録者から、保管データ610と同時に、その保管データ610に関する保管データ識別子を受けとってもよい。保管データ識別子は、具体的には、保管暗号化データ名、登録した時刻、データ登録者の名前など、保管データを識別できる情報であればよい。
また、入力部303は、データ登録者から、管理装置500に保管された保管暗号化データのうち、削除したい保管暗号化データを識別する削除対象データ識別子を受け取る。削除対象データ識別子は、具体的には、保管暗号化データ名、登録した時刻、データ登録者の名前など、保管データを識別できるもの情報であればよい。
暗号化部304は、鍵保管部302から公開鍵PKを読み出し、入力部303から受け取った保管データ(x1,x2,・・・,xk)に対して公開鍵PKを用いて暗号化し、保管暗号化データ620を作成する。なお、本実施の形態では、保管暗号化データ620をE(PK,x1,x2,・・・,xk)と表わすことにする。
なお、上述した具体例2の準同型暗号のように、ベクトルを一括で暗号化できる準同型暗号を用いた場合は、E(PK,x1,x2,・・・,xk)は1つの暗号化とみなすことができる。一方で、上述した具体例1の準同型暗号を用いた場合は、ベクトル成分毎に暗号化する必要がある。よって、具体例1の準同型暗号を用いた場合は、E(PK,x1,x2,・・・,xk)は、各ベクトル成分の暗号文のベクトル(E(PK,x1),E(PK,x2),・・・,E(PK,xk))とみなされる。
データ送信部305は、暗号化部304から受け取った保管暗号化データE(PK,x1,x2,・・・,xk)を管理装置500へ送信する。もし、データ登録者から保管データと同時に保管データ識別子も入力されていた場合は、保管暗号化データと保管データ識別子との両方を管理装置500へ送信する。
また、データ送信部305は、入力部303から受け取った削除対象データ識別子を管理装置500へ送信する。
図4は、本実施の形態に係る検索装置400のブロック構成を示す図である。
図4に示すように、検索装置400は、受信部401と、鍵保管部402と、入力部403と、暗号化部404と、検索データ送信部405と、復号部406と、出力部407とを備える。図示していないが、検索装置400は、検索装置400の各部で使用されるデータを記憶する記録媒体を備える。
受信部401は、鍵生成装置200から送信されてきた公開鍵PKと秘密鍵SKとのペアを受信する。また、受信部401は、管理装置500から暗号化検索結果5001を受信する。なお、暗号化検索結果5001は、類似度計算の内容によって、1つの暗号文もしくは複数の暗号文である場合がある。暗号化検索結果5001は、保管データと検索データとの類似度が閾値以内であるか否かを表す情報である。ただし、暗号化検索結果5001は、保管データと検索データとの類似度が閾値以内であるか否かを表す情報が暗号化されたものであり、類似度の値そのものは含まれない。
鍵保管部402は、受信部401から受け取った公開鍵PKと秘密鍵SKとのペアを保管する。
入力部403は、データ検索者から入力された検索データ710を受け取る。なお、本実施の形態では、検索データ710としてベクトル(y1,y2,・・・,ym)(mは、m≧1となる整数)をデータ検索者から受け取ったとして説明する。ここで、検索データの長さmは保管データの長さnと同じでも、もしくは異なっていてもよい。このmの値は、データ検索者がどのような類似度計算したいかに依存して決定される。
また、入力部403は、データ検索者から、検索データ710と共に、その検索データ710により検索する保管暗号化データ620を指定する検索対象データ識別子を受けとってもよい。検索データ710により検索する保管暗号化データとは、検索データ710により類似度を算出する対象の保管暗号化データのことである。検索対象データ識別子としては、具体的には、保管暗号化データ名、登録した時刻、データ登録者の名前など、保管暗号化データを特定できる情報であればよい。
暗号化部404は、鍵保管部402から公開鍵PKを読み出し、入力部403から受け取った検索データ710、すなわちベクトル(y1,y2,・・・,ym)に対して公開鍵PKを用いて暗号化し、検索暗号化データ720を作成する。本実施の形態では、検索暗号化データをE(PK,y1,y2,・・・,ym)と表わすことにする。
検索データ送信部405は、暗号化部404から受け取った検索暗号化データ720、すなわちE(PK,y1,y2,・・・,ym)を管理装置500へ送信する。もし、データ検索者から検索データ710と共に検索対象データ識別子が入力されていた場合は、検索データ送信部405は、検索暗号化データ720と検索対象データ識別子との両方を管理装置500へ送信する。
復号部406は、管理装置500から送信された暗号化検索結果5001を復号し、復号した暗号化検索結果5001を検索結果4061として出力する。
復号部406は、鍵保管部402から秘密鍵SKを読み出し、受信部401から受け取った暗号化検索結果5001を復号して、検索結果4061を抽出する。
出力部407は、検索結果4061に基づいて、類似度が閾値θ以内であるか否かを表す検索結果情報4071を出力する。
出力部407は、復号部406から受け取った検索結果4061をそのままデータ検索者に対して出力してもよい。
図5は、本実施の形態に係る管理装置500のブロック構成を示す図である。
図5に示すように、管理装置500は、データ受信部501と、鍵保管部502と、データ保管部503と、暗号化類似度計算部504と、暗号化結果送信部505と、閾値保管部506とを備える。暗号化結果送信部505は、類似暗号文生成部5051と、平文ランダム化部5052と、結果送信部5053とを備える。
図示していないが、管理装置500は、管理装置500の各部で使用されるデータを記憶する記録媒体を備える。
データ受信部501は、鍵生成装置200から送信されてきた公開鍵PKを受信する。
また、データ受信部501は、保管データ610の検索に用いる検索データ710であって準同型暗号により暗号化された検索データ710である検索暗号化データ720を受信する。
データ受信部501は、登録装置300から送られてきた保管暗号化データ620、すなわちE(PK,x1,x2,・・・,xk)を受信する。データ受信部501は、保管暗号化データE(PK,x1,x2,・・・,xk)に加え、登録装置300から保管データ識別子及び削除対象データ識別子を受信する場合もある。また、データ受信部501は、上述したように、検索暗号化データE(PK,y1,y2,・・・,ym)に加え、検索装置400から送信されてきた検索対象データ識別子を受信する場合もある。
鍵保管部502は、データ受信部501から受け取った公開鍵PKを保管する。
データ保管部503は、準同型暗号により暗号化された保管データ610を保管暗号化データ620として保管する。
データ保管部503は、データ受信部501から受け取った保管暗号化データE(PK,x1,x2,・・・,xk)と保管データ識別子とを対応付けて保管する。もし保管データ識別子がなかった場合は、データ保管部503は、保管データ識別子としてデータ登録者名あるいは登録時刻などから保管データ識別子を生成して、保管暗号化データと対応付けて保管する。
また、データ保管部503は、データ受信部501から受け取った削除対象データ識別子に基づき、保管している保管暗号化データを削除する。
暗号化類似度計算部504は、準同型暗号により暗号化された保管データである保管暗号化データ620と、保管データの検索に用いる検索データであって準同型暗号により暗号化された検索データである検索暗号化データ720とを準同型演算することにより、保管データと検索データとの類似度が準同型暗号により暗号化された暗号化類似度5041を算出する。
暗号化類似度計算部504は、データ受信部501から検索暗号化データE(PK,y1,y2,・・・,ym)と検索対象データ識別子を受け取る。また、暗号化類似度計算部504は、鍵保管部502から公開鍵PKを読み出す。そして、暗号化類似度計算部504は、検索対象データ識別子に基づき、データ保管部503から保管暗号化データE(PK,x1,x2,・・・,xk)を読み出す。もし、検索対象データ識別子がなかった場合は、データ保管部503からすべての保管暗号化データ620を読み出す。
そして、暗号化類似度計算部504は、公開鍵PKと、各保管暗号化データ620と、検索暗号化データ720とを用いて、準同型演算を行って暗号化類似度5041を計算する。ここで、保管暗号化データE(PK,x1,x2,・・・,xk)と検索暗号化データE(PK,y1,y2,・・・,ym)との暗号化類似度5041をE(PK,S1,S2,・・・,Sn)と表わすことにする。
上述したように、具体例1の準同型暗号を用いて、(x1,x2)と(y1,y2)(k=m=2)の間のユークリッド2乗距離を求める場合は、n=1で、S1を(x1,x2)と(y1,y2)のユークリッド2乗距離と考える。また、具体例2の準同型暗号を用いて、(x1,x2,x3)(k=3)と(y1,y2)(m=2)のハミング距離に関する類似度を求める場合は、n=2で、S1を(x1,x2)と(y1,y2)のハミング距離、S2を(x2,x3)と(y1,y2)のハミング距離と考える。
暗号化結果送信部505は、暗号化類似度5041を用いて類似度が閾値以内であるか否かを表す暗号化検索結果5001を生成し、生成した暗号化検索結果5001を送信する。
類似暗号文生成部5051は、類似度に類似する複数の平文であって、類似度が閾値以内の場合には少なくとも1つは0となる複数の平文の各々が準同型暗号により暗号化された複数の類似暗号文50510を生成する。
類似暗号文生成部5051は、鍵保管部502から公開鍵PKを読み出し、閾値保管部506から閾値θを読み出す。類似暗号文生成部5051は、公開鍵PKと閾値θとに基づいて、準同型演算を用いて、暗号化類似度計算部504から受け取った暗号化類似度5041の平文(S1,S2,・・・,Sn)と近い値を持つ暗号文を複数生成する。この生成された暗号文を類似暗号文50510と呼ぶことにし、各類似暗号文をE(PK,AS1,AS2,・・・,ASn)と表わすことにする。
閾値保管部506は、閾値θを保管する。ただし、θは1以上の整数とする。なお、この閾値θの設定は、鍵生成装置200が決定してもよいし、登録装置300のデータ登録者が決めてもよい。もしくは閾値θは、システムで事前に決められている値を使ってもよい。また、閾値は唯一つでなく、計算する類似度に応じて複数あってもよい。
平文ランダム化部5052は、複数の類似暗号文50510の複数の平文をランダム化し、ランダム化された複数の平文の各々が準同型暗号により暗号化されたランダム暗号文の集合を生成する。
平文ランダム化部5052は、鍵保管部502に保管されている公開鍵PKを読み出し、類似暗号文生成部5051から受け取った各類似暗号文E(PK,AS1,AS2,・・・,ASn)の平文(AS1,AS2,・・・,ASn)の各成分をランダム化する。平文ランダム化部5052は、各類似暗号文E(PK,AS1,AS2,・・・,ASn)の平文(AS1,AS2,・・・,ASn)の各成分をランダム化したランダム暗号文50520を生成する。ここで、ランダム暗号文50520をE(PK,R1,...,Rn)と表す。
平文ランダム化部5052は、複数の平文のうち値が0の平文を0とすると共に複数の平文のうち値が0ではない平文をランダム化し、ランダム化された複数の平文の各々が準同型暗号により暗号化されたランダム暗号文50520の集合を生成する。
すなわち、平文ランダム化部5052は、0でない複数の乱数と準同型演算を用いて、平文が0以外の暗号文を平文がランダムとなるように暗号文を変換し、また平文が0の暗号文を平文が0のまま変化しないように暗号文を変換するような特殊なランダム化処理を行う。よって、ランダム暗号文E(PK,R1,...,Rn)は各零保存ランダム暗号文E(PK,R1,...,Rn)とも称される。
結果送信部5053は、平文ランダム化部5052により生成されたランダム暗号文50520の集合を用いて、暗号化検索結果5001を生成し、生成した暗号化検索結果5001を送信する。結果送信部5053は、平文ランダム化部5052から受け取ったランダム暗号文50520の集合を、暗号化検索結果5001として検索装置400へ送信する。
***動作の説明***
図6は、本実施の形態に係る秘匿検索システム100の秘匿検索方法9100、秘匿検索プログラム9200の秘匿検索処理S100の流れを示すフロー図である。
秘匿検索処理S100は、鍵生成処理S110と、登録処理S120と、検索処理S130を有する。
鍵生成処理S110は、鍵生成装置200により鍵を生成して各装置に保管する。
登録処理S120は、保管データを暗号化して保管暗号化データとして管理装置500に保管する。
検索処理S130は、検索装置からの要求により、検索暗号化データと保管暗号化データとにおける暗号化類似度を算出し、検索データと保管データとの類似度が閾値以内か否かを表す暗号化検索結果を、平文情報を用いることなく生成する。
図7は、本実施の形態に係る秘匿検索システム100の鍵生成処理S110を示すフローチャートである。
図7のS601からS608は、鍵生成装置200と、登録装置300と、検索装置400と、管理装置500とが実行する処理である。S601からS602は鍵生成装置200によって実行される。S603からS604は登録装置300によって実行される。S605からS606は検索装置400によって実行される。S607からS608は管理装置500によって実行される。
<鍵生成装置200の処理>
S601において、鍵生成部201は、データの暗号化及び復号をするための準同型暗号の公開鍵PKとその秘密鍵SKとを生成する。なお、ここでは公開鍵暗号系の準同型暗号を用いて説明するが、共通鍵暗号系の準同型暗号を用いてもよい。その場合は、鍵生成部201は、公開鍵PKを秘密鍵SKとして設定して、公開鍵暗号系の場合と同じように以降の処理を実施すればよい。
S602において、鍵送信部202は、S601で生成した公開鍵PKを、登録装置300と管理装置500へ送信する。また、鍵送信部202は、S601で生成した公開鍵PKと秘密鍵SKのペアを検索装置400へ送信する。
<登録装置300の処理>
S603において、鍵受信部301は、S602で送信された公開鍵PKを受信する。
S604において、鍵保管部302は、S603で受信した公開鍵PKを記憶媒体に保管する。
<検索装置400の処理>
S605において、受信部401は、S602で送信された公開鍵PKと秘密鍵SKとのペアを受信する。
S606において、鍵保管部402は、S605で受信した公開鍵PKと秘密鍵SKのペアを記憶媒体に保管する。なお、秘密鍵SKは秘密情報であるため、検索装置400及び検索装置400を用いるデータ検索者以外に公開しないように厳重に保管する。
<管理装置500の処理>
S607において、データ受信部501は、S602で送信された公開鍵PKを受信する。
S608において、鍵保管部502は、S607で受信した公開鍵PKを記憶媒体に保管する。
以上で、秘匿検索システム100の鍵生成保管処理は終了する。
もし、公開鍵PK=秘密鍵SKの場合は、公開鍵PKも秘密情報となるため、鍵保管部302、鍵保管部402、鍵保管部502ともに、公開鍵PKを厳重に保管する。
以上により、秘匿検索システム100の鍵生成処理S110は終了する。
図8は、本実施の形態に係る秘匿検索システム100の登録処理S120を示すフローチャートである。
図8のS701からS705は、登録装置300と管理装置500が実行する処理である。S701からS703は登録装置300によって実行される処理である。S704からS705は管理装置500によって実行される処理である。
<登録装置300の処理>
S701において、入力部303は、データ登録者から入力された保管データ(x1,x2,・・・,xk)(k≧1)を受け取る。入力部303は、データ登録者から保管データと共に、その保管データに関する保管データ識別子も受けとってもよい。
S702において、暗号化部304は、鍵保管部302に保管されている公開鍵PKを用いて、S701で入力された保管データ(x1,x2,・・・,xk)を暗号化して、保管暗号化データE(PK,x1,x2,・・・,xk)を生成する。
S703において、データ送信部305は、S702で生成した保管暗号化データE(PK,x1,x2,・・・,xk)を管理装置500へ送信する。もし、S702で保管データ識別子も入力されていれば、保管データ識別子も同時に送付する。
<管理装置500の処理>
S704において、データ受信部501は、S703で送信された保管暗号化データE(PK,x1,x2,・・・,xk)を受信する。もし、S704で保管データ識別子も送信されていたら、保管データ識別子も受信する。
S705において、データ保管部503は、S704で受信した保管暗号化データE(PK,x1,x2,・・・,xk)を保管する。もし、S704で保管データ識別子も受信されていれば、その保管暗号化データと関連付けて保管する。
以上により、秘匿検索システム100の登録処理S120は終了する。
図9は、本実施の形態に係る秘匿検索システム100の検索処理S130を示すフローチャートである。
図9のS801からS812は、検索装置400と管理装置500が実行する処理である。S801からS803及びS810からS812は検索装置400によって実行される処理である。S804からS809は管理装置500によって実行される処理である。
<検索装置400の処理>
S801において、入力部403は、データ検索者から入力された検索データ(y1,y2,・・・,ym)を受け取る。入力部403は、データ検索者から検索データと同時に、検索を行いたい保管暗号化データを示す検索対象データ識別子も受けとってもよい。
S802において、暗号化部404は、鍵保管部402に保管されている公開鍵PKを用いて、S801で入力された検索データ(y1,y2,・・・,ym)を暗号化して、検索暗号化データE(PK,y1,y2,・・・,ym)を生成する。
S803において、検索データ送信部405は、S802で生成した検索暗号化データE(PK,y1,y2,・・・,ym)を管理装置500へ送信する。もし、S801で検索対象データ識別子も入力されていれば、検索対象データ識別子も同時に送付する。
<管理装置500の処理>
上述したように、管理装置500は、準同型暗号により暗号化された保管データ610を保管暗号化データ620として保管する。
<データ受信処理S804>
データ受信部501は、保管データ610の検索に用いる検索データ710であって準同型暗号により暗号化された検索データ710である検索暗号化データ720を受信するデータ受信処理S804を実行する。
データ受信処理S804において、データ受信部501は、S803で送信された検索暗号化データE(PK,y1,y2,・・・,ym)を受信する。もし、S803で検索対象データ識別子も送信されていたら、検索対象データ識別子も受信する。
S805において、暗号化類似度計算部504は、データ保管部503から保管暗号化データE(PK,x1,x2,・・・,xk)を読み出す。なお、暗号化類似度計算部504は、S804で検索対象データ識別子も受信していた場合は、受信した検索対象データ識別子に基づき、対象の保管暗号化データを読み出す。暗号化類似度計算部504は、S804で検索対象データ識別子を受信していなかった場合は、すべての保管暗号化データを読み出す。
<暗号化類似度算出処理S806>
暗号化類似度計算部504は、保管暗号化データ620と検索暗号化データ720とを準同型演算することにより、保管データ610と検索データ710との類似度が準同型暗号により暗号化された暗号化類似度5041を算出する暗号化類似度算出処理S806を実行する。
暗号化類似度算出処理S806において、暗号化類似度計算部504は、鍵保管部502に保管されている公開鍵PKを用いて、S805で読み出した各保管暗号化データE(PK,x1,x2,・・・,xk)とS804で受信した検索暗号化データE(PK,y1,y2,・・・,ym)との間で準同型演算を行い、暗号化類似度E(PK,S1,S2,・・・,Sn)を計算する。
例えば、暗号化類似度計算部504は、上述した具体例1の準同型暗号を用いて、ユークリッド2乗距離を計算することにより暗号化類似度E(PK,S1,S2,・・・,Sn)を算出する。
また、例えば、暗号化類似度計算部504は、上述した具体例2の準同型暗号を用いて、ハミング距離を計算することにより暗号化類似度E(PK,S1,S2,・・・,Sn)を算出する。
<類似暗号文生成処理S807>
類似暗号文生成部5051は、類似度に類似する複数の平文であって類似度が閾値以内の場合には少なくとも1つは0となる複数の平文の各々が、準同型暗号により暗号化された複数の類似暗号文を生成する類似暗号文生成処理S807を実行する。
類似暗号文生成処理S807において、類似暗号文生成部5051は、鍵保管部502から公開鍵PKを読み出し、閾値保管部506から閾値θを読み出す。類似暗号文生成部5051は、公開鍵PKと閾値θとに基づいて、準同型演算を用いて、暗号化類似度計算部504から受け取った暗号化類似度5041の平文(S1,S2,・・・,Sn)と近い値を持つ暗号文を複数生成する。ここで生成された複数の暗号文の各々は、類似暗号文E(PK,AS1,AS2,・・・,ASn)である。
具体的には、類似暗号文生成部5051は、鍵保管部502に保管されている公開鍵PKと、閾値保管部506に保管されている閾値θとを用いて、類似暗号文50510をθ+1個生成する。ここで、生成された類似暗号文50510の集合を{c0,c1,・・・,cθ}と表し、各cをE(PK,AS1,AS2,・・・,ASn)と表わす。また、類似暗号文の集合内の暗号文は、c0,c1,・・・,cθの順で並んでいるものとする。
具体的な類似暗号文の生成方法について説明する。準同型加算を用いて、c0=E(PK,S1,S2,・・・,Sn),c1=E(PK,−1+S1,−1+S2,・・・,−1+Sn),・・・,cθ=E(PK,−θ+S1,−θ+S2,・・・,−θ+Sn)として生成する。
類似暗号文生成処理S807は、暗号化類似度E(PK,S1,S2,・・・,Sn)の中に類似度がθ以内の平文Siがあれば、準同型演算で暗号文を変換して、平文として0が現れるような類似暗号文を1つでも生成する処理である。
ここでは、0番目の類似暗号文は暗号化類似度から0を引いた値、1番目の類似暗号文は暗号化類似度から1を引いた値、・・・、θ番目の類似暗号文は暗号化類似度からθを引いた値である。すなわち、類似暗号文生成部5051は、類似度が閾値θ以内の場合に、先頭から類似度の値番目の平文が0となる複数の平文の各々が準同型暗号により暗号化された複数の類似暗号文を生成することになる。
<平文ランダム化処理S808>
平文ランダム化部5052は、複数の類似暗号文50510の複数の平文をランダム化し、ランダム化された複数の平文の各々が準同型暗号により暗号化されたランダム暗号文50520の集合を生成する平文ランダム化処理S808を実行する。
平文ランダム化処理S808において、平文ランダム化部5052は、鍵保管部502に保管されている公開鍵PKを用いて、類似暗号文生成処理S807で生成した類似暗号文の集合の各類似暗号文cに対して平文のランダム化を行う。平文ランダム化部5052は、各類似暗号文cに対して平文のランダム化を行った結果、ランダム暗号文をθ+1個生成する。ここで、生成されたランダム暗号文の集合を{C0,C1,・・・,Cθ}と表し、各ランダム暗号文CをE(PK,R1,...,Rn)と表わす。また、ランダム暗号文の集合内の暗号文は、C0,C1,・・・,Cθの順で並んでいるものとする。
なお、このランダム化は、上述した通り、準同型演算を用いて、平文が0以外の類似暗号文を平文がランダムとなるように類似暗号文を変換し、また平文が0の類似暗号文を平文が0のまま変化しないように類似暗号文を変換するような特殊なランダム化処理である。
具体的には、まず、0ではない乱数ri(iは、0≦i≦θを満たす整数)を生成する。その後、各類似暗号文c=E(PK,AS1,AS2,・・・,ASn)に対して、準同型演算を用いて、C=E(PK,R1,R2,・・・,Rn)=E(PK,r1×AS1,r2×AS2,・・・,rn×ASn)を計算する。なお、ASiが0であれば、乱数riを乗じても0のままである。
もし、暗号化類似度E(PK,S1,S2,・・・,Sn)の中に類似度がθ以内の平文Siがあれば、類似暗号文生成処理S807で準同型演算を用いて暗号文を変換した結果、平文として0となる、すなわちASi=0となる暗号文を生成される。よって、平文ランダム化部5052によるランダム化を行ってもRi(=ri×ASi)が0のまま保存される。Ri(=ri×ASi)が0のまま保存された場合は、ランダム暗号文Eを復号すると0が現れる。
対偶をとると、0ではない平文しか現れなかった場合、すなわち復号しても0が現れなかった場合は、類似度Siの値は分からずに、類似度Siが閾値以内ではなかったことのみが分かる。
<結果送信処理S809>
結果送信部5053は、平文ランダム化処理S808により生成されたランダム暗号文50520の集合を用いて、類似度が閾値θ以内であるか否かを表す暗号化検索結果5001を生成し、生成した暗号化検索結果5001を送信する結果送信処理S809を実行する。
結果送信部5053は、平文ランダム化処理S808により生成されたランダム暗号文の集合{C0,C1,・・・,Cθ}を暗号化検索結果5001として検索装置400に送信する。
<検索装置400の処理>
S810において、受信部401は、結果送信処理S809で送信された暗号化検索結果5001、すなわちランダム暗号文の集合{C0,C1,・・・,Cθ}を受信する。
S811において、復号部406は、鍵保管部402に保管されている秘密鍵SKを用いて、結果送信処理S809で受信した暗号化検索結果{C0,C1,・・・,Cθ}を復号して、検索結果4061を得る。
S812において、出力部407は、検索結果4061に基づいて、複数の平文に値が0の平文があるか否かを判定し、値が0の平文があると判定した場合に類似度が閾値θ以内であることを示す検索結果情報4071を出力する。また、出力部407は、複数の平文に値が0の平文がないと判定した場合に類似度が閾値θより大きいことを示す検索結果情報4071を出力する。
また、出力部407は、複数の平文の中に値が0の平文があると判定した場合に、複数の平文における値が0の平文の順番を取得する。出力部407は、取得した順番を類似度と特定し、特定した類似度を出力してもよい。
S812により、秘匿検索システム100の検索処理は終了する。
<検索処理の具体例10の説明>
ここで、上述した具体例1の準同型暗号に基づき、本実施の形態の検索処理S130の具体例10について説明する。ここでは、保管データを(0,0,1)、検索データを(0,0,0)、θ=1として説明する。このときの保管データと検索データとのユークリッド2乗距離は1である。本実施の形態では、データ検索者に保管データと検索データの類似度が1であることを伝えたい。
S801では、入力部403は、(0,0,0)をデータ検索者の検索データとして受け取る。
S802では、暗号化部404は、公開鍵PKを用いて、検索暗号化データE(PK,0,0,0)=(E(PK,0),E(PK,0),E(PK,0))を計算する。
S803では、検索データ送信部405は、検索暗号化データE(PK,0,0,0)を管理装置500へ送信する
S804では、データ受信部501は、検索暗号化データE(PK,0,0,0)を受信する。
S805では、暗号化類似度計算部504は、保管暗号化データE(PK,0,0,1)=(E(PK,0),E(PK,0),E(PK,1))を読み出す。
S806では、暗号化類似度計算部504は、暗号化類似度E(PK,1)を計算する。
S807では、類似暗号文生成部5051は、準同型減算を行って、E(PK,1)から2個の暗号文E(PK,1−0)=E(PK,1)及びE(PK,1−1)=E(PK,0)を生成する。つまり、{c0,c1}={E(PK,1),E(PK,0)}を生成する。
S808では、平文ランダム化部5052は、0でない乱数r0とr1を生成し、準同型加算を行って、次の式1及び式2のように{C0,C1}を計算する。
式1:C0=E(PK,R0)=r0×c0=E(PK,1)◇・・・◇E(PK,1)=E(PK,r0)
式2:C1=E(PK,R1)=r1×c1=E(PK,0)◇・・・◇E(PK,0)=E(PK,0)
S809では、結果送信部5053は、{E(PK,r0),E(PK,0)}を送信する。
S810では、受信部401は、{E(PK,r0),E(PK,0)}を受信する。
S811では、復号部406は、秘密鍵SKを用いて、E(PK,r0)とE(PK,0)を復号して、平文としてr0と0を得る。
S812では、出力部407は、復号して0が現れたので、保管暗号化データの平文(0,0,1)と検索データ(0,0,0)の類似度(ユークリッド2乗距離)が1であることを表す検索結果情報4071を表示装置等に表示する。データ検索者は、表示された検索結果情報4071から、類似度(ユークリッド2乗距離)が1であることが分かる。
<検索処理の具体例20の説明>
次に、検索処理の具体例10とは異なる例として、検索処理の具体例20について説明する。ここでは、保管データを(0,1,1)、検索データを(0,0,0)、θ=1を説明する。このとき、保管データ(0,1,1)と検索データ(0,0,0)とのユークリッド2乗距離は2である。本実施の形態では、類似度が閾値θ以上であるため、データ検索者には、保管データと検索データの類似度は閾値より大きいという事実のみを伝えたい。
S801からS805の処理は省略する。
S806では、暗号化類似度計算部504は、暗号化類似度としてE(PK,2)を計算する。
S807では、平文ランダム化部5052は、E(PK,2−0)=E(PK,2)及びE(PK,2−1)=E(PK,1)を生成する。
S808では、平文ランダム化部5052は、乱数r0とr1を生成し、準同型加算を行って、C0=E(PK,R0)=E(PK,2×r0)とC1=E(PK,R1)=E(PK,r1)を生成する。
S809では、結果送信部5053は、{E(PK,2×r0),E(PK,r1)}を送信する。
S810では、受信部401は、{E(PK,2×r0),E(PK,r1)}を受信する。
S811では、復号部406は、秘密鍵SKを用いて、E(PK,2×r0)とE(PK,r1)とを復号して、平文として2×r0とr1を得る。
S812では、出力部407は、復号しても0が現れないため、保管暗号化データの平文(0,1,1)と検索データ(0,0,0)の類似度(ユークリッド2乗距離)が閾値θより大きいことを表す検索結果情報4071を表示する。このとき、類似度そのものの値(=2)は検索処理の過程で現れず、表示されない。よって、データ検索者は復号しても乱数2×r0及びr1しか得ることができない。したがって、データ検索者は、保管データと検索データの類似度は閾値1より大きいという事実のみがわかる。
なお、上記の例は類似度としてユークリッド2乗距離を用いて説明したが、他の類似度の指標を用いてもよい。具体的には、LpノルムあるいはTversky係数などでも、本実施の形態で説明したような方法を用いて、保管データと検索データをともに暗号化したまま実行できる。
図10は、本実施の形態に係る秘匿検索システム100の削除処理S140を示すフローチャートである。
図10のS901からS904は、登録装置300と管理装置500とが実行する処理である。S901からS902は登録装置300によって実行される処理である。S903からS904は管理装置500によって実行される処理である。
<登録装置300の処理>
S901において、入力部303は、データ登録者から削除したい保管暗号化データについての削除対象データ識別子を受け取る。上述のように、削除対象データ識別子は、削除対象の保管データを識別できる情報であれば何でもよい。
S902において、データ送信部305は、S901で入力された削除対象データ識別子を管理装置500へ送信する。
<管理処理500の処理>
S903において、データ受信部501は、S902で登録装置300から送信されてきた削除対象データ識別子を受信する。
S904において、データ保管部503は、S903で受信した削除対象データ識別子に基づき、保管している保管暗号化データを削除する。
S904により、秘匿検索システム100の削除処理は終了する。
***本実施の形態に係る効果の説明***
本実施の形態は、以下のような効果を奏する。
本実施の形態に係る秘匿検索システム100によれば、保管データを暗号化して保管しているので、たとえ管理装置500から保管暗号化データが漏洩しても、保管データの中身そのものを知られることはない。
また、本実施の形態に係る秘匿検索システム100によれば、検索データのみならず保管データも暗号化したまま処理ができるため、より安全性が高い秘匿類似度検索を達成できる。
また、本実施の形態に係る秘匿検索システム100によれば、公開鍵暗号を用いても秘匿類似度検索を達成できるため、データ登録者とデータ検索者との間で秘密鍵を共有することがなく、データ登録者とデータ検索者との役割を分離することができる。
また、本実施の形態に係る秘匿検索システム100によれば、検索装置の出力部は、類似度がある閾値以内であれば類似度の正確な値を出力し、類似度が閾値を超えれば閾値を超えたという情報のみ出力する。したがって、データ検索者は、類似度が閾値を超えている場合に類似度の正確な値を知ることができず、類似度から保管暗号化データの平文を推測することはできない。
また、本実施の形態に係る秘匿検索システム100では、類似暗号文をいくつか生成し、それらの類似暗号文に対して特殊なランダム化をすることにより、類似度がある閾値以内であれば類似度の正確な値を出力し、類似度が閾値を超えれば閾値を超えたという情報のみ出力することができる。
また、本実施の形態に係る秘匿検索システム100では、管理装置は保管データと検索データとをともに暗号化したまま類似度の暗号文を計算でき、またその暗号文を攪乱することにより、類似度が閾値以内か否かのみの情報のみを出力することができる。
以上のように、本実施の形態に係る秘匿検索システム100によれば、平文情報を一切用いることなく、保管暗号化データと検索暗号化データとから類似度計算ができる。さらに、本実施の形態に係る秘匿検索システム100によれば、データ検索者に対して、類似度そのものを公開せず、類似度が閾値以内であれば公開する、もしくは閾値以内か否かのみを公開できる。
***他の構成***
秘匿検索システム100は、複数の鍵生成装置200を備えていてもよい。また、秘匿検索システム100は、1つの登録装置300のみを備えていてもよい。また、秘匿検索システム100は、1つの検索装置400のみを備えていてもよい。秘匿検索システム100は、複数の管理装置500を備えていてもよい。
鍵生成装置200と、複数の登録装置300と、複数の検索装置400と、管理装置500とのそれぞれは、ネットワーク101を経由して接続されずに、同じ企業内に敷設されたLAN(Local Area Network)内に設置されていてもよい。
同じPC内に、鍵生成装置200と登録装置300と検索装置400との少なくとも2つが同時に含まれている構成でも構わない。
実施の形態2.
本実施の形態では、主に、実施の形態1と異なる点について説明する。
実施の形態1に係る秘匿検索システム100では、保管データと検索データとの類似度が閾値以内であれば、データ検索者が類似度そのものを知ることができた。しかし、本実施の形態では、類似度が閾値以内であっても、データ検索者は類似度が閾値以内であったことのみしか知ることができないようにすることを目的とする秘匿検索システム100について説明する。
***構成の説明***
図11は、本実施の形態に係る管理装置500の構成を示すブロック図である。
本実施の形態において、実施の形態1で説明した構成部と同様の機能を有する構成部には同一の符号を付し、その説明を省略する。
本実施の形態では、結果送信部5053は、暗号文攪乱部50531と、送信部50532とを備える。
暗号文攪乱部50531は、平文ランダム化部5052により生成されたランダム暗号文50520の集合を攪乱し、攪乱したランダム暗号文50520の集合を攪乱ランダム暗号文5002として生成する。
具体的には、暗号文攪乱部50531は、ランダム暗号文50520の集合において、ランダム暗号文50520の集合におけるランダム暗号文50520の順序を変更することによりランダム暗号文50520の集合を攪乱する。暗号文攪乱部50531は、順序を変更したランダム暗号文50520の集合を攪乱ランダム暗号文5002として生成する。
暗号文攪乱部50531は、鍵保管部502に保管されている公開鍵PKを読み出し、平文ランダム化部5052から受け取ったランダム暗号文E(PK,R1,...,Rn)に対して、攪乱処理を行って攪乱ランダム暗号文5002を生成する。攪乱ランダム暗号文5002は1つの場合もあるし、複数の場合もある。
なお、暗号文攪乱部50531の処理は、暗号化検索結果を復号しても類似度そのものが現れないようにするために実行される。つまり、類似度がある閾値以内か否かのみがわかるような暗号文に変換するための最終処理である。具体的には、ランダム暗号文50520の集合の各ランダム暗号文の順番、すなわち順序をランダムに置換すること、あるいは、ランダム暗号文間の成分をランダムに交換すること、あるいは、準同型演算を行ってランダム暗号文を1つの暗号文に結合することなどを行う。これらの具体的処理については後述する。
送信部50532は、暗号文攪乱部50531により生成された攪乱ランダム暗号文5002の集合を暗号化検索結果5001として検索装置400に送信する。
検索装置400の出力部407は、複数の平文に値が0の平文があるか否かを判定し、値が0の平文があると判定した場合に類似度が閾値θ以内であることを表す検索結果情報4071を出力する。また、検索装置400の出力部407は、複数の平文に値が0の平文がないと判定した場合には類似度が閾値θより大きいことを表す検索結果情報4071を出力する。
***動作の説明***
図12は、本実施の形態における秘匿検索システム100の検索処理S130aを示すフローチャートである。
本実施の形態では、置換関数π:{0,1,・・・,θ}→{0,1,・・・,θ}を用いて検索処理を実行することにより、類似度を知られることを困難とし、安全性をより向上させる秘匿検索システム100について説明する。
本実施の形態の秘匿検索システム100の動作において、実施の形態1と異なる点は検索処理の一部のみである。
図12のS1001からS1013は、検索装置400と管理装置500が実行する処理である。S1001からS1003及びS1011からS1013は検索装置400によって実行される処理である。S1004からS1010は管理装置500によって実行される処理である。
なお、本実施の形態の検索処理S130aにおけるS1001からS1008は、実施の形態1のS801からS808と同様の処理であるため、ここでは説明を省略する。
<管理装置500の処理>
S1009において、暗号文攪乱部50531は、S1008で生成したランダム暗号文の集合{C0,C1,・・・,Cθ}に対して、ランダム暗号文の順序変更をランダムに行い、攪乱ランダム暗号文の集合を生成する。なお、この順序変更を行った結果は、置換関数π:{0,1,・・・,θ}→{0,1,・・・,θ}を用いて、{Cπ(0),Cπ(1),・・・,Cπ(θ)}と表わすことができ、攪乱ランダム暗号文の順番もこのように並んでいるとする。なお、もしπ(i)=π(j)ならばi=jである。
S1010において、送信部50532は、S1009で生成した攪乱ランダム暗号文の集合{Cπ(1),Cπ(2),・・・,Cπ(θ)}を暗号化検索結果5001として検索装置400へ送信する。
<検索装置400の処理>
S1011において、受信部401は、S1010で送信された暗号化検索結果{Cπ(1),Cπ(2),・・・,Cπ(θ)}を受信する。
S1012において、復号部406は、鍵保管部402に保管されている秘密鍵SKを用いて、S1011で受信した暗号化検索結果{Cπ(1),Cπ(2),・・・,Cπ(θ)}を復号して、検索結果4061を得る。
S1013において、出力部407は、S1012で得られた検索結果を判定した結果に基づき、データ検索者に対して検索結果情報4071を出力する。
出力部407は、検索結果4061を用いて、攪乱ランダム暗号文の複数の平文に、0の平文があるか否かを判定し、0の平文があると判定した場合に類似度が閾値θ以内であることを表す検索結果情報4071を出力する。また、出力部407は、攪乱ランダム暗号文の複数の平文に、0の平文がないと判定した場合には類似度が閾値θより大きいことを表す検索結果情報4071を出力する。
S1013により、秘匿検索システム100の検索処理は終了する。
<検索処理の具体例30の説明>
ここで、上述した具体例1の準同型暗号に基づき、本実施の形態の検索処理の具体例30について説明する。ここでは、保管データを(0,0,1)、検索データを(0,0,0)、θ=1として説明する。このときの保管データを(0,0,1)と検索データを(0,0,0)のユークリッド2乗距離は1である。本実施の形態では、データ検索者に、保管データと検索データの類似度が1以内であることのみを伝えたい。
S1006では、暗号化類似度計算部504は、暗号化類似度E(PK,1)を計算する。
S1007では、類似暗号文生成部5051は、準同型減算を行って、E(PK,1)から2個の暗号文E(PK,1−0)=E(PK,1)とE(PK,1−1)=E(PK,0)を生成する。つまり、{c0,c1}={E(PK,1),E(PK,0)}を生成する。
S1008では、平文ランダム化部5052は、0でない乱数r0とr1を生成し、準同型加算を行って、次の式3及び式4のように{C0,C1}を計算する。
式3:C0=E(PK,R0)=r0×c0=E(PK,1)◇・・・◇E(PK,1)=E(PK,r0)
式4:C1=E(PK,R1)=r1×c1=E(PK,0)◇・・・◇E(PK,0)=E(PK,0)。
S1009では、暗号文攪乱部50531は、置換πをランダムに決める。ここでは、π(0)=1,π(1)=0となるようなπを選んだとする。この時、{C0,C1}={E(PK,r0),E(PK,0)}は{Cπ(0),Cπ(1)}={C1,C0}={E(PK,0),E(PK,r0)}と順序が変更される。
S1010では、結果送信部5053は、{E(PK,0),E(PK,r0)}を送信する。
S1011では、受信部401は、{E(PK,0),E(PK,r0)}を受信する。
S1012では、復号部406は、秘密鍵SKを用いて、E(PK,0)とE(PK,r0)を復号して、平文として0と乱数r0を得る。
S1013では、出力部407は、復号して0が現れたので、保管暗号化データの平文(0,0,1)と検索データ(0,0,0)の類似度、すなわちユークリッド2乗距離が閾値θ以内、すなわち1以内であるという事実を表す検索結果情報4071を出力する。
ここで、S1009で暗号文攪乱部50531により順序変更が実行されない場合、0番目の暗号文は暗号化類似度から0を引いた値、1番目の暗号文は暗号化類似度から1を引いた値、・・・、θ番目の暗号文は暗号化類似度からθを引いた値、であるとデータ検索者はいつも知ることになる。よって、復号してj番目に0が現れたとすると、データ検索者は類似度がjであることが簡単にわかる。よって、S1009で暗号文攪乱部50531による順序変更を行うことにより、保管データと検索データとの類似度が閾値以内か否かだけを表す情報に変換することができる。
***本実施の形態に係る効果の説明***
以上のように、本実施の形態に係る秘匿検索システム100によれば、実施の形態1と同様な効果を得ることに加えて、データ検索者は、検索結果から、保管データと検索データの類似度が閾値以内か否かのみしか知ることができないため、より安全性が向上する。
実施の形態3.
本実施の形態では、主に、実施の形態1,2と異なる点について説明する。
本実施の形態では、実施の形態2と同様の目的を達成するための秘匿検索方法であって実施の形態2とは異なる秘匿検索方法について説明する。
本実施の形態では、実施の形態2と同様に置換関数π:{0,1,・・・,θ}→{0,1,・・・,θ}を用いて、実施の形態2と同様に秘匿検索システムの安全性を向上させる方法について説明する。
本実施の形態の秘匿検索システムは実施の形態2とほぼ同じであり、検索処理の一部のみ異なっている。
***構成の説明***
本実施の形態に係る秘匿検索システム100の構成は、実施の形態2で説明したものと同様である。
本実施の形態において、実施の形態2で説明した構成部と同様の機能を有する構成部には同一の符号を付し、その説明を省略する。
本実施の形態に係る暗号文攪乱部50531は、ランダム暗号文50520の集合における2つのランダム暗号文において、一方のランダム暗号文の成分と他方のランダム暗号文の成分とを交換することによりランダム暗号文50520の集合を攪乱する。暗号文攪乱部50531は、攪乱したランダム暗号文50520の集合を攪乱ランダム暗号文5002として生成する。
***動作の説明***
図13は、本実施の形態における秘匿検索システム100の検索処理S130bを示すフローチャートである。
図13のS1101からS1113は、検索装置400と管理装置500が実行する処理である。S1101からS1103及びS1111からS1113は検索装置400によって実行される処理である。S1104からS1110は管理装置500によって実行される処理である。
なお、本検索処理におけるS1101からS1108は、実施の形態2のS1001からS1008と同様の処理であるため、ここでは説明を省略する。
<管理装置500の処理>
S1109において、暗号文攪乱部50531は、S1108で生成したランダム暗号文の集合{C0,C1,・・・,Cθ}に対して、あるランダム暗号文Ci=E(PK,Ri1,Ri2,・・・,Rin)の平文(Ri1,Ri2,・・・,Rin)と、あるランダム暗号文Cj=E(PK,Rj1,Rj2,・・・,Rjn)の平文(Rj1,Rj2,・・・,Rjn)の同じ位置の成分をランダムに交換する。暗号文攪乱部50531は、このような交換を繰り返すことで攪乱ランダム暗号文の集合{RC1,RC2,・・・,RCn}を生成する。
具体的には、暗号文攪乱部50531は、CiのRi1とCjのRj1のみを交換して新しい暗号文RCi=E(PK,Rj1,Ri2,・・・,Rin)及びRCj=E(PK,Ri1,Rj2,・・・,Rjn)を生成する。暗号文攪乱部50531は、このような処理を繰り返して、攪乱ランダム暗号文{RC1,RC2,・・・,RCn}を生成する。
S1110において、送信部50532は、S1109で生成した攪乱ランダム暗号文の集合{RC1,RC2,・・・,RCn}を暗号化検索結果5001として検索装置400へ送信する。
<検索装置400の処理>
S1111において、受信部401は、S1110で送信された暗号化検索結果{RC1,RC2,・・・,RCn}を受信する。
S1112において、復号部406は、鍵保管部402に保管されている秘密鍵SKを用いて、S1011で受信した暗号化検索結果{RC1,RC2,・・・,RCn}を復号して、検索結果4061を得る。
S1113において、出力部407は、S1112で得られた検索結果4061に基づき、検索結果情報4071を出力する。
S1113により、秘匿検索システム100の検索処理S130bは終了する。
<検索処理の具体例40の説明>
ここで、上述した具体例1の準同型暗号に基づき、本実施の形態の検索処理S130bの具体例40について説明する。ここでは、保管データを(0,1,2)、検索データを(0,0,0)、θ=2として説明する。このとき、保管データ(0,1,2)と検索データ(0,0,0)とのユークリッド2乗距離は10である。また、3=10と2進数表現すれば、保管データ(0,1,2)と検索データ(0,0,0)のハミング距離は2である。ここでS1=10,S2=2とおく。本実施の形態では、データ検索者に対して、保管データと検索データの類似度として、ユークリッド2乗距離は2より大きく、ハミング距離が2以内であることを伝えたい。
S1106では、暗号化類似度計算部504は、暗号化類似度E(PK,S1,S2)=(E(PK,10),E(PK,2))を計算する。
S1107では、類似暗号文生成部5051は、準同型減算を行って、E(PK,S1,S2)=(E(PK,10),E(PK,2))からE(PK,10,2)=(E(PK,10),E(PK,2)),E(PK,9,1)=(E(PK,9),E(PK,1)),E(PK,8,0)=(E(PK,8),E(PK,0))を生成する。つまり、{c0,c1,c2}={E(PK,10,2),E(PK,9,1),E(PK,8,0)}を生成する。
S1108では、平文ランダム化部5052は、0でない乱数を生成し、準同型加算を行って、次のように{C0,C1,C2}を計算する。
C0=E(PK,R0,R1)
C1=E(PK,R2,R3)
C2=E(PK,R4,0)
ただし、R0,R1,R2,R3,R4は乱数である。
S1109では、暗号文攪乱部50531は、1番目の成分をランダムに置換するπ1と、2番目の成分をランダムに置換するπ2として、π1(1)=2,π1(2)=1,π1(3)=3,及びπ2(1)=3,π2(2)=2,π1(3)=2を選んだとする。この時、{RC0,RC1,RC2}={E(PK,R2,0),E(PK,R0,R1),E(PK,R4,R3)}となる。この暗号文同士の成分の交換は暗号文を単純入れ替えればよいため、簡単に実行可能である。
S1110では、結果送信部5053は、{E(PK,R2,0),E(PK,R0,R1),E(PK,R4,R3)}を送信する。
S1111では、受信部401は、{E(PK,R2,0),E(PK,R0,R1),E(PK,R4,R3)}を受信する。
S1112では、復号部406は、秘密鍵SKを用いて、E(PK,R2,0),E(PK,R0,R1),E(PK,R4,R3)を復号する。復号部406は、S1に関する平文としてR2、R0、R4を得て、S2に関する平文として0、R1、R3を得る。
S1113では、出力部407は、S1に関する平文として0が現われなかったので、保管データと検索データのユークリッド2乗距離に関する類似度が閾値より大きい、すなわち2より大きいことを表す検索結果情報4071を出力する。また、出力部407は、S2に関する平文として0が現れたので、保管データと検索データのハミング距離に関する類似度が閾値以内、すなわち2以内であることを表す検索結果情報4071を出力する。
***本実施の形態に係る効果の説明***
以上のように、本実施の形態に係る秘匿検索システム100によれば、実施の形態1と同様な効果を得ることに加えて、データ検索者は、検索結果から、保管データと検索データの類似度が閾値以内か否かのみしかわからないため、より安全性を向上できる。
また、本実施の形態では、実施の形態2とは異なる攪乱手法を用いて、実施の形態2と同様な効果を得ることができる。
実施の形態4.
本実施の形態では、主に、実施の形態1から3と異なる点について説明する。
本実施の形態では、実施の形態2,3と同様の目的を達成するための秘匿検索方法であって実施の形態2,3とは異なる手法を用いた秘匿検索方法について説明する。
また、本実施の形態に係る秘匿検索システムでは、実施の形態1から3に比べて、暗号化検索結果のサイズを小さくできるという利点を持つ。一方で、本実施の形態に係る秘匿検索システムでは、準同型乗算がθ+1回できる準同型暗号を用いることが必要となる。
本実施の形態の秘匿検索システムは実施の形態3とほぼ同じであり、検索処理の一部のみ異なっている。
***構成の説明***
本実施の形態に係る秘匿検索システム100の構成は、実施の形態2で説明したものと同様である。
本実施の形態において、実施の形態2で説明した構成部と同様の機能を有する構成部には同一の符号を付し、その説明を省略する。
暗号文攪乱部50531は、ランダム暗号文50520の集合に含まれる全てのランダム暗号文を準同型乗算により結合することによりランダム暗号文50520の集合を攪乱する。暗号文攪乱部50531は、ランダム暗号文50520の集合を結合した1つの結合暗号文を攪乱ランダム暗号文5002として生成する。
***動作の説明***
図14は、本実施の形態における秘匿検索システム100の検索処理S130cを示すフローチャートである。
図14のS1201からS1213は、検索装置400と管理装置500が実行する処理である。S1201からS1203及びS1211からS1213は検索装置400によって実行される処理である。S1204からS1210は管理装置500によって実行される処理である。
なお、本実施の形態の検索処理S130cにおけるS1201からS1208は、実施の形態3のS1101からS1108と同様の処理であるため、ここでは説明を省略する。
S1209において、暗号文攪乱部50531は、鍵保管部502に保管されている公開鍵PKを用いて、S1208で生成したランダム暗号文の集合{C0,C1,・・・,Cθ}に対して、結合暗号文CC=C0◇C1◇・・・◇Cθ=E(PK,Z1,Z2,・・・,Zn)を計算する。ただし、Ci=E(PK,Ri1,Ri2,・・・,Rin)(iは0≦i≦θを満たす整数)、Zj=R0j×R1j×・・・×Rθj(iは0≦i≦θを満たす整数)とする。
ここで、もしRij=0となる(i,j)があれば、Zj=R0j×R1j×・・・×Rθj=0となることに注意する。
S1210において、結果送信部5053は、S1209で生成した結合暗号文CCを暗号化検索結果5001として検索装置400へ送信する。
S1211において、受信部401は、S1210で送信された暗号化検索結果CCを受信する。
S1212において、復号部406は、鍵保管部402に保管されている秘密鍵SKを用いて、S1211で受信した暗号化検索結果CCを復号して、検索結果Z1,Z2,・・・,Znを得る。
S1213において、出力部407は、S1212で得られた検索結果を出力する。
ここで、準同型乗算がθ+1回できる準同型暗号に基づき、本実施の形態に係る検索処理S130cの例を説明する。ここでは、保管データを(0,1,2)、検索データを(0,0,0)、θ=2として説明する。このとき、保管データ(0,1,2)と検索データ(0,0,0)とのユークリッド2乗距離は10である。また、3=10と2進数表現すれば、保管データ(0,1,2)と検索データ(0,0,0)とのハミング距離は2である。ここでS1=10,S2=2とおく。本実施の形態では、データ検索者に対して、保管データと検索データの類似度として、ユークリッド2乗距離は2より大きく、ハミング距離が2以内であることを伝えたい。
S1206では、暗号化類似度計算部504は、暗号化類似度E(PK,S1,S2)=(E(PK,10),E(PK,2))を計算する。
S1207では、類似暗号文生成部5051は、準同型減算を行って、E(PK,S1,S2)=(E(PK,10),E(PK,2))からE(PK,10,2)=(E(PK,10),E(PK,2)),E(PK,9,1)=(E(PK,9),E(PK,1)),E(PK,8,0)=(E(PK,8),E(PK,0))を生成し、{c0,c1,c2}={E(PK,10,2),E(PK,9,1),E(PK,8,0)}とおく。
S1208では、平文ランダム化部5052は、0でない乱数を生成し、準同型加算を行って、次のように{C0,C1,C2}を計算する。
C0=E(PK,R0,R1)
C1=E(PK,R2,R3)
C2=E(PK,R4,0)
ただし、R0,R1,R2,R3,R4は乱数である。
S1209では、暗号文攪乱部50531は、準同型乗算を行って、結合暗号文CC=E(PK,R0×R2×R4,R1×R3×0)=E(PK,R,0)を計算する。ただし、R=R0×R2×R4とする。
S1210では、送信部50532は、CC=E(PK,R,0)を送信する。
S1211では、受信部401は、E(PK,R,0)を受信する。
S1212では、復号部406は、秘密鍵SKを用いて、E(PK,R,0)を復号して、S1に関する平文としてRを得て、S2に関する平文として0を得る。
S1213では、出力部407は、S1に関する平文として乱数Rが現れたので、保管データと検索データのユークリッド2乗距離に関する類似度が閾値より大きい、すなわち2より大きいことを表す検索結果情報4071を出力する。また、出力部407は、S2に関する平文として0が現れたので、保管データと検索データのハミング距離に関する類似度が閾値以内、すなわち2以内であることを表す検索結果情報4071を出力する。
***本実施の形態に係る効果の説明***
以上のように、本実施の形態に係る秘匿検索システム100によれば、実施の形態2及び実施の形態3と同様な効果を得ることに加えて、準同型演算を用いて暗号文を結合するといった攪乱手法を用いて、実施の形態1から3と比べて暗号化検索結果のサイズを小さくすることが可能である。
***ハードウェア構成例の説明***
最後に、図15を用いて、鍵生成装置200と登録装置300と検索装置400と管理装置500,500aとの各装置のハードウェア構成の一例について説明する。
鍵生成装置200と登録装置300と検索装置400と管理装置500,500aとの各装置はコンピュータである。
鍵生成装置200と登録装置300と検索装置400と管理装置500,500aとの各装置は、プロセッサ901、補助記憶装置902、メモリ903、通信装置904、入力インタフェース905、ディスプレイインタフェース906といったハードウェアを備える。
プロセッサ901は、信号線910を介して他のハードウェアと接続され、これら他のハードウェアを制御する。
入力インタフェース905は、入力装置907に接続されている。
ディスプレイインタフェース906は、ディスプレイ908に接続されている。
プロセッサ901は、プロセッシングを行うIC(Integrated Circuit)である。
プロセッサ901は、具体例は、CPU(Central Processing Unit)、DSP(Digital Signal Processor)、GPU(Graphics Processing Unit)である。
補助記憶装置902は、具体例は、ROM(Read Only Memory)、フラッシュメモリ、HDD(Hard Disk Drive)である。
メモリ903は、具体例は、RAM(Random Access Memory)である。
通信装置904は、データを受信するレシーバー9041及びデータを送信するトランスミッター9042を含む。
通信装置904は、具体例は、通信チップ又はNIC(Network Interface Card)である。
入力インタフェース905は、入力装置907のケーブル911が接続されるポートである。
入力インタフェース905は、具体例は、USB(Universal Serial Bus)端子である。
ディスプレイインタフェース906は、ディスプレイ908のケーブル912が接続されるポートである。
ディスプレイインタフェース906は、具体例は、USB端子又はHDMI(登録商標)(High Definition Multimedia Interface)端子である。
入力装置907は、具体例は、マウス、キーボード又はタッチパネルである。
ディスプレイ908は、具体例は、LCD(Liquid Crystal Display)である。
コンピュータが鍵生成装置200の場合は、補助記憶装置902には、図2に示す鍵生成部及び鍵送信部の機能を実現するプログラムが記憶されている。
また、コンピュータが登録装置300の場合は、補助記憶装置902には、図3に示す入力部、暗号化部、データ送信部、鍵受信部、鍵保管部の機能を実現するプログラムが記憶されている。
また、コンピュータが検索装置400の場合は、補助記憶装置902には、図4に示す受信部、入力部、暗号化部、鍵保管部、検索データ送信部、復号部、出力部の機能を実現するプログラムが記憶されている。
また、コンピュータが管理装置500の場合は、補助記憶装置902には、図5に示すデータ受信部、データ保管部、閾値保管部、鍵保管部、暗号化類似度計算部、類似暗号文生成部、平文ランダム化部、結果送信部の機能を実現するプログラムが記憶されている。
また、コンピュータが管理装置500aの場合は、補助記憶装置902には、図11に示すデータ受信部、データ保管部、閾値保管部、鍵保管部、暗号化類似度計算部、類似暗号文生成部、平文ランダム化部、暗号文攪乱部、送信部の機能を実現するプログラムが記憶されている。
以下において、鍵生成装置200と登録装置300と検索装置400と管理装置500,500aとの各装置において列挙した構成部を、装置毎にまとめて「部」と表記する。
なお、登録装置300の入力部303、検索装置400の入力部403は、入力インタフェース905及び入力装置907により実現されていてもよい。
また、検索装置400の出力部407は、ディスプレイインタフェース906及びディスプレイ908により実現されていてもよい。
また、鍵生成装置200の鍵送信部202、検索装置400の検索データ送信部405、管理装置500の結果送信部5053、管理装置500aの送信部50532は、通信装置904により実現されていてもよい。
また、検索装置400の受信部401、管理装置500,500aのデータ受信部501は、通信装置904により実現されていてもよい。
また、登録装置300の鍵保管部302、検索装置400の鍵保管部402は、補助記憶装置902により実現されていてもよい。また、管理装置500のデータ保管部503、鍵保管部502、閾値保管部506についても、補助記憶装置902により実現されていてもよい。
「部」の機能を実現するプログラムは、1つのプログラムであってもよいし、複数のプログラムから構成されていてもよい。
このプログラムは、メモリ903にロードされ、プロセッサ901に読み込まれ、プロセッサ901によって実行される。
更に、補助記憶装置902には、OS(Operating System)も記憶されている。
そして、OSの少なくとも一部がメモリ903にロードされ、プロセッサ901はOSを実行しながら、「部」の機能を実現するプログラムを実行する。
図15では、1つのプロセッサ901が図示されているが、鍵生成装置200と登録装置300と検索装置400と管理装置500,500aとの各装置が複数のプロセッサ901を備えていてもよい。
そして、複数のプロセッサ901が「部」の機能を実現するプログラムを連携して実行してもよい。
また、「部」の処理の結果を示す情報とデータと信号値と変数値との少なくともいずれかが、メモリ903、補助記憶装置902、又は、プロセッサ901内のレジスタ又はキャッシュメモリに記憶される。
また、「部」の機能を実現するプログラムは、磁気ディスク、フレキシブルディスク、光ディスク、コンパクトディスク、ブルーレイ(登録商標)ディスク、DVD等の記憶媒体に記憶される。
「部」を「プロセッシングサーキットリー」で提供してもよい。
また、「部」を「回路」又は「工程」又は「手順」又は「処理」に読み替えてもよい。
「回路」及び「プロセッシングサーキットリー」は、プロセッサ901だけでなく、ロジックIC又はGA(Gate Array)又はASIC(Application Specific Integrated Circuit)又はFPGA(Field−Programmable Gate Array)といった他の種類の処理回路をも包含する概念である。
なお、プログラムプロダクトと称されるものは、「部」として説明している機能を実現するプログラムが記録された記憶媒体及び記憶装置であり、見た目の形式に関わらず、コンピュータ読み取り可能なプログラムをロードしているものである。
上記の実施の形態では、鍵生成装置200と登録装置300と検索装置400と管理装置500,500aとの各装置において、「部」の各々が独立した機能ブロックとして各装置を構成している。しかし、各装置は、上記のような構成でなくてもよく、各装置の構成は任意である。各装置の機能ブロックは、上記の実施の形態で説明した機能を実現することができれば、任意である。これらの機能ブロックを、他のどのような組み合わせ、あるいは任意のブロック構成で、鍵生成装置200と登録装置300と検索装置400と管理装置500,500aとの各装置を構成しても構わない。
また、鍵生成装置200と登録装置300と検索装置400と管理装置500,500aとの各装置は、1つの装置でなく、複数の装置から構成されたシステムでもよい。
また、実施の形態1から4について説明したが、これらの4つの実施の形態のうち、複数を部分的に組み合わせて実施しても構わない。あるいは、これらの4つの実施の形態のうち、1つの実施の形態を部分的に実施しても構わない。その他、これらの4つの実施の形態を、全体としてあるいは部分的に、どのように組み合わせて実施しても構わない。
なお、上記の実施の形態は、本質的に好ましい例示であって、本発明、その適用物及び用途の範囲を制限することを意図するものではなく、必要に応じて種々の変更が可能である。
100 秘匿検索システム、101 ネットワーク、200 鍵生成装置、201 鍵生成部、202 鍵送信部、300 登録装置、301 鍵受信部、302 鍵保管部、303 入力部、304 暗号化部、305 データ送信部、400 検索装置、401 受信部、402 鍵保管部、403 入力部、404 暗号化部、405 検索データ送信部、406 復号部、4061 検索結果、407 出力部、4071 検索結果情報、500,500a 管理装置、5001 暗号化検索結果、5002 攪乱ランダム暗号文、501 データ受信部、502 鍵保管部、503 データ保管部、504 暗号化類似度計算部、5041 暗号化類似度、505 暗号化結果送信部、5051 類似暗号文生成部、50510 類似暗号文、5052 平文ランダム化部、50520 ランダム暗号文、5053 結果送信部、50531 暗号文攪乱部、50532 送信部、506 閾値保管部、θ 閾値、610 保管データ、620 保管暗号化データ、710 検索データ、720 検索暗号化データ、901 プロセッサ、902 補助記憶装置、903 メモリ、904 通信装置、905 入力インタフェース、906 ディスプレイインタフェース、907 入力装置、908 ディスプレイ、910 信号線、911,912 ケーブル、9041 レシーバー、9042 トランスミッター、9100 秘匿検索方法、9200 秘匿検索プログラム、S100 秘匿検索処理、S110 鍵生成処理、S120 登録処理、S130,S130a,S130b,S130c 検索処理、S806 暗号化類似度算出処理、S807 類似暗号文生成処理、S808 平文ランダム化処理、S809 結果送信処理、PK 公開鍵、SK 秘密鍵。

Claims (11)

  1. 準同型暗号により暗号化された保管データである保管暗号化データと、前記保管データの検索に用いる検索データであって前記準同型暗号により暗号化された検索データである検索暗号化データとを準同型演算することにより、前記保管データと前記検索データとの類似度が前記準同型暗号により暗号化された暗号化類似度を算出する暗号化類似度計算部と、
    前記暗号化類似度を用いて前記類似度が閾値以内であるか否かを表す暗号化検索結果を生成し、生成した前記暗号化検索結果を送信する暗号化結果送信部と
    を有する管理装置と、
    前記管理装置から送信された前記暗号化検索結果を復号し、復号した前記暗号化検索結果を検索結果として出力する復号部と、
    前記検索結果に基づいて、前記類似度が前記閾値以内であるか否かを表す検索結果情報を出力する出力部と
    を有する検索装置と
    を備える秘匿検索システム。
  2. 前記暗号化結果送信部は、
    前記類似度に類似する複数の平文であって、前記類似度が前記閾値以内の場合には少なくとも1つは0となる前記複数の平文の各々が前記準同型暗号により暗号化された複数の類似暗号文を生成する類似暗号文生成部と、
    前記複数の類似暗号文の複数の平文をランダム化し、ランダム化された前記複数の平文の各々が前記準同型暗号により暗号化されたランダム暗号文の集合を生成する平文ランダム化部と、
    前記平文ランダム化部により生成された前記ランダム暗号文の集合を用いて、前記暗号化検索結果を生成し、生成した前記暗号化検索結果を送信する結果送信部と
    を有する請求項1に記載の秘匿検索システム。
  3. 前記平文ランダム化部は、
    前記複数の平文のうち値が0の平文を0とすると共に前記複数の平文のうち値が0ではない平文をランダム化し、ランダム化された前記複数の平文の各々が前記準同型暗号により暗号化された前記ランダム暗号文の集合を生成し、
    前記出力部は、
    前記検索結果に基づいて、前記複数の平文に値が0の平文があるか否かを判定し、値が0の平文があると判定した場合に前記類似度が前記閾値以内であることを表す前記検索結果情報を出力し、前記複数の平文に値が0の平文がないと判定した場合に前記類似度が前記閾値より大きいことを表す前記検索結果情報を出力する請求項2に記載の秘匿検索システム。
  4. 前記類似暗号文生成部は、
    前記類似度が前記閾値以内の場合に、先頭から前記類似度の値番目の平文が0となる前記複数の平文の各々が前記準同型暗号により暗号化された前記複数の類似暗号文を生成し、
    前記出力部は、
    前記複数の平文の中に値が0の平文があると判定した場合に、前記複数の平文における前記値が0の平文の順番を取得し、前記順番を前記類似度と特定し、特定した前記類似度を出力する請求項3に記載の秘匿検索システム。
  5. 前記結果送信部は、
    前記平文ランダム化部により生成された前記ランダム暗号文の集合を攪乱し、攪乱した前記ランダム暗号文の集合を攪乱ランダム暗号文として生成する暗号文攪乱部と、
    前記暗号文攪乱部により生成された前記攪乱ランダム暗号文の集合を前記暗号化検索結果として送信する送信部と
    を備え、
    前記出力部は、
    前記複数の平文に値が0の平文があるか否かを判定し、値が0の平文があると判定した場合に前記類似度が前記閾値以内であることを表す前記検索結果情報を出力し、前記複数の平文に値が0の平文がないと判定した場合に前記類似度が前記閾値より大きいことを表す前記検索結果情報を出力する請求項2または3に記載の秘匿検索システム。
  6. 前記暗号文攪乱部は、
    前記ランダム暗号文の集合において、前記ランダム暗号文の集合における前記ランダム暗号文の順序を変更することにより前記ランダム暗号文の集合を攪乱し、順序を変更した前記ランダム暗号文の集合を攪乱ランダム暗号文として生成する請求項5に記載の秘匿検索システム。
  7. 前記暗号文攪乱部は、
    前記ランダム暗号文の集合における2つのランダム暗号文において、一方のランダム暗号文の成分と他方のランダム暗号文の成分とを交換することにより前記ランダム暗号文の集合を攪乱し、攪乱した前記ランダム暗号文の集合を前記攪乱ランダム暗号文として生成する請求項5に記載の秘匿検索システム。
  8. 前記暗号文攪乱部は、
    前記ランダム暗号文の集合に含まれる全てのランダム暗号文を準同型乗算により結合することにより前記ランダム暗号文の集合を攪乱し、前記ランダム暗号文の集合を結合した1つの結合暗号文を前記攪乱ランダム暗号文として生成する請求項5に記載の秘匿検索システム。
  9. 準同型暗号により暗号化された保管データである保管暗号化データと、前記保管データの検索に用いる検索データであって前記準同型暗号により暗号化された検索データである検索暗号化データとを準同型演算することにより、前記保管データと前記検索データとの類似度が前記準同型暗号により暗号化された暗号化類似度を算出する暗号化類似度計算部と、
    前記類似度に類似する複数の平文であって、前記類似度が閾値以内の場合には少なくとも1つは0となる前記複数の平文の各々が前記準同型暗号により暗号化された複数の類似暗号文を生成する類似暗号文生成部と、
    前記複数の類似暗号文の複数の平文をランダム化し、ランダム化された前記複数の平文の各々が前記準同型暗号により暗号化されたランダム暗号文の集合を生成する平文ランダム化部と、
    前記平文ランダム化部により生成された前記ランダム暗号文の集合を用いて、前記類似度が前記閾値以内であるか否かを表す暗号化検索結果を生成し、生成した前記暗号化検索結果を送信する結果送信部と
    を備える管理装置。
  10. 準同型暗号により暗号化された保管データを保管暗号化データとして保管する管理装置と、検索データを用いて前記保管データを検索する検索装置とを有する秘匿検索システムの秘匿検索方法において、
    前記管理装置の暗号化類似度計算部が、前記保管暗号化データと前記検索データが前記準同型暗号により暗号化された検索暗号化データを準同型演算することにより、前記保管データと前記検索データとの類似度が前記準同型暗号により暗号化された暗号化類似度を算出し、
    前記管理装置の暗号化結果送信部が、前記暗号化類似度を用いて、前記類似度が閾値以内であるか否かを表す暗号化検索結果を生成し、生成した前記暗号化検索結果を送信し、
    前記検索装置の復号部が、前記管理装置から送信された前記暗号化検索結果を復号し、復号した前記暗号化検索結果を検索結果として出力し、
    前記検索装置の出力部が、前記検索結果に基づいて、前記類似度が前記閾値以内であるか否かを表す検索結果情報を出力する秘匿検索方法。
  11. 準同型暗号により暗号化された保管データを保管暗号化データとして保管する管理装置の秘匿検索プログラムにおいて、
    前記保管暗号化データと、前記保管データの検索に用いる検索データであって前記準同型暗号により暗号化された検索データである検索暗号化データとを準同型演算することにより、前記保管データと前記検索データとの類似度が前記準同型暗号により暗号化された暗号化類似度を算出する暗号化類似度算出処理と、
    前記類似度に類似する複数の平文であって、前記類似度が閾値以内の場合には少なくとも1つは0となる前記複数の平文の各々が前記準同型暗号により暗号化された複数の類似暗号文を生成する類似暗号文生成処理と、
    前記複数の類似暗号文の複数の平文をランダム化し、ランダム化された前記複数の平文の各々が前記準同型暗号により暗号化されたランダム暗号文の集合を生成する平文ランダム化処理と、
    前記平文ランダム化処理により生成された前記ランダム暗号文の集合を用いて、前記類似度が前記閾値以内であるか否かを表す暗号化検索結果を生成し、生成した前記暗号化検索結果を送信する結果送信処理と
    をコンピュータに実行させる備える秘匿検索プログラム。
JP2016526364A 2015-10-09 2015-10-09 秘匿検索システム、管理装置、秘匿検索方法及び秘匿検索プログラム Active JP5985123B1 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2015/078712 WO2017061024A1 (ja) 2015-10-09 2015-10-09 秘匿検索システム、管理装置、秘匿検索方法及び秘匿検索プログラム

Publications (2)

Publication Number Publication Date
JP5985123B1 JP5985123B1 (ja) 2016-09-06
JPWO2017061024A1 true JPWO2017061024A1 (ja) 2017-10-05

Family

ID=56843292

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016526364A Active JP5985123B1 (ja) 2015-10-09 2015-10-09 秘匿検索システム、管理装置、秘匿検索方法及び秘匿検索プログラム

Country Status (5)

Country Link
US (1) US10673614B2 (ja)
EP (1) EP3361469B8 (ja)
JP (1) JP5985123B1 (ja)
CN (1) CN108140334B (ja)
WO (1) WO2017061024A1 (ja)

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7024709B2 (ja) * 2016-06-02 2022-02-24 日本電気株式会社 暗号化情報照合装置、暗号化情報照合方法、及び、暗号化情報照合プログラム
US10812252B2 (en) * 2017-01-09 2020-10-20 Microsoft Technology Licensing, Llc String matching in encrypted data
CN106953722B (zh) * 2017-05-09 2017-11-07 深圳市全同态科技有限公司 一种全同态加密的密文查询方法和系统
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
JP7132506B2 (ja) * 2019-01-07 2022-09-07 富士通株式会社 秘密情報検索システム、秘密情報検索プログラム、および秘密情報検索方法
US11764940B2 (en) 2019-01-10 2023-09-19 Duality Technologies, Inc. Secure search of secret data in a semi-trusted environment using homomorphic encryption
US11907952B2 (en) * 2019-03-12 2024-02-20 Cox Communications, Inc. Secured analytics using encrypted data
JPWO2021029173A1 (ja) * 2019-08-09 2021-02-18
US11070357B2 (en) * 2019-10-17 2021-07-20 Raytheon Company Techniques for privacy-preserving data processing across multiple computing nodes
CN111159745B (zh) * 2019-12-30 2023-04-07 深圳前海微众银行股份有限公司 一种适用于区块链的验证方法及装置
US11308234B1 (en) 2020-04-02 2022-04-19 Wells Fargo Bank, N.A. Methods for protecting data
US11816212B2 (en) * 2020-04-15 2023-11-14 Inferati Inc. Large scale zero trust malware detection
US11238168B2 (en) * 2020-04-20 2022-02-01 Cyberark Software Ltd. Secure, efficient, and flexible searchable-encryption techniques
KR102522708B1 (ko) * 2020-06-15 2023-04-18 주식회사 크립토랩 동형 암호문에 대한 통계 연산 수행하는 장치 및 방법
RU2763394C1 (ru) * 2021-03-30 2021-12-28 Автономная некоммерческая организация высшего образования «Университет Иннополис» Способ и устройство шифрования данных
JP2023019432A (ja) * 2021-07-29 2023-02-09 株式会社日立製作所 情報処理システム及び情報処理方法
CN115001649A (zh) * 2022-04-15 2022-09-02 支付宝(杭州)信息技术有限公司 批量加密方法、相关装置、系统、设备、介质及程序产品
WO2024015101A1 (en) * 2022-07-15 2024-01-18 Google Llc Private pre-fetching of search results

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4395611B2 (ja) 2003-10-28 2010-01-13 独立行政法人情報通信研究機構 暗号化データベース検索装置および方法ならびに暗号化データベース検索プログラム
EP1815637B1 (en) * 2004-11-16 2016-04-20 Koninklijke Philips N.V. Securely computing a similarity measure
JP2007114494A (ja) 2005-10-20 2007-05-10 Nippon Telegr & Teleph Corp <Ntt> 秘匿計算方法及び装置
JP2010165275A (ja) 2009-01-19 2010-07-29 Mitsubishi Electric Corp データ格納システム及び情報送信装置及びサーバ装置
US8630422B2 (en) * 2009-11-10 2014-01-14 International Business Machines Corporation Fully homomorphic encryption method based on a bootstrappable encryption scheme, computer program and apparatus
US8515058B1 (en) * 2009-11-10 2013-08-20 The Board Of Trustees Of The Leland Stanford Junior University Bootstrappable homomorphic encryption method, computer program and apparatus
JP5496410B2 (ja) * 2011-02-22 2014-05-21 三菱電機株式会社 類似度算出システム及び類似度算出装置及びコンピュータプログラム及び類似度算出方法
US9215068B2 (en) 2011-09-14 2015-12-15 National Institute Of Advanced Industrial Science And Technology Search system, search method, and program
JP5657128B2 (ja) * 2011-09-27 2015-01-21 株式会社日立製作所 秘匿計算システム、秘匿計算方法、および秘匿計算プログラム
JP5720536B2 (ja) 2011-11-10 2015-05-20 富士通株式会社 秘匿化データの検索のための情報処理方法及び装置
JP5948060B2 (ja) 2012-01-13 2016-07-06 株式会社日立製作所 暗号化データの高速な類似検索処理システム
DE112012005615B4 (de) * 2012-03-19 2016-05-04 Mitsubishi Electric Corporation Sequenzprogramm-Erzeugungsvorrichtung
JP6083234B2 (ja) 2012-12-27 2017-02-22 富士通株式会社 暗号処理装置
JP2014126865A (ja) 2012-12-27 2014-07-07 Fujitsu Ltd 暗号処理装置および方法
JP6244728B2 (ja) 2013-08-07 2017-12-13 富士通株式会社 情報処理方法及びプログラム
JP6144992B2 (ja) * 2013-08-08 2017-06-07 株式会社日立製作所 検索可能暗号処理システム及び方法
CN103744976B (zh) * 2014-01-13 2017-02-22 北京工业大学 一种基于同态加密的图像安全检索方法
JP6277734B2 (ja) * 2014-01-20 2018-02-14 富士通株式会社 情報処理プログラム、情報処理装置および情報処理方法
CN104967693B (zh) * 2015-07-15 2018-05-18 中南民族大学 面向云存储的基于全同态密码技术的文档相似度计算方法

Also Published As

Publication number Publication date
EP3361469B1 (en) 2020-12-23
EP3361469B8 (en) 2021-03-10
CN108140334A (zh) 2018-06-08
US20180278410A1 (en) 2018-09-27
EP3361469A4 (en) 2018-08-15
CN108140334B (zh) 2021-03-23
WO2017061024A1 (ja) 2017-04-13
EP3361469A1 (en) 2018-08-15
JP5985123B1 (ja) 2016-09-06
US10673614B2 (en) 2020-06-02

Similar Documents

Publication Publication Date Title
JP5985123B1 (ja) 秘匿検索システム、管理装置、秘匿検索方法及び秘匿検索プログラム
JP5253567B2 (ja) 暗号システム、暗号通信方法、暗号化装置、鍵生成装置、復号装置、コンテンツサーバ装置、プログラム、記憶媒体
KR101418254B1 (ko) 암호 시스템, 암호 통신 방법, 암호화 장치, 키 생성 장치, 복호 장치, 콘텐츠 서버 장치, 프로그램, 기억매체
JP6234605B2 (ja) サーバ装置及び検索システム及び端末装置及び検索方法及びサーバプログラム及び端末プログラム
WO2013111284A1 (ja) データ検索装置、データ検索方法、データ検索プログラム、データ登録装置、データ登録方法、データ登録プログラムおよび情報処理装置
EP2665052A1 (en) Data processing device and data archiving device
JP5432736B2 (ja) 暗号化された情報のためのキーワード検索システム、キーワード検索方法、検索要求装置、検索代行装置、プログラム、記録媒体
JP6556955B2 (ja) 通信端末、サーバ装置、プログラム
JP6770075B2 (ja) 暗号化メッセージ検索方法、メッセージ送受信システム、端末、プログラム
JP5670365B2 (ja) 暗号文検索システム、検索情報生成装置、検索実行装置、検索要求装置、暗号文検索方法、検索情報生成方法、検索実行方法、検索要求方法、およびプログラム
JP6599066B1 (ja) 登録装置、サーバ装置、秘匿検索システム、秘匿検索方法、登録プログラムおよびサーバプログラム
JP6961324B2 (ja) 検索可能暗号処理システム
Zhou et al. Threshold key management scheme for blockchain-based intelligent transportation systems
JP2018036418A (ja) 暗号システム、暗号方法及び暗号プログラム
JP2010160235A (ja) 検索システム、端末装置、データベース装置、検索方法及びプログラム
JP7325689B2 (ja) 暗号文変換システム、変換鍵生成方法、及び、変換鍵生成プログラム
WO2015107561A1 (ja) 検索システム、検索方法および検索プログラム
Devi et al. A comparative study on homomorphic encryption algorithms for data security in cloud environment
JP6885325B2 (ja) 暗号化装置、復号装置、暗号化方法、復号方法、プログラム
JP6949276B2 (ja) 再暗号化装置、再暗号化方法、再暗号化プログラム及び暗号システム
JP2013205655A (ja) プログラム、情報処理方法及び情報処理装置
Bakhtiari et al. Lightweight symmetric encryption algorithm in big data
Bhattasali SeDReS: Secured Data Retrieval Service
JP2013092740A (ja) アクセス制御システム、アクセス制御方法およびプログラム

Legal Events

Date Code Title Description
A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20160615

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160802

R150 Certificate of patent or registration of utility model

Ref document number: 5985123

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