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

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

▶ 株式会社野村総合研究所の特許一覧

特開2023-8607検証可能なクレームを取得するユーザ装置、当該ユーザ装置を含むシステム及び検証可能なクレームを取得する方法
<>
  • 特開-検証可能なクレームを取得するユーザ装置、当該ユーザ装置を含むシステム及び検証可能なクレームを取得する方法 図1
  • 特開-検証可能なクレームを取得するユーザ装置、当該ユーザ装置を含むシステム及び検証可能なクレームを取得する方法 図2
  • 特開-検証可能なクレームを取得するユーザ装置、当該ユーザ装置を含むシステム及び検証可能なクレームを取得する方法 図3
  • 特開-検証可能なクレームを取得するユーザ装置、当該ユーザ装置を含むシステム及び検証可能なクレームを取得する方法 図4
  • 特開-検証可能なクレームを取得するユーザ装置、当該ユーザ装置を含むシステム及び検証可能なクレームを取得する方法 図5
  • 特開-検証可能なクレームを取得するユーザ装置、当該ユーザ装置を含むシステム及び検証可能なクレームを取得する方法 図6
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023008607
(43)【公開日】2023-01-19
(54)【発明の名称】検証可能なクレームを取得するユーザ装置、当該ユーザ装置を含むシステム及び検証可能なクレームを取得する方法
(51)【国際特許分類】
   H04L 9/08 20060101AFI20230112BHJP
   H04L 9/32 20060101ALI20230112BHJP
