IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 富士通株式会社の特許一覧

特開2023-168660検索制御方法、検索制御プログラム、および情報処理装置
<>
  • 特開-検索制御方法、検索制御プログラム、および情報処理装置 図1
  • 特開-検索制御方法、検索制御プログラム、および情報処理装置 図2
  • 特開-検索制御方法、検索制御プログラム、および情報処理装置 図3
  • 特開-検索制御方法、検索制御プログラム、および情報処理装置 図4
  • 特開-検索制御方法、検索制御プログラム、および情報処理装置 図5
  • 特開-検索制御方法、検索制御プログラム、および情報処理装置 図6
  • 特開-検索制御方法、検索制御プログラム、および情報処理装置 図7
  • 特開-検索制御方法、検索制御プログラム、および情報処理装置 図8
  • 特開-検索制御方法、検索制御プログラム、および情報処理装置 図9
  • 特開-検索制御方法、検索制御プログラム、および情報処理装置 図10
  • 特開-検索制御方法、検索制御プログラム、および情報処理装置 図11
  • 特開-検索制御方法、検索制御プログラム、および情報処理装置 図12
  • 特開-検索制御方法、検索制御プログラム、および情報処理装置 図13
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023168660
(43)【公開日】2023-11-29
(54)【発明の名称】検索制御方法、検索制御プログラム、および情報処理装置
(51)【国際特許分類】
   G06F 16/9032 20190101AFI20231121BHJP
