JP6826290B2 - 証明書配付システム、証明書配付方法、および証明書配付プログラム - Google Patents

証明書配付システム、証明書配付方法、および証明書配付プログラム Download PDF

Info

Publication number
JP6826290B2
JP6826290B2 JP2017007755A JP2017007755A JP6826290B2 JP 6826290 B2 JP6826290 B2 JP 6826290B2 JP 2017007755 A JP2017007755 A JP 2017007755A JP 2017007755 A JP2017007755 A JP 2017007755A JP 6826290 B2 JP6826290 B2 JP 6826290B2
Authority
JP
Japan
Prior art keywords
block
blockchain
public key
user
signature
Prior art date
Legal status (The legal status 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 status listed.)
Active
Application number
JP2017007755A
Other languages
English (en)
Other versions
JP2018117287A (ja
Inventor
芳樹 東角
芳樹 東角
健 鎌倉
健 鎌倉
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2017007755A priority Critical patent/JP6826290B2/ja
Publication of JP2018117287A publication Critical patent/JP2018117287A/ja
Application granted granted Critical
Publication of JP6826290B2 publication Critical patent/JP6826290B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本発明は、証明書配付システム、証明書配付方法、および証明書配付プログラムに関する。
ネットワークを介してユーザ間で取引を行うとき、通信相手の身元確認が行われる。ユーザの身元確認には、例えば電子証明書が用いられる。電子証明書は、信頼できる第三者により発行される、情報(例えば公開鍵)の所有者を証明する情報である。
電子証明書は、例えばブロックチェーンを使用したシステムでも利用されている。ブロックチェーンは、分散型のコンピュータネットワークにおいて、集中管理装置を置かずに信憑性のある合意に到達することを可能にする技術である。ここで合意とは、分散データベースにおいて、ユーザAとユーザBとの間の取引記録の整合性を取ることである。ブロックチェーンにおいて取引に関する情報を記録する場合、他人のなりすましを防ぐために、電子証明書が用いられる。例えば電子証明書によって所有者が証明された公開鍵で暗号化して取引に関するデータを送信すれば、その公開鍵の所有者が保持している秘密鍵を用いなければ、送信されたデータを復号することができない。従って、送信されたデータが、目的の相手に安全に送信される。このようにして、ネットワークを介した取引の安全性が保たれる。
なお、情報通信の安全性を向上させるために、様々な技術が開発されている。例えば、複数のセキュリティモジュール間で、セキュアメモリの使用量を抑えつつ、ツリー構造のカウンタを共有するカウンタの設定方法がある。また、異なるサービスプロバイダエンティティのネットワーク内では、加入者デバイスを使うことができないように保証するために、加入者デバイスを個別化するための方法がある。さらに、認証デバイスの距離に応じて、制御対象装置の操作可否を制御する制御方法もある。
特開2009−3855号公報 特表2013−531910号公報 特開2015−88804号公報
従来の技術では、公開鍵などの電子情報の所有者を証明するための電子証明書は、証明書管理用のサーバで集中管理される。そのため、取引を行うユーザは、端末装置を用いて、本人確認のために、適宜、証明書管理用のサーバにアクセスする。
このように、電子証明書がサーバで集中管理されていると、そのサーバに障害が発生した場合、電子証明書を利用した取引が停止してしまう。すなわち、電子証明書をサーバで集中管理していることが、システム全体の可用性(システムが継続して稼働できる能力)の低下を招いている。
1つの側面では、本件は、システムの可用性を向上させることを目的とする。
1つの案では、第1の端末装置、複数の第2の端末装置、および複数のブロックチェーンノードを有する証明書配付システムが提供される。
第1の端末装置は、ブロックチェーンによって複数のブロックを保持するネットワークへ、ユーザが所有する証明対象情報を含む第1ブロックの登録要求を出力する。複数の第2の端末装置は、ネットワークから、証明対象情報を含むブロックを、承認対象ブロックとして取得し、管理者からの入力に応じて、証明対象情報の登録承認を示す電子署名と承認対象ブロックとを含む第2ブロックの登録要求を、ネットワークへ出力する。複数のブロックチェーンノードは、ネットワークに属し、第1または第2ブロックの登録要求に応じて、第1または第2ブロックをブロックチェーンによって分散して保持し、保持した第2ブロックのなかに、包含する電子署名の数が所定数に達した署名数充足ブロックがある場合、証明対象情報の所有者を証明する電子証明書と署名数充足ブロックとを含む第3ブロックを、ブロックチェーンによって分散して保持する。
1態様によれば、システムの可用性が向上する。
第1の実施の形態に係る証明書配付システムの構成例を示す図である。 第2の実施の形態のネットワークシステムの構成の一例を示す図である。 第2の実施の形態に用いる端末装置のハードウェアの一構成例を示す図である。 第2の実施の形態におけるブロックチェーンネットワークの一例を示す図である。 端末装置とブロックチェーンノードとの機能の一例を示すブロック図である。 証明書の発行および無効化のブロックチェーンの一例を示す図である。 公開鍵登録用のブロックの作成例を示す図である。 最初の登録承認時のブロックの作成例を示す図である。 N番目の登録承認時のブロックの作成例を示す図である。 スマートコントラクトによる公開鍵証明書の作成例を示す図である。 公開鍵破棄時のブロックの作成例を示す図である。 スマートコントラクトによる公開鍵の無効化の例を示す図である。 公開鍵の使用例を示す図である。 公開鍵登録処理の手順の一例を示すシーケンス図である。 登録承認処理の手順の一例を示すシーケンス図である。 公開鍵証明書発行処理の手順の一例を示すシーケンス図である。 公開鍵の破棄処理の手順の一例を示すシーケンス図である。 公開鍵無効化処理の手順の一例を示すシーケンス図である。 公開鍵の使用手順の一例を示すシーケンス図である。 公開鍵登録画面の一例を示す図である。 登録承認画面の一例を示す図である。 公開鍵無効化画面の一例を示す図である。 第3の実施の形態における公開鍵登録用のブロックの作成例を示す図である。 第3の実施の形態における最初の登録承認時のブロックの作成例を示す図である。 第3の実施の形態におけるN番目の登録承認時のブロックの作成例を示す図である。 第3の実施の形態における公開鍵破棄時のブロックの作成例を示す図である。 第3の実施の形態におけるスマートコントラクトによる公開鍵の無効化の例を示す図である。 第3の実施の形態における公開鍵登録処理の手順の一例を示すシーケンス図である。 第3の実施の形態における登録承認処理の手順の一例を示すシーケンス図である。 第3の実施の形態における公開鍵証明書発行処理の手順の一例を示すシーケンス図である。 第3の実施の形態における公開鍵の破棄処理の手順の一例を示すシーケンス図である。 第3の実施の形態における公開鍵無効化処理の手順の一例を示すシーケンス図である。 第3の実施の形態における公開鍵使用手順の一例を示すシーケンス図である。
以下、本実施の形態について図面を参照して説明する。なお各実施の形態は、矛盾のない範囲で複数の実施の形態を組み合わせて実施することができる。
〔第1の実施の形態〕
まず第1の実施の形態について説明する。
図1は、第1の実施の形態に係る証明書配付システムの構成例を示す図である。第1の実施の形態では、ブロックチェーンによって複数のブロックを保持するネットワーク1が設けられている。ネットワーク1には、複数のブロックチェーンノード3a,3b,3cが含まれる。複数のブロックチェーンノード3a,3b,3cは、例えばプロセッサやメモリを有するコンピュータである。またネットワーク1には、複数の端末装置2a,2b,2cが接続されている。複数の端末装置2a,2b,2cは、例えばプロセッサやメモリを有するコンピュータである。
複数の端末装置2a,2b,2cのうち、例えば端末装置2aは、証明対象情報4aに対する電子証明書の発行を希望するユーザ8が使用する。証明対象情報4aは、例えばユーザ8が有する公開鍵である。また端末装置2b,2cは、例えばシステムの管理者9a,9bが使用する。
ここでユーザ8が、証明対象情報4aの所有者がユーザ8であることの電子証明書の発行を希望するものとする。その場合、ユーザ8は、端末装置2aに証明対象情報4aを入力し、端末装置2aに、証明対象情報4aのネットワーク1への登録を指示する。すると端末装置2aは、ユーザ8が所有する証明対象情報4aを含むブロック4(第1ブロック)を作成する。ブロック4には、例えばユーザ8の電子署名4b(所有者電子署名)が含まれる。電子署名4bは、例えば証明対象情報4aを、ユーザ8の秘密鍵で暗号化したものである。ブロック4に、ユーザ8を一意に特定する識別子を含めてもよい。
端末装置2aは、作成したブロック4の登録要求を、ネットワーク1内の複数のブロックチェーンノード3a,3b,3cのうちの1台に送信する。複数のブロックチェーンノード3a,3b,3cは、ブロック4の登録要求に応じて、ブロック4をブロックチェーンによって分散して保持する。
複数の第2の端末装置2b,2cは、ネットワーク1から、証明対象情報4aを含むブロック4,4−1(第2ブロック)を、承認対象ブロックとして取得する。そして複数の第2の端末装置2b,2cは、管理者9a,9bからの入力に応じて、証明対象情報4aの登録承認を示す電子署名5a,5nと承認対象ブロック4,4−1とを含むブロック4−1,4−2を作成する。すなわち承認対象ブロック4,4−1に電子署名5a,5nを付加したものが、新たなブロック4−1,4−2となる。
例えば管理者9a,9bは、承認対象ブロック4,4−1に含まれる証明対象情報4aの所有者がユーザ8であることを、オフラインなどの別の手続きによって確認し、確認できた場合に、登録承認の入力を行う。そして複数の第2の端末装置2b,2cは、ブロック4−1,4−2の登録要求を、ネットワーク1へ出力する。複数のブロックチェーンノード3a,3b,3cは、ブロック4−1,4−2の登録要求に応じて、ブロック4−1,4−2をブロックチェーンによって分散して保持する。
保持したブロック4,4−1,4−2のなかに、包含する電子署名5a,5nの数が所定数に達した署名数充足ブロックがある場合、そのことを、複数のブロックチェーンノード3a,3b,3cのうちの1台が検出する。図1の例では、ブロックチェーンノード3cが、ブロック4−2が署名数充足ブロックであると検出したものとする。するとブロックチェーンノード3cは、証明対象情報4aの所有者がユーザ8であることを証明する電子証明書6とブロック4−2とを含むブロック4−3(第3ブロック)を作成する。
例えばブロックチェーンノード3cは、証明書発行部7を有している。証明書発行部7は、例えばスマートコントラクトである。証明書発行部7は、証明対象情報4aに対して、証明書発行部7の電子署名6a(有効化用電子署名)付与し、電子証明書6とする。なお証明書発行部7の電子署名6aは、ブロックチェーンノード3cの電子署名でもある。そして複数のブロックチェーンノード3a,3b,3cが、作成されたブロック4−3をブロックチェーンによって分散して保持する。
電子証明書6が付与されたブロック4−3がブロックチェーンによって分散して保持されることで、証明対象情報4aが有効化される。すなわち、任意のユーザが、自身の使用する端末装置を用いてブロック4−3を参照できる。そしてブロック4−3内に含まれている電子証明書6により、ブロック4−3に含まれている証明対象情報4aの所有者がユーザ8であることを確認できる。
例えば、証明対象情報4aを使用するユーザが使用する端末装置(図示せず)は、ブロックチェーンノード3a,3b,3cから、ブロックチェーンノード3a,3b,3c自身の公開鍵(証明書発行部7の公開鍵)を取得する。そして端末装置は、取得した公開鍵により電子証明書6の正当性を検証する。例えば端末装置は、電子証明書6に含まれる電子署名を取得した公開鍵で復号する。端末装置は、復号されたデータと証明対象情報4aとが一致する場合、電子証明書6が正しいと判断する。端末装置は、正しく検証できた場合、証明対象情報4aの所有者がユーザ8であると判断する。ブロック4−3にユーザ8の識別子が含まれていれば、証明対象情報4aの所有者が、その識別子で示されるユーザ8であることが分かる。証明対象情報4aがユーザ8の公開鍵であれば、例えば証明対象情報4aを使用するユーザは、ユーザ8の識別子を宛先として送信するデータを、その公開鍵で暗号化することで、データを安全にユーザ8に送信することができる。
このように、電子証明書の発行をブロックチェーンを用いて行うことで、電子証明書の発行が1つのサーバに集中せず、一部のノードが故障しても、電子証明書の発行を継続できる。その結果、電子証明書の発行を安定して継続することができ、システムの可用性が向上する。
しかも、多数の管理者のうちの所定数の管理者が登録承認を行えば、電子証明書が発行されるため、ある承認者が承認できない場合でも他の管理者の承認により、電子証明書が発行できる。そのため、電子証明書の発行手続きが停止することが抑止される。
なお電子証明書6を発行するために要求される管理者の電子署名の数(所定数)は、1以上の任意の数を設定できる。この所定数として、2以上の数を設定することで、複数の管理者が承認することを、電子証明書6の発行条件とすることができる。複数の管理者の登録承認が確認できたときにのみ電子証明書6を発行させることで、管理者の手違いによる誤った電子証明書6の発行を抑止できる。
ユーザ8は、有効化した証明対象情報4aを、ユーザ8の意思で無効化できる。例えばユーザ8は、端末装置2aに対して、証明対象情報4aの破棄を指示する入力を行う。端末装置2aは、ユーザ8からの、証明対象情報4aの破棄を指示する入力に応じて、破棄を示すフラグとブロック4−3とを含むブロックの登録要求を、ネットワーク1へ出力する。複数のブロックチェーンノード3a,3b,3cは、その登録要求に応じて、該当ブロックをブロックチェーンによって分散して保持する。また複数のブロックチェーンノード3a,3b,3cのうちのいずれか1台が、保持したブロックに破棄を示すフラグが含まれることを検出する。そして検出したブロックチェーンノード3a,3b,3cは、そのブロックに含まれる情報に対するブロックチェーンノード自身の電子署名(無効化用電子署名)とそのブロックとを含むブロックを生成する。そして複数のブロックチェーンノード3a,3b,3cが、生成したブロックをブロックチェーンによって分散して保持する。
破棄を示すフラグを含むブロックに、いずれかのブロックチェーンノードが電子署名をすることで、該当ブロックに含まれる証明対象情報4aは無効となる。このように、証明対象情報4aを無効化する際には、ユーザ8が、破棄を示すブロックの登録手続きをするだけでよく、管理者の手間をかけずに済む。その結果、証明対象情報4aを迅速に無効化することができる。
なお、端末装置2aは、ユーザ8から、証明対象情報4aの破棄を指示する入力を受け取ったときに生成するブロックに、ブロック4−3内の情報に対するユーザ8の電子署名(所有者電子署名)を含めてもよい。ユーザ8の電子署名は、ブロック4−3内の情報を、ユーザ8の秘密鍵で暗号化したものである。複数のブロックチェーンノード3a,3b,3cは、登録要求に応じて保持したブロックに破棄を示すフラグが含まれることを検出すると、ユーザ8の公開鍵(所有者公開鍵)を用いて、ユーザ8の電子署名の正当性を検証する。例えば複数のブロックチェーンノード3a,3b,3cは、ユーザ8の電子署名を、ユーザ8の公開鍵で復号し、復号されたデータとブロック4−3内の情報とを比較し、一致すれば、ユーザ8の電子署名が正当であると判断する。複数のブロックチェーンノード3a,3b,3cは、ユーザ8の電子署名が正当であることが確認できた場合、そのブロックに含まれる情報に対するブロックチェーンノード自身の電子署名とそのブロックとを含むブロックを生成する。そして複数のブロックチェーンノード3a,3b,3cが、生成したブロックを、ブロックチェーンによって分散して保持する。
このように、証明対象情報4aの破棄を示すブロックに、ユーザ8の電子署名を付加し、その電子署名を検証した後に証明対象情報4aを無効化することで、ユーザ8以外の第三者により証明対象情報4aが無効化されることを抑止することができる。
〔第2の実施の形態〕
次に第2の実施の形態について説明する。第2の実施の形態は、ブロックチェーンネットワークにおける電子証明書の発行と管理を、集中管理するサーバを用いずに実現するものである。なお、以下の説明では、電子証明書を、単に証明書と呼ぶこととする。
ブロックチェーンネットワークは、幾つかのノードがダウンしても電子情報を受け渡すことができ、高い可用性が実現されている。しかし、ブロックチェーンネットワークにおいて使用する証明書がサーバで集中管理されていたのでは、そのサーバがダウンするとブロックチェーンネットワークの運用に支障がでる。すなわち証明書管理用のサーバがダウンすると、ブロックチェーンを利用しているユーザの端末装置は、公開鍵の証明書が参照できなくなり、公開鍵を用いたデータの暗号化ができなくなる。
また証明書をサーバで集中管理した場合、ブロックチェーンのノード数が多くなると、証明書管理用のサーバへのアクセスが集中し、処理の遅延が発生しやすくなる。アクセスの集中は、悪意がある者による攻撃でも発生する。証明書管理用のサーバの処理の遅延が、ブロックチェーンを介した取引の遅延を招くこととなる。
しかも証明書管理用のサーバにおいてユーザの証明書は、そのサーバの管理者によるユーザの身元確認などの手続きを経て発行される。このように、特定の管理者の作業が介在するため、管理者のミスにより、不正な証明書が登録される可能性がある。また証明書の発行が集中管理されているため、管理者の作業遅延などが発生すると、なかなか証明書が登録されない可能性がある。
第2の実施の形態は、証明書の発行と管理についてもブロックチェーンを用いて実現することで、証明書の発行と管理を証明書管理用のサーバで集中管理することによる問題点を解決する。
図2は、第2の実施の形態のネットワークシステムの構成の一例を示す図である。第2の実施の形態のネットワークシステムでは、ネットワークスイッチ31〜35を介して、複数のブロックチェーンノード200,200a〜200fが接続されている。ブロックチェーンノード200,200a〜200fそれぞれは、ブロックチェーンネットワーク上の1ノードとして機能するコンピュータである。またネットワークには、複数の端末装置100,100a〜100cが接続されている。複数の端末装置100,100a〜100cは、ネットワークを介した取引を行うユーザ41,42、またはネットワークの管理者51,52が使用するコンピュータである。
なお第2の実施の形態のネットワークシステムには、ブロックチェーンノード200,200a〜200f以外にも、図示していない多数のブロックチェーンノードが接続されている。同様に第2の実施の形態のネットワークシステムには、複数の端末装置100,100a〜100c以外にも、図示していない多数の端末装置が接続されている。
図3は、第2の実施の形態に用いる端末装置のハードウェアの一構成例を示す図である。端末装置100は、プロセッサ101によって装置全体が制御されている。プロセッサ101には、バス109を介してメモリ102と複数の周辺機器が接続されている。プロセッサ101は、マルチプロセッサであってもよい。プロセッサ101は、例えばCPU(Central Processing Unit)、MPU(Micro Processing Unit)、またはDSP(Digital Signal Processor)である。プロセッサ101がプログラムを実行することで実現する機能の少なくとも一部を、ASIC(Application Specific Integrated Circuit)、PLD(Programmable Logic Device)などの電子回路で実現してもよい。
メモリ102は、端末装置100の主記憶装置として使用される。メモリ102には、プロセッサ101に実行させるOS(Operating System)のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、メモリ102には、プロセッサ101による処理に必要な各種データが格納される。メモリ102としては、例えばRAM(Random Access Memory)などの揮発性の半導体記憶装置が使用される。
バス109に接続されている周辺機器としては、ストレージ装置103、グラフィック処理装置104、入力インタフェース105、光学ドライブ装置106、機器接続インタフェース107およびネットワークインタフェース108がある。
ストレージ装置103は、内蔵した記録媒体に対して、電気的または磁気的にデータの書き込みおよび読み出しを行う。ストレージ装置103は、コンピュータの補助記憶装置として使用される。ストレージ装置103には、OSのプログラム、アプリケーションプログラム、および各種データが格納される。なお、ストレージ装置103としては、例えばHDD(Hard Disk Drive)やSSD(Solid State Drive)を使用することができる。
グラフィック処理装置104には、モニタ21が接続されている。グラフィック処理装置104は、プロセッサ101からの命令に従って、画像をモニタ21の画面に表示させる。モニタ21としては、CRT(Cathode Ray Tube)を用いた表示装置や液晶表示装置などがある。
入力インタフェース105には、キーボード22とマウス23とが接続されている。入力インタフェース105は、キーボード22やマウス23から送られてくる信号をプロセッサ101に送信する。なお、マウス23は、ポインティングデバイスの一例であり、他のポインティングデバイスを使用することもできる。他のポインティングデバイスとしては、タッチパネル、タブレット、タッチパッド、トラックボールなどがある。
光学ドライブ装置106は、レーザ光などを利用して、光ディスク24に記録されたデータの読み取りを行う。光ディスク24は、光の反射によって読み取り可能なようにデータが記録された可搬型の記録媒体である。光ディスク24には、DVD(Digital Versatile Disc)、DVD−RAM、CD−ROM(Compact Disc Read Only Memory)、CD−R(Recordable)/RW(ReWritable)などがある。
機器接続インタフェース107は、端末装置100に周辺機器を接続するための通信インタフェースである。例えば機器接続インタフェース107には、メモリ装置25やメモリリーダライタ26を接続することができる。メモリ装置25は、機器接続インタフェース107との通信機能を搭載した記録媒体である。メモリリーダライタ26は、メモリカード27へのデータの書き込み、またはメモリカード27からのデータの読み出しを行う装置である。メモリカード27は、カード型の記録媒体である。
ネットワークインタフェース108は、ネットワークスイッチ31に接続されている。ネットワークインタフェース108は、ネットワークスイッチ31を介して、他のコンピュータまたは通信機器との間でデータの送受信を行う。
以上のようなハードウェア構成によって、第2の実施の形態における端末装置100の処理機能を実現することができる。端末装置100a〜100cについても、端末装置100と同様のハードウェアで実現することができる。ブロックチェーンノード200,200a〜200fについても、端末装置100と同様のハードウェアで実現することができる。さらに、第1の実施の形態に示した端末装置2a,2b,2cやブロックチェーンノード3a,3b,3cも、図3に示した端末装置100と同様のハードウェアにより実現することができる。
端末装置100,100a〜100cまたはブロックチェーンノード200,200a〜200fは、例えばコンピュータ読み取り可能な記録媒体に記録されたプログラムを実行することにより、第2の実施の形態の処理機能を実現する。端末装置100,100a〜100cまたはブロックチェーンノード200,200a〜200fに実行させる処理内容を記述したプログラムは、様々な記録媒体に記録しておくことができる。例えば、端末装置100に実行させるプログラムをストレージ装置103に格納しておくことができる。プロセッサ101は、ストレージ装置103内のプログラムの少なくとも一部をメモリ102にロードし、プログラムを実行する。また端末装置100に実行させるプログラムを、光ディスク24、メモリ装置25、メモリカード27などの可搬型記録媒体に記録しておくこともできる。可搬型記録媒体に格納されたプログラムは、例えばプロセッサ101からの制御により、ストレージ装置103にインストールされた後、実行可能となる。またプロセッサ101が、可搬型記録媒体から直接プログラムを読み出して実行することもできる。
第2の実施の形態では、このようなハードウェア構成のシステムを用いて、ブロックチェーンを用いた証明書の発行や管理が行われる。すなわち第2の実施の形態のシステムでは、ビットコインなどの取引を行うブロックチェーンネットワークとは別に、証明書管理用のサーバの代わりとなる新たな証明書格納用のブロックチェーンネットワークが構築されている。
図4は、第2の実施の形態におけるブロックチェーンネットワークの一例を示す図である。第2の実施の形態では、2つのブロックチェーンネットワーク60,61が設けられている。ブロックチェーンネットワーク60は、電子情報の取引に関するブロック60a,60b保存用のブロックチェーンネットワークである。ブロックチェーンネットワーク61は、証明書に関するブロック61a,61b保存用のブロックチェーンネットワークである。
以下、ブロックチェーンネットワーク60,61に関する処理を実施するための、端末装置とブロックチェーンノードとの機能について説明する。
図5は、端末装置とブロックチェーンノードとの機能の一例を示すブロック図である。ユーザ41が使用する端末装置100は、OS110とWebブラウザ120とを有している。Webブラウザ120は、公開鍵の登録要求や参照を行う証明書利用部121を有している。証明書利用部121が、公開鍵の登録要求の送信処理、公開鍵の破棄要求の送信処理、他のユーザの公開鍵の使用処理などを実行する。
管理者51が使用する端末装置100aは、OS110aとWebブラウザ120aとを有している。Webブラウザ120aは、証明書の発行手続きを行う証明書管理部122aを有している。
ブロックチェーンノード200は、OS210、Webサーバ220、およびブロックチェーンサブシステム230を有している。ブロックチェーンサブシステム230は、2つのブロックチェーンネットワーク60,61を介して、ブロックの配布および保持を行う。例えばブロックチェーンサブシステム230は、ブロック記憶部231を有しており、端末装置100または他のブロックチェーンノード200aから取得したブロックを、ブロック記憶部231に格納する。またブロックチェーンサブシステム230は、スマートコントラクト232を有している。スマートコントラクト232は、ブロックチェーンネットワーク61上での証明書の発行や無効化を行う。
同様にブロックチェーンノード200aは、OS210a、Webサーバ220a、およびブロックチェーンサブシステム230aを有している。ブロックチェーンサブシステム230aは、ブロックを保持するためのブロック記憶部231aや、証明書の発行や無効化を行うスマートコントラクト232aを有している。
ブロックチェーン参加者であるユーザ41は、端末装置100を用いて、ブロックチェーンネットワーク60を介して取引を行うと共に、ブロックチェーンネットワーク61を介して、証明書による本人証明を行う。管理者51は、端末装置100aを用いて、ブロックチェーンネットワーク60で保持される電子情報の管理や、ブロックチェーンネットワーク61で保持される証明書の発行および管理を行う。
例えばユーザ41は、端末装置100を用いて、リファレンスフラグ「0」(登録)の値と公開鍵とを含むデータを作成し、そのデータに自分の秘密鍵で電子署名を行う。電子署名を行うとは、署名対象のデータまたはそのデータのハッシュ値を、秘密鍵で暗号化することである。以下、電子署名を行うことで生成される暗号化されたデータを、単に「署名」と呼ぶ。そしてユーザ41は、端末装置100aを用いて、署名付きのデータを、ブロックチェーンネットワーク61上に登録する。この際、秘密鍵は、各参加者が保持しておく。
管理者51は、端末装置100aを用いて、証明書発行前(リファレンスフラグが「0」)のブロックに自分の署名を付与したデータを作成する。そして管理者51は、端末装置100aを用いて、作成したデータを、ブロックチェーンネットワーク61上に登録する。
ブロックチェーンネットワーク61上のスマートコントラクト232,232aは、規定数以上の数の承認を得たブロックを確認した場合に、そのブロックのリファレンスフラグを「0」より大きい値「1」(有効)に変更する。さらにスマートコントラクト232,232aは、そのブロックにスマートコントラクト232,232aの署名を付与したブロックを生成する。そしてスマートコントラクト232,232aは、生成したブロックを、公開鍵証明書として新たに、ブロックチェーンサブシステム230,230aに登録することを要求する。
ユーザ41に電子情報を送信する他のユーザは、ブロックチェーンネットワーク61上に登録された、値が「0」より大きいリファレンスフラグの証明書に含まれる公開鍵を、ユーザ41へ送る情報の暗号化に使用する。
ユーザ41の公開鍵の証明書の無効化は、ユーザ41がリファレンスフラグの値を「−1」(無効)にしたデータに電子署名を行い、ブロックチェーンサブシステム230に登録を要求する。スマートコントラクト232は、このリファレンスフラグの値が「−1」のブロックを読み込み、ユーザ41自身が登録したかを署名によって検証する。スマートコントラクト232は、検証できれば、そのブロックにスマートコントラクト232自身の署名を付けて、ブロックチェーンサブシステム230に登録する。これにより、管理者51の手を煩わせずに、証明書を無効化できる。
以下、図6を参照して、証明書の発行、および管理のためのブロックチェーンについて説明する。
図6は、証明書の発行および無効化のブロックチェーンの一例を示す図である。ブロックチェーンの参加者であるユーザ41は、例えば端末装置100を用いて、ユーザ41宛てのデータの暗号化に使用する公開鍵62bと、その公開鍵62bで暗号化されたデータの復号に使用する秘密鍵とを生成する。そして公開鍵62bの所有者であるユーザ41は、端末装置100を用いてブロック62−1を生成し、そのブロック62−1の登録要求を、ブロックチェーンノード200に送信する。
ブロック62−1には、値が「0」のリファレンスフラグ62a、ユーザ41の公開鍵62b、公開鍵62bに対する鍵所有者(ユーザ41)の署名62cが含まれる。このブロック62−1は、ブロックチェーンネットワーク61を介して、すべてのブロックチェーンノードに配布される。
そしてブロック62−1に対して、複数の管理者が、公開鍵62bの承認を示す電子署名を行う。例えば、最初に管理者51が電子署名を行うことで、1番目の管理者51の署名62dを付与したブロック62−2が、ブロックチェーンネットワーク61上に登録される。このブロック62−2には、前のブロック62−1のハッシュ値62eが含まれている。同様に、所定数の管理者が電子署名を行う。図6の例では、N人(Nは1以上の整数)の管理者が電子署名を行うことが、公開鍵62bの証明書の発行条件となっている。
例えば管理者52がN番目の管理者として、登録承認の電子署名を行う。管理者52が電子署名を行うことで、N番目の管理者52の署名62fを含むブロック62−3が、ブロックチェーンネットワーク61上に登録される。ブロック62−3には、N−1番目の管理者が登録承認を行ったことで生成されたブロックのハッシュ値62gが含まれる。ブロック62−3では、リファレンスフラグ62aの値がまだ「0」のままである。
規定数(N)の管理者の承認が得られた場合、ブロックチェーンネットワーク61上のスマートコントラクト232aが、登録されたブロック62−3のリファレンスフラグ62aを「1」(有効)に変更し、リファレンスフラグ62aの電子署名を行う。その結果、ブロック62−4が生成される。ブロック62−4には、ユーザ41の署名62cと、登録承認を行った管理者の署名62d,62fに加え、スマートコントラクトの署名62hが含まれる。またブロック62−4には、前のブロック62−3のハッシュ値62iと公開鍵証明書62jが含まれる。公開鍵証明書62jは、公開鍵62bを含んでおり、この公開鍵62bの所有者がユーザ41であることを示している。
公開鍵証明書62jを含むブロック62−4によって、公開鍵62bの所有者がユーザ41であることが証明される。他のユーザは、ブロック62−4から取得した公開鍵62bを用いてユーザ41に送信する電子情報を暗号化することで、その電子情報を安全にユーザ41に渡すことができる。
ユーザ41は、公開鍵62bを無効化させる場合、ブロック62−4におけるリファレンスフラグ62aの値を「−1」(無効)にしたブロック62−5を、ブロックチェーンネットワーク61上に登録する。ブロック62−5には、ブロック62−4のハッシュ値62kが含まれている。ブロック62−5が登録されると、例えばスマートコントラクト232aが電子署名を行う。
なお、第2の実施の形態では、リファレンスフラグ62aの値が「1」のブロックで、ブロックチェーンネットワーク61上のスマートコントラクトの署名があるものだけが、有効でかつ他のユーザから参照可能なブロックである。
以下、ブロックチェーンネットワーク61上に登録するブロックの作成方法について、図7〜図13を参照して説明する。
図7は、公開鍵登録用のブロックの作成例を示す図である。ユーザ41は、例えば端末装置100に対して公開鍵62bと、その公開鍵62bで暗号化したデータの復号に用いる秘密鍵62mとを入力する。なお秘密鍵62mで暗号化したデータは、公開鍵62bで復号することができる。ユーザ41は、公開鍵62bの登録指示を、端末装置100に入力する。
すると端末装置100は、ユーザ41の公開鍵62bに対して、秘密鍵62mで電子署名を行う。例えば端末装置100は、公開鍵62bのハッシュ値を秘密鍵62mで暗号化する。これにより、鍵の所有者であるユーザ41の署名62cが生成される。端末装置100は、ユーザ41の公開鍵62b、値が「0」のリファレンスフラグ62a、および鍵所有者(ユーザ41)の署名62cを含む登録ブロック63を生成する。そして端末装置100は、ブロックチェーンノード200に登録ブロック63を送信し、ブロックチェーンサブシステム230に、登録ブロック63のブロックチェーンネットワーク61への登録を依頼する。
ブロックチェーンサブシステム230は、登録ブロック63を、図6に示したブロック62−1としてブロック記憶部231に格納すると共に、他のブロックチェーンノードに送信する。
図8は、最初の登録承認時のブロックの作成例を示す図である。管理者51は、自身の公開鍵71と、公開鍵71で暗号化したデータの復号に用いる秘密鍵72とを有している。なお、秘密鍵72で暗号化したデータは、公開鍵71で復号することができる。また、管理者51が使用する端末装置100aに接続されたブロックチェーンノード200aのブロックチェーンサブシステム230aは、ブロック記憶部231a内に、ユーザ41が登録したブロック62−1を記憶している。
端末装置100aは、管理者51からの入力に応じて、リファレンスフラグ62aの値が「0」のブロック62−1を、ブロックチェーンサブシステム230a内のブロック記憶部231aから読み込む。そして端末装置100aは、公開鍵62bの登録承認処理を行う。例えば管理者51は、秘密鍵72を端末装置100aに入力する。端末装置100aは、公開鍵62bと、その公開鍵62bの所有者の署名62cとのハッシュ値を算出する。次に端末装置100aは、算出したハッシュ値を、1番目の管理者51の秘密鍵72で暗号化する。暗号化されたデータが、1番目の管理者51の署名62dとなる。端末装置100aは、値が「0」のリファレンスフラグ62a、公開鍵62b、鍵所有者の署名62c、および1番目の管理者51の署名62dを含む登録ブロック64を生成する。そして端末装置100aは、ブロックチェーンノード200aに登録ブロック64を送信し、ブロックチェーンサブシステム230aに、登録ブロック64のブロックチェーンネットワーク61への登録を依頼する。
ブロックチェーンサブシステム230aは、登録ブロック64に、ブロック62−1のハッシュ値を追加して、ブロック62−2を生成する。そしてブロックチェーンサブシステム230aは、ブロック62−2を、ブロック記憶部231aに格納すると共に、他のブロックチェーンノードに送信する。
以後同様に、他の管理者も、管理者の署名の数がN個になるまで、登録承認を行う。
図9は、N番目の登録承認時のブロックの作成例を示す図である。管理者52は、自身の公開鍵73と、公開鍵73で暗号化したデータの復号に用いる秘密鍵74とを有している。なお、秘密鍵74で暗号化したデータは、公開鍵73で復号することができる。また、管理者52が使用する端末装置100bに接続されたブロックチェーンノード200aのブロックチェーンサブシステム230aは、ブロック記憶部231a内に、N−1番目に登録承認を行った管理者が登録したブロック62−6を記憶している。
このブロック62−6のリファレンスフラグ62aの値は、まだ「0」である。またブロック62−6には、公開鍵62b、公開鍵62bの所有者の署名62c、および既に登録承認を行った各管理者の署名が含まれる。図9の例では、ブロック62−6には、1番目の管理者の署名62dからN−1番目の管理者の署名62nが含まれている。
端末装置100bは、管理者52からの入力に応じて、リファレンスフラグ62aの値が「0」のブロック62−6を、ブロックチェーンサブシステム230a内のブロック記憶部231aから読み込む。そして端末装置100bは、公開鍵62bの登録承認処理を行う。例えば管理者52は、秘密鍵74を端末装置100bに入力する。端末装置100bは、公開鍵62b、その公開鍵62bの所有者の署名62c、および1番目からN−1番目の管理者の署名のハッシュ値を算出する。次に端末装置100aは、算出したハッシュ値を、N番目の管理者52の秘密鍵74で暗号化する。暗号化されたデータが、N番目の管理者52の署名62fとなる。端末装置100bは、値が「0」のリファレンスフラグ62a、公開鍵62b、鍵所有者の署名62c、および1番目〜N番目の各管理者の署名を含む登録ブロック65を生成する。そして端末装置100bは、ブロックチェーンノード200aに登録ブロック65を送信し、ブロックチェーンサブシステム230aに、登録ブロック65のブロックチェーンネットワーク61への登録を依頼する。
ブロックチェーンサブシステム230aは、登録ブロック65に、ブロック62−6のハッシュ値を追加して、ブロック62−3を生成する。そしてブロックチェーンサブシステム230aは、ブロック62−3を、ブロック記憶部231aに格納すると共に、他のブロックチェーンノードに送信する。
このようにして、規定の人数分の登録承認が完了すると、いずれかのブロックチェーンノードで実行されているスマートコントラクトが公開鍵証明書を発行する。
図10は、スマートコントラクトによる公開鍵証明書の作成例を示す図である。スマートコントラクト232aは、自身の公開鍵75と、公開鍵75で暗号化したデータの復号に用いる秘密鍵76とを有している。なお、秘密鍵76で暗号化したデータは、公開鍵75で復号することができる。また、ブロックチェーンサブシステム230aは、ブロック記憶部231a内に、N番目に登録承認を行った管理者が登録したブロック62−3を記憶している。
このブロック62−3のリファレンスフラグ62aの値は、まだ「0」である。またブロック62−3には、公開鍵62b、公開鍵62bの所有者の署名62c、および既に登録承認を行った各管理者の署名が含まれる。図10の例では、ブロック62−3には、1番目の管理者の署名62dからN番目の管理者の署名62fが含まれている。
スマートコントラクト232aは、リファレンスフラグ62aの値が「0」のブロック62−3をブロック記憶部231aから読み込む。そしてスマートコントラクト232aは、公開鍵62bについての公開鍵証明書62jを作成する。例えばスマートコントラクト232aは、公開鍵62bのハッシュ値を、スマートコントラクト232aの秘密鍵76で暗号化する。暗号化されたデータが、スマートコントラクト232aの署名である。スマートコントラクト232aは、署名を公開鍵62bに付与し、公開鍵証明書62jとする。またスマートコントラクト232aは、リファレンスフラグ62aの値を、有効を表す値「1」に変更する。そしてスマートコントラクト232aは、値が「1」のリファレンスフラグ62a、公開鍵62b、鍵所有者の署名62c、1番目〜N番目の各管理者の署名、および公開鍵証明書62jを含む登録ブロック66を生成する。そしてスマートコントラクト232aは、ブロックチェーンサブシステム230aに登録ブロック66のブロックチェーンネットワーク61への登録を依頼する。
ブロックチェーンサブシステム230aは、登録ブロック66に、ブロック62−3のハッシュ値を追加して、ブロック62−4を生成する。そしてブロックチェーンサブシステム230aは、ブロック62−4を、ブロック記憶部231aに格納すると共に、他のブロックチェーンノードに送信する。
このようにしてユーザ41が登録した公開鍵62bに関する公開鍵証明書62jが発行され、他のユーザが公開鍵62bを安心して使用できるようになる。使用可能となった公開鍵62bは、ユーザ41の意思で破棄することができる。
図11は、公開鍵破棄時のブロックの作成例を示す図である。ユーザ41は、公開鍵62bの破棄指示を、端末装置100に入力する。すると端末装置100は、ブロックチェーンサブシステム230からブロック62−4を読み込む。次に端末装置100は、公開鍵62b、鍵所有者の署名62c、各管理者の署名62d,・・・,62f、および公開鍵証明書62jのハッシュ値を秘密鍵62mで暗号化する。これにより、鍵の所有者であるユーザ41の署名62nが生成される。また端末装置100は、リファレンスフラグ62aの値を、無効であることを示す値「−1」に変更する。さらに端末装置100は、ユーザ41の公開鍵62b、値が「−1」のリファレンスフラグ62a、鍵所有者の署名62c、各管理者の署名62d,・・・,62f、公開鍵証明書62j、および追加された鍵所有者の署名62nを含む登録ブロック67を生成する。そして端末装置100は、ブロックチェーンノード200に登録ブロック67を送信し、ブロックチェーンサブシステム230に、登録ブロック67のブロックチェーンネットワーク61への登録を依頼する。
ブロックチェーンサブシステム230は、ブロック62−4のハッシュ値を登録ブロック67に追加して、ブロック62−5を作成する。そしてブロックチェーンサブシステム230は、ブロック62−5をブロック記憶部231に格納すると共に、他のブロックチェーンノードに送信する。
ユーザ41の公開鍵62bの破棄を示すブロック62−5がブロックチェーンネットワーク61に登録されると、いずれかのブロックチェーンノードで実行されているスマートコントラクトにより、公開鍵62bの無効化処理が行われる。
図12は、スマートコントラクトによる公開鍵の無効化の例を示す図である。スマートコントラクト232は、自身の公開鍵77と、公開鍵77で暗号化したデータの復号に用いる秘密鍵78とを有している。なお、秘密鍵78で暗号化したデータは、公開鍵77で復号することができる。また、ブロックチェーンサブシステム230は、ブロック記憶部231内に、破棄の処理が行われたブロック62−5を記憶している。
このブロック62−5のリファレンスフラグ62aの値は「−1」である。またブロック62−5には、公開鍵62b、公開鍵62bの所有者の署名62c、既に登録承認を行った各管理者の署名、公開鍵証明書62j、および破棄の処理で追加された公開鍵62bの所有者の署名62nが含まれる。
スマートコントラクト232は、リファレンスフラグ62aの値が「−1」のブロック62−5をブロック記憶部231から読み込む。そしてスマートコントラクト232は、ブロック62−5に含まれるすべての署名(公開鍵証明書62jを含む)とリファレンスフラグ62aとのハッシュ値を、スマートコントラクト232の秘密鍵78で暗号化する。暗号化されたデータが、スマートコントラクト232の署名62oである。スマートコントラクト232は、ブロック62−5に含まれていた情報に署名62oを追加した登録ブロック68を生成する。そしてスマートコントラクト232は、ブロックチェーンサブシステム230に登録ブロック68のブロックチェーンネットワーク61への登録を依頼する。
ブロックチェーンサブシステム230は、登録ブロック68に、ブロック62−5のハッシュ値を追加して、ブロック62−8を生成する。そしてブロックチェーンサブシステム230は、ブロック62−8を、ブロック記憶部231に格納すると共に、他のブロックチェーンノードに送信する。
ブロックチェーンネットワーク61では、関連する複数のブロックのうち、最後に更新されたブロックのみが有効となる。そのため、ブロック62−8が登録されたことにより、ブロック62−4は使用不能となる。またブロック62−8には、公開鍵62bが無効であることを示すリファレンスフラグ62a「−1」が設定されている。その結果、以後の公開鍵62bの使用が抑止される。
なお無効化される前であれば、ユーザ41以外のユーザは、ブロック62−4を参照して、ユーザ41の公開鍵62bを利用することができる。
図13は、公開鍵の使用例を示す図である。ユーザ42が端末装置100cに対して、ユーザ41の公開鍵62bの取得を指示する。すると端末装置100cは、ブロックチェーンノード200cのブロックチェーンサブシステム230c内のブロック記憶部231cから、ブロック62−4を読み込む。また端末装置100cは、ブロックチェーンサブシステム230c内のブロック記憶部231cから、スマートコントラクト232aの公開鍵75を含むブロック62−7を読み込む。ブロック62−7には、例えば公開鍵75についての公開鍵証明書が含まれる。その公開鍵75は、例えば、端末装置100cが既に有している鍵によって検証できるものとする。
端末装置100cは、スマートコントラクト232aの公開鍵75を用いて、公開鍵証明書62jの検証を行う。例えば端末装置100cは、公開鍵証明書62jに含まれるスマートコントラクト232aの署名を、スマートコントラクト232aの公開鍵75で復号する。次に端末装置100cは、復号されたデータと、ブロック62−4に含まれている公開鍵62bのハッシュ値とを比較する。復号されたデータと公開鍵62bのハッシュ値とが一致した場合、公開鍵62bの所有者がユーザ41であることが確認される。
公開鍵62bの所有者がユーザ41であることが確認できた場合、端末装置100cは、ユーザ42の指示に従って、公開鍵62bを使用して、ユーザ41に渡す電子情報を暗号化する。端末装置100cは、暗号化した電子情報を含む登録ブロックを生成し、そのブロックのブロックチェーンネットワーク60への登録要求を、ブロックチェーンサブシステム230cに送信する。
以下、図14〜図19を参照して、証明書の発行、および管理処理の手順について、詳細に説明する。
図14は、公開鍵登録処理の手順の一例を示すシーケンス図である。端末装置100は、ユーザ41によって指定された場所から、公開鍵ファイルを取得する(ステップS101)。公開鍵ファイルには、ユーザ41の公開鍵62bが含まれる。次に端末装置100は、公開鍵ファイルと、値が「0」のリファレンスフラグ62aを生成する(ステップS102)。次に端末装置100は、ユーザ41の公開鍵62bのハッシュ値に、ユーザ41の秘密鍵62mで電子署名をする(ステップS103)。そして端末装置100は、登録ブロック63を作成し、登録ブロック63の登録要求を、ブロックチェーンノード200に送信する(ステップS104)。
ブロックチェーンノード200は、受信した登録ブロック63を、ブロックチェーンネットワーク61上のブロック62−1(図6参照)として記憶する(ステップS105)。またブロックチェーンノード200は、ブロック62−1を、他のブロックチェーンノードに配布する(ステップS106)。
図15は、登録承認処理の手順の一例を示すシーケンス図である。管理者51が使用する端末装置100aは、リファレンスフラグ62aの値が「0」のブロックの取得要求を、ブロックチェーンノード200aに送信する(ステップS111)。ブロックの取得要求に応じて、ブロックチェーンノード200aは、登録されているブロックのうち、リファレンスフラグ62aの値が「0」のブロック62−1を、端末装置100aに送信する(ステップS112)。
ブロックを取得した端末装置100aは、管理者51の秘密鍵72で、ユーザ41の公開鍵62bと署名62cとのハッシュ値に電子署名を行う(ステップS113)。このとき、リファレンスフラグ62aの値は「0」のままである。端末装置100aは、取得したブロック62−1に、管理者51の署名62dを追加した登録ブロック64の登録要求を、ブロックチェーンノード200aに送信する(ステップS114)。
ブロックチェーンノード200aは、受信した登録ブロック64にブロック62−1のハッシュ値を追加し、ブロックチェーンネットワーク61上のブロック62−2(図6参照)として記憶する(ステップS115)。またブロックチェーンノード200aは、ブロック62−2を、他のブロックチェーンノードに配布する(ステップS116)。
このような登録承認が、N人の管理者によって行われると、公開鍵62bを有効化するための公開鍵証明書の発行処理が行われる。
図16は、公開鍵証明書発行処理の手順の一例を示すシーケンス図である。なお、公開鍵証明書発行処理は、ブロックチェーンノード200aの内部処理であるため、図16では、ブロックチェーンノード200a内の各要素の処理をシーケンス図で表している。
スマートコントラクト232aは、ブロックチェーンサブシステム230aに登録されているブロックのうち、公開鍵62bの登録要求に関するブロックの承認状況を監視する(ステップS121)。例えばスマートコントラクト232aは、ブロックチェーンサブシステム230aに対して、管理者の署名がN個以上となった未承認(リファレンスフラグ62aの値が「0」)のブロック62−3を要求する。ブロックチェーンサブシステム230aは、管理者の署名がN個以上となった未承認のブロック62−3を検出すると、そのブロック62−3をスマートコントラクト232aに送信する(ステップS122)。
スマートコントラクト232aは、管理者の署名がN個以上となった未承認のブロック62−3を取得できたか否かを判断する(ステップS123)。該当ブロック62−3が取得できない場合、スマートコントラクト232aは、ブロックの承認状況の監視を続ける。該当ブロック62−3が取得できた場合、スマートコントラクト232aは、取得したブロックのリファレンスフラグ62aの値を「1」に変更する(ステップS124)。次にスマートコントラクト232aは、取得したブロック62−3に含まれる公開鍵62bのハッシュ値にスマートコントラクト232aの秘密鍵76で署名した公開鍵証明書62jを作成する(ステップS125)。そしてスマートコントラクト232aは、取得したブロック62−3に公開鍵証明書62jを含めた登録ブロック66の登録要求を、ブロックチェーンサブシステム230aに送信する(ステップS126)。
ブロックチェーンサブシステム230aは、受信した登録ブロック66にブロック62−3のハッシュ値を追加し、ブロックチェーンネットワーク61上のブロック62−4(図6参照)として記憶する(ステップS127)。またブロックチェーンサブシステム230aは、ブロック62−4を、他のブロックチェーンノードに配布する(ステップS128)。
公開鍵証明書62jが発行されることで、公開鍵62bは有効化される。公開鍵62bは所有者であるユーザ41からの指示で破棄される。
図17は、公開鍵の破棄処理の手順の一例を示すシーケンス図である。端末装置100は、ユーザ41から公開鍵62bの破棄の指示が入力されると、ブロックチェーンノード200に、リファレンスフラグ62aの値が「1」のブロック62−4の取得要求を送信する(ステップS131)。ブロックチェーンノード200は、取得要求に応じて、リファレンスフラグ62aの値が「1」のブロック62−4を、端末装置100に送信する(ステップS132)。
ブロック62−4を取得した端末装置100は、リファレンスフラグ62aの値を「−1」(無効)に更新する(ステップS133)。次に端末装置100は、取得したブロック62−4に含まれる公開鍵62b、各種署名、および公開鍵証明書62jのハッシュ値を計算し、そのハッシュ値にユーザ41の秘密鍵62mで電子署名を行う(ステップS134)。そして端末装置100は、取得したブロック62−4に、新たに生成した署名62nを追加した登録ブロック67の登録要求を、ブロックチェーンノード200に送信する(ステップS135)。
ブロックチェーンノード200は、受信した登録ブロック67にブロック62−4のハッシュ値を追加し、ブロックチェーンネットワーク61上のブロック62−5(図6参照)として記憶する(ステップS136)。またブロックチェーンノード200は、ブロック62−5を、他のブロックチェーンノードに配布する(ステップS137)。
公開鍵62bの破棄処理が行われると、ブロックチェーンネットワーク61上で、公開鍵62bが無効化される。
図18は、公開鍵無効化処理の手順の一例を示すシーケンス図である。なお、公開鍵無効化処理は、ブロックチェーンノード200の内部処理であるため、図18では、ブロックチェーンノード200内の各要素の処理をシーケンス図で表している。
スマートコントラクト232は、ブロックチェーンサブシステム230に登録されているブロックのうち、破棄された公開鍵62bに関するブロックの有無を監視する(ステップS141)。例えばスマートコントラクト232は、ブロックチェーンサブシステム230に対して、リファレンスフラグ62aの値が「−1」のブロック62−5を要求する。ブロックチェーンサブシステム230は、該当するブロック62−5を検出すると、そのブロック62−5をスマートコントラクト232に送信する(ステップS142)。
スマートコントラクト232は、リファレンスフラグ62aの値が「−1」(無効)のブロック62−5を取得できたか否かを判断する(ステップS143)。該当ブロック62−5が取得できない場合、スマートコントラクト232は、破棄ブロックの監視を続ける。該当ブロック62−5が取得できた場合、破棄時にユーザ41が追加した署名62nを検証する(ステップS144)。例えばスマートコントラクト232は、署名62nを、ユーザ41の公開鍵62bで復号した結果と、署名に用いられたデータのハッシュ値とを比較し、一致していれば、ユーザ41の正しい署名であると判断する。
署名が正しければ、スマートコントラクト232は、ブロック62−5に含まれるすべての署名(公開鍵証明書62jを含む)とリファレンスフラグ62aとのハッシュ値に、スマートコントラクト232の秘密鍵78で電子署名をする(ステップS145)。そしてスマートコントラクト232は、取得したブロック62−5に、スマートコントラクト232による新たな署名62oを含めた登録ブロック68の登録要求を、ブロックチェーンサブシステム230に送信する(ステップS146)。
ブロックチェーンサブシステム230は、受信した登録ブロック68にブロック62−5のハッシュ値を追加し、ブロックチェーンネットワーク61上のブロック62−8として記憶する(ステップS147)。またブロックチェーンサブシステム230は、ブロック62−8を、他のブロックチェーンノードに配布する(ステップS148)。
このようにして、ユーザ41が破棄を指示した公開鍵62bが無効化される。
次に、他のユーザ41による有効な公開鍵62bの使用手順について説明する。
図19は、公開鍵の使用手順の一例を示すシーケンス図である。公開鍵62bの使用者であるユーザ42は、端末装置100cに対して、例えばユーザ41の公開鍵62bを使用したデータの暗号化を指示する。すると端末装置100cは、公開鍵証明書を含むユーザ41の最新ブロックの取得要求を、ブロックチェーンノード200cに送信する(ステップS151)。ブロックチェーンノード200cは、ユーザ41の公開鍵62bを含む最新のブロックを、端末装置100cに送信する(ステップS152)。
ブロックを取得した端末装置100cは、取得したブロックに示されているリファレンスフラグ62aの値が「0」より大きいか否かを判断する(ステップS153)。端末装置100cは、リファレンスフラグ62aの値が「0」より大きければ、処理をステップS154に進める。また端末装置100cは、リファレンスフラグ62aの値が「0」以下であれば、処理をステップS157に進める。
端末装置100cは、ハッシュ値の比較により、取得したブロックに含まれる公開鍵証明書に付与されているスマートコントラクト232aの署名を検証する(ステップS154)。例えば端末装置100cは、ブロックチェーンネットワーク61を介してスマートコントラクト232aの公開鍵62bを取得し、その公開鍵62bで署名を復号する。端末装置100cは、復号されたデータと、公開鍵62bのハッシュ値とを比較し、一致すれば、正しい署名であると判断する。
端末装置100は、スマートコントラクト232aの署名が正しく検証できたか否かを判断する(ステップS155)。端末装置100cは、正しく検証できた場合、処理をステップS156に進める。また端末装置100cは、正しく検証できなかった場合、処理をステップS157に進める。
正しく検証できた場合、端末装置100cは、公開鍵62bを使用して、ユーザ41に送信するデータの暗号化などの処理を行う(ステップS156)。また端末装置100cは、リファレンスフラグ62aが「0」以下であるか、スマートコントラクト232aの公開鍵62bの正当性が確認できない場合、ユーザ41の公開鍵62bが使用できない旨のメッセージを出力する(ステップS157)。
このようにして、スマートコントラクト232aの署名によって正当性が担保されている場合に限り、公開鍵62bを使用することができる。
次に、第2の実施の形態に係る処理をブロックチェーンシステムに実行させるためのユーザインタフェースについて、図20〜図22を参照して説明する。
図20は、公開鍵登録画面の一例を示す図である。ユーザ41が使用する端末装置100が、公開鍵登録画面81を表示する。公開鍵登録画面81には、公開鍵ファイル指定用のテキストボックス81a、ファイル選択用のボタン81b、OKボタン81c、およびキャンセルボタン81dが含まれている。公開鍵62bを登録するユーザ41は、例えばテキストボックス81aに、公開鍵62bを含むファイルの名称を入力する。またユーザ41は、ボタン81bを選択することで、端末装置100内のファイルのリストを画面表示させることができる。ユーザ41は、表示されたファイルのリストの中から、公開鍵62bを含むファイルを選択する。すると選択されたファイルのファイル名が、テキストボックス81aに設定される。
ユーザ41がOKボタン81cを押下すると、端末装置100は、テキストボックス81aに示されているファイル内の公開鍵62bを含むブロックの登録要求を、ブロックチェーンノード200に送信する。またユーザ41がキャンセルボタン81dを押下すると、端末装置100は、ブロックの登録要求を送信せずに、公開鍵登録画面81を閉じる。
図21は、登録承認画面の一例を示す図である。管理者51が使用する端末装置100aが、登録承認画面82を表示する。登録承認画面82には、公開鍵表示部82a、管理者数表示部82b、既承認人数表示部82c、署名ファイル指定用のテキストボックス82d、署名ファイル選択用のボタン82e、承認ボタン82f、およびキャンセルボタン82gが含まれる。
公開鍵表示部82aには、ユーザ41の公開鍵62bが表示される。管理者数表示部82bには、登録承認を行うことができる管理者の人数が表示される。既承認人数表示部82cには、既に登録承認を行った管理者の人数が表示される。
公開鍵62bを承認する管理者51は、例えばテキストボックス82dに、管理者51の秘密鍵を含むファイルの名称を入力する。また管理者51は、ボタン82eを選択することで、端末装置100a内のファイルのリストを画面表示させることができる。管理者51は、表示されたファイルのリストの中から、秘密鍵を含むファイルを選択する。すると選択されたファイルのファイル名が、テキストボックス82dに設定される。
管理者51が承認ボタン82fを押下すると、端末装置100aは、管理者51の署名を含む登録ブロックの登録要求を、ブロックチェーンノード200aに送信する。登録承認が正常に終了すると、例えば端末装置100aの画面に、登録承認結果画面83が表示される。登録承認結果画面83には、例えば登録承認を行った管理者の人数が表示される。また登録承認結果画面83には、求められている人数の管理者が登録承認を行い、公開鍵62bが有効化された場合、公開鍵62bの有効化を示すメッセージが表示される。管理者51がOKボタン83aを押下すると、端末装置100aは、登録承認結果画面83を閉じる。
また管理者51がキャンセルボタン82gを押下すると、端末装置100aは、ブロックの登録要求を送信せずに、登録承認画面82を閉じる。
図22は、公開鍵無効化画面の一例を示す図である。ユーザ41が使用する端末装置100が、公開鍵無効化画面84を表示する。公開鍵無効化画面84には、公開鍵ファイル指定用のテキストボックス84a、ファイル選択用のボタン84b、OKボタン84c、およびキャンセルボタン84dが含まれている。公開鍵62bを無効化するユーザ41は、例えばテキストボックス84aに、公開鍵62bを含むファイルの名称を入力する。またユーザ41は、ボタン84bを選択することで、端末装置100内のファイルのリストを画面表示させることができる。ユーザ41は、表示されたファイルのリストの中から、公開鍵62bを含むファイルを選択する。すると選択されたファイルのファイル名が、テキストボックス84aに設定される。
ユーザ41がOKボタン84cを押下すると、端末装置100は、テキストボックス84aに示されているファイル内の公開鍵62bの破棄を示すブロック(リファレンスフラグ62aの値が「−1」)の登録要求を、ブロックチェーンノード200に送信する。またユーザ41がキャンセルボタン84dを押下すると、端末装置100は、ブロックの登録要求を送信せずに、公開鍵無効化画面84を閉じる。
無効化が正常に終了すると、例えば端末装置100の画面に、無効化結果画面85が表示される。無効化結果画面85には、公開鍵表示部85aに、無効化された公開鍵62bが表示される。ユーザ41がOKボタン85bを押下すると、端末装置100は、無効化結果画面85を閉じる。
以上のようにして、ブロックチェーンネットワーク61を用いて公開鍵証明書の発行および管理を行うことができる。その結果、証明書管理サーバで公開鍵証明書の発行や管理を行う場合に比べ、可用性が向上する。すなわち第2の実施の形態では、公開鍵62bの発行や管理処理が集中化してしまうことがなく、特定のサーバのダウンにより、公開鍵証明書が発行できなくなったり、公開鍵62bが参照できなくなったりすることが抑止される。
しかも、第2の実施の形態では、複数の管理者の多数決で承認を行うため、登録ミスを防止できる。さらに、複数の管理者で承認を行うため、ある承認者が公開鍵62bを承認できない場合でも他の管理者がその公開鍵62bを承認することができる。その結果、公開鍵証明書が発行されるまでの時間を短縮できる。
さらに第2の実施の形態では、公開鍵62bを管理するブロックにリファレンスフラグ62aを設け、リファレンスフラグ62aによって登録・有効・無効の各状態を管理している。これにより、例えば公開鍵62bを無効化する場合、ユーザ41自身が、公開鍵62bの破棄を示すブロックを登録するだけでよい、管理者の手間をかけずに済むとともに、無効化を迅速に行うことができる。
〔第3の実施の形態〕
次に、第3の実施の形態について説明する。第3の実施の形態は、電子署名をする際に、署名の対象のハッシュ値を計算せず、直接署名を付与するものである。ハッシュ値の計算を省略することで、処理の効率化が可能となる。以下、図23〜図31を参照し、第3の実施の形態における第2の実施の形態との相違点を説明する。
図23は、第3の実施の形態における公開鍵登録用のブロックの作成例を示す図である。第3の実施の形態では、端末装置100は、公開鍵62bを、ユーザ41の秘密鍵62mで暗号化する。そして公開鍵62bを直接暗号化したデータが、ユーザ41の署名62c−1となる。
図24は、第3の実施の形態における最初の登録承認時のブロックの作成例を示す図である。第3の実施の形態では、端末装置100aは、公開鍵62bと、その公開鍵62bの所有者の署名62c−1とを、管理者51の秘密鍵72で暗号化する。暗号化したデータが、管理者51の署名62d−1となる。
図25は、第3の実施の形態におけるN番目の登録承認時のブロックの作成例を示す図である。端末装置100bは、公開鍵62b、その公開鍵62bの所有者の署名62c−1、および1番目からN−1番目の管理者の署名62d−1,・・・,62n−1を、管理者52の秘密鍵74で暗号化する。暗号化したデータが、管理者52の署名62f−1となる。
図26は、第3の実施の形態における公開鍵破棄時のブロックの作成例を示す図である。端末装置100は、公開鍵62b、その公開鍵62bの所有者の署名62c−1、および1番目からN番目の管理者の署名62d−1,・・・,62f−1を、ユーザ41の秘密鍵62mで暗号化する。暗号化したデータが、ユーザ41の署名62n−1となる。
図27は、第3の実施の形態におけるスマートコントラクトによる公開鍵の無効化の例を示す図である。スマートコントラクト232は、ブロック62−5に含まれるすべての署名(公開鍵証明書62jを含む)と、値が「−1」のリファレンスフラグ62aとを、スマートコントラクト232の秘密鍵78で暗号化する。暗号化されたデータが、スマートコントラクト232の署名62o−1である。
図28は、第3の実施の形態における公開鍵登録処理の手順の一例を示すシーケンス図である。図28に示す処理のうち、第2の実施の形態(図14参照)と相違するのは、ステップS103aの処理である。第3の実施の形態では、ステップS103aにおいて、端末装置100は、ハッシュ値を計算せずに、ユーザ41の公開鍵62bに、ユーザ41の秘密鍵62mで電子署名をする。
図29は、第3の実施の形態における登録承認処理の手順の一例を示すシーケンス図である。図29に示す処理のうち、第2の実施の形態(図15参照)と相違するのは、ステップS113aの処理である。第3の実施の形態では、ステップS113aにおいて、端末装置100aは、ハッシュ値を計算せずに、ユーザ41の公開鍵62bと署名とに、管理者51の秘密鍵72で電子署名をする。
図30は、第3の実施の形態における公開鍵証明書発行処理の手順の一例を示すシーケンス図である。図30に示す処理のうち、第2の実施の形態(図16参照)と相違するのは、ステップS125aの処理である。第3の実施の形態では、ステップS125aにおいて、スマートコントラクト232aは、ハッシュ値を計算せずに、ユーザ41の公開鍵62bにスマートコントラクト232aの秘密鍵76で署名した公開鍵証明書62jを作成する。
図31は、第3の実施の形態における公開鍵の破棄処理の手順の一例を示すシーケンス図である。図31に示す処理のうち、第2の実施の形態(図17参照)と相違するのは、ステップS134aの処理である。第3の実施の形態では、ステップS134aにおいて、端末装置100は、ハッシュ値を計算せずに、公開鍵62b、各種署名、および公開鍵証明書62jに、ユーザ41の秘密鍵62mで電子署名をする。
図32は、第3の実施の形態における公開鍵無効化処理の手順の一例を示すシーケンス図である。図32に示す処理のうち、第2の実施の形態(図18参照)と相違するのは、ステップS145aの処理である。第3の実施の形態では、ステップS145aにおいて、スマートコントラクト232は、ハッシュ値を計算せずに、すべての署名(公開鍵証明書62jを含む)とリファレンスフラグ62aに、スマートコントラクト232の秘密鍵78で電子署名をする。
図33は、第3の実施の形態における公開鍵使用手順の一例を示すシーケンス図である。図33に示す処理のうち、第2の実施の形態(図19参照)と相違するのは、ステップS154aの処理である。第3の実施の形態では、ステップS154aにおいて、端末装置100cは、ハッシュ値ではなく、ユーザ41の公開鍵62bの比較により、スマートコントラクト232aの署名を検証する。
このように第3の実施の形態では、ハッシュ値の計算を省略しているため、処理を効率的に行うことができる。
〔その他の実施の形態〕
第2、第3の実施の形態では、ブロックチェーンネットワーク60を用いた取引に使用する公開鍵証明書をブロックチェーンネットワーク61で発行しているが、これは、公開鍵証明書の用途の一例である。すなわち、ブロックチェーンネットワーク61を用いた公開鍵証明書は、ブロックチェーンネットワーク60以外にも利用できる。
また第2、第3の実施の形態では、公開鍵62bについて証明書を発行しているが、他の情報について、その情報の所有者の証明する証明書を発行することもできる。
以上、実施の形態を例示したが、実施の形態で示した各部の構成は同様の機能を有する他のものに置換することができる。また、他の任意の構成物や工程が付加されてもよい。さらに、前述した実施の形態のうちの任意の2以上の構成(特徴)を組み合わせたものであってもよい。
1 ネットワーク
2a,2b,2c 端末装置
3a,3b,3c ブロックチェーンノード
4,4−1,4−2,4−3 ブロック
4a 証明対象情報
4b,5a,5n,6a 電子署名
6 電子証明書
7 証明書発行部
8 ユーザ
9a,9b 管理者

Claims (6)

  1. ブロックチェーンによって複数のブロックを保持するネットワークへ、ユーザが所有する証明対象情報を含む第1ブロックの登録要求を出力する第1の端末装置と、
    前記ネットワークから、前記証明対象情報を含むブロックを、承認対象ブロックとして取得し、管理者からの入力に応じて、前記証明対象情報の登録承認を示す電子署名と前記承認対象ブロックとを含む第2ブロックの登録要求を、前記ネットワークへ出力する複数の第2の端末装置と、
    前記ネットワークに属し、前記第1または第2ブロックの登録要求に応じて、前記第1または第2ブロックをブロックチェーンによって分散して保持し、保持した前記第2ブロックのなかに、包含する前記電子署名の数が所定数に達した署名数充足ブロックがある場合、前記証明対象情報の所有者を証明する電子証明書と前記署名数充足ブロックとを含む第3ブロックを、ブロックチェーンによって分散して保持する複数のブロックチェーンノードと、
    を有する証明書配付システム。
  2. 前記複数のブロックチェーンノードのうちの一ブロックチェーンノードは、前記証明対象情報を前記一ブロックチェーンノード自身の秘密鍵で暗号化した有効化用電子署名を、前記証明対象情報に付与することで、前記電子証明書を作成し、
    さらに、
    前記一ブロックチェーンノードの公開鍵を取得し、取得した前記公開鍵により前記電子証明書の正当性を検証し、正しく検証できた場合、前記証明対象情報の所有者が前記ユーザであると判断する第3端末装置を有する、
    請求項1記載の証明書配付システム。
  3. 前記第1の端末装置は、前記ユーザからの、前記証明対象情報の破棄を指示する入力に応じて、破棄を示すフラグと前記第3ブロックとを含む第4ブロックの登録要求を、前記ネットワークへ出力し、
    前記複数のブロックチェーンノードは、前記第4ブロックの登録要求に応じて、前記第4ブロックをブロックチェーンによって分散して保持すると共に、前記第4ブロックに破棄を示す前記フラグが含まれることを検出すると、前記第4ブロックに含まれる情報に対するブロックチェーンノード自身の無効化用電子署名と前記第4ブロックとを含む第5ブロックを、ブロックチェーンによって分散して保持する、
    請求項1または2に記載の証明書配付システム。
  4. 前記第1の端末装置は、前記第4ブロックに、前記第3ブロック内の情報に対する前記ユーザの所有者電子署名を含め、
    前記複数のブロックチェーンノードは、前記第4ブロックに破棄を示す前記フラグが含まれることを検出した場合、前記ユーザの所有者公開鍵を用いて、前記第3ブロック内の情報に対する前記所有者電子署名の正当性を検証し、正当であることが確認できた場合、前記第5ブロックを作成し、作成した前記第5ブロックをブロックチェーンによって分散して保持する、
    請求項3記載の証明書配付システム。
  5. 第1の端末装置が、ブロックチェーンによって複数のブロックを保持するネットワークへ、ユーザが所有する証明対象情報を含む第1ブロックの登録要求を出力し、
    前記ネットワークに属する複数のブロックチェーンノードが、前記第1ブロックの登録要求に応じて、前記第1ブロックをブロックチェーンによって分散して保持し、
    複数の第2の端末装置が、前記ネットワークから、前記証明対象情報を含むブロックを、承認対象ブロックとして取得し、管理者からの入力に応じて、前記証明対象情報の登録承認を示す電子署名と前記承認対象ブロックとを含む第2ブロックの登録要求を、前記ネットワークへ出力し、
    前記複数のブロックチェーンノードが、前記第2ブロックの登録要求に応じて、前記第2ブロックをブロックチェーンによって分散して保持し、
    複数のブロックチェーンノードのうちの1台が、保持した前記第2ブロックのなかに、包含する前記電子署名の数が所定数に達した署名数充足ブロックがある場合、前記証明対象情報の所有者を証明する電子証明書と前記署名数充足ブロックとを含む第3ブロックを作成し、
    複数のブロックチェーンノードが、前記第3ブロックをブロックチェーンによって分散して保持する、
    証明書配付方法。
  6. ブロックチェーンによって複数のブロックを保持するネットワークに属するコンピュータに、
    前記複数のブロックのなかに、ユーザが所有する証明対象情報と、前記証明対象情報の登録承認を示す、所定数に達した電子署名とを含む署名数充足ブロックがある場合、前記証明対象情報の所有者を証明する電子証明書と前記署名数充足ブロックとを含むブロックを作成し、
    作成した前記ブロックを保持すると共に、前記ネットワークに属する他のコンピュータに、前記ブロックを送信する、
    処理を実行させる証明書配付プログラム。
JP2017007755A 2017-01-19 2017-01-19 証明書配付システム、証明書配付方法、および証明書配付プログラム Active JP6826290B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2017007755A JP6826290B2 (ja) 2017-01-19 2017-01-19 証明書配付システム、証明書配付方法、および証明書配付プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2017007755A JP6826290B2 (ja) 2017-01-19 2017-01-19 証明書配付システム、証明書配付方法、および証明書配付プログラム

Publications (2)

Publication Number Publication Date
JP2018117287A JP2018117287A (ja) 2018-07-26
JP6826290B2 true JP6826290B2 (ja) 2021-02-03

Family

ID=62984366

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017007755A Active JP6826290B2 (ja) 2017-01-19 2017-01-19 証明書配付システム、証明書配付方法、および証明書配付プログラム

Country Status (1)

Country Link
JP (1) JP6826290B2 (ja)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20200184430A1 (en) * 2018-08-01 2020-06-11 Mallservice Inc. Electronic ticket management system, electronic ticket management method and electronic ticket management program
CN109345240B (zh) * 2018-09-13 2022-03-04 海智(天津)大数据服务有限公司 一种基于区块链的电子营业执照应用***和方法
JP7209518B2 (ja) 2018-12-03 2023-01-20 富士通株式会社 通信装置、通信方法、および通信プログラム
WO2020170685A1 (ja) 2019-02-22 2020-08-27 ソニー株式会社 情報処理装置、情報処理方法、及びプログラム
US10708068B2 (en) * 2019-02-28 2020-07-07 Alibaba Group Holding Limited System and method for implementing blockchain-based digital certificates
EP3863220A1 (en) 2019-02-28 2021-08-11 Advanced New Technologies Co., Ltd. System and method for generating digital marks
JP7170898B2 (ja) * 2019-03-06 2022-11-14 エヌイーシー ラボラトリーズ ヨーロッパ ゲーエムベーハー 暗号通貨用チューリング完全型スマートコントラクト
US20220391861A1 (en) * 2019-11-15 2022-12-08 Sony Group Corporation Information processing system, information processing device, and information processing method
JP7011276B2 (ja) * 2020-01-23 2022-01-26 学校法人東京理科大学 登録装置、検証装置、識別装置、及び個体識別システム
JP7331714B2 (ja) 2020-01-27 2023-08-23 富士通株式会社 情報処理装置、情報処理方法及びプログラム
JP7224653B2 (ja) * 2020-02-13 2023-02-20 株式会社モールサービス 電子チケット管理システム、電子チケット管理方法及び電子チケット管理プログラム
CN111312352B (zh) * 2020-02-19 2023-07-21 百度在线网络技术(北京)有限公司 一种基于区块链的数据处理方法、装置、设备和介质
US20230146229A1 (en) * 2020-03-23 2023-05-11 Sony Group Corporation Entity, gateway device, information processing device, information processing system, and information processing method
JPWO2022009429A1 (ja) * 2020-07-10 2022-01-13
CN113010871B (zh) * 2021-03-16 2023-04-28 中南大学 基于联盟区块链平台的电子学历证书验证方法
WO2023042434A1 (ja) * 2021-09-16 2023-03-23 ソニーグループ株式会社 情報処理装置、情報処理方法、及び、プログラム

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000076344A (ja) * 1998-09-02 2000-03-14 Nippon Telegr & Teleph Corp <Ntt> 電子合意制御方法及び電子合意制御システム及び電子合意制御プログラムを記録した記録媒体
DE10336148A1 (de) * 2003-08-07 2005-03-10 Bayerische Motoren Werke Ag Verfahren zum Signieren einer Datenmenge in einem Public-Key-System sowie ein Datenverarbeitungssystem zur Durchführung des Verfahrens
JP2008186064A (ja) * 2007-01-26 2008-08-14 Nec Corp 分散認証システム、分散認証方法、及び分散認証プログラム
JP5548419B2 (ja) * 2009-09-30 2014-07-16 富士通株式会社 署名生成装置、署名検証装置、署名生成方法、署名検証方法、署名生成プログラム、および署名検証プログラム
JP6042766B2 (ja) * 2013-04-26 2016-12-14 株式会社日立システムズ 電子取引システム、電子取引方法、及びプログラム
EP3271824A4 (en) * 2015-03-20 2018-09-05 Rivetz Corp. Automated attestation of device integrity using the block chain

Also Published As

Publication number Publication date
JP2018117287A (ja) 2018-07-26

Similar Documents

Publication Publication Date Title
JP6826290B2 (ja) 証明書配付システム、証明書配付方法、および証明書配付プログラム
US11475137B2 (en) Distributed data storage by means of authorisation token
CN110968743B (zh) 针对隐私数据的数据存储、数据读取方法及装置
JP6547079B1 (ja) 登録・認可方法、装置及びシステム
US10061914B2 (en) Account recovery protocol
JP6526244B2 (ja) ドメインネームサービスを介するプライベートキーの安全な委任された配信
US8627083B2 (en) Online secure device provisioning with online device binding using whitelists
US10708047B2 (en) Computer-readable recording medium storing update program and update method, and computer-readable recording medium storing management program and management method
US7823187B2 (en) Communication processing method and system relating to authentication information
US9137017B2 (en) Key recovery mechanism
US9130928B2 (en) Online secure device provisioning framework
US20110258434A1 (en) Online secure device provisioning with updated offline identity data generation and offline device binding
EP2954639A1 (en) Method and apparatus for embedding secret information in digital certificates
JP2011082983A (ja) ネットワークリソースを保護するための装置及び方法
JP2011109202A (ja) 長期署名用サーバ、長期署名用端末、長期署名用端末プログラム、及び長期署名検証用サーバ
JP4525609B2 (ja) 権限管理サーバ、権限管理方法、権限管理プログラム
JP5012574B2 (ja) 共通鍵自動共有システム及び共通鍵自動共有方法
JP5494171B2 (ja) ファイル管理システム、ストレージサーバ、クライアント、ファイル管理方法およびプログラム
JP2014022920A (ja) 電子署名システム、電子署名方法および電子署名プログラム
KR102400455B1 (ko) 분산 서비스 환경에서의 사용자 개인키 백업 및 복원 프레임워크
JP6678842B1 (ja) データ配信システム、データ処理装置、及びプログラム
US11509468B2 (en) Method and system for verifying secret decryption capability of escrow agents
JP2013017089A (ja) 電子署名システム、署名サーバ、署名者クライアント、電子署名方法、およびプログラム
JP2023132485A (ja) 証明書管理装置、証明書管理システム及び証明書管理方法
JP2012239233A (ja) 長期署名検証用サーバ、及び署名検証用サーバ

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20191008

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20191011

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20191011

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20201030

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20201215

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20201228

R150 Certificate of patent or registration of utility model

Ref document number: 6826290

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150