(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-07-11
(45)【発行日】2024-07-22
(54)【発明の名称】情報処理装置、情報処理方法およびプログラム
(51)【国際特許分類】
G06F 21/62 20130101AFI20240712BHJP
G16H 10/20 20180101ALI20240712BHJP
G06F 21/64 20130101ALI20240712BHJP
G06F 21/60 20130101ALI20240712BHJP
【FI】
G06F21/62 345
G16H10/20
G06F21/64
G06F21/60 320
(21)【出願番号】P 2020162786
(22)【出願日】2020-09-29
【審査請求日】2023-09-14
(73)【特許権者】
【識別番号】523286071
【氏名又は名称】株式会社NTTデータ
(74)【代理人】
【識別番号】100095407
【氏名又は名称】木村 満
(72)【発明者】
【氏名】川森 茂樹
【審査官】岸野 徹
(56)【参考文献】
【文献】特開2019-219780(JP,A)
【文献】特開2020-086903(JP,A)
【文献】特開2020-052457(JP,A)
【文献】再公表特許第2019/234850(JP,A1)
【文献】再公表特許第2018/088475(JP,A1)
【文献】特開2020-144800(JP,A)
【文献】米国特許出願公開第2019/0075102(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 21/62
G16H 10/20
G06F 21/64
G06F 21/60
(57)【特許請求の範囲】
【請求項1】
登録対象のデータに秘匿データが含まれるか否かを判定する秘匿データ判定手段と、
ネットワーク内に構築されるブロックチェーンで連結されるデータブロックに、前記登録対象のデータを格納するデータ格納手段と
、
前記データブロックに格納された登録秘匿データおよび前記秘匿データ以外のデータに一方向関数を適用し演算結果である格納ブロック値を算出する格納ブロック値算出手段と、
前記秘匿データの入力と、前記データブロックを特定するデータブロック特定情報の入力を受け付ける入力手段と、
前記データ格納手段により格納された前記登録秘匿データと、前記登録秘匿データ以外のデータのうち、前記データブロック特定情報により特定される前記データブロックに格納された前記登録秘匿データと前記秘匿データ以外のデータとを、前記データブロックから取得するデータ取得手段と、
前記データ取得手段が取得した前記登録秘匿データおよび前記秘匿データ以外のデータに前記一方向関数を適用し演算結果である取得ブロック値を算出する取得ブロック値算出手段と、
前記入力手段により入力された前記秘匿データに前記一方向関数を適用して得た演算結果と、前記データ取得手段が取得した前記登録秘匿データと、に基づいて前記入力手段により入力された前記秘匿データの正当性を判定するとともに、前記取得ブロック値算出手段が算出した前記取得ブロック値に基づいて前記データ取得手段が取得した前記登録秘匿データおよび前記秘匿データ以外のデータの正当性を判定する正当性判定手段と、
前記正当性判定手段による判定結果を出力する出力手段と、を備え、
前記データ格納手段は、前記秘匿データ判定手段により前記秘匿データが含まれると判定した場合、前記秘匿データに前記一方向関数を適用して得た演算結果を前記登録秘匿データとして、前記登録対象のデータに含まれる前記登録秘匿データ以外のデータとともに、前記データブロックに格納する、
ことを特徴とする情報処理装置。
【請求項2】
前記格納ブロック値算出手段で算出した前記格納ブロック値に基づいて認証コードを生成する認証コード生成手段と、をさらに備え、
前記入力手段は、前記認証コードの入力をさらに受け付け、
前記正当性判定手段は、前記入力手段が受け付けた前記認証コードと、前記取得ブロック値算出手段が算出した前記取得ブロック値と、に基づいて前記データ取得手段が取得した前記登録秘匿データおよび前記秘匿データ以外のデータの正当性をさらに判定する、
ことを特徴とする請求項
1に記載の情報処理装置。
【請求項3】
前記出力手段は、前記正当性判定手段により前記秘匿データが正当であると判定されたことに基づいて、前記入力手段により入力された前記秘匿データを、前記データ取得手段で取得した前記秘匿データ以外のデータとともに出力し、前記正当性判定手段により前記秘匿データが正当でないと判定されたことに基づいて、異常である旨を出力する、
ことを特徴とする請求項
2に記載の情報処理装置。
【請求項4】
前記認証コード生成手段は、前記格納ブロック値から予め定められた値を抽出することにより前記認証コードを生成し、
前記正当性判定手段は、前記入力手段が受け付けた前記認証コードが、前記取得ブロック値算出手段により算出された前記取得ブロック値に含まれる場合に、前記データ取得手段が取得した前記登録秘匿データおよび前記秘匿データ以外のデータが正当であると判定する、
ことを特徴とする請求項
2または3に記載の情報処理装置。
【請求項5】
情報処理装置における情報処理方法であって、
秘匿データ判定手段が、登録対象のデータに秘匿データが含まれるか否かを判定する秘匿データ判定ステップと、
データ格納手段が、ネットワーク内に構築されるブロックチェーンで連結されるデータブロックに、前記登録対象のデータを格納するデータ格納ステップと
、
格納ブロック値算出手段が、前記データブロックに格納された登録秘匿データおよび前記秘匿データ以外のデータに一方向関数を適用し演算結果である格納ブロック値を算出する格納ブロック値算出ステップと、
入力手段が、前記秘匿データの入力と、前記データブロックを特定するデータブロック特定情報の入力を受け付ける入力ステップと、
データ取得手段が、前記データ格納ステップにより格納された前記登録秘匿データと、前記登録秘匿データ以外のデータのうち、前記データブロック特定情報により特定される前記データブロックに格納された前記登録秘匿データと前記秘匿データ以外のデータとを、前記データブロックから取得するデータ取得ステップと、
取得ブロック値算出手段が、前記データ取得ステップで取得した前記登録秘匿データおよび前記秘匿データ以外のデータに前記一方向関数を適用し演算結果である取得ブロック値を算出する取得ブロック値算出ステップと、
正当性判定手段が、前記入力ステップにより入力された前記秘匿データに前記一方向関数を適用して得た演算結果と、前記データ取得ステップで取得した前記登録秘匿データと、に基づいて前記入力ステップにより入力された前記秘匿データの正当性を判定するとともに、前記取得ブロック値算出ステップで算出した前記取得ブロック値に基づいて前記データ取得ステップで取得した前記登録秘匿データおよび前記秘匿データ以外のデータの正当性を判定する正当性判定ステップと、
出力手段が、前記正当性判定ステップによる判定結果を出力する出力ステップと、を備え、
前記データ格納ステップでは、前記秘匿データ判定ステップで前記秘匿データが含まれると判定した場合、前記秘匿データに
前記一方向関数を適用して得た演算結果を
前記登録秘匿データとして、前記登録対象のデータに含まれる前記秘匿データ以外のデータとともに、前記データブロックに格納する、
情報処理方法。
【請求項6】
コンピュータを、
登録対象のデータに秘匿データが含まれるか否かを判定する秘匿データ判定手段、
ネットワーク内に構築されるブロックチェーンで連結されるデータブロックに、前記登録対象のデータを格納するデータ格納手段
、
前記データブロックに格納された登録秘匿データおよび前記秘匿データ以外のデータに一方向関数を適用し演算結果である格納ブロック値を算出する格納ブロック値算出手段、
前記秘匿データの入力と、前記データブロックを特定するデータブロック特定情報の入力を受け付ける入力手段、
前記データ格納手段により格納された前記登録秘匿データと、前記登録秘匿データ以外のデータのうち、前記データブロック特定情報により特定される前記データブロックに格納された前記登録秘匿データと前記秘匿データ以外のデータとを、前記データブロックから取得するデータ取得手段、
前記データ取得手段が取得した前記登録秘匿データおよび前記秘匿データ以外のデータに前記一方向関数を適用し演算結果である取得ブロック値を算出する取得ブロック値算出手段、
前記入力手段により入力された前記秘匿データに前記一方向関数を適用して得た演算結果と、前記データ取得手段が取得した前記登録秘匿データと、に基づいて前記入力手段により入力された前記秘匿データの正当性を判定するとともに、前記取得ブロック値算出手段が算出した前記取得ブロック値に基づいて前記データ取得手段が取得した前記登録秘匿データおよび前記秘匿データ以外のデータの正当性を判定する正当性判定手段、
前記正当性判定手段による判定結果を出力する出力手段、として機能させ、
前記データ格納手段は、前記秘匿データ判定手段により前記秘匿データが含まれると判定した場合、前記秘匿データに
前記一方向関数を適用して得た演算結果を
前記登録秘匿データとして、前記登録対象のデータに含まれる前記秘匿データ以外のデータとともに、前記データブロックに格納する、
ことを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理装置、情報処理方法およびプログラムに関する。
【背景技術】
【0002】
ブロックチェーンの特徴の一つとして、改竄耐性がある。このようなブロックチェーンにおける改竄耐性により、ブロックに格納されたデータが改竄されておらず信頼性が高いことを証明する様々なサービスが提案されている。例えば、非特許文献1には、偽造不可能な証明書として、卒業生の学歴を担保するための技術が開示されている。
【先行技術文献】
【特許文献】
【0003】
【文献】”偽造できない「ブロックチェーン卒業証明書」が提供開始へ!卒業生の学歴をオンラインで立証可能に。”、[online]、2020年6月17日 10時10分、[令和2年9月7日検索]、インターネット<URL:https://prtimes.jp/main/html/rd/p/000000016.000047577.html>
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、非特許文献1に記載の技術では、秘匿性の高い情報についてもブロックに格納されるため、改竄耐性だけでなく秘匿性を向上させるといった観点からすると改善の余地があった。
【0005】
本発明は、上述のような事情に鑑みてなされたものであり、改竄耐性とともに秘匿性を向上させることのできる情報処理装置、情報処理方法およびプログラムを提供することを目的とする。
【課題を解決するための手段】
【0006】
上記目的を達成するため、本発明の第1の観点に係る情報処理装置は、
登録対象のデータに秘匿データが含まれるか否かを判定する秘匿データ判定手段と、
ネットワーク内に構築されるブロックチェーンで連結されるデータブロックに、前記登録対象のデータを格納するデータ格納手段と、
前記データブロックに格納された登録秘匿データおよび前記秘匿データ以外のデータに一方向関数を適用し演算結果である格納ブロック値を算出する格納ブロック値算出手段と、
前記秘匿データの入力と、前記データブロックを特定するデータブロック特定情報の入力を受け付ける入力手段と、
前記データ格納手段により格納された前記登録秘匿データと、前記登録秘匿データ以外のデータのうち、前記データブロック特定情報により特定される前記データブロックに格納された前記登録秘匿データと前記秘匿データ以外のデータとを、前記データブロックから取得するデータ取得手段と、
前記データ取得手段が取得した前記登録秘匿データおよび前記秘匿データ以外のデータに前記一方向関数を適用し演算結果である取得ブロック値を算出する取得ブロック値算出手段と、
前記入力手段により入力された前記秘匿データに前記一方向関数を適用して得た演算結果と、前記データ取得手段が取得した前記登録秘匿データと、に基づいて前記入力手段により入力された前記秘匿データの正当性を判定するとともに、前記取得ブロック値算出手段が算出した前記取得ブロック値に基づいて前記データ取得手段が取得した前記登録秘匿データおよび前記秘匿データ以外のデータの正当性を判定する正当性判定手段と、
前記正当性判定手段による判定結果を出力する出力手段と、を備え、
前記データ格納手段は、前記秘匿データ判定手段により前記秘匿データが含まれると判定した場合、前記秘匿データに前記一方向関数を適用して得た演算結果を前記登録秘匿データとして、前記登録対象のデータに含まれる前記登録秘匿データ以外のデータとともに、前記データブロックに格納する、
ことを特徴とする。
【0009】
前記格納ブロック値算出手段で算出した前記格納ブロック値に基づいて認証コードを生成する認証コード生成手段と、をさらに備え、
前記入力手段は、前記認証コードの入力をさらに受け付け、
前記正当性判定手段は、前記入力手段が受け付けた前記認証コードと、前記取得ブロック値算出手段が算出した前記取得ブロック値と、に基づいて前記データ取得手段が取得した前記登録秘匿データおよび前記秘匿データ以外のデータの正当性をさらに判定する、
ようにしてもよい。
【0010】
前記出力手段は、前記正当性判定手段により前記秘匿データが正当であると判定されたことに基づいて、前記入力手段により入力された前記秘匿データを、前記データ取得手段で取得した前記秘匿データ以外のデータとともに出力し、前記正当性判定手段により前記秘匿データが正当でないと判定されたことに基づいて、異常である旨を出力する、
ようにしてもよい。
【0011】
前記認証コード生成手段は、前記格納ブロック値から予め定められた値を抽出することにより前記認証コードを生成し、
前記正当性判定手段は、前記入力手段が受け付けた前記認証コードが、前記取得ブロック値算出手段により算出された前記取得ブロック値に含まれる場合に、前記データ取得手段が取得した前記登録秘匿データおよび前記秘匿データ以外のデータが正当であると判定する、
ようにしてもよい。
【0012】
上記目的を達成するため、本発明の第2の観点に係る情報処理方法は、
情報処理装置における情報処理方法であって、
秘匿データ判定手段が、登録対象のデータに秘匿データが含まれるか否かを判定する秘匿データ判定ステップと、
データ格納手段が、ネットワーク内に構築されるブロックチェーンで連結されるデータブロックに、前記登録対象のデータを格納するデータ格納ステップと、
格納ブロック値算出手段が、前記データブロックに格納された登録秘匿データおよび前記秘匿データ以外のデータに一方向関数を適用し演算結果である格納ブロック値を算出する格納ブロック値算出ステップと、
入力手段が、前記秘匿データの入力と、前記データブロックを特定するデータブロック特定情報の入力を受け付ける入力ステップと、
データ取得手段が、前記データ格納ステップにより格納された前記登録秘匿データと、前記登録秘匿データ以外のデータのうち、前記データブロック特定情報により特定される前記データブロックに格納された前記登録秘匿データと前記秘匿データ以外のデータとを、前記データブロックから取得するデータ取得ステップと、
取得ブロック値算出手段が、前記データ取得ステップで取得した前記登録秘匿データおよび前記秘匿データ以外のデータに前記一方向関数を適用し演算結果である取得ブロック値を算出する取得ブロック値算出ステップと、
正当性判定手段が、前記入力ステップにより入力された前記秘匿データに前記一方向関数を適用して得た演算結果と、前記データ取得ステップで取得した前記登録秘匿データと、に基づいて前記入力ステップにより入力された前記秘匿データの正当性を判定するとともに、前記取得ブロック値算出ステップで算出した前記取得ブロック値に基づいて前記データ取得ステップで取得した前記登録秘匿データおよび前記秘匿データ以外のデータの正当性を判定する正当性判定ステップと、
出力手段が、前記正当性判定ステップによる判定結果を出力する出力ステップと、を備え、
前記データ格納ステップでは、前記秘匿データ判定ステップで前記秘匿データが含まれると判定した場合、前記秘匿データに前記一方向関数を適用して得た演算結果を前記登録秘匿データとして、前記登録対象のデータに含まれる前記秘匿データ以外のデータとともに、前記データブロックに格納する、
ことを特徴とする。
【0013】
上記目的を達成するため、本発明の第3の観点に係るプログラムは、
コンピュータを、
登録対象のデータに秘匿データが含まれるか否かを判定する秘匿データ判定手段、
ネットワーク内に構築されるブロックチェーンで連結されるデータブロックに、前記登録対象のデータを格納するデータ格納手段、
前記データブロックに格納された登録秘匿データおよび前記秘匿データ以外のデータに一方向関数を適用し演算結果である格納ブロック値を算出する格納ブロック値算出手段、
前記秘匿データの入力と、前記データブロックを特定するデータブロック特定情報の入力を受け付ける入力手段、
前記データ格納手段により格納された前記登録秘匿データと、前記登録秘匿データ以外のデータのうち、前記データブロック特定情報により特定される前記データブロックに格納された前記登録秘匿データと前記秘匿データ以外のデータとを、前記データブロックから取得するデータ取得手段、
前記データ取得手段が取得した前記登録秘匿データおよび前記秘匿データ以外のデータに前記一方向関数を適用し演算結果である取得ブロック値を算出する取得ブロック値算出手段、
前記入力手段により入力された前記秘匿データに前記一方向関数を適用して得た演算結果と、前記データ取得手段が取得した前記登録秘匿データと、に基づいて前記入力手段により入力された前記秘匿データの正当性を判定するとともに、前記取得ブロック値算出手段が算出した前記取得ブロック値に基づいて前記データ取得手段が取得した前記登録秘匿データおよび前記秘匿データ以外のデータの正当性を判定する正当性判定手段、
前記正当性判定手段による判定結果を出力する出力手段、として機能させ、
前記データ格納手段は、前記秘匿データ判定手段により前記秘匿データが含まれると判定した場合、前記秘匿データに前記一方向関数を適用して得た演算結果を前記登録秘匿データとして、前記登録対象のデータに含まれる前記秘匿データ以外のデータとともに、前記データブロックに格納する、
ことを特徴とする。
【発明の効果】
【0014】
本発明によれば、改竄耐性とともに秘匿性を向上させることができる。
【図面の簡単な説明】
【0015】
【
図1】本発明の実施の形態に係る情報処理システムの一例を示すブロック図である。
【
図2】本発明の実施の形態に係る情報処理装置の一例を示すブロック図である。
【
図3】初期登録処理の一例を示すフローチャートである。
【
図4】データブロック登録処理の一例を示すフローチャートである。
【
図6】(A)は、登録対象データの一例を示す説明図であり、(B)は、登録データの一例を示す説明図である。
【
図7】(A)は、トランザクションデータを格納するハッシュチェーンの構成例を示す図であり、(B)は、新たなトランザクションデータを格納したハッシュチェーンの構成例を示す図である。
【
図9】データ認証処理の一例を示すフローチャートである。
【
図10】変形例における情報処理システムの一例を示すブロック図である。
【発明を実施するための形態】
【0016】
本発明における情報処理装置100を、
図1に示す情報処理システム1に適用した例を用いて説明する。情報処理システム1では、
図1に示すように、情報処理装置100A~100D(情報処理装置100A~100Dを単に情報処理装置100ともいう)のそれぞれがネットワーク210を介して通信可能に接続されている。
【0017】
本実施の形態に係る情報処理システム1では、情報処理装置100により、医療機関において行われた検査の結果を登録し証明書を発行する処理(後述するデータブロック登録処理)と、当該証明書の正当性を認証する処理(後述するデータ認証処理)と、が実行される。
【0018】
情報処理装置100は、携帯電話やスマートフォン、タブレットやPC(Personal Computer)等の情報端末であり、P2P(Peer to Peer)等の分散型のネットワーク210を構築している。なお、情報処理システム1は、P2P型のシステムに限られず、例えばクラウドコンピューティング型であってもよい。
【0019】
情報処理装置100は、医療機関において検査が行われると、後述するデータブロック登録処理において、当該検査結果の情報と被験者の個人情報と、を含むデータブロックをハッシュチェーンに登録する。ここで、被験者の個人情報が検査結果とともに認識可能な状態で登録されると、例えば何らかの病原体の感染者である個人が特定されてしまうなど、秘匿性に関する様々な問題が生じるおそれがある。そのため、本実施の形態では、被験者の個人情報そのものをデータブロックに格納するのではなく、被験者の個人情報に基づいて算出したハッシュ値を検査結果の情報とともにデータブロックに格納する。これにより、個人が特定されてしまうことを防止し、秘匿性を向上させている。
【0020】
また、情報処理装置100は、後述するデータ認証処理において、発行された証明書により特定されるデータブロックの内容を取得するとともに、当該取得したデータブロックに含まれるハッシュ値と、別途入力された被験者情報に基づいて算出したハッシュ値と、を比較することで、当該証明書が改竄されておらず、正当な証明書であることを認証する。これにより、秘匿性と改竄耐性を担保している。
【0021】
このように、情報処理装置100は、データ登録装置としての機能と、認証装置としての機能とを有する。
【0022】
なお、情報処理装置100は、ユーザの入出力部に対する操作等によってトランザクションの内容(検査結果の情報と被験者の個人情報)が入力されることにより、トランザクションデータを生成し、ネットワーク210へ配信する機能を有するトランザクション生成装置として機能することもある。データ登録装置にて登録された内容は、ネットワーク210を介して、各情報処理装置100で共有される。また、通常、一定数のトランザクションデータが一つのデータブロックに格納される(一定数のトランザクションデータをひとまとめにして一つのブロックに格納する)が、本実施の形態では、理解を容易にするため、一つのトランザクションデータが一つのデータブロックに格納されるものとする。
【0023】
本実施の形態において、検査が行われトランザクションが発生することにより生成された(情報処理装置100A~100Dのいずれかがトランザクション生成装置として機能して生成された)トランザクションデータは、データブロックと呼ばれる一つの単位に格納され、当該データブロックを時系列に連結したそれぞれの属性のハッシュチェーンによって管理される。例えば、医療機関Aにおいて発生したトランザクションデータは、医療機関Aの属性のハッシュチェーンに、新たなデータブロックとして登録され管理される。
【0024】
次に、
図2を参照し、本実施の形態における情報処理装置100の構成について説明する。なお、図示する例では、情報処理装置100Aを例としているが、情報処理装置100B~100Dの端末が情報処理装置100として機能する場合についても同様であるため、説明は省略する。なお、図示は省略しているが、トランザクション生成装置としての機能を有する機能部が設けられていてもよい。
【0025】
図2に示すように、情報処理装置100A(以下、情報処理装置100)は、記憶部110と、制御部120と、入出力部130と、通信部140と、これらを相互に接続するシステムバス(図示省略)と、を備えている。
【0026】
記憶部110は、ROM(Read Only Memory)やRAM(Random Access Memory)等を備える。ROMは制御部120のCPU(Central Processing Unit)が実行するプログラム、およびプログラムを実行する上で予め必要なデータを記憶する(図示省略)。具体的に、本実施の形態では、当該情報処理装置100を、データ登録装置および認証装置として機能させるためのプログラムが、予めインストールされている。RAMは、プログラム実行中に作成されたり変更されたりするデータを記憶する。記憶部110は、制御部120が実行するプログラムが用いる主要な情報として、各属性のハッシュチェーン111、秘匿設定情報112を記憶する。
【0027】
各属性のハッシュチェーン111は、例えば、医療機関A、医療機関B、検査機関Cといったそれぞれの属性に対応するハッシュチェーンである。本実施の形態における各属性のハッシュチェーン111は、トランザクションデータ(検査結果の情報と被験者のハッシュ値の情報)が格納されたデータブロックが連結されたものである。各属性のハッシュチェーン111は、後述するデータブロック登録処理にて記憶部110に記憶される。なお、トランザクションデータが格納されたデータブロックが連結されたハッシュチェーンは、特許請求の範囲におけるブロックチェーンの一例である。また、本実施の形態では、医療機関A、医療機関B、検査機関Cといったように医療機関や検査機関ごとのハッシュチェーンが記憶される例を示しているが、属性毎のハッシュチェーンでなく、属性に関わらず時系列にデータブロックが連結されたハッシュチェーンが記憶されてもよい。
【0028】
秘匿設定情報112は、検査が行われることで発生した検査データ(トランザクションデータ)に含まれる被験者の個人情報や検査結果の情報などの各種情報について、秘匿すべき情報(秘匿情報)であるか否か(秘匿設定の有無)を示す情報の一覧である。秘匿設定情報112は、当該情報処理システム1の管理者により記憶部110に記憶され、適宜修正や追加が可能となっている。なお、本実施の形態では、
図5に示すように、被験者の氏名、生年月日、性別などの被験者の個人情報が秘匿情報として設定されている。なお、詳しくは後述するが、当該秘匿設定情報112において秘匿情報に設定された情報は、ハッシュ値算出部125にてハッシュ化され、データブロック登録部123によりハッシュチェーンに登録される。
【0029】
制御部120は、CPUやASIC(Application Specific Integrated Circuit)等から構成される。制御部120は、記憶部110に記憶されたプログラムに従って動作し、当該プログラムに従った処理を実行する。制御部120は、記憶部110に記憶されたプログラムにより提供される主要な機能部として、初期登録部121と、同期処理部122と、データブロック登録部123と、秘匿情報判定部124と、ハッシュ値算出部125と、コード生成部126と、データ取得部127と、データ認証部128と、認証結果処理部129と、を備える。
【0030】
初期登録部121は、ユーザの入出力部130に対する操作や、通信部140を介して受信した要求に基づいて、新たな属性のハッシュチェーンを生成するために必要な初期情報を登録する機能を実現する機能部である。詳しくは後述するが、初期登録部121は、例えば、医療機関Aの属性のハッシュチェーンを生成するために必要な初期情報として、属性情報、医療機関Aのアドレス、インデックス値等を登録する機能(すなわち、後述するハッシュチェーンの土台情報を登録する機能)を有している。
【0031】
同期処理部122は、当該情報処理装置100に記憶された各属性のハッシュチェーン111と、他の情報処理装置100に記憶された各属性のハッシュチェーン111とを同期する機能を実現する機能部である。同期処理部122は、後述するデータブロック登録処理にてトランザクションデータを当該情報処理装置100におけるデータブロックに登録する前後において、他の情報処理装置100と同期する機能を有している。また、同期処理部122は、後述する初期登録処理において他の情報処理装置100へ、ハッシュチェーンの土台情報を同期させる機能を有している。
【0032】
データブロック登録部123は、発生したトランザクションのトランザクションデータを含むデータブロックを、当該情報処理装置100の各属性のハッシュチェーン111のうち、対応する属性のハッシュチェーンに追加する機能を実現する機能部である。詳しくは後述するが、データブロック登録部123は、検査が行われることで発生したデータである、被験者の個人情報と検査結果の情報とを含む検査データ(トランザクションデータ)のうち、被験者の個人情報をハッシュ値算出部125にてハッシュ化し、被験者の個人情報のハッシュ値と検査結果の情報とを含むデータブロックを、対応する属性のハッシュチェーンに追加する。例えば、被験者1が医療機関Aにて検査を受けた場合、当該発生したトランザクションデータについて、被験者の個人情報である被験者1の個人情報をハッシュ値算出部125にてハッシュ化し、当該ハッシュ値と検査結果の情報を、医療機関Aの属性のハッシュチェーンに新たなデータブロックとして登録する機能を有している。
【0033】
秘匿情報判定部124は、検査が行われることで発生した被験者の個人情報と検査結果の情報とを含む検査データ(トランザクションデータ)に、被験者の個人情報などの秘匿すべき情報、すなわちハッシュ値算出部125にてハッシュ化すべき秘匿情報、が含まれているか否かを判定する機能部である。具体的に、秘匿情報判定部124は、記憶部110に記憶された秘匿設定情報112を確認し、検査データ(トランザクションデータ)に含まれる各種情報に、当該秘匿設定情報112にて秘匿設定有りに設定されている情報があるか否かを判定する。なお、当該秘匿設定情報112にて秘匿設定有りに設定されている情報がある場合に、秘匿情報が含まれていると判定する。
【0034】
ハッシュ値算出部125は、秘匿情報判定部124にて当該検査データ(トランザクションデータ)に秘匿情報が含まれていると判定した場合に、検査データ(トランザクションデータ)に含まれている秘匿情報に、予め設定された一方向関数であるハッシュ関数を適用し、秘匿情報をハッシュ化する機能部である。具体的に、本実施の形態におけるハッシュ値算出部125は、検査データ(トランザクションデータ)に含まれている情報のうち、秘匿設定情報112にて秘匿設定有りに設定されている被験者の氏名、生年月日、性別などの被験者の個人情報を、秘匿情報としてハッシュ化する。
【0035】
コード生成部126は、データブロック登録部123により新たに追加したデータブロックのハッシュ値に基づいて、予め定められた方法によりパスコードを生成する機能部である。詳しくは後述するが、検査が行われ、
図7(A)に示す状態から
図7(B)に示す状態へと、検査データが、インデックス値(N)のデータブロックとして新たに追加された場合、コード生成部126は、当該データブロックNのハッシュ値に基づいてパスコードを生成する。なお、本実施の形態では、ハッシュ値のX文字目から4文字を抽出することで4桁のパスコードを生成する。なお、パスコードの桁数は4桁に限られず、多くても少なくてもよい。また、パスコードを生成する方法は、毎回異なる方法(例えば1回目はX文字目から4桁、2回目はY文字目から4桁、3回目はZ文字目から1文字飛ばしで4桁、それぞれ抽出するなど)に変化してもよいし、所定回数生成された場合に変更されるようにしてもよい。さらに、奇数回目の生成と偶数回目の生成とで生成手法が異なるようにしてもよい。このように、コード生成部126は、新たに登録されたデータブロックのハッシュ値からパスコードを生成する。なお、データブロックのハッシュ値は、当該データブロックに格納されている被験者の個人情報のハッシュ値と検査結果の情報とを含む情報のハッシュ値であることから、コード生成部126は、データブロックに格納されている被験者の個人情報のハッシュ値と検査結果の情報とを含む情報のハッシュ値に基づいてパスコードを生成しているとも言える。なお、当該コード生成部126にて生成されたパスコードは、被験者に直接伝えられ、証明書等とは別の経路で被験者個人に伝達される。また、コード生成部126は、データブロック登録部123により新たに追加したデータブロックのアドレスを示す二次元コードを生成する機能も有している。具体的に、コード生成部126は、データブロック登録部123により新たに追加したデータブロックについて、当該ハッシュチェーンの属性情報と、当該データブロックを特定するデータブロック特定情報と、を含む二次元コードを生成する。
【0036】
データ取得部127は、登録された各属性のハッシュチェーン111に含まれるデータブロックの内容(被験者の個人情報のハッシュ値と検査結果の情報)を取得する機能を実現する機能部である。具体的に、データ取得部127は、後述する証明書の二次元コードにより特定される属性のハッシュチェーン111であって、当該二次元コードにより特定されるデータブロックに格納された被験者の個人情報のハッシュ値と検査結果の情報とを取得する。
【0037】
データ認証部128は、入出力部130に入力されたパスコードに基づいてデータブロックの内容の正当性を認証する機能(データブロック認証機能)と、入出力部130に入力された被験者の個人情報に基づいて当該証明書の正当性を認証する機能(証明書認証機能)と、を有する機能部である。具体的に、データ認証部128は、データブロック認証機能として、入出力部130に入力されたパスコードの値が、データ取得部127で取得したデータブロックの内容に基づくハッシュ値(当該データブロックのハッシュ値)に含まれているか否かや、取得したデータブロックの内容に基づくハッシュ値(当該データブロックのハッシュ値)から生成したパスコードの値が入出力部130に入力されたパスコードの値と一致するかなどにより、パスコードに基づいて取得したデータブロックの内容が正当であるか否かを認証する。また、データ認証部128は、証明書認証機能として、入出力部130に入力された被験者の個人情報(秘匿情報)に、予め設定された一方向関数であるハッシュ関数を適用して得たハッシュ値が、データ取得部127で取得したデータブロックの内容(被験者の個人情報のハッシュ値と検査結果の情報)のうち、被験者の個人情報のハッシュ値と一致するか否かにより、個人情報の正当性、すなわち当該個人情報が記載されている証明書が正当であるか否かを認証する。
【0038】
認証結果処理部129は、データ認証部128による認証結果に基づいて認証結果を出力する機能部である。具体的に、認証結果処理部129は、データ認証部128によるデータブロック認証機能による認証結果が認証失敗である場合、および証明書認証機能による認証結果が認証失敗である場合、認証に失敗した旨を出力する。また、認証結果処理部129は、証明書認証機能による認証結果が認証成功である場合、当該入出力部130に入力された被験者の個人情報を用いて認証結果成功を示す証明書を出力する。なお、データ認証部128によるデータブロック認証機能による認証結果が成功である場合には、そのまま処理を継続させるため、認証結果処理部129にて特段情報を出力する処理を行わないが、成功結果を出力し、次の処理に移行する旨を出力してもよい。
【0039】
これら各機能部が協働して、当該情報処理装置100をデータ登録装置および認証装置として機能させる。なお、初期登録部121、同期処理部122、データブロック登録部123、秘匿情報判定部124、ハッシュ値算出部125、およびパスコード生成部126は、データ登録装置としての機能部であり、データ取得部127、データ認証部128、および認証結果処理部129は、認証装置としての機能部である。
【0040】
入出力部130は、キーボード、マウス、カメラ、マイク、液晶ディスプレイ、有機EL(Electoro-Luminescence)ディスプレイ等から構成され、データの入出力を行うための装置である。
【0041】
通信部140は、情報処理装置100A~100Dがネットワーク210を介して通信を行うためのデバイスである。
【0042】
以上が、情報処理装置100の構成である。続いて情報処理装置100の動作等について、図を参照して説明する。まず、データ登録装置として機能した場合における情報処理装置100の動作について、
図3~8を参照して説明する。
【0043】
まず、ユーザの入出力部130に対する操作(入力操作)や、ユーザ端末として動作する情報処理装置100から受信した要求(登録要求)に基づいて、
図3に示す初期登録処理が開始される。初期登録処理は、新たな属性のハッシュチェーンを生成するために必要な初期情報を登録する処理である。この例では、理解を容易にするため、医療機関Aについての初期登録を行う場合について説明する。初期登録処理を開始すると、情報処理装置100は、初期登録部121の機能により、属性データを生成する(ステップS101)。具体的に、ステップS101では、入力操作や登録要求に含まれる、属性情報である医療機関Aの情報および医療機関Aのアドレスを、医療機関Aの属性のハッシュチェーンを生成するための情報として、記憶部110へ登録する。なお、当該情報は、各属性のハッシュチェーン111のうちの属性Aのハッシュチェーンとして登録されればよい。また、属性情報は登録せず、アドレスのみ登録するようにしてもよい。
【0044】
次に、情報処理装置100は、初期登録部121の機能により、登録した医療機関Aの属性のハッシュチェーンのインデックス値に、初期値である「0」を登録する(ステップS102)。インデックス値が「0」であることは、当該ハッシュチェーンが初期状態であること(何らデータブロックが登録されていない状態であること)を示している。すなわち、ステップS101およびステップS102の処理では、データブロックがチェーンで連結されてはいないものの、データブロックが未登録のハッシュチェーン(ハッシュチェーンの土台情報)が生成されていると言える。なお、この状態では、データブロックがチェーンで連結されていないため、データを削除でき、また、削除したことを検証することができない、といった問題がある。そこで、対改竄性を高めるため、ランダムで選択したハッシュチェーンに対して、特別なトランザクションを発生させ、インデックス値が「0」のデータブロックをチェーンで連結する処理を行うようにしてもよい。
【0045】
ステップS102の処理を実行した後、情報処理装置100は、同期処理部122の機能により、他の情報処理装置100へ、当該内容を登録し(ステップS103)、初期登録処理を終了する。具体的に、ステップS103では、当該情報処理装置100における医療機関Aの属性のハッシュチェーン(ハッシュチェーンの土台情報)の内容を、他の情報処理装置100の記憶部110における各属性のハッシュチェーン111へコピーする。これにより、全ての情報処理装置100において医療機関Aの属性のハッシュチェーン(ハッシュチェーンの土台情報)が共有されることとなる。
【0046】
次に、発生した検査データであるトランザクションデータを、対応する属性のハッシュチェーンへ登録するデータブロック登録処理について説明する。当該データブロック登録処理は、発生したトランザクションに対応するトランザクションデータを受信することにより実行される。トランザクションデータは、ユーザ端末として機能する情報処理装置100より受信するものであるが、入出力部130に入力されてもよい。なお、本実施の形態では、上述したように、一つのトランザクションにつき一つのデータブロックが作成され登録されることから、当該データブロック登録処理は、登録すべきトランザクションの数が複数ある場合、繰り返し実行されることとなる。
【0047】
図4は、データブロック登録処理の一例を示すフローチャートである。この例では、被験者が医療機関Aにて検査を受け、当該検査結果がトランザクションデータとして登録される場合におけるデータブロック登録処理について説明する。具体的に、
図6(A)に示すように、被験者が検査を受け、登録対象データとしてのトランザクションデータに、図示するように、当該被験者の「氏名」、「生年月日」、「性別」、「検査実施日」、「検査結果」、「証明書発行者」、「証明書発行日」、および「医師のサイン」といった情報が含まれ、これらが新たなデータブロックに登録される場合を例に、以下説明する。なお、
図5に示すように、これら情報のうち、「氏名」、「生年月日」、「性別」といった被験者の個人情報が秘匿設定されている場合、当該データブロック登録処理により、
図6(A)に示すトランザクションデータのうち、秘匿情報については、
図6(B)に示すようにハッシュ化され、それ以外のデータとともに登録データとして登録されることとなる。以下、具体的に説明する。
【0048】
まず、被験者が医療機関Aにて検査を受けた(検査結果が出たという場合も含む)というトランザクションが発生すると、これに対応するトランザクションデータが医療機関Aの情報処理装置100から入力される。これにより、情報処理装置100は、データブロック登録部123の機能により、データブロック登録処理を開始する。なお、例えば、医療機関Aの情報端末から当該トランザクションデータを受信することにより、ネットワーク内における医療機関Aの情報端末とは別の情報処理装置100がデータブロック登録処理を実行してもよい。
【0049】
データブロック登録処理を開始すると、情報処理装置100は、まず、同期処理部122の機能により、当該情報処理装置100における対象のハッシュチェーンと、他の情報処理装置100における対象のハッシュチェーンとが、同期しているか否かを判定する(ステップS201)。具体的に、この例におけるステップS201の処理では、各属性のハッシュチェーン111のうち、医療機関Aのハッシュチェーンに含まれる最新のデータブロックのインデックス値とハッシュ値が、他の全ての情報処理装置100に記憶されたものと同一であるか否かを判定することで、同期しているか否かを判定する。
【0050】
図7(A)に示す例を用いて説明すると、当該情報処理装置100(トランザクションデータを受信した情報処理装置100のことをいう、以下同様)の各属性のハッシュチェーン111のうち、医療機関Aのハッシュチェーンには、インデックス値「N-1」のデータブロックが最新のデータブロックとして登録されている。なお、図示するように、本実施の形態におけるハッシュチェーンのデータブロック(第mのデータブロック)には、登録データ(トランザクションデータ)と、現在のハッシュチェーンの末尾(1つ前)のデータブロック(第m-1のデータブロック)のハッシュ値(256ビット)が含まれる点は、従来のブロックチェーンの仕組みと同様である。
【0051】
ステップS201の処理では、インデックス値「N-1」と当該N-1のハッシュ値が、他の全ての情報処理装置100に記憶されているものと一致するか否かを判定することで、同期しているか否かを判定する。例えば、インデックス値「N」と当該Nのハッシュ値が記憶されている情報処理装置100が存在する場合には、当該情報処理装置100に記憶されている医療機関Aの属性のハッシュチェーンの情報が古いと判定する。一方、インデックス値「N-2」と当該N-2のハッシュ値が記憶されている情報処理装置100が存在する場合には、その情報処理装置100に記憶されている医療機関Aの属性のハッシュチェーンの情報が古いと判定する。
【0052】
図4に戻り、同期していない場合(ステップS201;No)、情報処理装置100は、同期処理部122の機能により、最新のハッシュチェーンの内容を、古いと判定したハッシュチェーンが登録されている情報処理装置100へコピーする同期処理を実行する(ステップS202)。なお、ステップS202の処理では、ハッシュチェーン全体をコピーしてもよいし、不足しているデータブロックのみ(インデックス値やハッシュ値も含む)をコピーしてもよい。
【0053】
ステップS201にて同期していると判定した場合(ステップS201;Yes)、またはステップS202の処理を実行した場合、情報処理装置100は、秘匿情報判定部124の機能により、トランザクションデータに被験者の個人情報などの秘匿すべき情報、すなわちハッシュ値算出部125にてハッシュ化すべき秘匿情報、が含まれているか否かを判定する(ステップS203)。ステップS203では、記憶部110に記憶された秘匿設定情報112を確認して秘匿情報の有無を判定する。例えば、
図5に示す秘匿設定情報112が記憶されている場合、「氏名」、「生年月日」、および「性別」といった被験者の個人情報について秘匿設定有りに設定されていることから、ステップS203の処理では、これらの情報が含まれている場合に、秘匿情報有りと判定する。なお、トランザクションデータに含まれる各種情報が「氏名」、「生年月日」、および「性別」といった被験者の個人情報に対応するか否かについては、例えば、トランザクションデータに含まれる情報のうち、3番目の情報が「氏名」に対応し、4番目の情報が「生年月日」に対応し、当該「氏名」や「生年月日」に対応する情報が含まれていない場合には当該3番目と4番目の情報は空欄となるなど、予め識別可能となっていればよい。
【0054】
図4に示すステップS203の処理にて秘匿情報有りと判定した場合(ステップS203;Yes)、情報処理装置100は、ハッシュ値算出部125の機能により、当該トランザクションデータに含まれる秘匿情報に予め設定された一方向関数であるハッシュ関数を適用して秘匿情報をハッシュ化し、ハッシュ値を算出する(ステップS204)。具体的に、ステップS204の処理では、
図6(A)に示す登録対象データであるトランザクションデータに含まれる秘匿情報を、
図6(B)に示すハッシュ値へとハッシュ化する。なお、ステップS204処理では、
図6(B)に示すように「氏名」、「生年月日」、および「性別」の情報をまとめてハッシュ化してもよいし、トランザクションデータに含まれる秘匿情報を1つずつハッシュ化してもよい。また、複数の組み合わせ毎にハッシュ化してもよい。組み合わせについては、予め組み合わせパターンが複数パターン設定されていればよく、当該複数の組み合わせパターンは、ランダムで変更されるようにしてもよい。
【0055】
図4に示すステップS204の処理を実行した後、またはステップS203にて秘匿情報なしと判定した場合(ステップS203;No)、情報処理装置100は、データブロック登録部123の機能により、ステップS204で算出したハッシュ値を、トランザクションデータに含まれる秘匿情報以外の情報(検査結果の情報)とともに、医療機関Aの属性のハッシュチェーンに新たなデータブロックとして追加(登録)する(ステップS205)。なお、ステップS203にて秘匿情報なしと判定した場合は、トランザクションデータをそのまま新たなデータブロックとして追加(登録)すればよい。なお、本実施の形態では、理解を容易にするため、検査が行われることでトランザクションが発生する例を示しているが、検査以外にも秘匿情報を含まない内容のトランザクションが発生する場合があり、その場合にステップS203にて秘匿情報なしと判定される。具体的に、ステップS203の処理では、
図7(A)に示す状態から
図7(B)に示す状態へと、インデックス値(N-1)のデータブロックに、インデックス値(N)のデータブロックが追加される。インデックス値(N)のデータブロックには、(N-1)のデータブロックのハッシュ値に加え、ステップS204で算出したハッシュ値と、「検査実施日」、「検査結果」、「証明書発行者」、「証明書発行日」、および「医師のサイン」といった秘匿情報以外の情報(検査結果の情報)とが含まれる。
【0056】
図4に示すステップS205の処理を実行した後、情報処理装置100は、コード生成部126の機能により、ステップS205の処理にて追加したデータブロックのハッシュ値に基づいて、予め定められた方法によりパスコードを生成する(ステップS206)。なお、当該ステップS206の処理にて生成されたパスコードは、図示は省略しているが、例えば後述するステップS209の処理にて証明書とは別に出力され、直接被験者個人に伝達される。ステップS206では、上述したように、ハッシュ値のX文字目から4文字を抽出することで4桁のパスコードを生成する。
【0057】
ステップS206の処理を実行した後、情報処理装置100は、同期処理部122の機能により、ステップS205にてデータブロックを追加した属性のハッシュチェーンを他の情報処理装置100へ登録することにより、当該情報処理装置100と他の情報処理装置100とを同期する(ステップS207)。ステップS207の処理では、当該情報処理装置100における医療機関Aの属性のハッシュチェーンそれぞれの内容を、他の情報処理装置100の記憶部110における各属性のハッシュチェーン111へコピーする。ステップS207の処理では、ステップS202の処理と同様に、ハッシュチェーン全体をコピーしてもよいし、不足しているデータブロックのみ(インデックス値やハッシュ値も含む)をコピーしてもよい。
【0058】
ステップS207の処理を実行した後、情報処理装置100は、コード生成部126の機能により、ステップS205の処理にて追加(登録)したデータブロックを特定するための二次元コードを生成する(ステップS208)。ステップS208の処理では、ステップS205にて追加したデータブロックについて、当該ハッシュチェーンの属性情報と当該データブロックを特定するデータブロック特定情報、といった所謂アドレス情報を含む二次元コードを生成する。
【0059】
ステップS208の処理を実行した後、情報処理装置100の制御部120は、ステップS208で生成した二次元コードと、検査結果の情報と被験者の個人情報とを含むトランザクションデータの内容が記載された証明書(
図8参照)を出力し(ステップS209)、データブロック登録処理を終了する。なお、
図8に示す証明書は一例であり、検査結果の情報と被験者の個人情報の記載順や二次元コードについては変更可能であってよい。また、上述したように、ステップS209では、証明書とは別に、ステップS206の処理にて生成されたパスコードも出力される。なお、本実施の形態では、ステップS207の処理を実行した後にステップS208やステップS209の処理を実行する例を示したが、ステップS209の処理は、ステップS205の処理を実行した後のタイミングであれば任意のタイミングであってよく、ステップS207の処理はステップS209の処理の後に実行してもよい。
【0060】
以上がデータ登録装置として機能した場合における情報処理装置100の動作である。続いて認証装置として機能した場合における情報処理装置100の動作について、
図9等を参照して説明する。
【0061】
図9は、データ認証処理の一例を示すフローチャートである。当該データ認証処理は、情報処理装置100のユーザによる操作により開始される。データ認証処理を開始すると、制御部120は、
図8に示す証明書における二次元コードを読み込むため、入出力部130におけるカメラを起動し、当該証明書の二次元コードを読み込む(ステップS301)。当該二次元コードは、上述したようにハッシュチェーンの属性情報とデータブロック特定情報、といった所謂アドレス情報であることから、ステップS301の処理により二次元コードが読み込まれることで、取得すべきデータブロックが特定されることとなる。具体的に、ステップS301の処理にて
図8に示す証明書の二次元コードが読み込まれることで、
図7(B)に示すインデックス値(N)のデータブロックが取得対象として特定されることとなる。
【0062】
続いて情報処理装置100は、データ取得部127の機能により、ステップS301にて読み込んだ二次元コードの情報により特定されるデータブロックの内容、すなわち登録データを取得する(ステップS302)。具体的に、ステップS302の処理では、
図7(B)に示すインデックス値(N)のデータブロックの内容(具体的内容については
図6(B)参照)を取得する。
【0063】
ステップS302にて登録データを取得した後、情報処理装置100は、パスコードの入力を受け付ける(ステップS303)。ステップS303の処理では、
図4のステップS209の処理にて証明書とは別に出力された、当該登録データの内容に対応するパスコードの入力を受け付ける。なお、本実施の形態では、ステップS302の処理の後にステップS303の処理にてパスコードの入力を受け付ける例を示しているが、先にステップS303の処理を実行してパスコードの入力を受け付け、入力を受け付けたことに基づいて、ステップS302の処理により登録データを取得するようにしてもよい。
【0064】
ステップS303の処理を実行した後、情報処理装置100は、データ認証部128の機能により、ステップS303にて入力されたパスコードの値が、ステップS302にて取得したデータブロックの内容に基づくハッシュ値(当該取得したデータブロックのハッシュ値)に含まれているか否かにより、ステップS302にて取得したデータブロックの内容が正当であるか否かを判定することで、パスコードにより特定されるデータブロック正当性を認証する(ステップS304)。上述したように、パスコードは、インデックス値(N)のデータブロックとして新たに追加された場合には、データブロックNのハッシュ値に基づいて生成される。そのため、ステップS304の処理では、入力されたパスコードがデータブロックNのハッシュ値に含まれるか否かにより、ステップS302にて取得したデータブロックの内容が正当であるか否かを判定する。なお、上述したように、ステップS304の処理では、取得したデータブロックの内容に基づくハッシュ値(当該データブロックのハッシュ値)から生成したパスコードの値が、ステップS303にて入力されたパスコードの値と一致するかなどにより、取得したデータブロックの内容が正当であるか否かを認証してもよい。このように、本実施の形態では、証明書とは別に出力されたパスコードを用いてデータブロックの内容についての正当性を認証しているため、データブロックの内容の取り扱いについての安全性も担保している。
【0065】
取得したデータブロックの内容が正当であると判定した場合(ステップS304;Yes)、情報処理装置100は、入出力部130のユーザによる入力操作により、秘匿情報の入力を受け付ける(ステップS305)。ステップS305の処理では、秘匿情報として、
図6(A)に示す被験者の氏名、生年月日、性別などの被験者の個人情報の入力を受け付ける。当該ステップS305の処理にて入力を受け付ける秘匿情報の種類は、予め設定されていればよい。なお、ステップS305では、例えば記憶部110に記憶されている秘匿設定情報112にて秘匿設定がなされている情報について入力を受け付けるようにしてもよい。
【0066】
ステップS305にて秘匿情報が入力されると、情報処理装置100は、データ認証部128の機能により、ステップS305で入力された秘匿情報に、予め設定された一方向関数であるハッシュ関数を適用してハッシュ化し、当該秘匿情報のハッシュ値を算出する(ステップS306)。具体的に、ステップS306の処理では、ステップS305にて
図6(A)に示す秘匿情報が入力された場合、当該秘匿情報に基づくハッシュ値を算出し、ステップS305の処理にて
図6(A)に示す秘匿情報とは別人の個人情報が入力された場合には、当該別人の個人情報に基づくハッシュ値を算出する。
【0067】
ステップS306の処理を実行した後、情報処理装置100は、データ認証部128の機能により、ステップS306にて算出したハッシュ値が、ステップS302の処理にて取得した登録データに含まれるハッシュ値と一致するか否かを判定することにより、個人情報の正当性、すなわち当該個人情報が記載されている証明書が正当であるか否かを認証する(ステップS307)。具体的に、ステップS305にて
図6(A)に示す秘匿情報が入力された場合は、ステップS306の処理にて算出されたハッシュ値は、ステップS302の処理にて取得したインデックス値(N)のデータブロックに含まれるハッシュ値と一致するため、ステップS307にて一致すると判定されることとなる。一方、ステップS305の処理にて
図6(A)に示す秘匿情報とは別人の個人情報が入力された場合には、ステップS306の処理にて算出されたハッシュ値は、ステップS302の処理にて取得したインデックス値(N)のデータブロックに含まれるハッシュ値と一致しないため、ステップS307にて一致しないと判定されることとなる。
【0068】
ステップS307の処理にてハッシュ値が一致すると判定した場合(ステップS307;Yes)、情報処理装置100は、認証結果処理部129の機能により、認証成功として、ステップS305にて入力された秘匿情報と、ステップS302にて取得した登録データに含まれる検査結果の情報とに基づいて証明書を生成して出力し(ステップS308)、データ認証処理を終了する。ステップS305の処理にて
図6(A)に示す秘匿情報が入力された場合、ステップS308の処理では、当該秘匿情報と、
図6(B)に示す検査結果の情報とを組み合わせた証明書を出力する。なお、ステップS308の処理では、例えば、入力された秘匿情報のうち、氏名についての情報と、ステップS302にて取得した登録データに含まれる検査結果の情報のうち、陽性か陰性かの情報とを出力するなど、それぞれ一部の情報を組み合わせて出力するようにしてもよい。このように、本実施の形態では、入力された秘匿情報と、取得した登録データとを組み合わせて認証を行う。また、秘匿情報のハッシュ値を用いて正当性を判定するため、秘匿性を保ったまま正当性の確認を行うことができる。
【0069】
一方、ステップS307の処理にてハッシュ値が一致しないと判定した場合(ステップS307;No)や、ステップS304の処理において、取得したデータブロックの内容が正当でないと判定した場合(ステップS304;No)、情報処理装置100は、認証結果処理部129の機能により、認証失敗としてエラー出力を行い(ステップS309)、データ認証処理を終了する。なお、ステップS309の処理では、ステップS307の処理にてハッシュ値が一致しないと判定した場合と、ステップS304の処理にてデータブロックの内容が正当でないと判定した場合とで、異なる態様のエラー出力としてもよい。また、ステップS304の処理にてデータブロックの内容が正当でないと判定した場合には、ステップS303の処理に戻り、パスコードの入力を再度受け付ける(パスコードの再入力を受け付ける)ようにしてもよい。同様に、ステップS307の処理にてハッシュ値が一致しないと判定した場合においても、ステップS305の処理に戻り、秘匿情報の入力を再度受け付ける(秘匿情報の再入力を受け付ける)ようにしてもよい。さらに、秘匿情報の再入力を受付可能な回数とパスコードの再入力の受付可能な回数とが予め設定されていてもよい。その場合、例えば秘匿情報の再入力を受付可能な回数は、パスコードの再入力の受付可能な回数よりも少ない回数であればよく、それぞれの回数は管理者により任意に設定可能であってもよい。
【0070】
このように、本実施の形態の情報処理装置100は、被験者の個人情報そのものをデータブロックに格納するのではなく、被験者の個人情報に基づいて算出したハッシュ値を当該検査結果の情報ととともに対応付けてデータブロックに格納する。したがって、個人が特定されてしまうことを防止し、改竄耐性だけでなく秘匿性を向上させることができる。
【0071】
(変形例)
なお、この発明は、上記実施の形態に限定されず、様々な変形及び応用が可能である。例えば、情報処理装置100では、上記実施の形態で示した全ての技術的特徴を備えるものでなくてもよく、従来技術における少なくとも1つの課題を解決できるように、上記実施の形態で説明した一部の構成を備えたものであってもよい。また、下記の変形例それぞれについて、少なくとも一部を組み合わせてもよい。
【0072】
上記実施の形態では、理解を容易にするため、情報処理装置100がデータ登録装置としての機能と、認証装置としての機能との両方の機能を有している例を示したが、これは一例である。例えば、
図10に示すように、情報処理装置100は、データ登録装置としての機能を有し、認証装置としての機能は、例えば別の情報処理装置900が有していてもよい。具体的に、データ登録装置としての機能を有する情報処理装置100は、医療機関や検査機関に設けられ、認証装置としての機能を有する情報処理装置900は、空港やテーマパークやイベント会場など、陰性であることが入場の条件となる機関に設けられていればよい。
【0073】
この場合、患者が医療機関で検査を受けた場合、当該医療機関の情報処理装置100により当該患者の個人情報(秘匿情報)がハッシュ化され、検査結果の情報とともにハッシュチェーンに登録される。そして、当該患者にはパスコードが伝達されるとともに、証明書が発行される。
【0074】
当該パスコードと証明者を入手した患者は、空港やテーマパークやイベント会場などに設けられた情報処理装置900により、当該証明者の二次元コードが読み取られ、パスコードおよび個人情報を入力がされることで、証明書の正当性が認証され、入場が許可されることとなる。
【0075】
また、上記実施の形態では、情報処理装置100により、医療機関において行われた検査の結果がハッシュチェーンに登録され、証明書の正当性を認証する例を示したが、これは一例である。例えば、試験の合否の結果や卒業の有無等の学歴に関する情報がハッシュチェーンに登録され、当該事項を認証するようにしてもよい。また、例えば、学歴や資格の有無等を登録する登録機関において、学歴や資格等の情報をそれぞれの属性のハッシュチェーンにまとめて登録可能とした上で、これらの情報の全てまたは一部を、要求に応じて認証するようにしてもよい。
【0076】
また、上記実施の形態では、
図9のステップS305の処理において、入出力部130のユーザによる入力操作により、秘匿情報の入力を受け付ける例を示したが、これは一例である。例えば、IC(Integrated Circuit)チップが内蔵されたパスポートや免許などから当該ICに記憶された情報を読み取り、秘匿設定情報112にて秘匿設定がなされている秘匿情報を抽出することで、秘匿情報の入力受け付けるようにしてもよい。また、証明書に記載された秘匿情報を入出力部130のカメラで読み取り、文字認識を行うことで当該秘匿情報の入力を受け付けるようにしてもよい。
【0077】
なお、情報処理装置100は、専用の装置によらず、通常のコンピュータを用いて実現可能である。例えば、コンピュータに上述のいずれかを実行するためのプログラムを格納した記録媒体から該プログラムをコンピュータにインストールすることにより、上述の処理を実行する情報処理装置100を構成してもよい。また、複数のコンピュータが協働して動作することによって、1つの情報処理装置100を構成してもよい。
【0078】
また、上述の機能を、OS(Operating System)とアプリケーションとの分担、またはOSとアプリケーションとの協働により実現する場合等には、OS以外の部分のみを媒体に格納してもよい。
【0079】
また、搬送波にプログラムを重畳し、通信ネットワークを介して配信することも可能である。例えば、通信ネットワーク上の掲示板(BBS、Bulletin Board System)に当該プログラムを掲示し、ネットワークを介して当該プログラムを配信してもよい。そして、これらのプログラムを起動し、オペレーティングシステムの制御下で、他のアプリケーションプログラムと同様に実行することにより、上述の処理を実行できるように構成してもよい。
【符号の説明】
【0080】
1 情報処理システム、100、100A~D、900 情報処理装置、110、910 記憶部、111 各属性のハッシュチェーン、112 秘匿設定情報、120、920 制御部、121 初期登録部、122 同期処理部、123 データブロック登録部、124 秘匿情報判定部、125 ハッシュ値算出部、126 コード生成部、127 データ取得部、128 データ認証部、129 認証結果処理部、130、940 入出力部、140、930 通信部、210 ネットワーク