【FI】
G06F16/9032
【審査請求】未請求
【請求項の数】9
【出願形態】OL
(21)【出願番号】P 2022079893
(22)【出願日】2022-05-16
(71)【出願人】
【識別番号】000005223
【氏名又は名称】富士通株式会社
(74)【代理人】
【識別番号】110002918
【氏名又は名称】弁理士法人扶桑国際特許事務所
(72)【発明者】
【氏名】大木 憲二
【テーマコード(参考)】
5B175
【Fターム(参考)】
5B175GC01
(57)【要約】
【課題】不正目的での検索を抑止する。
【解決手段】情報処理装置10は、データベース11aに対する検索を要求するクエリ3,4に基づいて、複数の語句それぞれの機微度が設定された辞書データ11bから、クエリ3,4に示される検索語句に対応する語句を検索する。次に情報処理装置10は、検索語句に対応する語句の機微度に基づいて、クエリ3,4の機微度を計算する。そして情報処理装置10は、クエリ3,4の機微度に基づいて、クエリ3,4に応じたデータベース11aの検索を実行するか否かを決定する。
【選択図】図1
【特許請求の範囲】
【請求項1】
データベースに対する検索を要求するクエリに基づいて、複数の語句それぞれの機微度が設定された辞書データから、前記クエリに示される検索語句に対応する語句を検索し、
前記検索語句に対応する語句の機微度に基づいて、前記クエリの機微度を計算し、
前記クエリの機微度に基づいて、前記クエリに応じた前記データベースの検索を実行するか否かを決定する、
処理をコンピュータが実行する検索制御方法。
【請求項2】
前記データベースの検索を実行しないと決定した場合、検索を実行しない前記クエリの検知を示すメッセージを出力する、
請求項1記載の検索制御方法。
【請求項3】
前記データベースの検索を実行すると決定した場合、前記検索語句を前記データベースから検索し、検索結果を出力する、
請求項1または2に記載の検索制御方法。
【請求項4】
前記辞書データには、前記複数の語句それぞれに対して、漏洩した場合の精神的苦痛の度合いを示す精神的苦痛レベルと、漏洩した場合の経済的損失の度合いを示す経済的損失レベルとに基づく機微度が設定されている、
請求項1記載の検索制御方法。
【請求項5】
前記クエリの機微度を計算する処理では、前記検索語句に対応する語句の機微度の合計を、前記クエリに含まれる前記検索語句の数で除算し、除算の商を前記クエリの機微度とする、
請求項1記載の検索制御方法。
【請求項6】
前記辞書データは、前記複数の語句が暗号化して登録されており、
前記クエリには、暗号化された前記検索語句が含まれており、
前記検索語句に対応する語句を検索する処理では、暗号化したまま前記検索語句に対応する語句を検索する、
請求項1記載の検索制御方法。
【請求項7】
前記辞書データは、暗号化された前記複数の語句が、機微度に応じた複数のグループにグループ分けされており、
前記データベースの検索を実行しないと決定した場合、検索を実行しない前記クエリを検知したことを示し、前記検索語句に対応する語句が属するグループの語句のリストを含むメッセージを出力する、
請求項1または6に記載の検索制御方法。
【請求項8】
データベースに対する検索を要求するクエリ基づいて、複数の語句それぞれの機微度が設定された辞書データから、前記クエリに示される検索語句に対応する語句を検索し、
前記検索語句に対応する語句の機微度に基づいて、前記クエリの機微度を計算し、
前記クエリの機微度に基づいて、前記クエリに応じた前記データベースの検索を実行するか否かを決定する、
処理をコンピュータに実行させる検索制御プログラム。
【請求項9】
データベースに対する検索を要求するクエリに基づいて、複数の語句それぞれの機微度が設定された辞書データから、前記クエリに示される検索語句に対応する語句を検索し、前記検索語句に対応する語句の機微度に基づいて、前記クエリの機微度を計算し、前記クエリの機微度に基づいて、前記クエリに応じた前記データベースの検索を実行するか否かを決定する処理部、
を有する情報処理装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、検索制御方法、検索制御プログラム、および情報処理装置に関する。
【背景技術】
【0002】
現在、個人の認証や属性の真正性を証明する分散型アイデンティティ(DID:Decentralized IDentity)技術が提案されている。分散型アイデンティティ技術では、属性の複数組合技術や開示制御技術によって、より個人の匿名性や安全性を高めた上で個人のコントローラビリティを高めることが可能である。
【0003】
ただし、DID技術は政府などの権威から独立することを志向していることから、その多くはNPO(Not-for-Profit Organization)などの組織が運営しており、運営する組織の透明性や、運用上の安全性などが定かではない。そこで、それらのDID技術を安全に利用可能とする枠組みの1つとして、例えばTrusted Webと呼ばれる技術基盤が提案されている。
【0004】
Trusted Webに有用な技術として、例えば保護データのリスクレートを判定するデータ匿名化技術が提案されている。また暗号文のまま検索を行う秘匿検索も提案されている。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】米国特許出願公開第2018/0004978号明細書
【特許文献2】特開2015-225343号公報
【特許文献3】特開2017-021330号公報
【特許文献4】特開2017-021331号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
データベースに格納されたデータの安全性を向上させるには、データベースに対する不正な検索を早期に検知できることが重要である。不正な検索としては、例えば許可された範囲外の目的でのデータ検索がある。そこで、利用者が出力したデータ検索用のクエリに基づいて、データ検索が不正な目的であるか否かを把握できることが望まれる。しかし、従来の技術では、クエリのみからデータ検索の目的を把握するのは困難である。そのため、例えば意図的にセンシティブな情報(機微情報)を探ろうとする行為などの問題のある検索が行われていても、それを把握することができない。
【0007】
1つの側面では、本発明は、不正目的での検索を抑止することを目的とする。
【課題を解決するための手段】
【0008】
1つの案では、以下の処理をコンピュータが実行する検索制御方法が提供される。
コンピュータは、データベースに対する検索を要求するクエリに基づいて、複数の語句それぞれの機微度が設定された辞書データから、クエリに示される検索語句に対応する語句を検索する。コンピュータは、検索語句に対応する語句の機微度に基づいて、クエリの機微度を計算する。そしてコンピュータは、クエリの機微度に基づいて、クエリに応じたデータベースの検索を実行するか否かを決定する。
【発明の効果】
【0009】
1態様によれば、不正目的での検索を抑止できる。
【図面の簡単な説明】
【0010】
図1】第1の実施の形態に係る検索制御方法の一例を示す図である。
図2】秘匿検索システムの一例を示す図である。
図3】データ管理サーバのハードウェアの一例を示す図である。
図4】秘匿検索システムの機能を示すブロック図である。
図5】機微性判定辞書の一例を示す図である。
図6】機微性判定辞書に基づいてグループ化済辞書を生成する処理の一例を示す図である。
図7】データ登録手順の一例を示す図である。
図8】クエリの機微度に基づくリスク評価処理の第1の例を示す図である。
図9】クエリの機微度に基づくリスク評価処理の第2の例を示す図である。
図10】秘匿情報検索の手順の一例を示すシーケンス図(1/3)である。
図11】秘匿情報検索の手順の一例を示すシーケンス図(2/3)である。
図12】秘匿情報検索の手順の一例を示すシーケンス図(3/3)である。
図13】許可された目的外での検索を抑止する処理の一例を示す図である。
【発明を実施するための形態】
【0011】
以下、本実施の形態について図面を参照して説明する。なお各実施の形態は、矛盾のない範囲で複数の実施の形態を組み合わせて実施することができる。
〔第1の実施の形態〕
第1の実施の形態は、不正目的の検索を検知可能な検索制御方法である。
【0012】
図1は、第1の実施の形態に係る検索制御方法の一例を示す図である。図1には、検索制御方法を実現する情報処理装置10を示している。情報処理装置10は、例えば検索制御プログラムを実行することにより、検索制御方法を実施することができる。
【0013】
情報処理装置10は、データベース11aの利用者が操作する利用者端末1と、データベース11aに対する不正目的の検索の有無の監査に使用する監査用端末2とが接続されている。利用者端末1は、例えばデータベース11aの検索のクエリ3,4を情報処理装置10に送信する。クエリ3,4には、検索語句が含まれる。利用者端末1は、例えば暗号化された検索語句を含むクエリ3,4を送信することができる。
【0014】
情報処理装置10は、検索制御方法を実現するために、記憶部11と処理部12とを有する。記憶部11は、例えば情報処理装置10が有するメモリまたはストレージ装置である。処理部12は、例えば情報処理装置10が有するプロセッサまたは演算回路である。
【0015】
記憶部11は、データベース11aと、複数の語句それぞれの機微度が設定された辞書データ11bとを記憶する。例えば辞書データ11bには、複数の語句それぞれに対して、漏洩した場合の精神的苦痛の度合いを示す精神的苦痛レベルと、漏洩した場合の経済的損失の度合いを示す経済的損失レベルとに基づく機微度が設定されている。例えば、機微度は、値が大きいほど、語句に関連する情報が漏洩した場合の影響が大きいことを示す。例えば辞書データ11bに登録されていない語句の機微度は「0」となる。
【0016】
データベース11aには、複数のデータが登録されている。各データには、1または複数の語句が含まれる。データベース11a内の各データに含まれる語句は、例えば暗号化されている。なお、データベース11aに含まれる各データは、レコードまたはエントリと呼ぶこともできる。
【0017】
辞書データ11bは、例えば暗号化された複数の語句が、機微度に応じた複数のグループにグループ分けして登録されている。図1の例では、機微度「1」~「9」の9個のグループそれぞれに、その機微度を有する語句が登録されている。辞書データ11bに含まれる各語句は、例えば暗号化されている。
【0018】
処理部12は、利用者端末1からデータベース11aに対する検索を要求するクエリ3,4を受信すると、クエリ3,4に基づいて、複数の語句それぞれの機微度が設定された辞書データ11bから、クエリ3,4に示される検索語句に対応する語句を検索する。データベース11a内の語句が暗号化されており、クエリ3,4内の検索語句も暗号化されている場合、処理部12は、暗号文のままで辞書データ11bを検索する。暗号文のままでのデータ検索は秘匿検索と呼ばれる。
【0019】
次に処理部12は、検索語句に対応する語句の機微度に基づいて、クエリ3,4の機微度を計算する。例えば1つのクエリ3,4に複数の検索語句が含まれている場合、処理部12は、検索語句に対応する語句の機微度の合計を、クエリ3,4に含まれる検索語句の数で除算し、除算の商をクエリ3,4の機微度とする。
【0020】
図1の例では、クエリ3には、語句「w91」の暗号文と語句「w01」の暗号文とが含まれている。語句「w91」は、辞書データ11bにおいて機微度「9」のグループに含まれる。語句「w01」は、辞書データ11bに登録されていない。するとクエリ3の機微度は、例えば「9/2=4.5」となる。クエリ4には、語句「w11」の暗号文と語句「w02」の暗号文とが含まれている。語句「w11」は、辞書データ11bにおいて機微度「1」のグループに含まれる。語句「w02」は、辞書データ11bに登録されていない。するとクエリ3の機微度は、例えば「1/2=0.5」となる。
【0021】
処理部12は、クエリ3,4の機微度に基づいて、クエリ3,4に応じたデータベース11aの検索を実行するか否かを決定する。例えば処理部12は、クエリ3,4の機微度を閾値と比較し、機微度が閾値以上であれば検索を実行しないと決定する。また処理部12は機微度が閾値未満であれば検索を実行すると決定する。
【0022】
例えば閾値が3であるものとする。図1の例では、クエリ3の機微度は「4.5」であり、閾値「3」以上である。そのため処理部12は、クエリ3について検索を実行しないと決定する。またクエリ4の機微度は「0.5」であり、閾値「3」未満である。そのため処理部12は、クエリ4について検索を実行すると決定する。
【0023】
処理部12は、データベース11aの検索を実行しないと決定した場合、検索を実行しないクエリ3の検知を示すメッセージ5を出力する。例えばクエリ3の場合、辞書データ11bにおける機微度「9」のグループに属する語句のリストを含むメッセージ5が、監査用端末2に送信される。
【0024】
また処理部12は、データベース11aの検索を実行すると決定した場合、検索語句をデータベース11aから検索し、検索結果6を出力する。例えばデータベース11a内の語句と検索語句とが共に暗号化されている場合、処理部12は、暗号文のままの検索(秘匿検索)を行う。処理部12は、検索結果6を利用者端末1に送信する。例えば検索結果6には、検索語句を含むデータの数が示される。
【0025】
このように、機微度が閾値以上のクエリ3に応じたデータベース11aの検索を実行しないことで、不正目的の検索の実行を抑止することが可能となる。また不正目的のクエリの検知を示すメッセージ5を監査用端末2に送信することで、不正目的のクエリの発生を、監査機関において把握することができる。なお正当な目的のクエリ4については、そのクエリ4に応じた検索が行われ検索結果6が出力される。これにより、許可された目的でのデータ利用であれば、データ検索サービスを提供することができる。
【0026】
また、辞書データに対して、例えば精神的苦痛レベルと経済的損失レベルとに基づく機微度を設定することで、語句ごとの機微度を適切に定義することができ、クエリ3,4の機微度の計算精度が向上する。
【0027】
さらに検索語句に対応する語句の機微度の合計を、クエリ3,4に含まれる検索語句の数で除算した商をクエリ3,4の機微度とすることで、複数の語句を含むクエリ3,4についても適切な機微度を算出できる。
【0028】
また辞書データ11bおよびデータベース11aに登録されている複数の語句を暗号化しておき、クエリ3,4内の検索語句も暗号化しておき、処理部12が秘匿検索を行うことで、検索語句を、情報処理装置10の管理者にも秘匿しておくことができる。これにより、正当な目的でデータベース11aを利用する利用者端末1の利用者は、検索の目的を秘匿したままデータベース11a内のデータを利用することができる。さらにデータベース11aに登録するデータの暗号化を、そのデータの提供者が実施するようにすれば、そのデータの内容が、情報処理装置10の管理者に漏洩するのを抑止することが可能である。
【0029】
また処理部12は、検索を実行しないと判定されたクエリ3内の検索語句に対応する語句が属するグループの語句のリストを含むメッセージ5を出力することができる。これにより、例えば監査機関では、検索された語句と同じ機微度の語句群を認識することができるが、そのうちのどの語句が検索語句であったのかを知ることはできない。すなわち、情報処理装置10の管理者および監査機関はグループ単位でしか検索語句を把握できず、データ利用者やデータ提供者の具体的な情報が他者に漏れることが抑止される。
【0030】
〔第2の実施の形態〕
第2の実施の形態は、秘匿検索によって秘匿されたデータベース(以下、DB(Data Base)と呼ぶ)に対する不正な検索目的を把握できる秘匿検索システムである。なお、第2の実施の形態では、DBに登録されている語句の暗号文と、その語句のクエリにおける暗号文とが異なる値となるような秘匿検索技術を用いる。これにより、DB内のデータの秘匿性を高めることができる。
【0031】
図2は、秘匿検索システムの一例を示す図である。第2の実施の形態では、信頼できる第三者機関(TTP:Trusted Third Party)がデータ管理サーバ100を有している。データ管理サーバ100は、提供されたデータを暗号文のままで管理するコンピュータである。データ管理サーバ100は、ネットワーク20を介して、データ提供サーバ200、利用者端末300、および監査用端末400に接続されている。データ提供サーバ200は、データ提供者(DP:Data provider)が提供するデータを管理するコンピュータである。利用者端末300は、データ利用者(DU:Data User)がデータ検索のために使用するコンピュータである。監査用端末400は、データの正当な利用が行われていることを監査する監査機関において監査に使用されるコンピュータである。
【0032】
DPは例えば病院であり、DUは例えば製薬会社である。この場合、データ提供サーバ200は、例えばDPの病院で受診した患者の電子カルテなどの患者データを蓄積し、その患者データを暗号化してデータ管理サーバ100に提供する。データ管理サーバ100は、利用者端末300からの検索要求に応じて、管理している患者データに対する検索を行う。またデータ管理サーバ100は、不正目的の検索を検知すると、問題のある検索要求があったことを監査用端末400に通報する。
【0033】
なお、データ管理サーバ100は、図1に示した第1の実施の形態の情報処理装置10の一例である。
図3は、データ管理サーバのハードウェアの一例を示す図である。データ管理サーバ100は、プロセッサ101によって装置全体が制御されている。プロセッサ101には、バス109を介してメモリ102と複数の周辺機器が接続されている。プロセッサ101は、マルチプロセッサであってもよい。プロセッサ101は、例えばCPU(Central Processing Unit)、MPU(Micro Processing Unit)、またはDSP(Digital Signal Processor)である。プロセッサ101がプログラムを実行することで実現する機能の少なくとも一部を、ASIC(Application Specific Integrated Circuit)、PLD(Programmable Logic Device)などの電子回路で実現してもよい。
【0034】
メモリ102は、データ管理サーバ100の主記憶装置として使用される。メモリ102には、プロセッサ101に実行させるOS(Operating System)のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、メモリ102には、プロセッサ101による処理に利用する各種データが格納される。メモリ102としては、例えばRAM(Random Access Memory)などの揮発性の半導体記憶装置が使用される。
【0035】
バス109に接続されている周辺機器としては、ストレージ装置103、GPU(Graphics Processing Unit)104、入力インタフェース105、光学ドライブ装置106、機器接続インタフェース107およびネットワークインタフェース108がある。
【0036】
ストレージ装置103は、内蔵した記録媒体に対して、電気的または磁気的にデータの書き込みおよび読み出しを行う。ストレージ装置103は、データ管理サーバ100の補助記憶装置として使用される。ストレージ装置103には、OSのプログラム、アプリケーションプログラム、および各種データが格納される。なお、ストレージ装置103としては、例えばHDD(Hard Disk Drive)やSSD(Solid State Drive)を使用することができる。
【0037】
GPU104は画像処理を行う演算装置であり、グラフィックコントローラとも呼ばれる。GPU104には、モニタ21が接続されている。GPU104は、プロセッサ101からの命令に従って、画像をモニタ21の画面に表示させる。モニタ21としては、有機EL(Electro Luminescence)を用いた表示装置や液晶表示装置などがある。
【0038】
入力インタフェース105には、キーボード22とマウス23とが接続されている。入力インタフェース105は、キーボード22やマウス23から送られてくる信号をプロセッサ101に送信する。なお、マウス23は、ポインティングデバイスの一例であり、他のポインティングデバイスを使用することもできる。他のポインティングデバイスとしては、タッチパネル、タブレット、タッチパッド、トラックボールなどがある。
【0039】
光学ドライブ装置106は、レーザ光などを利用して、光ディスク24に記録されたデータの読み取り、または光ディスク24へのデータの書き込みを行う。光ディスク24は、光の反射によって読み取り可能なようにデータが記録された可搬型の記録媒体である。光ディスク24には、DVD(Digital Versatile Disc)、DVD-RAM、CD-ROM(Compact Disc Read Only Memory)、CD-R(Recordable)/RW(ReWritable)などがある。
【0040】
機器接続インタフェース107は、データ管理サーバ100に周辺機器を接続するための通信インタフェースである。例えば機器接続インタフェース107には、メモリ装置25やメモリリーダライタ26を接続することができる。メモリ装置25は、機器接続インタフェース107との通信機能を搭載した記録媒体である。メモリリーダライタ26は、メモリカード27へのデータの書き込み、またはメモリカード27からのデータの読み出しを行う装置である。メモリカード27は、カード型の記録媒体である。
【0041】
ネットワークインタフェース108は、ネットワーク20に接続されている。ネットワークインタフェース108は、ネットワーク20を介して、他のコンピュータまたは通信機器との間でデータの送受信を行う。ネットワークインタフェース108は、例えばスイッチやルータなどの有線通信装置にケーブルで接続される有線通信インタフェースである。またネットワークインタフェース108は、基地局やアクセスポイントなどの無線通信装置に電波によって通信接続される無線通信インタフェースであってもよい。
【0042】
データ管理サーバ100は、以上のようなハードウェアによって、第2の実施の形態の処理機能を実現することができる。なお、第1の実施の形態に示した情報処理装置10も、図3に示したデータ管理サーバ100と同様のハードウェアにより実現することができる。
【0043】
データ管理サーバ100は、例えばコンピュータ読み取り可能な記録媒体に記録されたプログラムを実行することにより、第2の実施の形態の処理機能を実現する。データ管理サーバ100に実行させる処理内容を記述したプログラムは、様々な記録媒体に記録しておくことができる。例えば、データ管理サーバ100に実行させるプログラムをストレージ装置103に格納しておくことができる。プロセッサ101は、ストレージ装置103内のプログラムの少なくとも一部をメモリ102にロードし、プログラムを実行する。またデータ管理サーバ100に実行させるプログラムを、光ディスク24、メモリ装置25、メモリカード27などの可搬型記録媒体に記録しておくこともできる。可搬型記録媒体に格納されたプログラムは、例えばプロセッサ101からの制御により、ストレージ装置103にインストールされた後、実行可能となる。またプロセッサ101が、可搬型記録媒体から直接プログラムを読み出して実行することもできる。
【0044】
このような秘匿検索システムでは、データ管理サーバ100は、データ提供サーバ200から提供されたデータと利用者端末300から送信されたクエリに対して、Relational Hashを用いた秘匿検索を行う。これにより、データ管理サーバ100は、DBとクエリを暗号化したまま元の語句が一致するか否かを判定する。なおRelational Hashを用いた秘匿検索の詳細は、特許文献2-4に示されている。
【0045】
またデータ管理サーバ100は、秘匿検索を実行する際に、暗号化された機微性判定辞書と暗号化入力データの照合を行う。データ管理サーバ100は、照合結果から機微度を算出して、結果が基準を満たしている場合のみ検索を継続する。これにより、不正な検索が実行されることを抑止できる。
【0046】
またデータ管理サーバ100は、暗号化された機微性判定辞書と暗号化入力データの照合は機微度に基づくグループ単位で行う。これにより、データ管理サーバ100を運用するTTP側はグループ単位でしか検索内容を把握できず、DUやDPの具体的な情報がTTPに漏れることが抑止される。
【0047】
次に、秘匿検索システムの各装置の機能について説明する。
図4は、秘匿検索システムの機能を示すブロック図である。データ管理サーバ100は、情報の記憶機能として、機微性判定辞書記憶部110、鍵記憶部120、秘匿化辞書記憶部130、グループ化済辞書記憶部140、および暗号化DB150を有する。
【0048】
機微性判定辞書記憶部110は、機微性判定辞書を記憶する。機微性判定辞書は、用語ごとに、その用語の機微性の度合いを数値化したものである。機微性の度合いは、例えば経済的損失レベルと精神的苦痛レベルとで表される。鍵記憶部120は、機微性判定辞書の暗号化のための暗号鍵、および機微性判定辞書を秘匿化したままクエリと照合するための照合鍵を記憶する。秘匿化辞書記憶部130は、暗号化された機微性判定辞書を記憶する。グループ化済辞書記憶部140は、暗号化された機微性判定辞書内の語句を機微性に基づいて分類したグループの情報を記憶する。暗号化DB150は、データ提供サーバ200から提供された暗号化済みのデータを記憶する。
【0049】
ハッシュ種生成部161は、鍵の生成元となる情報(ハッシュ種)を生成する。例えばハッシュ種生成部161は、ランダムな数値をハッシュ種として生成する。鍵生成部162は、ハッシュ種に基づいて暗号鍵と照合鍵との対を生成する。辞書暗号化部163は、鍵生成部162が生成した暗号鍵を用いて、機微性判定辞書内の語句それぞれを暗号化する。グループ化部164は、秘匿化辞書記憶部130内の語句ごとの暗号データを、該当語句の機微性に基づいてグループ化する。データ登録部171は、データ提供サーバ200から暗号化されたデータを取得し、暗号化DB150に格納する。リスク評価部172は、利用者端末300から受信したクエリに基づいて、そのクエリに応じて検索を実行するリスクを評価する。検索部173は、利用者端末300から受信したクエリに基づいて、暗号化DB150内のデータを検索する。
【0050】
データ提供サーバ200は、DB210、鍵記憶部220、鍵生成部230、およびデータ登録要求部240を有する。DB210は、DPがDUに開示する平文のデータを記憶する。鍵記憶部220は、DB210内のデータの暗号化のための暗号鍵、およびそのデータを秘匿化したままクエリと照合するための照合鍵を記憶する。鍵生成部230は、ハッシュ種に基づいて暗号鍵と照合鍵との対を生成する。データ登録要求部240は、DB210内のデータを暗号化してデータ管理サーバ100に送信する。
【0051】
利用者端末300は、鍵記憶部310、鍵生成部320、および検索要求部330を有する。鍵記憶部310は、クエリの暗号化のための暗号鍵、およびそのクエリを秘匿化したままデータと照合するための照合鍵を記憶する。鍵生成部320は、ハッシュ種に基づいて暗号鍵と照合鍵との対を生成する。検索要求部330は、入力されたクエリを暗号化してデータ管理サーバ100に送信する。
【0052】
なお、各装置が有する鍵生成部162,230,320は、同じハッシュ種から暗号鍵と照合鍵との対を生成するが、鍵生成部162,230,320それぞれが生成する暗号鍵は異なる値の鍵である。そのため同じ語句を各装置が暗号化した場合、装置ごとに異なる暗号文が生成される。このように異なる暗号鍵で暗号化されていても、Relational Hashを用いることで、秘匿検索が可能である。
【0053】
また図4に示した各要素間を接続する線は通信経路の一部を示すものであり、図示した通信経路以外の通信経路も設定可能である。また、図4に示した各要素の機能は、例えば、その要素に対応するプログラムモジュールをコンピュータに実行させることで実現することができる。
【0054】
このような秘匿検索システムにより、データとクエリの語句を暗号化したまま検索をすることができると共に、クエリによる検索が機微性の高い語句を対象としている場合には、そのことを検知することができる。機微性は、機微性判定辞書記憶部110に格納されている機微性判定辞書に基づいて判定される。なお機微性判定辞書は、図1に示す辞書データの一例である。
【0055】
図5は、機微性判定辞書の一例を示す図である。図5の例では、機微性判定辞書111がEP図で表されている。EP図は、データを「経済的損失(Economic)」と「精神的苦痛(Privacy)」という軸でプロットしたグラフである。図5の例では経済損失レベルが1~3の3つのレベルに分けられている。また精神的苦痛レベルが1~3の3つのレベルに分けられている。そのためEP図には、経済的損失レベルと精神的苦痛レベルとの組合せに応じた9個のEP区分が設けられ、各EP区分に対応する語句が設定されている。以下、経済損失レベルと精神的苦痛レベルとをまとめてEP値と呼ぶ。なお、EP区分は、第1の実施の形態におけるグループの一例である。
【0056】
精神的苦痛レベルをx軸、経済的損失レベルをy軸として、EP区分は、EP(x、y)で表される。図5の例では、9個のEP区分それぞれは、EP(1,1),EP(1,2),・・・,EP(3,3)と表される。EP区分のEP値は、そのEP区分に属する語句の機微度を表している。例えばEP(x,y)の機微度を「x×y」とする。
【0057】
なお図5に示す機微性判定辞書111には、データの項目名となるような語句が示されているが、その語句に設定される可能性のある値を、機微性判定辞書111に登録しておいてもよい。例えば「性別」と同じEP区分に「男」、「女」といった語句を登録しておくことができる。
【0058】
データ管理サーバ100の辞書暗号化部163は、各EP区分に含まれる語句ごとに暗号化を行い、秘匿化辞書を作成する。そしてグループ化部164は、各語句をEP区分に基づいてグループ化して、グループ化済辞書を作成する。
【0059】
図6は、機微性判定辞書に基づいてグループ化済辞書を生成する処理の一例を示す図である。機微性判定辞書記憶部110には、EP区分(3,3)に語句「w1,w2」が登録され、EP区分(2,3)に語句「w3,w4」が登録されているものとする。
【0060】
データ管理サーバ100では、ハッシュ種生成部161がハッシュ種kを生成する。例えばハッシュ種生成部161は、ランダムな数値を生成し、ハッシュ種kとする。ハッシュ種生成部161は、生成したハッシュ種kを鍵生成部162に送信する。
【0061】
鍵生成部162は、ハッシュ種kを用いて、所定のアルゴリズムにより、暗号鍵keと照合鍵pkeとの対を生成する。鍵生成部162は、生成した暗号鍵keと照合鍵pkeとを鍵記憶部120に格納する。
【0062】
辞書暗号化部163は、機微性判定辞書記憶部110から機微性判定辞書111を取得する。そして辞書暗号化部163は、機微性判定辞書111に含まれる各語句を、暗号鍵keを用いて暗号化する。例えば暗号鍵keを用いた語句「w1」の暗号化を「ENC(w1,ke)」と表す。語句「w1,w2,w3,w4」それぞれの暗号文を「aa,bb,cc,dd」とする。
【0063】
辞書暗号化部163は、各語句を暗号化して得られた秘匿化辞書131を、秘匿化辞書記憶部130に格納する。秘匿化辞書131には、各語句の暗号文が、元の語句が属するEP区分のEP値に対応付けて登録されている。例えばEP(3,3)のEP区分に属する語句「w1」の暗号文「aa」は、EP(3,3)に対応付けて秘匿化辞書131に登録されている。
【0064】
グループ化部164は、秘匿化辞書131に登録されている各暗号文を、EP区分に応じてグループ化し、グループ化済辞書を生成する。例えばグループ化部164は、EP区分ごとのグループを生成し、該当EP区分の語句の暗号文を、対応するグループに含める。図6の例では、EP(3,3)のEP区分のグループに、語句「w1,w2」の暗号文「aa,bb」が含まれている。またEP(2,3)ののEP区分のグループに、語句「w3,w4」の暗号文「cc,dd」が含まれている。
【0065】
なおグループ化部164は、グループ内の要素数が所定数以下のEP区分がある場合、そのEP区分のグループをEP値が近い他のグループにまとめてもよい。例えば図5のEP(2,3)のEP区分では、属する語句が「遺言書」のみである。この場合、グループ化部164は、「遺言書」の暗号文を、例えばEP(3,3)のEP区分のグループに含める。これにより、1つのグループに属する暗号文の数が所定数以下となることがなくなる。その結果、クエリで検索した語句に対応するグループに基づいて、その語句が特定されることを抑止できる。
【0066】
またグループ化部164は、EP値に基づいて計算される機微度の値が同じとなるグループ同士を1つに纏めてもよい。これにより、1つのグループに含まれる語句の数が多くなり、クエリに含まれる語句の機微度に基づいて、その語句が特定されることが抑止できる。
【0067】
次に、暗号化DB150への暗号文によるデータの登録手順について説明する。
図7は、データ登録手順の一例を示す図である。図7の例では、データ提供サーバ200が有するDB210にデータ「w5,w6」が格納されている。DPがこれらのデータのDUによる検索を許可する場合、データ提供サーバ200の鍵生成部230は、データ管理サーバ100のハッシュ種生成部161からハッシュ種kを取得する。鍵生成部230は、ハッシュ種kを用いて、所定のアルゴリズムにより、暗号鍵kdと照合鍵pkdとの対を生成する。鍵生成部230は、生成した暗号鍵kdと照合鍵pkdとを鍵記憶部220に格納する。
【0068】
データ登録要求部240は、DB210に登録されているデータ「w5,w6」それぞれを、暗号鍵kdで暗号化する。例えば暗号鍵kdを用いたデータ「w5」の暗号化を「ENC(w5,kd)」と表す。データ「w5,w6」それぞれの暗号文を「ff,gg」とする。データ登録要求部240は、暗号文「ff,gg」と照合鍵pkdとを含むデータ登録要求30をデータ管理サーバ100に送信する。
【0069】
データ管理サーバ100のデータ登録部171は、データ提供サーバ200からデータ登録要求30を受信すると、データ登録要求に含まれる暗号文を暗号化DB150に格納する。またデータ登録部171は、照合鍵pkdを鍵記憶部120に格納する。
【0070】
これにより、DB210に登録されているデータの暗号文が暗号化DB150に登録される。なおDB210内のデータが、項目名と項目値とを含む場合、例えば項目名と項目値とが個別に暗号化される。
【0071】
次に、クエリの機微度に基づくリスク評価処理について説明する。
図8は、クエリの機微度に基づくリスク評価処理の第1の例を示す図である。利用者端末300を使用するDUが、DPが提供するデータの利用許可を受けた場合、利用者端末300の鍵生成部320は、データ管理サーバ100から、ハッシュ種生成部161が生成したハッシュ種kを取得する。鍵生成部320は、ハッシュ種kを用いて、所定のアルゴリズムにより、暗号鍵kqと照合鍵pkqとの対を生成する。鍵生成部320は、生成した暗号鍵kqと照合鍵pkqとを鍵記憶部310に格納する。
【0072】
その後、DUが利用者端末300にクエリ31を入力すると、検索要求部330は、クエリ31に含まれる語句それぞれを、暗号鍵kqによって暗号化する。図8の例では、クエリ31には2つの語句「w1,w5」が含まれている。例えば暗号鍵kqを用いたデータ「w1」の暗号化を「ENC(w1,kq)」と表す。データ「w1,w5」それぞれの暗号文を「hh,ii」とする。検索要求部330は、暗号文「hh,ii」を含む検索要求32をデータ管理サーバ100に送信する。なお検索要求部330は、検索要求32に照合鍵pkqを含める。
【0073】
クエリ31の暗号文および照合鍵pkqを含む検索要求32を受信したデータ管理サーバ100では、リスク評価部172が検索要求32に応じた検索を実行することのリスクを評価する。例えばリスク評価部172は、クエリ31の暗号文「hh,ii」により、グループ化済辞書記憶部140内のデータの秘匿検索を行う。図8の例では、グループ化済辞書記憶部140に、2つのグループ「EP(3,3)、EP(2,3)」が含まれている。この場合、リスク評価部172は、クエリ31の暗号文「hh,ii」と同じ平文から暗号化された暗号文を、各グループから検索する。
【0074】
例えば暗号文「hh」によるEP(3,3)内の暗号文「aa,bb」に対する秘匿検索は、秘匿検索関数「Match()」を用いて「Match(hh,{aa,bb})」と表される。秘匿検索の結果も暗号文である。
【0075】
暗号文「hh」によるEP(3,3)内の暗号文「aa,bb」に対する秘匿検索の結果を「abc」とする。暗号文「hh」によるEP(2,3)内の暗号文「cc,dd」に対する秘匿検索の結果を「def」とする。暗号文「ii」によるEP(3,3)内の暗号文「aa,bb」に対する秘匿検索の結果を「ghi」とする。暗号文「ii」によるEP(2,3)内の暗号文「cc,dd」に対する秘匿検索の結果を「jkl」とする。
【0076】
リスク評価部172は、秘匿検索の結果を、2つの照合鍵pke,pkqを用いて復号する。例えば秘匿検索の結果「abc」の復号処理は、復号関数「DEC()」を用いて、「DEC(abc,pkq×pke)」と表される。クエリ31の語句と同じ語句の暗号文が含まれるグループに対する検索結果を復号すると、復号結果が「1」(検索ヒット)となる。またクエリ31の語句と同じ語句の暗号文が含まれないグループに対する検索結果を復号すると、復号結果が「0」(検索ヒットせず)となる。
【0077】
図8の例では、秘匿検索の結果「abc」を復号して得られた値は「1」である。秘匿検索の結果「def」を復号して得られた値は「0」である。秘匿検索の結果「ghi」を復号して得られた値は「0」である。秘匿検索の結果「jkl」を復号して得られた値は「0」である。
【0078】
リスク評価部172は、復号結果が「1」となったときの検索対象のグループ{aa,bb}のEP値(EP(3,3))に基づいて、検索要求32に応じた機微度を計算する。例えばリスク評価部172は、「クエリの機微度=クエリ内の語句の機微度の合計/クエリ内の語句数」とする。図8の例では、クエリ31の機微度は「3×3/2=4.5」となる。
【0079】
なおリスク評価部172は、別の計算方法でクエリ31の機微度を算出してもよい。例えばリスク評価部172は、クエリ31に含まれる語句のうち、グループ化済辞書記憶部140内のいずれかのグループに対する検索でヒットした語句の数を、クエリ31の機微度としてもよい。
【0080】
リスク評価部172は、算出した機微度が閾値以上か否かを判定する。例えば閾値が「3」の場合、図8の例では、機微度「4.5」は閾値以上である。この場合、リスク評価部172は、監査用端末400に、リスクが高いクエリの検出を示すメッセージ33を送信する。メッセージ33には、例えば問題クエリの検知を示す情報と、語句がヒットしたグループ内の語句のリストが示される。またリスク評価部172は、該当クエリ31の検索要求32を送信したDUの情報をメッセージ33に含めてもよい。
【0081】
監査用端末400は、通知されたメッセージ33の内容をモニタに表示する。これにより監査機関において、リスクの高い秘匿検索が行われたことを把握することができる。
なお、機微度が閾値未満であれば、検索要求32に応じた暗号化DB150への秘匿検索が実行される。
【0082】
図9は、クエリの機微度に基づくリスク評価処理の第2の例を示す図である。図9は、機微度の閾値が「5」の場合の例である。データ管理サーバ100が図8の例と同様の検索要求32を受信した場合、リスク評価部172は機微度「4.5」を算出する。そしてリスク評価部172は、機微度を閾値「5」と比較し、機微度が閾値未満であると判定する。この場合、リスク評価部172は、受信した検索要求32を検索部173に送信する。
【0083】
検索部173は、クエリ31の暗号文「hh,ii」により、暗号化DB150内のデータの秘匿検索を行う。図9の例では、暗号化DB150に、2つのデータ「ff,gg」が含まれている。この場合、検索部173は、クエリ31の暗号文「hh,ii」と同じ平文から暗号化された暗号文を、データ「ff,gg」から検索する。
【0084】
例えば暗号文「hh」による暗号文「ff」に対する秘匿検索は、秘匿検索関数「Match()」を用いて「Match(hh,ff)」と表される。秘匿検索の結果も暗号文である。
【0085】
暗号文「hh」による暗号文「ff」に対する秘匿検索の結果を「mno」とする。暗号文「hh」による暗号文「gg」に対する秘匿検索の結果を「pqr」とする。暗号文「ii」による暗号文「ff」に対する秘匿検索の結果を「stu」とする。暗号文「ii」による暗号文「gg」に対する秘匿検索の結果を「vwx」とする。
【0086】
検索部173は、秘匿検索の結果を、2つの照合鍵pkd,pkqを用いて復号する。例えば秘匿検索の結果「mno」の復号処理は、復号関数「DEC()」を用いて、「DEC(mno,pkq×pkd)」と表される。クエリ31の語句と同じ語句の暗号文に対する検索結果を復号すると、復号結果が「1」となる。またクエリ31の語句と同じ語句の暗号文が含まれないグループに対する検索結果を復号すると、復号結果が「0」となる。
【0087】
図9の例では、秘匿検索の結果「mno」を復号して得られた値は「0」である。秘匿検索の結果「pqr」を復号して得られた値は「0」である。秘匿検索の結果「stu」を復号して得られた値は「1」である。秘匿検索の結果「vwx」を復号して得られた値は「0」である。
【0088】
検索部173は、復号して得られた値が「1」となった件数を計数する。図9の例では1件である。この件数が、検索要求32に応じた秘匿検索でヒットした件数である。そして検索部173は、ヒットした件数を示す検索結果34を利用者端末300に送信する。
【0089】
このようにして機微度が閾値未満の場合にのみ、検索要求32に応じた暗号化DB150への秘匿検索を実行し、検索結果34を利用者端末300に送信することができる。機微度が閾値以上の場合、暗号化DB150への秘匿検索の実行が抑止されると共に、リスクの高い検索要求32が入力されたことが、監査機関に通知される。以下、図10図12を参照し、秘匿情報検索の手順を詳細に説明する。
【0090】
図10は、秘匿情報検索の手順の一例を示すシーケンス図(1/3)である。データ管理サーバ100において、ハッシュ種生成部161がハッシュ種kを生成する(ステップS11)。次に鍵生成部162が、ハッシュ種kに基づいて、暗号鍵keと照合鍵pkeとを生成する(ステップS12)。次に辞書暗号化部163が、暗号鍵keを用いて、機微性判定辞書111を暗号化する(ステップS13)。機微性判定辞書111にl個(lは1以上の整数)の語句が含まれている場合、l個の暗号文「ENC(e1,ke),・・・,ENC(el,ke)」が生成される。次にグループ化部164が、各暗号文の元の語句のEP値に基づいて、暗号文のグループ化を行う(ステップS14)。例えば9個のEP区分それぞれに対応するグループ(GP1,・・・,GP9)のいずれかに、各暗号文が分類される。その後、ハッシュ種生成部161は、ハッシュ種kをデータ提供サーバ200に送信する(ステップS15)。
【0091】
ハッシュ種kを受信したデータ提供サーバ200では、鍵生成部230が、ハッシュ種kに基づいて、暗号鍵kdと照合鍵pkdとを生成する(ステップS16)。次にデータ登録要求部240が、DB210内のデータの形態素解析を行う(ステップS17)。形態素解析により、DB210内のデータが、語句ごとのデータ「d1,・・・,dm」に分けられる。データ登録要求部240は、語句ごとのデータ「d1,・・・,dm」それぞれを、暗号鍵kdを用いて暗号化する(ステップS18)。そしてデータ登録要求部240は、暗号化したデータ「d1,・・・,dm」を含む暗号化DBデータ「ENC(DB,kd)」と照合鍵pkdとをデータ管理サーバ100に送信する(ステップS19)。送信された暗号化DBデータ「ENC(DB,kd)」は、データ管理サーバ100の暗号化DB150に格納される。
【0092】
図11は、秘匿情報検索の手順の一例を示すシーケンス図(2/3)である。DUに対して暗号化DB150への検索が許可された場合、まずデータ管理サーバ100のハッシュ種生成部161が利用者端末300へハッシュ種kを送信する(ステップS21)。すると利用者端末300の鍵生成部320が、ハッシュ種kに基づいて、暗号鍵kqと照合鍵pkqとを生成する(ステップS22)。その後、利用者端末300にクエリが入力されると、検索要求部330がクエリの形態素解析を行う(ステップS23)。形態素解析により、クエリ内の文字列が、複数の語句「q1,・・・,qn」に分けられる。次に検索要求部330は、暗号鍵kqを用いて、クエリに含まれる語句「q1,・・・,qn」ごとに暗号化する(ステップS24)。そして検索要求部330は、暗号化したクエリ「ENC(Query,kq)」と照合鍵pkqとを含む検索要求を、データ管理サーバ100に送信する(ステップS25)。
【0093】
データ管理サーバ100のリスク評価部172は、クエリに含まれる語句ごとに、グループ化済辞書記憶部140内のグループそれぞれに対して、ステップS26~S28の処理を行う。処理対象としてi番目の語句(i=1,・・・,n)とj番目のグループGPj(j=1,・・・,9)が選択されたものとする。この場合、リスク評価部172は、語句qiの暗号文ENC(qi)により、グループGPjの暗号文ENG(GPj)内の暗号文の秘匿検索「Match(ENC(qi),ENC(GPj))」を行う(ステップS26)。リスク評価部172は、2つの照合鍵pkq,pkeを用いて、秘匿検索の結果を復号「DEC(Match(ENC(qi),ENC(GPj)),pkq×pke)」する(ステップS27)。そしてリスク評価部172は、復号結果が「1」の場合、j番目のグループGPjのEP値を取得する(ステップS28)。
【0094】
図12は、秘匿情報検索の手順の一例を示すシーケンス図(3/3)である。リスク評価部172は、クエリに含まれる語句とEP区分ごとのグループとのすべての組合せについての秘匿検索、および検索でヒットした場合のEP値の取得が完了すると、取得したEP値に基づいて機微度を計算する(ステップS31)。例えばリスク評価部172は、取得したEP値の精神的苦痛レベルと経済的損失レベルとの乗算値の合計を、クエリに含まれる語句数で除算し、この除算結果を機微度とする。
【0095】
リスク評価部172は、機微度を閾値と比較する(ステップS32)。リスク評価部172は、機微度が閾値以上の場合、監査機関へ問題のあるクエリの検知を通知する(ステップS33)。またリスク評価部172は、機微度が閾値未満の場合、暗号化DB150に対する秘匿検索「Match(ENCkq(Query),ENCkd(DB))」を行う(ステップS34)。リスク評価部172は、2つの照合鍵pkq,pkdを用いて、秘匿検索の結果を復号「DEC(Match(ENCkq(Query),ENCkd(DB)),pkq×pkd)」する(ステップS35)。そしてリスク評価部172は、復号した値が「1」となる件数を、検索結果として利用者端末300に送信する(ステップS36)。
【0096】
このようにしてリスクの高いクエリを検知し、監査機関に通報することが可能となる。例えばDPが医療機関であれば、DPは、患者の診療データをデータ提供サーバ200のDB210で管理する。患者の診療データは、例えば製薬会社における新薬開発に利用できる。例えば、特定の疾患の患者数が分かれば、新薬開発時の治験のしやすさが分かる。しかし、DUに許可されたDBの使用範囲を超えて、例えば新型の感染症の患者数が検索された場合、その情報が漏洩・拡散すると、該当医療機関の関係者や患者の平穏が脅かされるおそれがある。このような場合、機微度の高いクエリによる検索要求を動的に検知することで、許可された目的外での検索を抑止できる。
【0097】
図13は、許可された目的外での検索を抑止する処理の一例を示す図である。例えばEP図51の精神的苦痛レベル「3」、経済的損失レベル「3」のEP区分に、「コロナ、がん」の語句が登録されているものとする。データ管理サーバ100のハッシュ種生成部161は、ハッシュ種kを生成する(ステップS41)。データ管理サーバ100の鍵生成部162は、ハッシュ種kに基づいて、暗号鍵keと照合鍵pkeを生成する(ステップS42)。その後、辞書暗号化部163が、EP図51で表された機微性判定辞書内の語句を暗号化し、グループ化部164は、暗号化された語句をEP区分ごとにグループ化する(ステップS43)。図13の例では、「コロナ」の暗号文「ENC(コロナ,ke)」と「がん」の暗号文「ENC(がん,ke)」とは、同じEP区分(EP(3,3))のグループに属する。
【0098】
またハッシュ種生成部161は、利用者端末300にハッシュ種kを送信する(ステップS44)。利用者端末300の鍵生成部230は、ハッシュ種kに基づいて、暗号鍵kqと照合鍵pkqとを生成する(ステップS45)。
【0099】
ここで「コロナ」がクエリ52として利用者端末300に入力されたものとする。するとデータ登録要求部240は、暗号鍵kqにより、クエリ「コロナ」を暗号化する(ステップS46)。データ登録要求部240は、暗号化によって生成された暗号文「ENC(コロナ,kq)」と照合鍵pkqとを含む検索要求をデータ管理サーバ100に送信する(ステップS47)。
【0100】
データ管理サーバ100のリスク評価部172は、クエリの暗号文「ENC(コロナ,kq)」により、グループ化済辞書記憶部140の秘匿検索を行う(ステップS48)。該秘匿検索は、「Match(ENC(コロナ,kq),{ENC(コロナ,ke),ENC(がん,ke)})」と表される。そしてリスク評価部172は、照合鍵pke,pkqを用いて、秘匿検索の結果を復号する(ステップS49)。EP区分(3,3)に対応するグループに対する秘密検索の結果を復号すると、「DEC{Match(ENC(コロナ,kq),{ENC(コロナ,ke),ENC(がん,ke)}),pke×pkq}=1」となる。
【0101】
復号した値が「1」であるため、リスク評価部172は、対応するEP区分に基づいて機微度を計算し、機微度を閾値と比較する(ステップS50)。図13の例では、EP(3,3)のEP区分に属する語句の機微度は「EP(3,3)=3×3=9」であり、クエリ51内の語句数は「1」であるため、クエリ51の機微度は「9/1=9」となる。図13の例では、閾値は「5」であるものとする。この場合、機微度は閾値以上となる。
【0102】
機微度が閾値以上であるため、リスク評価部172は、問題のあるクエリの検知を監査用端末400に通報する(ステップS51)。例えばリスク評価部172は、「コロナ、がんなどの機微な情報が含まれていました」というメッセージを監査用端末400に送信する。監査用端末400では、受信したメッセージを表示する(ステップS52)。
【0103】
このようにして、監査機関において、問題のあるクエリの検知を認識することができる。しかも、機微度が閾値以上となった場合には、暗号化DB150への検索は行われないため、目的外での検索の検索結果が利用者端末300に送信されることも抑止されている。
【0104】
また機微性判定辞書内の語句がEP区分に基づいてグループ化されているため、TTPまたは監査機関においても、機微な語句による検索が行われたことは把握できるものの、具体的にどのような語句で検索が行われたのかは把握できない。これにより、DUにおける検索意図についての最小限の秘匿性は保たれる。
【0105】
〔その他の実施の形態〕
第2の実施の形態ではRelational Hashを用いた秘匿検索を行っているが、別の暗号技術を用いて秘匿検索を行ってもよい。
【0106】
第2の実施の形態に示した機微性判定辞書111は、機微な語句として、DBの項目名に相当する語が設定されている。これは、項目名を含むクエリに基づいて秘匿検索を行う場合を想定したものである。DBの項目値のみでの検索を許容する場合、例えば機微性判定辞書111として利用されるEP図の各EP区分には、項目値に相当する文字列・数値列などが含まれる。
【0107】
またEP値が同じとなる複数のEP区分は、1つのグループに纏めてもよい。例えばEP(2,3)のEP区分とEP(3,2)のEP区分は同じ値(2×3=3×2=6)となるので、グループ化済辞書記憶部140では同じグループに纏められる。これにより1つのグループ内の語句数を増やすことができ、クエリ内の語句が特定されることを抑止できる。
【0108】
以上、実施の形態を例示したが、実施の形態で示した各部の構成は同様の機能を有する他のものに置換することができる。また、他の任意の構成物や工程が付加されてもよい。さらに、前述した実施の形態のうちの任意の2以上の構成(特徴)を組み合わせたものであってもよい。
【符号の説明】
【0109】
1 利用者端末
2 監査用端末
3,4 クエリ
5 メッセージ
6 検索結果
10 情報処理装置
11 記憶部
11a データベース
11b 辞書データ
12 処理部
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13