JPWO2020136884A1 - 秘匿検索システムおよび秘匿検索方法 - Google Patents

秘匿検索システムおよび秘匿検索方法 Download PDF

Info

Publication number
JPWO2020136884A1
JPWO2020136884A1 JP2020562226A JP2020562226A JPWO2020136884A1 JP WO2020136884 A1 JPWO2020136884 A1 JP WO2020136884A1 JP 2020562226 A JP2020562226 A JP 2020562226A JP 2020562226 A JP2020562226 A JP 2020562226A JP WO2020136884 A1 JPWO2020136884 A1 JP WO2020136884A1
Authority
JP
Japan
Prior art keywords
search
key
index
tag
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
JP2020562226A
Other languages
English (en)
Other versions
JP6918253B2 (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
Publication of JPWO2020136884A1 publication Critical patent/JPWO2020136884A1/ja
Application granted granted Critical
Publication of JP6918253B2 publication Critical patent/JP6918253B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • G06F21/6227Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database where protection concerns the structure of data, e.g. records, types, queries
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/78Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Databases & Information Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Storage Device Security (AREA)

Abstract

秘匿検索システムは、検索文字列の各文字が位置を指定されて設定された検索鍵TDvを生成し、被検索文字列の各文字が位置を指定されて設定された複数の暗号化タグETxから、生成した検索鍵TDvに対応する暗号化タグを検索する。特に、秘匿検索システムは、検索鍵TDvおよび暗号化タグETxの一方に各文字の位置tを設定し、他方に符号を反転した各文字の位置−tを設定することにより、検索の際に、双方に設定された位置tと位置−tとを打ち消すことで、検索鍵TDvを部分文字列として含むような暗号化タグETxを検索する。

Description

この発明は、複数の被検索文字列の中から検索文字列を含む被検索文字列を検索する秘匿検索システムおよび秘匿検索方法に関する。
秘匿検索とは、暗号化したままデータを検索することが可能な技術である。クラウドサービスの広がりを見せる現代において、安価かつ手間なく利用可能なクラウドストレージが、一般的に用いられるようになりつつある。一方で、極めて慎重に取り扱うべきセンシティブな情報である機微な情報を含むデータをクラウドで管理するような場合は、情報漏洩のリスクがある。そのため、データを暗号化して保管する必要がある。秘匿検索は、暗号化されているデータであっても、当該データを復号することなく検索が行えるため、安全性と利便性を両立することが可能である。
秘匿検索では、2つの暗号化されたキーワードを用いることで検索を実現する。1つ目は、データに関連付けるキーワード(以下、被検索文字列とする)の暗号文で、暗号化タグという。2つ目は、検索するキーワード(以下、検索文字列とする)の暗号文で、検索鍵という。データを登録するときは、暗号化したデータと暗号化タグとをストレージサーバに登録する。このとき、暗号化タグは関連付けられているデータまたはデータの識別子と紐づけられて、暗号化索引として保管される。秘匿検索は、検索者が送信する検索鍵と一致する暗号化タグを、暗号化索引内から復号することなく特定することで、データおよびキーワードの情報を露出することなく実現される。
秘匿検索では、被検索文字列と検索文字列とが等しい場合に一致と判定する方式(以下、完全一致秘匿検索とする)と、被検索文字列に検索文字列が含まれる場合に一致と判定する方式(以下、部分一致秘匿検索という)とが知られている。部分一致秘匿検索は、暗号化タグの部分文字列と一致判定が可能なため、完全一致秘匿検索よりもあいまいな検索を実現でき、利便性が高い。部分一致秘匿検索の実現方法の一つに、文字または単語など部分文字列毎に暗号文を生成する方式がある。暗号化タグまたは検索鍵の部分文字列を入れ替えたり切り離したりしてさらに検索が可能な場合、頻度分析等の攻撃手法により、部分文字列情報が漏洩する可能性がある。そのため、登録者または検索者が意図しない検索を悪意のある第三者に実行させない仕組みが必要である。
特許文献1および特許文献2は、部分一致秘匿検索を実現することが可能な手法をそれぞれ示している。ただし、特許文献1の手法は、暗号化タグの生成と検索鍵の生成とにおいて、同じ鍵を使用するため、権限が分離できない。特許文献2の手法は、暗号化タグの生成と検索鍵の生成とで異なる鍵を使用でき、さらに検索者毎に異なる権限を持つ鍵を生成可能なため、安全性が特許文献1より高い。また、特許文献2の手法は、暗号文への分散値の埋め込み、および、部分一致検索時に必要な秘密鍵(以下、シフト用秘密鍵)を導入することで、悪意のある第三者による意図しない検索を防止している。
また、非特許文献1は、安全性が高く、部分一致秘匿検索に利用可能な暗号方式を示している。しかしながら、非特許文献1には、特許文献2のような検索鍵変換による検索者端末から検索装置へ送信される検索情報量の削減を行うための手法については記載されていない。以下、特許文献2の検索鍵変換について説明する。
上述したように、特許文献2は、権限を分離することで、安全性が高く柔軟性のある部分一致秘匿検索を実現している。しかしながら、特許文献2では、暗号化タグの部分文字列と検索鍵とが一致するか否かの判定を行うために、暗号化タグの部分文字列の先頭文字位置と検索鍵の先頭文字位置とを合わせる処理を行う必要がある。当該処理を「検索鍵変換」という。このように、特許文献2では、検索鍵変換を行う必要があり、暗号化タグまたは検索鍵の文字数によっては、検索時間の大幅な増加を招く可能性がある。
国際公開第2017/122352号 国際公開第2016/113878号
Tatsuaki Okamoto and Katsuyuki Takashima,"Fully Secure Unbounded Inner−Product and Attribute−Based Encryption",Asiacrypt 2012,LNCS 7658,2012年,p.349−366
上述したように、特許文献2における検索処理は、検索鍵変換処理の計算量が大きいため、暗号化タグの部分文字列と検索鍵とが一致するか否かの判定を多用する場合には、検索時間が長くなるという課題があった。
この発明は、かかる課題を解決するためになされたものであり、悪意のある第三者による意図しない検索を防止しつつ、検索時間の短縮化を図ることが可能な秘匿検索システムおよび秘匿検索方法を得ることを目的とする。
この発明に係る秘匿検索システムは、検索文字列の各文字が位置を指定されて設定された検索鍵TDvを生成する検索鍵生成部と、被検索文字列の各文字が位置を指定されて設定された暗号化タグETxを生成する暗号化タグ生成部と、前記暗号化タグETxの中から、前記検索鍵TDvに対応する暗号化タグETxを検索する検索部とを備え、前記検索鍵TDvに含まれる要素および前記暗号化タグETxに含まれる要素の一方に、前記各文字の位置を示すインデックスtが設定され、他方に、前記インデックスtの符号を反転したインデックス−tが設定され、検索時に、前記検索鍵TDvと前記暗号化タグETxとに設定された前記インデックスtと前記インデックス−tとを加算することで、前記インデックスtと前記インデックス−tとを打消して、前記検索鍵TDvに対応する前記暗号化タグETxを検索する。
この発明に係る秘匿検索方法は、検索文字列の各文字が位置を指定されて設定された検索鍵TDvを生成する検索鍵生成ステップと、被検索文字列の各文字が位置を指定されて設定された複数の暗号化タグETxを生成する暗号化タグ生成ステップと、複数の前記暗号化タグETxから、前記検索鍵TDvに対応する暗号化タグETxを検索する検索ステップとを備え、前記検索鍵TDvに含まれる要素および前記暗号化タグETxに含まれる要素の一方に、前記各文字の位置を示すインデックスtが設定され、他方に、前記インデックスtの符号を反転したインデックス−tが設定され、検索時に、前記検索鍵TDvと前記暗号化タグETxとに設定された前記インデックスtと前記インデックス−tとを加算することで、前記インデックスtと前記インデックス−tとを打消して、前記検索鍵TDvに対応する前記暗号化タグETxを検索する。
この発明に係る秘匿検索システムおよび秘匿検索方法によると、悪意のある第三者による意図しない検索を防止しつつ、検索時間の短縮化を図ることができる。
内積述語暗号における内積の取り方の説明図である。 内積述語暗号における内積の取り方の説明図である。 内積述語暗号の基本構成の説明図である。 この発明の実施の形態1に係る部分一致秘匿検索方式のキーテクニックの説明図である。 この発明の実施の形態1に係る部分一致秘匿検索方式の実現例の説明図である。 この発明の実施の形態1に係る部分一致秘匿検索方式の実現例の説明図である。 この発明の実施の形態1に係る部分一致秘匿検索方式の実現例の説明図である。 この発明の実施の形態1に係る秘匿検索システムの構成図である。 この発明の実施の形態1に係る鍵生成装置の構成図である。 この発明の実施の形態1に係る暗号化タグ生成装置の構成図である。 この発明の実施の形態1に係る検索鍵生成装置の構成図である。 この発明の実施の形態1に係る検索装置の構成図である。 この発明の実施の形態1に係るKGアルゴリズムの処理のフローチャートである。 この発明の実施の形態1に係るTagGenアルゴリズムの処理のフローチャートである。 この発明の実施の形態1に係るTrapGenアルゴリズムの処理のフローチャートである。 この発明の実施の形態1に係るSearchアルゴリズムの処理のフローチャートである。 この発明の実施の形態1に係る鍵生成装置と、暗号化タグ生成装置と、検索鍵生成装置と、変換後検索鍵生成装置と、検索装置とのハードウェア構成例を示す図である。
実施の形態1.
以下、この発明の実施の形態1に係る秘匿検索システムについて、図面を用いて説明する。
<記法の説明>
はじめに、以下の説明における記法について説明する。
Aがランダムな値または分布であるとき、下式(1)は、Aの分布に従い、Aからyをランダムに選択することを表す。つまり、下式(1)において、yは乱数である。
Figure 2020136884
Aが集合であるとき、下式(2)は、Aからyを一様に選択することを表す。つまり、下式(2)において、yは一様乱数である。
Figure 2020136884
下式(3)は、yにzが設定されたこと、yがzにより定義されたこと、または、yがzを代入されたことを表す。
Figure 2020136884
aが定数であるとき、下式(4)は、機械AまたはアルゴリズムAが、入力xに対して、aを出力することを表し、下式(5)は、a=1の場合を例示した式である。
Figure 2020136884
下式(6)は、位数qの体を表す。
Figure 2020136884
ベクトルxは、有限体Fqにおける下式(7)のようなベクトル表現を表す。なお、表記「」は、その前に記載された記号の上部に→が付されることを意味しており、ベクトルを表している。
Figure 2020136884
下式(8)は、下式(9)に示す2つのベクトルxおよびvの下式(10)に示す内積を表す。
Figure 2020136884
Tは、行列Xの転置行列を表す。
また、下式(11)に示す基底Bと基底B*とは、下式(12)の関係を満たす。
Figure 2020136884
<実施の形態1の概要の説明>
本実施の形態1では、内積述語暗号を応用して、部分一致秘匿検索方式を実現する。
図1および図2に基づき、内積述語暗号における内積の取り方について説明する。
図1に示すように、暗号文がベクトルx=(x1,x2,...,xn)であり、鍵がベクトルv=(v1,v2,...,vn)であるとする。暗号文のベクトルxと鍵のベクトルvとの要素数は同じである。この場合、内積述語暗号では、ベクトルxとベクトルvとの内積Σi=1 n(xi・vi)が計算され、暗号文が鍵により復号される。つまり、暗号文のベクトルxと鍵のベクトルvとの対応する要素毎の内積の和が計算され、暗号文が鍵により復号される。
また、図2に示すように、暗号文がベクトルx=(x1,x2)であり、鍵がベクトルv=(v1,v2,...,vn)であるように、暗号文のベクトルxと鍵のベクトルvとの要素数が異なる場合もある。この場合にも、暗号文のベクトルxと鍵のベクトルvとの対応する要素毎の内積の和が計算され、暗号文が鍵により復号される。図2の場合、ベクトルxの要素x1,x2が、ベクトルvの要素v1,v2にそれぞれ対応しているので、これらの要素毎の内積の和が計算される。一方、ベクトルvの要素v3,...,vnについては、対応するベクトルxの要素がないため、内積は計算されない。
次に、図3に基づき、内積述語暗号の基本構成について説明する。
一般に、内積述語暗号では、秘密値s0と、t∈Ivの各整数tについての分散値stとが用いられる。秘密値s0と分散値stとには、s0=Σt∈Ivtという関係がある。ここで、tはインデックスであり、Ivは、インデックスtの集合である。
鍵は、秘密値s0が設定された基底B* 0上のベクトルである要素k* 0と、t∈Ivの各整数tについて、分散値stと属性値vtとインデックスtとが設定された基底B*上のベクトルである要素k* tとを含む。一方、暗号文は、基底B* 0に対応する基底B0上のベクトルである要素c0と、t∈Ixの各整数tについて、属性値xtとインデックスtとが設定された、基底B*に対応する基底B上のベクトルである要素ctとを含む。ここで、Ixは、インデックスtの集合である。
そして、要素k* 0と要素c0との内積が計算されるとともに、t∈Ivとの各整数tについて、鍵に含まれる要素k* tと、暗号文に含まれる要素ctとの内積が計算される。t∈Ivの各整数tについては、要素k* tに設定された属性値vtと、要素ctに設定された属性値xtとが対応している場合に、分散値stが得られる。s0=Σt∈Ivtであるため、t∈Ivの全ての要素k* tに設定された分散値stが得られると、要素k* 0に設定された秘密値s0が得られる。そして、この場合に、暗号文が鍵により復号できる。
なお、上述したように、要素k* tと要素ctとには、インデックスtが設定されている。そのため、i≠jの整数i,jについて、属性値viと属性値xjとが対応していたとしても、要素k* iと要素cjとの内積を計算しても分散値siが得られることはない。ここで、インデックスtは、被検索文字列および検索文字列における各文字の位置を示す。
次に、図4に基づき、実施の形態1に係る部分一致秘匿検索方式のキーテクニックを説明する。
上述した内積述語暗号の基本構成では、暗号文の要素ctと鍵の要素k* tのインデックスtに関連する各要素μ(t,−1)およびσ(1,t)によって、悪意のある第三者による意図しない検索を防止している。一方で、同じインデックスtを共有する要素同士でなければ分散値siを計算できないため、追加の仕組みおよび追加の計算なしに部分一致秘匿検索は実現が困難である。
そこで、本実施の形態1では、インデックスtの設定方法を変更する。図4に示すように、まず、新たに、分散値τtを使用する。すなわち、本実施の形態1においては、内積述語暗号において、秘密値s0と、t∈Ivの各整数tについての第1の分散値stと、t∈Ivの各整数tについての第2の分散値τtとが用いられる。秘密値s0と分散値stとには、s0=Σt∈Ivtという関係がある。また、各整数tについての分散値τtは、0=Σt∈Ivτtの関係を満たす。
次に、本実施の形態1においては、暗号文の要素ctには、σ(1,t)に代えて、γβ-tを設定する。また、鍵の要素k* tには、μ(t,−1)に代えて、γ’βtτtを設定する。すなわち、本実施の形態1においては、鍵は、要素k* 0と要素k* tとを含む。要素k* 0は、秘密値s0が設定された基底B* 0上のベクトルである。要素k* tは、t∈Ivの各整数tについて、第1の分散値stと第2の分散値τtと属性値vtとインデックスtとが設定された基底B*上のベクトルである。一方、暗号文は、要素c0と要素ctとを含む。要素c0は、基底B* 0に対応する基底B0上のベクトルである。要素ctは、t∈Ixの各整数tについて、属性値xtとインデックス−tとが設定された、基底B*に対応する基底B上のベクトルである。
ここで、βは、位数が十分大きいFqの固定された元とし、γおよびγ’は乱数とする。ただし、βの冪の符号は暗号文と鍵とで入れ替えても構わない。すなわち、上記の説明においては、検索文字列である鍵にインデックスtを設定し、被検索文字列である暗号文にインデックス−tを設定すると説明した。しかしながら、その場合に限らず、検索文字列である鍵にインデックス−tを設定し、被検索文字列である暗号文にインデックスtを設定するようにしてもよい。また、γおよびγ’は省略しても構わない。また、βは公開しても構わないが、秘密情報として登録者と検索者との間で安全な通信路を用いて事前に共有しても構わない。
このことにより、例えば同じインデックスtを共有する暗号文と鍵とで部分一致秘匿検索を行う場合、各インデックスtにおける各暗号文の要素ctと各鍵の要素k* tとで内積を計算する。その結果、各インデックスtにおいてβの冪要素が打ち消しあい、γγ’τtを取り出すことができる。このとき、0=γγ’Σt∈Ivτtであることから、τtの項は打ち消しあって、残った分散値siを得ることができる。
次に、鍵の要素のインデックスtに対して暗号文の要素のインデックスをαだけずらして部分一致秘匿検索を行う場合について説明する。即ち、この場合は、暗号文の要素ct+αに対して鍵の要素k* tとの内積を計算することになり、各インデックスtにおいてγγ’βτtを取り出すことができる。この結果、0=γγ’βΣt∈Ivτtであることから、この場合も、τtの項は打ち消しあって、残った分散値siを得ることができる。
言い換えると、一定の幅αだけ、鍵の全要素をずらす場合のみ一致判定が可能となる。これは、即ち、検索鍵変換処理を行わずに部分一致秘匿検索を実現し、一方で、文字の入れ替えまたは切り離しによる意図しない検索を防止することができることを意味する。
このように、本実施の形態1においては、内積述語暗号において、第1の分散値stと第2の分散値τtとを用いる。また、検索文字列である鍵と被検索文字列である暗号文において、一方にインデックスtを設定し、他方に符号を反転させたインデックス−tを設定する。これにより、内積を計算する際に、インデックスtを打ち消すことができる。その結果、特許文献2で必要であった検索鍵変換処理が不要となり、検索時間の短縮を図ることができる。また、悪意のある第三者による意図しない検索を防止することができる。
図5に基づき、本実施の形態1に係る部分一致秘匿検索方式の実現例を説明する。
図5に示すように、データベースに、ABCDEという検索タグとなる被検索文字列が暗号化されて生成された暗号化タグETxが記憶されている。このとき、検索文字列として、CDという文字列が与えられたとする。
この場合、ABCDEという被検索文字列の各文字を属性値xtとして、暗号文の要素ctが生成される。つまり、要素c1には属性値Aが設定され、要素c2には属性値Bが設定され、要素c3には属性値Cが設定され、要素c4には属性値Dが設定され、要素c5には属性値Eが設定される。このように、暗号化タグETxは、被検索文字列の各文字が位置を指定されて設定されている。
一方、CDという文字列の各文字を属性値vtとして、検索鍵TDvが生成される。つまり、要素k* 1には属性値Cが設定され、要素k* 2には属性値Dが設定される。このように、検索鍵TDvは、検索文字列の各文字が位置を指定されて設定されている。
検索処理では、図5に示すように、検索鍵TDvの要素k* tを1つずつ順にずらして暗号化タグETxを順に復号して、一致判定を行う。この実現例では、要素c3,c4を要素k* 1,k* 2で復号したときに一致となる。
次に、図6に基づき、本実施の形態1に係る部分一致秘匿検索方式の他の実現例を説明する。
データベースに、ABCDEという検索タグとなる被検索文字列が暗号化された暗号化タグETxが記憶されており、検索文字列として、BDという文字列が与えられたとする。
この場合、ABCDEという被検索文字列の各文字を属性値xtとして、暗号文の要素ctが生成される。つまり、要素c1には属性値Aが設定され、要素c2には属性値Bが設定され、要素c3には属性値Cが設定され、要素c4には属性値Dが設定され、要素c5には属性値Eが設定される。
一方、BDという検索文字列の各文字を属性値vtとして、検索鍵TDvが生成される。つまり、要素k* 1には属性値Bが設定され、要素k* 2には属性値Dが設定される。
この実現例では、例えば、意図しない検索として、要素k* 1,k* 2を不正に分離して要素c2,c4を復号した場合を考える。このとき、各要素の属性値が一致しているため、内積の結果としてvtおよびxt成分は打ち消されて0となる。一方で、内積の結果として取り出されるτtの項は、γγ’(β-1τ1+β-2τ2)≠0となり、打ち消されないため、部分一致秘匿検索の結果は不一致となる。
次に、図7に基づき、実施の形態1に係る部分一致秘匿検索方式のさらなる他の実現例を説明する。
データベースに、ABCDEという検索タグとなる被検索文字列が暗号化された暗号化タグが記憶されており、検索文字列として、BAという文字列が与えられたとする。
この場合、ABCDEという被検索文字列の各文字を属性値xtとして、暗号文の要素ctが生成される。つまり、要素c1には属性値Aが設定され、要素c2には属性値Bが設定され、要素c3には属性値Cが設定され、要素c4には属性値Dが設定され、要素c5には属性値Eが設定される。
一方、BAという文字列の各文字を属性値vtとして、検索鍵が生成される。つまり、要素k* 1には属性値Bが設定され、要素k* 2には属性値Aが設定される。
この実現例では、例えば、意図しない検索として、要素k* 1,k* 2を不正に置換して要素c1,c2を復号した場合を考える。このとき、各要素の属性値が一致しているため、内積の結果としてvtおよびxt成分は打ち消されて0となる。一方で、内積の結果として取り出されるτtの項は、γγ’(β-1τ1+β1τ2)≠0となり、打ち消されないため、部分一致秘匿検索の結果は不一致となる。
このように、本実施の形態1においては、図5に示すように、一定の幅αだけ、鍵の全要素をずらす場合のみ一致判定が可能となる。一方、図6に示すような文字の切り離し、および、図7に示すような文字の入れ替えなどの、意図しない検索の場合には、一致判定が不可能になる。これにより、悪意のある第三者による意図しない検索を防止することができる。
<実施の形態1に係る秘匿検索システムの構成の説明>
本実施の形態1に係る秘匿検索システム10の構成を説明する前に、本実施の形態1における部分一致秘匿検索方式の基本構成について説明する。
本実施の形態1に係る秘匿検索システム10で用いられる部分一致秘匿検索方式は、KGアルゴリズムと、TagGenアルゴリズムと、TrapGenアルゴリズムと、Searchアルゴリズムとを備える。
KGアルゴリズムは、セキュリティパラメータλを入力として、公開鍵pkと、秘密鍵skとを出力するアルゴリズムである。
TagGenアルゴリズムは、公開鍵pkと、属性ベクトルxとを入力として、暗号化タグETxを出力する確率的アルゴリズムである。
TrapGenアルゴリズムは、公開鍵pkと、秘密鍵skと、述語ベクトルvとを入力として、検索鍵TDvを出力する確率的アルゴリズムである。
Searchアルゴリズムは、公開鍵pkと、暗号化タグETxと、検索鍵TDvとを入力として、検索にヒットしたことを示す0、または、検索にヒットしなかったことを示す1を出力する確定的アルゴリズムである。
図8に基づき、本実施の形態1に係る秘匿検索システム10について説明する。
図8に示す秘匿検索システム10は、検索文字列の各文字が位置を指定されて設定された検索鍵TDvを生成する。また、秘匿検索システム10は、被検索文字列の各文字が位置を指定されて設定された複数の暗号化タグETxを生成する。そして、秘匿検索システム10は、生成した検索鍵TDvに対応する暗号化タグETxを検索する。このとき、秘匿検索システム10は、上述したように、検索鍵TDvに各文字の位置を示すインデックスtを設定し、暗号化タグETxに、インデックスtの符号を反転したインデックス−tを設定している。そのため、検索時に、検索鍵TDvと暗号化タグETxとに設定されたインデックスtとインデックス−tとを加算することで、双方に設定された位置を打消して、検索鍵TDvを部分文字列として含む暗号化タグETxを検索する。
図8に示すように、秘匿検索システム10は、鍵生成装置100と、暗号化タグ生成装置200と、検索鍵生成装置300と、検索装置500とを備える。
なお、ここでは、鍵生成装置100と、暗号化タグ生成装置200と、検索鍵生成装置300と、検索装置500とをそれぞれ別の装置としているが、これらの装置のうち2つ以上の装置が1つの装置として構成されていてもよい。したがって、鍵生成装置100と、暗号化タグ生成装置200と、検索鍵生成装置300と、検索装置500とを、それぞれ、鍵生成部と、暗号化タグ生成部と、検索鍵生成部と、検索部と読み替え、或る1つ以上の装置の各構成要素としてもよい。
鍵生成装置100は、セキュリティパラメータλを入力として、KGアルゴリズムを実行して、公開鍵pkと、秘密鍵skと、固定値βとを出力する。セキュリティパラメータλは、秘匿検索システム10の管理者等によって、秘匿検索システム10の入力インタフェースに接続された入力装置により入力される。
暗号化タグ生成装置200は、公開鍵pkと、属性ベクトルxと、固定値βとを入力として、TagGenアルゴリズムを実行して、暗号化タグETxを生成する。属性ベクトルxは、秘匿検索システム10の管理者または暗号化タグ生成装置200の使用者等によって、秘匿検索システム10の入力インタフェースに接続された入力装置により入力される。
検索鍵生成装置300は、公開鍵pkと、秘密鍵skと、述語ベクトルvと、固定値βとを入力として、TrapGenアルゴリズムを実行して、検索鍵TDvを生成する。述語ベクトルvは、秘匿検索システム10の管理者または検索鍵生成装置300の使用者等によって、秘匿検索システム10の入力インタフェースに接続された入力装置により入力される。
検索装置500は、公開鍵pkと、暗号化タグETxと、検索鍵TDvとを入力として、Searchアルゴリズムを実行して、検索鍵TDvを部分文字列として含む暗号化タグETxを検索する。検索装置500は、検索においてヒットしたことを示す0、または、検索においてヒットしなかったことを示す1を出力する。
次に、図9に基づき、本実施の形態1に係る鍵生成装置100の構成について説明する。
図9に示すように、鍵生成装置100は、情報取得部110と、基底生成部120と、鍵生成部140と、鍵出力部150とを備える。
情報取得部110は、秘匿検索システム10に接続された入力装置から入力されたセキュリティパラメータλを取得する。
基底生成部120は、セキュリティパラメータλに基づき、部分一致秘匿検索方式を実現するための基礎となる基底B0と基底B* 0と基底Bと基底B*とを生成する。また、基底生成部120は、パラメータparamを生成する。これらの基底およびパラメータの生成方法については後述する。
鍵生成部140は、基底B0および基底Bと、パラメータparamとを用いて、公開鍵pkを生成する。また、鍵生成部140は、基底B* 0および基底B*を用いて、秘密鍵skを生成する。さらに、鍵生成部140は、固定値βを生成する。公開鍵pk、秘密鍵skおよび固定値βの生成方法については後述する。
鍵出力部150は、鍵生成部140が生成した公開鍵pkを公開する。また、鍵出力部150は、鍵生成部140が生成した秘密鍵skを、検索鍵生成装置300へ出力する。さらに、鍵出力部150は、鍵生成部140が生成した固定値βを、暗号化タグ生成装置200と検索鍵生成装置300へ出力する。このとき、固定値βは公開しても構わないし、秘密情報として暗号化タグ生成装置200と検索鍵生成装置300へ安全な通信路を用いて出力しても構わない。
次に、図10に基づき、本実施の形態1に係る暗号化タグ生成装置200の構成を説明する。
図10に示すように、暗号化タグ生成装置200は、情報取得部210と、タグ生成部220と、暗号化タグ出力部230とを備える。
情報取得部210は、鍵生成装置100から公開鍵pkと固定値βとを取得するとともに、秘匿検索システム10に接続された入力装置から入力された属性ベクトルxを取得する。
タグ生成部220は、公開鍵pkと、固定値βと、属性ベクトルxとを用いて、1つ以上の基底B上のタグベクトルctを含む暗号化タグETxを生成する。タグ生成部220は、乱数生成部221と、要素生成部222とを備える。乱数生成部221および要素生成部222の動作については後述する。
暗号化タグ出力部230は、暗号化タグETxを検索装置500に出力する。
次に、図11に基づき、本実施の形態1に係る検索鍵生成装置300の構成を説明する。
図11に示すように、検索鍵生成装置300は、情報取得部310と、鍵生成部320と、鍵出力部330とを備える。
情報取得部310は、鍵生成装置100から公開鍵pkと、秘密鍵skと、固定値βとを取得するとともに、秘匿検索システム10に接続された入力装置から述語ベクトルvを取得する。
鍵生成部320は、公開鍵pkと、秘密鍵skと、固定値βと、述語ベクトルvとを用いて、文字列の各文字が位置を指定されて設定された検索鍵TDvを生成する。ここでは、鍵生成部320は、1つ以上の基底B*上の検索ベクトルk* tを含む検索鍵TDvを生成する。鍵生成部320は、乱数生成部321と、秘密値生成部322と、要素生成部323とを備える。乱数生成部321、秘密値生成部322、および、要素生成部323の動作については、後述する。
鍵出力部330は、鍵生成部320が生成した検索鍵TDvを検索装置500に出力する。
次に、図12に基づき、本実施の形態1に係る検索装置500の構成を説明する。
図12に示すように、検索装置500は、情報取得部510と、検索判定部520と、結果出力部530とを備える。
情報取得部510は、鍵生成装置100から公開鍵pkを取得する。また、情報取得部510は、暗号化タグ生成装置200から、暗号化タグETxを取得する。さらに、情報取得部510は、検索鍵生成装置300から、検索鍵TDvを取得する。
検索判定部520は、暗号化タグ生成装置200が生成した複数の暗号化タグETxであって、文字列の各文字が位置を指定されて設定された複数の暗号化タグETxから、検索鍵生成装置300が生成した検索鍵TDvに設定された各文字について、その文字と、その文字に対して指定された位置に設定された文字とが一致する暗号化タグETxを検索する。ここでは、検索判定部520は、公開鍵pkと検索鍵TDvとを用いて、暗号化タグETxを復号することにより、検索にヒットしたか否かを判定する。つまり、検索判定部520は、暗号化タグ生成装置200が生成した複数の暗号化タグETxから、検索鍵生成装置300が生成した検索鍵TDvに対応する暗号化タグETxを検索する。
結果出力部530は、検索にヒットしたことを示す0、または、検索にヒットしなかったことを示す1を出力する。
<実施の形態1に係る秘匿検索システムの動作の説明>
以下、図13〜図16に基づいて、本実施の形態1に係る秘匿検索システム10の動作について説明する。
[KGアルゴリズムの処理の説明]
はじめに、図13に基づいて、KGアルゴリズムの処理について説明する。上述した通り、KGアルゴリズムは、鍵生成装置100によって実行される。KGアルゴリズムは、本実施の形態1に係る秘匿検索方法における鍵生成ステップに相当する。また、KGアルゴリズムは、本実施の形態1に係る秘匿検索プログラムにおける鍵生成処理に相当する。
[ステップS101:情報取得処理]
ステップS101では、情報取得部110が、セキュリティパラメータλを取得する。セキュリティパラメータλは、秘匿検索システム10の管理者等によって入力装置により入力される。
[ステップS102:基底生成処理]
ステップS102では、基底生成部120が、セキュリティパラメータλを入力として、下式(13)を計算して、基底B0と基底B* 0と基底B1と基底B* 1と、双対ペアリングベクトル空間のパラメータparamとを生成する。ただし、以降では基底B1と基底B* 1とを、各々、基底Bと基底B*とも書く。さらに、固定値βを位数が十分大きいFqの元として生成する。
Figure 2020136884
なお、上式(13)において、Gbpgは、双線形ペアリング群を生成する関数であり、Gdpvsは、双対ペアリングベクトル空間を生成する関数である。
[ステップS104:公開鍵生成処理]
ステップS104では、鍵生成部140が、ステップS102で生成された基底B0の部分基底B^0と、基底Bの部分基底B^とを下式(14)に示すように生成する。
Figure 2020136884
鍵生成部140は、部分基底B^0およびB^と、ステップS102で生成されたパラメータparamとを、公開鍵pkとする。
[S105:秘密鍵生成処理]
ステップS105では、鍵生成部140は、ステップS102で生成された基底B* 0の部分基底B^* 0と、基底B*の部分基底B^*とを、下式(15)に示すように生成する。なお、表記「^」は、その前に記載された記号の上部に^が付されることを意味している。
Figure 2020136884
鍵生成部140は、部分基底B^* 0および部分基底B^*を、秘密鍵skとする。
[ステップS107:鍵出力処理]
ステップS107では、鍵出力部150が、ステップS104で生成された公開鍵pkを公開用のサーバ等へ出力して、公開鍵pkを公開する。また、鍵出力部150は、ステップS105で生成された秘密鍵skを秘密裡に検索鍵生成装置300へ出力する。さらに、鍵出力部150は、ステップS102で生成された固定値βを暗号化タグ生成装置200と検索鍵生成装置300とへ出力する。このとき、固定値βを公開することで、暗号化タグ生成装置200と検索鍵生成装置300へ出力しても構わないし、秘密情報として暗号化タグ生成装置200と検索鍵生成装置300へ安全な通信路を用いて出力しても構わない。
[TagGenアルゴリズムの処理の説明]
次に、図14に基づき、本実施の形態1に係るTagGenアルゴリズムの処理を説明する。上述した通り、TagGenアルゴリズムは、暗号化タグ生成装置200によって実行される。TagGenアルゴリズムは、本実施の形態1に係る秘匿検索方法における暗号化タグ生成ステップに相当する。また、TagGenアルゴリズムは、本実施の形態1に係る秘匿検索プログラムにおける暗号化タグ生成処理に相当する。
[ステップS201:情報取得処理]
ステップS201では、情報取得部210が、鍵生成装置100によって公開された公開鍵pkを取得する。また、情報取得部210は、鍵生成装置100によって出力された固定値βを取得する。
さらに、情報取得部210は、暗号化タグ生成装置200の使用者等によって入力装置により入力された、属性ベクトルxを取得する。属性ベクトルxは、次式で示される。
属性ベクトルx:={(t,xt)|t∈Ix⊆{1,...}}
ここで、Ixは、インデックスの集合である。例えば、属性ベクトルxの各要素xtには、図5〜図7で説明したように、検索タグとなる文字列の各文字が設定される。
[ステップS202:乱数生成処理]
ステップS202では、乱数生成部221が、下式(16)に示すように、乱数を生成する。
Figure 2020136884
[ステップS203:タグ要素生成処理]
ステップS203では、要素生成部222が、ステップS201で取得された公開鍵pkおよび属性ベクトルxと、ステップS202で生成された乱数とを入力として、下式(17)に示すように、タグベクトルc0と、t∈Ixの各整数tについてのタグベクトルctと、タグベクトルcTとを生成する。ただし、βは位数が十分大きいFqの固定された元とする。
Figure 2020136884
[ステップS204:タグ出力処理]
ステップS204では、暗号化タグ出力部230が、暗号化タグETxを、検索装置500に出力する。暗号化タグETxは、ステップS201で取得されたインデックスの集合Ixと、ステップS203で生成されたタグベクトルc0およびt∈Ixの各整数tについてのタグベクトルctおよびタグベクトルcTとを要素として含む。
[TrapGenアルゴリズムの処理の説明]
次に、図15に基づき、本実施の形態1に係るTrapGenアルゴリズムの処理を説明する。上述した通り、TrapGenアルゴリズムは、検索鍵生成装置300によって実行される。TrapGenアルゴリズムは、本実施の形態1に係る秘匿検索方法における検索鍵生成ステップに相当する。また、TrapGenアルゴリズムは、本実施の形態1に係る秘匿検索プログラムにおける検索鍵生成処理に相当する。
[ステップS301:情報取得処理]
ステップS301では、情報取得部310が、鍵生成装置100によって公開された公開鍵pkと、鍵生成装置100によって出力された秘密鍵skとを取得する。また、情報取得部310は、鍵生成装置100によって出力された固定値βを取得する。
さらに、情報取得部310は、検索鍵生成装置300の使用者等によって入力装置により入力された、述語ベクトルvを取得する。述語ベクトルvは、下式で表わされる。
述語ベクトルv:={(t,vt)|t∈Iv⊆{1,...}}
ここで、Ivは、インデックスの集合である。例えば、述語ベクトルvの各要素vtには、図5から図7で説明したように、検索文字列となる文字列の各文字が設定される。
[ステップS302:乱数生成処理]
ステップS302では、乱数生成部321が、下式(18)に示すように、乱数を生成する。ただし、τtはstとは異なり、0=Σt∈Ivτtを満たすように生成する。
Figure 2020136884
[ステップS303:秘密値生成処理]
ステップS303では、秘密値生成部322が、ステップS202で生成されたt∈Ivの各整数tについての乱数stを入力として、秘密値s0=Σt∈Ivtを生成する。
[ステップS304:鍵要素生成処理]
ステップS304では、要素生成部323が、ステップS301で取得された公開鍵pk、秘密鍵skおよび述語ベクトルvと、ステップS302で生成された乱数と、ステップS303で生成された秘密値s0とを入力として、下式(19)に示すように、検索ベクトルk* 0と、t∈Ivの各整数tについての検索ベクトルk* tとを生成する。ただし、βは位数が十分大きいFqの固定された元とする。
Figure 2020136884
[ステップS305:鍵出力処理]
ステップS305では、鍵出力部330が、検索鍵TDvを、検索装置500に出力する。検索鍵TDvは、ステップS301で取得されたインデックスの集合Ivと、ステップS304で生成された検索ベクトルk* 0およびt∈Ivの各整数tについての検索ベクトルk* tとを要素として含む。
[Searchアルゴリズムの処理の説明]
次に、図16に基づき、本実施の形態1に係るSearchアルゴリズムの処理を説明する。上述した通り、Searchアルゴリズムは、検索装置500によって実行される。Searchアルゴリズムは、本実施の形態1に係る秘匿検索方法における検索ステップに相当する。また、Searchアルゴリズムは、本実施の形態1に係る秘匿検索プログラムにおける検索処理に相当する。
[ステップS501:情報取得処理]
ステップS501では、情報取得部510が、鍵生成装置100によって公開された公開鍵pkを取得する。また、情報取得部510は、暗号化タグ生成装置200によって出力された暗号化タグETxを取得する。さらに、情報取得部510は、検索鍵生成装置300によって出力された検索鍵TDvを取得する。
[ステップS502:検索可能判定処理]
ステップS502では、検索判定部520が、ステップS501で取得された検索鍵TDvに含まれるインデックスの集合Ivが、ステップS501で取得された暗号化タグETxに含まれるインデックスの集合Ixの部分集合であるか否かを判定する。
検索判定部520は、インデックスの集合Ivが、インデックスの集合Ixの部分集合である場合には検索可能であるとして、処理をステップS503に進める。一方、インデックスの集合Ivが、インデックスの集合Ixの部分集合でない場合には検索不可能であるとして、処理をステップS507へ進める。
[ステップS503:復号処理]
ステップS503では、検索判定部520が、下式(20)に示すように、暗号化タグETxに含まれるタグと、検索鍵TDvに含まれる検索ベクトルとについて、ペアリング演算して、セッション鍵Kを計算する。
Figure 2020136884
つまり、検索判定部520は、内積述語暗号方式で言うところの、公開鍵pkと検索鍵TDvとを用いて、暗号化タグETxを復号する処理を行う。
[ステップS504:検索判定処理]
ステップS504では、検索判定部520が、ステップS503で計算されたセッション鍵Kが、暗号化タグETxに含まれるタグベクトルcTと等しいか否かを判定する。
検索判定部520は、セッション鍵KがタグベクトルcTと等しい場合、処理をステップS505へ進める。一方、セッション鍵KがタグベクトルcTと等しくない場合、処理をステップS507へ進める。
[ステップS505:結果A出力処理]
ステップS505では、結果出力部530が、検索にヒットしたことを示す0を出力する。
[ステップS507:検索鍵インデックス更新処理]
ステップS507では、検索判定部520が、ステップS501で取得された検索鍵TDvに含まれるインデックスの集合Ivの各要素に対して1を加算する。また、検索判定部520が、検索鍵TDvに含まれる各検索ベクトルk* tのインデックスtに対して1を加算する。
[ステップS508:検索終了判定処理]
ステップS508では、検索判定部520が、ステップS507で更新された検索鍵TDvに含まれるインデックスの集合Ivに含まれる最大のインデックスが、ステップS501で取得された暗号化タグETxに含まれるインデックスの集合Ixに含まれる最大のインデックス以下であるとき、処理をステップS502へ進め、さもなければ処理S506へ進む。
[ステップS506:結果B出力処理]
ステップS506では、結果出力部530が、検索にヒットしなかったことを示す1を出力する。
つまり、検索装置500は、検索鍵TDvに含まれる検索ベクトルk* tと、各暗号化タグETxに含まれるタグベクトルctとを用いた計算をすることにより、検索鍵TDvに対応する暗号化タグETxを検索する。
より具体的には、検索装置500は、検索鍵TDvに含まれる検索ベクトルk* tと、各暗号化タグETxに含まれるタグベクトルctであって、その検索ベクトルk* tに対応するタグベクトルctとの内積の計算をすることにより、検索鍵TDvに対応する暗号化タグETxを検索する。
図5を用いて説明したように、検索鍵TDvに含まれる検索ベクトルk* tのインデックスtを1つずつ順にずらして内積を計算することにより、部分一致秘匿検索を実現できる。このインデックスtの更新は、単純なインデックスの張替えであるため、特別な検索鍵変換処理を必要とせず、高速である。一方で、図6または図7に基づいて説明したように、検索文字列の分離あるいは置換したうえで検索することはできず、悪意のある第三者による意図しない検索を防止できる。
なお、上記説明では、検索可能な利用者を限定せず、全ての利用者が全ての暗号化タグETxを検索可能であった。しかし、特許文献2と同様に、上述した部分一致秘匿検索方式を、内積述語暗号方式と組み合わせることにより、暗号化タグETx毎に、検索可能な利用者を限定することも可能である。
<実施の形態1に係る秘匿検索システムのハードウェア構成>
次に、図17に基づき、本実施の形態1に係る秘匿検索システム10のハードウェア構成例について説明する。本実施の形態1に係る秘匿検出システムは、上述したように、鍵生成装置100と、暗号化タグ生成装置200と、検索鍵生成装置300と、検索装置500とから構成されている。
鍵生成装置100と、暗号化タグ生成装置200と、検索鍵生成装置300と、検索装置500とは、例えばコンピュータから構成される。
鍵生成装置100と、暗号化タグ生成装置200と、検索鍵生成装置300と、検索装置500とは、プロセッサ901、補助記憶装置902、メモリ903、通信装置904、入力インタフェース905、ディスプレイインタフェース906などのハードウェアを備える。
プロセッサ901は、信号線910を介して他のハードウェアと接続され、これら他のハードウェアを制御する。
入力インタフェース905は、ケーブル911により入力装置907に接続されている。
ディスプレイインタフェース906は、ケーブル912によりディスプレイ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)である。
補助記憶装置902には、上述した情報取得部110、基底生成部120、鍵生成部140、鍵出力部150、情報取得部210、タグ生成部220、乱数生成部221、要素生成部222、暗号化タグ出力部230、情報取得部310、鍵生成部320、乱数生成部321、秘密値生成部322、要素生成部323、鍵出力部330、情報取得部510、検索判定部520、結果出力部530の機能を実現するプログラムが記憶されている。以下では、情報取得部110、基底生成部120、鍵生成部140、鍵出力部150、情報取得部210、タグ生成部220、乱数生成部221、要素生成部222、暗号化タグ出力部230、情報取得部310、鍵生成部320、乱数生成部321、秘密値生成部322、要素生成部323、鍵出力部330、情報取得部510、検索判定部520、および、結果出力部530をまとめて、「各部」と表記する。
このプログラムは、メモリ903にロードされ、プロセッサ901に読み込まれ、プロセッサ901によって実行される。
更に、補助記憶装置902には、OS(Operating System)も記憶されている。
そして、OSの少なくとも一部がメモリ903にロードされ、プロセッサ901はOSを実行しながら、「各部」の機能を実現するプログラムを実行する。
なお、図17では、1つのプロセッサ901が図示されているが、鍵生成装置100と、暗号化タグ生成装置200と、検索鍵生成装置300と、変換後検索鍵生成装置400と、検索装置500とが、複数のプロセッサ901から構成されていてもよい。そして、複数のプロセッサ901が「各部」の機能を実現するプログラムを連携して実行してもよい。
また、「各部」の処理の結果を示す情報、データ、信号値、および、変数値が、メモリ903、補助記憶装置902、または、プロセッサ901内のレジスタまたはキャッシュメモリにファイルとして記憶される。
さらに、「各部」を「サーキットリー」で提供してもよい。また、「各部」のそれぞれを「回路」または「ステップ」または「手順」または「処理」に読み替えてもよい。「回路」および「サーキットリー」は、プロセッサ901だけでなく、ロジックICまたはGA(Gate Array)またはASIC(Application Specific Integrated Circuit)またはFPGA(Field−Programmable Gate Array)といった他の種類の処理回路をも包含する概念である。
10 秘匿検索システム、100 鍵生成装置、110 情報取得部、120 基底生成部、140 鍵生成部、150 鍵出力部、200 暗号化タグ生成装置、210 情報取得部、220 タグ生成部、221 乱数生成部、222 要素生成部、230 暗号化タグ出力部、300 検索鍵生成装置、310 情報取得部、320 鍵生成部、321 乱数生成部、322 秘密値生成部、323 要素生成部、330 鍵出力部、500 検索装置、510 情報取得部、520 検索判定部、530 結果出力部、pk 公開鍵、sk 秘密鍵、B,B* 基底、B^,B^* 部分基底、param パラメータ、Ix,Iv インデックスの集合、x 属性ベクトル、v 述語ベクトル、k* 検索ベクトル、ETx 暗号化タグ、TDv 検索鍵。

