(57)【要約】      （修正有）【課題】送受信する電子データを暗号化／復号化する鍵情報の生成及び管理をブロックチェーン上で行うことで、電子データの安全性及び秘匿性を保つと共に、情報流通の制限を可能とする情報通信プログラム等を提供する。【解決手段】ブロックチェーン１２上で所定の処理を実行するＢＣ実行部１２１に対して、鍵情報の作成依頼情報を送信すると共に、ＢＣ実行部１２１にて作成された鍵情報を受信する暗号鍵取得部２３、鍵情報を用いて電子データを暗号化し、他のコンピュータ宛てに送信する暗号化送信情報を作成する暗号化部２４、他のコンピュータからの暗号化送信情報を受信した場合に、当該受信した暗号化送信情報を復号化するための鍵情報の取得依頼情報をＢＣ実行部１２１に対して送信すると共に、ＢＣ実行部１２１からの鍵情報を受信する秘密鍵取得部、受信した鍵情報を用いて暗号化送信情報を復号化する復号化部として情報通信端末１０ａを機能させる。【選択図】図２
2020057863.tif 000002
【特許請求の範囲】
【請求項１】
ブロックチェーン上で所定の処理を実行するＢＣ実行手段に対して、他のコンピュータに送信する送信用電子データを暗号化及び復号化するための鍵情報の作成依頼情報を送信すると共に、前記ＢＣ実行手段にて作成された前記鍵情報を受信する暗号鍵取得手段、
受信した前記鍵情報を用いて前記送信用電子データを暗号化し、前記他のコンピュータ宛てに送信する暗号化送信情報を作成する暗号化送信情報作成手段、
他のコンピュータから送信された暗号化送信情報を受信した場合に、当該受信した暗号化送信情報を復号化するための鍵情報の取得依頼情報を前記ＢＣ実行手段に対して送信すると共に、前記ＢＣ実行手段から送信された前記鍵情報を受信する復号鍵取得手段、
受信した前記鍵情報を用いて前記暗号化送信情報を復号化する復号化手段としてコンピュータを機能させることを特徴とする情報通信プログラム。
【請求項２】
請求項１に記載の情報通信プログラムにおいて、
前記ＢＣ実行手段の処理により前記ブロックチェーン上に記憶されている鍵情報であって、前記他のコンピュータに送信された前記暗号化送信情報に対応する鍵情報を無効化するための依頼情報を前記ＢＣ実行手段に対して送信する送信取消手段としてコンピュータを機能させる情報通信プログラム。
【請求項３】
請求項１又は２に記載の情報通信プログラムにおいて、
前記送信用電子データへのアクセス制限に関する制限情報を前記ＢＣ実行手段に送信する制限情報送信手段としてコンピュータを機能させる情報通信プログラム。
【請求項４】
請求項３に記載の情報通信プログラムにおいて、
前記復号鍵取得手段が、前記鍵情報と共に前記制限情報を受信し、前記復号化手段が、前記制限情報における制限の解除条件を満たす場合に前記暗号化送信情報を復号化する情報通信プログラム。
【請求項５】
請求項１ないし４のいずれかに記載の情報通信プログラムにおいて、
前記送信用電子データに対して当該送信用電子データを変更する所定の処理を行った後の当該送信用電子データのハッシュ値を計算するハッシュ値計算手段としてコンピュータを機能させ、
前記暗号鍵取得手段が、前記作成依頼情報の送信と共に前記ハッシュ値の情報を前記ＢＣ実行手段に送信する情報通信プログラム。
【請求項６】
請求項５に記載の情報通信プログラムにおいて、
前記ハッシュ値計算手段が行う前記送信用電子データに対する所定の処理が、前記送信用電子データに対して透かし情報を埋め込む処理である情報通信プログラム。
【請求項７】
ブロックチェーン上で所定の処理を実行するようにコンピュータを機能させる情報処理プログラムであって、
他のコンピュータが別の他のコンピュータに送信するための送信用電子データを暗号化及び復号化するための鍵情報の作成依頼を受けて前記送信用電子データに対応する前記鍵情報を作成し、前記ブロックチェーン上に記憶する鍵作成手段、
前記他のコンピュータが受信した暗号化された前記送信用電子データを復号化するための鍵情報の取得依頼を受けて、当該送信用電子データに対応する鍵情報をブロックチェーンから取得して前記他のコンピュータに送信する復号鍵送信手段としてコンピュータを機能させることを特徴とする情報処理プログラム。
【請求項８】
請求項７に記載の情報処理プログラムにおいて、
前記他のコンピュータから暗号化された前記送信用電子データに対応する鍵情報を無効化するための依頼情報を受信した場合に、当該鍵情報を無効化する鍵無効化手段としてコンピュータを機能させる情報処理プログラム。
【請求項９】
請求項７又は８に記載の情報処理プログラムにおいて、
前記他のコンピュータから前記送信用電子データへのアクセス制限に関する制限情報を受信した場合に、当該制限情報をブロックチェーン上に記憶すると共に、前記復号鍵送信手段が、前記他のコンピュータから別の他のコンピュータに送信された暗号化された前記送信用電子データにアクセスするための鍵情報を、前記制限情報における制限の解除条件を満たすときに前記別の他のコンピュータに送信する情報処理プログラム。
【請求項１０】
請求項７ないし９のいずれかに記載の情報処理プログラムにおいて、
前記他のコンピュータから前記送信用電子データのハッシュ値に関する情報を受信した場合に、ブロックチェーン上に既に記憶され、当該送信用電子データに対応付けられている他のハッシュ値の情報と同一の値である場合には、前記他のコンピュータに対して前記送信用電子データが無効である旨の情報を通知する判定手段としてコンピュータを機能させる情報処理プログラム。
【請求項１１】
他のコンピュータに送信する送信用電子データに対して当該送信用電子データを変更する所定の処理を行った後の前記送信用電子データのハッシュ値を計算するハッシュ値計算手段、
前記送信用電子データを他のコンピュータ宛てに送信すると共に、計算された前記ハッシュ値の情報をブロックチェーン上で所定の処理を実行するＢＣ実行手段に対して送信する送信手段としてコンピュータを機能させることを特徴とする情報通信プログラム。
【請求項１２】
請求項１１に記載の情報通信プログラムにおいて、
前記所定の処理が、前記送信用電子データに対して電子透かし情報を埋め込む処理である情報通信プログラム。
【請求項１３】
ブロックチェーン上で所定の処理を実行するようにコンピュータを機能させる情報処理プログラムであって、
他のコンピュータが別の他のコンピュータに送信するための送信用電子データのハッシュ値の情報を受けて、当該ハッシュ値の情報を前記送信用電子データに対応付けて前記ブロックチェーン上に記憶するハッシュ値記憶手段、
受信した前記ハッシュ値の情報と前記ブロックチェーン上に既に記憶されている前記送信用電子データに対応するハッシュ値の情報とを比較する比較手段、
受信した前記ハッシュ値の情報と同一のハッシュ値の情報が既に前記ブロックチェーンに記憶されている場合に、当該ハッシュ値に係る前記送信用電子データが無効である旨の情報を前記他のコンピュータに送信する送信手段としてコンピュータを機能させることを特徴とする情報処理プログラム。
【請求項１４】
ブロックチェーン上で所定の処理を実行するＢＣ実行手段に対して、他のコンピュータに送信する送信用電子データを暗号化及び復号化するための鍵情報の作成依頼情報を送信すると共に、前記ＢＣ実行手段にて作成された前記鍵情報を受信する暗号鍵取得手段と、
受信した前記鍵情報を用いて前記送信用電子データを暗号化し、前記他のコンピュータ宛てに送信する暗号化送信情報を作成する暗号化送信情報作成手段と、
他のコンピュータから送信された暗号化送信情報を受信した場合に、当該受信した暗号化送信情報を復号化するための鍵情報の取得依頼情報を前記ＢＣ実行手段に対して送信すると共に、前記ＢＣ実行手段から送信された前記鍵情報を受信する復号鍵取得手段と、
受信した前記鍵情報を用いて前記暗号化送信情報を復号化する復号化手段とを備えることを特徴とする情報通信装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ブロックチェーン上で管理される鍵情報を用いて情報通信を行うための情報通信プログラム等に関する。
【背景技術】
【０００２】
近年ブロックチェーンを利用した分散型ネットワークが実現され、ネットワーク上での決済、証明、契約等の取引を安全に行うことが可能となっている。ブロックチェーンを利用すると、第３者機関を介することなくネットワーク上で安全且つ簡単に適正な取引を行うことができ、今後益々ネットワークを利用した取引が増えると考えられる。
【０００３】
ここで、ブロックチェーンを用いた情報通信技術として、例えば特許文献１に示す技術が開示されている。特許文献１に示す技術は、第１端末装置は、データを格納部に格納し、第１端末装置は、格納部に格納されたデータの位置を示す位置情報及び当該データを取得するために用いられる情報として設定されている設定情報を暗号化し、第１端末装置は、暗号化された位置情報及び設定情報位を含むブロックをブロックチェーンに追加し、第２端末装置２０は、ブロックがブロックチェーンに追加された場合、当該ブロックに含まれる位置情報及び設定情報を復号化し、第２端末装置２０は、復号化された位置情報及び設定情報を用いて格納部にアクセスし、データを格納部から取得するものである。
【０００４】
また、例えば非特許文献１に示す技術が開示されている。非特許文献１に示す技術では、送信者が作成した公開鍵暗号方式の秘密鍵を、秘密分散法を用いて分割してオンライン上に保存し、保存先アドレスをブロックチェーンネットワーク上に記録しておく。分割された秘密鍵を所持する端末が規定の日時に秘密鍵を消去することで、その日時以降、情報にアクセスできなくするものである。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特許第６３２６１７３号公報
【非特許文献】
【０００６】
【非特許文献１】今田丈雅，松浦幹太、“ブロックチェーンと秘密分散法を用いた情報ライフサイクル制御”、コンピュータセキュリティシンポジウム（CSS2017）、２０１７．１０．２３−２５、６８８−６９５頁
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、特許文献１に示す技術は、鍵情報の生成や管理を各端末装置で行うものであり、データの安全性の面では鍵情報の流出等が生じる可能性があるため十分であるとは言えないという問題がある。
【０００８】
また、非特許文献１に示す技術は、鍵情報の生成を各端末装置で行うものであり、データの安全性の面では鍵情報の流出等が生じる可能性があるため十分であるとは言えないという問題がある。また、生成した鍵情報はオンライン上で分散管理するものの、鍵情報を削除する処理は各端末装置にゆだねられている。このため、複数台の端末装置が協力して鍵情報の削除処理を行わないことで、情報が削除されずに流出等が生じる可能性があるという問題がある。
【０００９】
本発明は、電子データを送受信する際に当該電子データを暗号化／復号化する鍵情報の生成及び管理をブロックチェーン上に構成される仮想マシンで自律的に行うことで、電子データの安全性及び秘匿性を保つと共に、情報流通の制限を可能とする情報通信プログラム等を提供する。
【課題を解決するための手段】
【００１０】
本発明に係る情報通信プログラムは、ブロックチェーン（ＢＣ）上で所定の処理を実行するＢＣ実行手段に対して、他のコンピュータに送信する送信用電子データを暗号化及び復号化するための鍵情報の作成依頼情報を送信すると共に、前記ＢＣ実行手段にて作成された前記鍵情報を受信する暗号鍵取得手段、受信した前記鍵情報を用いて前記送信用電子データを暗号化し、前記他のコンピュータ宛てに送信する暗号化送信情報を作成する暗号化送信情報作成手段、他のコンピュータから送信された暗号化送信情報を受信した場合に、当該受信した暗号化送信情報を復号化するための鍵情報の取得依頼情報を前記ＢＣ実行手段に対して送信すると共に、前記ＢＣ実行手段から送信された前記鍵情報を受信する復号鍵取得手段、受信した前記鍵情報を用いて前記暗号化送信情報を復号化する復号化手段としてコンピュータを機能させるものである。
【００１１】
このように、本発明に係る情報通信プログラムにおいては、ブロックチェーン上に構成される仮想マシンで所定の処理を自律的に実行するＢＣ実行手段が、送信用電子データを暗号化及び復号化するための鍵情報の作成を行い、それらの鍵情報を使用して電子データの送受信を行うため、鍵情報の作成及び管理をブロックチェーン上で極めて安全且つ容易に行うことができると共に、電子データの送受信における安全性を格段に向上させることができるという効果を奏する。
【００１２】
本発明に係る情報通信プログラムは、必要に応じて、前記ＢＣ実行手段の処理により前記ブロックチェーン上に記憶されている鍵情報であって、前記他のコンピュータに送信された前記暗号化送信情報に対応する鍵情報を無効化するための依頼情報を前記ＢＣ実行手段に対して送信する送信取消手段としてコンピュータを機能させるものである。
【００１３】
このように、本発明に係る情報通信プログラムにおいては、ＢＣ実行手段の処理によりブロックチェーン上に記憶されている鍵情報であって、他のコンピュータに送信された暗号化送信情報に対応する鍵情報を無効化するための依頼情報をＢＣ実行手段に対して送信する送信取消手段としてコンピュータを機能させるため、暗号化送信情報を他のコンピュータに対して送信した後であっても、鍵情報を無効化することで、暗号化送信情報を復号化することができなくなり、暗号化送信情報の送信処理を取り消すことができるという効果を奏する。
【００１４】
本発明に係る情報通信プログラムは、必要に応じて、送信用電子データへのアクセス制限に関する制限情報をＢＣ実行手段に送信する制限情報送信手段としてコンピュータを機能させるものである。
【００１５】
このように、本発明に係る情報通信プログラムにおいては、送信用電子データへのアクセス制限に関する制限情報をＢＣ実行手段に送信する制限情報送信手段としてコンピュータを機能させるため、送信用電子データのアクセスに制限（例えば、時間的制限、内容の制限、編集の制限、容量の制限等）を設けて送信することが可能になるという効果を奏する。
【００１６】
本発明に係る情報通信プログラムは、必要に応じて、前記復号鍵取得手段が、前記鍵情報と共に前記制限情報を受信し、前記復号化手段が、前記制限情報における制限の解除条件を満たす場合に前記暗号化送信情報を復号化するものである。
【００１７】
このように、本発明に係る情報通信プログラムにおいては、復号鍵の情報と共に制限情報を受信した場合に、当該制限情報における制限の解除条件を満たす場合に暗号化送信情報を復号化するため、送信者側は制限情報を作成することにより、暗号化送信情報へのアクセスを任意に制限することが可能になるという効果を奏する。
【００１８】
本発明に係る情報通信プログラムは、必要に応じて、前記送信用電子データに対して当該送信用電子データを変更する所定の処理を行った後の当該送信用電子データのハッシュ値を計算するハッシュ値計算手段としてコンピュータを機能させ、前記暗号鍵取得手段が、前記作成依頼情報の送信と共に前記ハッシュ値の情報を前記ＢＣ実行手段に送信するものである。
【００１９】
このように、本発明に係る情報通信プログラムにおいては、送信用電子データに対して当該送信用電子データを変更する所定の処理を行った後の当該送信用電子データのハッシュ値を計算するハッシュ値計算手段としてコンピュータを機能させ、暗号鍵取得手段が、作成依頼情報の送信と共にハッシュ値の情報をＢＣ実行手段に送信するため、送信用電子データのハッシュ値が所定の処理に応じた固有のハッシュ値となり、送信用電子データが転々流通する際に、その都度異なるハッシュ値情報がブロックチェーン上に記憶され、万が一送信用電子データが流出した場合であっても、ハッシュ値を計算して比較することでその流出元を特定することができるという効果を奏する。
【００２０】
本発明に係る情報通信プログラムは、必要に応じて、前記ハッシュ値計算手段が行う前記送信用電子データに対する所定の処理が、前記送信用電子データに対して透かし情報を埋め込む処理とするものである。
【００２１】
このように、本発明に係る情報通信プログラムにおいては、ハッシュ値計算手段が行う送信用電子データに対する所定の処理が、送信用電子データに対して透かし情報を埋め込む処理であるため、送信用電子データの一部のみが流出した場合や、流出した送信用電子データのハッシュ値と流出元で記憶されている送信用電子データのハッシュ値とが万が一違う値になる場合（例えば、流出後にごく一部のデータ（例えば、１ビット）のみが破壊された場合等）であっても、透かし情報により流出元の送信用電子データと流出した送信用電子データとの一致性を判断することが可能になるという効果を奏する。
【００２２】
本発明に係る情報処理プログラムは、ブロックチェーン上で所定の処理を実行するようにコンピュータを機能させる情報処理プログラムであって、他のコンピュータが別の他のコンピュータに送信するための送信用電子データを暗号化及び復号化するための鍵情報の作成依頼を受けて前記送信用電子データに対応する前記鍵情報を作成し、前記ブロックチェーン上に記憶する鍵作成手段、前記他のコンピュータが受信した暗号化された前記送信用電子データを復号化するための鍵情報の取得依頼を受けて、当該送信用電子データに対応する鍵情報をブロックチェーンから取得して前記他のコンピュータに送信する復号鍵送信手段としてコンピュータを機能させるものである。
【００２３】
このように、本発明に係る情報処理プログラムにおいては、送受信される電子データの鍵情報の作成及び管理をブロックチェーン上で行うため、鍵情報の作成及び管理の処理に手間を掛ける必要がなくなると共に、送受信される電子データの安全性及び秘匿性を格段に向上させることができるという効果を奏する。
【００２４】
本発明に係る情報処理プログラムは、必要に応じて、前記他のコンピュータから暗号化された前記送信用電子データに対応する鍵情報を無効化するための依頼情報を受信した場合に、当該鍵情報を無効化する鍵無効化手段としてコンピュータを機能させるものである。
【００２５】
このように、本発明に係る情報処理プログラムにおいては、他のコンピュータから暗号化された送信用電子データに対応する鍵情報を無効化するための依頼情報を受信した場合に、当該鍵情報を無効化する鍵無効化手段としてコンピュータを機能させるため、暗号化された送信用電子データを他のコンピュータに対して送信した後であっても、鍵情報を無効化することで、送信用電子データを復号化することができなくなり、送信用電子データの送信処理を取り消すことができるという効果を奏する。
【００２６】
本発明に係る情報処理プログラムは、必要に応じて、前記他のコンピュータから前記送信用電子データへのアクセス制限に関する制限情報を受信した場合に、当該制限情報をブロックチェーン上に記憶すると共に、前記復号鍵送信手段が、前記他のコンピュータから別の他のコンピュータに送信された暗号化された前記送信用電子データにアクセスするための鍵情報を、前記制限情報における制限の解除条件を満たすときに前記別の他のコンピュータに送信するものである。
【００２７】
このように、本発明に係る情報処理プログラムにおいては、他のコンピュータから送信用電子データへのアクセス制限に関する制限情報を受信した場合に、当該制限情報をブロックチェーン上に記憶すると共に、復号鍵送信手段が、他のコンピュータから別の他のコンピュータに送信された暗号化された送信用電子データにアクセスするための鍵情報を、制限情報における制限の解除条件を満たすときに別の他のコンピュータに送信するため、送信者側は制限情報を作成することにより、暗号化された送信用電子データへのアクセスを任意に制限することが可能になるという効果を奏する。
【００２８】
本発明に係る情報処理プログラムは、必要に応じて、前記他のコンピュータから前記送信用電子データのハッシュ値に関する情報を受信した場合に、ブロックチェーン上に既に記憶され、当該送信用電子データに対応付けられている他のハッシュ値の情報と同一の値である場合には、前記他のコンピュータに対して前記送信用電子データが無効である旨の情報を通知する判定手段としてコンピュータを機能させるものである。
【００２９】
このように、本発明に係る情報処理プログラムにおいては、他のコンピュータから送信用電子データのハッシュ値に関する情報を受信した場合に、ブロックチェーン上に既に記憶され、当該送信用電子データに対応付けられている他のハッシュ値の情報と同一の値である場合には、他のコンピュータに対して送信用電子データが無効である旨の情報を通知する判定手段としてコンピュータを機能させるため、送信用電子データの送信元を送信ごとに異なる値として記憶されているハッシュ値により個別に識別することが可能となり、送信用電子データが流出したような場合であっても、ハッシュ値の比較を行うことで流出元を特定することが可能になるという効果を奏する。
【図面の簡単な説明】
【００３０】
【図１】第１の実施形態に係る情報通信システムのシステム構成図である。
【図２】第１の実施形態に係る情報通信装置の送信処理に関する構成を示す機能ブロック図である。
【図３】第１の実施形態に係る情報通信システムにおけるデータの一例を示す図である。
【図４】第１の実施形態に係る情報通信装置の受信処理に関する構成を示す機能ブロック図である。
【図５】第１の実施形態に係る情報通信システムの送信処理を示すフローチャートである。
【図６】第１の実施形態に係る情報通信システムの受信処理を示すフローチャートである。
【図７】第２の実施形態に係る情報通信システムの送信取消処理に関する構成を示す機能ブロック図である。
【図８】第２の実施形態に係る情報通信システムの送信取消処理を示すフローチャートである。
【図９】第３の実施形態に係る情報通信システムにおいてハッシュ値計算を行ってブロックチェーンで管理するまでの処理のブロック図である。
【図１０】第３の実施形態に係る情報通信システムにおいて流出した電子データが流出元を特定する処理のブロック図である。
【図１１】第３の実施形態に係る情報通信システムのハッシュ値管理処理を示すフローチャートである。
【図１２】第３の実施形態に係る情報通信システムの流通情報取得処理を示すフローチャートである。
【図１３】その他の実施形態に係る情報通信システムの構成を示す機能ブロック図である。
【発明を実施するための形態】
【００３１】
以下、本発明の実施の形態を説明する。また、本実施形態の全体を通して同じ要素には同じ符号を付けている。
【００３２】
（本発明の第１の実施形態）
本実施形態に係る情報通信プログラム及び情報処理プログラムを用いた情報通信システムについて、図１ないし図６を用いて説明する。本実施形態に係る情報通信システムは、電子データの送受信を行う際に当該電子データを暗号化及び復号化するための鍵情報をブロックチェーン上で管理することで、電子データの安全性及び秘匿性を極めて高く保つことができる。
【００３３】
図１は、本実施形態に係る情報通信システムのシステム構成図である。図１において、情報通信システム１は、ユーザが使用し、インターネット１３を介して電子データの送受信を行う情報通信端末１０（１０ａ，１０ｂ）と、情報通信端末１０ａ，１０ｂのそれぞれの利用者間でやり取りされる電子データの鍵情報等を作成・管理するブロックチェーン（実態は分散型のデータベースとその処理を担うネットワークで接続された複数のコンピュータの集合）１２とを備える。なお、例えば情報通信端末１０間で送受信する電子データが電子メールである場合には、それぞれの情報通信端末１０とインターネット１３との間にメール送信サーバやメール受信サーバが接続されるようなシステム構成であってもよい。
【００３４】
ブロックチェーン１２は、分散型データベース技術により構築された分散型データベースに、分散型データベースの編集履歴を共有するための編集履歴共有処理機構を加えたものが、ネットワークで接続された複数のコンピュータにより構築されたものである。また、本実施形態におけるブロックチェーン１２は、ブロックチェーン１２上に構成される仮想マシンで所定の処理を自律的に実行するＢＣ実行手段を備えるものである。ＢＣ実行手段とは、ブロックチェーンの一種であるイーサリアム（Ethereum）ではスマートコントラクトと呼ばれるものである。ＢＣ実行手段を実行する前記仮想マシンは、ブロックチェーンネットワークに接続された複数のコンピュータのうち、マイナーと呼ばれるブロックチェーンのデータベースを更新するために計算資源を提供しているコンピュータにより実行される。マイナーにより提供された計算資源により前記仮想マシンを実行することで、ＢＣ実行手段を実行したり、ブロックチェーンデータベースを更新したりすることを、マイニングと呼ぶ。
【００３５】
なお、ブロックチェーン１２は、イーサリアムやビットコイン（Bitcoin）のように、一方向ハッシュ関数の特性に基づいて分散型データベースの編集履歴を共有する処理機構を有するものに限らず、その他の仕組みで編集履歴を共有する処理機構を有することで、分散型データベースを共有するものであっても良い。
【００３６】
また、ブロックチェーン１２は、イーサリアムやビットコインのように、分散型データベースに追加していくデータをブロックとしてひとまとまりにして追加して更新する機構を有するものに限らず、個々のデータを一つずつ逐次的に追加して更新する機構を有するものや、不定期に追加して更新する機構を有するもの、又はその他の形態で追加して更新する機構を有するものであっても良い。
【００３７】
さらに、ブロックチェーン１２は、イーサリアムやビットコインのように、分散型データベース上に記録されるデータを、１本のチェーンのように連続した１次元的なデータとして追加していくものに限らず、データを複数のチェーンに並行して追加していくものやネットワーク状に追加していくもの、２次元平面的に追加していくもの、３次元など多次元的に追加していくもの、又はその他の形態で追加していくものであっても良い。
【００３８】
さらにまた、ブロックチェーンの一種であるビットコインのように、スマートコントラクトが実装されていないブロックチェーンもあるが、本実施形態におけるブロックチェーンでは、ＢＣ実行手段を備えていることを前提とする。
【００３９】
情報通信システム１では、例えば情報通信端末１０ａから情報通信端末１０ｂに対して電子データを送信する場合に、送信する電子データを暗号化するための鍵情報の作成依頼を情報通信端末１０ａからブロックチェーン１２上で動作するＢＣ実行手段に対して行う。ＢＣ実行手段は、情報通信端末１０ａから受け取った情報に基づいて、送信対象となる電子データに対応する暗号化及び復号化するための鍵情報を作成し、電子データと対応付けてブロックチェーン１２上に記憶する。同時に、ＢＣ実行手段は、情報通信端末１０ａに作成された暗号化するための鍵情報を送信する。情報通信端末１０ａは、ＢＣ実行手段から送信された鍵情報を用いて、送信対象となる電子データを暗号化し、情報通信端末１０ｂに送信する。
【００４０】
情報通信端末１０ａから暗号化された電子データを受信した情報通信端末１０ｂは、当該電子データを復号化するための鍵情報の取得依頼をＢＣ実行手段に対して行う。ＢＣ実行手段は、情報通信端末１０ｂから受け取った情報に基づいて、受信した電子データに対応する鍵情報をブロックチェーン１２から抽出し、情報通信端末１０ｂに送信する。鍵情報を受け取った情報通信端末１０ｂは、その鍵情報で電子データを復号化することで、情報通信端末１０ａから送信された電子データを参照することが可能となる。
【００４１】
まず、本実施形態における送信処理に関わる構成について説明する。図２は、本実施形態に係る情報通信装置の送信処理に関する構成を示す機能ブロック図である。ここでは、仮に情報通信装置１０ａから情報通信装置１０ｂに電子メールが送信される場合の処理を一例として説明する。また、以下の実施形態においては、公開鍵暗号化方式により鍵情報の管理がなされるものについて説明するが、共通鍵暗号化方式を用いることも可能である。
【００４２】
図２において、情報通信端末１０は、送信ユーザの操作に応じて情報の入出力を行う入出力部２１と、入力された操作に応じて送信用の電子メールを作成する送信メール作成部２２と、送信メールを暗号化するための公開鍵を取得する暗号鍵取得部２３と、作成された送信用の電子メールを暗号鍵取得部２３が取得した公開鍵で暗号化する暗号化部２４と、暗号化された送信用の電子メール（以下、暗号化電子メールという）をメールサーバに送信するメール送信部２５と、送信先のメールアドレスとブロックチェーン１２にアクセスするための送信先のユーザのブロックチェーンアカウント（以下、ＢＣアカウントという）とを対応付けて記憶する送信用対応情報記憶部２６と、ブロックチェーン１２へのアクセスの際にそのアカウント所有者であることをブロックチェーンで証明するための電子署名をするために必要となる秘密鍵（以下、ＢＣ秘密鍵という）を記憶する送信用秘密鍵記憶部２７と、ブロックチェーン１２で作成された公開鍵及び復号化するための秘密鍵を含むの鍵情報の識別情報（以下、鍵ＩＤという）を暗号鍵取得部２３が取得し、送信用の電子メールと対応付けて記憶する鍵ＩＤ記憶部２８とを備える。
【００４３】
本実施形態では、ブロックチェーン１２へのアクセスの際にそのアカウント所有者であることをブロックチェーンで証明するための電子署名を用いているが、アカウント所有者であることを確認することができる手段であれば、例えば、MACアドレス認証、IPアドレス認証、パスワード認証など、他の手段でも構わない。
【００４４】
ここで、図３は、本実施形態に係る情報通信システムにおけるデータの一例を示す図である。図３（Ａ）は、送信用対応情報記憶部２６に記憶されているデータの一例を示しており、メールアドレスとＢＣアカウントとが対応付けて記憶されている。つまり、送信先のメールアドレスから送信先のＢＣアカウント（受信者のＢＣアカウント）を抽出することが可能となる。この受信者のＢＣアカウントは、ブロックチェーン１２に対して公開鍵の作成依頼を行う際に作成依頼情報の中に含まれており、ブロックチェーン１２上に構成される仮想マシンに記録される。
【００４５】
また、図３（Ｂ）は、鍵ＩＤ記憶部２８に記憶されているデータの一例を示しており、鍵ＩＤと送信用の電子メールのＩＤとが対応付けて記憶されている。ここで、送信用電子メールのＩＤとは、送信する電子メールごとに付与される識別情報であり、送信用の電子メールを一意に特定することができるＩＤである。
【００４６】
図２に戻って、ブロックチェーン１２では、ブロックチェーン１２上で様々な処理を実行する、例えばスマートコントラクトのようなＢＣ実行部１２１を備えている。ＢＣ実行部１２１は、送信先のＢＣアカウントごとに公開鍵、及び当該公開鍵で暗号化された暗号化電子メールを復号化する秘密鍵を作成し、各鍵情報に鍵ＩＤを付与する鍵情報生成部１２２と、生成された鍵情報（公開鍵及び秘密鍵）と送信先のＢＣアカウントとを対応付けて鍵ＩＤと共にブロックチェーン１２上に記憶する鍵情報記憶部１２３とを備える。
【００４７】
ここで、鍵情報記憶部１２３に記憶されるデータの一例を図３（Ｃ）に示す。鍵情報記憶部１２３には、ＢＣ実行部１２１が作成した送信用の電子メールを暗号化するための公開鍵と、この公開鍵で暗号化された電子メールを復号化するための秘密鍵と、それぞれの鍵情報に対して付与される鍵ＩＤとが対応付けて記憶され、さらに、送信先のＢＣアカウント（受信者のＢＣアカウント）が対応付けて記憶されている。ここで記憶されているＢＣアカウントは、鍵情報へのアクセスを許可するＢＣアカウントとして記憶されるものである。暗号化電子メールの受信者は、鍵ＩＤの情報に基づいて秘密鍵を取得し、その際にＢＣアカウントが一致していれば、秘密鍵を取得することが可能となる。
【００４８】
次に、本実施形態における受信処理に関わる構成について説明する。図４は、本実施形態に係る情報通信装置の受信処理に関する構成を示す機能ブロック図である。ここでは、仮に情報通信装置１０ａから送信された電子メールを情報通信装置１０ｂが受信した場合の処理を一例として説明する。
【００４９】
図４において、情報通信端末１０は、自分宛てに送られた暗号化電子メールをメールサーバから受信するメール受信部３１と、ブロックチェーン１２へのアクセスの際に電子署名をするために必要となる受信ユーザのＢＣ秘密鍵が記憶された受信用秘密鍵記憶部３２と、メール受信部３１が受信した暗号化電子メールに付加されている鍵ＩＤ、及び受信用秘密鍵記憶部３２に記憶されたＢＣ秘密鍵を用いて、暗号化電子メールを復号化するための秘密鍵をブロックチェーン１２から取得する秘密鍵取得部３３と、取得した秘密鍵で暗号化電子メールを復号化する復号化部３４と、復号化した電子メールを入出力部２１を介して受信ユーザに表示する表示部３５とを備える。
【００５０】
また、ブロックチェーン１２では、ＢＣ実行部１２１が、情報通信端末１０から送信された鍵ＩＤの情報に基づいて、暗号化電子メールを復号化するための秘密鍵を鍵情報記憶部１２３から取得する秘密鍵検索部１２４を備えており、取得された秘密鍵が情報通信端末１０に送信される。
【００５１】
次に、図２及び図４の構成による一連の送受信処理の流れを説明する。図５は、本実施形態に係る情報通信システムの送信処理を示すフローチャートである。まず、送信ユーザが入出力部２１を操作し、送信メール作成部２２により送信用の電子メールが作成される（Ｓ１）。暗号鍵取得部２３が、送信用対応情報記憶部２６から送信用の電子メールの送信先のメールアドレスに対応したＢＣアカウントを抽出し、送信用の電子メールを暗号化するための公開鍵を作成する作成依頼情報を生成し、送信用秘密鍵記憶部２７の秘密鍵（ブロックチェーン１２にアクセスするための秘密鍵）で電子署名する（Ｓ２）。このとき、抽出したＢＣアカウントの情報を含めた作成依頼情報が生成される。この送信ユーザのＢＣアカウントが管理する送信用秘密鍵記憶部２７の秘密鍵により電子署名されたブロックチェーンへの依頼内容が記載されたデータをトランザクションと呼ぶ。生成されたトランザクションをブロックチェーン１２に送信する（Ｓ３）。このとき、ブロックチェーン１２は、単一の端末ではなく、ブロックチェーンを構成する多数の端末で構成されるネットワークである。このブロックチェーンネットワーク全体に対してトランザクションを送信することを、ブロードキャストと呼ぶ。
【００５２】
ＢＣ実行部１２１の鍵情報生成部１２２が、送信用の電子メールを暗号化するための公開鍵、及び当該公開鍵で暗号化された電子メールを復号化するための復号鍵を作成し、鍵ＩＤ及びＢＣアカウントと対応付けて鍵情報記憶部１２３に記憶する（Ｓ４）。ＢＣ実行部１２１が、作成された公開鍵及び鍵ＩＤを暗号鍵取得部２３に送信する（Ｓ５）。暗号鍵取得部２３は、受信した鍵ＩＤを送信用の電子メールのＩＤと対応付けて鍵ＩＤ記憶部２８に記憶すると共に、送信用の電子メール、公開鍵及び鍵ＩＤを暗号化部２４に渡す（Ｓ６）。暗号化部２４は、公開鍵を用いて送信用の電子メールを暗号化して暗号化電子メールを作成し、ヘッダ情報に鍵ＩＤを付けてメール送信部２５に渡す（Ｓ７）。メール送信部２５が暗号化電子メールをメール送信サーバに送信して（Ｓ８）、送信処理を終了する。
【００５３】
図６は、本実施形態に係る情報通信システムの受信処理を示すフローチャートである。まず、メール受信部３１がメール受信サーバから暗号化電子メールを受信し、秘密鍵取得部３３に渡す（Ｓ１）。秘密鍵取得部３３は、暗号化電子メールのヘッダ情報から鍵ＩＤを取得し、この鍵ＩＤの情報を含めて秘密鍵の取得依頼情報をトランザクションとして生成し、受信用秘密鍵記憶部３２の秘密鍵（ブロックチェーン１２にアクセスするための秘密鍵）で電子署名する（Ｓ２）。生成されたトランザクションをブロックチェーン１２にブロードキャストする（Ｓ３）。
【００５４】
ＢＣ実行部１２１の秘密鍵検索部１２４が鍵情報記憶部１２３から鍵ＩＤに対応した秘密鍵を取得する（Ｓ４）。このとき、秘密鍵の取得依頼情報として生成されたトランザクションに電子署名したＢＣアカウント（受信者のＢＣアカウント）が、上記の鍵ＩＤに対応した送信先のＢＣアカウントに該当しない場合は、エラーとして処理する。ＢＣ実行部１２１は、取得した秘密鍵を秘密鍵取得部３３に送信する（Ｓ５）。秘密鍵取得部３３は、暗号化電子メールと秘密鍵とを復号化部３４に渡す（Ｓ６）。復号化部３４は、秘密鍵を用いて暗号化電子メールを復号化し、受信メールを表示部３５に渡す（Ｓ７）。表示部３５は、入出力部２１で受信メールを受信ユーザに表示して（Ｓ８）、受信処理を終了する。
【００５５】
なお、上記説明において、送信側の機能と受信側の機能とを分けて説明したが、実際には１つの情報通信端末内に双方の機能を有する構成となっている。すなわち、図２の送信側の情報通信端末と図４の受信側の情報通信端末とは、実際には１つの情報通信端末であり、その場合、ブロックチェーン１２にアクセスする際に電子署名する秘密鍵は共通のものである。
【００５６】
（本発明の第２の実施形態）
本実施形態に係る情報通信プログラム及び情報処理プログラムを用いた情報通信システムについて、図７及び図８を用いて説明する。本実施形態に係る情報通信システムは、前記第１の実施形態に係る情報通信システムの機能を拡張したものであり、一旦送信した電子メールを取り消す機能を有するものである。なお、本実施形態において前記第１の実施形態を重複する説明は省略する。
【００５７】
図７は、本実施形態に係る情報通信システムの送信取消処理に関する構成を示す機能ブロック図である。図７の機能ブロック図では、図２の送信処理に関する構成、及び図４の受信処理に関する構成を記載すると共に、送信取消処理に関する構成を記載している。図２及び図４の構成と異なるのは、情報通信端末に送信取消部７１を備えると共に、ＢＣ実行部１２１に鍵削除部１２５を備えることである。
【００５８】
送信取消部７１は、ユーザの入出力部２１による操作に応じて、取消対象となる電子メールのＩＤとそれに対応する鍵ＩＤとに基づいて、ブロックチェーン１２のＢＣ実行部１２１に対して、送信取消の対象となる電子メールの鍵情報を無効化する要求のトランザクションを生成し、ブロックチェーン１２にブロードキャストする。このとき、送信用秘密鍵記憶部２７の秘密鍵で電子署名してブロードキャストする。ＢＣ実行部１２１では、鍵削除部１２５が、受信した鍵ＩＤの送信元ＢＣアカウントで電子署名されたトランザクションであるかを確認し、送信元ＢＣアカウントと一致する場合、対応する秘密鍵を削除又は配信の制限（秘密鍵を渡さない）を行う。秘密鍵が削除又は配信の制限がなされることで、暗号化電子メールを受信したユーザは、暗号化電子メールを復号化することができなくなるため、実質的に送信メールを取り消したのと同じ効果を得ることができる。
【００５９】
次に、送信取消処理の流れを説明する。図８は、本実施形態に係る情報通信システムの送信取消処理を示すフローチャートである。まず、ユーザが入出力部２１で送信を取り消したい送信済みの電子メールを選択し、その電子メールのＩＤを送信取消部７１に渡す（Ｓ１）。送信取消部７１は、取消対象となる電子メールのＩＤに対応する鍵ＩＤを鍵ＩＤ記憶部２８から抽出する（Ｓ２）。抽出した鍵ＩＤの情報を含んで秘密鍵を削除するための要求トランザクションを生成し、送信用秘密鍵記憶部２７に記憶されている秘密鍵で電子署名する（Ｓ３）。生成したトランザクションをブロックチェーン１２にブロードキャストする（Ｓ４）。ＢＣ実行部１２１の鍵削除部１２５が、鍵ＩＤに対応する秘密鍵を削除又は配信制限して（Ｓ５）、送信取消処理を終了する。
【００６０】
このような一連の処理を行うことで、暗号化電子メールを受信したユーザが復号化を行う前であれば、送信者が自由に送信処理を取り消すことが可能となる。
【００６１】
なお、上記においては、送信した電子メールの取消に関する処理について説明したが、送信取消以外にも、電子メールへのアクセス制限を設けるようにしてもよい。アクセス制限の内容は、例えば、時間的制限、内容の制限、位置的制限、回数の制限、特定の条件による制限、及びそれらの組み合わせ等が設定されてもよく、それらの具体例を以下に示す。
（１）時間的制限：送信者側が、暗号化電子メールを復号化できる時期を設定しておき、受信者側は、その時期を満たす場合のみ暗号化電子メールを復号化する鍵情報を受け取ることができる。
（２）内容の制限：送信者側が、受信者に応じて電子メールの内容を復号化できる範囲を設定しておき、受信者側は、その範囲でしか内容を復号化することができない。
（３）位置的制限：送信者側が、例えば、受信者端末のＧＰＳ位置情報が所定の地域内（例えば、佐賀県内等）にある場合にのみ復号化できるように設定しておき、受信者側は、受信者端末のＧＰＳ位置情報をＢＣ実行部１２１に送信し、ＢＣ実行部１２１は、その位置情報が所定の地域の範囲内にある場合のみ、電子メールを復号化する鍵情報を送信することで、所定の地域内にいない受信者は電子メールの内容を復号化することができない。
（４）回数の制限：送信者側が、受信者に応じて復号化するための鍵情報を受信できる回数を設定しておき、受信者側は、その回数の範囲でしか電子メールや添付ファイルを復号化することができない。
（５）特定の条件による制限：送信者側が、例えば、所定の管轄が緊急速報等の情報を出している場合（例えば、気象庁のＢＣアカウントが災害警報トランザクションを発行している場合等）にのみ復号化する鍵情報を受信者に送信するように設定しておき、受信者側は、その条件を満たす場合のみ電子メールや添付ファイルを復号化することができない。
【００６２】
また、受信者は、これらの制限の解除条件を満たす場合に暗号化電子メールを復号化することができるが、解除条件を満たすかどうかの判断は、受信側の情報通信端末で行ってもよいし、ＢＣ実行部１２１が行ってもよい。前者の場合は、復号化のための秘密鍵は取得できるものの、情報通信端末内で制限が掛かることで、暗号化電子メールを復号化することができないようにしてもよい。後者の場合は、ＢＣ実行部１２１で解除条件を満たしていないと判断された場合に、秘密鍵を情報通信端末に対して配信しないようにしてもよい。
【００６３】
さらに、解除条件を満たすかどうかの判断を受信側の情報通信端末とＢＣ実行部１２１との双方で行ってもよい。この場合、受信側の情報通信端末で判断する解除条件とＢＣ実行部１２１で判断する解除条件とはそれぞれ異なる条件となっており、双方の条件を満たす場合のみ暗号化電子メールを復号化することができるようにしてもよい。
【００６４】
さらにまた、解除条件は、受信側の情報通信端末及び／又は送信側の情報通信端末から変更できるようにしてもよい。すなわち、それぞれの又はいずれかの情報通信端末が解除条件変更手段を備えており、解除条件変更手段によりＢＣ実行部１２１に対して変更後の解除条件の情報を送信するようにしてもよい。具体的には、例えば、災害時に生死にかかわるような状況であったことから必要な情報を公開したけれども、平時には非公開にしたい個人情報（例えば、人工透析の利用状況（避難先の選定には極めて重要であるが平時には公開したくない情報）や、アレルギーの有無、恐怖症の有無などの情報）に対して、閲覧制限を設ける等の変更を行うことができる。また、例えば、以前は公開しても問題なかった情報であっても、時間が経つに連れて人間関係等が変わった場合に、非公開にしたほうがいいような情報等に制限を設けることも可能である。
【００６５】
このように、送信者は、送信取消以外にも様々な条件で暗号化電子メールへのアクセス制限を行うことが可能となる。
【００６６】
（本発明の第３の実施形態）
本実施形態に係る情報通信プログラム及び情報処理プログラムを用いた情報通信システムについて、図９ないし図１２を用いて説明する。本実施形態に係る情報通信システムは、前記各実施形態に係る情報通信システムの機能を拡張したものであり、送信用の電子データに対して情報を変更する処理を行い、変更後のハッシュ値をブロックチェーンで管理することで、万が一電子データが流出した際に、管理されているハッシュ値から流出元を特定するものである。なお、本実施形態において前記各実施形態を重複する説明は省略する。また、上記各実施形態においては、情報通信装置１０ａから情報通信装置１０ｂに電子メールが送信される場合の処理を一例として説明したが、本実施形態においては電子メールに限定せずに電子データ全般を送受信する場合について説明する。
【００６７】
図９及び図１０は、本実施形態に係る情報通信システムのハッシュ値管理処理に関する構成を示す機能ブロック図であり、図９は、ハッシュ値計算を行ってブロックチェーンで管理するまでの処理のブロック図、図１０は、流出した電子データが流出元を特定する処理のブロック図である。
【００６８】
図９において、図７に示す構成と異なるのは、送信対象となる送信データが送信データ作成部２２で作成され、作成された送信データに対して、データを変更する処理を行うデータ変更部８１と、変更された送信データに対してハッシュ値の計算を行うハッシュ値計算部８２を備えることである。また、送信用対応情報記憶部２６では、メールアドレスの代わりに送信先を識別する識別情報（例えば、ＩＰアドレス等）とＢＣアカウントとが対応付けて記憶されている。
【００６９】
データ変更部８１は、作成された送信データに対してランダムに任意のデータを付加する。任意のデータを付加する目的は、送信処理とハッシュ値とを対応付けるためである。すなわち、送信データ（送信データをそのまま転送する場合の転送データも含む）に対して、送信処理の度に固有のハッシュ値を対応付けておくことで、万が一送信データが流出した場合には、その流出した送信データのハッシュ値を計算して照合することで、どの送信処理において送信した際に流出したデータであるかを特定することが可能となる。
【００７０】
なお、ここで送信データに付加する任意のデータは、オリジナルの送信データ（他のコンピュータから受信して、そのまま転送するような転送データも含む）の内容に影響を与えない程度の情報でハッシュ値さえ変更されればよい。例えば、任意の１ビットのデータを付加するだけでもよい。また、より好ましくは、電子透かしを埋め込むのがよい。電子透かしを埋め込むことで、送信データをユーザの目には影響がない範囲で変更すると共に、ハッシュ値をオリジナルのものと相違させることができる。さらに、例えば、流出したデータがオリジナルの送信データの一部だけだった場合に、ハッシュ値の照合だけでは流出元を特定することが困難となるが、電子透かしにより流出元を特定することが可能となる。
【００７１】
ハッシュ値計算部８２は、作成された送信データに任意のデータが付加された送信データのハッシュ値を計算し、暗号鍵取得部２３に渡す。暗号鍵取得部２３は、図７と同様の処理によりＢＣ実行部１２１に対して公開鍵の作成依頼を行うが、このときにハッシュ値計算部８２で計算したハッシュ値を併せてＢＣ実行部１２１に送信する。ＢＣ実行部１２１は、図７と同様の処理により鍵情報を作成するが、このとき鍵情報記憶部１２３に既に登録されているハッシュ値と送信されたハッシュ値とを照合し、重複した値があれば、エラーを暗号鍵取得部２３に返す。すなわち、同値のハッシュ値が登録されてしまうと、万が一送信データが流出した場合に、ハッシュ値から流出元を特定できなくなってしまうため、ハッシュ値は必ず重複しないように管理される必要がある。重複した値がなければ、鍵情報と共に鍵ＩＤに対応付けて鍵情報記憶部１２３に記憶される。以降の送受信に関する処理は、図７と同じであり、送信データが電子メールではない場合は、メールサーバを介することなくデータの送受信が行われる。
【００７２】
次に、万が一送信データが流出した場合に流出元を特定する処理について説明する。図１０の構成は、上記各実施形態で説明した情報通信装置に更なる構成として組み込まれてもよいし、流出元を特定するための別の装置（例えば、管理者等が利用する管理装置等）に組み込まれてもよい。以下、図１０の装置を流出元特定装置とする。
【００７３】
図１０において、流出元特定装置１００は、ユーザが入出力部２１を操作して渡された流出している電子データの平文（以下、流出データという）のハッシュ値を計算するハッシュ値計算部１０１と、受け取ったハッシュ値を引数として流出データの流通情報を取得する流通情報取得部１０２と、取得した流通情報を表示する流通情報表示部１０３とを備える。また、ＢＣ実行部１２１は、取得したハッシュ値と同じ値に対応するＢＣアカウントを鍵情報記憶部１２３から抽出するハッシュ値抽出部１２６を備え、抽出したＢＣアカウントの情報が流通情報取得部１０２に送信される。
【００７４】
次に、図９及び図１０の構成による一連の流通情報取得処理の流れを説明する。図１１は、本実施形態に係る情報通信システムのハッシュ値管理処理を示すフローチャートである。まず、ユーザが入出力部２１を操作し、送信データ作成部２２により送信用の電子データが作成される（Ｓ１）。データ変更部８１が、送信用の電子データにランダムな任意のデータを付加し、ハッシュ値計算部８２が、任意のデータが付加された送信用の電子データのハッシュ値を計算する（Ｓ２）。暗号鍵取得部２３が、送信用対応情報記憶部２６から送信先の識別情報に対応したＢＣアカウントを抽出し、送信用の電子データを暗号化するための公開鍵を作成する作成依頼情報をトランザクションとして生成し、送信用秘密鍵記憶部２７の秘密鍵（ブロックチェーン１２にアクセスするための秘密鍵）で電子署名する（Ｓ３）。このとき、抽出したＢＣアカウントの情報と、ハッシュ値計算部８２で計算されたハッシュ値の情報を含めた作成依頼情報が生成される。生成されたトランザクションをブロックチェーン１２にブロードキャストする（Ｓ４）。
【００７５】
ＢＣ実行部１２１の鍵情報生成部１２２が、送信用の電子データを暗号化するための公開鍵、及び当該公開鍵で暗号化された電子データを復号化するための復号鍵を作成し、鍵ＩＤ、ＢＣアカウント及びハッシュ値と対応付けて鍵情報記憶部１２３に記憶する（Ｓ５）。このとき、既に登録されているハッシュ値と重複する場合は、これらの処理をキャンセルし、エラーとして暗号鍵取得部２３に返す。ハッシュ値が重複しない場合は、Ｓ５で鍵情報記憶部１２３に記憶され、ＢＣ実行部１２１が、作成された公開鍵及び鍵ＩＤを暗号鍵取得部２３に送信する（Ｓ６）。暗号鍵取得部２３は、受信した鍵ＩＤを送信用の電子データのＩＤと対応付けて鍵ＩＤ記憶部２８に記憶すると共に、送信用の電子データ、公開鍵及び鍵ＩＤを暗号化部２４に渡す（Ｓ７）。暗号化部２４は、公開鍵を用いて送信用の電子データを暗号化して暗号化電子データを作成し、ヘッダ情報に鍵ＩＤを付けてデータ送信部２５に渡す（Ｓ８）。データ送信部２５が暗号化電子データを受信ユーザに送信して（Ｓ９）、送信処理を終了する。
【００７６】
図１２は、本実施形態に係る情報通信システムの流通情報取得処理を示すフローチャートである。図１２において、まず、ユーザが流通情報を確認したい流出データの平文を取得し、その流出情報をハッシュ値計算部１０１に渡す（Ｓ１）。ハッシュ値計算部１０１が流出データのハッシュ値を計算し、ハッシュ値の情報を流通情報取得部１０２に渡す（Ｓ２）。流通情報取得部１０２は、ハッシュ値を引数にブロックチェーン１２に流通情報取得のリクエストを行う（Ｓ３）。ＢＣ実行部１２１のハッシュ値抽出部１２６が、受け取ったハッシュ値に対応するＢＣアカウントの情報を鍵情報記憶部１２３から抽出し、流通情報取得部１０２に渡す（Ｓ４）。流通情報表示部１０３は、入出力部２１の操作に応じて流通情報取得部１０２が取得したＢＣアカウントを表示して（Ｓ５）、情報流通取得処理を終了する。
【００７７】
このように、電子データの送信処理ごとに異なるハッシュ値となるように電子データを加工し、そのハッシュ値をブロックチェーンで管理することで、万が一電子データが流出した場合に、その流出したデータのハッシュ値から流出元を特定することが可能となる。また、電子データを加工する際に電子透かしを用いることで、流出したデータが第３者により加工されている場合であっても（流出したデータのハッシュ値がブロックチェーン上で管理するハッシュ値に合致しない場合であっても）、電子透かしによりその流出元を特定することが可能となる。
【００７８】
なお、上記においては、流出データのハッシュ値に基づいて、ブロックチェーンから同値となるＢＣアカウントを抽出する処理を説明したが、電子データを送受信したユーザが、その電子データの流通経路を確認するために利用することも可能である。例えば、ブロックチェーンには、電子データの流通経路に応じて異なるハッシュ値が順番に記憶されているため、その順番に応じて流通経路を確認することが可能となる。
【００７９】
（その他の実施形態）
本実施形態に係る情報通信プログラム及び情報処理プログラムを用いた情報通信システムについて、図１３を用いて説明する。本実施形態に係る情報通信システムは、前記第１及び第２の実施形態に示すような鍵情報の管理は行わず、前記第３の実施形態に示すハッシュ値の管理のみを行うものである。なお、本実施形態において前記各実施形態と重複する説明は省略する。
【００８０】
図１３は、本実施形態に係る情報通信システムの構成を示す機能ブロック図である。情報通信システム１は、ハッシュ値の管理に関して、ユーザの操作に応じて情報の入出力を行う入出力部２１と、入力された操作に応じて送信用の電子データを作成する送信データ作成部２２と、作成された送信データに対して、データを変更する処理を行うデータ変更部８１と、変更された送信データに対してハッシュ値の計算を行うハッシュ値計算部８２と、送信処理を制御する送信制御部１３１と、送信用の電子データを送信するデータ送信部２５と、送信先の識別情報とＢＣアカウントとを対応付けて記憶する送信用対応情報記憶部２６と、ブロックチェーン１２へのアクセスの際に電子署名として必要となる秘密鍵（以下、ＢＣ秘密鍵という）を記憶する送信用秘密鍵記憶部２７とを備えると共に、ＢＣ実行部１２１において、ハッシュ値の情報とＢＣアカウントとを対応付けて記憶するハッシュ値記憶部１２７と、ハッシュ値記憶部１２７に送信制御部１３１から受け取ったハッシュ値の情報を書き込むハッシュ値書込部１２８と、流通情報取得部１０２から受け取ったハッシュ値と同じハッシュ値に対応付けられたＢＣアカウントをハッシュ値記憶部１２７から抽出するハッシュ値抽出部１２６とを備える。
【００８１】
なお、送信データが流出した場合の流出元を特定する処理に関しては、図１０に示す構成と同じであるため説明は省略する。
【００８２】
データ変更部８１は、作成された送信データに対してランダムに任意のデータを付加する。また、送信制御部１３１は、ハッシュ値計算部８２で計算された送信用電子データのハッシュ値の情報を送信用対応情報記憶部２６に記憶されているＢＣアカウントと共に、ＢＣ実行部１２１に対してブロードキャストし、併せて送信用の電子データをデータ送信部２５に渡す処理を行う。ＢＣ実行部１２１に対してブロードキャストする際には、送信用秘密鍵記憶部２７に記憶されている秘密鍵でトランザクションが電子署名される。
【００８３】
なお、ここで送信データに付加する任意のデータは、オリジナルの送信データ（他のコンピュータから受信して、そのまま転送するような転送データも含む）の内容に影響を与えない程度の情報でハッシュ値さえ変更されればよい。例えば、任意の１ビットのデータを付加するだけでもよい。また、より好ましくは、電子透かしを埋め込むのがよい。電子透かしを埋め込むことで、送信データをユーザの目には影響がない範囲で変更すると共に、ハッシュ値をオリジナルのものと相違させることができる。さらに、例えば、流出したデータがオリジナルの送信データの一部だけだった場合に、ハッシュ値の照合だけでは流出元を特定することが困難となるが、電子透かしにより流出元を特定することが可能となる。
【符号の説明】
【００８４】
１  情報通信システム
１０（１０ａ，１０ｂ）  情報通信端末
１２  ブロックチェーン
２１  入出力部
２２  送信メール作成部
２３  暗号鍵取得部
２４  暗号化部
２５  メール送信部
２６  送信用対応情報記憶部
２７  送信用秘密鍵記憶部
２８  鍵ＩＤ記憶部
２９  受信メール処理部
３１  メール受信部
３２  受信用秘密鍵記憶部
３３  秘密鍵取得部
３４  復号化部
３５  表示部
７１  送信取消部
８１  データ変更部
８２  ハッシュ値計算部
１０１  ハッシュ値計算部
１０２  流通情報取得部
１０３  流通情報表示部
１２１  ＢＣ実行部
１２２  鍵情報生成部
１２３  鍵情報記憶部
１２４  秘密鍵検索部
１２５  鍵削除部
１２６  ハッシュ値抽出部
１２７  ハッシュ値記憶部
１２８  ハッシュ値書込部
【図１】
2020057863.tif 000003
【図２】
2020057863.tif 000004
【図３】
2020057863.tif 000005
【図４】
2020057863.tif 000006
【図５】
2020057863.tif 000007
【図６】
2020057863.tif 000008
【図７】
2020057863.tif 000009
【図８】
2020057863.tif 000010
【図９】
2020057863.tif 000011
【図１０】
2020057863.tif 000012
【図１１】
2020057863.tif 000013
【図１２】
2020057863.tif 000014
【図１３】
2020057863.tif 000015