(57)【要約】      （修正有）【課題】データの非改ざん性の証明を可能とすると共に、そのデータが処理された時刻を厳密に示すタイムスタンプをも改ざん困難に、厳密な形で保存することを可能とする情報処理装置、情報処理方法及びコンピュータプログラムを提供する。【解決手段】情報処理装置は、処理対象のデータのハッシュ値に基づくタイムスタンプトークンを取得するＳ１０１、Ｓ１０２，Ｓ１０３。次に、ブロックチェーンにタイムスタンプトークンを登録するためのトランザクションを作成するＳ１０４。そして、作成したトランザクションをブロックチェーンへ向けて送信するＳ１０５。以降、情報処理装置は、ブロックチェーンからデータに対応するタイムスタンプトークンを参照する。【選択図】図２
2020166732.tif 000002
【特許請求の範囲】
【請求項１】
処理対象のデータのハッシュ値に基づくタイムスタンプを取得する時刻情報取得部と、
ブロックチェーンに前記タイムスタンプを登録するためのトランザクションを作成する作成部と、
作成したトランザクションを前記ブロックチェーンへ向けて送信する送信部と、
前記ブロックチェーンから前記データに対応するタイムスタンプを参照する参照部と
を備える情報処理装置。
【請求項２】
前記時刻情報取得部は、
時刻認証局へ、前記データのハッシュ値を指定してタイムスタンプ要求を送信し、
前記時刻認証局から返送されたタイムスタンプトークンを取得する
請求項１に記載の情報処理装置。
【請求項３】
前記処理対象のデータを受信するデータ受信部と、
受信したデータのハッシュ値を算出する算出部と
を備え、
前記時刻情報取得部は、前記算出部にて算出したハッシュ値を用いてタイムスタンプを取得する
請求項１又は２に記載の情報処理装置。
【請求項４】
前記データのハッシュ値から前記データの署名データを作成する署名作成部を備え、
前記時刻情報取得部は、前記署名データに基づく署名タイムスタンプを取得し、
前記作成部は、前記署名タイムスタンプを付与した署名データを登録するトランザクションを作成する
請求項１から請求項３のいずれか一項に記載の情報処理装置。
【請求項５】
処理対象のデータのハッシュ値に基づくタイムスタンプを取得し、
ブロックチェーンに前記タイムスタンプを登録するためのトランザクションを作成し、
作成したトランザクションを前記ブロックチェーンへ向けて送信し、
前記ブロックチェーンから前記データに対応するタイムスタンプを参照する
情報処理方法。
【請求項６】
通信部を備えるコンピュータに、
処理対象のデータのハッシュ値に基づくタイムスタンプを取得し、
ブロックチェーンに前記タイムスタンプを登録するためのトランザクションを作成し、
作成したトランザクションを前記ブロックチェーンへ向けて送信し、
前記ブロックチェーンから前記データに対応するタイムスタンプを参照する
処理を実行させるコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データの時刻の証明を非改ざん証明と共に堅牢に実現する情報処理装置、情報処理方法及びコンピュータプログラムに関する。
【背景技術】
【０００２】
データが改ざんされていないことを証明する手法が種々提案されている。特許文献１には、ブロックチェーンにデータを登録するトランザクションを送信して改ざん困難に記憶し、トランザクション識別子によって検索できるブロックチェーン上に記録されたデータと一致するか否かによって存在を証明する方法が開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１７−１２３６９２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ブロックチェーンにデータを記録する場合、データを登録するためのトランザクションを含むブロックの生成時刻がブロックに含まれる。これにより、データが少なくとも存在していた時刻が参照できる。ブロックの生成にはある程度の時間を要するので、ブロックの生成時刻はトランザクションの送信時点からそれだけの時間、ずれている可能性がある。トランザクションがブロックに取り込まれるまでに長い時間を要する場合もあり、合意が覆る場合もある。つまりブロックチェーンにおけるブロックの生成時刻を、データが存在していた時刻を示す情報として扱うことは困難である。
【０００５】
時刻に応じたサービスの適用に関連するデータの存在証明など、時刻の厳密性が求められる場合がある。データの作成者は、データが少なくともいつの時刻から存在していたか、時刻認証業務認定事業者（ＴＳＡ：Time Stamp Authority）から得られるタイムスタンプを用いて証明することができる。しかしながら、作成されたそのデータが、実際にサービスを提供する提供者側で処理された時刻はいつであったのかの証明は、提供者が管理するサーバ内で任意の方法によって特定された時刻情報が付与されることで実施され、その時刻情報の付与の方法は提供者毎の運用によって異なる。
【０００６】
本発明は斯かる事情を鑑みてなされたものであり、データの非改ざん性証明を可能とすると共に、そのデータが処理された時刻を厳密に示すタイムスタンプをも改ざん困難に、厳密な形で保存することを可能とする情報処理装置、情報処理方法及びコンピュータプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００７】
本開示の一態様に係る情報処理装置は、処理対象のデータのハッシュ値に基づくタイムスタンプを取得する時刻情報取得部と、ブロックチェーンに前記タイムスタンプを登録するためのトランザクションを作成する作成部と、作成したトランザクションを前記ブロックチェーンへ向けて送信する送信部と、前記ブロックチェーンから前記データに対応するタイムスタンプを参照する参照部とを備える。
【０００８】
本開示の一態様に係る情報処理方法は、処理対象のデータのハッシュ値に基づくタイムスタンプを取得し、ブロックチェーンに前記タイムスタンプを登録するためのトランザクションを作成し、作成したトランザクションを前記ブロックチェーンへ向けて送信し、前記ブロックチェーンから前記データに対応するタイムスタンプを参照する。
【０００９】
本開示の一態様に係るコンピュータプログラムは、通信部を備えるコンピュータに、処理対象のデータのハッシュ値に基づくタイムスタンプを取得し、ブロックチェーンに前記タイムスタンプを登録するためのトランザクションを作成し、作成したトランザクションを前記ブロックチェーンへ向けて送信し、前記ブロックチェーンから前記データに対応するタイムスタンプを参照する処理を実行させる。
【００１０】
本開示の一態様では、処理対象のデータのハッシュ値に基づくタイムスタンプをデータとして登録するトランザクションがブロックチェーンに記憶される。これにより、データが処理された時刻には対象データが存在していたこと、又はデータが処理された時刻の証明がそのデータの非改ざん証明と共に可能である。データが存在した時刻のみならず、データのハッシュ値を受信するだけでその元データの時刻を証明できるので、任意のサービスを実現する装置から、サービスを実行するために必要なデータ（申し込み情報、伝票等）のハッシュ値を受け取ることで、そのデータが処理された時刻をも証明することができる。
【００１１】
本開示の一態様に係る情報処理装置は、前記時刻情報取得部は、時刻認証局へ、前記データのハッシュ値を指定してタイムスタンプ要求を送信し、前記時刻認証局から返送されたタイムスタンプトークンを取得する。
【００１２】
本開示の一態様では、時刻認証局から返送されたタイムスタンプトークンによって、データが処理された時刻が堅牢に証明可能である。
【００１３】
本開示の一態様に係る情報処理装置は、前記処理対象のデータを受信するデータ受信部と、受信したデータのハッシュ値を算出する算出部とを備え、前記時刻情報取得部は、前記算出部にて算出したハッシュ値を用いてタイムスタンプを取得する。
【００１４】
本開示の一態様では、処理対象のデータ自体もデータの識別情報と対応付けて記憶される。これにより、データが処理された時刻の証明と、非改ざん性の証明とを両立したデータのストレージサービスが実現される。
【００１５】
本開示の一態様に係る情報処理装置は、前記データのハッシュ値から前記データの署名データを作成する署名作成部を備え、前記時刻情報取得部は、前記署名データに基づく署名タイムスタンプを取得し、前記作成部は、前記署名タイムスタンプを付与した署名データを登録するトランザクションを作成する。
【００１６】
本開示の一態様では、署名タイムスタンプを利用することによってより堅牢にデータの時刻及び非改ざん性の証明が可能になり、契約締結業務に関するサービス、データ交換サービス等への適用も可能である。
【発明の効果】
【００１７】
本開示の情報処理装置によれば、データの非改ざん性の証明を可能とすると共に、そのデータが処理された時刻を示すタイムスタンプをも改ざん困難に、厳密な形で保存することが可能となる。
【図面の簡単な説明】
【００１８】
【図１】実施の形態１における情報処理装置の構成を示すブロック図である。
【図２】情報処理装置によるデータ登録の手順の一例を示すフローチャートである。
【図３】情報処理装置によるデータ参照の手順の一例を示すフローチャートである。
【図４】情報処理装置が適用された電子商取引サービスにおける処理手順の一例を示すフローチャートである。
【図５】実施の形態２の情報処理装置の構成を示すブロック図である。
【図６】実施の形態２における情報処理装置によるデータ登録の処理手順の一例を示すフローチャートである。
【図７】情報処理装置によるデータ参照の手順の一例を示すフローチャートである。
【図８】実施の形態２の情報処理装置を適用したＩｏＴシステムの構成を示す模式図である。
【図９】ＩｏＴシステムの装置の構成を示すブロック図である。
【図１０】情報処理装置が適用されたＩｏＴシステムにおける処理手順の一例を示すフローチャートである。
【図１１】ＩｏＴサーバからの検索要求に対する処理手順の一例を示すフローチャートである。
【図１２】実施の形態３の情報処理装置によるデータ登録の手順の一例を示すフローチャートである。
【発明を実施するための形態】
【００１９】
以下、本開示の情報処理装置、情報処理方法及びコンピュータプログラムについてその実施形態を示す図面に基づいて具体的に説明する。
【００２０】
（実施の形態１）
図１は、実施の形態１における情報処理装置１の構成を示すブロック図である。情報処理装置１はサーバコンピュータを用い、処理部１０、記憶部１１、及び通信部１２を備える。本開示において情報処理装置１は、説明を容易にするために１台のサーバコンピュータとして説明するが、複数のサーバコンピュータで機能又は処理を分散させるか、重畳させてもよいし、クラウドサーバとして実現されてもよい。
【００２１】
処理部１０は、ＣＰＵ（Central Processing Unit ）又はＧＰＵ（Graphical Processing Unit ）を用いたプロセッサであり、内蔵する揮発性メモリ、クロック等を含む。処理部１０は、記憶部１１に記憶されている情報処理プログラム１Ｐに基づいた各処理を実行し、汎用サーバコンピュータを本開示の情報処理装置１として機能させる。
【００２２】
記憶部１１は、ハードディスク又はＳＳＤ（Solid State Drive ）等の記憶媒体を用いて情報処理プログラム１Ｐのほか、処理部１０が参照する情報を記憶する。記憶部１１に記憶してある情報処理プログラム１Ｐは、記憶媒体９に記憶されている情報処理プログラム９Ｐを処理部１０が読み出して複製したものでもよいし、処理部１０が通信部１２により外部サーバから取得して記憶したものであってよい。
【００２３】
通信部１２は、ネットワークカードを用いる。処理部１０は通信部１２により、ネットワークＮを介して通信装置２、分散型データベース３、及び、時刻認証局４と通信接続が可能である。
【００２４】
通信装置２は、演算を行なう処理部、記憶部、及びネットワークＮに通信接続可能な通信部を備える。通信装置２は、データ存在の証明サービスを直接的に享受するユーザが使用する端末装置でもよい。通信装置２は、データストレージサービス、ショッピングサイト、サービスをＷｅｂ上で提供するサーバ装置であってもよい。通信装置２がサーバ装置である場合、情報処理装置１はバックエンドサーバとして通信装置２の処理を支援する。
【００２５】
分散型データベース３は、所謂分散型台帳技術に基づいてデータを保持するシステムであり、例えばブロックチェーンである。分散型データベース３は、情報処理装置１以外の多様なサービスによって利用されるものであってもよい。情報処理装置１は、分散型データベース３における１つのノードとして機能してもよい。情報処理装置１は、分散型データベース３におけるスマートコントラクト等の仕組みを用いて、後述のデータ登録の処理を行なうようにしてもよい。
【００２６】
時刻認証局４は、時刻認証業務認定事業者（ＴＳＡ）によって運営されているタイムスタンプサーバである。時刻認証局４は、タイムスタンプの要求に対して、要求に含まれるデータのハッシュ値に時刻認証局４で受け付けた時刻を付与し、時刻認証局４の電子証明書を付けたタイムスタンプトークン（ＴＳＴ：Time Stamp Token）を返送する。
【００２７】
ネットワークＮは、公衆網、及びキャリアネットワークを含む。公衆網は所謂インターネットである。キャリアネットワークは、次世代又は次々世代高速携帯通信規格等の規格に基づく無線通信を実現する通信キャリアが提供するネットワークである。情報処理装置１、通信装置２、及び時刻認証局４は、ネットワークＮを介して情報を送受信可能である。情報処理装置１は、ネットワークＮを介して分散型データベース３のノードと情報の送受信（同期）が可能である。
【００２８】
情報処理装置１は、情報処理プログラム１Ｐに基づいて以下のような処理を実行する。図２は、情報処理装置１によるデータ登録の手順の一例を示すフローチャートである。情報処理装置１の処理部１０は、通信部１２により、通信装置２から処理対象のデータのハッシュ値と、データのキー値を受信する（ステップＳ１０１）。データのキー値は、通信装置２によって指定される任意の値である。キー値は例えば、検索で使用できる識別情報であるとよい。
【００２９】
処理部１０は、受信したハッシュ値を指定してタイムスタンプ要求を時刻認証局４へ送信する（ステップＳ１０２）。処理部１０は、時刻認証局４から返送されたタイムスタンプトークンを受信する（ステップＳ１０３）。タイムスタンプトークンには、時刻認証局４にて、上述のハッシュ値に対し処理を行なった時刻が改ざん困難に含まれている。
【００３０】
なおステップＳ１０２、Ｓ１０３については、情報処理装置１の利用のオプションによっては、情報処理装置１の処理部１０が持つ時刻情報及びハッシュ値をタイムスタンプトークンに代替して用いてもよい。
【００３１】
処理部１０は、キー値及び受信したタイムスタンプトークンをデータとして分散型データベース３に登録するためのトランザクションを作成する（ステップＳ１０４）。処理部１０はステップＳ１０４において例えば、トランザクションを受けてデータを登録するように分散型データベース３に配置されているスマートコントラクトへ、トランザクションを作成する。これにより、ブロックチェーン上にデータを登録することが可能である。データ登録のトランザクションの具体的な作成方法は、分散型データベース３の仕様に対応させればよく、スマートコントラクトを用いた記録には限定されない。
【００３２】
処理部１０は、ステップＳ１０４で作成したデータ登録のトランザクションを分散型データベース３へ送信し（ステップＳ１０５）、処理を終了する。ステップＳ１０５において具体的には、処理部１０は分散型データベース３に属するいずれか任意のノードへトランザクションを送信する。
【００３３】
処理部１０は、ステップＳ１０５で送信したトランザクションに対して採番されるトランザクション識別子をステップＳ１０１で受信したキー値と対応付けて、記憶しておいてもよい。処理部１０は、通信装置２へ処理対象のデータに対応するトランザクション識別子を返送してもよい。
【００３４】
図２のフローチャートに示した処理により、分散型データベース３に、処理対象のデータのハッシュ値を含むタイムスタンプトークンのデータ登録のトランザクションが記憶される。分散型データベース３にて記憶されるデータ登録のトランザクションは、ブロック生成に応じてハッシュ値が求められ、次のブロックに含められるから、改ざんが非常に困難な状態で記憶される。また分散型データベース３がパブリックなブロックチェーンであれば、トランザクション識別子によって任意の通信装置から検索可能である。
【００３５】
図３は、情報処理装置１によるデータ参照の手順の一例を示すフローチャートである。情報処理装置１の処理部１０は、キー値を指定したハッシュ値の参照要求を、通信部１２によって、通信装置２から受信する（ステップＳ１１１）。要求元は通信装置２に限られず、通信機能を有してＷｅｂベースの情報を取得できる通信装置であれば、エンドユーザが使用するユーザ端末装置であってもよい。ステップＳ１１１では、トランザクション識別子を返送している場合には、これを受信してもよい。
【００３６】
処理部１０は、参照要求に含まれるキー値を含むデータ登録のトランザクションを、分散型データベース３から検索する（ステップＳ１１２）。処理部１０は、参照要求に含まれるキー値から対応するトランザクション識別子を特定し、特定したトランザクション識別子によってトランザクションを検索する。処理部１０は、データ登録のスマートコントラクトのアドレスとキー値から、該当するタイムスタンプトークンを取得する方法を用いてもよい。
【００３７】
処理部１０は、検索によって抽出されたトランザクションから、タイムスタンプトークンを読み出す（ステップＳ１１３）。処理部１０は、タイムスタンプトークンから時刻情報を読み出す（ステップＳ１１４）。処理部１０は、タイムスタンプトークンからデータのハッシュ値を読み出す（ステップＳ１１５）。
【００３８】
処理部１０は、ステップＳ１１５で読み出したハッシュ値と、ステップＳ１１４で読み出した時刻情報とを要求元の通信装置２へ返送し（ステップＳ１１６）、処理を終了する。
【００３９】
なお情報処理装置１の処理部１０は、ステップＳ１１１の参照要求に代替して、キー値及びキー値に対応するデータのハッシュ値を含む証明要求を受信してもよい。この場合処理部１０は、証明要求に含まれるデータのハッシュ値とステップＳ１１５で読み出したハッシュ値とが合致するか否かによって、ステップＳ１１６でハッシュ値を返送することに代替して改ざんされていないことの証明結果を時刻情報と共に返送してもよい。
【００４０】
従来のブロックチェーンを利用したデータ登録では、トランザクションを含むブロックの生成時刻が、ブロックチェーンノードによって特定され、ブロックに含められて記録された。ブロックチェーンにおいては、矛盾のない正しい取引であるか否かは時刻ではなく、ブロックに含まれるトランザクションであるか否かで決定される。したがって、トランザクションの時刻については厳密性が保証されていない。トランザクションがブロックチェーンへ送信されてから実際にトランザクションがブロックに登録されるまでには時間を要し、ブロックの生成タイミングに応じて時間差が生じる等、厳密性に欠けていた。これに対し、図２のフローチャートに示したように、タイムスタンプトークンをブロックチェーンに登録することによってデータが情報処理装置１に処理された時刻、結果的にその時点にはデータが存在していた時刻を改ざん困難な堅牢な状態で、客観的に証明することが可能になる。
【００４１】
このようにして、データに厳密な時刻を必要であるデータに対し、データのハッシュ値を要求するのみで、データの非改ざん性の証明及び厳密な時刻の証明を両立するサービスを提供することができる。
【００４２】
実施の形態１に示した情報処理装置１と通信装置２との組み合わせによって、例えば、以下に説明するようなサービスを実現することができる。
【００４３】
通信装置２は例えば、Ｗｅｂベースで注文を受ける電子商取引サービスを提供するＷｅｂサーバであり、情報処理装置１は通信装置２に注文受付時刻を証明するバックエンドサーバとして機能する。図４は、情報処理装置１が適用された電子商取引サービスにおける処理手順の一例を示すフローチャートである。なお図４のフローチャートに示す処理手順の内、図２及び図３のフローチャートに示した情報処理装置１による処理については同一のステップ番号を付して詳細な説明を省略する。
【００４４】
通信装置２は、注文を受けるに際し、ユーザの電子商取引サービスに対して付与されているアカウント情報及び注文内容（注文した商品の識別情報、個数）を示す情報を受け付ける（ステップＳ２０１）。通信装置２は例えば、限られた時刻に限った割引、先着順の購入依頼を受け付ける期間では、注文の時刻を厳密に扱う。この場合通信装置２は、バックエンドサーバである情報処理装置１へ、注文の時刻の証明を求める。そこで通信装置２は、受け付けたアカウント情報及び注文内容を示す情報に対し注文を識別する注文ＩＤを付与し（ステップＳ２０２）、アカウント情報及び注文内容を示す情報のハッシュ値を算出する（ステップＳ２０３）。通信装置２は、注文ＩＤをキー値として指定し、ステップＳ２０３で算出したハッシュ値を情報処理装置１へ送信する（ステップＳ２０４）。
【００４５】
情報処理装置１の処理部１０は、注文ＩＤを指定したハッシュ値を受信し（Ｓ１０１）、受信したハッシュ値を時刻認証局４へ送信する（Ｓ１０２）。処理部１０は、返送されたタイムスタンプトークンを受信する（Ｓ１０３）。処理部１０は、注文ＩＤを指定したタイムスタンプのデータ登録のトランザクションを作成し（Ｓ１０４）、作成したデータ登録のトランザクションを分散型データベース３へ送信する（Ｓ１０５）。
【００４６】
処理部１０は、ステップＳ１０３で受信したタイムスタンプトークンから時刻情報を読み出して（Ｓ１１４）、ハッシュ値を読み出し（Ｓ１１５）、注文ＩＤと対応付けて通信装置２へ返送する（Ｓ１１６）。
【００４７】
通信装置２は、返送された時刻情報及びハッシュ値を受信し（ステップＳ２０５）、通信装置２側で注文ＩＤに対応付けて時刻情報を記憶し（ステップＳ２０６）、処理を終了する。以後、注文に対する発送、決済が進行する中で通信装置２は、注文ＩＤを指定して記憶している時刻が合っているか情報処理装置１へ問い合わせることで確認することができる。
【００４８】
情報処理装置１によって実現される時刻及びデータの非改ざん性の証明は、電子商取引に限られず、データが処理された時刻が厳密に管理されるサービスに適用できる。例えば、オンラインでのデータのレンタルサービス、等に適用することも可能である。この場合、レンタルサーバは、レンタルの実施の夫々を識別するＩＤをキー値とし、レンタルユーザのＩＤ及びタイトル等のハッシュ値を算出して情報処理装置１へ送信する。厳密な時刻に基づいてレンタル料金の算出等が可能であり、レンタル料金を適切な価格に設計することも可能である。
【００４９】
（実施の形態２）
実施の形態２では、情報処理装置１は、処理対象のデータ自体も受信する。図５は、実施の形態２の情報処理装置１の構成を示すブロック図である。実施の形態２において情報処理装置１は、記憶部１１の他に、データを記録するデータベースを含む外部記憶装置１０１と接続されている。実施の形態２における情報処理装置１の構成は、外部記憶装置１０１及び以下に示す詳細な手順以外は実施の形態１と同様であるから同一の符号を付して詳細な説明を省略する。
【００５０】
外部記憶装置１０１は、ハードディスク又はＳＳＤ等の不揮発性記憶媒体を用いる。外部記憶装置１０１は、記憶媒体をネットワーク越しに接続させて利用する所謂クラウドストレージであってもよい。情報処理装置１は、接続部１３を介して外部記憶装置１０１と接続しており、処理部１０は外部記憶装置１０１に対して情報を読み書き可能である。
【００５１】
実施の形態２における情報処理装置１は、情報処理プログラム１Ｐに基づいて以下のような処理を実行する。図６は、実施の形態２における情報処理装置１によるデータ登録の処理手順の一例を示すフローチャートである。図６のフローチャートに示す処理手順の内、実施の形態１の図２のフローチャートに示した手順と共通する手順については同一のステップ番号を付して詳細な説明を省略する。
【００５２】
処理部１０は、通信部１２により、通信装置２から処理対象のデータと、データのキー値とを受信する（ステップＳ１２１）。データのキー値は、通信装置２にて指定される値である。通信装置２側で処理対象のデータを指定するために使用される。処理部１０は、受信したデータに対し、所定のハッシュアルゴリズムを使用してハッシュ値を算出する（ステップＳ１２２）。処理部１０は、ステップＳ１２２で算出したハッシュ値を指定してタイムスタンプ要求を時刻認証局４へ送信する（Ｓ１２３）。
【００５３】
処理部１０は、時刻認証局から返送されたタイムスタンプトークンを受信し（Ｓ１０３）、キー値及び受信したタイムスタンプトークンをデータとして分散型データベース３に登録するためのデータ登録のトランザクションを作成する（Ｓ１０４）。処理部１０は、作成したトランザクションを分散型データベース３へ送信する（Ｓ１０５）。処理部１０は、ステップＳ１２１で受信したデータを、キー値に対応付けて外部記憶装置１０１のデータベースに記憶し（ステップＳ１２８）、処理を終了する。ステップＳ１２８において処理部１０は、ステップＳ１０５によって採番されるトランザクション識別子を対応付けて記憶してもよい。
【００５４】
実施の形態２では、通信装置２側では、元のデータの管理は不要である。情報処理装置１は、データの非改ざん性の証明及び時刻の改ざん困難な記録を共に実施するストレージサービスを通信装置２へ提供する。
【００５５】
図７は、情報処理装置１によるデータ参照の手順の一例を示すフローチャートである。情報処理装置１の処理部１０は、キー値を指定してデータの検索要求を通信装置２から受信する（ステップＳ３０１）。処理部１０は、指定されたキー値に対応付けられているデータを外部記憶装置１０１のデータベースから読み出す（ステップＳ３０２）。処理部１０は、読み出したデータのハッシュ値を所定のハッシュアルゴリズムにて算出し、一時記憶しておく（ステップＳ３０３）。
【００５６】
処理部１０は、指定されたキー値によって分散型データベース３からデータ登録のトランザクションを検索する（ステップＳ３０４）。処理部１０は、検索によって抽出されたトランザクションから、タイムスタンプトークンを読み出す（ステップＳ３０５）。処理部１０は、タイムスタンプトークンから時刻情報を読み出し（ステップＳ３０６）、処理部１０は、対象のデータのハッシュ値を読み出す（ステップＳ３０７）。
【００５７】
処理部１０は、ステップＳ３０３で算出したハッシュ値と、ステップＳ３０７で読み出したハッシュ値とによって、データが改ざんされていないか否かを確認し（ステップＳ３０８）、ステップＳ３０２で読み出したデータを、確認結果と共に要求元の通信装置２へ送信し（ステップＳ３０９）、処理を終了する。
【００５８】
このようにして、データに厳密な時刻が必要であるデータについて、データの非改ざん性の証明及び時刻の厳密性を両立させたストレージサービスを提供することができる。
【００５９】
実施の形態２におけるデータ自体を受信し、受信したデータの非改ざん性及び存在時刻を証明するサービスは、以下のようなＩｏＴ（Internet Of Things）システムに適用することができる。図８は、実施の形態２の情報処理装置１を適用したＩｏＴシステムの構成を示す模式図であり、図９は装置の構成を示すブロック図である。
【００６０】
ＩｏＴシステムは、複数のＩｏＴセンサ２０と、実施の形態２における情報処理装置１と、情報処理装置１の外部記憶装置１０１に記憶されたデータの閲覧を要求するＩｏＴサーバ２１とを含む。ＩｏＴセンサ２０と、ＩｏＴサーバ２１とにはいずれも、通信装置２が適用される。
【００６１】
ＩｏＴセンサ２０は、図９Ａに示すように、処理部２００、センサ部２０１、及び通信部２０２を備える。処理部２００はＣＰＵ、マイクロコンピュータ等を用いる。処理部２００は、内蔵する時計機能によってローカルな時刻を計ることができてもよい。処理部２００は、センサ部２０１で得られるセンサ情報（映像、温度、湿度、電圧、電流等）に、センサ情報を識別可能とする例えば通し番号を合わせたメッセージを情報処理装置１へ送信する。メッセージには、ＩｏＴセンサ２０に付与されていて処理部２００内蔵のメモリに記憶されたセンサ識別情報が含まれている。通し番号は例示であって複数回取得されるセンサ情報を各々識別できれば他の情報であってもよい。
【００６２】
ＩｏＴサーバ２１は、図９Ｂに示すように、処理部２００、記憶部２０４、及び通信部２０２を備える。記憶部２０４には、ＩｏＴセンサ２０のセンサ識別情報が記憶されている。ＩｏＴセンサ２０の属性情報が、センサ識別情報に対応付けて記憶されていてもよい。処理部２００はＣＰＵ等を用い、センサ識別情報を指定してセンサ識別情報で識別されるＩｏＴセンサ２０から得られたデータのリストを通信部２０２から情報処理装置１に対して要求することができる。
【００６３】
図１０は、情報処理装置１が適用されたＩｏＴシステムにおける処理手順の一例を示すフローチャートである。なお図１０のフローチャートに示す処理手順の内、図６のフローチャートに示した情報処理装置１による処理については同一のステップ番号を付して詳細な説明を省略する。図１０のフローチャートは、ＩｏＴセンサ２０からセンサ情報を情報処理装置１へ送信するタイミング（データ数、周期等）が到来する都度、実行される。異常検知等のイベントが発生したタイミングで実行されてもよい。
【００６４】
ＩｏＴセンサ２０は、センサ情報をセンサ部２０１で取得すると（ステップＳ４０１）、センサ情報、センサ識別情報及び通し番号を含むメッセージを通信部２０２から情報処理装置１へ送信する（ステップＳ４０２）。
【００６５】
情報処理装置１の処理部１０は、センサ情報と、センサ識別情報及び通し番号とを夫々、データ及びキー値として受信する（Ｓ１２１）。キー値はこのように、センサ識別情報とセンサにおける通し番号との組み合わせでもよいし、受信されるメッセージに情報処理装置１側で順次付与される番号であってもよい。後述する処理によって得られるトランザクション識別子がキー値として使用されてもよい。
【００６６】
処理部１０は、受信したセンサ情報のハッシュ値を算出し（Ｓ１２２）、時刻認証局４へ送信する（Ｓ１２３）。処理部１０は、返送されるタイムスタンプトークンを受信して（Ｓ１０３）、センサ情報の登録トランザクションを作成する（Ｓ１０４）。処理部１０は、作成したトランザクションを分散型データベース３へ送信し（Ｓ１０５）、ステップＳ１２１で受信したキー値に対応付けて、ステップＳ１２１で受信したセンサ情報を外部記憶装置１０１に記憶する（Ｓ１２８）。ステップＳ１２８ではセンサ識別情報別にセンサ情報を記憶するとよい。
【００６７】
このようにして現場で時刻合わせが行なわれるローカルな時刻情報を持つことができるような簡易な構成のＩｏＴセンサ２０からのセンサ情報も、情報処理装置１宛てに送信されることで、センサ情報自体及び時刻を厳密に、改ざん困難に記録することができる。
【００６８】
図１１は、ＩｏＴサーバ２１からの検索要求に対する処理手順の一例を示すフローチャートである。図１１に示す処理手順の内、図７のフローチャートに示した情報処理装置１による処理については同一のステップ番号を付して詳細な説明を省略する。ＩｏＴサーバ２１は、収集されたセンサ情報を用いた演算を必要とするタイミングに応じて、図１１のフローチャートに示す処理手順を繰り返し実行する。
【００６９】
ＩｏＴサーバ２１の処理部２００は、ＩｏＴセンサ２０のセンサ識別情報を指定した検索要求を通信部２０２から情報処理装置１へ送信する（ステップＳ５０１）。
【００７０】
情報処理装置１の処理部１０は、キー値としてセンサ識別情報を指定した検索要求を受信し（Ｓ３０１）、指定されたセンサ識別情報に対応するキー値を１つずつ選択し（ステップＳ３１２）、選択したキー値が対応付けられているデータを外部記憶装置１０１から読み出し（Ｓ３０２）、読み出したデータ夫々のハッシュ値を算出する（Ｓ３０３）。
【００７１】
処理部１０は、ステップＳ３１２で選択したキー値に基づいてデータ登録のトランザクションを分散型データベース３から検索し（Ｓ３０４）、検索によって抽出されたトランザクションからタイムスタンプトークンを読み出す（Ｓ３０５）。処理部１０は、タイムスタンプトークンから時刻情報を読み出し（Ｓ３０６）、データのハッシュ値を読み出す（Ｓ３０７）。
【００７２】
処理部１０は、ステップＳ３０３で算出したハッシュ値と、Ｓ３０６で読み出したハッシュ値とによって、センサ情報が改ざんされていないか否かを確認し（Ｓ３０８）、Ｓ３０２で読み出したデータを確認結果と共に一旦記憶する（ステップＳ３１３）。
【００７３】
処理部１０は、指定されたセンサ識別情報に対応付けて記憶されているキー値を全て選択したか否かを判断し（ステップＳ３１４）、全て選択していないと判断された場合（Ｓ３１４：ＮＯ）、処理をステップＳ３１２へ戻す。ステップＳ３１４で全て選択したと判断された場合（Ｓ３１４：ＹＥＳ）、処理部１０は、ステップＳ３１３で記憶されたデータを各々の確認結果及び時刻情報と共に要求元の通信装置２へ送信する（Ｓ３０９）。
【００７４】
ＩｏＴサーバ２１の処理部２００は、送信されたデータ夫々の確認結果及び時刻情報を受信し（ステップＳ５０２）、処理を終了する。以後ＩｏＴサーバ２１では、受信したデータに対して統計処理を行なったり、抽出処理を行なったりすることができる。
【００７５】
検索要求には、厳密なタイムスタンプトークンに含まれている時刻の範囲指定が含まれていて、処理部１０は、指定された範囲の時刻情報が共に登録されているデータのみを抽出してもよい。
【００７６】
上述したようなＩｏＴシステムは、例えばＩｏＴセンサ２０をドライブレコーダとし、ドライブレコーダからの映像データを正確な時刻を対応付けて記憶するシステムに応用することができる。ドライブレコーダは無線通信機能、又は車両に搭載されている通信機能を介して情報処理装置１へ送信する通信機能を持っていればよい。他には、ＩｏＴシステムは、ＩｏＴセンサ２０を電気・ガス・水道等の公共料金に係るメータとし、各メータから測定結果を収集するシステムに適用し、時刻に応じた料金をＩｏＴサーバ２１で計算し、徴収するシステムへ通知するといったシステムを実現することもできる。
【００７７】
（実施の形態３）
実施の形態３では、情報処理装置１は更に署名を付与する処理を追加する。実施の形態３における情報処理装置１の構成は、以下に示す処理手順以外は、実施の形態１又は実施の形態２と同様であるから、共通する構成については同一の符号を付して詳細な説明を省略する。なお実施の形態３における情報処理装置１は、証明すべきデータのハッシュ値又はデータ自体を送信する通信装置２夫々に対応する秘密鍵を、記憶部１１にセキュアに記憶している。
【００７８】
実施の形態３の情報処理装置１は、情報処理プログラム１Ｐに基づいて以下のような処理を実行する。図１２は、実施の形態３の情報処理装置１によるデータ登録の手順の一例を示すフローチャートである。図１２のフローチャートに示す処理手順の内、実施の形態１の図２のフローチャートに示した手順と共通する手順については同一のステップ番号を付して詳細な説明を省略する。
【００７９】
処理部１０は、通信部１２により、通信装置２から処理対象のデータのハッシュ値と、データのキー値とを含む処理要求を受信する（ステップＳ１３１）。データのキー値は、通信装置２によって指定される任意の値である。キー値は例えば、検索で使用できる識別情報であるとよい。
【００８０】
処理部１０は、処理要求の要求元の通信装置２の秘密鍵を用い、ステップＳ１３１で受信したハッシュ値から署名値を算出する（ステップＳ１３２）。処理部１０は、受信したハッシュ値にステップＳ１３２で算出した署名値を付与した署名データを作成する（ステップＳ１３３）。ステップＳ１３３で作成される署名データは例えば、通信装置２から送信されたデータのハッシュ値と、署名証明書、及び署名値とを含む。
【００８１】
処理部１０は、ステップＳ１３２で算出された署名値のハッシュ値を算出する（ステップＳ１３４）。処理部１０は、ステップＳ１３４で算出したハッシュ値を指定してタイムスタンプ要求を時刻認証局４へ送信する（ステップＳ１３５）。処理部１０は、時刻認証局４から返送されたタイムスタンプトークンを受信する（ステップＳ１３６）。タイムスタンプトークンには、ステップＳ１３４で算出されたハッシュ値に対して時刻認証局４にて処理を行なった時刻が改ざん困難に含まれている。
【００８２】
処理部１０は、時刻認証局４から取得したタイムスタンプトークンを署名タイムスタンプとして、ステップＳ１３３で作成した署名データに付与する（ステップＳ１３７）。処理部１０は、キー値を指定し、ステップＳ１３７で作成した署名タイムスタンプ付きの署名データをデータとして分散型データベース３に登録するためのトランザクションを作成する（ステップＳ１３８）。
【００８３】
処理部１０は、ステップＳ１３８で作成したデータ登録のトランザクションを分散型データベース３へ送信し（ステップＳ１３９）、処理を終了する。
【００８４】
処理部１０は、ステップＳ１３９で送信したトランザクションに対して採番されるトランザクション識別子を、ステップＳ１２１で受信したキー値と対応付けて、記憶してもよい。処理部１０は、通信装置２へ処理対象のデータに対応するトランザクション識別子を返送してもよい。
【００８５】
図１２のフローチャートに示したように実施の形態３では署名を共に扱うことにより、エンドユーザが用いる情報端末装置に通信装置２を適用し、情報端末装置間で時刻を厳密に扱うファイルの交換を実現するサービスを提供することができる。例えば、通信装置２が適用される２台の情報端末装置間で交換するファイルが改ざんされていないことと、情報処理装置１の処理に基づいて時刻認証局４にて処理を行なった時刻には存在していることを証明することが可能である。ファイルのハッシュ値によるデータ登録に係るトランザクション識別子を、送信先の情報端末装置のユーザに通知することで、ユーザはトランザクション識別子を用いて受け取るファイルの非改ざん等を確認することが可能である。同様にして、実施の形態３における署名を用いた方法は、契約締結業務に関するサービスに適用することも可能である。契約に関する情報の契約者の証明、情報自体の証明に時刻の証明を厳密に実現することができる。
【００８６】
上述のように開示された実施の形態はすべての点で例示であって、制限的なものではないと考えられるべきである。本発明の範囲は、上記した意味ではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【００８７】
１  情報処理装置
１０  処理部
１１  記憶部
１０１  外部記憶装置
１２  通信部
１Ｐ  情報処理プログラム
２  通信装置
３  分散型データベース
４  時刻認証局
【図１】
2020166732.tif 000003
【図２】
2020166732.tif 000004
【図３】
2020166732.tif 000005
【図４】
2020166732.tif 000006
【図５】
2020166732.tif 000007
【図６】
2020166732.tif 000008
【図７】
2020166732.tif 000009
【図８】
2020166732.tif 000010
【図９】
2020166732.tif 000011
【図１０】
2020166732.tif 000012
【図１１】
2020166732.tif 000013
【図１２】
2020166732.tif 000014