Claims (6)

  1. 検索文字列の各文字が位置を指定されて設定された検索鍵TDvを生成する検索鍵生成部と、
    被検索文字列の各文字が位置を指定されて設定された暗号化タグETxを生成する暗号化タグ生成部と、
    前記暗号化タグETxの中から、前記検索鍵TDvに対応する暗号化タグETxを検索する検索部と
    を備え、
    前記検索鍵TDvに含まれる要素および前記暗号化タグETxに含まれる要素の一方に、前記各文字の位置を示すインデックスtが設定され、他方に、前記インデックスtの符号を反転したインデックス−tが設定され、
    検索時に、前記検索鍵TDvと前記暗号化タグETxとに設定された前記インデックスtと前記インデックス−tとを加算することで、前記インデックスtと前記インデックス−tとを打消して、前記検索鍵TDvに対応する前記暗号化タグETxを検索する、
    秘匿検索システム。
  2. 前記検索部は、前記検索鍵TDvに含まれる要素と前記暗号化タグETxに含まれる要素との内積を演算する内積述語暗号方式を用いて、前記検索鍵TDvに対応する前記暗号化タグを検索する、
    請求項1に記載の秘匿検索システム。
  3. 前記検索部は、秘密値s0と、t∈Ivの各前記インデックスtについての第1の分散値stと、t∈Ivの各インデックスtについての第2の分散値τtとを用いて検索を行い、
    前記秘密値s0と前記第1の分散値stとは、s0=Σt∈Ivtの関係を満たし、
    前記第2の分散値τtは、0=Σt∈Ivτtの関係を満たし、
    ここで、前記Ivは、前記インデックスtの集合である、
    請求項1または2に記載の秘匿検索システム。
  4. 前記検索鍵TDvは、
    前記秘密値s0が設定された基底B* 0上のベクトルである要素k* 0と、
    t∈Ivの各前記インデックスtについて、前記第1の分散値stと前記第2の分散値τtと属性値vtと前記インデックスtとが設定された基底B*上のベクトルである要素k* t
    を含む、
    請求項3に記載の秘匿検索システム。
  5. 前記暗号化タグETxは、
    前記基底B* 0に対応する基底B0上のベクトルである要素c0と、
    t∈Ixの各インデックスtについて、属性値xtと前記インデックス−tとが設定された、前記基底B*に対応する基底B上のベクトルである要素ct
    を含み、
    ここで、前記Ixは、前記インデックスtの集合である、
    請求項4に記載の秘匿検索システム。
  6. 検索文字列の各文字が位置を指定されて設定された検索鍵TDvを生成する検索鍵生成ステップと、
    被検索文字列の各文字が位置を指定されて設定された複数の暗号化タグETxを生成する暗号化タグ生成ステップと、
    複数の前記暗号化タグETxから、前記検索鍵TDvに対応する暗号化タグETxを検索する検索ステップと
    を備え、
    前記検索鍵TDvに含まれる要素および前記暗号化タグETxに含まれる要素の一方に、前記各文字の位置を示すインデックスtが設定され、他方に、前記インデックスtの符号を反転したインデックス−tが設定され、
    検索時に、前記検索鍵TDvと前記暗号化タグETxとに設定された前記インデックスtと前記インデックス−tとを加算することで、前記インデックスtと前記インデックス−tとを打消して、前記検索鍵TDvに対応する前記暗号化タグETxを検索する、
    秘匿検索方法。
