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

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

▶ 株式会社TCSIの特許一覧

特開2024-89212秘匿計算システム、情報処理装置、コンピュータープログラムおよびアクセス権管理方法
<>
  • 特開-秘匿計算システム、情報処理装置、コンピュータープログラムおよびアクセス権管理方法 図1
  • 特開-秘匿計算システム、情報処理装置、コンピュータープログラムおよびアクセス権管理方法 図2
  • 特開-秘匿計算システム、情報処理装置、コンピュータープログラムおよびアクセス権管理方法 図3
  • 特開-秘匿計算システム、情報処理装置、コンピュータープログラムおよびアクセス権管理方法 図4
  • 特開-秘匿計算システム、情報処理装置、コンピュータープログラムおよびアクセス権管理方法 図5
  • 特開-秘匿計算システム、情報処理装置、コンピュータープログラムおよびアクセス権管理方法 図6
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024089212
(43)【公開日】2024-07-03
(54)【発明の名称】秘匿計算システム、情報処理装置、コンピュータープログラムおよびアクセス権管理方法
(51)【国際特許分類】
   G06F 21/33 20130101AFI20240626BHJP
【FI】
G06F21/33 350
【審査請求】有
【請求項の数】5
【出願形態】OL
(21)【出願番号】P 2022204431
(22)【出願日】2022-12-21
(11)【特許番号】
(45)【特許公報発行日】2023-08-15
(71)【出願人】
【識別番号】515120589
【氏名又は名称】株式会社ZenmuTech
(74)【代理人】
【識別番号】100123984
【弁理士】
【氏名又は名称】須藤 晃伸
(74)【代理人】
【識別番号】100102314
【弁理士】
【氏名又は名称】須藤 阿佐子
(74)【代理人】
【識別番号】100159178
【弁理士】
【氏名又は名称】榛葉 貴宏
(72)【発明者】
【氏名】石田 祐介
(72)【発明者】
【氏名】國井 淳
(72)【発明者】
【氏名】桶谷 純一
(72)【発明者】
【氏名】小川 知之
(57)【要約】      (修正有)
【課題】管理者による管理が容易かつ各秘匿計算サーバーにおける秘匿化が可能なアクセス権管理ができる秘匿計算システム、情報処理装置、コンピュータープログラム及びアクセス権管理方法を提供する。
【解決手段】複数の秘匿計算サーバー30,40及び情報処理装置(クライアント)10がインターネット2を介して、互いに通信が可能秘匿計算システム1において、複数の秘匿計算サーバーは、同一ユーザについて異なるトークンをそれぞれ記憶するとともに、共通するペアリング情報をトークンと関連付けてそれぞれ記憶する。情報処理装置は、各秘匿計算サーバーからトークンとそれに関連付けられたペアリング情報をそれぞれ取得する。その後、各秘匿計算サーバーから取得したペアリング情報を比較し、ペアリング情報が共通するトークンであるかを検証することで、同一ユーザのトークンの組み合わせを特定する。
【選択図】図1
【特許請求の範囲】
【請求項1】
秘匿計算を実行する複数の秘匿計算サーバーと、前記複数の秘匿計算サーバーと通信可能な情報処理装置と、を備える、秘匿計算システムであって、
前記情報処理装置は、前記複数の秘匿計算サーバーに秘匿計算を実行させるためのユーザの指示を、前記複数の秘匿計算サーバーにアクセスするためのトークンとともに、前記複数の秘匿計算サーバーに送信し、
前記複数の秘匿計算サーバーは、前記トークンごとにアクセス権情報を記憶しており、前記情報処理装置から受信した前記ユーザのトークンに基づいて、当該ユーザのアクセス制御を実行し、
前記複数の秘匿計算サーバーは、同一ユーザについて、異なる前記トークンをそれぞれ記憶するとともに、共通するペアリング情報を前記トークンと関連付けてそれぞれ記憶しており、
前記情報処理装置は、同一ユーザのトークンにそれぞれ関連付けられた各アクセス権情報を前記複数の秘匿計算サーバーで同期して管理するために、各秘匿計算サーバーから前記トークンとそれに関連付けられた前記ペアリング情報をそれぞれ取得し、各秘匿計算サーバーから取得した前記ペアリング情報を比較して、前記ペアリング情報が共通する前記トークンであるか検証することで、同一ユーザの前記トークンの組み合わせを特定する、秘匿計算システム。
【請求項2】
前記複数の秘匿計算サーバーは、第1秘匿計算サーバーおよび第2秘匿計算サーバーを含み、
前記情報処理装置は、
特定した前記同一ユーザのトークンの組み合わせのうち、前記第1秘匿計算サーバーから取得した前記トークンに基づいて、当該トークンに対応するアクセス権情報を設定するための指示を作成し、当該指示を前記第1秘匿計算サーバーに送信するとともに、
特定した前記同一ユーザのトークンの組み合わせのうち、前記第2秘匿計算サーバーから取得した前記トークンに基づいて、当該トークンに対応するアクセス権情報を設定するための指示を作成し、当該指示を、前記第2秘匿計算サーバーに送信し、
前記第1秘匿計算サーバーは、前記情報処理装置から受信した前記指示に基づいて、前記第1秘匿計算サーバーが記憶するアクセス権情報を設定し、
前記第2秘匿計算サーバーは、前記情報処理装置から受信した前記指示に基づいて、前記第2秘匿計算サーバーが記憶するアクセス権情報を設定する、請求項1に記載の秘匿計算システム。
【請求項3】
秘匿計算を実行する複数の秘匿計算サーバーと通信可能な情報処理装置であって、
前記複数の秘匿計算サーバーから、前記複数の秘匿計算サーバーにそれぞれアクセスするための複数のトークンと、前記複数のトークンにそれぞれ関連付けられた複数のペアリング情報とを取得する取得手段と、
前記トークンは、同一ユーザであっても、前記複数の秘匿計算サーバーごとに異なる一方、前記ペアリング情報は、同一ユーザで、前記複数の秘匿計算サーバー間で共通しており、各秘匿計算サーバーからそれぞれ取得した前記ペアリング情報を比較することで、同一ユーザの前記トークンの組み合わせを特定する特定手段と、
特定した前記同一ユーザのトークンの組み合わせのうち、各秘匿計算サーバーから取得したトークンを、当該トークンに対応するアクセス権を設定するための指示とともに、当該トークンを取得した前記秘匿計算サーバーにそれぞれ送信することで、前記複数の秘匿計算サーバーのそれぞれに前記同一ユーザのトークンに対応するアクセス権を設定させる、送信手段と、を有する情報処理装置。
【請求項4】
秘匿計算を実行可能な複数の秘匿計算サーバーと通信可能なコンピューターに、
前記複数の秘匿計算サーバーから、前記複数の秘匿計算サーバーにそれぞれアクセスするための複数のトークンと、前記複数のトークンにそれぞれ関連付けられた複数のペアリング情報とを取得する取得機能と、
前記トークンは、同一ユーザであっても、前記複数の秘匿計算サーバーごとに異なる一方、前記ペアリング情報は、同一ユーザで、前記複数の秘匿計算サーバー間で共通しており、各秘匿計算サーバーからそれぞれ取得した前記ペアリング情報を比較することで、前記同一ユーザのトークンの組み合わせを特定する特定機能と、
特定した前記同一ユーザのトークンの組み合わせのうち、各秘匿計算サーバーから取得したトークンを、当該トークンに対応するアクセス権を設定するための指示とともに、当該トークンを取得した前記秘匿計算サーバーにそれぞれ送信することで、前記複数の秘匿計算サーバーのそれぞれに前記同一ユーザのトークンに対応するアクセス権を設定させる、送信機能と、を実行させるコンピュータープログラム。
【請求項5】
秘匿計算を実行する複数の秘匿計算サーバーと、前記複数の秘匿計算サーバーと通信可能な情報処理装置と、を備え、
前記情報処理装置が、前記複数の秘匿計算サーバーに秘匿計算を実行させるためのユーザの指示を、前記複数の秘匿計算サーバーにアクセスするためのトークンとともに、前記複数の秘匿計算サーバーに送信し、
前記複数の秘匿計算サーバーは、ユーザごとにアクセス権情報を前記トークンと関連付けて記憶しており、前記情報処理装置から受信した前記ユーザに対応するトークンに基づいて、当該ユーザのアクセス制御を実行する秘匿計算システムにおいて、ユーザのアクセス権を管理するためのアクセス権管理方法であって、
前記複数の秘匿計算サーバーは、同一ユーザについて、異なる前記トークンをそれぞれ記憶するとともに、共通するペアリング情報を前記トークンと関連付けてそれぞれ記憶しており、
前記情報処理装置は、
各秘匿計算サーバーから前記トークンとそれに関連付けられた前記ペアリング情報とをそれぞれ取得し、各秘匿計算サーバーから取得した前記ペアリング情報を比較して、前記ペアリング情報が共通する前記同一ユーザのトークンの組み合わせを特定し、
特定した前記同一ユーザのトークンの組み合わせのうち、各秘匿計算サーバーから取得したトークンを、当該トークンに対応するアクセス権を設定するための指示とともに、当該トークンを取得した前記秘匿計算サーバーにそれぞれ送信することで、前記複数の秘匿計算サーバーのそれぞれに前記同一ユーザのトークンに対応するアクセス権を設定させる、アクセス権管理方法。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、秘匿計算を実行する秘匿計算システム、当該秘匿計算システムを構成する情報処理装置、コンピュータープログラムおよびアクセス権管理方法に関する。
【背景技術】
【0002】
近年、情報漏洩に対する意識の高まりから、データを暗号化したまま計算する秘匿計算(秘密計算とも言われる。以下同じ。)技術が注目されている。秘匿計算の方法として、主に、暗号鍵を用いる完全準同形暗号式の方法と、データをシェアと呼ばれる暗号化された情報に分割し、分割したシェアを複数の秘匿計算サーバーに分散して格納しておき、各秘匿計算サーバーにおいてそれぞれデータ(シェア)を暗号化したまま計算する、秘密分散式の方法が知られている(たとえば、特許文献1)。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】国際公開第2012/046692号
【発明の概要】
【発明が解決しようとする課題】
【0004】
近年、秘密分散式の秘匿計算システムにおいても、セキュリティをより高めるため、ユーザごとにアクセス権を設定し、ユーザがアクセスできるデータを制限することや、ユーザが指示できる処理を制限することが求められている。ユーザのアクセス制御を行う方法として、たとえば、ユーザがユーザIDとパスワードを入力することで、ユーザを認証し、当該ユーザが可能なアクセスを許可するアクセス制御を行うことが行われている。
【0005】
秘匿計算システムにおいては、複数の秘匿計算サーバーが協働して秘匿計算を行うため、クライアントを利用するユーザごと、秘匿計算サーバーごとに、ユーザの認証が必要となる。しかしながら、協働する他の秘匿計算サーバーと同じユーザIDやパスワードを共有してしまうと、各サーバーが保有するデータへ相互にアクセスできてしまうことになる。秘密分散方式の秘匿計算システムにおいては、秘密分散による分散保管により秘匿性が保たれているため、互いのデータにアクセスできてしまうとその秘匿性を担保することができない。そのため、データの秘匿性を担保するため、複数の秘匿計算サーバーにおいてユーザIDやパスワードなどの情報を共有することが禁止される。
しかしながら、この場合、アクセス権を管理する管理者は、ユーザごと、サーバーごとに、ユーザIDなどの認証情報を管理する必要があり、協働する秘匿計算サーバーの数やユーザの数が多くなるほど、ユーザのアクセス権を管理する管理者の負担は大きくなり、管理が煩雑となり、間違いも生じやすくなるという問題があった。特に、管理者がユーザのアクセス権を設定(追加、更新、削除)する場合に、複数の秘匿計算サーバーにおいて同期してアクセス権が設定される仕組みが求められていた。
【0006】
本発明は、複数の秘匿計算サーバーが協働して秘匿計算を行う秘匿計算システムにおいて、管理者による管理が容易で、かつ、各秘匿計算サーバーにおける秘匿が可能な、アクセス権管理を行うことができる秘匿計算システム、情報処理装置、コンピュータープログラムおよびアクセス権管理方法を提供することを目的とする。
【課題を解決するための手段】
【0007】
本発明に係る秘匿計算システムは、秘匿計算を実行する複数の秘匿計算サーバーと、前記複数の秘匿計算サーバーと通信可能な情報処理装置と、を備え、前記情報処理装置は、前記複数の秘匿計算サーバーに秘匿計算を実行させるためのユーザの指示を、前記複数の秘匿計算サーバーにアクセスするためのトークンとともに、前記複数の秘匿計算サーバーに送信し、前記複数の秘匿計算サーバーは、前記トークンごとにアクセス権情報を記憶しており、前記情報処理装置から受信した前記ユーザのトークンに基づいて、当該ユーザのアクセス制御を実行し、前記複数の秘匿計算サーバーは、同一ユーザについて、異なる前記トークンをそれぞれ記憶するとともに、共通するペアリング情報を前記トークンと関連付けてそれぞれ記憶しており、前記情報処理装置は、同一ユーザのトークンにそれぞれ関連付けられた各アクセス権情報を前記複数の秘匿計算サーバーで同期して管理するために、各秘匿計算サーバーから前記トークンとそれに関連付けられた前記ペアリング情報をそれぞれ取得し、各秘匿計算サーバーから取得した前記ペアリング情報を比較して、前記ペアリング情報が共通する前記トークンであるか検証することで、同一ユーザの前記トークンの組み合わせを特定する。
上記秘匿計算システムにおいて、前記複数の秘匿計算サーバーは、第1秘匿計算サーバーおよび第2秘匿計算サーバーを含み、前記情報処理装置は、特定した前記同一ユーザのトークンの組み合わせのうち、前記第1秘匿計算サーバーから取得した前記トークンに基づいて、当該トークンに対応するアクセス権情報を設定するための指示を作成し、当該指示を前記第1秘匿計算サーバーに送信するとともに、特定した前記同一ユーザのトークンの組み合わせのうち、前記第2秘匿計算サーバーから取得した前記トークンに基づいて、当該トークンに対応するアクセス権情報を設定するための指示を作成し、当該指示を、前記第2秘匿計算サーバーに送信し、前記第1秘匿計算サーバーは、前記情報処理装置から受信した前記指示に基づいて、前記第1秘匿計算サーバーが記憶するアクセス権情報を設定し、前記第2秘匿計算サーバーは、前記情報処理装置から受信した前記指示に基づいて、前記第2秘匿計算サーバーが記憶するアクセス権情報を設定する構成とすることができる。
本発明に係る情報処理装置は、秘匿計算を実行する複数の秘匿計算サーバーと通信可能な情報処理装置であって、前記複数の秘匿計算サーバーから、前記複数の秘匿計算サーバーにそれぞれアクセスするための複数のトークンと、前記複数のトークンにそれぞれ関連付けられた複数のペアリング情報とを取得する取得手段と、前記トークンは、同一ユーザであっても、前記複数の秘匿計算サーバーごとに異なる一方、前記ペアリング情報は、同一ユーザで、前記複数の秘匿計算サーバー間で共通しており、各秘匿計算サーバーからそれぞれ取得した前記ペアリング情報を比較することで、同一ユーザの前記トークンの組み合わせを特定する特定手段と、特定した前記同一ユーザのトークンの組み合わせのうち、各秘匿計算サーバーから取得したトークンを、当該トークンに対応するアクセス権を設定するための指示とともに、当該トークンを取得した前記秘匿計算サーバーにそれぞれ送信することで、前記複数の秘匿計算サーバーのそれぞれに前記同一ユーザのトークンに対応するアクセス権を設定させる、送信手段と、を有する。
本発明に係るコンピュータープログラムは、秘匿計算を実行可能な複数の秘匿計算サーバーと通信可能なコンピューターに、前記複数の秘匿計算サーバーから、前記複数の秘匿計算サーバーにそれぞれアクセスするための複数のトークンと、前記複数のトークンにそれぞれ関連付けられた複数のペアリング情報とを取得する取得機能と、前記トークンは、同一ユーザであっても、前記複数の秘匿計算サーバーごとに異なる一方、前記ペアリング情報は、同一ユーザで、前記複数の秘匿計算サーバー間で共通しており、各秘匿計算サーバーからそれぞれ取得した前記ペアリング情報を比較することで、前記同一ユーザのトークンの組み合わせを特定する特定機能と、特定した前記同一ユーザのトークンの組み合わせのうち、各秘匿計算サーバーから取得したトークンを、当該トークンに対応するアクセス権を設定するための指示とともに、当該トークンを取得した前記秘匿計算サーバーにそれぞれ送信することで、前記複数の秘匿計算サーバーのそれぞれに前記同一ユーザのトークンに対応するアクセス権を設定させる、送信機能と、を実行させる。
本発明に係るアクセス権管理方法は、秘匿計算を実行する複数の秘匿計算サーバーと、前記複数の秘匿計算サーバーと通信可能な情報処理装置と、を備え、前記情報処理装置が、前記複数の秘匿計算サーバーに秘匿計算を実行させるためのユーザの指示を、前記複数の秘匿計算サーバーにアクセスするためのトークンとともに、前記複数の秘匿計算サーバーに送信し、前記複数の秘匿計算サーバーは、ユーザごとにアクセス権情報を前記トークンと関連付けて記憶しており、前記情報処理装置から受信した前記ユーザに対応するトークンに基づいて、当該ユーザのアクセス制御を実行する秘匿計算システムにおいて、ユーザのアクセス権を管理するためのアクセス権管理方法であって、前記複数の秘匿計算サーバーは、同一のユーザについて、異なる前記トークンをそれぞれ記憶するとともに、共通するペアリング情報を前記トークンと関連付けてそれぞれ記憶しており、前記情報処理装置は、各秘匿計算サーバーから前記トークンとそれに関連付けられた前記ペアリング情報とをそれぞれ取得し、各秘匿計算サーバーから取得した前記ペアリング情報を比較して、前記ペアリング情報が共通する前記同一ユーザのトークンの組み合わせを特定し、特定した前記同一ユーザのトークンの組み合わせのうち、各秘匿計算サーバーから取得したトークンを、当該トークンに対応するアクセス権を設定するための指示とともに、当該トークンを取得した前記秘匿計算サーバーにそれぞれ送信することで、前記複数の秘匿計算サーバーのそれぞれに前記同一ユーザのトークンに対応するアクセス権を設定させる。
【発明の効果】
【0008】
本発明によれば、複数の秘匿計算サーバーが協働して秘匿計算を行う秘匿計算システムにおいて、管理者による管理が容易で、かつ、各秘匿計算サーバーにおける秘匿が可能なアクセス権管理を行うことができる。
【図面の簡単な説明】
【0009】
図1】本実施形態に係る秘匿計算システムの構成図である。
図2】トークン管理テーブルの一例を示す図である。
図3】アクセス権管理テーブルの一例を示す図である。
図4】同一のユーザに対応するトークンの組み合わせを特定する方法を説明するための図である。
図5】アクセス権管理処理を示すフローチャートである。
図6】アクセス制御処理を示すフローチャートである。
【発明を実施するための形態】
【0010】
本発明に係る秘匿計算システムの実施形態を、図を参照して説明する。図1は、本実施形態に係る秘匿計算システム1を示す構成図である。図1に示すように、本実施形態に係る秘匿計算システム1は、クライアント10と、アプリケーションサーバー20と、第1秘匿計算サーバー30と、第2秘匿計算サーバー40と、から構成される。クライアント10と、アプリケーションサーバー20と、第1秘匿計算サーバー30と、第2秘匿計算サーバー40とは、インターネット2を介して、互いに通信が可能となっている。なお、図1に示す図では、クライアント10を1つのみ図示するが、クライアント10を複数備える構成とすることができる。また、図1に示す例では、秘匿計算サーバー30,40を2台用いて秘匿計算を行う2者間秘匿計算を実行する構成を例示しているが、これに限定されず、たとえば3台以上の秘匿計算サーバーを用いて秘匿計算を行う構成とすることができる。以下に、秘匿計算システム1の各構成について説明する。
【0011】
第1秘匿計算サーバー30および第2秘匿計算サーバー40は、インターネット上に配置されるサーバーであり、上述した秘匿計算を実行する機能を有する。さらに、第1秘匿計算サーバー30および第2秘匿計算サーバー40は、各ユーザのアクセス権を管理するためのアクセス権管理機能と、管理しているユーザのアクセス権に基づいて、当該ユーザによる秘匿計算の実行の可否を制御するアクセス制御機能を有している。
【0012】
まず、第1秘匿計算サーバー30および第2秘匿計算サーバー40の秘匿計算機能について説明する。本実施形態では、第1秘匿計算サーバー30および第2秘匿計算サーバー40のデータベースに、秘匿計算の計算対象となるデータが秘密分散して記憶されている。秘密分散(法)とは、平文のデータを、単独では意味をなさないシェアと言われる断片に分割し、複数の秘匿計算サーバーに分散させる暗号化技術である。秘密分散(法)によれば、情報は複数の断片へと分散され、所定数以上の断片が集まらない限り元の情報は復元不能とされる。なお、本実施形態では、秘匿計算の対象データとして、テーブル構造データのシェアが、第1秘匿計算サーバー30および第2秘匿計算サーバー40のデータベースにそれぞれ分散して記憶されている。
【0013】
秘匿計算機能は、自身が記憶するテーブル構造データのシェアに対して秘匿計算を行う。ここで、秘匿計算とは、秘匿計算サーバー30,40のデータベースにそれぞれ記憶するシェアを平文のデータに戻すことなく、計算対象のシェアに基づいて計算結果のシェアを算出することである。シェアは、秘密分散された特定の数のシェアが揃わないと平文データを復号することができず、仮に、第1秘匿計算サーバー30または第2秘匿計算サーバー40の一方のみでシェアが漏洩した場合でも、もう一方のシェアが漏洩していない場合には、平文データを復号することができず、秘密状態を担保することができる。本実施形態において、第1秘匿計算サーバー30と第2秘匿計算サーバー40とは、インターネット2を介して互いに通信が可能であり、秘匿計算サーバー30,40が秘密分散されたシェアを復号することなくデータを秘匿したまま、秘匿計算サーバー30,40で行った計算結果を互いにやり取りしながら秘匿計算を行うことで、所望の計算結果を得るマルチパーティ計算(Multi-Party Computation、MPC)を行う。
【0014】
そして、秘匿計算機能は、秘匿計算を実行した後、秘匿計算の結果のシェアを、クライアント10に送信する。クライアント10は、第1秘匿計算サーバー30および第2秘匿計算サーバー40から受信した計算結果のシェアを復号し、ユーザに表示する。これにより、ユーザは、クライアント10を介して、平文の計算結果を把握することが可能となる。
【0015】
次に、第1秘匿計算サーバー30および第2秘匿計算サーバー40のアクセス権管理機能について説明する。具体的には、アクセス権管理機能は、ユーザが第1秘匿計算サーバー30および第2秘匿計算サーバー40にアクセスするためのトークンを作成しユーザに配布する(クライアント10に送付する)トークン作成処理と、作成したトークンに対応してユーザのアクセス権を設定するアクセス権設定処理とを実行する。
【0016】
より具体的には、アクセス権管理機能は、ユーザのトークンを新規作成する旨のコマンドをクライアント10から受領すると、当該ユーザのトークンを作成するためのトークン作成処理を実行する。なお、本実施形態において、アクセス権管理機能は、同一ユーザであっても、第1秘匿計算サーバー30と第2秘匿計算サーバー40とで異なる値で、トークンを作成する。第1秘匿計算サーバー30および第2秘匿計算サーバー40で作成されたトークンは、図2に示すように、第1秘匿計算サーバー30および第2秘匿計算サーバー40のデータベースにそれぞれ記憶される。なお、図2は、第1秘匿計算サーバー30および第2秘匿計算サーバー40のデータベースに記憶されるトークン管理テーブルの一例を示す図である。新規に作成されるトークンは、今までに作成したトークンと重複しない値で作成され、文字列データ、バイナリデータ、数値データなど、データ形式は特に限定されない。本実施形態では、セキュリティの観点から、ユーザIDなどとは異なり、トークンがランダムなデータ(文字列データ)で作成される。トークンの作成方法は、特に限定されないが、例えば、サーバーのホスト名と生成日時とを結合したものをSHA-256でハッシュ化し、Base64によるテキストエンコードしたものであれば、トークンの空間は2256と十分広く、人間が扱いやすい文字列データとしてトークン情報を生成できる。この場合、トークンのデータ長(文字列長)は、たとえば44バイト(文字)とすることができる。
【0017】
また、アクセス権管理機能は、トークンの作成とともに、同一のユーザのトークンを特定するためのペアリング情報も作成する。ペアリング情報は、第1秘匿計算サーバー30および第2秘匿計算サーバー40にそれぞれ記憶されている同一ユーザのトークンの組み合わせを特定するためのデータであり、同一ユーザにおいては、第1秘匿計算サーバー30と第2秘匿計算サーバー40とで共通した値で作成される。第1秘匿計算サーバー30および第2秘匿計算サーバー40で作成されたトークンは、図2に示すように、各ユーザのトークンに関連付けて、第1秘匿計算サーバー30および第2秘匿計算サーバー40のデータベースのトークン管理テーブルにそれぞれ記憶される。なお、ペアリング情報の作成方法は、特に限定されないが、たとえば、クライアント10が、第1秘匿計算サーバー30および第2秘匿計算サーバー40から各々で重複しないランダムな値をそれぞれ受信し、受信した値を合成して、第1秘匿計算サーバー30および第2秘匿計算サーバー40に送信することで、第1秘匿計算サーバー30および第2秘匿計算サーバー40の両方において、ペアリング情報を共有することが可能となる。たとえば、図2に示す例において、第1秘匿計算サーバー30および第2秘匿計算サーバー40で記憶されるペアリング情報「oas|bjh」は、クライアント10が、第1秘匿計算サーバー30から取得した「oas」の値と、第2秘匿計算サーバー40から取得した「bjh」の値を合成して得ることができる。そして、本実施形態において、アクセス権管理機能は、ユーザごとに、第1秘匿計算サーバー30または第2秘匿計算サーバー40にアクセスするためのトークンと、同一のユーザに対応するトークンの組み合わせを特定するためのペアリング情報とを関連付けて、トークン管理テーブルに記憶する。
【0018】
さらに、図2に示すように、第1秘匿計算サーバー30および第2秘匿計算サーバー40の一方(図2に示す例では第1秘匿計算サーバー30)のトークン管理テーブルには、ラベル情報を設ける構成とすることができる。ラベル情報は、たとえば文字列情報であり、管理者が任意に使用する情報とすることができ、図2に示す例では、ユーザの名前をラベル情報として登録している。この場合、トークン管理テーブルをダウンロードした管理者は、それぞれのトークンが、どのユーザのトークンかを認識することが可能となる。なお、ラベル情報は、ユーザの名前に限定されず、ユーザの所属、職務、職位などを適宜登録することもできる。
【0019】
また、アクセス権管理機能は、クライアント10から送信される管理者の指示に基づいて、当該ユーザのアクセス権を示すアクセス権情報を設定するアクセス権設定処理を実行する。本実施形態では、図3に示すように、第1秘匿計算サーバー30および第2秘匿計算サーバー40のデータベースに、アクセス権管理テーブルを有しており、アクセス権管理機能は、アクセス権管理テーブルの記憶されたアクセス権情報を設定(追加、変更または削除)することで、ユーザのアクセス権を管理することができる。たとえば、アクセス権管理機能は、ユーザごとに、所定のテーブル構造データにアクセスする権限、および、所定のテーブル構造データに対して秘匿計算を実行する権限をアクセス権情報として設定することができる。また、本実施形態において、アクセス権管理機能は、ユーザごと、テーブル構造データごと、秘匿計算の種類ごとに、アクセス権を設定することもできる。これにより、後述するアクセス制御機能により、ユーザがアクセス権を有しないテーブル構造データに対しては、当該ユーザが秘匿計算を実行することが禁止され、また、ユーザがテーブル構造データにアクセスする権限を有しているが、当該テーブル構造データに対して実行する権限を有しない秘匿計算についても、当該ユーザが秘匿計算を実行することが禁止される。
【0020】
次に、第1秘匿計算サーバー30および第2秘匿計算サーバー40のアクセス制御機能について説明する。アクセス制御機能は、テーブル構造データごと、秘匿計算の種類ごとに、各ユーザが秘匿計算を実行する権限があるか否かを判断し、当該判断結果に基づいて、秘匿計算の実行の可否を制御するアクセス制御機能を有している。特に、本実施形態に係る秘匿計算システム1では、トークンを用いて、ユーザのアクセス権を制御することを特徴としている。ここで、トークンとは、各ユーザが第1秘匿計算サーバー30および第2秘匿計算サーバー40にアクセスするためのデータであり、ユーザごと、秘匿計算サーバー30,40ごとに設定される。本実施形態では、トークンは管理者からユーザに配布され、ユーザは配布されたトークンをクライアント10に入力することで、クライアント10を介して、秘匿計算サーバー30,40に秘匿計算を実行させることができる。また、本実施形態に係る秘匿計算システム1では、トークンにアクセス権情報が関連付けられており、トークンを用いてアクセス制御が実行される。具体的には、第1秘匿計算サーバー30および第2秘匿計算サーバー40に、トークンとアクセス権情報とが関連付けられたアクセス権管理テーブルが記憶されており、アクセス制御機能は、このアクセス権管理テーブルを参照することで、ユーザのトークンに基づいて、当該ユーザのアクセス制御を実行することが可能となっている。
【0021】
たとえば、アクセス制御機能は、図3に示すアクセス権管理テーブルを参照し、ユーザがアクセス権を有するテーブル構造データに対して、当該ユーザがアクセス権を有する権限の範囲でのみ、秘匿計算を実行させることが可能となる。たとえば、ユーザが、テーブル構造データt1に対するデータの変更のみのアクセス権を有する場合、このユーザは、テーブル構造データt1に対してデータを変更する秘密計算を実行させることができるが、たとえば、テーブル構造データt2に対するデータの変更は行えず、また、テーブル構造データt1に対するデータの追加や削除も行えない。なお、ユーザのアクセス権を管理する管理者は、クライアント10を介して、各ユーザに対するアクセス権の追加、変更または削除を行うことができる。
【0022】
次に、クライアント10について説明する。クライアント10は、たとえばパーソナルコンピューター、タブレットまたはスマートフォンなどの情報処理端末であり、秘匿計算の実行を指示するユーザや、各ユーザのアクセス権を管理する管理者により操作される端末である。本実施形態において、クライアント10は、ユーザや管理者がデータを入力するための入力部と、アプリケーションサーバー20から受信したプログラムを記憶する記憶部と、当該プログラムを実行する演算部と、秘匿計算サーバー30,40と通信するための通信部と、秘匿計算サーバー30,40が計算した秘匿計算の結果を出力する出力部と、を有している。なお、入力部は、特に限定されず、キーボード、タッチパネル、マウスなどが例示され、出力部も、特に限定されず、モニターやプリンターなどが例示される。
【0023】
クライアント10は、アプリケーションサーバー20からプログラムをダウンロードし、実行することで、管理者がユーザのアクセス権を管理するためのアクセス権管理指示機能と、ユーザが秘匿計算を秘匿計算サーバー30,40に実行させるための秘匿計算指示機能とを実行する。
【0024】
具体的に、クライアント10のアクセス権管理指示機能は、新規ユーザを登録する場合には、管理者の指示に基づいて、アクセス権が作成されていないユーザのトークンを新規に作成するためのコマンドを作成し、第1秘匿計算サーバー30および第2秘匿計算サーバー40に送信する。これにより、上述したように、第1秘匿計算サーバー30および第2秘匿計算サーバー40において、ユーザのトークンが新規に作成されるとともに、同一のユーザのトークンを特定するためのペアリング情報も作成される。
【0025】
また、アクセス権管理指示機能は、ユーザのアクセス権を設定するための指示(たとえばJSON形式データ)を、第1秘匿計算サーバー30および第2秘匿計算サーバー40に送信する。ここで、本実施形態では、同一のユーザであっても、第1秘匿計算サーバー30および第2秘匿計算サーバー40とでトークンの値が異なるため、同一ユーザのアクセス権を第1秘匿計算サーバー30および第2秘匿計算サーバー40で同期して設定するためには、同一ユーザのトークンの組み合わせを特定する必要がある。そのため、本実施形態において、アクセス権管理指示機能は、まず、第1秘匿計算サーバー30および第2秘匿計算サーバー40から、図2に示すトークン管理テーブルを取得する。次に、アクセス権管理指示機能は、第1秘匿計算サーバー30から取得したトークン管理テーブルのペアリング情報と、第2秘匿計算サーバー40から取得したトークン管理テーブルのペアリング情報とを比較し、図4に示すように、共通するペアリング情報に対応するトークンの組み合わせを特定する。たとえば、図4に示す例において、アクセス権管理機能は、共通のペアリング情報「oas|bjh」に対応する「BJH8o」で示すトークンと、「RrnhQ」で示すトークンとを、同一のユーザに対応するトークンの組み合わせとして特定することができる。
【0026】
そして、アクセス権管理指示機能は、特定したユーザのトークンの組み合わせに基づいて、第1秘匿計算サーバー30および第2秘匿計算サーバー40に記憶されているアクセス権管理テーブルを設定するための指示(たとえばJSON形式データ)を作成する。たとえば、図4に示す例において、Bさんのトークンに対応するアクセス権情報を設定する場合、アクセス権管理指示機能は、「BJH8o」で示すトークンと、「RrnhQ」で示すトークンとが同一のユーザ(Bさん)のトークンの組み合わせと特定する。そして、たとえばBさんのトークンに対応するアクセス権情報を「X」(たとえば、閲覧のみ可能)から「Y」(たとえば、閲覧および編集可能)に変更する場合には、アクセス権管理指示機能は、第1秘匿計算サーバー30のアクセス権管理テーブルにおいて、トークン「BJH8o」に関連付けたアクセス権情報を「X」から「Y」に変更するための指示と、第2秘匿計算サーバー40に記憶されているアクセス権管理テーブルにおいて、トークン「RrnhQ」と関連付けたアクセス権情報を「X」から「Y」に変更するための指示と、を作成する。そして、アクセス権管理指示機能は、作成した指示を、第1秘匿計算サーバー30および第2秘匿計算サーバー40にそれぞれ送信する。これにより、第1秘匿計算サーバー30および第2秘匿計算サーバー40において、受信した指示に基づくアクセス権管理処理が実行され、その結果、第1秘匿計算サーバー30のアクセス権管理テーブルにおいてトークン「BJH8o」に関連付けたアクセス権情報が「X」から「Y」へと変更され、第2秘匿計算サーバー40のアクセス権管理テーブルにおいてトークン「RrnhQ」に関連付けたアクセス権情報が「X」から「Y」に変更される。これにより、第1秘匿計算サーバー30および第2秘匿計算サーバー40の両方において、同一のユーザ(Bさん)のトークンに対応するアクセス権情報が同期して設定されることとなる。
【0027】
次に、クライアント10の秘匿計算指示機能について説明する。秘匿計算指示機能は、ユーザの指示に基づいて、第1秘匿計算サーバー30および第2秘匿計算サーバー40に記憶されているテーブル構造データのシェアに対して秘匿計算を実行させるための指示を、第1秘匿計算サーバー30および第2秘匿計算サーバー40に送信する。たとえば、本実施形態において、秘匿計算指示機能は、ユーザが第1秘匿計算サーバー30および第2秘匿計算サーバー40に記憶されているテーブル構造データのシェアから所定の抽出条件に合うデータのシェアを抽出したい場合、この抽出条件に合うデータを抽出するためのSQLを作成する。そして、秘匿計算指示機能は、作成したSQL文のクエリーを第1秘匿計算サーバー30および第2秘匿計算サーバー40にそれぞれ送信する。これにより、第1秘匿計算サーバー30および第2秘匿計算サーバー40において、クライアント10から受信したSQL文に基づいて、テーブル構造データのシェアに対する秘匿計算が行われる。なお、上述したように、本実施形態では、秘匿計算指示機能により作成された指示であっても、第1秘匿計算サーバー30および第2秘匿計算サーバー40のアクセス制御機能により、実行不可と判断された処理は実行されないこととなる。
【0028】
また、本実施形態では、アプリケーションサーバー20は、秘匿計算を実行するためのプログラムや、ユーザのアクセス権を設定するためのプログラムを記憶しており、これらプログラムをクライアント10に提供可能となっている。たとえば、クライアント10は、秘匿計算の実行を指示するユーザの指示に基づいて、秘匿計算を実行するためのプログラムをアプリケーションサーバー20からダウンロードし、当該プログラムを実行することができる。同様に、クライアント10は、ユーザのアクセス権を管理する管理者の指示に基づいて、ユーザのアクセス権を設定するためのプログラムをアプリケーションサーバー20からダウンロードし、当該プログラムを実行することができる。
【0029】
次に、図5に基づいて、本実施形態に係る秘匿計算システム1のアクセス権管理処理について説明する。アクセス権管理処理は、管理者が、管理者用のトークンで、対象となるユーザのアクセス権を設定する処理である。なお、図5は、本実施形態に係るアクセス権管理処理を示すフローチャートである。なお、図5に示す例においては、アクセス権を設定するユーザのトークンを対象ユーザのトークンと称して説明する。
【0030】
まず、ステップS101では、クライアント10のアクセス権管理指示機能により、対象ユーザのアクセス権を新規に設定するか判断が行われる。たとえば、管理者が、入力画面において、対象ユーザのトークンを新規作成し、当該トークンに対応するアクセス権情報を新規設定することを指示した場合には、アクセス権管理指示機能は、対象ユーザのアクセス権を新規に設定すると判断することができる。対象ユーザのアクセス権を新規に設定する場合は、処理はステップS102に進み、一方、対象ユーザのアクセス権が既に設定されており、既に設定されているアクセス権を変更または削除する場合には、ステップS104に進む。
【0031】
ステップS102では、クライアント10のアクセス権管理指示機能により、対象ユーザのペアリング情報が生成される。たとえば、アクセス権管理指示機能は、第1秘匿計算サーバー30および第2秘匿計算サーバー40からランダムな値をそれぞれ受信し、受信した値を合成して、ペアリング情報を生成することができる。そして、ステップS103では、アクセス権管理指示機能により、第1秘匿計算サーバー30および第2秘匿計算サーバー40へトークンを作成するための指示が、ステップS102で生成したペアリング情報と共に送信される。
【0032】
また、ステップS104では、第1秘匿計算サーバー30および第2秘匿計算サーバー40のアクセス権管理機能により、対象ユーザのトークンを作成するためのトークン作成処理が行われ、作成された対象ユーザのトークンと、クライアント10から取得したペアリング情報とが、関連付けられて、図2に示すトークン管理テーブルに記憶される。なお、本実施形態では、同一のユーザについて、第1秘匿計算サーバー30および第2秘匿計算サーバー40で共通のペアリング情報が設定されるが、第1秘匿計算サーバー30および第2秘匿計算サーバー40のそれぞれで異なる値のトークンが設定される。すなわち、第1秘匿計算サーバー30および第2秘匿計算サーバー40において、アクセス権管理機能は、対象ユーザについて、共通のペアリング情報をクライアント10から取得するとともに、異なる値のトークンを第1秘匿計算サーバー30および第2秘匿計算サーバー40のそれぞれで作成する。
【0033】
ステップS105では、クライアント10のアクセス権管理指示機能により、トークン管理テーブルが、秘匿計算サーバー30,40から取得される。なお、ステップS101において、対象ユーザのアクセス権が既に登録されており、対象ユーザのアクセス権を新規に設定すると判断されなかった場合も、このステップS105に進み、トークン管理テーブルが、秘匿計算サーバー30,40から取得される。
【0034】
ステップS106では、アクセス権管理指示機能により、ステップS105で取得したトークン管理テーブルに基づいて、対象ユーザのトークンの組み合わせが特定される。本実施形態では、第1秘匿計算サーバー30および第2秘匿計算サーバー40が記憶するトークン管理テーブルは、図2および図4に示すように、対象トークンの組み合わせを特定するためのペアリング情報を有している。ここで、同一のユーザであっても、第1秘匿計算サーバー30と第2秘匿計算サーバー40とで、トークンは共通していないが、ペアリング情報は共通しているため、アクセス権管理機能は、第1秘匿計算サーバー30から受信したペアリング情報と、第2秘匿計算サーバー40から受信したペアリング情報とを比較することで、ペアリング情報が共通するトークンの組み合わせを、同一のユーザに対応するトークンとして特定することができる。また、本実施形態では、第1秘匿計算サーバー30から取得したトークン管理テーブルが有するラベル情報に基づいて、対象ユーザのトークンの組み合わせを特定することができる。
【0035】
次に、ステップS107では、クライアント10のアクセス権管理指示機能により、対象ユーザのトークンに対応するアクセス権情報を設定(追加、変更または削除)するための指示が作成される。具体的に、本実施形態では、管理者がクライアント10を操作することで、対象ユーザのトークンに対応するアクセス権情報を入力することができ、管理者によりアクセス権情報が入力されると、アクセス権管理指示機能は、入力されたアクセス権情報を設定するための指示(たとえばJSON形式データ)を作成することができる。
【0036】
ステップS108では、クライアント10のアクセス権管理指示機能により、ステップS107で作成されたアクセス権情報を設定するための指示が、ステップS106で特定した対象ユーザのトークンとともに、第1秘匿計算サーバー30および第2秘匿計算サーバー40に送信される。たとえば、図4に示す例において、アクセス権を設定する対象ユーザがBさんであり、当該対象ユーザのトークンが、第1秘匿計算サーバー30においては「BJH8o」で示すトークンで識別されており、第2秘匿計算サーバー40においては「RrnhQ」で示すトークンで識別されている場合であって、対象ユーザのトークンのアクセス権情報を「X」(たとえば、閲覧のみ可能)から「Y」(たとえば、閲覧および編集可能)に変更するものとする。この場合、アクセス権管理指示機能は、第1秘匿計算サーバー30に記憶されているアクセス権管理テーブルにおいて、トークン「BJH8o」に関連付けたアクセス権情報を「X」から「Y」に変更するための指示と、第2秘匿計算サーバー40に記憶されているアクセス権管理テーブルにおいて、トークン「RrnhQ」と関連付けたアクセス権情報を「X」から「Y」に変更するための指示とを作成し、第1秘匿計算サーバー30および第2秘匿計算サーバー40にそれぞれ送信する。
【0037】
ステップS109では、第1秘匿計算サーバー30および第2秘匿計算サーバー40のアクセス権管理機能により、ステップS108で受信したアクセス権情報を設定するための指示に基づいて、対象ユーザのトークンに対応するアクセス権情報の設定が行われる。たとえば、対象ユーザがBさんである場合、第1秘匿計算サーバー30は、対象ユーザのトークン「BJH8o」に関連付けたアクセス権情報を「X」から「Y」に変更するための指示を受信した場合に、アクセス権管理テーブルにおいて、トークン「BJH8o」に関連付けたアクセス権情報を「X」から「Y」に変更する。同様に、第2秘匿計算サーバー40は、対象ユーザのトークン「RrnhQ」に関連付けたアクセス権情報を「X」から「Y」に変更するための指示を受信した場合には、アクセス権管理テーブルにおいて、対象ユーザのトークン「RrnhQ」に関連付けたアクセス権情報を「X」から「Y」に変更する。これにより、同一の対象ユーザのアクセス権が、第1秘匿計算サーバー30および第2秘匿計算サーバー40で同じ内容に同期して変更されることとなる。
【0038】
次に、図6に基づいて、本実施形態に係る秘匿計算システム1のアクセス制御処理について説明する。アクセス制御処理は、ユーザが、第1秘匿計算サーバー30および第2秘匿計算サーバー40に記憶されているテーブル構造データのシェアに対する秘匿計算の実行を指示した場合に、当該ユーザが当該テーブル構造データに対して当該秘匿計算を実行する権限を有しているかを判断し、テーブル構造データに対する秘匿計算の実行の可否を制御する処理である。なお、図6は、本実施形態に係るアクセス制御処理を示すフローチャートである。また、図6に示す例においても、秘匿計算を指示するユーザを対象ユーザと称して説明する。
【0039】
ステップS201では、クライアント10の秘匿計算指示機能により、対象ユーザのトークンが取得される。たとえば、クライアント10は、秘匿計算を指示するための画面を表示する前に、対象ユーザのトークンを入力するための画面を表示し、対象ユーザにトークンを入力させる。これにより、クライアント10の秘匿計算機能は、対象ユーザのトークンを取得することができる。また、クライアント10は、対象ユーザのトークンに加えて、第1秘匿計算サーバー30および第2秘匿計算サーバー40のURLを、対象ユーザに入力させる構成とすることができる。これにより、秘匿計算指示機能は、対象ユーザが指定する第1秘匿計算サーバー30および第2秘匿計算サーバー40に、対象ユーザのトークンを送信することが可能となる。
【0040】
ステップS202では、クライアント10の秘匿計算指示機能により、第1秘匿計算サーバー30および第2秘匿計算サーバー40に記憶されているテーブル構造データのシェアに対して秘匿計算を実行するための指示が行われる。具体的には、秘匿計算指示機能は、対象ユーザの指示に基づいて、第1秘匿計算サーバー30および第2秘匿計算サーバー40に記憶されているテーブル構造データのシェアに対して秘匿計算を実行するための指示をSQL文などの形式で作成し、作成した指示を、第1秘匿計算サーバー30および第2秘匿計算サーバー40に送信する。また、秘匿計算指示機能は、作成した秘匿計算の指示とともに、ステップS201で取得した対象ユーザのトークンも、第1秘匿計算サーバー30および第2秘匿計算サーバー40に送信する。これにより、第1秘匿計算サーバー30および第2秘匿計算サーバー40は、対象ユーザのトークンと、秘匿計算を行うための指示とを、クライアント10から受信する。
【0041】
ステップS203では、第1秘匿計算サーバー30および第2秘匿計算サーバー40のアクセス制御機能により、ステップS202で受信した対象ユーザのトークンに基づいて、対象ユーザのアクセス権情報が取得される。具体的には、アクセス制御機能は、第1秘匿計算サーバー30および第2秘匿計算サーバー40に記憶するアクセス権管理テーブルを参照し、対象ユーザのトークンに関連付けられたアクセス権情報を取得する。
【0042】
ステップS204では、アクセス制御機能により、ステップS203で取得したアクセス権情報と、ステップS202で取得したテーブル構造データのシェアに対する秘匿計算の内容(たとえばSQL文の内容)とを参照し、対象ユーザのトークンが、計算対象のテーブル構造データにアクセスする権限があるか、および、計算対象のテーブル構造データに対して指示する秘匿計算を実行する権限があるか判断される。アクセス制御機能が、対象ユーザのトークンに関連付けられたアクセス権情報に基づいて、対象ユーザのトークンが計算対象のテーブル構造データにアクセスする権限を有しており、かつ、対象ユーザが指示する秘匿計算を実行する権限を有していると判断した場合は、処理はステップS205に進み、一方、対象ユーザのトークンが計算対象のテーブル構造データにアクセスする権限を有していない、または、対象ユーザのトークンが計算対象のテーブル構造データに対して秘匿計算の実行を指示する権限がないと判断した場合には、処理はステップS206に進む。
【0043】
ステップS205では、第1秘匿計算サーバー30および第2秘匿計算サーバー40の秘匿計算機能により、ユーザが指示するテーブル構造データのシェアに対して、ユーザが指示する秘匿計算が実行される。また、秘匿計算機能は、秘匿計算の計算結果を示すシェアを、第1秘匿計算サーバー30および第2秘匿計算サーバー40から、クライアント10へと送信する。これにより、クライアント10により、第1秘匿計算サーバー30において秘匿計算された計算結果のシェアと、第2秘匿計算サーバー40において秘匿計算された計算結果のシェアとが取得され、これらシェアを用いて計算結果の復号が行われ、計算結果の平文データ、クライアント10の出力部に出力される。これにより、ユーザは、秘匿計算の計算結果を把握することが可能となる。
【0044】
一方、ステップS206では、対象ユーザのトークンが計算対象とするテーブル構造データにアクセスする権限を有していない、または、対象ユーザのトークンがテーブル構造データのシェアに対して秘匿計算を実行する権限がないと判断されているため、アクセス制御機能により、アクセス権がない旨の情報が、クライアント10に送信され、対象ユーザに表示される。
【0045】
以上のように、本実施形態に係る秘匿計算システム1では、秘匿計算を実行する第1秘匿計算サーバー30および第2秘匿計算サーバー40と、第1秘匿計算サーバー30および第2秘匿計算サーバー40と通信可能なクライアント10と、を備え、クライアント10は、第1秘匿計算サーバー30および第2秘匿計算サーバー40に秘匿計算を実行させるためのユーザの指示を、第1秘匿計算サーバー30または第2秘匿計算サーバー40にアクセスするためのユーザのトークンとともに、第1秘匿計算サーバー30および第2秘匿計算サーバー40に送信する。また、第1秘匿計算サーバー30および第2秘匿計算サーバー40は、トークンごとにアクセス権情報を記憶しており、クライアント10から受信したトークンに基づいて、当該ユーザのアクセス制御を実行する。さらに、本実施形態に係る秘匿計算システム1では、第1秘匿計算サーバー30および第2秘匿計算サーバー40は、同一のユーザについて、異なる値のトークンを記憶するとともに、共通するペアリング情報をトークンと関連付けて記憶しており、クライアント10は、第1秘匿計算サーバー30からトークンとそれに関連付けられたペアリング情報を取得するとともに、第2秘匿計算サーバー40からもトークンとそれに関連付けられたペアリング情報を取得し、第1秘匿計算サーバー30から取得したペアリング情報と第2秘匿計算サーバー40から取得したペアリング情報とを比較して、ペアリング情報が共通するトークンの組み合わせを同一のユーザに対応するトークンの組み合わせとして特定する。これにより、管理者は、秘匿計算サーバー30,40ごと、ユーザごとに異なるトークンをそれぞれ個別に保管しておく必要がなくなり、管理者のトークン管理にかかる負荷を軽減することができるとともに、トークン管理に係るミスを低減することができる。さらに、本実施形態では、ユーザごとのトークンの組み合わせを特定することで、第1秘匿計算サーバー30および第2秘匿計算サーバー40において、各ユーザのトークンに対応するアクセス権情報を設定することができるため、同一ユーザのアクセス権情報を、第1秘匿計算サーバー30および第2秘匿計算サーバー40において同期して管理することができる。さらに、本実施形態では、ユーザごとのトークンの組み合わせを特定することができるため、管理者は、トークンをユーザに配布する際に各ユーザに配布するトークン(あるいは各ユーザに配布したトークン)を把握することが可能となる。
【0046】
以上、本発明の好ましい実施形態例について説明したが、本発明の技術的範囲は上記実施形態の記載に限定されるものではない。上記実施形態例には様々な変更・改良を加えることが可能であり、そのような変更または改良を加えた形態のものも本発明の技術的範囲に含まれる。
【0047】
たとえば、上述した実施形態では、図1に示すように、情報処理装置であるクライアント10およびアプリケーションサーバー20を有する、秘匿計算システム1を例示して説明したが、本発明は、この構成に限定されず、たとえば、アプリケーションサーバー20を備えない構成とすることもできる。なお、アプリケーションサーバー20を備えない構成とする場合、たとえば、クライアント10が、上述したアクセス権管理処理のためのプログラムを予め記憶しておき、実行する構成とすることができる。
【0048】
また、上述した実施形態では、第1秘匿計算サーバー30および第2秘匿計算サーバー40が、秘匿計算の対象データとして、テーブル構造データのシェアを記憶する構成を例示したが、この構成に限定されず、テーブル構造ではないデータを記憶する構成とすることもできる。また、上述した実施形態では、第1秘匿計算サーバー30および第2秘匿計算サーバー40が、秘匿計算の対象データを、第1秘匿計算サーバー30および第2秘匿計算サーバー40のデータベースに記憶する構成を例示したが、この構成に限定されず、第1秘匿計算サーバー30および第2秘匿計算サーバー40が備えるHDDやSSDなどの記憶装置に記憶する構成としてもよい。
【0049】
さらに、上述した実施形態では、ユーザごとにトークンを有する構成を例示したが、「ユーザのトークン」として、個人ごとに異なるトークンが配布される構成としてもよいし、あるいは、所定のグループをユーザとしてトークンを配布する構成とすることもできる。たとえば、秘匿計算の対象データを分析する複数人からなる分析チームや、秘匿計算の対象データを入力する複数人からなる入力チームを1つのユーザとし、これらチームに所属する各個人に同一のトークンを配布する構成とすることができる。
【符号の説明】
【0050】
1…秘匿計算システム
10…クライアント
20…アプリケーションサーバー
30…第1秘匿計算サーバー
40…第2秘匿計算サーバー
2…インターネット

