(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-08-25
(45)【発行日】2023-09-04
(54)【発明の名称】ワンタイムパッドを使用した安全なコンテンツルーティング
(51)【国際特許分類】
G06F 21/60 20130101AFI20230828BHJP
H04L 9/32 20060101ALI20230828BHJP
【FI】
G06F21/60 360
H04L9/32 200A
(21)【出願番号】P 2020531497
(86)(22)【出願日】2018-12-04
(86)【国際出願番号】 IL2018051331
(87)【国際公開番号】W WO2019111254
(87)【国際公開日】2019-06-13
【審査請求日】2021-12-03
(32)【優先日】2017-12-05
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】520184790
【氏名又は名称】ディフェンダー サイバー テクノロジーズ リミテッド
(74)【代理人】
【識別番号】100114775
【氏名又は名称】高岡 亮一
(74)【代理人】
【識別番号】100121511
【氏名又は名称】小田 直
(74)【代理人】
【識別番号】100202751
【氏名又は名称】岩堀 明代
(74)【代理人】
【識別番号】100208580
【氏名又は名称】三好 玲奈
(74)【代理人】
【識別番号】100191086
【氏名又は名称】高橋 香元
(72)【発明者】
【氏名】ソロモン,マリア
(72)【発明者】
【氏名】ソロモン,ドロン
【審査官】小林 秀和
(56)【参考文献】
【文献】特開2009-159220(JP,A)
【文献】米国特許出願公開第2014/0337615(US,A1)
【文献】特開2014-078875(JP,A)
【文献】国際公開第2015/157720(WO,A2)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 21/60
H04L 9/32
(57)【特許請求の範囲】
【請求項1】
方法であって、
コンピュータネットワークの第1のユーザから、第1のワンタイムパッド(OTP)ハブによって、前記第1のユーザに関連付けられたOTPで暗号化された通信を受信することであって、前記通信は第2のユーザを対象とす
ることと、
前記第1のハブによって、前記第2のユーザに関連付けられたOTPで前記通信を暗号化することと、
前記第1のハブによって、前記通信を第2のハブに伝送することと、
前記第2のハブによって、前記第1のユーザに関連付けられたOTPで前記通信を復号化することと、
前記通信を前記第2のユーザに伝送することと、
を含む、方法。
【請求項2】
前記第2のユーザは、前記第2のユーザに関連付けられたOTPで前記通信をさらに復号化する、請求項
1に記載の方法。
【請求項3】
前記ネットワークは、N人の前記ユーザおよび複数の前記ハブを含む、請求項
1に記載の方法。
【請求項4】
前記ハブのそれぞれは、1人のユーザと前記ユーザ全員の間に関連付けられたOTPを記憶する、請求項
1に記載の方法。
【請求項5】
前記ユーザおよび前記ハブの少なくとも一部は、前記ハブのそれぞれおよびそれらに関連付けられた前記ユーザによって記憶された前記OTP間の前記関連付けを識別するルーティングテーブルを記憶する、請求項
4に記載の方法。
【請求項6】
前記受信および前記伝送のうちの少なくとも一部は、少なくとも部分的に、前記ルーティングテーブルに基づく、請求項
5に記載の方法。
【請求項7】
前記ルーティングテーブルは、OTP使用メトリックを考慮に入れる、請求項
6に記載の方法。
【請求項8】
前記ユーザのそれぞれは、前記ユーザに関連付けられた第2のOTPを記憶し、前記第2のOTPは、前記ユーザの2段階ユーザ認証に関連して使用するように構成される、請求項
1に記載の方法。
【請求項9】
前記第2のOTPは、前記ユーザの2段階ユーザ認証に関連して使用するように構成される、請求項
8に記載の方法。
【請求項10】
ユニバーサルハッシングに少なくとも部分的に基づくユーザ認証をさらに含む、請求項
1に記載の方法。
【請求項11】
前記OTPの少なくとも一部は、誤りデータを使用してその少なくとも一部を上書きすることによって処分される、請求項
1に記載の方法。
【請求項12】
前記ハブの少なくとも一部は、乱数生成器(RNG)、および前記ユーザにOTPを分配するように構成された自動預け払い機のうちの少なくとも1つをさらに含む、請求項
1に記載の方法。
【請求項13】
前記OTPは、量子鍵分配(QKD)通信、および物理的に安全な分配手段のうちの少なくとも1つを使用して自動預け払い機に分配される、請求項
11に記載の方法。
【請求項14】
システムであって、
少なくとも1つのハードウェアプロセッサと、
プログラムコードが共に具体化された非一時的なコンピュータ可読記憶媒体であって、前記プログラムコードは、請求項
1~
13のいずれか一項に記載の方法を実行するために前記少なくとも1つのハードウェアプロセッサによって実行可能である、非一時的なコンピュータ可読記憶媒体と、
を備える、システム。
【請求項15】
プログラムコードが共に具体化された非一時的なコンピュータ可読記憶媒体
を備えるコンピュータプログラム製品であって、前記プログラムコードが、請求項
1~
13のいずれか一項に記載の方法を実行するために少なくとも1つのハードウェアプロセッサによって実行可能である
、コンピュータプログラム製品。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願の相互参照
本出願は、2017年12月5日に提出された「Methods and Systems for Implementing A Perfect Security Network Using One-Time Pads」と題する米国仮特許出願第62/594,550号の優先権の利益を主張するものであり、その全体が参照によって本明細書に組み込まれる。
【背景技術】
【0002】
本発明は、データ暗号化の分野に関する。
【0003】
暗号法では、ワンタイムパッド(OTP)は解読できない暗号化技術であるが、送信されるメッセージと同じサイズ以上のワンタイムの事前共有鍵を使用する必要がある。本技術では、平文はランダムな秘密鍵(ワンタイムパッドとも呼ばれる)とペアにされる。次に、平文の各ビットまたは文字は、いくつかの関数のうちの1つを使用して、パッドからの対応するビットまたは文字と組み合わせることによって暗号化される。
【0004】
鍵が真にランダムで、全体または一部が再利用されず、秘密に保たれている場合、パッドのコピーなしに暗号文を解読することは、証明できるように数学的には不可能である。OTP暗号化は、暗号化されたテキストに情報を追加せず、ランダムノイズのみを追加するため、完全な、解読できない暗号化方法を表す。
【0005】
ただし、ワンタイムパッド暗号法は、いくつかの実装上の困難に直面している。まず、少なくともメッセージと同じ長さでなければならないOTP素材の安全な生成、交換、および処分を達成することは困難である。さらに、第三者によるパッドの傍受、コピー、またはフォレンジックリカバリの可能性は、方法の安全性を完全に危険にさらす。
【0006】
関連技術の前述の例およびそれに関連する制限は、例示的であり、排他的ではないことが意図されている。関連技術の他の制限は、本明細書を読み、図面を検討すれば、当業者には明らかになるであろう。
【発明の概要】
【0007】
以下の実施形態およびその態様は、範囲を限定するのではなく、典型的かつ例示的であることを意味するシステム、ツール、および方法と併せて説明および例示される。
【0008】
一実施形態では、コンピュータネットワークの第1のユーザから、ワンタイムパッド(OTP)ハブによって、第1のユーザに関連付けられたOTPで暗号化された通信を受信することであって、その通信が第2のユーザを対象としている、受信することと、ハブによって、第2のユーザに関連付けられたOTPで通信を暗号化することと、ハブによって、第1のユーザに関連付けられたOTPで通信を復号化することと、通信を第2のユーザに配信することと、を含む方法が提供される。
【0009】
一実施形態では、少なくとも1つのハードウェアプロセッサと、プログラムコードが共に具体化された非一時的なコンピュータ可読記憶媒体であって、プログラムコードが、本方法を実行するために少なくとも1つのハードウェアプロセッサによって実行可能である、非一時的なコンピュータ可読記憶媒体と、を備えるシステムも提供される。
【0010】
一実施形態では、プログラムコードが共に具体化された非一時的なコンピュータ可読記憶媒体であって、プログラムコードが、本方法を実行する少なくとも1つのハードウェアプロセッサによって実行可能である、非一時的なコンピュータ可読記憶媒体を備えるコンピュータプログラム製品がさらに提供される。
【0011】
いくつかの実施形態では、第2のユーザは、第2のユーザに関連付けられたOTPで通信をさらに復号化する。
【0012】
いくつかの実施形態では、ネットワークは、複数のユーザを含み、ユーザのそれぞれは、そのユーザに関連付けられたOTPのみを記憶する。
【0013】
いくつかの実施形態では、ハブは、複数のユーザのそれぞれに関連付けられたOTPを記憶する。
【0014】
一実施形態では、一連のハブ内の第1のワンタイムパッド(OTP)ハブによって、コンピュータネットワークの第1のユーザから、第1のユーザに関連付けられたOTPで暗号化された通信を受信することであって、その通信が第2のユーザを対象としている、受信することと、第1のハブによって、第1のハブ間OTPで通信を暗号化することと、第1のハブによって、第1のユーザに関連付けられたOTPで通信を復号化することと、一連の1つ以上のハブを介して通信を転送することであって、ハブのペア間の各転送が、(i)ペアに関連付けられたハブ間OTPで通信を暗号化すること、および(ii)以前のペアに関連付けられたハブ間OTPで通信を復号化すること、を含む、転送することと、一連のハブの最後によって、第2のユーザに関連付けられたOTPで通信を暗号化することと、一連のハブの最後によって、以前のペアに関連付けられたハブ間OTPで通信を復号化することと、通信を第2のユーザに伝送することと、を含む方法が提供される。
【0015】
一実施形態では、少なくとも1つのハードウェアプロセッサと、プログラムコードが共に具体化された非一時的なコンピュータ可読記憶媒体であって、プログラムコードが、本方法を実行するために少なくとも1つのハードウェアプロセッサによって実行可能である、非一時的なコンピュータ可読記憶媒体と、を備えるシステムも提供される。
【0016】
一実施形態では、プログラムコードが共に具体化された非一時的なコンピュータ可読記憶媒体であって、プログラムコードが、本方法を実行する少なくとも1つのハードウェアプロセッサによって実行可能である、非一時的なコンピュータ可読記憶媒体を備えるコンピュータプログラム製品がさらに提供される。
【0017】
いくつかの実施形態では、第2のユーザは、第2のユーザに関連付けられたOTPで通信をさらに復号化する。
【0018】
いくつかの実施形態では、ネットワークは、N人のユーザおよび複数のハブを含む。
【0019】
いくつかの実施形態では、ユーザのそれぞれが、そのユーザに関連付けられたOTPのみを記憶する。
【0020】
いくつかの実施形態では、ハブのそれぞれは、一人のユーザとユーザ全員の間に関連付けられたOTPを記憶する。
【0021】
いくつかの実施形態では、ユーザおよびハブの少なくとも一部は、ハブのそれぞれおよびそれらに関連付けられたユーザによって記憶されるOTP間の関連付けを識別するルーティングテーブルを記憶する。
【0022】
いくつかの実施形態では、受信、転送、および伝送の少なくとも一部は、少なくとも部分的に、ルーティングテーブルに基づく。
【0023】
いくつかの実施形態では、ルーティングテーブルは、OTP使用メトリックを考慮に入れる。
【0024】
いくつかの実施形態では、ネットワークは、2つ以上のネットワークを含む。
【0025】
一実施形態では、コンピュータネットワークの第1のユーザから、第1のワンタイムパッド(OTP)ハブによって、第1のユーザに関連付けられたOTPで暗号化された通信を受信することであって、その通信が第2のユーザを対象としている、受信することと、第1のハブによって、第2のユーザに関連付けられたOTPで通信を暗号化することと、第1のハブによって、通信を第2のハブに伝送することと、第2のハブによって、第1のユーザに関連付けられたOTPで通信を復号化することと、通信を第2のユーザに伝送することと、を含む方法が提供される。
【0026】
一実施形態では、少なくとも1つのハードウェアプロセッサと、プログラムコードが共に具体化された非一時的なコンピュータ可読記憶媒体であって、プログラムコードが、本方法を実行するために少なくとも1つのハードウェアプロセッサによって実行可能である、非一時的なコンピュータ可読記憶媒体と、を備えるシステムも提供される。
【0027】
一実施形態では、プログラムコードが共に具体化された非一時的なコンピュータ可読記憶媒体であって、プログラムコードが、本方法を実行する少なくとも1つのハードウェアプロセッサによって実行可能である、非一時的なコンピュータ可読記憶媒体を備えるコンピュータプログラム製品がさらに提供される。
【0028】
いくつかの実施形態では、第2のユーザは、第2のユーザに関連付けられたOTPで通信をさらに復号化する。
【0029】
いくつかの実施形態では、ネットワークは、N人のユーザおよび複数のハブを含む。
【0030】
いくつかの実施形態では、ハブのそれぞれは、一人のユーザとユーザ全員の間に関連付けられたOTPを記憶する。
【0031】
いくつかの実施形態では、ユーザおよびハブの少なくとも一部は、ハブのそれぞれおよびそれらに関連付けられたユーザによって記憶されるOTP間の関連付けを識別するルーティングテーブルを記憶する。
【0032】
一部の実施形態では、受信および伝送の少なくとも一部は、少なくとも部分的にルーティングテーブルに基づく。
【0033】
いくつかの実施形態では、ルーティングテーブルは、OTP使用メトリックを考慮に入れる。
【0034】
いくつかの実施形態では、ユーザのそれぞれは、そのユーザに関連付けられた第2のOTPを記憶し、第2のOTPは、ユーザの2段階ユーザ認証に関連して使用するように構成される。
【0035】
いくつかの実施形態では、第2のOTPは、ユーザの2段階ユーザ認証に関連して使用するように構成される。
【0036】
いくつかの実施形態では、方法はさらに、システムおよびコンピュータプログラム製品の場合、少なくとも部分的にユニバーサルハッシングに基づくユーザ認証を提供するためにさらに実行可能である命令を含む。
【0037】
いくつかの実施形態では、本発明のOTPは、誤りデータを使用してその少なくとも一部を上書きすることによって処分される。
【0038】
いくつかの実施形態では、ハブの少なくとも一部は、乱数生成器(RNG)、およびユーザにOTPを分配するように構成された自動預け払い機のうちの少なくとも1つをさらに含む。
【0039】
いくつかの実施形態では、OTPは、量子鍵分配(QKD)通信、および物理的に安全な分配手段のうちの少なくとも1つを使用して自動預け払い機に分配される。
【0040】
上記の典型的な態様および実施形態に加えて、さらなる態様および実施形態は、図面を参照することによって、および以下の詳細な説明を検討することによって明らかになるであろう。
【図面の簡単な説明】
【0041】
典型的な実施形態は、参照図面に例示されている。図面に示されている構成要素の寸法および特徴は、一般に、提示の便宜と明確さのために選択されており、必ずしも一定の縮尺で示されているわけではない。図面を以下に列挙する。
【
図1A】一実施形態による、典型的な集中型OTP暗号化スキームを例示する。
【
図1B】一実施形態による、OTPハブが2つ以上の物理デバイスに実装される典型的な集中型OTP暗号化スキームを例示する。
【
図1C】一実施形態による、2つ以上の別個のOTPハブを備える典型的な集中型OTP暗号化スキームを例示する。
【
図2A-2B】一実施形態による、複数のエンドユーザおよびOTPハブを有するネットワークを例示する。
【
図3】一実施形態による、ネットワーククラスタ間のメッセージングを例示する。
【発明を実施するための形態】
【0042】
本明細書で開示されるのは、ワンタイムパッド(OTP)暗号法を使用して、2人以上のユーザ間でメッセージを安全にルーティングするためのシステム、方法、およびコンピュータプログラム製品である。
【0043】
上記のように、OTP暗号法は通常、実用上の大きな困難に直面している。まず、絶対的な暗号法の安定性を提供するために、OTPは、真にランダムな暗号化鍵を持ち、暗号化されるメッセージとサイズが等しく、再利用されず、使用後すぐに適切に処分される必要がある。現在の乱数生成器は、OTP暗号法で使用するのに十分な品質のランダムな鍵素材を生成できる。さらに、実際問題として、現代のコンピュータシステムは、必要な量のランダム鍵データを記憶し、取り扱うことができる。
【0044】
ただし、OTPベースの暗号法システムの安全性は、第三者によるパッドの傍受とコピーによって方法の安全性が危険にさらされるため、引き続き安全なパッドの取り扱いと分配に依存している。この問題は、ネットワーク内の通信者の数が増えるとさらに悪化する。なぜなら、送信者/受信者の各ペアは、それらの2者間でのみ共有される固有のパッドを維持する必要があるからである。ネットワークユーザの数が増えると、必要な固有のパッドの数が2の累乗で増えるため、ある時点で、各ネットワーク構成要素が保持する必要のあるパッドの数を管理できなくなる。
【0045】
したがって、いくつかの実施形態では、本発明は、OTPハブが複数のネットワークユーザ間で暗号化されたメッセージをルーティングすることを担う、集中型OTP暗号化スキームを提供する。いくつかの実施形態では、本発明のOTP暗号化スキームは、モジュラ加算、単射もしくは1対1の変換関数であるテーブル交換グループ、および/または他の準同型関数もしくは準同型暗号化関数を使用して、平文の各ビットまたは文字をパッドからの対応するビットまたは文字と組み合わせることによって暗号化することを含む。
【0046】
いくつかの典型的な実施形態では、本明細書に記載のOTP暗号化スキームは、OTP暗号化ビデオ/オーディオ会議、電子メール交換、ファイル交換、多数制デジタル電話音声通信、ゲーミングなどを可能にするために、複数の送信者/受信者エンドユーザ間のOTP暗号化通信を可能にするように利用することができる。他の典型的な実施形態では、本明細書に記載のOTP暗号化スキームは、SMS、インスタントメッセージなどのユニキャスト、マルチキャスト、およびブロードキャストメッセージを含むがこれらに限定されないプッシュおよびプルネットワーク通信技術を利用してメッセージを交換するために使用できる。さらに他の典型的な実施形態では、そのような通信は、有線および無線ネットワークを介して、ならびに任意の数および任意の種類のゲートウェイおよびプロキシを介して可能にされ得る。いくつかの実施形態では、様々な場所および地域に地理的に分散された任意の数のOTPハブがあり得る。いくつかの実施形態では、任意の種類の通信チャネルは、開示された発明、例えば、エンドツーエンド通信トンネル、パブリッシュ/サブスクライブプロトコルベースの通信、TCP/UDPベースの通信、および非TCP通信を使用して、暗号化してもよい。開示された暗号化スキームは、TLS/SSLなどの他のデータ保護技術に加えて使用することもできる。
【0047】
いくつかの実施形態では、本発明のOTPハブは、ハードウェアのみ、ソフトウェアのみ、またはハードウェアとソフトウェアの両方の組み合わせで実装されてもよい。例えば、OTPハブは、パーソナルコンピュータ、タブレット、スマートフォン、埋め込みデバイス、無線モジュールと結合された手持ち式デバイス、隠されたデバイス、電子回路を有するデバイスなどであり得る。いくつかの実施形態では、OTPハブは、1つ以上のハードウェアプロセッサ、および非一時的なコンピュータ可読記憶デバイスを含んでもよい。様々な実施形態では、OTPハブは、1つ以上の専用ハードウェアデバイス、1つ以上のソフトウェアモジュールを含んでもよく、かつ/または既存のデバイスへの追加もしくは拡張を形成してもよい。いくつかの実施形態では、1つ以上の専用ハードウェアデバイスは、異なる場所に配置されてもよい。OTPハブの記憶媒体は、1つ以上のハードウェアプロセッサを動作させるように構成されたソフトウェア命令または構成要素をその上で符号化していてもよい。いくつかの実施形態では、ソフトウェア構成要素は、一般的なシステムタスク(例えば、メモリ管理、記憶デバイス制御、電力管理など)を制御および管理するための様々なソフトウェア構成要素および/またはドライバを含み、様々なハードウェアとソフトウェア構成要素間の通信を容易にするオペレーティングシステムを含んでもよい。いくつかの実施形態では、プログラム命令は、例えば、暗号化/復号化モジュール、通信モジュール、およびユーザインターフェースモジュールを含み得る1つ以上のソフトウェアモジュールにセグメント化される。
【0048】
いくつかの実施形態では、OTPハブは、ユーザの各ペア間の暗号化/復号化の仲介者として機能するように、各ネットワークエンドユーザのすべての固有のパッドのコピーを保持し、それにより各ユーザが潜在的な各受信者のために異なるパッドを保持する必要をなくす。いくつかの実施形態では、集中型OTPハブは、2つ以上の別個のハードウェアデバイスを含み、単一のハードウェアデバイスが、メッセージを復号化するのに必要なすべてのパッドを保持することはない。いくつかの実施形態では、本発明の集中型OTP暗号化スキームは、各メッセージが、常にOTP暗号化の少なくとも1層の対象となり続けることを保証するように構成されてもよい。
【0049】
いくつかの実施形態では、OTPハブは、ユーザの各ペア間の暗号化/復号化の仲介者として機能するように、各ネットワークエンドユーザのすべての固有のパッドのコピーを保持し、それにより各ユーザが潜在的な各受信者のために異なるパッドを保持する必要をなくす。
【0050】
いくつかの実施形態では、OTPハブにおけるパッドの分配および保持を集中化することにより、本発明はまた、複数のパッドをエンドユーザに分配する必要性を回避し、それによって潜在的にパッドを敵意のある悪用にさらし、全体的なシステムの安全性を危うくすることを回避する。したがって、システム全体のパッドは、限られた数のOTPハブにのみ分配する必要があり、これは、安全な電子的および/または物理的な分配によって取り扱われ得る。
【0051】
いくつかの実施形態では、本発明は、ユーザのクラスタおよび1つ以上のOTPハブを備えるネットワークであって、1つ以上のOTPハブがネットワーク内のユーザの各ペア間でメッセージを安全にルーティングするように構成されている、ネットワークを提供する。いくつかの実施形態では、本発明のネットワークは、ハブの故障または誤動作の場合において冗長性を保証するために、各送信者/受信者ペア間に複数の可能な暗号化メッセージングルートを提供する。
【0052】
いくつかの実施形態では、本発明は、リモートネットワーク内の1つ以上のユーザのクラスタ間でのメッセージの安全なルーティングをさらに提供する。
【0053】
いくつかの実施形態では、本発明はさらに、OTP使用メトリックおよび/または追加のルーティングパラメータの最小化に基づいて、複数のユーザおよび/またはネットワーク間のOTPベースのメッセージルーティングを最適化することを提供する。
【0054】
いくつかの実施形態では、本発明はさらに、乱数生成、メッセージ認証、エンドユーザへの安全なOTP鍵分配、および/または安全なOTP鍵処分のうちの1つ以上を提供する。
【0055】
したがって、本発明の潜在的な利点は、安全なパッドの取り扱いおよび分配を保証しながら、ローカルおよび/またはリモートのマルチユーザ環境用に最適化された実用的な実世界のOTPベースの暗号化スキームを提供することである。
【0056】
図1Aは、一実施形態による、典型的な集中型OTP暗号化スキームを例示する。OTPハブAは、各ネットワークユーザ、例えば、送信者1と受信者2に関連付けられた対応するパッドを保持する。OTPハブAは、送信者パッドで暗号化された送信者1からのメッセージを受信する。次に、OTPハブAは、受信者パッドでメッセージを暗号化し、送信者パッドを削除し、いずれの場合も、ハブAが保持する対応するパッドを使用し、メッセージを受信者に伝送する。したがって、送信者1と受信者2は、各々がそれぞれのパッドの両方を保持する必要なく、ハブAを介して通信できる。
【0057】
いくつかの実施形態では、OTPハブAは、最初にメッセージを受信者パッドで暗号化し、その時のみ、送信者パッドを削除するように構成され、メッセージがネットワーク構成要素によって非暗号化状態で保持されないことを保証するようにすることができる。
【0058】
上記のように、いくつかの実施形態では、OTPハブAなどの本発明のOTPハブは、サーバ上に実装されてもよい。いくつかの実施形態では、そのようなサーバは、1つ以上の物理デバイス、ならびに/または2つ以上のハードウェアプロセッサおよび関連付けられた記憶媒体を有する分配システムを含んでもよい。いくつかの実施形態では、1つ以上のOTPハブが単一のハードウェアデバイス上に実装されてもよく、かつ/または1つ以上のOTPハブが2つ以上の別個のハードウェアデバイスとして実装されてもよく、どの単一のハードウェアデバイスもメッセージを復号化するために必要なすべてのパッドを保持しない。
【0059】
図1Bは、OTPハブAが2つ以上の別個のハードウェアデバイス、例えば、部分A1および部分A2に実装され、各部分がエンドユーザパッドの異なる組を保持する、典型的な集中型OTP暗号化スキームを例示する。例えば、部分A1は、送信者パッドで暗号化されたメッセージを受信し、受信者パッドでメッセージを暗号化することができる。次に、メッセージは第2の部分A2に伝送され、そこで送信者パッドが削除され、メッセージは受信者パッドのみで受信者に伝送される。この構成では、メッセージの復号化に必要なすべてのパッドをどの単一の物理デバイスも保持しないため、安全性が向上する。さらに、上記のように、メッセージ自体は、別個のハードウェアデバイスを介して転送されるときに、少なくとも1つのパッドで常に暗号化されたままになる。
【0060】
図1Cは、2つ以上の別個のOTPハブを含む典型的な集中型OTP暗号化スキームを例示する。この構成では、メッセージは複数のハブ、例えば、ハブAおよびBを介して、ルーティングされてもよい。各ハブ間ホップは、ハブ間パッドでメッセージを暗号化し、その後にのみ、以前のパッドを削除することを伴う。例えば、ハブAからハブBへのホップは、ABペアに固有のハブ間パッドでメッセージを暗号化し、その後にのみ、送信者パッドを削除することを伴う。メッセージがチェーンの最後のハブ(この場合はハブB)に到達すると、メッセージは受信者パッドで暗号化され、その後、最新のハブ間パッドが削除される。
【0061】
いくつかの実施形態では、N人のエンドユーザを含む集中型OTP暗号化スキームは、それぞれが1人のユーザとN人のユーザの間に関連付けられた特定の組のエンドユーザパッドを備えた複数のOTPハブを含んでもよい。マルチハブネットワークは、ユーザの各ペア間に複数のルーティング経路を提供することができ、従って、例えば、ハブの故障の場合において冗長性を提供し、かつ/または例えば、ハブパッド使用を最適化するための最良のルートの選択をもたらす。いくつかの実施形態では、1つ以上のルーティングアルゴリズムを実装して、適切なおよび/または最適化されたルートを選択してもよい。
【0062】
図2Aは、5人のエンドユーザ1~5および5つのハブA~Eを有するネットワークを例示する。各ハブには2つのパッドが設けられ、これは、いくつかのスキームに従って、例えば、循環シフト配置で、分配され得る。例えば、ハブAにはユーザ1および2用のパッド、ハブBにはユーザ2および3用、などであってもよい。したがって、例えばユーザ1からユーザ3にメッセージを送信する場合、ユーザ1は、例えば以下のように、いくつかの可能なルートを使用してメッセージを送信してもよい。
(i)ユーザ1はハブBにメッセージを送信することができ、ハブBは、ユーザ3のパッドを適用してから、メッセージをハブAに伝送し、ハブAは、ユーザ1のパッドを削除して、ユーザ3にメッセージを伝送する。
(ii)ユーザ1は、ハブCにメッセージを送信することができ、ハブCは、ユーザ3のパッドを適用してから、ハブEにメッセージを伝送し、ハブEは、ユーザ1のパッドを削除して、メッセージをユーザ3に伝送する。
【0063】
いくつかの実施形態では、同じパッドを保持する異なるハブを有することを回避するために、同じユーザのためのパッドを保持する2つ以上のハブに、ユーザのパッドの異なるバージョンが備えられてもよい。
【0064】
図2Bは、
図2Aに示されているものと同様の、5人のエンドユーザ1~5および5つのハブA~Eを有するネットワークを例示する。しかしながら、この配置では、各ハブは3つのパッドを備えている。したがって、ユーザ1からユーザ3にメッセージを送信する場合、ユーザ1は、例えば、以下のように、より多くの可能なルートを使用してメッセージを送信してもよい。
(i)ユーザ1はハブBにメッセージを送信することができ、ハブBは、ユーザ3のパッドを適用してから、メッセージをハブAに伝送し、ハブAは、ユーザ1のパッドを削除して、ユーザ3にメッセージを伝送する。
(ii)ユーザ1はハブCにメッセージを送信することができ、ハブCは、ユーザ3のパッドを適用してから、ハブDにメッセージを伝送し、ハブDは、ユーザ1のパッドを削除して、メッセージをユーザ3に伝送する。
(iii)ユーザ1はメッセージをハブAに送信することができ、ハブAは、ユーザ3のパッドを適用してから、ハブEにメッセージを伝送し、ハブEは、ユーザ1のパッドを削除して、メッセージをユーザ3に伝送する。
【0065】
いくつかの実施形態では、ネットワーク内のハブの数および/またはハブごとのパッドの数を増やすことにより、ネットワーク内のルーティングオプションの冗長性が高まる。
【0066】
いくつかの実施形態では、本発明の2つ以上の安全なネットワークは、各ネットワーク内の各ハブに共有パッドを提供することにより、ネットワーク間通信を提供してもよい。いくつかの実施形態では、ネットワーク内の各ハブは、複数のハブにわたる共有パッドの重複を回避するために、異なる共有パッドを保持してもよい。共有パッドは、ネットワーク間の接続性のために別個の専用のハブもしくは複数のハブ(例えば、冗長性の目的で)に記憶できるか、または通常のハブによって記憶できる。したがって、
図3に例示するように、第1のネットワークからのメッセージは、第2のネットワークに安全にホップすることができる。したがって、例えば、メッセージは、ネットワークI内のユーザ3からネットワークII内のユーザ6にルーティングされてもよい。メッセージは最初にハブAに送信することができ、そこでネットワーク間パッドがメッセージに適用され得る。次に、メッセージは、例えば、ハブBに送信され、ユーザ3のパッドを削除することができる。ハブBから、メッセージは、ユーザ6のパッドが適用され得るネットワークII内のハブDにホップし、そこから、ネットワーク間パッドが削除され得るハブEにホップすることができる。その後、メッセージはユーザ6に伝送され得る。
【0067】
メッセージルーティングの最適化
いくつかの実施形態では、上述のように、本発明は、ネットワーク内の1つ以上のハブを介しておよび/または1つ以上のリモートネットワークを介して、送信者から受信者への複数のオプションのメッセージルートを備えた通信ネットワークレイアウトを提供する。いくつかの実施形態では、これは、例えば、ハブの故障の場合に冗長性を提供することができる。
【0068】
いくつかの実施形態では、本発明は、限定はしないが、OTP使用メトリックに基づくものを含む、指定された基準に従ってメッセージルーティングを最適化するようにさらに構成されてもよい。いくつかの実施形態では、ネットワーク帯域幅、ネットワーク記憶容量、ネットワーク遅延、OTPハブホップカウント、経路の実際の使用コスト、負荷、MTU(最大伝送単位)、信頼性、および/または通信コストを含む、追加および/または他の最適化基準を使用してもよい。
【0069】
OTPは枯渇リソースであるため、ハブ間(
図2A~
図2B)および/またはネットワーククラスター間(
図3)でのすべての伝送には、1つ以上のOTPの少なくとも一部の使用と枯渇が伴う。したがって、いくつかの実施形態では、最適化されたルート選択は、例えば、ハブおよび/またはネットワーククラスタ間のホップ数を最小化することにより、ルートに沿ったOTP使用を最低限にするように構成される。いくつかの実施形態では、本発明は、最小の総OTP使用メトリックを有する、送信者から受信者へのルートを計算するように構成されてもよい。
【0070】
背景として、コンピュータネットワークの文脈において、メッセージルーティングは、ネットワーク内または複数のネットワークにわたるトラフィックの経路を選択するプロセスである。パケット交換ネットワークでは、ルーティングは通常、さまざまなネットワーク宛先へのルートの記録を維持するルーティングテーブルに基づいてパケットを転送することを伴う。ルーティングテーブル、またはルーティング情報ベース(RIB)は、ルータ、ネットワークにつながれたコンピュータ、またはサーバなどのネットワークノードに記憶されているデータテーブルであり、特定のネットワーク宛先へのルートと、距離、運用コスト、または遅延などの関連するメトリックを列挙する。ルーティングテーブルには、例えば、ネットワーク初期化中の手動エントリに基づいて、ルーティングプロトコルを使用して構築された、そのすぐ近くにあるネットワークのトポロジに関する情報が含まれている。例えば、ルーティングテーブルには、ネットワーク/次のホップの関連付けが含まれている場合があり、これにより、最終宛先への途中の「次のホップ」を表す特定のルータにパケットを送信することによって、特定のネットワーク宛先に最適に到達できることがルータに通知される。場合によっては、初期化中または動的ルーティングプロトコルを介して、1つ以上のリモートネットワークがルーティングテーブルに追加されることがある。
【0071】
しかしながら、今回の場合では、ルーティング最適化メトリックに動的な枯渇リソースが伴うため、静的なルーティングテーブルに基づいてルーティング最適化を決定することはできない。したがって、いくつかの実施形態では、本発明の集中型暗号化スキームは、ルーティングテーブルを生成するように構成され得、OTPハブおよび/またはエンドユーザなどの各ネットワークノードは、それが接続できる他のすべてのネットワークノードに関する情報を収集するように構成され得る。いくつかの実施形態では、各ネットワークノードは、次いで、この情報をルーティングテーブルおよび/またはネットワークマップに独立して組み立てることができる。いくつかの実施形態では、これらの個々のルーティングテーブルに基づいて、各ネットワークノードは、距離ベクトルアルゴリズム(例えば、ベルマンフォードアルゴリズム、ダイクストラのアルゴリズム、ビタビアルゴリズム)、リスト短経路アルゴリズム、経路ベクトルプロトコルなどの、1つ以上の既知の最短経路アルゴリズムを使用して、それ自体から他のすべてのノードへの最小コスト経路を独立して決定することができる。その結果は、現在のノードをルートとするツリーグラフになり得、ルートから他のノードへのツリーを通る経路は、そのノードへの最小コスト経路になる。このツリーは、次いで、現在のノードから他のノードに到達するための最良の次のホップを指定するルーティングテーブルを構築する役割を果たす。
【0072】
いくつかの実施形態では、本発明からの通信ネットワークは、ネットワークまたはその任意の部分におけるルーティングを管理するために使用され得る、集中型メッセージルーティング制御を提供し得る。そのような場合、1つ以上のネットワークノードによって決定されたOTP使用メトリックは、制御機能に通信され得、次いで、その制御機能がルーティング経路を決定し得る。
【0073】
いくつかの実施形態では、最適化されたルートは、パッド使用マトリックのみに基づいて決定され得、ならびに/または帯域幅、ネットワーク遅延、ホップカウント、経路の実際の使用コスト、負荷、MTU(最大伝送ユニット)、信頼性、および/もしくは通信コストを含むがこれらに限定されない複数のパラメータの組み合わせを表すことができる。
【0074】
メッセージ認証
いくつかの実施形態では、本発明は、ネットワークにおけるエンドユーザの確実な識別および認証を提供する。
【0075】
上記のように、OTPベースの暗号化スキームでは、エンドユーザのパッドが悪用され、および/または悪者によって複製され、次いで、ネットワークの実際のユーザになりすますために使用され得るため、ユーザ認証が重要になる。
【0076】
ワンタイムパッド自体はメッセージ認証を提供せず、この認証の欠如は、実世界のアプリケーションで安全性の脅威をもたらす可能性がある。鍵ストリームを用いる単純なXORは、メッセージの整合性に潜在的な脆弱性を生み出し、これは、特に悪用が簡単である。例えば、特定の時点で「ジェーンと私と明日の午後3時30分に会いましょう」という文字列がメッセージに含まれていることを知っている攻撃者は、ワンタイムパッドにアクセスせずに、その内容を「3時30分の集合はキャンセルされたので、家にいてください」などの全く同じ長さの他の内容に置き換える可能性がある。
【0077】
したがって、いくつかの実施形態では、本発明は、ユーザによって記憶され、例えば、元のユーザパッドが悪用された場合にユーザを認証および検証するために使用できるユーザ認証パッドを提供する。
【0078】
例えば、ユーザが本発明のネットワークに参加するとき、ユーザは、例えば、メモリカードまたはディスクオンキーなどの、物理的携帯用メモリデバイス上に提供され得るプライマリ認証ワンタイムパッド(PAOTP)を割り当てられ得る。PAOTPのコピーはまた、ネットワークの1つ以上の集中型OTPハブに保存され得、かつ/または2つ以上のOTPハブの間で分割され得、その結果、各分割が他の部分と異なるようにする。ネットワーク内で初めて通信する場合、例えば、PAOTPの一部を最初の識別および認証に使用できる。最初の認証時に、PAOTPの使用済み部分は、その後、破棄され得る。次に、ユーザは、ネットワークを介した通常の進行中の通信で使用するためのランタイムパッドを受信することができる。その後、PAOTPは、ユーザの2段階認証に将来再び必要になり得る場合に備えて、ユーザが安全な場所に保存してもよい。
【0079】
進行中のランタイムネットワーク通信中に、ランタイムパッドの一部を使用してユーザを識別できる。ただし、場合によっては、より強力な2段階の検証プロセスが必要になる。例えば、ユーザはランタイムユーザパッドを取り消すことを望むかもしれないし、または、ユーザは、例えば疑わしい活動の場合に、そのランタイムパッドを更新/交換するようにネットワークによって要求されるかもしれない。このような場合、POTPを使用してエンドユーザを認証できる。
【0080】
いくつかの実施形態では、ユニバーサルハッシングを追加の認証メカニズムとして使用することもできる。ユニバーサルハッシングメカニズムは、任意の安全性限度までメッセージを認証する手法を提供する(つまり、p>0の場合、十分に大きなハッシュにより、計算上無制限の攻撃者でも偽造が成功する可能性はp未満になることが保証される)。ただし、ユニバーサルハッシングには、暗号化パッドからの追加のランダムデータを使用するという代償がある。
【0081】
乱数生成
いくつかの実施形態では、本発明に関連して使用するためのOTPは、OTPハブ内を含むがこれに限定されない複数の場所、または集中化された場所で生成することができる。
【0082】
いくつかの実施形態では、OTPハブの1つ以上は、大量の真のランダムデータを生成することを担うデバイスおよび/または機能を備えることができる。いくつかの実施形態では、ランダムデータ生成は、例えば、熱雑音などの微視的現象、光電効果、他の量子現象、カオス力学、および/または他の任意の同様のプロセスに基づく、1つ以上の物理プロセスに基づくことができる。いくつかの実施形態では、本発明は、例えば、エントロピーおよび類似のテストを通じて、以下に説明するように生成されたランダムデータをテストすることを提供することができる。
【0083】
OTP配信用の自動預け払い機
いくつかの実施形態では、本発明は、自動預け払い機(ATM)ならびに/またはエンドユーザへのOTPの配信および分配のための同様のセーフボックスメカニズムなどの物理的分配ネットワークを利用することができる。例えば、そのようなATMは、OTPを含むディスクオンキーなどの外部メモリデバイスを分配することができる。いくつかの実施形態では、本発明のATMは、OTPを含むハードドライブを有し、ユーザによって提供される携帯型メモリデバイス(例えば、フラッシュドライブ)などの外部メモリデバイスに分配することができる。いくつかの実施形態では、本発明のATMは、適切なランダムデータ生成ハードウェアを使用してローカルでOTPを生成するように構成でき、および/または、例えば、OTPハブを介して、外部で生成されたOTPを備えることができる。ATMは、エンドユーザに分配されるOTPに関するシステムのOTPハブを更新することを担うこともできる。
【0084】
いくつかの実施形態では、本発明の1つ以上のOTPハブは、OTP生成能力に加えて、ATMを含むことができる。このようなOTPハブの各々は、独立型の物理的に安全なデバイスを形成することができ、このデバイスは、OTPを生成してエンドユーザに分配し、結果として得られるネットワークの暗号化されたトラフィックを取り扱う。したがって、1つ以上のそのようなデバイスを使用して、任意の所望の場所から集中型OTP暗号化スキームを確立することが可能になる。
【0085】
いくつかの実施形態では、本発明の独立型ATMは、エンドユーザに必要に応じてOTPを分配するために、様々な所望の場所に配置されてもよい。次に、OTPは、ATM内でローカルに、および/またはリモートで生成され、ATMに安全に配信され、その場所のエンドユーザにさらに分配され得る。ATMへのOTPの安全な配信は、量子鍵分配(QKD)通信、ならびに/または、例えば、安全な車両および/もしくはコンテナなどの物理的に安全な手段を通じて実行できる。エンドユーザは、次に、ATMにアクセスして、例えば、メモリデバイスをロードすることで、OTPを取得できる。ユーザに分配されると、OTPはシステムによってそのユーザに関連付けられたものとして示され、そのユーザにメッセージをルーティングするために使用され得る。
【0086】
いくつかの実施形態では、OTPは、QKD、ならびに/または安全な車両および/もしくはコンテナなどの物理的に安全な手段を通じて、OTPハブおよび/またはエンドユーザに直接配信されてもよい。
【0087】
QKDは、量子通信を使用して、第三者が二者間のすべての通信を傍受できたとしても、第三者はその鍵について何も知らずに二者間で共有鍵を確立するプロセスである。したがって、QKD鍵は、本システムの特定の定義された宛先にOTPを配信するために使用され得る。
【0088】
OTPの処分
上記のように、悪用を防ぐために、使用済みのOTPは削除して処分する必要がある。いくつかの実施形態では、本発明のOTPは、OTPのすべてまたは一部を誤りデータで上書きすることによって処分できる。
【0089】
本発明は、システム、方法、および/またはコンピュータプログラム製品であってもよい。コンピュータプログラム製品は、プロセッサに本発明の態様を実行させるためのコンピュータ可読プログラム命令をその上に有するコンピュータ可読記憶媒体(または複数の媒体)を含み得る。
【0090】
コンピュータ可読記憶媒体は、命令実行デバイスによる使用のために命令を保持および記憶することができる有形デバイスであり得る。コンピュータ可読記憶媒体は、例えば、電子記憶デバイス、磁気記憶デバイス、光学記憶デバイス、電磁記憶デバイス、半導体記憶デバイス、または前述の任意の適切な組み合わせであり得るが、これらに限定されない。コンピュータ可読記憶媒体のより具体的な例の非網羅的なリストには、以下、すなわち、携帯型コンピュータディスケット、ハードディスク、ランダムアクセスメモリ(RAM)、読み取り専用メモリ(ROM)、消去可能なプログラマブル読み取り専用メモリ(EPROMまたはフラッシュメモリ)、スタティックランダムアクセスメモリ(SRAM)、携帯型コンパクトディスク読み取り専用メモリ(CD-ROM)、デジタル多用途ディスク(DVD)、メモリスティック、フロッピーディスク、命令がその上に記録された機械的に符号化されたデバイス、および前述の任意の適切な組み合わせが含まれる。本明細書で使用される際、コンピュータ可読記憶媒体は、それ自体が、電波もしくは他の自由に伝播する電磁波、導波管もしくは他の伝送媒体を介して伝播する電磁波(例えば、光ファイバケーブルを通過する光パルス)、またはワイヤを介して伝送される電気信号などの、一時的な信号であると解釈されるべきではない。むしろ、コンピュータ可読記憶媒体は、非一時的(すなわち、不揮発性)媒体である。
【0091】
本明細書で説明するコンピュータ可読プログラム命令は、コンピュータ可読記憶媒体からそれぞれのコンピューティング/処理デバイスに、またはネットワーク、例えば、インターネット、ローカルエリアネットワーク、ワイドエリアネットワーク、および/もしくはワイヤレスネットワークを介して、外部コンピュータもしくは外部記憶デバイスにダウンロードできる。ネットワークは、銅伝送ケーブル、光伝送ファイバ、無線伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイコンピュータ、および/またはエッジサーバを含んでもよい。各コンピューティング/処理デバイス内のネットワークアダプタカードまたはネットワークインターフェースは、ネットワークからコンピュータ可読プログラム命令を受信し、それぞれのコンピューティング/処理デバイス内のコンピュータ可読記憶媒体に記憶するためにコンピュータ可読プログラム命令を転送する。
【0092】
本発明の動作を実行するためのコンピュータ可読プログラム命令は、アセンブラ命令、命令セットアーキテクチャ(ISA)命令、機械命令、機械依存命令、マイクロコード、ファームウェア命令、状態設定データ、またはJava、Smalltalk、C++などのオブジェクト指向プログラミング言語、および「C」プログラミング言語などの従来の手続き型プログラミング言語、もしくは同様のプログラミング言語を含む、1つ以上のプログラミング言語の任意の組み合わせで記述された、ソースコードもしくはオブジェクトコードのいずれかであり得る。コンピュータ可読プログラム命令は、完全にユーザのコンピュータ上で、部分的にユーザのコンピュータ上で、独立型のソフトウェアパッケージとして、部分的にユーザのコンピュータ上および部分的にリモートコンピュータ上で、または完全にリモートコンピュータもしくはサーバ上で、実行できる。後者のシナリオでは、リモートコンピュータは、ローカルエリアネットワーク(LAN)もしくはワイドエリアネットワーク(WAN)を含む任意の種類のネットワークを介してユーザのコンピュータに接続でき、または、接続は、外部コンピュータに(例えば、インターネットサービスプロバイダを使用したインターネット経由で)なされ得る。いくつかの実施形態では、例えば、プログラマブルロジック回路、フィールドプログラマブルゲートアレイ(FPGA)、またはプログラマブルロジックアレイ(PLA)を含む電子回路は、本発明の態様を実行するために、コンピュータ可読プログラム命令の状態情報を利用して電子回路をパーソナライズすることにより、コンピュータ可読プログラム命令を実行することができる。
【0093】
本発明の態様は、本発明の実施形態による方法、装置(システム)、およびコンピュータプログラム製品のフローチャート図ならびに/またはブロック図を参照して本明細書で説明される。フローチャート図および/またはブロック図の各ブロック、ならびにフローチャート図および/またはブロック図内のブロックの組み合わせは、コンピュータ可読プログラム命令によって実装できることが理解されよう。
【0094】
これらのコンピュータ可読プログラム命令は、汎用コンピュータ、専用コンピュータ、または他のプログラマブルデータ処理装置のプロセッサに提供されて、コンピュータまたは他のプログラマブルデータ処理装置のプロセッサを介して実行される命令がフローチャートおよび/またはブロック図のブロックもしくは複数のブロックで指定された機能/動作を実装するための手段を作成するように、機械を生成することができる。これらのコンピュータ可読プログラム命令はまた、コンピュータ、プログラマブルデータ処理装置、および/または他のデバイスが特定の手法で機能するように命令することができるコンピュータ可読記憶媒体内に記憶され得、命令をその中に記憶したコンピュータ可読記憶媒体が、フローチャートおよび/またはブロック図のブロックもしくは複数のブロックで指定された機能/動作の態様を実装する命令を含む製品を備えるようにする。
【0095】
コンピュータ可読プログラム命令はまた、コンピュータ、他のプログラマブルデータ処理装置、または他のデバイスにロードされ得、コンピュータ、他のプログラマブル装置または他のデバイス上で一連の動作ステップを実行させて、コンピュータ実装プロセスを生成することができ、コンピュータ、他のプログラマブル装置、または他のデバイス上で実行される命令が、フローチャートおよび/またはブロック図のブロックもしくは複数のブロックで指定された機能/動作を実装するようにする。
【0096】
図面中のフローチャートおよびブロック図は、本発明の様々な実施形態によるシステム、方法、およびコンピュータプログラム製品の可能な実装のアーキテクチャ、機能、および動作を例示する。これに関して、フローチャートまたはブロック図内の各ブロックは、指定された論理機能(複数可)を実装するための1つ以上の実行可能な命令を含むモジュール、セグメント、または命令の一部を表すことができる。いくつかの代替実装では、ブロックに記載されている機能が、図面に記載されている順序とは異なる順序で発生する場合がある。例えば、連続して示されている2つのブロックは、実際には、実質的に同時に実行されてもよいし、複数のブロックは、場合によっては、関与する機能に応じて、逆の順序で実行されてもよい。ブロック図および/またはフローチャート図の各ブロック、ならびにブロック図および/またはフローチャート図のブロックの組み合わせは、指定された機能または動作を実行する専用ハードウェアベースのシステムによって実装できること、または専用ハードウェアとコンピュータ命令の組み合わせを実行できることにも留意されたい。
【0097】
本発明の様々な実施形態の説明は、例示の目的で提示されているが、網羅的であること、または開示された実施形態に限定されることを意図するものではない。説明された実施形態の範囲および趣旨から逸脱することなく、多くの修正および変形が当業者には明らかであろう。本明細書で使用される用語は、実施形態の原理、実際の応用、もしくは市場で見られる技術に対する技術的改善を最もよく説明するために、または当業者以外の人がが本明細書で開示される実施形態を理解できるように選択されたものである。