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

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

▶ TIS株式会社の特許一覧

特開2023-177695情報処理システム、情報処理方法および情報処理プログラム
<>
  • 特開-情報処理システム、情報処理方法および情報処理プログラム 図1
  • 特開-情報処理システム、情報処理方法および情報処理プログラム 図2
  • 特開-情報処理システム、情報処理方法および情報処理プログラム 図3
  • 特開-情報処理システム、情報処理方法および情報処理プログラム 図4
  • 特開-情報処理システム、情報処理方法および情報処理プログラム 図5
  • 特開-情報処理システム、情報処理方法および情報処理プログラム 図6
  • 特開-情報処理システム、情報処理方法および情報処理プログラム 図7
  • 特開-情報処理システム、情報処理方法および情報処理プログラム 図8
  • 特開-情報処理システム、情報処理方法および情報処理プログラム 図9
  • 特開-情報処理システム、情報処理方法および情報処理プログラム 図10
  • 特開-情報処理システム、情報処理方法および情報処理プログラム 図11
  • 特開-情報処理システム、情報処理方法および情報処理プログラム 図12
  • 特開-情報処理システム、情報処理方法および情報処理プログラム 図13
  • 特開-情報処理システム、情報処理方法および情報処理プログラム 図14
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023177695
(43)【公開日】2023-12-14
(54)【発明の名称】情報処理システム、情報処理方法および情報処理プログラム
(51)【国際特許分類】
   H04L 9/32 20060101AFI20231207BHJP
   H04L 9/14 20060101ALI20231207BHJP
