WO2018016160A1 - 署名検証システム、署名検証方法及び記憶媒体 - Google Patents

署名検証システム、署名検証方法及び記憶媒体 Download PDF

Info

Publication number
WO2018016160A1
WO2018016160A1 PCT/JP2017/018291 JP2017018291W WO2018016160A1 WO 2018016160 A1 WO2018016160 A1 WO 2018016160A1 JP 2017018291 W JP2017018291 W JP 2017018291W WO 2018016160 A1 WO2018016160 A1 WO 2018016160A1
Authority
WO
WIPO (PCT)
Prior art keywords
certificate
public
signature
transaction
key
Prior art date
Application number
PCT/JP2017/018291
Other languages
English (en)
French (fr)
Inventor
陽介 加賀
高橋 健太
正和 藤尾
健 長沼
Original Assignee
株式会社日立製作所
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 株式会社日立製作所 filed Critical 株式会社日立製作所
Priority to SG11201900414WA priority Critical patent/SG11201900414WA/en
Priority to US16/318,501 priority patent/US11018876B2/en
Publication of WO2018016160A1 publication Critical patent/WO2018016160A1/ja

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/50Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3263Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements
    • H04L9/3268Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements using certificate validation, registration, distribution or revocation, e.g. certificate revocation list [CRL]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/31User authentication
    • G06F21/32User authentication using biometric data, e.g. fingerprints, iris scans or voiceprints
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/31User authentication
    • G06F21/33User authentication using certificates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0891Revocation or update of secret information, e.g. encryption key update or rekeying
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0894Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • H04L9/3239Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures

Abstract

ユーザの生体情報を取得する生体情報取得部と、前記生体情報に所定の処理を加えて公開テンプレート証明書を生成する公開テンプレート証明書生成部と、秘密鍵と公開鍵のペアを生成する鍵ペア生成部と、前記生体情報を鍵として前記公開鍵へ生体署名を付与することで公開鍵証明書を生成する公開鍵証明書生成部と、を備える署名端末と、前記公開テンプレート証明書と前記公開鍵証明書と署名を含むトランザクションを受け付けて、前記公開テンプレート証明書で前記公開鍵証明書の正当性を検証する公開鍵証明書検証部と、前記公開鍵証明書で前記署名を検証する署名検証部と、を備える検証端末と、を有する署名検証システム。

Description

署名検証システム、署名検証方法及び記憶媒体 参照による取り込み
 本出願は、平成28年(2016年)7月21日に出願された日本出願である特願2016-143152の優先権を主張し、その内容を参照することにより、本出願に取り込む。
 本発明は、P2P(Peer-to-peer)ネットワーク上で分散型台帳管理を実現するブロックチェーン(署名検証)システムに関する。
 P2Pネットワーク上で分散型台帳管理を実現する技術として、ブロックチェーンがある。ブロックチェーンでは、記録情報を含むトランザクションを作成し、それを電子署名に基づき鎖状に繋ぐことで、記録情報の一貫性を確保している。
 ブロックチェーンの一例として、非特許文献1で開示されたBitcoinに代表される、記録情報を保証するユーザが自らの秘密鍵でトランザクションに対して電子署名を付与することでチェーンを形成するシステムがある。このようなブロックチェーンシステムでは、トランザクション内に含まれる公開鍵に基づき、トランザクションに対する電子署名を検証することで、正規のユーザがトランザクションを生成したことを判定する。
特開2013-123142号公報
NAKAMOTO, Satoshi 著、"Bitcoin: A peer-to-peer electronic cash system." 、2008年発行
 ブロックチェーンシステムでは、ユーザが自らの秘密鍵を用いて電子署名を生成することでトランザクションを生成するため、当該秘密鍵を紛失した場合、正しいトランザクションを生成することができなくなり、継続的にシステムを利用することが困難となる。また、秘密鍵の盗難に遭った場合は、秘密鍵を取得した第三者が不正にトランザクションを生成することが可能となり、なりすましを行うことが可能となる。
 このような課題に対する自明かつ有効な解として、紛失や盗難が起きにくい形で秘密情報を管理する方式が挙げられる。紛失や盗難が起きにくい情報に基づき公開鍵暗号を実現する方式として、特許文献1で開示されている生体署名がある。生体署名は、指紋、静脈、顔などに代表される生体情報を鍵として、メッセージに対する署名生成や署名検証を実現する技術である。生体情報は人間の身体的な特徴をセンシングしたものであるため、公知または周知の公開鍵暗号の秘密鍵に比べて、紛失や盗難が発生しにくい。
 しかしながら、ブロックチェーンシステムのユースケースによっては、頻繁にトランザクションの生成を行う必要がある場合や、人が介在せず自動的にトランザクション生成を行う必要がある場合がある。このような場合は、トランザクション生成の度にユーザの電子署名を必要とする。生体署名ではトランザクション生成の度に生体情報を入力することになるので、ユーザの利便性が低下する可能性があった。
 本発明の目的は、秘密鍵の紛失や漏洩が発生した場合にも、継続的なトランザクション生成を可能とするシステムを、ユーザの利便性を低下させずに実現することである。
 本発明は、プロセッサとメモリを備えた計算機で署名を検証する署名検証システムであって、ユーザの生体情報を取得する生体情報取得部と、前記生体情報に所定の処理を加えて公開テンプレート証明書を生成する公開テンプレート証明書生成部と、秘密鍵と公開鍵のペアを生成する鍵ペア生成部と、前記生体情報を鍵として前記公開鍵へ生体署名を付与することで公開鍵証明書を生成する公開鍵証明書生成部と、前記公開テンプレート証明書と前記公開鍵証明書と署名を含むトランザクションを受け付けて、前記公開テンプレート証明書で前記公開鍵証明書の正当性を検証し、さらに前記公開鍵証明書で前記署名を検証する検証部と、を有する。
 本発明によれば、ユーザの既存秘密鍵の紛失または漏洩が発生した際には、ユーザが公開鍵失効申請書を発行することで、既存の秘密鍵を用いたトランザクション生成を無効化し、新たな秘密鍵と新たな公開鍵のペアを生成し、生体情報を鍵として新たな公開鍵に生体署名を付与することで新たな公開鍵証明書を発行し、その後、新たな秘密鍵を用いてトランザクションの生成を行うことで、既存の秘密鍵を使わずに継続的に署名検証システムを利用することが可能になる。