図1
図2
図3
図4
図5
図6
【手続補正書】
【提出日】2023-04-13
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
秘匿計算を実行する複数の秘匿計算サーバーと、前記複数の秘匿計算サーバーと通信可能な情報処理装置と、を備える、秘匿計算システムであって、
前記情報処理装置は、前記秘匿計算サーバーのそれぞれに対して、記秘匿計算サーバーに秘匿計算を実行させるためのユーザの指示を、前記秘匿計算サーバーにアクセスするためのトークンとともに送信し、
前記複数の秘匿計算サーバーは、前記トークンごとにアクセス権情報を記憶しており、前記情報処理装置から受信した前記ユーザのトークンに基づいて、当該ユーザのアクセス制御を実行し、
前記複数の秘匿計算サーバーは、同一ユーザについて、異なる前記トークンをそれぞれ記憶するとともに、共通するペアリング情報を前記トークンと関連付けてそれぞれ記憶しており、
前記情報処理装置は、同一ユーザのトークンにそれぞれ関連付けられた各アクセス権情報を前記複数の秘匿計算サーバーで同期して管理するために、各秘匿計算サーバーから前記トークンとそれに関連付けられた前記ペアリング情報をそれぞれ取得し、各秘匿計算サーバーから取得した前記ペアリング情報を比較して、前記ペアリング情報が共通する前記トークンであるか検証することで、同一ユーザの前記トークンの組み合わせを特定する、秘匿計算システム。
【請求項2】
前記複数の秘匿計算サーバーは、第1秘匿計算サーバーおよび第2秘匿計算サーバーを含み、
前記情報処理装置は、
特定した前記同一ユーザのトークンの組み合わせのうち、前記第1秘匿計算サーバーから取得した前記トークンに基づいて、当該トークンに対応するアクセス権情報を設定するための指示を作成し、当該指示を前記第1秘匿計算サーバーに送信するとともに、
特定した前記同一ユーザのトークンの組み合わせのうち、前記第2秘匿計算サーバーから取得した前記トークンに基づいて、当該トークンに対応するアクセス権情報を設定するための指示を作成し、当該指示を、前記第2秘匿計算サーバーに送信し、
前記第1秘匿計算サーバーは、前記情報処理装置から受信した前記指示に基づいて、前記第1秘匿計算サーバーが記憶するアクセス権情報を設定し、
前記第2秘匿計算サーバーは、前記情報処理装置から受信した前記指示に基づいて、前記第2秘匿計算サーバーが記憶するアクセス権情報を設定する、請求項1に記載の秘匿計算システム。
【請求項3】
請求項1に係る秘匿計算システムを構成する情報処理装置であって、
前記複数の秘匿計算サーバーから、前記複数の秘匿計算サーバーにそれぞれアクセスするための複数のトークンと、前記複数のトークンにそれぞれ関連付けられた複数のペアリング情報とを取得する取得手段と、
前記トークンは、同一ユーザであっても、前記複数の秘匿計算サーバーごとに異なる一方、前記ペアリング情報は、同一ユーザで、前記複数の秘匿計算サーバー間で共通しており、各秘匿計算サーバーからそれぞれ取得した前記ペアリング情報を比較することで、同一ユーザの前記トークンの組み合わせを特定する特定手段と、
特定した前記同一ユーザのトークンの組み合わせのうち、各秘匿計算サーバーから取得したトークンを、当該トークンに対応するアクセス権を設定するための指示とともに、当該トークンを取得した前記秘匿計算サーバーにそれぞれ送信することで、前記複数の秘匿計算サーバーのそれぞれに前記同一ユーザのトークンに対応するアクセス権を設定させる、送信手段と、を有する情報処理装置。
【請求項4】
請求項1に係る秘匿計算システムを構成するコンピューターに、
前記複数の秘匿計算サーバーから、前記複数の秘匿計算サーバーにそれぞれアクセスするための複数のトークンと、前記複数のトークンにそれぞれ関連付けられた複数のペアリング情報とを取得する取得機能と、
前記トークンは、同一ユーザであっても、前記複数の秘匿計算サーバーごとに異なる一方、前記ペアリング情報は、同一ユーザで、前記複数の秘匿計算サーバー間で共通しており、各秘匿計算サーバーからそれぞれ取得した前記ペアリング情報を比較することで、前記同一ユーザのトークンの組み合わせを特定する特定機能と、
特定した前記同一ユーザのトークンの組み合わせのうち、各秘匿計算サーバーから取得したトークンを、当該トークンに対応するアクセス権を設定するための指示とともに、当該トークンを取得した前記秘匿計算サーバーにそれぞれ送信することで、前記複数の秘匿計算サーバーのそれぞれに前記同一ユーザのトークンに対応するアクセス権を設定させる、送信機能と、を実行させるコンピュータープログラム。
【請求項5】
秘匿計算を実行する複数の秘匿計算サーバーと、前記複数の秘匿計算サーバーと通信可能な情報処理装置と、を備え、
前記情報処理装置が、前記秘匿計算サーバーのそれぞれに対して、記秘匿計算サーバーに秘匿計算を実行させるためのユーザの指示を、前記秘匿計算サーバーにアクセスするためのトークンとともに送信し、
前記複数の秘匿計算サーバーは、ユーザごとにアクセス権情報を前記トークンと関連付けて記憶しており、前記情報処理装置から受信した前記ユーザに対応するトークンに基づいて、当該ユーザのアクセス制御を実行する秘匿計算システムにおいて、ユーザのアクセス権を管理するためのアクセス権管理方法であって、
前記複数の秘匿計算サーバーは、同一ユーザについて、異なる前記トークンをそれぞれ記憶するとともに、共通するペアリング情報を前記トークンと関連付けてそれぞれ記憶しており、
前記情報処理装置は、
各秘匿計算サーバーから前記トークンとそれに関連付けられた前記ペアリング情報とをそれぞれ取得し、各秘匿計算サーバーから取得した前記ペアリング情報を比較して、前記ペアリング情報が共通する前記同一ユーザのトークンの組み合わせを特定し、
特定した前記同一ユーザのトークンの組み合わせのうち、各秘匿計算サーバーから取得したトークンを、当該トークンに対応するアクセス権を設定するための指示とともに、当該トークンを取得した前記秘匿計算サーバーにそれぞれ送信することで、前記複数の秘匿計算サーバーのそれぞれに前記同一ユーザのトークンに対応するアクセス権を設定させる、アクセス権管理方法。
【手続補正2】
【補正対象書類名】明細書
【補正対象項目名】0007
【補正方法】変更
【補正の内容】
【0007】
本発明に係る秘匿計算システムは、秘匿計算を実行する複数の秘匿計算サーバーと、前記複数の秘匿計算サーバーと通信可能な情報処理装置と、を備え、前記情報処理装置は、前記秘匿計算サーバーのそれぞれに対して、記秘匿計算サーバーに秘匿計算を実行させるためのユーザの指示を、前記秘匿計算サーバーにアクセスするためのトークンとともに送信し、前記複数の秘匿計算サーバーは、前記トークンごとにアクセス権情報を記憶しており、前記情報処理装置から受信した前記ユーザのトークンに基づいて、当該ユーザのアクセス制御を実行し、前記複数の秘匿計算サーバーは、同一ユーザについて、異なる前記トークンをそれぞれ記憶するとともに、共通するペアリング情報を前記トークンと関連付けてそれぞれ記憶しており、前記情報処理装置は、同一ユーザのトークンにそれぞれ関連付けられた各アクセス権情報を前記複数の秘匿計算サーバーで同期して管理するために、各秘匿計算サーバーから前記トークンとそれに関連付けられた前記ペアリング情報をそれぞれ取得し、各秘匿計算サーバーから取得した前記ペアリング情報を比較して、前記ペアリング情報が共通する前記トークンであるか検証することで、同一ユーザの前記トークンの組み合わせを特定する。
上記秘匿計算システムにおいて、前記複数の秘匿計算サーバーは、第1秘匿計算サーバーおよび第2秘匿計算サーバーを含み、前記情報処理装置は、特定した前記同一ユーザのトークンの組み合わせのうち、前記第1秘匿計算サーバーから取得した前記トークンに基づいて、当該トークンに対応するアクセス権情報を設定するための指示を作成し、当該指示を前記第1秘匿計算サーバーに送信するとともに、特定した前記同一ユーザのトークンの組み合わせのうち、前記第2秘匿計算サーバーから取得した前記トークンに基づいて、当該トークンに対応するアクセス権情報を設定するための指示を作成し、当該指示を、前記第2秘匿計算サーバーに送信し、前記第1秘匿計算サーバーは、前記情報処理装置から受信した前記指示に基づいて、前記第1秘匿計算サーバーが記憶するアクセス権情報を設定し、前記第2秘匿計算サーバーは、前記情報処理装置から受信した前記指示に基づいて、前記第2秘匿計算サーバーが記憶するアクセス権情報を設定する構成とすることができる。
本発明に係る情報処理装置は、上記秘匿計算システムを構成する秘匿計算を実行する複数の秘匿計算サーバーと通信可能な情報処理装置であって、前記複数の秘匿計算サーバーから、前記複数の秘匿計算サーバーにそれぞれアクセスするための複数のトークンと、前記複数のトークンにそれぞれ関連付けられた複数のペアリング情報とを取得する取得手段と、前記トークンは、同一ユーザであっても、前記複数の秘匿計算サーバーごとに異なる一方、前記ペアリング情報は、同一ユーザで、前記複数の秘匿計算サーバー間で共通しており、各秘匿計算サーバーからそれぞれ取得した前記ペアリング情報を比較することで、同一ユーザの前記トークンの組み合わせを特定する特定手段と、特定した前記同一ユーザのトークンの組み合わせのうち、各秘匿計算サーバーから取得したトークンを、当該トークンに対応するアクセス権を設定するための指示とともに、当該トークンを取得した前記秘匿計算サーバーにそれぞれ送信することで、前記複数の秘匿計算サーバーのそれぞれに前記同一ユーザのトークンに対応するアクセス権を設定させる、送信手段と、を有する。
本発明に係るコンピュータープログラムは、上記秘匿計算システムを構成するコンピューターに、前記複数の秘匿計算サーバーから、前記複数の秘匿計算サーバーにそれぞれアクセスするための複数のトークンと、前記複数のトークンにそれぞれ関連付けられた複数のペアリング情報とを取得する取得機能と、前記トークンは、同一ユーザであっても、前記複数の秘匿計算サーバーごとに異なる一方、前記ペアリング情報は、同一ユーザで、前記複数の秘匿計算サーバー間で共通しており、各秘匿計算サーバーからそれぞれ取得した前記ペアリング情報を比較することで、前記同一ユーザのトークンの組み合わせを特定する特定機能と、特定した前記同一ユーザのトークンの組み合わせのうち、各秘匿計算サーバーから取得したトークンを、当該トークンに対応するアクセス権を設定するための指示とともに、当該トークンを取得した前記秘匿計算サーバーにそれぞれ送信することで、前記複数の秘匿計算サーバーのそれぞれに前記同一ユーザのトークンに対応するアクセス権を設定させる、送信機能と、を実行させる。
本発明に係るアクセス権管理方法は、秘匿計算を実行する複数の秘匿計算サーバーと、前記複数の秘匿計算サーバーと通信可能な情報処理装置と、を備え、前記情報処理装置が、前記秘匿計算サーバーのそれぞれに対して、記秘匿計算サーバーに秘匿計算を実行させるためのユーザの指示を、前記複数の秘匿計算サーバーにアクセスするためのトークンとともに送信し、前記複数の秘匿計算サーバーは、ユーザごとにアクセス権情報を前記トークンと関連付けて記憶しており、前記情報処理装置から受信した前記ユーザに対応するトークンに基づいて、当該ユーザのアクセス制御を実行する秘匿計算システムにおいて、ユーザのアクセス権を管理するためのアクセス権管理方法であって、前記複数の秘匿計算サーバーは、同一のユーザについて、異なる前記トークンをそれぞれ記憶するとともに、共通するペアリング情報を前記トークンと関連付けてそれぞれ記憶しており、前記情報処理装置は、各秘匿計算サーバーから前記トークンとそれに関連付けられた前記ペアリング情報とをそれぞれ取得し、各秘匿計算サーバーから取得した前記ペアリング情報を比較して、前記ペアリング情報が共通する前記同一ユーザのトークンの組み合わせを特定し、特定した前記同一ユーザのトークンの組み合わせのうち、各秘匿計算サーバーから取得したトークンを、当該トークンに対応するアクセス権を設定するための指示とともに、当該トークンを取得した前記秘匿計算サーバーにそれぞれ送信することで、前記複数の秘匿計算サーバーのそれぞれに前記同一ユーザのトークンに対応するアクセス権を設定させる。