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

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

▶ KDDI株式会社の特許一覧

特開2024-137631方針違反検知装置、方針違反検知方法及び方針違反検知プログラム
<>
  • 特開-方針違反検知装置、方針違反検知方法及び方針違反検知プログラム 図1
  • 特開-方針違反検知装置、方針違反検知方法及び方針違反検知プログラム 図2
  • 特開-方針違反検知装置、方針違反検知方法及び方針違反検知プログラム 図3
  • 特開-方針違反検知装置、方針違反検知方法及び方針違反検知プログラム 図4
  • 特開-方針違反検知装置、方針違反検知方法及び方針違反検知プログラム 図5
  • 特開-方針違反検知装置、方針違反検知方法及び方針違反検知プログラム 図6
  • 特開-方針違反検知装置、方針違反検知方法及び方針違反検知プログラム 図7
  • 特開-方針違反検知装置、方針違反検知方法及び方針違反検知プログラム 図8
  • 特開-方針違反検知装置、方針違反検知方法及び方針違反検知プログラム 図9
  • 特開-方針違反検知装置、方針違反検知方法及び方針違反検知プログラム 図10
  • 特開-方針違反検知装置、方針違反検知方法及び方針違反検知プログラム 図11
  • 特開-方針違反検知装置、方針違反検知方法及び方針違反検知プログラム 図12
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024137631
(43)【公開日】2024-10-07
(54)【発明の名称】方針違反検知装置、方針違反検知方法及び方針違反検知プログラム
(51)【国際特許分類】
   H04L 9/30 20060101AFI20240927BHJP