本発明の実施例1を示し、ブロックチェーンシステムの一例を示すブロック図である。 本発明の実施例1を示し、公開テンプレート証明書発行の処理手順を示すフローチャートである。 本発明の実施例1を示し、初期登録の処理手順を示すフローチャートである。 本発明の実施例1を示し、ブロックチェーンシステムにおけるトランザクション生成及びトランザクション検証の処理手順を示すフローチャートである。 本発明の実施例1を示し、新トランザクション生成の処理手順を示すフローチャートである。 本発明の実施例1を示し、トランザクション検証の処理手順を示すフローチャートである。 本発明の実施例1を示し、公開鍵失効の処理手順を示すフローチャートである。 本発明の実施例1を示し、鍵再発行の処理手順を示すフローチャートである。 本発明の実施例1を示し、公開テンプレート証明書のデータ構造を示す図である。 本発明の実施例1を示し、公開鍵証明書のデータ構造を示す図である。 本発明の実施例1を示し、公開鍵失効申請書のデータ構造を示す図である。 本発明の実施例1を示し、証明書失効リストのデータ構造を示す図である。 本発明の実施例1を示し、生体署名を活用したブロックチェーンのデータ構造を示す図である。 本発明の実施例1を示し、署名端末、検証端末、公開テンプレートリポジトリのハードウェア構成を示すブロック図である。 本発明の実施例2を示し、ブロックチェーンシステムの一例を示すブロック図である。 本発明の実施例2を示し、公開テンプレート証明書発行の処理手順を示すフローチャートである。 本発明の実施例2を示し、公開鍵失効の処理手順を示すフローチャートである。 本発明の実施例2を示し、公開テンプレート証明書のデータ構造を示す図である。 本発明の実施例2を示し、公開鍵証明書のデータ構造を示す図である。 本発明の実施例2を示し、公開鍵失効申請書のデータ構造を示す図である。 本発明の実施例3を示し、ブロックチェーンシステムの一例を示すブロック図である。 本発明の実施例3を示し、ブロックチェーンシステムで行われる登録処理の一例を示すシーケンス図である。 本発明の実施例3を示し、ブロックチェーンシステムで行われるトランザクションの検証処理の一例を示すシーケンス図である。 本発明の実施例3を示し、ブロックチェーンシステムで行われる鍵の再発行処理の一例を示すシーケンス図である。 本発明の実施例4を示し、生体署名を活用したブロックチェーンのデータ構造を示す図である。
 以下、本発明の実施形態を添付図面に基づいて説明する。
 本実施例は、ブロックチェーンシステム(生体署名システム)のユーザが自らの秘密鍵の紛失または漏洩時に、ユーザの生体情報を鍵とする生体署名を用いることで、秘密鍵を失効(無効化)させて新たな秘密鍵を再発行し、継続的にブロックチェーンシステムを利用することを可能とするシステムである。
 以降、図面を参照して手順を説明する。
 図1は、本発明の実施例1の、ブロックチェーンシステムの構成の一例を示すブロック図である。ブロックチェーンシステムは、署名端末1000と、検証端末11000と、公開テンプレートリポジトリ1200と、ユーザ端末1300と、これらの端末を相互に接続するネットワーク100、を含む。
 この図において、署名端末1000は、通信部1010と、生体情報取得部1020と、公開テンプレート生成部1030と、鍵ペア生成部1040と、公開鍵証明書生成部1050と、記録情報取得部1060と、ハッシュ値生成部1061と、署名生成部1070と、新トランザクション生成部1071と、公開鍵失効申請書生成部1080、鍵格納部1091、公開テンプレート証明書格納部1092を含んで構成される。
 通信部1010は、ネットワーク100を介して検証端末1100と、公開テンプレートリポジトリ1200の間で通信を行う。
 生体情報取得部1020は、例えば、指紋センサ、静脈センサ、カメラなどを介して、ユーザから指紋、静脈、顔画像などの生体情報を取得する。なお、生体情報を取得するセンサとして携帯電話やスマートフォンの指紋センサや静脈センサやカメラを用いることができる。
 公開テンプレート生成部1030は、特許文献1の方式に従い、生体情報取得部1020で取得した生体情報に対して一方向性(不可逆)変換を施すことで、公開テンプレートを生成する。なお、一方向性変換としては、公知または周知の変換処理を適用すれば良い。
 鍵ペア生成部1040は、公知または周知の公開鍵暗号(RSA、DSA、など)を用いて、秘密鍵と公開鍵のペアを生成する。
 公開鍵証明書生成部1050は、鍵ペア生成部1040で生成された公開鍵に対して、生体情報取得部1020で取得した生体情報を鍵とする生体署名を付与することで公開鍵証明書を生成する。
 記録情報取得部1060は、トランザクション内に書き込む記録情報を入力装置からの入力などから取得する。
 ハッシュ値生成部1061は、記録情報取得部1060で取得した記録情報やその他の情報を所定のハッシュ関数へ入力することで、ハッシュ値を生成する。
 署名生成部1070は、ハッシュ値生成部1061で生成されたハッシュ値に対して、秘密鍵を用いて署名値を生成する。
 新トランザクション生成部は、公開鍵証明書生成部1050で生成された公開鍵証明書と、公開テンプレート証明書(後述)と、記録情報取得部1060で取得した記録情報と、ハッシュ値生成部1061で生成されたハッシュ値と、署名生成部1070で生成された署名などを含む新トランザクションを生成する。
 公開鍵失効申請書生成部1080は、公開鍵証明書生成部1050で生成された公開鍵証明書から公開鍵失効申請書を生成する。
 次に、検証端末1100は、通信部1110と、公開鍵証明書検証部1120と、ハッシュ値生成部1161と、署名検証部1140を含んで構成される。
 公開鍵証明書検証部1120は、署名端末1000の公開鍵証明書生成部1050で生成された公開鍵証明書を公開テンプレートを用いて正当性を検証する。
 署名検証部1140は、署名端末1000の署名生成部1070で生成された署名値を公開鍵証明書を用いて正当性を検証する。
 通信部1110は、ネットワーク100を介して署名端末1000と、公開テンプレートリポジトリ1200の間で通信を行う。
 次に、公開テンプレートリポジトリ1200は、通信部1210と、公開テンプレート証明書生成部1220と、公開鍵失効申請書検証部1230と、証明書失効リスト生成部1240と、公開テンプレート証明書格納部1290と、証明書失効リスト格納部1291を含んで構成される。
 公開テンプレート証明書生成部1220は、署名端末1000の公開テンプレート生成部1030で生成された公開テンプレートから公開テンプレート証明書を生成する。
 公開鍵失効申請書検証部1230は、署名端末1000の公開鍵失効申請書生成部1080で生成された公開鍵失効申請書を、公開テンプレート証明書生成部1220で生成された公開テンプレート証明書で正当性を検証する。
 証明書失効リスト生成部1240は、署名端末1000の公開鍵失効申請書生成部1080で生成された公開鍵失効申請書に基づき、証明書失効リスト9300(図9D)を生成する。
 公開テンプレート証明書格納部1290は、公開テンプレート証明書生成部1220で生成された公開テンプレート証明書を格納する。
 証明書失効リスト格納部1291は、証明書失効リスト生成部1240で生成された証明書失効リスト9300を格納する。通信部1210は、ネットワーク100を介して署名端末1000と、検証端末1100との間で通信を行う。
 ユーザ端末1300は、ユーザBが利用する計算機で、署名端末1000を利用するユーザAがトランザクションを送信する送信先となる。ユーザ端末1300は、署名端末1000と同様の構成の計算機である。
 本発明の実施例1の処理手順を、図2~図11を参照しながら説明する。
 図2は、本発明の実施例1の、公開テンプレート証明書の初期登録の処理手順を示したフローチャートである。本処理は、署名端末1000がユーザから生体情報を取得し、公開テンプレートリポジトリ1200が公開テンプレート証明書を生成することで、その後ブロックチェーンシステムを利用可能とする処理である。以降、各手順を説明する。
 署名端末1000にて、初期登録を行う(S2010)。初期登録の具体的な手順は、図3を参照して後ほど説明する。この手順により、公開テンプレートを生成する。
 署名端末1000は、公開テンプレートを公開テンプレートリポジトリ1200へ送信する(S2020)。この際、署名端末1000は、ユーザ名や、公開テンプレートを生成するために用いた生体署名アルゴリズムなど、公開テンプレート証明書を生成するために必要となる情報も同時に送信する。なお、改ざん防止のため、それらの情報に対して生体署名を付与しても良い。
 公開テンプレートリポジトリ1200は、公開テンプレートを受信し(S2110)、受信した公開テンプレートに対するシリアル番号を発行する(S2120)。シリアル番号は公開テンプレートに対して一意に付与される番号であり、重複しないように公開テンプレートリポジトリ1200にて管理される。
 公開テンプレートリポジトリ1200は、公開テンプレートに対して署名を付与し、公開テンプレート証明書を生成して登録する(S2130)。公開テンプレート証明書のデータ構造は、図9Aを参照して後ほど説明する。本実施例1では、公開テンプレートリポジトリ1200が信頼できる第三者機関として機能しており、不正は行われないことを仮定する。
 このため、公開テンプレートに対する署名は、公開テンプレートリポジトリ1200が保管する認証局の秘密鍵を用いて生成される。これにより、公開テンプレート証明書は認証局の秘密鍵を持たない第三者には生成困難となり、不正な公開テンプレート証明書が発行されてなりすましなどが発生することを防止することが可能となる。
 公開テンプレートリポジトリ1200は、ステップS2130で生成された公開テンプレート証明書を署名端末1000に送信し(S2140)、署名端末1000は公開テンプレート証明書を受信する(S2030)。
 署名端末1000は、ステップS2030で受信した公開テンプレート証明書を、公開テンプレート証明書格納部1092に格納する(S2040)。
 以上により、公開テンプレート証明書の初期登録が完了する。
 次に、図2のステップS2010で行われる初期登録処理の具体的な手順を、図3を参照して説明する。
 署名端末1000の生体情報取得部1020にて、ユーザの生体情報を取得する(S3010)。署名端末1000には、指紋センサ、静脈センサ、カメラなどの生体センサが接続されており、これらのセンサを使って、生体情報取得部1020はユーザの指紋、静脈、顔画像などの生体情報を取得する。
 公開テンプレート生成部1030は、ステップS3010で取得した生体情報に対して一方向性変換を施すことで、公開テンプレートを生成する(S3020)。この変換には、生体情報に含まれる誤差を補正して、一意のデータを生成し、得られたデータを鍵として暗号処理を行う、バイオメトリック暗号方式を採用する。この変換として用いることができる方式としては、例えばFuzzy Commitment、Fuzzy Vaultや、特許文献1に開示されている生体署名などがある。以降では、特許文献1に開示されている生体署名を前提として説明する。
 生体署名では、生体情報に対して一方向性変換を施すことで公開テンプレートを生成する。公開テンプレートを第三者が取得しても生体情報を復元することは非常に困難であり、公開鍵と同様に公開情報として扱うことができる。
 署名端末1000の鍵ペア生成部1040は、秘密鍵と公開鍵の鍵ペアを生成する(S3030)。この鍵ペアは、公知または周知のRSA暗号、DSA暗号、Elgamal暗号などの公開鍵暗号に基づき生成される。
 署名端末1000の公開鍵証明書生成部1050は、ステップS3030で得られた公開鍵に対して、ステップS3010で取得した生体情報を鍵とする生体署名を付与することで、公開鍵証明書を生成する(S3040)。公開鍵証明書のデータ構造については、図9Bを参照して後ほど説明する。
 署名端末1000は、ステップS3030で生成した秘密鍵およびステップS3040で生成した公開鍵証明書を鍵格納部1091に格納する(S3050)。
 以上により、鍵ペアと公開鍵証明書が生成されてステップS2010の初期登録処理が完了する。
 図4は、図2に示す初期登録が完了した後実施される、ブロックチェーンシステムにおけるトランザクション生成と検証の手順を示した図である。本処理では、署名端末1000において初期登録を終えた後、既存トランザクションに対して新たなトランザクションを生成し、検証端末1100において新たなトランザクションの正当性を検証する。以降、図を参照して手順を説明する。
 署名端末1000にて、既存トランザクションを受信する(S4010)。既存トランザクションは、ブロックチェーンシステムにおいて過去に生成されたトランザクションであり、これから生成する新トランザクションの1つ前に位置するものである。
 例えば、ブロックチェーンを使った仮想通貨の場合、既存トランザクションは他人から自分への送金を示すトランザクションであり、新トランザクションはその送金された仮想通貨を他人へ送金するトランザクションとなる。
 既存トランザクションと新トランザクションのデータ構造については、図10を参照して後ほど説明する。また、既存トランザクションはネットワーク(P2Pネットワーク)100から通信部1010を介して取得する。なお、事前に既存トランザクションを収集しておき、署名端末1000における記録装置から読み込むことで既存トランザクションを取得しても良い。
 署名端末1000は、ステップS4010で受信した既存トランザクションの次に繋がるトランザクションとして、新トランザクションを生成する(S4011)。新トランザクション生成の詳細な手順については、図5を参照して後ほど説明する。
 署名端末1000は、ステップS4010で受信した既存トランザクションとS4011で生成した新トランザクションを、通信部1010を用いて検証端末1100へ送信する(S4030)。
 検証端末1100は、ステップS4030で送信された既存トランザクションと新トランザクションを、通信部1110を用いて受信する(S4210)。なお、図4では簡略化のため署名端末1000と検証端末1100が直接通信を行って必要なデータをやり取りしているが、実際のブロックチェーンシステムでは、署名端末1000及び検証端末1100は多数の端末が接続されたネットワーク100に接続されており、データは他の端末を経由して送受信される。
 検証端末1100は、当該既存トランザクション内に含まれる公開テンプレート証明書を用いてトランザクションの正当性の検証を行う(S4220)。トランザクションの検証では、既存トランザクションと新トランザクションの内容に不整合が存在せず、かつ確かに正規のユーザが生成したものであることを判定する。トランザクション検証の詳細な手順は、図6を参照して後ほど説明する。
 検証端末1100は、トランザクションの検証結果によって条件分岐を行い(S4230)、当該検証結果が成功のときのみ新トランザクションを承認する(S4240)。トランザクションの承認は、検証端末1100が当該新トランザクションは適切なものであることを認める処理であり、具体的な手順は対象とするブロックチェーンシステムにより異なる。例えば、ブロックチェーンを用いた仮想通貨の一つであるビットコインの場合は、承認した新トランザクションをまとめた上で、ヘッダを追加してブロックを生成する。
 以上により、ブロックチェーンシステムにおけるトランザクション生成と検証が完了する。
 図5は、本発明の実施例1の、新トランザクション生成(S4020)の処理手順を示すフローチャートである。以降、図を参照して手順を説明する。
 署名端末1000は、新トランザクションに含める記録情報(メッセージ)を取得する(S5010)。記録情報は、ブロックチェーンシステムの中で承認を得る対象の情報であり、例えば仮想通貨の場合はユーザ間の通貨の取引であり、スマートコントラクトの場合は契約内容となる。
 署名端末1000のハッシュ値生成部1061は、新トランザクションに含まれる情報のハッシュ値を生成する(S5020)。
 次に、署名端末1000の新トランザクション生成部1071は、署名を付与するため、鍵格納部1091に格納されている秘密鍵を活性化させる(S5030)。秘密鍵の活性化は、鍵格納部1091が署名端末1000内の補助記憶装置であれば、当該補助記憶装置から主記憶装置へ秘密鍵データを読み出すことで行われる。その際、秘密鍵がパスワードで暗号化されている場合は、ユーザからパスワードを受け付け、復号した上で秘密鍵を取り出す。また、秘密鍵がICカードなどのスマートデバイスの中に格納されている場合は、パスワードをスマートデバイスへ入力することで秘密鍵を活性化させる。
 署名端末1000の署名生成部1070は、ステップS5020で生成したハッシュ値に対して、ステップS5030で活性化した秘密鍵を用いて署名を付与する(S5040)。署名生成部1070は、ステップS5030で活性化した秘密鍵が署名端末1000の主記憶装置に格納された場合は、当該秘密鍵を用いて主記憶装置上で署名処理を行う。なお、秘密鍵がスマートデバイス内に格納されている場合は、ハッシュ値をスマートデバイス内に入力した上で、スマートデバイス内で署名生成を行い、その署名値を取得する。
 新トランザクション生成部1071は、ステップS5010で取得した記録情報と、ステップS5040で生成した署名と、公開テンプレート証明書と公開鍵証明書を含む新トランザクションを生成する(S5050)。新トランザクションのデータ構造は、図10を参照して後ほど説明する。
 以上の手順により、新トランザクションの生成が完了する。
 図6は、トランザクション検証(S4250)の処理手順を示すフローチャートである。本処理は、検証端末1100が新トランザクションを受け付けて、当該新トランザクションに含まれる公開テンプレート証明書と、公開鍵証明書と、署名値の正当性をそれぞれ検証し、全ての検証に成功したときのみ、新トランザクションの検証成功とする。以降、図を参照して説明する。
 検証端末1100は、新トランザクションに含まれる公開テンプレート証明書の正当性を検証する(S6010)。公開テンプレート証明書には、ステップS2130で認証局の秘密鍵で生成した署名値が付与されており、本手順では当該署名値を認証局の公開鍵を用いて検証する。これにより、検証端末1100は、公開テンプレート証明書が確かに認証局によって発行されたものであることを検証できる。
 検証端末1100は、公開テンプレート証明書の検証結果が成功であれば次のステップS6030に進み、失敗であればトランザクション検証結果に失敗を代入する(S6051)。
 検証端末1100は、新トランザクションに含まれる公開鍵証明書を、既存トランザクションに含まれる公開テンプレート証明書を用いて正当性を検証する(S6030)。公開鍵証明書にはステップS3040にて生体情報を鍵とする生体署名が付与されている。この生体署名が、確かに本人が付与したものか否かを、公開テンプレート証明書を用いて正当性を検証する。
 これにより、検証端末1100は、既存トランザクションに含まれる公開テンプレート証明書を生成したユーザと、新トランザクションに含まれる公開鍵証明書を生成したユーザが同一であることが検証できる。既存トランザクションに含まれる公開テンプレート証明書を生成したユーザは、仮想通貨の場合通貨の送り先に対応し、新トランザクションに含まれる公開鍵証明書を生成したユーザは、仮想通貨の場合通貨の送り元に対応する。
 すなわち、仮想通貨の場合、この検証は、送金したいユーザが確かに過去に送金を受けて通貨を保有していることを示している。さらに、ステップS6030では、公開鍵証明書が証明書失効リストに含まれていないことを検証する。
 証明書失効リストは、秘密鍵の紛失、盗難、その他の事由で、秘密鍵に対応する公開鍵証明書を無効にし、署名検証に失敗するようにするための仕組みである。証明書失効リストの発行手順は図7、証明書失効リストのデータ構造は図9Dにて、後ほど示す。
 具体的には、検証端末1100が、公開テンプレート証明書に含まれるシリアル番号と証明書失効リストに含まれる公開テンプレートシリアル番号とを比較し、その後公開鍵証明書と証明書失効リストに含まれる公開鍵シリアル番号とを比較し、両者が一致していれば公開テンプレートを用いて生体署名値(9364)の正当性の検証を行い、さらに証明書失効リストの署名値(9370)の正当性を検証する。検証端末1100は、全ての検証に成功した場合、公開鍵証明書が失効していると判定し、検証失敗とする。
 検証端末1100は、ステップS6030の検証結果に基づき条件分岐を行い(S6040)、当該検証に成功した場合は、ステップS6050以降の処理に進み、当該検証に失敗した場合は、トランザクション検証結果に失敗を代入する(S6051)。
 検証端末1100のハッシュ値生成部1161は、新トランザクション内のデータからハッシュ値を生成する(S6050)。
 検証端末1100の署名検証部1140は、ステップS6050で生成したハッシュ値と公開鍵証明書を用いて、署名の正当性を検証する(S6060)。署名は、署名端末1000がステップS5040にて新トランザクションのハッシュ値に対して秘密鍵を用いて生成したものであるため、検証端末1100では秘密鍵に対応する公開鍵にて正当性の検証を行うことができる。
 検証端末1100は、当該検証にて、秘密鍵を持つユーザが新トランザクションを生成したことを検証し、さらに、新トランザクションの内容に後から改ざんが加えられていないことを検証する。
 検証端末1100は、ステップS6060の検証結果に基づき条件分岐を行い(S6070)、当該検証に成功した場合は、トランザクション検証結果に成功を代入し(S6080)、当該検証に失敗した場合はトランザクション検証結果に失敗を代入する(S6051)。検証端末1100は、トランザクション検証結果を署名端末1000に通知することができる。
 以上により、検証端末1100は、トランザクションの内容を検証する処理が完了する。
 図2~図6では、公開テンプレート証明書の初期登録を行い、新トランザクションを生成し、当該トランザクションを検証するまでの流れを示した。本発明は、ユーザの秘密鍵の紛失や盗難時にも、安全かつ継続的にブロックチェーンシステムを利用できるようにすることを目的としている。このため、図2~図6の通常の処理手順に加えて、秘密鍵の紛失または盗難時に、秘密鍵に対応する公開鍵証明書の失効や新たな公開鍵証明書の発行を行う。
 図7は、公開鍵証明書を失効させる際の処理手順を示したフローチャートである。以降、図を参照して手順を説明する。
 署名端末1000は、公開鍵証明書を失効させるユーザの公開テンプレート証明書を取得する(S7010)。この処理は、署名端末1000の公開テンプレート証明書格納部1092に公開テンプレート証明書が格納されている場合は、署名端末1000が、そのデータを読み出すことに相当する。また、公開テンプレート証明書のシリアル番号を入力された場合、または公開テンプレート証明書のシリアル番号のみを補助記憶装置に格納していた場合は、署名端末1000が、当該シリアル番号に基づき公開テンプレートリポジトリ1200へ問い合わせを行い、公開テンプレート証明書を取得する。
 失効する公開鍵証明書を署名端末1000が鍵格納部1091から取得する(S7020)。
 署名端末1000の公開鍵失効申請書生成部1080は、ステップS7010で取得した公開テンプレート証明書およびステップS7020で取得した公開鍵証明書を用いて、公開鍵失効申請書を生成する(S7030)。公開鍵失効申請書のデータ構造は、図9Cを用いて後ほど説明する。
 署名端末1000は、ステップS7030で生成した公開鍵失効申請書を公開テンプレートリポジトリ1200へ送信する(S7040)。また、署名端末1000は、トランザクションの送受信を行うユーザ端末1300にも公開鍵失効申請書を送信しておく。これにより、公開テンプレートリポジトリ1200やユーザ端末1300は、署名端末1000の現在の公開鍵証明書が失効したことを検証することができる。
 公開テンプレートリポジトリ1200は、公開鍵失効申請書を受信し(S7110)、公開鍵失効申請書検証部1230が当該公開鍵失効申請書を検証する(S7120)。この検証では、公開鍵失効申請書検証部1230が公開鍵失効申請書に付与された署名値が正しいことを、公開テンプレート証明書を用いて検証する。
 具体的には、公開鍵失効申請書検証部1230が公開鍵失効申請書に含まれる公開テンプレートシリアル番号を用いてユーザに対応する公開テンプレート証明書を取得する。さらに、公開鍵失効申請書検証部1230は、当該公開テンプレート証明書を用いて、公開鍵失効申請書に含まれる署名値の正当性を検証する。
 公開鍵失効申請書検証部1230は、ステップS7120の検証結果に基づき条件分岐を行い(S7130)、検証に成功した場合には証明書失効リスト生成部1240が証明書失効リスト9300を生成し、証明書失効リスト格納部1291に格納する(S7140)。証明書失効リストのデータ構造は、図9Dを参照して後ほど説明する。
 以上により、公開鍵証明書の失効が完了する。公開テンプレートリポジトリ1200が発行した証明書失効リストは、図6のステップS6030の公開鍵証明書検証にて検証に用いられ、公開鍵証明書が証明書失効リストに存在する場合は、検証に失敗する。これにより、秘密鍵の紛失、盗難、その他の理由で公開鍵証明書を失効させると、図4に示したステップS4220のトランザクション検証に失敗するため、トランザクションが承認されなくなる。これにより、第三者が秘密鍵を取得した場合でも、なりすましを行って不正にトランザクションを承認させることができなくなる。
 図8は、本発明の実施例1の、公開鍵証明書を再発行する際の処理手順を示したフローチャートである。本処理では、図7で示した公開鍵証明書の失効(公開鍵失効申請書の生成)を行った後、署名端末1000が新たに用いる新たな公開鍵証明書を生成する。なお、図7で示した公開鍵証明書の失効を行わなくても、公開鍵証明書の有効期限を迎えることで自動的に失効する場合もある。このような場合は、図7で示した公開鍵証明書の失効を行わずに、図8に示した公開鍵証明書の再発行を行うこともできる。また、公開鍵証明書が失効していない時点で図8に示した公開鍵証明書の再発行を行うこともできる。これは、異なる複数の公開鍵証明書を発行して、公開鍵に対応する秘密鍵を同一ユーザの複数の端末に格納する場合や、異なるユーザへ貸与する場合に行う。以降、図8を参照して説明する。
 署名端末1000は、公開テンプレート証明書を取得する(S8010)。この処理では、図7のステップS7010と同様に、署名端末1000が公開テンプレート証明書格納部1092、または公開テンプレートリポジトリ1200から公開テンプレート証明書を取得する。
 署名端末1000は、ユーザの生体情報を取得する(S8020)。この処理では、図3のステップS3010と同様に、生体情報取得部1020が生体センサによりユーザの指紋、静脈、顔画像などの生体情報を取得する。
 署名端末1000は、ステップS8010で取得した公開テンプレート証明書を用いて、ステップS8020で取得した生体情報の正当性を検証する(S8030)。当該検証では、署名端末1000が、生体署名を用いて、公開テンプレート証明書を生成した際に元にした生体情報と、ステップS8020で取得した生体情報とが同一人物から取得したものであるかを検証し、同一人物の場合は検証成功とし、異なる人物の場合は検証失敗とする。
 署名端末1000は、ステップS8030の検証結果に基づき条件分岐を行い(S8040)、成功した場合はステップS8050以降の処理を行い、失敗した場合は再発行結果に「発行失敗」を代入し(S8051)、当該再発行結果を署名端末1000の出力装置に表示する(S8090)。
 ステップS8040の検証に成功した場合、署名端末1000の鍵ペア生成部1040は、新秘密鍵と新公開鍵の新鍵ペアを生成する(S8050)。この処理はS3030と同様に、公知または周知の公開鍵暗号に基づき生成される。
 署名端末1000の公開鍵証明書生成部1050は、ステップS8050で生成した新公開鍵に基づき、新公開鍵証明書を生成する(S8060)。この処理では、図3のステップS3040と同様に、署名端末1000が新公開鍵に対してステップS8020で取得した生体情報を鍵とする生体署名を付与する。
 署名端末1000は、ステップS8050で生成した新秘密鍵及び新公開鍵証明書を、鍵格納部1091に格納する(S8070)。また、署名端末1000は、トランザクションの送受信を行うユーザ端末1300に新公開鍵証明書を送信しておく。
 署名端末1000は、公開鍵証明書の再発行結果に「発行成功」を代入し(S8080)、再発行結果を署名端末1000に表示する(S8090)。
 以上により、公開鍵証明書の再発行(更新)が完了する。この処理により、署名端末1000の鍵格納部1091内の秘密鍵及び公開鍵証明書がアップデートされ、以降の署名生成及び署名検証では新秘密鍵と新公開鍵証明書が用いられる。
 この新秘密鍵を用いて生成したトランザクションは、新公開鍵証明書で正当性を検証することができる。このため、本実施例1では秘密鍵の紛失や漏洩時にも、新たに秘密鍵を発行して継続的にブロックチェーンシステムを利用することが可能となる。
 上記処理により、署名端末1000の公開鍵証明書生成部1050は、公開鍵失効申請書を生成した後に、鍵ペアを再発行するユーザの公開テンプレート証明書を公開テンプレート証明書格納部1092から取得する。そして、当該ユーザの生体情報を取得して、公開テンプレート証明書に含まれる公開テンプレート9080と生体情報の検証に成功すれば、鍵ペアと公開鍵証明書を再発行することで、当該ユーザはブロックチェーンシステムの利用を継続することができる。
 図9A~図9Dは、公開テンプレート証明書、公開鍵証明書、公開鍵失効申請書、証明書失効リスト、それぞれのデータ構造を示した図である。
 図9Aは、公開テンプレート証明書9000の一例を示す図である。公開テンプレート証明書9000は、図2のステップS2130で生成されるデータである。基本的なデータ構造は、公開テンプレート9080に対してその他のヘッダ情報を付与して、署名値9091を付与したものであり、PKI(Public Key Infrastructure)における公開鍵証明書の規格であるX.509に準拠している。以降、それぞれのデータについて説明する。
 バージョン9010は公開テンプレート証明書のバージョンを文字列で示す。
 公開テンプレートシリアル番号9020は、公開テンプレートリポジトリ1200が公開テンプレートに対して一意に割り振る文字列であり、重複しないように付与される。
 署名アルゴリズム9030は、公開テンプレート証明書に対して付与する署名値(9091)を生成するアルゴリズムを示す。
 発行者9040は、公開テンプレート証明書を発行する主体、つまり認証局を示す。
 有効期限9050は、公開テンプレート証明書の有効期限の日時を示す。
 サブジェクト9060は、公開テンプレート証明書の主体者、つまり発行を依頼するユーザを示している。
 生体署名アルゴリズム9070は、公開テンプレート9080を生成するアルゴリズムを示す。
 公開テンプレート9080は、図3のステップS3020にて生成された公開テンプレートを示す。
 署名アルゴリズム9090は、署名アルゴリズム9030と同じく、公開テンプレート証明書に対して付与する署名値(9091)を生成するアルゴリズムを示す。
 署名値9091は、9010~9080までのデータをハッシュ関数(例えば、SHA1、SHA256など)へ入力し、得られたハッシュ値を認証局の秘密鍵で変換して得られる値である。
 以上が公開テンプレート証明書のデータ構造である。
 図9Bは、公開鍵証明書のデータ構造の一例を示す図である。
 公開鍵証明書9100は、ステップS3040またはS8060で生成する、公開鍵に対して生体情報を鍵とする生体署名を付与したデータであり、PKI(Public Key Infrastructure)における公開鍵証明書の規格であるX.509に準拠している。以降、図を参照して説明する。
 バージョン9110は公開テンプレート証明書のバージョンを表す文字列を示す。
 公開テンプレートシリアル番号9120は、公開テンプレートリポジトリ1200が公開テンプレートに対して一意に割り振るシリアル番号であり、重複しないように付与される。
 公開鍵シリアル番号9121は、公開鍵に対して署名端末1000の鍵ペア生成部1040が付与する一意の文字列であり、異なる公開鍵で重複しないように生成される。
 生体署名アルゴリズム9130は、生体署名値9191を生成するアルゴリズムを示す。
 発行者9140は、公開テンプレート証明書を発行する主体、つまり認証局を示す。
 有効期限9150は、公開テンプレート証明書の有効期限の日時を示す。
 サブジェクト9160は、公開テンプレート証明書の主体者、つまり発行を依頼するユーザを示している。
 公開鍵アルゴリズム9170は、公開鍵9180を生成するアルゴリズムを示す。
 公開鍵9180は、ステップS3030やS8050で生成する公開鍵を示す。
 生体署名アルゴリズム9190は、上記9130と同じく、生体署名値9191を生成するアルゴリズムを示す。
 生体署名値9191は、上記9110~9180までのデータをハッシュ関数(例えば、SHA1、SHA256など)へ入力し、得られたハッシュ値に対して、生体情報を鍵とする生体署名を生成することで得られる値である。
 以上が公開鍵証明書のデータ構造である。
 図9Cは、公開鍵失効申請書のデータ構造の一例を示す図である。
 公開鍵失効申請書9200は、署名端末1000の公開鍵失効申請書生成部1080にてステップS7030で生成されるものであり、公開テンプレートシリアル番号9210、公開鍵シリアル番号9220、失効日時9230に対して、生体情報を鍵とする生体署名を付与したデータである。
 公開テンプレートシリアル番号9210、公開鍵シリアル番号9220は、それぞれ公開鍵証明書9100の公開テンプレートシリアル番号9120と、公開鍵シリアル番号9121からコピーしたデータである。なお、公開テンプレートシリアル番号9210及び公開鍵シリアル番号9220は、公開鍵証明書9100を特定する識別子として使用する。
 失効日時9230は、公開鍵証明書を失効させる日時を記載しており、この日時以降、公開鍵証明書を用いた検証には失敗するようになる。
 生体署名値9240は、上記9210~9230のデータをハッシュ関数(例えば、SHA1、SHA256など)へ入力し、ハッシュ値を取得し、当該ハッシュ値に対して生体情報を鍵とする生体署名を生成することで得られる。
 以上が公開鍵失効申請書のデータ構造である。
 図9Dは、証明書失効リストのデータ構造の一例を示す図である。
 証明書失効リスト9300は、公開テンプレートリポジトリ1200にてステップS7140で生成されるものであり、公開鍵失効申請書を1つまたは複数含み、ヘッダ及び署名値を付与したデータである。以降で図を参照して説明する。
 バージョン9310は、証明書失効リストのバージョンを表す文字列を示す。
 署名アルゴリズム9320は、証明書失効リストに対して付与される署名値9380の生成に用いる署名アルゴリズムを示す。
 発行者9330は、証明書失効リストを発行する主体を示す文字列を示す。
 今回の更新日時9340は、対象の証明書失効リストを発行した日時を示す。
 次回の更新日時9350は、次に証明書失効リストが発行される日時を示す。
 9361~9364は、公開鍵失効申請書の9210~9240に対応する。証明書失効リストでは、一定期間に受理した公開鍵失効申請書をまとめて、証明書失効リストに含める。
 署名アルゴリズム9370は、上記9320と同様に、証明書失効リストに対する署名値9380を生成するために用いる署名アルゴリズムを示す。
 署名値9380は、9310~9364のデータをハッシュ関数(例えば、SHA1、SHA256など)に入力し、得られたハッシュ値に対して公開テンプレートリポジトリ1200が保持する認証局の秘密鍵で署名を付与したものである。
 以上が、証明書失効リストのデータ構造である。
 図10は、本実施例1が対象とするブロックチェーンのデータ構造を示した図である。図10には既存トランザクション10010及び新トランザクション10110が含まれる。
 既存トランザクション10010は、ステップS4010にて受信するトランザクションであり、新トランザクション10110は、ステップS5050にて生成するトランザクションである。以降、図を参照して各データについて説明する。
 既存トランザクション10010は、ユーザAからユーザBに対する取引情報を記録したトランザクションであり、ユーザA(取引元)の公開鍵証明書10020と、ユーザB(取引先)の公開テンプレート証明書10030と、記録情報10040と、生成日時10050と、ハッシュ値10060と、ユーザAの署名10070を含んで構成される。例えば、ブロックチェーンに基づく仮想通貨の場合、ユーザAは送金元、ユーザBは送金先に相当する。
 ユーザAの公開鍵証明書10020は、ステップS3040またはステップS8060で生成される公開鍵証明書である。なお、上記10020には公開鍵証明書をそのまま格納しても良いが、公開鍵証明書を何らかの規則性に従って変換したデータを入れ、公開鍵証明書を使うときに復元しても良い。また、10020に公開鍵証明書のシリアル番号のみを格納し、公開鍵証明書を使うときにはシリアル番号を使って公開鍵証明書を取得しても良い。
 ユーザBの公開テンプレート証明書10030は、ステップS2130で生成される公開テンプレート証明書である。なお、当該公開テンプレート証明書は、ユーザAの公開鍵証明書10020と同様に、変換したデータやシリアル番号を格納しても良い。
 記録情報10040は、ブロックチェーンシステムにより内容を保証する対象であり、例えば仮想通貨の場合は送金額、スマートコントラクトの場合は契約内容などが含まれる。
 生成日時10050は、既存トランザクション10010を生成した日時を示す。
 ハッシュ値10060は、既存トランザクションの前のトランザクション全体をハッシュ関数へ入力することで得られるハッシュ値である。
 ユーザAの署名10070は、既存トランザクションの内容(10020~10050)と、ハッシュ値10060をハッシュ関数に入力して総合ハッシュ値を算出し、当該総合ハッシュ値に対して、ユーザAの秘密鍵で署名を生成したものである。
 新トランザクション10110は、既存トランザクション10010の次に生成したトランザクションであり、ユーザBからユーザCへの取引を示す。
 新トランザクション10110に含まれる、ユーザBの公開鍵証明書10120と、ユーザCの公開テンプレート証明書10130と、記録情報10140と、生成日時10150と、前のトランザクションのハッシュ値10160と、ユーザBの署名10170は、それぞれ既存トランザクション10010におけるユーザAの公開鍵証明書10020、ユーザBの公開テンプレート証明書10030、記録情報10040、生成日時10050、ハッシュ値10060、ユーザAの署名10070と同様である。
 新トランザクション10110は、ステップS5050で生成された後、ステップS4220で検証される。新トランザクション検証時には、まず、検証端末1100は、ユーザCの公開テンプレート証明書10130を認証局の公開鍵を用いて正当性を検証し、その後ユーザBの公開テンプレート証明書10030を用いてユーザBの公開鍵証明書10120の正当性を検証し、その後ユーザBの公開鍵証明書10120を用いてユーザBの署名10170の正当性を検証する。この全ての検証に成功したとき、検証端末1100はトランザクションを承認する。
 公知のブロックチェーンシステムでは、既存トランザクションにユーザBの公開鍵を格納し、新トランザクションにユーザBの署名を格納した上で、それらを検証する。このため、既存トランザクションが生成された後、ユーザBが自らの秘密鍵を紛失した場合、新トランザクションに署名を打つことができず、継続的にトランザクションを生成することができなかった。
 本実施例1では、既存トランザクション10010にユーザBの公開テンプレート証明書10030を格納し、新トランザクション10110にユーザBの公開鍵証明書10120とユーザBの署名10170を格納した上で、それらを検証する。本実施例1におけるトランザクションの正当性の検証は、公開テンプレート証明書と公開鍵証明書、及び公開鍵証明書と署名、というように、2段階で構成されている。
 このような2段階の検証手順を採用することで、ユーザBは秘密鍵を紛失した場合でも、ユーザBの生体情報を鍵として用いることで、公開鍵証明書を再発行することができる。生体情報はユーザBの体内にある特徴であるため、通常の秘密鍵のように容易に紛失や漏洩が発生しにくい。
 このため、ユーザBは秘密鍵の紛失や漏洩により新たなトランザクションを生成できなくなるリスクを低減することが可能となる。また、通常時は秘密鍵のみを保持しておけば、公知のブロックチェーンシステムと同様にトランザクションを生成できるため、生体情報を利用しても前記従来例のようにユーザBの利便性が低下することもない。
 図11は、ブロックチェーンシステムにおける、署名端末1000及び公開テンプレートリポジトリ1200、検証端末1100のハードウェア構成を示すブロック図である。
 この図において、符号10はCPU(Central Processing Unit)、符号20は主記憶装置、符号30は補助記憶装置、符号40は入力装置、符号50は出力装置、符号60は通信装置である。
 CPU10は、公開テンプレート生成部1030、鍵ペア生成部1040、公開鍵証明書生成部1050、ハッシュ値生成部1061、署名生成部1070、新トランザクション生成部1071、公開鍵失効申請書生成部1080、公開鍵証明書検証部1120、署名検証部1140、公開テンプレート証明書生成部1220、公開鍵失効申請書検証部1230、証明書失効リスト生成部1240に対応するプログラムを実行する。
 主記憶装置20は、コンピュータのメモリに相当する装置であり、公開テンプレート生成部1030、鍵ペア生成部1040、公開鍵証明書生成部1050、ハッシュ値生成部1061、署名生成部1070、新トランザクション生成部1071、公開鍵失効申請書生成部1080、公開鍵証明書検証部1120、署名検証部1140、公開テンプレート証明書生成部1220、公開鍵失効申請書検証部1230、証明書失効リスト生成部1240に対応するプログラムを格納する。これらのプログラムをCPU10で実行することで、各々の処理が実現する。
 補助記憶装置30は、HDD(Hard Disk Drive)、SSD(Solid State Drive)などに代表される記憶装置であり、鍵格納部1091、公開テンプレート証明書格納部1092、公開テンプレート証明書格納部1290、証明書失効リスト格納部1291に相当する。各部が格納するデータは、補助記憶装置11030上のデータとして蓄積される。
 入力装置40は、センサやマウスキーボードなどを含む。出力装置50は、主記憶装置11020上の情報を出力するディスプレイなどを含む。通信装置60は、署名端末1000、公開テンプレートリポジトリ1200、検証端末1100がネットワーク100と通信する際に使用される。
 CPU10は、各機能部のプログラムに従って処理することによって、所定の機能を提供する機能部として稼働する。例えば、CPU10は、公開テンプレート生成プログラムに従って処理することで公開テンプレート生成部1030として機能する。他のプログラムについても同様である。さらに、CPU10は、各プログラムが実行する複数の処理のそれぞれの機能を提供する機能部としても稼働する。計算機及び計算機システムは、これらの機能部を含む装置及びシステムである。
 各機能を実現するプログラム、テーブル等の情報は、補助記憶装置30不揮発性半導体メモリ、ハードディスクドライブ、SSD(Solid State Drive)等の記憶デバイス、または、ICカード、SDカード、DVD等の計算機読み取り可能な非一時的データ記憶媒体に格納することができる。
 以上、実施例1によれば、ユーザの生体情報から公開テンプレート証明書を生成し、秘密鍵と公開鍵のペアを生成し、ユーザの生体情報を鍵として公開鍵へ生体署名を付与することで公開鍵証明書を生成し、ユーザの署名生成時に、秘密鍵を使ってメッセージに対して署名を付与し、署名検証時に、公開テンプレート証明書で公開鍵証明書の正当性を検証し、さらに公開鍵証明書でユーザの署名の正当性を検証し、鍵更新時に、再度秘密鍵と公開鍵のペアを生成し、生体情報を鍵として公開鍵へ署名を付与することで公開鍵証明書を再発行することが可能となる。
 また、トランザクション内に取引元の公開鍵証明書と、取引先の公開テンプレート証明書を含み、署名検証時には、既存(第1の)トランザクション10010の公開テンプレート証明書10030を用いて新(第2の)トランザクション10110の公開鍵証明書10120の正当性を検証し、その後、新トランザクション10110に含まれる公開鍵証明書10120を用いて、新トランザクション10110に含まれるユーザ署名10170の正当性を検証することで、ブロックチェーンシステムを構築できる。
 さらに、公開テンプレート証明書に対して認証局の秘密鍵による署名を付与し、署名検証時には、認証局の秘密鍵に対応する認証局の公開鍵で正当性を検証することが可能となる。
 第2の実施例は、ブロックチェーンシステムのユーザが自らの秘密鍵の紛失または漏洩時に、署名端末1000で秘密鍵を失効させて新たな秘密鍵を再発行して、継続的にブロックチェーンシステムを利用することを可能とするシステムを、公開テンプレートリポジトリ1200を利用せずに構成するものである。
 前記実施例1では、公開テンプレートリポジトリ1200を信頼できる第三者機関としておき、公開テンプレートリポジトリ1200を介して公開テンプレート証明書や証明書失効リストの発行を行った。
 このようなブロックチェーンシステムは、公開テンプレートリポジトリ1200が認証局として機能することで、信頼性の高い公開テンプレート証明書や証明書失効リストを発行することができた。しかしながら、ブロックチェーンシステムは信頼できる第三者機関を置かずに低コストでトランザクションの管理を実現することも望まれており、運用に一定のコストを要する認証局の構築を行った場合、ブロックチェーンシステムの運用コストは増大する。
 そこで本実施例2では、公開テンプレートリポジトリ1200を利用せずに、前記実施例1と同様に秘密鍵の紛失または漏洩時に、秘密鍵を失効させて新たな秘密鍵を再発行し、継続的にトランザクション生成を可能とする。本実施例2は、前記実施例1の図2、図6、図7の処理と、図9A~図9Cのデータを変更し、図1の公開テンプレートリポジトリ1200と図9Dの証明書失効リストを削除した。その他の構成は前記実施例1と同様である。以下、前記実施例1との差分について説明する。
 図12は、実施例2のブロックチェーンシステムの一例を示すブロック図である。図12のブロックチェーンシステムにおいて、前記実施例1の公開テンプレートリポジトリ1200で稼働していた公開テンプレート証明書生成部を署名端末1000で稼働させ、公開鍵失効申請書9200を署名端末1000で保持する点が前記実施例1と相違する。
 図13は、実施例2の公開テンプレート証明書の初期登録の処理の一例を示すフローチャートである。本実施例2では、前記実施例1の図2の処理から公開テンプレートリポジトリ1200の処理を削除し、署名端末1000で公開テンプレート証明書の生成処理を実行する。
 ステップS2010では、前記実施例1と同様に署名端末1000が初期登録を行う。次に、公開テンプレート証明書生成部1090がステップS2035で公開テンプレート証明書を生成する。この処理は、公開テンプレート証明書生成部1090が公開テンプレートに対して署名を付与して公開テンプレート証明書を生成する。そして、ステップS2040では、公開テンプレート証明書生成部1090が公開テンプレート証明書を公開テンプレート証明書格納部1092へ登録する。
 図15は、実施例2の公開テンプレート証明書9000の一例を示す図である。実施例2の公開テンプレート証明書9000は、前記実施例1の図9Aの公開テンプレートシリアル番号9020を削除したものである。
 発行者9040は、公開テンプレート証明書を発行する主体として、前記実施例1の認証局に代わって署名端末1000の識別子を格納する。また、公開テンプレート証明書の署名値9091は、認証局の署名に替わり、ユーザの生体情報(公開テンプレート)を鍵とする生体署名とする。このように公開テンプレート証明書に対して自己の生体署名を付与することで、第三者の改ざんを検知できるようになる。
 また、前記実施例1の図6に示したトランザクション検証(S4220)では、公開テンプレート証明書検証S6010において、署名値9091を認証局の公開鍵を用いて検証した。本実施例2では、署名値9091を、公開テンプレート9080を用いて正当性を検証する。これにより、公開テンプレート証明書が改ざんされていないことが検証できる。本実施例2におけるS6020以降の処理は、実施例1と同様である。
 図14は、実施例2の公開鍵証明書を失効させ処理の一例を示すフローチャートである。前記実施例1の図7では、公開テンプレートリポジトリ1200において公開鍵失効申請書の正当性の検証(S7120)を行い、検証に成功したときに証明書失効リストを発行した(S7140)。
 本実施例2では、公開テンプレートリポジトリ1200を削除したので、署名端末1000がステップS7050にて公開鍵失効申請書を生成する。検証端末1100は、生成した公開鍵失効申請書を格納しておき、トランザクションの検証時に活用する。
 図16は、実施例2の公開鍵証明書9100を示す図である。
 本実施例2では、前記実施例1の図9Bに示した公開鍵証明書9100の公開テンプレートシリアル番号9120を公開テンプレート証明書に含めず、代わりに公開テンプレート9120Aに公開テンプレート9080そのもの、または公開テンプレートのハッシュ値を格納する。その他の構成は前記実施例1と同様である。
 図17は、実施例2の公開鍵失効申請書9200を示す図である。
 本実施例2では、前記実施例1の図9Cに示した公開鍵失効申請書9200の公開テンプレートシリアル番号9210を公開失効申請書に含めず、代わりに公開テンプレート9210Aに公開テンプレート9080そのもの、または公開テンプレートのハッシュ値を格納する。その他の構成は前記実施例1と同様である。
 また、本実施例2では、前記実施例1の図9Dに示した証明書失効リスト9300を発行しない。
 以上のように処理の手順を変更することで、本実施例2では公開テンプレートリポジトリ1200を利用せずに、秘密鍵の紛失や漏洩時にも継続的に利用できるブロックチェーンシステムを実現する。
 実施例2によれば、公開テンプレートを用いて公開テンプレート証明書に含まれる生体署名の正当性を検証することで、認証局を使用しないブロックチェーンシステムでもユーザの生体情報によって各証明書の正当性を検証することができ、認証局に要するコストを削減することが可能となる。
 第3の実施例は、前記実施例1のブロックチェーンシステムに生体情報を取得して鍵ペアと公開テンプレートを生成する登録端末を加えたブロックチェーンシステムを示す。図18は、実施例3のブロックチェーンシステムの一示すブロック図である。
 ブロックチェーンシステムは、ユーザA~Cの鍵と公開テンプレート証明書を登録する登録端末1400と、トランザクションの正当性を検証する検証端末1100と、公開テンプレート証明書を生成する公開テンプレートリポジトリ1200と、トランザクションを生成するユーザ端末1300-A~1300-Cがネットワーク100を介して接続される。
 検証端末1100と公開テンプレートリポジトリ1200は、前記実施例1と同様である。ユーザ端末1300-A~1300-Cは、前記実施例1の署名端末1000と同様であり、ユーザ端末の全体を符号1300で表す。
 登録端末1400は、前記実施例1の署名端末1000からトランザクションを生成するための機能部を省略したもので、図1に示した記録情報取得部1060、署名生成部1070、ハッシュ値生成部1061、新トランザクション生成部1071を省略した。その他の構成は前記実施例1と同様である。
 本実施例3のブロックチェーンシステムでは、ブロックチェーンシステムのユーザA~Cは、まず、登録端末1400で生体情報を取得して公開テンプレート証明書と鍵を登録する。次に、登録端末1400から各ユーザA~Cが使用するユーザ端末1300-A~1300-Cに各自の鍵と各証明書を送信して格納する。その後、各ユーザは公開鍵などの送受信を行ってからトランザクションの送信を行う。なお、鍵ペアと証明書の送信は、オフラインで行うようにしても良い。また、前記実施例1と同様に、公開鍵証明書をユーザ端末1300で生成するようにしてもよい。
 図19は、ブロックチェーンシステムで行われる登録処理の一例を示すシーケンス図である。この処理は、前記実施例1の図2、図3と同様で、ユーザがブロックチェーンシステムを利用する初回に行う登録処理である。以下ではユーザAの登録処理の一例を示す。
 まず、登録端末1400では生体情報取得部1020が、ユーザAの生体情報を取得する(S301)。
 公開テンプレート生成部1030は、ステップS301で取得した生体情報に対して一方向性変換を施すことで、公開テンプレートを生成する(S302)。公開テンプレート生成部1030は、生成した公開テンプレートを公開テンプレートリポジトリ1200へ送信する(S303)。
 登録端末1400の鍵ペア生成部1040は、秘密鍵と公開鍵の鍵ペアを生成する(S304)。
 登録端末1400の公開鍵証明書生成部1050は、生成した公開鍵に対して、ステップS301で取得した生体情報を鍵とする生体署名を付与することで、公開鍵証明書を生成する(S305)。
 登録端末1400は、秘密鍵、公開鍵および公開鍵証明書を鍵格納部1091に格納する(S306)。
 次に、公開テンプレートリポジトリ1200では、公開テンプレート証明書生成部1220は受信した公開テンプレートに署名を付与して公開テンプレート証明書を生成する(S309)。本実施例3は前記実施例1と同様に認証局の秘密鍵を用いて署名する。
 公開テンプレートリポジトリ1200は、生成した公開テンプレート証明書を公開テンプレート証明書格納部1290へ登録し(S310)、さらに、公開テンプレート証明書を登録端末1400に送信する(S311)。登録端末1400は、公開テンプレート証明書を受信すると、公開テンプレート証明書格納部1092へ登録する(S307)。
 次に、登録端末1400は、ユーザAが利用するユーザ端末1300-Aに、鍵ペアと公開鍵証明書と公開テンプレート証明書を送信する(S308)。ユーザ端末1300-Aは、受信した鍵ペアと公開鍵証明書を鍵格納部1091へ登録し、公開テンプレート証明書を公開テンプレート証明書格納部1092へ登録する(S312)。
 次に、ユーザ端末1300-Aは、トランザクションを送信するユーザ端末1300-B等へ公開鍵と公開テンプレートを送信する(S313)。ユーザ端末1300-Aは、受信した公開鍵と公開テンプレートを格納へ登録する(S314)。
 以上により、鍵ペアと公開鍵証明書が生成されて登録処理が完了し、トランザクションを送受する準備が完了する。
 図20は、ブロックチェーンシステムで行われるトランザクションの検証処理の一例を示すシーケンス図である。この処理は、前記実施例1の図4~図6と同様であり、図20では、ユーザBが送信した既存トランザクションをユーザAが受信し、ユーザAが新たなトランザクションを生成してユーザCに送信する際に検証を行う例を示す。
 まず、ユーザ端末1300-Bが既存トランザクションを送信し、ユーザ端末1300-Aが受信する(S401)。なお、トランザクションの送信は、ブロックチェーンシステム内でブロードキャストし、公開鍵や公開テンプレートの送信にはP2Pネットワークを利用する。
 ユーザ端末1300-Aは、既存トランザクションにユーザAの署名を加えて新たなトランザクションを生成し(S402)、ユーザ端末1300-Cを宛て先としてブロードキャストする(S403)。検証端末1100は、ブロードキャストされた新トランザクションを受信して検証を開始する。
 検証端末1100は、新トランザクションに含まれる公開テンプレート証明書の正当性を検証する(S404)。公開テンプレート証明書には、認証局の秘密鍵で生成した署名値が付与されており、検証端末1100では当該署名値を認証局の公開鍵を用いて正当性を検証する。これにより、検証端末1100は、公開テンプレート証明書が確かに認証局によって発行されたものであることを検証できる。
 次に、検証端末1100は、新トランザクションに含まれる公開鍵証明書を、既存トランザクションに含まれる公開テンプレート証明書を用いて正当性を検証する(S405)。公開鍵証明書には生体情報を鍵とする生体署名が付与されている。この生体署名が、確かに本人が付与したものか否かを、公開テンプレート証明書を用いて正当性を検証する。
 これにより、検証端末1100は、既存トランザクションに含まれる公開テンプレート証明書を生成したユーザと、新トランザクションに含まれる公開鍵証明書を生成したユーザが同一であることが検証できる。さらに、ステップS405では、公開鍵証明書が証明書失効リスト9300に含まれていないことを検証する。
 次に、検証端末1100では、署名の正当性の検証を行う(S406)。この処理は、前記実施例1に示した図6のステップS6050~6070と同様であり、検証端末1100はハッシュ値を生成して、生成したハッシュ値と公開鍵証明書を用いて、署名の正当性を検証する。
 検証端末1100は、公開テンプレート証明書と公開鍵証明書及び署名の検証結果をユーザ端末1300-A、1300-Cに通知する。
 以上により、検証端末1100は、トランザクションの内容を検証することができる。
 図21は、ブロックチェーンシステムで行われる鍵の再発行処理の一例を示すシーケンス図である。この処理は、前記実施例1の図7、図8と同様であり、図21では、ユーザAが秘密鍵を紛失した例を示す。
 ユーザ端末1300-AのユーザAは、秘密鍵を紛失したので(S501)、登録端末1400で鍵の再発行処理を開始する。登録端末1400は、ユーザAの公開鍵証明書と公開テンプレート証明書を鍵格納部1091及び公開テンプレート証明書格納部1092から取得して公開鍵失効申請書を生成し(S502)、公開テンプレートリポジトリ1200へ送信する(S503)。
 公開テンプレートリポジトリ1200は、公開鍵失効申請書の正当性を検証する(S503)。この検証は、公開テンプレートリポジトリ1200が、公開鍵失効申請書に付与された署名値が正しいことを、公開テンプレート証明書を用いて検証する。検証が成功した場合、公開テンプレートリポジトリ1200は、公開鍵失効リストを発行する(S504)。公開テンプレートリポジトリ1200は、公開鍵失効リストを証明書失効リスト格納部1291へ登録し、登録端末1400に送信する。
 登録端末1400は、公開鍵失効リストを受信した後に、ユーザAの生体情報を取得する(S505)。登録端末1400は、公開テンプレート証明書の生体署名を用いて、公開テンプレート証明書を生成した際に元にした生体情報と、取得した生体情報とが同一人物から取得したものであるかを検証し、同一人物の場合は検証成功とする。
 検証が成功した場合には、登録端末1400が、前記実施例1と同様に鍵ペアを生成し(S507)、公開鍵に署名を付与して公開鍵証明書を生成する(S508)。登録端末1400は、鍵ペアと公開鍵証明書を鍵格納部1091へ登録してから(S509)、鍵ペアと公開鍵証明書をユーザAのユーザ端末1300-Aに送信する(S510)。
 ユーザ端末1300-Aは、古い鍵ペアと公開鍵証明書を削除し、受信した新たな鍵ペアと公開鍵証明書を鍵格納部1091へ登録する(S511)。次に、ユーザ端末1300-Aは、トランザクションの送受を行うユーザ端末1300-Bに公開鍵を送信する(S512)。
 ユーザ端末1300-Bは、ユーザAの古い公開鍵を削除して、新たに受信した公開鍵を鍵格納部1091へ登録する(S513)。
 以上のように、本実施例3では、登録端末1400を用いて取得したユーザの生体情報を鍵として公開鍵へ署名を付与することで公開鍵証明書を再発行することができる。本実施例3では、例えば、ブロックチェーンシステムを管理する組織に登録端末1400を設置して、ブロックチェーンシステムの管理者などがユーザの本人確認を行ってから生体情報を取得することが可能となる。これにより、本人のなりすましによる登録を抑制することができる。
 なお、登録端末1400と公開テンプレートリポジトリ1200は、ひとつの計算機で構成することができる。この場合、登録部(公開鍵証明書生成部1450、公開テンプレート証明書生成部1220、公開鍵失効申請書生成部1080)をひとつの計算機で提供することができる。あるいは、登録端末1400と公開テンプレートリポジトリ1200と検証端末1100を、ひとつの計算機で構成してもよい。この場合、登録部と検証部(公開鍵証明書検証部1120)をひとつの計算機で提供することができる。
 第4の実施例は、前記実施例1または実施例3のブロックチェーンシステムのトランザクションの一部を変更したもので、その他の構成は前記実施例1または実施例3と同様である。
 図22は、実施例4のブロックチェーンのデータ構造の一例を示すブロック図である。前記実施例1の図10に示したトランザクションのうち、公開テンプレート証明書10030、10130に代わって、公開テンプレートシリアル番号(S/N)10031、10131を用いるようにした点が、本実施例4における変更点である。
 公開テンプレートシリアル番号10031(10131)は、公開テンプレートリポジトリ1200の公開テンプレート証明書の生成時に、公開テンプレート証明書に対応付けた値として付与することができる。あるいは、登録端末1400で公開テンプレートを生成する際に、公開テンプレートに対応付けた値として付与することができる。公開テンプレートシリアル番号10031(10131)は、ブロックチェーンシステム内でユニークな識別子であれば良い。
 なお、公開テンプレートリポジトリ1200は、公開テンプレート証明書と公開テンプレートシリアル番号を関連付けて公開テンプレート証明書格納部1290へ格納する。
 既存トランザクション10010や新トランザクション10110の正当性を検証する際には、例えば、検証端末1100が、公開テンプレートシリアル番号10031(10131)に対応する公開テンプレート証明書を公開テンプレートリポジトリ1200に要求すればよい。
 以上のように、公開テンプレート証明書に代わって、ユーザを特定する識別子として公開テンプレートシリアル番号10031(10131)をトランザクションに設定することでトランザクションのサイズを抑制する。そして、検証端末1100では、トランザクションを受け付けると、公開テンプレートシリアル番号10031を取得して公開テンプレートリポジトリ1200に検索させて取得することができる。
 <まとめ>
 なお、本発明は上記した実施例に限定されるものではなく、様々な変形例が含まれる。例えば、上記した実施例は本発明を分かりやすく説明するために詳細に記載したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、ある実施例の構成の一部を他の実施例の構成に置き換えることが可能であり、また、ある実施例の構成に他の実施例の構成を加えることも可能である。また、各実施例の構成の一部について、他の構成の追加、削除、又は置換のいずれもが、単独で、又は組み合わせても適用可能である。
 また、上記の各構成、機能、処理部、及び処理手段等は、それらの一部又は全部を、例えば集積回路で設計する等によりハードウェアで実現してもよい。また、上記の各構成、及び機能等は、プロセッサがそれぞれの機能を実現するプログラムを解釈し、実行することによりソフトウェアで実現してもよい。各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリや、ハードディスク、SSD(Solid State Drive)等の記録装置、または、ICカード、SDカード、DVD等の記録媒体に置くことができる。
 また、制御線や情報線は説明上必要と考えられるものを示しており、製品上必ずしも全ての制御線や情報線を示しているとは限らない。実際には殆ど全ての構成が相互に接続されていると考えてもよい。

