(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024131725
(43)【公開日】2024-09-30
(54)【発明の名称】装置、データ管理システム、方法、及び、プログラム
(51)【国際特許分類】
G06F 21/60 20130101AFI20240920BHJP
G09C 1/00 20060101ALI20240920BHJP
G06F 21/62 20130101ALI20240920BHJP
G06F 16/22 20190101ALI20240920BHJP
【FI】
G06F21/60 320
G09C1/00 660D
G06F21/62 318
G06F16/22
【審査請求】未請求
【請求項の数】15
【出願形態】OL
(21)【出願番号】P 2023042158
(22)【出願日】2023-03-16
(71)【出願人】
【識別番号】000005108
【氏名又は名称】株式会社日立製作所
(74)【代理人】
【識別番号】110000279
【氏名又は名称】弁理士法人ウィルフォート国際特許事務所
(72)【発明者】
【氏名】安村 慶子
(72)【発明者】
【氏名】藤尾 正和
(72)【発明者】
【氏名】中村 渉
(72)【発明者】
【氏名】高橋 健太
【テーマコード(参考)】
5B175
【Fターム(参考)】
5B175BA01
5B175GB02
(57)【要約】
【課題】 ユーザに発行された発行データを保護しつつ、発行データをユーザが容易に利活用出来ることを、本開示の目的とする。
【解決手段】 インデックス処理部124は、発行データ171に含まれる情報をインデックス181に登録することにより、インデックス181を更新する。暗号化部126は、発行データ171を暗号化して暗号化発行データ172にするとともに、更新されたインデックス181(182)を暗号化して暗号化インデックス183にする。復号化部127は、検証のための提示データ174を用意する際に、暗号化インデックス183を復号化して復号化済みインデックス184にする。検索部125は、復号化済みインデックス184に登録された情報を検索し、提示データ174を用意するために用いる暗号化発行データ172を選択する。復号化部127は、選択された暗号化発行データ172を復号化して復号化済み発行データ173にする。
【選択図】
図1
【特許請求の範囲】
【請求項1】
装置であって、
前記装置は、インデックス処理部と暗号化部と復号化部と検索部を備えるものであり、
前記インデックス処理部は、発行された発行データに含まれる情報をインデックスに登録することにより、前記インデックスを更新するものであり、
前記暗号化部は、前記発行データを暗号化して、暗号化発行データにするとともに、前記インデックス処理部が更新した前記インデックスを暗号化して、暗号化インデックスにするものであり、
前記復号化部は、検証のために提示する提示データを用意する際に、前記暗号化インデックスを復号化して、復号化済みインデックスにするものであり、
前記検索部は、前記復号化済みインデックスに登録された情報を検索し、前記提示データを用意するために用いる前記暗号化発行データを選択するものであり、
前記復号化部は、前記検索部が選択した前記暗号化発行データを復号化して、復号化済み発行データにするものである、装置。
【請求項2】
請求項1に記載された装置であって、
前記インデックス処理部は、登録情報選択受付制御部を有するものであり、
前記登録情報選択受付制御部は、前記インデックスに登録する情報の選択を示す入力を受け付けるように制御するものである、装置。
【請求項3】
請求項2に記載された装置であって、
前記インデックス処理部は、発行データ情報表示制御部を有するものであり、
前記発行データ情報表示制御部は、前記発行データに含まれる情報のうちの、前記インデックスに登録する情報の候補を表示するように制御するものである、装置。
【請求項4】
請求項3に記載された装置であって、
前記インデックス処理部は、登録情報事前選択部を有するものであり、
前記登録情報事前選択部は、前記発行データに含まれる情報のうちの、前記インデックスに登録する情報として推奨される情報を特定するものであり、
前記登録情報事前選択部は、前記インデックスに登録する情報として、前記特定した情報を選択するように促す表示をするように、前記発行データ情報表示制御部に指示するか、または、前記インデックスに登録する情報として、前記特定した情報を事前に選択した状態とするように、前記登録情報選択受付制御部に指示するものであり、
前記登録情報選択受付制御部は、前記特定した情報を事前に選択した状態としていても、前記特定した情報の一部または全部の選択を取り消す入力を受け付けるように制御を行うことが出来るものである、装置。
【請求項5】
請求項1に記載された装置であって、
前記インデックス処理部は、登録情報自動抽出部を有するものであり、
前記登録情報自動抽出部は、所定の規則に基づいて、前記発行データから前記インデックスに登録する情報を抽出するものである、装置。
【請求項6】
請求項1に記載された装置であって、
前記検索部は、発行データ選択受付制御部を有するものであり、
前記発行データ選択受付制御部は、前記暗号化発行データの選択を示す入力を受け付けるように制御するものである、装置。
【請求項7】
請求項6に記載された装置であって、
前記検索部は、検索条件候補表示制御部と検索条件選択受付制御部と検索条件指定部と検索条件合致情報特定部と検索結果表示制御部を有するものであり、
前記検索条件候補表示制御部は、前記復号化済みインデックスに登録された情報を検索する際の条件である検索条件として選択可能な候補を表示するように制御するものであり、
前記検索条件選択受付制御部は、前記検索条件候補表示制御部により表示するように制御された前記検索条件として選択可能な候補のなかから選択する態様で、前記検索条件を示す入力を受け付けるように制御するものであり、
前記検索条件指定部は、前記検索条件選択受付制御部による制御に基づいて受け付けた前記検索条件を示す入力に従って、前記検索条件を指定するものであり、
前記検索条件合致情報特定部は、前記暗号化発行データ毎に前記復号化済みインデックスに登録された情報のうち、前記検索条件指定部が指定した前記検索条件に合致する情報に対応する前記暗号化発行データを特定するものであり、
前記検索結果表示制御部は、前記検索条件合致情報特定部が特定した前記暗号化発行データに対応する情報を表示するように制御するものであり、
前記発行データ選択受付制御部は、前記検索結果表示制御部が表示するように制御した情報に対応する前記暗号化発行データのなかから選択する態様で、前記暗号化発行データの選択を示す入力を受け付けるように制御するものである、装置。
【請求項8】
請求項7に記載された装置であって、
前記検索部は、提示要求内容表示制御部を有するものであり、
前記提示要求内容表示制御部は、前記提示データに含まれるべき情報を示すものを表示するように制御するものである、装置。
【請求項9】
請求項6に記載された装置であって、
前記検索部は、検索条件自動指定部と検索条件合致情報特定部と検索結果表示制御部を有するものであり、
前記検索条件自動指定部は、前記提示データに含まれるべき情報に基づいて、前記復号化済みインデックスに登録された情報を検索する際の条件である検索条件を指定するものであり、
前記検索条件合致情報特定部は、前記暗号化発行データ毎に前記復号化済みインデックスに登録された情報のうち、前記検索条件自動指定部が指定した前記検索条件に合致する情報に対応する前記暗号化発行データを特定するものであり、
前記検索結果表示制御部は、前記検索条件合致情報特定部が特定した前記暗号化発行データに対応する情報を表示するように制御するものであり、
前記発行データ選択受付制御部は、前記検索結果表示制御部が表示するように制御した情報に対応する前記暗号化発行データのなかから選択する態様で、前記暗号化発行データの選択を示す入力を受け付けるように制御するものである、装置。
【請求項10】
請求項1に記載された装置であって、
前記検索部は、検索条件候補表示制御部と検索条件選択受付制御部と検索条件指定部と検索条件合致情報特定部と発行データ自動選択部を有するものであり、
前記検索条件候補表示制御部は、前記復号化済みインデックスに登録された情報を検索する際の条件である検索条件として選択可能な候補を表示するように制御するものであり、
前記検索条件選択受付制御部は、前記検索条件候補表示制御部により表示するように制御された前記検索条件として選択可能な候補のなかから選択する態様で、前記検索条件を示す入力を受け付けるように制御するものであり、
前記検索条件指定部は、前記検索条件選択受付制御部による制御に基づいて受け付けた前記検索条件を示す入力に従って、前記検索条件を指定するものであり、
前記検索条件合致情報特定部は、前記暗号化発行データ毎に前記復号化済みインデックスに登録された情報のうち、前記検索条件指定部が指定した前記検索条件に合致する情報に対応する前記暗号化発行データを特定するものであり、
前記発行データ自動選択部は、前記検索条件合致情報特定部が特定した前記暗号化発行データから、1つまたは複数の前記暗号化発行データを選択するものであり、当該選択された1つまたは複数の前記暗号化発行データに含まれる情報により、前記提示データに含まれるべき情報を提供可能であるようにされる、装置。
【請求項11】
請求項1に記載された装置において、
前記検索部は、検索条件自動指定部と検索条件合致情報特定部と発行データ自動選択部を有するものであり、
前記検索条件自動指定部は、前記提示データに含まれるべき情報に基づいて、前記復号化済みインデックスに登録された情報を検索する際の検索条件を指定するものであり、
前記検索条件合致情報特定部は、前記暗号化発行データ毎に前記復号化済みインデックスに登録された情報のうち、前記検索条件自動指定部が指定した前記検索条件に合致する情報に対応する前記暗号化発行データを特定するものであり、
前記発行データ自動選択部は、前記検索条件合致情報特定部が特定した前記暗号化発行データから、1つまたは複数の前記暗号化発行データを選択するものであり、当該選択された1つまたは複数の前記暗号化発行データに含まれる情報により、前記提示データに含まれるべき情報を提供可能であるようにされる、装置。
【請求項12】
データ管理システムであって、
前記データ管理システムは、請求項1乃至11のいずれかに記載の装置であって1つまたは複数の装置と、前記発行データを発行する1つまたは複数の発行者装置と、前記提示データを受け付けて検証を行う1つまたは複数の検証者装置を備えるものであり、
請求項1乃至11のいずれかに記載の装置と前記発行者装置は相互通信可能であり、
請求項1乃至11のいずれかに記載の装置と前記検証者装置は相互通信可能である、データ管理システム。
【請求項13】
請求項12に記載のデータ管理システムであって、
前記データ管理システムは、前記データ管理システムを利用する者毎に、ウォレットを備えることが出来るものであり、
前記ウォレットは、当該ウォレットに対応付けられる者のための前記暗号化インデックスを記憶するものであり、
前記ウォレットは、前記発行者装置のそれぞれから当該ウォレットに対応付けられる者のために発行された前記発行データのそれぞれを個別に暗号化した前記暗号化発行データを記憶するものであり、
前記ウォレットは、当該ウォレットに対応付けられる者が取り扱う装置、または、当該ウォレットに対応付けられる者が取り扱う装置と相互通信可能な装置のいずれかに保持されるものである、データ管理システム。
【請求項14】
発行された発行データに含まれる情報をインデックスに登録することにより、前記インデックスを更新するインデックス処理ステップと、
前記発行データを暗号化して、暗号化発行データにするとともに、前記インデックス処理ステップにより更新された前記インデックスを暗号化して、暗号化インデックスにする暗号化ステップと、
検証のために提示する提示データを用意する際に、前記暗号化インデックスを復号化して、復号化済みインデックスにするインデックス復号化ステップと、
前記復号化済みインデックスに登録された情報を検索し、前記提示データを用意するために用いる前記暗号化発行データを選択する検索ステップと、
前記検索ステップにより選択された前記暗号化発行データを復号化して、復号化済み発行データにする発行データ復号化ステップを有する、
コンピュータが実行する方法。
【請求項15】
コンピュータに、
発行された発行データに含まれる情報をインデックスに登録することにより、前記インデックスを更新するインデックス処理ステップと、
前記発行データを暗号化して、暗号化発行データにするとともに、前記インデックス処理ステップにより更新された前記インデックスを暗号化して、暗号化インデックスにする暗号化ステップと、
検証のために提示する提示データを用意する際に、前記暗号化インデックスを復号化して、復号化済みインデックスにするインデックス復号化ステップと、
前記復号化済みインデックスに登録された情報を検索し、前記提示データを用意するために用いる前記暗号化発行データを選択する検索ステップと、
前記検索ステップにより選択された前記暗号化発行データを復号化して、復号化済み発行データにする発行データ復号化ステップを実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、発行データを管理して、当該発行データから、検証のための提示データを用意するための装置、データ管理システム、方法及びプログラムに関するものである。
【背景技術】
【0002】
プラットフォーマー等の他者を介さずにユーザが自身の属性や個人情報(発行データ)を主権的に管理する自己主権型アイデンティティ(SSI:Self-Sovereign Identity)が知られている。SSIでは、発行者から発行された発行データと、発行データの内容を証明するデータをユーザ(保持者)が管理し、ユーザは必要に応じて発行データと発行データの内容を証明するデータを第三者である検証者に提示し、検証者から検証を受ける。
非特許文献1は、SSIの実装例を示す。非特許文献1では、発行者はユーザに関する発行データに発行者自身の秘密鍵で電子署名を付与して作成したVerifiable Credential(VC、検証可能な証明書)をユーザに発行する。ユーザはVC(に基づく提示データ)にユーザ自身の秘密鍵で電子署名を付与して作成したVerifiable Presentation(VP、検証可能なプレゼンテーション)を検証者に提示する。検証者は、VPや、VPに含まれるVC(に基づく提示データ)の各電子署名を、各電子署名に対応する公開鍵で検証する。
【先行技術文献】
【非特許文献】
【0003】
【非特許文献1】W3C,"Verifiable Credentials Data Model v1.1",[online], 2022年3月3日, w3.org, [2023年2月18日検索], インターネット<URL : https://www.w3.org/TR/2022/REC-vc-data-model-20220303/>
【発明の概要】
【発明が解決しようとする課題】
【0004】
SSIでは、発行データの内容を第三者に知られないことに関して問題や課題がある。SSIでは、発行データをユーザ自身が管理する。発行データの管理手法としては、ユーザが所有する個人デバイス(例.スマートフォン)での管理、または、クラウド等のストレージでの管理が考えられる。しかしながら、個人デバイスについては、個人デバイスの紛失または盗難時に個人デバイスから発行データが漏洩して悪用される恐れがある。一方、ストレージについては、ストレージに格納した発行データがストレージから漏洩して悪用される恐れに加えて、発行データをストレージ管理者が悪用する恐れがある。このように、発行データを、情報漏洩や他者による悪用から保護する必要がある。
以上を踏まえて、ユーザのために発行された発行データの内容を第三者に知られないように保護しつつ、当該保護のための措置を行ったとしても、発行データのユーザによる利活用を円滑に行えるようにすることを、本開示の目的とする。
【課題を解決するための手段及び発明の効果】
【0005】
上記目的を達成するために、本開示が備えうる特徴、及び、当該特徴に対応する作用効果は、例えば次のとおりである。
本開示の装置はインデックス処理部と暗号化部と復号化部と検索部を備える。インデックス処理部は、発行された発行データに含まれる情報をインデックスに登録することによりインデックスを更新する。暗号化部は、発行データを暗号化して暗号化発行データにするとともに、インデックス処理部が更新したインデックスを暗号化して暗号化インデックスにする。復号化部は、検証のために提示する提示データを用意する際に、暗号化インデックスを復号化して復号化済みインデックスにする。検索部は、復号化済みインデックスに登録された情報を検索し、提示データを用意するために用いる暗号化発行データを選択する。復号化部は、検索部が選択した暗号化発行データを復号化して復号化済み発行データにする。
【0006】
本開示における装置によれば、発行データの内容を第三者に知られる危険性の低減と、発行データのユーザによる円滑な利活用の実現を両立出来る。
具体的には、本開示の装置は発行データを暗号化して暗号化発行データにする。そのため、発行データに含まれる情報が平文のまま第三者に漏洩する危険性を低減出来る。また、発行データが発行される毎に、当該発行データを個別に暗号化するため、発行データの暗号化(及び復号化)の際の通信量、処理量及び情報漏洩リスクを低減出来る。
本開示の装置は、発行データに含まれる情報をインデックスに登録する。そして、本開示の装置は、インデックスに登録された情報を検索することにより、検証のために提示する提示データを用意するために用いる暗号化発行データを選択する。そのため、暗号化発行データを復号化しなくても、暗号化発行データを選択出来る。
本開示の装置はインデックスを暗号化及び復号化する。そのため、インデックス内の、発行データに含まれる情報が平文のまま第三者に漏洩する危険性を低減出来る。
【0007】
また、上記の装置を含むデータ管理システム、上記の装置が実現する処理や動作と同様のことを実現する方法やプログラムも、上記の装置と同様の作用効果を得ることが出来る。さらに、プログラムの態様であれば、多くの場合で費用を削減することが出来る。また、プログラムでは、処理・動作に関する設計変更も行いやすい。
上記以外の本開示が備えうる特徴、及び、当該特徴に対応する作用効果は、この明細書、特許請求の範囲または図面に開示される。
【図面の簡単な説明】
【0008】
【
図2】本開示の実施形態に係るデータ管理システムのシステム構成を示す。
【
図3】本開示の実施形態に係る装置の装置内機能部構成を示す。
【
図5】装置、部等を実現するためのコンピュータアーキテクチャを示す。
【
図10】インデックスへの登録処理(ステップ918)のフローチャートを示す。
【
図11】インデックスに登録する情報の選択を促す画面を示す。
【
図12】インデックスに登録する情報が選択された画面を示す。
【
図13】インデックスに登録する情報の確認を促す画面を示す。
【
図14】インデックスへの登録完了を通知する画面を示す。
【
図15】データ提示と検証処理のシーケンス図である。
【
図16】データ提示と検証処理のシーケンス図である。
図15の続きである。
【
図17】インデックスの検索処理(ステップ1512)のフローチャートを示す。
【
図18】選択を促す画面であって、検索条件が指定されていない場合を示す。
【
図19】選択を促す画面であって、検索条件が指定されている場合を示す。
【
図20】選択を促す画面であって、データ選択を行った場合を示す。
【発明を実施するための形態】
【0009】
以下、図面を参照して本開示の実施形態を詳細に説明する。以下の記載及び図面は、本開示を説明するための例示であって、説明の明確化のため、適時、省略及び簡略化がなされている。本開示は、他の種々の形態でも実施する事が可能である。特に限定しない限り、各構成要素は単数でも複数でも構わない。
図面において示す各構成要素の位置、大きさ、形状、範囲などは、発明の理解を容易にするため、実際の位置、大きさ、形状、範囲などを表していない場合がある。このため、本開示は、必ずしも、図面に開示された位置、大きさ、形状、範囲などに限定されない。
複数の図面で同じ参照番号を用いているものは、同様のものであることを示す。
本開示の「装置」または「部」のそれぞれは、ハードウェア的に一つにまとまったものであってもよいし、複数の部分に分かれていて、当該部分同士が連携して役割を果たすものであってもよい。幾つかの「装置」や「部」がハードウェア的に統合されてもよい。
また、本開示の「装置」または「部」のそれぞれは、(
図5のように)コンピュータにソフトウェア(プログラム)を実行させることにより実現させてよい。また、「装置」や「部」の機能の一部を、ハードウェア(例えば、ハードワイヤードロジックやFPGA)で実現して、残りの機能を、ソフトウェア(プログラム)を実行することにより実現してもよい。さらに、「装置」や「部」のそれぞれの機能の全てをハードウェア的に実現してもよい。
さらに、本開示の「プログラム」とは、ソフトウェアとハードウェア資源とが協働することによって、使用目的に応じた特有の情報処理装置またはその動作方法が構築されるような、当該ソフトウェアに該当するもの一般を包含する概念に含まれるものであればよい。つまり、本開示の「プログラム」は、特定の種類や態様のプログラムに限定されない。また、「プログラム」は当初は圧縮形式で記録されるものでもよい。
本開示では、処理をフローチャート等にて説明することもある。フローチャート等で示される処理のステップの一部または全部を、ハードウェア的に実現することも出来る。
【0010】
1.本開示の実施形態の機能構成
図1は、本開示の実施形態の機能構成を示すものである。
装置102は、インデックス処理部124と暗号化部126と復号化部127と検索部125を備える。
装置102の外部(装置102自身が発行データ171の発行者でもよい。)において発行された発行データ171を装置102が受け付ける毎に、インデックス処理部124は、当該発行データ171に含まれる情報を、インデックス181に登録する。この登録により、インデックス181は更新されて、更新後のインデックス182となる。(なお、復号化部127が、暗号化インデックス183を復号化することにより、インデックス181を用意してから、上記したインデックス処理部124による処理を行ってよい。)
発行された発行データ171を装置102が受け付ける毎に、暗号化部126は、当該発行データ171を暗号化して、暗号化発行データ172にする。また、暗号化部126は、更新後のインデックス182を暗号化して、暗号化インデックス183にする。ここで、暗号化発行データ172や暗号化インデックス183を、装置102が(例えば、装置102内の記録装置等やデータベース(DB)内にローカルに)保持し続けてもよい。または、遠隔(リモート)にあるサーバ(クラウドサーバ等)がこれらを保持する代わりに、装置102は、暗号化発行データ172や暗号化インデックス183を一旦消去してもよい。
何らかの検証を受けるにあたり、検証のための(例えば、検証者に提示する)提示データ174を用意する際に、装置102(を取り扱う者(ユーザ等))は、提示データ174を用意するために用いる暗号化発行データ172を選択する。
この選択のために、まず、(暗号化インデックス183を取り寄せた上で、)復号化部127は、暗号化インデックス183を復号化して、復号化済みインデックス184にする。
復号化済みインデックス184が得られたら、検索部125は、復号化済みインデックス184に登録された情報を検索し、提示データ174を用意するために用いる暗号化発行データ172を選択する。(なお、選択された暗号化発行データ172は、当該暗号化発行データ172が保持されているリモートまたはローカルから取り寄せられる。)
復号化部127は、検索部125が選択した(そして、取り寄せられた)暗号化発行データ172を復号化して、復号化済み発行データ173とする。(なお、装置102は、復号化済み発行データ173を用いて、提示データ174を用意(準備、作成)して、当該提示データ174を検証のために提示する。)
【0011】
上記のように、装置102は、発行データ171の暗号化により、発行データ171の内容が平文のまま第三者に知られる危険性を低減出来る。また、発行データ171が発行される毎に、装置102は、当該発行データ171を個別に暗号化するため、発行データ171の暗号化(及び復号化)の際の通信量、処理量及び情報漏洩リスクを低減出来る。
また、上記のように、装置102は、発行データ171(暗号化発行データ172)に含まれる情報をインデックス(インデックス181、更新後のインデックス182)に登録する。また、装置102は、復号化済みインデックス184を用いて暗号化発行データ172に含まれる情報を検索する。そのため、装置102は、暗号化発行データ172を復号化する前に、暗号化発行データ172に含まれる情報を知ることにより、暗号化発行データ172の選択が可能であるので、暗号化発行データ172の円滑な利活用を実現出来る。
さらに、上記のように、装置102は、発行データ171(暗号化発行データ172)に含まれる情報が登録されるインデックスを暗号化して、暗号化インデックス183にする。そのため、(インデックスの復号化前においては、)発行データ171(暗号化発行データ172)に含まれる情報が平文のまま第三者に漏洩する危険性を低減出来る。
【0012】
2.本開示の実施形態に係るシステムのシステム構成
図2は、本開示の実施形態に係るシステムのシステム構成を示すものである。なお、これ以降、「データベース」を「DB」と略記する(図面においても同様である)。
図2のデータ管理システム109では、様々な装置がネットワーク106を介して相互通信可能となっている。
図2の例では、データ管理システム109は、発行者装置101、装置(ユーザ装置)102、検証者装置103、第1サーバ104、第2サーバ105を備える。これらの装置101乃至105は、ネットワーク106を介して相互通信可能となっている。(なお、データ管理システム109内の各種装置の組み合わせの全てが相互通信可能であることまでは要さない。)
【0013】
発行者装置101は、発行者登録処理(
図6)とデータ発行処理(
図9)を行う。データ発行処理では、発行者装置101は、ユーザ(ユーザ装置102)からのデータ発行申請に応じて、ユーザ認証・発行データ生成・発行データに対する署名生成・発行データの暗号化を行い、ユーザ(ユーザ装置102)に発行データ171を発行する。発行者装置101は、発行者鍵生成部111、認証部112、データ生成部113、署名生成部114、暗号化部115、発行者DB116を備える。発行者DB116は、例えば、ユーザ(ユーザ装置102)に発行する発行データ171の内容等のデータや発行者秘密鍵などを保持する。
発行データ171は、ユーザに関する資格や属性情報(例.マイナンバーカード、運転免許証、学歴証明書、健康保険証、パスポート、職歴証明書、会員証、購買履歴、病歴証明書)が電子的に表現されたものである。発行データ171は、任意のデータ構造、例えばテーブル、リスト、JSON(JavaScript(登録商標) Object Notation)、JSON-LD(JavaScript(登録商標) Object Notation for Linked Data)等で表現される。
【0014】
ユーザ装置102は、ユーザ登録処理(
図7)と、データ発行処理(
図9)時のデータ発行申請、ユーザ認証、発行データ171の確認、インデックス181への登録、発行データ171と更新後のインデックス182の暗号化と、データ提示と検証処理(
図15、
図16)時のユーザ認証、暗号化インデックス183の復号化、復号化済みインデックス184を用いた検索と暗号化発行データ172の選択、暗号化発行データ172の復号化、提示データ174の用意、検証者への提示データ174の提示を行う。ユーザ装置102は、ユーザが所有するスマートフォン等の個人デバイスでもよいし、店頭や施設などに設置された共用デバイスでもよい。
インデックス181は、ユーザに発行された発行データ171に含まれる情報が登録されるものであり、任意のデータ構造、例えばテーブル、リスト、JSON等で表現される。インデックス181はユーザ毎に作成される。インデックス181に登録する情報は、発行データ171の発行を受けたユーザが発行データ171に含まれる情報を確認しながら、ユーザ自身で選択出来る。インデックスの具体例は
図8とともに後述する。
ユーザ装置102は、ユーザ鍵生成部121、ID指定部122、認証部123、インデックス処理部124、検索部125、暗号化部126、復号化部127、署名生成部128、ユーザ装置DB129を備える。ユーザ装置DB129は、例えば、ユーザ秘密鍵やデータ発行申請に必要なデータなどを保持する。
【0015】
図3は、ユーザ装置102におけるインデックス処理部124と検索部125に存在してよい機能部の構成を示す。
インデックス181に情報を登録するに際して、ユーザとユーザ装置102の間で入出力(表示も含む)を伴いつつ手動登録を行う場合には、インデックス処理部124は、発行データ情報表示制御部(以下、「発行データ情報表示部311」と略記する。
図3においても同様。)、登録情報事前選択部(以下、「登録事前選択部312」と略記する。
図3においても同様。)、登録情報選択受付制御部(以下、「登録受付部313」と略記する。
図3においても同様。)のそれぞれを備えてよい。インデックス181に情報を登録するに際して、ユーザとユーザ装置102の間で入出力(表示も含む)を伴わないで自動登録を行う場合には、インデックス処理部124は、登録情報自動抽出部(以下、「自動登録部314」と略記する。
図3においても同様。)を備えてよい。ユーザ装置102は手動登録と自動登録の両方を選択出来る態様でもよい。
復号化済みインデックス184に対する検索条件の指定を行うに際して、ユーザとユーザ装置102の間で入出力(表示も含む)を伴いつつ手動指定を行う場合には、検索部125は、検索条件候補表示制御部(以下、「条件候補表示部322」と略記する。
図3においても同様。)、検索条件選択受付制御部(以下、「条件受付部323」と略記する。
図3においても同様。)、検索条件指定部(以下、「条件指定部324」と略記する。
図3においても同様。)のそれぞれを備えてよい。検索条件の指定を行うに際して、ユーザとユーザ装置102の間で入出力(表示も含む)を伴わないで自動指定を行う場合には、検索部125は検索条件自動指定部(以下、「自動条件部325」と略記する。
図3においても同様。)を備えてよい。ユーザ装置102は手動指定と自動指定の両方を選択出来る態様でもよい。
検索部125は検索条件合致情報特定部(以下、「合致情報特定部326」と略記する。
図3においても同様。)を備えてよい。
検索条件に合致する情報に対応する暗号化発行データ172から、提示データ174を用意するために用いる暗号化発行データ172を選択するに際して、ユーザとユーザ装置102の間で入出力(表示も含む)を伴いつつ手動選択を行う場合には、検索部125は、検索結果表示制御部(以下、「検索結果表示部327」と略記する。
図3においても同様。)、発行データ選択受付制御部(以下、「発行データ選択受付部328」と略記する。
図3においても同様。)のそれぞれを備えてよい。暗号化発行データ172を選択するに際して、ユーザとユーザ装置102の間で入出力(表示も含む)を伴わないで自動選択を行う場合には、検索部125は発行データ自動選択部329を備えてよい。ユーザ装置102は手動選択と自動選択の両方を選択出来る態様でもよい。
手動指定と手動選択の一つ以上を行う場合には、検索部125は提示要求内容表示制御部(以下、「提示要求表示部321」と略記する。
図3においても同様。)を備えてよい。
図3で示した機能部(部)のうち、手動登録・手動指定・手動選択に関わる機能部(部)が行う処理は、後述の「3.本開示の実施形態の処理」で説明する。また、自動登録・自動指定・自動選択に関わる機能部(部)が行う処理は、後述の「3.本開示の実施形態の処理」か「4.その他(変形例)」で説明する。
【0016】
図2に説明を戻す。検証者装置103は、ユーザ認証と、ユーザ(ユーザ装置102)から受信した提示データ174内の各電子署名の検証を行う。検証者装置103は、認証部131と署名検証部132を備える。
第1サーバ104は、各発行者(発行者装置101)の公開鍵を保持し、検証者(検証者装置103)の要求に応じて発行者公開鍵を検証者(検証者装置103)へ送信する。第1サーバ104は、データ登録部141、データ取得部142、第1サーバDB143を備える。第1サーバDB143は、発行者公開鍵のデータを保持する。第1サーバDB143は、信頼出来る組織のDBや改ざん不可能なDB(例.ブロックチェーン)などである。
【0017】
第2サーバ105は、ユーザ(ユーザ装置102)の要求に応じて、ウォレット410(
図4)へのデータ登録や、ウォレット410からのデータ取得とユーザ装置102への送信を行う。第2サーバ105は、データ登録部151、認証部152、データ取得部153、第2サーバDB154を備える。第2サーバDB154は、ユーザIDに紐づいたウォレット410の形式で、ユーザ公開鍵401、暗号化インデックス183、暗号化発行データ172を保持する。ウォレット410は、例えばユーザID毎に定められたデータ格納領域であり、各種データを格納する。ウォレット410の構造や形式は任意のもの、例えばテーブルやリスト等、を用いてよい。
図4は、ウォレット410を示す。ウォレット410は、ユーザ(ユーザID)毎に用意することが出来るものである。ウォレット410は、第2サーバDB154に格納される。または、ウォレット410を、当該ウォレット410に紐付けられるユーザ(ユーザID)が取り扱うユーザ装置102内のユーザ装置DB129にローカルに格納してもよい。
ウォレット410は、暗号化発行データ172と、暗号化インデックス183と、ユーザ公開鍵401を保持する。ウォレット410は補助情報402を保持してよい。暗号化発行データ172は、当該ウォレット410に対応付けられるユーザに対して発行された発行データ171のそれぞれを暗号化したものである。発行データ171のそれぞれを個別に暗号化して暗号化発行データ172とするので、1つのウォレット410内に複数の暗号化発行データ172を保持しうる。ここで、データIDは、ウォレット410内の暗号化発行データ172を特定するために用いられる。暗号化インデックス183は、当該ウォレット410に対応付けられるユーザ毎に存在するものであり、当該ウォレット410に保持されている暗号化発行データ172のそれぞれに含まれている情報を有する。ユーザ公開鍵401は、ユーザ装置102のためのユーザ鍵ペアに含まれるものである。なお、ユーザ鍵ペアに含まれるユーザ秘密鍵はユーザ装置102内で取り扱われる。補助情報402は、ユーザ装置102がユーザ秘密鍵を(再)取得する際に用いることが出来るものである。
【0018】
このようにすれば、データ管理システム109を利用する者(ユーザ等)にとって、発行された発行データ171は管理しやすいものとなる。また、暗号化インデックス183や暗号化発行データ172を、ユーザ等にとってのローカルに置くこともリモート(遠隔)に置くことも出来るので、データ管理システム109のシステム構成を柔軟に出来るほか、当該システムの利便性も向上する。
【0019】
図2、
図3に示される装置・部・DBの機能や、行う処理・動作については、後述の「3.本開示の実施形態の処理」または「4.その他(変形例)」にて説明する。
【0020】
図5は、本開示の実施形態を実現するためのコンピュータアーキテクチャを示す。
図2のシステム全体または装置や、
図2及び
図3の部(機能部)または1つの部(機能部)内の一部分が、
図5で示されるコンピュータアーキテクチャで実現されてもよい。
図2または
図3に示されるシステム、各装置、各部(機能部)、または、各部の部分を実現するために、情報処理装置(例えば、CPU)501と、記憶装置(例えば、メモリ)502と、不揮発性記録媒体(例えば、不揮発性メモリ、不揮発性ディスク装置)503と、外付け記録媒体用ドライブ(例えば、ディスクドライブ)504と、出力装置(例えば、印刷機、ディスプレイ。発行者登録、ユーザ登録、データ発行、データ受領、インデックス登録、検索、データ選択、データ提示、データ検証の処理画面や処理結果をユーザやオペレータ等が視認可能な形式で出力する装置でもよい。)506と、入力装置(例えば、マウス、キーボード、撮像装置、センサ)507と、通信装置(例えば、有線通信用通信装置、無線通信用通信装置。所定のプロトコルに従って他の装置やサーバとの通信を制御するネットワークインターフェース装置でもよい。)508と、外部入出力用ポート509の一部または全部が、相互接続部(例えば、バス、クロスバスイッチ)510にて相互接続されていてよい。
不揮発性記録媒体503には、プログラム520a、各種DB521、及び、各種情報522が記憶されてよい。なお、これに代えて、当該プログラム、テーブル、または、各種の情報の一部または全部を、
図5の外部から取得(アクセス)する態様でもよい。
外付け記録媒体用ドライブ504には、外付け記録媒体(例えば、可搬性記録ディスク(DVD等)、ICカード、SDカード)505を接続することが出来る。なお、この外付け記録媒体505から、不揮発性記録媒体503や記憶装置(メモリ)502に、プログラム520aや各種DB521や各種情報522を転送し記憶する態様でもよい。
また、プログラム520aや各種DB521や各種情報522が、通信装置508、外部入出力用ポート509または入力装置507経由でもたらされて、不揮発性記録媒体503や記憶装置(メモリ)502に記憶されてもよい。
システム、システム内装置、システム内の各部(機能部)、または、各部の部分が、一つまたは一連の部(または、部の部分)として機能する(一つまたは一連の処理(ステップ)を実行する)ために、まず、プログラム520aは、(例えば不揮発性記録媒体503から)記憶装置(例えば、メモリ)502にローディングされてよい。ローディングされた後のプログラムは
図5では520bで示される。そして、情報処理装置(例えば、CPU)501が、(必要に応じて、不揮発性記録媒体503等に存在するテーブルや各種の情報も用いて、)記憶装置(例えば、メモリ)502上のプログラム520bを実行してよい。プログラム520bの実行により、一つまたは一連の部(または、部の部分)の機能が実現される(一つまたは一連の処理(ステップ)が実行される)。この際に、記憶装置(例えば、メモリ)502に一時的に形成される各種バッファ523も適宜用いてよい。
【0021】
3.本開示の実施形態の処理
本開示の実施形態の処理を説明する。具体的には、発行者登録処理(
図6)、ユーザ登録処理(
図7)、データ発行処理(
図9~14)、データ掲示と検証処理(
図15~21)に分けて説明する。なお、以下で説明するシーケンス図及びフローチャートを示す図面において、長方形のボックスは処理・動作のステップを示す。シーケンス図を示す図面において、横方向の矢印は、装置(サーバ)間の送受信を伴う処理・動作のステップを示す。フローチャートを示す図面において、菱形のボックスは条件分岐のステップを示す。シーケンス図及びフローチャートを示す図面において、長方形のボックスや菱形のボックスからみて上部に存在する俵型のボックスに示されている装置またはサーバは、処理・動作の主体を示す。シーケンス図及びフローチャートを示す図において、「ステップ」を「S」と略記する。
【0022】
3-1.発行者登録処理
図6は、データ管理システム109が発行者(発行者装置101)を登録するために実行する発行者登録処理を示すシーケンス図である。
図6のステップ601では、発行者鍵生成部111が発行者の発行者公開鍵と発行者秘密鍵の発行者鍵ペアを生成する。発行者鍵ペアは、任意の公開鍵暗号や署名方式、例えばRSA(Rivest-Shamir-Adleman)やBBS+署名における鍵ペアでよい。発行者鍵生成部111は、例えば、汎用的な暗号ライブラリの鍵ペア生成処理を行う。
ステップ602では、発行者装置101は、ステップ601で生成した発行者秘密鍵を任意の方法で安全に保管する。例えば、発行者装置101は、発行者装置101の利用者が保有する記録媒体、データストレージまたは発行者DB116に発行者秘密鍵を保管する。
ステップ601の後で、ステップ603では、発行者装置101は、ステップ601で生成した発行者公開鍵を、ネットワーク106を介して第1サーバ104に送信する。第1サーバ104は発行者公開鍵を受信する。この時に発行者装置101は、発行者IDや公開鍵IDを指定して、発行者公開鍵と併せて第1サーバ104に送信してもよい。
ステップ604では、第1サーバ104のデータ登録部141は、ステップ603で受信した発行者公開鍵を第1サーバDB143に登録して保存する。ステップ603にて、例えば、第1サーバ104が発行者IDや公開鍵IDを発行者公開鍵と併せて受信した場合、データ登録部141は、受信した発行者IDや公開鍵IDと紐づけて発行者公開鍵を第1サーバDB143に保存してもよい。
【0023】
3-2.ユーザ登録処理
図7は、データ管理システム109がユーザ(ユーザ装置102)を登録するために実行するユーザ登録処理を示すシーケンス図である。
図7のステップ701では、ユーザ装置102のID指定部122は、例えばユーザの入力もしくは自動入力に基づいて、ユーザ装置102の利用者であるユーザを識別するためのユーザIDを指定する。
ステップ702では、ユーザ装置102のユーザ鍵生成部121は、ユーザのためのユーザ鍵ペア(ユーザ公開鍵401とユーザ秘密鍵のペア)を生成する。ユーザ鍵生成部121は、ユーザ鍵ペアの生成に際して、任意の公開鍵暗号方式における任意の方法を用いてよい。例えば、ユーザ鍵生成部121は、RSAにおける鍵ペアを、汎用的な暗号ライブラリの鍵ペア生成処理で生成してもよい。この時、ユーザ鍵生成部121は、暗証番号やパスワード等の情報をシードとして鍵ペア生成処理の入力にして、ユーザ鍵ペアを生成してもよい。また、ユーザ装置102にカメラや赤外線センサ等の生体情報取得装置を接続した上で、ユーザ鍵生成部121は、生体情報取得装置を介して取得したユーザの顔、指静脈、指紋、虹彩などの生体情報を用いて、Fuzzy ExtractorやFuzzy Signatureなどのアルゴリズムに基づいて、ユーザ公開鍵401とユーザ秘密鍵のペア(及び必要に応じて補助情報402)を生成してもよい。
ステップ703では、ユーザ装置102のインデックス処理部124は、発行データ171(暗号化発行データ172)の管理に用いるインデックス181を新しく生成する。
図8は、ユーザに発行された発行データ171(暗号化発行データ172)の管理に用いるインデックス181(暗号化インデックス183)の一例を示す。インデックス181(暗号化インデックス183)は、テーブル800の態様でよい。テーブル800は、個々の発行データ171(暗号化発行データ172)毎に、レコード810を有する。
図8では、5つのレコード810(5つの発行データ171(暗号化発行データ172))が登録されている様子が示されている。なお、
図7のステップ703にて、インデックス処理部124がインデックスを新しく生成して、まだ登録すべき発行データ171が無い場合は、レコード810として有効なものが無い状態であってよい。
レコード810は、データID801とデータの種類802と発行者803と記載項目(名及び記載項目の値)804の項目を備えてよい。(なお、テーブル800におけるレコード810の位置により当該レコード810に対応するデータID801が明らかである等の事情があれば、データID801の項目を設けなくてもよい。)データの種類802は、例えば、運転免許証、学歴証明書、健康保険証である。発行者803は発行データを発行する主体の名前(例えば、自治体、大学、企業)である。記載項目(名及び記載項目の値)804は、情報の名称(例えば、氏名、性別、生年月日、住所)及び当該情報の値である。
図8に示した例では、例えば、データID1のレコードは、当該データID1のレコードに対応する発行データ171(暗号化発行データ172)のデータの種類が運転免許証であり、発行者がAであることを示すとともに、当該発行データ171(暗号化発行データ172)に含まれる情報(記載項目)として、少なくとも、氏名、住所、生年月日、区分、条件という名称の情報があることを示す。
図8に示した例では、また例えば、データID5のレコードは、当該データID5のレコードに対応する発行データ171(暗号化発行データ172)のデータの種類が購買履歴であり、発行者がEであることを示すとともに、当該発行データ171(暗号化発行データ172)に含まれる情報(記載項目)として、購入日、製品、金額という名称の情報があることを示す。さらに、このデータID5のレコードは、購入日が2022年3月で、製品がE1であることも示す。このデータID5のレコードは、記載項目の値の情報も含む。
図8に示したインデックス181(暗号化インデックス183)における、登録情報や形式は一例であり、これらに限定されない。また、
図8で示した例では全てのレコード810に記載項目が登録されているが、例えば、レコード810によっては、データの種類802と発行者803のみを登録するのでもよいし、データの種類802と記載項目804を登録するのでもよいし、データの種類802のみを登録するのでもよい。
図7に説明を戻す。
図7のステップ704では、ユーザ装置102の暗号化部126は、ステップ702で生成したユーザ公開鍵401を用いて、ステップ703で生成したインデックス181(ただし、発行データ171をまだ発行されたことがなければ、有効なレコード810が存在しなくてもよい。)を暗号化して、暗号化インデックス183とする。
ステップ705では、ユーザ装置102は、ユーザIDとユーザ公開鍵401(及び必要であれば補助情報402)と暗号化インデックス183を、ネットワーク106を介して第2サーバ105へ送信する。第2サーバ105はこれらを受信する。
ステップ706では、第2サーバ105は、ステップ705で受信したユーザIDに基づいて、当該ユーザIDに紐づいたウォレット410を第2サーバDB154に作成する。
ステップ707では、第2サーバ105のデータ登録部151は、ステップ705で受信したユーザ公開鍵401(及び受信していれば補助情報402)と、暗号化インデックス183を、ステップ706で作成したウォレット410に登録する。
ステップ708では、ユーザ装置102は、ユーザ秘密鍵の管理処理を行う。ユーザ装置102は、例えば、ユーザ装置DB129、USBやICカード等の記録媒体、または他の装置・サーバにユーザ秘密鍵を格納して安全に保管する。また、この際にユーザ秘密鍵を、例えばパスワード等で、保護した上で格納してもよい。もしくは、例えば、ステップ702にてユーザ鍵生成部121が、暗証番号、パスワード、生体情報等に基づいてユーザ鍵ペア生成を行った場合、ユーザ装置102は、(ステップ705で補助情報402を第2サーバ105に送信していない等の事情があるなどの)必要に応じて補助情報402をユーザ装置DB129、記憶媒体または端末に保存した上で、ユーザ秘密鍵を削除してもよい。
【0024】
3-3.データ発行処理
図9は、データ管理システム109でユーザに発行データ171を発行するために実行されるデータ発行処理を示すシーケンス図である。
図9のステップ901では、例えばユーザ装置102の利用者であるユーザの入力もしくは自動入力に基づいて、ユーザ装置102のID指定部122は、ユーザを識別するためのユーザIDを指定する。
ステップ902では、ユーザ装置102は、ステップ901で指定されたユーザIDを、ネットワーク106を介して第2サーバ105へ送信する。第2サーバ105はこれを受信する。
ステップ903では、第2サーバ105は、ステップ902で受信したユーザIDに紐づいたウォレット410を特定する。第2サーバ105のデータ取得部153は、特定されたウォレット410からユーザ公開鍵401を取得する。この時、ユーザ公開鍵401と併せて補助情報402がウォレット410に登録されていれば、データ取得部153は、ユーザ公開鍵401と併せて補助情報402もウォレット410から取得する。その場合は、第2サーバ105は、補助情報402をユーザ装置102へ送信する。
ステップ901の後に、ステップ904では、ユーザ登録処理(
図7)のステップ708で実行した管理処理で行った処理内容に応じて、ユーザ装置102はユーザ秘密鍵を取得する。例えば、ステップ708において、ユーザ装置102がユーザ秘密鍵を、ユーザ装置DB129、USBメモリやICカード等の記録媒体、または他の端末などに格納した場合、ステップ904では、ユーザ装置102は、それらの格納先からユーザ秘密鍵を取得する。また、例えば、ユーザ登録処理(
図7)のステップ702において、ユーザ装置102のユーザ鍵生成部121が、暗証番号、パスワード、生体情報等に基づいてユーザ鍵ペアの生成を行った場合、ステップ904でも、ユーザ鍵生成部121は、ステップ702と同じ手法でユーザ秘密鍵を生成して取得する。この時、ユーザ秘密鍵生成に補助情報402などが必要であれば、それを例えば、ユーザ装置DB129、記録媒体や端末、(ステップ903に伴う補助情報402の送受信により)第2サーバ105から適切に取得する。
ステップ903及び904の後に、ステップ905では、ユーザ認証が行われる。ユーザ認証では、例えば、ユーザ装置102の認証部123はユーザ秘密鍵を用い、第2サーバ105の認証部152はユーザ公開鍵401を用いてよい。ユーザ認証の手法としては、例えば、第2サーバ105が乱数等のチャレンジを生成してユーザ装置102に送信し、ユーザ装置102はユーザ秘密鍵を用いて任意の署名アルゴリズムによる電子署名を生成し、第2サーバ105が署名検証を行う手法が挙げられる。ステップ905にてユーザ認証が成功した場合は以降のステップに進み、認証が失敗した場合はデータ発行処理を中止する。
ステップ905で認証が成功した場合に、ステップ906では、第2サーバ105のデータ取得部153は、ステップ902で受信したユーザIDに紐づいたウォレット410から暗号化インデックス183を取得する。第2サーバ105は、ユーザ公開鍵401と暗号化インデックス183を、ネットワーク106を介してユーザ装置102へ送信する。ユーザ装置102はこれらを受信する。(なお、第2サーバ105がユーザ公開鍵401を送信するのに代えて、ユーザ装置102のユーザ鍵生成部121がステップ904にて生成したユーザ公開鍵401を、これ以降に、ユーザ装置102が用いてもよい。)
ステップ906の後に、ステップ907では、ユーザ装置102は、データ発行申請を作成する。データ発行申請は、発行依頼内容を伝えるための情報など(例えば、発行データの種類、内容、身分証明書)が含まれているデータである。ユーザ装置102は、例えば、ユーザの入力や自動入力、またはユーザ装置DB129に格納されているデータ等を基に、データ発行申請に含まれる情報を作成する。また、この時、ユーザ装置102は、例えば、ユーザが保持している他の発行データを身分証明書や資格証明書としてデータ発行申請に含めるか、もしくは、当該他の発行データを別途提示してもよい。この際に、ユーザ装置102は、後述するデータ提示と検証処理を用いてよい。
ステップ908では、ユーザ装置102は、ユーザIDと、ユーザ公開鍵401と、データ発行申請を、ネットワーク106を介して、発行者装置101へ送信する。発行者装置101はこれらを受信する。なお、
図9では省略しているが、データ発行申請に含まれる発行データ内容や身分証明書の情報漏洩防止のため、ユーザ装置102の暗号化部126は、発行者装置101の公開鍵で、データ発行申請を暗号化して暗号化データ発行申請とし、ユーザ装置102は、暗号化データ発行申請を発行者装置101に送信し、発行者装置101は、当該発行者装置101の秘密鍵で、受信した暗号化データ発行申請を復号化して、データ発行申請を得るものであってよい。
ステップ907及びステップ908では、ユーザ装置102が、データ発行申請を電子的に作成して発行者装置101へ送信し、発行者装置101がデータ発行申請を受領したが、他の方法で行ってもよい。例えば、発行者装置101が、データ発行申請を作成してユーザ装置102へと送信し、その内容をユーザ装置102のユーザが確認して了承することによって以降の処理に進んでもよい。
また、ユーザと発行者は、ステップ908のデータ発行申請を対面もしくは非対面で書面や電話などにて行ってもよい。この場合は、ユーザ公開鍵401に関しては、別途、ユーザ装置102が、ネットワーク106を経由して発行者装置101へ送信してよい。
ステップ908に伴って、ステップ909ではユーザ認証が行われる。ユーザ認証では、ユーザ装置102の認証部123はユーザ秘密鍵を用い、発行者装置101の認証部112はユーザ公開鍵401を用いてよい。ユーザ認証の手法はステップ905で説明した手法と同様のため、説明を省略する。ステップ909にてユーザ認証が成功した場合は以降のステップに進み、認証が失敗した場合はデータ発行処理を中止する。なお、上記のように、ユーザと発行者が、ステップ908のデータ発行申請を、対面もしくは非対面で書面や電話などにて行う場合には、別途の手法で、ユーザの本人確認を行ってよい。
ステップ909にてユーザ認証が成功した場合に、ステップ910では、発行者装置101のデータ生成部113は、ステップ908で受信したデータ発行申請に基づいて発行データ171を生成する。データ生成部113は、例えば、発行者DB116に格納済みのデータを取得することによって発行データ171を生成してもよいし、発行者またはユーザからの入力を基に発行データ171を生成してもよい。また、発行者登録処理(
図6)のステップ603及びステップ604にて、発行者装置101及び第1サーバ104が、発行者IDと公開鍵IDと発行者公開鍵を併せて、第1サーバDB143に登録している場合、データ生成部113は、発行データ171に同じ発行者IDや公開鍵IDを含めてもよい。
ステップ911では、発行者装置101は、発行者登録処理(
図6)のステップ601にて生成した発行者秘密鍵を取得する。例えば、発行者装置101は、発行者装置101の利用者が保有する記憶媒体やデータストレージ、発行者DB116などから発行者秘密鍵を取得する。
ステップ912では、発行者装置101の署名生成部114は、発行者秘密鍵を用いて発行データ171に対する電子署名を生成する。また、発行者登録処理(
図6)のステップ603及びステップ604にて、発行者装置101及び第1サーバ104が、発行者IDと公開鍵IDと発行者公開鍵と併せて、第1サーバDB143に登録している場合、電子署名に同じ発行者IDや公開鍵IDを紐づけてもよい。
ステップ913では、発行者装置101の暗号化部115は、発行データ171と電子署名を、ステップ908で受信したユーザ公開鍵401で暗号化して、暗号化発行データ172とする。暗号化部115は、この時、発行データ171と電子署名を、1つのデータにまとめてから暗号化して、暗号化発行データ172としてもよいし、個別に暗号化して、暗号化発行データ172としてもよい(個別に暗号化する場合には、発行データ171を暗号化したものを暗号化発行データ172と呼んでもよいし、発行データを暗号化したものと、電子署名を暗号化したものの両方を包含するものを、暗号化発行データ172と呼んでもよい。)。1つのデータにまとめる場合、暗号化部115は、例えば、非特許文献1に記載のVC形式にまとめてもよい。暗号化部115が発行データ171と電子署名を個別に暗号化する場合、発行データ171と電子署名を別の方法で紐づける必要がある。説明の簡略化のため、以降の説明では、ステップ913では、暗号化部115は、発行データ171と電子署名を1つのデータにまとめてから暗号化して、暗号化発行データ172としたとする。
ステップ914では、発行者装置101は、ステップ913で生成した暗号化発行データ172を、ネットワーク106を介してユーザ装置102へ送信する。ユーザ装置102はこれを受信する。
ステップ915では、ユーザ装置102の復号化部127は、ステップ904で取得したユーザ秘密鍵を用いて、ステップ914で受信した暗号化発行データ172と、ステップ906にて受信した暗号化インデックス183を復号して、それぞれ、発行データ171とインデックス181とする。
ステップ916では、ユーザ装置102を取り扱う者(ユーザ)は、復号化後の発行データ171の情報を確認する。例えば、ユーザ装置102は、発行データ171に含まれる情報(例えば、
図8で示した、データの種類802、発行者803、記載項目及びその値804)を特定して、当該情報をユーザ装置102の表示・出力装置506(例えばディスプレイ)に表示・出力する。ユーザは発行データ171の情報を確認する。発行データ171の情報が正しい場合は以降の処理に進み、発行データ171の情報に誤りがある場合はデータ発行処理を中止する。
ステップ917では、ユーザ装置102のID指定部122は、ユーザ入力または自動入力で、発行データ171(暗号化発行データ172)に対するデータIDを指定する。
ステップ918(インデックス処理ステップ)では、ユーザ装置102のインデックス処理部124は、インデックスへの登録処理(
図10)を行って発行データ171の情報をデータIDに紐付けて、ステップ915で復号化した後のインデックス181に登録する。
【0025】
図10は、データ発行処理(
図9)のステップ918(インデックス処理ステップ)で実行されるインデックスへの登録処理を示すフローチャートである。
図10のステップ1001では、インデックス処理部124は、発行データ171を参照して、発行データ171に含まれている情報(例えば、データの種類802、発行者803、記載項目及びその値804)を特定する。この情報特定処理はステップ916でユーザが発行データの情報を確認するために行った特定処理と同一でもよい。その場合、このステップ1001を省略し、ステップ916で特定された情報をステップ1002で用いてもよい。
ステップ1002では、インデックス処理部124の発行データ情報表示部311は、ステップ1001で特定された情報をユーザ装置102の表示・出力装置506(例えば、ディスプレイ)などに表示し、インデックス181に登録する情報の選択をユーザに促す。
インデックス181の主な目的は発行データ171(暗号化発行データ172)の選択を補助することであるため、インデックス181には各発行データ171のデータの種類802が記載されると、ユーザによる当該選択において便利であることがある。よって、インデックス処理部124の登録事前選択部312は、インデックス181へ登録する情報の選択をユーザに促す時に、ユーザ装置102の表示・出力装置506(例えば、ディスプレイ)などでの表示において、データの種類802の選択を推奨する、または、選択済みと(事前選択)するように制御してもよい。また、この時(推奨・事前選択時)に、例えば、ステップ1001での情報の特定処理や発行者(発行者装置101)からのお勧め(リコメンデーション)に基づいて、登録事前選択部312は、他の情報の推奨や事前選択を行って、ユーザ装置102の表示・出力装置506(例えば、ディスプレイ)などでの表示に反映させてもよい。この情報の推奨や事前選択を行うことによって、ユーザによるインデックス181へ登録する情報の選択を補助することが出来る。
図11は、ステップ1002にて、ユーザ装置102の表示・出力装置506(例えば、ディスプレイ)などに表示される、インデックス181に登録する情報の選択をユーザに促す画面の一例である。
インデックス181に登録する情報の選択を促す画面1100には、登録する情報の選択を促すメッセージ1101と、ステップ1001にて特定された情報を表示して、登録する情報の選択を可能とするインターフェース1102と、押下することによってステップ1003へと制御を遷移する「進む」ボタン1103が表示されている。インターフェース1102は、例えば、チェックボックスなどを用いて、登録する情報の選択が可能とされる。インターフェース1102では、ユーザは、各記載項目及びその値804については、記載項目名のみか、記載項目名及びその値を登録するかの選択が出来る。「進む」ボタン1103は、インターフェース1102にて1つ以上の登録する情報が選択されるまで非活性化(押下出来ない状態に)されてもよい。
図10に説明を戻す。
図10のステップ1002の後に、ステップ1003では、ユーザ装置102を取り扱う者(ユーザ)が、インデックス181に登録する情報を選択する。ステップ1002にて、登録事前選択部312がインデックス181に登録する情報の事前選択の制御を行っていた場合は、ステップ1003にて、ユーザが当該事前選択を取り消せてもよい。ステップ1003においてユーザが行ったインデックス181に登録する情報の選択に関する情報は、インデックス処理部124の登録受付部313が受け取る。
図12は、ステップ1003にてインデックス181に登録する情報をユーザが選択した時に表示される画面の一例である。
図12の例は、「データの種類802」、「発行者803」、記載項目804としての氏名という「記載項目名」及び「記載項目の値」、記載項目804としての生年月日という「記載項目名」、記載項目804としての住所という「記載項目名」が選択された場合(
図12では、チェックマークにより選択されていることを示す。)の画面を示している。
図12において、「進む」ボタン1103を押下すると、インデックス処理部124は、ステップ1003からステップ1004へ制御を遷移する。
図10に説明を戻す。
図10のステップ1004では、発行データ情報表示部311は、ステップ1003でユーザが選択した情報(インデックス181に登録する情報の選択)に誤りが無いかの確認要請をユーザ装置102の表示・出力装置506(例えば、ディスプレイ)などに表示する。ユーザがYES(誤りが無い)を選択した場合は以降のステップに進み、ユーザがNO(誤りがある)を選択した場合はステップ1002に戻る。
図13は、ステップ1004にてユーザ装置102の表示・出力装置506(例えば、ディスプレイ)などに表示されるインデックス181に登録する情報の確認をユーザに促す画面の一例である。確認をユーザに促す画面1300には、登録する情報の確認を促すメッセージ1304と、ステップ1003にて選択された登録する情報を表示するインターフェース1305と、押下することによってステップ1005へとインデックス処理部124が制御を遷移する「はい」ボタン1306と、押下することによってステップ1002に戻る「いいえ」ボタン1307が表示されている。
図10に説明を戻す。
図10のステップ1005では、登録受付部313は、ステップ1003で選択された情報とステップ917で指定されたデータIDをインデックス181に登録する。例えば、登録受付部313は、
図8で示された(インデックス181である)テーブル800に新たな行(レコード810)を追加し、当該レコード810に含まれるデータID801、データの種類802、発行者803、記載事項及びその値804を登録する。なお、ステップ1003において行われた情報の選択に従って、レコード810への登録が行われるので、当該レコード810に含まれうる全ての項目の情報が登録されるとは限らない。また、テーブル800におけるレコード810の位置によりデータID801が分かる場合には、レコード810にデータID801を登録しなくてもよい。
図14は、ステップ1005にてユーザ装置102の表示・出力装置506(例えば、ディスプレイ)などに表示されるインデックス181への登録完了をユーザに通知する画面の一例である。インデックス181に情報を登録したことを通知する画面1400には、登録完了を通知するメッセージ1408が表示されている。
図11乃至14で示した各画面、メッセージ、ボタンに表示される内容やインターフェース、登録する情報の選択手法は一例であり、これらに限定されない。
【0026】
このように、装置102は、発行データ171の入手の際の、装置102を取り扱う者(ユーザ等)による、インデックス181に登録する情報の選択を可能とする。
そのため、インデックス181に登録された情報を用いた検索処理の際に、取捨選択された情報を用いることが出来る。また、ユーザ等がインデックス181に登録された情報を閲覧する際にも、視認性が高い情報に接することが出来る。
装置102は、ユーザ等によりインデックス181に登録する情報の選択を示す入力を行う際に、インデックス181に登録する情報の候補を表示するように制御する。
そのため、ユーザ等にとっては、表示されたインデックス181に登録する情報の候補から、インデックス181に登録する情報を選択することが出来るため、当該選択を示す入力を簡易に行うことが出来る。
装置102は、インデックス181に登録する情報として推奨される情報について、インデックス181に登録する情報として選択することを促す表示を行うように制御するか、または、インデックス181に登録する情報として事前に選択された状態とする。また、装置102は、事前に選択された状態を取り消すことも可能である。
そのため、ユーザ等が、インデックス181に登録する情報として推奨される情報を、インデックス181に登録する情報として選択しやすくすることが出来る。
【0027】
ここまでで、
図10の説明(
図9のステップ918)の説明を終えて、
図9に説明を戻す。
図9のステップ918の後に、ステップ919(暗号化ステップ)では、ユーザ装置102の暗号化部126は、ステップ906にて受信した(または、ステップ904で生成した)ユーザ公開鍵401を用いて、発行データ171とインデックス181(更新後のインデックス182)をそれぞれ暗号化し、それぞれ、暗号化発行データ172と暗号化インデックス183とする。
ステップ920では、ユーザ装置102は、ユーザIDと、データIDと、暗号化発行データ172と、暗号化インデックス183を、ネットワーク106を介して第2サーバ105へ送信する。第2サーバ105はこれらを受信する。
ステップ921では、第2サーバ105は、ステップ920で受信したユーザIDに紐づいたウォレット410を特定する。第2サーバ105のデータ登録部151は、特定したウォレット410に、暗号化インデックス183と、ステップ920で受信したデータIDに紐づけた暗号化発行データ172を登録する。この時、データ登録部151は、以前の暗号化インデックス183を上書きまたは削除する。
ステップ920(またはステップ915)の後に、ステップ922では、ユーザ装置102は、ユーザ秘密鍵を削除する。
【0028】
上記したデータ発行処理では、ステップ909からステップ914が行われるまでに数時間から数日の時間を要する場合が考えられる。例えば、ステップ909の後に発行者がステップ910にて発行する発行データ171に必要な書類や発行データの内容の確認などを行い、それが数時間から数日の時間を要する場合などである。この場合、ユーザ装置102の記憶装置502等からのユーザ秘密鍵の漏洩などを防ぐため、例えば、ステップ909から一定時間が経過したら、ユーザ装置102は、ユーザ秘密鍵を削除してもよい。ユーザ秘密鍵を削除した場合、ステップ914を実行する前に、ユーザ装置102と第2サーバ105は、ステップ901からステップ906を行い、ユーザ装置102は、ユーザIDとユーザ公開鍵401を発行者装置101へ送信し、ユーザ装置102と発行者装置101は、ステップ909と同様にユーザ認証を行う。
【0029】
3-4.データ提示と検証処理
図15及び
図16は、データ管理システム109でユーザ(ユーザ装置102)が提示データ174を検証者(検証者装置103)に提示して検証を受けるために実行するデータ提示と検証処理を示すシーケンス図である。
図15の続きが
図16であるという関係にある。ステップ1501からステップ1506は、データ発行処理(
図9)のステップ901からステップ906と同様のため、説明を省略する。
図15のステップ1507では、ユーザ装置102は、ステップ1501で指定したユーザIDと、ステップ1506で受信したユーザ公開鍵401を、ネットワーク106を介して検証者装置103へ送信する。検証者装置103はそれらを受信する。
ステップ1507に伴い、ステップ1508ではユーザ認証を行う。ユーザ認証では、ユーザ装置102の認証部123はステップ1504で取得されたユーザ秘密鍵を用い、検証者装置103の認証部131はユーザ公開鍵401を用いる。ユーザ認証の手法はステップ905について説明した手法と同様のため、説明を省略する。ステップ1508にてユーザ認証が成功した場合は以降のステップに進み、認証が失敗した場合はデータ提示と検証処理を中止する。
ステップ1509では、検証者装置103は、提示データ174に含めるべき情報を示す提示要求内容を指定してもよい。検証者装置103は、提示要求内容として、例えば、データの種類802、発行者803、記載項目及びその値804などの1つ以上の組み合わせを指定してもよい。例えば、運転免許証を示す提示データ174の提示を要求する場合は、検証者装置103は、提示要求内容において「データの種類:運転免許証」などの形式で指定してもよい。他の例として、提示データ174に含める情報として生年月日と性別の情報を要求する場合、検証者装置103は、提示要求内容において「記載項目:生年月日、性別」などの形式で指定してもよい。上記した提示要求内容の指定形式は一例であり、他の形式で指定されてもよい。
ステップ1510では、検証者装置103は、ステップ1509で指定された提示要求内容を、ネットワーク106を介してユーザ装置102へ送信する。ユーザ装置102はこれを受信する。
ステップ1510の後に、ステップ1511(インデックス復号化ステップ)では、ユーザ装置102の復号化部127は、ステップ1504で取得したユーザ秘密鍵を用いて、ステップ1506にて受信した暗号化インデックス183を復号化して、復号化済みインデックス184にする。
ステップ1512(検索ステップ)では、ユーザ装置102の検索部125は、ステップ1510で受信した提示要求内容とステップ1511で復号化により得た復号化済みインデックス184を用いて、復号化済みインデックス184での検索処理を行って、暗号化発行データ172を1つ以上選択する。
【0030】
図17は、データ提示と検証処理(
図15、
図16)のステップ1512(検索ステップ)で実行されるインデックスでの検索処理を示すフローチャートである。
図17のステップ1701では、検索部125の提示要求表示部321は、ステップ1510で受信した提示要求内容を表示するように、ユーザ装置102の表示・出力装置506(例えば、ディスプレイ)などを制御する。この提示要求内容は、提示データ174に含めるべき情報を示すものである。例えば、提示要求表示部321は、
図18乃至21における、提示要求内容を示すメッセージ1801を表示するように制御してよい。
ステップ1702では、ユーザ装置102を取り扱う者(ユーザ)は、提示要求内容を踏まえて、復号化済みインデックス184に適用する検索条件を指定する。この検索条件の指定を実現するために、検索部125の条件候補表示部322は、検索条件として選択可能な候補を表示するように、ユーザ装置102の表示・出力装置506(例えば、ディスプレイ)などを制御する。条件候補表示部322は、例えば、
図18乃至20における、検索条件を選択可能にするインターフェース1802を表示するように制御してよい。また、ユーザによる検索条件を示す入力を受け付けるために、検索部125の条件受付部323が動作する。さらに、受け付けた検索条件を示す入力を受けて、検索部125の条件指定部324は、検索条件の指定を行う。
この検索条件の指定を行う際に、検索条件を指定せずに(検索条件の指定によるレコード810の絞り込みをせずに)以降のステップに進んでもよい。
なお、ステップ1702にて、ユーザが検索条件を手動で指定することに代えて、検索部125の自動条件部325が、提示要求内容に基づいて検索条件を自動的に指定してもよい。
ステップ1703では、検索部125の合致情報特定部326は、指定された検索条件に基づいて、復号化済みインデックス184における検索を行い、検索条件に合致する情報を保持するレコード810(及び、当該レコード810に対応する暗号化発行データ172)を検索結果とする。この時、検索条件の構成要素が2つ以上指定されている場合、合致情報特定部326は、当該構成要素の全てを含むレコード810のみを検索結果に含めてもよいし、当該構成要素のいずれかが含まれているレコード810であれば検索結果に含めてもよい。つまり、検索条件は、構成要素の積であってもよいし、構成要素の和であってもよい。また、ステップ1702にて、検索条件が指定されなかった場合は、合致情報特定部326は、復号化済みインデックス184に登録されている全てのレコード810(及び、当該レコード810に対応する暗号化発行データ172)を検索結果とする。
ステップ1704では、検索部125の検索結果表示部327は、ステップ1703での検索結果を表示するように、ユーザ装置102の表示・出力装置506(例えば、ディスプレイ)などを制御する。
図18と
図19は、ステップ1704にて、検索結果表示部327が検索結果を表示するように制御を行う際に、ユーザ装置102の表示・出力装置506(例えば、ディスプレイ)などに表示される画面である。
図18と
図19のいずれにおいても、発行データ171(暗号化発行データ172)の選択を促す画面1800には、提示要求内容を表示するメッセージ1801と、検索条件を選択可能にするインターフェース1802と、データの選択を可能とするインターフェース1803と、「選択」ボタン1804が表示される。提示要求内容を表示するメッセージ1801は、前述のように、提示要求表示部321の制御に基づく。検索条件を選択可能にするインターフェース1802は、条件候補表示部322の制御に基づいて、検索条件として選択可能な候補を表示し、条件受付部323の制御に基づいて、例えばチェックボックスへの入力(検索条件の構成要素を選択する入力)による検索条件を示す入力を可能とする。このことにより、検索条件を選択可能にするインターフェース1802は、検索条件を選択可能にする。データの選択を可能とするインターフェース1803は、検索結果表示部327の制御に基づいて、検索結果であるレコード810(暗号化発行データ172)のリストを表示し、発行データ選択受付部328の制御に基づいて、例えばチェックボックスへの入力(レコード810を選択する入力)によるレコード810(暗号化発行データ172)の選択を示す入力を可能とする。このことにより、データの選択を可能とするインターフェース1803は、暗号化発行データ172の選択を可能とする。「選択」ボタン1804は、当該ボタンを押下することで、検索部125がステップ1707からステップ1708に制御を遷移するためのものである。「選択」ボタン1804は、データの選択を可能とするインターフェース1803にて1つ以上のレコード810(に対応する暗号化発行データ172)が選択されるまで、非活性化(押下出来ない状態に)されてもよい。
検索条件を選択可能にするインターフェース1802にて検索条件が変更された場合(例えば、検索条件を選択可能にするインターフェース1802内においてチェックボックスへの入力が変更された場合)、合致情報特定部326は、新しい検索条件に基づいて、復号化済みインデックス184に対する検索を実行して、新しい検索結果を得る。検索結果表示部327は、当該新しい検索結果に含まれるレコード810を、データの選択を可能とするインターフェース1803に表示する(表示内容を更新する)ように制御する。
図18は、検索条件が指定されず、復号化済みインデックス184に含まれる全てのレコード810(暗号化発行データ172)を検索結果として表示している画面の例である。
図19は、検索条件の構成要素として「生年月日」と「性別」が指定されたことを受けて、検索条件に合致するレコード810(暗号化発行データ172)を検索結果として表示している画面の例である。
図17に説明を戻す。
図17のステップ1704に伴い、ステップ1705では、検索結果表示部327及び発行データ選択受付部328は、ステップ1704で表示された検索結果に含まれるレコード810(に対応する暗号化発行データ172)から、提示データ174を用意するために用いる暗号化発行データ172を選択するように、ユーザ装置102を取り扱う者(ユーザ)に促す。例えば、
図18や
図19において、検索結果表示部327及び発行データ選択受付部328は、データ選択を可能とするインターフェース1803により、レコード810(暗号化発行データ172)の選択をユーザに促してよい。
ステップ1704やステップ1705に伴い、ステップ1706では、条件受付部323は、検索条件が変更されたかを判定する。例えば、
図18や
図19において、条件受付部323は、検索条件を選択可能にするインターフェース1802におけるチェックボックスの入力が変更されたかを検知することにより、検索条件が変更されたかを判定してもよい。検索条件が変更された場合(YES)はステップ1703に戻り、合致情報特定部326は、変更された検索条件に基づいて、改めて検索を行う。なお、この時、検索条件が変更された結果として検索条件が指定されなかった場合は、前述のように、検索結果は復号化済みインデックス184に保持される全てのレコード810となる。検索条件が変更されていない場合(NO)は、制御はステップ1707に進む。
ステップ1707では、ユーザは、表示されている検索結果から1つ以上のレコード810(に対応する暗号化発行データ172)を選択する。例えば、前述の
図18や
図19において、ユーザが、データの選択を可能とするインターフェース1803内のチェックボックスへの入力を行うことにより、発行データ選択受付部328が、選択されたレコード810(に対応する暗号化発行データ172)を検知してよい。
図20は、ステップ1707にて、ユーザ装置102を取り扱う者(ユーザ)が、データの選択を可能とするインターフェース1803内のチェックボックスへの入力を行って、レコード810(に対応する暗号化発行データ172)の選択を行った際の画面の一例である。
図20は、
図18や
図19と同様の画面であるが、
図20では、データの選択を可能とするインターフェース1803において、ユーザによる、レコード810に対応するチェックボックスへの入力が為された状態となっている。
図20では、チェックマークでその旨が示されている。前述のように、
図20において、「選択」ボタン1804を押下すると、検索部125は、ステップ1707からステップ1708へ制御を遷移する。
図17に説明を戻す。
図17のステップ1707の後に、ステップ1708では、発行データ選択受付部328は、ステップ1707で選択された1つ以上のレコード810(に対応する暗号化発行データ172)で誤りが無いかの確認要請を、ユーザ装置102の表示・出力装置506(例えば、ディスプレイ)などに表示するように制御する。ユーザがYES(誤りが無い)を選択した場合は以降のステップに進み、ユーザがNO(誤りがある)を選択した場合はステップ1703に戻る。
図21は、ステップ1708にて、ユーザ装置102の表示・出力装置506(例えば、ディスプレイ)などに表示される、レコード810(に対応する暗号化発行データ172)の選択の確認をユーザに促す画面の一例である。確認を促す画面2100は、提示要求内容を表示するメッセージ1801と、確認を促すメッセージ2105と、ステップ1707で選択されたレコード810(に対応する暗号化発行データ172)を表示するインターフェース2106と、「はい」ボタン2107と、「いいえ」ボタン2108を表示してよい。ユーザが「はい」ボタン2107を押下すると、検索部125は、ステップ1708からステップ1709へ制御を遷移する。ユーザが「いいえ」ボタン2108を押下すると、検索部125は、ステップ1708からステップ1703へ制御を遷移する。
図19及び20で示した画面の一例では、検索結果及び選択データが1つのレコード810を含む場合を示したが、これらに限定されない。例えば、検索結果が複数のレコード810を含む場合、ステップ1707にて複数のレコード810が選択されてもよい。この場合、ステップ1708(
図21)では、選択されたデータを全て確認画面に表示して選択データの確認をユーザに促してもよい。
図18乃至21で示した各メッセージやボタンに表示される内容やインターフェース、検索条件及びレコード810(に対応する暗号化発行データ172)の選択手法は一例であり、これらに限定されない。
図17に説明を戻す。
図17のステップ1709では、検索部125は、ステップ1707で選択されたレコード810(に対応する暗号化発行データ172)以外に選択したいレコード810があるかをユーザに確認する。他に選択したいレコード810(に対応する暗号化発行データ172)がある場合(YES)はステップ1703に戻り、他に選択したいレコード810がない場合(NO)は、検索部125は、
図17に示される検索処理を終了して、データ提示と検証処理(
図15)のステップ1513に制御を遷移する。
【0031】
ここで、
図17乃至
図21に加えて
図8も参照しながら、インデックス(インデックス181、復号化済みインデックス184)での検索処理について具体例を複数述べる。
1つ目の具体例は、提示要求内容が「運転免許証」の場合である。この場合、ステップ1702にて、自動入力もしくはユーザ入力で、検索条件として「運転免許証」が指定される。ステップ1703にて、合致情報特定部326は、テーブル800において、データの種類802が「運転免許証」であるレコード810を検索する。ステップ1704にて、検索結果が表示される。
図8の例の場合、データID1に紐づくレコード810が検索結果として表示される。ステップ1707にて、ユーザがこのレコード810(に対応する暗号化発行データ172)を選択する。ステップ1708にて、選択したレコード810が確認されることで選択が確定される。他に選択したいレコード810(に対応する暗号化発行データ172)が無い場合は
図17の検索処理を終了する。選択されたレコード810に係るデータID(
図8の例ではデータID1)は、データ提示と検証処理(
図15、
図16)のステップ1513にて、復号化済みインデックス184から取得される。
2つ目の具体例は、提示要求内容が「学歴証明書」であり、且つ、ユーザは大学の学歴証明書を提示したい場合である。この場合、検索条件として「学歴証明書」が指定される。合致情報特定部326は、データの種類802が「学歴証明書」であるレコード810を検索する。
図8の例の場合、データID2とデータID3に紐づくレコード810が検索結果として表示される。ユーザは、この中から「発行者:B大学」であるレコード810を選択し、選択したレコード810(に対応する暗号化発行データ172)を確認する。選択されたレコード810に係るデータID2は、データ提示と検証処理(
図15、
図16)のステップ1513にて、復号化済みインデックス184から取得される。
3つ目の具体例は、提示要求内容が「生年月日」と「性別」の場合である。この場合、検索条件の構成要素として「生年月日」と「性別」の両方が設定される。合致情報特定部326は、設定された検索条件の構成要素に基づいて、インデックス(テーブル800)のレコード810を検索する。検索結果から、レコード810(に対応する暗号化発行データ172)が選択される。
図8の例の場合、合致情報特定部326が、両方の項目(構成要素)を含むレコード810を対象に検索を行った場合は、データID4のみが検索結果となり、いずれかの項目(構成要素)が含まれているレコード810を対象に検索を行った場合は、データID1からデータID4が検索結果となる。
4つ目の具体例は、提示要求内容が「生年月日」と「性別」であり、且つ、「E」から製品を購入した履歴を提示すれば割引が受けられる場合である。この場合、3つ目の具体例と同様に、合致情報特定部326は、「生年月日」と「性別」を検索条件の構成要素とするインデックス(テーブル800)の検索を行う。その検索結果から、レコード810(に対応する暗号化発行データ172)が選択される。その次に、合致情報特定部326が、検索条件を「購買履歴」として、インデックス(テーブル800)のレコード810を検索してもよい。そして、その検索結果から、該当するレコード810(に対応する暗号化発行データ172)が選択されてもよい。
図8の例の場合、例えば、データID4とデータID5を、それぞれの検索処理で(選択したレコード810に係るデータIDとして)選択する。
ここで説明した検索処理や具体例は一例であり、レコード810の内容などはこれらに限定されない。
【0032】
このように、装置102は、検証のために提示する提示データ174を用意する際の、装置102を取り扱う者(ユーザ等)による暗号化発行データ172の選択を可能とする。
そのため、ユーザ等が目視等で確認しながら、提示データ174の用意に適した暗号化発行データの選択を行うことが出来る。
また、装置102は、検証のために提示する提示データ174を作成する際に、復号化済みインデックス184に登録された情報を検索する際の検索条件として選択可能な候補を表示するように制御する。ユーザ等は、候補のなかから選択することにより検索条件を示す入力を行う。装置102は、当該検索条件を示す入力に基づいて検索条件を指定し、検索条件に合致する情報を有するレコード810(暗号化発行データ172)を特定し、特定したレコード810(暗号化発行データ172)を表示するように制御する。そして、ユーザ等は、表示されたレコード810(暗号化発行データ172)のなかから、提示データ174を用意する際に用いる暗号化発行データ172を選択する。
そのため、ユーザ等にとって、検索条件として選択可能な候補のなかから選択することが出来るので、検索条件を示す入力を簡易に行うことが出来る。また、ユーザ等にとって、検索条件に基づいて絞り込んだレコード810(暗号化発行データ172)のなかから、レコード810(暗号化発行データ172)の選択を行えるので、ユーザ等にとって、レコード810(暗号化発行データ172)の選択を示す入力を簡易に行うことが出来る。
さらに、装置102は、検証のために提示する提示データ174に含まれるべき情報を表示するように制御する。
そのため、ユーザ等にとって、検索条件を示す入力を行う際やレコード810(暗号化発行データ172)の選択を示す入力を行う際に、提示データ174に含まれるべき情報を考慮しやすい。
【0033】
説明を
図15に戻す。
図15のステップ1513では、ユーザ装置102のID指定部122にて、ステップ1512で選択された各レコード810(に対応する暗号化発行データ172)のデータIDを復号化済みインデックス184から取得して指定する。
ステップ1514では、ユーザ装置102は、ステップ1501で指定したユーザIDと、ステップ1513で指定した各データIDをネットワーク106を介して第2サーバ105へ送信する。第2サーバ105はこれらを受信する。
ステップ1515では、第2サーバ105は、ステップ1514で受信したユーザIDに紐づいたウォレット410を特定する。第2サーバ105のデータ取得部153は、ステップ1514で受信した各データIDに紐づいた各暗号化発行データ172をウォレット410から取得する。
ステップ1516では、第2サーバ105は、ステップ1515で取得した各暗号化発行データ172を、ネットワーク106を介してユーザ装置102へ送信する。ユーザ装置102はこれを受信する。
ステップ1517(発行データ復号化ステップ)では、ユーザ装置102の復号化部127にて、ステップ1504で取得したユーザ秘密鍵を用いて、ステップ1516で受信した各暗号化発行データ172を復号化して、復号化済み発行データ173とする。
ステップ1518では、ユーザ装置102は、ステップ1517で復号化した後の各復号化済み発行データ173を用いて提示用データを用意(準備、作成)する。例えば、ユーザ装置102は、各復号化済み発行データ173を1つにまとめて提示用データを用意(準備、作成)してもよい。提示用データには、例えば、提示先、提示目的、提示同意書、再利用を防ぐための乱数などの情報が含まれてもよい。また、この時、復号化済み発行データ173に付与された電子署名が、例えばBBS+署名方式などの、ゼロ知識証明による部分データの提示と検証を可能とする署名方式を用いて作成されていれば、復号化済み発行データ173から提示する情報をユーザが選択し(あるいはユーザ装置102が自動選択し)、ユーザ装置102が、選択された情報を基に提示用データを用意(準備、作成)してもよい。
ステップ1519では、ユーザ装置102の署名生成部128は、ステップ1504で取得したユーザ秘密鍵を用いて、提示用データに対する電子署名を生成する。
ステップ1520では、ユーザ装置102は、ステップ1506で取得した(あるいは、ステップ1504で生成した)ユーザ公開鍵401と、ステップ1518で生成した提示用データ及びステップ1519で生成した電子署名を1つのデータにした提示データ174を、ネットワーク106を介して検証者装置103へ送信する。検証者装置103はこれらを受信する。この時、提示データ174は、例えば、非特許文献1に記載のVP形式であってもよい。なお、
図15及び
図16では省略しているが、提示データ174の情報漏洩防止のため、ユーザ装置102の暗号化部126は、検証者装置103の公開鍵で、提示データ174を暗号化して暗号化提示データとし、ユーザ装置102は、暗号化提示データを検証者装置103に送信し、検証者装置103は、当該検証者装置103の秘密鍵で、受信した暗号化提示データを復号化して、提示データ174を得るものであってよい。
説明を
図15から
図16に移す。
図16のステップ1520の後に、ステップ1521では、検証者装置103の署名検証部132は、ユーザ公開鍵401を用いて提示データ174の電子署名を検証する。ステップ1521にて署名検証が成功した場合は以降のステップに進み、署名検証が失敗した場合はデータ提示と検証処理を中止する。
ステップ1522では、検証者装置103は、提示データ174内の各情報を取得し、各情報の内容や発行者を確認し、含まれていれば発行者IDや公開鍵IDを確認する。
ステップ1523では、検証者装置103は、ステップ1522で確認した各情報の発行者の各発行者公開鍵を、ネットワーク106を介して第1サーバ104に要求する。
ステップ1524では、第1サーバ104のデータ取得部142は、ステップ1523で検証者装置103から要求された各発行者公開鍵を、第1サーバDB143から取得する。
ステップ1525では、第1サーバ104は、ステップ1524で取得した各発行者公開鍵を、ネットワーク106を介して検証者装置103へ送信する。検証者装置103はこれらを受信する。
ステップ1526では、検証者装置103の署名検証部132は、ステップ1522で取得した各情報の電子署名に対応する、ステップ1525で受信した発行者公開鍵を用いて、各情報の電子署名を検証する。
【0034】
上記したデータ提示と検証処理では、ステップ1509及びステップ1510にて検証者装置103からユーザ装置102へ提示内容を指定したが、これらのステップを省略してもよい。この場合、ステップ1512では、ステップ1511で得た復号化済みインデックス184のみを用いてインデックスでの検索処理を行って、提示データ174を用意するために用いる暗号化発行データ172を選択する。また、提示内容の指定を対面もしくは非対面で書面や電話などにて行ってもよい。
【0035】
4.その他(変形例)
本開示は、上記で説明した実施形態に限定されるものではなく、様々な変形例を含む。上記は、本開示の理解を容易にするために、詳細に説明したものであり、本開示は必ずしも説明した全ての構成や処理を備えるものに限定されない。実施形態の構成や処理の一部を他に想定しうる実施形態の構成や処理に置換することが可能である。実施形態の構成や処理に他に想定しうる実施形態の構成や処理を加えることも可能である。また、実施形態の構成や処理の一部について、他の構成や処理の追加・削除・置換をすることが可能である。
なお、以下に示すような変形例も可能である。
【0036】
(A)自動化
図3のように(1)インデックス181に登録する情報の選択(2)復号化済みインデックス184に含まれる各レコード810に対する検索条件の指定(3)検索条件に合致する情報に対応するレコード810(に対応する暗号化発行データ172)からの提示データ174の用意のために用いる暗号化発行データ172の選択のそれぞれについて、ユーザが関与する手動の手法と、ユーザが直接関与しない自動の手法を選択することが出来る。
(1)インデックス181に登録する情報の選択の自動化は、インデックス処理部124に自動登録部314を備えることにより実現出来る。自動登録部314は、発行された発行データ171に含まれる情報に基づいて、インデックス181に登録する情報を適宜選択する。例えば、自動登録部314は、発行データ171に含まれる情報のうち、インデックス181に登録する意義のある情報の全て(例えば、電子署名は除かれる。)を、インデックス181に登録する情報として選択してもよい。または、自動登録部314は、発行データ171に含まれる情報のうち、予め定めた規則に従った特定の部分の情報のみを、インデックス181に登録する情報として選択してもよい。そして、自動登録部314は、選択した情報をインデックス181に登録することにより、インデックス181を更新する。
(2)復号化済みインデックス184に含まれる各レコード810に対する検索条件の指定の自動化は、検索部125に自動条件部325を備えることにより実現出来る。自動条件部325は、復号化済みインデックス184に含まれる各レコード810に対する検索条件を適宜指定する。例えば、提示データ174に含まれるべき情報のそれぞれを検索条件の構成要素のそれぞれに対応付けることが出来る場合には、自動条件部325は、当該構成要素の全てを1つのレコード810に含むようなレコード810を抽出するという検索条件の指定(構成要素の積の指定)を行ってもよい。または、自動条件部325は、当該構成要素のいずれかを含むレコード810を抽出するという検索条件の指定(構成要素の和の指定)を行ってもよい。あるいは、自動条件部325は、最初に、構成要素の積の指定を行い、当該指定による検索条件に合致するレコード810が存在しなければ、構成要素の和の指定を行ってもよい。
(3)検索条件に合致する情報に対応するレコード810(に対応する暗号化発行データ172)からの提示データ174の用意のために用いる暗号化発行データ172の選択の自動化は、検索部125に発行データ自動選択部329を備えることにより実現出来る。発行データ自動選択部329は、提示データ174の用意のために用いる暗号化発行データ172の選択を適宜行う。例えば、発行データ自動選択部329は、提示データ174に含まれるべき情報に基づいて、提示データ174を用意するために必要とする暗号化発行データ172の数が最小となるような暗号化発行データ172を選択してもよい。または、発行データ自動選択部329は、検索結果のリストにあるレコード810(暗号化発行データ172)の冒頭から順にレコード810(暗号化発行データ172)を選択していき、選択されたレコード810(暗号化発行データ172)の和集合により、提示データ174を用意出来る状況になった時点の当該和集合を、選択するレコード810(暗号化発行データ172)としてもよい。
なお、上記の(1)(2)(3)のいずれについて自動化を行うのか(あるいは、装置102において自動化を採用することが可能な構成とするか)は、適宜選ぶことが出来る。
このように、(1)の自動化により、発行データ171を発行された際に、装置102を取り扱う者(ユーザ等)がインデックス181に登録する情報を選択する手間を省くことが出来る。また、(2)の自動化により、検証のために提示する提示データ174を用意する際に、ユーザ等が検索条件を示す入力を行う手間を省くことが出来る。さらに、(3)の自動化により、検証のために提示する提示データ174を用意する際に、ユーザ等が暗号化発行データ172の選択を示す入力を行う手間を省くことが出来る。
【0037】
(B)鍵の使い分け
上記の実施形態では、インデックス181及び各発行データ171を同じユーザ公開鍵401で暗号化していた。
しかしながら、インデックス181及び各発行データ171を互いに異なる公開鍵で暗号化してもよい。互いに異なる公開鍵で暗号化する場合、装置(ユーザ装置)102は新しい発行データ171が発行される毎に任意の暗号方式で公開鍵と秘密鍵の鍵ペアを生成し、その鍵ペアに基づいて発行データの暗復号を行う。この場合、復号に用いる秘密鍵は、上記の実施形態にて説明した手法と同様に管理してもよいし、ユーザ公開鍵401で暗号化して第2サーバDB154に暗号化発行データ172と併せて保存してもよい。
インデックス181及び各発行データ171を同じ公開鍵で暗号化する場合は鍵ペア生成や秘密鍵管理の負荷を軽減出来る一方、インデックス181及び発行データ171を互いに異なる公開鍵で暗号化する場合は、各発行データの安全性が向上する。
【0038】
(C)暗号方式
上記の実施形態では、公開鍵暗号方式を用いてインデックス181及び各発行データ171の暗復号を行っている。
しかしながら、別の手法を用いてインデックス181及び各発行データ171の暗復号を行ってもよい。例えば、AES(Advanced Encryption Standard)などの共通鍵暗号方式を用いてインデックス181及び各発行データ171を暗号化し、共通鍵を公開鍵暗号方式で暗号化する事によってインデックス181及び発行データ171を保護してもよい。この場合、暗号化された共通鍵は暗号化インデックス183や暗号化発行データ172と併せて各装置及び各サーバの間で送受信される。
このように、本開示は、暗号方式の如何に関わりなく、広範囲に適用することが出来る。
【0039】
(D)暗号化を伴わない変形例
上記の実施形態では、発行データ等の暗号化と復号化の処理を伴うものとなっている。
しかしながら、発行データの内容の情報漏洩の可能性が低いか、漏洩したときの損害が低いことが想定される場合であっても、本開示は有用である。
装置(例.ユーザ装置)を取り扱う者(ユーザ等)に対して発行された発行データに関して、発行者装置を介することなく、装置(ユーザ等)から検証者装置に、当該発行データに基づく提示データを提示するデータ管理システムを想定すると、ユーザ等に対して発行された発行データの数が増えるにつれ、問題が想定される。具体的には、ユーザ等に対して発行された発行データの数が増えるにつれ、装置(ユーザ等)による発行データの管理が煩雑になるという問題がありうる。また、検証のために提示する提示データを、装置(ユーザ等)が発行データに基づき用意する際においても、ユーザ等に対して発行された発行データの選択処理が煩雑になるという問題がありうる。
つまり、ユーザ等に対して発行された発行データの管理を、装置(ユーザ等)において効率的に行えるようにすることが、解決すべき課題として挙げられる。また、検証のために提示する提示データを、装置(ユーザ等)が発行データに基づき用意する際において、ユーザ等に対して発行された発行データの選択処理を効率的に行えるようにすることが、解決すべき課題として挙げられる。
上記の課題を解決するという観点からは、発行データやインデックスの暗号化を必ずしも伴わない、下記の発明特定事項を有する装置(または、同等の発明特定事項を有する方法やプログラム)が、課題を解決するものと言える。
「装置であって、
前記装置は、インデックス処理部と検索部を備えるものであり、
前記インデックス処理部は、発行された発行データに含まれる情報をインデックスに登録することにより、前記インデックスを更新するものであり、
前記検索部は、検証のために提示する提示データを用意する際に、前記インデックスに登録された情報を検索し、前記提示データを用意するために用いる前記発行データを選択するものである、装置。」
図22は、暗号化を伴わなくてもよい装置の機能構成を示す。
図1に示される実施形態の機能構成と比較すると、
図22の装置102Aは、(
図1には存在した)暗号化部126と復号化部127を必ずしも有していなくてよい。発行データ171の暗号化を伴わない場合には、
図22の装置102Aは、
図1の暗号化インデックス183に代えて(暗号化されない)インデックス183Aを用いるとともに、
図1の暗号化発行データ172に代えて(暗号化されない)発行データ171を用いる。このように、発行データ171とインデックス181の暗号化と復号化の処理を必ずしもしなくてもよい点以外は、
図22に示されるそれぞれの部が行う処理は、
図1に関して説明した処理内容と同様である。
上記のような発明特定事項を有する装置(
図22で示される装置)であれば、上記した問題は解消し課題は解決する。つまり、発行データ171毎に、当該発行データ171に含まれる情報をインデックス181(182、183A、184A)に登録することにより、ユーザ等に対して発行された発行データの数が増えても、発行データの管理をインデックス181を利用して効率的に行うことが出来る。また、検証のために提示する提示データ174を用意する際においても、提示データ174を用意するために用いる発行データ171を選択するためにインデックス181に登録された情報を検索することが出来るので、発行データ171の選択処理を効率的に行える。
このように、本開示におけるインデックス181を用いた発行データ171の管理の手法は、仮に、発行データ171の内容の情報漏洩の可能性が低いか、漏洩したときの損害が低いことが想定される場合であっても、発行データ171の円滑な利活用の実現という観点における課題を解決する。
【0040】
(E)システム構成
上記の実施形態におけるデータ管理システム109において、各装置が備える全てまたは一部の構成や機能部をさらに別の装置で実施してもよい。例えば、発行者DB116を発行者装置101とは別の装置もしくは別のサーバに備え、発行者装置101は、ネットワーク106を介して発行者DB116から各データの取得を行ってもよい。また、例えば、第2サーバ105の各機能部と第2サーバDB154をユーザ装置102が備えてもよい。
【0041】
5.実施形態や変形例の組み合わせ
上記で示した、本開示の実施形態や、実施形態の変形例のそれぞれに示される技術的事項は、技術的な矛盾が生じない限り、適宜組み合わせることが出来る。