JP2020562226A 2018-12-28 2018-12-28 秘匿検索システムおよび秘匿検索方法 Active JP6918253B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2018/048531 WO2020136884A1 (ja) 2018-12-28 2018-12-28 秘匿検索システムおよび秘匿検索方法

Publications (2)

Publication Number Publication Date
JPWO2020136884A1 true JPWO2020136884A1 (ja) 2021-02-18
JP6918253B2 JP6918253B2 (ja) 2021-08-11

Family

ID=71128863

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020562226A Active JP6918253B2 (ja) 2018-12-28 2018-12-28 秘匿検索システムおよび秘匿検索方法

Country Status (3)

Country Link
US (1) US11790105B2 (ja)
JP (1) JP6918253B2 (ja)
WO (1) WO2020136884A1 (ja)

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016113878A1 (ja) * 2015-01-15 2016-07-21 三菱電機株式会社 秘匿検索システム、秘匿検索プログラム及び変換後検索鍵生成装置
WO2017122326A1 (ja) * 2016-01-14 2017-07-20 三菱電機株式会社 秘匿検索システム、秘匿検索方法及び秘匿検索プログラム
WO2017122352A1 (ja) 2016-01-15 2017-07-20 三菱電機株式会社 暗号化装置、暗号化方法及び暗号化プログラム
US10673627B2 (en) * 2016-01-18 2020-06-02 Mitsubishi Electric Corporation Encryption device, search device, computer readable medium, encryption method, and search method
US11106740B2 (en) * 2017-04-25 2021-08-31 Mitsubishi Electric Corporation Search device, search system, search method, and computer readable medium
US10984052B2 (en) * 2018-11-19 2021-04-20 Beijing Jingdong Shangke Information Technology Co., Ltd. System and method for multiple-character wildcard search over encrypted data