【FI】
H04L9/30 Z
【審査請求】未請求
【請求項の数】5
【出願形態】OL
(21)【出願番号】P 2023177036
(22)【出願日】2023-10-12
(31)【優先権主張番号】P 2023048661
(32)【優先日】2023-03-24
(33)【優先権主張国・地域又は機関】JP
(71)【出願人】
【識別番号】000208891
【氏名又は名称】KDDI株式会社
(74)【代理人】
【識別番号】100106002
【弁理士】
【氏名又は名称】正林 真之
(74)【代理人】
【識別番号】100120891
【弁理士】
【氏名又は名称】林 一好
(72)【発明者】
【氏名】中村 徹
(72)【発明者】
【氏名】岡田 大樹
(72)【発明者】
【氏名】磯原 隆将
(57)【要約】
【課題】マッチングの処理アルゴリズムが非公開の場合であっても、処理結果がマッチングの安定性を満たしているか否かを判定できる方針違反検知装置を提供すること。
【解決手段】検知サーバ1は、マッチング結果及び選好順位を暗号化された状態で受信する受信部11と、マッチング結果が安定か否かを判定するアルゴリズムを実行し、判定結果を示す値を暗号化された状態で算出する判定部12と、算出された値を送信する送信部13とを備え、アルゴリズムは、選好順位のベクトルとマッチング相手を示すワンホットベクトルとの内積により、マッチング相手の選好順位を求めるステップと、マッチング相手よりも上位の選好順位である要素のみを1に、その他を0に設定したグループ毎の2つの行列を作成するステップと、2つの行列について、一方の各行と他方の各列との論理積の全てに対する論理和を、判定結果を示す値として算出するステップとを実行させる。
【選択図】図1
【特許請求の範囲】
【請求項1】
参加者それぞれが持つ他方のグループの選好順序に基づいて実行サーバにより処理された2つのグループのマッチング結果を取得した前記参加者の端末それぞれから、当該マッチング結果、及び当該マッチング結果の元となった前記選好順序を示す選好順位のデータを、準同型暗号方式により暗号化された状態で受信する受信部と、
前記準同型暗号方式により、前記マッチング結果が安定か否かを判定するアルゴリズムを、暗号化された前記マッチング結果及び前記選好順位に基づいて実行し、判定結果を示す値を暗号化された状態で算出する判定部と、
前記判定部により算出された値を、暗号化された状態で前記端末へ送信し、当該値を前記端末に復号させることにより前記マッチング結果が正当であるか否かを通知する送信部と、を備え、
前記アルゴリズムは、
前記他方のグループの参加者それぞれの選好順位を示すベクトルと、前記マッチング結果におけるマッチング相手を示すワンホットベクトルとの内積により、当該マッチング相手の選好順位を求めるステップと、
前記選好順位を示すベクトルの要素のうち、前記マッチング相手の選好順位よりも上位の選好順位である要素のみを1に、その他を0に設定したベクトルを並べたグループ毎の2つの行列を作成するステップと、
前記2つの行列について、一方のi行j列と他方のj行i列との論理積の全てに対する論理和又は当該論理和の否定を、前記判定結果を示す値として算出するステップと、を条件分岐せずに前記判定部に実行させる方針違反検知装置。
【請求項2】
参加者それぞれが持つ他方のグループの選好順序に基づいて実行サーバにより処理された2つのグループのマッチング結果を取得した前記参加者の端末それぞれから、当該マッチング結果、及び当該マッチング結果の元となった前記選好順序を示す選好順位のデータを、準同型暗号方式により暗号化された状態で受信する受信部と、
前記準同型暗号方式により、前記マッチング結果が安定か否かを判定するアルゴリズムを、暗号化された前記マッチング結果及び前記選好順位に基づいて実行し、判定結果を示す値を暗号化された状態で算出する判定部と、
前記判定部により算出された値を、暗号化された状態で前記端末へ送信し、当該値を前記端末に復号させることにより前記マッチング結果が正当であるか否かを通知する送信部と、を備え、
前記アルゴリズムは、
前記他方のグループの参加者それぞれの選好順位を示すベクトルと、前記マッチング結果におけるマッチング相手を示すワンホットベクトルとの内積により、当該マッチング相手の選好順位を求めるステップと、
前記選好順位を示すベクトルの要素のうち、前記マッチング相手の選好順位よりも上位の選好順位である要素のみを1に、その他を0に設定したベクトルを並べたグループ毎の2つの行列を作成するステップと、
前記2つの行列について、一方のi行j列と他方のj行i列との論理積の総和を、前記判定結果を示す値として算出するステップと、を条件分岐せずに前記判定部に実行させる方針違反検知装置。
【請求項3】
参加者それぞれが持つ他方のグループの選好順序に基づいて実行サーバにより処理された2つのグループのマッチング結果を取得した前記参加者の端末それぞれから、当該マッチング結果、及び当該マッチング結果の元となった前記選好順序を示す選好順位のデータを、準同型暗号方式により暗号化された状態で受信する受信ステップと、
前記準同型暗号方式により、前記マッチング結果が安定か否かを判定するアルゴリズムを、暗号化された前記マッチング結果及び前記選好順位に基づいて実行し、判定結果を示す値を暗号化された状態で算出する判定ステップと、
前記判定ステップにおいて算出された値を、暗号化された状態で前記端末へ送信し、当該値を前記端末に復号させることにより前記マッチング結果が正当であるか否かを通知する送信ステップと、をコンピュータが実行し、
前記判定ステップにおいて、
前記他方のグループの参加者それぞれの選好順位を示すベクトルと、前記マッチング結果におけるマッチング相手を示すワンホットベクトルとの内積により、当該マッチング相手の選好順位を求めるステップと、
選好順位を示すベクトルの要素のうち、前記マッチング相手の選好順位よりも上位の選好順位である要素のみを1に、その他を0に設定したベクトルを並べたグループ毎の2つの行列を作成するステップと、
前記2つの行列について、一方のi行j列と他方のj行i列との論理積の全てに対する論理和又は当該論理和の否定を、前記判定結果を示す値として算出するステップと、を条件分岐せずに実行する方針違反検知方法。
【請求項4】
参加者それぞれが持つ他方のグループの選好順序に基づいて実行サーバにより処理された2つのグループのマッチング結果を取得した前記参加者の端末それぞれから、当該マッチング結果、及び当該マッチング結果の元となった前記選好順序を示す選好順位のデータを、準同型暗号方式により暗号化された状態で受信する受信ステップと、
前記準同型暗号方式により、前記マッチング結果が安定か否かを判定するアルゴリズムを、暗号化された前記マッチング結果及び前記選好順位に基づいて実行し、判定結果を示す値を暗号化された状態で算出する判定ステップと、
前記判定ステップにおいて算出された値を、暗号化された状態で前記端末へ送信し、当該値を前記端末に復号させることにより前記マッチング結果が正当であるか否かを通知する送信ステップと、をコンピュータが実行し、
前記判定ステップにおいて、
前記他方のグループの参加者それぞれの選好順位を示すベクトルと、前記マッチング結果におけるマッチング相手を示すワンホットベクトルとの内積により、当該マッチング相手の選好順位を求めるステップと、
選好順位を示すベクトルの要素のうち、前記マッチング相手の選好順位よりも上位の選好順位である要素のみを1に、その他を0に設定したベクトルを並べたグループ毎の2つの行列を作成するステップと、
前記2つの行列について、一方のi行j列と他方のj行i列との論理積の総和を、前記判定結果を示す値として算出するステップと、を条件分岐せずに実行する方針違反検知方法。
【請求項5】
請求項1又は請求項2に記載の方針違反検知装置としてコンピュータを機能させるための方針違反検証プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、マッチングサービスにおけるマッチング処理が事前に提示された方針に違反していないかを検知する方針違反検知装置、方針違反検知方法及び方針違反検知プログラムに関する。
【背景技術】
【0002】
二部グラフにおけるマッチングの最適化問題は、労働者を仕事に割り当てるジョブマッチング問題の数学モデルなどとして古くから研究されている。全体として満足度を最適化するマッチングは、重み付き最小完全二部グラフの最小フロー問題に帰着される。非特許文献1の安定結婚問題は、このマッチングに安定性という概念を採用した問題であり、安定なマッチングをO(n)の計算量で見つけるアルゴリズムが提案されている。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2023-055512号公報
【特許文献2】特願2022-152630号明細書
【非特許文献】
【0004】
【非特許文献1】D. Gale and L. S. Shapley. College admissions and the stability of marriage. The American Mathematical Monthly, Vol. 69, pp. 9-15, 1962.
【非特許文献2】Z. Brakerski and R. Perlman. Lattice-based fully dynamic multi-key FHE with short ciphertexts. Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics), Vol. 9814, No. 468, pp. 190-213, 2016.
【非特許文献3】A. Acar, H. Aksu, A. S. Uluagac and M. Conti. A survey on homomorphic encryption schemes: Theory and implementation. ACM Computing Surveys (Csur), 51(4):1-35, 2018.
【非特許文献4】D. Gusfield and R. W. Irving. The Stable Marriage Problem: Structure and Algorithms. The MIT Press, 1989.
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、例えば非特許文献1のように安定性の評価基準を採用したマッチングサービスが提供される場合、このサービスを利用するユーザは、たとえサービスの方針が提示されていても、実際にどのような方針に基づくマッチング結果を受領しているのかを、自身の好みを他の参加者に公開することなく確信する手段がなかった。
【0006】
これに対し、特許文献1では、マッチングアルゴリズムが公開されており、同一の演算を実行可能であれば、方針違反があった場合にこれを検知する手法が示されたが、マッチングアルゴリズムはサービス事業者の知的財産であり、また、サービス事業者の内部的事情により決定される場合もあるため、必ずしも公開できるわけではない。
【0007】
また、特許文献2では、マッチングアルゴリズムが非公開であるが、方針違反があるかどうかを判定するアルゴリズムが存在する場合に、自身の好みを他の参加者に公開することなく判定する手法が示された。この手法では、方針違反があるかどうかを判定する手段が完全準同型暗号(Fully Homomorphic Encryption(FHE))を用いて実装される。
しかしながら、完全準同型暗号は、理論上は任意のアルゴリズムを実行できるが、実装方法は自明ではない。基本的な演算についてはオープンソースライブラリが提供されているが、条件分岐(IF文)が含まれるアルゴリズムについては、条件判定式の結果を演算者は見ることができないので、そのまま実装することができなかった。
【0008】
本発明は、マッチングの処理アルゴリズムが非公開の場合であっても、処理結果がマッチングの安定性を満たしているか否かを判定できる方針違反検知装置、方針違反検知方法及び方針違反検知プログラムを提供することを目的とする。
【課題を解決するための手段】
【0009】
本発明に係る方針違反検知装置は、参加者それぞれが持つ他方のグループの選好順序に基づいて実行サーバにより処理された2つのグループのマッチング結果を取得した前記参加者の端末それぞれから、当該マッチング結果、及び当該マッチング結果の元となった前記選好順序を示す選好順位のデータを、準同型暗号方式により暗号化された状態で受信する受信部と、前記準同型暗号方式により、前記マッチング結果が安定か否かを判定するアルゴリズムを、暗号化された前記マッチング結果及び前記選好順位に基づいて実行し、判定結果を示す値を暗号化された状態で算出する判定部と、前記判定部により算出された値を、暗号化された状態で前記端末へ送信し、当該値を前記端末に復号させることにより前記マッチング結果が正当であるか否かを通知する送信部と、を備え、前記アルゴリズムは、前記他方のグループの参加者それぞれの選好順位を示すベクトルと、前記マッチング結果におけるマッチング相手を示すワンホットベクトルとの内積により、当該マッチング相手の選好順位を求めるステップと、前記選好順位を示すベクトルの要素のうち、前記マッチング相手の選好順位よりも上位の選好順位である要素のみを1に、その他を0に設定したベクトルを並べたグループ毎の2つの行列を作成するステップと、前記2つの行列について、一方のi行j列と他方のj行i列との論理積の全てに対する論理和又は当該論理和の否定を、前記判定結果を示す値として算出するステップと、を条件分岐せずに前記判定部に実行させる。
【0010】
本発明に係る方針違反検知装置は、参加者それぞれが持つ他方のグループの選好順序に基づいて実行サーバにより処理された2つのグループのマッチング結果を取得した前記参加者の端末それぞれから、当該マッチング結果、及び当該マッチング結果の元となった前記選好順序を示す選好順位のデータを、準同型暗号方式により暗号化された状態で受信する受信部と、前記準同型暗号方式により、前記マッチング結果が安定か否かを判定するアルゴリズムを、暗号化された前記マッチング結果及び前記選好順位に基づいて実行し、判定結果を示す値を暗号化された状態で算出する判定部と、前記判定部により算出された値を、暗号化された状態で前記端末へ送信し、当該値を前記端末に復号させることにより前記マッチング結果が正当であるか否かを通知する送信部と、を備え、前記アルゴリズムは、前記他方のグループの参加者それぞれの選好順位を示すベクトルと、前記マッチング結果におけるマッチング相手を示すワンホットベクトルとの内積により、当該マッチング相手の選好順位を求めるステップと、前記選好順位を示すベクトルの要素のうち、前記マッチング相手の選好順位よりも上位の選好順位である要素のみを1に、その他を0に設定したベクトルを並べたグループ毎の2つの行列を作成するステップと、前記2つの行列について、一方のi行j列と他方のj行i列との論理積の総和を、前記判定結果を示す値として算出するステップと、を条件分岐せずに前記判定部に実行させてもよい。
【0011】
本発明に係る方針違反検知方法は、参加者それぞれが持つ他方のグループの選好順序に基づいて実行サーバにより処理された2つのグループのマッチング結果を取得した前記参加者の端末それぞれから、当該マッチング結果、及び当該マッチング結果の元となった前記選好順序を示す選好順位のデータを、準同型暗号方式により暗号化された状態で受信する受信ステップと、前記準同型暗号方式により、前記マッチング結果が安定か否かを判定するアルゴリズムを、暗号化された前記マッチング結果及び前記選好順位に基づいて実行し、判定結果を示す値を暗号化された状態で算出する判定ステップと、前記判定ステップにおいて算出された値を、暗号化された状態で前記端末へ送信し、当該値を前記端末に復号させることにより前記マッチング結果が正当であるか否かを通知する送信ステップと、をコンピュータが実行し、前記判定ステップにおいて、前記他方のグループの参加者それぞれの選好順位を示すベクトルと、前記マッチング結果におけるマッチング相手を示すワンホットベクトルとの内積により、当該マッチング相手の選好順位を求めるステップと、選好順位を示すベクトルの要素のうち、前記マッチング相手の選好順位よりも上位の選好順位である要素のみを1に、その他を0に設定したベクトルを並べたグループ毎の2つの行列を作成するステップと、前記2つの行列について、一方のi行j列と他方のj行i列との論理積の全てに対する論理和又は当該論理和の否定を、前記判定結果を示す値として算出するステップと、を条件分岐せずに実行する。
【0012】
本発明に係る方針違反検知方法は、参加者それぞれが持つ他方のグループの選好順序に基づいて実行サーバにより処理された2つのグループのマッチング結果を取得した前記参加者の端末それぞれから、当該マッチング結果、及び当該マッチング結果の元となった前記選好順序を示す選好順位のデータを、準同型暗号方式により暗号化された状態で受信する受信ステップと、前記準同型暗号方式により、前記マッチング結果が安定か否かを判定するアルゴリズムを、暗号化された前記マッチング結果及び前記選好順位に基づいて実行し、判定結果を示す値を暗号化された状態で算出する判定ステップと、前記判定ステップにおいて算出された値を、暗号化された状態で前記端末へ送信し、当該値を前記端末に復号させることにより前記マッチング結果が正当であるか否かを通知する送信ステップと、をコンピュータが実行し、前記判定ステップにおいて、前記他方のグループの参加者それぞれの選好順位を示すベクトルと、前記マッチング結果におけるマッチング相手を示すワンホットベクトルとの内積により、当該マッチング相手の選好順位を求めるステップと、選好順位を示すベクトルの要素のうち、前記マッチング相手の選好順位よりも上位の選好順位である要素のみを1に、その他を0に設定したベクトルを並べたグループ毎の2つの行列を作成するステップと、前記2つの行列について、一方のi行j列と他方のj行i列との論理積の総和を、前記判定結果を示す値として算出するステップと、を条件分岐せずに実行してもよい。
【0013】
本発明に係る方針違反検知プログラムは、前記方針違反検知装置としてコンピュータを機能させるためのものである。
【発明の効果】
【0014】
本発明によれば、マッチングの処理アルゴリズムが非公開の場合であっても、処理結果がマッチングの安定性を満たしているか否かを判定できる。
【図面の簡単な説明】
【0015】
図1】第1実施形態における方針違反検知方法を実施する検知システムの全体構成、及びサービスの概要を示す図である。
図2】第1実施形態における検知サーバの機能構成を示す図である。
図3】第1実施形態における検知システムが実施する検知方法を示すシーケンス図である。
図4】第1実施形態における安定マッチングと、安定でないマッチングとを比較して例示する図である。
図5】第1実施形態がもとにする、従来の安定性判定アルゴリズムを示す図である。
図6】第1実施形態における完全準同型暗号で実行可能な安定性判定アルゴリズムを示す図である。
図7】第1実施形態の計算例で用いる各参加者の選好順序を示す図である。
図8】第1実施形態の計算例で用いるマッチング、及びブロッキングペアを示す図である。
図9】第1実施形態の計算例による選好順序から変換された選好順位、及びマッチング相手の順位を示す図である。
図10】第1実施形態の計算例による各参加者の選好順位と、マッチング相手の選好順位とを比較した結果を示す図である。
図11】第1実施形態の計算例によるブロッキングペアの存在確認結果を示す図である。
図12】第2実施形態における完全準同型暗号で実行可能な安定性判定アルゴリズムを示す図である。
【発明を実施するための形態】
【0016】
[第1実施形態]
本発明の第1実施形態について説明する。
本実施形態では、ユーザが利用するサービスとして、男女のマッチングサービスを例示する。安定なマッチングを実施していると提示しておきながら、実際には異なる方針によって結果が出力されている場合、本実施形態の方針違反検知方法により方針違反が検知される。
なお、本実施形態の方針違反検知方法は、ジョブマッチングなどの類似のマッチングサービスの場合にも適用できる。
【0017】
図1は、本実施形態における方針違反検知方法を実施する検知システム100の全体構成、及びサービスの概要を示す図である。
検知システム100は、検知サーバ1(方針違反検知装置)と、マッチングサービスを提供する実行サーバ2と、サービスを利用する複数の参加者それぞれの端末3とを備える。
【0018】
検知サーバ1は、実行サーバ2におけるマッチング処理の結果が事前に提示されたマッチングの方針に違反しているか否かを検知し、参加者の端末3に通知する。
ここで、マッチングのアルゴリズムは非公開のため、検知サーバ1は、処理結果が実行サーバ2と同一のアルゴリズムを実行した結果と一致するか否かを検証するのではなく、方針として提示された条件を満たしているか否かを判定する。
【0019】
nを参加者の人数とする。各参加者は、プライベートな入力x,…,xをそれぞれ持ち、参加者iのプライベートな入力をx∈Xとする。
入力x,…,xに対し、要件Lを満たす結果y∈Yを提供することを、参加者(端末3)が実行サーバ2に対して要求しているとする。Lは、L⊆X×…×X×Yと記述することができる。すなわち、参加者の要件は、(x,…,x,y)∈Lとなる結果yを得ることである。
【0020】
実行サーバ2は、参加者にyを選択して提供する。実行サーバ2は、(x,…,x,y)∈Lであるyを提供することを参加者から期待されているが、実行サーバ2が悪意を持っている場合、(x,…,x,y’)がLに属さないy’を選択するかもしれない。
参加者の端末3は、実行サーバ2及び第三者サーバである検知サーバ1(検証者)と通信してプロトコルを実行し、検知サーバ1からマッチング結果が安定性を満たしているか否かを判定した検証結果を取得する。
ここで、入力を(x,…,x,y)としたとき、(x,…,x,y)∈Lであれば1を、そうでなければ0を出力する判定アルゴリズムが存在するとする。
【0021】
本実施形態における方針違反検知プロトコルの要件は、次の通りである。
1.検証可能性: 参加者は、x,…,xに対する結果yについて、(x,…,x,y)∈Lであるとき、かつ、そのときに限りyを受け入れる。
2.プライバシ: このプロトコルにより参加者のプライベートな入力が他の参加者及び検証者に漏れることがない。
3.選択可能性: 実行サーバ2は、任意のy∈Yを選択することができる。
【0022】
参加者(端末3)及び検証者(検知サーバ1)は、semi-honestとし、参加者の選好順序に興味はあるが、決められた処理以外の処理を実施することはないものとする。
【0023】
端末3は、参加者自身の選好順序を実行サーバ2に送付する(1)。実行サーバ2は、受け取った選好順序に基づいてマッチング結果を選択し、各参加者の端末3に送付する(2)。
マッチング結果を受け取った端末3は、完全準同型暗号により暗号化した、選好順序及びマッチング結果を検知サーバ1に送付する(3)。検知サーバ1は、暗号化された選好順序を示すデータ(選好順位)及び暗号化されたマッチング結果に基づいて、判定アルゴリズムを準同型演算により実行し(4)、暗号化された検証結果を参加者の端末3に送付する(5)。
【0024】
ここで、完全準同型暗号は、暗号化したまま任意の演算が可能となる暗号であり、次のように定義される(例えば、非特許文献2及び3参照)。
【0025】
定義1.完全準同型暗号HEは、正当性、簡潔性、安全性を満たすアルゴリズム(Setup,Keygen,Enc,Dec,Eval)の5つ組である。
・セットアップ param←Setup(1λ):
公開パラメータparamを出力する。
・鍵生成 (pk,sk)←Keygen(param):
公開の暗号鍵pk及び秘密の復号鍵skを出力する。
・暗号化 c←Enc(pk,μ):
公開鍵pkを用いてメッセージμ∈{0,1}を暗号化し、暗号文cを出力する。
・復号 μ←Dec(sk,c):
秘密鍵skを用いて暗号文cを復号し、メッセージμを出力する。
・準同型演算 c^←Eval(C,(c,…,c),pk):
公開鍵pkを用いて、c,…,cに対して任意の回路C:{0,1}→{0,1}を適用し、暗号文c^を出力する。
【0026】
なお、正当性とは、暗号化アルゴリズム及び準同型演算アルゴリズムによって得られた暗号文が正しく復号できる性質である。簡潔性とは、準同型演算を行った後の暗号文の大きさが演算した回路の大きさに依らない性質である。安全性とは、任意の攻撃者による攻撃成功率が無視できるほど小さい性質である。
任意の回路に対して準同型演算可能であれば、任意のアルゴリズムに対して準同型演算可能な完全準同型暗号を構成できることは自明である。したがって、次のような完全準同型暗号を改めて定義する。以下、完全準同型暗号というときには、次の定義を適用することとする。
【0027】
定義2.完全準同型暗号HEは、正当性、簡潔性、安全性を満たすアルゴリズム(Setup,Keygen,Enc,Dec,Eval)の5つ組である。
・セットアップ param←Setup(1λ):
公開パラメータparamを出力する。
・鍵生成 (pk,sk)←Keygen(param):
公開の暗号鍵pk及び秘密の復号鍵skを出力する。
・暗号化 c←Enc(pk,μ):
公開鍵pkを用いて任意のメッセージμを暗号化し、暗号文cを出力する。
・復号 μ←Dec(sk,c):
秘密鍵skを用いて暗号文cを復号し、メッセージμを出力する。
・準同型演算 c^←Eval(A,(c,…,c),d,pk):
公開鍵pkと、暗号文c,…,c及びdとを用いて、任意のアルゴリズムA:X×…×X×Y→{0,1}を計算し、暗号文c^を出力する。
【0028】
図2は、本実施形態における検知サーバ1の機能構成を示す図である。
検知サーバ1は、制御部10及び記憶部20の他、各種データの入出力デバイス及び通信デバイスなどを備えたサーバ装置とするが、パーソナルコンピュータなどの各種の情報処理装置(コンピュータ)で代替可能ある。
【0029】
制御部10は、検知サーバ1の全体を制御する部分であり、記憶部20に記憶された各種プログラムを適宜読み出して実行することにより、本実施形態における各機能を実現する。制御部10は、CPUであってよい。
【0030】
記憶部20は、ハードウェア群を検知サーバ1として機能させるための各種プログラム、及び各種データなどの記憶領域であり、ROM、RAM、フラッシュメモリ又はハードディスクドライブ(HDD)などであってよい。
具体的には、記憶部20は、本実施形態の各機能を制御部10に実行させるためのプログラム(方針違反検知プログラム)の他、参加者の端末3からの検証依頼データ及び検証結果などの暗号化されたデータを記憶する。
【0031】
制御部10は、受信部11と、判定部12と、送信部13とを備える。
受信部11は、参加者それぞれの選好順序データに基づいて実行サーバ2により処理されたマッチング結果を取得した端末3のそれぞれから、この処理結果、及び処理結果の元となった選好順序データを、準同型暗号方式により暗号化された状態で受信する。
【0032】
判定部12は、準同型暗号方式により、実行サーバ2の処理方針である安定性を満たすか否かを判定する後述のアルゴリズムを、暗号化された処理結果及び暗号化された選好順序データに基づいて実行し、判定結果を示す値を暗号化された状態で算出する。
【0033】
送信部13は、判定部12により算出された値を、暗号化された状態で端末3へ送信し、この値を端末3に復号させることにより実行サーバ2による処理結果が正当であるか否かを検証結果として通知する。
【0034】
図3は、本実施形態における検知システム100が実施する検知方法を示すシーケンス図である。
ここでは、入力(x,…,x,y)に対し、(x,…,x,y)∈Lのときに1を、そうでないときに0を出力する判定アルゴリズムVが存在し、また、Vが準同型演算可能であると仮定する。
【0035】
ステップS1において、参加者の代表者i^∈{1,…,n}の端末3Aは、Setup(1λ)を実行してパラメータparamを取得し、これを公開する。
【0036】
ステップS2において、端末3Aは、Keygen(param)を実行し、(pk,sk)を取得する。端末3Aは、公開鍵pkを公開し、秘密鍵skを全参加者の端末3に配布して共有する。
【0037】
ステップS3において、各参加者iの端末3は、安全な通信路を用いてx∈Xを実行サーバ2に送信する。
【0038】
ステップS4において、実行サーバ2は、任意のマッチング結果y∈Yを選択し、各参加者の端末3に送信する。
【0039】
ステップS5において、各参加者iの端末3は、c ←Enc(pk,x)及びc←Enc(pk,y)を、安全な通信路を用いて検知サーバ1に送信する。なお、cは、任意の参加者1名(例えば、代表者i^の端末3A)のみが送信してもよい。
【0040】
ステップS6において、検知サーバ1は、r’←Eval(V,(c ,…,c ),c,pk)を実行し、暗号化された検証結果r’を各参加者の端末3に送信する。
【0041】
ステップS7において、各参加者iの端末3は、r←Dec(r’,sk)を実行し、r=1であればマッチング結果yを受諾し、そうでなければ棄却する。
【0042】
以下、安定マッチングを検証する場合の判定アルゴリズムVと、完全準同型暗号を用いたその具体的な実装方法を説明する。
【0043】
[安定マッチングの定義]
マッチングのインスタンスIは、2つの互いに素な要素数nの集合M及びWからなる。Mは男性集合、Wは女性集合である。各要素xは、それぞれもう一方の集合の要素に対し、選好順序(preference order)と呼ばれる狭義全順序
【数1】
を持つ。
マッチングZはMとWのペアであり、すなわち、Z⊆M×Wである。ここでは簡単のため、必ず1対1のペアをn組作る場合のみ考える。(m,w)∈Zのとき、Z(m)=w,Z(w)=mと表す。mの選好順序におけるwの順位をP(w)と表し、これをmにおけるwの選好順位(preference rank)と呼ぶ。同様に、wにおけるmの選好順位をP(m)と表す。
【0044】
定義3.マッチングZが与えられたとき、以下の条件1~3を全て満たすような男女ペア(m’,w’)をZのブロッキングペアと呼ぶ。
【数2】
定義4.ブロッキングペアが存在しないマッチングZを、安定なマッチングと呼ぶ。
【0045】
すなわち、ブロッキングペアは、ペアとなる両方の要素(w’,m’)が、それぞれ現在のペアである要素(Z(m’),Z(w’))よりも好み(選好順位が上位)のペアであり、このようなペアが存在しないとき、浮気できない安定した状態といえる。
【0046】
図4は、本実施形態における安定マッチングと、安定でないマッチングとを比較して例示する図である。
ここでは、男性A~D及び女性a~dのそれぞれは、異性のグループに対する選好順序を有している。例えば、男性Aは、女性b,c,a,dの順の選好順序を持っている。
【0047】
例示した全体最適だが安定でないマッチングでは、男性Aは女性cと、女性bは男性Cとペアになっているが、男性Aは女性bをより好み、女性bは男性Aをより好んでいることから、男性Aと女性bのペアがブロッキングペアとして存在している。
一方、例示した安定マッチングでは、このようなブロッキングペアが存在しない。
【0048】
[安定性判定アルゴリズム]
あるインスタンス及びマッチングが与えられたとき、このマッチングが安定であるか否かを、O(n)の計算量で確認する判定アルゴリズムが非特許文献4に示されている。
本実施形態の方針違反検知方法は、この判定アルゴリズムを変換し、完全準同型暗号により実装したものである。
【0049】
図5は、本実施形態がもとにする、従来の安定性判定アルゴリズムを示す図である。
この判定アルゴリズムでは、一方のグループ(男性)の全ての参加者mについて(1行目)、提示されたペアの相手Z(m)よりも好みである各女性wの選好順序を調べる(2行目)。
【0050】
wの選好順序において、提示されたペアの相手Z(w)よりもmが好みである場合(3行目)、ブロッキングペア(m,w)が存在するので0を返し(4行目)、全ての組み合わせがブロッキングペアでなければ、1を返す(9行目)。
【0051】
この判定アルゴリズムは、完全準同型暗号を用いて実装しようとする場合、条件分岐の判定式(if文)の結果も暗号化されているため、これを計算者は知ることができず、実装することができない。そこで、本実施形態では、この判定アルゴリズムを条件分岐のない形式に変換する。
【0052】
[完全準同型暗号による実装]
HElibのような、準同型暗号によって実装された基本演算を扱うオープンソースソフトウェアが公開されている。本実施形態では、このような公開ライブラリで提供されている基本演算のみによって、条件分岐のない安定性判定アルゴリズムを構築する。使用する関数は以下の通りである。
1. 2つの整数の加算:ADD(x,y)は、xとyを加算したx+yを出力する。
2. 整数とビットの乗算:MULT(x,y)は、ビットy=1のとき整数xを出力し、y=0のとき整数0を出力する。
3. 2つの整数の比較:COMP(x,y)は、x<yのとき1を出力し、x≧yのとき0を出力する。
4. ANDは、ビットの論理積である。
5. ORは、ビットの論理和である。
6. NOTは、ビットの論理否定である。
【0053】
安定性判定アルゴリズムの前準備として、まず、参加者のプライベートな入力、すなわち選好順序は、選好順位のリストの形式に変換される。すなわち、男性の参加者mのリストは、Lmi=(Pmi(w),Pmi(w),…,Pmi(w))と記述し、女性の参加者wのリストは、Lwi=(Pwi(m),Pwi(m),…,Pwi(m))と記述することとなる。
暗号化については、リストの要素ごとに行う。すなわち、参加者mが検証者に送る暗号文は、c =(ci,1 ,ci,2 ,…,ci,n )となる。ここで、ci,j ←Enc(pk,Pmi(w))である。
【0054】
また、検証者に送るマッチング結果yは、ワンホットベクトルのペア(y,y)として表現される。すなわち、mの相手がwであるとき(Z(m)=w)、y は、j番目のビットのみ1で、それ以外は0となるnビット列である。同様に、Z(w)=mとすると、y は、j番目のビットのみ1で、それ以外は0となるnビット列である。
【0055】
図6は、本実施形態における完全準同型暗号で実行可能な安定性判定アルゴリズムを示す図である。
まず、判定部12は、出力値を初期化(r=0)した後(1行目)、男女各グループの参加者の数(n)だけループ処理を行う(2行目~15行目)。
【0056】
判定部12は、i番目の参加者(m及びw)について、提示されたマッチング結果におけるマッチング相手の選好順位を初期化(s=0,s=0)した後(3行目~4行目)、選好順位のリスト(ベクトル)とマッチング結果を示すワンホットベクトルとの内積、すなわち要素毎の乗算及びそれらの加算により、マッチング相手の選好順位(s,s)を算出する(5行目~10行目)。
【0057】
続いて、判定部12は、i番目の参加者(m及びw)について、選好順位のリストの各要素とマッチング相手の選好順位とを比較し、マッチング相手の選好順位よりも上位の要素を1に、その他の要素を0としたリストを作成する(11行目~14行目)。これが各参加者について実行されることで1又は0を要素とした2つの行列(e,e)が作成される。
【0058】
次に、判定部12は、この2つの行列について、互いの行と列とを要素ごとに論理積を求めることで、この組み合わせがブロッキングペアか(ti,j=1)否か(ti,j=0)を確かめる(18行目)。
そして、判定部12は、論理和を用いて、いずれかの組み合わせがブロッキングペアの場合に、r=1とする(19行目)。
最後に、判定部12は、rの論理否定により、マッチング結果が安定か(r=1)否か(r=0)を出力する。
【0059】
この安定性判定アルゴリズムは、条件分岐を用いることなく、前述の関数ADD、MULT、COMP、ADD、OR、NOTのみを用いて構成されており、計算複雑さはO(n)である。
【0060】
[計算例]
安定性判定アルゴリズムによる計算例を示す。
ここでは、参加者の人数は、男女それぞれ4人(n=4)とする。
【0061】
図7は、本実施形態の計算例で用いる各参加者の選好順序を示す図である。
例えば、男性mによる選好順序は、w,w,w,wの順であり、女性w1による選好順序は、m,m,m,mの順である。
同様に、全ての参加者についての選好順序が入力される。
【0062】
図8は、本実施形態の計算例で用いるマッチング、及びブロッキングペアを示す図である。
マッチングZ={(m,w),(m,w),(m,w),(m,w)}とする。なお、図中では、選好順序内のマッチングの相手を網掛けで示し、ペアを線で結んでいる。
この例では、(m,w)がブロッキングペアであるから、このマッチングZは安定ではない。
【0063】
図9は、本実施形態の計算例による選好順序から変換された選好順位、及びマッチング相手の順位を示す図である。
本アルゴリズムでは、図に示すように、選好順序は選好順位のリストに変換される。なお、図中では、マッチングの相手を網掛けで示している。
【0064】
マッチングZは、y=((0,0,1,0),(1,0,0,0),(0,1,0,0),(0,0,0,1)) and y=((0,1,0,0),(0,0,1,0),(1,0,0,0),(0,0,0,1))のように、ワンホットベクトルで表現されている。
各参加者の現在のマッチング相手の選好順位は、各参加者の選好順位のリストとy又はyとを、乗算及び加算を行うことで算出できる。例えば、mについて、選好順位のリストは(3,1,2,4)であり、マッチング相手はw((0,0,1,0)と表現される)である。したがって、wのmにおける選好順位は、3・0+1・0+2・1+4・0=2と計算することができる。
【0065】
図10は、本実施形態の計算例による各参加者の選好順位と、マッチング相手の選好順位とを比較した結果を示す図である。
各参加者のマッチング相手の選好順位と、その他の候補者(他方のグループの参加者)の選好順位とを比較した結果、マッチング相手よりも選好順位の値が小さい(より好みである)参加者に対して1が、そうでない参加者に対して0が割り当てられる。
【0066】
例えば、mのマッチング相手であるwの選好順位は2であるが、図9に示す通り、wの選好順位が1でwよりも小さい(上位)ので、wに対して1が割り当てられ、その他の参加者w,w,wには0が割り当てられる。
同様に、wのマッチング相手であるmの選好順位は2であるが、図9に示す通り、mの選好順位が1でmよりも小さい(上位)ので、mに対して1が割り当てられ、その他の参加者m,m,mには0が割り当てられる。
【0067】
図11は、本実施形態の計算例によるブロッキングペアの存在確認結果を示す図である。
ここでは、男女の参加者それぞれにおけるマッチング相手と他の候補者との選好順位の比較結果である図10の2つの表について、一方の各行及び他方の各列に対してAND演算を行った結果を示している。
ここで、値が1の組み合わせは、ブロッキングペアであることを表す。つまり、この表の要素が全て0であれば安定マッチングであり、そうでなければ安定マッチングではないと判定される。
この例では、mとwとの組み合わせのみがブロッキングペアとして検出されている。
【0068】
本実施形態によれば、検知サーバ1は、条件分岐を含む安定性判定アルゴリズムを、条件分岐を含まない基本的な演算(ADD、MULT、COMP、ADD、OR、NOT)のみで実現し、かつ、完全準同型暗号を用いて実装した。
したがって、検知サーバ1は、たとえマッチングの処理アルゴリズムが非公開の場合であっても、マッチング結果が安定性を満たしているか否かを、参加者のプライベートな入力を公開することなく判定し、参加者に通知できる。
【0069】
[第2実施形態]
本発明の第2実施形態について説明する。
第1実施形態では、安定マッチングを提供する際に方針違反があった場合に、自身の好みを他の参加者に公開することなくそれを判定する手法を示した。この手法では、完全準同型暗号による具体的な判定アルゴリズムを示している。
【0070】
ここで、完全準同型暗号は、格子暗号を用いることが一般的である。例えば、非特許文献2のBGVは格子暗号に基づいている。格子暗号では、乗算を行う場合にノイズの増加が問題となり、ノイズ量が一定以上になると、正しく復号することができなくなる。BGVは、Leveled準同型暗号と呼ばれるカテゴリの準同型暗号で、事前に設定するパラメータによって、一つの暗号文に対し乗算が可能な回数を設定することができる。乗算が可能な回数を増やすと、一般に暗号文は大きくなり、処理時間も増加する。
BGVでの実装を提供するライブラリの一つであるHELibでは、暗号化したまま様々な基本演算を行う関数が提供されている。基本演算の一つにビット列のOR演算があるが、この演算は乗算と同様にノイズが増加する。第1実施形態では、マッチングに参加する人数に依存して、一つの暗号文に対しOR演算の回数が増加するため、扱う人数が多くなると計算が非効率となる課題があった。
【0071】
そこで、本実施形態では、第1実施形態のOR演算を、ノイズが増加しないADD演算に置き換えることで、マッチングに参加する人数が増加しても一つの暗号文に対しノイズが増加する演算の回数が変化しない手法を示す。
【0072】
本実施形態の検知システム100では、検知サーバ1において実行される安定性判定アルゴリズムが第1実施形態と異なり、検証結果の値も異なるため、検証結果を受信した各参加者の端末3における処理も変更される。
【0073】
具体的には、検証結果として、ブロッキングペアの数の暗号文が端末3に通知される。
すなわち、検知システム100が実施する検知方法を示すシーケンス(図3)のステップS7において、各参加者iの端末3は、r←Dec(r’,sk)を実行し、r=0であればマッチング結果yを受諾し、そうでなければ棄却する。
【0074】
図12は、本実施形態における完全準同型暗号で実行可能な安定性判定アルゴリズムを示す図である。
1行目~18行目までは、第1実施形態のアルゴリズム(図6)と同一であり、判定部12は、2つの行列(e,e)について、互いの行と列とを要素ごとに論理積を求めることで、この組み合わせがブロッキングペアか(ti,j=1)否か(ti,j=0)を確かめる(18行目)。
【0075】
そして、判定部12は、ti,jを順次加算することで総和を計算し、ブロッキングペアの数rを求める(19行目)。
最後に、判定部12は、ブロッキングペアの数rを、マッチング結果が安定か(r=0)否か(r>0)の検証結果として出力する。
【0076】
この安定性判定アルゴリズムは、条件分岐を用いることなく、前述の関数ADD、MULT、COMP、ADDのみを用いて構成されており、第1実施形態で必要であったOR演算が不要となっている。
【0077】
本実施形態によれば、検知サーバ1は、条件分岐を含む安定性判定アルゴリズムを、条件分岐を含まない基本的な演算(ADD、MULT、COMP、ADD)のみで実現し、かつ、完全準同型暗号を用いて実装した。
したがって、検知サーバ1は、たとえマッチングの処理アルゴリズムが非公開の場合であっても、マッチング結果が安定性を満たしているか否かを、参加者のプライベートな入力を公開することなく判定し、参加者に通知できる。さらに、検知サーバ1は、第1実施形態で使用していたOR演算を用いることなく安定性判定アルゴリズムを実現した。これにより、完全準同型暗号におけるノイズの増加が抑制され、処理が効率化される。
【0078】
なお、前述の実施形態によれば、例えばインターネット上で提供されるサービスの正当性を第三者により検証できることから、国連が主導する持続可能な開発目標(SDGs)の目標9「レジリエントなインフラを整備し、持続可能な産業化を推進するとともに、イノベーションの拡大を図る」に貢献することが可能となる。
【0079】
以上、本発明の実施形態について説明したが、本発明は前述した実施形態に限るものではない。また、前述した実施形態に記載された効果は、本発明から生じる最も好適な効果を列挙したに過ぎず、本発明による効果は、実施形態に記載されたものに限定されるものではない。
【0080】
検知サーバ1による方針違反検知方法は、ソフトウェアにより実現される。ソフトウェアによって実現される場合には、このソフトウェアを構成するプログラムが、情報処理装置(コンピュータ)にインストールされる。また、これらのプログラムは、CD-ROMのようなリムーバブルメディアに記録されてユーザに配布されてもよいし、ネットワークを介してユーザのコンピュータにダウンロードされることにより配布されてもよい。さらに、これらのプログラムは、ダウンロードされることなくネットワークを介したWebサービスとしてユーザのコンピュータに提供されてもよい。
【符号の説明】
【0081】
1 検知サーバ(方針違反検知装置)
2 実行サーバ
3、3A 端末
10 制御部
11 受信部
12 判定部
13 送信部
20 記憶部
100 検知システム
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12