(57)【要約】【課題】ブロックチェーンに代わる、蓄積したデータの保全が可能な低コストの技術を提供する。【解決手段】ユーザ端末１００−１は、対象データを暗号化して（Ｓ８０４）、それをユーザ端末１００−２に送る（Ｓ８０５）。ユーザ端末１００−２は、それを受取り（Ｓ９０１）暗号化された対象データを更に暗号化する（Ｓ９０２）。ユーザ端末１００−２は、二重に暗号化された対象データを記録し（Ｓ９０３）、ユーザ端末１００−１に送信する（Ｓ９０４）。ユーザ端末１００−１はそれを受信し（Ｓ８０６）、二重に暗号化された対象データを記録する（Ｓ８０７）。【選択図】図５
2019016997.tif 000002
【特許請求の範囲】
【請求項１】
所定のネットワークを介して互いに通信可能であるとともに、それらがそれぞれ他とは異なる方法で所定のデータを復号化可能に暗号化することができるようになっている暗号化部を備えており、且つそれらのユーザが共に保全することを希望するデータである対象データをそれらのうちの一つが保有している複数の通信装置にて実行される方法であって、
複数の前記通信装置のすべてが、前記対象データ、又はそれを暗号化したデータを前記ネットワークを介して互いに送受信しながら、前記通信装置がそれぞれ有する前記暗号化部によって次々に暗号化する暗号化過程、
複数の前記通信装置のすべてが、複数の前記通信装置の前記暗号化部のすべてで暗号化された前記対象データを、前記ネットワークを介して送受信することにより共有する共有過程、
を含んでいる、
方法。
【請求項２】
前記暗号化過程では、所定のネットワークを介して互いに通信可能であり、それらがそれぞれ他とは異なる方法で、且つ複数の前記通信装置の前記暗号化部とも異なる方法で所定のデータを復号化可能に暗号化することができるようになっている補助暗号化部を有している１つ以上の補助通信装置のすべてと、複数の前記通信装置のすべてとが、前記対象データ、又はそれを暗号化したデータを前記ネットワークを介して互いに送受信しながら、前記通信装置がそれぞれ有する前記暗号化部と、前記補助通信装置のすべてがそれぞれ有する前記補助暗号化部とによって次々に暗号化する、
請求項１記載の方法。
【請求項３】
前記共有過程では、複数の前記通信装置のすべてと、前記補助通信装置の少なくとも１つとが、複数の前記通信装置の前記暗号化部のすべてで暗号化された前記対象データを、前記ネットワークを介して送受信することにより共有する、
請求項２記載の方法。
【請求項４】
前記複数の前記通信装置の１つが、前記ネットワークに接続されている、データの記録が可能な記録装置に、複数の前記通信装置の前記暗号化部のすべてで暗号化された前記対象データを送信して、前記記録装置に複数の前記通信装置の前記暗号化部のすべてで暗号化された前記対象データを記録させる記録過程を含む、
請求項１記載の方法。
【請求項５】
前記複数の前記通信装置と、前記補助通信装置のうちの前記通信装置がそれぞれ有する前記暗号化部と、前記補助通信装置のすべてがそれぞれ有する前記補助暗号化部とで暗号化された前記対象データを持つものが、前記ネットワークに接続されている、データの記録が可能な記録装置に、前記通信装置がそれぞれ有する前記暗号化部と、前記補助通信装置のすべてがそれぞれ有する前記補助暗号化部とで暗号化された前記対象データを送信して、前記記録装置に前記通信装置がそれぞれ有する前記暗号化部と、前記補助通信装置のすべてがそれぞれ有する前記補助暗号化部とで暗号化された前記対象データを記録させる記録過程を含む、
請求項３記載の方法。
【請求項６】
前記記録過程で前記記録装置に記録されている複数の前記通信装置の前記暗号化部のすべてで暗号化された前記対象データを、前記ネットワークに接続されている機器に対して公開された状態とする、
請求項４記載の方法。
【請求項７】
前記記録過程で前記記録装置に記録されている前記通信装置がそれぞれ有する前記暗号化部と、前記補助通信装置のすべてがそれぞれ有する前記補助暗号化部とで暗号化された前記対象データを、前記ネットワークに接続されている機器に対して公開された状態とする、
請求項５記載の方法。
【請求項８】
所定のネットワークを介して互いに通信可能である、所定のデータを復号化可能に暗号化することができる第１暗号化部を有する第１通信装置と、所定のデータを前記第１暗号化部と異なる方法で復号化可能に暗号化することができる第２暗号化部を有する第２通信装置と、を含んでなる通信システムにて実行される方法であって、
前記第１通信装置が、前記第１通信装置と前記第２通信装置とのユーザがともに保全することを希望するデータである対象データを、前記第１暗号化部で暗号化して第１暗号化対象データを生成する第１暗号化過程、
前記第１通信装置が、前記第１暗号化対象データを前記ネットワークを介して前記第２通信装置に送信する第１送信過程、
前記第２通信装置が、前記第１通信装置から前記第１暗号化対象データを前記ネットワークを介して受取る第１受信過程、
前記第２通信装置が、前記第１暗号化対象データを、前記第２暗号化部で暗号化して第２第１暗号化対象データを生成する第２暗号化過程、
前記第２通信装置が、前記第２第１暗号化対象データを前記ネットワークを介して前記第１通信装置に送信する第２送信過程、
前記第１通信装置が、前記第２通信装置から前記第２第１暗号化対象データを前記ネットワークを介して受取る第２受信過程、
を含む、方法。
【請求項９】
所定のネットワークを介して互いに通信可能である、所定のデータを復号化可能に暗号化することができる第１暗号化部を有する第１通信装置と、所定のデータを前記第１暗号化部と異なる方法で復号化可能に暗号化することができる第２暗号化部を有する第２通信装置と、を含んでなる通信システムにおける前記第１通信装置にて実行される方法であって、
前記第１通信装置が実行する、
前記第１通信装置と前記第２通信装置とのユーザがともに保全することを希望するデータである対象データを前記第１暗号化部で暗号化して第１暗号化対象データを生成する第１暗号化過程、
前記第１暗号化対象データを前記ネットワークを介して前記第２通信装置に送信する第１送信過程、
前記第２通信装置が、前記第１通信装置から前記ネットワークを介して受取った前記第１暗号化対象データを、前記第２暗号化部で暗号化して生成された第２第１暗号化対象データを、前記ネットワークを介して前記第２通信装置から受取る第２受信過程、
を含む、方法。
【請求項１０】
前記第１通信装置が、前記第１暗号化過程と、前記第１送信過程と、前記第２受信過程とを、自動的に実行する、
請求項９記載の方法。
【請求項１１】
前記第１通信装置が、前記ネットワークに接続されている、データの記録が可能な記録装置に前記第２第１暗号化対象データを送信して、前記記録装置に前記第２第１暗号化対象データを記録させる過程を含む、
請求項９又は１０記載の方法。
【請求項１２】
所定のネットワークを介して互いに通信可能である、所定のデータを復号化可能に暗号化することができる第１暗号化部を有する第１通信装置と、所定のデータを前記第１暗号化部と異なる方法で復号化可能に暗号化することができる第２暗号化部を有する第２通信装置と、を含んでなる通信システムにおける前記第２通信装置にて実行される方法であって、
前記第２通信装置が実行する、
前記第１通信装置が、前記第１通信装置と前記第２通信装置とのユーザがともに保全することを希望するデータである対象データを前記第１暗号化部で暗号化して生成された第１暗号化対象データを、前記第１通信装置から前記ネットワークを介して受取る第１受信過程、
前記第１暗号化対象データを、前記第２暗号化部で暗号化して第２第１暗号化対象データを生成する第２暗号化過程、
前記第２第１暗号化対象データを前記ネットワークを介して前記第１通信装置に送信する第２送信過程、
を含む、方法。
【請求項１３】
前記第２通信装置が、前記第１受信過程と、前記第２暗号化過程と、前記第２送信過程とを、自動的に実行する、
請求項１２記載の方法。
【請求項１４】
前記第２通信装置が、前記ネットワークに接続されている、データの記録が可能な記録装置に前記第２第１暗号化対象データを送信して、前記記録装置に前記第２第１暗号化対象データを記録させる過程を含む、
請求項１２又は１３記載の方法。
【請求項１５】
所定のネットワークを介して互いに通信可能である、第１通信装置と、所定のデータを復号化可能に暗号化することができる第２暗号化部を有する第２通信装置と、を含んでなる通信システムにおける第１通信装置であって、
前記第１通信装置と前記第２通信装置とのユーザがともに保全することを希望するデータである対象データを前記第２暗号化部と異なる方法で暗号化して第１暗号化対象データを生成する第１暗号化部と、
前記第１暗号化対象データを前記ネットワークを介して前記第２通信装置に送信する第１送信部と、
前記第２通信装置が、前記第１通信装置から前記ネットワークを介して受取った前記第１暗号化対象データを、前記第２暗号化部で暗号化して生成された第２第１暗号化対象データを、前記ネットワークを介して前記第２通信装置から受取る第１受信部と、
を含む、第１通信装置。
【請求項１６】
所定のネットワークを介して互いに通信可能である、所定のデータを復号化可能に暗号化することができる第１暗号化部を有する第１通信装置と、第２通信装置と、を含んでなる通信システムにおける第２通信装置であって、
前記第１通信装置が、前記第１通信装置と前記第２通信装置とのユーザがともに保全することを希望するデータである対象データを前記第１暗号化部で暗号化して生成された第１暗号化対象データを、前記第１通信装置から前記ネットワークを介して受取る第２受信部と、
前記第１暗号化対象データを前記第１暗号化部と異なる方法で暗号化して第２第１暗号化対象データを生成する第２暗号化部と、
前記第２第１暗号化対象データを前記ネットワークを介して前記第１通信装置に送信する第２送信部と、
を含む、第２通信装置。
【請求項１７】
所定のネットワークを介して互いに通信可能である、第１通信装置と、所定のデータを復号化可能に暗号化することができる第２暗号化部を有する第２通信装置と、を含んでなる通信システムにおける第１通信装置として所定のコンピュータを機能させるためのコンピュータプログラムであって、
前記コンピュータを、
前記第１通信装置と前記第２通信装置とのユーザがともに保全することを希望するデータである対象データを前記第２暗号化部と異なる方法で暗号化して第１暗号化対象データを生成する第１暗号化部と、
前記第１暗号化対象データを前記ネットワークを介して前記第２通信装置に送信する第１送信部と、
前記第２通信装置が、前記第１通信装置から前記ネットワークを介して受取った前記第１暗号化対象データを、前記第２暗号化部で暗号化して生成された第２第１暗号化対象データを、前記ネットワークを介して前記第２通信装置から受取る第１受信部と、
して機能させるためのコンピュータプログラム。
【請求項１８】
所定のネットワークを介して互いに通信可能である、所定のデータを復号化可能に暗号化することができる第１暗号化部を有する第１通信装置と、第２通信装置と、を含んでなる通信システムにおける第２通信装置として所定のコンピュータを機能させるためのコンピュータプログラムであって、
前記コンピュータを、
前記第１通信装置が、前記第１通信装置と前記第２通信装置とのユーザがともに保全することを希望するデータである対象データを前記第１暗号化部で暗号化して生成された第１暗号化対象データを、前記第１通信装置から前記ネットワークを介して受取る第２受信部と、
前記第１暗号化対象データを前記第１暗号化部と異なる方法で暗号化して第２第１暗号化対象データを生成する第２暗号化部と、
前記第２第１暗号化対象データを前記ネットワークを介して前記第１通信装置に送信する第２送信部と、
して機能させるためのコンピュータプログラム。
【請求項１９】
複数の前記通信装置の前記暗号化部のすべてで暗号化された前記対象データである暗号化対象データは、データの集合であるブロックであって、その直前のブロックに接続されるものに含まれた状態で前記記録装置に記録されるようになっているとともに、前記ブロックのそれぞれにはその直前のブロックに対して所定の演算を行って得られる値である演算値が含まれるようになっており、
前記記録過程で前記記録装置に前記暗号化対象データを送信する前記通信装置が、送信の対象となる前記暗号化対象データを含む前記ブロックを生成して、それを前記記録装置に送信する、
請求項４記載の方法。
【請求項２０】
複数の前記通信装置と、前記補助通信装置のうちの前記通信装置がそれぞれ有する前記暗号化部と、前記補助通信装置のすべてがそれぞれ有する前記補助暗号化部とで暗号化された前記対象データである暗号化対象データは、データの集合であるブロックであって、その直前のブロックに接続されるものに含まれた状態で前記記録装置に記録されるようになっているとともに、前記ブロックのそれぞれにはその直前のブロックに対して所定の演算を行って得られる値である演算値が含まれるようになっており、
前記記録過程で前記記録装置に前記暗号化対象データを送信する前記通信装置又は補助通信装置が、送信の対象となる前記暗号化対象データを含む前記ブロックを生成して、それを前記記録装置に送信する、
請求項５記載の方法。
【請求項２１】
複数の前記通信装置の前記暗号化部のすべてで暗号化された前記対象データである暗号化対象データは、データの集合であるブロックであって、その直前のブロックに接続されるものに含まれた状態で前記記録装置に記録されるようになっているとともに、前記ブロックのそれぞれにはその直前のブロックに対して所定の演算を行って得られる値である演算値が含まれるようになっており、
前記記録過程で前記記録装置が、前記通信装置から受取った前記暗号化対象データに基づき前記ブロックを生成し、それをその直前の前記ブロックに接続する、
請求項４記載の方法。
【請求項２２】
複数の前記通信装置と、前記補助通信装置のうちの前記通信装置がそれぞれ有する前記暗号化部と、前記補助通信装置のすべてがそれぞれ有する前記補助暗号化部とで暗号化された前記対象データである暗号化対象データは、データの集合であるブロックであって、その直前のブロックに接続されるものに含まれた状態で前記記録装置に記録されるようになっているとともに、前記ブロックのそれぞれにはその直前のブロックに対して所定の演算を行って得られる値である演算値が含まれるようになっており、
前記記録過程で前記記録装置が、前記通信装置又は前記補助通信装置から受取った前記暗号化対象データに基づき前記ブロックを生成し、それをその直前の前記ブロックに接続する、
請求項５記載の方法。
【請求項２３】
１つの前記ブロックに含まれる前記暗号化対象データは１つ以上であり、
前記記録過程で前記記録装置は、前記通信装置から１つ以上の前記暗号化対象データを受取った後の所定のタイミングで、その直前の前記ブロックが生成されて以降に受取った１つ以上の前記暗号化対象データを含む前記ブロックを生成し、それをその直前の前記ブロックに接続する、
請求項２１又は２２記載の方法。
【請求項２４】
前記記録過程で前記通信装置が、複数の前記通信装置の前記暗号化部のすべてで暗号化された前記対象データである暗号化対象データと、当該暗号化対象データの元となった前記対象データとを前記記録装置に送信し、
前記記録装置は、前記暗号化対象データと、その元となった前記対象データとを、互いに紐付けた状態で記録する、
請求項４記載の方法。
【請求項２５】
前記記録過程で前記通信装置又は前記補助通信装置が、複数の前記通信装置及び前記補助通信装置の前記暗号化部のすべてで暗号化された前記対象データである暗号化対象データと、当該暗号化対象データの元となった前記対象データとを前記記録装置に送信し、
前記記録装置は、前記暗号化対象データと、その元となった前記対象データとを、互いに紐付けた状態で記録する、
請求項５記載の方法。
【請求項２６】
前記ブロックには、前記暗号化対象データと、当該暗号化対象データの元となった前記対象データと、前記演算値とが含まれており、
前記記録過程で前記記録装置に前記暗号化対象データを送信する前記通信装置が、送信の対象となる前記暗号化対象データと、その元となった前記対象データとを含む前記ブロックを生成して、それを前記記録装置に送信する、
請求項１９記載の方法。
【請求項２７】
前記ブロックには、前記暗号化対象データと、当該暗号化対象データの元となった前記対象データと、前記演算値とが含まれており、
前記記録過程で前記記録装置に前記暗号化対象データを送信する前記通信装置又は補助通信装置が、送信の対象となる前記暗号化対象データと、その元となった前記対象データとを含む前記ブロックを生成して、それを前記記録装置に送信する、
請求項２０記載の方法。
【請求項２８】
前記ブロックには、前記暗号化対象データと、当該暗号化対象データの元となった前記対象データと、前記演算値とが、前記暗号化対象データ及びその元となった前記対象データを互いに紐付けた状態で含まれており、
前記記録過程で前記記録装置は、前記通信装置から受取った前記暗号化対象データと、その元になった前記対象データとに基づき前記ブロックを生成し、それをその直前の前記ブロックに接続する、
請求項２１記載の方法。
【請求項２９】
前記ブロックには、前記暗号化対象データと、当該暗号化対象データの元となった前記対象データと、前記演算値とが、前記暗号化対象データ及びその元となった前記対象データを互いに紐付けた状態で含まれており、
前記記録過程で前記記録装置は、前記通信装置又は前記補助通信装置から受取った前記暗号化対象データと、その元になった前記対象データとに基づき前記ブロックを生成し、それをその直前の前記ブロックに接続する、
請求項２２記載の方法。
【請求項３０】
前記第２第１暗号化対象データは、データの集合であるブロックであって、その直前のブロックに接続されるものに含まれた状態で前記記録装置に記録されるようになっているとともに、前記ブロックのそれぞれにはその直前のブロックに対して所定の演算を行って得られる値である演算値が含まれるようになっており、
前記第１通信装置は、
送信の対象となる前記第２第１暗号化対象データを含む前記ブロックを生成して、それを前記記録装置に送信する、
請求項１１記載の方法。
【請求項３１】
請求項１１記載の方法に続けて、前記記録装置が実行する方法であって、
前記第２第１暗号化対象データは、データの集合であるブロックであって、その直前のブロックに接続されるものに含まれた状態で前記記録装置に記録されるようになっているとともに、前記ブロックのそれぞれにはその直前のブロックに対して所定の演算を行って得られる値である演算値が含まれるようになっており、
前記記録装置は、前記第１通信装置から受取った前記第２第１暗号化対象データに基づき前記ブロックを生成し、それをその直前の前記ブロックに接続する、
方法。
【請求項３２】
１つの前記ブロックに含まれる前記第２第１暗号化対象データは１つ以上であり、
前記記録装置は、前記第１通信装置から１つ以上の前記第２第１暗号化対象データを受取った後の所定のタイミングで、その直前の前記ブロックが生成されて以降に受取った１つ以上の前記第２第１暗号化対象データを含む前記ブロックを生成し、それをその直前の前記ブロックに接続する、
請求項３１記載の方法。
【請求項３３】
前記第１通信装置が、前記第２第１暗号化対象データと、当該第２第１暗号化対象データの元となった前記対象データとを前記記録装置に送信し、
前記記録装置は、前記第２第１暗号化対象データと、その元となった前記対象データとを、互いに紐付けた状態で記録する、
請求項１１記載の方法。
【請求項３４】
前記ブロックには、前記第２第１暗号化対象データと、当該第２第１対象データの元となった前記対象データと、前記演算値とが含まれており、
前記第１通信装置は、送信の対象となる前記第２第１暗号化対象データと、その元となった前記対象データとを含む前記ブロックを生成して、それを前記記録装置に送信する、
請求項３０記載の方法。
【請求項３５】
前記ブロックには、前記第２第１暗号化対象データと、当該第２第１対象データの元となった前記対象データと、前記演算値とが、前記第２第１暗号化対象データ及び前記対象データとを互いに紐付けられた状態で含まれており、
前記記録装置は、前記第１通信装置から受取った前記第２第１暗号化対象データと、その元になった前記対象データとに基づき前記ブロックを生成し、それをその直前の前記ブロックに接続する、
請求項３１記載の方法。
【請求項３６】
前記第２第１暗号化対象データは、データの集合であるブロックであって、その直前のブロックに接続されるものに含まれた状態で前記記録装置に記録されるようになっているとともに、前記ブロックのそれぞれにはその直前のブロックに対して所定の演算を行って得られる値である演算値が含まれるようになっており、
前記第２通信装置は、
送信の対象となる前記第２第１暗号化対象データを含む前記ブロックを生成して、それを前記記録装置に送信する、
請求項１４記載の方法。
【請求項３７】
請求項１４記載の方法に続けて、前記記録装置が実行する方法であって、
前記第２第１暗号化対象データは、データの集合であるブロックであって、その直前のブロックに接続されるものに含まれた状態で前記記録装置に記録されるようになっているとともに、前記ブロックのそれぞれにはその直前のブロックに対して所定の演算を行って得られる値である演算値が含まれるようになっており、
前記記録装置は、前記第２通信装置から受取った前記第２第１暗号化対象データに基づき前記ブロックを生成し、それをその直前の前記ブロックに接続する、
方法。
【請求項３８】
１つの前記ブロックに含まれる前記第２第１暗号化対象データは１つ以上であり、
前記記録装置は、前記第２通信装置から１つ以上の前記第２第１暗号化対象データを受取った後の所定のタイミングで、その直前の前記ブロックが生成されて以降に受取った１つ以上の前記第２第１暗号化対象データを含む前記ブロックを生成し、それをその直前の前記ブロックに接続する、
請求項３７記載の方法。
【請求項３９】
前記第２通信装置が、前記第２第１暗号化対象データと、当該第２第１暗号化対象データの元となった前記対象データとを前記記録装置に送信し、
前記記録装置は、前記第２第１暗号化対象データと、その元となった前記対象データとを、互いに紐付けた状態で記録する、
請求項１４記載の方法。
【請求項４０】
前記ブロックには、前記第２第１暗号化対象データと、当該第２第１対象データの元となった前記対象データと、前記演算値とが含まれており、
前記第２通信装置は、送信の対象となる前記第２第１暗号化対象データと、その元となった前記対象データとを含む前記ブロックを生成して、それを前記記録装置に送信する、
請求項３６記載の方法。
【請求項４１】
前記ブロックには、前記第２第１暗号化対象データと、当該第２第１暗号化対象データの元となった前記対象データと、前記演算値とが、前記第２第１暗号化対象データ及び前記対象データとを互いに紐付けられた状態で含まれており、
前記記録装置は、前記第２通信装置から受取った前記第２第１暗号化対象データと、その元になった前記対象データとに基づき前記ブロックを生成し、それをその直前の前記ブロックに接続する、
請求項３７記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ブロックチェーンに代わるデータを改竄無く記録することが可能な技術に関する。
【背景技術】
【０００２】
近年、ブロックチェーン、及びその応用技術に対する期待が大きくなってきている。ブロックチェーンを応用することにより、例えば、決済、送金等に関するフィンテックの分野や、個人認証、美術品の鑑定書等の認証の分野、投薬履歴の管理等についての医療分野、選挙の投票等についての公共の分野等で、従来存在しなかった新しいサービスを創造できるという指摘がなされている。
ところが、ある意味夢のような技術であるとすら言われるブロックチェーンではあるが、最近はその欠点も指摘され始めている。
まず、ブロックチェーンの最もよく知られている応用先である、ビットコイン（商標）の仕組みについて説明しつつ、ブロックチェーンの仕組みについて説明する。
【０００３】
ビットコインは仮想通貨と呼ばれる。ビットコインは、ナカモトサトシなる人物の論文に発してインターネット上に構築されたシステムによって実現された。ビットコインの仕組みは以下のようなものである。
ビットコインは、まず、以下のようにして発生させられる。
ビットコインを発生させる権利を有する者は、後述するノードを管理する管理者（一般に、「マイナー」と呼ばれる。）に限られる。ノードの管理者は、インターネット上で行われるある種のゲームに参加する。ゲームは繰返し行われ、ゲームに勝ったノードの管理者は、ゲームに勝つ都度、所定の量のビットコインを得ることができるようになっている。
このようにして発生させられたビットコインは、一般的な貨幣と同様に、それを得たノードの管理者から、ノードの管理者以外の者を含む第三者に、例えば、「支払い」を行うために譲渡され、結果として点々と流布されることになる。
ところで、ビットコインに限られないが、仮想通貨、或いは仮想貨幣の分野では、二重譲渡をどのようにして防止するのかというのが、大変重要な問題となる。有体物である一般的な貨幣は、譲渡者から譲受者に譲渡されると譲渡者の手の中から消えるため、譲渡者が譲受者に貨幣を譲渡した後に、同じ貨幣を更に別の譲受者に譲渡することは原則的に不可能である。しかしながら、仮想通貨は複製が容易であり、且つ譲渡者が譲受者に仮想通貨を譲渡したとしても譲渡者が所有していたデータとしての仮想通貨を消滅させないことが可能であるから、同じ仮想通貨を、複数人に譲渡することは極めて容易である。同じ仮想通貨が複数人に譲渡されることを防止できなければ、そのような仮想通貨は通貨として何らの信用も得られない。
かかる二重譲渡の問題をビットコインは、すべての取引記録を保存するという方法で、解決することとしている。取引記録は、例えば以下のようなものである。簡単のために、ビットコインの仕組みへの参加者が、Ａ〜Ｄの４人のみであり、且つノードの管理者は、Ａ、Ｂの２人のみであるとする。ノードの管理者たるＡは、上述のゲームに勝利して１０００の、Ｂは、上述のゲームに勝利して５００のビットコインを得たとする。
この状態では、Ａ〜Ｄがそれぞれ持つビットコインは以下のように記述される。
［表１］
Ａ    +1000
Ｂ     +500
Ｃ        0
Ｄ        0
次いで、ＡはＣに１００の、ＢはＤに２００のビットコインを支払ったとする。
この状態では、Ａ〜Ｄがそれぞれ持つビットコインは以下のように記述される。
［表２］
Ａ    +1000  -100(to C)
Ｂ     +500  -200(to D)
Ｃ        0  +100(from A)
Ｄ        0  +200(from B)
次いで、ＡはＢに３００の、ＤはＣに１００のビットコインを支払ったとする。
この状態では、Ａ〜Ｄがそれぞれ持つビットコインは以下のように記述される。
［表３］
Ａ    +1000  -100(to C)   -300(to B)
Ｂ     +500  -200(to D)   +300(from A)
Ｃ        0  +100(from A) +100(from D)
Ｄ        0  +200(from B) -100(to C)
【０００４】
上記、表１から表３に記載の記録のすべてが取引記録である。上述の取引記録によれば、表３の時点において、Ａの持つビットコインは＋１０００−１００−３００＝６００、同様にＢの持つビットコインは６００、Ｃの持つビットコインは、２００、Ｄの持つビットコインは、１００であるということがわかる。
このような仕組みを持つビットコインは、興味深いことに、上述の例でいうＡ〜Ｄ間におけるビットコインの譲渡において、譲渡者から譲受者にビットコインの本体となる何らかのデータを引渡すということを行わない。それにも関わらず、取引記録さえ存在すれば、Ａ〜Ｄが現在持つビットコインの残高を特定することができる、というのがビットコインの仕組みの巧妙なところである。
なお、ビットコインの仕組みにおけるノードの管理者がゲームに勝利してビットコインを得るという現象は、取引がある程度進んだ後の例えば、表３以降の時点であってでも生じうる。
【０００５】
上述のように、ビットコインの仕組みにおいては、ビットコインの仕組みに参加する各参加者は、自分が所有するビットコインに相当するデータを持たない。つまり、各参加者の財布は空なのであるが、過去のすべての取引記録が閲覧可能に存在しており、且つその時点におけるビットコインの残高は閲覧記録からこのように特定されるのであるから、各参加者が持つビットコインはきっとこうであるはずである、というお互いの理解、或いは共同幻想によってその仕組が成り立っている。
それだけに、その共同幻想を参加者の皆が信じられるようにするためには、取引記録が正当である、或いは取引記録の改竄が不可能である、という保証が必要である。それを可能とするための技術の一つがブロックチェーンである。
ビットコインの技術では、取引記録の正当性を、ブロックチェーンと、プルーフ・オブ・ワークいう技術乃至思想によって担保している。
ビットコインの取引記録は、それ以前の取引記録に新たな取引記録を連ねていく、という構造となっている。過去の取引記録に新たな取引記録のデータ（ブロック）を連続して連ねていくことにより、取引記録のデータは、ブロックを鎖のように連ねたものとなる。これがブロックチェーンと呼ばれる。ブロックチェーンに付加される新たなブロックが生成される場合、それ直前のブロックを暗号化することによって得られた値（正確には、１つ手前のブロックのデータから作ったハッシュ値）が新たなブロックに付加される。それにより、ブロックチェーンに新たなブロックが付加された時点よりも後においては、過去のブロックに対して改竄を行うとハッシュ値に変化が生じてその改竄が発覚することとなるので、それ以前に作られた過去のブロックに対するデータの改竄を行うことが事実上不可能となる。
また、ブロックチェーンのデータは、インターネット上に多数存在する、ノードと呼ばれるサーバに記録される。各ノードに記録されるブロックチェーンのデータは同じものである。これを、ブロックチェーンでは、データの分散管理等と称する。ところで、ブロックチェーン以外の技術において、データの分散管理という場合には一般に、あるデータ（例えば１〜１００のデータ）が存在する場合に、その１〜１０のデータをＸ装置に記録させ、１１〜７０のデータをＹ装置に記録させ、７１〜１００のデータをＺ装置に記録させ、というように多数の装置にそれぞれ異なるデータ（全データの一部ずつ）を持たせる技術を意味する。なぜかブロックチェーンの技術分野では、同一のデータを多数のノードに記録させることを、分散管理と称しているが、ブロックチェーンで多数のノードが行っているのは単なるミラーリングの処理である。
【０００６】
さて、ビットコインの技術においては、上述のように多数のノードにそれぞれ記録された多数のブロックチェーンが存在する。多数のブロックチェーンは、原則として、それらがすべて同一であるということが保証されなければ、取引記録の真正性について疑義が生じ、ビットコインの信頼性を大きく揺らがせる。
したがって、既に存在するブロックチェーンの末尾に新たなブロックを追加する際に、多数のノードの管理者がそれを各々勝手に行うようなことは避けないとならない。ブロックチェーンの末尾に新たなブロックを追加する者を１人に限定するための方策として利用されているのが、ノードの管理者が参加する上述のゲームである。このゲームを利用した仕組みを、ビットコインの世界では、プルーフ・オブ・ワークと呼ぶ。上述したように、ノードの管理者は、ある種のゲームに参加して、それに勝利した場合にビットコインを手に入れることができるが、それのみならず、ゲームに勝利した場合には、新たな取引記録のブロックを過去の取引記録に対して付加する権利を手に入れる。ゲームに敗れた他のノードの管理者は、その新たな取引記録のブロックを、自らが管理するノードに記録されたブロックチェーンの末尾にコピーして追加する。このようにして、ノードに新たなブロックを追加できる者を１人のみに限定し、且つ新たなブロックと同じブロックをすべてのノードの管理者がブロックチェーンの末尾に追加するというルールを作り、そのルールを正しく運用することにより、多数のノードに存在する多数のブロックチェーンは同じものであるといえる状態を作っている。
【０００７】
以上のような仕組みにより、各ノードに記録されたブロックチェーンは、ハッシュ値により改竄ができない、或いは改竄がなされた場合にはハッシュ値が変化するため、改竄がなされたことが発覚するようになっている。これは言ってみれば、ある１つのブロックチェーンに着目した場合に、各ブロックのデータを改竄できないということである。
また、各ノードに記録されたブロックチェーンのうちの幾つかが、過去のブロックのデータの改竄が発覚しないようにハッシュ値も含めて同じように改竄されたとしても（例えば、多数のノードに記録されたブロックチェーンのうちの幾つかについて、同じ改竄がなされたとしても）、多数のノードに記録されたブロックチェーンのうちの改竄されていないものの方が多数を占めているのであればそちらを真とすることにより、過去のブロックのデータのハッシュ値も含めた改竄も無力となるようにすることができる。実際ビットコインのブロックチェーンではこのような多数決の理論を採用している。これにより、ビットコインにおけるブロックチェーンは、中央集権的なブロックチェーンの管理者が存在しなくとも、その正当性が保証されると言われている。上述のようにノードの管理者は、ゲームに勝つことにより報酬としてビットコインを得ることができる（実際には、それ以外の報酬もある。）。それをモチベーションとしてノードの管理者達は、自らのコンピュータのコンピューティングパワーを向上させる。悪意のある第三者がノードに記録されたブロックチェーンのうちの過半数を改竄するには、ノードの管理者達が持つ多数のコンピュータのコンピューティングパワーの合計の少なくとも半分以上のコンピューティングパワーを持つコンピュータを用意することが必要となる。既にノードの数（正確に言うと、ノードを構成するサーバの数）は、一説によると１千万台を超えていると言われており、それが持つコンピューティングパワーを持つコンピュータを用意することは事実上不可能であるという前提を、ビットコインの仕組みに参加する者は信用している。かかる信用、或いは信頼関係により、ブロックチェーンの、ひいては取引記録の正当性が保証され、ビットコインにある種の信用が与えられている。
【発明の概要】
【発明が解決しようとする課題】
【０００８】
ビットコイン、及びそれに応用されているブロックチェーンの仕組みは大凡以上のようなものである。
上述の如き仕組みにより、各ブロックチェーンのそれぞれは改竄が防止され、また、多数のブロックチェーンのうちの幾つかに改竄が行われたとしても、その改竄は無視され、正当なブロックチェーンが正当なものであると正しく扱われるようになっている。一言で言えば、ブロックチェーンは、記録されたデータを改竄不可能に保全するための技術である、といえる。
しかしながら、改竄不可能にして記録されたデータを保全するという目的だけのために、多数のノードに、同じデータを記録し続けるというのは膨大な無駄であり、敢えて強い言葉を用いるのであれば馬鹿げている。ビットコインのブロックチェーンの各ノードに記録されているブロックチェーンのデータ量は、昨年の段階で既に９０ＴＢを超えているとも言われ、ビットコインの取引量が増えるに連れて、益々膨大なものとなっている。ブロックチェーンは、中央集権的な管理者のいない民主的な技術であると言われることが多いが、かかる無駄は、その利点をも霞ませる程の欠点であると言える。
また、ブロックチェーンの技術はコストが安いと言われることが多いが、それはブロックチェーンのノードの管理者が自発的に負うコストを度外視した場合にのみ成立する利点であって、多数のノードのそれぞれが膨大な同一のデータを記録し続けなければならないのであれば、そのコストが安いわけが無い。
【０００９】
ビットコインのノードの管理者には、ノードを準備するだけの費用と技術力を有するものであれば、誰でもなろうと思えばなれる。そのような開かれたブロックチェーンであるパブリックブロックチェーンに対し、より少数のある一定の立場の者のみがノードの管理者になれる外部に対して閉ざされたプライベートブロックチェーンなるものも最近提案されてはいる。
しかしながら、ある立場の者同士が互いに信頼関係を結べているのであれば、多数のノードを用いること自体が無駄である場合もあるであろうし、プライベートブロックチェーンの場合であれば、ノードを立てまた維持する費用はその管理者達に直接掛かってくるのであるから、そのコスト負担は自ずから大きくなる。そう考えると、プライベートブロックチェーンという技術はそもそも何を利点とする技術か、ということにすら疑問が生じる。
【００１０】
本願発明は、記録されたデータを改竄不可能に保全するための技術であって、その運用のコストがブロックチェーンよりも低い技術を提供することをその課題とする。
【課題を解決するための手段】
【００１１】
かかる課題を解決するため、本願発明者は、以下に説明する発明を提案する。
本願発明は、所定のネットワークを介して互いに通信可能であるとともに、それらがそれぞれ他とは異なる方法で所定のデータを復号化可能に暗号化することができるようになっている暗号化部を備えており、且つそれらのユーザが共に保全することを希望するデータである対象データをそれらのうちの一つが保有している複数の通信装置にて実行される方法である。
かかる方法は、複数の前記通信装置のすべてが、前記対象データ、又はそれを暗号化したデータを前記ネットワークを介して互いに送受信しながら、前記通信装置がそれぞれ有する前記暗号化部によって次々に暗号化する暗号化過程、及び複数の前記通信装置のすべてが、複数の前記通信装置の前記暗号化部のすべてで暗号化された前記対象データを、前記ネットワークを介して送受信することにより共有する共有過程、を含んでいる、
かかる方法は、極めて簡単である。かかる発明を実行する場合における最小の構成は、ネットワークを介して互いに通信可能な２つの通信装置のみである。ただし、それら２つの通信装置は、データの暗号化を復号化可能に実行することのできる暗号化部を備えていることが必要となる。ここで、２つの通信装置にそれぞれ存在する暗号化部は、それぞれ異なる方法で（例えば、異なるアルゴリズムで、或いは異なる鍵で）暗号化を行えるようになっている。
２つの通信装置で本願発明の方法が実行される場合、保全の対象となるデータは、２つの通信装置のユーザがそれぞれ保全することを希望するデータである対象データである。単独のユーザが自己が持つ何らかのデータを記録して保全する場合には、各々のユーザが独自にそのデータを記録し、自らが変更しなければ良い。他方、上述のビットコインのブロックチェーンにおいては典型的であるが、記録した上で改竄がなされない状態で保全されなければならないデータというのは、多くの場合、仮に改竄がされた場合に複数のユーザの間で利害が対立するデータである。ビットコインの取引記録でいえば、ビットコインの譲渡人は、渡したビットコインの数がなるべく小さかったと取引記録を改竄したいというのが本音であろうし、ビットコインの譲受人は渡されたビットコインの数がなるべく大きかったと取引記録を改ざんしたいというのが本音であろう。そのような複数のユーザの間で利害の対立する事柄についてのデータが、本願発明における対象データの典型例となる。
２つの通信装置で本願発明の方法が実行される場合、１つの対象データが２つの通信装置の暗号化部で次々に暗号化される。この場合、どちらの通信装置の暗号化部が先に対象データの暗号化を行うかは不問である。対象データを２つの通信装置の片方のみが持っているのであれば、対象データを持っている通信装置の暗号化部で先に対象データを暗号化するのが普通であろうが、対象データを持っていた一方の通信装置から対象データを持っていなかった他方の通信装置に対象データをまず送信し、それを受取った他方の通信装置の暗号化部で先に対象データの暗号化を行うことも可能である。いずれにせよ、その暗号化部で対象データを先に暗号化した通信装置は、もう１つの通信装置に暗号化された対象データを送信し、それを受取った通信装置は、暗号化された対象データをその暗号化部で更に暗号化する。２つの通信装置の暗号化部で順に暗号化されることにより生成されたデータは、２つの通信装置の暗号化部で行われる暗号化の方法が異なることから、第三者が復号することができなくなるばかりか、２つの通信装置のいずれでももはや復号化することができなくなる。とはいえ、２つの通信装置のユーザが後に対象データの内容を確認したいと考えた場合には、２つの通信装置の例えば暗号化部により（もちろん２つの通信装置の暗号化部は暗号化に特化しており、それとは別にその通信装置の暗号化部で暗号化されたデータを復号化する復号化部を備えていても構わない。）、２つの暗号化部によって暗号化された対象データを順に（一般的には、暗号化を行った順番とは逆の順番で）復号化することにより、元の平文の対象データに戻すことができる。つまり、２つの通信装置の協力によって作られた、対象データを２つの通信装置の暗号化部で順に暗号化することにより生成されたデータは、２つの通信装置或いはそれらのユーザが協力すればいつでも平文の対象データに戻せる一方で、改竄が行われたときには平文の対象データに戻せないことにより改竄が行われたという事実が明らかになるから、事実上改竄ができない。
２つの通信装置で本願発明が実行される場合、少なくともそれら２つの装置が、対象データを２つの通信装置の暗号化部で順に暗号化することにより生成されたデータをその一方から他方に送信することで共有する。それにより、ブロックチェーンを用いることなく、データを改竄不能な状態で記録することが可能となる。もちろん、２つの通信装置のみで実行できるこの方法に必要なコストはブロックチェーンを実現する場合に比べて遥かに低廉である。また、特にビットコインで使用されているブロックチェーンは、新たなブロックを生成して新たなデータを記録するために必要とされる時間が長い（例えば１０分程度）が、本願発明ではそれに比較してその実行に要する時間が一般に短い。
以上では、通信装置が２つであることとして説明したが、本願発明における通信装置は３つ以上でも良い。つまり、本願発明における通信装置は、複数である。この場合の対象データは、それら複数の通信装置のユーザが共に保全することを希望するデータである。それら複数の通信装置は上述した如き暗号化部を備えており、且つそれら暗号化部は互いに異なる方法で何らかのデータの暗号化を行える。対象データは、通信装置が２つの場合と同様に、それら複数の通信装置がそれぞれ持つ暗号化部のすべてで次々に暗号化される。そして、すべての通信装置の暗号化部でそれぞれ暗号化された対象データは、すべての通信装置で共有される。これにより、複数の通信装置は、ブロックチェーンを用いることなく、データを改竄不能な状態で記録することが可能となる。もちろんこの処理に要する時間は、通信装置の数が増えればその分長くなるが、ブロックチェーンでデータを記録するのに要する時間よりは一般に短い。
【００１２】
上述のように、本願発明による方法は、複数の通信装置のユーザが共に保全することを希望するデータである対象データを、それら複数の通信装置の暗号化部で、次々に暗号化する暗号化過程を含んでいる。他方、本願発明による方法における暗号化過程で、対象データを次々に暗号化するのは、対象データを保全することを希望するユーザの通信装置のみに限られない。
本願発明の方法における前記暗号化過程では、所定のネットワークを介して互いに通信可能であり、それらがそれぞれ他とは異なる方法で、且つ複数の前記通信装置の前記暗号化部とも異なる方法で所定のデータを復号化可能に暗号化することができるようになっている補助暗号化部を有している１つ以上の補助通信装置のすべてと、複数の前記通信装置のすべてとが、前記対象データ、又はそれを暗号化したデータを前記ネットワークを介して互いに送受信しながら、前記通信装置がそれぞれ有する前記暗号化部と、前記補助通信装置のすべてがそれぞれ有する前記補助暗号化部とによって次々に暗号化してもよい。
補助暗号化部を有する補助通信装置のユーザは、対象データの内容に対して典型的には利害関係を持つ当事者としてのユーザとは異なり、対象データの内容に対してまったく無関係なものであっても良い。通信装置と補助通信装置とは、そのハードウェア、ソフトウェア、機能等についてはまったく同一のものであっても構わないが、通信装置以外の補助通信装置にも暗号化過程における対象データの暗号化に参加してもらうことによって、最終的に得られる多重に暗号化された対象データはますます、安全に保全されることとなる。補助通信装置は、１つでも複数でも良い。また、例えば、補助通信装置は、公証人的な法的に公正さが認められた者の通信装置とすることができる。通信装置の暗号化部と、補助通信装置の補助暗号化部とがどのような順番で対象データを暗号化するかは自由である。なお、この場合、最終的に得られた多重に暗号化された対象データは、暗号化過程に参加したすべての通信装置と、すべての補助通信装置との協働によって復号化することができる。
暗号化過程に補助通信装置が参加する場合、最終的に得られる多重に暗号化された対象データは上述したように、通信装置のみが共有しても良い。また、通信装置のみならず、補助通信装置もが、最終的に得られる多重に暗号化された対象データを共有しても良い。例えば、前記共有過程では、複数の前記通信装置のすべてと、前記補助通信装置の少なくとも１つとが、複数の前記通信装置の前記暗号化部のすべてで暗号化された前記対象データを、前記ネットワークを介して送受信することにより共有してもよい。
【００１３】
本願発明の方法は、暗号化過程に補助通信装置が参加しない場合には、前記複数の前記通信装置の１つが、前記ネットワークに接続されている、データの記録が可能な記録装置に、複数の前記通信装置の前記暗号化部のすべてで暗号化された前記対象データを送信して、前記記録装置に複数の前記通信装置の前記暗号化部のすべてで暗号化された前記対象データを記録させる記録過程を含んでいても良い。
暗号化過程に補助通信装置が参加しない場合には、上述したように多重に暗号化された対象データをすべての通信装置で共有するのが原則である。これによれば、各通信装置で記録されている多重に暗号化された対象データは、改竄できない、或いは改竄されたらそれが判明する状態となる。とはいえ、各通信装置で記録されている多重に暗号化された対象データは、例えば消去されたり紛失したりする可能性がある。そのようなことに備えて、多重に暗号化された対象データは、通信装置から外部の記録装置に送られ、そこで記録されていればいわゆるバックアップが存在するため安心である。記録装置は複数存在していてもよく、複数の記録装置に多重に暗号化された対象データが記録されることとすれば、かかるデータの改竄が益々難しくなる。これは、ビットコインのシステムにおけるブロックチェーンでノードを多数準備し、多数のノードに同一のブロックチェーンを記録することと類似するが、ブロックチェーンの仕組みでは、ノードの数の多さがブロックチェーンの真正さを証明するというシステムになっておりノードは増殖していく宿命にあったことに鑑みれば、本願発明で必要な記録装置の数などたかが知れている。記録装置が複数存在する場合、時間の経過とともに、各記録装置には、多重に暗号化された対象データがそれぞれ複数（或いは多数）記録されることになろうが、その場合において、各記録装置に記録されている多重に暗号化された対象データは同じものである必要はない。例えば、ある時点までに生成された多重に暗号化された対象データが１〜１００までの１００個であり、且つ記録装置が記録装置１〜５の４つであったとすると、記録装置１には、多重に暗号化された対象データの１〜１００までが、記録装置２には多重に暗号化された対象データの１〜５０が、記録装置３には、多重に暗号化された対象データの４０〜９０が、記録装置４には、多重に暗号化された対象データの偶数番目のものが、記録装置５には、多重に暗号化された対象データの奇数番目のものが、それぞれ記録されている、というような状態が許容され得る。従来のブロックチェーンにおいては、原則としてすべてのノードにブロックチェーンのデータのすべてが記録されることが必要とされており、それがノードに記録されるデータの量が膨大となることに拍車をかけていたが、本願発明の方法によれば、そのようは弊害は生じにくい。
記録過程により記録装置に、複数の通信装置の暗号化部のすべてで暗号化された対象データを記録することができるが、暗号化されたその対象データに加えて、その対象データの元となった対象データ（平文である）を、記録装置が記録するようになっていても良い。このようにすれば、暗号化された対象データの内容を、暗号化された対象データを復号化することなく確認することができるようになる。これは、ビットコインのブロックチェーンのように、記録されたデータ（取引記録等）を公開する場合に有用である。対象データそれ自体は改竄が可能であろうが、そのような改竄があったときには暗号化された対象データを復号化したときに、改竄された対象データと、暗号化されていた対象データを復号化して得られた対象データとが一致しなくなるから、その改竄が発覚する。例えば、前記記録過程で前記通信装置が、複数の前記通信装置の前記暗号化部のすべてで暗号化された前記対象データである暗号化対象データと、当該暗号化対象データの元となった前記対象データとを前記記録装置に送信し、前記記録装置は、前記暗号化対象データと、その元となった前記対象データとを、互いに紐付けた状態で記録するようになっていてもよい。
前記記録過程で前記記録装置に記録されている複数の前記通信装置の前記暗号化部のすべてで暗号化された前記対象データを、前記ネットワークに接続されている機器に対して公開された状態とすることも可能である。そうすることで、多重に暗号化された対象データが第三者による監視下に置かれることになり、かかるデータの改竄の可能性がより小さくなる。この場合、記録装置に暗号化された対象データと、その元になった平文の対象データとが記録されるのであれば、それらの双方を公開された状態とすることも可能である。
以上の事情は、暗号化過程に補助通信装置が参加する場合でも同様である。
本願発明の方法は、暗号化過程に補助通信装置が参加する場合には、前記複数の前記通信装置と、前記補助通信装置のうちの前記通信装置がそれぞれ有する前記暗号化部と、前記補助通信装置のすべてがそれぞれ有する前記補助暗号化部とで暗号化された前記対象データを持つものが、前記ネットワークに接続されている、データの記録が可能な記録装置に、前記通信装置がそれぞれ有する前記暗号化部と、前記補助通信装置のすべてがそれぞれ有する前記補助暗号化部とで暗号化された前記対象データを送信して、前記記録装置に前記通信装置がそれぞれ有する前記暗号化部と、前記補助通信装置のすべてがそれぞれ有する前記補助暗号化部とで暗号化された前記対象データを記録させる記録過程を含んでもよい。また、前記記録過程で前記通信装置又は前記補助通信装置が、複数の前記通信装置及び前記補助通信装置の前記暗号化部のすべてで暗号化された前記対象データである暗号化対象データと、当該暗号化対象データの元となった前記対象データとを前記記録装置に送信し、前記記録装置は、前記暗号化対象データと、その元となった前記対象データとを、互いに紐付けた状態で記録してもよい。この場合、記録装置に暗号化された対象データと、その元になった平文の対象データとが記録されるのであれば、それらの一方或いは双方を公開された状態とすることも可能である。
この場合、前記記録過程で前記記録装置に記録されている前記通信装置がそれぞれ有する前記暗号化部と、前記補助通信装置のすべてがそれぞれ有する前記補助暗号化部とで暗号化された前記対象データを、前記ネットワークに接続されている機器に対して公開された状態としてもよい。
【００１４】
もっとも、記録装置に記録される暗号化された対象データ、又は暗号化された対象データ及び対象データは、従来のブロックチェーンの如く、ブロックに含まれた状態とされてもよい。そのようにすることで、記録装置に記録された暗号化された対象データが改竄されること、或いは消去されることを防止すること、或いは改竄、消去されたことが発覚するようにすることが可能となる。
例えば、複数の前記通信装置の前記暗号化部のすべてで暗号化された前記対象データである暗号化対象データは、データの集合であるブロックであって、その直前のブロックに接続されるものに含まれた状態で前記記録装置に記録されるようになっているとともに、前記ブロックのそれぞれにはその直前のブロックに対して所定の演算を行って得られる値である演算値が含まれるようになっており、前記記録過程で前記記録装置に前記暗号化対象データを送信する前記通信装置が、送信の対象となる前記暗号化対象データを含む前記ブロックを生成して、それを前記記録装置に送信してもよい。この場合、新たなブロックは、通信装置で生成される。なお、以下も同様であるが、演算値は例えば、直前のブロックに対してハッシュ演算を行うことによって得られたハッシュ値であってもよい。補助通信装置が存在する場合も同様であり、補助通信装置が存在する場合には、複数の前記通信装置と、前記補助通信装置のうちの前記通信装置がそれぞれ有する前記暗号化部と、前記補助通信装置のすべてがそれぞれ有する前記補助暗号化部とで暗号化された前記対象データである暗号化対象データは、データの集合であるブロックであって、その直前のブロックに接続されるものに含まれた状態で前記記録装置に記録されるようになっているとともに、前記ブロックのそれぞれにはその直前のブロックに対して所定の演算を行って得られる値である演算値が含まれるようになっており、前記記録過程で前記記録装置に前記暗号化対象データを送信する前記通信装置又は補助通信装置が、送信の対象となる前記暗号化対象データを含む前記ブロックを生成して、それを前記記録装置に送信してもよい。この場合、新たなブロックは、通信装置或いは補助通信装置で生成される。
他方、新たなブロックは、記録装置において生成されてもよい。例えば、複数の前記通信装置の前記暗号化部のすべてで暗号化された前記対象データである暗号化対象データは、データの集合であるブロックであって、その直前のブロックに接続されるものに含まれた状態で前記記録装置に記録されるようになっているとともに、前記ブロックのそれぞれにはその直前のブロックに対して所定の演算を行って得られる値である演算値が含まれるようになっており、前記記録過程で前記記録装置が、前記通信装置から受取った前記暗号化対象データに基づき前記ブロックを生成し、それをその直前の前記ブロックに接続してもよい。補助通信装置が存在する場合には、複数の前記通信装置と、前記補助通信装置のうちの前記通信装置がそれぞれ有する前記暗号化部と、前記補助通信装置のすべてがそれぞれ有する前記補助暗号化部とで暗号化された前記対象データである暗号化対象データは、データの集合であるブロックであって、その直前のブロックに接続されるものに含まれた状態で前記記録装置に記録されるようになっているとともに、前記ブロックのそれぞれにはその直前のブロックに対して所定の演算を行って得られる値である演算値が含まれるようになっており、前記記録過程で前記記録装置が、前記通信装置又は前記補助通信装置から受取った前記暗号化対象データに基づき前記ブロックを生成し、それをその直前の前記ブロックに接続してもよい。記録装置で新たなブロックが生成される場合においては、１つの前記ブロックに含まれる前記暗号化対象データは１つ以上であり、前記記録過程で前記記録装置は、前記通信装置から１つ以上の前記暗号化対象データを受取った後の所定のタイミングで、その直前の前記ブロックが生成されて以降に受取った１つ以上の前記暗号化対象データを含む前記ブロックを生成し、それをその直前の前記ブロックに接続してもよい。このようにすることで、１つのブロックに複数の暗号化対象データを含めることが可能となる。
この場合、ブロックには、暗号化対象データのみならず、暗号化対象データの元になった対象データも含まれるようにすることができる。例えば、前記ブロックには、前記暗号化対象データと、当該暗号化対象データの元となった前記対象データと、前記演算値とが含まれており、前記記録過程で前記記録装置に前記暗号化対象データを送信する前記通信装置が、送信の対象となる前記暗号化対象データと、前記暗号化対象データとを含む前記ブロックを生成して、それを前記記録装置に送信してもよい。補助通信装置が存在するのであれば、前記ブロックには、前記暗号化対象データと、当該暗号化対象データの元となった前記対象データと、前記演算値とが含まれており、前記記録過程で前記記録装置に前記暗号化対象データを送信する前記通信装置又は補助通信装置が、送信の対象となる前記暗号化対象データと、その元となった前記暗号化対象データとを含む前記ブロックを生成して、それを前記記録装置に送信してもよい。
ブロックは、上述のように通信装置或いは補助通信装置で生成されても良いが、記録装置で生成されても良い。例えば、前記ブロックには、前記暗号化対象データと、当該暗号化対象データの元となった前記対象データと、前記演算値とが、前記暗号化対象データ及びその元となった前記対象データを互いに紐付けた状態で含まれており、前記記録過程で前記記録装置は、前記通信装置から受取った前記暗号化対象データと、その元になった前記対象データとに基づき前記ブロックを生成し、それをその直前の前記ブロックに接続してもよい。補助通信装置が存在するのであれば、前記ブロックには、前記暗号化対象データと、当該暗号化対象データの元となった前記対象データと、前記演算値とが、前記暗号化対象データ及びその元となった前記対象データを互いに紐付けた状態で含まれており、前記記録過程で前記記録装置は、前記通信装置又は前記補助通信装置から受取った前記暗号化対象データと、その元になった前記対象データとに基づき前記ブロックを生成し、それをその直前の前記ブロックに接続してもよい。
暗号化対象データ、及び対象データは、それらがブロックに含まれた状態で記録装置に記録されているか否かによらず、前記ネットワークに接続されている機器に対して公開された状態とすることができる。
【００１５】
本願発明による方法を、より具体化して記述すると以下のようなものとなる。かかる方法は、以上で説明した発明のうち、２つの通信装置によって実行されるものに相当する。以下の説明における第１通信装置と、第２通信装置とが、以上で説明した発明における２つの通信装置に相当する。第１通信装置と第２通信装置とは本来区別する必要はないが、２つの通信装置のうち、最初に対象データの暗号化を行うものを便宜上第１通信装置と称することにしている。
【００１６】
この場合による本願発明は、所定のネットワークを介して互いに通信可能である、所定のデータを復号化可能に暗号化することができる第１暗号化部を有する第１通信装置と、所定のデータを前記第１暗号化部と異なる方法で復号化可能に暗号化することができる第２暗号化部を有する第２通信装置と、を含んでなる通信システムにて実行される方法である。
そして、この方法は、前記第１通信装置が、前記第１通信装置と前記第２通信装置とのユーザがともに保全することを希望するデータである対象データを、前記第１暗号化部で暗号化して第１暗号化対象データを生成する第１暗号化過程、前記第１通信装置が、前記第１暗号化対象データを前記ネットワークを介して前記第２通信装置に送信する第１送信過程、前記第２通信装置が、前記第１通信装置から前記第１暗号化対象データを前記ネットワークを介して受取る第１受信過程、前記第２通信装置が、前記第１暗号化対象データを、前記第２暗号化部で暗号化して第２第１暗号化対象データを生成する第２暗号化過程、前記第２通信装置が、前記第２第１暗号化対象データを前記ネットワークを介して前記第１通信装置に送信する第２送信過程、前記第１通信装置が、前記第２通信装置から前記第２第１暗号化対象データを前記ネットワークを介して受取る第２受信過程、を含む。
かかる発明による効果は、上述した方法による効果と同じである。
なお、対象データを暗号化したものが暗号化対象データであり、第１通信装置のみで暗号化された対象データが第１暗号化対象データである。その後第１暗号化対象データを第２通信装置で更に暗号化したものを第２第１暗号化対象データと称する。用語の使い方は、以後も同様である。
【００１７】
第１通信装置と第２通信装置とを含む通信システムで実行される方法についての上記発明は、以下のように、第１通信装置で実行される方法、或いは、第２通信装置で実行される方法として把握することも可能である。第１通信装置で実行される方法、及び第２通信装置で実行される方法の発明の効果は、第１通信装置と第２通信装置とを含む通信システムで実行される方法による効果と同じである。
一例となる第１通信装置で実行される方法は、所定のネットワークを介して互いに通信可能である、所定のデータを復号化可能に暗号化することができる第１暗号化部を有する第１通信装置と、所定のデータを前記第１暗号化部と異なる方法で復号化可能に暗号化することができる第２暗号化部を有する第２通信装置と、を含んでなる通信システムにおける前記第１通信装置にて実行される方法である。
そしてこの方法は、前記第１通信装置が実行する、前記第１通信装置と前記第２通信装置とのユーザがともに保全することを希望するデータである対象データを前記第１暗号化部で暗号化して第１暗号化対象データを生成する第１暗号化過程、前記第１暗号化対象データを前記ネットワークを介して前記第２通信装置に送信する第１送信過程、前記第２通信装置が、前記第１通信装置から前記ネットワークを介して受取った前記第１暗号化対象データを、前記第２暗号化部で暗号化して生成された第２第１暗号化対象データを、前記ネットワークを介して前記第２通信装置から受取る第２受信過程、を含む。
第１通信装置で実行される方法では、前記第１通信装置が、前記第１暗号化過程と、前記第１送信過程と、前記第２受信過程とを、自動的に実行しても良い。例えば、第１通信装置のユーザが、第２通信装置を選択する或いは特定して処理開始のための何らかの操作内容を第１通信装置に入力した後に、第１通信装置が、第１暗号化過程と、第１送信過程と、第２受信過程とを、自動的に実行するようにすることができる。この効果は既に述べた通りである。
第１通信装置で実行される方法は、前記第１通信装置が、前記ネットワークに接続されている、データの記録が可能な記録装置に前記第２第１暗号化対象データを送信して、前記記録装置に前記第２第１暗号化対象データを記録させる過程を含んでいてもよい。この効果は既に述べた通りである。
前記第１通信装置が、前記第２第１暗号化対象データと、当該第２第１暗号化対象データの元となった前記対象データとを前記記録装置に送信し、前記記録装置は、前記第２第１暗号化対象データと、その元となった前記対象データとを、互いに紐付けた状態で記録してもよい。記録装置に記録される暗号化対象データは、上述したが如きブロックに含まれていても良い。例えば、前記第２第１暗号化対象データは、データの集合であるブロックであって、その直前のブロックに接続されるものに含まれた状態で前記記録装置に記録されるようになっているとともに、前記ブロックのそれぞれにはその直前のブロックに対して所定の演算を行って得られる値である演算値が含まれるようになっており、前記第１通信装置は、送信の対象となる前記第２第１暗号化対象データを含む前記ブロックを生成して、それを前記記録装置に送信してもよい。ブロックには、第２第１暗号化対象データのみならず、その元になった対象データも含まれていてもよい。例えば、前記ブロックには、前記第２第１暗号化対象データと、当該第２第１暗号化データの元となった前記対象データと、前記演算値とが含まれており、前記第１通信装置は、送信の対象となる前記第２第１暗号化対象データと、その元となった前記対象データとを含む前記ブロックを生成して、それを前記記録装置に送信してもよい。また、前記第２第１暗号化対象データが、データの集合であるブロックであって、その直前のブロックに接続されるものに含まれた状態で前記記録装置に記録されるようになっているとともに、前記ブロックのそれぞれにはその直前のブロックに対して所定の演算を行って得られる値である演算値が含まれるようになっている場合であって、第１通信装置が第２第１暗号化対象化データを記録装置に送信する場合には、記録装置がそれに続けて、前記第１通信装置から受取った前記第２第１暗号化対象データに基づき前記ブロックを生成し、それをその直前の前記ブロックに接続する、方法を実行しても良い。この場合、１つの前記ブロックに含まれる前記第２第１暗号化対象データは１つ以上であり、前記記録装置は、前記第１通信装置から１つ以上の前記第２第１暗号化対象データを受取った後の所定のタイミングで、その直前の前記ブロックが生成されて以降に受取った１つ以上の前記第２第１暗号化対象データを含む前記ブロックを生成し、それをその直前の前記ブロックに接続してもよい。また、前記第２第１暗号化対象データと、当該第２第１暗号化データの元となった前記対象データとが、データの集合であるブロックであって、その直前のブロックに接続されるものに含まれた状態で前記記録装置に記録されるようになっているとともに、前記ブロックのそれぞれにはその直前のブロックに対して所定の演算を行って得られる値である演算値が含まれるようになっている場合であって、第１通信装置が第２第１暗号化対象化データ及びその元になった対象データを記録装置に送信する場合には、前記記録装置がそれに続けて、前記第１通信装置から受取った前記第２第１暗号化対象データと、その元になった前記対象データとに基づき前記ブロックを生成し、それをその直前の前記ブロックに接続してもよい。これらの効果は、既に述べた通りである。
一例となる第２通信装置で実行される方法は、所定のネットワークを介して互いに通信可能である、所定のデータを復号化可能に暗号化することができる第１暗号化部を有する第１通信装置と、所定のデータを前記第１暗号化部と異なる方法で復号化可能に暗号化することができる第２暗号化部を有する第２通信装置と、を含んでなる通信システムにおける前記第２通信装置にて実行される方法である。
そしてこの方法は、前記第２通信装置が実行する、前記第１通信装置が、前記第１通信装置と前記第２通信装置とのユーザがともに保全することを希望するデータである対象データを前記第１暗号化部で暗号化して生成された第１暗号化対象データを、前記第１通信装置から前記ネットワークを介して受取る第１受信過程、前記第１暗号化対象データを、前記第２暗号化部で暗号化して第２第１暗号化対象データを生成する第２暗号化過程、前記第２第１暗号化対象データを前記ネットワークを介して前記第１通信装置に送信する第２送信過程、を含む。
第２通信装置で実行される方法では、前記第２通信装置が、前記第１受信過程と、前記第２暗号化過程と、前記第２送信過程とを、自動的に実行しても良い。例えば、第１通信装置のユーザが、第２通信装置を選択する或いは特定して処理開始のための何らかの操作内容を第１通信装置に入力した後に、第２通信装置が、第１受信過程と、第２暗号化過程と、第２送信過程とを、自動的に実行するようにすることができる。この効果は既に述べた通りである。
第２通信装置で実行される方法は、前記第２通信装置が、前記ネットワークに接続されている、データの記録が可能な記録装置に前記第２第１暗号化対象データを送信して、前記記録装置に前記第２第１暗号化対象データを記録させる過程を含んでいてもよい。この効果は既に述べた通りである。
前記第２通信装置が、前記第２第１暗号化対象データと、当該第２第１暗号化対象データの元となった前記対象データとを前記記録装置に送信し、前記記録装置は、前記第２第１暗号化対象データと、その元となった前記対象データとを、互いに紐付けた状態で記録してもよい。記録装置に記録される暗号化対象データは、上述したが如きブロックに含まれていても良い。例えば、前記第２第１暗号化対象データは、データの集合であるブロックであって、その直前のブロックに接続されるものに含まれた状態で前記記録装置に記録されるようになっているとともに、前記ブロックのそれぞれにはその直前のブロックに対して所定の演算を行って得られる値である演算値が含まれるようになっており、前記第２通信装置は、送信の対象となる前記第２第１暗号化対象データを含む前記ブロックを生成して、それを前記記録装置に送信してもよい。ブロックには、第２第１暗号化対象データのみならず、その元になった対象データも含まれていてもよい。例えば、前記ブロックには、前記第２第１暗号化対象データと、当該第２第１暗号化対象データの元となった前記対象データと、前記演算値とが含まれており、前記第２通信装置は、送信の対象となる前記第２第１暗号化対象データと、その元となった対象データとを含む前記ブロックを生成して、それを前記記録装置に送信してもよい。
また、前記第２第１暗号化対象データが、データの集合であるブロックであって、その直前のブロックに接続されるものに含まれた状態で前記記録装置に記録されるようになっているとともに、前記ブロックのそれぞれにはその直前のブロックに対して所定の演算を行って得られる値である演算値が含まれるようになっている場合であって、第２通信装置が第２第１暗号化対象化データを記録装置に送信した場合に、前記記録装置がそれに続けて、前記第２通信装置から受取った前記第２第１暗号化対象データに基づき前記ブロックを生成し、それをその直前の前記ブロックに接続する、方法を実行しても良い。前記ブロックには、前記第２第１暗号化対象データと、当該第２第１暗号化対象データの元となった前記対象データと、前記演算値とが、前記第２第１暗号化対象データ及び前記対象データとを互いに紐付けられた状態で含まれるようになっている場合には、前記記録装置は、前記第２通信装置から受取った前記第２第１暗号化対象データと、その元になった前記対象データとに基づき前記ブロックを生成し、それをその直前の前記ブロックに接続してもよい。記録装置でブロックを生成するこれら２つの場合、１つの前記ブロックに含まれる前記第２第１暗号化対象データは１つ以上であり、前記記録装置は、前記第２通信装置から１つ以上の前記第２第１暗号化対象データを受取った後の所定のタイミングで、その直前の前記ブロックが生成されて以降に受取った１つ以上の前記第２第１暗号化対象データを含む前記ブロックを生成し、それをその直前の前記ブロックに接続してもよい。これらの効果は、既に述べた通りである。
【００１８】
本願発明者は、第１通信装置をも本願発明の一態様として提案する。その効果は、第１通信装置で実行される方法による効果と等しい。それは例えば、以下のようなものである。
第１通信装置は、所定のネットワークを介して互いに通信可能である、第１通信装置と、所定のデータを復号化可能に暗号化することができる第２暗号化部を有する第２通信装置と、を含んでなる通信システムにおける第１通信装置である。
第１通信装置は、前記第１通信装置と前記第２通信装置とのユーザがともに保全することを希望するデータである対象データを前記第２暗号化部と異なる方法で暗号化して第１暗号化対象データを生成する第１暗号化部と、前記第１暗号化対象データを前記ネットワークを介して前記第２通信装置に送信する第１送信部と、前記第２通信装置が、前記第１通信装置から前記ネットワークを介して受取った前記第１暗号化対象データを、前記第２暗号化部で暗号化して生成された第２第１暗号化対象データを、前記ネットワークを介して前記第２通信装置から受取る第１受信部と、を含む。
本願発明者は、第１通信装置として、例えば汎用のコンピュータを機能させるためのコンピュータプログラムをも、本願発明の一態様として提案する。それは例えば、以下のようなものである。
そのコンピュータプログラムは、所定のネットワークを介して互いに通信可能である、第１通信装置と、所定のデータを復号化可能に暗号化することができる第２暗号化部を有する第２通信装置と、を含んでなる通信システムにおける第１通信装置として所定のコンピュータを機能させるためのコンピュータプログラムである。
そして、そのコンピュータプログラムは、前記コンピュータを、前記第１通信装置と前記第２通信装置とのユーザがともに保全することを希望するデータである対象データを前記第２暗号化部と異なる方法で暗号化して第１暗号化対象データを生成する第１暗号化部と、前記第１暗号化対象データを前記ネットワークを介して前記第２通信装置に送信する第１送信部と、前記第２通信装置が、前記第１通信装置から前記ネットワークを介して受取った前記第１暗号化対象データを、前記第２暗号化部で暗号化して生成された第２第１暗号化対象データを、前記ネットワークを介して前記第２通信装置から受取る第１受信部と、して機能させるためのコンピュータプログラムである。
【００１９】
本願発明者は、第２通信装置をも本願発明の一態様として提案する。その効果は、第２通信装置で実行される方法による効果と等しい。それは例えば、以下のようなものである。
第２通信装置は、所定のネットワークを介して互いに通信可能である、所定のデータを復号化可能に暗号化することができる第１暗号化部を有する第１通信装置と、第２通信装置と、を含んでなる通信システムにおける第２通信装置である。
第２通信装置は、前記第１通信装置が、前記第１通信装置と前記第２通信装置とのユーザがともに保全することを希望するデータである対象データを前記第１暗号化部で暗号化して生成された第１暗号化対象データを、前記第１通信装置から前記ネットワークを介して受取る第２受信部と、前記第１暗号化対象データを前記第１暗号化部と異なる方法で暗号化して第２第１暗号化対象データを生成する第２暗号化部と、前記第２第１暗号化対象データを前記ネットワークを介して前記第１通信装置に送信する第２送信部と、を含む。
本願発明者は、第２通信装置として、例えば汎用のコンピュータを機能させるためのコンピュータプログラムをも、本願発明の一態様として提案する。それは例えば、以下のようなものである。
そのコンピュータプログラムは、所定のネットワークを介して互いに通信可能である、所定のデータを復号化可能に暗号化することができる第１暗号化部を有する第１通信装置と、第２通信装置と、を含んでなる通信システムにおける第２通信装置として所定のコンピュータを機能させるためのコンピュータプログラムである。
そして、そのコンピュータプログラムは、前記コンピュータを、前記第１通信装置が、前記第１通信装置と前記第２通信装置とのユーザがともに保全することを希望するデータである対象データを前記第１暗号化部で暗号化して生成された第１暗号化対象データを、前記第１通信装置から前記ネットワークを介して第２受信部と、前記第１暗号化対象データを前記第１暗号化部と異なる方法で暗号化して第２第１暗号化対象データを生成する第２暗号化部と、前記第２第１暗号化対象データを前記ネットワークを介して前記第１通信装置に送信する第２送信部と、して機能させるためのコンピュータプログラムである。
【図面の簡単な説明】
【００２０】
【図１】第１実施形態による通信システムの全体構成を概略的に示す図。
【図２】図１に示した通信システムにおけるユーザ端末の外観を示す斜視図。
【図３】図１に示した通信システムにおけるユーザ端末のハードウェア構成を示す図。
【図４】図１に示した通信システムにおけるユーザ端末の内部に生成される機能ブロックを示すブロック図。
【図５】図１に示した通信システムで実行される処理の流れを示す図。
【図６】図２に示したユーザ端末のディスプレイに表示される画像の一例を示す図。
【図７】第２実施形態による通信システムの全体構成を概略的に示す図。
【図８】第２実施形態におけるユーザ端末のディスプレイに表示される画像の一例を示す図。
【図９】変形例１の通信システムにおける記録装置の内部に生成される機能ブロックを示すブロック図。
【図１０】変形例１の通信システムにおける記録装置の記録部に記録されるブロックに含まれるデータを概念的に示す図。
【図１１】変形例２の通信システムにおけるユーザ端末の内部に生成される機能ブロックを示すブロック図。
【発明を実施するための形態】
【００２１】
以下、本発明の第１、第２実施形態について説明する。各実施形態、変形例の説明で同じ対象には同一の符号を付すものとし、重複する説明は場合により省略するものとする。また、特に矛盾なき場合、各実施形態及び変形例は、他の実施形態及び変形例とも組合せることができる。
【００２２】
≪第１実施形態≫
図１に、第１実施形態による通信システムの全体構成を概略で示す。
通信システムは、複数の、通常は多数のユーザ端末１００−１〜１００−Ｎ（以後、単に、「ユーザ端末１００」と記載する場合もある。）を含んで構成されている。これらはすべて、ネットワーク４００に接続可能とされている。
ネットワーク４００は、これには限られないが、この実施形態ではインターネットである。
ユーザ端末１００は、広く言えば本願発明の通信装置（或いは、第１通信装置、及び第２通信装置）の一例である。
また、かかる通信システムには、必須ではないが、ネットワーク４００に接続された記録装置３００が含まれている。記録装置３００は、複数である場合が多く、場合によっては多数である。
【００２３】
通常、ユーザ端末１００は各ユーザの所有物である。ユーザ端末１００は、コンピュータを含んでいる。ユーザ端末１００は、携帯電話、スマートフォン、タブレット、ノート型パソコン、デスクトップ型パソコン等である。これらはいずれも汎用のもので良い。スマートフォンは例えば、Ａｐｐｌｅ  Ｊａｐａｎ合同会社が製造、販売を行うｉＰｈｏｎｅである。タブレットの例はＡｐｐｌｅ  Ｊａｐａｎ合同会社が製造、販売を行うｉＰａｄである。以下、これには限られないが、ユーザ端末がスマートフォンであることとして話を進める。
ユーザ端末１００は少なくとも、互いにネットワーク４００を介しての通信が可能なことと、後述するようなデータの暗号化、及び復号化の処理を行えることが必要とされる。この実施形態におけるユーザ端末１００はスマートフォンであるから、当然に、他のユーザ端末１００と、ネットワーク４００を介しての通信が可能である。また、データの暗号化と復号化の機能は、後述するように、コンピュータプログラムにより獲得可能である。
【００２４】
次に、ユーザ端末１００の構成を説明する。各ユーザ端末１００−１〜１００−Ｎの構成は、本願発明との関連でいえば同じである。
ユーザ端末１００の外観の一例を図２に示す。
ユーザ端末１００は、ディスプレイ１０１を備えている。ディスプレイ１０１は、静止画又は動画を表示するためのものであり、公知、或いは周知のものを用いることができる。ディスプレイ１０１は例えば、液晶ディスプレイである。ユーザ端末１００は、また入力装置１０２を備えている。入力装置１０２は、ユーザが所望の入力をユーザ端末１００に対して行うためのものである。入力装置１０２は、公知或いは周知のものを用いることができる。この実施形態におけるユーザ端末１００の入力装置１０２はボタン式のものとなっているが、これには限られず、テンキー、キーボード、トラックボール、マウスなどを用いることも可能である。ユーザ端末１００が例えば、ノート型パソコン、デスクトップ型パソコンなのであれば、その入力装置１０２は、キーボード、トラックボール、マウス等となるであろう。また、ディスプレイ１０１がタッチパネルである場合、ディスプレイ１０１は入力装置１０２の機能を兼ねることになり、この実施形態ではそうされている。
入力装置１０２から入力されるデータは、いずれもその詳細を追って説明するが、例えば、選択情報、開始情報である。
【００２５】
ユーザ端末１００のハードウェア構成を、図３に示す。
ハードウェアには、ＣＰＵ（central processing unit）１１１、ＲＯＭ（read only memory）１１２、ＲＡＭ（random access memory）１１３、インターフェイス１１４が含まれており、これらはバス１１６によって相互に接続されている。
ＣＰＵ１１１は、演算を行う演算装置である。ＣＰＵ１１１は、例えば、ＲＯＭ１１２に記録されたコンピュータプログラムを実行することにより、後述する処理を実行する。なお、ここでいうコンピュータプログラムには、本願発明の通信装置（或いは、第１通信装置、及び第２通信装置）としてこのユーザ端末１００を機能させるためのコンピュータプログラムが少なくとも含まれる。このコンピュータプログラムは、ユーザ端末１００にプリインストールされていたものであっても良いし、事後的にインストールされたものであっても良い。このコンピュータプログラムのユーザ端末１００へのインストールは、メモリカード等の図示を省略の所定の記録媒体を介して行なわれても良いし、インターネットなどのネットワークを介して行なわれても構わない。
ＲＯＭ１１２は、ＣＰＵ１１１が後述する処理を実行するために必要なコンピュータプログラムやデータを記録している。ＲＯＭ１１２に記録されたコンピュータプログラムは、これに限られず、ユーザ端末１００がスマートフォンであれば、ユーザ端末１００をスマートフォンとして機能させるために必要な、例えば、通話や電子メールを実行するためのコンピュータプログラムやデータが記録されている。ユーザ端末１００は、また、ネットワーク４００を介して受取ったデータに基づいて、ホームページを閲覧することも可能とされており、それを可能とするための公知のｗｅｂブラウザを実装している。
ＲＡＭ１１３は、ＣＰＵ１１１が処理を行うために必要なワーク領域を提供する。
インターフェイス１１４は、バス１１６で接続されたＣＰＵ１１１やＲＡＭ１１３等と外部との間でデータのやり取りを行うものである。インターフェイス１１４には、上述のディスプレイ１０１と、入力装置１０２とが接続されている。入力装置１０２から入力された操作内容は、インターフェイス１１４からバス１１６に入力されるようになっているとともに、後述する画像データは、インターフェイス１１４から、ディスプレイ１０１に出力されるようになっている。インターフェイス１１４は、また、図示を省略する送受信部に接続されている。  
送受信部は、インターネットであるネットワーク４００を介してのデータの送受信を行うものである。かかる通信は、有線で行われる場合もあるが、ユーザ端末１００がスマートフォンである場合には、かかる通信は通常無線で行われる。それが可能な限り、送受信部の構成は、公知或いは周知のものとすることができる。送受信部がネットワーク４００から受取ったデータは、インターフェイス１１４により受取られるようになっており、インターフェイス１１４から送受信部に渡されたデータは、送受信部によって、ネットワーク４００を介して外部、例えば、他のユーザ端末１００に送られるようになっている。送受信部からネットワーク４００を介して他の装置に送られることのあるデータは、後述する対象データ又は暗号化された対象データであり、送受信部がネットワーク４００を介して他の装置から受取ることのあるデータも同様である。
【００２６】
ＣＰＵ１１１がコンピュータプログラムを実行することにより、ユーザ端末１００内部には、図４で示されたような機能ブロックが生成される。なお、以下の機能ブロックは、ユーザ端末１００を本願発明の通信装置（或いは、第１通信装置、及び第２通信装置）として機能させるための上述のコンピュータプログラム単体の機能により生成されていても良いが、上述のコンピュータプログラムと、ユーザ端末１００にインストールされたＯＳその他のコンピュータプログラムとの協働により生成されても良い。
ユーザ端末１００内には、本願発明の機能との関係で、以下のような制御部１２０が生成される。制御部１２０には、主制御部１２１、データ入出力部１２２、第１記録部１２３、暗号化部１２４が存在する。
【００２７】
制御部１２０は、以下に説明するような情報処理を実行する。
主制御部１２１は、制御部１２０内の全体的な制御を行う。例えば、主制御部１２１は、データ入出力部１２２から、後述する選択情報と開始情報とを受付ける場合がある。選択情報は、この主制御部１２１を有するユーザ端末１００を含む幾つかのユーザ端末１００の間で、共有して記録し保全する対象となるデータである対象データを選択するとともに、対象データを共有して記録し保全するユーザ端末１００を特定する情報である。選択情報を受付けた場合、主制御部１２１は、第１記録部１２３から、選択情報で選択された対象データを読み出すようになっている。また、開始情報を受付けた場合、主制御部１２１は、後述する暗号化過程を開始するための後述する処理を実行するようになっている。
主制御部１２１は、また、対象データを第１記録部１２３から読み出した場合に、暗号化部１２４に、その対象データを送る場合がある。また、主制御部１２１は、対象データ又は暗号化された対象データをデータ入出力部１２２から受取る場合がある。これらを受取った場合、主制御部１２１はそのデータを暗号化部１２４か、又は第１記録部１２３に送るようになっている。
なお、各ユーザ端末１００の主制御部１２１には、各ユーザ端末１００にユニークなユーザＩＤが記録されている。ユーザＩＤを用いることにより、各ユーザ端末１００を特定することができる。ユーザＩＤは例えば、数字、英字、記号或いはそれらを混合したものである。現実にはあまり即さないが、この実施形態では、各ユーザ端末１００に割当てられた符号である、１００−１〜１００−Ｎが各ユーザ端末１００のユーザＩＤであるものとする。ユーザＩＤの利用の仕方については後述するものとする。
また、主制御部１２１は、暗号化部１２４から暗号化された対象データを受取る場合がある。暗号化された対象データを受取った場合、主制御部１２１はそれを、データ入出力部１２２に送るようになっている。
【００２８】
データ入出力部１２２は、制御部１２０へのデータの入出力を行うものである。
具体的には、データ入出力部１２２は、インターフェイス１１４を介して、上述の入力装置１０２から入力された、選択情報、開始情報を受付けるようになっている。それら入力装置１０２からのデータを受付けた場合には、データ入出力部１２２は、選択情報、開始情報を主制御部１２１に送るようになっている。
また、データ入出力部１２２には、主制御部１２１から対象データ又は暗号化された対象データが送られてくる場合がある。それらデータが送られてきた場合には、データ入出力部１２２は、それらをインターフェイス１１４を介して送受信部に送るようになっている。
また、データ入出力部１２２には、他の装置からネットワーク４００を介して送られて来て送受信部で受け取られた対象データ又は暗号化された対象データがインターフェイス１１４を介して送られてくる場合がある。データ入出力部１２２はそれらデータを受取った場合には、主制御部１２１にそれらを送るようになっている。
【００２９】
第１記録部１２３は、データを記録するものである。第１記録部１２３に記録されることがあり得るデータは、例えば、対象データであり、或いは、対象データを暗号化した後述のデータである。第１記録部１２３には、後述するように他のデータ、例えば鍵のデータが記録される場合がある。
【００３０】
暗号化部１２４は、データの暗号化と復号化とを行うものである。暗号化部１２４が行う暗号化と復号化との方法は、常に同一、例えば、常に同じ鍵と同じアルゴリズムとを用いて行われても良いし、そうでなくても良い。例えば、暗号化部１２４が行う暗号化の方法は、あるデータを暗号化する処理が行われる都度異なるものとされても構わない。暗号化部１２４が行う暗号化の方法が変化する場合、暗号化に用いる鍵を変化させる、暗号化に用いるアルゴリズムを変化させる、暗号化に用いる鍵とアルゴリズムを変化させる、という３通りのいずれによってそれが行われても構わない。暗号化部１２４が行う暗号化の方法が変化するかによらず、暗号化部１２４がデータの復号化を行う場合には、暗号化されているデータを復号化するために必要な演算を暗号化部１２４が行う。
各ユーザ端末１００にはそれぞれ暗号化部１２４が存在するが、各ユーザ端末１００の暗号化部１２４において実行される暗号化の方法は、それぞれユニークなものとなっている。例えば、各ユーザ端末１００の暗号化部１２４で実行される暗号化の方法が１通りで固定されている場合において、各ユーザ端末１００の暗号化部１２４で暗号化の処理に用いられるアルゴリズムを同一とするとともに、各ユーザ端末１００の暗号化部１２４で暗号化の処理に用いられる鍵を異なるものとすることができる。各ユーザ端末１００の暗号化部１２４において実行される暗号化の方法がそれぞれ変化する場合において、例えば、各ユーザ端末１００の暗号化部１２４で暗号化のために用いられるアルゴリズムが常に固定であり且つすべての暗号化部１２４で同一であるとともに、各ユーザ端末１００の暗号化部１２４で暗号化のために用いられる鍵が、データの暗号化を行う度に変化するようになっている場合、仮にあるユーザ端末１００と他のユーザ端末１００とで、たまたま同じ鍵が用いられることがあったとしても、その確率が無視できる程度に低ければ（例えば、同じ鍵の発生確率が１万分の１以下）、各ユーザ端末１００の暗号化部１２４において実行される暗号化の方法は、それぞれユニークなものと言えるものとする。
暗号化部１２４は、対象データ又は暗号化された対象データを主制御部１２１から受取る場合がある。それらが、多重に暗号化された対象データを生成するために主制御部１２１から送られたのであれば、暗号化部１２４は受取ったデータを更に暗号化してから、暗号化後のデータを主制御部１２１に戻すようになっている。暗号化部１２４は、暗号化された対象データを主制御部１２１から受取る場合がある。対象データに戻すためにそれが主制御部１２１から送られたのであれば、暗号化部１２４はそのデータに復号化の処理を行ってから、復号化後のデータを主制御部１２１に戻すようになっている。
【００３１】
次に、記録装置の構成について説明する。
記録装置３００は、ネットワーク４００に接続可能な一般的なデータベースであり、ハードウェア構成的には、一般的なデータベースを構築するためのコンピュータ、或いはサーバのそれと同じで構わず、特に特徴はない。記録装置３００は、図示を省略するが、ＣＰＵ、ＲＯＭ、ＲＡＭ、大容量記録媒体の一例となるＨＤＤ、インターフェイスを備えており、それらをバスで接続して構成されている。
記録装置３００は、ハードウェア的に見た場合にはＨＤＤの一部により構成される、図示を省略する機能ブロックとしての記録部を備えている。かかる記録部に、ユーザ端末１００から送られて来た多重に暗号化された対象データが記録される。後述するように、多重に暗号化された対象データは、ネットワーク４００に接続された他の機器（例えば、ユーザ端末１００）から閲覧可能な状態で、記録部に記録されても良い。
記録装置３００は一つでも良いが、通常は複数である。記録装置３００はビットコインのブロックチェーンのノードの用に、自発的にこの通信システムの仕組みに参加する者が設置しても良いし、或いは通信システムの管理者的な者が設置しても良い。
【００３２】
以上のような通信システムの使用方法、及び動作を、主に図５を用いて説明する。
かかる通信システムでは、複数のユーザ端末１００のユーザが共に保全することを希望するデータである対象データを、ユーザ端末１００内に保全する。
【００３３】
＜２つのユーザ端末１００が対象データを保全する場合＞
まず、対象データを保全することを希望するのが２人のユーザで、対象データを保全するのに用いられるのがそれらユーザの２つのユーザ端末１００である場合について説明する。これには限られないが、ユーザ端末１００−１と、ユーザ端末１００−２とが、この場合の２つのユーザ端末１００であるものとして以下の説明を行う。
【００３４】
まず、ユーザ端末１００−１と、ユーザ端末１００−２との少なくとも一方が、対象データを保持した状態となる。ユーザ端末１００−１と、ユーザ端末１００−２とのユーザが共に、そのデータを保全する（例えば、ユーザ端末１００−１と、ユーザ端末１００−２との内部に改竄できない状態で記録する。）ことを希望するデータというのは、典型的には、その２人のユーザの間で交わされた契約を特定する契約書のデータである。例えば、仮想通貨を、ユーザ端末１００−１のユーザがユーザ端末１００−２のユーザに譲渡した、言い換えればユーザ端末１００−１からユーザ端末１００−２に仮想通貨のデータを送信したのであれば、そのような取引記録のデータが契約書のデータとなる。もちろん、契約書のデータにより特定される契約は、ユーザ端末１００間でのデータの送受信を伴う必要はなく、土地の売買の契約や、婚姻の契約等であっても構わない。また、ユーザ端末１００−１と、ユーザ端末１００−２との一方、例えば、ユーザ端末１００−１が、ホームページの閲覧を第三者に行わせるのを目的とする公知のホームページサーバであって、何らかのプログラムをユーザ端末１００−２のユーザにダウンロードを許可させるに先立って行われる、著作権に関する契約がかかる契約であっても良い。
もちろん、対象データは契約に関するものに限られるものではなく、ユーザ端末１００−１と、ユーザ端末１００−２のユーザが２人だけの秘密にしておきたく、且つ改竄されたくはない、正確な記録を残しておきたいというような情報を特定するデータであっても構わない。例えば、ユーザ端末１００−１のユーザが医師であり、ユーザ端末１００−２のユーザが患者である場合、医師が患者に与えた処方箋や、診断書のデータがそれに当たる。例えば、ユーザ端末１００−１のユーザが弁護士であり、ユーザ端末１００−２のユーザがその顧客である場合、弁護士が顧客に与えたアドバイスや、鑑定書のデータがそれに当たる。対象データは、少なくともその一部にコンピュータプログラムを含むものであり、所定の条件が充足されたときに、適当なコンピュータで例えば自動実行されるものであっても良い。それによれば、Ethereum（商標）等で実現されつつあるいわゆるスマートコントラクトにこの通信システムを対応させられるようになる。
もっとも、以上の対象データはすべて例示であり、複数のユーザ端末１００のユーザが共に保全することを希望するデータであれば、対象データはどのようなものであっても構わない。
【００３５】
いずれにせよ、公知、或いは周知の方法で、対象データは生成される（Ｓ８０１）。対象データは、ユーザ端末１００−１内で生成されてもよく、ユーザ端末１００−２内で生成されてもよく、ユーザ端末１００−１とユーザ端末１００−２内で例えば同時に生成されてもよく、或いはユーザ端末１００−１、ユーザ端末１００−２外の他の装置で生成され、ユーザ端末１００−１、ユーザ端末１００−２にネットワーク４００を介しての送信等により送られて来ても構わない。更に言えば、対象データは新たに生成されたデータではなく、例えば、ユーザ端末１００−１、ユーザ端末１００−２の少なくとも一方が、従前から持っていたデータであっても構わない。
その入手の過程の如何によらず、ユーザ端末１００−１と、ユーザ端末１００−２の一方は、対象データを持った状態となる。この実施形態では、とりあえず、ユーザ端末１００−１内にのみ対象データが存在する状態となったこととする。
対象データは、例えば、ユーザ端末１００−１内の第１記録部１２３に記録された状態となる。ここで、ユーザ端末１００−１のユーザは、保全すべき対象データを特定する情報と、その対象データを共有して保全することを希望するユーザ或いはそのユーザ端末１００を特定するデータを組合せたものである、選択情報の入力を行う（Ｓ８０２）。選択情報の入力を行う場合、例えば、ユーザ端末１００−１のディスプレイ１０１には、図６に示したようなユーザに選択情報の入力を促すための画像が表示される。かかる画像のデータは、ユーザ端末１００−１の主制御部１２１が生成する。かかる画像データが、主制御部１２１から、データ入出力部１２２、インターフェイス１１４を介して、ディスプレイ１０１に送られることにより、ディスプレイ１０１に図６に示したような画像が表示される。
選択情報の入力をユーザに促すための画像には、対象データという文字、及び対象データの入力を行うための、その文字と横並びになっている横長の矩形の枠と、共有先１〜３という文字、及び共有先１〜３という文字のそれぞれに対応した入力を行うための、それら文字と横並びになっている横長の矩形の枠と、マルチキャストという文字、及びマルチキャストという文字と横並びになっているＹＥＳとＮＯという文字がそれぞれ付されたボタンと、最も下に位置するＯＫという文字が付されたボタンとが含まれている。
対象データという文字の横に表示されている枠は、対象データを選択するための情報を書き込むためのものである。対象データは一般にあるデータについてのファイルであると思われるから、その場合にはユーザは、例えば、対象データのファイル名をその枠の中に書き込むことになる。かかる書き込みは、入力装置１０２の操作により、これを行う。
共有先１〜３という文字の横に準備されている枠は、ユーザ端末１００−１と共に対象データを保全するユーザ端末１００を特定するための情報を書き込むためのものである。共有先１〜３のそれぞれが、１つのユーザ端末１００を特定するための情報に対応し、図６の例では最大３つのユーザ端末１００を、ユーザ端末１００−１と共に対象データを保全するユーザ端末１００として指定できるようになっている。かかるユーザ端末１００の指定は、例えば、ユーザＩＤによって行うことが可能であり、或いは各ユーザの名前やハンドルネーム、各ユーザ端末１００にそれぞれ付された何らかの識別子によって行うことができる。この実施形態では、ユーザ端末１００−１と共に対象データを保全するユーザ端末１００は、ユーザ端末１００−２の１つだけであるから、ユーザ端末１００−１のユーザは、そのディスプレイ１０１の共有先１のみに書き込みを行う。かかる書き込みは、入力装置１０２の操作により、これを行う。なお、この実施形態では、共有先を書き込むための枠は、共有先１〜３の３つ予め用意されているが、これはもちろんこの限りではない。例えば、かかる枠は、ディスプレイ１０１上に初めは１つのみ表示されており、必要に応じて入力装置１０２の操作によりユーザが追加できるようになっていても良いし、或いは、まず必要な枠の数の入力をユーザに行わせ、ユーザが指定した数の枠をディスプレイ１０１に表示するようになっていてもよい。
ここまでが、選択情報の入力に当たる。この実施形態では、必ずしも必須ではないが、選択情報に加えて、更にマルチキャストの要否についての以下の入力を行う。なお、マルチキャストの要否についての入力も選択情報の入力の一部に該当すると考えても良い。マルチキャストを常に実行する、或いは常に実行しないようにすることも可能であり、その場合には当然にマルチキャストの要否をユーザに確認する必要がないから、以下で説明する入力及びその入力をユーザに促すためのディスプレイ１０１上の表示を省略することができる。
マルチキャストという文字の横に位置するＹＥＳとＮＯという文字がそれぞれ付されたボタンは、それらのボタンのいずれかをユーザがクリックすることで、マルチキャストを行うか否かを選択するものである。ここで、「マルチキャスト」は、後述する多重に暗号化された対象データを、記録装置３００に記録させる処理を意味する。かかる処理については、追って詳述するが、ＹＥＳという文字が付されたボタンをユーザが選択した場合にはマルチキャストが行われ、ＮＯという文字が付されたボタンをユーザが選択した場合にはマルチキャストが行われないことになる。かかる選択は、入力装置１０２の操作により、これを行う。なお、この実施形態では、これには限られないが、ＹＥＳという文字が付されたボタンをユーザが選択したものとする。
そして、上述の入力のすべてを終えたらユーザは、ＯＫという文字の付されたボタンをクリックする。ＯＫという文字の付されたボタンに対する入力を行うと、上述した選択情報と、マルチキャストを行うかどうかということの選択についての情報の入力が実行される。また、ＯＫという文字の付されたボタンに対する入力は、開始情報の入力をも兼ねている（Ｓ８０３）。
【００３６】
ＯＫという文字の付されたボタンをユーザ端末１００−１のユーザがクリックすると、選択情報と、マルチキャストの要否についての情報と、開始情報とが生成される。これら情報は、入力装置１０２から、インターフェイス１１４を経て制御部１２０のデータ入出力部１２２に送られ、そこから主制御部１２１へと送られる。
選択情報を受取ると、主制御部１２１は、選択情報のうち、ディスプレイ１０１において、対象データという文字の横に表示されている枠の中に書き込まれた情報によって特定されるデータを、対象データとして第１記録部１２３から読み出す。かかるデータは平文のデータである。以後、これが対象データとして扱われる。
主制御部１２１は、第１記録部１２３から読み出した対象データを暗号化部１２４に送る。それを受取った暗号化部１２４は、受取った対象データを暗号化する（Ｓ８０４）。これには限られないが、この実施形態における暗号化部１２４が、対象データ或いは暗号化された対象データの暗号化を行う場合に使用されるアルゴリズムは常に同一である。他方、この実施形態における暗号化部１２４は、これには限られないが、対象データ或いは暗号化された対象データの暗号化を行う度に、それに先立って新しい鍵を生成し、生成された新しい鍵によって暗号化の処理を実行するようになっている。暗号化部１２４は、固定のアルゴリズムと暗号化の処理を行う度に変化する鍵を用いて、対象データを暗号化して、暗号化された対象データを得る。
【００３７】
暗号化部１２４は、暗号化された対象データとその暗号化に用いた鍵を、主制御部１２１に送る。主制御部１２１は、その鍵を一旦保持する。主制御部１２１は、暗号化された対象データに、選択情報のうち、ディスプレイ１０１において、共有先１という文字の横に表示されている枠の中に書き込まれた情報、即ち多重に暗号化された対象データをユーザ端末１００−１とともに共有する相手方のユーザ端末１００であるユーザ端末１００−２を特定する情報と、ユーザ端末１００−１を特定するための情報とを付す。これには限られないが、この実施形態では、暗号化された対象データに付される情報の前者としてユーザ端末１００−２のユーザＩＤが、後者として主制御部１２１が持っていたユーザ端末１００−１のユーザＩＤがそれぞれ用いられる。２つのユーザＩＤの付された対象データを、主制御部１２１は、データ入出力部１２２に送る。かかるデータは、データ入出力部１２２から、インターフェイス１１４を介して送受信部に送られる。
送受信部は、２つのユーザＩＤの付された暗号化された対象データを、多重に暗号化された対象データをユーザ端末１００−１とともに共有する相手方のユーザ端末１００であるユーザ端末１００−２に対して、ネットワーク４００を介して送信する（Ｓ８０５）。送信先のユーザ端末１００−２は、対象データに付された相手方のユーザ端末１００−２のユーザＩＤによって特定可能である。
【００３８】
２つのユーザＩＤの付された暗号化された対象データは、ネットワーク４００を介して送信され、ユーザ端末１００−２の送受信部によって受取られる（Ｓ９０１）。
２つのユーザＩＤの付された、ユーザ端末１００−１で暗号化された対象データは、ユーザ端末１００−２の送受信部から、インターフェイス１１４、データ入出力部１２２を経て、主制御部１２１へと送られる。主制御部１２１は、そのデータのうち、暗号化された対象データを暗号化部１２４へと送る。
暗号化部１２４は、暗号化された対象データを更に暗号化する（Ｓ９０２）。これにより対象データは、ユーザ端末１００−１の暗号化部１２４と、ユーザ端末１００−２の暗号化部１２４とで、次々に、或いはその順番で連続して暗号化されたことになる。つまり、これにより得られるデータは、多重に（二重に）暗号化された対象データである。ユーザ端末１００−２の暗号化部１２４でも、ユーザ端末１００−１の場合と同様に、固定のアルゴリズムと、変化する鍵を用いて暗号化が行われるものとする。もっとも、ユーザ端末１００−１とユーザ端末１００−２とで用いられる暗号化のアルゴリズムは、同じである必要はない。
二重に暗号化された対象データは、それを暗号化するときに暗号化部１２４が使用した鍵とともに、暗号化部１２４から主制御部１２１へと送られる。主制御部１２１は、二重に暗号化された対象データを、それを暗号化するときに使用された鍵とともに、第１記録部１２３へと記録する（Ｓ９０３）。第１記録部１２３に記録される二重に暗号化された対象データには、上述した２つのユーザＩＤのうち少なくともユーザ端末１００−１のユーザＩＤが付されていても良い。他方、主制御部１２１は、上述した２つのユーザＩＤを再び二重に暗号化された対象データに付す。そして、それら２つのユーザＩＤが付された二重に暗号化された対象データは、主制御部１２１から、データ入出力部１２２、インターフェイス１１４を介して送受信部に送られる。
送受信部は、２つのユーザＩＤの付された二重に暗号化された対象データを、ユーザ端末１００−１へネットワーク４００を介して送信する（Ｓ９０４）。送信先のユーザ端末１００−１は、対象データに付された相手方のユーザ端末１００−１のユーザＩＤによって特定可能である。
【００３９】
２つのユーザＩＤの付された暗号化された対象データは、ネットワーク４００を介して送信され、ユーザ端末１００−１の送受信部によって受取られる（Ｓ８０６）。
２つのユーザＩＤの付された二重に暗号化された対象データは、ユーザ端末１００−１の送受信部から、インターフェイス１１４、データ入出力部１２２を経て、主制御部１２１へと送られる。
二重に暗号化された対象データは、対象データを最初に暗号化するときにユーザ端末１００−１の暗号化部１２４が使用した鍵（この鍵は、上述したように暗号化部１２４から提供されて主制御部１２１が保持している。）とともに、主制御部１２１が、第１記録部１２３へと記録する（Ｓ８０７）。第１記録部１２３に記録される二重に暗号化された対象データには、上述した２つのユーザＩＤのうち少なくともユーザ端末１００−２のユーザＩＤが付されていても良い。
これにて、二重に暗号化された対象データは、ユーザ端末１００−１と、ユーザ端末１００−２とで共有された状態となる。二重に暗号化された対象データは、第三者は当然として、この二重に暗号化された対象データを生成した当事者であるユーザ端末１００−１、及びユーザ端末１００−２も、単独では復号化することができない。仮に二重に暗号化された対象データに何らかの改竄がなされたとすれば、ユーザ端末１００−１、及びユーザ端末１００−２が協力しても、その二重に暗号化された対象データを復号化できなかったという事実により、改竄があったことが判明する。したがって、二重に暗号化された対象データは、ひいてはその元になった平文の対象データは、改竄不可能に保全された状態で、ユーザ端末１００−１と、ユーザ端末１００−２との間で共有された状態となる。
他方、主制御部１２１は、上述した２つのユーザＩＤを再び付された二重に暗号化された対象データをマルチキャストする（Ｓ８０８）。マルチキャストの処理は、ユーザが、上述のように、ＹＥＳという文字が付されたボタンをユーザが選択したという事実に基いて、主制御部１２１が実行する。マルチキャストを行うために、主制御部１２１は、主制御部１２１がユーザ端末１００−１の第１記録部１２３に記録したデータから鍵を除いたデータを、データ入出力部１２２、インターフェイス１１４を介して送受信部に送る。送受信部に送られたそれらデータは、送受信部からネットワーク４００を介して、記録装置３００のうちの少なくとも１つに送られる。それらデータの送り先となる記録装置３００は、記録装置３００の中からユーザ端末１００−１のユーザが選択したものであっても良いし、記録装置３００の中からランダムに、或いは何らかのルールにしたがってユーザ端末１００−１が選択したものであっても良いし、又は記録装置３００のすべてであっても良い。
２つのユーザＩＤが付された二重に暗号化された対象データを受取った記録装置３００は、受取ったそのデータを、図示を省略の記録部に記録する。そのデータは、第三者がネットワーク４００を介して閲覧可能な状態で、記録部に記録されてもよく、この実施形態ではそうされている。なお、第三者が閲覧可能な状態にされるのは、多重に暗号化された対象データのみであっても良い。記録装置３００は一つのみでも良いが、それが複数存在する場合、時間の経過とともに、記録装置３００のそれぞれには、多重に暗号化された対象データがそれぞれ複数（或いは多数）記録されることになる。その場合において、各記録装置３００に記録されている多重に暗号化された対象データは、同じである必要はない。各記録装置３００に記録される多重に暗号化された対象データは、多数生成された多重に暗号化された対象データのすべてでも良いし、そのうちの一部のものだけでも良い。また、多数生成された多重に暗号化された対象データのうちの一部のもののみを記録する複数の記録装置３００に記録されている多重に暗号化された対象データは、一部重複していても構わないが、互いに異なる多重に暗号化された対象データを記録していても良い。
結果として、２つのユーザＩＤが付された二重に暗号化された対象データは、そのデータを生成した当事者たる２つのユーザ端末１００であるユーザ端末１００−１、及びユーザ端末１００−２と、例えばいくつかの記録装置３００とで共有して保全された状態になる。なお、マルチキャストの処理は、二重に暗号化された対象データを持っていれば行えるので、二重に暗号化された対象データを持っている他の装置が行ってもよい。例えば、ユーザ端末１００−１に代わって、ユーザ端末１００−２がマルチキャストの処理を行っても良い。
なお、以上で説明した過程のうち、開始情報の入力についてのＳ８０３から、二重に暗号化された対象データの受信についてのＳ８０７までの処理、或いは開始情報の入力についてのＳ８０３から、マルチキャストについてのＳ８０８までの処理を、ユーザ端末１００−１と、ユーザ端末１００−２と、場合によっては記録装置３００とが、自動的に行うようになっていてもよく、この実施形態ではこれには限られないが、そうされている。また、この実施形態では、選択情報、開始情報の入力をユーザ端末１００−１のユーザが行うこととしているが、例えば、対象データが生成されたら自動的にユーザ端末１００−１と、ユーザ端末１００−２と、場合によっては記録装置３００とが、上述した処理のすべてを自動的に実行するようにすることも可能である。その場合には、選択情報、開始情報のユーザによる入力は省略可能である。
【００４０】
ユーザ端末１００−１、ユーザ端末１００−２、記録装置３００で共有された、二重に暗号化された対象データは、その後一切利用されなくとも構わないが、後述するように、例えば、将来的に対象データの内容を検証する必要が生じた場合にそれを使用することができる。
その場合には、二重に暗号化された対象データは、復号化して平文の対象データに戻される。復号化された平文の対象データは、二重に暗号化される前の対象データの内容と等しいのであるから、復号化された対象データによる過去の対象データの検証には誤りは生じないし、対象データの真正性についての疑義が生じる余地がない。
なお、この例では、マルチキャストの際にユーザ端末１００−１又はユーザ端末１００−２から記録装置３００に対して送られるのは、２つのユーザＩＤが付された二重に暗号化された対象データであった。ここで、マルチキャストの際にユーザ端末１００−１又はユーザ端末１００−２から記録装置３００に送られるデータに、二重に暗号化された対象データの元となった対象データを加えることが可能である。この場合、記録装置３００の図示を省略の記録部に記録されるのは、２つのユーザＩＤが付された二重に暗号化された対象データと、二重に暗号化された対象データの元となった対象データとになる。二重に暗号化された対象データと、二重に暗号化された対象データの元となった対象データとは互いに紐付けられて、或いは対として記録される。各記録装置３００の記録部には、同一の或いは異なる対となった二重に暗号化された対象データと、二重に暗号化された対象データの元となった対象データとが蓄積されることになる。この場合、二重に暗号化された対象データと、その元となった対象データとは、少なくともその一方が、ネットワーク４００を介して他の機器に開示された状態とされても良い。なお、対象データの生成（Ｓ８０１）の処理の際に、平文の対象データを持っているのがユーザ端末１００−１のみである場合、二重に暗号化された対象データに加えて、その元となった対象データを記録装置３００に送信できるのは、基本的にユーザ端末１００−１とユーザ端末１００−２のうちユーザ端末１００−１のみである。もし、ユーザ端末１００−２からそれらデータを記録装置３００に送信させるのであれば、ユーザ端末１００−１からユーザ端末１００−２へ、平文の対象データ、或いはユーザ端末１００−２で復号化することができるようにユーザ端末１００−１で暗号化された対象データを、ユーザ端末１００−２が二重に暗号化された対象データと、その元となった対象データとを記録装置３００に送信する前の適当なタイミングで、ユーザ端末１００−１からユーザ端末１００−２へと送信すれば良い。
【００４１】
＜２つのユーザ端末１００が保全された対象データを復号化する場合＞
二重に暗号化された対象データの復号化は、例えば、以下のようにして行われる。
二重に暗号化された対象データの検証を行いたいと考えるのは通常、ユーザ端末１００−１のユーザか、ユーザ端末１００−２のユーザである。
そして、ユーザ端末１００−１と、ユーザ端末１００−２とは、上述したように、二重に暗号化された対象データを、それらの第１記録部１２３に記録した状態で保持している。したがって、ユーザは、復号化したい二重に暗号化されたデータを、第１記録部１２３に記録されたデータの中から選択して、それをユーザ端末１００−１と、ユーザ端末１００−２の間でやり取りして復号化すれば良い。かかる処理は、通常、対象データを二重に暗号化された対象データとしたときの逆の処理として実行され、この実施形態ではこれには限られないがそうされている。
例えば、ユーザ端末１００−２のユーザが、ユーザ端末１００−１との間で二重に暗号化した対象データを復号化したい、と望んだとする。ユーザ端末１００−２のユーザは、例えば、ユーザ端末１００−２の入力装置１０２を用いて、その二重に暗号化された対象データを選択する。選択された二重に暗号化された対象データには上述のように、そのデータを暗号化したときに用いられた鍵とユーザ端末１００−１、及びユーザ端末１００−２のユーザＩＤが付されている。それらデータのすべてを、主制御部１２１は、第１記録部１２３から読み出す。
主制御部１２１は、読み出したそれらデータのうち、鍵と二重に暗号化された対象データとを暗号化部１２４へと送る。暗号化部１２４は、固定のアルゴリズムと、主制御部１２１から提供されたその鍵を用いて、二重に暗号化された対象データを復号化する。そうすると、二重に暗号化された対象データは復号化され、対象データをユーザ端末１００−１の暗号化部１２４のみで暗号化した状態に戻る。暗号化部１２４は、そのデータを、二重に暗号化されたデータとともに、主制御部１２１に送る。
主制御部１２１は、それらデータにユーザ端末１００−１、及びユーザ端末１００−２のユーザＩＤを付して、データ入出力部１２２、インターフェイス１１４を介して、送受信部に送る。それらデータは、送受信部から、ネットワーク４００を介してユーザ端末１００−１に送られる。
ユーザ端末１００−１は、その送受信部でそれらのデータを受取る。２つのユーザＩＤと、二重に暗号化された対象データの付された、対象データをユーザ端末１００−１の暗号化部１２４のみで暗号化した状態のデータは、ユーザ端末１００−１の送受信部から、インターフェイス１１４、データ入出力部１２２を介して主制御部１２１へと送られる。
それを受取った主制御部１２１は、二重に暗号化されたデータと同じデータを第１記録部１２３に記録されたデータの中から探す。ユーザ端末１００−２から受取った二重に暗号化されたデータと同じデータを第１記録部１２３の中から発見したら、主制御部１２１は、その二重に暗号化されたデータに付されていた鍵を第１記録部１２３から読み出す。この鍵は、その二重に暗号化されたデータを暗号化した際に、ユーザ端末１００−１の暗号化部１２４で使用された鍵である。主制御部１２１は、その鍵とともに、ユーザ端末１００−２から送信されてきた、対象データをユーザ端末１００−１の暗号化部１２４のみで暗号化した状態のデータを、暗号化部１２４に送る。
暗号化部１２４は、対象データをユーザ端末１００−１の暗号化部１２４のみで暗号化した状態のデータを主制御部１２１から受け取ったら、そのデータを、固定のアルゴリズムと、主制御部１２１から提供された鍵を用いて復号化する。そうすることにより、対象データをユーザ端末１００−１の暗号化部１２４のみで暗号化した状態のデータは平文の対象データに戻る。
暗号化部１２４は、対象データを主制御部１２１に送る。主制御部１２１は、対象データを、ユーザ端末１００−１の第１記録部１２３に記録する。これにより、対象データの検証が可能な状態となる。
必要であれば、ユーザ端末１００−１からユーザ端末１００−２に対象データを送る。これにより、ユーザ端末１００−１と、ユーザ端末１００−２とは対象データを共有した状態となる。
【００４２】
以上の説明から明らかであろうが、ユーザ端末１００−２から、ユーザ端末１００−１に対して二重に暗号化された対象データを送信したのは、対象データをユーザ端末１００−１の暗号化部１２４のみで暗号化した状態のデータをユーザ端末１００−１の暗号化部１２４で復号化する際に使用する鍵を特定するためである。ユーザ端末１００−１の第１記録部１２３には、ユーザ端末１００−２と協働して生成した上述の二重に暗号化された対象データ以外の多重に暗号化された対象データが記録されているのが通常であろうし、更には多数のユーザ端末１００の第１記録部１２３に記録されている、或いは複数の記録装置３００の記録部に記録されている、多重に暗号化された対象データは、その内容も数も、通信システムを運用している間にそれぞれ異なるものとなっているであろう。そのような状況の中で、ユーザ端末１００−１がユーザ端末１００−２から受取った上述のデータを復号化する際には、そのデータを復号化するために用いるべき鍵を特定する必要がある。そのような鍵の特定を行うために用いるものの一つの例が、ユーザ端末１００−２から、ユーザ端末１００−１に対して送信された、上述の、二重に暗号化された対象データである。
したがって、対象データをユーザ端末１００−１の暗号化部１２４のみで暗号化した状態のデータをユーザ端末１００−２からユーザ端末１００−１へ送ることは必須であるが、上述の鍵の特定が他の方法により可能なのであれば、ユーザ端末１００−２からユーザ端末１００−１へ二重に暗号化された対象データを送信する必要はない。例えば、二重に暗号化された対象データを生成する場合に、そのデータを特定するための識別子を例えば、ユーザ端末１００−２で生成し、ユーザ端末１００−２の主制御部１２１が、その識別子を二重に暗号化された対象データに付して第１記録部１２３に記録するとともに、ユーザ端末１００−２からその識別子を受信したユーザ端末１００−１の主制御部１２１も、第１記録部１２３にその識別子を二重に暗号化された対象データに付して記録するようになっているとする。その場合、二重に暗号化されたデータを先に復号化したユーザ端末１００−２は、対象データをユーザ端末１００−１の暗号化部１２４のみで暗号化した状態のデータをユーザ端末１００−１に送る際に、二重に暗号化されたデータの代わりにその識別子を送信することができる。それらデータを受取ったユーザ端末１００−１の主制御部１２１は、対象データをユーザ端末１００−１の暗号化部１２４のみで暗号化した状態のデータをその暗号化部１２４で復号化するときに用いる鍵を第１記録部１２３に記録された鍵から検索するためのクエリとして、二重に暗号化された対象データの代わりに、その識別子を用いることができる。
なお、以上で説明した例において、ユーザ端末１００−１とユーザ端末１００−２とが、第１記録部１２３にそれぞれ鍵を保存しておくこととしていたのは、二重に暗号化された対象データの復号化を行う際に、対象データを二重に暗号化するときに使用された鍵を特定できるようにするためである。他の方法によりかかる鍵の特定が可能なのであれば、第１記録部１２３に二重に暗号化された対象データと紐付けて記録されるべきデータは、鍵のデータそのものである必要はなく、鍵を特定することのできるデータであればよい。例えば、ユーザ端末１００−１とユーザ端末１００−２の暗号化部１２４が、その暗号化を行ったときの日時に基いて、鍵を変化させるとする。そうであれば、両暗号化部１２４は、鍵が生成された日時の情報さえあれば、暗号化の処理を行ったときの鍵を再び生成することができる。そのような場合には、第１記録部１２３に、二重に暗号化された対象データと紐付けて記録されるデータを、鍵のデータの代わりに、その鍵が生成された日時のデータとすることができる。それにより、両暗号化部１２４は、主制御部１２１から、鍵のデータの供給を受ける代わりに、その日時のデータを供給されれば、主制御部１２１から供給されるはずだった鍵と同じ鍵を生成することができるから、復号化の処理を上述の場合と変わらずに成し遂げることが可能となる。
更にいえば、両暗号化部１２４で使用される鍵が常に同一なのであれば、両暗号化部１２４が復号化を行う際に、過去に対象データを二重に暗号化する場合に使用された鍵を特定する必要がそもそもない。そのような場合には、鍵のデータや、鍵を特定することのできる上述の日時のデータの如きデータを第１記録部１２３に記録しておく必要もない。
【００４３】
以上の例では、二重に暗号化された対象データの復号化は、二重に暗号化された対象データを最後に暗号化したユーザ端末１００−２から始められた。これは通常、あるデータを、異なる方法で複数回暗号化した場合には、その逆の順番で復号化しないと元のデータに戻らないからである。つまり、上述の例では、対象データは、ユーザ端末１００−１の暗号化部１２４で暗号化されてから、ユーザ端末１００−２の暗号化部１２４で、更に暗号化された。この場合、二重に暗号化された対象データを、ユーザ端末１００−２の暗号化部１２４で復号化してから、更にユーザ端末１００−１の暗号化部１２４で復号化すれば元の対象データに戻るが、ユーザ端末１００−１の暗号化部１２４で先に復号化してからユーザ端末１００−２の暗号化部で更に復号化しても、元の対象データには戻らない。
したがって、例えば、ユーザ端末１００−１のユーザが二重に暗号化された上述の対象データの復号化を希望した場合であっても、ユーザ端末１００−２の暗号化部１２４でまず先に、二重に暗号化された対象データの復号化を開始する必要がある。ユーザ端末１００−１は、ユーザ端末１００−２に、復号化をしてもらいたい二重に暗号化された対象データを特定して、二重に暗号化された対象データの復号化を依頼する。二重に暗号化された対象データを特定するためのデータとして、ユーザ端末１００−１は、ユーザ端末１００−１の第１記録部１２３に記録されていた二重に暗号化された対象データをユーザ端末１００−２に送っても良いし、ユーザ端末１００−１とユーザ端末１００−２が共通して有している上述の識別子が存在するのであれば、それをユーザ端末１００−２に送っても良い。以降における、ユーザ端末１００−２から始まる二重に暗号化された対象データの復号化の処理の流れは、上述した場合と同じである。
なお、この実施形態の通信システムにおいて、二重に暗号化された対象データを復号化する場合においては、二重に暗号化されたその対象データが、どのユーザ端末１００においてどのような順番で暗号化されたかということを、その復号化が必要になったときに把握できるように準備しておくべきである。そのような点を考慮すれば、ユーザ端末１００−１、及びユーザ端末１００−２の第１記録部１２３において、二重に暗号化された対象データに付されているユーザ端末１００−１、及びユーザ端末１００−２のユーザＩＤは、そのデータの順番により、ユーザ端末１００−１とユーザ端末１００−２でどのような順番で暗号化が行われたかを把握しておくべきであり、さもなくば二重に暗号化されたその対象データが、どのユーザ端末１００においてどのような順番で暗号化されたかということを示すデータを別に付しておくべきである。
同様に、各記録装置３００のユーザ或いは管理者等が、記録装置３００の記録部に記録されていたある多重に暗号化された対象データの復号化を希望した場合には、そのユーザ或いは管理者が、復号化をしてもらいたい多重に暗号化された対象データを特定して、その多重に暗号化された対象データを最後に暗号化したユーザ端末１００に、その多重に暗号化された対象データの復号化を依頼する。上述の二重に暗号化された対象データの復号化を、ある等が希望したのであれば、そのユーザ或いは管理者等は、復号化をしてもらいたい上述の二重に暗号化された対象データを特定して、その二重に暗号化された対象データを最後に暗号化したユーザ端末１００であるユーザ端末１００−２に、その二重に暗号化された対象データの復号化を依頼する。以降における、ユーザ端末１００−２から始まる二重に暗号化された対象データの復号化の処理の流れは、上述した場合と同じである。或いは、記録装置３００の記録部に記録されており、且つネットワーク４００を介して公開されていた多重に暗号化された対象データを監視していた第三者が、ある多重に暗号化された対象データの復号化を希望した場合にも、その第三者が復号化をしてもらいたい多重に暗号化された対象データを特定して、その多重に暗号化された対象データを最後に暗号化したユーザ端末１００に、その多重に暗号化された対象データの復号化を依頼すれば良い。
【００４４】
＜３つ以上のユーザ端末１００が対象データを保全する場合＞
対象データを保全するのが３つのユーザ端末１００である場合について説明する。これには限られないが、ユーザ端末１００−１と、ユーザ端末１００−２と、ユーザ端末１００−３とが、この場合の３つのユーザ端末１００であるものとして以下の説明を行う。
【００４５】
この場合においては、ユーザ端末１００−１と、ユーザ端末１００−２と、ユーザ端末１００−３の少なくとも一つが、対象データを保持した状態となる。この場合の対象データは、典型的には、ユーザ端末１００−１と、ユーザ端末１００−２と、ユーザ端末１００−３のユーザにおける三者間契約によるものとなるであろうが、対象データはそれには限られない。
対象データは、ユーザ端末１００−１、ユーザ端末１００−２、ユーザ端末１００−３のいずれか１つの内部で生成されてもよく、ユーザ端末１００−１、ユーザ端末１００−２、ユーザ端末１００−３の少なくとも２つの内部で例えば同時に生成されてもよく、或いはユーザ端末１００−１、ユーザ端末１００−２、ユーザ端末１００−３外の他の装置で生成されてもよい。また、対象データは新たに生成されたデータではなく、ユーザ端末１００−１、ユーザ端末１００−２、ユーザ端末１００−３の少なくとも１つが、従前から持っていたデータであっても構わない。
今回は、ユーザ端末１００−１内にのみ対象データが存在する状態となったこととする。
【００４６】
以後において、対象データは、ユーザ端末１００−１内の暗号化部１２４でまず暗号化され、ユーザ端末１００−２、ユーザ端末１００−３の暗号化部１２４で続けて暗号化される。ユーザ端末１００−１ともに対象データを暗号化するユーザ端末１００としてのユーザ端末１００−２、ユーザ端末１００−３の選択と、ユーザ端末１００−２、及びユーザ端末１００−３への暗号化された対象データの送信には、ユーザ端末１００−２の間で対象データが二重に暗号化される場合と同様に、例えばユーザＩＤを利用することができる。
ユーザ端末１００−２の暗号化部１２４と、ユーザ端末１００−３の暗号化部１２４とのどちらで先に暗号化されるかは自由であるが、対象データは、結果として、ユーザ端末１００−１、ユーザ端末１００−２、ユーザ端末１００−３のすべての暗号化部１２４で暗号化される。ユーザ端末１００−１、ユーザ端末１００−２、ユーザ端末１００−３の各暗号化部１２４で、どのような順序で暗号化を行うようにするかは、例えば、最初に暗号化を行う暗号化部１２４を有するユーザ端末１００−１が決定するのが簡単であろうが、ユーザ端末１００−２又はユーザ端末１００−３が決定しても良いし、或いはユーザ端末１００−１と、ユーザ端末１００−２と、ユーザ端末１００−３の（或いはそれらのユーザの）総意によって決定されても構わないし、或いはランダムに決定されても構わない。この事情は、ユーザ端末１００が２つの場合でも、ユーザ端末１００が４つ以上の場合でも同様である。
そして、ユーザ端末１００−１、ユーザ端末１００−２、ユーザ端末１００−３のすべての暗号化部１２４で順に暗号化された多重に（三重に）暗号化された対象データは、ユーザ端末１００−１、ユーザ端末１００−２、ユーザ端末１００−３のすべての第１記録部１２３に記録される。ここで、３つの第１記録部１２３に三重に暗号化された対象データとともに記録されるべきデータは、＜２つのユーザ端末１００が対象データを保全する場合＞で説明したのと同様に、ユーザ端末１００−１、ユーザ端末１００−２、ユーザ端末１００−３が、その三重に暗号化された対象データと後に復号化するために必要なデータである。例えば、ユーザ端末１００−１、ユーザ端末１００−２、ユーザ端末１００−３内の３つの第１記録部１２３には、三重に暗号化された対象データとともに、それら３つのユーザ端末１００のユーザＩＤが記録される。これら３つのユーザＩＤは、その三重に暗号化された対象データが、ユーザ端末１００−１、ユーザ端末１００−２、ユーザ端末１００−３において、どのような順番で暗号化されたかを示すようになっているのが好ましいのも、上記と同様である。
【００４７】
また、三重に暗号化された対象データを共有することとなったユーザ端末１００−１、ユーザ端末１００−２、ユーザ端末１００−３のうちの少なくとも一つは、マルチキャストの処理を行うことができる。その場合、ユーザ端末１００−１、ユーザ端末１００−２、ユーザ端末１００−３内の第１記録部１２３にそれぞれ記録されたデータと同じ、三重に暗号化された対象データを含むデータが、複数の記録装置３００の中の少なくとも１つの記録部に書き込まれることになる。
三重に暗号化された対象データのみならず、その元となった対象データをもマルチキャストの対象とし、記録装置３００の記録部に平文の対象データも書き込まれた状態とすることができるのは、ユーザ端末１００が２つの場合でもユーザ端末１００が３つの場合でも同じである。
【００４８】
ユーザ端末１００−１、ユーザ端末１００−２、ユーザ端末１００−３の第１記録部１２３に記録された三重に暗号化された対象データは、＜２つのユーザ端末１００が保全された対象データを復号化する場合＞で説明したのと同様に、三重に暗号化された対象データの元となった対象データが暗号化されたのと逆の順番で、各ユーザ端末１００の暗号化部１２４において復号化される。それにより、三重に暗号化された対象データは、元の対象データに戻る。
記録装置３００に記録された三重に暗号化された対象データの取扱も同様である。
【００４９】
以上の例では、対象データを暗号化するユーザ端末１００は３つであった。これが、４つ、５つ、或いは、Ｍ個であっても話は同様である。
ある対象データを保全するユーザ端末１００がＭ個である場合、対象データ或いはそれを暗号化したデータは、Ｍ個のユーザ端末１００の間で送受信されながら、Ｍ個のユーザ端末１００の暗号化部１２４のすべてで、暗号化される。それにより、Ｍ重に暗号化された対象データが、Ｍ個のユーザ端末１００で共有され、Ｍ個のユーザ端末１００の第１記録部１２３にそれぞれ記録されることになる。Ｍ重に暗号化された対象データとともにＭ個のユーザ端末１００の第１記録部１２３にそれぞれ記録されるべきデータは、上述のように、その復号化に必要なデータとなる。
【００５０】
Ｍ個のユーザ端末１００の第１記録部１２３にそれぞれ記録されたＭ重に暗号化された対象データは、上述した場合と同様に、Ｍ重に暗号化された対象データの元となった対象データが暗号化されたのと逆の順番で、各ユーザ端末１００の暗号化部１２４で復号化される。それにより、Ｍ重に暗号化された対象データは、元の対象データに戻る。
記録装置３００に記録されたＭ重に暗号化された対象データの取扱も同様である。
【００５１】
≪第２実施形態≫
第２実施形態の通信システムについて説明する。
第２実施形態の通信システムは、第１実施形態の通信システムと概ね同じである。第２実施形態の通信システムは、第１実施形態の場合と同様に、ネットワーク４００に接続された多数のユーザ端末１００と、多数の、少なくとも複数の記録装置３００とを備えている。
第２実施形態の通信システムが第１実施形態の通信システムと異なるのは、図７に示したように、第２実施形態の通信システムは、第１実施形態の場合には存在しなかった、ネットワーク４００に接続された多数の或いは複数の補助暗号化端末２００を有する、という点である。構成に着目した場合、第２実施形態と第１実施形態との違いは、この点のみである。
【００５２】
補助暗号化端末２００−１〜補助暗号化端末２００−Ｎの構成、動作は、本願発明との関係で考えた場合すべて同一でよく、この実施形態ではそうされている。
補助暗号化端末２００は、本願発明における補助通信装置に相当するものである。補助暗号化端末２００は、ユーザ端末１００の機能の一部のみを有するものとすることができる。ユーザ端末１００は、平たくいえば、対象データを決定する機能、対象データの多重の暗号化を行う際における１つの暗号化の処理を実行する機能、多重に暗号化された対象データを保存する機能、及び多重に暗号化された対象データの復号化をおこなう際における１つの復号化の処理を実行する機能、を有している。これら機能のうち、補助暗号化端末２００に必須なのは、対象データの多重の暗号化を行う際における１つの暗号化の処理を実行する機能、及び多重に暗号化された対象データの復号化をおこなう際における１つの復号化の処理を実行する機能のみである。
第１実施形態で説明したように、対象データは、複数のユーザ端末１００のユーザが共に保全することを希望するデータである。つまり、ユーザ端末１００のユーザは、対象データの保全を行うことについての動機付けがある者であるといえ、典型的には対象データの内容に対して利害関係を持つ者であると言える。それに対して、補助暗号化端末２００又はそのユーザ或いは管理者には、対象データの保全を行うことについての動機付けは特段存在しなくても良い。第１実施形態では、対象データの多重の暗号化は、当事者的な地位をそのユーザが有する複数のユーザ端末１００によって行われたが、第２実施形態では、対象データの多重の暗号化には、ユーザ端末１００のみならず、補助暗号化端末２００が参加する。対象データの多重の暗号化に参加できるようにするために、補助暗号化端末２００は上述のように、対象データの多重の暗号化を行う際における１つの暗号化の処理を実行する機能が必要とされるのである。また、複数のユーザ端末１００のみならず、補助暗号化端末２００が参加して多重に暗号化された対象データを復号化するには、複数のユーザ端末１００のみならず、補助暗号化端末２００も参加しない限り、多重に暗号化された対象データを平文の対象データに戻すことができない。それを可能とするために、補助暗号化端末２００は、上述のように、多重に暗号化された対象データの復号化をおこなう際における１つの復号化の処理を実行する機能が必要なのである。
補助暗号化端末２００は、例えば、公証人的な公的な性質を帯びたユーザに管理される装置とすることができる。或いは、補助暗号化端末２００は、ユーザ端末１００そのものとすることもでき、以下に説明される補助暗号化端末２００の機能をユーザ端末１００が発揮しても良い。また、記録装置３００が補助暗号化端末２００の機能を兼ね備えていても構わない。この実施形態では、公証人的な性格を有するユーザのみが、補助暗号化端末２００を所持するものとして以下の話を進める。
【００５３】
補助暗号化端末２００のハードウェア構成は、ユーザ端末１００と同じとすることができ、この実施形態ではそうされている。また、補助暗号化端末２００において必要とされる機能は、上述のようにユーザ端末１００の機能の一部なのであるから、補助暗号化端末２００の内部に生成される機能ブロックは、ユーザ端末１００の内部に生成される機能ブロックの一部で良いということになるが、これには限られないが、この実施形態においては、補助暗号化端末２００の内部にはユーザ端末１００の内部に存在するのと同じ、図４に示した機能ブロックが生成されるものとする。
補助暗号化端末２００の中に生成される各機能ブロックの機能は、ユーザ端末１００の内部に生成される機能ブロックが持つ機能と同じである。ただし、その主制御部１２１は、選択情報と開始情報とを扱う必要がない。したがって、補助暗号化端末２００の主制御部１２１は、第１実施形態で説明した、ユーザ端末１００の主制御部１２１が有していた選択情報と開始情報とを扱う機能を有していない。補助暗号化端末２００には上述のように、対象データの多重の暗号化を行う際における１つの暗号化の処理を実行する機能と、多重に暗号化された対象データの復号化をおこなう際における１つの復号化の処理を実行する機能とが必要とされるが、かかる機能は、ユーザ端末１００の場合と同様に、補助暗号化端末２００における暗号化部１２４によって担保されている。つまり、補助暗号化端末２００における暗号化部１２４は、データを暗号化する機能と、暗号化部１２４で暗号化されたデータを復号化する機能とを有している。補助暗号化端末２００の暗号化部１２４は、第１実施形態で説明したユーザ端末１００のように、常に同じ方法で暗号化と復号化とを行うようになっていても構わないし、場合によって、例えば対象データ等の暗号化と復号化とを行うたびに暗号化と復号化の方法を変化させる（例えば鍵を変化させる）ようになっていても構わない。ただし、各補助暗号化端末２００の暗号化部１２４と、各ユーザ端末１００の暗号化部１２４とで実行される暗号化と復号化の処理は互いにユニークである。
【００５４】
第２実施形態の通信装置の使用方法、及び動作について説明する。
例として、対象データを２つのユーザ端末１００が保全する場合について説明する。対象データを保全するのは、第１実施形態の場合と同様に、ユーザ端末１００−１と、ユーザ端末１００−２である。
【００５５】
第１実施形態の場合と同様に、まず、ユーザ端末１００−１と、ユーザ端末１００−２との少なくとも一方が、対象データを保持した状態となる。第１実施形態の場合と同様に、第２実施形態でも、ユーザ端末１００−１内にのみ対象データが存在する状態となったこととする。
対象データは、例えば、ユーザ端末１００−１内の第１記録部１２３に記録された状態となる。ここで、ユーザ端末１００−１のユーは、保全すべき対象データを特定する情報と、その対象データを共有して保全することを希望するユーザ或いはそのユーザ端末１００を特定するデータを組合せたものである、選択情報の入力を行う。選択情報の入力を行う場合、例えば、ユーザ端末１００−１のディスプレイ１０１には、図８に示したようなユーザに選択情報の入力を促すための画像が表示される。選択情報の入力をユーザに促すための画像には、対象データという文字、及びそれに対応した横長の矩形の枠と、共有先１〜３という文字、及びそれらに対応した横長の矩形の枠と、マルチキャストという文字、及びＹＥＳとＮＯという文字がそれぞれ付されたボタンと、ＯＫという文字が付されたボタンとが含まれている。これらは、それらに割り振られた機能を含め、いずれも第１実施形態におけるそれらと同じである。第２実施形態の当該画像には、上記に加え、更に、公証人１、公証人２という文字、及びそれらにそれぞれ対応して横並びに表示されている横長矩形の枠が存在している。
公証人１、公証人２という文字の隣に存在する枠は、対象データの暗号化を行う場合に、ユーザ端末１００のみならず、公証人的性格を有するユーザが所持する補助暗号化端末２００をも、対象データを多重に暗号化させる過程に参加させるか否かをユーザ端末１００−１のユーザに選択させるためのものである。ユーザ端末１００−１のユーザは、１つの補助暗号化端末２００を対象データを多重に暗号化する過程に参加させるのであれば、公証人１という文字の右隣の枠に、当該公証人の補助暗号化端末２００を特定するための情報（例えば、公証人を特定するユーザＩＤ）を入力し、或いは２つの補助暗号化端末２００を対象データを多重に暗号化する過程に参加させるのであれば、公証人１と公証人２という文字の右隣の２つの枠に、２人の当該公証人の補助暗号化端末２００を特定するための情報を入力する。もちろん、より多くの補助暗号化端末２００を対象データを多重に暗号化する過程に参加させるために、公証人の書き込みのための枠をより多く準備すること、或いはユーザの意志により枠を増やせるようにすることも可能である。なお、公証人の補助暗号化端末２００を対象データを多重に暗号化する過程に参加させるか否か、参加させるならどの補助暗号化端末２００をその過程に参加させるか否かについての上述の情報は、選択情報の一部をなす。これには限られないが、この実施形態では、公証人１の右隣の枠に、補助暗号化端末２００−１を選択するための情報である公証人のユーザＩＤが書き込まれたとする。
そして、上述の入力のすべてを終えたらユーザは、ＯＫという文字の付されたボタンをクリックする。ＯＫという文字の付されたボタンに対する入力を行うと、上述した選択情報の入力と、マルチキャストを行うか否かについての選択についての情報の入力とが実行される。また、ＯＫという文字の付されたボタンに対する入力は、開始情報の入力をも兼ねている。
【００５６】
ＯＫという文字の付されたボタンをユーザ端末１００−１のユーザがクリックすると、選択情報と、マルチキャストの要否についての情報と、開始情報とが生成される。これら情報は、入力装置１０２から、インターフェイス１１４を経て制御部１２０のデータ入出力部１２２に送られ、そこから主制御部１２１へと送られる。ここから先の処理は、概ね第１実施形態と同様である。特に、補助暗号化端末２００を対象データを多重に暗号化する処理に参加させない場合の処理は、第１実施形態とまったく変わるところがない。
選択情報を受取ると、主制御部１２１は、選択情報のうち、ディスプレイ１０１において、対象データという文字の横に表示されている枠の中に書き込まれた情報によって特定されるデータを、対象データとして第１記録部１２３から読み出す。かかるデータは平文のデータである。以後、これが対象データとして扱われる。
主制御部１２１は、第１記録部１２３から読み出した対象データを暗号化部１２４に送る。それを受取った暗号化部１２４は、受取った対象データを暗号化する。暗号化部１２４で暗号化された対象データは、続けて、ユーザ端末１００−２又は補助暗号化端末２００−１の一方に送られ、ユーザ端末１００−２又は補助暗号化端末２００−１の一方の暗号化部１２４で暗号化されてから、ユーザ端末１００−２又は補助暗号化端末２００−１の他方に送られ、ユーザ端末１００−２又は補助暗号化端末２００−１の他方の暗号化部１２４で暗号化される。このようにして生成された多重に（三重に）暗号化された対象データは、その送受信の経路は不問であるが、ユーザ端末１００−１、ユーザ端末１００−２、補助暗号化端末２００−１の間で送受信され、結果としてユーザ端末１００−１、ユーザ端末１００−２、補助暗号化端末２００−１で共有されることになる。三重に暗号化された対象データは、例えば、ユーザ端末１００−１、ユーザ端末１００−２、補助暗号化端末２００−１の第１記録部１２３に記録されることになる。それら３つの第１記録部１２３には、第１実施形態で説明したような、後にその多重に暗号化された対象データを復号化するときに必要な情報を特定するためのデータを、多重に暗号化された対象データとともに記録しておく。もっとも、上述したように、補助暗号化端末２００は、対象データの多重の暗号化の処理と、多重に暗号化された対象データの復号化の処理には参加するものの、対象データの保全を行う必要がないのであるから、補助暗号化端末２００の第１記録部１２３には、多重に暗号化された対象データを復号化するときに必要な情報を特定するためのデータが記録されていれば、多重に暗号化された対象データが記録される必要は必ずしもない。
また、マルチキャストの処理は、第１実施形態の場合と同様に、必要に応じて行われる。第２実施形態でマルチキャストの処理を行うのは、ユーザ端末１００−１、ユーザ端末１００−２ではなく、仮に多重に暗号化された対象データを補助暗号化端末２００−１が持っているのであれば、補助暗号化端末２００−１であっても構わない。
【００５７】
このようにして生成された、多重に暗号化された対象データの利用方法は、第１実施形態の場合と同様である。
もっとも、この場合における多重に暗号化された対象データを復号化する過程には、ユーザ端末１００−１とユーザ端末１００−２のみならず、補助暗号化端末２００−１も参加しなければならない。
【００５８】
なお、第２実施形態では、対象データを多重に暗号化する過程に参加させる少なくとも１つの補助暗号化端末２００を対象データの暗号化を最初に行うユーザ端末１００で決定することとしていたが、かかる補助暗号化端末２００は、最初のユーザ端末１００で決定する必要はなく、他のユーザ端末１００や、複数のユーザ端末１００の協働によって決定されてもかまわない。対象データを多重に暗号化する過程に参加する少なくとも１つの補助暗号化端末２００は、例えば、対象データを多重に暗号化する過程に参加する各ユーザ端末１００のユーザのそれぞれが、対象データを多重に暗号化する過程に参加させる少なくとも１つの補助暗号化端末２００を、その要否も含めて自ら決定することにより決定するようにすることが可能である。このようにすれば、各ユーザ端末１００のユーザは、自らが信用する補助暗号化端末２００を、対象データを多重に暗号化する過程に参加させることが可能となる。例えば、各ユーザ端末１００は、そのユーザ端末１００が対象データを多重に暗号化するための処理に参加する場合に必ずその処理に参加させる補助暗号化端末２００を選択できるようにすることができる。或いは、複数のユーザ端末１００が対象データを保全しようとしたとき、対象データを多重に暗号化するための処理に参加する少なくとも１つの補助暗号化端末２００が、各ユーザ端末１００のユーザの意思によらずに、自動的に決定されるようにしても良い。
【００５９】
なお、第２実施形態の通信システムの使用方法と、動作は、対象データを保全しようとするユーザ端末１００が３つ以上となったときでも同様である。
例えば、対象データを保全しようとするユーザ端末１００が４つであり、各ユーザ端末１００のユーザがそれぞれ別の補助暗号化端末２００を１つずつ、対象データを多重に暗号化する過程に参加させるように設定したとする。そうすると、あるユーザ端末１００で対象データを多重に暗号化させるための最初の暗号化の処理が開始されるとすれば、その後に３つのユーザ端末１００と４つの補助暗号化端末２００で対象データは更に暗号化され、結果的に多重に暗号化された対象データは、八重に暗号化された対象データになる。この場合、３つのユーザ端末１００と４つの補助暗号化端末２００でどのような順番で暗号化の処理が行われるかは自由である。その順番は、７！通り存在するが、それは、最初に暗号化の処理を実行するユーザ端末１００で決定されても良いし、４つのユーザ端末１００の協働によって決定されても良いし、４つのユーザ端末１００と４つの補助暗号化端末２００の協働によって決定されても良いし、更には他の方法によって決定されても良い。
【００６０】
＜変形例１＞
変形例１は、第１実施形態に幾らかの変形を加えたものである。とはいえ、変形例１は、特に言及しない点については、第１実施形態と変わらない。変形例１の通信システムでも、ネットワーク４００に接続可能な多数のユーザ端末１００と、記録装置３００とが用いられる。第１実施形態では記録装置３００は、複数或いは多数であったが、変形例１においては記録装置３００は、少なくとも１つであり、単数であることもあり得る。
変形例１と、第１実施形態の違いは、記録装置３００の違いである。変形例１の記録装置３００には、第１実施形態の場合と同様に、二重に（或いは多重に。この変形例１においては、以後も同様である。）暗号化された対象データが記録されることになるが、二重に暗号化された対象データは、第１実施形態の場合とは異なり、ブロックチェーンに含まれた状態で記録されることになる。
【００６１】
変形例１における記録装置３００は、基本的に第１実施形態における記録装置３００と同じように構成され、特にそのハードウェア構成については第１実施形態と同じで良い。他方、変形例１における記録装置３００には、ブロックチェーン、或いは新たなブロックを生成する機能が必要とされる。変形例１における記録装置３００には例えば、図９に示したような機能ブロックが生成される。かかる機能ブロックは、大容量記録媒体に記録されたコンピュータプログラムをＣＰＵが実行することによって生成されることになる。
記録装置３００の中には、データ入出力部３２１、主制御部３２２、ブロック生成部３２３、及び記録部３２４を有する制御部３２０が生成される。
【００６２】
データ入出力部３２１は、制御部３２０に入力されるデータを受取り、或いは制御部３２０から外部へデータを出力するものである。データ入出力部３２１は、後述する送受信部から受取ったデータを主制御部３２２に送るようになっており、また主制御部３２２から受取ったデータを送受信部に送るようになっている。変形例１におけるデータ入出力部３２１は、少なくとも制御部３２０外にある送受信部との間でデータをやり取りするようになっている。記録装置３００における送受信部は、ユーザ端末１００や補助暗号化端末２００における送受信部と同じく、ネットワーク４００を介して、ネットワーク４００に接続された他の機器との間で通信を行う機能を有するものとなっている。送受信部からデータ入出力部３２１に入力されるデータは、マルチキャストの処理によってユーザ端末１００から送られてくる２つのユーザＩＤが付された二重に暗号化された対象データである。また、二重に暗号化された対象データの検証が必要になった場合に、第三者の機器から記録装置３００に、二重に暗号化された対象データの送信の要求が送られてくる場合があるが、かかる要求についてのデータも送受信部から、データ入出力部３２１へと送られてくる。他方、データ入出力部３２１から送受信部に送られるデータは、２つのユーザＩＤの付された二重に暗号化されたデータである。既に説明したように、対象データを監視していた第三者において対象データの検証が必要になった場合に、それらデータを記録装置３００から当該第三者の機器に対して送れという上述の要求についてのデータを送信してくることがあるが、そのような要求についてのデータを記録装置３００が受取った場合、後述するようにして、データ入出力部３２１から送受信部にその要求に応じたデータが送られる。それらデータは、送受信部から第三者の機器へと送信される。
主制御部３２２は、制御部３２０にある各機能ブロックの全体的な制御を行う機能を有している。主制御部３２２は、データ入出力部３２１から、２つのユーザＩＤの付された二重に暗号化されたデータを受取った場合には、それをブロック生成部３２３に送るようになっている。主制御部３２２は、また、第三者の機器である、例えばデータの検証の対象となる対象データの生成とは無関係だったユーザのユーザ端末１００から、データの検証の対象となる二重に暗号化された対象データの送信を要求された場合に、その要求により特定された二重に暗号化された対象データをそれに付されたユーザＩＤとともに記録部３２４から読出すようになっている。主制御部３２２は、記録部３２４から読出したそれらデータをデータ入出力部３２１へと送るようになっている。
ブロック生成部３２３は、新規のブロックを生成して、それを記録部３２４に記録する機能を有している。ブロック生成部３２３が新規のブロックを生成する方法は、公知或いは周知の方法に従うことができる。例えば、ビットコインのブロックチェーンにおいて新たなブロックを生成する方法を、ブロック生成部３２３が新たなブロックを生成するために実行する方法として採用することができる。ブロック生成部３２３は、生成した新たなブロックを、記録部３２４に対して送るようになっている。ブロック生成部３２３は、生成した新たなブロックを、その直前のブロックに接続した状態として、記録部３２４に記録する。
記録部３２４は、ブロック生成部３２３によって生成したブロックを記録する。記録部３２４に記録されるブロックは、それが生成された順番にしたがって連なっている。つまり、記録部３２４にはブロックチェーンが記録される。
【００６３】
次に変形例１の通信システムの使用方法、及び動作について説明する。
変形例１の通信システムは、対象データを保全するユーザ端末１００が２つの場合でも、３つの場合でも、マルチキャストが行われるまでの処理はすべて第１実施形態の場合と変わらない。
あるユーザ端末１００からマルチキャストが行われ、ある記録装置３００に、ユーザＩＤの付された二重に暗号化された対象データが送られたとする。
そうすると、その記録装置３００は、その送受信部でユーザＩＤの付された二重に暗号化された対象データを受取る。なお、以下の説明では、二重（多重）に暗号化された対象データを、「暗号化対象データ」と称する。ユーザＩＤの付された暗号化対象化データは、送受信部からデータ入出力部３２１へと送られ、データ入出力部３２１から、主制御部３２２へと送られる。
主制御部３２２は、暗号化対象データを受取ると、それをブロック生成部３２３へと送る。これを受取ったブロック生成部３２３は、新たなブロックを生成する。ブロックのデータを概念的に説明すると、図１０のようになる。各ブロックＢには、暗号化対象データＣを記録する記録スペースＳと、その直前のブロックに対して何らかの演算を行って得た値である演算値Ｈが含まれている。演算値Ｈは例えば、その直前のブロックに対してハッシュ演算を行うことによって得られたハッシュ値である。
例えば、ｎ番目のブロックＢｎまでが既に生成されており、ブロック生成部３２３がｎ＋１番目のブロックＢｎ＋１を新たに生成するとする。Ｂ１からＢｎまでのブロックＢは生成された順に接続されており、いわゆるブロックチェーンを構成している。ブロックＢｎ＋１を新たに生成する場合、ブロック生成部３２３は、記録部３２４からブロックＢｎのデータを読出し、ブロックＢｎのデータに対して、例えばハッシュ演算を行うことによってハッシュ値である演算値Ｈｎ＋１を得る。ブロック生成部３２３は、記録スペースＳｎ＋１に、主制御部３２２から受取ったユーザＩＤの付された暗号化対象データを書込むとともに、記録スペースＳｎ＋１に演算値Ｈｎ＋１を付加することにより、新たなブロックＢｎ＋１のデータを生成する。そして、ブロック生成部３２３は、この新たなブロックＢｎ＋１を、ブロックＢｎに接続した状態で、記録部３２４に記録する。
【００６４】
変形例１においても、第１実施形態の＜２つのユーザ端末１００が保全された対象データを復号化する場合＞で説明した処理は基本的に、第１実施形態と同様に実行され得る。暗号化対象データの生成に関わったユーザ端末１００が暗号化対象データを復号化する場合には、第１実施形態の場合と同じように、それらユーザ端末１００が持っている暗号化対象データを復号化すれば良いのであるから、記録装置３００の記録部３２４に記録されている暗号化対象データが使用されることは無い。
他方、暗号化対象データの生成に関わったユーザ端末１００等が暗号化対象データを復号化する場合には、そのユーザ端末１００等から、記録装置３００へ、暗号化対象データを送信せよという要求が送られる。かかる要求には、送信する暗号化対象データを特定する情報が当然に含まれる。かかる要求は、記録装置３００の送受信部で受け取られる。かかる要求は、送受信部からデータ入出力部３２１を経て主制御部３２２へと送られる。主制御部３２２は、その要求によって特定される暗号化対象データを記録部３２４に記録されているブロックチェーンの中から読み出す。かかる暗号化対象データは、データ入出力部３２１を経て送受信部へと送られ、第１実施形態の場合と同様に、ユーザ端末１００等へと送られる。そのユーザ端末１００等が、その暗号化対象データを復号化することのできるユーザ端末１００にその復号化を依頼すること、及びそれ以降の処理は、第１実施形態の場合と同じである。
【００６５】
なお、変形例１についての上述の説明では、ブロックＢの１つの記録スペースＳに含まれる暗号化対象データは１つとされていた。それに対して、ブロックＢの１つの記録スペースＳに対して複数の暗号化対象データを含めることも可能である。例えば、ブロック生成部３２３は、主制御部３２２から暗号化対象データを受取る度に新しいブロックＳを生成する代わりに、例えば主制御部３２２から決まった数の複数の暗号化対象データを受取る度に、或いはその前のブロックＢを生成してから所定の時間が経過する度に、新しいブロックＢを生成し、その直前に生成したブロックＢが生成された後に主制御部３２２から受取ったすべてのユーザＩＤの付された暗号化対象データを、新たなブロックＢの記録スペースＳに書き込むようになっていても良い。後者の場合には記録スペースＳに書き込まれる暗号化対象データが０又は単数の場合も生じることもあるであろうが、このようにすることで、ブロックＢの記録スペースＳに含まれる暗号化対象データの数を複数とすることが可能となる。
また、第１実施形態で説明したように、ユーザ端末１００から記録装置３００へは、暗号化対象データだけでなく、その元になった対象データも送られる場合がある。その場合、各ブロックの記録スペースＳに記録されるのは、ユーザＩＤの付された暗号化対象データのみでなく、暗号化対象データ及びその元になった対象データとなる。この場合、両データは互いに紐付けられた状態となる。記録スペースＳには上述したように複数の暗号化対象データが記録される場合があるが、その場合にはかかる紐付けが必須となる。
【００６６】
＜変形例２＞
変形例２による通信システムは、変形例１の通信システムと殆ど変わらない。変形例２は、特に言及しない点については、変形例１と変わらない。
変形例２における通信システムも、変形例１の場合と同様に、ネットワーク４００に接続可能な多数のユーザ端末１００と、単数或いは複数の記録装置３００とによって構成される。そして、変形例２の記録装置３００においても、変形例１の場合と同様に、暗号化対象データは、ブロックチェーンを構成するブロックに含まれた状態で、記録装置３００に記録される。
変形例２の通信システムにおいて、暗号化対象データが含まれた新たなブロックは、ユーザ端末１００で生成される。この点で、変形例２の通信システムは、新たなブロックが記録装置３００で生成される変形例１の通信システムと異なっている。
【００６７】
変形例２のユーザ端末１００の構成について説明する。ハードウェア構成に関していえば変形例２のユーザ端末１００は変形例１のユーザ端末１００と同一である。異なるのは、その内部に生成される機能ブロックである。変形例２のユーザ端末１００の内部に生成される機能ブロックについて説明する。
変形例２のユーザ端末１００の内部に生成される機能ブロックは、その殆どが変形例１乃至第１実施形態におけるユーザ端末１００の内部に生成される機能ブロックと変わらないが、変形例２のユーザ端末１００内に生成される機能ブロックには、変形例１の場合には存在しなかったブロック生成部１２５が存在する（図１１）。
かかるブロック生成部１２５は、変形例１で説明した変形例１の記録装置３００内に存在したブロック生成部３２３と同様に、ブロックチェーンに接続される新たなブロックを生成する機能を有している。ブロック生成部１２５がどのようにしてブロックを生成するのかについては後述する。
変形例２の記録装置３００は、基本的に第１実施形態における記録装置３００と同様に構成される。その記録部には、第１実施形態における記録装置３００と同様に、ユーザＩＤが付された暗号化対象データが記録されるが、変形例２においては上述のように、暗号化対象データは、ブロックチェーンを構成するブロックの記録スペースに含まれた状態で記録されるという点で、第１実施形態と異なる。
【００６８】
変形例２の通信システムの使用方法、及び動作について説明する。
変形例２の通信システムの使用方法、及び動作は変形例１の場合と同様に、暗号化対象データを、対象データの保全を希望する複数のユーザの複数のユーザ端末１００で共有するところまでは第１実施形態と変わらない。
変形例２の通信システムにおける暗号化対象データを共有した複数のユーザ端末１００のうちの一つは、第１実施形態又は変形例１のユーザ端末１００と同様にマルチキャストを行おうとする。
変形例２の通信システムにおけるマルチキャストを行おうとするユーザ端末１００の主制御部１２１は、第１実施形態の場合と同様に、第１記録部１２３から、ユーザＩＤが付された暗号化対象データを読み出す。他方、主制御部１２１は、マルチキャストの対象となる記録装置３００から、記録装置３００の記録部に記録されているブロックチェーンを構成するブロックのうち、最新のものを送信せよとの要求を生成し、それをデータ入出力部１２２、送受信部、ネットワーク４００を介して、記録装置３００に送信する。これを受取った記録装置３００は、最新のブロックのデータを、ネットワーク４００を介してユーザ端末１００に送る。マルチキャストの対象となる記録装置３００が複数である場合には、複数の記録装置３００からユーザ端末１００へブロックのデータが送られてくる。各記録装置３００の記録部に記録されているブロックチェーンを構成する最新のブロックは記録装置３００毎に異なる場合があり、その場合には各記録装置３００から送られてくるブロックのデータは異なるものとなる。
ブロックのデータは、ユーザ端末１００の送受信部によって受け取られ、データ入出力部１２２を経て、主制御部１２１へと送られる。これにより、変形例２のユーザ端末１００における主制御部１２１は、ユーザＩＤの付された暗号化対象データと、ブロックチェーンを構成するブロックのうちの直前のブロックのデータを保持した状態となる。かかる状態は、新たなブロックを生成する直前における、変形例１の記録装置３００内のブロック生成部３２３の状態と同じである。つまり、変形例２のブロック生成部１２５は、変形例１のブロック生成部３２３と同じ方法で新たなブロックを生成することができる。変形例２のブロック生成部１２５はそうやって新たなブロックのデータを生成する。ブロック生成部１２５は、主制御部１２１から複数の記録装置３００からのブロックのデータを受付けた場合には、それらブロックのデータのそれぞれに基いて、各記録装置３００用の新たなブロックのデータを生成する。
ブロック生成部１２５は新たなブロックのデータを生成したら、それを主制御部１２１へと送る。新たなブロックのデータが複数生成されたのであれば、それらはすべて主制御部１２１へと送られる。主制御部１２１の制御下において、新たなブロックのデータのそれぞれは、対応する例えば複数の記録装置３００へとそれぞれ送られる。
各記録装置３００は、そのそれぞれの記録部に記録されていたブロックチェーンの最も新しいブロックに、ユーザ端末１００から送られてきた新たなブロックを接続して記録する。このようにして更新されたブロックチェーンは、変形例１の場合と同じものとすることができ、変形例２ではそうなるようになっている。
【００６９】
変形例２における、第１実施形態の＜２つのユーザ端末１００が保全された対象データを復号化する場合＞で説明した処理は、変形例１で説明した処理と同一である。
【００７０】
＜変形例３＞
変形例３は、第２実施形態における記録装置３００を、変形例１における記録装置３００のように変形した通信システムである。
変形例３の記録装置３００は、ユーザ端末１００のみならず、補助暗号化端末２００から受付けたユーザＩＤの付された暗号化対象データに基いて新たなブロックを生成して、それをその直前のブロックチェーンの末尾のブロックに接続する場合がある。また、ユーザ端末１００と補助暗号化端末２００とは、ユーザＩＤの付された暗号化対象データと、その暗号化対象データの元となった対象データとを記録装置３００に送る場合がある。ユーザ端末１００と補助暗号化端末２００のどちらから受取ったに関わらず、記録装置３００は、その記録部に、ユーザＩＤ、暗号化対象データ、暗号化対象データの元となった対象データとを互いに紐付けた状態で記録する。
変形例３の通信システムの動作、及び使用方法は変形例１に準じるのでその説明を省略する。
【００７１】
＜変形例４＞
変形例４は、第２実施形態におけるユーザ端末１００及び補助暗号化端末２００を、変形例２におけるユーザ端末１００のように変形した通信システムである。記録装置３００も変形例２における記録装置３００と同様である。
変形例４のユーザ端末１００又は補助暗号化端末２００は、変形例２の場合と同様に、マルチキャストを行う直前に新たなブロックを生成する。ブロックのデータは、変形例２で生成されるものと同じである。各記録装置３００へは、ユーザ端末１００又は補助暗号化端末２００から新たなブロックが送られ、各記録装置３００は、変形例２の場合と同様に、その記録部に記録されていたブロックチェーンを構成するブロックのうち末尾に位置するものに、ユーザ端末１００又は記録装置３００から受取った新たなブロックを接続する。
変形例４の通信システムの動作、及び使用方法は変形例２に準じるのでその説明を省略する。
【符号の説明】
【００７２】
１００  ユーザ端末
１２０  制御部
１２１  主制御部
１２２  データ入出力部
１２３  第１記録部
１２４  暗号化部
１２５  ブロック生成部
２００  補助暗号化端末
３００  記録装置
３２３  ブロック生成部
【図１】
2019016997.tif 000003
【図２】
2019016997.tif 000004
【図３】
2019016997.tif 000005
【図４】
2019016997.tif 000006
【図５】
2019016997.tif 000007
【図６】
2019016997.tif 000008
【図７】
2019016997.tif 000009
【図８】
2019016997.tif 000010
【図９】
2019016997.tif 000011
【図１０】
2019016997.tif 000012
【図１１】
2019016997.tif 000013