(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-08-18
(45)【発行日】2022-08-26
(54)【発明の名称】復元端末、通信システム、復元方法、通信方法、及びプログラム
(51)【国際特許分類】
G09C 1/00 20060101AFI20220819BHJP
【FI】
G09C1/00 650Z
(21)【出願番号】P 2022522008
(86)(22)【出願日】2021-08-11
(86)【国際出願番号】 JP2021029692
(87)【国際公開番号】W WO2022039095
(87)【国際公開日】2022-02-24
【審査請求日】2022-04-11
(31)【優先権主張番号】P 2020137680
(32)【優先日】2020-08-17
(33)【優先権主張国・地域又は機関】JP
【早期審査対象出願】
(73)【特許権者】
【識別番号】522145764
【氏名又は名称】株式会社ポリテック
(74)【代理人】
【識別番号】100123618
【氏名又は名称】雨宮 康仁
(72)【発明者】
【氏名】白水 重明
【審査官】小林 秀和
(56)【参考文献】
【文献】特開2013-243441(JP,A)
【文献】国際公開第2018/105064(WO,A1)
【文献】特開2017-182445(JP,A)
【文献】国際公開第2015/049756(WO,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G09C 1/00
(57)【特許請求の範囲】
【請求項1】
複数の通信端末(2-m)にネットワーク(N)を介して接続された復元端末(2-2)であって、
元データを分割して得られる複数の第1データ片のうちのいずれかを保持する前記通信端末(2-3~2-5)から前記ネットワーク(N)を介して該第1データ片を取得し、
前記複数の第1データ片のうちの二つの該第1データ片から生成される第2データ片を保持する前記通信端末(2-6~2-8)から前記ネットワーク(N)を介して該第2データ片を取得し、
前記取得した第1データ片と、前記取得した第2データ片と、から該取得した第1データ片以外の第1データ片を復元し、
前記取得した第1データ片と、前記復元した第1データ片と、から前記元データを復元し、
前記第1データ片を保持する前記通信端末(2-3~2-5)とは、前記ネットワーク(N)のうち、前記第2データ片を保持する前記通信端末(2-6~2-8)からはアクセス不能なプライベートネットワーク(N1)を介して接続されている、
復元端末(2-2)。
【請求項2】
前記複数の第1データ片を全て取得できなかった場合、前記第2データ片を、該取得できなかった該第1データ片の数、取得する、
請求項1に記載の復元端末(2-2)。
【請求項3】
前記第2データ片は、前記二つの第1データ片の排他的論理和を求めることにより生成され、
前記取得した第1データ片以外の第1データ片は、前記取得した第1データ片と、前記取得した第2データ片と、の排他的論理和を求めることにより復元される、
請求項1に記載の復元端末(2-2)。
【請求項4】
前記複数の第1データ片は、前記元データを難読化してから分割することにより生成される、
請求項1に記載の復元端末(2-2)。
【請求項5】
複数の通信端末(2-m)にネットワーク(N)を介して接続された分散端末(2-1)と、復元端末(2-2)と、を具備する通信システム(1)であって、
前記分散端末(2-1)は、
元データを分割して複数の第1データ片を生成し、
前記複数の第1データ片のうちの二つの該第1データ片から第2データ片を生成し、
前記複数の第1データ片と、前記第2データ片と、を前記ネットワーク(N)を介して、それぞれ異なる前記通信端末(2-m)に送信して分散し、
前記復元端末(2-2)は、
前記複数の第1データ片のうちのいずれかを保持する前記通信端末(2-3~2-5)から前記ネットワーク(N)を介して該第1データ片を取得し、
前記第2データ片を保持する前記通信端末(2-6~2-8)から前記ネットワーク(N)を介して該第2データ片を取得し、
前記取得した第1データ片と、前記取得した第2データ片と、から該取得した第1データ片以外の第1データ片を復元し、
前記取得した第1データ片と、前記復元した第1データ片と、から前記元データを復元し、
前記分散端末(2-1)は、
前記複数の第1データ片を、前記元データの内容を知ることが許可された関係者の前記通信端末(2-3~2-5)に送信し、前記第2データ片を、該元データの内容を知ることが許可されていない部外者の該通信端末(2-3~2-5)に送信する、
通信システム(1)。
【請求項6】
前記復元端末(2-2)は、前記複数の第1データ片を全て取得できなかった場合、前記第2データ片を、該取得できなかった該第1データ片の数、取得する、
請求項5に記載の通信システム(1)。
【請求項7】
前記分散端末(2-1)は、前記二つの第1データ片の排他的論理和を求めることにより、前記第2データ片を生成し、
前記復元端末(2-2)は、前記取得した第1データ片と、前記取得した第2データ片と、の排他的論理和を求めることにより、前記取得した第1データ片以外の第1データ片を復元する、
請求項5に記載の通信システム(1)。
【請求項8】
前記分散端末(2-1)は、前記元データを難読化してから分割することにより、前記複数の第1データ片を生成する、
請求項5に記載の通信システム(1)。
【請求項9】
前記分散端末(2-1)は、前記関係者の通信端末(2-3~2-5)とは、前記ネットワーク(N)のうち、前記部外者の通信端末(2-6~2-8)からはアクセス不能なプライベートネットワーク(N1)を介して接続されている、
請求項5に記載の通信システム(1)。
【請求項10】
複数の通信端末(2-m)にネットワーク(N)を介して接続された復元端末(2-2)による復元方法であって、
元データを分割して得られる複数の第1データ片のうちのいずれかを保持する前記通信端末(2-3~2-5)から前記ネットワーク(N)を介して該第1データ片を取得し、
前記複数の第1データ片のうちの二つの該第1データ片から生成される第2データ片を保持する前記通信端末(2-6~2-8)から前記ネットワーク(N)を介して該第2データ片を取得し、
前記取得した第1データ片と、前記取得した第2データ片と、から該取得した第1データ片以外の第1データ片を復元し、
前記取得した第1データ片と、前記復元した第1データ片と、から前記元データを復元し、
前記第1データ片を保持する前記通信端末(2-3~2-5)とは、前記ネットワーク(N)のうち、前記第2データ片を保持する前記通信端末(2-6~2-8)からはアクセス不能なプライベートネットワーク(N1)を介して接続されている、
復元方法。
【請求項11】
複数の通信端末(2-m)にネットワーク(N)を介して接続された分散端末(2-1)と、復元端末(2-2)と、を具備する通信システム(1)による通信方法であって、
前記分散端末(2-1)が、
元データを分割して複数の第1データ片を生成し、
前記複数の第1データ片のうちの二つの該第1データ片から第2データ片を生成し、
前記複数の第1データ片と、前記第2データ片と、を前記ネットワーク(N)を介して、それぞれ異なる前記通信端末(2-m)に送信して分散し、
前記復元端末(2-2)が、
前記複数の第1データ片のうちのいずれかを保持する前記通信端末(2-3~2-5)から前記ネットワーク(N)を介して該第1データ片を取得し、
前記第2データ片を保持する前記通信端末(2-6~2-8)から前記ネットワーク(N)を介して該第2データ片を取得し、
前記取得した第1データ片と、前記取得した第2データ片と、から該取得した第1データ片以外の第1データ片を復元し、
前記取得した第1データ片と、前記復元した第1データ片と、から前記元データを復元し、
前記分散端末(2-1)が、
前記複数の第1データ片を、前記元データの内容を知ることが許可された関係者の前記通信端末(2-3~2-5)に送信し、前記第2データ片を、該元データの内容を知ることが許可されていない部外者の該通信端末(2-3~2-5)に送信する、
通信方法。
【請求項12】
元データを分割して得られる複数の第1データ片のうちのいずれかを保持する通信端末(2-3~2-5)と、該複数の第1データ片のうちの二つの該第1データ片から生成される第2データ片を保持する該通信端末(2-6~2-8)と、を含む複数の
該通信端末(2-m)にネットワーク(N)を介して接続された復元端末(2-2)
であって、該第1データ片を保持する該通信端末(2-3~2-5)とは、該ネットワーク(N)のうち、該第2データ片を保持する該通信端末(2-6~2-8)からはアクセス不能なプライベートネットワーク(N1)を介して接続されている該復元端末(2-2)のコンピュータに、
前記複数の第1データ片のいずれかを保持する前記通信端末(2-3~2-5)から前記ネットワーク(N)を介して該第1データ片を取得する手順と、
前記第2データ片を保持する前記通信端末(2-6~2-8)から前記ネットワーク(N)を介して該第2データ片を取得する手順と、
前記取得した第1データ片と、前記取得した第2データ片と、から該取得した第1データ片以外の第1データ片を復元する手順と、
前記取得した第1データ片と、前記復元した第1データ片と、から前記元データを復元する手順と
、
を実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、復元端末、通信システム、復元方法、通信方法、及びプログラムに関し、特に、セキュリティを向上可能な復元端末、通信システム、復元方法、通信方法、及びプログラムに関する。
【背景技術】
【0002】
従来の暗号技術は、元データのエントロピーを高めることで復号を困難にする。算出されたエントロピーを暗号の強度としている。これは、楕円関数の極大極小問題に帰依するため、境界条件の設定が可能ならば、組み合わせ問題への高い計算能力を用いる(量子コンピュータなど)ことで、容易に解読できることが予想されている。
これとは別に、秘密分散は一つの元の情報を二つ以上に分割し、またそれらを集めることで元の情報を復元する。
現実の割符は、元の情報自体は既知であり、割符を集めた時に既知の情報が得られたことを確認する相互認証に用いられるが、電子割符では、複数人の協力によってのみ得られる秘密情報の隠蔽に用いられる。
電子割符の中でも秘密分散方式は、現実の割符では不可能な、例えば、6断片に分けた電子割符の内のどれでも3断片以上が集まれば秘密情報を得られる等の閾値(この例では3)を指定するなどの高い可用性を持つ。
既存の秘密分散の仕組みは、暗号技術の一種ではあるが、一般の暗号(秘匿通信)とは異なった利用法を前提としていることから暗号として単純に評価することができない。
秘密分散法は、公開されたネットワークを媒体とすることを前提として、応用を評価しなければならない。
秘密共有スキームは、ブラクリー[Bla79]とシャミール[Sha79]とによって独立して発見された。これらの方式に共通する秘密共有の契機は、セキュリティで保護された鍵の管理にある。通常、機密性の高い多くのファイルへのアクセスを提供する秘密鍵が1つある。このような鍵が失われた場合 (たとえば、鍵を知っているユーザーが使用できなくなったり、鍵を格納するコンピュータが破棄されたりした場合)、すべての重要なファイルにアクセスできなくなる。
【0003】
【0004】
従来の秘密共有の基本的な考え方は、このような状態に対処することが動機として存在するため、
図12に示すように、秘密鍵を分割し、グループ内の特定のサブセットが集まって鍵を回復できるように、グループ内の異なる人物に分割データを配布することである(例えば特許文献1参照)。なお、本明細書中に特許文献1の明細書、特許請求の範囲、図面全体を参考として取り込むものとする。
【先行技術文献】
【特許文献】
【0005】
【発明の概要】
【発明が解決しようとする課題】
【0006】
保存や通信において対象となるデータを秘密分散することで、保存や通信に強靭性をもたらす。強靭性を向上させるためには、分割数を増やして必要条件となる閾値を下げ、分割されたデータ切片を多数の拠点に分配する。しかし、分割されたデータ切片を不特定多数の拠点に十分な数をもって分配すると、不特定多数によって元データを復元することが可能になり、秘匿性が犠牲となる。実用においては、分割数を増大(強靭性)させながら、閾値を高くして秘匿性を向上させる。これは、妥協点を見出すための綱渡りであり、明示的な安全性の確保ではない。元データを知る必要がある拠点(データ共有者管理下)と知る必要のない拠点(強靭性の担保)とを明示的に区別して分割数と閾値の依存性を切り離すことが必要とされている。
【0007】
本発明は、上記の課題を解決するためになされたものであって、セキュリティを向上可能な復元端末、通信システム、復元方法、通信方法、及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【0008】
上記の目的を達成するため、本発明の第1の観点に係る復元端末(2-2)は、複数の通信端末(2-m)にネットワーク(N)を介して接続された復元端末(2-2)であって、元データを分割して得られる複数の第1データ片のうちのいずれかを保持する前記通信端末(2-3~2-5)から前記ネットワーク(N)を介して該第1データ片を取得し、前記複数の第1データ片のうちの二つの該第1データ片から生成される第2データ片を保持する前記通信端末(2-6~2-8)から前記ネットワーク(N)を介して該第2データ片を取得し、前記取得した第1データ片と、前記取得した第2データ片と、から該取得した第1データ片以外の第1データ片を復元し、前記取得した第1データ片と、前記復元した第1データ片と、から前記元データを復元する。
【0009】
上記の復元端末(2-2)において、前記複数の第1データ片を全て取得できなかった場合、前記第2データ片を、該取得できなかった該第1データ片の数、取得する、ものであってもよい。
【0010】
上記の復元端末(2-2)において、前記第2データ片は、前記二つの第1データ片の排他的論理和を求めることにより生成され、前記取得した第1データ片以外の第1データ片は、前記取得した第1データ片と、前記取得した第2データ片と、の排他的論理和を求めることにより復元される、ものであってもよい。
【0011】
上記の復元端末(2-2)において、前記複数の第1データ片は、前記元データを難読化してから分割することにより生成される、ものであってもよい。
【0012】
上記の復元端末(2-2)において、前記第1データ片を保持する前記通信端末(2-3~2-5)とは、前記ネットワーク(N)のうち、前記第2データ片を保持する前記通信端末(2-6~2-8)からはアクセス不能なプライベートネットワーク(N1)を介して接続されている、ものであってもよい。
【0013】
本発明の第2の観点に係る通信システム(1)は、複数の通信端末(2-m)にネットワーク(N)を介して接続された分散端末(2-1)と、復元端末(2-2)と、を具備する通信システム(1)であって、前記分散端末(2-1)は、元データを分割して複数の第1データ片を生成し、前記複数の第1データ片のうちの二つの該第1データ片から第2データ片を生成し、前記複数の第1データ片と、前記第2データ片と、を前記ネットワーク(N)を介して、それぞれ異なる前記通信端末(2-m)に送信して分散し、前記復元端末(2-2)は、前記複数の第1データ片のうちのいずれかを保持する前記通信端末(2-3~2-5)から前記ネットワーク(N)を介して該第1データ片を取得し、前記第2データ片を保持する前記通信端末(2-6~2-8)から前記ネットワーク(N)を介して該第2データ片を取得し、前記取得した第1データ片と、前記取得した第2データ片と、から該取得した第1データ片以外の第1データ片を復元し、前記取得した第1データ片と、前記復元した第1データ片と、から前記元データを復元する。
【0014】
上記の通信システム(1)において、前記復元端末(2-2)は、前記複数の第1データ片を全て取得できなかった場合、前記第2データ片を、該取得できなかった該第1データ片の数、取得する、ようにしてもよい。
【0015】
上記の通信システム(1)において、前記分散端末(2-1)は、前記二つの第1データ片の排他的論理和を求めることにより、前記第2データ片を生成し、前記復元端末(2-2)は、前記取得した第1データ片と、前記取得した第2データ片と、の排他的論理和を求めることにより、前記取得した第1データ片以外の第1データ片を復元する、ようにしてもよい。
【0016】
上記の通信システム(1)において、前記分散端末(2-1)は、前記元データを難読化してから分割することにより、前記複数の第1データ片を生成する、ようにしてもよい。
【0017】
上記の通信システム(1)において、前記分散端末(2-1)は、前記複数の第1データ片を、前記元データの内容を知ることが許可された関係者の前記通信端末(2-3~2-5)に送信し、前記第2データ片を、該元データの内容を知ることが許可されていない部外者の該通信端末(2-3~2-5)に送信する、ようにしてもよい。
【0018】
上記の通信システム(1)において、前記関係者の通信端末(2-3~2-5)とは、前記ネットワーク(N)のうち、前記部外者の通信端末(2-6~2-8)からはアクセス不能なプライベートネットワーク(N1)を介して接続されている、ようにしてもよい。
【0019】
本発明の第3の観点に係る復元方法は、複数の通信端末(2-m)にネットワーク(N)を介して接続された復元端末(2-2)による復元方法であって、元データを分割して得られる複数の第1データ片のうちのいずれかを保持する前記通信端末(2-3~2-5)から前記ネットワーク(N)を介して該第1データ片を取得し、前記複数の第1データ片のうちの二つの該第1データ片から生成される第2データ片を保持する前記通信端末(2-6~2-8)から前記ネットワーク(N)を介して該第2データ片を取得し、前記取得した第1データ片と、前記取得した第2データ片と、から該取得した第1データ片以外の第1データ片を復元し、前記取得した第1データ片と、前記復元した第1データ片と、から前記元データを復元する。
【0020】
本発明の第4の観点に係る通信方法は、複数の通信端末(2-m)にネットワーク(N)を介して接続された分散端末(2-1)と、復元端末(2-2)と、を具備する通信システム(1)による通信方法であって、前記分散端末(2-1)が、元データを分割して複数の第1データ片を生成し、前記複数の第1データ片のうちの二つの該第1データ片から第2データ片を生成し、前記複数の第1データ片と、前記第2データ片と、を前記ネットワーク(N)を介して、それぞれ異なる前記通信端末(2-m)に送信して分散し、前記復元端末(2-2)が、前記複数の第1データ片のうちのいずれかを保持する前記通信端末(2-3~2-5)から前記ネットワーク(N)を介して該第1データ片を取得し、前記第2データ片を保持する前記通信端末(2-6~2-8)から前記ネットワーク(N)を介して該第2データ片を取得し、前記取得した第1データ片と、前記取得した第2データ片と、から該取得した第1データ片以外の第1データ片を復元し、前記取得した第1データ片と、前記復元した第1データ片と、から前記元データを復元する。
【0021】
上記の通信方法は、データの保管や伝送において、暗号方式ではなく割符方式を使用する際、秘密分散のスキームを使って分割したピースを、復元に必要条件となる第1データ片とこの第1データ片から可逆的に生成されたファイルのIntegrityのverifyや第2データ片とを明示的に区別して生成し、運用する、ようにしてもよい。
【0022】
上記の通信方法は、復元に必要条件となる第1データ片の生成において、いったん難読化したうえで、これを分割する、ようにしてもよい。
【0023】
上記の通信方法は、第1データ片から可逆的に生成された第2データ片のみを利用して、三次以上の高次のデータ片を生成する、ようにしてもよい。
【0024】
上記の通信方法は、三次以上の高次のデータ片を二次以上のデータ片を利用して、次数を跨いで高次のデータ片を生成する、ようにしてもよい。
【0025】
上記の通信方法は、明示的に区別することで、復元することなく、内容証明ができる、ようにしてもよい。
【0026】
本発明の第5の観点に係るプログラムは、複数の通信端末(2-m)にネットワーク(N)を介して接続された復元端末(2-2)のコンピュータに、元データを分割して得られる複数の第1データ片のうちのいずれかを保持する前記通信端末(2-3~2-5)から前記ネットワーク(N)を介して該第1データ片を取得する手順と、前記複数の第1データ片のうちの二つの該第1データ片から生成される第2データ片を保持する前記通信端末(2-6~2-8)から前記ネットワーク(N)を介して該第2データ片を取得する手順と、前記取得した第1データ片と、前記取得した第2データ片と、から該取得した第1データ片以外の第1データ片を復元する手順と、前記取得した第1データ片と、前記復元した第1データ片と、から前記元データを復元する手順と、を実行させる。
【発明の効果】
【0027】
本発明によれば、セキュリティを向上可能な復元端末、通信システム、復元方法、通信方法、及びプログラムを提供することができる。
【図面の簡単な説明】
【0028】
【
図3】実施形態1に係るデータ分散処理の詳細を示すフローチャートである。
【
図4】実施形態1に係るデータ復元処理の詳細を示すフローチャートである。
【
図5】簡易検査処理の詳細を示すフローチャートである。
【
図6】内容検査処理の詳細を示すフローチャートである。
【
図8】実施形態2に係るデータ分散処理の詳細を示すフローチャートである。
【
図9】実施形態2に係るデータ復元処理の詳細を示すフローチャートである。
【
図10】実施形態2に係る分散片の搬送の説明図である。
【
図11】実施形態3に係る秘密分散の説明図である。
【発明を実施するための形態】
【0029】
以下、本発明を実施するための形態について説明する。
[実施形態1]
【0030】
まず、本発明の実施形態1に係る秘密分散システムの構成について図面を参照しつつ説明する。
【0031】
図1は、秘密分散システムの構成例を示すブロック図である。
【0032】
図1に示すように、秘密分散システム1は、複数の通信端末2-m(mは自然数)を具備する。複数の通信端末2-mは、インターネット等のネットワークNを介して相互に通信可能に接続され、ノードと呼ばれる。複数の通信端末(ノード)2-mは、ピア・ツウ・ピア方式で通信を行い、ピア・ツウ・ピア(P2P)型ネットワークを構成する。
【0033】
通信端末(ノード)2-mは、例えば汎用のパーソナルコンピュータ、汎用のサーバコンピュータ、若しくはタブレットコンピュータ、スマートフォン、及びデジタル家庭電化製品等のIP(Internet Protocol)通信機能を持つCPU(Central Processing Unit)を備えたスマートデバイス等から構成される。
【0034】
図2は、通信端末(ノード)の構成例を示すブロック図である。
【0035】
図2に示すように、通信端末(ノード)2-mは、それぞれ、通信部21-mと、記憶部22-mと、制御部23-mと、を備え、これらはバス等を介して接続される。
【0036】
通信部21-mは、例えば無線通信装置等から構成される。通信部21-mは、他の通信端末(ノード)2-mとネットワークNを介したデータの送受信を行う。
【0037】
記憶部22-mは、例えば汎用のフラッシュメモリ等の不揮発性メモリ等から構成される。
【0038】
制御部23-mは、例えばCPU、ROM(Read Only Memory)、及びRAM(Random Access Memory)等から構成される。CPUは、RAMをワークメモリとして用い、ROM及び記憶部22に記憶されているプログラム等を適宜実行することによって、通信端末(ノード)2-mの各種動作を制御する。
【0039】
図1に示す秘密分散システム1は、鍵を秘密とするのではなく、共有もしくは伝送する秘密情報である任意のデータ(以下、「元データ」という)そのものを秘密として扱い、公開ネットワークN2上で分散を行う。一次の分割として任意の一次分散片(第1データ片)P
1i(1≦i≦n(本実施形態ではn=3))は、単独では意味を持たない。
【0040】
本実施形態において、通信端末(ノード)2-mには、元データから分散片を生成する通信端末(以下、「分散ノード(分散端末)」という。)2-1と、分散片から元データを復元する通信端末(以下、「復元ノード(復元端末)」という。)2-2と、元データの内容を知る必要のある(元データの内容を知ることが許可された)関係者の通信端末(以下、「関係者ノード(関係者端末)」という。」)2-3~2-5と、元データの内容を知る必要の無い(元データの内容を知ることが許可されていない)部外者の通信端末(以下、「部外者ノード(部外者端末)」という。)2-6~2-8と、が含まれる。なお、関係者ノード及び部外者ノードの数は、“3”に限定されるものではなく、任意である。
【0041】
また、ネットワークNには、プライベートネットワークN1と、公開ネットワークN2と、が含まれる。プライベートネットワークN1には、分散ノード2-1と復元ノード2-2と関係者ノード2-3~2-5とからアクセスできる一方で、部外者ノード2-6~2-8からはアクセスできない。公開ネットワークN2には、部外者ノード2-6~2-8を含む全ての通信端末2-mからアクセスできる。
【0042】
次に、上記構成を備える秘密分散システム1が実行する各種処理について図面を参照して説明する。
【0043】
以下では、3つの関係者ノード2-3~2-5、及び3つの部外者ノード2-6~2-8の全6つのノードへの分散を前提とする一貫した処理について、元データから再現まで順に、具体的に説明する。
【0044】
まず、分散ノード2-1が実行するデータ分散処理について説明する。
【0045】
図3は、実施形態1に係るデータ分散処理の詳細を示すフローチャートである。
【0046】
図3に示すデータ分散処理において、分散ノード2-1の制御部23-1は、まず、元データXと暗号学的ハッシュ関数Hとから、元データXの誤り検出用HASH符号h=H(X)を生成し、これを秘密分散ID(Identification)とする(ステップS301)。
【0047】
次に、制御部23-1は、元データXと圧縮難読化関数Cとから、圧縮難読化されたビット文字列S’=C(X)を生成して、元データXの難読化を行う(ステップS302)。
【0048】
そして、制御部23-1は、圧縮難読化されたビット文字列S’を、分割数n(本実施形態では、関係者ノードの数=“3”)で等長分割すると整数にならない場合があるので、分割数の剰余分をNULLで補填し、等長整合化したビット文字列Sを生成する(ステップS303)。
【0049】
その後、制御部23-1は、まず、下記の数1に示す数式に従って、等長整合化したビット文字列Sをn(=3)片に等長分割して、第1ビット文字列Si(1≦i≦n(=3))をn(=3)片生成する(ステップS304)。
【0050】
【0051】
次に、制御部23-1は、ステップS301で生成したHASH符号h、等長分割に使用したスライス単位(ビット単位、Hex単位、バイト単位など)D、i番目の第1ビット文字列Siであることを認識するためのタグT、分割数n(=3)といった変数をヘッダとして、これらに第1ビット文字列Siを連結して、それぞれの巡回冗長検査符号(CRC)を計算しCRCiを生成する(ステップS305)。
【0052】
そして、制御部23-1は、下記の数2に示す数式に従って、最後にCRCiを連結して、一次分散片P1i(1≦i≦n(=3))を生成する(ステップS306)。
【0053】
【0054】
続いて、制御部23-1は、下記の数3に示す数式に従って、第1ビット文字列Siのペアに対して可逆計算を実行し、第2ビット文字列Vljkを生成する(ステップS307)。
【0055】
【0056】
ここで、可逆計算とは、例えば論理的排他和(XOR)のように、下記の数4に示す数式を満たす処理とする。
【0057】
【0058】
また、lは、分散性の次数(本実施形態では“2”)である。jは、可逆生成に使ったj番目の第1ビット文字列Sjとし、kは、可逆生成に使ったk番目の第1ビット文字列Skとし、j≠kとする。ステップS307で生成される第2ビット文字列V2jkは、ステップS304で生成される第1ビット文字列Siと等長のビット文字列である。
【0059】
さらに、制御部23-1は、ステップS301で生成したHASH符号h、可逆計算に使用したスライス単位(ビット単位、Hex単位、バイト単位など)E、j番目の第1ビット文字列Sjとk番目の第1ビット文字列Skとから生成された第2ビット文字列V2jkであることを認識するためのタグU、分割数nといった変数をヘッダとして、これらに第2ビット文字列V2jkを連結して、それぞれの巡回冗長検査符号(CRC)を計算しCRC2jkを生成する(ステップS308)。
【0060】
そして、制御部23-1は、下記の数5に示す数式に従って、最後にCRC2jkを連結して、二次分散片(第2データ片)Q2jkを生成する(ステップS309)。
【0061】
【0062】
一次分散片P1iが一般的な秘密共有のスキームでは、元のデータを共有して秘密を回復できる利用者の最小セットを指定する。秘密共有の一般的な例は、整数1≦i≦nのi-out-of-nスキーム(または(i,n)-しきい値スキーム)である。このようなスキームでは、分散ノードとn個の関係者ノードとが存在する。分散ノードは、元のデータをn個の部分に分割し、各関係者ノードに1つの部分を与え、任意のi個部分を組み合わせて元のデータを回復できるようにするが、i-1個の部分を収集しただけでは元のデータを決定するのに十分ではない。本実施形態では、iとnとの値が一意的に決まるのではなく、一次分散片P1iを取得すれば合計i個の一次分散片P1i又は二次分散片Q2jkから元のデータを復元・決定できる。一方、一次分散片P1iが取得できなければ、i個どころか、何個二次分散片Q2jkを集めても元のデータを復元・決定することはできない。信頼できる相手の関係者ノード2-3~2-5には一次分散片P1iを、それ以外の不特定多数の部外者ノード2-6~2-8には二次分散片Q2jkを分配する。すなわち、分配する相手のノード2-mによって分配する分散片を意図的に選択することで、セキュリティを犠牲にすることなく、冗長性を高めることができる。
【0063】
本実施形態では、3つの関係者ノード2-3~2-5、及び3つの部外者ノード2-6~2-8の計6つのノードによる秘密分散を想定している。ステップS306で一次分散片P11、P12、P13の3分散片が生成され、これら3分散片の可逆計算の組み合わせが3C2=3通りあり、ステップS309で3種類の二次分散片Q212、Q223、Q231が生成されるので、一様な分配が可能となる。強靭性を高めるため、元データの内容を知る必要のない部外者の部外者ノードを増やすことができる。その際、組み合わせによるヘッダが異なるが同値な二次分散片Q212、Q223、Q231を生成する。ただし、本実施形態に係る分散片は等長なのでこのように冗長性を高めるとこれに比例して、ストレージコストが高くなる。ネットワークN上での分散保存や、分散伝送は、関係者ノード2-3~2-5が直接このコストを負担する構造ではないので、不用意に使われることが多い。この問題に関して、国際出出願PCT/JP2021/ 25226に記載されているインセンティブを設けた多重因子三点認証ルーティングを参照されたい。なお、本明細書中にPCT/JP2021/ 25226の明細書、特許請求の範囲、図面全体を参考として取り込むものとする。
【0064】
そして、制御部23-1は、ステップS306で生成した一次分散片P11、P12、P13を、それぞれプライベートネットワークN1を介して3つの関係者ノード2-3~2-5に送信して分配し、ステップS309で生成した二次分散片Q212、Q223、Q231を、それぞれ公開ネットワークN2を介して3つの部外者ノード2-6~2-8に送信して分配することにより、一次分散片P12及び二次分散片Q213を分散してから(ステップS310)、データ分散処理を終了する。具体的に、制御部23-1は、一次分散片P11を関係者ノード2-3に、一次分散片P12を関係者ノード2-4に、一次分散片P13を関係者ノード2-5に、それぞれ分配し、二次分散片Q212を部外者ノード2-6に、二次分散片Q223を部外者ノード2-7に、二次分散片Q231を部外者ノード2-8に、それぞれ分配する。
【0065】
次に、復元ノード2-2が実行するデータ復元処理について説明する。
【0066】
図4は、実施形態1に係るデータ復元処理の詳細を示すフローチャートである。
【0067】
図4に示すデータ復元処理において、復元ノード2-2の制御部23-2は、まず、下記の数6に示す数式に従って、秘密分散IDであるHASH符号hをキーワードにして、プライベートネットワークN1を介して関係者ノード2-3~2-5から一次分散片P
1iを収集(取得)する(ステップS401)。なお、関係者ノード2-3~2-5のうちのいずれかが復元ノード2-2であってもよく、この場合、ステップS401で収集される一次分散片P
1iには、他の関係者ノード2-3~2-5からプライベートネットワークN1を介して収集されるものに加え、復元ノード2-2自身が保持するものも含まれる。
【0068】
【0069】
次に、制御部23-2は、各一次分散片P1iからヘッダを抽出してCRCiを検査し、健全な一次分散片P1iがn(本実施形態では“3”)個手元にあることを確認する(ステップS402)。
【0070】
制御部23-2は、健全な一次分散片P1iがn個に満たない場合(ステップS402;No)、i番目の一次分散片P1iであることを認識するためのタグTをリストして、欠如している一次分散片P1iを欠損配列としてリストした上で、下記の数7に示す数式に従って、秘密分散IDであるHASH符号hをキーワードにして、公開ネットワークN2を介して、部外者ノード2-6~2-8から不足数の二次分散片Q2jkを収集(取得)する(ステップS403)。
【0071】
【0072】
続いて、制御部23-2は、各二次分散片Q2jkからヘッダを抽出してCRC2jkを検査し、健全な二次分散片Q2jkが不足数手元にあることを確認する(ステップS404)。具体的に、制御部23-2は、j番目の第1ビット文字列Sjとk番目の第1ビット文字列Skとから生成された第2ビット文字列V2jkであることを認識するためのタグUを検査して、欠損配列検査を実行する。
【0073】
制御部23-2は、欠損リストがNULLにならない場合、即ち健全な二次分散片Q2jkが不足数に満たない場合(ステップS404;No)、追加処理として、ステップS403の処理を、欠損リストがNULLになるまで、即ち健全な二次分散片Q2jkが不足数になるまで(ステップS404;Yes)、繰り返し実行する。なお、制御部23-2は、欠損リストがNULLにならない場合、復元不能とすればよい。
【0074】
また、制御部23-2は、欠損している一次分散片P1iがある場合、第1ビット文字列Siを二次分散片Q2jkから抽出した第2ビット文字列V2ik又はV2jiから復元する(ステップS405)。具体的に、制御部23-2は、下記の数8に示す数式で、欠損している第1ビット文字列Siを復元する。
【0075】
【0076】
そして、制御部23-2は、下記の数9に示す数式に従って、第1ビット文字列Siをシリアル番号i順に並べて連結して難読化圧縮されたビット文字列Sを得る(ステップS406)。
【0077】
【0078】
さらに、制御部23-2は、この難読化圧縮されたビット文字列Sから、NULLを切り落としてビット文字列S’を生成する(ステップS407)。
【0079】
続いて、制御部23-2は、先の(圧縮難読化)関数の逆関数C-1と、ステップS407で生成したビット文字列S’と、からビット文字列(復元データ)X’=C-1 (S’)を生成する(ステップS408)。
【0080】
さらに、制御部23-2は、ステップS408で生成したビット文字列(復元データ)X’と、先の暗号学的ハッシュ関数Hと、からHASH値h’=H(X’)を生成する(ステップS409)。
【0081】
そして、制御部23-2は、秘密分散IDであるHASH値hと、ステップS409で生成したHASH値h’と、の同一検査をし(ステップS410)、同一であれば、これを元データXの正しい復元として、データ復元処理を終了する。
【0082】
最後に、復元ノード2-2が実行する整合性検査処理について説明する。
【0083】
整合性検査処理には、大きく分けて、簡易検査(クイックテスト)処理と、内容検査(ディープテスト)処理と、の二つのレベルの検査処理がある。
【0084】
図5は、簡易検査処理の詳細を示すフローチャートである。
【0085】
図5に示す簡易検査(クイックテスト)処理において、復元ノード2-2の制御部23-2は、まず、下記の数10に示す数式に従って、プライベートネットワークN1を介して関係者ノード2-3~2-5から一次分散片P
1iを収集する(ステップS501)。
【0086】
【0087】
次に、制御部23-2は、各一次分散片P1iからヘッダを抽出してCRCiを検査し、健全な一次分散片P1iがn(本実施形態では“3”)個手元にあることを確認する(ステップS502)。制御部23-2は、健全な一次分散片P1iがn(本実施形態では“3”)個全て揃っている場合(ステップS502;Yes)、このデータセットをX1とし、簡易検査合格としてから(ステップS505)、簡易検査処理を終了する。
【0088】
制御部23-2は、健全な一次分散片P1iがn個に満たない場合(ステップS502;No)、下記の数11に示す数式に従って、秘密分散IDであるHASH符号hをキーワードにして、公開ネットワークN2を介して部外者ノード2-6~2-8から不足数の二次分散片Q2jkを収集する(ステップS503)。
【0089】
【0090】
続いて、制御部23-2は、各二次分散片Q2jkからヘッダを抽出してCRC2jkを検査し、手元にある健全な二次分散片Q2jkの数が、ステップS503で収集した二次分散片Q2jkの総数と一致するか、すなわちステップS503で収集した不足数の二次分散片Q2jkが全て健全であるかを確認する(ステップS504)。
【0091】
そして、制御部23-2は、一致すれば、すなわちステップS503で収集した不足数の二次分散片Q2jkが全て健全であれば(ステップS504;Yes)、簡易検査合格とし(ステップS505)、一致しなければ(ステップS504;No)、元データが壊れている可能性があるとして簡易検査不合格としてから(ステップS506)、簡易検査処理を終了する。
【0092】
図6は、内容検査処理の詳細を示すフローチャートである。
【0093】
図6は、内容検査処理(ディープテスト)において、復元ノード2-2の制御部23-2は、まず、上記の数2に示す数式に従って、プライベートネットワークN1を介して関係者ノード2-3~2-5から一次分散片P
1iを収集する(ステップS601)。
【0094】
次に、制御部23-2は、各一次分散片P1iからヘッダを抽出してCRCiを検査し、健全な一次分散片P1iがn(本実施形態では“3”)個手元にあることを確認する(ステップS602)。
【0095】
制御部23-2は、健全な一次分散片P
1iがn(本実施形態では“3”)個全て揃っている場合、
図4に示すステップS406~S409と同様の処理を経てから(ステップS603)、秘密分散IDであるHASH値hと、ステップS409で生成したHASH値h’と、の同一検査をし(ステップS604)、同一であれば(ステップS605;Yes)、これを元データXの正しい復元としてから(ステップS606)、内容検査処理を終了する。
【0096】
制御部23-2は、同一でなかった場合(ステップS605;No)、秘密分散IDであるHASH符号hをキーワードにして、公開ネットワークN2を介して、部外者ノード2-6~2-8から残る不足数の二次分散片Q2jkを収集する(ステップS607)。
【0097】
続いて、制御部23-2は、データセットX1を生成する際に使った手元の一次分散片P1i内の第1ビット文字列Siと、二次分散片Q2jkから抽出した第2ビット文字列V2ik又はV2jiと、から第1ビット文字列S’k又はS’jを復元する(ステップS608)。制御部23-2は、残る二次分散片Q2jkに対してもステップS608と同様の処理を行って、第2ビット文字列V2ik又はV2jiから、第1ビット文字列S”kまたはS”jを復元する。
【0098】
さらに、制御部23-2は、ステップS608で得た第1ビット文字列S’iと第1ビット文字列S”iとの同値テストを行い、同値ではない第1ビット文字列S’iもしくはS”iを置き換えて連結し(ステップS609)、NULLを切り落としてビット文字列S”を生成する(ステップS610)。
【0099】
続いて、制御部23-2は、先の(圧縮難読化)関数の逆関数C-1と、ステップS610で生成したビット文字列S”と、からビット文字列(復元データ)X”=C-1(S”)を生成する(ステップS611)。
【0100】
さらに、制御部23-2は、ステップS611で生成したビット文字列(復元データ)X’と、先の暗号学的ハッシュ関数Hと、からHASH値h’=H(X’)を生成する(ステップS612)。
【0101】
続いて、制御部23-2は、ステップS604へと戻り、秘密分散IDであるHASH値hと、ステップS612で生成したHASH値h”と、の同一検査をし、同一であれば(ステップS605;Yes)、これを元データXの正しい復元としてから(ステップS606)、内容検査処理を終了する。
【0102】
以上説明したように、本実施形態に係る秘密分散システム(通信システム)1は、複数の通信端末2-mにネットワークNを介して接続された分散ノード(分散端末)2-1と、復元ノード(復元端末)2-2と、を具備する。
【0103】
分散ノード2-1(の制御部23-1)は、元データを分割して複数(本実施形態では“3”)の一次分散片(第1データ片)P1iを生成する。具体的に、分散ノード2-1は、元データを難読化してから分割することにより、複数の一次分散片P1iを生成する。
【0104】
次に、分散ノード2-1は、複数の一次分散片P1iのうちの二つの一次分散片P1iから二次分散片(第2データ片)Q2jkを生成する。具体的に、分散ノード2-1は、二つの一次分散片P1iの排他的論理和を求めることにより、二次分散片Q2jkを生成する。
【0105】
続いて、分散ノード2-1は、複数の一次分散片P1iと、二次分散片Q2jkと、をネットワークNを介して、それぞれ異なる通信端末2-mに送信して分散する。具体的に、分散ノード2-1は、複数の一次分散片P1iを、元データの内容を知ることが許可された関係者の通信端末(関係者ノード)2-3~2-5に送信し、二次分散片Q2jkを、元データの内容を知ることが許可されていない部外者の通信端末(部外者ノード)2-3~2-5に送信する。ここで、分散ノード2-1は、関係者ノード2-3~2-5とは、ネットワークNのうち、部外者ノード2-6~2-8からはアクセス不能なプライベートネットワークN1を介して接続されている。
【0106】
一方、復元ノード2-2は、複数の一次分散片P1iのうちのいずれかを保持する通信端末(関係者ノード)2-3~2-5からネットワークN(具体的には「プライベートネットワークN1」)を介して一次分散片P1iを取得する。
【0107】
また、復元ノード2-2は、二次分散片Q2jkを保持する通信端末(部外者ノード)2-6~2-8からネットワークN(具体的には「公開ネットワークN2」)を介して二次分散片Q2jkを取得する。ここで、復元ノード2-2は、複数の一次分散片P1iを全て取得できなかった場合、二次分散片Q2jkを、取得できなかった一次分散片P1iの数、取得すればよい。例えば、復元ノード2-2は、3つの一次分散片P1iのうち、1つしか取得できなかった場合、二次分散片Q2jkを2つ取得すればよい。
【0108】
続いて、復元ノード2-2は、取得した一次分散片P1iと、取得した二次分散片Q2jkと、から、取得した一次分散片P1i以外の一次分散片P1iを復元する。具体的に、復元ノード2-2は、取得した一次分散片P1iと、取得した二次分散片Q2jkと、の排他的論理和を求めることにより、取得した一次分散片P1i以外の一次分散片P1iを復元する。
【0109】
そして、復元ノード2-2は、取得した一次分散片P1iと、復元した一次分散片P1iと、から元データを復元する。
【0110】
これにより、本実施形態に係る秘密分散システム1によれば、セキュリティを向上させることができる。
【0111】
具体的に、本実施形態に係る公証可能な秘密分散システム1は、秘密分散の特性である「復号を困難にする」のではなく、「適切なデータセットの取得を困難にする」ことで秘匿性を確保する。さらに、秘密分散のデータ切片を復元に必要な一次分散片P1iと内容を再構築する上で十分ではない2次以上の高次の分散片に別けて分割分散するので、1)当事者は解読できるが、2)その他の人は解読困難となる。
【0112】
本実施形態に係る秘密分散システム1による秘匿化は、復号を担う復元ノード2-2のコンピュータがどんなに強力でも、暗号化されたデータの適切な組み合わせを収集することができない限り復号できない。したがって、本実施形態に係る秘密分散システム1がもたらす革新は、秘密とすべき情報(秘密情報)を含む一次分散片(可視証人)P1iと、秘密情報を含まない復元のための冗長化した二次分散片(不可視証人)Q2jkと、を意図的に生成する。
【0113】
【0114】
図7に示すように、例えば、秘密分散システム1は、元データを3個の一次分散片P
1iとさらに3個の二次分散片Q
2jkの計6つに分けた分散片の内、一次分散片P
1iを1つ持っていれば、あとはどれでも2以上の分散片が集まれば秘密情報を得られる等といった閾値(この例では1+2=3)を指定できる。このように、秘密分散システム1は、秘密情報の内容を知る必要のある関係者ノード2-3~2-5の閾値と、秘密情報の内容知る必要の無い部外者ノード2-6~2-8に対する閾値が指定できるので、可用性を飛躍的に高めながら、高度なセキュリティを実現することができる。
[実施形態2]
【0115】
次に、本発明の実施形態2に係る秘密分散システムの構成について図面を参照しつつ説明する。なお、実施形態1に係る秘密分散システムと同様の構成については、同一の符号を付し、その説明を省略する。
【0116】
本実施形態に係る秘密分散システム1は、第5世代移動通信システム(5th Generation Mobile Communication System;5G)等、多くの通信端末(ノード)2-mを経て通信が成立する環境で、主にIoT(Internet of Things)及びスマート・コントラクトでの応用を前提としている。したがって、分散片は、インターネットのように公開ネットワークN2上の通信端末(ノード)2-mに分配される。一次分散片(プライマリ・ピース)と二次分散片(ヴェリフィケーション・ピース若しくはセカンダリ・ピース)とは区別して取り扱われる。
【0117】
分散ノード2-1の制御部23-1は、下記の数12に示す数式に従って、秘密情報sを等長分割して一次分散片(プライマリ・ピース)si(iは変数)を生成するとともに、一次分散片siのペアに対して可逆計算を実行し、二次分散片(セカンダリ・ピース)pij(i及びjは変数)を生成する。
【0118】
【0119】
ここで、秘密情報sを回復するには、全ての分散片共有が必要であることに注意を要する。
【0120】
図8は、実施形態2に係るデータ分散処理の詳細を示すフローチャートである。
【0121】
図8に示すデータ分散処理において、まず、分散ノード2-1の制御部23-1は、元のファイルのHASHを生成し、これを元のファイルの認識票のヘッダとする(ステップS801)。
【0122】
次に、制御部23-1は、分割する前に元のファイルのHASHに圧縮をかける(ステップS802)。圧縮することで単純分割した元のファイルの分散片は難読化される。
【0123】
続いて、制御部23-1は、圧縮された元のファイルのHASHを等分に3以上に分割する(ステップS803)。
【0124】
さらに、制御部23-1は、元のファイルにNULL記号を付加することで、等分に整数分割できるよう調整する(ステップS804)。
【0125】
そして、制御部23-1は、等分割された分散片を一次分散片(プライマリピース)siとして、認識票にシリアルを付記する(ステップS805)。
【0126】
続いて、制御部23-1は、互いに異なる一次分散片(プライマリ・ピース)siを、可逆演算(例えば排他的論理和:XOR)して、二次分散片(セカンダリ・ピース)pijを生成する(ステップS806)。二次分散片(セカンダリ・ピース)pijの生成より、高次の分配片の生成には次数の異なる分配片間で可逆演算をするが、一次分散片(プライマリ・ピース)siとの可逆演算は禁止する。
【0127】
そして、制御部23-1は、秘密情報sを解読できる関係者ノード2-3~2-5に一次分散片(プライマリ・ピース)siを配布し、秘密情報sを解読困難な部外者ノード2-6~2-8に二次分散片(セカンダリ・ピース)pijを配布して分散から(ステップS807)、データ復元処理を終了する。
【0128】
図9は、実施形態2に係るデータ復元処理の詳細を示すフローチャートである。
【0129】
図9に示すデータ復元処理において、まず、復元ノード2-2の制御部23-2は、元のファイルの認識票からHASHを入手、もしくは一次分散片(プライマリ・ピース)s
iの認識票からHASHを入手する(ステップS901)。
【0130】
次に、制御部23-2は、認識票のHASHをもとに、一次分散片(プライマリ・ピース)siを収集する(ステップS902)。制御部23-2は、一次分散片(プライマリ・ピース)siを一つも入手できない場合、再構築不能である。
【0131】
制御部23-2は、一次分散片(プライマリ・ピース)siを少なくとも一つ入手できた場合、HASHをもとに、二次分散片(セカンダリ・ピース)pijを収集する(ステップS903)。
【0132】
そして、制御部23-2は、手元の一次分散片(プライマリ・ピース)と二次分散片(セカンダリ・ピース)pijとに可逆演算の逆を適用して、入手(収集)できなかった一次分散片(プライマリ・ピース)siを構築(復元)する(ステップS904)。
【0133】
続いて、制御部23-2は、一次分散片(プライマリ・ピース)siが揃ったところで、収集した一次分散片(プライマリ・ピース)siの認識票をもとに、認識票を破棄した上で、これらを連結し元のファイルを圧縮したファイルとして再構築(復元)する(ステップS905)。
【0134】
さらに、制御部23-2は、圧縮したファイルを伸長して元のファイルを入手(復元)する(ステップS906)。
【0135】
そして、制御部23-2は、ここで得た元のファイルのHASH値と、認識票に書き込まれたHASH値と、を比較してエラーが無いことを確認(同一検査)してから(ステップS907)、データ復元処理を終了する。
【0136】
本実施形態において、インターネットプロトコルは、ピア・ツウ・ピア通信であり、ピア・ツウ・ピア(P2P)型ネットワークを構成する通信端末2-mの起点から終点までの通信の整合性を保証する。したがって、起点となる通信端末2-m(本実施形態では、「分散ノード2-1」)から終点となる通信端末2-m(本実施形態では、「復元ノード2-2」)に向かって転送するファイルを「動くデータ」と定義する。これとは対照的に、複数の通信端末2-m(以下、「参加ノード」という。)によって共有されるデータを「静止データ」と定義する。ここで、上記の二種類のデータの取り扱いについて説明する。
【0137】
「動くデータ」は、起点となる分散ノード2-1から終点となる復元ノード2-2に向かって転送されるファイルである。ここで、起点となる分散ノード2-1は、元のファイルを所有しているので、内容を知っているが、終点となる復元ノード2-2は、このファイルに関する内容について無知である。安全にファイルを終点となる復元ノード2-2に転送するためには、ファイルの一次分散片(プライマリ・ピース)siの1つを直接転送するか、もしくは別媒体に保存して物理的に転送する。起点となる分散ノード2-1は、HASH値を認識番号として終点となる復元ノード2-2を含めた参加ノードをグラフで定義し、二次分散片(セカンダリ・ピース)pijを参加ノードに対して分散配布する。終点となる復元ノード2-2は、この一次分散片(プライマリ・ピース)siの認識票から、元のファイルのHASH値の知識を得る。終点となる復元ノード2-2は、このHASH値を認識番号としたグラフの参加ノードなので、二次分散片(セカンダリ・ピース)pijを収集することができる。終点となる復元ノード2-2は、直接受け取った1つの一次分散片(プライマリ・ピース)siと二次分散片(セカンダリ・ピース)pijとの可逆演算から、全ての一次分散片(プライマリ・ピース)siを再現することができる。仮にHASH値を認識番号とした単に二次分散片(セカンダリ・ピース)pijしか分配されていないグラフの参加ノードにアクセスしても、再生に必要な情報が集まらない。
【0138】
「静止データ」は、起点や終点といった概念ではなく、対象となるファイルを共有している通信端末2-m(本実施形態では、「部外者ノード2-6~2-8」)が存在する。全く同じファイルを共有しているかどうかの判断は、まず、元データのHASH値を生成し、これを交換することで、同一性の確認をとる。部外者ノード2-6~2-8の数(もしくは最低でも3)によって、分割数を決定し、これを共有する。分散ン―ド2-1は、HASH値を認識番号として共有する部外者ノード2-6~2-8を含めた参加ノードをグラフで定義し、二次分散片(セカンダリ・ピース)pijを参加ノードに対して分散配布する。終点となる復元ノード2-2は、この一次分散片(プライマリ・ピース)siの認識票から、元のファイルのHASH値の知識を得る。終点となる復元ノード2-2は、このHASH値を認識番号としたグラフの参加ノードなので、二次分散片(セカンダリ・ピース)pijを収集することができる。終点となる復元ノード2-2は、直接受け取った1つの一次分散片(プライマリ・ピース)siと二次分散片(セカンダリ・ピース)pijとの可逆演算から、全一次分散片(プライマリ・ピース)siを復元することができるが、仮にHASH値を認識番号としたグラフの参加ノードにアクセスしても、復元に必要な情報が集まらない。
【0139】
図10は、実施形態2に係る分散片の搬送の説明図である。
【0140】
図10に示すように、分散ノード2-1は、本出願人が発明したHYDRA0のように黒で描かれた既知の安全な経路(プライベートネットワークN1)に一次分散片(プライマリ・ピース)s
iをストライピングして高速に搬送する。分散ノード2-1は、網線で描かれた安全性が確認できていない経路(公開ネットワークN2)で、二次分散片(セカンダリ・ピース)p
ijを搬送する。既知の安全な経路(プライベートネットワーク)N1のリソースが不足している場合、3つの一次分散片(プライマリ・ピース)s
iのうちの1つのみ搬送して、その他の搬送を実行しなくても、安全に高速搬送ができ、なお、安全が確認できていない経路(公開ネットワークN2)上で、少なくとも二系統が確立できていれば、第三系統を冗長データとして復号が可能である。
【0141】
以上説明したように、本実施形態に係る秘密分散システム1によれば、実施形態1に係る秘密分散システム1による効果に加え、一次分散片(プライマリ・ピース)siと二次分散片(セカンダリ・ピース)pijとを送信する経路(ネットワークN)を、その安全性に応じて変更することにより、安全な経路(プライベートネットワークN1)のリソースを有効に使うことができる。
[実施形態3]
【0142】
次に、本発明の実施形態3に係る秘密分散システムの構成について図面を参照しつつ説明する。なお、実施形態1及び2に係る秘密分散システムと同様の構成については、同一の符号を付し、その説明を省略する。
【0143】
従来、ネットワーク通信のセキュリティは、安全な領域(内)とそうでない領域(外)という境界線で区別し、外からの内への浸食を防ぐことで安全を担保してきた。
【0144】
今日広く利用されている通信ネットワークは、インターネットであり、ローカルエリアネットワークを内とし、ワイドエリアネットワークを外という領域で区切ることは可能であるが、安全という概念との相関性が無い。すなわち、インターネットプロトコルを使って通信する相手は安全ではない。なりすました端末かもしれなければ、パケットを中継する際に通信内容を傍受されているかもしれない。いかなる端末も信用してはならない、信用できないという前提で通信のセキュリティを担保する。これをゼロトラスト通信という。
【0145】
本実施形態に係る秘密分散システム1は、インターネット上でゼロトラスト通信を実現し、セキュリティに関する考え方を革新する。分散ノード2-1は、元データXを難読化の上で分割した一次分散片fnと、この一次分散片fnから生成する二次分散片Pijと、に分散する。これらの一次分散片fnと二次分散片Pijとをそれぞれ別の通信端末2-mを介した経路に配信すれば、これらの経路上に存在する通信端末2-mに元データXを露出することなく通信することが実現できる。
【0146】
上記で説明したゼロトラスト前提でファイル転送を安全に実行する方法は、元データFの発信元の通信端末2-mと受信先の通信端末2-mとの二点間のネットワークN上に流通する全てのパケットを収集して分析することができれば、元データFを再構築することができる。分散ノード2-1は、元データFを圧縮難読化してビット文字列fを生成した上で等分にn分割して一次分散片fnを生成する。分散ノード2-1は、この一次分散片fnから二次分散片Pijを排他的論理和のような可逆計算を用いて生成する。したがって、これらの二次分散片Pijを全て集めても一次分散片fnを循環参照することになり、提示された一次分散片fnが元データXから生成された一次分散片fnであることの確証にはなるが、元の一次分散片fnを決定することはない。
【0147】
一次分散片fnを二次分散片Pijで記述すると、下記の数13に示す数式のようになる(ここではn=3で例を挙げる。)。
【0148】
【0149】
循環参照解なので、元データXを決定する上で少なくとも一つの一次分散片fnが必要となる。
【0150】
上記の性質を利用して、不完全な情報を配信して、メンバーに限定して元データを構築する仕組みをゼロナレッジ通信として実装が可能である。例えば、メンバーはあらかじめ、乱数列などからなるメンバーファイルを持っていることを前提とする。
【0151】
図11は、実施形態3に係る秘密分散の説明図である。
【0152】
図11に示すように、分散ノード2-1は、メンバー間で共有したい元データであるオリジナルデータファイルFを圧縮難読化した上で2等分する。分散ノード2-1は、これらを一次分散片f
1、f
2とし、メンバーファイルMを先頭から一次分散片f
1、f
2とデータサイズを揃えて切り捨てた一次分散片mを作成する。分散ノード2-1は、下記の数14に示す数式に従って、これらの一次分散片f
1、f
2、mから二次分散片P
2、P
4、P
5を生成し配信する。
【0153】
【0154】
以上説明したように、本実施形態に係る秘密分散システム1によれば、実施形態1及び2に係る秘密分散システム1による効果に加え、上記でネットワークN上に露出配信された分散片は、元データであるオリジナルデータファイルFの分散片の真正性を確認する事には十部であるが、元データXであるオリジナルデータファイルFの分散片を再構築するためにはメンバーファイルMが必要となり、不完全なデータの交換でセキュアな通信が実現できる。
【0155】
なお、本発明は、上記の実施形態に限定されず、種々の変形、応用が可能である。以下、本発明に適用可能な上記の実施形態の変形態様について、説明する。
【0156】
上記の実施形態において、一次分散片P1iから可逆的に生成された二次分散片Q2jkのみを利用して、三次以上の高次の分散片を生成するようにしてもよい。具体的に、分散ノード2-1の制御部23-1は、三次以上の高次の分散片を二次以上の分散片を利用して、次数を跨いで高次の分散片を生成するようにしてもよい。また、明示的に区別することで、復元することなく、内容証明ができるようにしてもよい。
【0157】
上記の実施形態において、制御部23-mのCPUが実行するプログラムは、予めROM等に記憶されていた。しかしながら、本発明は、これに限定されず、上述の処理を実行させるためのプログラムを、既存の汎用コンピュータに適用することで、上記の実施形態に係る通信端末(ノード)2-mとして機能させてもよい。
【0158】
このようなプログラムの提供方法は任意であり、例えばコンピュータが読取可能な記録媒体(フレキシブルディスク、CD(Compact Disc)-ROM、DVD(Digital Versatile Disc)-ROM等)に格納して配布してもよいし、インターネット等のネットワーク上のストレージにプログラムを格納しておき、これをダウンロードさせることにより提供してもよい。
【0159】
また、上記の処理をOSとアプリケーションプログラムとの分担、又はOSとアプリケーションプログラムとの協働によって実行する場合には、アプリケーションプログラムのみを記録媒体やストレージに格納してもよい。また、搬送波にプログラムを重畳し、ネットワークを介して配信することも可能である。例えば、ネットワーク上の掲示板(BBS:Bulletin Board System)に上記プログラムを掲示し、ネットワークを介してプログラムを配信してもよい。そして、このプログラムを起動し、OSの制御下で、他のアプリケーションプログラムと同様に実行することにより、上記の処理を実行できるように構成してもよい。
【0160】
なお、本発明は、本発明の広義の精神と範囲を逸脱することなく、様々な実施の形態及び変形が可能とされるものである。また、上述した実施の形態は、本発明の一実施例を説明するためのものであり、本発明の範囲を限定するものではない。
【0161】
本出願は、2020年8月17日に出願された日本国特許出願2020-137680に基づく。本明細書中に日本国特許出願2020-137680の明細書、特許請求の範囲、図面全体を参照として取り込むものとする。
【符号の説明】
【0162】
1 秘密分散システム(通信システム)
2-m 通信端末(ノード)
2-1 分散ノード(分散端末)
2-2 復元ノード(復元端末)
2-3~2-5 関係者ノード(関係者端末)
2-6~2-8 部外者ノード(部外者端末)
21-m 通信部
22-m 記憶部
23-m 制御部