Also Published As

Publication number Publication date
US11790105B2 (en) 2023-10-17
US20210248262A1 (en) 2021-08-12
JP6918253B2 (ja) 2021-08-11
WO2020136884A1 (ja) 2020-07-02

Similar Documents

Publication Publication Date Title
US10476662B2 (en) Method for operating a distributed key-value store
CN107077469B (zh) 服务器装置、检索系统、终端装置以及检索方法
JP6208586B2 (ja) 検索可能暗号処理システムおよび検索可能暗号処理方法
US9892211B2 (en) Searchable code processing system and method
JP6599066B1 (ja) 登録装置、サーバ装置、秘匿検索システム、秘匿検索方法、登録プログラムおよびサーバプログラム
US10872158B2 (en) Secret search system, secret search method, and computer readable medium
Liu et al. Efficient searchable symmetric encryption for storing multiple source dynamic social data on cloud
US11645409B2 (en) Search and access pattern hiding verifiable searchable encryption for distributed settings with malicious servers
JP2019057822A (ja) 医療データ検索システム、医療データ検索方法および医療データ検索プログラム
CN110062941B (zh) 消息发送系统及方法、通信终端、服务器装置、记录介质
CN115795514A (zh) 一种隐私信息检索方法、装置及系统
CN108370312B (zh) 加密装置、检索装置、计算机能读取的记录介质、加密方法和检索方法
JP2012248940A (ja) データ生成装置、データ生成方法、データ生成プログラム及びデータベースシステム
JPWO2019053788A1 (ja) データ処理装置、データ処理方法及びデータ処理プログラム
WO2016113878A1 (ja) 秘匿検索システム、秘匿検索プログラム及び変換後検索鍵生成装置
JP6918253B2 (ja) 秘匿検索システムおよび秘匿検索方法
JP6672451B2 (ja) 暗号化検索インデックスマージサーバ、暗号化検索インデックスマージシステム、及び暗号化検索インデックスマージ方法
Bertino et al. Computer Security–ESORICS 2021: 26th European Symposium on Research in Computer Security, Darmstadt, Germany, October 4–8, 2021, Proceedings, Part II
Shah et al. SecureCSearch: Secure searching in PDF over untrusted cloud servers
Tong et al. Owner-free Distributed Symmetric Searchable Encryption Supporting Conjunctive Queries
Nita et al. Searchable Encryption

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20201105

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20201105

A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20210212

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20210216

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210419

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20210720

R150 Certificate of patent or registration of utility model

Ref document number: 6918253

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150