(57)【要約】  パケットネットワークは、パケット処理を実行するためのパケットエンジン（５０）を含む。パケットエンジン（５０）とは別に、暗号化および／または認証処理を実行するための暗号エンジン（６０）が提供される。データパケットの相対的なタイミングと順序を保持するために、パケットエンジン（５０）は、データフローにダミーパケット（５９）を挿入することによって、データトラフィックのプリシェーピングを実行する。パケットエンジン（５０）は、プリシェーピングされたデータトラフィックを暗号エンジン（６０）に提供する。
2020510339.tif 000002
【特許請求の範囲】
【請求項１】
パケットネットワークにおいて送信されるデータパケットの相対的なタイミングと順序を保持するための方法であって、前記パケットネットワークは、パケット処理を実行するためのパケットエンジン（１２，２２，３２；５０）を含み、前記パケットエンジン（１２，２２，３２；５０）とは別に、暗号化および／または認証処理を実行するための暗号エンジン（１４，２４，３４；６０）が提供され、前記方法は、
パケットエンジン（１２，２２，３２；５０）が、データフローにダミーパケット（５９）を挿入することによって、データトラフィックのプリシェーピングを実行するステップと、
前記パケットエンジン（１２，２２，３２；５０）が、前記プリシェーピングされたデータトラフィックを暗号エンジン（１４，２４，３４；６０）に提供するステップとを含む、方法。
【請求項２】
前記暗号エンジン（１４，２４，３４；６０）が、前記ダミーパケット（５９）の少なくとも一部を使用して、管理チャネルの送信を行うステップをさらに含む、請求項１に記載の方法。
【請求項３】
前記暗号エンジン（１４，２４，３４；６０）は、前記ダミーパケット（５９）の少なくとも一部を使用して、暗号化キーの交換を行う、請求項２に記載の方法。
【請求項４】
前記暗号エンジン（１４，２４，３４；６０）は、前記データトラフィックに追加のパケットを挿入することなく、前記暗号化および／または認証処理を実行する、先行する請求項のいずれか１項に記載の方法。
【請求項５】
前記ダミーパケット（５９）を前記データトラフィックに挿入することは、起動または新たなユーザ入力に応じて実行される以下のステップ、すなわち、
パケットエンジン（１２，２２，３２；５０）に接続されたまたは前記パケットエンジン（１２，２２，３２；５０）によって構成された中央処理装置（５１）上で実行されるコンピュータ可読命令コードを用いて、メモリ画像を生成し、前記メモリ画像をテンプレートとしてメモリ（５４）に書き込むステップと、
前記コンピュータ可読命令コードを用いて、繰り返し間隔で前記メモリ（５４）から前記画像を取り出すように、前記パケットエンジンのパケットスイッチ（５２）を設定するステップと、
前記パケットスイッチ（５２）を用いて、前記繰り返し間隔で前記メモリ（５４）から前記画像を取り出し、前記画像を前記データフローに挿入するステップとを含み、前記画像は、前記コンピュータ可読命令コードによって構成されたポートにおいて前記データフローに挿入される、先行する請求項のいずれか１項に記載の方法。
【請求項６】
前記ダミーパケット（５９）は、空セクションのシグナリング通信チャネル（ＳＣＣ）パケットを含む、先行する請求項のいずれか１項に記載の方法。
【請求項７】
前記パケットエンジン（１２，２２，３２；５０）が、暗号化および／または認証されたデータフローから抜けたＳＣＣパケットを削除するステップをさらに含む、請求項６に記載の方法。
【請求項８】
前記データトラフィックをプリシェーピングするステップは、前記パケットエンジン（１２，２２，３２；５０）の出力ポート（５３）においてパケット間ギャップを拡大することをさらに含む、先行する請求項のいずれか１項に記載の方法。
【請求項９】
前記パケット間ギャップを拡大することは、前記データフローに追加のバイトを挿入することおよび／または前記パケットエンジン（１２，２２，３２；５０）からのデータパケットの送信を遅延させることを含む、請求項８に記載の方法。
【請求項１０】
前記暗号エンジン（１４，２４，３４；６０）は、前記暗号化および／または認証処理を実行するときに、データパケットを前記パケット間ギャップに成長させる、請求項８または９に記載の方法。
【請求項１１】
前記拡大されたパケット間ギャップのサイズは、設定可能である、請求項７〜１０のいずれか１項に記載の方法。
【請求項１２】
前記拡大されたパケット間ギャップのサイズを決定するステップをさらに含み、
前記拡大されたパケット間ギャップのサイズを決定するステップは、
前記パケットエンジンのインターフェイスから開始する前記パケットネットワークの全ての構成経路をトラバースすることと、
前記構成経路のうち、最大のパケット間ギャップを必要とする１つの構成経路を用いて、前記インターフェイスの前記拡大されたパケット間ギャップを決定することと、
中央処理装置（５１）がレジスタバイトシーケンスを構築し、前記レジスタバイトシーケンスをパケットエンジン（１２，２２，３２；５０）のレジスタに書き込むことによって、前記パケットエンジン（１２，２２，３２；５０）からのデータパケットの送信を遅延させるように前記パケットエンジン（１２，２２，３２；５０）をトリガすることとを含む、請求項８〜１１のいずれか１項に記載の方法。
【請求項１３】
前記パケットエンジン（１２，２２，３２；５０）が、前記パケットエンジン（１２，２２，３２；５０）の入力ポートまたは出力ポート（５３）でタイムスタンピングを実行するステップをさらに含む、先行する請求項のいずれか１項に記載の方法。
【請求項１４】
前記タイムスタンピングは、前記プリシェーピングされた前記データトラフィックが前記暗号エンジン（１４，２４，３４；６０）に提供される前に実行される、請求項１３に記載の方法。
【請求項１５】
前記暗号エンジン（１４，２４，３４；６０）は、タイムスタンピングコンテキストの外側で動作し、
前記パケットエンジン（１２，２２，３２；５０）は、前記タイムスタンピングコンテキストの内側で動作する、先行する請求項のいずれか１項に記載の方法。
【請求項１６】
前記パケットネットワーク（１０）は、産業自動化制御システムのネットワークである、先行する請求項のいずれか１項に記載の方法。
【請求項１７】
前記パケットネットワーク（１０）は、高電圧線の自動化、高速列車の操縦、または航空交通の制御を行うためのパケットネットワークである、先行する請求項のいずれか１項に記載の方法。
【請求項１８】
パケットネットワーク内のデータパケットを処理するためのパケットエンジン（１２，２２，３２；５０）であって、前記パケットエンジン（１２，２２，３２；５０）は、
前記パケットエンジン（５０）とは別に提供された暗号エンジン（６０）に接続されるように動作するインターフェイス（５３）と、
前記インタフェース（５３）を介して前記暗号エンジン（６０）に出力されるデータトラフィックのプリシェーピングを制御するように動作する少なくとも１つの処理ユニット（５１）とを備え、
前記パケットエンジン（１２，２２，３２；５０）は、前記プリシェーピングされたデータトラフィックが前記暗号エンジン（１４，２４，３４；６０）に提供される前に、ダミーパケット（５９）をデータフローに挿入するように動作する、パケットエンジン（１２，２２，３２；５０）。
【請求項１９】
前記パケットエンジン（１２，２２，３２；５０）は、前記インターフェイスでパケット間ギャップを拡大するように動作する、請求項１８に記載のパケットエンジン（１２，２２，３２；５０）。
【請求項２０】
前記パケットエンジン（１２，２２，３２；５０）は、前記暗号エンジンが追加のデータパケットを挿入する必要なく、安全な端末間経路を介して送信されるデータパケットの相対的なタイミングと順序を保持するように、前記データトラフィックをプリシェーピングするように動作する、請求項１８または１９に記載のパケットエンジン（１２，２２，３２；５０）。
【請求項２１】
パケットネットワーク（１０）において暗号化および／または認証処理を実行するための暗号エンジン（１４，２４，３４；６０）であって、
前記暗号エンジン（１４，２４，３４；６０）とは別に提供されたパケットエンジン（１２，２２，３２；５０）に接続されるように動作するインターフェイスを備え、前記インターフェイスは、前記パケットエンジンから、プリシェーピングされたデータトラフィックを受け取るように動作し、
前記暗号エンジン（１４，２４，３４；６０）は、前記パケットネットワーク内の安全な端末間経路を介して送信されるデータパケットの相対的なタイミングと順序を保持するように、暗号化および／または認証処理を実行するように動作する、暗号エンジン。
【請求項２２】
前記暗号エンジン（１４，２４，３４；６０）は、前記プリシェーピングされたデータトラフィックにデータパケットを追加することなく、前記暗号化および／または認証処理を実行するように動作する、請求項２１に記載の暗号エンジン。
【請求項２３】
前記暗号エンジン（１４，２４，３４；６０）は、連続したデータパケットの間にパケット間ギャップが残るように、前記プリシェーピングされたデータトラフィックに含まれるデータパケットのサイズを大きくすることによって、前記暗号化および／または認証処理を実行するように動作する、請求項２１または２２に記載の暗号エンジン。
【請求項２４】
前記インターフェイス（６１）は、前記パケットエンジン（１２，２２，３２；５０）からタイムスタンプ付きデータパケットを受け取るように動作する、請求項２１〜２３のいずれか１項に記載の暗号エンジン。
【請求項２５】
請求項１８〜２０のいずれか１項に記載のパケットエンジン（１２，２２，３２；５０）を含むネットワークカードと、
請求項２１〜２４のいずれか１項に記載の暗号エンジン（１４，２４，３４；６０）を含む暗号化カードとを備える、パケットネットワーク用のサブラック。
【発明の詳細な説明】
【技術分野】
【０００１】
発明の分野
本発明は、パケットネットワークにおけるデータ送信に関する。特に、本発明は、例えば、暗号化および／または認証を使用して安全な端末間経路または安全なセグメントを提供するパケットネットワークにおいて、データパケットを送信するための方法および装置に関する。本発明は、産業自動化制御システム、特に電力設備を監視および制御するためのネットワークを含むがこれらに限定されないミッションクリティカルな応用に適した方法および装置に関する。本発明は、特に、暗号化および／または認証処理を実行する暗号エンジン内のパケットの相対的なタイミングおよび順序および／または安全な端末間経路に沿って送信されるパケットの相対的なタイミングおよび順序を保持するための方法および装置に関する。
【背景技術】
【０００２】
発明の背景
パケットネットワークにおいてデータ送信の完全性および信憑性を保証するために、情報を暗号化または認証する必要がある。その結果、データストリーム内のパケットの大部分は、暗号化および／または認証された対応物によって置換される。従来に、暗号化および／または認証プロトコルは、パケットのサイズを増加または減少すると共に、ストリームにパケットを追加／削除する必要がある。メッシュネットワークの中間ノードで行われた処理済みサブストリームおよび未処理サブストリームの必要な並列処理を組み合わせると、暗号化および／または認証によるストリーム特性の改変は、端末間遅延の大幅な変動およびパケット順序の改変をもたらす。
【０００３】
暗号化および／または認証がワイヤ速度で実行される場合に一定の微小遅延を挿入しても、パケットの挿入およびパケットサイズの拡大は、非決定的な遅延、ジッタおよび遅延の変動を加える可能性がある。
【０００４】
端末間遅延の大幅な変動およびパケット順序の改変は、一般的に、ミッションクリティカル応用に使用される決定的な制御アルゴリズムには許容されない。端末間遅延の大幅な変動およびパケット順序の改変に関連する問題に対処する１つの手法は、送信の直前に、すなわち、暗号化および／または認証処理を実行した後に、クリティカルパケットのタイムスタンピングを行うことである。この手法は、さまざまな理由で望ましくない。例えば、この手法は、複雑さを追加する。また、この手法は、暗号化および／または認証処理を実行するための装置をタイムスタンピングコンテキストに配置する必要、すなわち、装置がタイムスタンピングプロトコルを認識して使用する必要がある。
【発明の概要】
【課題を解決するための手段】
【０００５】
概要
本発明の目的は、パケットネットワークにおいてデータ送信を行うための方法、装置およびシステムを改良することである。特に、本発明の目的は、非決定的な遅延、ジッタおよび遅延の変動に関連する問題を軽減しながら、パケットネットワークにおいて暗号化および／または認証データの送信を提供する方法、装置およびシステムを改良することである。また、本発明の目的は、暗号化および／または認証処理をデータパケットに適用した後にタイムスタンピングを実行する必要なく、パケットの順序を保持する方法、装置およびシステムを改良することである。
【０００６】
例示的な実施形態によれば、提供された方法および装置は、中間ノードにおいてデータパケットをタイムスタンピングして並列処理ストリームに分ける前に、パケットエンジンにおいてダミーパケットを追加するおよび／またはパケット間ギャップを拡大することによって、データトラフィックのプリシェーピングを実行する。
【０００７】
データトラフィックのプリシェーピングによって、暗号化および／または認証処理を実行する暗号エンジンにおいて追加のデータパケットを追加する必要はない。暗号エンジンによって拡大されたデータパケットは、空のパケット間ギャップのみに成長する。したがって、中間ノードにおいて「処理される」サブストリームと「処理されていない」サブストリームの分離および合併は、自然にインターリーブする。パケットのタイミングおよび順序は、保持される。
【０００８】
開示された方法および装置が（ａ）暗号化および／または認証処理を実行する暗号エンジンによって、新たなデータパケットを挿入する必要および（ｂ）暗号化および／または認証処理の後に暗号エンジンがタイムスタンピングを実行する必要がなく、データパケットの相対的なタイミングおよび順序を保持することができるため、例示的な実施形態は、複雑なメッシュネットワークを介してデータパケットを送信しても、暗号化および／または認証データパケット送信を行うためのワイヤのような決定論を提供する。
【０００９】
本発明の一態様によれば、パケットネットワークにおいて送信されるデータパケットの相対的なタイミングおよび順序を保存するための方法が提供される。パケットネットワークは、パケット処理を実行するパケットエンジンを備え、パケットエンジンとは別に、暗号化および／または認証処理を実行するための暗号エンジンが提供される。この方法は、パケットエンジンが、ダミーパケットをデータフローに挿入することによって、データトラフィックのプリシェーピングを実行するステップを含む。この方法は、パケットエンジンが、プリシェーピングされたデータトラフィックを暗号エンジンに提供するステップを含む。
【００１０】
暗号エンジンは、パケットエンジンから物理的に分離されてもよく、イーサネット（登録商標）ケーブルまたは光ケーブルを介してパケットエンジンに接続されてもよい。暗号エンジンとパケットエンジンを物理的に分離することによって、安全性を向上することができる。
【００１１】
「暗号エンジン」という用語は、本明細書に使用された場合、暗号化／復号および／または認証処理を実行するように構成された装置を指す。必要に応じて、暗号エンジンは、暗号化／復号および／または認証処理を実行するための専用コンポーネント、例えば物理乱数発生器を備えることができる。
【００１２】
「ダミーパケット」という用語は、本明細書に使用された場合、ペイロードデータを含まず、暗号エンジンによって制御情報で充填されたパケットを指す。
【００１３】
方法は、暗号エンジンがダミーパケットの少なくとも一部を使用して、管理チャネルの送信を行うステップをさらに含むことができる。暗号エンジンは、暗号化および／または認証に関連する制御情報をダミーパケットの少なくとも一部に挿入することができる。ダミーパケットによって、暗号エンジンによる追加パケットの作成が不要になる。
【００１４】
暗号エンジンは、ダミーパケットを使用して、暗号化キーの交換を行うことができる。
暗号エンジンは、データトラフィックに追加のパケットを挿入することなく、暗号化および／または認証処理を実行することができる。
【００１５】
ダミーパケットをデータトラフィックに挿入することは、以下のステップ、すなわち、パケットエンジンに接続されたまたはパケットエンジンによって構成された中央処理装置で実行されるコンピュータ可読命令コードを用いて、メモリ画像を生成し、メモリ画像をテンプレートとしてメモリに書き込むステップと、コンピュータ可読命令コードを用いて、繰り返し間隔でメモリから画像を取り出すように、パケットエンジンのパケットスイッチを構成するステップと、パケットスイッチを用いて、繰り返し間隔でメモリから画像を取り出し、画像をデータフローに挿入するステップとを含み、画像は、コンピュータ可読命令コードによって構成されたポートにおいてデータフローに挿入される。これらのステップは、例えば、パケットエンジンの起動に応じてまたは新たなユーザ入力に応じて実行されてもよい。
【００１６】
メモリは、パケットスイッチおよび中央処理装置の共有メモリであってもよい。
ダミーパケットは、空セクションのシグナリング通信チャネル（Signaling Communication Channel：ＳＣＣ）パケットを含んでもよい。
【００１７】
この方法は、パケットエンジンが暗号化および／または認証されたデータフローから抜けたＳＣＣパケットを削除するステップをさらに含むことができる。
【００１８】
暗号エンジンは、制御情報をダミーパケットに追加することによって制御パケットを生成するときに、追加の外部マルチプロトコルラベルスイッチング（ＭＰＬＳ）ヘッダを追加することができる。外部ＭＰＬＳヘッダによって、ＭＰＬＳネットワーク内の中間ノード、例えばパケットスイッチは、汎用関連チャネルラベル（ＧＡＬ）ＳＣＣヘッダを見えなくなる。これによって、終点暗号エンジンが外部ＭＰＬＳヘッダを剥ぎ取った後のみ、ＧＡＬ  ＳＣＣパケットが削除される。端末間ＭＰＬＳパケットフローは、暗号エンジンによって追加された制御情報とは無関係になる。
【００１９】
データトラフィックをプリシェーピングすることは、パケットエンジンの出口ポートにおいてパケット間ギャップを拡大することをさらに含むことができる。
【００２０】
パケット間ギャップを拡大することは、データフローに追加のバイトを挿入することおよび／またはパケットエンジンからのデータパケットの送信を遅延させることを含むことができる。
【００２１】
暗号エンジンは、暗号化および／または認証処理を実行するときに、データパケットをパケット間ギャップに成長させることができる。暗号エンジンは、ジッタを引き起こしたり、遅延を導入したりおよび暗号エンジンでタイムスタンピングを実行したりすることなく、データパケットをパケット間ギャップにそれぞれ成長させることができる。
【００２２】
拡大されたパケット間ギャップのサイズは、設定可能である。
この方法は、拡大されたパケット間ギャップのサイズを決定するステップをさらに含むことができる。暗号エンジンが暗号化および／または認証処理を実行するときに、連続するデータパケットの相対的なタイミングを改変することなく、データパケットをパケット間ギャップのみに成長させるように、拡大されたパケット間ギャップを設定することができる。
【００２３】
拡大されたパケット間ギャップのサイズを決定するステップは、パケットエンジンのインターフェイスから開始するパケットネットワークの全ての構成経路をトラバースすることと、構成経路のうち、最大のパケット間ギャップを必要とする１つの構成経路を用いて、インターフェイスの拡大されたパケット間ギャップを決定することと、中央処理装置がレジスタバイトシーケンスを構築し、レジスタバイトシーケンスをパケットエンジンのレジスタに書き込むことによって、パケットエンジンからのデータパケットの送信を遅延させるようにパケットエンジンをトリガすることとを含む。
【００２４】
この方法は、パケットエンジンがパケットエンジンの入口ポートまたは出口ポートでタイムスタンピングを実行するステップをさらに含むことができる。
タイムスタンピングは、プリシェーピングされたデータトラフィックが暗号エンジンに提供される前に実行される。
【００２５】
この方法において、暗号エンジンは、タイムスタンピングを実行しない。
この方法において、暗号エンジンは、タイムスタンピング情報を使用することなく、動作することができる。
【００２６】
この方法において、暗号エンジンは、高精度時間プロトコル（ＰＴＰ）などのタイムスタンピングプロトコルを使用することなく、動作することができる。
【００２７】
暗号エンジンは、パケットネットワークのタイムスタンピングコンテキストの外側で動作することができる。
【００２８】
パケットエンジンは、パケットネットワークのタイムスタンピングコンテキストの内側で動作することができる。
【００２９】
パケットネットワークは、ＭＰＬＳネットワークまたはＭＰＬＳトランスポートプロファイル（ＭＰＬＳ−ＴＰ）ネットワークであってもよい。
【００３０】
パケットネットワークは、産業自動化制御システム（ＩＡＣＳ）のネットワークであってもよい。
【００３１】
パケットネットワークは、高電圧線の自動化、高速列車の操縦、または航空交通の制御を行うためのパケットネットワークであってもよい。
【００３２】
パケットネットワークは、時限パケットネットワークであってもよい。
一実施形態に従って、パケットネットワーク内のデータパケットを処理するためのパケットエンジンは、パケットエンジンとは別に提供された暗号エンジンに接続されるように動作するインターフェイスと、インタフェースを介して暗号エンジンに出力されるデータトラフィックのプリシェーピングを制御するように動作する少なくとも１つの処理ユニットとを備え、パケットエンジンは、プリシェーピングされたデータトラフィックが暗号エンジンに提供される前に、ダミーパケットをデータフローに挿入するように動作する。
【００３３】
パケットエンジンは、インターフェイスでパケット間ギャップを拡大するように動作することができる。
【００３４】
パケットエンジンは、追加のバイトをデータフローに挿入することおよび／またはパケットエンジンからのデータパケットの送信を遅延させることによって、パケット間ギャップを拡大するように動作することができる。
【００３５】
パケットエンジンは、拡大されたパケット間ギャップのサイズを設定できるように動作することができる。拡大されたパケット間ギャップは、暗号エンジンが暗号化および／または認証処理を実行するときに、連続するデータパケットの相対的なタイミングを改変することなく、データパケットをパケット間ギャップのみに成長させるように設定されてもよい。
【００３６】
パケットエンジンまたはパケットエンジンに接続された制御装置は、拡大されたパケット間ギャップのサイズを決定するように動作することができる。この目的のために、パケットエンジンまたは制御装置は、パケットエンジンのインターフェイスから開始するパケットネットワーク内の全ての構成経路をトラバースし、構成経路のうち、最大のパケット間ギャップを必要とする１つの構成経路を用いて、インターフェイスの拡大されたパケット間ギャップを設定するように動作することができる。パケットエンジンの中央処理装置は、レジスタバイトシーケンスを構築し、レジスタバイトシーケンスをパケットエンジンのレジスタに書き込むことによって、パケットエンジンからのデータパケットの送信を遅延させるようにパケットエンジンをトリガするように動作することができる。
【００３７】
パケットエンジンは、暗号エンジンが追加のデータパケットを挿入する必要なく、安全な端末間経路を介して送信されるデータパケットの相対的なタイミングと順序を保持するように、データトラフィックをプリシェーピングするように動作することができる。
【００３８】
パケットエンジンは、パケットエンジンの中央処理装置で実行されるコンピュータ可読命令コードを用いて、メモリ画像を生成し、メモリ画像をテンプレートとしてメモリに書き込むように動作することができる。コンピュータ可読命令コードは、繰り返し間隔でメモリから画像を取り出すように、パケットエンジンのパケットスイッチを構成するように動作することができる。パケットスイッチは、繰り返し間隔でメモリから画像を取り出し、画像をデータフローに挿入するように動作することができ、画像は、コンピュータ可読命令コードによって構成されたポートにおいてデータフローに挿入される。これらの処理は、例えば、パケットエンジンの起動に応じてまたは新たなユーザ入力に応じて実行することができる。
【００３９】
パケットエンジンは、暗号エンジンから物理的に分離されてもよく、イーサネット（登録商標）ケーブルまたは光ケーブルを介してパケットエンジンに接続されてもよい。暗号エンジンとパケットエンジンを物理的に分離することによって、安全性を向上することができる。
【００４０】
ダミーパケットは、空セクションのシグナリング通信チャネル（Signaling Communication Channel：ＳＣＣ）パケットを含んでもよい。
【００４１】
パケットエンジンは、暗号化および／または認証されたデータフローから抜けたＳＣＣパケットを削除するように動作することができる。
【００４２】
パケットエンジンは、パケットエンジンの入力ポートまたは出力ポートでタイムスタンピングを実行するように動作することができる。
【００４３】
パケットエンジンは、プリシェーピングされたデータトラフィックが暗号エンジンに提供される前にタイムスタンピングを実行するように動作することができる。
【００４４】
パケットエンジンは、高精度時間プロトコル（ＰＴＰ）に従って、入力／出力ポートでタイムスタンピングを実行するように動作することができる。タイムスタンピングの適切なタイミング精度を可能にするために、パルス毎秒およびクロック信号を、入力／出力ポートでタイムスタンピングを実行するためのチップに提供することができる。また、１秒ごとにソフトウェアメッセージを介して絶対時間情報を内部タイムマスターから各ポートチップに配信することができる。出力ポートのチップは、着信／発信パケットに絶対の送出／入来時間を追加してもよく、パケットがノードを通過するときに既存の入来時間情報に滞留時間を追加してもよい。
【００４５】
パケットネットワークにおいて暗号化および／または認証処理を実行するための暗号エンジンは、暗号エンジンとは別に提供されたパケットエンジンに接続されるように動作するインターフェイスを備え、インターフェイスは、パケットエンジンから、プリシェーピングされたデータトラフィックを受け取るように動作する。暗号エンジンは、パケットネットワーク内の安全な端末間経路を介して送信されるデータパケットの相対的なタイミングと順序を保持するように、暗号化および／または認証処理を実行するように動作する。
【００４６】
暗号エンジンは、パケットエンジンから物理的に分離されてもよく、イーサネット（登録商標）ケーブルまたは光ケーブルを介してパケットエンジンに接続されてもよい。暗号エンジンとパケットエンジンを物理的に分離することによって、安全性を向上することができる。
【００４７】
暗号エンジンは、プリシェーピングされたデータトラフィックにデータパケットを追加することなく、暗号化および／または認証処理を実行するように動作することができる。
【００４８】
暗号エンジンは、連続したデータパケット間にパケット間ギャップが残るように、プリシェーピングされたデータトラフィックに含まれるデータパケットのサイズを大きくすることによって、暗号化および／または認証処理を実行するように動作することができる。
【００４９】
暗号エンジンは、暗号エンジンは、ジッタを引き起こしたり、遅延を導入したりおよび暗号エンジンでタイムスタンピングを実行したりすることなく、データパケットをパケット間ギャップに成長させることができる。
【００５０】
インターフェイスは、パケットエンジンからタイムスタンプ付きデータパケットを受け取るように動作することができる。
【００５１】
暗号エンジンは、ダミーパケットの少なくとも一部を使用して管理チャネルの送信を行うように動作することができる。暗号エンジンは、暗号化および／または認証に関連する制御情報をダミーパケットの少なくとも一部に挿入するように動作することができる。ダミーパケットによって、暗号エンジンによる追加パケットの作成が不要になる。
【００５２】
暗号エンジンは、ダミーパケットを使用して、暗号化キーの交換を行うように動作することができる。
【００５３】
暗号エンジンは、データトラフィックに追加のパケットを挿入することなく、暗号化および／または認証処理を実行するように動作可能である。
【００５４】
暗号エンジンは、制御情報をダミーパケットに追加することによって制御パケットを生成するときに、追加の外部マルチプロトコルラベルスイッチング（ＭＰＬＳ）ヘッダを追加することができる。外部ＭＰＬＳヘッダによって、ＭＰＬＳネットワーク内の中間ノード、例えばパケットスイッチは、汎用関連チャネルラベル（ＧＡＬ）ＳＣＣヘッダを見えなくなる。これによって、終点暗号エンジンが外部ＭＰＬＳヘッダを剥ぎ取った後のみ、ＧＡＬ  ＳＣＣパケットが削除される。端末間ＭＰＬＳパケットフローは、暗号エンジンによって追加された制御情報とは無関係になる。
【００５５】
一実施形態に係るパケットネットワーク用のサブラックは、一実施形態に係るパケットエンジンを含むネットワークカードと、実施形態に係る暗号エンジンを含む暗号化カードとを備える。
【００５６】
一実施形態に係るパケットネットワークは、一実施形態に係る複数のパケットエンジンを備え、各パケットエンジンは、実施形態に関連する暗号エンジンに接続される。
【００５７】
パケットネットワークは、ＭＰＬＳネットワークまたはＭＰＬＳトランスポートプロファイル（ＭＰＬＳ−ＴＰ）ネットワークであってもよい。
【００５８】
パケットネットワークは、産業自動化制御システム（ＩＡＣＳ）のネットワークであってもよい。
【００５９】
パケットネットワークは、高電圧線の自動化、高速列車の操縦、または航空交通の制御を行うためのパケットネットワークであってもよい。
【００６０】
複雑なメッシュパケットネットワークトポロジを介して暗号化および／または認証データを送信するための方法、装置およびシステムは、暗号エンジンにおいてパケットの相対的なタイミングおよび順序を保持する。パケットがＰＴＰに対応するパケットエンジンから離れる前に、ダミーパケットを追加しおよび／またはパケット間ギャップを拡大することによって、パケットエンジンにおいてトラフィックのプリシェーピングを実行する。よって、これらの処理を暗号エンジンで実行する必要がなく、パケットストリーム内部のパケットの順序およびタイミングを保持することができる。
【００６１】
本発明の実施形態は、ミッションクリティカルなパケットネットワーク、例えば高電圧線の自動化、高速列車の操縦、または航空交通の制御に利用されてもよいが、これらに限定されない。
【００６２】
本発明の主題は、添付の図面に示される好ましい例示的な実施形態を参照してより詳細に説明される。
【図面の簡単な説明】
【００６３】
【図１】一実施形態に係るパケットエンジンおよび暗号エンジンを含むパケットネットワークを示す概略図である。
【図２】一実施形態に係るパケットエンジンおよび暗号エンジンを示すブロック図である。
【図３】一実施形態に係るパケットエンジンの動作を示す図である。
【図４】一実施形態に係るパケットエンジンおよび暗号エンジンの動作を示す図である。
【図５】暗号化処理を実行する前および後のデータパケットを示す図である。
【図６】暗号化および認証処理を実行する前および後のデータパケットを示す図である。
【図７】一実施形態に係るパケットエンジンおよび暗号エンジンによって使用され得る汎用関連チャネルラベル（ＧＡＬ）シグナリング通信チャネル（ＳＣＣ）パケットを示す図である。
【図８】一実施形態に係る方法においてパケットエンジンによって実行されるプロセスを示すフローチャートである。
【図９】一実施形態に係る方法において暗号エンジンによって実行されるプロセスを示すフローチャートである。
【図１０】一実施形態に係る方法において実行され得るパケット間ギャップを設定するプロセスを示すフローチャートである。
【発明を実施するための形態】
【００６４】
実施形態の詳細な説明
本発明の例示的な実施形態は、図面を参照して説明される。図面において、同一または類似の参照符号は、同一または類似の要素を示す。いくつかの実施形態は、マルチプロトコルラベルスイッチング（ＭＰＬＳ）ネットワークまたはＭＰＬＳ−トランスポートプロファイル（ＭＰＬＳ−ＴＰ）ネットワークなどの例示的なネットワークの文脈で説明されるが、以下で詳細に説明される方法および装置は、一般的に、複雑なメッシュパケットネットワークトポロジを介して暗号化データおよび認証データを送信するために使用されてもよい。特に明記しない限り、実施形態の特徴を互いに組み合わせることができる。
【００６５】
「パケット」という用語は、本明細書に使用された場合、パケット化されたデータ構造を指す。「パケット」という用語は、本明細書に使用された場合、フレームを含むことができる。パケットは、フレームであってもよく、フレームを含んでもよい。
【００６６】
「パケット間ギャップ」という用語は、本明細書に使用された場合、フレーム間ギャップと同義であり、物理層上の連続するパケットまたはフレーム間の間隔を指すことができる。
【００６７】
「暗号エンジン」という用語は、本明細書に使用された場合、暗号化／復号および／または認証処理を実行するように動作する装置を指す。必要に応じて、暗号エンジンは、暗号化／復号および／または認証処理を実行するための専用コンポーネント、例えば物理乱数発生器を備えることができる。
【００６８】
本明細書に記載された「暗号エンジン」は、暗号エンジンインスタンスとして実装されてもよい。暗号エンジンの１つのハードウェア実装は、複数の暗号エンジンインスタンス、例えば、ポートおよび方向ごとのインスタンスを提供することができる。しかしながら、いずれの場合、暗号エンジンのハードウェアは、対応するパケットエンジンから分離されてもよい。
【００６９】
「パケットエンジン」という用語は、本明細書に使用された場合、パケット処理を実行するように動作する装置を指す。パケットエンジンは、パケットスイッチを含むことができ、ダミーパケットをデータパケットフローに挿入することができる。パケットエンジンは、時間認識型であり、例えばパケットエンジンの出力ポートまたは入力ポートでタイムスタンピングを実行するように動作することができる。
【００７０】
ある実体が他の２つの実体の「間に」配置される（例えば、暗号エンジンがパケットエンジンと通過ノードとの間に配置される）という記載は、本明細書に使用された場合、データフロー経路に沿った配置、すなわち、パケットがこれらの実体を通過するシーケンスを指す。
【００７１】
図１は、パケットネットワーク１０を示す概略図である。パケットネットワーク１０は、時限パケットネットワークであってもよい。パケットネットワーク１０は、複数のノード１１、２１、３１を有してもよい。複数のノード１１、２１、３１は、それぞれのＭＰＬＳ−ＴＰネットワーク１６、１７、１８を介して通信可能に連結されてもよい。複数のノード１１、２１、３１は、送信経路の終点ノードおよび中間ノード（またはホップ）を含むことができる。パケットネットワーク１０は、時限ネットワークであってもよく、ノード１１、２１、３１のパケットエンジンは、タイムスタンピングを実行する。
【００７２】
ノード１１、２１、３１の各々は、サブラックを含むことができる。サブラックは、以下でさらに詳しく説明するように、パケットエンジンを含むネットワークカードと、暗号エンジンを含む別個の暗号化カードとを含むことができる。
【００７３】
ノード１１、２１、３１は、それぞれ、パケットエンジン１２、２２、３２、および関連するパケットエンジン１２、２２、３２から物理的に分離された暗号エンジン１４、２４、３４を含むことができる。各暗号エンジン１４、２４、３４は、例えば、イーサネット（登録商標）ケーブルまたは光ケーブルを介して、関連するパケットエンジン１２、２２、３２に直接に連結されてもよい。イーサネットケーブルまたは光ケーブルの両端は、パケットエンジン１２、２２、３２および暗号エンジン１４、２４、３４に直接に取り付けることができる。
【００７４】
各々のパケットエンジン１２、２２、３２は、複数のポート１３、２３、３３を有してもよい。各々の暗号エンジン１４、２４、３４は、複数のポート１５、２５、３５を有してもよい。各々の暗号エンジン１４、２４、３４の入口ポートは、関連するパケットエンジン１２、２２、３２の出口ポートに接続されてもよい。各々の暗号エンジン１４、２４、３４の出口ポートは、関連するパケットエンジン１２、２２、３２の入口ポートに接続されてもよい。各々の暗号エンジン１４、２４、３４は、暗号化されていないリンクを介して、関連するパケットエンジン１２、２２、２３に連結されてもよい。
【００７５】
異なる暗号エンジン１４、２４、３４は、暗号化された経路、例えばＭＰＬＳ−ＴＰネットワークを介して、データトラフィックを送信することができる。
【００７６】
各々のパケットエンジン１２、２２、３２は、パケット処理を実行する。パケットエンジン１２、２２、３２は、パケットの転送および切換を実行することができる。全てのパケットのハンドリング、フィルタリングおよびキューイングは、パケットエンジン１２、２２、３２で実行される。
【００７７】
暗号エンジン１４、２４、３４は、暗号化および／または認証処理を実行する。理解すべきことは、「暗号化処理」という用語は、本明細書に使用された場合、一般的に、暗号化送信に関連する処理を含み、したがって、安全な端末間経路の受信側終点でまたは安全な端末間経路のセグメントのノードで実行された復号を含み得ることである。
【００７８】
各々の暗号エンジン１４、２４、３４は、暗号化／復号および／または認証処理を実行するための専用ハードウェア、例えば物理乱数発生器を備えてもよい。
【００７９】
以下でより詳細に説明するように、パケットエンジン１２、２２、３２および暗号エンジン１４、２４、３４は、暗号エンジン１４、２４、３４内のデータパケットの相対的なタイミングおよび順序を保持すると共に、複雑なメッシュパケットネットワークトポロジーを介して暗号化および／または認証データを送信するように動作することができる。この目的のために、パケットエンジン１２、２２、３２は、データパケットが高精度時間プロトコル（ＰＴＰ）対応のパケットエンジン１２、２２、３２から離れ、ＰＴＰ非対応の暗号エンジン１４、２４、３４に入る前、例えばダミーパケットを追加することによっておよび／またはパケットエンジン１２、２２、３２内のパケット間ギャップを拡大することによって、トラフィックのプリシェーピングを実行することができる。暗号エンジン１４、２４、３４には、タイムスタンピングおよび追加のデータパケットの挿入を実行する必要がない。暗号エンジン１４、２４、３４を通過するときに、データパケットストリーム内のデータパケットの順序おおよびタイミングが保持される。
【００８０】
パケットエンジン１２、２２、３２は、中央制御、例えばＭＰＬＳ経路管理機能によって制御されてもよい。暗号エンジン１４、２４、３４は、サイバーセキュリティマネージャによって制御されてもよい。セキュリティを強化するために、ＭＰＬＳ経路管理機能およびサイバーセキュリティマネージャは、別々のサーバで実行されてもよい。中央制御は、ＭＰＬＳ経路を構築するように暗号エンジンを構成することができる。各々の暗号エンジン１４、２４、３４は、ネットワーク内経路の端末間暗号化および／または認証を保証することができる。暗号エンジン１４、２４、３４は、ネットワーク内経路のセグメントに沿って暗号化および／または認証を提供するように動作することができる。サイバーセキュリティマネージャは、暗号化されていないチャネルまたは安全なチャネルを介して暗号エンジン１４、２４、３４と通信することができる。
【００８１】
作業経路および保護経路の両方を確立することによって、保護された双方向トンネルを形成することができる。「作業経路」という用語は、本明細書に使用された場合、特に通常のネットワーク運用中にトラフィックを運ぶ経路を指し、「保護経路」という用語は、本明細書に使用された場合、作業経路に障害が発生したときに、特にＲＦＣ７０８７（MPLS-TP Rosetta Stone（２０１３年１２月）、セクション３．４２．１および３．４２．２）およびＲＦＣ６３７２（MPLS-TP Survivability Framework（２０１１年９月））に従ってトラフィックを保護および転送するために使用された経路を指す。作業経路に沿ったパケットエンジンまたは暗号エンジンなどの実体は、ＲＦＣ７０８７（MPLS-TP Rosetta Stone（２０１３年１２月）、セクション３．４２．１）に準拠した作業実体である。保護経路に沿ったパケットエンジンまたは暗号エンジンなどの実体は、ＲＦＣ７０８７（MPLS-TP Rosetta Stone（２０１３年１２月）、セクション３．４２．２）に準拠した保護実体である。
【００８２】
以下、実施形態に係る方法および装置をより詳細に説明する。
図２は、パケットエンジン５０および関連する暗号エンジン６０を示すブロック図表現４０である。暗号エンジン６０は、例えばイーサネット（登録商標）ケーブルまたは光ケーブルを介して、パケットエンジン５０に直接に接続されてもよい。中央制御４１は、例えば、同一のラベルエッジルータ（ＬＥＲ）またはラベルスイッチルータ（ＬＳＲ）に設けられたいくつかのパケットエンジンを制御することができる。
【００８３】
パケットエンジン５０および暗号エンジン６０は、作業経路または保護経路に使用されてもよい。作業経路および保護経路のＬＥＲまたはＬＳＲに、異なるパケットエンジンおよび異なる暗号エンジン（または暗号エンジンインスタンス）を各々設けることができる。
【００８４】
パケットエンジン５０の構成および動作を用いて、図１のネットワーク１０の複数のパケットエンジン１２、２２、３２の各々を実現することができる。暗号エンジン６０の構成および動作を用いて、図１のネットワーク１０の複数の暗号エンジン１４、２４、３４の各々を実現することができる。パケットエンジン５０および暗号エンジン６０の動作が送信データトラフィック（安全経路の「アリス」側）の文脈で説明されるが、同様の機能は、着信ノード（安全経路の「ボブ」側）で実現することができる。
【００８５】
パケットエンジン５０は、ポート５３を備える。ポート５３は、例えば、高精度時間プロトコル（ＰＴＰ）、ＩＥＥＥ１５８８またはＩＥＣ６１５８８  ２．０版に従ってタイムスタンピングを実行するように動作する。パケットエンジン５０は、ポート５３を介して、プリシェーピングされたデータトラフィックを暗号エンジン６０に出力するように動作する。
【００８６】
パケットエンジン５０は、データフローに挿入されるダミーパケット５９を生成することができる。ダミーパケット５９は、ペイロードデータを含まず、暗号エンジン６０によって受信されるプリシェーピングされたデータトラフィックに含まれ、例えば暗号化キーを交換するための制御データを挿入するために暗号エンジン６０によって使用されるパケットを提供するように生成されてもよい。ダミーパケット５９は、例えば、汎用関連チャネルラベル（ＧＡＬ）シグナリング通信チャネル（ＳＣＣ）パケットを含むことができる。
【００８７】
ダミーパケット５９は、メモリからパケットテンプレートを読み取ることによって生成されてもよい。以下で詳しく説明するように、メモリに格納されたパケットテンプレートは、例えば、パケットエンジン５０の中央処理装置５１の少なくとも１つのプロセッサによって実行されるソフトウェアまたは他のコンピュータ可読命令コードによって生成されてもよく、または中央制御４１上で動作するソフトウェアによって生成されてもよい。
【００８８】
パケットエンジン５０は、ダミーパケット５９をデータフロー（すなわち、ペイロードデータを含む一連のデータパケット）に挿入する。パケットエンジン５０は、繰り返し間隔でダミーパケット５９をデータフローに挿入することができる。この間隔は、設定可能である。以下により詳細に説明するように、この間隔は、パケットエンジン５０の中央処理装置５１の少なくとも１つのプロセッサによって実行されるソフトウェアまたは他のコンピュータ可読命令コードによって設定されてもよく、または中央制御４１上で動作するソフトウェアによって設定されてもよい。ダミーパケット５９をデータフローに挿入する間隔は、暗号エンジン６０が暗号パケット交換または他のセキュリティに関連する管理チャネル送信のために実行しなければならない全ての管理チャネル送信でダミーパケット５９を充填できるように設定することができる。パケットエンジン５０は、管理チャネルの送信のために暗号エンジン６０によって実際に必要とされるダミーパケットよりも多くのダミーパケット５９を生成することができる。
【００８９】
ダミーパケット５９は、予め定義されたイーサタイプ、ラベル、チャネルタイプおよびＰＩＤ構造を有する外部イーサネットヘッダを含むことができる。パケットエンジン５０は、暗号エンジン６０がダミーエンジン５９をどのように使用するかを知らないため、外部ラベルを有しない空のセクションＧＡＬパケットを生成する。これらのダミーパケット５９は、タイムスタンピングコンテキスト外側のパケットの追加を回避する。
【００９０】
ダミーパケット５９は、例えば３．３ｍｓという規則的な間隔でパケットエンジン５０によって生成され得るＳＣＣパケットであってもよい。ストリーム内のダミーパケットは、管理チャネル送信のために、暗号エンジン６０によって充填され、使用される。暗号エンジン６０は、管理チャネル送信に不要なダミーパケットを破棄する。
【００９１】
パケットエンジン５０は、ダミーパケット５９を、ペイロードデータを含む一連のデータパケットに組み入れるパケットスイッチ５２を備えてもよい。
【００９２】
ダミーパケット５９の挿入に加えてまたは場合によってその代わりに、パケットエンジン５０は、ペイロードデータを含むパケットとペイロードデータを含まないダミーパケットとを含むデータパケットの出力を遅延させることによって、パケット間ギャップを拡大することができる。これは、パケットスイッチ５２によって実行されてもよく、出口ポート５３で実行されてもよい。データパケットを出力した後、パケットスイッチ５２または出口ポート５３は、意図的に後続のデータパケットの出力を遅延させる。これによって、連続するデータパケット間のギャップが拡大される。説明のために、ペイロードデータを含むパケットとペイロードデータを含まないダミーパケットとを含む連続のデータパケットは、パケットスイッチ５２で実際に送信される連続のデータパケットの時間間隔またはギャップに比べてより大きな時間間隔またはギャップで、出口ポート５３によって出力されてもよい。
【００９３】
パケット間ギャップの拡大は、例えば暗号化方法によって、暗号エンジン６０内のデータパケットにバイトを追加することを含む。パケットスイッチ５２は、設定可能な量で送出パケットの送信を遅延させることができる。パケットエンジン５０は、送出パケットのバイトの送信を遅延させることによって、設定された量に従って、パケット間ギャップを拡大することができる。
【００９４】
暗号エンジン６０がパケットエンジン５０に直接に接続されている場合または送信経路に沿ったホップのいずれかの暗号エンジン１４、２４、３４がパケットを拡大する必要がある場合、常に、空のパケット間ギャップが拡大される。これは、パケットエンジン５０によって実行されるトラフィックのプリシェーピングによって実現される。
【００９５】
拡大されたパケット間ギャップのサイズは、例えば、中央制御部４１または別の実体によって設定されてもよい。拡大されたパケット間ギャップのサイズは、暗号エンジン６０が、データパケットを処理してＭＰＬＳ−ＴＰに従って複数のホップを介して送信しても、データパケットの順序を保持しながら、データパケットをパケット間ギャップのみに成長させるように設定されてもよい。拡大されたパケット間ギャップのサイズを決定する例示的な手法は、図１０を参照して説明される。
【００９６】
出力ポート５３を介して出力された、ペイロードデータを含むパケットとペイロードデータを含まないダミーパケットとを含む一連のデータパケットは、本明細書において「プリシェーピングされたデータトラフィック」と呼ばれる。理解すべきことは、プリシェーピングされたデータトラフィックは、メッシュネットワーク、例えばＭＰＬＳ−ＴＰを介して送信されるデータトラフィックに対応しないことである。むしろ、暗号エンジン６０は、セキュリティ関連の管理チャネル情報を挿入することによって、プリシェーピングされたデータトラフィックのダミーパケットの少なくとも一部または全てを変更することができる。暗号エンジン６０は、ペイロードデータを含むデータパケット、例えば、保護する必要のあるミッションクリティカルデータまたは他のペイロードデータを含むデータパケットの少なくとも一部を変更することもできる。
【００９７】
暗号エンジン６０は、パケットエンジン５０のポート５３に連結されたポート６１を備える。パケットエンジン５０とは逆に、暗号エンジン６０は、タイムスタンピングコンテキストの外側に配置される。換言すれば、ポート６１は、ＰＴＰまたは他のタイムスタンピング処理を知らない。同様に、暗号エンジン６０の出口ポート６５は、ＰＴＰまたは他のタイムスタンピング処理を知らない。タイムスタンピングは、パケットエンジン５０で実行される。暗号エンジン６０は、タイムスタンピング情報を使用せず、タイムスタンピングプロトコルの知識を有しなくても動作することができる。暗号エンジン６０は、ＩＥＥＥ１５８８または他のタイムスタンピング技術を知るコンポーネントを含まない場合がある。
【００９８】
暗号エンジン６０は、イーサネット（登録商標）ケーブルまたは光ケーブルを介してパケットエンジン５０のポート５３に連結され得るポート６１を備える。
【００９９】
暗号エンジン６０は、パケットスイッチなどの装置６２を含むことができる。暗号エンジン６０が管理チャネルの送信例えば暗号化キーの交換を行うための制御パケットを生成する必要がある場合に、装置６２は、ダミーパケット５９をコントローラ６３または他の集積半導体回路に提供する。装置６２は、入ってくるプリシェーピングされたデータトラフィックからダミーパケットを選択することができる。このため、暗号エンジン６０は、全てのパケットヘッダをスキャンすることによって、例えばペイロードデータを含む通常のデータトラフィックからＳＣＣパケットを識別することができる。
【０１００】
管理チャネルの送信に不要なダミーパケット５９は、暗号エンジン５０によってプリシェーピングされたデータトラフィックから削除されてもよい。
【０１０１】
コントローラ６３は、管理チャネルに関連する制御データ、特に暗号化および／または認証に関連する制御データをダミーパケット５９の少なくとも一部に充填することができる。コントローラ６３は、例えば、ダミーパケット５９の少なくとも一部を使用して、暗号化キーの交換を行うことができる。セキュリティ関連の管理チャネル制御データをダミーパケット５９の少なくとも一部に充填することによって、制御パケット６９を生成する。装置６２は、例えばダミーパケット５９の位置で、制御パケット６９をプリシェーピングされたデータトラフィックに再挿入することができる。
【０１０２】
暗号エンジン６０は、暗号化／復号ユニット６４を備える。暗号化／復号ユニット６４は、暗号化／復号処理を実行することができる。図示されていないが、認証処理を行うための認証ユニットは、暗号化／復号ユニット６４に集積されてもよく、暗号化／復号ユニット６４とは別に設けられてもよい。暗号エンジン６０は、様々な既知の暗号化／復号および／または認証技術のいずれかを使用することができる。暗号エンジン６０は、セキュリティ関連機能を実行するための専用ハードウェア、例えば物理乱数発生器を含むことができる。物理乱数生成器は、例えば真にランダムなプロセスに従って、量子システムに対して測定を実行し、測定から離散的な結果を得ることによって、物理プロセスから乱数を生成することができる。
【０１０３】
暗号エンジン６０によるペイロードデータを含むプリシェーピングされたデータトラフィック内のデータパケットの処理は、データパケットのサイズに影響を与える可能性がある。しかしながら、データトラフィックのプリシェーピングによって、暗号エンジン６０から離れるデータパケットの順序は、ポート６１に到着するデータパケットの順序と同様である。
【０１０４】
暗号エンジン６０は、例えば、ポート６５を介して、安全な端末間経路のリモート終点（すなわち、「ボブ」）に送信されるデータトラフィックを出力することができる。データトラフィックのプリシェーピングによって、暗号エンジン６０から離れるデータパケットの順序は、ポート６１に到着するデータパケットの順序と同様である。
【０１０５】
データトラフィックが安全経路から離れる受信側では、暗号エンジンは、全ての制御パケット６９を削除する。これによって、暗号化キーなどのセキュリティ関連情報を含む制御パケットは、２つの暗号エンジン（例えば、図１の暗号エンジン１４および２４）の間の経路に保持され、関連するパケットエンジン（例えば、図１のパケットエンジン１２および２２）に提供されない。
【０１０６】
暗号エンジン６０がタイムスタンピングコンテキストの外側に配置されても、パケットエンジン５０および暗号エンジン６０は、暗号化および認証データの送信中に、送信されるクリティカルデータパケットの相対的なタイミングおよび順序を保持するように動作する。
【０１０７】
ＭＰＬＳパケットのストリームを保護するなどの送信データの暗号化は、暗号エンジン６０によって行われる。暗号エンジン６０は、パケットの転送および切換を実行するパケットエンジン５０から分離されている。全てのパケットのハンドリング、フィルタリングおよびキューイングは、タイムスタンピングコンテキストの内側に配置されたパケットエンジン５０によって行われる。上記で説明したように、暗号エンジン６０は、タイムスタンピングコンテキストの外側に配置される。
【０１０８】
本明細書に言及された場合、データパケットの相対的なタイミングおよび順序を保持することは、特に、連続するデータパケットの開始時間の間の時間差が変わらず、データパケットの順序が変わらないことを意味し得る。これは、暗号エンジン６０によって処理されるデータパケットに適用されるだけでなく、パケットネットワーク１０の１つのホップから次のホップに送信されるデータパケットにも適用される。
【０１０９】
パケットエンジン５０によるデータパケットのタイムスタンピングは、ＰＴＰに従って、パケットエンジン５０の入力／出力ポート５３で行われてもよい。タイムスタンピングの適切なタイミング精度を保証するために、パルス毎秒およびクロック信号を、入力／出力ポートでタイムスタンピングを実行するためのチップに提供することができる。また、パルス毎秒に同期した固定間隔、例えば１秒間隔で、メッセージ、例えばソフトウェアメッセージを介して、絶対時間情報を内部タイムマスターから入力／出力ポート５３に配置された各チップに配信することができる。出力ポート５３のチップは、着信／発信パケットに絶対の送出／入来時間を追加してもよく、パケットがパケットエンジン５０を通過するときに既存の入来時間情報に滞留時間を追加してもよい。
【０１１０】
このようにして、パケットエンジン５０の入口ポートおよび出力ポートでデータパケットにタイムスタンプを付けることによって、ＰＴＰに従ってネットワーク１０内の全てのノードへのタイミング／クロック情報の端末間送信を可能にする。しかしながら、暗号エンジン６０は、タイミング／クロック情報を使用しないように動作することができる。
【０１１１】
図３は、例示的な実施形態に係るパケットエンジン５０によるダミーパケット５９の生成および挿入を示す図である。ダミーパケット５９を出力するための繰り返し間隔およびインターフェイスは、パケットエンジン５０のＣＰＵ５１、中央制御部４１、または別の実体によって実行され得るソフトウェアなどの機械可読命令コードによって設定されてもよい。
【０１１２】
機械可読命令コードの実行によって実行されるプロセス７０は、例えばユーザ入力またはパケットエンジン５０の装置起動によってトリガされてもよい。
【０１１３】
ステップ７１において、プロセス７０は、例えば、ユーザ入力またはパケットエンジン５０の装置起動に応答して開始する。
【０１１４】
ステップ７２において、ダミーパケットの新たなテンプレートを生成すると判断された場合、ステップ７２において、パケットエンジン５０に接続されたＣＰＵまたはパケットエンジン５０のＣＰＵ５１上で実行される機械可読命令コード、例えばソフトウェアは、ダミーパケットの画像としてテンプレートを生成することができる。テンプレート７５は、パケットスイッチ５２およびＣＰＵ５１の共有メモリであり得るメモリ５４に格納されてもよい。
【０１１５】
ステップ７４において、ＣＰＵ５１で実行される機械可読命令コード、例えばソフトウェアは、一定の時間間隔でメモリ５４から画像を取り出すように、パケットエンジン５０のパケットスイッチ５２を設定することができる。このために、繰り返し間隔で情報７６をレジスタに書き込むことができる。ダミーパケットを出力するインターフェイスまたはポートに関する情報は、メモリ５４に格納されてもよい。これは、パケットスイッチ５２の出力インターフェイスをトリガして、共有メモリ５６のレジスタに格納され得る情報７５、７６に従って、ダミーパケット５９をデータパケットに挿入する。
【０１１６】
７７に概略的に示されたように、パケットスイッチ５２は、一定の間隔で共有メモリ５４から画像７５を取り出し、画像７５を特定のポートのデータフローに挿入することができる。パケットスイッチ５２は、ダミーパケットのテンプレートとしてメモリ画像７５を取り出し、レジスタ情報７６に指定された一定の間隔でメモリ画像７５をデータトラフィックストリームに挿入することができる。
【０１１７】
図４は、一実施形態に従って、ノード（終点ノードまたは中間ホップ）のパケットエンジン５０および暗号エンジン６０の動作を示す図である。パケットエンジン５０は、ペイロードデータを含むデータパケット８１を含むプリシェーピングされたデータトラフィックを出力する。パケットエンジン５０は、ペイロードデータを含まないダミーパケットを出力する。パケットエンジン５０は、拡大されたパケット間ギャップ８９が所望のサイズを有することを保証するために、データパケット８１の後に追加のダミーバイト８８を挿入する。拡大されたパケット間ギャップ８９のサイズは、暗号エンジン６０によって実行される暗号化および／または認証処理が拡大されたパケット間ギャップ８９を超えないようにデータパケット８１を拡大されたパケット間ギャップ８９のみに成長させるように設定される。
【０１１８】
暗号エンジン６０が暗号化および／または認証処理を実行するため、データパケット８３は、関連するデータパケット８１の元のペイロードの暗号化された対応部分を含み、必要に応じて認証情報を含むことができる。データパケット８３は、データパケット８１に比べてより大きなサイズを有する。しかしながら、暗号化および／または認証処理によるパケットサイズの増加は、決して拡大されたパケット間ギャップ８９を超えない。暗号エンジン６０から離れる時の連続するデータパケット８３の間の時間差は、暗号エンジン６０に入る時の連続するデータパケット８１の間の差と同様である。
【０１１９】
暗号エンジン６０は、パケットエンジン５０によって生成されたダミーパケット８２を用いて、管理チャネルの送信を行うことができる。暗号エンジンは、暗号化キーの交換などのセキュリティに関連する制御情報をダミーパケット８２に挿入することによって、既存のダミーパケット８２を制御パケット８４に変換することができる。暗号エンジン６０の動作は、ジッタを追加することなく、データパケットの相対的なタイミングおよび順序を保持する。
【０１２０】
図５および図６は、パケットエンジン５０から受信したデータパケット９０に対して暗号化および／または認証処理を実行するときの暗号エンジン６０の動作を示している。パケットエンジン５０は、例えば、パケット間ギャップ９９を３６バイトに拡大した。データパケット９０は、暗号化されていないＭＰＳＬデータパケットであってもよい。データパケット９０は、プリアンブルおよび開始フレームデリミタ（ＳＦＤ）９１を含むことができる。データパケット９０は、宛先アドレスメディアアクセス制御（ＭＡＣ）アドレス９２を含むことができる。データパケット９０は、ソースアドレスメディアアクセス制御（ＭＡＣ）を含むことができる。データパケット９０は、ＭＰＬＳラベルスイッチ経路（ＭＰＬＳ  ＬＳＰ）９４を含むことができる。データパケット９０は、ＭＰＬＳ擬似ワイヤ（ＭＰＬＳ  ＰＷ）９５を含むことができる。データパケット９０は、暗号化されていない擬似ワイヤペイロード９６を含む。データパケット９０は、フレームチェックシーケンス（ＦＣＳ）９７を含むことができる。
【０１２１】
図５は、暗号エンジン６０の暗号化処理をデータパケット９０に適用することによって得られた暗号化データパケット１００を示している。暗号化データパケット１００に暗号化コード１０１を追加することができる。暗号化データパケット１００は、ＭＰＬＳ  ＰＷ９５およびＰＷペイロード９６から生成され得る暗号化ペイロード１０２を含む。暗号化ペイロード１０２は、暗号化サービスデータを定義することができる。
【０１２２】
暗号化によって、暗号化データパケット１００は、暗号化されていない対応物９０のサイズを超えるサイズを有する。しかしながら、パケット間ギャップ９９は、暗号化されていないデータパケット９０に比べて、暗号化データパケット１００のサイズの増加が拡大されたパケット間ギャップ９９を超えないように、パケットエンジン５０によって拡大される。暗号エンジン５０は、拡大されたパケット間ギャップ９９を超えないようにデータパケットを拡大されたパケット間ギャップ９９に成長させる。連続する暗号化データパケットの間に有限のパケット間ギャップ１０８が存在してもよい。説明のために、暗号化コード１０１が８バイトを有する場合、パケット間ギャップ１０８は、２８バイトを有し得る。
【０１２３】
図６は、暗号エンジン６０の暗号化処理および認証処理をデータパケット９０に適用することによって生成された認証付き暗号化データパケット１０５を示す。認証コード１０３は、暗号化データパケット１０５に含まれてもよい。暗号化ペイロード１０２および認証コード１０３は、暗号化サービスデータを定義することができる。
【０１２４】
暗号化および認証によって、認証付き暗号化データパケット１０５は、暗号化されていない対応物９０のサイズを超えるサイズを有する。しかしながら、パケット間ギャップ９９は、暗号化されていないデータパケット９０に比べて、認証付き暗号化データパケット１０５のサイズの増加が拡大されたパケット間ギャップ９９を超えないように、パケットエンジン５０によって拡大される。暗号エンジン５０は、拡大されたパケット間ギャップ９９を超えないようにデータパケットを拡大されたパケット間ギャップ９９に成長させる。連続する暗号化データパケットの間に有限のパケット間ギャップ１０９存在してもよい。説明のために、暗号化コード１０３が６バイトを有する場合、パケット間ギャップ１０３は、１２バイトを有し得る。
【０１２５】
図７は、パケットエンジン５０によってデータフローに定期的に挿入されるダミーパケット５９の一例としてのＧＡＬ  ＳＣＣパケット構造を示す。ＧＡＬ  ＳＣＣパケットは、例えば、以下の構造（合計９２バイト）、すなわち、イーサネットヘッダ：１４バイト（ＤＭＡＣ  ６バイト、ＳＭＡＣ  ６バイトおよびイーサタイプ  ２バイト）、ＰＩＤを含むＭＰＬＳ  ＧＡＬヘッダ：１０バイト（ＬＳＰシムヘッダなし、ＲＦＣ５７１８）、ＳＣＣペイロード：６４バイト、およびＣＲＣ：４バイトを有することができる。
【０１２６】
ＳＣＣペイロードは、パケットエンジン５０によって生成されたときに、空であってもよく、乱数または０もしくは１で充填されてもよい。暗号エンジン６０は、管理チャネルデータをＧＡＬ  ＳＣＣパケットのＳＣＣペイロードに挿入することができる。
【０１２７】
空セクションのＧＡＬ  ＳＣＣダミーパケットをＭＰＬＳ−ＴＰコンテキストに適用することによって、暗号エンジン６０は、暗号化／復号制御フローの端末間またはセグメントにパケットを追加することなく、制御パケット６９を提供することができる。生成された特定のＰＩＤ付きＧＡＬ  ＳＣＣパケットが保護されたフローから抜け出すときに確実に削除されるように、擬似ワイヤの受信側のパケットエンジン５０または暗号エンジン６０は、これらのパケットを検出すると、即座に削除する。複数のホップに亘って開始から終了まで制御パケット６９を送信する間に、追加の外部ＭＰＬＳヘッダが追加される。ＧＡＬ  ＳＣＣヘッダは、表示されない。これによって、終点暗号エンジン６０が外部ヘッダを剥ぎ取った後のみ、ＧＡＬ  ＳＣＣダミーパケットが削除される。このようにして、端末間ＭＰＬＳパケットフローは、制御パケットとは無関係になる。
【０１２８】
暗号エンジン６０は、制御パケット６９を使用する必要がある場合、パケットエンジン５０によって提供されたプリシェーピングされたデータトラフィックから、ダミーパケット５９を選択することができる。このため、暗号エンジン６０は、全てのパケットヘッダをスキャンすることができる。暗号エンジン６０は、以下のルールを用いて、通常のトラフィックからＳＣＣパケットを識別することができる。図７に示すＧＡＬ  ＳＣＣパケットの（イーサタイプ＝＝０×８８４７）＆＆（Ｓ＝＝１＆＆ラベル＝＝１３）＆＆（チャネルタイプ＝＝２）＆＆（ＰＩＤ＝＝ｘｘｘ）バイト１３〜１４バイト１５〜１８バイト２１〜２２バイト２３〜２４。
【０１２９】
パケットエンジン５０は、暗号エンジン６０がＧＡＬ  ＳＣＣダミーパケットをどのように使用するかを知らないため、外側ラベルのない空セクションのＧＡＬパケットを生成する。
【０１３０】
暗号エンジン６０は、以下のパケット、すなわち、２つの隣接するＭＰＬＳノード間に暗号化キーを交換するためのパケット、および外部ＭＰＬＳヘッダを追加することによって得られたＬＳＰ端末間に暗号化キーを交換するためのパケットを使用できる。
【０１３１】
パケットエンジン５０と暗号エンジン６０との間のリンクは、ＭＰＬＳセクション管理チャネルとして扱うことができる。ＭＰＬＳ−ＴＰ標準に従って、制御通信は、以下のオプションを使用して実行することができる。すなわち、
ＬＳＰ端末間管理チャネル：この場合、暗号エンジン６０は、４バイトのＬＳＰヘッダをイーサタイプビットとＧＡＬヘッダとの間に挿入する。このようにして、暗号エンジン６０は、暗号化端末間の関係をＭＰＬＳ端末間の関係にマッピングする。パケットサイズの増加を避けるために、ペイロードのサイズを犠牲にしてヘッダを拡大する。
【０１３２】
次ホップまたはセクション管理チャネル：暗号エンジン６０は、次ホップの暗号エンジン６０と通信する必要がある場合、ＬＳＰシムヘッダを挿入するこなく、パケット構造をそのまま保持する。ペイロードサイズは、６４バイトのままである。
【０１３３】
ネットワーク構成セクションの誤りによって、ＧＡＬ  ＳＣＣパケットがパケットエンジン５０のポート５３で受信された場合、これらのパケットは、パケットスイッチ５２で削除される。ＧＡＬＳＣＣヘッダが見えるため、パケットスイッチ５２は、ラベルが１３（ＧＡＬ）であるか否か、チャネルタイプがＳＣＣであるか否か、または暗号化通信チャネルのＰＩＤが定義されているか否かをチェックする。
【０１３４】
図８は、一実施形態に係る方法においてパケットエンジン５０によって実行され得るプロセス１１０を示すフローチャートである。
【０１３５】
ステップ１１１において、パケットエンジン５０は、ダミーパケット５９を生成することができる。ダミーパケット５９は、一定の時間間隔で生成されてもよい。ダミーパケット５９は、ペイロードデータを運ぶデータパケットを含むデータフローに挿入されてもよい。
【０１３６】
ステップ１１２において、パケットエンジン５０は、パケット間ギャップを拡大することができる。拡大されたパケット間ギャップのサイズは、動的に設定されてもよく、暗号化の後、必要に応じて認証の後にデータパケットを送信するポートおよびポートの構成経路に依存してもよい。
【０１３７】
ステップ１１３において、パケットエンジン５０は、タイムスタンピングを実行することができる。タイムスタンピングは、暗号化の前に、必要に応じて認証の前に、パケットエンジン５０の出力ポートで実行されてもよい。
【０１３８】
ステップ１１４において、プリシェーピングされたデータトラフィックは、パケットエンジン５０に直接に接続され、パケットエンジン５０と同じラックまたはベイに配置され得る暗号エンジン６０に出力されてもよい。
【０１３９】
図９は、一実施形態に係る方法において暗号エンジン６０によって実行され得るプロセス１２０を示すフローチャートである。
【０１４０】
ステップ１２１において、暗号エンジン６０は、パケットエンジン５０からプリシェーピングされたデータトラフィックを受け取る。パケットエンジン５０は、暗号エンジン６０に直接に接続され、暗号エンジン６０と同じラックまたはベイに配置されてもよい。
【０１４１】
ステップ１２２において、暗号エンジン６０は、暗号化または認証に関連する制御情報をダミーパケット５９の少なくとも一部に充填することができる。暗号エンジン６０は、管理チャネルの送信に必要されないダミーパケット５９を削除または破棄することができる。暗号エンジン６０は、データトラフィックにパケットを追加することなく、パケットエンジン５０によって生成された管理チャネル送信用のダミーパケット５９の少なくとも一部を用いて、管理チャネルの送信を実行することができる。
【０１４２】
ステップ１２３において、暗号エンジン６０は、暗号化および／または認証処理を実行することができる。暗号エンジン６０は、新たなパケットを追加することなく、データパケットをパケット間ギャップに成長させることによって、これらの処理を実行することができる。
【０１４３】
ステップ１２４において、暗号エンジンは、例えば、ＭＰＬＳネットワーク内の保護されたトンネルの安全な端末間経路を介して、暗号化ペイロードを含むデータパケット、必要に応じて送信認証を含むデータパケットを出力することができる。
【０１４４】
拡大されたパケット間ギャップのサイズは、ネットワーク内の構成経路に依存してもよい。拡大されたパケット間ギャップのサイズは、データトラフィックを出力するポートに依存してもよい。拡大されたパケット間ギャップのサイズは、動的に設定されてもよい。
【０１４５】
図１０は、一実施形態に係る方法において拡大されたパケット間ギャップのサイズを設定するプロセス１３０を示すフローチャートである。プロセス１３０は、特定のポートに必要された拡大に応じてサイズを動的に設定することができる。
【０１４６】
ステップ１３１において、インターフェイス上の全ての構成経路を計算的にトラバースすることを含む演算を行うことができる。各経路に必要なパケット間ギャップを計算する。必要なパケット間ギャップは、バイト数で確定される。例えば、標準なメッセージ認証を追加する場合、パケットエンジンのパケット間ギャップのターゲットサイズに２４バイトを追加する。したがって、標準の１２バイトではなく、３６バイトのパケット間ギャップが提供される。
【０１４７】
ステップ１３２において、最大のパケット間ギャップを必要とする経路を特定する。この経路は、インターフェイスのパケット間ギャップを決定するために使用される。すなわち、インターフェイスのパケット間ギャップは、ステップ１３１で決定された値から選択される。したがって、これらの値の最大値は、パケット間ギャップのサイズとして選択される。
【０１４８】
ステップ１３３において、ステップ１３１および１３２で決定されたパケット間ギャップに従って、パケットエンジン５０を構成することができる。
【０１４９】
ＣＰＵ５１は、パケットスイッチ５２のレジスタに書き込まれる適切なレジスタバイトシーケンスを構築することができる。これは、出力データパケットの連続送信間でｎバイトを待つように、パケットスイッチ５２をトリガする。
【０１５０】
本発明の実施形態に係る方法、装置およびシステムは、例えば、ミッションクリティカル応用のためのネットワークにおける強化されたサイバーセキュリティの必要性に対処する。パケット間ギャップの拡大および／またはダミーパケットの追加を含むデータトラフィックのプリシェーピングの組み合わせによって、暗号エンジンの段階でパケットを追加する必要のないシステムが提供される。パケットは、空のパケット間ギャップのみに成長する。したがって、中間ノードで「処理された」サブストリームと「処理されていない」サブストリームの分離および組み合わせは、自然にインターリーブする。パケットのタイミングおよび順序には乱れが発生していない。
【０１５１】
実施形態に係る方法、装置およびシステムは、複雑なメッシュネットワークを通過しても、暗号化および／または認証されたパケットデータ送信の有線のような決定論を提供する。
【０１５２】
図面を参照して例示的な実施形態を説明したが、他の実施形態では改変および変更を実施することができる。方法、装置およびシステムは、ＭＰＬＳネットワークに使用できるが、それに限定されない。
【０１５３】
当業者が理解するように、本明細書に開示される実施形態は、より良い理解のために提供され、単に例示である。特許請求の範囲によって定義される本発明の範囲から逸脱することなく、当業者は、様々な改変および変更を行うことができる。
【図１】
2020510339.tif 000003
【図２】
2020510339.tif 000004
【図３】
2020510339.tif 000005
【図４】
2020510339.tif 000006
【図５】
2020510339.tif 000007
【図６】
2020510339.tif 000008
【図７】
2020510339.tif 000009
【図８】
2020510339.tif 000010
【図９】
2020510339.tif 000011
【図１０】
2020510339.tif 000012
【国際調査報告】
2020510339.tif 000013
2020510339.tif 000014