Claims (15)

  1.  プロセッサとメモリを備えた計算機で署名を検証する署名検証システムであって、
     ユーザの生体情報を取得する生体情報取得部と、
     前記生体情報に所定の処理を加えて公開テンプレート証明書を生成する公開テンプレート証明書生成部と、
     秘密鍵と公開鍵のペアを生成する鍵ペア生成部と、
     前記生体情報を鍵として前記公開鍵へ生体署名を付与することで公開鍵証明書を生成する公開鍵証明書生成部と、
     前記公開テンプレート証明書と前記公開鍵証明書と署名を含むトランザクションを受け付けて、前記公開テンプレート証明書で前記公開鍵証明書の正当性を検証し、さらに前記公開鍵証明書で前記署名を検証する検証部と、
    を有することを特徴とする署名検証システム。
  2.  請求項1に記載の署名検証システムであって、
     前記トランザクションは、
     取引元の公開鍵証明書と取引先の公開テンプレート証明書とを含み、
     前記検証部は、
     第1のトランザクションの次に第2のトランザクションを受け付けて、前記第1のトランザクションの公開テンプレート証明書を用いて前記第2のトランザクションの公開鍵証明書を検証し、前記第2のトランザクションに含まれる公開鍵証明書を用いて前記第2のトランザクションに含まれる署名を検証することを特徴とする署名検証システム。
  3.  請求項1に記載の署名検証システムであって、
     前記公開テンプレート証明書を第1の識別子と対応付けて格納する公開テンプレート証明書格納部をさらに有し、
     前記トランザクションは、
     前記公開テンプレート証明書に代わって、前記第1の識別子を格納し、
     前記検証部は、
     前記トランザクションの第1の識別子を取得して、前記公開テンプレート証明書格納部から前記第1の識別子に対応する公開テンプレート証明書を取得することを特徴とする署名検証システム。
  4.  請求項1に記載の署名検証システムであって、
     前記トランザクションは、
     前記公開テンプレート証明書に認証局の秘密鍵で生成した署名値を含み、
     前記検証部は、
     前記認証局の公開鍵を用いて前記公開テンプレート証明書の前記署名値を検証することを特徴とする署名検証システム。
  5.  請求項1に記載の署名検証システムであって、
     前記トランザクションは、
     前記公開テンプレート証明書に生体情報を鍵とする署名値と、前記生体情報から生成された公開テンプレートを含み、
     前記検証部は、
     前記トランザクションから前記公開テンプレートを取得し、当該公開テンプレートを用いて前記公開テンプレート証明書の前記署名値を検証することを特徴とする署名検証システム。
  6.  請求項1に記載の署名検証システムであって、
     前記公開鍵証明書を特定する第2の識別子と、前記生体情報を鍵とする生体署名を付与した公開鍵失効申請書を発行する公開鍵失効申請書生成部をさらに有することを特徴とする署名検証システム。
  7.  請求項6に記載の署名検証システムであって、
     前記公開鍵証明書生成部は、
     前記発行された公開鍵失効申請書に対応する公開テンプレート証明書を取得し、前記公開テンプレート証明書を利用するユーザの生体情報を取得し、前記公開テンプレート証明書を生成した生体情報と前記取得した生体情報が一致していれば、新たな鍵ペアと新たな公開鍵証明書を生成することを特徴とする署名検証システム。
  8.  請求項1に記載の署名検証システムであって、
     前記計算機は、
     鍵ペアと公開鍵証明書を生成する登録端末と、トランザクションを受け付け検証する検証端末と、公開テンプレート証明書を生成する公開テンプレートリポジトリと、を含み。
     前記登録端末は、前記生体情報取得部と、前記鍵ペア生成部と、前記公開鍵証明書生成部とを有し、
     前記検証端末は、前記検証部を有し、
     前記公開テンプレートリポジトリは、前記公開テンプレート証明書生成部を有することを特徴とする署名検証システム。
  9.  プロセッサとメモリを備えた計算機で署名を検証する署名検証方法であって、
     前記計算機が、ユーザの生体情報を取得する第1のステップと、
     前記計算機が、前記生体情報に所定の処理を加えて公開テンプレート証明書を生成する第2のステップと、
     前記計算機が、秘密鍵と公開鍵のペアを生成する第3のステップと、
     前記計算機が、前記生体情報を鍵として前記公開鍵へ生体署名を付与することで公開鍵証明書を生成する第4のステップと、
     前記計算機が、前記公開テンプレート証明書と前記公開鍵証明書と署名を含むトランザクションを受け付ける第5のステップと、
     前記計算機が、前記トランザクションに含まれる前記公開テンプレート証明書で前記公開鍵証明書の正当性を検証し、さらに前記公開鍵証明書で前記署名を検証する第6のステップと、
    を含むことを特徴とする署名検証方法。
  10.  請求項9に記載の署名検証方法であって、
     前記トランザクションは、
     取引元の公開鍵証明書と取引先の公開テンプレート証明書とを含み、
     前記第5のステップは、
     第1のトランザクションの次に第2のトランザクションを受け付けて、
     前記第6のステップは、
     前記第1のトランザクションの公開テンプレート証明書を用いて前記第2のトランザクションの公開鍵証明書を検証し、前記第2のトランザクションに含まれる公開鍵証明書を用いて前記第2のトランザクションに含まれる署名を検証することを特徴とする署名検証方法。
  11.  請求項9に記載の署名検証方法であって、
     前記第2のステップは、
     前記公開テンプレート証明書を第1の識別子と対応付けて公開テンプレート証明書格納部へ格納し、
     前記トランザクションは、
     前記公開テンプレート証明書に代わって、前記第1の識別子を格納し、
     前記第6のステップは、
     前記トランザクションの第1の識別子を取得して、前記公開テンプレート証明書格納部から前記第1の識別子に対応する公開テンプレート証明書を取得することを特徴とする署名検証方法。
  12.  請求項9に記載の署名検証方法であって、
     前記トランザクションは、
     前記公開テンプレート証明書に認証局の秘密鍵で生成した署名値を含み、
     前記第6のステップは、
     前記認証局の公開鍵を用いて前記公開テンプレート証明書の前記署名値を検証することを特徴とする署名検証方法。
  13.  請求項9に記載の署名検証方法であって、
     前記トランザクションは、
     前記公開テンプレート証明書に生体情報を鍵とする署名値と、前記生体情報から生成された公開テンプレートを含み、
     前記第6のステップは、
     前記トランザクションから前記公開テンプレートを取得し、当該公開テンプレートを用いて前記公開テンプレート証明書の前記署名値を検証することを特徴とする署名検証方法。
  14.  請求項9に記載の署名検証方法であって、
     前記計算機が、前記公開鍵証明書を特定する第2の識別子と、前記生体情報を鍵とする生体署名を付与した公開鍵失効申請書を発行する第7のステップをさらに含むことを特徴とする署名検証方法。
  15.  プロセッサとメモリを備えた計算機を制御するプログラムを格納した記憶媒体であって、
     トランザクションに含めるメッセージを取得する第1のステップと、
     前記トランザクションに含まれる情報のハッシュ値を生成する第2のステップと、
     前記ハッシュ値に対して予め生成した秘密鍵を用いて署名を付与する第3のステップと、
     生体情報に所定の処理を加えて予め生成された公開テンプレート証明書を取得する第4のステップと、
     前記生体情報を鍵として前記秘密鍵に対応する公開鍵へ生体署名を付与した公開鍵証明書を取得する第5のステップと、
     前記公開テンプレート証明書と、前記公開鍵証明書と、前記メッセージと、前記署名とを含むトランザクションを生成する第6のステップと、
    を前記計算機に実行させるためのプログラムを格納した非一時的な計算機読み取り可能な記憶媒体。