【FI】
H04L9/32 200B
H04L9/32 200D
H04L9/14
【審査請求】未請求
【請求項の数】9
【出願形態】OL
(21)【出願番号】P 2022090497
(22)【出願日】2022-06-02
(71)【出願人】
【識別番号】514020389
【氏名又は名称】TIS株式会社
(74)【代理人】
【識別番号】110002147
【氏名又は名称】弁理士法人酒井国際特許事務所
(72)【発明者】
【氏名】中川 卓俊
(57)【要約】
【課題】本人認証のため特定の証明書の提出を求められる場において、認証を受ける利用者が、証明書として開示する個人情報を任意に選択できるようにすること。
【解決手段】本願に係る情報処理システムは、利用者装置と、検証者装置とを含む。利用者装置は、個人情報の内容を示す要素と、要素に対応する公開鍵との組合せごとに算出されたハッシュ値を取得する取得部と、要素のうち、検証者への提供を許可する許可対象の要素の指定を受け付ける受付部と、組合せのうち、許可対象の要素に対応する組合せについては検証者装置に送信する一方で、提供を許可されていない無許可の要素に対応する組合せについては検証者装置に送信しない代わりに、ハッシュ値のうち、無許可の要素に対応するハッシュ値を検証者装置に送信する送信部とを有する。検証者装置は、送信された組合せとハッシュ値に基づいて、検証する検証部を有する。
【選択図】図6
【特許請求の範囲】
【請求項1】
証明書を利用する利用者の装置である利用者装置と、証明書に関して検証する検証者の装置である検証者装置とを含む情報処理システムであって、
前記利用者装置は、
前記利用者の個人情報の内容を示す要素と、前記要素に対応する公開鍵との組合せごとに算出されたハッシュ値を取得する取得部と、
前記要素のうち、前記検証者への提供を許可する許可対象の要素の指定を前記利用者から受け付ける受付部と、
前記組合せのうち、前記許可対象の要素に対応する組合せについては前記検証者装置に送信する一方で、提供を許可されていない無許可の要素に対応する組合せについては前記検証者装置に送信しない代わりに、前記ハッシュ値のうち、前記無許可の要素に対応するハッシュ値を前記検証者装置に送信する送信部と、
を有し、
前記検証者装置は、
前記送信部により送信された前記組合せと前記ハッシュ値とに基づいて、前記要素を提供した提供元が前記利用者であることの正当性を検証する検証部
を有する
ことを特徴とする情報処理システム。
【請求項2】
前記取得部は、
前記組合せごとに算出されたハッシュ値として、前記利用者により登録された個人識別情報の内容を示す第1の要素と、前記第1の要素に対応する公開鍵との組である第1の組合せごとに算出された第1のハッシュ値を取得し、
前記受付部は、
前記許可対象の要素の指定として、前記第1の要素のうち、前記検証者への提供を許可する許可対象の第1の要素の指定を前記利用者から受け付け、
前記送信部は、
前記第1の組合せのうち、前記許可対象の第1の要素に対応する組合せについては前記検証者装置に送信する一方で、提供を許可されていない無許可の第1の要素に対応する組合せについては前記検証者装置に送信しない代わりに、前記第1のハッシュ値のうち、前記無許可の第1の要素に対応するハッシュ値を前記検証者装置に送信し、
前記検証部は、
前記送信部により送信された前記第1の組合せおよび前記第1のハッシュ値に基づいて、前記要素を提供した提供元が前記利用者であることの正当性を検証する
ことを特徴とする請求項1に記載の情報処理システム。
【請求項3】
前記情報処理システムは、
証明書を発行する発行者の装置である発行者装置をさらに含み、
前記取得部は、
前記組合せごとに算出されたハッシュ値として、前記発行者が前記利用者について証明する内容を示す第2の要素と、前記第2の要素に対応する公開鍵との組である第2の組合せごとに算出された第2のハッシュ値を取得し、
前記受付部は、
前記許可対象の要素の指定として、前記第2の要素のうち、前記検証者への提供を許可する許可対象の第2の要素の指定を前記利用者から受け付け、
前記送信部は、
前記第2の組合せのうち、前記許可対象の第2の要素に対応する組合せについては前記検証者装置に送信する一方で、提供を許可されていない無許可の第2の要素に対応する組合せについては前記検証者装置に送信しない代わりに、前記第2のハッシュ値のうち、前記無許可の第2の要素に対応するハッシュ値を前記検証者装置に送信し、
前記検証部は、
前記送信部により送信された前記第2の組合せおよび前記第2のハッシュ値に基づいて、前記要素を提供した提供元が前記利用者であることの正当性を検証する
ことを特徴とする請求項2に記載の情報処理システム。
【請求項4】
前記発行者装置は、
前記第1の組合せごとに算出された前記第1のハッシュ値それぞれを連結した連結情報を所定のハッシュ関数に入力することで1つの第1のトークンを生成するとともに、前記第2の組合せごとに算出された前記第2のハッシュ値それぞれを連結した連結情報を前記所定のハッシュ関数に入力することで1つの第2のトークンを生成し、前記第1のトークンおよび前記第2のトークンを連結した連結情報を前記所定のハッシュ関数に入力することで、1つの統合トークンを生成する生成部と、
前記統合トークンに基づき生成されたハッシュ値が前記発行者側の秘密鍵を用いて暗号化された前記発行者の電子署名と、前記発行者の公開鍵と、前記統合トークンとをブロックチェーンに登録する登録部と
をさらに有する
ことを特徴とする請求項3に記載の情報処理システム。
【請求項5】
前記送信部は、
前記統合トークン基づき生成された文字列が、前記送信部により送信された要素に対応する前記公開鍵に紐付けられる秘密鍵を用いて暗号化された前記利用者の電子署名を前記検証者装置に対してさらに送信する
ことを特徴とする請求項4に記載の情報処理システム。
【請求項6】
前記検証者装置は、
前記送信部により送信された前記第1の組合せごとに、当該第1の組合せに含まれる許可対象の第1の要素および公開鍵を用いて算出されたハッシュ値と、前記送信部により送信された前記第1のハッシュ値とを連結した連結情報を前記所定のハッシュ関数に入力することで1つの第1の検証用トークンを生成するとともに、前記送信部により送信された前記第2の組合せごとに、当該第2の組合せに含まれる許可対象の第2の要素および公開鍵を用いて算出されたハッシュ値と、前記送信部により送信された前記第2のハッシュ値とを連結した連結情報を前記所定のハッシュ関数に入力することで1つの第2の検証用トークンを生成し、前記第1の検証用トークンおよび前記第2の検証用トークンを連結した連結情報を前記所定のハッシュ関数に入力することで、1つの検証用統合トークンを生成する生成部
をさらに有し、
前記検証部は、
前記送信部により送信された前記第1の組合それぞれに含まれる公開鍵、および、前記送信部により送信された前記第2の組合それぞれに含まれる公開鍵の全て値を足し合わせて得られた1つの合算公開鍵を用いて、前記利用者の電子署名を複合することでハッシュ値を取得し、取得したハッシュ値と、前記検証用統合トークンを示すハッシュ値との比較に基づき、前記利用者の正当性を検証する
ことを特徴とする請求項5に記載の情報処理システム。
【請求項7】
前記検証部は、
前記ブロックチェーンに登録される前記統合トークンと、前記検証用統合トークンとが一致している場合に、前記発行者の公開鍵を用いて、前記発行者の電子署名を複合することでハッシュ値を取得し、取得したハッシュ値と、前記検証用統合トークンを示すハッシュ値との比較に基づき、前記発行者の正当性をさらに検証する
ことを特徴とする請求項6に記載の情報処理システム。
【請求項8】
証明書を利用する利用者の装置である利用者装置と、証明書に関して検証する検証者の装置である検証者装置とを含む情報処理システムによって実行される情報処理方法であって、
前記利用者装置が、
前記利用者の個人情報の内容を示す要素と、前記要素に対応する公開鍵との組合せごとに算出されたハッシュ値を取得し、
前記要素のうち、前記検証者への提供を許可する許可対象の要素の指定を前記利用者から受け付け、
前記組合せのうち、前記許可対象の要素に対応する組合せについては前記検証者装置に送信する一方で、提供を許可されていない無許可の要素に対応する組合せについては前記検証者装置に送信しない代わりに、前記ハッシュ値のうち、前記無許可の要素に対応するハッシュ値を前記検証者装置に送信し、
前記検証者装置が、
送信された前記組合せと前記ハッシュ値とに基づいて、前記要素を提供した提供元が前記利用者であることの正当性を検証する
ことを特徴とする情報処理方法。
【請求項9】
証明書を利用する利用者の装置である利用者装置が実行する第1のプログラムと、証明書に関して検証する検証者の装置である検証者装置が実行する第2のプログラムを含む情報処理プログラムであって、
前記第1のプログラムは、
前記利用者の個人情報の内容を示す要素と、前記要素に対応する公開鍵との組合せごとに算出されたハッシュ値を取得する取得手順と、
前記要素のうち、前記検証者への提供を許可する許可対象の要素の指定を前記利用者から受け付ける受付手順と、
前記組合せのうち、前記許可対象の要素に対応する組合せについては前記検証者装置に送信する一方で、提供を許可されていない無許可の要素に対応する組合せについては前記検証者装置に送信しない代わりに、前記ハッシュ値のうち、前記無許可の要素に対応するハッシュ値を前記検証者装置に送信する送信手順と、
を前記利用者装置に実行させ、
前記第2のプログラムは、
前記送信手順により送信された前記組合せと前記ハッシュ値とに基づいて、前記要素を提供した提供元が前記利用者であることの正当性を検証する検証手順
を前記検証者装置に実行させる
ことを特徴とする情報処理プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理システム、情報処理方法および情報処理プログラムに関する。
【背景技術】
【0002】
近年、通信ネットワークの普及が進み、通信ネットワークを介したサービスが盛んに提供されている。このようなサービスを利用する際、ユーザは、各種の認証処理によって本人性の証明を求められる場合がある。例えば、サービスへのログインや、ブロックチェーン技術において取引等を示すトランザクションを送受信する際や、メタバース空間での取引等、真にユーザ本人が行動を起こしていることを証明するため、ユーザは認証を行う。
【0003】
例えば、特許文献1には、証明書発行機関側が、証明書発行の要求仕様に基づき作成された証明書情報が格納された第1トランザクションをブロックチェーンのネットワークに送信し、利用者側が、ブロックチェーン上の第1トランザクションを特定することで、特定した第1トランザクションから証明書情報を取得するシステムが開示されている。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2020-190803号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、上記の従来技術では、本人認証のため特定の証明書の提出を求められる場において、認証を受ける利用者が、証明書として開示する個人情報を任意に選択することができるとは限らない。
【0006】
例えば、上記の従来技術は、証明書が電子化されたときに起こり得る問題に対処できる仕組みを提供するものであり、本人認証の場において、証明書として開示する個人情報を利用者側が任意に選択できるよう制御する点については記載も示唆もない。
【0007】
このようなことから、上記の従来技術では、本人認証のため特定の証明書の提出を求められる場において、認証を受ける利用者が、証明書として開示する個人情報を任意に選択することができるとは限らない。
【0008】
本願は、上記に鑑みてなされたものであって、本人認証のため特定の証明書の提出を求められる場において、認証を受ける利用者が、証明書として開示する個人情報を任意に選択することができる情報処理システム、情報処理方法および情報処理プログラムを提供することを目的とする。
【課題を解決するための手段】
【0009】
本願に係る情報処理システムは、証明書を利用する利用者の装置である利用者装置と、証明書に関して検証する検証者の装置である検証者装置とを含む情報処理システムであって、前記利用者の個人情報の内容を示す要素と、前記要素に対応する公開鍵との組合せごとに算出されたハッシュ値を取得する取得部と、前記要素のうち、前記検証者への提供を許可する許可対象の要素の指定を前記利用者から受け付ける受付部と、前記組合せのうち、前記許可対象の要素に対応する組合せについては前記検証者装置に送信する一方で、提供を許可されていない無許可の要素に対応する組合せについては前記検証者装置に送信しない代わりに、前記ハッシュ値のうち、前記無許可の第1の要素に対応するハッシュ値を前記検証者装置に送信する送信部と、を有し、前記検証者装置は、前記送信部により送信された前記組合せと前記ハッシュ値に基づいて、前記要素を提供した提供元が前記利用者であることの正当性を検証する検証部を有することを特徴とする。
【発明の効果】
【0010】
実施形態の一態様によれば、本人認証のため特定の証明書の提出を求められる場において、認証を受ける利用者が、証明書として開示する個人情報を任意に選択することができる。
【図面の簡単な説明】
【0011】
図1図1は、実施形態に係る情報処理システムの一例を示す図である。
図2図2は、実施形態に係る情報処理手順の具体例(1)を示す図である。
図3図3は、実施形態に係る情報処理手順の具体例(2)を示す図である。
図4図4は、実施形態に係る利用者装置の構成例を示す図である。
図5図5は、実施形態に係る発行者装置の構成例を示す図である。
図6図6は、実施形態に係る検証者装置の構成例を示す図である。
図7図7は、証明書の発行要求に応じて行われる情報処理の手法を説明する説明図である。
図8図8は、証明書の発行要求に応じてトークンが生成される際の情報処理手法(1)を説明する説明図である。
図9図9は、証明書の発行要求に応じてトークンが生成される際の情報処理手法(2)を説明する説明図である。
図10図10は、証明書の発行要求に応じてトークンが生成される際の情報処理手法(3)を説明する説明図である。
図11図11は、固有情報データベースの一例を示す図である。
図12図12は、個人情報の提供に応じて行われる情報処理の手法を説明する説明図である。
図13図13は、提供された情報に基づく検証処理の手法を説明する説明図である。
図14図14は、実施形態に係る情報処理装置のハードウェア構成例を示すブロック図である。
【発明を実施するための形態】
【0012】
以下に、情報処理システム、情報処理方法および情報処理プログラムを実施するための形態(以下、「実施形態」と記載する)の一例について図面を参照しつつ詳細に説明する。なお、この実施形態により情報処理システム、情報処理方法、検証装置および検証プログラムが限定されるものではない。また、以下の実施形態において同一の部位には同一の符号を付し、重複する説明は省略する。
【0013】
[実施形態]
〔1.はじめに〕
現在、多くのシステムでは、サーバ側に個人情報が保持されるため、個人情報を取得したいシステム(例えば、検証者)は、個人情報を提示してサービスを受けようとする利用者(個人情報の保有者)からサーバへのアクセス権限を取得し、そして、サーバにアクセスすることで個人情報を取得する。
【0014】
しかしながら、上記のシステムでは、利用者は、サーバが正しい情報を提供しているかどうかを確認することができないうえに、検証者が取得した個人情報が正しいかどうか確認することもできない。
【0015】
そこで、本願の提案技術に係る情報処理システムでは、利用者側は基本的な個人情報(氏名、生年月日、住所、メールアドレス等)と、公開鍵を発行者側に送信することで、トークンの発行および登録を要求する。発行者側は、利用者へ発行する情報(例えば、ワクチン情報、各種免許情報等)と利用者から依頼された情報からトークンを作成し、また、日時とトークンを連結したデータから署名値を作成し、トークン、署名日時、署名値をブロックチェーンに登録する。
【0016】
このような状態において、情報処理システムでは、検証者側は、利用者に個人情報の提出を要求する。利用者側は、個人情報のうち検証者に提供してよいと考えるものを指定することで、指定した個人情報と対応する公開鍵とのセットを検証者に提供する一方で、提供したくない情報についてはハッシュ化した状態で提供する。
【0017】
検証者側は、保有者から取得した情報と、トークンとに基づいて、保有者および発行者の正当性を検証する。
【0018】
このような情報処理システムによれば、本人認証のため特定の証明書の提出を求められる場において、認証を受ける利用者が、証明書として開示する個人情報を任意に選択することができる。すなわち、利用者は、自身が開示してよいと考える個人情報のみが記された証明書を作成し、これを検証者に提供することで証明書に基づく認証を受けることができるようになる。
【0019】
〔2.システム構成〕
まず、図1を用いて、実施形態に係るシステムの構成を説明する。図1は、実施形態に係る情報処理システムの一例を示す図である。図1には、実施形態に係る情報処理システムの一例として、情報処理システム1が示される。
【0020】
図1に示すように、情報処理システム1は、利用者装置10と、発行者装置20と、検証者装置30とを含む。また、利用者装置10と、発行者装置20と、検証者装置30とは、ネットワークNを介して、有線または無線により通信可能に接続されてよい。
【0021】
利用者装置10は、個人情報の利用者(例えば、特定のサービスを受けるために、自身の個人情報が記された証明書を提出し、本人認証を受けようとする利用者)側に属する情報処理装置である。例えば、利用者装置10は、利用者からの指示に応じて、発行者装置20や検証者装置30にアクセスする。
【0022】
発行者装置20は、利用者の個人情報を管理し、利用者の必要性(例えば、特定のサービスを受けるにあたって、個人情報の提出を求められた場合)に応じて、個人情報が記された証明書を発行する発行者側に属する情報処理装置である。
【0023】
検証者装置30は、利用者に対して個人情報の提出を求め、提出された個人情報に基づき、証明書に関する検証を行う検証者(例えば、利用者に対して特定のサービスを提供する提供者)側に属する情報処理装置である。
【0024】
また、図1に示すように、利用者装置10、発行者装置20、検証者装置30は、クラウド側で処理を行うクラウドコンピュータすなわちサーバ装置であってよい。
【0025】
〔3.アクターについて〕
続いて、実施形態に係る情報処理システム1において役割を有する人物あるいは組織であるアクターについて説明する。
【0026】
上記の通り、アクターとしては、利用者、検証者、発行者が挙げられる。利用者は、例えば、特定のサービスを受けるにあたって本人認証される人物であってよい。一例として、このような利用者としては、社内システムへのログインのため本人認証される社員、あるいは、飛行機や鉄道等の交通機関サービスを受けるため本人認証される旅行者が挙げられる。
【0027】
また、検証者は、例えば、特定のサービスを提供する組織であって、特定のサービスを受けようとする上記利用者に対して、個人情報が記された証明書の提出を求める組織であってよい。一例として、このような検証者としては、航空会社、鉄道会社、娯楽施設(遊園地、美術館等)、店舗が挙げられる。
【0028】
また、発行者は、例えば、証明書の提出を求められる上記利用者に対して、利用者が必要とする個人情報の証明書を発行する組織であってよい。一例として、このような発行者としては、自治体、医療機関が挙げられる。
【0029】
また上記例によれば、情報処理システム1が適用されるシーンとして、海外旅行のため飛行機チケットを予約しようとする旅行者(利用者の一例)が、航空会社(検証者の一例)からワクチン接種の証明書提出を求められたため、保健センター(発行者)に対して、ワクチン接種の証明書発行を求めるというシーンが挙げられる。以下の実施形態では、係るシーンを例に挙げて、情報処理システム1で実現される情報処理を説明する。
【0030】
なお、情報処理システム1が適用されるシーンは、係る例に限定されるものではなく、例えば、運転免許証、保険証、マイカード等の提出を求められるシーン等も挙げられる。また、情報処理システム1は、入学試験、入社試験、所定の医療機関での受診等、個人の認証を求められるシチューションであれば、いかなる場面にも適用可能である。
【0031】
〔4.実施形態に係る情報処理の具体例〕
実施形態に係る情報処理は、情報処理システム1において、利用者装置10、発行者装置20、検証者装置30に導入されるプロラムに応じた手法で実現される。図2および図3では、このような情報処理の具体的な手法を説明する。
【0032】
また、図2および図3には、海外旅行のため飛行機チケットを予約しようとする利用者U1(旅行者)が、検証者V3(航空会社)からワクチン接種の証明書提出を求められたため、発行者P2(保健センター)に対して、ワクチン接種の証明書発行を求める場面を例に、情報処理手順の具体例が示される。
【0033】
まず、図2では、発行要求~統合トークン生成~ブロックチェーンへの登録という一連の情報処理を説明する。図2は、実施形態に係る情報処理手順の具体例(1)を示す図である。
【0034】
図2の例では、利用者U1は、検証者V3からワクチンを接種したことを証明する証明書(ワクチン接種証明書)を提出するよう求められている。係る場合、利用者U1は、自身の端末装置Tを用いて、発行者P2に対してワクチン接種証明書を発行するよう要求する。
【0035】
なお、端末装置Tは、例えば、スマートフォンや、タブレット型端末や、ノート型PCや、デスクトップPCや、携帯電話機や、PDA等により実現されてよく、また、発行者装置20や検証者装置30との間での情報の送受信を実現するためのアプリケーションが導入されていてよい。係るアプリケーションは、発行者装置20や検証者装置30にアクセスするための専用のアプリケーションとして実装されてもよいし、ブラウザなどの汎用的なアプリケーションであってもよい。
【0036】
図2の説明に戻り、端末装置Tは、利用者U1の操作に応じて、ワクチン接種証明書の発行要求を利用者装置10に送信する(ステップS21)。
【0037】
利用者装置10は、様々な利用者の基本的な個人情報として、例えば、氏名、生年月日、国籍等の個人識別情報を保有している。すなわち、個人識別情報は、各利用者によって利用者装置10に対して予め登録されていてよい。
【0038】
利用者装置10は、端末装置Tから発行要求を受け付けると、利用者U1の個人識別情報(例えば、氏名、生年月日、・・・)がどのようなものであるかその具体的な内容を示す第1の要素を含む発行要求を発行者装置20に送信する(ステップS22)。具体的には、利用者装置10は、第1の要素ごとに、利用者U1に対応する個別の公開鍵を取得し、第1の要素と、公開鍵との組合せである第1の組合せを発行者装置20に送信する。
【0039】
図2には、利用者装置10が、第1の組合せとして、氏名を示す第1の要素「Suzuki Taro」と、公開鍵PK11との組合せ、生年月日を示す第1の要素「1980-11-22」と、公開鍵PK12との組合せ等を発行者装置20に送信した例が示される。
【0040】
なお、図2では不図示であるが、利用者装置10は、利用者U1について証明されるワクチン接種状況の内容を示す第2の要素であって、発行者装置20で発行される第2の要素の件数に応じた数の公開鍵もさらに取得し発行者装置20に送信してよい。
【0041】
発行者装置20は、発行要求を受け付けると、第1の組合せと、発行者P2が利用者U1に関して保有している固有情報とに基づいて、1つの統合トークンを生成する(ステップS23)。ここで、発行者P2が利用者U1に関して保有している固有情報とは、図2の例では、利用者U1によるワクチン接種状況を示すワクチン情報である。ワクチン情報には、利用者U1について証明されるワクチン接種状況(例えば、接種回数、最終接種日、・・・)の内容を示す第2の要素が含まれている。
【0042】
このため、発行者装置20は、第2の要素それぞれに対して、利用者U1に対応する個別の公開鍵を対応付けることで、第2の要素と、公開鍵との組合せである第2の組合せを得る。なお、ここで用いられる公開鍵は、ステップS22において利用者装置10から送信されたものであってよい。
【0043】
図2には、発行者装置20が、第2の組合せとして、接種回数を示す第2の要素「two」と、公開鍵PK21との組合せ、最終接種日を示す第2の要素「2021-10-20」と、公開鍵PK22との組合せ生成した例が示される。
【0044】
このような状態において、発行者装置20は、ハッシュ関数H(m)に第1の組合せを入力することで、第1の組合せごとにハッシュ値を算出する。そして、発行者装置20は、各ハッシュ値を連結した連結情報をハッシュ関数H(m)に入力することで、第1のトークン「token1」を生成する。図2の例では、発行者装置20は、氏名を示す第1の要素「Suzuki Taro」と、公開鍵PK11との第1の組合せに基づき、ハッシュ値「Hash11」を算出したものとする。また、発行者装置20は、生年月日を示す第1の要素「1980-11-22」と、公開鍵PK12との第1の組合せに基づき、ハッシュ値「Hash12」を算出したものとする。
【0045】
また、発行者装置20は、ハッシュ関数H(m)に第2の組合せを入力することで、第2の組合せごとにハッシュ値を算出する。そして、発行者装置20は、各ハッシュ値を連結した連結情報をハッシュ関数H(m)に入力することで、第2のトークン「token2」を生成する。図2の例では、発行者装置20は、接種回数を示す第2の要素「two」と、公開鍵PK21との第2の組合せに基づき、ハッシュ値「Hash21」を算出したものとする。また、発行者装置20は、最終接種日を示す第2の要素「2021-10-20」と、公開鍵PK22との第2の組合せに基づき、ハッシュ値「Hash22」を算出したものとする。
【0046】
そして、発行者装置20は、第1のトークン「token1」と第2のトークン「token2」とを連結した連結情報をハッシュ関数H(m)に入力することで、1つの統合トークン「token12」を生成する。
【0047】
また、発行者装置20は、発行者P2に対応する秘密鍵と、電子署名を行う現在日時「signTime♯P2」と、統合トークン「token12」とに基づいて、署名値「SIN♯P2」を算出する(ステップS24)。例えば、発行者装置20は、現在日時「signTime♯P2」と、統合トークン「token12」とを連結した連結情報を関数Sig(p,m)に入力して得られたハッシュ値を秘密鍵で暗号化することにより、署名値「SIN♯P2」を算出する。
【0048】
そして、発行者装置20は、統合トークン「token12」と、現在日時「signTime♯P2」と、発行者P2の証明となる署名値「SIN♯P2」とをブロックチェーンBCに登録する(ステップS25)。なお、図2では不図示であるが、発行者装置20は、ステップS24の暗号化で用いた秘密鍵(発行者P2に対応する秘密鍵)のペアとなっている公開鍵も登録する。
【0049】
また、発行者装置20は、ステップS23において、第1の組合せ、第2の組合せそれぞれについて算出したハッシュ値を利用者装置10に応答する(ステップS26)。また、発行者装置20は、ワクチン接種状況について、利用者U1に対して証明される内容の第2の要素も応答する。第2の要素の応答は、実質、利用者U1に対するワクチン接種証明書の発行に相当する。
【0050】
ここまで、図2を用いて、発行要求~統合トークン生成~ブロックチェーンへの登録という一連の情報処理を説明してきた。このように、ブロックチェーンBCへの登録が済み、また、利用者装置10が、利用者U1の個人情報の要素ごとにハッシュ値を取得できている状態で、利用者U1は、検証者装置30に対して正当性の認証を要求することができるようになる。
【0051】
例えば、利用者U1は、端末装置Tを用いて、認証要求することができる。図2に示すように、端末装置Tは、利用者U1の操作に応じて、正当性の認証として、ワクチン接種証明書に関する検証を行うよう要求する(ステップS3)。
【0052】
ここからは、図3を用いて、ステップ3で行われる処理手順をより具体的に説明する。図3では、個人情報の提供~提供された情報に基づく検証処理という一連の情報処理を説明する。図3は、実施形態に係る情報処理手順の具体例(2)を示す図である。
【0053】
まず、利用者U1は、端末装置Tを用いて、第1の要素のうち、検証者V3への提供を許可する許可対象の第1の要素を指定し、また、第2の要素のうち、検証者V3への提供を許可する許可対象の第2の要素を指定する。
【0054】
係る場合、端末装置Tは、利用者U1の操作に応じて、許可対象の第1の要素と、許可対象の第2の要素とを利用者装置10に送信する。例えば、利用者U1は、第1の要素のうち自身の氏名は検証者V3開示してもよいと考え、氏名を示す第1の要素「Suzuki Taro」を許可対象と指定したとする。また、利用者U1は、第2の要素のうち接種回数は検証者V3に開示してもよいと考え、接種回数を示す第2の要素「two」を許可対象と指定したとする。係る場合、端末装置Tは、第1の要素「Suzuki Taro」と、第2の要素「two」とを利用者装置10に送信する。
【0055】
係る場合、利用者装置10は、第1の要素「Suzuki Taro」と、第2の要素「two」とを許可対象とする指定を利用者U1から受け付ける(ステップS31)。
【0056】
利用者装置10は、第1の組合せ、第2の組合せのうち、許可対象として指定された要素に対応する組合せを抽出する一方で、許可対象として指定されていない要素に対応する組合せについては抽出せず、代わりにハッシュ値を抽出する(ステップS32)。
【0057】
図1の例では、利用者装置10は、第1の要素「Suzuki Taro」が許可対象として指定されたことに応じて、第1の要素「Suzuki Taro」と、公開鍵PK11との第1の組合せを抽出する。また、利用者装置10は、第2の要素「two」が許可対象として指定されたことに応じて、第2の要素「two」と、公開鍵PK21との第2の組合せを抽出する。
【0058】
一方、利用者装置10は、第1の要素「1980-11-22」と、公開鍵PK12との第1の組合せや、第2の要素「2021-10-20」と、公開鍵PK22との第2の組合せ等の許可対象となっていない組合せについては抽出しない。その代わりにこれらの組合せに対応するハッシュ値(「Hash12」、「Hash22」等)を抽出する。
【0059】
また、利用者装置10は、ステップS32で抽出した組合せに対応する公開鍵(すなわち、公開鍵PK11および公開鍵PK21)それぞれに対して紐付けられる各秘密鍵と、利用者U1から指定を受け付けた現在日時「signTime♯U1」と、統合トークン「token12」とに基づいて、署名値「SIN♯U1」を算出する(ステップS33)。例えば、利用者装置10は、現在日時「signTime♯U1」と、統合トークン「token12」とを連結した連結情報を関数Sig(p,m)に入力して得られたハッシュ値を秘密鍵で暗号化することにより、署名値「SIN♯U1」を算出する。署名値「SIN♯U1」は、利用者U1を証明するものである。
【0060】
そして、利用者装置10は、ステップS32で抽出した情報と、現在日時「signTime♯U1」と、署名値「SIN♯U1」とを検証者装置30に送信する(ステップS34)。
【0061】
検証者装置30は、ステップS32で抽出された情報と、現在日時「signTime♯U1」と、署名値「SIN♯U1」とに基づいて、ワクチン接種証明書に関する正当性の検証処理を実行する(ステップS35)。具体的には、検証者装置30は、利用者装置10から送信された要素(許可対象として指定された要素)を提供した提供元が利用者U1であることの正当性を検証する第1の検証処理を実行する。また、検証者装置30は、利用者装置10から送信された要素(許可対象として指定された要素)を証明するワクチン接種証明書の発行元が発行者P2であることの正当性を検証する第2の検証処理を実行する。
【0062】
例えば、検証者装置30は、第1の検証処理では、第1の要素「Suzuki Taro」と、公開鍵PK11との第1の組合せをハッシュ関数H(m)に入力することでハッシュ値を算出する。そして、検証者装置30は、算出したハッシュ値と、許可対象として指定されなかった第1の組合せの代わりに抽出されたハッシュ値とを連結した連結情報をハッシュ関数H(m)に入力することで、第1の検証用トークン「token♯1」を生成する。
【0063】
また、検証者装置30は、第2の要素「two」と、公開鍵PK21との第2の組合せをハッシュ関数H(m)に入力することでハッシュ値を算出する。そして、検証者装置30は、算出したハッシュ値と、許可対象として指定されなかった第2の組合せの代わりに抽出されたハッシュ値とを連結した連結情報をハッシュ関数H(m)に入力することで、第2の検証用トークン「token♯2」を生成する。
【0064】
そして、検証者装置30は、第1の検証用トークン「token♯1」と、第2の検証用トークン「token♯2」とを連結した連結情報をハッシュ関数H(m)に入力することで、1つの検証用統合トークン「token♯12」を生成する。
【0065】
また、検証者装置30は、利用者装置10から送信された公開鍵PK11およびPK21を足し合わせて得られた1つの合算公開鍵を用いて、署名値「SIN♯U1」を複合することでハッシュ値を取得する。そして、検証者装置30は、このハッシュ値と、検証用統合トークン「token♯12」との比較に基づいて、利用者U1の本人性を検証する。
【0066】
また、検証者装置30は、第2の検証処理では、ブロックチェーンBCに登録される統合トークン「token12」と、検証用統合トークン「token♯12」とが一致しているか否かを判定する。
【0067】
検証者装置30は、統合トークン「token12」と、検証用統合トークン「token♯12」とが一致している場合には、ブロックチェーンBCに登録される公開鍵(発行者P2に対応する秘密鍵のペアとなっている公開鍵を用いて、署名値「SIN♯P2」を複合することでハッシュ値を取得する。そして、検証者装置30は、このハッシュ値と、検証用統合トークン「token♯12」との比較に基づいて、発行者P2の本人性を検証する。
【0068】
〔5.装置の構成〕
ここからは、図4図6を用いて、実施形態に係る各装置について説明する。具体的には、利用者装置10、発行者装置20、検証者装置30それぞれについて説明する。
【0069】
〔5-1.利用者装置の構成〕
まず、図4を用いて、実施形態に係る利用者装置10について説明する。図4は、実施形態に係る利用者装置10の構成例を示す図である。図4に示すように、利用者装置10は、通信部11と、記憶部12と、制御部13とを有する。
【0070】
(通信部11について)
通信部11は、例えば、NIC(Network Interface Card)等によって実現される。そして、通信部11は、ネットワークと有線または無線で接続され、例えば、発行者装置20、検証者装置30との間で情報の送受信を行う。
【0071】
(記憶部12について)
記憶部12は、例えば、RAM(Random Access Memory)、フラッシュメモリ等の半導体メモリ素子またはハードディスク、光ディスク等の記憶装置によって実現される。記憶部12は、個人識別情報データベース12aと、固有情報データベース12bとを有する。
【0072】
(個人識別情報データベース12aについて)
個人識別情報データベース12aは、利用者の基本的な個人情報として、例えば、氏名、生年月日、国籍等の個人識別情報を記憶する。氏名、生年月日、国籍等の個人識別情報の具体的な内容は、第1の要素に相当する。個人識別情報データベース12aは、利用者ごとに個人識別情報を記憶するが、以下の実施形態では、利用者U1にフォーカスした内容の例を示す。なお、個人識別情報は、個人情報の一例である。
【0073】
(固有情報データベース12bについて)
固有情報データベース12bは、発行者が利用者に関して保有している固有情報を記憶する。固有情報としては、ワクチン接種情報、免許証情報、使用薬歴情報、学歴情報、職歴情報、資格情報(例えば、運転免許、語学免許)等が挙げられる。ワクチン接種情報を例に挙げると、接種回数、最終接種日、ワクチン接種証明書の発行日等の固有情報の具田的な内容は、第2の要素に相当する。固有情報データベース12bは、利用者ごとに固有情報を記憶するが、以下の実施形態では、ワクチン接種を実施した保健センターである発行者P2および利用者U1にフォーカスした内容の例を示す。なお、固有情報は、個人情報の一例である。
【0074】
(制御部13について)
制御部13は、CPU(Central Processing Unit)やMPU(Micro Processing Unit)等によって、利用者装置10内部の記憶装置に記憶されている各種プログラムがRAMを作業領域として実行されることにより実現される。また、制御部13は、例えば、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)等の集積回路により実現される。
【0075】
図4に示すように、制御部13は、第1の要素送信部13aと、第2の要素受付部13bと、取得部13cと、指定受付部13dと、抽出部13eと、算出部13fと、利用者情報送信部13gとを有し、以下に説明する情報処理の機能や作用を実現または実行する。なお、制御部13の内部構成は、図4に示した構成に限られず、後述する情報処理を行う構成であれば他の構成であってもよい。また、制御部13が有する各処理部の接続関係は、図4に示した接続関係に限られず、他の接続関係であってもよい。
【0076】
(第1の要素送信部13aについて)
第1の要素送信部13aは、利用者から受け付けた証明書(例えば、ワクチン接種証明書)の発行要求に応じて、第1の要素を発行者装置20に送信する。具体的には、第1の要素送信部13aは、第1の要素と、第1の要素に対応する公開鍵との組である第1の組合せを発行者装置20に送信する。第1の要素送信部13aは、例えば、図2のステップS22で説明した処理を実行してよい。
【0077】
なお、第1の要素送信部13aは、利用者装置10は、利用者ついて証明される固有情報の内容を示す第2の要素であって、発行者装置20で発行される第2の要素の件数に応じた数の公開鍵もさらに取得し発行者装置20に送信してよい。
【0078】
(第2の要素受付部13bについて)
第2の要素受付部13bは、発行者により発行された証明書に関する情報を受け付ける。具体的には、第2の要素受付部13bは、発行者装置20が第1の組合せ、第2の組合せそれぞれについて算出したハッシュ値を受け付ける。また、第2の要素受付部13bは、利用者に対して発行者が証明する内容を示す第2の要素も受け付ける。第2の要素受付部13bは、例えば、図2のステップS26で説明した処理に応じた処理を実行してよい。
【0079】
(取得部13cについて)
取得部13cは、利用者の個人情報の内容を示す要素と、要素に対応する公開鍵との組合せごとに算出されたハッシュ値を取得する。
【0080】
例えば、取得部13cは、組合せごとに算出されたハッシュ値として、利用者により登録された個人識別情報の内容を示す第1の要素と、第1の要素に対応する公開鍵との組である第1の組合せごとに算出された第1のハッシュ値を取得する。
【0081】
また、取得部13cは、組合せごとに算出されたハッシュ値として、発行者が利用者について証明する内容を示す第2の要素と、第2の要素に対応する公開鍵との組である第2の組合せごとに算出された第2のハッシュ値を取得する。
【0082】
(指定受付部13dについて)
指定受付部13dは、利用者の個人情報の内容を示す要素のうち、検証者への提供を許可する許可対象の要素の指定を利用者から受け付ける。
【0083】
例えば、指定受付部13dは、許可対象の要素の指定として、第1の要素のうち、検証者への提供を許可する許可対象の第1の要素の指定を利用者から受け付ける。また、指定受付部13dは、許可対象の要素の指定として、第2の要素のうち、検証者への提供を許可する許可対象の第2の要素の指定を利用者から受け付ける。指定受付部13dは、例えば、図3のステップS31で説明した処理を実行してよい。
【0084】
(抽出部13eについて)
抽出部13eは、指定受付部13dにより受け付けられた情報に応じた抽出処理を実行する。例えば、抽出部13eは、利用者の個人情報の内容を示す要素と、要素に対応する公開鍵との組合せのうち、許可対象の要素に対応する組合せについては抽出する一方で、提供を許可されていない無許可の要素に対応する組合せについては抽出しない代わりに、無許可の要素に対応するハッシュ値を抽出する。抽出部13eは、例えば、図3のステップS32で説明した処理を実行してよい。
【0085】
(算出部13fについて)
算出部13fは、利用者を証明するための署名値を算出する。算出部13fは、例えば、図3のステップS33で説明した処理を実行してよい。
【0086】
(利用者情報送信部13gについて)
利用者情報送信部13gは、抽出部13eにより抽出された情報、算出部13fにより算出された情報を検証者装置30に送信する。
【0087】
例えば、利用者情報送信部13gは、利用者の個人情報の内容を示す要素と、要素に対応する公開鍵との組合せのうち、許可対象の要素に対応する組合せについては検証者装置30に送信する一方で、提供を許可されていない無許可の要素に対応する組合せについては検証者装置30に送信しない代わりに、記無許可の要素に対応するハッシュ値を検証者装置30に送信する。
【0088】
例えば、利用者情報送信部13gは、第1の組合せのうち、許可対象の第1の要素に対応する組合せについては検証者装置30に送信する一方で、提供を許可されていない無許可の第1の要素に対応する組合せについては検証者装置30に送信しない代わりに、無許可の第1の要素に対応するハッシュ値を検証者装置30に送信する。
【0089】
また、利用者情報送信部13gは、第2の組合せのうち、許可対象の第2の要素に対応する組合せについては検証者装置30に送信する一方で、提供を許可されていない無許可の第2の要素に対応する組合せについては検証者装置30に送信しない代わりに、無許可の第2の要素に対応するハッシュ値を検証者装置30に送信する。利用者情報送信部13gは、例えば、図3のステップS34で説明した処理を実行してよい。
【0090】
〔5-2.発行者装置の構成〕
次に、図5を用いて、実施形態に係る発行者装置20について説明する。図5は、実施形態に係る発行者装置20の構成例を示す図である。図5に示すように、発行者装置20は、通信部21と、記憶部22と、制御部23とを有する。
【0091】
(通信部21について)
通信部21は、例えば、NIC等によって実現される。そして、通信部21は、ネットワークと有線または無線で接続され、例えば、利用者装置10、検証者装置30との間で情報の送受信を行う。
【0092】
(記憶部22について)
記憶部22は、例えば、RAM、フラッシュメモリ等の半導体メモリ素子またはハードディスク、光ディスク等の記憶装置によって実現される。記憶部22は、個人識別情報データベース22aと、固有情報データベース22bとを有する。
【0093】
(個人識別情報データベース22aについて)
個人識別情報データベース22aは、利用者装置10から受け付けた個人情報すなわち個人識別情報を記憶する。具体的には、個人識別情報データベース22aは、第1の要素と、第1の要素に対応する公開鍵との組である第1の組合せを記憶する。
【0094】
(固有情報データベース22bについて)
固有情報データベース22bは、発行者が利用者に関して保有している固有情報(例えば、ワクチン接種情報、免許証情報等)を記憶する。すなわち、固有情報データベース22bは、利用者に対して発行する証明書に関する情報を記憶する。
【0095】
(制御部23について)
制御部23は、CPUやMPU等によって、発行者装置20内部の記憶装置に記憶されている各種プログラムがRAMを作業領域として実行されることにより実現される。また、制御部23は、例えば、ASICやFPGA等の集積回路により実現される。
【0096】
図5に示すように、制御部23は、要素受付部23aと、生成部23bと、算出部23cと、登録部23dとを有し、以下に説明する情報処理の機能や作用を実現または実行する。なお、制御部23の内部構成は、図5に示した構成に限られず、後述する情報処理を行う構成であれば他の構成であってもよい。また、制御部23が有する各処理部の接続関係は、図5に示した接続関係に限られず、他の接続関係であってもよい。
【0097】
(要素受付部23aについて)
要素受付部23aは、利用者装置10から送信された情報を受け付ける。具体的には、要素受付部23aは、第1の要素と、第1の要素に対応する公開鍵との組である第1の組合せを受け付ける。
【0098】
また、要素受付部23aは、利用者ついて証明される固有情報の内容を示す第2の要素であって、発行者装置20で発行される第2の要素の件数に応じた数の公開鍵も受け付けてよい。
【0099】
(生成部23bについて)
生成部23bは、要素受付部23aにより受け付けられた情報に基づいて、トークンを生成する。例えば、生成部23bは、第1の組合せごとに算出された第1のハッシュ値それぞれを連結した連結情報を所定のハッシュ関数に入力することで1つの第1のトークンを生成する。また、生成部23bは、第2の組合せごとに算出された第2のハッシュ値それぞれを連結した連結情報を所定のハッシュ関数に入力することで1つの第2のトークンを生成する。そして、生成部23bは、第1のトークンおよび第2のトークンを連結した連結情報を所定のハッシュ関数に入力することで、1つの統合トークンを生成する。生成部23bは、例えば、図2のステップS23で説明した処理を実行してよい。
【0100】
(算出部23cについて)
算出部23cは、発行者を証明するための署名値を算出する。例えば、算出部23cは、統合トークンに基づき生成されたハッシュ値が発行者側の秘密鍵を用いて暗号化された発行者の署名値を算出する。算出部23cは、例えば、図2のステップS24で説明した処理を実行してよい。
【0101】
(登録部23dについて)
登録部23dは、発行者の署名値と、発行者の公開鍵と、統合トークンとをブロックチェーン(分散台帳)BCに登録する。なお、登録部23dは、算出部23cにより署名値が算出された日時すなわち電子署名が行われた現在日時もブロックチェーンBCに登録してよい。このように、電子署名が行われた日時が登録されていることで、例えば、検証者による公開鍵の使いまわしを防止することができる。すなわち、現在日時は、公開鍵の有効期限を定める役割を有する。
【0102】
〔5-3.検証者装置の構成〕
次に、図6を用いて、実施形態に係る検証者装置30について説明する。図6は、実施形態に係る検証者装置30の構成例を示す図である。図6に示すように、検証者装置30は、通信部31と、記憶部32と、制御部33とを有する。
【0103】
(通信部31について)
通信部31は、例えば、NIC等によって実現される。そして、通信部31は、ネットワークと有線または無線で接続され、例えば、利用者装置10、発行者装置20との間で情報の送受信を行う。
【0104】
(記憶部32について)
記憶部32は、例えば、RAM、フラッシュメモリ等の半導体メモリ素子またはハードディスク、光ディスク等の記憶装置によって実現される。記憶部32は、提供情報データベース32aを有する。
【0105】
(提供情報データベース32aについて)
提供情報データベース32aは、利用者から提供された情報(すなわち、許可対象の要素)に関する情報を記憶する。具体的には、提供情報データベース32aは、利用者装置10の利用者情報送信部13gによって送信された情報に関して記憶する。
【0106】
(制御部33について)
制御部33は、CPUやMPU等によって、検証者装置30内部の記憶装置に記憶されている各種プログラムがRAMを作業領域として実行されることにより実現される。また、制御部33は、例えば、ASICやFPGA等の集積回路により実現される。
【0107】
図6に示すように、制御部33は、提供情報受付部33aと、生成部33bと、検証部33cとを有し、以下に説明する情報処理の機能や作用を実現または実行する。なお、制御部33の内部構成は、図6に示した構成に限られず、後述する情報処理を行う構成であれば他の構成であってもよい。また、制御部33が有する各処理部の接続関係は、図6に示した接続関係に限られず、他の接続関係であってもよい。
【0108】
(提供情報受付部33aについて)
提供情報受付部33aは、利用者から提供された情報(すなわち、許可対象の要素)に関する情報を受け付ける。具体的には、提供情報受付部33aは、利用者装置10の利用者情報送信部13gによって送信された情報を受け付ける。
【0109】
(生成部33bについて)
生成部33bは、提供情報受付部33aにより受け付けられた情報に基づいて、トークンを生成する。例えば、生成部33bは、利用者情報送信部13gにより送信された第1の組合せごとに、当該第1の組合せに含まれる許可対象の第1の要素および公開鍵を用いて算出されたハッシュ値と、利用者情報送信部13gにより送信された第1のハッシュ値とを連結した連結情報を所定のハッシュ関数に入力することで1つの第1の検証用トークンを生成する。また、生成部33bは、利用者情報送信部13gにより送信された第2の組合せごとに、当該第2の組合せに含まれる許可対象の第2の要素および公開鍵を用いて算出されたハッシュ値と、利用者情報送信部13gにより送信された第2のハッシュ値とを連結した連結情報を所定のハッシュ関数に入力することで1つの第2の検証用トークンを生成する。そして、生成部33bは、第1の検証用トークンおよび第2の検証用トークンを連結した連結情報を所定のハッシュ関数に入力することで、1つの検証用統合トークンを生成する。生成部33bは、例えば、図3のステップS35で説明した処理を実行してよい。
【0110】
(検証部33cについて)
検証部33cは、証明書に関して検証する。例えば、検証部33cは、利用者情報送信部13gにより送信された組合せとハッシュ値に基づいて、要素を提供した提供元の正当性を検証する。
【0111】
例えば、検証部33cは、利用者情報送信部13gにより送信された第1の組合せおよび第1のハッシュ値に基づいて、要素を提供した提供元の本人性を検証する。例えば、検証部33cは、利用者情報送信部13gにより送信された第2の組合せおよび第2のハッシュ値に基づいて、要素を提供した提供元の正当性を検証する。具体的には、検証部33cは、利用者情報送信部13gにより送信された第1の組合それぞれに含まれる公開鍵、および、利用者情報送信部13gにより送信された第2の組合それぞれに含まれる公開鍵の全て値を足し合わせて得られた1つの合算公開鍵を用いて、利用者の電子署名を複合することでハッシュ値を取得し、取得したハッシュ値と、検証用統合トークンを示すハッシュ値との比較に基づき、利用者の正当性を検証する。
【0112】
また、検証部33cは、ブロックチェーンBCに登録される統合トークンと、検証用統合トークンとが一致している場合に、発行者の公開鍵を用いて、発行者の電子署名を複合することでハッシュ値を取得し、取得したハッシュ値と、検証用統合トークンを示すハッシュ値との比較に基づき、発行者の正当性をさらに検証してよい。
【0113】
検証部33cは、例えば、図3のステップS35で説明した処理を実行してよい。
【0114】
〔6.検証処理に係る具体的手法〕
ここからは、図7図13を用いて、実施形態に係る情報処理の具体的手法を説明する。図7図10では、発行要求~統合トークン生成~ブロックチェーンへの登録という一連の情報処理の具体的手法を説明する。図12および図13では、個人情報の提供~提供された情報に基づく検証処理という一連の情報処理を説明する。
【0115】
なお、図7図13は、図2および図3の内容をより具体的に示すものである。したがって、図7図13の例は、飛行機チケットを予約しようとする利用者U1が、検証者V3からワクチン接種証明書の提出を求められたため、発行者P2に対して、ワクチン接種証明書の発行を求める場面を一例に情報処理手法を説明するものである。
【0116】
〔6-1.発行要求からブロックチェーンへの登録〕
まず、図7を用いて、図2のステップS22で行われる処理について具体的に説明する。図7は、証明書の発行要求に応じて行われる情報処理の手法を説明する説明図である。
【0117】
図7(a)には、個人識別情報データベース12aのデータ構造のうち、利用者U1に対応するデータ構造が示される。図7(a)の例によれば、個人識別情報データベース12aは、「利用者ID」、「組合せID」、「要素名」、「第1の要素」、「公開鍵」といった項目を有する。
【0118】
「利用者ID」は、本人認証を受ける利用者個人を識別する識別情報であり、図7(a)には、利用者U1を識別する利用者ID「U1」が登録されている例が示される。
【0119】
「組合せID」は、「第1の要素」と「公開鍵」との組である第1の組合せを識別する識別情報である。「要素名」は、「第1の要素」の名称に関する情報である。「第1の要素」は、「要素名」に対応する第1の要素を示す情報である。
【0120】
図7(a)には、利用者U1に対応する第1の要素として、利用者U1の氏名を示す第1の要素「Suzuki Taro」、利用者U1の生年月日を示す第1の要素「1980-11-22」、利用者U1の国籍を示す第1の要素「Japan」等が、個人識別情報データベース12aに予め登録されている例が示される。このような登録は、利用者U1によって予め行われていてよい。
【0121】
「公開鍵」は、「第1の要素」それぞれに紐付けられる公開鍵であって、ユニークな内容の公開鍵である。「公開鍵」は、例えば、長さ32バイトの16進数で表されるバイト配列(シーケンス)である。また、「公開鍵」は、冒頭の文字が「02」または「03」であってよい。
【0122】
ここで、第1の要素送信部13aは、ワクチン接種証明書の発行要求を受け付けると、「第1の要素」それぞれに対して「公開鍵」を紐付ける。例えば、第1の要素送信部13aは、「第1の要素」それぞれに対応するユニークな内容の「公開鍵」を生成することで、「第1の要素」と「公開鍵」との組合せである第1の組合せを得る。
【0123】
図7(a)には、第1の要素送信部13aが、第1の要素「Suzuki Taro」に対応する公開鍵「PK1-11」を取得したことで、第1の要素「Suzuki Taro」と、公開鍵「PK1-11」とを組み合わせた情報(第1の組合せ)を識別する「組合せID」として「11」を払い出した例が示される。
【0124】
図7(a)には、第1の要素送信部13aが、第1の要素「1980-11-22」に対応する公開鍵「PK1-12」を取得したことで、第1の要素「1980-11-22」と、公開鍵「PK1-12」とを組み合わせた情報(第1の組合せ)を識別する「組合せID」として「12」を払い出した例が示される。
【0125】
なお、図7(a)の例において、各「公開鍵」には、ペアとなる「秘密鍵」が存在する。
【0126】
また、第1の要素送信部13aは、利用者U1について証明されるワクチン接種状況の内容を示す第2の要素であって、発行者装置20で発行される第2の要素の件数に応じた数の公開鍵もさらに取得してよい。この点について、図7(b)で説明する。
【0127】
図7(b)には、固有情報データベース22bのデータ構造のうち、利用者U1に対応するデータ構造が示される。図7(b)の例によれば、固有情報データベース22bは、「利用者ID」、「組合せID」、「要素名」、「第2の要素」、「公開鍵」といった項目を有する。
【0128】
「利用者ID」は、本人認証を受ける利用者個人を識別する識別情報であり、図7(b)には、利用者U1を識別する利用者ID「U1」が登録されている例が示される。
【0129】
「組合せID」は、「第2の要素」と「公開鍵」との組である第2の組合せを識別する識別情報である。「要素名」は、「第2の要素」の名称に関する情報である。「第2の要素」は、「要素名」に対応する第2の要素を示す情報である。
【0130】
図7(b)の例によれば、固有情報データベース22bには、利用者U1がワクチンを接種した「接収回数」は「2回」であり、利用者U1が最後にワクチンを接種した日である「最終接種日」は「2021-10-20」であり、利用者U1に対してワクチン接種証明書を発行した日である「発行日」は「2022-03-01」であることを証明する第2の要素が記憶されている際が示されている。
【0131】
そして、係る例によれば、発行者P2は、利用者U1についてm件の第2の要素を含むワクチン接種証明書を発行することが判る。例えば、第1の要素送信部13aは、固有情報データベース22bを参照し、m件の第2の要素を含むワクチン接種証明書を発行者P2が発行することを認識すると、図7(b)に示すように、m件分の「公開鍵」を取得してよい。
【0132】
図7(b)には、第1の要素送信部13aが、公開鍵「PK2-21」、公開鍵「PK2-22」、・・・公開鍵「公開鍵PK2-2m」等を取得した例が示される。これらの公開鍵にもペアとなる「秘密鍵」が存在する。また、このm件分の「公開鍵」は、「第2の要素」それぞれに紐付けられる公開鍵であって、ユニークな内容の公開鍵である。また、「公開鍵」は、例えば、長さ32バイトの16進数で表されるバイト配列である。また、「公開鍵」は、冒頭の文字が「02」または「03」であってよい。
【0133】
このような状態において、第1の要素送信部13aは、第1の組合せと、m件分の公開鍵とを発行者装置20に送信する。図7の例によれば、第1の要素送信部13aは、第1の組合せ♯11、第1の組合せ♯12、第1の組合せ♯13、・・・第1の組合せ♯1nを発行者装置20に送信する。また、第1の要素送信部13aは、公開鍵「PK2-21」、公開鍵「PK2-22」、・・・公開鍵「公開鍵PK2-2m」も発行者装置20に送信する。
【0134】
送信された情報は、発行者装置20の要素受付部23aによって受け付けられる。発行者装置20は、要素受付部23aにより受け付けられた「公開鍵」を図7(b)に示すように、「第2の要素」それぞれに紐付けてよい。なお、図7(c)は、個人識別情報データベース12aが図7(a)の状態から更新された更新後の例を示すものであるが、こちらの例については後述する。
【0135】
次に、図8図10を用いて、図2のステップS23で行われる処理について具体的に説明する。
【0136】
生成部23bは、要素受付部23aによって情報が受け付けられると、トークンを生成する処理を実行する。具体的には、生成部23bは、1つの統合トークンを生成する処理を実行する。例えば、生成部23bは、第1のトークンおよび第2のトークンを生成し、これらのトークンを用いて統合トークンを生成する。図8図10ではこの一連の流れを説明する。
【0137】
生成部23bは、ハッシュ関数H(m)に第1の組合せを入力することで、第1の組合せごとにハッシュ値を算出する。そして、生成部23bは、各ハッシュ値を連結した連結情報をハッシュ関数H(m)に入力することで、第1のトークンを生成する。この点について、図8を用いて説明する。図8は、証明書の発行要求に応じてトークンが生成される際の情報処理手法(1)を説明する説明図である。
【0138】
図8(a)の例によれば、生成部23bは、第1の組合せ♯11、第1の組合せ♯12、第1の組合せ♯13、・・・第1の組合せ♯1nのそれぞれについてハッシュ値を算出する。
【0139】
第1の組合せ♯11を例に挙げて説明する。例えば、生成部23bは、第1の要素「Suzuki Taro」と、これに対応付けられる公開鍵「PK1-11」とを連結した連結情報を、ハッシュ関数H(m)への入力情報mと定める。そして、生成部23bは、入力情報mをハッシュ関数H(m)に入力することで、図8(a)に示すように、H(<PK1-11>||bytes(“Suzuki Taro”))という計算式を解く。図8(a)には、生成部23bが、この計算式を解いた結果、ハッシュ値「Hash1-11」を算出した例が示される。
【0140】
同様の手法で、生成部23bは、第1の組合せ♯12、第1の組合せ♯13、・・・第1の組合せ♯1nについても、そこに含まれる第1の要素と公開鍵とを連結した連結情報を入力情報mと定めて、ハッシュ関数H(m)を計算する。
【0141】
なお、図8(a)で算出されるハッシュ値は、例えば、長さ32バイトのバイト配列である。
【0142】
次に、生成部23bは、図8(b)に示すように、第1の組合せ♯11、第1の組合せ♯12、第1の組合せ♯13、・・・第1の組合せ♯1nのそれぞれについて算出したハッシュ値を連結した連結情報を、ハッシュ関数H(m)への入力情報mと定める。そして、生成部23bは、入力情報mをハッシュ関数H(m)に入力することで、図8(b)に示すように、H(<Hash1-11>||<Hash1-12>||・・・||<Hash1-1n>)という計算式を解く。図8(b)には、生成部23bが、この計算式を解いた結果、第1のトークン「token1」を算出した例が示される。なお、第1のトークン「token1」は、例えば、長さ32バイトのバイト配列である。
【0143】
また、生成部23bは、ハッシュ関数H(m)に第2の組合せを入力することで、第2の組合せごとにハッシュ値を算出する。そして、生成部23bは、各ハッシュ値を連結した連結情報をハッシュ関数H(m)に入力することで、第2のトークンを生成する。この点について、図9を用いて説明する。図9は、証明書の発行要求に応じてトークンが生成される際の情報処理手法(2)を説明する説明図である。
【0144】
図9(a)の例によれば、生成部23bは、第2の組合せ♯21、第2の組合せ♯22、第2の組合せ♯23、・・・第2の組合せ♯2mのそれぞれについてハッシュ値を算出する。
【0145】
第2の組合せ♯21を例に挙げて説明する。例えば、生成部23bは、第2の要素「two」と、これに対応付けられる公開鍵「PK2-21」とを連結した連結情報を、ハッシュ関数H(m)への入力情報mと定める。そして、生成部23bは、入力情報mをハッシュ関数H(m)に入力することで、図9(a)に示すように、H(<PK2-21>||bytes(“two”))という計算式を解く。図9(a)には、生成部23bが、この計算式を解いた結果、ハッシュ値「Hash2-21」を算出した例が示される。
【0146】
同様の手法で、生成部23bは、第2の組合せ♯22、第2の組合せ♯23、・・・第2の組合せ♯2mについても、そこに含まれる第2の要素と公開鍵とを連結した連結情報を入力情報mと定めて、ハッシュ関数H(m)を計算する。
【0147】
なお、図9(a)で算出されるハッシュ値は、例えば、長さ32バイトのバイト配列である。
【0148】
次に、生成部23bは、図9(b)に示すように、第2の組合せ♯21、第2の組合せ♯22、第2の組合せ♯23、・・・第2の組合せ♯2mのそれぞれについて算出したハッシュ値を連結した連結情報を、ハッシュ関数H(m)への入力情報mと定める。そして、生成部23bは、入力情報mをハッシュ関数H(m)に入力することで、図9(b)に示すように、H(<Hash2-21>||<Hash2-22>||・・・||<Hash2-2m>)という計算式を解く。図9(b)には、生成部23bが、この計算式を解いた結果、第2のトークン「token2」を算出した例が示される。なお、第2のトークン「token2」は、例えば、長さ32バイトのバイト配列である。
【0149】
生成部23bは、図8および図9で説明したように、第1のトークンおよび第2のトークンを生成できると、これらのトークンを用いて統合トークンを生成する。具体的には、生成部23bは、第1のトークンおよび第2のトークンを連結した連結情報をハッシュ関数H(m)に入力することで、1つの統合トークンを生成する。この点について、図10を用いて説明する。図10は、証明書の発行要求に応じてトークンが生成される際の情報処理手法(3)を説明する説明図である。
【0150】
生成部23bは、図10(a)に示すように、第1のトークン「token1」および第2のトークン「token2」を用いて統合トークンを生成する。具体的には、生成部23bは、第1のトークン「token1」および第2のトークン「token2」を連結した連結情報を、ハッシュ関数H(m)への入力情報mと定める。そして、生成部23bは、入力情報mをハッシュ関数H(m)に入力することで、図10(a)に示すように、H(<token1>||<token2>)という計算式を解く。図10(a)には、生成部23bが、この計算式を解いた結果、統合トークン「token12」を算出した例が示される。なお、統合トークン「token12」は、例えば、長さ32バイトのバイト配列である。
【0151】
ここで、算出部23cは、生成部23bによって統合トークンが生成されると、統合トークンを用いて、発行者P2の電子署名となる署名値を算出する。引き続き、図10を用いて、署名値の算出手法を説明する。署名値の算出手法の具体例は、図10(b)に示される。図10(b)の例は、図2のステップS24で行われる処理について具体的に説明するものである。
【0152】
算出部23cは、発行者P2に対応する秘密鍵と、電子署名を行う現在日時と、統合トークンとに基づいて、発行者P2の電子署名となる署名値を算出する。図10(b)には、発行者P2に対応する秘密鍵が「SK♯P2」であり、電子署名を行う現在日時が「signTime♯P2」であり、また、入力に応じて署名値を出力する関数Sig(p,m)を用いて、署名値が算出される例が示される。
【0153】
係る例によれば、算出部23cは、発行者P2に対応する秘密鍵「SK♯P2」を、関数Sig(p,m)を用いた暗号化のための秘密鍵pと定める。また、算出部23cは、現在日時「signTime♯P2」と、統合トークン「token12」とを連結した連結情報を、関数Sig(p,m)への入力情報mと定める。
【0154】
例えば、算出部23cは、現在日時「signTime♯P2」と、統合トークン「token12」とを連結した連結情報を関数Sig(p,m)に入力して得られたハッシュ値を秘密鍵pで暗号化することにより、署名値を算出する。具体的には、算出部23cは、図10(b)に示すように、Sig(<SK♯P2>,<signTime♯P2>||<token12>)という計算式を解く。図10(b)には、算出部23cが、この計算式を解いた結果、発行者P2の署名値「SIN♯P2」を算出した例が示される。なお、署名値「SIN♯P2」は、例えば、長さ72バイトのバイト配列である。
【0155】
また、登録部23dは、算出部23cによって署名値が生成されると、生成された署名値をブロックチェーンBCに登録する。引き続き、図10を用いて、署名値の登録手法を説明する。署名値の登録手法の具体例は、図10(c)に示される。図10(c)の例は、図2のステップS25で行われる処理について具体的に説明するものである。
【0156】
登録部23dは、電子署名を行う現在日時と、署名値と、発行者P2の秘密鍵に対する公開鍵と、統合トークンとをブロックチェーンBCに登録する。具体的には、図10(c)に示すように、登録部23dは、現在日時「signTime♯P2」と、署名値「SIN♯P2」と、公開鍵「PK♯P2」と、統合トークン「token12」とをブロックチェーンBCに登録する。このように、実施形態に係る情報処理によれば、ブロックチェーンBCには、利用者U1に関する実データが登録されることはない。
【0157】
さて、ここまで、図7図10を用いて、発行要求からブロックチェーンへの登録までの一連の情報処理の具体的手法を説明してきた。ここで、例えば、生成部23bは、第1の組合せ、第2の組合せそれぞれについて算出したハッシュ値を利用者装置10に応答してよい。
【0158】
例えば、生成部23bは、第1の組合せ♯11、第1の組合せ♯12、第1の組合せ♯13、・・・第1の組合せ♯1nのそれぞれについてハッシュ値を算出したが、算出したこれらのハッシュ値を利用者装置10に返答してよい。返答された情報は、第2の要素受付部13bが受け付けてよく、第2の要素受付部13bは、受け付けたハッシュ値を用いて、個人識別情報データベース12aを更新する。この結果、個人識別情報データベース12aのデータ構造は、図7(a)の状態から、例えば、図7(c)の状態へと更新される。
【0159】
また、生成部23bは、第2の組合せ♯21、第2の組合せ♯22、第2の組合せ♯23、・・・第2の組合せ♯2mのそれぞれについてもハッシュ値を算出したが、これらのハッシュ値を利用者装置10に返答してよい。例えば、生成部23bは、ハッシュ値の算出に用いた第2の要素を対応付けた状態で返答してよい。返答された情報は、第2の要素受付部13bが受け付けてよく、第2の要素受付部13bは、受け付けたハッシュ値を用いて、固有情報データベース12bを更新する。この結果、図11に示すようなデータ構造の固有情報データベース12bが得られる。
【0160】
図11には、固有情報データベース12bの一例が示される。生成部23bによる第2の要素の応答は、実質、利用者U1に対するワクチン接種証明書の発行に相当し、これが利用者U1側の固有情報データベース12bに登録されることで、利用者U1は、ワクチン接種証明書を閲覧したり、提出したりすることができるようになる。
【0161】
〔6-2.個人情報の提供から検証処理〕
ここからは、図12および図13を用いて、個人情報の提供~提供された情報に基づく検証処理という一連の情報処理を説明する。
【0162】
まず、図12を用いて、図3のステップS31~S34で行われる処理について具体的に説明する。図12は、個人情報の提供に応じて行われる情報処理の手法を説明する説明図である。
【0163】
利用者U1は、端末装置Tを用いて、第1の要素のうち、検証者V3への提供を許可する許可対象の第1の要素を指定し、また、第2の要素のうち、検証者V3への提供を許可する許可対象の第2の要素を指定する。
【0164】
図12の例では、利用者U1は、第1の要素のうち氏名および生年月日は検証者V3開示してもよいと考え、氏名を示す第1の要素「Suzuki Taro」と、生年月日を示す第1の要素「1980-11-22」を許可対象と指定したとする。
【0165】
また、図12の例では、利用者U1は、第2の要素のうち接種回数および最終接種日は検証者V3開示してもよいと考え、接種回数を示す第2の要素「two」と、最終接種日を示す第2の要素「2021-10-20」を許可対象と指定したとする。
【0166】
そうすると、端末装置Tは、利用者U1により指定された内容を示す情報、すなわち許可対象の第1の要素が、氏名「Suzuki Taro」および生年月日「1980-11-22」であることを示す情報を利用者装置10に送信する。
【0167】
また、端末装置Tは、利用者U2により指定された内容を示す情報、すなわち許可対象の第2の要素が、接種回数「two」および最終接種日「2021-10-20」であることを示す情報を利用者装置10に送信する。
【0168】
利用者装置10の指定受付部13dは、許可対象の第1の要素の指定を利用者U1から受け付ける。上記例によれば、指定受付部13dは、許可対象の第1の要素が、氏名「Suzuki Taro」および生年月日「1980-11-22」であることを示す情報を利用者装置10から受け付ける。
【0169】
また、指定受付部13dは、許可対象の第2の要素の指定を利用者U1から受け付ける。上記例によれば、指定受付部13dは、許可対象の第2の要素が、接種回数「two」および最終接種日「2021-10-20」であることを示す情報を利用者装置10から受け付ける。
【0170】
利用者装置10の抽出部13eは、指定受付部13dにより指定が受け付けられると、利用者U1により指定された内容に従い、検証者V3に提供する情報を抽出する。具体的には、抽出部13eは、利用者U1により指定された内容に従い、第1の要素が登録されている個人識別情報データベース12a、および、第2の要素が登録されている固有情報データベース12bから、検証者装置30に送信する情報を抽出する。
【0171】
抽出部13eは、利用者U1の個人情報の内容を示す要素と、要素に対応する公開鍵との組合せのうち、許可対象の要素に対応する組合せについては抽出する一方で、提供を許可されていない無許可の要素に対応する組合せについては抽出しない代わりに、無許可の要素に対応するハッシュ値を抽出する。
【0172】
図12(a)に示すように、抽出部13eは、第1の要素「Suzuki Taro」が許可対象として指定されたことに応じて、第1の要素「Suzuki Taro」と、公開鍵「PK1-11」との第1の組合せ♯11を、個人識別情報データベース12aから抽出する。また、抽出部13eは、第1の要素「1980-11-22」が許可対象として指定されたことに応じて、第1の要素「1980-11-22」と、公開鍵「PK1-12との第1の組合せ♯12を、個人識別情報データベース12aから抽出する。
【0173】
一方、抽出部13eは、提供を許可されていない無許可の第1の要素に対応する第1の組合せについては抽出しない。具体的には、抽出部13eは、第1の組合せ♯13~第1の組合せ♯1nについては抽出しない。この代わりに、抽出部13eは、図12(a)に示すように、第1の組合せ♯13~第1の組合せ♯1nそれぞれに対応するハッシュ値「Hash1-13~Hash1-1n」を、個人識別情報データベース12aから抽出する。
【0174】
また、図12(b)に示すように、抽出部13eは、第2の要素「two」が許可対象として指定されたことに応じて、第2の要素「two」と、公開鍵「PK2-21」との第2の組合せ♯21を、固有情報データベース12bから抽出する。また、抽出部13eは、第2の要素「2021-10-20」が許可対象として指定されたことに応じて、第2の要素「2021-10-20」と、公開鍵「PK2-22」との第2の組合せ♯22を、固有情報データベース12bから抽出する。
【0175】
一方、抽出部13eは、提供を許可されていない無許可の第2の要素に対応する第2の組合せについては抽出しない。具体的には、抽出部13eは、第2の組合せ♯23~第2の組合せ♯2mについては抽出しない。この代わりに、抽出部13eは、図12(b)に示すように、第2の組合せ♯23~第2の組合せ♯2mそれぞれに対応するハッシュ値「Hash2-23~Hash2-2m」を、固有情報データベース12bから抽出する。
【0176】
ここで、利用者装置10の算出部13fは、生成部23bにより生成されている統合トークンを用いて、利用者U1の電子署名となる署名値を算出する。引き続き、図12を用いて、署名値の算出手法を説明する。署名値の算出手法の具体例は、図12(c)に示される。図12(c)の例は、図3のステップS33で行われる処理について具体的に説明するものである。
【0177】
算出部13fは、利用者U1に対応する秘密鍵と、電子署名を行う現在日時と、統合トークンとに基づいて、利用者U1の電子署名となる署名値を算出する。なお、利用者U1に対応する秘密鍵とは、検証者V3へと提供するため抽出部13eにより抽出された各公開鍵に対応する秘密鍵である。
【0178】
図12(a)および図12(b)の例によれば、利用者U1に対応する秘密鍵とは、公開鍵「PK1-11」に対応する秘密鍵、公開鍵「PK1-12」に対応する秘密鍵、公開鍵「PK2-21」に対応する秘密鍵、および、公開鍵「PK2-22」に対応する秘密鍵である。より具体的には、利用者U1に対応する秘密鍵は、これら4つの秘密鍵を足し合わせた1つの合算秘密鍵であってよい。図12(c)には、利用者U1に対応する秘密鍵が「SK♯U1」である例が示される。
【0179】
また、図12(c)には、電子署名を行う現在日時が「signTime♯U1」であり、また、入力に応じて署名値を出力する関数Sig(p,m)を用いて、署名値が算出される例が示される。
【0180】
係る例によれば、算出部13fは、利用者U1に対応する秘密鍵「SK♯U1」を、関数Sig(p,m)を用いた暗号化のための秘密鍵pと定める。また、算出部13fは、現在日時「signTime♯U1」と、統合トークン「token12」とを連結した連結情報を、関数Sig(p,m)への入力情報mと定める。
【0181】
例えば、算出部13fは、現在日時「signTime♯U1」と、統合トークン「token12」とを連結した連結情報を関数Sig(p,m)に入力して得られたハッシュ値を秘密鍵pで暗号化することにより、署名値を算出する。具体的には、算出部13fは、図12(c)に示すように、Sig(<SK♯U1>,<signTime♯U1>||<token12>)という計算式を解く。図12(c)には、算出部13fが、この計算式を解いた結果、利用者U1の署名値「SIN♯U1」を算出した例が示される。なお、署名値「SIN♯U1」は、例えば、長さ72バイトのバイト配列である。
【0182】
なお、図12(c)の例によれば、算出部13fは、楕円曲線暗号の加法準同型性を活用して、1つの合算秘密鍵「SK♯U1」を生成している。係る手法によれば、利用者U1が検証者V3に開示する要素がどのようなパターンであっても、「SK♯U1」という1つの署名値を生成するだけでよく、例えば、要素ごとに署名値を生成する必要がない。このため、実施形態に係る情報処理では、電子署名における煩雑さを解消できるというメリットを有する。
【0183】
また、利用者情報送信部13gは、図12に示すように、抽出部13eにより抽出された情報と、現在日時「signTime♯U1」と、署名値「SIN♯U1」とを検証者装置30に送信する。係る処理は、図3のステップS34の処理に対応する。また、この結果、検証者装置30は、提供情報データベース32aにおいて、図12に示すようなデータ構造を得ることができる。
【0184】
次に、図13を用いて、図3のステップS35で行われる処理について具体的に説明する。図13は、提供された情報に基づく検証処理の手法を説明する説明図である。
【0185】
検証者装置30の検証部33cは、利用者U1から情報提供を受けると、提供された情報(提供情報データベース32aに登録される各種提供情報)に基づいて、検証用トークンを生成する。
【0186】
まず、検証部33cは、図13(a)に示すように、「提供要素」と「提供公開鍵」とに基づいて、ハッシュ値を算出する。具体的には、検証部33cは、利用者情報送信部13gにより送信された第1の組合せごとに、当該第1の組合せに含まれる許可対象の第1の要素および公開鍵を用いてハッシュ値を算出する。また、検証部33cは、利用者情報送信部13gにより送信された第2の組合せごとに、当該第2の組合せに含まれる許可対象の第2の要素および公開鍵を用いてハッシュ値を算出する。
【0187】
図13(a)の例によれば、検証部33cは、第1の組合せ♯11に含まれる許可対象の1の要素「Suzuki Taro」と、これに対応付けられる公開鍵「PK1-11」とに基づいて、ハッシュ値を算出する。具体的には、検証部33cは、第1の要素「Suzuki Taro」と、公開鍵「PK1-11」とを連結した連結情報(入力情報m)をハッシュ関数H(m)に入力することで、ハッシュ値を算出する。図13(a)には、検証部33cが、ハッシュ値「Hash1-11」を算出した例が示される。
【0188】
同様に、検証部33cは、第1の組合せ♯12に含まれる許可対象の1の要素「1980-11-22」と、これに対応付けられる公開鍵「PK1-12」とに基づいて、ハッシュ値を算出する。具体的には、検証部33cは、第1の要素「1980-11-22」と、公開鍵「PK1-12」とを連結した連結情報(入力情報m)をハッシュ関数H(m)に入力することで、ハッシュ値を算出する。図13(a)には、検証部33cが、ハッシュ値「Hash1-12」を算出した例が示される。
【0189】
なお、ここで行われるハッシュ値の算出手法は、図8(a)で説明したものと同様の手法である。
【0190】
また、図13(a)の例によれば、検証部33cは、第2の組合せ♯21に含まれる許可対象の2の要素「two」と、これに対応付けられる公開鍵「PK2-21」とに基づいて、ハッシュ値を算出する。具体的には、検証部33cは、第2の要素「two」と、公開鍵「PK2-21」とを連結した連結情報(入力情報m)をハッシュ関数H(m)に入力することで、ハッシュ値を算出する。図13(a)には、検証部33cが、ハッシュ値「Hash2-21」を算出した例が示される。
【0191】
同様に、検証部33cは、第2の組合せ♯22に含まれる許可対象の2の要素「2021-10-20」と、これに対応付けられる公開鍵「PK2-22」とに基づいて、ハッシュ値を算出する。具体的には、検証部33cは、第2の要素「2021-10-20」と、公開鍵「PK2-22」とを連結した連結情報(入力情報m)をハッシュ関数H(m)に入力することで、ハッシュ値を算出する。図13(a)には、検証部33cが、ハッシュ値「Hash2-22」を算出した例が示される。
【0192】
次に、検証部33cは、図13(b)に示すように、第1の組合せ♯11、第1の組合せ♯12それぞれについて算出したハッシュ値、そして、許可対象として指定されなかったことにより第1の組合せの代わりに送信されたハッシュ値(Hash1-13~Hash1-1n)の全てを連結した連結情報(入力情報m)をハッシュ関数H(m)に入力する。そして、検証部33cは、図13(b)に示される計算式を解くことで、第1の検証用トークンを生成する。図13(b)には、検証部33cが、第1の検証用トークン「token♯1」を算出した例が示される。なお、ここで行われるトークンの生成手法は、図8(b)で説明したものと同様の手法である。
【0193】
また、検証部33cは、図13(b)に示すように、第2の組合せ♯21、第2の組合せ♯22それぞれについて算出したハッシュ値、そして、許可対象として指定されなかったことにより第2の組合せの代わりに送信されたハッシュ値(Hash2-23~Hash2-2m)の全てを連結した連結情報(入力情報m)をハッシュ関数H(m)に入力する。そして、検証部33cは、図13(b)に示される計算式を解くことで、第2の検証用トークンを生成する。図13(b)には、検証部33cが、第2の検証用トークン「token♯2」を算出した例が示される。なお、ここで行われるトークンの生成手法は、図9(b)で説明したものと同様の手法である。
【0194】
そして、検証部33cは、図13(c)に示すように、第1の検証用トークン「token♯1」および第2の検証用トークン「token♯2」を用いて検証用統合トークンを生成する。具体的には、検証部33cは、第1の検証用トークン「token♯1」および第2の検証用トークン「token♯2」を連結した連結情報(入力情報m)をハッシュ関数H(m)に入力する。そして、検証部33cは、図13(b)に示される計算式を解くことで、1つの検証用統合トークンを生成する。図13(c)には、検証部33cが、検証用統合トークン「token♯13」を算出した例が示される。なお、ここで行われるトークンの生成手法は、図10(a)で説明したものと同様の手法である。
【0195】
検証部33cは、検証用統合トークン「token♯13」を用いて、利用者装置10から送信された要素(許可対象として指定された要素)を提供した提供元が利用者U1であることの正当性を検証する第1の検証処理を実行する。また、検証部33cは、検証用統合トークン「token♯13」を用いて、利用者装置10から送信された要素(許可対象として指定された要素)を証明するワクチン接種証明書の発行元が発行者P2であることの正当性を検証する第2の検証処理を実行する。
【0196】
例えば、検証部33cは、第1の検証処理では、利用者情報送信部13gにより送信された公開鍵(提供公開鍵)、具体的には、公開鍵PK1-11、1-12、2-21および2-22を足し合わせることで、1つ合算公開鍵を得る。また、検証部33cは、合算公開鍵を用いて、利用者U1の署名値「SIN♯U1」を複合することでハッシュ値を取得する。そして、検証者装置30は、このハッシュ値と、検証用統合トークン「token♯12」が示すハッシュ値との比較に基づいて、利用者U1の本人性を検証する。
【0197】
また、検証部33cは、ブロックチェーンBCに登録される統合トークン「token12」と、検証用統合トークン「token♯12」とが一致しているか否かを判定する。そして、検証部33cは、統合トークン「token12」と、検証用統合トークン「token♯12」とが一致している場合には、ブロックチェーンBCに登録される公開鍵PK♯P2を用いて、発行者P2の署名値「SIN♯P2」を複合することでハッシュ値を取得する。そして、検証者装置30は、このハッシュ値と、検証用統合トークン「token♯12」との比較に基づいて、発行者P2の本人性を検証する。
【0198】
〔7.まとめ〕
これまで、情報処理システム1で実現される情報処理について、図面を用いて詳細に説明してきた。このような情報処理システム1によれば、本人認証のため特定の証明書の提出を求められる場において、認証を受ける利用者が、証明書として開示する個人情報を任意に選択することができる。すなわち、利用者は、自身が開示してよいと考える個人情報のみが記された証明書を作成し、これを検証者に提供することで証明書に基づく認証を受けることができるようになる。
【0199】
〔8.ハードウェア構成〕
次に、実施形態に係る情報処理装置(利用者装置10、発行者装置20、検証者装置30)のハードウェア構成例について説明する。図14は、実施形態に係る情報処理装置のハードウェア構成例を示すブロック図である。図14を参照すると、情報処理装置は、例えば、プロセッサ801と、ROM802と、RAM803と、ホストバス804と、ブリッジ805と、外部バス806と、インターフェース807と、入力装置808と、出力装置809と、ストレージ810と、ドライブ811と、接続ポート812と、通信装置813と、を有する。なお、ここで示すハードウェア構成は一例であり、構成要素の一部が省略されてもよい。また、ここで示される構成要素以外の構成要素をさらに含んでもよい。
【0200】
(プロセッサ801)
プロセッサ801は、例えば、演算処理装置または制御装置として機能し、ROM802、RAM803、ストレージ810、またはリムーバブル記録媒体901に記録された各種プログラムに基づいて各構成要素の動作全般またはその一部を制御する。
【0201】
(ROM802、RAM803)
ROM802は、プロセッサ801に読み込まれるプログラムや演算に用いるデータなどを格納する手段である。RAM803には、例えば、プロセッサ801に読み込まれるプログラムや、そのプログラムを実行する際に適宜変化する各種パラメータなどが一時的または永続的に格納される。
【0202】
(ホストバス804、ブリッジ805、外部バス806、インターフェース807)
プロセッサ801、ROM802、RAM803は、例えば、高速なデータ伝送が可能なホストバス804を介して相互に接続される。一方、ホストバス804は、例えば、ブリッジ805を介して比較的データ伝送速度が低速な外部バス806に接続される。また、外部バス806は、インターフェース807を介して種々の構成要素と接続される。
【0203】
(入力装置808)
入力装置808には、例えば、マウス、キーボード、タッチパネル、ボタン、スイッチ、およびレバーなどが用いられる。さらに、入力装置808としては、赤外線やその他の電波を利用して制御信号を送信することが可能なリモートコントローラ(以下、リモコン)が用いられることもある。また、入力装置808には、マイクロフォンなどの音声入力装置が含まれる。
【0204】
(出力装置809)
出力装置809は、例えば、CRT(Cathode Ray Tube)、LCD、または有機ELなどのディスプレイ装置、スピーカ、ヘッドホンなどのオーディオ出力装置、プリンタ、携帯電話、またはファクシミリなど、取得した情報を利用者に対して視覚的または聴覚的に通知することが可能な装置である。また、本実施形態に係る出力装置809は、触覚刺激を出力することが可能な種々の振動デバイスを含む。
【0205】
(ストレージ810)
ストレージ810は、各種のデータを格納するための装置である。ストレージ810としては、例えば、ハードディスクドライブ(HDD)などの磁気記憶デバイス、半導体記憶デバイス、光記憶デバイス、または光磁気記憶デバイスなどが用いられる。
【0206】
(ドライブ811)
ドライブ811は、例えば、磁気ディスク、光ディスク、光磁気ディスク、または半導体メモリなどのリムーバブル記録媒体901に記録された情報を読み出し、またはリムーバブル記録媒体901に情報を書き込む装置である。
【0207】
(接続ポート812)
接続ポート812は、例えば、USB(Universal Serial Bus)ポート、IEEE1394ポート、SCSI(Small Computer System Interface)、RS-232Cポート、または光オーディオ端子などのような外部接続機器902を接続するためのポートである。
【0208】
(通信装置813)
通信装置813は、ネットワークに接続するための通信デバイスであり、例えば、有線または無線LAN、Bluetooth(登録商標)、またはWUSB(Wireless USB)用の通信カード、光通信用のルータ、ADSL(Asymmetric Digital Subscriber Line)用のルータ、または各種通信用のモデムなどである。
【0209】
(リムーバブル記録媒体901)
リムーバブル記録媒体901は、例えば、DVDメディア、Blu-ray(登録商標)メディア、HD DVDメディア、各種の半導体記憶メディアなどである。もちろん、リムーバブル記録媒体901は、例えば、非接触型ICチップを搭載したICカード、または電子機器などであってもよい。
【0210】
(外部接続機器902)
外部接続機器902は、例えば、プリンタ、携帯音楽プレーヤ、デジタルカメラ、デジタルビデオカメラ、またはICレコーダなどである。
【0211】
検証者装置30を例に挙げると、記憶部32は、ROM802やRAM803、ストレージ810によって実現される。また、プロセッサ801によって実現される実施形態に係る制御部33が、提供情報受付部33aと、生成部33bと、検証部33cとを実現する各制御プログラム(例えば、実施形態に係る検証プログラム)を、ROM802やRAM803などから読み出し実行する。
【0212】
〔9.その他〕
上記した各処理のうち、自動的に行われるものとして説明した処理の全部または一部は、手動的に行われてもよい。また、手動的に行われるものとして説明した処理の全部または一部は、公知の方法で自動的に行われてもよい。この他、上記文書中や図面中で示した処理手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。例えば、各図に示した各種情報は、図示した情報に限られるものではない。
【0213】
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されなくともよい。すなわち、各装置の分散・統合の具体的形態は図示のものに限られない。また、各構成要素は、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成してもよい。また、上記してきた各処理は、矛盾しない範囲で適宜組み合わせて実行されてもよい。
【0214】
以上、本願の実施形態をいくつかの図面に基づいて詳細に説明したが、これらは例示であり、発明の開示の欄に記載の態様を始めとして、当業者の知識に基づいて種々の変形、改良を施した他の形態で本発明を実施することが可能である。
【符号の説明】
【0215】
1 情報処理システム
10 利用者装置
12 記憶部
12a 個人識別情報データベース
12b 固有情報データベース
13 制御部
13a 第1の要素送信部
13b 第2の要素受付部
13c 取得部
13d 指定受付部
13e 抽出部
13f 算出部
13g 利用者情報送信部
20 発行者装置
22 記憶部
22a 個人識別情報データベース
22b 固有情報データベース
23 制御部
23a 要素受付部
23b 生成部
23c 算出部
23d 登録部
30 検証者装置
32 記憶部
32a 提供情報データベース
33 制御部
33a 提供情報受付部
33b 生成部
33c 検証部
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14