(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024115915
(43)【公開日】2024-08-27
(54)【発明の名称】情報処理装置及び秘密情報を管理する方法
(51)【国際特許分類】
H04L 9/08 20060101AFI20240820BHJP
H04L 9/32 20060101ALI20240820BHJP
G06F 21/62 20130101ALI20240820BHJP
G06F 21/31 20130101ALI20240820BHJP
【FI】
H04L9/08 A
H04L9/32 200E
H04L9/32 200A
G06F21/62 309
G06F21/31
【審査請求】未請求
【請求項の数】10
【出願形態】OL
(21)【出願番号】P 2023021822
(22)【出願日】2023-02-15
(71)【出願人】
【識別番号】000155469
【氏名又は名称】株式会社野村総合研究所
(74)【代理人】
【識別番号】110003281
【氏名又は名称】弁理士法人大塚国際特許事務所
(72)【発明者】
【氏名】川口 将司
(72)【発明者】
【氏名】板田 俊一
(72)【発明者】
【氏名】藤谷 知季
(72)【発明者】
【氏名】田中 悠一郎
(57)【要約】
【課題】秘密情報を安全に管理する技術を提供する。
【解決手段】情報処理装置は、複数の第1情報項目を含む格納クレデンシャルを取得する手段と、ストレージサービスを提供しているパーティに、秘密情報に基づき生成された複数のシェアの内の第1シェアの格納を依頼するために、第1シェア及び格納クレデンシャルを含む第1依頼メッセージを、パーティのサーバ装置に送信する処理を行う処理手段と、を備え、パーティに第1シェアの送信を依頼する際、取得手段は、複数の第2情報項目を含む読出クレデンシャルを取得し、処理手段は、読出クレデンシャルを含む第2依頼メッセージをパーティのサーバ装置に送信し、複数の第1情報項目と複数の第2情報項目は、第1シェアを情報処理装置に送信するか否かを判定するためにパーティのサーバ装置によって使用される。
【選択図】
図4
【特許請求の範囲】
【請求項1】
情報処理装置であって、
複数の第1情報項目を含む格納クレデンシャルを取得する取得手段と、
ストレージサービスを提供しているパーティに、秘密情報に基づき生成された複数のシェアの内の第1シェアの格納を依頼するために、前記第1シェア及び前記格納クレデンシャルを含む第1依頼メッセージを、前記パーティのサーバ装置に送信する処理を行う処理手段と、
を備え、
前記パーティに前記第1シェアの送信を依頼する際、
前記取得手段は、複数の第2情報項目を含む読出クレデンシャルを取得し、
前記処理手段は、前記読出クレデンシャルを含む第2依頼メッセージを前記パーティのサーバ装置に送信し、
前記複数の第1情報項目と前記複数の第2情報項目は、前記第1シェアを前記情報処理装置に送信するか否かを判定するために前記パーティのサーバ装置によって使用される、情報処理装置。
【請求項2】
前記読出クレデンシャルは、さらに、前記読出クレデンシャルの発行タイミングを示す情報を含み、
前記発行タイミングは、前記第1シェアを前記情報処理装置に送信するか否かを判定するために前記パーティのサーバ装置によって使用される、請求項1に記載の情報処理装置。
【請求項3】
前記複数の第1情報項目は、前記格納クレデンシャルの発行元を示す第1発行元情報を含み、
前記複数の第2情報項目は、前記読出クレデンシャルの発行元を示す第2発行元情報を含み、
前記第1シェアを前記情報処理装置に送信すると前記パーティのサーバ装置が判定するための条件の1つは、前記第1発行元情報と前記第2発行元情報が同じであることである、請求項1に記載の情報処理装置。
【請求項4】
前記複数の第1情報項目は、前記格納クレデンシャルの発行を依頼した依頼者に関する第1依頼者情報を含み、
前記複数の第2情報項目は、前記読出クレデンシャルの発行を依頼した依頼者に関する第2依頼者情報を含み、
前記第1シェアを前記情報処理装置に送信すると前記パーティのサーバ装置が判定するための条件の1つは、前記第1依頼者情報と前記第2依頼者情報が同じであることである、請求項1に記載の情報処理装置。
【請求項5】
前記第1依頼者情報及び前記第2依頼者情報は、ゼロ知識証明が可能な情報である、請求項4に記載の情報処理装置。
【請求項6】
前記格納クレデンシャルは、前記第1シェアの格納を依頼する前記パーティの識別情報を含む、請求項1に記載の情報処理装置。
【請求項7】
前記読出クレデンシャルは、生成元と秘密データとに基づき求められる第1コミットメントと、前記生成元と乱数とに基づき求められる第2コミットメントと、を含み、
前記第2依頼メッセージの応答として、チャレンジデータを前記パーティのサーバ装置から受信すると、前記処理手段は、前記秘密データと、前記乱数と、前記チャレンジデータと、に基づき求められるプルーフを前記パーティのサーバ装置に送信し、
前記第1シェアを前記情報処理装置に送信すると前記パーティのサーバ装置が判定するための条件の1つは、前記第1コミットメント、前記第2コミットメント及び前記チャレンジデータに基づき求められる値と、前記生成元及び前記プルーフに基づき求められる値が同じであることである、請求項1に記載の情報処理装置。
【請求項8】
秘密情報を管理する方法であって、
情報処理装置が、複数の第1情報項目を含む格納クレデンシャルを取得することと、
ストレージサービスを提供しているパーティに、秘密情報に基づき生成された複数のシェアの内の第1シェアの格納を依頼するために、前記情報処理装置が、前記第1シェアと、前記格納クレデンシャルと、を含む第1依頼メッセージを、前記パーティのサーバ装置に送信することと、
前記情報処理装置が、複数の第2情報項目を含む読出クレデンシャルを取得することと、
前記情報処理装置が、前記第1シェアの読み出しを依頼する、前記読出クレデンシャルを含む第2依頼メッセージを前記パーティのサーバ装置に送信することと、
前記パーティのサーバ装置が、前記複数の第1情報項目の内の1つ以上の情報項目と前記複数の第2情報項目の内の1つ以上の情報項目とを比較することで、前記第1シェアを前記情報処理装置に送信するか否かを判定することと、
を含む方法。
【請求項9】
前記第2情報項目は、さらに、前記読出クレデンシャルの発行タイミングを示す情報を含み、
前記発行タイミングが過去所定期間内であることを、前記パーティのサーバ装置は、前記第1シェアを前記情報処理装置に送信すると判定するための条件の1つとする、請求項8に記載の方法。
【請求項10】
前記読出クレデンシャルは、生成元と秘密データとに基づき生成された第1コミットメントと、前記生成元と乱数と、に基づき生成された第2コミットメントと、を含み、
前記第1シェアを前記情報処理装置に送信するか否かを判定することは、
前記パーティのサーバ装置が、前記第2依頼メッセージの応答として、チャレンジデータを前記情報処理装置に送信することと、
前記情報処理装置が、前記秘密データと、前記乱数と、前記チャレンジデータと、に基づき求められるプルーフを前記パーティのサーバ装置に送信することと、
前記パーティのサーバ装置が、前記第1コミットメント、前記第2コミットメント及び前記チャレンジデータに基づき第1の値を求め、前記生成元及び前記プルーフに基づき第2の値を求めることと、
を含み、
前記第1の値と前記第2の値が同じであることを、前記パーティのサーバ装置は、前記第1シェアを前記情報処理装置に送信すると判定するための条件の1つとする、請求項8又は9に記載の方法。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、秘密情報を安全に管理する技術に関する。
【背景技術】
【0002】
非特許文献1は、秘密情報を安全に管理・保存する方法である秘密分散法を開示している。秘密分散法では、秘密情報に基づきN個(Nは2以上の整数)の"シェア"と呼ばれるデータを生成し、N個の異なるシェアを異なる格納装置に格納する。なお、元の秘密情報は、N個のシェアの内の任意のM個(Mは2以上、かつ、N以下の整数)のシェアに基づき復元することができる。一方、(M-1)個以下のシェアからでは、秘密情報が復元できない様に、N個のシェアは構成される。したがって、(M-1)個以下の格納装置それぞれからシェアが流出しても秘密情報を復元することはできず、秘密情報の機密性は保たれる。なお、NをMより大きくする理由の1つは、格納装置の障害に対応するためである。つまり、(N-M)個の格納装置に障害が生じて格納しているシェアが消失しても、残りのM個の格納装置に格納されているM個のシェアに基づき秘密情報を復元でき、秘密情報そのものが失われることを防ぐことができる。
【先行技術文献】
【非特許文献】
【0003】
【非特許文献1】大原 一真、"「プライバシー保護データマイニング」特集号 秘密分散法を用いた秘密計算"、[оnline]、2019年、W3C、[令和4年12月28日検索]、インターネット<URL:https://www.jstage.jst.go.jp/article/isciesci/63/2/63_71/_pdf>
【発明の概要】
【発明が解決しようとする課題】
【0004】
現在、様々なクラウドストレージサービスが提供されている。以下、クラスウドストレージサービスを提供している事業者を"パーティ"と表記する。例えば、秘密情報に基づくN個のシェア#1~シェア#Nの格納を、数Nの異なるパーティに依頼するものとする。この場合、例えば、数Mのパーティに悪意を持った者がいる場合、数Mのパーティ間の結託により秘密情報が復元され得る。したがって、秘密分散法の安全性を高めるには、格納装置からのシェアの読み出しについて何らかの制限を設ける必要がある。
【0005】
本開示は、秘密情報を安全に管理する技術を提供するものである。
【課題を解決するための手段】
【0006】
本開示の一態様によると、情報処理装置は、複数の第1情報項目を含む前記格納クレデンシャルを取得する取得手段と、ストレージサービスを提供しているパーティに、秘密情報に基づき生成された複数のシェアの内の第1シェアの格納を依頼するために、前記第1シェア及び前記格納クレデンシャルを含む第1依頼メッセージを、前記パーティのサーバ装置に送信する処理を行う処理手段と、を備え、前記パーティに前記第1シェアの送信を依頼する際、前記取得手段は、複数の第2情報項目を含む読出クレデンシャルを取得し、前記処理手段は、前記読出クレデンシャルを含む第2依頼メッセージを前記パーティのサーバ装置に送信し、前記複数の第1情報項目と前記複数の第2情報項目は、前記第1シェアを前記情報処理装置に送信するか否かを判定するために前記パーティのサーバ装置によって使用される。
【発明の効果】
【0007】
本開示によると、秘密情報を安全に管理することが可能になる。
【図面の簡単な説明】
【0008】
【
図2】一実施形態による、秘密情報の格納処理のシーケンス図。
【
図3】クレデンシャルに含められる情報例を示す図。
【
図4】一実施形態による、シェアの読出処理のシーケンス図。
【
図5】一実施形態による、シェアの読出処理における検証処理のシーケンス図。
【
図6】一実施形態による情報処理装置の機能ブロック図。
【
図8】一実施形態による生成装置の機能ブロック図。
【発明を実施するための形態】
【0009】
以下、添付図面を参照して実施形態を詳しく説明する。なお、以下の実施形態は特許請求の範囲に係る発明を限定するものではなく、また実施形態で説明されている特徴の組み合わせの全てが発明に必須のものとは限らない。実施形態で説明されている複数の特徴のうち二つ以上の特徴が任意に組み合わされてもよい。また、同一若しくは同様の構成には同一の参照番号を付し、重複した説明は省略する。
【0010】
<第一実施形態>
図1は、実施形態の説明に使用するシステムの構成図である。情報処理装置5は、秘密情報を有する秘密情報保持者(以下では、ユーザと表記する。)が使用している装置である。情報処理装置5は、例えば、パーソナルコンピュータ(PC)、スマートフォン、タブレット端末等の通信機能及び情報処理機能を有する任意の装置であり得る。パーティ#1~パーティ#Nは、クラスウストレージサービスを提供する事業者であり、それぞれ、サーバ装置1(以下、サーバ1と表記する)と、格納装置2と、を有する。
【0011】
イッシュワー(Issuer)は、後述するクレデンシャル(Credential)を発行する、パーティ#1~パーティ#Nとは独立した機関・組織であり、生成装置3を運用している。生成装置3は、例えば、コンピュータにより実現される。情報処理装置5、各パーティのサーバ1及び生成装置3は、例えば、インターネット等のネットワーク4を介して相互に通信可能に構成される。なお、図の簡略化のため、各パーティの格納装置2が、サーバ1と直接接続されている様に表記しているが、格納装置2は、同じパーティのサーバ1とネットワーク4や、ネットワーク4とは独立したネットワークを介して接続するものであっても良い。
【0012】
図2は、秘密情報の格納処理のシーケンス図である。なお、シーケンスの開始時点において、ユーザは、情報処理装置5に対して処理対象の秘密情報を指定しているものとする。S10で、ユーザは、情報処理装置5にシェア数Nを入力する。なお、シェア数Nをユーザが決定して情報処理装置5に入力するのではなく、情報処理装置5が決定する構成であっても良い。また、シェア数Nは固定値であって良い。また、例えば、ユーザが明示的にシェア数Nを入力するのではなく、ユーザがシェアを格納するパーティを指定することに応じて、指定されたパーティの数をシェア数Nとして情報処理装置5が取得する構成とすることもできる。この場合、情報処理装置5は、パーティのリストを表示して、ユーザに選択させる構成とすることができる。さらに、図示していないが、ユーザは、秘密情報を復元するのに必要なシェアの数MをS10で指定することができる。なお、数Mについても、情報処理装置5が決定する構成や、固定値とすることもできる。
【0013】
S11で、情報処理装置5は、秘密情報に基づきN個のシェア#1~シェア#Nを生成する。S12で、情報処理装置5は、シェア#1~シェア#Nそれぞれに対応する合計N個の格納クレデンシャルの発行を依頼する第1発行依頼メッセージを生成装置3に送信する。本実施形態では、シェア#n(nは、1~Nまでの整数)に対応する格納クレデンシャル#nに、シェア#nを格納するパーティの識別情報を含める。したがって、ユーザは、情報処理装置5を操作してシェア#nの格納を依頼するパーティを決定し、S12の第1発行依頼メッセージには、シェア#nの格納を依頼するパーティを特定する情報を含める。以下の説明では、シェア#nを格納するパーティをパーティ#nとする。なお、ここで、ユーザが操作してパーティを決定することを説明したが、情報処理装置5がランダムにパーティを選択する構成であってもよい。
【0014】
第1発行依頼メッセージに応答して、生成装置3は、S13で、シェア#1~シェア#Nそれぞれに対応する格納クレデンシャル#1~#Nを生成し、S14で、格納クレデンシャル#1~#Nを情報処理装置5に送信する。本実施形態において、格納クレデンシャル#nは、
図3(A)に示す4つの情報項目#1~情報項目#4を含むものとする。情報項目#1は、イッシュワー、つまり、格納クレデンシャル#nの発行元を特定する情報である。情報項目#1は、イッシュワー固有の情報である限り任意であるが、本例では、イッシュワーを特定する情報を、イッシュワーの公開鍵を特定するための情報とする。イッシュワーの公開鍵を特定するための情報は、例えば、イッシュワーの公開鍵そのものや、当該公開鍵へのリンク情報であり得る。情報項目#2は、シェア#nの格納先であるパーティ#nの識別情報である。情報項目#3は、ユーザを識別するための情報、つまり、格納クレデンシャル#nの発行をイッシュワーに依頼した依頼者に関する情報である。ユーザを識別するための情報は、当該ユーザの氏名、性別、生年月日、住所の1つ以上を含み得る。ユーザを識別するための情報は、例えば、ユーザの特定に使用され得る。情報項目#4は、格納クレデンシャル#nの内容の改竄を防ぐための、イッシュワーの秘密鍵で生成されたデジタル署名である。なお、格納クレデンシャル#nに含められる情報項目は
図3(A)に示すものに限定されず、
図3(A)に示す情報項目に代えて、或いは、加えて他の情報項目を含み得る。例えば、秘密情報の識別情報を、追加の情報項目として格納クレデンシャルに含める構成とすることができる。
【0015】
情報処理装置5は、ユーザ操作により、S15で、パーティ#1~パーティ#Nそれぞれのサーバ1に、格納依頼メッセージを送信する。パーティ#nへの格納依頼メッセージは、シェア#nと、格納クレデンシャル#nと、を含む。パーティ#nのサーバ1は、シェ#nと格納クレデンシャル#nとを、パーティ#nの格納装置2に格納する。なお、このとき、パーティ#nのサーバ1は、格納クレデンシャル#nの情報項目#2がパーティ#nを示しているか否かを検査し、格納クレデンシャル#nの情報項目#2がパーティ#nを示している場合にのみ、シェア#nと格納クレデンシャル#nとを格納装置2に格納する構成とし得る。格納クレデンシャル#nの情報項目#2がパーティ#nを示していない場合、パーティ#nのサーバ1は、シェア#nと格納クレデンシャル#nを廃棄して、格納できないことを情報処理装置5に通知する構成とし得る。
図2では、S12で、N個の格納クレデンシャルの発行依頼を一括して行ったが、N個の格納クレデンシャルの発行依頼を一括して行う必要はなく、複数回に分けて行う構成であっても良い。
【0016】
図4は、秘密情報を復元するためのM個シェアの読出処理のシーケンス図である。なお、MがNより小さい場合、シーケンスの開始時点において、ユーザは、読み出しを依頼する数Mのパーティを特定するための情報を情報処理装置5に対して入力しているものとする。以下の説明において、ユーザは、シェア#1~シェア#Mを読み出すものとする。S20で、情報処理装置5は、シェア#1~シェア#Mそれぞれに対応する合計M個の読出クレデンシャルの発行を依頼する第2発行依頼メッセージを生成装置3に送信する。第2発行依頼メッセージは、読み出すシェアを特定する情報又は、読出しを依頼するパーティを特定する情報を含む。なお、ここでは、ユーザがM個のパーティを特定する情報を情報処理装置5に入力するという構成にしたが、ある秘密情報の復元をユーザが情報処理装置5に操作指示した場合には、対応する秘密情報のシェアを有するパーティの中からランダムにM個のパーティを選定する構成であってもよい。
【0017】
第2発行依頼メッセージに応答して、生成装置3は、S21で、シェア#1~シェア#Mそれぞれに対応する読出クレデンシャル#1~#Mを生成し、S22で、読出クレデンシャル#1~#Mを情報処理装置5に送信する。
図3(B)は、読出クレデンシャル#m(mは、1からMまでの整数)に含められる情報項目を示している。
図3(B)に示す様に、読出クレデンシャル#mは、対応する格納クレデンシャル#mと同じ情報項目#1~情報項目#4を有する。さらに、読出クレデンシャル#mは、情報項目#Aを含む。情報項目#Aは、読出クレデンシャル#mの発行タイミングを示す情報であり、本例では、読出クレデンシャル#mの発行日時を示す情報とする。
【0018】
情報処理装置5は、ユーザ操作により、S23で、パーティ#1のサーバ1に、送信依頼メッセージを送信する。パーティ#1への送信依頼メッセージは、シェア#1を特定する情報と、読出クレデンシャル#1と、を含む。パーティ#1のサーバ1は、シェア#1と共に格納装置2に格納している格納クレデンシャル#1と、送信依頼メッセージで受信した読出クレデンシャル#1と、を比較することで、シェア#1の読出依頼の正当性、つまり、読出依頼を行ったものがシェア#1の正当な所有者であるかをS24において検証する。パーティ#1のサーバ1は、検証成功と判定すると、格納装置2からシェア#1を読み出して、S25で、シェア#1を情報処理装置5に送信する。以下、検証処理について説明する。
【0019】
パーティ#1のサーバ1は、読出クレデンシャル#1のデジタル署名(情報項目#4)に基づき読出クレデンシャル#1の内容が改竄されていないかを検査する。内容が改竄されていると判定された場合、パーティ#1のサーバ1は、検証失敗と判定する。内容が改竄されていない場合、パーティ#1のサーバ1は、格納クレデンシャル#1の情報項目#1と読出クレデンシャル#1の情報項目#1が一致しているかと、格納クレデンシャル#1の情報項目#3と読出クレデンシャル#1の情報項目#3が一致しているかを検査する。いずれかが一致していない場合、パーティ#1のサーバ1は、検証失敗と判定する。また、パーティ#1のサーバ1は、読出クレデンシャル#1の発行タイミング(情報項目#A)が過去所定期間内であるかを判定する。読出クレデンシャル#1の発行タイミングが過去所定期間内ではない場合、パーティ#1のサーバ1は、検証失敗と判定する。過去所定期間内に発行されたものではない読出クレデンシャル#1の使用を排除することで、読出クレデンシャル#1が使い回しされる可能性を抑えることができる。なお、読出クレデンシャルの発行タイミング(情報項目#A)は、読出クレデンシャルに記述される情報項目を、格納クレデンシャルに記述される情報項目とは異なるものとする役割も有する。つまり、読出クレデンシャルと格納クレデンシャルとを区別できる様にする役割を有する。しかしながら、例えば、読出クレデンシャルであるか格納クレデンシャルであるかを示す情報等、別の情報により2つのクレデンシャルを区別する構成とすることもできる。また、パーティ#1のサーバ装置1は、読出クレデンシャル#2の情報項目#2がパーティ#1を示していることを検証成功の条件とすることもできる。なお、情報項目#Aに基づいて所定期間内に発行されたことの検証は必須ではなく、後述の情報項目#2の一致や、第二実施形態で述べるゼロ知識証明による知識認証のみを検証する形態としても良い。
【0020】
情報処理装置5は、S23~S25の処理を他のパーティ#2~パーティ#Mに対して繰り返し、パーティ#Mに対するS26~S28の処理によりシェア#1~シェア#Mを取得する。その後、情報処理装置5は、シェア#1~シェア#Mに基づき秘密情報を復元する。
図4では、S20で、M個の読出クレデンシャルの発行依頼を一括して行ったが、M個の読出クレデンシャルの発行依頼を一括して行う必要はなく、複数回に分けて行う構成であっても良い。
【0021】
なお、例えば、格納クレデンシャルや読出クレデンシャル(以下、格納クレデンシャルと読出クレデンシャルを総称してクレデンシャルと表記する。)は、平文の情報を含む検証可能クレデンシャル(Verifiable Credential)が想定されるが、ZKクレデンシャル(Zerо Knowledge Credential)で置き換えられてもよい。この場合、例えば、情報項目#3については、ゼロ知識証明により任意の条件(例:ある属性情報が特定の範囲に含まれている等)であることを検証することが可能な情報とし、S24やS27においては、情報項目#3の内容の正当性をZKクレデンシャルに基づき検証する構成とすることができる。
【0022】
また、本実施形態では、クレデンシャルに情報項目#2としてパーティの識別情報を含めていた。クレデンシャルにパーティの識別情報を含める理由の1つは、1つの秘密情報に基づき生成されたN個のシェアそれぞれに対応するN個のクレデンシャルの内容を異ならせることである。しかしながら、本発明は、クレデンシャルにパーティの識別情報を含めることに限定されず、例えば、N個のシェアを識別するための識別情報をクレデンシャルに含めることで、各クレデンシャルの内容を異ならせる構成とすることができる。この場合、S12で第1発行依頼メッセージを生成装置3に送信する前に、N個のシェアを格納する数Nのパーティを決定しておく必要はない。
【0023】
なお、クレデンシャル#1~#Nの内容を異ならせるのは、読出クレデンシャルの使いまわしを防止するためである。つまり、1つの秘密情報に対応するN個の格納クレデンシャルの内容が同じであると、1つの読出クレデンシャルが流出した場合、M個のシェアが不正に取得され得る。しかしながら、
図4のシーケンスには明記していないが、送信依頼メッセージを送信する前に、サーバ1は、情報処理装置5のユーザをパスワード等により認証する。したがって、1つの秘密情報に対応するN個の格納クレデンシャルの内容を同じとする構成であっても良い。言い換えると、1つの秘密情報に基づき生成されたN個のシェアに対応する格納クレデンシャルをそれぞれ異ならせるのではなく、N個のシェアそれぞれに同じ格納クレデンシャルを対応させる構成であっても良い。1つの秘密情報に対応するN個の格納クレデンシャルの内容が同じであっても、M個のシェアが不正に取得される可能性を低くすることができる。なお、この場合でも、秘密情報が異なればクレデンシャルを異ならせる構成とすることができる。これは、例えば、クレデンシャルに秘密情報の識別情報を含めることで行われ得る。
【0024】
なお、本実施形態では、N個のシェアを数Nの異なるパーティに格納するものとした。しかしながら、例えば、1つのパーティが複数の異なる格納装置2を運用している場合等もあり得る。このような場合、1つのパーティに複数のシェアを格納する構成とすることもできる。言い換えると、N個のシェアを数Nより少ない数のパーティに格納する構成とし得る。なお、1つのパーティに複数のシェアを格納する場合において、クレデンシャルの内容をシェア毎に異ならせたい場合、情報項目#2については、当該パーティの識別情報と当該パーティに格納する複数のシェアに付与した番号とを結合した値としたり、情報項目#2を各シェアの識別情報としたりすることができる。
【0025】
さらに、本実施形態では、1つの秘密情報に基づき生成されたN個のシェアそれぞれに対応するN個のクレデンシャルを1つのイッシュワーが発行していた。しかしながら、N個のクレデンシャルを発行するイッシュワーを同じにする必要はなく、N個のクレデンシャルの内の少なくとも2つのクレデンシャルを発行するイッシュワーが異なっていても良い。さらに、本実施形態では、情報処理装置5のユーザと、イッシュワーが異なるものとしたが、ユーザがイッシュワーであっても良い。この場合、情報処理装置5は、生成装置3の機能を含み、生成装置3が行うものとして説明した処理は、情報処理装置5で実行される。
【0026】
また、
図4では、情報処理装置5が生成装置3に読出クレデンシャルの発行を依頼し、情報処理装置5は、生成装置3が生成した読出クレデンシャルを使用していた。しかしながら、
図2の処理で取得した格納クレデンシャルを情報処理装置5が格納しておき、シェアの読出処理においては、情報処理装置5が、格納している格納クレデンシャルに基づき読出クレデンシャルを生成する構成とすることもできる。或いは、情報処理装置5が、格納している格納クレデンシャルをそのまま読出クレデンシャルとして使用する構成とすることもできる。また、
図4の処理において、シェアの読み出しをパーティに依頼しても所定時間内に応答がない場合には別のパーティに読出しを依頼する構成とすることもできる。
【0027】
以上、シェアをパーティに格納する際に、格納クレデンシャルも送信し、パーティにおいては、格納クレデンシャルに関連付けてシェアを保存・格納する。そして、パーティからシェアを読み出す際には、読み出すシェアに関連付けられた読出クレデンシャルを当該パーティに提示する。当該パーティのサーバ1は、読出しが要求されているシェアに関連付けられた格納クレデンシャルと読出クレデンシャルとを比較することで、シェアの読み出しを依頼したものが当該シェアの正当な所有者であるかを検証する。例えば、サーバ1は、読出クレデンシャルが改竄されていないことを検証成功と判定するための条件の1つとし得る。また、サーバ1は、格納クレデンシャルに含まれる複数の情報項目の内の1つ以上の検証対象情報項目の内容が、提示された読出クレデンシャルに含まれる複数の情報項目の内の対応する情報項目の内容と一致することを、検証成功と判定するための条件の1つとし得る。さらに、サーバ1は、読出クレデンシャルに含まれる、読出クレデンシャルの発行タイミングが過去所定期間内であることを、検証成功と判定するための条件の1つとし得る。さらに、サーバ1は、検証成功と判定するための他の条件を使用し得る。そして、サーバ1は、検証成功と判定した場合に、格納装置2から当該シェアを読み出す。この構成により、M個のシェアが不正に取得されて秘密情報が復元されるリスクを抑えることができる。
【0028】
<第二実施形態>
続いて、第二実施形態について、第一実施形態との相違点を中心に説明する。本実施形態では、読出クレデンシャルに検証情報をさらに含め、検証情報も使用して検証を行う。本実施形態ではシュノアプロトコルをベースにした検証プロセスを記述するが、任意のゼロ知識証明を採用しても良い。また本実施形態の検証プロセスは対話型のゼロ知識証明を記述しているが、Fiat-Shamirヒューリスティック等による非対話型のゼロ知識証明に置き換えても良い。
【0029】
図5は、本実施形態によるシェアの読出処理のシーケンス図である。なお、第一実施形態の
図4で説明した様に、M個のパーティそれぞれに対する処理は同様であるため、
図5では、パーティ#1の格納装置2に格納されているシェア#1の読出処理のみを示している。情報処理装置5は、生成元gと、素数pと、秘密データwと、を保持している。情報処理装置5は、S30で、乱数rを生成し、生成元gと、素数pと、秘密データwと、乱数rと、に基づき2つの検証情報(コミットメント)cоm1及びcоm2を以下の様に生成する。なお、以下に説明する演算は、総て、素数pの剰余算である。
cоm1=g
w
cоm2=g
r
【0030】
S31において、情報処理装置5は、読出クレデンシャル#1の発行を依頼する第2発行依頼メッセージを生成装置3に送信する。第2発行依頼メッセージは、読み出すシェア#1又は読出しを依頼するパーティを特定する情報に加えて、生成元gと、素数pと、コミットメントcоm1及びcоm2と、を含む。
【0031】
第2発行依頼メッセージに応答して、生成装置3は、S32で、読出クレデンシャル#1を生成し、S33で、読出クレデンシャル#1を情報処理装置5に送信する。読出クレデンシャル#1は、
図3(B)に示す情報項目に加えて、情報項目#Bとして、生成元gと、素数pと、コミットメントcоm1及びcоm2と、を含む。
【0032】
情報処理装置5は、ユーザ操作により、S34で、パーティ#1のサーバ1に、送信依頼メッセージを送信する。パーティ#1への送信依頼メッセージは、シェア#1を特定する情報と、読出クレデンシャル#1と、を含む。パーティ#1のサーバ1は、送信依頼メッセージの受信に応答して、チャレンジデータcを例えばランダムに生成し、S35で、チャレンジデータcを情報処理装置5に送信する。情報処理装置5は、S36で、チャンレンジデータcと、素数pと、秘密データwと、乱数rと、に基づき証明情報(プルーフ)prを以下の様に生成し、S37でプルーフprをパーティ#1のサーバ#1に送信する。
pr=w+r*c
【0033】
パーティ#1のサーバ1は、S38で、第一実施形態で説明した読出クレデンシャルの検証に加えて、プルーフprに基づく検証も行う。以下、プルーフprに基づく検証について説明する。パーティ#1のサーバ1は、以下の2つの値を計算する。
v1=cоm1×cоm2c=gw*(gr)c=gw+r*c
v2=gpr=gw+r*c
【0034】
v1とv2が一致することは、コミットメントcоm1及びcоm2の生成に使用された秘密データw及び乱数rと、プルーフprの生成に使用された秘密データw及び乱数rが同じであることを意味する。つまり、v1とv2が一致することは、S34で読出クレデンシャル#1を含む送信依頼を行ったものが、当該読出クレデンシャル#1の正当な所有者であり、当該読出クレデンシャル#1が不正に取得されたものではないことを意味する。したがって、サーバ1は、v1とv2が一致することの検証を行うこと、つまり読み出しの依頼元がユーザ本人であることを知識認証することを、シェア取得可否の判定条件の1つとする。
【0035】
なお、本実施形態では、S31で素数pを生成装置3に送信し、読出クレデンシャルに素数pを含めたが、素数pがシステムにおいて予め決められた値である場合、S31で素数pを生成装置3に送信し、読出クレデンシャルに素数pを含める必要はない。
【0036】
また、本実施形態では、情報処理装置5が、生成元gと、素数pと、秘密データwと、乱数rと、に基づきS30でコミットメントcоm1及びcоm2を生成して生成装置3に送信していた。しかしながら、読出クレデンシャル#1の発行依頼に応答して、生成装置3が、生成元gと、素数pと、秘密データwと、乱数rと、に基づきコミットメントcоm1及びcоm2を生成し、生成元gと、素数pと、コミットメントcоm1及びcоm2を含む読出クレデンシャル#1をS33で情報処理装置5に送信する構成とすることができる。この場合、生成装置3は、S36でのプルーフprの生成に必要となる、コミットメントcоm1及びcоm2の生成に使用した秘密データw及び乱数rを、読出クレデンシャル#1と共に、或いは、読出クレデンシャル#1とは別に情報処理装置5に通知する。
【0037】
以上、本実施形態において、パーティは、コミットメントcоm1及びcоm2と、プルーフprと、に基づき読出クレデンシャルの正当性を検証する。この構成により、不正にシェアが取得されるリスクを抑えることができる。
【0038】
<情報処理装置5の構成>
上記各実施形態の情報処理装置5の機能ブロック図を
図6に示す。
図6に示す機能ブロックは、1つ以上のプロセッサと、1つ以上のメモリデバイスと、を備えたスマートフォン、タブレット、PC等の装置(デバイス)の前記1つ以上のプロセッサに適切なプログラムを実行させることで実現され得る。
【0039】
ユーザインタフェース部55は、ユーザインタフェースを提供する。通信部54は、送信部と受信部とを有し、ネットワーク4を介した通信処理を行う。生成部51は、格納部50に格納されている秘密情報に基づきN個のシェアを生成する。生成部51は、M個のシェアに基づき秘密情報を復元する機能も有する。取得部52は、例えば、生成装置3と通信してクレデンシャルの取得処理を行う。なお、情報処理装置5がクレデンシャルを発行する場合、取得部52は、クレデンシャルの発行機能を有する。依頼処理部53は、ユーザインタフェース部54を介するユーザ操作に基づき、パーティのサーバ1と通信してシェアの格納をパーティに依頼したり、シェアの送信をパーティに依頼したりする。
【0040】
<サーバ1の構成>
上記各実施形態のサーバ1の機能ブロック図を
図7に示す。
図7に示す機能ブロックは、1つ以上のプロセッサと、1つ以上のメモリデバイスと、を備えた装置の前記1つ以上のプロセッサに適切なプログラムを実行させることで実現され得る。なお、サーバ1は、1つのコンピュータで実現することも、相互に通信可能な複数のコンピュータで実現することもできる。
【0041】
通信部12は、送信部と受信部とを有し、ネットワーク4を介した通信処理を行う。処理部10は、格納依頼メッセージに応答して、格納依頼メッセージで受信したシェアを、格納依頼メッセージで受信した格納クレデンシャルに関連付けて格納装置2に格納する。また、処理部10は、シェアの送信依頼メッセージに応答して、検証部11に、送信依頼メッセージで受信した読出クレデンシャルの検証を行わせ、検証部11から検証結果を取得する。検証結果が検証成功である場合、処理部10は、格納装置2から読み出したシェアを送信依頼メッセージの送信元に送信する。
【0042】
検証部11は、シェアの読出クレデンシャルの検証を、当該シェアに関連付けられた格納クレデンシャルに基づき行う。なお、読出クレデンシャルにコミットメントcоm1及びcоm2等が含まれる場合、検証部11は、チャレンジデータcの送信や、チャレンジデータcの送信後に受信するプルーフprに基づく検証も行う。検証部11は、検証結果を処理部10に通知する。
【0043】
<生成装置3の構成>
上記各実施形態の生成装置3の機能ブロック図を
図8に示す。
図8に示す機能ブロックは、1つ以上のプロセッサと、1つ以上のメモリデバイスと、を備えた装置の前記1つ以上のプロセッサに適切なプログラムを実行させることで実現され得る。なお、生成装置3は、1つのコンピュータで実現することも、相互に通信可能な複数のコンピュータで実現することもできる。
【0044】
通信部31は、送信部と受信部とを有し、ネットワーク4を介した通信処理を行う。発行部30は、発行依頼メッセージに応答して、格納クレデンシャルや読出クレデンシャルを生成して、発行依頼メッセージの送信元に返送する。
【0045】
また、本発明によると、秘密情報を管理・保存する方法が提供される。当該方法は、上記の
図2、
図4及び
図5に示す方法により実現される。さらに、本発明によると、1つ以上のプロセッサを有するデバイスの当該1つ以上のプロセッサで実行されると、当該デバイスを上記情報処理装置5、サーバ1又は生成装置3として機能させるコンピュータプログラムや、当該コンピュータプログラムを格納したコンピュータが読み取り可能な、非一時的なコンピュータ可読記憶媒体が提供される。
【0046】
発明は上記の実施形態に制限されるものではなく、発明の要旨の範囲内で、種々の変形・変更が可能である。
【符号の説明】
【0047】
50:格納部、51:生成部、52:取得部、53:依頼処理部、54:通信部、55:ユーザインタフェース部