PCT/JP2017/018291 2016-07-21 2017-05-16 署名検証システム、署名検証方法及び記憶媒体 WO2018016160A1 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
SG11201900414WA SG11201900414WA (en) 2016-07-21 2017-05-16 Signature verification system, signature verification method, and storage medium
US16/318,501 US11018876B2 (en) 2016-07-21 2017-05-16 Signature verification system, signature verification method, and storage medium

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2016-143152 2016-07-21
JP2016143152A JP6550353B2 (ja) 2016-07-21 2016-07-21 署名検証システム、署名検証方法及びプログラム

Publications (1)

Publication Number Publication Date
WO2018016160A1 true WO2018016160A1 (ja) 2018-01-25

Family

ID=60993324

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2017/018291 WO2018016160A1 (ja) 2016-07-21 2017-05-16 署名検証システム、署名検証方法及び記憶媒体

Country Status (4)

Country Link
US (1) US11018876B2 (ja)
JP (1) JP6550353B2 (ja)
SG (1) SG11201900414WA (ja)
WO (1) WO2018016160A1 (ja)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109067553A (zh) * 2018-10-17 2018-12-21 杭州趣链科技有限公司 一种基于智能合约的区块链分布式证书的管理方法
WO2019163040A1 (ja) * 2018-02-22 2019-08-29 株式会社ゼタント アクセス管理システム、及びそのプログラム
JP2019219780A (ja) * 2018-06-18 2019-12-26 Necソリューションイノベータ株式会社 個人情報管理システム、サービス提供システム、方法およびプログラム
JP2020035106A (ja) * 2018-08-28 2020-03-05 株式会社リップル・マーク 仮想通貨管理システム、仮想通貨管理方法及び仮想通貨管理プログラム
JP2020123856A (ja) * 2019-01-30 2020-08-13 株式会社日立製作所 署名システム、署名方法及びプログラム
JPWO2021038684A1 (ja) * 2019-08-26 2021-03-04
JP2021103518A (ja) * 2019-12-24 2021-07-15 バイドゥ オンライン ネットワーク テクノロジー (ベイジン) カンパニー リミテッド プライバシーデータの処理方法、プライバシーデータの処理装置、機器及び媒体

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR3054905B1 (fr) * 2016-08-04 2019-10-18 Safran Identity & Security Procede de generation de cle et procede de controle d'acces
EP3613171B1 (en) * 2017-05-30 2021-06-30 Siemens Aktiengesellschaft Industrial network using a blockchain for access control, and access control method
JP6340120B1 (ja) * 2017-06-16 2018-06-06 アイビーシー株式会社 デバイスプロビジョニングシステム
CN107508680B (zh) * 2017-07-26 2021-02-05 创新先进技术有限公司 数字证书管理方法、装置及电子设备
FR3070077A1 (fr) * 2017-08-09 2019-02-15 Orange Procede et serveur de certification d'un document electronique
US11018870B2 (en) * 2017-08-10 2021-05-25 Visa International Service Association Biometric verification process using certification token
US10938572B2 (en) * 2018-01-10 2021-03-02 International Business Machines Corporation Revocable biometric-based keys for digital signing
JP6841781B2 (ja) * 2018-03-12 2021-03-10 株式会社日立製作所 認証サーバ装置、認証システム及び認証方法
US11700132B2 (en) * 2018-05-02 2023-07-11 Cable Television Laboratories, Inc. Systems and methods for secure event and log management
CN109146481B (zh) * 2018-08-23 2020-09-08 泰链(厦门)科技有限公司 区块链钱包的账户私钥自动导入方法、介质、装置及区块链系统
JP6952661B2 (ja) * 2018-08-30 2021-10-20 株式会社東芝 情報処理装置、通信機器、情報処理システム、情報処理方法、および情報処理プログラム
CN112970040A (zh) * 2018-09-28 2021-06-15 谢尔特纵姆公司 智能合约
JP7032296B2 (ja) * 2018-12-26 2022-03-08 株式会社日立製作所 トランザクション判定装置、トランザクション判定方法、及びトランザクション判定プログラム
JP6650157B1 (ja) 2019-05-08 2020-02-19 株式会社モールサービス 情報管理システム、情報管理方法及び情報管理プログラム
JP7294431B2 (ja) * 2019-09-18 2023-06-20 日本電気株式会社 情報照合システム、クライアント端末、サーバ、情報照合方法、及び情報照合プログラム
CN110611569B (zh) * 2019-09-24 2022-06-14 腾讯科技(深圳)有限公司 一种认证方法及相关设备
WO2021116728A1 (en) * 2019-12-10 2021-06-17 Hitachi, Ltd. Method and apparatus creating test environments for blockchain systems
CN114710289B (zh) * 2022-06-02 2022-09-02 确信信息股份有限公司 物联网终端安全注册和接入方法及系统

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2009017198A1 (ja) * 2007-08-01 2009-02-05 Kabushiki Kaisha Toshiba 検証装置及びプログラム

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2377782A (en) * 2001-07-21 2003-01-22 Ibm Method and system for the communication of assured reputation information
US9832019B2 (en) * 2009-11-17 2017-11-28 Unho Choi Authentication in ubiquitous environment
JP5707311B2 (ja) 2011-12-12 2015-04-30 株式会社日立製作所 生体署名システム
FR2996942B1 (fr) * 2012-10-11 2016-01-08 Morpho Procede de generation de cle de signature ameliore

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2009017198A1 (ja) * 2007-08-01 2009-02-05 Kabushiki Kaisha Toshiba 検証装置及びプログラム

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
KENTA TAKAHASHI ET AL.: "Template kokaigata seitai ninsho kiban", THE 29TH SYMPOSIUM ON CRYPTOGRAPHY AND INFORMATION SECURITY (SCIS), 1F1-3, 30 January 2012 (2012-01-30), pages 1 - 8 *
YASUYUKI FUCHITA: "Tokushu : Innovation to Kin'yu block chain to kin'yu torihiki no kakushin", NOMURA CAPITAL MARKETS QUARTERLY, vol. 19, no. 2, 74, 1 November 2015 (2015-11-01), pages 11 - 35 *
YUTA YONEYAMA ET AL.: "Fuzzy signature scheme for biometric digital signature", THE 29TH SYMPOSIUM ON CRYPTOGRAPHY AND INFORMATION SECURITY (SCIS 2012), 4A1-1, 30 January 2012 (2012-01-30), pages 1 - 7, XP055281883 *

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019163040A1 (ja) * 2018-02-22 2019-08-29 株式会社ゼタント アクセス管理システム、及びそのプログラム
JPWO2019163040A1 (ja) * 2018-02-22 2021-01-07 株式会社ゼタント アクセス管理システム、及びそのプログラム
JP2019219780A (ja) * 2018-06-18 2019-12-26 Necソリューションイノベータ株式会社 個人情報管理システム、サービス提供システム、方法およびプログラム
JP2020035106A (ja) * 2018-08-28 2020-03-05 株式会社リップル・マーク 仮想通貨管理システム、仮想通貨管理方法及び仮想通貨管理プログラム
CN109067553B (zh) * 2018-10-17 2021-06-25 杭州趣链科技有限公司 一种基于智能合约的区块链分布式证书的管理方法
CN109067553A (zh) * 2018-10-17 2018-12-21 杭州趣链科技有限公司 一种基于智能合约的区块链分布式证书的管理方法
JP2020123856A (ja) * 2019-01-30 2020-08-13 株式会社日立製作所 署名システム、署名方法及びプログラム
JP7061083B2 (ja) 2019-01-30 2022-04-27 株式会社日立製作所 署名システム、署名方法及びプログラム
JPWO2021038684A1 (ja) * 2019-08-26 2021-03-04
WO2021038684A1 (ja) * 2019-08-26 2021-03-04 日本電気株式会社 情報処理装置、ノード、データ記録方法及びコンピュータ可読媒体
JP7302664B2 (ja) 2019-08-26 2023-07-04 日本電気株式会社 情報処理装置、データ記録システム、データ記録方法及びプログラム
JP2021103518A (ja) * 2019-12-24 2021-07-15 バイドゥ オンライン ネットワーク テクノロジー (ベイジン) カンパニー リミテッド プライバシーデータの処理方法、プライバシーデータの処理装置、機器及び媒体
JP7069286B2 (ja) 2019-12-24 2022-05-17 バイドゥ オンライン ネットワーク テクノロジー(ペキン) カンパニー リミテッド プライバシーデータの処理方法、プライバシーデータの処理装置、機器及び媒体

