(57)【要約】      （修正有）【課題】暗号文のオフライン解読攻撃を緩和するためのシステムを提供する。【解決手段】システムは、暗号化器と、メモリと、ノイズ生成器と、タイマーと、出力デバイスと、を備える。プレーンテキストを暗号化器に入力し、暗号化器から出力された暗号文をメモリに書き込み、暗号文をメモリからノイズ生成器に入力し、タイマーから第1のタイミング信号を受信したことに応答して、メモリから出力デバイスに暗号文を出力し、タイマーから第2のタイミング信号を受信したことに応答して、ノイズ生成器によって生成されたノイズデータを出力デバイスに出力する。【効果】本システムを用いて拡張暗号化された出力は、「暗号文」または「ノイズ」状態で実質的に同じに見えるので、暗号文に対するブルートフォース攻撃の成功の可能性は大幅に低減される。【選択図】図４
2019205152.tif 000002
【特許請求の範囲】
【請求項１】
メモリと、
プレーンテキスト入力に基づいて暗号文を出力するように構成された暗号化器モジュールと、
少なくとも第1のタイミング信号および第2のタイミング信号を出力するように構成されたタイマーモジュールと、
模倣機能に従ってノイズデータを生成するように構成されたノイズ生成器モジュールであって、前記模倣機能が、前記暗号化器モジュールによって出力された前記暗号文を模倣するように構成された、ノイズ生成器モジュールと、
前記メモリに結合され、
前記暗号化器モジュールに前記プレーンテキストを入力し、
前記暗号化器モジュールから出力された前記暗号文を前記メモリに書き込み、
前記暗号文を前記メモリから前記ノイズ生成器モジュールに入力し、
前記タイマーモジュールから前記第1のタイミング信号を受信したことに応答して、前記メモリから少なくとも1つの出力デバイスに前記暗号文を出力し、
前記タイマーモジュールから前記第2のタイミング信号を受信したことに応答して、前記ノイズ生成器モジュールによって生成された前記ノイズデータを前記少なくとも1つの出力デバイスに出力する
ように構成された少なくとも1つのプロセッサと
を含むシステム。
【請求項２】
前記暗号文を出力し、前記ノイズデータを出力するために、前記少なくとも1つのプロセッサが、
前記タイマーモジュールから前記第1のタイミング信号を前記受信したことに応答して、前記暗号文を分散型台帳のノードに書き込み、
前記タイマーモジュールから前記第2のタイミング信号を前記受信したことに応答して、前記ノイズデータを前記分散型台帳の前記ノードに書き込む
ようにさらに構成される、請求項1に記載のシステム。
【請求項３】
前記分散型台帳がブロックチェーンを含む、請求項2に記載のシステム。
【請求項４】
前記暗号化器モジュールが、公開鍵および秘密鍵のうちの少なくとも1つに基づいて前記暗号文を生成するように構成される、請求項1に記載のシステム。
【請求項５】
前記暗号化器モジュールが、少なくとも1つのハイブリッド暗号システムを実装するようにさらに構成される、請求項4に記載のシステム。
【請求項６】
前記暗号化器モジュールによって出力された前記暗号文を模倣するために、前記模倣機能が、前記暗号化器モジュールによって出力された前記暗号文の少なくとも1つのサンプルに少なくとも1つの統計モデルを適用するようにさらに構成される、請求項1に記載のシステム。
【請求項７】
前記暗号化器モジュールによって出力された前記暗号文を模倣するために、前記模倣機能が、前記暗号化器モジュールに入力するために擬似プレーンテキストを生成するようにさらに構成される、請求項1に記載のシステム。
【請求項８】
暗号化を強化するためのコンピュータ実装方法であって、
少なくとも1つのプロセッサによって、プレーンテキストを暗号化器に入力するステップと、
前記少なくとも1つのプロセッサによって、前記暗号化器から出力された暗号文をメモリに書き込むステップと、
前記少なくとも1つのプロセッサによって、前記暗号文を前記メモリからノイズ生成器に入力するステップと、
タイマーから第1のタイミング信号を受信したことに応答して、前記少なくとも1つのプロセッサによって、前記メモリから少なくとも1つの出力デバイスに前記暗号文を出力するステップと、
前記タイマーから第2のタイミング信号を受信したことに応答して、前記少なくとも1つのプロセッサによって、前記ノイズ生成器によって生成されたノイズデータを前記少なくとも1つの出力デバイスに出力するステップと
を含み、前記プレーンテキストを入力する前記ステップ、前記暗号文を書き込む前記ステップ、前記暗号文を入力する前記ステップ、前記暗号文を出力する前記ステップ、および前記ノイズデータを出力する前記ステップのうちの少なくとも1つが、1つまたは複数のコンピュータによって実行される
コンピュータ実装方法。
【請求項９】
前記暗号文を出力する前記ステップが、前記タイマーから前記第1のタイミング信号を前記受信したことに応答して、前記少なくとも1つのプロセッサによって、前記暗号文を分散型台帳のノードに書き込むステップをさらに含み、
前記ノイズデータを出力する前記ステップが、前記タイマーから前記第2のタイミング信号を前記受信したことに応答して、前記少なくとも1つのプロセッサによって、前記ノイズデータを前記分散型台帳の前記ノードに書き込むステップをさらに含む
請求項8に記載のコンピュータ実装方法。
【請求項１０】
前記分散型台帳がブロックチェーンを含む、請求項9に記載のコンピュータ実装方法。
【請求項１１】
前記暗号化器が、公開鍵および秘密鍵のうちの少なくとも1つに基づいて前記暗号文を生成するように構成される、請求項8に記載のコンピュータ実装方法。
【請求項１２】
前記暗号化器が、少なくとも1つのハイブリッド暗号システムを実装するようにさらに構成される、請求項11に記載のコンピュータ実装方法。
【請求項１３】
前記ノイズデータを出力するために、前記ノイズ生成器が、前記暗号化器によって出力された前記暗号文を模倣するように構成された模倣機能を備え、前記模倣機能が、前記少なくとも1つのプロセッサによって、前記暗号化器によって出力された前記暗号文の少なくとも1つのサンプルに少なくとも1つの統計モデルを適用するようにさらに構成される、請求項8に記載のコンピュータ実装方法。
【請求項１４】
前記暗号化器によって出力された前記暗号文を模倣するために、前記模倣機能が、前記少なくとも1つのプロセッサによって、前記暗号化器に入力するために擬似プレーンテキストを生成するようにさらに構成される、請求項13に記載の方法。
【請求項１５】
少なくとも1つのコンピューティングデバイスによって実行されると、前記少なくとも1つのコンピューティングデバイスに、
プレーンテキストを暗号化器モジュールに入力することと、
前記暗号化器モジュールから出力された暗号文をメモリに書き込むことと、
前記暗号文を前記メモリからノイズ生成器モジュールに入力することと、
タイマーモジュールから第1のタイミング信号を受信したことに応答して、前記メモリから少なくとも1つの出力デバイスに前記暗号文を出力することと、
前記タイマーモジュールから第2のタイミング信号を受信したことに応答して、前記ノイズ生成器モジュールによって生成されたノイズデータを前記少なくとも1つの出力デバイスに出力することと
を含む動作を実行させる命令を記憶した非一時的コンピュータ可読デバイス。
【請求項１６】
前記暗号文を前記出力することが、前記タイマーモジュールから前記第1のタイミング信号を前記受信したことに応答して、前記暗号文を分散型台帳のノードに書き込むことをさらに含み、
前記ノイズデータを前記出力することが、前記タイマーモジュールから前記第2のタイミング信号を前記受信したことに応答して、前記ノイズデータを前記分散型台帳の前記ノードに書き込むことをさらに含む
請求項15に記載の非一時的コンピュータ可読デバイス。
【請求項１７】
前記分散型台帳がブロックチェーンを含む、請求項16に記載の非一時的コンピュータ可読デバイス。
【請求項１８】
前記暗号化器モジュールが、公開鍵および秘密鍵のうちの少なくとも1つに基づいて前記暗号文を生成するように構成される、請求項15に記載の非一時的コンピュータ可読デバイス。
【請求項１９】
前記ノイズデータを出力するために、前記ノイズ生成器が、前記暗号化器モジュールによって出力された前記暗号文を模倣するように構成された模倣機能を備え、前記模倣機能が、前記暗号化器モジュールによって出力された前記暗号文の少なくとも1つのサンプルに少なくとも1つの統計モデルを適用するようにさらに構成される、請求項15に記載の非一時的コンピュータ可読デバイス。
【請求項２０】
前記暗号化器モジュールによって出力された前記暗号文を模倣するために、前記模倣機能が、前記暗号化器モジュールに入力するために擬似プレーンテキストを生成するようにさらに構成される、請求項19に記載の非一時的コンピュータ可読デバイス。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、オフライン暗号文単独攻撃の緩和に関する。
【背景技術】
【０００２】
暗号化された情報(すなわち、暗号文)が永続的に公的に入手可能である状況では、暗号文を解読しようとする攻撃者は、検出せずに解読をオフラインで試みるのに事実上無制限の時間およびリソースを有する可能性がある。したがって、正当な利害関係者(すなわち、暗号文の作成者および予定受信者)は、攻撃者が、暗号解読またはブルートフォースによってなど、暗号文にアクセスしている、または暗号文を解読しようとしていることを明確に知ることができず、そのような攻撃から保護するための反応的な対策を講じることができない。ブロックチェーン上の暗号文は、このような一般的な状況であり、暗号文は私的なトランザクションを隠す。
【０００３】
分散型の公的台帳において暗号で検証可能なデータを公的に共有することを回避するなど、既知の回避方法は存在するが、他の落とし穴が多い。データ侵害、漏洩、偽造、破壊、改ざん、または偶発的な損失から保護しながら、トランザクションの一貫した記録を個人的に維持することは、追加の費用および困難を招く可能性があり、これらは、ブロックチェーン技術の採用によって是正され得る。
【０００４】
個人情報が永続的に、公的に入手可能となる技術の採用を確実にするために、潜在的な採用者は、一般的に、たとえ暗号化された形式であっても、潜在的な攻撃者がそのような機密情報に自由にアクセスできるにもかかわらず、その私的なトランザクションの情報が合理的に安全であることの保証を望む。これらの状況では、鍵ローテーション、強力なアルゴリズム、長い鍵などの確立された良い慣習が一般的に使用されるはずであるが、新しい暗号化鍵またはスキームを使用するために情報が削除または変更されない可能性があるので、これらの慣習だけでは、たとえば、永続的な公的台帳、または任意の他の永続的な公開フォーラムにおいて公的に入手可能な、慎重に扱うべき暗号化された情報の妥当な予防措置を提供するには不十分である。
【０００５】
強力な暗号化でさえ破ることができるコンピューティングプラットフォームの継続的な進化の動向は、一般に、無期限ではないにしても、機密性をかなり長い時間期間維持する必要がある場合でも、現在強く考えられている暗号化は今後数十年間強力ではないことを示す。したがって、データの完全性および機密性が高く評価される状況では、私的なトランザクションおよび他の慎重に扱うべき情報について、ブロックチェーンベースのシステムなど、個人情報を保護し、パブリックプラットフォームの潜在的な採用者に信頼性を浸透させるために、追加のレベルの保証が必要とされる。
【発明の概要】
【課題を解決するための手段】
【０００６】
添付の図面は、本明細書に組み込まれ、本明細書の一部を形成する。
【図面の簡単な説明】
【０００７】
【図１】いくつかの実施形態による、いくつかの拡張暗号化技法を実装するのに適したシステムアーキテクチャを示すブロック図である。
【図２】いくつかの実施形態による、台帳に書き込むためにノードに送られる暗号文信号にノイズを導入するための方法を示すフローチャートである。
【図３】いくつかの実施形態による、より大きい文脈でのシステム100を示し、分散型台帳の少なくとも1つのグローバルネットワーク300のサブセットをさらに示す、拡大ブロック図である。
【図４】いくつかの実施形態による、拡張暗号化技法の動作のための方法を示すフローチャートである。
【図５】様々な実施形態を実施するのに有用な例示的なコンピュータシステムである。
【発明を実施するための形態】
【０００８】
図面において、同様の参照番号は、一般に、同一または類似の要素を示す。さらに、一般に、参照番号の一番左の桁は、参照番号が最初に現れる図面を識別する。
【０００９】
暗号文のオフライン解読攻撃を緩和するためのシステム、装置、デバイス、方法、および/またはコンピュータプログラム製品の実施形態、および/またはそれらの組合せおよび部分的な組合せが本明細書で提供される。
【００１０】
この詳細な説明で参照されるいくつかの非限定的な例については、ブロックチェーン技術を含む共有台帳または分散型台帳が非限定的な使用事例として含まれ得る。そのようなブロックチェーンは、たとえば、無許可のブロックチェーン、認可されたブロックチェーン(コンソーシアムブロックチェーン)、またはハイブリッドブロックチェーンを含む、それらの任意の組合せであり得る。コンセンサスを確立するために、関連するトランザクション、当事者のアイデンティティなどを検証するために、任意の方法、機能、メカニズム、モデル、またはプロトコルが使用され得る。コンセンサス検証モデルのいくつかの例には、プルーフオブステーク、プルーフオブスペース、プルーフオブオーソリティ、および再利用可能なプルーフオブワークを含むプルーフオブワークがあり得る。
【００１１】
コンセンサスは、いくつかの例を挙げれば、分散コンセンサス、非集中型コンセンサス(decentralized consensus)、またはコンソーシアムベースのコンセンサスによって決定され得る。マルチエージェントシステムにわたるデータおよび結果の信頼できる、フォールトトレラントで、一貫性のある妥当性検査の任意の類似の形式が使用され得る。コンセンサスの直接的な妥当性検査に加えて、いくつかの非限定的な例を挙げれば、分散型台帳上の静的コントラクト、完全にまたは部分的に自己発効するスマートコントラクト、運用化コントラクト(operationalized contract)、またはスマートボンドは、ブロックチェーン技術を活用し、機密性およびセキュリティのために、本明細書で説明する拡張暗号化技法の恩恵を得ることもできる。
【００１２】
しかしながら、本明細書で説明する暗号化技法は、ブロックチェーンまたは分散型台帳の技術にのみ限定されず、他のタイプの通信および/またはデータ記憶での恩恵をもたらし得る。たとえば、いくつかの例を挙げれば、(正当な利害関係者の検出の有無にかかわらず)安全な通信が送信中に傍受された場合、または、隔離されたデータ侵害、漏洩、または高度な永続的な脅威など、信頼されていない第三者によって危険にさらされた、以前は信頼されていたストレージメディアから、記憶された暗号文が盗まれた、または場合によっては除外された場合など、個人的に記憶された安全な通信が危険にさらされた場合でも、本明細書で説明する暗号化技法は、いくつかの追加のセキュリティを提供し得る。
【００１３】
したがって、本明細書で説明する暗号化技法の使用は、たとえ暗号化された情報が、ブロックチェーンなど、公的台帳における公的な共有を意図していないとしても、暗号化された情報のセキュリティをさらに向上させ得る。(暗号文のみとしての)情報が悪意のある攻撃者の制御下に置かれる可能性があると仮定すると、本明細書で説明する技法を使用して生成された暗号文は、攻撃者が暗号文をどのように入手したかにかかわらず、攻撃者が暗号文を解析またはブルートフォース解読して原文のプレーンテキストまたは任意の暗号化鍵を得る能力を著しく妨げ、または完全に阻止し得る。
【００１４】
図1は、いくつかの実施形態による、いくつかの拡張暗号化技法を実装するのに適したクライアントベースのシステムアーキテクチャを示すブロック図である。
【００１５】
システム100は、たとえば図1に示す実施形態では、クライアント140を含み得る。クライアント140は、タイマー150、ノイズ生成器160、暗号化器180、またはそれらの任意の組合せなどの要素を含み得る。クライアント140は、キャッシュ170と、クライアント140上の公開鍵190などの暗号化鍵のためのストレージとをさらに含み得る。いくつかの実施形態では、公開鍵190を使用して、または代わりに、非限定的な例を挙げると、秘密鍵、コンソーシアム鍵セットの少なくとも一部、もしくは様々な組合せの複数の鍵を使用して、暗号化が実行され得る。暗号化アルゴリズムは、たとえば、対称鍵アルゴリズムまたは非対称鍵アルゴリズムを含み得る。いくつかの実施形態では、暗号化器180は、たとえば、適応的に選択された暗号文攻撃に対してさらに保護するような利点を実現するように、ハイブリッド暗号システムの使用を含む、複数の暗号化アルゴリズムおよび暗号システムを実装するように構成され得る。
【００１６】
クライアント140がプレーンテキスト入力データを暗号化するとき、クライアント140は、ネットワーク接続130を介してなど、暗号文出力の一部をノード120に送る前に、暗号化器180から出力された一部の暗号文をキャッシュ170に一時的に記憶し得る。ネットワーク接続130は、いくつかの実施形態では、代わりに、たとえば、ローカルバスまたはバスインフラストラクチャ(図5に関して以下で説明する通信インフラストラクチャ506など)であってもよい。同様に、ノード120および/またはローカル台帳110は、たとえば、ハードウェア、ソフトウェア、またはそれらの任意の組合せで実装されるローカルストレージまたはモジュールなど、クライアント140内にあってもよい。ノード120は、たとえば、分配型台帳のローカルコピーを表し得る少なくとも1つの対応するローカル台帳110を有し得る。いくつかの実施形態では、ノード120は、たとえば、ブロックチェーンノードであってもよい。
【００１７】
本特許開示では、暗号文、ノイズデータ、または任意のデータを、ローカルにまたはネットワークを介してノードに出力することは、出力デバイスに出力することと考えられ得る。出力デバイスの他の例は、いくつかの実施形態によるいくつかの非限定的な例を挙げれば、たとえば、標準的な出力ファイルまたはストリームを含むファイルまたはストリーム、プリンタ、テレタイプ、端末または端末エミュレータ、テキスト音声(TTS)デバイスを含むオーディオ変調器、発光ダイオード(LED)、ランプ、または他の光シグナリングデバイス、無線アンテナまたは他の電磁変換器、磁気信号を生成する電磁または他の手段、または信号もしくは非一時的データストレージの出力を運ぶためのほぼすべての他の方法であり得る。少なくとも1つの出力デバイスへの出力は、たとえば、この段落に列挙された2つ以上のタイプの出力デバイスなど、複数のタイプの出力デバイスへの出力を伴い得る。
【００１８】
これらの要素の各々は、ハードウェア、ソフトウェア、またはそれらの何らかの組合せで実装されるモジュール式コンポーネントであってもよい。さらに、いくつかの実施形態では、これらの要素のいずれかがクライアント140と統合されてもよい。さらに、いくつかのモノのインターネット(IoT)の実施形態では、クライアント140は、ポータルまたは他のプラットフォームであってよく、要素150〜190は、個々のマイクロサービスとして、クラウドまたは特定のサーバにおいて、または少なくとも1つのモノリシックプラットフォームとして様々な組合せで、ローカルまたはリモートに実装され得る。したがって、クライアント140は、たとえば、モジュール式アーキテクチャを有するいくつかの実施形態では、タイマーモジュール(タイミングモジュール)、ノイズ生成器モジュール、キャッシュモジュール、および/または暗号化器モジュール(暗号化モジュール)を含み得る。
【００１９】
入力データは、ユーザ入力、機械入力、あるいは周期的入力またはイベント駆動入力を含む他の自動入力を含む、実際的に任意のソースに端を発し得る。そのような自動入力のいくつかの非限定的な例は、周期的に、またはしきい値がセンサーによって検出されると、環境センサーなどのセンサー、プレーンテキストまたは符号化された(たとえば、バイナリ、必ずしも暗号化されていない)形式の自動ログファイル、アプリケーションプログラミングインターフェース(API)入力を含む他のプログラム入力などを読み取ることを含み得る。
【００２０】
さらに、ノード120にデータを送るとき、ノード120に送られるデータは、キャッシュ170に記憶され得る任意の暗号文出力を含み得る。追加または代替として、ノード120に送られるデータは、ノイズ生成器160によって生成されたノイズを含み得る。ノイズは、いくつかの実施形態では、均一分布または他の所定の分布を有するランダムノイズであってもよく、改善されたエントロピーのためにセンサーからの他の環境入力に基づくものであってもよい。追加または代替として、ノイズは、擬似ランダムノイズであってよく、これは、さらに、いくつかの実施形態では、ノイズが周波数分布、シーケンス、ギャップなどについて仮説検定にパスし得るかどうかを含めて、統計的無作為性の少なくとも1つの基準を満たし得る。
【００２１】
いくつかの実施形態では、ノイズ生成器160は、キャッシュ170に記憶された暗号文出力を模倣するが、実際の暗号文ではなく、適宜に任意の正当な鍵で解読されると他のランダムデータとなるノイズデータを出力するように設計された模倣機能を実装し得る。任意の解読されたプレーンテキストは、このとき、ノイズ生成器160の模倣機能の出力に復号鍵を適用することによって生じる任意の「解読された」ノイズからはっきりと目立つことが予想され得る。
【００２２】
模倣機能は、いくつかの実施形態では、ある時点に、または、たとえば、最後の6時間以内、最後の40分以内など、過去の何らかの時間窓の間に、暗号化器180によって実際に生成および/または出力される(またはノード120に送られる)実際の暗号文の統計モデルに基づいて、ノイズデータを生成し得る。追加または代替として、模倣機能は、いくつかの実施形態では、たとえば、暗号化器180の出力の最後の20ラウンド、ノード120に書き込まれた実際の暗号文の最後の10ブロックなど、暗号化器180のある数の出力インスタンスまたは反復(または、ノード120に送られる実際の暗号文のインスタンス)に適用される統計モデルに基づき得る。統計モデルは、いくつかの非限定的な例に従って、たとえば、所与の時間に、1回、周期的に、および/またはランダムに選択された時間に、暗号文の少なくとも1つの代表的なサンプルを形成する暗号文の量に適用され得る。
【００２３】
代替的に、ノイズ生成器160は、同じまたは異なる暗号化鍵を使用して、暗号化器180によって暗号化される擬似プレーンテキストを生成し得る。異なる暗号化鍵を使用すると、正当な鍵で解読を試みたとき、異なる暗号化鍵で暗号化された擬似プレーンテキストデータはランダムな出力のように見えることが予想され、正当なユーザが無視し得るデータとして認識可能なままである。たとえ擬似データの暗号化が同じ鍵を使用するとしても、擬似データは解読の際に可読であり得る。しかしながら、いくつかの実施形態では、解読されたプレーンテキストデータの正当な予定受信者が無視することがわかる方法で擬似データが生成され、一方、攻撃者は、解読された場合、擬似データによって欺かれる、または暗号解読の手がかりから振り払われる可能性がある。いくつかの他の実施形態では、疑似プレーンテキストデータは、前述の模倣機能と同じでも異なってもよく、暗号化器180へのプレーンテキスト入力の統計モデルに基づき得る、あるいは追加または代替として、たとえば、セマンティックモデル、構文モデル、または様々な文法モデルのいずれかなど、他のモデルに基づき得る、模倣機能によって生成され得る。
【００２４】
タイマー150は、いくつかの実施形態では、ノイズ生成器160、暗号化器180、および/またはキャッシュ170が、クライアント140内の適切な要素に、および/または最終的にノード120にその出力を送るべきときを示し得るタイミング信号を生成し得る。いくつかの実施形態では、タイマー150は、クライアント140の他の要素のうちのいずれかに周期タイミング信号を発し得る。追加または代替として、いくつかの実施形態では、タイマー150から出力されるタイミング信号は、ランダムまたは擬似ランダムな方法で、または所定のパターンに従って変わり得る。
【００２５】
たとえば、非限定的な例示的な実施形態では、タイマー150は、システムクロックに関してx秒(たとえば、x=10)ごとにタイミング信号を送り、および/またはタイマー150は、y秒(たとえば、yは1から120の間でランダムに(または擬似ランダムに)選択された数であり得る)ごとにタイミング信号を送り得る。追加または代替として、タイマー150は、z秒ごとにタイミング信号を送り、ここで、zは、別の非限定的な例を挙げれば、たとえば、フィボナッチ数列の最初のx個の要素から連続的またはランダムに選択された数を表し得る。実際的に、クライアント140(またはいくつかの実施形態では、対応するIoTポータル)の特定の実装に応じて、タイマー設定の任意の構成が可能であり得る。
【００２６】
いくつかの実施形態では、第1のタイミング信号がx秒ごとに出力され、第2のタイミング信号がy秒ごとに出力され、第3のタイミング信号がz秒ごとに出力され得、x、yおよびzは、たとえば、上記で説明したように定義される。あるいは、いくつかの実施形態では、少なくとも1つのタイミング信号は、実際の時間または任意のシステムクロックの代わりに、またはそれに加えて、生成された実際の暗号文または模倣機能出力の量に依存し得る。
【００２７】
さらに、いくつかの実施形態では、複数のタイミング信号が同時に一致する場合、競合を解決するためのプロトコルが存在し得る。たとえば、上記の非限定的な例のように、xが一定であり、yがランダムであり、次いでxとyの両方が初期状態からたまたま同じになる、または場合によっては、初期状態の後に一致する場合、タイマー150は、第2のタイミング信号の前に第1のタイミング信号を順次出力するように、第1のタイミング信号(または優先順位が高いように予め決定されたタイミング信号のうちのいずれか)を優先するように構成され得る。あるいは、いくつかの実施形態の実装形態に応じて、たとえば、暗号文またはノイズデータを出力するかどうかを決定することに関して応答が別々に決定される状態で、複数のタイミング信号が同時に並列に出力されてもよい。
【００２８】
いくつかの実施形態では、クライアント140からノード120へのデータの送信をトリガするために信号がタイマー150から送られると、クライアント140は、いくつかの実施形態では、(擬似データなしの実際の入力データに基づいて)暗号文出力、ノイズ(ノイズ生成器160によって生成され、模倣機能を含み得る)、またはそれらのいくつかの組合せを送り得る。クライアント140は、ノード120上の所与のトランザクションに必要な任意の他の付随データを送り得る。タイマー150からのタイミング信号に応答して動作するクライアント140の追加のロジックについて、以下で図2に関してさらに説明する。
【００２９】
図2は、いくつかの実施形態による、たとえば、台帳に書き込むためにノードに送られる暗号文信号にノイズを導入するための方法200を示すフローチャートである。方法200は、ハードウェア(たとえば、回路、専用ロジック、プログラマブルロジック、マイクロコードなど)、ソフトウェア(たとえば、処理デバイス上で実行する命令)、またはそれらの組合せを含み得る処理ロジックによって実行され得る。本明細書で開示された拡張暗号化技法を実行するために、方法200のすべてのステップがすべての場合に必要とされるわけではない。さらに、当業者には理解されるように、方法200のいくつかのステップは、同時に実行されてもよく、または図2に示されるものとは異なる順序で実行されてもよい。
【００３０】
方法200について、図1および図3を参照しながら説明する。しかしながら、方法200は例示的な実施形態のみに限定されない。方法200のステップは、少なくとも1つのメモリデバイスに結合された少なくとも1つのコンピュータプロセッサによって実行され得る。例示的なプロセッサおよびメモリデバイスについて、図5に関して以下で説明する。いくつかの実施形態では、方法200は、図5のものなど、少なくとも1つのプロセッサおよびメモリをさらに含み得る、図1および図3のシステム100によって実行され得る。
【００３１】
210において、この方法は、初期化され、実行され、または場合によっては、まだ実行されていない場合、開始され得る。いくつかの実施形態によれば、もしあれば、任意の実装固有の初期化手順に続く210から、方法は、次いで220に進み得る。いくつかの実施形態では、実行のこのフローは、有限状態機械、手続き型プログラミング、オブジェクト指向プログラミング、および/またはハードウェア、ソフトウェア、または上記の何らかの組合せにおける他のロジックによって定義され得る。
【００３２】
220において、実行は、指定された時間量の間、一時停止する、または待機し得る。図1のタイマー150に関して上記で説明したように、1つの非限定的な例において、指定された時間は、x、y、またはz秒のいずれかであり得る。いくつかの実施形態では、待機時間は、1秒のごく一部程度であってもよく、または、分、時、日、週などの観点から、かなり長くてもよく、ローカル台帳110および任意の分散型台帳ならびにたとえばコンセンサスを検証するための任意のアルゴリズムに記録されるトランザクションの性質に依存し得る。
【００３３】
230において、指定された待機時間量が経過したかどうかを判定するために状態が評価され得る。この時間にまだ達していない場合、実行がそのような時間に達するまで待つことに戻り得る。ひとたび指定された時間量に達すると、実行は240に進み得る。
【００３４】
240において、図1に関して上記で説明したように、キャッシュ170に任意の暗号文出力が存在するかどうかなど、任意のキャッシュされたデータがあるかどうかについて、状態がテストまたは評価され得る。図2の実施形態では、キャッシュされたデータがある場合、実行は250に進み、ネットワーク接続130を介してノード120になど、(ここでは説明の目的で「第1のキャッシュされたデータ」と標示される)キャッシュされたデータのうちの少なくとも一部が送出され得る、または場合によっては、他の中間位置またはバッファ(図示せず)に送られ得る。実行はさらに260に続き、送られたキャッシュされたデータ(「第1のキャッシュされたデータ」)は、次いで、いくつかの実施形態では、いくつかの実施形態の特定の実装の詳細によって決定されるように、一貫性を保証し、キャッシュデータを追跡し、および/または他のキャッシュデータの余地を作るように、キャッシュ170からクリアされ得る。
【００３５】
240において、キャッシュ170内で利用可能なキャッシュされたデータがなかった場合、実行は270に進み、そこでノイズ生成器160がノイズ(図示せず)を生成し得る。たとえば、ノイズの均一分布、ノイズの有色分布、ノイズのターゲット分布(模擬機能によるなど、正当な暗号文を模倣するように)を確実にするために、指定されたアルゴリズムごとに、または他のパターンごとに、ノイズが生成され得る。実行はさらに280に続き、ノイズが次いで、たとえばノード120などに、ネットワーク接続130を介して送出されるか、または場合によっては、何らかの他の中間位置またはバッファ(図示せず)に送られ得る。
【００３６】
いくつかの実施形態による非限定的な例では、クライアント140は、タイマー150が(上記で説明したように、たとえばx、y、zなど)所定の時間に達したという決定に基づいて、ノイズ生成器160によって生成されたノイズデータを送り得る。この決定は、たとえばタイマー150からのタイミング信号(図示せず)に応答して行われ得る。いくつかの実施形態では、第1のタイミング信号がx秒ごとに出力され、第2のタイミング信号がy秒ごとに出力され、第3のタイミング信号がz秒ごとに出力され得、x、yおよびzは、たとえば、上記で説明したように定義される。あるいは、いくつかの実施形態では、少なくとも1つのタイミング信号は、実際の時間または任意のシステムクロックの代わりに、またはそれに加えて、生成された実際の暗号文または模倣機能出力の量に依存し得る。
【００３７】
いくつかの実施形態では、すぐ上に記述した例と組み合わせて、またはそれとは無関係に、クライアント140は、ノイズの特性が周波数分布、シーケンス、ギャップなどの仮説検定にパスし得るかどうかを含めて、いくつかの実施形態では、実際の暗号文のパターン(キャッシュ170に記憶されたもの、または暗号化器180から直ちに出力されたものなど)は、統計的無作為性のための少なくとも1つの基準を満たす(または満たさない)ことを検出すると、ノイズ生成器160によって生成されるノイズデータを送り得る。ノイズ生成器160の模倣機能の出力は、たとえば模倣機能の任意の利用可能なアルゴリズム、モデル、またはパターンに従って、それに応じて調整され得る。
【００３８】
ノイズデータは、いくつかの実施形態では、暗号化されたデータに似ている可能性があるランダムな文字列であり得る。ノイズデータと実際の暗号化されたデータ(実際の暗号文)との間のこの類似性は、ノイズ生成器160のノイズ生成器エージェント(図示せず)に実装され得る模倣機能によって達成され得る。別のデバイスがクライアント140に接続されると、その時点で他のデバイスの値がクライアント140によって読み取られ得る(またはクライアント140上で自動的にまたは手動で生成されてもよい)。次いで、この値は、暗号化器180によって暗号化され、たとえば、(パブリックまたはプライベートネットワークにおいて)ネットワーク接続130、320、および/または322によって、ノード120などのノードへの、またはさらには最終的にノード312および314(以下で図3を参照)への次の送信のために、キャッシュ170に随意に記憶され得る。この時点で、クライアント140は、さらに、いくつかの実施形態では、キャッシュ内の任意の暗号文の一部または全部、たとえば、少なくとも1つのノードに最後に送信された暗号文の一部または全部を削除するように構成され得る。
【００３９】
260または280のいずれかに続いて、実行は次いで290に流れ得、220の待機から同じ方法を繰り返すことになり、フローチャートのこの部分に戻り得る。いくつかの実施形態では、たとえば、ユーザの手動によって、または自動化されたコンピュータプロセスによって、または人工知能(AI)によって、様々な理由で、実行が停止または終了されてもよい。さらに、どのように240が実行され、システム100の残りがどのように構成されているかに応じて、ステップ260および280は、相互に排他的である必要はなく、いくつかの実施形態では、ノイズおよびキャッシュされたデータは、たとえば、時間間隙を介在することなく隣接するシーケンスで送られ得る。
【００４０】
様々な実施形態は、たとえば、図5に示すコンピュータシステム500など、1つまたは複数のよく知られているコンピュータシステムを使用して実装され得る。コンピュータシステム500は、システム100を備え、たとえば、図2の方法200を実施するために使用され得る。
【００４１】
方法200は、図2のこの例示的な実施形態において上記に示した順序で開示される。しかしながら、実際には、上記で開示された動作は、他の動作と一緒に、任意の順序で連続的に実行されてもよく、あるいは、複数の動作が同時に実行される状態で、並行して実行されてもよく、または上記の任意の組合せで実行されてもよい。
【００４２】
図2の上記動作を実施することは、少なくとも以下の利点を提供し得る。すなわち、攻撃者は、更新(たとえば、分散型台帳への)が本物である(実際の暗号文)、またはノイズにすぎないときを知ることができず、したがって時間ベースの攻撃に勝ち、データの任意の部分は、実際に、実際の暗号文に似せるように具体的にフィルタリングまたはモデル化されたランダムノイズに基づき得るので、攻撃者は、たとえば、暗号解読による、またはブルートフォース解読によるなど、どのテキストをオフラインで攻撃するかを知ることができない、または決定できない可能性がある。さらに、そのようなデータの任意の統計モデル(たとえば、周波数分析)は、典型的には、偽の結果を戻し、任意の解読は言うまでもなく、周波数分析をさらに防止し得る。このようにして、実際の暗号文もノイズデータと区別できない可能性がある。したがって、これは、上記の技法のいずれかおよび多くの他の既存の、進歩した、または量子暗号後の方法は、さらなる追加の安全性のために、本明細書に開示されている拡張暗号化技法と依然として互換性があるが、(たとえば、非常に長い鍵、メモリ集約的な暗号化アルゴリズム、他の計算コストが高いまたは回転暗号化アルゴリズムなどを使用する)暗号化のより多くの従来の方法に必要とされる追加の処理オーバヘッドなしに、および鍵および/またはアルゴリズムの確率的なランダム化のより複雑な実装を必要とすることなく、より強力な暗号化をより効率的に達成する。
【００４３】
図3は、いくつかの実施形態による、より大きい文脈でのシステム100を示し、ノード当たり少なくとも1つの、複数のローカルコピーを有する少なくとも1つの分散型台帳の少なくとも1つのグローバルネットワーク300のサブセットをさらに示す、拡大ブロック図である。システム100は、図1に同様に示されているように、ここでは、点線によって画定された長方形のボックス内に図示されている。この点線は、単に説明のためであり、内容が図1のシステム100のものと同じである(この例では)ことを強調するためのものであり、点線はネットワーク300内のいかなる実際の(物理的または論理的な)障壁をも表さない。
【００４４】
いくつかの要素に関して前述したように、130、310、314、320、322、および324は、いくつかの例では、パブリックまたはプライベートネットワーク上にあり得るネットワーク接続を表す。たとえば、ノード120、312、316のような分散型台帳の複数のノードが存在してもよい。これらのノードの各々は、それぞれローカル台帳110、308、および318などの対応するローカル台帳を有し得る。分散型台帳における任意のノードからの対応するローカル台帳のいずれかにおける暗号文を解読するために、秘密鍵302などの解読鍵が、合法的に暗号文データの解読されたプレーンテキストを見る権利を有する任意の許可された当事者であり得る監査役304と共有され得る。いくつかの実施形態では、解読鍵は、たとえば、公開鍵、コンソーシアム鍵セットの少なくとも一部、または様々な組合せの複数の鍵であってもよい。攻撃者306は、分散型台帳内の暗号化された通信の暗号化を破ろうとする任意の当事者であり得る。攻撃者306は、分散型台帳内の任意の最新のノード、この場合、ノード316から暗号文を受信し得る。しかしながら、他の非限定的な例では、攻撃者306は、120、312、またはここには示されていない任意の他のノードを含む、分散型台帳における任意のノードを攻撃し得る。
【００４５】
ネットワーク300などのグローバルネットワークのこの観点から、監査役304(または他の許可された当事者)は、依然として、任意のノードのそれぞれのローカル台帳のコピーからトランザクションを見つけ、取り出すことができる。監査者304がクライアント140の許可された秘密鍵302を使用してこのコピーを解読する場合、監査役304は、ノード312のローカル台帳308(または類似のノードの任意の他の対応するコピー)に存在する実際の暗号文のいずれかまたはすべてを解読し得るが、ノイズデータは、同じ解読鍵を適用することから出力された後、依然として類似のノイズとして現れる可能性がある。いくつかの実施形態では、対応する暗号文が模倣機能から生成されたノイズデータと似て見えるとしても、得られたプレーンテキスト出力は、他のノイズから容易に識別可能であり、容易に認識可能であると仮定され得る。
【００４６】
監査役304および/または任意の他の許可された当事者によるこのアクセスの容易さにもかかわらず、一方で攻撃者306は、代わりに、ノード316(または対応する分散型台帳における任意の他のノード)に存在するそのローカル台帳318のコピーにおいて(任意の有意味な周波数分析または他の成功した暗号解読を含む)暗号文攻撃を実行することができない可能性がある。分散型台帳またはそこにおけるトランザクションのチェーン内の非プレーンテキストエントリが、それらが実際の暗号化されたプレーンテキストを実際の暗号文として含むかどうかにかかわらず、「ランダム」または「暗号化」状態で実質的に同じに見える場合、任意の対応する公的台帳における任意の実際の暗号文に対するブルートフォース攻撃の成功の可能性は、したがって、大幅に低減され得る。したがって、正当な利害関係者の一貫性および使いやすさを維持しながら、暗号文の攻撃面のこの低減によって、上記の背景技術セクションで、上記で特定された問題を解決することができ、それによって、いくつかの非限定的な例を挙げれば、ブロックチェーン技術などの公的分散型台帳技術の新しいユーザに対して、少なくとも許容可能なレベルの機密性を保証する。
【００４７】
図3がモノのインターネット(IoT)デバイスおよびブロックチェーン技術を含む現実世界の使用事例を示し得る、1つの非限定的なシナリオを説明するために、ここでは、クライアント140は、当業者に理解されるように、IoT構成を有する組込み型プラットフォームであり得る。この非限定的な例では、ノード120は、ブロックチェーンノードであってもよい。センサー326は、この例では、冷蔵庫、冷凍庫、冷却器、または他の冷凍装置内の少なくとも1つの温度センサーであり得る。
【００４８】
同じ非限定的な例のシナリオを続けると、貨物列車、トラック、倉庫、食料雑貨店、コンビニエンスストアなどには、腐敗しやすい商品のコンテナが通過する必要があり得るポータルが装備され得る。そのようなコンテナおよびポータルに、前の段落に記載されたIoTデバイス、ならびに、限定はしないが、バーコード、マトリックスコード、近距離通信(NFC)識別子、無線周波数識別子(RFID)タグなどを含む、そのような識別子を読み取るための識別子および/または機器を備え得る。
【００４９】
そのような識別子が任意の所与のポータルを通過するときに処理および/または記録されるとき、所与のコンテナ内の少なくとも1つの温度センサーからの温度情報を含むセンサー326からの情報は、次いで、ブロックチェーンを含む分散台帳に記録され得る。温度情報は、ポータルにおける所与のコンテナの現在の温度、ならびにセンサーが所与のコンテナの現在の中身に関して輸送中に登録した最大温度を含み得る。たとえば、ポータルのタイムスタンプおよびロケーションデータもあり得る。したがって、ブロックチェーンにおいて、記憶されているこの情報のすべては、永続的に不変に記憶され、改ざん防止される。
【００５０】
コンテナの中身がアイスクリーム、デリケートな薬剤またはワクチン、生きたウイルスまたは生物学的標本など、腐敗しやすい食品または薬品である場合、そのようなセンサー情報は、コンテナの冷凍装置が輸送中に誤動作している可能性があるかどうか、および/またはコンテナの中身が損害を受けているか、または場合によっては破損している可能性があるかどうかを判定するために有用であることがわかる。当事者は、この情報をブロックチェーン上で変更することはできない。
【００５１】
同時に、この情報は非常に慎重に扱うべき、機密性が高いものである可能性がある。損傷があった場合、この情報は、損傷した商品の送出を防ぐことができる範囲で、利害関係者を合法化するのに役立つ可能性がある。同時に、競合他社、第三者の攻撃者、または他の悪意のある当事者がそのような情報を取得する場合、これらの他の当事者は、正当な当事者の出荷ルートと中身、ならびに、輸送または冷凍設備の故障率、損傷した商品の識別などを知るなど、そのような情報を利得に使用することができる。そのような情報は、正当な利害関係者の利益を他の方法で害するためにさらに使用される可能性がある。
【００５２】
そのような損害を防止するために、本明細書で開示した拡張暗号化技法は、ブロックチェーン技術が使用されるシナリオにおいても、そのような攻撃、および競合者、第三者、悪意のある攻撃者への漏洩を緩和し得る。ブロックチェーンレコードは永続的で不変であり、したがって、改ざん防止が可能であるが、ブロックチェーンは、公開され、ダウンロード可能でもあり、ブロックチェーンレコードで使用され得る暗号文に対する強力なオフライン攻撃が可能になり、したがって、悪意のある当事者が、暗号化を壊し、ブロックチェーンに記憶された慎重に扱うべき、および/または機密の暗号化された情報を取得しやすくなる。しかしながら、本明細書に開示され記載された拡張暗号化技法を使用することは、公的にアクセス可能な暗号文に対するこれらのそのようなオフライン攻撃さえもかなり緩和し得る。
【００５３】
図4は、いくつかの実施形態による、拡張暗号化技法の動作のための方法400を示すフローチャートである。方法400は、ハードウェア(たとえば、回路、専用ロジック、プログラマブルロジック、マイクロコードなど)、ソフトウェア(たとえば、処理デバイス上で実行する命令)、またはそれらの組合せを含み得る処理ロジックによって実行され得る。本明細書で開示された拡張暗号化技法を実行するために、方法400のすべてのステップがすべての場合に必要とされるわけではない。さらに、当業者には理解されるように、方法400のいくつかのステップは、同時に実行されてもよく、または図4に示されるものとは異なる順序で実行されてもよい。
【００５４】
方法400について、図1、図3、および図5を参照しながら説明する。しかしながら、方法400はこれらの例示的な実施形態のみに限定されない。方法400のステップは、少なくとも1つのメモリデバイスに結合された少なくとも1つのコンピュータプロセッサによって実行され得る。例示的なプロセッサおよびメモリデバイスについて、図5に関して以下で説明する。いくつかの実施形態では、方法400は、図5のものなど、少なくとも1つのプロセッサおよびメモリをさらに含み得る、図1および図3のシステム100によって実行され得る。
【００５５】
402において、少なくとも1つのプロセッサ504は、図1および図3の暗号化器180などの暗号化器にプレーンテキストを入力するように構成され得る。プレーンテキストは、上記で説明したように、センサー、自動またはイベント駆動入力、ユーザからの手動入力、または、当業者には理解される、事実上他のいかなるプレーンテキスト入力源にも端を発し得る。そのような自動入力のいくつかの非限定的な例は、いくつかの実施形態によれば、周期的にポーリングされる、またはしきい値がセンサーによって検出されると、環境センサーであり得るセンサー326などのセンサー、プレーンテキストまたは符号化された(たとえば、バイナリ、必ずしも暗号化されていない)形式の自動ログファイル、アプリケーションプログラミングインターフェース(API)入力を含む他のプログラム入力などを読み取ることを含み得る。
【００５６】
404において、プロセッサ504は、暗号化器180からの出力などの暗号文をメモリに書き込むように構成され得る。404の目的のために、メモリは、メインストレージドライブ512または任意のリムーバブルストレージドライブ514または外部リムーバブルストレージユニット518、522などを含む、キャッシュ170、メインメモリ508、および/または2次メモリ510を含む任意の種類のメモリであってもよい。
【００５７】
406において、プロセッサ504は、(暗号文が404で記憶されたもの、またはその間に同じ暗号文が転送された可能性のある任意の他の中間メモリなど)メモリからの暗号文をノイズ生成器160などのノイズ生成器に入力するように構成され得る。406で暗号文が入力されるノイズ生成器は、ノイズ生成器160に関して上記で説明したような少なくとも1つの模倣機能を使用するように構成され得る。
【００５８】
408において、第1のタイミング信号が受信されると、いくつかの実施形態では、クライアント140から外部(外向き)インターフェースへ、またはクライアント140内の別の要素へなど、暗号文が出力され得る。第1のタイミング信号は、タイマー150などのタイマーから受信され得る。第1のタイミング信号を含むタイミング信号は、タイマー150に関して上記で説明したものと類似の方法で、タイマーによって生成され得る。408で出力された暗号文は、いくつかの実施形態では、暗号文が404で記憶されたメモリに端を発し得る。追加または代替として、いくつかの実施形態によれば、408で出力された暗号文は、キャッシュ170、メインメモリ508、および/または2次メモリ510など、任意の他のメモリにバッファリングされている、またはされていない、暗号化器180などの暗号化器の出力から直接生じ得る。
【００５９】
410において、第2のタイミング信号が受信されると、いくつかの実施形態では、クライアント140から外部(外向き)インターフェースへ、またはクライアント140内の別の要素へなど、ノイズデータが出力され得る。第2のタイミング信号は、タイマー150のようなタイマーから受信され得る。第2のタイミング信号を含むタイミング信号は、タイマー150に関して上記で説明したものと類似の方法で、タイマーによって生成され得る。410で出力されたノイズデータは、キャッシュ170、メインメモリ508、および/または2次メモリ510など、任意の他のメモリにバッファリングされている、またはされていない、ノイズ生成器160などのノイズ生成器の出力から直接生じ得る。
【００６０】
412において、すぐ上で説明したように、408または410(またはその両方)のいずれかで生成された出力は、プロセッサ504によって少なくとも1つの出力デバイスに書き込まれ得る。たとえば、出力デバイスは、いくつかの実施形態によるいくつかの非限定的な例を挙げれば、標準的な出力ファイルまたはストリームを含むファイルまたはストリーム、プリンタ、テレタイプ、端末、または端末エミュレータ、テキスト音声(TTS)デバイスを含むオーディオ変調器、発光ダイオード(LED)、ランプ、または他の光シグナリングデバイス、無線アンテナもしくは他の電磁変換器、磁気信号を生成する電磁もしくは他の手段、または信号もしくは非一時的データストレージの出力を運ぶためのほぼすべての任意の他の方法のうちの少なくとも1つであり得る。少なくとも1つの出力デバイスへの出力は、いくつかの実施形態によれば、この段落に列挙された2つ以上のタイプの出力デバイスなど、複数のタイプの出力デバイスへの出力を伴い得る。
【００６１】
414において、408および/または410のような動作は、第1または第2のタイミング信号の別のインスタンスが受信され得るとき、利用可能であり、まだ出力デバイスに書き込まれていない任意の新しいまたは残りの暗号文またはノイズデータについて繰り返され得る。いずれにしても、新しい暗号文が利用可能でない場合であっても、少なくとも古い実際の暗号文に基づいて新しいノイズデータが生成され、さらに、ノイズデータは、いくつかの実施形態に従って、第2のタイミング信号のそのような後のインスタンスに応じて再度出力され得る。
【００６２】
様々な実施形態は、たとえば、図5に示すコンピュータシステム500など、1つまたは複数のよく知られているコンピュータシステムを使用して実装され得る。コンピュータシステム500は、システム100を備え、たとえば、図4の方法400を実施するために使用され得る。
【００６３】
方法400は、図4のこの例示的な実施形態において上記に示した順序で開示される。しかしながら、実際には、上記で開示された動作は、他の動作と一緒に、任意の順序で連続的に実行されてもよく、あるいは、複数の動作が同時に実行される状態で、並行して実行されてもよく、または上記の任意の組合せで実行されてもよい。
【００６４】
図4の上記動作を実施することは、少なくとも以下の利点を提供し得る。すなわち、攻撃者は、更新(たとえば、分散型台帳への)が本物である(実際の暗号文)、またはノイズにすぎないときを知ることができず、したがって時間ベースの攻撃に勝ち、データの任意の部分は、実際に、実際の暗号文に似せるように具体的にフィルタリングまたはモデル化されたランダムノイズに基づき得るので、攻撃者は、たとえば、暗号解読による、またはブルートフォース解読によるなど、どのテキストをオフラインで攻撃するかを知ることができない、または決定できない可能性がある。さらに、そのようなデータの任意の統計モデル(たとえば、周波数分析)は、典型的には、偽の結果を戻し、任意の解読は言うまでもなく、周波数分析をさらに防止し得る。このようにして、実際の暗号文もノイズデータと区別できない可能性がある。したがって、これは、上記の技法のいずれかおよび多くの他の既存の、進歩した、または量子暗号後の方法は、さらなる追加の安全性のために、本明細書に開示されている拡張暗号化技法と依然として互換性があるが、(たとえば、非常に長い鍵、メモリ集約的な暗号化アルゴリズム、他の計算コストが高いまたは回転暗号化アルゴリズムなどを使用する)暗号化のより多くの従来の方法に必要とされる追加の処理オーバヘッドなしに、ならびに鍵および/またはアルゴリズムの確率的なランダム化のより複雑な実装を必要とすることなく、より強力な暗号化をより効率的に達成する。
【００６５】
当業者であれば、上記で開示した概念は、公的台帳によって、攻撃者は、台帳のコピーを入手でき、任意の動機付けられた攻撃者に貴重な「データダンプ」を効果的に提供し、慎重に扱うべき暗号文へのアクセスを攻撃者が得るために簡単にとる必要がある任意のステップを取り除くという点で、非集中型または分散型台帳などの公的台帳に関する別の中心的な問題に対処することをさらに諒解されよう。しかしながら、本明細書の方法は、たとえば、任意の慎重に扱うべき鍵またはプレーンテキストが他のチャネルを介して漏洩したり、損なわれたりした場合など、たとえば、プレーンテキストの監査役または発信者のセキュリティにおける漏洩などを防止するのに十分ではない場合がある。
【００６６】
したがって、監査者304が秘密鍵302を間違った手に落とした場合、信頼できる許可された当事者(監査役304など)と同じ鍵を有する任意の攻撃者は、次いで、他の台帳エントリ、他の台帳、または(既存のセキュリティ侵害の伝統的なデータダンプを含む)そのような暗号文が利用可能であり得る任意の他の場所で同じ暗号化鍵を使用して暗号化された任意のメッセージを読み取ることができ得る。しかし、これらの弱点および類似の問題は、一般に基本的なセキュリティの慣習に由来しており、特には本明細書で説明するいくつかの暗号化技法の特定の強化には関係しない。
【００６７】
したがって、さらなる改善は、文字列レベルで模倣機能を使用して、文字列を暗号解読の観点から似たようなまたは類似の性質を有するようにすること、メッセージまたは他の定期的な通信のレベルで同じ模倣機能を適用すること、および/または少なくとも1つの異なる暗号化鍵で少なくともいくつかの虚偽のまたは擬似データを実際に暗号化し、虚偽のまたは疑似データに、少なくともいくつかのランダムノイズまたは既知の虚偽のデータ(「燻製ニシン」またはおとりデータ)を含めること、のうちの少なくとも1つ、またはそれらのいくつかの組合せを含み得る。
【００６８】
さらに、別の鍵で暗号化された既知の虚偽のデータを混在させることによって、攻撃者が実際に一部のデータを何とか解読することができるまれなケースであっても、攻撃者が偽のデータに惑わされる可能性がある、または、攻撃者はまたすべてのコンテンツを分析するためにすべての資産を解読する必要があり、おそらくどのバージョンを信頼するかを決定する必要がある可能性があるので、攻撃者はこのデータセットが実際のデータセットであることは依然として確信がない可能性があるという、さらに追加の利点がもたらされ得る。同様に、したがって、既知の虚偽のデータは、潜在的には虚偽のデータを含む追加の鍵と並んで、実際のデータの一部の量が公的に漏洩または壊され、少なくとも部分的に露出される可能性がある場合に、妥当な拒否権の要素を追加する可能性がある。したがって、ここに列挙した特徴のうちの複数の特徴の任意の結合された実装によって、本明細書で新たに説明する暗号化技法の意図された効果をさらに改善し得る。
【００６９】
いくつかの実施形態では、本明細書で開示される拡張暗号化技法を強力な一般的なセキュリティの慣習とともに実装することによって、慎重に扱うべき情報を暗号文として公的に入手可能にすることに依存するシステムにおける暗号化の性能および有効性を強化し得る。
【００７０】
この改善は、次に、いくつかの非限定的な例を挙げれば、分散型台帳およびブロックチェーン技術を含めて、公的領域に個人情報を置く可能性のある技術の採用者への信頼をさらに裏付ける可能性がある。ブロックチェーン技術の場合、そのような追加のセキュリティは、さらに、改ざんに対する抵抗(たとえば、偽造、意図的な削除や破壊など)、および分散型台帳技術の全体的な永続性と不変性など、共有または分散型公開台帳の他のセキュリティのメリットをユーザが利用できるようにする。
【００７１】
上記で説明したものなどの技法を使用して、通信および記憶されたデータは、追加のセキュリティを達成し得る。たとえ完全前方秘匿性または類似の保護が実現できない(契約上の義務、規制要件、または類似の非技術的理由など)場合でも、ユーザデータの長期的なセキュリティおよび整合性が大幅に改善され得る。
【００７２】
本明細書で説明した技法の別の特定の利点は、暗号文要素の周波数分析が、完全ではないにしても大部分は無効にされ得ることである。同時計数、時間ベースの攻撃、または長さに基づく攻撃など他の一般的なまたは関連する暗号解読技法は、本明細書に記載の技法に対して同様に効果的でないか、または役に立たない可能性がある。本明細書で言及される一般的な暗号解読を妨害することからさらに導出し得るさらなる具体的な利点は、ブルートフォース攻撃、あるいは目標のプレーンテキストを取得するため、および/または暗号化に使用される鍵を導出するための他の一般的なプレーンテキスト攻撃もしくは暗号文攻撃を遅くし、実質的に妨害し、および/または完全に防止することを含む。
【００７３】
理論上は、または実際には、効果的に破ることのできない可能性のある任意の他の暗号化方法の場合と同様に、ユーザは、所与の実装においてソーシャルエンジニアリング、情報漏洩、およびサイドチャネル攻撃に対して依然として脆弱である可能性がある。これらの2次的な弱点は、これらの脅威および、その緩和のためのベストプラクティス、ならびに、サイドチャネルの脆弱性についての独立した監査とともに、実装者による慎重な設計およびテストについてユーザに教育することによって緩和され得る。これらのような任意の普遍的な欠点が考慮され、任意の所与の実装および実際の使用において実現可能な範囲で適切に緩和されると仮定すると、本明細書に記載された暗号化技法は、公的な設定を含むユーザ情報のセキュリティおよび完全性を維持するのに非常に有効であることがわかり得る。
【００７４】
様々な実施形態は、たとえば、図5に示すコンピュータシステム500など、1つまたは複数のよく知られているコンピュータシステムを使用して実装され得る。たとえば、本明細書で説明した実施形態のうちのいずれか、ならびにそれらの組合せおよび部分組合せを実施するために、1つまたは複数のコンピュータシステム500が使用され得る。
【００７５】
コンピュータシステム500は、プロセッサ504などの1つまたは複数のプロセッサ(中央処理装置またはCPUとも呼ばれる)を含み得る。プロセッサ504は、バスまたは通信インフラストラクチャ506に接続され得る。
【００７６】
コンピュータシステム500は、ユーザ入力/出力インターフェース502を介して通信インフラストラクチャ506と通信することができるモニタ、キーボード、ポインティングデバイスなどのユーザ入力/出力デバイス503も含み得る。
【００７７】
1つまたは複数のプロセッサ504は、グラフィックス処理ユニット(GPU)であり得る。一実施形態では、GPUは、数学的に集中的なアプリケーションを処理するように設計された特殊な電子回路であるプロセッサであり得る。GPUは、コンピュータグラフィックスアプリケーション、画像、ビデオ、ベクトル処理、アレイ処理などに共通する数学的に集中的なデータなど大きいデータブロック、ならびに、暗号化(ブルートフォースクラッキングを含む)、暗号化ハッシュまたはハッシュシーケンスの生成、部分的なハッシュ逆変換問題の解決、および/または、たとえば、いくつかのブロックチェーンベースのアプリケーションのための他のプルーフオブワーク演算の結果の生成の並列処理に効率的な並列構造を有し得る。
【００７８】
さらに、プロセッサ504のうちの1つまたは複数は、ハードウェア加速暗号コプロセッサを含む、暗号計算または他の特殊な数学関数を加速するためのコプロセッサまたは他のロジックの実装を含み得る。そのような加速プロセッサは、コプロセッサおよび/またはそのような加速を容易にするための他のロジックを使用して加速するための命令セットをさらに含み得る。
【００７９】
コンピュータシステム500は、ランダムアクセスメモリ(RAM)などのメインメモリまたは1次メモリ508も含み得る。メインメモリ508は、1つまたは複数のレベルのキャッシュを含み得る。メインメモリ508には、制御ロジック(すなわち、コンピュータソフトウェア)および/またはデータが記憶され得る。
【００８０】
コンピュータシステム500は、1つまたは複数の2次ストレージデバイスまたは2次メモリ510も含み得る。2次メモリ510は、たとえば、メインストレージドライブ512および/またはリムーバブルストレージデバイスもしくはドライブ514を含み得る。メインストレージドライブ512は、たとえば、ハードディスクドライブまたはソリッドステートドライブであり得る。リムーバブルストレージドライブ514は、フロッピーディスクドライブ、磁気テープドライブ、コンパクトディスクドライブ、光ストレージデバイス、テープバックアップデバイス、および/または任意の他のストレージデバイス/ドライブであり得る。
【００８１】
リムーバブルストレージドライブ514は、リムーバブルストレージユニット518と対話し得る。リムーバブルストレージユニット518は、コンピュータソフトウェア(制御ロジック)および/またはデータが記憶されたコンピュータ使用可能または可読ストレージデバイスを含み得る。リムーバブルストレージユニット518は、フロッピーディスク、磁気テープ、コンパクトディスク、DVD、光ストレージディスク、および/または任意の他のコンピュータデータストレージデバイスであってもよい。リムーバブルストレージドライブ514は、リムーバブルストレージユニット518から読み取り、および/またはリムーバブルストレージユニット518に書き込み得る。
【００８２】
2次メモリ510は、コンピュータプログラムおよび/または他の命令および/またはデータがコンピュータシステム500によってアクセスされることを可能にするための他の手段(means)、デバイス、構成要素、手段(instrumentalities)、または他の手法を含み得る。そのような手段(means)、デバイス、構成要素、手段(instrumentalities)、または他の手法は、たとえば、リムーバブルストレージユニット522およびインターフェース520を含み得る。リムーバブルストレージユニット522およびインターフェース520の例は、プログラムカートリッジおよびカートリッジインターフェース(ビデオゲームデバイスに見られるものなど)、リムーバブルメモリチップ(EPROMまたはPROMなど)および関連するソケット、メモリスティックおよびUSBポート、メモリカードおよび関連するメモリカードスロット、ならびに/または任意の他のリムーバブルストレージユニットおよび関連するインターフェースを含み得る。
【００８３】
コンピュータシステム500は、通信またはネットワークインターフェース524をさらに含み得る。通信インターフェース524によって、コンピュータシステム500は、外部デバイス、外部ネットワーク、外部エンティティなど(個々に、および集合的に参照番号528によって参照される)の任意の組合せと通信し、対話することが可能になり得る。たとえば、通信インターフェース524は、コンピュータシステム500が、ワイヤードおよび/またはワイヤレス(またはそれらの組合せ)であり、LAN、WAN、インターネットなどの任意の組合せを含み得る通信経路526を介して外部またはリモートデバイス528と通信することを可能にし得る。コンピュータシステム500との間で通信経路526を介して制御ロジックおよび/またはデータが送信されてもよい。
【００８４】
コンピュータシステム500は、いくつかの非限定的な例を挙げれば、パーソナルデジタルアシスタント(PDA)、デスクトップワークステーション、ラップトップまたはノートブックコンピュータ、ネットブック、タブレット、スマートフォン、スマートウォッチまたは他の着用可能なアプライアンス、モノのインターネット(IoT)の一部、および/もしくは組込みシステム、またはそれらの任意の組合せのうちのいずれかでもよい。
【００８５】
本明細書で説明したフレームワークは、方法、プロセス、装置、システム、または非一時的なコンピュータ可読媒体またはデバイスなどの製造品として実装されてもよいことを理解されたい。説明の目的で、本フレームワークは、公的に利用可能な、または信頼できない第三者に少なくとも利用可能な分散型台帳の文脈において説明され得る。現代の使用事例としての1つの例は、ブロックチェーンベースのシステムによるものである。しかしながら、本フレームワークは、慎重に扱うべきまたは機密の情報が信頼できない第三者の手によって、またはそれを介して渡す必要がある可能性がある他の設定にも適用できること、およびこの技術が決して分散型台帳またはブロックチェーンの使用に限定されないことを理解されたい。
【００８６】
コンピュータシステム500は、限定はしないが、リモートまたは分散型クラウドコンピューティングソリューション、ローカルまたはオンプレミスのソフトウェア(たとえば、「オンプレミス」クラウドベースのソリューション)、「サービスとしての」モデル(たとえば、サービスとしてのコンテンツ(CaaS)、サービスとしてのデジタルコンテンツ(DCaaS)、サービスとしてのソフトウェア(SaaS)、サービスとしてのマネージドソフトウェア(MSaaS)、サービスとしてのプラットフォーム(PaaS)、サービスとしてのデスクトップ(DaaS)、サービスとしてのフレームワーク(FaaS)、サービスとしてのバックエンド(BaaS)、サービスとしてのモバイルバックエンド(MBaaS)、サービスとしてのインフラストラクチャ(IaaS)、サービスとしてのデータベース(DBaaS)など)、および/または前述の例または他のサービスまたは配信パラダイムの任意の組合せを含むハイブリッドモデルを含む、任意の配信パラダイムを介して任意のアプリケーションおよび/またはデータにアクセスし、またはそれをホスティングするクライアントまたはサーバであってもよい。
【００８７】
任意の適用可能なデータ構造、ファイル形式、およびスキーマは、限定はしないが、JavaScript(登録商標) Object Notation(JSON)、拡張可能マークアップ言語(XML)、また別のマークアップ言語(YAML)、拡張可能ハイパーテキストマークアップ言語(XHTML)、ワイヤレスマークアップ言語(WML)、MessagePack、XMLユーザインターフェース言語(XUL)、または任意の他の機能的に類似した表現を単独または組合せて含む標準から導出され得る。あるいは、プロプライエタリなデータ構造、形式、またはスキーマが、排他的に、または既知の標準またはオープンな標準と組合せて使用され得る。
【００８８】
任意の関連するデータ、ファイル、および/またはデータベースは、他の可能な形式の中で、様々なタイプのマークアップ言語をさらに含む、数字、テキスト、グラフィック、またはマルチメディア形式のような人間が読み取れる形式で記憶、検索、アクセス、および/または送信され得る。代わりに、または上記の形式と組合せて、データ、ファイル、および/またはデータベースを、バイナリ、符号化、圧縮、および/または暗号化された形式、または任意の他の機械可読形式で記憶、検索、アクセス、および/または送信され得る。
【００８９】
様々なシステムおよび層の中のインターフェースまたは相互接続は、限定はしないが、ドキュメントオブジェクトモデル(DOM)、ディスカバリサービス(DS)、NSUserDefaults、ウェブサービス記述言語(WSDL)、メッセージ交換パターン(MEP)、ウェブ分散データ交換(WDDX)、ウェブハイパーテキストアプリケーション技術ワーキンググループ(WHATWG)HTML5ウェブメッセージング、Representational State Transfer(RESTまたはRESTfulウェブサービス)、拡張可能ユーザインターフェースプロトコル(Extensible User Interface Protocol: XUP)、シンプルオブジェクトアクセスプロトコル(Simple Object Access Protocol: SOAP)、XMLスキーマ定義(XML Schema Definition: XSD)、XMLリモートプロシージャ呼出し(XML Remote Procedure Call: XML-RPC)、または類似の機能および結果を達成する可能性のあるオープンまたはプロプライエタリな任意の他の機構を含む、任意の数のプロトコル、プログラムフレームワーク、フロアプラン、またはアプリケーションプログラミングインターフェース(API)のような任意の数の機構を使用し得る。
【００９０】
そのようなインターフェースまたは相互接続は、ユニフォームリソースロケータ(URI)またはユニフォームリソース名(URN)をさらに含み得る、ユニフォームリソース識別子(URI)を利用することもできる。ユニフォームおよび/または一意の識別子、ロケータ、または名前の他の形式が、排他的にまたは上記のような形式と組合せて使用されてもよい。
【００９１】
上記のプロトコルまたはAPIのいずれも、任意のプログラミング言語、手続き型、関数型、またはオブジェクト指向型とインターフェースしてもよく、またはそれで実装されてもよく、コンパイルまたは解釈されてもよい。非限定的な例は、C、C++、C#、Objective-C、Java(登録商標)、Swift、Go、Ruby、Perl、Python、JavaScript(登録商標)、WebAssembly、またはほぼすべての任意の他の言語を、任意の他のライブラリもしくはスキーマで、限定はしないが、多くの他の非限定的な例の中で、Node.js、V8、Knockout、jQuery、Dojo、Dijit、OpenUI5、AngularJS、Express.js、Backbone.js、Ember.js、DHTMLX、Vue、React、Electronなどを含めて任意の種類のフレームワーク、実行時環境、仮想マシン、インタプリタ、スタック、エンジン、または類似の機構に含む。
【００９２】
いくつかの実施形態では、制御ロジック(ソフトウェア)が記憶された有形の非一時的なコンピュータ使用可能または可読媒体を含む有形の非一時的な装置または製造品は、本明細書ではコンピュータプログラム製品またはプログラムストレージデバイスとも呼ばれ得る。これは、限定はしないが、コンピュータシステム500、メインメモリ508、2次メモリ510、およびリムーバブルストレージユニット518および522、ならびに上記の任意の組合せを組み込む有形の製造品を含む。そのような制御ロジックは、(コンピュータシステム500など)1つまたは複数のデータ処理デバイスによって実行されると、そのようなデータ処理デバイスに、本明細書で説明するように動作させ得る。
【００９３】
本開示に含まれる教示に基づいて、データ処理デバイス、コンピュータシステム、および/または図5に示したもの以外のコンピュータアーキテクチャを使用して、本開示の実施形態を作成および使用する方法が当業者には明らかであろう。特に、実施形態は、本明細書に記載されているもの以外のソフトウェア、ハードウェア、および/またはオペレーティングシステムの実装で動作することができる。
【００９４】
詳細な説明のセクションは、任意の他のセクションではなく、特許請求の範囲を解釈するために使用されることが意図されていることを諒解されたい。他のセクションは、発明者によって企図されるように、全部ではなく1つまたは複数の例示的な実施形態を示すことができ、したがって、本開示または添付の特許請求の範囲をいかなる形でも限定しないものとする。
【００９５】
本開示は、例示的な分野および用途についての例示的な実施形態を記載するが、本開示はそれに限定されないことを理解されたい。本発明の他の実施形態および修正が可能であり、本開示の範囲および意図の範囲内である。たとえば、本段落の一般性を制限することなく、実施形態は、図に示され、および/または本明細書で説明されるソフトウェア、ハードウェア、ファームウェア、および/またはエンティティに限定されない。さらに、実施形態(本明細書に明示的に記載されているかどうかにかかわらず)は、本明細書に記載されている例を超えて、分野および用途に対する重要な有用性を有する。
【００９６】
指定された機能の実装およびその関係を示す機能的構成単位の助けを借りて、本明細書で実施形態を説明してきた。これらの機能的構成単位の境界は、説明の便宜のために、本明細書において任意に定義されている。指定された機能および関係(またはその等価物)が適切に実行される限り、代替の境界を定義することができる。また、代替の実施形態は、本明細書に記載された順序とは異なる順序を使用して、機能ブロック、ステップ、動作、方法などを実行することができる。
【００９７】
「一実施形態」、「実施形態」、「例示的な実施形態」、「いくつかの実施形態」、または同様の句への本明細書での言及は、記載された実施形態が特定の特徴、構造、または特性を含み得ることを示しているが、あらゆる実施形態は、必ずしも特定の特徴、構造、または特性を含むとは限らない場合がある。さらに、そのような句は、必ずしも同じ実施形態を指しているとは限らない。さらに、特定の特徴、構造、または特性が実施形態に関連して記載されているとき、そのような特徴、構造、または特性を他の実施形態に組み込むことは、本明細書において明示的に言及または記載されているかどうかにかかわらず、当業者の知識の範囲内であろう。さらに、いくつかの実施形態は、それらの派生語とともに「結合された」および「接続された」という表現を使用して説明することができる。これらの用語が必ずしも互いに同義語として意図されているとは限らない。たとえば、いくつかの実施形態は、2つ以上の要素が物理的または電気的に互いに直接的に接触していることを示すために「接続された」および/または「結合された」という用語を使用して説明することができる。しかしながら、「結合された」という用語は、2つ以上の要素が互いに直接接触していないが、依然として互いに協働しまたは相互作用していることも意味し得る。
【００９８】
本開示の幅および範囲は、上記の例示的な実施形態のいずれによっても制限されないものとするが、以下の特許請求の範囲およびそれらの均等物に従ってのみ定義されるものとする。
【符号の説明】
【００９９】
100  システム
110  ローカル台帳
120  ノード
130  ネットワーク接続
140  クライアント
150  タイマー
160  ノイズ生成器
170  キャッシュ
180  暗号化器
190  公開鍵
300  グローバルネットワーク
302  秘密鍵
304  監査役
306  攻撃者
308  ローカル台帳
312  ノード
316  ノード
318  ローカル台帳
326  センサー
500  コンピュータシステム
502  ユーザ入力/出力インターフェース
503  ユーザ入力/出力デバイス
504  プロセッサ
506  通信インフラストラクチャ
508  メインメモリ
510  2次メモリ
512  メインストレージドライブ
514  リムーバブルストレージドライブ
518  リムーバブルストレージユニット
520  インターフェース
522  リムーバブルストレージユニット
524  ネットワークインターフェース
526  通信経路
528  リモートデバイス
【図１】
2019205152.tif 000003
【図２】
2019205152.tif 000004
【図３】
2019205152.tif 000005
【図４】
2019205152.tif 000006
【図５】
2019205152.tif 000007
【外国語明細書】
2019205152000001.pdf