(57)【要約】【課題】ユーザの利便性を低下させずに、非中央集権環境において公開テンプレートを安全に管理する。【解決手段】署名システムは、公開鍵暗号において公開鍵に対応する第１秘密鍵と、第２秘密鍵と、ユーザの生体情報と、を保持し、ユーザの生体情報と第１秘密鍵とに対して所定の処理を行ってユーザの公開テンプレートを生成し、ユーザの公開テンプレートを第２秘密鍵で暗号化してユーザの暗号化公開テンプレートを生成し、ユーザの暗号化公開テンプレートを公開する。【選択図】図１
2020123856.tif 000002
【特許請求の範囲】
【請求項１】
署名システムであって、
ユーザの署名の生成に用いられるデータを生成するユーザ登録装置を含み、
前記ユーザ登録装置は、
公開鍵暗号において公開鍵に対応する第１秘密鍵と、
第２秘密鍵と、
前記ユーザの生体情報と、を保持し、
前記ユーザの生体情報と前記第１秘密鍵とに対して所定の処理を行って、前記ユーザの公開テンプレートを生成し、
前記ユーザの公開テンプレートを前記第２秘密鍵で暗号化して、前記ユーザの暗号化公開テンプレートを生成し、
前記ユーザの暗号化公開テンプレートを、前記データとして公開する、署名システム。
【請求項２】
請求項１に記載の署名システムであって、
前記暗号化公開テンプレートは、分散台帳におけるトランザクションに対する署名生成に用いられる、署名システム。
【請求項３】
請求項１に記載の署名システムであって、
署名対象データに対する前記署名を生成する署名生成装置を含み、
前記署名生成装置は、
前記ユーザの生体情報と、前記署名対象データと、前記公開鍵と、前記第２秘密鍵と、を保持し、
前記公開された前記ユーザの暗号化公開テンプレートを取得し、
前記第２秘密鍵を用いて前記ユーザの暗号化公開テンプレートを復号化することにより、前記ユーザの公開テンプレートを取得し、
前記ユーザの公開テンプレートと前記ユーザの生体情報とに対して所定の処理を行って、前記第１秘密鍵を生成し、
前記生成した第１秘密鍵を用いて前記署名対象データに対する前記署名を生成する、署名システム。
【請求項４】
請求項３に記載の署名システムであって、
前記署名を検証する署名検証装置を含み、
前記署名生成装置は、前記署名を付与した前記署名対象データを、前記署名検証装置に送信し、
前記署名検証装置は、
前記公開鍵を保持し、
前記公開鍵を用いて、前記署名検証装置から受信した署名対象データに付与された前記署名を検証する、署名システム。
【請求項５】
請求項４に記載の署名システムであって、
前記ユーザ登録装置は、
前記ユーザの暗号化公開テンプレートを、前記署名検証装置に送信し、
前記署名生成装置は、前記署名検証装置から、前記ユーザの暗号化公開テンプレートを取得する、署名システム。
【請求項６】
請求項３に記載の署名システムであって、
前記署名生成装置は、
分散台帳ネットワークのノードであり、
前記署名対象データは、分散台帳におけるトランザクションである、署名システム。
【請求項７】
署名システムによる署名方法であって、
前記署名システムは、ユーザの署名の生成に用いられるデータを生成するユーザ登録装置を含み、
前記ユーザ登録装置は、
公開鍵暗号において公開鍵に対応する第１秘密鍵と、
第２秘密鍵と、
前記ユーザの生体情報と、を保持し、
前記署名方法は、
前記ユーザ登録装置が、前記ユーザの生体情報と前記第１秘密鍵とに対して所定の処理を行って、前記ユーザの公開テンプレートを生成し、
前記ユーザ登録装置が、前記ユーザの公開テンプレートを前記第２秘密鍵で暗号化して、前記ユーザの暗号化公開テンプレートを生成し、
前記ユーザ登録装置が、前記ユーザの暗号化公開テンプレートを、前記データとして公開する、署名方法。
【請求項８】
請求項７に記載の署名方法であって、
前記暗号化公開テンプレートは、分散台帳におけるトランザクションに対する署名生成に用いられる、署名方法。
【請求項９】
請求項７に記載の署名方法であって、
前記署名システムは、署名対象データに対する前記署名を生成する署名生成装置を含み、
前記署名生成装置は、前記ユーザの生体情報と、前記署名対象データと、前記公開鍵と、前記第２秘密鍵と、を保持し、
前記署名方法は、
前記署名生成装置が、前記公開された前記ユーザの暗号化公開テンプレートを取得し、
前記署名生成装置が、前記第２秘密鍵を用いて前記ユーザの暗号化公開テンプレートを復号化することにより、前記ユーザの公開テンプレートを取得し、
前記署名生成装置が、前記ユーザの公開テンプレートと前記ユーザの生体情報とに対して所定の処理を行って、前記第１秘密鍵を生成し、
前記署名生成装置が、前記生成した第１秘密鍵を用いて前記署名対象データに対する前記署名を生成する、署名方法。
【請求項１０】
請求項９に記載の署名方法であって、
前記署名システムは、前記署名を検証する署名検証装置を含み、
前記署名検証装置は、前記公開鍵を保持し、
前記署名方法は、
前記署名生成装置が、前記署名を付与した前記署名対象データを、前記署名検証装置に送信し、
前記署名検証装置が、前記公開鍵を用いて、前記署名検証装置から受信した署名対象データに付与された前記署名を検証する、署名方法。
【請求項１１】
請求項１０に記載の署名方法であって、
前記ユーザ登録装置は、
前記ユーザの暗号化公開テンプレートを、前記署名検証装置に送信し、
前記署名生成装置は、前記署名検証装置から、前記ユーザの暗号化公開テンプレートを取得する、署名方法。
【請求項１２】
請求項９に記載の署名方法であって、
前記署名生成装置は、
分散台帳ネットワークのノードであり、
前記署名対象データは、分散台帳におけるトランザクションである、署名方法。
【請求項１３】
プロセッサとメモリとを備えた計算機を制御するプログラムであって、
前記メモリは、
公開鍵暗号において公開鍵に対応する第１秘密鍵と、
第２秘密鍵と、
ユーザの生体情報と、を保持し、
前記プログラムは、
前記ユーザの生体情報と前記第１秘密鍵とに対して所定の処理を行って、前記ユーザの公開テンプレートを生成する手順と、
前記ユーザの公開テンプレートを前記第２秘密鍵で暗号化して、前記ユーザの暗号化公開テンプレートを生成する手順と、
前記ユーザの暗号化公開テンプレートを、前記ユーザの署名の生成に用いられるデータデータとして公開する手順と、を前記プロセッサに実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、署名システム、署名方法及びプログラムに関する。
【背景技術】
【０００２】
Ｐ２Ｐ（Ｐｅｅｒ−ｔｏ−Ｐｅｅｒ）ネットワーク上で分散型台帳管理を実現する技術として、ブロックチェーンがある。ブロックチェーンでは、記録情報を含むトランザクションを作成し、それを電子署名に基づき鎖状に繋ぐことで、記録情報の一貫性を確保している。管理者不在のＰ２Ｐ環境で台帳を管理する事で、銀行などの金融機関を必要とせずに、送金が可能な点が特徴である。
【０００３】
ブロックチェーンの一例として、Ｂｉｔｃｏｉｎのように、記録情報を保証するユーザが自らの秘密鍵でトランザクションに対して電子署名を付与することでチェーンを形成するシステムがある。このようなブロックチェーンシステムは、トランザクション内に含まれる公開鍵に基づき、トランザクションに対する電子署名を検証することで、正規のユーザがトランザクションを生成したか否かを判定する。
【０００４】
ブロックチェーンシステムでは、ユーザが自ら秘密鍵を用いて電子署名を生成することでトランザクションを生成するため、ユーザが当該秘密鍵を紛失した場合、正しいトランザクションを生成することができなくなり、継続的にシステムを利用することが困難となる。また、秘密鍵が盗難された場合は、秘密鍵を取得した第三者が不正にトランザクションを生成することが可能となり、なりすましを行うことが可能となる。
【０００５】
このような紛失や盗難が起きにくい情報に基づき公開鍵暗号を実現する方式として、特開２０１３−１２３１４２号公報（特許文献１）、及び特開２０１６−１４３１５２号公報（特許文献２）で開示されている生体署名がある。
【０００６】
生体署名は、指紋、静脈、顔などに代表される生体情報を鍵として、メッセージに対する署名生成や署名検証を実現する技術である。生体情報は人間の身体的な特徴をセンシングしたものであるため、中央集権環境で生体署名が行われる場合には、他の公開鍵暗号の秘密鍵に比べて紛失や盗難が発生しにくい。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２０１３−１２３１４２号公報
【特許文献２】特開２０１６−１４３１５２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
しかし、生体署名を管理者不在の非中央集権環境で利用する際には、公開テンプレートの管理についての課題が存在する。生体署名を生成するための秘密鍵は、ユーザの公開テンプレートとユーザの生体情報を入力とする秘密鍵生成処理関数の出力として得られる。
【０００９】
一般にユーザの生体情報は、生体情報を取得するデバイスの特性やユーザの体調などで常にある程度の「ゆらぎ」を持っている。そのため、秘密鍵生成処理関数は、このゆらぎを吸収する機能を有する。しかし、この機能によって生体情報が似た他人でも、同一ユーザと判断されてしまう場合がある（他人受入と呼ばれる）。
【００１０】
例えば、秘密鍵生成処理関数において、ゆらぎを吸収した場合に１００万人に１人の割合で同じ生体情報を持つ閾値を設定すると、攻撃者は１００万人分の公開テンプレートを入手する事で、その中の誰か１人になりすます事が可能となる。
【００１１】
例えば、ユーザの利便性を考慮し、ネットワーク上のどの端末からでもトランザクションが生成可能なよう、公開テンプレートを誰でもアクセス可能なリポジトリやブロックチェーン自体に格納すると、攻撃者が１００万人分の公開テンプレートを入手して、なりすましを行う可能性がある。
【００１２】
そこで、本発明の一態様は、ユーザの利便性を低下させずに、非中央集権環境において公開テンプレートを安全に管理することを目的とする。
【課題を解決するための手段】
【００１３】
上記課題を解決するために本発明の一態様は以下の構成を採用する。署名システムは、ユーザの署名の生成に用いられるデータを生成するユーザ登録装置を含み、前記ユーザ登録装置は、公開鍵暗号において公開鍵に対応する第１秘密鍵と、第２秘密鍵と、前記ユーザの生体情報と、を保持し、前記ユーザの生体情報と前記第１秘密鍵とに対して所定の処理を行って、前記ユーザの公開テンプレートを生成し、前記ユーザの公開テンプレートを前記第２秘密鍵で暗号化して、前記ユーザの暗号化公開テンプレートを生成し、前記ユーザの暗号化公開テンプレートを、前記データとして公開する。
【発明の効果】
【００１４】
本発明の一態様によれば、ユーザの利便性を低下させずに、非中央集権環境において公開テンプレートを安全に管理することができる。
【００１５】
上記した以外の課題、構成及び効果は、以下の実施形態の説明により明らかにされる。
【図面の簡単な説明】
【００１６】
【図１】実施例１におけるブロックチェーンシステムの構成例を示すブロック図である。
【図２】実施例１におけるユーザ登録端末のハードウェアの構成の一例を示すブロック図である。
【図３】実施例１における公開テンプレートの初期登録の処理手順の一例を示すシーケンス図である。
【図４】実施例１における暗号化公開テンプレートのデータフォーマットの一例を示す説明図である。
【図５】実施例１におけるトランザクション生成処理の一例を示すシーケンス図である。
【発明を実施するための形態】
【００１７】
以下、本発明の実施形態を図面に基づいて詳細に説明する。本実施形態において、同一の構成には原則として同一の符号を付け、繰り返しの説明は省略する。なお、本実施形態は本発明を実現するための一例に過ぎず、本発明の技術的範囲を限定するものではないことに注意すべきである。
【００１８】
本実施形態のブロックチェーンシステムは、生体署名における公開テンプレート自体を暗号化してブロックチェーン上に格納することで、公開テンプレートを安全に管理しつつ、ブロックチェーンシステムを利用することができる。なお、ブロックチェーンシステム以外の分散台帳型ネットワーク、及び分散台帳技術を利用しない公開型データベースにおいても、即ち署名対象データが公開されているシステムにおいても、本実施形態の方式を適用することができる。
【実施例１】
【００１９】
図１は、ブロックチェーンシステムの構成例を示すブロック図である。ブロックチェーンシステムは、例えば、ユーザ登録端末１０００と、トランザクション生成端末１１００と、トランザクション承認者端末１２００と、を含み、これらの端末はインターネット等のネットワーク１００によって相互に接続されている。なお、ユーザ登録端末１０００と、トランザクション生成端末１１００と、トランザクション承認者端末１２００と、はいずれも複数台存在してもよい。トランザクション生成端末１１００及びトランザクション承認者端末１２００は、分散台帳ネットワークを形成するノードである。
【００２０】
ユーザ登録端末１０００は、ユーザの生体情報から公開テンプレートを生成し、生成した公開テンプレートを暗号化する。ユーザ登録端末１０００は、例えば、通信部１０１０と、生体情報取得部１０２０と、公開テンプレート生成部１０３０と、鍵ペア生成部１０４０と、暗号化データ生成部１０５０と、公開テンプレート証明書格納部１０９０と、を含む。
【００２１】
通信部１０１０は、ネットワーク１００を介して他の端末と通信を行う。生体情報取得部１０２０は、例えば、指紋センサ、静脈センサ、又はカメラなどを介して、ユーザから指紋、静脈、顔画像などの、ユーザを所定の精度以上で識別可能な生体情報を取得する。なお、生体情報を取得するセンサとして、携帯電話やスマートフォンの指紋センサや静脈センサやカメラを用いることもできる。
【００２２】
公開テンプレート生成部１０３０は、例えば特許文献１に記載された方式に基づいて、生体情報取得部１０２０で取得した生体情報に対して一方向性（不可逆）変換を施すことで、公開テンプレートを生成する。
【００２３】
鍵ペア生成部１０４０は、公開鍵暗号方式をベースとする（例えばＤＳＡ、ＥＣＤＳＡなど）署名用秘密鍵と署名検証用公開鍵のペアを生成する。暗号化データ生成部１０５０は、入力データと、秘密鍵と、を入力として、共通鍵暗号方式（例えばＡＥＳなど）をベースとする入力データの秘密鍵による暗号化データを出力する。本実施例では、公開テンプレートを暗号化対象である入力データとする。
【００２４】
トランザクション生成端末１１００は、分散台帳におけるトランザクションを生成し、生成したトランザクションに対してユーザの署名を付与する。トランザクション生成端末１１００は、例えば、通信部１１１０と、トランザクション生成部１１２０と、署名生成部１１３０と、復号化データ生成部１１４０と、生体情報取得部１１５０と、署名用秘密鍵生成部１１６０と、を含む。
【００２５】
通信部１０１０は、ネットワーク１００を介して他の端末と通信を行う。生体情報取得部１１５０は、ユーザ登録端末１０００の生体情報取得部１０２０と同様の処理を実行する。
【００２６】
トランザクション生成部１１２０は、トランザクション承認者端末１２００に送信するトランザクションデータを生成する。署名生成部１１３０は、署名用秘密鍵と、トランザクション生成部１１２０が出力したトランザクションデータと、を入力として、公開鍵暗号方式をベースとする（例えばＤＳＡ、ＥＣＤＳＡなど）電子署名値を出力する。
【００２７】
復号化データ生成部１１４０は暗号化された公開テンプレートと秘密鍵とを入力とし、共通鍵暗号方式（例えばＡＥＳなど）の復号化アルゴリズムを用いて、平文の公開テンプレートを出力する。
【００２８】
署名用秘密鍵生成部１１６０は、生体情報取得部１１５０が取得した生体情報と、復号化データ生成部１１４０が生成した平文の公開テンプレートと、を入力として、例えば特許文献１に記載された方式に基づいて、署名生成部１１３０の入力となる署名用秘密鍵を復元する。公開テンプレート格納部１１９０は、ユーザ登録端末１０００の暗号化データ生成部１０５０によって生成された暗号化公開テンプレートを、格納する。
【００２９】
トランザクション承認者端末１２００は、暗号化公開テンプレートを保管し、トランザクション生成端末１１００が生成した署名が付与されたトランザクションの署名を検証する。トランザクション承認者端末１２００は、例えば、通信部１２１０と、署名検証部１２２０と、公開テンプレート格納部１２９０と、トランザクションデータ格納部１２９１と、を含む。
【００３０】
通信部１２１０は、ネットワーク１００を介して、他の端末と通信を行う。署名検証部１２２０は、トランザクション生成端末１１００から送信されたトランザクションデータの電子署名を、公開鍵暗号方式をベースとする（例えばＤＳＡ、ＥＣＤＳＡなど）電子署名検証アルゴリズムに基づいて、署名検証を行う。
【００３１】
公開テンプレート格納部１２９０は、ユーザ登録端末１０００内の暗号化データ生成部１０５０で生成された暗号化された公開テンプレートを受信し、格納する。トランザクション承認者端末１２００は、Ｐ２Ｐ（Ｐｅｅｒ−ｔｏ−Ｐｅｅｒ）ネットワーク上で複数のユーザが生成したトランザクションを格納しており、所謂ブロックチェーンシステムにおける分散台帳を管理しているＰ２Ｐノードである。
【００３２】
図２は、ユーザ登録端末１０００のハードウェアの構成の一例を示すブロック図である。なお、トランザクション生成端末１１００、及びトランザクション承認者端末１２００のハードウェア構成は、例えば、ユーザ登録端末１０００のハードウェア構成と同様であるため、説明を省略する。
【００３３】
ユーザ登録端末１０００は、例えば、ＣＰＵ１００１と、補助記憶装置１００２と、メモリ１００３と、表示装置１００５と、入出力インターフェース１００６と、通信装置１００７と、が内部信号線１００４を介して接続されている計算機によって構成される。
【００３４】
ＣＰＵ１００１はプロセッサを含み、メモリ１００３に格納されたプログラムを実行する。メモリ１００３は、不揮発性の記憶素子であるＲＯＭ及び揮発性の記憶素子であるＲＡＭを含む。ＲＯＭは、不変のプログラム（例えば、ＢＩＯＳ）などを格納する。ＲＡＭは、ＤＲＡＭ（Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）のような高速かつ揮発性の記憶素子であり、ＣＰＵ１００１が実行するプログラム及びプログラムの実行時に使用されるデータを一時的に格納する。
【００３５】
補助記憶装置１００２は、例えば、磁気記憶装置（ＨＤＤ）、フラッシュメモリ（ＳＳＤ）等の大容量かつ不揮発性の記憶装置であり、ＣＰＵ１００１が実行するプログラム及びプログラムの実行時に使用されるデータを格納する。すなわち、プログラムは、補助記憶装置１００２から読み出されて、メモリ１００３にロードされて、ＣＰＵ１００１によって実行される。
【００３６】
例えば、ＣＰＵ１００１は、通信部１０１０と、生体情報取得部１０２０と、公開テンプレート生成部１０３０と、鍵ペア生成部１０４０と、暗号化データ生成部１０５０と、公開テンプレート証明書格納部１０９０と、を含む。例えば、ＣＰＵ１００１は、メモリ１００３にロードされた通信プログラムに従って動作することで、通信部１０１０として機能し、メモリ１００３にロードされた生体情報取得プログラムに従って動作することで、生体情報取得部１０２０として機能する。ＣＰＵ１００１に含まれる他の機能部についても同様である。
【００３７】
また、トランザクション生成端末１１００及びトランザクション承認者端末１２００に含まれる各機能部についても、同様に、メモリにロードされたプログラムに従ってＣＰＵが動作することにより実現される。
【００３８】
入出力インターフェース１００６は、キーボードやマウス、生体情報取得装置（例えば、指紋、虹彩、顔、又は手のひら静脈等の画像を取得するカメラ、及び声を取得するマイクロフォン等）などが接続され、ユーザからの入力を受けるインターフェースである。また、入出力インターフェース１００６は、ディスプレイ装置やプリンタなどが接続され、プログラムの実行結果をユーザが視認可能な形式で出力するインターフェースなどを含む。
【００３９】
通信装置１００７は、所定のプロトコルに従って、他の装置との通信を制御するネットワークインターフェース装置である。通信部１０１０による通信は通信装置１００７によって実現される。また、通信装置１００７は、例えば、ＵＳＢ等のシリアルインターフェースを含む。
【００４０】
ＣＰＵ１００１が実行するプログラムは、リムーバブルメディア（ＣＤ−ＲＯＭ、及びフラッシュメモリなど）又はネットワークを介してユーザ登録端末１０００に提供され、非一時的記憶媒体である不揮発性の補助記憶装置１００２に格納される。このため、ユーザ登録端末１０００は、リムーバブルメディアからデータを読み込むインターフェースを有するとよい。
【００４１】
なお、本実施形態において、ブロックチェーンシステムに含まれる各端末が使用する情報は、データ構造に依存せずどのようなデータ構造で表現されていてもよい。例えば、テーブル、リスト、データベース又はキューから適切に選択したデータ構造体が、情報を格納することができる。
【００４２】
ユーザ登録端末１０００は、物理的に一つの計算機上で、又は、論理的又は物理的に構成された複数の計算機上で構成される計算機システムであり、同一の計算機上で別個のスレッドで動作してもよく、複数の物理的計算機資源上に構築された仮想計算機上で動作してもよい。他の端末についても同様である。また、ユーザ登録端末１０００、トランザクション生成端末１１００、及びトランザクション承認者端末１２００の一部又は全部が１つの計算機によって実現されてもよい。
【００４３】
なお、本実施形態において、ブロックチェーンシステムが使用する情報は、データ構造に依存せずどのようなデータ構造で表現されていてもよい。例えば、テーブル、リスト、データベース又はキューから適切に選択したデータ構造体が、情報を格納することができる。
【００４４】
以下、本実施例の処理手順の一例を、図３〜図５を参照しながら説明する。図３は、本実施例における、公開テンプレートの初期登録の処理手順の一例を示すシーケンス図である。本処理は、ユーザ登録端末１０００がユーザから生体情報を取得し、公開テンプレートを生成、登録することで、その後ブロックチェーンシステムを利用可能とする処理である。
【００４５】
まず、ユーザ登録端末１０００の生体情報取得部１０２０は、登録対象のユーザの生体情報を取得する（Ｓ３１０）。前述した通り、ユーザ登録端末１０００には、指紋センサ、静脈センサ、又はカメラなどの生体情報を取得するためのセンサが接続されており、生体情報取得部１０２０は、これらのセンサから得られた、ユーザの指紋、静脈、顔画像などの生体情報を取得する。なお、取得する生体情報の種類はユーザごとに同じであってもよいし異なってもよい。
【００４６】
次に、ユーザ登録端末１０００の鍵ペア生成部１０４０は、秘密鍵と公開鍵の鍵ペアを生成する（Ｓ３２０）。鍵ペア生成部１０４０は、例えば、ＲＳＡ暗号、楕円暗号、などの公開鍵暗号方式に基づき、この鍵ペアを生成し、公開鍵を公開（即ちトランザクション生成端末１１００及びトランザクション承認者端末１２００によって取得可能な状態に）する。この鍵ペアの鍵は、それぞれ署名用秘密鍵と署名検証用公開鍵として用いられる。
【００４７】
次に、公開テンプレート生成部１０３０は、ステップＳ３１０で取得した生体情報と、ステップＳ３２０で生成した署名用秘密鍵と、を入力として、公開テンプレートを生成する（Ｓ３３０）。公開テンプレート生成部１０３０は例えば特許文献１に開示されている生体署名などを用いて、この公開テンプレートを生成する。以下、特許文献１に開示されている生体署名によって公開テンプレートが生成されていることを前提として説明する。
【００４８】
なお、生体署名においては、生体情報と秘密鍵を入力として、一方向変換を施すことで公開テンプレートが生成される。公開テンプレートを第三者が取得しても生体情報を復元することは非常に困難であるため、公開テンプレートは公開鍵と同様に公開情報として扱うことができる。
【００４９】
次に、暗号化データ生成部１０５０は、ステップＳ３３０で生成された公開テンプレートと秘密鍵とを入力とするＡＥＳ（Ａｄｖａｎｃｅｄ  Ｅｎｃｒｙｐｔｉｏｎ  Ｓｔａｎｄａｒｄ）などの共通鍵暗号方式で公開テンプレートを暗号化し、暗号化公開テンプレートを生成する（Ｓ３４０）。なお、この暗号化に利用される秘密鍵は、後程、トランザクションを生成する際に、暗号化公開テンプレートを復号化するために利用する。また、この秘密鍵は、例えばユーザのパスワードなどのように、ユーザ自身が記憶している情報でもよい。
【００５０】
次に、通信部１０１０は、ステップＳ３４０で生成された暗号化公開テンプレートを一部又は全部のトランザクション承認者端末１２００に送信する（Ｓ３４５）。次に、暗号化公開テンプレートを受信したトランザクション承認者端末１２００は、当該暗号化公開テンプレートを公開テンプレート格納部１２９０に格納し（Ｓ３５０）、ユーザ登録処理を終了する。
【００５１】
なお、後述するように、トランザクション生成端末１１００はトランザクション承認者端末１２００から暗号化公開テンプレートを取得するため、暗号化公開テンプレートはトランザクション生成端末１１００に対しても公開されている状態となっている。
【００５２】
図４は、暗号化公開テンプレートのデータフォーマットの一例を示す説明図である。暗号化公開テンプレートは、ステップＳ３４０で生成されるデータである。暗号化公開テンプレート４０００は、例えば、バージョン４０１０、公開テンプレートシリアル番号４０２０、署名アルゴリズム４０３０、発行者４０４０、有効期限４０５０、サブジェクト４０６０、生体署名アルゴリズム４０７０、暗号化テンプレート４０８０、署名アルゴリズム４０９０、及び署名値４０９１を含む。
【００５３】
バージョン４０１０は公開テンプレート証明書のバージョンを例えば文字列で示す。公開テンプレートシリアル番号４０２０は、公開テンプレートに対して一意に割り振る文字列であり、重複しないように付与される。
【００５４】
なお、例えば、トランザクション承認者端末１２００が、受信した暗号化公開テンプレート４０００の公開テンプレートシリアル番号４０２０が重複していると判定した場合、当該暗号化公開テンプレート４０００を生成したユーザ登録端末１０００に、別の公開テンプレートシリアル番号を生成して、登録処理をやり直させることを命令する。なお、例えば、ユーザ登録端末１０００のＭＡＣアドレス等に基づいて公開テンプレートシリアル番号４０２０が生成されることにより、重複しないように文字列を付与することもできる。
【００５５】
署名アルゴリズム４０３０は、公開テンプレートに対して付与する署名値４０９１を生成するアルゴリズムを示す。発行者４０４０は、公開テンプレートを発行する主体、つまり認証局を示す。認証局がブロックチェーンシステムに存在しない場合は、発行者４０４０はブランクであってもよい。
【００５６】
有効期限４０５０は、公開テンプレートの有効期限の日時を示す。サブジェクト４０６０は、公開テンプレートの主体者、つまり公開テンプレートを生成したユーザ登録端末１０００のユーザのＩＤを示す。生体署名アルゴリズム４０７０は、ブロックチェーンシステムで使用されている署名に従った生体署名アルゴリズムを示す。
【００５７】
暗号化テンプレート４０８０は、ステップＳ３４０にて生成された暗号化されたテンプレートのデータ本体を示す。後程、このデータの平文と、ユーザの生体情報と、を入力とする署名用秘密鍵生成アルゴリズムと、を用いて、ステップＳ３２０の鍵ペア生成処理で生成した署名用秘密鍵を生成する。
【００５８】
署名アルゴリズム４０９０は、署名アルゴリズム４０３０と同じく、公開テンプレートに対して付与する署名値４０９１を生成するアルゴリズムを示す。署名値４０９１は、９０１０〜９０８０までのデータをハッシュ関数（例えば、ＳＨＡ１、ＳＨＡ２５６など）へ入力し、得られたハッシュ値を認証局の秘密鍵で変換して得られる値である。認証局がブロックチェーンシステムに存在しない場合は、署名値４０９１はブランクであってもよい。
【００５９】
なお、暗号化公開テンプレート４０００は、前述した全てのデータを含んでいる必要はない。暗号化公開テンプレート４０００は、ユーザを特定する情報（例えばユーザＩＤを示すサブジェクト４０６０、又は公開テンプレートシリアル番号４０２０等）と、暗号化テンプレート４０８０と、のみを含んでいてもよい。
【００６０】
図５は、図３で示したユーザ登録が完了した後に実施されるトランザクション生成処理の一例を示すシーケンス図である。トランザクション生成端末１１００は、ユーザから生体情報の入力を受け付けて生体署名を生成するが、その際、公開テンプレートをブロックチェーンであるトランザクション承認者端末１２００から取得する。以降、図を参照して処理の詳細を説明する。
【００６１】
トランザクション生成端末１１００の生体情報取得部１１５０は、トランザクションを生成するユーザの生体情報を取得する（Ｓ４１０）。次に、トランザクション生成端末１１００の通信部１１１０は、このユーザの暗号化テンプレートを取得する要求を、一部又は全部のトランザクション承認者端末１２００に送信する（Ｓ４１５）。なお、ステップＳ４１５におけるトランザクション取得要求は、ユーザを特定する情報（例えばユーザＩＤ又は公開テンプレートシリアル番号等）を含む。
【００６２】
次に、トランザクション承認者端末１２００が暗号化テンプレート要求を受信したら、暗号化公開テンプレート検索処理を実行し（Ｓ４２０）、通信部１２１０は、検索処理において検索された当該ユーザの暗号化公開テンプレートをトランザクション生成端末１１００に返信する（Ｓ４２５）。
【００６３】
なお、トランザクション生成端末１１００は、トランザクション取得要求を送信してから所定時間が経過しても、暗号化公開テンプレートをトランザクション承認者端末１２００から受信しない場合には、例えば、他のトランザクション承認者端末１２００にトランザクション取得要求を再送してもよい。
【００６４】
次に、トランザクション生成端末１１００の復号化データ生成部１１４０は、受信した暗号化公開テンプレートを復号化することにより、当該ユーザの公開テンプレートを生成する（Ｓ４３０）。なお、この復号化処理に必要なステップＳ３４０で使用した秘密鍵として、ユーザのパスワードが利用された場合、トランザクション生成端末１１００はユーザから別途パスワードの入力を受け付けてもよいし、ＩＣカードなどに予め保存されたパスワードを、ステップＳ４３０の復号化処理中に用いて、当該パスワードの入力を受け付けてもよい。
【００６５】
次に、署名用秘密鍵生成部１１６０は、ステップＳ４１０で取得した生体情報と、ステップＳ４３０で生成した公開テンプレートと、を入力として、例えば特許文献１又は特許文献２に記載された秘密鍵生成方法を用いて、ステップＳ３２０で生成した署名用秘密鍵を復元する（Ｓ４４０）。
【００６６】
次に、トランザクション生成部１１２０は、トランザクション生成処理を実行して、署名対象のデータであるトランザクションデータを生成する（Ｓ４５０）。このトランザクションデータは、Ｂｉｔｃｏｉｎなどのトランザクションデータとしてもよい。
【００６７】
次に、署名生成部１１３０は、ステップＳ４４０で生成した署名用秘密鍵を用いて、ステップＳ４５０で生成したトランザクションデータに対して、公開鍵暗号方式（例えばＤＳＡ、ＥＣＤＳＡなど）をベースとする電子署名を生成し、トランザクションデータに電子署名を付与し（Ｓ４６０）、トランザクション生成処理が終了する。
【００６８】
その後、図５のトランザクション生成処理で生成された、ユーザの電子署名が付与されたトランザクションは、トランザクション生成端末１１００からトランザクション承認者端末１２００に送信される。トランザクション承認者端末１２００の署名検証部１２２０が当該トランザクションの電子署名の正当性を確認した後、トランザクション承認者端末１２００によってブロックチェーンにおけるトランザクション承認処理（ＰｏＷ（Ｐｒｏｏｆ  ｏｆ  Ｗｏｒｋ）など）が行われ、分散台帳に記載される。
【００６９】
なお、例えば、本実施例では、暗号化公開テンプレートはトランザクション承認者端末１２００の公開テンプレート格納部１２９０に保存されているが、図３のユーザ登録処理の際にユーザ登録端末１０００が、暗号化公開テンプレートをトランザクション生成端末１１００に送信し、トランザクション生成端末１１００の公開テンプレート格納部１１９０に暗号化公開テンプレートが保存されてもよい。
【００７０】
また、例えば、本実施例では、ステップＳ４３０暗号化公開テンプレート復号化処理において暗号化公開テンプレートの復号化に利用する共通鍵暗号方式の秘密鍵がユーザから入力されるパスワードであるものとしたが、図３のユーザ登録時にトランザクション生成端末１１００に暗号化に利用した秘密鍵を送信し、この秘密鍵を公開テンプレート格納部１１９０に保存し、ステップＳ４３０暗号化公開テンプレート復号化処理時に、ユーザが秘密鍵を入力する処理を省いてもよい。
【００７１】
以上、本実施例のブロックチェーンシステムは、公開テンプレートを秘密鍵で暗号化した状態で公開するため、攻撃者は公開テンプレートそのものを入手することができず、なりすましを防止することができる。さらに、トランザクション生成端末１１００に秘密鍵の入力されることで、暗号化公開テンプレートを復号化して、生体署名を実行することができるため、ユーザの利便性を損なうこともない。
【００７２】
なお、本発明は上記した実施例に限定されるものではなく、様々な変形例が含まれる。例えば、上記した実施例は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、ある実施例の構成の一部を他の実施例の構成に置き換えることも可能であり、また、ある実施例の構成に他の実施例の構成を加えることも可能である。また、各実施例の構成の一部について、他の構成の追加・削除・置換をすることが可能である。
【００７３】
また、上記の各構成、機能、処理部、処理手段等は、それらの一部又は全部を、例えば集積回路で設計する等によりハードウェアで実現してもよい。また、上記の各構成、機能等は、プロセッサがそれぞれの機能を実現するプログラムを解釈し、実行することによりソフトウェアで実現してもよい。各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリや、ハードディスク、ＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）等の記録装置、又は、ＩＣカード、ＳＤカード、ＤＶＤ等の記録媒体に置くことができる。
【００７４】
また、制御線や情報線は説明上必要と考えられるものを示しており、製品上必ずしも全ての制御線や情報線を示しているとは限らない。実際には殆ど全ての構成が相互に接続されていると考えてもよい。
【符号の説明】
【００７５】
１０００  ユーザ登録末、１０２０  生体情報取得部、１０３０  公開テンプレート生成部、１０４０  暗号化データ生成部、１１００  トランザクション生成端末、１１２０  トランザクション生成部、１１３０  署名生成部、１１４０  復号化データ生成部、１１５０  生体情報取得部、１１６０  署名用秘密鍵生成部、１２００  トランザクション承認者端末、１２２０  署名検証部、１２９０  公開テンプレート格納部
【図１】
2020123856.tif 000003
【図２】
2020123856.tif 000004
【図３】
2020123856.tif 000005
【図４】
2020123856.tif 000006
【図５】
2020123856.tif 000007