Also Published As

Publication number Publication date
JP2018014622A (ja) 2018-01-25
JP6550353B2 (ja) 2019-07-24
US11018876B2 (en) 2021-05-25
SG11201900414WA (en) 2019-02-27
US20190238344A1 (en) 2019-08-01

Similar Documents

Publication Publication Date Title
WO2018016160A1 (ja) 署名検証システム、署名検証方法及び記憶媒体
CN109951489B (zh) 一种数字身份认证方法、设备、装置、系统及存储介质
US11917074B2 (en) Electronic signature authentication system based on biometric information and electronic signature authentication method
KR101863953B1 (ko) 전자 서명 서비스 시스템 및 방법
CN114553439B (zh) 基于身份信息的加密密钥管理
JP2021517412A (ja) デジタル証明書の検証方法並びにその、装置、コンピュータ機器並びにコンピュータプログラム
JP2007148470A (ja) 処理装置、補助情報生成装置、端末装置、認証装置及び生体認証システム
JP7139414B2 (ja) 認証端末、認証装置、並びにこれを用いた認証方法及びシステム
JP2009037417A (ja) 検証装置及びプログラム
JP6609048B2 (ja) 生体署名システム及び生体証明書登録方法
KR101858653B1 (ko) 블록체인 데이터베이스 및 이와 연동하는 머클 트리 구조를 통해 모바일 아이디를 이용하여 사용자를 인증하는 방법, 단말 및 이를 이용한 서버
JP2020529745A (ja) 暗号動作のセキュアな実行
US11082236B2 (en) Method for providing secure digital signatures
JP6841781B2 (ja) 認証サーバ装置、認証システム及び認証方法
TW201729135A (zh) 認證裝置、認證系統以及認證程式產品
JP6852292B2 (ja) 証明書生成システム、情報処理装置、証明書生成装置、証明書生成方法、及びプログラム
JP6398483B2 (ja) 電子署名装置、電子署名システム、電子署名方法及びプログラム
JP7061083B2 (ja) 署名システム、署名方法及びプログラム
WO2024075647A1 (ja) 処理権限移譲システム及び処理権限移譲方法
JP7341207B2 (ja) 端末およびその制御方法、並びにプログラム
WO2022091902A1 (ja) Icカード、携帯可能電子装置及び発行装置
JP7416205B2 (ja) グループ管理装置、グループ管理方法及びプログラム
JP2023125727A (ja) テンプレート管理システム及びテンプレート管理方法
CN115776381A (zh) 基于区块链系统的密钥处理方法、装置、介质及电子设备

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 17830680

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 17830680

Country of ref document: EP

Kind code of ref document: A1