JP2002529965A

An agile network protocol for secure communications with assured system availability

Abstract

(57) [Summary] Multiple computer nodes communicate using apparently random IP source and destination addresses and (optionally) apparently random discriminator fields. Movement c reasonable address data packets that do not match the criteria defined by the guiding are further processed and accepted, whereas a packet that does not meet this criteria are rejected. You can hop hardware addresses such as medium access control addresses as well as "hopping" IP addresses and discriminator fields. The hopped address has a non-repetitive sequence length that can be easily determined in advance, and can sequentially jump ahead by any number of random steps at high speed, in the future without knowing the parameters of the random number generator. It is generated by a random number generator that has characteristics that make it difficult to infer the random numbers of. Synchronization techniques can be used to reestablish synchronization between the sending node and the receiving node. Such techniques include a self-synchronization technique in which the synchronization field is transmitted as part of each packet, and a "checkpoint" method that allows the sending and receiving nodes to proceed to known points in their hopping scheme. included. A fast packet rejection technique based on the use of existence vectors will also be described. Aspects of the distributed transmit path include a randomly selected physical transmit path.

Term

Term ended

Projected expiry passed 29 October 2019, 6.9 years ago.

  1. Priority
  2. Filed
  3. Published
  4. Projected expiry
  5. Today

1 claim: 1 independent, 0 dependent

  1. 1
    【特許請求の範囲】 【請求項1】 下記の段階を含む、第1のコンピュータと第2のコンピュータとの間の情報を送信する方法:(1)連続するデータ・パケット間で周期的に変化する各ディスクリミネータ値が、各データ・パケット内の他のデータの値のみに基づく値ではない、複数のデータ・パケットのそれぞれにディスクリミネータ値を埋め込む段階、 (2)第1のコンピュータと第2のコンピュータとの間で複数のデータ・パケットを送信する段階、 (3)送信されたデータ・パケットを第2のコンピュータで受信する段階、および (4)受信された各データ・パケットについて、該ディスクリミネータ値を1組の有効なディスクリミネータ値と比較し、一致を検出したことに応答して、受信されたデータ・パケットを受け付けてさらに処理し、そうでない場合には、受信されたデータ・パケットを拒否する段階。 【請求項2】 段階(1)が、インタネット・プロトコル・ヘッダ内のインタネット・プロトコル・アドレスをディスクリミネータ値として使用する段階を含み、該インタネット・プロトコル・アドレスが、インタネットを介してデータ・パケットをルーティングするために使用される、請求項1記載の方法。 【請求項3】 連続するパケット間でインタネット・プロトコル・アドレスの一部のみの値を変化させる段階をさらに含む、請求項2記載の方法。 【請求項4】 各データ・パケットのインタネット・プロトコル・ヘッダの外部のデータ・フィールドをディスクリミネータ値として使用する段階をさらに含む、請求項1記載の方法。 【請求項5】 段階(1)および(4)がISO標準通信プロトコルのデータ・リンク層で実行される、請求項1記載の方法。 【請求項6】 段階(1)が、ディスクリミネータ値として媒体アクセス制御(MAC)ハードウェア・アドレスを使用する段階を含み、MACハードウェア・アドレスがローカル・エリア・ネットワーク上でデータ・パケットをルーティングするために使用される、請求項1記載の方法。 【請求項7】 段階(1)が、連続する各パケットごとに異なるディスクリミネータ値を使用する段階を含む、請求項1記載の方法。 【請求項8】 段階(4)が、各ディスクリミネータ値を有効なディスクリミネータ値のウインドウと比較する段階を含み、該ウインドウが、有効である可能性のある少数のディスクリミネータ値のみとの比較を可能にするのに十分な幅を有し、段階(4)が、連続するデータ・パケットが受信されたときにウインドウを移動させる段階をさらに含む、請求項1記載の方法。 【請求項9】 1組の有効なディスクリミネータ値を生成するのに十分な情報を第1のコンピュータと第2のコンピュータとの間で共用する段階をさらに含む、請求項1記載の方法。 【請求項10】 連続的に有効なディスクリミネータ値を選択するアルゴリズムを第1のコンピュータから第2のコンピュータに送信する段階をさらに含む、請求項1記載の方法。 【請求項11】 段階(4)が、存在ベクトルを使用して、各データ・パケットを受け付けるかどうかを判定する段階を含む、請求項1記載の方法。 【請求項12】 段階(4)が、ハッシュ関数を使用して、ディスクリミネータ値が有効であるかどうかを判定する段階を含む、請求項1記載の方法。 【請求項13】 第1のコンピュータと第2のコンピュータとの間で同期要求を送信する段階をさらに含み、第2のコンピュータが、該同期要求を使用して有効なディスクリミネータ値の同期を維持する、請求項1記載の方法。 【請求項14】 第2のコンピュータからの同期肯定応答の受信に失敗したことに応答して、第2のコンピュータへのデータ・パケットの送信を遮断する段階をさらに含む、請求項13記載の方法。 【請求項15】 第2のコンピュータが、有効である可能性のある1組のディスクリミネータ値において同期を再確立できるようにする同期値を、各データ・パケットに埋め込む段階をさらに含む、請求項13記載の方法。 【請求項16】 第1のコンピュータから同期要求を受信したことに応答して、第2のコンピュータ内の有効なディスクリミネータ値のウインドウを移動させる段階をさらに含む、請求項13記載の方法。 【請求項17】 段階(1)が、インタネット・プロトコル・ヘッダ内のインタネット・プロトコル送信元アドレスをディスクリミネータ値の第1の部分として使用し、インタネット・プロトコル・ヘッダ内のインタネット・プロトコル着信先アドレスをディスクリミネータ値の第2の部分として使用する段階を含み、該送信元アドレスおよび着信先アドレスが、インタネットを介して各データ・パケットをルーティングするために使用される、請求項1記載の方法。 【請求項18】 複数のデータ・パケットをフレームに埋め込む段階と、 準無作為的に生成されフレームをネットワーク上でルーティングするために使用される送信元および着信先ハードウェア・アドレスをフレームに埋め込む段階とをさらに含む、請求項17記載の方法。 【請求項19】 第1の送信テーブルおよび第1の受信テーブルを第1のコンピュータ内に維持し、且つ第2の送信テーブルおよび第2の受信テーブルを第2のコンピュータ内に維持する段階をさらに含み、 各送信テーブルが、発信データ・パケットに挿入すべき有効なディスクリミネータ値のリストを含み、 各受信テーブルが、着信データ・パケットと比較すべき有効なディスクリミネータ値のリストを含み、 第1のコンピュータ内の第1の送信テーブルが第2のコンピュータ内の第2の受信テーブルに一致し、第1のコンピュータ内の第1の受信テーブルが第2のコンピュータ内の第2の送信テーブルに一致する、請求項1記載の方法。 【請求項20】 下記の段階を含む、複数の物理送信パスを通して互いに接続された複数のコンピュータを備えるネットワークを介してデータ・パケットを送信する方法: (1)複数のデータ・パケットのそれぞれについて、複数のコンピュータを通る複数の物理送信パスのうちの1つを無作為に選択する段階、および (2)無作為に選択された物理送信パスを介して各データ・パケットを送信する段階。 【請求項21】 段階(1)が下記の段階を含む、請求項20記載の方法: (a)ネットワーク内の一対のコンピュータによって規定されるパスを選択する段階、 (b)選択されたパスに関連する有効な送信元アドレスおよび着信先アドレスを選択する段階、ならびに (c)有効な送信元アドレスおよび着信先アドレスを、選択されたパスを介して送信する前にデータ・パケットに挿入する段階。 【請求項22】 段階(1)が、動作可能でないパスの選択を回避する段階を含む、請求項21記載の方法。 【請求項23】 連続するデータ・パケット間で周期的に変化する各ディスクリミネータ値が、各データ・パケット内の他のデータの値のみに基づく値ではない、複数のデータ・パケットのそれぞれにディスクリミネータ値を埋め込む第1のコンピュータと、 ネットワークを通して第1のコンピュータに結合された第2のコンピュータとを備えるシステムであって、 該第1のコンピュータが該第2のコンピュータに複数のデータ・パケットを送信し、 該第2のコンピュータが、送信されたデータ・パケットを受信し、受信された各データ・パケット内のディスクリミネータ値を1組の有効なディスクリミネータ値と比較し、一致を検出したことに応答して、受信されたデータ・パケットを受け付けてさらに処理し、そうでない場合には、受信されたデータ・パケットを拒否するシステム。 【請求項24】 第1のコンピュータが、ディスクリミネータ値としてのインタネット・プロトコル・ヘッダ内のインタネット・プロトコル・アドレスを複数のデータ・パケットのそれぞれに埋め込み、インタネット・プロトコル・アドレスが、インタネットを介してデータ・パケットをルーティングするために使用される、請求項23記載のシステム。 【請求項25】 第1のコンピュータが、連続するパケット間でインタネット・プロトコル・アドレスの一部のみの値を変化させる、請求項24記載のシステム。 【請求項26】 第1のコンピュータが、各データ・パケットのインタネット・プロトコル・ヘッダの外部のデータ・フィールドにディスクリミネータ値を埋め込む、請求項23記載のシステム。 【請求項27】 第1のコンピュータが、ISO標準通信プロトコルの第1のデータ・リンク層に各ディスクリミネータ値を埋め込み、第2のコンピュータが、ISO標準通信プロトコルの第2のデータ・リンク層内の各ディスクリミネータ値を比較する、請求項23記載のシステム。 【請求項28】 第1のコンピュータが、ディスクリミネータ値として媒体アクセス制御(MAC)ハードウェア・アドレスを使用し、MACハードウェア・アドレスがローカル・エリア・ネットワーク上でデータ・パケットをルーティングするために使用される、請求項23記載のシステム。 【請求項29】 第1のコンピュータが、連続する各パケットごとに異なるディスクリミネータ値を埋め込む、請求項23記載のシステム。 【請求項30】 第2のコンピュータが、各ディスクリミネータ値を有効なディスクリミネータ値のウインドウと比較し、該ウインドウが、有効である可能性のある少数のディスクリミネータ値のみとの比較を可能にするのに十分な幅を有し、該ウインドウが、連続するデータ・パケットが受信されたときに移動させられる、請求項23記載のシステム。 【請求項31】 第1のコンピュータと第2のコンピュータが、1組の有効なディスクリミネータ値を生成するのに十分な情報を共用する、請求項23記載のシステム。 【請求項32】 第1のコンピュータが、連続的に有効なディスクリミネータ値を選択するアルゴリズムを第2のコンピュータに送信する、請求項23記載のシステム。 【請求項33】 第2のコンピュータが、存在ベクトルを使用して、各データ・パケットを受け付けるかどうかを判定する、請求項23記載のシステム。 【請求項34】 第2のコンピュータが、ハッシュ関数を使用して、ディスクリミネータ値が有効であるかどうかを判定する、請求項23記載のシステム。 【請求項35】 第1のコンピュータが第2のコンピュータに同期要求を送信し、該第2のコンピュータが、該同期要求を使用して有効なディスクリミネータ値の同期を維持する、請求項23記載のシステム。 【請求項36】 第1のコンピュータが、第2のコンピュータからの同期肯定応答の受信に失敗したことに応答して、第2のコンピュータへのデータ・パケットの送信を遮断する、請求項35記載のシステム。 【請求項37】 第1のコンピュータが、第2のコンピュータが有効である可能性のある1組のディスクリミネータ値において同期を再確立できるようにする同期値を、各データ・パケットに埋め込む、請求項35記載のシステム。 【請求項38】 第2のコンピュータが、第1のコンピュータから同期要求を受信したことに応答して、有効なディスクリミネータ値のウインドウを移動させる、請求項35記載のシステム。 【請求項39】 第1のコンピュータが、インタネット・プロトコル送信元アドレスをインタネット・プロトコル・ヘッダにディスクリミネータ値の第1の部分として埋め込み、インタネット・プロトコル着信先アドレスをインタネット・プロトコル・ヘッダにディスクリミネータ値の第2の部分として埋め込み、該送信元アドレスおよび着信先アドレスが、インタネットを介して各データ・パケットをルーティングするために使用される、請求項23記載のシステム。 【請求項40】 第1のコンピュータが、複数のデータ・パケットをフレームに埋め込み、送信元および着信先ハードウェア・アドレスをフレームに埋め込み、該送信元および着信先ハードウェア・アドレスが、準無作為的に生成され、フレームをネットワーク上でルーティングするために使用される、請求項39記載のシステム。 【請求項41】 第1のコンピュータが、第1の送信テーブルおよび第1の受信テーブルを備え、 第2のコンピュータが、第2の送信テーブルおよび第2の受信テーブルを備え、 各送信テーブルが、発信データ・パケットに挿入すべき有効なディスクリミネータ値のリストを含み、 各受信テーブルが、着信データ・パケットと比較すべき有効なディスクリミネータ値のリストを含み、 第1のコンピュータ内の第1の送信テーブルが第2のコンピュータ内の第2の受信テーブルに一致し、 第1のコンピュータ内の第1の受信テーブルが第2のコンピュータ内の第2の送信テーブルに一致する、請求項23記載のシステム。 【請求項42】 複数の物理送信パスを通して互いに接続された複数のコンピュータを備えるネットワークに結合された第1のコンピュータであって、 ネットワークを介して送信できる複数のデータ・パケットを生成し、且つ 複数のデータ・パケットのそれぞれについて、複数のコンピュータを通る複数の物理的送信パスのうちの1つを無作為に選択し、該無作為に選択された物理的送信パスを介して各データ・パケットを送信する第1のコンピュータ。 【請求項43】 (a)ネットワーク内の一対のコンピュータによって規定されるパスを選択し、 (b)選択されたパスに関連する妥当な送信元アドレスおよび着信先アドレスを選択し、 (c)選択されたパスを介してデータ・パケットを送信する前に妥当な送信元アドレスおよび着信先アドレスをデータ・パケットに挿入する、請求項42記載の第1のコンピュータ。 【請求項44】 動作可能でないパスの選択を回避する段階を回避する、請求項43記載の第1のコンピュータ。 【請求項45】 偽(pseudo)無作為ディスクリミネータ値を生成し、送信されるデータ・パケットに偽無作為ディスクリミネータ値を埋め込む送信側ノードと、 送信側ノードによって送信されたデータ・パケットを受信し、受信された各パケットごとに、偽無作為的に生成されたディスクリミネータ値を抽出し、該ディスクリミネータ値を、送信側ノードと受信側ノードとの間で共用される有効である可能性のある1組のディスクリミネータ値と比較し、一致を検出したことに応答して、データ・パケットを受け付け、そうでない場合はパケットを破棄する受信側ノードとの組合せを備えるシステム。 【請求項46】 受信側ノードが、有効なディスクリミネータ値のウインドウを維持し、該ウインドウが、一致を検出したことに応答して移動させられる、請求項45記載のシステム。 【請求項47】 偽無作為的に生成された各ディスクリミネータ値が、受信側ノードに割り当てられた有効なインタネット・プロトコル・アドレスを含む、請求項45記載のシステム。 【請求項48】 偽無作為的に生成された各ディスクリミネータ値が、受信側ノードに割り当てられた有効な媒体アクセス制御(MAC)ハードウェア・アドレスを含む、請求項45記載のシステム。 【請求項49】 送信側ノードが、連続する各データ・パケットごとに、それぞれの異なる、偽無作為的に生成されたディスクリミネータ値を生成する、請求項45記載のシステム。 【請求項50】 送信側コンピュータからデータ・パケットを受信する受信側コンピュータであって、 (1)受信された各データ・パケットごとに、送信側コンピュータによって挿入されたディスクリミネータ値を抽出する段階と、 (2)抽出されたディスクリミネータ値を、すでに送信側コンピュータと共用されている情報に基づいて、1組の有効なディスクリミネータ値と比較する段階と、 (3)段階(2)で一致を検出したことに応答して、受信されたデータ・パケットを受け付けてさらに処理し、そうでない場合はデータ・パケットを拒否する段階とを実行するコンピュータ命令を備える、受信側コンピュータ。 【請求項51】 ディスクリミネータ値として各データ・パケットのヘッダ部分からインタネット・プロトコル・アドレスを抽出するコンピュータ命令をさらに備える、請求項50記載の受信側コンピュータ。 【請求項52】 受信側コンピュータが、有効なディスクリミネータ値のウインドウを維持し、該ウインドウが、一致を検出したことに応答して移動させられる、請求項50記載の受信側コンピュータ。 【請求項53】 1組の有効なディスクリミネータ値を確立するのに十分な情報を送信側コンピュータから受信する、請求項50記載の受信側コンピュータ。 【請求項54】 下記の段階を含む、特定の順序に配置された複数のデータ・バイトを含むデータを第1のコンピュータから第2のコンピュータに送信する方法: (1)複数のデータ・パケットにデータを無作為に分配するにはどうすべきかを決定する共通のアルゴリズムを第1のコンピュータおよび第2のコンピュータにおいて確立する段階、 (2)第1のコンピュータにおいて、共通のアルゴリズムに従って複数のデータ・パケットに複数のデータ・バイトを無作為に分配する段階、 (3)複数のデータ・パケットを第1のコンピュータから第2のコンピュータに送信する段階、および (4)第2のコンピュータにおいて、無作為に分配された複数のデータ・バイトを、複数のデータ・パケットから抽出し、共通のアルゴリズムに従って特定の順序に並べ直す段階。 【請求項55】 段階(3)が、複数のデータ・パケットのそれぞれをコンピュータ・ネットワーク内の異なるパスを介して送信する段階を含む、請求項1記載の方法。 【請求項56】 複数のデータ・パケットにデータを割り付けるための無作為分配パターンを確立するアルゴリズムを含み、データ供給源からのデータ・バイトを無作為分配パターンに従って複数のデータ・パケットに無作為に分配し、複数のデータ・パケットをネットワークを介して送信する第1のコンピュータと、 ネットワークを介して第1のコンピュータに結合されており、第1のコンピュータから複数のデータ・パケットを受信し、無作為に分配されたデータ・バイトを抽出し、該データ・バイトをアルゴリズムに従って最初の順序に並べ直す第2のコンピュータとを備えるシステム。 【請求項57】 第1のコンピュータが、複数のデータ・パケットのそれぞれをネットワーク内のそれぞれの異なるパスを介して送信する、請求項56記載のシステム。 【請求項58】 下記の段階を含む、送信側コンピュータと受信側コンピュータとの間でデータ・パケットを安全に送信する方法: (1)送信側コンピュータおよび受信側コンピュータに知られているが、送信側コンピュータと受信側コンピュータとの間の中間コンピュータには知られていないセッション鍵を使用してデータ・パケットを暗号化する段階、 (2)段階(1)で暗号化されたデータ・パケットに、該データ・パケットを識別するパケット・ヘッダを付加する段階、 (3)段階(2)で作成された組み合わされたパケット・ヘッダと暗号化データ・パケットを、第1のコンピュータと第2のコンピュータとの間に配置された複数の各中間コンピュータに知られているリンク鍵を使用して暗号化する段階、 (4)段階(3)で暗号化されたパケットをルーティングするために平文パケット・ヘッダを付加する段階、および (5)段階(4)で作成されたパケットを送信する段階。 【請求項59】 (5)各中間コンピュータにおいて、前のコンピュータから受信されたパケットを復号し、かつリンク鍵を使用して復号する段階と、 (6)ネットワーク内の次の中間ネットワークに知られている異なるリンク鍵を使用してパケットを再暗号化する段階と、 (7)段階(6)で再暗号化されたパケットをルーティングするために平文パケット・ヘッダを付加する段階と、 (8)段階(7)で作成されたパケットを次の中間コンピュータに送信する段階とをさらに含む、請求項58記載の方法。 【請求項60】 受信側コンピュータにおいて、セッション鍵を使用してパケットを復号する段階をさらに含む、請求項59記載の方法。 【請求項61】 下記の段階を含む、コンピュータ・ネットワークを介してデータを送信する方法: コンピュータ・ネットワークに接続された発信側端末において、データ・ストリームを受信し、該データ・ストリームから第1レベル・データ・パケット・ペイロードを形成する段階、 データ・ストリーム用のネットワーク着信先アドレスを識別し、ネットワーク着信先アドレスを表すデータを含む第1レベル・ヘッダを各データ・パケットに付加して第1レベル・パケットを形成する段階、 各第1レベル・パケットを暗号化して第2レベル・パケット・ペイロードを形成する段階、 発信側端末を着信先に接続する少なくとも1つの中間ルータのアドレスを着信先アドレスとして含むペイロード・ヘッダを第2のレベル・パケットに付加して第2レベル・パケットを形成する段階、 第2レベル・パケットを該少なくとも1つの中間ルータに送信する段階、および 該少なくとも1つの中間ルータにおいて、少なくとも1つの第2レベル・ペイロードを復号し、第1レベル・ヘッダから着信先アドレスを判定し、少なくとも第1レベル・パケット・ペイロードを含む新しいパケットを形成し、着信先アドレスを含むヘッダを新しいパケットに付加し、それによって、データ・ストリームの真の着信先が、ネットワークを介して送信される少なくとも一部の時間の間、暗号化層に隠される段階。 【請求項62】 付加段階が、一群の中間ルータから無作為に選択することによって少なくとも1つの中間ルータを決定することを含む、請求項61記載の方法。 【請求項63】 第1レベル・ヘッダから着信先アドレスを判定する段階が、中間ルータ上に記憶されている相関データによって、ネットワーク着信先アドレスを表すデータをネットワーク着信先アドレスに変換することを含む、請求項61記載の方法。 【請求項64】 第1レベル・パケットがネットワーク着信先に到着する前に行うホップの数のインディケータを第1層ヘッダと第2層ヘッダの一方に含める段階をさらに含み、少なくとも1つの中間ルータが、ホップの数のインディケータを減分させ、ホップの数のインディケータの値に応じてそれぞれ別の中間ルータに第1レベル・パケットを送信する、請求項61記載の方法。 【請求項65】 下記の段階を含む、パケット・ネットワーク上でパケットをルーティングする方法: セッション鍵を用いてメッセージ・データをブロック暗号化してペイロードを形成する段階、 ブロック暗号化によって暗号化されたブロックを、ブロック暗号化段階によるデータのインタリーブ部分が少なくとも2つのデータ・ペイロードの間に入るように少なくとも2つのデータ・ペイロードに分割する段階、 少なくとも2つのデータ・ペイロードのそれぞれを、パケットの最終的な着信先を識別する着信先データと共に、リンク鍵を用いて暗号化する段階、 第1の中間着信先アドレスを示す第1のホップ・アドレスを最後の暗号化段階の結果として得られた第1のペイロードと組み合わせ、結果として得られた第1のパケットを第1の中間着信先アドレスに送信する段階、および 第2の中間着信先アドレスを示す第2のホップ・アドレスを最後の暗号化段階の結果として得られた第2のペイロードと組み合わせ、結果として得られた第2のパケットを第2の中間着信先アドレスに送信する段階。 【請求項66】 第1のパケットに第1のホップ・カウンタを組み合わせる段階と、 第1の中間着信先アドレスに一致する端末において、第1のホップ・カウンタに応じて、第1のパケットを最終的な着信先アドレスに送信するよう判定する段階と、 第1の中間着信先アドレスに一致する端末において、リンク鍵を用いて第1のペイロードを復号して最終的な着信先アドレスを明らかにし、判定段階に応じて第1のパケットを最終的な着信先アドレスに送信する段階とをさらに含む、請求項65記載の方法。 【請求項67】 第2のパケットに第2のホップ・カウンタを組み合わせる段階と、 第2の中間着信先アドレスに一致する端末において、第2のホップ・カウンタに応じて、第1のパケットを最終的な着信先アドレスに送信するよう判定する段階と、 第2の中間着信先アドレスに一致する端末において、リンク鍵を用いて第2のペイロードを復号して最終的な着信先アドレスを明らかにし、最後の判定段階に応じて第2のパケットを最終的な着信先アドレスに送信する段階とをさらに含む、請求項65記載の方法。