【FI】
H04L9/00 601A
H04L9/00 601F
H04L9/00 675B
【審査請求】未請求
【請求項の数】8
【出願形態】OL
(21)【出願番号】P 2021112290
(22)【出願日】2021-07-06
(71)【出願人】
【識別番号】000155469
【氏名又は名称】株式会社野村総合研究所
(74)【代理人】
【識別番号】110003281
【氏名又は名称】弁理士法人大塚国際特許事務所
(72)【発明者】
【氏名】吉村 慧
(72)【発明者】
【氏名】古川 英明
(72)【発明者】
【氏名】川口 将司
(57)【要約】
【課題】名寄せを行うことを難しくし、クレーム提出先の制限をなくし、かつ、ユーザ装置で保持する情報量を抑える技術を提供する。
【解決手段】ユーザ装置は、秘密情報を保持する保持手段と、生成元を生成する生成手段と、前記生成元と前記秘密情報とに基づき前記生成元に対応するコミットメントを求める演算手段と、前記生成元と前記生成元に対応するコミットメントとを含む取得要求を第1外部装置に送信することで、前記生成元と前記生成元に対応するコミットメントとを含む検証可能なクレーム(VC)を取得する取得手段と、を備え、前記取得手段が新しい前記VCを取得するために使用する前記生成元の値は、前記取得手段が過去に前記VCを取得するために使用した前記生成元の値とは異なる。
【選択図】図4
【特許請求の範囲】
【請求項1】
秘密情報を保持する保持手段と、
生成元を生成する生成手段と、
前記生成元と前記秘密情報とに基づき前記生成元に対応するコミットメントを求める演算手段と、
前記生成元と前記生成元に対応するコミットメントとを含む取得要求を第1外部装置に送信することで、前記生成元と前記生成元に対応するコミットメントとを含む検証可能なクレーム(VC)を取得する取得手段と、
を備え、
前記取得手段が新しい前記VCを取得するために使用する前記生成元の値は、前記取得手段が過去に前記VCを取得するために使用した前記生成元の値とは異なる、ユーザ装置。
【請求項2】
前記演算手段は、前記生成元の値と前記秘密情報に対応する値とを入力とするハッシュ関数の出力値を求め、当該出力値と当該生成元の値とに基づき当該生成元に対応するコミットメントを求める、請求項1に記載のユーザ装置。
【請求項3】
前記取得手段が取得した前記VCと共に当該VCのプルーフを第2外部装置に提示する提示手段をさらに備え、
前記VCのプルーフは、第1の値と第2の値とを含み、
前記演算手段は、前記提示手段が提示する前記VCに含まれる前記生成元と第3の値とに基づき前記第1の値を求め、前記第1の値のハッシュ値と、前記第3の値と、前記秘密情報に対応する値と、に基づき前記第2の値を求め、
前記演算手段は、前記提示手段が第1VCを前記第2外部装置に提示する場合において、前記提示手段が前記第1VCを前記第2外部装置に過去に提示していた場合、前記第1の値及び前記第2の値を求めるために使用する前記第3の値を、前記第1VCを前記第2外部装置に過去に提示した際に使用した前記第3の値とは異ならせる、請求項1又は2に記載のユーザ装置。
【請求項4】
ユーザ装置と、1つ以上の第1外部装置と、を含むシステムであって、
前記ユーザ装置は、
秘密情報を保持する保持手段と、
生成元を生成する生成手段と、
前記生成元と前記秘密情報とに基づき前記生成元に対応するコミットメントを求める演算手段と、
前記1つ以上の第1外部装置の内の少なくとも1つの第1外部装置に、1つ以上の生成元と前記1つ以上の生成元それぞれに対応するコミットメントとを含む取得要求を送信する第1送信手段と、
を備え、
前記1つ以上の第1外部装置は、
前記取得要求を受信したことに応答して、前記ユーザ装置に、受信した前記取得要求に含まれる前記1つ以上の生成元それぞれに対応する検証可能なクレーム(VC)を送信する第2送信手段であって、前記生成元に対応するVCは、当該生成元と、当該生成元に対応するコミットメントと、を含む、前記第2送信手段を、
備え、
前記第1送信手段が前記少なくとも1つの第1外部装置に送信する前記取得要求に含まれる前記1つ以上の生成元の値は互いに異なり、かつ、前記第1送信手段が過去に送信した前記取得要求に含まれていた前記1つ以上の生成元の値とは異なる、システム。
【請求項5】
1つ以上の第2外部装置をさらに備え、
前記ユーザ装置は、
前記少なくとも1つの第1外部装置に送信した前記取得要求の応答として取得したVCと共に、第1の値及び第2の値を含む当該VCのプル―プを前記1つ以上の第2外部装置の内の1つの第2外部装置に提示する提示手段をさらに備え、
前記1つ以上の第2外部装置は、
前記ユーザ装置から前記VCと共に前記VCのプルーフが提示された場合、前記VCに含まれる前記生成元及び前記コミットメントと、前記プルーフとに基づき、前記ユーザ装置のユーザが当該VCの所有者であるか否かを判定する判定手段を備え、
前記第1の値は、前記1つの第2外部装置に提示する前記VCに含まれる前記生成元と第3の値とに基づく値であり、前記第2の値は、前記第1の値のハッシュ値と、前記第3の値と、前記秘密情報に対応する値と、に基づく値である、請求項4に記載のシステム。
【請求項6】
ユーザ装置における方法であって、
第1外部装置に、1つ以上の生成元と前記1つ以上の生成元それぞれに対応するコミットメントとを含む取得要求を送信することであって、生成元に対応するコミットメントは、当該生成元と前記ユーザ装置が保持する秘密情報とに基づき生成されている、前記取得要求を送信することと、
前記取得要求を送信したことの応答として、前記第1外部装置から、前記1つ以上の生成元それぞれに対応する検証可能なクレーム(VC)を受信することであって、前記生成元に対応するVCは、当該生成元と、当該生成元に対応するコミットメントと、を含む、前記VCを受信することと、
を含み、
前記取得要求に含まれる前記1つ以上の生成元それぞれの値は互いに異なり、かつ、前記ユーザ装置が過去に送信した前記取得要求に含まれていた前記1つ以上の生成元の値とは異なる、方法。
【請求項7】
前記1つ以上の生成元それぞれに対応するVCの内の1つのVCと、当該1つのVCに対応するプルーフと、を第2外部装置に送信することをさらに含み、
前記1つのVCに対応するプルーフは、当該1つのVCに含まれる前記生成元及びランダム値に基づく第1の値と、前記第1の値のハッシュ値、前記ランダム値及び前記秘密情報に対応する値に基づく第2の値と、を含む、請求項6に記載の方法。
【請求項8】
ユーザ装置が、第1外部装置に、1つ以上の生成元と前記1つ以上の生成元それぞれに対応するコミットメントとを含む取得要求を送信することであって、生成元に対応するコミットメントは、当該生成元と前記ユーザ装置が保持する秘密情報とに基づき生成されている、前記取得要求を送信することと、
前記取得要求を受信したことに応答して、前記第1外部装置が、前記ユーザ装置に、前記1つ以上の生成元それぞれに対応する検証可能なクレーム(VC)を送信することであって、前記生成元に対応するVCは、当該生成元と、当該生成元に対応するコミットメントと、を含む、前記VCを送信することと、
前記ユーザ装置が、前記1つ以上の生成元それぞれに対応するVCの内の1つのVCと、当該1つのVCに対応するプルーフと、を第2外部装置に送信することと、
前記第2外部装置が、前記1つのVCに含まれる前記生成元及び前記コミットメントと、前記1つのVCに対応するプルーフとに基づき、前記ユーザ装置のユーザが当該1つのVCの所有者であるか否かを判定することと、を含み、
前記取得要求に含まれる前記1つ以上の生成元それぞれの値は互いに異なり、かつ、前記ユーザ装置が過去に送信した前記取得要求に含まれていた前記1つ以上の生成元の値とは異なり、
前記1つのVCに対応するプルーフは、当該1つのVCに含まれる前記生成元及びランダム値に基づく第1の値と、前記第1の値のハッシュ値、前記ランダム値及び前記秘密情報に対応する値に基づく第2の値と、を含む、方法。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、検証可能なクレーム(Verifiable Claims)に関する。
【背景技術】
【0002】
非特許文献1は、"検証可能なクレデンシャル"(Verifiable Credentials)を開示している。なお、検証可能なクレデンシャルは、検証可能なクレーム(VC)とも表記され得る。以下の説明では、検証可能なクレーム及び検証可能なクレデンシャルを単に"クレーム"と表記する。クレームは、その所有者の個人情報を含む。クレームに含められる個人情報の例は、当該クレームの所有者の生年月日、学歴、病歴、資産等であり得る。クレームは、例えば、自治体、学校、病院、銀行といった、当該クレームに含められる個人情報を保証できる機関(以下、CP(Claims Provider)が発行する。個人情報を確認する必要がある機関(以下、RP(Relying Party)に所有者が当該個人情報を含むクレームを提出することで、当該RPは、当該所有者が所定条件を満たしていることを確認できる。具体的には、例えば、RPは、当該所有者が、所定の年齢以上であることや、所定金額以上の資産を有していることを確認できる。
【0003】
なお、クレームは、例えば、当該クレームを発行するCPの秘密鍵で生成された署名を含む。RPは、当該クレームを発行したCPの公開鍵で提示されたクレームに含まれる署名を検証することで、提示されたクレームが当該CPによって発行されたことと、提示されたクレームの内容が改竄されていないことを確認できる。また、RPにクレームを提出したものが当該クレームの正当な所有者であるか否かをRPが判定するため、クレームには、分散型識別子(DID)が含められ得る。DIDは、所有者の一意な識別子であり、その値は所有者自身がアイデンティティプロバイダーになることで取得できる。CPは、クレームを発行する際、当該DIDの値を当該クレームに含める。これにより、クレームは当該DIDに関連付けられる。
【0004】
CPが保証できる個人情報はその内容に依存するため、個人情報の種別(年齢、学歴、資産等)毎に複数のCPが存在し得る。また、個人情報を確認する必要がある機関も様々であるため複数のRPが存在し得る。
【先行技術文献】
【非特許文献】
【0005】
【非特許文献1】"Verifiable Credentials Data Model 1.0"、[оnline]、2019年11月19日、W3C、[令和3年6月18日検索]、インターネット<URL:https://www.w3.org/TR/vc-data-model/>
【発明の概要】
【発明が解決しようとする課題】
【0006】
図1は、数N(ここで、Nは1以上の整数)のCP#1~CP#Nと、数M(ここで、Mは1以上の整数)のRP#1~#Mを示している。図1のユーザ装置は、クレームをCPから取得し、RPに提示するクレームの所有者(以下、ユーザと表記する)が使用する装置である。ユーザ装置は、例えば、スマートフォン、タブレット、パーソナルコンピュータ(PC)であり得る。ユーザ装置は、CP#n(nは1~Nまでの整数)からクレームVC#nを受け取り保存する。なお、クレームVC#1~VC#Nは、それぞれ、同じDIDに関連付けられているものとする。この場合、ユーザ装置は、同じDIDをRP#1~RP#Mとの間で使用する必要がある。
【0007】
しかしながら、総てのRPとの間で同じDIDを使用すると、所謂、"名寄せ"の問題が生じる。例えば、図1においてRP#2は、VC#2を受け取り、RP#Mは、VC#1及びVC#Nを受け取っている。ユーザが使用しているDIDがRPに拘わらず同一だとしたら、RP#2及びRP#Mが連携(結託)することで、RP#2及びRP#Mは、VC#1、VC#2及びVC#Nを提出したユーザが同じであると判定することができる。この様に、RP同士が連携してあるユーザからの様々なクレームを特定することで、RPが当該ユーザの様々な個人情報を不当に入手できてしまう。
【0008】
このため、図2に示す様にRP毎に異なるDIDを使用することが考えられる。以下の説明において、ユーザは、RP#m(mは1~Mまでの整数)に対しては値DID#mのDIDを使用するものとする。また、CP#nから取得するDID#mに関連付けられたクレームをVC#n(DID#m)と表記する。ユーザ装置は、CP#1から2つのVC#1(DID#1)及びVC#1(DID#M)を取得する。ユーザ装置は、VC#1(DID#1)についてはRP#1に提示し、VC#1(DID#M)についてはRP#Mに提示する。この様に、DIDの値をRP毎に異ならせることで、RP同士が連携しても同じユーザからのクレームを特定することが難しくなり、"名寄せ"の問題を抑えることができる。
【0009】
しかしながら、例えば、図2の状態で、ユーザがVC#2をRP#1に提出する場合、ユーザ装置は、まず、CP#2にVC#2(DID#1)の生成を依頼して、VC#2(DID#1)を取得する必要がある。予め総ての組み合わせ(つまり、N×M個)のクレームを取得しておくことも可能であるが、将来的に使用(RPに提示)するか否かが不明である多数のクレームを取得して保持・管理することは好ましくない。この様に、図2の構成において、クレームは、特定のRPにのみ提示できるものとなる。ユーザの利便性を考慮すると、取得するクレームは任意のRPに提出できるものであることが好ましい。
【0010】
このため、例えば、クレームにユーザの公開鍵を含める構成を考えることもできる。この場合、RPは、クレームが提示された際にチャレンジをユーザ装置に送信する。ユーザ装置は、クレームに含まれる公開鍵の対の秘密鍵でチャレンジに対する署名を生成してRPに送信する。RPは、当該署名をクレームに含まれる公開鍵で検証することでユーザが当該クレームの正当な所有者であるかを判定することができる。この構成により、取得するクレームは、特定のRPに紐づいたものではなくなる。
【0011】
しかしながら、この場合、ユーザは、クレームに含める公開鍵をそれぞれ異なるものとしなければならない。つまり、ユーザ装置は、それぞれのクレームに含めた公開鍵に対する秘密鍵を管理しなければならず、ユーザ装置で秘密に保持すべき情報量が多くなる。
【0012】
本発明は、名寄せを行うことを難しくし、クレーム提出先の制限をなくし、かつ、ユーザ装置で保持する情報量を抑える技術を提供するものである。
【課題を解決するための手段】
【0013】
本開示の一態様によると、ユーザ装置は、秘密情報を保持する保持手段と、生成元を生成する生成手段と、前記生成元と前記秘密情報とに基づき前記生成元に対応するコミットメントを求める演算手段と、前記生成元と前記生成元に対応するコミットメントとを含む取得要求を第1外部装置に送信することで、前記生成元と前記生成元に対応するコミットメントとを含む検証可能なクレーム(VC)を取得する取得手段と、を備え、前記取得手段が新しい前記VCを取得するために使用する前記生成元の値は、前記取得手段が過去に前記VCを取得するために使用した前記生成元の値とは異なる。
【発明の効果】
【0014】
本発明によると、名寄せを行うことを難しくし、クレーム提出先の制限をなくし、かつ、ユーザ装置で保持する情報量を抑えることができる。
【図面の簡単な説明】
【0015】
図1】各RPに同じDIDを使用する場合の説明図。
図2】RP毎に異なるDIDを使用する場合の説明図。
図3】一実施形態によるシステムの構成図。
図4】一実施形態によるクレーム取得処理のシーケンス図。
図5】一実施形態によるクレーム提示処理のシーケンス図。
図6】一実施形態によるユーザ装置の機能ブロック図。
【発明を実施するための形態】
【0016】
以下、添付図面を参照して実施形態を詳しく説明する。なお、以下の実施形態は特許請求の範囲に係る発明を限定するものではなく、また実施形態で説明されている特徴の組み合わせの全てが発明に必須のものとは限らない。実施形態で説明されている複数の特徴のうち二つ以上の特徴が任意に組み合わされてもよい。また、同一若しくは同様の構成には同一の参照番号を付し、重複した説明は省略する。
【0017】
<第一実施形態>
図3は、本実施形態によるシステムの構成図である。ユーザ装置1、複数のCP2及び複数のRP3は、ネットワーク4に接続される。ユーザ装置1は、複数のCP2及び複数のRP3と、ネットワーク4を介して通信可能な様に構成される。図1において、CP2の数はN(Nは1以上の整数)であり、RP3の数はM(Mは1以上の整数)である。なお、以下の説明において個々のCP2を区別する場合には、CP#n(nは1からNまでの整数)と表記し、個々のRP3を区別する場合には、RP#m(mは1からMまでの整数)と表記する。ユーザ装置1は、そのユーザの操作に応じてCP2からクレームを取得して保存する。また、ユーザ装置1は、そのユーザの操作に応じて保存しているクレームをRP3に提示する。図3において、CP2とRP3との組み合わせ数はN×Mであり、以下の説明では、一例として、ユーザ装置1がN×M個のクレームを事前に取得するものとする。なお、ユーザ装置は、各CP3からM個のクレームを取得する。
【0018】
図4は、クレーム取得処理のシーケンス図である。ユーザ装置1は、秘密情報wを保持している(S10)。S11において、ユーザ装置1は、素数pを生成する。なお、以下の説明における総ての演算は、素数pの剰余演算であるが、説明を簡略化するため、剰余演算であること、つまり、"mоd p"との表記(合同式)については省略する。また、本開示では離散対数問題に依る実装を示すが、楕円曲線上の離散対数問題など、異なる困難性に依る実装も、装置の役割を置き換えることなく可能であることは、当業者には理解されるところである。S12において、ユーザ装置1は、取得するクレームの数と同じN×M個の生成元gnmを生成する。なお、総ての生成元gnmの値は異なる。生成元gnmは規則性が無い様に、例えば、ランダムに生成され得る。また、ユーザ装置1は、過去に用いた生成元を記録し、重複のないよう選択してもよい。S13で、ユーザ装置は、生成元gnmの値と秘密情報wに対応する値とに基づきコミットメントcоmnm=gnm を生成する。
【0019】
ユーザ装置1は、S14で、素数p、生成元g11~g1M及びコメットメントcоm11~cоm1Mを含むクレーム生成要求をCP#1に送信する。CP#1は、クレーム生成要求に応答してVC#11~VC#1Mの計M個のクレームを生成する。クレームVC#1mは、CP#1が保証するユーザの個人情報に加えて、素数pと、生成元g1mと、コミットメントcоm1mと、を含む。また、クレームVC#1mは、CP#1の秘密鍵で生成された署名も含み得る。CP#1は、S15で、生成したクレームVC#11~VC#1Mをユーザ装置1に送信する。ユーザ装置1は、受信したクレームVC#11~VC#1Mを保存する。
【0020】
ユーザ装置1は、S16で、クレーム生成要求をCP#2に送信する。このクレーム生成要求は、素数p、生成元g21~g2M及びコメットメントcоm21~cоm2Mを含む。CP#2は、クレーム生成要求に応答してVC#21~VC#2Mの計M個のクレームを生成する。クレームVC#2mは、CP#2が保証するユーザの個人情報に加えて、素数pと、生成元g2mと、コミットメントcоm2mと、を含む。また、クレームVC#2mは、CP#2の秘密鍵で生成された署名も含み得る。CP#2は、S17で、生成したクレームVC#21~VC#2Mをユーザ装置1に送信する。ユーザ装置1は、受信したクレームVC#21~VC#2Mを保存する。以下同様に、ユーザ装置1は、各CPにクレーム生成要求を送信し、M個のクレームを取得することを繰り返す。したがって、ユーザ装置1は、S19の終了時点において、N×M個のクレームを取得する。
【0021】
なお、図4のS13までの処理は、クレームを取得する際ではなく、クレームを取得する前の任意のタイミングで行うことができる。この場合、生成した値については、ユーザ装置1に保存しておく。
【0022】
続いて、ユーザ装置1がRP#mにCP#nから取得したクレームVC#nmを提示する際の処理について図5を用いて説明する。ユーザ装置1は、S20で値rを生成する。例えば、ユーザ装置1は、値rをランダムに生成することができる。値rはRP#mに対して過去に用いたことのない値を選ぶことが望ましいため、ユーザ装置1は、用いた値rを記録しておき、重複のないよう選択してもよい。以下では値rをランダム値rとも表記する。続いて、ユーザ装置1は、S21で、ランダム値rに基づきプルーフを求める。プルーフは、値x及び値cを含む。値xは、x=gnm で求められ、値cは、c=r-w*Hash(x)で求められる。なお、Hash(・)は、ランダムオラクルが仮定される任意のハッシュ関数である。ユーザ装置1は、S22で、クレームVC#nmと共に、プルーフ、つまり、値x及び値cをRP#mに通知する。なお、上述した様に、VC#nmには、cоmnm、gnm及びpが含まれている。
【0023】
S23において、RP#mは、Z=gnm *cоmnm Hash(x)を計算する。なお、S23で使用するハッシュ関数は、S21で使用するハッシュ関数と同じである。例えば、S21及びS23で使用するハッシュ関数は、ユーザ装置1又はRP#mのどちらかが決定して任意の方法で他方に通知する。RP#mは、S24においてZとxを比較する。ここで、c=r-w*Hash(x)であり、cоmnm=gnm であるため、
Z=gnm *cоmnm Hash(x)
=gnm r-w*Hash(x)*gnm w*Hash(x)
=gnm
=x
となる。
【0024】
つまり、Z=xになることは、cоmnmの生成に使用された秘密情報wと、値cの計算に使用された秘密情報wが同じであることを意味する。したがって、Z=xにする値cを含むプルーフを提出したものと、cоmnmをCP#nに提示してクレームを取得したものが同一であると判定できる。したがって、Z=xであると、RP#mは、S25において、クレームVC#nmが正当な所有者によって提示されたものと判定する。一方、Z≠xの場合、ユーザ装置1は、S25において、クレームVC#nmが正当ではない所有者によって提示されたものと判定する。なお、図5の処理においてS21までの処理は、クレームを提示する際ではなく、クレームを提示する前の任意のタイミングで行うことができる。この場合、生成した値については、ユーザ装置1に保存しておく。
【0025】
なお、上記説明では、理解を容易にするため、RP#mにCP#nから取得したクレームを提示する際、ユーザ装置1は、CP#nから取得したM個のクレームの内のVC#nmを提示するとしていた。しかしながら、これは、ユーザ装置1がCP#nから取得したVC#n1~VC#nMの計M個のクレームそれぞれがRP#1~RP#Mに1対1で対応しており、提示先のRP3が決まれば、それに応じて当該RP3に提示するクレームがM個のクレームの内の特定の1つに限定されることを意味するものではない。
【0026】
例えば、ユーザ装置1は、CP#1からVC#11~VC#1Mの計M個のクレームを取得している。ユーザ装置1が、RP#1にCP#1から取得したクレームを提示する場合、ユーザ装置1は、VC#11~VC#1Mの内の任意の1つを選択することができる。つまり、ユーザ装置1は、CP#1に対して、VC#11ではなく、VC#12やVC#1Mを提示することができる。これは、本実施形態のクレームはDIDに関連付けられておらず、クレームに含まれるコミットメントcоmに関連付けられ、コミットメントcоmと、プルーフ(x及びc)とによる、Fiat-Shamir Heuristicを適用したSchnorrプロトコル、すなわち非対話型ゼロ知識証明(NIZK)により正当な所有者であるか否かを判定するためである。つまり、本実施形態において、あるCP2から取得した複数のクレームの提示先は固定的ではない。
【0027】
別の言い方をすると、背景技術で述べた様に、RP3毎に異なるDIDを使用し、クレームをDIDに関連付ける場合、発行されるクレームの提示先は固定的となる。例えば、RP#1との間で使用しているDIDに関連付けられたクレームは、RP#1にしか提示できないものとなる。つまり、RP3毎に異なるDIDを使用し、クレームをDIDに関連付けると、クレームの取得処理は、ある特定のRP3に対するクレームの提示処理のための処理になるとの関係を有することになる。一方、本実施形態では、クレームの取得処理とクレームの提示処理は独立しており、取得するクレームは特定のRP3に関連付けられない。例えば、RP#1に提示するつもりで取得したクレームをRP#1以外のRP3に提示することもできる。
【0028】
したがって、本実施形態の様にクレームを生成することで、特定のRP3のみに提示できるクレームを予め取得して保持し、結果として使用しないといった無駄が生じることを防ぐことができる。さらに、クレームの取得処理とクレームの提示処理を独立したものとできる。また、RP3に認証のために提示する情報は、それぞれが異なる値の生成元gと、ランダム値rと、に基づき生成された値であるため、RP3同士が連携しても名寄せを行うことは難しい。さらに、ユーザ装置1が秘密として保持すべき情報は秘密情報wのみと、その情報量は少ない。
【0029】
また、上記説明において、ユーザ装置1は、N×Mのクレームを事前に取得していたが例示であり、ユーザ装置1が各CP2から事前に取得するクレームの数は任意である。例えば、ユーザ装置1は、各CP2が保証する個人情報の提出先の数(又は予想数)に応じて、各CP2から事前に取得するクレームの数を決定することができる。限定しない具体的な例として、ユーザ装置1は、CP#1からの3つのクレームと、CP#2からの2つのクレームの計5つのクレームを事前に取得することができる。また、その後、必要に応じて、ユーザ装置1は、各CP2から任意の数のクレームの事前取得を行うことができる。但し、事前取得処理を複数回行う場合でも、取得する総てのクレームそれぞれに含める生成元gの値については異ならせる。なお、クレームに含まれるコミットメントcоmの値は、同じクレームに含まれる生成元gの値に応じたものとなる。
【0030】
なお、あるクレームをあるRP3に過去に提示していた場合、図5のS20で生成するランダム値rについては、過去に使用した値とは異なる様にユーザ装置1は制御する。これはランダム値rが同じであるとプルーフの値も同じとなり成り済ましが可能となるからである。このため、ユーザ装置1は、S20で生成したランダム値rが、過去に同じクレームを同じRP3に提示する際に使用したものと同じであれば、過去に使用した値とは異なる値が生成されるまでランダム値rの生成を繰り返す。また、RP3も、過去に提示されたのと同じクレームが提示された際、提示されたプルーフの値が、過去に提示されたものと同じである場合には認証を拒否する様に構成される。
【0031】
また、RP3は、過去に提示されたのと同じクレームが、同じプルーフと共に提示された場合でも認証を拒否するのではなくユーザ装置1に疑義を通知する構成とすることもできる。この場合、ユーザ装置1は、過去に使用したランダム値rを管理する必要はなく、RP3から疑義を唱えられたときに、異なるランダム値rを選択して、プルーフの計算(図5のS21)と、プルーフの通知(図5のS22)を再度行う。こうした疑義は、RP3が、同一のVC#nmに関して、過去に同じ値xを受け取って証明されたことがある場合に唱えられうる。
【0032】
また、RP3がチャレンジの値chalをユーザ装置1に通知する対話型ゼロ知識証明の手順を、S22~S25の処理に代えて、或いは、S22~S25の処理に追加して実装する構成とすることもできる。この場合、ユーザ装置1は、c´=r-w*chalをRP3に通知する。そして、RP3は、xとZ=gnm c´*cоmnm chalとを比較することで認証を行う。
【0033】
<第二実施形態>
続いて、第二実施形態について第一実施形態との相違点を中心に説明する。第一実施形態において、ユーザ装置1は、コミットメントcоmnmをcоmnm=gnm として生成していた。つまり、総てのコメントメントの生成に同じ秘密情報wに対応する値を使用していた。本実施形態では、コミットメントcоmnmを生成するために、ユーザ装置1は、まず、秘密情報wに基づき派生秘密情報w#nmを、w#nm=Hash(w;gnm)として求める。なお、このハッシュ関数は、図5の処理で使用するハッシュ関数とは異なり得る。そして、ユーザ装置1は、コミットメントcоmnmをcоmnm=gnm w#nmで求める。したがって、ユーザ装置1は、図5の値cの計算においても秘密情報wの代わりに派生秘密情報w#nmを使用する。生成元gnmの値は総て異なるため、派生秘密情報w#nmの値も異なる。これにより、秘密情報wの値を乱雑にし、名寄せを行うことをより難しくすることができる。
【0034】
<ユーザ装置の構成>
上記各実施形態のユーザ装置1の機能ブロック図を図6に示す。図6に示す機能ブロックは、1つ以上のプロセッサと、1つ以上のメモリデバイスと、を備えたスマートフォン、タブレット、PC等の装置(デバイス)の前記1つ以上のプロセッサに適切なプログラムを実行させることで実現され得る。
【0035】
生成元管理部10は、生成元gを生成する。なお、生成元管理部10は過去に生成してクレームに使用した生成元gの値を保持しており、新たに生成元gを生成する場合、過去に使用した生成元gと同じ値の生成元gを生成しない様に管理する。また、生成元gの生成に規則性が生じない様に、生成元管理部10は、例えば、ランダムに生成元gを生成する。例えば、生成元管理部10は、ランダムな値を生成し、その値が過去にクレームに使用した値と同じであるか否かを判定する。生成した値が過去にクレームに使用した値と同じではない場合、生成元管理部10は、生成した値を新たな生成元gとする。一方、生成した値が過去にクレームに使用した値と同じである場合、生成元管理部10は、過去にクレームに使用した値とは異なる値を選択する。
【0036】
ランダム値管理部11は、クレームをRP3に提示する際に使用するランダム値rを生成する(図5のS20)。一例において、ランダム値管理部11は、クレームをRP3に提示する際に使用したランダム値rの値を管理・保持する。そして、当該クレームをRP3に提示する際、ランダム値管理部11は、過去に当該クレームを当該RP3に提示する際に使用したランダム値rを使用しない様にランダム値rの生成を管理する。なお、上述した様に、ランダム値管理部11は、RP3からプルーフに対する疑義が通知された場合に、ランダム値rを再生成する構成とすることもできる。素数管理部12は、素数pを生成して保持する。
【0037】
クレーム取得部13は、各CP2にクレームを要求して当該クレームを取得する処理を行う。上述した様に、クレームを取得する際、クレーム取得部12は、素数p、生成元g及びコミットメントcоmをCP2に通知する。
【0038】
秘密情報保持部14は、秘密情報wを保持し、クレーム保持部15は、CP2から取得したクレームをメモリデバイスに保存する。なお、クレームそのものは、ユーザ装置1の内部のメモリデバイスに保存する構成のみならず、ユーザ装置1の外部の装置のメモリデバイスに保存する構成とすることもできる。外部の装置は、ユーザ装置1に接続可能な周辺機器であり得る。また、外部の装置は、ユーザ装置1とネットワーク4を介して通信できる装置であり得る。つまり、クレーム保持部15は、ユーザ装置1の内部又は外部の記憶装置にクレームを保存する。
【0039】
クレーム提示部16は、RP3にクレームを提示する。上述した様に、クレーム提示部15は、クレームと共にプルーフ(x、c)をRP3に提示する。
【0040】
演算部17は、コミットメントcоmの計算や、値x及び値cの計算を行う。また、第二実施形態の場合、演算部17は、秘密情報w及び生成元gに基づき派生秘密情報の生成も行う。通信部18は、ネットワーク4を介するCP2やRP3との通信処理を行う。
【0041】
なお、本発明によるユーザ装置1は、1つ以上のプロセッサを有するデバイスの当該1つ以上のプロセッサで実行されると、当該デバイスを上記ユーザ装置1として動作させるプログラムにより実現することができる。これらコンピュータプログラムは、コンピュータが読み取り可能な記憶媒体に記憶されて、又は、ネットワーク経由で配布が可能なものである。
【0042】
また、上記実施形態では、ユーザ装置1が、CP2、RP3とは独立した装置(例えば、スマートフォンやパーソナルコンピュータにインストールされるアプリケーションとしてユーザ装置1の機能を実装)である場合を例にして説明をしていた。しかしながら、ユーザ装置1の機能の一部をCP2又はRP3に配置した構成とすることもできる。例えば、CP2がウェブアプリケーションサーバを含むシステムとして実装されている場合には、ユーザ装置1の機能も全てCP2側にて実装し、このCP2側に実装されたユーザ装置1の機能のプロセスと、本来CP2が実装している機能のプロセスとを独立にアクセス不可の状態で実行し、ユーザ装置1の情報及び生成された情報をユーザ別の情報としてCP2が保管する構成であってもよい。なお、一部の機能をユーザ側に残存させる場合には、ウェブブラウザのブラグインにして実装することが可能である。
【0043】
発明は上記の実施形態に制限されるものではなく、発明の要旨の範囲内で、種々の変形・変更が可能である。
【符号の説明】
【0044】
14:秘密情報保持部、10:生成元管理部、17:演算部、13:クレーム取得部
図1
図2
図3
図4
図5
図6